@bluelibs/runner 5.4.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 +5426 -2403
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.mjs +5426 -2400
- package/dist/browser/index.mjs.map +1 -1
- package/dist/edge/index.cjs +5426 -2403
- package/dist/edge/index.cjs.map +1 -1
- package/dist/edge/index.mjs +5426 -2400
- package/dist/edge/index.mjs.map +1 -1
- package/dist/node/node.cjs +7208 -6935
- package/dist/node/node.cjs.map +1 -1
- package/dist/node/node.mjs +7167 -6936
- 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/hook/fluent-builder.interface.d.ts +3 -0
- package/dist/types/definers/builders/hook/types.d.ts +3 -0
- 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 +2 -0
- 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/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/utils.d.ts +6 -1
- 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 -73
- 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 +26 -5
- 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 +18 -0
- 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 +20 -3
- package/dist/types/models/StoreRegistry.d.ts +2 -0
- 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 +1 -0
- package/dist/types/models/middleware/ValidationHelper.d.ts +3 -6
- package/dist/types/models/utils/disposeOrder.d.ts +5 -1
- 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 +14 -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 +4 -3
- 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 +5 -3
- package/dist/types/node/durable/resources/redisDurableResource.d.ts +5 -3
- 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/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/requestHandlers.d.ts +3 -1
- package/dist/types/node/exposure/requestIdentity.d.ts +3 -0
- package/dist/types/node/exposure/resource.d.ts +4 -4
- package/dist/types/node/exposure/resourceTypes.d.ts +6 -0
- package/dist/types/node/exposure/serverLifecycle.d.ts +2 -0
- package/dist/types/node/node.d.ts +1 -1
- 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/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 +2 -2
- package/dist/types/platform/adapters/universal.d.ts +1 -1
- package/dist/types/platform/index.d.ts +2 -2
- package/dist/types/platform/types.d.ts +1 -1
- package/dist/types/public.d.ts +374 -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/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/tag.d.ts +1 -0
- package/dist/types/types/tagged.d.ts +2 -2
- package/dist/types/types/task.d.ts +2 -2
- package/dist/types/types/taskMiddleware.d.ts +8 -0
- package/dist/types/types/utilities.d.ts +25 -3
- package/dist/ui/assets/{index-Bo7Gi6Vq.js → index-B4lZaXFJ.js} +48 -48
- package/dist/ui/index.html +1 -1
- package/dist/universal/index.cjs +5426 -2403
- package/dist/universal/index.cjs.map +1 -1
- package/dist/universal/index.mjs +5426 -2400
- package/dist/universal/index.mjs.map +1 -1
- package/package.json +18 -14
- package/readmes/AI.md +147 -42
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
|
|