@bluelibs/runner 5.3.0 → 5.5.0
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 +23 -22
- package/dist/browser/index.cjs +6159 -3049
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.mjs +6157 -3046
- package/dist/browser/index.mjs.map +1 -1
- package/dist/edge/index.cjs +6159 -3049
- package/dist/edge/index.cjs.map +1 -1
- package/dist/edge/index.mjs +6157 -3046
- package/dist/edge/index.mjs.map +1 -1
- package/dist/node/node.cjs +10843 -10814
- package/dist/node/node.cjs.map +1 -1
- package/dist/node/node.mjs +10801 -10770
- package/dist/node/node.mjs.map +1 -1
- package/dist/types/definers/builders/asyncContext/fluent-builder.interface.d.ts +4 -0
- package/dist/types/definers/builders/error/fluent-builder.interface.d.ts +8 -1
- package/dist/types/definers/builders/error/index.d.ts +1 -0
- package/dist/types/definers/builders/error/types.d.ts +2 -1
- package/dist/types/definers/builders/error/utils.d.ts +1 -0
- package/dist/types/definers/builders/event/fluent-builder.interface.d.ts +10 -0
- package/dist/types/definers/builders/event/utils.d.ts +1 -4
- package/dist/types/definers/builders/hook/fluent-builder.interface.d.ts +3 -0
- package/dist/types/definers/builders/hook/types.d.ts +3 -0
- package/dist/types/definers/builders/hook/utils.d.ts +1 -4
- package/dist/types/definers/builders/middleware/index.d.ts +4 -2
- package/dist/types/definers/builders/middleware/resource.interface.d.ts +7 -0
- package/dist/types/definers/builders/middleware/task.interface.d.ts +7 -0
- package/dist/types/definers/builders/middleware/types.d.ts +22 -3
- package/dist/types/definers/builders/middleware/utils.d.ts +3 -4
- package/dist/types/definers/builders/override/hook.d.ts +3 -0
- package/dist/types/definers/builders/override/index.d.ts +5 -0
- package/dist/types/definers/builders/resource/fluent-builder.interface.d.ts +15 -0
- package/dist/types/definers/builders/resource/index.d.ts +0 -1
- package/dist/types/definers/builders/resource/types.d.ts +1 -0
- package/dist/types/definers/builders/resource/utils.d.ts +1 -4
- package/dist/types/definers/builders/shared/mergeUtils.d.ts +5 -0
- package/dist/types/definers/builders/tag/fluent-builder.interface.d.ts +4 -0
- package/dist/types/definers/builders/tag/utils.d.ts +1 -0
- package/dist/types/definers/builders/task/fluent-builder.interface.d.ts +4 -0
- package/dist/types/definers/builders/task/index.d.ts +2 -2
- package/dist/types/definers/builders/task/utils.d.ts +1 -4
- package/dist/types/definers/builders/utils.d.ts +7 -2
- package/dist/types/definers/defineError.d.ts +12 -2
- package/dist/types/definers/resourceFork.d.ts +3 -1
- package/dist/types/definers/tools.d.ts +12 -12
- package/dist/types/errors/domain-error-ids.d.ts +44 -0
- package/dist/types/errors/domain-runtime.errors.d.ts +136 -0
- package/dist/types/errors/foundation.errors.d.ts +125 -0
- package/dist/types/errors/generic.errors.d.ts +1 -0
- package/dist/types/errors/model-runtime.errors.d.ts +20 -0
- package/dist/types/errors.d.ts +5 -74
- package/dist/types/globals/cron/cron-parser.d.ts +4 -0
- package/dist/types/globals/cron/cron.errors.d.ts +8 -0
- package/dist/types/globals/cron/cron.resource.d.ts +12 -0
- package/dist/types/globals/cron/cron.tag.d.ts +2 -0
- package/dist/types/globals/cron/types.d.ts +25 -0
- package/dist/types/globals/globalMiddleware.d.ts +87 -13
- package/dist/types/globals/globalResources.d.ts +110 -24
- package/dist/types/globals/globalTags.d.ts +10 -2
- package/dist/types/globals/middleware/cache.middleware.d.ts +173 -13
- package/dist/types/globals/middleware/circuitBreaker.middleware.d.ts +5 -1
- package/dist/types/globals/middleware/concurrency.middleware.d.ts +3 -0
- package/dist/types/globals/middleware/fallback.middleware.d.ts +8 -1
- package/dist/types/globals/middleware/rateLimit.middleware.d.ts +4 -1
- package/dist/types/globals/middleware/retry.middleware.d.ts +5 -0
- package/dist/types/globals/middleware/temporal.middleware.d.ts +19 -19
- package/dist/types/globals/middleware/timeout.middleware.d.ts +4 -1
- package/dist/types/globals/resources/eventManager.resource.d.ts +2 -0
- package/dist/types/globals/resources/logger.resource.d.ts +2 -0
- package/dist/types/globals/resources/middlewareManager.resource.d.ts +2 -0
- package/dist/types/globals/resources/queue.resource.d.ts +2 -0
- package/dist/types/globals/resources/runtime.resource.d.ts +2 -0
- package/dist/types/globals/resources/serializer.resource.d.ts +2 -0
- package/dist/types/globals/resources/store.resource.d.ts +2 -0
- package/dist/types/globals/resources/taskRunner.resource.d.ts +2 -0
- package/dist/types/globals/resources/tunnel/plan.d.ts +6 -3
- package/dist/types/globals/resources/tunnel/tunnel.policy.tag.d.ts +2 -0
- package/dist/types/globals/resources/tunnel/types.d.ts +7 -2
- package/dist/types/globals/types.d.ts +6 -1
- package/dist/types/models/BuiltinsRegistry.d.ts +2 -0
- package/dist/types/models/DependencyProcessor.d.ts +27 -6
- package/dist/types/models/EventManager.d.ts +9 -9
- package/dist/types/models/LogPrinter.d.ts +5 -5
- package/dist/types/models/Logger.d.ts +16 -16
- package/dist/types/models/MiddlewareManager.d.ts +20 -2
- package/dist/types/models/OverrideManager.d.ts +4 -1
- package/dist/types/models/Queue.d.ts +2 -0
- package/dist/types/models/RunResult.d.ts +290 -26
- package/dist/types/models/Store.d.ts +29 -12
- package/dist/types/models/StoreRegistry.d.ts +16 -13
- package/dist/types/models/StoreValidator.d.ts +2 -0
- package/dist/types/models/TaskRunner.d.ts +3 -1
- package/dist/types/models/VisibilityTracker.d.ts +75 -0
- package/dist/types/models/dependency-processor/DependencyExtractor.d.ts +23 -0
- package/dist/types/models/dependency-processor/HookEventBuffer.d.ts +15 -0
- package/dist/types/models/dependency-processor/ResourceScheduler.d.ts +10 -0
- package/dist/types/models/event/EmissionExecutor.d.ts +5 -4
- package/dist/types/models/event/ListenerRegistry.d.ts +2 -0
- package/dist/types/models/index.d.ts +1 -3
- package/dist/types/models/middleware/InterceptorRegistry.d.ts +13 -4
- package/dist/types/models/middleware/ResourceMiddlewareComposer.d.ts +3 -2
- package/dist/types/models/middleware/ValidationHelper.d.ts +3 -6
- package/dist/types/models/utils/buildDependencyGraph.d.ts +12 -0
- package/dist/types/models/utils/dependencyStrategies.d.ts +15 -0
- package/dist/types/models/utils/disposeOrder.d.ts +11 -0
- package/dist/types/models/utils/resourceDependencyIds.d.ts +1 -0
- package/dist/types/node/durable/bus/MemoryEventBus.d.ts +10 -1
- package/dist/types/node/durable/bus/NoopEventBus.d.ts +1 -1
- package/dist/types/node/durable/bus/RedisEventBus.d.ts +8 -2
- package/dist/types/node/durable/core/CronParser.d.ts +2 -13
- package/dist/types/node/durable/core/DurableResource.d.ts +15 -32
- package/dist/types/node/durable/core/DurableService.d.ts +1 -0
- package/dist/types/node/durable/core/DurableWorker.d.ts +4 -2
- package/dist/types/node/durable/core/createRunnerDurableRuntime.d.ts +2 -0
- package/dist/types/node/durable/core/interfaces/bus.d.ts +1 -1
- package/dist/types/node/durable/core/interfaces/resource.d.ts +61 -0
- package/dist/types/node/durable/core/interfaces/service.d.ts +2 -0
- package/dist/types/node/durable/core/interfaces/store.d.ts +5 -0
- package/dist/types/node/durable/core/managers/ExecutionManager.d.ts +1 -0
- package/dist/types/node/durable/core/managers/PollingManager.d.ts +3 -1
- package/dist/types/node/durable/core/resource.d.ts +6 -5
- package/dist/types/node/durable/core/utils.d.ts +11 -1
- package/dist/types/node/durable/queue/RabbitMQQueue.d.ts +4 -0
- package/dist/types/node/durable/resources/memoryDurableResource.d.ts +7 -5
- package/dist/types/node/durable/resources/redisDurableResource.d.ts +7 -5
- package/dist/types/node/durable/store/MemoryStore.d.ts +2 -0
- package/dist/types/node/durable/store/RedisStore.d.ts +1 -0
- package/dist/types/node/durable/tags/durableWorkflow.tag.d.ts +6 -1
- package/dist/types/node/exposure/allowList.d.ts +2 -1
- package/dist/types/node/exposure/handlers/contextWrapper.d.ts +6 -2
- package/dist/types/node/exposure/handlers/errorHandlers.d.ts +1 -0
- package/dist/types/node/exposure/handlers/eventHandler.d.ts +1 -0
- package/dist/types/node/exposure/handlers/taskHandler.d.ts +3 -1
- package/dist/types/node/exposure/logging.d.ts +1 -0
- package/dist/types/node/exposure/requestContext.d.ts +1 -1
- package/dist/types/node/exposure/requestHandlers.d.ts +3 -1
- package/dist/types/node/exposure/requestIdentity.d.ts +3 -0
- package/dist/types/node/exposure/resource.d.ts +7 -7
- package/dist/types/node/exposure/resourceTypes.d.ts +6 -0
- package/dist/types/node/exposure/serverLifecycle.d.ts +2 -0
- package/dist/types/node/http/http-mixed-client.factory.resource.d.ts +1 -1
- package/dist/types/node/http/http-smart-client.factory.resource.d.ts +1 -1
- package/dist/types/node/node.d.ts +1 -184
- package/dist/types/node/tunnel/allowlist.d.ts +10 -1
- package/dist/types/platform/adapters/browser.d.ts +1 -1
- package/dist/types/platform/adapters/edge.d.ts +17 -0
- package/dist/types/platform/adapters/node-als.d.ts +1 -1
- package/dist/types/platform/adapters/node.d.ts +1 -1
- package/dist/types/platform/adapters/universal-generic.d.ts +5 -2
- package/dist/types/platform/adapters/universal.d.ts +1 -1
- package/dist/types/platform/index.d.ts +3 -2
- package/dist/types/platform/types.d.ts +8 -2
- package/dist/types/public.d.ts +376 -20
- package/dist/types/run.d.ts +17 -1
- package/dist/types/serializer/Serializer.d.ts +1 -41
- package/dist/types/serializer/errors.d.ts +8 -0
- package/dist/types/serializer/marker-key-escapes.d.ts +2 -0
- package/dist/types/serializer/serialize-utils.d.ts +1 -1
- package/dist/types/serializer/type-registry.d.ts +0 -1
- package/dist/types/serializer/types.d.ts +7 -6
- package/dist/types/testing.d.ts +1 -0
- package/dist/types/tools/LockableMap.d.ts +20 -0
- package/dist/types/tools/getAllThrows.d.ts +13 -0
- package/dist/types/tools/throws.d.ts +1 -1
- package/dist/types/types/error.d.ts +25 -2
- package/dist/types/types/event.d.ts +35 -0
- package/dist/types/types/hook.d.ts +8 -0
- package/dist/types/types/resource.d.ts +13 -1
- package/dist/types/types/resourceMiddleware.d.ts +8 -0
- package/dist/types/types/runner.d.ts +56 -0
- package/dist/types/types/storeTypes.d.ts +5 -1
- package/dist/types/types/symbols.d.ts +1 -1
- package/dist/types/types/tag.d.ts +1 -0
- package/dist/types/types/tagged.d.ts +2 -2
- package/dist/types/types/task.d.ts +3 -3
- package/dist/types/types/taskMiddleware.d.ts +8 -0
- package/dist/types/types/utilities.d.ts +25 -3
- package/dist/ui/assets/index-B4lZaXFJ.js +141 -0
- package/dist/ui/assets/index-Y_9aLumt.css +1 -0
- package/dist/ui/index.html +2 -3
- package/dist/universal/index.cjs +6159 -3049
- package/dist/universal/index.cjs.map +1 -1
- package/dist/universal/index.mjs +6157 -3046
- package/dist/universal/index.mjs.map +1 -1
- package/package.json +18 -15
- package/readmes/AI.md +181 -45
- package/dist/ui/assets/index-2cb8f39f.js +0 -141
- package/dist/ui/assets/index-b1f988bf.css +0 -1
- /package/dist/types/{tunnels → tools}/buildUniversalManifest.d.ts +0 -0
- /package/dist/types/{processHooks.d.ts → tools/processShutdownHooks.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -28,16 +28,13 @@ The goal is simple: keep dependencies explicit, keep lifecycle predictable, and
|
|
|
28
28
|
import { r, run, globals } from "@bluelibs/runner";
|
|
29
29
|
import { z } from "zod";
|
|
30
30
|
|
|
31
|
+
// resources are singletons with lifecycle management and async construction
|
|
31
32
|
const db = r
|
|
32
33
|
.resource("app.db")
|
|
33
|
-
.init(async () =>
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
...input,
|
|
38
|
-
}),
|
|
39
|
-
},
|
|
40
|
-
}))
|
|
34
|
+
.init(async () => {
|
|
35
|
+
const conn = await postgres.connect(process.env.DB_URL);
|
|
36
|
+
return conn;
|
|
37
|
+
})
|
|
41
38
|
.build();
|
|
42
39
|
|
|
43
40
|
const mailer = r
|
|
@@ -53,7 +50,7 @@ const mailer = r
|
|
|
53
50
|
const createUser = r
|
|
54
51
|
.task("users.create")
|
|
55
52
|
.dependencies({ db, mailer })
|
|
56
|
-
.middleware([globals.middleware.task.retry.with({
|
|
53
|
+
.middleware([globals.middleware.task.retry.with({ retries: 3 })])
|
|
57
54
|
.inputSchema(z.object({ name: z.string(), email: z.string().email() }))
|
|
58
55
|
.run(async (input, { db, mailer }) => {
|
|
59
56
|
const user = await db.users.insert(input);
|
|
@@ -63,7 +60,11 @@ const createUser = r
|
|
|
63
60
|
.build();
|
|
64
61
|
|
|
65
62
|
// Compose resources and run your application
|
|
66
|
-
const app = r
|
|
63
|
+
const app = r
|
|
64
|
+
.resource("app") // top-level app resource
|
|
65
|
+
.register([db, mailer, createUser]) // register all elements
|
|
66
|
+
.build();
|
|
67
|
+
|
|
67
68
|
const runtime = await run(app);
|
|
68
69
|
await runtime.runTask(createUser, { name: "Ada", email: "ada@example.com" });
|
|
69
70
|
// await runtime.dispose() when you are done.
|
|
@@ -103,13 +104,13 @@ await runtime.runTask(createUser, { name: "Ada", email: "ada@example.com" });
|
|
|
103
104
|
|
|
104
105
|
## Platform Support (Quick Summary)
|
|
105
106
|
|
|
106
|
-
| Capability
|
|
107
|
-
|
|
|
107
|
+
| Capability | Node.js | Browser | Edge | Notes |
|
|
108
|
+
| ------------------------------------------------------ | ------- | ------- | ---- | ------------------------------------------ |
|
|
108
109
|
| Core runtime (tasks/resources/middleware/events/hooks) | Full | Full | Full | Platform adapters hide runtime differences |
|
|
109
|
-
| Async Context (`r.asyncContext`)
|
|
110
|
-
| Durable workflows (`@bluelibs/runner/node`)
|
|
111
|
-
| Tunnels client (`
|
|
112
|
-
| Tunnels server (`@bluelibs/runner/node`)
|
|
110
|
+
| Async Context (`r.asyncContext`) | Full | None | None | Requires Node.js `AsyncLocalStorage` |
|
|
111
|
+
| Durable workflows (`@bluelibs/runner/node`) | Full | None | None | Node-only module |
|
|
112
|
+
| Tunnels client (`createHttpClient`) | Full | Full | Full | Requires `fetch` |
|
|
113
|
+
| Tunnels server (`@bluelibs/runner/node`) | Full | None | None | Exposes tasks/events over HTTP |
|
|
113
114
|
|
|
114
115
|
---
|
|
115
116
|
|
|
@@ -117,12 +118,12 @@ await runtime.runTask(createUser, { name: "Ada", email: "ada@example.com" });
|
|
|
117
118
|
|
|
118
119
|
Use these minimums before starting:
|
|
119
120
|
|
|
120
|
-
| Requirement | Minimum
|
|
121
|
-
| --------------- |
|
|
122
|
-
| Node.js | `18.x`
|
|
123
|
-
| TypeScript | `5.6+` (recommended)
|
|
124
|
-
| Package manager | npm / pnpm / yarn / bun
|
|
125
|
-
| `fetch` runtime | Built-in or polyfilled
|
|
121
|
+
| Requirement | Minimum | Notes |
|
|
122
|
+
| --------------- | ----------------------- | ----------------------------------------------------------------------- |
|
|
123
|
+
| Node.js | `18.x` | Enforced by `package.json#engines.node` |
|
|
124
|
+
| TypeScript | `5.6+` (recommended) | Required for typed DX and examples in this repository |
|
|
125
|
+
| Package manager | npm / pnpm / yarn / bun | Examples use npm, but any modern package manager works |
|
|
126
|
+
| `fetch` runtime | Built-in or polyfilled | Required for tunnel clients (`createHttpClient`, universal HTTP client) |
|
|
126
127
|
|
|
127
128
|
If you use the Node-only package (`@bluelibs/runner/node`) for durable workflows or exposure, stay on a supported Node LTS line.
|
|
128
129
|
|