@polishd/next 0.2.2 → 0.2.3-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/AGENTS.md +2 -1
  2. package/CHANGELOG.md +238 -0
  3. package/README.md +63 -0
  4. package/bin/doctor.mjs +8 -1
  5. package/dist/ai/digest.d.ts.map +1 -1
  6. package/dist/ai/digest.js +3 -2
  7. package/dist/ai/digest.js.map +1 -1
  8. package/dist/ai/github.d.ts +22 -1
  9. package/dist/ai/github.d.ts.map +1 -1
  10. package/dist/ai/github.js +99 -3
  11. package/dist/ai/github.js.map +1 -1
  12. package/dist/ai/issue-pages.d.ts +52 -0
  13. package/dist/ai/issue-pages.d.ts.map +1 -0
  14. package/dist/ai/issue-pages.js +50 -0
  15. package/dist/ai/issue-pages.js.map +1 -0
  16. package/dist/ai/issues.d.ts +13 -1
  17. package/dist/ai/issues.d.ts.map +1 -1
  18. package/dist/ai/issues.js +60 -4
  19. package/dist/ai/issues.js.map +1 -1
  20. package/dist/ai/summary.d.ts.map +1 -1
  21. package/dist/ai/summary.js +7 -0
  22. package/dist/ai/summary.js.map +1 -1
  23. package/dist/ai/types.d.ts +43 -0
  24. package/dist/ai/types.d.ts.map +1 -1
  25. package/dist/client/dom.d.ts +23 -0
  26. package/dist/client/dom.d.ts.map +1 -1
  27. package/dist/client/dom.js +45 -2
  28. package/dist/client/dom.js.map +1 -1
  29. package/dist/client/init.d.ts.map +1 -1
  30. package/dist/client/init.js +54 -14
  31. package/dist/client/init.js.map +1 -1
  32. package/dist/client/monitor.d.ts.map +1 -1
  33. package/dist/client/monitor.js +5 -1
  34. package/dist/client/monitor.js.map +1 -1
  35. package/dist/client/script-provenance.d.ts +21 -0
  36. package/dist/client/script-provenance.d.ts.map +1 -0
  37. package/dist/client/script-provenance.js +127 -0
  38. package/dist/client/script-provenance.js.map +1 -0
  39. package/dist/config.d.ts +10 -0
  40. package/dist/config.d.ts.map +1 -1
  41. package/dist/config.js +1 -0
  42. package/dist/config.js.map +1 -1
  43. package/dist/dashboard/chrome.d.ts +4 -2
  44. package/dist/dashboard/chrome.d.ts.map +1 -1
  45. package/dist/dashboard/chrome.js +15 -5
  46. package/dist/dashboard/chrome.js.map +1 -1
  47. package/dist/dashboard/design-review-card.d.ts.map +1 -1
  48. package/dist/dashboard/design-review-card.js +3 -3
  49. package/dist/dashboard/design-review-card.js.map +1 -1
  50. package/dist/dashboard/design.d.ts +5 -1
  51. package/dist/dashboard/design.d.ts.map +1 -1
  52. package/dist/dashboard/design.js +3 -2
  53. package/dist/dashboard/design.js.map +1 -1
  54. package/dist/dashboard/drawer.d.ts +34 -0
  55. package/dist/dashboard/drawer.d.ts.map +1 -0
  56. package/dist/dashboard/drawer.js +44 -0
  57. package/dist/dashboard/drawer.js.map +1 -0
  58. package/dist/dashboard/index.d.ts +3 -1
  59. package/dist/dashboard/index.d.ts.map +1 -1
  60. package/dist/dashboard/index.js +48 -37
  61. package/dist/dashboard/index.js.map +1 -1
  62. package/dist/dashboard/installs.d.ts.map +1 -1
  63. package/dist/dashboard/installs.js +2 -1
  64. package/dist/dashboard/installs.js.map +1 -1
  65. package/dist/dashboard/issues.d.ts +9 -0
  66. package/dist/dashboard/issues.d.ts.map +1 -0
  67. package/dist/dashboard/issues.js +81 -0
  68. package/dist/dashboard/issues.js.map +1 -0
  69. package/dist/dashboard/journeys.d.ts.map +1 -1
  70. package/dist/dashboard/journeys.js +4 -2
  71. package/dist/dashboard/journeys.js.map +1 -1
  72. package/dist/dashboard/metric-trends.d.ts +6 -0
  73. package/dist/dashboard/metric-trends.d.ts.map +1 -0
  74. package/dist/dashboard/metric-trends.js +236 -0
  75. package/dist/dashboard/metric-trends.js.map +1 -0
  76. package/dist/dashboard/pages.d.ts.map +1 -1
  77. package/dist/dashboard/pages.js +8 -46
  78. package/dist/dashboard/pages.js.map +1 -1
  79. package/dist/dashboard/settings.d.ts.map +1 -1
  80. package/dist/dashboard/settings.js +6 -2
  81. package/dist/dashboard/settings.js.map +1 -1
  82. package/dist/dashboard/show-more.d.ts.map +1 -1
  83. package/dist/dashboard/show-more.js +1 -1
  84. package/dist/dashboard/show-more.js.map +1 -1
  85. package/dist/dashboard/snapshot-actions.d.ts +16 -0
  86. package/dist/dashboard/snapshot-actions.d.ts.map +1 -0
  87. package/dist/dashboard/snapshot-actions.js +79 -0
  88. package/dist/dashboard/snapshot-actions.js.map +1 -0
  89. package/dist/dashboard/snapshots.d.ts +13 -0
  90. package/dist/dashboard/snapshots.d.ts.map +1 -0
  91. package/dist/dashboard/snapshots.js +88 -0
  92. package/dist/dashboard/snapshots.js.map +1 -0
  93. package/dist/dashboard/summary.d.ts.map +1 -1
  94. package/dist/dashboard/summary.js +11 -6
  95. package/dist/dashboard/summary.js.map +1 -1
  96. package/dist/dashboard/telemetry.d.ts +3 -1
  97. package/dist/dashboard/telemetry.d.ts.map +1 -1
  98. package/dist/dashboard/telemetry.js +55 -12
  99. package/dist/dashboard/telemetry.js.map +1 -1
  100. package/dist/dashboard/ui.d.ts +33 -6
  101. package/dist/dashboard/ui.d.ts.map +1 -1
  102. package/dist/dashboard/ui.js +44 -6
  103. package/dist/dashboard/ui.js.map +1 -1
  104. package/dist/dashboard.css +193 -2
  105. package/dist/server/ingest.d.ts +2 -5
  106. package/dist/server/ingest.d.ts.map +1 -1
  107. package/dist/server/ingest.js +47 -10
  108. package/dist/server/ingest.js.map +1 -1
  109. package/dist/server/queries.d.ts +64 -11
  110. package/dist/server/queries.d.ts.map +1 -1
  111. package/dist/server/queries.js +207 -37
  112. package/dist/server/queries.js.map +1 -1
  113. package/dist/server/reclassify.d.ts +3 -0
  114. package/dist/server/reclassify.d.ts.map +1 -0
  115. package/dist/server/reclassify.js +65 -0
  116. package/dist/server/reclassify.js.map +1 -0
  117. package/dist/server/snapshots.d.ts +81 -0
  118. package/dist/server/snapshots.d.ts.map +1 -0
  119. package/dist/server/snapshots.js +371 -0
  120. package/dist/server/snapshots.js.map +1 -0
  121. package/dist/server/store.d.ts +5 -0
  122. package/dist/server/store.d.ts.map +1 -1
  123. package/dist/server/store.js +17 -0
  124. package/dist/server/store.js.map +1 -1
  125. package/dist/server/telemetry.d.ts +13 -0
  126. package/dist/server/telemetry.d.ts.map +1 -1
  127. package/dist/server/telemetry.js +28 -7
  128. package/dist/server/telemetry.js.map +1 -1
  129. package/dist/shared/capture-status.d.ts +99 -0
  130. package/dist/shared/capture-status.d.ts.map +1 -0
  131. package/dist/shared/capture-status.js +133 -0
  132. package/dist/shared/capture-status.js.map +1 -0
  133. package/dist/shared/error-noise.d.ts +39 -0
  134. package/dist/shared/error-noise.d.ts.map +1 -0
  135. package/dist/shared/error-noise.js +101 -0
  136. package/dist/shared/error-noise.js.map +1 -0
  137. package/dist/shared/metric-buckets.d.ts +31 -0
  138. package/dist/shared/metric-buckets.d.ts.map +1 -0
  139. package/dist/shared/metric-buckets.js +49 -0
  140. package/dist/shared/metric-buckets.js.map +1 -0
  141. package/dist/shared/text-signals.d.ts +56 -0
  142. package/dist/shared/text-signals.d.ts.map +1 -0
  143. package/dist/shared/text-signals.js +80 -0
  144. package/dist/shared/text-signals.js.map +1 -0
  145. package/dist/shared/types.d.ts +1 -1
  146. package/dist/shared/types.d.ts.map +1 -1
  147. package/dist/shared/types.js +4 -0
  148. package/dist/shared/types.js.map +1 -1
  149. package/docs/SETUP.md +25 -0
  150. package/package.json +9 -2
