@wtdlee/repomap 0.3.0 → 0.3.2

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 (72) hide show
  1. package/dist/analyzers/index.d.ts +69 -5
  2. package/dist/analyzers/index.js +1 -5
  3. package/dist/{server/doc-server.js → chunk-4K4MGTPV.js} +41 -329
  4. package/dist/chunk-6F4PWJZI.js +0 -0
  5. package/dist/chunk-J2CM7T7U.js +1 -0
  6. package/dist/{generators/page-map-generator.js → chunk-MOEA75XK.js} +278 -503
  7. package/dist/{generators/rails-map-generator.js → chunk-SL2GMDBN.js} +48 -129
  8. package/dist/chunk-UJT5KTVK.js +36 -0
  9. package/dist/chunk-VV3A3UE3.js +1 -0
  10. package/dist/chunk-XWZH2RDG.js +19 -0
  11. package/dist/cli.d.ts +0 -1
  12. package/dist/cli.js +29 -499
  13. package/dist/dataflow-analyzer-BfAiqVUp.d.ts +180 -0
  14. package/dist/env-detector-BIWJ7OYF.js +1 -0
  15. package/dist/generators/assets/common.css +564 -23
  16. package/dist/generators/index.d.ts +431 -3
  17. package/dist/generators/index.js +1 -3
  18. package/dist/index.d.ts +53 -10
  19. package/dist/index.js +1 -11
  20. package/dist/page-map-generator-XNZ4TDJT.js +1 -0
  21. package/dist/rails-TJCDGBBF.js +1 -0
  22. package/dist/rails-map-generator-JL5PKHYP.js +1 -0
  23. package/dist/server/index.d.ts +33 -1
  24. package/dist/server/index.js +1 -1
  25. package/dist/types.d.ts +39 -37
  26. package/dist/types.js +1 -5
  27. package/package.json +4 -2
  28. package/dist/analyzers/base-analyzer.d.ts +0 -45
  29. package/dist/analyzers/base-analyzer.js +0 -47
  30. package/dist/analyzers/dataflow-analyzer.d.ts +0 -29
  31. package/dist/analyzers/dataflow-analyzer.js +0 -425
  32. package/dist/analyzers/graphql-analyzer.d.ts +0 -22
  33. package/dist/analyzers/graphql-analyzer.js +0 -386
  34. package/dist/analyzers/pages-analyzer.d.ts +0 -84
  35. package/dist/analyzers/pages-analyzer.js +0 -1695
  36. package/dist/analyzers/rails/index.d.ts +0 -46
  37. package/dist/analyzers/rails/index.js +0 -145
  38. package/dist/analyzers/rails/rails-controller-analyzer.d.ts +0 -82
  39. package/dist/analyzers/rails/rails-controller-analyzer.js +0 -478
  40. package/dist/analyzers/rails/rails-grpc-analyzer.d.ts +0 -44
  41. package/dist/analyzers/rails/rails-grpc-analyzer.js +0 -262
  42. package/dist/analyzers/rails/rails-model-analyzer.d.ts +0 -88
  43. package/dist/analyzers/rails/rails-model-analyzer.js +0 -493
  44. package/dist/analyzers/rails/rails-react-analyzer.d.ts +0 -41
  45. package/dist/analyzers/rails/rails-react-analyzer.js +0 -529
  46. package/dist/analyzers/rails/rails-routes-analyzer.d.ts +0 -62
  47. package/dist/analyzers/rails/rails-routes-analyzer.js +0 -540
  48. package/dist/analyzers/rails/rails-view-analyzer.d.ts +0 -49
  49. package/dist/analyzers/rails/rails-view-analyzer.js +0 -386
  50. package/dist/analyzers/rails/ruby-parser.d.ts +0 -63
  51. package/dist/analyzers/rails/ruby-parser.js +0 -212
  52. package/dist/analyzers/rest-api-analyzer.d.ts +0 -65
  53. package/dist/analyzers/rest-api-analyzer.js +0 -479
  54. package/dist/core/cache.d.ts +0 -47
  55. package/dist/core/cache.js +0 -151
  56. package/dist/core/engine.d.ts +0 -46
  57. package/dist/core/engine.js +0 -319
  58. package/dist/core/index.d.ts +0 -2
  59. package/dist/core/index.js +0 -2
  60. package/dist/generators/markdown-generator.d.ts +0 -25
  61. package/dist/generators/markdown-generator.js +0 -782
  62. package/dist/generators/mermaid-generator.d.ts +0 -35
  63. package/dist/generators/mermaid-generator.js +0 -364
  64. package/dist/generators/page-map-generator.d.ts +0 -22
  65. package/dist/generators/rails-map-generator.d.ts +0 -21
  66. package/dist/server/doc-server.d.ts +0 -30
  67. package/dist/utils/env-detector.d.ts +0 -31
  68. package/dist/utils/env-detector.js +0 -188
  69. package/dist/utils/parallel.d.ts +0 -23
  70. package/dist/utils/parallel.js +0 -70
  71. package/dist/utils/port.d.ts +0 -15
  72. package/dist/utils/port.js +0 -41
