@domino-sdk/relay 0.10.0 → 0.11.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.
package/dist/browser.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { SubmitInput, ReviewListOptions, MemberListOptions, ReleaseInput, beginHandoverSchema } from './schema.js';
2
2
  import { SubmissionStore, createRelayClient, QuestView, QuestController, ProgressObservation, questExperienceSchema, ProgressObserver, ExchangeInput, PhotoSubmission, QuizSubmission, ClaimSubmission } from './index.js';
3
- import { r as referralAcceptSchema, L as LeaderboardQuery, w as walletChallengeInputSchema, e as walletProofSchema, f as AuthProvider } from './settings-BA8XjT4m.js';
3
+ import { r as referralAcceptSchema, L as LeaderboardQuery, w as walletChallengeInputSchema, g as walletProofSchema, h as AuthProvider } from './settings-B61jIDDA.js';
4
4
  import * as zod from 'zod';
5
5
 
6
6
  /** Browser client with durable submission recovery; safe to construct during SSR. */
@@ -212,7 +212,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
212
212
  accounts: {
213
213
  id: string;
214
214
  program: string;
215
- kind: "fixed" | "bonus" | "milestone";
215
+ kind: "milestone" | "fixed" | "bonus";
216
216
  balance: string;
217
217
  earned: number;
218
218
  settled: number;
@@ -339,7 +339,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
339
339
  } | undefined;
340
340
  } | undefined;
341
341
  };
342
- connections: ("discord" | "google" | "apple" | "x")[];
342
+ connections: ("google" | "apple" | "x" | "discord")[];
343
343
  trigger: {
344
344
  kind: "manual";
345
345
  input: "quiz" | "photo" | "none";
@@ -382,6 +382,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
382
382
  };
383
383
  completed: boolean;
384
384
  completion: {
385
+ kind: "streak";
386
+ days: number;
387
+ timeZone: string;
388
+ } | {
385
389
  kind: "once";
386
390
  } | {
387
391
  kind: "keyed";
@@ -398,7 +402,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
398
402
  quest: string;
399
403
  member: string;
400
404
  evidence: string | null;
401
- status: "queued" | "evaluating" | "accepted" | "rejected" | "needs-review" | "failed";
405
+ status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
402
406
  reason: string | null;
403
407
  retries: number;
404
408
  generation: number;
@@ -440,12 +444,42 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
440
444
  } | undefined;
441
445
  } | null;
442
446
  release: string;
443
- interaction: "staff" | "quiz" | "photo" | "automatic" | "claim";
447
+ interaction: "quiz" | "photo" | "staff" | "automatic" | "claim";
444
448
  lifecycle: "active" | "paused" | "archived";
445
449
  rewards: {
446
450
  label: string;
447
451
  }[];
448
452
  key?: string | undefined;
453
+ streak?: {
454
+ goal: number;
455
+ current: number;
456
+ best: number;
457
+ today: string;
458
+ todayQualified: boolean;
459
+ timeZone: string;
460
+ nextBoundary: number;
461
+ pendingTimeZone: {
462
+ timeZone: string;
463
+ effectiveAt: number;
464
+ } | null;
465
+ days: {
466
+ day: number;
467
+ date: string;
468
+ timeZone: string;
469
+ occurredAt: number;
470
+ }[];
471
+ milestone: {
472
+ status: "pending";
473
+ } | {
474
+ status: "awarded";
475
+ completion: string;
476
+ achievedAt: number;
477
+ } | {
478
+ status: "budget-exhausted";
479
+ budget: string;
480
+ achievedAt: number;
481
+ };
482
+ } | null | undefined;
449
483
  }>;
450
484
  retry: (view: QuestView) => Promise<{
451
485
  id: string;
@@ -453,7 +487,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
453
487
  quest: string;
454
488
  member: string;
455
489
  evidence: string | null;
456
- status: "queued" | "evaluating" | "accepted" | "rejected" | "needs-review" | "failed";
490
+ status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
457
491
  reason: string | null;
458
492
  retries: number;
459
493
  generation: number;
@@ -519,7 +553,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
519
553
  } | undefined;
