@greatwait/contracts 0.2.3 → 0.3.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.
Files changed (90) hide show
  1. package/dist/attempt-search.d.ts +235 -0
  2. package/dist/attempt-search.js +101 -0
  3. package/dist/authority.js +9 -9
  4. package/dist/billing.d.ts +4 -4
  5. package/dist/bulk-operations.d.ts +1832 -0
  6. package/dist/bulk-operations.js +610 -0
  7. package/dist/configuration-bounds.d.ts +12 -0
  8. package/dist/configuration-bounds.js +12 -0
  9. package/dist/configuration.d.ts +75 -0
  10. package/dist/configuration.js +242 -0
  11. package/dist/data-export.d.ts +3 -3
  12. package/dist/delivery.d.ts +1 -0
  13. package/dist/delivery.js +1 -0
  14. package/dist/effective-limits.d.ts +4 -4
  15. package/dist/endpoints.js +25 -25
  16. package/dist/execution-selection.d.ts +48 -0
  17. package/dist/execution-selection.js +21 -0
  18. package/dist/http-request.d.ts +1 -1
  19. package/dist/http-request.js +25 -23
  20. package/dist/identifiers.d.ts +2 -0
  21. package/dist/identifiers.js +21 -19
  22. package/dist/identity.d.ts +3 -3
  23. package/dist/index.d.ts +5 -0
  24. package/dist/index.js +5 -0
  25. package/dist/occurrence-states.d.ts +14 -0
  26. package/dist/occurrence-states.js +13 -0
  27. package/dist/operational-config.js +7 -6
  28. package/dist/operations.d.ts +573 -89
  29. package/dist/operations.js +67 -0
  30. package/dist/protocol.d.ts +19 -5
  31. package/dist/protocol.js +47 -40
  32. package/dist/schedule-selection.d.ts +28 -0
  33. package/dist/schedule-selection.js +48 -0
  34. package/dist/scheduling-records.d.ts +20 -20
  35. package/dist/scheduling.d.ts +109 -63
  36. package/dist/scheduling.js +101 -117
  37. package/dist/signatures.d.ts +6 -6
  38. package/dist/signatures.js +24 -24
  39. package/dist/stored-http.d.ts +18 -0
  40. package/dist/stored-http.js +106 -0
  41. package/dist/test-sink.d.ts +6 -6
  42. package/dist/time.js +7 -7
  43. package/dist/usage.d.ts +3 -3
  44. package/generated/v1/examples/attempts.search.response.json +42 -0
  45. package/generated/v1/examples/bulk.cancel.request.json +3 -0
  46. package/generated/v1/examples/bulk.cancel.response.json +59 -0
  47. package/generated/v1/examples/bulk.confirm.request.json +5 -0
  48. package/generated/v1/examples/bulk.confirm.response.json +59 -0
  49. package/generated/v1/examples/bulk.items.response.json +3 -0
  50. package/generated/v1/examples/bulk.list.response.json +63 -0
  51. package/generated/v1/examples/bulk.pause.request.json +3 -0
  52. package/generated/v1/examples/bulk.pause.response.json +59 -0
  53. package/generated/v1/examples/bulk.preview.request.json +12 -0
  54. package/generated/v1/examples/bulk.preview.response.json +59 -0
  55. package/generated/v1/examples/bulk.read.response.json +59 -0
  56. package/generated/v1/examples/bulk.resume.request.json +3 -0
  57. package/generated/v1/examples/bulk.resume.response.json +59 -0
  58. package/generated/v1/manifest.json +243 -1
  59. package/generated/v1/openapi.json +21569 -2418
  60. package/generated/v1/policy-matrix.json +63 -0
  61. package/generated/v1/schemas/attempts.search.query.json +96 -0
  62. package/generated/v1/schemas/attempts.search.response.json +271 -0
  63. package/generated/v1/schemas/bulk.cancel.request.json +13 -0
  64. package/generated/v1/schemas/bulk.cancel.response.json +1717 -0
  65. package/generated/v1/schemas/bulk.confirm.request-headers.json +13 -0
  66. package/generated/v1/schemas/bulk.confirm.request.json +19 -0
  67. package/generated/v1/schemas/bulk.confirm.response.json +1717 -0
  68. package/generated/v1/schemas/bulk.items.query.json +29 -0
  69. package/generated/v1/schemas/bulk.items.response.json +194 -0
  70. package/generated/v1/schemas/bulk.list.query.json +32 -0
  71. package/generated/v1/schemas/bulk.list.response.json +1789 -0
  72. package/generated/v1/schemas/bulk.pause.request.json +13 -0
  73. package/generated/v1/schemas/bulk.pause.response.json +1717 -0
  74. package/generated/v1/schemas/bulk.preview.request.json +1218 -0
  75. package/generated/v1/schemas/bulk.preview.response.json +1717 -0
  76. package/generated/v1/schemas/bulk.read.response.json +1717 -0
  77. package/generated/v1/schemas/bulk.resume.request.json +13 -0
  78. package/generated/v1/schemas/bulk.resume.response.json +1717 -0
  79. package/generated/v1/schemas/executions.list.query.json +33 -12
  80. package/generated/v1/schemas/schedules.list.query.json +32 -3
  81. package/generated/v1/snippets/attempts.search.json +6 -0
  82. package/generated/v1/snippets/bulk.cancel.json +6 -0
  83. package/generated/v1/snippets/bulk.confirm.json +6 -0
  84. package/generated/v1/snippets/bulk.items.json +6 -0
  85. package/generated/v1/snippets/bulk.list.json +6 -0
  86. package/generated/v1/snippets/bulk.pause.json +6 -0
  87. package/generated/v1/snippets/bulk.preview.json +6 -0
  88. package/generated/v1/snippets/bulk.read.json +6 -0
  89. package/generated/v1/snippets/bulk.resume.json +6 -0
  90. package/package.json +1 -1
@@ -1,7 +1,9 @@
1
+ import { occurrenceStateSchema, } from "./occurrence-states.js";
2
+ import { executionSelectionSchema, normalizeExecutionSelection, } from "./execution-selection.js";
1
3
  import { httpRequestSchema, publicHttpRequestSchema } from "./http-request.js";
2
4
  import { FIXED_INTERVAL_MIN_SECONDS, FIXED_INTERVAL_MAX_SECONDS, MAX_INLINE_PAYLOAD_BYTES, } from "./configuration-bounds.js";
3
5
  import { z } from "./zod.js";
