@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
@@ -0,0 +1,377 @@
1
+ import {
2
+ pointLedgerReferenceSchema
3
+ } from "./chunk-W7YSMSGC.js";
4
+ import {
5
+ authProviderSchema,
6
+ entitlementSchema,
7
+ identifier,
8
+ pageCursorSchema,
9
+ pickupAvailabilitySchema,
10
+ pickupSelectionSchema,
11
+ signInProviderOptionSchema,
12
+ skipEnrollmentSchema,
13
+ telegramSignInMethodsSchema,
14
+ walletSignInNetworksSchema
15
+ } from "./chunk-ID3BZXFZ.js";
16
+
17
+ // src/sign-in-providers.ts
18
+ import * as z from "zod";
19
+ var authProvidersSchema = /* @__PURE__ */ (() => z.object({
20
+ providers: z.array(
21
+ z.object({
22
+ provider: authProviderSchema,
23
+ configured: z.boolean()
24
+ })
25
+ ),
26
+ email: z.boolean(),
27
+ /** The wallet sign-in this project enabled. */
28
+ wallets: walletSignInNetworksSchema,
29
+ demo: z.boolean(),
30
+ /**
31
+ * Telegram's sign-in, which is not one of `providers` in SDK 1.x. Absent from Relay versions
32
+ * without Telegram. `login` is deprecated in favour of `signInProviders`; `miniApp` is not.
33
+ */
34
+ telegram: telegramSignInMethodsSchema.optional(),
35
+ /**
36
+ * Every sign-in provider the platform has, Telegram included, and whether Domino configured it:
37
+ * the open sibling of `providers`, which SDK 1.x keeps to `AuthProvider`. A newer Relay may list
38
+ * providers this SDK does not know. Absent from older Relay versions.
39
+ */
40
+ signInProviders: z.array(signInProviderOptionSchema).optional()
41
+ }))();
42
+
43
+ // src/creator-accounts.ts
44
+ import * as z2 from "zod";
45
+ var knownCreatorAccountProviders = ["youtube", "tiktok"];
46
+ var creatorAccountProviderSchema = /* @__PURE__ */ (() => z2.custom(
47
+ (value) => typeof value === "string" && /^[a-z][a-z0-9-]{0,39}$/.test(value)
48
+ ))();
49
+ var creatorAccountSchema = /* @__PURE__ */ (() => z2.object({
50
+ provider: creatorAccountProviderSchema,
51
+ configured: z2.boolean(),
52
+ status: z2.enum(["disconnected", "connected", "reconnect"]),
53
+ subject: z2.string().nullable(),
54
+ revision: z2.number().int().nonnegative(),
55
+ profile: z2.object({
56
+ name: z2.string().optional(),
57
+ username: z2.string().optional(),
58
+ imageUrl: z2.string().optional()
59
+ }).nullable()
60
+ }))();
61
+ var creatorAccountsSchema = /* @__PURE__ */ (() => z2.object({
62
+ accounts: z2.array(creatorAccountSchema)
63
+ }))();
64
+
65
+ // src/consent.ts
66
+ import * as z3 from "zod";
67
+ var consentWordingMaxLength = 2e3;
68
+ var knownConsentChannels = ["email"];
69
+ var openValue = /* @__PURE__ */ (() => z3.string().min(1).max(64))();
70
+ var memberConsentSchema = /* @__PURE__ */ (() => z3.object({
71
+ member: identifier,
72
+ channel: openValue,
73
+ state: openValue,
74
+ at: z3.number().int().safe().nonnegative(),
75
+ wording: z3.string().nullable(),
76
+ source: openValue
77
+ }))();
78
+ var memberConsentListSchema = /* @__PURE__ */ (() => z3.array(memberConsentSchema))();
79
+ var consentInputSchema = /* @__PURE__ */ (() => z3.object({
80
+ actionId: identifier,
81
+ channel: z3.custom(
82
+ (value) => typeof value === "string" && value.length <= 64
83
+ ),
84
+ granted: z3.boolean(),
85
+ wording: z3.string().optional()
86
+ }).strict())();
87
+ var memberConsentInputSchema = /* @__PURE__ */ (() => z3.object({
88
+ actionId: identifier,
89
+ member: identifier,
90
+ channel: z3.string().max(64),
91
+ granted: z3.boolean(),
92
+ wording: z3.string().optional()
93
+ }).strict())();
94
+ var memberConsentHistorySchema = /* @__PURE__ */ (() => z3.object({
95
+ items: z3.array(memberConsentSchema),
96
+ nextCursor: z3.string().nullable()
97
+ }))();
98
+ var memberConsentHistoryQuerySchema = /* @__PURE__ */ (() => z3.object({
99
+ cursor: z3.string().max(2e3).optional(),
100
+ limit: z3.coerce.number().int().min(1).max(100).optional()
101
+ }).strict())();
102
+
103
+ // src/collection.ts
104
+ import * as z4 from "zod";
105
+ var collectionCodeSchema = /* @__PURE__ */ (() => z4.string().regex(/^relay:collect:[a-f0-9]{64}$/))();
106
+ var collectionPassSchema = /* @__PURE__ */ (() => z4.object({
107
+ code: collectionCodeSchema,
108
+ expiresAt: z4.number(),
109
+ entitlement: identifier
110
+ }))();
111
+ var collectionResolveSchema = /* @__PURE__ */ (() => z4.object({ code: collectionCodeSchema }).strict())();
112
+ var collectionBeginSchema = /* @__PURE__ */ (() => collectionResolveSchema.extend({
113
+ actionId: identifier,
114
+ revision: z4.number().int().positive(),
115
+ selection: pickupSelectionSchema.optional()
116
+ }))();
117
+ var collectionPreviewSchema = /* @__PURE__ */ (() => z4.object({
118
+ entitlement: entitlementSchema,
119
+ inventory: pickupAvailabilitySchema,
120
+ expiresAt: z4.number()
121
+ }))();
122
+
123
+ // src/outcomes.ts
124
+ import * as z5 from "zod";
125
+ var timestamp = /* @__PURE__ */ (() => z5.number().int().safe().nonnegative())();
126
+ var questEnrollmentInputSchema = /* @__PURE__ */ (() => z5.strictObject({
127
+ actionId: identifier,
128
+ /** Quest key or ID. */
129
+ quest: identifier
130
+ }))();
131
+ var memberEnrollmentInputSchema = /* @__PURE__ */ (() => questEnrollmentInputSchema.extend({
132
+ member: identifier
133
+ }))();
134
+ var questEnrollmentSchema = /* @__PURE__ */ (() => z5.object({
135
+ /** Stable quest ID. */
136
+ quest: identifier,
137
+ member: identifier,
138
+ enrolledAt: timestamp
139
+ }))();
140
+ var questClaimInputSchema = /* @__PURE__ */ (() => z5.strictObject({
141
+ actionId: identifier,
142
+ /** Quest key or ID. */
143
+ quest: identifier,
144
+ /** The outcome's tracker, as `QuestOutcome.tracker` names it. */
145
+ tracker: identifier,
146
+ record: z5.string().min(1).max(256),
147
+ observedAt: timestamp
148
+ }))();
149
+ var QuestOutcomeState = {
150
+ Admitted: "admitted",
151
+ Skipped: "skipped"
152
+ };
153
+ var questOutcomeSchema = /* @__PURE__ */ (() => z5.object({
154
+ /** Prerequisite transition identity; absent on older tracker responses. */
155
+ automatic: identifier.optional(),
156
+ /** Stable quest ID. */
157
+ quest: identifier,
158
+ /** Stable tracker ID of the record decided. */
159
+ tracker: identifier.nullable(),
160
+ /** The record's ID in its tracker. */
161
+ record: z5.string().nullable(),
162
+ /** Which observation of the record was decided. */
163
+ observedAt: timestamp.nullable(),
164
+ state: z5.enum(["admitted", "skipped"]),
165
+ /**
166
+ * Why it was skipped, one of `trackerSkipCodes` or a code a newer Relay sends; null when
167
+ * admitted. Show an unknown code by its `reason`.
168
+ */
169
+ code: z5.string().nullable(),
170
+ /** Why it was skipped, for people; null when admitted. */
171
+ reason: z5.string().nullable(),
172
+ /** Which window refused admission when `code` is `outside-window`. */
173
+ window: z5.enum(["tracker", "quest"]).optional(),
174
+ /** Which enrollment the member lacks when `code` is `not-enrolled`: the quest's or its campaign's. */
175
+ enrollment: skipEnrollmentSchema,
176
+ /** The admitted attempt. */
177
+ attempt: identifier.nullable(),
178
+ /** The member can claim it with `relay.quests.claim()`. */
179
+ claimable: z5.boolean(),
180
+ createdAt: timestamp,
181
+ updatedAt: timestamp
182
+ }))();
183
+ var questOutcomeQuerySchema = /* @__PURE__ */ (() => z5.strictObject({
184
+ /** Quest key or ID. */
185
+ quest: identifier.optional(),
186
+ state: z5.enum(["admitted", "skipped"]).optional(),
187
+ /** Only skips with this code, such as `historical`. */
188
+ code: z5.string().min(1).max(100).optional(),
189
+ cursor: pageCursorSchema.optional()
190
+ }))();
191
+ var questOutcomePageSchema = /* @__PURE__ */ (() => z5.object({
192
+ items: z5.array(questOutcomeSchema),
193
+ nextCursor: pageCursorSchema.nullable()
194
+ }))();
195
+
196
+ // src/participant-rewards.ts
197
+ import * as z6 from "zod";
198
+ var participantEntitlementsSchema = /* @__PURE__ */ (() => z6.object({
199
+ items: z6.array(entitlementSchema)
200
+ }))();
201
+ var base = /* @__PURE__ */ (() => ({
202
+ id: z6.string(),
203
+ status: z6.string(),
204
+ at: z6.number().nullable(),
205
+ quest: z6.string().nullable(),
206
+ completion: z6.string().nullable()
207
+ }))();
208
+ var known = /* @__PURE__ */ (() => z6.discriminatedUnion("kind", [
209
+ z6.object({
210
+ ...base,
211
+ kind: z6.literal("points"),
212
+ ledger: pointLedgerReferenceSchema,
213
+ amount: z6.number(),
214
+ reversed: z6.number()
215
+ }).catchall(z6.json()),
216
+ z6.object({
217
+ ...base,
218
+ kind: z6.literal("tier"),
219
+ entitlement: entitlementSchema
220
+ }).catchall(z6.json().transform((value) => value)),
221
+ z6.object({
222
+ ...base,
223
+ kind: z6.literal("integration"),
224
+ provider: z6.string(),
225
+ action: z6.string(),
226
+ roleId: z6.string().optional(),
227
+ deliveredAt: z6.number().nullable(),
228
+ revokedAt: z6.number().nullable(),
229
+ reconciliation: z6.object({ status: z6.string(), ownership: z6.string(), at: z6.number() }).catchall(z6.json()).nullable()
230
+ }).catchall(z6.json().optional())
231
+ ]))();
232
+ var participantDeliverySchema = /* @__PURE__ */ (() => z6.union([
233
+ known,
234
+ z6.object({
235
+ ...base,
236
+ kind: z6.string().refine((kind) => !["points", "tier", "integration"].includes(kind))
237
+ }).catchall(z6.json()).transform(({ kind, ...item }) => ({
238
+ ...item,
239
+ kind: "unknown",
240
+ reportedKind: kind
241
+ }))
242
+ ]))();
243
+ var participantDeliveriesSchema = /* @__PURE__ */ (() => z6.object({
244
+ items: z6.array(participantDeliverySchema)
245
+ }))();
246
+
247
+ // src/reward-deliveries.ts
248
+ import * as z7 from "zod";
249
+ var RewardDeliveryAction = {
250
+ /** Delivers a quest's Discord role reward. */
251
+ GrantRole: "grant-role",
252
+ /**
253
+ * Posts a quest's announcement in a Telegram chat or Discord channel. Its `provider` is
254
+ * `telegram` or `discord`, and its `roleId` is empty.
255
+ */
256
+ PostMessage: "post-message"
257
+ };
258
+ var rewardDeliveryActionSchema = /* @__PURE__ */ (() => z7.string().min(1).max(64))();
259
+ var roleReconciliationSchema = /* @__PURE__ */ (() => z7.object({
260
+ status: z7.enum(["pending", "granted", "removed", "preserved", "failed"]),
261
+ ownership: z7.enum(["unclaimed", "relay", "external"]),
262
+ at: z7.number(),
263
+ reason: z7.string().nullable()
264
+ }))();
265
+ var knownRewardDeliverySchema = /* @__PURE__ */ (() => z7.object({
266
+ id: z7.string(),
267
+ quest: z7.string(),
268
+ completion: z7.string(),
269
+ member: z7.string(),
270
+ provider: z7.literal("discord"),
271
+ /** `RewardDeliveryAction`, such as `grant-role`. */
272
+ action: rewardDeliveryActionSchema,
273
+ roleId: z7.string(),
274
+ /**
275
+ * `failed` is terminal: Discord rejected the grant permanently (unknown role,
276
+ * member left the server, missing permissions) or retries ran out after about
277
+ * a day. An operator can retry it once the cause is fixed, unless revokedAt is set.
278
+ * Revoke stops pending grants; a late success records deliveredAt but leaves status failed.
279
+ */
280
+ status: z7.enum(["pending", "delivered", "failed"]),
281
+ /** Provider attempts in the current round; an operator retry starts a new round at zero. */
282
+ attempts: z7.number().int(),
283
+ /** While pending with a `lastError`, when the next attempt is scheduled. */
284
+ nextAt: z7.number(),
285
+ lastError: z7.string().nullable(),
286
+ createdAt: z7.number(),
287
+ deliveredAt: z7.number().nullable(),
288
+ /** First dispatch attempt, retained across retries. Legacy rows use creation time when dispatch timing is unknown. */
289
+ dispatchedAt: z7.number().nullable().optional(),
290
+ /** Completion revocation stops retries, including deliveries that had already failed. */
291
+ revokedAt: z7.number().nullable().optional(),
292
+ /** Current reconciliation of the pinned Discord membership; original delivery and revoke history stay intact. */
293
+ reconciliation: roleReconciliationSchema.nullable().optional()
294
+ }))();
295
+ var futureRewardDeliverySchema = /* @__PURE__ */ (() => knownRewardDeliverySchema.extend({
296
+ provider: z7.string(),
297
+ status: z7.string(),
298
+ roleId: z7.string().optional(),
299
+ reconciliation: z7.object({
300
+ status: z7.string(),
301
+ ownership: z7.string(),
302
+ at: z7.number(),
303
+ reason: z7.string().nullable()
304
+ }).catchall(z7.json()).nullable().optional()
305
+ }).catchall(z7.json().optional()).refine(
306
+ (delivery) => delivery.provider !== "discord" || !["pending", "delivered", "failed"].includes(delivery.status) || delivery.reconciliation && (!["pending", "granted", "removed", "preserved", "failed"].includes(
307
+ delivery.reconciliation.status
308
+ ) || !["unclaimed", "relay", "external"].includes(
309
+ delivery.reconciliation.ownership
310
+ ))
311
+ ))();
312
+ var rewardDeliverySchema = /* @__PURE__ */ (() => z7.union([
313
+ knownRewardDeliverySchema.catchall(z7.json().optional()),
314
+ futureRewardDeliverySchema
315
+ ]))();
316
+ var rewardDeliveriesSchema = /* @__PURE__ */ (() => z7.object({
317
+ deliveries: z7.array(rewardDeliverySchema),
318
+ items: z7.array(rewardDeliverySchema).optional(),
319
+ nextCursor: pageCursorSchema.nullable().default(null)
320
+ }))();
321
+ var rewardDeliveryQuerySchema = /* @__PURE__ */ (() => z7.strictObject({
322
+ cursor: pageCursorSchema.optional(),
323
+ limit: z7.coerce.number().int().min(1).max(500).optional()
324
+ }))();
325
+ var discordRoleRewardSchema = /* @__PURE__ */ (() => z7.object({
326
+ roleId: z7.string(),
327
+ quests: z7.array(z7.string()),
328
+ /** Delivery records of this role by `RewardDelivery.status`. */
329
+ deliveries: z7.object({
330
+ pending: z7.number().int(),
331
+ delivered: z7.number().int(),
332
+ failed: z7.number().int()
333
+ })
334
+ }))();
335
+ var discordRoleRewardsSchema = /* @__PURE__ */ (() => z7.object({
336
+ roles: z7.array(discordRoleRewardSchema)
337
+ }))();
338
+
339
+ export {
340
+ authProvidersSchema,
341
+ knownCreatorAccountProviders,
342
+ creatorAccountProviderSchema,
343
+ creatorAccountSchema,
344
+ creatorAccountsSchema,
345
+ consentWordingMaxLength,
346
+ knownConsentChannels,
347
+ memberConsentSchema,
348
+ memberConsentListSchema,
349
+ consentInputSchema,
350
+ memberConsentInputSchema,
351
+ memberConsentHistorySchema,
352
+ memberConsentHistoryQuerySchema,
353
+ collectionCodeSchema,
354
+ collectionPassSchema,
355
+ collectionResolveSchema,
356
+ collectionBeginSchema,
357
+ collectionPreviewSchema,
358
+ questEnrollmentInputSchema,
359
+ memberEnrollmentInputSchema,
360
+ questEnrollmentSchema,
361
+ questClaimInputSchema,
362
+ QuestOutcomeState,
363
+ questOutcomeSchema,
364
+ questOutcomeQuerySchema,
365
+ questOutcomePageSchema,
366
+ participantEntitlementsSchema,
367
+ participantDeliverySchema,
368
+ participantDeliveriesSchema,
369
+ RewardDeliveryAction,
370
+ roleReconciliationSchema,
371
+ knownRewardDeliverySchema,
372
+ rewardDeliverySchema,
373
+ rewardDeliveriesSchema,
374
+ rewardDeliveryQuerySchema,
375
+ discordRoleRewardSchema,
376
+ discordRoleRewardsSchema
377
+ };
@@ -0,0 +1,19 @@
1
+ // src/definition-error.ts
2
+ function issueText(issues) {
3
+ return issues.map(
4
+ (issue) => issue.path.length ? issue.path.map(String).join(".") + ": " + issue.message : issue.message
5
+ ).join("; ");
6
+ }
7
+ function parseDefinition(kind, schema, input) {
8
+ const parsed = schema.safeParse(input);
9
+ if (parsed.success) {
10
+ return parsed.data;
11
+ }
12
+ const key = typeof input === "object" && input !== null && "key" in input && typeof input.key === "string" ? ` "${input.key}"` : "";
13
+ parsed.error.message = `${kind}${key} is invalid: ${issueText(parsed.error.issues)}`;
14
+ throw parsed.error;
15
+ }
16
+
17
+ export {
18
+ parseDefinition
19
+ };