@arki/journal 0.1.0 → 0.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 CHANGED
@@ -152,6 +152,8 @@ A webhook or a retried request can run the same command twice. `journal.run(db,
152
152
 
153
153
  The result must survive JSON, because the replay returns the stored form; a result with a `Date` or a class instance fails the first run with `UNSTABLE_SCHEMA`. Return plain data: an id, a status, a version. A key from outside is scoped by the app: `${tenant}:${eventId}`, never the bare client value. A bound runner and an effect's `ctx.run` take the key per call: `runAs(cmd, input, { idempotencyKey })`.
154
154
 
155
+ A replay does not run the handler, so a permission check inside the handler does not run either. Put it in the command's `authorize` option: `j.command(name, input, handler, { authorize: (input, { tx, meta }) => ... })`. It runs inside the transaction on every call, a replay included, before the stored result is returned; it throws (a `CommandError` `FORBIDDEN`, usually) to refuse, and a refused replay changes nothing.
156
+
155
157
  Receipts hold inputs and results, so they can hold personal data, and `forget` does not touch them. An app that keys personal flows prunes on a schedule: `journal.pruneReceipts(db, { before })`.
156
158
 
157
159
  ### Where commands run from
@@ -432,7 +434,11 @@ The rules, all enforced:
432
434
 
433
435
  ## Dot
434
436
 
435
- `@arki/journal/dot` connects the journal to an `@arki/dot` app. It exports the plugin `journal(...)` and the feature slice `journalHandlers(...)`. `@arki/dot` is an optional peer. The core entry never imports it.
437
+ `@arki/journal/dot` connects the journal to an `@arki/dot` app. It exports two adapters and one feature slice. `@arki/dot` is an optional peer. The core entry never imports it.
438
+
439
+ - `journal(...)`: the driven part, for `.use()`. It publishes `services.journal`, so features can write through it.
440
+ - `journalWorker(...)`: the driving part, for `.serve()`. It runs effects, taps and async projections between `start` and `stop`.
441
+ - `journalHandlers(...)`: the feature slice. A feature lists its projections, effects and taps with it.
436
442
 
437
443
  **Not a Dot app.** List the handlers in one `journal.root.ts`. Start and stop the worker yourself.
438
444
 
@@ -447,11 +453,11 @@ await worker.start();
447
453
  await worker.stop();
448
454
  ```
449
455
 
450
- **Dot app.** Each feature lists its own handlers with `journalHandlers`. The plugin builds the journal from the feature list. There is no root file: `features.ts` is the only list.
456
+ **Dot app.** Each feature lists its own handlers with `journalHandlers`. The app lists its features once, in `.features([...])`. Both adapters read that list. There is no root file.
451
457
 
452
458
  ```ts
453
459
  // src/features/orders/feature.ts
454
- export const orders = defineFeature('orders', {
460
+ export const orders = feature('orders', {
455
461
  needs: { mailer: service<Mailer>() },
456
462
  use: [journalHandlers({ projections: [customerStats], effects: [orderMail] })],
457
463
  });
@@ -460,23 +466,25 @@ export const orders = defineFeature('orders', {
460
466
  export const app = defineApp('shop')
461
467
  .use(db())
462
468
  .use(mailer())
463
- .useAll(plugs(features))
464
- .use(journal({ j, tables: journalTables(), features: tokens(features) }));
469
+ .use(journal({ j, tables: journalTables() }))
470
+ .features([orders, billing])
471
+ .serve(journalWorker());
465
472
 
466
473
  // The gateway binds the door once per request, in its context factory. A procedure calls `context.run`.
467
474
  const run = services.journal.bind(services.db, { actorId: user.id });
468
475
  await run(payOrder, input);
469
476
  ```
470
477
 
