@domino-sdk/relay 1.16.0 → 1.18.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/dist/{attempt-captures-DHwIVoRP.d.ts → attempt-captures-ByzZyggX.d.ts} +5 -1
- package/dist/authoring.d.ts +82 -9
- package/dist/authoring.js +14 -9
- package/dist/{automatic-outcomes-BcEn_L46.d.ts → automatic-outcomes-BBSdMf0R.d.ts} +2 -1
- package/dist/avatar.d.ts +1 -1
- package/dist/browser.d.ts +7 -7
- package/dist/browser.js +9 -11
- package/dist/{chunk-3YCCHTCU.js → chunk-3IX2IYMQ.js} +2 -2
- package/dist/{chunk-6QJ3LADK.js → chunk-5P5PTZ3T.js} +1 -1
- package/dist/{chunk-W335CWYJ.js → chunk-CVQG2AZZ.js} +2 -2
- package/dist/{chunk-46C33ASD.js → chunk-EMLDFUTV.js} +1314 -908
- package/dist/{chunk-4OLQYRSA.js → chunk-GMKJPHN4.js} +1 -1
- package/dist/{chunk-YT3QKV2L.js → chunk-GTM3XNMQ.js} +1 -1
- package/dist/{chunk-LLMJ2SUT.js → chunk-IE4QOQUI.js} +21 -4
- package/dist/{chunk-ZGH6NEG6.js → chunk-JIQHUDVZ.js} +1 -1
- package/dist/{chunk-ZLYBUM7K.js → chunk-NBYS3NQT.js} +29 -17
- package/dist/{chunk-NIYCAW2I.js → chunk-NGP2NMZ4.js} +1 -1
- package/dist/{chunk-XMBM2XD5.js → chunk-T47OFHHX.js} +2 -4
- package/dist/{chunk-NM3IYYPG.js → chunk-UEPEKXOC.js} +6 -8
- package/dist/{chunk-AXRMT33W.js → chunk-UIHPWC4C.js} +3 -0
- package/dist/{chunk-UJACD6K2.js → chunk-XSLRNFIY.js} +346 -304
- package/dist/{chunk-Y6SRF54G.js → chunk-YGWB6GH3.js} +32 -25
- package/dist/{chunk-PT5STHFH.js → chunk-YXAK2637.js} +1 -1
- package/dist/{client-DFSCmf3H.d.ts → client-93pUw04R.d.ts} +182 -14
- package/dist/{deployments-DIbKJO_Y.d.ts → deployments-Cz-tNK7Z.d.ts} +832 -16
- package/dist/{groups-Bi7lc54m.d.ts → groups-jLLG7MML.d.ts} +27 -2
- package/dist/{images-Cb8QHGjn.d.ts → images-BPiPqVKn.d.ts} +1 -1
- package/dist/index.d.ts +8 -8
- package/dist/index.js +12 -16
- package/dist/internal.d.ts +10 -10
- package/dist/internal.js +9 -10
- package/dist/{offers-Catj06u7.d.ts → offers-CPqiF3dZ.d.ts} +92 -3
- package/dist/{pages-CpYt56Km.d.ts → pages-1h1387a3.d.ts} +757 -3
- package/dist/portal-proxy.js +4 -4
- package/dist/react/index.d.ts +47 -19
- package/dist/react/index.js +361 -340
- package/dist/{schema-BaVl2VBS.d.ts → schema-Br3c1GOu.d.ts} +508 -2
- package/dist/schema.d.ts +565 -24
- package/dist/schema.js +61 -32
- package/dist/server/index.d.ts +10 -10
- package/dist/server/index.js +82 -24
- package/dist/{sign-in-options-CU1ND6-y.d.ts → sign-in-options--25uHySG.d.ts} +1 -1
- package/dist/{submission-input-Bi4HipqI.d.ts → submission-input-BEJ9qENg.d.ts} +2 -2
- package/dist/testing.d.ts +3 -3
- package/dist/testing.js +10 -13
- package/dist/{transport-BdrcbKi_.d.ts → transport-CVac_nGZ.d.ts} +6411 -72
- package/package.json +1 -1
- package/dist/chunk-2UAVZCMH.js +0 -314
- package/dist/chunk-NPGENI7K.js +0 -37
- package/dist/{profiles-BHMVj0kM.d.ts → profiles-D29SS12z.d.ts} +1 -1
|
@@ -11,39 +11,71 @@ import {
|
|
|
11
11
|
responseShape,
|
|
12
12
|
rewardKey,
|
|
13
13
|
tierRewardSchema
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-EMLDFUTV.js";
|
|
15
15
|
|
|
16
|
-
// src/
|
|
16
|
+
// src/badges.ts
|
|
17
17
|
import { z } from "zod";
|
|
18
|
-
var
|
|
18
|
+
var badgePropertiesSchema = z.object({
|
|
19
19
|
name: z.string().trim().min(1).max(120),
|
|
20
|
-
description: z.string().trim().max(1e3).default("")
|
|
20
|
+
description: z.string().trim().max(1e3).default(""),
|
|
21
|
+
image: z.string().url().max(2048)
|
|
22
|
+
}).strict();
|
|
23
|
+
var badgeDeclarationSchema = badgePropertiesSchema.extend({ key: identifier }).strict();
|
|
24
|
+
var badgeSchema = badgePropertiesSchema.extend({ id: identifier, key: identifier.nullable() }).strip();
|
|
25
|
+
var managedBadgeSchema = badgeSchema.extend({
|
|
26
|
+
archivedAt: z.number().int().nonnegative().nullable()
|
|
27
|
+
});
|
|
28
|
+
var createBadgeSchema = badgeDeclarationSchema.extend({ actionId: identifier }).strict();
|
|
29
|
+
var badgeArtifactSchema = z.union([
|
|
30
|
+
badgeDeclarationSchema,
|
|
31
|
+
z.object({ code: z.string().min(1).max(2e6) }).strict()
|
|
32
|
+
]);
|
|
33
|
+
var memberBadgeSchema = z.object({
|
|
34
|
+
badge: badgeSchema,
|
|
35
|
+
awardedAt: z.number().int().nonnegative()
|
|
36
|
+
});
|
|
37
|
+
var memberBadgesSchema = z.object({
|
|
38
|
+
items: z.array(memberBadgeSchema)
|
|
39
|
+
});
|
|
40
|
+
var badgeMutationSchema = z.object({ actionId: identifier, reason: z.string().trim().min(1).max(1e3) }).strict();
|
|
41
|
+
var badgeMutationResultSchema = z.object({
|
|
42
|
+
badge: identifier,
|
|
43
|
+
member: identifier,
|
|
44
|
+
awarded: z.boolean(),
|
|
45
|
+
changed: z.boolean()
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
// src/point-ledgers.ts
|
|
49
|
+
import { z as z2 } from "zod";
|
|
50
|
+
var pointLedgerPropertiesSchema = z2.object({
|
|
51
|
+
name: z2.string().trim().min(1).max(120),
|
|
52
|
+
description: z2.string().trim().max(1e3).default("")
|
|
21
53
|
}).strict();
|
|
22
54
|
var createPointLedgerSchema = pointLedgerPropertiesSchema.extend({ actionId: identifier, key: identifier.optional() }).strict();
|
|
23
55
|
var pointLedgerSchema = pointLedgerPropertiesSchema.extend({
|
|
24
56
|
id: identifier
|
|
25
57
|
});
|
|
26
58
|
var managedPointLedgerSchema = pointLedgerSchema.extend({
|
|
27
|
-
archivedAt:
|
|
59
|
+
archivedAt: z2.number().int().nonnegative().nullable()
|
|
28
60
|
});
|
|
29
61
|
var pointLedgerDeclarationSchema = pointLedgerPropertiesSchema.extend({ key: identifier }).strict();
|
|
30
|
-
var pointLedgerArtifactSchema =
|
|
62
|
+
var pointLedgerArtifactSchema = z2.union([
|
|
31
63
|
pointLedgerDeclarationSchema,
|
|
32
|
-
|
|
64
|
+
z2.object({ code: z2.string().min(1).max(2e6) }).strict()
|
|
33
65
|
]);
|
|
34
|
-
var pointLedgerReferenceSchema =
|
|
66
|
+
var pointLedgerReferenceSchema = z2.object({
|
|
35
67
|
id: identifier,
|
|
36
68
|
key: identifier.nullable(),
|
|
37
|
-
name:
|
|
69
|
+
name: z2.string()
|
|
38
70
|
});
|
|
39
|
-
var points =
|
|
40
|
-
var pointBalanceSchema =
|
|
71
|
+
var points = z2.number().int().safe();
|
|
72
|
+
var pointBalanceSchema = z2.object({
|
|
41
73
|
ledger: pointLedgerReferenceSchema,
|
|
42
74
|
balance: points,
|
|
43
75
|
available: points
|
|
44
76
|
});
|
|
45
|
-
var pointBalancesSchema =
|
|
46
|
-
items:
|
|
77
|
+
var pointBalancesSchema = z2.object({
|
|
78
|
+
items: z2.array(pointBalanceSchema)
|
|
47
79
|
});
|
|
48
80
|
var PointEntryKind = {
|
|
49
81
|
/** Points a quest completion, an engagement settlement or an operator awarded. */
|
|
@@ -55,8 +87,8 @@ var PointEntryKind = {
|
|
|
55
87
|
/** Undoes part or all of an award or a positive adjustment (`reverses`). */
|
|
56
88
|
Reverse: "reverse"
|
|
57
89
|
};
|
|
58
|
-
var pointEntryKindSchema =
|
|
59
|
-
var pointEntrySchema =
|
|
90
|
+
var pointEntryKindSchema = z2.string().min(1).max(64);
|
|
91
|
+
var pointEntrySchema = z2.object({
|
|
60
92
|
id: identifier,
|
|
61
93
|
amount: points,
|
|
62
94
|
kind: pointEntryKindSchema,
|
|
@@ -65,64 +97,64 @@ var pointEntrySchema = z.object({
|
|
|
65
97
|
quest: identifier.nullable(),
|
|
66
98
|
reverses: identifier.nullable()
|
|
67
99
|
});
|
|
68
|
-
var pointHistoryQuerySchema =
|
|
100
|
+
var pointHistoryQuerySchema = z2.strictObject({
|
|
69
101
|
ledger: identifier,
|
|
70
102
|
cursor: pageCursorSchema.optional()
|
|
71
103
|
});
|
|
72
|
-
var pointHistoryPageSchema =
|
|
73
|
-
items:
|
|
104
|
+
var pointHistoryPageSchema = z2.object({
|
|
105
|
+
items: z2.array(pointEntrySchema),
|
|
74
106
|
nextCursor: pageCursorSchema.nullable()
|
|
75
107
|
});
|
|
76
108
|
|
|
77
109
|
// src/engagement.ts
|
|
78
|
-
import { z as
|
|
79
|
-
var amount =
|
|
80
|
-
var engagementBudgetSchema =
|
|
81
|
-
scope:
|
|
110
|
+
import { z as z3 } from "zod";
|
|
111
|
+
var amount = z3.number().int().safe().nonnegative();
|
|
112
|
+
var engagementBudgetSchema = z3.strictObject({
|
|
113
|
+
scope: z3.enum(["member", "project"]),
|
|
82
114
|
period: calendarPeriodSchema,
|
|
83
115
|
limit: amount
|
|
84
116
|
});
|
|
85
|
-
var engagementDefinitionSchema =
|
|
117
|
+
var engagementDefinitionSchema = z3.strictObject({
|
|
86
118
|
key: identifier,
|
|
87
119
|
qualifiedBy: identifier,
|
|
88
120
|
balance: identifier,
|
|
89
|
-
metrics:
|
|
121
|
+
metrics: z3.array(contentMetricSchema).min(1).max(10).refine(
|
|
90
122
|
(metrics) => new Set(metrics).size === metrics.length,
|
|
91
123
|
"Metrics must be unique"
|
|
92
124
|
),
|
|
93
|
-
baseline:
|
|
94
|
-
maxAgeMs:
|
|
95
|
-
budgets:
|
|
125
|
+
baseline: z3.literal("historical"),
|
|
126
|
+
maxAgeMs: z3.number().int().positive().max(864e5).default(36e5),
|
|
127
|
+
budgets: z3.array(engagementBudgetSchema).max(8).default([]).refine(
|
|
96
128
|
(budgets) => new Set(budgets.map((b) => b.scope + ":" + b.period)).size === budgets.length,
|
|
97
129
|
"Give each scope and period one budget"
|
|
98
130
|
)
|
|
99
131
|
});
|
|
100
|
-
var engagementScoreInputSchema =
|
|
132
|
+
var engagementScoreInputSchema = z3.strictObject({
|
|
101
133
|
metrics: contentMetricsSchema,
|
|
102
134
|
baseline: contentMetricsSchema
|
|
103
135
|
});
|
|
104
|
-
var engagementScoreSchema =
|
|
136
|
+
var engagementScoreSchema = z3.strictObject({
|
|
105
137
|
target: amount,
|
|
106
138
|
baseline: amount
|
|
107
139
|
});
|
|
108
|
-
var engagementPublishSchema =
|
|
140
|
+
var engagementPublishSchema = z3.strictObject({
|
|
109
141
|
actionId: identifier,
|
|
110
|
-
code:
|
|
142
|
+
code: z3.string().min(1).max(1e6)
|
|
111
143
|
});
|
|
112
|
-
var engagementRuleSchema =
|
|
144
|
+
var engagementRuleSchema = z3.strictObject({
|
|
113
145
|
version: identifier,
|
|
114
146
|
definition: engagementDefinitionSchema,
|
|
115
147
|
publishedAt: amount
|
|
116
148
|
});
|
|
117
|
-
var engagementPageQuerySchema =
|
|
149
|
+
var engagementPageQuerySchema = z3.strictObject({
|
|
118
150
|
rule: identifier,
|
|
119
|
-
content:
|
|
151
|
+
content: z3.string().min(1).max(256),
|
|
120
152
|
member: identifier.optional(),
|
|
121
153
|
cursor: pageCursorSchema.optional()
|
|
122
154
|
});
|
|
123
|
-
var engagementSettlementSchema =
|
|
155
|
+
var engagementSettlementSchema = z3.strictObject({
|
|
124
156
|
id: identifier,
|
|
125
|
-
day:
|
|
157
|
+
day: z3.string(),
|
|
126
158
|
observation: identifier,
|
|
127
159
|
qualification: identifier,
|
|
128
160
|
earned: amount,
|
|
@@ -132,9 +164,9 @@ var engagementSettlementSchema = z2.strictObject({
|
|
|
132
164
|
entry: identifier.nullable(),
|
|
133
165
|
createdAt: amount
|
|
134
166
|
});
|
|
135
|
-
var engagementPageSchema =
|
|
167
|
+
var engagementPageSchema = z3.strictObject({
|
|
136
168
|
rule: engagementRuleSchema,
|
|
137
|
-
account:
|
|
169
|
+
account: z3.strictObject({
|
|
138
170
|
member: identifier,
|
|
139
171
|
earned: amount,
|
|
140
172
|
accounted: amount,
|
|
@@ -145,28 +177,28 @@ var engagementPageSchema = z2.strictObject({
|
|
|
145
177
|
baseline: contentMetricsSchema,
|
|
146
178
|
observation: identifier.nullable(),
|
|
147
179
|
nextSettlementAt: amount.nullable(),
|
|
148
|
-
reason:
|
|
180
|
+
reason: z3.string().nullable()
|
|
149
181
|
}).nullable(),
|
|
150
|
-
items:
|
|
182
|
+
items: z3.array(engagementSettlementSchema),
|
|
151
183
|
nextCursor: pageCursorSchema.nullable()
|
|
152
184
|
});
|
|
153
|
-
var engagementChangePreviewInputSchema =
|
|
154
|
-
code:
|
|
185
|
+
var engagementChangePreviewInputSchema = z3.strictObject({
|
|
186
|
+
code: z3.string().min(1).max(1e6)
|
|
155
187
|
});
|
|
156
188
|
var engagementChangeSchema = engagementPublishSchema.extend({
|
|
157
189
|
expectedVersion: identifier,
|
|
158
190
|
previewHash: identifier
|
|
159
191
|
});
|
|
160
|
-
var total =
|
|
161
|
-
var engagementChangePreviewSchema =
|
|
192
|
+
var total = z3.string().regex(/^(0|[1-9][0-9]*)$/);
|
|
193
|
+
var engagementChangePreviewSchema = z3.strictObject({
|
|
162
194
|
rule: identifier,
|
|
163
195
|
fromVersion: identifier,
|
|
164
196
|
toVersion: identifier,
|
|
165
197
|
previewHash: identifier,
|
|
166
198
|
definition: engagementDefinitionSchema,
|
|
167
|
-
boundary:
|
|
168
|
-
settlement:
|
|
169
|
-
summary:
|
|
199
|
+
boundary: z3.literal("available-eligible-observation"),
|
|
200
|
+
settlement: z3.literal("deferred"),
|
|
201
|
+
summary: z3.strictObject({
|
|
170
202
|
knownAdmissions: amount,
|
|
171
203
|
accounts: amount,
|
|
172
204
|
uninitialized: amount,
|
|
@@ -180,13 +212,13 @@ var engagementChangePreviewSchema = z2.strictObject({
|
|
|
180
212
|
var engagementVersionSchema = engagementRuleSchema.extend({
|
|
181
213
|
previousVersion: identifier.nullable()
|
|
182
214
|
});
|
|
183
|
-
var engagementRuleVersionPageSchema =
|
|
184
|
-
items:
|
|
185
|
-
|
|
215
|
+
var engagementRuleVersionPageSchema = z3.object({
|
|
216
|
+
items: z3.array(
|
|
217
|
+
z3.object({
|
|
186
218
|
version: identifier,
|
|
187
|
-
definition:
|
|
219
|
+
definition: z3.object({
|
|
188
220
|
...engagementDefinitionSchema.shape,
|
|
189
|
-
budgets:
|
|
221
|
+
budgets: z3.array(z3.object(engagementBudgetSchema.shape)).max(8).default([])
|
|
190
222
|
}),
|
|
191
223
|
publishedAt: amount,
|
|
192
224
|
previousVersion: identifier.nullable()
|
|
@@ -194,19 +226,19 @@ var engagementRuleVersionPageSchema = z2.object({
|
|
|
194
226
|
),
|
|
195
227
|
nextCursor: pageCursorSchema.nullable()
|
|
196
228
|
});
|
|
197
|
-
var engagementVersionPageSchema =
|
|
198
|
-
items:
|
|
229
|
+
var engagementVersionPageSchema = z3.strictObject({
|
|
230
|
+
items: z3.array(engagementVersionSchema),
|
|
199
231
|
next: amount.nullable()
|
|
200
232
|
});
|
|
201
|
-
var engagementVersionQuerySchema =
|
|
233
|
+
var engagementVersionQuerySchema = z3.strictObject({
|
|
202
234
|
rule: identifier,
|
|
203
|
-
before:
|
|
235
|
+
before: z3.coerce.number().int().positive().safe().optional()
|
|
204
236
|
});
|
|
205
|
-
var engagementBoundaryPageSchema =
|
|
237
|
+
var engagementBoundaryPageSchema = z3.strictObject({
|
|
206
238
|
current: engagementRuleSchema.nullable(),
|
|
207
239
|
requested: engagementRuleSchema,
|
|
208
|
-
items:
|
|
209
|
-
|
|
240
|
+
items: z3.array(
|
|
241
|
+
z3.strictObject({
|
|
210
242
|
from: identifier,
|
|
211
243
|
to: identifier,
|
|
212
244
|
baseline: contentMetricsSchema,
|
|
@@ -222,137 +254,137 @@ var engagementArtifactSchema = engagementPublishSchema.omit({
|
|
|
222
254
|
var deploymentEntry = engagementArtifactSchema.extend({
|
|
223
255
|
rule: engagementRuleSchema
|
|
224
256
|
});
|
|
225
|
-
var engagementDeploymentEntrySchema =
|
|
226
|
-
deploymentEntry.extend({ kind:
|
|
227
|
-
deploymentEntry.extend({ kind:
|
|
257
|
+
var engagementDeploymentEntrySchema = z3.discriminatedUnion("kind", [
|
|
258
|
+
deploymentEntry.extend({ kind: z3.literal("create") }),
|
|
259
|
+
deploymentEntry.extend({ kind: z3.literal("unchanged") }),
|
|
228
260
|
deploymentEntry.extend({
|
|
229
|
-
kind:
|
|
261
|
+
kind: z3.literal("change"),
|
|
230
262
|
change: engagementChangePreviewSchema
|
|
231
263
|
})
|
|
232
264
|
]);
|
|
233
265
|
|
|
234
266
|
// src/profiles.ts
|
|
235
|
-
import { z as
|
|
236
|
-
var count =
|
|
237
|
-
var profileVisibilitySchema =
|
|
267
|
+
import { z as z4 } from "zod";
|
|
268
|
+
var count = z4.number().int().nonnegative().safe();
|
|
269
|
+
var profileVisibilitySchema = z4.enum([
|
|
238
270
|
"private",
|
|
239
271
|
"participants",
|
|
240
272
|
"public"
|
|
241
273
|
]);
|
|
242
|
-
var avatarProviderSchema =
|
|
243
|
-
var profileDefaultProviderSchema =
|
|
244
|
-
var profileDefaultsSchema =
|
|
274
|
+
var avatarProviderSchema = z4.enum(["x", "discord", "google"]);
|
|
275
|
+
var profileDefaultProviderSchema = z4.enum(["x", "discord"]);
|
|
276
|
+
var profileDefaultsSchema = z4.array(profileDefaultProviderSchema).max(profileDefaultProviderSchema.options.length).refine(
|
|
245
277
|
(providers) => new Set(providers).size === providers.length,
|
|
246
278
|
"List each provider once"
|
|
247
279
|
);
|
|
248
|
-
var avatarSeedSchema =
|
|
249
|
-
var profileAvatarSchema =
|
|
250
|
-
|
|
251
|
-
source:
|
|
252
|
-
url:
|
|
280
|
+
var avatarSeedSchema = z4.string().min(1).max(100);
|
|
281
|
+
var profileAvatarSchema = z4.discriminatedUnion("source", [
|
|
282
|
+
z4.object({
|
|
283
|
+
source: z4.literal("upload"),
|
|
284
|
+
url: z4.string().url(),
|
|
253
285
|
seed: avatarSeedSchema
|
|
254
286
|
}),
|
|
255
|
-
|
|
256
|
-
source:
|
|
287
|
+
z4.object({
|
|
288
|
+
source: z4.literal("account"),
|
|
257
289
|
provider: avatarProviderSchema,
|
|
258
|
-
url:
|
|
290
|
+
url: z4.string().url(),
|
|
259
291
|
seed: avatarSeedSchema
|
|
260
292
|
}),
|
|
261
|
-
|
|
293
|
+
z4.object({ source: z4.literal("generated"), seed: avatarSeedSchema })
|
|
262
294
|
]);
|
|
263
|
-
var profileSummarySchema =
|
|
295
|
+
var profileSummarySchema = z4.object({
|
|
264
296
|
id: identifier,
|
|
265
|
-
name:
|
|
297
|
+
name: z4.string(),
|
|
266
298
|
avatar: profileAvatarSchema
|
|
267
299
|
});
|
|
268
300
|
var invisible = /[\p{Cc}----]/u;
|
|
269
|
-
var displayNameSchema =
|
|
270
|
-
|
|
301
|
+
var displayNameSchema = z4.string().max(200).transform((value) => value.normalize("NFC").replace(/\s+/g, " ").trim()).pipe(
|
|
302
|
+
z4.string().min(1, "Enter a name").max(40, "Use at most 40 characters").refine((value) => !invisible.test(value), "Use visible characters only")
|
|
271
303
|
);
|
|
272
|
-
var profileUpdateSchema =
|
|
304
|
+
var profileUpdateSchema = z4.object({
|
|
273
305
|
displayName: displayNameSchema.nullable().optional(),
|
|
274
|
-
avatar:
|
|
275
|
-
|
|
276
|
-
source:
|
|
306
|
+
avatar: z4.discriminatedUnion("source", [
|
|
307
|
+
z4.object({
|
|
308
|
+
source: z4.literal("account"),
|
|
277
309
|
provider: avatarProviderSchema
|
|
278
310
|
}).strict(),
|
|
279
|
-
|
|
311
|
+
z4.object({ source: z4.literal("generated") }).strict()
|
|
280
312
|
]).nullable().optional(),
|
|
281
|
-
hidden:
|
|
313
|
+
hidden: z4.boolean().optional()
|
|
282
314
|
}).strict().refine(
|
|
283
315
|
(value) => Object.values(value).some((field) => field !== void 0),
|
|
284
316
|
"Change at least one field"
|
|
285
317
|
);
|
|
286
318
|
var ownProfileSchema = profileSummarySchema.extend({
|
|
287
319
|
/** The name the member chose, or null for the default. */
|
|
288
|
-
displayName:
|
|
320
|
+
displayName: z4.string().nullable(),
|
|
289
321
|
/** The avatar the member chose: `default` follows the project's defaults. */
|
|
290
|
-
avatarChoice:
|
|
322
|
+
avatarChoice: z4.enum(["default", "upload", "account", "generated"]),
|
|
291
323
|
/** The account of an `account` choice. */
|
|
292
324
|
avatarProvider: avatarProviderSchema.nullable(),
|
|
293
|
-
hidden:
|
|
325
|
+
hidden: z4.boolean(),
|
|
294
326
|
/** An operator locked the name and avatar; the member can still hide the profile. */
|
|
295
|
-
locked:
|
|
327
|
+
locked: z4.boolean(),
|
|
296
328
|
/** Who can see profiles in this project, so the app can explain it. */
|
|
297
329
|
visibility: profileVisibilitySchema,
|
|
298
330
|
/** The member's connected accounts a picture or name can come from. */
|
|
299
|
-
options:
|
|
300
|
-
|
|
331
|
+
options: z4.array(
|
|
332
|
+
z4.object({
|
|
301
333
|
provider: avatarProviderSchema,
|
|
302
|
-
name:
|
|
303
|
-
imageUrl:
|
|
334
|
+
name: z4.string().nullable(),
|
|
335
|
+
imageUrl: z4.string().url().nullable()
|
|
304
336
|
})
|
|
305
337
|
)
|
|
306
338
|
});
|
|
307
|
-
var cursor =
|
|
308
|
-
var profileCompletionQuerySchema =
|
|
309
|
-
limit:
|
|
339
|
+
var cursor = z4.string().min(1).max(512);
|
|
340
|
+
var profileCompletionQuerySchema = z4.object({
|
|
341
|
+
limit: z4.coerce.number().int().min(1).max(100).default(20),
|
|
310
342
|
cursor: cursor.optional()
|
|
311
343
|
}).strict();
|
|
312
|
-
var profileCompletionSchema =
|
|
344
|
+
var profileCompletionSchema = z4.object({
|
|
313
345
|
quest: identifier,
|
|
314
346
|
key: identifier.optional(),
|
|
315
|
-
title:
|
|
347
|
+
title: z4.string(),
|
|
316
348
|
completions: count.positive(),
|
|
317
349
|
/** Null for completions recorded before completion times were. */
|
|
318
350
|
lastCompletedAt: count.nullable()
|
|
319
351
|
});
|
|
320
|
-
var profileCompletionPageSchema =
|
|
321
|
-
items:
|
|
352
|
+
var profileCompletionPageSchema = z4.object({
|
|
353
|
+
items: z4.array(profileCompletionSchema),
|
|
322
354
|
nextCursor: cursor.nullable()
|
|
323
355
|
});
|
|
324
|
-
var profileReferralSchema =
|
|
356
|
+
var profileReferralSchema = z4.object({
|
|
325
357
|
program: identifier,
|
|
326
358
|
key: identifier.optional(),
|
|
327
|
-
title:
|
|
359
|
+
title: z4.string(),
|
|
328
360
|
/** Members this member invited. Invitations are shared by every program. */
|
|
329
361
|
invited: count,
|
|
330
362
|
/** Invited members who qualified in this program. */
|
|
331
363
|
qualified: count,
|
|
332
|
-
milestones:
|
|
333
|
-
|
|
364
|
+
milestones: z4.array(
|
|
365
|
+
z4.object({ id: identifier, count, reached: z4.boolean() })
|
|
334
366
|
)
|
|
335
367
|
});
|
|
336
|
-
var profileSettingsSchema =
|
|
368
|
+
var profileSettingsSchema = z4.object({
|
|
337
369
|
visibility: profileVisibilitySchema,
|
|
338
370
|
defaults: profileDefaultsSchema,
|
|
339
371
|
revision: count,
|
|
340
|
-
actor:
|
|
372
|
+
actor: z4.string().nullable(),
|
|
341
373
|
updatedAt: count.nullable()
|
|
342
374
|
});
|
|
343
375
|
var profileSettingsInputSchema = profileSettingsSchema.omit({ revision: true, actor: true, updatedAt: true }).extend({
|
|
344
376
|
actionId: identifier,
|
|
345
377
|
/** The revision the change was made against; a newer one is a 409. */
|
|
346
378
|
expectedRevision: count,
|
|
347
|
-
reason:
|
|
379
|
+
reason: z4.string().trim().min(1).max(500)
|
|
348
380
|
}).strict();
|
|
349
|
-
var profileModerationSchema =
|
|
381
|
+
var profileModerationSchema = z4.object({
|
|
350
382
|
actionId: identifier,
|
|
351
|
-
resetName:
|
|
352
|
-
removeAvatar:
|
|
383
|
+
resetName: z4.boolean().default(false),
|
|
384
|
+
removeAvatar: z4.boolean().default(false),
|
|
353
385
|
/** True locks the name and avatar, false unlocks them. */
|
|
354
|
-
lock:
|
|
355
|
-
reason:
|
|
386
|
+
lock: z4.boolean().optional(),
|
|
387
|
+
reason: z4.string().trim().min(1).max(1e3)
|
|
356
388
|
}).strict().refine(
|
|
357
389
|
(value) => value.resetName || value.removeAvatar || value.lock !== void 0,
|
|
358
390
|
"Choose an action"
|
|
@@ -360,55 +392,55 @@ var profileModerationSchema = z3.object({
|
|
|
360
392
|
var managedProfileSchema = ownProfileSchema.omit({ options: true }).extend({
|
|
361
393
|
member: identifier,
|
|
362
394
|
lockedAt: count.nullable(),
|
|
363
|
-
lockedBy:
|
|
364
|
-
lockedReason:
|
|
395
|
+
lockedBy: z4.string().nullable(),
|
|
396
|
+
lockedReason: z4.string().nullable(),
|
|
365
397
|
updatedAt: count
|
|
366
398
|
});
|
|
367
399
|
var AVATAR_UPLOAD_LIMIT = 5 * 1024 * 1024;
|
|
368
400
|
var avatarUploadTypes = ["image/jpeg", "image/png", "image/webp"];
|
|
369
401
|
|
|
370
402
|
// src/leaderboards.ts
|
|
371
|
-
import { z as
|
|
372
|
-
var integer =
|
|
403
|
+
import { z as z5 } from "zod";
|
|
404
|
+
var integer = z5.number().int().safe();
|
|
373
405
|
var timestamp = integer.nonnegative().max(864e13);
|
|
374
|
-
var leaderboardWindowSchema =
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
406
|
+
var leaderboardWindowSchema = z5.discriminatedUnion("kind", [
|
|
407
|
+
z5.object({ kind: z5.literal("all-time") }).strict(),
|
|
408
|
+
z5.object({ kind: z5.literal("fixed"), start: timestamp, end: timestamp }).strict().refine((w) => w.end > w.start, "Window end must follow its start"),
|
|
409
|
+
z5.object({ kind: z5.literal("rolling"), days: integer.min(1).max(3660) }).strict(),
|
|
378
410
|
// Not strict: boards published while a calendar window named its own `timeZone` keep reading,
|
|
379
411
|
// and the field drops on parse. The authoring schema refuses it.
|
|
380
|
-
|
|
381
|
-
kind:
|
|
412
|
+
z5.object({
|
|
413
|
+
kind: z5.literal("calendar"),
|
|
382
414
|
/** The current day, week (ISO, starting on Monday) or month of the project calendar. */
|
|
383
415
|
period: calendarPeriodSchema.exclude(["lifetime"])
|
|
384
416
|
})
|
|
385
417
|
]);
|
|
386
418
|
var periodScore = {
|
|
387
419
|
window: leaderboardWindowSchema.default({ kind: "all-time" }),
|
|
388
|
-
quests:
|
|
420
|
+
quests: z5.array(identifier).min(1).max(100).optional()
|
|
389
421
|
};
|
|
390
|
-
var scoreSchema =
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
kind:
|
|
422
|
+
var scoreSchema = z5.discriminatedUnion("kind", [
|
|
423
|
+
z5.object({ kind: z5.literal("balance") }).strict(),
|
|
424
|
+
z5.object({ kind: z5.literal("earned"), ...periodScore }).strict(),
|
|
425
|
+
z5.object({
|
|
426
|
+
kind: z5.literal("net"),
|
|
395
427
|
window: leaderboardWindowSchema.default({ kind: "all-time" })
|
|
396
428
|
}).strict()
|
|
397
429
|
]).default({ kind: "balance" });
|
|
398
|
-
var leaderboardPrizeRewardSchema =
|
|
430
|
+
var leaderboardPrizeRewardSchema = z5.union([
|
|
399
431
|
pointsRewardSchema,
|
|
400
432
|
tierRewardSchema
|
|
401
433
|
]);
|
|
402
|
-
var leaderboardPrizeSchema =
|
|
403
|
-
ranks:
|
|
434
|
+
var leaderboardPrizeSchema = z5.object({
|
|
435
|
+
ranks: z5.tuple([integer.positive(), integer.positive()]).refine(([first, last]) => last >= first, {
|
|
404
436
|
message: "Prize rank range must end at or after it starts"
|
|
405
437
|
}),
|
|
406
|
-
rewards:
|
|
438
|
+
rewards: z5.array(leaderboardPrizeRewardSchema).min(1).max(20)
|
|
407
439
|
}).strict();
|
|
408
|
-
var leaderboardSettlementPolicySchema =
|
|
409
|
-
at:
|
|
410
|
-
ties:
|
|
411
|
-
prizes:
|
|
440
|
+
var leaderboardSettlementPolicySchema = z5.object({
|
|
441
|
+
at: z5.literal("window-end"),
|
|
442
|
+
ties: z5.enum(["shared", "earliest"]),
|
|
443
|
+
prizes: z5.array(leaderboardPrizeSchema).min(1).max(50)
|
|
412
444
|
}).strict().superRefine((policy, context) => {
|
|
413
445
|
for (const [index, prize] of policy.prizes.entries()) {
|
|
414
446
|
const keys = prize.rewards.map(rewardKey);
|
|
@@ -432,13 +464,13 @@ var leaderboardSettlementPolicySchema = z4.object({
|
|
|
432
464
|
}
|
|
433
465
|
}
|
|
434
466
|
});
|
|
435
|
-
var leaderboardDefinitionObject =
|
|
467
|
+
var leaderboardDefinitionObject = z5.object({
|
|
436
468
|
id: identifier,
|
|
437
469
|
key: identifier.optional(),
|
|
438
|
-
title:
|
|
470
|
+
title: z5.string().trim().min(1).max(120),
|
|
439
471
|
balance: identifier,
|
|
440
472
|
score: scoreSchema,
|
|
441
|
-
access:
|
|
473
|
+
access: z5.enum(["participants", "public"]).default("participants"),
|
|
442
474
|
group: identifier.optional(),
|
|
443
475
|
settle: leaderboardSettlementPolicySchema.optional()
|
|
444
476
|
}).strict();
|
|
@@ -457,60 +489,60 @@ var leaderboardDefinitionResponseSchema = responseShape(
|
|
|
457
489
|
);
|
|
458
490
|
var leaderboardAuthoringSchema = leaderboardDefinitionObject.omit({ id: true }).extend({
|
|
459
491
|
...authoringIdentityShape,
|
|
460
|
-
score:
|
|
492
|
+
score: z5.preprocess(refuseWindowTimeZone, scoreSchema),
|
|
461
493
|
group: identifier.optional()
|
|
462
494
|
}).strict().superRefine(validateSettlementWindow);
|
|
463
|
-
var leaderboardArtifactSchema =
|
|
495
|
+
var leaderboardArtifactSchema = z5.union([
|
|
464
496
|
leaderboardAuthoringSchema,
|
|
465
|
-
|
|
497
|
+
z5.object({ code: z5.string().min(1).max(2e6) }).strict()
|
|
466
498
|
]);
|
|
467
|
-
var publishedLeaderboardSchema =
|
|
468
|
-
archivedAt:
|
|
499
|
+
var publishedLeaderboardSchema = z5.object({
|
|
500
|
+
archivedAt: z5.number().int().nonnegative().nullable().optional(),
|
|
469
501
|
version: identifier,
|
|
470
502
|
definition: leaderboardDefinitionResponseSchema,
|
|
471
503
|
publishedAt: timestamp,
|
|
472
|
-
actor:
|
|
504
|
+
actor: z5.string().nullable()
|
|
473
505
|
});
|
|
474
|
-
var leaderboardQuerySchema =
|
|
475
|
-
limit:
|
|
476
|
-
cursor:
|
|
506
|
+
var leaderboardQuerySchema = z5.object({
|
|
507
|
+
limit: z5.coerce.number().int().min(1).max(100).default(25),
|
|
508
|
+
cursor: z5.string().max(4096).optional()
|
|
477
509
|
}).strict();
|
|
478
|
-
var leaderboardRowSchema =
|
|
510
|
+
var leaderboardRowSchema = z5.object({
|
|
479
511
|
/** The row's stable key: a pseudonym per board and member. */
|
|
480
512
|
participant: identifier,
|
|
481
513
|
member: identifier.optional(),
|
|
482
514
|
/** The profile's name where the viewer can see it, otherwise the pseudonym's. */
|
|
483
|
-
name:
|
|
515
|
+
name: z5.string(),
|
|
484
516
|
score: integer,
|
|
485
517
|
rank: integer.positive(),
|
|
486
518
|
/** The member's profile, where visible to this viewer and not hidden by the member. */
|
|
487
519
|
profile: profileSummarySchema.nullable()
|
|
488
520
|
});
|
|
489
|
-
var leaderboardPageSchema =
|
|
521
|
+
var leaderboardPageSchema = z5.object({
|
|
490
522
|
leaderboard: identifier,
|
|
491
|
-
title:
|
|
523
|
+
title: z5.string(),
|
|
492
524
|
version: identifier,
|
|
493
|
-
calculation:
|
|
494
|
-
period:
|
|
525
|
+
calculation: z5.enum(["balance", "earned", "net"]),
|
|
526
|
+
period: z5.object({ start: timestamp.nullable(), end: timestamp.nullable() }),
|
|
495
527
|
calculatedAt: timestamp,
|
|
496
528
|
lastEntryAt: timestamp.nullable(),
|
|
497
529
|
total: integer.nonnegative(),
|
|
498
|
-
items:
|
|
530
|
+
items: z5.array(leaderboardRowSchema),
|
|
499
531
|
me: leaderboardRowSchema.nullable(),
|
|
500
|
-
nearby:
|
|
501
|
-
nextCursor:
|
|
532
|
+
nearby: z5.array(leaderboardRowSchema),
|
|
533
|
+
nextCursor: z5.string().nullable()
|
|
502
534
|
});
|
|
503
|
-
var leaderboardPlacementSchema =
|
|
535
|
+
var leaderboardPlacementSchema = z5.object({
|
|
504
536
|
leaderboard: identifier,
|
|
505
537
|
key: identifier.optional(),
|
|
506
|
-
title:
|
|
538
|
+
title: z5.string(),
|
|
507
539
|
profile: identifier,
|
|
508
540
|
rank: integer.positive().nullable(),
|
|
509
541
|
score: integer.nullable(),
|
|
510
542
|
/** Ranked participants on the board. */
|
|
511
543
|
total: integer.nonnegative()
|
|
512
544
|
});
|
|
513
|
-
var leaderboardPreviewSchema =
|
|
545
|
+
var leaderboardPreviewSchema = z5.object({
|
|
514
546
|
published: publishedLeaderboardSchema,
|
|
515
547
|
before: leaderboardPageSchema.nullable(),
|
|
516
548
|
after: leaderboardPageSchema
|
|
@@ -519,152 +551,152 @@ var mutationBase = {
|
|
|
519
551
|
actionId: identifier,
|
|
520
552
|
member: identifier,
|
|
521
553
|
balance: identifier,
|
|
522
|
-
reason:
|
|
554
|
+
reason: z5.string().trim().min(1).max(1e3)
|
|
523
555
|
};
|
|
524
556
|
var datedMutation = { ...mutationBase, effectiveAt: timestamp.optional() };
|
|
525
|
-
var pointsMutationSchema =
|
|
526
|
-
|
|
557
|
+
var pointsMutationSchema = z5.discriminatedUnion("kind", [
|
|
558
|
+
z5.object({
|
|
527
559
|
...datedMutation,
|
|
528
|
-
kind:
|
|
529
|
-
referralEligible:
|
|
560
|
+
kind: z5.literal("award"),
|
|
561
|
+
referralEligible: z5.boolean().optional(),
|
|
530
562
|
amount: integer.positive()
|
|
531
563
|
}).strict(),
|
|
532
|
-
|
|
564
|
+
z5.object({
|
|
533
565
|
...datedMutation,
|
|
534
|
-
kind:
|
|
566
|
+
kind: z5.literal("spend"),
|
|
535
567
|
amount: integer.positive()
|
|
536
568
|
}).strict(),
|
|
537
|
-
|
|
569
|
+
z5.object({
|
|
538
570
|
...datedMutation,
|
|
539
|
-
kind:
|
|
571
|
+
kind: z5.literal("adjust"),
|
|
540
572
|
amount: integer.refine((n) => n !== 0)
|
|
541
573
|
}).strict(),
|
|
542
|
-
|
|
574
|
+
z5.object({
|
|
543
575
|
...datedMutation,
|
|
544
|
-
kind:
|
|
576
|
+
kind: z5.literal("set"),
|
|
545
577
|
total: integer.nonnegative(),
|
|
546
578
|
expectedTotal: integer.nonnegative(),
|
|
547
|
-
classification:
|
|
579
|
+
classification: z5.enum(["earned", "spend"])
|
|
548
580
|
}).strict(),
|
|
549
|
-
|
|
581
|
+
z5.object({
|
|
550
582
|
...mutationBase,
|
|
551
|
-
kind:
|
|
583
|
+
kind: z5.literal("reverse"),
|
|
552
584
|
entry: identifier,
|
|
553
585
|
amount: integer.positive()
|
|
554
586
|
}).strict()
|
|
555
587
|
]);
|
|
556
|
-
var pointsEntrySchema =
|
|
588
|
+
var pointsEntrySchema = z5.object({
|
|
557
589
|
id: identifier,
|
|
558
|
-
completion:
|
|
590
|
+
completion: z5.string().nullable(),
|
|
559
591
|
member: identifier,
|
|
560
592
|
balance: identifier,
|
|
561
593
|
amount: integer,
|
|
562
|
-
kind:
|
|
594
|
+
kind: z5.enum(["award", "spend", "adjust", "reverse"]),
|
|
563
595
|
effectiveAt: timestamp,
|
|
564
596
|
receivedAt: timestamp,
|
|
565
597
|
quest: identifier.nullable(),
|
|
566
598
|
original: identifier.nullable(),
|
|
567
|
-
reason:
|
|
568
|
-
actor:
|
|
599
|
+
reason: z5.string(),
|
|
600
|
+
actor: z5.string().nullable()
|
|
569
601
|
});
|
|
570
|
-
var managedPointHistoryPageSchema =
|
|
571
|
-
items:
|
|
602
|
+
var managedPointHistoryPageSchema = z5.object({
|
|
603
|
+
items: z5.array(pointsEntrySchema),
|
|
572
604
|
nextCursor: pageCursorSchema.nullable(),
|
|
573
605
|
/** @deprecated Use `nextCursor`, passed back as `cursor`. Removed in 2.0.0. */
|
|
574
|
-
next:
|
|
606
|
+
next: z5.number().nullable()
|
|
575
607
|
});
|
|
576
|
-
var pointsResultSchema =
|
|
608
|
+
var pointsResultSchema = z5.object({
|
|
577
609
|
entry: pointsEntrySchema,
|
|
578
610
|
total: integer.nonnegative()
|
|
579
611
|
});
|
|
580
|
-
var pointsAccountSchema =
|
|
612
|
+
var pointsAccountSchema = z5.object({
|
|
581
613
|
member: identifier,
|
|
582
614
|
balance: identifier,
|
|
583
615
|
total: integer.nonnegative(),
|
|
584
616
|
held: integer.nonnegative()
|
|
585
617
|
});
|
|
586
|
-
var leaderboardExclusionSchema =
|
|
618
|
+
var leaderboardExclusionSchema = z5.object({
|
|
587
619
|
actionId: identifier,
|
|
588
620
|
member: identifier,
|
|
589
|
-
excluded:
|
|
590
|
-
reason:
|
|
621
|
+
excluded: z5.boolean(),
|
|
622
|
+
reason: z5.string().trim().min(1).max(1e3)
|
|
591
623
|
}).strict();
|
|
592
|
-
var leaderboardGroupSchema =
|
|
624
|
+
var leaderboardGroupSchema = z5.object({
|
|
593
625
|
actionId: identifier,
|
|
594
626
|
member: identifier,
|
|
595
|
-
included:
|
|
596
|
-
reason:
|
|
627
|
+
included: z5.boolean(),
|
|
628
|
+
reason: z5.string().trim().min(1).max(1e3)
|
|
597
629
|
}).strict();
|
|
598
|
-
var leaderboardSettlementStatusSchema =
|
|
599
|
-
var leaderboardSettlementSummarySchema =
|
|
630
|
+
var leaderboardSettlementStatusSchema = z5.enum(["pending", "approved"]);
|
|
631
|
+
var leaderboardSettlementSummarySchema = z5.object({
|
|
600
632
|
id: identifier,
|
|
601
633
|
leaderboard: identifier,
|
|
602
634
|
version: identifier,
|
|
603
|
-
title:
|
|
604
|
-
period:
|
|
605
|
-
ties:
|
|
635
|
+
title: z5.string(),
|
|
636
|
+
period: z5.object({ start: timestamp, end: timestamp }),
|
|
637
|
+
ties: z5.enum(["shared", "earliest"]),
|
|
606
638
|
status: leaderboardSettlementStatusSchema,
|
|
607
639
|
total: integer.nonnegative(),
|
|
608
640
|
winners: integer.nonnegative(),
|
|
609
641
|
createdAt: timestamp,
|
|
610
642
|
approvedAt: timestamp.nullable(),
|
|
611
|
-
approvedBy:
|
|
612
|
-
approvalReason:
|
|
643
|
+
approvedBy: z5.string().nullable(),
|
|
644
|
+
approvalReason: z5.string().nullable()
|
|
613
645
|
});
|
|
614
|
-
var leaderboardSettlementRowSchema =
|
|
646
|
+
var leaderboardSettlementRowSchema = z5.object({
|
|
615
647
|
member: identifier,
|
|
616
648
|
score: integer,
|
|
617
649
|
rank: integer.positive(),
|
|
618
650
|
position: integer.positive(),
|
|
619
651
|
scoredAt: timestamp,
|
|
620
|
-
prizes:
|
|
652
|
+
prizes: z5.array(integer.nonnegative()),
|
|
621
653
|
completion: identifier.nullable(),
|
|
622
654
|
revokedAt: timestamp.nullable()
|
|
623
655
|
});
|
|
624
656
|
var leaderboardSettlementSchema = leaderboardSettlementSummarySchema.extend({
|
|
625
|
-
prizes:
|
|
626
|
-
excluded:
|
|
627
|
-
rows:
|
|
657
|
+
prizes: z5.array(leaderboardPrizeSchema),
|
|
658
|
+
excluded: z5.array(identifier),
|
|
659
|
+
rows: z5.array(leaderboardSettlementRowSchema)
|
|
628
660
|
});
|
|
629
|
-
var leaderboardSettlementApprovalSchema =
|
|
661
|
+
var leaderboardSettlementApprovalSchema = z5.object({
|
|
630
662
|
actionId: identifier,
|
|
631
|
-
reason:
|
|
663
|
+
reason: z5.string().trim().min(1).max(500)
|
|
632
664
|
}).strict();
|
|
633
665
|
|
|
634
666
|
// src/referrals.ts
|
|
635
|
-
import { z as
|
|
636
|
-
var rewardSchema =
|
|
637
|
-
var amount2 =
|
|
638
|
-
var reason =
|
|
639
|
-
var referralDefinitionSchema =
|
|
667
|
+
import { z as z6 } from "zod";
|
|
668
|
+
var rewardSchema = z6.union([pointsRewardSchema, tierRewardSchema]);
|
|
669
|
+
var amount2 = z6.number().int().safe().nonnegative();
|
|
670
|
+
var reason = z6.string().trim().min(1).max(1e3);
|
|
671
|
+
var referralDefinitionSchema = z6.object({
|
|
640
672
|
id: identifier,
|
|
641
673
|
key: identifier.optional(),
|
|
642
|
-
title:
|
|
643
|
-
enabled:
|
|
644
|
-
qualification:
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
674
|
+
title: z6.string().trim().min(1).max(120),
|
|
675
|
+
enabled: z6.boolean().default(true),
|
|
676
|
+
qualification: z6.discriminatedUnion("kind", [
|
|
677
|
+
z6.object({ kind: z6.literal("signup") }).strict(),
|
|
678
|
+
z6.object({ kind: z6.literal("quest"), quest: identifier }).strict(),
|
|
679
|
+
z6.object({ kind: z6.literal("external") }).strict()
|
|
648
680
|
]),
|
|
649
681
|
inviterGroup: identifier.optional(),
|
|
650
|
-
rewards:
|
|
651
|
-
inviter:
|
|
652
|
-
invitee:
|
|
682
|
+
rewards: z6.object({
|
|
683
|
+
inviter: z6.array(rewardSchema).max(10).default([]),
|
|
684
|
+
invitee: z6.array(rewardSchema).max(10).default([])
|
|
653
685
|
}).strict().default({ inviter: [], invitee: [] }),
|
|
654
|
-
milestones:
|
|
655
|
-
|
|
686
|
+
milestones: z6.array(
|
|
687
|
+
z6.object({
|
|
656
688
|
id: identifier,
|
|
657
689
|
count: amount2.min(1),
|
|
658
|
-
rewards:
|
|
690
|
+
rewards: z6.array(rewardSchema).min(1).max(10)
|
|
659
691
|
}).strict()
|
|
660
692
|
).max(30).default([]),
|
|
661
|
-
bonuses:
|
|
662
|
-
|
|
693
|
+
bonuses: z6.array(
|
|
694
|
+
z6.object({
|
|
663
695
|
id: identifier,
|
|
664
696
|
balance: identifier,
|
|
665
697
|
basisPoints: amount2.min(1).max(1e4),
|
|
666
|
-
quests:
|
|
667
|
-
external:
|
|
698
|
+
quests: z6.array(identifier).min(1).max(100).optional(),
|
|
699
|
+
external: z6.boolean().default(false),
|
|
668
700
|
durationDays: amount2.min(1).max(36500).optional(),
|
|
669
701
|
maxPoints: amount2.min(1).optional()
|
|
670
702
|
}).strict()
|
|
@@ -676,7 +708,7 @@ var referralDefinitionSchema = z5.object({
|
|
|
676
708
|
}
|
|
677
709
|
}
|
|
678
710
|
});
|
|
679
|
-
var referralAuthoringSchema =
|
|
711
|
+
var referralAuthoringSchema = z6.object(referralDefinitionSchema.shape).omit({ id: true }).extend({
|
|
680
712
|
...authoringIdentityShape,
|
|
681
713
|
inviterGroup: identifier.optional()
|
|
682
714
|
}).strict().superRefine((value, ctx) => {
|
|
@@ -686,105 +718,105 @@ var referralAuthoringSchema = z5.object(referralDefinitionSchema.shape).omit({ i
|
|
|
686
718
|
}
|
|
687
719
|
}
|
|
688
720
|
});
|
|
689
|
-
var referralArtifactSchema =
|
|
721
|
+
var referralArtifactSchema = z6.union([
|
|
690
722
|
referralAuthoringSchema,
|
|
691
|
-
|
|
723
|
+
z6.object({ code: z6.string().min(1).max(2e6) }).strict()
|
|
692
724
|
]);
|
|
693
|
-
var publishedReferralSchema =
|
|
694
|
-
archivedAt:
|
|
725
|
+
var publishedReferralSchema = z6.object({
|
|
726
|
+
archivedAt: z6.number().int().nonnegative().nullable().optional(),
|
|
695
727
|
version: identifier,
|
|
696
728
|
definition: referralDefinitionSchema,
|
|
697
729
|
publishedAt: amount2,
|
|
698
|
-
actor:
|
|
730
|
+
actor: z6.string().nullable()
|
|
699
731
|
});
|
|
700
|
-
var referralAcceptSchema =
|
|
701
|
-
var referralSuspensionSchema =
|
|
702
|
-
var referralQualificationSchema =
|
|
703
|
-
var referralRewardResolutionSchema =
|
|
704
|
-
var referralControlSchema =
|
|
705
|
-
|
|
706
|
-
kind:
|
|
732
|
+
var referralAcceptSchema = z6.object({ actionId: identifier, code: identifier }).strict();
|
|
733
|
+
var referralSuspensionSchema = z6.object({ actionId: identifier, suspended: z6.boolean(), reason }).strict();
|
|
734
|
+
var referralQualificationSchema = z6.object({ actionId: identifier, qualified: z6.boolean(), reason }).strict();
|
|
735
|
+
var referralRewardResolutionSchema = z6.object({ actionId: identifier, reason }).strict();
|
|
736
|
+
var referralControlSchema = z6.discriminatedUnion("kind", [
|
|
737
|
+
z6.object({
|
|
738
|
+
kind: z6.literal("suspend"),
|
|
707
739
|
actionId: identifier,
|
|
708
740
|
member: identifier,
|
|
709
|
-
suspended:
|
|
741
|
+
suspended: z6.boolean(),
|
|
710
742
|
reason
|
|
711
743
|
}).strict(),
|
|
712
|
-
|
|
713
|
-
kind:
|
|
744
|
+
z6.object({
|
|
745
|
+
kind: z6.literal("qualify"),
|
|
714
746
|
actionId: identifier,
|
|
715
747
|
member: identifier,
|
|
716
748
|
program: identifier,
|
|
717
|
-
qualified:
|
|
749
|
+
qualified: z6.boolean(),
|
|
718
750
|
reason
|
|
719
751
|
}).strict(),
|
|
720
|
-
|
|
721
|
-
kind:
|
|
752
|
+
z6.object({
|
|
753
|
+
kind: z6.literal("resolve-reward"),
|
|
722
754
|
actionId: identifier,
|
|
723
755
|
entitlement: identifier,
|
|
724
756
|
reason
|
|
725
757
|
}).strict()
|
|
726
758
|
]);
|
|
727
|
-
var referralRelationshipSchema =
|
|
759
|
+
var referralRelationshipSchema = z6.object({
|
|
728
760
|
member: identifier,
|
|
729
761
|
inviter: identifier,
|
|
730
762
|
acceptedAt: amount2,
|
|
731
|
-
suspended:
|
|
763
|
+
suspended: z6.boolean()
|
|
732
764
|
});
|
|
733
|
-
var referralAccountSchema =
|
|
765
|
+
var referralAccountSchema = z6.object({
|
|
734
766
|
id: identifier,
|
|
735
767
|
program: identifier,
|
|
736
|
-
kind:
|
|
768
|
+
kind: z6.enum(["bonus", "fixed", "milestone"]),
|
|
737
769
|
balance: identifier,
|
|
738
770
|
earned: amount2,
|
|
739
771
|
settled: amount2,
|
|
740
772
|
outstanding: amount2
|
|
741
773
|
});
|
|
742
|
-
var referralSummarySchema =
|
|
774
|
+
var referralSummarySchema = z6.object({
|
|
743
775
|
code: identifier,
|
|
744
776
|
attributed: amount2,
|
|
745
|
-
programs:
|
|
746
|
-
|
|
777
|
+
programs: z6.array(
|
|
778
|
+
z6.object({
|
|
747
779
|
definition: referralDefinitionSchema,
|
|
748
780
|
qualified: amount2,
|
|
749
|
-
milestones:
|
|
750
|
-
|
|
781
|
+
milestones: z6.array(
|
|
782
|
+
z6.object({ id: identifier, count: amount2, reached: z6.boolean() })
|
|
751
783
|
)
|
|
752
784
|
})
|
|
753
785
|
),
|
|
754
|
-
accounts:
|
|
786
|
+
accounts: z6.array(referralAccountSchema)
|
|
755
787
|
});
|
|
756
|
-
var referralHistorySchema =
|
|
757
|
-
items:
|
|
758
|
-
|
|
788
|
+
var referralHistorySchema = z6.object({
|
|
789
|
+
items: z6.array(
|
|
790
|
+
z6.object({
|
|
759
791
|
id: amount2,
|
|
760
792
|
program: identifier,
|
|
761
793
|
balance: identifier,
|
|
762
|
-
amount:
|
|
794
|
+
amount: z6.number().int().safe(),
|
|
763
795
|
at: amount2,
|
|
764
|
-
reason:
|
|
796
|
+
reason: z6.string()
|
|
765
797
|
})
|
|
766
798
|
),
|
|
767
799
|
nextCursor: pageCursorSchema.nullable()
|
|
768
800
|
});
|
|
769
|
-
var referralManagementSchema =
|
|
770
|
-
relationships:
|
|
771
|
-
qualifications:
|
|
772
|
-
|
|
801
|
+
var referralManagementSchema = z6.object({
|
|
802
|
+
relationships: z6.array(referralRelationshipSchema),
|
|
803
|
+
qualifications: z6.array(
|
|
804
|
+
z6.object({
|
|
773
805
|
member: identifier,
|
|
774
806
|
program: identifier,
|
|
775
|
-
qualified:
|
|
807
|
+
qualified: z6.boolean(),
|
|
776
808
|
qualifiedAt: amount2
|
|
777
809
|
})
|
|
778
810
|
),
|
|
779
|
-
accounts:
|
|
780
|
-
referralAccountSchema.extend({ member: identifier, invitee:
|
|
811
|
+
accounts: z6.array(
|
|
812
|
+
referralAccountSchema.extend({ member: identifier, invitee: z6.string() })
|
|
781
813
|
),
|
|
782
|
-
reviews:
|
|
783
|
-
|
|
814
|
+
reviews: z6.array(
|
|
815
|
+
z6.object({
|
|
784
816
|
entitlement: identifier,
|
|
785
817
|
member: identifier,
|
|
786
818
|
program: identifier,
|
|
787
|
-
reason:
|
|
819
|
+
reason: z6.string()
|
|
788
820
|
})
|
|
789
821
|
),
|
|
790
822
|
nextCursor: pageCursorSchema.nullable().default(null),
|
|
@@ -793,51 +825,51 @@ var referralManagementSchema = z5.object({
|
|
|
793
825
|
});
|
|
794
826
|
|
|
795
827
|
// src/offers.ts
|
|
796
|
-
import { z as
|
|
797
|
-
var quantity =
|
|
828
|
+
import { z as z7 } from "zod";
|
|
829
|
+
var quantity = z7.number().int().safe().nonnegative();
|
|
798
830
|
var offerPriceSchema = pointsRewardSchema.extend({
|
|
799
|
-
amount:
|
|
831
|
+
amount: z7.number().int().positive().max(1e4)
|
|
800
832
|
});
|
|
801
|
-
var offerLimitSchema =
|
|
802
|
-
var offerDefinitionSchema =
|
|
833
|
+
var offerLimitSchema = z7.object({ perMember: z7.number().int().positive().max(1e4) }).strict();
|
|
834
|
+
var offerDefinitionSchema = z7.object({
|
|
803
835
|
id: identifier,
|
|
804
836
|
key: identifier.optional(),
|
|
805
|
-
title:
|
|
837
|
+
title: z7.string().trim().min(1).max(120),
|
|
806
838
|
price: offerPriceSchema,
|
|
807
839
|
reward: tierRewardSchema,
|
|
808
840
|
stock: quantity.max(1e6),
|
|
809
841
|
limit: offerLimitSchema.default({ perMember: 1 }),
|
|
810
|
-
enabled:
|
|
842
|
+
enabled: z7.boolean().default(true)
|
|
811
843
|
}).strict();
|
|
812
844
|
var offerAuthoringSchema = offerDefinitionSchema.omit({ id: true, title: true, enabled: true }).extend({
|
|
813
845
|
...authoringIdentityShape,
|
|
814
|
-
title:
|
|
846
|
+
title: z7.string().trim().min(1).max(120).optional()
|
|
815
847
|
}).strict().transform((offer) => ({
|
|
816
848
|
...offer,
|
|
817
849
|
title: offer.title ?? offer.reward.reward.title,
|
|
818
850
|
enabled: true
|
|
819
851
|
}));
|
|
820
|
-
var offerArtifactSchema =
|
|
852
|
+
var offerArtifactSchema = z7.union([
|
|
821
853
|
offerAuthoringSchema,
|
|
822
|
-
|
|
854
|
+
z7.object({ code: z7.string().min(1).max(2e6) }).strict()
|
|
823
855
|
]);
|
|
824
856
|
var offerAvailabilitySchema = responseShape(
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
857
|
+
z7.discriminatedUnion("kind", [
|
|
858
|
+
z7.object({ kind: z7.literal("available"), remaining: quantity }).strict(),
|
|
859
|
+
z7.object({ kind: z7.literal("out-of-stock") }).strict(),
|
|
860
|
+
z7.object({ kind: z7.literal("limit-reached") }).strict(),
|
|
861
|
+
z7.object({ kind: z7.literal("paused") }).strict()
|
|
830
862
|
])
|
|
831
863
|
);
|
|
832
864
|
var offerSchema = responseShape(
|
|
833
865
|
offerDefinitionSchema.extend({
|
|
834
|
-
revision:
|
|
866
|
+
revision: z7.number().int().positive(),
|
|
835
867
|
available: quantity,
|
|
836
868
|
redeemed: quantity,
|
|
837
869
|
availability: offerAvailabilitySchema
|
|
838
870
|
})
|
|
839
871
|
);
|
|
840
|
-
var redeemOfferSchema =
|
|
872
|
+
var redeemOfferSchema = z7.object({ actionId: identifier }).strict();
|
|
841
873
|
var redemptionBase = {
|
|
842
874
|
id: identifier,
|
|
843
875
|
offer: identifier,
|
|
@@ -851,36 +883,46 @@ var redemptionBase = {
|
|
|
851
883
|
price: offerPriceSchema,
|
|
852
884
|
reward: tierRewardSchema,
|
|
853
885
|
entitlement: identifier,
|
|
854
|
-
revision:
|
|
855
|
-
redeemedAt:
|
|
886
|
+
revision: z7.number().int().positive(),
|
|
887
|
+
redeemedAt: z7.number().int().safe().nonnegative()
|
|
856
888
|
};
|
|
857
889
|
var redemptionSchema = responseShape(
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
890
|
+
z7.discriminatedUnion("status", [
|
|
891
|
+
z7.object({ ...redemptionBase, status: z7.literal("fulfilled") }).strict(),
|
|
892
|
+
z7.object({
|
|
861
893
|
...redemptionBase,
|
|
862
|
-
status:
|
|
863
|
-
canceledAt:
|
|
864
|
-
reason:
|
|
894
|
+
status: z7.literal("canceled"),
|
|
895
|
+
canceledAt: z7.number().int().safe().nonnegative(),
|
|
896
|
+
reason: z7.string().min(1).max(500)
|
|
865
897
|
}).strict()
|
|
866
898
|
])
|
|
867
899
|
);
|
|
868
|
-
var offerControlSchema =
|
|
900
|
+
var offerControlSchema = z7.object({
|
|
869
901
|
actionId: identifier,
|
|
870
|
-
revision:
|
|
871
|
-
enabled:
|
|
872
|
-
reason:
|
|
902
|
+
revision: z7.number().int().positive(),
|
|
903
|
+
enabled: z7.boolean(),
|
|
904
|
+
reason: z7.string().trim().min(1).max(500)
|
|
873
905
|
}).strict();
|
|
874
|
-
var redemptionCancellationSchema =
|
|
906
|
+
var redemptionCancellationSchema = z7.object({
|
|
875
907
|
actionId: identifier,
|
|
876
|
-
revision:
|
|
877
|
-
reason:
|
|
908
|
+
revision: z7.number().int().positive(),
|
|
909
|
+
reason: z7.string().trim().min(1).max(500)
|
|
878
910
|
}).strict();
|
|
879
911
|
function defineOffer(input) {
|
|
880
912
|
return resourceHandle("offer", offerAuthoringSchema.parse(input));
|
|
881
913
|
}
|
|
882
914
|
|
|
883
915
|
export {
|
|
916
|
+
badgePropertiesSchema,
|
|
917
|
+
badgeDeclarationSchema,
|
|
918
|
+
badgeSchema,
|
|
919
|
+
managedBadgeSchema,
|
|
920
|
+
createBadgeSchema,
|
|
921
|
+
badgeArtifactSchema,
|
|
922
|
+
memberBadgeSchema,
|
|
923
|
+
memberBadgesSchema,
|
|
924
|
+
badgeMutationSchema,
|
|
925
|
+
badgeMutationResultSchema,
|
|
884
926
|
pointLedgerPropertiesSchema,
|
|
885
927
|
createPointLedgerSchema,
|
|
886
928
|
pointLedgerSchema,
|