@wtdlee/repomap 0.6.0 → 0.8.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 (38) hide show
  1. package/README.md +61 -13
  2. package/dist/analyzers/index.d.ts +175 -25
  3. package/dist/analyzers/index.js +1 -1
  4. package/dist/{chunk-QZWPOG5B.js → chunk-GCIRJGW3.js} +78 -45
  5. package/dist/chunk-H7VVRHQZ.js +34 -0
  6. package/dist/chunk-HPBPEGHS.js +19 -0
  7. package/dist/{chunk-WQANJ7IA.js → chunk-JDM7Y7PX.js} +34 -28
  8. package/dist/{chunk-H4YGP3GL.js → chunk-OQAXO3X2.js} +346 -22
  9. package/dist/chunk-TNUKDIO7.js +5 -0
  10. package/dist/cli.js +21 -35
  11. package/dist/dataflow-analyzer-CJ2T0cGS.d.ts +345 -0
  12. package/dist/generators/assets/docs.css +176 -46
  13. package/dist/generators/assets/favicon/apple-touch-icon.png +0 -0
  14. package/dist/generators/assets/favicon/favicon-96x96.png +0 -0
  15. package/dist/generators/assets/favicon/favicon.ico +0 -0
  16. package/dist/generators/assets/favicon/favicon.svg +3 -0
  17. package/dist/generators/assets/favicon/site.webmanifest +21 -0
  18. package/dist/generators/assets/favicon/web-app-manifest-192x192.png +0 -0
  19. package/dist/generators/assets/favicon/web-app-manifest-512x512.png +0 -0
  20. package/dist/generators/assets/page-map.css +392 -87
  21. package/dist/generators/assets/rails-map.css +221 -48
  22. package/dist/generators/index.d.ts +0 -8
  23. package/dist/generators/index.js +1 -1
  24. package/dist/index.d.ts +18 -9
  25. package/dist/index.js +1 -1
  26. package/dist/page-map-generator-3GO6GL2P.js +1 -0
  27. package/dist/{rails-FFISZ4AE.js → rails-3HNUFTQV.js} +1 -1
  28. package/dist/rails-map-generator-CAQZUBI6.js +1 -0
  29. package/dist/server/index.d.ts +2 -6
  30. package/dist/server/index.js +1 -1
  31. package/dist/types.d.ts +12 -3
  32. package/package.json +1 -5
  33. package/dist/chunk-BPV4UZSW.js +0 -2
  34. package/dist/chunk-PTR5IROV.js +0 -36
  35. package/dist/chunk-XWZH2RDG.js +0 -19
  36. package/dist/dataflow-analyzer-s6ufFkKC.d.ts +0 -215
  37. package/dist/page-map-generator-HBKSOX2E.js +0 -1
  38. package/dist/rails-map-generator-UFLCMFAT.js +0 -1
@@ -66,14 +66,22 @@ header h1 {
66
66
  transition: background 0.2s;
67
67
  }
68
68
 
69
- .stat:hover { background: var(--bg-tertiary); }
69
+ .stat:hover {
70
+ background: var(--bg-tertiary);
71
+ }
70
72
  .stat.active {
71
73
  background: var(--bg-tertiary);
72
74
  box-shadow: inset 0 0 0 1px var(--accent-blue);
73
75
  }
74
76
 
75
- .stat-value { font-size: 18px; font-weight: 600; }
76
- .stat-label { color: var(--text-secondary); font-size: 12px; }
77
+ .stat-value {
78
+ font-size: 18px;
79
+ font-weight: 600;
80
+ }
81
+ .stat-label {
82
+ color: var(--text-secondary);
83
+ font-size: 12px;
84
+ }
77
85
 
78
86
  /* Container Layout */
