@requence/event-sourcing 0.0.1 → 1.0.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.
Files changed (155) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +81 -0
  3. package/dist/chunk-24xjphpk.js +51 -0
  4. package/dist/chunk-24xjphpk.js.map +10 -0
  5. package/dist/chunk-3t1vzbab.js +88 -0
  6. package/dist/chunk-3t1vzbab.js.map +10 -0
  7. package/dist/chunk-6q8mr1sg.js +13 -0
  8. package/dist/chunk-6q8mr1sg.js.map +10 -0
  9. package/dist/chunk-9psg50cb.js +22 -0
  10. package/dist/chunk-9psg50cb.js.map +10 -0
  11. package/dist/chunk-dgzw1nj9.js +50 -0
  12. package/dist/chunk-dgzw1nj9.js.map +10 -0
  13. package/dist/chunk-gq80tgvf.js +70 -0
  14. package/dist/chunk-gq80tgvf.js.map +10 -0
  15. package/dist/chunk-jd4q8fcf.js +11 -0
  16. package/dist/chunk-jd4q8fcf.js.map +10 -0
  17. package/dist/chunk-m07vf8q9.js +210 -0
  18. package/dist/chunk-m07vf8q9.js.map +10 -0
  19. package/dist/chunk-ncpk70p4.js +313 -0
  20. package/dist/chunk-ncpk70p4.js.map +10 -0
  21. package/dist/chunk-pmfzjavb.js +49 -0
  22. package/dist/chunk-pmfzjavb.js.map +10 -0
  23. package/dist/chunk-qdczt68t.js +84 -0
  24. package/dist/chunk-qdczt68t.js.map +10 -0
  25. package/dist/chunk-tfy01fah.js +34 -0
  26. package/dist/chunk-tfy01fah.js.map +10 -0
  27. package/dist/chunk-tkvj6x8k.js +389 -0
  28. package/dist/chunk-tkvj6x8k.js.map +10 -0
  29. package/dist/chunk-ty9bhdvx.js +53 -0
  30. package/dist/chunk-ty9bhdvx.js.map +10 -0
  31. package/dist/chunk-wmz6a1jk.js +233 -0
  32. package/dist/chunk-wmz6a1jk.js.map +10 -0
  33. package/dist/chunk-x90g388y.js +22 -0
  34. package/dist/chunk-x90g388y.js.map +10 -0
  35. package/dist/chunk-z388cd25.js +91 -0
  36. package/dist/chunk-z388cd25.js.map +10 -0
  37. package/dist/chunk-zf3x573k.js +65 -0
  38. package/dist/chunk-zf3x573k.js.map +10 -0
  39. package/dist/createAggregateRoot.d.ts +191 -0
  40. package/dist/createAggregateRoot.d.ts.map +1 -0
  41. package/dist/createAggregateRoot.js +18 -0
  42. package/dist/createAggregateRoot.js.map +9 -0
  43. package/dist/createCheckpointApi.d.ts +38 -0
  44. package/dist/createCheckpointApi.d.ts.map +1 -0
  45. package/dist/createCheckpointApi.js +9 -0
  46. package/dist/createCheckpointApi.js.map +9 -0
  47. package/dist/createEventListener.d.ts +46 -0
  48. package/dist/createEventListener.d.ts.map +1 -0
  49. package/dist/createEventListener.js +12 -0
  50. package/dist/createEventListener.js.map +9 -0
  51. package/dist/createEventStore.d.ts +57 -0
  52. package/dist/createEventStore.d.ts.map +1 -0
  53. package/dist/createEventStore.js +20 -0
  54. package/dist/createEventStore.js.map +9 -0
  55. package/dist/createProcessManager.d.ts +70 -0
  56. package/dist/createProcessManager.d.ts.map +1 -0
  57. package/dist/createProcessManager.js +16 -0
  58. package/dist/createProcessManager.js.map +9 -0
  59. package/dist/createProjection.d.ts +120 -0
  60. package/dist/createProjection.d.ts.map +1 -0
  61. package/dist/createProjection.js +16 -0
  62. package/dist/createProjection.js.map +9 -0
  63. package/dist/drizzle/index.d.ts +449 -0
  64. package/dist/drizzle/index.d.ts.map +1 -0
  65. package/dist/drizzle/index.js +325 -0
  66. package/dist/drizzle/index.js.map +10 -0
  67. package/dist/drizzle/postgres.d.ts +686 -0
  68. package/dist/drizzle/postgres.d.ts.map +1 -0
  69. package/dist/drizzle/postgres.js +18 -0
  70. package/dist/drizzle/postgres.js.map +9 -0
  71. package/dist/errors.d.ts +53 -0
  72. package/dist/errors.d.ts.map +1 -0
  73. package/dist/errors.js +26 -0
  74. package/dist/errors.js.map +9 -0
  75. package/dist/index.d.ts +15 -0
  76. package/dist/index.d.ts.map +1 -0
  77. package/dist/index.js +73 -0
  78. package/dist/index.js.map +9 -0
  79. package/dist/lock.d.ts +6 -0
  80. package/dist/lock.d.ts.map +1 -0
  81. package/dist/lock.js +8 -0
  82. package/dist/lock.js.map +9 -0
  83. package/dist/memory/index.d.ts +15 -0
  84. package/dist/memory/index.d.ts.map +1 -0
  85. package/dist/memory/index.js +178 -0
  86. package/dist/memory/index.js.map +10 -0
  87. package/dist/redis/index.d.ts +2 -0
  88. package/dist/redis/index.d.ts.map +1 -0
  89. package/dist/redis/index.js +8 -0
  90. package/dist/redis/index.js.map +9 -0
  91. package/dist/redis/redisLock.d.ts +4 -0
  92. package/dist/redis/redisLock.d.ts.map +1 -0
  93. package/dist/redis/redisLock.js +8 -0
  94. package/dist/redis/redisLock.js.map +9 -0
  95. package/dist/refresh.d.ts +4 -0
  96. package/dist/refresh.d.ts.map +1 -0
  97. package/dist/refresh.js +13 -0
  98. package/dist/refresh.js.map +9 -0
  99. package/dist/replay.d.ts +4 -0
  100. package/dist/replay.d.ts.map +1 -0
  101. package/dist/replay.js +13 -0
  102. package/dist/replay.js.map +9 -0
  103. package/dist/snapshotGenerator.d.ts +79 -0
  104. package/dist/snapshotGenerator.d.ts.map +1 -0
  105. package/dist/snapshotGenerator.js +9 -0
  106. package/dist/snapshotGenerator.js.map +9 -0
  107. package/dist/superjson.d.ts +5 -0
  108. package/dist/superjson.d.ts.map +1 -0
  109. package/dist/superjson.js +12 -0
  110. package/dist/superjson.js.map +9 -0
  111. package/dist/transaction.d.ts +13 -0
  112. package/dist/transaction.d.ts.map +1 -0
  113. package/dist/transaction.js +8 -0
  114. package/dist/transaction.js.map +9 -0
  115. package/dist/utilityTypes.d.js +2 -0
  116. package/dist/utilityTypes.d.js.map +9 -0
  117. package/dist/utils.d.ts +4 -0
  118. package/dist/utils.d.ts.map +1 -0
  119. package/dist/utils.js +10 -0
  120. package/dist/utils.js.map +9 -0
  121. package/dist/wrappedEventBuilder.d.ts +37 -0
  122. package/dist/wrappedEventBuilder.d.ts.map +1 -0
  123. package/dist/wrappedEventBuilder.js +12 -0
  124. package/dist/wrappedEventBuilder.js.map +9 -0
  125. package/package.json +87 -1
  126. package/src/createAggregateRoot.ts +902 -0
  127. package/src/createCheckpointApi.ts +106 -0
  128. package/src/createEventListener.ts +118 -0
  129. package/src/createEventStore.ts +446 -0
  130. package/src/createProcessManager.ts +363 -0
  131. package/src/createProjection.ts +577 -0
  132. package/src/drizzle/index.ts +449 -0
  133. package/src/drizzle/postgres.ts +120 -0
  134. package/src/errors.ts +85 -0
  135. package/src/index.ts +45 -0
  136. package/src/lock.ts +58 -0
  137. package/src/memory/index.ts +224 -0
  138. package/src/redis/index.ts +1 -0
  139. package/src/redis/redisLock.ts +61 -0
  140. package/src/refresh.ts +19 -0
  141. package/src/replay.ts +19 -0
  142. package/src/snapshotGenerator.ts +190 -0
  143. package/src/superjson.ts +11 -0
  144. package/src/tests/aggregateRoot.spec.ts +532 -0
  145. package/src/tests/eventListener.spec.ts +57 -0
  146. package/src/tests/eventStore.spec.ts +86 -0
  147. package/src/tests/processManager.spec.ts +185 -0
  148. package/src/tests/projection.spec.ts +511 -0
  149. package/src/tests/projectionProcessManager.spec.ts +203 -0
  150. package/src/tests/setup.ts +230 -0
  151. package/src/tests/transaction.spec.ts +185 -0
  152. package/src/transaction.ts +93 -0
  153. package/src/utilityTypes.d.ts +110 -0
  154. package/src/utils.ts +43 -0
  155. package/src/wrappedEventBuilder.ts +181 -0
