@rotorsoft/act 0.5.1 → 0.5.3

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 (40) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/@types/act-builder.d.ts +66 -2
  3. package/dist/@types/act-builder.d.ts.map +1 -1
  4. package/dist/@types/act.d.ts +77 -21
  5. package/dist/@types/act.d.ts.map +1 -1
  6. package/dist/@types/adapters/InMemoryStore.d.ts +49 -2
  7. package/dist/@types/adapters/InMemoryStore.d.ts.map +1 -1
  8. package/dist/@types/config.d.ts +34 -11
  9. package/dist/@types/config.d.ts.map +1 -1
  10. package/dist/@types/event-sourcing.d.ts +30 -9
  11. package/dist/@types/event-sourcing.d.ts.map +1 -1
  12. package/dist/@types/index.d.ts +3 -2
  13. package/dist/@types/index.d.ts.map +1 -1
  14. package/dist/@types/ports.d.ts +51 -4
  15. package/dist/@types/ports.d.ts.map +1 -1
  16. package/dist/@types/signals.d.ts +2 -0
  17. package/dist/@types/signals.d.ts.map +1 -0
  18. package/dist/@types/state-builder.d.ts +54 -3
  19. package/dist/@types/state-builder.d.ts.map +1 -1
  20. package/dist/@types/types/action.d.ts +105 -0
  21. package/dist/@types/types/action.d.ts.map +1 -1
  22. package/dist/@types/types/errors.d.ts +33 -4
  23. package/dist/@types/types/errors.d.ts.map +1 -1
  24. package/dist/@types/types/index.d.ts +28 -0
  25. package/dist/@types/types/index.d.ts.map +1 -1
  26. package/dist/@types/types/ports.d.ts +53 -0
  27. package/dist/@types/types/ports.d.ts.map +1 -1
  28. package/dist/@types/types/reaction.d.ts +51 -0
  29. package/dist/@types/types/reaction.d.ts.map +1 -1
  30. package/dist/@types/types/registry.d.ts +27 -0
  31. package/dist/@types/types/registry.d.ts.map +1 -1
  32. package/dist/@types/types/schemas.d.ts +43 -107
  33. package/dist/@types/types/schemas.d.ts.map +1 -1
  34. package/dist/@types/utils.d.ts +46 -5
  35. package/dist/@types/utils.d.ts.map +1 -1
  36. package/dist/index.cjs +146 -97
  37. package/dist/index.cjs.map +1 -1
  38. package/dist/index.js +144 -95
  39. package/dist/index.js.map +1 -1
  40. package/package.json +3 -4
