@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.
Files changed (74) hide show
  1. package/CHANGELOG.md +145 -0
  2. package/dist/{accounts-CCqCKCVx.d.ts → accounts-_lNsiR2k.d.ts} +42 -4
  3. package/dist/{attempt-captures-Cm-5G0PC.d.ts → attempt-captures-BqPggxTU.d.ts} +1 -1
  4. package/dist/authoring.d.ts +54 -20
  5. package/dist/authoring.js +60 -31
  6. package/dist/{automatic-outcomes-pAsOyIVp.d.ts → automatic-outcomes-BzAvfcpd.d.ts} +11 -1
  7. package/dist/avatar.d.ts +1 -1
  8. package/dist/browser.d.ts +10 -10
  9. package/dist/browser.js +12 -13
  10. package/dist/capability-error-CuI_F7yM.d.ts +296 -0
  11. package/dist/{catalog--ZIlskAo.d.ts → catalog-ByZMRS7I.d.ts} +21 -10
  12. package/dist/{chunk-XNKSSE32.js → chunk-4NIV4NPV.js} +7 -7
  13. package/dist/chunk-7H4MRVQF.js +199 -0
  14. package/dist/{chunk-UPQPUJOU.js → chunk-CVQZ2YP7.js} +73 -202
  15. package/dist/{chunk-3PYYGFSB.js → chunk-DLABJSBO.js} +3 -3
  16. package/dist/{chunk-Y322OTCH.js → chunk-E22XSC4L.js} +1 -1
  17. package/dist/{chunk-E6IKQHTX.js → chunk-EDNKKVGU.js} +2 -2
  18. package/dist/{chunk-K2KS3JLY.js → chunk-EOUEAOWJ.js} +35 -4
  19. package/dist/{chunk-6WCIWXUV.js → chunk-EUEW2APU.js} +2 -2
  20. package/dist/{chunk-MK425RXJ.js → chunk-HNR6G3GV.js} +2335 -1538
  21. package/dist/{chunk-UW5232GG.js → chunk-KCUUHT2V.js} +5 -5
  22. package/dist/{chunk-CICDIBOF.js → chunk-MPTE7EIV.js} +76 -74
  23. package/dist/{chunk-4OC7REYX.js → chunk-MWMCQLCG.js} +3 -3
  24. package/dist/{chunk-GTDW453U.js → chunk-NG4GZ54I.js} +100 -114
  25. package/dist/chunk-R2KZFX6E.js +405 -0
  26. package/dist/{chunk-HTZHBTIL.js → chunk-RD3XJ4DH.js} +208 -376
  27. package/dist/{chunk-5TEYFX6X.js → chunk-SE7XHQFP.js} +2 -2
  28. package/dist/{chunk-CZFXGGEK.js → chunk-U66GUVSG.js} +2 -2
  29. package/dist/{chunk-KDR2VAJP.js → chunk-UYVJZR33.js} +2 -2
  30. package/dist/chunk-UZ765UGH.js +18 -0
  31. package/dist/{chunk-GKIFABGN.js → chunk-VBYOAT46.js} +100 -277
  32. package/dist/{chunk-QYPMPWVX.js → chunk-XVZ4YOF2.js} +43 -43
  33. package/dist/{chunk-3KLC4AMA.js → chunk-ZQ3IPCI6.js} +177 -176
  34. package/dist/chunk-ZXGBDLVB.js +1510 -0
  35. package/dist/{client-B-hbHX30.d.ts → client-D7IiwEq2.d.ts} +31 -62
  36. package/dist/{capability-error-DFMwSuSf.d.ts → dashboards-pVfclkyh.d.ts} +14 -294
  37. package/dist/{deployments-M4OHn7G3.d.ts → deployments-Cr1tfqrr.d.ts} +46 -3
  38. package/dist/{identity-integration-3mX6b5iH.d.ts → identity-integration-Ci2vGKtX.d.ts} +67 -2
  39. package/dist/index.d.ts +11 -11
  40. package/dist/index.js +11 -13
  41. package/dist/internal.d.ts +27 -13
  42. package/dist/internal.js +46 -13
  43. package/dist/{analytics-BwAKLi7O.d.ts → limits-pE04y9O2.d.ts} +131 -3
  44. package/dist/{offers-DhAtss4_.d.ts → offers-Hw2P6tcK.d.ts} +3 -2
  45. package/dist/{participant-activity-D-Drp24G.d.ts → participant-activity-DXRq4s6K.d.ts} +1 -0
  46. package/dist/portal-proxy.d.ts +21 -3
  47. package/dist/portal-proxy.js +72 -22
  48. package/dist/react/index.d.ts +29 -15
  49. package/dist/react/index.js +52 -29
  50. package/dist/{pages-B8q8Y_dQ.d.ts → reward-deliveries-BCV8hznc.d.ts} +300 -233
  51. package/dist/runtime/authoring.js +1 -1
  52. package/dist/runtime/chunks/6EBN6IZU.js +1 -0
  53. package/dist/runtime/manifest.json +3 -3
  54. package/dist/runtime/schema.js +1 -1
  55. package/dist/schema.d.ts +197 -19
  56. package/dist/schema.js +126 -124
  57. package/dist/server/index.d.ts +13 -13
  58. package/dist/server/index.js +5701 -6302
  59. package/dist/{sign-in-providers-BkjcDsFF.d.ts → sign-in-providers-BAkGjSXo.d.ts} +7 -2
  60. package/dist/{submission-input-DHGKhXfp.d.ts → submission-input-ChL1aYNH.d.ts} +3 -2
  61. package/dist/{telegram-browser-BCE7zdOb.d.ts → telegram-browser-K27t4TwM.d.ts} +5 -5
  62. package/dist/telegram.d.ts +9 -9
  63. package/dist/telegram.js +2 -2
  64. package/dist/testing.d.ts +229 -27
  65. package/dist/testing.js +146 -105
  66. package/dist/{tracker-data-Hb1uQnk5.d.ts → tracker-data-Bl-qPIvZ.d.ts} +37 -9
  67. package/dist/{transport-DkhX2Cbs.d.ts → transport-DC1m73Tp.d.ts} +40211 -37736
  68. package/dist/{wallet-DTO7SXj7.d.ts → wallet-B7e06v4m.d.ts} +14 -4
  69. package/package.json +1 -1
  70. package/dist/chunk-D26YNACF.js +0 -320
  71. package/dist/chunk-UAKYDVT3.js +0 -565
  72. package/dist/chunk-WSBYWVTZ.js +0 -717
  73. package/dist/chunk-XJFYAXET.js +0 -87
  74. 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-XNKSSE32.js";
