@arcmantle/chronicle 1.0.4 → 1.0.5

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 (48) hide show
  1. package/dist/api-methods.d.ts +201 -0
  2. package/dist/api-methods.d.ts.map +1 -1
  3. package/dist/api-methods.js +5 -5
  4. package/dist/api-methods.js.map +1 -1
  5. package/dist/api.d.ts +8 -2
  6. package/dist/api.d.ts.map +1 -1
  7. package/dist/api.js +45 -15
  8. package/dist/api.js.map +1 -1
  9. package/dist/chronicle.d.ts +1 -5
  10. package/dist/chronicle.d.ts.map +1 -1
  11. package/dist/chronicle.js +2 -36
  12. package/dist/chronicle.js.map +1 -1
  13. package/dist/collection-adapters.d.ts.map +1 -1
  14. package/dist/collection-adapters.js +2 -1
  15. package/dist/collection-adapters.js.map +1 -1
  16. package/dist/config.d.ts +6 -2
  17. package/dist/config.d.ts.map +1 -1
  18. package/dist/config.js +20 -3
  19. package/dist/config.js.map +1 -1
  20. package/dist/grouping.d.ts.map +1 -1
  21. package/dist/grouping.js +2 -1
  22. package/dist/grouping.js.map +1 -1
  23. package/dist/history-recorder.d.ts.map +1 -1
  24. package/dist/history-recorder.js +3 -2
  25. package/dist/history-recorder.js.map +1 -1
  26. package/dist/history.d.ts +3 -4
  27. package/dist/history.d.ts.map +1 -1
  28. package/dist/history.js +18 -23
  29. package/dist/history.js.map +1 -1
  30. package/dist/proxy-cache.js +1 -1
  31. package/dist/proxy-cache.js.map +1 -1
  32. package/dist/proxy-factory.js +1 -1
  33. package/dist/proxy-factory.js.map +1 -1
  34. package/dist/snapshot-diff.d.ts.map +1 -1
  35. package/dist/snapshot-diff.js +1 -1
  36. package/dist/snapshot-diff.js.map +1 -1
  37. package/package.json +1 -1
  38. package/src/api-methods.ts +253 -29
  39. package/src/api.ts +54 -22
  40. package/src/chronicle.ts +2 -42
  41. package/src/collection-adapters.ts +2 -1
  42. package/src/config.ts +31 -5
  43. package/src/grouping.ts +2 -1
  44. package/src/history-recorder.ts +3 -2
  45. package/src/history.ts +30 -37
  46. package/src/proxy-cache.ts +1 -1
  47. package/src/proxy-factory.ts +1 -1
  48. package/src/snapshot-diff.ts +2 -1
@@ -4,32 +4,233 @@ export interface ApiDeps {
4
4
  getRoot: (obj: object) => object;
5
5
  }
