02-rbor 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 (154) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +429 -0
  3. package/bin/rbor.js +3 -0
  4. package/dist/analyzers/file-categorizer.d.ts +5 -0
  5. package/dist/analyzers/file-categorizer.js +269 -0
  6. package/dist/analyzers/file-categorizer.js.map +1 -0
  7. package/dist/analyzers/file-categorizer.test.d.ts +1 -0
  8. package/dist/analyzers/file-categorizer.test.js +155 -0
  9. package/dist/analyzers/file-categorizer.test.js.map +1 -0
  10. package/dist/analyzers/graph-builder.d.ts +4 -0
  11. package/dist/analyzers/graph-builder.js +509 -0
  12. package/dist/analyzers/graph-builder.js.map +1 -0
  13. package/dist/analyzers/import-parser.d.ts +8 -0
  14. package/dist/analyzers/import-parser.js +285 -0
  15. package/dist/analyzers/import-parser.js.map +1 -0
  16. package/dist/analyzers/import-parser.test.d.ts +1 -0
  17. package/dist/analyzers/import-parser.test.js +177 -0
  18. package/dist/analyzers/import-parser.test.js.map +1 -0
  19. package/dist/analyzers/index.d.ts +4 -0
  20. package/dist/analyzers/index.js +28 -0
  21. package/dist/analyzers/index.js.map +1 -0
  22. package/dist/analyzers/output-formatters.d.ts +11 -0
  23. package/dist/analyzers/output-formatters.js +451 -0
  24. package/dist/analyzers/output-formatters.js.map +1 -0
  25. package/dist/analyzers/yo.d.ts +1 -0
  26. package/dist/analyzers/yo.js +10 -0
  27. package/dist/analyzers/yo.js.map +1 -0
  28. package/dist/app/App.d.ts +1 -0
  29. package/dist/app/App.js +6 -0
  30. package/dist/app/App.js.map +1 -0
  31. package/dist/cli.d.ts +5 -0
  32. package/dist/cli.js +167 -0
  33. package/dist/cli.js.map +1 -0
  34. package/dist/commands/analyze-deps.d.ts +12 -0
  35. package/dist/commands/analyze-deps.js +136 -0
  36. package/dist/commands/analyze-deps.js.map +1 -0
  37. package/dist/commands/generate-constant.d.ts +1 -0
  38. package/dist/commands/generate-constant.js +148 -0
  39. package/dist/commands/generate-constant.js.map +1 -0
  40. package/dist/commands/generate-domain.d.ts +2 -0
  41. package/dist/commands/generate-domain.js +87 -0
  42. package/dist/commands/generate-domain.js.map +1 -0
  43. package/dist/commands/generate-endpoint.d.ts +1 -0
  44. package/dist/commands/generate-endpoint.js +124 -0
  45. package/dist/commands/generate-endpoint.js.map +1 -0
  46. package/dist/commands/init.d.ts +8 -0
  47. package/dist/commands/init.js +32 -0
  48. package/dist/commands/init.js.map +1 -0
  49. package/dist/commands/list-domains.d.ts +1 -0
  50. package/dist/commands/list-domains.js +122 -0
  51. package/dist/commands/list-domains.js.map +1 -0
  52. package/dist/commands/validate.d.ts +4 -0
  53. package/dist/commands/validate.js +255 -0
  54. package/dist/commands/validate.js.map +1 -0
  55. package/dist/layouts/MainLayout.d.ts +1 -0
  56. package/dist/layouts/MainLayout.js +6 -0
  57. package/dist/layouts/MainLayout.js.map +1 -0
  58. package/dist/pages/HomePage.d.ts +1 -0
  59. package/dist/pages/HomePage.js +6 -0
  60. package/dist/pages/HomePage.js.map +1 -0
  61. package/dist/templates/barrel/index.d.ts +1 -0
  62. package/dist/templates/barrel/index.js +14 -0
  63. package/dist/templates/barrel/index.js.map +1 -0
  64. package/dist/templates/component/index.d.ts +1 -0
  65. package/dist/templates/component/index.js +6 -0
  66. package/dist/templates/component/index.js.map +1 -0
  67. package/dist/templates/component/main.d.ts +1 -0
  68. package/dist/templates/component/main.js +8 -0
  69. package/dist/templates/component/main.js.map +1 -0
  70. package/dist/templates/hooks/action.d.ts +1 -0
  71. package/dist/templates/hooks/action.js +49 -0
  72. package/dist/templates/hooks/action.js.map +1 -0
  73. package/dist/templates/hooks/controller.d.ts +1 -0
  74. package/dist/templates/hooks/controller.js +41 -0
  75. package/dist/templates/hooks/controller.js.map +1 -0
  76. package/dist/templates/hooks/data.d.ts +1 -0
  77. package/dist/templates/hooks/data.js +38 -0
  78. package/dist/templates/hooks/data.js.map +1 -0
  79. package/dist/templates/hooks/index.d.ts +3 -0
  80. package/dist/templates/hooks/index.js +10 -0
  81. package/dist/templates/hooks/index.js.map +1 -0
  82. package/dist/templates/index.d.ts +10 -0
  83. package/dist/templates/index.js +33 -0
  84. package/dist/templates/index.js.map +1 -0
  85. package/dist/templates/methods/index.d.ts +1 -0
  86. package/dist/templates/methods/index.js +85 -0
  87. package/dist/templates/methods/index.js.map +1 -0
  88. package/dist/templates/schema/index.d.ts +1 -0
  89. package/dist/templates/schema/index.js +40 -0
  90. package/dist/templates/schema/index.js.map +1 -0
  91. package/dist/templates/services/base-service-axios.d.ts +1 -0
  92. package/dist/templates/services/base-service-axios.js +77 -0
  93. package/dist/templates/services/base-service-axios.js.map +1 -0
  94. package/dist/templates/services/base-service-fetch.d.ts +1 -0
  95. package/dist/templates/services/base-service-fetch.js +113 -0
  96. package/dist/templates/services/base-service-fetch.js.map +1 -0
  97. package/dist/templates/services/base-service-ky.d.ts +1 -0
  98. package/dist/templates/services/base-service-ky.js +85 -0
  99. package/dist/templates/services/base-service-ky.js.map +1 -0
  100. package/dist/templates/services/base-service.d.ts +1 -0
  101. package/dist/templates/services/base-service.js +92 -0
  102. package/dist/templates/services/base-service.js.map +1 -0
  103. package/dist/templates/services/domain-service.d.ts +2 -0
  104. package/dist/templates/services/domain-service.js +95 -0
  105. package/dist/templates/services/domain-service.js.map +1 -0
  106. package/dist/templates/services/index.d.ts +7 -0
  107. package/dist/templates/services/index.js +23 -0
  108. package/dist/templates/services/index.js.map +1 -0
  109. package/dist/templates/services/service-factory.d.ts +4 -0
  110. package/dist/templates/services/service-factory.js +68 -0
  111. package/dist/templates/services/service-factory.js.map +1 -0
  112. package/dist/templates/types/index.d.ts +1 -0
  113. package/dist/templates/types/index.js +7 -0
  114. package/dist/templates/types/index.js.map +1 -0
  115. package/dist/templates/utils/build-url.d.ts +1 -0
  116. package/dist/templates/utils/build-url.js +72 -0
  117. package/dist/templates/utils/build-url.js.map +1 -0
  118. package/dist/templates/utils/endpoints.d.ts +2 -0
  119. package/dist/templates/utils/endpoints.js +23 -0
  120. package/dist/templates/utils/endpoints.js.map +1 -0
  121. package/dist/templates/utils/generateURL.d.ts +1 -0
  122. package/dist/templates/utils/generateURL.js +40 -0
  123. package/dist/templates/utils/generateURL.js.map +1 -0
  124. package/dist/templates/utils/index.d.ts +1 -0
  125. package/dist/templates/utils/index.js +7 -0
  126. package/dist/templates/utils/index.js.map +1 -0
  127. package/dist/types/dependency-graph.d.ts +95 -0
  128. package/dist/types/dependency-graph.js +13 -0
  129. package/dist/types/dependency-graph.js.map +1 -0
  130. package/dist/types/index.d.ts +2 -0
  131. package/dist/types/index.js +6 -0
  132. package/dist/types/index.js.map +1 -0
  133. package/dist/utils/config.d.ts +16 -0
  134. package/dist/utils/config.js +145 -0
  135. package/dist/utils/config.js.map +1 -0
  136. package/dist/utils/create-file.d.ts +13 -0
  137. package/dist/utils/create-file.js +159 -0
  138. package/dist/utils/create-file.js.map +1 -0
  139. package/dist/utils/dependency-installer.d.ts +5 -0
  140. package/dist/utils/dependency-installer.js +95 -0
  141. package/dist/utils/dependency-installer.js.map +1 -0
  142. package/dist/utils/file-finder.d.ts +6 -0
  143. package/dist/utils/file-finder.js +80 -0
  144. package/dist/utils/file-finder.js.map +1 -0
  145. package/dist/utils/naming.d.ts +11 -0
  146. package/dist/utils/naming.js +46 -0
  147. package/dist/utils/naming.js.map +1 -0
  148. package/dist/utils/naming.test.d.ts +1 -0
  149. package/dist/utils/naming.test.js +106 -0
  150. package/dist/utils/naming.test.js.map +1 -0
  151. package/dist/utils/service-factory-updater.d.ts +2 -0
  152. package/dist/utils/service-factory-updater.js +87 -0
  153. package/dist/utils/service-factory-updater.js.map +1 -0
  154. package/package.json +95 -0