4
- import {
5
- CapabilityError
6
- } from "./chunk-4OC7REYX.js";
3
+ } from "./chunk-4NIV4NPV.js";
7
4
  import {
8
5
  parseImageResult
9
- } from "./chunk-E6IKQHTX.js";
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-QYPMPWVX.js";
16
+ } from "./chunk-XVZ4YOF2.js";
17
17
  import {
18
- isParticipantRoute
19
- } from "./chunk-CZFXGGEK.js";
18
+ CapabilityError
19
+ } from "./chunk-MWMCQLCG.js";
20
20
  import {
21
+ exchangeResultSchema,
21
22
  participantActivitySchema,
23
+ participantSessionSchema,
22
24
  questExperienceSchema
23
- } from "./chunk-D26YNACF.js";
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-MK425RXJ.js";
80
+ } from "./chunk-HNR6G3GV.js";
86
81
  import {
87
82
  RelayErrorCode
88
- } from "./chunk-K2KS3JLY.js";
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(maxWalletEventLogs).optional()
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(maxMemberCompletions)
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(parseCapabilityResult(request, outcome.value));
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 >= maxCapabilityCalls) {
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 ${maxCapabilityCalls} capability calls, shared by all capabilities`,
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 z4 from "zod";
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: ${z4.prettifyError(parsed.error)}`
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
- divergence ??= found;
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
- calls: host.calls
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 z5 from "zod";
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(400, "invalid-request", "Invalid activity cursor");
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", z5.object({ ok: z5.boolean() }), {
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
- z5.array(pointLedgerReferenceSchema),
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", z5.array(badgeSchema), 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", z5.array(pointLedgerReferenceSchema), 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:telegram` or `app:acme`. The identity integration created with this
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
- /** Preview bounds: one sample, never stored, never a tracker. */
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 Discord trackers on each record they collect,
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
- /** The most branches one union may list. */
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
- /** The most properties, `required` keys, enum values or allowed key names one schema node lists. */
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 KnownIdentityKind as $, type RoleOf as A, type WhereSetting as B, type ContentBody as C, type BadgeHandle as D, type ContentMetricName as E, type LedgerSetting as F, type GroupHandle as G, type TrackerPage as H, type IdentityKind as I, type TrackerReadQuery as J, type KnownTrackerSkipCode as K, type LedgerReference as L, type MemberIdentity as M, trackerDataSchema as N, type OpenIdentityKind as O, trackerTriggerContextSchema as P, type QuestHandle as Q, type ResourceHandle as R, type SourceRoles as S, type TrackerSkipCode as T, type AccountRole as U, type AppIdentityKind as V, type WithRecordData as W, type XTweet as X, type Bound as Y, type Condition as Z, type DataLeaves as _, type TrackerDataBudget as a, trackerDefinitionResponseSchema as a$, type ManagedTrackerCreateInput as a0, type ManagedTrackerSource as a1, type ManagedTrackerSourceKind as a2, type TrackerAccount as a3, type TrackerAttribution as a4, type TrackerBound as a5, type TrackerCondition as a6, type TrackerContent as a7, type TrackerContentQuery as a8, type TrackerCreateInput as a9, identityKindSchema as aA, isAppIdentityKind as aB, isKnownTrackerSource as aC, knownIdentityKinds as aD, managedTrackerCreateSchema as aE, managedTrackerSource as aF, managedTrackerSourceKinds as aG, managedTrackerSourceSchema as aH, memberIdentitySchema as aI, openIdentityKindSchema as aJ, publishedTrackerSchema as aK, sourceContent as aL, sourceIdentities as aM, trackerAccountSchema as aN, trackerArtifactSchema as aO, trackerAttributionSchema as aP, trackerBoundSchema as aQ, trackerConditionSchema as aR, trackerContentQuerySchema as aS, trackerContentReadSchema as aT, trackerContentSchema as aU, trackerContentStageSchema as aV, trackerControlSchema as aW, trackerCreateSchema as aX, trackerDataMaxBranches as aY, trackerDataMaxEntries as aZ, trackerDataSchemaSchema as a_, type TrackerDataIssue as aa, type TrackerDefinition as ab, type TrackerDefinitionResponse as ac, type TrackerOutcome as ad, type TrackerOutcomeQuery as ae, type TrackerPreview as af, type TrackerPreviewInput as ag, type TrackerQuery as ah, type TrackerRecord as ai, type TrackerSourceKind as aj, type TrackerSourceResponse as ak, type TrackerStatus as al, type TrackerTriggerOutcomePage as am, type TrackerTriggerOutcomeQuery as an, type TrackerUpdateInput as ao, type TrackerWhere as ap, type TriggerEnrollment as aq, type TriggerHistorical as ar, type TriggerSince as as, type TypedTrackerRecord as at, accountRoleSchema as au, appIdentityKindSchema as av, beneficiaryRole as aw, contentMetricNameSchema as ax, customContentSchema as ay, defaultTriggerMode as az, trackerDataIssue as b, trackerEvidenceSchema as b0, trackerIngestResultSchema as b1, trackerIngestSchema as b2, trackerOutcomePageSchema as b3, trackerOutcomeQuerySchema as b4, trackerOutcomeRetrySchema as b5, trackerOutcomeSchema as b6, trackerPageSchema as b7, trackerPreviewInputSchema as b8, trackerPreviewLimits as b9, whereSettings as bA, xAccountRoles as bB, xContentMetrics as bC, xTweetSchema as bD, trackerPreviewSchema as ba, trackerPropertiesSchema as bb, trackerQuerySchema as bc, trackerRecordAccountSchema as bd, trackerRecordInputSchema as be, trackerRecordSchema as bf, trackerSkipCodes as bg, trackerSourceKinds as bh, trackerSourceResponseSchema as bi, trackerSourceSchema as bj, trackerStatusSchema as bk, trackerSummarySchema as bl, trackerTriggerModeSchema as bm, trackerTriggerOutcomePageSchema as bn, trackerTriggerOutcomeQuerySchema as bo, trackerTriggerPolicySchema as bp, trackerTriggerRecordSchema as bq, trackerUpdateSchema as br, trackerWhereSchema as bs, triggerAdmission as bt, triggerEnrollmentSchema as bu, triggerHistoricalSchema as bv, triggerMode as bw, triggerSinceSchema as bx, walletBalanceSourceSchema as by, whereConditions as bz, trackerDataIssues as c, trackerDataPathTypes as d, trackerDataRecordSteps as e, type TrackerDataSchema as f, customSourceSchema as g, type WithContent as h, type WithAccountRoles as i, type TrackerSource as j, trackerDefinitionSchema as k, type Tracker as l, type TrackerData as m, type LedgerHandle as n, xSearchSourceSchema as o, type XContentMetric as p, type TrackerTriggerPolicy as q, type Where as r, schemaCheckedReader as s, trackerDataBatchSteps as t, type ReferralHandle as u, type TrackerTriggerContext as v, whereSchemaIssue as w, xContentBodySchema as x, type TrackerReader as y, type TrackerTriggerMode as z };
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 };