@requence/event-sourcing 0.0.1 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/chunk-24xjphpk.js +51 -0
- package/dist/chunk-24xjphpk.js.map +10 -0
- package/dist/chunk-3t1vzbab.js +88 -0
- package/dist/chunk-3t1vzbab.js.map +10 -0
- package/dist/chunk-6q8mr1sg.js +13 -0
- package/dist/chunk-6q8mr1sg.js.map +10 -0
- package/dist/chunk-9psg50cb.js +22 -0
- package/dist/chunk-9psg50cb.js.map +10 -0
- package/dist/chunk-dgzw1nj9.js +50 -0
- package/dist/chunk-dgzw1nj9.js.map +10 -0
- package/dist/chunk-gq80tgvf.js +70 -0
- package/dist/chunk-gq80tgvf.js.map +10 -0
- package/dist/chunk-jd4q8fcf.js +11 -0
- package/dist/chunk-jd4q8fcf.js.map +10 -0
- package/dist/chunk-m07vf8q9.js +210 -0
- package/dist/chunk-m07vf8q9.js.map +10 -0
- package/dist/chunk-ncpk70p4.js +313 -0
- package/dist/chunk-ncpk70p4.js.map +10 -0
- package/dist/chunk-pmfzjavb.js +49 -0
- package/dist/chunk-pmfzjavb.js.map +10 -0
- package/dist/chunk-qdczt68t.js +84 -0
- package/dist/chunk-qdczt68t.js.map +10 -0
- package/dist/chunk-tfy01fah.js +34 -0
- package/dist/chunk-tfy01fah.js.map +10 -0
- package/dist/chunk-tkvj6x8k.js +389 -0
- package/dist/chunk-tkvj6x8k.js.map +10 -0
- package/dist/chunk-ty9bhdvx.js +53 -0
- package/dist/chunk-ty9bhdvx.js.map +10 -0
- package/dist/chunk-wmz6a1jk.js +233 -0
- package/dist/chunk-wmz6a1jk.js.map +10 -0
- package/dist/chunk-x90g388y.js +22 -0
- package/dist/chunk-x90g388y.js.map +10 -0
- package/dist/chunk-z388cd25.js +91 -0
- package/dist/chunk-z388cd25.js.map +10 -0
- package/dist/chunk-zf3x573k.js +65 -0
- package/dist/chunk-zf3x573k.js.map +10 -0
- package/dist/createAggregateRoot.d.ts +191 -0
- package/dist/createAggregateRoot.d.ts.map +1 -0
- package/dist/createAggregateRoot.js +18 -0
- package/dist/createAggregateRoot.js.map +9 -0
- package/dist/createCheckpointApi.d.ts +38 -0
- package/dist/createCheckpointApi.d.ts.map +1 -0
- package/dist/createCheckpointApi.js +9 -0
- package/dist/createCheckpointApi.js.map +9 -0
- package/dist/createEventListener.d.ts +46 -0
- package/dist/createEventListener.d.ts.map +1 -0
- package/dist/createEventListener.js +12 -0
- package/dist/createEventListener.js.map +9 -0
- package/dist/createEventStore.d.ts +57 -0
- package/dist/createEventStore.d.ts.map +1 -0
- package/dist/createEventStore.js +20 -0
- package/dist/createEventStore.js.map +9 -0
- package/dist/createProcessManager.d.ts +70 -0
- package/dist/createProcessManager.d.ts.map +1 -0
- package/dist/createProcessManager.js +16 -0
- package/dist/createProcessManager.js.map +9 -0
- package/dist/createProjection.d.ts +120 -0
- package/dist/createProjection.d.ts.map +1 -0
- package/dist/createProjection.js +16 -0
- package/dist/createProjection.js.map +9 -0
- package/dist/drizzle/index.d.ts +449 -0
- package/dist/drizzle/index.d.ts.map +1 -0
- package/dist/drizzle/index.js +325 -0
- package/dist/drizzle/index.js.map +10 -0
- package/dist/drizzle/postgres.d.ts +686 -0
- package/dist/drizzle/postgres.d.ts.map +1 -0
- package/dist/drizzle/postgres.js +18 -0
- package/dist/drizzle/postgres.js.map +9 -0
- package/dist/errors.d.ts +53 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +26 -0
- package/dist/errors.js.map +9 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +73 -0
- package/dist/index.js.map +9 -0
- package/dist/lock.d.ts +6 -0
- package/dist/lock.d.ts.map +1 -0
- package/dist/lock.js +8 -0
- package/dist/lock.js.map +9 -0
- package/dist/memory/index.d.ts +15 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +178 -0
- package/dist/memory/index.js.map +10 -0
- package/dist/redis/index.d.ts +2 -0
- package/dist/redis/index.d.ts.map +1 -0
- package/dist/redis/index.js +8 -0
- package/dist/redis/index.js.map +9 -0
- package/dist/redis/redisLock.d.ts +4 -0
- package/dist/redis/redisLock.d.ts.map +1 -0
- package/dist/redis/redisLock.js +8 -0
- package/dist/redis/redisLock.js.map +9 -0
- package/dist/refresh.d.ts +4 -0
- package/dist/refresh.d.ts.map +1 -0
- package/dist/refresh.js +13 -0
- package/dist/refresh.js.map +9 -0
- package/dist/replay.d.ts +4 -0
- package/dist/replay.d.ts.map +1 -0
- package/dist/replay.js +13 -0
- package/dist/replay.js.map +9 -0
- package/dist/snapshotGenerator.d.ts +79 -0
- package/dist/snapshotGenerator.d.ts.map +1 -0
- package/dist/snapshotGenerator.js +9 -0
- package/dist/snapshotGenerator.js.map +9 -0
- package/dist/superjson.d.ts +5 -0
- package/dist/superjson.d.ts.map +1 -0
- package/dist/superjson.js +12 -0
- package/dist/superjson.js.map +9 -0
- package/dist/transaction.d.ts +13 -0
- package/dist/transaction.d.ts.map +1 -0
- package/dist/transaction.js +8 -0
- package/dist/transaction.js.map +9 -0
- package/dist/utilityTypes.d.js +2 -0
- package/dist/utilityTypes.d.js.map +9 -0
- package/dist/utils.d.ts +4 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +10 -0
- package/dist/utils.js.map +9 -0
- package/dist/wrappedEventBuilder.d.ts +37 -0
- package/dist/wrappedEventBuilder.d.ts.map +1 -0
- package/dist/wrappedEventBuilder.js +12 -0
- package/dist/wrappedEventBuilder.js.map +9 -0
- package/package.json +85 -1
- package/src/createAggregateRoot.ts +902 -0
- package/src/createCheckpointApi.ts +106 -0
- package/src/createEventListener.ts +118 -0
- package/src/createEventStore.ts +446 -0
- package/src/createProcessManager.ts +363 -0
- package/src/createProjection.ts +577 -0
- package/src/drizzle/index.ts +449 -0
- package/src/drizzle/postgres.ts +120 -0
- package/src/errors.ts +85 -0
- package/src/index.ts +45 -0
- package/src/lock.ts +58 -0
- package/src/memory/index.ts +224 -0
- package/src/redis/index.ts +1 -0
- package/src/redis/redisLock.ts +61 -0
- package/src/refresh.ts +19 -0
- package/src/replay.ts +19 -0
- package/src/snapshotGenerator.ts +190 -0
- package/src/superjson.ts +11 -0
- package/src/tests/aggregateRoot.spec.ts +532 -0
- package/src/tests/eventListener.spec.ts +57 -0
- package/src/tests/eventStore.spec.ts +86 -0
- package/src/tests/processManager.spec.ts +185 -0
- package/src/tests/projection.spec.ts +511 -0
- package/src/tests/projectionProcessManager.spec.ts +203 -0
- package/src/tests/setup.ts +230 -0
- package/src/tests/transaction.spec.ts +185 -0
- package/src/transaction.ts +93 -0
- package/src/utilityTypes.d.ts +110 -0
- package/src/utils.ts +43 -0
- 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 @@
|
|
|
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,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"}
|
package/dist/utils.d.ts
ADDED
|
@@ -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,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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,90 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@requence/event-sourcing",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "1.0.0",
|
|
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
|
+
],
|
|
47
|
+
"scripts": {
|
|
48
|
+
"build": "bun run build.ts",
|
|
49
|
+
"test": "bun test",
|
|
50
|
+
"check-types": "tsc --noEmit",
|
|
51
|
+
"changeset": "changeset",
|
|
52
|
+
"version": "changeset version",
|
|
53
|
+
"release": "bun run build && changeset publish",
|
|
54
|
+
"prepublishOnly": "bun run build"
|
|
55
|
+
},
|
|
56
|
+
"dependencies": {
|
|
57
|
+
"async-mutex": "^0.5.0",
|
|
58
|
+
"fast-equals": "^5.3.3",
|
|
59
|
+
"superjson": "^2.2.5"
|
|
60
|
+
},
|
|
61
|
+
"peerDependencies": {
|
|
62
|
+
"zod": "^4.3.6",
|
|
63
|
+
"drizzle-orm": "^0.45.1",
|
|
64
|
+
"ioredis": "^5.9.3"
|
|
65
|
+
},
|
|
66
|
+
"peerDependenciesMeta": {
|
|
67
|
+
"drizzle-orm": {
|
|
68
|
+
"optional": true
|
|
69
|
+
},
|
|
70
|
+
"ioredis": {
|
|
71
|
+
"optional": true
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"devDependencies": {
|
|
75
|
+
"@changesets/changelog-github": "^0.6.0",
|
|
76
|
+
"@changesets/cli": "^2.31.0",
|
|
77
|
+
"@types/bun": "latest",
|
|
78
|
+
"drizzle-orm": "^0.45.1",
|
|
79
|
+
"ioredis": "^5.9.3",
|
|
80
|
+
"typescript": "^5.9.2",
|
|
81
|
+
"zod": "^4.3.6"
|
|
82
|
+
},
|
|
83
|
+
"license": "MIT",
|
|
84
|
+
"repository": {
|
|
85
|
+
"type": "git",
|
|
86
|
+
"url": "git+https://github.com/requence/event-sourcing.git"
|
|
87
|
+
},
|
|
4
88
|
"publishConfig": {
|
|
5
89
|
"access": "public"
|
|
6
90
|
}
|