@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/README.md +105 -2
- package/dist/cache.d.ts +34 -2
- package/dist/cache.d.ts.map +1 -1
- package/dist/cache.js +148 -17
- package/dist/cache.js.map +1 -1
- package/dist/context.d.ts +3 -0
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +4 -2
- package/dist/context.js.map +1 -1
- package/dist/errors.d.ts +14 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +22 -0
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/script.d.ts +71 -16
- package/dist/script.d.ts.map +1 -1
- package/dist/script.js +29 -7
- package/dist/script.js.map +1 -1
- package/dist/types.d.ts +109 -8
- package/dist/types.d.ts.map +1 -1
- package/package.json +6 -11
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:
|
|
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:
|
|
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
|
|
173
|
-
|
|
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
|
package/dist/script.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../src/script.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;
|
|
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,
|
package/dist/script.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script.js","sourceRoot":"","sources":["../src/script.ts"],"names":[],"mappings":"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"}
|
|
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. */
|
package/dist/types.d.ts.map
CHANGED
|
@@ -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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"}
|