@nwire/forge 0.8.0 → 0.8.17

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.
Files changed (51) hide show
  1. package/README.md +132 -71
  2. package/dist/__tests__/actor-workflow-hooks.test.js +3 -1
  3. package/dist/__tests__/actor-workflow-hooks.test.js.map +1 -1
  4. package/dist/__tests__/lifecycle-logging.test.js.map +1 -1
  5. package/dist/__tests__/plugin-app-narrow.test.d.ts +12 -0
  6. package/dist/__tests__/plugin-app-narrow.test.d.ts.map +1 -0
  7. package/dist/__tests__/plugin-app-narrow.test.js +77 -0
  8. package/dist/__tests__/plugin-app-narrow.test.js.map +1 -0
  9. package/dist/__tests__/plugin-stress.test.js +2 -2
  10. package/dist/__tests__/plugin-stress.test.js.map +1 -1
  11. package/dist/__tests__/public-marker.test.js +7 -3
  12. package/dist/__tests__/public-marker.test.js.map +1 -1
  13. package/dist/actor-store.d.ts.map +1 -1
  14. package/dist/actor-store.js.map +1 -1
  15. package/dist/create-app.d.ts +9 -1
  16. package/dist/create-app.d.ts.map +1 -1
  17. package/dist/create-app.js +29 -13
  18. package/dist/create-app.js.map +1 -1
  19. package/dist/define-action.d.ts +71 -7
  20. package/dist/define-action.d.ts.map +1 -1
  21. package/dist/define-action.js +101 -27
  22. package/dist/define-action.js.map +1 -1
  23. package/dist/define-actor.js.map +1 -1
  24. package/dist/define-handler.d.ts +18 -1
  25. package/dist/define-handler.d.ts.map +1 -1
  26. package/dist/define-handler.js +7 -0
  27. package/dist/define-handler.js.map +1 -1
  28. package/dist/define-plugin.d.ts +21 -0
  29. package/dist/define-plugin.d.ts.map +1 -1
  30. package/dist/define-plugin.js +66 -0
  31. package/dist/define-plugin.js.map +1 -1
  32. package/dist/define-query.d.ts +66 -12
  33. package/dist/define-query.d.ts.map +1 -1
  34. package/dist/define-query.js +47 -18
  35. package/dist/define-query.js.map +1 -1
  36. package/dist/dev-logger.d.ts.map +1 -1
  37. package/dist/dev-logger.js +5 -2
  38. package/dist/dev-logger.js.map +1 -1
  39. package/dist/event-message.d.ts +9 -2
  40. package/dist/event-message.d.ts.map +1 -1
  41. package/dist/event-message.js +10 -3
  42. package/dist/event-message.js.map +1 -1
  43. package/dist/index.d.ts +1 -1
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +1 -1
  46. package/dist/index.js.map +1 -1
  47. package/dist/runtime.d.ts +9 -3
  48. package/dist/runtime.d.ts.map +1 -1
  49. package/dist/runtime.js +32 -13
  50. package/dist/runtime.js.map +1 -1
  51. package/package.json +11 -11
@@ -53,6 +53,7 @@ import type { ActorDefinition } from "./define-actor.js";
53
53
  import type { MessageEnvelope } from "@nwire/envelope";
54
54
  import type { FrameworkEventDefinition } from "./framework-events.js";
55
55
  import type { FrameworkEventHandler } from "./framework-event-bus.js";
56
+ import type { AppPluginDefinition } from "@nwire/app";
56
57
  /** Hook fired by the runtime after an actor transitions to a new state. */
57
58
  export type ActorTransitionHook = (actor: ActorDefinition, key: string, fromState: string, toState: string, event: EventMessage, envelope: MessageEnvelope) => Promise<void> | void;
58
59
  export interface PluginActorHooks {
@@ -171,4 +172,24 @@ export declare function buildPluginContext(container: Container, runtime: Runtim
171
172
  readonly boots: Array<() => Promise<void> | void>;
172
173
  readonly shutdowns: Array<() => Promise<void> | void>;
173
174
  };
175
+ /**
176
+ * Adapt a narrow `@nwire/app` plugin into the rich forge `PluginDefinition`
177
+ * createApp expects. The narrow shape (provide / on / boot / shutdown) is a
178
+ * strict subset of the rich shape, so the adaptation is straight forwarding:
179
+ *
180
+ * - `provide(name, lifecycle)` becomes a `bind` whose factory invokes the
181
+ * lifecycle's `boot()` once, plus a shutdown step that runs
182
+ * `lifecycle.shutdown(value)` against the resolved value if it was ever
183
+ * materialized. Lazy resolution matches the rich `bind` contract — a
184
+ * value nobody asks for is never booted (and therefore never torn down).
185
+ * - `on(FrameworkEvent, handler, prio?)` maps 1:1 onto `runtime.onFramework`,
186
+ * which is what the rich `api.on` already does internally.
187
+ * - `boot(fn)` / `shutdown(fn)` map 1:1.
188
+ *
189
+ * The narrow plugin's `setup` may be async; we honor that by returning a
190
+ * Promise from the rich setup. createApp's sync register loop rejects async
191
+ * rich setups today, so app-plugin authors who need async work should put it
192
+ * inside `api.boot(...)` — same rule as forge's closure form.
193
+ */
194
+ export declare function adaptAppPlugin(app: AppPluginDefinition): PluginDefinition;
174
195
  //# sourceMappingURL=define-plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"define-plugin.d.ts","sourceRoot":"","sources":["../src/define-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"define-plugin.d.ts","sourceRoot":"","sources":["../src/define-plugin.ts"],"names":[],"mappings":"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"}
@@ -151,4 +151,70 @@ config, pluginName = "anonymous") {
151
151
  };
