@lowgular/code-graph 0.0.1 → 0.1.1

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.
Files changed (179) hide show
  1. package/bin/cli.js +10 -0
  2. package/code-graph-v2/code.graph.js +37 -0
  3. package/code-graph-v2/config-from-query.js +131 -0
  4. package/code-graph-v2/extractors/extractor.js +27 -0
  5. package/code-graph-v2/extractors/index.js +1 -0
  6. package/code-graph-v2/graph-builder/code-graph.builder.js +49 -0
  7. package/code-graph-v2/graph-builder/index.js +1 -0
  8. package/code-graph-v2/graph-builder/node.processor.js +22 -0
  9. package/{libs/cli/code-graph/src/lib/v2 → code-graph-v2}/graph-builder/relationship.processor.js +11 -35
  10. package/code-graph-v2/graph-builder/type.processor.js +21 -0
  11. package/code-graph-v2/index.js +4 -0
  12. package/code-graph-v2/tools/build-code-graph.tool.js +19 -0
  13. package/code-graph-v2/utils.js +34 -0
  14. package/codegular/index.js +5 -0
  15. package/codegular/node.js +71 -0
  16. package/codegular/program.js +100 -0
  17. package/{libs/core/codegular/src/lib → codegular}/string.js +6 -53
  18. package/{libs/core/codegular/src/lib → codegular}/type-checker.js +3 -40
  19. package/codegular/type.js +356 -0
  20. package/{libs/core/codegular/src/lib → codegular}/utils.js +50 -62
  21. package/cypher/index.js +1 -0
  22. package/{libs/cli/cypher/src → cypher}/lib/executor/condition-evaluator.js +2 -25
  23. package/cypher/lib/executor/executor.js +60 -0
  24. package/cypher/lib/executor/graph.js +0 -0
  25. package/{libs/cli/cypher/src → cypher}/lib/executor/match-engine.js +4 -27
  26. package/{libs/cli/cypher/src → cypher}/lib/executor/pattern-matcher.js +2 -25
  27. package/{libs/cli/cypher/src → cypher}/lib/executor/relationship-navigator.js +2 -25
  28. package/{libs/cli/cypher/src → cypher}/lib/executor/result-formatter.js +37 -31
  29. package/{libs/cli/cypher/src → cypher}/lib/executor/traverse-engine.js +4 -27
  30. package/cypher/lib/executor/utils.js +14 -0
  31. package/cypher/lib/graph.stub.js +38 -0
  32. package/cypher/lib/index.js +32 -0
  33. package/{libs/cli/cypher/src → cypher}/lib/lexer.js +4 -26
  34. package/{libs/cli/cypher/src → cypher}/lib/parser.js +119 -135
  35. package/{libs/cli/cypher/src → cypher}/lib/validator/query-validator.js +12 -32
  36. package/{libs/cli/cypher/src → cypher}/lib/validator/supported-features.config.js +2 -30
  37. package/{libs/cli/cypher/src → cypher}/lib/validator/unsupported-features.config.js +8 -34
  38. package/cypher-cli.js +41 -0
  39. package/infra/code-graph.js +147 -0
  40. package/main.js +0 -43
  41. package/package.json +25 -7
  42. package/resources-cli.js +75 -0
  43. package/run-cli.js +43 -0
  44. package/apps/code-graph/src/main.js +0 -50
  45. package/libs/cli/code-graph/src/index.js +0 -39
  46. package/libs/cli/code-graph/src/lib/class-declarations/abstractions/service.js +0 -72
  47. package/libs/cli/code-graph/src/lib/class-declarations/abstractions/service.stateful.js +0 -68
  48. package/libs/cli/code-graph/src/lib/class-declarations/class-declarations.doc.js +0 -147
  49. package/libs/cli/code-graph/src/lib/class-declarations/class-declarations.graph.js +0 -55
  50. package/libs/cli/code-graph/src/lib/class-declarations/index.js +0 -27
  51. package/libs/cli/code-graph/src/lib/code.graph.factory.js +0 -63
  52. package/libs/cli/code-graph/src/lib/code.graph.js +0 -62
  53. package/libs/cli/code-graph/src/lib/core/core.js +0 -58
  54. package/libs/cli/code-graph/src/lib/core.js +0 -85
  55. package/libs/cli/code-graph/src/lib/decorators/index.js +0 -36
  56. package/libs/cli/code-graph/src/lib/docs/index.js +0 -21
  57. package/libs/cli/code-graph/src/lib/docs/specs.js +0 -36
  58. package/libs/cli/code-graph/src/lib/expressions/call-expressions.graph.js +0 -28
  59. package/libs/cli/code-graph/src/lib/fixtures/reactive-event-bus/src/app/examples.event-bus.js +0 -53
  60. package/libs/cli/code-graph/src/lib/method-declarations/index.js +0 -23
  61. package/libs/cli/code-graph/src/lib/method-declarations/method-declarations.doc.js +0 -106
  62. package/libs/cli/code-graph/src/lib/method-declarations/method-declarations.graph.js +0 -56
  63. package/libs/cli/code-graph/src/lib/parameters/index.js +0 -42
  64. package/libs/cli/code-graph/src/lib/property-declarations/abstractions/reactive-state.evals.js +0 -139
  65. package/libs/cli/code-graph/src/lib/property-declarations/abstractions/reactive-state.js +0 -104
  66. package/libs/cli/code-graph/src/lib/property-declarations/index.js +0 -25
  67. package/libs/cli/code-graph/src/lib/property-declarations/property-declarations.doc.js +0 -74
  68. package/libs/cli/code-graph/src/lib/property-declarations/property-declarations.graph.js +0 -43
  69. package/libs/cli/code-graph/src/lib/tools/index.js +0 -34
  70. package/libs/cli/code-graph/src/lib/tools/match-code-graph.tool.js +0 -64
  71. package/libs/cli/code-graph/src/lib/types/index.js +0 -99
  72. package/libs/cli/code-graph/src/lib/v2/extractors/extractor.doc.js +0 -345
  73. package/libs/cli/code-graph/src/lib/v2/extractors/extractor.js +0 -52
  74. package/libs/cli/code-graph/src/lib/v2/extractors/index.js +0 -23
  75. package/libs/cli/code-graph/src/lib/v2/graph-builder/code-graph.builder.js +0 -76
  76. package/libs/cli/code-graph/src/lib/v2/graph-builder/index.js +0 -21
  77. package/libs/cli/code-graph/src/lib/v2/graph-builder/node.processor.js +0 -48
  78. package/libs/cli/code-graph/src/lib/v2/graph-builder/type.processor.js +0 -45
  79. package/libs/cli/code-graph/src/lib/v2/index.js +0 -37
  80. package/libs/cli/code-graph/src/lib/v2/tools/build-code-graph.doc.js +0 -220
  81. package/libs/cli/code-graph/src/lib/v2/tools/build-code-graph.tool.js +0 -42
  82. package/libs/cli/cypher/src/index.js +0 -25
  83. package/libs/cli/cypher/src/lib/docs/features/advanced-optional-match.feature.js +0 -277
  84. package/libs/cli/cypher/src/lib/docs/features/anonymous-relationship.feature.js +0 -69
  85. package/libs/cli/cypher/src/lib/docs/features/anonymous-variable-length.feature.js +0 -105
  86. package/libs/cli/cypher/src/lib/docs/features/basic-filtering.feature.js +0 -70
  87. package/libs/cli/cypher/src/lib/docs/features/basic-optional-match.feature.js +0 -99
  88. package/libs/cli/cypher/src/lib/docs/features/basic-relationship.feature.js +0 -125
  89. package/libs/cli/cypher/src/lib/docs/features/index.js +0 -51
  90. package/libs/cli/cypher/src/lib/docs/features/limit.feature.js +0 -50
  91. package/libs/cli/cypher/src/lib/docs/features/match-nodes.feature.js +0 -106
  92. package/libs/cli/cypher/src/lib/docs/features/multiple-relationship-types.feature.js +0 -105
  93. package/libs/cli/cypher/src/lib/docs/features/order-by.feature.js +0 -143
  94. package/libs/cli/cypher/src/lib/docs/features/property-matching.feature.js +0 -152
  95. package/libs/cli/cypher/src/lib/docs/features/relationship-without-variable.feature.js +0 -48
  96. package/libs/cli/cypher/src/lib/docs/features/return-statement.feature.js +0 -65
  97. package/libs/cli/cypher/src/lib/docs/features/unidirected-relationship.feature.js +0 -82
  98. package/libs/cli/cypher/src/lib/docs/features/variable-length-path.feature.js +0 -136
  99. package/libs/cli/cypher/src/lib/docs/features/where-conditional.feature.js +0 -187
  100. package/libs/cli/cypher/src/lib/docs/features/where-operators.feature.js +0 -302
  101. package/libs/cli/cypher/src/lib/docs/prompts.js +0 -36
  102. package/libs/cli/cypher/src/lib/docs/specs.js +0 -181
  103. package/libs/cli/cypher/src/lib/executor/executor.js +0 -83
  104. package/libs/cli/cypher/src/lib/executor/graph.js +0 -15
  105. package/libs/cli/cypher/src/lib/executor/utils.js +0 -37
  106. package/libs/cli/cypher/src/lib/graph.stub.js +0 -63
  107. package/libs/cli/cypher/src/lib/index.js +0 -74
  108. package/libs/cli/shared/src/index.js +0 -53
  109. package/libs/cli/shared/src/lib/admin-token.js +0 -121
  110. package/libs/cli/shared/src/lib/config.js +0 -49
  111. package/libs/cli/shared/src/lib/consts.js +0 -57
  112. package/libs/cli/shared/src/lib/core.js +0 -46
  113. package/libs/cli/shared/src/lib/infrastructure/cli.js +0 -47
  114. package/libs/cli/shared/src/lib/infrastructure/config.js +0 -47
  115. package/libs/cli/shared/src/lib/infrastructure/config.reporitory.js +0 -51
  116. package/libs/cli/shared/src/lib/infrastructure/formatters/console-formatter.js +0 -96
  117. package/libs/cli/shared/src/lib/infrastructure/formatters/index.js +0 -41
  118. package/libs/cli/shared/src/lib/infrastructure/formatters/json-formatter.js +0 -64
  119. package/libs/cli/shared/src/lib/infrastructure/formatters/markdown-formatter.js +0 -120
  120. package/libs/cli/shared/src/lib/infrastructure/formatters/types.js +0 -15
  121. package/libs/cli/shared/src/lib/infrastructure/formatters/utils.js +0 -72
  122. package/libs/cli/shared/src/lib/infrastructure/git.js +0 -147
  123. package/libs/cli/shared/src/lib/infrastructure/http.js +0 -257
  124. package/libs/cli/shared/src/lib/infrastructure/markdown.js +0 -95
  125. package/libs/cli/shared/src/lib/infrastructure/transformers/embeddings.js +0 -88
  126. package/libs/cli/shared/src/lib/infrastructure/transformers/index.js +0 -25
  127. package/libs/cli/shared/src/lib/infrastructure/transformers/rag-eval.js +0 -154
  128. package/libs/cli/shared/src/lib/infrastructure/transformers/similarity.js +0 -210
  129. package/libs/cli/shared/src/lib/infrastructure/workspace.js +0 -297
  130. package/libs/cli/shared/src/lib/infrastructure/yaml.js +0 -237
  131. package/libs/cli/shared/src/lib/lowgular.config.js +0 -120
  132. package/libs/cli/shared/src/lib/token.js +0 -135
  133. package/libs/cli/shared/src/lib/utils/solution.util.js +0 -35
  134. package/libs/cli/shared/src/lib/utils/utils.js +0 -89
  135. package/libs/cli/typescript/src/index.js +0 -21
  136. package/libs/cli/typescript/src/lib/base/index.js +0 -23
  137. package/libs/cli/typescript/src/lib/base/nameable.js +0 -34
  138. package/libs/cli/typescript/src/lib/base/nodeable.js +0 -36
  139. package/libs/cli/typescript/src/lib/class.implementation.js +0 -52
  140. package/libs/cli/typescript/src/lib/core/declaration.registry.js +0 -107
  141. package/libs/cli/typescript/src/lib/core/design-pattern.js +0 -55
  142. package/libs/cli/typescript/src/lib/core/index.js +0 -35
  143. package/libs/cli/typescript/src/lib/core/navigable-declaration.js +0 -69
  144. package/libs/cli/typescript/src/lib/core/program-context.js +0 -71
  145. package/libs/cli/typescript/src/lib/core/syntax-kind.utils.js +0 -40
  146. package/libs/cli/typescript/src/lib/core/type.js +0 -374
  147. package/libs/cli/typescript/src/lib/declaration.abstraction.js +0 -90
  148. package/libs/cli/typescript/src/lib/decorator.implementation.js +0 -35
  149. package/libs/cli/typescript/src/lib/enum.implementation.js +0 -35
  150. package/libs/cli/typescript/src/lib/function-declaration.implementation.js +0 -35
  151. package/libs/cli/typescript/src/lib/index.js +0 -57
  152. package/libs/cli/typescript/src/lib/interface.implementation.js +0 -51
  153. package/libs/cli/typescript/src/lib/members/method-abstraction.resolver.js +0 -90
  154. package/libs/cli/typescript/src/lib/members/method-declaration.implementation.js +0 -44
  155. package/libs/cli/typescript/src/lib/members/method-signature.implementation.js +0 -46
  156. package/libs/cli/typescript/src/lib/members/method.util.js +0 -32
  157. package/libs/cli/typescript/src/lib/members/parameter.implementation.js +0 -38
  158. package/libs/cli/typescript/src/lib/members/property-declaration.implementation.js +0 -64
  159. package/libs/cli/typescript/src/lib/members/property-signature.implementation.js +0 -34
  160. package/libs/cli/typescript/src/lib/members/property.util.js +0 -61
  161. package/libs/cli/typescript/src/lib/members/statements/expressions/binary-expression.implementation.js +0 -42
  162. package/libs/cli/typescript/src/lib/members/statements/expressions/call-expression.implementation.js +0 -114
  163. package/libs/cli/typescript/src/lib/members/statements/expressions/expression.abstraction.js +0 -188
  164. package/libs/cli/typescript/src/lib/members/statements/expressions/property-access-expression.implementation.js +0 -35
  165. package/libs/cli/typescript/src/lib/members/statements/expressions/unary-expression.implementation.js +0 -51
  166. package/libs/cli/typescript/src/lib/members/statements/statement.implementation.js +0 -49
  167. package/libs/cli/typescript/src/lib/members/statements/utils.js +0 -51
  168. package/libs/cli/typescript/src/lib/plugins/built-in.plugin.js +0 -258
  169. package/libs/cli/typescript/src/lib/plugins/plugin.interface.js +0 -15
  170. package/libs/cli/typescript/src/lib/plugins/rxjs.plugin.js +0 -228
  171. package/libs/cli/typescript/src/lib/plugins/signal.plugin.js +0 -126
  172. package/libs/cli/typescript/src/lib/plugins/stubs.js +0 -66
  173. package/libs/cli/typescript/src/lib/type-alias.implementation.js +0 -72
  174. package/libs/cli/typescript/src/lib/utils.js +0 -39
  175. package/libs/cli/typescript/src/lib/variable-declaration.implementation.js +0 -35
  176. package/libs/core/codegular/src/index.js +0 -21
  177. package/libs/core/codegular/src/lib/index.js +0 -29
  178. package/libs/core/codegular/src/lib/node.js +0 -112
  179. package/libs/core/codegular/src/lib/program.js +0 -92
