@domino-sdk/relay 1.61.0 → 1.63.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/CHANGELOG.md +276 -8
  2. package/README.md +3 -2
  3. package/dist/{schema-CZ6Rj0ZF.d.ts → accounts-nz3mzfRQ.d.ts} +3146 -1765
  4. package/dist/action-9Xl0StBg.d.ts +33 -0
  5. package/dist/{attempt-captures-DYnJVkfg.d.ts → attempt-captures-DMi8oR9T.d.ts} +1 -1
  6. package/dist/authoring.d.ts +171 -49
  7. package/dist/authoring.js +158 -49
  8. package/dist/{automatic-outcomes-If88LR9f.d.ts → automatic-outcomes-C_LLQU1p.d.ts} +15 -1
  9. package/dist/avatar.d.ts +1 -1
  10. package/dist/browser.d.ts +15 -11
  11. package/dist/browser.js +18 -12
  12. package/dist/capability-error-CuI_F7yM.d.ts +296 -0
  13. package/dist/{pages-K7-KjSXw.d.ts → catalog-BaTOKpNw.d.ts} +56 -567
  14. package/dist/{chunk-XBV2CK2H.js → chunk-3RFP6GT5.js} +15 -3
  15. package/dist/{chunk-VURRFVNP.js → chunk-4GQW43UU.js} +239 -361
  16. package/dist/chunk-4NOFSGAL.js +320 -0
  17. package/dist/{chunk-24I4R732.js → chunk-5XLZ34PV.js} +34 -19
  18. package/dist/{chunk-L77O64I4.js → chunk-7X67QLPB.js} +43 -43
  19. package/dist/{chunk-RHBS5FJL.js → chunk-7Z4SZ6YM.js} +3 -3
  20. package/dist/{chunk-QEAS4ZGS.js → chunk-AQOL3SK5.js} +1 -1
  21. package/dist/chunk-EHUSD3O2.js +377 -0
  22. package/dist/chunk-FO2LCZTL.js +19 -0
  23. package/dist/{chunk-DYXDZFKA.js → chunk-FU5CGNTR.js} +166 -178
  24. package/dist/chunk-FWLQ5XCS.js +21 -0
  25. package/dist/chunk-GLH6MEI2.js +193 -0
  26. package/dist/chunk-ICXZZNPS.js +199 -0
  27. package/dist/{chunk-ZDJLPN4L.js → chunk-ID3BZXFZ.js} +2696 -2693
  28. package/dist/chunk-KP2MCX3R.js +587 -0
  29. package/dist/{chunk-SKGTNTLF.js → chunk-LZWXCBUB.js} +213 -297
  30. package/dist/chunk-MTKRIQEU.js +31 -0
  31. package/dist/{chunk-4OC7REYX.js → chunk-MWMCQLCG.js} +3 -3
  32. package/dist/{chunk-PPB7HALD.js → chunk-N4BDKS6Y.js} +27 -26
  33. package/dist/{chunk-5I54XBK2.js → chunk-N4LNEGQX.js} +2 -2
  34. package/dist/chunk-NQDEWJWE.js +554 -0
  35. package/dist/chunk-QR6HH4DI.js +508 -0
  36. package/dist/chunk-TLSQETTY.js +41 -0
  37. package/dist/{chunk-MHPKEVEW.js → chunk-U66GUVSG.js} +7 -2
  38. package/dist/{chunk-KDR2VAJP.js → chunk-UYVJZR33.js} +2 -2
  39. package/dist/chunk-UZ765UGH.js +18 -0
  40. package/dist/{chunk-7A4J67ZL.js → chunk-VWQGWGCH.js} +7 -7
  41. package/dist/chunk-W7YSMSGC.js +725 -0
  42. package/dist/{client-C51w7fMb.d.ts → client-DHmG7rn6.d.ts} +126 -93
  43. package/dist/{announcements-CHx3-HBw.d.ts → dashboards-CLemT6kj.d.ts} +14 -137
  44. package/dist/{deployments-kWoHFaqj.d.ts → deployments-DTULi7dF.d.ts} +450 -18
  45. package/dist/identity-integration-DOeNZaxF.d.ts +1271 -0
  46. package/dist/index.d.ts +13 -11
  47. package/dist/index.js +16 -11
  48. package/dist/internal.d.ts +29 -13
  49. package/dist/internal.js +57 -17
  50. package/dist/{integrations-B3y36OaB.d.ts → limits-kNzYdZ00.d.ts} +464 -53
  51. package/dist/{offers-BoV4ryUc.d.ts → offers-CYeN_I0Y.d.ts} +22 -4
  52. package/dist/{participant-activity-DHL8QYks.d.ts → participant-activity-D-Drp24G.d.ts} +16 -3
  53. package/dist/portal-proxy.d.ts +75 -2
  54. package/dist/portal-proxy.js +153 -25
  55. package/dist/react/index.d.ts +214 -27
  56. package/dist/react/index.js +196 -42
  57. package/dist/{action-DBzILFx9.d.ts → request-error-D_dUPLwo.d.ts} +1 -31
  58. package/dist/reward-deliveries-drp-x1G-.d.ts +782 -0
  59. package/dist/runtime/authoring.js +1 -1
  60. package/dist/runtime/chunks/UGDV5W4N.js +1 -0
  61. package/dist/runtime/manifest.json +3 -3
  62. package/dist/runtime/schema.js +1 -1
  63. package/dist/schema.d.ts +330 -31
  64. package/dist/schema.js +147 -91
  65. package/dist/server/index.d.ts +14 -12
  66. package/dist/server/index.js +6425 -6260
  67. package/dist/sign-in-providers-B1Q9eDRm.d.ts +44 -0
  68. package/dist/submission-input-DZCbjQUH.d.ts +343 -0
  69. package/dist/{telegram-browser-BUceZIGZ.d.ts → telegram-browser-NL0Asmsi.d.ts} +46 -6
  70. package/dist/telegram.d.ts +64 -0
  71. package/dist/telegram.js +23 -0
  72. package/dist/testing.d.ts +326 -27
  73. package/dist/testing.js +440 -90
  74. package/dist/tracker-data-esm3WG8R.d.ts +1881 -0
  75. package/dist/{transport-BrX9pIGN.d.ts → transport-Czht_irp.d.ts} +43483 -38512
  76. package/dist/{wallet-CIqFoxdm.d.ts → wallet-B7e06v4m.d.ts} +32 -9
  77. package/package.json +5 -1
  78. package/dist/accounts-DoabriBX.d.ts +0 -306
  79. package/dist/capability-error-DufwG3G0.d.ts +0 -159
  80. package/dist/chunk-3Y3L2F54.js +0 -982
  81. package/dist/chunk-DHXDBAJF.js +0 -544
  82. package/dist/chunk-EN3M5Z4J.js +0 -13
  83. package/dist/chunk-QNUHWK7R.js +0 -602
  84. package/dist/chunk-SE4PFJPT.js +0 -247
  85. package/dist/groups-CqcA2Ycs.d.ts +0 -2827
  86. package/dist/runtime/chunks/5QVFB4TU.js +0 -1
  87. package/dist/submission-input-C54Q8yAD.d.ts +0 -146
  88. package/dist/x-D1PGi8Sq.d.ts +0 -331
