@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.
- package/AGENTS.md +2 -1
- package/CHANGELOG.md +238 -0
- package/README.md +63 -0
- package/bin/doctor.mjs +8 -1
- package/dist/ai/digest.d.ts.map +1 -1
- package/dist/ai/digest.js +3 -2
- package/dist/ai/digest.js.map +1 -1
- package/dist/ai/github.d.ts +22 -1
- package/dist/ai/github.d.ts.map +1 -1
- package/dist/ai/github.js +99 -3
- package/dist/ai/github.js.map +1 -1
- package/dist/ai/issue-pages.d.ts +52 -0
- package/dist/ai/issue-pages.d.ts.map +1 -0
- package/dist/ai/issue-pages.js +50 -0
- package/dist/ai/issue-pages.js.map +1 -0
- package/dist/ai/issues.d.ts +13 -1
- package/dist/ai/issues.d.ts.map +1 -1
- package/dist/ai/issues.js +60 -4
- package/dist/ai/issues.js.map +1 -1
- package/dist/ai/summary.d.ts.map +1 -1
- package/dist/ai/summary.js +7 -0
- package/dist/ai/summary.js.map +1 -1
- package/dist/ai/types.d.ts +43 -0
- package/dist/ai/types.d.ts.map +1 -1
- package/dist/client/dom.d.ts +23 -0
- package/dist/client/dom.d.ts.map +1 -1
- package/dist/client/dom.js +45 -2
- package/dist/client/dom.js.map +1 -1
- package/dist/client/init.d.ts.map +1 -1
- package/dist/client/init.js +54 -14
- package/dist/client/init.js.map +1 -1
- package/dist/client/monitor.d.ts.map +1 -1
- package/dist/client/monitor.js +5 -1
- package/dist/client/monitor.js.map +1 -1
- package/dist/client/script-provenance.d.ts +21 -0
- package/dist/client/script-provenance.d.ts.map +1 -0
- package/dist/client/script-provenance.js +127 -0
- package/dist/client/script-provenance.js.map +1 -0
- package/dist/config.d.ts +10 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -0
- package/dist/config.js.map +1 -1
- package/dist/dashboard/chrome.d.ts +4 -2
- package/dist/dashboard/chrome.d.ts.map +1 -1
- package/dist/dashboard/chrome.js +15 -5
- package/dist/dashboard/chrome.js.map +1 -1
- package/dist/dashboard/design-review-card.d.ts.map +1 -1
- package/dist/dashboard/design-review-card.js +3 -3
- package/dist/dashboard/design-review-card.js.map +1 -1
- package/dist/dashboard/design.d.ts +5 -1
- package/dist/dashboard/design.d.ts.map +1 -1
- package/dist/dashboard/design.js +3 -2
- package/dist/dashboard/design.js.map +1 -1
- package/dist/dashboard/drawer.d.ts +34 -0
- package/dist/dashboard/drawer.d.ts.map +1 -0
- package/dist/dashboard/drawer.js +44 -0
- package/dist/dashboard/drawer.js.map +1 -0
- package/dist/dashboard/index.d.ts +3 -1
- package/dist/dashboard/index.d.ts.map +1 -1
- package/dist/dashboard/index.js +48 -37
- package/dist/dashboard/index.js.map +1 -1
- package/dist/dashboard/installs.d.ts.map +1 -1
- package/dist/dashboard/installs.js +2 -1
- package/dist/dashboard/installs.js.map +1 -1
- package/dist/dashboard/issues.d.ts +9 -0
- package/dist/dashboard/issues.d.ts.map +1 -0
- package/dist/dashboard/issues.js +81 -0
- package/dist/dashboard/issues.js.map +1 -0
- package/dist/dashboard/journeys.d.ts.map +1 -1
- package/dist/dashboard/journeys.js +4 -2
- package/dist/dashboard/journeys.js.map +1 -1
- package/dist/dashboard/metric-trends.d.ts +6 -0
- package/dist/dashboard/metric-trends.d.ts.map +1 -0
- package/dist/dashboard/metric-trends.js +236 -0
- package/dist/dashboard/metric-trends.js.map +1 -0
- package/dist/dashboard/pages.d.ts.map +1 -1
- package/dist/dashboard/pages.js +8 -46
- package/dist/dashboard/pages.js.map +1 -1
- package/dist/dashboard/settings.d.ts.map +1 -1
- package/dist/dashboard/settings.js +6 -2
- package/dist/dashboard/settings.js.map +1 -1
- package/dist/dashboard/show-more.d.ts.map +1 -1
- package/dist/dashboard/show-more.js +1 -1
- package/dist/dashboard/show-more.js.map +1 -1
- package/dist/dashboard/snapshot-actions.d.ts +16 -0
- package/dist/dashboard/snapshot-actions.d.ts.map +1 -0
- package/dist/dashboard/snapshot-actions.js +79 -0
- package/dist/dashboard/snapshot-actions.js.map +1 -0
- package/dist/dashboard/snapshots.d.ts +13 -0
- package/dist/dashboard/snapshots.d.ts.map +1 -0
- package/dist/dashboard/snapshots.js +88 -0
- package/dist/dashboard/snapshots.js.map +1 -0
- package/dist/dashboard/summary.d.ts.map +1 -1
- package/dist/dashboard/summary.js +11 -6
- package/dist/dashboard/summary.js.map +1 -1
- package/dist/dashboard/telemetry.d.ts +3 -1
- package/dist/dashboard/telemetry.d.ts.map +1 -1
- package/dist/dashboard/telemetry.js +55 -12
- package/dist/dashboard/telemetry.js.map +1 -1
- package/dist/dashboard/ui.d.ts +33 -6
- package/dist/dashboard/ui.d.ts.map +1 -1
- package/dist/dashboard/ui.js +44 -6
- package/dist/dashboard/ui.js.map +1 -1
- package/dist/dashboard.css +193 -2
- package/dist/server/ingest.d.ts +2 -5
- package/dist/server/ingest.d.ts.map +1 -1
- package/dist/server/ingest.js +47 -10
- package/dist/server/ingest.js.map +1 -1
- package/dist/server/queries.d.ts +64 -11
- package/dist/server/queries.d.ts.map +1 -1
- package/dist/server/queries.js +207 -37
- package/dist/server/queries.js.map +1 -1
- package/dist/server/reclassify.d.ts +3 -0
- package/dist/server/reclassify.d.ts.map +1 -0
- package/dist/server/reclassify.js +65 -0
- package/dist/server/reclassify.js.map +1 -0
- package/dist/server/snapshots.d.ts +81 -0
- package/dist/server/snapshots.d.ts.map +1 -0
- package/dist/server/snapshots.js +371 -0
- package/dist/server/snapshots.js.map +1 -0
- package/dist/server/store.d.ts +5 -0
- package/dist/server/store.d.ts.map +1 -1
- package/dist/server/store.js +17 -0
- package/dist/server/store.js.map +1 -1
- package/dist/server/telemetry.d.ts +13 -0
- package/dist/server/telemetry.d.ts.map +1 -1
- package/dist/server/telemetry.js +28 -7
- package/dist/server/telemetry.js.map +1 -1
- package/dist/shared/capture-status.d.ts +99 -0
- package/dist/shared/capture-status.d.ts.map +1 -0
- package/dist/shared/capture-status.js +133 -0
- package/dist/shared/capture-status.js.map +1 -0
- package/dist/shared/error-noise.d.ts +39 -0
- package/dist/shared/error-noise.d.ts.map +1 -0
- package/dist/shared/error-noise.js +101 -0
- package/dist/shared/error-noise.js.map +1 -0
- package/dist/shared/metric-buckets.d.ts +31 -0
- package/dist/shared/metric-buckets.d.ts.map +1 -0
- package/dist/shared/metric-buckets.js +49 -0
- package/dist/shared/metric-buckets.js.map +1 -0
- package/dist/shared/text-signals.d.ts +56 -0
- package/dist/shared/text-signals.d.ts.map +1 -0
- package/dist/shared/text-signals.js +80 -0
- package/dist/shared/text-signals.js.map +1 -0
- package/dist/shared/types.d.ts +1 -1
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/shared/types.js +4 -0
- package/dist/shared/types.js.map +1 -1
- package/docs/SETUP.md +25 -0
- package/package.json +9 -2
package/dist/dashboard.css
CHANGED
|
@@ -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-\[
|
|
871
|
-
min-width:
|
|
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
|
package/dist/server/ingest.d.ts
CHANGED
|
@@ -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
|
-
/**
|
|
22
|
-
export
|
|
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;
|
|
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"}
|
package/dist/server/ingest.js
CHANGED
|
@@ -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
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
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
|
-
|
|
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;
|
|
1
|
+
{"version":3,"file":"ingest.js","sourceRoot":"","sources":["../../src/server/ingest.ts"],"names":[],"mappings":"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"}
|