boundlessdb 0.8.0 → 0.9.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.
Files changed (40) hide show
  1. package/CHANGELOG.md +114 -0
  2. package/README.md +97 -135
  3. package/dist/browser.d.ts +3 -3
  4. package/dist/browser.d.ts.map +1 -1
  5. package/dist/browser.js +2 -2
  6. package/dist/browser.js.map +1 -1
  7. package/dist/event-store.d.ts +3 -1
  8. package/dist/event-store.d.ts.map +1 -1
  9. package/dist/event-store.js +52 -14
  10. package/dist/event-store.js.map +1 -1
  11. package/dist/index.d.ts +2 -2
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +1 -1
  14. package/dist/index.js.map +1 -1
  15. package/dist/query-builder.d.ts +28 -15
  16. package/dist/query-builder.d.ts.map +1 -1
  17. package/dist/query-builder.js +48 -17
  18. package/dist/query-builder.js.map +1 -1
  19. package/dist/storage/memory.d.ts.map +1 -1
  20. package/dist/storage/memory.js +14 -1
  21. package/dist/storage/memory.js.map +1 -1
  22. package/dist/storage/postgres.d.ts +6 -0
  23. package/dist/storage/postgres.d.ts.map +1 -1
  24. package/dist/storage/postgres.js +151 -11
  25. package/dist/storage/postgres.js.map +1 -1
  26. package/dist/storage/sqlite.d.ts.map +1 -1
  27. package/dist/storage/sqlite.js +153 -3
  28. package/dist/storage/sqlite.js.map +1 -1
  29. package/dist/storage/sqljs.d.ts.map +1 -1
  30. package/dist/storage/sqljs.js +87 -3
  31. package/dist/storage/sqljs.js.map +1 -1
  32. package/dist/types.d.ts +48 -3
  33. package/dist/types.d.ts.map +1 -1
  34. package/dist/types.js +16 -4
  35. package/dist/types.js.map +1 -1
  36. package/package.json +1 -1
  37. package/dist/event-store.browser.d.ts +0 -82
  38. package/dist/event-store.browser.d.ts.map +0 -1
  39. package/dist/event-store.browser.js +0 -336
  40. package/dist/event-store.browser.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -14,11 +14,23 @@ export function isMultiKeyCondition(c) {
14
14
  return 'type' in c && 'keys' in c && Array.isArray(c.keys);
15
15
  }
16
16
  /**
17
- * Normalize a QueryCondition to the internal multi-key format.
18
- * - `{ type, key, value }` → `{ type, keys: [{ name: key, value }] }`
19
- * - `{ type, keys: [...] }` → pass through
20
- * - `{ type }` → pass through (unconstrained)
17
+ * Type guard: check if condition is multi-type (types[] without keys)
21
18
  */