package/dist/authoring.js CHANGED
@@ -3,34 +3,38 @@ import {
3
3
  parseUnits
4
4
  } from "./chunk-V7UKZLHA.js";
5
5
  import {
6
- defineDashboard,
7
6
  tiktokVideoBodySchema,
8
7
  tiktokVideoMetrics,
9
8
  youtubeShortBodySchema,
10
9
  youtubeShortMetrics
11
- } from "./chunk-DYXDZFKA.js";
10
+ } from "./chunk-TLSQETTY.js";
12
11
  import {
13
12
  CapabilityError,
14
13
  capabilityErrorCodes
15
- } from "./chunk-4OC7REYX.js";
14
+ } from "./chunk-MWMCQLCG.js";
16
15
  import {
17
16
  sourceDataSchema,
18
17
  sourceRoles,
19
18
  validateQuestShape
20
- } from "./chunk-RHBS5FJL.js";
19
+ } from "./chunk-7Z4SZ6YM.js";
20
+ import {
21
+ defineDashboard
22
+ } from "./chunk-FU5CGNTR.js";
21
23
  import {
22
- badgeDeclarationSchema,
23
- defineOffer,
24
24
  engagementDefinitionSchema,
25
25
  engagementScoreInputSchema,
26
26
  engagementScoreSchema,
27
- leaderboardAuthoringSchema,
28
- parseDefinition,
27
+ offerAuthoringSchema,
29
28
  referralAuthoringSchema
30
- } from "./chunk-3Y3L2F54.js";
29
+ } from "./chunk-QR6HH4DI.js";
31
30
  import {
31
+ badgeDeclarationSchema,
32
+ leaderboardAuthoringSchema,
32
33
  pointLedgerDeclarationSchema
33
- } from "./chunk-SE4PFJPT.js";
34
+ } from "./chunk-W7YSMSGC.js";
35
+ import {
36
+ parseDefinition
37
+ } from "./chunk-FO2LCZTL.js";
34
38
  import {
35
39
  announcementSchema,
36
40
  authorBudgetSchema,
@@ -61,6 +65,7 @@ import {
61
65
  groupReward,
62
66
  identifier,
63
67
  inGroup,
68
+ integrationModuleProviderSchema,
64
69
  isAmount,
65
70
  isBalanceChain,
66
71
  isBoundSetting,
@@ -71,6 +76,7 @@ import {
71
76
  isSolanaProgram,
72
77
  ledgerKey,
73
78
  ledgerSettingSchema,
79
+ limits,
74
80
  maxWalletEventLogs,
75
81
  maxWalletEventLookback,
76
82
  maxWalletTransactionLookback,
@@ -121,10 +127,33 @@ import {
121
127
  whereSettings,
122
128
  xSearchSourceSchema,
123
129
  youtubeShortsNamespace
124
- } from "./chunk-ZDJLPN4L.js";
130
+ } from "./chunk-ID3BZXFZ.js";
131
+ import "./chunk-GLH6MEI2.js";
125
132
 
126
133
  // src/builders.ts
127
134
  import * as z from "zod";
135
+
136
+ // src/quest-only-rewards.ts
137
+ function questOnlyRewardError(reward, surface) {
138
+ const definition = typeof reward === "object" && reward !== null && "kind" in reward && reward.kind === "tier" && "reward" in reward && typeof reward.reward === "object" && reward.reward !== null ? reward.reward : null;
139
+ if (definition && "badge" in definition && definition.badge !== void 0) {
140
+ return `Badge rewards can only be granted by quests or manually, not by ${surface}`;
141
+ }
142
+ if (definition && "group" in definition && definition.group !== void 0) {
143
+ return `Group membership rewards can only be granted by quests, not by ${surface}`;
144
+ }
145
+ return null;
146
+ }
147
+ function refuseQuestOnlyRewards(context, rewards, path, surface) {
148
+ for (const [index, reward] of rewards.entries()) {
149
+ const message = questOnlyRewardError(reward, surface);
150
+ if (message) {
151
+ context.addIssue({ code: "custom", message, path: [...path, index] });
152
+ }
153
+ }
154
+ }
155
+
156
+ // src/builders.ts
128
157
  function defineBadge(input) {
129
158
  return resourceHandle(
130
159
  "badge",
@@ -175,9 +204,43 @@ var questCompleted = (quest) => ({
175
204
  kind: "quest",
176
205
  quest
177
206
  });
207
+ var offerBuilderSchema = /* @__PURE__ */ (() => offerAuthoringSchema.superRefine(
208
+ (offer, context) => {
209
+ const message = questOnlyRewardError(offer.reward, "offers");
210
+ if (message) {
211
+ context.addIssue({ code: "custom", message, path: ["reward"] });
212
+ }
213
+ }
214
+ ))();
215
+ function defineOffer(input) {
216
+ return resourceHandle(
217
+ "offer",
218
+ parseDefinition("Offer", offerBuilderSchema, input)
219
+ );
220
+ }
221
+ var referralBuilderSchema = /* @__PURE__ */ (() => referralAuthoringSchema.superRefine(
222
+ (referral, context) => {
223
+ for (const side of ["inviter", "invitee"]) {
224
+ refuseQuestOnlyRewards(
225
+ context,
226
+ referral.rewards[side],
227
+ ["rewards", side],
228
+ "referral programs"
229
+ );
230
+ }
231
+ for (const [index, milestone] of referral.milestones.entries()) {
232
+ refuseQuestOnlyRewards(
233
+ context,
234
+ milestone.rewards,
235
+ ["milestones", index, "rewards"],
236
+ "referral programs"
237
+ );
238
+ }
239
+ }
240
+ ))();
178
241
  function defineReferral(input) {
179
242
  const { qualification, inviterGroup, milestones, bonuses, ...properties } = input;
180
- const definition = parseDefinition("Referral", referralAuthoringSchema, {
243
+ const definition = parseDefinition("Referral", referralBuilderSchema, {
181
244
  ...properties,
182
245
  qualification: qualification.kind === "quest" ? { kind: "quest", quest: qualification.quest.key } : qualification,
183
246
  ...inviterGroup ? { inviterGroup: identifier.parse(inviterGroup.key) } : {},
@@ -197,31 +260,50 @@ function defineReferral(input) {
197
260
  function earned(options = {}) {
198
261
  return { kind: "earned", ...options };
199
262
  }
263
+ var leaderboardBuilderSchema = /* @__PURE__ */ (() => leaderboardAuthoringSchema.superRefine(
264
+ (board, context) => {
265
+ for (const [index, prize] of (board.settle?.prizes ?? []).entries()) {
266
+ refuseQuestOnlyRewards(
267
+ context,
268
+ prize.rewards,
269
+ ["settle", "prizes", index, "rewards"],
270
+ "leaderboard prizes"
271
+ );
272
+ }
273
+ }
274
+ ))();
275
+ function leaderboardTiesWarning(board) {
276
+ const live = board.ties ?? "shared";
277
+ if (!board.settle || board.settle.ties === live) {
278
+ return null;
279
+ }
280
+ return `Leaderboard${board.key ? ` "${board.key}"` : ""} orders equal scores "${live}" in its live standings${board.ties === void 0 ? " (ties left out)" : ""} but "${board.settle.ties}" when it settles, so the ranks members see are not the ranks prizes pay. Set ties: "${board.settle.ties}" beside settle.ties to show the order prizes pay.`;
281
+ }
200
282
  function defineLeaderboard(input) {
201
283
  const { ledger, group, score, settle, ...properties } = input;
202
284
  const pool = settle?.pool;
203
- const definition = parseDefinition(
204
- "Leaderboard",
205
- leaderboardAuthoringSchema,
206
- {
207
- ...properties,
208
- ...settle ? {
209
- settle: {
210
- ...settle,
211
- prizes: settle.prizes ?? [],
212
- ...pool ? {
213
- pool: {
214
- ...pool,
215
- ...pool.ledger === void 0 ? {} : { ledger: ledgerKey(pool.ledger) }
216
- }
217
- } : {}
218
- }
219
- } : {},
220
- balance: ledgerKey(ledger),
221
- ...group ? { group: identifier.parse(group.key) } : {},
222
- score: score?.kind === "earned" ? { ...score, quests: score.quests?.map((quest) => quest.key) } : score
223
- }
224
- );
285
+ const definition = parseDefinition("Leaderboard", leaderboardBuilderSchema, {
286
+ ...properties,
287
+ ...settle ? {
288
+ settle: {
289
+ ...settle,
290
+ prizes: settle.prizes ?? [],
291
+ ...pool ? {
292
+ pool: {
293
+ ...pool,
294
+ ...pool.ledger === void 0 ? {} : { ledger: ledgerKey(pool.ledger) }
295
+ }
296
+ } : {}
297
+ }
298
+ } : {},
299
+ balance: ledgerKey(ledger),
300
+ ...group ? { group: identifier.parse(group.key) } : {},
301
+ score: score?.kind === "earned" ? { ...score, quests: score.quests?.map((quest) => quest.key) } : score
302
+ });
303
+ const ties = leaderboardTiesWarning(definition);
304
+ if (ties) {
305
+ console.warn(ties);
306
+ }
225
307
  return resourceHandle("leaderboard", definition);
226
308
  }
227
309
  var x = {
@@ -487,17 +569,25 @@ var settings = {
487
569
  quizContentSchema.default(value).meta({ ...options, default: value, kind: "quiz" })
488
570
  );
489
571
  },
572
+ /**
573
+ * Free text. With `secret: true`, operators set the value in Console and it never leaves Relay:
574
+ * management responses, `domino deploy` and Console withhold it, and the quest's code reads it as
575
+ * usual. A secret setting has no default, so it reads `""` until an operator sets it.
576
+ */
490
577
  text(options) {
578
+ const { secret, ...rest } = options;
491
579
  const field = {
492
- ...options,
580
+ ...rest,
493
581
  kind: "text",
494
- minLength: options.minLength ?? 1,
582
+ default: "default" in options ? options.default : "",
583
+ minLength: options.minLength ?? (secret ? 0 : 1),
495
584
  maxLength: options.maxLength ?? 2e3,
496
- multiline: options.multiline ?? false
585
+ multiline: options.multiline ?? false,
586
+ ...secret ? { secret } : {}
497
587
  };
498
588
  return setting(
499
589
  "text",
500
- z.string().min(field.minLength).max(field.maxLength).default(field.default).meta(field)
590
+ textSettingSchema(field).default(field.default).meta(field)
501
591
  );
502
592
  },
503
593
  /**
@@ -767,8 +857,8 @@ function manual(options) {
767
857
  ...options?.actor ? { actor: options.actor } : {}
768
858
  };
769
859
  }
770
- var triggerDataSchemas = /* @__PURE__ */ new WeakMap();
771
- var triggerContentMetrics = /* @__PURE__ */ new WeakMap();
860
+ var triggerDataSchemas = /* @__PURE__ */ (() => /* @__PURE__ */ new WeakMap())();
861
+ var triggerContentMetrics = /* @__PURE__ */ (() => /* @__PURE__ */ new WeakMap())();
772
862
  function trackerTrigger(input, constructor) {
773
863
  const {
774
864
  tracker,
@@ -804,14 +894,17 @@ function trackerTrigger(input, constructor) {
804
894
  const roles = sourceRoles(source);
805
895
  if (!roles.includes(beneficiary)) {
806
896
  throw new Error(
807
- source.kind === "custom" ? `Tracker "${tracker.key}" has no "${beneficiary}" account: declare it in customSource(namespace, { accounts: ["${beneficiary}"] })` : `Tracker "${tracker.key}" pays ${roles.map((role) => `"${role}"`).join(" or ")}, not "${beneficiary}"`
897
+ source.kind === "custom" ? `Tracker "${tracker.key}" has no "${beneficiary}" account: declare it in customSource(namespace, { accounts: ["${beneficiary}"] })` : `Tracker "${tracker.key}" pays ${new Intl.ListFormat("en", { type: "disjunction" }).format(roles.map((role) => `"${role}"`))}, not "${beneficiary}"`
808
898
  );
809
899
  }
810
900
  const policy = trackerTriggerPolicySchema.parse({
811
901
  tracker: tracker.key,
812
902
  source: source.kind,
813
903
  // A content item is decided by its first observation; later observations run its stage.
814
- on: content2 ? "new-record" : on ?? defaultTriggerMode(source.kind),
904
+ on: content2 ? "new-record" : on ?? defaultTriggerMode(
905
+ source.kind,
906
+ source.kind === "custom" ? source.namespace : void 0
907
+ ),
815
908
  ...where ? { where } : {},
816
909
  beneficiary,
817
910
  // Defaults are left out too: "none", "activation", and "staff" ("claim" on content).
@@ -860,9 +953,10 @@ function defineBudget(definition) {
860
953
  }
861
954
  var budget = defineBudget;
862
955
  var authorBudgets = (budgets = []) => budgets.filter((value) => value.scope === "author");
863
- var keyed = (key) => ({
956
+ var keyed = (key, options = {}) => ({
864
957
  kind: "keyed",
865
- key
958
+ key,
959
+ ...options.across ? { across: options.across } : {}
866
960
  });
867
961
  var progress = (definition) => {
868
962
  const { distinct, ...policy } = definition;
@@ -958,13 +1052,17 @@ var completionPolicies = { once, keyed, streak, progress };
958
1052
  function questBuilder(template) {
959
1053
  return function defineQuest2(definition) {
960
1054
  const key = authoringKey(definition);
961
- const integrations = [
1055
+ const integrationModules = [
962
1056
  ...new Set(
963
1057
  (definition.integrations ?? []).map(
964
- (module) => evaluatorIntegrationProviderSchema.parse(module.provider)
1058
+ (module) => integrationModuleProviderSchema.parse(module.provider)
965
1059
  )
966
1060
  )
967
1061
  ];
1062
+ const integrations = integrationModules.flatMap((provider) => {
1063
+ const known = evaluatorIntegrationProviderSchema.safeParse(provider);
1064
+ return known.success ? [known.data] : [];
1065
+ });
968
1066
  const contentTrigger = definition.trigger.kind === "automatic" && definition.trigger.tracker?.content === true;
969
1067
  const trackerTrigger2 = definition.trigger.kind === "automatic" && definition.trigger.tracker !== void 0;
970
1068
  const declared = definition.completion;
@@ -1027,6 +1125,11 @@ function questBuilder(template) {
1027
1125
  `Setting "${key2}" is not a quest setting: build it with a settings builder, such as settings.integer({ label, default, min, max })`
1028
1126
  );
1029
1127
  }
1128
+ if (field.data.kind === "text" && field.data.secret && field.data.default !== "") {
1129
+ throw new Error(
1130
+ `Secret setting "${key2}" must default to "": set its value in Console, not in source or deploy settings`
1131
+ );
1132
+ }
1030
1133
  return [key2, field.data];
1031
1134
  })
1032
1135
  );
@@ -1099,13 +1202,17 @@ function questBuilder(template) {
1099
1202
  })
1100
1203
  } : {},
1101
1204
  integrations,
1205
+ // Written only when it holds a module `integrations` lacks, so a quest declaring known
1206
+ // modules describes itself as SDKs before `integrationModules` did, and a Relay that
1207
+ // predates the field still accepts it.
1208
+ ...integrationModules.length > integrations.length ? { integrationModules } : {},
1102
1209
  // A content quest's completion is keyed by its content item, with a key Relay owns.
1103
1210
  completion: !completion ? { kind: "keyed" } : completion.kind === "progress" ? {
1104
1211
  kind: completion.kind,
1105
1212
  goal: completion.goal,
1106
1213
  window: completion.window,
1107
1214
  repeat: completion.repeat
1108
- } : completion.kind === "streak" ? completion : { kind: completion.kind },
1215
+ } : completion.kind === "streak" ? completion : completion.kind === "keyed" && completion.across ? { kind: completion.kind, across: completion.across } : { kind: completion.kind },
1109
1216
  visibility: definition.visibility ?? "visible",
1110
1217
  profile: definition.profile ?? { visible: false },
1111
1218
  budgets: (definition.budgets ?? []).filter(
@@ -1234,8 +1341,8 @@ function ignoredCompletionKey(completion, key) {
1234
1341
  return `progress(...) keys each contribution with its distinct(...) and ${ignored}: derive the key in distinct(...)`;
1235
1342
  }
1236
1343
  }
1237
- var defineQuest = questBuilder(false);
1238
- var defineQuestType = questBuilder(true);
1344
+ var defineQuest = /* @__PURE__ */ (() => questBuilder(false))();
1345
+ var defineQuestType = /* @__PURE__ */ (() => questBuilder(true))();
1239
1346
  export {
1240
1347
  CapabilityError,
1241
1348
  automatic,
@@ -1280,6 +1387,8 @@ export {
1280
1387
  isNftCollection,
1281
1388
  isSolanaProgram,
1282
1389
  keyed,
1390
+ leaderboardTiesWarning,
1391
+ limits,
1283
1392
  manual,
1284
1393
  maxWalletEventLogs,
1285
1394
  maxWalletEventLookback,
@@ -1,5 +1,6 @@
1
1
  import * as z from 'zod';
2
- import { a as AttemptStatus } from './schema-CZ6Rj0ZF.js';
2
+ import { b as AttemptStatus, X as RewardType } from './accounts-nz3mzfRQ.js';
3
+ import { S as SkipEnrollment } from './tracker-data-esm3WG8R.js';
3
4
 
4
5
  declare const collectionCodeSchema: z.ZodString;
5
6
  declare const collectionPassSchema: z.ZodObject<{
@@ -472,6 +473,7 @@ declare const automaticOutcomeSchema: z.ZodUnion<readonly [z.ZodObject<{
472
473
  quest: "quest";
473
474
  tracker: "tracker";
474
475
  }>>;
476
+ enrollment: z.ZodOptional<z.ZodType<SkipEnrollment, unknown, z.core.$ZodTypeInternals<SkipEnrollment, unknown>>>;
475
477
  revision: z.ZodNumber;
476
478
  createdAt: z.ZodNumber;
477
479
  updatedAt: z.ZodNumber;
@@ -518,6 +520,7 @@ declare const automaticOutcomeSchema: z.ZodUnion<readonly [z.ZodObject<{
518
520
  quest: "quest";
519
521
  tracker: "tracker";
520
522
  }>>;
523
+ enrollment: z.ZodOptional<z.ZodType<SkipEnrollment, unknown, z.core.$ZodTypeInternals<SkipEnrollment, unknown>>>;
521
524
  revision: z.ZodNumber;
522
525
  createdAt: z.ZodNumber;
523
526
  updatedAt: z.ZodNumber;
@@ -578,6 +581,7 @@ declare const automaticOutcomePageSchema: z.ZodObject<{
578
581
  quest: "quest";
579
582
  tracker: "tracker";
580
583
  }>>;
584
+ enrollment: z.ZodOptional<z.ZodType<SkipEnrollment, unknown, z.core.$ZodTypeInternals<SkipEnrollment, unknown>>>;
581
585
  revision: z.ZodNumber;
582
586
  createdAt: z.ZodNumber;
583
587
  updatedAt: z.ZodNumber;
@@ -624,6 +628,7 @@ declare const automaticOutcomePageSchema: z.ZodObject<{
624
628
  quest: "quest";
625
629
  tracker: "tracker";
626
630
  }>>;
631
+ enrollment: z.ZodOptional<z.ZodType<SkipEnrollment, unknown, z.core.$ZodTypeInternals<SkipEnrollment, unknown>>>;
627
632
  revision: z.ZodNumber;
628
633
  createdAt: z.ZodNumber;
629
634
  updatedAt: z.ZodNumber;
@@ -678,6 +683,7 @@ declare const automaticCatchUpPreviewSchema: z.ZodObject<{
678
683
  quest: "quest";
679
684
  tracker: "tracker";
680
685
  }>>;
686
+ enrollment: z.ZodOptional<z.ZodType<SkipEnrollment, unknown, z.core.$ZodTypeInternals<SkipEnrollment, unknown>>>;
681
687
  revision: z.ZodNumber;
682
688
  createdAt: z.ZodNumber;
683
689
  updatedAt: z.ZodNumber;
@@ -724,6 +730,7 @@ declare const automaticCatchUpPreviewSchema: z.ZodObject<{
724
730
  quest: "quest";
725
731
  tracker: "tracker";
726
732
  }>>;
733
+ enrollment: z.ZodOptional<z.ZodType<SkipEnrollment, unknown, z.core.$ZodTypeInternals<SkipEnrollment, unknown>>>;
727
734
  revision: z.ZodNumber;
728
735
  createdAt: z.ZodNumber;
729
736
  updatedAt: z.ZodNumber;
@@ -734,6 +741,7 @@ declare const automaticCatchUpPreviewSchema: z.ZodObject<{
734
741
  quest: "quest";
735
742
  tracker: "tracker";
736
743
  }>>;
744
+ enrollment: z.ZodOptional<z.ZodType<SkipEnrollment, unknown, z.core.$ZodTypeInternals<SkipEnrollment, unknown>>>;
737
745
  attempt: z.ZodNullable<z.ZodString>;
738
746
  wouldAdmit: z.ZodBoolean;
739
747
  budgets: z.ZodArray<z.ZodObject<{
@@ -783,6 +791,10 @@ declare const automaticCatchUpPreviewSchema: z.ZodObject<{
783
791
  action: z.ZodLiteral<"grant-role">;
784
792
  roleId: z.ZodString;
785
793
  }, z.core.$strict>]>>;
794
+ rewardEntries: z.ZodOptional<z.ZodArray<z.ZodObject<{
795
+ type: z.ZodType<RewardType, unknown, z.core.$ZodTypeInternals<RewardType, unknown>>;
796
+ data: z.ZodRecord<z.ZodString, z.ZodJSONSchema>;
797
+ }, z.core.$strip>>>;
786
798
  costs: z.ZodArray<z.ZodObject<{
787
799
  budget: z.ZodString;
788
800
  cost: z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"dynamic">]>;
@@ -836,6 +848,7 @@ declare const automaticCatchUpResultSchema: z.ZodObject<{
836
848
  quest: "quest";
837
849
  tracker: "tracker";
838
850
  }>>;
851
+ enrollment: z.ZodOptional<z.ZodType<SkipEnrollment, unknown, z.core.$ZodTypeInternals<SkipEnrollment, unknown>>>;
839
852
  revision: z.ZodNumber;
840
853
  createdAt: z.ZodNumber;
841
854
  updatedAt: z.ZodNumber;
@@ -882,6 +895,7 @@ declare const automaticCatchUpResultSchema: z.ZodObject<{
882
895
  quest: "quest";
883
896
  tracker: "tracker";
884
897
  }>>;
898
+ enrollment: z.ZodOptional<z.ZodType<SkipEnrollment, unknown, z.core.$ZodTypeInternals<SkipEnrollment, unknown>>>;
885
899
  revision: z.ZodNumber;
886
900
  createdAt: z.ZodNumber;
887
901
  updatedAt: z.ZodNumber;
package/dist/avatar.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { P as ProfileAvatar, L as LinkedWallet } from './wallet-CIqFoxdm.js';
1
+ import { P as ProfileAvatar, L as LinkedWallet } from './wallet-B7e06v4m.js';
2
2
  import 'zod';
3
3
 
4
4
  /**
package/dist/browser.d.ts CHANGED
@@ -1,15 +1,17 @@
1
- import { o as SubmissionStore, f as RelayClientOptions, R as RelayClient } from './client-C51w7fMb.js';
2
- export { C as CosmosChains, D as DiscoveredWallet, E as Eip1193Provider, a as EmailSignInOption, K as KeplrLike, O as OAuthSignInOption, S as SignInClient, b as SignInIcon, c as SignInMethods, d as SignInOption, e as SignInOptions, f as SignInUnavailable, g as SignInWallet, h as SolanaInjectedProvider, i as StandardWallet, j as StandardWalletAccount, T as TelegramSignInOption, W as WalletSignInOption, k as cosmosChainList, l as cosmosSigner, m as discoverCosmosWallets, n as discoverEvmWallets, o as discoverSignInWallets, p as discoverSolanaWallets, q as evmSigner, s as signInOptions, r as solanaSigner, t as telegramMiniAppInitData, w as walletStandardSolanaSigner } from './telegram-browser-BUceZIGZ.js';
1
+ import { o as SubmissionStore, f as RelayClientOptions, R as RelayClient } from './client-DHmG7rn6.js';
2
+ export { C as CosmosChains, D as DiscoveredWallet, E as Eip1193Provider, a as EmailSignInOption, K as KeplrLike, O as OAuthSignInOption, P as ProviderSignInOption, S as SignInClient, b as SignInIcon, c as SignInMethods, d as SignInOption, e as SignInOptions, f as SignInUnavailable, g as SignInWallet, h as SolanaInjectedProvider, i as StandardWallet, j as StandardWalletAccount, T as TelegramSignInOption, W as WalletSignInOption, k as cosmosChainList, l as cosmosSigner, m as discoverCosmosWallets, n as discoverEvmWallets, o as discoverSignInWallets, p as discoverSolanaWallets, q as evmSigner, s as signInOptions, r as solanaSigner, t as telegramMiniAppInitData, w as walletStandardSolanaSigner } from './telegram-browser-NL0Asmsi.js';
3
3
  export { H as HostEnvironment, g as getHostEnvironment } from './host-environment-FN4zg3hw.js';
4
- import { M as MemberSummary } from './participant-activity-DHL8QYks.js';
5
- import './schema-CZ6Rj0ZF.js';
4
+ import { M as MemberSummary } from './participant-activity-D-Drp24G.js';
5
+ import './accounts-nz3mzfRQ.js';
6
6
  import 'zod';
7
- import './wallet-CIqFoxdm.js';
8
- import './pages-K7-KjSXw.js';
9
- import './submission-input-C54Q8yAD.js';
10
- import './groups-CqcA2Ycs.js';
11
- import './action-DBzILFx9.js';
12
- import './accounts-DoabriBX.js';
7
+ import './tracker-data-esm3WG8R.js';
8
+ import './wallet-B7e06v4m.js';
9
+ import './submission-input-DZCbjQUH.js';
10
+ import './request-error-D_dUPLwo.js';
11
+ import './reward-deliveries-drp-x1G-.js';
12
+ import './catalog-BaTOKpNw.js';
13
+ import './action-9Xl0StBg.js';
14
+ import './sign-in-providers-B1Q9eDRm.js';
13
15
 
14
16
  /**
15
17
  * The member's time at the real instant `at` (default now), in epoch milliseconds: what an app
@@ -18,7 +20,9 @@ import './accounts-DoabriBX.js';
18
20
  * clock; read `/v1/me` again on `domino:test-state-changed`. Without `clock` (a Relay older than
19
21
  * it) the member's time is real time.
20
22
  */
21
- declare function memberTime(me: Pick<MemberSummary, "clock">, at?: number): number;
23
+ declare function memberTime(me: {
24
+ clock?: MemberSummary["clock"];
25
+ }, at?: number): number;
22
26
 
23
27
  /** Browser client with durable submission recovery; safe to construct during SSR. */
24
28
  declare function createBrowserRelayClient(options: RelayClientOptions): RelayClient;
package/dist/browser.js CHANGED
@@ -11,21 +11,27 @@ import {
11
11
  memberTime,
12
12
  signInOptions,
13
13
  solanaSigner,
14
- telegramMiniAppInitData,
15
14
  walletStandardSolanaSigner
16
- } from "./chunk-24I4R732.js";
17
- import "./chunk-SKGTNTLF.js";
18
- import "./chunk-QEAS4ZGS.js";
19
- import "./chunk-QNUHWK7R.js";
20
- import "./chunk-3Y3L2F54.js";
21
- import "./chunk-SE4PFJPT.js";
15
+ } from "./chunk-5XLZ34PV.js";
16
+ import {
17
+ telegramMiniAppInitData
18
+ } from "./chunk-FWLQ5XCS.js";
19
+ import "./chunk-LZWXCBUB.js";
20
+ import "./chunk-AQOL3SK5.js";
21
+ import "./chunk-MTKRIQEU.js";
22
+ import "./chunk-EHUSD3O2.js";
23
+ import "./chunk-4NOFSGAL.js";
24
+ import "./chunk-QR6HH4DI.js";
25
+ import "./chunk-W7YSMSGC.js";
22
26
  import {
23
27
  getHostEnvironment
24
- } from "./chunk-KDR2VAJP.js";
25
- import "./chunk-XBV2CK2H.js";
26
- import "./chunk-EN3M5Z4J.js";
27
- import "./chunk-PPB7HALD.js";
28
- import "./chunk-ZDJLPN4L.js";
28
+ } from "./chunk-UYVJZR33.js";
29
+ import "./chunk-ICXZZNPS.js";
30
+ import "./chunk-FO2LCZTL.js";
31
+ import "./chunk-3RFP6GT5.js";
32
+ import "./chunk-N4BDKS6Y.js";
33
+ import "./chunk-ID3BZXFZ.js";
34
+ import "./chunk-GLH6MEI2.js";
29
35
  export {
30
36
  browserSubmissionStore,
31
37
  cosmosChainList,