4
- import { externalIdentifierSchema, scheduleTagSchema, scheduleTagsSchema, } from "./host-correlation.js";
6
+ import { externalIdentifierSchema, scheduleTagsSchema, } from "./host-correlation.js";
5
7
  import { attemptIdSchema, deliveryIdSchema, endpointIdSchema, occurrenceIdSchema, scheduleIdSchema, } from "./identifiers.js";
6
8
  import { CALLBACK_ATTEMPT_DIAGNOSTICS } from "./delivery.js";
7
9
  import { callbackUrlSchema, signingSecretNoticeSchema } from "./endpoints.js";
@@ -49,18 +51,18 @@ export const SCHEDULE_STATUSES = [
49
51
  "cancelled",
50
52
  "completed",
51
53
  ];
52
- export const scheduleStatusSchema = z.enum(SCHEDULE_STATUSES);
54
+ export const scheduleStatusSchema = /* @__PURE__ */ (() => z.enum(SCHEDULE_STATUSES))();
53
55
  /** A recurring schedule pauses after this many failed runs; "never" disables it. */
54
56
  export const DEFAULT_AUTO_PAUSE_AFTER_FAILURES = 5;
55
- export const autoPauseAfterFailuresSchema = z
57
+ export const autoPauseAfterFailuresSchema = /* @__PURE__ */ (() => z
56
58
  .union([z.number().int().min(1).max(100), z.literal("never")])
57
- .describe('Consecutive failed runs before automatic pause: 1–100 or "never". Defaults to 5 on create; omission on replace preserves the setting. One-shot schedules are unaffected.');
58
- export const autoPauseReasonSchema = z.object({
59
+ .describe('Consecutive failed runs before automatic pause: 1–100 or "never". Defaults to 5 on create; omission on replace preserves the setting. One-shot schedules are unaffected.'))();
60
+ export const autoPauseReasonSchema = /* @__PURE__ */ (() => z.object({
59
61
  failedRuns: z.number().int().positive(),
60
62
  status: z.number().int().min(100).max(599).optional(),
61
63
  diagnostic: z.string().max(500),
62
64
  pausedAt: timestampSchema,
63
- });
65
+ }))();
64
66
  /**
65
67
  * The statuses a schedule never leaves, and from which it never fires again on
66
68
  * its own.
@@ -101,7 +103,7 @@ export function isTerminalScheduleStatus(status) {
101
103
  * anything to anybody. `realtime` gets preference without starving `bulk`.
102
104
  */
103
105
  export const LATENCY_CLASSES = ["realtime", "bulk"];
104
- export const latencyClassSchema = z.enum(LATENCY_CLASSES);
106
+ export const latencyClassSchema = /* @__PURE__ */ (() => z.enum(LATENCY_CLASSES))();
105
107
  /**
106
108
  * What happens when an occurrence reaches its first attempt after its planned
107
109
  * instant.
@@ -116,7 +118,7 @@ export const latencyClassSchema = z.enum(LATENCY_CLASSES);
116
118
  * it started under.
117
119
  */
118
120
  export const LATENESS_POLICIES = ["skipAhead", "catchUp"];
119
- export const latenessPolicySchema = z.enum(LATENESS_POLICIES);
121
+ export const latenessPolicySchema = /* @__PURE__ */ (() => z.enum(LATENESS_POLICIES))();
120
122
  /** The inherited one-shot staleness window: twenty-four hours. */
121
123
  export const DEFAULT_ONE_SHOT_MAX_STALENESS_SECONDS = 86_400;
122
124
  /**
@@ -127,7 +129,7 @@ export const DEFAULT_ONE_SHOT_MAX_STALENESS_SECONDS = 86_400;
127
129
  * staleness bound uses the recurrence's own default: twenty-four hours for a
128
130
  * one-shot, and one recurrence interval for a recurring schedule.
129
131
  */
130
- export const scheduleLatenessRequestSchema = z
132
+ export const scheduleLatenessRequestSchema = /* @__PURE__ */ (() => z
131
133
  .object({
132
134
  maxStalenessSeconds: durationSecondsSchema
133
135
  .positive("must be at least 1 second")
@@ -135,7 +137,7 @@ export const scheduleLatenessRequestSchema = z
135
137
  .optional(),
136
138
  policy: latenessPolicySchema.optional(),
137
139
  })
138
- .strict();
140
+ .strict())();
139
141
  /**
140
142
  * Lateness settings as a schedule reads back.
141
143
  *
@@ -143,9 +145,9 @@ export const scheduleLatenessRequestSchema = z
143
145
  * remains optional because it records a per-schedule override, not a duplicated
144
146
  * copy of a default that can be derived from the recurrence.
145
147
  */
146
- export const scheduleLatenessSchema = scheduleLatenessRequestSchema.extend({
148
+ export const scheduleLatenessSchema = /* @__PURE__ */ (() => scheduleLatenessRequestSchema.extend({
147
149
  policy: latenessPolicySchema,
148
- });
150
+ }))();
149
151
  /* -------------------------------------------------------------------------- */
150
152
  /* Delivery duration */
151
153
  /* -------------------------------------------------------------------------- */
@@ -254,12 +256,12 @@ export const RESPONSE_DELIVERY_MAX_DURATION_SECONDS = 1_800;
254
256
  * a relation between two fields), and above
255
257
  * {@link FREE_DELIVERY_DURATION_SECONDS} it needs a plan that allows it.
256
258
  */
257
- export const deliveryDurationSecondsSchema = z
259
+ export const deliveryDurationSecondsSchema = /* @__PURE__ */ (() => z
258
260
  .number()
259
261
  .int("must be a whole number of seconds")
260
262
  .positive("must be at least 1 second")
261
263
  .max(MAX_DELIVERY_DURATION_SECONDS, `must be at most ${String(MAX_DELIVERY_DURATION_SECONDS)} seconds`)
262
- .describe("How long the receiver may take to answer, in seconds");
264
+ .describe("How long the receiver may take to answer, in seconds"))();
263
265
  /** Whether a duration is past the point where it needs a plan that allows it. */