520
554
  } | undefined;
521
555
  };
522
- connections: ("discord" | "google" | "apple" | "x")[];
556
+ connections: ("google" | "apple" | "x" | "discord")[];
523
557
  trigger: {
524
558
  kind: "manual";
525
559
  input: "quiz" | "photo" | "none";
@@ -562,6 +596,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
562
596
  };
563
597
  completed: boolean;
564
598
  completion: {
599
+ kind: "streak";
600
+ days: number;
601
+ timeZone: string;
602
+ } | {
565
603
  kind: "once";
566
604
  } | {
567
605
  kind: "keyed";
@@ -578,7 +616,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
578
616
  quest: string;
579
617
  member: string;
580
618
  evidence: string | null;
581
- status: "queued" | "evaluating" | "accepted" | "rejected" | "needs-review" | "failed";
619
+ status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
582
620
  reason: string | null;
583
621
  retries: number;
584
622
  generation: number;
@@ -620,12 +658,42 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
620
658
  } | undefined;
621
659
  } | null;
622
660
  release: string;
623
- interaction: "staff" | "quiz" | "photo" | "automatic" | "claim";
661
+ interaction: "quiz" | "photo" | "staff" | "automatic" | "claim";
624
662
  lifecycle: "active" | "paused" | "archived";
625
663
  rewards: {
626
664
  label: string;
627
665
  }[];
628
666
  key?: string | undefined;
667
+ streak?: {
668
+ goal: number;
669
+ current: number;
670
+ best: number;
671
+ today: string;
672
+ todayQualified: boolean;
673
+ timeZone: string;
674
+ nextBoundary: number;
675
+ pendingTimeZone: {
676
+ timeZone: string;
677
+ effectiveAt: number;
678
+ } | null;
679
+ days: {
680
+ day: number;
681
+ date: string;
682
+ timeZone: string;
683
+ occurredAt: number;
684
+ }[];
685
+ milestone: {
686
+ status: "pending";
687
+ } | {
688
+ status: "awarded";
689
+ completion: string;
690
+ achievedAt: number;
691
+ } | {
692
+ status: "budget-exhausted";
693
+ budget: string;
694
+ achievedAt: number;
695
+ };
696
+ } | null | undefined;
629
697
  }[];
630
698
  collections: {
631
699
  id: string;
@@ -653,7 +721,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
653
721
  } | undefined;
654
722
  } | undefined;
655
723
  };
656
- connections: ("discord" | "google" | "apple" | "x")[];
724
+ connections: ("google" | "apple" | "x" | "discord")[];
657
725
  trigger: {
658
726
  kind: "manual";
659
727
  input: "quiz" | "photo" | "none";
@@ -696,6 +764,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
696
764
  };
697
765
  completed: boolean;
698
766
  completion: {
767
+ kind: "streak";
768
+ days: number;
769
+ timeZone: string;
770
+ } | {
699
771
  kind: "once";
700
772
  } | {
701
773
  kind: "keyed";
@@ -712,7 +784,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
712
784
  quest: string;
713
785
  member: string;
714
786
  evidence: string | null;
715
- status: "queued" | "evaluating" | "accepted" | "rejected" | "needs-review" | "failed";
787
+ status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
716
788
  reason: string | null;
717
789
  retries: number;
718
790
  generation: number;
@@ -754,12 +826,42 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
754
826
  } | undefined;
755
827
  } | null;
756
828
  release: string;
757
- interaction: "staff" | "quiz" | "photo" | "automatic" | "claim";
829
+ interaction: "quiz" | "photo" | "staff" | "automatic" | "claim";
758
830
  lifecycle: "active" | "paused" | "archived";