152
152
  return { api, boots, shutdowns };
153
153
  }
154
+ /**
155
+ * Adapt a narrow `@nwire/app` plugin into the rich forge `PluginDefinition`
156
+ * createApp expects. The narrow shape (provide / on / boot / shutdown) is a
157
+ * strict subset of the rich shape, so the adaptation is straight forwarding:
158
+ *
159
+ * - `provide(name, lifecycle)` becomes a `bind` whose factory invokes the
160
+ * lifecycle's `boot()` once, plus a shutdown step that runs
161
+ * `lifecycle.shutdown(value)` against the resolved value if it was ever
162
+ * materialized. Lazy resolution matches the rich `bind` contract — a
163
+ * value nobody asks for is never booted (and therefore never torn down).
164
+ * - `on(FrameworkEvent, handler, prio?)` maps 1:1 onto `runtime.onFramework`,
165
+ * which is what the rich `api.on` already does internally.
166
+ * - `boot(fn)` / `shutdown(fn)` map 1:1.
167
+ *
168
+ * The narrow plugin's `setup` may be async; we honor that by returning a
169
+ * Promise from the rich setup. createApp's sync register loop rejects async
170
+ * rich setups today, so app-plugin authors who need async work should put it
171
+ * inside `api.boot(...)` — same rule as forge's closure form.
172
+ */
173
+ export function adaptAppPlugin(app) {
174
+ return {
175
+ $kind: "plugin",
176
+ name: app.name,
177
+ $source: app.$source,
178
+ setup(ctx) {
179
+ // bus is exposed on the narrow context for advanced cases (the rich
180
+ // `on` only covers framework events). runtime.frameworkEvents is the
181
+ // same bus the rich api.on writes to, so passing it through is safe.
182
+ const narrow = {
183
+ container: ctx.container,
184
+ bus: ctx.runtime.frameworkEvents,
185
+ provide(name, lifecycle) {
186
+ let booted = false;
187
+ let value;
188
+ ctx.bind(name, () => {
189
+ // The narrow contract permits async boot; bind's factory is
190
+ // sync. We synchronously kick the promise (if any) — consumers
191
+ // resolving an async-provided binding get the Promise back,
192
+ // mirroring what they'd get if they implemented `bind` directly.
193
+ const result = lifecycle.boot();
194
+ booted = true;
195
+ value = result;
196
+ return result;
197
+ });
198
+ if (lifecycle.shutdown) {
199
+ ctx.shutdown(async () => {
200
+ if (!booted)
201
+ return;
202
+ await lifecycle.shutdown(value);
203
+ });
204
+ }
205
+ },
206
+ on(event, handler, priority) {
207
+ ctx.on(event, handler, priority);
208
+ },
209
+ boot(fn) {
210
+ ctx.boot(fn);
211
+ },
212
+ shutdown(fn) {
213
+ ctx.shutdown(fn);
214
+ },
215
+ };
216
+ return app.setup(narrow);
217
+ },
218
+ };
219
+ }
154
220
  //# sourceMappingURL=define-plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"define-plugin.js","sourceRoot":"","sources":["../src/define-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"define-plugin.js","sourceRoot":"","sources":["../src/define-plugin.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,32 @@
1
1
  /**
2
- * `defineQuery` — read function over a projection.
2
+ * `defineQuery` — read function over a projection or a direct adapter (DB,
3
+ * cache, search index). Two forms:
3
4
  *
5
+ * // Projection-driven — runtime hands you `state` + validated input.
4
6
  * export const submissionsByStudent = defineQuery(SubmissionsByStudent, {
5
7
  * name: 'submissions.by-student',
6
- * schema: z.object({ studentId: StudentId, status: SubmissionStatus.optional() }),
7
- * execute: (state, { studentId, status }) =>
8
- * Object.values(state).filter(s => s.studentId === studentId &&
9
- * (!status || s.status === status))
8
+ * schema: z.object({ studentId: StudentId }),
9
+ * execute: (state, { studentId }) =>
10
+ * Object.values(state).filter(s => s.studentId === studentId),
10
11
  * })
11
12
  *
12
- * Queries read from projections, never from actors. They have no envelope, no
13
- * bus, no commit semantics — direct calls. The runtime hands them the
14
- * projection's current state and the validated input.
13
+ * // Handler form no projection, you reach into the container yourself.
14
+ * export const usersById = defineQuery({
15
+ * name: 'users.by-id',
16
+ * schema: z.object({ id: UserId }),
17
+ * handler: async ({ id }, { resolve }) => {
18
+ * const db = resolve<DrizzleDb>('db');
19
+ * return db.select().from(users).where(eq(users.id, id)).limit(1);
20
+ * },
21
+ * })
22
+ *
23
+ * Pick projection form when the read is "eventually-consistent over events
24
+ * I publish in-process." Pick handler form when reading from any external
25
+ * source of truth (Postgres rows, Redis, OpenSearch) — no projection layer
26
+ * needed. Queries are always direct calls: no envelope, no bus, no commit.
15
27
  *
16
- * Naming follows actions: `<domain>.<verb-noun>` so a query is addressable on
17
- * the same routing keyspace as actions when transports need it (HTTP GET
28
+ * Naming follows actions: `<domain>.<verb-noun>` so a query is addressable
29
+ * on the same routing keyspace as actions when transports need it (HTTP GET
18
30
  * routes wire queries; HTTP POST routes wire actions).
19
31
  */
