@arcmantle/chronicle 1.0.2 → 1.0.4

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 (41) hide show
  1. package/README.md +26 -12
  2. package/dist/api-methods.d.ts +10 -2
  3. package/dist/api-methods.d.ts.map +1 -1
  4. package/dist/api-methods.js +42 -20
  5. package/dist/api-methods.js.map +1 -1
  6. package/dist/batch-transaction.d.ts +6 -10
  7. package/dist/batch-transaction.d.ts.map +1 -1
  8. package/dist/batch-transaction.js +36 -42
  9. package/dist/batch-transaction.js.map +1 -1
  10. package/dist/chronicle.d.ts +3 -35
  11. package/dist/chronicle.d.ts.map +1 -1
  12. package/dist/chronicle.js +6 -8
  13. package/dist/chronicle.js.map +1 -1
  14. package/dist/history-recorder.d.ts.map +1 -1
  15. package/dist/history-recorder.js +5 -4
  16. package/dist/history-recorder.js.map +1 -1
  17. package/dist/history.d.ts +64 -0
  18. package/dist/history.d.ts.map +1 -1
  19. package/dist/history.js +16 -1
  20. package/dist/history.js.map +1 -1
  21. package/dist/nameof.d.ts +1 -2
  22. package/dist/nameof.d.ts.map +1 -1
  23. package/dist/nameof.js +38 -12
  24. package/dist/nameof.js.map +1 -1
  25. package/dist/path.js.map +1 -1
  26. package/dist/three-way-merge.d.ts +13 -0
  27. package/dist/three-way-merge.d.ts.map +1 -0
  28. package/dist/three-way-merge.js +152 -0
  29. package/dist/three-way-merge.js.map +1 -0
  30. package/dist/types.d.ts +19 -0
  31. package/dist/types.d.ts.map +1 -1
  32. package/package.json +1 -1
  33. package/src/api-methods.ts +86 -53
  34. package/src/batch-transaction.ts +56 -55
  35. package/src/chronicle.ts +31 -84
  36. package/src/history-recorder.ts +5 -4
  37. package/src/history.ts +82 -1
  38. package/src/nameof.ts +51 -13
  39. package/src/path.ts +1 -1
  40. package/src/three-way-merge.ts +196 -0
  41. package/src/types.ts +25 -0
package/README.md CHANGED
@@ -283,22 +283,27 @@ console.log(chronicle.isPristine(state)); // true
283
283
 
284
284
  ### Configuration
285
285
 
286
+ Chronicle provides sensible defaults out of the box, but you can customize behavior:
287
+
286
288
  ```typescript
287
289
  chronicle.configure(state, {
288
- // Limit history size (trims by whole groups)
289
- maxHistory: 100,
290
-
291
- // Filter which changes to record
292
- filter: (record) => !record.path.includes('_temp'),
293
-
294
- // Merge ungrouped changes within time window
290
+ // Merge ungrouped changes within time window (default: true)
291
+ // Groups rapid consecutive changes for better undo/redo UX
295
292
  mergeUngrouped: true,
296
- mergeWindowMs: 100,
293
+ mergeWindowMs: 300, // default: 300ms
297
294
 
298
- // Compact consecutive sets to same path
295
+ // Compact consecutive sets to same path (default: true)
296
+ // Reduces memory without losing information
299
297
  compactConsecutiveSamePath: true,
300
298
 
301
- // Enable proxy caching for stable identity
299
+ // Limit history size (default: 1000)
300
+ // Trims by whole groups to prevent unbounded growth
301
+ maxHistory: 1000,
302
+
303
+ // Filter which changes to record
304
+ filter: (record) => !record.path.includes('_temp'),
305
+
306
+ // Enable proxy caching for stable identity (default: true)
302
307
  cacheProxies: true,
303
308
 
304
309
  // Custom clone function (default: structuredClone)
@@ -316,6 +321,14 @@ chronicle.configure(state, {
316
321
  });
317
322
  ```
318
323
 
324
+ **Default Configuration:**
325
+
326
+ - `mergeUngrouped: true` - Groups rapid changes for intuitive undo/redo
327
+ - `mergeWindowMs: 300` - 300ms window for grouping changes
328
+ - `compactConsecutiveSamePath: true` - Optimizes memory for rapid updates
329
+ - `maxHistory: 1000` - Prevents unbounded memory growth
330
+ - `cacheProxies: true` - Stable proxy identity for better UI framework integration
331
+
319
332
  ## Working with Collections
320
333
 
321
334
  ### Arrays