759
831
  rewards: {
760
832
  label: string;
761
833
  }[];
762
834
  key?: string | undefined;
835
+ streak?: {
836
+ goal: number;
837
+ current: number;
838
+ best: number;
839
+ today: string;
840
+ todayQualified: boolean;
841
+ timeZone: string;
842
+ nextBoundary: number;
843
+ pendingTimeZone: {
844
+ timeZone: string;
845
+ effectiveAt: number;
846
+ } | null;
847
+ days: {
848
+ day: number;
849
+ date: string;
850
+ timeZone: string;
851
+ occurredAt: number;
852
+ }[];
853
+ milestone: {
854
+ status: "pending";
855
+ } | {
856
+ status: "awarded";
857
+ completion: string;
858
+ achievedAt: number;
859
+ } | {
860
+ status: "budget-exhausted";
861
+ budget: string;
862
+ achievedAt: number;
863
+ };
864
+ } | null | undefined;
763
865
  }[];
764
866
  key?: string | undefined;
765
867
  }[];
@@ -790,7 +892,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
790
892
  } | undefined;
791
893
  } | undefined;
792
894
  };
793
- connections: ("discord" | "google" | "apple" | "x")[];
895
+ connections: ("google" | "apple" | "x" | "discord")[];
794
896
  trigger: {
795
897
  kind: "manual";
796
898
  input: "quiz" | "photo" | "none";
@@ -833,6 +935,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
833
935
  };
834
936
  completed: boolean;
835
937
  completion: {
938
+ kind: "streak";
939
+ days: number;
940
+ timeZone: string;
941
+ } | {
836
942
  kind: "once";
837
943
  } | {
838
944
  kind: "keyed";
@@ -849,7 +955,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
849
955
  quest: string;
850
956
  member: string;
851
957
  evidence: string | null;
852
- status: "queued" | "evaluating" | "accepted" | "rejected" | "needs-review" | "failed";
958
+ status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
853
959
  reason: string | null;
854
960
  retries: number;
855
961
  generation: number;
@@ -891,12 +997,42 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
891
997
  } | undefined;
892
998
  } | null;
893
999
  release: string;
894
- interaction: "staff" | "quiz" | "photo" | "automatic" | "claim";
1000
+ interaction: "quiz" | "photo" | "staff" | "automatic" | "claim";
895
1001
  lifecycle: "active" | "paused" | "archived";
896
1002
  rewards: {
897
1003
  label: string;
898
1004
  }[];
899
1005
  key?: string | undefined;
1006
+ streak?: {
1007
+ goal: number;
1008
+ current: number;
1009
+ best: number;
1010
+ today: string;
1011
+ todayQualified: boolean;
1012
+ timeZone: string;
1013
+ nextBoundary: number;
1014
+ pendingTimeZone: {
1015
+ timeZone: string;
1016
+ effectiveAt: number;
1017
+ } | null;
1018
+ days: {
1019
+ day: number;
1020
+ date: string;
1021
+ timeZone: string;
1022
+ occurredAt: number;
1023
+ }[];
1024
+ milestone: {
1025
+ status: "pending";
1026
+ } | {
1027
+ status: "awarded";
1028
+ completion: string;
1029
+ achievedAt: number;
1030
+ } | {
1031
+ status: "budget-exhausted";
1032
+ budget: string;
1033
+ achievedAt: number;
1034
+ };
1035
+ } | null | undefined;
900
1036
  }[];
901
1037
  key?: string | undefined;
902
1038
  }>;