471
- - `journal(...)` publishes `services.journal`. It needs the root database under the `db` key. A transaction there is a compile error.
472
- - It starts one worker on `start` and stops it on `stop`. Options: `worker: false` (no worker in this process), `pollMs`, `batchSize`.
473
- - `effects` is a list. An effect with needs gets them from the booted services of the feature that lists it, by name. The feature must declare each one in its own `needs`, or it does not compile.
478
+ - `journal(...)` boots before the features. It reads their `journalHandlers` declarations, not their booted services, so a feature can `need` the journal and write through it, even in its own `boot`.
479
+ - This works because a write never needs an effect's services. A write runs the inline projections, which get only the transaction, and queues each effect's job. The journal is composed with `services: 'worker'`. `journalWorker()` gives each effect and tap its services when it runs it.
480
+ - `journal(...)` needs the root database under the `db` key. A transaction there is a compile error.
481
+ - `journalWorker()` starts one worker on `start` and stops it on `stop`. Options: `pollMs`, `batchSize`, `leaseSeconds`, `listen`, `taps`. A process that serves no worker still writes. Its jobs wait for a process that serves one.
482
+ - An effect with needs gets them from the booted services of the feature that lists it, by name. The feature must declare each one in its own `needs`, or it does not compile. A missing service fails that feature's boot.
474
483
  - Two features may use the same need name for two different services. Each effect gets the service of its own feature.
475
484
  - Every effect is an action in the app manifest (`binding: 'journal'`, id `<name>.run`). Projections are never listed: they run inside the write.
476
485
  - Two features with the same projection name or the same effect name fail the boot. The message names the duplicate and both features.
477
486
  - A feature without `journalHandlers` adds nothing. That is allowed.
478
- - The feature tokens are needs at run time only. A feature mounted after `journal(...)`, or not mounted, fails at boot and not at compile time.
479
- - An app that composed its journal itself passes it: `journal({ journal })`.
487
+ - An app that composed its journal itself passes it: `journal({ journal })`. Serve `journalWorker()` if it has effects, taps or async projections. `journalHandlers` slices are not read in this mode.
480
488
  - A second journal uses Dot's `rename`: `rename(journal({ journal: reports }), { journal: 'reportsJournal' }, 'reports-journal')`.
481
489
  - An effect runs a command with `ctx.run` in both modes. It needs no closure over the journal.
482
490
 
package/dist/api.d.ts CHANGED
@@ -7,7 +7,7 @@ import type { z } from 'zod';
7
7
  import type { EntityBuilder } from './entity.js';
8
8
  import type { HookPoint } from './hooks.js';
9
9
  import type { JournalTables } from './pg.js';
10
- import type { AnyEntity, AnyEventDef, CommandHookContext, DbHandle, Effect, EffectHandlers, EffectHookContext, EntityDef, EntityId, EntityInfo, EntityTable, EventDef, EventOptions, IdTable, JournalWorker, KeyName, Needs, PendingOf, Projection, ProjectionHandlers, ProjectionOptions, RecordedOf, ReducerRow, RootDb, Row, Services, ServicesFor, SingleKey, StrandedJobs, Tap, TapHandlers, TransactionSource, WakeListener } from './types.js';
10
+ import type { AnyEntity, AnyEventDef, CommandHookContext, DbHandle, Effect, EffectHandlers, EffectHookContext, EntityDef, EntityId, EntityInfo, EntityTable, EventDef, EventOptions, HandlerServices, IdTable, JournalWorker, KeyName, Needs, PendingOf, Projection, ProjectionHandlers, ProjectionOptions, RecordedOf, ReducerRow, RootDb, Row, Services, ServicesFor, SingleKey, StrandedJobs, Tap, TapHandlers, TransactionSource, WakeListener } from './types.js';
11
11
  /**
12
12
  * Looks at the locked row, checks the rules, and returns the events to append.
13
13
  * Runs after the row is locked, inside the write's savepoint. `tx` is that
@@ -38,6 +38,27 @@ export type Command<S extends z.ZodType, R, in MetaOut, in Tx extends Transactio
38
38
  readonly name: string;
39
39
  readonly input: S;
40
40
  readonly handler: (input: z.output<S>, context: CommandContext<MetaOut, Tx>) => R;
41
+ /** The command's `authorize` option, when it has one. See {@link CommandOptions}. */
42
+ readonly authorize?: CommandAuthorize<z.output<S>, MetaOut, Tx>;
43
+ };
44
+ /**
45
+ * Decides whether the caller may run a command. It runs inside the command's transaction,
46
+ * after the input and `meta` are parsed, on every call: a call that replays an idempotency
47
+ * receipt runs it too, before the stored result is returned. Throw (a `CommandError`
48
+ * `FORBIDDEN`, usually) to refuse; the run rolls back and nothing is replayed.
49
+ */
50
+ export type CommandAuthorize<Input, in MetaOut, in Tx extends TransactionSource<Tx> = DbHandle> = (input: Input, context: {
51
+ readonly tx: Tx;
52
+ readonly meta: MetaOut;
53
+ }) => void | Promise<void>;
54
+ /** Options of `j.command`. */
55
+ export type CommandOptions<Input, MetaOut, Tx extends TransactionSource<Tx> = DbHandle> = {
56
+ /**
57
+ * Put the caller's permission check here, not in the handler. A repeat with an idempotency
58
+ * key does not run the handler, so a check inside it would not run either: the stored result
59
+ * would go to whoever replays the key. `authorize` runs on the first call and on every replay.
60
+ */
61
+ readonly authorize?: CommandAuthorize<Input, MetaOut, Tx>;
41
62
  };
