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