@@ -477,11 +490,12 @@ chronicle.listen(doc, 'content', (path, newVal) => {
477
490
  ## Performance Tips
478
491
 
479
492
  1. **Use batching** for bulk operations to reduce listener overhead
480
- 2. **Enable proxy caching** for frequently accessed nested objects
493
+ 2. **Proxy caching is enabled by default** for better performance
481
494
  3. **Use debounce/throttle** for high-frequency updates
482
495
  4. **Filter history** to exclude temporary/internal state
483
- 5. **Set maxHistory** to prevent unbounded growth
496
+ 5. **maxHistory is set to 1000 by default** to prevent unbounded growth
484
497
  6. **Use 'exact' mode** when possible (faster than 'down'/'up')
498
+ 7. **Rapid changes are auto-grouped** for intuitive undo/redo
485
499
 
486
500
  ## Gotchas & Best Practices
487
501
 
@@ -1,9 +1,13 @@
1
- import type { ChangeListener, ChangeRecord, DiffRecord, ListenerOptions, PathMode, PathSelector } from './types.ts';
1
+ import { type ConfigureOptions } from './config.ts';
2
+ import type { ChangeListener, ChangeRecord, ConflictResolutions, DiffRecord, ListenerOptions, MergeResult, PathMode, PathSelector } from './types.ts';
2
3
  export interface ApiDeps {
3
4
  getRoot: (obj: object) => object;
4
5
  }
5
6
  export interface ChronicleApiMethods {
6
- listen: <T extends object>(object: T, selector: PathSelector<T>, listener: ChangeListener, modeOrOptions?: PathMode | ListenerOptions, maybeOptions?: ListenerOptions) => () => void;
7
+ listen<T extends object>(object: T, selector: PathSelector<T>, listener: ChangeListener): () => void;
8
+ listen<T extends object>(object: T, selector: PathSelector<T>, listener: ChangeListener, options: ListenerOptions): () => void;
9
+ listen<T extends object>(object: T, selector: PathSelector<T>, listener: ChangeListener, mode: PathMode): () => void;
10
+ listen<T extends object>(object: T, selector: PathSelector<T>, listener: ChangeListener, mode: PathMode, options: ListenerOptions): () => void;
7
11
  onAny: (obj: object, listener: ChangeListener, options?: ListenerOptions) => () => void;
8
12
  pause: (obj: object) => void;
9
13
  resume: (obj: object) => void;
@@ -14,6 +18,9 @@ export interface ChronicleApiMethods {
14
18
  markPristine: (obj: object) => void;
15
19
  diff: (obj: object) => DiffRecord[];
16
20
  isPristine: (obj: object) => boolean;
21
+ snapshot: <T extends object>(obj: T) => T;
22
+ unwrap: <T extends object>(obj: T) => T;
23
+ merge: (obj: object, incomingObject: object, resolutions?: ConflictResolutions) => MergeResult;
17
24
  mark: (obj: object) => number;
18
25
  undo: (obj: object, steps?: number) => void;
19
26
  undoSince: (obj: object, historyLengthBefore: number) => void;
@@ -23,6 +30,7 @@ export interface ChronicleApiMethods {
23
30
  clearRedo: (obj: object) => void;
24
31
  redo: (obj: object, steps?: number) => void;
25
32
  redoGroups: (obj: object, groups?: number) => void;
33
+ configure: (obj: object, options: ConfigureOptions) => void;
26
34
  }
27
35
  export declare const createApiMethods: (deps: ApiDeps) => ChronicleApiMethods;
28
36
  //# sourceMappingURL=api-methods.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-methods.d.ts","sourceRoot":"","sources":["../src/api-methods.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAIpH,MAAM,WAAW,OAAO;IACvB,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;CACjC;AAMD,MAAM,WAAW,mBAAmB;IACnC,MAAM,EAAE,CAAC,CAAC,SAAS,MAAM,EACxB,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EACzB,QAAQ,EAAE,cAAc,EACxB,aAAa,CAAC,EAAE,QAAQ,GAAG,eAAe,EAC1C,YAAY,CAAC,EAAE,eAAe,KAC1B,MAAM,IAAI,CAAC;IAChB,KAAK,EAAS,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,eAAe,KAAK,MAAM,IAAI,CAAC;IAC/F,KAAK,EAAS,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,MAAM,EAAQ,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,KAAK,EAAS,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,UAAU,EAAI,CAAC,GAAG,EAAE,MAAM,KAAK,YAAY,EAAE,CAAC;IAC9C,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,KAAK,EAAS,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,IAAI,EAAU,CAAC,GAAG,EAAE,MAAM,KAAK,UAAU,EAAE,CAAC;IAC5C,UAAU,EAAI,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACvC,IAAI,EAAU,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACtC,IAAI,EAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,SAAS,EAAK,CAAC,GAAG,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,KAAK,IAAI,CAAC;IACjE,UAAU,EAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACrD,OAAO,EAAO,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACvC,OAAO,EAAO,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACvC,SAAS,EAAK,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,IAAI,EAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,UAAU,EAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACrD;AAED,eAAO,MAAM,gBAAgB,GAAI,MAAM,OAAO,KAAG,mBAoPhD,CAAC"}
1
+ {"version":3,"file":"api-methods.d.ts","sourceRoot":"","sources":["../src/api-methods.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAiB,MAAM,aAAa,CAAC;AAQnE,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,mBAAmB,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAItJ,MAAM,WAAW,OAAO;IACvB,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;CACjC;AAMD,MAAM,WAAW,mBAAmB;IACnC,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,GAAG,MAAM,IAAI,CAAC;IAErG,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,eAAe,GAAG,MAAM,IAAI,CAAC;IAE/H,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,IAAI,CAAC;IAErH,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,GAAG,MAAM,IAAI,CAAC;IAC/I,KAAK,EAAS,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,eAAe,KAAK,MAAM,IAAI,CAAC;IAC/F,KAAK,EAAS,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,MAAM,EAAQ,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,KAAK,EAAS,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,UAAU,EAAI,CAAC,GAAG,EAAE,MAAM,KAAK,YAAY,EAAE,CAAC;IAC9C,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,KAAK,EAAS,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,IAAI,EAAU,CAAC,GAAG,EAAE,MAAM,KAAK,UAAU,EAAE,CAAC;IAC5C,UAAU,EAAI,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACvC,QAAQ,EAAM,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,EAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IAC9C,KAAK,EAAS,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,mBAAmB,KAAK,WAAW,CAAC;IACtG,IAAI,EAAU,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACtC,IAAI,EAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,SAAS,EAAK,CAAC,GAAG,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,KAAK,IAAI,CAAC;IACjE,UAAU,EAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACrD,OAAO,EAAO,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACvC,OAAO,EAAO,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACvC,SAAS,EAAK,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,IAAI,EAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,UAAU,EAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACrD,SAAS,EAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAC/D;AAED,eAAO,MAAM,gBAAgB,GAAI,MAAM,OAAO,KAAG,mBA+QhD,CAAC"}
@@ -1,9 +1,11 @@
1
+ import { configureRoot } from "./config.js";
1
2
  import { clearLastUngrouped, historyDelete, historyGet } from "./history.js";
2
3
  import { addListenerToTrie, cleanupListenerBucket, ensureListenerBucket, removeListenerFromTrie } from "./listener-trie.js";
3
4
  import { nameofSegments } from "./nameof.js";
4
5
  import { clearProxyCache as pfClearProxyCache } from "./proxy-factory.js";
5
6
  import { buildEffectiveListener, flush as scheduleFlush, pause as schedulePause, resume as scheduleResume } from "./schedule-queue.js";
6
7
  import { cloneWithOptions, diffValues, originalSnapshotCache } from "./snapshot-diff.js";
8
+ import { threeWayMerge } from "./three-way-merge.js";
7
9
  import { canRedo as coreCanRedo, canUndo as coreCanUndo, clearRedoCache, redo as coreRedo, redoGroups as coreRedoGroups, resumeWrites, suspendWrites, undo as coreUndo, undoGroups as coreUndoGroups, undoSince as coreUndoSince } from "./undo-redo.js";
8
10
  const isObject = (v) => typeof v === 'object' && v !== null;
9
11
  export const createApiMethods = (deps) => {
@@ -138,6 +140,18 @@ export const createApiMethods = (deps) => {
138
140
  const diffs = diff(obj);
139
141
  return diffs.length === 0;
140
142
  };
143
+ const snapshot = (obj) => {
144
+ const root = deps.getRoot(obj);
145
+ return cloneWithOptions(root, root);
146
+ };
147
+ const unwrap = (obj) => {
148
+ const root = deps.getRoot(obj);
149
+ return root;
150
+ };
151
+ const merge = (obj, incomingObject, resolutions) => {
152
+ const root = deps.getRoot(obj);
153
+ return threeWayMerge(root, obj, incomingObject, resolutions);
154
+ };
141
155
  // marks/undo/redo -----------------------------------------------------------
142
156
  const mark = (obj) => {
143
157
  const root = deps.getRoot(obj);
@@ -180,27 +194,35 @@ export const createApiMethods = (deps) => {
180
194
  coreRedoGroups(root, groups);
181
195
  clearLastUngrouped(root);
182
196
  };
197
+ const configure = (obj, options) => {
198
+ const root = deps.getRoot(obj);
199
+ configureRoot(root, options);
200
+ };
183
201
  return {
184
- listen: listen,
185
- onAny: onAny,
186
- pause: pause,
187
- resume: resume,
188
- flush: flush,
189
- getHistory: getHistory,
190
- clearHistory: clearHistory,
191
- reset: reset,
192
- markPristine: markPristine,
193
- diff: diff,
194
- isPristine: isPristine,
195
- mark: mark,
196
- undo: undo,
197
- undoSince: undoSince,
198
- undoGroups: undoGroups,
199
- canUndo: canUndo,
200
- canRedo: canRedo,
201
- clearRedo: clearRedo,
202
- redo: redo,
203
- redoGroups: redoGroups,
202
+ listen,
203
+ onAny,
204
+ pause,
205
+ resume,
206
+ flush,
207
+ getHistory,
208
+ clearHistory,
209
+ reset,
210
+ markPristine,
211
+ diff,
212
+ isPristine,
213
+ snapshot,
214
+ unwrap,
215
+ merge,
216
+ mark,
217
+ undo,
218
+ undoSince,
219
+ undoGroups,
220
+ canUndo,
221
+ canRedo,
222
+ clearRedo,
223
+ redo,
224
+ redoGroups,
225
+ configure,
204
226
  };
205
227
  };
206
228
  //# sourceMappingURL=api-methods.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-methods.js","sourceRoot":"","sources":["../src/api-methods.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-methods.js","sourceRoot":"","sources":["../src/api-methods.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,10 @@
1
1
  import type { ChronicleCore } from './api.ts';
2
2
  export type BatchDeps = Pick<ChronicleCore, 'chronicle' | 'getRoot'>;
3
+ export interface TransactionResult<R> {
4
+ result: R;
5
+ marker: number;
6
+ undo: () => void;
7
+ }
3
8
  export interface BatchFrame {
4
9
  marker: number;
5
10
  id: string;
@@ -10,16 +15,7 @@ export interface BatchAPI {
10
15
  commitBatch: (obj: object) => void;
11
16
  rollbackBatch: (obj: object) => void;
12
17
  batch: <T extends object, R>(object: T, action: (observed: T) => R) => R;
13
- transaction: <T extends object, R>(object: T, action: (observed: T) => R) => {
14
- result: R;
15
- marker: number;
16
- undo: () => void;
17
- };
18
- transactionAsync: <T extends object, R>(object: T, action: (observed: T) => Promise<R>) => Promise<{
19
- result: R;
20
- marker: number;
21
- undo: () => void;
22
- }>;
18
+ transaction<T extends object, R>(object: T, action: (observed: T) => R): R extends Promise<infer U> ? Promise<TransactionResult<U>> : TransactionResult<R>;
23
19
  }
24
20
  export declare const createBatchTransaction: (deps: BatchDeps) => BatchAPI;
25
21
  //# sourceMappingURL=batch-transaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"batch-transaction.d.ts","sourceRoot":"","sources":["../src/batch-transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAQ9C,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,WAAW,GAAG,SAAS,CAAC,CAAC;AAErE,MAAM,WAAW,UAAU;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;CAAE;AAE3D,MAAM,WAAW,QAAQ;IACxB,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,EAAE,GAAG,SAAS,CAAC;IAC3D,UAAU,EAAM,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,WAAW,EAAK,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,aAAa,EAAG,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,KAAK,EAAW,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClF,WAAW,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,KACxE;QAAE,MAAM,EAAE,CAAC,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,IAAI,CAAC;KAAE,CAAC;IACjD,gBAAgB,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,KACtF,OAAO,CAAC;QAAE,MAAM,EAAE,CAAC,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,IAAI,CAAC;KAAE,CAAC,CAAC;CAC1D;AAGD,eAAO,MAAM,sBAAsB,GAAI,MAAM,SAAS,KAAG,QA6JxD,CAAC"}
1
+ {"version":3,"file":"batch-transaction.d.ts","sourceRoot":"","sources":["../src/batch-transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAQ9C,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,WAAW,GAAG,SAAS,CAAC,CAAC;AAErE,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAAI,MAAM,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,IAAI,CAAC;CAAE;AAEtF,MAAM,WAAW,UAAU;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;CAAE;AAE3D,MAAM,WAAW,QAAQ;IACxB,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,EAAE,GAAG,SAAS,CAAC;IAC3D,UAAU,EAAM,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,WAAW,EAAK,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,aAAa,EAAG,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,KAAK,EAAW,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClF,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAC9B,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GACnC,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAC1B,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,GAC7B,iBAAiB,CAAC,CAAC,CAAC,CAAC;CACxB;AAGD,eAAO,MAAM,sBAAsB,GAAI,MAAM,SAAS,KAAG,QA2JxD,CAAC"}
@@ -57,52 +57,47 @@ export const createBatchTransaction = (deps) => {
57
57
  const observed = deps.chronicle(object);
58
58
  let groupId;
59
59
  try {
60
- const result = action(observed);
61
- const frames = (batchStack.get(root) ?? []);
62
- groupId = frames.length > 0 ? frames[frames.length - 1].id : undefined;
63
- if (isTopLevel)
64
- commitBatch(root);
65
- return {
66
- result,
67
- marker,
68
- undo: () => {
69
- const h = historyGet(root);
70
- if (groupId && h && h.length > 0) {
71
- const topGroup = h[h.length - 1].groupId ?? `__g#${h.length - 1}`;
72
- if (topGroup === groupId) {
73
- undoGroups(root, 1);
74
- return;
75
- }
76
- }
77
- undoSince(root, marker);
78
- },
79
- };
80
- }
81
- catch (err) {
82
- if (isTopLevel)
83
- rollbackBatch(root);
84
- else
85
- undoSince(root, marker);
86
- throw err;
87
- }
88
- };
89
- const transactionAsync = async (object, action) => {
90
- const root = deps.getRoot(object);
91
- const marker = (historyGet(root) ?? []).length;
92
- const framesBefore = (batchStack.get(root) ?? []).length;
93
- const isTopLevel = framesBefore === 0;
94
- if (isTopLevel)
95
- beginBatch(root);
96
- const observed = deps.chronicle(object);
97
- let groupId;
98
- try {
99
- const result = await action(observed);
60
+ const actionResult = action(observed);
61
+ const isObject = typeof actionResult === 'object' && actionResult !== null;
62
+ const isPromise = isObject && 'then' in actionResult && typeof actionResult.then === 'function';
63
+ // Check if result is a Promise
64
+ if (isPromise) {
65
+ const typedActionResult = actionResult;
66
+ return typedActionResult.then(resolvedResult => {
67
+ const frames = (batchStack.get(root) ?? []);
68
+ groupId = frames.length > 0 ? frames[frames.length - 1].id : undefined;
69
+ if (isTopLevel)
70
+ commitBatch(root);
71
+ return {
72
+ result: resolvedResult,
73
+ marker,
74
+ undo: () => {
75
+ const h = historyGet(root);
76
+ if (groupId && h && h.length > 0) {
77
+ const topGroup = h[h.length - 1].groupId ?? `__g#${h.length - 1}`;
78
+ if (topGroup === groupId) {
79
+ undoGroups(root, 1);
80
+ return;
81
+ }
82
+ }
83
+ undoSince(root, marker);
84
+ },
85
+ };
86
+ }, err => {
87
+ if (isTopLevel)
88
+ rollbackBatch(root);
89
+ else
90
+ undoSince(root, marker);
91
+ throw err;
92
+ });
93
+ }
94
+ // Synchronous result
100
95
  const frames = (batchStack.get(root) ?? []);
101
96
  groupId = frames.length > 0 ? frames[frames.length - 1].id : undefined;
102
97
  if (isTopLevel)
103
98
  commitBatch(root);
104
99
  return {
105
- result,
100
+ result: actionResult,
106
101
  marker,
107
102
  undo: () => {
108
103
  const h = historyGet(root);
@@ -132,7 +127,6 @@ export const createBatchTransaction = (deps) => {
132
127
  rollbackBatch,
133
128
  batch,
134
129
  transaction,
135
- transactionAsync,
136
130
  };
137
131
  };
138
132
  //# sourceMappingURL=batch-transaction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"batch-transaction.js","sourceRoot":"","sources":["../src/batch-transaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGvD,MAAM,UAAU,GAAkC,IAAI,OAAO,EAAE,CAAC;AAoBhE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,IAAe,EAAY,EAAE;IACnE,MAAM,cAAc,GAA+B,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAElF,MAAM,UAAU,GAA2B,CAAC,GAAG,EAAE,EAAE;QAClD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC1C,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5C,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC7B,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,MAAM,WAAW,GAA4B,CAAC,GAAG,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YACjC,OAAO;QAER,MAAM,CAAC,GAAG,EAAE,CAAC;QACb,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YACtB,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEzB,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,MAAM,aAAa,GAA8B,CAAC,GAAG,EAAE,EAAE;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YACjC,OAAO;QAER,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,EAAG,CAAC;QAC5B,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YACtB,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEzB,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,MAAM,KAAK,GAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAA2B,CAAC,CAAC;QACvD,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YAChC,WAAW,CAAC,IAAI,CAAC,CAAC;YAElB,OAAO,MAAM,CAAC;QACf,CAAC;QACD,OAAO,GAAG,EAAE,CAAC;YACZ,aAAa,CAAC,IAAI,CAAC,CAAC;YACpB,MAAM,GAAG,CAAC;QACX,CAAC;IACF,CAAC,CAAC;IAEF,MAAM,WAAW,GAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;QAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAA2B,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QAE/C,MAAM,YAAY,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACzD,MAAM,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC;QACtC,IAAI,UAAU;YACb,UAAU,CAAC,IAAI,CAAC,CAAC;QAElB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,OAA2B,CAAC;QAChC,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YAChC,MAAM,MAAM,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5C,OAAO,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YACxE,IAAI,UAAU;gBACb,WAAW,CAAC,IAAI,CAAC,CAAC;YAEnB,OAAO;gBACN,MAAM;gBACN,MAAM;gBACN,IAAI,EAAE,GAAG,EAAE;oBACV,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;oBAC3B,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAClC,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,OAAO,IAAI,OAAQ,CAAC,CAAC,MAAM,GAAG,CAAE,EAAE,CAAC;wBACrE,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;4BAC1B,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;4BAEpB,OAAO;wBACR,CAAC;oBACF,CAAC;oBAED,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACzB,CAAC;aACD,CAAC;QACH,CAAC;QACD,OAAO,GAAG,EAAE,CAAC;YACZ,IAAI,UAAU;gBACb,aAAa,CAAC,IAAI,CAAC,CAAC;;gBAEpB,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAEzB,MAAM,GAAG,CAAC;QACX,CAAC;IACF,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAiC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QAC/E,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAA2B,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QAE/C,MAAM,YAAY,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACzD,MAAM,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC;QACtC,IAAI,UAAU;YACb,UAAU,CAAC,IAAI,CAAC,CAAC;QAElB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,OAA2B,CAAC;QAChC,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtC,MAAM,MAAM,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5C,OAAO,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YACxE,IAAI,UAAU;gBACb,WAAW,CAAC,IAAI,CAAC,CAAC;YAEnB,OAAO;gBACN,MAAM;gBACN,MAAM;gBACN,IAAI,EAAE,GAAG,EAAE;oBACV,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;oBAC3B,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAClC,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,OAAO,IAAI,OAAQ,CAAC,CAAC,MAAM,GAAG,CAAE,EAAE,CAAC;wBACrE,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;4BAC1B,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;4BAEpB,OAAO;wBACR,CAAC;oBACF,CAAC;oBAED,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACzB,CAAC;aACD,CAAC;QACH,CAAC;QACD,OAAO,GAAG,EAAE,CAAC;YACZ,IAAI,UAAU;gBACb,aAAa,CAAC,IAAI,CAAC,CAAC;;gBAEpB,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAEzB,MAAM,GAAG,CAAC;QACX,CAAC;IACF,CAAC,CAAC;IAEF,OAAO;QACN,cAAc;QACd,UAAU;QACV,WAAW;QACX,aAAa;QACb,KAAK;QACL,WAAW;QACX,gBAAgB;KAChB,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"batch-transaction.js","sourceRoot":"","sources":["../src/batch-transaction.ts"],"names":[],"mappings":"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"}
@@ -1,39 +1,7 @@
1
- import { type ConfigureOptions } from './config.ts';
2
- import type { ChangeListener, ChangeRecord, DiffRecord, ListenerOptions, PathMode, PathSelector } from './types.ts';
3
- interface Chronicle {
1
+ import { type ChronicleApiMethods } from './api-methods.ts';
2
+ import { type BatchAPI } from './batch-transaction.ts';
3
+ interface Chronicle extends Omit<BatchAPI, 'getBatchFrames'>, ChronicleApiMethods {
4
4
  <T extends object>(object: T): T;
5
- listen<T extends object>(object: T, selector: PathSelector<T>, listener: ChangeListener, modeOrOptions?: PathMode | ListenerOptions, maybeOptions?: ListenerOptions): () => void;
6
- onAny(obj: object, listener: ChangeListener, options?: ListenerOptions): () => void;
7
- pause(obj: object): void;
8
- resume(obj: object): void;
9
- flush(obj: object): void;
10
- getHistory(obj: object): ChangeRecord[];
11
- clearHistory(obj: object): void;
12
- reset(obj: object): void;
13
- markPristine(obj: object): void;
14
- undo(obj: object, steps?: number): void;
15
- undoSince(obj: object, historyLengthBefore: number): void;
16
- diff(obj: object): DiffRecord[];
17
- isPristine(obj: object): boolean;
18
- mark(obj: object): number;
19
- transaction<T extends object, R>(object: T, action: (observed: T) => R): TransactionResult<R>;
20
- transactionAsync<T extends object, R>(object: T, action: (observed: T) => Promise<R>): Promise<TransactionResult<R>>;
21
- beginBatch(obj: object): void;
22
- commitBatch(obj: object): void;
23
- rollbackBatch(obj: object): void;
24
- batch<T extends object, R>(object: T, action: (observed: T) => R): R;
25
- undoGroups(obj: object, groups?: number): void;
26
- canUndo(obj: object): boolean;
27
- canRedo(obj: object): boolean;
28
- clearRedo(obj: object): void;
29
- redo(obj: object, steps?: number): void;
30
- redoGroups(obj: object, groups?: number): void;
31
- configure(obj: object, options: ConfigureOptions): void;
32
- }
33
- interface TransactionResult<R> {
34
- result: R;
35
- marker: number;
36
- undo: () => void;
37
5
  }
38
6
  declare const chronicle: Chronicle;
39
7
  export { chronicle };
@@ -1 +1 @@
1
- {"version":3,"file":"chronicle.d.ts","sourceRoot":"","sources":["../src/chronicle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chronicle.d.ts","sourceRoot":"","sources":["../src/chronicle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,mBAAmB,EAAoB,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,KAAK,QAAQ,EAA0B,MAAM,wBAAwB,CAAC;AAG/E,UAAU,SAAU,SAAQ,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EAAE,mBAAmB;IAChF,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;CACjC;AAGD,QAAA,MAAM,SAAS,EAAqB,SAAS,CAAC;AAmC9C,OAAO,EAAE,SAAS,EAAE,CAAC;AACrB,YAAY,EAAE,SAAS,EAAE,CAAC"}
package/dist/chronicle.js CHANGED
@@ -1,7 +1,6 @@
1
1
  import { createChronicleCore } from "./api.js";
2
2
  import { createApiMethods } from "./api-methods.js";
3
3
  import { createBatchTransaction } from "./batch-transaction.js";
4
- import { configureRoot } from "./config.js";
5
4
  const core = createChronicleCore({ getBatchFrames: r => batchApi.getBatchFrames(r) });
6
5
  const chronicle = core.chronicle;
7
6
  const batchApi = createBatchTransaction(core);
@@ -19,6 +18,9 @@ chronicle.undo = api.undo;
19
18
  chronicle.undoSince = api.undoSince;
20
19
  chronicle.diff = api.diff;
21
20
  chronicle.isPristine = api.isPristine;
21
+ chronicle.snapshot = api.snapshot;
22
+ chronicle.unwrap = api.unwrap;
23
+ chronicle.merge = api.merge;
22
24
  chronicle.mark = api.mark;
23
25
  chronicle.undoGroups = api.undoGroups;
24
26
  chronicle.canUndo = api.canUndo;
@@ -26,15 +28,11 @@ chronicle.canRedo = api.canRedo;
26
28
  chronicle.clearRedo = api.clearRedo;
27
29
  chronicle.redo = api.redo;
28
30
  chronicle.redoGroups = api.redoGroups;
29
- chronicle.transaction = (object, action) => batchApi.transaction(object, action);
30
- chronicle.transactionAsync = async (object, action) => batchApi.transactionAsync(object, action);
31
+ chronicle.configure = api.configure;
32
+ chronicle.transaction = batchApi.transaction;
33
+ chronicle.batch = batchApi.batch;
31
34
  chronicle.beginBatch = (obj) => batchApi.beginBatch(core.getRoot(obj));
32
35
  chronicle.commitBatch = (obj) => batchApi.commitBatch(core.getRoot(obj));
33
36
  chronicle.rollbackBatch = (obj) => batchApi.rollbackBatch(core.getRoot(obj));
34
- chronicle.batch = (object, action) => batchApi.batch(object, action);
35
- chronicle.configure = (obj, options) => {
36
- const root = core.getRoot(obj);
37
- configureRoot(root, options);
38
- };
39
37
  export { chronicle };
40
38
  //# sourceMappingURL=chronicle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chronicle.js","sourceRoot":"","sources":["../src/chronicle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chronicle.js","sourceRoot":"","sources":["../src/chronicle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAA4B,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAiB,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAO/E,MAAM,IAAI,GAAG,mBAAmB,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACtF,MAAM,SAAS,GAAG,IAAI,CAAC,SAAsB,CAAC;AAE9C,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;AAC9C,MAAM,GAAG,GAAG,gBAAgB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AAExD,SAAS,CAAC,MAAM,GAAU,GAAG,CAAC,MAAM,CAAC;AACrC,SAAS,CAAC,KAAK,GAAW,GAAG,CAAC,KAAK,CAAC;AACpC,SAAS,CAAC,KAAK,GAAW,GAAG,CAAC,KAAK,CAAC;AACpC,SAAS,CAAC,MAAM,GAAU,GAAG,CAAC,MAAM,CAAC;AACrC,SAAS,CAAC,KAAK,GAAW,GAAG,CAAC,KAAK,CAAC;AACpC,SAAS,CAAC,UAAU,GAAM,GAAG,CAAC,UAAU,CAAC;AACzC,SAAS,CAAC,YAAY,GAAI,GAAG,CAAC,YAAY,CAAC;AAC3C,SAAS,CAAC,KAAK,GAAW,GAAG,CAAC,KAAK,CAAC;AACpC,SAAS,CAAC,YAAY,GAAI,GAAG,CAAC,YAAY,CAAC;AAC3C,SAAS,CAAC,IAAI,GAAY,GAAG,CAAC,IAAI,CAAC;AACnC,SAAS,CAAC,SAAS,GAAO,GAAG,CAAC,SAAS,CAAC;AACxC,SAAS,CAAC,IAAI,GAAY,GAAG,CAAC,IAAI,CAAC;AACnC,SAAS,CAAC,UAAU,GAAM,GAAG,CAAC,UAAU,CAAC;AACzC,SAAS,CAAC,QAAQ,GAAQ,GAAG,CAAC,QAAQ,CAAC;AACvC,SAAS,CAAC,MAAM,GAAU,GAAG,CAAC,MAAM,CAAC;AACrC,SAAS,CAAC,KAAK,GAAW,GAAG,CAAC,KAAK,CAAC;AACpC,SAAS,CAAC,IAAI,GAAY,GAAG,CAAC,IAAI,CAAC;AACnC,SAAS,CAAC,UAAU,GAAM,GAAG,CAAC,UAAU,CAAC;AACzC,SAAS,CAAC,OAAO,GAAS,GAAG,CAAC,OAAO,CAAC;AACtC,SAAS,CAAC,OAAO,GAAS,GAAG,CAAC,OAAO,CAAC;AACtC,SAAS,CAAC,SAAS,GAAO,GAAG,CAAC,SAAS,CAAC;AACxC,SAAS,CAAC,IAAI,GAAY,GAAG,CAAC,IAAI,CAAC;AACnC,SAAS,CAAC,UAAU,GAAM,GAAG,CAAC,UAAU,CAAC;AACzC,SAAS,CAAC,SAAS,GAAO,GAAG,CAAC,SAAS,CAAC;AACxC,SAAS,CAAC,WAAW,GAAK,QAAQ,CAAC,WAAW,CAAC;AAC/C,SAAS,CAAC,KAAK,GAAW,QAAQ,CAAC,KAAK,CAAC;AACzC,SAAS,CAAC,UAAU,GAAM,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1E,SAAS,CAAC,WAAW,GAAK,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3E,SAAS,CAAC,aAAa,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AAE7E,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"history-recorder.d.ts","sourceRoot":"","sources":["../src/history-recorder.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,SAAS,GACrB,MAAM,MAAM,EACZ,MAAM,MAAM,EAAE,EACd,UAAU,GAAG,EACb,UAAU,GAAG,EACb,eAAe,OAAO,EACtB,SAAS,MAAM,KACb,IA2CF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,GACxB,MAAM,MAAM,EACZ,MAAM,MAAM,EAAE,EACd,UAAU,GAAG,EACb,SAAS,MAAM,KACb,IAuBF,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,wBAAwB,GACpC,MAAM,MAAM,EACZ,UAAU,MAAM,EAAE,EAClB,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,GAAG,CAAC;CAAE,EAAE,EACzC,SAAS,MAAM,KACb,IAoBF,CAAC"}
1
+ {"version":3,"file":"history-recorder.d.ts","sourceRoot":"","sources":["../src/history-recorder.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,SAAS,GACrB,MAAM,MAAM,EACZ,MAAM,MAAM,EAAE,EACd,UAAU,GAAG,EACb,UAAU,GAAG,EACb,eAAe,OAAO,EACtB,SAAS,MAAM,KACb,IA2CF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,GACxB,MAAM,MAAM,EACZ,MAAM,MAAM,EAAE,EACd,UAAU,GAAG,EACb,SAAS,MAAM,KACb,IAuBF,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,wBAAwB,GACpC,MAAM,MAAM,EACZ,UAAU,MAAM,EAAE,EAClB,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,GAAG,CAAC;CAAE,EAAE,EACzC,SAAS,MAAM,KACb,IAoBF,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { ensureHistory, getOptions, trimHistoryByGroups } from "./history.js";
2
+ import { cloneWithOptions } from "./snapshot-diff.js";
2
3
  import { clearRedoCache, isSuspended } from "./undo-redo.js";
3
4
  /**
4
5
  * Record a 'set' operation in history with filtering, compaction, and trimming.
@@ -22,8 +23,8 @@ export const recordSet = (root, path, oldValue, newValue, existedBefore, groupId
22
23
  const rec = {
23
24
  path: path.slice(),
24
25
  type: 'set',
25
- oldValue,
26
- newValue,
26
+ oldValue: cloneWithOptions(root, oldValue),
27
+ newValue: cloneWithOptions(root, newValue),
27
28
  timestamp: Date.now(),
28
29
  existedBefore,
29
30
  groupId,
@@ -69,7 +70,7 @@ export const recordDelete = (root, path, oldValue, groupId) => {
69
70
  const rec = {
70
71
  path: path.slice(),
71
72
  type: 'delete',
72
- oldValue,
73
+ oldValue: cloneWithOptions(root, oldValue),
73
74
  newValue: undefined,
74
75
  timestamp: Date.now(),
75
76
  groupId,
@@ -100,7 +101,7 @@ export const recordArrayShrinkDeletes = (root, basePath, removed, groupId) => {
100
101
  const rec = {
101
102
  path: [...basePath, String(index)],
102
103
  type: 'delete',
103
- oldValue: oldVal,
104
+ oldValue: cloneWithOptions(root, oldVal),
104
105
  newValue: undefined,
105
106
  timestamp: Date.now(),
106
107
  groupId,
@@ -1 +1 @@
1
- {"version":3,"file":"history-recorder.js","sourceRoot":"","sources":["../src/history-recorder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"history-recorder.js","sourceRoot":"","sources":["../src/history-recorder.ts"],"names":[],"mappings":"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"}