@archkit/cli 0.1.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.
Files changed (87) hide show
  1. package/LICENSE +21 -0
  2. package/dist/.tsbuildinfo +1 -0
  3. package/dist/commands/build.d.ts +5 -0
  4. package/dist/commands/build.d.ts.map +1 -0
  5. package/dist/commands/build.js +33 -0
  6. package/dist/commands/build.js.map +1 -0
  7. package/dist/commands/context.d.ts +5 -0
  8. package/dist/commands/context.d.ts.map +1 -0
  9. package/dist/commands/context.js +31 -0
  10. package/dist/commands/context.js.map +1 -0
  11. package/dist/commands/deps.d.ts +5 -0
  12. package/dist/commands/deps.d.ts.map +1 -0
  13. package/dist/commands/deps.js +48 -0
  14. package/dist/commands/deps.js.map +1 -0
  15. package/dist/commands/knowledge.d.ts +18 -0
  16. package/dist/commands/knowledge.d.ts.map +1 -0
  17. package/dist/commands/knowledge.js +148 -0
  18. package/dist/commands/knowledge.js.map +1 -0
  19. package/dist/commands/query.d.ts +5 -0
  20. package/dist/commands/query.d.ts.map +1 -0
  21. package/dist/commands/query.js +59 -0
  22. package/dist/commands/query.js.map +1 -0
  23. package/dist/commands/scaffold.d.ts +2 -0
  24. package/dist/commands/scaffold.d.ts.map +1 -0
  25. package/dist/commands/scaffold.js +8 -0
  26. package/dist/commands/scaffold.js.map +1 -0
  27. package/dist/commands/show.d.ts +5 -0
  28. package/dist/commands/show.d.ts.map +1 -0
  29. package/dist/commands/show.js +54 -0
  30. package/dist/commands/show.js.map +1 -0
  31. package/dist/commands/stats.d.ts +5 -0
  32. package/dist/commands/stats.d.ts.map +1 -0
  33. package/dist/commands/stats.js +35 -0
  34. package/dist/commands/stats.js.map +1 -0
  35. package/dist/formatters/build.d.ts +4 -0
  36. package/dist/formatters/build.d.ts.map +1 -0
  37. package/dist/formatters/build.js +23 -0
  38. package/dist/formatters/build.js.map +1 -0
  39. package/dist/formatters/context.d.ts +4 -0
  40. package/dist/formatters/context.d.ts.map +1 -0
  41. package/dist/formatters/context.js +63 -0
  42. package/dist/formatters/context.js.map +1 -0
  43. package/dist/formatters/deps.d.ts +4 -0
  44. package/dist/formatters/deps.d.ts.map +1 -0
  45. package/dist/formatters/deps.js +47 -0
  46. package/dist/formatters/deps.js.map +1 -0
  47. package/dist/formatters/knowledge.d.ts +4 -0
  48. package/dist/formatters/knowledge.d.ts.map +1 -0
  49. package/dist/formatters/knowledge.js +126 -0
  50. package/dist/formatters/knowledge.js.map +1 -0
  51. package/dist/formatters/query.d.ts +4 -0
  52. package/dist/formatters/query.d.ts.map +1 -0
  53. package/dist/formatters/query.js +51 -0
  54. package/dist/formatters/query.js.map +1 -0
  55. package/dist/formatters/show.d.ts +4 -0
  56. package/dist/formatters/show.d.ts.map +1 -0
  57. package/dist/formatters/show.js +53 -0
  58. package/dist/formatters/show.js.map +1 -0
  59. package/dist/formatters/stats.d.ts +4 -0
  60. package/dist/formatters/stats.d.ts.map +1 -0
  61. package/dist/formatters/stats.js +29 -0
  62. package/dist/formatters/stats.js.map +1 -0
  63. package/dist/index.d.ts +3 -0
  64. package/dist/index.d.ts.map +1 -0
  65. package/dist/index.js +6 -0
  66. package/dist/index.js.map +1 -0
  67. package/dist/models/command-results.d.ts +47 -0
  68. package/dist/models/command-results.d.ts.map +1 -0
  69. package/dist/models/command-results.js +3 -0
  70. package/dist/models/command-results.js.map +1 -0
  71. package/dist/models/output-mode.d.ts +6 -0
  72. package/dist/models/output-mode.d.ts.map +1 -0
  73. package/dist/models/output-mode.js +3 -0
  74. package/dist/models/output-mode.js.map +1 -0
  75. package/dist/program.d.ts +3 -0
  76. package/dist/program.d.ts.map +1 -0
  77. package/dist/program.js +120 -0
  78. package/dist/program.js.map +1 -0
  79. package/dist/utils/command-output.d.ts +10 -0
  80. package/dist/utils/command-output.d.ts.map +1 -0
  81. package/dist/utils/command-output.js +60 -0
  82. package/dist/utils/command-output.js.map +1 -0
  83. package/dist/utils/output.d.ts +2 -0
  84. package/dist/utils/output.d.ts.map +1 -0
  85. package/dist/utils/output.js +15 -0
  86. package/dist/utils/output.js.map +1 -0
  87. package/package.json +45 -0
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.executeShowCommand = executeShowCommand;
4
+ exports.runShowCommand = runShowCommand;
5
+ const graph_1 = require("@archkit/graph");
6
+ const show_1 = require("../formatters/show");
7
+ const command_output_1 = require("../utils/command-output");
8
+ async function executeShowCommand(symbol, cwd = process.cwd()) {
9
+ const symbolInput = symbol?.trim();
10
+ if (!symbolInput) {
11
+ throw new command_output_1.CliCommandError('INVALID_INPUT', 'Provide a symbol. Usage: `arch show <symbol>`.');
12
+ }
13
+ try {
14
+ const resolved = await (0, graph_1.resolveSymbolInput)(cwd, symbolInput);
15
+ if (resolved.nodes.length === 0) {
16
+ throw new command_output_1.CliCommandError('SYMBOL_NOT_FOUND', `No symbol found for: ${symbolInput}`);
17
+ }
18
+ if (resolved.nodes.length > 1) {
19
+ throw new command_output_1.CliCommandError('SYMBOL_AMBIGUOUS', [
20
+ `Ambiguous symbol: ${symbolInput}`,
21
+ '',
22
+ 'Matches:',
23
+ ...resolved.nodes
24
+ .slice()
25
+ .sort((left, right) => left.id.localeCompare(right.id))
26
+ .map((node) => ` ${node.id}`),
27
+ ].join('\n'));
28
+ }
29
+ const selectedNode = resolved.nodes[0];
30
+ const snippet = await (0, graph_1.extractSnippetForNode)(cwd, selectedNode);
31
+ return {
32
+ input: symbolInput,
33
+ node: selectedNode,
34
+ snippet,
35
+ };
36
+ }
37
+ catch (error) {
38
+ if (error instanceof command_output_1.CliCommandError) {
39
+ throw error;
40
+ }
41
+ throw new command_output_1.CliCommandError('GRAPH_NOT_FOUND', 'No graph data found. Run `arch build` first.');
42
+ }
43
+ }
44
+ async function runShowCommand(symbol, outputOptions) {
45
+ try {
46
+ const mode = (0, command_output_1.resolveOutputMode)(outputOptions, true);
47
+ const result = await executeShowCommand(symbol);
48
+ (0, command_output_1.writeFormattedOutput)((0, show_1.formatShowResult)(result, mode));
49
+ }
50
+ catch (error) {
51
+ (0, command_output_1.handleCommandError)(error, outputOptions);
52
+ }
53
+ }
54
+ //# sourceMappingURL=show.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"show.js","sourceRoot":"","sources":["../../src/commands/show.ts"],"names":[],"mappings":";;AAMA,gDA8CC;AAED,wCAWC;AAjED,0CAA0E;AAC1E,6CAAqD;AAGrD,4DAAsH;AAE/G,KAAK,UAAU,kBAAkB,CACtC,MAA0B,EAC1B,MAAc,OAAO,CAAC,GAAG,EAAE;IAE3B,MAAM,WAAW,GAAG,MAAM,EAAE,IAAI,EAAE,CAAA;IAElC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,gCAAe,CAAC,eAAe,EAAE,gDAAgD,CAAC,CAAA;IAC9F,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,IAAA,0BAAkB,EAAC,GAAG,EAAE,WAAW,CAAC,CAAA;QAE3D,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,gCAAe,CAAC,kBAAkB,EAAE,wBAAwB,WAAW,EAAE,CAAC,CAAA;QACtF,CAAC;QAED,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,gCAAe,CACvB,kBAAkB,EAClB;gBACE,qBAAqB,WAAW,EAAE;gBAClC,EAAE;gBACF,UAAU;gBACV,GAAG,QAAQ,CAAC,KAAK;qBACd,KAAK,EAAE;qBACP,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;qBACtD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC;aACjC,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAA;QACH,CAAC;QAED,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACtC,MAAM,OAAO,GAAG,MAAM,IAAA,6BAAqB,EAAC,GAAG,EAAE,YAAY,CAAC,CAAA;QAC9D,OAAO;YACL,KAAK,EAAE,WAAW;YAClB,IAAI,EAAE,YAAY;YAClB,OAAO;SACR,CAAA;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,gCAAe,EAAE,CAAC;YACrC,MAAM,KAAK,CAAA;QACb,CAAC;QAED,MAAM,IAAI,gCAAe,CAAC,iBAAiB,EAAE,8CAA8C,CAAC,CAAA;IAC9F,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,cAAc,CAClC,MAA0B,EAC1B,aAA4B;IAE5B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAA,kCAAiB,EAAC,aAAa,EAAE,IAAI,CAAC,CAAA;QACnD,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAA;QAC/C,IAAA,qCAAoB,EAAC,IAAA,uBAAgB,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;IACtD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAA,mCAAkB,EAAC,KAAK,EAAE,aAAa,CAAC,CAAA;IAC1C,CAAC;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { StatsCommandResult } from '../models/command-results';
2
+ import type { OutputOptions } from '../models/output-mode';
3
+ export declare function executeStatsCommand(repoPath: string, cwd?: string): Promise<StatsCommandResult>;
4
+ export declare function runStatsCommand(repoPath: string, outputOptions: OutputOptions): Promise<void>;
5
+ //# sourceMappingURL=stats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/commands/stats.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAG1D,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,GAAG,GAAE,MAAsB,GAC1B,OAAO,CAAC,kBAAkB,CAAC,CAY7B;AAED,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,IAAI,CAAC,CAQf"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.executeStatsCommand = executeStatsCommand;
7
+ exports.runStatsCommand = runStatsCommand;
8
+ const node_path_1 = __importDefault(require("node:path"));
9
+ const graph_1 = require("@archkit/graph");
10
+ const stats_1 = require("../formatters/stats");
11
+ const command_output_1 = require("../utils/command-output");
12
+ async function executeStatsCommand(repoPath, cwd = process.cwd()) {
13
+ const rootDir = node_path_1.default.resolve(cwd, repoPath);
14
+ try {
15
+ const meta = await (0, graph_1.readGraphMeta)(rootDir);
16
+ return {
17
+ repoPath,
18
+ meta,
19
+ };
20
+ }
21
+ catch {
22
+ throw new command_output_1.CliCommandError('GRAPH_NOT_FOUND', 'No graph metadata found. Run `arch build` first.');
23
+ }
24
+ }
25
+ async function runStatsCommand(repoPath, outputOptions) {
26
+ try {
27
+ const mode = (0, command_output_1.resolveOutputMode)(outputOptions, false);
28
+ const result = await executeStatsCommand(repoPath);
29
+ (0, command_output_1.writeFormattedOutput)((0, stats_1.formatStatsResult)(result, mode));
30
+ }
31
+ catch (error) {
32
+ (0, command_output_1.handleCommandError)(error, outputOptions);
33
+ }
34
+ }
35
+ //# sourceMappingURL=stats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/commands/stats.ts"],"names":[],"mappings":";;;;;AAOA,kDAeC;AAED,0CAWC;AAnCD,0DAA4B;AAC5B,0CAA8C;AAC9C,+CAAuD;AAGvD,4DAAsH;AAE/G,KAAK,UAAU,mBAAmB,CACvC,QAAgB,EAChB,MAAc,OAAO,CAAC,GAAG,EAAE;IAE3B,MAAM,OAAO,GAAG,mBAAI,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;IAE3C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,IAAA,qBAAa,EAAC,OAAO,CAAC,CAAA;QACzC,OAAO;YACL,QAAQ;YACR,IAAI;SACL,CAAA;IACH,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,gCAAe,CAAC,iBAAiB,EAAE,kDAAkD,CAAC,CAAA;IAClG,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,eAAe,CACnC,QAAgB,EAChB,aAA4B;IAE5B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAA,kCAAiB,EAAC,aAAa,EAAE,KAAK,CAAC,CAAA;QACpD,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,QAAQ,CAAC,CAAA;QAClD,IAAA,qCAAoB,EAAC,IAAA,yBAAiB,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;IACvD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAA,mCAAkB,EAAC,KAAK,EAAE,aAAa,CAAC,CAAA;IAC1C,CAAC;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { BuildCommandResult } from '../models/command-results';
2
+ import type { OutputMode } from '../models/output-mode';
3
+ export declare function formatBuildResult(result: BuildCommandResult, mode: OutputMode): string;
4
+ //# sourceMappingURL=build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/formatters/build.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAEvD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAuBtF"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatBuildResult = formatBuildResult;
4
+ function formatBuildResult(result, mode) {
5
+ if (mode === 'json') {
6
+ return JSON.stringify({
7
+ files: result.meta.files,
8
+ symbols: result.meta.symbols,
9
+ edges: result.meta.edges,
10
+ nodeTypeCounts: result.meta.nodeTypeCounts,
11
+ }, null, 2);
12
+ }
13
+ return [
14
+ 'Scanning repository...',
15
+ '',
16
+ `Files scanned: ${result.meta.files}`,
17
+ `Symbols extracted: ${result.meta.symbols}`,
18
+ `Edges created: ${result.meta.edges}`,
19
+ '',
20
+ 'Graph saved to .arch/graph',
21
+ ].join('\n');
22
+ }
23
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/formatters/build.ts"],"names":[],"mappings":";;AAGA,8CAuBC;AAvBD,SAAgB,iBAAiB,CAAC,MAA0B,EAAE,IAAgB;IAC5E,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,SAAS,CACnB;YACE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;YACxB,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO;YAC5B,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;YACxB,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc;SAC3C,EACD,IAAI,EACJ,CAAC,CACF,CAAA;IACH,CAAC;IAED,OAAO;QACL,wBAAwB;QACxB,EAAE;QACF,kBAAkB,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE;QACrC,sBAAsB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE;QAC3C,kBAAkB,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE;QACrC,EAAE;QACF,4BAA4B;KAC7B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ContextCommandResult } from '../models/command-results';
2
+ import type { OutputMode } from '../models/output-mode';
3
+ export declare function formatContextResult(result: ContextCommandResult, mode: OutputMode): string;
4
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/formatters/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAEvD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,oBAAoB,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAoD1F"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatContextResult = formatContextResult;
4
+ function formatContextResult(result, mode) {
5
+ if (mode === 'json') {
6
+ return JSON.stringify(result, null, 2);
7
+ }
8
+ if (mode === 'llm') {
9
+ const lines = [`# Context: ${result.query}`, '', '## Entrypoints', ...toBulleted(result.entrypoints)];
10
+ lines.push('', '## Flow');
11
+ if (result.paths.length === 0) {
12
+ lines.push('- none');
13
+ }
14
+ else {
15
+ result.paths.forEach((pathNodes) => {
16
+ lines.push(`- ${pathNodes.join(' -> ')}`);
17
+ });
18
+ }
19
+ lines.push('', '## Files', ...toBulleted(result.files), '', '## Snippets');
20
+ if (result.snippets.length === 0) {
21
+ lines.push('- none');
22
+ }
23
+ else {
24
+ result.snippets.forEach((snippet) => {
25
+ lines.push(`- ${snippet.symbol} (${snippet.file}:${snippet.startLine}-${snippet.endLine})`);
26
+ });
27
+ }
28
+ return lines.join('\n');
29
+ }
30
+ const lines = [`Context: ${result.query}`, '', 'Entrypoints', ...toIndented(result.entrypoints), ''];
31
+ lines.push('Flow');
32
+ if (result.paths.length === 0) {
33
+ lines.push(' (none)');
34
+ }
35
+ else {
36
+ result.paths.forEach((pathNodes) => {
37
+ lines.push(` ${pathNodes.join(' -> ')}`);
38
+ });
39
+ }
40
+ lines.push('', 'Files', ...toIndented(result.files), '', 'Snippets');
41
+ if (result.snippets.length === 0) {
42
+ lines.push(' (none)');
43
+ }
44
+ else {
45
+ result.snippets.forEach((snippet) => {
46
+ lines.push(` ${snippet.symbol} (${snippet.file}:${snippet.startLine}-${snippet.endLine})`);
47
+ });
48
+ }
49
+ return lines.join('\n');
50
+ }
51
+ function toIndented(values) {
52
+ if (values.length === 0) {
53
+ return [' (none)'];
54
+ }
55
+ return values.map((value) => ` ${value}`);
56
+ }
57
+ function toBulleted(values) {
58
+ if (values.length === 0) {
59
+ return ['- none'];
60
+ }
61
+ return values.map((value) => `- ${value}`);
62
+ }
63
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/formatters/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { DepsCommandResult } from '../models/command-results';
2
+ import type { OutputMode } from '../models/output-mode';
3
+ export declare function formatDepsResult(result: DepsCommandResult, mode: OutputMode): string;
4
+ //# sourceMappingURL=deps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../../src/formatters/deps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAEvD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAgCpF"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatDepsResult = formatDepsResult;
4
+ function formatDepsResult(result, mode) {
5
+ if (mode === 'json') {
6
+ return JSON.stringify(result, null, 2);
7
+ }
8
+ if (mode === 'llm') {
9
+ return [
10
+ `# Dependencies: ${result.input}`,
11
+ '',
12
+ '## Imports',
13
+ ...toBulleted(result.imports),
14
+ '',
15
+ '## Calls',
16
+ ...toBulleted(result.calls),
17
+ '',
18
+ '## Callers',
19
+ ...toBulleted(result.callers),
20
+ ].join('\n');
21
+ }
22
+ return [
23
+ `arch deps ${result.input}`,
24
+ '',
25
+ 'Imports',
26
+ ...toIndented(result.imports),
27
+ '',
28
+ 'Calls',
29
+ ...toIndented(result.calls),
30
+ '',
31
+ 'Callers',
32
+ ...toIndented(result.callers),
33
+ ].join('\n');
34
+ }
35
+ function toIndented(values) {
36
+ if (values.length === 0) {
37
+ return [' (none)'];
38
+ }
39
+ return values.map((value) => ` ${value}`);
40
+ }
41
+ function toBulleted(values) {
42
+ if (values.length === 0) {
43
+ return ['- none'];
44
+ }
45
+ return values.map((value) => `- ${value}`);
46
+ }
47
+ //# sourceMappingURL=deps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deps.js","sourceRoot":"","sources":["../../src/formatters/deps.ts"],"names":[],"mappings":";;AAGA,4CAgCC;AAhCD,SAAgB,gBAAgB,CAAC,MAAyB,EAAE,IAAgB;IAC1E,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IACxC,CAAC;IAED,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,OAAO;YACL,mBAAmB,MAAM,CAAC,KAAK,EAAE;YACjC,EAAE;YACF,YAAY;YACZ,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC;YAC7B,EAAE;YACF,UAAU;YACV,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC;YAC3B,EAAE;YACF,YAAY;YACZ,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC;SAC9B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACd,CAAC;IAED,OAAO;QACL,aAAa,MAAM,CAAC,KAAK,EAAE;QAC3B,EAAE;QACF,SAAS;QACT,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC;QAC7B,EAAE;QACF,OAAO;QACP,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC;QAC3B,EAAE;QACF,SAAS;QACT,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC;KAC9B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED,SAAS,UAAU,CAAC,MAAgB;IAClC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,UAAU,CAAC,CAAA;IACrB,CAAC;IAED,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,CAAA;AAC5C,CAAC;AAED,SAAS,UAAU,CAAC,MAAgB;IAClC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,QAAQ,CAAC,CAAA;IACnB,CAAC;IAED,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,CAAA;AAC5C,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { KnowledgeCommandResult } from '../models/command-results';
2
+ import type { OutputMode } from '../models/output-mode';
3
+ export declare function formatKnowledgeResult(result: KnowledgeCommandResult, mode: OutputMode): string;
4
+ //# sourceMappingURL=knowledge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge.d.ts","sourceRoot":"","sources":["../../src/formatters/knowledge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAEvD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,sBAAsB,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CA8I9F"}
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatKnowledgeResult = formatKnowledgeResult;
4
+ function formatKnowledgeResult(result, mode) {
5
+ if (mode === 'json') {
6
+ return JSON.stringify(result, null, 2);
7
+ }
8
+ if (result.action === 'add') {
9
+ if (mode === 'llm') {
10
+ return [
11
+ '# Knowledge Entry Created',
12
+ '',
13
+ `- Id: ${result.entry.id}`,
14
+ `- Title: ${result.entry.title}`,
15
+ `- Type: ${result.entry.type}`,
16
+ `- Feature: ${result.entry.feature}`,
17
+ '',
18
+ '## Content',
19
+ result.entry.body,
20
+ ].join('\n');
21
+ }
22
+ return [
23
+ 'Knowledge entry created',
24
+ '',
25
+ `Id: ${result.entry.id}`,
26
+ `Title: ${result.entry.title}`,
27
+ `Type: ${result.entry.type}`,
28
+ `Feature: ${result.entry.feature}`,
29
+ '',
30
+ result.entry.body,
31
+ ].join('\n');
32
+ }
33
+ if (result.action === 'list') {
34
+ const grouped = new Map();
35
+ result.entries.forEach((entry) => {
36
+ const existing = grouped.get(entry.feature);
37
+ if (existing) {
38
+ existing.push(entry.id);
39
+ }
40
+ else {
41
+ grouped.set(entry.feature, [entry.id]);
42
+ }
43
+ });
44
+ const features = [...grouped.keys()].sort((left, right) => left.localeCompare(right));
45
+ if (mode === 'llm') {
46
+ const lines = ['# Knowledge Entries'];
47
+ if (result.entries.length === 0) {
48
+ lines.push('', '- none');
49
+ return lines.join('\n');
50
+ }
51
+ features.forEach((feature) => {
52
+ lines.push('', `## ${feature}`);
53
+ const ids = grouped.get(feature) ?? [];
54
+ ids.slice().sort((left, right) => left.localeCompare(right)).forEach((id) => {
55
+ lines.push(`- ${id}`);
56
+ });
57
+ });
58
+ return lines.join('\n');
59
+ }
60
+ const lines = ['Knowledge Entries', ''];
61
+ if (result.entries.length === 0) {
62
+ lines.push(' (none)');
63
+ return lines.join('\n');
64
+ }
65
+ features.forEach((feature) => {
66
+ lines.push(feature);
67
+ const ids = grouped.get(feature) ?? [];
68
+ ids.slice().sort((left, right) => left.localeCompare(right)).forEach((id) => {
69
+ lines.push(` ${id}`);
70
+ });
71
+ lines.push('');
72
+ });
73
+ return lines.join('\n').trimEnd();
74
+ }
75
+ if (result.action === 'show') {
76
+ if (mode === 'llm') {
77
+ const lines = [
78
+ `# ${result.entry.title}`,
79
+ '',
80
+ `- Id: ${result.entry.id}`,
81
+ `- Type: ${result.entry.type}`,
82
+ `- Feature: ${result.entry.feature}`,
83
+ `- Created: ${result.entry.createdAt}`,
84
+ ];
85
+ if (result.entry.tags.length > 0) {
86
+ lines.push(`- Tags: ${result.entry.tags.join(', ')}`);
87
+ }
88
+ lines.push('', '## Notes', result.entry.body);
89
+ return lines.join('\n');
90
+ }
91
+ const lines = [
92
+ `Title: ${result.entry.title}`,
93
+ `Type: ${result.entry.type}`,
94
+ `Feature: ${result.entry.feature}`,
95
+ ];
96
+ if (result.entry.tags.length > 0) {
97
+ lines.push(`Tags: ${result.entry.tags.join(', ')}`);
98
+ }
99
+ lines.push('', result.entry.body);
100
+ return lines.join('\n');
101
+ }
102
+ if (mode === 'llm') {
103
+ const lines = [`# Knowledge Search: ${result.query}`, '', '## Matches'];
104
+ if (result.matches.length === 0) {
105
+ lines.push('- none');
106
+ return lines.join('\n');
107
+ }
108
+ result.matches.forEach((match) => {
109
+ lines.push(`- ${match.id} (${match.type}, ${match.feature})`);
110
+ });
111
+ return lines.join('\n');
112
+ }
113
+ const lines = ['Matches', ''];
114
+ if (result.matches.length === 0) {
115
+ lines.push(' (none)');
116
+ return lines.join('\n');
117
+ }
118
+ result.matches.forEach((match) => {
119
+ lines.push(match.id);
120
+ lines.push(` Feature: ${match.feature}`);
121
+ lines.push(` Type: ${match.type}`);
122
+ lines.push('');
123
+ });
124
+ return lines.join('\n').trimEnd();
125
+ }
126
+ //# sourceMappingURL=knowledge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../../src/formatters/knowledge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { QueryCommandResult } from '../models/command-results';
2
+ import type { OutputMode } from '../models/output-mode';
3
+ export declare function formatQueryResult(result: QueryCommandResult, mode: OutputMode): string;
4
+ //# sourceMappingURL=query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/formatters/query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAEvD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAsDtF"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatQueryResult = formatQueryResult;
4
+ function formatQueryResult(result, mode) {
5
+ if (mode === 'json') {
6
+ return JSON.stringify(result, null, 2);
7
+ }
8
+ if (mode === 'llm') {
9
+ const lines = [`# Query: ${result.term}`, '', '## Matches'];
10
+ if (result.matches.length === 0) {
11
+ lines.push('- none');
12
+ return lines.join('\n');
13
+ }
14
+ result.matches.forEach((match) => {
15
+ lines.push(`- ${match.type}: ${match.name} (${match.file})`);
16
+ });
17
+ return lines.join('\n');
18
+ }
19
+ const groups = new Map();
20
+ result.matches.forEach((match) => {
21
+ const existing = groups.get(match.type);
22
+ if (existing) {
23
+ existing.push({ name: match.name, file: match.file, nodeId: match.nodeId });
24
+ }
25
+ else {
26
+ groups.set(match.type, [{ name: match.name, file: match.file, nodeId: match.nodeId }]);
27
+ }
28
+ });
29
+ const lines = [`arch query ${result.term}`, ''];
30
+ if (result.matches.length === 0) {
31
+ lines.push('No matches found.');
32
+ return lines.join('\n');
33
+ }
34
+ lines.push('Matches', '');
35
+ ['class', 'method', 'function', 'interface', 'type', 'route', 'file'].forEach((typeName) => {
36
+ const group = groups.get(typeName);
37
+ if (!group || group.length === 0) {
38
+ return;
39
+ }
40
+ lines.push(typeName);
41
+ group
42
+ .slice()
43
+ .sort((left, right) => left.nodeId.localeCompare(right.nodeId))
44
+ .forEach((item) => {
45
+ lines.push(` ${item.name} (${item.file})`);
46
+ });
47
+ lines.push('');
48
+ });
49
+ return lines.join('\n').trimEnd();
50
+ }
51
+ //# sourceMappingURL=query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/formatters/query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { ShowCommandResult } from '../models/command-results';
2
+ import type { OutputMode } from '../models/output-mode';
3
+ export declare function formatShowResult(result: ShowCommandResult, mode: OutputMode): string;
4
+ //# sourceMappingURL=show.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"show.d.ts","sourceRoot":"","sources":["../../src/formatters/show.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAEvD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CA0CpF"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.formatShowResult = formatShowResult;
7
+ const node_path_1 = __importDefault(require("node:path"));
8
+ function formatShowResult(result, mode) {
9
+ if (mode === 'json') {
10
+ return JSON.stringify({
11
+ symbol: result.node.name,
12
+ nodeId: result.node.id,
13
+ file: result.node.filePath,
14
+ startLine: result.node.loc.startLine,
15
+ endLine: result.node.loc.endLine,
16
+ code: result.snippet,
17
+ }, null, 2);
18
+ }
19
+ if (mode === 'llm') {
20
+ const language = inferCodeFenceLanguage(result.node.filePath);
21
+ const fenceStart = `\`\`\`${language}`;
22
+ const lines = [
23
+ `# Symbol: ${result.node.name}`,
24
+ '',
25
+ `- File: ${result.node.filePath}`,
26
+ `- Range: ${result.node.loc.startLine}-${result.node.loc.endLine}`,
27
+ '',
28
+ '## Code',
29
+ fenceStart,
30
+ ];
31
+ if (result.snippet.length > 0) {
32
+ lines.push(result.snippet);
33
+ }
34
+ lines.push('```');
35
+ return lines.join('\n');
36
+ }
37
+ const humanLines = [`${result.node.filePath}:${result.node.loc.startLine}-${result.node.loc.endLine}`, ''];
38
+ if (result.snippet.length > 0) {
39
+ humanLines.push(result.snippet);
40
+ }
41
+ return humanLines.join('\n');
42
+ }
43
+ function inferCodeFenceLanguage(filePath) {
44
+ const extension = node_path_1.default.extname(filePath).toLocaleLowerCase();
45
+ if (extension === '.ts' || extension === '.tsx') {
46
+ return 'ts';
47
+ }
48
+ if (extension === '.js' || extension === '.jsx' || extension === '.mjs' || extension === '.cjs') {
49
+ return 'js';
50
+ }
51
+ return '';
52
+ }
53
+ //# sourceMappingURL=show.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"show.js","sourceRoot":"","sources":["../../src/formatters/show.ts"],"names":[],"mappings":";;;;;AAIA,4CA0CC;AA9CD,0DAA4B;AAI5B,SAAgB,gBAAgB,CAAC,MAAyB,EAAE,IAAgB;IAC1E,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,SAAS,CACnB;YACE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI;YACxB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE;YACtB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ;YAC1B,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS;YACpC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO;YAChC,IAAI,EAAE,MAAM,CAAC,OAAO;SACrB,EACD,IAAI,EACJ,CAAC,CACF,CAAA;IACH,CAAC;IAED,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,MAAM,QAAQ,GAAG,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC7D,MAAM,UAAU,GAAG,SAAS,QAAQ,EAAE,CAAA;QACtC,MAAM,KAAK,GAAG;YACZ,aAAa,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;YAC/B,EAAE;YACF,WAAW,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE;YACjC,YAAY,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;YAClE,EAAE;YACF,SAAS;YACT,UAAU;SACX,CAAA;QAED,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC5B,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACjB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAA;IAC1G,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACjC,CAAC;IACD,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC9B,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAgB;IAC9C,MAAM,SAAS,GAAG,mBAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,iBAAiB,EAAE,CAAA;IAC5D,IAAI,SAAS,KAAK,KAAK,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QAChD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,SAAS,KAAK,KAAK,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QAChG,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,EAAE,CAAA;AACX,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { StatsCommandResult } from '../models/command-results';
2
+ import type { OutputMode } from '../models/output-mode';
3
+ export declare function formatStatsResult(result: StatsCommandResult, mode: OutputMode): string;
4
+ //# sourceMappingURL=stats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/formatters/stats.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAEvD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CA6BtF"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatStatsResult = formatStatsResult;
4
+ function formatStatsResult(result, mode) {
5
+ if (mode === 'json') {
6
+ return JSON.stringify({
7
+ files: result.meta.files,
8
+ symbols: result.meta.symbols,
9
+ edges: result.meta.edges,
10
+ nodeTypeCounts: result.meta.nodeTypeCounts,
11
+ }, null, 2);
12
+ }
13
+ return [
14
+ 'Repository Architecture',
15
+ '',
16
+ `Files: ${result.meta.files}`,
17
+ `Symbols: ${result.meta.symbols}`,
18
+ `Edges: ${result.meta.edges}`,
19
+ '',
20
+ 'Symbol Types',
21
+ ` classes: ${result.meta.nodeTypeCounts.class}`,
22
+ ` methods: ${result.meta.nodeTypeCounts.method}`,
23
+ ` functions: ${result.meta.nodeTypeCounts.function}`,
24
+ ` interfaces: ${result.meta.nodeTypeCounts.interface}`,
25
+ ` types: ${result.meta.nodeTypeCounts.type}`,
26
+ ` routes: ${result.meta.nodeTypeCounts.route}`,
27
+ ].join('\n');
28
+ }
29
+ //# sourceMappingURL=stats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/formatters/stats.ts"],"names":[],"mappings":";;AAGA,8CA6BC;AA7BD,SAAgB,iBAAiB,CAAC,MAA0B,EAAE,IAAgB;IAC5E,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,SAAS,CACnB;YACE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;YACxB,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO;YAC5B,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;YACxB,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc;SAC3C,EACD,IAAI,EACJ,CAAC,CACF,CAAA;IACH,CAAC;IAED,OAAO;QACL,yBAAyB;QACzB,EAAE;QACF,UAAU,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE;QAC7B,YAAY,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE;QACjC,UAAU,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE;QAC7B,EAAE;QACF,cAAc;QACd,cAAc,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;QAChD,cAAc,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;QACjD,gBAAgB,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;QACrD,iBAAiB,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE;QACvD,YAAY,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;QAC7C,aAAa,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;KAChD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}