@@ -1 +1 @@
1
- {"version":3,"file":"act.d.ts","sourceRoot":"","sources":["../../src/act.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,SAAS,EACT,KAAK,EACL,KAAK,EAEL,QAAQ,EACR,MAAM,EACN,cAAc,EACd,OAAO,EACP,QAAQ,EACR,KAAK,EACL,MAAM,EACP,MAAM,kBAAkB,CAAC;AAE1B,KAAK,YAAY,GAAG,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAE9C;;;;;;;GAOG;AACH,qBAAa,GAAG,CACd,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,EAC3B,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,OAAO;aAyBC,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aAC3B,UAAU,EAAE,MAAM;IAxBpC,OAAO,CAAC,QAAQ,CAAsB;IAEtC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO;IACrD,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO;IAK9C,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI;IACpE,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,GAAG,IAAI;IAM7D,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI;IACrE,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,GAAG,IAAI;gBAO5C,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC3B,UAAU,EAAE,MAAM;IAGpC;;;;;;;;;;;;OAYG;IACG,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,EACxB,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACvB,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAClC,cAAc,UAAQ;IAcxB;;;;;;;;;;OAUG;IACG,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,OAAO,EAAE,EAAE,SAAS,OAAO,EAClE,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EACxB,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,IAAI,GAC9C,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAI5B;;;;;;OAMG;IACG,KAAK,CACT,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,IAAI,GAChD,OAAO,CAAC;QACT,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QAC7B,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IAWF;;;;;;OAMG;YACW,MAAM;IA+BpB,OAAO,CAAC,WAAW,CAAS;IAE5B;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;CAyG/B"}
1
+ {"version":3,"file":"act.d.ts","sourceRoot":"","sources":["../../src/act.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,SAAS,EACT,KAAK,EACL,KAAK,EAEL,QAAQ,EACR,MAAM,EACN,cAAc,EACd,OAAO,EACP,QAAQ,EACR,KAAK,EACL,MAAM,EACP,MAAM,kBAAkB,CAAC;AAE1B,KAAK,YAAY,GAAG,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,GAAG,CACd,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,EAC3B,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,OAAO;aAoDC,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aAC3B,UAAU,EAAE,MAAM;IAnDpC,OAAO,CAAC,QAAQ,CAAsB;IAEtC;;;;;;OAMG;IACH,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO;IACrD,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO;IAK9C;;;;;;OAMG;IACH,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI;IACpE,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,GAAG,IAAI;IAM7D;;;;;;OAMG;IACH,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI;IACrE,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,GAAG,IAAI;IAM9D;;;;;OAKG;gBAEe,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC3B,UAAU,EAAE,MAAM;IAGpC;;;;;;;;;;;;;OAaG;IACG,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,EACxB,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACvB,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAClC,cAAc,UAAQ;IAcxB;;;;;;;;;;;;;OAaG;IACG,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,OAAO,EAAE,EAAE,SAAS,OAAO,EAClE,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EACxB,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,IAAI,GAC9C,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAI5B;;;;;;;;;OASG;IACG,KAAK,CACT,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,IAAI,GAChD,OAAO,CAAC;QACT,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QAC7B,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IAWF;;;;;;;OAOG;YACW,MAAM;IA+BpB,OAAO,CAAC,WAAW,CAAS;IAE5B;;;;;;;;;OASG;IACG,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;CAyG/B"}
@@ -1,24 +1,71 @@
1
1
  import type { Committed, EventMeta, Lease, Message, Query, Schemas, Store } from "../types/index.js";
2
2
  /**
3
3
  * @category Adapters
4
- * @remarks In-memory event store
4
+ * @see Store
5
+ *
6
+ * In-memory implementation of the Store interface.
7
+ *
8
+ * Suitable for development, testing, and demonstration. Not for production use.
9
+ * All events and streams are stored in memory and lost on process exit.
10
+ *
11
+ * @example
12
+ * const store = new InMemoryStore();
13
+ * await store.commit('streamA', [{ name: 'event', data: {} }], meta);
5
14
  */
6
15
  export declare class InMemoryStore implements Store {
7
16
  private _events;
8
17
  private _streams;
18
+ /**
19
+ * Dispose of the store and clear all events.
20
+ * @returns Promise that resolves when disposal is complete.
21
+ */
9
22
  dispose(): Promise<void>;
23
+ /**
24
+ * Seed the store with initial data (no-op for in-memory).
25
+ * @returns Promise that resolves when seeding is complete.
26
+ */
10
27
  seed(): Promise<void>;
28
+ /**
29
+ * Drop all data from the store.
30
+ * @returns Promise that resolves when the store is cleared.
31
+ */
11
32
  drop(): Promise<void>;
33
+ /**
34
+ * Query events in the store, optionally filtered by query options.
35
+ * @param callback - Function to call for each event.
36
+ * @param query - Optional query options.
37
+ * @returns The number of events processed.
38
+ */
12
39
  query<E extends Schemas>(callback: (event: Committed<E, keyof E>) => void, query?: Query): Promise<number>;
40
+ /**
41
+ * Commit one or more events to a stream.
42
+ * @param stream - The stream name.
43
+ * @param msgs - The events/messages to commit.
44
+ * @param meta - Event metadata.
45
+ * @param expectedVersion - Optional optimistic concurrency check.
46
+ * @returns The committed events with metadata.
47
+ * @throws ConcurrencyError if expectedVersion does not match.
48
+ */
13
49
  commit<E extends Schemas>(stream: string, msgs: Message<E, keyof E>[], meta: EventMeta, expectedVersion?: number): Promise<Committed<E, keyof E>[]>;
14
50
  /**
15
- * Fetches new events from stream watermarks
51
+ * Fetches new events from stream watermarks for processing.
52
+ * @param limit - Maximum number of streams to fetch.
53
+ * @returns Fetched streams and events.
16
54
  */
17
55
  fetch<E extends Schemas>(limit: number): Promise<{
18
56
  streams: string[];
19
57
  events: Committed<E, keyof E>[];
20
58
  }>;
59
+ /**
60
+ * Lease streams for processing (e.g., for distributed consumers).
61
+ * @param leases - Lease requests.
62
+ * @returns Granted leases.
63
+ */
21
64
  lease(leases: Lease[]): Promise<Lease[]>;
65
+ /**
66
+ * Acknowledge completion of processing for leased streams.
67
+ * @param leases - Leases to acknowledge.
68
+ */
22
69
  ack(leases: Lease[]): Promise<void>;
23
70
  }
24
71
  //# sourceMappingURL=InMemoryStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InMemoryStore.d.ts","sourceRoot":"","sources":["../../../src/adapters/InMemoryStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,SAAS,EACT,SAAS,EACT,KAAK,EACL,OAAO,EACP,KAAK,EACL,OAAO,EACP,KAAK,EACN,MAAM,mBAAmB,CAAC;AA+B3B;;;GAGG;AACH,qBAAa,aAAc,YAAW,KAAK;IAEzC,OAAO,CAAC,OAAO,CAA2C;IAE1D,OAAO,CAAC,QAAQ,CAA0C;IAEpD,OAAO;IAKP,IAAI;IAIJ,IAAI;IAKJ,KAAK,CAAC,CAAC,SAAS,OAAO,EAC3B,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,IAAI,EAChD,KAAK,CAAC,EAAE,KAAK;IA8BT,MAAM,CAAC,CAAC,SAAS,OAAO,EAC5B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,EAC3B,IAAI,EAAE,SAAS,EACf,eAAe,CAAC,EAAE,MAAM;IA4B1B;;OAEG;IACG,KAAK,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,MAAM;;;;IAqBtC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE;IAerB,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;CAI1B"}
1
+ {"version":3,"file":"InMemoryStore.d.ts","sourceRoot":"","sources":["../../../src/adapters/InMemoryStore.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,SAAS,EACT,SAAS,EACT,KAAK,EACL,OAAO,EACP,KAAK,EACL,OAAO,EACP,KAAK,EACN,MAAM,mBAAmB,CAAC;AA4C3B;;;;;;;;;;;;GAYG;AACH,qBAAa,aAAc,YAAW,KAAK;IAEzC,OAAO,CAAC,OAAO,CAA2C;IAE1D,OAAO,CAAC,QAAQ,CAA0C;IAE1D;;;OAGG;IACG,OAAO;IAKb;;;OAGG;IACG,IAAI;IAIV;;;OAGG;IACG,IAAI;IAKV;;;;;OAKG;IACG,KAAK,CAAC,CAAC,SAAS,OAAO,EAC3B,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,IAAI,EAChD,KAAK,CAAC,EAAE,KAAK;IA8Bf;;;;;;;;OAQG;IACG,MAAM,CAAC,CAAC,SAAS,OAAO,EAC5B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,EAC3B,IAAI,EAAE,SAAS,EACf,eAAe,CAAC,EAAE,MAAM;IA+B1B;;;;OAIG;IACG,KAAK,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,MAAM;;;;IAqB5C;;;;OAIG;IACG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE;IAe3B;;;OAGG;IACG,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;CAI1B"}
@@ -1,29 +1,38 @@
1
1
  import { z } from "zod/v4";
2
2
  /**
3
- * Configuration utilities for environment, logging, and package metadata.
3
+ * Zod schema for validating package.json metadata.
4
+ * @internal
4
5
  */
5
6
  export declare const PackageSchema: z.ZodObject<{
6
7
  name: z.ZodString;
7
8
  version: z.ZodString;
8
- description: z.ZodString;
9
- author: z.ZodUnion<[z.ZodObject<{
9
+ description: z.ZodOptional<z.ZodString>;
10
+ author: z.ZodOptional<z.ZodUnion<[z.ZodOptional<z.ZodObject<{
10
11
  name: z.ZodString;
11
12
  email: z.ZodOptional<z.ZodString>;
12
- }, z.core.$strip>, z.ZodString]>;
13
- license: z.ZodString;
14
- dependencies: z.ZodRecord<z.ZodString, z.ZodString>;
13
+ }, z.core.$strip>>, z.ZodString]>>;
14
+ license: z.ZodOptional<z.ZodString>;
15
+ dependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
15
16
  }, z.core.$strip>;
17
+ /**
18
+ * Type representing the validated package.json metadata.
19
+ */
16
20
  export type Package = z.infer<typeof PackageSchema>;
21
+ /**
22
+ * Zod schema for the full Act Framework configuration object.
23
+ * Includes package metadata, environment, logging, and timing options.
24
+ * @internal
25
+ */
17
26
  declare const BaseSchema: z.ZodObject<{
18
27
  name: z.ZodString;
19
28
  version: z.ZodString;
20
- description: z.ZodString;
21
- author: z.ZodUnion<[z.ZodObject<{
29
+ description: z.ZodOptional<z.ZodString>;
30
+ author: z.ZodOptional<z.ZodUnion<[z.ZodOptional<z.ZodObject<{
22
31
  name: z.ZodString;
23
32
  email: z.ZodOptional<z.ZodString>;
24
- }, z.core.$strip>, z.ZodString]>;
25
- license: z.ZodString;
26
- dependencies: z.ZodRecord<z.ZodString, z.ZodString>;
33
+ }, z.core.$strip>>, z.ZodString]>>;
34
+ license: z.ZodOptional<z.ZodString>;
35
+ dependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
27
36
  env: z.ZodEnum<{
28
37
  development: "development";
29
38
  test: "test";
@@ -41,7 +50,21 @@ declare const BaseSchema: z.ZodObject<{
41
50
  logSingleLine: z.ZodBoolean;
42
51
  sleepMs: z.ZodNumber;
43
52
  }, z.core.$strip>;
53
+ /**
54
+ * Type representing the validated Act Framework configuration object.
55
+ */
44
56
  export type Config = z.infer<typeof BaseSchema>;
57
+ /**
58
+ * Returns the current Act Framework configuration, validated and type-safe.
59
+ *
60
+ * Merges package.json metadata with environment, logging, and timing options.
61
+ * @returns The validated configuration object.
62
+ * @example
63
+ * ```ts
64
+ * const cfg = config();
65
+ * console.log(cfg.env, cfg.logLevel);
66
+ * ```
67
+ */
45
68
  export declare const config: () => Config;
46
69
  export {};
47
70
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAS3B;;GAEG;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;iBASxB,CAAC;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAOpD,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;iBAKd,CAAC;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAgBhD,eAAO,MAAM,MAAM,QAAO,MAEzB,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAS3B;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;iBAWxB,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAYpD;;;;GAIG;AACH,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;iBAKd,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAgBhD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,MAAM,QAAO,MAEzB,CAAC"}
@@ -1,3 +1,9 @@
1
+ /**
2
+ * @module event-sourcing
3
+ * @category Event Sourcing
4
+ *
5
+ * Utilities for event sourcing, snapshotting, and event store interaction.
6
+ */
1
7
  import type { Committed, Schema, Schemas, Snapshot, State, Target } from "./types/index.js";
2
8
  /**
3
9
  * Event sourcing utilities for snapshotting, loading, and committing actions/events.
@@ -6,36 +12,51 @@ import type { Committed, Schema, Schemas, Snapshot, State, Target } from "./type
6
12
  /**
7
13
  * Saves a snapshot of the state to the store.
8
14
  *
15
+ * Snapshots are used to optimize state reconstruction for aggregates with long event streams.
16
+ *
9
17
  * @template S The type of state
10
18
  * @template E The type of events
11
19
  * @param snapshot The snapshot to save
20
+ * @returns Promise that resolves when the snapshot is saved
21
+ *
22
+ * @example
23
+ * await snap(snapshot);
12
24
  */
13
25
  export declare function snap<S extends Schema, E extends Schemas>(snapshot: Snapshot<S, E>): Promise<void>;
14
26
  /**
15
- * Loads a snapshot of the state from the store.
27
+ * Loads a snapshot of the state from the store by replaying events and applying patches.
16
28
  *
17
29
  * @template S The type of state
18
30
  * @template E The type of events
19
- * @param me The state machine
20
- * @param stream The stream to load
21
- * @param callback The callback to call with the snapshot
31
+ * @template A The type of actions
32
+ * @param me The state machine definition
33
+ * @param stream The stream (instance) to load
34
+ * @param callback (Optional) Callback to receive the loaded snapshot as it is built
22
35
  * @returns The snapshot of the loaded state
36
+ *
37
+ * @example
38
+ * const snapshot = await load(Counter, "counter1");
23
39
  */
24
40
  export declare function load<S extends Schema, E extends Schemas, A extends Schemas>(me: State<S, E, A>, stream: string, callback?: (snapshot: Snapshot<S, E>) => void): Promise<Snapshot<S, E>>;
25
41
  /**
26
42
  * Executes an action and emits an event to be committed by the store.
27
43
  *
44
+ * This function validates the action, applies business invariants, emits events, and commits them to the event store.
45
+ *
28
46
  * @template S The type of state
29
47
  * @template E The type of events
30
48
  * @template A The type of actionSchemas
31
49
  * @template K The type of action to execute
32
- * @param me The state machine
50
+ * @param me The state machine definition
33
51
  * @param action The action to execute
34
- * @param target The target of the action
52
+ * @param target The target (stream, actor, etc.)
35
53
  * @param payload The payload of the action
36
- * @param reactingTo The event that the action is reacting to
37
- * @param skipValidation Whether to skip validation
38
- * @returns The snapshot of the committed Event
54
+ * @param reactingTo (Optional) The event that the action is reacting to
55
+ * @param skipValidation (Optional) Whether to skip validation (not recommended)
56
+ * @returns The snapshot of the committed event
57
+ *
58
+ * @example
59
+ * const snapshot = await action(Counter, "increment", { stream: "counter1", actor }, { by: 1 });
39
60
  */
40
61
  export declare function action<S extends Schema, E extends Schemas, A extends Schemas, K extends keyof A>(me: State<S, E, A>, action: K, target: Target, payload: Readonly<A[K]>, reactingTo?: Committed<Schemas, keyof Schemas>, skipValidation?: boolean): Promise<Snapshot<S, E>>;
41
62
  //# sourceMappingURL=event-sourcing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-sourcing.d.ts","sourceRoot":"","sources":["../../src/event-sourcing.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,SAAS,EAGT,MAAM,EACN,OAAO,EACP,QAAQ,EACR,KAAK,EACL,MAAM,EACP,MAAM,kBAAkB,CAAC;AAG1B;;;GAGG;AAEH;;;;;;GAMG;AACH,wBAAsB,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO,EAC5D,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GACvB,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED;;;;;;;;;GASG;AACH,wBAAsB,IAAI,CACxB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,OAAO,EAEjB,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAClB,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,GAC5C,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAuBzB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,MAAM,CAC1B,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,MAAM,CAAC,EAEjB,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAClB,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACvB,UAAU,CAAC,EAAE,SAAS,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,EAC9C,cAAc,UAAQ,GACrB,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAoFzB"}
1
+ {"version":3,"file":"event-sourcing.d.ts","sourceRoot":"","sources":["../../src/event-sourcing.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EACV,SAAS,EAGT,MAAM,EACN,OAAO,EACP,QAAQ,EACR,KAAK,EACL,MAAM,EACP,MAAM,kBAAkB,CAAC;AAG1B;;;GAGG;AAEH;;;;;;;;;;;;GAYG;AACH,wBAAsB,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO,EAC5D,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GACvB,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,IAAI,CACxB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,OAAO,EAEjB,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAClB,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,GAC5C,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAuBzB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,MAAM,CAC1B,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,MAAM,CAAC,EAEjB,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAClB,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACvB,UAAU,CAAC,EAAE,SAAS,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,EAC9C,cAAc,UAAQ,GACrB,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAoFzB"}
@@ -1,13 +1,14 @@
1
- import { config } from "./config.js";
1
+ import "./signals.js";
2
2
  /**
3
+ * @packageDocumentation
3
4
  * @module act
4
5
  * Main entry point for the Act framework. Re-exports all core APIs.
5
6
  */
6
7
  export * from "./act-builder.js";
7
8
  export * from "./act.js";
9
+ export * from "./config.js";
8
10
  export * from "./ports.js";
9
11
  export * from "./state-builder.js";
10
12
  export * from "./types/index.js";
11
13
  export * from "./utils.js";
12
- export { config };
13
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC;;;GAGG;AACH,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAC;AAEtB;;;;GAIG;AACH,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC"}
@@ -1,21 +1,68 @@
1
1
  import type { Disposable, Disposer, Store } from "./types/index.js";
2
2
  /**
3
3
  * Port and adapter utilities for logging, store management, and resource disposal.
4
- * Provides singleton store and logger instances.
4
+ *
5
+ * Provides singleton store and logger instances, and helpers for resource lifecycle management.
6
+ *
7
+ * - Use `store()` to get or inject the event store (in-memory or persistent).
8
+ * - Use `logger` for structured logging.
9
+ * - Use `dispose()` to register resource disposers for graceful shutdown.
10
+ *
11
+ * @module ports
12
+ */
13
+ /**
14
+ * List of exit codes for process termination.
5
15
  */
6
16
  export declare const ExitCodes: readonly ["ERROR", "EXIT"];
17
+ /**
18
+ * Type for allowed exit codes.
19
+ */
7
20
  export type ExitCode = (typeof ExitCodes)[number];
21
+ /**
22
+ * Singleton logger instance (Pino).
23
+ *
24
+ * Use for structured logging throughout your application.
25
+ *
26
+ * @example
27
+ * logger.info("Application started");
28
+ */
8
29
  export declare const logger: import("pino").Logger<never, boolean>;
30
+ /**
31
+ * Helper to create a singleton port (adapter) with optional injection.
32
+ *
33
+ * @param injector The function that creates the port/adapter
34
+ * @returns A function to get or inject the singleton instance
35
+ *
36
+ * @example
37
+ * const store = port((adapter) => adapter || new InMemoryStore());
38
+ * const myStore = store();
39
+ */
9
40
  type Injector<Port extends Disposable> = (adapter?: Port) => Port;
10
41
  export declare function port<Port extends Disposable>(injector: Injector<Port>): (adapter?: Port) => Port;
11
42
  export declare function disposeAndExit(code?: ExitCode): Promise<void>;
12
43
  /**
13
- * Registers resource disposers that are triggered on process exit
14
- * @param disposer the disposer function
15
- * @returns a function that triggers all registered disposers and terminates the process
44
+ * Registers resource disposers that are triggered on process exit.
45
+ *
46
+ * @param disposer The disposer function to register
47
+ * @returns A function that triggers all registered disposers and terminates the process
48
+ *
49
+ * @example
50
+ * dispose(async () => { await myResource.close(); });
16
51
  */
17
52
  export declare function dispose(disposer?: Disposer): (code?: ExitCode) => Promise<void>;
53
+ /**
54
+ * Special event name for snapshot events in the event store.
55
+ */
18
56
  export declare const SNAP_EVENT = "__snapshot__";
57
+ /**
58
+ * Singleton event store port. By default, uses the in-memory store.
59
+ *
60
+ * You can inject a persistent store (e.g., Postgres) by calling `store(myAdapter)`.
61
+ *
62
+ * @example
63
+ * const myStore = store();
64
+ * const customStore = store(new MyCustomStore());
65
+ */
19
66
  export declare const store: (adapter?: Store | undefined) => Store;
20
67
  export {};
21
68
  //# sourceMappingURL=ports.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../../src/ports.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEpE;;;GAGG;AAEH,eAAO,MAAM,SAAS,4BAA6B,CAAC;AACpD,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAElD,eAAO,MAAM,MAAM,uCAajB,CAAC;AAEH,KAAK,QAAQ,CAAC,IAAI,SAAS,UAAU,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,KAAK,IAAI,CAAC;AAElE,wBAAgB,IAAI,CAAC,IAAI,SAAS,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,IACnD,UAAU,IAAI,KAAG,IAAI,CAQvC;AAGD,wBAAsB,cAAc,CAAC,IAAI,GAAE,QAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAa3E;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CACrB,QAAQ,CAAC,EAAE,QAAQ,GAClB,CAAC,IAAI,CAAC,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAGpC;AAGD,eAAO,MAAM,UAAU,iBAAiB,CAAC;AACzC,eAAO,MAAM,KAAK,wCAEhB,CAAC"}
1
+ {"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../../src/ports.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEpE;;;;;;;;;;GAUG;AAEH;;GAEG;AACH,eAAO,MAAM,SAAS,4BAA6B,CAAC;AAEpD;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAElD;;;;;;;GAOG;AACH,eAAO,MAAM,MAAM,uCAajB,CAAC;AAEH;;;;;;;;;GASG;AACH,KAAK,QAAQ,CAAC,IAAI,SAAS,UAAU,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,KAAK,IAAI,CAAC;AAElE,wBAAgB,IAAI,CAAC,IAAI,SAAS,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,IACnD,UAAU,IAAI,KAAG,IAAI,CAQvC;AAGD,wBAAsB,cAAc,CAAC,IAAI,GAAE,QAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAa3E;AAED;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CACrB,QAAQ,CAAC,EAAE,QAAQ,GAClB,CAAC,IAAI,CAAC,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAGpC;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,iBAAiB,CAAC;AAEzC;;;;;;;;GAQG;AACH,eAAO,MAAM,KAAK,wCAEhB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=signals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signals.d.ts","sourceRoot":"","sources":["../../src/signals.ts"],"names":[],"mappings":""}
@@ -1,28 +1,79 @@
1
+ /**
2
+ * @module state-builder
3
+ * @category Builders
4
+ *
5
+ * Fluent interface for defining a strongly-typed state machine using Zod schemas.
6
+ */
1
7
  import { ZodType } from "zod/v4";
2
8
  import { ActionHandler, Invariant, PatchHandlers, Schema, Schemas, Snapshot, State, ZodTypes } from "./types/index.js";
3
9
  export type StateBuilder<S extends Schema> = {
10
+ /**
11
+ * Define the initial state for the state machine.
12
+ * @param init Function returning the initial state
13
+ * @returns An object with .emits() to declare event types
14
+ */
4
15
  init: (init: () => Readonly<S>) => {
16
+ /**
17
+ * Declare the event types the state machine can emit.
18
+ * @param events Zod schemas for each event
19
+ * @returns An object with .patch() to define event handlers
20
+ */
5
21
  emits: <E extends Schemas>(events: ZodTypes<E>) => {
22
+ /**
23
+ * Define how each event updates state.
24
+ * @param patch Event handler functions
25
+ * @returns An ActionBuilder for defining actions
26
+ */
6
27
  patch: (patch: PatchHandlers<S, E>) => ActionBuilder<S, E, {}>;
7
28
  };
8
29
  };
9
30
  };
10
31
  export type ActionBuilder<S extends Schema, E extends Schemas, A extends Schemas> = {
32
+ /**
33
+ * Define an action for the state machine.
34
+ * @param action The action name
35
+ * @param schema The Zod schema for the action payload
36
+ * @returns An object with .given() and .emit() for further configuration
37
+ */
11
38
  on: <K extends string, AX extends Schema>(action: K, schema: ZodType<AX>) => {
39
+ /**
40
+ * Constrain the action with invariants (business rules).
41
+ * @param rules Array of invariants
42
+ * @returns An object with .emit() to finalize the action
43
+ */
12
44
  given: (rules: Invariant<S>[]) => {
45
+ /**
46
+ * Finalize the action by providing the event emission handler.
47
+ * @param handler The action handler function
48
+ * @returns The ActionBuilder for chaining
49
+ */
13
50
  emit: (handler: ActionHandler<S, E, {
14
51
  [P in K]: AX;
15
52
  }, K>) => ActionBuilder<S, E, A & {
16
53
  [P in K]: AX;
17
54
  }>;
18
55
  };
56
+ /**
57
+ * Finalize the action by providing the event emission handler.
58
+ * @param handler The action handler function
59
+ * @returns The ActionBuilder for chaining
60
+ */
19
61
  emit: (handler: ActionHandler<S, E, {
20
62
  [P in K]: AX;
21
63
  }, K>) => ActionBuilder<S, E, A & {
22
64
  [P in K]: AX;
23
65
  }>;
24
66
  };
67
+ /**
68
+ * Define a snapshotting strategy to reduce recomputations.
69
+ * @param snap Function that determines when to snapshot
70
+ * @returns The ActionBuilder for chaining
71
+ */
25
72
  snap: (snap: (snapshot: Snapshot<S, E>) => boolean) => ActionBuilder<S, E, A>;
73
+ /**
74
+ * Finalize and build the state machine definition.
75
+ * @returns The strongly-typed State definition
76
+ */
26
77
  build: () => State<S, E, A>;
27
78
  };
28
79
  /**
@@ -39,8 +90,9 @@ export type ActionBuilder<S extends Schema, E extends Schemas, A extends Schemas
39
90
  * - (Optional) Define a `.snap(snapshot => boolean)` function to reduce recomputations
40
91
  * - Finalize the state machine definition using `.build()`
41
92
  *
42
- * Example usage:
43
- * ```ts
93
+ * @template S The type of state
94
+ *
95
+ * @example
44
96
  * const machine = state("machine", myStateSchema)
45
97
  * .init(() => ({ count: 0 }))
46
98
  * .emits({ Incremented: z.object({ amount: z.number() }) })
@@ -51,7 +103,6 @@ export type ActionBuilder<S extends Schema, E extends Schemas, A extends Schemas
51
103
  * .given([{ description: "must be positive", valid: (s, a) => a?.by > 0 }])
52
104
  * .emit((action, state) => ({ type: "Incremented", amount: action.by }))
53
105
  * .build();
54
- * ```
55
106
  */
56
107
  export declare function state<S extends Schema>(name: string, state: ZodType<S>): StateBuilder<S>;
57
108
  //# sourceMappingURL=state-builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"state-builder.d.ts","sourceRoot":"","sources":["../../src/state-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,EACL,aAAa,EAGb,SAAS,EACT,aAAa,EACb,MAAM,EACN,OAAO,EACP,QAAQ,EACR,KAAK,EACL,QAAQ,EACT,MAAM,kBAAkB,CAAC;AAG1B,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI;IAC3C,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,QAAQ,CAAC,CAAC,CAAC,KAAK;QACjC,KAAK,EAAE,CAAC,CAAC,SAAS,OAAO,EACvB,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,KAChB;YACH,KAAK,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;SAChE,CAAC;KACH,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,aAAa,CACvB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,OAAO,IACf;IACF,EAAE,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,SAAS,MAAM,EACtC,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,KAChB;QACH,KAAK,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK;YAChC,IAAI,EAAE,CACJ,OAAO,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE;iBAAG,CAAC,IAAI,CAAC,GAAG,EAAE;aAAE,EAAE,CAAC,CAAC,KAC9C,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG;iBAAG,CAAC,IAAI,CAAC,GAAG,EAAE;aAAE,CAAC,CAAC;SAChD,CAAC;QACF,IAAI,EAAE,CACJ,OAAO,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE;aAAG,CAAC,IAAI,CAAC,GAAG,EAAE;SAAE,EAAE,CAAC,CAAC,KAC9C,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG;aAAG,CAAC,IAAI,CAAC,GAAG,EAAE;SAAE,CAAC,CAAC;KAChD,CAAC;IACF,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,OAAO,KAAK,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9E,KAAK,EAAE,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CAC7B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,EACpC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,GAChB,YAAY,CAAC,CAAC,CAAC,CAsBjB"}
1
+ {"version":3,"file":"state-builder.d.ts","sourceRoot":"","sources":["../../src/state-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,EACL,aAAa,EAGb,SAAS,EACT,aAAa,EACb,MAAM,EACN,OAAO,EACP,QAAQ,EACR,KAAK,EACL,QAAQ,EACT,MAAM,kBAAkB,CAAC;AAG1B,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI;IAC3C;;;;OAIG;IACH,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,QAAQ,CAAC,CAAC,CAAC,KAAK;QACjC;;;;WAIG;QACH,KAAK,EAAE,CAAC,CAAC,SAAS,OAAO,EACvB,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,KAChB;YACH;;;;eAIG;YACH,KAAK,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;SAChE,CAAC;KACH,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,aAAa,CACvB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,OAAO,IACf;IACF;;;;;OAKG;IACH,EAAE,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,SAAS,MAAM,EACtC,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,KAChB;QACH;;;;WAIG;QACH,KAAK,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK;YAChC;;;;eAIG;YACH,IAAI,EAAE,CACJ,OAAO,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE;iBAAG,CAAC,IAAI,CAAC,GAAG,EAAE;aAAE,EAAE,CAAC,CAAC,KAC9C,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG;iBAAG,CAAC,IAAI,CAAC,GAAG,EAAE;aAAE,CAAC,CAAC;SAChD,CAAC;QACF;;;;WAIG;QACH,IAAI,EAAE,CACJ,OAAO,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE;aAAG,CAAC,IAAI,CAAC,GAAG,EAAE;SAAE,EAAE,CAAC,CAAC,KAC9C,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG;aAAG,CAAC,IAAI,CAAC,GAAG,EAAE;SAAE,CAAC,CAAC;KAChD,CAAC;IACF;;;;OAIG;IACH,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,OAAO,KAAK,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9E;;;OAGG;IACH,KAAK,EAAE,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CAC7B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,EACpC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,GAChB,YAAY,CAAC,CAAC,CAAC,CAsBjB"}
@@ -1,54 +1,159 @@
1
1
  import { z, ZodType } from "zod/v4";
2
2
  import { ActorSchema, CausationEventSchema, CommittedMetaSchema, EventMetaSchema, QuerySchema, TargetSchema } from "./schemas.js";
3
+ /**
4
+ * @packageDocumentation
5
+ * @module act/types
6
+ * @category Types
7
+ * Types for actions, events, schemas, and state in the Act Framework.
8
+ */
9
+ /**
10
+ * Represents an actor (user, system, etc.) that initiates actions or events.
11
+ */
3
12
  export type Actor = z.infer<typeof ActorSchema>;
13
+ /**
14
+ * Represents the target of an action or event, including stream and actor info.
15
+ */
4
16
  export type Target = z.infer<typeof TargetSchema>;
17
+ /**
18
+ * Metadata describing the causation of an event.
19
+ */
5
20
  export type CausationEvent = z.infer<typeof CausationEventSchema>;
21
+ /**
22
+ * Metadata attached to an event, including correlation and causation.
23
+ */
6
24
  export type EventMeta = z.infer<typeof EventMetaSchema>;
25
+ /**
26
+ * Metadata attached to a committed event, including id, stream, version, and creation time.
27
+ */
7
28
  export type CommittedMeta = z.infer<typeof CommittedMetaSchema>;
29
+ /**
30
+ * Query options for event store queries.
31
+ */
8
32
  export type Query = z.infer<typeof QuerySchema>;
33
+ /**
34
+ * A generic schema definition (plain object shape).
35
+ */
9
36
  export type Schema = Record<string, any>;
37
+ /**
38
+ * A map of named schemas.
39
+ */
10
40
  export type Schemas = Record<string, Schema>;
41
+ /**
42
+ * An empty schema (no properties).
43
+ */
11
44
  export type EmptySchema = Record<string, never>;
45
+ /**
46
+ * A recursive partial type for patching state objects.
47
+ * @template T - The base type to patch.
48
+ */
12
49
  export type Patch<T> = {
13
50
  [K in keyof T]?: T[K] extends Schema ? Patch<T[K]> : T[K];
14
51
  };
52
+ /**
53
+ * Maps schema names to their Zod type representations.
54
+ * @template T - The schemas map.
55
+ */
15
56
  export type ZodTypes<T extends Schemas> = {
16
57
  [K in keyof T]: ZodType<T[K]>;
17
58
  };
59
+ /**
60
+ * Represents a message (event or action) with a name and data payload.
61
+ * @template E - Schemas map.
62
+ * @template K - Event/action name.
63
+ */
18
64
  export type Message<E extends Schemas, K extends keyof E> = {
19
65
  readonly name: K;
20
66
  readonly data: Readonly<E[K]>;
21
67
  };
68
+ /**
69
+ * A committed event, including metadata.
70
+ * @template E - Schemas map.
71
+ * @template K - Event name.
72
+ */
22
73
  export type Committed<E extends Schemas, K extends keyof E> = Message<E, K> & CommittedMeta;
74
+ /**
75
+ * Represents a snapshot of state at a point in the event stream.
76
+ * @template S - State schema.
77
+ * @template E - Event schemas.
78
+ */
23
79
  export type Snapshot<S extends Schema, E extends Schemas> = {
24
80
  readonly state: S;
25
81
  readonly event?: Committed<E, keyof E>;
26
82
  readonly patches: number;
27
83
  readonly snaps: number;
28
84
  };
85
+ /**
86
+ * An invariant is a condition that must always hold true for a state.
87
+ * @template S - State schema.
88
+ */
29
89
  export type Invariant<S extends Schema> = {
30
90
  description: string;
31
91
  valid: (state: Readonly<S>, actor?: Actor) => boolean;
32
92
  };
93
+ /**
94
+ * Represents an emitted event tuple from an action handler.
95
+ * @template E - Event schemas.
96
+ */
33
97
  export type Emitted<E extends Schemas> = {
34
98
  [K in keyof E]: readonly [K, Readonly<E[K]>];
35
99
  }[keyof E];
100
+ /**
101
+ * Bundles the Zod types for state, events, and actions.
102
+ * @template S - State schema.
103
+ * @template E - Event schemas.
104
+ * @template A - Action schemas.
105
+ */
36
106
  export type StateSchemas<S extends Schema, E extends Schemas, A extends Schemas> = {
37
107
  readonly events: ZodTypes<E>;
38
108
  readonly actions: ZodTypes<A>;
39
109
  readonly state: ZodType<S>;
40
110
  };
111
+ /**
112
+ * Handles patching state in response to a committed event.
113
+ * @template S - State schema.
114
+ * @template E - Event schemas.
115
+ * @template K - Event name.
116
+ */
41
117
  export type PatchHandler<S extends Schema, E extends Schemas, K extends keyof E> = (event: Committed<E, K>, state: Readonly<S>) => Readonly<Patch<S>>;
118
+ /**
119
+ * Maps event names to their patch handlers.
120
+ * @template S - State schema.
121
+ * @template E - Event schemas.
122
+ */
42
123
  export type PatchHandlers<S extends Schema, E extends Schemas> = {
43
124
  [K in keyof E]: PatchHandler<S, E, K>;
44
125
  };
126
+ /**
127
+ * Handles an action, producing one or more emitted events.
128
+ * @template S - State schema.
129
+ * @template E - Event schemas.
130
+ * @template A - Action schemas.
131
+ * @template K - Action name.
132
+ */
45
133
  export type ActionHandler<S extends Schema, E extends Schemas, A extends Schemas, K extends keyof A> = (action: Readonly<A[K]>, state: Readonly<S>, target: Target) => Emitted<E> | Emitted<E>[] | undefined;
134
+ /**
135
+ * Maps action names to their handlers.
136
+ * @template S - State schema.
137
+ * @template E - Event schemas.
138
+ * @template A - Action schemas.
139
+ */
46
140
  export type ActionHandlers<S extends Schema, E extends Schemas, A extends Schemas> = {
47
141
  [K in keyof A]: ActionHandler<S, E, A, K>;
48
142
  };
143
+ /**
144
+ * Maps action names to invariants that must hold after the action.
145
+ * @template S - State schema.
146
+ * @template A - Action schemas.
147
+ */
49
148
  export type GivenHandlers<S extends Schema, A extends Schemas> = {
50
149
  [K in keyof A]?: Invariant<S>[];
51
150
  };
151
+ /**
152
+ * The full state definition, including schemas, handlers, and optional invariants and snapshot logic.
153
+ * @template S - State schema.
154
+ * @template E - Event schemas.
155
+ * @template A - Action schemas.
156
+ */
52
157
  export type State<S extends Schema, E extends Schemas, A extends Schemas> = StateSchemas<S, E, A> & {
53
158
  name: string;
54
159
  init: () => Readonly<S>;
@@ -1 +1 @@
1
- {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../src/types/action.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../src/types/action.ts"],"names":[],"mappings":"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"}