42
63
  /**
43
64
  * What a command handler receives. `write` and `run` are bound to the command's
@@ -207,11 +228,13 @@ export type Journal<Meta extends z.ZodObject, Tx extends TransactionSource<Tx> =
207
228
  * covers only its own work, and the lease is renewed every half lease while the effect
208
229
  * runs. A lost lease aborts the effect's `ctx.signal`.
209
230
  * Once `signal` is aborted no further job is claimed; the running one sees it as `ctx.signal`.
231
+ * `services`: see `worker`.
210
232
  */
211
233
  drain(db: AppDb & RootDb & TransactionSource<Tx>, opts?: {
212
234
  readonly batchSize?: number;
213
235
  readonly signal?: AbortSignal;
214
236
  readonly leaseSeconds?: number;
237
+ readonly services?: HandlerServices;
215
238
  }): Promise<number>;
216
239
  /**
217
240
  * A loop around `drain`. The same database as `drain`. `stop()` aborts the running
@@ -229,6 +252,12 @@ export type Journal<Meta extends z.ZodObject, Tx extends TransactionSource<Tx> =
229
252
  readonly listen?: WakeListener;
230
253
  /** `false`: a jobs-only worker in a journal that has taps. Another process must listen. */
231
254
  readonly taps?: boolean;
255
+ /**
256
+ * The services of a journal composed with `services: 'worker'`, per effect and tap.
257
+ * A need without a value throws here, before the worker starts. A journal composed
258
+ * with its services ignores this.
259
+ */
260
+ readonly services?: HandlerServices;
232
261
  }): JournalWorker;
233
262
  /**
234
263
  * The Postgres channel every commit that recorded events notifies, with the seq range as
@@ -302,7 +331,7 @@ export type JournalDefinitions<Meta extends z.ZodObject, Tx extends TransactionS
302
331
  * `write` and `run` are bound to one transaction and one parsed `meta`.
303
332
  * Needs only `j`, entities and events, never the finished journal.
304
333
  */
305
- command<S extends z.ZodType, R>(name: string, input: S, handler: (input: z.output<S>, context: CommandContext<z.output<Meta>, Tx>) => R): Command<S, R, z.output<Meta>, Tx>;
334
+ command<S extends z.ZodType, R>(name: string, input: S, handler: (input: z.output<S>, context: CommandContext<z.output<Meta>, Tx>) => R, options?: CommandOptions<z.output<S>, z.output<Meta>, Tx>): Command<S, R, z.output<Meta>, Tx>;
306
335
  /** `on` is `NoInfer` so `E` comes from `entity`; handlers are then contextually typed. */
307
336
  projection<E extends AnyEntity<z.output<Meta>>>(name: string, entity: E | readonly E[], on: NoInfer<ProjectionHandlers<E, z.output<Meta>, Tx>>, opts?: ProjectionOptions): Projection<z.output<Meta>, Tx>;
308
337
  effect<E extends AnyEntity<z.output<Meta>>>(name: string, entity: E | readonly E[], on: NoInfer<EffectHandlers<E, z.output<Meta>, AppDb, RootCommandRunner<Meta, Tx>>>): Effect<z.output<Meta>, AppDb, RootCommandRunner<Meta, Tx>>;