@@ -930,7 +1066,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
930
1066
  auth: {
931
1067
  providers: () => Promise<{
932
1068
  providers: {
933
- provider: "discord" | "google" | "apple" | "x";
1069
+ provider: "google" | "apple" | "x" | "discord";
934
1070
  configured: boolean;
935
1071
  }[];
936
1072
  email: boolean;
@@ -960,7 +1096,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
960
1096
  expiresAt: number;
961
1097
  }>;
962
1098
  accounts: () => Promise<{
963
- provider: "discord" | "google" | "apple" | "x";
1099
+ provider: "google" | "apple" | "x" | "discord";
964
1100
  configured: boolean;
965
1101
  status: "disconnected" | "connected" | "reconnect";
966
1102
  subject: string | null;
@@ -1051,7 +1187,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1051
1187
  quest: string;
1052
1188
  member: string;
1053
1189
  evidence: string | null;
1054
- status: "queued" | "evaluating" | "accepted" | "rejected" | "needs-review" | "failed";
1190
+ status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
1055
1191
  reason: string | null;
1056
1192
  retries: number;
1057
1193
  generation: number;
@@ -1117,7 +1253,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1117
1253
  } | undefined;
1118
1254
  } | undefined;
1119
1255
  };
1120
- connections: ("discord" | "google" | "apple" | "x")[];
1256
+ connections: ("google" | "apple" | "x" | "discord")[];
1121
1257
  trigger: {
1122
1258
  kind: "manual";
1123
1259
  input: "quiz" | "photo" | "none";
@@ -1160,6 +1296,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1160
1296
  };
1161
1297
  completed: boolean;
1162
1298
  completion: {
1299
+ kind: "streak";
1300
+ days: number;
1301
+ timeZone: string;
1302
+ } | {
1163
1303
  kind: "once";
1164
1304
  } | {
1165
1305
  kind: "keyed";
@@ -1176,7 +1316,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1176
1316
  quest: string;
1177
1317
  member: string;
1178
1318
  evidence: string | null;
1179
- status: "queued" | "evaluating" | "accepted" | "rejected" | "needs-review" | "failed";
1319
+ status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
1180
1320
  reason: string | null;
1181
1321
  retries: number;
1182
1322
  generation: number;
@@ -1219,6 +1359,36 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1219
1359
  } | null;
1220
1360
  key?: string | undefined;
1221
1361
  release?: string | undefined;
1362
+ streak?: {
1363
+ goal: number;
1364
+ current: number;
1365
+ best: number;
1366
+ today: string;
1367
+ todayQualified: boolean;
1368
+ timeZone: string;
1369
+ nextBoundary: number;
1370
+ pendingTimeZone: {
1371
+ timeZone: string;
1372
+ effectiveAt: number;
1373
+ } | null;
1374
+ days: {
1375
+ day: number;
1376
+ date: string;
1377
+ timeZone: string;
1378
+ occurredAt: number;
1379
+ }[];
1380
+ milestone: {
1381
+ status: "pending";
1382
+ } | {
1383
+ status: "awarded";
1384
+ completion: string;
1385
+ achievedAt: number;
1386
+ } | {
1387
+ status: "budget-exhausted";
1388
+ budget: string;
1389
+ achievedAt: number;
1390
+ };
1391
+ } | null | undefined;
1222
1392
  }[];