@@ -13,8 +13,15 @@
13
13
  }
14
14
 
15
15
  /* Reset */
16
- * { box-sizing: border-box; margin: 0; padding: 0; }
17
- body { font-family: system-ui, sans-serif; line-height: 1.6; }
16
+ * {
17
+ box-sizing: border-box;
18
+ margin: 0;
19
+ padding: 0;
20
+ }
21
+ body {
22
+ font-family: system-ui, sans-serif;
23
+ line-height: 1.6;
24
+ }
18
25
 
19
26
  /* Header */
20
27
  .header {
@@ -51,11 +58,20 @@ body { font-family: system-ui, sans-serif; line-height: 1.6; }
51
58
  border-radius: 4px;
52
59
  transition: all 0.15s;
53
60
  }
54
- .nav-link:hover { background: var(--bg3); color: var(--text); }
55
- .nav-link.active { background: var(--accent); color: white; }
61
+ .nav-link:hover {
62
+ background: var(--bg3);
63
+ color: var(--text);
64
+ }
65
+ .nav-link.active {
66
+ background: var(--accent);
67
+ color: white;
68
+ }
56
69
 
57
70
  /* Layout */
58
- .main { display: flex; height: calc(100vh - 54px); }
71
+ .main {
72
+ display: flex;
73
+ height: calc(100vh - 54px);
74
+ }
59
75
 
60
76
  .sidebar {
61
77
  width: 280px;
@@ -71,22 +87,192 @@ body { font-family: system-ui, sans-serif; line-height: 1.6; }
71
87
  margin: 16px 0 8px;
72
88
  letter-spacing: 1px;
73
89
  }
74
- .sidebar h3:first-child { margin-top: 0; }
90
+ .sidebar h3:first-child {
91
+ margin-top: 0;
92
+ }
75
93
 