@@ -1,52 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var extractor_exports = {};
19
- __export(extractor_exports, {
20
- executeExtractor: () => executeExtractor,
21
- extractNodeProperties: () => extractNodeProperties
22
- });
23
- module.exports = __toCommonJS(extractor_exports);
24
- const ts = require("typescript");
25
- function executeExtractor(code, context) {
26
- try {
27
- const fn = new Function(
28
- ...Object.keys(context),
29
- `
30
- return ${code}
31
- `
32
- );
33
- return fn(...Object.values(context));
34
- } catch (error) {
35
- throw new Error(`Extractor execution failed: ${error.message}`);
36
- }
37
- }
38
- function extractNodeProperties(context, propertyExectorMap = {}) {
39
- const properties = {};
40
- for (const [propertyName, extractorCode] of Object.entries(
41
- propertyExectorMap
42
- )) {
43
- const value = executeExtractor(extractorCode, context);
44
- properties[propertyName] = value;
45
- }
46
- return properties;
47
- }
48
- // Annotate the CommonJS export names for ESM import in node:
49
- 0 && (module.exports = {
50
- executeExtractor,
51
- extractNodeProperties
52
- });
@@ -1,23 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __copyProps = (to, from, except, desc) => {
6
- if (from && typeof from === "object" || typeof from === "function") {
7
- for (let key of __getOwnPropNames(from))
8
- if (!__hasOwnProp.call(to, key) && key !== except)
9
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
- }
11
- return to;
12
- };
13
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
14
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
- var extractors_exports = {};
16
- module.exports = __toCommonJS(extractors_exports);
17
- __reExport(extractors_exports, require("./extractor"), module.exports);
18
- __reExport(extractors_exports, require("./extractor.doc"), module.exports);
19
- // Annotate the CommonJS export names for ESM import in node:
20
- 0 && (module.exports = {
21
- ...require("./extractor"),
22
- ...require("./extractor.doc")
23
- });
@@ -1,76 +0,0 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __export = (target, all) => {
8
- for (var name in all)
9
- __defProp(target, name, { get: all[name], enumerable: true });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from))
14
- if (!__hasOwnProp.call(to, key) && key !== except)
15
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
- }
17
- return to;
18
- };
19
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
- // If the importer is in node compatibility mode or this is not an ESM
21
- // file that has been converted to a CommonJS file using a Babel-
22
- // compatible transform (i.e. "__esModule" has not been set), then set
23
- // "default" to the CommonJS "module.exports" for node compatibility.
24
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
- mod
26
- ));
27
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
- var code_graph_builder_exports = {};
29
- __export(code_graph_builder_exports, {
30
- buildCodeGraph: () => buildCodeGraph
31
- });
32
- module.exports = __toCommonJS(code_graph_builder_exports);
33
- var import_typescript = require("@cli/typescript");
34
- var import_codegular = require("@core/codegular");
35
- var ts = __toESM(require("typescript"));
36
- var import_node = require("./node.processor");
37
- const buildCodeGraph = (program, config) => {
38
- const codeGraph = {
39
- nodesById: {},
40
- edgesBySource: {},
41
- edgesByTarget: {}
42
- };
43
- const sourceFiles = (0, import_codegular.getSolutionSourceFiles)(program);
44
- const context = {
45
- typeChecker: program.getTypeChecker(),
46
- typeResolutionTracker: new import_typescript.TypeResolutionTracker(),
47
- declarationRegistry: new import_typescript.DeclarationRegistry()
48
- };
49
- sourceFiles.forEach((sourceFile) => {
50
- Object.keys(config.nodeExtractors).forEach((kindName) => {
51
- const nodes = (0, import_codegular.getDescendantsByKind)(sourceFile, ts.SyntaxKind[kindName]);
52
- nodes.forEach((node) => {
53
- const extractorContext = {
54
- args: {
55
- current: node,
56
- sourceFile,
57
- typeChecker: program.getTypeChecker(),
58
- ts
59
- },
60
- helpers: {
61
- getDescendantsBy: import_codegular.getDescendantsBy,
62
- getAncestorsBy: import_codegular.getAncestorsBy,
63
- getType: (node2) => (0, import_typescript.getType)(node2, context.typeChecker, context.typeResolutionTracker),
64
- getDeclarations: (node2) => (0, import_codegular.getDeclarations)(node2, context.typeChecker)
65
- }
66
- };
67
- (0, import_node.processNode)(extractorContext, config.nodeExtractors, codeGraph);
68
- });
69
- });
70
- });
71
- return codeGraph;
72
- };
73
- // Annotate the CommonJS export names for ESM import in node:
74
- 0 && (module.exports = {
75
- buildCodeGraph
76
- });
@@ -1,21 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __copyProps = (to, from, except, desc) => {
6
- if (from && typeof from === "object" || typeof from === "function") {
7
- for (let key of __getOwnPropNames(from))
8
- if (!__hasOwnProp.call(to, key) && key !== except)
9
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
- }
11
- return to;
12
- };
13
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
14
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
- var graph_builder_exports = {};
16
- module.exports = __toCommonJS(graph_builder_exports);
17
- __reExport(graph_builder_exports, require("./code-graph.builder"), module.exports);
18
- // Annotate the CommonJS export names for ESM import in node:
19
- 0 && (module.exports = {
20
- ...require("./code-graph.builder")
21
- });
@@ -1,48 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var node_processor_exports = {};
19
- __export(node_processor_exports, {
20
- processNode: () => processNode
21
- });
22
- module.exports = __toCommonJS(node_processor_exports);
23
- var import_typescript = require("@cli/typescript");
24
- var import_codegular = require("@core/codegular");
25
- var import_core = require("../../core/core");
26
- var import_extractors = require("../extractors");
27
- var import_relationship = require("./relationship.processor");
28
- const ts = require("typescript");
29
- const processNode = (context, nodeExtractors, codeGraph) => {
30
- const nodeId = (0, import_core.generateNodeId)({
31
- filePath: (0, import_codegular.getFilePath)(context.args.current),
32
- range: (0, import_codegular.getRange)(context.args.current)
33
- });
34
- const kindName = (0, import_typescript.getSyntaxKindName)(context.args.current.kind);
35
- const nodeConfig = nodeExtractors[kindName];
36
- const graphNode = {
37
- ...nodeConfig && nodeConfig.properties ? (0, import_extractors.extractNodeProperties)(context, nodeConfig.properties) : {},
38
- id: nodeId,
39
- labels: [kindName]
40
- };
41
- (0, import_typescript.addNode)(codeGraph, graphNode);
42
- (0, import_relationship.processRelationships)(nodeId, context, nodeConfig, codeGraph);
43
- return graphNode;
44
- };
45
- // Annotate the CommonJS export names for ESM import in node:
46
- 0 && (module.exports = {
47
- processNode
48
- });
@@ -1,45 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var type_processor_exports = {};
19
- __export(type_processor_exports, {
20
- processType: () => processType
21
- });
22
- module.exports = __toCommonJS(type_processor_exports);
23
- var import_typescript = require("@cli/typescript");
24
- var import_extractors = require("../extractors");
25
- var import_relationship = require("./relationship.processor");
26
- const ts = require("typescript");
27
- const processType = (context, nodeExtractors, codeGraph) => {
28
- const nodeId = context.args.typeChecker.typeToString(
29
- context.args.current
30
- );
31
- const kindName = "Type";
32
- const nodeConfig = nodeExtractors[kindName];
33
- const graphNode = {
34
- ...nodeConfig && nodeConfig.properties ? (0, import_extractors.extractNodeProperties)(context, nodeConfig.properties) : {},
35
- id: nodeId,
36
- labels: [kindName]
37
- };
38
- (0, import_typescript.addNode)(codeGraph, graphNode);
39
- (0, import_relationship.processRelationships)(nodeId, context, nodeConfig, codeGraph);
40
- return graphNode;
41
- };
42
- // Annotate the CommonJS export names for ESM import in node:
43
- 0 && (module.exports = {
44
- processType
45
- });
@@ -1,37 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var v2_exports = {};
20
- __export(v2_exports, {
21
- TOOLSV2: () => TOOLSV2
22
- });
23
- module.exports = __toCommonJS(v2_exports);
24
- var import_build_code_graph = require("./tools/build-code-graph.tool");
25
- __reExport(v2_exports, require("./extractors"), module.exports);
26
- __reExport(v2_exports, require("./graph-builder"), module.exports);
27
- __reExport(v2_exports, require("./tools/build-code-graph.doc"), module.exports);
28
- const TOOLSV2 = {
29
- buildCodeGraph: import_build_code_graph.buildCodeGraphTool
30
- };
31
- // Annotate the CommonJS export names for ESM import in node:
32
- 0 && (module.exports = {
33
- TOOLSV2,
34
- ...require("./extractors"),
35
- ...require("./graph-builder"),
36
- ...require("./tools/build-code-graph.doc")
37
- });
@@ -1,220 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var build_code_graph_doc_exports = {};
19
- __export(build_code_graph_doc_exports, {
20
- BUILD_CODE_GRAPH_DOC: () => BUILD_CODE_GRAPH_DOC
21
- });
22
- module.exports = __toCommonJS(build_code_graph_doc_exports);
23
- var import_cypher = require("@cli/cypher");
24
- var import_core = require("../../core/core");
25
- const BUILD_CODE_GRAPH_DOC = `# Build Code Graph
26
-
27
- Tool for building a code graph from TypeScript source files using AST-based extraction and relationship configuration.
28
-
29
- ## Overview
30
-
31
- The \`build_code_graph\` tool allows you to:
32
- - Extract nodes from TypeScript AST
33
- - Extract properties from nodes using extractor functions code that you provide
34
- - Create relationships between nodes using AST traversal functions code that you provide
35
- - Build a graph structure that will be saved to a file
36
-
37
- ## Graph Structure
38
-
39
- The tool creates a graph with:
40
-
41
- ### Nodes
42
- - **id**: Unique identifier (filePath + range)
43
- - **labels**: Array of SyntaxKind names
44
- - **properties**: Custom properties defined in configuration
45
-
46
- ### Edges
47
- - **source**: Source node ID
48
- - **target**: Target node ID
49
- - **type**: Relationship type name (from configuration)
50
-
51
- ### Graph File
52
- - Saved to \`code-graph.json\` (or path specified in \`graphPath\`)
53
- - Structure: \`{ nodesById, edgesBySource, edgesByTarget }\`
54
-
55
- The extractor loops through the SourceFiles in the project (does not include node_modules) and extracts the nodes based on the nodeExtractors configuration.
56
-
57
- ## ExtractorGraphConfig
58
-
59
- ${(0, import_cypher.mb)(
60
- `
61
- export type ExtractorGraphConfig = {
62
- nodeExtractors: NodeExtractors;
63
- };
64
-
65
- export type NodeExtractors = Record<string, NodeExtractorConfig>;
66
-
67
- export type NodeExtractorConfig = {
68
- properties: Record<string, string>; // property name -> Extractor function code that you provide to extract the property
69
- relationships?: Record<
70
- string, // name of relationship: HAS_PARAMETER, HAS_CHILD, HAS_DESCENDANT, etc.
71
- {
72
- extractorCode: string; // Extractor function code that you provide to extract the relationship
73
- nodeExtractors: NodeExtractors;
74
- }
75
- >;
76
- };
77
-
78
- `,
79
- "typescript"
80
- )}
81
-
82
- ### Extracting Nodes
83
-
84
- For each node, the extractor will execute the properties extractor code and create a node with the properties.
85
-
86
- ${(0, import_cypher.mb)(
87
- `{
88
- "ClassDeclaration": {
89
- "properties": {
90
- "name": "args.current.name.getText();", // this will map ClassDeclaration name text to property 'name'
91
- "filePath": "args.sourceFile.fileName;" // this will map current SourceFile path to property 'filePath'
92
- }
93
- }
94
- }
95
- `,
96
- "json"
97
- )}
98
-
99
- This will create ClassDeclaration nodes with \`name\` and \`filePath\` properties.
100
-
101
- ### Property Configuration
102
-
103
- Properties are defined as a map where:
104
- - **Key**: Property name (can be anything you want)
105
- - **Value**: Extractor function name (must be a predefined function from the propertyExtractorContents map)
106
-
107
- ${(0, import_cypher.mb)(
108
- `{
109
- "properties": {
110
- "name": "args.current.name?.getText();",
111
- "filePath": "args.sourceFile.fileName;",
112
- "hasDecorators": "args.ts.getDecorators(args.current)?.length > 0 || false;"
113
- }
114
- }
115
- `,
116
- "json"
117
- )}
118
-
119
- **Return Types for Properties:**
120
- - Primitive types: \`string\`, \`number\`, \`boolean\`
121
- - Arrays of primitives: \`string[]\`, \`number[]\`, \`boolean[]\`
122
- - \`null\` and \`undefined\` are allowed but will be ignored (property won't be set)
123
-
124
- Related resource:
125
- ${(0, import_core.ml)({
126
- name: "Extractors",
127
- id: "build-code-graph-extractors"
128
- })}
129
-
130
- ## Relationships
131
-
132
- If the extractor config has relationships property, then you must strictly follow the following example:
133
-
134
- ${(0, import_cypher.mb)(
135
- JSON.stringify(
136
- {
137
- ClassDeclaration: {
138
- properties: {
139
- name: "args.current.name?.getText();"
140
- },
141
- relationships: {
142
- HAS_METHOD: {
143
- extractorCode: "helpers.getDescendantsBy(args.current, (node) => node.kind === args.ts.SyntaxKind.MethodDeclaration);",
144
- nodeExtractors: {
145
- MethodDeclaration: {
146
- properties: {
147
- name: "args.current.name?.getText();"
148
- }
149
- }
150
- }
151
- }
152
- }
153
- }
154
- },
155
- null,
156
- 2
157
- ),
158
- "json"
159
- )}
160
-
161
- This example will create:
162
- - **nodes**: ClassDeclaration and MethodDeclarations
163
- - **edges**: HAS_METHOD relationship linking ClassDeclaration to MethodDeclaration
164
-
165
- **Important Notes:**
166
- - The relationship extractor code must return an array of nodes (\`ts.Node[]\` or \`ts.Type[]\`)
167
- - Each returned node will be processed according to the nested \`nodeExtractors\` configuration
168
- - Relationships can be nested to create multi-level graphs
169
-
170
- ### Nested Relationships
171
-
172
- Relationships can be nested to create chains:
173
-
174
- ${(0, import_cypher.mb)(
175
- JSON.stringify(
176
- {
177
- ClassDeclaration: {
178
- relationships: {
179
- HAS_METHOD: {
180
- extractorCode: "helpers.getDescendantsBy(args.current, (node) => node.kind === args.ts.SyntaxKind.MethodDeclaration);",
181
- nodeExtractors: {
182
- MethodDeclaration: {
183
- relationships: {
184
- HAS_PARAMETER: {
185
- extractorCode: "helpers.getDescendantsBy(args.current, (node) => node.kind === args.ts.SyntaxKind.Parameter);",
186
- nodeExtractors: {
187
- Parameter: {
188
- properties: {
189
- name: "args.current.name?.getText();"
190
- }
191
- }
192
- }
193
- }
194
- }
195
- }
196
- }
197
- }
198
- }
199
- }
200
- },
201
- null,
202
- 2
203
- ),
204
- "json"
205
- )}
206
-
207
- This creates:
208
- - \`ClassDeclaration -[:HAS_METHOD]-> MethodDeclaration\`
209
- - \`MethodDeclaration -[:HAS_PARAMETER]-> Parameter\`
210
-
211
- Related resource:
212
- ${(0, import_core.ml)({
213
- name: "Extractors",
214
- id: "build-code-graph-extractors"
215
- })}
216
- `;
217
- // Annotate the CommonJS export names for ESM import in node:
218
- 0 && (module.exports = {
219
- BUILD_CODE_GRAPH_DOC
220
- });
@@ -1,42 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var build_code_graph_tool_exports = {};
19
- __export(build_code_graph_tool_exports, {
20
- buildCodeGraphTool: () => buildCodeGraphTool
21
- });
22
- module.exports = __toCommonJS(build_code_graph_tool_exports);
23
- var import_codegular = require("@core/codegular");
24
- var import_fs = require("fs");
25
- var import_graph_builder = require("../graph-builder");
26
- async function buildCodeGraphTool(tsConfigPath, config) {
27
- const program = (0, import_codegular.createProgramFromTsConfig)(tsConfigPath);
28
- const graph = (0, import_graph_builder.buildCodeGraph)(program, config);
29
- const nodeCount = Object.keys(graph.nodesById).length;
30
- const edgeCount = Object.values(graph.edgesBySource).flat().length;
31
- const graphPath = tsConfigPath.replace("tsconfig.json", "code-graph.json");
32
- (0, import_fs.writeFileSync)(graphPath, JSON.stringify(graph, null, 2));
33
- return {
34
- graphPath,
35
- nodeCount,
36
- edgeCount
37
- };
38
- }
39
- // Annotate the CommonJS export names for ESM import in node:
40
- 0 && (module.exports = {
41
- buildCodeGraphTool
42
- });
@@ -1,25 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __copyProps = (to, from, except, desc) => {
6
- if (from && typeof from === "object" || typeof from === "function") {
7
- for (let key of __getOwnPropNames(from))
8
- if (!__hasOwnProp.call(to, key) && key !== except)
9
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
- }
11
- return to;
12
- };
13
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
14
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
- var src_exports = {};
16
- module.exports = __toCommonJS(src_exports);
17
- __reExport(src_exports, require("./lib/docs/features"), module.exports);
18
- __reExport(src_exports, require("./lib/docs/specs"), module.exports);
19
- __reExport(src_exports, require("./lib/index"), module.exports);
20
- // Annotate the CommonJS export names for ESM import in node:
21
- 0 && (module.exports = {
22
- ...require("./lib/docs/features"),
23
- ...require("./lib/docs/specs"),
24
- ...require("./lib/index")
25
- });