ShowDoc is a tool greatly applicable for an IT team to share documents online一个非常适合IT团队的在线API文档、技术文档工具
This report summarizes scanner evidence for star7th/showdoc, a PHP project with 12,867 GitHub stars. SynthScan examined 489,678 lines of code across 2022 source files, recording 638 pattern matches distributed across 11 syntactic categories. The legacy adjusted pattern signal is 1.7 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 513 finding(s).
Are imports declared and package/API names verified? 60 finding(s).
Are wrappers, guards, and repeated structures necessary? 483 finding(s).
Which changes need focused human review? 638 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 638 distinct pattern matches across 11 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | web/editor.md/xss.min.js | 1 | (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0) | CODE |
| LOW⚡ | web/editor.md/lib/codemirror/codemirror.min.js | 13 | }else{this.vert.style.display="";this.vert.firstChild.style.height="0"}if(needsH){this.horiz.style.display="block";this. | CODE |
| LOW⚡ | web/editor.md/lib/codemirror/codemirror.min.js | 21 | }Range.prototype={from:function(){return minPos(this.anchor,this.head)},to:function(){return maxPos(this.anchor,this.hea | CODE |
| LOW⚡ | web/editor.md/lib/codemirror/codemirror.min.js | 23 | var highlighted=highlightLine(cm,line,state,true);line.styles=highlighted.styles;var oldCls=line.styleClasses,newCls=hig | CODE |
| LOW⚡ | web/editor.md/lib/codemirror/codemirror.min.js | 24 | }found=measureCharInner(cm,prepared,ch,bias);if(!found.bogus){prepared.cache[key]=found}}return{left:found.left,right:fo | CODE |
| LOW⚡ | web/editor.md/lib/codemirror/codemirror.min.js | 32 | if(!change){return}}var split=sawReadOnlySpans&&!ignoreReadOnly&&removeReadOnlyRanges(doc,change.from,change.to);if(spli | CODE |
| LOW⚡ | web/editor.md/lib/codemirror/codemirror.min.js | 43 | }if(!stretched){return old}for(var i=0;i<old.length;++i){var oldCur=old[i],stretchCur=stretched[i];if(oldCur&&stretchCur | CODE |
| LOW⚡ | web/editor.md/lib/codemirror/codemirror.min.js | 45 | runMode(cm,line.text,overlay.mode,true,function(end,style){var start=i;while(at<end){var i_end=st[i];if(i_end>end){st.sp | CODE |
| LOW⚡ | web/editor.md/lib/codemirror/codemirror.min.js | 50 | ++i){var child=chunk.children[i],ch=child.height;if(h<ch){chunk=child;continue outer}h-=ch;n+=child.chunkSize()}return n | CODE |
| LOW | web/editor.md/lib/codemirror/mode/stylus/stylus.js | 376 | function buildInterpolationTokenizer(currentTokenizer) { | CODE |
| LOW | web/editor.md/lib/codemirror/mode/slim/slim.js | 265 | function startAttributeWrapperMode(state, endQuote, tokenize) { | CODE |
| LOW | web/editor.md/lib/codemirror/mode/sass/sass.js | 93 | function buildInterpolationTokenizer(currentTokenizer) { | CODE |
| LOW | web/editor.md/lib/codemirror/lib/codemirror.js | 586 | function maybeUpdateLineNumberWidth(cm) { | CODE |
| LOW | web/editor.md/lib/codemirror/lib/codemirror.js | 2082 | function setSelectionReplaceHistory(doc, sel, options) { | CODE |
| LOW | web/editor.md/lib/codemirror/lib/codemirror.js | 2467 | function updateExternalMeasurement(cm, line) { | CODE |
| LOW⚡ | web/editor.md/lib/codemirror/lib/codemirror.js | 2636 | function maybeUpdateRectForZooming(measure, rect) { | CODE |
| LOW⚡ | web/editor.md/lib/codemirror/lib/codemirror.js | 2646 | function clearLineMeasurementCacheFor(lineView) { | CODE |
| LOW⚡ | web/editor.md/lib/codemirror/lib/codemirror.js | 2655 | function clearLineMeasurementCache(cm) { | CODE |
| LOW | web/editor.md/lib/codemirror/lib/codemirror.js | 4334 | function makeChangeSingleDocInEditor(cm, change, spans) { | CODE |
| LOW | web/editor.md/lib/codemirror/lib/codemirror.js | 6344 | function conflictingCollapsedRange(doc, lineNo, from, to, marker) { | CODE |
| LOW | web/editor.md/lib/codemirror/lib/codemirror.js | 6442 | function adjustScrollWhenAboveVisible(cm, line, diff) { | CODE |
| LOW | web/editor.md/lib/codemirror/lib/codemirror.js | 6762 | function defaultSpecialCharPlaceholder(ch) { | CODE |
| LOW | web/editor.md/lib/codemirror/lib/codemirror.js | 7730 | function selectionEventCanBeMerged(doc, origin, prev, sel) { | CODE |
| LOW | web/editor.md/lib/codemirror/addon/merge/merge.js | 669 | function collapseIdenticalStretches(mv, margin) { | CODE |
| LOW | …tor.md/lib/codemirror/addon/comment/continuecomment.js | 64 | function continueLineCommentEnabled(cm) { | CODE |
| LOW | server/app/Mcp/McpHandler.php | 536 | protected function getOrCreateCatalog(int $itemId, string $catName): int | CODE |
| LOW | server/app/Mcp/McpServer.php | 1932 | private function handleInitializedNotification(): array | CODE |
| LOW | server/app/Mcp/McpServer.php | 2115 | private function handleResourcesTemplatesList(): array | CODE |
| LOW | server/app/Mcp/McpServer.php | 2427 | private function convertLargeIntegersToString($data, int $depth = 0) | CODE |
| LOW | server/app/Mcp/Handler/CatalogHandler.php | 186 | private function buildCatalogTreeWithPages(array $catalogs, int $parentId, array $pagesByCat): array | CODE |
| LOW | server/app/Common/BaseController.php | 164 | protected function convertLargeIntegersToString($data, int $depth = 0) | CODE |
| LOW | server/app/Common/Helper/AgentHelper.php | 631 | private function isSystemNotSupportedError(string $msg): bool | CODE |
| LOW | server/app/Common/Helper/AgentHelper.php | 643 | private function systemUnsupportedCacheKey(): string | CODE |
| LOW | server/app/Common/Helper/AgentHelper.php | 651 | private function isSystemUnsupportedCached(): bool | CODE |
| LOW | server/app/Common/Helper/Convert.php | 19 | public function convertSqlToMarkdownTable($sql) | CODE |
| LOW | server/app/Model/AiChatMessage.php | 206 | public static function getFirstUserMessagesBatch(array $sessionIds): array | CODE |
| LOW | server/app/Model/TeamItemMember.php | 169 | public static function deleteByMemberUidAndTeamId(int $memberUid, int $teamId): bool | CODE |
| LOW | server/app/Model/Item.php | 459 | private static function buildCatalogTreeForExport(array $catalogData, array $allPages, array $allCatalogs, bool $unc | CODE |
| LOW | server/app/Api/Controller/MockController.php | 293 | private static function mockPlaceholderStringIsSafe(string $str): bool | CODE |
| LOW | server/app/Api/Controller/OpenController.php | 141 | private function analyzeDbStructureToArray(string $tableInfo, string $tableDetail, string $tableIndex = ''): array | CODE |
| LOW | server/app/Api/Controller/ItemController.php | 583 | private function getStatusTextFromApiStatus($status): string | CODE |
| LOW | server/app/Api/Controller/AttachmentController.php | 31 | private function setLargeFileUploadSupport(): void | CODE |
| LOW | server/app/Api/Controller/AiController.php | 32 | private function checkAiKnowledgeBaseEnabled(int $itemId): array | CODE |
| LOW | server/app/Api/Controller/McpController.php | 535 | private function acceptedNotificationResponse(Response $response): Response | CODE |
| LOW | server/app/Api/Controller/ImportSwaggerController.php | 441 | private function transferDefinitionOptimized(array &$curArray, int $depth = 0, array $resolvingStack = []): bool | CODE |
| LOW | server/tests/ImportSwaggerTest.php | 340 | public function testMultiContentTypeResponse(): void | CODE |
| LOW | server/tests/ImportSwaggerTest.php | 440 | public function testRequestParamsDescUnaffected(): void | CODE |
| LOW | server/tests/ImportSwaggerTest.php | 493 | public function testPageMetadataExtraction(): void | CODE |
| LOW | server/tests/ImportSwaggerTest.php | 581 | public function testToBArrayExamplePreference(): void | CODE |
| LOW | server/tests/ImportSwaggerTest.php | 622 | public function testDefinitionToJsonArrayBasic(): void | CODE |
| LOW | server/tests/ImportSwaggerTest.php | 656 | public function testDefinitionToJsonArrayNested(): void | CODE |
| LOW | server/tests/ImportSwaggerTest.php | 688 | public function testDefinitionToJsonArrayItems(): void | CODE |
| LOW | server/tests/ImportSwaggerTest.php | 723 | public function testDefinitionToJsonArrayTitlePriority(): void | CODE |
| LOW | server/tests/ImportSwaggerTest.php | 745 | public function testDefinitionToJsonArrayEmpty(): void | CODE |
| LOW | server/tests/ImportSwaggerTest.php | 759 | public function testExampleToParamsDescObject(): void | CODE |
| LOW | server/tests/ImportSwaggerTest.php | 773 | public function testExampleToParamsDescArray(): void | CODE |
| LOW | server/tests/ImportSwaggerTest.php | 789 | public function testExampleToParamsDescNested(): void | CODE |
| LOW | server/tests/ImportSwaggerTest.php | 837 | public function testResponseExampleIsValidJson(): void | CODE |
| LOW | server/tests/ImportSwaggerTest.php | 880 | public function testSchemaAndExampleSchemaPriority(): void | CODE |
| LOW⚡ | server/tests/mock/MockModelTest.php | 69 | public function testDifferentItemIdNotInterfering(): void | CODE |
| 358 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …/editor.md/lib/codemirror/mode/coffeescript/index.html | 54 | # -------------- | COMMENT |
| MEDIUM | …/editor.md/lib/codemirror/mode/coffeescript/index.html | 123 | # -------------------- | COMMENT |
| MEDIUM | …/editor.md/lib/codemirror/mode/coffeescript/index.html | 296 | # --------------- | COMMENT |
| MEDIUM | …/editor.md/lib/codemirror/mode/coffeescript/index.html | 405 | # ------------------ | COMMENT |
| MEDIUM | …/editor.md/lib/codemirror/mode/coffeescript/index.html | 464 | # ---------------- | COMMENT |
| MEDIUM | …/editor.md/lib/codemirror/mode/coffeescript/index.html | 597 | # ----------------- | COMMENT |
| MEDIUM | …/editor.md/lib/codemirror/mode/coffeescript/index.html | 681 | # --------------------- | COMMENT |
| MEDIUM | server/app/Api/Controller/AgentController.php | 757 | // ── 1. 解析参数 ────────────────────────────────────── | COMMENT |
| MEDIUM | server/app/Api/Controller/AgentController.php | 780 | // ── 2. 基本校验 ────────────────────────────────────── | COMMENT |
| MEDIUM | server/app/Api/Controller/AgentController.php | 796 | // ── 3. 解析用户身份 ────────────────────────────────── | COMMENT |
| MEDIUM | server/app/Api/Controller/AgentController.php | 811 | // ── 4. 验证会话归属 ────────────────────────────────── | COMMENT |
| MEDIUM | server/app/Api/Controller/AgentController.php | 833 | // ── 5. 检查 AI 是否启用 ────────────────────────────── | COMMENT |
| MEDIUM | server/app/Api/Controller/AgentController.php | 839 | // ── 6. 项目访问权限检查 ────────────────────────────── | COMMENT |
| MEDIUM | server/app/Api/Controller/AgentController.php | 857 | // ── 7. 保存 user 消息(重新生成时跳过) ────────────── | COMMENT |
| MEDIUM⚡ | server/app/Api/Controller/AgentController.php | 870 | // ── 9. 初始化 SSE 输出 ───────────────────────────── | COMMENT |
| MEDIUM⚡ | server/app/Api/Controller/AgentController.php | 876 | // ── 10. 构建 LLM 上下文 ───────────────────────────── | COMMENT |
| MEDIUM⚡ | server/app/Api/Controller/AgentController.php | 884 | // ── 12. 构建上下文参数 ────────────────────────────── | COMMENT |
| MEDIUM⚡ | server/app/Api/Controller/AgentController.php | 918 | // ── 13. 构建工具列表 ──────────────────────────────── | COMMENT |
| MEDIUM⚡ | server/app/Api/Controller/AgentController.php | 923 | // ── 14. MCP tokenInfo ──────────────────────────────── | COMMENT |
| MEDIUM⚡ | server/app/Api/Controller/AgentController.php | 926 | // ── 15. Agent 循环 ────────────────────────────────── | COMMENT |
| MEDIUM | server/app/Api/Controller/AgentController.php | 1088 | // ── 搜索结果引用格式提醒 ──────────────────────── | COMMENT |
| MEDIUM | server/app/Api/Controller/AgentController.php | 1111 | // ── 16. 循环结束:保存 assistant 消息 ──────────────── | COMMENT |
| MEDIUM | server/app/Api/Controller/AgentController.php | 1182 | // ── 发送剩余 SSE 事件 + [DONE] ──────────────────────── | COMMENT |
| MEDIUM | server/app/Api/Controller/AgentController.php | 1199 | // ── 17. 发送 done ─────────────────────────────────── | COMMENT |
| MEDIUM⚡ | Public/editor.md/lib/raphael.min.js | 1 | // ┌────────────────────────────────────────────────────────────────────┐ \\ | COMMENT |
| MEDIUM⚡ | Public/editor.md/lib/raphael.min.js | 3 | // ├────────────────────────────────────────────────────────────────────┤ \\ | COMMENT |
| MEDIUM⚡ | Public/editor.md/lib/raphael.min.js | 6 | // ├────────────────────────────────────────────────────────────────────┤ \\ | COMMENT |
| MEDIUM⚡ | Public/editor.md/lib/raphael.min.js | 8 | // └────────────────────────────────────────────────────────────────────┘ \\ | COMMENT |
| MEDIUM | …/editor.md/lib/codemirror/mode/coffeescript/index.html | 54 | # -------------- | COMMENT |
| MEDIUM | …/editor.md/lib/codemirror/mode/coffeescript/index.html | 123 | # -------------------- | COMMENT |
| MEDIUM | …/editor.md/lib/codemirror/mode/coffeescript/index.html | 296 | # --------------- | COMMENT |
| MEDIUM | …/editor.md/lib/codemirror/mode/coffeescript/index.html | 405 | # ------------------ | COMMENT |
| MEDIUM | …/editor.md/lib/codemirror/mode/coffeescript/index.html | 464 | # ---------------- | COMMENT |
| MEDIUM | …/editor.md/lib/codemirror/mode/coffeescript/index.html | 597 | # ----------------- | COMMENT |
| MEDIUM | …/editor.md/lib/codemirror/mode/coffeescript/index.html | 681 | # --------------------- | COMMENT |
| MEDIUM | …/editor.md/lib/codemirror/mode/coffeescript/index.html | 54 | # -------------- | COMMENT |
| MEDIUM | …/editor.md/lib/codemirror/mode/coffeescript/index.html | 123 | # -------------------- | COMMENT |
| MEDIUM | …/editor.md/lib/codemirror/mode/coffeescript/index.html | 296 | # --------------- | COMMENT |
| MEDIUM | …/editor.md/lib/codemirror/mode/coffeescript/index.html | 405 | # ------------------ | COMMENT |
| MEDIUM | …/editor.md/lib/codemirror/mode/coffeescript/index.html | 464 | # ---------------- | COMMENT |
| MEDIUM | …/editor.md/lib/codemirror/mode/coffeescript/index.html | 597 | # ----------------- | COMMENT |
| MEDIUM | …/editor.md/lib/codemirror/mode/coffeescript/index.html | 681 | # --------------------- | COMMENT |
| MEDIUM | web_src/src/components/ai/AiMessageBubble.vue | 131 | // ─── 增量 Markdown 渲染(打字机效果) ─────────────────── | COMMENT |
| MEDIUM | web_src/src/components/ai/AiMessageBubble.vue | 432 | // ─── 流式内容更新(打字机效果) ─────────────────────── | COMMENT |
| MEDIUM | web_src/src/components/ai/AiMessageBubble.vue | 450 | // ─── 流状态变化:开始 → 结束 ──────────────────────────── | COMMENT |
| MEDIUM | web_src/src/components/ai/AiMessageBubble.vue | 468 | // ─── [Fix 流式渲染] done 事件驱动的最终渲染 ─────────── | COMMENT |
| MEDIUM | web_src/src/components/ai/AiMessageBubble.vue | 482 | // ─── 初始渲染(非流式消息的首次挂载) ───────────────── | COMMENT |
| MEDIUM | web_src/src/components/ai/AiAgentDialog.vue | 282 | // ─── Lifecycle ──────────────────────────────────────────── | COMMENT |
| MEDIUM | web_src/src/components/ai/AiAgentDialog.vue | 329 | // ─── Config check ───────────────────────────────────────── | COMMENT |
| MEDIUM | web_src/src/components/ai/AiAgentDialog.vue | 399 | // ─── Toggle ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | web_src/src/components/ai/AiAgentDialog.vue | 437 | // ─── 拖拽调整大小 ──────────────────────────────────────── | COMMENT |
| MEDIUM | web_src/src/components/ai/AiAgentDialog.vue | 480 | // ─── Session management ────────────────────────────────── | COMMENT |
| MEDIUM | web_src/src/components/ai/AiAgentDialog.vue | 562 | // ─── Send message ───────────────────────────────────────── | COMMENT |
| MEDIUM | web_src/src/components/ai/AiAgentDialog.vue | 741 | // ─── Message actions ────────────────────────────────────── | COMMENT |
| MEDIUM | web_src/src/components/ai/AiAgentDialog.vue | 784 | // ─── Helpers ────────────────────────────────────────────── | COMMENT |
| MEDIUM | web_src/src/api/aiAgent.ts | 8 | // ─── 类型定义 ───────────────────────────────────────────── | COMMENT |
| MEDIUM | web_src/src/api/aiAgent.ts | 51 | // ─── 内部工具 ───────────────────────────────────────────── | COMMENT |
| MEDIUM | web_src/src/api/aiAgent.ts | 145 | // ─── 普通 JSON API ──────────────────────────────────────── | COMMENT |
| MEDIUM | web_src/src/api/aiAgent.ts | 207 | // ─── SSE 流式 API ───────────────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | web/editor.md/lib/underscore.min.js | 1 | // Underscore.js 1.8.2 | COMMENT |
| LOW | web/editor.md/lib/prettify.min.js | 1 | // Copyright (C) 2006 Google Inc. | COMMENT |
| LOW | web/editor.md/lib/flowchart.min.js | 1 | // flowchart.js, v1.14.1 | COMMENT |
| LOW | web/editor.md/lib/plantuml.js | 1641 | return aout.join('') | COMMENT |
| LOW | web/editor.md/lib/codemirror/mode/markdown/test.js | 681 | "[em *foo][em&strong __bar_hello** world]"); | COMMENT |
| LOW | web/editor.md/lib/codemirror/mode/erlang/erlang.js | 461 | case "after":return d(s,{e:["receive","try"]}); | COMMENT |
| LOW | web/editor.md/lib/codemirror/mode/tcl/index.html | 21 | <li><a href="../index.html">Language modes</a> | COMMENT |
| LOW | web/editor.md/lib/codemirror/mode/tcl/index.html | 41 | ## ## Start Setup. ## ## | COMMENT |
| LOW | …/editor.md/lib/codemirror/mode/coffeescript/index.html | 21 | <li><a class=active href="#">CoffeeScript</a> | COMMENT |
| LOW | …/editor.md/lib/codemirror/mode/coffeescript/index.html | 41 | # **Underscore.coffee | COMMENT |
| LOW | web/editor.md/lib/codemirror/mode/rpm/index.html | 61 | indentUnit: 4 | COMMENT |
| LOW | web/editor.md/lib/codemirror/lib/codemirror.js | 3801 | if (cm.display.scroller.scrollLeft != val) cm.display.scroller.scrollLeft = val; | COMMENT |
| LOW | web/editor.md/lib/codemirror/lib/codemirror.js | 8481 | // + (ES): European Number Separator | COMMENT |
| LOW | …editor.md/lib/codemirror/addon/lint/javascript-lint.js | 81 | // replaces | COMMENT |
| LOW | …or.md/lib/codemirror/addon/search/match-highlighter.js | 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others | COMMENT |
| LOW | web/editor.md/lib/codemirror/addon/tern/tern.js | 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others | COMMENT |
| LOW | web/editor.md/lib/codemirror/addon/tern/tern.js | 21 | // multi-file view, switch the view or focus to the named file. | COMMENT |
| LOW | web/assets/components-6e2175c7.js | 21 | COMMENT | |
| LOW | server/app/Common/Vendor/Parsedown.php | 1 | <?php | COMMENT |
| LOW | server/ThinkPHP/ThinkPHP.php | 1 | <?php | COMMENT |
| LOW | …nkPHP/Library/Behavior/ReadHtmlCacheBehavior.class.php | 1 | <?php | COMMENT |
| LOW | …kPHP/Library/Behavior/WriteHtmlCacheBehavior.class.php | 1 | <?php | COMMENT |
| LOW | …/ThinkPHP/Library/Behavior/CheckLangBehavior.class.php | 1 | <?php | COMMENT |
| LOW | …/ThinkPHP/Library/Behavior/BuildLiteBehavior.class.php | 1 | <?php | COMMENT |
| LOW | server/ThinkPHP/Library/Think/Exception.class.php | 1 | <?php | COMMENT |
| LOW | server/ThinkPHP/Library/Think/Route.class.php | 161 | // 解析规则路由 | COMMENT |
| LOW | …/ThinkPHP/Library/Think/Template/TagLib/Html.class.php | 1 | <?php | COMMENT |
| LOW | …er/ThinkPHP/Library/Think/Template/TagLib/Cx.class.php | 1 | <?php | COMMENT |
| LOW | …/ThinkPHP/Library/Vendor/Parsedown/Parsedown.class.php | 1 | <?php | COMMENT |
| LOW | …pplication/Api/Controller/ExtLoginController.class.php | 281 | # 2 开启phpCAS debug | COMMENT |
| LOW | …pplication/Api/Controller/ExtLoginController.class.php | 321 | COMMENT | |
| LOW | Public/editor.md/lib/underscore.min.js | 1 | // Underscore.js 1.8.2 | COMMENT |
| LOW | Public/editor.md/lib/prettify.min.js | 1 | // Copyright (C) 2006 Google Inc. | COMMENT |
| LOW | Public/editor.md/lib/flowchart.min.js | 1 | // flowchart, v1.3.4 | COMMENT |
| LOW | Public/editor.md/lib/raphael.min.js | 1 | // ┌────────────────────────────────────────────────────────────────────┐ \\ | COMMENT |
| LOW | Public/editor.md/lib/codemirror/mode/markdown/test.js | 681 | "[em *foo][em&strong __bar_hello** world]"); | COMMENT |
| LOW | Public/editor.md/lib/codemirror/mode/erlang/erlang.js | 461 | case "after":return d(s,{e:["receive","try"]}); | COMMENT |
| LOW | Public/editor.md/lib/codemirror/mode/tcl/index.html | 21 | <li><a href="../index.html">Language modes</a> | COMMENT |
| LOW | Public/editor.md/lib/codemirror/mode/tcl/index.html | 41 | ## ## Start Setup. ## ## | COMMENT |
| LOW | …/editor.md/lib/codemirror/mode/coffeescript/index.html | 21 | <li><a class=active href="#">CoffeeScript</a> | COMMENT |
| LOW | …/editor.md/lib/codemirror/mode/coffeescript/index.html | 41 | # **Underscore.coffee | COMMENT |
| LOW | Public/editor.md/lib/codemirror/mode/rpm/index.html | 61 | indentUnit: 4 | COMMENT |
| LOW | Public/editor.md/lib/codemirror/lib/codemirror.js | 3801 | if (cm.display.scroller.scrollLeft != val) cm.display.scroller.scrollLeft = val; | COMMENT |
| LOW | Public/editor.md/lib/codemirror/lib/codemirror.js | 8481 | // + (ES): European Number Separator | COMMENT |
| LOW | …editor.md/lib/codemirror/addon/lint/javascript-lint.js | 81 | // replaces | COMMENT |
| LOW | …or.md/lib/codemirror/addon/search/match-highlighter.js | 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others | COMMENT |
| LOW | Public/editor.md/lib/codemirror/addon/tern/tern.js | 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others | COMMENT |
| LOW | Public/editor.md/lib/codemirror/addon/tern/tern.js | 21 | // multi-file view, switch the view or focus to the named file. | COMMENT |
| LOW | web_src/vite.config.ts | 1 | import { defineConfig, splitVendorChunkPlugin } from 'vite' | COMMENT |
| LOW | web_src/public/editor.md/lib/underscore.min.js | 1 | // Underscore.js 1.8.2 | COMMENT |
| LOW | web_src/public/editor.md/lib/prettify.min.js | 1 | // Copyright (C) 2006 Google Inc. | COMMENT |
| LOW | web_src/public/editor.md/lib/flowchart.min.js | 1 | // flowchart.js, v1.14.1 | COMMENT |
| LOW | web_src/public/editor.md/lib/plantuml.js | 1641 | return aout.join('') | COMMENT |
| LOW | …/public/editor.md/lib/codemirror/mode/markdown/test.js | 681 | "[em *foo][em&strong __bar_hello** world]"); | COMMENT |
| LOW | …/public/editor.md/lib/codemirror/mode/erlang/erlang.js | 461 | case "after":return d(s,{e:["receive","try"]}); | COMMENT |
| LOW | …rc/public/editor.md/lib/codemirror/mode/tcl/index.html | 21 | <li><a href="../index.html">Language modes</a> | COMMENT |
| LOW | …rc/public/editor.md/lib/codemirror/mode/tcl/index.html | 41 | ## ## Start Setup. ## ## | COMMENT |
| LOW | …/editor.md/lib/codemirror/mode/coffeescript/index.html | 21 | <li><a class=active href="#">CoffeeScript</a> | COMMENT |
| LOW | …/editor.md/lib/codemirror/mode/coffeescript/index.html | 41 | # **Underscore.coffee | COMMENT |
| LOW | …rc/public/editor.md/lib/codemirror/mode/rpm/index.html | 61 | indentUnit: 4 | COMMENT |
| 10 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | web/xspreadsheet/xspreadsheet.js | 1 | !function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.expo | CODE |
| LOW | web/editor.md/editormd.js | 500 | .attr('placeholder', settings.placeholder) | CODE |
| LOW | web/editor.md/editormd.amd.js | 480 | markdownTextarea.addClass(classNames.textarea.markdown).attr("placeholder", settings.placeholder); | CODE |
| LOW | web/editor.md/editormd.amd.min.js | 2 | !function(e){"use strict";if("function"==typeof require&&"object"==typeof exports&&"object"==typeof module)module.export | CODE |
| LOW | web/editor.md/highlight/highlight.min.js | 505 | ;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","cod | CODE |
| LOW | web/editor.md/highlight/highlight.min.js | 729 | ;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","cod | CODE |
| LOW | web/editor.md/highlight/highlight.min.js | 1127 | ;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","cod | CODE |
| LOW | web/editor.md/lib/purify.min.js | 2 | !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define | CODE |
| LOW | web/editor.md/lib/codemirror/addons.min.js | 2 | !function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof def | CODE |
| LOW | web/editor.md/lib/codemirror/mode/textile/test.js | 80 | 'user@example.com'); | CODE |
| LOW | web/editor.md/lib/codemirror/mode/rst/index.html | 419 | Lorem ipsum [#f1]_ dolor sit amet ... [#f2]_ | CODE |
| LOW | web/editor.md/lib/codemirror/mode/rst/index.html | 419 | Lorem ipsum [#f1]_ dolor sit amet ... [#f2]_ | CODE |
| LOW | web/editor.md/lib/codemirror/mode/rst/index.html | 437 | Lorem ipsum [Ref]_ dolor sit amet. | CODE |
| LOW | web/editor.md/lib/codemirror/mode/rst/index.html | 437 | Lorem ipsum [Ref]_ dolor sit amet. | CODE |
| LOW | …/editor.md/lib/codemirror/addon/display/placeholder.js | 12 | CodeMirror.defineOption("placeholder", "", function(cm, val, old) { | CODE |
| LOW | …/editor.md/lib/codemirror/addon/display/placeholder.js | 40 | elt.appendChild(document.createTextNode(cm.getOption("placeholder"))); | CODE |
| LOW⚡ | web/assets/components-6e2175c7.js | 1 | import{g as Me,s as Ne,c as be,d as we,r as de,u as Qe,a as Lt,b as Ze,e as ut,f as At,h as Bt,i as Rt,j as Dt,k as Ht,l | CODE |
| LOW⚡ | web/assets/components-6e2175c7.js | 4 | `).map(C=>`<li>${C.replace(/^\d+\. /,"")}</li>`).join("")}</ol>`),t=t.replace(/\n/g,"<br>"),t=t.replace(/\x00CODEBLOCK(\ | CODE |
| LOW⚡ | web/assets/components-6e2175c7.js | 8 | `);if(S){if(S==="[DONE]"){e.onEvent({type:"done"}),e.onDone();return}try{const B=JSON.parse(S);if(T&&(B._sseEvent=T),e.o | CODE |
| LOW⚡ | web/assets/views-da2ae934.js | 1 | var uo=Object.defineProperty;var mo=(_,t,a)=>t in _?uo(_,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):_[t]=a;v | CODE |
| LOW⚡ | web/assets/views-da2ae934.js | 5 | ${M}`:""))}},S=(b=!1,y)=>{n.value=!1,v.value=null,setTimeout(()=>{var M;if(o.onClose(b),b)if(o.itemId&&o.itemId>0)window | CODE |
| LOW⚡ | web/assets/views-da2ae934.js | 12 | `}};return ne(()=>{o.value=!0}),(v,w)=>($(),J(ye,{show:o.value,title:v.$t("page.json_to_table"),width:"700px",onClose:f} | CODE |
| LOW⚡ | web/assets/views-da2ae934.js | 14 | \`\`\``)}catch{Y(a("page.invalid_json"))}};return ne(()=>{o.value=!0}),(s,v)=>($(),J(ye,{show:o.value,title:s.$t("page.b | CODE |
| LOW⚡ | web/assets/views-da2ae934.js | 18 | `}),t.onInsert(w)};return ne(()=>{a.value=!0}),(p,s)=>($(),J(ye,{show:a.value,title:p.$t("page.paste_insert_table"),widt | CODE |
| LOW⚡ | web/assets/views-da2ae934.js | 22 | `).replace(/<[^>]+>/g,""),le=async H=>{const ee=new FormData;ee.append("file",H),ee.append("item_id",String(P.value)),ee | CODE |
| LOW | web/assets/vendor-7c217075.js | 7 | In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function rm(e,t){return em(e)||tm(e | CODE |
| LOW | Public/editor.md/editormd.min.js | 1 | !function(a){"use strict";"function"==typeof require&&"object"==typeof exports&&"object"==typeof module?module.exports=a | CODE |
| LOW | Public/editor.md/editormd.js | 410 | markdownTextarea.addClass(classNames.textarea.markdown).attr("placeholder", settings.placeholder); | CODE |
| LOW | Public/editor.md/editormd.amd.js | 480 | markdownTextarea.addClass(classNames.textarea.markdown).attr("placeholder", settings.placeholder); | CODE |
| LOW | Public/editor.md/editormd.amd.min.js | 2 | !function(e){"use strict";if("function"==typeof require&&"object"==typeof exports&&"object"==typeof module)module.export | CODE |
| LOW | Public/editor.md/lib/codemirror/addons.min.js | 2 | !function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof def | CODE |
| LOW | Public/editor.md/lib/codemirror/mode/textile/test.js | 80 | 'user@example.com'); | CODE |
| LOW | Public/editor.md/lib/codemirror/mode/rst/index.html | 419 | Lorem ipsum [#f1]_ dolor sit amet ... [#f2]_ | CODE |
| LOW | Public/editor.md/lib/codemirror/mode/rst/index.html | 419 | Lorem ipsum [#f1]_ dolor sit amet ... [#f2]_ | CODE |
| LOW | Public/editor.md/lib/codemirror/mode/rst/index.html | 437 | Lorem ipsum [Ref]_ dolor sit amet. | CODE |
| LOW | Public/editor.md/lib/codemirror/mode/rst/index.html | 437 | Lorem ipsum [Ref]_ dolor sit amet. | CODE |
| LOW | …/editor.md/lib/codemirror/addon/display/placeholder.js | 12 | CodeMirror.defineOption("placeholder", "", function(cm, val, old) { | CODE |
| LOW | …/editor.md/lib/codemirror/addon/display/placeholder.js | 40 | elt.appendChild(document.createTextNode(cm.getOption("placeholder"))); | CODE |
| LOW | web_src/public/xspreadsheet/xspreadsheet.js | 1 | !function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.expo | CODE |
| LOW | web_src/public/editor.md/editormd.js | 500 | .attr('placeholder', settings.placeholder) | CODE |
| LOW | web_src/public/editor.md/editormd.amd.js | 480 | markdownTextarea.addClass(classNames.textarea.markdown).attr("placeholder", settings.placeholder); | CODE |
| LOW | web_src/public/editor.md/editormd.amd.min.js | 2 | !function(e){"use strict";if("function"==typeof require&&"object"==typeof exports&&"object"==typeof module)module.export | CODE |
| LOW | web_src/public/editor.md/highlight/highlight.min.js | 505 | ;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","cod | CODE |
| LOW | web_src/public/editor.md/highlight/highlight.min.js | 729 | ;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","cod | CODE |
| LOW | web_src/public/editor.md/highlight/highlight.min.js | 1127 | ;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","cod | CODE |
| LOW | web_src/public/editor.md/lib/purify.min.js | 2 | !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define | CODE |
| LOW | web_src/public/editor.md/lib/codemirror/addons.min.js | 2 | !function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof def | CODE |
| LOW | …c/public/editor.md/lib/codemirror/mode/textile/test.js | 80 | 'user@example.com'); | CODE |
| LOW | …rc/public/editor.md/lib/codemirror/mode/rst/index.html | 419 | Lorem ipsum [#f1]_ dolor sit amet ... [#f2]_ | CODE |
| LOW | …rc/public/editor.md/lib/codemirror/mode/rst/index.html | 419 | Lorem ipsum [#f1]_ dolor sit amet ... [#f2]_ | CODE |
| LOW | …rc/public/editor.md/lib/codemirror/mode/rst/index.html | 437 | Lorem ipsum [Ref]_ dolor sit amet. | CODE |
| LOW | …rc/public/editor.md/lib/codemirror/mode/rst/index.html | 437 | Lorem ipsum [Ref]_ dolor sit amet. | CODE |
| LOW | …/editor.md/lib/codemirror/addon/display/placeholder.js | 12 | CodeMirror.defineOption("placeholder", "", function(cm, val, old) { | CODE |
| LOW | …/editor.md/lib/codemirror/addon/display/placeholder.js | 40 | elt.appendChild(document.createTextNode(cm.getOption("placeholder"))); | CODE |
| LOW | web_src/src/components/PromptModal/index.vue | 15 | :placeholder="placeholder" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …/editor.md/lib/codemirror/mode/coffeescript/index.html | 106 | # Create a safe reference to the Underscore object for use below. | COMMENT |
| MEDIUM | …/editor.md/lib/codemirror/mode/coffeescript/index.html | 407 | # Create a function bound to a given object (assigning `this`, and arguments, | COMMENT |
| MEDIUM | web/editor.md/lib/codemirror/mode/puppet/index.html | 55 | # Create a subdirectory in /etc for config files | COMMENT |
| MEDIUM | web/editor.md/lib/codemirror/mode/puppet/index.html | 63 | # Create an example backup file, useful for reference | COMMENT |
| MEDIUM | web/editor.md/lib/codemirror/mode/puppet/index.html | 91 | # Create the base backup directory | COMMENT |
| MEDIUM | web/editor.md/lib/codemirror/mode/ruby/index.html | 97 | # Create a string of the polynomial in sort-of-readable form. | COMMENT |
| MEDIUM | …/editor.md/lib/codemirror/mode/coffeescript/index.html | 106 | # Create a safe reference to the Underscore object for use below. | COMMENT |
| MEDIUM | …/editor.md/lib/codemirror/mode/coffeescript/index.html | 407 | # Create a function bound to a given object (assigning `this`, and arguments, | COMMENT |
| MEDIUM | Public/editor.md/lib/codemirror/mode/puppet/index.html | 55 | # Create a subdirectory in /etc for config files | COMMENT |
| MEDIUM | Public/editor.md/lib/codemirror/mode/puppet/index.html | 63 | # Create an example backup file, useful for reference | COMMENT |
| MEDIUM | Public/editor.md/lib/codemirror/mode/puppet/index.html | 91 | # Create the base backup directory | COMMENT |
| MEDIUM | Public/editor.md/lib/codemirror/mode/ruby/index.html | 97 | # Create a string of the polynomial in sort-of-readable form. | COMMENT |
| MEDIUM | …/editor.md/lib/codemirror/mode/coffeescript/index.html | 106 | # Create a safe reference to the Underscore object for use below. | COMMENT |
| MEDIUM | …/editor.md/lib/codemirror/mode/coffeescript/index.html | 407 | # Create a function bound to a given object (assigning `this`, and arguments, | COMMENT |
| MEDIUM | …public/editor.md/lib/codemirror/mode/puppet/index.html | 55 | # Create a subdirectory in /etc for config files | COMMENT |
| MEDIUM | …public/editor.md/lib/codemirror/mode/puppet/index.html | 63 | # Create an example backup file, useful for reference | COMMENT |
| MEDIUM | …public/editor.md/lib/codemirror/mode/puppet/index.html | 91 | # Create the base backup directory | COMMENT |
| MEDIUM | …c/public/editor.md/lib/codemirror/mode/ruby/index.html | 97 | # Create a string of the polynomial in sort-of-readable form. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | web/editor.md/jquery.min.js | 4 | },removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.matc | CODE |
| CRITICAL | Public/js/common/jquery.min.js | 4 | },removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.matc | CODE |
| CRITICAL | web_src/public/editor.md/jquery.min.js | 4 | },removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.matc | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | web/editor.md/lib/codemirror/mode/gherkin/gherkin.js | 0 | ')) { state.inmultilinestring = false; state.allowmultilineargument = false; } else { stream.match(/.*/); } return "stri | STRING |
| HIGH | Public/editor.md/lib/codemirror/mode/gherkin/gherkin.js | 0 | ')) { state.inmultilinestring = false; state.allowmultilineargument = false; } else { stream.match(/.*/); } return "stri | STRING |
| HIGH | …ublic/editor.md/lib/codemirror/mode/gherkin/gherkin.js | 0 | ')) { state.inmultilinestring = false; state.allowmultilineargument = false; } else { stream.match(/.*/); } return "stri | STRING |
| HIGH | …editor.md/lib/codemirror/mode/livescript/livescript.js | 0 | ', next: 'qqdoc' }, { token: 'string', regex: '\'', next: 'qstring' }, { token: 'string', regex: '"', next: 'qqstring' } | STRING |
| HIGH | …editor.md/lib/codemirror/mode/livescript/livescript.js | 0 | ', next: 'qqdoc' }, { token: 'string', regex: '\'', next: 'qstring' }, { token: 'string', regex: '"', next: 'qqstring' } | STRING |
| HIGH | …editor.md/lib/codemirror/mode/livescript/livescript.js | 0 | ', next: 'qqdoc' }, { token: 'string', regex: '\'', next: 'qstring' }, { token: 'string', regex: '"', next: 'qqstring' } | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | web/assets/components-6e2175c7.js | 1 | import{g as Me,s as Ne,c as be,d as we,r as de,u as Qe,a as Lt,b as Ze,e as ut,f as At,h as Bt,i as Rt,j as Dt,k as Ht,l | CODE |
| HIGH | web_src/src/components/ai/AiTokenModal/index.vue | 266 | return generateConfig(realToken || 'YOUR_TOKEN_HERE') | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | web/editor.md/lib/codemirror/mode/ruby/index.html | 102 | # Assign exponents to each term, making pairs of coeff and exponent, | COMMENT |
| LOW | Public/editor.md/lib/codemirror/mode/ruby/index.html | 102 | # Assign exponents to each term, making pairs of coeff and exponent, | COMMENT |
| LOW | …c/public/editor.md/lib/codemirror/mode/ruby/index.html | 102 | # Assign exponents to each term, making pairs of coeff and exponent, | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | web/assets/core-9e7b1eb7.js | 46 | 付费会员可跳过:付费项目保存文档时跳过该关键词检测`,attorn_username_placeholder:"受让人用户名",keyword_required:"关键字不能为空",member_manage:"成员管理",add_memb | CODE |
| MEDIUM | server/tests/mcp/openapi3.json | 5 | "description": "This is a sample server Petstore server. You can find out more about Swagger at [http://swagger | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | web/assets/core-9e7b1eb7.js | 46 | 付费会员可跳过:付费项目保存文档时跳过该关键词检测`,attorn_username_placeholder:"受让人用户名",keyword_required:"关键字不能为空",member_manage:"成员管理",add_memb | CODE |
| MEDIUM | web_src/package-lock.json | 4674 | "resolved": "https://registry.npmmirror.com/robust-predicates/-/robust-predicates-3.0.2.tgz", | CODE |