@@ -313,7 +342,7 @@ export type JournalDefinitions<Meta extends z.ZodObject, Tx extends TransactionS
313
342
  effect<E extends AnyEntity<z.output<Meta>>, N extends Needs>(name: string, entity: E | readonly E[], needs: N, on: NoInfer<EffectHandlers<E, z.output<Meta>, AppDb, RootCommandRunner<Meta, Tx>, N>>): Effect<z.output<Meta>, AppDb, RootCommandRunner<Meta, Tx>, N>;
314
343
  /**
315
344
  * Build the runtime journal from the tables and the handlers. `services` holds one
316
- * value for every need of every listed effect, by name. A need without a value throws here.
345
+ * value for every need of every listed effect, by name. A need without a value throws here, unless `services` is `'worker'`.
317
346
  * `const`: the list is read as a tuple, so an effect with needs keeps them next to one without.
318
347
  */
319
348
  /** A tap: in-process, after commit, lossy. See `Tap`. Same shapes as `effect`. */
@@ -326,11 +355,16 @@ export type JournalDefinitions<Meta extends z.ZodObject, Tx extends TransactionS
326
355
  readonly taps?: T;
327
356
  } & ServicesOption<ServicesFor<E> & ServicesFor<T>>): Journal<Meta, Tx, AppDb>;
328
357
  };
329
- /** `services` is required as soon as one listed effect has a need. */
358
+ /**
359
+ * `services` is required as soon as one listed effect has a need. `'worker'` leaves the needs
360
+ * open: writes never need them, and each `worker` or `drain` gives them (`HandlerServices`).
361
+ * That is for services that exist only after the journal: the Dot adapter's features boot
362
+ * after the journal they write through.
363
+ */
330
364
  type ServicesOption<S> = unknown extends S ? {
331
- readonly services?: Services;
365
+ readonly services?: Services | 'worker';
332
366
  } : {
333
- readonly services: S & Services;
367
+ readonly services: (S & Services) | 'worker';
334
368
  };
335
369
  export {};
336
370
  //# sourceMappingURL=api.d.ts.map
package/dist/api.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAI7B,OAAO,KAAK,EAAE,OAAO,EAAkB,UAAU,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAmB,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAYzC,qDAAqD;AACrD,MAAM,MAAM,WAAW,CAAC,IAAI,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE,SAAS,iBAAiB,CAAC,EAAE,CAAC,IAAI;IACpF,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;IAC1B,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,wBAAwB,CAAC,CAAC;IAC5E,wFAAwF;IACxF,QAAQ,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC;IAC1B,kDAAkD;IAClD,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;CAClD,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,IAAI,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE,SAAS,iBAAiB,CAAC,EAAE,CAAC,EAC5F,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,IAuKd,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,UACzB,iBAAiB,CAAC,EAAE,CAAC,WACpB,OAAO,CAAC,CAAC,EAAE,CAAC,kBAAW,EAAE,CAAC,SAC5B,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QACpB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SACZ,UAAU,UACT;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,KACtE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CA6BvB"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAI7B,OAAO,KAAK,EAAE,OAAO,EAAkB,UAAU,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAmB,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAYzC,qDAAqD;AACrD,MAAM,MAAM,WAAW,CAAC,IAAI,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE,SAAS,iBAAiB,CAAC,EAAE,CAAC,IAAI;IACpF,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;IAC1B,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,wBAAwB,CAAC,CAAC;IAC5E,wFAAwF;IACxF,QAAQ,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC;IAC1B,kDAAkD;IAClD,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;CAClD,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,IAAI,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE,SAAS,iBAAiB,CAAC,EAAE,CAAC,EAC5F,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,IA0Kd,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,UACzB,iBAAiB,CAAC,EAAE,CAAC,WACpB,OAAO,CAAC,CAAC,EAAE,CAAC,kBAAW,EAAE,CAAC,SAC5B,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QACpB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SACZ,UAAU,UACT;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,KACtE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CA6BvB"}
package/dist/command.js CHANGED
@@ -99,6 +99,10 @@ export function createCommandRunner(deps) {
99
99
  correlationId: trace.correlationId,
100
100
  idempotencyKey: key ?? null,
101
101
  }, async () => {
102
+ // Before the receipt: a receipt proves the command ran once, not that this caller
103
+ // may have its result. A replay is authorized like a first run.
104
+ if (command.authorize !== undefined)
105
+ await command.authorize(parsed, { tx, meta });
102
106
  if (key === undefined)
103
107
  return await command.handler(parsed, context);
104
108
  const held = await claimReceipt(tx, key, command.name, parsed, own);
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"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"}
package/dist/dot.d.ts CHANGED
@@ -1,24 +1,31 @@
1
1
  /**
2
- * `@arki/dot` adapter.
2
+ * `@arki/dot` adapter, in two parts:
3
3
  *
4
- * - `journal(...)` is the plugin. It publishes the journal as `services.journal`
5
- * and runs one worker per plugin instance between `start` and `stop`.
6
- * - `journalHandlers(...)` is the feature slice. A feature lists its projections
7
- * and effects with it, and `journal({ j, tables, features })` collects them.
4
+ * - `journal(...)` is the driven part, for `.use()`. It publishes `services.journal`, so
5
+ * features can write through it. With `{ j, tables }` it composes the journal from the
6
+ * features' `journalHandlers` declarations. It reads them from the feature values, so it
7
+ * boots before the features.
8
+ * - `journalWorker(...)` is the driving part, for `.serve()`. It runs the effects, taps and
9
+ * async projections between `start` and `stop`. It gives each effect and tap the services
10
+ * of the feature that lists it.
8
11
  *
9
- * The app's `db` plugin must publish the root Drizzle database under the `db` key.
12
+ * The split works because writes never need an effect's services: a write only queues
13
+ * the effect's job. Inline projections run inside the write, and they get only the
14
+ * transaction. So the journal is composed with `services: 'worker'`, and the worker
15
+ * gives the services when it runs a handler.
10
16
  *
17
+ * The app's `db` plugin must publish the root Drizzle database under the `db` key.
11
18
  * `@arki/dot` is an optional peer. Import this module only inside a Dot app.
12
- * Feature slices are read by shape: this file never imports `@arki/feature`.
13
19
  */
