@dudousxd/nestjs-durable 0.43.1 → 0.43.2
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/index.cjs +85 -38
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +11 -5
- package/dist/index.d.ts +11 -5
- package/dist/index.js +73 -43
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
package/dist/index.d.cts
CHANGED
|
@@ -708,6 +708,12 @@ declare class DurableStartClient {
|
|
|
708
708
|
* fake so no real Redis is needed.
|
|
709
709
|
*/
|
|
710
710
|
declare const RUN_REDIS_WORKER: unique symbol;
|
|
711
|
+
/**
|
|
712
|
+
* The store-less {@link DurableWorkerRuntime} a pure thin worker registers its bodies on — `null` in
|
|
713
|
+
* every other role. A Symbol rather than the class itself: the class lives in an optional peer, and
|
|
714
|
+
* using it as a DI token would drag that peer into the package's static import graph.
|
|
715
|
+
*/
|
|
716
|
+
declare const DURABLE_WORKER_RUNTIME: unique symbol;
|
|
711
717
|
/** The list of started {@link RunningWorker} handles (the single handle {@link ThinWorkerBootstrap}
|
|
712
718
|
* starts), closed on shutdown. */
|
|
713
719
|
declare const DURABLE_WORKER_RUNNERS: unique symbol;
|
|
@@ -724,7 +730,7 @@ declare class ThinWorkflowRegistrar implements OnModuleInit {
|
|
|
724
730
|
private readonly discovery;
|
|
725
731
|
private readonly runtime;
|
|
726
732
|
private readonly options;
|
|
727
|
-
constructor(discovery: DiscoveryService, runtime: DurableWorkerRuntime, options: DurableModuleOptions);
|
|
733
|
+
constructor(discovery: DiscoveryService, runtime: DurableWorkerRuntime | null, options: DurableModuleOptions);
|
|
728
734
|
onModuleInit(): void;
|
|
729
735
|
}
|
|
730
736
|
/**
|
|
@@ -738,7 +744,7 @@ declare class ThinStepRegistrar implements OnModuleInit {
|
|
|
738
744
|
private readonly metadataScanner;
|
|
739
745
|
private readonly runtime;
|
|
740
746
|
private readonly options;
|
|
741
|
-
constructor(discovery: DiscoveryService, metadataScanner: MetadataScanner, runtime: DurableWorkerRuntime, options: DurableModuleOptions);
|
|
747
|
+
constructor(discovery: DiscoveryService, metadataScanner: MetadataScanner, runtime: DurableWorkerRuntime | null, options: DurableModuleOptions);
|
|
742
748
|
onModuleInit(): void;
|
|
743
749
|
}
|
|
744
750
|
/**
|
|
@@ -757,7 +763,7 @@ declare class ThinWorkerBootstrap implements OnApplicationBootstrap, OnApplicati
|
|
|
757
763
|
private readonly runRedisWorker;
|
|
758
764
|
private readonly runnersSink;
|
|
759
765
|
private readonly runners;
|
|
760
|
-
constructor(runtime: DurableWorkerRuntime, options: DurableModuleOptions, runRedisWorker: RunRedisWorkerFn, runnersSink: RunningWorker[]);
|
|
766
|
+
constructor(runtime: DurableWorkerRuntime | null, options: DurableModuleOptions, runRedisWorker: RunRedisWorkerFn, runnersSink: RunningWorker[]);
|
|
761
767
|
onApplicationBootstrap(): Promise<void>;
|
|
762
768
|
onApplicationShutdown(): Promise<void>;
|
|
763
769
|
}
|
|
@@ -864,7 +870,7 @@ declare class InAppWorkerBootstrap implements OnModuleInit, OnApplicationBootstr
|
|
|
864
870
|
private readonly runRedisWorker;
|
|
865
871
|
private readonly runnersSink;
|
|
866
872
|
private readonly runners;
|
|
867
|
-
constructor(discovery: DiscoveryService, metadataScanner: MetadataScanner, options: DurableModuleOptions, runtime: DurableWorkerRuntime, runRedisWorker: RunRedisWorkerFn, runnersSink: RunningWorker[]);
|
|
873
|
+
constructor(discovery: DiscoveryService, metadataScanner: MetadataScanner, options: DurableModuleOptions, runtime: DurableWorkerRuntime | null, runRedisWorker: RunRedisWorkerFn, runnersSink: RunningWorker[]);
|
|
868
874
|
onModuleInit(): void;
|
|
869
875
|
onApplicationBootstrap(): Promise<void>;
|
|
870
876
|
onApplicationShutdown(): Promise<void>;
|
|
@@ -1150,4 +1156,4 @@ declare class WorkflowService {
|
|
|
1150
1156
|
}): Promise<number>;
|
|
1151
1157
|
}
|
|
1152
1158
|
|
|
1153
|
-
export { CONTEXT_ACCESSOR, type ContextAccessor, type ContextStore, DEAD_LETTER_METADATA, DURABLE_STEP_METADATA, DURABLE_WORKER_RUNNERS, DeadLetter, DurableModule, type DurableModuleAsyncOptions, type DurableModuleOptions, type DurableRetentionOptions, DurableStartClient, DurableStep, type DurableStepInterceptor, type DurableStepMeta, ENTITY_METADATA, ENTITY_ON_METADATA, Entity, EntityService, IN_APP_RUN_REDIS_WORKER, IN_APP_WORKER_BINDING, IN_APP_WORKER_RUNNERS, IN_APP_WORKER_RUNTIME, type InAppWorkerBinding, InAppWorkerBootstrap, ON_EVENT_METADATA, On, OnDurableEvent, OnEvent, ProxyRunGateway, RUN_GATEWAY, RUN_REDIS_WORKER, type RunLookupStore, type RunRedisWorkerFn, RunRequestResponder, type RunRequestTransport, STEP_INTERCEPTOR_METADATA, Step, StepInterceptor, type StepOptions, StoreRunGateway, TenantEventRepublisher, ThinStepRegistrar, ThinWorkerBootstrap, ThinWorkflowRegistrar, type UserRef, WORKFLOW_METADATA, Workflow, type WorkflowAttributesOf, type WorkflowMeta, type WorkflowOptions, WorkflowService, attributesOf, entityConfigFor, getDurableStepMeta, getEntityMeta, getOnEvents, getWorkflowMeta, inAppWorkerProviders, isDeadLetterHandler, isDrivingOperator, isOperatorRole, isStepInterceptor, thinWorkerProviders, unavailableRunGateway };
|
|
1159
|
+
export { CONTEXT_ACCESSOR, type ContextAccessor, type ContextStore, DEAD_LETTER_METADATA, DURABLE_STEP_METADATA, DURABLE_WORKER_RUNNERS, DURABLE_WORKER_RUNTIME, DeadLetter, DurableModule, type DurableModuleAsyncOptions, type DurableModuleOptions, type DurableRetentionOptions, DurableStartClient, DurableStep, type DurableStepInterceptor, type DurableStepMeta, ENTITY_METADATA, ENTITY_ON_METADATA, Entity, EntityService, IN_APP_RUN_REDIS_WORKER, IN_APP_WORKER_BINDING, IN_APP_WORKER_RUNNERS, IN_APP_WORKER_RUNTIME, type InAppWorkerBinding, InAppWorkerBootstrap, ON_EVENT_METADATA, On, OnDurableEvent, OnEvent, ProxyRunGateway, RUN_GATEWAY, RUN_REDIS_WORKER, type RunLookupStore, type RunRedisWorkerFn, RunRequestResponder, type RunRequestTransport, STEP_INTERCEPTOR_METADATA, Step, StepInterceptor, type StepOptions, StoreRunGateway, TenantEventRepublisher, ThinStepRegistrar, ThinWorkerBootstrap, ThinWorkflowRegistrar, type UserRef, WORKFLOW_METADATA, Workflow, type WorkflowAttributesOf, type WorkflowMeta, type WorkflowOptions, WorkflowService, attributesOf, entityConfigFor, getDurableStepMeta, getEntityMeta, getOnEvents, getWorkflowMeta, inAppWorkerProviders, isDeadLetterHandler, isDrivingOperator, isOperatorRole, isStepInterceptor, thinWorkerProviders, unavailableRunGateway };
|
package/dist/index.d.ts
CHANGED
|
@@ -708,6 +708,12 @@ declare class DurableStartClient {
|
|
|
708
708
|
* fake so no real Redis is needed.
|
|
709
709
|
*/
|
|
710
710
|
declare const RUN_REDIS_WORKER: unique symbol;
|
|
711
|
+
/**
|
|
712
|
+
* The store-less {@link DurableWorkerRuntime} a pure thin worker registers its bodies on — `null` in
|
|
713
|
+
* every other role. A Symbol rather than the class itself: the class lives in an optional peer, and
|
|
714
|
+
* using it as a DI token would drag that peer into the package's static import graph.
|
|
715
|
+
*/
|
|
716
|
+
declare const DURABLE_WORKER_RUNTIME: unique symbol;
|
|
711
717
|
/** The list of started {@link RunningWorker} handles (the single handle {@link ThinWorkerBootstrap}
|
|
712
718
|
* starts), closed on shutdown. */
|
|
713
719
|
declare const DURABLE_WORKER_RUNNERS: unique symbol;
|
|
@@ -724,7 +730,7 @@ declare class ThinWorkflowRegistrar implements OnModuleInit {
|
|
|
724
730
|
private readonly discovery;
|
|
725
731
|
private readonly runtime;
|
|
726
732
|
private readonly options;
|
|
727
|
-
constructor(discovery: DiscoveryService, runtime: DurableWorkerRuntime, options: DurableModuleOptions);
|
|
733
|
+
constructor(discovery: DiscoveryService, runtime: DurableWorkerRuntime | null, options: DurableModuleOptions);
|
|
728
734
|
onModuleInit(): void;
|
|
729
735
|
}
|
|
730
736
|
/**
|
|
@@ -738,7 +744,7 @@ declare class ThinStepRegistrar implements OnModuleInit {
|
|
|
738
744
|
private readonly metadataScanner;
|
|
739
745
|
private readonly runtime;
|
|
740
746
|
private readonly options;
|
|
741
|
-
constructor(discovery: DiscoveryService, metadataScanner: MetadataScanner, runtime: DurableWorkerRuntime, options: DurableModuleOptions);
|
|
747
|
+
constructor(discovery: DiscoveryService, metadataScanner: MetadataScanner, runtime: DurableWorkerRuntime | null, options: DurableModuleOptions);
|
|
742
748
|
onModuleInit(): void;
|
|
743
749
|
}
|
|
744
750
|
/**
|
|
@@ -757,7 +763,7 @@ declare class ThinWorkerBootstrap implements OnApplicationBootstrap, OnApplicati
|
|
|
757
763
|
private readonly runRedisWorker;
|
|
758
764
|
private readonly runnersSink;
|
|
759
765
|
private readonly runners;
|
|
760
|
-
constructor(runtime: DurableWorkerRuntime, options: DurableModuleOptions, runRedisWorker: RunRedisWorkerFn, runnersSink: RunningWorker[]);
|
|
766
|
+
constructor(runtime: DurableWorkerRuntime | null, options: DurableModuleOptions, runRedisWorker: RunRedisWorkerFn, runnersSink: RunningWorker[]);
|
|
761
767
|
onApplicationBootstrap(): Promise<void>;
|
|
762
768
|
onApplicationShutdown(): Promise<void>;
|
|
763
769
|
}
|
|
@@ -864,7 +870,7 @@ declare class InAppWorkerBootstrap implements OnModuleInit, OnApplicationBootstr
|
|
|
864
870
|
private readonly runRedisWorker;
|
|
865
871
|
private readonly runnersSink;
|
|
866
872
|
private readonly runners;
|
|
867
|
-
constructor(discovery: DiscoveryService, metadataScanner: MetadataScanner, options: DurableModuleOptions, runtime: DurableWorkerRuntime, runRedisWorker: RunRedisWorkerFn, runnersSink: RunningWorker[]);
|
|
873
|
+
constructor(discovery: DiscoveryService, metadataScanner: MetadataScanner, options: DurableModuleOptions, runtime: DurableWorkerRuntime | null, runRedisWorker: RunRedisWorkerFn, runnersSink: RunningWorker[]);
|
|
868
874
|
onModuleInit(): void;
|
|
869
875
|
onApplicationBootstrap(): Promise<void>;
|
|
870
876
|
onApplicationShutdown(): Promise<void>;
|
|
@@ -1150,4 +1156,4 @@ declare class WorkflowService {
|
|
|
1150
1156
|
}): Promise<number>;
|
|
1151
1157
|
}
|
|
1152
1158
|
|
|
1153
|
-
export { CONTEXT_ACCESSOR, type ContextAccessor, type ContextStore, DEAD_LETTER_METADATA, DURABLE_STEP_METADATA, DURABLE_WORKER_RUNNERS, DeadLetter, DurableModule, type DurableModuleAsyncOptions, type DurableModuleOptions, type DurableRetentionOptions, DurableStartClient, DurableStep, type DurableStepInterceptor, type DurableStepMeta, ENTITY_METADATA, ENTITY_ON_METADATA, Entity, EntityService, IN_APP_RUN_REDIS_WORKER, IN_APP_WORKER_BINDING, IN_APP_WORKER_RUNNERS, IN_APP_WORKER_RUNTIME, type InAppWorkerBinding, InAppWorkerBootstrap, ON_EVENT_METADATA, On, OnDurableEvent, OnEvent, ProxyRunGateway, RUN_GATEWAY, RUN_REDIS_WORKER, type RunLookupStore, type RunRedisWorkerFn, RunRequestResponder, type RunRequestTransport, STEP_INTERCEPTOR_METADATA, Step, StepInterceptor, type StepOptions, StoreRunGateway, TenantEventRepublisher, ThinStepRegistrar, ThinWorkerBootstrap, ThinWorkflowRegistrar, type UserRef, WORKFLOW_METADATA, Workflow, type WorkflowAttributesOf, type WorkflowMeta, type WorkflowOptions, WorkflowService, attributesOf, entityConfigFor, getDurableStepMeta, getEntityMeta, getOnEvents, getWorkflowMeta, inAppWorkerProviders, isDeadLetterHandler, isDrivingOperator, isOperatorRole, isStepInterceptor, thinWorkerProviders, unavailableRunGateway };
|
|
1159
|
+
export { CONTEXT_ACCESSOR, type ContextAccessor, type ContextStore, DEAD_LETTER_METADATA, DURABLE_STEP_METADATA, DURABLE_WORKER_RUNNERS, DURABLE_WORKER_RUNTIME, DeadLetter, DurableModule, type DurableModuleAsyncOptions, type DurableModuleOptions, type DurableRetentionOptions, DurableStartClient, DurableStep, type DurableStepInterceptor, type DurableStepMeta, ENTITY_METADATA, ENTITY_ON_METADATA, Entity, EntityService, IN_APP_RUN_REDIS_WORKER, IN_APP_WORKER_BINDING, IN_APP_WORKER_RUNNERS, IN_APP_WORKER_RUNTIME, type InAppWorkerBinding, InAppWorkerBootstrap, ON_EVENT_METADATA, On, OnDurableEvent, OnEvent, ProxyRunGateway, RUN_GATEWAY, RUN_REDIS_WORKER, type RunLookupStore, type RunRedisWorkerFn, RunRequestResponder, type RunRequestTransport, STEP_INTERCEPTOR_METADATA, Step, StepInterceptor, type StepOptions, StoreRunGateway, TenantEventRepublisher, ThinStepRegistrar, ThinWorkerBootstrap, ThinWorkflowRegistrar, type UserRef, WORKFLOW_METADATA, Workflow, type WorkflowAttributesOf, type WorkflowMeta, type WorkflowOptions, WorkflowService, attributesOf, entityConfigFor, getDurableStepMeta, getEntityMeta, getOnEvents, getWorkflowMeta, inAppWorkerProviders, isDeadLetterHandler, isDrivingOperator, isOperatorRole, isStepInterceptor, thinWorkerProviders, unavailableRunGateway };
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
4
|
-
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
5
|
-
}) : x)(function(x) {
|
|
6
|
-
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
7
|
-
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
8
|
-
});
|
|
9
3
|
|
|
10
4
|
// src/attributes-of.ts
|
|
11
5
|
import { readSearchAttributes } from "@dudousxd/nestjs-durable-core";
|
|
@@ -244,9 +238,29 @@ function attributesOf(workflow, run) {
|
|
|
244
238
|
__name(attributesOf, "attributesOf");
|
|
245
239
|
|
|
246
240
|
// src/durable-start-client.ts
|
|
247
|
-
import { startRun } from "@dudousxd/durable-worker";
|
|
248
241
|
import { workflowName } from "@dudousxd/nestjs-durable-core";
|
|
249
242
|
import { Injectable } from "@nestjs/common";
|
|
243
|
+
|
|
244
|
+
// src/worker-sdk.ts
|
|
245
|
+
async function workerSdk() {
|
|
246
|
+
try {
|
|
247
|
+
return await import("@dudousxd/durable-worker");
|
|
248
|
+
} catch (cause) {
|
|
249
|
+
throw new Error("@dudousxd/durable-worker is not installed. It is an optional peer needed only by the roles that run workflow bodies (`connection` set on DurableModule.forRoot) \u2014 install it, or drop `connection`.", {
|
|
250
|
+
cause
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
__name(workerSdk, "workerSdk");
|
|
255
|
+
var startRun = /* @__PURE__ */ __name(async (connection, options) => (await workerSdk()).startRun(connection, options), "startRun");
|
|
256
|
+
var runRedisWorker = /* @__PURE__ */ __name(async (options) => (await workerSdk()).runRedisWorker(options), "runRedisWorker");
|
|
257
|
+
async function createWorkerRuntime(options) {
|
|
258
|
+
const { DurableWorkerRuntime: Runtime } = await workerSdk();
|
|
259
|
+
return new Runtime(options);
|
|
260
|
+
}
|
|
261
|
+
__name(createWorkerRuntime, "createWorkerRuntime");
|
|
262
|
+
|
|
263
|
+
// src/durable-start-client.ts
|
|
250
264
|
function _ts_decorate(decorators, target, key, desc) {
|
|
251
265
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
252
266
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -339,7 +353,6 @@ function tenantUnsupported(method) {
|
|
|
339
353
|
__name(tenantUnsupported, "tenantUnsupported");
|
|
340
354
|
|
|
341
355
|
// src/durable-worker.module.ts
|
|
342
|
-
import { DurableWorkerRuntime, runRedisWorker as defaultRunRedisWorker } from "@dudousxd/durable-worker";
|
|
343
356
|
import { DURABLE_OPTIONS_CANONICAL } from "@dudousxd/nestjs-durable-core";
|
|
344
357
|
import { Inject, Injectable as Injectable2 } from "@nestjs/common";
|
|
345
358
|
import { DiscoveryService, MetadataScanner } from "@nestjs/core";
|
|
@@ -400,6 +413,7 @@ function _ts_param(paramIndex, decorator) {
|
|
|
400
413
|
}
|
|
401
414
|
__name(_ts_param, "_ts_param");
|
|
402
415
|
var RUN_REDIS_WORKER = Symbol("nestjs-durable:run-redis-worker");
|
|
416
|
+
var DURABLE_WORKER_RUNTIME = Symbol("nestjs-durable:worker-runtime");
|
|
403
417
|
var DURABLE_WORKER_RUNNERS = Symbol("nestjs-durable:worker-runners");
|
|
404
418
|
function isPureThinWorker(options) {
|
|
405
419
|
return options.store === void 0 && options.connection !== void 0;
|
|
@@ -418,8 +432,9 @@ var ThinWorkflowRegistrar = class {
|
|
|
418
432
|
this.options = options;
|
|
419
433
|
}
|
|
420
434
|
onModuleInit() {
|
|
421
|
-
|
|
422
|
-
|
|
435
|
+
const runtime = this.runtime;
|
|
436
|
+
if (runtime === null || !isPureThinWorker(this.options)) return;
|
|
437
|
+
scanWorkflows(this.discovery, (meta, instance, origin) => runtime.registerWorkflow(meta.name, (ctx, input) => instance.run(ctx, input), {
|
|
423
438
|
version: meta.version,
|
|
424
439
|
...meta.requires !== void 0 ? {
|
|
425
440
|
requires: meta.requires
|
|
@@ -432,11 +447,12 @@ var ThinWorkflowRegistrar = class {
|
|
|
432
447
|
};
|
|
433
448
|
ThinWorkflowRegistrar = _ts_decorate2([
|
|
434
449
|
Injectable2(),
|
|
450
|
+
_ts_param(1, Inject(DURABLE_WORKER_RUNTIME)),
|
|
435
451
|
_ts_param(2, Inject(DURABLE_OPTIONS_CANONICAL)),
|
|
436
452
|
_ts_metadata2("design:type", Function),
|
|
437
453
|
_ts_metadata2("design:paramtypes", [
|
|
438
454
|
typeof DiscoveryService === "undefined" ? Object : DiscoveryService,
|
|
439
|
-
|
|
455
|
+
Object,
|
|
440
456
|
typeof DurableModuleOptions === "undefined" ? Object : DurableModuleOptions
|
|
441
457
|
])
|
|
442
458
|
], ThinWorkflowRegistrar);
|
|
@@ -455,18 +471,20 @@ var ThinStepRegistrar = class {
|
|
|
455
471
|
this.options = options;
|
|
456
472
|
}
|
|
457
473
|
onModuleInit() {
|
|
458
|
-
|
|
459
|
-
|
|
474
|
+
const runtime = this.runtime;
|
|
475
|
+
if (runtime === null || !isPureThinWorker(this.options)) return;
|
|
476
|
+
scanSteps(this.discovery, this.metadataScanner, (meta, handler) => runtime.registerStep(meta.name, handler));
|
|
460
477
|
}
|
|
461
478
|
};
|
|
462
479
|
ThinStepRegistrar = _ts_decorate2([
|
|
463
480
|
Injectable2(),
|
|
481
|
+
_ts_param(2, Inject(DURABLE_WORKER_RUNTIME)),
|
|
464
482
|
_ts_param(3, Inject(DURABLE_OPTIONS_CANONICAL)),
|
|
465
483
|
_ts_metadata2("design:type", Function),
|
|
466
484
|
_ts_metadata2("design:paramtypes", [
|
|
467
485
|
typeof DiscoveryService === "undefined" ? Object : DiscoveryService,
|
|
468
486
|
typeof MetadataScanner === "undefined" ? Object : MetadataScanner,
|
|
469
|
-
|
|
487
|
+
Object,
|
|
470
488
|
typeof DurableModuleOptions === "undefined" ? Object : DurableModuleOptions
|
|
471
489
|
])
|
|
472
490
|
], ThinStepRegistrar);
|
|
@@ -479,17 +497,18 @@ var ThinWorkerBootstrap = class {
|
|
|
479
497
|
runRedisWorker;
|
|
480
498
|
runnersSink;
|
|
481
499
|
runners = [];
|
|
482
|
-
constructor(runtime, options,
|
|
500
|
+
constructor(runtime, options, runRedisWorker2, runnersSink) {
|
|
483
501
|
this.runtime = runtime;
|
|
484
502
|
this.options = options;
|
|
485
|
-
this.runRedisWorker =
|
|
503
|
+
this.runRedisWorker = runRedisWorker2;
|
|
486
504
|
this.runnersSink = runnersSink;
|
|
487
505
|
}
|
|
488
506
|
async onApplicationBootstrap() {
|
|
489
507
|
const options = this.options;
|
|
490
|
-
|
|
508
|
+
const runtime = this.runtime;
|
|
509
|
+
if (runtime === null || !isPureThinWorker(options) || options.connection === void 0) return;
|
|
491
510
|
const handle = await this.runRedisWorker({
|
|
492
|
-
runtime
|
|
511
|
+
runtime,
|
|
493
512
|
connection: options.connection,
|
|
494
513
|
...options.partition !== void 0 ? {
|
|
495
514
|
partition: options.partition
|
|
@@ -513,12 +532,13 @@ var ThinWorkerBootstrap = class {
|
|
|
513
532
|
};
|
|
514
533
|
ThinWorkerBootstrap = _ts_decorate2([
|
|
515
534
|
Injectable2(),
|
|
535
|
+
_ts_param(0, Inject(DURABLE_WORKER_RUNTIME)),
|
|
516
536
|
_ts_param(1, Inject(DURABLE_OPTIONS_CANONICAL)),
|
|
517
537
|
_ts_param(2, Inject(RUN_REDIS_WORKER)),
|
|
518
538
|
_ts_param(3, Inject(DURABLE_WORKER_RUNNERS)),
|
|
519
539
|
_ts_metadata2("design:type", Function),
|
|
520
540
|
_ts_metadata2("design:paramtypes", [
|
|
521
|
-
|
|
541
|
+
Object,
|
|
522
542
|
typeof DurableModuleOptions === "undefined" ? Object : DurableModuleOptions,
|
|
523
543
|
typeof RunRedisWorkerFn === "undefined" ? Object : RunRedisWorkerFn,
|
|
524
544
|
Array
|
|
@@ -527,7 +547,7 @@ ThinWorkerBootstrap = _ts_decorate2([
|
|
|
527
547
|
function thinWorkerProviders() {
|
|
528
548
|
return [
|
|
529
549
|
{
|
|
530
|
-
provide:
|
|
550
|
+
provide: DURABLE_WORKER_RUNTIME,
|
|
531
551
|
// The runtime's `WorkflowWorker` falls back to its own `group` ctor param as the WORKFLOW's
|
|
532
552
|
// `workflowPartition` for any `ctx.step` call (see `workflow-context.ts`'s `resolveCallGroup`)
|
|
533
553
|
// — that fallback MUST equal this module's own `partition`, or a dispatched step's decision
|
|
@@ -535,16 +555,20 @@ function thinWorkerProviders() {
|
|
|
535
555
|
// to. Explicit `''` (never
|
|
536
556
|
// `undefined`) so it does NOT fall through to `WorkflowWorker`'s unrelated `'workflows'`
|
|
537
557
|
// default parameter.
|
|
538
|
-
|
|
558
|
+
//
|
|
559
|
+
// The role gate lives HERE, not just in the consumers: constructing the runtime resolves the
|
|
560
|
+
// optional `@dudousxd/durable-worker` peer, so an operator that never runs a worker must not
|
|
561
|
+
// reach this branch at all.
|
|
562
|
+
useFactory: /* @__PURE__ */ __name((options) => isPureThinWorker(options) ? createWorkerRuntime({
|
|
539
563
|
workflowGroup: options.partition ?? ""
|
|
540
|
-
}), "useFactory"),
|
|
564
|
+
}) : null, "useFactory"),
|
|
541
565
|
inject: [
|
|
542
566
|
DURABLE_OPTIONS_CANONICAL
|
|
543
567
|
]
|
|
544
568
|
},
|
|
545
569
|
{
|
|
546
570
|
provide: RUN_REDIS_WORKER,
|
|
547
|
-
useValue:
|
|
571
|
+
useValue: runRedisWorker
|
|
548
572
|
},
|
|
549
573
|
{
|
|
550
574
|
provide: DURABLE_WORKER_RUNNERS,
|
|
@@ -764,7 +788,6 @@ EntityService = _ts_decorate4([
|
|
|
764
788
|
], EntityService);
|
|
765
789
|
|
|
766
790
|
// src/in-app-worker.ts
|
|
767
|
-
import { DurableWorkerRuntime as DurableWorkerRuntime2, runRedisWorker as defaultRunRedisWorker2 } from "@dudousxd/durable-worker";
|
|
768
791
|
import { DURABLE_OPTIONS_CANONICAL as DURABLE_OPTIONS_CANONICAL3, TRANSPORT_CANONICAL as TRANSPORT_CANONICAL2 } from "@dudousxd/nestjs-durable-core";
|
|
769
792
|
import { Inject as Inject3, Injectable as Injectable5 } from "@nestjs/common";
|
|
770
793
|
import { DiscoveryService as DiscoveryService3, MetadataScanner as MetadataScanner3 } from "@nestjs/core";
|
|
@@ -817,17 +840,18 @@ var InAppWorkerBootstrap = class {
|
|
|
817
840
|
runRedisWorker;
|
|
818
841
|
runnersSink;
|
|
819
842
|
runners = [];
|
|
820
|
-
constructor(discovery, metadataScanner, options, runtime,
|
|
843
|
+
constructor(discovery, metadataScanner, options, runtime, runRedisWorker2, runnersSink) {
|
|
821
844
|
this.discovery = discovery;
|
|
822
845
|
this.metadataScanner = metadataScanner;
|
|
823
846
|
this.options = options;
|
|
824
847
|
this.runtime = runtime;
|
|
825
|
-
this.runRedisWorker =
|
|
848
|
+
this.runRedisWorker = runRedisWorker2;
|
|
826
849
|
this.runnersSink = runnersSink;
|
|
827
850
|
}
|
|
828
851
|
onModuleInit() {
|
|
829
|
-
|
|
830
|
-
|
|
852
|
+
const runtime = this.runtime;
|
|
853
|
+
if (runtime === null || !isCoLocatedWorker(this.options)) return;
|
|
854
|
+
scanWorkflows(this.discovery, (meta, instance, origin) => runtime.registerWorkflow(meta.name, (ctx, input) => instance.run(ctx, input), {
|
|
831
855
|
version: meta.version,
|
|
832
856
|
...meta.requires !== void 0 ? {
|
|
833
857
|
requires: meta.requires
|
|
@@ -836,13 +860,14 @@ var InAppWorkerBootstrap = class {
|
|
|
836
860
|
origin
|
|
837
861
|
} : {}
|
|
838
862
|
}));
|
|
839
|
-
scanSteps(this.discovery, this.metadataScanner, (meta, handler) =>
|
|
863
|
+
scanSteps(this.discovery, this.metadataScanner, (meta, handler) => runtime.registerStep(meta.name, handler));
|
|
840
864
|
}
|
|
841
865
|
async onApplicationBootstrap() {
|
|
842
866
|
const options = this.options;
|
|
843
|
-
|
|
867
|
+
const runtime = this.runtime;
|
|
868
|
+
if (runtime === null || !isCoLocatedWorker(options) || options.connection === void 0) return;
|
|
844
869
|
const handle = await this.runRedisWorker({
|
|
845
|
-
runtime
|
|
870
|
+
runtime,
|
|
846
871
|
connection: options.connection,
|
|
847
872
|
...options.partition !== void 0 ? {
|
|
848
873
|
partition: options.partition
|
|
@@ -875,7 +900,7 @@ InAppWorkerBootstrap = _ts_decorate5([
|
|
|
875
900
|
typeof DiscoveryService3 === "undefined" ? Object : DiscoveryService3,
|
|
876
901
|
typeof MetadataScanner3 === "undefined" ? Object : MetadataScanner3,
|
|
877
902
|
typeof DurableModuleOptions === "undefined" ? Object : DurableModuleOptions,
|
|
878
|
-
|
|
903
|
+
Object,
|
|
879
904
|
typeof RunRedisWorkerFn === "undefined" ? Object : RunRedisWorkerFn,
|
|
880
905
|
Array
|
|
881
906
|
])
|
|
@@ -899,16 +924,20 @@ function inAppWorkerProviders() {
|
|
|
899
924
|
// to. Explicit `''` (never
|
|
900
925
|
// `undefined`) so it does NOT fall through to `WorkflowWorker`'s unrelated `'workflows'`
|
|
901
926
|
// default parameter.
|
|
902
|
-
|
|
927
|
+
//
|
|
928
|
+
// The role gate lives HERE, not just in the consumer: constructing the runtime resolves the
|
|
929
|
+
// optional `@dudousxd/durable-worker` peer, so an operator that never runs a worker must not
|
|
930
|
+
// reach this branch at all.
|
|
931
|
+
useFactory: /* @__PURE__ */ __name((options) => isCoLocatedWorker(options) ? createWorkerRuntime({
|
|
903
932
|
workflowGroup: options.partition ?? ""
|
|
904
|
-
}), "useFactory"),
|
|
933
|
+
}) : null, "useFactory"),
|
|
905
934
|
inject: [
|
|
906
935
|
DURABLE_OPTIONS_CANONICAL3
|
|
907
936
|
]
|
|
908
937
|
},
|
|
909
938
|
{
|
|
910
939
|
provide: IN_APP_RUN_REDIS_WORKER,
|
|
911
|
-
useValue:
|
|
940
|
+
useValue: runRedisWorker
|
|
912
941
|
},
|
|
913
942
|
{
|
|
914
943
|
provide: IN_APP_WORKER_RUNNERS,
|
|
@@ -1668,15 +1697,15 @@ import { DiscoveryService as DiscoveryService4, MetadataScanner as MetadataScann
|
|
|
1668
1697
|
|
|
1669
1698
|
// src/input-validation.ts
|
|
1670
1699
|
function classValidatorInput(cls) {
|
|
1671
|
-
let cv;
|
|
1672
|
-
let ct;
|
|
1673
|
-
try {
|
|
1674
|
-
cv = __require("class-validator");
|
|
1675
|
-
ct = __require("class-transformer");
|
|
1676
|
-
} catch {
|
|
1677
|
-
throw new Error('@Workflow({ inputSchema }) needs the optional peers "class-validator" and "class-transformer" \u2014 install them, or pass a `validateInput` function instead.');
|
|
1678
|
-
}
|
|
1679
1700
|
return async (input) => {
|
|
1701
|
+
let cv;
|
|
1702
|
+
let ct;
|
|
1703
|
+
try {
|
|
1704
|
+
cv = await import("class-validator");
|
|
1705
|
+
ct = await import("class-transformer");
|
|
1706
|
+
} catch {
|
|
1707
|
+
throw new Error('@Workflow({ inputSchema }) needs the optional peers "class-validator" and "class-transformer" \u2014 install them, or pass a `validateInput` function instead.');
|
|
1708
|
+
}
|
|
1680
1709
|
const instance = ct.plainToInstance(cls, input);
|
|
1681
1710
|
const errors = await cv.validate(instance, {
|
|
1682
1711
|
whitelist: true
|
|
@@ -2364,6 +2393,7 @@ export {
|
|
|
2364
2393
|
DEAD_LETTER_METADATA,
|
|
2365
2394
|
DURABLE_STEP_METADATA,
|
|
2366
2395
|
DURABLE_WORKER_RUNNERS,
|
|
2396
|
+
DURABLE_WORKER_RUNTIME,
|
|
2367
2397
|
DeadLetter,
|
|
2368
2398
|
DurableModule,
|
|
2369
2399
|
DurableStartClient,
|