@michaelrwalker/stagehand 0.4.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/script.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { StandardSchemaV1 } from "@standard-schema/spec";
2
- import type { Awaitable, CacheMode, CleanField, Cleaned, Merge, PhaseOptions, RunResult, ScriptOptions, StepDef } from "./types.js";
2
+ import type { Awaitable, CacheMode, CacheSource, CleanField, Cleaned, Merge, PhaseOptions, RunResult, ScriptOptions, SlotValue, StepDef } from "./types.js";
3
3
  /**
4
4
  * Keys for the phantom markers on {@link Script} and {@link Routine}. Exported
5
5
  * only because declaration emit has to name them; there is no runtime value
@@ -15,7 +15,7 @@ export declare const PRODUCES: unique symbol;
15
15
  * Ctx>()` call that declared the routine, `Out` and `Reserved` from the steps
16
16
  * it went on to add.
17
17
  */
18
- export interface Routine<In, Ctx extends object, Out extends object, Reserved extends PropertyKey> {
18
+ export interface Routine<In, Ctx extends object, Out extends object, Reserved extends PropertyKey, Slots = {}> {
19
19
  /**
20
20
  * Phantom. `In` and `Ctx` sit in contravariant position here, which is what
21
21
  * makes a mount site prove it already offers at least this much input and
@@ -26,9 +26,18 @@ export interface Routine<In, Ctx extends object, Out extends object, Reserved ex
26
26
  ctx: Ctx;
27
27
  }) => void;
28
28
  /** Phantom. Carries what the routine contributes so `use` can infer it. */
29
- readonly [PRODUCES]: Out;
29
+ readonly [PRODUCES]: [Out, Slots];
30
30
  readonly name: string;
31
31
  }
32
+ /**
33
+ * A mounted fragment's slots, as the host addresses them. `as` renames the
34
+ * phases, so it has to rename their slots too — otherwise every
35
+ * `cache.clear("Fetch")` written against an unprefixed mount would keep
36
+ * compiling while silently addressing nothing.
37
+ */
38
+ export type Mounted<As extends string | undefined, Slots> = [As] extends [string] ? {
39
+ [K in keyof Slots as `${As} / ${K & string}`]: Slots[K];
40
+ } : Slots;
32
41
  export interface MountOptions {
33
42
  /**
34
43
  * Prefix for the routine's phase names — `"Amazon"` turns `Fetch` into
@@ -46,6 +55,32 @@ export type MountInput<In, Ctx, SubIn> = SubIn | ((context: {
46
55
  input: In;
47
56
  ctx: Ctx;
48
57
  }) => Awaitable<SubIn>);
58
+ /**
59
+ * The phase currently being built, carried so its slot can be committed once
60
+ * the phase closes — which is the first moment its delta is fully known.
61
+ *
62
+ * `name` is `never` for a phase that declared no cache, so committing it adds
63
+ * nothing: `Record<never, V>` is `{}`. That is also the starting state, which
64
+ * is why no separate "is anything open" flag is needed.
65
+ */
66
+ export interface OpenPhase {
67
+ name: string | never;
68
+ /** The `schema`'s output type, or `unknown` when none was declared. */
69
+ schema: unknown;
70
+ /** What this phase's steps have contributed so far. */
71
+ delta: object;
72
+ }
73
+ export type ClosedPhase = {
74
+ name: never;
75
+ schema: unknown;
76
+ delta: {};
77
+ };
78
+ /** Fold the open phase's slot into the map. A no-op for uncached phases. */
79
+ export type Commit<Slots, Open extends OpenPhase> = Slots & Record<Open["name"], SlotValue<Open["schema"], Open["delta"]>>;
80
+ /** Phase options with `cache` required, so the cached overload is unambiguous. */
81
+ export type CachedPhaseOptions<In, Ctx, Value> = Omit<PhaseOptions<In, Ctx>, "cache"> & {
82
+ cache: CacheSource<In, Ctx, Value>;
83
+ };
49
84
  export interface RunOptions {
50
85
  /** Cancel the run from the outside. */
51
86
  signal?: AbortSignal;
@@ -83,7 +118,7 @@ export interface RunOptions {
83
118
  * The third parameter is inferred too: it collects the keys steps reserved
84
119
  * through `rollbackKeys`, which is how `clean` knows what it may not remove.
85
120
  */
86
- export declare class Script<In = void, Ctx extends object = {}, Reserved extends PropertyKey = never> {
121
+ export declare class Script<In = void, Ctx extends object = {}, Reserved extends PropertyKey = never, Slots = {}, Open extends OpenPhase = ClosedPhase> {
87
122
  /**
88
123
  * Phantom, erased at compile time. `run` is a *method*, so its parameter
89
124
  * compares bivariantly and `In` would otherwise carry no safety across two
@@ -123,11 +158,21 @@ export declare class Script<In = void, Ctx extends object = {}, Reserved extends
123
158
  defineInput<TSchema>(schema: StandardSchemaV1<unknown, TSchema>): Script<TSchema, Ctx, Reserved>;
124
159
  /** Validate `input` against the schema from `defineInput`, if any. */
125
160
  private validateInput;
161
+ /**
162
+ * Open a cached phase. Its name becomes a slot addressable through
163
+ * `context.cache` in every step declared after it — typed as the phase's own
164
+ * delta, or as the `schema`'s output when one is given.
165
+ */
166
+ addPhase<const Name extends string, Value = unknown>(name: Name, options: CachedPhaseOptions<In, Ctx, Value>): Script<In, Ctx, Reserved, Commit<Slots, Open>, {
167
+ name: Name;
168
+ schema: Value;
169
+ delta: {};
170
+ }>;
126
171
  /** Open a new phase. Subsequent `addStep` calls land in it. */
127
- addPhase(name: string, options?: PhaseOptions<In, Ctx>): Script<In, Ctx, Reserved>;
172
+ addPhase(name: string, options?: PhaseOptions<In, Ctx>): Script<In, Ctx, Reserved, Commit<Slots, Open>, ClosedPhase>;
128
173
  /** Open a phase and populate it inside a callback, keeping the type flow. */
129
- addPhase<Next extends object, NextReserved extends PropertyKey>(name: string, build: (script: Script<In, Ctx, Reserved>) => Script<In, Next, NextReserved>): Script<In, Next, NextReserved>;
130
- addPhase<Next extends object, NextReserved extends PropertyKey>(name: string, options: PhaseOptions<In, Ctx>, build: (script: Script<In, Ctx, Reserved>) => Script<In, Next, NextReserved>): Script<In, Next, NextReserved>;
174
+ addPhase<Next extends object, NextReserved extends PropertyKey, NextSlots, NextOpen extends OpenPhase>(name: string, build: (script: Script<In, Ctx, Reserved, Commit<Slots, Open>, ClosedPhase>) => Script<In, Next, NextReserved, NextSlots, NextOpen>): Script<In, Next, NextReserved, NextSlots, NextOpen>;
175
+ addPhase<Next extends object, NextReserved extends PropertyKey, NextSlots, NextOpen extends OpenPhase>(name: string, options: PhaseOptions<In, Ctx>, build: (script: Script<In, Ctx, Reserved, Commit<Slots, Open>, ClosedPhase>) => Script<In, Next, NextReserved, NextSlots, NextOpen>): Script<In, Next, NextReserved, NextSlots, NextOpen>;
131
176
  /**
132
177
  * Append a step to the current phase. Whatever the handler resolves to is
133
178
  * merged into the context and becomes visible to every later step; whatever
@@ -136,7 +181,11 @@ export declare class Script<In = void, Ctx extends object = {}, Reserved extends
136
181
  * @throws {StepDefinitionError} if `clean` names a key reserved by some
137
182
  * step's `rollbackKeys`.
138
183
  */
139
- addStep<Out extends object | void, const RollbackKeys extends readonly PropertyKey[] = readonly [], const CleanKeys extends readonly PropertyKey[] = readonly []>(def: StepDef<In, Ctx, Out, RollbackKeys> & CleanField<Ctx, Reserved, CleanKeys>): Script<In, Cleaned<Merge<Ctx, Out>, CleanKeys[number]>, Reserved | RollbackKeys[number]>;
184
+ addStep<Out extends object | void, const RollbackKeys extends readonly PropertyKey[] = readonly [], const CleanKeys extends readonly PropertyKey[] = readonly []>(def: StepDef<In, Ctx, Out, RollbackKeys, Slots> & CleanField<Ctx, Reserved, CleanKeys>): Script<In, Cleaned<Merge<Ctx, Out>, CleanKeys[number]>, Reserved | RollbackKeys[number], Slots, {
185
+ name: Open["name"];
186
+ schema: Open["schema"];
187
+ delta: Cleaned<Merge<Open["delta"], Out>, CleanKeys[number]>;
188
+ }>;
140
189
  /**
141
190
  * Splice a reusable fragment into this script. Its phases land here in
142
191
  * order, and everything it produced is merged into the context — so the
@@ -163,14 +212,20 @@ export declare class Script<In = void, Ctx extends object = {}, Reserved extends
163
212
  * @throws {DuplicateNameError} if a phase it brings is already defined here.
164
213
  * Mount the same routine twice by naming each mount with `as`.
165
214
  */
166
- use<SubIn, Out extends object, R extends PropertyKey>(routine: Routine<SubIn, Ctx, Out, R>, options: MountOptions & {
215
+ use<SubIn, Out extends object, R extends PropertyKey, RS, const As extends string | undefined = undefined>(routine: Routine<SubIn, Ctx, Out, R, RS>, options: {
216
+ as?: As;
167
217
  input: MountInput<In, Ctx, SubIn>;
168
- }): Script<In, Merge<Ctx, Out>, Reserved | R>;
169
- use<SubIn, Out extends object, R extends PropertyKey>(script: Script<SubIn, Out, R>, options: MountOptions & {
218
+ }): Script<In, Merge<Ctx, Out>, Reserved | R, Commit<Slots, Open> & Mounted<As, RS>, ClosedPhase>;
219
+ use<SubIn, Out extends object, R extends PropertyKey, SS, SO extends OpenPhase, const As extends string | undefined = undefined>(script: Script<SubIn, Out, R, SS, SO>, options: {
220
+ as?: As;
170
221
  input: MountInput<In, Ctx, SubIn>;
171
- }): Script<In, Merge<Ctx, Out>, Reserved | R>;
172
- use<Out extends object, R extends PropertyKey>(script: Script<In, Out, R>, options?: MountOptions): Script<In, Merge<Ctx, Out>, Reserved | R>;
173
- use<Out extends object, R extends PropertyKey>(routine: Routine<In, Ctx, Out, R>, options?: MountOptions): Script<In, Merge<Ctx, Out>, Reserved | R>;
222
+ }): Script<In, Merge<Ctx, Out>, Reserved | R, Commit<Slots, Open> & Mounted<As, Commit<SS, SO>>, ClosedPhase>;
223
+ use<Out extends object, R extends PropertyKey, SS, SO extends OpenPhase, const As extends string | undefined = undefined>(script: Script<In, Out, R, SS, SO>, options?: {
224
+ as?: As;
225
+ }): Script<In, Merge<Ctx, Out>, Reserved | R, Commit<Slots, Open> & Mounted<As, Commit<SS, SO>>, ClosedPhase>;
226
+ use<Out extends object, R extends PropertyKey, RS, const As extends string | undefined = undefined>(routine: Routine<In, Ctx, Out, R, RS>, options?: {
227
+ as?: As;
228
+ }): Script<In, Merge<Ctx, Out>, Reserved | R, Commit<Slots, Open> & Mounted<As, RS>, ClosedPhase>;
174
229
  /** Every step name, in execution order — handy for tests and docs. */
175
230
  outline(): Array<{
176
231
  phase: string;
@@ -209,7 +264,7 @@ export declare class Script<In = void, Ctx extends object = {}, Reserved extends
209
264
  * `rollbackKeys` works the same here, and the keys it names stay reserved once
210
265
  * the step is handed to `addStep`.
211
266
  */
212
- export declare function stepFor<In, Ctx extends object = {}>(): <Out extends object | void, const RollbackKeys extends readonly PropertyKey[] = readonly []>(def: StepDef<In, Ctx, Out, RollbackKeys>) => StepDef<In, Ctx, Out, RollbackKeys>;
267
+ export declare function stepFor<In, Ctx extends object = {}, Slots = {}>(): <Out extends object | void, const RollbackKeys extends readonly PropertyKey[] = readonly []>(def: StepDef<In, Ctx, Out, RollbackKeys, Slots>) => StepDef<In, Ctx, Out, RollbackKeys, Slots>;
213
268
  /**
214
269
  * Declare phases and steps away from any particular script, then mount them
215
270
  * with {@link Script.use}.
@@ -234,7 +289,7 @@ export declare function stepFor<In, Ctx extends object = {}>(): <Out extends obj
234
289
  * A routine owns whole phases, so phase-level options — `when`, `cache` —
235
290
  * travel with it.
236
291
  */
237
- export declare function routineFor<In, Ctx extends object = {}>(): <Out extends object, R extends PropertyKey>(name: string, build: (script: Script<In, Ctx, never>) => Script<In, Out, R>) => Routine<In, Ctx, Out, R>;
292
+ export declare function routineFor<In, Ctx extends object = {}>(): <Out extends object, R extends PropertyKey, S, O extends OpenPhase>(name: string, build: (script: Script<In, Ctx, never>) => Script<In, Out, R, S, O>) => Routine<In, Ctx, Out, R, Commit<S, O>>;
238
293
  /** Convenience factory so callers can skip `new`. */
239
294
  export declare function script<In = void>(options?: ScriptOptions | string): Script<In, {}>;
240
295
  //# sourceMappingURL=script.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../src/script.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../src/script.ts"],"names":[],"mappings":"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"}
package/dist/script.js CHANGED
@@ -1,4 +1,4 @@
1
- import { normalizeCache, phaseSlot, readCache, stepSlot, writeCache } from "./cache.js";
1
+ import { createCacheHandle, normalizeCache, phaseSlot, readCache, stepSlot, writeCache, } from "./cache.js";
2
2
  import { createRollbackContext, createStepContext } from "./context.js";
3
3
  import { DuplicateNameError, ScriptAbortedError, SchemaValidationError, StepDefinitionError, StepTimeoutError, isAbort, } from "./errors.js";
4
4
  import { errorMessage } from "./state.js";
@@ -235,6 +235,28 @@ export class Script {
235
235
  };
236
236
  if (this.options.description !== undefined)
237
237
  state.description = this.options.description;
238
+ // Every slot this script declares, for `context.cache`. Ordering is
239
+ // enforced by the types; at runtime the whole table is available.
240
+ const slots = new Map();
241
+ for (const phase of this.definition) {
242
+ const phaseCache = normalizeCache(phase.options.cache);
243
+ if (phaseCache) {
244
+ slots.set(phaseSlot(phase.name), {
245
+ store: phaseCache.store,
246
+ schema: Boolean(phaseCache.schema),
247
+ });
248
+ }
249
+ for (const step of phase.steps) {
250
+ const stepCache = normalizeCache(step.cache);
251
+ if (stepCache) {
252
+ slots.set(stepSlot(phase.name, step.name), {
253
+ store: stepCache.store,
254
+ schema: Boolean(stepCache.schema),
255
+ });
256
+ }
257
+ }
258
+ }
259
+ const cache = createCacheHandle(slots);
238
260
  const renderer = createRenderer({
239
261
  ...(this.options.plain !== undefined ? { plain: this.options.plain } : {}),
240
262
  ...(this.options.silent !== undefined ? { silent: this.options.silent } : {}),
@@ -350,7 +372,7 @@ export class Script {
350
372
  renderer.refresh();
351
373
  let output;
352
374
  try {
353
- output = await this.executeStep(item, phaseInput, ctx, runController.signal, renderer);
375
+ output = await this.executeStep(item, phaseInput, ctx, runController.signal, renderer, cache);
354
376
  item.state.status = "success";
355
377
  item.state.endedAt = performance.now();
356
378
  delete item.state.statusText;
@@ -390,7 +412,7 @@ export class Script {
390
412
  if (failure) {
391
413
  state.status = isAbort(failure.error) ? "aborted" : "failed";
392
414
  state.failure = failure;
393
- await this.unwind(completed, failure, ctx, state, rollbacks, rollbackController.signal, renderer);
415
+ await this.unwind(completed, failure, ctx, cache, state, rollbacks, rollbackController.signal, renderer);
394
416
  }
395
417
  else {
396
418
  state.status = "success";
@@ -439,7 +461,7 @@ export class Script {
439
461
  };
440
462
  }
441
463
  /** Retry + timeout wrapper around a single handler invocation. */
442
- async executeStep(item, input, ctx, runSignal, renderer) {
464
+ async executeStep(item, input, ctx, runSignal, renderer, cache) {
443
465
  const retry = item.def.retry;
444
466
  const maxAttempts = Math.max(1, retry?.attempts ?? 1);
445
467
  let lastError;
@@ -459,7 +481,7 @@ export class Script {
459
481
  : setTimeout(() => controller.abort(new StepTimeoutError(item.def.name, timeoutMs)), timeoutMs);
460
482
  const bail = abortRejection(controller.signal);
461
483
  try {
462
- const context = createStepContext({ renderer, step: item.state, phaseName: item.phaseName }, input, ctx, controller.signal, attempt);
484
+ const context = createStepContext({ renderer, step: item.state, phaseName: item.phaseName, cache }, input, ctx, controller.signal, attempt);
463
485
  return await Promise.race([
464
486
  Promise.resolve(item.def.handler(context)),
465
487
  bail.promise,
@@ -487,7 +509,7 @@ export class Script {
487
509
  throw lastError;
488
510
  }
489
511
  /** Compensate completed steps in reverse order. */
490
- async unwind(completed, failure, ctx, state, rollbacks, signal, renderer) {
512
+ async unwind(completed, failure, ctx, cache, state, rollbacks, signal, renderer) {
491
513
  const mode = this.options.rollback ?? "all";
492
514
  if (mode === "none")
493
515
  return;
@@ -503,7 +525,7 @@ export class Script {
503
525
  entry.runtime.state.status = "rolling-back";
504
526
  renderer.refresh();
505
527
  try {
506
- const context = createRollbackContext({ renderer, step: entry.runtime.state, phaseName: entry.runtime.phaseName },
528
+ const context = createRollbackContext({ renderer, step: entry.runtime.state, phaseName: entry.runtime.phaseName, cache },
507
529
  // The input this step actually ran with — a mounted fragment's
508
530
  // rollback sees its mount's input, not the host's.
509
531
  entry.input,
@@ -1 +1 @@
1
- {"version":3,"file":"script.js","sourceRoot":"","sources":["../src/script.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,OAAO,GACR,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAkD,MAAM,YAAY,CAAC;AAiB1F,OAAO,EAAE,cAAc,EAAiB,MAAM,kBAAkB,CAAC;AA6EjE;;;GAGG;AACH,MAAM,MAAM,GAAG,IAAI,OAAO,EAAuB,CAAC;AAoClD,gFAAgF;AAChF,iFAAiF;AACjF,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,OAAO,MAAM;IAUA,OAAO,CAAgB;IACvB,UAAU,GAAsB,EAAE,CAAC;IACnC,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IAC7B,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IAChD,gFAAgF;IACxE,SAAS,GAAG,KAAK,CAAC;IAClB,OAAO,CAA+B;IAE9C,YAAY,UAAkC,EAAE;QAC9C,IAAI,CAAC,OAAO,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QACzE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;YACf,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,QAAQ;YACnC,MAAM,EAAE,IAAI,CAAC,UAAU;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,WAAW,CAAU,MAA0C;QAC7D,IAAI,CAAC,OAAO,GAAG,MAA0B,CAAC;QAC1C,OAAO,IAAiD,CAAC;IAC3D,CAAC;IAED,sEAAsE;IAC9D,KAAK,CAAC,aAAa,CAAC,KAAS;QACnC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/D,IAAI,MAAM,CAAC,MAAM;YAAE,MAAM,IAAI,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClE,OAAO,MAAM,CAAC,KAAW,CAAC;IAC5B,CAAC;IAcD,QAAQ,CACN,IAAY,EACZ,cAAqE,EACrE,UAAuC;QAEvC,MAAM,KAAK,GACT,OAAO,cAAc,KAAK,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC;QACrE,MAAM,OAAO,GACX,OAAO,cAAc,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;QAErE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACnB,IAAI;YACJ,OAAO,EAAE,OAAyC;YAClD,KAAK,EAAE,EAAE;SACV,CAAC,CAAC;QAEH,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC,IAAa,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;OAOG;IACH,OAAO,CAKL,GAA+E;QAE/E,MAAM,IAAI,GAAG,GAA4B,CAAC;QAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;QAE7C,2EAA2E;QAC3E,qDAAqD;QACrD,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CACzC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAC9D,CAAC;QACF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,mBAAmB,CAC3B,IAAI,CAAC,IAAI,EACT,SAAS,IAAI,CAAC,IAAI,kBAAkB,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;gBACnF,0BAA0B,CAC7B,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,YAAY;YAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEvD,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAClC,0EAA0E;QAC1E,sEAAsE;QACtE,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAChE,MAAM,IAAI,kBAAkB,CAC1B,MAAM,EACN,IAAI,CAAC,IAAI,EACT,SAAS,IAAI,CAAC,IAAI,kCAAkC,KAAK,CAAC,IAAI,IAAI,CACnE,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,OAAO,IAIN,CAAC;IACJ,CAAC;IAgDD,GAAG,CAAC,MAAc,EAAE,UAA8C,EAAE;QAClE,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,mBAAmB,CAC3B,KAAK,EACL,2EAA2E,CAC5E,CAAC;QACJ,CAAC;QAED,0EAA0E;QAC1E,gEAAgE;QAChE,MAAM,KAAK,GACT,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAE7D,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,EAAE,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;YACvE,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACrC,sEAAsE;YACtE,kEAAkE;YAClE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBACnB,IAAI;gBACJ,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;gBACvB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC5B,CAAC,CAAC;QACL,CAAC;QAED,sEAAsE;QACtE,uEAAuE;QACvE,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAExD,0EAA0E;QAC1E,mCAAmC;QACnC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sEAAsE;IACtE,OAAO;QACL,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACrC,KAAK,EAAE,KAAK,CAAC,IAAI;YACjB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;SAC5C,CAAC,CAAC,CAAC;IACN,CAAC;IAEO,YAAY;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QACxC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,mBAAmB,CAC3B,SAAS,EACT,mCAAmC,IAAI,CAAC,IAAI,mCAAmC;gBAC7E,iDAAiD,CACpD,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAoB,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QAC3E,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACK,cAAc,CAAC,IAAY,EAAE,IAAa;QAChD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC1B,OAAO;QACT,CAAC;QACD,MAAM,IAAI,kBAAkB,CAC1B,OAAO,EACP,IAAI,EACJ,IAAI;YACF,CAAC,CAAC,UAAU,IAAI,WAAW,IAAI,uCAAuC;gBAClE,qEAAqE;YACzE,CAAC,CAAC,UAAU,IAAI,sCAAsC,CACzD,CAAC;IACJ,CAAC;IAED,8EAA8E;IAC9E,+EAA+E;IAC/E,8EAA8E;IAE9E,KAAK,CAAC,GAAG,CAAC,KAAS,EAAE,aAAyB,EAAE;QAC9C,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAExC,MAAM,OAAO,GAAkB,EAAE,CAAC;QAClC,MAAM,MAAM,GAAiB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;YACrE,MAAM,KAAK,GAAgB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBACjD,MAAM,KAAK,GAAc;oBACvB,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,UAAU;oBACV,MAAM,EAAE,SAAS;oBACjB,QAAQ,EAAE,CAAC;oBACX,KAAK,EAAE,EAAE;oBACT,IAAI,EAAE,EAAE;oBACR,WAAW,EAAE,OAAO,GAAG,CAAC,QAAQ,KAAK,UAAU;iBAChD,CAAC;gBACF,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS;oBAAE,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;gBACvE,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBACpD,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;YAEH,MAAM,UAAU,GAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;YAC3D,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC5C,UAAU,CAAC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;YACrD,CAAC;YACD,OAAO,UAAU,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,MAAM,KAAK,GAAa;YACtB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,QAAQ;YACnC,MAAM;YACN,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,WAAW,CAAC,GAAG,EAAE;YAC5B,aAAa,EAAE,CAAC;YAChB,gBAAgB,EAAE,CAAC;YACnB,OAAO,EAAE,EAAE;SACZ,CAAC;QACF,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS;YAAE,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QAEzF,MAAM,QAAQ,GAAG,cAAc,CAAC;YAC9B,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1E,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7E,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChG,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,IAAI,eAAe,EAAE,CAAC;QAC5C,MAAM,kBAAkB,GAAG,IAAI,eAAe,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,kBAAkB,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QAE7F,MAAM,GAAG,GAAG,EAAmC,CAAC;QAChD,yEAAyE;QACzE,uEAAuE;QACvE,mBAAmB;QACnB,MAAM,SAAS,GAAgE,EAAE,CAAC;QAClF,MAAM,WAAW,GAAG,IAAI,GAAG,EAAoB,CAAC;QAChD,MAAM,SAAS,GAAqB,EAAE,CAAC;QACvC,IAAI,OAAO,GAA2D,IAAI,CAAC;QAE3E,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEtB,IAAI,CAAC;YACH,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,MAAM,SAAS,GAAc,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC;YAEtD,SAAS,EAAE,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;gBACvE,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;gBACtC,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACtE,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC7B,IAAI,CAAC,UAAU;oBAAE,SAAS;gBAE1B,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;gBAElC,sEAAsE;gBACtE,uDAAuD;gBACvD,IAAI,UAAU,GAAG,KAAK,CAAC;gBACvB,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBAChB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;wBAClC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;wBAClC,WAAW,CAAC,GAAG,CACb,KAAK,CAAC,KAAK,EACX,CAAC,OAAO,MAAM,KAAK,UAAU;4BAC3B,CAAC,CAAC,MAAO,MAA8D,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;4BACvF,CAAC,CAAC,MAAM,CAAO,CAClB,CAAC;oBACJ,CAAC;oBACD,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAO,CAAC;gBAClD,CAAC;gBAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;oBAClF,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;wBAC9B,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;wBAC9B,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBAC1B,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACjC,CAAC;oBACD,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACnB,SAAS;gBACX,CAAC;gBAED,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACvD,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAEnC,IAAI,UAAU,EAAE,CAAC;oBACf,MAAM,GAAG,GAAG,MAAM,MAAM,CACtB,GAAG,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,CAAC,EAC7D,EAAE,GAAG,EAAE,KAAK,EAAW,EACvB,mBAAmB,KAAK,CAAC,IAAI,GAAG,EAChC,QAAQ,CACT,CAAC;oBACF,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;wBACZ,6DAA6D;wBAC7D,iEAAiE;wBACjE,mEAAmE;wBACnE,mCAAmC;wBACnC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;wBACtB,UAAU,CAAC,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC;wBAClC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;4BAC9B,gEAAgE;4BAChE,mCAAmC;4BACnC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;4BAC7B,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;4BAC1B,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACjC,CAAC;wBACD,QAAQ,CAAC,OAAO,EAAE,CAAC;wBACnB,SAAS;oBACX,CAAC;gBACH,CAAC;gBAED,sEAAsE;gBACtE,4BAA4B;gBAC5B,MAAM,KAAK,GAAmC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;gBAErE,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;oBAC9B,IAAI,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;wBACjC,OAAO,GAAG;4BACR,KAAK,EAAE,KAAK,CAAC,IAAI;4BACjB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;4BACrB,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,kBAAkB,CAAC,WAAW,CAAC;yBAC1E,CAAC;wBACF,MAAM,SAAS,CAAC;oBAClB,CAAC;oBAED,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;wBACxE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;wBAC9B,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBAC1B,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBAC5B,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBAC/B,QAAQ,CAAC,OAAO,EAAE,CAAC;wBACnB,SAAS;oBACX,CAAC;oBAED,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBACjD,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAEtD,IAAI,SAAS,EAAE,CAAC;wBACd,MAAM,GAAG,GAAG,MAAM,MAAM,CACtB,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,CAAC,EAC/D,EAAE,GAAG,EAAE,KAAK,EAAW,EACvB,kBAAkB,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EACpC,QAAQ,CACT,CAAC;wBACF,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;4BACZ,iEAAiE;4BACjE,kEAAkE;4BAClE,yCAAyC;4BACzC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;4BAC7B,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC;4BAClC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;4BACtB,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;4BACxB,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;4BAC1B,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;4BAC5B,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;4BAC/B,QAAQ,CAAC,OAAO,EAAE,CAAC;4BACnB,SAAS;wBACX,CAAC;oBACH,CAAC;oBAED,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;oBAC9B,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;oBACzC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACjC,QAAQ,CAAC,OAAO,EAAE,CAAC;oBAEnB,IAAI,MAAe,CAAC;oBACpB,IAAI,CAAC;wBACH,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;wBACvF,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;wBAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;wBACvC,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;wBAC7B,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;wBACnB,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;wBACrB,+DAA+D;wBAC/D,gEAAgE;wBAChE,6DAA6D;wBAC7D,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBAC1B,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBAC5B,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;wBAC7D,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBAC/B,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACrB,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;wBAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;wBACvC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;wBACzB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;wBAC7B,OAAO,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;wBAC9D,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBAC/B,QAAQ,CAAC,OAAO,EAAE,CAAC;wBACnB,MAAM,SAAS,CAAC;oBAClB,CAAC;oBAED,mEAAmE;oBACnE,mEAAmE;oBACnE,qCAAqC;oBACrC,IAAI,SAAS,EAAE,CAAC;wBACd,MAAM,MAAM,CACV,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EACvD,SAAS,EACT,mBAAmB,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EACrC,QAAQ,CACT,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,gEAAgE;gBAChE,IAAI,UAAU,IAAI,KAAK,EAAE,CAAC;oBACxB,MAAM,MAAM,CACV,GAAG,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,EACpD,SAAS,EACT,oBAAoB,KAAK,CAAC,IAAI,GAAG,EACjC,QAAQ,CACT,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,IAAI,OAAO,EAAE,CAAC;gBACZ,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAC7D,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;gBACxB,MAAM,IAAI,CAAC,MAAM,CACf,SAAS,EACT,OAAO,EACP,GAAG,EACH,KAAK,EACL,SAAS,EACT,kBAAkB,CAAC,MAAM,EACzB,QAAQ,CACT,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;YAC3B,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,KAAK,CAAC,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAClC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAChB,MAAM,EAAE,CAAC;QACX,CAAC;QAED,MAAM,KAAK,GAAiB,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC/C,MAAM,MAAM,GAAe;gBACzB,KAAK,EAAE,IAAI,CAAC,SAAS;gBACrB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;gBACrB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;gBACzB,UAAU,EACR,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS;oBAChC,CAAC,CAAC,CAAC;oBACH,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,WAAW,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS;gBACtE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;aAC9B,CAAC;YACF,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS;gBAAE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YACpE,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,WAAW,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC;QAE1E,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY;gBAAE,MAAM,OAAO,CAAC,KAAK,CAAC;YACnD,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;gBACzD,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,QAAQ,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE;gBACtD,GAAG,EAAE,GAA6B;gBAClC,UAAU;gBACV,KAAK;gBACL,SAAS;aACV,CAAC;QACJ,CAAC;QAED,OAAO;YACL,EAAE,EAAE,IAAI;YACR,MAAM,EAAE,SAAS;YACjB,GAAG,EAAE,GAAoB;YACzB,UAAU;YACV,KAAK;SACN,CAAC;IACJ,CAAC;IAED,kEAAkE;IAC1D,KAAK,CAAC,WAAW,CACvB,IAAiB,EACjB,KAAS,EACT,GAAQ,EACR,SAAsB,EACtB,QAAkB;QAElB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,IAAI,CAAC,CAAC,CAAC;QACtD,IAAI,SAAkB,CAAC;QAEvB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;YAC3D,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;YAC9B,QAAQ,CAAC,OAAO,EAAE,CAAC;YAEnB,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,GAAS,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC/D,IAAI,SAAS,CAAC,OAAO;gBAAE,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;;gBACrD,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAElE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;YACrC,MAAM,KAAK,GACT,SAAS,KAAK,SAAS;gBACrB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YAEpG,MAAM,IAAI,GAAG,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAE/C,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,iBAAiB,CAC/B,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,EACzD,KAAK,EACL,GAAG,EACH,UAAU,CAAC,MAAM,EACjB,OAAO,CACR,CAAC;gBACF,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC;oBACxB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAgB,CAAC,CAAC;oBACnD,IAAI,CAAC,OAAO;iBACb,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,SAAS,GAAG,KAAK,CAAC;gBAClB,IAAI,OAAO,CAAC,KAAK,CAAC;oBAAE,MAAM,KAAK,CAAC;gBAEhC,MAAM,OAAO,GAAG,KAAK,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC;gBACzD,IAAI,OAAO,IAAI,WAAW,IAAI,CAAC,OAAO;oBAAE,MAAM,KAAK,CAAC;gBAEpD,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBAC7C,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,WAAW,OAAO,wBAAwB,OAAO,IAAI,CAAC;gBAC9E,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAClC,CAAC;oBAAS,CAAC;gBACT,IAAI,KAAK;oBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC/B,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAChD,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,CAAC;QACH,CAAC;QAED,MAAM,SAAS,CAAC;IAClB,CAAC;IAED,mDAAmD;IAC3C,KAAK,CAAC,MAAM,CAClB,SAAsE,EACtE,OAAwD,EACxD,GAAQ,EACR,KAAe,EACf,SAA2B,EAC3B,MAAmB,EACnB,QAAkB;QAElB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC;QAC5C,IAAI,IAAI,KAAK,MAAM;YAAE,OAAO;QAE5B,MAAM,OAAO,GAAG,SAAS;aACtB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,KAAK,OAAO,CAAC,KAAK,CAAC;aAC9E,OAAO,EAAE,CAAC;QAEb,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;YAC5C,IAAI,CAAC,QAAQ;gBAAE,SAAS;YACxB,IAAI,MAAM,CAAC,OAAO;gBAAE,MAAM;YAE1B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,cAAc,CAAC;YAC5C,QAAQ,CAAC,OAAO,EAAE,CAAC;YAEnB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,qBAAqB,CACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE;gBAC3E,+DAA+D;gBAC/D,mDAAmD;gBACnD,KAAK,CAAC,KAAK;gBACX,mEAAmE;gBACnE,oDAAoD;gBACpD,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EACzC,KAAK,CAAC,MAAM,EACZ,OAAO,CAAC,KAAK,EACb,MAAM,CACP,CAAC;gBACF,MAAM,QAAQ,CAAC,OAAgB,CAAC,CAAC;gBACjC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC;gBAC3C,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;gBACtC,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC;gBACzB,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/F,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,iBAAiB,CAAC;gBAC/C,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;gBAClC,KAAK,CAAC,gBAAgB,IAAI,CAAC,CAAC;gBAC5B,SAAS,CAAC,IAAI,CAAC;oBACb,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS;oBAC9B,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI;oBAC9B,EAAE,EAAE,KAAK;oBACT,KAAK;iBACN,CAAC,CAAC;YACL,CAAC;YACD,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,kBAAkB,CACxB,GAAoB,EACpB,QAAyB,EACzB,QAAsB;QAEtB,MAAM,SAAS,GAAsB,EAAE,CAAC;QAExC,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAS,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACvD,IAAI,QAAQ,CAAC,OAAO;gBAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;;gBAC5C,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACjE,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QACvE,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,KAAK,EAAE,CAAC;YACzC,KAAK,MAAM,UAAU,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAU,EAAE,CAAC;gBACxD,MAAM,OAAO,GAAG,GAAS,EAAE;oBACzB,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO;wBAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,GAAG,UAAU,WAAW,CAAC,CAAC,CAAC;;wBACpF,GAAG,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC;gBACrD,CAAC,CAAC;gBACF,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBAChC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE;oBAClB,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBACnC,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,GAAG,EAAE;YACV,KAAK,MAAM,OAAO,IAAI,SAAS;gBAAE,OAAO,EAAE,CAAC;QAC7C,CAAC,CAAC;IACJ,CAAC;CACF;AAED,gFAAgF;AAChF,iFAAiF;AACjF,gFAAgF;AAEhF,oEAAoE;AACpE,SAAS,IAAI,CAAC,GAAkB,EAAE,IAAmC;IACnE,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI;QAAE,OAAO;IAC1B,KAAK,MAAM,GAAG,IAAI,IAAI;QAAE,OAAQ,GAA+B,CAAC,GAAG,CAAC,CAAC;AACvE,CAAC;AAED,6EAA6E;AAC7E,SAAS,KAAK,CAAC,MAAqB,EAAE,KAAc;IAClD,IAAI,CAAC,MAAM,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO;IACnE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,MAAM,CACnB,MAAwB,EACxB,QAAW,EACX,IAAY,EACZ,QAAkB;IAElB,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,EAAE,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,IAAI,YAAY,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACzF,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,SAAS,IAAI,CAAC,GAAW,EAAE,IAAmC;IAC5D,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,IAAI,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;IACzB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,IAAI,GAAG;YAAE,MAAM,CAAC,GAAG,CAAC,GAAI,GAA+B,CAAC,GAAG,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,KAA8B,EAAE,OAAe;IACnE,MAAM,KAAK,GAAG,KAAK,EAAE,OAAO,CAAC;IAC7B,IAAI,OAAO,KAAK,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACpE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,KAAK,CAAC,EAAU,EAAE,MAAmB;IAC5C,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IACtC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACrC,SAAS,MAAM;YACb,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC5C,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,cAAc,CAAC,MAAmB;IACzC,IAAI,QAAkC,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;QACtD,MAAM,IAAI,GAAG,GAAS,EAAE,CACtB,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC;QAC7D,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,IAAI,EAAE,CAAC;YACP,OAAO;QACT,CAAC;QACD,QAAQ,GAAG,IAAI,CAAC;QAChB,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IACH,OAAO;QACL,OAAO;QACP,OAAO,EAAE,GAAG,EAAE;YACZ,IAAI,QAAQ;gBAAE,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC9D,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,OAAO;IACrB,OAAO,CACL,GAAwC,EACH,EAAE,CAAC,GAAG,CAAC;AAChD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO,CACL,IAAY,EACZ,KAA6D,EACnC,EAAE;QAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,MAAM,CAAiB,IAAI,CAAC,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,mBAAmB,CAAC,IAAI,EAAE,eAAe,IAAI,wCAAwC,CAAC,CAAC;QAE5G,MAAM,OAAO,GAAG,EAAE,IAAI,EAA8B,CAAC;QACrD,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACvC,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;AACJ,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,MAAM,CAAY,OAAgC;IAChE,OAAO,IAAI,MAAM,CAAS,OAAO,CAAC,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"script.js","sourceRoot":"","sources":["../src/script.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -98,7 +98,7 @@ export interface StaleContext<In, Ctx> {
98
98
  * There is no key: the store *is* the identity. Whether an entry is still
99
99
  * usable is `stale`'s job, and nothing else's.
100
100
  */
101
- export interface CacheOptions<In = unknown, Ctx = unknown> {
101
+ export interface CacheOptions<In = unknown, Ctx = unknown, Value = unknown> {
102
102
  store: CacheStore;
103
103
  /**
104
104
  * Return true to treat the stored entry as a miss — the work runs again and
@@ -112,9 +112,58 @@ export interface CacheOptions<In = unknown, Ctx = unknown> {
112
112
  * written by an older version of the script from feeding the wrong shape
113
113
  * into the context.
114
114
  */
115
- schema?: StandardSchemaV1;
115
+ schema?: StandardSchemaV1<unknown, Value>;
116
+ }
117
+ export type CacheSource<In = unknown, Ctx = unknown, Value = unknown> = CacheStore | CacheOptions<In, Ctx, Value>;
118
+ /**
119
+ * The value type a slot reads back as.
120
+ *
121
+ * A declared `schema` wins: it is the only thing actually *checked* against
122
+ * what came off the disk. With no schema the phase's own delta stands in —
123
+ * convenient, and right until an entry written by an older version of the
124
+ * script outlives the code that wrote it. That gap is what the shape guard on
125
+ * `read` exists to catch at the moment you touch a missing field.
126
+ */
127
+ export type SlotValue<Schema, Delta> = unknown extends Schema ? Delta : Schema;
128
+ /**
129
+ * `context.cache`, typed to the slots declared *before* this step.
130
+ *
131
+ * Invalidation flows backwards — a later step throwing away an earlier phase's
132
+ * entry — so only already-declared slots are addressable, which falls out of
133
+ * builder order for free. With no cached phases anywhere the slot type is
134
+ * `never` and every method is uncallable.
135
+ */
136
+ export interface CacheHandle<Slots> {
137
+ /**
138
+ * The stored value, or `undefined` on a miss.
139
+ *
140
+ * Unless the slot declared a `schema`, the value is wrapped in a guard that
141
+ * throws {@link CacheShapeError} the moment you read a field the stored
142
+ * object does not have — which is how a cache written before a refactor
143
+ * announces itself instead of quietly yielding `undefined`. Pass
144
+ * `{ raw: true }` to opt out; do that before putting the value in the
145
+ * context, since the guard would otherwise travel with it into later steps.
146
+ */
147
+ read<K extends keyof Slots & string>(slot: K, options?: {
148
+ raw?: boolean;
149
+ }): Promise<Slots[K] | undefined>;
150
+ /**
151
+ * Replace a slot outright. Values are not type-checked on the way in.
152
+ *
153
+ * The entry is restamped as written *now* unless `keepAge` is set. Reach for
154
+ * `keepAge` when correcting a value rather than refreshing it: a patch that
155
+ * resets the clock silently buys another full TTL for data that is still as
156
+ * old as it ever was — which matters most when the cache exists to stay
157
+ * inside someone's rate limit.
158
+ */
159
+ write<K extends keyof Slots & string>(slot: K, value: unknown, options?: {
160
+ keepAge?: boolean;
161
+ }): Promise<void>;
162
+ /** Drop a slot, so the next run does the work again. */
163
+ clear(slot: keyof Slots & string): Promise<void>;
164
+ /** Age of a slot's entry in ms, or `undefined` if there isn't one. */
165
+ ageOf(slot: keyof Slots & string): Promise<number | undefined>;
116
166
  }
117
- export type CacheSource<In = unknown, Ctx = unknown> = CacheStore | CacheOptions<In, Ctx>;
118
167
  /**
119
168
  * What `run` is allowed to do with the caches this script declares.
120
169
  *
@@ -150,7 +199,7 @@ export interface TaskListHandle<K extends string> {
150
199
  get(key: K): TaskHandle;
151
200
  }
152
201
  /** Everything a handler gets: accumulated data plus the live terminal. */
153
- export interface StepContext<In, Ctx> {
202
+ export interface StepContext<In, Ctx, Slots = {}> {
154
203
  /** The input the script was run with. */
155
204
  readonly input: In;
156
205
  /** Data produced by every step that has already succeeded. */
@@ -186,8 +235,13 @@ export interface StepContext<In, Ctx> {
186
235
  task(label: string): TaskHandle;
187
236
  /** Attach a whole checklist at once, keyed for typed lookup. */
188
237
  tasks<const K extends readonly string[]>(labels: K): TaskListHandle<K[number]>;
238
+ /**
239
+ * Read, replace or drop the entries of cached phases declared earlier in
240
+ * this script. See {@link CacheHandle}.
241
+ */
242
+ readonly cache: CacheHandle<Slots>;
189
243
  }
190
- export interface RollbackContext<In, Ctx, Out> {
244
+ export interface RollbackContext<In, Ctx, Out, Slots = {}> {
191
245
  readonly input: In;
192
246
  /**
193
247
  * Only the keys this step declared in `rollbackKeys`, as they stood when the
@@ -211,6 +265,8 @@ export interface RollbackContext<In, Ctx, Out> {
211
265
  label?: string;
212
266
  value?: number;
213
267
  }): ProgressHandle;
268
+ /** Undoing work usually means the entry describing it is wrong too. */
269
+ readonly cache: CacheHandle<Slots>;
214
270
  }
215
271
  export interface RetryPolicy {
216
272
  attempts: number;
@@ -219,14 +275,14 @@ export interface RetryPolicy {
219
275
  /** Return false to stop retrying this particular error. */
220
276
  retryIf?: (error: unknown, attempt: number) => boolean;
221
277
  }
222
- export interface StepDef<In, Ctx, Out, RollbackKeys extends readonly PropertyKey[] = readonly []> {
278
+ export interface StepDef<In, Ctx, Out, RollbackKeys extends readonly PropertyKey[] = readonly [], Slots = {}> {
223
279
  name: string;
224
280
  description?: string;
225
281
  /**
226
282
  * The work. Whatever object it resolves to is merged into `ctx` and becomes
227
283
  * visible — and typed — for every later step.
228
284
  */
229
- handler: (context: StepContext<In, Ctx>) => Awaitable<Out>;
285
+ handler: (context: StepContext<In, Ctx, Slots>) => Awaitable<Out>;
230
286
  /**
231
287
  * The context keys this step's `rollback` needs. It receives only these
232
288
  * (none by default), and declaring them reserves them: neither this step nor
@@ -241,7 +297,7 @@ export interface StepDef<In, Ctx, Out, RollbackKeys extends readonly PropertyKey
241
297
  * Compensation. Runs when a *later* step fails, in reverse order, after this
242
298
  * step has already succeeded.
243
299
  */
244
- rollback?: (context: RollbackContext<In, Prettify<RollbackData<Merge<Ctx, Out>, RollbackKeys>>, Out>) => Awaitable<void>;
300
+ rollback?: (context: RollbackContext<In, Prettify<RollbackData<Merge<Ctx, Out>, RollbackKeys>>, Out, Slots>) => Awaitable<void>;
245
301
  /** Skip the step (and its rollback) when this resolves falsy. */
246
302
  when?: (context: {
247
303
  input: In;
@@ -262,6 +318,51 @@ export interface StepDef<In, Ctx, Out, RollbackKeys extends readonly PropertyKey
262
318
  retry?: RetryPolicy;
263
319
  timeoutMs?: number;
264
320
  }
321
+ /**
322
+ * The context a later step sees, given a step that ran before it and whatever
323
+ * else is already there. Spares you from restating a step's return shape by
324
+ * hand just to declare the next step's `Ctx`.
325
+ *
326
+ * ```ts
327
+ * export const logIntoDb = stepFor<Input>()({
328
+ * name: "log into db",
329
+ * handler: async () => ({ conn: await connect() }),
330
+ * });
331
+ *
332
+ * export const loadRules = stepFor<
333
+ * Input,
334
+ * WithStepFor<typeof logIntoDb, { conditions: Array<{ name: string }> }>
335
+ * >()({
336
+ * name: "load rules",
337
+ * // ctx.conn — from the step; ctx.conditions — from the rest
338
+ * handler: ({ ctx }) => ({ rules: ctx.conn.query(ctx.conditions) }),
339
+ * });
340
+ * ```
341
+ *
342
+ * It nests, so a chain of steps composes without a separate variadic form:
343
+ *
344
+ * ```ts
345
+ * WithStepFor<typeof second, WithStepFor<typeof first, { conditions: string[] }>>
346
+ * ```
347
+ *
348
+ * Read that inside out — start with `conditions`, add what `first` returns,
349
+ * then what `second` returns — which is also the precedence: on a name
350
+ * collision the outermost step wins, matching the way a later step's return
351
+ * value shadows an earlier key at runtime. Order the nesting to match the
352
+ * order the steps actually run in and the two agree.
353
+ *
354
+ * Only the step's *output* is read. Its own `Ctx` requirement is not checked
355
+ * against `Rest`, since the two are declared independently; `addStep` is still
356
+ * where a step meeting an insufficient context is caught.
357
+ *
358
+ * A step returning nothing leaves `Rest` untouched, and an `async` handler is
359
+ * awaited first, so both fall out without a special case.
360
+ */
361
+ export type WithStepFor<Step extends {
362
+ handler: (context: never) => unknown;
363
+ }, Rest extends object = {}> = Step extends {
364
+ handler: (context: never) => infer Out;
365
+ } ? Merge<Rest, Awaited<Out>> : never;
265
366
  export interface PhaseOptions<In = unknown, Ctx = unknown> {
266
367
  description?: string;
267
368
  /** Skip every step in the phase when this resolves falsy. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}