14
20
  import type { z } from 'zod';
15
- import type { Plugin, Token } from '@arki/dot/plugin';
21
+ import type { Driven, Driver } from '@arki/dot/feature';
22
+ import type { EmptyShape, Plugin } from '@arki/dot/plugin';
16
23
  import type { Journal, JournalDefinitions } from './api.js';
17
24
  import type { JournalTables } from './pg.js';
18
- import type { DbHandle, Effect, Needs, Projection, RootDb, ServicesFor, Tap, TransactionSource, WakeListener } from './types.js';
25
+ import type { DbHandle, Effect, HandlerServices, JournalWorker, Needs, Projection, RootDb, Services, ServicesFor, Tap, TransactionSource, WakeListener } from './types.js';
19
26
  export declare const JOURNAL_ACTION_META_SCHEMA = "@arki/journal/action-meta@1";
20
27
  export declare const JOURNAL_PLUGIN_ERROR_CODES: {
21
- readonly badSlice: 'JOURNAL_PLUGIN_E001';
28
+ readonly badSlice: 'ARKI_JOURNAL_PLUGIN_E001';
22
29
  };
23
30
  /** One effect in the app manifest: async work that the journal's job table feeds in. */
24
31
  export type JournalDotAction = {
@@ -32,30 +39,37 @@ export type JournalDotAction = {
32
39
  readonly events: string[];
33
40
  };
34
41
  };