@@ -38,6 +38,7 @@
38
38
  --tw-ring-offset-width: 0px;
39
39
  --tw-ring-offset-color: #fff;
40
40
  --tw-ring-offset-shadow: 0 0 #0000;
41
+ --tw-outline-style: solid;
41
42
  --tw-blur: initial;
42
43
  --tw-brightness: initial;
43
44
  --tw-contrast: initial;
@@ -99,6 +100,7 @@
99
100
  --container-md: 28rem;
100
101
  --container-lg: 32rem;
101
102
  --container-xl: 36rem;
103
+ --container-3xl: 48rem;
102
104
  --container-5xl: 64rem;
103
105
  --container-6xl: 72rem;
104
106
  --font-weight-normal: 400;
@@ -387,6 +389,10 @@
387
389
  }
388
390
  }
389
391
 
392
+ .polishd-root.polishd-root .mx-1\.5 {
393
+ margin-inline: calc(var(--spacing) * 1.5);
394
+ }
395
+
390
396
  .polishd-root.polishd-root .mx-4 {
391
397
  margin-inline: calc(var(--spacing) * 4);
392
398
  }
@@ -487,6 +493,10 @@
487
493
  margin-top: 1px;
488
494
  }
489
495
 
496
+ .polishd-root.polishd-root .mr-1\.5 {
497
+ margin-right: calc(var(--spacing) * 1.5);
498
+ }
499
+
490
500
  .polishd-root.polishd-root .mb-2 {
491
501
  margin-bottom: calc(var(--spacing) * 2);
492
502
  }