19
+ export function isMultiTypeCondition(c) {
20
+ return 'types' in c && !('keys' in c);
21
+ }
22
+ /**
23
+ * Type guard: check if condition is multi-type constrained (types[] + keys[])
24
+ */
25
+ export function isMultiTypeConstrainedCondition(c) {
26
+ return 'types' in c && 'keys' in c;
27
+ }
28
+ /**
29
+ * Type guard: check if condition is key-only (no type/types field)
30
+ */
31
+ export function isKeyOnlyCondition(c) {
32
+ return !('type' in c) && !('types' in c) && 'keys' in c && Array.isArray(c.keys);
33
+ }
22
34
  export function normalizeCondition(c) {
23
35
  if (isConstrainedCondition(c)) {
24
36
  return { type: c.type, keys: [{ name: c.key, value: c.value }] };
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAmGH;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,CAAiB;IACtD,OAAO,MAAM,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,CAAiB;IACnD,OAAO,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAE,CAAkC,CAAC,IAAI,CAAC,CAAC;AAC/F,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,CAAiB;IAClD,IAAI,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;IACnE,CAAC;IACD,OAAO,CAA0D,CAAC;AACpE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,CAAwD;IAC9E,OAAO,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAE,CAAkC,CAAC,IAAI,CAAC,IAAK,CAAkC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACvI,CAAC;AAWD,+DAA+D;AAC/D,eAAe;AACf,+DAA+D;AAE/D;;GAEG;AACH,MAAM,OAAO,WAAW;IACb,MAAM,CAAmB;IACzB,QAAQ,CAAS;IACjB,UAAU,CAAmB;IAEtC,YACE,MAAwB,EACxB,QAAgB,EAChB,UAA4B;QAE5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,qCAAqC;IACrC,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED,4CAA4C;IAC5C,OAAO;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,iDAAiD;IACjD,KAAK;QACH,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IAED,gDAAgD;IAChD,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,2DAA2D;IAC3D,IAAI,eAAe;QACjB,OAAO,EAAE,iBAAiB,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IACtE,CAAC;CACF;AAsED;;GAEG;AACH,MAAM,UAAU,UAAU,CACxB,MAAwC;IAExC,OAAO,MAAM,CAAC,QAAQ,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AA+HH;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,CAAiB;IACtD,OAAO,MAAM,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,CAAiB;IACnD,OAAO,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAE,CAAkC,CAAC,IAAI,CAAC,CAAC;AAC/F,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,CAAiB;IACpD,OAAO,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,+BAA+B,CAAC,CAAiB;IAC/D,OAAO,OAAO,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,CAAiB;IAClD,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAE,CAAsB,CAAC,IAAI,CAAC,CAAC;AACzG,CAAC;AAWD,MAAM,UAAU,kBAAkB,CAAC,CAAiB;IAClD,IAAI,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;IACnE,CAAC;IACD,OAAO,CAAwB,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,CAAsB;IAC5C,OAAO,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAE,CAAkC,CAAC,IAAI,CAAC,IAAK,CAAkC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACvI,CAAC;AAWD,+DAA+D;AAC/D,eAAe;AACf,+DAA+D;AAE/D;;GAEG;AACH,MAAM,OAAO,WAAW;IACb,MAAM,CAAmB;IACzB,QAAQ,CAAS;IACjB,UAAU,CAAmB;IAEtC,YACE,MAAwB,EACxB,QAAgB,EAChB,UAA4B;QAE5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,qCAAqC;IACrC,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED,4CAA4C;IAC5C,OAAO;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,iDAAiD;IACjD,KAAK;QACH,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IAED,gDAAgD;IAChD,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,2DAA2D;IAC3D,IAAI,eAAe;QACjB,OAAO,EAAE,iBAAiB,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IACtE,CAAC;CACF;AAsED;;GAEG;AACH,MAAM,UAAU,UAAU,CACxB,MAAwC;IAExC,OAAO,MAAM,CAAC,QAAQ,CAAC;AACzB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "boundlessdb",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "license": "MIT",
5
5
  "description": "A DCB-inspired event store library for TypeScript — with support for SQLite, PostgreSQL, in-memory",
6
6
  "author": "Sebastian Bortz",
@@ -1,82 +0,0 @@
1
- /**
2
- * Browser-compatible EventStore
3
- */
4
- import type { EventStorage } from './storage/interface.js';
5
- import { QueryResult, type AppendCondition, type AppendResult, type ConflictResult, type Event, type EventStoreOptions, type EventWithMetadata, type Query } from './types.js';
6
- import { QueryBuilder } from './query-builder.js';
7
- export interface EventStoreConfig extends EventStoreOptions {
8
- storage: EventStorage;
9
- }
10
- /**
11
- * Browser-compatible DCB-native Event Store
12
- */
13
- export declare class EventStore {
14
- private readonly storage;
15
- private readonly keyExtractor;
16
- private readonly config;
17
- private initPromise;
18
- constructor(options: EventStoreConfig);
19
- /**
20
- * Ensure the store is initialized (for async operations)
21
- */
22
- private ensureInitialized;
23
- /**
24
- * Check if config has changed since last run, reindex if needed
25
- */
26
- private checkAndReindexIfNeeded;
27
- /**
28
- * Create a fluent query builder.
29
- *
30
- * @typeParam E - Event union type for typed results
31
- * @returns QueryBuilder for chaining
32
- */
33
- query<E extends Event = Event>(): QueryBuilder<E>;
34
- /**
35
- * Create a fluent query builder that reads all events (no type filter required).
36
- *
37
- * @typeParam E - Event union type for typed results
38
- * @returns QueryBuilder for chaining
39
- *
40
- * @example
41
- * ```typescript
42
- * const result = await store.all().fromPosition(0n).limit(1000).read();
43
- * const result = await store.all().read();
44
- * ```
45
- */
46
- all<E extends Event = Event>(): QueryBuilder<E>;
47
- /**
48
- * Read events matching a query
49
- *
50
- * @typeParam E - Event union type for typed results
51
- * @returns QueryResult with typed events and appendCondition
52
- */
53
- read<E extends Event = Event>(query: Query): Promise<QueryResult<E>>;
54
- /**
55
- * Append events with optional consistency check
56
- *
57
- * @typeParam E - Event type for type checking
58
- * @param events Events to append
59
- * @param condition Consistency check - can be:
60
- * - null: Skip consistency check (optimistic first write)
61
- * - AppendCondition: { position, conditions } from a previous read
62
- * @returns AppendResult on success, ConflictResult on conflict
63
- */
64
- append<E extends Event = Event>(events: EventWithMetadata<E>[], condition: AppendCondition | null): Promise<AppendResult | ConflictResult<E>>;
65
- /**
66
- * Build conditions that cover the appended events
67
- */
68
- private buildConditionsFromEvents;
69
- /**
70
- * Get the underlying storage (for advanced use cases)
71
- */
72
- getStorage(): EventStorage;
73
- /**
74
- * Close the event store
75
- */
76
- close(): Promise<void>;
77
- }
78
- /**
79
- * Factory function to create an event store
80
- */
81
- export declare function createEventStore(options: EventStoreConfig): EventStore;
82
- //# sourceMappingURL=event-store.browser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-store.browser.d.ts","sourceRoot":"","sources":["../src/event-store.browser.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EACL,WAAW,EAKX,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,cAAc,EAInB,KAAK,KAAK,EACV,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,KAAK,EAGX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAsB,MAAM,oBAAoB,CAAC;AA6DtE,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IACzD,OAAO,EAAE,YAAY,CAAC;CACvB;AAED;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,WAAW,CAA8B;gBAErC,OAAO,EAAE,gBAAgB;IAqBrC;;OAEG;YACW,iBAAiB;IAM/B;;OAEG;YACW,uBAAuB;IAyCrC;;;;;OAKG;IACH,KAAK,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,KAAK,YAAY,CAAC,CAAC,CAAC;IAIjD;;;;;;;;;;;OAWG;IACH,GAAG,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,KAAK,YAAY,CAAC,CAAC,CAAC;IAI/C;;;;;OAKG;IACG,IAAI,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IA+B1E;;;;;;;;;OASG;IACG,MAAM,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EAClC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAC9B,SAAS,EAAE,eAAe,GAAG,IAAI,GAChC,OAAO,CAAC,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAsH5C;;OAEG;IACH,OAAO,CAAC,yBAAyB;IA8BjC;;OAEG;IACH,UAAU,IAAI,YAAY;IAI1B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,UAAU,CAEtE"}
@@ -1,336 +0,0 @@
1
- /**
2
- * Browser-compatible EventStore
3
- */
4
- import { KeyExtractor } from './config/extractor.js';
5
- import { validateConfig } from './config/validator.js';
6
- import { SqlJsStorage } from './storage/sqljs.js';
7
- import { QueryResult, isConstrainedCondition, normalizeCondition, hasKeys, } from './types.js';
8
- import { QueryBuilder } from './query-builder.js';
9
- /**
10
- * Generate UUID with fallback for environments without crypto.randomUUID
11
- */
12
- function generateUUID() {
13
- try {
14
- if (typeof crypto !== 'undefined' && typeof crypto.randomUUID === 'function') {
15
- return crypto.randomUUID();
16
- }
17
- }
18
- catch (e) {
19
- // crypto.randomUUID might throw in insecure contexts
20
- }
21
- // Fallback using crypto.getRandomValues if available
22
- if (typeof crypto !== 'undefined' && crypto.getRandomValues) {
23
- const arr = new Uint8Array(16);
24
- crypto.getRandomValues(arr);
25
- arr[6] = (arr[6] & 0x0f) | 0x40; // Version 4
26
- arr[8] = (arr[8] & 0x3f) | 0x80; // Variant
27
- const hex = Array.from(arr, b => b.toString(16).padStart(2, '0')).join('');
28
- return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
29
- }
30
- // Last resort fallback
31
- return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
32
- const r = (Math.random() * 16) | 0;
33
- const v = c === 'x' ? r : (r & 0x3) | 0x8;
34
- return v.toString(16);
35
- });
36
- }
37
- /**
38
- * Recursively sort object keys for deterministic JSON
39
- */
40
- function sortObjectKeys(obj) {
41
- if (obj === null || typeof obj !== 'object') {
42
- return obj;
43
- }
44
- if (Array.isArray(obj)) {
45
- return obj.map(sortObjectKeys);
46
- }
47
- const sorted = {};
48
- for (const key of Object.keys(obj).sort()) {
49
- sorted[key] = sortObjectKeys(obj[key]);
50
- }
51
- return sorted;
52
- }
53
- /**
54
- * Compute SHA256 hash of ConsistencyConfig (async for browser)
55
- */
56
- async function hashConfig(config) {
57
- const normalized = JSON.stringify(sortObjectKeys(config));
58
- const encoder = new TextEncoder();
59
- const data = encoder.encode(normalized);
60
- const hashBuffer = await crypto.subtle.digest('SHA-256', data);
61
- const hashArray = new Uint8Array(hashBuffer);
62
- return Array.from(hashArray)
63
- .map(b => b.toString(16).padStart(2, '0'))
64
- .join('');
65
- }
66
- /**
67
- * Browser-compatible DCB-native Event Store
68
- */
69
- export class EventStore {
70
- storage;
71
- keyExtractor;
72
- config;
73
- initPromise = null;
74
- constructor(options) {
75
- // Validate configuration
76
- validateConfig(options.consistency);
77
- this.storage = options.storage;
78
- this.config = options.consistency;
79
- this.keyExtractor = new KeyExtractor(this.config);
80
- console.log('🚀 INIT: Creating EventStore...');
81
- console.log('⚙️ CONFIG: Consistency configuration loaded');
82
- const eventTypes = Object.keys(this.config.eventTypes);
83
- console.log(` Event types: ${eventTypes.join(', ')}`);
84
- eventTypes.forEach(type => {
85
- const keys = this.config.eventTypes[type].keys;
86
- console.log(` ${type}: ${keys.map(k => k.name + ' ← ' + k.path).join(', ')}`);
87
- });
88
- // Start async initialization
89
- this.initPromise = this.checkAndReindexIfNeeded();
90
- }
91
- /**
92
- * Ensure the store is initialized (for async operations)
93
- */
94
- async ensureInitialized() {
95
- if (this.initPromise) {
96
- await this.initPromise;
97
- }
98
- }
99
- /**
100
- * Check if config has changed since last run, reindex if needed
101
- */
102
- async checkAndReindexIfNeeded() {
103
- // Only works with SqlJsStorage (has metadata methods)
104
- if (!(this.storage instanceof SqlJsStorage)) {
105
- return;
106
- }
107
- try {
108
- // Ensure storage is fully initialized before accessing metadata
109
- await this.storage.getLatestPosition(); // This awaits the init promise
110
- console.log('🔐 HASH: Computing config hash...');
111
- const currentHash = await hashConfig(this.config);
112
- if (!currentHash) {
113
- console.warn('[EventStore] Failed to compute config hash');
114
- return;
115
- }
116
- console.log(` Current config hash: ${currentHash.substring(0, 16)}...`);
117
- const storedHash = await this.storage.getConfigHash();
118
- console.log(` Stored config hash: ${storedHash ? storedHash.substring(0, 16) + '...' : '(none - first run)'}`);
119
- if (storedHash === null) {
120
- // First run — just store the hash
121
- await this.storage.setConfigHash(currentHash);
122
- }
123
- else if (storedHash !== currentHash) {
124
- // Config changed — throw error, require explicit reindex via script
125
- throw new Error(`Config hash mismatch (stored: ${storedHash}, current: ${currentHash}). ` +
126
- `Run the reindex script before starting the application.`);
127
- }
128
- }
129
- catch (error) {
130
- // Re-throw config hash mismatch errors — these are intentional
131
- if (error instanceof Error && error.message.includes('Config hash mismatch')) {
132
- throw error;
133
- }
134
- console.warn('⚠️ INIT: Config hash check failed (non-fatal):', error);
135
- // Don't throw for other errors - config hash is nice-to-have, not required
136
- }
137
- }
138
- /**
139
- * Create a fluent query builder.
140
- *
141
- * @typeParam E - Event union type for typed results
142
- * @returns QueryBuilder for chaining
143
- */
144
- query() {
145
- return new QueryBuilder(this);
146
- }
147
- /**
148
- * Create a fluent query builder that reads all events (no type filter required).
149
- *
150
- * @typeParam E - Event union type for typed results
151
- * @returns QueryBuilder for chaining
152
- *
153
- * @example
154
- * ```typescript
155
- * const result = await store.all().fromPosition(0n).limit(1000).read();
156
- * const result = await store.all().read();
157
- * ```
158
- */
159
- all() {
160
- return new QueryBuilder(this);
161
- }
162
- /**
163
- * Read events matching a query
164
- *
165
- * @typeParam E - Event union type for typed results
166
- * @returns QueryResult with typed events and appendCondition
167
- */
168
- async read(query) {
169
- await this.ensureInitialized();
170
- console.log('📖 READ: Querying events...');
171
- console.log(' Conditions:', query.conditions.map(c => isConstrainedCondition(c) ? `${c.type}[${c.key}=${c.value}]` : `${c.type}[*]`).join(', ') || '(none)');
172
- const events = await this.storage.query(query.conditions, query.fromPosition, query.limit);
173
- console.log(` Found: ${events.length} events`);
174
- // Get the position for the append condition
175
- const position = events.length > 0
176
- ? events[events.length - 1].position
177
- : await this.storage.getLatestPosition();
178
- console.log(`📍 POSITION: #${position}`);
179
- console.log(` Scope: ${query.conditions.length} condition(s)`);
180
- return new QueryResult(events, position, query.conditions);
181
- }
182
- /**
183
- * Append events with optional consistency check
184
- *
185
- * @typeParam E - Event type for type checking
186
- * @param events Events to append
187
- * @param condition Consistency check - can be:
188
- * - null: Skip consistency check (optimistic first write)
189
- * - AppendCondition: { position, conditions } from a previous read
190
- * @returns AppendResult on success, ConflictResult on conflict
191
- */
192
- async append(events, condition) {
193
- await this.ensureInitialized();
194
- console.log(`✏️ APPEND: ${events.length} event(s)`);
195
- events.forEach(e => console.log(` → ${e.type}: ${JSON.stringify(e.data).substring(0, 60)}...`));
196
- console.log(` Condition: ${condition ? 'AppendCondition' : 'null (no conflict check)'}`);
197
- if (events.length === 0) {
198
- const position = await this.storage.getLatestPosition();
199
- return {
200
- conflict: false,
201
- position,
202
- appendCondition: { failIfEventsMatch: condition?.failIfEventsMatch ?? [], after: position },
203
- };
204
- }
205
- // Extract keys from all events
206
- const keysPerEvent = events.map(event => this.keyExtractor.extract(event));
207
- console.log(`🔑 KEYS: Extracted from payload via config`);
208
- keysPerEvent.forEach((keys, i) => {
209
- console.log(` Event ${i}: ${keys.map(k => `${k.name}="${k.value}"`).join(', ')}`);
210
- });
211
- // Prepare events for storage
212
- const now = new Date();
213
- const eventsToStore = events.map((event) => {
214
- const id = generateUUID();
215
- if (!id) {
216
- throw new Error('Failed to generate event ID');
217
- }
218
- return {
219
- id,
220
- type: event.type,
221
- data: event.data,
222
- metadata: event.metadata,
223
- timestamp: now,
224
- };
225
- });
226
- // Build storage condition (if provided)
227
- const storageCondition = condition !== null
228
- ? { failIfEventsMatch: condition.failIfEventsMatch, after: condition.after ?? 0n }
229
- : null;
230
- if (condition !== null) {
231
- const conditionsStr = condition.failIfEventsMatch.map((c) => isConstrainedCondition(c) ? `${c.type}[${c.key}=${c.value}]` : `${c.type}[*]`).join(', ');
232
- const checkFromPosition = condition.after ?? 0n;
233
- console.log(`🔍 CONFLICT CHECK: Looking for events since position #${checkFromPosition}`);
234
- console.log(` Checking conditions: ${conditionsStr || '(none)'}`);
235
- }
236
- // Append with atomic conflict check
237
- const result = await this.storage.appendWithCondition(eventsToStore, keysPerEvent, storageCondition);
238
- // Check if conflict detected
239
- if (result.conflicting) {
240
- console.log(` Result: ${result.conflicting.length} matching event(s) found - CONFLICT!`);
241
- console.log('');
242
- console.log('❌ ═══════════════════════════════════════');
243
- console.log(' CONFLICT DETECTED');
244
- console.log('═══════════════════════════════════════════');
245
- console.log('');
246
- console.log('📍 Your position: #' + (condition?.after ?? '0 (all events)'));
247
- console.log('');
248
- console.log('🔍 Query conditions you checked:');
249
- condition?.failIfEventsMatch.forEach((c) => {
250
- if (isConstrainedCondition(c)) {
251
- console.log(` • ${c.type} where ${c.key}="${c.value}"`);
252
- }
253
- else {
254
- console.log(` • ${c.type} (all)`);
255
- }
256
- });
257
- console.log('');
258
- console.log('⚡ Events written SINCE your read (that match your query):');
259
- result.conflicting.forEach(e => {
260
- console.log(` • Event #${e.position}: ${e.type}`);
261
- console.log(` Data: ${JSON.stringify(e.data)}`);
262
- });
263
- console.log('');
264
- console.log('💡 Why conflict?');
265
- console.log(' These events match your query conditions!');
266
- console.log(' Your decision was based on stale data.');
267
- console.log('');
268
- console.log('🔄 Solution: Use result.appendCondition to retry.');
269
- console.log('═══════════════════════════════════════════');
270
- console.log('');
271
- const latestPosition = result.conflicting[result.conflicting.length - 1].position;
272
- return {
273
- conflict: true,
274
- conflictingEvents: result.conflicting,
275
- appendCondition: {
276
- failIfEventsMatch: condition?.failIfEventsMatch ?? [],
277
- after: latestPosition
278
- },
279
- };
280
- }
281
- console.log(`💾 STORED: Event(s) at position #${result.position}`);
282
- // Build new appendCondition
283
- const newConditions = this.buildConditionsFromEvents(events, condition);
284
- console.log(`✅ SUCCESS: Append complete at position #${result.position}`);
285
- return {
286
- conflict: false,
287
- position: result.position,
288
- appendCondition: { failIfEventsMatch: newConditions, after: result.position },
289
- };
290
- }
291
- /**
292
- * Build conditions that cover the appended events
293
- */
294
- buildConditionsFromEvents(events, originalCondition) {
295
- const conditions = new Map();
296
- if (originalCondition !== null) {
297
- for (const cond of originalCondition.failIfEventsMatch) {
298
- const normalized = normalizeCondition(cond);
299
- if (hasKeys(normalized)) {
300
- const keysStr = normalized.keys.map(k => `${k.name}:${k.value}`).sort().join('|');
301
- const dedupKey = `${normalized.type}:${keysStr}`;
302
- conditions.set(dedupKey, normalized);
303
- }
304
- }
305
- }
306
- // Add conditions from the newly appended events
307
- for (const event of events) {
308
- const extractedKeys = this.keyExtractor.extract(event);
309
- for (const extracted of extractedKeys) {
310
- const cond = { type: event.type, key: extracted.name, value: extracted.value };
311
- const dedupKey = `${cond.type}:${extracted.name}:${extracted.value}`;
312
- conditions.set(dedupKey, cond);
313
- }
314
- }
315
- return Array.from(conditions.values());
316
- }
317
- /**
318
- * Get the underlying storage (for advanced use cases)
319
- */
320
- getStorage() {
321
- return this.storage;
322
- }
323
- /**
324
- * Close the event store
325
- */
326
- async close() {
327
- await this.storage.close();
328
- }
329
- }
330
- /**
331
- * Factory function to create an event store
332
- */
333
- export function createEventStore(options) {
334
- return new EventStore(options);
335
- }
336
- //# sourceMappingURL=event-store.browser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-store.browser.js","sourceRoot":"","sources":["../src/event-store.browser.ts"],"names":[],"mappings":"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"}