@btravstack/temporal-worker 0.34.0 → 0.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -10
- package/dist/index.d.mts +28 -11
- package/dist/index.mjs +8 -6
- package/dist/schedule.d.mts +2 -2
- package/dist/schedule.mjs +1 -1
- package/package.json +21 -21
package/README.md
CHANGED
|
@@ -222,16 +222,17 @@ optional peers. See
|
|
|
222
222
|
and the module lists (`imports`, `provides`, `exports`, `needs`). It is the
|
|
223
223
|
only way to compose the starter, which is not exported:
|
|
224
224
|
|
|
225
|
-
| Option
|
|
226
|
-
|
|
|
227
|
-
| `contract`
|
|
228
|
-
| `activities`
|
|
229
|
-
| `workflows`
|
|
230
|
-
| `address`
|
|
231
|
-
| `namespace`
|
|
232
|
-
| `gracePeriod`
|
|
233
|
-
| `forceAfter`
|
|
234
|
-
| `unit`
|
|
225
|
+
| Option | What it is |
|
|
226
|
+
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
|
|
227
|
+
| `contract` | the `temporal-contract` contract; the task queue this worker polls is read off it |
|
|
228
|
+
| `activities` | the activities provider — what `TemporalActivities(contract)(...)` returns for this contract |
|
|
229
|
+
| `workflows` | where the sandbox's code comes from: `{ workflowsPath }` or `{ workflowBundle }`; required unless the contract declares no workflows |
|
|
230
|
+
| `address` | pins the service instead of reading `TEMPORAL_ADDRESS` |
|
|
231
|
+
| `namespace` | pins the namespace instead of reading `TEMPORAL_NAMESPACE` |
|
|
232
|
+
| `gracePeriod` | pins `TEMPORAL_GRACE_PERIOD_MS` — Temporal's `shutdownGraceTime`, a `Duration` (default `10_000` ms) |
|
|
233
|
+
| `forceAfter` | pins `TEMPORAL_FORCE_AFTER_MS` — Temporal's `shutdownForceTime` (default `15_000` ms); keep it under `DRAIN_TIMEOUT_MS` |
|
|
234
|
+
| `unit` | `{ activity }` — the module the worker forks around every activity it dispatches, seeded with the validated input |
|
|
235
|
+
| `dataConverter` | the application's port for the `DataConverter` (payload codecs) the worker and its clients share |
|
|
235
236
|
|
|
236
237
|
The full table — required/optional, defaults, and the reasoning — lives on
|
|
237
238
|
[the reference page](https://btravstack.github.io/btravstack/reference/temporal-worker),
|
package/dist/index.d.mts
CHANGED
|
@@ -2,7 +2,7 @@ import { AnyUnitModule, Refuse, Runtime, RuntimePort, UnitGate, UnitNeedsOf, Uni
|
|
|
2
2
|
import { AnyModule, AnyPort, AnyProvider, Exportable, Module, NeedsGate, PortClassOf, PortInstance, Provider, Scope, ServiceOf } from "@btravstack/di";
|
|
3
3
|
import { ConfigInvalid, EnvReading } from "@btravstack/config";
|
|
4
4
|
import { DeclareActivitiesHandlerOptions, EmptyContext } from "@temporal-contract/worker/activity";
|
|
5
|
-
import { Duration } from "@temporalio/common";
|
|
5
|
+
import { DataConverter, Duration } from "@temporalio/common";
|
|
6
6
|
import { NativeConnection, Worker, WorkflowBundleWithSourceMap } from "@temporalio/worker";
|
|
7
7
|
import { ContractDefinition } from "@temporal-contract/contract";
|
|
8
8
|
//#region src/workflow-activities.d.ts
|
|
@@ -179,12 +179,14 @@ type ActivitiesOf<C extends ContractDefinition, TContext extends Record<string,
|
|
|
179
179
|
type ActivitiesPortOf<C extends ContractDefinition> = PortClassOf<"TemporalActivities", ActivitiesOf<C>>;
|
|
180
180
|
/** The activities port's instance for `C` — the module's one need. */
|
|
181
181
|
type ActivitiesInstanceOf<C extends ContractDefinition> = PortInstance<"TemporalActivities", ActivitiesOf<C>>;
|
|
182
|
+
/** An application-declared port carrying the Temporal `DataConverter` a worker and its clients share. */
|
|
183
|
+
type DataConverterPort = PortClassOf<string, DataConverter>;
|
|
182
184
|
/**
|
|
183
185
|
* What a Temporal deployment tunes, shared verbatim by the starter and
|
|
184
186
|
* `TemporalModule` — spelled once so the two cannot drift, which is what a
|
|
185
187
|
* second copy of an option list always eventually does.
|
|
186
188
|
*/
|
|
187
|
-
type TemporalTuning<Unit extends AnyUnitModule | undefined = undefined> = {
|
|
189
|
+
type TemporalTuning<Unit extends AnyUnitModule | undefined = undefined, Converter extends DataConverterPort = never> = {
|
|
188
190
|
/** Pins `TemporalConfig.address` instead of reading `TEMPORAL_ADDRESS`. */
|
|
189
191
|
readonly address?: string;
|
|
190
192
|
/** Pins `TemporalConfig.namespace` instead of reading `TEMPORAL_NAMESPACE`. */
|
|
@@ -213,28 +215,43 @@ type TemporalTuning<Unit extends AnyUnitModule | undefined = undefined> = {
|
|
|
213
215
|
readonly unit?: {
|
|
214
216
|
readonly activity?: Unit;
|
|
215
217
|
};
|
|
218
|
+
/**
|
|
219
|
+
* The application's port for the `DataConverter` handed to `Worker.create`
|
|
220
|
+
* — a payload codec encrypting each payload, for instance. Every client of
|
|
221
|
+
* the worker's workflows must resolve the same one, or each side reads the
|
|
222
|
+
* other's payloads as ciphertext. The port joins this module's needs.
|
|
223
|
+
*/
|
|
224
|
+
readonly dataConverter?: Converter;
|
|
216
225
|
};
|
|
217
|
-
|
|
226
|
+
/**
|
|
227
|
+
* The workflow source a worker needs: required when the contract declares a
|
|
228
|
+
* workflow, which the worker would otherwise boot and never run, and optional
|
|
229
|
+
* only for a contract that declares none (an activity-only worker).
|
|
230
|
+
*/
|
|
231
|
+
type WorkflowsOption<C extends ContractDefinition> = [keyof C["workflows"]] extends [never] ? {
|
|
232
|
+
readonly workflows?: WorkflowSource;
|
|
233
|
+
} : {
|
|
234
|
+
readonly workflows: WorkflowSource;
|
|
235
|
+
};
|
|
236
|
+
type TemporalOptions<C extends ContractDefinition, Unit extends AnyUnitModule | undefined = undefined, Converter extends DataConverterPort = never> = TemporalTuning<Unit, Converter> & {
|
|
218
237
|
/**
|
|
219
238
|
* The contract; the task queue this worker polls is read off it, and the
|
|
220
239
|
* activities port is typed by it. The starter calls
|
|
221
240
|
* `declareActivitiesHandler` itself, with its unit middleware in place.
|
|
222
241
|
*/
|
|
223
242
|
readonly contract: C;
|
|
224
|
-
|
|
225
|
-
};
|
|
243
|
+
} & WorkflowsOption<C>;
|
|
226
244
|
//#endregion
|
|
227
245
|
//#region src/temporal-module.d.ts
|
|
228
246
|
/** The starter's own module, as the sugar adds it to the application's imports. */
|
|
229
|
-
type TemporalStarter<C extends ContractDefinition, Unit extends AnyUnitModule | undefined> = Module<TemporalRuntime | TemporalConfig | TemporalConnection, ConfigInvalid | TemporalUnreachable, EnvReading<never, "TEMPORAL_ADDRESS" | "TEMPORAL_NAMESPACE" | "TEMPORAL_GRACE_PERIOD_MS" | "TEMPORAL_FORCE_AFTER_MS"> | Scope | ActivitiesInstanceOf<C> | UnitNeedsOf$1<Unit>>;
|
|
247
|
+
type TemporalStarter<C extends ContractDefinition, Unit extends AnyUnitModule | undefined, Converter extends DataConverterPort> = Module<TemporalRuntime | TemporalConfig | TemporalConnection, ConfigInvalid | TemporalUnreachable, EnvReading<never, "TEMPORAL_ADDRESS" | "TEMPORAL_NAMESPACE" | "TEMPORAL_GRACE_PERIOD_MS" | "TEMPORAL_FORCE_AFTER_MS"> | Scope | ActivitiesInstanceOf<C> | UnitNeedsOf$1<Unit> | InstanceType<Converter>>;
|
|
230
248
|
/** The application's imports plus the starter — the tuple `Module(name)` is handed. */
|
|
231
|
-
type Imports<I extends readonly AnyModule[], C extends ContractDefinition, Unit extends AnyUnitModule | undefined> = readonly [...I, TemporalStarter<C, Unit>];
|
|
249
|
+
type Imports<I extends readonly AnyModule[], C extends ContractDefinition, Unit extends AnyUnitModule | undefined, Converter extends DataConverterPort> = readonly [...I, TemporalStarter<C, Unit, Converter>];
|
|
232
250
|
/** The activities provider plus the application's own — the tuple `Module(name)` is handed. */
|
|
233
251
|
type Provides<P extends readonly AnyProvider[], C extends ContractDefinition, ActivitiesError, ActivitiesNeeds> = readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P];
|
|
234
|
-
type TemporalModuleOptions<C extends ContractDefinition, ActivitiesError, ActivitiesNeeds, Declared, Unit extends AnyUnitModule | undefined, I extends readonly AnyModule[], P extends readonly AnyProvider[], X extends readonly Exportable<Imports<I, C, Unit>, Provides<P, C, ActivitiesError, ActivitiesNeeds>>[], N extends readonly AnyPort[] | undefined> = TemporalTuning<Unit> & {
|
|
252
|
+
type TemporalModuleOptions<C extends ContractDefinition, ActivitiesError, ActivitiesNeeds, Declared, Unit extends AnyUnitModule | undefined, I extends readonly AnyModule[], P extends readonly AnyProvider[], X extends readonly Exportable<Imports<I, C, Unit, Converter>, Provides<P, C, ActivitiesError, ActivitiesNeeds>>[], N extends readonly AnyPort[] | undefined, Converter extends DataConverterPort = never> = TemporalTuning<Unit, Converter> & {
|
|
235
253
|
/** The `temporal-contract` contract; the task queue this worker polls is read off it. */
|
|
236
254
|
readonly contract: C;
|
|
237
|
-
readonly workflows: WorkflowSource;
|
|
238
255
|
/**
|
|
239
256
|
* The application's activity implementations — what
|
|
240
257
|
* `TemporalActivities(contract)(…)` returns. Its `_declaredUnit` phantom
|
|
@@ -253,7 +270,7 @@ type TemporalModuleOptions<C extends ContractDefinition, ActivitiesError, Activi
|
|
|
253
270
|
* over the augmented tuples below, so forgetting one is an error at THIS call.
|
|
254
271
|
*/
|
|
255
272
|
readonly needs?: N;
|
|
256
|
-
} & NeedsGate<Imports<I, C, Unit>, Provides<P, C, ActivitiesError, ActivitiesNeeds>, N> & UnitGate<Unit, Declared>;
|
|
273
|
+
} & WorkflowsOption<C> & NeedsGate<Imports<I, C, Unit, Converter>, Provides<P, C, ActivitiesError, ActivitiesNeeds>, N> & UnitGate<Unit, Declared>;
|
|
257
274
|
/**
|
|
258
275
|
* `Module(name)({...})` for a Temporal worker deployment: everything a di module
|
|
259
276
|
* takes, plus the contract, the activities provider and the workflow source. The
|
|
@@ -271,7 +288,7 @@ type TemporalModuleOptions<C extends ContractDefinition, ActivitiesError, Activi
|
|
|
271
288
|
* await runMain(OrderTemporalWorker);
|
|
272
289
|
* ```
|
|
273
290
|
*/
|
|
274
|
-
export declare const TemporalModule: <const Name extends string>(name: Name) => <C extends ContractDefinition, ActivitiesError, ActivitiesNeeds, Declared = never, Unit extends AnyUnitModule | undefined = undefined, const I extends readonly AnyModule[] = [], const P extends readonly AnyProvider[] = [], const X extends readonly Exportable<Imports<I, C, Unit>, Provides<P, C, ActivitiesError, ActivitiesNeeds>>[] = [], const N extends readonly AnyPort[] | undefined = undefined>(options: TemporalModuleOptions<C, ActivitiesError, ActivitiesNeeds, Declared, Unit, I, P, X, N>) => Module<(Extract<(readonly [typeof TemporalRuntime, ...((import("@btravstack/core").HealthChecks extends ((readonly [...I, TemporalStarter<C, Unit>])[number] extends (infer T) ? T extends (readonly [...I, TemporalStarter<C, Unit>])[number] ? T extends Module<infer X_1, infer _E, infer _N> ? X_1 : never : never : never) | ((readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] extends (infer T_1) ? T_1 extends (readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] ? T_1 extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never : never : never) ? typeof import("@btravstack/core").HealthChecks : never) | (import("@btravstack/core").Logger extends ((readonly [...I, TemporalStarter<C, Unit>])[number] extends (infer T) ? T extends (readonly [...I, TemporalStarter<C, Unit>])[number] ? T extends Module<infer X_1, infer _E, infer _N> ? X_1 : never : never : never) | ((readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] extends (infer T_1) ? T_1 extends (readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] ? T_1 extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never : never : never) ? typeof import("@btravstack/core").Logger : never))[], ...X])[number], AnyModule> extends (infer T_2) ? T_2 extends Extract<(readonly [typeof TemporalRuntime, ...((import("@btravstack/core").HealthChecks extends ((readonly [...I, TemporalStarter<C, Unit>])[number] extends (infer T) ? T extends (readonly [...I, TemporalStarter<C, Unit>])[number] ? T extends Module<infer X_1, infer _E, infer _N> ? X_1 : never : never : never) | ((readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] extends (infer T_1) ? T_1 extends (readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] ? T_1 extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never : never : never) ? typeof import("@btravstack/core").HealthChecks : never) | (import("@btravstack/core").Logger extends ((readonly [...I, TemporalStarter<C, Unit>])[number] extends (infer T) ? T extends (readonly [...I, TemporalStarter<C, Unit>])[number] ? T extends Module<infer X_1, infer _E, infer _N> ? X_1 : never : never : never) | ((readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] extends (infer T_1) ? T_1 extends (readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] ? T_1 extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never : never : never) ? typeof import("@btravstack/core").Logger : never))[], ...X])[number], AnyModule> ? T_2 extends Module<infer X_3, infer E, infer N_1> ? readonly [X_3, E, N_1] : never : never : never)[0] | ((readonly [typeof TemporalRuntime, ...((import("@btravstack/core").HealthChecks extends ((readonly [...I, TemporalStarter<C, Unit>])[number] extends (infer T) ? T extends (readonly [...I, TemporalStarter<C, Unit>])[number] ? T extends Module<infer X_1, infer _E, infer _N> ? X_1 : never : never : never) | ((readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] extends (infer T_1) ? T_1 extends (readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] ? T_1 extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never : never : never) ? typeof import("@btravstack/core").HealthChecks : never) | (import("@btravstack/core").Logger extends ((readonly [...I, TemporalStarter<C, Unit>])[number] extends (infer T) ? T extends (readonly [...I, TemporalStarter<C, Unit>])[number] ? T extends Module<infer X_1, infer _E, infer _N> ? X_1 : never : never : never) | ((readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] extends (infer T_1) ? T_1 extends (readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] ? T_1 extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never : never : never) ? typeof import("@btravstack/core").Logger : never))[], ...X])[number] extends (infer E_1) ? E_1 extends AnyPort ? InstanceType<E_1> : E_1 extends AnyProvider ? InstanceType<E_1["port"]> : never : never), ((readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] extends (infer T_3) ? T_3 extends (readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] ? T_3 extends Provider<infer P_1, infer E_2, infer N_2> ? readonly [P_1, E_2, N_2] : never : never : never)[1] | ((readonly [...I, TemporalStarter<C, Unit>])[number] extends (infer T_4) ? T_4 extends (readonly [...I, TemporalStarter<C, Unit>])[number] ? T_4 extends Module<infer X_3, infer E, infer N_1> ? readonly [X_3, E, N_1] : never : never : never)[1], Exclude<((readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] extends (infer T_5) ? T_5 extends (readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] ? T_5 extends Provider<infer P_1, infer E_2, infer N_2> ? readonly [P_1, E_2, N_2] : never : never : never)[2], ((readonly [...I, TemporalStarter<C, Unit>])[number] extends (infer T_6) ? T_6 extends (readonly [...I, TemporalStarter<C, Unit>])[number] ? T_6 extends Module<infer X_3, infer E, infer N_1> ? readonly [X_3, E, N_1] : never : never : never)[0] | ((readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] extends (infer T_5) ? T_5 extends (readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] ? T_5 extends Provider<infer P_1, infer E_2, infer N_2> ? readonly [P_1, E_2, N_2] : never : never : never)[0]> | Exclude<((readonly [...I, TemporalStarter<C, Unit>])[number] extends (infer T_6) ? T_6 extends (readonly [...I, TemporalStarter<C, Unit>])[number] ? T_6 extends Module<infer X_3, infer E, infer N_1> ? readonly [X_3, E, N_1] : never : never : never)[2], ((readonly [...I, TemporalStarter<C, Unit>])[number] extends (infer T_6) ? T_6 extends (readonly [...I, TemporalStarter<C, Unit>])[number] ? T_6 extends Module<infer X_3, infer E, infer N_1> ? readonly [X_3, E, N_1] : never : never : never)[0] | ((readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] extends (infer T_5) ? T_5 extends (readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] ? T_5 extends Provider<infer P_1, infer E_2, infer N_2> ? readonly [P_1, E_2, N_2] : never : never : never)[0]>>;
|
|
291
|
+
export declare const TemporalModule: <const Name extends string>(name: Name) => <C extends ContractDefinition, ActivitiesError, ActivitiesNeeds, Declared = never, Unit extends AnyUnitModule | undefined = undefined, const I extends readonly AnyModule[] = [], const P extends readonly AnyProvider[] = [], const X extends readonly Exportable<Imports<I, C, Unit, Converter>, Provides<P, C, ActivitiesError, ActivitiesNeeds>>[] = [], const N extends readonly AnyPort[] | undefined = undefined, Converter extends DataConverterPort = never>(options: TemporalModuleOptions<C, ActivitiesError, ActivitiesNeeds, Declared, Unit, I, P, X, N, Converter>) => Module<(Extract<(readonly [typeof TemporalRuntime, ...((import("@btravstack/core").HealthChecks extends ((readonly [...I, TemporalStarter<C, Unit, Converter>])[number] extends (infer T) ? T extends (readonly [...I, TemporalStarter<C, Unit, Converter>])[number] ? T extends Module<infer X_1, infer _E, infer _N> ? X_1 : never : never : never) | ((readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] extends (infer T_1) ? T_1 extends (readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] ? T_1 extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never : never : never) ? typeof import("@btravstack/core").HealthChecks : never) | (import("@btravstack/core").Logger extends ((readonly [...I, TemporalStarter<C, Unit, Converter>])[number] extends (infer T) ? T extends (readonly [...I, TemporalStarter<C, Unit, Converter>])[number] ? T extends Module<infer X_1, infer _E, infer _N> ? X_1 : never : never : never) | ((readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] extends (infer T_1) ? T_1 extends (readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] ? T_1 extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never : never : never) ? typeof import("@btravstack/core").Logger : never))[], ...X])[number], AnyModule> extends (infer T_2) ? T_2 extends Extract<(readonly [typeof TemporalRuntime, ...((import("@btravstack/core").HealthChecks extends ((readonly [...I, TemporalStarter<C, Unit, Converter>])[number] extends (infer T) ? T extends (readonly [...I, TemporalStarter<C, Unit, Converter>])[number] ? T extends Module<infer X_1, infer _E, infer _N> ? X_1 : never : never : never) | ((readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] extends (infer T_1) ? T_1 extends (readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] ? T_1 extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never : never : never) ? typeof import("@btravstack/core").HealthChecks : never) | (import("@btravstack/core").Logger extends ((readonly [...I, TemporalStarter<C, Unit, Converter>])[number] extends (infer T) ? T extends (readonly [...I, TemporalStarter<C, Unit, Converter>])[number] ? T extends Module<infer X_1, infer _E, infer _N> ? X_1 : never : never : never) | ((readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] extends (infer T_1) ? T_1 extends (readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] ? T_1 extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never : never : never) ? typeof import("@btravstack/core").Logger : never))[], ...X])[number], AnyModule> ? T_2 extends Module<infer X_3, infer E, infer N_1> ? readonly [X_3, E, N_1] : never : never : never)[0] | ((readonly [typeof TemporalRuntime, ...((import("@btravstack/core").HealthChecks extends ((readonly [...I, TemporalStarter<C, Unit, Converter>])[number] extends (infer T) ? T extends (readonly [...I, TemporalStarter<C, Unit, Converter>])[number] ? T extends Module<infer X_1, infer _E, infer _N> ? X_1 : never : never : never) | ((readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] extends (infer T_1) ? T_1 extends (readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] ? T_1 extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never : never : never) ? typeof import("@btravstack/core").HealthChecks : never) | (import("@btravstack/core").Logger extends ((readonly [...I, TemporalStarter<C, Unit, Converter>])[number] extends (infer T) ? T extends (readonly [...I, TemporalStarter<C, Unit, Converter>])[number] ? T extends Module<infer X_1, infer _E, infer _N> ? X_1 : never : never : never) | ((readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] extends (infer T_1) ? T_1 extends (readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] ? T_1 extends Provider<infer X_2, infer _E_1, infer _N_1> ? X_2 : never : never : never) ? typeof import("@btravstack/core").Logger : never))[], ...X])[number] extends (infer E_1) ? E_1 extends AnyPort ? InstanceType<E_1> : E_1 extends AnyProvider ? InstanceType<E_1["port"]> : never : never), ((readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] extends (infer T_3) ? T_3 extends (readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] ? T_3 extends Provider<infer P_1, infer E_2, infer N_2> ? readonly [P_1, E_2, N_2] : never : never : never)[1] | ((readonly [...I, TemporalStarter<C, Unit, Converter>])[number] extends (infer T_4) ? T_4 extends (readonly [...I, TemporalStarter<C, Unit, Converter>])[number] ? T_4 extends Module<infer X_3, infer E, infer N_1> ? readonly [X_3, E, N_1] : never : never : never)[1], Exclude<((readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] extends (infer T_5) ? T_5 extends (readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] ? T_5 extends Provider<infer P_1, infer E_2, infer N_2> ? readonly [P_1, E_2, N_2] : never : never : never)[2], ((readonly [...I, TemporalStarter<C, Unit, Converter>])[number] extends (infer T_6) ? T_6 extends (readonly [...I, TemporalStarter<C, Unit, Converter>])[number] ? T_6 extends Module<infer X_3, infer E, infer N_1> ? readonly [X_3, E, N_1] : never : never : never)[0] | ((readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] extends (infer T_5) ? T_5 extends (readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] ? T_5 extends Provider<infer P_1, infer E_2, infer N_2> ? readonly [P_1, E_2, N_2] : never : never : never)[0]> | Exclude<((readonly [...I, TemporalStarter<C, Unit, Converter>])[number] extends (infer T_6) ? T_6 extends (readonly [...I, TemporalStarter<C, Unit, Converter>])[number] ? T_6 extends Module<infer X_3, infer E, infer N_1> ? readonly [X_3, E, N_1] : never : never : never)[2], ((readonly [...I, TemporalStarter<C, Unit, Converter>])[number] extends (infer T_6) ? T_6 extends (readonly [...I, TemporalStarter<C, Unit, Converter>])[number] ? T_6 extends Module<infer X_3, infer E, infer N_1> ? readonly [X_3, E, N_1] : never : never : never)[0] | ((readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] extends (infer T_5) ? T_5 extends (readonly [Provider<ActivitiesInstanceOf<C>, ActivitiesError, ActivitiesNeeds>, ...P])[number] ? T_5 extends Provider<infer P_1, infer E_2, infer N_2> ? readonly [P_1, E_2, N_2] : never : never : never)[0]>>;
|
|
275
292
|
/** One piece of the activities record — what `TemporalWorkflowActivities(contract, key)(…)` returns. */
|
|
276
293
|
type PieceOf<C extends ContractDefinition> = { readonly [K in ActivitiesKeyOf<C>]: {
|
|
277
294
|
readonly port: WorkflowActivitiesPortOf<C, K>;
|
package/dist/index.mjs
CHANGED
|
@@ -245,13 +245,14 @@ const temporal = (options) => {
|
|
|
245
245
|
connection: TemporalConnection,
|
|
246
246
|
config: TemporalConfig,
|
|
247
247
|
activities,
|
|
248
|
-
observers: Observers
|
|
248
|
+
observers: Observers,
|
|
249
|
+
...options.dataConverter === void 0 ? {} : { dataConverter: options.dataConverter }
|
|
249
250
|
},
|
|
250
|
-
sync: ({ connection, config: bound, activities: impls, observers }) => ({
|
|
251
|
+
sync: ({ connection, config: bound, activities: impls, observers, dataConverter }) => ({
|
|
251
252
|
name: "temporal",
|
|
252
253
|
resolves: [],
|
|
253
254
|
units: unitsOf(options.unit?.activity, impls),
|
|
254
|
-
start: (host) => createWorker(host, connection, bound, impls, options, observers)
|
|
255
|
+
start: (host) => createWorker(host, connection, bound, impls, options, observers, dataConverter)
|
|
255
256
|
})
|
|
256
257
|
})
|
|
257
258
|
],
|
|
@@ -267,7 +268,7 @@ const startFailed = (cause) => new RuntimeStartFailed({
|
|
|
267
268
|
cause
|
|
268
269
|
});
|
|
269
270
|
const heldByWorker = (cause) => cause instanceof Error && cause.name === "IllegalStateError";
|
|
270
|
-
const createWorker = (host, connection, config, activities, options, observers) => {
|
|
271
|
+
const createWorker = (host, connection, config, activities, options, observers, dataConverter) => {
|
|
271
272
|
const { taskQueue } = options.contract;
|
|
272
273
|
const { namespace } = config;
|
|
273
274
|
return fromThrowable(() => declareActivitiesHandler({
|
|
@@ -278,10 +279,11 @@ const createWorker = (host, connection, config, activities, options, observers)
|
|
|
278
279
|
connection,
|
|
279
280
|
namespace,
|
|
280
281
|
taskQueue,
|
|
281
|
-
...options.workflows,
|
|
282
|
+
...options.workflows ?? {},
|
|
282
283
|
activities: handler,
|
|
283
284
|
shutdownGraceTime: config.gracePeriodMs,
|
|
284
|
-
shutdownForceTime: config.forceAfterMs
|
|
285
|
+
shutdownForceTime: config.forceAfterMs,
|
|
286
|
+
...dataConverter === void 0 ? {} : { dataConverter }
|
|
285
287
|
}), startFailed)).map((worker) => poll(worker, taskQueue, namespace, connection));
|
|
286
288
|
};
|
|
287
289
|
/**
|
package/dist/schedule.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AsyncResult } from "unthrown";
|
|
2
|
-
import { ScheduleNotFoundError, TypedScheduleClient, TypedScheduleCreateOptions,
|
|
2
|
+
import { ScheduleNotFoundError, TypedScheduleClient, TypedScheduleCreateOptions, WorkflowValidationError } from "@temporal-contract/client";
|
|
3
3
|
import { ContractDefinition } from "@temporal-contract/contract";
|
|
4
4
|
//#region src/schedule.d.ts
|
|
5
5
|
/** Whether the schedule had to be created, or was already there and had its spec reconciled. */
|
|
@@ -50,5 +50,5 @@ export type ScheduleOutcome = "created" | "updated";
|
|
|
50
50
|
* });
|
|
51
51
|
* ```
|
|
52
52
|
*/
|
|
53
|
-
export declare const ensureSchedule: <C extends ContractDefinition, W extends keyof C["workflows"] & string>(schedules: TypedScheduleClient<C>, workflow: W, options: TypedScheduleCreateOptions<C, W>) => AsyncResult<ScheduleOutcome,
|
|
53
|
+
export declare const ensureSchedule: <C extends ContractDefinition, W extends keyof C["workflows"] & string>(schedules: TypedScheduleClient<C>, workflow: W, options: TypedScheduleCreateOptions<C, W>) => AsyncResult<ScheduleOutcome, WorkflowValidationError | ScheduleNotFoundError>;
|
|
54
54
|
//#endregion
|
package/dist/schedule.mjs
CHANGED
|
@@ -56,6 +56,6 @@ const ensureSchedule = (schedules, workflow, options) => schedules.create(workfl
|
|
|
56
56
|
args: [options.args]
|
|
57
57
|
},
|
|
58
58
|
...options.policies === void 0 ? {} : { policies: options.policies }
|
|
59
|
-
})).map(() => "updated")).with(P.tag("@temporal-contract/
|
|
59
|
+
})).map(() => "updated")).with(P.tag("@temporal-contract/WorkflowValidationError"), (error) => ErrAsync(error)));
|
|
60
60
|
//#endregion
|
|
61
61
|
export { ensureSchedule };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@btravstack/temporal-worker",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.36.0",
|
|
4
4
|
"description": "The Temporal worker runtime for @btravstack/core: one unit per activity attempt, and a drain that honours the kernel's deadline",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"graceful-shutdown",
|
|
@@ -52,43 +52,43 @@
|
|
|
52
52
|
}
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
|
-
"@btravstack/config": "0.
|
|
56
|
-
"@btravstack/core": "0.
|
|
57
|
-
"@btravstack/di": "0.
|
|
55
|
+
"@btravstack/config": "0.36.0",
|
|
56
|
+
"@btravstack/core": "0.36.0",
|
|
57
|
+
"@btravstack/di": "0.36.0",
|
|
58
58
|
"@btravstack/internal-test-infra": "0.0.0",
|
|
59
|
-
"@btravstack/testing": "0.
|
|
59
|
+
"@btravstack/testing": "0.36.0",
|
|
60
60
|
"@btravstack/tsconfig": "0.4.0",
|
|
61
|
-
"@temporal-contract/client": "8.0.0-beta.
|
|
62
|
-
"@temporal-contract/contract": "8.0.0-beta.
|
|
63
|
-
"@temporal-contract/worker": "8.0.0-beta.
|
|
61
|
+
"@temporal-contract/client": "8.0.0-beta.14",
|
|
62
|
+
"@temporal-contract/contract": "8.0.0-beta.14",
|
|
63
|
+
"@temporal-contract/worker": "8.0.0-beta.14",
|
|
64
64
|
"@temporalio/activity": "1.24.0",
|
|
65
65
|
"@temporalio/client": "1.24.0",
|
|
66
66
|
"@temporalio/common": "1.24.0",
|
|
67
67
|
"@temporalio/worker": "1.24.0",
|
|
68
68
|
"@temporalio/workflow": "1.24.0",
|
|
69
|
-
"@types/node": "26.6.
|
|
69
|
+
"@types/node": "26.6.5",
|
|
70
70
|
"@unthrown/vitest": "5.12.1",
|
|
71
71
|
"@vitest/coverage-v8": "5.0.3",
|
|
72
72
|
"testcontainers": "12.2.0",
|
|
73
|
-
"tsdown": "0.23.
|
|
73
|
+
"tsdown": "0.23.1",
|
|
74
74
|
"typescript": "7.0.2",
|
|
75
75
|
"typescript-consumer": "npm:typescript@5.9.3",
|
|
76
76
|
"unthrown": "5.12.1",
|
|
77
77
|
"vitest": "5.0.3",
|
|
78
|
-
"zod": "4.6.
|
|
78
|
+
"zod": "4.6.6"
|
|
79
79
|
},
|
|
80
80
|
"peerDependencies": {
|
|
81
|
-
"@btravstack/config": "^0.
|
|
82
|
-
"@btravstack/core": "^0.
|
|
83
|
-
"@btravstack/di": "^0.
|
|
84
|
-
"@temporal-contract/client": "^8.0.0-beta.
|
|
85
|
-
"@temporal-contract/contract": "^8.0.0-beta.
|
|
86
|
-
"@temporal-contract/worker": "^8.0.0-beta.
|
|
87
|
-
"@temporalio/activity": "^1.
|
|
88
|
-
"@temporalio/common": "^1.
|
|
89
|
-
"@temporalio/worker": "^1.
|
|
81
|
+
"@btravstack/config": "^0.36.0",
|
|
82
|
+
"@btravstack/core": "^0.36.0",
|
|
83
|
+
"@btravstack/di": "^0.36.0",
|
|
84
|
+
"@temporal-contract/client": "^8.0.0-beta.14",
|
|
85
|
+
"@temporal-contract/contract": "^8.0.0-beta.14",
|
|
86
|
+
"@temporal-contract/worker": "^8.0.0-beta.14",
|
|
87
|
+
"@temporalio/activity": "^1.24.0",
|
|
88
|
+
"@temporalio/common": "^1.24.0",
|
|
89
|
+
"@temporalio/worker": "^1.24.0",
|
|
90
90
|
"testcontainers": "^12.0.0",
|
|
91
|
-
"unthrown": "^5.
|
|
91
|
+
"unthrown": "^5.11.0",
|
|
92
92
|
"vitest": ">=3.2.0"
|
|
93
93
|
},
|
|
94
94
|
"peerDependenciesMeta": {
|