@@ -551,6 +561,10 @@
551
561
  display: table;
552
562
  }
553
563
 
564
+ .polishd-root.polishd-root .aspect-\[4\/5\] {
565
+ aspect-ratio: 4 / 5;
566
+ }
567
+
554
568
  .polishd-root.polishd-root .h-1 {
555
569
  height: var(--spacing);
556
570
  }
@@ -623,6 +637,10 @@
623
637
  height: 15px;
624
638
  }
625
639
 
640
+ .polishd-root.polishd-root .h-\[18px\] {
641
+ height: 18px;
642
+ }
643
+
626
644
  .polishd-root.polishd-root .h-\[22px\] {
627
645
  height: 22px;
628
646
  }
@@ -639,6 +657,10 @@
639
657
  height: 1px;
640
658
  }
641
659
 
660
+ .polishd-root.polishd-root .max-h-96 {
661
+ max-height: calc(var(--spacing) * 96);
662
+ }
663
+
642
664
  .polishd-root.polishd-root .max-h-\[80vh\] {
643
665
  max-height: 80vh;
644
666
  }
@@ -775,6 +797,10 @@
775
797
  width: 1px;
776
798
  }
777
799
 
800
+ .polishd-root.polishd-root .max-w-3xl {
801
+ max-width: var(--container-3xl);
802
+ }
803
+
778
804
  .polishd-root.polishd-root .max-w-5xl {
779
805
  max-width: var(--container-5xl);
780
806
  }
@@ -867,8 +893,8 @@
867
893
  min-width: 560px;
868
894
  }
869
895
 
870
- .polishd-root.polishd-root .min-w-\[640px\] {
871
- min-width: 640px;
896
+ .polishd-root.polishd-root .min-w-\[760px\] {
897
+ min-width: 760px;
872
898
  }
873
899
 
874
900
  .polishd-root.polishd-root .min-w-\[820px\] {
@@ -952,6 +978,10 @@
952
978
  cursor: pointer;
953
979
  }
954
980
 
981
+ .polishd-root.polishd-root .cursor-zoom-out {
982
+ cursor: zoom-out;
983
+ }
984
+
955
985
  .polishd-root.polishd-root .resize {
956
986
  resize: both;
957
987
  }
@@ -960,6 +990,10 @@
960
990
  resize: vertical;
961
991
  }
962
992
 
993
+ .polishd-root.polishd-root .list-none {
994
+ list-style-type: none;
995
+ }
996
+
963
997
  .polishd-root.polishd-root .grid-cols-1 {
964
998
  grid-template-columns: repeat(1, minmax(0, 1fr));
965
999
  }
@@ -1240,6 +1274,14 @@
1240
1274
  border-color: #2e2e2e;
1241
1275
  }
1242
1276
 
1277
+ .polishd-root.polishd-root .border-\[\#222\] {
1278
+ border-color: #222;
1279
+ }
1280
+
1281
+ .polishd-root.polishd-root .border-\[\#333\] {
1282
+ border-color: #333;
1283
+ }
1284
+
1243
1285
  .polishd-root.polishd-root .border-\[\#444\] {
1244
1286
  border-color: #444;
1245
1287
  }
@@ -1308,6 +1350,10 @@
1308
1350
  background-color: #0d0d0d;
1309
1351
  }
1310
1352
 
1353
+ .polishd-root.polishd-root .bg-\[\#0f0f0f\] {
1354
+ background-color: #0f0f0f;
1355
+ }
1356
+
1311
1357
  .polishd-root.polishd-root .bg-\[\#1a1a1a\] {
1312
1358
  background-color: #1a1a1a;
1313
1359
  }
@@ -1316,6 +1362,14 @@
1316
1362
  background-color: #1c1c1c;
1317
1363
  }
1318
1364
 
1365
+ .polishd-root.polishd-root .bg-\[\#1e1e1e\] {
1366
+ background-color: #1e1e1e;
1367
+ }
1368
+
1369
+ .polishd-root.polishd-root .bg-\[\#1e132b\] {
1370
+ background-color: #1e132b;
1371
+ }
1372
+
1319
1373
  .polishd-root.polishd-root .bg-\[\#2e2e2e\] {
1320
1374
  background-color: #2e2e2e;
1321
1375
  }
@@ -1444,6 +1498,16 @@
1444
1498
  }
1445
1499
  }
1446
1500
 
