@adonis-agora/durable 0.50.0 → 0.51.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/CHANGELOG.md +36 -0
- package/dist/commands/work.d.ts.map +1 -1
- package/dist/commands/work.js +3 -1
- package/dist/commands/work.js.map +1 -1
- package/dist/providers/durable_provider.d.ts.map +1 -1
- package/dist/providers/durable_provider.js +5 -1
- package/dist/providers/durable_provider.js.map +1 -1
- package/dist/src/admissions/factory.d.ts.map +1 -1
- package/dist/src/admissions/factory.js +3 -2
- package/dist/src/admissions/factory.js.map +1 -1
- package/dist/src/commands/worker.d.ts +4 -2
- package/dist/src/commands/worker.d.ts.map +1 -1
- package/dist/src/commands/worker.js +8 -5
- package/dist/src/commands/worker.js.map +1 -1
- package/dist/src/control-planes/factory.d.ts.map +1 -1
- package/dist/src/control-planes/factory.js +3 -2
- package/dist/src/control-planes/factory.js.map +1 -1
- package/dist/src/dashboard/index.d.ts +1 -1
- package/dist/src/dashboard/index.js +1 -1
- package/dist/src/engine.d.ts +10 -1
- package/dist/src/engine.d.ts.map +1 -1
- package/dist/src/engine.js +55 -17
- package/dist/src/engine.js.map +1 -1
- package/dist/src/errors.d.ts +15 -5
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +11 -7
- package/dist/src/errors.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/on-error.d.ts +4 -1
- package/dist/src/on-error.d.ts.map +1 -1
- package/dist/src/on-error.js +15 -2
- package/dist/src/on-error.js.map +1 -1
- package/dist/src/redis-service.d.ts +24 -0
- package/dist/src/redis-service.d.ts.map +1 -0
- package/dist/src/redis-service.js +28 -0
- package/dist/src/redis-service.js.map +1 -0
- package/dist/src/run-gateway/run-request-responder.d.ts +7 -0
- package/dist/src/run-gateway/run-request-responder.d.ts.map +1 -1
- package/dist/src/run-gateway/run-request-responder.js +1 -1
- package/dist/src/run-gateway/run-request-responder.js.map +1 -1
- package/dist/src/scheduler.d.ts +44 -3
- package/dist/src/scheduler.d.ts.map +1 -1
- package/dist/src/scheduler.js +36 -1
- package/dist/src/scheduler.js.map +1 -1
- package/dist/src/standard-schema.d.ts +8 -5
- package/dist/src/standard-schema.d.ts.map +1 -1
- package/dist/src/standard-schema.js +9 -7
- package/dist/src/standard-schema.js.map +1 -1
- package/dist/src/step-discovery.js +2 -2
- package/dist/src/step-discovery.js.map +1 -1
- package/dist/src/workflow-ref.d.ts +4 -2
- package/dist/src/workflow-ref.d.ts.map +1 -1
- package/dist/src/workflow-ref.js.map +1 -1
- package/package.json +2 -2
- package/skills/durable-workflows/SKILL.md +15 -3
|
@@ -3,15 +3,17 @@ import { SchemaValidationError } from './errors.js';
|
|
|
3
3
|
* Validate `value` against any Standard Schema and return the schema's OUTPUT value (parsed /
|
|
4
4
|
* coerced / defaulted — e.g. zod's `.transform`, valibot's `pipe`, arktype morphs). Both a sync and
|
|
5
5
|
* an async (`Promise`-returning) `~standard.validate` are supported. On failure throws a
|
|
6
|
-
* {@link SchemaValidationError} — a non-retryable `FatalError`
|
|
7
|
-
*
|
|
6
|
+
* {@link SchemaValidationError} — a non-retryable `FatalError` carrying the issues in `details`, so a
|
|
7
|
+
* bad payload fails fast instead of being retried forever.
|
|
8
8
|
*
|
|
9
|
-
* `label` names what was validated in the error message, e.g. `step "billing:charge" input`.
|
|
9
|
+
* `label` names what was validated in the error message, e.g. `step "billing:charge" input`. `code`
|
|
10
|
+
* is the error's code: `invalid_input` / `invalid_output` for an input or output schema, and
|
|
11
|
+
* `schema_validation` (the default) otherwise.
|
|
10
12
|
*/
|
|
11
|
-
export async function validateStandard(schema, value, label) {
|
|
13
|
+
export async function validateStandard(schema, value, label, code) {
|
|
12
14
|
const result = await schema['~standard'].validate(value);
|
|
13
15
|
if (result.issues)
|
|
14
|
-
throw new SchemaValidationError(label, result.issues);
|
|
16
|
+
throw new SchemaValidationError(label, result.issues, code);
|
|
15
17
|
return result.value;
|
|
16
18
|
}
|
|
17
19
|
/**
|
|
@@ -19,13 +21,13 @@ export async function validateStandard(schema, value, label) {
|
|
|
19
21
|
* search-attributes write, where an async refinement could make replay nondeterministic). A schema
|
|
20
22
|
* whose `validate` returns a `Promise` throws a clear error instead of being silently awaited.
|
|
21
23
|
*/
|
|
22
|
-
export function validateStandardSync(schema, value, label) {
|
|
24
|
+
export function validateStandardSync(schema, value, label, code) {
|
|
23
25
|
const result = schema['~standard'].validate(value);
|
|
24
26
|
if (result instanceof Promise) {
|
|
25
27
|
throw new TypeError(`${label}: schema validation must be synchronous (the schema's \`~standard.validate\` returned a Promise) — drop any async refinement from it.`);
|
|
26
28
|
}
|
|
27
29
|
if (result.issues)
|
|
28
|
-
throw new SchemaValidationError(label, result.issues);
|
|
30
|
+
throw new SchemaValidationError(label, result.issues, code);
|
|
29
31
|
return result.value;
|
|
30
32
|
}
|
|
31
33
|
//# sourceMappingURL=standard-schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standard-schema.js","sourceRoot":"","sources":["../../src/standard-schema.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"standard-schema.js","sourceRoot":"","sources":["../../src/standard-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAkF/E;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAS,EACT,KAAc,EACd,KAAa,EACb,IAA2B;IAE3B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzD,IAAI,MAAM,CAAC,MAAM;QAAE,MAAM,IAAI,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC/E,OAAO,MAAM,CAAC,KAAwC,CAAC;AACzD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAS,EACT,KAAc,EACd,KAAa,EACb,IAA2B;IAE3B,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnD,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;QAC9B,MAAM,IAAI,SAAS,CACjB,GAAG,KAAK,uIAAuI,CAChJ,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,MAAM;QAAE,MAAM,IAAI,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC/E,OAAO,MAAM,CAAC,KAAwC,CAAC;AACzD,CAAC"}
|
|
@@ -12,11 +12,11 @@ function validating(step) {
|
|
|
12
12
|
return handler;
|
|
13
13
|
return async (input, log) => {
|
|
14
14
|
const parsed = meta.input
|
|
15
|
-
? await validateStandard(meta.input, input, `step "${meta.name}" input
|
|
15
|
+
? await validateStandard(meta.input, input, `step "${meta.name}" input`, 'invalid_input')
|
|
16
16
|
: input;
|
|
17
17
|
const output = await handler(parsed, log);
|
|
18
18
|
return meta.output
|
|
19
|
-
? validateStandard(meta.output, output, `step "${meta.name}" output
|
|
19
|
+
? validateStandard(meta.output, output, `step "${meta.name}" output`, 'invalid_output')
|
|
20
20
|
: output;
|
|
21
21
|
};
|
|
22
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-discovery.js","sourceRoot":"","sources":["../../src/step-discovery.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EAEb,uBAAuB,EAEvB,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAwB,UAAU,EAAE,MAAM,eAAe,CAAC;AAcjE;;;wGAGwG;AACxG,SAAS,UAAU,CAAC,IAAoB;IACtC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,OAAO,CAAC;IAChD,OAAO,KAAK,EAAE,KAAc,EAAE,GAAe,EAAE,EAAE;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK;YACvB,CAAC,CAAC,MAAM,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,IAAI,CAAC,IAAI,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"step-discovery.js","sourceRoot":"","sources":["../../src/step-discovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -70,8 +70,10 @@ export interface WorkflowOptions {
|
|
|
70
70
|
/**
|
|
71
71
|
* Validate the run input at start against any Standard Schema (zod, valibot, arktype, …). A bad
|
|
72
72
|
* payload throws a `SchemaValidationError` from `start` and no run is created (an `onEvent`
|
|
73
|
-
* trigger with a rejected payload simply doesn't start this workflow). The
|
|
74
|
-
*
|
|
73
|
+
* trigger with a rejected payload simply doesn't start this workflow). The run stores the input
|
|
74
|
+
* AS SENT; `run(ctx, input)` receives the schema's OUTPUT value (parsed / coerced / defaulted),
|
|
75
|
+
* re-parsed from the stored input before every turn, so a replay sees what the first turn saw.
|
|
76
|
+
* Keep the schema deterministic, and bump `version` when it changes.
|
|
75
77
|
*/
|
|
76
78
|
inputSchema?: StandardSchemaV1;
|
|
77
79
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-ref.d.ts","sourceRoot":"","sources":["../../src/workflow-ref.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,2GAA2G;AAC3G,MAAM,WAAW,eAAe;IAC9B,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAC;IACb,yFAAyF;IACzF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,kFAAkF;IAClF,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACnC,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,GAAG;YAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,QAAQ,EAAE,WAAW,CAAA;KAAE,EAAE,CAAC;IACjF;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,WAAW,CAAC;IACjC
|
|
1
|
+
{"version":3,"file":"workflow-ref.d.ts","sourceRoot":"","sources":["../../src/workflow-ref.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-ref.js","sourceRoot":"","sources":["../../src/workflow-ref.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"workflow-ref.js","sourceRoot":"","sources":["../../src/workflow-ref.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adonis-agora/durable",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.51.1",
|
|
4
4
|
"description": "Durable cross-app workflows for AdonisJS — deterministic replay engine, AdonisJS binding, ace commands, dashboard, OpenTelemetry, Telescope, testing harness and Redis admission, all in one package. Part of the Agora ecosystem.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -184,7 +184,7 @@
|
|
|
184
184
|
"@types/node": "26.6.5",
|
|
185
185
|
"arktype": "2.2.9",
|
|
186
186
|
"better-sqlite3": "13.0.3",
|
|
187
|
-
"bullmq": "6.3.
|
|
187
|
+
"bullmq": "6.3.19",
|
|
188
188
|
"cron-parser": "5.10.2",
|
|
189
189
|
"ioredis": "6.0.0",
|
|
190
190
|
"pg": "8.23.1",
|
|
@@ -132,12 +132,14 @@ Schemas are **any Standard Schema** (zod 3.24+/4, valibot, arktype, effect
|
|
|
132
132
|
schema, …) — the package depends on none of them. They fit every schema slot:
|
|
133
133
|
`@Step({ input, output })` / `defineStep` (with an unannotated handler the types
|
|
134
134
|
are inferred from the schema), `static workflow = { inputSchema }` (validated at
|
|
135
|
-
`start`, nothing created on failure; the
|
|
136
|
-
|
|
135
|
+
`start`, nothing created on failure; the run stores the input as sent and
|
|
136
|
+
`run` receives the schema's output, re-parsed before every turn — keep the schema
|
|
137
|
+
deterministic and bump `version` when it changes), and `static workflow = { searchAttributes }` (every
|
|
137
138
|
`ctx.upsertSearchAttributes` is validated against the merged attributes; type
|
|
138
139
|
the ctx as `WorkflowCtx<InferSearchAttributes<typeof schema>>` and read back with
|
|
139
140
|
`attributesOf(WorkflowClass, run)`). A failure is a `SchemaValidationError`
|
|
140
|
-
(`FatalError`, code `
|
|
141
|
+
(`FatalError`, code `invalid_input` / `invalid_output` — `schema_validation` for a
|
|
142
|
+
`searchAttributes` write — issues in `details.issues`) — never
|
|
141
143
|
retried.
|
|
142
144
|
|
|
143
145
|
```ts
|
|
@@ -291,6 +293,16 @@ export default class DailyReportWorkflow extends BaseWorkflow {
|
|
|
291
293
|
}
|
|
292
294
|
```
|
|
293
295
|
|
|
296
|
+
In `config/durable.ts`, name the workflow with a lazy import, as Adonis does for
|
|
297
|
+
controllers — never a direct class import, which can hang the boot (a service the
|
|
298
|
+
workflow imports awaits `app.booted` while the config is still loading):
|
|
299
|
+
|
|
300
|
+
```ts
|
|
301
|
+
schedules: [
|
|
302
|
+
{ key: 'daily-report', workflow: () => import('#workflows/daily_report_workflow'), cron: '0 2 * * *' },
|
|
303
|
+
]
|
|
304
|
+
```
|
|
305
|
+
|
|
294
306
|
Each schedule window starts exactly once across a fleet via an idempotent
|
|
295
307
|
time-bucket run id.
|
|
296
308
|
|