1223
1393
  entitlements: ({
1224
1394
  status: "available";
@@ -1323,7 +1493,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1323
1493
  quest: string;
1324
1494
  member: string;
1325
1495
  evidence: string | null;
1326
- status: "queued" | "evaluating" | "accepted" | "rejected" | "needs-review" | "failed";
1496
+ status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
1327
1497
  reason: string | null;
1328
1498
  retries: number;
1329
1499
  generation: number;
@@ -1382,7 +1552,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1382
1552
  quest: string;
1383
1553
  member: string;
1384
1554
  evidence: string | null;
1385
- status: "queued" | "evaluating" | "accepted" | "rejected" | "needs-review" | "failed";
1555
+ status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
1386
1556
  reason: string | null;
1387
1557
  retries: number;
1388
1558
  generation: number;
@@ -1457,7 +1627,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1457
1627
  code: string;
1458
1628
  definition: {
1459
1629
  quest: string;
1460
- runtimeVersion: 2 | 1;
1630
+ runtimeVersion: 1 | 2;
1461
1631
  title: string;
1462
1632
  presentation: {
1463
1633
  quiz?: {
@@ -1494,12 +1664,12 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1494
1664
  kind: "resource";
1495
1665
  default: string;
1496
1666
  source: {
1497
- provider: "domino";
1498
- resource: "point-ledger";
1499
- } | {
1500
1667
  provider: "discord";
1501
1668
  resource: "channel";
1502
1669
  types: ("text" | "announcement")[];
1670
+ } | {
1671
+ provider: "domino";
1672
+ resource: "point-ledger";
1503
1673
  } | {
1504
1674
  provider: "discord";
1505
1675
  resource: "role";
@@ -1600,6 +1770,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1600
1770
  scope: "ever";
1601
1771
  }[];
1602
1772
  completion: {
1773
+ kind: "streak";
1774
+ days: number;
1775
+ timeZone: string;
1776
+ } | {
1603
1777
  kind: "once";
1604
1778
  } | {
1605
1779
  kind: "keyed";
@@ -1607,7 +1781,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1607
1781
  visibility: "visible" | "hidden";
1608
1782
  budgets: {
1609
1783
  id: string;
1610
- scope: "project" | "member";
1784
+ scope: "member" | "project";
1611
1785
  period: "day" | "lifetime";
1612
1786
  limit: number;
1613
1787
  cost: number | {
@@ -1620,7 +1794,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1620
1794
  code: string;
1621
1795
  definition: {
1622
1796
  quest: string;
1623
- runtimeVersion: 2 | 1;
1797
+ runtimeVersion: 1 | 2;
1624
1798
  title: string;
1625
1799
  presentation: {
1626
1800
  quiz?: {
@@ -1657,12 +1831,12 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1657
1831
  kind: "resource";
1658
1832
  default: string;
1659
1833
  source: {
1660
- provider: "domino";
1661
- resource: "point-ledger";
1662
- } | {
1663
1834
  provider: "discord";
1664
1835
  resource: "channel";
1665
1836
  types: ("text" | "announcement")[];
1837
+ } | {
1838
+ provider: "domino";
1839
+ resource: "point-ledger";
1666
1840
  } | {
1667
1841
  provider: "discord";
1668
1842
  resource: "role";
@@ -1763,6 +1937,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1763
1937
  scope: "ever";
1764
1938
  }[];
1765
1939
  completion: {
1940
+ kind: "streak";
1941
+ days: number;
1942
+ timeZone: string;
1943
+ } | {
1766
1944
  kind: "once";
1767
1945
  } | {
1768
1946
  kind: "keyed";
@@ -1770,7 +1948,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1770
1948
  visibility: "visible" | "hidden";
1771
1949
  budgets: {
1772
1950
  id: string;
1773
- scope: "project" | "member";
1951
+ scope: "member" | "project";
1774
1952
  period: "day" | "lifetime";
1775
1953
  limit: number;
1776
1954
  cost: number | {
@@ -1782,7 +1960,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1782
1960
  snapshot: () => Promise<{
1783
1961
  releases: {
1784
1962
  quest: string;
1785
- runtimeVersion: 2 | 1;
1963
+ runtimeVersion: 1 | 2;
1786
1964
  title: string;
1787
1965
  presentation: {
1788
1966
  quiz?: {
@@ -1819,12 +1997,12 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1819
1997
  kind: "resource";
1820
1998
  default: string;
1821
1999
  source: {
1822
- provider: "domino";
1823
- resource: "point-ledger";
1824
- } | {
1825
2000
  provider: "discord";
1826
2001
  resource: "channel";
1827
2002
  types: ("text" | "announcement")[];
2003
+ } | {
2004
+ provider: "domino";
2005
+ resource: "point-ledger";
1828
2006
  } | {
1829
2007
  provider: "discord";
1830
2008
  resource: "role";
@@ -1925,6 +2103,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1925
2103
  scope: "ever";
1926
2104
  }[];
1927
2105
  completion: {
2106
+ kind: "streak";
2107
+ days: number;
2108
+ timeZone: string;
2109
+ } | {
1928
2110
  kind: "once";
1929
2111
  } | {
1930
2112
  kind: "keyed";
@@ -1932,7 +2114,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1932
2114
  visibility: "visible" | "hidden";
1933
2115
  budgets: {
1934
2116
  id: string;
1935
- scope: "project" | "member";
2117
+ scope: "member" | "project";
1936
2118
  period: "day" | "lifetime";
1937
2119
  limit: number;
1938
2120
  cost: number | {
@@ -2060,7 +2242,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2060
2242
  quest: string;
2061
2243
  member: string;
2062
2244
  evidence: string | null;
2063
- status: "queued" | "evaluating" | "accepted" | "rejected" | "needs-review" | "failed";
2245
+ status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
2064
2246
  reason: string | null;
2065
2247
  retries: number;
2066
2248
  generation: number;
@@ -2119,7 +2301,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2119
2301
  }>;
2120
2302
  publish: (release: ReleaseInput) => Promise<{
2121
2303
  quest: string;
2122
- runtimeVersion: 2 | 1;
2304
+ runtimeVersion: 1 | 2;
2123
2305
  title: string;
2124
2306
  presentation: {
2125
2307
  quiz?: {
@@ -2156,12 +2338,12 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2156
2338
  kind: "resource";
2157
2339
  default: string;
2158
2340
  source: {
2159
- provider: "domino";
2160
- resource: "point-ledger";
2161
- } | {
2162
2341
  provider: "discord";
2163
2342
  resource: "channel";
2164
2343
  types: ("text" | "announcement")[];
2344
+ } | {
2345
+ provider: "domino";
2346
+ resource: "point-ledger";
2165
2347
  } | {
2166
2348
  provider: "discord";
2167
2349
  resource: "role";
@@ -2262,6 +2444,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2262
2444
  scope: "ever";
2263
2445
  }[];
2264
2446
  completion: {
2447
+ kind: "streak";
2448
+ days: number;
2449
+ timeZone: string;
2450
+ } | {
2265
2451
  kind: "once";
2266
2452
  } | {
2267
2453
  kind: "keyed";
@@ -2269,7 +2455,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2269
2455
  visibility: "visible" | "hidden";
2270
2456
  budgets: {
2271
2457
  id: string;
2272
- scope: "project" | "member";
2458
+ scope: "member" | "project";
2273
2459
  period: "day" | "lifetime";
2274
2460
  limit: number;
2275
2461
  cost: number | {
@@ -2310,7 +2496,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2310
2496
  }>;
2311
2497
  publishBatch: (releases: ReleaseInput[]) => Promise<{
2312
2498
  quest: string;
2313
- runtimeVersion: 2 | 1;
2499
+ runtimeVersion: 1 | 2;
2314
2500
  title: string;
2315
2501
  presentation: {
2316
2502
  quiz?: {
@@ -2347,12 +2533,12 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2347
2533
  kind: "resource";
2348
2534
  default: string;
2349
2535
  source: {
2350
- provider: "domino";
2351
- resource: "point-ledger";
2352
- } | {
2353
2536
  provider: "discord";
2354
2537
  resource: "channel";
2355
2538
  types: ("text" | "announcement")[];
2539
+ } | {
2540
+ provider: "domino";
2541
+ resource: "point-ledger";
2356
2542
  } | {
2357
2543
  provider: "discord";
2358
2544
  resource: "role";
@@ -2453,6 +2639,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2453
2639
  scope: "ever";
2454
2640
  }[];
2455
2641
  completion: {
2642
+ kind: "streak";
2643
+ days: number;
2644
+ timeZone: string;
2645
+ } | {
2456
2646
  kind: "once";
2457
2647
  } | {
2458
2648
  kind: "keyed";
@@ -2460,7 +2650,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2460
2650
  visibility: "visible" | "hidden";
2461
2651
  budgets: {
2462
2652
  id: string;
2463
- scope: "project" | "member";
2653
+ scope: "member" | "project";
2464
2654
  period: "day" | "lifetime";
2465
2655
  limit: number;
2466
2656
  cost: number | {
@@ -2524,7 +2714,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2524
2714
  } | undefined;
2525
2715
  } | undefined;
2526
2716
  };
2527
- connections: ("discord" | "google" | "apple" | "x")[];
2717
+ connections: ("google" | "apple" | "x" | "discord")[];
2528
2718
  trigger: {
2529
2719
  kind: "manual";
2530
2720
  input: "quiz" | "photo" | "none";
@@ -2567,6 +2757,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2567
2757
  };
2568
2758
  completed: boolean;
2569
2759
  completion: {
2760
+ kind: "streak";
2761
+ days: number;
2762
+ timeZone: string;
2763
+ } | {
2570
2764
  kind: "once";
2571
2765
  } | {
2572
2766
  kind: "keyed";
@@ -2583,7 +2777,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2583
2777
  quest: string;
2584
2778
  member: string;
2585
2779
  evidence: string | null;
2586
- status: "queued" | "evaluating" | "accepted" | "rejected" | "needs-review" | "failed";
2780
+ status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
2587
2781
  reason: string | null;
2588
2782
  retries: number;
2589
2783
  generation: number;
@@ -2626,6 +2820,36 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2626
2820
  } | null;
2627
2821
  key?: string | undefined;
2628
2822
  release?: string | undefined;
2823
+ streak?: {
2824
+ goal: number;
2825
+ current: number;
2826
+ best: number;
2827
+ today: string;
2828
+ todayQualified: boolean;
2829
+ timeZone: string;
2830
+ nextBoundary: number;
2831
+ pendingTimeZone: {
2832
+ timeZone: string;
2833
+ effectiveAt: number;
2834
+ } | null;
2835
+ days: {
2836
+ day: number;
2837
+ date: string;
2838
+ timeZone: string;
2839
+ occurredAt: number;
2840
+ }[];
2841
+ milestone: {
2842
+ status: "pending";
2843
+ } | {
2844
+ status: "awarded";
2845
+ completion: string;
2846
+ achievedAt: number;
2847
+ } | {
2848
+ status: "budget-exhausted";
2849
+ budget: string;
2850
+ achievedAt: number;
2851
+ };
2852
+ } | null | undefined;
2629
2853
  }[];
2630
2854
  entitlements: ({
2631
2855
  status: "available";
@@ -2874,7 +3098,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2874
3098
  quest: string;
2875
3099
  member: string;
2876
3100
  evidence: string | null;
2877
- status: "queued" | "evaluating" | "accepted" | "rejected" | "needs-review" | "failed";
3101
+ status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
2878
3102
  reason: string | null;
2879
3103
  retries: number;
2880
3104
  generation: number;
@@ -2921,7 +3145,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2921
3145
  quest: string;
2922
3146
  member: string;
2923
3147
  evidence: string | null;
2924
- status: "queued" | "evaluating" | "accepted" | "rejected" | "needs-review" | "failed";
3148
+ status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
2925
3149
  reason: string | null;
2926
3150
  retries: number;
2927
3151
  generation: number;
@@ -2973,7 +3197,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2973
3197
  quest: string;
2974
3198
  member: string;
2975
3199
  evidence: string | null;
2976
- status: "queued" | "evaluating" | "accepted" | "rejected" | "needs-review" | "failed";
3200
+ status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
2977
3201
  reason: string | null;
2978
3202
  retries: number;
2979
3203
  generation: number;