1501
+ .polishd-root.polishd-root .bg-black\/85 {
1502
+ background-color: #000000d9;
1503
+ }
1504
+
1505
+ @supports (color: color-mix(in lab, red, red)) {
1506
+ .polishd-root.polishd-root .bg-black\/85 {
1507
+ background-color: color-mix(in oklab, var(--color-black) 85%, transparent);
1508
+ }
1509
+ }
1510
+
1447
1511
  .polishd-root.polishd-root .bg-blue-500 {
1448
1512
  background-color: var(--color-blue-500);
1449
1513
  }
@@ -1528,6 +1592,18 @@
1528
1592
  background-color: var(--color-white);
1529
1593
  }
1530
1594
 
1595
+ .polishd-root.polishd-root .object-cover {
1596
+ object-fit: cover;
1597
+ }
1598
+
1599
+ .polishd-root.polishd-root .object-top {
1600
+ object-position: top;
1601
+ }
1602
+
1603
+ .polishd-root.polishd-root .p-0\.5 {
1604
+ padding: calc(var(--spacing) * .5);
1605
+ }
1606
+
1531
1607
  .polishd-root.polishd-root .p-4 {
1532
1608
  padding: calc(var(--spacing) * 4);
1533
1609
  }
@@ -1536,6 +1612,10 @@
1536
1612
  padding: calc(var(--spacing) * 5);
1537
1613
  }
1538
1614
 
1615
+ .polishd-root.polishd-root .p-6 {
1616
+ padding: calc(var(--spacing) * 6);
1617
+ }
1618
+
1539
1619
  .polishd-root.polishd-root .px-1 {
1540
1620
  padding-inline: var(--spacing);
1541
1621
  }
@@ -1624,6 +1704,10 @@
1624
1704
  padding-block: calc(var(--spacing) * 9);
1625
1705
  }
1626
1706
 
1707
+ .polishd-root.polishd-root .py-10 {
1708
+ padding-block: calc(var(--spacing) * 10);
1709
+ }
1710
+
1627
1711
  .polishd-root.polishd-root .py-\[3px\] {
1628
1712
  padding-block: 3px;
1629
1713
  }
@@ -1652,6 +1736,10 @@
1652
1736
  padding-block: 1px;
1653
1737
  }
1654
1738
 
1739
+ .polishd-root.polishd-root .pt-3 {
1740
+ padding-top: calc(var(--spacing) * 3);
1741
+ }
1742
+
1655
1743
  .polishd-root.polishd-root .pt-4 {
1656
1744
  padding-top: calc(var(--spacing) * 4);
1657
1745
  }
@@ -1696,6 +1784,10 @@
1696
1784
  padding-bottom: var(--spacing);
1697
1785
  }
1698
1786
 
1787
+ .polishd-root.polishd-root .pb-2 {
1788
+ padding-bottom: calc(var(--spacing) * 2);
1789
+ }
1790
+
1699
1791
  .polishd-root.polishd-root .pb-3 {
1700
1792
  padding-bottom: calc(var(--spacing) * 3);
1701
1793
  }
@@ -2036,6 +2128,14 @@
2036
2128
  letter-spacing: var(--tracking-wider);
2037
2129
  }
2038
2130
 
2131
+ .polishd-root.polishd-root .break-words {
2132
+ overflow-wrap: break-word;
2133
+ }
2134
+
2135
+ .polishd-root.polishd-root .break-all {
2136
+ word-break: break-all;
2137
+ }
2138
+
2039
2139
  .polishd-root.polishd-root .whitespace-nowrap {
2040
2140
  white-space: nowrap;
2041
2141
  }
@@ -2052,6 +2152,10 @@
2052
2152
  color: #7fb2e5;
2053
2153
  }
2054
2154
 
2155
+ .polishd-root.polishd-root .text-\[\#8a6a6a\] {
2156
+ color: #8a6a6a;
2157
+ }
2158
+
2055
2159
  .polishd-root.polishd-root .text-\[\#444\] {
2056
2160
  color: #444;
2057
2161
  }
@@ -2080,6 +2184,10 @@
2080
2184
  color: #aaa;
2081
2185
  }
2082
2186
 
2187
+ .polishd-root.polishd-root .text-\[\#b083f0\] {
2188
+ color: #b083f0;
2189
+ }
2190
+
2083
2191
  .polishd-root.polishd-root .text-\[\#bbb\] {
2084
2192
  color: #bbb;
2085
2193
  }
@@ -2108,6 +2216,16 @@
2108
2216
  color: var(--color-amber-400);
2109
2217
  }
2110
2218
 
2219
+ .polishd-root.polishd-root .text-amber-400\/80 {
2220
+ color: #fcbb00cc;
2221
+ }
2222
+
2223
+ @supports (color: color-mix(in lab, red, red)) {
2224
+ .polishd-root.polishd-root .text-amber-400\/80 {
2225
+ color: color-mix(in oklab, var(--color-amber-400) 80%, transparent);
2226
+ }
2227
+ }
2228
+
2111
2229
  .polishd-root.polishd-root .text-black {
2112
2230
  color: var(--color-black);
2113
2231
  }
@@ -2225,6 +2343,10 @@
2225
2343
  opacity: 0;