6
6
  export interface ChronicleApiMethods {
7
+ /**
8
+ * Subscribe to changes at a specific path in the object. The listener is called whenever
9
+ * the selected property or any of its descendants change. Returns an unsubscribe function.
10
+ *
11
+ * @param object - The chronicled object to listen to
12
+ * @param selector - Function that selects the path to watch (e.g., `obj => obj.user.name`)
13
+ * @param listener - Callback invoked on changes with (path, newValue, oldValue, meta)
14
+ * @returns Unsubscribe function to stop listening
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * const unsubscribe = chronicle.listen(state, s => s.count, (path, newVal, oldVal) => {
19
+ * console.log(`count changed from ${oldVal} to ${newVal}`);
20
+ * });
21
+ * ```
22
+ */
7
23
  listen<T extends object>(object: T, selector: PathSelector<T>, listener: ChangeListener): () => void;
24
+ /**
25
+ * Subscribe to changes at a specific path with listener options like debouncing or throttling.
26
+ *
27
+ * @param object - The chronicled object to listen to
28
+ * @param selector - Function that selects the path to watch
29
+ * @param listener - Callback invoked on changes
30
+ * @param options - Listener configuration (once, debounceMs, throttleMs, schedule)
31
+ * @returns Unsubscribe function
32
+ */
8
33
  listen<T extends object>(object: T, selector: PathSelector<T>, listener: ChangeListener, options: ListenerOptions): () => void;
34
+ /**
35
+ * Subscribe to changes at a specific path with a traversal mode.
36
+ *
37
+ * @param object - The chronicled object to listen to
38
+ * @param selector - Function that selects the path to watch
39
+ * @param listener - Callback invoked on changes
40
+ * @param mode - Path matching mode: 'exact' (only this path), 'up' (ancestors), 'down' (descendants)
41
+ * @returns Unsubscribe function
42
+ */
9
43
  listen<T extends object>(object: T, selector: PathSelector<T>, listener: ChangeListener, mode: PathMode): () => void;
44
+ /**
45
+ * Subscribe to changes at a specific path with both traversal mode and listener options.
46
+ *
47
+ * @param object - The chronicled object to listen to
48
+ * @param selector - Function that selects the path to watch
49
+ * @param listener - Callback invoked on changes
50
+ * @param mode - Path matching mode: 'exact', 'up', or 'down'
51
+ * @param options - Listener configuration (once, debounceMs, throttleMs, schedule)
52
+ * @returns Unsubscribe function
53
+ */
10
54
  listen<T extends object>(object: T, selector: PathSelector<T>, listener: ChangeListener, mode: PathMode, options: ListenerOptions): () => void;
55
+ /**
56
+ * Subscribe to all changes on the object, regardless of path. Useful for broad monitoring.
57
+ *
58
+ * @param obj - The chronicled object to listen to
59
+ * @param listener - Callback invoked on any change with (path, newValue, oldValue, meta)
60
+ * @param options - Optional listener configuration (once, debounceMs, throttleMs, schedule)
61
+ * @returns Unsubscribe function to stop listening
62
+ */
11
63
  onAny: (obj: object, listener: ChangeListener, options?: ListenerOptions) => () => void;
64
+ /**
65
+ * Temporarily pause change notifications for this object. Changes still occur and are
66
+ * recorded in history, but listeners won't be notified until resume() is called.
67
+ *
68
+ * @param obj - The chronicled object to pause
69
+ */
12
70
  pause: (obj: object) => void;
71
+ /**
72
+ * Resume change notifications that were paused. Accumulated changes are not batched;
73
+ * call flush() if you want to trigger pending notifications immediately.
74
+ *
75
+ * @param obj - The chronicled object to resume
76
+ */
13
77
  resume: (obj: object) => void;
78
+ /**
79
+ * Immediately flush any pending change notifications that are scheduled asynchronously.
80
+ * Useful when you need synchronous notification delivery.
81
+ *
82
+ * @param obj - The chronicled object to flush
83
+ */
14
84
  flush: (obj: object) => void;
85
+ /**
86
+ * Get a copy of the complete change history for this object. Each record contains
87
+ * path, type, oldValue, newValue, timestamp, and groupId for undo/redo operations.
88
+ *
89
+ * @param obj - The chronicled object
90
+ * @returns Array of change records (copy, safe to modify)
91
+ */
15
92
  getHistory: (obj: object) => ChangeRecord[];
93
+ /**
94
+ * Clear all change history and redo cache. The object's current state is preserved,
95
+ * but undo/redo will no longer work until new changes are made.
96
+ *
97
+ * @param obj - The chronicled object
98
+ */
16
99
  clearHistory: (obj: object) => void;
100
+ /**
101
+ * Reset the object to its pristine state (the state when first chronicled or when
102
+ * markPristine was last called). This is an un-doable operation.
103
+ *
104
+ * @param obj - The chronicled object to reset
105
+ */
17
106
  reset: (obj: object) => void;
107
+ /**
108
+ * Mark the current state as the new pristine baseline. Clears history and resets the
109
+ * snapshot used for diff() and reset(). Useful after saving to server or committing changes.
110
+ *
111
+ * @param obj - The chronicled object
112
+ */
18
113
  markPristine: (obj: object) => void;
114
+ /**
115
+ * Get the differences between the current state and the pristine state. Returns an array
116
+ * of changes showing what was added, removed, or modified.
117
+ *
118
+ * @param obj - The chronicled object
119
+ * @returns Array of diff records with path, kind ('added'|'removed'|'changed'), and values
120
+ */
19
121
  diff: (obj: object) => DiffRecord[];
122
+ /**
123
+ * Check if the object has any changes from its pristine state. Returns true if the object
124
+ * matches its original or last markPristine() state.
125
+ *
126
+ * @param obj - The chronicled object
127
+ * @returns True if no changes exist, false otherwise
128
+ */
20
129
  isPristine: (obj: object) => boolean;
130
+ /**
131
+ * Create a deep clone snapshot of the current state. The snapshot is a plain object,
132
+ * not a chronicle proxy, and can be serialized or stored independently.
133
+ *
134
+ * @param obj - The chronicled object
135
+ * @returns Deep clone of the current state
136
+ */
21
137
  snapshot: <T extends object>(obj: T) => T;
138
+ /**
139
+ * Get the original unwrapped object (removes the chronicle proxy). Use with caution:
140
+ * changes to the unwrapped object won't be tracked or trigger listeners.
141
+ *
142
+ * @param obj - The chronicled object
143
+ * @returns The underlying object without proxy wrapper
144
+ */
22
145
  unwrap: <T extends object>(obj: T) => T;
146
+ /**
147
+ * Perform a three-way merge between the pristine state (base), current state (ours),
148
+ * and incoming changes (theirs). Detects conflicts and allows resolution strategies.
149
+ * Useful for syncing local changes with server updates.
150
+ *
151
+ * @param obj - The chronicled object
152
+ * @param incomingObject - The incoming state to merge
153
+ * @param resolutions - Optional conflict resolution strategies per path
154
+ * @returns Merge result with success status, conflicts array, and count of applied changes
155
+ */
23
156
  merge: (obj: object, incomingObject: object, resolutions?: ConflictResolutions) => MergeResult;
157
+ /**
158
+ * Get a marker representing the current history length. Use with undoSince() to undo
159
+ * changes made after this point. Useful for transaction-like rollback behavior.
160
+ *
161
+ * @param obj - The chronicled object
162
+ * @returns Current history length (marker value)
163
+ */
24
164
  mark: (obj: object) => number;
165
+ /**
166
+ * Undo the last N changes (or all changes if steps not specified). Changes are undone
167
+ * individually. For grouped operations, use undoGroups() instead.
168
+ *
169
+ * @param obj - The chronicled object
170
+ * @param steps - Number of changes to undo (default: all)
171
+ */
25
172
  undo: (obj: object, steps?: number) => void;
173
+ /**
174
+ * Undo all changes made since the specified marker. The marker should come from mark().
175
+ * This undoes everything after that point in history.
176
+ *
177
+ * @param obj - The chronicled object
178
+ * @param historyLengthBefore - The marker value from mark()
179
+ */
26
180
  undoSince: (obj: object, historyLengthBefore: number) => void;
181
+ /**
182
+ * Undo the last N undo groups (batches/transactions). Unlike undo() which works on
183
+ * individual changes, this respects the grouping from batches and transactions.
184
+ *
185
+ * @param obj - The chronicled object
186
+ * @param groups - Number of groups to undo (default: 1)
187
+ */
27
188
  undoGroups: (obj: object, groups?: number) => void;
189
+ /**
190
+ * Check if undo is available (history has changes that can be undone).
191
+ *
192
+ * @param obj - The chronicled object
193
+ * @returns True if undo is possible, false otherwise
194
+ */
28
195
  canUndo: (obj: object) => boolean;
196
+ /**
197
+ * Check if redo is available (there are undone changes that can be reapplied).
198
+ *
199
+ * @param obj - The chronicled object
200
+ * @returns True if redo is possible, false otherwise
201
+ */
29
202
  canRedo: (obj: object) => boolean;
203
+ /**
204
+ * Clear the redo cache, making undone changes un-re-doable. The object's current state
205
+ * and undo history are preserved.
206
+ *
207
+ * @param obj - The chronicled object
208
+ */
30
209
  clearRedo: (obj: object) => void;
210
+ /**
211
+ * Redo the last N undone changes (or all undone changes if steps not specified).
212
+ * Changes are redone individually.
213
+ *
214
+ * @param obj - The chronicled object
215
+ * @param steps - Number of changes to redo (default: all)
216
+ */
31
217
  redo: (obj: object, steps?: number) => void;
218
+ /**
219
+ * Redo the last N undo groups. Unlike redo() which works on individual changes,
220
+ * this respects the grouping from batches and transactions.
221
+ *
222
+ * @param obj - The chronicled object
223
+ * @param groups - Number of groups to redo (default: 1)
224
+ */
32
225
  redoGroups: (obj: object, groups?: number) => void;
226
+ /**
227
+ * Configure chronicle options for this object. Options include history limits, merge
228
+ * behavior, custom clone/compare functions, and proxy caching. Can be called multiple
229
+ * times; new options are merged with existing ones.
230
+ *
231
+ * @param obj - The chronicled object
232
+ * @param options - Configuration options to apply
233
+ */
33
234
  configure: (obj: object, options: ConfigureOptions) => void;
34
235
  }