264
266
  export function isLongRunningDuration(seconds) {
265
267
  return seconds > FREE_DELIVERY_DURATION_SECONDS;
@@ -289,7 +291,7 @@ export function isLongRunningDuration(seconds) {
289
291
  * untouched, and so is what a rung costs.
290
292
  */
291
293
  export const DELIVERY_COMPLETION_MODES = ["response", "callback"];
292
- export const deliveryCompletionModeSchema = z.enum(DELIVERY_COMPLETION_MODES);
294
+ export const deliveryCompletionModeSchema = /* @__PURE__ */ (() => z.enum(DELIVERY_COMPLETION_MODES))();
293
295
  /**
294
296
  * What to do when a recurring schedule comes due and its previous run has not
295
297
  * finished.
@@ -311,7 +313,7 @@ export const deliveryCompletionModeSchema = z.enum(DELIVERY_COMPLETION_MODES);
311
313
  * - `queue` — run it when the previous one finishes.
312
314
  */
313
315
  export const DELIVERY_OVERLAP_POLICIES = ["skip", "queue"];
314
- export const deliveryOverlapPolicySchema = z.enum(DELIVERY_OVERLAP_POLICIES);
316
+ export const deliveryOverlapPolicySchema = /* @__PURE__ */ (() => z.enum(DELIVERY_OVERLAP_POLICIES))();
315
317
  export const DEFAULT_DELIVERY_OVERLAP_POLICY = "skip";
316
318
  /**
317
319
  * A definition generation. Starts at 1 and increases on every replacement.
@@ -322,10 +324,7 @@ export const DEFAULT_DELIVERY_OVERLAP_POLICY = "skip";
322
324
  * would make pausing and resuming a schedule invalidate occurrences that are
323
325
  * still perfectly valid.
324
326
  */
325
- export const generationSchema = z
326
- .number()
327
- .int("must be a whole number")
328
- .positive("must be at least 1");
327
+ export const generationSchema = /* @__PURE__ */ (() => z.number().int("must be a whole number").positive("must be at least 1"))();
329
328
  /**
330
329
  * A customer-supplied fairness key.
331
330
  *
@@ -337,11 +336,11 @@ export const generationSchema = z
337
336
  * another Durable Object namespace.
338
337
  */
339
338
  export const PARTITION_KEY_MAX_LENGTH = 64;
340
- export const partitionKeySchema = z
339
+ export const partitionKeySchema = /* @__PURE__ */ (() => z
341
340
  .string()
342
341
  .min(1, "must not be empty")
343
342
  .max(PARTITION_KEY_MAX_LENGTH, `must be at most ${String(PARTITION_KEY_MAX_LENGTH)} characters`)
344
- .regex(/^[A-Za-z0-9._:-]+$/u, "must use only letters, digits, dot, underscore, colon, or hyphen");
343
+ .regex(/^[A-Za-z0-9._:-]+$/u, "must use only letters, digits, dot, underscore, colon, or hyphen"))();
345
344
  /* -------------------------------------------------------------------------- */
346
345
  /* Occurrence state */
347
346
  /* -------------------------------------------------------------------------- */
@@ -358,18 +357,7 @@ export const partitionKeySchema = z
358
357
  * not `cancelled`: a customer who cancelled something and a customer whose
359
358
  * occurrence went stale need different explanations.
360
359
  */
361
- export const OCCURRENCE_STATES = [
362
- "planned",
363
- "due",
364
- "dispatching",
365
- "retry_wait",
366
- "ambiguous",
367
- "succeeded",
368
- "terminal_failed",
369
- "cancelled",
370
- "skipped_stale",
371
- ];
372
- export const occurrenceStateSchema = z.enum(OCCURRENCE_STATES);
360
+ export { OCCURRENCE_STATES, occurrenceStateSchema, } from "./occurrence-states.js";
373
361
  /**
374
362
  * One project-wide walk over retained occurrences, newest first.
375
363
  *
@@ -378,26 +366,18 @@ export const occurrenceStateSchema = z.enum(OCCURRENCE_STATES);
378
366
  * the same thing. The date range is half-open, like every other time window in
379
367
  * this contract, so adjacent requests neither overlap nor leave a gap.
380
368
  */
381
- export const projectOccurrenceListRequestSchema = pageRequestSchema
382
- .extend({
383
- endpoint: endpointIdSchema.optional(),
384
- external_identifier: externalIdentifierSchema.optional(),
385
- tag: scheduleTagSchema.optional(),
386
- from: timestampSchema.optional(),
387
- outcome: occurrenceStateSchema.optional(),
388
- schedule: scheduleIdSchema.optional(),
389
- to: timestampSchema.optional(),
390
- })
369
+ export const projectOccurrenceListRequestSchema = /* @__PURE__ */ (() => pageRequestSchema
370
+ .extend(executionSelectionSchema.shape)
391
371
  .refine((request) => request.from === undefined ||
392
372
  request.to === undefined ||
393
- Date.parse(request.from) < Date.parse(request.to), {
394
- message: "must be later than from",
395
- path: ["to"],
396
- });
373
+ Date.parse(request.from) < Date.parse(request.to), { message: "must be later than from", path: ["to"] }))();
397
374
  const PROJECT_OCCURRENCE_LIST_PARAMETERS = [
398
375
  "cursor",
399
376
  "limit",
400
377
  "endpoint",
378
+ "status",
379
+ "recurrence",
380
+ "text",
401
381
  "external_identifier",
402
382
  "tag",
403
383
  "from",
@@ -448,17 +428,7 @@ export function parseProjectOccurrenceListRequest(query) {
448
428
  export function projectOccurrenceCursorBinding(request) {
449
429
  return {
450
430
  operation: "executions.list",
451
- parameters: {
452
- ...(request.endpoint === undefined ? {} : { endpoint: request.endpoint }),
453
- ...(request.external_identifier === undefined
454
- ? {}
455
- : { external_identifier: request.external_identifier }),
456
- ...(request.tag === undefined ? {} : { tag: request.tag }),
457
- ...(request.from === undefined ? {} : { from: request.from }),
458
- ...(request.outcome === undefined ? {} : { outcome: request.outcome }),
459
- ...(request.schedule === undefined ? {} : { schedule: request.schedule }),
460
- ...(request.to === undefined ? {} : { to: request.to }),
461
- },
431
+ parameters: { ...normalizeExecutionSelection(request) },
462
432
  };
463
433
  }
464
434
  /**
@@ -495,9 +465,9 @@ export const ATTEMPT_STATES = [
495
465
  "terminal_failure",
496
466
  "ambiguous",
497
467
  ];
498
- export const attemptStateSchema = z.enum(ATTEMPT_STATES);
468
+ export const attemptStateSchema = /* @__PURE__ */ (() => z.enum(ATTEMPT_STATES))();
499
469
  /** Safe diagnostic codes produced by the W3-03 delivery classifier. */
500
- export const attemptDiagnosticSchema = z.enum(CALLBACK_ATTEMPT_DIAGNOSTICS);
470
+ export const attemptDiagnosticSchema = /* @__PURE__ */ (() => z.enum(CALLBACK_ATTEMPT_DIAGNOSTICS))();
501
471
  /**
502
472
  * Bounded next-action hints for an attempt timeline.
503
473
  *
@@ -526,7 +496,7 @@ export const ATTEMPT_REMEDIATIONS = [
526
496
  export const ATTEMPT_RESPONSE_HEADER_MAX_LENGTH = 256;
527
497
  /** How much of a failed receiver's body is published, in characters. */
528
498
  export const ATTEMPT_FAILURE_SNIPPET_MAX_LENGTH = 4_096;
529
- export const attemptRemediationSchema = z.enum(ATTEMPT_REMEDIATIONS);
499
+ export const attemptRemediationSchema = /* @__PURE__ */ (() => z.enum(ATTEMPT_REMEDIATIONS))();
530
500
  /** Derive the one safe next-action code a public attempt may expose. */
531
501
  export function remediationForAttempt(diagnostic) {
532
502
  switch (diagnostic) {
@@ -762,12 +732,12 @@ export const CRON_EXPRESSION_MAX_LENGTH = 120;
762
732
  * fire on a second boundary is refused by the partition, because a minute is
763
733
  * the granularity both arms of recurrence promise.
764
734
  */
765
- export const cronExpressionSchema = z
735
+ export const cronExpressionSchema = /* @__PURE__ */ (() => z
766
736
  .string()
767
737
  .min(1, "must not be empty")
768
738
  .max(CRON_EXPRESSION_MAX_LENGTH, `must be at most ${String(CRON_EXPRESSION_MAX_LENGTH)} characters`)
769
739
  .refine((expression) => expression.startsWith("@") ||
770
- [5, 6].includes(expression.trim().split(/\s+/u).length), { message: "must be five cron fields, six fields, or an @-nickname" });
740
+ [5, 6].includes(expression.trim().split(/\s+/u).length), { message: "must be five cron fields, six fields, or an @-nickname" }))();
771
741
  /**
772
742
  * How a schedule recurs, as a caller reads it back.
773
743
  *
@@ -784,7 +754,7 @@ export const cronExpressionSchema = z
784
754
  * on that arm rather than optional, so a read always says which wall clock a
785
755
  * cron schedule is on instead of leaving the caller to assume UTC.
786
756
  */
787
- export const recurrenceSchema = z.discriminatedUnion("kind", [
757
+ export const recurrenceSchema = /* @__PURE__ */ (() => z.discriminatedUnion("kind", [
788
758
  /**
789
759
  * A one-shot, which carries no instant of its own.
790
760
  *
@@ -806,7 +776,7 @@ export const recurrenceSchema = z.discriminatedUnion("kind", [
806
776
  kind: z.literal("cron"),
807
777
  timeZone: timeZoneSchema,
808
778
  }),
809
- ]);
779
+ ]))();
810
780
  /** The customer-safe default for a schedule's recurrence kind. */
811
781
  export function defaultLatenessPolicyForRecurrence(kind) {
812
782
  return kind === "at" ? "catchUp" : "skipAhead";
@@ -834,12 +804,12 @@ export function defaultLatenessPolicyForRecurrence(kind) {
834
804
  */
835
805
  /** The most a schedule's name may hold; the generated one is cut to fit it. */
836
806
  export const SCHEDULE_NAME_MAX_LENGTH = 120;
837
- export const scheduleNameSchema = z
807
+ export const scheduleNameSchema = /* @__PURE__ */ (() => z
838
808
  .string()
839
809
  .trim()
840
810
  .min(1, "must not be blank")
841
- .max(SCHEDULE_NAME_MAX_LENGTH, `must be at most ${String(SCHEDULE_NAME_MAX_LENGTH)} characters`);
842
- export const scheduleSchema = z.object({
811
+ .max(SCHEDULE_NAME_MAX_LENGTH, `must be at most ${String(SCHEDULE_NAME_MAX_LENGTH)} characters`))();
812
+ export const scheduleSchema = /* @__PURE__ */ (() => z.object({
843
813
  autoPauseAfterFailures: autoPauseAfterFailuresSchema.optional(),
844
814
  consecutiveFailedRuns: z.number().int().nonnegative().optional(),
845
815
  autoPauseReason: autoPauseReasonSchema.nullable().optional(),
@@ -964,7 +934,7 @@ export const scheduleSchema = z.object({
964
934
  status: scheduleStatusSchema,
965
935
  updatedAt: timestampSchema,
966
936
  version: versionSchema,
967
- });
937
+ }))();
968
938
  /**
969
939
  * A page of schedules.
970
940
  *
@@ -975,7 +945,7 @@ export const scheduleSchema = z.object({
975
945
  * listing back through every partition it spans. Detail is where the occurrence
976
946
  * is authoritative, and detail is one call away.
977
947
  */
978
- export const schedulePageSchema = pageSchema(scheduleSchema);
948
+ export const schedulePageSchema = /* @__PURE__ */ (() => pageSchema(scheduleSchema))();
979
949
  function hasCompleteTimingEvidence(value) {
980
950
  return ((value.firstAttemptStartedAt === undefined) ===
981
951
  (value.firstAttemptLatenessMs === undefined) &&
@@ -1010,7 +980,7 @@ const timingEvidenceShape = {
1010
980
  * numbering starts again. Together `(schedule, generation, sequence)` is what
1011
981
  * makes an occurrence identifiable without depending on when it was written.
1012
982
  */
1013
- export const occurrenceSchema = z
983
+ export const occurrenceSchema = /* @__PURE__ */ (() => z
1014
984
  .object({
1015
985
  attemptCount: z.number().int().nonnegative(),
1016
986
  ...timingEvidenceShape,
@@ -1041,7 +1011,7 @@ export const occurrenceSchema = z
1041
1011
  .refine(hasConsistentTimingEligibility, {
1042
1012
  message: "timingEligibilityReason is required for a blocked population and absent otherwise",
1043
1013
  path: ["timingEligibilityReason"],
1044
- });
1014
+ }))();
1045
1015
  /**
1046
1016
  * One delivery attempt against one occurrence.
1047
1017
  *
@@ -1066,11 +1036,11 @@ export const occurrenceSchema = z
1066
1036
  * can look up in their own logs. Cookies, `Authorization` and
1067
1037
  * `WWW-Authenticate` have no representation here at all.
1068
1038
  */
1069
- export const attemptResponseHeaderSchema = z.object({
1039
+ export const attemptResponseHeaderSchema = /* @__PURE__ */ (() => z.object({
1070
1040
  /** Lowercase, from the published allowlist. */
1071
1041
  name: z.string().min(1).max(64),
1072
1042
  value: z.string().max(ATTEMPT_RESPONSE_HEADER_MAX_LENGTH),
1073
- });
1043
+ }))();
1074
1044
  /**
1075
1045
  * What a failing receiver said, bounded and access-controlled.
1076
1046
  *
@@ -1084,14 +1054,14 @@ export const attemptResponseHeaderSchema = z.object({
1084
1054
  * that is exactly the bound and a body that was cut at the bound are different
1085
1055
  * facts and only one of them should show a customer an ellipsis.
1086
1056
  */
1087
- export const attemptFailureSnippetSchema = z.object({
1057
+ export const attemptFailureSnippetSchema = /* @__PURE__ */ (() => z.object({
1088
1058
  /** The media type it was captured from. Not customer content. */
1089
1059
  contentType: z.string().min(1).max(128),
1090
1060
  text: z.string().max(ATTEMPT_FAILURE_SNIPPET_MAX_LENGTH),
1091
1061
  truncated: z.boolean(),
1092
- });
1062
+ }))();
1093
1063
  /** Stored diagnostic content, available only under the attempt's verified authority. */
1094
- export const attemptCapturedBodySchema = z.object({
1064
+ export const attemptCapturedBodySchema = /* @__PURE__ */ (() => z.object({
1095
1065
  contentType: z.string(),
1096
1066
  encoding: z.enum(["utf8", "base64"]),
1097
1067
  // Up to 10 KiB received bytes; credential masking can expand the representation.
@@ -1101,27 +1071,46 @@ export const attemptCapturedBodySchema = z.object({
1101
1071
  truncated: z.boolean(),
1102
1072
  redacted: z.boolean().optional(),
1103
1073
  incomplete: z.boolean().optional(),
1104
- });
1105
- export const attemptResponseSchema = z.object({
1074
+ }))();
1075
+ export const attemptResponseSchema = /* @__PURE__ */ (() => z.object({
1106
1076
  statusText: z.string(),
1107
1077
  headers: z.array(z.object({ name: z.string(), value: z.string() })),
1108
1078
  bodyState: z.enum(["captured", "empty", "expired", "not_captured"]),
1109
1079
  body: attemptCapturedBodySchema.optional(),
1110
- });
1111
- export const attemptRequestSchema = z.object({
1080
+ }))();
1081
+ export const attemptRequestSchema = /* @__PURE__ */ (() => z.object({
1112
1082
  method: z.enum(["GET", "POST", "PUT"]),
1113
1083
  url: z.string(),
1114
1084
  headers: z.array(z.object({ name: z.string(), value: z.string() })),
1115
1085
  body: z.string(),
1116
- });
1117
- export const attemptSchema = z
1118
- .object({
1086
+ }))();
1087
+ /** Shared validators for attempt search summaries and full attempt details. */
1088
+ export const attemptSearchSummaryShape = /* @__PURE__ */ (() => ({
1119
1089
  attemptNumber: z.number().int().positive(),
1120
- /** Present exactly when the attempt has been classified. */
1121
1090
  classifiedAt: timestampSchema.optional(),
1091
+ diagnostic: attemptDiagnosticSchema.optional(),
1092
+ durationMs: z
1093
+ .number()
1094
+ .int()
1095
+ .nonnegative()
1096
+ .max(ATTEMPT_DURATION_MAX_MS)
1097
+ .optional(),
1098
+ id: attemptIdSchema,
1099
+ occurrence: occurrenceIdSchema,
1100
+ remediation: attemptRemediationSchema.optional(),
1101
+ responseStatus: z.number().int().min(100).max(599).optional(),
1102
+ startedAt: timestampSchema,
1103
+ state: attemptStateSchema.optional(),
1104
+ trigger: attemptTriggerSchema,
1105
+ }))();
1106
+ export const attemptSchema = /* @__PURE__ */ (() => z
1107
+ .object({
1108
+ attemptNumber: attemptSearchSummaryShape.attemptNumber,
1109
+ /** Present exactly when the attempt has been classified. */
1110
+ classifiedAt: attemptSearchSummaryShape.classifiedAt,
1122
1111
  delivery: deliveryIdSchema,
1123
1112
  /** Safe classifier code; absent when durable evidence predates diagnostics. */
1124
- diagnostic: attemptDiagnosticSchema.optional(),
1113
+ diagnostic: attemptSearchSummaryShape.diagnostic,
1125
1114
  /**
1126
1115
  * Instrumented re-drives of the same dispatching occurrence under a new
1127
1116
  * dispatch epoch. Includes deliberate admission deferrals; this is not a
@@ -1129,14 +1118,9 @@ export const attemptSchema = z
1129
1118
  */
1130
1119
  dispatchRecoveries: z.int().nonnegative().optional(),
1131
1120
  /** Executor-observed elapsed time; absent when no durable timing survived. */
1132
- durationMs: z
1133
- .number()
1134
- .int()
1135
- .nonnegative()
1136
- .max(ATTEMPT_DURATION_MAX_MS)
1137
- .optional(),
1121
+ durationMs: attemptSearchSummaryShape.durationMs,
1138
1122
  ...timingEvidenceShape,
1139
- id: attemptIdSchema,
1123
+ id: attemptSearchSummaryShape.id,
1140
1124
  /**
1141
1125
  * Instrumented send authorizations granted after a later local alarm
1142
1126
  * replayed the original wake receipt. Preserves the attempt and delivery
@@ -1145,7 +1129,7 @@ export const attemptSchema = z
1145
1129
  * older responses.
1146
1130
  */
1147
1131
  localReceiptRecoveries: z.int().nonnegative().optional(),
1148
- occurrence: occurrenceIdSchema,
1132
+ occurrence: attemptSearchSummaryShape.occurrence,
1149
1133
  /**
1150
1134
  * How many times the watchdog took this attempt's send back and sent it
1151
1135
  * again: the send was authorized, and its outcome was never recorded
@@ -1156,7 +1140,7 @@ export const attemptSchema = z
1156
1140
  */
1157
1141
  rescues: z.int().positive().optional(),
1158
1142
  /** Stable next-action code paired with a diagnostic when one is known. */
1159
- remediation: attemptRemediationSchema.optional(),
1143
+ remediation: attemptSearchSummaryShape.remediation,
1160
1144
  /**
1161
1145
  * Compatibility text prefix, up to 4 KiB, derived from the retained
1162
1146
  * response when its media type is supported by legacy clients. Use
@@ -1170,10 +1154,10 @@ export const attemptSchema = z
1170
1154
  /** The fixed diagnostic-header allowlist, when a response carried any. */
1171
1155
  responseHeaders: z.array(attemptResponseHeaderSchema).max(8).optional(),
1172
1156
  /** Absent when no response was received at all. */
1173
- responseStatus: z.number().int().min(100).max(599).optional(),
1174
- startedAt: timestampSchema,
1175
- state: attemptStateSchema.optional(),
1176
- trigger: attemptTriggerSchema,
1157
+ responseStatus: attemptSearchSummaryShape.responseStatus,
1158
+ startedAt: attemptSearchSummaryShape.startedAt,
1159
+ state: attemptSearchSummaryShape.state,
1160
+ trigger: attemptSearchSummaryShape.trigger,
1177
1161
  })
1178
1162
  // Classification and its timestamp arrive together or not at all — the same
1179
1163
  // pairing the partition's CHECK constraint enforces. Independently optional
@@ -1212,30 +1196,30 @@ export const attemptSchema = z
1212
1196
  .refine(hasConsistentTimingEligibility, {
1213
1197
  message: "timingEligibilityReason is required for a blocked population and absent otherwise",
1214
1198
  path: ["timingEligibilityReason"],
1215
- });
1199
+ }))();
1216
1200
  /** An authoritative page over one schedule's retained occurrences. */
1217
- export const occurrencePageSchema = pageSchema(occurrenceSchema).extend({
1201
+ export const occurrencePageSchema = /* @__PURE__ */ (() => pageSchema(occurrenceSchema).extend({
1218
1202
  freshness: z.object({ kind: z.literal("authoritative") }),
1219
- });
1203
+ }))();
1220
1204
  /** A project-wide occurrence page and its plan's normal history boundary. */
1221
- export const projectOccurrencePageSchema = pageSchema(occurrenceSchema).extend({
1205
+ export const projectOccurrencePageSchema = /* @__PURE__ */ (() => pageSchema(occurrenceSchema).extend({
1222
1206
  freshness: z.object({ kind: z.literal("authoritative") }),
1223
1207
  retention: z.object({ from: timestampSchema }),
1224
- });
1208
+ }))();
1225
1209
  /** An authoritative occurrence detail response. */
1226
- export const occurrenceViewSchema = z.object({
1210
+ export const occurrenceViewSchema = /* @__PURE__ */ (() => z.object({
1227
1211
  freshness: z.object({ kind: z.literal("authoritative") }),
1228
1212
  occurrence: occurrenceSchema,
1229
- });
1213
+ }))();
1230
1214
  /** An authoritative page over one retained occurrence's immutable attempts. */
1231
- export const attemptPageSchema = pageSchema(attemptSchema).extend({
1215
+ export const attemptPageSchema = /* @__PURE__ */ (() => pageSchema(attemptSchema).extend({
1232
1216
  freshness: z.object({ kind: z.literal("authoritative") }),
1233
- });
1217
+ }))();
1234
1218
  /** An authoritative attempt detail or redelivery response. */
1235
- export const attemptViewSchema = z.object({
1219
+ export const attemptViewSchema = /* @__PURE__ */ (() => z.object({
1236
1220
  attempt: attemptSchema,
1237
1221
  freshness: z.object({ kind: z.literal("authoritative") }),
1238
- });
1222
+ }))();
1239
1223
  /**
1240
1224
  * A schedule together with the occurrence that is next to happen.
1241
1225
  *
@@ -1244,19 +1228,19 @@ export const attemptViewSchema = z.object({
1244
1228
  * that has to make a second request to answer it will cache the first answer and
1245
1229
  * be wrong.
1246
1230
  */
1247
- export const scheduleViewSchema = z.object({
1231
+ export const scheduleViewSchema = /* @__PURE__ */ (() => z.object({
1248
1232
  occurrence: occurrenceSchema,
1249
1233
  schedule: scheduleSchema,
1250
- });
1234
+ }))();
1251
1235
  /**
1252
1236
  * What a schedule create or replace answers: the schedule view, and — when the
1253
1237
  * request named its destination by `url` — where that endpoint's signing
1254
1238
  * secret is (W9-44). Present only then, because only then can the caller have
1255
1239
  * an endpoint whose secret it never held.
1256
1240
  */
1257
- export const scheduleWrittenViewSchema = scheduleViewSchema.extend({
1241
+ export const scheduleWrittenViewSchema = /* @__PURE__ */ (() => scheduleViewSchema.extend({
1258
1242
  endpointSigningSecret: signingSecretNoticeSchema.optional(),
1259
- });
1243
+ }))();
1260
1244
  /**
1261
1245
  * The four ways a caller may say when a schedule happens.
1262
1246
  *
@@ -1286,7 +1270,7 @@ export const RECURRENCE_REQUEST_FIELDS = [
1286
1270
  * `ambiguous_schedule`, and a scheduler that silently picks one of two instants
1287
1271
  * a customer named is the worst kind of helpful.
1288
1272
  */
1289
- export const scheduleRequestSchema = z
1273
+ export const scheduleRequestSchema = /* @__PURE__ */ (() => z
1290
1274
  .object({
1291
1275
  autoPauseAfterFailures: autoPauseAfterFailuresSchema.optional(),
1292
1276
  http: httpRequestSchema.optional(),
@@ -1520,7 +1504,7 @@ export const scheduleRequestSchema = z
1520
1504
  path: ["delivery", "completion"],
1521
1505
  });
1522
1506
  }
1523
- });
1507
+ }))();
1524
1508
  /** Resolve the lateness settings a create or replacement request runs under. */
1525
1509
  export function deriveLatenessSettings(request) {
1526
1510
  const recurrenceKind = request.cron !== undefined
@@ -409,7 +409,7 @@ export declare const CALLBACK_DELIVERY_PROTOCOL: {
409
409
  };
410
410
  readonly secret: "greatwait-signature-vector-key-not-a-credential";
411
411
  readonly signingInputBase64: "MjAyNi0wNy0yOFQxNTowMDowMC4wMDBaLmRsdl8wMTIzNDU2Nzg5YWJjZGVmZ2hqa21ucHFycy57InZlcnNpb24iOiIyMDI2LTA3LTAxIiwidHlwZSI6InNjaGVkdWxlLm9jY3VycmVuY2UiLCJzY2hlZHVsZUlkIjoic2NoXzAxMjM0NTY3ODlhYmNkZWZnaGprbW5wcXJzIiwib2NjdXJyZW5jZUlkIjoib2NjXzAxMjM0NTY3ODlhYmNkZWZnaGprbW5wcXJzIiwicGxhbm5lZEZvciI6IjIwMjYtMDctMjhUMTU6MDA6MDAuMDAwWiIsImF0dGVtcHQiOjEsImRhdGEiOnt9fQ==";
412
- readonly signingInputUtf8: "2026-07-28T15:00:00.000Z.dlv_0123456789abcdefghjkmnpqrs.{\"version\":\"2026-07-01\",\"type\":\"schedule.occurrence\",\"scheduleId\":\"sch_0123456789abcdefghjkmnpqrs\",\"occurrenceId\":\"occ_0123456789abcdefghjkmnpqrs\",\"plannedFor\":\"2026-07-28T15:00:00.000Z\",\"attempt\":1,\"data\":{}}";
412
+ readonly signingInputUtf8: string;
413
413
  };
414
414
  /**
415
415
  * The retired `2026-08-08` envelope **without** `completion`, kept as a known
@@ -445,7 +445,7 @@ export declare const CALLBACK_DELIVERY_PROTOCOL: {
445
445
  };
446
446
  readonly secret: "greatwait-signature-vector-key-not-a-credential";
447
447
  readonly signingInputBase64: "MjAyNi0wNy0yOFQxNTowMDowMC4wMDBaLmRsdl8wMTIzNDU2Nzg5YWJjZGVmZ2hqa21ucHFycy57InZlcnNpb24iOiIyMDI2LTA4LTA4IiwidHlwZSI6InNjaGVkdWxlLm9jY3VycmVuY2UiLCJzY2hlZHVsZUlkIjoic2NoXzAxMjM0NTY3ODlhYmNkZWZnaGprbW5wcXJzIiwib2NjdXJyZW5jZUlkIjoib2NjXzAxMjM0NTY3ODlhYmNkZWZnaGprbW5wcXJzIiwicGxhbm5lZEZvciI6IjIwMjYtMDctMjhUMTU6MDA6MDAuMDAwWiIsImF0dGVtcHQiOjEsInRyaWdnZXIiOnsia2luZCI6ImF1dG9tYXRpYyJ9LCJkYXRhIjp7fX0=";
448
- readonly signingInputUtf8: "2026-07-28T15:00:00.000Z.dlv_0123456789abcdefghjkmnpqrs.{\"version\":\"2026-08-08\",\"type\":\"schedule.occurrence\",\"scheduleId\":\"sch_0123456789abcdefghjkmnpqrs\",\"occurrenceId\":\"occ_0123456789abcdefghjkmnpqrs\",\"plannedFor\":\"2026-07-28T15:00:00.000Z\",\"attempt\":1,\"trigger\":{\"kind\":\"automatic\"},\"data\":{}}";
448
+ readonly signingInputUtf8: string;
449
449
  };
450
450
  /**
451
451
  * The retired `2026-08-08` envelope **with** `completion`, kept as a known
@@ -489,7 +489,7 @@ export declare const CALLBACK_DELIVERY_PROTOCOL: {
489
489
  };
490
490
  readonly secret: "greatwait-signature-vector-key-not-a-credential";
491
491
  readonly signingInputBase64: "MjAyNi0wNy0yOFQxNTowMDowMC4wMDBaLmRsdl8wMTIzNDU2Nzg5YWJjZGVmZ2hqa21ucHFycy57InZlcnNpb24iOiIyMDI2LTA4LTA4IiwidHlwZSI6InNjaGVkdWxlLm9jY3VycmVuY2UiLCJzY2hlZHVsZUlkIjoic2NoXzAxMjM0NTY3ODlhYmNkZWZnaGprbW5wcXJzIiwib2NjdXJyZW5jZUlkIjoib2NjXzAxMjM0NTY3ODlhYmNkZWZnaGprbW5wcXJzIiwicGxhbm5lZEZvciI6IjIwMjYtMDctMjhUMTU6MDA6MDAuMDAwWiIsImF0dGVtcHQiOjEsImNvbXBsZXRpb24iOnsidG9rZW4iOiJ2MS5leGFtcGxlLWNsYWltLW5vdC1hLXJlYWwtdG9rZW4uZXhhbXBsZS1tYWMiLCJ1cmwiOiJodHRwczovL2dyZWF0d2FpdC1zY2hlZHVsZXIuZXhhbXBsZS9jYWxsYmFja3MvY29tcGxldGlvbiJ9LCJ0cmlnZ2VyIjp7ImtpbmQiOiJhdXRvbWF0aWMifSwiZGF0YSI6e319";
492
- readonly signingInputUtf8: "2026-07-28T15:00:00.000Z.dlv_0123456789abcdefghjkmnpqrs.{\"version\":\"2026-08-08\",\"type\":\"schedule.occurrence\",\"scheduleId\":\"sch_0123456789abcdefghjkmnpqrs\",\"occurrenceId\":\"occ_0123456789abcdefghjkmnpqrs\",\"plannedFor\":\"2026-07-28T15:00:00.000Z\",\"attempt\":1,\"completion\":{\"token\":\"v1.example-claim-not-a-real-token.example-mac\",\"url\":\"https://greatwait-scheduler.example/callbacks/completion\"},\"trigger\":{\"kind\":\"automatic\"},\"data\":{}}";
492
+ readonly signingInputUtf8: string;
493
493
  };
494
494
  /**
495
495
  * A redelivery, which is the only vector that discriminates this change.
@@ -530,7 +530,7 @@ export declare const CALLBACK_DELIVERY_PROTOCOL: {
530
530
  };
531
531
  readonly secret: "greatwait-signature-vector-key-not-a-credential";
532
532
  readonly signingInputBase64: "MjAyNi0wNy0yOFQxNTowMDowMC4wMDBaLmRsdl8wMTIzNDU2Nzg5YWJjZGVmZ2hqa21ucHFycy57InZlcnNpb24iOiIyMDI2LTA4LTIzIiwidHlwZSI6InNjaGVkdWxlLm9jY3VycmVuY2UiLCJzY2hlZHVsZUlkIjoic2NoXzAxMjM0NTY3ODlhYmNkZWZnaGprbW5wcXJzIiwib2NjdXJyZW5jZUlkIjoib2NjXzAxMjM0NTY3ODlhYmNkZWZnaGprbW5wcXJzIiwicGxhbm5lZEZvciI6IjIwMjYtMDctMjhUMTU6MDA6MDAuMDAwWiIsImF0dGVtcHQiOjIsImNvbXBsZXRpb24iOnsidG9rZW4iOiJ2Mi5leGFtcGxlLWNsYWltLW5vdC1hLXJlYWwtdG9rZW4uZXhhbXBsZS1tYWMiLCJ1cmwiOiJodHRwczovL2dyZWF0d2FpdC1zY2hlZHVsZXIuZXhhbXBsZS9jYWxsYmFja3MvY29tcGxldGlvbiIsImRlYWRsaW5lIjoiMjAyNi0wNy0yOFQxNTowMDowNS4wMDBaIn0sInRyaWdnZXIiOnsia2luZCI6InJlZGVsaXZlcnkiLCJzb3VyY2VBdHRlbXB0SWQiOiJhdHRfMDEyMzQ1Njc4OWFiY2RlZmdoamttbnBxcnMifSwiZGF0YSI6e319";
533
- readonly signingInputUtf8: "2026-07-28T15:00:00.000Z.dlv_0123456789abcdefghjkmnpqrs.{\"version\":\"2026-08-23\",\"type\":\"schedule.occurrence\",\"scheduleId\":\"sch_0123456789abcdefghjkmnpqrs\",\"occurrenceId\":\"occ_0123456789abcdefghjkmnpqrs\",\"plannedFor\":\"2026-07-28T15:00:00.000Z\",\"attempt\":2,\"completion\":{\"token\":\"v2.example-claim-not-a-real-token.example-mac\",\"url\":\"https://greatwait-scheduler.example/callbacks/completion\",\"deadline\":\"2026-07-28T15:00:05.000Z\"},\"trigger\":{\"kind\":\"redelivery\",\"sourceAttemptId\":\"att_0123456789abcdefghjkmnpqrs\"},\"data\":{}}";
533
+ readonly signingInputUtf8: string;
534
534
  };
535
535
  /**
536
536
  * The ordinary current-version delivery: automatic, and carrying completion
@@ -566,7 +566,7 @@ export declare const CALLBACK_DELIVERY_PROTOCOL: {
566
566
  };
567
567
  readonly secret: "greatwait-signature-vector-key-not-a-credential";
568
568
  readonly signingInputBase64: "MjAyNi0wNy0yOFQxNTowMDowMC4wMDBaLmRsdl8wMTIzNDU2Nzg5YWJjZGVmZ2hqa21ucHFycy57InZlcnNpb24iOiIyMDI2LTA4LTIzIiwidHlwZSI6InNjaGVkdWxlLm9jY3VycmVuY2UiLCJzY2hlZHVsZUlkIjoic2NoXzAxMjM0NTY3ODlhYmNkZWZnaGprbW5wcXJzIiwib2NjdXJyZW5jZUlkIjoib2NjXzAxMjM0NTY3ODlhYmNkZWZnaGprbW5wcXJzIiwicGxhbm5lZEZvciI6IjIwMjYtMDctMjhUMTU6MDA6MDAuMDAwWiIsImF0dGVtcHQiOjEsImNvbXBsZXRpb24iOnsidG9rZW4iOiJ2Mi5leGFtcGxlLWNsYWltLW5vdC1hLXJlYWwtdG9rZW4uZXhhbXBsZS1tYWMiLCJ1cmwiOiJodHRwczovL2dyZWF0d2FpdC1zY2hlZHVsZXIuZXhhbXBsZS9jYWxsYmFja3MvY29tcGxldGlvbiIsImRlYWRsaW5lIjoiMjAyNi0wNy0yOFQxNTowMDowNS4wMDBaIn0sInRyaWdnZXIiOnsia2luZCI6ImF1dG9tYXRpYyJ9LCJkYXRhIjp7fX0=";
569
- readonly signingInputUtf8: "2026-07-28T15:00:00.000Z.dlv_0123456789abcdefghjkmnpqrs.{\"version\":\"2026-08-23\",\"type\":\"schedule.occurrence\",\"scheduleId\":\"sch_0123456789abcdefghjkmnpqrs\",\"occurrenceId\":\"occ_0123456789abcdefghjkmnpqrs\",\"plannedFor\":\"2026-07-28T15:00:00.000Z\",\"attempt\":1,\"completion\":{\"token\":\"v2.example-claim-not-a-real-token.example-mac\",\"url\":\"https://greatwait-scheduler.example/callbacks/completion\",\"deadline\":\"2026-07-28T15:00:05.000Z\"},\"trigger\":{\"kind\":\"automatic\"},\"data\":{}}";
569
+ readonly signingInputUtf8: string;
570
570
  };
571
571
  readonly unicodeTestVector: {
572
572
  readonly envelope: {
@@ -600,7 +600,7 @@ export declare const CALLBACK_DELIVERY_PROTOCOL: {
600
600
  };
601
601
  readonly secret: "greatwait-signature-vector-key-not-a-credential";
602
602
  readonly signingInputBase64: "MjAyNi0wNy0yOFQxNTowMDowMC4wMDBaLmRsdl8wMTIzNDU2Nzg5YWJjZGVmZ2hqa21ucHFycy57InZlcnNpb24iOiIyMDI2LTA4LTIzIiwidHlwZSI6InNjaGVkdWxlLm9jY3VycmVuY2UiLCJzY2hlZHVsZUlkIjoic2NoXzAxMjM0NTY3ODlhYmNkZWZnaGprbW5wcXJzIiwib2NjdXJyZW5jZUlkIjoib2NjXzAxMjM0NTY3ODlhYmNkZWZnaGprbW5wcXJzIiwicGxhbm5lZEZvciI6IjIwMjYtMDctMjhUMTU6MDA6MDAuMDAwWiIsImF0dGVtcHQiOjEsImNvbXBsZXRpb24iOnsidG9rZW4iOiJ2Mi5leGFtcGxlLWNsYWltLW5vdC1hLXJlYWwtdG9rZW4uZXhhbXBsZS1tYWMiLCJ1cmwiOiJodHRwczovL2dyZWF0d2FpdC1zY2hlZHVsZXIuZXhhbXBsZS9jYWxsYmFja3MvY29tcGxldGlvbiIsImRlYWRsaW5lIjoiMjAyNi0wNy0yOFQxNTowMDowNS4wMDBaIn0sInRyaWdnZXIiOnsia2luZCI6ImF1dG9tYXRpYyJ9LCJkYXRhIjp7Im5vdGUiOiJjYWbDqSDimIMifX0=";
603
- readonly signingInputUtf8: "2026-07-28T15:00:00.000Z.dlv_0123456789abcdefghjkmnpqrs.{\"version\":\"2026-08-23\",\"type\":\"schedule.occurrence\",\"scheduleId\":\"sch_0123456789abcdefghjkmnpqrs\",\"occurrenceId\":\"occ_0123456789abcdefghjkmnpqrs\",\"plannedFor\":\"2026-07-28T15:00:00.000Z\",\"attempt\":1,\"completion\":{\"token\":\"v2.example-claim-not-a-real-token.example-mac\",\"url\":\"https://greatwait-scheduler.example/callbacks/completion\",\"deadline\":\"2026-07-28T15:00:05.000Z\"},\"trigger\":{\"kind\":\"automatic\"},\"data\":{\"note\":\"café ☃\"}}";
603
+ readonly signingInputUtf8: string;
604
604
  };
605
605
  readonly version: "2026-08-23";
606
606
  };