2226
2344
  }
2227
2345
 
2346
+ .polishd-root.polishd-root .opacity-60 {
2347
+ opacity: .6;
2348
+ }
2349
+
2228
2350
  .polishd-root.polishd-root .opacity-100 {
2229
2351
  opacity: 1;
2230
2352
  }
@@ -2238,11 +2360,21 @@
2238
2360
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2239
2361
  }
2240
2362
 
2363
+ .polishd-root.polishd-root .shadow-xl {
2364
+ --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, #0000001a), 0 8px 10px -6px var(--tw-shadow-color, #0000001a);
2365
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2366
+ }
2367
+
2241
2368
  .polishd-root.polishd-root .ring {
2242
2369
  --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
2243
2370
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2244
2371
  }
2245
2372
 
2373
+ .polishd-root.polishd-root .outline {
2374
+ outline-style: var(--tw-outline-style);
2375
+ outline-width: 1px;
2376
+ }
2377
+
2246
2378
  .polishd-root.polishd-root .filter {
2247
2379
  filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
2248
2380
  }
@@ -2271,6 +2403,11 @@
2271
2403
  transition-duration: var(--tw-duration, var(--default-transition-duration));
2272
2404
  }
2273
2405
 
2406
+ .polishd-root.polishd-root .duration-100 {
2407
+ --tw-duration: .1s;
2408
+ transition-duration: .1s;
2409
+ }
2410
+
2274
2411
  .polishd-root.polishd-root .duration-150 {
2275
2412
  --tw-duration: .15s;
2276
2413
  transition-duration: .15s;
@@ -2301,6 +2438,14 @@
2301
2438
  transition-timing-function: var(--ease-out);
2302
2439
  }
2303
2440
 
2441
+ .polishd-root.polishd-root .group-open\:hidden:is(:where(.group):is([open], :popover-open, :open) *) {
2442
+ display: none;
2443
+ }
2444
+
2445
+ .polishd-root.polishd-root .group-open\:inline:is(:where(.group):is([open], :popover-open, :open) *) {
2446
+ display: inline;
2447
+ }
2448
+
2304
2449
  @media (hover: hover) {
2305
2450
  .polishd-root.polishd-root .group-hover\:scale-100:is(:where(.group):hover *) {
2306
2451
  --tw-scale-x: 100%;
@@ -2317,6 +2462,10 @@
2317
2462
  color: var(--color-white);
2318
2463
  }
2319
2464
 
2465
+ .polishd-root.polishd-root .group-hover\:opacity-100:is(:where(.group):hover *) {
2466
+ opacity: 1;
2467
+ }
2468
+
2320
2469
  .polishd-root.polishd-root .group-hover\/chip\:opacity-0:is(:where(.group\/chip):hover *) {
2321
2470
  opacity: 0;
2322
2471
  }
@@ -2343,7 +2492,15 @@
2343
2492
  border-top-width: 0;
2344
2493
  }
2345
2494
 
2495
+ .polishd-root.polishd-root .focus-within\:border-\[\#555\]:focus-within {
2496
+ border-color: #555;
2497
+ }
2498
+
2346
2499
  @media (hover: hover) {
2500
+ .polishd-root.polishd-root .hover\:border-\[\#3a3a3a\]:hover {
2501
+ border-color: #3a3a3a;
2502
+ }
2503
+
2347
2504
  .polishd-root.polishd-root .hover\:border-\[\#4a4a4a\]:hover {
2348
2505
  border-color: #4a4a4a;
2349
2506
  }
@@ -2372,10 +2529,18 @@
2372
2529
  background-color: #232323;
2373
2530
  }
2374
2531
 
2532
+ .polishd-root.polishd-root .hover\:text-\[\#8ab4f8\]:hover {
2533
+ color: #8ab4f8;
2534
+ }
2535
+
2375
2536
  .polishd-root.polishd-root .hover\:text-\[\#888\]:hover {
2376
2537
  color: #888;
2377
2538
  }
2378
2539
 
2540
+ .polishd-root.polishd-root .hover\:text-\[\#aaa\]:hover {
2541
+ color: #aaa;
2542
+ }
2543
+
2379
2544
  .polishd-root.polishd-root .hover\:text-\[\#ccc\]:hover {
2380
2545
  color: #ccc;
2381
2546
  }
@@ -2406,6 +2571,10 @@
2406
2571
  border-color: #777;
2407
2572
  }
2408
2573
 
2574
+ .polishd-root.polishd-root .disabled\:cursor-default:disabled {
2575
+ cursor: default;
2576
+ }
2577
+
2409
2578
  .polishd-root.polishd-root .disabled\:cursor-not-allowed:disabled {
2410
2579
  cursor: not-allowed;
2411
2580
  }
@@ -2414,6 +2583,10 @@
2414
2583
  text-decoration-line: none;
2415
2584
  }
2416
2585
 
2586
+ .polishd-root.polishd-root .disabled\:opacity-30:disabled {
2587
+ opacity: .3;
2588
+ }
2589
+
2417
2590
  .polishd-root.polishd-root .disabled\:opacity-40:disabled {
2418
2591
  opacity: .4;
2419
2592
  }
