@bluelibs/runner 5.1.0 → 5.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -15
- package/dist/browser/index.cjs +851 -478
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.mjs +849 -478
- package/dist/browser/index.mjs.map +1 -1
- package/dist/edge/index.cjs +851 -478
- package/dist/edge/index.cjs.map +1 -1
- package/dist/edge/index.mjs +849 -478
- package/dist/edge/index.mjs.map +1 -1
- package/dist/node/node.cjs +1305 -583
- package/dist/node/node.cjs.map +1 -1
- package/dist/node/node.mjs +1299 -583
- package/dist/node/node.mjs.map +1 -1
- package/dist/types/define.d.ts +9 -0
- package/dist/types/definers/builders/asyncContext/fluent-builder.d.ts +6 -0
- package/dist/types/definers/builders/asyncContext/fluent-builder.interface.d.ts +9 -0
- package/dist/types/definers/builders/asyncContext/index.d.ts +10 -0
- package/dist/types/definers/builders/asyncContext/types.d.ts +13 -0
- package/dist/types/definers/builders/asyncContext/utils.d.ts +5 -0
- package/dist/types/definers/builders/asyncContext.d.ts +1 -0
- package/dist/types/definers/builders/core.d.ts +30 -0
- package/dist/types/definers/builders/error/fluent-builder.d.ts +7 -0
- package/dist/types/definers/builders/error/fluent-builder.interface.d.ts +10 -0
- package/dist/types/definers/builders/error/index.d.ts +11 -0
- package/dist/types/definers/builders/error/types.d.ts +14 -0
- package/dist/types/definers/builders/error/utils.d.ts +6 -0
- package/dist/types/definers/builders/error.d.ts +1 -0
- package/dist/types/definers/builders/event/fluent-builder.d.ts +7 -0
- package/dist/types/definers/builders/event/fluent-builder.interface.d.ts +18 -0
- package/dist/types/definers/builders/event/index.d.ts +10 -0
- package/dist/types/definers/builders/event/types.d.ts +8 -0
- package/dist/types/definers/builders/event/utils.d.ts +9 -0
- package/dist/types/definers/builders/event.d.ts +1 -0
- package/dist/types/definers/builders/hook/fluent-builder.d.ts +8 -0
- package/dist/types/definers/builders/hook/fluent-builder.interface.d.ts +27 -0
- package/dist/types/definers/builders/hook/index.d.ts +12 -0
- package/dist/types/definers/builders/hook/types.d.ts +14 -0
- package/dist/types/definers/builders/hook/utils.d.ts +14 -0
- package/dist/types/definers/builders/hook.d.ts +1 -0
- package/dist/types/definers/builders/middleware/index.d.ts +19 -0
- package/dist/types/definers/builders/middleware/resource.d.ts +7 -0
- package/dist/types/definers/builders/middleware/resource.interface.d.ts +18 -0
- package/dist/types/definers/builders/middleware/task.d.ts +7 -0
- package/dist/types/definers/builders/middleware/task.interface.d.ts +18 -0
- package/dist/types/definers/builders/middleware/types.d.ts +13 -0
- package/dist/types/definers/builders/middleware/utils.d.ts +18 -0
- package/dist/types/definers/builders/middleware.d.ts +1 -0
- package/dist/types/definers/builders/override/hook.d.ts +16 -0
- package/dist/types/definers/builders/override/index.d.ts +11 -0
- package/dist/types/definers/builders/override/resource-middleware.d.ts +3 -0
- package/dist/types/definers/builders/override/resource.d.ts +3 -0
- package/dist/types/definers/builders/override/task-middleware.d.ts +3 -0
- package/dist/types/definers/builders/override/task.d.ts +3 -0
- package/dist/types/definers/builders/resource/fluent-builder.d.ts +8 -0
- package/dist/types/definers/builders/resource/fluent-builder.interface.d.ts +42 -0
- package/dist/types/definers/builders/resource/index.d.ts +13 -0
- package/dist/types/definers/builders/resource/types.d.ts +37 -0
- package/dist/types/definers/builders/resource/utils.d.ts +26 -0
- package/dist/types/definers/builders/resource.d.ts +1 -0
- package/dist/types/definers/builders/tag/fluent-builder.d.ts +6 -0
- package/dist/types/definers/builders/tag/fluent-builder.interface.d.ts +8 -0
- package/dist/types/definers/builders/tag/index.d.ts +10 -0
- package/dist/types/definers/builders/tag/types.d.ts +12 -0
- package/dist/types/definers/builders/tag/utils.d.ts +5 -0
- package/dist/types/definers/builders/tag.d.ts +1 -0
- package/dist/types/definers/builders/task/fluent-builder.d.ts +8 -0
- package/dist/types/definers/builders/task/fluent-builder.interface.d.ts +33 -0
- package/dist/types/definers/builders/task/index.d.ts +21 -0
- package/dist/types/definers/builders/task/phantom-builder.d.ts +8 -0
- package/dist/types/definers/builders/task/phantom-builder.interface.d.ts +31 -0
- package/dist/types/definers/builders/task/types.d.ts +34 -0
- package/dist/types/definers/builders/task/utils.d.ts +14 -0
- package/dist/types/definers/builders/task.d.ts +1 -0
- package/dist/types/definers/builders/task.phantom.d.ts +1 -0
- package/dist/types/definers/builders/utils.d.ts +4 -0
- package/dist/types/definers/defineAsyncContext.d.ts +15 -0
- package/dist/types/definers/defineError.d.ts +27 -0
- package/dist/types/definers/defineEvent.d.ts +2 -0
- package/dist/types/definers/defineHook.d.ts +6 -0
- package/dist/types/definers/defineOverride.d.ts +12 -0
- package/dist/types/definers/defineResource.d.ts +2 -0
- package/dist/types/definers/defineResourceMiddleware.d.ts +2 -0
- package/dist/types/definers/defineTag.d.ts +12 -0
- package/dist/types/definers/defineTask.d.ts +18 -0
- package/dist/types/definers/defineTaskMiddleware.d.ts +2 -0
- package/dist/types/definers/middlewareConfig.d.ts +1 -0
- package/dist/types/definers/resourceFork.d.ts +13 -0
- package/dist/types/definers/tools.d.ts +53 -0
- package/dist/types/defs.d.ts +33 -0
- package/dist/types/errors.d.ts +75 -0
- package/dist/types/globals/debug.d.ts +10 -0
- package/dist/types/globals/globalEvents.d.ts +8 -0
- package/dist/types/globals/globalMiddleware.d.ts +97 -0
- package/dist/types/globals/globalResources.d.ts +64 -0
- package/dist/types/globals/globalTags.d.ts +12 -0
- package/dist/types/globals/middleware/cache.middleware.d.ts +36 -0
- package/dist/types/globals/middleware/circuitBreaker.middleware.d.ts +56 -0
- package/dist/types/globals/middleware/concurrency.middleware.d.ts +47 -0
- package/dist/types/globals/middleware/fallback.middleware.d.ts +23 -0
- package/dist/types/globals/middleware/rateLimit.middleware.d.ts +47 -0
- package/dist/types/globals/middleware/requireContext.middleware.d.ts +5 -0
- package/dist/types/globals/middleware/retry.middleware.d.ts +31 -0
- package/dist/types/globals/middleware/temporal.middleware.d.ts +48 -0
- package/dist/types/globals/middleware/timeout.middleware.d.ts +24 -0
- package/dist/types/globals/middleware/tunnel.middleware.d.ts +3 -0
- package/dist/types/globals/resources/debug/debug.resource.d.ts +7 -0
- package/dist/types/globals/resources/debug/debug.tag.d.ts +2 -0
- package/dist/types/globals/resources/debug/debugConfig.resource.d.ts +22 -0
- package/dist/types/globals/resources/debug/executionTracker.middleware.d.ts +50 -0
- package/dist/types/globals/resources/debug/globalEvent.hook.d.ts +27 -0
- package/dist/types/globals/resources/debug/hook.hook.d.ts +30 -0
- package/dist/types/globals/resources/debug/index.d.ts +6 -0
- package/dist/types/globals/resources/debug/middleware.hook.d.ts +30 -0
- package/dist/types/globals/resources/debug/types.d.ts +25 -0
- package/dist/types/globals/resources/debug/utils.d.ts +2 -0
- package/dist/types/globals/resources/httpClientFactory.resource.d.ts +28 -0
- package/dist/types/globals/resources/queue.resource.d.ts +10 -0
- package/dist/types/globals/resources/tunnel/error-utils.d.ts +1 -0
- package/dist/types/globals/resources/tunnel/plan.d.ts +19 -0
- package/dist/types/globals/resources/tunnel/protocol.d.ts +48 -0
- package/dist/types/globals/resources/tunnel/tunnel.policy.tag.d.ts +26 -0
- package/dist/types/globals/resources/tunnel/tunnel.tag.d.ts +2 -0
- package/dist/types/globals/resources/tunnel/types.d.ts +48 -0
- package/dist/types/globals/tunnels/index.d.ts +23 -0
- package/dist/types/globals/types.d.ts +15 -0
- package/dist/types/http-client.d.ts +26 -0
- package/dist/types/http-fetch-tunnel.resource.d.ts +11 -0
- package/dist/types/index.d.ts +44 -0
- package/dist/types/models/DependencyProcessor.d.ts +46 -0
- package/dist/types/models/EventManager.d.ts +115 -0
- package/dist/types/models/ExecutionJournal.d.ts +35 -0
- package/dist/types/models/LogPrinter.d.ts +56 -0
- package/dist/types/models/Logger.d.ts +85 -0
- package/dist/types/models/MiddlewareManager.d.ts +73 -0
- package/dist/types/models/OverrideManager.d.ts +13 -0
- package/dist/types/models/Queue.d.ts +40 -0
- package/dist/types/models/ResourceInitializer.d.ts +20 -0
- package/dist/types/models/RunResult.d.ts +41 -0
- package/dist/types/models/Semaphore.d.ts +80 -0
- package/dist/types/models/Store.d.ts +76 -0
- package/dist/types/models/StoreRegistry.d.ts +49 -0
- package/dist/types/models/StoreValidator.d.ts +8 -0
- package/dist/types/models/TaskRunner.d.ts +28 -0
- package/dist/types/models/UnhandledError.d.ts +11 -0
- package/dist/types/models/event/CycleContext.d.ts +9 -0
- package/dist/types/models/event/EmissionExecutor.d.ts +11 -0
- package/dist/types/models/event/InterceptorPipeline.d.ts +5 -0
- package/dist/types/models/event/ListenerRegistry.d.ts +31 -0
- package/dist/types/models/event/types.d.ts +50 -0
- package/dist/types/models/index.d.ts +13 -0
- package/dist/types/models/middleware/InterceptorRegistry.d.ts +56 -0
- package/dist/types/models/middleware/MiddlewareResolver.d.ts +31 -0
- package/dist/types/models/middleware/ResourceMiddlewareComposer.d.ts +34 -0
- package/dist/types/models/middleware/TaskMiddlewareComposer.d.ts +44 -0
- package/dist/types/models/middleware/ValidationHelper.d.ts +20 -0
- package/dist/types/models/middleware/index.d.ts +6 -0
- package/dist/types/models/middleware/types.d.ts +10 -0
- package/dist/types/models/utils/findCircularDependencies.d.ts +16 -0
- package/dist/types/models/utils/safeStringify.d.ts +3 -0
- package/dist/types/node/durable/bus/MemoryEventBus.d.ts +7 -0
- package/dist/types/node/durable/bus/NoopEventBus.d.ts +6 -0
- package/dist/types/node/durable/bus/RedisEventBus.d.ts +30 -0
- package/dist/types/node/durable/core/CronParser.d.ts +15 -0
- package/dist/types/node/durable/core/DurableContext.d.ts +64 -0
- package/dist/types/node/durable/core/DurableOperator.d.ts +47 -0
- package/dist/types/node/durable/core/DurableResource.d.ts +80 -0
- package/dist/types/node/durable/core/DurableService.d.ts +73 -0
- package/dist/types/node/durable/core/DurableWorker.d.ts +19 -0
- package/dist/types/node/durable/core/StepBuilder.d.ts +23 -0
- package/dist/types/node/durable/core/audit.d.ts +152 -0
- package/dist/types/node/durable/core/createRunnerDurableRuntime.d.ts +18 -0
- package/dist/types/node/durable/core/durable-context/DurableContext.audit.d.ts +14 -0
- package/dist/types/node/durable/core/durable-context/DurableContext.determinism.d.ts +13 -0
- package/dist/types/node/durable/core/durable-context/DurableContext.emit.d.ts +16 -0
- package/dist/types/node/durable/core/durable-context/DurableContext.sleep.d.ts +16 -0
- package/dist/types/node/durable/core/durable-context/DurableContext.steps.d.ts +25 -0
- package/dist/types/node/durable/core/durable-context/DurableContext.switch.d.ts +22 -0
- package/dist/types/node/durable/core/durable-context/DurableContext.waitForSignal.d.ts +23 -0
- package/dist/types/node/durable/core/flowShape.d.ts +50 -0
- package/dist/types/node/durable/core/ids.d.ts +11 -0
- package/dist/types/node/durable/core/index.d.ts +11 -0
- package/dist/types/node/durable/core/interfaces/bus.d.ts +13 -0
- package/dist/types/node/durable/core/interfaces/context.d.ts +105 -0
- package/dist/types/node/durable/core/interfaces/queue.d.ts +17 -0
- package/dist/types/node/durable/core/interfaces/service.d.ts +146 -0
- package/dist/types/node/durable/core/interfaces/store.d.ts +66 -0
- package/dist/types/node/durable/core/managers/AuditLogger.d.ts +29 -0
- package/dist/types/node/durable/core/managers/ExecutionManager.d.ts +48 -0
- package/dist/types/node/durable/core/managers/PollingManager.d.ts +48 -0
- package/dist/types/node/durable/core/managers/ScheduleManager.d.ts +33 -0
- package/dist/types/node/durable/core/managers/SignalHandler.d.ts +25 -0
- package/dist/types/node/durable/core/managers/TaskRegistry.d.ts +16 -0
- package/dist/types/node/durable/core/managers/WaitManager.d.ts +26 -0
- package/dist/types/node/durable/core/managers/index.d.ts +7 -0
- package/dist/types/node/durable/core/resource.d.ts +14 -0
- package/dist/types/node/durable/core/types.d.ts +84 -0
- package/dist/types/node/durable/core/utils.d.ts +28 -0
- package/dist/types/node/durable/dashboard/server.d.ts +20 -0
- package/dist/types/node/durable/emitters/runnerAuditEmitter.d.ts +6 -0
- package/dist/types/node/durable/events.d.ts +76 -0
- package/dist/types/node/durable/index.d.ts +34 -0
- package/dist/types/node/durable/optionalDeps/amqplib.d.ts +1 -0
- package/dist/types/node/durable/optionalDeps/ioredis.d.ts +1 -0
- package/dist/types/node/durable/queue/MemoryQueue.d.ts +12 -0
- package/dist/types/node/durable/queue/RabbitMQQueue.d.ts +30 -0
- package/dist/types/node/durable/resources/isolation.d.ts +15 -0
- package/dist/types/node/durable/resources/memoryDurableResource.d.ts +21 -0
- package/dist/types/node/durable/resources/redisDurableResource.d.ts +35 -0
- package/dist/types/node/durable/store/MemoryStore.d.ts +56 -0
- package/dist/types/node/durable/store/RedisStore.d.ts +89 -0
- package/dist/types/node/durable/test-utils.d.ts +29 -0
- package/dist/types/node/exposure/allowList.d.ts +3 -0
- package/dist/types/node/exposure/authenticator.d.ts +16 -0
- package/dist/types/node/exposure/cors.d.ts +4 -0
- package/dist/types/node/exposure/createNodeExposure.d.ts +2 -0
- package/dist/types/node/exposure/exposureServer.d.ts +18 -0
- package/dist/types/node/exposure/handlers/contextWrapper.d.ts +18 -0
- package/dist/types/node/exposure/handlers/errorHandlers.d.ts +23 -0
- package/dist/types/node/exposure/handlers/eventHandler.d.ts +20 -0
- package/dist/types/node/exposure/handlers/taskHandler.d.ts +24 -0
- package/dist/types/node/exposure/httpResponse.d.ts +10 -0
- package/dist/types/node/exposure/index.d.ts +3 -0
- package/dist/types/node/exposure/logging.d.ts +4 -0
- package/dist/types/node/exposure/multipart.d.ts +36 -0
- package/dist/types/node/exposure/requestBody.d.ts +11 -0
- package/dist/types/node/exposure/requestContext.d.ts +17 -0
- package/dist/types/node/exposure/requestHandlers.d.ts +29 -0
- package/dist/types/node/exposure/resource.d.ts +12 -0
- package/dist/types/node/exposure/resourceTypes.d.ts +73 -0
- package/dist/types/node/exposure/router.d.ts +17 -0
- package/dist/types/node/exposure/serverLifecycle.d.ts +13 -0
- package/dist/types/node/exposure/types.d.ts +45 -0
- package/dist/types/node/exposure/utils.d.ts +17 -0
- package/dist/types/node/files/createNodeFile.d.ts +9 -0
- package/dist/types/node/files/index.d.ts +4 -0
- package/dist/types/node/files/inputFile.model.d.ts +22 -0
- package/dist/types/node/files/inputFile.utils.d.ts +14 -0
- package/dist/types/node/http/http-mixed-client.d.ts +45 -0
- package/dist/types/node/http/http-mixed-client.factory.resource.d.ts +17 -0
- package/dist/types/node/http/http-smart-client.factory.resource.d.ts +16 -0
- package/dist/types/node/http/http-smart-client.model.d.ts +27 -0
- package/dist/types/node/http/index.d.ts +4 -0
- package/dist/types/node/index.d.ts +1 -0
- package/dist/types/node/node.d.ts +193 -0
- package/dist/types/node/platform/createFile.d.ts +9 -0
- package/dist/types/node/tunnel/allowlist.d.ts +7 -0
- package/dist/types/node/tunnel/index.d.ts +2 -0
- package/dist/types/node/upload/manifest.d.ts +23 -0
- package/dist/types/platform/adapters/browser.d.ts +14 -0
- package/dist/types/platform/adapters/edge.d.ts +5 -0
- package/dist/types/platform/adapters/node-als.d.ts +1 -0
- package/dist/types/platform/adapters/node.d.ts +15 -0
- package/dist/types/platform/adapters/universal-generic.d.ts +14 -0
- package/dist/types/platform/adapters/universal.d.ts +18 -0
- package/dist/types/platform/createFile.d.ts +10 -0
- package/dist/types/platform/createWebFile.d.ts +11 -0
- package/dist/types/platform/factory.d.ts +2 -0
- package/dist/types/platform/index.d.ts +27 -0
- package/dist/types/platform/types.d.ts +31 -0
- package/dist/types/processHooks.d.ts +2 -0
- package/dist/types/public-types.d.ts +13 -0
- package/dist/types/public.d.ts +210 -0
- package/dist/types/run.d.ts +14 -0
- package/dist/types/serializer/Serializer.d.ts +84 -0
- package/dist/types/serializer/binary-builtins.d.ts +5 -0
- package/dist/types/serializer/builtins.d.ts +47 -0
- package/dist/types/serializer/deserializer.d.ts +27 -0
- package/dist/types/serializer/error-url-builtins.d.ts +13 -0
- package/dist/types/serializer/graph-serializer.d.ts +27 -0
- package/dist/types/serializer/index.d.ts +6 -0
- package/dist/types/serializer/option-normalizers.d.ts +2 -0
- package/dist/types/serializer/regexp-validator.d.ts +34 -0
- package/dist/types/serializer/serialize-utils.d.ts +15 -0
- package/dist/types/serializer/special-values.d.ts +20 -0
- package/dist/types/serializer/tree-serializer.d.ts +20 -0
- package/dist/types/serializer/type-registry.d.ts +58 -0
- package/dist/types/serializer/types.d.ts +126 -0
- package/dist/types/serializer/validation.d.ts +34 -0
- package/dist/types/testing.d.ts +19 -0
- package/dist/types/tools/detectRunnerMode.d.ts +9 -0
- package/dist/types/tools/getCallerFile.d.ts +1 -0
- package/dist/types/tools/throws.d.ts +7 -0
- package/dist/types/tunnels/buildUniversalManifest.d.ts +24 -0
- package/dist/types/types/asyncContext.d.ts +41 -0
- package/dist/types/types/contracts.d.ts +62 -0
- package/dist/types/types/error.d.ts +39 -0
- package/dist/types/types/event.d.ts +79 -0
- package/dist/types/types/executionJournal.d.ts +29 -0
- package/dist/types/types/hook.d.ts +23 -0
- package/dist/types/types/inputFile.d.ts +34 -0
- package/dist/types/types/meta.d.ts +22 -0
- package/dist/types/types/resource.d.ts +133 -0
- package/dist/types/types/resourceMiddleware.d.ts +48 -0
- package/dist/types/types/runner.d.ts +68 -0
- package/dist/types/types/storeTypes.d.ts +46 -0
- package/dist/types/types/symbols.d.ts +34 -0
- package/dist/types/types/tag.d.ts +45 -0
- package/dist/types/types/task.d.ts +76 -0
- package/dist/types/types/taskMiddleware.d.ts +55 -0
- package/dist/types/types/utilities.d.ts +125 -0
- package/dist/universal/index.cjs +851 -476
- package/dist/universal/index.cjs.map +1 -1
- package/dist/universal/index.mjs +849 -476
- package/dist/universal/index.mjs.map +1 -1
- package/package.json +15 -14
- package/readmes/AI.md +30 -9
- package/dist/browser/index.d.mts +0 -2919
- package/dist/browser/index.d.ts +0 -2919
- package/dist/edge/index.d.mts +0 -2919
- package/dist/edge/index.d.ts +0 -2919
- package/dist/node/node.d.mts +0 -4622
- package/dist/node/node.d.ts +0 -4622
- package/dist/universal/index.d.mts +0 -2919
- package/dist/universal/index.d.ts +0 -2919
package/dist/universal/index.cjs
CHANGED
|
@@ -198,88 +198,227 @@ var symbolAsyncContext = Symbol.for(
|
|
|
198
198
|
"runner.asyncContext"
|
|
199
199
|
);
|
|
200
200
|
|
|
201
|
-
// src/
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
return mod.AsyncLocalStorage;
|
|
201
|
+
// src/tools/getCallerFile.ts
|
|
202
|
+
function isNodeInline() {
|
|
203
|
+
return typeof process !== "undefined" && typeof process?.versions?.node === "string";
|
|
205
204
|
}
|
|
206
|
-
__name(
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
process.on("uncaughtException", h);
|
|
224
|
-
return () => process.off("uncaughtException", h);
|
|
225
|
-
}
|
|
226
|
-
onUnhandledRejection(handler) {
|
|
227
|
-
const h = /* @__PURE__ */ __name((reason) => handler(reason), "h");
|
|
228
|
-
process.on("unhandledRejection", h);
|
|
229
|
-
return () => process.off("unhandledRejection", h);
|
|
230
|
-
}
|
|
231
|
-
onShutdownSignal(handler) {
|
|
232
|
-
process.on("SIGINT", handler);
|
|
233
|
-
process.on("SIGTERM", handler);
|
|
234
|
-
return () => {
|
|
235
|
-
process.off("SIGINT", handler);
|
|
236
|
-
process.off("SIGTERM", handler);
|
|
237
|
-
};
|
|
238
|
-
}
|
|
239
|
-
exit(code) {
|
|
240
|
-
process.exit(code);
|
|
241
|
-
}
|
|
242
|
-
getEnv(key) {
|
|
243
|
-
return process.env[key];
|
|
244
|
-
}
|
|
245
|
-
hasAsyncLocalStorage() {
|
|
246
|
-
return true;
|
|
205
|
+
__name(isNodeInline, "isNodeInline");
|
|
206
|
+
function getCallerFile() {
|
|
207
|
+
const originalPrepare = Error.prepareStackTrace;
|
|
208
|
+
try {
|
|
209
|
+
if (isNodeInline()) {
|
|
210
|
+
const err = new Error();
|
|
211
|
+
Error.prepareStackTrace = (_err, stack2) => stack2;
|
|
212
|
+
const stack = err.stack;
|
|
213
|
+
stack.shift();
|
|
214
|
+
stack.shift();
|
|
215
|
+
const candidate = stack.shift();
|
|
216
|
+
const file = candidate?.getFileName?.();
|
|
217
|
+
return file;
|
|
218
|
+
}
|
|
219
|
+
return "unknown";
|
|
220
|
+
} finally {
|
|
221
|
+
Error.prepareStackTrace = originalPrepare;
|
|
247
222
|
}
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
223
|
+
}
|
|
224
|
+
__name(getCallerFile, "getCallerFile");
|
|
225
|
+
|
|
226
|
+
// src/defs.ts
|
|
227
|
+
var defs_exports = {};
|
|
228
|
+
__export(defs_exports, {
|
|
229
|
+
CONTRACT: () => CONTRACT,
|
|
230
|
+
HookDependencyState: () => HookDependencyState,
|
|
231
|
+
RunnerMode: () => RunnerMode,
|
|
232
|
+
isOneOf: () => isOneOf,
|
|
233
|
+
onAnyOf: () => onAnyOf,
|
|
234
|
+
symbolAsyncContext: () => symbolAsyncContext,
|
|
235
|
+
symbolError: () => symbolError,
|
|
236
|
+
symbolEvent: () => symbolEvent,
|
|
237
|
+
symbolFilePath: () => symbolFilePath,
|
|
238
|
+
symbolHook: () => symbolHook,
|
|
239
|
+
symbolMiddleware: () => symbolMiddleware,
|
|
240
|
+
symbolMiddlewareConfigured: () => symbolMiddlewareConfigured,
|
|
241
|
+
symbolOptionalDependency: () => symbolOptionalDependency,
|
|
242
|
+
symbolPhantomTask: () => symbolPhantomTask,
|
|
243
|
+
symbolResource: () => symbolResource,
|
|
244
|
+
symbolResourceForkedFrom: () => symbolResourceForkedFrom,
|
|
245
|
+
symbolResourceMiddleware: () => symbolResourceMiddleware,
|
|
246
|
+
symbolResourceWithConfig: () => symbolResourceWithConfig,
|
|
247
|
+
symbolTag: () => symbolTag,
|
|
248
|
+
symbolTagConfigured: () => symbolTagConfigured,
|
|
249
|
+
symbolTask: () => symbolTask,
|
|
250
|
+
symbolTaskMiddleware: () => symbolTaskMiddleware,
|
|
251
|
+
symbolTunneledBy: () => symbolTunneledBy
|
|
252
|
+
});
|
|
253
|
+
|
|
254
|
+
// src/types/event.ts
|
|
255
|
+
function onAnyOf(...defs) {
|
|
256
|
+
return defs;
|
|
257
|
+
}
|
|
258
|
+
__name(onAnyOf, "onAnyOf");
|
|
259
|
+
function isOneOf(emission, defs) {
|
|
260
|
+
return defs.some((d) => d.id === emission.id);
|
|
261
|
+
}
|
|
262
|
+
__name(isOneOf, "isOneOf");
|
|
263
|
+
|
|
264
|
+
// src/types/runner.ts
|
|
265
|
+
var RunnerMode = /* @__PURE__ */ ((RunnerMode2) => {
|
|
266
|
+
RunnerMode2["TEST"] = "test";
|
|
267
|
+
RunnerMode2["DEV"] = "dev";
|
|
268
|
+
RunnerMode2["PROD"] = "prod";
|
|
269
|
+
return RunnerMode2;
|
|
270
|
+
})(RunnerMode || {});
|
|
271
|
+
|
|
272
|
+
// src/types/contracts.ts
|
|
273
|
+
var CONTRACT = Symbol.for("runner.contract");
|
|
274
|
+
|
|
275
|
+
// src/types/storeTypes.ts
|
|
276
|
+
var HookDependencyState = /* @__PURE__ */ ((HookDependencyState2) => {
|
|
277
|
+
HookDependencyState2["Pending"] = "pending";
|
|
278
|
+
HookDependencyState2["Computing"] = "computing";
|
|
279
|
+
HookDependencyState2["Ready"] = "ready";
|
|
280
|
+
return HookDependencyState2;
|
|
281
|
+
})(HookDependencyState || {});
|
|
282
|
+
|
|
283
|
+
// src/definers/tools.ts
|
|
284
|
+
function isTask(definition) {
|
|
285
|
+
return definition && definition[symbolTask];
|
|
286
|
+
}
|
|
287
|
+
__name(isTask, "isTask");
|
|
288
|
+
function isResource(definition) {
|
|
289
|
+
return definition && definition[symbolResource];
|
|
290
|
+
}
|
|
291
|
+
__name(isResource, "isResource");
|
|
292
|
+
function isResourceWithConfig(definition) {
|
|
293
|
+
return definition && definition[symbolResourceWithConfig];
|
|
294
|
+
}
|
|
295
|
+
__name(isResourceWithConfig, "isResourceWithConfig");
|
|
296
|
+
function isEvent(definition) {
|
|
297
|
+
return definition && definition[symbolEvent];
|
|
298
|
+
}
|
|
299
|
+
__name(isEvent, "isEvent");
|
|
300
|
+
function isHook(definition) {
|
|
301
|
+
return definition && definition[symbolHook];
|
|
302
|
+
}
|
|
303
|
+
__name(isHook, "isHook");
|
|
304
|
+
function isTaskMiddleware(definition) {
|
|
305
|
+
return definition && definition[symbolTaskMiddleware];
|
|
306
|
+
}
|
|
307
|
+
__name(isTaskMiddleware, "isTaskMiddleware");
|
|
308
|
+
function isResourceMiddleware(definition) {
|
|
309
|
+
return definition && definition[symbolResourceMiddleware];
|
|
310
|
+
}
|
|
311
|
+
__name(isResourceMiddleware, "isResourceMiddleware");
|
|
312
|
+
function isTag(definition) {
|
|
313
|
+
return definition && definition[symbolTag];
|
|
314
|
+
}
|
|
315
|
+
__name(isTag, "isTag");
|
|
316
|
+
function isOptional(definition) {
|
|
317
|
+
return definition && definition[symbolOptionalDependency];
|
|
318
|
+
}
|
|
319
|
+
__name(isOptional, "isOptional");
|
|
320
|
+
function isError(definition) {
|
|
321
|
+
return Boolean(definition && definition[symbolError]);
|
|
322
|
+
}
|
|
323
|
+
__name(isError, "isError");
|
|
324
|
+
function isAsyncContext(definition) {
|
|
325
|
+
return Boolean(definition && definition[symbolAsyncContext]);
|
|
326
|
+
}
|
|
327
|
+
__name(isAsyncContext, "isAsyncContext");
|
|
328
|
+
|
|
329
|
+
// src/tools/throws.ts
|
|
330
|
+
function invalidThrowsEntryError(owner, item) {
|
|
331
|
+
const got = item === null ? "null" : Array.isArray(item) ? "array" : typeof item === "object" ? "object" : typeof item;
|
|
332
|
+
return new Error(
|
|
333
|
+
`Invalid throws entry for ${owner.kind} ${owner.id}: expected error id string or Error helper, got ${got}`
|
|
334
|
+
);
|
|
335
|
+
}
|
|
336
|
+
__name(invalidThrowsEntryError, "invalidThrowsEntryError");
|
|
337
|
+
function toErrorIdList(owner, list) {
|
|
338
|
+
const ids = [];
|
|
339
|
+
const seen = /* @__PURE__ */ new Set();
|
|
340
|
+
for (const item of list) {
|
|
341
|
+
let id2;
|
|
342
|
+
if (typeof item === "string") {
|
|
343
|
+
if (item.trim().length === 0) {
|
|
344
|
+
throw invalidThrowsEntryError(owner, item);
|
|
273
345
|
}
|
|
274
|
-
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
346
|
+
id2 = item;
|
|
347
|
+
} else if (isError(item)) {
|
|
348
|
+
id2 = item.id;
|
|
349
|
+
if (typeof id2 !== "string" || id2.trim().length === 0) {
|
|
350
|
+
throw invalidThrowsEntryError(owner, item);
|
|
351
|
+
}
|
|
352
|
+
} else {
|
|
353
|
+
throw invalidThrowsEntryError(owner, item);
|
|
354
|
+
}
|
|
355
|
+
if (seen.has(id2)) continue;
|
|
356
|
+
seen.add(id2);
|
|
357
|
+
ids.push(id2);
|
|
280
358
|
}
|
|
359
|
+
return ids;
|
|
360
|
+
}
|
|
361
|
+
__name(toErrorIdList, "toErrorIdList");
|
|
362
|
+
function normalizeThrows(owner, throwsList) {
|
|
363
|
+
if (throwsList === void 0) return void 0;
|
|
364
|
+
return toErrorIdList(owner, throwsList);
|
|
365
|
+
}
|
|
366
|
+
__name(normalizeThrows, "normalizeThrows");
|
|
367
|
+
|
|
368
|
+
// src/definers/defineTask.ts
|
|
369
|
+
function defineTask(taskConfig) {
|
|
370
|
+
const filePath = getCallerFile();
|
|
371
|
+
const id2 = taskConfig.id;
|
|
372
|
+
return {
|
|
373
|
+
[symbolTask]: true,
|
|
374
|
+
[symbolFilePath]: filePath,
|
|
375
|
+
id: id2,
|
|
376
|
+
dependencies: taskConfig.dependencies || {},
|
|
377
|
+
middleware: taskConfig.middleware || [],
|
|
378
|
+
run: taskConfig.run,
|
|
379
|
+
inputSchema: taskConfig.inputSchema,
|
|
380
|
+
resultSchema: taskConfig.resultSchema,
|
|
381
|
+
meta: taskConfig.meta || {},
|
|
382
|
+
tags: taskConfig.tags || [],
|
|
383
|
+
throws: normalizeThrows({ kind: "task", id: id2 }, taskConfig.throws),
|
|
384
|
+
// autorun,
|
|
385
|
+
optional() {
|
|
386
|
+
return {
|
|
387
|
+
inner: this,
|
|
388
|
+
[symbolOptionalDependency]: true
|
|
389
|
+
};
|
|
390
|
+
}
|
|
391
|
+
};
|
|
392
|
+
}
|
|
393
|
+
__name(defineTask, "defineTask");
|
|
394
|
+
defineTask.phantom = (taskConfig) => {
|
|
395
|
+
const taskDef = defineTask({
|
|
396
|
+
...taskConfig,
|
|
397
|
+
run: /* @__PURE__ */ __name(async (_input) => {
|
|
398
|
+
return void 0;
|
|
399
|
+
}, "run")
|
|
400
|
+
});
|
|
401
|
+
taskDef[symbolPhantomTask] = true;
|
|
402
|
+
return taskDef;
|
|
281
403
|
};
|
|
282
404
|
|
|
405
|
+
// src/definers/defineHook.ts
|
|
406
|
+
function defineHook(hookDef) {
|
|
407
|
+
const filePath = getCallerFile();
|
|
408
|
+
return {
|
|
409
|
+
[symbolHook]: true,
|
|
410
|
+
[symbolFilePath]: filePath,
|
|
411
|
+
id: hookDef.id,
|
|
412
|
+
dependencies: hookDef.dependencies || {},
|
|
413
|
+
on: hookDef.on,
|
|
414
|
+
order: hookDef.order,
|
|
415
|
+
run: hookDef.run,
|
|
416
|
+
meta: hookDef.meta || {},
|
|
417
|
+
tags: hookDef.tags || []
|
|
418
|
+
};
|
|
419
|
+
}
|
|
420
|
+
__name(defineHook, "defineHook");
|
|
421
|
+
|
|
283
422
|
// src/errors.ts
|
|
284
423
|
var errors_exports = {};
|
|
285
424
|
__export(errors_exports, {
|
|
@@ -321,9 +460,10 @@ var RunnerError = class extends Error {
|
|
|
321
460
|
var _a;
|
|
322
461
|
_a = symbolError;
|
|
323
462
|
var ErrorHelper = class {
|
|
324
|
-
constructor(definition) {
|
|
463
|
+
constructor(definition, filePath) {
|
|
325
464
|
this.definition = definition;
|
|
326
465
|
this[_a] = true;
|
|
466
|
+
this[symbolFilePath] = filePath;
|
|
327
467
|
}
|
|
328
468
|
static {
|
|
329
469
|
__name(this, "ErrorHelper");
|
|
@@ -346,11 +486,15 @@ var ErrorHelper = class {
|
|
|
346
486
|
};
|
|
347
487
|
}
|
|
348
488
|
};
|
|
349
|
-
function defineError(definition) {
|
|
489
|
+
function defineError(definition, filePath) {
|
|
350
490
|
if (!definition.format) {
|
|
351
491
|
definition.format = (data) => `${JSON.stringify(data)}`;
|
|
352
492
|
}
|
|
353
|
-
|
|
493
|
+
const resolvedFilePath = filePath ?? getCallerFile();
|
|
494
|
+
return new ErrorHelper(
|
|
495
|
+
definition,
|
|
496
|
+
resolvedFilePath
|
|
497
|
+
);
|
|
354
498
|
}
|
|
355
499
|
__name(defineError, "defineError");
|
|
356
500
|
|
|
@@ -388,14 +532,17 @@ function makeErrorBuilder(state) {
|
|
|
388
532
|
return makeErrorBuilder(next);
|
|
389
533
|
},
|
|
390
534
|
build() {
|
|
391
|
-
return defineError(
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
535
|
+
return defineError(
|
|
536
|
+
{
|
|
537
|
+
id: state.id,
|
|
538
|
+
serialize: state.serialize,
|
|
539
|
+
parse: state.parse,
|
|
540
|
+
dataSchema: state.dataSchema,
|
|
541
|
+
format: state.format,
|
|
542
|
+
meta: state.meta
|
|
543
|
+
},
|
|
544
|
+
state.filePath
|
|
545
|
+
);
|
|
399
546
|
}
|
|
400
547
|
};
|
|
401
548
|
return builder;
|
|
@@ -404,8 +551,10 @@ __name(makeErrorBuilder, "makeErrorBuilder");
|
|
|
404
551
|
|
|
405
552
|
// src/definers/builders/error/index.ts
|
|
406
553
|
function errorBuilder(id2) {
|
|
554
|
+
const filePath = getCallerFile();
|
|
407
555
|
const initial = Object.freeze({
|
|
408
556
|
id: id2,
|
|
557
|
+
filePath,
|
|
409
558
|
serialize: void 0,
|
|
410
559
|
parse: void 0,
|
|
411
560
|
dataSchema: void 0,
|
|
@@ -416,103 +565,87 @@ function errorBuilder(id2) {
|
|
|
416
565
|
__name(errorBuilder, "errorBuilder");
|
|
417
566
|
var error = errorBuilder;
|
|
418
567
|
|
|
419
|
-
// src/
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
var dependencyNotFoundError = error("runner.errors.dependencyNotFound").format(
|
|
424
|
-
({ key }) => `Dependency ${key.toString()} not found. Did you forget to register it through a resource?`
|
|
425
|
-
).build();
|
|
426
|
-
var unknownItemTypeError = error(
|
|
427
|
-
"runner.errors.unknownItemType"
|
|
428
|
-
).format(
|
|
429
|
-
({ item }) => `Unknown item type: ${String(
|
|
430
|
-
item
|
|
431
|
-
)}. Please ensure you are not using different versions of '@bluelibs/runner'`
|
|
432
|
-
).build();
|
|
433
|
-
var contextError = error(
|
|
434
|
-
"runner.errors.context"
|
|
435
|
-
).format(({ details }) => details ?? "Context error").build();
|
|
436
|
-
var circularDependenciesError = error("runner.errors.circularDependencies").format(({ cycles }) => {
|
|
437
|
-
const cycleDetails = cycles.map((cycle) => ` \u2022 ${cycle}`).join("\n");
|
|
438
|
-
const hasMiddleware = cycles.some((cycle) => cycle.includes("middleware"));
|
|
439
|
-
let guidance = "\n\nTo resolve circular dependencies:";
|
|
440
|
-
guidance += "\n \u2022 Consider refactoring to reduce coupling between components";
|
|
441
|
-
guidance += "\n \u2022 Extract shared dependencies into separate resources";
|
|
442
|
-
if (hasMiddleware) {
|
|
443
|
-
guidance += "\n \u2022 For middleware: you can filter out tasks/resources using everywhere(fn)";
|
|
444
|
-
guidance += "\n \u2022 Consider using events for communication instead of direct dependencies";
|
|
445
|
-
}
|
|
446
|
-
return `Circular dependencies detected:
|
|
447
|
-
${cycleDetails}${guidance}`;
|
|
448
|
-
}).build();
|
|
449
|
-
var eventNotFoundError = error(
|
|
450
|
-
"runner.errors.eventNotFound"
|
|
451
|
-
).format(
|
|
452
|
-
({ id: id2 }) => `Event "${id2.toString()}" not found. Did you forget to register it?`
|
|
453
|
-
).build();
|
|
454
|
-
var resourceNotFoundError = error(
|
|
455
|
-
"runner.errors.resourceNotFound"
|
|
456
|
-
).format(
|
|
457
|
-
({ id: id2 }) => `Resource "${id2.toString()}" not found. Did you forget to register it or are you using the correct id?`
|
|
458
|
-
).build();
|
|
459
|
-
var middlewareNotRegisteredError = error("runner.errors.middlewareNotRegistered").format(
|
|
460
|
-
({ type, source, middlewareId }) => `Middleware inside ${type} "${source}" depends on "${middlewareId}" but it's not registered. Did you forget to register it?`
|
|
461
|
-
).build();
|
|
462
|
-
var tagNotFoundError = error(
|
|
463
|
-
"runner.errors.tagNotFound"
|
|
464
|
-
).format(
|
|
465
|
-
({ id: id2 }) => `Tag "${id2}" not registered. Did you forget to register it inside a resource?`
|
|
466
|
-
).build();
|
|
467
|
-
var lockedError = error(
|
|
468
|
-
"runner.errors.locked"
|
|
469
|
-
).format(
|
|
470
|
-
({ what }) => `Cannot modify the ${what.toString()} when it is locked.`
|
|
471
|
-
).build();
|
|
472
|
-
var storeAlreadyInitializedError = error(
|
|
473
|
-
"runner.errors.storeAlreadyInitialized"
|
|
474
|
-
).format(() => "Store already initialized. Cannot reinitialize.").build();
|
|
475
|
-
var validationError = error("runner.errors.validation").format(({ subject, id: id2, originalError }) => {
|
|
476
|
-
const errorMessage = originalError instanceof Error ? originalError.message : String(originalError);
|
|
477
|
-
return `${subject} validation failed for ${id2.toString()}: ${errorMessage}`;
|
|
478
|
-
}).build();
|
|
479
|
-
var eventCycleError = error("runner.errors.eventCycle").format(({ path }) => {
|
|
480
|
-
const chain = path.map((p) => `${p.id}\u2190${p.source}`).join(" -> ");
|
|
481
|
-
return `Event emission cycle detected:
|
|
482
|
-
${chain}
|
|
483
|
-
|
|
484
|
-
Break the cycle by changing hook logic (avoid mutual emits) or gate with conditions/tags.`;
|
|
485
|
-
}).build();
|
|
486
|
-
var eventEmissionCycleError = error("runner.errors.eventEmissionCycle").format(({ cycles }) => {
|
|
487
|
-
const list = cycles.map((c) => ` \u2022 ${c}`).join("\n");
|
|
488
|
-
return `Event emission cycles detected between hooks and events:
|
|
489
|
-
${list}
|
|
490
|
-
|
|
491
|
-
This was detected at compile time (dry-run). Break the cycle by avoiding mutual emits between hooks or scoping hooks using tags.`;
|
|
492
|
-
}).build();
|
|
493
|
-
var platformUnsupportedFunctionError = error("runner.errors.platformUnsupportedFunction").format(
|
|
494
|
-
({ functionName }) => `Platform function not supported in this environment: ${functionName}. Detected platform: ${detectEnvironment()}.`
|
|
495
|
-
).build();
|
|
496
|
-
var cancellationError = error(
|
|
497
|
-
"runner.errors.cancellation"
|
|
498
|
-
).format(({ reason }) => reason || "Operation cancelled").build();
|
|
499
|
-
var tunnelOwnershipConflictError = error("runner.errors.tunnelOwnershipConflict").format(
|
|
500
|
-
({ taskId, currentOwnerId, attemptedOwnerId }) => `Task "${taskId}" is already tunneled by resource "${currentOwnerId}". Resource "${attemptedOwnerId}" cannot tunnel it again. Ensure each task is owned by a single tunnel client.`
|
|
501
|
-
).build();
|
|
502
|
-
var phantomTaskNotRoutedError = error("runner.errors.phantomTaskNotRouted").format(
|
|
503
|
-
({ taskId }) => `Phantom task "${taskId}" is not routed through any tunnel. Ensure a tunnel client selects this task id (or avoid calling the phantom task directly).`
|
|
504
|
-
).build();
|
|
505
|
-
var taskNotRegisteredError = error("runner.errors.taskNotRegistered").format(
|
|
506
|
-
({ taskId }) => `Task "${taskId}" is not registered in the Store. This is an internal error\u2014ensure the task is registered before execution.`
|
|
507
|
-
).build();
|
|
508
|
-
var builderIncompleteError = error("runner.errors.builderIncomplete").format(({ type, builderId, missingFields }) => {
|
|
509
|
-
const typeLabel = type === "hook" ? "Hook" : type === "task-middleware" ? "Task middleware" : "Resource middleware";
|
|
510
|
-
return `${typeLabel} "${builderId}" is incomplete. Missing required: ${missingFields.join(", ")}. Call ${missingFields.map((f) => `.${f}()`).join(" and ")} before .build().`;
|
|
511
|
-
}).build();
|
|
512
|
-
function isCancellationError(err) {
|
|
513
|
-
return cancellationError.is(err);
|
|
568
|
+
// src/platform/adapters/node-als.ts
|
|
569
|
+
async function loadAsyncLocalStorageClass() {
|
|
570
|
+
const mod = __require("async_hooks");
|
|
571
|
+
return mod.AsyncLocalStorage;
|
|
514
572
|
}
|
|
515
|
-
__name(
|
|
573
|
+
__name(loadAsyncLocalStorageClass, "loadAsyncLocalStorageClass");
|
|
574
|
+
|
|
575
|
+
// src/platform/adapters/node.ts
|
|
576
|
+
var NodePlatformAdapter = class {
|
|
577
|
+
constructor() {
|
|
578
|
+
this.id = "node";
|
|
579
|
+
this.setTimeout = globalThis.setTimeout;
|
|
580
|
+
this.clearTimeout = globalThis.clearTimeout;
|
|
581
|
+
}
|
|
582
|
+
static {
|
|
583
|
+
__name(this, "NodePlatformAdapter");
|
|
584
|
+
}
|
|
585
|
+
async init() {
|
|
586
|
+
this.alsClass = await loadAsyncLocalStorageClass();
|
|
587
|
+
}
|
|
588
|
+
onUncaughtException(handler) {
|
|
589
|
+
const h = /* @__PURE__ */ __name((error2) => handler(error2), "h");
|
|
590
|
+
process.on("uncaughtException", h);
|
|
591
|
+
return () => process.off("uncaughtException", h);
|
|
592
|
+
}
|
|
593
|
+
onUnhandledRejection(handler) {
|
|
594
|
+
const h = /* @__PURE__ */ __name((reason) => handler(reason), "h");
|
|
595
|
+
process.on("unhandledRejection", h);
|
|
596
|
+
return () => process.off("unhandledRejection", h);
|
|
597
|
+
}
|
|
598
|
+
onShutdownSignal(handler) {
|
|
599
|
+
process.on("SIGINT", handler);
|
|
600
|
+
process.on("SIGTERM", handler);
|
|
601
|
+
return () => {
|
|
602
|
+
process.off("SIGINT", handler);
|
|
603
|
+
process.off("SIGTERM", handler);
|
|
604
|
+
};
|
|
605
|
+
}
|
|
606
|
+
exit(code) {
|
|
607
|
+
process.exit(code);
|
|
608
|
+
}
|
|
609
|
+
getEnv(key) {
|
|
610
|
+
return process.env[key];
|
|
611
|
+
}
|
|
612
|
+
hasAsyncLocalStorage() {
|
|
613
|
+
return true;
|
|
614
|
+
}
|
|
615
|
+
createAsyncLocalStorage() {
|
|
616
|
+
let instance;
|
|
617
|
+
const ensure = /* @__PURE__ */ __name(() => {
|
|
618
|
+
if (!this.alsClass) {
|
|
619
|
+
let als;
|
|
620
|
+
const forceNoop = typeof process !== "undefined" && !!process.env?.RUNNER_FORCE_NOOP_ALS;
|
|
621
|
+
if (!forceNoop) {
|
|
622
|
+
try {
|
|
623
|
+
const mod = __require("async_hooks");
|
|
624
|
+
als = mod?.AsyncLocalStorage;
|
|
625
|
+
} catch (_) {
|
|
626
|
+
als = void 0;
|
|
627
|
+
}
|
|
628
|
+
}
|
|
629
|
+
this.alsClass = als || class NoopAsyncLocalStorage {
|
|
630
|
+
static {
|
|
631
|
+
__name(this, "NoopAsyncLocalStorage");
|
|
632
|
+
}
|
|
633
|
+
getStore() {
|
|
634
|
+
return void 0;
|
|
635
|
+
}
|
|
636
|
+
run(_store, callback) {
|
|
637
|
+
return callback();
|
|
638
|
+
}
|
|
639
|
+
};
|
|
640
|
+
}
|
|
641
|
+
return instance ??= new this.alsClass();
|
|
642
|
+
}, "ensure");
|
|
643
|
+
return {
|
|
644
|
+
getStore: /* @__PURE__ */ __name(() => ensure().getStore(), "getStore"),
|
|
645
|
+
run: /* @__PURE__ */ __name((store2, callback) => ensure().run(store2, callback), "run")
|
|
646
|
+
};
|
|
647
|
+
}
|
|
648
|
+
};
|
|
516
649
|
|
|
517
650
|
// src/platform/adapters/browser.ts
|
|
518
651
|
var BrowserPlatformAdapter = class {
|
|
@@ -805,14 +938,11 @@ function setPlatform(adapter) {
|
|
|
805
938
|
adapter.id;
|
|
806
939
|
}
|
|
807
940
|
__name(setPlatform, "setPlatform");
|
|
808
|
-
function isNode() {
|
|
809
|
-
return detectEnvironment() === "node";
|
|
810
|
-
}
|
|
811
|
-
__name(isNode, "isNode");
|
|
812
941
|
var PlatformAdapter = class {
|
|
942
|
+
static {
|
|
943
|
+
__name(this, "PlatformAdapter");
|
|
944
|
+
}
|
|
813
945
|
constructor(env) {
|
|
814
|
-
this.setTimeout = globalThis.setTimeout;
|
|
815
|
-
this.clearTimeout = globalThis.clearTimeout;
|
|
816
946
|
const kind = env ?? detectEnvironment();
|
|
817
947
|
this.env = kind;
|
|
818
948
|
switch (kind) {
|
|
@@ -832,9 +962,8 @@ var PlatformAdapter = class {
|
|
|
832
962
|
this.inner = new UniversalPlatformAdapter();
|
|
833
963
|
}
|
|
834
964
|
this.id = this.inner.id;
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
__name(this, "PlatformAdapter");
|
|
965
|
+
this.setTimeout = this.inner.setTimeout;
|
|
966
|
+
this.clearTimeout = this.inner.clearTimeout;
|
|
838
967
|
}
|
|
839
968
|
async init() {
|
|
840
969
|
return this.inner.init();
|
|
@@ -862,209 +991,103 @@ var PlatformAdapter = class {
|
|
|
862
991
|
}
|
|
863
992
|
};
|
|
864
993
|
|
|
865
|
-
// src/
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
}
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
onAnyOf: () => onAnyOf,
|
|
892
|
-
symbolAsyncContext: () => symbolAsyncContext,
|
|
893
|
-
symbolError: () => symbolError,
|
|
894
|
-
symbolEvent: () => symbolEvent,
|
|
895
|
-
symbolFilePath: () => symbolFilePath,
|
|
896
|
-
symbolHook: () => symbolHook,
|
|
897
|
-
symbolMiddleware: () => symbolMiddleware,
|
|
898
|
-
symbolMiddlewareConfigured: () => symbolMiddlewareConfigured,
|
|
899
|
-
symbolOptionalDependency: () => symbolOptionalDependency,
|
|
900
|
-
symbolPhantomTask: () => symbolPhantomTask,
|
|
901
|
-
symbolResource: () => symbolResource,
|
|
902
|
-
symbolResourceForkedFrom: () => symbolResourceForkedFrom,
|
|
903
|
-
symbolResourceMiddleware: () => symbolResourceMiddleware,
|
|
904
|
-
symbolResourceWithConfig: () => symbolResourceWithConfig,
|
|
905
|
-
symbolTag: () => symbolTag,
|
|
906
|
-
symbolTagConfigured: () => symbolTagConfigured,
|
|
907
|
-
symbolTask: () => symbolTask,
|
|
908
|
-
symbolTaskMiddleware: () => symbolTaskMiddleware,
|
|
909
|
-
symbolTunneledBy: () => symbolTunneledBy
|
|
910
|
-
});
|
|
911
|
-
|
|
912
|
-
// src/types/event.ts
|
|
913
|
-
function onAnyOf(...defs) {
|
|
914
|
-
return defs;
|
|
915
|
-
}
|
|
916
|
-
__name(onAnyOf, "onAnyOf");
|
|
917
|
-
function isOneOf(emission, defs) {
|
|
918
|
-
return defs.some((d) => d.id === emission.id);
|
|
919
|
-
}
|
|
920
|
-
__name(isOneOf, "isOneOf");
|
|
921
|
-
|
|
922
|
-
// src/types/runner.ts
|
|
923
|
-
var RunnerMode = /* @__PURE__ */ ((RunnerMode2) => {
|
|
924
|
-
RunnerMode2["TEST"] = "test";
|
|
925
|
-
RunnerMode2["DEV"] = "dev";
|
|
926
|
-
RunnerMode2["PROD"] = "prod";
|
|
927
|
-
return RunnerMode2;
|
|
928
|
-
})(RunnerMode || {});
|
|
929
|
-
|
|
930
|
-
// src/definers/tools.ts
|
|
931
|
-
function isTask(definition) {
|
|
932
|
-
return definition && definition[symbolTask];
|
|
933
|
-
}
|
|
934
|
-
__name(isTask, "isTask");
|
|
935
|
-
function isResource(definition) {
|
|
936
|
-
return definition && definition[symbolResource];
|
|
937
|
-
}
|
|
938
|
-
__name(isResource, "isResource");
|
|
939
|
-
function isResourceWithConfig(definition) {
|
|
940
|
-
return definition && definition[symbolResourceWithConfig];
|
|
941
|
-
}
|
|
942
|
-
__name(isResourceWithConfig, "isResourceWithConfig");
|
|
943
|
-
function isEvent(definition) {
|
|
944
|
-
return definition && definition[symbolEvent];
|
|
945
|
-
}
|
|
946
|
-
__name(isEvent, "isEvent");
|
|
947
|
-
function isHook(definition) {
|
|
948
|
-
return definition && definition[symbolHook];
|
|
949
|
-
}
|
|
950
|
-
__name(isHook, "isHook");
|
|
951
|
-
function isTaskMiddleware(definition) {
|
|
952
|
-
return definition && definition[symbolTaskMiddleware];
|
|
953
|
-
}
|
|
954
|
-
__name(isTaskMiddleware, "isTaskMiddleware");
|
|
955
|
-
function isResourceMiddleware(definition) {
|
|
956
|
-
return definition && definition[symbolResourceMiddleware];
|
|
957
|
-
}
|
|
958
|
-
__name(isResourceMiddleware, "isResourceMiddleware");
|
|
959
|
-
function isTag(definition) {
|
|
960
|
-
return definition && definition[symbolTag];
|
|
961
|
-
}
|
|
962
|
-
__name(isTag, "isTag");
|
|
963
|
-
function isOptional(definition) {
|
|
964
|
-
return definition && definition[symbolOptionalDependency];
|
|
965
|
-
}
|
|
966
|
-
__name(isOptional, "isOptional");
|
|
967
|
-
function isError(definition) {
|
|
968
|
-
return Boolean(definition && definition[symbolError]);
|
|
969
|
-
}
|
|
970
|
-
__name(isError, "isError");
|
|
971
|
-
function isAsyncContext(definition) {
|
|
972
|
-
return Boolean(definition && definition[symbolAsyncContext]);
|
|
973
|
-
}
|
|
974
|
-
__name(isAsyncContext, "isAsyncContext");
|
|
975
|
-
|
|
976
|
-
// src/tools/throws.ts
|
|
977
|
-
function invalidThrowsEntryError(owner, item) {
|
|
978
|
-
const got = item === null ? "null" : Array.isArray(item) ? "array" : typeof item === "object" ? "object" : typeof item;
|
|
979
|
-
return new Error(
|
|
980
|
-
`Invalid throws entry for ${owner.kind} ${owner.id}: expected error id string or Error helper, got ${got}`
|
|
981
|
-
);
|
|
982
|
-
}
|
|
983
|
-
__name(invalidThrowsEntryError, "invalidThrowsEntryError");
|
|
984
|
-
function toErrorIdList(owner, list) {
|
|
985
|
-
const ids = [];
|
|
986
|
-
const seen = /* @__PURE__ */ new Set();
|
|
987
|
-
for (const item of list) {
|
|
988
|
-
let id2;
|
|
989
|
-
if (typeof item === "string") {
|
|
990
|
-
if (item.trim().length === 0) {
|
|
991
|
-
throw invalidThrowsEntryError(owner, item);
|
|
992
|
-
}
|
|
993
|
-
id2 = item;
|
|
994
|
-
} else if (isError(item)) {
|
|
995
|
-
id2 = item.id;
|
|
996
|
-
if (typeof id2 !== "string" || id2.trim().length === 0) {
|
|
997
|
-
throw invalidThrowsEntryError(owner, item);
|
|
998
|
-
}
|
|
999
|
-
} else {
|
|
1000
|
-
throw invalidThrowsEntryError(owner, item);
|
|
1001
|
-
}
|
|
1002
|
-
if (seen.has(id2)) continue;
|
|
1003
|
-
seen.add(id2);
|
|
1004
|
-
ids.push(id2);
|
|
994
|
+
// src/errors.ts
|
|
995
|
+
var duplicateRegistrationError = error("runner.errors.duplicateRegistration").format(
|
|
996
|
+
({ type, id: id2 }) => `${type} "${id2.toString()}" already registered. You might have used the same 'id' in two different components or you may have registered the same element twice.`
|
|
997
|
+
).build();
|
|
998
|
+
var dependencyNotFoundError = error("runner.errors.dependencyNotFound").format(
|
|
999
|
+
({ key }) => `Dependency ${key.toString()} not found. Did you forget to register it through a resource?`
|
|
1000
|
+
).build();
|
|
1001
|
+
var unknownItemTypeError = error(
|
|
1002
|
+
"runner.errors.unknownItemType"
|
|
1003
|
+
).format(
|
|
1004
|
+
({ item }) => `Unknown item type: ${String(
|
|
1005
|
+
item
|
|
1006
|
+
)}. Please ensure you are not using different versions of '@bluelibs/runner'`
|
|
1007
|
+
).build();
|
|
1008
|
+
var contextError = error(
|
|
1009
|
+
"runner.errors.context"
|
|
1010
|
+
).format(({ details }) => details ?? "Context error").build();
|
|
1011
|
+
var circularDependenciesError = error("runner.errors.circularDependencies").format(({ cycles }) => {
|
|
1012
|
+
const cycleDetails = cycles.map((cycle) => ` \u2022 ${cycle}`).join("\n");
|
|
1013
|
+
const hasMiddleware = cycles.some((cycle) => cycle.includes("middleware"));
|
|
1014
|
+
let guidance = "\n\nTo resolve circular dependencies:";
|
|
1015
|
+
guidance += "\n \u2022 Consider refactoring to reduce coupling between components";
|
|
1016
|
+
guidance += "\n \u2022 Extract shared dependencies into separate resources";
|
|
1017
|
+
if (hasMiddleware) {
|
|
1018
|
+
guidance += "\n \u2022 For middleware: you can filter out tasks/resources using everywhere(fn)";
|
|
1019
|
+
guidance += "\n \u2022 Consider using events for communication instead of direct dependencies";
|
|
1005
1020
|
}
|
|
1006
|
-
return
|
|
1007
|
-
}
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
}
|
|
1013
|
-
|
|
1021
|
+
return `Circular dependencies detected:
|
|
1022
|
+
${cycleDetails}${guidance}`;
|
|
1023
|
+
}).build();
|
|
1024
|
+
var eventNotFoundError = error(
|
|
1025
|
+
"runner.errors.eventNotFound"
|
|
1026
|
+
).format(
|
|
1027
|
+
({ id: id2 }) => `Event "${id2.toString()}" not found. Did you forget to register it?`
|
|
1028
|
+
).build();
|
|
1029
|
+
var resourceNotFoundError = error(
|
|
1030
|
+
"runner.errors.resourceNotFound"
|
|
1031
|
+
).format(
|
|
1032
|
+
({ id: id2 }) => `Resource "${id2.toString()}" not found. Did you forget to register it or are you using the correct id?`
|
|
1033
|
+
).build();
|
|
1034
|
+
var middlewareNotRegisteredError = error("runner.errors.middlewareNotRegistered").format(
|
|
1035
|
+
({ type, source, middlewareId }) => `Middleware inside ${type} "${source}" depends on "${middlewareId}" but it's not registered. Did you forget to register it?`
|
|
1036
|
+
).build();
|
|
1037
|
+
var tagNotFoundError = error(
|
|
1038
|
+
"runner.errors.tagNotFound"
|
|
1039
|
+
).format(
|
|
1040
|
+
({ id: id2 }) => `Tag "${id2}" not registered. Did you forget to register it inside a resource?`
|
|
1041
|
+
).build();
|
|
1042
|
+
var lockedError = error(
|
|
1043
|
+
"runner.errors.locked"
|
|
1044
|
+
).format(
|
|
1045
|
+
({ what }) => `Cannot modify the ${what.toString()} when it is locked.`
|
|
1046
|
+
).build();
|
|
1047
|
+
var storeAlreadyInitializedError = error(
|
|
1048
|
+
"runner.errors.storeAlreadyInitialized"
|
|
1049
|
+
).format(() => "Store already initialized. Cannot reinitialize.").build();
|
|
1050
|
+
var validationError = error("runner.errors.validation").format(({ subject, id: id2, originalError }) => {
|
|
1051
|
+
const errorMessage = originalError instanceof Error ? originalError.message : String(originalError);
|
|
1052
|
+
return `${subject} validation failed for ${id2.toString()}: ${errorMessage}`;
|
|
1053
|
+
}).build();
|
|
1054
|
+
var eventCycleError = error("runner.errors.eventCycle").format(({ path }) => {
|
|
1055
|
+
const chain = path.map((p) => `${p.id}\u2190${p.source}`).join(" -> ");
|
|
1056
|
+
return `Event emission cycle detected:
|
|
1057
|
+
${chain}
|
|
1014
1058
|
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
const
|
|
1019
|
-
return
|
|
1020
|
-
|
|
1021
|
-
[symbolFilePath]: filePath,
|
|
1022
|
-
id: id2,
|
|
1023
|
-
dependencies: taskConfig.dependencies || {},
|
|
1024
|
-
middleware: taskConfig.middleware || [],
|
|
1025
|
-
run: taskConfig.run,
|
|
1026
|
-
inputSchema: taskConfig.inputSchema,
|
|
1027
|
-
resultSchema: taskConfig.resultSchema,
|
|
1028
|
-
meta: taskConfig.meta || {},
|
|
1029
|
-
tags: taskConfig.tags || [],
|
|
1030
|
-
throws: normalizeThrows({ kind: "task", id: id2 }, taskConfig.throws),
|
|
1031
|
-
// autorun,
|
|
1032
|
-
optional() {
|
|
1033
|
-
return {
|
|
1034
|
-
inner: this,
|
|
1035
|
-
[symbolOptionalDependency]: true
|
|
1036
|
-
};
|
|
1037
|
-
}
|
|
1038
|
-
};
|
|
1039
|
-
}
|
|
1040
|
-
__name(defineTask, "defineTask");
|
|
1041
|
-
defineTask.phantom = (taskConfig) => {
|
|
1042
|
-
const taskDef = defineTask({
|
|
1043
|
-
...taskConfig,
|
|
1044
|
-
run: /* @__PURE__ */ __name(async (_input) => {
|
|
1045
|
-
return void 0;
|
|
1046
|
-
}, "run")
|
|
1047
|
-
});
|
|
1048
|
-
taskDef[symbolPhantomTask] = true;
|
|
1049
|
-
return taskDef;
|
|
1050
|
-
};
|
|
1059
|
+
Break the cycle by changing hook logic (avoid mutual emits) or gate with conditions/tags.`;
|
|
1060
|
+
}).build();
|
|
1061
|
+
var eventEmissionCycleError = error("runner.errors.eventEmissionCycle").format(({ cycles }) => {
|
|
1062
|
+
const list = cycles.map((c) => ` \u2022 ${c}`).join("\n");
|
|
1063
|
+
return `Event emission cycles detected between hooks and events:
|
|
1064
|
+
${list}
|
|
1051
1065
|
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
+
This was detected at compile time (dry-run). Break the cycle by avoiding mutual emits between hooks or scoping hooks using tags.`;
|
|
1067
|
+
}).build();
|
|
1068
|
+
var platformUnsupportedFunctionError = error("runner.errors.platformUnsupportedFunction").format(
|
|
1069
|
+
({ functionName }) => `Platform function not supported in this environment: ${functionName}. Detected platform: ${detectEnvironment()}.`
|
|
1070
|
+
).build();
|
|
1071
|
+
var cancellationError = error(
|
|
1072
|
+
"runner.errors.cancellation"
|
|
1073
|
+
).format(({ reason }) => reason || "Operation cancelled").build();
|
|
1074
|
+
var tunnelOwnershipConflictError = error("runner.errors.tunnelOwnershipConflict").format(
|
|
1075
|
+
({ taskId, currentOwnerId, attemptedOwnerId }) => `Task "${taskId}" is already tunneled by resource "${currentOwnerId}". Resource "${attemptedOwnerId}" cannot tunnel it again. Ensure each task is owned by a single tunnel client.`
|
|
1076
|
+
).build();
|
|
1077
|
+
var phantomTaskNotRoutedError = error("runner.errors.phantomTaskNotRouted").format(
|
|
1078
|
+
({ taskId }) => `Phantom task "${taskId}" is not routed through any tunnel. Ensure a tunnel client selects this task id (or avoid calling the phantom task directly).`
|
|
1079
|
+
).build();
|
|
1080
|
+
var taskNotRegisteredError = error("runner.errors.taskNotRegistered").format(
|
|
1081
|
+
({ taskId }) => `Task "${taskId}" is not registered in the Store. This is an internal error\u2014ensure the task is registered before execution.`
|
|
1082
|
+
).build();
|
|
1083
|
+
var builderIncompleteError = error("runner.errors.builderIncomplete").format(({ type, builderId, missingFields }) => {
|
|
1084
|
+
const typeLabel = type === "hook" ? "Hook" : type === "task-middleware" ? "Task middleware" : "Resource middleware";
|
|
1085
|
+
return `${typeLabel} "${builderId}" is incomplete. Missing required: ${missingFields.join(", ")}. Call ${missingFields.map((f) => `.${f}()`).join(" and ")} before .build().`;
|
|
1086
|
+
}).build();
|
|
1087
|
+
function isCancellationError(err) {
|
|
1088
|
+
return cancellationError.is(err);
|
|
1066
1089
|
}
|
|
1067
|
-
__name(
|
|
1090
|
+
__name(isCancellationError, "isCancellationError");
|
|
1068
1091
|
|
|
1069
1092
|
// src/definers/resourceFork.ts
|
|
1070
1093
|
function resolveReId(forkId, options) {
|
|
@@ -1439,7 +1462,7 @@ function defineOverride(base, patch) {
|
|
|
1439
1462
|
...patch,
|
|
1440
1463
|
id: base.id
|
|
1441
1464
|
};
|
|
1442
|
-
if (base.on !== void 0) {
|
|
1465
|
+
if ("on" in base && base.on !== void 0) {
|
|
1443
1466
|
overridden.on = base.on;
|
|
1444
1467
|
}
|
|
1445
1468
|
return overridden;
|
|
@@ -1559,6 +1582,309 @@ var SymbolPolicy = /* @__PURE__ */ ((SymbolPolicy2) => {
|
|
|
1559
1582
|
SymbolPolicy2["Disabled"] = "Disabled";
|
|
1560
1583
|
return SymbolPolicy2;
|
|
1561
1584
|
})(SymbolPolicy || {});
|
|
1585
|
+
var SymbolPolicyErrorMessage = /* @__PURE__ */ ((SymbolPolicyErrorMessage2) => {
|
|
1586
|
+
SymbolPolicyErrorMessage2["GlobalSymbolsNotAllowed"] = "Global symbols are not allowed";
|
|
1587
|
+
SymbolPolicyErrorMessage2["SymbolsNotAllowed"] = "Symbols are not allowed";
|
|
1588
|
+
SymbolPolicyErrorMessage2["UnsupportedSymbolPolicy"] = "Unsupported symbol policy";
|
|
1589
|
+
return SymbolPolicyErrorMessage2;
|
|
1590
|
+
})(SymbolPolicyErrorMessage || {});
|
|
1591
|
+
|
|
1592
|
+
// src/serializer/binary-builtins.ts
|
|
1593
|
+
var INVALID_PAYLOAD_MESSAGE_PREFIX = "Invalid";
|
|
1594
|
+
var typedArrayTypeIds = [
|
|
1595
|
+
"Int8Array",
|
|
1596
|
+
"Uint8Array",
|
|
1597
|
+
"Uint8ClampedArray",
|
|
1598
|
+
"Int16Array",
|
|
1599
|
+
"Uint16Array",
|
|
1600
|
+
"Int32Array",
|
|
1601
|
+
"Uint32Array",
|
|
1602
|
+
"Float32Array",
|
|
1603
|
+
"Float64Array",
|
|
1604
|
+
"BigInt64Array",
|
|
1605
|
+
"BigUint64Array"
|
|
1606
|
+
];
|
|
1607
|
+
var getTypedArrayConstructor = /* @__PURE__ */ __name((typeId) => {
|
|
1608
|
+
const value = globalThis[typeId];
|
|
1609
|
+
if (typeof value !== "function") {
|
|
1610
|
+
return null;
|
|
1611
|
+
}
|
|
1612
|
+
return value;
|
|
1613
|
+
}, "getTypedArrayConstructor");
|
|
1614
|
+
var getRuntimeBufferConstructor = /* @__PURE__ */ __name(() => {
|
|
1615
|
+
const value = globalThis.Buffer;
|
|
1616
|
+
if (typeof value !== "function") {
|
|
1617
|
+
return null;
|
|
1618
|
+
}
|
|
1619
|
+
const valueRecord = value;
|
|
1620
|
+
if (typeof valueRecord.from !== "function" || typeof valueRecord.isBuffer !== "function") {
|
|
1621
|
+
return null;
|
|
1622
|
+
}
|
|
1623
|
+
return value;
|
|
1624
|
+
}, "getRuntimeBufferConstructor");
|
|
1625
|
+
var isNodeBuffer = /* @__PURE__ */ __name((value) => {
|
|
1626
|
+
const runtimeBufferConstructor = getRuntimeBufferConstructor();
|
|
1627
|
+
if (!runtimeBufferConstructor) {
|
|
1628
|
+
return false;
|
|
1629
|
+
}
|
|
1630
|
+
return runtimeBufferConstructor.isBuffer(value);
|
|
1631
|
+
}, "isNodeBuffer");
|
|
1632
|
+
var assertBytePayload = /* @__PURE__ */ __name((payload, typeId) => {
|
|
1633
|
+
if (!Array.isArray(payload)) {
|
|
1634
|
+
throw new Error(`${INVALID_PAYLOAD_MESSAGE_PREFIX} ${typeId} payload`);
|
|
1635
|
+
}
|
|
1636
|
+
const bytes = new Array(payload.length);
|
|
1637
|
+
for (let index = 0; index < payload.length; index += 1) {
|
|
1638
|
+
const byteValue = payload[index];
|
|
1639
|
+
if (typeof byteValue !== "number" || !Number.isInteger(byteValue) || byteValue < 0 || byteValue > 255) {
|
|
1640
|
+
throw new Error(`${INVALID_PAYLOAD_MESSAGE_PREFIX} ${typeId} payload`);
|
|
1641
|
+
}
|
|
1642
|
+
bytes[index] = byteValue;
|
|
1643
|
+
}
|
|
1644
|
+
return bytes;
|
|
1645
|
+
}, "assertBytePayload");
|
|
1646
|
+
var toBytePayload = /* @__PURE__ */ __name((value) => Array.from(new Uint8Array(value.buffer, value.byteOffset, value.byteLength)), "toBytePayload");
|
|
1647
|
+
var bytesToArrayBuffer = /* @__PURE__ */ __name((payload, typeId) => {
|
|
1648
|
+
const bytes = assertBytePayload(payload, typeId);
|
|
1649
|
+
return Uint8Array.from(bytes).buffer;
|
|
1650
|
+
}, "bytesToArrayBuffer");
|
|
1651
|
+
var deserializeTypedArray = /* @__PURE__ */ __name((typeId, payload) => {
|
|
1652
|
+
const typedArrayConstructor = getTypedArrayConstructor(typeId);
|
|
1653
|
+
if (!typedArrayConstructor) {
|
|
1654
|
+
throw new Error(`${typeId} is not available in this runtime`);
|
|
1655
|
+
}
|
|
1656
|
+
const bytes = assertBytePayload(payload, typeId);
|
|
1657
|
+
const bytesPerElement = typedArrayConstructor.BYTES_PER_ELEMENT;
|
|
1658
|
+
if (bytes.length % bytesPerElement !== 0) {
|
|
1659
|
+
throw new Error(`${INVALID_PAYLOAD_MESSAGE_PREFIX} ${typeId} payload`);
|
|
1660
|
+
}
|
|
1661
|
+
const arrayBuffer = Uint8Array.from(bytes).buffer;
|
|
1662
|
+
return new typedArrayConstructor(arrayBuffer);
|
|
1663
|
+
}, "deserializeTypedArray");
|
|
1664
|
+
var createTypedArrayType = /* @__PURE__ */ __name((typeId) => ({
|
|
1665
|
+
id: typeId,
|
|
1666
|
+
is: /* @__PURE__ */ __name((value) => {
|
|
1667
|
+
const typedArrayConstructor = getTypedArrayConstructor(typeId);
|
|
1668
|
+
if (!typedArrayConstructor) {
|
|
1669
|
+
return false;
|
|
1670
|
+
}
|
|
1671
|
+
if (!(value instanceof typedArrayConstructor)) {
|
|
1672
|
+
return false;
|
|
1673
|
+
}
|
|
1674
|
+
if (typeId === "Uint8Array" && isNodeBuffer(value)) {
|
|
1675
|
+
return false;
|
|
1676
|
+
}
|
|
1677
|
+
return true;
|
|
1678
|
+
}, "is"),
|
|
1679
|
+
serialize: /* @__PURE__ */ __name((value) => toBytePayload(value), "serialize"),
|
|
1680
|
+
deserialize: /* @__PURE__ */ __name((payload) => deserializeTypedArray(typeId, payload), "deserialize"),
|
|
1681
|
+
strategy: "value"
|
|
1682
|
+
}), "createTypedArrayType");
|
|
1683
|
+
var ArrayBufferType = {
|
|
1684
|
+
id: "ArrayBuffer",
|
|
1685
|
+
is: /* @__PURE__ */ __name((value) => value instanceof ArrayBuffer, "is"),
|
|
1686
|
+
serialize: /* @__PURE__ */ __name((value) => Array.from(new Uint8Array(value)), "serialize"),
|
|
1687
|
+
deserialize: /* @__PURE__ */ __name((payload) => bytesToArrayBuffer(payload, "ArrayBuffer"), "deserialize"),
|
|
1688
|
+
strategy: "value"
|
|
1689
|
+
};
|
|
1690
|
+
var DataViewType = {
|
|
1691
|
+
id: "DataView",
|
|
1692
|
+
is: /* @__PURE__ */ __name((value) => value instanceof DataView, "is"),
|
|
1693
|
+
serialize: /* @__PURE__ */ __name((value) => toBytePayload(value), "serialize"),
|
|
1694
|
+
deserialize: /* @__PURE__ */ __name((payload) => new DataView(bytesToArrayBuffer(payload, "DataView")), "deserialize"),
|
|
1695
|
+
strategy: "value"
|
|
1696
|
+
};
|
|
1697
|
+
var BufferType = {
|
|
1698
|
+
id: "Buffer",
|
|
1699
|
+
is: /* @__PURE__ */ __name((value) => isNodeBuffer(value), "is"),
|
|
1700
|
+
serialize: /* @__PURE__ */ __name((value) => toBytePayload(value), "serialize"),
|
|
1701
|
+
deserialize: /* @__PURE__ */ __name((payload) => {
|
|
1702
|
+
const bytes = assertBytePayload(payload, "Buffer");
|
|
1703
|
+
const runtimeBufferConstructor = getRuntimeBufferConstructor();
|
|
1704
|
+
if (runtimeBufferConstructor) {
|
|
1705
|
+
return runtimeBufferConstructor.from(bytes);
|
|
1706
|
+
}
|
|
1707
|
+
return Uint8Array.from(bytes);
|
|
1708
|
+
}, "deserialize"),
|
|
1709
|
+
strategy: "value"
|
|
1710
|
+
};
|
|
1711
|
+
var typedArrayTypes = typedArrayTypeIds.map(
|
|
1712
|
+
(typeId) => createTypedArrayType(typeId)
|
|
1713
|
+
);
|
|
1714
|
+
var binaryBuiltInTypes = [
|
|
1715
|
+
ArrayBufferType,
|
|
1716
|
+
DataViewType,
|
|
1717
|
+
BufferType,
|
|
1718
|
+
...typedArrayTypes
|
|
1719
|
+
];
|
|
1720
|
+
|
|
1721
|
+
// src/serializer/error-url-builtins.ts
|
|
1722
|
+
var hasOwn = Object.prototype.hasOwnProperty;
|
|
1723
|
+
var errorReservedPropertyNames = /* @__PURE__ */ new Set([
|
|
1724
|
+
"name",
|
|
1725
|
+
"message",
|
|
1726
|
+
"stack",
|
|
1727
|
+
"cause"
|
|
1728
|
+
]);
|
|
1729
|
+
var isRecord = /* @__PURE__ */ __name((value) => typeof value === "object" && value !== null && !Array.isArray(value), "isRecord");
|
|
1730
|
+
var isUnsafePropertyName = /* @__PURE__ */ __name((propertyName) => propertyName === "__proto__" || propertyName === "constructor" || propertyName === "prototype", "isUnsafePropertyName");
|
|
1731
|
+
var collectErrorCustomFields = /* @__PURE__ */ __name((error2) => {
|
|
1732
|
+
const customFields = {};
|
|
1733
|
+
for (const propertyName of Object.getOwnPropertyNames(error2)) {
|
|
1734
|
+
if (errorReservedPropertyNames.has(propertyName)) {
|
|
1735
|
+
continue;
|
|
1736
|
+
}
|
|
1737
|
+
if (isUnsafePropertyName(propertyName)) {
|
|
1738
|
+
continue;
|
|
1739
|
+
}
|
|
1740
|
+
const descriptor = Object.getOwnPropertyDescriptor(error2, propertyName);
|
|
1741
|
+
if (!descriptor || !("value" in descriptor)) {
|
|
1742
|
+
continue;
|
|
1743
|
+
}
|
|
1744
|
+
customFields[propertyName] = descriptor.value;
|
|
1745
|
+
}
|
|
1746
|
+
return customFields;
|
|
1747
|
+
}, "collectErrorCustomFields");
|
|
1748
|
+
var assertSerializedErrorPayload = /* @__PURE__ */ __name((value) => {
|
|
1749
|
+
if (!isRecord(value)) {
|
|
1750
|
+
throw new Error("Invalid Error payload");
|
|
1751
|
+
}
|
|
1752
|
+
const { name, message, stack, customFields } = value;
|
|
1753
|
+
if (typeof name !== "string" || typeof message !== "string") {
|
|
1754
|
+
throw new Error("Invalid Error payload");
|
|
1755
|
+
}
|
|
1756
|
+
if (stack !== void 0 && typeof stack !== "string") {
|
|
1757
|
+
throw new Error("Invalid Error payload");
|
|
1758
|
+
}
|
|
1759
|
+
if (customFields !== void 0 && !isRecord(customFields)) {
|
|
1760
|
+
throw new Error("Invalid Error payload");
|
|
1761
|
+
}
|
|
1762
|
+
const normalizedCustomFields = {};
|
|
1763
|
+
const customFieldEntries = Object.entries(customFields ?? {});
|
|
1764
|
+
for (const [propertyName, propertyValue] of customFieldEntries) {
|
|
1765
|
+
if (isUnsafePropertyName(propertyName)) {
|
|
1766
|
+
continue;
|
|
1767
|
+
}
|
|
1768
|
+
normalizedCustomFields[propertyName] = propertyValue;
|
|
1769
|
+
}
|
|
1770
|
+
return {
|
|
1771
|
+
name,
|
|
1772
|
+
message,
|
|
1773
|
+
stack,
|
|
1774
|
+
hasCause: hasOwn.call(value, "cause"),
|
|
1775
|
+
cause: value.cause,
|
|
1776
|
+
customFields: normalizedCustomFields
|
|
1777
|
+
};
|
|
1778
|
+
}, "assertSerializedErrorPayload");
|
|
1779
|
+
var getUrlConstructor = /* @__PURE__ */ __name(() => {
|
|
1780
|
+
const value = globalThis.URL;
|
|
1781
|
+
if (typeof value !== "function") {
|
|
1782
|
+
return null;
|
|
1783
|
+
}
|
|
1784
|
+
return value;
|
|
1785
|
+
}, "getUrlConstructor");
|
|
1786
|
+
var getUrlSearchParamsConstructor = /* @__PURE__ */ __name(() => {
|
|
1787
|
+
const value = globalThis.URLSearchParams;
|
|
1788
|
+
if (typeof value !== "function") {
|
|
1789
|
+
return null;
|
|
1790
|
+
}
|
|
1791
|
+
return value;
|
|
1792
|
+
}, "getUrlSearchParamsConstructor");
|
|
1793
|
+
var ErrorType = {
|
|
1794
|
+
id: "Error",
|
|
1795
|
+
is: /* @__PURE__ */ __name((value) => value instanceof Error, "is"),
|
|
1796
|
+
serialize: /* @__PURE__ */ __name((error2) => {
|
|
1797
|
+
const serializedErrorPayload = {
|
|
1798
|
+
name: error2.name,
|
|
1799
|
+
message: error2.message,
|
|
1800
|
+
customFields: collectErrorCustomFields(error2)
|
|
1801
|
+
};
|
|
1802
|
+
if (typeof error2.stack === "string") {
|
|
1803
|
+
serializedErrorPayload.stack = error2.stack;
|
|
1804
|
+
}
|
|
1805
|
+
if (hasOwn.call(error2, "cause")) {
|
|
1806
|
+
serializedErrorPayload.cause = error2.cause;
|
|
1807
|
+
}
|
|
1808
|
+
return serializedErrorPayload;
|
|
1809
|
+
}, "serialize"),
|
|
1810
|
+
deserialize: /* @__PURE__ */ __name((payload) => {
|
|
1811
|
+
const { name, message, stack, hasCause, cause, customFields } = assertSerializedErrorPayload(payload);
|
|
1812
|
+
const restoredError = new Error(message);
|
|
1813
|
+
restoredError.name = name;
|
|
1814
|
+
if (stack !== void 0) {
|
|
1815
|
+
Object.defineProperty(restoredError, "stack", {
|
|
1816
|
+
value: stack,
|
|
1817
|
+
writable: true,
|
|
1818
|
+
configurable: true,
|
|
1819
|
+
enumerable: false
|
|
1820
|
+
});
|
|
1821
|
+
}
|
|
1822
|
+
if (hasCause) {
|
|
1823
|
+
Object.defineProperty(restoredError, "cause", {
|
|
1824
|
+
value: cause,
|
|
1825
|
+
writable: true,
|
|
1826
|
+
configurable: true,
|
|
1827
|
+
enumerable: false
|
|
1828
|
+
});
|
|
1829
|
+
}
|
|
1830
|
+
for (const [propertyName, propertyValue] of Object.entries(customFields)) {
|
|
1831
|
+
if (errorReservedPropertyNames.has(propertyName)) {
|
|
1832
|
+
continue;
|
|
1833
|
+
}
|
|
1834
|
+
restoredError[propertyName] = propertyValue;
|
|
1835
|
+
}
|
|
1836
|
+
return restoredError;
|
|
1837
|
+
}, "deserialize")
|
|
1838
|
+
};
|
|
1839
|
+
var URLType = {
|
|
1840
|
+
id: "URL",
|
|
1841
|
+
is: /* @__PURE__ */ __name((value) => {
|
|
1842
|
+
const runtimeUrlConstructor = getUrlConstructor();
|
|
1843
|
+
if (!runtimeUrlConstructor) {
|
|
1844
|
+
return false;
|
|
1845
|
+
}
|
|
1846
|
+
return value instanceof runtimeUrlConstructor;
|
|
1847
|
+
}, "is"),
|
|
1848
|
+
serialize: /* @__PURE__ */ __name((value) => value.href, "serialize"),
|
|
1849
|
+
deserialize: /* @__PURE__ */ __name((payload) => {
|
|
1850
|
+
if (typeof payload !== "string") {
|
|
1851
|
+
throw new Error("Invalid URL payload");
|
|
1852
|
+
}
|
|
1853
|
+
const runtimeUrlConstructor = getUrlConstructor();
|
|
1854
|
+
if (!runtimeUrlConstructor) {
|
|
1855
|
+
throw new Error("URL is not available in this runtime");
|
|
1856
|
+
}
|
|
1857
|
+
return new runtimeUrlConstructor(payload);
|
|
1858
|
+
}, "deserialize"),
|
|
1859
|
+
strategy: "value"
|
|
1860
|
+
};
|
|
1861
|
+
var URLSearchParamsType = {
|
|
1862
|
+
id: "URLSearchParams",
|
|
1863
|
+
is: /* @__PURE__ */ __name((value) => {
|
|
1864
|
+
const runtimeUrlSearchParamsConstructor = getUrlSearchParamsConstructor();
|
|
1865
|
+
if (!runtimeUrlSearchParamsConstructor) {
|
|
1866
|
+
return false;
|
|
1867
|
+
}
|
|
1868
|
+
return value instanceof runtimeUrlSearchParamsConstructor;
|
|
1869
|
+
}, "is"),
|
|
1870
|
+
serialize: /* @__PURE__ */ __name((value) => value.toString(), "serialize"),
|
|
1871
|
+
deserialize: /* @__PURE__ */ __name((payload) => {
|
|
1872
|
+
if (typeof payload !== "string") {
|
|
1873
|
+
throw new Error("Invalid URLSearchParams payload");
|
|
1874
|
+
}
|
|
1875
|
+
const runtimeUrlSearchParamsConstructor = getUrlSearchParamsConstructor();
|
|
1876
|
+
if (!runtimeUrlSearchParamsConstructor) {
|
|
1877
|
+
throw new Error("URLSearchParams is not available in this runtime");
|
|
1878
|
+
}
|
|
1879
|
+
return new runtimeUrlSearchParamsConstructor(payload);
|
|
1880
|
+
}, "deserialize"),
|
|
1881
|
+
strategy: "value"
|
|
1882
|
+
};
|
|
1883
|
+
var errorAndUrlBuiltInTypes = [
|
|
1884
|
+
ErrorType,
|
|
1885
|
+
URLType,
|
|
1886
|
+
URLSearchParamsType
|
|
1887
|
+
];
|
|
1562
1888
|
|
|
1563
1889
|
// src/serializer/special-values.ts
|
|
1564
1890
|
var serializeUndefined = /* @__PURE__ */ __name(() => ({
|
|
@@ -1764,7 +2090,9 @@ var builtInTypes = [
|
|
|
1764
2090
|
UndefinedType,
|
|
1765
2091
|
NonFiniteNumberType,
|
|
1766
2092
|
BigIntType,
|
|
1767
|
-
SymbolType
|
|
2093
|
+
SymbolType,
|
|
2094
|
+
...errorAndUrlBuiltInTypes,
|
|
2095
|
+
...binaryBuiltInTypes
|
|
1768
2096
|
];
|
|
1769
2097
|
|
|
1770
2098
|
// src/serializer/type-registry.ts
|
|
@@ -2255,7 +2583,7 @@ var serializeTreeValue = /* @__PURE__ */ __name((value, context, depth, options)
|
|
|
2255
2583
|
}, "serializeTreeValue");
|
|
2256
2584
|
|
|
2257
2585
|
// src/serializer/deserializer.ts
|
|
2258
|
-
var
|
|
2586
|
+
var hasOwn2 = Object.prototype.hasOwnProperty;
|
|
2259
2587
|
var copyOwnProperties = /* @__PURE__ */ __name((target, source, unsafeKeys) => {
|
|
2260
2588
|
const descriptors = Object.getOwnPropertyDescriptors(source);
|
|
2261
2589
|
for (const key of Object.keys(descriptors)) {
|
|
@@ -2336,7 +2664,7 @@ var deserializeValue = /* @__PURE__ */ __name((value, context, depth, options) =
|
|
|
2336
2664
|
const obj = {};
|
|
2337
2665
|
const source = value;
|
|
2338
2666
|
for (const key in source) {
|
|
2339
|
-
if (!
|
|
2667
|
+
if (!hasOwn2.call(source, key)) {
|
|
2340
2668
|
continue;
|
|
2341
2669
|
}
|
|
2342
2670
|
if (isUnsafeKey(key, options.unsafeKeys)) {
|
|
@@ -2381,7 +2709,7 @@ var resolveReference = /* @__PURE__ */ __name((id2, context, depth, options) =>
|
|
|
2381
2709
|
context.resolved.set(id2, target);
|
|
2382
2710
|
const source = node.value;
|
|
2383
2711
|
for (const key in source) {
|
|
2384
|
-
if (!
|
|
2712
|
+
if (!hasOwn2.call(source, key)) {
|
|
2385
2713
|
continue;
|
|
2386
2714
|
}
|
|
2387
2715
|
if (isUnsafeKey(key, options.unsafeKeys)) {
|
|
@@ -2453,7 +2781,7 @@ var mergePlaceholder = /* @__PURE__ */ __name((placeholder, result, unsafeKeys)
|
|
|
2453
2781
|
const target = placeholder;
|
|
2454
2782
|
const source = result;
|
|
2455
2783
|
for (const key in source) {
|
|
2456
|
-
if (!
|
|
2784
|
+
if (!hasOwn2.call(source, key)) {
|
|
2457
2785
|
continue;
|
|
2458
2786
|
}
|
|
2459
2787
|
if (isUnsafeKey(key, unsafeKeys)) {
|
|
@@ -2486,7 +2814,7 @@ var deserializeLegacy = /* @__PURE__ */ __name((value, depth, options) => {
|
|
|
2486
2814
|
const obj = {};
|
|
2487
2815
|
const source = value;
|
|
2488
2816
|
for (const key in source) {
|
|
2489
|
-
if (!
|
|
2817
|
+
if (!hasOwn2.call(source, key)) {
|
|
2490
2818
|
continue;
|
|
2491
2819
|
}
|
|
2492
2820
|
if (isUnsafeKey(key, options.unsafeKeys)) {
|
|
@@ -2497,6 +2825,26 @@ var deserializeLegacy = /* @__PURE__ */ __name((value, depth, options) => {
|
|
|
2497
2825
|
return obj;
|
|
2498
2826
|
}, "deserializeLegacy");
|
|
2499
2827
|
|
|
2828
|
+
// src/serializer/option-normalizers.ts
|
|
2829
|
+
var normalizeMaxDepth = /* @__PURE__ */ __name((value, fallback) => {
|
|
2830
|
+
if (value === Number.POSITIVE_INFINITY) {
|
|
2831
|
+
return Number.POSITIVE_INFINITY;
|
|
2832
|
+
}
|
|
2833
|
+
if (typeof value === "number" && Number.isFinite(value) && value >= 0) {
|
|
2834
|
+
return Math.floor(value);
|
|
2835
|
+
}
|
|
2836
|
+
return fallback;
|
|
2837
|
+
}, "normalizeMaxDepth");
|
|
2838
|
+
var normalizeMaxRegExpPatternLength = /* @__PURE__ */ __name((value, fallback) => {
|
|
2839
|
+
if (value === Number.POSITIVE_INFINITY) {
|
|
2840
|
+
return Number.POSITIVE_INFINITY;
|
|
2841
|
+
}
|
|
2842
|
+
if (typeof value === "number" && Number.isFinite(value) && value > 0) {
|
|
2843
|
+
return Math.floor(value);
|
|
2844
|
+
}
|
|
2845
|
+
return fallback;
|
|
2846
|
+
}, "normalizeMaxRegExpPatternLength");
|
|
2847
|
+
|
|
2500
2848
|
// src/serializer/Serializer.ts
|
|
2501
2849
|
var GRAPH_VERSION = 1;
|
|
2502
2850
|
var DEFAULT_MAX_DEPTH = 1e3;
|
|
@@ -2532,10 +2880,11 @@ var Serializer = class {
|
|
|
2532
2880
|
return check(pattern, index);
|
|
2533
2881
|
}, "isBoundedQuantifier");
|
|
2534
2882
|
this.indent = options.pretty ? 2 : void 0;
|
|
2535
|
-
|
|
2536
|
-
this.
|
|
2537
|
-
|
|
2538
|
-
|
|
2883
|
+
this.maxDepth = normalizeMaxDepth(options.maxDepth, DEFAULT_MAX_DEPTH);
|
|
2884
|
+
this.maxRegExpPatternLength = normalizeMaxRegExpPatternLength(
|
|
2885
|
+
options.maxRegExpPatternLength,
|
|
2886
|
+
DEFAULT_MAX_REGEXP_PATTERN_LENGTH
|
|
2887
|
+
);
|
|
2539
2888
|
this.allowUnsafeRegExp = options.allowUnsafeRegExp ?? false;
|
|
2540
2889
|
this.unsafeKeys = DEFAULT_UNSAFE_KEYS;
|
|
2541
2890
|
this.typeRegistry = new TypeRegistry({
|
|
@@ -2670,13 +3019,6 @@ var Serializer = class {
|
|
|
2670
3019
|
}
|
|
2671
3020
|
};
|
|
2672
3021
|
|
|
2673
|
-
// src/serializer/index.ts
|
|
2674
|
-
var defaultSerializer = new Serializer();
|
|
2675
|
-
function getDefaultSerializer() {
|
|
2676
|
-
return defaultSerializer;
|
|
2677
|
-
}
|
|
2678
|
-
__name(getDefaultSerializer, "getDefaultSerializer");
|
|
2679
|
-
|
|
2680
3022
|
// src/definers/defineAsyncContext.ts
|
|
2681
3023
|
var platform = getPlatform();
|
|
2682
3024
|
var storage = platform.createAsyncLocalStorage();
|
|
@@ -2684,13 +3026,14 @@ function getCurrentStore() {
|
|
|
2684
3026
|
return storage.getStore();
|
|
2685
3027
|
}
|
|
2686
3028
|
__name(getCurrentStore, "getCurrentStore");
|
|
2687
|
-
function defineAsyncContext(def) {
|
|
3029
|
+
function defineAsyncContext(def, filePath) {
|
|
2688
3030
|
if (!platform.hasAsyncLocalStorage()) {
|
|
2689
3031
|
platformUnsupportedFunctionError.throw({
|
|
2690
3032
|
functionName: `createAsyncLocalStorage: Cannot create context ${def.id}: no async storage available in this environment`
|
|
2691
3033
|
});
|
|
2692
3034
|
}
|
|
2693
3035
|
const ctxId = def.id;
|
|
3036
|
+
const resolvedFilePath = filePath ?? getCallerFile();
|
|
2694
3037
|
const use = /* @__PURE__ */ __name(() => {
|
|
2695
3038
|
const store2 = getCurrentStore();
|
|
2696
3039
|
if (!store2 || !store2.has(ctxId)) {
|
|
@@ -2707,10 +3050,11 @@ function defineAsyncContext(def) {
|
|
|
2707
3050
|
map.set(ctxId, value);
|
|
2708
3051
|
return storage.run(map, fn);
|
|
2709
3052
|
}, "provide");
|
|
2710
|
-
const serializer2 =
|
|
3053
|
+
const serializer2 = new Serializer();
|
|
2711
3054
|
const api = {
|
|
2712
3055
|
id: ctxId,
|
|
2713
3056
|
[symbolAsyncContext]: true,
|
|
3057
|
+
[symbolFilePath]: resolvedFilePath,
|
|
2714
3058
|
use,
|
|
2715
3059
|
/* istanbul ignore next */
|
|
2716
3060
|
provide(value, fn) {
|
|
@@ -3362,12 +3706,12 @@ var EventManager = class {
|
|
|
3362
3706
|
data,
|
|
3363
3707
|
timestamp: /* @__PURE__ */ new Date(),
|
|
3364
3708
|
source,
|
|
3365
|
-
meta: eventDefinition.meta || {},
|
|
3709
|
+
meta: { ...eventDefinition.meta || {} },
|
|
3366
3710
|
stopPropagation: /* @__PURE__ */ __name(() => {
|
|
3367
3711
|
propagationStopped = true;
|
|
3368
3712
|
}, "stopPropagation"),
|
|
3369
3713
|
isPropagationStopped: /* @__PURE__ */ __name(() => propagationStopped, "isPropagationStopped"),
|
|
3370
|
-
tags: eventDefinition.tags
|
|
3714
|
+
tags: [...eventDefinition.tags]
|
|
3371
3715
|
};
|
|
3372
3716
|
const baseEmit = /* @__PURE__ */ __name(async (eventToEmit) => {
|
|
3373
3717
|
if (allListeners.length === 0) {
|
|
@@ -3393,10 +3737,14 @@ var EventManager = class {
|
|
|
3393
3737
|
if (!interceptor) {
|
|
3394
3738
|
return baseEmit(eventToEmit);
|
|
3395
3739
|
}
|
|
3396
|
-
return interceptor(
|
|
3397
|
-
(
|
|
3398
|
-
|
|
3399
|
-
|
|
3740
|
+
return interceptor((nextEvent) => {
|
|
3741
|
+
this.assertPropagationMethodsUnchanged(
|
|
3742
|
+
eventDefinition.id,
|
|
3743
|
+
eventToEmit,
|
|
3744
|
+
nextEvent
|
|
3745
|
+
);
|
|
3746
|
+
return runInterceptor(index + 1, nextEvent);
|
|
3747
|
+
}, eventToEmit);
|
|
3400
3748
|
}, "runInterceptor");
|
|
3401
3749
|
await runInterceptor(0, event2);
|
|
3402
3750
|
return deepestEvent;
|
|
@@ -3507,21 +3855,24 @@ var EventManager = class {
|
|
|
3507
3855
|
lockedError.throw({ what: "EventManager" });
|
|
3508
3856
|
}
|
|
3509
3857
|
}
|
|
3510
|
-
|
|
3511
|
-
|
|
3512
|
-
|
|
3513
|
-
|
|
3514
|
-
|
|
3515
|
-
|
|
3516
|
-
|
|
3517
|
-
|
|
3858
|
+
assertPropagationMethodsUnchanged(eventId, currentEvent, nextEvent) {
|
|
3859
|
+
if (nextEvent.stopPropagation !== currentEvent.stopPropagation || nextEvent.isPropagationStopped !== currentEvent.isPropagationStopped) {
|
|
3860
|
+
validationError.throw({
|
|
3861
|
+
subject: "Event interceptor",
|
|
3862
|
+
id: eventId,
|
|
3863
|
+
originalError: new Error(
|
|
3864
|
+
"Interceptors cannot override stopPropagation/isPropagationStopped"
|
|
3865
|
+
)
|
|
3866
|
+
});
|
|
3867
|
+
}
|
|
3518
3868
|
}
|
|
3519
3869
|
/**
|
|
3520
3870
|
* Disposes the EventManager, releasing all listeners and interceptors.
|
|
3521
|
-
* Alias for clear() following the IResource disposal pattern.
|
|
3522
3871
|
*/
|
|
3523
3872
|
dispose() {
|
|
3524
|
-
this.clear();
|
|
3873
|
+
this.registry.clear();
|
|
3874
|
+
this.emissionInterceptors.length = 0;
|
|
3875
|
+
this.hookInterceptors.length = 0;
|
|
3525
3876
|
}
|
|
3526
3877
|
/**
|
|
3527
3878
|
* Retrieves cached merged listeners for an event, or creates them if not cached.
|
|
@@ -5039,7 +5390,7 @@ var TaskRunner = class {
|
|
|
5039
5390
|
__name(this, "TaskRunner");
|
|
5040
5391
|
}
|
|
5041
5392
|
/**
|
|
5042
|
-
* Begins the execution of
|
|
5393
|
+
* Begins the execution of a task. These are registered tasks and all sanity checks have been performed at this stage to ensure consistency of the object.
|
|
5043
5394
|
* This function can throw only if any of the event listeners or run function throws
|
|
5044
5395
|
* @param task the task to be run
|
|
5045
5396
|
* @param input the input to be passed to the task
|
|
@@ -5068,8 +5419,6 @@ var TaskRunner = class {
|
|
|
5068
5419
|
/**
|
|
5069
5420
|
* Creates the function with the chain of middleware.
|
|
5070
5421
|
* @param task
|
|
5071
|
-
* @param input
|
|
5072
|
-
* @param taskDependencies
|
|
5073
5422
|
* @returns
|
|
5074
5423
|
*/
|
|
5075
5424
|
createRunnerWithMiddleware(task2) {
|
|
@@ -5089,7 +5438,7 @@ var ResourceInitializer = class {
|
|
|
5089
5438
|
__name(this, "ResourceInitializer");
|
|
5090
5439
|
}
|
|
5091
5440
|
/**
|
|
5092
|
-
* Begins the execution of
|
|
5441
|
+
* Begins the execution of a task. These are registered tasks and all sanity checks have been performed at this stage to ensure consistency of the object.
|
|
5093
5442
|
* This function can throw only if any of the event listeners or run function throws
|
|
5094
5443
|
*/
|
|
5095
5444
|
async initializeResource(resource2, config, dependencies) {
|
|
@@ -5579,23 +5928,28 @@ var DependencyProcessor = class {
|
|
|
5579
5928
|
middleware.computedDependencies = computedDependencies;
|
|
5580
5929
|
middleware.isInitialized = true;
|
|
5581
5930
|
}
|
|
5582
|
-
for (const resource2 of this.store.resources.values()) {
|
|
5583
|
-
await this.processResourceDependencies(resource2);
|
|
5584
|
-
}
|
|
5585
|
-
for (const task2 of this.store.tasks.values()) {
|
|
5586
|
-
await this.computeTaskDependencies(task2);
|
|
5587
|
-
}
|
|
5588
5931
|
for (const hookStoreElement of this.store.hooks.values()) {
|
|
5589
5932
|
const hook2 = hookStoreElement.hook;
|
|
5590
5933
|
const deps = hook2.dependencies;
|
|
5934
|
+
hookStoreElement.dependencyState = "computing" /* Computing */;
|
|
5591
5935
|
hookStoreElement.computedDependencies = await this.extractDependencies(
|
|
5592
5936
|
deps,
|
|
5593
5937
|
hook2.id
|
|
5594
5938
|
);
|
|
5939
|
+
hookStoreElement.dependencyState = "ready" /* Ready */;
|
|
5940
|
+
}
|
|
5941
|
+
for (const resource2 of this.store.resources.values()) {
|
|
5942
|
+
await this.processResourceDependencies(resource2);
|
|
5943
|
+
}
|
|
5944
|
+
for (const task2 of this.store.tasks.values()) {
|
|
5945
|
+
await this.computeTaskDependencies(task2);
|
|
5595
5946
|
}
|
|
5596
5947
|
await this.initializeUninitializedResources();
|
|
5597
5948
|
}
|
|
5598
5949
|
async computeTaskDependencies(task2) {
|
|
5950
|
+
if (task2.isInitialized) {
|
|
5951
|
+
return;
|
|
5952
|
+
}
|
|
5599
5953
|
const deps = task2.task.dependencies;
|
|
5600
5954
|
task2.computedDependencies = await this.extractDependencies(
|
|
5601
5955
|
deps,
|
|
@@ -5727,6 +6081,9 @@ var DependencyProcessor = class {
|
|
|
5727
6081
|
if (receivedEvent.source === hook2.id) {
|
|
5728
6082
|
return;
|
|
5729
6083
|
}
|
|
6084
|
+
if (hookStoreElement.dependencyState !== "ready" /* Ready */) {
|
|
6085
|
+
return;
|
|
6086
|
+
}
|
|
5730
6087
|
return this.eventManager.executeHookWithInterceptors(
|
|
5731
6088
|
hook2,
|
|
5732
6089
|
receivedEvent,
|
|
@@ -5843,7 +6200,7 @@ var DependencyProcessor = class {
|
|
|
5843
6200
|
}
|
|
5844
6201
|
const st = storeTask;
|
|
5845
6202
|
if (!st.isInitialized) {
|
|
5846
|
-
const dependencies =
|
|
6203
|
+
const dependencies = st.task.dependencies;
|
|
5847
6204
|
st.computedDependencies = await this.extractDependencies(
|
|
5848
6205
|
dependencies,
|
|
5849
6206
|
st.task.id
|
|
@@ -5869,14 +6226,19 @@ var DependencyProcessor = class {
|
|
|
5869
6226
|
wrapped = this.wrapResourceDependencies(depMap, raw);
|
|
5870
6227
|
sr.computedDependencies = wrapped;
|
|
5871
6228
|
}
|
|
5872
|
-
|
|
5873
|
-
|
|
5874
|
-
|
|
5875
|
-
|
|
5876
|
-
|
|
5877
|
-
|
|
5878
|
-
|
|
5879
|
-
|
|
6229
|
+
try {
|
|
6230
|
+
const { value, context } = await this.resourceInitializer.initializeResource(
|
|
6231
|
+
resource2,
|
|
6232
|
+
config,
|
|
6233
|
+
wrapped
|
|
6234
|
+
);
|
|
6235
|
+
sr.context = context;
|
|
6236
|
+
sr.value = value;
|
|
6237
|
+
sr.isInitialized = true;
|
|
6238
|
+
this.store.recordResourceInitialized(resource2.id);
|
|
6239
|
+
} catch (error2) {
|
|
6240
|
+
this.rethrowResourceInitError(resource2.id, error2);
|
|
6241
|
+
}
|
|
5880
6242
|
}
|
|
5881
6243
|
return sr.value;
|
|
5882
6244
|
}
|
|
@@ -6079,7 +6441,8 @@ var StoreRegistry = class {
|
|
|
6079
6441
|
const hook2 = this.getFreshValue(item, this.hooks, "hook", overrideMode);
|
|
6080
6442
|
this.hooks.set(hook2.id, {
|
|
6081
6443
|
hook: hook2,
|
|
6082
|
-
computedDependencies: {}
|
|
6444
|
+
computedDependencies: {},
|
|
6445
|
+
dependencyState: "pending" /* Pending */
|
|
6083
6446
|
});
|
|
6084
6447
|
}
|
|
6085
6448
|
storeTaskMiddleware(item, storingMode = "normal") {
|
|
@@ -6134,7 +6497,10 @@ var StoreRegistry = class {
|
|
|
6134
6497
|
return prepared;
|
|
6135
6498
|
}
|
|
6136
6499
|
computeRegistrationDeeply(element, config) {
|
|
6137
|
-
|
|
6500
|
+
let items = typeof element.register === "function" ? element.register(config) : element.register;
|
|
6501
|
+
if (!items) {
|
|
6502
|
+
items = [];
|
|
6503
|
+
}
|
|
6138
6504
|
element.register = items;
|
|
6139
6505
|
for (const item of items) {
|
|
6140
6506
|
this.storeGenericItem(item);
|
|
@@ -6672,25 +7038,27 @@ var InterceptorRegistry = class {
|
|
|
6672
7038
|
* Gets all global task interceptors
|
|
6673
7039
|
*/
|
|
6674
7040
|
getGlobalTaskInterceptors() {
|
|
6675
|
-
return this.taskInterceptors;
|
|
7041
|
+
return Object.freeze([...this.taskInterceptors]);
|
|
6676
7042
|
}
|
|
6677
7043
|
/**
|
|
6678
7044
|
* Gets all global resource interceptors
|
|
6679
7045
|
*/
|
|
6680
7046
|
getGlobalResourceInterceptors() {
|
|
6681
|
-
return this.resourceInterceptors;
|
|
7047
|
+
return Object.freeze([...this.resourceInterceptors]);
|
|
6682
7048
|
}
|
|
6683
7049
|
/**
|
|
6684
7050
|
* Gets interceptors for a specific task middleware
|
|
6685
7051
|
*/
|
|
6686
7052
|
getTaskMiddlewareInterceptors(middlewareId) {
|
|
6687
|
-
|
|
7053
|
+
const interceptors = this.perTaskMiddleware.get(middlewareId) ?? [];
|
|
7054
|
+
return Object.freeze([...interceptors]);
|
|
6688
7055
|
}
|
|
6689
7056
|
/**
|
|
6690
7057
|
* Gets interceptors for a specific resource middleware
|
|
6691
7058
|
*/
|
|
6692
7059
|
getResourceMiddlewareInterceptors(middlewareId) {
|
|
6693
|
-
|
|
7060
|
+
const interceptors = this.perResourceMiddleware.get(middlewareId) ?? [];
|
|
7061
|
+
return Object.freeze([...interceptors]);
|
|
6694
7062
|
}
|
|
6695
7063
|
};
|
|
6696
7064
|
|
|
@@ -7169,10 +7537,8 @@ var ResourceMiddlewareComposer = class {
|
|
|
7169
7537
|
|
|
7170
7538
|
// src/models/MiddlewareManager.ts
|
|
7171
7539
|
var MiddlewareManager = class {
|
|
7172
|
-
constructor(store2,
|
|
7540
|
+
constructor(store2, _eventManager, _logger) {
|
|
7173
7541
|
this.store = store2;
|
|
7174
|
-
this.eventManager = eventManager;
|
|
7175
|
-
this.logger = logger;
|
|
7176
7542
|
this.interceptorRegistry = new InterceptorRegistry();
|
|
7177
7543
|
this.middlewareResolver = new MiddlewareResolver(store2);
|
|
7178
7544
|
this.taskComposer = new TaskMiddlewareComposer(
|
|
@@ -7213,14 +7579,6 @@ var MiddlewareManager = class {
|
|
|
7213
7579
|
lock() {
|
|
7214
7580
|
this.interceptorRegistry.lock();
|
|
7215
7581
|
}
|
|
7216
|
-
/**
|
|
7217
|
-
* Adds an interceptor for task or resource middleware execution
|
|
7218
|
-
* Interceptors are executed in the order they are added, with the ability to
|
|
7219
|
-
* modify, log, or prevent middleware execution
|
|
7220
|
-
*
|
|
7221
|
-
* @param kind - The type of middleware to intercept ("task" or "resource")
|
|
7222
|
-
* @param interceptor - The interceptor function to add
|
|
7223
|
-
*/
|
|
7224
7582
|
intercept(kind, interceptor) {
|
|
7225
7583
|
if (kind === "task") {
|
|
7226
7584
|
this.interceptorRegistry.addGlobalTaskInterceptor(
|
|
@@ -7232,13 +7590,6 @@ var MiddlewareManager = class {
|
|
|
7232
7590
|
);
|
|
7233
7591
|
}
|
|
7234
7592
|
}
|
|
7235
|
-
/**
|
|
7236
|
-
* Adds an interceptor for a specific middleware instance with better type safety
|
|
7237
|
-
* This method automatically determines the type and provides type-safe access
|
|
7238
|
-
*
|
|
7239
|
-
* @param middleware - The middleware instance to intercept
|
|
7240
|
-
* @param interceptor - The interceptor function with proper typing
|
|
7241
|
-
*/
|
|
7242
7593
|
interceptMiddleware(middleware, interceptor) {
|
|
7243
7594
|
if (isTaskMiddleware(middleware)) {
|
|
7244
7595
|
this.interceptorRegistry.addTaskMiddlewareInterceptor(
|
|
@@ -7377,12 +7728,17 @@ var Store = class {
|
|
|
7377
7728
|
}
|
|
7378
7729
|
}
|
|
7379
7730
|
registerGlobalComponents() {
|
|
7731
|
+
if (!this.taskRunner) {
|
|
7732
|
+
throw new Error(
|
|
7733
|
+
"TaskRunner is not set. Call store.setTaskRunner() before initializeStore()."
|
|
7734
|
+
);
|
|
7735
|
+
}
|
|
7380
7736
|
const builtInResourcesMap = /* @__PURE__ */ new Map();
|
|
7381
7737
|
builtInResourcesMap.set(globalResources.store, this);
|
|
7382
7738
|
builtInResourcesMap.set(globalResources.eventManager, this.eventManager);
|
|
7383
7739
|
builtInResourcesMap.set(globalResources.logger, this.logger);
|
|
7384
7740
|
builtInResourcesMap.set(globalResources.taskRunner, this.taskRunner);
|
|
7385
|
-
builtInResourcesMap.set(globalResources.serializer,
|
|
7741
|
+
builtInResourcesMap.set(globalResources.serializer, new Serializer());
|
|
7386
7742
|
builtInResourcesMap.set(
|
|
7387
7743
|
globalResources.middlewareManager,
|
|
7388
7744
|
this.middlewareManager
|
|
@@ -7442,8 +7798,11 @@ var Store = class {
|
|
|
7442
7798
|
setTaskRunner(taskRunner) {
|
|
7443
7799
|
this.taskRunner = taskRunner;
|
|
7444
7800
|
}
|
|
7445
|
-
setupRootResource(
|
|
7446
|
-
root
|
|
7801
|
+
setupRootResource(rootDefinition, config) {
|
|
7802
|
+
const root = {
|
|
7803
|
+
...rootDefinition,
|
|
7804
|
+
dependencies: typeof rootDefinition.dependencies === "function" ? rootDefinition.dependencies(config) : rootDefinition.dependencies
|
|
7805
|
+
};
|
|
7447
7806
|
this.root = {
|
|
7448
7807
|
resource: root,
|
|
7449
7808
|
computedDependencies: {},
|
|
@@ -7996,6 +8355,18 @@ var RunResult = class {
|
|
|
7996
8355
|
}
|
|
7997
8356
|
return this.store.resources.get(resourceId).value;
|
|
7998
8357
|
}, "getResourceValue");
|
|
8358
|
+
/**
|
|
8359
|
+
* Get the config of a resource from the run result.
|
|
8360
|
+
* @param resource - The resource to get the config of.
|
|
8361
|
+
* @returns The config passed for the resource.
|
|
8362
|
+
*/
|
|
8363
|
+
this.getResourceConfig = /* @__PURE__ */ __name((resource2) => {
|
|
8364
|
+
const resourceId = typeof resource2 === "string" ? resource2 : resource2.id;
|
|
8365
|
+
if (!this.store.resources.has(resourceId)) {
|
|
8366
|
+
throw new Error(`Resource "${resourceId}" not found.`);
|
|
8367
|
+
}
|
|
8368
|
+
return this.store.resources.get(resourceId).config;
|
|
8369
|
+
}, "getResourceConfig");
|
|
7999
8370
|
this.dispose = /* @__PURE__ */ __name(() => {
|
|
8000
8371
|
return this.disposeFn();
|
|
8001
8372
|
}, "dispose");
|
|
@@ -9176,7 +9547,7 @@ function makeAsyncContextBuilder(state) {
|
|
|
9176
9547
|
configSchema: state.configSchema,
|
|
9177
9548
|
meta: state.meta
|
|
9178
9549
|
};
|
|
9179
|
-
return defineAsyncContext(def);
|
|
9550
|
+
return defineAsyncContext(def, state.filePath);
|
|
9180
9551
|
}
|
|
9181
9552
|
};
|
|
9182
9553
|
return builder;
|
|
@@ -9185,8 +9556,10 @@ __name(makeAsyncContextBuilder, "makeAsyncContextBuilder");
|
|
|
9185
9556
|
|
|
9186
9557
|
// src/definers/builders/asyncContext/index.ts
|
|
9187
9558
|
function asyncContextBuilder(id2) {
|
|
9559
|
+
const filePath = getCallerFile();
|
|
9188
9560
|
const initial = Object.freeze({
|
|
9189
9561
|
id: id2,
|
|
9562
|
+
filePath,
|
|
9190
9563
|
serialize: void 0,
|
|
9191
9564
|
parse: void 0,
|
|
9192
9565
|
configSchema: void 0,
|
|
@@ -9659,7 +10032,7 @@ function override(base) {
|
|
|
9659
10032
|
}
|
|
9660
10033
|
__name(override, "override");
|
|
9661
10034
|
|
|
9662
|
-
// src/
|
|
10035
|
+
// src/public.ts
|
|
9663
10036
|
var globals = {
|
|
9664
10037
|
events: globalEvents,
|
|
9665
10038
|
resources: globalResources,
|
|
@@ -9687,6 +10060,7 @@ var r = Object.freeze({
|
|
|
9687
10060
|
exports.DependencyProcessor = DependencyProcessor;
|
|
9688
10061
|
exports.Errors = errors_exports;
|
|
9689
10062
|
exports.EventManager = EventManager;
|
|
10063
|
+
exports.LogPrinter = LogPrinter;
|
|
9690
10064
|
exports.Logger = Logger;
|
|
9691
10065
|
exports.MiddlewareManager = MiddlewareManager;
|
|
9692
10066
|
exports.PlatformAdapter = PlatformAdapter;
|
|
@@ -9696,6 +10070,8 @@ exports.RunResult = RunResult;
|
|
|
9696
10070
|
exports.Semaphore = Semaphore;
|
|
9697
10071
|
exports.Serializer = Serializer;
|
|
9698
10072
|
exports.Store = Store;
|
|
10073
|
+
exports.SymbolPolicy = SymbolPolicy;
|
|
10074
|
+
exports.SymbolPolicyErrorMessage = SymbolPolicyErrorMessage;
|
|
9699
10075
|
exports.TaskRunner = TaskRunner;
|
|
9700
10076
|
exports.allFalse = allFalse;
|
|
9701
10077
|
exports.asyncContext = defineAsyncContext;
|
|
@@ -9710,7 +10086,6 @@ exports.debugLevels = debugLevels;
|
|
|
9710
10086
|
exports.definitions = defs_exports;
|
|
9711
10087
|
exports.event = defineEvent;
|
|
9712
10088
|
exports.getConfig = getConfig;
|
|
9713
|
-
exports.getDefaultSerializer = getDefaultSerializer;
|
|
9714
10089
|
exports.globals = globals;
|
|
9715
10090
|
exports.hook = defineHook;
|
|
9716
10091
|
exports.journal = journal;
|