20
32
  import type { z } from "zod";
@@ -26,6 +38,20 @@ export interface QuerySlo {
26
38
  /** Declared p95 latency target in milliseconds. */
27
39
  readonly p95LatencyMs?: number;
28
40
  }
41
+ /**
42
+ * Context handed to a handler-form query. Mirrors `HandlerContext` but read-
43
+ * only: no `request`, no `send`, no `recordThat`. The query may load other
44
+ * projections, resolve DI bindings (typically a DB handle), and read its
45
+ * envelope (request-id, tenant, signal) when one is in play.
46
+ */
47
+ export interface QueryContext {
48
+ /** Resolve a DI binding (db connection, http client, etc.). */
49
+ resolve: <T = unknown>(name: string) => T;
50
+ /** Tenant scope, if the calling transport set one. */
51
+ readonly tenant?: string;
52
+ /** Abort signal — wired from the caller's request when available. */
53
+ readonly signal?: AbortSignal;
54
+ }
29
55
  export interface QueryOptions<TState, TSchema extends ZodTypeAny, TResult> {
30
56
  readonly name: string;
31
57
  readonly description?: string;
@@ -36,17 +62,45 @@ export interface QueryOptions<TState, TSchema extends ZodTypeAny, TResult> {
36
62
  /** Studio-aware: hint that this query is safe to cache. */
37
63
  readonly cacheable?: boolean;
38
64
  }
65
+ /**
66
+ * Options for handler-form `defineQuery({ name, schema, handler })`. No
67
+ * projection, no state — you read from whatever source you care to via
68
+ * `ctx.resolve<DbType>("db")` (or any registered binding).
69
+ */
70
+ export interface QueryHandlerOptions<TSchema extends ZodTypeAny, TResult> {
71
+ readonly name: string;
72
+ readonly description?: string;
73
+ readonly schema: TSchema;
74
+ readonly handler: (input: z.output<TSchema>, ctx: QueryContext) => TResult | Promise<TResult>;
75
+ readonly slo?: QuerySlo;
76
+ readonly cacheable?: boolean;
77
+ }
39
78
  export interface QueryDefinition<TState = unknown, TSchema extends ZodTypeAny = ZodTypeAny, TResult = unknown> extends PublicMarker {
40
79
  readonly $kind: "query";
41
80
  readonly name: string;
42
81
  readonly description?: string;
43
82
  readonly schema: TSchema;
44
- readonly projection: ProjectionDefinition<TState>;
45
- readonly execute: (state: TState, input: z.output<TSchema>) => TResult | Promise<TResult>;
83
+ /**
84
+ * Backing projection. `undefined` for handler-form queries runtime
85
+ * detects this and routes through `handler` directly (no state load).
86
+ */
87
+ readonly projection?: ProjectionDefinition<TState>;
88
+ /**
89
+ * Projection-form executor. Called with the projection's full state + the
90
+ * validated input. Present iff `projection` is present.
91
+ */
92
+ readonly execute?: (state: TState, input: z.output<TSchema>) => TResult | Promise<TResult>;
93
+ /**
94
+ * Handler-form executor. Called with the validated input + a
95
+ * `QueryContext` (DI resolution, tenant, abort signal). Present iff
96
+ * `projection` is absent.
97
+ */
98
+ readonly handler?: (input: z.output<TSchema>, ctx: QueryContext) => TResult | Promise<TResult>;
46
99
  readonly slo?: QuerySlo;
47
100
  readonly cacheable?: boolean;
48
101
  /** Where the query was declared. Studio uses this for IDE-open links. */
49
102
  readonly $source?: SourceLocation;
50
103
  }
51
104
  export declare function defineQuery<TState, TSchema extends ZodTypeAny, TResult>(projection: ProjectionDefinition<TState>, options: QueryOptions<TState, TSchema, TResult>): QueryDefinition<TState, TSchema, TResult>;
105
+ export declare function defineQuery<TSchema extends ZodTypeAny, TResult>(options: QueryHandlerOptions<TSchema, TResult>): QueryDefinition<any, TSchema, TResult>;
52
106
  //# sourceMappingURL=define-query.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"define-query.d.ts","sourceRoot":"","sources":["../src/define-query.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAElE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE9D,4CAA4C;AAC5C,MAAM,WAAW,QAAQ;IACvB,mDAAmD;IACnD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,YAAY,CAAC,MAAM,EAAE,OAAO,SAAS,UAAU,EAAE,OAAO;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1F,6CAA6C;IAC7C,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC;IACxB,2DAA2D;IAC3D,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe,CAC9B,MAAM,GAAG,OAAO,EAChB,OAAO,SAAS,UAAU,GAAG,UAAU,EACvC,OAAO,GAAG,OAAO,CACjB,SAAQ,YAAY;IACpB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAClD,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1F,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,yEAAyE;IACzE,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC;CACnC;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,SAAS,UAAU,EAAE,OAAO,EACrE,UAAU,EAAE,oBAAoB,CAAC,MAAM,CAAC,EACxC,OAAO,EAAE,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,GAC9C,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAY3C"}
1
+ {"version":3,"file":"define-query.d.ts","sourceRoot":"","sources":["../src/define-query.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAElE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE9D,4CAA4C;AAC5C,MAAM,WAAW,QAAQ;IACvB,mDAAmD;IACnD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,+DAA+D;IAC/D,OAAO,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC,CAAC;IAC1C,sDAAsD;IACtD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,qEAAqE;IACrE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY,CAAC,MAAM,EAAE,OAAO,SAAS,UAAU,EAAE,OAAO;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1F,6CAA6C;IAC7C,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC;IACxB,2DAA2D;IAC3D,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB,CAAC,OAAO,SAAS,UAAU,EAAE,OAAO;IACtE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,YAAY,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9F,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe,CAC9B,MAAM,GAAG,OAAO,EAChB,OAAO,SAAS,UAAU,GAAG,UAAU,EACvC,OAAO,GAAG,OAAO,CACjB,SAAQ,YAAY;IACpB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACnD;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3F;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,YAAY,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/F,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,yEAAyE;IACzE,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC;CACnC;AAKD,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,SAAS,UAAU,EAAE,OAAO,EACrE,UAAU,EAAE,oBAAoB,CAAC,MAAM,CAAC,EACxC,OAAO,EAAE,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,GAC9C,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAE7C,wBAAgB,WAAW,CAAC,OAAO,SAAS,UAAU,EAAE,OAAO,EAC7D,OAAO,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,GAE7C,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC"}
@@ -1,35 +1,64 @@
1
1
  /**
2
- * `defineQuery` — read function over a projection.
2
+ * `defineQuery` — read function over a projection or a direct adapter (DB,
3
+ * cache, search index). Two forms:
3
4
  *
5
+ * // Projection-driven — runtime hands you `state` + validated input.
4
6
  * export const submissionsByStudent = defineQuery(SubmissionsByStudent, {
5
7
  * name: 'submissions.by-student',
6
- * schema: z.object({ studentId: StudentId, status: SubmissionStatus.optional() }),
7
- * execute: (state, { studentId, status }) =>
8
- * Object.values(state).filter(s => s.studentId === studentId &&
9
- * (!status || s.status === status))
8
+ * schema: z.object({ studentId: StudentId }),
9
+ * execute: (state, { studentId }) =>
10
+ * Object.values(state).filter(s => s.studentId === studentId),
10
11
  * })
11
12
  *
12
- * Queries read from projections, never from actors. They have no envelope, no
13
- * bus, no commit semantics — direct calls. The runtime hands them the
14
- * projection's current state and the validated input.
13
+ * // Handler form no projection, you reach into the container yourself.
14
+ * export const usersById = defineQuery({
15
+ * name: 'users.by-id',
16
+ * schema: z.object({ id: UserId }),
17
+ * handler: async ({ id }, { resolve }) => {
18
+ * const db = resolve<DrizzleDb>('db');
19
+ * return db.select().from(users).where(eq(users.id, id)).limit(1);
20
+ * },
21
+ * })
22
+ *
23
+ * Pick projection form when the read is "eventually-consistent over events
24
+ * I publish in-process." Pick handler form when reading from any external
25
+ * source of truth (Postgres rows, Redis, OpenSearch) — no projection layer
26
+ * needed. Queries are always direct calls: no envelope, no bus, no commit.
15
27
  *
16
- * Naming follows actions: `<domain>.<verb-noun>` so a query is addressable on
17
- * the same routing keyspace as actions when transports need it (HTTP GET
28
+ * Naming follows actions: `<domain>.<verb-noun>` so a query is addressable
29
+ * on the same routing keyspace as actions when transports need it (HTTP GET
18
30
  * routes wire queries; HTTP POST routes wire actions).
19
31
  */
20
32
  import { captureSourceLocation } from "@nwire/messages";
21
33
  import { markable } from "./public-marker.js";
22
- export function defineQuery(projection, options) {
34
+ export function defineQuery(projectionOrOptions, maybeOptions) {
35
+ const $source = captureSourceLocation();
36
+ // Handler form — first arg is the options object with `handler`.
37
+ if (maybeOptions === undefined) {
38
+ const opts = projectionOrOptions;
39
+ return markable({
40
+ $kind: "query",
41
+ name: opts.name,
42
+ description: opts.description,
43
+ schema: opts.schema,
44
+ handler: opts.handler,
45
+ slo: opts.slo,
46
+ cacheable: opts.cacheable,
47
+ $source,
48
+ });
49
+ }
50
+ // Projection form — first arg is the projection.
51
+ const projection = projectionOrOptions;
23
52
  return markable({
24
53
  $kind: "query",
25
- name: options.name,
26
- description: options.description,
27
- schema: options.schema,
54
+ name: maybeOptions.name,
55
+ description: maybeOptions.description,
56
+ schema: maybeOptions.schema,
28
57
  projection,
29
- execute: options.execute,
30
- slo: options.slo,
31
- cacheable: options.cacheable,
32
- $source: captureSourceLocation(),
58
+ execute: maybeOptions.execute,
59
+ slo: maybeOptions.slo,
60
+ cacheable: maybeOptions.cacheable,
61
+ $source,
33
62
  });
34
63
  }
35
64
  //# sourceMappingURL=define-query.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"define-query.js","sourceRoot":"","sources":["../src/define-query.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAqB,MAAM,iBAAiB,CAAC;AAoC9D,MAAM,UAAU,WAAW,CACzB,UAAwC,EACxC,OAA+C;IAE/C,OAAO,QAAQ,CAAC;QACd,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,UAAU;QACV,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,OAAO,EAAE,qBAAqB,EAAE;KACjC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"define-query.js","sourceRoot":"","sources":["../src/define-query.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAIH,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAqB,MAAM,iBAAiB,CAAC;AA4F9D,MAAM,UAAU,WAAW,CACzB,mBAAyF,EACzF,YAAqD;IAGrD,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;IAExC,iEAAiE;IACjE,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,mBAA4D,CAAC;QAC1E,OAAO,QAAQ,CAAC;YACd,KAAK,EAAE,OAAgB;YACvB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAA+D;YAC7E,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO;SACR,CAA8C,CAAC;IAClD,CAAC;IAED,iDAAiD;IACjD,MAAM,UAAU,GAAG,mBAAmD,CAAC;IACvE,OAAO,QAAQ,CAAC;QACd,KAAK,EAAE,OAAgB;QACvB,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,WAAW,EAAE,YAAY,CAAC,WAAW;QACrC,MAAM,EAAE,YAAY,CAAC,MAAM;QAC3B,UAAU;QACV,OAAO,EAAE,YAAY,CAAC,OAAO;QAC7B,GAAG,EAAE,YAAY,CAAC,GAAG;QACrB,SAAS,EAAE,YAAY,CAAC,SAAS;QACjC,OAAO;KACR,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"dev-logger.d.ts","sourceRoot":"","sources":["../src/dev-logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;IAC9C;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAuDD,uDAAuD;AACvD,wBAAgB,eAAe,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CA8DtD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,MAAM,IAAI,CAQxF"}
1
+ {"version":3,"file":"dev-logger.d.ts","sourceRoot":"","sources":["../src/dev-logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;IAC9C;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAuDD,uDAAuD;AACvD,wBAAgB,eAAe,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAiEtD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,MAAM,IAAI,CAQxF"}
@@ -94,8 +94,11 @@ export function formatTelemetry(rec) {
94
94
  return "";
95
95
  const tag = namespaceTag("hook");
96
96
  const padded = `nwire:hook`.padEnd(14, " ").slice("nwire:hook".length);
97
- const phaseGlyph = rec.phase === "end" ? color("·", GREEN) :
98
- rec.phase === "error" ? color("", RED) : color("?", DIM);
97
+ const phaseGlyph = rec.phase === "end"
98
+ ? color("·", GREEN)
99
+ : rec.phase === "error"
100
+ ? color("✗", RED)
101
+ : color("?", DIM);
99
102
  const stepLabel = rec.stepName ?? `#${rec.stepId}`;
100
103
  const dur = rec.durationMs !== undefined ? dim(` (${rec.durationMs.toFixed(1)}ms)`) : "";
101
104
  const err = rec.error ? ` ${color(rec.error.message, RED)}` : "";
@@ -1 +1 @@
1
- {"version":3,"file":"dev-logger.js","sourceRoot":"","sources":["../src/dev-logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dev-logger.js","sourceRoot":"","sources":["../src/dev-logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAkBH,MAAM,aAAa,GAAiC;IAClD,mBAAmB;IACnB,kBAAkB;IAClB,eAAe;IACf,iBAAiB;IACjB,oBAAoB;IACpB,iBAAiB;IACjB,cAAc;IACd,gBAAgB;IAChB,WAAW;IACX,WAAW;CACZ,CAAC;AAEF;;;;GAIG;AACH,SAAS,YAAY,CAAC,EAAU;IAC9B,MAAM,IAAI,GAAG,SAAS,EAAE,EAAE,CAAC;IAC3B,QAAQ,EAAE,EAAE,CAAC;QACX,KAAK,KAAK;YACR,OAAO,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC1B,KAAK,QAAQ;YACX,OAAO,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC1B,KAAK,MAAM;YACT,OAAO,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3B,KAAK,MAAM;YACT,OAAO,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC1B,KAAK,QAAQ;YACX,OAAO,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC5B,KAAK,OAAO;YACV,OAAO,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC1B;YACE,OAAO,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC;AAED,uEAAuE;AACvE,MAAM,KAAK,GAAG,SAAS,CAAC;AACxB,MAAM,GAAG,GAAG,SAAS,CAAC;AACtB,MAAM,IAAI,GAAG,UAAU,CAAC;AACxB,MAAM,KAAK,GAAG,UAAU,CAAC;AACzB,MAAM,GAAG,GAAG,UAAU,CAAC;AACvB,MAAM,GAAG,GAAG,UAAU,CAAC;AACvB,MAAM,GAAG,GAAG,UAAU,CAAC;AACvB,MAAM,GAAG,GAAG,UAAU,CAAC;AAEvB,SAAS,KAAK,CAAC,IAAY,EAAE,IAAY;IACvC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACvC,OAAO,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,EAAE,CAAC;AAClC,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,eAAe,CAAC,GAAc;IAC5C,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe;IAC/C,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACzC,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,mBAAmB;YACtB,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAC9D,KAAK,kBAAkB;YACrB,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,aAAa,CAAC,MAAM,SAAS,GAAG,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;QAC3N,KAAK,eAAe;YAClB,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,YAAY,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACnL,KAAK,iBAAiB;YACpB,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACvH,KAAK,oBAAoB;YACvB,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC,QAAQ,GAAG,CAAC,eAAe,EAAE,CAAC;QACpI,KAAK,iBAAiB;YACpB,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,OAAO,GAAG,CAAC,WAAW,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAC3F,KAAK,cAAc;YACjB,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,YAAY,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACvH,KAAK,gBAAgB;YACnB,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QACxG,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,mEAAmE;YACnE,iEAAiE;YACjE,sEAAsE;YACtE,IAAI,GAAG,CAAC,KAAK,KAAK,OAAO;gBAAE,OAAO,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACjC,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACvE,MAAM,UAAU,GACd,GAAG,CAAC,KAAK,KAAK,KAAK;gBACjB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC;gBACnB,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,OAAO;oBACrB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC;oBACjB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACxB,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,IAAI,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACnD,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzF,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,UAAU,IAAI,GAAG,GAAG,MAAM,IAAI,GAAG,CAAC,QAAQ,IAAI,SAAS,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;QAC5F,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,iEAAiE;YACjE,iEAAiE;YACjE,8DAA8D;YAC9D,yCAAyC;YACzC,MAAM,UAAU,GAAG,SAAS,GAAG,CAAC,SAAS,EAAE,CAAC;YAC5C,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YAC1C,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC1E,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC7E,mEAAmE;YACnE,sDAAsD;YACtD,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YACpD,kEAAkE;YAClE,MAAM,CAAC,GAAG,GAAG,CAAC,OAAyC,CAAC;YACxD,MAAM,GAAG,GAAa,EAAE,CAAC;YACzB,IAAI,CAAC,EAAE,CAAC;gBACN,IAAI,OAAO,CAAC,CAAC,YAAY,CAAC,KAAK,QAAQ;oBAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAW,CAAC,CAAC;gBAC7E,IAAI,OAAO,CAAC,CAAC,WAAW,CAAC,KAAK,QAAQ;oBAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAW,CAAC,CAAC;gBAC3E,IAAI,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,QAAQ;oBAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAW,CAAC,CAAC;gBACrE,IAAI,OAAO,CAAC,CAAC,YAAY,CAAC,KAAK,QAAQ;oBAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAC5E,CAAC;YACD,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,IAAI,GAAG,IAAI,SAAS,GAAG,OAAO,EAAE,CAAC;QAC7D,CAAC;QACD;YACE,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;IACnC,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,OAAgB,EAAE,OAA0B;IAC1E,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,KAAK,IAAI,aAAa,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;IACtF,OAAO,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,EAAE;QACjC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO;QACjC,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -32,6 +32,13 @@ export type EventFactory<E extends EventDefinition> = ((payload: EventPayload<E>
32
32
  export declare function eventFactory<E extends EventDefinition>(definition: E): EventFactory<E>;
33
33
  /** Type-narrowing predicate. */
34
34
  export declare function isEventMessage(value: unknown): value is EventMessage;
35
- /** Normalize a handler's return value to an EventMessage[]. */
36
- export declare function normalizeEventReturn(value: void | EventMessage | EventMessage[] | null | undefined): EventMessage[];
35
+ /**
36
+ * Normalize a handler's return value to an EventMessage[].
37
+ *
38
+ * Handlers may also return plain data records (e.g. `{ userId }`) for the
39
+ * CRUD case where the value is meant for the caller, not for publication.
40
+ * Such returns yield `[]` here — the original record still survives upstream
41
+ * via `runtime.dispatch`'s return + the `ActionCompleted` event.
42
+ */
43
+ export declare function normalizeEventReturn(value: void | EventMessage | EventMessage[] | Record<string, unknown> | null | undefined): EventMessage[];
37
44
  //# sourceMappingURL=event-message.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-message.d.ts","sourceRoot":"","sources":["../src/event-message.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAErE,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe;IACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;CACnC;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,eAAe,IAAI,CAAC,CACrD,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,KACrB,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG;IACtB,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,eAAe,EAAE,UAAU,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAYtF;AAED,gCAAgC;AAChC,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAOpE;AAED,+DAA+D;AAC/D,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,IAAI,GAAG,YAAY,GAAG,YAAY,EAAE,GAAG,IAAI,GAAG,SAAS,GAC7D,YAAY,EAAE,CAIhB"}
1
+ {"version":3,"file":"event-message.d.ts","sourceRoot":"","sources":["../src/event-message.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAErE,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe;IACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;CACnC;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,eAAe,IAAI,CAAC,CACrD,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,KACrB,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG;IACtB,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,eAAe,EAAE,UAAU,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAYtF;AAED,gCAAgC;AAChC,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAOpE;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,IAAI,GAAG,YAAY,GAAG,YAAY,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GACvF,YAAY,EAAE,CAIhB"}
@@ -40,12 +40,19 @@ export function isEventMessage(value) {
40
40
  typeof value.eventName === "string" &&
41
41
  "payload" in value);
42
42
  }
43
- /** Normalize a handler's return value to an EventMessage[]. */
43
+ /**
44
+ * Normalize a handler's return value to an EventMessage[].
45
+ *
46
+ * Handlers may also return plain data records (e.g. `{ userId }`) for the
47
+ * CRUD case where the value is meant for the caller, not for publication.
48
+ * Such returns yield `[]` here — the original record still survives upstream
49
+ * via `runtime.dispatch`'s return + the `ActionCompleted` event.
50
+ */
44
51
  export function normalizeEventReturn(value) {
45
52
  if (value == null)
46
53
  return [];
47
54
  if (Array.isArray(value))
48
- return value;
49
- return [value];
55
+ return value.filter(isEventMessage);
56
+ return isEventMessage(value) ? [value] : [];
50
57
  }
51
58
  //# sourceMappingURL=event-message.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-message.js","sourceRoot":"","sources":["../src/event-message.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAkBH;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAA4B,UAAa;IACnE,MAAM,OAAO,GAAG,CAAC,OAAwB,EAAmB,EAAE,CAAC,CAAC;QAC9D,SAAS,EAAE,UAAU,CAAC,IAAI;QAC1B,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAoB;KAC7D,CAAC,CAAC;IACH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IACtF,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IACrF,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE;QACzC,KAAK,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI;QAC5B,UAAU,EAAE,KAAK;KAClB,CAAC,CAAC;IACH,OAAO,OAA0B,CAAC;AACpC,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,OAAQ,KAAiC,CAAC,SAAS,KAAK,QAAQ;QAChE,SAAS,IAAI,KAAK,CACnB,CAAC;AACJ,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,oBAAoB,CAClC,KAA8D;IAE9D,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,EAAE,CAAC;IAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,OAAO,CAAC,KAAK,CAAC,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"event-message.js","sourceRoot":"","sources":["../src/event-message.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAkBH;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAA4B,UAAa;IACnE,MAAM,OAAO,GAAG,CAAC,OAAwB,EAAmB,EAAE,CAAC,CAAC;QAC9D,SAAS,EAAE,UAAU,CAAC,IAAI;QAC1B,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAoB;KAC7D,CAAC,CAAC;IACH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IACtF,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IACrF,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE;QACzC,KAAK,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI;QAC5B,UAAU,EAAE,KAAK;KAClB,CAAC,CAAC;IACH,OAAO,OAA0B,CAAC;AACpC,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,OAAQ,KAAiC,CAAC,SAAS,KAAK,QAAQ;QAChE,SAAS,IAAI,KAAK,CACnB,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAAwF;IAExF,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,EAAE,CAAC;IAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAC9D,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9C,CAAC"}
package/dist/index.d.ts CHANGED
@@ -15,7 +15,7 @@
15
15
  * - ctx verbs (in handlers + resolvers): request, send, use, query
16
16
  * - .public() marks an item exposed across module boundaries
17
17
  */
18
- export { defineAction, type ActionDefinition, type ActionMeta, type ActionInput, } from "./define-action.js";
18
+ export { defineAction, isCommandMessage, resolveDispatch, type ActionDefinition, type CallableActionDefinition, type CommandMessage, type ActionMeta, type ActionInput, } from "./define-action.js";
19
19
  export { defineActor, eventKey, type ActorDefinition, type ActorOptions, type ActorOptionsBound, type ActorReaction, type ActorStateConfig, type ActorTimerSpec, type ActorMethod, type ActorInstanceView, } from "./define-actor.js";
20
20
  export { defineSchema, isSchemaDefinition, type SchemaDefinition, type SchemaOptions, type SchemaStateSpec, type SchemaStorageHints, } from "./define-schema.js";
21
21
  export { validate, isInvariantError, InvariantError, type Invariant } from "./validate.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -15,7 +15,7 @@
15
15
  * - ctx verbs (in handlers + resolvers): request, send, use, query
16
16
  * - .public() marks an item exposed across module boundaries
17
17
  */
18
- export { defineAction, } from "./define-action.js";
18
+ export { defineAction, isCommandMessage, resolveDispatch, } from "./define-action.js";
19
19
  export { defineActor, eventKey, } from "./define-actor.js";
20
20
  export { defineSchema, isSchemaDefinition, } from "./define-schema.js";
21
21
  export { validate, isInvariantError, InvariantError } from "./validate.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACL,YAAY,GAIb,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,WAAW,EACX,QAAQ,GAST,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,YAAY,EACZ,kBAAkB,GAKnB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,cAAc,EAAkB,MAAM,YAAY,CAAC;AAExF,OAAO,EACL,aAAa,GAId,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,YAAY,EACZ,cAAc,EACd,oBAAoB,GAGrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,mBAAmB,EAAwB,MAAM,kBAAkB,CAAC;AAE7E,OAAO,EACL,0BAA0B,EAC1B,cAAc,GAGf,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,QAAQ,EAAqB,MAAM,iBAAiB,CAAC;AAE9D,OAAO,EACL,cAAc,EACd,mBAAmB,GAkBpB,MAAM,mBAAmB,CAAC;AAE3B,yDAAyD;AACzD,OAAO,EACL,kBAAkB,GAOnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,oBAAoB,GAKrB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,YAAY,EAA0C,MAAM,iBAAiB,CAAC;AAEvF,OAAO,EAAE,WAAW,EAAwC,MAAM,gBAAgB,CAAC;AAEnF,OAAO,EAAE,UAAU,EAAsC,MAAM,eAAe,CAAC;AAE/E,OAAO,EACL,OAAO,EACP,UAAU,GAMX,MAAM,WAAW,CAAC;AAEnB,mEAAmE;AACnE,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,UAAU,EACV,SAAS,EACT,QAAQ,EACR,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,cAAc,EACd,aAAa,EACb,sBAAsB,GAGvB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,iBAAiB,EAA8B,MAAM,uBAAuB,CAAC;AAEtF,OAAO,EACL,kBAAkB,EAClB,qBAAqB,GAItB,MAAM,eAAe,CAAC;AAEvB,wDAAwD;AACxD,kDAAkD;AAClD,uEAAuE;AACvE,iDAAiD;AAEjD,wEAAwE;AACxE,kEAAkE;AAElE,OAAO,EAAE,MAAM,EAAsB,MAAM,cAAc,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,iBAAiB,EAAe,MAAM,eAAe,CAAC;AAE1F,OAAO,EACL,sBAAsB,EACtB,oBAAoB,GAGrB,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EACL,gBAAgB,GAIjB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,uBAAuB,EAAwB,MAAM,oBAAoB,CAAC;AAEnF,OAAO,EAAE,wBAAwB,EAAyB,MAAM,qBAAqB,CAAC;AAEtF,OAAO,EAAE,WAAW,EAA2C,MAAM,gBAAgB,CAAC;AAEtF,OAAO,EACL,YAAY,GAIb,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,SAAS,GAIV,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAyB,MAAM,cAAc,CAAC;AAEvF,OAAO,EACL,SAAS,GAKV,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,YAAY,GAOb,MAAM,iBAAiB,CAAC;AAEzB,oEAAoE;AACpE,OAAO,EACL,cAAc,EACd,oBAAoB,GAGrB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,WAAW,EACX,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,IAAI,EACJ,UAAU,EACV,QAAQ,GAGT,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,IAAI,EACJ,UAAU,EACV,YAAY,EACZ,MAAM,EACN,MAAM,GAOP,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,QAAQ,EACR,cAAc,EACd,kBAAkB,EAClB,EAAE,EACF,OAAO,EACP,QAAQ,EACR,SAAS,EACT,WAAW,EACX,IAAI,GAKL,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/runtime.d.ts CHANGED
@@ -69,7 +69,7 @@ import { type FrameworkEventDefinition } from "./framework-events.js";
69
69
  * Middleware MUST call `next()` exactly once (or never, if intentionally
70
70
  * short-circuiting). Calling it twice is a programming error.
71
71
  */
72
- export type DispatchMiddleware = (next: () => Promise<EventMessage | EventMessage[] | void>, action: ActionDefinition, input: any, ctx: HandlerContext) => Promise<EventMessage | EventMessage[] | void>;
72
+ export type DispatchMiddleware = (next: () => Promise<EventMessage | EventMessage[] | Record<string, unknown> | void>, action: ActionDefinition, input: any, ctx: HandlerContext) => Promise<EventMessage | EventMessage[] | Record<string, unknown> | void>;
73
73
  /**
74
74
  * Per-action `action.before:<name>` hook context. Chain steps inspect
75
75
  * the input + envelope-bound ctx; setting `vetoed = true` (typically by
@@ -611,7 +611,13 @@ export declare class Runtime {
611
611
  * interval; see `startTimerScheduler(app, intervalMs)` in `create-app.ts`.
612
612
  */
613
613
  fireDueTimers(now?: number): Promise<number>;
614
- private findActionByName;
614
+ /**
615
+ * Resolve an action definition by its routing name. Used by execute/send
616
+ * to support the callable form `execute(myAction(input))` — the
617
+ * `CommandMessage` carries only the name; the runtime looks up the actual
618
+ * action from the registered handler map.
619
+ */
620
+ findActionByName(name: string): ActionDefinition | undefined;
615
621
  /**
616
622
  * Drain every due saga timer from the workflow timer store and route
617
623
  * each as a synthetic event back into the originating workflow. The
@@ -631,7 +637,7 @@ export declare class Runtime {
631
637
  * Run an action through its handler, then atomically apply returned events.
632
638
  * Returns the handler's raw return value (events) for callers that want it.
633
639
  */
634
- dispatch<TInput, TResult extends EventMessage | EventMessage[] | void = EventMessage | EventMessage[] | void>(action: ActionDefinition, input: TInput, parentEnvelope?: MessageEnvelope, opts?: DispatchOptions): Promise<TResult>;
640
+ dispatch<TInput, TResult extends EventMessage | EventMessage[] | Record<string, unknown> | void = EventMessage | EventMessage[] | Record<string, unknown> | void>(action: ActionDefinition, input: TInput, parentEnvelope?: MessageEnvelope, opts?: DispatchOptions): Promise<TResult>;
635
641
  /**
636
642
  * Apply a batch of events: route to actors (state transitions + assigns +
637
643
  * timer scheduling), fold projections, then fire workflows. Used internally