@@ -2499,6 +2672,10 @@
2499
2672
  grid-template-columns: repeat(4, minmax(0, 1fr));
2500
2673
  }
2501
2674
 
2675
+ .polishd-root.polishd-root .sm\:grid-cols-5 {
2676
+ grid-template-columns: repeat(5, minmax(0, 1fr));
2677
+ }
2678
+
2502
2679
  .polishd-root.polishd-root .sm\:grid-cols-6 {
2503
2680
  grid-template-columns: repeat(6, minmax(0, 1fr));
2504
2681
  }
@@ -2599,6 +2776,10 @@
2599
2776
  grid-template-columns: repeat(3, minmax(0, 1fr));
2600
2777
  }
2601
2778
 
2779
+ .polishd-root.polishd-root .lg\:grid-cols-4 {
2780
+ grid-template-columns: repeat(4, minmax(0, 1fr));
2781
+ }
2782
+
2602
2783
  .polishd-root.polishd-root .lg\:grid-cols-6 {
2603
2784
  grid-template-columns: repeat(6, minmax(0, 1fr));
2604
2785
  }
@@ -2663,6 +2844,10 @@
2663
2844
  }
2664
2845
  }
2665
2846
 
2847
+ .polishd-root.polishd-root .\[\&\:\:-webkit-details-marker\]\:hidden::-webkit-details-marker {
2848
+ display: none;
2849
+ }
2850
+
2666
2851
  @property --tw-translate-x {
2667
2852
  syntax: "*";
2668
2853
  inherits: false;
@@ -2855,6 +3040,12 @@
2855
3040
  initial-value: 0 0 #0000;
2856
3041
  }
2857
3042
 