35
236
  export declare const createApiMethods: (deps: ApiDeps) => ChronicleApiMethods;
@@ -1 +1 @@
1
- {"version":3,"file":"api-methods.d.ts","sourceRoot":"","sources":["../src/api-methods.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-methods.d.ts","sourceRoot":"","sources":["../src/api-methods.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ import { threeWayMerge } from "./three-way-merge.js";
9
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";
10
10
  const isObject = (v) => typeof v === 'object' && v !== null;
11
11
  export const createApiMethods = (deps) => {
12
- // listen/onAny --------------------------------------------------------------
12
+ // listen/onAny
13
13
  const listen = (object, selector, listener, modeOrOptions, maybeOptions) => {
14
14
  const segs = nameofSegments(selector);
15
15
  const root = deps.getRoot(object);
@@ -47,7 +47,7 @@ export const createApiMethods = (deps) => {
47
47
  const onAny = (obj, listener, options) => {
48
48
  return listen(obj, s => s, listener, options);
49
49
  };
50
- // pause/resume/flush --------------------------------------------------------
50
+ // pause/resume/flush
51
51
  const pause = (obj) => {
52
52
  const root = deps.getRoot(obj);
53
53
  schedulePause(root);
@@ -60,7 +60,7 @@ export const createApiMethods = (deps) => {
60
60
  const root = deps.getRoot(obj);
61
61
  scheduleFlush(root);
62
62
  };
63
- // history ------------------------------------------------------------------
63
+ // history
64
64
  const getHistory = (obj) => {
65
65
  const root = deps.getRoot(obj);
66
66
  return (historyGet(root) ?? []).slice();
@@ -71,7 +71,7 @@ export const createApiMethods = (deps) => {
71
71
  clearLastUngrouped(root);
72
72
  clearRedoCache(root);
73
73
  };
74
- // reset/markPristine/diff/pristine ----------------------------------------
74
+ // reset/markPristine/diff/pristine
75
75
  const markPristine = (obj) => {
76
76
  const root = deps.getRoot(obj);
77
77
  originalSnapshotCache.set(root, cloneWithOptions(root, root));
@@ -152,7 +152,7 @@ export const createApiMethods = (deps) => {
152
152
  const root = deps.getRoot(obj);
153
153
  return threeWayMerge(root, obj, incomingObject, resolutions);
154
154
  };
155
- // marks/undo/redo -----------------------------------------------------------
155
+ // marks/undo/redo
156
156
  const mark = (obj) => {
157
157
  const root = deps.getRoot(obj);
158
158
  const history = historyGet(root);
@@ -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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"}
package/dist/api.d.ts CHANGED
@@ -1,3 +1,6 @@
1
+ import { type ChronicleApiMethods } from './api-methods.ts';
2
+ import { type BatchAPI } from './batch-transaction.ts';
3
+ import { type ConfigureOptions } from './config.ts';
1
4
  export interface ChronicleCoreDeps {
2
5
  getBatchFrames: (root: object) => {
3
6
  marker: number;
@@ -5,8 +8,11 @@ export interface ChronicleCoreDeps {
5
8
  }[] | undefined;
6
9
  }
7
10
  export interface ChronicleCore {
8
- chronicle: <T extends object>(object: T) => T;
11
+ chronicle: Chronicle;
9
12
  getRoot: (obj: object) => object;
10
13
  }
11
- export declare const createChronicleCore: (deps: ChronicleCoreDeps) => ChronicleCore;
14
+ export interface Chronicle extends Omit<BatchAPI, 'getBatchFrames'>, ChronicleApiMethods {
15
+ <T extends object>(object: T, options?: ConfigureOptions): T;
16
+ }
17
+ export declare const createChronicle: () => Chronicle;
12
18
  //# sourceMappingURL=api.d.ts.map
package/dist/api.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,iBAAiB;IACjC,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;KAAE,EAAE,GAAG,SAAS,CAAC;CAChF;AAED,MAAM,WAAW,aAAa;IAC7B,SAAS,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;IAC9C,OAAO,EAAI,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;CACnC;AAGD,eAAO,MAAM,mBAAmB,GAAI,MAAM,iBAAiB,KAAG,aAqC7D,CAAC"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAoB,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,KAAK,QAAQ,EAA0B,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,KAAK,gBAAgB,EAAiB,MAAM,aAAa,CAAC;AAMnE,MAAM,WAAW,iBAAiB;IACjC,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;KAAE,EAAE,GAAG,SAAS,CAAC;CAChF;AAED,MAAM,WAAW,aAAa;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAI,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;CACnC;AAGD,MAAM,WAAW,SAAU,SAAQ,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EAAE,mBAAmB;IACvF,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,CAAC,CAAC;CAC7D;AAGD,eAAO,MAAM,eAAe,QAAO,SA6DlC,CAAC"}
package/dist/api.js CHANGED
@@ -1,30 +1,60 @@
1
+ import { createApiMethods } from "./api-methods.js";
2
+ import { createBatchTransaction } from "./batch-transaction.js";
3
+ import { configureRoot } from "./config.js";
1
4
  import { createProxyFactory } from "./proxy-factory.js";
2
5
  import { cloneWithOptions, originalSnapshotCache } from "./snapshot-diff.js";
3
- export const createChronicleCore = (deps) => {
6
+ export const createChronicle = () => {
4
7
  const proxyToRoot = new WeakMap();
5
8
  let proxyFactory;
6
- const chronicle = (object => {
7
- const existingRoot = proxyToRoot.get(object);
9
+ const chronicle = ((object, options) => {
10
+ const alreadyProxied = proxyToRoot.has(object);
11
+ const root = proxyToRoot.get(object) ?? object;
8
12
  if (!proxyFactory) {
9
13
  proxyFactory = createProxyFactory({
10
- getBatchFrames: (r) => deps.getBatchFrames(r),
14
+ getBatchFrames: (r) => batchApi.getBatchFrames(r),
11
15
  setProxyRoot: (proxy, r) => proxyToRoot.set(proxy, r),
12
16
  });
13
17
  }
14
- // If called on an already observed proxy, return it to avoid double-proxying
15
- if (existingRoot) {
16
- if (!originalSnapshotCache.has(existingRoot)) {
17
- originalSnapshotCache.set(existingRoot, cloneWithOptions(existingRoot, existingRoot));
18
- }
19
- return object;
20
- }
21
- const root = object;
22
- const { createProxy } = proxyFactory;
18
+ if (options)
19
+ configureRoot(root, options);
23
20
  if (!originalSnapshotCache.has(root))
24
21
  originalSnapshotCache.set(root, cloneWithOptions(root, root));
25
- return createProxy(root, [], root);
22
+ if (alreadyProxied)
23
+ return object;
24
+ return proxyFactory.createProxy(root, [], root);
26
25
  });
27
26
  const getRoot = (obj) => proxyToRoot.get(obj) ?? obj;
28
- return { chronicle: chronicle, getRoot };
27
+ const batchApi = createBatchTransaction({ chronicle, getRoot });
28
+ const api = createApiMethods({ getRoot });
29
+ chronicle.listen = api.listen;
30
+ chronicle.onAny = api.onAny;
31
+ chronicle.pause = api.pause;
32
+ chronicle.resume = api.resume;
33
+ chronicle.flush = api.flush;
34
+ chronicle.getHistory = api.getHistory;
35
+ chronicle.clearHistory = api.clearHistory;
36
+ chronicle.reset = api.reset;
37
+ chronicle.markPristine = api.markPristine;
38
+ chronicle.undo = api.undo;
39
+ chronicle.undoSince = api.undoSince;
40
+ chronicle.diff = api.diff;
41
+ chronicle.isPristine = api.isPristine;
42
+ chronicle.snapshot = api.snapshot;
43
+ chronicle.unwrap = api.unwrap;
44
+ chronicle.merge = api.merge;
45
+ chronicle.mark = api.mark;
46
+ chronicle.undoGroups = api.undoGroups;
47
+ chronicle.canUndo = api.canUndo;
48
+ chronicle.canRedo = api.canRedo;
49
+ chronicle.clearRedo = api.clearRedo;
50
+ chronicle.redo = api.redo;
51
+ chronicle.redoGroups = api.redoGroups;
52
+ chronicle.configure = api.configure;
53
+ chronicle.transaction = batchApi.transaction;
54
+ chronicle.batch = batchApi.batch;
55
+ chronicle.beginBatch = (obj) => batchApi.beginBatch(getRoot(obj));
56
+ chronicle.commitBatch = (obj) => batchApi.commitBatch(getRoot(obj));
57
+ chronicle.rollbackBatch = (obj) => batchApi.rollbackBatch(getRoot(obj));
58
+ return chronicle;
29
59
  };
30
60
  //# sourceMappingURL=api.js.map
package/dist/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAa7E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAuB,EAAiB,EAAE;IAC7E,MAAM,WAAW,GAA4B,IAAI,OAAO,EAAE,CAAC;IAC3D,IAAI,YAAsC,CAAC;IAE3C,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,EAAE;QAC3B,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,YAAY,EAAE,CAAC;YACnB,YAAY,GAAG,kBAAkB,CAAC;gBACjC,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;gBAC7C,YAAY,EAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;aACvD,CAAC,CAAC;QACJ,CAAC;QAED,6EAA6E;QAC7E,IAAI,YAAY,EAAE,CAAC;YAClB,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC9C,qBAAqB,CAAC,GAAG,CACxB,YAAY,EACZ,gBAAgB,CAAC,YAAY,EAAE,YAAY,CAAC,CAC5C,CAAC;YACH,CAAC;YAED,OAAO,MAAM,CAAC;QACf,CAAC;QAED,MAAM,IAAI,GAAI,MAAiB,CAAC;QAChC,MAAM,EAAE,WAAW,EAAE,GAAG,YAAa,CAAC;QAEtC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC;YACnC,qBAAqB,CAAC,GAAG,CAAC,IAAI,EAAE,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAE/D,OAAO,WAAW,CAAC,IAAc,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAyC,CAAC;IAE3C,MAAM,OAAO,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;IAErE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;AAC1C,CAAC,CAAC"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,4 @@
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
- <T extends object>(object: T): T;
5
- }
1
+ import { type Chronicle } from './api.ts';
6
2
  declare const chronicle: Chronicle;
7
3
  export { chronicle };
8
4
  export type { Chronicle };
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"chronicle.d.ts","sourceRoot":"","sources":["../src/chronicle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAmB,MAAM,UAAU,CAAC;AAG3D,QAAA,MAAM,SAAS,EAAE,SAA6B,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,CAAC;AACrB,YAAY,EAAE,SAAS,EAAE,CAAC"}
package/dist/chronicle.js CHANGED
@@ -1,38 +1,4 @@
1
- import { createChronicleCore } from "./api.js";
2
- import { createApiMethods } from "./api-methods.js";
3
- import { createBatchTransaction } from "./batch-transaction.js";
4
- const core = createChronicleCore({ getBatchFrames: r => batchApi.getBatchFrames(r) });
5
- const chronicle = core.chronicle;
6
- const batchApi = createBatchTransaction(core);
7
- const api = createApiMethods({ getRoot: core.getRoot });
8
- chronicle.listen = api.listen;
9
- chronicle.onAny = api.onAny;
10
- chronicle.pause = api.pause;
11
- chronicle.resume = api.resume;
12
- chronicle.flush = api.flush;
13
- chronicle.getHistory = api.getHistory;
14
- chronicle.clearHistory = api.clearHistory;
15
- chronicle.reset = api.reset;
16
- chronicle.markPristine = api.markPristine;
17
- chronicle.undo = api.undo;
18
- chronicle.undoSince = api.undoSince;
19
- chronicle.diff = api.diff;
20
- chronicle.isPristine = api.isPristine;
21
- chronicle.snapshot = api.snapshot;
22
- chronicle.unwrap = api.unwrap;
23
- chronicle.merge = api.merge;
24
- chronicle.mark = api.mark;
25
- chronicle.undoGroups = api.undoGroups;
26
- chronicle.canUndo = api.canUndo;
27
- chronicle.canRedo = api.canRedo;
28
- chronicle.clearRedo = api.clearRedo;
29
- chronicle.redo = api.redo;
30
- chronicle.redoGroups = api.redoGroups;
31
- chronicle.configure = api.configure;
32
- chronicle.transaction = batchApi.transaction;
33
- chronicle.batch = batchApi.batch;
34
- chronicle.beginBatch = (obj) => batchApi.beginBatch(core.getRoot(obj));
35
- chronicle.commitBatch = (obj) => batchApi.commitBatch(core.getRoot(obj));
36
- chronicle.rollbackBatch = (obj) => batchApi.rollbackBatch(core.getRoot(obj));
1
+ import { createChronicle } from "./api.js";
2
+ const chronicle = createChronicle();
37
3
  export { chronicle };
38
4
  //# sourceMappingURL=chronicle.js.map
@@ -1 +1 @@
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
+ {"version":3,"file":"chronicle.js","sourceRoot":"","sources":["../src/chronicle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3D,MAAM,SAAS,GAAc,eAAe,EAAE,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"collection-adapters.d.ts","sourceRoot":"","sources":["../src/collection-adapters.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,qBAAqB;IACrC,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;KAAE,EAAE,GAAG,SAAS,CAAC;CAChF;AA+BD;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,GAC1B,QAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EACrB,aAAa,MAAM,EAAE,EACrB,YAAY,MAAM,EAClB,MAAM,qBAAqB,EAC3B,QAAQ,MAAM,KACZ,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GAAG,SA0E9B,CAAC;AAGF;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,GAC1B,QAAQ,GAAG,CAAC,GAAG,CAAC,EAChB,aAAa,MAAM,EAAE,EACrB,YAAY,MAAM,EAClB,MAAM,qBAAqB,EAC3B,QAAQ,MAAM,KACZ,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GAAG,SAyE9B,CAAC"}
1
+ {"version":3,"file":"collection-adapters.d.ts","sourceRoot":"","sources":["../src/collection-adapters.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,qBAAqB;IACrC,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;KAAE,EAAE,GAAG,SAAS,CAAC;CAChF;AA+BD;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,GAC1B,QAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EACrB,aAAa,MAAM,EAAE,EACrB,YAAY,MAAM,EAClB,MAAM,qBAAqB,EAC3B,QAAQ,MAAM,KACZ,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GAAG,SA0E9B,CAAC;AAGF;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,GAC1B,QAAQ,GAAG,CAAC,GAAG,CAAC,EAChB,aAAa,MAAM,EAAE,EACrB,YAAY,MAAM,EAClB,MAAM,qBAAqB,EAC3B,QAAQ,MAAM,KACZ,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GAAG,SAyE9B,CAAC"}
@@ -1,5 +1,6 @@
1
+ import { getOptions } from "./config.js";
1
2
  import { computeActiveGroupId } from "./grouping.js";
2
- import { ensureHistory, getOptions, trimHistoryByGroups } from "./history.js";
3
+ import { ensureHistory, trimHistoryByGroups } from "./history.js";
3
4
  import { computeAffectedListeners } from "./listener-affinity.js";
4
5
  import { notifyListeners } from "./schedule-queue.js";
5
6
  import { clearRedoCache, isSuspended } from "./undo-redo.js";
@@ -1 +1 @@
1
- {"version":3,"file":"collection-adapters.js","sourceRoot":"","sources":["../src/collection-adapters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collection-adapters.js","sourceRoot":"","sources":["../src/collection-adapters.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -1,5 +1,9 @@
1
- import type { ChronicleOptions } from './history.ts';
2
- export type ConfigureOptions = ChronicleOptions;
1
+ import { type ChronicleHistoryOptions } from './history.ts';
2
+ export interface ChronicleOptions extends ChronicleHistoryOptions {
3
+ }
4
+ export declare const getOptions: (root: object) => ChronicleOptions;
5
+ export declare const setOptions: (root: object, options: ChronicleOptions) => void;
6
+ export type ConfigureOptions = Partial<ChronicleOptions>;
3
7
  /**
4
8
  * Configure per-root observe behavior by merging options and managing mergeUngrouped window reset.
5
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAIrD,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAGhD;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,EAAE,SAAS,gBAAgB,KAAG,IAKvE,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,uBAAuB,EAA6C,MAAM,cAAc,CAAC;AAGvG,MAAM,WAAW,gBAAiB,SAAQ,uBAAuB;CAEhE;AASD,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG,gBASzC,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,EAAE,SAAS,gBAAgB,KAAG,IAEpE,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAGzD;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,EAAE,SAAS,gBAAgB,KAAG,IAMvE,CAAC"}
package/dist/config.js CHANGED
@@ -1,11 +1,28 @@
1
- import { clearLastUngrouped, getOptions, setOptions } from "./history.js";
1
+ import { clearLastUngrouped, defaultHistoryOptions } from "./history.js";
2
+ const optionsCache = new WeakMap();
3
+ const defaultOptions = {
4
+ ...defaultHistoryOptions,
5
+ // Future default options can be added here
6
+ };
7
+ export const getOptions = (root) => {
8
+ const opts = optionsCache.get(root);
9
+ if (!opts)
10
+ return defaultOptions;
11
+ return {
12
+ ...defaultOptions,
13
+ ...opts,
14
+ };
15
+ };
16
+ export const setOptions = (root, options) => {
17
+ optionsCache.set(root, options);
18
+ };
2
19
  /**
3
20
  * Configure per-root observe behavior by merging options and managing mergeUngrouped window reset.
4
21
  */
5
22
  export const configureRoot = (root, options) => {
6
- const prev = getOptions(root) ?? {};
23
+ const prev = getOptions(root);
7
24
  setOptions(root, { ...prev, ...options });
8
- if (!options.mergeUngrouped)
25
+ if (options.mergeUngrouped === false)
9
26
  clearLastUngrouped(root);
10
27
  };
11
28
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAM1E;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,OAAyB,EAAQ,EAAE;IAC9E,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACpC,UAAU,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC1C,IAAI,CAAC,OAAO,CAAC,cAAc;QAC1B,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAOvG,MAAM,YAAY,GAAsC,IAAI,OAAO,EAAE,CAAC;AAEtE,MAAM,cAAc,GAAqB;IACxC,GAAG,qBAAqB;IACxB,2CAA2C;CAC3C,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAoB,EAAE;IAC5D,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,CAAC,IAAI;QACR,OAAO,cAAc,CAAC;IAEvB,OAAO;QACN,GAAG,cAAc;QACjB,GAAG,IAAI;KACP,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,OAAyB,EAAQ,EAAE;IAC3E,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACjC,CAAC,CAAC;AAKF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,OAAyB,EAAQ,EAAE;IAC9E,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9B,UAAU,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAE1C,IAAI,OAAO,CAAC,cAAc,KAAK,KAAK;QACnC,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"grouping.d.ts","sourceRoot":"","sources":["../src/grouping.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,GAChC,MAAM,MAAM,EACZ,gBAAgB,CAAC,IAAI,EAAE,MAAM,KAAK;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;CAAE,EAAE,GAAG,SAAS,EAC/E,cAAa,MAAM,MAAiB,KAClC,MA2BF,CAAC"}
1
+ {"version":3,"file":"grouping.d.ts","sourceRoot":"","sources":["../src/grouping.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,GAChC,MAAM,MAAM,EACZ,gBAAgB,CAAC,IAAI,EAAE,MAAM,KAAK;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;CAAE,EAAE,GAAG,SAAS,EAC/E,cAAa,MAAM,MAAiB,KAClC,MA2BF,CAAC"}