@domino-sdk/relay 1.62.0 → 1.65.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +145 -0
- package/dist/{accounts-CCqCKCVx.d.ts → accounts-_lNsiR2k.d.ts} +42 -4
- package/dist/{attempt-captures-Cm-5G0PC.d.ts → attempt-captures-BqPggxTU.d.ts} +1 -1
- package/dist/authoring.d.ts +54 -20
- package/dist/authoring.js +60 -31
- package/dist/{automatic-outcomes-pAsOyIVp.d.ts → automatic-outcomes-BzAvfcpd.d.ts} +11 -1
- package/dist/avatar.d.ts +1 -1
- package/dist/browser.d.ts +10 -10
- package/dist/browser.js +12 -13
- package/dist/capability-error-CuI_F7yM.d.ts +296 -0
- package/dist/{catalog--ZIlskAo.d.ts → catalog-ByZMRS7I.d.ts} +21 -10
- package/dist/{chunk-XNKSSE32.js → chunk-4NIV4NPV.js} +7 -7
- package/dist/chunk-7H4MRVQF.js +199 -0
- package/dist/{chunk-UPQPUJOU.js → chunk-CVQZ2YP7.js} +73 -202
- package/dist/{chunk-3PYYGFSB.js → chunk-DLABJSBO.js} +3 -3
- package/dist/{chunk-Y322OTCH.js → chunk-E22XSC4L.js} +1 -1
- package/dist/{chunk-E6IKQHTX.js → chunk-EDNKKVGU.js} +2 -2
- package/dist/{chunk-K2KS3JLY.js → chunk-EOUEAOWJ.js} +35 -4
- package/dist/{chunk-6WCIWXUV.js → chunk-EUEW2APU.js} +2 -2
- package/dist/{chunk-MK425RXJ.js → chunk-HNR6G3GV.js} +2335 -1538
- package/dist/{chunk-UW5232GG.js → chunk-KCUUHT2V.js} +5 -5
- package/dist/{chunk-CICDIBOF.js → chunk-MPTE7EIV.js} +76 -74
- package/dist/{chunk-4OC7REYX.js → chunk-MWMCQLCG.js} +3 -3
- package/dist/{chunk-GTDW453U.js → chunk-NG4GZ54I.js} +100 -114
- package/dist/chunk-R2KZFX6E.js +405 -0
- package/dist/{chunk-HTZHBTIL.js → chunk-RD3XJ4DH.js} +208 -376
- package/dist/{chunk-5TEYFX6X.js → chunk-SE7XHQFP.js} +2 -2
- package/dist/{chunk-CZFXGGEK.js → chunk-U66GUVSG.js} +2 -2
- package/dist/{chunk-KDR2VAJP.js → chunk-UYVJZR33.js} +2 -2
- package/dist/chunk-UZ765UGH.js +18 -0
- package/dist/{chunk-GKIFABGN.js → chunk-VBYOAT46.js} +100 -277
- package/dist/{chunk-QYPMPWVX.js → chunk-XVZ4YOF2.js} +43 -43
- package/dist/{chunk-3KLC4AMA.js → chunk-ZQ3IPCI6.js} +177 -176
- package/dist/chunk-ZXGBDLVB.js +1510 -0
- package/dist/{client-B-hbHX30.d.ts → client-D7IiwEq2.d.ts} +31 -62
- package/dist/{capability-error-DFMwSuSf.d.ts → dashboards-pVfclkyh.d.ts} +14 -294
- package/dist/{deployments-M4OHn7G3.d.ts → deployments-Cr1tfqrr.d.ts} +46 -3
- package/dist/{identity-integration-3mX6b5iH.d.ts → identity-integration-Ci2vGKtX.d.ts} +67 -2
- package/dist/index.d.ts +11 -11
- package/dist/index.js +11 -13
- package/dist/internal.d.ts +27 -13
- package/dist/internal.js +46 -13
- package/dist/{analytics-BwAKLi7O.d.ts → limits-pE04y9O2.d.ts} +131 -3
- package/dist/{offers-DhAtss4_.d.ts → offers-Hw2P6tcK.d.ts} +3 -2
- package/dist/{participant-activity-D-Drp24G.d.ts → participant-activity-DXRq4s6K.d.ts} +1 -0
- package/dist/portal-proxy.d.ts +21 -3
- package/dist/portal-proxy.js +72 -22
- package/dist/react/index.d.ts +29 -15
- package/dist/react/index.js +52 -29
- package/dist/{pages-B8q8Y_dQ.d.ts → reward-deliveries-BCV8hznc.d.ts} +300 -233
- package/dist/runtime/authoring.js +1 -1
- package/dist/runtime/chunks/6EBN6IZU.js +1 -0
- package/dist/runtime/manifest.json +3 -3
- package/dist/runtime/schema.js +1 -1
- package/dist/schema.d.ts +197 -19
- package/dist/schema.js +126 -124
- package/dist/server/index.d.ts +13 -13
- package/dist/server/index.js +5701 -6302
- package/dist/{sign-in-providers-BkjcDsFF.d.ts → sign-in-providers-BAkGjSXo.d.ts} +7 -2
- package/dist/{submission-input-DHGKhXfp.d.ts → submission-input-ChL1aYNH.d.ts} +3 -2
- package/dist/{telegram-browser-BCE7zdOb.d.ts → telegram-browser-K27t4TwM.d.ts} +5 -5
- package/dist/telegram.d.ts +9 -9
- package/dist/telegram.js +2 -2
- package/dist/testing.d.ts +229 -27
- package/dist/testing.js +146 -105
- package/dist/{tracker-data-Hb1uQnk5.d.ts → tracker-data-Bl-qPIvZ.d.ts} +37 -9
- package/dist/{transport-DkhX2Cbs.d.ts → transport-DC1m73Tp.d.ts} +40211 -37736
- package/dist/{wallet-DTO7SXj7.d.ts → wallet-B7e06v4m.d.ts} +14 -4
- package/package.json +1 -1
- package/dist/chunk-D26YNACF.js +0 -320
- package/dist/chunk-UAKYDVT3.js +0 -565
- package/dist/chunk-WSBYWVTZ.js +0 -717
- package/dist/chunk-XJFYAXET.js +0 -87
- package/dist/runtime/chunks/Y4OAVXFR.js +0 -1
package/dist/testing.js
CHANGED
|
@@ -1,41 +1,31 @@
|
|
|
1
1
|
import {
|
|
2
2
|
attemptCaptureSchema
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import {
|
|
5
|
-
CapabilityError
|
|
6
|
-
} from "./chunk-4OC7REYX.js";
|
|
3
|
+
} from "./chunk-4NIV4NPV.js";
|
|
7
4
|
import {
|
|
8
5
|
parseImageResult
|
|
9
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-EDNKKVGU.js";
|
|
7
|
+
import {
|
|
8
|
+
isParticipantRoute
|
|
9
|
+
} from "./chunk-U66GUVSG.js";
|
|
10
10
|
import {
|
|
11
11
|
imageRequestSchema,
|
|
12
12
|
xConnectionSchema,
|
|
13
13
|
xPostSchema,
|
|
14
14
|
xProfileSchema,
|
|
15
15
|
xRequestSchema
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-XVZ4YOF2.js";
|
|
17
17
|
import {
|
|
18
|
-
|
|
19
|
-
} from "./chunk-
|
|
18
|
+
CapabilityError
|
|
19
|
+
} from "./chunk-MWMCQLCG.js";
|
|
20
20
|
import {
|
|
21
|
+
exchangeResultSchema,
|
|
21
22
|
participantActivitySchema,
|
|
23
|
+
participantSessionSchema,
|
|
22
24
|
questExperienceSchema
|
|
23
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-R2KZFX6E.js";
|
|
24
26
|
import {
|
|
25
27
|
badgeCatalogSchema,
|
|
26
28
|
badgeSchema,
|
|
27
|
-
leaderboardPageSchema,
|
|
28
|
-
pointBalanceSchema,
|
|
29
|
-
pointBalancesSchema,
|
|
30
|
-
pointHistoryPageSchema,
|
|
31
|
-
pointLedgerReferenceSchema,
|
|
32
|
-
profileReferralSchema
|
|
33
|
-
} from "./chunk-WSBYWVTZ.js";
|
|
34
|
-
import {
|
|
35
|
-
exchangeResultSchema,
|
|
36
|
-
participantSessionSchema
|
|
37
|
-
} from "./chunk-XJFYAXET.js";
|
|
38
|
-
import {
|
|
39
29
|
contentPerformanceSnapshotSchema,
|
|
40
30
|
cosmosAddressSchema,
|
|
41
31
|
cosmosNetworkSchema,
|
|
@@ -50,12 +40,17 @@ import {
|
|
|
50
40
|
isNftCollection,
|
|
51
41
|
isSolanaProgram,
|
|
52
42
|
knownResponse,
|
|
43
|
+
leaderboardPageSchema,
|
|
44
|
+
limits,
|
|
53
45
|
linkedWalletSchema,
|
|
54
|
-
maxMemberCompletions,
|
|
55
|
-
maxWalletEventLogs,
|
|
56
46
|
memberCompletionSchema,
|
|
57
47
|
memberIdentitySchema,
|
|
58
48
|
photoResultSchema,
|
|
49
|
+
pointBalanceSchema,
|
|
50
|
+
pointBalancesSchema,
|
|
51
|
+
pointHistoryPageSchema,
|
|
52
|
+
pointLedgerReferenceSchema,
|
|
53
|
+
profileReferralSchema,
|
|
59
54
|
quizEvidenceSchema,
|
|
60
55
|
rewardKey,
|
|
61
56
|
solanaAddressSchema,
|
|
@@ -82,10 +77,10 @@ import {
|
|
|
82
77
|
walletEventsSchema,
|
|
83
78
|
walletNftsSchema,
|
|
84
79
|
walletTransactionsSchema
|
|
85
|
-
} from "./chunk-
|
|
80
|
+
} from "./chunk-HNR6G3GV.js";
|
|
86
81
|
import {
|
|
87
82
|
RelayErrorCode
|
|
88
|
-
} from "./chunk-
|
|
83
|
+
} from "./chunk-EOUEAOWJ.js";
|
|
89
84
|
|
|
90
85
|
// src/testing/run.ts
|
|
91
86
|
import * as z3 from "zod";
|
|
@@ -175,12 +170,12 @@ function evaluationCalendar(snapshot, eligibleAt) {
|
|
|
175
170
|
|
|
176
171
|
// src/testing/capabilities.ts
|
|
177
172
|
import * as z from "zod";
|
|
178
|
-
var trackerInput = {
|
|
173
|
+
var trackerInput = /* @__PURE__ */ (() => ({
|
|
179
174
|
reference: identifier,
|
|
180
175
|
query: trackerQuerySchema,
|
|
181
176
|
asOf: z.number().int().nonnegative().safe()
|
|
182
|
-
};
|
|
183
|
-
var capabilityRequestSchemas = {
|
|
177
|
+
}))();
|
|
178
|
+
var capabilityRequestSchemas = /* @__PURE__ */ (() => ({
|
|
184
179
|
"wallet-balance": z.strictObject({
|
|
185
180
|
kind: z.literal("wallet-balance"),
|
|
186
181
|
chain: z.union([
|
|
@@ -223,22 +218,22 @@ var capabilityRequestSchemas = {
|
|
|
223
218
|
"member-identities": z.strictObject({
|
|
224
219
|
kind: z.literal("member-identities")
|
|
225
220
|
})
|
|
226
|
-
};
|
|
227
|
-
var telegramRequestSchema = z.strictObject({
|
|
221
|
+
}))();
|
|
222
|
+
var telegramRequestSchema = /* @__PURE__ */ (() => z.strictObject({
|
|
228
223
|
kind: z.literal("telegram"),
|
|
229
224
|
input: z.union([telegramMemberInputSchema, telegramConnectionInputSchema])
|
|
230
|
-
});
|
|
231
|
-
var walletNftsRequestSchema = z.strictObject({
|
|
225
|
+
}))();
|
|
226
|
+
var walletNftsRequestSchema = /* @__PURE__ */ (() => z.strictObject({
|
|
232
227
|
kind: z.literal("wallet-nfts"),
|
|
233
228
|
collection: z.string().max(200).refine(isNftCollection),
|
|
234
229
|
address: z.string().min(1).max(100).nullable()
|
|
235
|
-
});
|
|
236
|
-
var walletEventConditionSchema = z.union([
|
|
230
|
+
}))();
|
|
231
|
+
var walletEventConditionSchema = /* @__PURE__ */ (() => z.union([
|
|
237
232
|
z.string().min(1).max(200),
|
|
238
233
|
z.boolean(),
|
|
239
234
|
z.strictObject({ gte: z.string().regex(/^-?(0|[1-9][0-9]{0,77})$/) })
|
|
240
|
-
]);
|
|
241
|
-
var walletEventsRequestSchema = z.strictObject({
|
|
235
|
+
]))();
|
|
236
|
+
var walletEventsRequestSchema = /* @__PURE__ */ (() => z.strictObject({
|
|
242
237
|
kind: z.literal("wallet-events"),
|
|
243
238
|
event: z.string().max(1e3).refine(isContractEvent),
|
|
244
239
|
account: z.string().min(1).max(100),
|
|
@@ -246,17 +241,17 @@ var walletEventsRequestSchema = z.strictObject({
|
|
|
246
241
|
afterActivation: z.boolean(),
|
|
247
242
|
where: z.record(z.string().min(1).max(100), walletEventConditionSchema).refine((where) => Object.keys(where).length <= 10).nullable(),
|
|
248
243
|
address: z.string().min(1).max(100).nullable(),
|
|
249
|
-
newest: z.number().int().min(1).max(
|
|
250
|
-
});
|
|
251
|
-
var walletTransactionsRequestSchema = z.strictObject({
|
|
244
|
+
newest: z.number().int().min(1).max(limits.walletEventLogs).optional()
|
|
245
|
+
}))();
|
|
246
|
+
var walletTransactionsRequestSchema = /* @__PURE__ */ (() => z.strictObject({
|
|
252
247
|
kind: z.literal("wallet-transactions"),
|
|
253
248
|
program: z.string().max(44).refine(isSolanaProgram),
|
|
254
249
|
since: z.number().int().nonnegative().safe(),
|
|
255
250
|
afterActivation: z.boolean(),
|
|
256
251
|
mint: solanaAddressSchema.nullable(),
|
|
257
252
|
address: z.string().min(1).max(100).nullable()
|
|
258
|
-
});
|
|
259
|
-
var walletCallRequestSchema = z.strictObject({
|
|
253
|
+
}))();
|
|
254
|
+
var walletCallRequestSchema = /* @__PURE__ */ (() => z.strictObject({
|
|
260
255
|
kind: z.literal("wallet-call"),
|
|
261
256
|
call: z.string().max(400).refine(isContractCall),
|
|
262
257
|
args: z.array(
|
|
@@ -271,14 +266,14 @@ var walletCallRequestSchema = z.strictObject({
|
|
|
271
266
|
"Pass the member's wallet ({ wallet: true }) at most once"
|
|
272
267
|
),
|
|
273
268
|
address: z.string().min(1).max(100).nullable()
|
|
274
|
-
});
|
|
275
|
-
var walletDelegationsRequestSchema = z.strictObject({
|
|
269
|
+
}))();
|
|
270
|
+
var walletDelegationsRequestSchema = /* @__PURE__ */ (() => z.strictObject({
|
|
276
271
|
kind: z.literal("wallet-delegations"),
|
|
277
272
|
chain: cosmosNetworkSchema,
|
|
278
273
|
validator: cosmosAddressSchema.nullable(),
|
|
279
274
|
address: z.string().min(1).max(100).nullable()
|
|
280
|
-
});
|
|
281
|
-
var memberStateRequestSchemas = {
|
|
275
|
+
}))();
|
|
276
|
+
var memberStateRequestSchemas = /* @__PURE__ */ (() => ({
|
|
282
277
|
"member-balance": z.strictObject({
|
|
283
278
|
kind: z.literal("member-balance"),
|
|
284
279
|
ledger: identifier
|
|
@@ -287,7 +282,7 @@ var memberStateRequestSchemas = {
|
|
|
287
282
|
kind: z.literal("member-completions"),
|
|
288
283
|
quest: identifier.nullable(),
|
|
289
284
|
since: z.number().int().nonnegative().safe().nullable(),
|
|
290
|
-
limit: z.number().int().min(1).max(
|
|
285
|
+
limit: z.number().int().min(1).max(limits.memberCompletions)
|
|
291
286
|
}),
|
|
292
287
|
"member-groups": z.strictObject({ kind: z.literal("member-groups") }),
|
|
293
288
|
"member-enrolled": z.strictObject({
|
|
@@ -298,11 +293,11 @@ var memberStateRequestSchemas = {
|
|
|
298
293
|
kind: z.literal("member-referrals"),
|
|
299
294
|
program: identifier
|
|
300
295
|
})
|
|
301
|
-
};
|
|
296
|
+
}))();
|
|
302
297
|
function unlistedRequest(request) {
|
|
303
298
|
return request.kind === "telegram" || request.kind === "wallet-nfts" || request.kind === "wallet-call" || request.kind === "wallet-delegations" || request.kind === "wallet-events" || request.kind === "wallet-transactions" || request.kind === "member-balance" || request.kind === "member-completions" || request.kind === "member-groups" || request.kind === "member-enrolled" || request.kind === "member-referrals";
|
|
304
299
|
}
|
|
305
|
-
var capabilityRequestSchema = z.discriminatedUnion("kind", [
|
|
300
|
+
var capabilityRequestSchema = /* @__PURE__ */ (() => z.discriminatedUnion("kind", [
|
|
306
301
|
capabilityRequestSchemas["wallet-balance"],
|
|
307
302
|
capabilityRequestSchemas["tracker-content"],
|
|
308
303
|
capabilityRequestSchemas.x,
|
|
@@ -325,7 +320,7 @@ var capabilityRequestSchema = z.discriminatedUnion("kind", [
|
|
|
325
320
|
memberStateRequestSchemas["member-groups"],
|
|
326
321
|
memberStateRequestSchemas["member-enrolled"],
|
|
327
322
|
memberStateRequestSchemas["member-referrals"]
|
|
328
|
-
]);
|
|
323
|
+
]))();
|
|
329
324
|
function parseCapabilityRequest(raw) {
|
|
330
325
|
return capabilityRequestSchema.safeParse(raw);
|
|
331
326
|
}
|
|
@@ -390,6 +385,24 @@ function parseCapabilityResult(request, value) {
|
|
|
390
385
|
return profileReferralSchema.parse(value);
|
|
391
386
|
}
|
|
392
387
|
}
|
|
388
|
+
function newerResultIssue(issue) {
|
|
389
|
+
if (issue.code === "unrecognized_keys" || issue.code === "invalid_value") {
|
|
390
|
+
return true;
|
|
391
|
+
}
|
|
392
|
+
return issue.code === "invalid_union" && issue.errors.some(
|
|
393
|
+
(branch) => branch.length > 0 && branch.every(newerResultIssue)
|
|
394
|
+
);
|
|
395
|
+
}
|
|
396
|
+
function parseCapturedResult(request, value) {
|
|
397
|
+
try {
|
|
398
|
+
return parseCapabilityResult(request, value);
|
|
399
|
+
} catch (error) {
|
|
400
|
+
if (error instanceof z.ZodError && error.issues.every(newerResultIssue)) {
|
|
401
|
+
return value;
|
|
402
|
+
}
|
|
403
|
+
throw error;
|
|
404
|
+
}
|
|
405
|
+
}
|
|
393
406
|
function imageReferences(input) {
|
|
394
407
|
return input.operation === "compare" || input.operation === "review" ? input.images : [input.image];
|
|
395
408
|
}
|
|
@@ -703,10 +716,10 @@ function install(now, seed, restores) {
|
|
|
703
716
|
|
|
704
717
|
// src/testing/facts.ts
|
|
705
718
|
import * as z2 from "zod";
|
|
706
|
-
var campaignFactSchema = z2.strictObject({
|
|
719
|
+
var campaignFactSchema = /* @__PURE__ */ (() => z2.strictObject({
|
|
707
720
|
key: identifier,
|
|
708
721
|
enrolled: z2.boolean()
|
|
709
|
-
});
|
|
722
|
+
}))();
|
|
710
723
|
var TestSetupError = class extends Error {
|
|
711
724
|
constructor(message) {
|
|
712
725
|
super(message);
|
|
@@ -1193,7 +1206,7 @@ function rewardSelectionIssue(selected, published) {
|
|
|
1193
1206
|
}
|
|
1194
1207
|
|
|
1195
1208
|
// src/testing/run.ts
|
|
1196
|
-
var defaultNow = Date.UTC(2026, 0, 1);
|
|
1209
|
+
var defaultNow = /* @__PURE__ */ (() => Date.UTC(2026, 0, 1))();
|
|
1197
1210
|
var defaultMember = "member_test";
|
|
1198
1211
|
var defaultSeed = "attempt_test";
|
|
1199
1212
|
var maxCapabilityCalls = 8;
|
|
@@ -1301,6 +1314,7 @@ function hostContext(run, answer) {
|
|
|
1301
1314
|
const evidence = typeof input.evidence === "string" ? input.evidence : void 0;
|
|
1302
1315
|
const calendar = evaluationCalendar({ segments: run.segments }, eligibleAt);
|
|
1303
1316
|
const calls = [];
|
|
1317
|
+
const capabilityCalls = [];
|
|
1304
1318
|
const diagnostics = [];
|
|
1305
1319
|
const problems = [];
|
|
1306
1320
|
const delivered = /* @__PURE__ */ new WeakSet();
|
|
@@ -1321,12 +1335,17 @@ function hostContext(run, answer) {
|
|
|
1321
1335
|
request.kind === "photo" ? "Photo capability cannot access another attempt\u2019s evidence" : "Image capability cannot access another attempt\u2019s evidence"
|
|
1322
1336
|
);
|
|
1323
1337
|
}
|
|
1324
|
-
const outcome = await answer(request, sequence2);
|
|
1338
|
+
const { captured, ...outcome } = await answer(request, sequence2);
|
|
1325
1339
|
if ("error" in outcome) {
|
|
1326
1340
|
return outcome;
|
|
1327
1341
|
}
|
|
1328
1342
|
try {
|
|
1329
|
-
const value = z3.json().parse(
|
|
1343
|
+
const value = z3.json().parse(
|
|
1344
|
+
(captured ? parseCapturedResult : parseCapabilityResult)(
|
|
1345
|
+
request,
|
|
1346
|
+
outcome.value
|
|
1347
|
+
)
|
|
1348
|
+
);
|
|
1330
1349
|
return { value: JSON.parse(JSON.stringify(value)) };
|
|
1331
1350
|
} catch (error) {
|
|
1332
1351
|
throw new TestSetupError(
|
|
@@ -1336,7 +1355,7 @@ function hostContext(run, answer) {
|
|
|
1336
1355
|
}
|
|
1337
1356
|
const call = async (raw) => {
|
|
1338
1357
|
const current = sequence++;
|
|
1339
|
-
if (current >=
|
|
1358
|
+
if (current >= limits.capabilityCalls) {
|
|
1340
1359
|
throw capabilityLimitError();
|
|
1341
1360
|
}
|
|
1342
1361
|
const parsed = parseCapabilityRequest(raw);
|
|
@@ -1356,6 +1375,8 @@ function hostContext(run, answer) {
|
|
|
1356
1375
|
problems.push(error instanceof Error ? error : new Error(String(error)));
|
|
1357
1376
|
throw error;
|
|
1358
1377
|
}
|
|
1378
|
+
capabilityCalls.push({ sequence: current, request: parsed.data, outcome });
|
|
1379
|
+
capabilityCalls.sort((a, b) => a.sequence - b.sequence);
|
|
1359
1380
|
if (!unlistedRequest(parsed.data)) {
|
|
1360
1381
|
calls.push({ sequence: current, request: parsed.data, outcome });
|
|
1361
1382
|
calls.sort((a, b) => a.sequence - b.sequence);
|
|
@@ -1397,6 +1418,7 @@ function hostContext(run, answer) {
|
|
|
1397
1418
|
return {
|
|
1398
1419
|
context,
|
|
1399
1420
|
calls,
|
|
1421
|
+
capabilityCalls,
|
|
1400
1422
|
diagnostics,
|
|
1401
1423
|
problems,
|
|
1402
1424
|
delivered,
|
|
@@ -1430,7 +1452,7 @@ function thrownMessage(error) {
|
|
|
1430
1452
|
function capabilityLimitError() {
|
|
1431
1453
|
return new CapabilityError(
|
|
1432
1454
|
"capability-limit",
|
|
1433
|
-
`An evaluation run makes at most ${
|
|
1455
|
+
`An evaluation run makes at most ${limits.capabilityCalls} capability calls, shared by all capabilities`,
|
|
1434
1456
|
{ retryable: false }
|
|
1435
1457
|
);
|
|
1436
1458
|
}
|
|
@@ -1538,6 +1560,7 @@ function evaluateHosted(quest, host) {
|
|
|
1538
1560
|
return {
|
|
1539
1561
|
decision,
|
|
1540
1562
|
calls: host.calls,
|
|
1563
|
+
capabilityCalls: host.capabilityCalls,
|
|
1541
1564
|
release: host.release,
|
|
1542
1565
|
diagnostics: host.diagnostics
|
|
1543
1566
|
};
|
|
@@ -1580,6 +1603,41 @@ function fakeEvaluationMember(member = {}) {
|
|
|
1580
1603
|
};
|
|
1581
1604
|
}
|
|
1582
1605
|
|
|
1606
|
+
// src/testing/readers.ts
|
|
1607
|
+
import * as z4 from "zod";
|
|
1608
|
+
function factsCall(facts) {
|
|
1609
|
+
const answer = factsAnswerer(facts);
|
|
1610
|
+
return async (raw) => {
|
|
1611
|
+
const request = parseCapabilityRequest(raw);
|
|
1612
|
+
if (!request.success) {
|
|
1613
|
+
throw new CapabilityError(
|
|
1614
|
+
"author-error",
|
|
1615
|
+
z4.prettifyError(request.error),
|
|
1616
|
+
{ retryable: false }
|
|
1617
|
+
);
|
|
1618
|
+
}
|
|
1619
|
+
const outcome = await answer(request.data);
|
|
1620
|
+
if ("error" in outcome) {
|
|
1621
|
+
throw CapabilityError.from(outcome.error);
|
|
1622
|
+
}
|
|
1623
|
+
try {
|
|
1624
|
+
return JSON.parse(
|
|
1625
|
+
JSON.stringify(parseCapabilityResult(request.data, outcome.value))
|
|
1626
|
+
);
|
|
1627
|
+
} catch (error) {
|
|
1628
|
+
throw new TestSetupError(
|
|
1629
|
+
`The answer to ${request.data.kind} is not a result Relay delivers: ${error instanceof z4.ZodError ? z4.prettifyError(error) : String(error)}`
|
|
1630
|
+
);
|
|
1631
|
+
}
|
|
1632
|
+
};
|
|
1633
|
+
}
|
|
1634
|
+
function fakeWalletReader(facts = {}) {
|
|
1635
|
+
return readerFactories.wallet(factsCall(facts));
|
|
1636
|
+
}
|
|
1637
|
+
function fakeTelegramReader(facts = {}) {
|
|
1638
|
+
return readerFactories.telegram(factsCall(facts));
|
|
1639
|
+
}
|
|
1640
|
+
|
|
1583
1641
|
// src/testing/assertions.ts
|
|
1584
1642
|
var DecisionAssertionError = class extends Error {
|
|
1585
1643
|
decision;
|
|
@@ -1706,7 +1764,7 @@ function trackerPage(tracker, records, options = {}) {
|
|
|
1706
1764
|
}
|
|
1707
1765
|
|
|
1708
1766
|
// src/testing/replay.ts
|
|
1709
|
-
import * as
|
|
1767
|
+
import * as z5 from "zod";
|
|
1710
1768
|
var ReplayStopped = class extends Error {
|
|
1711
1769
|
constructor(divergence) {
|
|
1712
1770
|
super(
|
|
@@ -1742,43 +1800,7 @@ function captureAnswerer(facts, fallback, diverged) {
|
|
|
1742
1800
|
const fact = facts.find((candidate) => candidate.sequence === sequence);
|
|
1743
1801
|
const reason = !fact ? "new" : !sameJson(fact.request, request) ? "changed" : !fact.captured || !fact.outcome ? "uncaptured" : null;
|
|
1744
1802
|
if (fact?.outcome && !reason) {
|
|
1745
|
-
return fact.outcome;
|
|
1746
|
-
}
|
|
1747
|
-
if (unlistedRequest(request)) {
|
|
1748
|
-
if (!answerFallback) {
|
|
1749
|
-
const [reader, fact2] = {
|
|
1750
|
-
telegram: request.kind === "telegram" && !("chat" in request.input) ? ["ctx.telegram.connection()", "facts.telegram.connection"] : ["ctx.telegram.member()", "facts.telegram"],
|
|
1751
|
-
"wallet-nfts": ["ctx.wallet.nfts()", "facts.wallet.nfts"],
|
|
1752
|
-
"wallet-call": ["ctx.wallet.call()", "facts.wallet.call"],
|
|
1753
|
-
"wallet-delegations": [
|
|
1754
|
-
"ctx.wallet.delegations()",
|
|
1755
|
-
"facts.wallet.delegations"
|
|
1756
|
-
],
|
|
1757
|
-
"wallet-events": ["ctx.wallet.events()", "facts.wallet.events"],
|
|
1758
|
-
"wallet-transactions": [
|
|
1759
|
-
"ctx.wallet.transactions()",
|
|
1760
|
-
"facts.wallet.transactions"
|
|
1761
|
-
],
|
|
1762
|
-
"member-balance": ["ctx.member.balance()", "facts.member.balances"],
|
|
1763
|
-
"member-completions": [
|
|
1764
|
-
"ctx.member.completions()",
|
|
1765
|
-
"facts.member.completions"
|
|
1766
|
-
],
|
|
1767
|
-
"member-groups": ["ctx.member.groups()", "facts.member.groups"],
|
|
1768
|
-
"member-enrolled": [
|
|
1769
|
-
"ctx.member.enrolled()",
|
|
1770
|
-
"facts.member.campaigns"
|
|
1771
|
-
],
|
|
1772
|
-
"member-referrals": [
|
|
1773
|
-
"ctx.member.referrals()",
|
|
1774
|
-
"facts.member.referrals"
|
|
1775
|
-
]
|
|
1776
|
-
}[request.kind];
|
|
1777
|
-
throw new TestSetupError(
|
|
1778
|
-
`Capability call ${sequence}, ${reader}, is not in the capture (${reason ?? "new"}): pass ${fact2} to answer it`
|
|
1779
|
-
);
|
|
1780
|
-
}
|
|
1781
|
-
return answerFallback(request);
|
|
1803
|
+
return { ...fact.outcome, captured: true };
|
|
1782
1804
|
}
|
|
1783
1805
|
const divergence = {
|
|
1784
1806
|
sequence,
|
|
@@ -1786,7 +1808,7 @@ function captureAnswerer(facts, fallback, diverged) {
|
|
|
1786
1808
|
recorded: fact?.request ?? null,
|
|
1787
1809
|
replayed: request
|
|
1788
1810
|
};
|
|
1789
|
-
diverged(divergence);
|
|
1811
|
+
diverged(divergence, !unlistedRequest(request));
|
|
1790
1812
|
if (!answerFallback) {
|
|
1791
1813
|
throw new ReplayStopped(divergence);
|
|
1792
1814
|
}
|
|
@@ -1797,7 +1819,7 @@ async function replayAttempt(quest, capture, options = {}) {
|
|
|
1797
1819
|
const parsed = attemptCaptureSchema.safeParse(capture);
|
|
1798
1820
|
if (!parsed.success) {
|
|
1799
1821
|
throw new TestSetupError(
|
|
1800
|
-
`Not an attempt capture: ${
|
|
1822
|
+
`Not an attempt capture: ${z5.prettifyError(parsed.error)}`
|
|
1801
1823
|
);
|
|
1802
1824
|
}
|
|
1803
1825
|
const { quest: captured, context, facts, recorded } = parsed.data;
|
|
@@ -1807,6 +1829,7 @@ async function replayAttempt(quest, capture, options = {}) {
|
|
|
1807
1829
|
);
|
|
1808
1830
|
}
|
|
1809
1831
|
let divergence = null;
|
|
1832
|
+
let capabilityDivergence = null;
|
|
1810
1833
|
const host = hostContext(
|
|
1811
1834
|
{
|
|
1812
1835
|
release: {
|
|
@@ -1824,8 +1847,17 @@ async function replayAttempt(quest, capture, options = {}) {
|
|
|
1824
1847
|
now: parsed.data.now,
|
|
1825
1848
|
seed: parsed.data.seed
|
|
1826
1849
|
},
|
|
1827
|
-
captureAnswerer(facts, options.facts, (found) => {
|
|
1828
|
-
|
|
1850
|
+
captureAnswerer(facts, options.facts, (found, listed) => {
|
|
1851
|
+
if (capabilityDivergence) {
|
|
1852
|
+
return;
|
|
1853
|
+
}
|
|
1854
|
+
capabilityDivergence = found;
|
|
1855
|
+
divergence = listed ? {
|
|
1856
|
+
sequence: found.sequence,
|
|
1857
|
+
reason: found.reason,
|
|
1858
|
+
recorded: found.recorded,
|
|
1859
|
+
replayed: found.replayed
|
|
1860
|
+
} : null;
|
|
1829
1861
|
})
|
|
1830
1862
|
);
|
|
1831
1863
|
let decision = null;
|
|
@@ -1841,12 +1873,14 @@ async function replayAttempt(quest, capture, options = {}) {
|
|
|
1841
1873
|
recorded,
|
|
1842
1874
|
changed: decision && recorded ? !sameJson(decision, recorded) : null,
|
|
1843
1875
|
divergence,
|
|
1844
|
-
|
|
1876
|
+
capabilityDivergence,
|
|
1877
|
+
calls: host.calls,
|
|
1878
|
+
capabilityCalls: host.capabilityCalls
|
|
1845
1879
|
};
|
|
1846
1880
|
}
|
|
1847
1881
|
|
|
1848
1882
|
// src/testing/participant-api.ts
|
|
1849
|
-
import * as
|
|
1883
|
+
import * as z6 from "zod";
|
|
1850
1884
|
var defaultScope = {
|
|
1851
1885
|
organization: "org_test",
|
|
1852
1886
|
project: "project_test",
|
|
@@ -1914,7 +1948,11 @@ function createFakeRelay(options = {}) {
|
|
|
1914
1948
|
}
|
|
1915
1949
|
const start = query.get("start") === "latest" ? activity.length : cursor === null ? 0 : Number(cursor.replace(/^fake-/, ""));
|
|
1916
1950
|
if (!Number.isInteger(start) || start < 0 || start > activity.length) {
|
|
1917
|
-
return refuse(
|
|
1951
|
+
return refuse(
|
|
1952
|
+
400,
|
|
1953
|
+
"invalid-cursor",
|
|
1954
|
+
"Invalid cursor. Start from the first page."
|
|
1955
|
+
);
|
|
1918
1956
|
}
|
|
1919
1957
|
const items = activity.slice(start, start + limit);
|
|
1920
1958
|
return answer("GET /v1/me/activity", participantActivitySchema, {
|
|
@@ -1978,7 +2016,7 @@ function createFakeRelay(options = {}) {
|
|
|
1978
2016
|
}
|
|
1979
2017
|
if (method === "POST" && path === "/v1/auth/logout") {
|
|
1980
2018
|
member = null;
|
|
1981
|
-
return answer("POST /v1/auth/logout",
|
|
2019
|
+
return answer("POST /v1/auth/logout", z6.object({ ok: z6.boolean() }), {
|
|
1982
2020
|
ok: true
|
|
1983
2021
|
});
|
|
1984
2022
|
}
|
|
@@ -1988,7 +2026,7 @@ function createFakeRelay(options = {}) {
|
|
|
1988
2026
|
if (method === "GET" && path === "/v1/point-ledgers") {
|
|
1989
2027
|
return answer(
|
|
1990
2028
|
"GET /v1/point-ledgers",
|
|
1991
|
-
|
|
2029
|
+
z6.array(pointLedgerReferenceSchema),
|
|
1992
2030
|
ledgers
|
|
1993
2031
|
);
|
|
1994
2032
|
}
|
|
@@ -1998,7 +2036,7 @@ function createFakeRelay(options = {}) {
|
|
|
1998
2036
|
});
|
|
1999
2037
|
}
|
|
2000
2038
|
if (method === "GET" && path === "/v1/badges") {
|
|
2001
|
-
return answer("GET /v1/badges",
|
|
2039
|
+
return answer("GET /v1/badges", z6.array(badgeSchema), badges);
|
|
2002
2040
|
}
|
|
2003
2041
|
const board = method === "GET" && /^\/v1\/leaderboards\/([\w-]+)$/.exec(path);
|
|
2004
2042
|
if (board) {
|
|
@@ -2055,7 +2093,7 @@ function createFakeRelay(options = {}) {
|
|
|
2055
2093
|
};
|
|
2056
2094
|
experience(member ?? "member_test");
|
|
2057
2095
|
answer("GET /v1/me/points", pointBalancesSchema, { items: balances });
|
|
2058
|
-
answer("GET /v1/point-ledgers",
|
|
2096
|
+
answer("GET /v1/point-ledgers", z6.array(pointLedgerReferenceSchema), ledgers);
|
|
2059
2097
|
answer("GET /v1/badges/catalog", badgeCatalogSchema, { items: badges });
|
|
2060
2098
|
answer("GET /v1/me/activity", participantActivitySchema, {
|
|
2061
2099
|
member: member ?? "member_test",
|
|
@@ -2101,6 +2139,9 @@ export {
|
|
|
2101
2139
|
expectReject,
|
|
2102
2140
|
expectReview,
|
|
2103
2141
|
fakeEvaluationMember,
|
|
2142
|
+
fakeTelegramReader,
|
|
2143
|
+
fakeWalletReader,
|
|
2144
|
+
limits,
|
|
2104
2145
|
maxCapabilityCalls,
|
|
2105
2146
|
replayAttempt,
|
|
2106
2147
|
runQuest,
|
|
@@ -141,7 +141,7 @@ declare const knownIdentityKinds: readonly ["wallet", "x", "discord", "member"];
|
|
|
141
141
|
type KnownIdentityKind = (typeof knownIdentityKinds)[number];
|
|
142
142
|
/**
|
|
143
143
|
* An identity kind your app owns: `app:` and a name of lowercase letters, digits, `_` or `-`
|
|
144
|
-
* (at most 40), such as `app:
|
|
144
|
+
* (at most 40), such as `app:game` or `app:acme`. The identity integration created with this
|
|
145
145
|
* kind is the only one that can link it: each member it signs in gets the app's subject as an
|
|
146
146
|
* identity of this kind in the project.
|
|
147
147
|
*/
|
|
@@ -887,8 +887,10 @@ declare const trackerIngestResultSchema: z.ZodObject<{
|
|
|
887
887
|
* is removed, `not-joined` when the member joins, `not-enrolled` when the member enrolls. Every
|
|
888
888
|
* other skip is final unless a reviewer retries it, or, for `historical` under
|
|
889
889
|
* `historical: "claim"`, the member claims it.
|
|
890
|
+
*
|
|
891
|
+
* @compat open
|
|
890
892
|
*/
|
|
891
|
-
declare const trackerSkipCodes: readonly ["quest-paused", "before-activation", "outside-window", "future-record", "record-removed", "invalid-record-data", "content-unavailable", "no-account", "beneficiary-is-author", "unlinked-account", "ambiguous-account", "not-joined", "already-completed", "not-enrolled", "before-enrollment", "historical", "prerequisites-incomplete"];
|
|
893
|
+
declare const trackerSkipCodes: readonly ["quest-paused", "before-activation", "outside-window", "future-record", "record-removed", "invalid-record-data", "content-unavailable", "no-account", "beneficiary-is-author", "unlinked-account", "ambiguous-account", "not-joined", "member-banned", "already-completed", "not-enrolled", "before-enrollment", "historical", "prerequisites-incomplete"];
|
|
892
894
|
/**
|
|
893
895
|
* A skip code this SDK knows.
|
|
894
896
|
*
|
|
@@ -897,6 +899,15 @@ declare const trackerSkipCodes: readonly ["quest-paused", "before-activation", "
|
|
|
897
899
|
type KnownTrackerSkipCode = (typeof trackerSkipCodes)[number];
|
|
898
900
|
/** A known skip code, or one a newer Relay sends. */
|
|
899
901
|
type TrackerSkipCode = KnownTrackerSkipCode | (string & {});
|
|
902
|
+
/**
|
|
903
|
+
* Which enrollment a `not-enrolled` skip lacks: `"quest"`, the quest's own (`enrollment:
|
|
904
|
+
* "required"` on its trigger), or `"campaign"`, the campaign the quest belongs to.
|
|
905
|
+
*
|
|
906
|
+
* @compat open
|
|
907
|
+
*/
|
|
908
|
+
type KnownSkipEnrollment = "quest" | "campaign";
|
|
909
|
+
/** A known enrollment, or one a newer Relay sends. */
|
|
910
|
+
type SkipEnrollment = KnownSkipEnrollment | (string & {});
|
|
900
911
|
/**
|
|
901
912
|
* One tracker-trigger decision: a quest admitted an attempt for a record observation, or skipped
|
|
902
913
|
* it with a code and reason. Operators read these to see why a quest did or did not run.
|
|
@@ -924,6 +935,7 @@ declare const trackerOutcomeSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
924
935
|
quest: "quest";
|
|
925
936
|
tracker: "tracker";
|
|
926
937
|
}>>;
|
|
938
|
+
enrollment: z.ZodOptional<z.ZodType<SkipEnrollment, unknown, z.core.$ZodTypeInternals<SkipEnrollment, unknown>>>;
|
|
927
939
|
member: z.ZodNullable<z.ZodString>;
|
|
928
940
|
attempt: z.ZodNullable<z.ZodString>;
|
|
929
941
|
quest: z.ZodString;
|
|
@@ -976,6 +988,7 @@ declare const trackerTriggerOutcomePageSchema: z.ZodObject<{
|
|
|
976
988
|
quest: "quest";
|
|
977
989
|
tracker: "tracker";
|
|
978
990
|
}>>;
|
|
991
|
+
enrollment: z.ZodOptional<z.ZodType<SkipEnrollment, unknown, z.core.$ZodTypeInternals<SkipEnrollment, unknown>>>;
|
|
979
992
|
member: z.ZodNullable<z.ZodString>;
|
|
980
993
|
attempt: z.ZodNullable<z.ZodString>;
|
|
981
994
|
quest: z.ZodString;
|
|
@@ -1032,6 +1045,7 @@ declare const trackerOutcomePageSchema: z.ZodObject<{
|
|
|
1032
1045
|
quest: "quest";
|
|
1033
1046
|
tracker: "tracker";
|
|
1034
1047
|
}>>;
|
|
1048
|
+
enrollment: z.ZodOptional<z.ZodType<SkipEnrollment, unknown, z.core.$ZodTypeInternals<SkipEnrollment, unknown>>>;
|
|
1035
1049
|
member: z.ZodNullable<z.ZodString>;
|
|
1036
1050
|
attempt: z.ZodNullable<z.ZodString>;
|
|
1037
1051
|
quest: z.ZodString;
|
|
@@ -1267,7 +1281,11 @@ type TrackerPage<D = unknown> = Omit<z.infer<typeof trackerPageSchema>, "items">
|
|
|
1267
1281
|
items: TypedTrackerRecord<D>[];
|
|
1268
1282
|
excluded: number;
|
|
1269
1283
|
});
|
|
1270
|
-
/**
|
|
1284
|
+
/**
|
|
1285
|
+
* Preview bounds: one sample, never stored, never a tracker.
|
|
1286
|
+
*
|
|
1287
|
+
* @deprecated Use `limits.trackerPreview`, which a 1.x release can raise.
|
|
1288
|
+
*/
|
|
1271
1289
|
declare const trackerPreviewLimits: {
|
|
1272
1290
|
readonly pages: 3;
|
|
1273
1291
|
readonly posts: 100;
|
|
@@ -1348,10 +1366,12 @@ declare const trackerTriggerModeSchema: z.ZodEnum<{
|
|
|
1348
1366
|
}>;
|
|
1349
1367
|
type TrackerTriggerMode = z.infer<typeof trackerTriggerModeSchema>;
|
|
1350
1368
|
/**
|
|
1351
|
-
* Custom trackers fire on every new sample; X and
|
|
1352
|
-
* since a post, message or reaction is one event.
|
|
1369
|
+
* Custom trackers fire on every new sample; X, Discord and Telegram trackers on each record they
|
|
1370
|
+
* collect, since a post, message or reaction is one event. Telegram's sources are custom sources
|
|
1371
|
+
* on reserved namespaces in SDK 1.x, so `namespace` names them. A published policy keeps the mode
|
|
1372
|
+
* it was published with.
|
|
1353
1373
|
*/
|
|
1354
|
-
declare function defaultTriggerMode(source: string): TrackerTriggerMode;
|
|
1374
|
+
declare function defaultTriggerMode(source: string, namespace?: string): TrackerTriggerMode;
|
|
1355
1375
|
/**
|
|
1356
1376
|
* A bound in a tracker trigger filter: a number, or the quest's integer or amount setting of that
|
|
1357
1377
|
* name. An amount setting (`settings.amount()`) holds a base-unit integer string, compared exactly.
|
|
@@ -1783,9 +1803,17 @@ type TrackerDataSchema = {
|
|
|
1783
1803
|
oneOf?: TrackerDataSchema[];
|
|
1784
1804
|
allOf?: TrackerDataSchema[];
|
|
1785
1805
|
};
|
|
1786
|
-
/**
|
|
1806
|
+
/**
|
|
1807
|
+
* The most branches one union may list.
|
|
1808
|
+
*
|
|
1809
|
+
* @deprecated Use `limits.trackerData.branches`, which a 1.x release can raise.
|
|
1810
|
+
*/
|
|
1787
1811
|
declare const trackerDataMaxBranches = 16;
|
|
1788
|
-
/**
|
|
1812
|
+
/**
|
|
1813
|
+
* The most properties, `required` keys, enum values or allowed key names one schema node lists.
|
|
1814
|
+
*
|
|
1815
|
+
* @deprecated Use `limits.trackerData.entries`, which a 1.x release can raise.
|
|
1816
|
+
*/
|
|
1789
1817
|
declare const trackerDataMaxEntries = 256;
|
|
1790
1818
|
/**
|
|
1791
1819
|
* A stored tracker data schema: an object schema in the supported subset, at most 32 KB and
|
|
@@ -1852,4 +1880,4 @@ declare function schemaCheckedReader(reader: TrackerReader): TrackerReader;
|
|
|
1852
1880
|
*/
|
|
1853
1881
|
declare function whereSchemaIssue(schema: TrackerDataSchema, where: TrackerWhere | undefined): string | null;
|
|
1854
1882
|
|
|
1855
|
-
export { type
|
|
1883
|
+
export { type AppIdentityKind as $, type ReferralHandle as A, type TrackerTriggerContext as B, type TrackerReader as C, type TrackerTriggerMode as D, type RoleOf as E, type WhereSetting as F, type GroupHandle as G, type ContentBody as H, type IdentityKind as I, type BadgeHandle as J, type KnownSkipEnrollment as K, type LedgerReference as L, type MemberIdentity as M, type ContentMetricName as N, type OpenIdentityKind as O, type LedgerSetting as P, type QuestHandle as Q, type ResourceHandle as R, type SkipEnrollment as S, type TrackerSkipCode as T, type TrackerPage as U, type TrackerReadQuery as V, type WithRecordData as W, type XTweet as X, trackerDataSchema as Y, trackerTriggerContextSchema as Z, type AccountRole as _, type KnownTrackerSkipCode as a, trackerDataMaxBranches as a$, type Bound as a0, type Condition as a1, type DataLeaves as a2, type KnownIdentityKind as a3, type ManagedTrackerCreateInput as a4, type ManagedTrackerSource as a5, type ManagedTrackerSourceKind as a6, type TrackerAccount as a7, type TrackerAttribution as a8, type TrackerBound as a9, beneficiaryRole as aA, contentMetricNameSchema as aB, customContentSchema as aC, defaultTriggerMode as aD, identityKindSchema as aE, isAppIdentityKind as aF, isKnownTrackerSource as aG, knownIdentityKinds as aH, managedTrackerCreateSchema as aI, managedTrackerSource as aJ, managedTrackerSourceKinds as aK, managedTrackerSourceSchema as aL, memberIdentitySchema as aM, openIdentityKindSchema as aN, publishedTrackerSchema as aO, sourceIdentities as aP, trackerAccountSchema as aQ, trackerArtifactSchema as aR, trackerAttributionSchema as aS, trackerBoundSchema as aT, trackerConditionSchema as aU, trackerContentQuerySchema as aV, trackerContentReadSchema as aW, trackerContentSchema as aX, trackerContentStageSchema as aY, trackerControlSchema as aZ, trackerCreateSchema as a_, type TrackerCondition as aa, type TrackerContent as ab, type TrackerContentQuery as ac, type TrackerCreateInput as ad, type TrackerDataIssue as ae, type TrackerDefinition as af, type TrackerDefinitionResponse as ag, type TrackerOutcome as ah, type TrackerOutcomeQuery as ai, type TrackerPreview as aj, type TrackerPreviewInput as ak, type TrackerQuery as al, type TrackerRecord as am, type TrackerSourceKind as an, type TrackerSourceResponse as ao, type TrackerStatus as ap, type TrackerTriggerOutcomePage as aq, type TrackerTriggerOutcomeQuery as ar, type TrackerUpdateInput as as, type TrackerWhere as at, type TriggerEnrollment as au, type TriggerHistorical as av, type TriggerSince as aw, type TypedTrackerRecord as ax, accountRoleSchema as ay, appIdentityKindSchema as az, type TrackerDataBudget as b, trackerDataMaxEntries as b0, trackerDataSchemaSchema as b1, trackerDefinitionResponseSchema as b2, trackerEvidenceSchema as b3, trackerIngestResultSchema as b4, trackerIngestSchema as b5, trackerOutcomePageSchema as b6, trackerOutcomeQuerySchema as b7, trackerOutcomeRetrySchema as b8, trackerOutcomeSchema as b9, triggerSinceSchema as bA, walletBalanceSourceSchema as bB, whereConditions as bC, xAccountRoles as bD, xContentMetrics as bE, xTweetSchema as bF, trackerPageSchema as ba, trackerPreviewInputSchema as bb, trackerPreviewLimits as bc, trackerPreviewSchema as bd, trackerPropertiesSchema as be, trackerQuerySchema as bf, trackerRecordAccountSchema as bg, trackerRecordInputSchema as bh, trackerRecordSchema as bi, trackerSkipCodes as bj, trackerSourceKinds as bk, trackerSourceResponseSchema as bl, trackerSourceSchema as bm, trackerStatusSchema as bn, trackerSummarySchema as bo, trackerTriggerModeSchema as bp, trackerTriggerOutcomePageSchema as bq, trackerTriggerOutcomeQuerySchema as br, trackerTriggerPolicySchema as bs, trackerTriggerRecordSchema as bt, trackerUpdateSchema as bu, trackerWhereSchema as bv, triggerAdmission as bw, triggerEnrollmentSchema as bx, triggerHistoricalSchema as by, triggerMode as bz, sourceContent as c, trackerDataIssue as d, trackerDataIssues as e, trackerDataPathTypes as f, trackerDataRecordSteps as g, whereSettings as h, type TrackerDataSchema as i, customSourceSchema as j, type WithContent as k, type WithAccountRoles as l, type TrackerSource as m, trackerDefinitionSchema as n, type Tracker as o, type TrackerData as p, type SourceRoles as q, type LedgerHandle as r, schemaCheckedReader as s, trackerDataBatchSteps as t, xSearchSourceSchema as u, type XContentMetric as v, whereSchemaIssue as w, xContentBodySchema as x, type TrackerTriggerPolicy as y, type Where as z };
|