@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/edge/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,16 +938,11 @@ function setPlatform(adapter) {
|
|
|
805
938
|
adapter.id;
|
|
806
939
|
}
|
|
807
940
|
__name(setPlatform, "setPlatform");
|
|
808
|
-
function isNode() {
|
|
809
|
-
{
|
|
810
|
-
return false;
|
|
811
|
-
}
|
|
812
|
-
}
|
|
813
|
-
__name(isNode, "isNode");
|
|
814
941
|
var PlatformAdapter = class {
|
|
942
|
+
static {
|
|
943
|
+
__name(this, "PlatformAdapter");
|
|
944
|
+
}
|
|
815
945
|
constructor(env) {
|
|
816
|
-
this.setTimeout = globalThis.setTimeout;
|
|
817
|
-
this.clearTimeout = globalThis.clearTimeout;
|
|
818
946
|
const kind = env ?? detectEnvironment();
|
|
819
947
|
this.env = kind;
|
|
820
948
|
switch (kind) {
|
|
@@ -834,9 +962,8 @@ var PlatformAdapter = class {
|
|
|
834
962
|
this.inner = new UniversalPlatformAdapter();
|
|
835
963
|
}
|
|
836
964
|
this.id = this.inner.id;
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
__name(this, "PlatformAdapter");
|
|
965
|
+
this.setTimeout = this.inner.setTimeout;
|
|
966
|
+
this.clearTimeout = this.inner.clearTimeout;
|
|
840
967
|
}
|
|
841
968
|
async init() {
|
|
842
969
|
return this.inner.init();
|
|
@@ -864,209 +991,103 @@ var PlatformAdapter = class {
|
|
|
864
991
|
}
|
|
865
992
|
};
|
|
866
993
|
|
|
867
|
-
// src/
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
}
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
onAnyOf: () => onAnyOf,
|
|
894
|
-
symbolAsyncContext: () => symbolAsyncContext,
|
|
895
|
-
symbolError: () => symbolError,
|
|
896
|
-
symbolEvent: () => symbolEvent,
|
|
897
|
-
symbolFilePath: () => symbolFilePath,
|
|
898
|
-
symbolHook: () => symbolHook,
|
|
899
|
-
symbolMiddleware: () => symbolMiddleware,
|
|
900
|
-
symbolMiddlewareConfigured: () => symbolMiddlewareConfigured,
|
|
901
|
-
symbolOptionalDependency: () => symbolOptionalDependency,
|
|
902
|
-
symbolPhantomTask: () => symbolPhantomTask,
|
|
903
|
-
symbolResource: () => symbolResource,
|
|
904
|
-
symbolResourceForkedFrom: () => symbolResourceForkedFrom,
|
|
905
|
-
symbolResourceMiddleware: () => symbolResourceMiddleware,
|
|
906
|
-
symbolResourceWithConfig: () => symbolResourceWithConfig,
|
|
907
|
-
symbolTag: () => symbolTag,
|
|
908
|
-
symbolTagConfigured: () => symbolTagConfigured,
|
|
909
|
-
symbolTask: () => symbolTask,
|
|
910
|
-
symbolTaskMiddleware: () => symbolTaskMiddleware,
|
|
911
|
-
symbolTunneledBy: () => symbolTunneledBy
|
|
912
|
-
});
|
|
913
|
-
|
|
914
|
-
// src/types/event.ts
|
|
915
|
-
function onAnyOf(...defs) {
|
|
916
|
-
return defs;
|
|
917
|
-
}
|
|
918
|
-
__name(onAnyOf, "onAnyOf");
|
|
919
|
-
function isOneOf(emission, defs) {
|
|
920
|
-
return defs.some((d) => d.id === emission.id);
|
|
921
|
-
}
|
|
922
|
-
__name(isOneOf, "isOneOf");
|
|
923
|
-
|
|
924
|
-
// src/types/runner.ts
|
|
925
|
-
var RunnerMode = /* @__PURE__ */ ((RunnerMode2) => {
|
|
926
|
-
RunnerMode2["TEST"] = "test";
|
|
927
|
-
RunnerMode2["DEV"] = "dev";
|
|
928
|
-
RunnerMode2["PROD"] = "prod";
|
|
929
|
-
return RunnerMode2;
|
|
930
|
-
})(RunnerMode || {});
|
|
931
|
-
|
|
932
|
-
// src/definers/tools.ts
|
|
933
|
-
function isTask(definition) {
|
|
934
|
-
return definition && definition[symbolTask];
|
|
935
|
-
}
|
|
936
|
-
__name(isTask, "isTask");
|
|
937
|
-
function isResource(definition) {
|
|
938
|
-
return definition && definition[symbolResource];
|
|
939
|
-
}
|
|
940
|
-
__name(isResource, "isResource");
|
|
941
|
-
function isResourceWithConfig(definition) {
|
|
942
|
-
return definition && definition[symbolResourceWithConfig];
|
|
943
|
-
}
|
|
944
|
-
__name(isResourceWithConfig, "isResourceWithConfig");
|
|
945
|
-
function isEvent(definition) {
|
|
946
|
-
return definition && definition[symbolEvent];
|
|
947
|
-
}
|
|
948
|
-
__name(isEvent, "isEvent");
|
|
949
|
-
function isHook(definition) {
|
|
950
|
-
return definition && definition[symbolHook];
|
|
951
|
-
}
|
|
952
|
-
__name(isHook, "isHook");
|
|
953
|
-
function isTaskMiddleware(definition) {
|
|
954
|
-
return definition && definition[symbolTaskMiddleware];
|
|
955
|
-
}
|
|
956
|
-
__name(isTaskMiddleware, "isTaskMiddleware");
|
|
957
|
-
function isResourceMiddleware(definition) {
|
|
958
|
-
return definition && definition[symbolResourceMiddleware];
|
|
959
|
-
}
|
|
960
|
-
__name(isResourceMiddleware, "isResourceMiddleware");
|
|
961
|
-
function isTag(definition) {
|
|
962
|
-
return definition && definition[symbolTag];
|
|
963
|
-
}
|
|
964
|
-
__name(isTag, "isTag");
|
|
965
|
-
function isOptional(definition) {
|
|
966
|
-
return definition && definition[symbolOptionalDependency];
|
|
967
|
-
}
|
|
968
|
-
__name(isOptional, "isOptional");
|
|
969
|
-
function isError(definition) {
|
|
970
|
-
return Boolean(definition && definition[symbolError]);
|
|
971
|
-
}
|
|
972
|
-
__name(isError, "isError");
|
|
973
|
-
function isAsyncContext(definition) {
|
|
974
|
-
return Boolean(definition && definition[symbolAsyncContext]);
|
|
975
|
-
}
|
|
976
|
-
__name(isAsyncContext, "isAsyncContext");
|
|
977
|
-
|
|
978
|
-
// src/tools/throws.ts
|
|
979
|
-
function invalidThrowsEntryError(owner, item) {
|
|
980
|
-
const got = item === null ? "null" : Array.isArray(item) ? "array" : typeof item === "object" ? "object" : typeof item;
|
|
981
|
-
return new Error(
|
|
982
|
-
`Invalid throws entry for ${owner.kind} ${owner.id}: expected error id string or Error helper, got ${got}`
|
|
983
|
-
);
|
|
984
|
-
}
|
|
985
|
-
__name(invalidThrowsEntryError, "invalidThrowsEntryError");
|
|
986
|
-
function toErrorIdList(owner, list) {
|
|
987
|
-
const ids = [];
|
|
988
|
-
const seen = /* @__PURE__ */ new Set();
|
|
989
|
-
for (const item of list) {
|
|
990
|
-
let id2;
|
|
991
|
-
if (typeof item === "string") {
|
|
992
|
-
if (item.trim().length === 0) {
|
|
993
|
-
throw invalidThrowsEntryError(owner, item);
|
|
994
|
-
}
|
|
995
|
-
id2 = item;
|
|
996
|
-
} else if (isError(item)) {
|
|
997
|
-
id2 = item.id;
|
|
998
|
-
if (typeof id2 !== "string" || id2.trim().length === 0) {
|
|
999
|
-
throw invalidThrowsEntryError(owner, item);
|
|
1000
|
-
}
|
|
1001
|
-
} else {
|
|
1002
|
-
throw invalidThrowsEntryError(owner, item);
|
|
1003
|
-
}
|
|
1004
|
-
if (seen.has(id2)) continue;
|
|
1005
|
-
seen.add(id2);
|
|
1006
|
-
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";
|
|
1007
1020
|
}
|
|
1008
|
-
return
|
|
1009
|
-
}
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
}
|
|
1015
|
-
|
|
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}
|
|
1016
1058
|
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
const
|
|
1021
|
-
return
|
|
1022
|
-
|
|
1023
|
-
[symbolFilePath]: filePath,
|
|
1024
|
-
id: id2,
|
|
1025
|
-
dependencies: taskConfig.dependencies || {},
|
|
1026
|
-
middleware: taskConfig.middleware || [],
|
|
1027
|
-
run: taskConfig.run,
|
|
1028
|
-
inputSchema: taskConfig.inputSchema,
|
|
1029
|
-
resultSchema: taskConfig.resultSchema,
|
|
1030
|
-
meta: taskConfig.meta || {},
|
|
1031
|
-
tags: taskConfig.tags || [],
|
|
1032
|
-
throws: normalizeThrows({ kind: "task", id: id2 }, taskConfig.throws),
|
|
1033
|
-
// autorun,
|
|
1034
|
-
optional() {
|
|
1035
|
-
return {
|
|
1036
|
-
inner: this,
|
|
1037
|
-
[symbolOptionalDependency]: true
|
|
1038
|
-
};
|
|
1039
|
-
}
|
|
1040
|
-
};
|
|
1041
|
-
}
|
|
1042
|
-
__name(defineTask, "defineTask");
|
|
1043
|
-
defineTask.phantom = (taskConfig) => {
|
|
1044
|
-
const taskDef = defineTask({
|
|
1045
|
-
...taskConfig,
|
|
1046
|
-
run: /* @__PURE__ */ __name(async (_input) => {
|
|
1047
|
-
return void 0;
|
|
1048
|
-
}, "run")
|
|
1049
|
-
});
|
|
1050
|
-
taskDef[symbolPhantomTask] = true;
|
|
1051
|
-
return taskDef;
|
|
1052
|
-
};
|
|
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}
|
|
1053
1065
|
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
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);
|
|
1068
1089
|
}
|
|
1069
|
-
__name(
|
|
1090
|
+
__name(isCancellationError, "isCancellationError");
|
|
1070
1091
|
|
|
1071
1092
|
// src/definers/resourceFork.ts
|
|
1072
1093
|
function resolveReId(forkId, options) {
|
|
@@ -1441,7 +1462,7 @@ function defineOverride(base, patch) {
|
|
|
1441
1462
|
...patch,
|
|
1442
1463
|
id: base.id
|
|
1443
1464
|
};
|
|
1444
|
-
if (base.on !== void 0) {
|
|
1465
|
+
if ("on" in base && base.on !== void 0) {
|
|
1445
1466
|
overridden.on = base.on;
|
|
1446
1467
|
}
|
|
1447
1468
|
return overridden;
|
|
@@ -1561,6 +1582,309 @@ var SymbolPolicy = /* @__PURE__ */ ((SymbolPolicy2) => {
|
|
|
1561
1582
|
SymbolPolicy2["Disabled"] = "Disabled";
|
|
1562
1583
|
return SymbolPolicy2;
|
|
1563
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
|
+
];
|
|
1564
1888
|
|
|
1565
1889
|
// src/serializer/special-values.ts
|
|
1566
1890
|
var serializeUndefined = /* @__PURE__ */ __name(() => ({
|
|
@@ -1766,7 +2090,9 @@ var builtInTypes = [
|
|
|
1766
2090
|
UndefinedType,
|
|
1767
2091
|
NonFiniteNumberType,
|
|
1768
2092
|
BigIntType,
|
|
1769
|
-
SymbolType
|
|
2093
|
+
SymbolType,
|
|
2094
|
+
...errorAndUrlBuiltInTypes,
|
|
2095
|
+
...binaryBuiltInTypes
|
|
1770
2096
|
];
|
|
1771
2097
|
|
|
1772
2098
|
// src/serializer/type-registry.ts
|
|
@@ -2257,7 +2583,7 @@ var serializeTreeValue = /* @__PURE__ */ __name((value, context, depth, options)
|
|
|
2257
2583
|
}, "serializeTreeValue");
|
|
2258
2584
|
|
|
2259
2585
|
// src/serializer/deserializer.ts
|
|
2260
|
-
var
|
|
2586
|
+
var hasOwn2 = Object.prototype.hasOwnProperty;
|
|
2261
2587
|
var copyOwnProperties = /* @__PURE__ */ __name((target, source, unsafeKeys) => {
|
|
2262
2588
|
const descriptors = Object.getOwnPropertyDescriptors(source);
|
|
2263
2589
|
for (const key of Object.keys(descriptors)) {
|
|
@@ -2338,7 +2664,7 @@ var deserializeValue = /* @__PURE__ */ __name((value, context, depth, options) =
|
|
|
2338
2664
|
const obj = {};
|
|
2339
2665
|
const source = value;
|
|
2340
2666
|
for (const key in source) {
|
|
2341
|
-
if (!
|
|
2667
|
+
if (!hasOwn2.call(source, key)) {
|
|
2342
2668
|
continue;
|
|
2343
2669
|
}
|
|
2344
2670
|
if (isUnsafeKey(key, options.unsafeKeys)) {
|
|
@@ -2383,7 +2709,7 @@ var resolveReference = /* @__PURE__ */ __name((id2, context, depth, options) =>
|
|
|
2383
2709
|
context.resolved.set(id2, target);
|
|
2384
2710
|
const source = node.value;
|
|
2385
2711
|
for (const key in source) {
|
|
2386
|
-
if (!
|
|
2712
|
+
if (!hasOwn2.call(source, key)) {
|
|
2387
2713
|
continue;
|
|
2388
2714
|
}
|
|
2389
2715
|
if (isUnsafeKey(key, options.unsafeKeys)) {
|
|
@@ -2455,7 +2781,7 @@ var mergePlaceholder = /* @__PURE__ */ __name((placeholder, result, unsafeKeys)
|
|
|
2455
2781
|
const target = placeholder;
|
|
2456
2782
|
const source = result;
|
|
2457
2783
|
for (const key in source) {
|
|
2458
|
-
if (!
|
|
2784
|
+
if (!hasOwn2.call(source, key)) {
|
|
2459
2785
|
continue;
|
|
2460
2786
|
}
|
|
2461
2787
|
if (isUnsafeKey(key, unsafeKeys)) {
|
|
@@ -2488,7 +2814,7 @@ var deserializeLegacy = /* @__PURE__ */ __name((value, depth, options) => {
|
|
|
2488
2814
|
const obj = {};
|
|
2489
2815
|
const source = value;
|
|
2490
2816
|
for (const key in source) {
|
|
2491
|
-
if (!
|
|
2817
|
+
if (!hasOwn2.call(source, key)) {
|
|
2492
2818
|
continue;
|
|
2493
2819
|
}
|
|
2494
2820
|
if (isUnsafeKey(key, options.unsafeKeys)) {
|
|
@@ -2499,6 +2825,26 @@ var deserializeLegacy = /* @__PURE__ */ __name((value, depth, options) => {
|
|
|
2499
2825
|
return obj;
|
|
2500
2826
|
}, "deserializeLegacy");
|
|
2501
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
|
+
|
|
2502
2848
|
// src/serializer/Serializer.ts
|
|
2503
2849
|
var GRAPH_VERSION = 1;
|
|
2504
2850
|
var DEFAULT_MAX_DEPTH = 1e3;
|
|
@@ -2534,10 +2880,11 @@ var Serializer = class {
|
|
|
2534
2880
|
return check(pattern, index);
|
|
2535
2881
|
}, "isBoundedQuantifier");
|
|
2536
2882
|
this.indent = options.pretty ? 2 : void 0;
|
|
2537
|
-
|
|
2538
|
-
this.
|
|
2539
|
-
|
|
2540
|
-
|
|
2883
|
+
this.maxDepth = normalizeMaxDepth(options.maxDepth, DEFAULT_MAX_DEPTH);
|
|
2884
|
+
this.maxRegExpPatternLength = normalizeMaxRegExpPatternLength(
|
|
2885
|
+
options.maxRegExpPatternLength,
|
|
2886
|
+
DEFAULT_MAX_REGEXP_PATTERN_LENGTH
|
|
2887
|
+
);
|
|
2541
2888
|
this.allowUnsafeRegExp = options.allowUnsafeRegExp ?? false;
|
|
2542
2889
|
this.unsafeKeys = DEFAULT_UNSAFE_KEYS;
|
|
2543
2890
|
this.typeRegistry = new TypeRegistry({
|
|
@@ -2672,13 +3019,6 @@ var Serializer = class {
|
|
|
2672
3019
|
}
|
|
2673
3020
|
};
|
|
2674
3021
|
|
|
2675
|
-
// src/serializer/index.ts
|
|
2676
|
-
var defaultSerializer = new Serializer();
|
|
2677
|
-
function getDefaultSerializer() {
|
|
2678
|
-
return defaultSerializer;
|
|
2679
|
-
}
|
|
2680
|
-
__name(getDefaultSerializer, "getDefaultSerializer");
|
|
2681
|
-
|
|
2682
3022
|
// src/definers/defineAsyncContext.ts
|
|
2683
3023
|
var platform = getPlatform();
|
|
2684
3024
|
var storage = platform.createAsyncLocalStorage();
|
|
@@ -2686,13 +3026,14 @@ function getCurrentStore() {
|
|
|
2686
3026
|
return storage.getStore();
|
|
2687
3027
|
}
|
|
2688
3028
|
__name(getCurrentStore, "getCurrentStore");
|
|
2689
|
-
function defineAsyncContext(def) {
|
|
3029
|
+
function defineAsyncContext(def, filePath) {
|
|
2690
3030
|
if (!platform.hasAsyncLocalStorage()) {
|
|
2691
3031
|
platformUnsupportedFunctionError.throw({
|
|
2692
3032
|
functionName: `createAsyncLocalStorage: Cannot create context ${def.id}: no async storage available in this environment`
|
|
2693
3033
|
});
|
|
2694
3034
|
}
|
|
2695
3035
|
const ctxId = def.id;
|
|
3036
|
+
const resolvedFilePath = filePath ?? getCallerFile();
|
|
2696
3037
|
const use = /* @__PURE__ */ __name(() => {
|
|
2697
3038
|
const store2 = getCurrentStore();
|
|
2698
3039
|
if (!store2 || !store2.has(ctxId)) {
|
|
@@ -2709,10 +3050,11 @@ function defineAsyncContext(def) {
|
|
|
2709
3050
|
map.set(ctxId, value);
|
|
2710
3051
|
return storage.run(map, fn);
|
|
2711
3052
|
}, "provide");
|
|
2712
|
-
const serializer2 =
|
|
3053
|
+
const serializer2 = new Serializer();
|
|
2713
3054
|
const api = {
|
|
2714
3055
|
id: ctxId,
|
|
2715
3056
|
[symbolAsyncContext]: true,
|
|
3057
|
+
[symbolFilePath]: resolvedFilePath,
|
|
2716
3058
|
use,
|
|
2717
3059
|
/* istanbul ignore next */
|
|
2718
3060
|
provide(value, fn) {
|
|
@@ -3364,12 +3706,12 @@ var EventManager = class {
|
|
|
3364
3706
|
data,
|
|
3365
3707
|
timestamp: /* @__PURE__ */ new Date(),
|
|
3366
3708
|
source,
|
|
3367
|
-
meta: eventDefinition.meta || {},
|
|
3709
|
+
meta: { ...eventDefinition.meta || {} },
|
|
3368
3710
|
stopPropagation: /* @__PURE__ */ __name(() => {
|
|
3369
3711
|
propagationStopped = true;
|
|
3370
3712
|
}, "stopPropagation"),
|
|
3371
3713
|
isPropagationStopped: /* @__PURE__ */ __name(() => propagationStopped, "isPropagationStopped"),
|
|
3372
|
-
tags: eventDefinition.tags
|
|
3714
|
+
tags: [...eventDefinition.tags]
|
|
3373
3715
|
};
|
|
3374
3716
|
const baseEmit = /* @__PURE__ */ __name(async (eventToEmit) => {
|
|
3375
3717
|
if (allListeners.length === 0) {
|
|
@@ -3395,10 +3737,14 @@ var EventManager = class {
|
|
|
3395
3737
|
if (!interceptor) {
|
|
3396
3738
|
return baseEmit(eventToEmit);
|
|
3397
3739
|
}
|
|
3398
|
-
return interceptor(
|
|
3399
|
-
(
|
|
3400
|
-
|
|
3401
|
-
|
|
3740
|
+
return interceptor((nextEvent) => {
|
|
3741
|
+
this.assertPropagationMethodsUnchanged(
|
|
3742
|
+
eventDefinition.id,
|
|
3743
|
+
eventToEmit,
|
|
3744
|
+
nextEvent
|
|
3745
|
+
);
|
|
3746
|
+
return runInterceptor(index + 1, nextEvent);
|
|
3747
|
+
}, eventToEmit);
|
|
3402
3748
|
}, "runInterceptor");
|
|
3403
3749
|
await runInterceptor(0, event2);
|
|
3404
3750
|
return deepestEvent;
|
|
@@ -3509,21 +3855,24 @@ var EventManager = class {
|
|
|
3509
3855
|
lockedError.throw({ what: "EventManager" });
|
|
3510
3856
|
}
|
|
3511
3857
|
}
|
|
3512
|
-
|
|
3513
|
-
|
|
3514
|
-
|
|
3515
|
-
|
|
3516
|
-
|
|
3517
|
-
|
|
3518
|
-
|
|
3519
|
-
|
|
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
|
+
}
|
|
3520
3868
|
}
|
|
3521
3869
|
/**
|
|
3522
3870
|
* Disposes the EventManager, releasing all listeners and interceptors.
|
|
3523
|
-
* Alias for clear() following the IResource disposal pattern.
|
|
3524
3871
|
*/
|
|
3525
3872
|
dispose() {
|
|
3526
|
-
this.clear();
|
|
3873
|
+
this.registry.clear();
|
|
3874
|
+
this.emissionInterceptors.length = 0;
|
|
3875
|
+
this.hookInterceptors.length = 0;
|
|
3527
3876
|
}
|
|
3528
3877
|
/**
|
|
3529
3878
|
* Retrieves cached merged listeners for an event, or creates them if not cached.
|
|
@@ -5041,7 +5390,7 @@ var TaskRunner = class {
|
|
|
5041
5390
|
__name(this, "TaskRunner");
|
|
5042
5391
|
}
|
|
5043
5392
|
/**
|
|
5044
|
-
* 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.
|
|
5045
5394
|
* This function can throw only if any of the event listeners or run function throws
|
|
5046
5395
|
* @param task the task to be run
|
|
5047
5396
|
* @param input the input to be passed to the task
|
|
@@ -5070,8 +5419,6 @@ var TaskRunner = class {
|
|
|
5070
5419
|
/**
|
|
5071
5420
|
* Creates the function with the chain of middleware.
|
|
5072
5421
|
* @param task
|
|
5073
|
-
* @param input
|
|
5074
|
-
* @param taskDependencies
|
|
5075
5422
|
* @returns
|
|
5076
5423
|
*/
|
|
5077
5424
|
createRunnerWithMiddleware(task2) {
|
|
@@ -5091,7 +5438,7 @@ var ResourceInitializer = class {
|
|
|
5091
5438
|
__name(this, "ResourceInitializer");
|
|
5092
5439
|
}
|
|
5093
5440
|
/**
|
|
5094
|
-
* 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.
|
|
5095
5442
|
* This function can throw only if any of the event listeners or run function throws
|
|
5096
5443
|
*/
|
|
5097
5444
|
async initializeResource(resource2, config, dependencies) {
|
|
@@ -5581,23 +5928,28 @@ var DependencyProcessor = class {
|
|
|
5581
5928
|
middleware.computedDependencies = computedDependencies;
|
|
5582
5929
|
middleware.isInitialized = true;
|
|
5583
5930
|
}
|
|
5584
|
-
for (const resource2 of this.store.resources.values()) {
|
|
5585
|
-
await this.processResourceDependencies(resource2);
|
|
5586
|
-
}
|
|
5587
|
-
for (const task2 of this.store.tasks.values()) {
|
|
5588
|
-
await this.computeTaskDependencies(task2);
|
|
5589
|
-
}
|
|
5590
5931
|
for (const hookStoreElement of this.store.hooks.values()) {
|
|
5591
5932
|
const hook2 = hookStoreElement.hook;
|
|
5592
5933
|
const deps = hook2.dependencies;
|
|
5934
|
+
hookStoreElement.dependencyState = "computing" /* Computing */;
|
|
5593
5935
|
hookStoreElement.computedDependencies = await this.extractDependencies(
|
|
5594
5936
|
deps,
|
|
5595
5937
|
hook2.id
|
|
5596
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);
|
|
5597
5946
|
}
|
|
5598
5947
|
await this.initializeUninitializedResources();
|
|
5599
5948
|
}
|
|
5600
5949
|
async computeTaskDependencies(task2) {
|
|
5950
|
+
if (task2.isInitialized) {
|
|
5951
|
+
return;
|
|
5952
|
+
}
|
|
5601
5953
|
const deps = task2.task.dependencies;
|
|
5602
5954
|
task2.computedDependencies = await this.extractDependencies(
|
|
5603
5955
|
deps,
|
|
@@ -5729,6 +6081,9 @@ var DependencyProcessor = class {
|
|
|
5729
6081
|
if (receivedEvent.source === hook2.id) {
|
|
5730
6082
|
return;
|
|
5731
6083
|
}
|
|
6084
|
+
if (hookStoreElement.dependencyState !== "ready" /* Ready */) {
|
|
6085
|
+
return;
|
|
6086
|
+
}
|
|
5732
6087
|
return this.eventManager.executeHookWithInterceptors(
|
|
5733
6088
|
hook2,
|
|
5734
6089
|
receivedEvent,
|
|
@@ -5845,7 +6200,7 @@ var DependencyProcessor = class {
|
|
|
5845
6200
|
}
|
|
5846
6201
|
const st = storeTask;
|
|
5847
6202
|
if (!st.isInitialized) {
|
|
5848
|
-
const dependencies =
|
|
6203
|
+
const dependencies = st.task.dependencies;
|
|
5849
6204
|
st.computedDependencies = await this.extractDependencies(
|
|
5850
6205
|
dependencies,
|
|
5851
6206
|
st.task.id
|
|
@@ -5871,14 +6226,19 @@ var DependencyProcessor = class {
|
|
|
5871
6226
|
wrapped = this.wrapResourceDependencies(depMap, raw);
|
|
5872
6227
|
sr.computedDependencies = wrapped;
|
|
5873
6228
|
}
|
|
5874
|
-
|
|
5875
|
-
|
|
5876
|
-
|
|
5877
|
-
|
|
5878
|
-
|
|
5879
|
-
|
|
5880
|
-
|
|
5881
|
-
|
|
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
|
+
}
|
|
5882
6242
|
}
|
|
5883
6243
|
return sr.value;
|
|
5884
6244
|
}
|
|
@@ -6081,7 +6441,8 @@ var StoreRegistry = class {
|
|
|
6081
6441
|
const hook2 = this.getFreshValue(item, this.hooks, "hook", overrideMode);
|
|
6082
6442
|
this.hooks.set(hook2.id, {
|
|
6083
6443
|
hook: hook2,
|
|
6084
|
-
computedDependencies: {}
|
|
6444
|
+
computedDependencies: {},
|
|
6445
|
+
dependencyState: "pending" /* Pending */
|
|
6085
6446
|
});
|
|
6086
6447
|
}
|
|
6087
6448
|
storeTaskMiddleware(item, storingMode = "normal") {
|
|
@@ -6136,7 +6497,10 @@ var StoreRegistry = class {
|
|
|
6136
6497
|
return prepared;
|
|
6137
6498
|
}
|
|
6138
6499
|
computeRegistrationDeeply(element, config) {
|
|
6139
|
-
|
|
6500
|
+
let items = typeof element.register === "function" ? element.register(config) : element.register;
|
|
6501
|
+
if (!items) {
|
|
6502
|
+
items = [];
|
|
6503
|
+
}
|
|
6140
6504
|
element.register = items;
|
|
6141
6505
|
for (const item of items) {
|
|
6142
6506
|
this.storeGenericItem(item);
|
|
@@ -6674,25 +7038,27 @@ var InterceptorRegistry = class {
|
|
|
6674
7038
|
* Gets all global task interceptors
|
|
6675
7039
|
*/
|
|
6676
7040
|
getGlobalTaskInterceptors() {
|
|
6677
|
-
return this.taskInterceptors;
|
|
7041
|
+
return Object.freeze([...this.taskInterceptors]);
|
|
6678
7042
|
}
|
|
6679
7043
|
/**
|
|
6680
7044
|
* Gets all global resource interceptors
|
|
6681
7045
|
*/
|
|
6682
7046
|
getGlobalResourceInterceptors() {
|
|
6683
|
-
return this.resourceInterceptors;
|
|
7047
|
+
return Object.freeze([...this.resourceInterceptors]);
|
|
6684
7048
|
}
|
|
6685
7049
|
/**
|
|
6686
7050
|
* Gets interceptors for a specific task middleware
|
|
6687
7051
|
*/
|
|
6688
7052
|
getTaskMiddlewareInterceptors(middlewareId) {
|
|
6689
|
-
|
|
7053
|
+
const interceptors = this.perTaskMiddleware.get(middlewareId) ?? [];
|
|
7054
|
+
return Object.freeze([...interceptors]);
|
|
6690
7055
|
}
|
|
6691
7056
|
/**
|
|
6692
7057
|
* Gets interceptors for a specific resource middleware
|
|
6693
7058
|
*/
|
|
6694
7059
|
getResourceMiddlewareInterceptors(middlewareId) {
|
|
6695
|
-
|
|
7060
|
+
const interceptors = this.perResourceMiddleware.get(middlewareId) ?? [];
|
|
7061
|
+
return Object.freeze([...interceptors]);
|
|
6696
7062
|
}
|
|
6697
7063
|
};
|
|
6698
7064
|
|
|
@@ -7171,10 +7537,8 @@ var ResourceMiddlewareComposer = class {
|
|
|
7171
7537
|
|
|
7172
7538
|
// src/models/MiddlewareManager.ts
|
|
7173
7539
|
var MiddlewareManager = class {
|
|
7174
|
-
constructor(store2,
|
|
7540
|
+
constructor(store2, _eventManager, _logger) {
|
|
7175
7541
|
this.store = store2;
|
|
7176
|
-
this.eventManager = eventManager;
|
|
7177
|
-
this.logger = logger;
|
|
7178
7542
|
this.interceptorRegistry = new InterceptorRegistry();
|
|
7179
7543
|
this.middlewareResolver = new MiddlewareResolver(store2);
|
|
7180
7544
|
this.taskComposer = new TaskMiddlewareComposer(
|
|
@@ -7215,14 +7579,6 @@ var MiddlewareManager = class {
|
|
|
7215
7579
|
lock() {
|
|
7216
7580
|
this.interceptorRegistry.lock();
|
|
7217
7581
|
}
|
|
7218
|
-
/**
|
|
7219
|
-
* Adds an interceptor for task or resource middleware execution
|
|
7220
|
-
* Interceptors are executed in the order they are added, with the ability to
|
|
7221
|
-
* modify, log, or prevent middleware execution
|
|
7222
|
-
*
|
|
7223
|
-
* @param kind - The type of middleware to intercept ("task" or "resource")
|
|
7224
|
-
* @param interceptor - The interceptor function to add
|
|
7225
|
-
*/
|
|
7226
7582
|
intercept(kind, interceptor) {
|
|
7227
7583
|
if (kind === "task") {
|
|
7228
7584
|
this.interceptorRegistry.addGlobalTaskInterceptor(
|
|
@@ -7234,13 +7590,6 @@ var MiddlewareManager = class {
|
|
|
7234
7590
|
);
|
|
7235
7591
|
}
|
|
7236
7592
|
}
|
|
7237
|
-
/**
|
|
7238
|
-
* Adds an interceptor for a specific middleware instance with better type safety
|
|
7239
|
-
* This method automatically determines the type and provides type-safe access
|
|
7240
|
-
*
|
|
7241
|
-
* @param middleware - The middleware instance to intercept
|
|
7242
|
-
* @param interceptor - The interceptor function with proper typing
|
|
7243
|
-
*/
|
|
7244
7593
|
interceptMiddleware(middleware, interceptor) {
|
|
7245
7594
|
if (isTaskMiddleware(middleware)) {
|
|
7246
7595
|
this.interceptorRegistry.addTaskMiddlewareInterceptor(
|
|
@@ -7379,12 +7728,17 @@ var Store = class {
|
|
|
7379
7728
|
}
|
|
7380
7729
|
}
|
|
7381
7730
|
registerGlobalComponents() {
|
|
7731
|
+
if (!this.taskRunner) {
|
|
7732
|
+
throw new Error(
|
|
7733
|
+
"TaskRunner is not set. Call store.setTaskRunner() before initializeStore()."
|
|
7734
|
+
);
|
|
7735
|
+
}
|
|
7382
7736
|
const builtInResourcesMap = /* @__PURE__ */ new Map();
|
|
7383
7737
|
builtInResourcesMap.set(globalResources.store, this);
|
|
7384
7738
|
builtInResourcesMap.set(globalResources.eventManager, this.eventManager);
|
|
7385
7739
|
builtInResourcesMap.set(globalResources.logger, this.logger);
|
|
7386
7740
|
builtInResourcesMap.set(globalResources.taskRunner, this.taskRunner);
|
|
7387
|
-
builtInResourcesMap.set(globalResources.serializer,
|
|
7741
|
+
builtInResourcesMap.set(globalResources.serializer, new Serializer());
|
|
7388
7742
|
builtInResourcesMap.set(
|
|
7389
7743
|
globalResources.middlewareManager,
|
|
7390
7744
|
this.middlewareManager
|
|
@@ -7444,8 +7798,11 @@ var Store = class {
|
|
|
7444
7798
|
setTaskRunner(taskRunner) {
|
|
7445
7799
|
this.taskRunner = taskRunner;
|
|
7446
7800
|
}
|
|
7447
|
-
setupRootResource(
|
|
7448
|
-
root
|
|
7801
|
+
setupRootResource(rootDefinition, config) {
|
|
7802
|
+
const root = {
|
|
7803
|
+
...rootDefinition,
|
|
7804
|
+
dependencies: typeof rootDefinition.dependencies === "function" ? rootDefinition.dependencies(config) : rootDefinition.dependencies
|
|
7805
|
+
};
|
|
7449
7806
|
this.root = {
|
|
7450
7807
|
resource: root,
|
|
7451
7808
|
computedDependencies: {},
|
|
@@ -7998,6 +8355,18 @@ var RunResult = class {
|
|
|
7998
8355
|
}
|
|
7999
8356
|
return this.store.resources.get(resourceId).value;
|
|
8000
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");
|
|
8001
8370
|
this.dispose = /* @__PURE__ */ __name(() => {
|
|
8002
8371
|
return this.disposeFn();
|
|
8003
8372
|
}, "dispose");
|
|
@@ -9178,7 +9547,7 @@ function makeAsyncContextBuilder(state) {
|
|
|
9178
9547
|
configSchema: state.configSchema,
|
|
9179
9548
|
meta: state.meta
|
|
9180
9549
|
};
|
|
9181
|
-
return defineAsyncContext(def);
|
|
9550
|
+
return defineAsyncContext(def, state.filePath);
|
|
9182
9551
|
}
|
|
9183
9552
|
};
|
|
9184
9553
|
return builder;
|
|
@@ -9187,8 +9556,10 @@ __name(makeAsyncContextBuilder, "makeAsyncContextBuilder");
|
|
|
9187
9556
|
|
|
9188
9557
|
// src/definers/builders/asyncContext/index.ts
|
|
9189
9558
|
function asyncContextBuilder(id2) {
|
|
9559
|
+
const filePath = getCallerFile();
|
|
9190
9560
|
const initial = Object.freeze({
|
|
9191
9561
|
id: id2,
|
|
9562
|
+
filePath,
|
|
9192
9563
|
serialize: void 0,
|
|
9193
9564
|
parse: void 0,
|
|
9194
9565
|
configSchema: void 0,
|
|
@@ -9661,7 +10032,7 @@ function override(base) {
|
|
|
9661
10032
|
}
|
|
9662
10033
|
__name(override, "override");
|
|
9663
10034
|
|
|
9664
|
-
// src/
|
|
10035
|
+
// src/public.ts
|
|
9665
10036
|
var globals = {
|
|
9666
10037
|
events: globalEvents,
|
|
9667
10038
|
resources: globalResources,
|
|
@@ -9689,6 +10060,7 @@ var r = Object.freeze({
|
|
|
9689
10060
|
exports.DependencyProcessor = DependencyProcessor;
|
|
9690
10061
|
exports.Errors = errors_exports;
|
|
9691
10062
|
exports.EventManager = EventManager;
|
|
10063
|
+
exports.LogPrinter = LogPrinter;
|
|
9692
10064
|
exports.Logger = Logger;
|
|
9693
10065
|
exports.MiddlewareManager = MiddlewareManager;
|
|
9694
10066
|
exports.PlatformAdapter = PlatformAdapter;
|
|
@@ -9698,6 +10070,8 @@ exports.RunResult = RunResult;
|
|
|
9698
10070
|
exports.Semaphore = Semaphore;
|
|
9699
10071
|
exports.Serializer = Serializer;
|
|
9700
10072
|
exports.Store = Store;
|
|
10073
|
+
exports.SymbolPolicy = SymbolPolicy;
|
|
10074
|
+
exports.SymbolPolicyErrorMessage = SymbolPolicyErrorMessage;
|
|
9701
10075
|
exports.TaskRunner = TaskRunner;
|
|
9702
10076
|
exports.allFalse = allFalse;
|
|
9703
10077
|
exports.asyncContext = defineAsyncContext;
|
|
@@ -9712,7 +10086,6 @@ exports.debugLevels = debugLevels;
|
|
|
9712
10086
|
exports.definitions = defs_exports;
|
|
9713
10087
|
exports.event = defineEvent;
|
|
9714
10088
|
exports.getConfig = getConfig;
|
|
9715
|
-
exports.getDefaultSerializer = getDefaultSerializer;
|
|
9716
10089
|
exports.globals = globals;
|
|
9717
10090
|
exports.hook = defineHook;
|
|
9718
10091
|
exports.journal = journal;
|