35
- /** What one feature hands to the journal. Its effects already hold the feature's services. */
36
- export type JournalHandlers<Meta = unknown, Tx = DbHandle, AppDb = RootDb> = {
42
+ /** What one feature hands to the journal, as declared: an effect or a tap may still have needs. */
43
+ export type JournalDeclarations<Meta = unknown, Tx = DbHandle, AppDb = RootDb> = {
37
44
  readonly projections: readonly Projection<Meta, Tx>[];
38
- readonly effects: readonly Effect<Meta, AppDb>[];
39
- readonly taps: readonly Tap<Meta, AppDb>[];
45
+ readonly effects: readonly Effect<Meta, AppDb, unknown, Needs>[];
46
+ readonly taps: readonly Tap<Meta, AppDb, Needs>[];
47
+ };
48
+ /** What a feature's `journal` slice publishes at boot: its services, for its effects and taps. */
49
+ export type JournalSlicePayload = {
50
+ readonly services: Services;
40
51
  };
41
52
  /**
42
- * The `@arki/feature` slice contract a `journalHandlers(...)` declaration produces.
43
- * `TServices` is what the feature's effects need: the feature must declare it in `needs`.
53
+ * The feature slice a `journalHandlers(...)` declaration produces.
54
+ * `handlers` is read before the features boot, by `journal({ j, tables })`.
55
+ * `resolve` runs at the feature's boot. `TServices` is what the feature's effects and
56
+ * taps need: the feature must declare it in `needs`.
44
57
  */
45
58
  export type JournalFeatureSlice<Meta = unknown, Tx = DbHandle, AppDb = RootDb, TServices = unknown> = {
46
59
  readonly key: 'journal';
47
60
  readonly actions: readonly JournalDotAction[];
48
- readonly resolve: (services: TServices) => JournalHandlers<Meta, Tx, AppDb>;
61
+ readonly handlers: JournalDeclarations<Meta, Tx, AppDb>;
62
+ readonly resolve: (services: TServices) => JournalSlicePayload;
49
63
  };
50
64
  /**
51
- * Declare a feature's projections and effects as a boot-time slice
52
- * (`defineFeature(..., { use: [journalHandlers({ projections, effects })] })`).
53
- * The payload lands under `journal` in the feature's slice token, where
54
- * `journal({ j, tables, features })` collects it.
65
+ * Declare a feature's projections, effects and taps
66
+ * (`feature('orders', { use: [journalHandlers({ projections, effects })] })`).
67
+ * `journal({ j, tables })` reads them from the feature value and composes the journal.
55
68
  *
56
69
  * An effect with needs (`j.effect(name, entity, { mailer: need<Mailer>() }, on)`) gets
57
- * them from the booted services of this feature, by name. The feature must declare
58
- * each one in its own `needs`: the slice's `resolve` does not type-check otherwise.
70
+ * them from the booted services of this feature, by name, when `journalWorker()` runs it.
71
+ * The feature must declare each one in its own `needs`: the slice's `resolve` does not
72
+ * type-check otherwise, and throws at the feature's boot when the types were bypassed.
59
73
  * Two features may use the same need name for two different services.
60
74
  *
61
75
  * Actions: one per effect. Projections add none: they run inside the write, not
@@ -66,37 +80,65 @@ export declare function journalHandlers<Meta = unknown, Tx = DbHandle, AppDb = R
66
80
  readonly effects?: E;
67
81
  readonly taps?: T;
68
82
  }): JournalFeatureSlice<Meta, Tx, AppDb, ServicesFor<E> & ServicesFor<T>>;
69
- type WorkerOptions = {
70
- /** Run the async lane in this process. Default `true`. */
71
- readonly worker?: boolean;
72
- readonly pollMs?: number;
73
- readonly batchSize?: number;
74
- readonly leaseSeconds?: number;
75
- /** See `journal.worker`: required when the journal has taps, unless `taps: false`. */
76
- readonly listen?: WakeListener;
77
- readonly taps?: boolean;
78
- };
79
83
  /** Direct mode: the app composed the journal itself. */