@@ -0,0 +1,79 @@
1
+ import { z } from 'zod/v4';
2
+ import type { BaseOutputEvent, Keys, Max, MaybePromise, Merge } from './utilityTypes.js';
3
+ type RegisteredSnapshotSchemas = {
4
+ schemaVersion: number;
5
+ schema: z.ZodType;
6
+ };
7
+ type LatestSnapshotSchemaInput<T extends RegisteredSnapshotSchemas, M = Max<T['schemaVersion']>> = T extends {
8
+ schemaVersion: M;
9
+ } ? z.input<T['schema']> : never;
10
+ type OutputSnapshot<T extends RegisteredSnapshotSchemas> = T extends {
11
+ schemaVersion: infer V;
12
+ schema: infer S;
13
+ } ? {
14
+ schemaVersion: V;
15
+ state: z.output<S>;
16
+ createdAt: Date;
17
+ } : never;
18
+ type SnapshotApplier<Base, T extends RegisteredSnapshotSchemas> = (snapshot: OutputSnapshot<T> & Base) => MaybePromise<void>;
19
+ type SnapshotCapturer<T extends RegisteredSnapshotSchemas> = (event: BaseOutputEvent) => MaybePromise<LatestSnapshotSchemaInput<T> | undefined | null | void>;
20
+ export type SnapshotGenerator<Base, Schemas extends RegisteredSnapshotSchemas = never, Flags extends {
21
+ every: boolean;
22
+ apply: boolean;
23
+ capture: boolean;
24
+ schema: boolean;
25
+ } = {
26
+ every: false;
27
+ apply: true;
28
+ capture: true;
29
+ schema: false;
30
+ }> = {
31
+ every(count: number): Omit<SnapshotGenerator<Base, Schemas, Merge<Flags, {
32
+ every: true;
33
+ }>>, Keys<Merge<Flags, {
34
+ every: true;
35
+ }>>>;
36
+ schema<Schema extends z.ZodType, V extends number = 0>(schema: Schema, schemaVersion?: V): Omit<SnapshotGenerator<Base, Schemas | {
37
+ schemaVersion: V;
38
+ schema: Schema;
39
+ }, Merge<Flags, {
40
+ apply: false;
41
+ capture: false;
42
+ }>>, Keys<Merge<Flags, {
43
+ apply: false;
44
+ capture: false;
45
+ }>>>;
46
+ apply(applier: SnapshotApplier<Base, Schemas>): Omit<SnapshotGenerator<Base, Schemas, Merge<Flags, {
47
+ apply: true;
48
+ schema: true;
49
+ }>>, Keys<Merge<Flags, {
50
+ apply: true;
51
+ schema: true;
52
+ }>>>;
53
+ capture(capturer: SnapshotCapturer<Schemas>): Omit<SnapshotGenerator<Base, Schemas, Merge<Flags, {
54
+ capture: true;
55
+ schema: true;
56
+ }>>, Keys<Merge<Flags, {
57
+ capture: true;
58
+ schema: true;
59
+ }>>>;
60
+ readonly complete: Flags['schema'] extends true ? Flags['capture'] extends true ? Flags['apply'] extends true ? true : false : false : false;
61
+ };
62
+ export type InternalSnapshotGenerator = {
63
+ internalApply: (snapshot: OutputSnapshot<any>) => Promise<void>;
64
+ internalCapture: (event: BaseOutputEvent, applied: number) => Promise<null | {
65
+ state: any;
66
+ version: number;
67
+ }>;
68
+ };
69
+ export type CompleteSnapshotGenerator = Omit<SnapshotGenerator<any, RegisteredSnapshotSchemas, {
70
+ every: true;
71
+ apply: true;
72
+ capture: true;
73
+ schema: true;
74
+ }>, 'schema' | 'capture' | 'apply' | 'every'>;
75
+ export default function createSnapshotGenerator<Base>(schemas?: Array<RegisteredSnapshotSchemas>, config?: {
76
+ every: number;
77
+ } | null, applier?: ((snapshot: OutputSnapshot<any>) => MaybePromise<void>) | null, capturer?: ((event: BaseOutputEvent) => any) | null): CompleteSnapshotGenerator;
78
+ export {};
79
+ //# sourceMappingURL=snapshotGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshotGenerator.d.ts","sourceRoot":"","sources":["../src/snapshotGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import {
2
+ createSnapshotGenerator
3
+ } from "./chunk-pmfzjavb.js";
4
+ import"./chunk-qdczt68t.js";
5
+ export {
6
+ createSnapshotGenerator as default
7
+ };
8
+
9
+ //# debugId=301B1A470A15407D64756E2164756E21
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [
5
+ ],
6
+ "mappings": "",
7
+ "debugId": "301B1A470A15407D64756E2164756E21",
8
+ "names": []
9
+ }
@@ -0,0 +1,5 @@
1
+ import SuperJSON from 'superjson';
2
+ export declare const superjson: SuperJSON;
3
+ export declare function extendTypes(handler: (superjson: SuperJSON) => void): void;
4
+ export declare function clone<T>(obj: T): T;
5
+ //# sourceMappingURL=superjson.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"superjson.d.ts","sourceRoot":"","sources":["../src/superjson.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,WAAW,CAAA;AAEjC,eAAO,MAAM,SAAS,WAAkB,CAAA;AAExC,wBAAgB,WAAW,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,QAElE;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAElC"}
@@ -0,0 +1,12 @@
1
+ import {
2
+ clone,
3
+ extendTypes,
4
+ superjson
5
+ } from "./chunk-6q8mr1sg.js";
6
+ export {
7
+ superjson,
8
+ extendTypes,
9
+ clone
10
+ };
11
+
12
+ //# debugId=3F54C944D8CEC3AA64756E2164756E21
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [
5
+ ],
6
+ "mappings": "",
7
+ "debugId": "3F54C944D8CEC3AA64756E2164756E21",
8
+ "names": []
9
+ }
@@ -0,0 +1,13 @@
1
+ export type TransactionDelay = {
2
+ resolve: () => void;
3
+ reject: (error: Error) => void;
4
+ commit: () => Promise<void>;
5
+ };
6
+ export default function createTransaction(): {
7
+ readonly active: boolean;
8
+ delay(): TransactionDelay;
9
+ after(onAfter: () => Promise<any>): void;
10
+ run<T extends () => any>(handler: T): Promise<any>;
11
+ };
12
+ export type Transaction = ReturnType<typeof createTransaction>;
13
+ //# sourceMappingURL=transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../src/transaction.ts"],"names":[],"mappings":"AAgBA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAC9B,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC5B,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,iBAAiB;;aAY5B,gBAAgB;mBAgCV,MAAM,OAAO,CAAC,GAAG,CAAC;QAIvB,CAAC,SAAS,MAAM,GAAG,WAAW,CAAC;EAoB5C;AAED,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAA"}
@@ -0,0 +1,8 @@
1
+ import {
2
+ createTransaction
3
+ } from "./chunk-gq80tgvf.js";
4
+ export {
5
+ createTransaction as default
6
+ };
7
+
8
+ //# debugId=4930533D86FCC5D064756E2164756E21
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [
5
+ ],
6
+ "mappings": "",
7
+ "debugId": "4930533D86FCC5D064756E2164756E21",
8
+ "names": []
9
+ }
@@ -0,0 +1,2 @@
1
+
2
+ //# debugId=58F9CE05763C4DBF64756E2164756E21
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [
5
+ ],
6
+ "mappings": "",
7
+ "debugId": "58F9CE05763C4DBF64756E2164756E21",
8
+ "names": []
9
+ }
@@ -0,0 +1,4 @@
1
+ import type { MaybePromise } from './utilityTypes.js';
2
+ export declare function normalizeArray<T>(result: MaybePromise<void | T | T[]> | Iterable<T> | AsyncIterable<T>, onItem?: (item: T) => void): Promise<T[]>;
3
+ export declare function awaitAll(getPromise: () => Promise<any>): Promise<void>;
4
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAErD,wBAAsB,cAAc,CAAC,CAAC,EACpC,MAAM,EAAE,YAAY,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,EACrE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GACzB,OAAO,CAAC,CAAC,EAAE,CAAC,CAyBd;AAED,wBAAsB,QAAQ,CAAC,UAAU,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,iBAU5D"}
package/dist/utils.js ADDED
@@ -0,0 +1,10 @@
1
+ import {
2
+ awaitAll,
3
+ normalizeArray
4
+ } from "./chunk-tfy01fah.js";
5
+ export {
6
+ normalizeArray,
7
+ awaitAll
8
+ };
9
+
10
+ //# debugId=B02575DAA75C385064756E2164756E21
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [
5
+ ],
6
+ "mappings": "",
7
+ "debugId": "B02575DAA75C385064756E2164756E21",
8
+ "names": []
9
+ }
@@ -0,0 +1,37 @@
1
+ import type { z } from 'zod/v4';
2
+ import type { EventValidationError } from './errors.ts';
3
+ import type { BaseInputEvent, EventTemplate, Max, MaybePromise } from './utilityTypes.js';
4
+ export type WrappedEvent<E extends EventTemplate = EventTemplate> = {
5
+ withCausationId(causationId: string | null | undefined): WrappedEvent<E>;
6
+ withDefaultCausationId(causationId: string | null | undefined): WrappedEvent<E>;
7
+ withCorrelationId(correlationId: string | null | undefined): WrappedEvent<E>;
8
+ withDefaultCorrelationId(correlationId: string | null | undefined): WrappedEvent<E>;
9
+ withActorId(actorId: string | null | undefined): WrappedEvent<E>;
10
+ withDefaultActorId(actorId: string | null | undefined): WrappedEvent<E>;
11
+ withMetadata(metadata: Record<string, any> | null | undefined): WrappedEvent<E>;
12
+ withDefaultMetadata(metadata: Record<string, any> | null | undefined): WrappedEvent<E>;
13
+ withAdditionalMetadata(metadata: Record<string, any> | null | undefined): WrappedEvent<E>;
14
+ onValidationError(errorHandler: (error: EventValidationError) => MaybePromise<void>): WrappedEvent<E>;
15
+ readonly type: string;
16
+ };
17
+ export declare function unwrapEvent<E extends EventTemplate = EventTemplate>(event: WrappedEvent<E>): { [K in E as K["type"]]: Omit<BaseInputEvent<K["type"], z.output<K["schema"]>>, "schemaVersion">; }[E["type"]];
18
+ export declare function handleEventError(event: WrappedEvent, error: EventValidationError): Promise<void>;
19
+ type LatestSchema<Event extends EventTemplate, LatestVersion = Max<Event['version']>, Schema = Event extends {
20
+ version: LatestVersion;
21
+ } ? Event['schema'] : never> = LatestVersion extends number ? z.input<Schema> : never;
22
+ type EventMap<T extends EventTemplate> = {
23
+ [K in T as K['type']]: LatestSchema<K>;
24
+ };
25
+ export type WrappedEventBuilder<Event extends EventTemplate> = {
26
+ <Type extends Event['type'], LatestVersion = Max<Event extends {
27
+ type: Type;
28
+ } ? Event['version'] : never>, Schema = Event extends {
29
+ type: Type;
30
+ version: LatestVersion;
31
+ } ? Event['schema'] : never>(...args: z.input<Schema> extends null ? [type: Type, payload?: null] : [type: Type, payload: z.input<Schema>]): WrappedEvent;
32
+ $inferPayload: EventMap<Event>;
33
+ };
34
+ export declare function wrappedEventBuilder(type: string, payload: unknown): WrappedEvent;
35
+ export declare function wrappedEventBuilder(event: BaseInputEvent): WrappedEvent;
36
+ export {};
37
+ //# sourceMappingURL=wrappedEventBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrappedEventBuilder.d.ts","sourceRoot":"","sources":["../src/wrappedEventBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import {
2
+ handleEventError,
3
+ unwrapEvent,
4
+ wrappedEventBuilder
5
+ } from "./chunk-z388cd25.js";
6
+ export {
7
+ wrappedEventBuilder,
8
+ unwrapEvent,
9
+ handleEventError
10
+ };
11
+
12
+ //# debugId=AEFF0A7062715AE064756E2164756E21
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [
5
+ ],
6
+ "mappings": "",
7
+ "debugId": "AEFF0A7062715AE064756E2164756E21",
8
+ "names": []
9
+ }
package/package.json CHANGED
@@ -1,6 +1,92 @@
1
1
  {
2
2
  "name": "@requence/event-sourcing",
3
- "version": "0.0.1",
3
+ "version": "1.0.1",
4
+ "description": "Event sourcing primitives — aggregate roots, projections, process managers, and event listeners",
5
+ "type": "module",
6
+ "sideEffects": false,
7
+ "main": "./dist/index.js",
8
+ "module": "./dist/index.js",
9
+ "types": "./dist/index.d.ts",
10
+ "exports": {
11
+ ".": {
12
+ "bun": "./src/index.ts",
13
+ "types": "./dist/index.d.ts",
14
+ "import": "./dist/index.js",
15
+ "default": "./dist/index.js"
16
+ },
17
+ "./drizzle/postgres": {
18
+ "bun": "./src/drizzle/postgres.ts",
19
+ "types": "./dist/drizzle/postgres.d.ts",
20
+ "import": "./dist/drizzle/postgres.js",
21
+ "default": "./dist/drizzle/postgres.js"
22
+ },
23
+ "./drizzle": {
24
+ "bun": "./src/drizzle/index.ts",
25
+ "types": "./dist/drizzle/index.d.ts",
26
+ "import": "./dist/drizzle/index.js",
27
+ "default": "./dist/drizzle/index.js"
28
+ },
29
+ "./memory": {
30
+ "bun": "./src/memory/index.ts",
31
+ "types": "./dist/memory/index.d.ts",
32
+ "import": "./dist/memory/index.js",
33
+ "default": "./dist/memory/index.js"
34
+ },
35
+ "./redis": {
36
+ "bun": "./src/redis/index.ts",
37
+ "types": "./dist/redis/index.d.ts",
38
+ "import": "./dist/redis/index.js",
39
+ "default": "./dist/redis/index.js"
40
+ }
41
+ },
42
+ "files": [
43
+ "dist",
44
+ "src",
45
+ "LICENSE",
46
+ "README.md"
47
+ ],
48
+ "scripts": {
49
+ "build": "bun run build.ts",
50
+ "test": "bun test",
51
+ "check-types": "tsc --noEmit",
52
+ "cs": "changeset",
53
+ "version": "changeset version",
54
+ "release": "bun run build && changeset publish",
55
+ "prepublishOnly": "bun run build"
56
+ },
57
+ "dependencies": {
58
+ "async-mutex": "^0.5.0",
59
+ "fast-equals": "^5.3.3",
60
+ "superjson": "^2.2.5"
61
+ },
62
+ "peerDependencies": {
63
+ "zod": "^4.3.6",
64
+ "drizzle-orm": "^0.45.1",
65
+ "ioredis": "^5.9.3"
66
+ },
67
+ "peerDependenciesMeta": {
68
+ "drizzle-orm": {
69
+ "optional": true
70
+ },
71
+ "ioredis": {
72
+ "optional": true
73
+ }
74
+ },
75
+ "devDependencies": {
76
+ "@changesets/changelog-github": "^0.6.0",
77
+ "@changesets/cli": "^2.31.0",
78
+ "@types/bun": "latest",
79
+ "drizzle-orm": "^0.45.1",
80
+ "ioredis": "^5.9.3",
81
+ "typescript": "^5.9.2",
82
+ "zod": "^4.3.6"
83
+ },
84
+ "license": "MIT",
85
+ "homepage": "https://event-sourcing.docs.requence.cloud",
86
+ "repository": {
87
+ "type": "git",
88
+ "url": "git+https://github.com/requence/event-sourcing.git"
89
+ },
4
90
  "publishConfig": {
5
91
  "access": "public"
6
92
  }