76
- /* Tags */
94
+ /* Tags - High contrast colors for better readability */
77
95
  .tag {
96
+ display: inline-block;
78
97
  font-size: 9px;
79
- padding: 2px 5px;
98
+ padding: 2px 6px;
80
99
  border-radius: 3px;
81
- background: var(--bg);
82
- color: var(--text2);
100
+ background: var(--bg3);
101
+ color: var(--text);
102
+ font-weight: 500;
103
+ white-space: nowrap;
104
+ }
105
+ .tag-sm {
106
+ font-size: 10px;
107
+ }
108
+ .tag-xs {
109
+ font-size: 8px;
110
+ }
111
+
112
+ /* Auth/Security */
113
+ .tag-auth {
114
+ background: #991b1b;
115
+ color: #fecaca;
116
+ }
117
+
118
+ /* GraphQL */
119
+ .tag-query {
120
+ background: #1e40af;
121
+ color: #bfdbfe;
122
+ }
123
+ .tag-mutation {
124
+ background: #831843;
125
+ color: #fbcfe8;
126
+ }
127
+ .tag-subscription {
128
+ background: #4c1d95;
129
+ color: #ddd6fe;
130
+ }
131
+
132
+ /* Framework */
133
+ .tag-react {
134
+ background: #0891b2;
135
+ color: #cffafe;
136
+ }
137
+ .tag-ssr {
138
+ background: #166534;
139
+ color: #bbf7d0;
140
+ }
141
+ .tag-view {
142
+ background: #5b21b6;
143
+ color: #c4b5fd;
144
+ }
145
+ .tag-src {
146
+ background: #1e3a5f;
147
+ color: #93c5fd;
148
+ }
149
+
150
+ /* Code structure */
151
+ .tag-service {
152
+ background: #6b21a8;
153
+ color: #e9d5ff;
154
+ }
155
+ .tag-grpc {
156
+ background: #0e7490;
157
+ color: #cffafe;
158
+ }
159
+ .tag-model {
160
+ background: #92400e;
161
+ color: #fef3c7;
162
+ }
163
+ .tag-partial {
164
+ background: #0e7490;
165
+ color: #cffafe;
166
+ }
167
+ .tag-var {
168
+ background: #6b21a8;
169
+ color: #e9d5ff;
170
+ }
171
+ .tag-helper {
172
+ background: #4338ca;
173
+ color: #c7d2fe;
174
+ }
175
+
176
+ /* Filters */
177
+ .tag-before {
178
+ background: #15803d;
179
+ color: #bbf7d0;
180
+ }
181
+ .tag-after {
182
+ background: #b45309;
183
+ color: #fef3c7;
184
+ }
185
+ .tag-around {
186
+ background: #7c3aed;
187
+ color: #ede9fe;
188
+ }
189
+
190
+ /* HTTP methods */
191
+ .tag-get {
192
+ background: #166534;
193
+ color: #bbf7d0;
194
+ }
195
+ .tag-post {
196
+ background: #1d4ed8;
197
+ color: #bfdbfe;
198
+ }
199
+ .tag-put {
200
+ background: #b45309;
201
+ color: #fef3c7;
202
+ }
203
+ .tag-patch {
204
+ background: #7c3aed;
205
+ color: #ede9fe;
206
+ }
207
+ .tag-delete {
208
+ background: #b91c1c;
209
+ color: #fecaca;
210
+ }
211
+
212
+ /* RPC/API */
213
+ .tag-rpc {
214
+ background: #2563eb;
215
+ color: white;
216
+ }
217
+ .tag-api {
218
+ background: #0891b2;
219
+ color: #cffafe;
220
+ }
221
+ .tag-rest {
222
+ background: #059669;
223
+ color: #a7f3d0;
224
+ }
225
+
226
+ /* Status */
227
+ .tag-success {
228
+ background: #166534;
229
+ color: #bbf7d0;
230
+ }
231
+ .tag-warning {
232
+ background: #b45309;
233
+ color: #fef3c7;
234
+ }
235
+ .tag-error {
236
+ background: #b91c1c;
237
+ color: #fecaca;
238
+ }
239
+ .tag-info {
240
+ background: #1d4ed8;
241
+ color: #bfdbfe;
242
+ }
243
+
244
+ /* Patterns */
245
+ .tag-pattern {
246
+ background: #4338ca;
247
+ color: #c7d2fe;
248
+ }
249
+ .tag-namespace {
250
+ background: #475569;
251
+ color: #e2e8f0;
252
+ }
253
+ .tag-repo {
254
+ background: #1e293b;
255
+ color: #94a3b8;
256
+ font-weight: 600;
257
+ text-transform: uppercase;
258
+ letter-spacing: 0.5px;
259
+ }
260
+
261
+ /* Default accent */
262
+ .tag-accent {
263
+ background: #2563eb;
264
+ color: white;
265
+ }
266
+ .tag-default {
267
+ background: #475569;
268
+ color: #e2e8f0;
83
269
  }
