@dudousxd/nestjs-durable 0.51.0 → 0.52.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +166 -107
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +112 -38
- package/dist/index.d.ts +112 -38
- package/dist/index.js +71 -15
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
package/dist/index.cjs
CHANGED
|
@@ -58,7 +58,8 @@ __export(index_exports, {
|
|
|
58
58
|
ProxyRunGateway: () => ProxyRunGateway,
|
|
59
59
|
RUN_GATEWAY: () => RUN_GATEWAY,
|
|
60
60
|
RUN_REDIS_WORKER: () => RUN_REDIS_WORKER,
|
|
61
|
-
RunGateway: () =>
|
|
61
|
+
RunGateway: () => import_nestjs_durable_core19.RunGateway,
|
|
62
|
+
RunGatewayError: () => RunGatewayError,
|
|
62
63
|
RunRequestResponder: () => RunRequestResponder,
|
|
63
64
|
STEP_INTERCEPTOR_METADATA: () => STEP_INTERCEPTOR_METADATA,
|
|
64
65
|
Step: () => Step,
|
|
@@ -71,7 +72,7 @@ __export(index_exports, {
|
|
|
71
72
|
UNSUPPORTED_RUN_REQUEST: () => UNSUPPORTED_RUN_REQUEST,
|
|
72
73
|
WORKFLOW_METADATA: () => WORKFLOW_METADATA,
|
|
73
74
|
Workflow: () => Workflow,
|
|
74
|
-
WorkflowEngine: () =>
|
|
75
|
+
WorkflowEngine: () => import_nestjs_durable_core19.WorkflowEngine,
|
|
75
76
|
WorkflowService: () => WorkflowService,
|
|
76
77
|
attributesOf: () => attributesOf,
|
|
77
78
|
entityConfigFor: () => entityConfigFor,
|
|
@@ -79,17 +80,19 @@ __export(index_exports, {
|
|
|
79
80
|
getEntityMeta: () => getEntityMeta,
|
|
80
81
|
getOnEvents: () => getOnEvents,
|
|
81
82
|
getWorkflowMeta: () => getWorkflowMeta,
|
|
83
|
+
hmacTenantVerifier: () => import_nestjs_durable_core19.hmacTenantVerifier,
|
|
82
84
|
inAppWorkerProviders: () => inAppWorkerProviders,
|
|
83
85
|
isDeadLetterHandler: () => isDeadLetterHandler,
|
|
84
86
|
isDrivingOperator: () => isDrivingOperator,
|
|
85
87
|
isOperatorRole: () => isOperatorRole,
|
|
86
88
|
isStepInterceptor: () => isStepInterceptor,
|
|
87
89
|
onErrorCodesOf: () => onErrorCodesOf,
|
|
88
|
-
prevCronFireMs: () =>
|
|
89
|
-
readSearchAttributes: () =>
|
|
90
|
-
runSchedules: () =>
|
|
91
|
-
scheduleRunIdAt: () =>
|
|
92
|
-
scheduledRunId: () =>
|
|
90
|
+
prevCronFireMs: () => import_nestjs_durable_core19.prevCronFireMs,
|
|
91
|
+
readSearchAttributes: () => import_nestjs_durable_core19.readSearchAttributes,
|
|
92
|
+
runSchedules: () => import_nestjs_durable_core19.runSchedules,
|
|
93
|
+
scheduleRunIdAt: () => import_nestjs_durable_core19.scheduleRunIdAt,
|
|
94
|
+
scheduledRunId: () => import_nestjs_durable_core19.scheduledRunId,
|
|
95
|
+
signTenantToken: () => import_nestjs_durable_core19.signTenantToken,
|
|
93
96
|
thinWorkerProviders: () => thinWorkerProviders,
|
|
94
97
|
unavailableRunGateway: () => unavailableRunGateway
|
|
95
98
|
});
|
|
@@ -416,7 +419,9 @@ var DurableStartClient = class {
|
|
|
416
419
|
async start(workflow, input, runId = globalThis.crypto.randomUUID(), opts) {
|
|
417
420
|
const name = (0, import_nestjs_durable_core3.workflowName)(workflow);
|
|
418
421
|
await startRun(this.options.connection, {
|
|
419
|
-
tenant
|
|
422
|
+
// The signed token (when configured) rides in the `tenant` field, as on every run request; an
|
|
423
|
+
// operator with `verifyTenant` derives the run's namespace from it.
|
|
424
|
+
tenant: this.options.tenantToken !== void 0 ? await (0, import_nestjs_durable_core3.resolveTenantToken)(this.options.tenantToken) : this.tenant,
|
|
420
425
|
workflow: name,
|
|
421
426
|
input,
|
|
422
427
|
runId,
|
|
@@ -917,7 +922,7 @@ function unavailableRunGateway() {
|
|
|
917
922
|
__name(unavailableRunGateway, "unavailableRunGateway");
|
|
918
923
|
|
|
919
924
|
// src/durable.module.ts
|
|
920
|
-
var
|
|
925
|
+
var import_nestjs_durable_core18 = require("@dudousxd/nestjs-durable-core");
|
|
921
926
|
var import_common12 = require("@nestjs/common");
|
|
922
927
|
var import_core5 = require("@nestjs/core");
|
|
923
928
|
|
|
@@ -1253,10 +1258,11 @@ function inAppWorkerProviders() {
|
|
|
1253
1258
|
__name(inAppWorkerProviders, "inAppWorkerProviders");
|
|
1254
1259
|
|
|
1255
1260
|
// src/proxy-run-gateway.ts
|
|
1256
|
-
var
|
|
1261
|
+
var import_nestjs_durable_core11 = require("@dudousxd/nestjs-durable-core");
|
|
1257
1262
|
var import_common6 = require("@nestjs/common");
|
|
1258
1263
|
|
|
1259
1264
|
// src/run-request-responder.ts
|
|
1265
|
+
var import_nestjs_durable_core10 = require("@dudousxd/nestjs-durable-core");
|
|
1260
1266
|
var UNSUPPORTED_RUN_REQUEST = "unsupported-request";
|
|
1261
1267
|
var KNOWN_KINDS = /* @__PURE__ */ new Set([
|
|
1262
1268
|
"getRunDetail",
|
|
@@ -1278,9 +1284,14 @@ var RunRequestResponder = class {
|
|
|
1278
1284
|
}
|
|
1279
1285
|
transport;
|
|
1280
1286
|
gateway;
|
|
1281
|
-
|
|
1287
|
+
verifyTenant;
|
|
1288
|
+
constructor(transport, gateway, options = {}) {
|
|
1282
1289
|
this.transport = transport;
|
|
1283
1290
|
this.gateway = gateway;
|
|
1291
|
+
this.verifyTenant = options.verifyTenant;
|
|
1292
|
+
if (!this.verifyTenant && options.warnWithoutVerifier !== false) {
|
|
1293
|
+
console.warn("[nestjs-durable] run-request responder started WITHOUT a tenant verifier: the wire `tenant` claim is trusted verbatim (prefix/network isolation only). Any broker client can act as any tenant. Configure `verifyTenant` (e.g. hmacTenantVerifier(secret)) and signed tenant tokens unless your broker is fully isolated per tenant.");
|
|
1294
|
+
}
|
|
1284
1295
|
}
|
|
1285
1296
|
/** Register the consumer on the transport. Each request is answered independently; a handler
|
|
1286
1297
|
* failure never throws back into the transport (errors are captured into an error reply). */
|
|
@@ -1303,7 +1314,24 @@ var RunRequestResponder = class {
|
|
|
1303
1314
|
await this.transport.publishRunReply(reply);
|
|
1304
1315
|
});
|
|
1305
1316
|
}
|
|
1306
|
-
async handle(
|
|
1317
|
+
async handle(wire) {
|
|
1318
|
+
const tenant = await (0, import_nestjs_durable_core10.resolveWireTenant)(wire.tenant, this.verifyTenant);
|
|
1319
|
+
if (tenant === null) {
|
|
1320
|
+
return {
|
|
1321
|
+
requestId: wire.requestId,
|
|
1322
|
+
result: {
|
|
1323
|
+
ok: false,
|
|
1324
|
+
error: {
|
|
1325
|
+
message: "invalid or unauthorized tenant token",
|
|
1326
|
+
code: "unauthorized"
|
|
1327
|
+
}
|
|
1328
|
+
}
|
|
1329
|
+
};
|
|
1330
|
+
}
|
|
1331
|
+
const msg = {
|
|
1332
|
+
...wire,
|
|
1333
|
+
tenant
|
|
1334
|
+
};
|
|
1307
1335
|
const { body } = msg;
|
|
1308
1336
|
if (!KNOWN_KINDS.has(body.kind)) {
|
|
1309
1337
|
return {
|
|
@@ -1479,7 +1507,18 @@ function _ts_metadata6(metadataKey, metadataValue) {
|
|
|
1479
1507
|
}
|
|
1480
1508
|
}
|
|
1481
1509
|
__name(_ts_metadata6, "_ts_metadata");
|
|
1482
|
-
var
|
|
1510
|
+
var RunGatewayError = class extends Error {
|
|
1511
|
+
static {
|
|
1512
|
+
__name(this, "RunGatewayError");
|
|
1513
|
+
}
|
|
1514
|
+
code;
|
|
1515
|
+
constructor(message, code) {
|
|
1516
|
+
super(message);
|
|
1517
|
+
this.name = "RunGatewayError";
|
|
1518
|
+
this.code = code;
|
|
1519
|
+
}
|
|
1520
|
+
};
|
|
1521
|
+
var UnsupportedRunRequestError = class UnsupportedRunRequestError2 extends RunGatewayError {
|
|
1483
1522
|
static {
|
|
1484
1523
|
__name(this, "UnsupportedRunRequestError");
|
|
1485
1524
|
}
|
|
@@ -1496,17 +1535,19 @@ var ProxyRunGateway = class {
|
|
|
1496
1535
|
tenant;
|
|
1497
1536
|
timeoutMs;
|
|
1498
1537
|
capabilityTtlMs;
|
|
1538
|
+
tenantToken;
|
|
1499
1539
|
pending = /* @__PURE__ */ new Map();
|
|
1500
1540
|
/** Verb → when to ask the control plane for it again, after it answered that it does not know it.
|
|
1501
1541
|
* During a rolling upgrade the control plane is several pods of mixed versions behind one queue,
|
|
1502
1542
|
* and a reply does not say which pod sent it, so the whole control plane is assumed old until the
|
|
1503
1543
|
* entry expires. */
|
|
1504
1544
|
unsupportedUntil = /* @__PURE__ */ new Map();
|
|
1505
|
-
constructor(transport, tenant, timeoutMs = 1e4, capabilityTtlMs = 6e4) {
|
|
1545
|
+
constructor(transport, tenant, timeoutMs = 1e4, capabilityTtlMs = 6e4, tenantToken) {
|
|
1506
1546
|
this.transport = transport;
|
|
1507
1547
|
this.tenant = tenant;
|
|
1508
1548
|
this.timeoutMs = timeoutMs;
|
|
1509
1549
|
this.capabilityTtlMs = capabilityTtlMs;
|
|
1550
|
+
this.tenantToken = tenantToken;
|
|
1510
1551
|
this.transport.onRunReply?.((reply) => this.handleReply(reply));
|
|
1511
1552
|
}
|
|
1512
1553
|
handleReply(reply) {
|
|
@@ -1517,12 +1558,17 @@ var ProxyRunGateway = class {
|
|
|
1517
1558
|
if (reply.result.ok) {
|
|
1518
1559
|
pending.resolve(reply.result.data);
|
|
1519
1560
|
} else if (reply.result.error.code === UNSUPPORTED_RUN_REQUEST) {
|
|
1520
|
-
pending.reject(new UnsupportedRunRequestError(reply.result.error.message));
|
|
1561
|
+
pending.reject(new UnsupportedRunRequestError(reply.result.error.message, UNSUPPORTED_RUN_REQUEST));
|
|
1521
1562
|
} else {
|
|
1522
|
-
pending.reject(new
|
|
1563
|
+
pending.reject(new RunGatewayError(reply.result.error.message, reply.result.error.code));
|
|
1523
1564
|
}
|
|
1524
1565
|
}
|
|
1525
1566
|
request(body) {
|
|
1567
|
+
const source = this.tenantToken;
|
|
1568
|
+
if (typeof source !== "function") return this.send(source ?? this.tenant, body);
|
|
1569
|
+
return (0, import_nestjs_durable_core11.resolveTenantToken)(source).then((tenant) => this.send(tenant, body));
|
|
1570
|
+
}
|
|
1571
|
+
send(tenant, body) {
|
|
1526
1572
|
return new Promise((resolve, reject) => {
|
|
1527
1573
|
const requestId = globalThis.crypto.randomUUID();
|
|
1528
1574
|
const timer = setTimeout(() => {
|
|
@@ -1536,9 +1582,9 @@ var ProxyRunGateway = class {
|
|
|
1536
1582
|
});
|
|
1537
1583
|
this.transport.dispatchRunRequest?.({
|
|
1538
1584
|
requestId,
|
|
1539
|
-
tenant
|
|
1585
|
+
tenant,
|
|
1540
1586
|
body
|
|
1541
|
-
})
|
|
1587
|
+
})?.catch((error) => {
|
|
1542
1588
|
const stillPending = this.pending.get(requestId);
|
|
1543
1589
|
if (!stillPending) return;
|
|
1544
1590
|
clearTimeout(stillPending.timer);
|
|
@@ -1568,12 +1614,12 @@ var ProxyRunGateway = class {
|
|
|
1568
1614
|
});
|
|
1569
1615
|
const over = options?.summarizeFansOver;
|
|
1570
1616
|
if (over === void 0 || !detail || detail.fans !== void 0) return detail;
|
|
1571
|
-
const { timeline, fans } = (0,
|
|
1572
|
-
const ids = (0,
|
|
1617
|
+
const { timeline, fans } = (0, import_nestjs_durable_core11.summarizeTimeline)(detail.timeline, over);
|
|
1618
|
+
const ids = (0, import_nestjs_durable_core11.childIdsOf)(detail.timeline);
|
|
1573
1619
|
return {
|
|
1574
1620
|
...detail,
|
|
1575
1621
|
timeline,
|
|
1576
|
-
children: ids.slice(0,
|
|
1622
|
+
children: ids.slice(0, import_nestjs_durable_core11.SUMMARY_CHILD_LIMIT),
|
|
1577
1623
|
fans,
|
|
1578
1624
|
childCount: ids.length
|
|
1579
1625
|
};
|
|
@@ -1598,7 +1644,7 @@ var ProxyRunGateway = class {
|
|
|
1598
1644
|
kind: "getRunDetail",
|
|
1599
1645
|
runId
|
|
1600
1646
|
});
|
|
1601
|
-
return detail ? (0,
|
|
1647
|
+
return detail ? (0, import_nestjs_durable_core11.pageFan)(detail.timeline, group, query) : null;
|
|
1602
1648
|
}
|
|
1603
1649
|
knownUnsupported(kind) {
|
|
1604
1650
|
const until = this.unsupportedUntil.get(kind);
|
|
@@ -1696,12 +1742,13 @@ ProxyRunGateway = _ts_decorate6([
|
|
|
1696
1742
|
typeof Transport === "undefined" ? Object : Transport,
|
|
1697
1743
|
String,
|
|
1698
1744
|
void 0,
|
|
1699
|
-
void 0
|
|
1745
|
+
void 0,
|
|
1746
|
+
typeof TenantTokenSource === "undefined" ? Object : TenantTokenSource
|
|
1700
1747
|
])
|
|
1701
1748
|
], ProxyRunGateway);
|
|
1702
1749
|
|
|
1703
1750
|
// src/retention-poller.ts
|
|
1704
|
-
var
|
|
1751
|
+
var import_nestjs_durable_core12 = require("@dudousxd/nestjs-durable-core");
|
|
1705
1752
|
var import_common7 = require("@nestjs/common");
|
|
1706
1753
|
|
|
1707
1754
|
// src/settle-within.ts
|
|
@@ -1767,10 +1814,10 @@ function validateRetention(retention) {
|
|
|
1767
1814
|
if (policy.maxAge == null && policy.maxCount == null) {
|
|
1768
1815
|
throw new Error("durable retention: each policy must set maxAge and/or maxCount");
|
|
1769
1816
|
}
|
|
1770
|
-
if (policy.maxAge != null) (0,
|
|
1817
|
+
if (policy.maxAge != null) (0, import_nestjs_durable_core12.parseDuration)(policy.maxAge);
|
|
1771
1818
|
for (const status of policy.statuses) {
|
|
1772
|
-
if (!
|
|
1773
|
-
throw new Error(`durable retention: status "${status}" is not terminal; only ${
|
|
1819
|
+
if (!import_nestjs_durable_core12.TERMINAL_RUN_STATUSES.includes(status)) {
|
|
1820
|
+
throw new Error(`durable retention: status "${status}" is not terminal; only ${import_nestjs_durable_core12.TERMINAL_RUN_STATUSES.join(", ")} can be pruned`);
|
|
1774
1821
|
}
|
|
1775
1822
|
const key = `${scopeKey}|${status}`;
|
|
1776
1823
|
if (seen.has(key)) {
|
|
@@ -1822,7 +1869,7 @@ var RetentionPoller = class {
|
|
|
1822
1869
|
return;
|
|
1823
1870
|
}
|
|
1824
1871
|
await this.sweep();
|
|
1825
|
-
const intervalMs = retention.sweepInterval != null ? (0,
|
|
1872
|
+
const intervalMs = retention.sweepInterval != null ? (0, import_nestjs_durable_core12.parseDuration)(retention.sweepInterval) : DEFAULT_SWEEP_INTERVAL_MS;
|
|
1826
1873
|
if (intervalMs > 0) {
|
|
1827
1874
|
this.timer = setInterval(() => void this.sweep(), intervalMs);
|
|
1828
1875
|
this.timer.unref?.();
|
|
@@ -1884,8 +1931,8 @@ var RetentionPoller = class {
|
|
|
1884
1931
|
};
|
|
1885
1932
|
RetentionPoller = _ts_decorate7([
|
|
1886
1933
|
(0, import_common7.Injectable)(),
|
|
1887
|
-
_ts_param4(0, (0, import_common7.Inject)(
|
|
1888
|
-
_ts_param4(1, (0, import_common7.Inject)(
|
|
1934
|
+
_ts_param4(0, (0, import_common7.Inject)(import_nestjs_durable_core12.STATE_STORE_CANONICAL)),
|
|
1935
|
+
_ts_param4(1, (0, import_common7.Inject)(import_nestjs_durable_core12.DURABLE_OPTIONS_CANONICAL)),
|
|
1889
1936
|
_ts_metadata7("design:type", Function),
|
|
1890
1937
|
_ts_metadata7("design:paramtypes", [
|
|
1891
1938
|
Object,
|
|
@@ -1894,7 +1941,7 @@ RetentionPoller = _ts_decorate7([
|
|
|
1894
1941
|
], RetentionPoller);
|
|
1895
1942
|
|
|
1896
1943
|
// src/store-run-gateway.ts
|
|
1897
|
-
var
|
|
1944
|
+
var import_nestjs_durable_core13 = require("@dudousxd/nestjs-durable-core");
|
|
1898
1945
|
var import_common8 = require("@nestjs/common");
|
|
1899
1946
|
function _ts_decorate8(decorators, target, key, desc) {
|
|
1900
1947
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -1952,10 +1999,10 @@ var StoreRunGateway = class {
|
|
|
1952
1999
|
children
|
|
1953
2000
|
};
|
|
1954
2001
|
}
|
|
1955
|
-
if ((0,
|
|
2002
|
+
if ((0, import_nestjs_durable_core13.aggregatesCheckpoints)(this.store)) {
|
|
1956
2003
|
const stats = await this.store.checkpointStats(runId);
|
|
1957
|
-
const etag = (0,
|
|
1958
|
-
if ((0,
|
|
2004
|
+
const etag = (0, import_nestjs_durable_core13.runDetailEtag)(run, stats, over);
|
|
2005
|
+
if ((0, import_nestjs_durable_core13.etagMatches)(options?.ifNoneMatch, etag)) {
|
|
1959
2006
|
return {
|
|
1960
2007
|
run,
|
|
1961
2008
|
timeline: [],
|
|
@@ -1966,17 +2013,17 @@ var StoreRunGateway = class {
|
|
|
1966
2013
|
}
|
|
1967
2014
|
return {
|
|
1968
2015
|
run,
|
|
1969
|
-
...await (0,
|
|
2016
|
+
...await (0, import_nestjs_durable_core13.summarizeRunFromStore)(this.store, runId, over, stats),
|
|
1970
2017
|
etag
|
|
1971
2018
|
};
|
|
1972
2019
|
}
|
|
1973
2020
|
const full = await this.store.listCheckpoints(runId);
|
|
1974
|
-
const { timeline, fans } = (0,
|
|
1975
|
-
const ids = (0,
|
|
2021
|
+
const { timeline, fans } = (0, import_nestjs_durable_core13.summarizeTimeline)(full, over);
|
|
2022
|
+
const ids = (0, import_nestjs_durable_core13.childIdsOf)(full);
|
|
1976
2023
|
return {
|
|
1977
2024
|
run,
|
|
1978
2025
|
timeline,
|
|
1979
|
-
children: ids.slice(0,
|
|
2026
|
+
children: ids.slice(0, import_nestjs_durable_core13.SUMMARY_CHILD_LIMIT),
|
|
1980
2027
|
fans,
|
|
1981
2028
|
childCount: ids.length
|
|
1982
2029
|
};
|
|
@@ -1986,12 +2033,12 @@ var StoreRunGateway = class {
|
|
|
1986
2033
|
}
|
|
1987
2034
|
async getFanMembers(runId, group, query) {
|
|
1988
2035
|
if (!await this.store.getRun(runId)) return null;
|
|
1989
|
-
if ((0,
|
|
2036
|
+
if ((0, import_nestjs_durable_core13.aggregatesCheckpoints)(this.store)) {
|
|
1990
2037
|
const stats = await this.store.checkpointStats(runId, {
|
|
1991
2038
|
group
|
|
1992
2039
|
});
|
|
1993
|
-
const etag = (0,
|
|
1994
|
-
if ((0,
|
|
2040
|
+
const etag = (0, import_nestjs_durable_core13.fanPageEtag)(group, stats, query);
|
|
2041
|
+
if ((0, import_nestjs_durable_core13.etagMatches)(query.ifNoneMatch, etag)) {
|
|
1995
2042
|
return {
|
|
1996
2043
|
items: [],
|
|
1997
2044
|
total: 0,
|
|
@@ -2000,17 +2047,17 @@ var StoreRunGateway = class {
|
|
|
2000
2047
|
};
|
|
2001
2048
|
}
|
|
2002
2049
|
return {
|
|
2003
|
-
...await (0,
|
|
2050
|
+
...await (0, import_nestjs_durable_core13.pageFanFromStore)(this.store, runId, group, query, stats),
|
|
2004
2051
|
etag
|
|
2005
2052
|
};
|
|
2006
2053
|
}
|
|
2007
|
-
return (0,
|
|
2054
|
+
return (0, import_nestjs_durable_core13.pageFan)(await this.store.listCheckpoints(runId), group, query);
|
|
2008
2055
|
}
|
|
2009
2056
|
async listRuns(query) {
|
|
2010
2057
|
const runs = await this.store.listRuns(query);
|
|
2011
|
-
const waiterByRun = (0,
|
|
2058
|
+
const waiterByRun = (0, import_nestjs_durable_core13.indexWaitersByRun)(await (0, import_nestjs_durable_core13.listSignalWaitersOfRuns)(this.store, runs.filter((run) => run.status === "suspended").map((run) => run.id)));
|
|
2012
2059
|
return runs.map((run) => {
|
|
2013
|
-
const waiting = (0,
|
|
2060
|
+
const waiting = (0, import_nestjs_durable_core13.resolveRunWaiting)(run, waiterByRun);
|
|
2014
2061
|
return waiting ? {
|
|
2015
2062
|
...run,
|
|
2016
2063
|
waiting
|
|
@@ -2026,7 +2073,7 @@ var StoreRunGateway = class {
|
|
|
2026
2073
|
async runFacets(query) {
|
|
2027
2074
|
if (this.store.runFacets) return this.store.runFacets(query);
|
|
2028
2075
|
const runs = await this.store.listRuns(query);
|
|
2029
|
-
return (0,
|
|
2076
|
+
return (0, import_nestjs_durable_core13.mergeRunFacetRows)(runs.map((r) => ({
|
|
2030
2077
|
status: r.status,
|
|
2031
2078
|
origin: r.origin,
|
|
2032
2079
|
count: 1
|
|
@@ -2061,13 +2108,13 @@ var StoreRunGateway = class {
|
|
|
2061
2108
|
"suspended"
|
|
2062
2109
|
]
|
|
2063
2110
|
}),
|
|
2064
|
-
(0,
|
|
2111
|
+
(0, import_nestjs_durable_core13.listSignalWaitersOfRuns)(this.store, runIds)
|
|
2065
2112
|
]);
|
|
2066
|
-
const waiterByRun = (0,
|
|
2113
|
+
const waiterByRun = (0, import_nestjs_durable_core13.indexWaitersByRun)(waiters);
|
|
2067
2114
|
const result = {};
|
|
2068
2115
|
for (const run of suspended) {
|
|
2069
2116
|
if (!idSet.has(run.id)) continue;
|
|
2070
|
-
const waiting = (0,
|
|
2117
|
+
const waiting = (0, import_nestjs_durable_core13.resolveRunWaiting)(run, waiterByRun);
|
|
2071
2118
|
if (waiting) result[run.id] = waiting;
|
|
2072
2119
|
}
|
|
2073
2120
|
return result;
|
|
@@ -2101,11 +2148,11 @@ var StoreRunGateway = class {
|
|
|
2101
2148
|
};
|
|
2102
2149
|
StoreRunGateway = _ts_decorate8([
|
|
2103
2150
|
(0, import_common8.Injectable)(),
|
|
2104
|
-
_ts_param5(0, (0, import_common8.Inject)(
|
|
2151
|
+
_ts_param5(0, (0, import_common8.Inject)(import_nestjs_durable_core13.STATE_STORE_CANONICAL)),
|
|
2105
2152
|
_ts_metadata8("design:type", Function),
|
|
2106
2153
|
_ts_metadata8("design:paramtypes", [
|
|
2107
2154
|
typeof StateStore === "undefined" ? Object : StateStore,
|
|
2108
|
-
typeof
|
|
2155
|
+
typeof import_nestjs_durable_core13.WorkflowEngine === "undefined" ? Object : import_nestjs_durable_core13.WorkflowEngine
|
|
2109
2156
|
])
|
|
2110
2157
|
], StoreRunGateway);
|
|
2111
2158
|
|
|
@@ -2151,7 +2198,7 @@ var TenantEventRepublisher = class {
|
|
|
2151
2198
|
};
|
|
2152
2199
|
|
|
2153
2200
|
// src/timer-poller.ts
|
|
2154
|
-
var
|
|
2201
|
+
var import_nestjs_durable_core14 = require("@dudousxd/nestjs-durable-core");
|
|
2155
2202
|
var import_common9 = require("@nestjs/common");
|
|
2156
2203
|
function _ts_decorate9(decorators, target, key, desc) {
|
|
2157
2204
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -2195,7 +2242,7 @@ var TimerPoller = class {
|
|
|
2195
2242
|
this.options = options;
|
|
2196
2243
|
}
|
|
2197
2244
|
async onApplicationBootstrap() {
|
|
2198
|
-
for (const s of this.options.schedules ?? []) (0,
|
|
2245
|
+
for (const s of this.options.schedules ?? []) (0, import_nestjs_durable_core14.workflowName)(s.workflow);
|
|
2199
2246
|
if (!isDrivingOperator(this.options)) return;
|
|
2200
2247
|
this.unsubscribeEnqueued = this.engine.onEnqueued((runId) => {
|
|
2201
2248
|
void this.engine.runOne(runId).catch((error) => {
|
|
@@ -2265,7 +2312,7 @@ var TimerPoller = class {
|
|
|
2265
2312
|
await this.sweep("sweepStalled", async () => this.engine.sweepStalled?.());
|
|
2266
2313
|
const schedules = this.options.schedules;
|
|
2267
2314
|
if (schedules && schedules.length > 0) {
|
|
2268
|
-
await this.sweep("schedules", () => (0,
|
|
2315
|
+
await this.sweep("schedules", () => (0, import_nestjs_durable_core14.runSchedules)(this.engine, schedules, Date.now()));
|
|
2269
2316
|
}
|
|
2270
2317
|
if (this.options.persistedSchedules) {
|
|
2271
2318
|
await this.sweep("persistedSchedules", () => this.engine.schedules.tick());
|
|
@@ -2283,21 +2330,21 @@ var TimerPoller = class {
|
|
|
2283
2330
|
};
|
|
2284
2331
|
TimerPoller = _ts_decorate9([
|
|
2285
2332
|
(0, import_common9.Injectable)(),
|
|
2286
|
-
_ts_param6(1, (0, import_common9.Inject)(
|
|
2333
|
+
_ts_param6(1, (0, import_common9.Inject)(import_nestjs_durable_core14.DURABLE_OPTIONS_CANONICAL)),
|
|
2287
2334
|
_ts_metadata9("design:type", Function),
|
|
2288
2335
|
_ts_metadata9("design:paramtypes", [
|
|
2289
|
-
typeof
|
|
2336
|
+
typeof import_nestjs_durable_core14.WorkflowEngine === "undefined" ? Object : import_nestjs_durable_core14.WorkflowEngine,
|
|
2290
2337
|
typeof DurableModuleOptions === "undefined" ? Object : DurableModuleOptions
|
|
2291
2338
|
])
|
|
2292
2339
|
], TimerPoller);
|
|
2293
2340
|
|
|
2294
2341
|
// src/tokens.ts
|
|
2295
|
-
var
|
|
2342
|
+
var import_nestjs_durable_core15 = require("@dudousxd/nestjs-durable-core");
|
|
2296
2343
|
var CONTEXT_ACCESSOR = Symbol.for("@dudousxd/nestjs-context:accessor");
|
|
2297
|
-
var RUN_GATEWAY =
|
|
2344
|
+
var RUN_GATEWAY = import_nestjs_durable_core15.RunGateway;
|
|
2298
2345
|
|
|
2299
2346
|
// src/workflow.registrar.ts
|
|
2300
|
-
var
|
|
2347
|
+
var import_nestjs_durable_core16 = require("@dudousxd/nestjs-durable-core");
|
|
2301
2348
|
var import_common10 = require("@nestjs/common");
|
|
2302
2349
|
var import_core4 = require("@nestjs/core");
|
|
2303
2350
|
|
|
@@ -2407,11 +2454,11 @@ var WorkflowRegistrar = class {
|
|
|
2407
2454
|
const body = io.wrap((ctx, input) => workflow.run(ctx, input));
|
|
2408
2455
|
const eventBatch = meta.debounce ? {
|
|
2409
2456
|
mode: "debounce",
|
|
2410
|
-
windowMs: (0,
|
|
2457
|
+
windowMs: (0, import_nestjs_durable_core16.parseDuration)(meta.debounce)
|
|
2411
2458
|
} : meta.batch ? {
|
|
2412
2459
|
mode: "batch",
|
|
2413
2460
|
maxSize: meta.batch.maxSize,
|
|
2414
|
-
windowMs: (0,
|
|
2461
|
+
windowMs: (0, import_nestjs_durable_core16.parseDuration)(meta.batch.within)
|
|
2415
2462
|
} : void 0;
|
|
2416
2463
|
const workflowCtor = workflow.constructor;
|
|
2417
2464
|
const onError = onErrorHandlersOf(meta, workflow, this.metadataScanner);
|
|
@@ -2445,11 +2492,11 @@ var WorkflowRegistrar = class {
|
|
|
2445
2492
|
// so a turn dispatched under the wrong token would never be consumed. Absent → the inline fast
|
|
2446
2493
|
// path (unchanged).
|
|
2447
2494
|
...this.inAppWorker ? {
|
|
2448
|
-
group: (0,
|
|
2449
|
-
executor: new
|
|
2495
|
+
group: (0, import_nestjs_durable_core16.tenantGroup)((0, import_nestjs_durable_core16.sanitizeQueueToken)(meta.name), this.inAppWorker.partition),
|
|
2496
|
+
executor: new import_nestjs_durable_core16.RemoteWorkflowExecutor(this.inAppWorker.transport, meta.name, this.inAppWorker.partition)
|
|
2450
2497
|
} : {}
|
|
2451
2498
|
});
|
|
2452
|
-
(0,
|
|
2499
|
+
(0, import_nestjs_durable_core16.bindWorkflowClass)(workflowCtor, {
|
|
2453
2500
|
start: /* @__PURE__ */ __name((name, input, runId, opts) => this.engine.start(name, input, runId, opts), "start"),
|
|
2454
2501
|
waitForRun: /* @__PURE__ */ __name((runId, opts) => this.engine.waitForRun(runId, opts), "waitForRun")
|
|
2455
2502
|
});
|
|
@@ -2464,7 +2511,7 @@ var WorkflowRegistrar = class {
|
|
|
2464
2511
|
});
|
|
2465
2512
|
deadLetterByWorkflow.set(meta.name, dlqName);
|
|
2466
2513
|
} else if (meta.deadLetterWorkflow) {
|
|
2467
|
-
deadLetterByWorkflow.set(meta.name, (0,
|
|
2514
|
+
deadLetterByWorkflow.set(meta.name, (0, import_nestjs_durable_core16.workflowName)(meta.deadLetterWorkflow));
|
|
2468
2515
|
}
|
|
2469
2516
|
});
|
|
2470
2517
|
this.reportUnattributed(unattributed);
|
|
@@ -2512,7 +2559,7 @@ var WorkflowRegistrar = class {
|
|
|
2512
2559
|
* a `dlq:<runId>` id, so re-recovery never double-dispatches.
|
|
2513
2560
|
*/
|
|
2514
2561
|
installDeadLetterRouting(byWorkflow) {
|
|
2515
|
-
const fallback = this.options.deadLetterWorkflow ? (0,
|
|
2562
|
+
const fallback = this.options.deadLetterWorkflow ? (0, import_nestjs_durable_core16.workflowName)(this.options.deadLetterWorkflow) : void 0;
|
|
2516
2563
|
if (byWorkflow.size === 0 && !fallback) return;
|
|
2517
2564
|
this.engine.onDead((run) => {
|
|
2518
2565
|
const target = byWorkflow.get(run.workflow) ?? fallback;
|
|
@@ -2537,14 +2584,14 @@ var WorkflowRegistrar = class {
|
|
|
2537
2584
|
};
|
|
2538
2585
|
WorkflowRegistrar = _ts_decorate10([
|
|
2539
2586
|
(0, import_common10.Injectable)(),
|
|
2540
|
-
_ts_param7(3, (0, import_common10.Inject)(
|
|
2541
|
-
_ts_param7(4, (0, import_common10.Inject)(
|
|
2587
|
+
_ts_param7(3, (0, import_common10.Inject)(import_nestjs_durable_core16.STATE_STORE_CANONICAL)),
|
|
2588
|
+
_ts_param7(4, (0, import_common10.Inject)(import_nestjs_durable_core16.DURABLE_OPTIONS_CANONICAL)),
|
|
2542
2589
|
_ts_param7(5, (0, import_common10.Inject)(IN_APP_WORKER_BINDING)),
|
|
2543
2590
|
_ts_metadata10("design:type", Function),
|
|
2544
2591
|
_ts_metadata10("design:paramtypes", [
|
|
2545
2592
|
typeof import_core4.DiscoveryService === "undefined" ? Object : import_core4.DiscoveryService,
|
|
2546
2593
|
typeof import_core4.MetadataScanner === "undefined" ? Object : import_core4.MetadataScanner,
|
|
2547
|
-
typeof
|
|
2594
|
+
typeof import_nestjs_durable_core16.WorkflowEngine === "undefined" ? Object : import_nestjs_durable_core16.WorkflowEngine,
|
|
2548
2595
|
Object,
|
|
2549
2596
|
typeof DurableModuleOptions === "undefined" ? Object : DurableModuleOptions,
|
|
2550
2597
|
Object
|
|
@@ -2553,7 +2600,7 @@ WorkflowRegistrar = _ts_decorate10([
|
|
|
2553
2600
|
|
|
2554
2601
|
// src/workflow.service.ts
|
|
2555
2602
|
var import_node_crypto = require("crypto");
|
|
2556
|
-
var
|
|
2603
|
+
var import_nestjs_durable_core17 = require("@dudousxd/nestjs-durable-core");
|
|
2557
2604
|
var import_common11 = require("@nestjs/common");
|
|
2558
2605
|
function _ts_decorate11(decorators, target, key, desc) {
|
|
2559
2606
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -2624,7 +2671,7 @@ WorkflowService = _ts_decorate11([
|
|
|
2624
2671
|
(0, import_common11.Injectable)(),
|
|
2625
2672
|
_ts_metadata11("design:type", Function),
|
|
2626
2673
|
_ts_metadata11("design:paramtypes", [
|
|
2627
|
-
typeof
|
|
2674
|
+
typeof import_nestjs_durable_core17.WorkflowEngine === "undefined" ? Object : import_nestjs_durable_core17.WorkflowEngine
|
|
2628
2675
|
])
|
|
2629
2676
|
], WorkflowService);
|
|
2630
2677
|
|
|
@@ -2821,7 +2868,15 @@ var RunGatewayBootstrap = class RunGatewayBootstrap2 {
|
|
|
2821
2868
|
onRunRequest: onRunRequest.bind(this.transport),
|
|
2822
2869
|
publishRunReply: publishRunReply.bind(this.transport)
|
|
2823
2870
|
};
|
|
2824
|
-
new RunRequestResponder(runRequestTransport, this.gateway
|
|
2871
|
+
new RunRequestResponder(runRequestTransport, this.gateway, {
|
|
2872
|
+
verifyTenant: this.options.verifyTenant,
|
|
2873
|
+
// Mirrors Agora's rule (`warnWithoutVerifier: role === 'control-plane'`): only a deployment
|
|
2874
|
+
// that EXPLICITLY names itself the control plane is told it runs without tenant auth. A plain
|
|
2875
|
+
// operator (role inferred from `store`) is Agora's `standalone`: anyone with broker access
|
|
2876
|
+
// can already enqueue steps and results there, so the warning would be noise on every boot
|
|
2877
|
+
// of an app that never serves tenants.
|
|
2878
|
+
warnWithoutVerifier: this.options.topology?.role === "control-plane"
|
|
2879
|
+
}).start();
|
|
2825
2880
|
}
|
|
2826
2881
|
if (typeof publishTenantEvent === "function") {
|
|
2827
2882
|
const republisher = new TenantEventRepublisher(store, publishTenantEvent.bind(this.transport));
|
|
@@ -2836,14 +2891,14 @@ var RunGatewayBootstrap = class RunGatewayBootstrap2 {
|
|
|
2836
2891
|
};
|
|
2837
2892
|
RunGatewayBootstrap = _ts_decorate12([
|
|
2838
2893
|
(0, import_common12.Injectable)(),
|
|
2839
|
-
_ts_param8(1, (0, import_common12.Inject)(
|
|
2840
|
-
_ts_param8(3, (0, import_common12.Inject)(
|
|
2841
|
-
_ts_param8(4, (0, import_common12.Inject)(
|
|
2894
|
+
_ts_param8(1, (0, import_common12.Inject)(import_nestjs_durable_core18.TRANSPORT_CANONICAL)),
|
|
2895
|
+
_ts_param8(3, (0, import_common12.Inject)(import_nestjs_durable_core18.STATE_STORE_CANONICAL)),
|
|
2896
|
+
_ts_param8(4, (0, import_common12.Inject)(import_nestjs_durable_core18.DURABLE_OPTIONS_CANONICAL)),
|
|
2842
2897
|
_ts_metadata12("design:type", Function),
|
|
2843
2898
|
_ts_metadata12("design:paramtypes", [
|
|
2844
|
-
typeof
|
|
2899
|
+
typeof import_nestjs_durable_core18.WorkflowEngine === "undefined" ? Object : import_nestjs_durable_core18.WorkflowEngine,
|
|
2845
2900
|
Object,
|
|
2846
|
-
typeof
|
|
2901
|
+
typeof import_nestjs_durable_core18.RunGateway === "undefined" ? Object : import_nestjs_durable_core18.RunGateway,
|
|
2847
2902
|
Object,
|
|
2848
2903
|
typeof DurableModuleOptions === "undefined" ? Object : DurableModuleOptions
|
|
2849
2904
|
])
|
|
@@ -2855,13 +2910,13 @@ var DurableModule = class _DurableModule {
|
|
|
2855
2910
|
static forRoot(options) {
|
|
2856
2911
|
_DurableModule.assertValid(options);
|
|
2857
2912
|
return _DurableModule.build({
|
|
2858
|
-
provide:
|
|
2913
|
+
provide: import_nestjs_durable_core18.DURABLE_OPTIONS_CANONICAL,
|
|
2859
2914
|
useValue: resolveTopology(options)
|
|
2860
2915
|
});
|
|
2861
2916
|
}
|
|
2862
2917
|
static forRootAsync(options) {
|
|
2863
2918
|
return _DurableModule.build({
|
|
2864
|
-
provide:
|
|
2919
|
+
provide: import_nestjs_durable_core18.DURABLE_OPTIONS_CANONICAL,
|
|
2865
2920
|
useFactory: /* @__PURE__ */ __name(async (...args) => {
|
|
2866
2921
|
const resolved = await options.useFactory(...args);
|
|
2867
2922
|
_DurableModule.assertValid(resolved);
|
|
@@ -2894,41 +2949,41 @@ var DurableModule = class _DurableModule {
|
|
|
2894
2949
|
providers: [
|
|
2895
2950
|
optionsProvider,
|
|
2896
2951
|
{
|
|
2897
|
-
provide:
|
|
2952
|
+
provide: import_nestjs_durable_core18.STATE_STORE_CANONICAL,
|
|
2898
2953
|
useFactory: /* @__PURE__ */ __name((options) => options.store !== void 0 ? scopedStore(options.store, options) : null, "useFactory"),
|
|
2899
2954
|
inject: [
|
|
2900
|
-
|
|
2955
|
+
import_nestjs_durable_core18.DURABLE_OPTIONS_CANONICAL
|
|
2901
2956
|
]
|
|
2902
2957
|
},
|
|
2903
2958
|
{
|
|
2904
|
-
provide:
|
|
2959
|
+
provide: import_nestjs_durable_core18.TRANSPORT_CANONICAL,
|
|
2905
2960
|
// With a POOL (`transports`) and no singular `transport`, the canonical transport is the
|
|
2906
2961
|
// pool's PRIMARY — the same one the engine dispatches on first. Leaving it null starved
|
|
2907
2962
|
// the step registrar / in-app worker of a transport, so a pool-configured operator
|
|
2908
2963
|
// registered NO step handlers and its own steps parked in `wait` with no consumer.
|
|
2909
2964
|
useFactory: /* @__PURE__ */ __name((options) => options.transport ?? options.transports?.[0]?.transport ?? null, "useFactory"),
|
|
2910
2965
|
inject: [
|
|
2911
|
-
|
|
2966
|
+
import_nestjs_durable_core18.DURABLE_OPTIONS_CANONICAL
|
|
2912
2967
|
]
|
|
2913
2968
|
},
|
|
2914
2969
|
// Legacy back-compat aliases (deprecated tokens still resolve to the same instances):
|
|
2915
2970
|
{
|
|
2916
|
-
provide:
|
|
2917
|
-
useExisting:
|
|
2971
|
+
provide: import_nestjs_durable_core18.STATE_STORE,
|
|
2972
|
+
useExisting: import_nestjs_durable_core18.STATE_STORE_CANONICAL
|
|
2918
2973
|
},
|
|
2919
2974
|
{
|
|
2920
|
-
provide:
|
|
2921
|
-
useExisting:
|
|
2975
|
+
provide: import_nestjs_durable_core18.TRANSPORT,
|
|
2976
|
+
useExisting: import_nestjs_durable_core18.TRANSPORT_CANONICAL
|
|
2922
2977
|
},
|
|
2923
2978
|
{
|
|
2924
|
-
provide:
|
|
2925
|
-
useExisting:
|
|
2979
|
+
provide: import_nestjs_durable_core18.DURABLE_OPTIONS,
|
|
2980
|
+
useExisting: import_nestjs_durable_core18.DURABLE_OPTIONS_CANONICAL
|
|
2926
2981
|
},
|
|
2927
2982
|
{
|
|
2928
2983
|
// Shared token, bound EXACTLY once: a real engine for the operator role, or a store-less
|
|
2929
2984
|
// `DurableStartClient` facade for a thin worker (no `store`) — either way, `WorkflowService`
|
|
2930
2985
|
// and app code call `engine.start(...)` unchanged.
|
|
2931
|
-
provide:
|
|
2986
|
+
provide: import_nestjs_durable_core18.WorkflowEngine,
|
|
2932
2987
|
useFactory: /* @__PURE__ */ __name(async (options, store, transport, moduleRef) => {
|
|
2933
2988
|
if (options.store === void 0) {
|
|
2934
2989
|
return new DurableStartClient(options);
|
|
@@ -2949,7 +3004,7 @@ var DurableModule = class _DurableModule {
|
|
|
2949
3004
|
if (t) deferTransportConsumers(t);
|
|
2950
3005
|
}
|
|
2951
3006
|
}
|
|
2952
|
-
const engine = new
|
|
3007
|
+
const engine = new import_nestjs_durable_core18.WorkflowEngine({
|
|
2953
3008
|
store,
|
|
2954
3009
|
transport: transport ?? void 0,
|
|
2955
3010
|
transports: options.transports,
|
|
@@ -2973,6 +3028,7 @@ var DurableModule = class _DurableModule {
|
|
|
2973
3028
|
context,
|
|
2974
3029
|
rehydrate: rehydrate || void 0,
|
|
2975
3030
|
compensationRetries: options.compensationRetries,
|
|
3031
|
+
verifyTenant: options.verifyTenant,
|
|
2976
3032
|
// A non-driving (dashboard/API) operator must not run workflows: enqueue-only, leaving
|
|
2977
3033
|
// each `pending` run in the store for a DRIVING instance's poll. A driving operator gets
|
|
2978
3034
|
// the engine's default in-process dispatcher: for a body registered inline, it runs
|
|
@@ -2989,9 +3045,9 @@ var DurableModule = class _DurableModule {
|
|
|
2989
3045
|
return engine;
|
|
2990
3046
|
}, "useFactory"),
|
|
2991
3047
|
inject: [
|
|
2992
|
-
|
|
2993
|
-
|
|
2994
|
-
|
|
3048
|
+
import_nestjs_durable_core18.DURABLE_OPTIONS_CANONICAL,
|
|
3049
|
+
import_nestjs_durable_core18.STATE_STORE_CANONICAL,
|
|
3050
|
+
import_nestjs_durable_core18.TRANSPORT_CANONICAL,
|
|
2995
3051
|
import_core5.ModuleRef
|
|
2996
3052
|
]
|
|
2997
3053
|
},
|
|
@@ -3005,7 +3061,7 @@ var DurableModule = class _DurableModule {
|
|
|
3005
3061
|
// or (for a thin worker, no `store`) a `ProxyRunGateway` over `transport` when given, else a
|
|
3006
3062
|
// gateway whose every method rejects with a clear tenant error.
|
|
3007
3063
|
{
|
|
3008
|
-
provide:
|
|
3064
|
+
provide: import_nestjs_durable_core18.RunGateway,
|
|
3009
3065
|
useFactory: /* @__PURE__ */ __name((options, store, engine) => {
|
|
3010
3066
|
if (options.store !== void 0) {
|
|
3011
3067
|
if (!store) {
|
|
@@ -3013,12 +3069,12 @@ var DurableModule = class _DurableModule {
|
|
|
3013
3069
|
}
|
|
3014
3070
|
return new StoreRunGateway(store, engine);
|
|
3015
3071
|
}
|
|
3016
|
-
return options.transport ? new ProxyRunGateway(options.transport, options.partition ?? "default", options.runGatewayTimeoutMs) : unavailableRunGateway();
|
|
3072
|
+
return options.transport ? new ProxyRunGateway(options.transport, options.partition ?? "default", options.runGatewayTimeoutMs, void 0, options.tenantToken) : unavailableRunGateway();
|
|
3017
3073
|
}, "useFactory"),
|
|
3018
3074
|
inject: [
|
|
3019
|
-
|
|
3020
|
-
|
|
3021
|
-
|
|
3075
|
+
import_nestjs_durable_core18.DURABLE_OPTIONS_CANONICAL,
|
|
3076
|
+
import_nestjs_durable_core18.STATE_STORE_CANONICAL,
|
|
3077
|
+
import_nestjs_durable_core18.WorkflowEngine
|
|
3022
3078
|
]
|
|
3023
3079
|
},
|
|
3024
3080
|
RunGatewayBootstrap,
|
|
@@ -3032,13 +3088,13 @@ var DurableModule = class _DurableModule {
|
|
|
3032
3088
|
exports: [
|
|
3033
3089
|
WorkflowService,
|
|
3034
3090
|
EntityService,
|
|
3035
|
-
|
|
3036
|
-
|
|
3037
|
-
|
|
3038
|
-
|
|
3039
|
-
|
|
3040
|
-
|
|
3041
|
-
|
|
3091
|
+
import_nestjs_durable_core18.WorkflowEngine,
|
|
3092
|
+
import_nestjs_durable_core18.STATE_STORE,
|
|
3093
|
+
import_nestjs_durable_core18.STATE_STORE_CANONICAL,
|
|
3094
|
+
import_nestjs_durable_core18.TRANSPORT,
|
|
3095
|
+
import_nestjs_durable_core18.TRANSPORT_CANONICAL,
|
|
3096
|
+
import_nestjs_durable_core18.DURABLE_OPTIONS_CANONICAL,
|
|
3097
|
+
import_nestjs_durable_core18.RunGateway
|
|
3042
3098
|
]
|
|
3043
3099
|
};
|
|
3044
3100
|
}
|
|
@@ -3048,7 +3104,7 @@ DurableModule = _ts_decorate12([
|
|
|
3048
3104
|
], DurableModule);
|
|
3049
3105
|
|
|
3050
3106
|
// src/index.ts
|
|
3051
|
-
var
|
|
3107
|
+
var import_nestjs_durable_core19 = require("@dudousxd/nestjs-durable-core");
|
|
3052
3108
|
// Annotate the CommonJS export names for ESM import in node:
|
|
3053
3109
|
0 && (module.exports = {
|
|
3054
3110
|
CONTEXT_ACCESSOR,
|
|
@@ -3079,6 +3135,7 @@ var import_nestjs_durable_core18 = require("@dudousxd/nestjs-durable-core");
|
|
|
3079
3135
|
RUN_GATEWAY,
|
|
3080
3136
|
RUN_REDIS_WORKER,
|
|
3081
3137
|
RunGateway,
|
|
3138
|
+
RunGatewayError,
|
|
3082
3139
|
RunRequestResponder,
|
|
3083
3140
|
STEP_INTERCEPTOR_METADATA,
|
|
3084
3141
|
Step,
|
|
@@ -3099,6 +3156,7 @@ var import_nestjs_durable_core18 = require("@dudousxd/nestjs-durable-core");
|
|
|
3099
3156
|
getEntityMeta,
|
|
3100
3157
|
getOnEvents,
|
|
3101
3158
|
getWorkflowMeta,
|
|
3159
|
+
hmacTenantVerifier,
|
|
3102
3160
|
inAppWorkerProviders,
|
|
3103
3161
|
isDeadLetterHandler,
|
|
3104
3162
|
isDrivingOperator,
|
|
@@ -3110,6 +3168,7 @@ var import_nestjs_durable_core18 = require("@dudousxd/nestjs-durable-core");
|
|
|
3110
3168
|
runSchedules,
|
|
3111
3169
|
scheduleRunIdAt,
|
|
3112
3170
|
scheduledRunId,
|
|
3171
|
+
signTenantToken,
|
|
3113
3172
|
thinWorkerProviders,
|
|
3114
3173
|
unavailableRunGateway
|
|
3115
3174
|
});
|