79
87
  .container {
@@ -159,7 +167,10 @@ header h1 {
159
167
  }
160
168
 
161
169
  /* Namespace List */
162
- .namespace-list { max-height: none; overflow-y: auto; }
170
+ .namespace-list {
171
+ max-height: none;
172
+ overflow-y: auto;
173
+ }
163
174
 
164
175
  /* Panel Count */
165
176
  .panel-count {
@@ -210,8 +221,13 @@ header h1 {
210
221
  gap: 6px;
211
222
  }
212
223
 
213
- .namespace-item:hover { background: var(--bg-tertiary); }
214
- .namespace-item.active { background: var(--accent-blue); color: white; }
224
+ .namespace-item:hover {
225
+ background: var(--bg-tertiary);
226
+ }
227
+ .namespace-item.active {
228
+ background: var(--accent-blue);
229
+ color: white;
230
+ }
215
231
 
216
232
  .namespace-count {
217
233
  background: var(--bg-tertiary);
@@ -222,7 +238,10 @@ header h1 {
222
238
  }
223
239
 
224
240
  /* Main Panel */
225
- .main-panel { overflow-y: auto; padding: 20px; }
241
+ .main-panel {
242
+ overflow-y: auto;
243
+ padding: 20px;
244
+ }
226
245
 
227
246
  .panel-header {
228
247
  display: flex;
@@ -231,7 +250,10 @@ header h1 {
231
250
  margin-bottom: 16px;
232
251
  }
233
252
 
234
- .panel-title { font-size: 16px; font-weight: 600; }
253
+ .panel-title {
254
+ font-size: 16px;
255
+ font-weight: 600;
256
+ }
235
257
 
236
258
  /* View Toggle */
237
259
  .view-toggle {
@@ -258,8 +280,8 @@ header h1 {
258
280
  }
259
281
 
260
282
  /* Routes Table */
261
- .routes-table {
262
- width: 100%;
283
+ .routes-table {
284
+ width: 100%;
263
285
  border-collapse: collapse;
264
286
  table-layout: fixed;
265
287
  }
@@ -274,11 +296,17 @@ header h1 {
274
296
  }
275
297
 
276
298
  .routes-table th:nth-child(1),
277
- .routes-table td:nth-child(1) { width: 120px; }
299
+ .routes-table td:nth-child(1) {
300
+ width: 120px;
301
+ }
278
302
  .routes-table th:nth-child(2),
279
- .routes-table td:nth-child(2) { width: 45%; }
303
+ .routes-table td:nth-child(2) {
304
+ width: 45%;
305
+ }
280
306
  .routes-table th:nth-child(3),
281
- .routes-table td:nth-child(3) { width: auto; }
307
+ .routes-table td:nth-child(3) {
308
+ width: auto;
309
+ }
282
310
 
283
311
  .routes-table th {
284
312
  background: var(--bg-secondary);
@@ -290,8 +318,12 @@ header h1 {
290
318
  top: 0;
291
319
  }
292
320
 
293
- .routes-table tr { cursor: pointer; }
294
- .routes-table tr:hover { background: var(--bg-secondary); }
321
+ .routes-table tr {
322
+ cursor: pointer;
323
+ }
324
+ .routes-table tr:hover {
325
+ background: var(--bg-secondary);
326
+ }
295
327
 
296
328
  /* Method Badges */
297
329
  .method-badge {
@@ -302,16 +334,40 @@ header h1 {
302
334
  text-transform: uppercase;
303
335
  }
304
336
 
305
- .method-GET { background: #238636; color: white; }
306
- .method-POST { background: #1f6feb; color: white; }
307
- .method-PUT, .method-PATCH { background: #9e6a03; color: white; }
308
- .method-DELETE { background: #da3633; color: white; }
309
- .method-ALL { background: #6e7681; color: white; }
337
+ .method-GET {
338
+ background: #238636;
339
+ color: white;
340
+ }
341
+ .method-POST {
342
+ background: #1f6feb;
343
+ color: white;
344
+ }
345
+ .method-PUT,
346
+ .method-PATCH {
347
+ background: #9e6a03;
348
+ color: white;
349
+ }
350
+ .method-DELETE {
351
+ background: #da3633;
352
+ color: white;
353
+ }
354
+ .method-ALL {
355
+ background: #6e7681;
356
+ color: white;
357
+ }
310
358
 
311
359
  /* Path Text */
312
- .path-text { font-family: 'SF Mono', Monaco, monospace; font-size: 13px; }
313
- .param { color: var(--accent-orange); }
314
- .controller-text { color: var(--text-secondary); font-size: 13px; }
360
+ .path-text {
361
+ font-family: 'SF Mono', Monaco, monospace;
362
+ font-size: 13px;
363
+ }
364
+ .param {
365
+ color: var(--accent-orange);
366
+ }
367
+ .controller-text {
368
+ color: var(--text-secondary);
369
+ font-size: 13px;
370
+ }
315
371
 
316
372
  /* Detail Panel */
317
373
  .detail-panel {
@@ -328,7 +384,10 @@ header h1 {
328
384
  justify-content: space-between;
329
385
  }
330
386
 
331
- .detail-title { font-size: 14px; font-weight: 600; }
387
+ .detail-title {
388
+ font-size: 14px;
389
+ font-weight: 600;
390
+ }
332
391
 
333
392
  .close-btn {
334
393
  background: none;
@@ -338,9 +397,13 @@ header h1 {
338
397
  font-size: 18px;
339
398
  }
340
399
 
341
- .detail-content { padding: 16px; }
400
+ .detail-content {
401
+ padding: 16px;
402
+ }
342
403
 
343
- .detail-section { margin-bottom: 20px; }
404
+ .detail-section {
405
+ margin-bottom: 20px;
406
+ }
344
407
 
345
408
  .detail-section-title {
346
409
  font-size: 11px;
@@ -376,11 +439,26 @@ header h1 {
376
439
  margin-right: 6px;
377
440
  }
378
441
 
379
- .tag-blue { background: rgba(88, 166, 255, 0.2); color: var(--accent-blue); }
380
- .tag-green { background: rgba(63, 185, 80, 0.2); color: var(--accent-green); }
381
- .tag-purple { background: rgba(163, 113, 247, 0.2); color: var(--accent-purple); }
382
- .tag-orange { background: rgba(210, 153, 34, 0.2); color: var(--accent-orange); }
383
- .tag-pink { background: rgba(219, 97, 162, 0.2); color: var(--accent-pink); }
442
+ .tag-blue {
443
+ background: rgba(88, 166, 255, 0.2);
444
+ color: var(--accent-blue);
445
+ }
446
+ .tag-green {
447
+ background: rgba(63, 185, 80, 0.2);
448
+ color: var(--accent-green);
449
+ }
450
+ .tag-purple {
451
+ background: rgba(163, 113, 247, 0.2);
452
+ color: var(--accent-purple);
453
+ }
454
+ .tag-orange {
455
+ background: rgba(210, 153, 34, 0.2);
456
+ color: var(--accent-orange);
457
+ }
458
+ .tag-pink {
459
+ background: rgba(219, 97, 162, 0.2);
460
+ color: var(--accent-pink);
461
+ }
384
462
 
385
463
  /* Empty State */
386
464
  .empty-state {
@@ -389,7 +467,10 @@ header h1 {
389
467
  color: var(--text-secondary);
390
468
  }
391
469
 
392
- .empty-state-icon { font-size: 48px; margin-bottom: 16px; }
470
+ .empty-state-icon {
471
+ font-size: 48px;
472
+ margin-bottom: 16px;
473
+ }
393
474
 
394
475
  /* Model Card */
395
476
  .model-card {
@@ -402,7 +483,9 @@ header h1 {
402
483
  transition: border-color 0.2s;
403
484
  }
404
485
 
405
- .model-card:hover { border-color: var(--accent-blue); }
486
+ .model-card:hover {
487
+ border-color: var(--accent-blue);
488
+ }
406
489
 
407
490
  .model-name {
408
491
  font-weight: 600;
@@ -437,12 +520,25 @@ header h1 {
437
520
  justify-content: space-between;
438
521
  }
439
522
 
440
- .controller-header:hover { background: var(--bg-tertiary); }
441
- .controller-name { font-weight: 600; font-size: 14px; }
442
- .controller-namespace { color: var(--text-secondary); font-size: 12px; }
523
+ .controller-header:hover {
524
+ background: var(--bg-tertiary);
525
+ }
526
+ .controller-name {
527
+ font-weight: 600;
528
+ font-size: 14px;
529
+ }
530
+ .controller-namespace {
531
+ color: var(--text-secondary);
532
+ font-size: 12px;
533
+ }
443
534
 
444
- .controller-actions { padding: 8px; display: none; }
445
- .controller-card.expanded .controller-actions { display: block; }
535
+ .controller-actions {
536
+ padding: 8px;
537
+ display: none;
538
+ }
539
+ .controller-card.expanded .controller-actions {
540
+ display: block;
541
+ }
446
542
 
447
543
  .action-item {
448
544
  padding: 6px 12px;
@@ -452,22 +548,99 @@ header h1 {
452
548
  gap: 8px;
453
549
  }
454
550
 
455
- .action-visibility { width: 8px; height: 8px; border-radius: 50%; }
456
- .visibility-public { background: var(--accent-green); }
457
- .visibility-private { background: var(--accent-red); }
458
- .visibility-protected { background: var(--accent-orange); }
551
+ .action-visibility {
552
+ width: 8px;
553
+ height: 8px;
554
+ border-radius: 50%;
555
+ }
556
+ .visibility-public {
557
+ background: var(--accent-green);
558
+ }
559
+ .visibility-private {
560
+ background: var(--accent-red);
561
+ }
562
+ .visibility-protected {
563
+ background: var(--accent-orange);
564
+ }
459
565
 
460
566
  /* Mermaid Container */
461
567
  .mermaid-container {
462
568
  background: var(--bg-secondary);
463
569
  border-radius: 8px;
464
570
  padding: 20px;
465
- overflow-x: auto;
571
+ overflow: hidden;
572
+ position: relative;
573
+ min-height: 300px;
574
+ cursor: grab;
466
575
  }
467
576
 
468
- /* Scrollbar */
469
- ::-webkit-scrollbar { width: 8px; height: 8px; }
470
- ::-webkit-scrollbar-track { background: var(--bg-primary); }
471
- ::-webkit-scrollbar-thumb { background: var(--border-color); border-radius: 4px; }
472
- ::-webkit-scrollbar-thumb:hover { background: var(--text-muted); }
577
+ .mermaid-container:active {
578
+ cursor: grabbing;
579
+ }
580
+
581
+ .diagram-controls button {
582
+ width: 28px;
583
+ height: 28px;
584
+ border: none;
585
+ border-radius: 4px;
586
+ background: var(--bg-primary);
587
+ color: var(--text-primary);
588
+ font-size: 16px;
589
+ cursor: pointer;
590
+ display: flex;
591
+ align-items: center;
592
+ justify-content: center;
593
+ transition: background 0.2s;
594
+ }
595
+
596
+ .diagram-controls button:hover {
597
+ background: var(--accent);
598
+ }
599
+
600
+ /* Fullscreen mode */
601
+ .mermaid-container:fullscreen {
602
+ background: var(--bg-primary);
603
+ padding: 40px;
604
+ display: flex;
605
+ align-items: center;
606
+ justify-content: center;
607
+ }
473
608
 
609
+ .mermaid-container:fullscreen svg {
610
+ max-width: none;
611
+ max-height: none;
612
+ cursor: pointer;
613
+ }
614
+
615
+ .mermaid-container:fullscreen .diagram-controls {
616
+ position: fixed;
617
+ top: 16px;
618
+ right: 16px;
619
+ }
620
+
621
+ /* Detail panel in fullscreen - overlay style */
622
+ .mermaid-container:fullscreen ~ .detail-panel,
623
+ body:has(.mermaid-container:fullscreen) .detail-panel.open {
624
+ position: fixed;
625
+ right: 0;
626
+ top: 0;
627
+ height: 100vh;
628
+ z-index: 10001;
629
+ box-shadow: -4px 0 20px rgba(0, 0, 0, 0.5);
630
+ }
631
+
632
+ /* Scrollbar */
633
+ ::-webkit-scrollbar {
634
+ width: 8px;
635
+ height: 8px;
636
+ }
637
+ ::-webkit-scrollbar-track {
638
+ background: var(--bg-primary);
639
+ }
640
+ ::-webkit-scrollbar-thumb {
641
+ background: var(--border-color);
642
+ border-radius: 4px;
643
+ }
644
+ ::-webkit-scrollbar-thumb:hover {
645
+ background: var(--text-muted);
646
+ }
@@ -2,7 +2,6 @@ import { AnalysisResult, CrossRepoLink, MermaidDiagram, DataFlow, DocumentationR
2
2
 
3
3
  /**
4
4
  * Mermaid diagram generator
5
- * Mermaidダイアグラム生成器
6
5
  */
7
6
  declare class MermaidGenerator {
8
7
  /**
@@ -37,7 +36,6 @@ declare class MermaidGenerator {
37
36
 
38
37
  /**
39
38
  * Markdown documentation generator
40
- * Markdownドキュメント生成器
41
39
  */
42
40
  declare class MarkdownGenerator {
43
41
  /**
@@ -62,7 +60,6 @@ declare class MarkdownGenerator {
62
60
 
63
61
  /**
64
62
  * Environment detection utilities
65
- * 環境検出ユーティリティ
66
63
  */
67
64
  type EnvironmentType = 'nextjs' | 'react' | 'rails' | 'generic';
68
65
  interface DetectedEnvironment {
@@ -82,7 +79,6 @@ interface EnvironmentDetectionResult {
82
79
 
83
80
  /**
84
81
  * Rails Routes Analyzer using tree-sitter
85
- * tree-sitterを使用してroutes.rbを解析する
86
82
  */
87
83
  interface RailsRoute {
88
84
  method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'ALL';
@@ -120,7 +116,6 @@ interface RailsRoutesResult {
120
116
 
121
117
  /**
122
118
  * Rails Controller Analyzer using tree-sitter
123
- * tree-sitterを使用してコントローラファイルを解析する
124
119
  */
125
120
  interface ControllerInfo {
126
121
  name: string;
@@ -186,7 +181,6 @@ interface RailsControllersResult {
186
181
 
187
182
  /**
188
183
  * Rails Model Analyzer using tree-sitter
189
- * tree-sitterを使用してモデルファイルを解析する
190
184
  */
191
185
  interface ModelInfo {
192
186
  name: string;
@@ -255,7 +249,6 @@ interface RailsModelsResult {
255
249
 
256
250
  /**
257
251
  * Rails gRPC Service Analyzer using tree-sitter
258
- * tree-sitterを使用してgRPCサービスを解析する
259
252
  */
260
253
  interface GrpcServiceInfo {
261
254
  name: string;
@@ -379,7 +372,6 @@ interface DetectedPaths {
379
372
 
380
373
  /**
381
374
  * Rails Analyzers - Index
382
- * Rails分析モジュールのエクスポート
383
375
  */
384
376
 
385
377
  interface RailsAnalysisResult {
@@ -1 +1 @@
1
- export{b as MarkdownGenerator,a as MermaidGenerator}from'../chunk-XWZH2RDG.js';export{a as PageMapGenerator}from'../chunk-QZWPOG5B.js';
1
+ export{b as MarkdownGenerator,a as MermaidGenerator}from'../chunk-HPBPEGHS.js';export{a as PageMapGenerator}from'../chunk-GCIRJGW3.js';
package/dist/index.d.ts CHANGED
@@ -1,27 +1,23 @@
1
1
  import { DocGeneratorConfig, DocumentationReport } from './types.js';
2
- export { APICall, APIConnection, APIEndpoint, AnalysisConfig, AnalysisResult, AnalyzerType, AssociationInfo, AttributeInfo, AuthRequirement, ComponentInfo, CrossRepoAnalysis, CrossRepoLink, DataFetchingInfo, DataFlow, DataFlowNode, DiagramConfig, DiagramType, GraphQLField, GraphQLOperation, IntegrationsConfig, MermaidDiagram, ModelInfo, NavigationFlow, NavigationInfo, PageInfo, ParameterInfo, PropInfo, RepositoryConfig, RepositoryReport, RepositorySummary, ResponseInfo, SiteConfig, StepInfo, VariableInfo, WatchConfig } from './types.js';
3
- export { B as BaseAnalyzer, D as DataFlowAnalyzer, G as GraphQLAnalyzer, P as PagesAnalyzer } from './dataflow-analyzer-s6ufFkKC.js';
2
+ export { APICall, APIConnection, APIEndpoint, AnalysisConfig, AnalysisResult, AnalyzerType, AssociationInfo, AttributeInfo, AuthRequirement, ComponentInfo, CrossRepoAnalysis, CrossRepoLink, DataFetchingInfo, DataFlow, DataFlowNode, DiagramConfig, DiagramType, GraphQLField, GraphQLOperation, ImportInfo, IntegrationsConfig, MermaidDiagram, ModelInfo, NavigationFlow, NavigationInfo, PageInfo, ParameterInfo, PropInfo, RepositoryConfig, RepositoryReport, RepositorySummary, ResponseInfo, SiteConfig, StepInfo, VariableInfo, WatchConfig } from './types.js';
3
+ export { B as BaseAnalyzer, D as DataFlowAnalyzer, G as GraphQLAnalyzer, P as PagesAnalyzer } from './dataflow-analyzer-CJ2T0cGS.js';
4
4
  export { MarkdownGenerator, MermaidGenerator, PageMapGenerator, PageMapOptions } from './generators/index.js';
5
- export { DocServer, DocServerOptions } from './server/index.js';
5
+ export { DocServer } from './server/index.js';
6
6
 
7
7
  /**
8
8
  * Main documentation generation engine
9
- * メインドキュメント生成エンジン
10
9
  */
11
10
  declare class DocGeneratorEngine {
12
11
  private config;
13
12
  private mermaidGenerator;
14
13
  private markdownGenerator;
15
- private noCache;
16
- constructor(config: DocGeneratorConfig, options?: {
17
- noCache?: boolean;
18
- });
14
+ constructor(config: DocGeneratorConfig);
19
15
  /**
20
16
  * Run documentation generation for all configured repositories
21
17
  */
22
18
  generate(): Promise<DocumentationReport>;
23
19
  /**
24
- * Analyze a single repository (with caching)
20
+ * Analyze a single repository
25
21
  */
26
22
  private analyzeRepository;
27
23
  /**
@@ -44,6 +40,19 @@ declare class DocGeneratorEngine {
44
40
  * Extract cross-repository links
45
41
  */
46
42
  private extractCrossRepoLinks;
43
+ /**
44
+ * Enrich pages with GraphQL operations from custom hooks and imported variables
45
+ * Links GraphQL operations to pages via custom hooks and imported variables
46
+ *
47
+ * Strategy:
48
+ * 1. Build hookName → GraphQL operations mapping from:
49
+ * - graphqlOperations.filePath (hook files contain GraphQL definitions)
50
+ * - components with type='hook' and their hooks array
51
+ * 2. Build variableName → GraphQL operations mapping from:
52
+ * - graphqlOperations.variableNames (e.g., "Query" → "GetNewProfile")
53
+ * 3. For each page/component, add matched GraphQL operations to dataFetching
54
+ */
55
+ private enrichPagesWithHookGraphQL;
47
56
  /**
48
57
  * Write documentation to output directory
49
58
  */
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import'./chunk-6F4PWJZI.js';export{a as DocGeneratorEngine,b as DocServer}from'./chunk-WQANJ7IA.js';import'./chunk-H4YGP3GL.js';import'./chunk-VV3A3UE3.js';export{a as BaseAnalyzer,d as DataFlowAnalyzer,c as GraphQLAnalyzer,b as PagesAnalyzer}from'./chunk-BPV4UZSW.js';export{b as MarkdownGenerator,a as MermaidGenerator}from'./chunk-XWZH2RDG.js';export{a as PageMapGenerator}from'./chunk-QZWPOG5B.js';import'./chunk-PTR5IROV.js';
1
+ import'./chunk-6F4PWJZI.js';export{a as DocGeneratorEngine,b as DocServer}from'./chunk-JDM7Y7PX.js';import'./chunk-OQAXO3X2.js';import'./chunk-VV3A3UE3.js';export{a as BaseAnalyzer,A as DataFlowAnalyzer,z as GraphQLAnalyzer,y as PagesAnalyzer}from'./chunk-TNUKDIO7.js';export{b as MarkdownGenerator,a as MermaidGenerator}from'./chunk-HPBPEGHS.js';export{a as PageMapGenerator}from'./chunk-GCIRJGW3.js';import'./chunk-H7VVRHQZ.js';
@@ -0,0 +1 @@
1
+ export{a as PageMapGenerator}from'./chunk-GCIRJGW3.js';
@@ -1 +1 @@
1
- export{f as RailsControllerAnalyzer,h as RailsGrpcAnalyzer,g as RailsModelAnalyzer,e as RailsRoutesAnalyzer,k as analyzeRailsApp,i as analyzeRailsViews,j as analyzeReactComponents,d as findNodes,a as initRubyParser,b as parseRuby,c as parseRubyFile}from'./chunk-PTR5IROV.js';
1
+ export{f as RailsControllerAnalyzer,h as RailsGrpcAnalyzer,g as RailsModelAnalyzer,e as RailsRoutesAnalyzer,k as analyzeRailsApp,i as analyzeRailsViews,j as analyzeReactComponents,d as findNodes,a as initRubyParser,b as parseRuby,c as parseRubyFile}from'./chunk-H7VVRHQZ.js';
@@ -0,0 +1 @@
1
+ export{a as RailsMapGenerator}from'./chunk-OQAXO3X2.js';import'./chunk-H7VVRHQZ.js';
@@ -1,11 +1,7 @@
1
1
  import { DocGeneratorConfig } from '../types.js';
2
2
 
3
- interface DocServerOptions {
4
- noCache?: boolean;
5
- }
6
3
  /**
7
4
  * Documentation server with live reload
8
- * ライブリロード機能付きドキュメントサーバー
9
5
  */
10
6
  declare class DocServer {
11
7
  private config;
@@ -17,7 +13,7 @@ declare class DocServer {
17
13
  private currentReport;
18
14
  private envResult;
19
15
  private railsAnalysis;
20
- constructor(config: DocGeneratorConfig, port?: number, options?: DocServerOptions);
16
+ constructor(config: DocGeneratorConfig, port?: number);
21
17
  private setupRoutes;
22
18
  private setupSocketIO;
23
19
  private renderPage;
@@ -30,4 +26,4 @@ declare class DocServer {
30
26
  stop(): void;
31
27
  }
32
28
 
33
- export { DocServer, type DocServerOptions };
29
+ export { DocServer };
@@ -1 +1 @@
1
- export{b as DocServer}from'../chunk-WQANJ7IA.js';import'../chunk-H4YGP3GL.js';import'../chunk-VV3A3UE3.js';import'../chunk-BPV4UZSW.js';import'../chunk-XWZH2RDG.js';import'../chunk-QZWPOG5B.js';import'../chunk-PTR5IROV.js';
1
+ export{b as DocServer}from'../chunk-JDM7Y7PX.js';import'../chunk-OQAXO3X2.js';import'../chunk-VV3A3UE3.js';import'../chunk-TNUKDIO7.js';import'../chunk-HPBPEGHS.js';import'../chunk-GCIRJGW3.js';import'../chunk-H7VVRHQZ.js';
package/dist/types.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * Type definitions for the documentation generator
3
- * ドキュメント生成ツールの型定義
4
3
  */
5
4
  interface DocGeneratorConfig {
6
5
  outputDir: string;
@@ -69,7 +68,6 @@ interface AnalysisResult {
69
68
  }
70
69
  /**
71
70
  * Frontend API call information
72
- * フロントエンドAPIコール情報
73
71
  */
74
72
  interface APICall {
75
73
  /** Unique identifier */
@@ -171,6 +169,17 @@ interface ComponentInfo {
171
169
  dependents: string[];
172
170
  hooks: string[];
173
171
  stateManagement: string[];
172
+ /**
173
+ * Import information with resolved paths
174
+ * Used for accurate GraphQL operation mapping
175
+ */
176
+ imports?: ImportInfo[];
177
+ }
178
+ interface ImportInfo {
179
+ /** Imported name (e.g., "Query", "useUserHook") */
180
+ name: string;
181
+ /** Import path (e.g., "../../features/profile/NewProfilePage") */
182
+ path: string;
174
183
  }
175
184
  interface PropInfo {
176
185
  name: string;
@@ -294,4 +303,4 @@ interface NavigationFlow {
294
303
  trigger: string;
295
304
  }
296
305
 
297
- export type { APICall, APIConnection, APIEndpoint, AnalysisConfig, AnalysisResult, AnalyzerType, AssociationInfo, AttributeInfo, AuthRequirement, ComponentInfo, CrossRepoAnalysis, CrossRepoLink, DataFetchingInfo, DataFlow, DataFlowNode, DiagramConfig, DiagramType, DocGeneratorConfig, DocumentationReport, GraphQLField, GraphQLOperation, IntegrationsConfig, MermaidDiagram, ModelInfo, NavigationFlow, NavigationInfo, PageInfo, ParameterInfo, PropInfo, RepositoryConfig, RepositoryReport, RepositorySummary, ResponseInfo, SiteConfig, StepInfo, VariableInfo, WatchConfig };
306
+ export type { APICall, APIConnection, APIEndpoint, AnalysisConfig, AnalysisResult, AnalyzerType, AssociationInfo, AttributeInfo, AuthRequirement, ComponentInfo, CrossRepoAnalysis, CrossRepoLink, DataFetchingInfo, DataFlow, DataFlowNode, DiagramConfig, DiagramType, DocGeneratorConfig, DocumentationReport, GraphQLField, GraphQLOperation, ImportInfo, IntegrationsConfig, MermaidDiagram, ModelInfo, NavigationFlow, NavigationInfo, PageInfo, ParameterInfo, PropInfo, RepositoryConfig, RepositoryReport, RepositorySummary, ResponseInfo, SiteConfig, StepInfo, VariableInfo, WatchConfig };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wtdlee/repomap",
3
- "version": "0.6.0",
3
+ "version": "0.8.0",
4
4
  "description": "Interactive documentation generator for code repositories - visualize pages, components, GraphQL operations, and data flows",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -75,8 +75,6 @@
75
75
  "node": ">=18.0.0"
76
76
  },
77
77
  "dependencies": {
78
- "@babel/parser": "^7.23.0",
79
- "@babel/traverse": "^7.23.0",
80
78
  "@swc/core": "^1.15.3",
81
79
  "chalk": "^5.3.0",
82
80
  "commander": "^14.0.2",
@@ -89,14 +87,12 @@
89
87
  "simple-git": "^3.21.0",
90
88
  "socket.io": "^4.7.2",
91
89
  "tree-sitter-wasms": "^0.1.13",
92
- "ts-morph": "^27.0.2",
93
90
  "web-tree-sitter": "^0.25.10",
94
91
  "yaml": "^2.3.4"
95
92
  },
96
93
  "devDependencies": {
97
94
  "@changesets/cli": "^2.27.0",
98
95
  "@eslint/js": "^9.39.1",
99
- "@types/babel__traverse": "^7.20.4",
100
96
  "@types/express": "^5.0.6",
101
97
  "@types/node": "^25.0.1",
102
98
  "eslint": "^9.39.1",