@@ -0,0 +1,451 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.formatAsJson = formatAsJson;
37
+ exports.formatAsSummary = formatAsSummary;
38
+ exports.generateFileSummary = generateFileSummary;
39
+ exports.formatAsTree = formatAsTree;
40
+ exports.formatAsDot = formatAsDot;
41
+ exports.formatGraph = formatGraph;
42
+ exports.formatAsSvg = formatAsSvg;
43
+ function formatAsJson(graph, pretty = true) {
44
+ return JSON.stringify(graph, null, pretty ? 2 : 0);
45
+ }
46
+ function formatAsSummary(graph, targetFile) {
47
+ const lines = [];
48
+ // Find the entry/target file
49
+ const entryPoints = graph.metadata.entryPoints;
50
+ const primaryEntry = entryPoints[0] || 'Unknown';
51
+ const entryNode = graph.nodes.find(n => n.isEntry) || graph.nodes.find(n => n.path.includes(primaryEntry));
52
+ // Header
53
+ lines.push('โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•');
54
+ lines.push(` FILE SUMMARY: ${entryNode?.label || primaryEntry}`);
55
+ lines.push(` Path: ${entryNode?.path || primaryEntry}`);
56
+ lines.push('โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•');
57
+ lines.push('');
58
+ if (!entryNode) {
59
+ lines.push(' โš ๏ธ Could not find entry file in graph');
60
+ lines.push('โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•');
61
+ return lines.join('\n');
62
+ }
63
+ // Get outgoing edges (what this file imports)
64
+ const outgoingEdges = graph.edges.filter(e => e.source === entryNode.id);
65
+ const importedNodes = outgoingEdges
66
+ .map(e => graph.nodes.find(n => n.id === e.target))
67
+ .filter((n) => n !== undefined);
68
+ // Get incoming edges (what imports this file)
69
+ const incomingEdges = graph.edges.filter(e => e.target === entryNode.id);
70
+ const importerNodes = incomingEdges
71
+ .map(e => graph.nodes.find(n => n.id === e.source))
72
+ .filter((n) => n !== undefined);
73
+ // IMPORTS section (what this file depends on)
74
+ lines.push('๐Ÿ“ฅ IMPORTS (what this file depends on)');
75
+ lines.push('โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€');
76
+ const internalImports = importedNodes.filter(n => n.type === 'internal');
77
+ const externalImports = importedNodes.filter(n => n.type === 'external');
78
+ if (internalImports.length > 0) {
79
+ lines.push(...formatAsFileTree(internalImports, ' '));
80
+ }
81
+ if (externalImports.length > 0) {
82
+ lines.push('');
83
+ lines.push(' ๐Ÿ“ฆ PACKAGES');
84
+ const externalByCategory = groupNodesByCategory(externalImports, 'external');
85
+ for (const [category, nodes] of Object.entries(externalByCategory)) {
86
+ if (nodes.length === 0)
87
+ continue;
88
+ lines.push(` ${getPackageEmoji(category)} ${category} (${nodes.length})`);
89
+ for (const node of nodes) {
90
+ lines.push(` โ””โ”€ ${node.label}`);
91
+ }
92
+ }
93
+ }
94
+ if (importedNodes.length === 0) {
95
+ lines.push(' (no imports)');
96
+ }
97
+ lines.push('');
98
+ // IMPORTED BY section (what depends on this file)
99
+ lines.push('๐Ÿ“ค IMPORTED BY (what depends on this file)');
100
+ lines.push('โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€');
101
+ const internalImporters = importerNodes.filter(n => n.type === 'internal');
102
+ if (internalImporters.length > 0) {
103
+ lines.push(...formatAsFileTree(internalImporters, ' '));
104
+ }
105
+ else {
106
+ lines.push(' (not imported by any analyzed file)');
107
+ }
108
+ lines.push('');
109
+ // Dynamic imports
110
+ const dynamicOutgoing = outgoingEdges.filter(e => e.importType === 'dynamic');
111
+ const dynamicIncoming = incomingEdges.filter(e => e.importType === 'dynamic');
112
+ if (dynamicOutgoing.length > 0 || dynamicIncoming.length > 0) {
113
+ lines.push('โšก DYNAMIC IMPORTS');
114
+ lines.push('โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€');
115
+ for (const edge of dynamicOutgoing) {
116
+ const target = graph.nodes.find(n => n.id === edge.target);
117
+ lines.push(` โ””โ”€ imports โ†’ ${target?.path || edge.target}`);
118
+ }
119
+ for (const edge of dynamicIncoming) {
120
+ const source = graph.nodes.find(n => n.id === edge.source);
121
+ lines.push(` โ””โ”€ imported by โ† ${source?.path || edge.source}`);
122
+ }
123
+ lines.push('');
124
+ }
125
+ // Circular dependencies involving this file
126
+ const circularInvolvingEntry = graph.metadata.circularDependencies.filter(cycle => cycle.includes(entryNode.id));
127
+ lines.push('๐Ÿ”„ CIRCULAR DEPENDENCIES');
128
+ lines.push('โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€');
129
+ if (circularInvolvingEntry.length > 0) {
130
+ for (const cycle of circularInvolvingEntry) {
131
+ lines.push(` โš ๏ธ ${cycle.join(' โ†’ ')}`);
132
+ }
133
+ }
134
+ else {
135
+ lines.push(' (none)');
136
+ }
137
+ lines.push('');
138
+ lines.push('โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•');
139
+ return lines.join('\n');
140
+ }
141
+ /**
142
+ * Format nodes as a folder-structured file tree
143
+ * Groups files by directory and displays as ASCII tree
144
+ */
145
+ function formatAsFileTree(nodes, indent = '') {
146
+ const lines = [];
147
+ const root = { files: [], folders: new Map() };
148
+ for (const node of nodes) {
149
+ const relativePath = node.path.replace(/\\/g, '/');
150
+ const parts = relativePath.split('/');
151
+ const fileName = parts.pop() || node.label;
152
+ // Navigate to the correct folder
153
+ let current = root;
154
+ for (const part of parts) {
155
+ if (!current.folders.has(part)) {
156
+ current.folders.set(part, { files: [], folders: new Map() });
157
+ }
158
+ current = current.folders.get(part);
159
+ }
160
+ current.files.push({ ...node, label: fileName });
161
+ }
162
+ // Render the tree
163
+ function renderFolder(folder, prefix, isRoot = false) {
164
+ const folderNames = [...folder.folders.keys()].sort();
165
+ const files = [...folder.files].sort((a, b) => a.label.localeCompare(b.label));
166
+ const totalItems = folderNames.length + files.length;
167
+ let itemIndex = 0;
168
+ // Render subfolders
169
+ for (const folderName of folderNames) {
170
+ itemIndex++;
171
+ const isLast = itemIndex === totalItems;
172
+ const connector = isLast ? 'โ””โ”€โ”€ ' : 'โ”œโ”€โ”€ ';
173
+ const childPrefix = prefix + (isLast ? ' ' : 'โ”‚ ');
174
+ lines.push(`${prefix}${connector}๐Ÿ“ ${folderName}/`);
175
+ renderFolder(folder.folders.get(folderName), childPrefix);
176
+ }
177
+ // Render files
178
+ for (const file of files) {
179
+ itemIndex++;
180
+ const isLast = itemIndex === totalItems;
181
+ const connector = isLast ? 'โ””โ”€โ”€ ' : 'โ”œโ”€โ”€ ';
182
+ const icon = getCategoryEmoji(file.category);
183
+ // Show full path for VS Code to auto-link
184
+ lines.push(`${prefix}${connector}${icon} ${file.path}`);
185
+ }
186
+ }
187
+ // Start rendering from root's children (skip empty root)
188
+ const rootFolders = [...root.folders.keys()];
189
+ const rootFiles = root.files;
190
+ if (rootFolders.length === 1 && rootFiles.length === 0) {
191
+ // Single root folder - skip one level
192
+ const singleFolder = rootFolders[0];
193
+ lines.push(`${indent}๐Ÿ“ ${singleFolder}/`);
194
+ renderFolder(root.folders.get(singleFolder), indent);
195
+ }
196
+ else {
197
+ renderFolder(root, indent, true);
198
+ }
199
+ return lines;
200
+ }
201
+ function generateFileSummary(graph, filePath) {
202
+ const normalizedPath = filePath.replace(/\\/g, '/');
203
+ // Find the node
204
+ const node = graph.nodes.find(n => n.path.replace(/\\/g, '/').endsWith(normalizedPath) || n.id === normalizedPath);
205
+ if (!node) {
206
+ return {
207
+ file: filePath,
208
+ direction: graph.metadata.direction,
209
+ internal: {},
210
+ external: {},
211
+ dynamic: [],
212
+ circular: [],
213
+ };
214
+ }
215
+ // Get edges related to this file
216
+ const outgoingEdges = graph.edges.filter(e => e.source === node.id);
217
+ const incomingEdges = graph.edges.filter(e => e.target === node.id);
218
+ const relevantEdges = graph.metadata.direction === 'forward' ? outgoingEdges : incomingEdges;
219
+ // Group dependencies
220
+ const internal = {};
221
+ const external = {};
222
+ const dynamic = [];
223
+ for (const edge of relevantEdges) {
224
+ const targetId = graph.metadata.direction === 'forward' ? edge.target : edge.source;
225
+ const targetNode = graph.nodes.find(n => n.id === targetId);
226
+ if (!targetNode)
227
+ continue;
228
+ if (edge.importType === 'dynamic') {
229
+ dynamic.push(targetId);
230
+ continue;
231
+ }
232
+ if (targetNode.type === 'internal') {
233
+ const category = targetNode.category;
234
+ if (!internal[category])
235
+ internal[category] = [];
236
+ internal[category].push(targetId);
237
+ }
238
+ else if (targetNode.type === 'external') {
239
+ const category = targetNode.category;
240
+ if (!external[category])
241
+ external[category] = [];
242
+ external[category].push(targetNode.label);
243
+ }
244
+ }
245
+ // Find circular dependencies involving this file
246
+ const circular = graph.metadata.circularDependencies.filter(cycle => cycle.includes(node.id));
247
+ return {
248
+ file: filePath,
249
+ direction: graph.metadata.direction,
250
+ internal: internal,
251
+ external: external,
252
+ dynamic,
253
+ circular,
254
+ };
255
+ }
256
+ function formatAsTree(graph, maxDepth = 3) {
257
+ const lines = [];
258
+ const visited = new Set();
259
+ const isReverse = graph.metadata.direction === 'reverse';
260
+ function printNode(nodeId, depth, prefix, isLast) {
261
+ if (depth > maxDepth)
262
+ return;
263
+ const node = graph.nodes.find(n => n.id === nodeId);
264
+ if (!node)
265
+ return;
266
+ const connector = isLast ? 'โ””โ”€โ”€ ' : 'โ”œโ”€โ”€ ';
267
+ const icon = getNodeIcon(node);
268
+ lines.push(`${prefix}${connector}${icon} ${node.id}`);
269
+ if (visited.has(nodeId)) {
270
+ lines.push(`${prefix}${isLast ? ' ' : 'โ”‚ '} (circular)`);
271
+ return;
272
+ }
273
+ visited.add(nodeId);
274
+ // Get children based on direction
275
+ const children = isReverse
276
+ ? graph.edges.filter(e => e.target === nodeId).map(e => e.source)
277
+ : graph.edges.filter(e => e.source === nodeId).map(e => e.target);
278
+ const childPrefix = prefix + (isLast ? ' ' : 'โ”‚ ');
279
+ children.forEach((child, index) => {
280
+ printNode(child, depth + 1, childPrefix, index === children.length - 1);
281
+ });
282
+ }
283
+ // Build adjacency list for BFS
284
+ const adjacency = new Map();
285
+ for (const edge of graph.edges) {
286
+ if (isReverse) {
287
+ // For reverse: edge.target is the file, edge.source is who imports it
288
+ if (!adjacency.has(edge.target))
289
+ adjacency.set(edge.target, []);
290
+ adjacency.get(edge.target).push(edge.source);
291
+ }
292
+ else {
293
+ // For forward: edge.source imports edge.target
294
+ if (!adjacency.has(edge.source))
295
+ adjacency.set(edge.source, []);
296
+ adjacency.get(edge.source).push(edge.target);
297
+ }
298
+ }
299
+ // Start from the actual entry points the user passed
300
+ const startIds = graph.metadata.entryPoints.map(e => {
301
+ const relative = require('path').relative(process.cwd(), e);
302
+ return relative.replace(/\\/g, '/');
303
+ });
304
+ // Dedupe in case multiple entry points resolve to the same id
305
+ const uniqueStartIds = [...new Set(startIds)];
306
+ for (const startId of uniqueStartIds) {
307
+ const node = graph.nodes.find(n => n.id === startId);
308
+ if (!node)
309
+ continue;
310
+ lines.push(`๐Ÿ“ฆ ${node.path}`);
311
+ const children = adjacency.get(startId) || [];
312
+ children.forEach((child, index) => {
313
+ printNode(child, 1, '', index === children.length - 1);
314
+ });
315
+ lines.push('');
316
+ visited.clear();
317
+ }
318
+ return lines.join('\n');
319
+ }
320
+ function formatAsDot(graph) {
321
+ const lines = [];
322
+ const isReverse = graph.metadata.direction === 'reverse';
323
+ lines.push('digraph DependencyGraph {');
324
+ lines.push(' rankdir=LR;');
325
+ lines.push(' node [shape=box, style="filled,rounded", fontname="Segoe UI", fontsize=12, margin="0.2,0.15"];');
326
+ lines.push(' edge [fontname="Segoe UI", fontsize=10];');
327
+ lines.push('');
328
+ const colors = {
329
+ internal: '#4FC3F7', // Soft Blue
330
+ external: '#81C784', // Muted Green
331
+ dynamic: '#FFD54F', // Amber
332
+ builtin: '#90A4AE', // Blue Grey
333
+ entry: '#BA68C8', // Purple
334
+ };
335
+ // Collect nodes involved in circular dependencies
336
+ const circularNodeIds = new Set();
337
+ for (const cycle of graph.metadata.circularDependencies) {
338
+ for (const nodeId of cycle) {
339
+ const normalized = nodeId.replace(/\\/g, '/');
340
+ circularNodeIds.add(normalized);
341
+ }
342
+ }
343
+ lines.push(' // Nodes');
344
+ for (const node of graph.nodes) {
345
+ const isCircularNode = circularNodeIds.has(node.id);
346
+ const color = isCircularNode ? '#FFCDD2' : node.isEntry ? colors.entry : colors[node.type];
347
+ const label = node.id.replace(/"/g, '\\"');
348
+ const border = isCircularNode ? ', color="#E57373", penwidth=2' : '';
349
+ lines.push(` "${node.id}" [label="${label}", fillcolor="${color}"${border}];`);
350
+ }
351
+ lines.push('');
352
+ lines.push(' // Edges');
353
+ for (const edge of graph.edges) {
354
+ const style = edge.importType === 'dynamic' ? 'dashed' : 'solid';
355
+ const color = edge.isCircular ? '#E57373' : '#666666';
356
+ const circularLabel = edge.isCircular ? ', label="โš  circular", fontcolor="#E57373"' : '';
357
+ if (isReverse) {
358
+ lines.push(` "${edge.target}" -> "${edge.source}" [style=${style}, color="${color}"${circularLabel}];`);
359
+ }
360
+ else {
361
+ lines.push(` "${edge.source}" -> "${edge.target}" [style=${style}, color="${color}"${circularLabel}];`);
362
+ }
363
+ }
364
+ // Add legend if circular dependencies exist
365
+ if (graph.metadata.circularDependencies.length > 0) {
366
+ lines.push('');
367
+ lines.push(' // Legend');
368
+ lines.push(' subgraph cluster_legend {');
369
+ lines.push(' label="โš  Circular Dependencies Detected";');
370
+ lines.push(' style=dashed; color="#E57373"; fontcolor="#E57373"; fontname="Segoe UI";');
371
+ lines.push(' node [shape=plaintext, fillcolor=transparent, style=""];');
372
+ const count = graph.metadata.circularDependencies.length;
373
+ lines.push(` legend_text [label="${count} circular dependency cycle${count > 1 ? 's' : ''} found"];`);
374
+ lines.push(' }');
375
+ }
376
+ lines.push('}');
377
+ return lines.join('\n');
378
+ }
379
+ function groupNodesByCategory(nodes, type) {
380
+ const grouped = {};
381
+ for (const node of nodes) {
382
+ const category = node.category;
383
+ if (!grouped[category]) {
384
+ grouped[category] = [];
385
+ }
386
+ grouped[category].push(node);
387
+ }
388
+ return grouped;
389
+ }
390
+ function getCategoryEmoji(category) {
391
+ const emojis = {
392
+ page: '๐Ÿ“„',
393
+ component: '๐Ÿงฉ',
394
+ hook: '๐Ÿช',
395
+ service: 'โš™๏ธ',
396
+ util: '๐Ÿ”ง',
397
+ config: 'โš™๏ธ',
398
+ type: '๐Ÿ“',
399
+ schema: '๐Ÿ“‹',
400
+ method: '๐Ÿ”จ',
401
+ constant: '๐Ÿ“Œ',
402
+ test: '๐Ÿงช',
403
+ unknown: 'โ“',
404
+ };
405
+ return emojis[category] || '๐Ÿ“';
406
+ }
407
+ function getPackageEmoji(category) {
408
+ const emojis = {
409
+ framework: '๐Ÿ—๏ธ',
410
+ state: '๐Ÿ—ƒ๏ธ',
411
+ networking: '๐ŸŒ',
412
+ ui: '๐ŸŽจ',
413
+ utility: '๐Ÿ”ง',
414
+ testing: '๐Ÿงช',
415
+ build: '๐Ÿ“ฆ',
416
+ other: '๐Ÿ“š',
417
+ };
418
+ return emojis[category] || '๐Ÿ“ฆ';
419
+ }
420
+ function getNodeIcon(node) {
421
+ if (node.type === 'external')
422
+ return '๐Ÿ“ฆ';
423
+ if (node.type === 'builtin')
424
+ return '๐Ÿ”Œ';
425
+ if (node.type === 'dynamic')
426
+ return 'โšก';
427
+ return getCategoryEmoji(node.category);
428
+ }
429
+ function formatGraph(graph, format, options) {
430
+ switch (format) {
431
+ case 'json':
432
+ return formatAsJson(graph, options?.pretty ?? true);
433
+ case 'summary':
434
+ return formatAsSummary(graph);
435
+ case 'tree':
436
+ return formatAsTree(graph, options?.maxDepth ?? 3);
437
+ case 'dot':
438
+ return formatAsDot(graph);
439
+ case 'svg':
440
+ return formatAsDot(graph); // SVG rendering handled separately
441
+ default:
442
+ return formatAsSummary(graph);
443
+ }
444
+ }
445
+ async function formatAsSvg(graph) {
446
+ const { instance } = await Promise.resolve().then(() => __importStar(require('@viz-js/viz')));
447
+ const viz = await instance();
448
+ const dotString = formatAsDot(graph);
449
+ return viz.renderString(dotString, { format: 'svg', engine: 'dot' });
450
+ }
451
+ //# sourceMappingURL=output-formatters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output-formatters.js","sourceRoot":"","sources":["../../src/analyzers/output-formatters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,10 @@
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
+ const Checking_1 = __importDefault(require("../../domains/checking/components/Checking"));
7
+ function yes() {
8
+ return Checking_1.default;
9
+ }
10
+ //# sourceMappingURL=yo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yo.js","sourceRoot":"","sources":["../../src/analyzers/yo.tsx"],"names":[],"mappings":";;;;;AAAA,0FAAiE;AAEjE,SAAS,GAAG;IACR,OAAO,kBAAQ,CAAA;AACnB,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function App(): any;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.App = App;
4
+ const Checking_1 = require("../../domains/checking/components/Checking");
5
+ function App() { return <Checking_1.Checking />; }
6
+ //# sourceMappingURL=App.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"App.js","sourceRoot":"","sources":["../../src/app/App.tsx"],"names":[],"mappings":";;AACA,kBAA8C;AAD9C,yEAAsE;AACtE,SAAgB,GAAG,KAAK,OAAO,CAAC,mBAAQ,CAAC,AAAD,EAAG,CAAC,CAAC,CAAC"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env node
2
+ export type HttpClient = 'axios' | 'fetch' | 'ky';
3
+ export interface DomainOptions {
4
+ http?: HttpClient;
5
+ }