84
- .tag-auth { background: #7f1d1d; color: #fca5a5; }
85
- .tag-query { background: #1e3a5f; color: #93c5fd; }
86
- .tag-mutation { background: #5f1e3a; color: #fda4af; }
87
270
 
88
271
  /* Tabs */
89
- .tabs { display: flex; gap: 4px; }
272
+ .tabs {
273
+ display: flex;
274
+ gap: 4px;
275
+ }
90
276
  .tab {
91
277
  padding: 6px 16px;
92
278
  background: var(--bg3);
@@ -96,7 +282,10 @@ body { font-family: system-ui, sans-serif; line-height: 1.6; }
96
282
  cursor: pointer;
97
283
  font-size: 13px;
98
284
  }
99
- .tab.active { background: var(--accent); color: white; }
285
+ .tab.active {
286
+ background: var(--accent);
287
+ color: white;
288
+ }
100
289
 
101
290
  /* Search */
102
291
  .search {
@@ -113,12 +302,14 @@ body { font-family: system-ui, sans-serif; line-height: 1.6; }
113
302
  display: none;
114
303
  position: fixed;
115
304
  inset: 0;
116
- background: rgba(0,0,0,0.7);
305
+ background: rgba(0, 0, 0, 0.7);
117
306
  z-index: 1000;
118
307
  justify-content: center;
119
308
  align-items: center;
120
309
  }
121
- .modal.open { display: flex; }
310
+ .modal.open {
311
+ display: flex;
312
+ }
122
313
  .modal-box {
123
314
  background: var(--bg2);
124
315
  border-radius: 8px;
@@ -134,7 +325,10 @@ body { font-family: system-ui, sans-serif; line-height: 1.6; }
134
325
  justify-content: space-between;
135
326
  align-items: center;
136
327
  }
137
- .modal-head h3 { font-size: 14px; margin: 0; }
328
+ .modal-head h3 {
329
+ font-size: 14px;
330
+ margin: 0;
331
+ }
138
332
  .modal-close {
139
333
  background: none;
140
334
  border: none;
@@ -142,7 +336,9 @@ body { font-family: system-ui, sans-serif; line-height: 1.6; }
142
336
  font-size: 20px;
143
337
  cursor: pointer;
144
338
  }
145
- .modal-body { padding: 16px; }
339
+ .modal-body {
340
+ padding: 16px;
341
+ }
146
342
 
147
343
  /* Copy Button */
148
344
  .copy-btn {
@@ -155,8 +351,14 @@ body { font-family: system-ui, sans-serif; line-height: 1.6; }
155
351
  opacity: 0.7;
156
352
  transition: all 0.2s;
157
353
  }
158
- .copy-btn:hover { opacity: 1; background: var(--bg3); }
159
- .copy-btn.copied { background: #22c55e; opacity: 1; }
354
+ .copy-btn:hover {
355
+ opacity: 1;
356
+ background: var(--bg3);
357
+ }
358
+ .copy-btn.copied {
359
+ background: #22c55e;
360
+ opacity: 1;
361
+ }
160
362
 
161
363
  /* Live Indicator */
162
364
  .live-indicator {
@@ -181,7 +383,346 @@ body { font-family: system-ui, sans-serif; line-height: 1.6; }
181
383
  animation: pulse 2s infinite;
182
384
  }
183
385
  @keyframes pulse {
184
- 0%, 100% { opacity: 1; }
185
- 50% { opacity: 0.5; }
386
+ 0%,
387
+ 100% {
388
+ opacity: 1;
389
+ }
390
+ 50% {
391
+ opacity: 0.5;
392
+ }
186
393
  }
187
394
 
395
+ /* ===========================================
396
+ UTILITY CLASSES
397
+ =========================================== */
398
+
399
+ /* Typography */
400
+ .mono {
401
+ font-family: monospace;
402
+ }
403
+ .text-muted {
404
+ color: var(--text2);
405
+ }
406
+ .text-accent {
407
+ color: var(--accent);
408
+ }
409
+ .text-success {
410
+ color: #22c55e;
411
+ }
412
+ .text-warning {
413
+ color: #f59e0b;
414
+ }
415
+ .text-react {
416
+ color: #61dafb;
417
+ }
418
+ .text-xs {
419
+ font-size: 9px;
420
+ }
421
+ .text-sm {
422
+ font-size: 10px;
423
+ }
424
+ .text-base {
425
+ font-size: 11px;
426
+ }
427
+ .text-md {
428
+ font-size: 12px;
429
+ }
430
+ .text-lg {
431
+ font-size: 14px;
432
+ }
433
+ .font-semibold {
434
+ font-weight: 600;
435
+ }
436
+ .italic {
437
+ font-style: italic;
438
+ }
439
+ .text-center {
440
+ text-align: center;
441
+ }
442
+ .text-left {
443
+ text-align: left;
444
+ }
445
+
446
+ /* Spacing */
447
+ .mt-1 {
448
+ margin-top: 4px;
449
+ }
450
+ .mt-2 {
451
+ margin-top: 6px;
452
+ }
453
+ .mt-3 {
454
+ margin-top: 8px;
455
+ }
456
+ .mb-1 {
457
+ margin-bottom: 4px;
458
+ }
459
+ .mb-2 {
460
+ margin-bottom: 6px;
461
+ }
462
+ .mb-3 {
463
+ margin-bottom: 8px;
464
+ }
465
+ .ml-1 {
466
+ margin-left: 4px;
467
+ }
468
+ .ml-2 {
469
+ margin-left: 6px;
470
+ }
471
+ .ml-3 {
472
+ margin-left: 8px;
473
+ }
474
+ .mr-1 {
475
+ margin-right: 4px;
476
+ }
477
+ .mr-2 {
478
+ margin-right: 6px;
479
+ }
480
+ .mr-3 {
481
+ margin-right: 8px;
482
+ }
483
+ .my-2 {
484
+ margin: 6px 0;
485
+ }
486
+ .my-3 {
487
+ margin: 8px 0;
488
+ }
489
+ .p-1 {
490
+ padding: 4px;
491
+ }
492
+ .p-2 {
493
+ padding: 6px;
494
+ }
495
+ .p-3 {
496
+ padding: 8px;
497
+ }
498
+ .p-4 {
499
+ padding: 10px;
500
+ }
501
+ .p-5 {
502
+ padding: 12px;
503
+ }
504
+ .py-1 {
505
+ padding: 4px 0;
506
+ }
507
+ .py-2 {
508
+ padding: 6px 0;
509
+ }
510
+ .px-2 {
511
+ padding: 0 6px;
512
+ }
513
+ .px-3 {
514
+ padding: 0 8px;
515
+ }
516
+ .px-4 {
517
+ padding: 0 12px;
518
+ }
519
+
520
+ /* Flexbox */
521
+ .flex {
522
+ display: flex;
523
+ }
524
+ .flex-wrap {
525
+ flex-wrap: wrap;
526
+ }
527
+ .flex-col {
528
+ flex-direction: column;
529
+ }
530
+ .items-center {
531
+ align-items: center;
532
+ }
533
+ .justify-between {
534
+ justify-content: space-between;
535
+ }
536
+ .gap-1 {
537
+ gap: 4px;
538
+ }
539
+ .gap-2 {
540
+ gap: 6px;
541
+ }
542
+ .gap-3 {
543
+ gap: 8px;
544
+ }
545
+ .shrink-0 {
546
+ flex-shrink: 0;
547
+ }
548
+
549
+ /* Display */
550
+ .hidden {
551
+ display: none;
552
+ }
553
+ .block {
554
+ display: block;
555
+ }
556
+ .inline-block {
557
+ display: inline-block;
558
+ }
559
+ .cursor-pointer {
560
+ cursor: pointer;
561
+ }
562
+ .cursor-default {
563
+ cursor: default;
564
+ }
565
+
566
+ /* Sizing */
567
+ .w-20 {
568
+ width: 80px;
569
+ }
570
+ .max-h-60vh {
571
+ max-height: 60vh;
572
+ }
573
+ .overflow-y-auto {
574
+ overflow-y: auto;
575
+ }
576
+
577
+ /* Borders & Backgrounds */
578
+ .rounded {
579
+ border-radius: 4px;
580
+ }
581
+ .rounded-md {
582
+ border-radius: 6px;
583
+ }
584
+ .rounded-lg {
585
+ border-radius: 8px;
586
+ }
587
+ .bg-surface {
588
+ background: var(--bg3);
589
+ }
590
+ .border-b {
591
+ border-bottom: 1px solid var(--bg1);
592
+ }
593
+
594
+ /* Component Patterns */
595
+ .code-block {
596
+ background: var(--bg3);
597
+ padding: 10px;
598
+ border-radius: 6px;
599
+ margin-top: 6px;
600
+ }
601
+ .info-box {
602
+ background: var(--bg3);
603
+ padding: 12px;
604
+ border-radius: 8px;
605
+ margin-bottom: 12px;
606
+ }
607
+ .section-title {
608
+ font-weight: 600;
609
+ margin-bottom: 4px;
610
+ }
611
+ .hint {
612
+ font-size: 11px;
613
+ color: var(--text2);
614
+ }
615
+ .hint-sm {
616
+ font-size: 10px;
617
+ color: var(--text2);
618
+ }
619
+ .link {
620
+ color: var(--accent);
621
+ cursor: pointer;
622
+ }
623
+ .link:hover {
624
+ text-decoration: underline;
625
+ }
626
+ .empty-state {
627
+ padding: 40px;
628
+ text-align: center;
629
+ color: var(--text2);
630
+ }
631
+ .badge-success {
632
+ font-size: 9px;
633
+ background: #22c55e;
634
+ color: white;
635
+ padding: 1px 4px;
636
+ border-radius: 2px;
637
+ margin-left: 6px;
638
+ }
639
+ .detail-item {
640
+ padding: 4px 0;
641
+ display: flex;
642
+ align-items: center;
643
+ gap: 8px;
644
+ }
645
+ .name {
646
+ font-family: monospace;
647
+ font-size: 12px;
648
+ }
649
+ .clickable-row {
650
+ padding: 8px 12px;
651
+ cursor: pointer;
652
+ color: var(--accent);
653
+ font-size: 11px;
654
+ }
655
+ .clickable-row:hover {
656
+ background: var(--bg3);
657
+ }
658
+
659
+ /* Expand/Show More */
660
+ .expand-more {
661
+ color: var(--accent);
662
+ font-size: 10px;
663
+ cursor: pointer;
664
+ padding: 4px 0;
665
+ }
666
+ .expand-more:hover {
667
+ text-decoration: underline;
668
+ }
669
+
670
+ /* Detail Value */
671
+ .detail-value {
672
+ font-family: monospace;
673
+ font-size: 12px;
674
+ }
675
+ .detail-value-block {
676
+ font-family: monospace;
677
+ font-size: 12px;
678
+ background: var(--bg3);
679
+ padding: 8px;
680
+ border-radius: 4px;
681
+ }
682
+
683
+ /* Page Path */
684
+ .page-path {
685
+ font-family: monospace;
686
+ font-size: 12px;
687
+ flex: 1;
688
+ }
689
+
690
+ /* Empty state variations */
691
+ .empty-state-sm {
692
+ padding: 20px;
693
+ text-align: center;
694
+ color: var(--text2);
695
+ }
696
+
697
+ /* Cell styles for tables */
698
+ .cell {
699
+ padding: 6px;
700
+ text-align: left;
701
+ }
702
+ .cell-muted {
703
+ padding: 6px;
704
+ color: var(--text2);
705
+ }
706
+
707
+ /* Accordion/Collapsible */
708
+ .accordion-item {
709
+ padding: 2px 0;
710
+ border-bottom: 1px solid var(--bg1);
711
+ }
712
+
713
+ /* Subtext patterns */
714
+ .subtext {
715
+ margin-top: 6px;
716
+ font-size: 11px;
717
+ color: var(--text2);
718
+ }
719
+ .subtext-accent {
720
+ margin: 8px 0;
721
+ font-size: 11px;
722
+ color: var(--accent);
723
+ }
724
+ .note {
725
+ padding: 4px 0;
726
+ color: var(--text2);
727
+ font-style: italic;
728
+ }