@weavelogic/knowledge-graph-agent 0.3.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +374 -427
- package/dist/_virtual/ExpiringCache.js +5 -0
- package/dist/_virtual/ExpiringCache.js.map +1 -0
- package/dist/_virtual/___vite-browser-external.js +7 -0
- package/dist/_virtual/___vite-browser-external.js.map +1 -0
- package/dist/_virtual/__vite-browser-external.js +5 -0
- package/dist/_virtual/__vite-browser-external.js.map +1 -0
- package/dist/_virtual/_commonjs-dynamic-modules.js +7 -0
- package/dist/_virtual/_commonjs-dynamic-modules.js.map +1 -0
- package/dist/_virtual/_commonjsHelpers.js +27 -0
- package/dist/_virtual/_commonjsHelpers.js.map +1 -1
- package/dist/_virtual/assert-valid-pattern.js +5 -0
- package/dist/_virtual/assert-valid-pattern.js.map +1 -0
- package/dist/_virtual/ast-converter.js +5 -0
- package/dist/_virtual/ast-converter.js.map +1 -0
- package/dist/_virtual/ast-spec.js +5 -0
- package/dist/_virtual/ast-spec.js.map +1 -0
- package/dist/_virtual/ast.js +5 -0
- package/dist/_virtual/ast.js.map +1 -0
- package/dist/_virtual/brace-expressions.js +5 -0
- package/dist/_virtual/brace-expressions.js.map +1 -0
- package/dist/_virtual/browser.js +6 -0
- package/dist/_virtual/browser.js.map +1 -0
- package/dist/_virtual/browser2.js +5 -0
- package/dist/_virtual/browser2.js.map +1 -0
- package/dist/_virtual/candidateTSConfigRootDirs.js +5 -0
- package/dist/_virtual/candidateTSConfigRootDirs.js.map +1 -0
- package/dist/_virtual/check-modifiers.js +5 -0
- package/dist/_virtual/check-modifiers.js.map +1 -0
- package/dist/_virtual/clear-caches.js +5 -0
- package/dist/_virtual/clear-caches.js.map +1 -0
- package/dist/_virtual/compilerOptions.js +5 -0
- package/dist/_virtual/compilerOptions.js.map +1 -0
- package/dist/_virtual/convert-comments.js +5 -0
- package/dist/_virtual/convert-comments.js.map +1 -0
- package/dist/_virtual/convert.js +5 -0
- package/dist/_virtual/convert.js.map +1 -0
- package/dist/_virtual/createIsolatedProgram.js +5 -0
- package/dist/_virtual/createIsolatedProgram.js.map +1 -0
- package/dist/_virtual/createParseSettings.js +5 -0
- package/dist/_virtual/createParseSettings.js.map +1 -0
- package/dist/_virtual/createParserServices.js +5 -0
- package/dist/_virtual/createParserServices.js.map +1 -0
- package/dist/_virtual/createProjectProgram.js +5 -0
- package/dist/_virtual/createProjectProgram.js.map +1 -0
- package/dist/_virtual/createProjectProgramError.js +5 -0
- package/dist/_virtual/createProjectProgramError.js.map +1 -0
- package/dist/_virtual/createProjectService.js +5 -0
- package/dist/_virtual/createProjectService.js.map +1 -0
- package/dist/_virtual/createSourceFile.js +5 -0
- package/dist/_virtual/createSourceFile.js.map +1 -0
- package/dist/_virtual/describeFilePath.js +5 -0
- package/dist/_virtual/describeFilePath.js.map +1 -0
- package/dist/_virtual/escape.js +5 -0
- package/dist/_virtual/escape.js.map +1 -0
- package/dist/_virtual/eslint-visitor-keys.js +5 -0
- package/dist/_virtual/eslint-visitor-keys.js.map +1 -0
- package/dist/_virtual/estree-to-ts-node-types.js +5 -0
- package/dist/_virtual/estree-to-ts-node-types.js.map +1 -0
- package/dist/_virtual/get-keys.js +5 -0
- package/dist/_virtual/get-keys.js.map +1 -0
- package/dist/_virtual/getModifiers.js +5 -0
- package/dist/_virtual/getModifiers.js.map +1 -0
- package/dist/_virtual/getParsedConfigFile.js +5 -0
- package/dist/_virtual/getParsedConfigFile.js.map +1 -0
- package/dist/_virtual/getParsedConfigFileFromTSServer.js +5 -0
- package/dist/_virtual/getParsedConfigFileFromTSServer.js.map +1 -0
- package/dist/_virtual/getProjectConfigFiles.js +5 -0
- package/dist/_virtual/getProjectConfigFiles.js.map +1 -0
- package/dist/_virtual/getScriptKind.js +5 -0
- package/dist/_virtual/getScriptKind.js.map +1 -0
- package/dist/_virtual/getWatchProgramsForProjects.js +5 -0
- package/dist/_virtual/getWatchProgramsForProjects.js.map +1 -0
- package/dist/_virtual/global-ponyfill.js +9 -0
- package/dist/_virtual/global-ponyfill.js.map +1 -0
- package/dist/_virtual/global-ponyfill2.js +5 -0
- package/dist/_virtual/global-ponyfill2.js.map +1 -0
- package/dist/_virtual/index.js +2 -4
- package/dist/_virtual/index.js.map +1 -1
- package/dist/_virtual/index10.js +2 -2
- package/dist/_virtual/index11.js +2 -2
- package/dist/_virtual/index2.js +2 -2
- package/dist/_virtual/index3.js +2 -2
- package/dist/_virtual/index4.js +2 -2
- package/dist/_virtual/index5.js +2 -2
- package/dist/_virtual/index6.js +2 -2
- package/dist/_virtual/index7.js +2 -2
- package/dist/_virtual/index8.js +2 -2
- package/dist/_virtual/index9.js +2 -2
- package/dist/_virtual/inferSingleRun.js +5 -0
- package/dist/_virtual/inferSingleRun.js.map +1 -0
- package/dist/_virtual/lib.js +5 -0
- package/dist/_virtual/lib.js.map +1 -0
- package/dist/_virtual/node-utils.js +5 -0
- package/dist/_virtual/node-utils.js.map +1 -0
- package/dist/_virtual/parser-options.js +5 -0
- package/dist/_virtual/parser-options.js.map +1 -0
- package/dist/_virtual/parser.js +5 -0
- package/dist/_virtual/parser.js.map +1 -0
- package/dist/_virtual/re.js +5 -0
- package/dist/_virtual/re.js.map +1 -0
- package/dist/_virtual/resolveProjectList.js +5 -0
- package/dist/_virtual/resolveProjectList.js.map +1 -0
- package/dist/_virtual/semantic-or-syntactic-errors.js +5 -0
- package/dist/_virtual/semantic-or-syntactic-errors.js.map +1 -0
- package/dist/_virtual/shared.js +5 -0
- package/dist/_virtual/shared.js.map +1 -0
- package/dist/_virtual/simple-traverse.js +5 -0
- package/dist/_virtual/simple-traverse.js.map +1 -0
- package/dist/_virtual/source-files.js +5 -0
- package/dist/_virtual/source-files.js.map +1 -0
- package/dist/_virtual/ts-estree.js +5 -0
- package/dist/_virtual/ts-estree.js.map +1 -0
- package/dist/_virtual/ts-nodes.js +5 -0
- package/dist/_virtual/ts-nodes.js.map +1 -0
- package/dist/_virtual/tsserverlibrary.js +5 -0
- package/dist/_virtual/tsserverlibrary.js.map +1 -0
- package/dist/_virtual/typescript.js +5 -0
- package/dist/_virtual/typescript.js.map +1 -0
- package/dist/_virtual/unescape.js +5 -0
- package/dist/_virtual/unescape.js.map +1 -0
- package/dist/_virtual/useProgramFromProjectService.js +5 -0
- package/dist/_virtual/useProgramFromProjectService.js.map +1 -0
- package/dist/_virtual/useProvidedPrograms.js +5 -0
- package/dist/_virtual/useProvidedPrograms.js.map +1 -0
- package/dist/_virtual/utils.js +5 -0
- package/dist/_virtual/utils.js.map +1 -0
- package/dist/_virtual/validateDefaultProjectForFilesGlob.js +5 -0
- package/dist/_virtual/validateDefaultProjectForFilesGlob.js.map +1 -0
- package/dist/_virtual/version-check.js +5 -0
- package/dist/_virtual/version-check.js.map +1 -0
- package/dist/_virtual/version.js +5 -0
- package/dist/_virtual/version.js.map +1 -0
- package/dist/_virtual/visitor-keys.js +5 -0
- package/dist/_virtual/visitor-keys.js.map +1 -0
- package/dist/_virtual/warnAboutTSVersion.js +5 -0
- package/dist/_virtual/warnAboutTSVersion.js.map +1 -0
- package/dist/_virtual/withoutProjectParserOptions.js +5 -0
- package/dist/_virtual/withoutProjectParserOptions.js.map +1 -0
- package/dist/_virtual/xhtml-entities.js +5 -0
- package/dist/_virtual/xhtml-entities.js.map +1 -0
- package/dist/audit/config.d.ts +150 -0
- package/dist/audit/config.d.ts.map +1 -0
- package/dist/audit/config.js +111 -0
- package/dist/audit/config.js.map +1 -0
- package/dist/audit/index.d.ts +38 -0
- package/dist/audit/index.d.ts.map +1 -0
- package/dist/audit/services/audit-chain.d.ts +276 -0
- package/dist/audit/services/audit-chain.d.ts.map +1 -0
- package/dist/audit/services/audit-chain.js +502 -0
- package/dist/audit/services/audit-chain.js.map +1 -0
- package/dist/audit/services/index.d.ts +11 -0
- package/dist/audit/services/index.d.ts.map +1 -0
- package/dist/audit/services/syndication.d.ts +334 -0
- package/dist/audit/services/syndication.d.ts.map +1 -0
- package/dist/audit/services/syndication.js +589 -0
- package/dist/audit/services/syndication.js.map +1 -0
- package/dist/audit/types.d.ts +453 -0
- package/dist/audit/types.d.ts.map +1 -0
- package/dist/cli/commands/audit.d.ts +21 -0
- package/dist/cli/commands/audit.d.ts.map +1 -0
- package/dist/cli/commands/audit.js +621 -0
- package/dist/cli/commands/audit.js.map +1 -0
- package/dist/cli/commands/dashboard.d.ts +14 -0
- package/dist/cli/commands/dashboard.d.ts.map +1 -0
- package/dist/cli/commands/dashboard.js +271 -0
- package/dist/cli/commands/dashboard.js.map +1 -0
- package/dist/cli/commands/plugin.d.ts +14 -0
- package/dist/cli/commands/plugin.d.ts.map +1 -0
- package/dist/cli/commands/plugin.js +784 -0
- package/dist/cli/commands/plugin.js.map +1 -0
- package/dist/cli/commands/serve.d.ts +15 -0
- package/dist/cli/commands/serve.d.ts.map +1 -0
- package/dist/cli/commands/serve.js +252 -0
- package/dist/cli/commands/serve.js.map +1 -0
- package/dist/cli/commands/vector.d.ts +14 -0
- package/dist/cli/commands/vector.d.ts.map +1 -0
- package/dist/cli/commands/vector.js +429 -0
- package/dist/cli/commands/vector.js.map +1 -0
- package/dist/cli/commands/workflow.d.ts +12 -0
- package/dist/cli/commands/workflow.d.ts.map +1 -0
- package/dist/cli/commands/workflow.js +471 -0
- package/dist/cli/commands/workflow.js.map +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +54 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/config/manager.js +325 -0
- package/dist/config/manager.js.map +1 -0
- package/dist/dashboard-server/index.d.ts +31 -0
- package/dist/dashboard-server/index.d.ts.map +1 -0
- package/dist/dashboard-server/server.d.ts +205 -0
- package/dist/dashboard-server/server.d.ts.map +1 -0
- package/dist/dashboard-server/server.js +651 -0
- package/dist/dashboard-server/server.js.map +1 -0
- package/dist/database/schemas/index.d.ts +85 -0
- package/dist/database/schemas/index.d.ts.map +1 -0
- package/dist/graphql/context.d.ts +154 -0
- package/dist/graphql/context.d.ts.map +1 -0
- package/dist/graphql/context.js +168 -0
- package/dist/graphql/context.js.map +1 -0
- package/dist/graphql/index.d.ts +12 -0
- package/dist/graphql/index.d.ts.map +1 -0
- package/dist/graphql/pubsub.d.ts +282 -0
- package/dist/graphql/pubsub.d.ts.map +1 -0
- package/dist/graphql/resolvers/index.d.ts +519 -0
- package/dist/graphql/resolvers/index.d.ts.map +1 -0
- package/dist/graphql/resolvers/mutations.d.ts +255 -0
- package/dist/graphql/resolvers/mutations.d.ts.map +1 -0
- package/dist/graphql/resolvers/queries.d.ts +451 -0
- package/dist/graphql/resolvers/queries.d.ts.map +1 -0
- package/dist/graphql/resolvers/subscriptions.d.ts +399 -0
- package/dist/graphql/resolvers/subscriptions.d.ts.map +1 -0
- package/dist/graphql/scalars.d.ts +89 -0
- package/dist/graphql/scalars.d.ts.map +1 -0
- package/dist/graphql/scalars.js +242 -0
- package/dist/graphql/scalars.js.map +1 -0
- package/dist/graphql/server.d.ts +122 -0
- package/dist/graphql/server.d.ts.map +1 -0
- package/dist/graphql/server.js +368 -0
- package/dist/graphql/server.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +115 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp-server/handlers/index.js +1 -1
- package/dist/mcp-server/server.js +2 -2
- package/dist/mcp-server/tools/audit/checkpoint.d.ts +58 -0
- package/dist/mcp-server/tools/audit/checkpoint.d.ts.map +1 -0
- package/dist/mcp-server/tools/audit/checkpoint.js +73 -0
- package/dist/mcp-server/tools/audit/checkpoint.js.map +1 -0
- package/dist/mcp-server/tools/audit/index.d.ts +53 -0
- package/dist/mcp-server/tools/audit/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/audit/index.js +12 -0
- package/dist/mcp-server/tools/audit/index.js.map +1 -0
- package/dist/mcp-server/tools/audit/query.d.ts +58 -0
- package/dist/mcp-server/tools/audit/query.d.ts.map +1 -0
- package/dist/mcp-server/tools/audit/query.js +125 -0
- package/dist/mcp-server/tools/audit/query.js.map +1 -0
- package/dist/mcp-server/tools/audit/sync.d.ts +58 -0
- package/dist/mcp-server/tools/audit/sync.d.ts.map +1 -0
- package/dist/mcp-server/tools/audit/sync.js +126 -0
- package/dist/mcp-server/tools/audit/sync.js.map +1 -0
- package/dist/mcp-server/tools/index.d.ts +3 -0
- package/dist/mcp-server/tools/index.d.ts.map +1 -1
- package/dist/mcp-server/tools/registry.js +90 -0
- package/dist/mcp-server/tools/registry.js.map +1 -1
- package/dist/mcp-server/tools/vector/index.d.ts +12 -0
- package/dist/mcp-server/tools/vector/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/vector/index.js +12 -0
- package/dist/mcp-server/tools/vector/index.js.map +1 -0
- package/dist/mcp-server/tools/vector/search.d.ts +41 -0
- package/dist/mcp-server/tools/vector/search.d.ts.map +1 -0
- package/dist/mcp-server/tools/vector/search.js +224 -0
- package/dist/mcp-server/tools/vector/search.js.map +1 -0
- package/dist/mcp-server/tools/vector/trajectory.d.ts +39 -0
- package/dist/mcp-server/tools/vector/trajectory.d.ts.map +1 -0
- package/dist/mcp-server/tools/vector/trajectory.js +170 -0
- package/dist/mcp-server/tools/vector/trajectory.js.map +1 -0
- package/dist/mcp-server/tools/vector/upsert.d.ts +44 -0
- package/dist/mcp-server/tools/vector/upsert.d.ts.map +1 -0
- package/dist/mcp-server/tools/vector/upsert.js +175 -0
- package/dist/mcp-server/tools/vector/upsert.js.map +1 -0
- package/dist/mcp-server/tools/workflow/index.d.ts +29 -0
- package/dist/mcp-server/tools/workflow/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/workflow/index.js +12 -0
- package/dist/mcp-server/tools/workflow/index.js.map +1 -0
- package/dist/mcp-server/tools/workflow/list.d.ts +41 -0
- package/dist/mcp-server/tools/workflow/list.d.ts.map +1 -0
- package/dist/mcp-server/tools/workflow/list.js +195 -0
- package/dist/mcp-server/tools/workflow/list.js.map +1 -0
- package/dist/mcp-server/tools/workflow/start.d.ts +40 -0
- package/dist/mcp-server/tools/workflow/start.d.ts.map +1 -0
- package/dist/mcp-server/tools/workflow/start.js +165 -0
- package/dist/mcp-server/tools/workflow/start.js.map +1 -0
- package/dist/mcp-server/tools/workflow/status.d.ts +38 -0
- package/dist/mcp-server/tools/workflow/status.d.ts.map +1 -0
- package/dist/mcp-server/tools/workflow/status.js +97 -0
- package/dist/mcp-server/tools/workflow/status.js.map +1 -0
- package/dist/node_modules/@envelop/core/esm/create.js +31 -0
- package/dist/node_modules/@envelop/core/esm/create.js.map +1 -0
- package/dist/node_modules/@envelop/core/esm/document-string-map.js +5 -0
- package/dist/node_modules/@envelop/core/esm/document-string-map.js.map +1 -0
- package/dist/node_modules/@envelop/core/esm/orchestrator.js +407 -0
- package/dist/node_modules/@envelop/core/esm/orchestrator.js.map +1 -0
- package/dist/node_modules/@envelop/core/esm/plugins/use-engine.js +29 -0
- package/dist/node_modules/@envelop/core/esm/plugins/use-engine.js.map +1 -0
- package/dist/node_modules/@envelop/core/esm/plugins/use-extend-context.js +10 -0
- package/dist/node_modules/@envelop/core/esm/plugins/use-extend-context.js.map +1 -0
- package/dist/node_modules/@envelop/core/esm/plugins/use-masked-errors.js +86 -0
- package/dist/node_modules/@envelop/core/esm/plugins/use-masked-errors.js.map +1 -0
- package/dist/node_modules/@envelop/core/esm/utils.js +129 -0
- package/dist/node_modules/@envelop/core/esm/utils.js.map +1 -0
- package/dist/node_modules/@envelop/instrumentation/esm/instrumentation.js +51 -0
- package/dist/node_modules/@envelop/instrumentation/esm/instrumentation.js.map +1 -0
- package/dist/node_modules/@graphql-tools/executor/esm/execution/coerceError.js +26 -0
- package/dist/node_modules/@graphql-tools/executor/esm/execution/coerceError.js.map +1 -0
- package/dist/node_modules/@graphql-tools/executor/esm/execution/execute.js +1101 -0
- package/dist/node_modules/@graphql-tools/executor/esm/execution/execute.js.map +1 -0
- package/dist/node_modules/@graphql-tools/executor/esm/execution/flattenAsyncIterable.js +72 -0
- package/dist/node_modules/@graphql-tools/executor/esm/execution/flattenAsyncIterable.js.map +1 -0
- package/dist/node_modules/@graphql-tools/executor/esm/execution/invariant.js +9 -0
- package/dist/node_modules/@graphql-tools/executor/esm/execution/invariant.js.map +1 -0
- package/dist/node_modules/@graphql-tools/executor/esm/execution/normalizedExecutor.js +22 -0
- package/dist/node_modules/@graphql-tools/executor/esm/execution/normalizedExecutor.js.map +1 -0
- package/dist/node_modules/@graphql-tools/executor/esm/execution/promiseForObject.js +26 -0
- package/dist/node_modules/@graphql-tools/executor/esm/execution/promiseForObject.js.map +1 -0
- package/dist/node_modules/@graphql-tools/executor/esm/execution/values.js +73 -0
- package/dist/node_modules/@graphql-tools/executor/esm/execution/values.js.map +1 -0
- package/dist/node_modules/@graphql-tools/merge/esm/extensions.js +46 -0
- package/dist/node_modules/@graphql-tools/merge/esm/extensions.js.map +1 -0
- package/dist/node_modules/@graphql-tools/merge/esm/links.js +142 -0
- package/dist/node_modules/@graphql-tools/merge/esm/links.js.map +1 -0
- package/dist/node_modules/@graphql-tools/merge/esm/merge-resolvers.js +27 -0
- package/dist/node_modules/@graphql-tools/merge/esm/merge-resolvers.js.map +1 -0
- package/dist/node_modules/@graphql-tools/merge/esm/typedefs-mergers/arguments.js +23 -0
- package/dist/node_modules/@graphql-tools/merge/esm/typedefs-mergers/arguments.js.map +1 -0
- package/dist/node_modules/@graphql-tools/merge/esm/typedefs-mergers/directives.js +113 -0
- package/dist/node_modules/@graphql-tools/merge/esm/typedefs-mergers/directives.js.map +1 -0
- package/dist/node_modules/@graphql-tools/merge/esm/typedefs-mergers/enum-values.js +39 -0
- package/dist/node_modules/@graphql-tools/merge/esm/typedefs-mergers/enum-values.js.map +1 -0
- package/dist/node_modules/@graphql-tools/merge/esm/typedefs-mergers/enum.js +23 -0
- package/dist/node_modules/@graphql-tools/merge/esm/typedefs-mergers/enum.js.map +1 -0
- package/dist/node_modules/@graphql-tools/merge/esm/typedefs-mergers/fields.js +74 -0
- package/dist/node_modules/@graphql-tools/merge/esm/typedefs-mergers/fields.js.map +1 -0
- package/dist/node_modules/@graphql-tools/merge/esm/typedefs-mergers/input-type.js +27 -0
- package/dist/node_modules/@graphql-tools/merge/esm/typedefs-mergers/input-type.js.map +1 -0
- package/dist/node_modules/@graphql-tools/merge/esm/typedefs-mergers/interface.js +29 -0
- package/dist/node_modules/@graphql-tools/merge/esm/typedefs-mergers/interface.js.map +1 -0
- package/dist/node_modules/@graphql-tools/merge/esm/typedefs-mergers/merge-named-type-array.js +15 -0
- package/dist/node_modules/@graphql-tools/merge/esm/typedefs-mergers/merge-named-type-array.js.map +1 -0
- package/dist/node_modules/@graphql-tools/merge/esm/typedefs-mergers/merge-nodes.js +81 -0
- package/dist/node_modules/@graphql-tools/merge/esm/typedefs-mergers/merge-nodes.js.map +1 -0
- package/dist/node_modules/@graphql-tools/merge/esm/typedefs-mergers/merge-typedefs.js +142 -0
- package/dist/node_modules/@graphql-tools/merge/esm/typedefs-mergers/merge-typedefs.js.map +1 -0
- package/dist/node_modules/@graphql-tools/merge/esm/typedefs-mergers/scalar.js +21 -0
- package/dist/node_modules/@graphql-tools/merge/esm/typedefs-mergers/scalar.js.map +1 -0
- package/dist/node_modules/@graphql-tools/merge/esm/typedefs-mergers/schema-def.js +36 -0
- package/dist/node_modules/@graphql-tools/merge/esm/typedefs-mergers/schema-def.js.map +1 -0
- package/dist/node_modules/@graphql-tools/merge/esm/typedefs-mergers/type.js +29 -0
- package/dist/node_modules/@graphql-tools/merge/esm/typedefs-mergers/type.js.map +1 -0
- package/dist/node_modules/@graphql-tools/merge/esm/typedefs-mergers/union.js +24 -0
- package/dist/node_modules/@graphql-tools/merge/esm/typedefs-mergers/union.js.map +1 -0
- package/dist/node_modules/@graphql-tools/merge/esm/typedefs-mergers/utils.js +67 -0
- package/dist/node_modules/@graphql-tools/merge/esm/typedefs-mergers/utils.js.map +1 -0
- package/dist/node_modules/@graphql-tools/schema/esm/addResolversToSchema.js +287 -0
- package/dist/node_modules/@graphql-tools/schema/esm/addResolversToSchema.js.map +1 -0
- package/dist/node_modules/@graphql-tools/schema/esm/assertResolversPresent.js +42 -0
- package/dist/node_modules/@graphql-tools/schema/esm/assertResolversPresent.js.map +1 -0
- package/dist/node_modules/@graphql-tools/schema/esm/checkForResolveTypeResolver.js +22 -0
- package/dist/node_modules/@graphql-tools/schema/esm/checkForResolveTypeResolver.js.map +1 -0
- package/dist/node_modules/@graphql-tools/schema/esm/extendResolversFromInterfaces.js +34 -0
- package/dist/node_modules/@graphql-tools/schema/esm/extendResolversFromInterfaces.js.map +1 -0
- package/dist/node_modules/@graphql-tools/schema/esm/makeExecutableSchema.js +50 -0
- package/dist/node_modules/@graphql-tools/schema/esm/makeExecutableSchema.js.map +1 -0
- package/dist/node_modules/@graphql-tools/utils/esm/AccumulatorMap.js +17 -0
- package/dist/node_modules/@graphql-tools/utils/esm/AccumulatorMap.js.map +1 -0
- package/dist/node_modules/@graphql-tools/utils/esm/Interfaces.js +32 -0
- package/dist/node_modules/@graphql-tools/utils/esm/Interfaces.js.map +1 -0
- package/dist/node_modules/@graphql-tools/utils/esm/Path.js +21 -0
- package/dist/node_modules/@graphql-tools/utils/esm/Path.js.map +1 -0
- package/dist/node_modules/@graphql-tools/utils/esm/astFromType.js +31 -0
- package/dist/node_modules/@graphql-tools/utils/esm/astFromType.js.map +1 -0
- package/dist/node_modules/@graphql-tools/utils/esm/astFromValue.js +70 -0
- package/dist/node_modules/@graphql-tools/utils/esm/astFromValue.js.map +1 -0
- package/dist/node_modules/@graphql-tools/utils/esm/astFromValueUntyped.js +56 -0
- package/dist/node_modules/@graphql-tools/utils/esm/astFromValueUntyped.js.map +1 -0
- package/dist/node_modules/@graphql-tools/utils/esm/collectFields.js +137 -0
- package/dist/node_modules/@graphql-tools/utils/esm/collectFields.js.map +1 -0
- package/dist/node_modules/@graphql-tools/utils/esm/comments.js +337 -0
- package/dist/node_modules/@graphql-tools/utils/esm/comments.js.map +1 -0
- package/dist/node_modules/@graphql-tools/utils/esm/descriptionFromObject.js +20 -0
- package/dist/node_modules/@graphql-tools/utils/esm/descriptionFromObject.js.map +1 -0
- package/dist/node_modules/@graphql-tools/utils/esm/directives.js +46 -0
- package/dist/node_modules/@graphql-tools/utils/esm/directives.js.map +1 -0
- package/dist/node_modules/@graphql-tools/utils/esm/errors.js +52 -0
- package/dist/node_modules/@graphql-tools/utils/esm/errors.js.map +1 -0
- package/dist/node_modules/@graphql-tools/utils/esm/forEachDefaultValue.js +28 -0
- package/dist/node_modules/@graphql-tools/utils/esm/forEachDefaultValue.js.map +1 -0
- package/dist/node_modules/@graphql-tools/utils/esm/forEachField.js +18 -0
- package/dist/node_modules/@graphql-tools/utils/esm/forEachField.js.map +1 -0
- package/dist/node_modules/@graphql-tools/utils/esm/get-directives.js +12 -0
- package/dist/node_modules/@graphql-tools/utils/esm/get-directives.js.map +1 -0
- package/dist/node_modules/@graphql-tools/utils/esm/getArgumentValues.js +61 -0
- package/dist/node_modules/@graphql-tools/utils/esm/getArgumentValues.js.map +1 -0
- package/dist/node_modules/@graphql-tools/utils/esm/getDirectiveExtensions.js +76 -0
- package/dist/node_modules/@graphql-tools/utils/esm/getDirectiveExtensions.js.map +1 -0
- package/dist/node_modules/@graphql-tools/utils/esm/getObjectTypeFromTypeMap.js +13 -0
- package/dist/node_modules/@graphql-tools/utils/esm/getObjectTypeFromTypeMap.js.map +1 -0
- package/dist/node_modules/@graphql-tools/utils/esm/heal.js +120 -0
- package/dist/node_modules/@graphql-tools/utils/esm/heal.js.map +1 -0
- package/dist/node_modules/@graphql-tools/utils/esm/helpers.js +42 -0
- package/dist/node_modules/@graphql-tools/utils/esm/helpers.js.map +1 -0
- package/dist/node_modules/@graphql-tools/utils/esm/isAsyncIterable.js +7 -0
- package/dist/node_modules/@graphql-tools/utils/esm/isAsyncIterable.js.map +1 -0
- package/dist/node_modules/@graphql-tools/utils/esm/isDocumentNode.js +8 -0
- package/dist/node_modules/@graphql-tools/utils/esm/isDocumentNode.js.map +1 -0
- package/dist/node_modules/@graphql-tools/utils/esm/jsutils.js +26 -0
- package/dist/node_modules/@graphql-tools/utils/esm/jsutils.js.map +1 -0
- package/dist/node_modules/@graphql-tools/utils/esm/mapSchema.js +439 -0
- package/dist/node_modules/@graphql-tools/utils/esm/mapSchema.js.map +1 -0
- package/dist/node_modules/@graphql-tools/utils/esm/memoize.js +104 -0
- package/dist/node_modules/@graphql-tools/utils/esm/memoize.js.map +1 -0
- package/dist/node_modules/@graphql-tools/utils/esm/mergeDeep.js +86 -0
- package/dist/node_modules/@graphql-tools/utils/esm/mergeDeep.js.map +1 -0
- package/dist/node_modules/@graphql-tools/utils/esm/print-schema-with-directives.js +370 -0
- package/dist/node_modules/@graphql-tools/utils/esm/print-schema-with-directives.js.map +1 -0
- package/dist/node_modules/@graphql-tools/utils/esm/rewire.js +155 -0
- package/dist/node_modules/@graphql-tools/utils/esm/rewire.js.map +1 -0
- package/dist/node_modules/@graphql-tools/utils/esm/rootTypes.js +33 -0
- package/dist/node_modules/@graphql-tools/utils/esm/rootTypes.js.map +1 -0
- package/dist/node_modules/@graphql-tools/utils/esm/stub.js +32 -0
- package/dist/node_modules/@graphql-tools/utils/esm/stub.js.map +1 -0
- package/dist/node_modules/@graphql-tools/utils/esm/transformInputValue.js +47 -0
- package/dist/node_modules/@graphql-tools/utils/esm/transformInputValue.js.map +1 -0
- package/dist/node_modules/@graphql-yoga/logger/esm/index.js +42 -0
- package/dist/node_modules/@graphql-yoga/logger/esm/index.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/project-service/dist/createProjectService.js +126 -0
- package/dist/node_modules/@typescript-eslint/project-service/dist/createProjectService.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/project-service/dist/getParsedConfigFileFromTSServer.js +25 -0
- package/dist/node_modules/@typescript-eslint/project-service/dist/getParsedConfigFileFromTSServer.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/project-service/dist/index.js +32 -0
- package/dist/node_modules/@typescript-eslint/project-service/dist/index.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/tsconfig-utils/dist/compilerOptions.js +20 -0
- package/dist/node_modules/@typescript-eslint/tsconfig-utils/dist/compilerOptions.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/tsconfig-utils/dist/getParsedConfigFile.js +87 -0
- package/dist/node_modules/@typescript-eslint/tsconfig-utils/dist/getParsedConfigFile.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/tsconfig-utils/dist/index.js +34 -0
- package/dist/node_modules/@typescript-eslint/tsconfig-utils/dist/index.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/types/dist/generated/ast-spec.js +201 -0
- package/dist/node_modules/@typescript-eslint/types/dist/generated/ast-spec.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/types/dist/index.js +45 -0
- package/dist/node_modules/@typescript-eslint/types/dist/index.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/types/dist/lib.js +12 -0
- package/dist/node_modules/@typescript-eslint/types/dist/lib.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/types/dist/parser-options.js +12 -0
- package/dist/node_modules/@typescript-eslint/types/dist/parser-options.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/types/dist/ts-estree.js +52 -0
- package/dist/node_modules/@typescript-eslint/types/dist/ts-estree.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.js +54 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/check-modifiers.js +207 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/check-modifiers.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/clear-caches.js +34 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/clear-caches.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/convert-comments.js +81 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/convert-comments.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/convert.js +2438 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/convert.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createIsolatedProgram.js +117 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createIsolatedProgram.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js +33 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgramError.js +82 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgramError.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createSourceFile.js +84 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createSourceFile.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/create-program/describeFilePath.js +31 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/create-program/describeFilePath.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/create-program/getScriptKind.js +90 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/create-program/getScriptKind.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/create-program/getWatchProgramsForProjects.js +292 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/create-program/getWatchProgramsForProjects.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.js +134 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/create-program/useProvidedPrograms.js +91 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/create-program/useProvidedPrograms.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/create-program/validateDefaultProjectForFilesGlob.js +35 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/create-program/validateDefaultProjectForFilesGlob.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/createParserServices.js +39 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/createParserServices.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/getModifiers.js +88 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/getModifiers.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/index.js +90 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/index.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/jsx/xhtml-entities.js +268 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/jsx/xhtml-entities.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.js +533 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/ExpiringCache.js +50 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/ExpiringCache.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/candidateTSConfigRootDirs.js +38 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/candidateTSConfigRootDirs.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/createParseSettings.js +216 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/createParseSettings.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/getProjectConfigFiles.js +87 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/getProjectConfigFiles.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/inferSingleRun.js +53 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/inferSingleRun.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/resolveProjectList.js +89 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/resolveProjectList.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/warnAboutTSVersion.js +92 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/warnAboutTSVersion.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/parser.js +132 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/parser.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/semantic-or-syntactic-errors.js +124 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/semantic-or-syntactic-errors.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.js +64 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/source-files.js +63 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/source-files.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.js +12 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/index.js +46 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/index.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.js +12 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/useProgramFromProjectService.js +205 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/useProgramFromProjectService.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/version-check.js +75 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/version-check.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/version.js +15 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/version.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/withoutProjectParserOptions.js +17 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/dist/withoutProjectParserOptions.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js +23 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/ast.js +495 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/ast.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/brace-expressions.js +121 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/brace-expressions.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/escape.js +17 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/escape.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/index.js +763 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/index.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/unescape.js +17 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/unescape.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/package.json.js +9 -0
- package/dist/node_modules/@typescript-eslint/typescript-estree/package.json.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/visitor-keys/dist/get-keys.js +16 -0
- package/dist/node_modules/@typescript-eslint/visitor-keys/dist/get-keys.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/visitor-keys/dist/index.js +25 -0
- package/dist/node_modules/@typescript-eslint/visitor-keys/dist/index.js.map +1 -0
- package/dist/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.js +187 -0
- package/dist/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.js.map +1 -0
- package/dist/node_modules/@whatwg-node/disposablestack/esm/AsyncDisposableStack.js +72 -0
- package/dist/node_modules/@whatwg-node/disposablestack/esm/AsyncDisposableStack.js.map +1 -0
- package/dist/node_modules/@whatwg-node/disposablestack/esm/SupressedError.js +16 -0
- package/dist/node_modules/@whatwg-node/disposablestack/esm/SupressedError.js.map +1 -0
- package/dist/node_modules/@whatwg-node/disposablestack/esm/index.js +6 -0
- package/dist/node_modules/@whatwg-node/disposablestack/esm/index.js.map +1 -0
- package/dist/node_modules/@whatwg-node/disposablestack/esm/symbols.js +12 -0
- package/dist/node_modules/@whatwg-node/disposablestack/esm/symbols.js.map +1 -0
- package/dist/node_modules/@whatwg-node/disposablestack/esm/utils.js +12 -0
- package/dist/node_modules/@whatwg-node/disposablestack/esm/utils.js.map +1 -0
- package/dist/node_modules/@whatwg-node/fetch/dist/global-ponyfill.js +33 -0
- package/dist/node_modules/@whatwg-node/fetch/dist/global-ponyfill.js.map +1 -0
- package/dist/node_modules/@whatwg-node/promise-helpers/esm/index.js +241 -0
- package/dist/node_modules/@whatwg-node/promise-helpers/esm/index.js.map +1 -0
- package/dist/node_modules/@whatwg-node/server/esm/createServerAdapter.js +333 -0
- package/dist/node_modules/@whatwg-node/server/esm/createServerAdapter.js.map +1 -0
- package/dist/node_modules/@whatwg-node/server/esm/plugins/useCors.js +106 -0
- package/dist/node_modules/@whatwg-node/server/esm/plugins/useCors.js.map +1 -0
- package/dist/node_modules/@whatwg-node/server/esm/utils.js +476 -0
- package/dist/node_modules/@whatwg-node/server/esm/utils.js.map +1 -0
- package/dist/node_modules/@whatwg-node/server/esm/uwebsockets.js +232 -0
- package/dist/node_modules/@whatwg-node/server/esm/uwebsockets.js.map +1 -0
- package/dist/node_modules/balanced-match/index.js +62 -0
- package/dist/node_modules/balanced-match/index.js.map +1 -0
- package/dist/node_modules/brace-expansion/index.js +156 -0
- package/dist/node_modules/brace-expansion/index.js.map +1 -0
- package/dist/node_modules/cross-inspect/esm/index.js +89 -0
- package/dist/node_modules/cross-inspect/esm/index.js.map +1 -0
- package/dist/node_modules/debug/src/browser.js +178 -0
- package/dist/node_modules/debug/src/browser.js.map +1 -0
- package/dist/node_modules/debug/src/common.js +183 -0
- package/dist/node_modules/debug/src/common.js.map +1 -0
- package/dist/node_modules/eslint-visitor-keys/dist/eslint-visitor-keys.js +353 -0
- package/dist/node_modules/eslint-visitor-keys/dist/eslint-visitor-keys.js.map +1 -0
- package/dist/node_modules/fdir/dist/index.js +540 -0
- package/dist/node_modules/fdir/dist/index.js.map +1 -0
- package/dist/node_modules/graphql/error/GraphQLError.js +154 -0
- package/dist/node_modules/graphql/error/GraphQLError.js.map +1 -0
- package/dist/node_modules/graphql/error/locatedError.js +23 -0
- package/dist/node_modules/graphql/error/locatedError.js.map +1 -0
- package/dist/node_modules/graphql/error/syntaxError.js +11 -0
- package/dist/node_modules/graphql/error/syntaxError.js.map +1 -0
- package/dist/node_modules/graphql/execution/collectFields.js +128 -0
- package/dist/node_modules/graphql/execution/collectFields.js.map +1 -0
- package/dist/node_modules/graphql/execution/execute.js +606 -0
- package/dist/node_modules/graphql/execution/execute.js.map +1 -0
- package/dist/node_modules/graphql/execution/mapAsyncIterator.js +46 -0
- package/dist/node_modules/graphql/execution/mapAsyncIterator.js.map +1 -0
- package/dist/node_modules/graphql/execution/subscribe.js +121 -0
- package/dist/node_modules/graphql/execution/subscribe.js.map +1 -0
- package/dist/node_modules/graphql/execution/values.js +184 -0
- package/dist/node_modules/graphql/execution/values.js.map +1 -0
- package/dist/node_modules/graphql/jsutils/Path.js +21 -0
- package/dist/node_modules/graphql/jsutils/Path.js.map +1 -0
- package/dist/node_modules/graphql/jsutils/devAssert.js +10 -0
- package/dist/node_modules/graphql/jsutils/devAssert.js.map +1 -0
- package/dist/node_modules/graphql/jsutils/didYouMean.js +24 -0
- package/dist/node_modules/graphql/jsutils/didYouMean.js.map +1 -0
- package/dist/node_modules/graphql/jsutils/groupBy.js +17 -0
- package/dist/node_modules/graphql/jsutils/groupBy.js.map +1 -0
- package/dist/node_modules/graphql/jsutils/identityFunc.js +7 -0
- package/dist/node_modules/graphql/jsutils/identityFunc.js.map +1 -0
- package/dist/node_modules/graphql/jsutils/inspect.js +85 -0
- package/dist/node_modules/graphql/jsutils/inspect.js.map +1 -0
- package/dist/node_modules/graphql/jsutils/instanceOf.js +42 -0
- package/dist/node_modules/graphql/jsutils/instanceOf.js.map +1 -0
- package/dist/node_modules/graphql/jsutils/invariant.js +12 -0
- package/dist/node_modules/graphql/jsutils/invariant.js.map +1 -0
- package/dist/node_modules/graphql/jsutils/isAsyncIterable.js +7 -0
- package/dist/node_modules/graphql/jsutils/isAsyncIterable.js.map +1 -0
- package/dist/node_modules/graphql/jsutils/isIterableObject.js +7 -0
- package/dist/node_modules/graphql/jsutils/isIterableObject.js.map +1 -0
- package/dist/node_modules/graphql/jsutils/isObjectLike.js +7 -0
- package/dist/node_modules/graphql/jsutils/isObjectLike.js.map +1 -0
- package/dist/node_modules/graphql/jsutils/isPromise.js +7 -0
- package/dist/node_modules/graphql/jsutils/isPromise.js.map +1 -0
- package/dist/node_modules/graphql/jsutils/keyMap.js +11 -0
- package/dist/node_modules/graphql/jsutils/keyMap.js.map +1 -0
- package/dist/node_modules/graphql/jsutils/keyValMap.js +11 -0
- package/dist/node_modules/graphql/jsutils/keyValMap.js.map +1 -0
- package/dist/node_modules/graphql/jsutils/mapValue.js +11 -0
- package/dist/node_modules/graphql/jsutils/mapValue.js.map +1 -0
- package/dist/node_modules/graphql/jsutils/memoize3.js +28 -0
- package/dist/node_modules/graphql/jsutils/memoize3.js.map +1 -0
- package/dist/node_modules/graphql/jsutils/naturalCompare.js +47 -0
- package/dist/node_modules/graphql/jsutils/naturalCompare.js.map +1 -0
- package/dist/node_modules/graphql/jsutils/printPathArray.js +9 -0
- package/dist/node_modules/graphql/jsutils/printPathArray.js.map +1 -0
- package/dist/node_modules/graphql/jsutils/promiseForObject.js +13 -0
- package/dist/node_modules/graphql/jsutils/promiseForObject.js.map +1 -0
- package/dist/node_modules/graphql/jsutils/promiseReduce.js +12 -0
- package/dist/node_modules/graphql/jsutils/promiseReduce.js.map +1 -0
- package/dist/node_modules/graphql/jsutils/suggestionList.js +94 -0
- package/dist/node_modules/graphql/jsutils/suggestionList.js.map +1 -0
- package/dist/node_modules/graphql/jsutils/toError.js +15 -0
- package/dist/node_modules/graphql/jsutils/toError.js.map +1 -0
- package/dist/node_modules/graphql/jsutils/toObjMap.js +17 -0
- package/dist/node_modules/graphql/jsutils/toObjMap.js.map +1 -0
- package/dist/node_modules/graphql/language/ast.js +189 -0
- package/dist/node_modules/graphql/language/ast.js.map +1 -0
- package/dist/node_modules/graphql/language/blockString.js +60 -0
- package/dist/node_modules/graphql/language/blockString.js.map +1 -0
- package/dist/node_modules/graphql/language/characterClasses.js +24 -0
- package/dist/node_modules/graphql/language/characterClasses.js.map +1 -0
- package/dist/node_modules/graphql/language/directiveLocation.js +26 -0
- package/dist/node_modules/graphql/language/directiveLocation.js.map +1 -0
- package/dist/node_modules/graphql/language/kinds.js +55 -0
- package/dist/node_modules/graphql/language/kinds.js.map +1 -0
- package/dist/node_modules/graphql/language/lexer.js +543 -0
- package/dist/node_modules/graphql/language/lexer.js.map +1 -0
- package/dist/node_modules/graphql/language/location.js +22 -0
- package/dist/node_modules/graphql/language/location.js.map +1 -0
- package/dist/node_modules/graphql/language/parser.js +1343 -0
- package/dist/node_modules/graphql/language/parser.js.map +1 -0
- package/dist/node_modules/graphql/language/predicates.js +28 -0
- package/dist/node_modules/graphql/language/predicates.js.map +1 -0
- package/dist/node_modules/graphql/language/printLocation.js +51 -0
- package/dist/node_modules/graphql/language/printLocation.js.map +1 -0
- package/dist/node_modules/graphql/language/printString.js +178 -0
- package/dist/node_modules/graphql/language/printString.js.map +1 -0
- package/dist/node_modules/graphql/language/printer.js +269 -0
- package/dist/node_modules/graphql/language/printer.js.map +1 -0
- package/dist/node_modules/graphql/language/source.js +33 -0
- package/dist/node_modules/graphql/language/source.js.map +1 -0
- package/dist/node_modules/graphql/language/tokenKind.js +30 -0
- package/dist/node_modules/graphql/language/tokenKind.js.map +1 -0
- package/dist/node_modules/graphql/language/visitor.js +192 -0
- package/dist/node_modules/graphql/language/visitor.js.map +1 -0
- package/dist/node_modules/graphql/type/assertName.js +34 -0
- package/dist/node_modules/graphql/type/assertName.js.map +1 -0
- package/dist/node_modules/graphql/type/definition.js +648 -0
- package/dist/node_modules/graphql/type/definition.js.map +1 -0
- package/dist/node_modules/graphql/type/directives.js +137 -0
- package/dist/node_modules/graphql/type/directives.js.map +1 -0
- package/dist/node_modules/graphql/type/introspection.js +506 -0
- package/dist/node_modules/graphql/type/introspection.js.map +1 -0
- package/dist/node_modules/graphql/type/scalars.js +248 -0
- package/dist/node_modules/graphql/type/scalars.js.map +1 -0
- package/dist/node_modules/graphql/type/schema.js +223 -0
- package/dist/node_modules/graphql/type/schema.js.map +1 -0
- package/dist/node_modules/graphql/type/validate.js +461 -0
- package/dist/node_modules/graphql/type/validate.js.map +1 -0
- package/dist/node_modules/graphql/utilities/TypeInfo.js +257 -0
- package/dist/node_modules/graphql/utilities/TypeInfo.js.map +1 -0
- package/dist/node_modules/graphql/utilities/astFromValue.js +111 -0
- package/dist/node_modules/graphql/utilities/astFromValue.js.map +1 -0
- package/dist/node_modules/graphql/utilities/buildASTSchema.js +65 -0
- package/dist/node_modules/graphql/utilities/buildASTSchema.js.map +1 -0
- package/dist/node_modules/graphql/utilities/coerceInputValue.js +154 -0
- package/dist/node_modules/graphql/utilities/coerceInputValue.js.map +1 -0
- package/dist/node_modules/graphql/utilities/extendSchema.js +456 -0
- package/dist/node_modules/graphql/utilities/extendSchema.js.map +1 -0
- package/dist/node_modules/graphql/utilities/getOperationAST.js +22 -0
- package/dist/node_modules/graphql/utilities/getOperationAST.js.map +1 -0
- package/dist/node_modules/graphql/utilities/sortValueNode.js +30 -0
- package/dist/node_modules/graphql/utilities/sortValueNode.js.map +1 -0
- package/dist/node_modules/graphql/utilities/typeComparators.js +58 -0
- package/dist/node_modules/graphql/utilities/typeComparators.js.map +1 -0
- package/dist/node_modules/graphql/utilities/typeFromAST.js +20 -0
- package/dist/node_modules/graphql/utilities/typeFromAST.js.map +1 -0
- package/dist/node_modules/graphql/utilities/valueFromAST.js +109 -0
- package/dist/node_modules/graphql/utilities/valueFromAST.js.map +1 -0
- package/dist/node_modules/graphql/utilities/valueFromASTUntyped.js +32 -0
- package/dist/node_modules/graphql/utilities/valueFromASTUntyped.js.map +1 -0
- package/dist/node_modules/graphql/validation/ValidationContext.js +171 -0
- package/dist/node_modules/graphql/validation/ValidationContext.js.map +1 -0
- package/dist/node_modules/graphql/validation/rules/ExecutableDefinitionsRule.js +24 -0
- package/dist/node_modules/graphql/validation/rules/ExecutableDefinitionsRule.js.map +1 -0
- package/dist/node_modules/graphql/validation/rules/FieldsOnCorrectTypeRule.js +80 -0
- package/dist/node_modules/graphql/validation/rules/FieldsOnCorrectTypeRule.js.map +1 -0
- package/dist/node_modules/graphql/validation/rules/FragmentsOnCompositeTypesRule.js +43 -0
- package/dist/node_modules/graphql/validation/rules/FragmentsOnCompositeTypesRule.js.map +1 -0
- package/dist/node_modules/graphql/validation/rules/KnownArgumentNamesRule.js +73 -0
- package/dist/node_modules/graphql/validation/rules/KnownArgumentNamesRule.js.map +1 -0
- package/dist/node_modules/graphql/validation/rules/KnownDirectivesRule.js +112 -0
- package/dist/node_modules/graphql/validation/rules/KnownDirectivesRule.js.map +1 -0
- package/dist/node_modules/graphql/validation/rules/KnownFragmentNamesRule.js +20 -0
- package/dist/node_modules/graphql/validation/rules/KnownFragmentNamesRule.js.map +1 -0
- package/dist/node_modules/graphql/validation/rules/KnownTypeNamesRule.js +55 -0
- package/dist/node_modules/graphql/validation/rules/KnownTypeNamesRule.js.map +1 -0
- package/dist/node_modules/graphql/validation/rules/LoneAnonymousOperationRule.js +28 -0
- package/dist/node_modules/graphql/validation/rules/LoneAnonymousOperationRule.js.map +1 -0
- package/dist/node_modules/graphql/validation/rules/LoneSchemaDefinitionRule.js +34 -0
- package/dist/node_modules/graphql/validation/rules/LoneSchemaDefinitionRule.js.map +1 -0
- package/dist/node_modules/graphql/validation/rules/MaxIntrospectionDepthRule.js +56 -0
- package/dist/node_modules/graphql/validation/rules/MaxIntrospectionDepthRule.js.map +1 -0
- package/dist/node_modules/graphql/validation/rules/NoFragmentCyclesRule.js +53 -0
- package/dist/node_modules/graphql/validation/rules/NoFragmentCyclesRule.js.map +1 -0
- package/dist/node_modules/graphql/validation/rules/NoUndefinedVariablesRule.js +34 -0
- package/dist/node_modules/graphql/validation/rules/NoUndefinedVariablesRule.js.map +1 -0
- package/dist/node_modules/graphql/validation/rules/NoUnusedFragmentsRule.js +41 -0
- package/dist/node_modules/graphql/validation/rules/NoUnusedFragmentsRule.js.map +1 -0
- package/dist/node_modules/graphql/validation/rules/NoUnusedVariablesRule.js +38 -0
- package/dist/node_modules/graphql/validation/rules/NoUnusedVariablesRule.js.map +1 -0
- package/dist/node_modules/graphql/validation/rules/OverlappingFieldsCanBeMergedRule.js +519 -0
- package/dist/node_modules/graphql/validation/rules/OverlappingFieldsCanBeMergedRule.js.map +1 -0
- package/dist/node_modules/graphql/validation/rules/PossibleFragmentSpreadsRule.js +55 -0
- package/dist/node_modules/graphql/validation/rules/PossibleFragmentSpreadsRule.js.map +1 -0
- package/dist/node_modules/graphql/validation/rules/PossibleTypeExtensionsRule.js +113 -0
- package/dist/node_modules/graphql/validation/rules/PossibleTypeExtensionsRule.js.map +1 -0
- package/dist/node_modules/graphql/validation/rules/ProvidedRequiredArgumentsRule.js +99 -0
- package/dist/node_modules/graphql/validation/rules/ProvidedRequiredArgumentsRule.js.map +1 -0
- package/dist/node_modules/graphql/validation/rules/ScalarLeafsRule.js +53 -0
- package/dist/node_modules/graphql/validation/rules/ScalarLeafsRule.js.map +1 -0
- package/dist/node_modules/graphql/validation/rules/SingleFieldSubscriptionsRule.js +62 -0
- package/dist/node_modules/graphql/validation/rules/SingleFieldSubscriptionsRule.js.map +1 -0
- package/dist/node_modules/graphql/validation/rules/UniqueArgumentDefinitionNamesRule.js +47 -0
- package/dist/node_modules/graphql/validation/rules/UniqueArgumentDefinitionNamesRule.js.map +1 -0
- package/dist/node_modules/graphql/validation/rules/UniqueArgumentNamesRule.js +29 -0
- package/dist/node_modules/graphql/validation/rules/UniqueArgumentNamesRule.js.map +1 -0
- package/dist/node_modules/graphql/validation/rules/UniqueDirectiveNamesRule.js +38 -0
- package/dist/node_modules/graphql/validation/rules/UniqueDirectiveNamesRule.js.map +1 -0
- package/dist/node_modules/graphql/validation/rules/UniqueDirectivesPerLocationRule.js +63 -0
- package/dist/node_modules/graphql/validation/rules/UniqueDirectivesPerLocationRule.js.map +1 -0
- package/dist/node_modules/graphql/validation/rules/UniqueEnumValueNamesRule.js +50 -0
- package/dist/node_modules/graphql/validation/rules/UniqueEnumValueNamesRule.js.map +1 -0
- package/dist/node_modules/graphql/validation/rules/UniqueFieldDefinitionNamesRule.js +59 -0
- package/dist/node_modules/graphql/validation/rules/UniqueFieldDefinitionNamesRule.js.map +1 -0
- package/dist/node_modules/graphql/validation/rules/UniqueFragmentNamesRule.js +27 -0
- package/dist/node_modules/graphql/validation/rules/UniqueFragmentNamesRule.js.map +1 -0
- package/dist/node_modules/graphql/validation/rules/UniqueInputFieldNamesRule.js +38 -0
- package/dist/node_modules/graphql/validation/rules/UniqueInputFieldNamesRule.js.map +1 -0
- package/dist/node_modules/graphql/validation/rules/UniqueOperationNamesRule.js +32 -0
- package/dist/node_modules/graphql/validation/rules/UniqueOperationNamesRule.js.map +1 -0
- package/dist/node_modules/graphql/validation/rules/UniqueOperationTypesRule.js +48 -0
- package/dist/node_modules/graphql/validation/rules/UniqueOperationTypesRule.js.map +1 -0
- package/dist/node_modules/graphql/validation/rules/UniqueTypeNamesRule.js +41 -0
- package/dist/node_modules/graphql/validation/rules/UniqueTypeNamesRule.js.map +1 -0
- package/dist/node_modules/graphql/validation/rules/UniqueVariableNamesRule.js +30 -0
- package/dist/node_modules/graphql/validation/rules/UniqueVariableNamesRule.js.map +1 -0
- package/dist/node_modules/graphql/validation/rules/ValuesOfCorrectTypeRule.js +170 -0
- package/dist/node_modules/graphql/validation/rules/ValuesOfCorrectTypeRule.js.map +1 -0
- package/dist/node_modules/graphql/validation/rules/VariablesAreInputTypesRule.js +27 -0
- package/dist/node_modules/graphql/validation/rules/VariablesAreInputTypesRule.js.map +1 -0
- package/dist/node_modules/graphql/validation/rules/VariablesInAllowedPositionRule.js +74 -0
- package/dist/node_modules/graphql/validation/rules/VariablesInAllowedPositionRule.js.map +1 -0
- package/dist/node_modules/graphql/validation/specifiedRules.js +88 -0
- package/dist/node_modules/graphql/validation/specifiedRules.js.map +1 -0
- package/dist/node_modules/graphql/validation/validate.js +65 -0
- package/dist/node_modules/graphql/validation/validate.js.map +1 -0
- package/dist/node_modules/graphql/version.js +10 -0
- package/dist/node_modules/graphql/version.js.map +1 -0
- package/dist/node_modules/graphql-ws/lib/common.js +127 -0
- package/dist/node_modules/graphql-ws/lib/common.js.map +1 -0
- package/dist/node_modules/graphql-ws/lib/server.js +257 -0
- package/dist/node_modules/graphql-ws/lib/server.js.map +1 -0
- package/dist/node_modules/graphql-ws/lib/use/ws.js +83 -0
- package/dist/node_modules/graphql-ws/lib/use/ws.js.map +1 -0
- package/dist/node_modules/graphql-ws/lib/utils.js +35 -0
- package/dist/node_modules/graphql-ws/lib/utils.js.map +1 -0
- package/dist/node_modules/graphql-yoga/esm/error.js +127 -0
- package/dist/node_modules/graphql-yoga/esm/error.js.map +1 -0
- package/dist/node_modules/graphql-yoga/esm/graphiql-html.js +5 -0
- package/dist/node_modules/graphql-yoga/esm/graphiql-html.js.map +1 -0
- package/dist/node_modules/graphql-yoga/esm/landing-page-html.js +21 -0
- package/dist/node_modules/graphql-yoga/esm/landing-page-html.js.map +1 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/allowed-headers.js +26 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/allowed-headers.js.map +1 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/request-parser/get.js +15 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/request-parser/get.js.map +1 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/request-parser/post-form-url-encoded.js +12 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/request-parser/post-form-url-encoded.js.map +1 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/request-parser/post-graphql-string.js +12 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/request-parser/post-graphql-string.js.map +1 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/request-parser/post-json.js +58 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/request-parser/post-json.js.map +1 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/request-parser/post-multipart.js +78 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/request-parser/post-multipart.js.map +1 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/request-parser/utils.js +28 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/request-parser/utils.js.map +1 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/request-validation/use-check-graphql-query-params.js +131 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/request-validation/use-check-graphql-query-params.js.map +1 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/request-validation/use-check-method-for-graphql.js +28 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/request-validation/use-check-method-for-graphql.js.map +1 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/request-validation/use-http-validation-error.js +21 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/request-validation/use-http-validation-error.js.map +1 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/request-validation/use-limit-batching.js +37 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/request-validation/use-limit-batching.js.map +1 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/request-validation/use-prevent-mutation-via-get.js +61 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/request-validation/use-prevent-mutation-via-get.js.map +1 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/result-processor/accept.js +28 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/result-processor/accept.js.map +1 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/result-processor/multipart.js +68 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/result-processor/multipart.js.map +1 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/result-processor/regular.js +29 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/result-processor/regular.js.map +1 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/result-processor/sse.js +83 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/result-processor/sse.js.map +1 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/result-processor/stringify.js +47 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/result-processor/stringify.js.map +1 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/use-graphiql.js +55 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/use-graphiql.js.map +1 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/use-health-check.js +20 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/use-health-check.js.map +1 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/use-parser-and-validation-cache.js +63 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/use-parser-and-validation-cache.js.map +1 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/use-request-parser.js +15 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/use-request-parser.js.map +1 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/use-result-processor.js +58 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/use-result-processor.js.map +1 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/use-schema.js +76 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/use-schema.js.map +1 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/use-unhandled-route.js +52 -0
- package/dist/node_modules/graphql-yoga/esm/plugins/use-unhandled-route.js.map +1 -0
- package/dist/node_modules/graphql-yoga/esm/process-request.js +56 -0
- package/dist/node_modules/graphql-yoga/esm/process-request.js.map +1 -0
- package/dist/node_modules/graphql-yoga/esm/server.js +374 -0
- package/dist/node_modules/graphql-yoga/esm/server.js.map +1 -0
- package/dist/node_modules/graphql-yoga/esm/utils/create-lru-cache.js +10 -0
- package/dist/node_modules/graphql-yoga/esm/utils/create-lru-cache.js.map +1 -0
- package/dist/node_modules/graphql-yoga/esm/utils/mask-error.js +47 -0
- package/dist/node_modules/graphql-yoga/esm/utils/mask-error.js.map +1 -0
- package/dist/node_modules/graphql-yoga/node_modules/lru-cache/dist/esm/index.js +1370 -0
- package/dist/node_modules/graphql-yoga/node_modules/lru-cache/dist/esm/index.js.map +1 -0
- package/dist/node_modules/ms/index.js +121 -0
- package/dist/node_modules/ms/index.js.map +1 -0
- package/dist/node_modules/picomatch/index.js +23 -0
- package/dist/node_modules/picomatch/index.js.map +1 -0
- package/dist/node_modules/picomatch/lib/constants.js +203 -0
- package/dist/node_modules/picomatch/lib/constants.js.map +1 -0
- package/dist/node_modules/picomatch/lib/parse.js +774 -0
- package/dist/node_modules/picomatch/lib/parse.js.map +1 -0
- package/dist/node_modules/picomatch/lib/picomatch.js +148 -0
- package/dist/node_modules/picomatch/lib/picomatch.js.map +1 -0
- package/dist/node_modules/picomatch/lib/scan.js +336 -0
- package/dist/node_modules/picomatch/lib/scan.js.map +1 -0
- package/dist/node_modules/picomatch/lib/utils.js +71 -0
- package/dist/node_modules/picomatch/lib/utils.js.map +1 -0
- package/dist/node_modules/semver/classes/comparator.js +123 -0
- package/dist/node_modules/semver/classes/comparator.js.map +1 -0
- package/dist/node_modules/semver/classes/range.js +388 -0
- package/dist/node_modules/semver/classes/range.js.map +1 -0
- package/dist/node_modules/semver/classes/semver.js +288 -0
- package/dist/node_modules/semver/classes/semver.js.map +1 -0
- package/dist/node_modules/semver/functions/clean.js +18 -0
- package/dist/node_modules/semver/functions/clean.js.map +1 -0
- package/dist/node_modules/semver/functions/cmp.js +60 -0
- package/dist/node_modules/semver/functions/cmp.js.map +1 -0
- package/dist/node_modules/semver/functions/coerce.js +53 -0
- package/dist/node_modules/semver/functions/coerce.js.map +1 -0
- package/dist/node_modules/semver/functions/compare-build.js +19 -0
- package/dist/node_modules/semver/functions/compare-build.js.map +1 -0
- package/dist/node_modules/semver/functions/compare-loose.js +15 -0
- package/dist/node_modules/semver/functions/compare-loose.js.map +1 -0
- package/dist/node_modules/semver/functions/compare.js +15 -0
- package/dist/node_modules/semver/functions/compare.js.map +1 -0
- package/dist/node_modules/semver/functions/diff.js +49 -0
- package/dist/node_modules/semver/functions/diff.js.map +1 -0
- package/dist/node_modules/semver/functions/eq.js +15 -0
- package/dist/node_modules/semver/functions/eq.js.map +1 -0
- package/dist/node_modules/semver/functions/gt.js +15 -0
- package/dist/node_modules/semver/functions/gt.js.map +1 -0
- package/dist/node_modules/semver/functions/gte.js +15 -0
- package/dist/node_modules/semver/functions/gte.js.map +1 -0
- package/dist/node_modules/semver/functions/inc.js +29 -0
- package/dist/node_modules/semver/functions/inc.js.map +1 -0
- package/dist/node_modules/semver/functions/lt.js +15 -0
- package/dist/node_modules/semver/functions/lt.js.map +1 -0
- package/dist/node_modules/semver/functions/lte.js +15 -0
- package/dist/node_modules/semver/functions/lte.js.map +1 -0
- package/dist/node_modules/semver/functions/major.js +15 -0
- package/dist/node_modules/semver/functions/major.js.map +1 -0
- package/dist/node_modules/semver/functions/minor.js +15 -0
- package/dist/node_modules/semver/functions/minor.js.map +1 -0
- package/dist/node_modules/semver/functions/neq.js +15 -0
- package/dist/node_modules/semver/functions/neq.js.map +1 -0
- package/dist/node_modules/semver/functions/parse.js +27 -0
- package/dist/node_modules/semver/functions/parse.js.map +1 -0
- package/dist/node_modules/semver/functions/patch.js +15 -0
- package/dist/node_modules/semver/functions/patch.js.map +1 -0
- package/dist/node_modules/semver/functions/prerelease.js +18 -0
- package/dist/node_modules/semver/functions/prerelease.js.map +1 -0
- package/dist/node_modules/semver/functions/rcompare.js +15 -0
- package/dist/node_modules/semver/functions/rcompare.js.map +1 -0
- package/dist/node_modules/semver/functions/rsort.js +15 -0
- package/dist/node_modules/semver/functions/rsort.js.map +1 -0
- package/dist/node_modules/semver/functions/satisfies.js +22 -0
- package/dist/node_modules/semver/functions/satisfies.js.map +1 -0
- package/dist/node_modules/semver/functions/sort.js +15 -0
- package/dist/node_modules/semver/functions/sort.js.map +1 -0
- package/dist/node_modules/semver/functions/valid.js +18 -0
- package/dist/node_modules/semver/functions/valid.js.map +1 -0
- package/dist/node_modules/semver/index.js +140 -0
- package/dist/node_modules/semver/index.js.map +1 -0
- package/dist/node_modules/semver/internal/constants.js +36 -0
- package/dist/node_modules/semver/internal/constants.js.map +1 -0
- package/dist/node_modules/semver/internal/debug.js +14 -0
- package/dist/node_modules/semver/internal/debug.js.map +1 -0
- package/dist/node_modules/semver/internal/identifiers.js +29 -0
- package/dist/node_modules/semver/internal/identifiers.js.map +1 -0
- package/dist/node_modules/semver/internal/lrucache.js +42 -0
- package/dist/node_modules/semver/internal/lrucache.js.map +1 -0
- package/dist/node_modules/semver/internal/parse-options.js +23 -0
- package/dist/node_modules/semver/internal/parse-options.js.map +1 -0
- package/dist/node_modules/semver/internal/re.js +96 -0
- package/dist/node_modules/semver/internal/re.js.map +1 -0
- package/dist/node_modules/semver/ranges/gtr.js +15 -0
- package/dist/node_modules/semver/ranges/gtr.js.map +1 -0
- package/dist/node_modules/semver/ranges/intersects.js +19 -0
- package/dist/node_modules/semver/ranges/intersects.js.map +1 -0
- package/dist/node_modules/semver/ranges/ltr.js +15 -0
- package/dist/node_modules/semver/ranges/ltr.js.map +1 -0
- package/dist/node_modules/semver/ranges/max-satisfying.js +35 -0
- package/dist/node_modules/semver/ranges/max-satisfying.js.map +1 -0
- package/dist/node_modules/semver/ranges/min-satisfying.js +35 -0
- package/dist/node_modules/semver/ranges/min-satisfying.js.map +1 -0
- package/dist/node_modules/semver/ranges/min-version.js +66 -0
- package/dist/node_modules/semver/ranges/min-version.js.map +1 -0
- package/dist/node_modules/semver/ranges/outside.js +81 -0
- package/dist/node_modules/semver/ranges/outside.js.map +1 -0
- package/dist/node_modules/semver/ranges/simplify.js +56 -0
- package/dist/node_modules/semver/ranges/simplify.js.map +1 -0
- package/dist/node_modules/semver/ranges/subset.js +170 -0
- package/dist/node_modules/semver/ranges/subset.js.map +1 -0
- package/dist/node_modules/semver/ranges/to-comparators.js +15 -0
- package/dist/node_modules/semver/ranges/to-comparators.js.map +1 -0
- package/dist/node_modules/semver/ranges/valid.js +21 -0
- package/dist/node_modules/semver/ranges/valid.js.map +1 -0
- package/dist/node_modules/tinyglobby/dist/index.js +332 -0
- package/dist/node_modules/tinyglobby/dist/index.js.map +1 -0
- package/dist/node_modules/ts-api-utils/lib/index.js +2361 -0
- package/dist/node_modules/ts-api-utils/lib/index.js.map +1 -0
- package/dist/node_modules/typescript/lib/tsserverlibrary.js +33 -0
- package/dist/node_modules/typescript/lib/tsserverlibrary.js.map +1 -0
- package/dist/node_modules/typescript/lib/typescript.js +210602 -0
- package/dist/node_modules/typescript/lib/typescript.js.map +1 -0
- package/dist/node_modules/ws/browser.js +16 -0
- package/dist/node_modules/ws/browser.js.map +1 -0
- package/dist/plugins/analyzers/code-complexity/analyzer.d.ts +105 -0
- package/dist/plugins/analyzers/code-complexity/analyzer.d.ts.map +1 -0
- package/dist/plugins/analyzers/code-complexity/analyzer.js +507 -0
- package/dist/plugins/analyzers/code-complexity/analyzer.js.map +1 -0
- package/dist/plugins/analyzers/code-complexity/graph-generator.d.ts +70 -0
- package/dist/plugins/analyzers/code-complexity/graph-generator.d.ts.map +1 -0
- package/dist/plugins/analyzers/code-complexity/graph-generator.js +405 -0
- package/dist/plugins/analyzers/code-complexity/graph-generator.js.map +1 -0
- package/dist/plugins/analyzers/code-complexity/index.d.ts +191 -0
- package/dist/plugins/analyzers/code-complexity/index.d.ts.map +1 -0
- package/dist/plugins/analyzers/code-complexity/index.js +276 -0
- package/dist/plugins/analyzers/code-complexity/index.js.map +1 -0
- package/dist/plugins/analyzers/code-complexity/metrics.d.ts +77 -0
- package/dist/plugins/analyzers/code-complexity/metrics.d.ts.map +1 -0
- package/dist/plugins/analyzers/code-complexity/metrics.js +514 -0
- package/dist/plugins/analyzers/code-complexity/metrics.js.map +1 -0
- package/dist/plugins/analyzers/code-complexity/plugin.d.ts +161 -0
- package/dist/plugins/analyzers/code-complexity/plugin.d.ts.map +1 -0
- package/dist/plugins/analyzers/code-complexity/plugin.js +661 -0
- package/dist/plugins/analyzers/code-complexity/plugin.js.map +1 -0
- package/dist/plugins/analyzers/code-complexity/types.d.ts +360 -0
- package/dist/plugins/analyzers/code-complexity/types.d.ts.map +1 -0
- package/dist/plugins/analyzers/code-complexity/types.js +27 -0
- package/dist/plugins/analyzers/code-complexity/types.js.map +1 -0
- package/dist/plugins/analyzers/dependency-health/analyzer.d.ts +56 -0
- package/dist/plugins/analyzers/dependency-health/analyzer.d.ts.map +1 -0
- package/dist/plugins/analyzers/dependency-health/analyzer.js +387 -0
- package/dist/plugins/analyzers/dependency-health/analyzer.js.map +1 -0
- package/dist/plugins/analyzers/dependency-health/graph-generator.d.ts +60 -0
- package/dist/plugins/analyzers/dependency-health/graph-generator.d.ts.map +1 -0
- package/dist/plugins/analyzers/dependency-health/graph-generator.js +295 -0
- package/dist/plugins/analyzers/dependency-health/graph-generator.js.map +1 -0
- package/dist/plugins/analyzers/dependency-health/index.d.ts +201 -0
- package/dist/plugins/analyzers/dependency-health/index.d.ts.map +1 -0
- package/dist/plugins/analyzers/dependency-health/index.js +857 -0
- package/dist/plugins/analyzers/dependency-health/index.js.map +1 -0
- package/dist/plugins/analyzers/dependency-health/npm-client.d.ts +68 -0
- package/dist/plugins/analyzers/dependency-health/npm-client.d.ts.map +1 -0
- package/dist/plugins/analyzers/dependency-health/npm-client.js +226 -0
- package/dist/plugins/analyzers/dependency-health/npm-client.js.map +1 -0
- package/dist/plugins/analyzers/dependency-health/types.d.ts +462 -0
- package/dist/plugins/analyzers/dependency-health/types.d.ts.map +1 -0
- package/dist/plugins/analyzers/dependency-health/vulnerability.d.ts +80 -0
- package/dist/plugins/analyzers/dependency-health/vulnerability.d.ts.map +1 -0
- package/dist/plugins/analyzers/dependency-health/vulnerability.js +215 -0
- package/dist/plugins/analyzers/dependency-health/vulnerability.js.map +1 -0
- package/dist/plugins/analyzers/index.d.ts +12 -0
- package/dist/plugins/analyzers/index.d.ts.map +1 -0
- package/dist/plugins/index.d.ts +13 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/loader.d.ts +158 -0
- package/dist/plugins/loader.d.ts.map +1 -0
- package/dist/plugins/loader.js +554 -0
- package/dist/plugins/loader.js.map +1 -0
- package/dist/plugins/manager.d.ts +183 -0
- package/dist/plugins/manager.d.ts.map +1 -0
- package/dist/plugins/manager.js +876 -0
- package/dist/plugins/manager.js.map +1 -0
- package/dist/plugins/registry.d.ts +163 -0
- package/dist/plugins/registry.d.ts.map +1 -0
- package/dist/plugins/registry.js +448 -0
- package/dist/plugins/registry.js.map +1 -0
- package/dist/plugins/types.d.ts +930 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/plugins/types.js +43 -0
- package/dist/plugins/types.js.map +1 -0
- package/dist/server/container.d.ts +263 -0
- package/dist/server/container.d.ts.map +1 -0
- package/dist/server/container.js +605 -0
- package/dist/server/container.js.map +1 -0
- package/dist/server/event-bus.d.ts +418 -0
- package/dist/server/event-bus.d.ts.map +1 -0
- package/dist/server/event-bus.js +442 -0
- package/dist/server/event-bus.js.map +1 -0
- package/dist/server/index.d.ts +37 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/manager.d.ts +123 -0
- package/dist/server/manager.d.ts.map +1 -0
- package/dist/server/manager.js +742 -0
- package/dist/server/manager.js.map +1 -0
- package/dist/server/shared-services.d.ts +130 -0
- package/dist/server/shared-services.d.ts.map +1 -0
- package/dist/server/shared-services.js +476 -0
- package/dist/server/shared-services.js.map +1 -0
- package/dist/server/types.d.ts +320 -0
- package/dist/server/types.d.ts.map +1 -0
- package/dist/server/types.js +13 -0
- package/dist/server/types.js.map +1 -0
- package/dist/services/manager.js +328 -0
- package/dist/services/manager.js.map +1 -0
- package/dist/vector/config.d.ts +300 -0
- package/dist/vector/config.d.ts.map +1 -0
- package/dist/vector/config.js +124 -0
- package/dist/vector/config.js.map +1 -0
- package/dist/vector/index.d.ts +50 -0
- package/dist/vector/index.d.ts.map +1 -0
- package/dist/vector/services/index.d.ts +13 -0
- package/dist/vector/services/index.d.ts.map +1 -0
- package/dist/vector/services/trajectory-tracker.d.ts +405 -0
- package/dist/vector/services/trajectory-tracker.d.ts.map +1 -0
- package/dist/vector/services/trajectory-tracker.js +445 -0
- package/dist/vector/services/trajectory-tracker.js.map +1 -0
- package/dist/vector/services/vector-store.d.ts +339 -0
- package/dist/vector/services/vector-store.d.ts.map +1 -0
- package/dist/vector/services/vector-store.js +748 -0
- package/dist/vector/services/vector-store.js.map +1 -0
- package/dist/vector/types.d.ts +677 -0
- package/dist/vector/types.d.ts.map +1 -0
- package/dist/workflow/adapters/goap-adapter.d.ts +196 -0
- package/dist/workflow/adapters/goap-adapter.d.ts.map +1 -0
- package/dist/workflow/adapters/goap-adapter.js +706 -0
- package/dist/workflow/adapters/goap-adapter.js.map +1 -0
- package/dist/workflow/adapters/index.d.ts +10 -0
- package/dist/workflow/adapters/index.d.ts.map +1 -0
- package/dist/workflow/config.d.ts +135 -0
- package/dist/workflow/config.d.ts.map +1 -0
- package/dist/workflow/config.js +92 -0
- package/dist/workflow/config.js.map +1 -0
- package/dist/workflow/handlers/index.d.ts +9 -0
- package/dist/workflow/handlers/index.d.ts.map +1 -0
- package/dist/workflow/handlers/webhook-handlers.d.ts +397 -0
- package/dist/workflow/handlers/webhook-handlers.d.ts.map +1 -0
- package/dist/workflow/handlers/webhook-handlers.js +454 -0
- package/dist/workflow/handlers/webhook-handlers.js.map +1 -0
- package/dist/workflow/index.d.ts +42 -0
- package/dist/workflow/index.d.ts.map +1 -0
- package/dist/workflow/services/index.d.ts +9 -0
- package/dist/workflow/services/index.d.ts.map +1 -0
- package/dist/workflow/services/workflow-service.d.ts +318 -0
- package/dist/workflow/services/workflow-service.d.ts.map +1 -0
- package/dist/workflow/services/workflow-service.js +577 -0
- package/dist/workflow/services/workflow-service.js.map +1 -0
- package/dist/workflow/types.d.ts +470 -0
- package/dist/workflow/types.d.ts.map +1 -0
- package/dist/workflow/workflows/realtime-collab.d.ts +245 -0
- package/dist/workflow/workflows/realtime-collab.d.ts.map +1 -0
- package/package.json +29 -3
- package/dist/_virtual/additionalItems.js +0 -5
- package/dist/_virtual/additionalItems.js.map +0 -1
- package/dist/_virtual/additionalProperties.js +0 -5
- package/dist/_virtual/additionalProperties.js.map +0 -1
- package/dist/_virtual/ajv.js +0 -6
- package/dist/_virtual/ajv.js.map +0 -1
- package/dist/_virtual/ajv2.js +0 -5
- package/dist/_virtual/ajv2.js.map +0 -1
- package/dist/_virtual/allOf.js +0 -5
- package/dist/_virtual/allOf.js.map +0 -1
- package/dist/_virtual/anyOf.js +0 -5
- package/dist/_virtual/anyOf.js.map +0 -1
- package/dist/_virtual/applicability.js +0 -5
- package/dist/_virtual/applicability.js.map +0 -1
- package/dist/_virtual/boolSchema.js +0 -5
- package/dist/_virtual/boolSchema.js.map +0 -1
- package/dist/_virtual/code.js +0 -5
- package/dist/_virtual/code.js.map +0 -1
- package/dist/_virtual/code2.js +0 -5
- package/dist/_virtual/code2.js.map +0 -1
- package/dist/_virtual/const.js +0 -5
- package/dist/_virtual/const.js.map +0 -1
- package/dist/_virtual/contains.js +0 -5
- package/dist/_virtual/contains.js.map +0 -1
- package/dist/_virtual/core.js +0 -5
- package/dist/_virtual/core.js.map +0 -1
- package/dist/_virtual/dataType.js +0 -5
- package/dist/_virtual/dataType.js.map +0 -1
- package/dist/_virtual/defaults.js +0 -5
- package/dist/_virtual/defaults.js.map +0 -1
- package/dist/_virtual/dependencies.js +0 -5
- package/dist/_virtual/dependencies.js.map +0 -1
- package/dist/_virtual/draft7.js +0 -5
- package/dist/_virtual/draft7.js.map +0 -1
- package/dist/_virtual/enum.js +0 -5
- package/dist/_virtual/enum.js.map +0 -1
- package/dist/_virtual/equal.js +0 -5
- package/dist/_virtual/equal.js.map +0 -1
- package/dist/_virtual/errors.js +0 -5
- package/dist/_virtual/errors.js.map +0 -1
- package/dist/_virtual/format.js +0 -5
- package/dist/_virtual/format.js.map +0 -1
- package/dist/_virtual/formats.js +0 -5
- package/dist/_virtual/formats.js.map +0 -1
- package/dist/_virtual/id.js +0 -5
- package/dist/_virtual/id.js.map +0 -1
- package/dist/_virtual/if.js +0 -5
- package/dist/_virtual/if.js.map +0 -1
- package/dist/_virtual/index12.js +0 -5
- package/dist/_virtual/index12.js.map +0 -1
- package/dist/_virtual/items.js +0 -5
- package/dist/_virtual/items.js.map +0 -1
- package/dist/_virtual/items2020.js +0 -5
- package/dist/_virtual/items2020.js.map +0 -1
- package/dist/_virtual/keyword.js +0 -5
- package/dist/_virtual/keyword.js.map +0 -1
- package/dist/_virtual/limit.js +0 -5
- package/dist/_virtual/limit.js.map +0 -1
- package/dist/_virtual/limitItems.js +0 -5
- package/dist/_virtual/limitItems.js.map +0 -1
- package/dist/_virtual/limitLength.js +0 -5
- package/dist/_virtual/limitLength.js.map +0 -1
- package/dist/_virtual/limitNumber.js +0 -5
- package/dist/_virtual/limitNumber.js.map +0 -1
- package/dist/_virtual/limitProperties.js +0 -5
- package/dist/_virtual/limitProperties.js.map +0 -1
- package/dist/_virtual/metadata.js +0 -5
- package/dist/_virtual/metadata.js.map +0 -1
- package/dist/_virtual/multipleOf.js +0 -5
- package/dist/_virtual/multipleOf.js.map +0 -1
- package/dist/_virtual/names.js +0 -5
- package/dist/_virtual/names.js.map +0 -1
- package/dist/_virtual/not.js +0 -5
- package/dist/_virtual/not.js.map +0 -1
- package/dist/_virtual/oneOf.js +0 -5
- package/dist/_virtual/oneOf.js.map +0 -1
- package/dist/_virtual/pattern.js +0 -5
- package/dist/_virtual/pattern.js.map +0 -1
- package/dist/_virtual/patternProperties.js +0 -5
- package/dist/_virtual/patternProperties.js.map +0 -1
- package/dist/_virtual/prefixItems.js +0 -5
- package/dist/_virtual/prefixItems.js.map +0 -1
- package/dist/_virtual/properties.js +0 -5
- package/dist/_virtual/properties.js.map +0 -1
- package/dist/_virtual/propertyNames.js +0 -5
- package/dist/_virtual/propertyNames.js.map +0 -1
- package/dist/_virtual/ref.js +0 -5
- package/dist/_virtual/ref.js.map +0 -1
- package/dist/_virtual/ref_error.js +0 -5
- package/dist/_virtual/ref_error.js.map +0 -1
- package/dist/_virtual/required.js +0 -5
- package/dist/_virtual/required.js.map +0 -1
- package/dist/_virtual/resolve.js +0 -5
- package/dist/_virtual/resolve.js.map +0 -1
- package/dist/_virtual/rules.js +0 -5
- package/dist/_virtual/rules.js.map +0 -1
- package/dist/_virtual/scope.js +0 -5
- package/dist/_virtual/scope.js.map +0 -1
- package/dist/_virtual/subschema.js +0 -5
- package/dist/_virtual/subschema.js.map +0 -1
- package/dist/_virtual/thenElse.js +0 -5
- package/dist/_virtual/thenElse.js.map +0 -1
- package/dist/_virtual/types.js +0 -5
- package/dist/_virtual/types.js.map +0 -1
- package/dist/_virtual/ucs2length.js +0 -5
- package/dist/_virtual/ucs2length.js.map +0 -1
- package/dist/_virtual/uniqueItems.js +0 -5
- package/dist/_virtual/uniqueItems.js.map +0 -1
- package/dist/_virtual/uri.js +0 -5
- package/dist/_virtual/uri.js.map +0 -1
- package/dist/_virtual/util.js +0 -5
- package/dist/_virtual/util.js.map +0 -1
- package/dist/_virtual/validation_error.js +0 -5
- package/dist/_virtual/validation_error.js.map +0 -1
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js +0 -296
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js.map +0 -1
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js +0 -71
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js.map +0 -1
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js +0 -26
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js.map +0 -1
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js +0 -407
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js.map +0 -1
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js +0 -1332
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js.map +0 -1
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js +0 -71
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js.map +0 -1
- package/dist/node_modules/ajv/dist/ajv.js +0 -84
- package/dist/node_modules/ajv/dist/ajv.js.map +0 -1
- package/dist/node_modules/ajv/dist/compile/codegen/code.js +0 -160
- package/dist/node_modules/ajv/dist/compile/codegen/code.js.map +0 -1
- package/dist/node_modules/ajv/dist/compile/codegen/index.js +0 -728
- package/dist/node_modules/ajv/dist/compile/codegen/index.js.map +0 -1
- package/dist/node_modules/ajv/dist/compile/codegen/scope.js +0 -152
- package/dist/node_modules/ajv/dist/compile/codegen/scope.js.map +0 -1
- package/dist/node_modules/ajv/dist/compile/errors.js +0 -131
- package/dist/node_modules/ajv/dist/compile/errors.js.map +0 -1
- package/dist/node_modules/ajv/dist/compile/index.js +0 -234
- package/dist/node_modules/ajv/dist/compile/index.js.map +0 -1
- package/dist/node_modules/ajv/dist/compile/names.js +0 -44
- package/dist/node_modules/ajv/dist/compile/names.js.map +0 -1
- package/dist/node_modules/ajv/dist/compile/ref_error.js +0 -22
- package/dist/node_modules/ajv/dist/compile/ref_error.js.map +0 -1
- package/dist/node_modules/ajv/dist/compile/resolve.js +0 -163
- package/dist/node_modules/ajv/dist/compile/resolve.js.map +0 -1
- package/dist/node_modules/ajv/dist/compile/rules.js +0 -35
- package/dist/node_modules/ajv/dist/compile/rules.js.map +0 -1
- package/dist/node_modules/ajv/dist/compile/util.js +0 -173
- package/dist/node_modules/ajv/dist/compile/util.js.map +0 -1
- package/dist/node_modules/ajv/dist/compile/validate/applicability.js +0 -27
- package/dist/node_modules/ajv/dist/compile/validate/applicability.js.map +0 -1
- package/dist/node_modules/ajv/dist/compile/validate/boolSchema.js +0 -58
- package/dist/node_modules/ajv/dist/compile/validate/boolSchema.js.map +0 -1
- package/dist/node_modules/ajv/dist/compile/validate/dataType.js +0 -193
- package/dist/node_modules/ajv/dist/compile/validate/dataType.js.map +0 -1
- package/dist/node_modules/ajv/dist/compile/validate/defaults.js +0 -43
- package/dist/node_modules/ajv/dist/compile/validate/defaults.js.map +0 -1
- package/dist/node_modules/ajv/dist/compile/validate/index.js +0 -522
- package/dist/node_modules/ajv/dist/compile/validate/index.js.map +0 -1
- package/dist/node_modules/ajv/dist/compile/validate/keyword.js +0 -126
- package/dist/node_modules/ajv/dist/compile/validate/keyword.js.map +0 -1
- package/dist/node_modules/ajv/dist/compile/validate/subschema.js +0 -89
- package/dist/node_modules/ajv/dist/compile/validate/subschema.js.map +0 -1
- package/dist/node_modules/ajv/dist/core.js +0 -628
- package/dist/node_modules/ajv/dist/core.js.map +0 -1
- package/dist/node_modules/ajv/dist/refs/data.json.js +0 -24
- package/dist/node_modules/ajv/dist/refs/data.json.js.map +0 -1
- package/dist/node_modules/ajv/dist/refs/json-schema-draft-07.json.js +0 -25
- package/dist/node_modules/ajv/dist/refs/json-schema-draft-07.json.js.map +0 -1
- package/dist/node_modules/ajv/dist/runtime/equal.js +0 -16
- package/dist/node_modules/ajv/dist/runtime/equal.js.map +0 -1
- package/dist/node_modules/ajv/dist/runtime/ucs2length.js +0 -30
- package/dist/node_modules/ajv/dist/runtime/ucs2length.js.map +0 -1
- package/dist/node_modules/ajv/dist/runtime/uri.js +0 -16
- package/dist/node_modules/ajv/dist/runtime/uri.js.map +0 -1
- package/dist/node_modules/ajv/dist/runtime/validation_error.js +0 -20
- package/dist/node_modules/ajv/dist/runtime/validation_error.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +0 -59
- package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +0 -114
- package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/applicator/allOf.js +0 -32
- package/dist/node_modules/ajv/dist/vocabularies/applicator/allOf.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +0 -22
- package/dist/node_modules/ajv/dist/vocabularies/applicator/anyOf.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/applicator/contains.js +0 -100
- package/dist/node_modules/ajv/dist/vocabularies/applicator/contains.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +0 -103
- package/dist/node_modules/ajv/dist/vocabularies/applicator/dependencies.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/applicator/if.js +0 -75
- package/dist/node_modules/ajv/dist/vocabularies/applicator/if.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/applicator/index.js +0 -68
- package/dist/node_modules/ajv/dist/vocabularies/applicator/index.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/applicator/items.js +0 -64
- package/dist/node_modules/ajv/dist/vocabularies/applicator/items.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/applicator/items2020.js +0 -43
- package/dist/node_modules/ajv/dist/vocabularies/applicator/items2020.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/applicator/not.js +0 -36
- package/dist/node_modules/ajv/dist/vocabularies/applicator/not.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +0 -64
- package/dist/node_modules/ajv/dist/vocabularies/applicator/oneOf.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +0 -81
- package/dist/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +0 -22
- package/dist/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/applicator/properties.js +0 -66
- package/dist/node_modules/ajv/dist/vocabularies/applicator/properties.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +0 -49
- package/dist/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +0 -23
- package/dist/node_modules/ajv/dist/vocabularies/applicator/thenElse.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/code.js +0 -140
- package/dist/node_modules/ajv/dist/vocabularies/code.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/core/id.js +0 -19
- package/dist/node_modules/ajv/dist/vocabularies/core/id.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/core/index.js +0 -27
- package/dist/node_modules/ajv/dist/vocabularies/core/index.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/core/ref.js +0 -132
- package/dist/node_modules/ajv/dist/vocabularies/core/ref.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/discriminator/index.js +0 -114
- package/dist/node_modules/ajv/dist/vocabularies/discriminator/index.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/discriminator/types.js +0 -18
- package/dist/node_modules/ajv/dist/vocabularies/discriminator/types.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/draft7.js +0 -31
- package/dist/node_modules/ajv/dist/vocabularies/draft7.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/format/format.js +0 -95
- package/dist/node_modules/ajv/dist/vocabularies/format/format.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/format/index.js +0 -16
- package/dist/node_modules/ajv/dist/vocabularies/format/index.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/metadata.js +0 -27
- package/dist/node_modules/ajv/dist/vocabularies/metadata.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/validation/const.js +0 -36
- package/dist/node_modules/ajv/dist/vocabularies/validation/const.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/validation/enum.js +0 -56
- package/dist/node_modules/ajv/dist/vocabularies/validation/enum.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/validation/index.js +0 -52
- package/dist/node_modules/ajv/dist/vocabularies/validation/index.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitItems.js +0 -34
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitItems.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitLength.js +0 -39
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitLength.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +0 -37
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitNumber.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +0 -34
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitProperties.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +0 -33
- package/dist/node_modules/ajv/dist/vocabularies/validation/multipleOf.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/validation/pattern.js +0 -34
- package/dist/node_modules/ajv/dist/vocabularies/validation/pattern.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/validation/required.js +0 -89
- package/dist/node_modules/ajv/dist/vocabularies/validation/required.js.map +0 -1
- package/dist/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +0 -75
- package/dist/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js.map +0 -1
- package/dist/node_modules/ajv-formats/dist/formats.js +0 -209
- package/dist/node_modules/ajv-formats/dist/formats.js.map +0 -1
- package/dist/node_modules/ajv-formats/dist/index.js +0 -51
- package/dist/node_modules/ajv-formats/dist/index.js.map +0 -1
- package/dist/node_modules/ajv-formats/dist/limit.js +0 -80
- package/dist/node_modules/ajv-formats/dist/limit.js.map +0 -1
- package/dist/node_modules/fast-deep-equal/index.js +0 -39
- package/dist/node_modules/fast-deep-equal/index.js.map +0 -1
- package/dist/node_modules/fast-uri/index.js +0 -261
- package/dist/node_modules/fast-uri/index.js.map +0 -1
- package/dist/node_modules/fast-uri/lib/schemes.js +0 -215
- package/dist/node_modules/fast-uri/lib/schemes.js.map +0 -1
- package/dist/node_modules/fast-uri/lib/utils.js +0 -261
- package/dist/node_modules/fast-uri/lib/utils.js.map +0 -1
- package/dist/node_modules/json-schema-traverse/index.js +0 -92
- package/dist/node_modules/json-schema-traverse/index.js.map +0 -1
- package/dist/node_modules/zod/v4/classic/errors.js +0 -37
- package/dist/node_modules/zod/v4/classic/errors.js.map +0 -1
- package/dist/node_modules/zod/v4/classic/iso.js +0 -43
- package/dist/node_modules/zod/v4/classic/iso.js.map +0 -1
- package/dist/node_modules/zod/v4/classic/parse.js +0 -13
- package/dist/node_modules/zod/v4/classic/parse.js.map +0 -1
- package/dist/node_modules/zod/v4/classic/schemas.js +0 -688
- package/dist/node_modules/zod/v4/classic/schemas.js.map +0 -1
- package/dist/node_modules/zod/v4/core/api.js +0 -492
- package/dist/node_modules/zod/v4/core/api.js.map +0 -1
- package/dist/node_modules/zod/v4/core/checks.js +0 -405
- package/dist/node_modules/zod/v4/core/checks.js.map +0 -1
- package/dist/node_modules/zod/v4/core/core.js +0 -58
- package/dist/node_modules/zod/v4/core/core.js.map +0 -1
- package/dist/node_modules/zod/v4/core/doc.js +0 -38
- package/dist/node_modules/zod/v4/core/doc.js.map +0 -1
- package/dist/node_modules/zod/v4/core/errors.js +0 -82
- package/dist/node_modules/zod/v4/core/errors.js.map +0 -1
- package/dist/node_modules/zod/v4/core/parse.js +0 -60
- package/dist/node_modules/zod/v4/core/parse.js.map +0 -1
- package/dist/node_modules/zod/v4/core/regexes.js +0 -87
- package/dist/node_modules/zod/v4/core/regexes.js.map +0 -1
- package/dist/node_modules/zod/v4/core/registries.js +0 -52
- package/dist/node_modules/zod/v4/core/registries.js.map +0 -1
- package/dist/node_modules/zod/v4/core/schemas.js +0 -1283
- package/dist/node_modules/zod/v4/core/schemas.js.map +0 -1
- package/dist/node_modules/zod/v4/core/util.js +0 -341
- package/dist/node_modules/zod/v4/core/util.js.map +0 -1
- package/dist/node_modules/zod/v4/core/versions.js +0 -9
- package/dist/node_modules/zod/v4/core/versions.js.map +0 -1
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/string.js +0 -2
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/string.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyzer.js","sources":["../../../../src/plugins/analyzers/code-complexity/analyzer.ts"],"sourcesContent":["/**\n * Code Complexity Analyzer\n *\n * Parses TypeScript/JavaScript files using typescript-estree and\n * analyzes complexity metrics for functions, methods, and files.\n *\n * @module plugins/analyzers/code-complexity/analyzer\n */\n\nimport { parse, type TSESTree } from '@typescript-eslint/typescript-estree';\nimport { readFile } from 'fs/promises';\nimport { extname, relative, basename } from 'path';\nimport fastGlob from 'fast-glob';\nimport { createLogger } from '../../../utils/logger.js';\nimport {\n calculateCyclomaticComplexity,\n calculateCognitiveComplexity,\n calculateMaxNestingDepth,\n calculateLinesOfCode,\n countReturnStatements,\n calculateMaintainabilityIndex,\n aggregateFileComplexity,\n classifyComplexityLevel,\n detectComplexityIssues,\n generateRecommendations,\n} from './metrics.js';\nimport type {\n AnalyzerConfig,\n FileAnalysis,\n FunctionAnalysis,\n FunctionKind,\n ProjectAnalysis,\n ProjectMetrics,\n ComplexityScore,\n ComplexityLevel,\n DEFAULT_CONFIG,\n} from './types.js';\nimport { DEFAULT_THRESHOLDS } from './types.js';\n\nconst logger = createLogger('code-complexity-analyzer');\n\n// ============================================================================\n// Code Complexity Analyzer Class\n// ============================================================================\n\n/**\n * Analyzes TypeScript/JavaScript code for complexity metrics\n *\n * @example\n * ```typescript\n * const analyzer = new CodeComplexityAnalyzer({\n * projectRoot: '/my/project',\n * patterns: { include: ['src/** /*.ts'], exclude: ['** /*.test.ts'] }\n * });\n *\n * const result = await analyzer.analyzeProject();\n * console.log(`Found ${result.complexFunctions.length} complex functions`);\n * ```\n */\nexport class CodeComplexityAnalyzer {\n private config: AnalyzerConfig;\n private sourceCache: Map<string, string> = new Map();\n\n constructor(config: Partial<AnalyzerConfig> = {}) {\n // Merge with defaults\n this.config = {\n projectRoot: config.projectRoot ?? '.',\n patterns: config.patterns ?? {\n include: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx'],\n exclude: [\n '**/node_modules/**',\n '**/dist/**',\n '**/build/**',\n '**/*.d.ts',\n '**/*.min.js',\n '**/coverage/**',\n ],\n },\n thresholds: { ...DEFAULT_THRESHOLDS, ...config.thresholds },\n maxFiles: config.maxFiles,\n includeNodeModules: config.includeNodeModules ?? false,\n includeTests: config.includeTests ?? true,\n generateGraphNodes: config.generateGraphNodes ?? true,\n minComplexityToReport: config.minComplexityToReport ?? 0,\n verbose: config.verbose ?? false,\n };\n }\n\n // ==========================================================================\n // Project Analysis\n // ==========================================================================\n\n /**\n * Analyze entire project for complexity\n */\n async analyzeProject(): Promise<ProjectAnalysis> {\n const startedAt = new Date();\n\n logger.info('Starting project complexity analysis', {\n projectRoot: this.config.projectRoot,\n });\n\n // Find files to analyze\n const files = await this.findFiles();\n\n if (this.config.verbose) {\n logger.debug(`Found ${files.length} files to analyze`);\n }\n\n // Analyze each file\n const fileAnalyses: FileAnalysis[] = [];\n const errors: string[] = [];\n\n for (const filePath of files) {\n try {\n const analysis = await this.analyzeFile(filePath);\n if (analysis) {\n fileAnalyses.push(analysis);\n }\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n errors.push(`${filePath}: ${message}`);\n if (this.config.verbose) {\n logger.warn(`Failed to analyze ${filePath}`, { error: message });\n }\n }\n }\n\n // Calculate project metrics\n const metrics = this.calculateProjectMetrics(fileAnalyses);\n\n // Identify hotspots\n const hotspots = fileAnalyses\n .filter((f) => f.level === 'high' || f.level === 'critical')\n .sort((a, b) => b.complexity.cyclomatic - a.complexity.cyclomatic);\n\n // Collect complex functions\n const complexFunctions = fileAnalyses\n .flatMap((f) => f.complexFunctions)\n .sort((a, b) => b.complexity.cyclomatic - a.complexity.cyclomatic);\n\n const completedAt = new Date();\n\n const result: ProjectAnalysis = {\n projectRoot: this.config.projectRoot,\n files: fileAnalyses,\n metrics,\n hotspots,\n complexFunctions,\n config: this.config,\n timing: {\n startedAt,\n completedAt,\n durationMs: completedAt.getTime() - startedAt.getTime(),\n },\n };\n\n logger.info('Project analysis complete', {\n files: fileAnalyses.length,\n functions: metrics.totalFunctions,\n hotspots: hotspots.length,\n duration: result.timing.durationMs,\n });\n\n return result;\n }\n\n // ==========================================================================\n // File Analysis\n // ==========================================================================\n\n /**\n * Analyze a single file for complexity\n */\n async analyzeFile(filePath: string): Promise<FileAnalysis | null> {\n const extension = extname(filePath).toLowerCase();\n\n // Only process TypeScript/JavaScript files\n if (!['.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs'].includes(extension)) {\n return null;\n }\n\n // Read source code\n const sourceCode = await this.getSourceCode(filePath);\n if (!sourceCode) return null;\n\n // Parse AST\n const ast = this.parseFile(filePath, sourceCode);\n if (!ast) return null;\n\n // Extract functions\n const functions = this.extractFunctions(ast, filePath, sourceCode);\n\n // Calculate file-level metrics\n const { loc, totalLines } = calculateLinesOfCode(sourceCode, 1, sourceCode.split('\\n').length);\n\n // Count imports and exports\n const importCount = this.countImports(ast);\n const exportCount = this.countExports(ast);\n const classCount = this.countClasses(ast);\n\n // Aggregate file complexity\n const complexity = aggregateFileComplexity(functions, loc, totalLines);\n\n // Classify file complexity level\n const level = classifyComplexityLevel(complexity, this.config.thresholds);\n\n // Find complex functions\n const complexFunctions = functions.filter(\n (f) => f.level === 'high' || f.level === 'critical'\n );\n\n return {\n filePath,\n relativePath: relative(this.config.projectRoot, filePath),\n extension,\n complexity,\n functions,\n classCount,\n importCount,\n exportCount,\n analyzedAt: new Date(),\n parseErrors: [],\n complexFunctions,\n level,\n };\n }\n\n // ==========================================================================\n // AST Parsing\n // ==========================================================================\n\n /**\n * Parse source file to AST\n */\n private parseFile(filePath: string, sourceCode: string): TSESTree.Program | null {\n const extension = extname(filePath).toLowerCase();\n const isTypeScript = extension === '.ts' || extension === '.tsx';\n const isJsx = extension === '.tsx' || extension === '.jsx';\n\n try {\n return parse(sourceCode, {\n loc: true,\n range: true,\n tokens: false,\n comment: false,\n jsx: isJsx,\n // Use looser parsing for JavaScript\n ...(isTypeScript ? {} : { allowInvalidAST: true }),\n });\n } catch (error) {\n if (this.config.verbose) {\n logger.debug(`Parse error in ${filePath}`, {\n error: error instanceof Error ? error.message : String(error),\n });\n }\n return null;\n }\n }\n\n // ==========================================================================\n // Function Extraction\n // ==========================================================================\n\n /**\n * Extract all functions from AST\n */\n private extractFunctions(\n ast: TSESTree.Program,\n filePath: string,\n sourceCode: string\n ): FunctionAnalysis[] {\n const functions: FunctionAnalysis[] = [];\n\n const traverse = (node: TSESTree.Node, parentName?: string): void => {\n // Check for function-like nodes\n const functionInfo = this.getFunctionInfo(node, parentName);\n if (functionInfo) {\n const analysis = this.analyzeFunctionNode(\n functionInfo.node,\n functionInfo.name,\n functionInfo.kind,\n filePath,\n sourceCode,\n functionInfo.isAsync,\n functionInfo.isExported,\n functionInfo.parentName\n );\n functions.push(analysis);\n }\n\n // Track class names for methods\n let newParentName = parentName;\n if (node.type === 'ClassDeclaration' || node.type === 'ClassExpression') {\n const classNode = node as TSESTree.ClassDeclaration;\n newParentName = classNode.id?.name ?? 'AnonymousClass';\n }\n\n // Traverse children\n for (const key of Object.keys(node)) {\n if (key === 'parent') continue;\n const child = (node as unknown as Record<string, unknown>)[key];\n if (child && typeof child === 'object') {\n if (Array.isArray(child)) {\n for (const item of child) {\n if (item && typeof item === 'object' && 'type' in item) {\n traverse(item as TSESTree.Node, newParentName);\n }\n }\n } else if ('type' in child) {\n traverse(child as TSESTree.Node, newParentName);\n }\n }\n }\n };\n\n traverse(ast);\n return functions;\n }\n\n /**\n * Get function information from node\n */\n private getFunctionInfo(\n node: TSESTree.Node,\n parentName?: string\n ): {\n node: TSESTree.Node;\n name: string;\n kind: FunctionKind;\n isAsync: boolean;\n isExported: boolean;\n parentName?: string;\n } | null {\n switch (node.type) {\n case 'FunctionDeclaration': {\n const fn = node as TSESTree.FunctionDeclaration;\n return {\n node: fn,\n name: fn.id?.name ?? 'anonymous',\n kind: fn.generator ? 'generator' : 'function',\n isAsync: fn.async,\n isExported: false,\n parentName,\n };\n }\n\n case 'FunctionExpression': {\n const fn = node as TSESTree.FunctionExpression;\n return {\n node: fn,\n name: fn.id?.name ?? 'anonymous',\n kind: fn.generator ? 'generator' : 'function',\n isAsync: fn.async,\n isExported: false,\n parentName,\n };\n }\n\n case 'ArrowFunctionExpression': {\n const fn = node as TSESTree.ArrowFunctionExpression;\n // Try to get name from variable declaration\n const name = this.getArrowFunctionName(node) ?? 'arrow';\n return {\n node: fn,\n name,\n kind: 'arrow',\n isAsync: fn.async,\n isExported: false,\n parentName,\n };\n }\n\n case 'MethodDefinition': {\n const method = node as TSESTree.MethodDefinition;\n const methodName = this.getPropertyName(method.key) ?? 'method';\n let kind: FunctionKind;\n if (method.kind === 'constructor') {\n kind = 'constructor';\n } else if (method.kind === 'get') {\n kind = 'getter';\n } else if (method.kind === 'set') {\n kind = 'setter';\n } else {\n kind = 'method';\n }\n const fn = method.value as TSESTree.FunctionExpression;\n return {\n node: method.value,\n name: methodName,\n kind,\n isAsync: fn.async,\n isExported: false,\n parentName,\n };\n }\n\n default:\n return null;\n }\n }\n\n /**\n * Analyze a single function node\n */\n private analyzeFunctionNode(\n node: TSESTree.Node,\n name: string,\n kind: FunctionKind,\n filePath: string,\n sourceCode: string,\n isAsync: boolean,\n isExported: boolean,\n parentName?: string\n ): FunctionAnalysis {\n const startLine = node.loc?.start.line ?? 1;\n const endLine = node.loc?.end.line ?? 1;\n\n // Calculate complexity metrics\n const cyclomatic = calculateCyclomaticComplexity(node);\n const cognitive = calculateCognitiveComplexity(node);\n const maxNestingDepth = calculateMaxNestingDepth(node);\n const { loc, totalLines } = calculateLinesOfCode(sourceCode, startLine, endLine);\n const returnCount = countReturnStatements(node);\n\n // Get parameter count\n const parameterCount = this.getParameterCount(node);\n\n const complexity: ComplexityScore = {\n cyclomatic,\n cognitive,\n loc,\n totalLines,\n maxNestingDepth,\n parameterCount,\n returnCount,\n };\n\n // Classify complexity level\n const level = classifyComplexityLevel(complexity, this.config.thresholds);\n\n // Detect issues\n const issues = detectComplexityIssues(complexity, this.config.thresholds, name);\n\n // Generate recommendations\n const recommendations = generateRecommendations(complexity, this.config.thresholds, level);\n\n return {\n name,\n filePath,\n startLine,\n endLine,\n kind,\n complexity,\n level,\n parentName,\n isAsync,\n isExported,\n issues,\n recommendations,\n };\n }\n\n // ==========================================================================\n // Helper Methods\n // ==========================================================================\n\n /**\n * Find files matching patterns\n */\n private async findFiles(): Promise<string[]> {\n const patterns = this.config.patterns.include.map((p) =>\n p.startsWith('/') ? p : `${this.config.projectRoot}/${p}`\n );\n\n const ignore = [...this.config.patterns.exclude];\n if (!this.config.includeNodeModules) {\n ignore.push('**/node_modules/**');\n }\n if (!this.config.includeTests) {\n ignore.push('**/*.test.*', '**/*.spec.*', '**/__tests__/**');\n }\n\n let files = await fastGlob(patterns, {\n ignore,\n absolute: true,\n onlyFiles: true,\n });\n\n // Limit files if configured\n if (this.config.maxFiles && files.length > this.config.maxFiles) {\n files = files.slice(0, this.config.maxFiles);\n }\n\n return files;\n }\n\n /**\n * Get source code for file (with caching)\n */\n private async getSourceCode(filePath: string): Promise<string | null> {\n if (this.sourceCache.has(filePath)) {\n return this.sourceCache.get(filePath)!;\n }\n\n try {\n const content = await readFile(filePath, 'utf-8');\n this.sourceCache.set(filePath, content);\n return content;\n } catch {\n return null;\n }\n }\n\n /**\n * Get arrow function name from parent\n */\n private getArrowFunctionName(node: TSESTree.Node): string | null {\n // This would require parent tracking in the AST\n // For now, return null and we'll use 'arrow' as default\n return null;\n }\n\n /**\n * Get property name from key\n */\n private getPropertyName(key: TSESTree.Node): string | null {\n if (key.type === 'Identifier') {\n return (key as TSESTree.Identifier).name;\n }\n if (key.type === 'Literal') {\n return String((key as TSESTree.Literal).value);\n }\n return null;\n }\n\n /**\n * Get parameter count from function\n */\n private getParameterCount(node: TSESTree.Node): number {\n if ('params' in node && Array.isArray(node.params)) {\n return node.params.length;\n }\n return 0;\n }\n\n /**\n * Count imports in AST\n */\n private countImports(ast: TSESTree.Program): number {\n return ast.body.filter((n) => n.type === 'ImportDeclaration').length;\n }\n\n /**\n * Count exports in AST\n */\n private countExports(ast: TSESTree.Program): number {\n return ast.body.filter(\n (n) =>\n n.type === 'ExportDefaultDeclaration' ||\n n.type === 'ExportNamedDeclaration' ||\n n.type === 'ExportAllDeclaration'\n ).length;\n }\n\n /**\n * Count classes in AST\n */\n private countClasses(ast: TSESTree.Program): number {\n let count = 0;\n const traverse = (node: TSESTree.Node): void => {\n if (node.type === 'ClassDeclaration' || node.type === 'ClassExpression') {\n count++;\n }\n for (const key of Object.keys(node)) {\n if (key === 'parent') continue;\n const child = (node as unknown as Record<string, unknown>)[key];\n if (child && typeof child === 'object') {\n if (Array.isArray(child)) {\n for (const item of child) {\n if (item && typeof item === 'object' && 'type' in item) {\n traverse(item as TSESTree.Node);\n }\n }\n } else if ('type' in child) {\n traverse(child as TSESTree.Node);\n }\n }\n }\n };\n traverse(ast);\n return count;\n }\n\n /**\n * Calculate project-wide metrics\n */\n private calculateProjectMetrics(files: FileAnalysis[]): ProjectMetrics {\n if (files.length === 0) {\n return {\n totalFiles: 0,\n totalFunctions: 0,\n totalLoc: 0,\n avgCyclomatic: 0,\n avgCognitive: 0,\n avgMaintainability: 100,\n complexityDistribution: { low: 0, moderate: 0, high: 0, critical: 0 },\n filesByLevel: { low: 0, moderate: 0, high: 0, critical: 0 },\n topComplexFiles: [],\n topComplexFunctions: [],\n };\n }\n\n const allFunctions = files.flatMap((f) => f.functions);\n const totalFunctions = allFunctions.length;\n const totalLoc = files.reduce((sum, f) => sum + f.complexity.loc, 0);\n\n // Calculate averages\n const avgCyclomatic = totalFunctions > 0\n ? allFunctions.reduce((sum, f) => sum + f.complexity.cyclomatic, 0) / totalFunctions\n : 0;\n\n const avgCognitive = totalFunctions > 0\n ? allFunctions.reduce((sum, f) => sum + f.complexity.cognitive, 0) / totalFunctions\n : 0;\n\n const avgMaintainability = files.length > 0\n ? files.reduce((sum, f) => sum + f.complexity.maintainabilityIndex, 0) / files.length\n : 100;\n\n // Distribution\n const complexityDistribution: Record<ComplexityLevel, number> = {\n low: 0,\n moderate: 0,\n high: 0,\n critical: 0,\n };\n for (const fn of allFunctions) {\n complexityDistribution[fn.level]++;\n }\n\n const filesByLevel: Record<ComplexityLevel, number> = {\n low: 0,\n moderate: 0,\n high: 0,\n critical: 0,\n };\n for (const file of files) {\n filesByLevel[file.level]++;\n }\n\n // Top complex files\n const topComplexFiles = files\n .sort((a, b) => b.complexity.cyclomatic - a.complexity.cyclomatic)\n .slice(0, 10)\n .map((f) => ({ path: f.relativePath, score: f.complexity.cyclomatic }));\n\n // Top complex functions\n const topComplexFunctions = allFunctions\n .sort((a, b) => b.complexity.cyclomatic - a.complexity.cyclomatic)\n .slice(0, 10)\n .map((f) => ({\n name: f.parentName ? `${f.parentName}.${f.name}` : f.name,\n file: relative(this.config.projectRoot, f.filePath),\n score: f.complexity.cyclomatic,\n }));\n\n return {\n totalFiles: files.length,\n totalFunctions,\n totalLoc,\n avgCyclomatic: Math.round(avgCyclomatic * 100) / 100,\n avgCognitive: Math.round(avgCognitive * 100) / 100,\n avgMaintainability: Math.round(avgMaintainability * 100) / 100,\n complexityDistribution,\n filesByLevel,\n topComplexFiles,\n topComplexFunctions,\n };\n }\n\n /**\n * Clear source cache\n */\n clearCache(): void {\n this.sourceCache.clear();\n }\n}\n\n// ============================================================================\n// Factory Functions\n// ============================================================================\n\n/**\n * Create a code complexity analyzer\n */\nexport function createComplexityAnalyzer(\n config?: Partial<AnalyzerConfig>\n): CodeComplexityAnalyzer {\n return new CodeComplexityAnalyzer(config);\n}\n\n/**\n * Analyze a single file for complexity\n */\nexport async function analyzeFileComplexity(\n filePath: string,\n projectRoot?: string\n): Promise<FileAnalysis | null> {\n const analyzer = new CodeComplexityAnalyzer({\n projectRoot: projectRoot ?? '.',\n });\n return analyzer.analyzeFile(filePath);\n}\n\n/**\n * Analyze a project for complexity\n */\nexport async function analyzeProjectComplexity(\n projectRoot: string,\n options?: Partial<AnalyzerConfig>\n): Promise<ProjectAnalysis> {\n const analyzer = new CodeComplexityAnalyzer({\n ...options,\n projectRoot,\n });\n return analyzer.analyzeProject();\n}\n"],"names":["parse","fastGlob"],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Knowledge Graph Node Generator for Complexity Analysis
|
|
3
|
+
*
|
|
4
|
+
* Generates knowledge graph nodes and edges from complexity analysis results.
|
|
5
|
+
* Creates structured documentation for complex code that can be integrated
|
|
6
|
+
* into the knowledge graph.
|
|
7
|
+
*
|
|
8
|
+
* @module plugins/analyzers/code-complexity/graph-generator
|
|
9
|
+
*/
|
|
10
|
+
import type { ComplexityNode, ComplexityEdge, FunctionAnalysis, FileAnalysis, ProjectAnalysis, AnalyzerConfig } from './types.js';
|
|
11
|
+
import type { KnowledgeNode } from '../../../core/types.js';
|
|
12
|
+
/**
|
|
13
|
+
* Generates knowledge graph nodes from complexity analysis results
|
|
14
|
+
*/
|
|
15
|
+
export declare class ComplexityGraphGenerator {
|
|
16
|
+
private projectRoot;
|
|
17
|
+
private thresholds;
|
|
18
|
+
constructor(projectRoot: string, config?: Partial<AnalyzerConfig>);
|
|
19
|
+
/**
|
|
20
|
+
* Generate all nodes from project analysis
|
|
21
|
+
*/
|
|
22
|
+
generateNodes(analysis: ProjectAnalysis): ComplexityNode[];
|
|
23
|
+
/**
|
|
24
|
+
* Generate a node for a complex function
|
|
25
|
+
*/
|
|
26
|
+
generateFunctionNode(fn: FunctionAnalysis): ComplexityNode;
|
|
27
|
+
/**
|
|
28
|
+
* Generate a node for a complex file
|
|
29
|
+
*/
|
|
30
|
+
generateFileNode(file: FileAnalysis): ComplexityNode;
|
|
31
|
+
/**
|
|
32
|
+
* Generate edges connecting complexity nodes
|
|
33
|
+
*/
|
|
34
|
+
generateEdges(nodes: ComplexityNode[], analysis: ProjectAnalysis): ComplexityEdge[];
|
|
35
|
+
/**
|
|
36
|
+
* Convert complexity nodes to knowledge graph nodes
|
|
37
|
+
*/
|
|
38
|
+
toKnowledgeNodes(nodes: ComplexityNode[]): KnowledgeNode[];
|
|
39
|
+
/**
|
|
40
|
+
* Convert a complexity node to a knowledge node
|
|
41
|
+
*/
|
|
42
|
+
private complexityToKnowledge;
|
|
43
|
+
/**
|
|
44
|
+
* Generate markdown content for a complexity node
|
|
45
|
+
*/
|
|
46
|
+
generateMarkdownContent(node: ComplexityNode): string;
|
|
47
|
+
/**
|
|
48
|
+
* Generate report markdown for entire project
|
|
49
|
+
*/
|
|
50
|
+
generateProjectReport(analysis: ProjectAnalysis): string;
|
|
51
|
+
private generateFunctionTitle;
|
|
52
|
+
private generateFunctionTags;
|
|
53
|
+
private generateFileTags;
|
|
54
|
+
private generateFileIssues;
|
|
55
|
+
private generateFileRecommendations;
|
|
56
|
+
private generateDescription;
|
|
57
|
+
private getSeverityEmoji;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Create a complexity graph generator
|
|
61
|
+
*/
|
|
62
|
+
export declare function createGraphGenerator(projectRoot: string, config?: Partial<AnalyzerConfig>): ComplexityGraphGenerator;
|
|
63
|
+
/**
|
|
64
|
+
* Generate knowledge graph nodes from analysis
|
|
65
|
+
*/
|
|
66
|
+
export declare function generateComplexityNodes(analysis: ProjectAnalysis, projectRoot: string): {
|
|
67
|
+
nodes: ComplexityNode[];
|
|
68
|
+
edges: ComplexityEdge[];
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=graph-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-generator.d.ts","sourceRoot":"","sources":["../../../../src/plugins/analyzers/code-complexity/graph-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EAGd,gBAAgB,EAChB,YAAY,EACZ,eAAe,EAEf,cAAc,EACf,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,aAAa,EAAuB,MAAM,wBAAwB,CAAC;AAgCjF;;GAEG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,UAAU,CAAqC;gBAE3C,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAYjE;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,eAAe,GAAG,cAAc,EAAE;IAkB1D;;OAEG;IACH,oBAAoB,CAAC,EAAE,EAAE,gBAAgB,GAAG,cAAc;IAqB1D;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,YAAY,GAAG,cAAc;IAyBpD;;OAEG;IACH,aAAa,CACX,KAAK,EAAE,cAAc,EAAE,EACvB,QAAQ,EAAE,eAAe,GACxB,cAAc,EAAE;IA+CnB;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,aAAa,EAAE;IAI1D;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA0C7B;;OAEG;IACH,uBAAuB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM;IA+ErD;;OAEG;IACH,qBAAqB,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM;IA+FxD,OAAO,CAAC,qBAAqB;IAK7B,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,kBAAkB;IAwB1B,OAAO,CAAC,2BAA2B;IAkBnC,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,gBAAgB;CAYzB;AAMD;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAC/B,wBAAwB,CAE1B;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,eAAe,EACzB,WAAW,EAAE,MAAM,GAClB;IAAE,KAAK,EAAE,cAAc,EAAE,CAAC;IAAC,KAAK,EAAE,cAAc,EAAE,CAAA;CAAE,CAKtD"}
|
|
@@ -0,0 +1,405 @@
|
|
|
1
|
+
import { relative, basename } from "path";
|
|
2
|
+
import { createHash } from "crypto";
|
|
3
|
+
function generateNodeId(type, filePath, functionName) {
|
|
4
|
+
const input = functionName ? `${type}:${filePath}:${functionName}` : `${type}:${filePath}`;
|
|
5
|
+
const hash = createHash("sha256").update(input).digest("hex").slice(0, 12);
|
|
6
|
+
return `complexity-${hash}`;
|
|
7
|
+
}
|
|
8
|
+
function slugify(text) {
|
|
9
|
+
return text.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
|
|
10
|
+
}
|
|
11
|
+
class ComplexityGraphGenerator {
|
|
12
|
+
projectRoot;
|
|
13
|
+
thresholds;
|
|
14
|
+
constructor(projectRoot, config) {
|
|
15
|
+
this.projectRoot = projectRoot;
|
|
16
|
+
this.thresholds = {
|
|
17
|
+
high: config?.thresholds?.cyclomaticHigh ?? 10,
|
|
18
|
+
critical: config?.thresholds?.cyclomaticCritical ?? 20
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
// ==========================================================================
|
|
22
|
+
// Node Generation
|
|
23
|
+
// ==========================================================================
|
|
24
|
+
/**
|
|
25
|
+
* Generate all nodes from project analysis
|
|
26
|
+
*/
|
|
27
|
+
generateNodes(analysis) {
|
|
28
|
+
const nodes = [];
|
|
29
|
+
for (const fn of analysis.complexFunctions) {
|
|
30
|
+
const node = this.generateFunctionNode(fn);
|
|
31
|
+
nodes.push(node);
|
|
32
|
+
}
|
|
33
|
+
for (const file of analysis.hotspots) {
|
|
34
|
+
const node = this.generateFileNode(file);
|
|
35
|
+
nodes.push(node);
|
|
36
|
+
}
|
|
37
|
+
return nodes;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Generate a node for a complex function
|
|
41
|
+
*/
|
|
42
|
+
generateFunctionNode(fn) {
|
|
43
|
+
const id = generateNodeId("complex-function", fn.filePath, fn.name);
|
|
44
|
+
relative(this.projectRoot, fn.filePath);
|
|
45
|
+
return {
|
|
46
|
+
id,
|
|
47
|
+
type: "complex-function",
|
|
48
|
+
title: this.generateFunctionTitle(fn),
|
|
49
|
+
filePath: fn.filePath,
|
|
50
|
+
functionName: fn.name,
|
|
51
|
+
lineRange: { start: fn.startLine, end: fn.endLine },
|
|
52
|
+
complexity: fn.complexity,
|
|
53
|
+
level: fn.level,
|
|
54
|
+
issues: fn.issues,
|
|
55
|
+
recommendations: fn.recommendations,
|
|
56
|
+
relatedNodes: [],
|
|
57
|
+
tags: this.generateFunctionTags(fn),
|
|
58
|
+
createdAt: /* @__PURE__ */ new Date()
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Generate a node for a complex file
|
|
63
|
+
*/
|
|
64
|
+
generateFileNode(file) {
|
|
65
|
+
const id = generateNodeId("complex-file", file.filePath);
|
|
66
|
+
relative(this.projectRoot, file.filePath);
|
|
67
|
+
return {
|
|
68
|
+
id,
|
|
69
|
+
type: "complex-file",
|
|
70
|
+
title: `Complex File: ${basename(file.filePath)}`,
|
|
71
|
+
filePath: file.filePath,
|
|
72
|
+
complexity: file.complexity,
|
|
73
|
+
level: file.level,
|
|
74
|
+
issues: this.generateFileIssues(file),
|
|
75
|
+
recommendations: this.generateFileRecommendations(file),
|
|
76
|
+
relatedNodes: file.functions.map(
|
|
77
|
+
(fn) => generateNodeId("complex-function", file.filePath, fn.name)
|
|
78
|
+
),
|
|
79
|
+
tags: this.generateFileTags(file),
|
|
80
|
+
createdAt: /* @__PURE__ */ new Date()
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
// ==========================================================================
|
|
84
|
+
// Edge Generation
|
|
85
|
+
// ==========================================================================
|
|
86
|
+
/**
|
|
87
|
+
* Generate edges connecting complexity nodes
|
|
88
|
+
*/
|
|
89
|
+
generateEdges(nodes, analysis) {
|
|
90
|
+
const edges = [];
|
|
91
|
+
for (const file of analysis.hotspots) {
|
|
92
|
+
const fileNodeId = generateNodeId("complex-file", file.filePath);
|
|
93
|
+
for (const fn of file.complexFunctions) {
|
|
94
|
+
const fnNodeId = generateNodeId("complex-function", file.filePath, fn.name);
|
|
95
|
+
edges.push({
|
|
96
|
+
source: fileNodeId,
|
|
97
|
+
target: fnNodeId,
|
|
98
|
+
type: "contains",
|
|
99
|
+
weight: fn.complexity.cyclomatic / this.thresholds.critical,
|
|
100
|
+
complexityScore: fn.complexity.cyclomatic,
|
|
101
|
+
context: `${fn.name} is a complex function in this file`
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
for (const file of analysis.files) {
|
|
106
|
+
const complexFns = file.complexFunctions;
|
|
107
|
+
for (let i = 0; i < complexFns.length; i++) {
|
|
108
|
+
for (let j = i + 1; j < complexFns.length; j++) {
|
|
109
|
+
const fn1 = complexFns[i];
|
|
110
|
+
const fn2 = complexFns[j];
|
|
111
|
+
edges.push({
|
|
112
|
+
source: generateNodeId("complex-function", file.filePath, fn1.name),
|
|
113
|
+
target: generateNodeId("complex-function", file.filePath, fn2.name),
|
|
114
|
+
type: "related",
|
|
115
|
+
weight: 0.5,
|
|
116
|
+
context: "Both functions are complex and in the same file"
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return edges;
|
|
122
|
+
}
|
|
123
|
+
// ==========================================================================
|
|
124
|
+
// Knowledge Node Conversion
|
|
125
|
+
// ==========================================================================
|
|
126
|
+
/**
|
|
127
|
+
* Convert complexity nodes to knowledge graph nodes
|
|
128
|
+
*/
|
|
129
|
+
toKnowledgeNodes(nodes) {
|
|
130
|
+
return nodes.map((node) => this.complexityToKnowledge(node));
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Convert a complexity node to a knowledge node
|
|
134
|
+
*/
|
|
135
|
+
complexityToKnowledge(node) {
|
|
136
|
+
const relativePath = relative(this.projectRoot, node.filePath);
|
|
137
|
+
const filename = `${slugify(node.title)}.md`;
|
|
138
|
+
return {
|
|
139
|
+
id: node.id,
|
|
140
|
+
path: `docs/complexity/${filename}`,
|
|
141
|
+
filename,
|
|
142
|
+
title: node.title,
|
|
143
|
+
type: "technical",
|
|
144
|
+
status: node.level === "critical" ? "active" : "draft",
|
|
145
|
+
content: this.generateMarkdownContent(node),
|
|
146
|
+
frontmatter: {
|
|
147
|
+
title: node.title,
|
|
148
|
+
type: "technical",
|
|
149
|
+
status: node.level === "critical" ? "active" : "draft",
|
|
150
|
+
tags: node.tags,
|
|
151
|
+
category: "complexity",
|
|
152
|
+
description: this.generateDescription(node),
|
|
153
|
+
created: node.createdAt.toISOString(),
|
|
154
|
+
complexity_level: node.level,
|
|
155
|
+
cyclomatic_complexity: node.complexity.cyclomatic,
|
|
156
|
+
cognitive_complexity: node.complexity.cognitive,
|
|
157
|
+
file_path: relativePath,
|
|
158
|
+
function_name: node.functionName
|
|
159
|
+
},
|
|
160
|
+
tags: node.tags,
|
|
161
|
+
outgoingLinks: node.relatedNodes.map((target) => ({
|
|
162
|
+
target,
|
|
163
|
+
type: "wikilink",
|
|
164
|
+
context: "Related complexity hotspot"
|
|
165
|
+
})),
|
|
166
|
+
incomingLinks: [],
|
|
167
|
+
wordCount: 0,
|
|
168
|
+
lastModified: node.createdAt
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
// ==========================================================================
|
|
172
|
+
// Markdown Generation
|
|
173
|
+
// ==========================================================================
|
|
174
|
+
/**
|
|
175
|
+
* Generate markdown content for a complexity node
|
|
176
|
+
*/
|
|
177
|
+
generateMarkdownContent(node) {
|
|
178
|
+
const relativePath = relative(this.projectRoot, node.filePath);
|
|
179
|
+
const lines = [];
|
|
180
|
+
lines.push(`# ${node.title}`);
|
|
181
|
+
lines.push("");
|
|
182
|
+
const severityEmoji = this.getSeverityEmoji(node.level);
|
|
183
|
+
lines.push(`> ${severityEmoji} **Severity: ${node.level.toUpperCase()}**`);
|
|
184
|
+
lines.push("");
|
|
185
|
+
lines.push("## Location");
|
|
186
|
+
lines.push("");
|
|
187
|
+
lines.push(`- **File**: \`${relativePath}\``);
|
|
188
|
+
if (node.functionName) {
|
|
189
|
+
lines.push(`- **Function**: \`${node.functionName}\``);
|
|
190
|
+
}
|
|
191
|
+
if (node.lineRange) {
|
|
192
|
+
lines.push(`- **Lines**: ${node.lineRange.start} - ${node.lineRange.end}`);
|
|
193
|
+
}
|
|
194
|
+
lines.push("");
|
|
195
|
+
lines.push("## Complexity Metrics");
|
|
196
|
+
lines.push("");
|
|
197
|
+
lines.push("| Metric | Value | Threshold |");
|
|
198
|
+
lines.push("|--------|-------|-----------|");
|
|
199
|
+
lines.push(
|
|
200
|
+
`| Cyclomatic Complexity | ${node.complexity.cyclomatic} | ${this.thresholds.high} (high) / ${this.thresholds.critical} (critical) |`
|
|
201
|
+
);
|
|
202
|
+
lines.push(
|
|
203
|
+
`| Cognitive Complexity | ${node.complexity.cognitive} | 15 (high) / 25 (critical) |`
|
|
204
|
+
);
|
|
205
|
+
lines.push(`| Lines of Code | ${node.complexity.loc} | 50 (max) |`);
|
|
206
|
+
lines.push(`| Max Nesting Depth | ${node.complexity.maxNestingDepth} | 4 (max) |`);
|
|
207
|
+
lines.push("");
|
|
208
|
+
if (node.issues.length > 0) {
|
|
209
|
+
lines.push("## Issues Detected");
|
|
210
|
+
lines.push("");
|
|
211
|
+
for (const issue of node.issues) {
|
|
212
|
+
lines.push(`- ${issue}`);
|
|
213
|
+
}
|
|
214
|
+
lines.push("");
|
|
215
|
+
}
|
|
216
|
+
if (node.recommendations.length > 0) {
|
|
217
|
+
lines.push("## Recommendations");
|
|
218
|
+
lines.push("");
|
|
219
|
+
for (const rec of node.recommendations) {
|
|
220
|
+
lines.push(`- ${rec}`);
|
|
221
|
+
}
|
|
222
|
+
lines.push("");
|
|
223
|
+
}
|
|
224
|
+
if (node.relatedNodes.length > 0) {
|
|
225
|
+
lines.push("## Related Hotspots");
|
|
226
|
+
lines.push("");
|
|
227
|
+
for (const related of node.relatedNodes) {
|
|
228
|
+
lines.push(`- [[${related}]]`);
|
|
229
|
+
}
|
|
230
|
+
lines.push("");
|
|
231
|
+
}
|
|
232
|
+
lines.push("## Tags");
|
|
233
|
+
lines.push("");
|
|
234
|
+
lines.push(node.tags.map((t) => `\`${t}\``).join(" "));
|
|
235
|
+
lines.push("");
|
|
236
|
+
return lines.join("\n");
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Generate report markdown for entire project
|
|
240
|
+
*/
|
|
241
|
+
generateProjectReport(analysis) {
|
|
242
|
+
const lines = [];
|
|
243
|
+
lines.push("# Code Complexity Analysis Report");
|
|
244
|
+
lines.push("");
|
|
245
|
+
lines.push(`> Generated: ${(/* @__PURE__ */ new Date()).toISOString()}`);
|
|
246
|
+
lines.push("");
|
|
247
|
+
lines.push("## Summary");
|
|
248
|
+
lines.push("");
|
|
249
|
+
lines.push(`- **Total Files Analyzed**: ${analysis.metrics.totalFiles}`);
|
|
250
|
+
lines.push(`- **Total Functions**: ${analysis.metrics.totalFunctions}`);
|
|
251
|
+
lines.push(`- **Total Lines of Code**: ${analysis.metrics.totalLoc}`);
|
|
252
|
+
lines.push(`- **Analysis Duration**: ${analysis.timing.durationMs}ms`);
|
|
253
|
+
lines.push("");
|
|
254
|
+
lines.push("## Average Metrics");
|
|
255
|
+
lines.push("");
|
|
256
|
+
lines.push("| Metric | Value |");
|
|
257
|
+
lines.push("|--------|-------|");
|
|
258
|
+
lines.push(`| Cyclomatic Complexity | ${analysis.metrics.avgCyclomatic} |`);
|
|
259
|
+
lines.push(`| Cognitive Complexity | ${analysis.metrics.avgCognitive} |`);
|
|
260
|
+
lines.push(`| Maintainability Index | ${analysis.metrics.avgMaintainability} |`);
|
|
261
|
+
lines.push("");
|
|
262
|
+
lines.push("## Complexity Distribution");
|
|
263
|
+
lines.push("");
|
|
264
|
+
lines.push("| Level | Functions | Files |");
|
|
265
|
+
lines.push("|-------|-----------|-------|");
|
|
266
|
+
const levels = ["low", "moderate", "high", "critical"];
|
|
267
|
+
for (const level of levels) {
|
|
268
|
+
lines.push(
|
|
269
|
+
`| ${level} | ${analysis.metrics.complexityDistribution[level]} | ${analysis.metrics.filesByLevel[level]} |`
|
|
270
|
+
);
|
|
271
|
+
}
|
|
272
|
+
lines.push("");
|
|
273
|
+
if (analysis.metrics.topComplexFiles.length > 0) {
|
|
274
|
+
lines.push("## Most Complex Files");
|
|
275
|
+
lines.push("");
|
|
276
|
+
lines.push("| File | Cyclomatic Complexity |");
|
|
277
|
+
lines.push("|------|----------------------|");
|
|
278
|
+
for (const file of analysis.metrics.topComplexFiles) {
|
|
279
|
+
lines.push(`| ${file.path} | ${file.score} |`);
|
|
280
|
+
}
|
|
281
|
+
lines.push("");
|
|
282
|
+
}
|
|
283
|
+
if (analysis.metrics.topComplexFunctions.length > 0) {
|
|
284
|
+
lines.push("## Most Complex Functions");
|
|
285
|
+
lines.push("");
|
|
286
|
+
lines.push("| Function | File | Score |");
|
|
287
|
+
lines.push("|----------|------|-------|");
|
|
288
|
+
for (const fn of analysis.metrics.topComplexFunctions) {
|
|
289
|
+
lines.push(`| ${fn.name} | ${fn.file} | ${fn.score} |`);
|
|
290
|
+
}
|
|
291
|
+
lines.push("");
|
|
292
|
+
}
|
|
293
|
+
if (analysis.hotspots.length > 0) {
|
|
294
|
+
lines.push("## Hotspots Requiring Attention");
|
|
295
|
+
lines.push("");
|
|
296
|
+
for (const hotspot of analysis.hotspots.slice(0, 10)) {
|
|
297
|
+
const relativePath = relative(this.projectRoot, hotspot.filePath);
|
|
298
|
+
lines.push(`### ${basename(hotspot.filePath)}`);
|
|
299
|
+
lines.push("");
|
|
300
|
+
lines.push(`- **Path**: \`${relativePath}\``);
|
|
301
|
+
lines.push(`- **Complexity Level**: ${hotspot.level}`);
|
|
302
|
+
lines.push(`- **Functions**: ${hotspot.functions.length}`);
|
|
303
|
+
lines.push(`- **Complex Functions**: ${hotspot.complexFunctions.length}`);
|
|
304
|
+
lines.push("");
|
|
305
|
+
if (hotspot.complexFunctions.length > 0) {
|
|
306
|
+
lines.push("**Complex Functions:**");
|
|
307
|
+
for (const fn of hotspot.complexFunctions) {
|
|
308
|
+
lines.push(`- \`${fn.name}\` (CC: ${fn.complexity.cyclomatic})`);
|
|
309
|
+
}
|
|
310
|
+
lines.push("");
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
return lines.join("\n");
|
|
315
|
+
}
|
|
316
|
+
// ==========================================================================
|
|
317
|
+
// Helper Methods
|
|
318
|
+
// ==========================================================================
|
|
319
|
+
generateFunctionTitle(fn) {
|
|
320
|
+
const prefix = fn.parentName ? `${fn.parentName}.` : "";
|
|
321
|
+
return `Complex Function: ${prefix}${fn.name}`;
|
|
322
|
+
}
|
|
323
|
+
generateFunctionTags(fn) {
|
|
324
|
+
const tags = ["complexity", fn.level, fn.kind];
|
|
325
|
+
if (fn.isAsync) tags.push("async");
|
|
326
|
+
if (fn.complexity.cyclomatic >= this.thresholds.critical) {
|
|
327
|
+
tags.push("needs-refactoring");
|
|
328
|
+
}
|
|
329
|
+
if (fn.complexity.maxNestingDepth > 4) {
|
|
330
|
+
tags.push("deep-nesting");
|
|
331
|
+
}
|
|
332
|
+
return tags;
|
|
333
|
+
}
|
|
334
|
+
generateFileTags(file) {
|
|
335
|
+
const tags = ["complexity", file.level, "file"];
|
|
336
|
+
if (file.complexFunctions.length > 3) {
|
|
337
|
+
tags.push("multiple-hotspots");
|
|
338
|
+
}
|
|
339
|
+
if (file.complexity.maintainabilityIndex < 50) {
|
|
340
|
+
tags.push("low-maintainability");
|
|
341
|
+
}
|
|
342
|
+
return tags;
|
|
343
|
+
}
|
|
344
|
+
generateFileIssues(file) {
|
|
345
|
+
const issues = [];
|
|
346
|
+
if (file.complexFunctions.length > 0) {
|
|
347
|
+
issues.push(
|
|
348
|
+
`Contains ${file.complexFunctions.length} complex function(s) that need attention`
|
|
349
|
+
);
|
|
350
|
+
}
|
|
351
|
+
if (file.complexity.maintainabilityIndex < 50) {
|
|
352
|
+
issues.push(
|
|
353
|
+
`Low maintainability index (${file.complexity.maintainabilityIndex})`
|
|
354
|
+
);
|
|
355
|
+
}
|
|
356
|
+
if (file.complexity.avgCyclomatic > 10) {
|
|
357
|
+
issues.push(
|
|
358
|
+
`High average cyclomatic complexity (${file.complexity.avgCyclomatic})`
|
|
359
|
+
);
|
|
360
|
+
}
|
|
361
|
+
return issues;
|
|
362
|
+
}
|
|
363
|
+
generateFileRecommendations(file) {
|
|
364
|
+
const recommendations = [];
|
|
365
|
+
if (file.complexFunctions.length > 3) {
|
|
366
|
+
recommendations.push("Consider splitting this file into smaller modules");
|
|
367
|
+
}
|
|
368
|
+
if (file.complexity.avgCyclomatic > 10) {
|
|
369
|
+
recommendations.push("Refactor complex functions to reduce average complexity");
|
|
370
|
+
}
|
|
371
|
+
if (file.complexity.functionCount > 20) {
|
|
372
|
+
recommendations.push("Large number of functions - consider organizing into classes");
|
|
373
|
+
}
|
|
374
|
+
return recommendations;
|
|
375
|
+
}
|
|
376
|
+
generateDescription(node) {
|
|
377
|
+
if (node.type === "complex-function") {
|
|
378
|
+
return `Complex function with cyclomatic complexity ${node.complexity.cyclomatic}`;
|
|
379
|
+
}
|
|
380
|
+
return `Complex file containing ${node.relatedNodes.length} complexity hotspots`;
|
|
381
|
+
}
|
|
382
|
+
getSeverityEmoji(level) {
|
|
383
|
+
switch (level) {
|
|
384
|
+
case "critical":
|
|
385
|
+
return "🔴";
|
|
386
|
+
case "high":
|
|
387
|
+
return "🟠";
|
|
388
|
+
case "moderate":
|
|
389
|
+
return "🟡";
|
|
390
|
+
case "low":
|
|
391
|
+
return "🟢";
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
function generateComplexityNodes(analysis, projectRoot) {
|
|
396
|
+
const generator = new ComplexityGraphGenerator(projectRoot);
|
|
397
|
+
const nodes = generator.generateNodes(analysis);
|
|
398
|
+
const edges = generator.generateEdges(nodes, analysis);
|
|
399
|
+
return { nodes, edges };
|
|
400
|
+
}
|
|
401
|
+
export {
|
|
402
|
+
ComplexityGraphGenerator,
|
|
403
|
+
generateComplexityNodes
|
|
404
|
+
};
|
|
405
|
+
//# sourceMappingURL=graph-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-generator.js","sources":["../../../../src/plugins/analyzers/code-complexity/graph-generator.ts"],"sourcesContent":["/**\n * Knowledge Graph Node Generator for Complexity Analysis\n *\n * Generates knowledge graph nodes and edges from complexity analysis results.\n * Creates structured documentation for complex code that can be integrated\n * into the knowledge graph.\n *\n * @module plugins/analyzers/code-complexity/graph-generator\n */\n\nimport { basename, dirname, relative } from 'path';\nimport { createHash } from 'crypto';\nimport type {\n ComplexityNode,\n ComplexityEdge,\n ComplexityNodeType,\n ComplexityLevel,\n FunctionAnalysis,\n FileAnalysis,\n ProjectAnalysis,\n ComplexityScore,\n AnalyzerConfig,\n} from './types.js';\nimport type { KnowledgeNode, NodeType, GraphEdge } from '../../../core/types.js';\n\n// ============================================================================\n// Node ID Generation\n// ============================================================================\n\n/**\n * Generate a unique node ID for a complexity entry\n */\nfunction generateNodeId(type: ComplexityNodeType, filePath: string, functionName?: string): string {\n const input = functionName\n ? `${type}:${filePath}:${functionName}`\n : `${type}:${filePath}`;\n\n const hash = createHash('sha256').update(input).digest('hex').slice(0, 12);\n return `complexity-${hash}`;\n}\n\n/**\n * Generate a slug for file/function names\n */\nfunction slugify(text: string): string {\n return text\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, '-')\n .replace(/^-|-$/g, '');\n}\n\n// ============================================================================\n// Complexity Graph Generator\n// ============================================================================\n\n/**\n * Generates knowledge graph nodes from complexity analysis results\n */\nexport class ComplexityGraphGenerator {\n private projectRoot: string;\n private thresholds: { high: number; critical: number };\n\n constructor(projectRoot: string, config?: Partial<AnalyzerConfig>) {\n this.projectRoot = projectRoot;\n this.thresholds = {\n high: config?.thresholds?.cyclomaticHigh ?? 10,\n critical: config?.thresholds?.cyclomaticCritical ?? 20,\n };\n }\n\n // ==========================================================================\n // Node Generation\n // ==========================================================================\n\n /**\n * Generate all nodes from project analysis\n */\n generateNodes(analysis: ProjectAnalysis): ComplexityNode[] {\n const nodes: ComplexityNode[] = [];\n\n // Generate nodes for complex functions\n for (const fn of analysis.complexFunctions) {\n const node = this.generateFunctionNode(fn);\n nodes.push(node);\n }\n\n // Generate nodes for complex files\n for (const file of analysis.hotspots) {\n const node = this.generateFileNode(file);\n nodes.push(node);\n }\n\n return nodes;\n }\n\n /**\n * Generate a node for a complex function\n */\n generateFunctionNode(fn: FunctionAnalysis): ComplexityNode {\n const id = generateNodeId('complex-function', fn.filePath, fn.name);\n const relativePath = relative(this.projectRoot, fn.filePath);\n\n return {\n id,\n type: 'complex-function',\n title: this.generateFunctionTitle(fn),\n filePath: fn.filePath,\n functionName: fn.name,\n lineRange: { start: fn.startLine, end: fn.endLine },\n complexity: fn.complexity,\n level: fn.level,\n issues: fn.issues,\n recommendations: fn.recommendations,\n relatedNodes: [],\n tags: this.generateFunctionTags(fn),\n createdAt: new Date(),\n };\n }\n\n /**\n * Generate a node for a complex file\n */\n generateFileNode(file: FileAnalysis): ComplexityNode {\n const id = generateNodeId('complex-file', file.filePath);\n const relativePath = relative(this.projectRoot, file.filePath);\n\n return {\n id,\n type: 'complex-file',\n title: `Complex File: ${basename(file.filePath)}`,\n filePath: file.filePath,\n complexity: file.complexity,\n level: file.level,\n issues: this.generateFileIssues(file),\n recommendations: this.generateFileRecommendations(file),\n relatedNodes: file.functions.map((fn) =>\n generateNodeId('complex-function', file.filePath, fn.name)\n ),\n tags: this.generateFileTags(file),\n createdAt: new Date(),\n };\n }\n\n // ==========================================================================\n // Edge Generation\n // ==========================================================================\n\n /**\n * Generate edges connecting complexity nodes\n */\n generateEdges(\n nodes: ComplexityNode[],\n analysis: ProjectAnalysis\n ): ComplexityEdge[] {\n const edges: ComplexityEdge[] = [];\n\n // Create edges between files and their complex functions\n for (const file of analysis.hotspots) {\n const fileNodeId = generateNodeId('complex-file', file.filePath);\n\n for (const fn of file.complexFunctions) {\n const fnNodeId = generateNodeId('complex-function', file.filePath, fn.name);\n\n edges.push({\n source: fileNodeId,\n target: fnNodeId,\n type: 'contains',\n weight: fn.complexity.cyclomatic / this.thresholds.critical,\n complexityScore: fn.complexity.cyclomatic,\n context: `${fn.name} is a complex function in this file`,\n });\n }\n }\n\n // Create edges between related complex functions (same file)\n for (const file of analysis.files) {\n const complexFns = file.complexFunctions;\n for (let i = 0; i < complexFns.length; i++) {\n for (let j = i + 1; j < complexFns.length; j++) {\n const fn1 = complexFns[i];\n const fn2 = complexFns[j];\n\n edges.push({\n source: generateNodeId('complex-function', file.filePath, fn1.name),\n target: generateNodeId('complex-function', file.filePath, fn2.name),\n type: 'related',\n weight: 0.5,\n context: 'Both functions are complex and in the same file',\n });\n }\n }\n }\n\n return edges;\n }\n\n // ==========================================================================\n // Knowledge Node Conversion\n // ==========================================================================\n\n /**\n * Convert complexity nodes to knowledge graph nodes\n */\n toKnowledgeNodes(nodes: ComplexityNode[]): KnowledgeNode[] {\n return nodes.map((node) => this.complexityToKnowledge(node));\n }\n\n /**\n * Convert a complexity node to a knowledge node\n */\n private complexityToKnowledge(node: ComplexityNode): KnowledgeNode {\n const relativePath = relative(this.projectRoot, node.filePath);\n const filename = `${slugify(node.title)}.md`;\n\n return {\n id: node.id,\n path: `docs/complexity/${filename}`,\n filename,\n title: node.title,\n type: 'technical' as NodeType,\n status: node.level === 'critical' ? 'active' : 'draft',\n content: this.generateMarkdownContent(node),\n frontmatter: {\n title: node.title,\n type: 'technical',\n status: node.level === 'critical' ? 'active' : 'draft',\n tags: node.tags,\n category: 'complexity',\n description: this.generateDescription(node),\n created: node.createdAt.toISOString(),\n complexity_level: node.level,\n cyclomatic_complexity: node.complexity.cyclomatic,\n cognitive_complexity: node.complexity.cognitive,\n file_path: relativePath,\n function_name: node.functionName,\n },\n tags: node.tags,\n outgoingLinks: node.relatedNodes.map((target) => ({\n target,\n type: 'wikilink' as const,\n context: 'Related complexity hotspot',\n })),\n incomingLinks: [],\n wordCount: 0,\n lastModified: node.createdAt,\n };\n }\n\n // ==========================================================================\n // Markdown Generation\n // ==========================================================================\n\n /**\n * Generate markdown content for a complexity node\n */\n generateMarkdownContent(node: ComplexityNode): string {\n const relativePath = relative(this.projectRoot, node.filePath);\n const lines: string[] = [];\n\n // Header\n lines.push(`# ${node.title}`);\n lines.push('');\n\n // Severity badge\n const severityEmoji = this.getSeverityEmoji(node.level);\n lines.push(`> ${severityEmoji} **Severity: ${node.level.toUpperCase()}**`);\n lines.push('');\n\n // Location\n lines.push('## Location');\n lines.push('');\n lines.push(`- **File**: \\`${relativePath}\\``);\n if (node.functionName) {\n lines.push(`- **Function**: \\`${node.functionName}\\``);\n }\n if (node.lineRange) {\n lines.push(`- **Lines**: ${node.lineRange.start} - ${node.lineRange.end}`);\n }\n lines.push('');\n\n // Metrics\n lines.push('## Complexity Metrics');\n lines.push('');\n lines.push('| Metric | Value | Threshold |');\n lines.push('|--------|-------|-----------|');\n lines.push(\n `| Cyclomatic Complexity | ${node.complexity.cyclomatic} | ${this.thresholds.high} (high) / ${this.thresholds.critical} (critical) |`\n );\n lines.push(\n `| Cognitive Complexity | ${node.complexity.cognitive} | 15 (high) / 25 (critical) |`\n );\n lines.push(`| Lines of Code | ${node.complexity.loc} | 50 (max) |`);\n lines.push(`| Max Nesting Depth | ${node.complexity.maxNestingDepth} | 4 (max) |`);\n lines.push('');\n\n // Issues\n if (node.issues.length > 0) {\n lines.push('## Issues Detected');\n lines.push('');\n for (const issue of node.issues) {\n lines.push(`- ${issue}`);\n }\n lines.push('');\n }\n\n // Recommendations\n if (node.recommendations.length > 0) {\n lines.push('## Recommendations');\n lines.push('');\n for (const rec of node.recommendations) {\n lines.push(`- ${rec}`);\n }\n lines.push('');\n }\n\n // Related nodes\n if (node.relatedNodes.length > 0) {\n lines.push('## Related Hotspots');\n lines.push('');\n for (const related of node.relatedNodes) {\n lines.push(`- [[${related}]]`);\n }\n lines.push('');\n }\n\n // Tags\n lines.push('## Tags');\n lines.push('');\n lines.push(node.tags.map((t) => `\\`${t}\\``).join(' '));\n lines.push('');\n\n return lines.join('\\n');\n }\n\n /**\n * Generate report markdown for entire project\n */\n generateProjectReport(analysis: ProjectAnalysis): string {\n const lines: string[] = [];\n\n lines.push('# Code Complexity Analysis Report');\n lines.push('');\n lines.push(`> Generated: ${new Date().toISOString()}`);\n lines.push('');\n\n // Summary\n lines.push('## Summary');\n lines.push('');\n lines.push(`- **Total Files Analyzed**: ${analysis.metrics.totalFiles}`);\n lines.push(`- **Total Functions**: ${analysis.metrics.totalFunctions}`);\n lines.push(`- **Total Lines of Code**: ${analysis.metrics.totalLoc}`);\n lines.push(`- **Analysis Duration**: ${analysis.timing.durationMs}ms`);\n lines.push('');\n\n // Averages\n lines.push('## Average Metrics');\n lines.push('');\n lines.push('| Metric | Value |');\n lines.push('|--------|-------|');\n lines.push(`| Cyclomatic Complexity | ${analysis.metrics.avgCyclomatic} |`);\n lines.push(`| Cognitive Complexity | ${analysis.metrics.avgCognitive} |`);\n lines.push(`| Maintainability Index | ${analysis.metrics.avgMaintainability} |`);\n lines.push('');\n\n // Distribution\n lines.push('## Complexity Distribution');\n lines.push('');\n lines.push('| Level | Functions | Files |');\n lines.push('|-------|-----------|-------|');\n const levels: ComplexityLevel[] = ['low', 'moderate', 'high', 'critical'];\n for (const level of levels) {\n lines.push(\n `| ${level} | ${analysis.metrics.complexityDistribution[level]} | ${analysis.metrics.filesByLevel[level]} |`\n );\n }\n lines.push('');\n\n // Top Complex Files\n if (analysis.metrics.topComplexFiles.length > 0) {\n lines.push('## Most Complex Files');\n lines.push('');\n lines.push('| File | Cyclomatic Complexity |');\n lines.push('|------|----------------------|');\n for (const file of analysis.metrics.topComplexFiles) {\n lines.push(`| ${file.path} | ${file.score} |`);\n }\n lines.push('');\n }\n\n // Top Complex Functions\n if (analysis.metrics.topComplexFunctions.length > 0) {\n lines.push('## Most Complex Functions');\n lines.push('');\n lines.push('| Function | File | Score |');\n lines.push('|----------|------|-------|');\n for (const fn of analysis.metrics.topComplexFunctions) {\n lines.push(`| ${fn.name} | ${fn.file} | ${fn.score} |`);\n }\n lines.push('');\n }\n\n // Hotspots\n if (analysis.hotspots.length > 0) {\n lines.push('## Hotspots Requiring Attention');\n lines.push('');\n for (const hotspot of analysis.hotspots.slice(0, 10)) {\n const relativePath = relative(this.projectRoot, hotspot.filePath);\n lines.push(`### ${basename(hotspot.filePath)}`);\n lines.push('');\n lines.push(`- **Path**: \\`${relativePath}\\``);\n lines.push(`- **Complexity Level**: ${hotspot.level}`);\n lines.push(`- **Functions**: ${hotspot.functions.length}`);\n lines.push(`- **Complex Functions**: ${hotspot.complexFunctions.length}`);\n lines.push('');\n\n if (hotspot.complexFunctions.length > 0) {\n lines.push('**Complex Functions:**');\n for (const fn of hotspot.complexFunctions) {\n lines.push(`- \\`${fn.name}\\` (CC: ${fn.complexity.cyclomatic})`);\n }\n lines.push('');\n }\n }\n }\n\n return lines.join('\\n');\n }\n\n // ==========================================================================\n // Helper Methods\n // ==========================================================================\n\n private generateFunctionTitle(fn: FunctionAnalysis): string {\n const prefix = fn.parentName ? `${fn.parentName}.` : '';\n return `Complex Function: ${prefix}${fn.name}`;\n }\n\n private generateFunctionTags(fn: FunctionAnalysis): string[] {\n const tags = ['complexity', fn.level, fn.kind];\n\n if (fn.isAsync) tags.push('async');\n if (fn.complexity.cyclomatic >= this.thresholds.critical) {\n tags.push('needs-refactoring');\n }\n if (fn.complexity.maxNestingDepth > 4) {\n tags.push('deep-nesting');\n }\n\n return tags;\n }\n\n private generateFileTags(file: FileAnalysis): string[] {\n const tags = ['complexity', file.level, 'file'];\n\n if (file.complexFunctions.length > 3) {\n tags.push('multiple-hotspots');\n }\n if (file.complexity.maintainabilityIndex < 50) {\n tags.push('low-maintainability');\n }\n\n return tags;\n }\n\n private generateFileIssues(file: FileAnalysis): string[] {\n const issues: string[] = [];\n\n if (file.complexFunctions.length > 0) {\n issues.push(\n `Contains ${file.complexFunctions.length} complex function(s) that need attention`\n );\n }\n\n if (file.complexity.maintainabilityIndex < 50) {\n issues.push(\n `Low maintainability index (${file.complexity.maintainabilityIndex})`\n );\n }\n\n if (file.complexity.avgCyclomatic > 10) {\n issues.push(\n `High average cyclomatic complexity (${file.complexity.avgCyclomatic})`\n );\n }\n\n return issues;\n }\n\n private generateFileRecommendations(file: FileAnalysis): string[] {\n const recommendations: string[] = [];\n\n if (file.complexFunctions.length > 3) {\n recommendations.push('Consider splitting this file into smaller modules');\n }\n\n if (file.complexity.avgCyclomatic > 10) {\n recommendations.push('Refactor complex functions to reduce average complexity');\n }\n\n if (file.complexity.functionCount > 20) {\n recommendations.push('Large number of functions - consider organizing into classes');\n }\n\n return recommendations;\n }\n\n private generateDescription(node: ComplexityNode): string {\n if (node.type === 'complex-function') {\n return `Complex function with cyclomatic complexity ${node.complexity.cyclomatic}`;\n }\n return `Complex file containing ${node.relatedNodes.length} complexity hotspots`;\n }\n\n private getSeverityEmoji(level: ComplexityLevel): string {\n switch (level) {\n case 'critical':\n return '🔴';\n case 'high':\n return '🟠';\n case 'moderate':\n return '🟡';\n case 'low':\n return '🟢';\n }\n }\n}\n\n// ============================================================================\n// Factory Functions\n// ============================================================================\n\n/**\n * Create a complexity graph generator\n */\nexport function createGraphGenerator(\n projectRoot: string,\n config?: Partial<AnalyzerConfig>\n): ComplexityGraphGenerator {\n return new ComplexityGraphGenerator(projectRoot, config);\n}\n\n/**\n * Generate knowledge graph nodes from analysis\n */\nexport function generateComplexityNodes(\n analysis: ProjectAnalysis,\n projectRoot: string\n): { nodes: ComplexityNode[]; edges: ComplexityEdge[] } {\n const generator = new ComplexityGraphGenerator(projectRoot);\n const nodes = generator.generateNodes(analysis);\n const edges = generator.generateEdges(nodes, analysis);\n return { nodes, edges };\n}\n"],"names":[],"mappings":"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"}
|