80
- export type JournalDirectOptions<Meta extends z.ZodObject, Tx extends TransactionSource<Tx>, AppDb extends RootDb> = WorkerOptions & {
84
+ export type JournalDirectOptions<Meta extends z.ZodObject, Tx extends TransactionSource<Tx>, AppDb extends RootDb> = {
81
85
  readonly journal: Journal<Meta, Tx, AppDb>;
82
86
  };
83
- /** Feature mode: the plugin composes the journal from the features' `journalHandlers` slices. */
84
- export type JournalFeatureOptions<Meta extends z.ZodObject, Tx extends TransactionSource<Tx>, AppDb extends RootDb> = WorkerOptions & {
87
+ /** Feature mode: the journal is composed from the features' `journalHandlers` declarations. */
88
+ export type JournalFeatureOptions<Meta extends z.ZodObject, Tx extends TransactionSource<Tx>, AppDb extends RootDb> = {
85
89
  readonly j: Pick<JournalDefinitions<Meta, Tx, AppDb>, 'compose'>;
86
90
  readonly tables: JournalTables;
87
- /** `tokens(features)` from `@arki/feature/dot`. A feature without a journal slice adds nothing. */
88
- readonly features: readonly Token<object, string>[];
89
91
  };
90
92
  /**
91
93
  * `RootDb` again on purpose: a Drizzle transaction fits `AppDb` by shape, and must not fit here.
92
94
  * `TransactionSource<Tx>`: the worker's database runs the commands of effects, so it opens `Tx`.
93
95
  */
94
- export type JournalPlugin<Meta extends z.ZodObject, Tx extends TransactionSource<Tx>, AppDb extends RootDb> = Plugin<{
96
+ type JournalNeeds<Tx extends TransactionSource<Tx>, AppDb extends RootDb> = {
95
97
  db: AppDb & RootDb & TransactionSource<Tx>;
96
- }, {
98
+ };
99
+ export type JournalPlugin<Meta extends z.ZodObject, Tx extends TransactionSource<Tx>, AppDb extends RootDb> = Plugin<JournalNeeds<Tx, AppDb>, {
97
100
  journal: Journal<Meta, Tx, AppDb>;
98
101
  }>;
102
+ /** Feature mode: bound to the app's features when the app is built. */
103
+ export type JournalDriven<Meta extends z.ZodObject, Tx extends TransactionSource<Tx>, AppDb extends RootDb> = Driven<JournalNeeds<Tx, AppDb>, {
104
+ journal: Journal<Meta, Tx, AppDb>;
105
+ }>;
106
+ /**
107
+ * The driven part, for `.use()`: publishes the journal as `services.journal`.
108
+ * It runs nothing in the background: serve `journalWorker()` for that.
109
+ *
110
+ * - `journal({ journal })`: the journal the app composed itself.
111
+ * - `journal({ j, tables })`: the journal composed from the `journalHandlers` slices of
112
+ * the features the app mounts. Effects and taps get their services from `journalWorker()`.
113
+ */
99
114
  export declare function journal<Meta extends z.ZodObject, Tx extends TransactionSource<Tx>, AppDb extends RootDb>(options: JournalDirectOptions<Meta, Tx, AppDb>): JournalPlugin<Meta, Tx, AppDb>;
100
- export declare function journal<Meta extends z.ZodObject, Tx extends TransactionSource<Tx>, AppDb extends RootDb>(options: JournalFeatureOptions<Meta, Tx, AppDb>): JournalPlugin<Meta, Tx, AppDb>;
115
+ export declare function journal<Meta extends z.ZodObject, Tx extends TransactionSource<Tx>, AppDb extends RootDb>(options: JournalFeatureOptions<Meta, Tx, AppDb>): JournalDriven<Meta, Tx, AppDb>;
116
+ export type JournalWorkerOptions = {
117
+ readonly pollMs?: number;
118
+ readonly batchSize?: number;
119
+ readonly leaseSeconds?: number;
120
+ /** See `journal.worker`: required when the journal has taps, unless `taps: false`. */
121
+ readonly listen?: WakeListener;
122
+ readonly taps?: boolean;
123
+ };
124
+ /**
125
+ * What the worker needs of `services.journal`: any journal fits. The database type
126
+ * is checked where the journal is mounted (`journal(...)` needs the same `db`).
127
+ */
128
+ type WorkerHost = {
129
+ worker(db: RootDb, opts?: JournalWorkerOptions & {
130
+ readonly services?: HandlerServices;
131
+ }): JournalWorker;
132
+ };
133
+ /**
134
+ * The driving part, for `.serve()`: one worker between `start` and `stop`, for the
135
+ * journal that `journal(...)` published. Each effect and tap of a feature gets the
136
+ * services of that feature. A process that serves no worker still writes: its jobs
137
+ * wait for a process that does.
138
+ */
139
+ export declare function journalWorker(options?: JournalWorkerOptions): Driver<{
140
+ db: RootDb;
141
+ journal: WorkerHost;
142
+ }, EmptyShape>;
101
143
  export {};
102
144
  //# sourceMappingURL=dot.d.ts.map
package/dist/dot.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"dot.d.ts","sourceRoot":"","sources":["../src/dot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dot.d.ts","sourceRoot":"","sources":["../src/dot.ts"],"names":[],"mappings":"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"}