@bluelibs/runner 4.6.0 → 4.7.0-alpha
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/AI.md +319 -579
- package/README.md +886 -731
- package/dist/browser/index.cjs +1438 -251
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.mjs +1433 -252
- package/dist/browser/index.mjs.map +1 -1
- package/dist/context.d.ts +31 -0
- package/dist/define.d.ts +9 -0
- package/dist/definers/builders/core.d.ts +30 -0
- package/dist/definers/builders/event.d.ts +12 -0
- package/dist/definers/builders/hook.d.ts +20 -0
- package/dist/definers/builders/middleware.d.ts +39 -0
- package/dist/definers/builders/resource.d.ts +40 -0
- package/dist/definers/builders/tag.d.ts +10 -0
- package/dist/definers/builders/task.d.ts +37 -0
- package/dist/definers/builders/task.phantom.d.ts +27 -0
- package/dist/definers/builders/utils.d.ts +4 -0
- package/dist/definers/defineEvent.d.ts +2 -0
- package/dist/definers/defineHook.d.ts +6 -0
- package/dist/definers/defineOverride.d.ts +17 -0
- package/dist/definers/defineResource.d.ts +2 -0
- package/dist/definers/defineResourceMiddleware.d.ts +2 -0
- package/dist/definers/defineTag.d.ts +12 -0
- package/dist/definers/defineTask.d.ts +18 -0
- package/dist/definers/defineTaskMiddleware.d.ts +2 -0
- package/dist/definers/tools.d.ts +47 -0
- package/dist/defs.d.ts +29 -0
- package/dist/edge/index.cjs +1438 -251
- package/dist/edge/index.cjs.map +1 -1
- package/dist/edge/index.mjs +1433 -252
- package/dist/edge/index.mjs.map +1 -1
- package/dist/errors.d.ts +104 -0
- package/dist/globals/globalEvents.d.ts +8 -0
- package/dist/globals/globalMiddleware.d.ts +31 -0
- package/dist/globals/globalResources.d.ts +32 -0
- package/dist/globals/globalTags.d.ts +11 -0
- package/dist/globals/middleware/cache.middleware.d.ts +27 -0
- package/dist/globals/middleware/requireContext.middleware.d.ts +6 -0
- package/dist/globals/middleware/retry.middleware.d.ts +21 -0
- package/dist/globals/middleware/timeout.middleware.d.ts +9 -0
- package/dist/globals/middleware/tunnel.middleware.d.ts +2 -0
- package/dist/globals/resources/debug/debug.resource.d.ts +7 -0
- package/dist/globals/resources/debug/debug.tag.d.ts +2 -0
- package/dist/globals/resources/debug/debugConfig.resource.d.ts +22 -0
- package/dist/globals/resources/debug/executionTracker.middleware.d.ts +50 -0
- package/dist/globals/resources/debug/globalEvent.hook.d.ts +27 -0
- package/dist/globals/resources/debug/hook.hook.d.ts +30 -0
- package/dist/globals/resources/debug/index.d.ts +6 -0
- package/dist/globals/resources/debug/middleware.hook.d.ts +30 -0
- package/dist/globals/resources/debug/types.d.ts +25 -0
- package/dist/globals/resources/debug/utils.d.ts +2 -0
- package/dist/globals/resources/queue.resource.d.ts +10 -0
- package/dist/globals/resources/tunnel/ejson-extensions.d.ts +1 -0
- package/dist/globals/resources/tunnel/error-utils.d.ts +1 -0
- package/dist/globals/resources/tunnel/plan.d.ts +19 -0
- package/dist/globals/resources/tunnel/protocol.d.ts +40 -0
- package/dist/globals/resources/tunnel/serializer.d.ts +9 -0
- package/dist/globals/resources/tunnel/tunnel.policy.tag.d.ts +18 -0
- package/dist/globals/resources/tunnel/tunnel.tag.d.ts +2 -0
- package/dist/globals/resources/tunnel/types.d.ts +17 -0
- package/dist/globals/tunnels/index.d.ts +23 -0
- package/dist/globals/types.d.ts +1 -0
- package/dist/http-client.d.ts +23 -0
- package/dist/http-fetch-tunnel.resource.d.ts +22 -0
- package/dist/index.d.ts +99 -0
- package/dist/models/DependencyProcessor.d.ts +48 -0
- package/dist/models/EventManager.d.ts +153 -0
- package/dist/models/LogPrinter.d.ts +55 -0
- package/dist/models/Logger.d.ts +85 -0
- package/dist/models/MiddlewareManager.d.ts +86 -0
- package/dist/models/OverrideManager.d.ts +13 -0
- package/dist/models/Queue.d.ts +26 -0
- package/dist/models/ResourceInitializer.d.ts +20 -0
- package/dist/models/RunResult.d.ts +35 -0
- package/dist/models/Semaphore.d.ts +61 -0
- package/dist/models/Store.d.ts +69 -0
- package/dist/models/StoreRegistry.d.ts +43 -0
- package/dist/models/StoreValidator.d.ts +8 -0
- package/dist/models/TaskRunner.d.ts +27 -0
- package/dist/models/UnhandledError.d.ts +11 -0
- package/dist/models/index.d.ts +11 -0
- package/dist/models/utils/findCircularDependencies.d.ts +16 -0
- package/dist/models/utils/safeStringify.d.ts +3 -0
- package/dist/node/exposure/allowList.d.ts +3 -0
- package/dist/node/exposure/authenticator.d.ts +6 -0
- package/dist/node/exposure/cors.d.ts +4 -0
- package/dist/node/exposure/createNodeExposure.d.ts +2 -0
- package/dist/node/exposure/exposureServer.d.ts +18 -0
- package/dist/node/exposure/httpResponse.d.ts +10 -0
- package/dist/node/exposure/logging.d.ts +4 -0
- package/dist/node/exposure/multipart.d.ts +27 -0
- package/dist/node/exposure/requestBody.d.ts +11 -0
- package/dist/node/exposure/requestContext.d.ts +17 -0
- package/dist/node/exposure/requestHandlers.d.ts +24 -0
- package/dist/node/exposure/resourceTypes.d.ts +60 -0
- package/dist/node/exposure/router.d.ts +17 -0
- package/dist/node/exposure/serverLifecycle.d.ts +13 -0
- package/dist/node/exposure/types.d.ts +31 -0
- package/dist/node/exposure/utils.d.ts +17 -0
- package/dist/node/exposure.resource.d.ts +12 -0
- package/dist/node/files.d.ts +9 -0
- package/dist/node/http-smart-client.model.d.ts +22 -0
- package/dist/node/index.d.ts +1 -0
- package/dist/node/inputFile.model.d.ts +22 -0
- package/dist/node/inputFile.utils.d.ts +14 -0
- package/dist/node/mixed-http-client.node.d.ts +27 -0
- package/dist/node/node.cjs +11168 -0
- package/dist/node/node.cjs.map +1 -0
- package/dist/node/node.d.ts +6 -0
- package/dist/node/node.mjs +11099 -0
- package/dist/node/node.mjs.map +1 -0
- package/dist/node/platform/createFile.d.ts +9 -0
- package/dist/node/tunnel.allowlist.d.ts +7 -0
- package/dist/node/upload/manifest.d.ts +22 -0
- package/dist/platform/adapters/browser.d.ts +14 -0
- package/dist/platform/adapters/edge.d.ts +5 -0
- package/dist/platform/adapters/node-als.d.ts +1 -0
- package/dist/platform/adapters/node.d.ts +15 -0
- package/dist/platform/adapters/universal-generic.d.ts +14 -0
- package/dist/platform/adapters/universal.d.ts +17 -0
- package/dist/platform/createFile.d.ts +10 -0
- package/dist/platform/createWebFile.d.ts +11 -0
- package/dist/platform/factory.d.ts +2 -0
- package/dist/platform/index.d.ts +27 -0
- package/dist/platform/types.d.ts +29 -0
- package/dist/processHooks.d.ts +2 -0
- package/dist/run.d.ts +14 -0
- package/dist/testing.d.ts +25 -0
- package/dist/tools/getCallerFile.d.ts +1 -0
- package/dist/tunnels/buildUniversalManifest.d.ts +24 -0
- package/dist/types/contracts.d.ts +63 -0
- package/dist/types/event.d.ts +74 -0
- package/dist/types/hook.d.ts +23 -0
- package/dist/types/inputFile.d.ts +34 -0
- package/dist/types/meta.d.ts +18 -0
- package/dist/types/resource.d.ts +87 -0
- package/dist/types/resourceMiddleware.d.ts +47 -0
- package/dist/types/runner.d.ts +55 -0
- package/dist/types/storeTypes.d.ts +40 -0
- package/dist/types/symbols.d.ts +28 -0
- package/dist/types/tag.d.ts +46 -0
- package/dist/types/task.d.ts +50 -0
- package/dist/types/taskMiddleware.d.ts +48 -0
- package/dist/types/utilities.d.ts +111 -0
- package/dist/universal/index.cjs +1438 -251
- package/dist/universal/index.cjs.map +1 -1
- package/dist/universal/index.mjs +1433 -252
- package/dist/universal/index.mjs.map +1 -1
- package/package.json +34 -8
- package/dist/index.d.mts +0 -1747
- package/dist/index.unused.js +0 -4466
- package/dist/index.unused.js.map +0 -1
- package/dist/node/index.cjs +0 -4498
- package/dist/node/index.cjs.map +0 -1
- package/dist/node/index.mjs +0 -4466
- package/dist/node/index.mjs.map +0 -1
package/dist/browser/index.mjs
CHANGED
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
import { LRUCache } from 'lru-cache';
|
|
2
|
+
import { EJSON } from '@bluelibs/ejson';
|
|
3
|
+
export { EJSON } from '@bluelibs/ejson';
|
|
2
4
|
|
|
3
5
|
var __defProp = Object.defineProperty;
|
|
4
6
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
|
+
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
8
|
+
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
9
|
+
}) : x)(function(x) {
|
|
10
|
+
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
11
|
+
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
12
|
+
});
|
|
5
13
|
var __export = (target, all) => {
|
|
6
14
|
for (var name in all)
|
|
7
15
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -18,17 +26,22 @@ __export(defs_exports, {
|
|
|
18
26
|
symbolMiddleware: () => symbolMiddleware,
|
|
19
27
|
symbolMiddlewareConfigured: () => symbolMiddlewareConfigured,
|
|
20
28
|
symbolOptionalDependency: () => symbolOptionalDependency,
|
|
29
|
+
symbolPhantomTask: () => symbolPhantomTask,
|
|
21
30
|
symbolResource: () => symbolResource,
|
|
22
31
|
symbolResourceMiddleware: () => symbolResourceMiddleware,
|
|
23
32
|
symbolResourceWithConfig: () => symbolResourceWithConfig,
|
|
24
33
|
symbolTag: () => symbolTag,
|
|
25
34
|
symbolTagConfigured: () => symbolTagConfigured,
|
|
26
35
|
symbolTask: () => symbolTask,
|
|
27
|
-
symbolTaskMiddleware: () => symbolTaskMiddleware
|
|
36
|
+
symbolTaskMiddleware: () => symbolTaskMiddleware,
|
|
37
|
+
symbolTunneledTask: () => symbolTunneledTask
|
|
28
38
|
});
|
|
29
39
|
|
|
30
40
|
// src/types/symbols.ts
|
|
31
41
|
var symbolTask = Symbol.for("runner.task");
|
|
42
|
+
var symbolPhantomTask = Symbol.for(
|
|
43
|
+
"runner.task.phantom"
|
|
44
|
+
);
|
|
32
45
|
var symbolResource = Symbol.for("runner.resource");
|
|
33
46
|
var symbolResourceWithConfig = Symbol.for(
|
|
34
47
|
"runner.resourceWithConfig"
|
|
@@ -44,6 +57,9 @@ var symbolResourceMiddleware = Symbol.for(
|
|
|
44
57
|
var symbolMiddlewareConfigured = Symbol.for(
|
|
45
58
|
"runner.middlewareConfigured"
|
|
46
59
|
);
|
|
60
|
+
var symbolTunneledTask = Symbol.for(
|
|
61
|
+
"runner.tunneledTask"
|
|
62
|
+
);
|
|
47
63
|
var symbolHook = Symbol.for("runner.hook");
|
|
48
64
|
var symbolTag = Symbol.for("runner.tag");
|
|
49
65
|
var symbolTagConfigured = Symbol.for(
|
|
@@ -99,7 +115,7 @@ var defaultKeyBuilder = /* @__PURE__ */ __name((taskId, input) => `${taskId}-${J
|
|
|
99
115
|
var cacheMiddleware = defineTaskMiddleware({
|
|
100
116
|
id: "globals.middleware.cache",
|
|
101
117
|
dependencies: { cache: cacheResource },
|
|
102
|
-
async run({ task, next }, deps, config) {
|
|
118
|
+
async run({ task: task2, next }, deps, config) {
|
|
103
119
|
const { cache } = deps;
|
|
104
120
|
config = {
|
|
105
121
|
keyBuilder: defaultKeyBuilder,
|
|
@@ -110,7 +126,7 @@ var cacheMiddleware = defineTaskMiddleware({
|
|
|
110
126
|
// Automatically purge expired items
|
|
111
127
|
...config
|
|
112
128
|
};
|
|
113
|
-
const taskId =
|
|
129
|
+
const taskId = task2.definition.id;
|
|
114
130
|
let cacheHolderForTask = cache.map.get(taskId);
|
|
115
131
|
if (!cacheHolderForTask) {
|
|
116
132
|
const { keyBuilder, ...lruOptions } = config;
|
|
@@ -121,12 +137,12 @@ var cacheMiddleware = defineTaskMiddleware({
|
|
|
121
137
|
cacheHolderForTask = await cache.cacheFactoryTask(cacheOptions);
|
|
122
138
|
cache.map.set(taskId, cacheHolderForTask);
|
|
123
139
|
}
|
|
124
|
-
const key = config.keyBuilder(taskId,
|
|
140
|
+
const key = config.keyBuilder(taskId, task2.input);
|
|
125
141
|
const cachedValue = await cacheHolderForTask.get(key);
|
|
126
142
|
if (cachedValue) {
|
|
127
143
|
return cachedValue;
|
|
128
144
|
}
|
|
129
|
-
const result = await next(
|
|
145
|
+
const result = await next(task2.input);
|
|
130
146
|
await cacheHolderForTask.set(key, result);
|
|
131
147
|
return result;
|
|
132
148
|
}
|
|
@@ -176,6 +192,16 @@ function defineTask(taskConfig) {
|
|
|
176
192
|
};
|
|
177
193
|
}
|
|
178
194
|
__name(defineTask, "defineTask");
|
|
195
|
+
defineTask.phantom = (taskConfig) => {
|
|
196
|
+
const taskDef = defineTask({
|
|
197
|
+
...taskConfig,
|
|
198
|
+
run: /* @__PURE__ */ __name(async (input) => {
|
|
199
|
+
return void 0;
|
|
200
|
+
}, "run")
|
|
201
|
+
});
|
|
202
|
+
taskDef[symbolPhantomTask] = true;
|
|
203
|
+
return taskDef;
|
|
204
|
+
};
|
|
179
205
|
|
|
180
206
|
// src/definers/defineHook.ts
|
|
181
207
|
function defineHook(hookDef) {
|
|
@@ -197,6 +223,7 @@ __name(defineHook, "defineHook");
|
|
|
197
223
|
// src/errors.ts
|
|
198
224
|
var errors_exports = {};
|
|
199
225
|
__export(errors_exports, {
|
|
226
|
+
CancellationError: () => CancellationError,
|
|
200
227
|
CircularDependenciesError: () => CircularDependenciesError,
|
|
201
228
|
ContextError: () => ContextError,
|
|
202
229
|
DependencyNotFoundError: () => DependencyNotFoundError,
|
|
@@ -212,7 +239,8 @@ __export(errors_exports, {
|
|
|
212
239
|
StoreAlreadyInitializedError: () => StoreAlreadyInitializedError,
|
|
213
240
|
TagNotFoundError: () => TagNotFoundError,
|
|
214
241
|
UnknownItemTypeError: () => UnknownItemTypeError,
|
|
215
|
-
ValidationError: () => ValidationError
|
|
242
|
+
ValidationError: () => ValidationError,
|
|
243
|
+
isCancellationError: () => isCancellationError
|
|
216
244
|
});
|
|
217
245
|
|
|
218
246
|
// src/platform/adapters/node-als.ts
|
|
@@ -265,9 +293,27 @@ var NodePlatformAdapter = class {
|
|
|
265
293
|
let instance;
|
|
266
294
|
const ensure = /* @__PURE__ */ __name(() => {
|
|
267
295
|
if (!this.alsClass) {
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
)
|
|
296
|
+
let als;
|
|
297
|
+
const forceNoop = typeof process !== "undefined" && !!process.env?.RUNNER_FORCE_NOOP_ALS;
|
|
298
|
+
if (!forceNoop) {
|
|
299
|
+
try {
|
|
300
|
+
const mod = __require("async_hooks");
|
|
301
|
+
als = mod?.AsyncLocalStorage;
|
|
302
|
+
} catch (_) {
|
|
303
|
+
als = void 0;
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
this.alsClass = als ? als : class NoopAsyncLocalStorage {
|
|
307
|
+
static {
|
|
308
|
+
__name(this, "NoopAsyncLocalStorage");
|
|
309
|
+
}
|
|
310
|
+
getStore() {
|
|
311
|
+
return void 0;
|
|
312
|
+
}
|
|
313
|
+
run(_store, callback) {
|
|
314
|
+
return callback();
|
|
315
|
+
}
|
|
316
|
+
};
|
|
271
317
|
}
|
|
272
318
|
return instance ??= new this.alsClass();
|
|
273
319
|
}, "ensure");
|
|
@@ -454,6 +500,9 @@ function detectEnvironment() {
|
|
|
454
500
|
if (typeof globalThis.Bun !== "undefined" || typeof process !== "undefined" && process.versions?.bun) {
|
|
455
501
|
return "universal";
|
|
456
502
|
}
|
|
503
|
+
if (typeof globalThis.importScripts === "function" && typeof window === "undefined") {
|
|
504
|
+
return "edge";
|
|
505
|
+
}
|
|
457
506
|
if (typeof globalThis.WorkerGlobalScope !== "undefined" && typeof self !== "undefined" && self instanceof globalThis.WorkerGlobalScope) {
|
|
458
507
|
return "edge";
|
|
459
508
|
}
|
|
@@ -569,6 +618,63 @@ function getPlatform() {
|
|
|
569
618
|
return platformInstance;
|
|
570
619
|
}
|
|
571
620
|
__name(getPlatform, "getPlatform");
|
|
621
|
+
function setPlatform(adapter) {
|
|
622
|
+
platformInstance = adapter;
|
|
623
|
+
adapter.id;
|
|
624
|
+
}
|
|
625
|
+
__name(setPlatform, "setPlatform");
|
|
626
|
+
var PlatformAdapter = class {
|
|
627
|
+
constructor(env) {
|
|
628
|
+
this.setTimeout = globalThis.setTimeout;
|
|
629
|
+
this.clearTimeout = globalThis.clearTimeout;
|
|
630
|
+
const kind = env ?? detectEnvironment();
|
|
631
|
+
this.env = kind;
|
|
632
|
+
switch (kind) {
|
|
633
|
+
case "node":
|
|
634
|
+
this.inner = new NodePlatformAdapter();
|
|
635
|
+
break;
|
|
636
|
+
case "browser":
|
|
637
|
+
this.inner = new BrowserPlatformAdapter();
|
|
638
|
+
break;
|
|
639
|
+
case "edge":
|
|
640
|
+
this.inner = new EdgePlatformAdapter();
|
|
641
|
+
break;
|
|
642
|
+
case "universal":
|
|
643
|
+
this.inner = new GenericUniversalPlatformAdapter();
|
|
644
|
+
break;
|
|
645
|
+
default:
|
|
646
|
+
this.inner = new UniversalPlatformAdapter();
|
|
647
|
+
}
|
|
648
|
+
this.id = this.inner.id;
|
|
649
|
+
}
|
|
650
|
+
static {
|
|
651
|
+
__name(this, "PlatformAdapter");
|
|
652
|
+
}
|
|
653
|
+
async init() {
|
|
654
|
+
return this.inner.init();
|
|
655
|
+
}
|
|
656
|
+
onUncaughtException(handler) {
|
|
657
|
+
return this.inner.onUncaughtException(handler);
|
|
658
|
+
}
|
|
659
|
+
onUnhandledRejection(handler) {
|
|
660
|
+
return this.inner.onUnhandledRejection(handler);
|
|
661
|
+
}
|
|
662
|
+
onShutdownSignal(handler) {
|
|
663
|
+
return this.inner.onShutdownSignal(handler);
|
|
664
|
+
}
|
|
665
|
+
exit(code) {
|
|
666
|
+
return this.inner.exit(code);
|
|
667
|
+
}
|
|
668
|
+
getEnv(key) {
|
|
669
|
+
return this.inner.getEnv(key);
|
|
670
|
+
}
|
|
671
|
+
hasAsyncLocalStorage() {
|
|
672
|
+
return this.inner.hasAsyncLocalStorage();
|
|
673
|
+
}
|
|
674
|
+
createAsyncLocalStorage() {
|
|
675
|
+
return this.inner.createAsyncLocalStorage();
|
|
676
|
+
}
|
|
677
|
+
};
|
|
572
678
|
|
|
573
679
|
// src/errors.ts
|
|
574
680
|
var RuntimeError = class extends Error {
|
|
@@ -752,6 +858,19 @@ var PlatformUnsupportedFunction = class extends RuntimeError {
|
|
|
752
858
|
this.name = "PlatformUnsupportedFunction";
|
|
753
859
|
}
|
|
754
860
|
};
|
|
861
|
+
var CancellationError = class extends RuntimeError {
|
|
862
|
+
static {
|
|
863
|
+
__name(this, "CancellationError");
|
|
864
|
+
}
|
|
865
|
+
constructor(message = "Operation cancelled") {
|
|
866
|
+
super(message);
|
|
867
|
+
this.name = "CancellationError";
|
|
868
|
+
}
|
|
869
|
+
};
|
|
870
|
+
function isCancellationError(err) {
|
|
871
|
+
return !!err && err.name === "CancellationError";
|
|
872
|
+
}
|
|
873
|
+
__name(isCancellationError, "isCancellationError");
|
|
755
874
|
|
|
756
875
|
// src/definers/defineResource.ts
|
|
757
876
|
function defineResource(constConfig) {
|
|
@@ -1044,14 +1163,14 @@ __name(isOptional, "isOptional");
|
|
|
1044
1163
|
// src/globals/middleware/requireContext.middleware.ts
|
|
1045
1164
|
var requireContextTaskMiddleware = defineTaskMiddleware({
|
|
1046
1165
|
id: "globals.middleware.requireContext",
|
|
1047
|
-
async run({ task, next }, deps, config) {
|
|
1166
|
+
async run({ task: task2, next }, deps, config) {
|
|
1048
1167
|
if (!config.context) {
|
|
1049
1168
|
throw new Error(
|
|
1050
1169
|
"Context not available. Did you forget to pass 'context' to the middleware?"
|
|
1051
1170
|
);
|
|
1052
1171
|
}
|
|
1053
1172
|
config.context.use();
|
|
1054
|
-
return next(
|
|
1173
|
+
return next(task2?.input);
|
|
1055
1174
|
}
|
|
1056
1175
|
});
|
|
1057
1176
|
|
|
@@ -1105,6 +1224,24 @@ var debugTag = defineTag({
|
|
|
1105
1224
|
}
|
|
1106
1225
|
});
|
|
1107
1226
|
|
|
1227
|
+
// src/globals/resources/tunnel/tunnel.tag.ts
|
|
1228
|
+
var tunnelTag = defineTag({
|
|
1229
|
+
id: "globals.tags.tunnel",
|
|
1230
|
+
meta: {
|
|
1231
|
+
title: "Tunnel",
|
|
1232
|
+
description: "Marks a resource that exposes a runner to tunnel selected tasks (override task run() with resource.run(taskId, input))."
|
|
1233
|
+
}
|
|
1234
|
+
});
|
|
1235
|
+
|
|
1236
|
+
// src/globals/resources/tunnel/tunnel.policy.tag.ts
|
|
1237
|
+
var tunnelPolicyTag = defineTag({
|
|
1238
|
+
id: "globals.tags.tunnel.middlewarePolicy",
|
|
1239
|
+
meta: {
|
|
1240
|
+
title: "Tunnel Middleware Policy",
|
|
1241
|
+
description: "Controls which middlewares run on caller vs executor when a task is tunneled (whitelist)."
|
|
1242
|
+
}
|
|
1243
|
+
});
|
|
1244
|
+
|
|
1108
1245
|
// src/globals/globalTags.ts
|
|
1109
1246
|
var globalTags = {
|
|
1110
1247
|
system: defineTag({
|
|
@@ -1121,7 +1258,9 @@ var globalTags = {
|
|
|
1121
1258
|
description: "Marks events that should not be dispatched to global hooks (on: '*')."
|
|
1122
1259
|
}
|
|
1123
1260
|
}),
|
|
1124
|
-
debug: debugTag
|
|
1261
|
+
debug: debugTag,
|
|
1262
|
+
tunnel: tunnelTag,
|
|
1263
|
+
tunnelPolicy: tunnelPolicyTag
|
|
1125
1264
|
};
|
|
1126
1265
|
|
|
1127
1266
|
// src/globals/globalEvents.ts
|
|
@@ -1158,7 +1297,7 @@ var Queue = class {
|
|
|
1158
1297
|
* Schedule an asynchronous task.
|
|
1159
1298
|
* @param task – receives an AbortSignal so it can cancel early if desired.
|
|
1160
1299
|
*/
|
|
1161
|
-
run(
|
|
1300
|
+
run(task2) {
|
|
1162
1301
|
if (this.disposed) {
|
|
1163
1302
|
return Promise.reject(new Error("Queue has been disposed"));
|
|
1164
1303
|
}
|
|
@@ -1171,7 +1310,7 @@ var Queue = class {
|
|
|
1171
1310
|
}
|
|
1172
1311
|
const { signal } = this.abortController;
|
|
1173
1312
|
const result = this.tail.then(
|
|
1174
|
-
() => this.hasAsyncLocalStorage ? this.executionContext.run(true, () =>
|
|
1313
|
+
() => this.hasAsyncLocalStorage ? this.executionContext.run(true, () => task2(signal)) : task2(signal)
|
|
1175
1314
|
);
|
|
1176
1315
|
this.tail = result.catch(() => {
|
|
1177
1316
|
});
|
|
@@ -1203,11 +1342,11 @@ var queueResource = defineResource({
|
|
|
1203
1342
|
const map = context.map;
|
|
1204
1343
|
return {
|
|
1205
1344
|
map,
|
|
1206
|
-
run: /* @__PURE__ */ __name((id2,
|
|
1345
|
+
run: /* @__PURE__ */ __name((id2, task2) => {
|
|
1207
1346
|
if (!map.has(id2)) {
|
|
1208
1347
|
map.set(id2, new Queue());
|
|
1209
1348
|
}
|
|
1210
|
-
return map.get(id2).run(
|
|
1349
|
+
return map.get(id2).run(task2);
|
|
1211
1350
|
}, "run")
|
|
1212
1351
|
};
|
|
1213
1352
|
}, "init"),
|
|
@@ -1265,6 +1404,14 @@ var globalResources = {
|
|
|
1265
1404
|
},
|
|
1266
1405
|
tags: [systemTag2]
|
|
1267
1406
|
}),
|
|
1407
|
+
serializer: defineResource({
|
|
1408
|
+
id: "globals.resources.serializer",
|
|
1409
|
+
meta: {
|
|
1410
|
+
title: "Serializer",
|
|
1411
|
+
description: "Serializes and deserializes data. Provides EJSON-compatible stringify/parse and custom type registration via addType."
|
|
1412
|
+
},
|
|
1413
|
+
tags: [systemTag2]
|
|
1414
|
+
}),
|
|
1268
1415
|
cache: cacheResource,
|
|
1269
1416
|
queue: queueResource
|
|
1270
1417
|
};
|
|
@@ -1272,8 +1419,8 @@ var globalResources = {
|
|
|
1272
1419
|
// src/globals/middleware/retry.middleware.ts
|
|
1273
1420
|
var retryTaskMiddleware = defineTaskMiddleware({
|
|
1274
1421
|
id: "globals.middleware.retry.task",
|
|
1275
|
-
async run({ task, next }, deps, config) {
|
|
1276
|
-
const input =
|
|
1422
|
+
async run({ task: task2, next }, deps, config) {
|
|
1423
|
+
const input = task2?.input;
|
|
1277
1424
|
let attempts = 0;
|
|
1278
1425
|
const maxRetries = config.retries ?? 3;
|
|
1279
1426
|
const shouldStop = config.stopRetryIf ?? (() => false);
|
|
@@ -1296,8 +1443,8 @@ var retryTaskMiddleware = defineTaskMiddleware({
|
|
|
1296
1443
|
});
|
|
1297
1444
|
var retryResourceMiddleware = defineResourceMiddleware({
|
|
1298
1445
|
id: "globals.middleware.retry.resource",
|
|
1299
|
-
async run({ resource, next }, deps, config) {
|
|
1300
|
-
const input =
|
|
1446
|
+
async run({ resource: resource2, next }, deps, config) {
|
|
1447
|
+
const input = resource2?.config;
|
|
1301
1448
|
let attempts = 0;
|
|
1302
1449
|
const maxRetries = config.retries ?? 3;
|
|
1303
1450
|
const shouldStop = config.stopRetryIf ?? (() => false);
|
|
@@ -1322,8 +1469,8 @@ var retryResourceMiddleware = defineResourceMiddleware({
|
|
|
1322
1469
|
// src/globals/middleware/timeout.middleware.ts
|
|
1323
1470
|
var timeoutTaskMiddleware = defineTaskMiddleware({
|
|
1324
1471
|
id: "globals.middleware.timeout.task",
|
|
1325
|
-
async run({ task, next }, _deps, config) {
|
|
1326
|
-
const input =
|
|
1472
|
+
async run({ task: task2, next }, _deps, config) {
|
|
1473
|
+
const input = task2?.input;
|
|
1327
1474
|
const ttl = Math.max(0, config.ttl);
|
|
1328
1475
|
const message = `Operation timed out after ${ttl}ms`;
|
|
1329
1476
|
if (ttl === 0) {
|
|
@@ -1348,8 +1495,8 @@ var timeoutTaskMiddleware = defineTaskMiddleware({
|
|
|
1348
1495
|
});
|
|
1349
1496
|
var timeoutResourceMiddleware = defineResourceMiddleware({
|
|
1350
1497
|
id: "globals.middleware.timeout.resource",
|
|
1351
|
-
async run({ resource, next }, _deps, config) {
|
|
1352
|
-
const input =
|
|
1498
|
+
async run({ resource: resource2, next }, _deps, config) {
|
|
1499
|
+
const input = resource2?.config;
|
|
1353
1500
|
const ttl = Math.max(0, config.ttl);
|
|
1354
1501
|
const message = `Operation timed out after ${ttl}ms`;
|
|
1355
1502
|
if (ttl === 0) {
|
|
@@ -1407,11 +1554,11 @@ var TaskRunner = class {
|
|
|
1407
1554
|
* @param task the task to be run
|
|
1408
1555
|
* @param input the input to be passed to the task
|
|
1409
1556
|
*/
|
|
1410
|
-
async run(
|
|
1411
|
-
let runner = this.runnerStore.get(
|
|
1557
|
+
async run(task2, input) {
|
|
1558
|
+
let runner = this.runnerStore.get(task2.id);
|
|
1412
1559
|
if (!runner) {
|
|
1413
|
-
runner = this.createRunnerWithMiddleware(
|
|
1414
|
-
this.runnerStore.set(
|
|
1560
|
+
runner = this.createRunnerWithMiddleware(task2);
|
|
1561
|
+
this.runnerStore.set(task2.id, runner);
|
|
1415
1562
|
}
|
|
1416
1563
|
try {
|
|
1417
1564
|
return await runner(input);
|
|
@@ -1420,7 +1567,7 @@ var TaskRunner = class {
|
|
|
1420
1567
|
await this.store.onUnhandledError({
|
|
1421
1568
|
error,
|
|
1422
1569
|
kind: "task",
|
|
1423
|
-
source:
|
|
1570
|
+
source: task2.id
|
|
1424
1571
|
});
|
|
1425
1572
|
} catch (_) {
|
|
1426
1573
|
}
|
|
@@ -1434,8 +1581,8 @@ var TaskRunner = class {
|
|
|
1434
1581
|
* @param taskDependencies
|
|
1435
1582
|
* @returns
|
|
1436
1583
|
*/
|
|
1437
|
-
createRunnerWithMiddleware(
|
|
1438
|
-
return this.middlewareManager.composeTaskRunner(
|
|
1584
|
+
createRunnerWithMiddleware(task2) {
|
|
1585
|
+
return this.middlewareManager.composeTaskRunner(task2);
|
|
1439
1586
|
}
|
|
1440
1587
|
};
|
|
1441
1588
|
|
|
@@ -1583,28 +1730,31 @@ var MiddlewareManager = class {
|
|
|
1583
1730
|
* Compose a runner for a task with its local interceptors and applicable middlewares.
|
|
1584
1731
|
* Returns a function that accepts the task input and resolves to the task output.
|
|
1585
1732
|
*/
|
|
1586
|
-
composeTaskRunner(
|
|
1587
|
-
const storeTask = this.store.tasks.get(
|
|
1733
|
+
composeTaskRunner(task2) {
|
|
1734
|
+
const storeTask = this.store.tasks.get(task2.id);
|
|
1735
|
+
const tDef = storeTask.task;
|
|
1588
1736
|
let next = /* @__PURE__ */ __name(async (input) => {
|
|
1589
1737
|
let rawInput = input;
|
|
1590
|
-
|
|
1738
|
+
const isLocallyTunneled = task2[symbolTunneledTask] === "client" || tDef[symbolTunneledTask] === "client";
|
|
1739
|
+
const runnerTask = isLocallyTunneled ? tDef : task2;
|
|
1740
|
+
if (runnerTask.inputSchema) {
|
|
1591
1741
|
try {
|
|
1592
|
-
rawInput =
|
|
1742
|
+
rawInput = runnerTask.inputSchema.parse(rawInput);
|
|
1593
1743
|
} catch (error) {
|
|
1594
1744
|
throw new ValidationError(
|
|
1595
1745
|
"Task input",
|
|
1596
|
-
|
|
1746
|
+
runnerTask.id,
|
|
1597
1747
|
error instanceof Error ? error : new Error(String(error))
|
|
1598
1748
|
);
|
|
1599
1749
|
}
|
|
1600
1750
|
}
|
|
1601
1751
|
const deps = storeTask.computedDependencies;
|
|
1602
|
-
const rawResult = await
|
|
1603
|
-
if (
|
|
1752
|
+
const rawResult = await runnerTask.run.call(null, rawInput, deps);
|
|
1753
|
+
if (runnerTask.resultSchema) {
|
|
1604
1754
|
try {
|
|
1605
|
-
return
|
|
1755
|
+
return runnerTask.resultSchema.parse(rawResult);
|
|
1606
1756
|
} catch (error) {
|
|
1607
|
-
throw new ValidationError("Task result",
|
|
1757
|
+
throw new ValidationError("Task result", runnerTask.id, error);
|
|
1608
1758
|
}
|
|
1609
1759
|
}
|
|
1610
1760
|
return rawResult;
|
|
@@ -1622,7 +1772,7 @@ var MiddlewareManager = class {
|
|
|
1622
1772
|
].reverse();
|
|
1623
1773
|
const createExecutionInput = /* @__PURE__ */ __name((input, nextFunc) => ({
|
|
1624
1774
|
task: {
|
|
1625
|
-
definition:
|
|
1775
|
+
definition: task2,
|
|
1626
1776
|
input
|
|
1627
1777
|
},
|
|
1628
1778
|
next: nextFunc
|
|
@@ -1641,7 +1791,19 @@ var MiddlewareManager = class {
|
|
|
1641
1791
|
}
|
|
1642
1792
|
next = currentNext;
|
|
1643
1793
|
}
|
|
1644
|
-
|
|
1794
|
+
let createdMiddlewares = this.getApplicableTaskMiddlewares(task2);
|
|
1795
|
+
const isLocallyTunneledPolicy = task2[symbolTunneledTask] === "client" || tDef[symbolTunneledTask] === "client";
|
|
1796
|
+
if (isLocallyTunneledPolicy && globalTags.tunnelPolicy.exists(tDef)) {
|
|
1797
|
+
const cfg = globalTags.tunnelPolicy.extract(task2);
|
|
1798
|
+
const allowList = cfg?.client || void 0;
|
|
1799
|
+
if (Array.isArray(allowList)) {
|
|
1800
|
+
const toId = /* @__PURE__ */ __name((x) => typeof x === "string" ? x : x?.id, "toId");
|
|
1801
|
+
const allowed = new Set(allowList.map(toId).filter(Boolean));
|
|
1802
|
+
createdMiddlewares = createdMiddlewares.filter(
|
|
1803
|
+
(m) => allowed.has(m.id)
|
|
1804
|
+
);
|
|
1805
|
+
}
|
|
1806
|
+
}
|
|
1645
1807
|
if (createdMiddlewares.length === 0) {
|
|
1646
1808
|
return next;
|
|
1647
1809
|
}
|
|
@@ -1653,7 +1815,7 @@ var MiddlewareManager = class {
|
|
|
1653
1815
|
return storeMiddleware.middleware.run(
|
|
1654
1816
|
{
|
|
1655
1817
|
task: {
|
|
1656
|
-
definition:
|
|
1818
|
+
definition: task2,
|
|
1657
1819
|
input
|
|
1658
1820
|
},
|
|
1659
1821
|
next: nextFunction
|
|
@@ -1675,29 +1837,29 @@ var MiddlewareManager = class {
|
|
|
1675
1837
|
/**
|
|
1676
1838
|
* Run a resource init wrapped with its applicable middlewares.
|
|
1677
1839
|
*/
|
|
1678
|
-
async runResourceInit(
|
|
1840
|
+
async runResourceInit(resource2, config, dependencies, context) {
|
|
1679
1841
|
let next = /* @__PURE__ */ __name(async (cfg) => {
|
|
1680
|
-
if (!
|
|
1681
|
-
const rawValue = await
|
|
1842
|
+
if (!resource2.init) return void 0;
|
|
1843
|
+
const rawValue = await resource2.init.call(
|
|
1682
1844
|
null,
|
|
1683
1845
|
cfg,
|
|
1684
1846
|
dependencies,
|
|
1685
1847
|
context
|
|
1686
1848
|
);
|
|
1687
|
-
if (
|
|
1849
|
+
if (resource2.resultSchema) {
|
|
1688
1850
|
try {
|
|
1689
|
-
return
|
|
1851
|
+
return resource2.resultSchema.parse(rawValue);
|
|
1690
1852
|
} catch (error) {
|
|
1691
1853
|
throw new ValidationError(
|
|
1692
1854
|
"Resource result",
|
|
1693
|
-
|
|
1855
|
+
resource2.id,
|
|
1694
1856
|
error
|
|
1695
1857
|
);
|
|
1696
1858
|
}
|
|
1697
1859
|
}
|
|
1698
1860
|
return rawValue;
|
|
1699
1861
|
}, "next");
|
|
1700
|
-
const createdMiddlewares = this.getApplicableResourceMiddlewares(
|
|
1862
|
+
const createdMiddlewares = this.getApplicableResourceMiddlewares(resource2);
|
|
1701
1863
|
for (let i = createdMiddlewares.length - 1; i >= 0; i--) {
|
|
1702
1864
|
const middleware = createdMiddlewares[i];
|
|
1703
1865
|
const storeMiddleware = this.store.resourceMiddlewares.get(
|
|
@@ -1709,7 +1871,7 @@ var MiddlewareManager = class {
|
|
|
1709
1871
|
const result = await storeMiddleware.middleware.run(
|
|
1710
1872
|
{
|
|
1711
1873
|
resource: {
|
|
1712
|
-
definition:
|
|
1874
|
+
definition: resource2,
|
|
1713
1875
|
config: cfg
|
|
1714
1876
|
},
|
|
1715
1877
|
next: nextFunction
|
|
@@ -1723,7 +1885,7 @@ var MiddlewareManager = class {
|
|
|
1723
1885
|
await this.store.onUnhandledError({
|
|
1724
1886
|
error,
|
|
1725
1887
|
kind: "resourceInit",
|
|
1726
|
-
source:
|
|
1888
|
+
source: resource2.id
|
|
1727
1889
|
});
|
|
1728
1890
|
} catch (_) {
|
|
1729
1891
|
}
|
|
@@ -1744,7 +1906,7 @@ var MiddlewareManager = class {
|
|
|
1744
1906
|
].reverse();
|
|
1745
1907
|
const createExecutionInput = /* @__PURE__ */ __name((config2, nextFunc) => ({
|
|
1746
1908
|
resource: {
|
|
1747
|
-
definition:
|
|
1909
|
+
definition: resource2,
|
|
1748
1910
|
config: config2
|
|
1749
1911
|
},
|
|
1750
1912
|
next: nextFunc
|
|
@@ -1765,19 +1927,19 @@ var MiddlewareManager = class {
|
|
|
1765
1927
|
}
|
|
1766
1928
|
return next(config);
|
|
1767
1929
|
}
|
|
1768
|
-
getApplicableTaskMiddlewares(
|
|
1769
|
-
const existingMiddlewares =
|
|
1930
|
+
getApplicableTaskMiddlewares(task2) {
|
|
1931
|
+
const existingMiddlewares = task2.middleware;
|
|
1770
1932
|
const existingMiddlewareIds = existingMiddlewares.map((x) => x.id);
|
|
1771
|
-
const globalMiddlewares2 = this.getEverywhereMiddlewareForTasks(
|
|
1933
|
+
const globalMiddlewares2 = this.getEverywhereMiddlewareForTasks(task2).filter(
|
|
1772
1934
|
(x) => !existingMiddlewareIds.includes(x.id)
|
|
1773
1935
|
);
|
|
1774
1936
|
return [...globalMiddlewares2, ...existingMiddlewares];
|
|
1775
1937
|
}
|
|
1776
|
-
getApplicableResourceMiddlewares(
|
|
1777
|
-
const existingMiddlewares =
|
|
1938
|
+
getApplicableResourceMiddlewares(resource2) {
|
|
1939
|
+
const existingMiddlewares = resource2.middleware;
|
|
1778
1940
|
const existingMiddlewareIds = existingMiddlewares.map((x) => x.id);
|
|
1779
1941
|
const globalMiddlewares2 = this.getEverywhereMiddlewareForResources(
|
|
1780
|
-
|
|
1942
|
+
resource2
|
|
1781
1943
|
).filter((x) => !existingMiddlewareIds.includes(x.id));
|
|
1782
1944
|
return [...globalMiddlewares2, ...existingMiddlewares];
|
|
1783
1945
|
}
|
|
@@ -1785,10 +1947,10 @@ var MiddlewareManager = class {
|
|
|
1785
1947
|
* @param task
|
|
1786
1948
|
* @returns
|
|
1787
1949
|
*/
|
|
1788
|
-
getEverywhereMiddlewareForTasks(
|
|
1950
|
+
getEverywhereMiddlewareForTasks(task2) {
|
|
1789
1951
|
return Array.from(this.store.taskMiddlewares.values()).filter((x) => Boolean(x.middleware.everywhere)).filter((x) => {
|
|
1790
1952
|
if (typeof x.middleware.everywhere === "function") {
|
|
1791
|
-
return x.middleware.everywhere(
|
|
1953
|
+
return x.middleware.everywhere(task2);
|
|
1792
1954
|
}
|
|
1793
1955
|
return true;
|
|
1794
1956
|
}).map((x) => x.middleware);
|
|
@@ -1825,15 +1987,15 @@ var ResourceInitializer = class {
|
|
|
1825
1987
|
* Begins the execution of an task. These are registered tasks and all sanity checks have been performed at this stage to ensure consistency of the object.
|
|
1826
1988
|
* This function can throw only if any of the event listeners or run function throws
|
|
1827
1989
|
*/
|
|
1828
|
-
async initializeResource(
|
|
1829
|
-
const context =
|
|
1990
|
+
async initializeResource(resource2, config, dependencies) {
|
|
1991
|
+
const context = resource2.context?.();
|
|
1830
1992
|
let value;
|
|
1831
|
-
if (!
|
|
1832
|
-
|
|
1993
|
+
if (!resource2.init) {
|
|
1994
|
+
resource2.init = (async () => void 0);
|
|
1833
1995
|
}
|
|
1834
|
-
if (
|
|
1996
|
+
if (resource2.init) {
|
|
1835
1997
|
value = await this.initWithMiddleware(
|
|
1836
|
-
|
|
1998
|
+
resource2,
|
|
1837
1999
|
config,
|
|
1838
2000
|
dependencies,
|
|
1839
2001
|
context
|
|
@@ -1842,9 +2004,9 @@ var ResourceInitializer = class {
|
|
|
1842
2004
|
return { value, context };
|
|
1843
2005
|
}
|
|
1844
2006
|
// Lifecycle emissions removed
|
|
1845
|
-
async initWithMiddleware(
|
|
2007
|
+
async initWithMiddleware(resource2, config, dependencies, context) {
|
|
1846
2008
|
return this.middlewareManager.runResourceInit(
|
|
1847
|
-
|
|
2009
|
+
resource2,
|
|
1848
2010
|
config,
|
|
1849
2011
|
dependencies,
|
|
1850
2012
|
context
|
|
@@ -2310,45 +2472,45 @@ var DependencyProcessor = class {
|
|
|
2310
2472
|
middleware.computedDependencies = computedDependencies;
|
|
2311
2473
|
middleware.isInitialized = true;
|
|
2312
2474
|
}
|
|
2313
|
-
for (const
|
|
2314
|
-
await this.processResourceDependencies(
|
|
2475
|
+
for (const resource2 of this.store.resources.values()) {
|
|
2476
|
+
await this.processResourceDependencies(resource2);
|
|
2315
2477
|
}
|
|
2316
|
-
for (const
|
|
2317
|
-
await this.computeTaskDependencies(
|
|
2478
|
+
for (const task2 of this.store.tasks.values()) {
|
|
2479
|
+
await this.computeTaskDependencies(task2);
|
|
2318
2480
|
}
|
|
2319
2481
|
for (const hookStoreElement of this.store.hooks.values()) {
|
|
2320
|
-
const
|
|
2321
|
-
const deps =
|
|
2482
|
+
const hook2 = hookStoreElement.hook;
|
|
2483
|
+
const deps = hook2.dependencies;
|
|
2322
2484
|
hookStoreElement.computedDependencies = await this.extractDependencies(
|
|
2323
2485
|
deps,
|
|
2324
|
-
|
|
2486
|
+
hook2.id
|
|
2325
2487
|
);
|
|
2326
2488
|
}
|
|
2327
2489
|
await this.initializeUninitializedResources();
|
|
2328
2490
|
}
|
|
2329
|
-
async computeTaskDependencies(
|
|
2330
|
-
const deps =
|
|
2331
|
-
|
|
2491
|
+
async computeTaskDependencies(task2) {
|
|
2492
|
+
const deps = task2.task.dependencies;
|
|
2493
|
+
task2.computedDependencies = await this.extractDependencies(
|
|
2332
2494
|
deps,
|
|
2333
|
-
|
|
2495
|
+
task2.task.id
|
|
2334
2496
|
);
|
|
2335
|
-
|
|
2497
|
+
task2.isInitialized = true;
|
|
2336
2498
|
}
|
|
2337
2499
|
// Most likely these are resources that no-one has dependencies towards
|
|
2338
2500
|
// We need to ensure they work too!
|
|
2339
2501
|
async initializeUninitializedResources() {
|
|
2340
|
-
for (const
|
|
2341
|
-
if (
|
|
2342
|
-
|
|
2343
|
-
await this.processResourceDependencies(
|
|
2502
|
+
for (const resource2 of this.store.resources.values()) {
|
|
2503
|
+
if (resource2.isInitialized === false && // The root is the last one to be initialized and is done in a separate process.
|
|
2504
|
+
resource2.resource.id !== this.store.root.resource.id) {
|
|
2505
|
+
await this.processResourceDependencies(resource2);
|
|
2344
2506
|
const { value, context } = await this.resourceInitializer.initializeResource(
|
|
2345
|
-
|
|
2346
|
-
|
|
2347
|
-
|
|
2507
|
+
resource2.resource,
|
|
2508
|
+
resource2.config,
|
|
2509
|
+
resource2.computedDependencies
|
|
2348
2510
|
);
|
|
2349
|
-
|
|
2350
|
-
|
|
2351
|
-
|
|
2511
|
+
resource2.context = context;
|
|
2512
|
+
resource2.value = value;
|
|
2513
|
+
resource2.isInitialized = true;
|
|
2352
2514
|
}
|
|
2353
2515
|
}
|
|
2354
2516
|
}
|
|
@@ -2356,13 +2518,13 @@ var DependencyProcessor = class {
|
|
|
2356
2518
|
* Processes dependencies and hooks
|
|
2357
2519
|
* @param resource
|
|
2358
2520
|
*/
|
|
2359
|
-
async processResourceDependencies(
|
|
2360
|
-
const deps =
|
|
2521
|
+
async processResourceDependencies(resource2) {
|
|
2522
|
+
const deps = resource2.resource.dependencies || {};
|
|
2361
2523
|
const extracted = await this.extractDependencies(
|
|
2362
2524
|
deps,
|
|
2363
|
-
|
|
2525
|
+
resource2.resource.id
|
|
2364
2526
|
);
|
|
2365
|
-
|
|
2527
|
+
resource2.computedDependencies = this.wrapResourceDependencies(
|
|
2366
2528
|
deps,
|
|
2367
2529
|
extracted
|
|
2368
2530
|
);
|
|
@@ -2422,20 +2584,20 @@ var DependencyProcessor = class {
|
|
|
2422
2584
|
*/
|
|
2423
2585
|
attachListeners() {
|
|
2424
2586
|
for (const hookStoreElement of this.store.hooks.values()) {
|
|
2425
|
-
const
|
|
2426
|
-
if (
|
|
2427
|
-
const eventDefinition =
|
|
2587
|
+
const hook2 = hookStoreElement.hook;
|
|
2588
|
+
if (hook2.on) {
|
|
2589
|
+
const eventDefinition = hook2.on;
|
|
2428
2590
|
const handler = /* @__PURE__ */ __name(async (receivedEvent) => {
|
|
2429
|
-
if (receivedEvent.source ===
|
|
2591
|
+
if (receivedEvent.source === hook2.id) {
|
|
2430
2592
|
return;
|
|
2431
2593
|
}
|
|
2432
2594
|
return this.eventManager.executeHookWithInterceptors(
|
|
2433
|
-
|
|
2595
|
+
hook2,
|
|
2434
2596
|
receivedEvent,
|
|
2435
2597
|
hookStoreElement.computedDependencies
|
|
2436
2598
|
);
|
|
2437
2599
|
}, "handler");
|
|
2438
|
-
const order =
|
|
2600
|
+
const order = hook2.order ?? 0;
|
|
2439
2601
|
if (eventDefinition === "*") {
|
|
2440
2602
|
this.eventManager.addGlobalListener(handler, { order });
|
|
2441
2603
|
} else if (Array.isArray(eventDefinition)) {
|
|
@@ -2535,14 +2697,14 @@ var DependencyProcessor = class {
|
|
|
2535
2697
|
if (storeResource === void 0) {
|
|
2536
2698
|
throw new DependencyNotFoundError(`Resource ${object.id}`);
|
|
2537
2699
|
}
|
|
2538
|
-
const { resource, config } = storeResource;
|
|
2700
|
+
const { resource: resource2, config } = storeResource;
|
|
2539
2701
|
if (!storeResource.isInitialized) {
|
|
2540
|
-
if (
|
|
2541
|
-
const depMap =
|
|
2542
|
-
const raw = await this.extractDependencies(depMap,
|
|
2702
|
+
if (resource2.init) {
|
|
2703
|
+
const depMap = resource2.dependencies || {};
|
|
2704
|
+
const raw = await this.extractDependencies(depMap, resource2.id);
|
|
2543
2705
|
const wrapped = this.wrapResourceDependencies(depMap, raw);
|
|
2544
2706
|
const { value, context } = await this.resourceInitializer.initializeResource(
|
|
2545
|
-
|
|
2707
|
+
resource2,
|
|
2546
2708
|
config,
|
|
2547
2709
|
wrapped
|
|
2548
2710
|
);
|
|
@@ -2622,7 +2784,7 @@ var EventManager = class {
|
|
|
2622
2784
|
const excludeFromGlobal = globalTags.excludeFromGlobalHooks.exists(eventDefinition);
|
|
2623
2785
|
const allListeners = excludeFromGlobal ? this.listeners.get(eventDefinition.id) || [] : this.getCachedMergedListeners(eventDefinition.id);
|
|
2624
2786
|
let propagationStopped = false;
|
|
2625
|
-
const
|
|
2787
|
+
const event2 = {
|
|
2626
2788
|
id: eventDefinition.id,
|
|
2627
2789
|
data,
|
|
2628
2790
|
timestamp: /* @__PURE__ */ new Date(),
|
|
@@ -2657,7 +2819,7 @@ var EventManager = class {
|
|
|
2657
2819
|
const nextFunction = emitWithInterceptors;
|
|
2658
2820
|
emitWithInterceptors = /* @__PURE__ */ __name(async (eventToEmit) => interceptor(nextFunction, eventToEmit), "emitWithInterceptors");
|
|
2659
2821
|
}
|
|
2660
|
-
await emitWithInterceptors(
|
|
2822
|
+
await emitWithInterceptors(event2);
|
|
2661
2823
|
}, "processEmission");
|
|
2662
2824
|
if (this.runtimeCycleDetection && this.emissionStack && this.currentHookIdContext) {
|
|
2663
2825
|
const currentStack = this.emissionStack.getStore();
|
|
@@ -2691,7 +2853,7 @@ var EventManager = class {
|
|
|
2691
2853
|
* @param handler - The callback function to handle the event
|
|
2692
2854
|
* @param options - Configuration options for the listener
|
|
2693
2855
|
*/
|
|
2694
|
-
addListener(
|
|
2856
|
+
addListener(event2, handler, options = HandlerOptionsDefaults) {
|
|
2695
2857
|
this.checkLock();
|
|
2696
2858
|
const newListener = {
|
|
2697
2859
|
handler,
|
|
@@ -2700,10 +2862,10 @@ var EventManager = class {
|
|
|
2700
2862
|
id: options.id,
|
|
2701
2863
|
isGlobal: false
|
|
2702
2864
|
};
|
|
2703
|
-
if (Array.isArray(
|
|
2704
|
-
|
|
2865
|
+
if (Array.isArray(event2)) {
|
|
2866
|
+
event2.forEach((id2) => this.addListener(id2, handler, options));
|
|
2705
2867
|
} else {
|
|
2706
|
-
const eventId =
|
|
2868
|
+
const eventId = event2.id;
|
|
2707
2869
|
const listeners = this.listeners.get(eventId);
|
|
2708
2870
|
if (listeners) {
|
|
2709
2871
|
this.insertListener(listeners, newListener);
|
|
@@ -2780,7 +2942,7 @@ var EventManager = class {
|
|
|
2780
2942
|
* @param computedDependencies - The computed dependencies for the hook
|
|
2781
2943
|
* @returns Promise resolving to the hook execution result
|
|
2782
2944
|
*/
|
|
2783
|
-
async executeHookWithInterceptors(
|
|
2945
|
+
async executeHookWithInterceptors(hook2, event2, computedDependencies) {
|
|
2784
2946
|
const baseExecute = /* @__PURE__ */ __name(async (hookToExecute, eventForHook) => {
|
|
2785
2947
|
try {
|
|
2786
2948
|
const result = await hookToExecute.run(
|
|
@@ -2800,11 +2962,11 @@ var EventManager = class {
|
|
|
2800
2962
|
}
|
|
2801
2963
|
if (this.runtimeCycleDetection) {
|
|
2802
2964
|
return await this.currentHookIdContext?.run(
|
|
2803
|
-
|
|
2804
|
-
async () => await executeWithInterceptors(
|
|
2965
|
+
hook2.id,
|
|
2966
|
+
async () => await executeWithInterceptors(hook2, event2)
|
|
2805
2967
|
);
|
|
2806
2968
|
} else {
|
|
2807
|
-
return await executeWithInterceptors(
|
|
2969
|
+
return await executeWithInterceptors(hook2, event2);
|
|
2808
2970
|
}
|
|
2809
2971
|
}
|
|
2810
2972
|
// ==================== PRIVATE METHODS ====================
|
|
@@ -2865,8 +3027,8 @@ var EventManager = class {
|
|
|
2865
3027
|
* @param event - The event emission to check
|
|
2866
3028
|
* @returns true if event should exclude global listeners
|
|
2867
3029
|
*/
|
|
2868
|
-
isExcludedFromGlobal(
|
|
2869
|
-
return globalTags.excludeFromGlobalHooks.exists(
|
|
3030
|
+
isExcludedFromGlobal(event2) {
|
|
3031
|
+
return globalTags.excludeFromGlobalHooks.exists(event2);
|
|
2870
3032
|
}
|
|
2871
3033
|
/**
|
|
2872
3034
|
* Retrieves cached merged listeners for an event, or creates them if not cached.
|
|
@@ -2991,25 +3153,25 @@ var StoreValidator = class {
|
|
|
2991
3153
|
}
|
|
2992
3154
|
}
|
|
2993
3155
|
runSanityChecks() {
|
|
2994
|
-
for (const
|
|
2995
|
-
const middlewares =
|
|
3156
|
+
for (const task2 of this.registry.tasks.values()) {
|
|
3157
|
+
const middlewares = task2.task.middleware;
|
|
2996
3158
|
middlewares.forEach((middlewareAttachment) => {
|
|
2997
3159
|
if (!this.registry.taskMiddlewares.has(middlewareAttachment.id)) {
|
|
2998
3160
|
throw new MiddlewareNotRegisteredError(
|
|
2999
3161
|
"task",
|
|
3000
|
-
|
|
3162
|
+
task2.task.id,
|
|
3001
3163
|
middlewareAttachment.id
|
|
3002
3164
|
);
|
|
3003
3165
|
}
|
|
3004
3166
|
});
|
|
3005
3167
|
}
|
|
3006
|
-
for (const
|
|
3007
|
-
const middlewares =
|
|
3168
|
+
for (const resource2 of this.registry.resources.values()) {
|
|
3169
|
+
const middlewares = resource2.resource.middleware;
|
|
3008
3170
|
middlewares.forEach((middlewareAttachment) => {
|
|
3009
3171
|
if (!this.registry.resourceMiddlewares.has(middlewareAttachment.id)) {
|
|
3010
3172
|
throw new MiddlewareNotRegisteredError(
|
|
3011
3173
|
"resource",
|
|
3012
|
-
|
|
3174
|
+
resource2.resource.id,
|
|
3013
3175
|
middlewareAttachment.id
|
|
3014
3176
|
);
|
|
3015
3177
|
}
|
|
@@ -3033,9 +3195,9 @@ var StoreValidator = class {
|
|
|
3033
3195
|
for (const taggable of taggables) {
|
|
3034
3196
|
const tags = taggable.tags;
|
|
3035
3197
|
if (tags) {
|
|
3036
|
-
for (const
|
|
3037
|
-
if (!this.registry.tags.has(
|
|
3038
|
-
throw new TagNotFoundError(
|
|
3198
|
+
for (const tag2 of tags) {
|
|
3199
|
+
if (!this.registry.tags.has(tag2.id)) {
|
|
3200
|
+
throw new TagNotFoundError(tag2.id);
|
|
3039
3201
|
}
|
|
3040
3202
|
}
|
|
3041
3203
|
}
|
|
@@ -3089,9 +3251,9 @@ var StoreRegistry = class {
|
|
|
3089
3251
|
}
|
|
3090
3252
|
storeHook(item, overrideMode = "normal") {
|
|
3091
3253
|
overrideMode === "normal" && this.validator.checkIfIDExists(item.id);
|
|
3092
|
-
const
|
|
3093
|
-
this.hooks.set(
|
|
3094
|
-
hook,
|
|
3254
|
+
const hook2 = this.getFreshValue(item, this.hooks, "hook", overrideMode);
|
|
3255
|
+
this.hooks.set(hook2.id, {
|
|
3256
|
+
hook: hook2,
|
|
3095
3257
|
computedDependencies: {}
|
|
3096
3258
|
});
|
|
3097
3259
|
}
|
|
@@ -3173,9 +3335,9 @@ var StoreRegistry = class {
|
|
|
3173
3335
|
}
|
|
3174
3336
|
storeTask(item, storingMode = "normal") {
|
|
3175
3337
|
storingMode === "normal" && this.validator.checkIfIDExists(item.id);
|
|
3176
|
-
const
|
|
3177
|
-
this.tasks.set(
|
|
3178
|
-
task,
|
|
3338
|
+
const task2 = this.getFreshValue(item, this.tasks, "task", storingMode);
|
|
3339
|
+
this.tasks.set(task2.id, {
|
|
3340
|
+
task: task2,
|
|
3179
3341
|
computedDependencies: {},
|
|
3180
3342
|
isInitialized: false
|
|
3181
3343
|
});
|
|
@@ -3185,11 +3347,11 @@ var StoreRegistry = class {
|
|
|
3185
3347
|
const depenedants = [];
|
|
3186
3348
|
const nodeMap = /* @__PURE__ */ new Map();
|
|
3187
3349
|
this.setupBlankNodes(nodeMap, depenedants);
|
|
3188
|
-
for (const
|
|
3189
|
-
const node = nodeMap.get(
|
|
3190
|
-
if (
|
|
3350
|
+
for (const task2 of this.tasks.values()) {
|
|
3351
|
+
const node = nodeMap.get(task2.task.id);
|
|
3352
|
+
if (task2.task.dependencies) {
|
|
3191
3353
|
for (const [depKey, depItem] of Object.entries(
|
|
3192
|
-
|
|
3354
|
+
task2.task.dependencies
|
|
3193
3355
|
)) {
|
|
3194
3356
|
const candidate = isOptional(depItem) ? depItem.inner : depItem;
|
|
3195
3357
|
const depNode = nodeMap.get(candidate.id);
|
|
@@ -3198,7 +3360,7 @@ var StoreRegistry = class {
|
|
|
3198
3360
|
}
|
|
3199
3361
|
}
|
|
3200
3362
|
}
|
|
3201
|
-
const t =
|
|
3363
|
+
const t = task2.task;
|
|
3202
3364
|
for (const middleware of t.middleware) {
|
|
3203
3365
|
const middlewareNode = nodeMap.get(middleware.id);
|
|
3204
3366
|
if (middlewareNode) {
|
|
@@ -3222,9 +3384,9 @@ var StoreRegistry = class {
|
|
|
3222
3384
|
}
|
|
3223
3385
|
if (middleware.everywhere) {
|
|
3224
3386
|
const filter = typeof middleware.everywhere === "function" ? middleware.everywhere : () => true;
|
|
3225
|
-
for (const
|
|
3226
|
-
if (filter(
|
|
3227
|
-
const taskNode = nodeMap.get(
|
|
3387
|
+
for (const task2 of this.tasks.values()) {
|
|
3388
|
+
if (filter(task2.task)) {
|
|
3389
|
+
const taskNode = nodeMap.get(task2.task.id);
|
|
3228
3390
|
taskNode.dependencies[`__middleware.${middleware.id}`] = node;
|
|
3229
3391
|
}
|
|
3230
3392
|
}
|
|
@@ -3246,19 +3408,19 @@ var StoreRegistry = class {
|
|
|
3246
3408
|
}
|
|
3247
3409
|
if (middleware.everywhere) {
|
|
3248
3410
|
const filter = typeof middleware.everywhere === "function" ? middleware.everywhere : () => true;
|
|
3249
|
-
for (const
|
|
3250
|
-
if (filter(
|
|
3251
|
-
const resourceNode = nodeMap.get(
|
|
3411
|
+
for (const resource2 of this.resources.values()) {
|
|
3412
|
+
if (filter(resource2.resource)) {
|
|
3413
|
+
const resourceNode = nodeMap.get(resource2.resource.id);
|
|
3252
3414
|
resourceNode.dependencies[`__middleware.${middleware.id}`] = node;
|
|
3253
3415
|
}
|
|
3254
3416
|
}
|
|
3255
3417
|
}
|
|
3256
3418
|
}
|
|
3257
|
-
for (const
|
|
3258
|
-
const node = nodeMap.get(
|
|
3259
|
-
if (
|
|
3419
|
+
for (const resource2 of this.resources.values()) {
|
|
3420
|
+
const node = nodeMap.get(resource2.resource.id);
|
|
3421
|
+
if (resource2.resource.dependencies) {
|
|
3260
3422
|
for (const [depKey, depItem] of Object.entries(
|
|
3261
|
-
|
|
3423
|
+
resource2.resource.dependencies
|
|
3262
3424
|
)) {
|
|
3263
3425
|
const candidate = isOptional(depItem) ? depItem.inner : depItem;
|
|
3264
3426
|
const depNode = nodeMap.get(candidate.id);
|
|
@@ -3267,18 +3429,18 @@ var StoreRegistry = class {
|
|
|
3267
3429
|
}
|
|
3268
3430
|
}
|
|
3269
3431
|
}
|
|
3270
|
-
for (const middleware of
|
|
3432
|
+
for (const middleware of resource2.resource.middleware) {
|
|
3271
3433
|
const middlewareNode = nodeMap.get(middleware.id);
|
|
3272
3434
|
if (middlewareNode) {
|
|
3273
3435
|
node.dependencies[middleware.id] = middlewareNode;
|
|
3274
3436
|
}
|
|
3275
3437
|
}
|
|
3276
3438
|
}
|
|
3277
|
-
for (const
|
|
3278
|
-
const node = nodeMap.get(
|
|
3279
|
-
if (
|
|
3439
|
+
for (const hook2 of this.hooks.values()) {
|
|
3440
|
+
const node = nodeMap.get(hook2.hook.id);
|
|
3441
|
+
if (hook2.hook.dependencies) {
|
|
3280
3442
|
for (const [depKey, depItem] of Object.entries(
|
|
3281
|
-
|
|
3443
|
+
hook2.hook.dependencies
|
|
3282
3444
|
)) {
|
|
3283
3445
|
const candidate = isOptional(depItem) ? depItem.inner : depItem;
|
|
3284
3446
|
const depNode = nodeMap.get(candidate.id);
|
|
@@ -3330,12 +3492,12 @@ var StoreRegistry = class {
|
|
|
3330
3492
|
return Array.from(nodes.values());
|
|
3331
3493
|
}
|
|
3332
3494
|
setupBlankNodes(nodeMap, depenedants) {
|
|
3333
|
-
for (const
|
|
3495
|
+
for (const task2 of this.tasks.values()) {
|
|
3334
3496
|
const node = {
|
|
3335
|
-
id:
|
|
3497
|
+
id: task2.task.id,
|
|
3336
3498
|
dependencies: {}
|
|
3337
3499
|
};
|
|
3338
|
-
nodeMap.set(
|
|
3500
|
+
nodeMap.set(task2.task.id, node);
|
|
3339
3501
|
depenedants.push(node);
|
|
3340
3502
|
}
|
|
3341
3503
|
for (const middleware of this.taskMiddlewares.values()) {
|
|
@@ -3354,31 +3516,31 @@ var StoreRegistry = class {
|
|
|
3354
3516
|
nodeMap.set(middleware.middleware.id, node);
|
|
3355
3517
|
depenedants.push(node);
|
|
3356
3518
|
}
|
|
3357
|
-
for (const
|
|
3519
|
+
for (const resource2 of this.resources.values()) {
|
|
3358
3520
|
const node = {
|
|
3359
|
-
id:
|
|
3521
|
+
id: resource2.resource.id,
|
|
3360
3522
|
dependencies: {}
|
|
3361
3523
|
};
|
|
3362
|
-
nodeMap.set(
|
|
3524
|
+
nodeMap.set(resource2.resource.id, node);
|
|
3363
3525
|
depenedants.push(node);
|
|
3364
3526
|
}
|
|
3365
|
-
for (const
|
|
3527
|
+
for (const hook2 of this.hooks.values()) {
|
|
3366
3528
|
const node = {
|
|
3367
|
-
id:
|
|
3529
|
+
id: hook2.hook.id,
|
|
3368
3530
|
dependencies: {}
|
|
3369
3531
|
};
|
|
3370
|
-
nodeMap.set(
|
|
3532
|
+
nodeMap.set(hook2.hook.id, node);
|
|
3371
3533
|
depenedants.push(node);
|
|
3372
3534
|
}
|
|
3373
3535
|
}
|
|
3374
|
-
getTasksWithTag(
|
|
3375
|
-
const tagId = typeof
|
|
3536
|
+
getTasksWithTag(tag2) {
|
|
3537
|
+
const tagId = typeof tag2 === "string" ? tag2 : tag2.id;
|
|
3376
3538
|
return Array.from(this.tasks.values()).filter((x) => {
|
|
3377
3539
|
return x.task.tags.some((t) => t.id === tagId);
|
|
3378
3540
|
}).map((x) => x.task);
|
|
3379
3541
|
}
|
|
3380
|
-
getResourcesWithTag(
|
|
3381
|
-
const tagId = typeof
|
|
3542
|
+
getResourcesWithTag(tag2) {
|
|
3543
|
+
const tagId = typeof tag2 === "string" ? tag2 : tag2.id;
|
|
3382
3544
|
return Array.from(this.resources.values()).filter((x) => {
|
|
3383
3545
|
return x.resource.tags.some((t) => t.id === tagId);
|
|
3384
3546
|
}).map((x) => x.resource);
|
|
@@ -3467,7 +3629,132 @@ var OverrideManager = class {
|
|
|
3467
3629
|
}
|
|
3468
3630
|
};
|
|
3469
3631
|
|
|
3470
|
-
// src/
|
|
3632
|
+
// src/globals/middleware/tunnel.middleware.ts
|
|
3633
|
+
var originalRuns = /* @__PURE__ */ new WeakMap();
|
|
3634
|
+
var tunnelResourceMiddleware = defineResourceMiddleware({
|
|
3635
|
+
id: "globals.middleware.resource.tunnel",
|
|
3636
|
+
dependencies: {
|
|
3637
|
+
store: globalResources.store,
|
|
3638
|
+
eventManager: globalResources.eventManager
|
|
3639
|
+
},
|
|
3640
|
+
// Only applies to resources tagged with globals.tags.tunnel
|
|
3641
|
+
everywhere: /* @__PURE__ */ __name((resource2) => globalTags.tunnel.exists(resource2), "everywhere"),
|
|
3642
|
+
run: /* @__PURE__ */ __name(async ({ resource: resource2, next }, { store: store2, eventManager }) => {
|
|
3643
|
+
const value = await next(resource2.config);
|
|
3644
|
+
const mode = value.mode || "none";
|
|
3645
|
+
const delivery = value.eventDeliveryMode || "mirror";
|
|
3646
|
+
const tasks = value.tasks ? resolveTasks(store2, value.tasks) : [];
|
|
3647
|
+
const events = value.events ? resolveEvents(store2, value.events) : [];
|
|
3648
|
+
if (mode === "client" || mode === "both") {
|
|
3649
|
+
if (tasks.length > 0 && typeof value.run !== "function") {
|
|
3650
|
+
throw new Error(
|
|
3651
|
+
"Tunnel resource value must implement run(task, input) when tasks[] is configured."
|
|
3652
|
+
);
|
|
3653
|
+
}
|
|
3654
|
+
if (events.length > 0 && typeof value.emit !== "function") {
|
|
3655
|
+
throw new Error(
|
|
3656
|
+
"Tunnel resource value must implement emit(event, payload) when events[] is configured."
|
|
3657
|
+
);
|
|
3658
|
+
}
|
|
3659
|
+
}
|
|
3660
|
+
if (mode === "none" || mode === "server") {
|
|
3661
|
+
return value;
|
|
3662
|
+
}
|
|
3663
|
+
for (const t of tasks) {
|
|
3664
|
+
if (!originalRuns.has(t)) {
|
|
3665
|
+
originalRuns.set(t, t.run);
|
|
3666
|
+
}
|
|
3667
|
+
t.run = (async (input) => {
|
|
3668
|
+
return value.run(t, input);
|
|
3669
|
+
});
|
|
3670
|
+
t[symbolTunneledTask] = "client";
|
|
3671
|
+
}
|
|
3672
|
+
if (events.length > 0) {
|
|
3673
|
+
const selectedEventIds = new Set(events.map((e) => e.id));
|
|
3674
|
+
eventManager.intercept(
|
|
3675
|
+
async (next2, emission) => {
|
|
3676
|
+
if (!selectedEventIds.has(emission.id)) {
|
|
3677
|
+
return next2(emission);
|
|
3678
|
+
}
|
|
3679
|
+
if (delivery === "local-only") {
|
|
3680
|
+
return next2(emission);
|
|
3681
|
+
}
|
|
3682
|
+
if (delivery === "remote-only") {
|
|
3683
|
+
return value.emit(emission);
|
|
3684
|
+
}
|
|
3685
|
+
if (delivery === "remote-first") {
|
|
3686
|
+
try {
|
|
3687
|
+
await value.emit(emission);
|
|
3688
|
+
} catch (_) {
|
|
3689
|
+
return next2(emission);
|
|
3690
|
+
}
|
|
3691
|
+
return;
|
|
3692
|
+
}
|
|
3693
|
+
await next2(emission);
|
|
3694
|
+
return value.emit(emission);
|
|
3695
|
+
}
|
|
3696
|
+
);
|
|
3697
|
+
}
|
|
3698
|
+
return value;
|
|
3699
|
+
}, "run"),
|
|
3700
|
+
tags: [globalTags.system]
|
|
3701
|
+
});
|
|
3702
|
+
function resolveTasks(store2, selector) {
|
|
3703
|
+
const out = [];
|
|
3704
|
+
if (typeof selector === "function") {
|
|
3705
|
+
for (const t of store2.tasks.values()) {
|
|
3706
|
+
if (selector(t.task)) {
|
|
3707
|
+
out.push(t.task);
|
|
3708
|
+
}
|
|
3709
|
+
}
|
|
3710
|
+
return out;
|
|
3711
|
+
}
|
|
3712
|
+
for (const item of selector) {
|
|
3713
|
+
if (typeof item === "string") {
|
|
3714
|
+
const st = store2.tasks.get(item);
|
|
3715
|
+
if (!st)
|
|
3716
|
+
throw new Error(
|
|
3717
|
+
`Task ${item} not found while trying to resolve tasks for tunnel.`
|
|
3718
|
+
);
|
|
3719
|
+
out.push(st.task);
|
|
3720
|
+
} else if (item && typeof item === "object") {
|
|
3721
|
+
const st = store2.tasks.get(item.id);
|
|
3722
|
+
if (!st)
|
|
3723
|
+
throw new Error(
|
|
3724
|
+
`Task ${item} not found while trying to resolve tasks for tunnel.`
|
|
3725
|
+
);
|
|
3726
|
+
out.push(st.task);
|
|
3727
|
+
}
|
|
3728
|
+
}
|
|
3729
|
+
return out;
|
|
3730
|
+
}
|
|
3731
|
+
__name(resolveTasks, "resolveTasks");
|
|
3732
|
+
function resolveEvents(store2, selector) {
|
|
3733
|
+
const out = [];
|
|
3734
|
+
if (typeof selector === "function") {
|
|
3735
|
+
for (const e of store2.events.values()) {
|
|
3736
|
+
if (selector(e.event)) {
|
|
3737
|
+
out.push(e.event);
|
|
3738
|
+
}
|
|
3739
|
+
}
|
|
3740
|
+
return out;
|
|
3741
|
+
}
|
|
3742
|
+
for (const item of selector) {
|
|
3743
|
+
let st;
|
|
3744
|
+
if (typeof item === "string") {
|
|
3745
|
+
st = store2.events.get(item);
|
|
3746
|
+
} else if (item && typeof item === "object") {
|
|
3747
|
+
st = store2.events.get(item.id);
|
|
3748
|
+
}
|
|
3749
|
+
if (!st)
|
|
3750
|
+
throw new Error(
|
|
3751
|
+
`Event ${item} not found while trying to resolve events for tunnel.`
|
|
3752
|
+
);
|
|
3753
|
+
out.push(st.event);
|
|
3754
|
+
}
|
|
3755
|
+
return out;
|
|
3756
|
+
}
|
|
3757
|
+
__name(resolveEvents, "resolveEvents");
|
|
3471
3758
|
var Store = class {
|
|
3472
3759
|
constructor(eventManager, logger, onUnhandledError) {
|
|
3473
3760
|
this.eventManager = eventManager;
|
|
@@ -3533,24 +3820,25 @@ var Store = class {
|
|
|
3533
3820
|
builtInResourcesMap.set(globalResources.eventManager, this.eventManager);
|
|
3534
3821
|
builtInResourcesMap.set(globalResources.logger, this.logger);
|
|
3535
3822
|
builtInResourcesMap.set(globalResources.taskRunner, this.taskRunner);
|
|
3823
|
+
builtInResourcesMap.set(globalResources.serializer, EJSON);
|
|
3536
3824
|
builtInResourcesMap.set(
|
|
3537
3825
|
globalResources.middlewareManager,
|
|
3538
3826
|
this.middlewareManager
|
|
3539
3827
|
);
|
|
3540
3828
|
this.registry.storeGenericItem(globalResources.queue);
|
|
3541
|
-
for (const [
|
|
3542
|
-
this.registry.storeGenericItem(
|
|
3543
|
-
const entry = this.resources.get(
|
|
3829
|
+
for (const [resource2, value] of builtInResourcesMap.entries()) {
|
|
3830
|
+
this.registry.storeGenericItem(resource2);
|
|
3831
|
+
const entry = this.resources.get(resource2.id);
|
|
3544
3832
|
if (entry) {
|
|
3545
3833
|
entry.value = value;
|
|
3546
3834
|
entry.isInitialized = true;
|
|
3547
3835
|
}
|
|
3548
3836
|
}
|
|
3549
|
-
Object.values(globalTags).forEach((
|
|
3550
|
-
this.registry.storeTag(
|
|
3837
|
+
Object.values(globalTags).forEach((tag2) => {
|
|
3838
|
+
this.registry.storeTag(tag2);
|
|
3551
3839
|
});
|
|
3552
|
-
globalEventsArray.forEach((
|
|
3553
|
-
this.registry.storeEvent(
|
|
3840
|
+
globalEventsArray.forEach((event2) => {
|
|
3841
|
+
this.registry.storeEvent(event2);
|
|
3554
3842
|
});
|
|
3555
3843
|
const builtInTaskMiddlewares = [
|
|
3556
3844
|
requireContextTaskMiddleware,
|
|
@@ -3566,7 +3854,8 @@ var Store = class {
|
|
|
3566
3854
|
});
|
|
3567
3855
|
const builtInResourceMiddlewares = [
|
|
3568
3856
|
retryResourceMiddleware,
|
|
3569
|
-
timeoutResourceMiddleware
|
|
3857
|
+
timeoutResourceMiddleware,
|
|
3858
|
+
tunnelResourceMiddleware
|
|
3570
3859
|
];
|
|
3571
3860
|
builtInResourceMiddlewares.forEach((middleware) => {
|
|
3572
3861
|
this.registry.resourceMiddlewares.set(middleware.id, {
|
|
@@ -3613,19 +3902,19 @@ var Store = class {
|
|
|
3613
3902
|
this.registerGlobalComponents();
|
|
3614
3903
|
this.setupRootResource(root, config);
|
|
3615
3904
|
this.validator.runSanityChecks();
|
|
3616
|
-
for (const
|
|
3617
|
-
this.overrideManager.storeOverridesDeeply(
|
|
3905
|
+
for (const resource2 of this.resources.values()) {
|
|
3906
|
+
this.overrideManager.storeOverridesDeeply(resource2.resource);
|
|
3618
3907
|
}
|
|
3619
3908
|
this.#isInitialized = true;
|
|
3620
3909
|
}
|
|
3621
3910
|
async dispose() {
|
|
3622
|
-
for (const
|
|
3623
|
-
if (
|
|
3624
|
-
await
|
|
3625
|
-
|
|
3626
|
-
|
|
3627
|
-
|
|
3628
|
-
|
|
3911
|
+
for (const resource2 of this.resources.values()) {
|
|
3912
|
+
if (resource2.isInitialized && resource2.resource.dispose) {
|
|
3913
|
+
await resource2.resource.dispose(
|
|
3914
|
+
resource2.value,
|
|
3915
|
+
resource2.config,
|
|
3916
|
+
resource2.computedDependencies,
|
|
3917
|
+
resource2.context
|
|
3629
3918
|
);
|
|
3630
3919
|
}
|
|
3631
3920
|
}
|
|
@@ -3649,16 +3938,16 @@ var Store = class {
|
|
|
3649
3938
|
* @param tag - The tag to filter by.
|
|
3650
3939
|
* @returns The tasks with the given tag.
|
|
3651
3940
|
*/
|
|
3652
|
-
getTasksWithTag(
|
|
3653
|
-
return this.registry.getTasksWithTag(
|
|
3941
|
+
getTasksWithTag(tag2) {
|
|
3942
|
+
return this.registry.getTasksWithTag(tag2);
|
|
3654
3943
|
}
|
|
3655
3944
|
/**
|
|
3656
3945
|
* Returns all resources with the given tag.
|
|
3657
3946
|
* @param tag - The tag to filter by.
|
|
3658
3947
|
* @returns The resources with the given tag.
|
|
3659
3948
|
*/
|
|
3660
|
-
getResourcesWithTag(
|
|
3661
|
-
return this.registry.getResourcesWithTag(
|
|
3949
|
+
getResourcesWithTag(tag2) {
|
|
3950
|
+
return this.registry.getResourcesWithTag(tag2);
|
|
3662
3951
|
}
|
|
3663
3952
|
};
|
|
3664
3953
|
|
|
@@ -3756,16 +4045,16 @@ var globalEventListener = defineHook({
|
|
|
3756
4045
|
logger: globalResources.logger,
|
|
3757
4046
|
debugConfig
|
|
3758
4047
|
},
|
|
3759
|
-
run: /* @__PURE__ */ __name(async (
|
|
3760
|
-
if (hasSystemTag(
|
|
4048
|
+
run: /* @__PURE__ */ __name(async (event2, { logger, debugConfig: debugConfig2 }) => {
|
|
4049
|
+
if (hasSystemTag(event2)) {
|
|
3761
4050
|
return;
|
|
3762
4051
|
}
|
|
3763
|
-
debugConfig2 = getConfig(debugConfig2,
|
|
4052
|
+
debugConfig2 = getConfig(debugConfig2, event2);
|
|
3764
4053
|
if (debugConfig2.logEventEmissionOnRun) {
|
|
3765
|
-
const message = `Event ${String(
|
|
4054
|
+
const message = `Event ${String(event2.id)} emitted`;
|
|
3766
4055
|
await logger.info(message, {
|
|
3767
4056
|
source: "globals.debug.hooks.onAnyEvent",
|
|
3768
|
-
data: debugConfig2.logEventEmissionInput ? { data:
|
|
4057
|
+
data: debugConfig2.logEventEmissionInput ? { data: event2.data } : void 0
|
|
3769
4058
|
});
|
|
3770
4059
|
}
|
|
3771
4060
|
}, "run"),
|
|
@@ -3779,26 +4068,26 @@ var globalEventListener = defineHook({
|
|
|
3779
4068
|
// src/globals/resources/debug/executionTracker.middleware.ts
|
|
3780
4069
|
var tasksTrackerMiddleware = defineTaskMiddleware({
|
|
3781
4070
|
id: "globals.debug.middleware.task.executionTracker",
|
|
3782
|
-
everywhere: /* @__PURE__ */ __name((
|
|
4071
|
+
everywhere: /* @__PURE__ */ __name((task2) => !globalTags.system.exists(task2), "everywhere"),
|
|
3783
4072
|
dependencies: {
|
|
3784
4073
|
logger: globalResources.logger,
|
|
3785
4074
|
debugConfig,
|
|
3786
4075
|
store: globalResources.store
|
|
3787
4076
|
},
|
|
3788
|
-
run: /* @__PURE__ */ __name(async ({ task, next }, { logger, debugConfig: debugConfig2, store: store2 }) => {
|
|
4077
|
+
run: /* @__PURE__ */ __name(async ({ task: task2, next }, { logger, debugConfig: debugConfig2, store: store2 }) => {
|
|
3789
4078
|
const start = Date.now();
|
|
3790
4079
|
logger = logger.with({
|
|
3791
4080
|
source: tasksTrackerMiddleware.id
|
|
3792
4081
|
});
|
|
3793
|
-
debugConfig2 = getConfig(debugConfig2,
|
|
3794
|
-
const taskStartMessage = `Task ${
|
|
3795
|
-
const shouldShowData = debugConfig2.logTaskInput &&
|
|
4082
|
+
debugConfig2 = getConfig(debugConfig2, task2?.definition);
|
|
4083
|
+
const taskStartMessage = `Task ${task2.definition.id} is running...`;
|
|
4084
|
+
const shouldShowData = debugConfig2.logTaskInput && task2.input;
|
|
3796
4085
|
await logger.info(taskStartMessage, {
|
|
3797
|
-
data: shouldShowData ? { input:
|
|
4086
|
+
data: shouldShowData ? { input: task2.input } : void 0
|
|
3798
4087
|
});
|
|
3799
|
-
const result = await next(
|
|
4088
|
+
const result = await next(task2.input);
|
|
3800
4089
|
const duration = Date.now() - start;
|
|
3801
|
-
const taskCompleteMessage = `Task ${
|
|
4090
|
+
const taskCompleteMessage = `Task ${task2.definition.id} completed in ${duration}ms`;
|
|
3802
4091
|
const shouldShowResult = debugConfig2.logTaskOutput && result;
|
|
3803
4092
|
await logger.info(taskCompleteMessage, {
|
|
3804
4093
|
data: shouldShowResult ? { result } : void 0
|
|
@@ -3818,23 +4107,23 @@ var resourcesTrackerMiddleware = defineResourceMiddleware({
|
|
|
3818
4107
|
debugConfig,
|
|
3819
4108
|
store: globalResources.store
|
|
3820
4109
|
},
|
|
3821
|
-
everywhere: /* @__PURE__ */ __name((
|
|
3822
|
-
run: /* @__PURE__ */ __name(async ({ resource, next }, { logger, debugConfig: debugConfig2, store: store2 }) => {
|
|
4110
|
+
everywhere: /* @__PURE__ */ __name((resource2) => !globalTags.system.exists(resource2), "everywhere"),
|
|
4111
|
+
run: /* @__PURE__ */ __name(async ({ resource: resource2, next }, { logger, debugConfig: debugConfig2, store: store2 }) => {
|
|
3823
4112
|
const start = Date.now();
|
|
3824
4113
|
logger = logger.with({
|
|
3825
4114
|
source: resourcesTrackerMiddleware.id
|
|
3826
4115
|
});
|
|
3827
|
-
debugConfig2 = getConfig(debugConfig2,
|
|
3828
|
-
const resourceStartMessage = `Resource ${
|
|
3829
|
-
const isConfigEmpty = Object.keys(
|
|
4116
|
+
debugConfig2 = getConfig(debugConfig2, resource2?.definition);
|
|
4117
|
+
const resourceStartMessage = `Resource ${resource2.definition.id} is initializing...`;
|
|
4118
|
+
const isConfigEmpty = Object.keys(resource2.config || {}).length === 0;
|
|
3830
4119
|
const shouldShowConfig = debugConfig2.logResourceConfig && !isConfigEmpty;
|
|
3831
4120
|
await logger.info(resourceStartMessage, {
|
|
3832
|
-
data: shouldShowConfig ? { config:
|
|
4121
|
+
data: shouldShowConfig ? { config: resource2.config } : void 0
|
|
3833
4122
|
});
|
|
3834
|
-
const result = await next(
|
|
4123
|
+
const result = await next(resource2.config);
|
|
3835
4124
|
const duration = Date.now() - start;
|
|
3836
4125
|
const resourceCompleteMessage = `Resource ${String(
|
|
3837
|
-
|
|
4126
|
+
resource2.definition.id
|
|
3838
4127
|
)} initialized in ${duration}ms`;
|
|
3839
4128
|
const shouldShowResult = debugConfig2.logResourceValue && result !== void 0;
|
|
3840
4129
|
await logger.info(resourceCompleteMessage, {
|
|
@@ -3863,14 +4152,14 @@ var middlewareInterceptorResource = defineResource({
|
|
|
3863
4152
|
debugConfig,
|
|
3864
4153
|
middlewareManager: globalResources.middlewareManager
|
|
3865
4154
|
},
|
|
3866
|
-
init: /* @__PURE__ */ __name(async (
|
|
4155
|
+
init: /* @__PURE__ */ __name(async (event2, deps) => {
|
|
3867
4156
|
const { logger, debugConfig: debugConfig2, middlewareManager } = deps;
|
|
3868
4157
|
middlewareManager.intercept(
|
|
3869
4158
|
"task",
|
|
3870
4159
|
async (next, input) => {
|
|
3871
4160
|
const taskDef = input.task.definition;
|
|
3872
4161
|
if (!hasSystemTag(taskDef)) {
|
|
3873
|
-
const cfg = getConfig(debugConfig2,
|
|
4162
|
+
const cfg = getConfig(debugConfig2, event2);
|
|
3874
4163
|
if (cfg.logMiddlewareBeforeRun) {
|
|
3875
4164
|
const msg = `Middleware triggered for task ${String(taskDef.id)}`;
|
|
3876
4165
|
await logger.info(msg, {
|
|
@@ -3880,7 +4169,7 @@ var middlewareInterceptorResource = defineResource({
|
|
|
3880
4169
|
}
|
|
3881
4170
|
const result = await next(input);
|
|
3882
4171
|
if (!hasSystemTag(taskDef)) {
|
|
3883
|
-
const cfg = getConfig(debugConfig2,
|
|
4172
|
+
const cfg = getConfig(debugConfig2, event2);
|
|
3884
4173
|
if (cfg.logMiddlewareAfterRun) {
|
|
3885
4174
|
const msg = `Middleware completed for task ${String(taskDef.id)}`;
|
|
3886
4175
|
await logger.info(msg, {
|
|
@@ -3896,7 +4185,7 @@ var middlewareInterceptorResource = defineResource({
|
|
|
3896
4185
|
async (next, input) => {
|
|
3897
4186
|
const resourceDef = input.resource.definition;
|
|
3898
4187
|
if (!hasSystemTag(resourceDef)) {
|
|
3899
|
-
const cfg = getConfig(debugConfig2,
|
|
4188
|
+
const cfg = getConfig(debugConfig2, event2);
|
|
3900
4189
|
if (cfg.logMiddlewareBeforeRun) {
|
|
3901
4190
|
const msg = `Middleware triggered for resource ${String(
|
|
3902
4191
|
resourceDef.id
|
|
@@ -3908,7 +4197,7 @@ var middlewareInterceptorResource = defineResource({
|
|
|
3908
4197
|
}
|
|
3909
4198
|
const result = await next(input);
|
|
3910
4199
|
if (!hasSystemTag(resourceDef)) {
|
|
3911
|
-
const cfg = getConfig(debugConfig2,
|
|
4200
|
+
const cfg = getConfig(debugConfig2, event2);
|
|
3912
4201
|
if (cfg.logMiddlewareAfterRun) {
|
|
3913
4202
|
const msg = `Middleware completed for resource ${String(
|
|
3914
4203
|
resourceDef.id
|
|
@@ -3937,23 +4226,23 @@ var hookInterceptorResource = defineResource({
|
|
|
3937
4226
|
debugConfig,
|
|
3938
4227
|
eventManager: globalResources.eventManager
|
|
3939
4228
|
},
|
|
3940
|
-
init: /* @__PURE__ */ __name(async (
|
|
3941
|
-
deps.eventManager.interceptHook(async (next,
|
|
4229
|
+
init: /* @__PURE__ */ __name(async (event2, deps) => {
|
|
4230
|
+
deps.eventManager.interceptHook(async (next, hook2, event3) => {
|
|
3942
4231
|
const { logger, debugConfig: debugConfig2 } = deps;
|
|
3943
|
-
if (hasSystemTag(
|
|
3944
|
-
return await next(
|
|
4232
|
+
if (hasSystemTag(hook2)) {
|
|
4233
|
+
return await next(hook2, event3);
|
|
3945
4234
|
}
|
|
3946
|
-
const resolved = getConfig(debugConfig2,
|
|
4235
|
+
const resolved = getConfig(debugConfig2, event3);
|
|
3947
4236
|
if (resolved.logHookTriggered) {
|
|
3948
|
-
const hookId =
|
|
4237
|
+
const hookId = hook2.id;
|
|
3949
4238
|
let logString = `Hook triggered for ${String(hookId)}`;
|
|
3950
4239
|
await logger.info(logString, {
|
|
3951
4240
|
source: "globals.debug.resources.hookInterceptor"
|
|
3952
4241
|
});
|
|
3953
4242
|
}
|
|
3954
|
-
await next(
|
|
4243
|
+
await next(hook2, event3);
|
|
3955
4244
|
if (resolved.logHookCompleted) {
|
|
3956
|
-
const hookId =
|
|
4245
|
+
const hookId = hook2.id;
|
|
3957
4246
|
let logString = `Hook completed for ${String(hookId)}`;
|
|
3958
4247
|
await logger.info(logString, {
|
|
3959
4248
|
source: "globals.debug.resources.hookInterceptor"
|
|
@@ -4034,13 +4323,7 @@ function installGlobalShutdownHooksOnce() {
|
|
|
4034
4323
|
activeDisposers.delete(d);
|
|
4035
4324
|
}
|
|
4036
4325
|
} finally {
|
|
4037
|
-
|
|
4038
|
-
platform2.exit(0);
|
|
4039
|
-
} catch (e) {
|
|
4040
|
-
if (!(e instanceof PlatformUnsupportedFunction)) {
|
|
4041
|
-
throw e;
|
|
4042
|
-
}
|
|
4043
|
-
}
|
|
4326
|
+
platform2.exit(0);
|
|
4044
4327
|
}
|
|
4045
4328
|
}, "handler");
|
|
4046
4329
|
platform2.onShutdownSignal(handler);
|
|
@@ -4101,38 +4384,38 @@ var RunResult = class {
|
|
|
4101
4384
|
* @param args - The arguments to pass to the task.
|
|
4102
4385
|
* @returns The result of the task.
|
|
4103
4386
|
*/
|
|
4104
|
-
this.runTask = /* @__PURE__ */ __name((
|
|
4105
|
-
if (typeof
|
|
4106
|
-
const taskId =
|
|
4387
|
+
this.runTask = /* @__PURE__ */ __name((task2, ...args) => {
|
|
4388
|
+
if (typeof task2 === "string") {
|
|
4389
|
+
const taskId = task2;
|
|
4107
4390
|
if (!this.store.tasks.has(taskId)) {
|
|
4108
4391
|
throw new RuntimeError(`Task "${taskId}" not found.`);
|
|
4109
4392
|
}
|
|
4110
|
-
|
|
4393
|
+
task2 = this.store.tasks.get(taskId).task;
|
|
4111
4394
|
}
|
|
4112
|
-
return this.taskRunner.run(
|
|
4395
|
+
return this.taskRunner.run(task2, ...args);
|
|
4113
4396
|
}, "runTask");
|
|
4114
4397
|
/**
|
|
4115
4398
|
* Emit an event within the context of the run result.
|
|
4116
4399
|
* @param event - The event to emit.
|
|
4117
4400
|
* @param payload - The payload to emit.
|
|
4118
4401
|
*/
|
|
4119
|
-
this.emitEvent = /* @__PURE__ */ __name((
|
|
4120
|
-
if (typeof
|
|
4121
|
-
const eventId =
|
|
4402
|
+
this.emitEvent = /* @__PURE__ */ __name((event2, payload) => {
|
|
4403
|
+
if (typeof event2 === "string") {
|
|
4404
|
+
const eventId = event2;
|
|
4122
4405
|
if (!this.store.events.has(eventId)) {
|
|
4123
4406
|
throw new RuntimeError(`Event "${eventId}" not found.`);
|
|
4124
4407
|
}
|
|
4125
|
-
|
|
4408
|
+
event2 = this.store.events.get(eventId).event;
|
|
4126
4409
|
}
|
|
4127
|
-
return this.eventManager.emit(
|
|
4410
|
+
return this.eventManager.emit(event2, payload, "outside");
|
|
4128
4411
|
}, "emitEvent");
|
|
4129
4412
|
/**
|
|
4130
4413
|
* Get the value of a resource from the run result.
|
|
4131
4414
|
* @param resource - The resource to get the value of.
|
|
4132
4415
|
* @returns The value of the resource.
|
|
4133
4416
|
*/
|
|
4134
|
-
this.getResourceValue = /* @__PURE__ */ __name((
|
|
4135
|
-
const resourceId = typeof
|
|
4417
|
+
this.getResourceValue = /* @__PURE__ */ __name((resource2) => {
|
|
4418
|
+
const resourceId = typeof resource2 === "string" ? resource2 : resource2.id;
|
|
4136
4419
|
if (!this.store.resources.has(resourceId)) {
|
|
4137
4420
|
throw new ResourceNotFoundError(resourceId);
|
|
4138
4421
|
}
|
|
@@ -4167,7 +4450,7 @@ async function run(resourceOrResourceWithConfig, options) {
|
|
|
4167
4450
|
const eventManager = new EventManager({
|
|
4168
4451
|
runtimeCycleDetection
|
|
4169
4452
|
});
|
|
4170
|
-
let { resource, config } = extractResourceAndConfig(
|
|
4453
|
+
let { resource: resource2, config } = extractResourceAndConfig(
|
|
4171
4454
|
resourceOrResourceWithConfig
|
|
4172
4455
|
);
|
|
4173
4456
|
const logger = new Logger({
|
|
@@ -4210,7 +4493,7 @@ async function run(resourceOrResourceWithConfig, options) {
|
|
|
4210
4493
|
if (debug) {
|
|
4211
4494
|
store2.storeGenericItem(debugResource.with(debug));
|
|
4212
4495
|
}
|
|
4213
|
-
store2.initializeStore(
|
|
4496
|
+
store2.initializeStore(resource2, config);
|
|
4214
4497
|
await store2.processOverrides();
|
|
4215
4498
|
store2.validateDependencyGraph();
|
|
4216
4499
|
store2.validateEventEmissionGraph();
|
|
@@ -4257,19 +4540,152 @@ async function run(resourceOrResourceWithConfig, options) {
|
|
|
4257
4540
|
}
|
|
4258
4541
|
__name(run, "run");
|
|
4259
4542
|
function extractResourceAndConfig(resourceOrResourceWithConfig) {
|
|
4260
|
-
let
|
|
4543
|
+
let resource2;
|
|
4261
4544
|
let config;
|
|
4262
4545
|
if (isResourceWithConfig(resourceOrResourceWithConfig)) {
|
|
4263
|
-
|
|
4546
|
+
resource2 = resourceOrResourceWithConfig.resource;
|
|
4264
4547
|
config = resourceOrResourceWithConfig.config;
|
|
4265
4548
|
} else {
|
|
4266
|
-
|
|
4549
|
+
resource2 = resourceOrResourceWithConfig;
|
|
4267
4550
|
config = void 0;
|
|
4268
4551
|
}
|
|
4269
|
-
return { resource, config };
|
|
4552
|
+
return { resource: resource2, config };
|
|
4270
4553
|
}
|
|
4271
4554
|
__name(extractResourceAndConfig, "extractResourceAndConfig");
|
|
4272
4555
|
|
|
4556
|
+
// src/globals/resources/tunnel/protocol.ts
|
|
4557
|
+
var TunnelError = class extends Error {
|
|
4558
|
+
static {
|
|
4559
|
+
__name(this, "TunnelError");
|
|
4560
|
+
}
|
|
4561
|
+
constructor(code, message, details) {
|
|
4562
|
+
super(message);
|
|
4563
|
+
this.name = "TunnelError";
|
|
4564
|
+
this.code = code;
|
|
4565
|
+
this.details = details;
|
|
4566
|
+
}
|
|
4567
|
+
};
|
|
4568
|
+
function toTunnelError(input, fallbackMessage) {
|
|
4569
|
+
if (input instanceof Error) {
|
|
4570
|
+
return new TunnelError("UNKNOWN", input.message);
|
|
4571
|
+
}
|
|
4572
|
+
if (input && typeof input === "object" && "code" in input && "message" in input && typeof input.message === "string" && typeof input.code === "string") {
|
|
4573
|
+
const pe = input;
|
|
4574
|
+
const msg = pe.message || fallbackMessage || "Tunnel error";
|
|
4575
|
+
return new TunnelError(pe.code, msg, pe.details);
|
|
4576
|
+
}
|
|
4577
|
+
if (input && typeof input === "object" && "message" in input && typeof input.message === "string") {
|
|
4578
|
+
return new TunnelError("UNKNOWN", input.message);
|
|
4579
|
+
}
|
|
4580
|
+
return new TunnelError(
|
|
4581
|
+
"UNKNOWN",
|
|
4582
|
+
typeof input === "string" && input || fallbackMessage || "Tunnel error"
|
|
4583
|
+
);
|
|
4584
|
+
}
|
|
4585
|
+
__name(toTunnelError, "toTunnelError");
|
|
4586
|
+
function assertOkEnvelope(envelope, opts) {
|
|
4587
|
+
if (!envelope || typeof envelope !== "object") {
|
|
4588
|
+
throw new TunnelError(
|
|
4589
|
+
"INVALID_RESPONSE",
|
|
4590
|
+
opts?.fallbackMessage || "Invalid or empty response"
|
|
4591
|
+
);
|
|
4592
|
+
}
|
|
4593
|
+
if (envelope.ok) {
|
|
4594
|
+
return envelope.result;
|
|
4595
|
+
}
|
|
4596
|
+
if (envelope.error) {
|
|
4597
|
+
return (() => {
|
|
4598
|
+
throw toTunnelError(envelope.error, opts?.fallbackMessage);
|
|
4599
|
+
})();
|
|
4600
|
+
}
|
|
4601
|
+
throw new TunnelError("UNKNOWN", opts?.fallbackMessage || "Tunnel error");
|
|
4602
|
+
}
|
|
4603
|
+
__name(assertOkEnvelope, "assertOkEnvelope");
|
|
4604
|
+
|
|
4605
|
+
// src/http-fetch-tunnel.resource.ts
|
|
4606
|
+
async function postSerialized(fetchFn, url, body, headers, timeoutMs, serializer, onRequest) {
|
|
4607
|
+
const controller = timeoutMs && timeoutMs > 0 ? new AbortController() : void 0;
|
|
4608
|
+
let timeout;
|
|
4609
|
+
try {
|
|
4610
|
+
if (controller) {
|
|
4611
|
+
timeout = setTimeout(() => controller.abort(), timeoutMs);
|
|
4612
|
+
}
|
|
4613
|
+
const reqHeaders = {
|
|
4614
|
+
"content-type": "application/json; charset=utf-8",
|
|
4615
|
+
...headers
|
|
4616
|
+
};
|
|
4617
|
+
if (onRequest) await onRequest({ url, headers: reqHeaders });
|
|
4618
|
+
const res = await fetchFn(url, {
|
|
4619
|
+
method: "POST",
|
|
4620
|
+
headers: reqHeaders,
|
|
4621
|
+
body: serializer.stringify(body),
|
|
4622
|
+
signal: controller?.signal
|
|
4623
|
+
});
|
|
4624
|
+
const text = await res.text();
|
|
4625
|
+
const json = text ? serializer.parse(text) : void 0;
|
|
4626
|
+
return json;
|
|
4627
|
+
} finally {
|
|
4628
|
+
if (timeout) clearTimeout(timeout);
|
|
4629
|
+
}
|
|
4630
|
+
}
|
|
4631
|
+
__name(postSerialized, "postSerialized");
|
|
4632
|
+
function createExposureFetch(cfg) {
|
|
4633
|
+
const baseUrl = (cfg?.baseUrl).replace(/\/$/, "");
|
|
4634
|
+
if (!baseUrl) throw new Error("createExposureFetch requires baseUrl");
|
|
4635
|
+
const headerName = (cfg?.auth?.header ?? "x-runner-token").toLowerCase();
|
|
4636
|
+
const buildHeaders = /* @__PURE__ */ __name(() => {
|
|
4637
|
+
const headers = {};
|
|
4638
|
+
if (cfg?.auth?.token) headers[headerName] = cfg.auth.token;
|
|
4639
|
+
return headers;
|
|
4640
|
+
}, "buildHeaders");
|
|
4641
|
+
const fetchImpl = cfg.fetchImpl ?? globalThis.fetch;
|
|
4642
|
+
if (typeof fetchImpl !== "function") {
|
|
4643
|
+
throw new Error(
|
|
4644
|
+
"global fetch is not available; provide fetchImpl in config"
|
|
4645
|
+
);
|
|
4646
|
+
}
|
|
4647
|
+
return {
|
|
4648
|
+
async task(id2, input) {
|
|
4649
|
+
const url = `${baseUrl}/task/${encodeURIComponent(id2)}`;
|
|
4650
|
+
const r2 = await postSerialized(
|
|
4651
|
+
fetchImpl,
|
|
4652
|
+
url,
|
|
4653
|
+
{ input },
|
|
4654
|
+
buildHeaders(),
|
|
4655
|
+
cfg?.timeoutMs,
|
|
4656
|
+
cfg.serializer,
|
|
4657
|
+
cfg?.onRequest
|
|
4658
|
+
);
|
|
4659
|
+
return assertOkEnvelope(r2, { fallbackMessage: "Tunnel task error" });
|
|
4660
|
+
},
|
|
4661
|
+
async event(id2, payload) {
|
|
4662
|
+
const url = `${baseUrl}/event/${encodeURIComponent(id2)}`;
|
|
4663
|
+
const r2 = await postSerialized(
|
|
4664
|
+
fetchImpl,
|
|
4665
|
+
url,
|
|
4666
|
+
{ payload },
|
|
4667
|
+
buildHeaders(),
|
|
4668
|
+
cfg?.timeoutMs,
|
|
4669
|
+
cfg.serializer,
|
|
4670
|
+
cfg?.onRequest
|
|
4671
|
+
);
|
|
4672
|
+
assertOkEnvelope(r2, { fallbackMessage: "Tunnel event error" });
|
|
4673
|
+
}
|
|
4674
|
+
};
|
|
4675
|
+
}
|
|
4676
|
+
__name(createExposureFetch, "createExposureFetch");
|
|
4677
|
+
|
|
4678
|
+
// src/globals/tunnels/index.ts
|
|
4679
|
+
var http = Object.freeze({
|
|
4680
|
+
createClient(cfg) {
|
|
4681
|
+
const { url, ...rest } = cfg;
|
|
4682
|
+
return createExposureFetch({ baseUrl: url, ...rest });
|
|
4683
|
+
}
|
|
4684
|
+
});
|
|
4685
|
+
var tunnels = Object.freeze({
|
|
4686
|
+
http
|
|
4687
|
+
});
|
|
4688
|
+
|
|
4273
4689
|
// src/testing.ts
|
|
4274
4690
|
var testResourceCounter = 0;
|
|
4275
4691
|
function createTestResource(root, options) {
|
|
@@ -4292,7 +4708,7 @@ __name(createTestResource, "createTestResource");
|
|
|
4292
4708
|
function buildTestFacade(deps) {
|
|
4293
4709
|
return {
|
|
4294
4710
|
// Run a task within the fully initialized ecosystem
|
|
4295
|
-
runTask: /* @__PURE__ */ __name((
|
|
4711
|
+
runTask: /* @__PURE__ */ __name((task2, ...args) => deps.taskRunner.run(task2, ...args), "runTask"),
|
|
4296
4712
|
// Access a resource value by id (string or symbol)
|
|
4297
4713
|
getResource: /* @__PURE__ */ __name((id2) => deps.store.resources.get(id2)?.value, "getResource"),
|
|
4298
4714
|
// Expose internals when needed in tests (not recommended for app usage)
|
|
@@ -4304,6 +4720,761 @@ function buildTestFacade(deps) {
|
|
|
4304
4720
|
}
|
|
4305
4721
|
__name(buildTestFacade, "buildTestFacade");
|
|
4306
4722
|
|
|
4723
|
+
// src/definers/builders/resource.ts
|
|
4724
|
+
function clone(s, patch) {
|
|
4725
|
+
return Object.freeze({
|
|
4726
|
+
// We reuse the frozen state while widening generics, hence the temporary cast.
|
|
4727
|
+
...s,
|
|
4728
|
+
...patch
|
|
4729
|
+
});
|
|
4730
|
+
}
|
|
4731
|
+
__name(clone, "clone");
|
|
4732
|
+
function toRegisterArray(items) {
|
|
4733
|
+
return Array.isArray(items) ? [...items] : [items];
|
|
4734
|
+
}
|
|
4735
|
+
__name(toRegisterArray, "toRegisterArray");
|
|
4736
|
+
function normalizeRegisterFunction(fn) {
|
|
4737
|
+
return (config) => toRegisterArray(fn(config));
|
|
4738
|
+
}
|
|
4739
|
+
__name(normalizeRegisterFunction, "normalizeRegisterFunction");
|
|
4740
|
+
function mergeRegister(existing, addition, override) {
|
|
4741
|
+
const isFunctionAddition = typeof addition === "function";
|
|
4742
|
+
const normalizedAddition = isFunctionAddition ? normalizeRegisterFunction(
|
|
4743
|
+
addition
|
|
4744
|
+
) : toRegisterArray(addition);
|
|
4745
|
+
if (override || !existing) {
|
|
4746
|
+
return isFunctionAddition ? normalizedAddition : normalizedAddition;
|
|
4747
|
+
}
|
|
4748
|
+
if (typeof existing === "function") {
|
|
4749
|
+
if (isFunctionAddition) {
|
|
4750
|
+
const additionFn = normalizedAddition;
|
|
4751
|
+
return (config) => [...existing(config), ...additionFn(config)];
|
|
4752
|
+
}
|
|
4753
|
+
const additionArray = normalizedAddition;
|
|
4754
|
+
return (config) => [...existing(config), ...additionArray];
|
|
4755
|
+
}
|
|
4756
|
+
const existingArray = existing;
|
|
4757
|
+
if (isFunctionAddition) {
|
|
4758
|
+
const additionFn = normalizedAddition;
|
|
4759
|
+
return (config) => [...existingArray, ...additionFn(config)];
|
|
4760
|
+
}
|
|
4761
|
+
return [
|
|
4762
|
+
...existingArray,
|
|
4763
|
+
...normalizedAddition
|
|
4764
|
+
];
|
|
4765
|
+
}
|
|
4766
|
+
__name(mergeRegister, "mergeRegister");
|
|
4767
|
+
function mergeArray(existing, addition, override) {
|
|
4768
|
+
const toArray = [...addition];
|
|
4769
|
+
if (override || !existing) {
|
|
4770
|
+
return toArray;
|
|
4771
|
+
}
|
|
4772
|
+
return [...existing, ...toArray];
|
|
4773
|
+
}
|
|
4774
|
+
__name(mergeArray, "mergeArray");
|
|
4775
|
+
function mergeDependencies(existing, addition, override) {
|
|
4776
|
+
const isFnExisting = typeof existing === "function";
|
|
4777
|
+
const isFnAddition = typeof addition === "function";
|
|
4778
|
+
if (override || !existing) {
|
|
4779
|
+
return addition;
|
|
4780
|
+
}
|
|
4781
|
+
if (isFnExisting && isFnAddition) {
|
|
4782
|
+
const e2 = existing;
|
|
4783
|
+
const a2 = addition;
|
|
4784
|
+
return ((config) => ({
|
|
4785
|
+
...e2(config),
|
|
4786
|
+
...a2(config)
|
|
4787
|
+
}));
|
|
4788
|
+
}
|
|
4789
|
+
if (isFnExisting && !isFnAddition) {
|
|
4790
|
+
const e2 = existing;
|
|
4791
|
+
const a2 = addition;
|
|
4792
|
+
return ((config) => ({
|
|
4793
|
+
...e2(config),
|
|
4794
|
+
...a2
|
|
4795
|
+
}));
|
|
4796
|
+
}
|
|
4797
|
+
if (!isFnExisting && isFnAddition) {
|
|
4798
|
+
const e2 = existing;
|
|
4799
|
+
const a2 = addition;
|
|
4800
|
+
return ((config) => ({
|
|
4801
|
+
...e2,
|
|
4802
|
+
...a2(config)
|
|
4803
|
+
}));
|
|
4804
|
+
}
|
|
4805
|
+
const e = existing;
|
|
4806
|
+
const a = addition;
|
|
4807
|
+
return { ...e, ...a };
|
|
4808
|
+
}
|
|
4809
|
+
__name(mergeDependencies, "mergeDependencies");
|
|
4810
|
+
function makeResourceBuilder(state) {
|
|
4811
|
+
const builder = {
|
|
4812
|
+
id: state.id,
|
|
4813
|
+
dependencies(deps, options) {
|
|
4814
|
+
const override = options?.override ?? false;
|
|
4815
|
+
const next = clone(state, {
|
|
4816
|
+
dependencies: mergeDependencies(
|
|
4817
|
+
state.dependencies,
|
|
4818
|
+
deps,
|
|
4819
|
+
override
|
|
4820
|
+
)
|
|
4821
|
+
});
|
|
4822
|
+
if (override) {
|
|
4823
|
+
return makeResourceBuilder(next);
|
|
4824
|
+
}
|
|
4825
|
+
return makeResourceBuilder(next);
|
|
4826
|
+
},
|
|
4827
|
+
register(items, options) {
|
|
4828
|
+
const override = options?.override ?? false;
|
|
4829
|
+
const next = clone(state, {
|
|
4830
|
+
register: mergeRegister(state.register, items, override)
|
|
4831
|
+
});
|
|
4832
|
+
return makeResourceBuilder(next);
|
|
4833
|
+
},
|
|
4834
|
+
middleware(mw, options) {
|
|
4835
|
+
const override = options?.override ?? false;
|
|
4836
|
+
const next = clone(state, {
|
|
4837
|
+
middleware: mergeArray(state.middleware, mw, override)
|
|
4838
|
+
});
|
|
4839
|
+
return makeResourceBuilder(next);
|
|
4840
|
+
},
|
|
4841
|
+
tags(tags, options) {
|
|
4842
|
+
const override = options?.override ?? false;
|
|
4843
|
+
const next = clone(state, { tags: mergeArray(state.tags, tags, override) });
|
|
4844
|
+
return makeResourceBuilder(next);
|
|
4845
|
+
},
|
|
4846
|
+
context(factory) {
|
|
4847
|
+
const next = clone(state, { context: factory });
|
|
4848
|
+
return makeResourceBuilder(next);
|
|
4849
|
+
},
|
|
4850
|
+
configSchema(schema) {
|
|
4851
|
+
const next = clone(state, { configSchema: schema });
|
|
4852
|
+
return makeResourceBuilder(next);
|
|
4853
|
+
},
|
|
4854
|
+
resultSchema(schema) {
|
|
4855
|
+
const next = clone(state, { resultSchema: schema });
|
|
4856
|
+
return makeResourceBuilder(next);
|
|
4857
|
+
},
|
|
4858
|
+
init(fn) {
|
|
4859
|
+
const next = clone(state, { init: fn });
|
|
4860
|
+
return makeResourceBuilder(next);
|
|
4861
|
+
},
|
|
4862
|
+
dispose(fn) {
|
|
4863
|
+
const next = clone(state, { dispose: fn });
|
|
4864
|
+
return makeResourceBuilder(next);
|
|
4865
|
+
},
|
|
4866
|
+
meta(m) {
|
|
4867
|
+
const next = clone(state, { meta: m });
|
|
4868
|
+
return makeResourceBuilder(next);
|
|
4869
|
+
},
|
|
4870
|
+
overrides(o, options) {
|
|
4871
|
+
const override = options?.override ?? false;
|
|
4872
|
+
const next = clone(state, {
|
|
4873
|
+
overrides: mergeArray(state.overrides, o, override)
|
|
4874
|
+
});
|
|
4875
|
+
return makeResourceBuilder(next);
|
|
4876
|
+
},
|
|
4877
|
+
build() {
|
|
4878
|
+
const definition = {
|
|
4879
|
+
id: state.id,
|
|
4880
|
+
dependencies: state.dependencies,
|
|
4881
|
+
register: state.register,
|
|
4882
|
+
middleware: state.middleware,
|
|
4883
|
+
tags: state.tags,
|
|
4884
|
+
context: state.context,
|
|
4885
|
+
init: state.init,
|
|
4886
|
+
dispose: state.dispose,
|
|
4887
|
+
configSchema: state.configSchema,
|
|
4888
|
+
resultSchema: state.resultSchema,
|
|
4889
|
+
meta: state.meta,
|
|
4890
|
+
overrides: state.overrides
|
|
4891
|
+
};
|
|
4892
|
+
return defineResource(definition);
|
|
4893
|
+
}
|
|
4894
|
+
};
|
|
4895
|
+
return builder;
|
|
4896
|
+
}
|
|
4897
|
+
__name(makeResourceBuilder, "makeResourceBuilder");
|
|
4898
|
+
function resourceBuilder(id2) {
|
|
4899
|
+
const initial = Object.freeze({
|
|
4900
|
+
id: id2,
|
|
4901
|
+
dependencies: void 0,
|
|
4902
|
+
register: void 0,
|
|
4903
|
+
middleware: [],
|
|
4904
|
+
tags: [],
|
|
4905
|
+
context: void 0,
|
|
4906
|
+
init: void 0,
|
|
4907
|
+
dispose: void 0,
|
|
4908
|
+
configSchema: void 0,
|
|
4909
|
+
resultSchema: void 0,
|
|
4910
|
+
meta: void 0,
|
|
4911
|
+
overrides: void 0
|
|
4912
|
+
});
|
|
4913
|
+
return makeResourceBuilder(initial);
|
|
4914
|
+
}
|
|
4915
|
+
__name(resourceBuilder, "resourceBuilder");
|
|
4916
|
+
var resource = resourceBuilder;
|
|
4917
|
+
|
|
4918
|
+
// src/definers/builders/utils.ts
|
|
4919
|
+
function cloneState(s, patch) {
|
|
4920
|
+
return Object.freeze({ ...s, ...patch });
|
|
4921
|
+
}
|
|
4922
|
+
__name(cloneState, "cloneState");
|
|
4923
|
+
function mergeArray2(existing, addition, override) {
|
|
4924
|
+
const toArray = [...addition];
|
|
4925
|
+
if (override || !existing) {
|
|
4926
|
+
return toArray;
|
|
4927
|
+
}
|
|
4928
|
+
return [...existing, ...toArray];
|
|
4929
|
+
}
|
|
4930
|
+
__name(mergeArray2, "mergeArray");
|
|
4931
|
+
function mergeDepsNoConfig(existing, addition, override) {
|
|
4932
|
+
const isFnExisting = typeof existing === "function";
|
|
4933
|
+
const isFnAddition = typeof addition === "function";
|
|
4934
|
+
if (override || !existing) {
|
|
4935
|
+
return addition;
|
|
4936
|
+
}
|
|
4937
|
+
if (isFnExisting && isFnAddition) {
|
|
4938
|
+
const e2 = existing;
|
|
4939
|
+
const a2 = addition;
|
|
4940
|
+
return (() => ({ ...e2(), ...a2() }));
|
|
4941
|
+
}
|
|
4942
|
+
if (isFnExisting && !isFnAddition) {
|
|
4943
|
+
const e2 = existing;
|
|
4944
|
+
const a2 = addition;
|
|
4945
|
+
return (() => ({ ...e2(), ...a2 }));
|
|
4946
|
+
}
|
|
4947
|
+
if (!isFnExisting && isFnAddition) {
|
|
4948
|
+
const e2 = existing;
|
|
4949
|
+
const a2 = addition;
|
|
4950
|
+
return (() => ({ ...e2, ...a2() }));
|
|
4951
|
+
}
|
|
4952
|
+
const e = existing;
|
|
4953
|
+
const a = addition;
|
|
4954
|
+
return { ...e, ...a };
|
|
4955
|
+
}
|
|
4956
|
+
__name(mergeDepsNoConfig, "mergeDepsNoConfig");
|
|
4957
|
+
|
|
4958
|
+
// src/definers/builders/task.phantom.ts
|
|
4959
|
+
function clone2(s, patch) {
|
|
4960
|
+
return cloneState(s, patch);
|
|
4961
|
+
}
|
|
4962
|
+
__name(clone2, "clone");
|
|
4963
|
+
function makePhantomTaskBuilder(state) {
|
|
4964
|
+
const builder = {
|
|
4965
|
+
id: state.id,
|
|
4966
|
+
dependencies(deps, options) {
|
|
4967
|
+
const override = options?.override ?? false;
|
|
4968
|
+
const next = clone2(state, {
|
|
4969
|
+
dependencies: mergeDepsNoConfig(
|
|
4970
|
+
state.dependencies,
|
|
4971
|
+
deps,
|
|
4972
|
+
override
|
|
4973
|
+
)
|
|
4974
|
+
});
|
|
4975
|
+
if (override) {
|
|
4976
|
+
return makePhantomTaskBuilder(next);
|
|
4977
|
+
}
|
|
4978
|
+
return makePhantomTaskBuilder(next);
|
|
4979
|
+
},
|
|
4980
|
+
middleware(mw, options) {
|
|
4981
|
+
const override = options?.override ?? false;
|
|
4982
|
+
const next = clone2(state, {
|
|
4983
|
+
middleware: mergeArray2(state.middleware, mw, override)
|
|
4984
|
+
});
|
|
4985
|
+
return makePhantomTaskBuilder(next);
|
|
4986
|
+
},
|
|
4987
|
+
tags(t, options) {
|
|
4988
|
+
const override = options?.override ?? false;
|
|
4989
|
+
const next = clone2(state, { tags: mergeArray2(state.tags, t, override) });
|
|
4990
|
+
return makePhantomTaskBuilder(next);
|
|
4991
|
+
},
|
|
4992
|
+
inputSchema(schema) {
|
|
4993
|
+
const next = clone2(state, { inputSchema: schema });
|
|
4994
|
+
return makePhantomTaskBuilder(next);
|
|
4995
|
+
},
|
|
4996
|
+
resultSchema(schema) {
|
|
4997
|
+
const next = clone2(state, { resultSchema: schema });
|
|
4998
|
+
return makePhantomTaskBuilder(next);
|
|
4999
|
+
},
|
|
5000
|
+
meta(m) {
|
|
5001
|
+
const next = clone2(state, { meta: m });
|
|
5002
|
+
return makePhantomTaskBuilder(next);
|
|
5003
|
+
},
|
|
5004
|
+
build() {
|
|
5005
|
+
const built = defineTask.phantom({
|
|
5006
|
+
id: state.id,
|
|
5007
|
+
dependencies: state.dependencies,
|
|
5008
|
+
middleware: state.middleware,
|
|
5009
|
+
inputSchema: state.inputSchema,
|
|
5010
|
+
resultSchema: state.resultSchema,
|
|
5011
|
+
meta: state.meta,
|
|
5012
|
+
tags: state.tags
|
|
5013
|
+
});
|
|
5014
|
+
return built;
|
|
5015
|
+
}
|
|
5016
|
+
};
|
|
5017
|
+
return builder;
|
|
5018
|
+
}
|
|
5019
|
+
__name(makePhantomTaskBuilder, "makePhantomTaskBuilder");
|
|
5020
|
+
function phantomTaskBuilder(id2) {
|
|
5021
|
+
const initial = Object.freeze({
|
|
5022
|
+
id: id2,
|
|
5023
|
+
dependencies: {},
|
|
5024
|
+
middleware: [],
|
|
5025
|
+
meta: {},
|
|
5026
|
+
inputSchema: void 0,
|
|
5027
|
+
resultSchema: void 0,
|
|
5028
|
+
tags: []
|
|
5029
|
+
});
|
|
5030
|
+
return makePhantomTaskBuilder(initial);
|
|
5031
|
+
}
|
|
5032
|
+
__name(phantomTaskBuilder, "phantomTaskBuilder");
|
|
5033
|
+
|
|
5034
|
+
// src/definers/builders/task.ts
|
|
5035
|
+
function clone3(s, patch) {
|
|
5036
|
+
return cloneState(s, patch);
|
|
5037
|
+
}
|
|
5038
|
+
__name(clone3, "clone");
|
|
5039
|
+
function makeTaskBuilder(state) {
|
|
5040
|
+
const builder = {
|
|
5041
|
+
id: state.id,
|
|
5042
|
+
dependencies(deps, options) {
|
|
5043
|
+
const override = options?.override ?? false;
|
|
5044
|
+
const next = clone3(state, {
|
|
5045
|
+
dependencies: mergeDepsNoConfig(
|
|
5046
|
+
state.dependencies,
|
|
5047
|
+
deps,
|
|
5048
|
+
override
|
|
5049
|
+
)
|
|
5050
|
+
});
|
|
5051
|
+
if (override) {
|
|
5052
|
+
return makeTaskBuilder(next);
|
|
5053
|
+
}
|
|
5054
|
+
return makeTaskBuilder(next);
|
|
5055
|
+
},
|
|
5056
|
+
middleware(mw, options) {
|
|
5057
|
+
const override = options?.override ?? false;
|
|
5058
|
+
const next = clone3(state, {
|
|
5059
|
+
middleware: mergeArray2(state.middleware, mw, override)
|
|
5060
|
+
});
|
|
5061
|
+
return makeTaskBuilder(next);
|
|
5062
|
+
},
|
|
5063
|
+
tags(t, options) {
|
|
5064
|
+
const override = options?.override ?? false;
|
|
5065
|
+
const next = clone3(state, { tags: mergeArray2(state.tags, t, override) });
|
|
5066
|
+
return makeTaskBuilder(next);
|
|
5067
|
+
},
|
|
5068
|
+
inputSchema(schema) {
|
|
5069
|
+
const next = clone3(state, { inputSchema: schema });
|
|
5070
|
+
return makeTaskBuilder(next);
|
|
5071
|
+
},
|
|
5072
|
+
resultSchema(schema) {
|
|
5073
|
+
const next = clone3(state, { resultSchema: schema });
|
|
5074
|
+
return makeTaskBuilder(next);
|
|
5075
|
+
},
|
|
5076
|
+
run(fn) {
|
|
5077
|
+
const wrapped = /* @__PURE__ */ __name((input, deps) => fn(
|
|
5078
|
+
input,
|
|
5079
|
+
deps
|
|
5080
|
+
), "wrapped");
|
|
5081
|
+
const next = clone3(state, { run: wrapped });
|
|
5082
|
+
return makeTaskBuilder(next);
|
|
5083
|
+
},
|
|
5084
|
+
meta(m) {
|
|
5085
|
+
const next = clone3(state, { meta: m });
|
|
5086
|
+
return makeTaskBuilder(next);
|
|
5087
|
+
},
|
|
5088
|
+
build() {
|
|
5089
|
+
return defineTask({
|
|
5090
|
+
...state
|
|
5091
|
+
});
|
|
5092
|
+
}
|
|
5093
|
+
};
|
|
5094
|
+
return builder;
|
|
5095
|
+
}
|
|
5096
|
+
__name(makeTaskBuilder, "makeTaskBuilder");
|
|
5097
|
+
function taskBuilder(id2) {
|
|
5098
|
+
const initial = Object.freeze({
|
|
5099
|
+
id: id2,
|
|
5100
|
+
dependencies: {},
|
|
5101
|
+
middleware: [],
|
|
5102
|
+
meta: {},
|
|
5103
|
+
inputSchema: void 0,
|
|
5104
|
+
resultSchema: void 0,
|
|
5105
|
+
run: void 0,
|
|
5106
|
+
tags: []
|
|
5107
|
+
});
|
|
5108
|
+
return makeTaskBuilder(initial);
|
|
5109
|
+
}
|
|
5110
|
+
__name(taskBuilder, "taskBuilder");
|
|
5111
|
+
var task = Object.assign(taskBuilder, {
|
|
5112
|
+
phantom: phantomTaskBuilder
|
|
5113
|
+
});
|
|
5114
|
+
|
|
5115
|
+
// src/definers/builders/event.ts
|
|
5116
|
+
function clone4(s, patch) {
|
|
5117
|
+
return Object.freeze({ ...s, ...patch });
|
|
5118
|
+
}
|
|
5119
|
+
__name(clone4, "clone");
|
|
5120
|
+
function makeEventBuilder(state) {
|
|
5121
|
+
const b = {
|
|
5122
|
+
id: state.id,
|
|
5123
|
+
payloadSchema(schema) {
|
|
5124
|
+
const next = clone4(state, { payloadSchema: schema });
|
|
5125
|
+
return makeEventBuilder(next);
|
|
5126
|
+
},
|
|
5127
|
+
tags(t, options) {
|
|
5128
|
+
const override = options?.override ?? false;
|
|
5129
|
+
const tags = mergeArray2(state.tags, t, override);
|
|
5130
|
+
const next = clone4(state, { tags });
|
|
5131
|
+
return makeEventBuilder(next);
|
|
5132
|
+
},
|
|
5133
|
+
meta(m) {
|
|
5134
|
+
const next = clone4(state, { meta: m });
|
|
5135
|
+
return makeEventBuilder(next);
|
|
5136
|
+
},
|
|
5137
|
+
build() {
|
|
5138
|
+
return defineEvent({
|
|
5139
|
+
...state
|
|
5140
|
+
});
|
|
5141
|
+
}
|
|
5142
|
+
};
|
|
5143
|
+
return b;
|
|
5144
|
+
}
|
|
5145
|
+
__name(makeEventBuilder, "makeEventBuilder");
|
|
5146
|
+
function eventBuilder(id2) {
|
|
5147
|
+
const initial = Object.freeze({
|
|
5148
|
+
id: id2,
|
|
5149
|
+
meta: {},
|
|
5150
|
+
payloadSchema: void 0,
|
|
5151
|
+
tags: []
|
|
5152
|
+
});
|
|
5153
|
+
return makeEventBuilder(initial);
|
|
5154
|
+
}
|
|
5155
|
+
__name(eventBuilder, "eventBuilder");
|
|
5156
|
+
var event = eventBuilder;
|
|
5157
|
+
|
|
5158
|
+
// src/definers/builders/hook.ts
|
|
5159
|
+
function clone5(s, patch) {
|
|
5160
|
+
return Object.freeze({ ...s, ...patch });
|
|
5161
|
+
}
|
|
5162
|
+
__name(clone5, "clone");
|
|
5163
|
+
function makeHookBuilder(state) {
|
|
5164
|
+
const b = {
|
|
5165
|
+
id: state.id,
|
|
5166
|
+
on(on) {
|
|
5167
|
+
const next = clone5(state, { on });
|
|
5168
|
+
return makeHookBuilder(
|
|
5169
|
+
next
|
|
5170
|
+
);
|
|
5171
|
+
},
|
|
5172
|
+
order(order) {
|
|
5173
|
+
const next = clone5(state, { order });
|
|
5174
|
+
return makeHookBuilder(next);
|
|
5175
|
+
},
|
|
5176
|
+
dependencies(deps, options) {
|
|
5177
|
+
const override = options?.override ?? false;
|
|
5178
|
+
const isFnExisting = typeof state.dependencies === "function";
|
|
5179
|
+
const isFnAddition = typeof deps === "function";
|
|
5180
|
+
let merged;
|
|
5181
|
+
if (override || !state.dependencies) {
|
|
5182
|
+
merged = deps;
|
|
5183
|
+
} else if (isFnExisting && isFnAddition) {
|
|
5184
|
+
const e = state.dependencies;
|
|
5185
|
+
const a = deps;
|
|
5186
|
+
merged = /* @__PURE__ */ __name((() => ({ ...e(), ...a() })), "merged");
|
|
5187
|
+
} else if (isFnExisting && !isFnAddition) {
|
|
5188
|
+
const e = state.dependencies;
|
|
5189
|
+
const a = deps;
|
|
5190
|
+
merged = /* @__PURE__ */ __name((() => ({ ...e(), ...a })), "merged");
|
|
5191
|
+
} else if (!isFnExisting && isFnAddition) {
|
|
5192
|
+
const e = state.dependencies;
|
|
5193
|
+
const a = deps;
|
|
5194
|
+
merged = /* @__PURE__ */ __name((() => ({ ...e, ...a() })), "merged");
|
|
5195
|
+
} else {
|
|
5196
|
+
const e = state.dependencies;
|
|
5197
|
+
const a = deps;
|
|
5198
|
+
merged = { ...e, ...a };
|
|
5199
|
+
}
|
|
5200
|
+
const next = clone5(state, { dependencies: merged });
|
|
5201
|
+
if (override) {
|
|
5202
|
+
return makeHookBuilder(
|
|
5203
|
+
next
|
|
5204
|
+
);
|
|
5205
|
+
}
|
|
5206
|
+
return makeHookBuilder(
|
|
5207
|
+
next
|
|
5208
|
+
);
|
|
5209
|
+
},
|
|
5210
|
+
tags(t, options) {
|
|
5211
|
+
const override = options?.override ?? false;
|
|
5212
|
+
const tags = mergeArray2(state.tags, t, override);
|
|
5213
|
+
const next = clone5(state, { tags });
|
|
5214
|
+
return makeHookBuilder(next);
|
|
5215
|
+
},
|
|
5216
|
+
meta(m) {
|
|
5217
|
+
const next = clone5(state, { meta: m });
|
|
5218
|
+
return makeHookBuilder(
|
|
5219
|
+
next
|
|
5220
|
+
);
|
|
5221
|
+
},
|
|
5222
|
+
run(fn) {
|
|
5223
|
+
const next = clone5(state, { run: fn });
|
|
5224
|
+
return makeHookBuilder(next);
|
|
5225
|
+
},
|
|
5226
|
+
build() {
|
|
5227
|
+
return defineHook({
|
|
5228
|
+
...state
|
|
5229
|
+
});
|
|
5230
|
+
}
|
|
5231
|
+
};
|
|
5232
|
+
return b;
|
|
5233
|
+
}
|
|
5234
|
+
__name(makeHookBuilder, "makeHookBuilder");
|
|
5235
|
+
function hookBuilder(id2) {
|
|
5236
|
+
const initial = Object.freeze({
|
|
5237
|
+
id: id2,
|
|
5238
|
+
dependencies: {},
|
|
5239
|
+
on: "*",
|
|
5240
|
+
order: void 0,
|
|
5241
|
+
meta: {},
|
|
5242
|
+
run: void 0,
|
|
5243
|
+
tags: []
|
|
5244
|
+
});
|
|
5245
|
+
return makeHookBuilder(initial);
|
|
5246
|
+
}
|
|
5247
|
+
__name(hookBuilder, "hookBuilder");
|
|
5248
|
+
var hook = hookBuilder;
|
|
5249
|
+
|
|
5250
|
+
// src/definers/builders/middleware.ts
|
|
5251
|
+
function cloneTask(s, patch) {
|
|
5252
|
+
return Object.freeze({ ...s, ...patch });
|
|
5253
|
+
}
|
|
5254
|
+
__name(cloneTask, "cloneTask");
|
|
5255
|
+
function makeTaskMiddlewareBuilder(state) {
|
|
5256
|
+
const b = {
|
|
5257
|
+
id: state.id,
|
|
5258
|
+
dependencies(deps, options) {
|
|
5259
|
+
const override = options?.override ?? false;
|
|
5260
|
+
const isFnExisting = typeof state.dependencies === "function";
|
|
5261
|
+
const isFnAddition = typeof deps === "function";
|
|
5262
|
+
let merged;
|
|
5263
|
+
if (override || !state.dependencies) {
|
|
5264
|
+
merged = deps;
|
|
5265
|
+
} else if (isFnExisting && isFnAddition) {
|
|
5266
|
+
const e = state.dependencies;
|
|
5267
|
+
const a = deps;
|
|
5268
|
+
merged = /* @__PURE__ */ __name(((cfg) => ({ ...e(cfg), ...a(cfg) })), "merged");
|
|
5269
|
+
} else if (isFnExisting && !isFnAddition) {
|
|
5270
|
+
const e = state.dependencies;
|
|
5271
|
+
const a = deps;
|
|
5272
|
+
merged = /* @__PURE__ */ __name(((cfg) => ({ ...e(cfg), ...a })), "merged");
|
|
5273
|
+
} else if (!isFnExisting && isFnAddition) {
|
|
5274
|
+
const e = state.dependencies;
|
|
5275
|
+
const a = deps;
|
|
5276
|
+
merged = /* @__PURE__ */ __name(((cfg) => ({ ...e, ...a(cfg) })), "merged");
|
|
5277
|
+
} else {
|
|
5278
|
+
const e = state.dependencies;
|
|
5279
|
+
const a = deps;
|
|
5280
|
+
merged = { ...e, ...a };
|
|
5281
|
+
}
|
|
5282
|
+
const next = cloneTask(state, { dependencies: merged });
|
|
5283
|
+
if (override) {
|
|
5284
|
+
return makeTaskMiddlewareBuilder(
|
|
5285
|
+
next
|
|
5286
|
+
);
|
|
5287
|
+
}
|
|
5288
|
+
return makeTaskMiddlewareBuilder(
|
|
5289
|
+
next
|
|
5290
|
+
);
|
|
5291
|
+
},
|
|
5292
|
+
configSchema(schema) {
|
|
5293
|
+
const next = cloneTask(state, { configSchema: schema });
|
|
5294
|
+
return makeTaskMiddlewareBuilder(
|
|
5295
|
+
next
|
|
5296
|
+
);
|
|
5297
|
+
},
|
|
5298
|
+
run(fn) {
|
|
5299
|
+
const next = cloneTask(state, { run: fn });
|
|
5300
|
+
return makeTaskMiddlewareBuilder(next);
|
|
5301
|
+
},
|
|
5302
|
+
meta(m) {
|
|
5303
|
+
const next = cloneTask(state, { meta: m });
|
|
5304
|
+
return makeTaskMiddlewareBuilder(next);
|
|
5305
|
+
},
|
|
5306
|
+
tags(t, options) {
|
|
5307
|
+
const override = options?.override ?? false;
|
|
5308
|
+
const tags = mergeArray2(state.tags, t, override);
|
|
5309
|
+
const next = cloneTask(state, { tags });
|
|
5310
|
+
return makeTaskMiddlewareBuilder(next);
|
|
5311
|
+
},
|
|
5312
|
+
everywhere(flag) {
|
|
5313
|
+
const next = cloneTask(state, { everywhere: flag });
|
|
5314
|
+
return makeTaskMiddlewareBuilder(next);
|
|
5315
|
+
},
|
|
5316
|
+
build() {
|
|
5317
|
+
return defineTaskMiddleware({
|
|
5318
|
+
...state
|
|
5319
|
+
});
|
|
5320
|
+
}
|
|
5321
|
+
};
|
|
5322
|
+
return b;
|
|
5323
|
+
}
|
|
5324
|
+
__name(makeTaskMiddlewareBuilder, "makeTaskMiddlewareBuilder");
|
|
5325
|
+
function taskMiddlewareBuilder(id2) {
|
|
5326
|
+
const initial = Object.freeze({
|
|
5327
|
+
id: id2,
|
|
5328
|
+
dependencies: {},
|
|
5329
|
+
configSchema: void 0,
|
|
5330
|
+
run: void 0,
|
|
5331
|
+
meta: {},
|
|
5332
|
+
tags: [],
|
|
5333
|
+
everywhere: void 0
|
|
5334
|
+
});
|
|
5335
|
+
return makeTaskMiddlewareBuilder(initial);
|
|
5336
|
+
}
|
|
5337
|
+
__name(taskMiddlewareBuilder, "taskMiddlewareBuilder");
|
|
5338
|
+
function cloneRes(s, patch) {
|
|
5339
|
+
return Object.freeze({ ...s, ...patch });
|
|
5340
|
+
}
|
|
5341
|
+
__name(cloneRes, "cloneRes");
|
|
5342
|
+
function makeResourceMiddlewareBuilder(state) {
|
|
5343
|
+
const b = {
|
|
5344
|
+
id: state.id,
|
|
5345
|
+
dependencies(deps, options) {
|
|
5346
|
+
const override = options?.override ?? false;
|
|
5347
|
+
const isFnExisting = typeof state.dependencies === "function";
|
|
5348
|
+
const isFnAddition = typeof deps === "function";
|
|
5349
|
+
let merged;
|
|
5350
|
+
if (override || !state.dependencies) {
|
|
5351
|
+
merged = deps;
|
|
5352
|
+
} else if (isFnExisting && isFnAddition) {
|
|
5353
|
+
const e = state.dependencies;
|
|
5354
|
+
const a = deps;
|
|
5355
|
+
merged = /* @__PURE__ */ __name(((cfg) => ({ ...e(cfg), ...a(cfg) })), "merged");
|
|
5356
|
+
} else if (isFnExisting && !isFnAddition) {
|
|
5357
|
+
const e = state.dependencies;
|
|
5358
|
+
const a = deps;
|
|
5359
|
+
merged = /* @__PURE__ */ __name(((cfg) => ({ ...e(cfg), ...a })), "merged");
|
|
5360
|
+
} else if (!isFnExisting && isFnAddition) {
|
|
5361
|
+
const e = state.dependencies;
|
|
5362
|
+
const a = deps;
|
|
5363
|
+
merged = /* @__PURE__ */ __name(((cfg) => ({ ...e, ...a(cfg) })), "merged");
|
|
5364
|
+
} else {
|
|
5365
|
+
const e = state.dependencies;
|
|
5366
|
+
const a = deps;
|
|
5367
|
+
merged = { ...e, ...a };
|
|
5368
|
+
}
|
|
5369
|
+
const next = cloneRes(state, { dependencies: merged });
|
|
5370
|
+
if (override) {
|
|
5371
|
+
return makeResourceMiddlewareBuilder(
|
|
5372
|
+
next
|
|
5373
|
+
);
|
|
5374
|
+
}
|
|
5375
|
+
return makeResourceMiddlewareBuilder(
|
|
5376
|
+
next
|
|
5377
|
+
);
|
|
5378
|
+
},
|
|
5379
|
+
configSchema(schema) {
|
|
5380
|
+
const next = cloneRes(state, { configSchema: schema });
|
|
5381
|
+
return makeResourceMiddlewareBuilder(
|
|
5382
|
+
next
|
|
5383
|
+
);
|
|
5384
|
+
},
|
|
5385
|
+
run(fn) {
|
|
5386
|
+
const next = cloneRes(state, { run: fn });
|
|
5387
|
+
return makeResourceMiddlewareBuilder(next);
|
|
5388
|
+
},
|
|
5389
|
+
meta(m) {
|
|
5390
|
+
const next = cloneRes(state, { meta: m });
|
|
5391
|
+
return makeResourceMiddlewareBuilder(next);
|
|
5392
|
+
},
|
|
5393
|
+
tags(t, options) {
|
|
5394
|
+
const override = options?.override ?? false;
|
|
5395
|
+
const tags = mergeArray2(state.tags, t, override);
|
|
5396
|
+
const next = cloneRes(state, { tags });
|
|
5397
|
+
return makeResourceMiddlewareBuilder(next);
|
|
5398
|
+
},
|
|
5399
|
+
everywhere(flag) {
|
|
5400
|
+
const next = cloneRes(state, { everywhere: flag });
|
|
5401
|
+
return makeResourceMiddlewareBuilder(next);
|
|
5402
|
+
},
|
|
5403
|
+
build() {
|
|
5404
|
+
return defineResourceMiddleware({
|
|
5405
|
+
...state
|
|
5406
|
+
});
|
|
5407
|
+
}
|
|
5408
|
+
};
|
|
5409
|
+
return b;
|
|
5410
|
+
}
|
|
5411
|
+
__name(makeResourceMiddlewareBuilder, "makeResourceMiddlewareBuilder");
|
|
5412
|
+
function resourceMiddlewareBuilder(id2) {
|
|
5413
|
+
const initial = Object.freeze({
|
|
5414
|
+
id: id2,
|
|
5415
|
+
dependencies: {},
|
|
5416
|
+
configSchema: void 0,
|
|
5417
|
+
run: void 0,
|
|
5418
|
+
meta: {},
|
|
5419
|
+
tags: [],
|
|
5420
|
+
everywhere: void 0
|
|
5421
|
+
});
|
|
5422
|
+
return makeResourceMiddlewareBuilder(initial);
|
|
5423
|
+
}
|
|
5424
|
+
__name(resourceMiddlewareBuilder, "resourceMiddlewareBuilder");
|
|
5425
|
+
var taskMiddleware = taskMiddlewareBuilder;
|
|
5426
|
+
var resourceMiddleware = resourceMiddlewareBuilder;
|
|
5427
|
+
|
|
5428
|
+
// src/definers/builders/tag.ts
|
|
5429
|
+
function clone6(s, patch) {
|
|
5430
|
+
return Object.freeze({ ...s, ...patch });
|
|
5431
|
+
}
|
|
5432
|
+
__name(clone6, "clone");
|
|
5433
|
+
function makeTagBuilder(state) {
|
|
5434
|
+
const b = {
|
|
5435
|
+
id: state.id,
|
|
5436
|
+
meta(m) {
|
|
5437
|
+
const next = clone6(state, { meta: m });
|
|
5438
|
+
return makeTagBuilder(next);
|
|
5439
|
+
},
|
|
5440
|
+
configSchema(schema) {
|
|
5441
|
+
const next = clone6(state, { configSchema: schema });
|
|
5442
|
+
return makeTagBuilder(
|
|
5443
|
+
next
|
|
5444
|
+
);
|
|
5445
|
+
},
|
|
5446
|
+
config(config) {
|
|
5447
|
+
const next = clone6(state, { config });
|
|
5448
|
+
return makeTagBuilder(
|
|
5449
|
+
next
|
|
5450
|
+
);
|
|
5451
|
+
},
|
|
5452
|
+
build() {
|
|
5453
|
+
return defineTag({
|
|
5454
|
+
id: state.id,
|
|
5455
|
+
meta: state.meta,
|
|
5456
|
+
configSchema: state.configSchema,
|
|
5457
|
+
config: state.config
|
|
5458
|
+
});
|
|
5459
|
+
}
|
|
5460
|
+
};
|
|
5461
|
+
return b;
|
|
5462
|
+
}
|
|
5463
|
+
__name(makeTagBuilder, "makeTagBuilder");
|
|
5464
|
+
function tagBuilder(id2) {
|
|
5465
|
+
const initial = Object.freeze(
|
|
5466
|
+
{
|
|
5467
|
+
id: id2,
|
|
5468
|
+
meta: {},
|
|
5469
|
+
configSchema: void 0,
|
|
5470
|
+
config: void 0
|
|
5471
|
+
}
|
|
5472
|
+
);
|
|
5473
|
+
return makeTagBuilder(initial);
|
|
5474
|
+
}
|
|
5475
|
+
__name(tagBuilder, "tagBuilder");
|
|
5476
|
+
var tag = tagBuilder;
|
|
5477
|
+
|
|
4307
5478
|
// src/models/Semaphore.ts
|
|
4308
5479
|
var Semaphore = class {
|
|
4309
5480
|
constructor(maxPermits) {
|
|
@@ -4452,15 +5623,25 @@ var Semaphore = class {
|
|
|
4452
5623
|
};
|
|
4453
5624
|
}
|
|
4454
5625
|
};
|
|
4455
|
-
|
|
4456
|
-
// src/index.ts
|
|
4457
5626
|
var globals = {
|
|
4458
5627
|
events: globalEvents,
|
|
4459
5628
|
resources: globalResources,
|
|
4460
5629
|
middleware: globalMiddlewares,
|
|
4461
|
-
tags: globalTags
|
|
5630
|
+
tags: globalTags,
|
|
5631
|
+
tunnels
|
|
4462
5632
|
};
|
|
5633
|
+
var r = Object.freeze({
|
|
5634
|
+
resource,
|
|
5635
|
+
task,
|
|
5636
|
+
event,
|
|
5637
|
+
hook,
|
|
5638
|
+
tag,
|
|
5639
|
+
middleware: Object.freeze({
|
|
5640
|
+
task: taskMiddleware,
|
|
5641
|
+
resource: resourceMiddleware
|
|
5642
|
+
})
|
|
5643
|
+
});
|
|
4463
5644
|
|
|
4464
|
-
export { DependencyProcessor, errors_exports as Errors, EventManager, Logger, MiddlewareManager, Queue, ResourceInitializer, RunResult, Semaphore, Store, TaskRunner, allFalse, bindProcessErrorHandler, createContext, createDefaultUnhandledError, createTestResource, defs_exports as definitions, defineEvent as event, getConfig, globals, defineHook as hook, levelNormal, levelVerbose, defineOverride as override, defineResource as resource, defineResourceMiddleware as resourceMiddleware, run, safeReportUnhandledError, defineTag as tag, defineTask as task, defineTaskMiddleware as taskMiddleware };
|
|
5645
|
+
export { DependencyProcessor, errors_exports as Errors, EventManager, Logger, MiddlewareManager, PlatformAdapter, Queue, ResourceInitializer, RunResult, Semaphore, Store, TaskRunner, allFalse, bindProcessErrorHandler, createContext, createDefaultUnhandledError, createTestResource, defs_exports as definitions, defineEvent as event, getConfig, globals, defineHook as hook, levelNormal, levelVerbose, defineOverride as override, r, defineResource as resource, defineResourceMiddleware as resourceMiddleware, run, safeReportUnhandledError, setPlatform, defineTag as tag, defineTask as task, defineTaskMiddleware as taskMiddleware };
|
|
4465
5646
|
//# sourceMappingURL=index.mjs.map
|
|
4466
5647
|
//# sourceMappingURL=index.mjs.map
|