cb23f814c7
Co-authored-by: Cursor <cursoragent@cursor.com>
5190 lines
183 KiB
JSON
5190 lines
183 KiB
JSON
{
|
|
"schemaVersion": "0.1.0",
|
|
"project": {
|
|
"name": "code-visualize",
|
|
"root": "E:/code-visualize",
|
|
"languages": [
|
|
"tsx",
|
|
"typescript"
|
|
],
|
|
"generatedAt": "2026-07-22T03:03:33.188Z",
|
|
"generator": "code-visualize-cli@0.1.0"
|
|
},
|
|
"stats": {
|
|
"fileCount": 21,
|
|
"containerCount": 2,
|
|
"functionCount": 94,
|
|
"edgeCount": 110,
|
|
"loc": 2212
|
|
},
|
|
"modules": [
|
|
{
|
|
"id": "module:src",
|
|
"kind": "module",
|
|
"name": "src",
|
|
"provenance": "ast",
|
|
"path": "src",
|
|
"childModuleIds": [],
|
|
"fileIds": [
|
|
"file:src/scanner.ts",
|
|
"file:src/types.ts",
|
|
"file:src/externals.ts",
|
|
"file:src/flows.ts",
|
|
"file:src/analyzer.ts",
|
|
"file:src/cli.ts"
|
|
],
|
|
"parentId": "module:."
|
|
},
|
|
{
|
|
"id": "module:.",
|
|
"kind": "module",
|
|
"name": "code-visualize",
|
|
"provenance": "ast",
|
|
"path": ".",
|
|
"childModuleIds": [
|
|
"module:src",
|
|
"module:web"
|
|
],
|
|
"fileIds": []
|
|
},
|
|
{
|
|
"id": "module:web/src/model",
|
|
"kind": "module",
|
|
"name": "model",
|
|
"provenance": "ast",
|
|
"path": "web/src/model",
|
|
"childModuleIds": [],
|
|
"fileIds": [
|
|
"file:web/src/model/report.ts",
|
|
"file:web/src/model/reportRepository.ts",
|
|
"file:web/src/model/graphModel.ts"
|
|
],
|
|
"parentId": "module:web/src"
|
|
},
|
|
{
|
|
"id": "module:web/src",
|
|
"kind": "module",
|
|
"name": "src",
|
|
"provenance": "ast",
|
|
"path": "web/src",
|
|
"childModuleIds": [
|
|
"module:web/src/model",
|
|
"module:web/src/services",
|
|
"module:web/src/viewmodel",
|
|
"module:web/src/view"
|
|
],
|
|
"fileIds": [
|
|
"file:web/src/main.tsx"
|
|
],
|
|
"parentId": "module:web"
|
|
},
|
|
{
|
|
"id": "module:web",
|
|
"kind": "module",
|
|
"name": "web",
|
|
"provenance": "ast",
|
|
"path": "web",
|
|
"childModuleIds": [
|
|
"module:web/src"
|
|
],
|
|
"fileIds": [
|
|
"file:web/vite.config.ts"
|
|
],
|
|
"parentId": "module:."
|
|
},
|
|
{
|
|
"id": "module:web/src/services",
|
|
"kind": "module",
|
|
"name": "services",
|
|
"provenance": "ast",
|
|
"path": "web/src/services",
|
|
"childModuleIds": [],
|
|
"fileIds": [
|
|
"file:web/src/services/dagreLayout.ts"
|
|
],
|
|
"parentId": "module:web/src"
|
|
},
|
|
{
|
|
"id": "module:web/src/viewmodel",
|
|
"kind": "module",
|
|
"name": "viewmodel",
|
|
"provenance": "ast",
|
|
"path": "web/src/viewmodel",
|
|
"childModuleIds": [],
|
|
"fileIds": [
|
|
"file:web/src/viewmodel/GraphViewModel.ts"
|
|
],
|
|
"parentId": "module:web/src"
|
|
},
|
|
{
|
|
"id": "module:web/src/view",
|
|
"kind": "module",
|
|
"name": "view",
|
|
"provenance": "ast",
|
|
"path": "web/src/view",
|
|
"childModuleIds": [
|
|
"module:web/src/view/components"
|
|
],
|
|
"fileIds": [
|
|
"file:web/src/view/vmContext.ts",
|
|
"file:web/src/view/App.tsx"
|
|
],
|
|
"parentId": "module:web/src"
|
|
},
|
|
{
|
|
"id": "module:web/src/view/components",
|
|
"kind": "module",
|
|
"name": "components",
|
|
"provenance": "ast",
|
|
"path": "web/src/view/components",
|
|
"childModuleIds": [],
|
|
"fileIds": [
|
|
"file:web/src/view/components/FlowNode.tsx",
|
|
"file:web/src/view/components/FlowGraph.tsx",
|
|
"file:web/src/view/components/FlowList.tsx",
|
|
"file:web/src/view/components/GroupList.tsx",
|
|
"file:web/src/view/components/NodeDetailPanel.tsx",
|
|
"file:web/src/view/components/SearchBar.tsx"
|
|
],
|
|
"parentId": "module:web/src/view"
|
|
}
|
|
],
|
|
"files": [
|
|
{
|
|
"id": "file:src/scanner.ts",
|
|
"kind": "file",
|
|
"name": "scanner.ts",
|
|
"location": {
|
|
"file": "src/scanner.ts",
|
|
"startLine": 1,
|
|
"endLine": 69
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"moduleId": "module:src",
|
|
"path": "src/scanner.ts",
|
|
"loc": 69,
|
|
"containerIds": [],
|
|
"functionIds": [
|
|
"func:src/scanner.ts#toPosix@19",
|
|
"func:src/scanner.ts#collectSourceFiles@24",
|
|
"func:src/scanner.ts#walk@27",
|
|
"func:src/scanner.ts#languageOf@52"
|
|
]
|
|
},
|
|
{
|
|
"id": "file:src/types.ts",
|
|
"kind": "file",
|
|
"name": "types.ts",
|
|
"location": {
|
|
"file": "src/types.ts",
|
|
"startLine": 1,
|
|
"endLine": 205
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"moduleId": "module:src",
|
|
"path": "src/types.ts",
|
|
"loc": 205,
|
|
"containerIds": [],
|
|
"functionIds": []
|
|
},
|
|
{
|
|
"id": "file:src/externals.ts",
|
|
"kind": "file",
|
|
"name": "externals.ts",
|
|
"location": {
|
|
"file": "src/externals.ts",
|
|
"startLine": 1,
|
|
"endLine": 61
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"moduleId": "module:src",
|
|
"path": "src/externals.ts",
|
|
"loc": 61,
|
|
"containerIds": [],
|
|
"functionIds": [
|
|
"func:src/externals.ts#deriveExternalSystems@4"
|
|
]
|
|
},
|
|
{
|
|
"id": "file:src/flows.ts",
|
|
"kind": "file",
|
|
"name": "flows.ts",
|
|
"location": {
|
|
"file": "src/flows.ts",
|
|
"startLine": 1,
|
|
"endLine": 103
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"moduleId": "module:src",
|
|
"path": "src/flows.ts",
|
|
"loc": 103,
|
|
"containerIds": [],
|
|
"functionIds": [
|
|
"func:src/flows.ts#generateCallFlows@16",
|
|
"func:src/flows.ts#stepIdOf@70",
|
|
"func:src/flows.ts#map() 回调@72@72"
|
|
]
|
|
},
|
|
{
|
|
"id": "file:src/analyzer.ts",
|
|
"kind": "file",
|
|
"name": "analyzer.ts",
|
|
"location": {
|
|
"file": "src/analyzer.ts",
|
|
"startLine": 1,
|
|
"endLine": 610
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"moduleId": "module:src",
|
|
"path": "src/analyzer.ts",
|
|
"loc": 610,
|
|
"containerIds": [],
|
|
"functionIds": [
|
|
"func:src/analyzer.ts#analyzeProject@32",
|
|
"func:src/analyzer.ts#relOf@64",
|
|
"func:src/analyzer.ts#inProject@65",
|
|
"func:src/analyzer.ts#locOf@70",
|
|
"func:src/analyzer.ts#ensureModule@83",
|
|
"func:src/analyzer.ts#getParams@108",
|
|
"func:src/analyzer.ts#buildSignature@117",
|
|
"func:src/analyzer.ts#registerFunc@122",
|
|
"func:src/analyzer.ts#isFnInit@169",
|
|
"func:src/analyzer.ts#containsCall@173",
|
|
"func:src/analyzer.ts#scan@175",
|
|
"func:src/analyzer.ts#routeNameFromCall@188",
|
|
"func:src/analyzer.ts#inlineName@202",
|
|
"func:src/analyzer.ts#registerFile@223",
|
|
"func:src/analyzer.ts#visit@245",
|
|
"func:src/analyzer.ts#extractPathArg@333",
|
|
"func:src/analyzer.ts#extractMethodFromOptions@341",
|
|
"func:src/analyzer.ts#hostOf@352",
|
|
"func:src/analyzer.ts#detectDb@358",
|
|
"func:src/analyzer.ts#detectApiOut@382",
|
|
"func:src/analyzer.ts#detectApiIn@400",
|
|
"func:src/analyzer.ts#addInteraction@419",
|
|
"func:src/analyzer.ts#addEdge@433",
|
|
"func:src/analyzer.ts#resolveCallTargetFuncId@440",
|
|
"func:src/analyzer.ts#getModuleFunc@462",
|
|
"func:src/analyzer.ts#analyzeRelations@487",
|
|
"func:src/analyzer.ts#walk@492",
|
|
"func:src/analyzer.ts#resolveInternalImport@548"
|
|
]
|
|
},
|
|
{
|
|
"id": "file:src/cli.ts",
|
|
"kind": "file",
|
|
"name": "cli.ts",
|
|
"location": {
|
|
"file": "src/cli.ts",
|
|
"startLine": 1,
|
|
"endLine": 71
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"moduleId": "module:src",
|
|
"path": "src/cli.ts",
|
|
"loc": 71,
|
|
"containerIds": [],
|
|
"functionIds": [
|
|
"func:src/cli.ts#parseArgs@13",
|
|
"func:src/cli.ts#main@40",
|
|
"func:src/cli.ts#<module>@0"
|
|
]
|
|
},
|
|
{
|
|
"id": "file:web/src/model/report.ts",
|
|
"kind": "file",
|
|
"name": "report.ts",
|
|
"location": {
|
|
"file": "web/src/model/report.ts",
|
|
"startLine": 1,
|
|
"endLine": 194
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"moduleId": "module:web/src/model",
|
|
"path": "web/src/model/report.ts",
|
|
"loc": 194,
|
|
"containerIds": [],
|
|
"functionIds": []
|
|
},
|
|
{
|
|
"id": "file:web/src/model/reportRepository.ts",
|
|
"kind": "file",
|
|
"name": "reportRepository.ts",
|
|
"location": {
|
|
"file": "web/src/model/reportRepository.ts",
|
|
"startLine": 1,
|
|
"endLine": 27
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"moduleId": "module:web/src/model",
|
|
"path": "web/src/model/reportRepository.ts",
|
|
"loc": 27,
|
|
"containerIds": [
|
|
"container:web/src/model/reportRepository.ts#HttpReportRepository@16"
|
|
],
|
|
"functionIds": []
|
|
},
|
|
{
|
|
"id": "file:web/src/model/graphModel.ts",
|
|
"kind": "file",
|
|
"name": "graphModel.ts",
|
|
"location": {
|
|
"file": "web/src/model/graphModel.ts",
|
|
"startLine": 1,
|
|
"endLine": 67
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"moduleId": "module:web/src/model",
|
|
"path": "web/src/model/graphModel.ts",
|
|
"loc": 67,
|
|
"containerIds": [],
|
|
"functionIds": [
|
|
"func:web/src/model/graphModel.ts#baseName@19",
|
|
"func:web/src/model/graphModel.ts#qualifierOf@24",
|
|
"func:web/src/model/graphModel.ts#flowToGraph@43",
|
|
"func:web/src/model/graphModel.ts#map() 回调@44@44"
|
|
]
|
|
},
|
|
{
|
|
"id": "file:web/src/services/dagreLayout.ts",
|
|
"kind": "file",
|
|
"name": "dagreLayout.ts",
|
|
"location": {
|
|
"file": "web/src/services/dagreLayout.ts",
|
|
"startLine": 1,
|
|
"endLine": 63
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"moduleId": "module:web/src/services",
|
|
"path": "web/src/services/dagreLayout.ts",
|
|
"loc": 63,
|
|
"containerIds": [],
|
|
"functionIds": [
|
|
"func:web/src/services/dagreLayout.ts#computeLayout@31"
|
|
]
|
|
},
|
|
{
|
|
"id": "file:web/src/viewmodel/GraphViewModel.ts",
|
|
"kind": "file",
|
|
"name": "GraphViewModel.ts",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 1,
|
|
"endLine": 290
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"moduleId": "module:web/src/viewmodel",
|
|
"path": "web/src/viewmodel/GraphViewModel.ts",
|
|
"loc": 290,
|
|
"containerIds": [
|
|
"container:web/src/viewmodel/GraphViewModel.ts#GraphViewModel@43"
|
|
],
|
|
"functionIds": [
|
|
"func:web/src/viewmodel/GraphViewModel.ts#baseName@34",
|
|
"func:web/src/viewmodel/GraphViewModel.ts#runInAction() 回调@149@149",
|
|
"func:web/src/viewmodel/GraphViewModel.ts#map() 回调@186@186"
|
|
]
|
|
},
|
|
{
|
|
"id": "file:web/src/view/vmContext.ts",
|
|
"kind": "file",
|
|
"name": "vmContext.ts",
|
|
"location": {
|
|
"file": "web/src/view/vmContext.ts",
|
|
"startLine": 1,
|
|
"endLine": 11
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"moduleId": "module:web/src/view",
|
|
"path": "web/src/view/vmContext.ts",
|
|
"loc": 11,
|
|
"containerIds": [],
|
|
"functionIds": [
|
|
"func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"func:web/src/view/vmContext.ts#<module>@0"
|
|
]
|
|
},
|
|
{
|
|
"id": "file:web/src/view/components/FlowNode.tsx",
|
|
"kind": "file",
|
|
"name": "FlowNode.tsx",
|
|
"location": {
|
|
"file": "web/src/view/components/FlowNode.tsx",
|
|
"startLine": 1,
|
|
"endLine": 67
|
|
},
|
|
"language": "tsx",
|
|
"provenance": "ast",
|
|
"moduleId": "module:web/src/view/components",
|
|
"path": "web/src/view/components/FlowNode.tsx",
|
|
"loc": 67,
|
|
"containerIds": [],
|
|
"functionIds": [
|
|
"func:web/src/view/components/FlowNode.tsx#interactionBadges@12",
|
|
"func:web/src/view/components/FlowNode.tsx#memo() 回调@40@40",
|
|
"func:web/src/view/components/FlowNode.tsx#<module>@0"
|
|
]
|
|
},
|
|
{
|
|
"id": "file:web/src/view/components/FlowGraph.tsx",
|
|
"kind": "file",
|
|
"name": "FlowGraph.tsx",
|
|
"location": {
|
|
"file": "web/src/view/components/FlowGraph.tsx",
|
|
"startLine": 1,
|
|
"endLine": 73
|
|
},
|
|
"language": "tsx",
|
|
"provenance": "ast",
|
|
"moduleId": "module:web/src/view/components",
|
|
"path": "web/src/view/components/FlowGraph.tsx",
|
|
"loc": 73,
|
|
"containerIds": [],
|
|
"functionIds": [
|
|
"func:web/src/view/components/FlowGraph.tsx#observer() 回调@17@17",
|
|
"func:web/src/view/components/FlowGraph.tsx#<module>@0"
|
|
]
|
|
},
|
|
{
|
|
"id": "file:web/src/view/components/FlowList.tsx",
|
|
"kind": "file",
|
|
"name": "FlowList.tsx",
|
|
"location": {
|
|
"file": "web/src/view/components/FlowList.tsx",
|
|
"startLine": 1,
|
|
"endLine": 26
|
|
},
|
|
"language": "tsx",
|
|
"provenance": "ast",
|
|
"moduleId": "module:web/src/view/components",
|
|
"path": "web/src/view/components/FlowList.tsx",
|
|
"loc": 26,
|
|
"containerIds": [],
|
|
"functionIds": [
|
|
"func:web/src/view/components/FlowList.tsx#observer() 回调@4@4",
|
|
"func:web/src/view/components/FlowList.tsx#<module>@0"
|
|
]
|
|
},
|
|
{
|
|
"id": "file:web/src/view/components/GroupList.tsx",
|
|
"kind": "file",
|
|
"name": "GroupList.tsx",
|
|
"location": {
|
|
"file": "web/src/view/components/GroupList.tsx",
|
|
"startLine": 1,
|
|
"endLine": 37
|
|
},
|
|
"language": "tsx",
|
|
"provenance": "ast",
|
|
"moduleId": "module:web/src/view/components",
|
|
"path": "web/src/view/components/GroupList.tsx",
|
|
"loc": 37,
|
|
"containerIds": [],
|
|
"functionIds": [
|
|
"func:web/src/view/components/GroupList.tsx#observer() 回调@4@4",
|
|
"func:web/src/view/components/GroupList.tsx#<module>@0"
|
|
]
|
|
},
|
|
{
|
|
"id": "file:web/src/view/components/NodeDetailPanel.tsx",
|
|
"kind": "file",
|
|
"name": "NodeDetailPanel.tsx",
|
|
"location": {
|
|
"file": "web/src/view/components/NodeDetailPanel.tsx",
|
|
"startLine": 1,
|
|
"endLine": 86
|
|
},
|
|
"language": "tsx",
|
|
"provenance": "ast",
|
|
"moduleId": "module:web/src/view/components",
|
|
"path": "web/src/view/components/NodeDetailPanel.tsx",
|
|
"loc": 86,
|
|
"containerIds": [],
|
|
"functionIds": [
|
|
"func:web/src/view/components/NodeDetailPanel.tsx#describeInteraction@5",
|
|
"func:web/src/view/components/NodeDetailPanel.tsx#observer() 回调@13@13",
|
|
"func:web/src/view/components/NodeDetailPanel.tsx#<module>@0"
|
|
]
|
|
},
|
|
{
|
|
"id": "file:web/src/view/components/SearchBar.tsx",
|
|
"kind": "file",
|
|
"name": "SearchBar.tsx",
|
|
"location": {
|
|
"file": "web/src/view/components/SearchBar.tsx",
|
|
"startLine": 1,
|
|
"endLine": 60
|
|
},
|
|
"language": "tsx",
|
|
"provenance": "ast",
|
|
"moduleId": "module:web/src/view/components",
|
|
"path": "web/src/view/components/SearchBar.tsx",
|
|
"loc": 60,
|
|
"containerIds": [],
|
|
"functionIds": [
|
|
"func:web/src/view/components/SearchBar.tsx#observer() 回调@6@6",
|
|
"func:web/src/view/components/SearchBar.tsx#activate@12",
|
|
"func:web/src/view/components/SearchBar.tsx#匿名函数@26@26",
|
|
"func:web/src/view/components/SearchBar.tsx#匿名函数@41@41",
|
|
"func:web/src/view/components/SearchBar.tsx#<module>@0"
|
|
]
|
|
},
|
|
{
|
|
"id": "file:web/src/view/App.tsx",
|
|
"kind": "file",
|
|
"name": "App.tsx",
|
|
"location": {
|
|
"file": "web/src/view/App.tsx",
|
|
"startLine": 1,
|
|
"endLine": 55
|
|
},
|
|
"language": "tsx",
|
|
"provenance": "ast",
|
|
"moduleId": "module:web/src/view",
|
|
"path": "web/src/view/App.tsx",
|
|
"loc": 55,
|
|
"containerIds": [],
|
|
"functionIds": [
|
|
"func:web/src/view/App.tsx#observer() 回调@9@9",
|
|
"func:web/src/view/App.tsx#<module>@0"
|
|
]
|
|
},
|
|
{
|
|
"id": "file:web/src/main.tsx",
|
|
"kind": "file",
|
|
"name": "main.tsx",
|
|
"location": {
|
|
"file": "web/src/main.tsx",
|
|
"startLine": 1,
|
|
"endLine": 26
|
|
},
|
|
"language": "tsx",
|
|
"provenance": "ast",
|
|
"moduleId": "module:web/src",
|
|
"path": "web/src/main.tsx",
|
|
"loc": 26,
|
|
"containerIds": [],
|
|
"functionIds": [
|
|
"func:web/src/main.tsx#<module>@0"
|
|
]
|
|
},
|
|
{
|
|
"id": "file:web/vite.config.ts",
|
|
"kind": "file",
|
|
"name": "vite.config.ts",
|
|
"location": {
|
|
"file": "web/vite.config.ts",
|
|
"startLine": 1,
|
|
"endLine": 11
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"moduleId": "module:web",
|
|
"path": "web/vite.config.ts",
|
|
"loc": 11,
|
|
"containerIds": [],
|
|
"functionIds": [
|
|
"func:web/vite.config.ts#<module>@0"
|
|
]
|
|
}
|
|
],
|
|
"containers": [
|
|
{
|
|
"id": "container:web/src/model/reportRepository.ts#HttpReportRepository@16",
|
|
"kind": "container",
|
|
"name": "HttpReportRepository",
|
|
"qualifiedName": "HttpReportRepository",
|
|
"location": {
|
|
"file": "web/src/model/reportRepository.ts",
|
|
"startLine": 16,
|
|
"endLine": 26,
|
|
"startCol": 1,
|
|
"endCol": 2
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/model/reportRepository.ts",
|
|
"moduleId": "module:web/src/model",
|
|
"functionIds": [
|
|
"func:web/src/model/reportRepository.ts#HttpReportRepository.constructor@17",
|
|
"func:web/src/model/reportRepository.ts#HttpReportRepository.load@19"
|
|
],
|
|
"fieldIds": []
|
|
},
|
|
{
|
|
"id": "container:web/src/viewmodel/GraphViewModel.ts#GraphViewModel@43",
|
|
"kind": "container",
|
|
"name": "GraphViewModel",
|
|
"qualifiedName": "GraphViewModel",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 43,
|
|
"endLine": 289,
|
|
"startCol": 1,
|
|
"endCol": 2
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/viewmodel/GraphViewModel.ts",
|
|
"moduleId": "module:web/src/viewmodel",
|
|
"functionIds": [
|
|
"func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.constructor@58",
|
|
"func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.sources@66",
|
|
"func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.currentSource@70",
|
|
"func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectReport@74",
|
|
"func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.groupOfFlow@86",
|
|
"func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.groups@100",
|
|
"func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.visibleFlows@112",
|
|
"func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectGroup@117",
|
|
"func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.load@126",
|
|
"func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.flows@160",
|
|
"func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.currentFlow@165",
|
|
"func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.positionedGraph@171",
|
|
"func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectedFunc@194",
|
|
"func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.flowsForSelectedFunc@202",
|
|
"func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.openFlowForFunc@211",
|
|
"func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.setSearchQuery@221",
|
|
"func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.funcIdsInFlows@225",
|
|
"func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.biggestFlowForFunc@233",
|
|
"func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.searchResults@240",
|
|
"func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.activateSearchResult@268",
|
|
"func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectFlow@280",
|
|
"func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectNode@286"
|
|
],
|
|
"fieldIds": [
|
|
"field:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.loading@44",
|
|
"field:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.error@45",
|
|
"field:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.report@46",
|
|
"field:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectedSourceId@48",
|
|
"field:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectedGroupId@49",
|
|
"field:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectedFlowId@50",
|
|
"field:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectedNodeId@51",
|
|
"field:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.searchQuery@52",
|
|
"field:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.funcById@54",
|
|
"field:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.containerById@55",
|
|
"field:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.fileById@56"
|
|
]
|
|
}
|
|
],
|
|
"functions": [
|
|
{
|
|
"id": "func:src/scanner.ts#toPosix@19",
|
|
"kind": "function",
|
|
"name": "toPosix",
|
|
"qualifiedName": "toPosix",
|
|
"location": {
|
|
"file": "src/scanner.ts",
|
|
"startLine": 19,
|
|
"endLine": 21,
|
|
"startCol": 1,
|
|
"endCol": 2
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/scanner.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "toPosix(p: string): string",
|
|
"params": [
|
|
{
|
|
"name": "p",
|
|
"typeRef": "string",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "string",
|
|
"loc": 3
|
|
},
|
|
{
|
|
"id": "func:src/scanner.ts#collectSourceFiles@24",
|
|
"kind": "function",
|
|
"name": "collectSourceFiles",
|
|
"qualifiedName": "collectSourceFiles",
|
|
"location": {
|
|
"file": "src/scanner.ts",
|
|
"startLine": 24,
|
|
"endLine": 50,
|
|
"startCol": 1,
|
|
"endCol": 2
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/scanner.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "collectSourceFiles(root: string): string[]",
|
|
"params": [
|
|
{
|
|
"name": "root",
|
|
"typeRef": "string",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "string[]",
|
|
"loc": 27
|
|
},
|
|
{
|
|
"id": "func:src/scanner.ts#walk@27",
|
|
"kind": "function",
|
|
"name": "walk",
|
|
"qualifiedName": "walk",
|
|
"location": {
|
|
"file": "src/scanner.ts",
|
|
"startLine": 27,
|
|
"endLine": 46,
|
|
"startCol": 9,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/scanner.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "walk(dir: string): void",
|
|
"params": [
|
|
{
|
|
"name": "dir",
|
|
"typeRef": "string",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "void",
|
|
"loc": 20
|
|
},
|
|
{
|
|
"id": "func:src/scanner.ts#languageOf@52",
|
|
"kind": "function",
|
|
"name": "languageOf",
|
|
"qualifiedName": "languageOf",
|
|
"location": {
|
|
"file": "src/scanner.ts",
|
|
"startLine": 52,
|
|
"endLine": 68,
|
|
"startCol": 1,
|
|
"endCol": 2
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/scanner.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "languageOf(file: string): string",
|
|
"params": [
|
|
{
|
|
"name": "file",
|
|
"typeRef": "string",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "string",
|
|
"loc": 17
|
|
},
|
|
{
|
|
"id": "func:src/externals.ts#deriveExternalSystems@4",
|
|
"kind": "function",
|
|
"name": "deriveExternalSystems",
|
|
"qualifiedName": "deriveExternalSystems",
|
|
"location": {
|
|
"file": "src/externals.ts",
|
|
"startLine": 4,
|
|
"endLine": 60,
|
|
"startCol": 1,
|
|
"endCol": 2
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/externals.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "deriveExternalSystems(functions: Func[]): ExternalSystem[]",
|
|
"params": [
|
|
{
|
|
"name": "functions",
|
|
"typeRef": "Func[]",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "ExternalSystem[]",
|
|
"loc": 57
|
|
},
|
|
{
|
|
"id": "func:src/flows.ts#generateCallFlows@16",
|
|
"kind": "function",
|
|
"name": "generateCallFlows",
|
|
"qualifiedName": "generateCallFlows",
|
|
"location": {
|
|
"file": "src/flows.ts",
|
|
"startLine": 16,
|
|
"endLine": 102,
|
|
"startCol": 1,
|
|
"endCol": 2
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/flows.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "generateCallFlows(functions: Func[], edges: Edge[], options: Partial<FlowOptions>): Flow[]",
|
|
"params": [
|
|
{
|
|
"name": "functions",
|
|
"typeRef": "Func[]",
|
|
"optional": false
|
|
},
|
|
{
|
|
"name": "edges",
|
|
"typeRef": "Edge[]",
|
|
"optional": false
|
|
},
|
|
{
|
|
"name": "options",
|
|
"typeRef": "Partial<FlowOptions>",
|
|
"optional": true
|
|
}
|
|
],
|
|
"returnType": "Flow[]",
|
|
"loc": 87
|
|
},
|
|
{
|
|
"id": "func:src/flows.ts#stepIdOf@70",
|
|
"kind": "function",
|
|
"name": "stepIdOf",
|
|
"qualifiedName": "stepIdOf",
|
|
"location": {
|
|
"file": "src/flows.ts",
|
|
"startLine": 70,
|
|
"endLine": 70,
|
|
"startCol": 11,
|
|
"endCol": 70
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/flows.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "stepIdOf(fid: string): string",
|
|
"params": [
|
|
{
|
|
"name": "fid",
|
|
"typeRef": "string",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "string",
|
|
"loc": 1
|
|
},
|
|
{
|
|
"id": "func:src/flows.ts#map() 回调@72@72",
|
|
"kind": "function",
|
|
"name": "map() 回调@72",
|
|
"qualifiedName": "map() 回调@72",
|
|
"location": {
|
|
"file": "src/flows.ts",
|
|
"startLine": 72,
|
|
"endLine": 81,
|
|
"startCol": 44,
|
|
"endCol": 6
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/flows.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "map() 回调@72(fid, i)",
|
|
"params": [
|
|
{
|
|
"name": "fid",
|
|
"optional": false
|
|
},
|
|
{
|
|
"name": "i",
|
|
"optional": false
|
|
}
|
|
],
|
|
"loc": 10
|
|
},
|
|
{
|
|
"id": "func:src/analyzer.ts#analyzeProject@32",
|
|
"kind": "function",
|
|
"name": "analyzeProject",
|
|
"qualifiedName": "analyzeProject",
|
|
"location": {
|
|
"file": "src/analyzer.ts",
|
|
"startLine": 32,
|
|
"endLine": 609,
|
|
"startCol": 1,
|
|
"endCol": 2
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/analyzer.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "analyzeProject(root: string): Report",
|
|
"params": [
|
|
{
|
|
"name": "root",
|
|
"typeRef": "string",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "Report",
|
|
"loc": 578
|
|
},
|
|
{
|
|
"id": "func:src/analyzer.ts#relOf@64",
|
|
"kind": "function",
|
|
"name": "relOf",
|
|
"qualifiedName": "relOf",
|
|
"location": {
|
|
"file": "src/analyzer.ts",
|
|
"startLine": 64,
|
|
"endLine": 64,
|
|
"startCol": 9,
|
|
"endCol": 106
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/analyzer.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "relOf(sf: ts.SourceFile): string",
|
|
"params": [
|
|
{
|
|
"name": "sf",
|
|
"typeRef": "ts.SourceFile",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "string",
|
|
"loc": 1
|
|
},
|
|
{
|
|
"id": "func:src/analyzer.ts#inProject@65",
|
|
"kind": "function",
|
|
"name": "inProject",
|
|
"qualifiedName": "inProject",
|
|
"location": {
|
|
"file": "src/analyzer.ts",
|
|
"startLine": 65,
|
|
"endLine": 68,
|
|
"startCol": 9,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/analyzer.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "inProject(sf: ts.SourceFile): boolean",
|
|
"params": [
|
|
{
|
|
"name": "sf",
|
|
"typeRef": "ts.SourceFile",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "boolean",
|
|
"loc": 4
|
|
},
|
|
{
|
|
"id": "func:src/analyzer.ts#locOf@70",
|
|
"kind": "function",
|
|
"name": "locOf",
|
|
"qualifiedName": "locOf",
|
|
"location": {
|
|
"file": "src/analyzer.ts",
|
|
"startLine": 70,
|
|
"endLine": 80,
|
|
"startCol": 9,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/analyzer.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "locOf(node: ts.Node, sf: ts.SourceFile): SourceLocation",
|
|
"params": [
|
|
{
|
|
"name": "node",
|
|
"typeRef": "ts.Node",
|
|
"optional": false
|
|
},
|
|
{
|
|
"name": "sf",
|
|
"typeRef": "ts.SourceFile",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "SourceLocation",
|
|
"loc": 11
|
|
},
|
|
{
|
|
"id": "func:src/analyzer.ts#ensureModule@83",
|
|
"kind": "function",
|
|
"name": "ensureModule",
|
|
"qualifiedName": "ensureModule",
|
|
"location": {
|
|
"file": "src/analyzer.ts",
|
|
"startLine": 83,
|
|
"endLine": 105,
|
|
"startCol": 9,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/analyzer.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "ensureModule(dir: string): Module",
|
|
"params": [
|
|
{
|
|
"name": "dir",
|
|
"typeRef": "string",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "Module",
|
|
"loc": 23
|
|
},
|
|
{
|
|
"id": "func:src/analyzer.ts#getParams@108",
|
|
"kind": "function",
|
|
"name": "getParams",
|
|
"qualifiedName": "getParams",
|
|
"location": {
|
|
"file": "src/analyzer.ts",
|
|
"startLine": 108,
|
|
"endLine": 115,
|
|
"startCol": 9,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/analyzer.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "getParams(fn: ts.SignatureDeclarationBase, sf: ts.SourceFile): Param[]",
|
|
"params": [
|
|
{
|
|
"name": "fn",
|
|
"typeRef": "ts.SignatureDeclarationBase",
|
|
"optional": false
|
|
},
|
|
{
|
|
"name": "sf",
|
|
"typeRef": "ts.SourceFile",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "Param[]",
|
|
"loc": 8
|
|
},
|
|
{
|
|
"id": "func:src/analyzer.ts#buildSignature@117",
|
|
"kind": "function",
|
|
"name": "buildSignature",
|
|
"qualifiedName": "buildSignature",
|
|
"location": {
|
|
"file": "src/analyzer.ts",
|
|
"startLine": 117,
|
|
"endLine": 120,
|
|
"startCol": 9,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/analyzer.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "buildSignature(name: string, params: Param[], ret: string): string",
|
|
"params": [
|
|
{
|
|
"name": "name",
|
|
"typeRef": "string",
|
|
"optional": false
|
|
},
|
|
{
|
|
"name": "params",
|
|
"typeRef": "Param[]",
|
|
"optional": false
|
|
},
|
|
{
|
|
"name": "ret",
|
|
"typeRef": "string",
|
|
"optional": true
|
|
}
|
|
],
|
|
"returnType": "string",
|
|
"loc": 4
|
|
},
|
|
{
|
|
"id": "func:src/analyzer.ts#registerFunc@122",
|
|
"kind": "function",
|
|
"name": "registerFunc",
|
|
"qualifiedName": "registerFunc",
|
|
"location": {
|
|
"file": "src/analyzer.ts",
|
|
"startLine": 122,
|
|
"endLine": 167,
|
|
"startCol": 9,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/analyzer.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "registerFunc(declNode: ts.Node, fnNode: ts.SignatureDeclarationBase & ts.Node, name: string, sf: ts.SourceFile, rel: string, fileEntity: CodeFile, ownerId: string, qualifiedPrefix: string): Func",
|
|
"params": [
|
|
{
|
|
"name": "declNode",
|
|
"typeRef": "ts.Node",
|
|
"optional": false
|
|
},
|
|
{
|
|
"name": "fnNode",
|
|
"typeRef": "ts.SignatureDeclarationBase & ts.Node",
|
|
"optional": false
|
|
},
|
|
{
|
|
"name": "name",
|
|
"typeRef": "string",
|
|
"optional": false
|
|
},
|
|
{
|
|
"name": "sf",
|
|
"typeRef": "ts.SourceFile",
|
|
"optional": false
|
|
},
|
|
{
|
|
"name": "rel",
|
|
"typeRef": "string",
|
|
"optional": false
|
|
},
|
|
{
|
|
"name": "fileEntity",
|
|
"typeRef": "CodeFile",
|
|
"optional": false
|
|
},
|
|
{
|
|
"name": "ownerId",
|
|
"typeRef": "string",
|
|
"optional": true
|
|
},
|
|
{
|
|
"name": "qualifiedPrefix",
|
|
"typeRef": "string",
|
|
"optional": true
|
|
}
|
|
],
|
|
"returnType": "Func",
|
|
"loc": 46
|
|
},
|
|
{
|
|
"id": "func:src/analyzer.ts#isFnInit@169",
|
|
"kind": "function",
|
|
"name": "isFnInit",
|
|
"qualifiedName": "isFnInit",
|
|
"location": {
|
|
"file": "src/analyzer.ts",
|
|
"startLine": 169,
|
|
"endLine": 170,
|
|
"startCol": 9,
|
|
"endCol": 74
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/analyzer.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "isFnInit(node: ts.Node): node is ts.ArrowFunction | ts.FunctionExpression",
|
|
"params": [
|
|
{
|
|
"name": "node",
|
|
"typeRef": "ts.Node",
|
|
"optional": true
|
|
}
|
|
],
|
|
"returnType": "node is ts.ArrowFunction | ts.FunctionExpression",
|
|
"loc": 2
|
|
},
|
|
{
|
|
"id": "func:src/analyzer.ts#containsCall@173",
|
|
"kind": "function",
|
|
"name": "containsCall",
|
|
"qualifiedName": "containsCall",
|
|
"location": {
|
|
"file": "src/analyzer.ts",
|
|
"startLine": 173,
|
|
"endLine": 185,
|
|
"startCol": 9,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/analyzer.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "containsCall(n: ts.Node): boolean",
|
|
"params": [
|
|
{
|
|
"name": "n",
|
|
"typeRef": "ts.Node",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "boolean",
|
|
"loc": 13
|
|
},
|
|
{
|
|
"id": "func:src/analyzer.ts#scan@175",
|
|
"kind": "function",
|
|
"name": "scan",
|
|
"qualifiedName": "scan",
|
|
"location": {
|
|
"file": "src/analyzer.ts",
|
|
"startLine": 175,
|
|
"endLine": 182,
|
|
"startCol": 11,
|
|
"endCol": 6
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/analyzer.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "scan(x: ts.Node): void",
|
|
"params": [
|
|
{
|
|
"name": "x",
|
|
"typeRef": "ts.Node",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "void",
|
|
"loc": 8
|
|
},
|
|
{
|
|
"id": "func:src/analyzer.ts#routeNameFromCall@188",
|
|
"kind": "function",
|
|
"name": "routeNameFromCall",
|
|
"qualifiedName": "routeNameFromCall",
|
|
"location": {
|
|
"file": "src/analyzer.ts",
|
|
"startLine": 188,
|
|
"endLine": 199,
|
|
"startCol": 9,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/analyzer.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "routeNameFromCall(call: ts.CallExpression, sf: ts.SourceFile): string | undefined",
|
|
"params": [
|
|
{
|
|
"name": "call",
|
|
"typeRef": "ts.CallExpression",
|
|
"optional": false
|
|
},
|
|
{
|
|
"name": "sf",
|
|
"typeRef": "ts.SourceFile",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "string | undefined",
|
|
"loc": 12
|
|
},
|
|
{
|
|
"id": "func:src/analyzer.ts#inlineName@202",
|
|
"kind": "function",
|
|
"name": "inlineName",
|
|
"qualifiedName": "inlineName",
|
|
"location": {
|
|
"file": "src/analyzer.ts",
|
|
"startLine": 202,
|
|
"endLine": 220,
|
|
"startCol": 9,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/analyzer.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "inlineName(fn: ts.ArrowFunction | ts.FunctionExpression, sf: ts.SourceFile): string",
|
|
"params": [
|
|
{
|
|
"name": "fn",
|
|
"typeRef": "ts.ArrowFunction | ts.FunctionExpression",
|
|
"optional": false
|
|
},
|
|
{
|
|
"name": "sf",
|
|
"typeRef": "ts.SourceFile",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "string",
|
|
"loc": 19
|
|
},
|
|
{
|
|
"id": "func:src/analyzer.ts#registerFile@223",
|
|
"kind": "function",
|
|
"name": "registerFile",
|
|
"qualifiedName": "registerFile",
|
|
"location": {
|
|
"file": "src/analyzer.ts",
|
|
"startLine": 223,
|
|
"endLine": 330,
|
|
"startCol": 9,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/analyzer.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "registerFile(sf: ts.SourceFile): void",
|
|
"params": [
|
|
{
|
|
"name": "sf",
|
|
"typeRef": "ts.SourceFile",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "void",
|
|
"loc": 108
|
|
},
|
|
{
|
|
"id": "func:src/analyzer.ts#visit@245",
|
|
"kind": "function",
|
|
"name": "visit",
|
|
"qualifiedName": "visit",
|
|
"location": {
|
|
"file": "src/analyzer.ts",
|
|
"startLine": 245,
|
|
"endLine": 327,
|
|
"startCol": 11,
|
|
"endCol": 6
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/analyzer.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "visit(node: ts.Node): void",
|
|
"params": [
|
|
{
|
|
"name": "node",
|
|
"typeRef": "ts.Node",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "void",
|
|
"loc": 83
|
|
},
|
|
{
|
|
"id": "func:src/analyzer.ts#extractPathArg@333",
|
|
"kind": "function",
|
|
"name": "extractPathArg",
|
|
"qualifiedName": "extractPathArg",
|
|
"location": {
|
|
"file": "src/analyzer.ts",
|
|
"startLine": 333,
|
|
"endLine": 339,
|
|
"startCol": 9,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/analyzer.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "extractPathArg(node: ts.Expression | undefined, sf: ts.SourceFile): string | undefined",
|
|
"params": [
|
|
{
|
|
"name": "node",
|
|
"typeRef": "ts.Expression | undefined",
|
|
"optional": false
|
|
},
|
|
{
|
|
"name": "sf",
|
|
"typeRef": "ts.SourceFile",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "string | undefined",
|
|
"loc": 7
|
|
},
|
|
{
|
|
"id": "func:src/analyzer.ts#extractMethodFromOptions@341",
|
|
"kind": "function",
|
|
"name": "extractMethodFromOptions",
|
|
"qualifiedName": "extractMethodFromOptions",
|
|
"location": {
|
|
"file": "src/analyzer.ts",
|
|
"startLine": 341,
|
|
"endLine": 350,
|
|
"startCol": 9,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/analyzer.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "extractMethodFromOptions(arg: ts.Expression | undefined, sf: ts.SourceFile): string | undefined",
|
|
"params": [
|
|
{
|
|
"name": "arg",
|
|
"typeRef": "ts.Expression | undefined",
|
|
"optional": false
|
|
},
|
|
{
|
|
"name": "sf",
|
|
"typeRef": "ts.SourceFile",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "string | undefined",
|
|
"loc": 10
|
|
},
|
|
{
|
|
"id": "func:src/analyzer.ts#hostOf@352",
|
|
"kind": "function",
|
|
"name": "hostOf",
|
|
"qualifiedName": "hostOf",
|
|
"location": {
|
|
"file": "src/analyzer.ts",
|
|
"startLine": 352,
|
|
"endLine": 356,
|
|
"startCol": 9,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/analyzer.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "hostOf(url: string): string | undefined",
|
|
"params": [
|
|
{
|
|
"name": "url",
|
|
"typeRef": "string",
|
|
"optional": true
|
|
}
|
|
],
|
|
"returnType": "string | undefined",
|
|
"loc": 5
|
|
},
|
|
{
|
|
"id": "func:src/analyzer.ts#detectDb@358",
|
|
"kind": "function",
|
|
"name": "detectDb",
|
|
"qualifiedName": "detectDb",
|
|
"location": {
|
|
"file": "src/analyzer.ts",
|
|
"startLine": 358,
|
|
"endLine": 380,
|
|
"startCol": 9,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/analyzer.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "detectDb(call: ts.CallExpression, sf: ts.SourceFile): DbInteraction | undefined",
|
|
"params": [
|
|
{
|
|
"name": "call",
|
|
"typeRef": "ts.CallExpression",
|
|
"optional": false
|
|
},
|
|
{
|
|
"name": "sf",
|
|
"typeRef": "ts.SourceFile",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "DbInteraction | undefined",
|
|
"loc": 23
|
|
},
|
|
{
|
|
"id": "func:src/analyzer.ts#detectApiOut@382",
|
|
"kind": "function",
|
|
"name": "detectApiOut",
|
|
"qualifiedName": "detectApiOut",
|
|
"location": {
|
|
"file": "src/analyzer.ts",
|
|
"startLine": 382,
|
|
"endLine": 398,
|
|
"startCol": 9,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/analyzer.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "detectApiOut(call: ts.CallExpression, sf: ts.SourceFile): ApiInteraction | undefined",
|
|
"params": [
|
|
{
|
|
"name": "call",
|
|
"typeRef": "ts.CallExpression",
|
|
"optional": false
|
|
},
|
|
{
|
|
"name": "sf",
|
|
"typeRef": "ts.SourceFile",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "ApiInteraction | undefined",
|
|
"loc": 17
|
|
},
|
|
{
|
|
"id": "func:src/analyzer.ts#detectApiIn@400",
|
|
"kind": "function",
|
|
"name": "detectApiIn",
|
|
"qualifiedName": "detectApiIn",
|
|
"location": {
|
|
"file": "src/analyzer.ts",
|
|
"startLine": 400,
|
|
"endLine": 417,
|
|
"startCol": 9,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/analyzer.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "detectApiIn(call: ts.CallExpression, sf: ts.SourceFile): { interaction: ApiInteraction; handler?: ts.Node } | undefined",
|
|
"params": [
|
|
{
|
|
"name": "call",
|
|
"typeRef": "ts.CallExpression",
|
|
"optional": false
|
|
},
|
|
{
|
|
"name": "sf",
|
|
"typeRef": "ts.SourceFile",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "{ interaction: ApiInteraction; handler?: ts.Node } | undefined",
|
|
"loc": 18
|
|
},
|
|
{
|
|
"id": "func:src/analyzer.ts#addInteraction@419",
|
|
"kind": "function",
|
|
"name": "addInteraction",
|
|
"qualifiedName": "addInteraction",
|
|
"location": {
|
|
"file": "src/analyzer.ts",
|
|
"startLine": 419,
|
|
"endLine": 430,
|
|
"startCol": 9,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/analyzer.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "addInteraction(fnId: string, ix: Interaction): void",
|
|
"params": [
|
|
{
|
|
"name": "fnId",
|
|
"typeRef": "string",
|
|
"optional": false
|
|
},
|
|
{
|
|
"name": "ix",
|
|
"typeRef": "Interaction",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "void",
|
|
"loc": 12
|
|
},
|
|
{
|
|
"id": "func:src/analyzer.ts#addEdge@433",
|
|
"kind": "function",
|
|
"name": "addEdge",
|
|
"qualifiedName": "addEdge",
|
|
"location": {
|
|
"file": "src/analyzer.ts",
|
|
"startLine": 433,
|
|
"endLine": 438,
|
|
"startCol": 9,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/analyzer.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "addEdge(kind: Edge[\"kind\"], sourceId: string, targetId: string, provenance: Edge[\"provenance\"]): void",
|
|
"params": [
|
|
{
|
|
"name": "kind",
|
|
"typeRef": "Edge[\"kind\"]",
|
|
"optional": false
|
|
},
|
|
{
|
|
"name": "sourceId",
|
|
"typeRef": "string",
|
|
"optional": false
|
|
},
|
|
{
|
|
"name": "targetId",
|
|
"typeRef": "string",
|
|
"optional": false
|
|
},
|
|
{
|
|
"name": "provenance",
|
|
"typeRef": "Edge[\"provenance\"]",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "void",
|
|
"loc": 6
|
|
},
|
|
{
|
|
"id": "func:src/analyzer.ts#resolveCallTargetFuncId@440",
|
|
"kind": "function",
|
|
"name": "resolveCallTargetFuncId",
|
|
"qualifiedName": "resolveCallTargetFuncId",
|
|
"location": {
|
|
"file": "src/analyzer.ts",
|
|
"startLine": 440,
|
|
"endLine": 459,
|
|
"startCol": 9,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/analyzer.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "resolveCallTargetFuncId(call: ts.CallExpression): string | undefined",
|
|
"params": [
|
|
{
|
|
"name": "call",
|
|
"typeRef": "ts.CallExpression",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "string | undefined",
|
|
"loc": 20
|
|
},
|
|
{
|
|
"id": "func:src/analyzer.ts#getModuleFunc@462",
|
|
"kind": "function",
|
|
"name": "getModuleFunc",
|
|
"qualifiedName": "getModuleFunc",
|
|
"location": {
|
|
"file": "src/analyzer.ts",
|
|
"startLine": 462,
|
|
"endLine": 485,
|
|
"startCol": 9,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/analyzer.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "getModuleFunc(sf: ts.SourceFile, rel: string, fileEntity: CodeFile): string",
|
|
"params": [
|
|
{
|
|
"name": "sf",
|
|
"typeRef": "ts.SourceFile",
|
|
"optional": false
|
|
},
|
|
{
|
|
"name": "rel",
|
|
"typeRef": "string",
|
|
"optional": false
|
|
},
|
|
{
|
|
"name": "fileEntity",
|
|
"typeRef": "CodeFile",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "string",
|
|
"loc": 24
|
|
},
|
|
{
|
|
"id": "func:src/analyzer.ts#analyzeRelations@487",
|
|
"kind": "function",
|
|
"name": "analyzeRelations",
|
|
"qualifiedName": "analyzeRelations",
|
|
"location": {
|
|
"file": "src/analyzer.ts",
|
|
"startLine": 487,
|
|
"endLine": 546,
|
|
"startCol": 9,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/analyzer.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "analyzeRelations(sf: ts.SourceFile): void",
|
|
"params": [
|
|
{
|
|
"name": "sf",
|
|
"typeRef": "ts.SourceFile",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "void",
|
|
"loc": 60
|
|
},
|
|
{
|
|
"id": "func:src/analyzer.ts#walk@492",
|
|
"kind": "function",
|
|
"name": "walk",
|
|
"qualifiedName": "walk",
|
|
"location": {
|
|
"file": "src/analyzer.ts",
|
|
"startLine": 492,
|
|
"endLine": 543,
|
|
"startCol": 11,
|
|
"endCol": 6
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/analyzer.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "walk(node: ts.Node, currentFuncId: string | undefined): void",
|
|
"params": [
|
|
{
|
|
"name": "node",
|
|
"typeRef": "ts.Node",
|
|
"optional": false
|
|
},
|
|
{
|
|
"name": "currentFuncId",
|
|
"typeRef": "string | undefined",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "void",
|
|
"loc": 52
|
|
},
|
|
{
|
|
"id": "func:src/analyzer.ts#resolveInternalImport@548",
|
|
"kind": "function",
|
|
"name": "resolveInternalImport",
|
|
"qualifiedName": "resolveInternalImport",
|
|
"location": {
|
|
"file": "src/analyzer.ts",
|
|
"startLine": 548,
|
|
"endLine": 569,
|
|
"startCol": 9,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/analyzer.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "resolveInternalImport(fromRel: string, spec: string): string | undefined",
|
|
"params": [
|
|
{
|
|
"name": "fromRel",
|
|
"typeRef": "string",
|
|
"optional": false
|
|
},
|
|
{
|
|
"name": "spec",
|
|
"typeRef": "string",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "string | undefined",
|
|
"loc": 22
|
|
},
|
|
{
|
|
"id": "func:src/cli.ts#parseArgs@13",
|
|
"kind": "function",
|
|
"name": "parseArgs",
|
|
"qualifiedName": "parseArgs",
|
|
"location": {
|
|
"file": "src/cli.ts",
|
|
"startLine": 13,
|
|
"endLine": 23,
|
|
"startCol": 1,
|
|
"endCol": 2
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/cli.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "parseArgs(argv: string[]): CliArgs",
|
|
"params": [
|
|
{
|
|
"name": "argv",
|
|
"typeRef": "string[]",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "CliArgs",
|
|
"loc": 11
|
|
},
|
|
{
|
|
"id": "func:src/cli.ts#main@40",
|
|
"kind": "function",
|
|
"name": "main",
|
|
"qualifiedName": "main",
|
|
"location": {
|
|
"file": "src/cli.ts",
|
|
"startLine": 40,
|
|
"endLine": 68,
|
|
"startCol": 1,
|
|
"endCol": 2
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/cli.ts",
|
|
"moduleId": "module:src",
|
|
"signature": "main(): void",
|
|
"params": [],
|
|
"returnType": "void",
|
|
"loc": 29
|
|
},
|
|
{
|
|
"id": "func:web/src/model/reportRepository.ts#HttpReportRepository.constructor@17",
|
|
"kind": "function",
|
|
"name": "constructor",
|
|
"qualifiedName": "HttpReportRepository.constructor",
|
|
"location": {
|
|
"file": "web/src/model/reportRepository.ts",
|
|
"startLine": 17,
|
|
"endLine": 17,
|
|
"startCol": 3,
|
|
"endCol": 47
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/model/reportRepository.ts",
|
|
"ownerId": "container:web/src/model/reportRepository.ts#HttpReportRepository@16",
|
|
"moduleId": "module:web/src/model",
|
|
"signature": "constructor(url: string)",
|
|
"params": [
|
|
{
|
|
"name": "url",
|
|
"typeRef": "string",
|
|
"optional": false
|
|
}
|
|
],
|
|
"loc": 1
|
|
},
|
|
{
|
|
"id": "func:web/src/model/reportRepository.ts#HttpReportRepository.load@19",
|
|
"kind": "function",
|
|
"name": "load",
|
|
"qualifiedName": "HttpReportRepository.load",
|
|
"location": {
|
|
"file": "web/src/model/reportRepository.ts",
|
|
"startLine": 19,
|
|
"endLine": 25,
|
|
"startCol": 3,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/model/reportRepository.ts",
|
|
"ownerId": "container:web/src/model/reportRepository.ts#HttpReportRepository@16",
|
|
"moduleId": "module:web/src/model",
|
|
"signature": "load(): Promise<Report>",
|
|
"params": [],
|
|
"returnType": "Promise<Report>",
|
|
"loc": 7,
|
|
"interactions": [
|
|
{
|
|
"id": "ix:func:web/src/model/reportRepository.ts#HttpReportRepository.load@19:api:out:GET:",
|
|
"kind": "api",
|
|
"direction": "out",
|
|
"provenance": "resolved",
|
|
"protocol": "http",
|
|
"method": "GET"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "func:web/src/model/graphModel.ts#baseName@19",
|
|
"kind": "function",
|
|
"name": "baseName",
|
|
"qualifiedName": "baseName",
|
|
"location": {
|
|
"file": "web/src/model/graphModel.ts",
|
|
"startLine": 19,
|
|
"endLine": 22,
|
|
"startCol": 1,
|
|
"endCol": 2
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/model/graphModel.ts",
|
|
"moduleId": "module:web/src/model",
|
|
"signature": "baseName(path: string): string",
|
|
"params": [
|
|
{
|
|
"name": "path",
|
|
"typeRef": "string",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "string",
|
|
"loc": 4
|
|
},
|
|
{
|
|
"id": "func:web/src/model/graphModel.ts#qualifierOf@24",
|
|
"kind": "function",
|
|
"name": "qualifierOf",
|
|
"qualifiedName": "qualifierOf",
|
|
"location": {
|
|
"file": "web/src/model/graphModel.ts",
|
|
"startLine": 24,
|
|
"endLine": 29,
|
|
"startCol": 1,
|
|
"endCol": 2
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/model/graphModel.ts",
|
|
"moduleId": "module:web/src/model",
|
|
"signature": "qualifierOf(fn: Func | undefined, ctx: GraphContext): string | undefined",
|
|
"params": [
|
|
{
|
|
"name": "fn",
|
|
"typeRef": "Func | undefined",
|
|
"optional": false
|
|
},
|
|
{
|
|
"name": "ctx",
|
|
"typeRef": "GraphContext",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "string | undefined",
|
|
"loc": 6
|
|
},
|
|
{
|
|
"id": "func:web/src/model/graphModel.ts#flowToGraph@43",
|
|
"kind": "function",
|
|
"name": "flowToGraph",
|
|
"qualifiedName": "flowToGraph",
|
|
"location": {
|
|
"file": "web/src/model/graphModel.ts",
|
|
"startLine": 43,
|
|
"endLine": 66,
|
|
"startCol": 1,
|
|
"endCol": 2
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/model/graphModel.ts",
|
|
"moduleId": "module:web/src/model",
|
|
"signature": "flowToGraph(flow: Flow, ctx: GraphContext): GraphData",
|
|
"params": [
|
|
{
|
|
"name": "flow",
|
|
"typeRef": "Flow",
|
|
"optional": false
|
|
},
|
|
{
|
|
"name": "ctx",
|
|
"typeRef": "GraphContext",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "GraphData",
|
|
"loc": 24
|
|
},
|
|
{
|
|
"id": "func:web/src/model/graphModel.ts#map() 回调@44@44",
|
|
"kind": "function",
|
|
"name": "map() 回调@44",
|
|
"qualifiedName": "map() 回调@44",
|
|
"location": {
|
|
"file": "web/src/model/graphModel.ts",
|
|
"startLine": 44,
|
|
"endLine": 54,
|
|
"startCol": 45,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/model/graphModel.ts",
|
|
"moduleId": "module:web/src/model",
|
|
"signature": "map() 回调@44(step)",
|
|
"params": [
|
|
{
|
|
"name": "step",
|
|
"optional": false
|
|
}
|
|
],
|
|
"loc": 11
|
|
},
|
|
{
|
|
"id": "func:web/src/services/dagreLayout.ts#computeLayout@31",
|
|
"kind": "function",
|
|
"name": "computeLayout",
|
|
"qualifiedName": "computeLayout",
|
|
"location": {
|
|
"file": "web/src/services/dagreLayout.ts",
|
|
"startLine": 31,
|
|
"endLine": 62,
|
|
"startCol": 1,
|
|
"endCol": 2
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/services/dagreLayout.ts",
|
|
"moduleId": "module:web/src/services",
|
|
"signature": "computeLayout(nodes: LayoutNodeInput[], edges: LayoutEdgeInput[], options: LayoutOptions): Map<string, Position>",
|
|
"params": [
|
|
{
|
|
"name": "nodes",
|
|
"typeRef": "LayoutNodeInput[]",
|
|
"optional": false
|
|
},
|
|
{
|
|
"name": "edges",
|
|
"typeRef": "LayoutEdgeInput[]",
|
|
"optional": false
|
|
},
|
|
{
|
|
"name": "options",
|
|
"typeRef": "LayoutOptions",
|
|
"optional": true,
|
|
"defaultValue": "{}"
|
|
}
|
|
],
|
|
"returnType": "Map<string, Position>",
|
|
"loc": 32
|
|
},
|
|
{
|
|
"id": "func:web/src/viewmodel/GraphViewModel.ts#baseName@34",
|
|
"kind": "function",
|
|
"name": "baseName",
|
|
"qualifiedName": "baseName",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 34,
|
|
"endLine": 37,
|
|
"startCol": 1,
|
|
"endCol": 2
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/viewmodel/GraphViewModel.ts",
|
|
"moduleId": "module:web/src/viewmodel",
|
|
"signature": "baseName(path: string): string",
|
|
"params": [
|
|
{
|
|
"name": "path",
|
|
"typeRef": "string",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "string",
|
|
"loc": 4
|
|
},
|
|
{
|
|
"id": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.constructor@58",
|
|
"kind": "function",
|
|
"name": "constructor",
|
|
"qualifiedName": "GraphViewModel.constructor",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 58,
|
|
"endLine": 64,
|
|
"startCol": 3,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/viewmodel/GraphViewModel.ts",
|
|
"ownerId": "container:web/src/viewmodel/GraphViewModel.ts#GraphViewModel@43",
|
|
"moduleId": "module:web/src/viewmodel",
|
|
"signature": "constructor(sourceList: ReportSource[], makeRepository: (url: string) => ReportRepository)",
|
|
"params": [
|
|
{
|
|
"name": "sourceList",
|
|
"typeRef": "ReportSource[]",
|
|
"optional": false
|
|
},
|
|
{
|
|
"name": "makeRepository",
|
|
"typeRef": "(url: string) => ReportRepository",
|
|
"optional": false
|
|
}
|
|
],
|
|
"loc": 7
|
|
},
|
|
{
|
|
"id": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.sources@66",
|
|
"kind": "function",
|
|
"name": "sources",
|
|
"qualifiedName": "GraphViewModel.sources",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 66,
|
|
"endLine": 68,
|
|
"startCol": 3,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/viewmodel/GraphViewModel.ts",
|
|
"ownerId": "container:web/src/viewmodel/GraphViewModel.ts#GraphViewModel@43",
|
|
"moduleId": "module:web/src/viewmodel",
|
|
"signature": "sources(): ReportSource[]",
|
|
"params": [],
|
|
"returnType": "ReportSource[]",
|
|
"loc": 3
|
|
},
|
|
{
|
|
"id": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.currentSource@70",
|
|
"kind": "function",
|
|
"name": "currentSource",
|
|
"qualifiedName": "GraphViewModel.currentSource",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 70,
|
|
"endLine": 72,
|
|
"startCol": 3,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/viewmodel/GraphViewModel.ts",
|
|
"ownerId": "container:web/src/viewmodel/GraphViewModel.ts#GraphViewModel@43",
|
|
"moduleId": "module:web/src/viewmodel",
|
|
"signature": "currentSource(): ReportSource | null",
|
|
"params": [],
|
|
"returnType": "ReportSource | null",
|
|
"loc": 3
|
|
},
|
|
{
|
|
"id": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectReport@74",
|
|
"kind": "function",
|
|
"name": "selectReport",
|
|
"qualifiedName": "GraphViewModel.selectReport",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 74,
|
|
"endLine": 83,
|
|
"startCol": 3,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/viewmodel/GraphViewModel.ts",
|
|
"ownerId": "container:web/src/viewmodel/GraphViewModel.ts#GraphViewModel@43",
|
|
"moduleId": "module:web/src/viewmodel",
|
|
"signature": "selectReport(sourceId: string): void",
|
|
"params": [
|
|
{
|
|
"name": "sourceId",
|
|
"typeRef": "string",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "void",
|
|
"loc": 10
|
|
},
|
|
{
|
|
"id": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.groupOfFlow@86",
|
|
"kind": "function",
|
|
"name": "groupOfFlow",
|
|
"qualifiedName": "GraphViewModel.groupOfFlow",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 86,
|
|
"endLine": 97,
|
|
"startCol": 3,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/viewmodel/GraphViewModel.ts",
|
|
"ownerId": "container:web/src/viewmodel/GraphViewModel.ts#GraphViewModel@43",
|
|
"moduleId": "module:web/src/viewmodel",
|
|
"signature": "groupOfFlow(flow: Flow): FlowGroup",
|
|
"params": [
|
|
{
|
|
"name": "flow",
|
|
"typeRef": "Flow",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "FlowGroup",
|
|
"loc": 12
|
|
},
|
|
{
|
|
"id": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.groups@100",
|
|
"kind": "function",
|
|
"name": "groups",
|
|
"qualifiedName": "GraphViewModel.groups",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 100,
|
|
"endLine": 109,
|
|
"startCol": 3,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/viewmodel/GraphViewModel.ts",
|
|
"ownerId": "container:web/src/viewmodel/GraphViewModel.ts#GraphViewModel@43",
|
|
"moduleId": "module:web/src/viewmodel",
|
|
"signature": "groups(): FlowGroup[]",
|
|
"params": [],
|
|
"returnType": "FlowGroup[]",
|
|
"loc": 10
|
|
},
|
|
{
|
|
"id": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.visibleFlows@112",
|
|
"kind": "function",
|
|
"name": "visibleFlows",
|
|
"qualifiedName": "GraphViewModel.visibleFlows",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 112,
|
|
"endLine": 115,
|
|
"startCol": 3,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/viewmodel/GraphViewModel.ts",
|
|
"ownerId": "container:web/src/viewmodel/GraphViewModel.ts#GraphViewModel@43",
|
|
"moduleId": "module:web/src/viewmodel",
|
|
"signature": "visibleFlows(): Flow[]",
|
|
"params": [],
|
|
"returnType": "Flow[]",
|
|
"loc": 4
|
|
},
|
|
{
|
|
"id": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectGroup@117",
|
|
"kind": "function",
|
|
"name": "selectGroup",
|
|
"qualifiedName": "GraphViewModel.selectGroup",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 117,
|
|
"endLine": 124,
|
|
"startCol": 3,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/viewmodel/GraphViewModel.ts",
|
|
"ownerId": "container:web/src/viewmodel/GraphViewModel.ts#GraphViewModel@43",
|
|
"moduleId": "module:web/src/viewmodel",
|
|
"signature": "selectGroup(groupId: string | null): void",
|
|
"params": [
|
|
{
|
|
"name": "groupId",
|
|
"typeRef": "string | null",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "void",
|
|
"loc": 8
|
|
},
|
|
{
|
|
"id": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.load@126",
|
|
"kind": "function",
|
|
"name": "load",
|
|
"qualifiedName": "GraphViewModel.load",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 126,
|
|
"endLine": 157,
|
|
"startCol": 3,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/viewmodel/GraphViewModel.ts",
|
|
"ownerId": "container:web/src/viewmodel/GraphViewModel.ts#GraphViewModel@43",
|
|
"moduleId": "module:web/src/viewmodel",
|
|
"signature": "load(): Promise<void>",
|
|
"params": [],
|
|
"returnType": "Promise<void>",
|
|
"loc": 32
|
|
},
|
|
{
|
|
"id": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.flows@160",
|
|
"kind": "function",
|
|
"name": "flows",
|
|
"qualifiedName": "GraphViewModel.flows",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 160,
|
|
"endLine": 163,
|
|
"startCol": 3,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/viewmodel/GraphViewModel.ts",
|
|
"ownerId": "container:web/src/viewmodel/GraphViewModel.ts#GraphViewModel@43",
|
|
"moduleId": "module:web/src/viewmodel",
|
|
"signature": "flows(): Flow[]",
|
|
"params": [],
|
|
"returnType": "Flow[]",
|
|
"loc": 4
|
|
},
|
|
{
|
|
"id": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.currentFlow@165",
|
|
"kind": "function",
|
|
"name": "currentFlow",
|
|
"qualifiedName": "GraphViewModel.currentFlow",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 165,
|
|
"endLine": 168,
|
|
"startCol": 3,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/viewmodel/GraphViewModel.ts",
|
|
"ownerId": "container:web/src/viewmodel/GraphViewModel.ts#GraphViewModel@43",
|
|
"moduleId": "module:web/src/viewmodel",
|
|
"signature": "currentFlow(): Flow | null",
|
|
"params": [],
|
|
"returnType": "Flow | null",
|
|
"loc": 4
|
|
},
|
|
{
|
|
"id": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.positionedGraph@171",
|
|
"kind": "function",
|
|
"name": "positionedGraph",
|
|
"qualifiedName": "GraphViewModel.positionedGraph",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 171,
|
|
"endLine": 192,
|
|
"startCol": 3,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/viewmodel/GraphViewModel.ts",
|
|
"ownerId": "container:web/src/viewmodel/GraphViewModel.ts#GraphViewModel@43",
|
|
"moduleId": "module:web/src/viewmodel",
|
|
"signature": "positionedGraph(): PositionedGraph",
|
|
"params": [],
|
|
"returnType": "PositionedGraph",
|
|
"loc": 22
|
|
},
|
|
{
|
|
"id": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectedFunc@194",
|
|
"kind": "function",
|
|
"name": "selectedFunc",
|
|
"qualifiedName": "GraphViewModel.selectedFunc",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 194,
|
|
"endLine": 199,
|
|
"startCol": 3,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/viewmodel/GraphViewModel.ts",
|
|
"ownerId": "container:web/src/viewmodel/GraphViewModel.ts#GraphViewModel@43",
|
|
"moduleId": "module:web/src/viewmodel",
|
|
"signature": "selectedFunc(): Func | null",
|
|
"params": [],
|
|
"returnType": "Func | null",
|
|
"loc": 6
|
|
},
|
|
{
|
|
"id": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.flowsForSelectedFunc@202",
|
|
"kind": "function",
|
|
"name": "flowsForSelectedFunc",
|
|
"qualifiedName": "GraphViewModel.flowsForSelectedFunc",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 202,
|
|
"endLine": 208,
|
|
"startCol": 3,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/viewmodel/GraphViewModel.ts",
|
|
"ownerId": "container:web/src/viewmodel/GraphViewModel.ts#GraphViewModel@43",
|
|
"moduleId": "module:web/src/viewmodel",
|
|
"signature": "flowsForSelectedFunc(): Flow[]",
|
|
"params": [],
|
|
"returnType": "Flow[]",
|
|
"loc": 7
|
|
},
|
|
{
|
|
"id": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.openFlowForFunc@211",
|
|
"kind": "function",
|
|
"name": "openFlowForFunc",
|
|
"qualifiedName": "GraphViewModel.openFlowForFunc",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 211,
|
|
"endLine": 217,
|
|
"startCol": 3,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/viewmodel/GraphViewModel.ts",
|
|
"ownerId": "container:web/src/viewmodel/GraphViewModel.ts#GraphViewModel@43",
|
|
"moduleId": "module:web/src/viewmodel",
|
|
"signature": "openFlowForFunc(flowId: string, funcId: string): void",
|
|
"params": [
|
|
{
|
|
"name": "flowId",
|
|
"typeRef": "string",
|
|
"optional": false
|
|
},
|
|
{
|
|
"name": "funcId",
|
|
"typeRef": "string",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "void",
|
|
"loc": 7
|
|
},
|
|
{
|
|
"id": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.setSearchQuery@221",
|
|
"kind": "function",
|
|
"name": "setSearchQuery",
|
|
"qualifiedName": "GraphViewModel.setSearchQuery",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 221,
|
|
"endLine": 223,
|
|
"startCol": 3,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/viewmodel/GraphViewModel.ts",
|
|
"ownerId": "container:web/src/viewmodel/GraphViewModel.ts#GraphViewModel@43",
|
|
"moduleId": "module:web/src/viewmodel",
|
|
"signature": "setSearchQuery(q: string): void",
|
|
"params": [
|
|
{
|
|
"name": "q",
|
|
"typeRef": "string",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "void",
|
|
"loc": 3
|
|
},
|
|
{
|
|
"id": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.funcIdsInFlows@225",
|
|
"kind": "function",
|
|
"name": "funcIdsInFlows",
|
|
"qualifiedName": "GraphViewModel.funcIdsInFlows",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 225,
|
|
"endLine": 231,
|
|
"startCol": 3,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/viewmodel/GraphViewModel.ts",
|
|
"ownerId": "container:web/src/viewmodel/GraphViewModel.ts#GraphViewModel@43",
|
|
"moduleId": "module:web/src/viewmodel",
|
|
"signature": "funcIdsInFlows(): Set<string>",
|
|
"params": [],
|
|
"returnType": "Set<string>",
|
|
"loc": 7
|
|
},
|
|
{
|
|
"id": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.biggestFlowForFunc@233",
|
|
"kind": "function",
|
|
"name": "biggestFlowForFunc",
|
|
"qualifiedName": "GraphViewModel.biggestFlowForFunc",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 233,
|
|
"endLine": 238,
|
|
"startCol": 3,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/viewmodel/GraphViewModel.ts",
|
|
"ownerId": "container:web/src/viewmodel/GraphViewModel.ts#GraphViewModel@43",
|
|
"moduleId": "module:web/src/viewmodel",
|
|
"signature": "biggestFlowForFunc(funcId: string): Flow | null",
|
|
"params": [
|
|
{
|
|
"name": "funcId",
|
|
"typeRef": "string",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "Flow | null",
|
|
"loc": 6
|
|
},
|
|
{
|
|
"id": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.searchResults@240",
|
|
"kind": "function",
|
|
"name": "searchResults",
|
|
"qualifiedName": "GraphViewModel.searchResults",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 240,
|
|
"endLine": 266,
|
|
"startCol": 3,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/viewmodel/GraphViewModel.ts",
|
|
"ownerId": "container:web/src/viewmodel/GraphViewModel.ts#GraphViewModel@43",
|
|
"moduleId": "module:web/src/viewmodel",
|
|
"signature": "searchResults(): SearchResult[]",
|
|
"params": [],
|
|
"returnType": "SearchResult[]",
|
|
"loc": 27
|
|
},
|
|
{
|
|
"id": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.activateSearchResult@268",
|
|
"kind": "function",
|
|
"name": "activateSearchResult",
|
|
"qualifiedName": "GraphViewModel.activateSearchResult",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 268,
|
|
"endLine": 278,
|
|
"startCol": 3,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/viewmodel/GraphViewModel.ts",
|
|
"ownerId": "container:web/src/viewmodel/GraphViewModel.ts#GraphViewModel@43",
|
|
"moduleId": "module:web/src/viewmodel",
|
|
"signature": "activateSearchResult(result: SearchResult): void",
|
|
"params": [
|
|
{
|
|
"name": "result",
|
|
"typeRef": "SearchResult",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "void",
|
|
"loc": 11
|
|
},
|
|
{
|
|
"id": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectFlow@280",
|
|
"kind": "function",
|
|
"name": "selectFlow",
|
|
"qualifiedName": "GraphViewModel.selectFlow",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 280,
|
|
"endLine": 284,
|
|
"startCol": 3,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/viewmodel/GraphViewModel.ts",
|
|
"ownerId": "container:web/src/viewmodel/GraphViewModel.ts#GraphViewModel@43",
|
|
"moduleId": "module:web/src/viewmodel",
|
|
"signature": "selectFlow(flowId: string): void",
|
|
"params": [
|
|
{
|
|
"name": "flowId",
|
|
"typeRef": "string",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "void",
|
|
"loc": 5
|
|
},
|
|
{
|
|
"id": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectNode@286",
|
|
"kind": "function",
|
|
"name": "selectNode",
|
|
"qualifiedName": "GraphViewModel.selectNode",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 286,
|
|
"endLine": 288,
|
|
"startCol": 3,
|
|
"endCol": 4
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/viewmodel/GraphViewModel.ts",
|
|
"ownerId": "container:web/src/viewmodel/GraphViewModel.ts#GraphViewModel@43",
|
|
"moduleId": "module:web/src/viewmodel",
|
|
"signature": "selectNode(nodeId: string | null): void",
|
|
"params": [
|
|
{
|
|
"name": "nodeId",
|
|
"typeRef": "string | null",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "void",
|
|
"loc": 3
|
|
},
|
|
{
|
|
"id": "func:web/src/viewmodel/GraphViewModel.ts#runInAction() 回调@149@149",
|
|
"kind": "function",
|
|
"name": "runInAction() 回调@149",
|
|
"qualifiedName": "runInAction() 回调@149",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 149,
|
|
"endLine": 151,
|
|
"startCol": 19,
|
|
"endCol": 8
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/viewmodel/GraphViewModel.ts",
|
|
"moduleId": "module:web/src/viewmodel",
|
|
"signature": "runInAction() 回调@149()",
|
|
"params": [],
|
|
"loc": 3
|
|
},
|
|
{
|
|
"id": "func:web/src/viewmodel/GraphViewModel.ts#map() 回调@186@186",
|
|
"kind": "function",
|
|
"name": "map() 回调@186",
|
|
"qualifiedName": "map() 回调@186",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 186,
|
|
"endLine": 189,
|
|
"startCol": 53,
|
|
"endCol": 6
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/viewmodel/GraphViewModel.ts",
|
|
"moduleId": "module:web/src/viewmodel",
|
|
"signature": "map() 回调@186(n)",
|
|
"params": [
|
|
{
|
|
"name": "n",
|
|
"optional": false
|
|
}
|
|
],
|
|
"loc": 4
|
|
},
|
|
{
|
|
"id": "func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"kind": "function",
|
|
"name": "useGraphVM",
|
|
"qualifiedName": "useGraphVM",
|
|
"location": {
|
|
"file": "web/src/view/vmContext.ts",
|
|
"startLine": 6,
|
|
"endLine": 10,
|
|
"startCol": 1,
|
|
"endCol": 2
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/view/vmContext.ts",
|
|
"moduleId": "module:web/src/view",
|
|
"signature": "useGraphVM(): GraphViewModel",
|
|
"params": [],
|
|
"returnType": "GraphViewModel",
|
|
"loc": 5
|
|
},
|
|
{
|
|
"id": "func:web/src/view/components/FlowNode.tsx#interactionBadges@12",
|
|
"kind": "function",
|
|
"name": "interactionBadges",
|
|
"qualifiedName": "interactionBadges",
|
|
"location": {
|
|
"file": "web/src/view/components/FlowNode.tsx",
|
|
"startLine": 12,
|
|
"endLine": 38,
|
|
"startCol": 1,
|
|
"endCol": 2
|
|
},
|
|
"language": "tsx",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/view/components/FlowNode.tsx",
|
|
"moduleId": "module:web/src/view/components",
|
|
"signature": "interactionBadges(interactions: Interaction[]): { key: string; text: string; cls: string }[]",
|
|
"params": [
|
|
{
|
|
"name": "interactions",
|
|
"typeRef": "Interaction[]",
|
|
"optional": true
|
|
}
|
|
],
|
|
"returnType": "{ key: string; text: string; cls: string }[]",
|
|
"loc": 27
|
|
},
|
|
{
|
|
"id": "func:web/src/view/components/FlowNode.tsx#memo() 回调@40@40",
|
|
"kind": "function",
|
|
"name": "memo() 回调@40",
|
|
"qualifiedName": "memo() 回调@40",
|
|
"location": {
|
|
"file": "web/src/view/components/FlowNode.tsx",
|
|
"startLine": 40,
|
|
"endLine": 66,
|
|
"startCol": 30,
|
|
"endCol": 2
|
|
},
|
|
"language": "tsx",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/view/components/FlowNode.tsx",
|
|
"moduleId": "module:web/src/view/components",
|
|
"signature": "memo() 回调@40({ data, selected }: NodeProps & { data: FlowNodeData })",
|
|
"params": [
|
|
{
|
|
"name": "{ data, selected }",
|
|
"typeRef": "NodeProps & { data: FlowNodeData }",
|
|
"optional": false
|
|
}
|
|
],
|
|
"loc": 27
|
|
},
|
|
{
|
|
"id": "func:web/src/view/components/FlowGraph.tsx#observer() 回调@17@17",
|
|
"kind": "function",
|
|
"name": "observer() 回调@17",
|
|
"qualifiedName": "observer() 回调@17",
|
|
"location": {
|
|
"file": "web/src/view/components/FlowGraph.tsx",
|
|
"startLine": 17,
|
|
"endLine": 72,
|
|
"startCol": 35,
|
|
"endCol": 2
|
|
},
|
|
"language": "tsx",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/view/components/FlowGraph.tsx",
|
|
"moduleId": "module:web/src/view/components",
|
|
"signature": "observer() 回调@17()",
|
|
"params": [],
|
|
"loc": 56
|
|
},
|
|
{
|
|
"id": "func:web/src/view/components/FlowList.tsx#observer() 回调@4@4",
|
|
"kind": "function",
|
|
"name": "observer() 回调@4",
|
|
"qualifiedName": "observer() 回调@4",
|
|
"location": {
|
|
"file": "web/src/view/components/FlowList.tsx",
|
|
"startLine": 4,
|
|
"endLine": 25,
|
|
"startCol": 34,
|
|
"endCol": 2
|
|
},
|
|
"language": "tsx",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/view/components/FlowList.tsx",
|
|
"moduleId": "module:web/src/view/components",
|
|
"signature": "observer() 回调@4()",
|
|
"params": [],
|
|
"loc": 22
|
|
},
|
|
{
|
|
"id": "func:web/src/view/components/GroupList.tsx#observer() 回调@4@4",
|
|
"kind": "function",
|
|
"name": "observer() 回调@4",
|
|
"qualifiedName": "observer() 回调@4",
|
|
"location": {
|
|
"file": "web/src/view/components/GroupList.tsx",
|
|
"startLine": 4,
|
|
"endLine": 36,
|
|
"startCol": 35,
|
|
"endCol": 2
|
|
},
|
|
"language": "tsx",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/view/components/GroupList.tsx",
|
|
"moduleId": "module:web/src/view/components",
|
|
"signature": "observer() 回调@4()",
|
|
"params": [],
|
|
"loc": 33
|
|
},
|
|
{
|
|
"id": "func:web/src/view/components/NodeDetailPanel.tsx#describeInteraction@5",
|
|
"kind": "function",
|
|
"name": "describeInteraction",
|
|
"qualifiedName": "describeInteraction",
|
|
"location": {
|
|
"file": "web/src/view/components/NodeDetailPanel.tsx",
|
|
"startLine": 5,
|
|
"endLine": 11,
|
|
"startCol": 1,
|
|
"endCol": 2
|
|
},
|
|
"language": "tsx",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/view/components/NodeDetailPanel.tsx",
|
|
"moduleId": "module:web/src/view/components",
|
|
"signature": "describeInteraction(ix: Interaction): string",
|
|
"params": [
|
|
{
|
|
"name": "ix",
|
|
"typeRef": "Interaction",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "string",
|
|
"loc": 7
|
|
},
|
|
{
|
|
"id": "func:web/src/view/components/NodeDetailPanel.tsx#observer() 回调@13@13",
|
|
"kind": "function",
|
|
"name": "observer() 回调@13",
|
|
"qualifiedName": "observer() 回调@13",
|
|
"location": {
|
|
"file": "web/src/view/components/NodeDetailPanel.tsx",
|
|
"startLine": 13,
|
|
"endLine": 85,
|
|
"startCol": 41,
|
|
"endCol": 2
|
|
},
|
|
"language": "tsx",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/view/components/NodeDetailPanel.tsx",
|
|
"moduleId": "module:web/src/view/components",
|
|
"signature": "observer() 回调@13()",
|
|
"params": [],
|
|
"loc": 73
|
|
},
|
|
{
|
|
"id": "func:web/src/view/components/SearchBar.tsx#observer() 回调@6@6",
|
|
"kind": "function",
|
|
"name": "observer() 回调@6",
|
|
"qualifiedName": "observer() 回调@6",
|
|
"location": {
|
|
"file": "web/src/view/components/SearchBar.tsx",
|
|
"startLine": 6,
|
|
"endLine": 59,
|
|
"startCol": 35,
|
|
"endCol": 2
|
|
},
|
|
"language": "tsx",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/view/components/SearchBar.tsx",
|
|
"moduleId": "module:web/src/view/components",
|
|
"signature": "observer() 回调@6()",
|
|
"params": [],
|
|
"loc": 54
|
|
},
|
|
{
|
|
"id": "func:web/src/view/components/SearchBar.tsx#activate@12",
|
|
"kind": "function",
|
|
"name": "activate",
|
|
"qualifiedName": "activate",
|
|
"location": {
|
|
"file": "web/src/view/components/SearchBar.tsx",
|
|
"startLine": 12,
|
|
"endLine": 15,
|
|
"startCol": 9,
|
|
"endCol": 4
|
|
},
|
|
"language": "tsx",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/view/components/SearchBar.tsx",
|
|
"moduleId": "module:web/src/view/components",
|
|
"signature": "activate(r: SearchResult): void",
|
|
"params": [
|
|
{
|
|
"name": "r",
|
|
"typeRef": "SearchResult",
|
|
"optional": false
|
|
}
|
|
],
|
|
"returnType": "void",
|
|
"loc": 4
|
|
},
|
|
{
|
|
"id": "func:web/src/view/components/SearchBar.tsx#匿名函数@26@26",
|
|
"kind": "function",
|
|
"name": "匿名函数@26",
|
|
"qualifiedName": "匿名函数@26",
|
|
"location": {
|
|
"file": "web/src/view/components/SearchBar.tsx",
|
|
"startLine": 26,
|
|
"endLine": 29,
|
|
"startCol": 20,
|
|
"endCol": 10
|
|
},
|
|
"language": "tsx",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/view/components/SearchBar.tsx",
|
|
"moduleId": "module:web/src/view/components",
|
|
"signature": "匿名函数@26(e)",
|
|
"params": [
|
|
{
|
|
"name": "e",
|
|
"optional": false
|
|
}
|
|
],
|
|
"loc": 4
|
|
},
|
|
{
|
|
"id": "func:web/src/view/components/SearchBar.tsx#匿名函数@41@41",
|
|
"kind": "function",
|
|
"name": "匿名函数@41",
|
|
"qualifiedName": "匿名函数@41",
|
|
"location": {
|
|
"file": "web/src/view/components/SearchBar.tsx",
|
|
"startLine": 41,
|
|
"endLine": 44,
|
|
"startCol": 30,
|
|
"endCol": 18
|
|
},
|
|
"language": "tsx",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/view/components/SearchBar.tsx",
|
|
"moduleId": "module:web/src/view/components",
|
|
"signature": "匿名函数@41(e)",
|
|
"params": [
|
|
{
|
|
"name": "e",
|
|
"optional": false
|
|
}
|
|
],
|
|
"loc": 4
|
|
},
|
|
{
|
|
"id": "func:web/src/view/App.tsx#observer() 回调@9@9",
|
|
"kind": "function",
|
|
"name": "observer() 回调@9",
|
|
"qualifiedName": "observer() 回调@9",
|
|
"location": {
|
|
"file": "web/src/view/App.tsx",
|
|
"startLine": 9,
|
|
"endLine": 54,
|
|
"startCol": 29,
|
|
"endCol": 2
|
|
},
|
|
"language": "tsx",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/view/App.tsx",
|
|
"moduleId": "module:web/src/view",
|
|
"signature": "observer() 回调@9()",
|
|
"params": [],
|
|
"loc": 46
|
|
},
|
|
{
|
|
"id": "func:src/cli.ts#<module>@0",
|
|
"kind": "function",
|
|
"name": "<module>",
|
|
"qualifiedName": "<module>",
|
|
"location": {
|
|
"file": "src/cli.ts",
|
|
"startLine": 1,
|
|
"endLine": 71
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:src/cli.ts",
|
|
"moduleId": "module:src",
|
|
"params": [],
|
|
"summary": "模块顶层代码(副作用/初始化)"
|
|
},
|
|
{
|
|
"id": "func:web/src/view/vmContext.ts#<module>@0",
|
|
"kind": "function",
|
|
"name": "<module>",
|
|
"qualifiedName": "<module>",
|
|
"location": {
|
|
"file": "web/src/view/vmContext.ts",
|
|
"startLine": 1,
|
|
"endLine": 11
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/view/vmContext.ts",
|
|
"moduleId": "module:web/src/view",
|
|
"params": [],
|
|
"summary": "模块顶层代码(副作用/初始化)"
|
|
},
|
|
{
|
|
"id": "func:web/src/view/components/FlowNode.tsx#<module>@0",
|
|
"kind": "function",
|
|
"name": "<module>",
|
|
"qualifiedName": "<module>",
|
|
"location": {
|
|
"file": "web/src/view/components/FlowNode.tsx",
|
|
"startLine": 1,
|
|
"endLine": 67
|
|
},
|
|
"language": "tsx",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/view/components/FlowNode.tsx",
|
|
"moduleId": "module:web/src/view/components",
|
|
"params": [],
|
|
"summary": "模块顶层代码(副作用/初始化)"
|
|
},
|
|
{
|
|
"id": "func:web/src/view/components/FlowGraph.tsx#<module>@0",
|
|
"kind": "function",
|
|
"name": "<module>",
|
|
"qualifiedName": "<module>",
|
|
"location": {
|
|
"file": "web/src/view/components/FlowGraph.tsx",
|
|
"startLine": 1,
|
|
"endLine": 73
|
|
},
|
|
"language": "tsx",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/view/components/FlowGraph.tsx",
|
|
"moduleId": "module:web/src/view/components",
|
|
"params": [],
|
|
"summary": "模块顶层代码(副作用/初始化)"
|
|
},
|
|
{
|
|
"id": "func:web/src/view/components/FlowList.tsx#<module>@0",
|
|
"kind": "function",
|
|
"name": "<module>",
|
|
"qualifiedName": "<module>",
|
|
"location": {
|
|
"file": "web/src/view/components/FlowList.tsx",
|
|
"startLine": 1,
|
|
"endLine": 26
|
|
},
|
|
"language": "tsx",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/view/components/FlowList.tsx",
|
|
"moduleId": "module:web/src/view/components",
|
|
"params": [],
|
|
"summary": "模块顶层代码(副作用/初始化)"
|
|
},
|
|
{
|
|
"id": "func:web/src/view/components/GroupList.tsx#<module>@0",
|
|
"kind": "function",
|
|
"name": "<module>",
|
|
"qualifiedName": "<module>",
|
|
"location": {
|
|
"file": "web/src/view/components/GroupList.tsx",
|
|
"startLine": 1,
|
|
"endLine": 37
|
|
},
|
|
"language": "tsx",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/view/components/GroupList.tsx",
|
|
"moduleId": "module:web/src/view/components",
|
|
"params": [],
|
|
"summary": "模块顶层代码(副作用/初始化)"
|
|
},
|
|
{
|
|
"id": "func:web/src/view/components/NodeDetailPanel.tsx#<module>@0",
|
|
"kind": "function",
|
|
"name": "<module>",
|
|
"qualifiedName": "<module>",
|
|
"location": {
|
|
"file": "web/src/view/components/NodeDetailPanel.tsx",
|
|
"startLine": 1,
|
|
"endLine": 86
|
|
},
|
|
"language": "tsx",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/view/components/NodeDetailPanel.tsx",
|
|
"moduleId": "module:web/src/view/components",
|
|
"params": [],
|
|
"summary": "模块顶层代码(副作用/初始化)"
|
|
},
|
|
{
|
|
"id": "func:web/src/view/components/SearchBar.tsx#<module>@0",
|
|
"kind": "function",
|
|
"name": "<module>",
|
|
"qualifiedName": "<module>",
|
|
"location": {
|
|
"file": "web/src/view/components/SearchBar.tsx",
|
|
"startLine": 1,
|
|
"endLine": 60
|
|
},
|
|
"language": "tsx",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/view/components/SearchBar.tsx",
|
|
"moduleId": "module:web/src/view/components",
|
|
"params": [],
|
|
"summary": "模块顶层代码(副作用/初始化)"
|
|
},
|
|
{
|
|
"id": "func:web/src/view/App.tsx#<module>@0",
|
|
"kind": "function",
|
|
"name": "<module>",
|
|
"qualifiedName": "<module>",
|
|
"location": {
|
|
"file": "web/src/view/App.tsx",
|
|
"startLine": 1,
|
|
"endLine": 55
|
|
},
|
|
"language": "tsx",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/view/App.tsx",
|
|
"moduleId": "module:web/src/view",
|
|
"params": [],
|
|
"summary": "模块顶层代码(副作用/初始化)"
|
|
},
|
|
{
|
|
"id": "func:web/src/main.tsx#<module>@0",
|
|
"kind": "function",
|
|
"name": "<module>",
|
|
"qualifiedName": "<module>",
|
|
"location": {
|
|
"file": "web/src/main.tsx",
|
|
"startLine": 1,
|
|
"endLine": 26
|
|
},
|
|
"language": "tsx",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/src/main.tsx",
|
|
"moduleId": "module:web/src",
|
|
"params": [],
|
|
"isEntry": true,
|
|
"summary": "模块顶层代码(副作用/初始化)"
|
|
},
|
|
{
|
|
"id": "func:web/vite.config.ts#<module>@0",
|
|
"kind": "function",
|
|
"name": "<module>",
|
|
"qualifiedName": "<module>",
|
|
"location": {
|
|
"file": "web/vite.config.ts",
|
|
"startLine": 1,
|
|
"endLine": 11
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"fileId": "file:web/vite.config.ts",
|
|
"moduleId": "module:web",
|
|
"params": [],
|
|
"summary": "模块顶层代码(副作用/初始化)"
|
|
}
|
|
],
|
|
"fields": [
|
|
{
|
|
"id": "field:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.loading@44",
|
|
"kind": "field",
|
|
"name": "loading",
|
|
"qualifiedName": "GraphViewModel.loading",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 44,
|
|
"endLine": 44,
|
|
"startCol": 3,
|
|
"endCol": 19
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"ownerId": "container:web/src/viewmodel/GraphViewModel.ts#GraphViewModel@43"
|
|
},
|
|
{
|
|
"id": "field:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.error@45",
|
|
"kind": "field",
|
|
"name": "error",
|
|
"qualifiedName": "GraphViewModel.error",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 45,
|
|
"endLine": 45,
|
|
"startCol": 3,
|
|
"endCol": 31
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"ownerId": "container:web/src/viewmodel/GraphViewModel.ts#GraphViewModel@43",
|
|
"typeRef": "string | null"
|
|
},
|
|
{
|
|
"id": "field:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.report@46",
|
|
"kind": "field",
|
|
"name": "report",
|
|
"qualifiedName": "GraphViewModel.report",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 46,
|
|
"endLine": 46,
|
|
"startCol": 3,
|
|
"endCol": 32
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"ownerId": "container:web/src/viewmodel/GraphViewModel.ts#GraphViewModel@43",
|
|
"typeRef": "Report | null"
|
|
},
|
|
{
|
|
"id": "field:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectedSourceId@48",
|
|
"kind": "field",
|
|
"name": "selectedSourceId",
|
|
"qualifiedName": "GraphViewModel.selectedSourceId",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 48,
|
|
"endLine": 48,
|
|
"startCol": 3,
|
|
"endCol": 42
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"ownerId": "container:web/src/viewmodel/GraphViewModel.ts#GraphViewModel@43",
|
|
"typeRef": "string | null"
|
|
},
|
|
{
|
|
"id": "field:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectedGroupId@49",
|
|
"kind": "field",
|
|
"name": "selectedGroupId",
|
|
"qualifiedName": "GraphViewModel.selectedGroupId",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 49,
|
|
"endLine": 49,
|
|
"startCol": 3,
|
|
"endCol": 41
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"ownerId": "container:web/src/viewmodel/GraphViewModel.ts#GraphViewModel@43",
|
|
"typeRef": "string | null"
|
|
},
|
|
{
|
|
"id": "field:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectedFlowId@50",
|
|
"kind": "field",
|
|
"name": "selectedFlowId",
|
|
"qualifiedName": "GraphViewModel.selectedFlowId",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 50,
|
|
"endLine": 50,
|
|
"startCol": 3,
|
|
"endCol": 40
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"ownerId": "container:web/src/viewmodel/GraphViewModel.ts#GraphViewModel@43",
|
|
"typeRef": "string | null"
|
|
},
|
|
{
|
|
"id": "field:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectedNodeId@51",
|
|
"kind": "field",
|
|
"name": "selectedNodeId",
|
|
"qualifiedName": "GraphViewModel.selectedNodeId",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 51,
|
|
"endLine": 51,
|
|
"startCol": 3,
|
|
"endCol": 40
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"ownerId": "container:web/src/viewmodel/GraphViewModel.ts#GraphViewModel@43",
|
|
"typeRef": "string | null"
|
|
},
|
|
{
|
|
"id": "field:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.searchQuery@52",
|
|
"kind": "field",
|
|
"name": "searchQuery",
|
|
"qualifiedName": "GraphViewModel.searchQuery",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 52,
|
|
"endLine": 52,
|
|
"startCol": 3,
|
|
"endCol": 20
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"ownerId": "container:web/src/viewmodel/GraphViewModel.ts#GraphViewModel@43"
|
|
},
|
|
{
|
|
"id": "field:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.funcById@54",
|
|
"kind": "field",
|
|
"name": "funcById",
|
|
"qualifiedName": "GraphViewModel.funcById",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 54,
|
|
"endLine": 54,
|
|
"startCol": 3,
|
|
"endCol": 46
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"ownerId": "container:web/src/viewmodel/GraphViewModel.ts#GraphViewModel@43"
|
|
},
|
|
{
|
|
"id": "field:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.containerById@55",
|
|
"kind": "field",
|
|
"name": "containerById",
|
|
"qualifiedName": "GraphViewModel.containerById",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 55,
|
|
"endLine": 55,
|
|
"startCol": 3,
|
|
"endCol": 56
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"ownerId": "container:web/src/viewmodel/GraphViewModel.ts#GraphViewModel@43"
|
|
},
|
|
{
|
|
"id": "field:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.fileById@56",
|
|
"kind": "field",
|
|
"name": "fileById",
|
|
"qualifiedName": "GraphViewModel.fileById",
|
|
"location": {
|
|
"file": "web/src/viewmodel/GraphViewModel.ts",
|
|
"startLine": 56,
|
|
"endLine": 56,
|
|
"startCol": 3,
|
|
"endCol": 50
|
|
},
|
|
"language": "typescript",
|
|
"provenance": "ast",
|
|
"ownerId": "container:web/src/viewmodel/GraphViewModel.ts#GraphViewModel@43"
|
|
}
|
|
],
|
|
"edges": [
|
|
{
|
|
"id": "edge:call:func:src/scanner.ts#collectSourceFiles@24=>func:src/scanner.ts#walk@27",
|
|
"kind": "call",
|
|
"sourceId": "func:src/scanner.ts#collectSourceFiles@24",
|
|
"targetId": "func:src/scanner.ts#walk@27",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:import:file:src/externals.ts=>file:src/types.ts",
|
|
"kind": "import",
|
|
"sourceId": "file:src/externals.ts",
|
|
"targetId": "file:src/types.ts",
|
|
"provenance": "ast"
|
|
},
|
|
{
|
|
"id": "edge:import:file:src/flows.ts=>file:src/types.ts",
|
|
"kind": "import",
|
|
"sourceId": "file:src/flows.ts",
|
|
"targetId": "file:src/types.ts",
|
|
"provenance": "ast"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/flows.ts#map() 回调@72@72=>func:src/flows.ts#stepIdOf@70",
|
|
"kind": "call",
|
|
"sourceId": "func:src/flows.ts#map() 回调@72@72",
|
|
"targetId": "func:src/flows.ts#stepIdOf@70",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:import:file:src/analyzer.ts=>file:src/scanner.ts",
|
|
"kind": "import",
|
|
"sourceId": "file:src/analyzer.ts",
|
|
"targetId": "file:src/scanner.ts",
|
|
"provenance": "ast"
|
|
},
|
|
{
|
|
"id": "edge:import:file:src/analyzer.ts=>file:src/types.ts",
|
|
"kind": "import",
|
|
"sourceId": "file:src/analyzer.ts",
|
|
"targetId": "file:src/types.ts",
|
|
"provenance": "ast"
|
|
},
|
|
{
|
|
"id": "edge:import:file:src/analyzer.ts=>file:src/externals.ts",
|
|
"kind": "import",
|
|
"sourceId": "file:src/analyzer.ts",
|
|
"targetId": "file:src/externals.ts",
|
|
"provenance": "ast"
|
|
},
|
|
{
|
|
"id": "edge:import:file:src/analyzer.ts=>file:src/flows.ts",
|
|
"kind": "import",
|
|
"sourceId": "file:src/analyzer.ts",
|
|
"targetId": "file:src/flows.ts",
|
|
"provenance": "ast"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#analyzeProject@32=>func:src/scanner.ts#collectSourceFiles@24",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#analyzeProject@32",
|
|
"targetId": "func:src/scanner.ts#collectSourceFiles@24",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#relOf@64=>func:src/scanner.ts#toPosix@19",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#relOf@64",
|
|
"targetId": "func:src/scanner.ts#toPosix@19",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#inProject@65=>func:src/analyzer.ts#relOf@64",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#inProject@65",
|
|
"targetId": "func:src/analyzer.ts#relOf@64",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#locOf@70=>func:src/analyzer.ts#relOf@64",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#locOf@70",
|
|
"targetId": "func:src/analyzer.ts#relOf@64",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#registerFunc@122=>func:src/analyzer.ts#locOf@70",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#registerFunc@122",
|
|
"targetId": "func:src/analyzer.ts#locOf@70",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#registerFunc@122=>func:src/analyzer.ts#getParams@108",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#registerFunc@122",
|
|
"targetId": "func:src/analyzer.ts#getParams@108",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#registerFunc@122=>func:src/scanner.ts#languageOf@52",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#registerFunc@122",
|
|
"targetId": "func:src/scanner.ts#languageOf@52",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#registerFunc@122=>func:src/analyzer.ts#buildSignature@117",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#registerFunc@122",
|
|
"targetId": "func:src/analyzer.ts#buildSignature@117",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#routeNameFromCall@188=>func:src/analyzer.ts#extractPathArg@333",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#routeNameFromCall@188",
|
|
"targetId": "func:src/analyzer.ts#extractPathArg@333",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#inlineName@202=>func:src/analyzer.ts#locOf@70",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#inlineName@202",
|
|
"targetId": "func:src/analyzer.ts#locOf@70",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#inlineName@202=>func:src/analyzer.ts#routeNameFromCall@188",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#inlineName@202",
|
|
"targetId": "func:src/analyzer.ts#routeNameFromCall@188",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#registerFile@223=>func:src/analyzer.ts#relOf@64",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#registerFile@223",
|
|
"targetId": "func:src/analyzer.ts#relOf@64",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#registerFile@223=>func:src/scanner.ts#languageOf@52",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#registerFile@223",
|
|
"targetId": "func:src/scanner.ts#languageOf@52",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#registerFile@223=>func:src/scanner.ts#toPosix@19",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#registerFile@223",
|
|
"targetId": "func:src/scanner.ts#toPosix@19",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#registerFile@223=>func:src/analyzer.ts#ensureModule@83",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#registerFile@223",
|
|
"targetId": "func:src/analyzer.ts#ensureModule@83",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#visit@245=>func:src/analyzer.ts#locOf@70",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#visit@245",
|
|
"targetId": "func:src/analyzer.ts#locOf@70",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#visit@245=>func:src/scanner.ts#languageOf@52",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#visit@245",
|
|
"targetId": "func:src/scanner.ts#languageOf@52",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#visit@245=>func:src/analyzer.ts#registerFunc@122",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#visit@245",
|
|
"targetId": "func:src/analyzer.ts#registerFunc@122",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#visit@245=>func:src/analyzer.ts#isFnInit@169",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#visit@245",
|
|
"targetId": "func:src/analyzer.ts#isFnInit@169",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#visit@245=>func:src/analyzer.ts#containsCall@173",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#visit@245",
|
|
"targetId": "func:src/analyzer.ts#containsCall@173",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#visit@245=>func:src/analyzer.ts#inlineName@202",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#visit@245",
|
|
"targetId": "func:src/analyzer.ts#inlineName@202",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#detectApiOut@382=>func:src/analyzer.ts#extractPathArg@333",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#detectApiOut@382",
|
|
"targetId": "func:src/analyzer.ts#extractPathArg@333",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#detectApiOut@382=>func:src/analyzer.ts#extractMethodFromOptions@341",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#detectApiOut@382",
|
|
"targetId": "func:src/analyzer.ts#extractMethodFromOptions@341",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#detectApiOut@382=>func:src/analyzer.ts#hostOf@352",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#detectApiOut@382",
|
|
"targetId": "func:src/analyzer.ts#hostOf@352",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#detectApiIn@400=>func:src/analyzer.ts#extractPathArg@333",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#detectApiIn@400",
|
|
"targetId": "func:src/analyzer.ts#extractPathArg@333",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#getModuleFunc@462=>func:src/scanner.ts#languageOf@52",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#getModuleFunc@462",
|
|
"targetId": "func:src/scanner.ts#languageOf@52",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#analyzeRelations@487=>func:src/analyzer.ts#relOf@64",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#analyzeRelations@487",
|
|
"targetId": "func:src/analyzer.ts#relOf@64",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#walk@492=>func:src/analyzer.ts#resolveInternalImport@548",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#walk@492",
|
|
"targetId": "func:src/analyzer.ts#resolveInternalImport@548",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#walk@492=>func:src/analyzer.ts#addEdge@433",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#walk@492",
|
|
"targetId": "func:src/analyzer.ts#addEdge@433",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#walk@492=>func:src/analyzer.ts#getModuleFunc@462",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#walk@492",
|
|
"targetId": "func:src/analyzer.ts#getModuleFunc@462",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#walk@492=>func:src/analyzer.ts#resolveCallTargetFuncId@440",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#walk@492",
|
|
"targetId": "func:src/analyzer.ts#resolveCallTargetFuncId@440",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#walk@492=>func:src/analyzer.ts#detectDb@358",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#walk@492",
|
|
"targetId": "func:src/analyzer.ts#detectDb@358",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#walk@492=>func:src/analyzer.ts#addInteraction@419",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#walk@492",
|
|
"targetId": "func:src/analyzer.ts#addInteraction@419",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#walk@492=>func:src/analyzer.ts#detectApiOut@382",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#walk@492",
|
|
"targetId": "func:src/analyzer.ts#detectApiOut@382",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#walk@492=>func:src/analyzer.ts#detectApiIn@400",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#walk@492",
|
|
"targetId": "func:src/analyzer.ts#detectApiIn@400",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#analyzeRelations@487=>func:src/analyzer.ts#walk@492",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#analyzeRelations@487",
|
|
"targetId": "func:src/analyzer.ts#walk@492",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#resolveInternalImport@548=>func:src/scanner.ts#toPosix@19",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#resolveInternalImport@548",
|
|
"targetId": "func:src/scanner.ts#toPosix@19",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#analyzeProject@32=>func:src/analyzer.ts#registerFile@223",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#analyzeProject@32",
|
|
"targetId": "func:src/analyzer.ts#registerFile@223",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#analyzeProject@32=>func:src/analyzer.ts#analyzeRelations@487",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#analyzeProject@32",
|
|
"targetId": "func:src/analyzer.ts#analyzeRelations@487",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#analyzeProject@32=>func:src/analyzer.ts#ensureModule@83",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#analyzeProject@32",
|
|
"targetId": "func:src/analyzer.ts#ensureModule@83",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#analyzeProject@32=>func:src/flows.ts#generateCallFlows@16",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#analyzeProject@32",
|
|
"targetId": "func:src/flows.ts#generateCallFlows@16",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#analyzeProject@32=>func:src/scanner.ts#toPosix@19",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#analyzeProject@32",
|
|
"targetId": "func:src/scanner.ts#toPosix@19",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/analyzer.ts#analyzeProject@32=>func:src/externals.ts#deriveExternalSystems@4",
|
|
"kind": "call",
|
|
"sourceId": "func:src/analyzer.ts#analyzeProject@32",
|
|
"targetId": "func:src/externals.ts#deriveExternalSystems@4",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:import:file:src/cli.ts=>file:src/analyzer.ts",
|
|
"kind": "import",
|
|
"sourceId": "file:src/cli.ts",
|
|
"targetId": "file:src/analyzer.ts",
|
|
"provenance": "ast"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/cli.ts#main@40=>func:src/cli.ts#parseArgs@13",
|
|
"kind": "call",
|
|
"sourceId": "func:src/cli.ts#main@40",
|
|
"targetId": "func:src/cli.ts#parseArgs@13",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/cli.ts#main@40=>func:src/analyzer.ts#analyzeProject@32",
|
|
"kind": "call",
|
|
"sourceId": "func:src/cli.ts#main@40",
|
|
"targetId": "func:src/analyzer.ts#analyzeProject@32",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:src/cli.ts#<module>@0=>func:src/cli.ts#main@40",
|
|
"kind": "call",
|
|
"sourceId": "func:src/cli.ts#<module>@0",
|
|
"targetId": "func:src/cli.ts#main@40",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:import:file:web/src/model/reportRepository.ts=>file:web/src/model/report.ts",
|
|
"kind": "import",
|
|
"sourceId": "file:web/src/model/reportRepository.ts",
|
|
"targetId": "file:web/src/model/report.ts",
|
|
"provenance": "ast"
|
|
},
|
|
{
|
|
"id": "edge:import:file:web/src/model/graphModel.ts=>file:web/src/model/report.ts",
|
|
"kind": "import",
|
|
"sourceId": "file:web/src/model/graphModel.ts",
|
|
"targetId": "file:web/src/model/report.ts",
|
|
"provenance": "ast"
|
|
},
|
|
{
|
|
"id": "edge:call:func:web/src/model/graphModel.ts#qualifierOf@24=>func:web/src/model/graphModel.ts#baseName@19",
|
|
"kind": "call",
|
|
"sourceId": "func:web/src/model/graphModel.ts#qualifierOf@24",
|
|
"targetId": "func:web/src/model/graphModel.ts#baseName@19",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:web/src/model/graphModel.ts#map() 回调@44@44=>func:web/src/model/graphModel.ts#qualifierOf@24",
|
|
"kind": "call",
|
|
"sourceId": "func:web/src/model/graphModel.ts#map() 回调@44@44",
|
|
"targetId": "func:web/src/model/graphModel.ts#qualifierOf@24",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:import:file:web/src/viewmodel/GraphViewModel.ts=>file:web/src/model/report.ts",
|
|
"kind": "import",
|
|
"sourceId": "file:web/src/viewmodel/GraphViewModel.ts",
|
|
"targetId": "file:web/src/model/report.ts",
|
|
"provenance": "ast"
|
|
},
|
|
{
|
|
"id": "edge:import:file:web/src/viewmodel/GraphViewModel.ts=>file:web/src/model/reportRepository.ts",
|
|
"kind": "import",
|
|
"sourceId": "file:web/src/viewmodel/GraphViewModel.ts",
|
|
"targetId": "file:web/src/model/reportRepository.ts",
|
|
"provenance": "ast"
|
|
},
|
|
{
|
|
"id": "edge:import:file:web/src/viewmodel/GraphViewModel.ts=>file:web/src/model/graphModel.ts",
|
|
"kind": "import",
|
|
"sourceId": "file:web/src/viewmodel/GraphViewModel.ts",
|
|
"targetId": "file:web/src/model/graphModel.ts",
|
|
"provenance": "ast"
|
|
},
|
|
{
|
|
"id": "edge:import:file:web/src/viewmodel/GraphViewModel.ts=>file:web/src/services/dagreLayout.ts",
|
|
"kind": "import",
|
|
"sourceId": "file:web/src/viewmodel/GraphViewModel.ts",
|
|
"targetId": "file:web/src/services/dagreLayout.ts",
|
|
"provenance": "ast"
|
|
},
|
|
{
|
|
"id": "edge:call:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectReport@74=>func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.load@126",
|
|
"kind": "call",
|
|
"sourceId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectReport@74",
|
|
"targetId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.load@126",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.groupOfFlow@86=>func:web/src/viewmodel/GraphViewModel.ts#baseName@34",
|
|
"kind": "call",
|
|
"sourceId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.groupOfFlow@86",
|
|
"targetId": "func:web/src/viewmodel/GraphViewModel.ts#baseName@34",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.groups@100=>func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.groupOfFlow@86",
|
|
"kind": "call",
|
|
"sourceId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.groups@100",
|
|
"targetId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.groupOfFlow@86",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.visibleFlows@112=>func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.groupOfFlow@86",
|
|
"kind": "call",
|
|
"sourceId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.visibleFlows@112",
|
|
"targetId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.groupOfFlow@86",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.positionedGraph@171=>func:web/src/model/graphModel.ts#flowToGraph@43",
|
|
"kind": "call",
|
|
"sourceId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.positionedGraph@171",
|
|
"targetId": "func:web/src/model/graphModel.ts#flowToGraph@43",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.positionedGraph@171=>func:web/src/services/dagreLayout.ts#computeLayout@31",
|
|
"kind": "call",
|
|
"sourceId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.positionedGraph@171",
|
|
"targetId": "func:web/src/services/dagreLayout.ts#computeLayout@31",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.activateSearchResult@268=>func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.biggestFlowForFunc@233",
|
|
"kind": "call",
|
|
"sourceId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.activateSearchResult@268",
|
|
"targetId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.biggestFlowForFunc@233",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.activateSearchResult@268=>func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.openFlowForFunc@211",
|
|
"kind": "call",
|
|
"sourceId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.activateSearchResult@268",
|
|
"targetId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.openFlowForFunc@211",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:import:file:web/src/view/vmContext.ts=>file:web/src/viewmodel/GraphViewModel.ts",
|
|
"kind": "import",
|
|
"sourceId": "file:web/src/view/vmContext.ts",
|
|
"targetId": "file:web/src/viewmodel/GraphViewModel.ts",
|
|
"provenance": "ast"
|
|
},
|
|
{
|
|
"id": "edge:import:file:web/src/view/components/FlowNode.tsx=>file:web/src/model/report.ts",
|
|
"kind": "import",
|
|
"sourceId": "file:web/src/view/components/FlowNode.tsx",
|
|
"targetId": "file:web/src/model/report.ts",
|
|
"provenance": "ast"
|
|
},
|
|
{
|
|
"id": "edge:call:func:web/src/view/components/FlowNode.tsx#memo() 回调@40@40=>func:web/src/view/components/FlowNode.tsx#interactionBadges@12",
|
|
"kind": "call",
|
|
"sourceId": "func:web/src/view/components/FlowNode.tsx#memo() 回调@40@40",
|
|
"targetId": "func:web/src/view/components/FlowNode.tsx#interactionBadges@12",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:import:file:web/src/view/components/FlowGraph.tsx=>file:web/src/view/vmContext.ts",
|
|
"kind": "import",
|
|
"sourceId": "file:web/src/view/components/FlowGraph.tsx",
|
|
"targetId": "file:web/src/view/vmContext.ts",
|
|
"provenance": "ast"
|
|
},
|
|
{
|
|
"id": "edge:import:file:web/src/view/components/FlowGraph.tsx=>file:web/src/view/components/FlowNode.tsx",
|
|
"kind": "import",
|
|
"sourceId": "file:web/src/view/components/FlowGraph.tsx",
|
|
"targetId": "file:web/src/view/components/FlowNode.tsx",
|
|
"provenance": "ast"
|
|
},
|
|
{
|
|
"id": "edge:call:func:web/src/view/components/FlowGraph.tsx#observer() 回调@17@17=>func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"kind": "call",
|
|
"sourceId": "func:web/src/view/components/FlowGraph.tsx#observer() 回调@17@17",
|
|
"targetId": "func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:web/src/view/components/FlowGraph.tsx#observer() 回调@17@17=>func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectNode@286",
|
|
"kind": "call",
|
|
"sourceId": "func:web/src/view/components/FlowGraph.tsx#observer() 回调@17@17",
|
|
"targetId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectNode@286",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:import:file:web/src/view/components/FlowList.tsx=>file:web/src/view/vmContext.ts",
|
|
"kind": "import",
|
|
"sourceId": "file:web/src/view/components/FlowList.tsx",
|
|
"targetId": "file:web/src/view/vmContext.ts",
|
|
"provenance": "ast"
|
|
},
|
|
{
|
|
"id": "edge:call:func:web/src/view/components/FlowList.tsx#observer() 回调@4@4=>func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"kind": "call",
|
|
"sourceId": "func:web/src/view/components/FlowList.tsx#observer() 回调@4@4",
|
|
"targetId": "func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:web/src/view/components/FlowList.tsx#observer() 回调@4@4=>func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectFlow@280",
|
|
"kind": "call",
|
|
"sourceId": "func:web/src/view/components/FlowList.tsx#observer() 回调@4@4",
|
|
"targetId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectFlow@280",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:import:file:web/src/view/components/GroupList.tsx=>file:web/src/view/vmContext.ts",
|
|
"kind": "import",
|
|
"sourceId": "file:web/src/view/components/GroupList.tsx",
|
|
"targetId": "file:web/src/view/vmContext.ts",
|
|
"provenance": "ast"
|
|
},
|
|
{
|
|
"id": "edge:call:func:web/src/view/components/GroupList.tsx#observer() 回调@4@4=>func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"kind": "call",
|
|
"sourceId": "func:web/src/view/components/GroupList.tsx#observer() 回调@4@4",
|
|
"targetId": "func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:web/src/view/components/GroupList.tsx#observer() 回调@4@4=>func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectGroup@117",
|
|
"kind": "call",
|
|
"sourceId": "func:web/src/view/components/GroupList.tsx#observer() 回调@4@4",
|
|
"targetId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectGroup@117",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:import:file:web/src/view/components/NodeDetailPanel.tsx=>file:web/src/view/vmContext.ts",
|
|
"kind": "import",
|
|
"sourceId": "file:web/src/view/components/NodeDetailPanel.tsx",
|
|
"targetId": "file:web/src/view/vmContext.ts",
|
|
"provenance": "ast"
|
|
},
|
|
{
|
|
"id": "edge:import:file:web/src/view/components/NodeDetailPanel.tsx=>file:web/src/model/report.ts",
|
|
"kind": "import",
|
|
"sourceId": "file:web/src/view/components/NodeDetailPanel.tsx",
|
|
"targetId": "file:web/src/model/report.ts",
|
|
"provenance": "ast"
|
|
},
|
|
{
|
|
"id": "edge:call:func:web/src/view/components/NodeDetailPanel.tsx#observer() 回调@13@13=>func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"kind": "call",
|
|
"sourceId": "func:web/src/view/components/NodeDetailPanel.tsx#observer() 回调@13@13",
|
|
"targetId": "func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:web/src/view/components/NodeDetailPanel.tsx#observer() 回调@13@13=>func:web/src/view/components/NodeDetailPanel.tsx#describeInteraction@5",
|
|
"kind": "call",
|
|
"sourceId": "func:web/src/view/components/NodeDetailPanel.tsx#observer() 回调@13@13",
|
|
"targetId": "func:web/src/view/components/NodeDetailPanel.tsx#describeInteraction@5",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:web/src/view/components/NodeDetailPanel.tsx#observer() 回调@13@13=>func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.openFlowForFunc@211",
|
|
"kind": "call",
|
|
"sourceId": "func:web/src/view/components/NodeDetailPanel.tsx#observer() 回调@13@13",
|
|
"targetId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.openFlowForFunc@211",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:import:file:web/src/view/components/SearchBar.tsx=>file:web/src/view/vmContext.ts",
|
|
"kind": "import",
|
|
"sourceId": "file:web/src/view/components/SearchBar.tsx",
|
|
"targetId": "file:web/src/view/vmContext.ts",
|
|
"provenance": "ast"
|
|
},
|
|
{
|
|
"id": "edge:import:file:web/src/view/components/SearchBar.tsx=>file:web/src/viewmodel/GraphViewModel.ts",
|
|
"kind": "import",
|
|
"sourceId": "file:web/src/view/components/SearchBar.tsx",
|
|
"targetId": "file:web/src/viewmodel/GraphViewModel.ts",
|
|
"provenance": "ast"
|
|
},
|
|
{
|
|
"id": "edge:call:func:web/src/view/components/SearchBar.tsx#observer() 回调@6@6=>func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"kind": "call",
|
|
"sourceId": "func:web/src/view/components/SearchBar.tsx#observer() 回调@6@6",
|
|
"targetId": "func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:web/src/view/components/SearchBar.tsx#activate@12=>func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.activateSearchResult@268",
|
|
"kind": "call",
|
|
"sourceId": "func:web/src/view/components/SearchBar.tsx#activate@12",
|
|
"targetId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.activateSearchResult@268",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:web/src/view/components/SearchBar.tsx#observer() 回调@6@6=>func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.setSearchQuery@221",
|
|
"kind": "call",
|
|
"sourceId": "func:web/src/view/components/SearchBar.tsx#observer() 回调@6@6",
|
|
"targetId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.setSearchQuery@221",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:web/src/view/components/SearchBar.tsx#匿名函数@26@26=>func:web/src/view/components/SearchBar.tsx#activate@12",
|
|
"kind": "call",
|
|
"sourceId": "func:web/src/view/components/SearchBar.tsx#匿名函数@26@26",
|
|
"targetId": "func:web/src/view/components/SearchBar.tsx#activate@12",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:web/src/view/components/SearchBar.tsx#匿名函数@26@26=>func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.setSearchQuery@221",
|
|
"kind": "call",
|
|
"sourceId": "func:web/src/view/components/SearchBar.tsx#匿名函数@26@26",
|
|
"targetId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.setSearchQuery@221",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:web/src/view/components/SearchBar.tsx#匿名函数@41@41=>func:web/src/view/components/SearchBar.tsx#activate@12",
|
|
"kind": "call",
|
|
"sourceId": "func:web/src/view/components/SearchBar.tsx#匿名函数@41@41",
|
|
"targetId": "func:web/src/view/components/SearchBar.tsx#activate@12",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:import:file:web/src/view/App.tsx=>file:web/src/view/vmContext.ts",
|
|
"kind": "import",
|
|
"sourceId": "file:web/src/view/App.tsx",
|
|
"targetId": "file:web/src/view/vmContext.ts",
|
|
"provenance": "ast"
|
|
},
|
|
{
|
|
"id": "edge:import:file:web/src/view/App.tsx=>file:web/src/view/components/FlowGraph.tsx",
|
|
"kind": "import",
|
|
"sourceId": "file:web/src/view/App.tsx",
|
|
"targetId": "file:web/src/view/components/FlowGraph.tsx",
|
|
"provenance": "ast"
|
|
},
|
|
{
|
|
"id": "edge:import:file:web/src/view/App.tsx=>file:web/src/view/components/FlowList.tsx",
|
|
"kind": "import",
|
|
"sourceId": "file:web/src/view/App.tsx",
|
|
"targetId": "file:web/src/view/components/FlowList.tsx",
|
|
"provenance": "ast"
|
|
},
|
|
{
|
|
"id": "edge:import:file:web/src/view/App.tsx=>file:web/src/view/components/GroupList.tsx",
|
|
"kind": "import",
|
|
"sourceId": "file:web/src/view/App.tsx",
|
|
"targetId": "file:web/src/view/components/GroupList.tsx",
|
|
"provenance": "ast"
|
|
},
|
|
{
|
|
"id": "edge:import:file:web/src/view/App.tsx=>file:web/src/view/components/NodeDetailPanel.tsx",
|
|
"kind": "import",
|
|
"sourceId": "file:web/src/view/App.tsx",
|
|
"targetId": "file:web/src/view/components/NodeDetailPanel.tsx",
|
|
"provenance": "ast"
|
|
},
|
|
{
|
|
"id": "edge:import:file:web/src/view/App.tsx=>file:web/src/view/components/SearchBar.tsx",
|
|
"kind": "import",
|
|
"sourceId": "file:web/src/view/App.tsx",
|
|
"targetId": "file:web/src/view/components/SearchBar.tsx",
|
|
"provenance": "ast"
|
|
},
|
|
{
|
|
"id": "edge:call:func:web/src/view/App.tsx#observer() 回调@9@9=>func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"kind": "call",
|
|
"sourceId": "func:web/src/view/App.tsx#observer() 回调@9@9",
|
|
"targetId": "func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:call:func:web/src/view/App.tsx#observer() 回调@9@9=>func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectReport@74",
|
|
"kind": "call",
|
|
"sourceId": "func:web/src/view/App.tsx#observer() 回调@9@9",
|
|
"targetId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectReport@74",
|
|
"provenance": "resolved"
|
|
},
|
|
{
|
|
"id": "edge:import:file:web/src/main.tsx=>file:web/src/view/App.tsx",
|
|
"kind": "import",
|
|
"sourceId": "file:web/src/main.tsx",
|
|
"targetId": "file:web/src/view/App.tsx",
|
|
"provenance": "ast"
|
|
},
|
|
{
|
|
"id": "edge:import:file:web/src/main.tsx=>file:web/src/view/vmContext.ts",
|
|
"kind": "import",
|
|
"sourceId": "file:web/src/main.tsx",
|
|
"targetId": "file:web/src/view/vmContext.ts",
|
|
"provenance": "ast"
|
|
},
|
|
{
|
|
"id": "edge:import:file:web/src/main.tsx=>file:web/src/viewmodel/GraphViewModel.ts",
|
|
"kind": "import",
|
|
"sourceId": "file:web/src/main.tsx",
|
|
"targetId": "file:web/src/viewmodel/GraphViewModel.ts",
|
|
"provenance": "ast"
|
|
},
|
|
{
|
|
"id": "edge:import:file:web/src/main.tsx=>file:web/src/model/reportRepository.ts",
|
|
"kind": "import",
|
|
"sourceId": "file:web/src/main.tsx",
|
|
"targetId": "file:web/src/model/reportRepository.ts",
|
|
"provenance": "ast"
|
|
},
|
|
{
|
|
"id": "edge:call:func:web/src/main.tsx#<module>@0=>func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.load@126",
|
|
"kind": "call",
|
|
"sourceId": "func:web/src/main.tsx#<module>@0",
|
|
"targetId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.load@126",
|
|
"provenance": "resolved"
|
|
}
|
|
],
|
|
"flows": [
|
|
{
|
|
"id": "flow:call:func:web/src/main.tsx#<module>@0",
|
|
"name": "<module> (web/src/main.tsx)",
|
|
"flowType": "call",
|
|
"provenance": "resolved",
|
|
"entryNodeId": "func:web/src/main.tsx#<module>@0",
|
|
"steps": [
|
|
{
|
|
"id": "step:flow:call:func:web/src/main.tsx#<module>@0:func:web/src/main.tsx#<module>@0",
|
|
"order": 0,
|
|
"nodeId": "func:web/src/main.tsx#<module>@0",
|
|
"title": "<module>",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:web/src/main.tsx#<module>@0:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.load@126"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:web/src/main.tsx#<module>@0:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.load@126",
|
|
"order": 1,
|
|
"nodeId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.load@126",
|
|
"title": "GraphViewModel.load",
|
|
"nextStepIds": []
|
|
}
|
|
],
|
|
"edgeIds": [
|
|
"edge:call:func:web/src/main.tsx#<module>@0=>func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.load@126"
|
|
],
|
|
"summary": "以 <module> 为入口的调用链,覆盖 2 个函数"
|
|
},
|
|
{
|
|
"id": "flow:call:func:src/analyzer.ts#visit@245",
|
|
"name": "visit (src/analyzer.ts)",
|
|
"flowType": "call",
|
|
"provenance": "resolved",
|
|
"entryNodeId": "func:src/analyzer.ts#visit@245",
|
|
"steps": [
|
|
{
|
|
"id": "step:flow:call:func:src/analyzer.ts#visit@245:func:src/analyzer.ts#visit@245",
|
|
"order": 0,
|
|
"nodeId": "func:src/analyzer.ts#visit@245",
|
|
"title": "visit",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:src/analyzer.ts#visit@245:func:src/analyzer.ts#locOf@70",
|
|
"step:flow:call:func:src/analyzer.ts#visit@245:func:src/scanner.ts#languageOf@52",
|
|
"step:flow:call:func:src/analyzer.ts#visit@245:func:src/analyzer.ts#registerFunc@122",
|
|
"step:flow:call:func:src/analyzer.ts#visit@245:func:src/analyzer.ts#isFnInit@169",
|
|
"step:flow:call:func:src/analyzer.ts#visit@245:func:src/analyzer.ts#containsCall@173",
|
|
"step:flow:call:func:src/analyzer.ts#visit@245:func:src/analyzer.ts#inlineName@202"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/analyzer.ts#visit@245:func:src/analyzer.ts#locOf@70",
|
|
"order": 1,
|
|
"nodeId": "func:src/analyzer.ts#locOf@70",
|
|
"title": "locOf",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:src/analyzer.ts#visit@245:func:src/analyzer.ts#relOf@64"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/analyzer.ts#visit@245:func:src/scanner.ts#languageOf@52",
|
|
"order": 2,
|
|
"nodeId": "func:src/scanner.ts#languageOf@52",
|
|
"title": "languageOf",
|
|
"nextStepIds": []
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/analyzer.ts#visit@245:func:src/analyzer.ts#registerFunc@122",
|
|
"order": 3,
|
|
"nodeId": "func:src/analyzer.ts#registerFunc@122",
|
|
"title": "registerFunc",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:src/analyzer.ts#visit@245:func:src/analyzer.ts#locOf@70",
|
|
"step:flow:call:func:src/analyzer.ts#visit@245:func:src/analyzer.ts#getParams@108",
|
|
"step:flow:call:func:src/analyzer.ts#visit@245:func:src/scanner.ts#languageOf@52",
|
|
"step:flow:call:func:src/analyzer.ts#visit@245:func:src/analyzer.ts#buildSignature@117"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/analyzer.ts#visit@245:func:src/analyzer.ts#isFnInit@169",
|
|
"order": 4,
|
|
"nodeId": "func:src/analyzer.ts#isFnInit@169",
|
|
"title": "isFnInit",
|
|
"nextStepIds": []
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/analyzer.ts#visit@245:func:src/analyzer.ts#containsCall@173",
|
|
"order": 5,
|
|
"nodeId": "func:src/analyzer.ts#containsCall@173",
|
|
"title": "containsCall",
|
|
"nextStepIds": []
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/analyzer.ts#visit@245:func:src/analyzer.ts#inlineName@202",
|
|
"order": 6,
|
|
"nodeId": "func:src/analyzer.ts#inlineName@202",
|
|
"title": "inlineName",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:src/analyzer.ts#visit@245:func:src/analyzer.ts#locOf@70",
|
|
"step:flow:call:func:src/analyzer.ts#visit@245:func:src/analyzer.ts#routeNameFromCall@188"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/analyzer.ts#visit@245:func:src/analyzer.ts#relOf@64",
|
|
"order": 7,
|
|
"nodeId": "func:src/analyzer.ts#relOf@64",
|
|
"title": "relOf",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:src/analyzer.ts#visit@245:func:src/scanner.ts#toPosix@19"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/analyzer.ts#visit@245:func:src/analyzer.ts#getParams@108",
|
|
"order": 8,
|
|
"nodeId": "func:src/analyzer.ts#getParams@108",
|
|
"title": "getParams",
|
|
"nextStepIds": []
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/analyzer.ts#visit@245:func:src/analyzer.ts#buildSignature@117",
|
|
"order": 9,
|
|
"nodeId": "func:src/analyzer.ts#buildSignature@117",
|
|
"title": "buildSignature",
|
|
"nextStepIds": []
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/analyzer.ts#visit@245:func:src/analyzer.ts#routeNameFromCall@188",
|
|
"order": 10,
|
|
"nodeId": "func:src/analyzer.ts#routeNameFromCall@188",
|
|
"title": "routeNameFromCall",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:src/analyzer.ts#visit@245:func:src/analyzer.ts#extractPathArg@333"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/analyzer.ts#visit@245:func:src/scanner.ts#toPosix@19",
|
|
"order": 11,
|
|
"nodeId": "func:src/scanner.ts#toPosix@19",
|
|
"title": "toPosix",
|
|
"nextStepIds": []
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/analyzer.ts#visit@245:func:src/analyzer.ts#extractPathArg@333",
|
|
"order": 12,
|
|
"nodeId": "func:src/analyzer.ts#extractPathArg@333",
|
|
"title": "extractPathArg",
|
|
"nextStepIds": []
|
|
}
|
|
],
|
|
"edgeIds": [
|
|
"edge:call:func:src/analyzer.ts#relOf@64=>func:src/scanner.ts#toPosix@19",
|
|
"edge:call:func:src/analyzer.ts#locOf@70=>func:src/analyzer.ts#relOf@64",
|
|
"edge:call:func:src/analyzer.ts#registerFunc@122=>func:src/analyzer.ts#locOf@70",
|
|
"edge:call:func:src/analyzer.ts#registerFunc@122=>func:src/analyzer.ts#getParams@108",
|
|
"edge:call:func:src/analyzer.ts#registerFunc@122=>func:src/scanner.ts#languageOf@52",
|
|
"edge:call:func:src/analyzer.ts#registerFunc@122=>func:src/analyzer.ts#buildSignature@117",
|
|
"edge:call:func:src/analyzer.ts#routeNameFromCall@188=>func:src/analyzer.ts#extractPathArg@333",
|
|
"edge:call:func:src/analyzer.ts#inlineName@202=>func:src/analyzer.ts#locOf@70",
|
|
"edge:call:func:src/analyzer.ts#inlineName@202=>func:src/analyzer.ts#routeNameFromCall@188",
|
|
"edge:call:func:src/analyzer.ts#visit@245=>func:src/analyzer.ts#locOf@70",
|
|
"edge:call:func:src/analyzer.ts#visit@245=>func:src/scanner.ts#languageOf@52",
|
|
"edge:call:func:src/analyzer.ts#visit@245=>func:src/analyzer.ts#registerFunc@122",
|
|
"edge:call:func:src/analyzer.ts#visit@245=>func:src/analyzer.ts#isFnInit@169",
|
|
"edge:call:func:src/analyzer.ts#visit@245=>func:src/analyzer.ts#containsCall@173",
|
|
"edge:call:func:src/analyzer.ts#visit@245=>func:src/analyzer.ts#inlineName@202"
|
|
],
|
|
"summary": "以 visit 为入口的调用链,覆盖 13 个函数"
|
|
},
|
|
{
|
|
"id": "flow:call:func:web/src/view/components/NodeDetailPanel.tsx#observer() 回调@13@13",
|
|
"name": "observer() 回调@13 (web/src/view/components/NodeDetailPanel.tsx)",
|
|
"flowType": "call",
|
|
"provenance": "resolved",
|
|
"entryNodeId": "func:web/src/view/components/NodeDetailPanel.tsx#observer() 回调@13@13",
|
|
"steps": [
|
|
{
|
|
"id": "step:flow:call:func:web/src/view/components/NodeDetailPanel.tsx#observer() 回调@13@13:func:web/src/view/components/NodeDetailPanel.tsx#observer() 回调@13@13",
|
|
"order": 0,
|
|
"nodeId": "func:web/src/view/components/NodeDetailPanel.tsx#observer() 回调@13@13",
|
|
"title": "observer() 回调@13",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:web/src/view/components/NodeDetailPanel.tsx#observer() 回调@13@13:func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"step:flow:call:func:web/src/view/components/NodeDetailPanel.tsx#observer() 回调@13@13:func:web/src/view/components/NodeDetailPanel.tsx#describeInteraction@5",
|
|
"step:flow:call:func:web/src/view/components/NodeDetailPanel.tsx#observer() 回调@13@13:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.openFlowForFunc@211"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:web/src/view/components/NodeDetailPanel.tsx#observer() 回调@13@13:func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"order": 1,
|
|
"nodeId": "func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"title": "useGraphVM",
|
|
"nextStepIds": []
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:web/src/view/components/NodeDetailPanel.tsx#observer() 回调@13@13:func:web/src/view/components/NodeDetailPanel.tsx#describeInteraction@5",
|
|
"order": 2,
|
|
"nodeId": "func:web/src/view/components/NodeDetailPanel.tsx#describeInteraction@5",
|
|
"title": "describeInteraction",
|
|
"nextStepIds": []
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:web/src/view/components/NodeDetailPanel.tsx#observer() 回调@13@13:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.openFlowForFunc@211",
|
|
"order": 3,
|
|
"nodeId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.openFlowForFunc@211",
|
|
"title": "GraphViewModel.openFlowForFunc",
|
|
"nextStepIds": []
|
|
}
|
|
],
|
|
"edgeIds": [
|
|
"edge:call:func:web/src/view/components/NodeDetailPanel.tsx#observer() 回调@13@13=>func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"edge:call:func:web/src/view/components/NodeDetailPanel.tsx#observer() 回调@13@13=>func:web/src/view/components/NodeDetailPanel.tsx#describeInteraction@5",
|
|
"edge:call:func:web/src/view/components/NodeDetailPanel.tsx#observer() 回调@13@13=>func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.openFlowForFunc@211"
|
|
],
|
|
"summary": "以 observer() 回调@13 为入口的调用链,覆盖 4 个函数"
|
|
},
|
|
{
|
|
"id": "flow:call:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.positionedGraph@171",
|
|
"name": "GraphViewModel.positionedGraph (web/src/viewmodel/GraphViewModel.ts)",
|
|
"flowType": "call",
|
|
"provenance": "resolved",
|
|
"entryNodeId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.positionedGraph@171",
|
|
"steps": [
|
|
{
|
|
"id": "step:flow:call:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.positionedGraph@171:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.positionedGraph@171",
|
|
"order": 0,
|
|
"nodeId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.positionedGraph@171",
|
|
"title": "GraphViewModel.positionedGraph",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.positionedGraph@171:func:web/src/model/graphModel.ts#flowToGraph@43",
|
|
"step:flow:call:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.positionedGraph@171:func:web/src/services/dagreLayout.ts#computeLayout@31"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.positionedGraph@171:func:web/src/model/graphModel.ts#flowToGraph@43",
|
|
"order": 1,
|
|
"nodeId": "func:web/src/model/graphModel.ts#flowToGraph@43",
|
|
"title": "flowToGraph",
|
|
"nextStepIds": []
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.positionedGraph@171:func:web/src/services/dagreLayout.ts#computeLayout@31",
|
|
"order": 2,
|
|
"nodeId": "func:web/src/services/dagreLayout.ts#computeLayout@31",
|
|
"title": "computeLayout",
|
|
"nextStepIds": []
|
|
}
|
|
],
|
|
"edgeIds": [
|
|
"edge:call:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.positionedGraph@171=>func:web/src/model/graphModel.ts#flowToGraph@43",
|
|
"edge:call:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.positionedGraph@171=>func:web/src/services/dagreLayout.ts#computeLayout@31"
|
|
],
|
|
"summary": "以 GraphViewModel.positionedGraph 为入口的调用链,覆盖 3 个函数"
|
|
},
|
|
{
|
|
"id": "flow:call:func:web/src/view/components/FlowGraph.tsx#observer() 回调@17@17",
|
|
"name": "observer() 回调@17 (web/src/view/components/FlowGraph.tsx)",
|
|
"flowType": "call",
|
|
"provenance": "resolved",
|
|
"entryNodeId": "func:web/src/view/components/FlowGraph.tsx#observer() 回调@17@17",
|
|
"steps": [
|
|
{
|
|
"id": "step:flow:call:func:web/src/view/components/FlowGraph.tsx#observer() 回调@17@17:func:web/src/view/components/FlowGraph.tsx#observer() 回调@17@17",
|
|
"order": 0,
|
|
"nodeId": "func:web/src/view/components/FlowGraph.tsx#observer() 回调@17@17",
|
|
"title": "observer() 回调@17",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:web/src/view/components/FlowGraph.tsx#observer() 回调@17@17:func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"step:flow:call:func:web/src/view/components/FlowGraph.tsx#observer() 回调@17@17:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectNode@286"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:web/src/view/components/FlowGraph.tsx#observer() 回调@17@17:func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"order": 1,
|
|
"nodeId": "func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"title": "useGraphVM",
|
|
"nextStepIds": []
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:web/src/view/components/FlowGraph.tsx#observer() 回调@17@17:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectNode@286",
|
|
"order": 2,
|
|
"nodeId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectNode@286",
|
|
"title": "GraphViewModel.selectNode",
|
|
"nextStepIds": []
|
|
}
|
|
],
|
|
"edgeIds": [
|
|
"edge:call:func:web/src/view/components/FlowGraph.tsx#observer() 回调@17@17=>func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"edge:call:func:web/src/view/components/FlowGraph.tsx#observer() 回调@17@17=>func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectNode@286"
|
|
],
|
|
"summary": "以 observer() 回调@17 为入口的调用链,覆盖 3 个函数"
|
|
},
|
|
{
|
|
"id": "flow:call:func:web/src/view/components/FlowList.tsx#observer() 回调@4@4",
|
|
"name": "observer() 回调@4 (web/src/view/components/FlowList.tsx)",
|
|
"flowType": "call",
|
|
"provenance": "resolved",
|
|
"entryNodeId": "func:web/src/view/components/FlowList.tsx#observer() 回调@4@4",
|
|
"steps": [
|
|
{
|
|
"id": "step:flow:call:func:web/src/view/components/FlowList.tsx#observer() 回调@4@4:func:web/src/view/components/FlowList.tsx#observer() 回调@4@4",
|
|
"order": 0,
|
|
"nodeId": "func:web/src/view/components/FlowList.tsx#observer() 回调@4@4",
|
|
"title": "observer() 回调@4",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:web/src/view/components/FlowList.tsx#observer() 回调@4@4:func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"step:flow:call:func:web/src/view/components/FlowList.tsx#observer() 回调@4@4:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectFlow@280"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:web/src/view/components/FlowList.tsx#observer() 回调@4@4:func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"order": 1,
|
|
"nodeId": "func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"title": "useGraphVM",
|
|
"nextStepIds": []
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:web/src/view/components/FlowList.tsx#observer() 回调@4@4:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectFlow@280",
|
|
"order": 2,
|
|
"nodeId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectFlow@280",
|
|
"title": "GraphViewModel.selectFlow",
|
|
"nextStepIds": []
|
|
}
|
|
],
|
|
"edgeIds": [
|
|
"edge:call:func:web/src/view/components/FlowList.tsx#observer() 回调@4@4=>func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"edge:call:func:web/src/view/components/FlowList.tsx#observer() 回调@4@4=>func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectFlow@280"
|
|
],
|
|
"summary": "以 observer() 回调@4 为入口的调用链,覆盖 3 个函数"
|
|
},
|
|
{
|
|
"id": "flow:call:func:web/src/view/components/GroupList.tsx#observer() 回调@4@4",
|
|
"name": "observer() 回调@4 (web/src/view/components/GroupList.tsx)",
|
|
"flowType": "call",
|
|
"provenance": "resolved",
|
|
"entryNodeId": "func:web/src/view/components/GroupList.tsx#observer() 回调@4@4",
|
|
"steps": [
|
|
{
|
|
"id": "step:flow:call:func:web/src/view/components/GroupList.tsx#observer() 回调@4@4:func:web/src/view/components/GroupList.tsx#observer() 回调@4@4",
|
|
"order": 0,
|
|
"nodeId": "func:web/src/view/components/GroupList.tsx#observer() 回调@4@4",
|
|
"title": "observer() 回调@4",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:web/src/view/components/GroupList.tsx#observer() 回调@4@4:func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"step:flow:call:func:web/src/view/components/GroupList.tsx#observer() 回调@4@4:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectGroup@117"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:web/src/view/components/GroupList.tsx#observer() 回调@4@4:func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"order": 1,
|
|
"nodeId": "func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"title": "useGraphVM",
|
|
"nextStepIds": []
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:web/src/view/components/GroupList.tsx#observer() 回调@4@4:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectGroup@117",
|
|
"order": 2,
|
|
"nodeId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectGroup@117",
|
|
"title": "GraphViewModel.selectGroup",
|
|
"nextStepIds": []
|
|
}
|
|
],
|
|
"edgeIds": [
|
|
"edge:call:func:web/src/view/components/GroupList.tsx#observer() 回调@4@4=>func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"edge:call:func:web/src/view/components/GroupList.tsx#observer() 回调@4@4=>func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectGroup@117"
|
|
],
|
|
"summary": "以 observer() 回调@4 为入口的调用链,覆盖 3 个函数"
|
|
},
|
|
{
|
|
"id": "flow:call:func:web/src/view/components/SearchBar.tsx#observer() 回调@6@6",
|
|
"name": "observer() 回调@6 (web/src/view/components/SearchBar.tsx)",
|
|
"flowType": "call",
|
|
"provenance": "resolved",
|
|
"entryNodeId": "func:web/src/view/components/SearchBar.tsx#observer() 回调@6@6",
|
|
"steps": [
|
|
{
|
|
"id": "step:flow:call:func:web/src/view/components/SearchBar.tsx#observer() 回调@6@6:func:web/src/view/components/SearchBar.tsx#observer() 回调@6@6",
|
|
"order": 0,
|
|
"nodeId": "func:web/src/view/components/SearchBar.tsx#observer() 回调@6@6",
|
|
"title": "observer() 回调@6",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:web/src/view/components/SearchBar.tsx#observer() 回调@6@6:func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"step:flow:call:func:web/src/view/components/SearchBar.tsx#observer() 回调@6@6:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.setSearchQuery@221"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:web/src/view/components/SearchBar.tsx#observer() 回调@6@6:func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"order": 1,
|
|
"nodeId": "func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"title": "useGraphVM",
|
|
"nextStepIds": []
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:web/src/view/components/SearchBar.tsx#observer() 回调@6@6:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.setSearchQuery@221",
|
|
"order": 2,
|
|
"nodeId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.setSearchQuery@221",
|
|
"title": "GraphViewModel.setSearchQuery",
|
|
"nextStepIds": []
|
|
}
|
|
],
|
|
"edgeIds": [
|
|
"edge:call:func:web/src/view/components/SearchBar.tsx#observer() 回调@6@6=>func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"edge:call:func:web/src/view/components/SearchBar.tsx#observer() 回调@6@6=>func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.setSearchQuery@221"
|
|
],
|
|
"summary": "以 observer() 回调@6 为入口的调用链,覆盖 3 个函数"
|
|
},
|
|
{
|
|
"id": "flow:call:func:web/src/view/components/SearchBar.tsx#匿名函数@26@26",
|
|
"name": "匿名函数@26 (web/src/view/components/SearchBar.tsx)",
|
|
"flowType": "call",
|
|
"provenance": "resolved",
|
|
"entryNodeId": "func:web/src/view/components/SearchBar.tsx#匿名函数@26@26",
|
|
"steps": [
|
|
{
|
|
"id": "step:flow:call:func:web/src/view/components/SearchBar.tsx#匿名函数@26@26:func:web/src/view/components/SearchBar.tsx#匿名函数@26@26",
|
|
"order": 0,
|
|
"nodeId": "func:web/src/view/components/SearchBar.tsx#匿名函数@26@26",
|
|
"title": "匿名函数@26",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:web/src/view/components/SearchBar.tsx#匿名函数@26@26:func:web/src/view/components/SearchBar.tsx#activate@12",
|
|
"step:flow:call:func:web/src/view/components/SearchBar.tsx#匿名函数@26@26:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.setSearchQuery@221"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:web/src/view/components/SearchBar.tsx#匿名函数@26@26:func:web/src/view/components/SearchBar.tsx#activate@12",
|
|
"order": 1,
|
|
"nodeId": "func:web/src/view/components/SearchBar.tsx#activate@12",
|
|
"title": "activate",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:web/src/view/components/SearchBar.tsx#匿名函数@26@26:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.activateSearchResult@268"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:web/src/view/components/SearchBar.tsx#匿名函数@26@26:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.setSearchQuery@221",
|
|
"order": 2,
|
|
"nodeId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.setSearchQuery@221",
|
|
"title": "GraphViewModel.setSearchQuery",
|
|
"nextStepIds": []
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:web/src/view/components/SearchBar.tsx#匿名函数@26@26:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.activateSearchResult@268",
|
|
"order": 3,
|
|
"nodeId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.activateSearchResult@268",
|
|
"title": "GraphViewModel.activateSearchResult",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:web/src/view/components/SearchBar.tsx#匿名函数@26@26:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.biggestFlowForFunc@233",
|
|
"step:flow:call:func:web/src/view/components/SearchBar.tsx#匿名函数@26@26:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.openFlowForFunc@211"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:web/src/view/components/SearchBar.tsx#匿名函数@26@26:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.biggestFlowForFunc@233",
|
|
"order": 4,
|
|
"nodeId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.biggestFlowForFunc@233",
|
|
"title": "GraphViewModel.biggestFlowForFunc",
|
|
"nextStepIds": []
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:web/src/view/components/SearchBar.tsx#匿名函数@26@26:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.openFlowForFunc@211",
|
|
"order": 5,
|
|
"nodeId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.openFlowForFunc@211",
|
|
"title": "GraphViewModel.openFlowForFunc",
|
|
"nextStepIds": []
|
|
}
|
|
],
|
|
"edgeIds": [
|
|
"edge:call:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.activateSearchResult@268=>func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.biggestFlowForFunc@233",
|
|
"edge:call:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.activateSearchResult@268=>func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.openFlowForFunc@211",
|
|
"edge:call:func:web/src/view/components/SearchBar.tsx#activate@12=>func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.activateSearchResult@268",
|
|
"edge:call:func:web/src/view/components/SearchBar.tsx#匿名函数@26@26=>func:web/src/view/components/SearchBar.tsx#activate@12",
|
|
"edge:call:func:web/src/view/components/SearchBar.tsx#匿名函数@26@26=>func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.setSearchQuery@221"
|
|
],
|
|
"summary": "以 匿名函数@26 为入口的调用链,覆盖 6 个函数"
|
|
},
|
|
{
|
|
"id": "flow:call:func:web/src/view/App.tsx#observer() 回调@9@9",
|
|
"name": "observer() 回调@9 (web/src/view/App.tsx)",
|
|
"flowType": "call",
|
|
"provenance": "resolved",
|
|
"entryNodeId": "func:web/src/view/App.tsx#observer() 回调@9@9",
|
|
"steps": [
|
|
{
|
|
"id": "step:flow:call:func:web/src/view/App.tsx#observer() 回调@9@9:func:web/src/view/App.tsx#observer() 回调@9@9",
|
|
"order": 0,
|
|
"nodeId": "func:web/src/view/App.tsx#observer() 回调@9@9",
|
|
"title": "observer() 回调@9",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:web/src/view/App.tsx#observer() 回调@9@9:func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"step:flow:call:func:web/src/view/App.tsx#observer() 回调@9@9:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectReport@74"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:web/src/view/App.tsx#observer() 回调@9@9:func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"order": 1,
|
|
"nodeId": "func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"title": "useGraphVM",
|
|
"nextStepIds": []
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:web/src/view/App.tsx#observer() 回调@9@9:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectReport@74",
|
|
"order": 2,
|
|
"nodeId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectReport@74",
|
|
"title": "GraphViewModel.selectReport",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:web/src/view/App.tsx#observer() 回调@9@9:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.load@126"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:web/src/view/App.tsx#observer() 回调@9@9:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.load@126",
|
|
"order": 3,
|
|
"nodeId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.load@126",
|
|
"title": "GraphViewModel.load",
|
|
"nextStepIds": []
|
|
}
|
|
],
|
|
"edgeIds": [
|
|
"edge:call:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectReport@74=>func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.load@126",
|
|
"edge:call:func:web/src/view/App.tsx#observer() 回调@9@9=>func:web/src/view/vmContext.ts#useGraphVM@6",
|
|
"edge:call:func:web/src/view/App.tsx#observer() 回调@9@9=>func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.selectReport@74"
|
|
],
|
|
"summary": "以 observer() 回调@9 为入口的调用链,覆盖 4 个函数"
|
|
},
|
|
{
|
|
"id": "flow:call:func:src/flows.ts#map() 回调@72@72",
|
|
"name": "map() 回调@72 (src/flows.ts)",
|
|
"flowType": "call",
|
|
"provenance": "resolved",
|
|
"entryNodeId": "func:src/flows.ts#map() 回调@72@72",
|
|
"steps": [
|
|
{
|
|
"id": "step:flow:call:func:src/flows.ts#map() 回调@72@72:func:src/flows.ts#map() 回调@72@72",
|
|
"order": 0,
|
|
"nodeId": "func:src/flows.ts#map() 回调@72@72",
|
|
"title": "map() 回调@72",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:src/flows.ts#map() 回调@72@72:func:src/flows.ts#stepIdOf@70"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/flows.ts#map() 回调@72@72:func:src/flows.ts#stepIdOf@70",
|
|
"order": 1,
|
|
"nodeId": "func:src/flows.ts#stepIdOf@70",
|
|
"title": "stepIdOf",
|
|
"nextStepIds": []
|
|
}
|
|
],
|
|
"edgeIds": [
|
|
"edge:call:func:src/flows.ts#map() 回调@72@72=>func:src/flows.ts#stepIdOf@70"
|
|
],
|
|
"summary": "以 map() 回调@72 为入口的调用链,覆盖 2 个函数"
|
|
},
|
|
{
|
|
"id": "flow:call:func:src/analyzer.ts#inProject@65",
|
|
"name": "inProject (src/analyzer.ts)",
|
|
"flowType": "call",
|
|
"provenance": "resolved",
|
|
"entryNodeId": "func:src/analyzer.ts#inProject@65",
|
|
"steps": [
|
|
{
|
|
"id": "step:flow:call:func:src/analyzer.ts#inProject@65:func:src/analyzer.ts#inProject@65",
|
|
"order": 0,
|
|
"nodeId": "func:src/analyzer.ts#inProject@65",
|
|
"title": "inProject",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:src/analyzer.ts#inProject@65:func:src/analyzer.ts#relOf@64"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/analyzer.ts#inProject@65:func:src/analyzer.ts#relOf@64",
|
|
"order": 1,
|
|
"nodeId": "func:src/analyzer.ts#relOf@64",
|
|
"title": "relOf",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:src/analyzer.ts#inProject@65:func:src/scanner.ts#toPosix@19"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/analyzer.ts#inProject@65:func:src/scanner.ts#toPosix@19",
|
|
"order": 2,
|
|
"nodeId": "func:src/scanner.ts#toPosix@19",
|
|
"title": "toPosix",
|
|
"nextStepIds": []
|
|
}
|
|
],
|
|
"edgeIds": [
|
|
"edge:call:func:src/analyzer.ts#relOf@64=>func:src/scanner.ts#toPosix@19",
|
|
"edge:call:func:src/analyzer.ts#inProject@65=>func:src/analyzer.ts#relOf@64"
|
|
],
|
|
"summary": "以 inProject 为入口的调用链,覆盖 3 个函数"
|
|
},
|
|
{
|
|
"id": "flow:call:func:web/src/model/graphModel.ts#map() 回调@44@44",
|
|
"name": "map() 回调@44 (web/src/model/graphModel.ts)",
|
|
"flowType": "call",
|
|
"provenance": "resolved",
|
|
"entryNodeId": "func:web/src/model/graphModel.ts#map() 回调@44@44",
|
|
"steps": [
|
|
{
|
|
"id": "step:flow:call:func:web/src/model/graphModel.ts#map() 回调@44@44:func:web/src/model/graphModel.ts#map() 回调@44@44",
|
|
"order": 0,
|
|
"nodeId": "func:web/src/model/graphModel.ts#map() 回调@44@44",
|
|
"title": "map() 回调@44",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:web/src/model/graphModel.ts#map() 回调@44@44:func:web/src/model/graphModel.ts#qualifierOf@24"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:web/src/model/graphModel.ts#map() 回调@44@44:func:web/src/model/graphModel.ts#qualifierOf@24",
|
|
"order": 1,
|
|
"nodeId": "func:web/src/model/graphModel.ts#qualifierOf@24",
|
|
"title": "qualifierOf",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:web/src/model/graphModel.ts#map() 回调@44@44:func:web/src/model/graphModel.ts#baseName@19"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:web/src/model/graphModel.ts#map() 回调@44@44:func:web/src/model/graphModel.ts#baseName@19",
|
|
"order": 2,
|
|
"nodeId": "func:web/src/model/graphModel.ts#baseName@19",
|
|
"title": "baseName",
|
|
"nextStepIds": []
|
|
}
|
|
],
|
|
"edgeIds": [
|
|
"edge:call:func:web/src/model/graphModel.ts#qualifierOf@24=>func:web/src/model/graphModel.ts#baseName@19",
|
|
"edge:call:func:web/src/model/graphModel.ts#map() 回调@44@44=>func:web/src/model/graphModel.ts#qualifierOf@24"
|
|
],
|
|
"summary": "以 map() 回调@44 为入口的调用链,覆盖 3 个函数"
|
|
},
|
|
{
|
|
"id": "flow:call:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.groups@100",
|
|
"name": "GraphViewModel.groups (web/src/viewmodel/GraphViewModel.ts)",
|
|
"flowType": "call",
|
|
"provenance": "resolved",
|
|
"entryNodeId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.groups@100",
|
|
"steps": [
|
|
{
|
|
"id": "step:flow:call:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.groups@100:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.groups@100",
|
|
"order": 0,
|
|
"nodeId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.groups@100",
|
|
"title": "GraphViewModel.groups",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.groups@100:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.groupOfFlow@86"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.groups@100:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.groupOfFlow@86",
|
|
"order": 1,
|
|
"nodeId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.groupOfFlow@86",
|
|
"title": "GraphViewModel.groupOfFlow",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.groups@100:func:web/src/viewmodel/GraphViewModel.ts#baseName@34"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.groups@100:func:web/src/viewmodel/GraphViewModel.ts#baseName@34",
|
|
"order": 2,
|
|
"nodeId": "func:web/src/viewmodel/GraphViewModel.ts#baseName@34",
|
|
"title": "baseName",
|
|
"nextStepIds": []
|
|
}
|
|
],
|
|
"edgeIds": [
|
|
"edge:call:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.groupOfFlow@86=>func:web/src/viewmodel/GraphViewModel.ts#baseName@34",
|
|
"edge:call:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.groups@100=>func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.groupOfFlow@86"
|
|
],
|
|
"summary": "以 GraphViewModel.groups 为入口的调用链,覆盖 3 个函数"
|
|
},
|
|
{
|
|
"id": "flow:call:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.visibleFlows@112",
|
|
"name": "GraphViewModel.visibleFlows (web/src/viewmodel/GraphViewModel.ts)",
|
|
"flowType": "call",
|
|
"provenance": "resolved",
|
|
"entryNodeId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.visibleFlows@112",
|
|
"steps": [
|
|
{
|
|
"id": "step:flow:call:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.visibleFlows@112:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.visibleFlows@112",
|
|
"order": 0,
|
|
"nodeId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.visibleFlows@112",
|
|
"title": "GraphViewModel.visibleFlows",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.visibleFlows@112:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.groupOfFlow@86"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.visibleFlows@112:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.groupOfFlow@86",
|
|
"order": 1,
|
|
"nodeId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.groupOfFlow@86",
|
|
"title": "GraphViewModel.groupOfFlow",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.visibleFlows@112:func:web/src/viewmodel/GraphViewModel.ts#baseName@34"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.visibleFlows@112:func:web/src/viewmodel/GraphViewModel.ts#baseName@34",
|
|
"order": 2,
|
|
"nodeId": "func:web/src/viewmodel/GraphViewModel.ts#baseName@34",
|
|
"title": "baseName",
|
|
"nextStepIds": []
|
|
}
|
|
],
|
|
"edgeIds": [
|
|
"edge:call:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.groupOfFlow@86=>func:web/src/viewmodel/GraphViewModel.ts#baseName@34",
|
|
"edge:call:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.visibleFlows@112=>func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.groupOfFlow@86"
|
|
],
|
|
"summary": "以 GraphViewModel.visibleFlows 为入口的调用链,覆盖 3 个函数"
|
|
},
|
|
{
|
|
"id": "flow:call:func:web/src/view/components/FlowNode.tsx#memo() 回调@40@40",
|
|
"name": "memo() 回调@40 (web/src/view/components/FlowNode.tsx)",
|
|
"flowType": "call",
|
|
"provenance": "resolved",
|
|
"entryNodeId": "func:web/src/view/components/FlowNode.tsx#memo() 回调@40@40",
|
|
"steps": [
|
|
{
|
|
"id": "step:flow:call:func:web/src/view/components/FlowNode.tsx#memo() 回调@40@40:func:web/src/view/components/FlowNode.tsx#memo() 回调@40@40",
|
|
"order": 0,
|
|
"nodeId": "func:web/src/view/components/FlowNode.tsx#memo() 回调@40@40",
|
|
"title": "memo() 回调@40",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:web/src/view/components/FlowNode.tsx#memo() 回调@40@40:func:web/src/view/components/FlowNode.tsx#interactionBadges@12"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:web/src/view/components/FlowNode.tsx#memo() 回调@40@40:func:web/src/view/components/FlowNode.tsx#interactionBadges@12",
|
|
"order": 1,
|
|
"nodeId": "func:web/src/view/components/FlowNode.tsx#interactionBadges@12",
|
|
"title": "interactionBadges",
|
|
"nextStepIds": []
|
|
}
|
|
],
|
|
"edgeIds": [
|
|
"edge:call:func:web/src/view/components/FlowNode.tsx#memo() 回调@40@40=>func:web/src/view/components/FlowNode.tsx#interactionBadges@12"
|
|
],
|
|
"summary": "以 memo() 回调@40 为入口的调用链,覆盖 2 个函数"
|
|
},
|
|
{
|
|
"id": "flow:call:func:web/src/view/components/SearchBar.tsx#匿名函数@41@41",
|
|
"name": "匿名函数@41 (web/src/view/components/SearchBar.tsx)",
|
|
"flowType": "call",
|
|
"provenance": "resolved",
|
|
"entryNodeId": "func:web/src/view/components/SearchBar.tsx#匿名函数@41@41",
|
|
"steps": [
|
|
{
|
|
"id": "step:flow:call:func:web/src/view/components/SearchBar.tsx#匿名函数@41@41:func:web/src/view/components/SearchBar.tsx#匿名函数@41@41",
|
|
"order": 0,
|
|
"nodeId": "func:web/src/view/components/SearchBar.tsx#匿名函数@41@41",
|
|
"title": "匿名函数@41",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:web/src/view/components/SearchBar.tsx#匿名函数@41@41:func:web/src/view/components/SearchBar.tsx#activate@12"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:web/src/view/components/SearchBar.tsx#匿名函数@41@41:func:web/src/view/components/SearchBar.tsx#activate@12",
|
|
"order": 1,
|
|
"nodeId": "func:web/src/view/components/SearchBar.tsx#activate@12",
|
|
"title": "activate",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:web/src/view/components/SearchBar.tsx#匿名函数@41@41:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.activateSearchResult@268"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:web/src/view/components/SearchBar.tsx#匿名函数@41@41:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.activateSearchResult@268",
|
|
"order": 2,
|
|
"nodeId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.activateSearchResult@268",
|
|
"title": "GraphViewModel.activateSearchResult",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:web/src/view/components/SearchBar.tsx#匿名函数@41@41:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.biggestFlowForFunc@233",
|
|
"step:flow:call:func:web/src/view/components/SearchBar.tsx#匿名函数@41@41:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.openFlowForFunc@211"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:web/src/view/components/SearchBar.tsx#匿名函数@41@41:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.biggestFlowForFunc@233",
|
|
"order": 3,
|
|
"nodeId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.biggestFlowForFunc@233",
|
|
"title": "GraphViewModel.biggestFlowForFunc",
|
|
"nextStepIds": []
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:web/src/view/components/SearchBar.tsx#匿名函数@41@41:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.openFlowForFunc@211",
|
|
"order": 4,
|
|
"nodeId": "func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.openFlowForFunc@211",
|
|
"title": "GraphViewModel.openFlowForFunc",
|
|
"nextStepIds": []
|
|
}
|
|
],
|
|
"edgeIds": [
|
|
"edge:call:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.activateSearchResult@268=>func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.biggestFlowForFunc@233",
|
|
"edge:call:func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.activateSearchResult@268=>func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.openFlowForFunc@211",
|
|
"edge:call:func:web/src/view/components/SearchBar.tsx#activate@12=>func:web/src/viewmodel/GraphViewModel.ts#GraphViewModel.activateSearchResult@268",
|
|
"edge:call:func:web/src/view/components/SearchBar.tsx#匿名函数@41@41=>func:web/src/view/components/SearchBar.tsx#activate@12"
|
|
],
|
|
"summary": "以 匿名函数@41 为入口的调用链,覆盖 5 个函数"
|
|
},
|
|
{
|
|
"id": "flow:call:func:src/cli.ts#<module>@0",
|
|
"name": "<module> (src/cli.ts)",
|
|
"flowType": "call",
|
|
"provenance": "resolved",
|
|
"entryNodeId": "func:src/cli.ts#<module>@0",
|
|
"steps": [
|
|
{
|
|
"id": "step:flow:call:func:src/cli.ts#<module>@0:func:src/cli.ts#<module>@0",
|
|
"order": 0,
|
|
"nodeId": "func:src/cli.ts#<module>@0",
|
|
"title": "<module>",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:src/cli.ts#<module>@0:func:src/cli.ts#main@40"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/cli.ts#<module>@0:func:src/cli.ts#main@40",
|
|
"order": 1,
|
|
"nodeId": "func:src/cli.ts#main@40",
|
|
"title": "main",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:src/cli.ts#<module>@0:func:src/cli.ts#parseArgs@13",
|
|
"step:flow:call:func:src/cli.ts#<module>@0:func:src/analyzer.ts#analyzeProject@32"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/cli.ts#<module>@0:func:src/cli.ts#parseArgs@13",
|
|
"order": 2,
|
|
"nodeId": "func:src/cli.ts#parseArgs@13",
|
|
"title": "parseArgs",
|
|
"nextStepIds": []
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/cli.ts#<module>@0:func:src/analyzer.ts#analyzeProject@32",
|
|
"order": 3,
|
|
"nodeId": "func:src/analyzer.ts#analyzeProject@32",
|
|
"title": "analyzeProject",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:src/cli.ts#<module>@0:func:src/scanner.ts#collectSourceFiles@24",
|
|
"step:flow:call:func:src/cli.ts#<module>@0:func:src/analyzer.ts#registerFile@223",
|
|
"step:flow:call:func:src/cli.ts#<module>@0:func:src/analyzer.ts#analyzeRelations@487",
|
|
"step:flow:call:func:src/cli.ts#<module>@0:func:src/analyzer.ts#ensureModule@83",
|
|
"step:flow:call:func:src/cli.ts#<module>@0:func:src/flows.ts#generateCallFlows@16",
|
|
"step:flow:call:func:src/cli.ts#<module>@0:func:src/scanner.ts#toPosix@19",
|
|
"step:flow:call:func:src/cli.ts#<module>@0:func:src/externals.ts#deriveExternalSystems@4"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/cli.ts#<module>@0:func:src/scanner.ts#collectSourceFiles@24",
|
|
"order": 4,
|
|
"nodeId": "func:src/scanner.ts#collectSourceFiles@24",
|
|
"title": "collectSourceFiles",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:src/cli.ts#<module>@0:func:src/scanner.ts#walk@27"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/cli.ts#<module>@0:func:src/analyzer.ts#registerFile@223",
|
|
"order": 5,
|
|
"nodeId": "func:src/analyzer.ts#registerFile@223",
|
|
"title": "registerFile",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:src/cli.ts#<module>@0:func:src/analyzer.ts#relOf@64",
|
|
"step:flow:call:func:src/cli.ts#<module>@0:func:src/scanner.ts#languageOf@52",
|
|
"step:flow:call:func:src/cli.ts#<module>@0:func:src/scanner.ts#toPosix@19",
|
|
"step:flow:call:func:src/cli.ts#<module>@0:func:src/analyzer.ts#ensureModule@83"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/cli.ts#<module>@0:func:src/analyzer.ts#analyzeRelations@487",
|
|
"order": 6,
|
|
"nodeId": "func:src/analyzer.ts#analyzeRelations@487",
|
|
"title": "analyzeRelations",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:src/cli.ts#<module>@0:func:src/analyzer.ts#relOf@64",
|
|
"step:flow:call:func:src/cli.ts#<module>@0:func:src/analyzer.ts#walk@492"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/cli.ts#<module>@0:func:src/analyzer.ts#ensureModule@83",
|
|
"order": 7,
|
|
"nodeId": "func:src/analyzer.ts#ensureModule@83",
|
|
"title": "ensureModule",
|
|
"nextStepIds": []
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/cli.ts#<module>@0:func:src/flows.ts#generateCallFlows@16",
|
|
"order": 8,
|
|
"nodeId": "func:src/flows.ts#generateCallFlows@16",
|
|
"title": "generateCallFlows",
|
|
"nextStepIds": []
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/cli.ts#<module>@0:func:src/scanner.ts#toPosix@19",
|
|
"order": 9,
|
|
"nodeId": "func:src/scanner.ts#toPosix@19",
|
|
"title": "toPosix",
|
|
"nextStepIds": []
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/cli.ts#<module>@0:func:src/externals.ts#deriveExternalSystems@4",
|
|
"order": 10,
|
|
"nodeId": "func:src/externals.ts#deriveExternalSystems@4",
|
|
"title": "deriveExternalSystems",
|
|
"nextStepIds": []
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/cli.ts#<module>@0:func:src/scanner.ts#walk@27",
|
|
"order": 11,
|
|
"nodeId": "func:src/scanner.ts#walk@27",
|
|
"title": "walk",
|
|
"nextStepIds": []
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/cli.ts#<module>@0:func:src/analyzer.ts#relOf@64",
|
|
"order": 12,
|
|
"nodeId": "func:src/analyzer.ts#relOf@64",
|
|
"title": "relOf",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:src/cli.ts#<module>@0:func:src/scanner.ts#toPosix@19"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/cli.ts#<module>@0:func:src/scanner.ts#languageOf@52",
|
|
"order": 13,
|
|
"nodeId": "func:src/scanner.ts#languageOf@52",
|
|
"title": "languageOf",
|
|
"nextStepIds": []
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/cli.ts#<module>@0:func:src/analyzer.ts#walk@492",
|
|
"order": 14,
|
|
"nodeId": "func:src/analyzer.ts#walk@492",
|
|
"title": "walk",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:src/cli.ts#<module>@0:func:src/analyzer.ts#resolveInternalImport@548",
|
|
"step:flow:call:func:src/cli.ts#<module>@0:func:src/analyzer.ts#addEdge@433",
|
|
"step:flow:call:func:src/cli.ts#<module>@0:func:src/analyzer.ts#getModuleFunc@462",
|
|
"step:flow:call:func:src/cli.ts#<module>@0:func:src/analyzer.ts#resolveCallTargetFuncId@440",
|
|
"step:flow:call:func:src/cli.ts#<module>@0:func:src/analyzer.ts#detectDb@358",
|
|
"step:flow:call:func:src/cli.ts#<module>@0:func:src/analyzer.ts#addInteraction@419",
|
|
"step:flow:call:func:src/cli.ts#<module>@0:func:src/analyzer.ts#detectApiOut@382",
|
|
"step:flow:call:func:src/cli.ts#<module>@0:func:src/analyzer.ts#detectApiIn@400"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/cli.ts#<module>@0:func:src/analyzer.ts#resolveInternalImport@548",
|
|
"order": 15,
|
|
"nodeId": "func:src/analyzer.ts#resolveInternalImport@548",
|
|
"title": "resolveInternalImport",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:src/cli.ts#<module>@0:func:src/scanner.ts#toPosix@19"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/cli.ts#<module>@0:func:src/analyzer.ts#addEdge@433",
|
|
"order": 16,
|
|
"nodeId": "func:src/analyzer.ts#addEdge@433",
|
|
"title": "addEdge",
|
|
"nextStepIds": []
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/cli.ts#<module>@0:func:src/analyzer.ts#getModuleFunc@462",
|
|
"order": 17,
|
|
"nodeId": "func:src/analyzer.ts#getModuleFunc@462",
|
|
"title": "getModuleFunc",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:src/cli.ts#<module>@0:func:src/scanner.ts#languageOf@52"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/cli.ts#<module>@0:func:src/analyzer.ts#resolveCallTargetFuncId@440",
|
|
"order": 18,
|
|
"nodeId": "func:src/analyzer.ts#resolveCallTargetFuncId@440",
|
|
"title": "resolveCallTargetFuncId",
|
|
"nextStepIds": []
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/cli.ts#<module>@0:func:src/analyzer.ts#detectDb@358",
|
|
"order": 19,
|
|
"nodeId": "func:src/analyzer.ts#detectDb@358",
|
|
"title": "detectDb",
|
|
"nextStepIds": []
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/cli.ts#<module>@0:func:src/analyzer.ts#addInteraction@419",
|
|
"order": 20,
|
|
"nodeId": "func:src/analyzer.ts#addInteraction@419",
|
|
"title": "addInteraction",
|
|
"nextStepIds": []
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/cli.ts#<module>@0:func:src/analyzer.ts#detectApiOut@382",
|
|
"order": 21,
|
|
"nodeId": "func:src/analyzer.ts#detectApiOut@382",
|
|
"title": "detectApiOut",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:src/cli.ts#<module>@0:func:src/analyzer.ts#extractPathArg@333",
|
|
"step:flow:call:func:src/cli.ts#<module>@0:func:src/analyzer.ts#extractMethodFromOptions@341",
|
|
"step:flow:call:func:src/cli.ts#<module>@0:func:src/analyzer.ts#hostOf@352"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/cli.ts#<module>@0:func:src/analyzer.ts#detectApiIn@400",
|
|
"order": 22,
|
|
"nodeId": "func:src/analyzer.ts#detectApiIn@400",
|
|
"title": "detectApiIn",
|
|
"nextStepIds": [
|
|
"step:flow:call:func:src/cli.ts#<module>@0:func:src/analyzer.ts#extractPathArg@333"
|
|
]
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/cli.ts#<module>@0:func:src/analyzer.ts#extractPathArg@333",
|
|
"order": 23,
|
|
"nodeId": "func:src/analyzer.ts#extractPathArg@333",
|
|
"title": "extractPathArg",
|
|
"nextStepIds": []
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/cli.ts#<module>@0:func:src/analyzer.ts#extractMethodFromOptions@341",
|
|
"order": 24,
|
|
"nodeId": "func:src/analyzer.ts#extractMethodFromOptions@341",
|
|
"title": "extractMethodFromOptions",
|
|
"nextStepIds": []
|
|
},
|
|
{
|
|
"id": "step:flow:call:func:src/cli.ts#<module>@0:func:src/analyzer.ts#hostOf@352",
|
|
"order": 25,
|
|
"nodeId": "func:src/analyzer.ts#hostOf@352",
|
|
"title": "hostOf",
|
|
"nextStepIds": []
|
|
}
|
|
],
|
|
"edgeIds": [
|
|
"edge:call:func:src/scanner.ts#collectSourceFiles@24=>func:src/scanner.ts#walk@27",
|
|
"edge:call:func:src/analyzer.ts#analyzeProject@32=>func:src/scanner.ts#collectSourceFiles@24",
|
|
"edge:call:func:src/analyzer.ts#relOf@64=>func:src/scanner.ts#toPosix@19",
|
|
"edge:call:func:src/analyzer.ts#registerFile@223=>func:src/analyzer.ts#relOf@64",
|
|
"edge:call:func:src/analyzer.ts#registerFile@223=>func:src/scanner.ts#languageOf@52",
|
|
"edge:call:func:src/analyzer.ts#registerFile@223=>func:src/scanner.ts#toPosix@19",
|
|
"edge:call:func:src/analyzer.ts#registerFile@223=>func:src/analyzer.ts#ensureModule@83",
|
|
"edge:call:func:src/analyzer.ts#detectApiOut@382=>func:src/analyzer.ts#extractPathArg@333",
|
|
"edge:call:func:src/analyzer.ts#detectApiOut@382=>func:src/analyzer.ts#extractMethodFromOptions@341",
|
|
"edge:call:func:src/analyzer.ts#detectApiOut@382=>func:src/analyzer.ts#hostOf@352",
|
|
"edge:call:func:src/analyzer.ts#detectApiIn@400=>func:src/analyzer.ts#extractPathArg@333",
|
|
"edge:call:func:src/analyzer.ts#getModuleFunc@462=>func:src/scanner.ts#languageOf@52",
|
|
"edge:call:func:src/analyzer.ts#analyzeRelations@487=>func:src/analyzer.ts#relOf@64",
|
|
"edge:call:func:src/analyzer.ts#walk@492=>func:src/analyzer.ts#resolveInternalImport@548",
|
|
"edge:call:func:src/analyzer.ts#walk@492=>func:src/analyzer.ts#addEdge@433",
|
|
"edge:call:func:src/analyzer.ts#walk@492=>func:src/analyzer.ts#getModuleFunc@462",
|
|
"edge:call:func:src/analyzer.ts#walk@492=>func:src/analyzer.ts#resolveCallTargetFuncId@440",
|
|
"edge:call:func:src/analyzer.ts#walk@492=>func:src/analyzer.ts#detectDb@358",
|
|
"edge:call:func:src/analyzer.ts#walk@492=>func:src/analyzer.ts#addInteraction@419",
|
|
"edge:call:func:src/analyzer.ts#walk@492=>func:src/analyzer.ts#detectApiOut@382",
|
|
"edge:call:func:src/analyzer.ts#walk@492=>func:src/analyzer.ts#detectApiIn@400",
|
|
"edge:call:func:src/analyzer.ts#analyzeRelations@487=>func:src/analyzer.ts#walk@492",
|
|
"edge:call:func:src/analyzer.ts#resolveInternalImport@548=>func:src/scanner.ts#toPosix@19",
|
|
"edge:call:func:src/analyzer.ts#analyzeProject@32=>func:src/analyzer.ts#registerFile@223",
|
|
"edge:call:func:src/analyzer.ts#analyzeProject@32=>func:src/analyzer.ts#analyzeRelations@487",
|
|
"edge:call:func:src/analyzer.ts#analyzeProject@32=>func:src/analyzer.ts#ensureModule@83",
|
|
"edge:call:func:src/analyzer.ts#analyzeProject@32=>func:src/flows.ts#generateCallFlows@16",
|
|
"edge:call:func:src/analyzer.ts#analyzeProject@32=>func:src/scanner.ts#toPosix@19",
|
|
"edge:call:func:src/analyzer.ts#analyzeProject@32=>func:src/externals.ts#deriveExternalSystems@4",
|
|
"edge:call:func:src/cli.ts#main@40=>func:src/cli.ts#parseArgs@13",
|
|
"edge:call:func:src/cli.ts#main@40=>func:src/analyzer.ts#analyzeProject@32",
|
|
"edge:call:func:src/cli.ts#<module>@0=>func:src/cli.ts#main@40"
|
|
],
|
|
"summary": "以 <module> 为入口的调用链,覆盖 26 个函数"
|
|
}
|
|
],
|
|
"externalSystems": []
|
|
} |