3043
+ @property --tw-outline-style {
3044
+ syntax: "*";
3045
+ inherits: false;
3046
+ initial-value: solid;
3047
+ }
3048
+
2858
3049
  @property --tw-blur {
2859
3050
  syntax: "*";
2860
3051
  inherits: false
@@ -18,11 +18,8 @@ import { type PolishdConfig } from "../config";
18
18
  * so out loud.
19
19
  */
20
20
  export declare const NO_SESSION_META_KEY = "no_session_rejects";
21
- /** Shape stored under {@link NO_SESSION_META_KEY}. */
22
- export interface NoSessionRecord {
23
- count: number;
24
- lastAt: number;
25
- }
21
+ /** Re-exported so callers keep importing the record shape from ingest. */
22
+ export type { NoSessionRecord } from "../shared/capture-status";
26
23
  export interface IngestResult {
27
24
  ok: boolean;
28
25
  stored: number;
@@ -1 +1 @@
1
- {"version":3,"file":"ingest.d.ts","sourceRoot":"","sources":["../../src/server/ingest.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,WAAW,CAAC;AAenB;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,uBAAuB,CAAC;AAExD,sDAAsD;AACtD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AA+BD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAElF;AAkCD;;;;;;GAMG;AACH,wBAAsB,MAAM,CAC1B,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,MAAM,GAAE,OAAO,CAAC,aAAa,CAAM,GAClC,OAAO,CAAC,YAAY,CAAC,CA4BvB;AAcD;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAc5F;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,MAAM,GAAE,OAAO,CAAC,aAAa,CAAM,GAClC,OAAO,CAAC,YAAY,CAAC,CAsBvB"}
1
+ {"version":3,"file":"ingest.d.ts","sourceRoot":"","sources":["../../src/server/ingest.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,WAAW,CAAC;AAkBnB;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,uBAAuB,CAAC;AAExD,0EAA0E;AAC1E,YAAY,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AA4DhE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAElF;AA0CD;;;;;;GAMG;AACH,wBAAsB,MAAM,CAC1B,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,MAAM,GAAE,OAAO,CAAC,aAAa,CAAM,GAClC,OAAO,CAAC,YAAY,CAAC,CA6BvB;AAcD;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAc5F;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,MAAM,GAAE,OAAO,CAAC,aAAa,CAAM,GAClC,OAAO,CAAC,YAAY,CAAC,CAsBvB"}
@@ -6,6 +6,9 @@
6
6
  * body, so events are always attributed to the bearer of the cookie.
7
7
  */
8
8
  import { defaultPolishdConfig, isDashboardPath, resolveDashboardRoute, } from "../config";
9
+ import { foldNoSessionDrop, parseNoSessionRecord } from "../shared/capture-status";
10
+ import { isIgnorableError } from "../shared/error-noise";
11
+ import { reclassifiedClickType } from "../shared/text-signals";
9
12
  import { CLIENT_EVENT_TYPES } from "../shared/types";
10
13
  import { getMeta, insertEvents, setMeta } from "./store";
11
14
  const MAX_EVENTS_PER_BATCH = 200;
@@ -33,6 +36,17 @@ export const NO_SESSION_META_KEY = "no_session_rejects";
33
36
  // A broken proxy means *every* beacon is rejected, so writing per rejection
34
37
  // would answer a diagnostic with a write storm. Collapse them instead: count
35
38
  // in memory, persist at most once a minute.
39
+ //
40
+ // The in-memory half of that only works while the module stays alive. On
41
+ // serverless every cold start resets it, so sparse traffic — scattered bot
42
+ // POSTs, exactly the noise the throttle exists to absorb — used to persist
43
+ // roughly 1:1. The stored `lastAt` is the half that survives, so it gates the
44
+ // write too: a fresh instance reads what the last one wrote and stays quiet
45
+ // if the minute isn't up. Its own tally is then lost with the instance, which
46
+ // is the right trade — this counter is a health signal, not an audit log, and
47
+ // under-reporting scattered noise is the behaviour that was intended all
48
+ // along. A genuinely broken proxy still writes every minute, and the
49
+ // dashboard's real evidence there is that nothing is being stored at all.
36
50
  const RECORD_INTERVAL_MS = 60_000;
37
51
  let lastPersistedAt = 0;
38
52
  let unpersisted = 0;
@@ -45,21 +59,38 @@ async function recordNoSession() {
45
59
  const batch = unpersisted;
46
60
  unpersisted = 0;
47
61
  try {
48
- let count = 0;
49
- const raw = await getMeta(NO_SESSION_META_KEY);
50
- if (raw) {
51
- const prev = JSON.parse(raw);
52
- if (typeof prev.count === "number" && Number.isFinite(prev.count))
53
- count = prev.count;
62
+ const prev = parseNoSessionRecord(await getMeta(NO_SESSION_META_KEY));
63
+ if (prev && now - prev.lastAt < RECORD_INTERVAL_MS) {
64
+ // Another invocation (or this one) wrote inside the minute. Hand the
65
+ // tally back so a warm instance folds it into the next write.
66
+ unpersisted += batch;
67
+ return;
54
68
  }
55
- const next = { count: count + batch, lastAt: now };
56
- await setMeta(NO_SESSION_META_KEY, JSON.stringify(next));
69
+ await setMeta(NO_SESSION_META_KEY, JSON.stringify(foldNoSessionDrop(prev, now, batch)));
57
70
  }
58
71
  catch {
59
72
  // Diagnostics must never take ingest down with them. A store that can't
60
73
  // record the rejection still returns a clean result to the beacon.
61
74
  }
62
75
  }
76
+ /**
77
+ * True for a `js_error` the client should already have dropped: an extension's
78
+ * throw, not the site's. The client filters these at capture, but a cached
79
+ * bundle can predate that filter by a full session — and the endpoint is a
80
+ * public POST — so the rule that actually holds lives here too, the same way
81
+ * the dashboard-path exclusion does.
82
+ *
83
+ * Only `message` and `source` survive into the event; the stack the client
84
+ * inspects is not sent, so this catches less than the client does. That's the
85
+ * intended split: the client is the precise filter, this is the backstop.
86
+ */
87
+ function isNoisyError(e, ignore) {
88
+ if (e.type !== "js_error")
89
+ return false;
90
+ const message = typeof e.meta?.message === "string" ? e.meta.message : "";
91
+ const source = typeof e.meta?.source === "string" ? e.meta.source : "";
92
+ return isIgnorableError({ message, source, ignore });
93
+ }
63
94
  /**
64
95
  * Pull the anonymous session id from the cookie. Returns null when absent —
65
96
  * the middleware normally guarantees one, but a client with cookies disabled
@@ -101,6 +132,12 @@ function sanitize(raw) {
101
132
  }
102
133
  out.meta = meta;
103
134
  }
135
+ // The current client never records a dead/rage click on text (reading, not
136
+ // friction) — but a cached bundle can lag that rule by a full session, and a
137
+ // telemetry emitter on an older package by whole releases. So the rule that
138
+ // actually holds lives here too: retype stragglers to `text_click`, exactly
139
+ // what the one-time sweep does to rows already stored.
140
+ out.type = reclassifiedClickType(out.type, out.selector, out.text);
104
141
  return out;
105
142
  }
106
143
  /**
@@ -132,7 +169,7 @@ export async function ingest(body, cookieValue, config = {}) {
132
169
  const events = rawEvents
133
170
  .slice(0, MAX_EVENTS_PER_BATCH)
134
171
  .map(sanitize)
135
- .filter((e) => e !== null && !isDashboardPath(e.path, dashboardRoute));
172
+ .filter((e) => e !== null && !isDashboardPath(e.path, dashboardRoute) && !isNoisyError(e, cfg.ignoreErrors));
136
173
  const stored = await insertEvents(sessionId, events);
137
174
  return { ok: true, stored };
138
175
  }
@@ -211,7 +248,7 @@ export async function ingestTelemetry(body, installId, config = {}) {
211
248
  const events = rawEvents
212
249
  .slice(0, MAX_EVENTS_PER_BATCH)
213
250
  .map(sanitize)
214
- .filter((e) => e !== null);
251
+ .filter((e) => e !== null && !isNoisyError(e, cfg.ignoreErrors));
215
252
  const stored = await insertEvents(sessionId, events, installId);
216
253
  return { ok: true, stored };
217
254
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ingest.js","sourceRoot":"","sources":["../../src/server/ingest.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,qBAAqB,GAEtB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,kBAAkB,EAAqB,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzD,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACjC,MAAM,YAAY,GAAG,GAAG,CAAC;AACzB,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAC7B;;;;;GAKG;AACH,MAAM,sBAAsB,GAAG,MAAM,CAAC;AAEtC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,oBAAoB,CAAC;AAQxD,4EAA4E;AAC5E,6EAA6E;AAC7E,4CAA4C;AAC5C,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAClC,IAAI,eAAe,GAAG,CAAC,CAAC;AACxB,IAAI,WAAW,GAAG,CAAC,CAAC;AAEpB,KAAK,UAAU,eAAe;IAC5B,WAAW,EAAE,CAAC;IACd,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,GAAG,GAAG,eAAe,GAAG,kBAAkB;QAAE,OAAO;IACvD,eAAe,GAAG,GAAG,CAAC;IACtB,MAAM,KAAK,GAAG,WAAW,CAAC;IAC1B,WAAW,GAAG,CAAC,CAAC;IAChB,IAAI,CAAC;QACH,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAC/C,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA6B,CAAC;YACzD,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;gBAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxF,CAAC;QACD,MAAM,IAAI,GAAoB,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QACpE,MAAM,OAAO,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,wEAAwE;QACxE,mEAAmE;IACrE,CAAC;AACH,CAAC;AAQD;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,WAA+B;IACjE,OAAO,WAAW,IAAI,WAAW,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AACtE,CAAC;AAED,oEAAoE;AACpE,SAAS,QAAQ,CAAC,GAAY;IAC5B,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,CAAC,GAAG,GAA8B,CAAC;IAEzC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;IACpB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAA4B,CAAC,EAAE,CAAC;QACtF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IACjF,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAErE,MAAM,GAAG,GAAiB,EAAE,IAAI,EAAE,IAA4B,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IAE3E,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ;QAAE,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;IACzF,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ;QAAE,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9E,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;QAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IAChF,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;QAAE,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;IAEjF,IAAI,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACzC,MAAM,IAAI,GAAsC,EAAE,CAAC;QACnD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAA+B,CAAC,EAAE,CAAC;YACvE,IAAI,CAAC,CAAC,MAAM,GAAG,EAAE;gBAAE,SAAS;YAC5B,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,GAAG,CAAC;YACzF,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;iBAChD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI;gBAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACtF,CAAC;QACD,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,IAAa,EACb,WAA+B,EAC/B,SAAiC,EAAE;IAEnC,MAAM,GAAG,GAAG,EAAE,GAAG,oBAAoB,EAAE,GAAG,MAAM,EAAE,CAAC;IACnD,2EAA2E;IAC3E,sEAAsE;IACtE,sEAAsE;IACtE,MAAM,cAAc,GAAG,qBAAqB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACpE,MAAM,SAAS,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACnD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,eAAe,EAAE,CAAC;QACxB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IACvD,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,OAAO;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAErE,MAAM,SAAS,GAAI,IAA6B,EAAE,MAAM,CAAC;IACzD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAEpF,4EAA4E;IAC5E,2EAA2E;IAC3E,kEAAkE;IAClE,MAAM,MAAM,GAAG,SAAS;SACrB,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC;SAC9B,GAAG,CAAC,QAAQ,CAAC;SACb,MAAM,CACL,CAAC,CAAC,EAAqB,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,EAAE,cAAc,CAAC,CACjF,CAAC;IAEJ,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACrD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC;AAED,gFAAgF;AAEhF;;;;GAIG;AACH,MAAM,eAAe,GAAG,wBAAwB,CAAC;AAEjD,gFAAgF;AAChF,MAAM,WAAW,GAAG,yCAAyC,CAAC;AAE9D;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAqB,EAAE,IAAmB;IAC3E,IAAI,MAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QAChC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC;YAC1C,OAAO,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACpE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC;IAChE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAa,EACb,SAAwB,EACxB,SAAiC,EAAE;IAEnC,MAAM,GAAG,GAAG,EAAE,GAAG,oBAAoB,EAAE,GAAG,MAAM,EAAE,CAAC;IACnD,IAAI,CAAC,GAAG,CAAC,OAAO;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IACrE,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IAExE,MAAM,CAAC,GAAG,IAA+D,CAAC;IAC1E,MAAM,SAAS,GACb,OAAO,CAAC,EAAE,SAAS,KAAK,QAAQ,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACnE,CAAC,CAAC,CAAC,CAAC,SAAS;QACb,CAAC,CAAC,IAAI,CAAC;IACX,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IAExE,MAAM,SAAS,GAAG,CAAC,EAAE,MAAM,CAAC;IAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAEpF,MAAM,MAAM,GAAG,SAAS;SACrB,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC;SAC9B,GAAG,CAAC,QAAQ,CAAC;SACb,MAAM,CAAC,CAAC,CAAC,EAAqB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IAEhD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAChE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"ingest.js","sourceRoot":"","sources":["../../src/server/ingest.ts"],"names":[],"mappings":"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"}