@hvakr/firestate 0.1.4 → 0.1.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.
package/README.md CHANGED
@@ -33,35 +33,35 @@ Firestate provides a declarative, schema-first approach that eliminates boilerpl
33
33
  Firestate exposes two layers. Pick one based on what you're building:
34
34
 
35
35
  - **`createFirestate` + `doc` / `col`** (recommended for app code) — declare a Firestore resource (a document or collection) with a `path` template and a Zod `schema`, and the library generates one typed React hook per entry. In return you get:
36
- - the data type (`TaskList`) inferred from the schema via `z.infer`
37
- - the param keys (`{ listId }`) inferred from the path template and enforced at call sites
38
- - runtime validation on `set` / `add` writes — bad data throws at the call site instead of after a Firestore round trip
36
+ - the data type (`TaskList`) inferred from the schema via `z.infer`
37
+ - the param keys (`{ listId }`) inferred from the path template and enforced at call sites
38
+ - runtime validation on `set` / `add` writes — bad data throws at the call site instead of after a Firestore round trip
39
39
 
40
- Partial `update(diff)` calls are intentionally NOT validated: diffs commonly include Firestore sentinels like `serverTimestamp()` that a strict schema would reject.
40
+ Partial `update(diff)` calls are intentionally NOT validated: diffs commonly include Firestore sentinels like `serverTimestamp()` that a strict schema would reject.
41
41
 
42
- Treat `createFirestate` as a **per-resource hook factory**, not an app-wide registry: give each document/collection its own module (`firestore/taskList.ts`, `firestore/tasks.ts`, …) with one `createFirestate` call, and export the hooks flat. See [Organizing by resource](#organizing-by-resource).
42
+ Treat `createFirestate` as a **per-resource hook factory**, not an app-wide registry: give each document/collection its own module (`firestore/taskList.ts`, `firestore/tasks.ts`, …) with one `createFirestate` call, and export the hooks flat. See [Organizing by resource](#organizing-by-resource).
43
43
 
44
- ```ts
45
- // firestore/taskList.ts
46
- import { z } from 'zod'
47
- import { createFirestate, doc } from '@hvakr/firestate'
44
+ ```ts
45
+ // firestore/taskList.ts
46
+ import { z } from 'zod'
47
+ import { createFirestate, doc } from '@hvakr/firestate'
48
48
 
49
- const TaskListSchema = z.object({ name: z.string(), createdAt: z.number() })
49
+ const TaskListSchema = z.object({ name: z.string(), createdAt: z.number() })
50
50
 
51
- const taskList = doc({ path: 'taskLists/{listId}', schema: TaskListSchema })
51
+ const taskList = doc({ path: 'taskLists/{listId}', schema: TaskListSchema })
52
52
 
53
- export const { useTaskList } = createFirestate({ taskList })
53
+ export const { useTaskList } = createFirestate({ taskList })
54
54
 
55
- // useTaskList({ listId }) — { listId: string } statically required
56
- // useTaskList() — type error: missing listId
57
- // useTaskList({ wrong: 'a' }) — type error: wrong key
58
- ```
55
+ // useTaskList({ listId }) — { listId: string } statically required
56
+ // useTaskList() — type error: missing listId
57
+ // useTaskList({ wrong: 'a' }) — type error: wrong key
58
+ ```
59
59
 
60
60
  - **`defineDocument` / `defineCollection` + `useDocument` / `useCollection`** (lower-level escape hatch) — write the path-derivation function yourself, use the standalone hooks. Reach for these when:
61
- - your path doesn't fit the `{name}` template (computed from non-string state, conditional segments)
62
- - you need the definition outside React (Node scripts, server-side, tests)
63
- - your control flow doesn't fit a module-level registry
64
- - you want plain TypeScript types without a Zod schema (the schema field is optional here)
61
+ - your path doesn't fit the `{name}` template (computed from non-string state, conditional segments)
62
+ - you need the definition outside React (Node scripts, server-side, tests)
63
+ - your control flow doesn't fit a module-level registry
64
+ - you want plain TypeScript types without a Zod schema (the schema field is optional here)
65
65
 
66
66
  Both layers share the same store, undo manager, and sync semantics — the registry is a thin layer on top of the lower-level primitives.
67
67
 
@@ -74,12 +74,16 @@ Both layers share the same store, undo manager, and sync semantics — the regis
74
74
  import { z } from 'zod'
75
75
  import { createFirestate, col } from '@hvakr/firestate'
76
76
 
77
- const TaskSchema = z.object({ title: z.string(), completed: z.boolean(), createdAt: z.number() })
77
+ const TaskSchema = z.object({
78
+ title: z.string(),
79
+ completed: z.boolean(),
80
+ createdAt: z.number(),
81
+ })
78
82
  const tasks = col({ path: 'taskLists/{listId}/tasks', schema: TaskSchema })
79
83
 
80
84
  export const { useTasks, useTaskById } = createFirestate({
81
- tasks, // → useTasks (full handle)
82
- taskById: tasks.select((s, p: { id: string }) => s.data[p.id]),
85
+ tasks, // → useTasks (full handle)
86
+ taskById: tasks.select((s, p: { id: string }) => s.data[p.id]),
83
87
  })
84
88
 
85
89
  // firestore/taskList.ts is a sibling module with its own createFirestate call.
@@ -89,10 +93,10 @@ export const { useTasks, useTaskById } = createFirestate({
89
93
  Why per-resource rather than one central call:
90
94
 
91
95
  - **It scales.** A central registry becomes a chokepoint every feature edits; resource modules keep a resource's schema, hooks, and slices colocated and let you code-split.
92
- - **Sharing still works app-wide.** Subscriptions are keyed by *definition identity*, and a resource module's definition lives at module scope (one stable object), so every component using `useTasks`/`useTaskById` shares one `onSnapshot` listener and one optimistic state — no matter how many modules.
96
+ - **Sharing still works app-wide.** Subscriptions are keyed by _definition identity_, and a resource module's definition lives at module scope (one stable object), so every component using `useTasks`/`useTaskById` shares one `onSnapshot` listener and one optimistic state — no matter how many modules.
93
97
  - **The store stays global.** All resource modules mount under one `FirestateProvider`, so undo/redo and sync tracking span every resource regardless of how you split the files.
94
98
 
95
- **The one rule:** keep a resource's base hook *and* all its `.select` slices in the **same** `createFirestate` call. Each call builds its own definitions, so splitting one resource across two calls would fork it into two listeners. Separate *resources* in separate calls is exactly what you want; separating *one* resource is the mistake.
99
+ **The one rule:** keep a resource's base hook _and_ all its `.select` slices in the **same** `createFirestate` call. Each call builds its own definitions, so splitting one resource across two calls would fork it into two listeners. Separate _resources_ in separate calls is exactly what you want; separating _one_ resource is the mistake.
96
100
 
97
101
  ## Table of Contents
98
102
 
@@ -125,9 +129,9 @@ Firestate requires the following peer dependencies:
125
129
 
126
130
  ```json
127
131
  {
128
- "firebase": "^10.0.0 || ^11.0.0",
129
- "react": "^18.0.0 || ^19.0.0",
130
- "zod": "^4.0.0"
132
+ "firebase": "^10.0.0 || ^11.0.0",
133
+ "react": "^18.0.0 || ^19.0.0",
134
+ "zod": "^4.0.0"
131
135
  }
132
136
  ```
133
137
 
@@ -205,11 +209,7 @@ import { db } from './firebase'
205
209
 
206
210
  function App() {
207
211
  return (
208
- <FirestateProvider
209
- firestore={db}
210
- autosave={1000}
211
- maxUndoLength={20}
212
- >
212
+ <FirestateProvider firestore={db} autosave={1000} maxUndoLength={20}>
213
213
  <YourApp />
214
214
  </FirestateProvider>
215
215
  )
@@ -241,7 +241,10 @@ function ProjectEditor({ projectId }: { projectId: string }) {
241
241
 
242
242
  // Opt into save state only where you render it — shares the project's one
243
243
  // listener, so it doesn't add a subscription.
244
- const { isSaving } = useDocumentSyncStatus({ definition: projectDoc, params })
244
+ const { isSaving } = useDocumentSyncStatus({
245
+ definition: projectDoc,
246
+ params,
247
+ })
245
248
 
246
249
  // Access undo/redo
247
250
  const { undo, redo, canUndo, canRedo } = useUndoManager()
@@ -252,8 +255,12 @@ function ProjectEditor({ projectId }: { projectId: string }) {
252
255
  return (
253
256
  <div>
254
257
  {/* Undo/Redo buttons */}
255
- <button onClick={undo} disabled={!canUndo}>Undo</button>
256
- <button onClick={redo} disabled={!canRedo}>Redo</button>
258
+ <button onClick={undo} disabled={!canUndo}>
259
+ Undo
260
+ </button>
261
+ <button onClick={redo} disabled={!canRedo}>
262
+ Redo
263
+ </button>
257
264
 
258
265
  {/* Edit project name - changes auto-save */}
259
266
  <input
@@ -343,6 +350,9 @@ project.update({ name: 'New Name' }, { undoGroupId: groupId })
343
350
  spaces.update({ space1: { name: 'Updated' } }, { undoGroupId: groupId })
344
351
  ```
345
352
 
353
+ Grouped actions undo newest-first and redo oldest-first, so one undo/redo
354
+ always applies the complete group in write order.
355
+
346
356
  To skip undo tracking:
347
357
 
348
358
  ```tsx
@@ -365,6 +375,12 @@ function App() {
365
375
  <FirestateProvider
366
376
  firestore={db}
367
377
  onNavigate={(path) => navigate(path)}
378
+ onUndo={(action) =>
379
+ analytics.track('undo', { description: action.description })
380
+ }
381
+ onRedo={(action) =>
382
+ analytics.track('redo', { description: action.description })
383
+ }
368
384
  >
369
385
  {children}
370
386
  </FirestateProvider>
@@ -387,7 +403,7 @@ Actions record a path via the `path` field on `UndoAction`:
387
403
  undoManager.push({
388
404
  undo: () => restoreValue(),
389
405
  redo: () => applyValue(),
390
- path: '/projects/123', // navigate here on undo/redo
406
+ path: '/projects/123', // navigate here on undo/redo
391
407
  })
392
408
  ```
393
409
 
@@ -499,10 +515,7 @@ Use the second argument for hook options such as `enabled`, `readOnly`,
499
515
  ```tsx
500
516
  const spaces = useSpaces(
501
517
  { projectId },
502
- {
503
- enabled: Boolean(projectId),
504
- queryConstraints,
505
- }
518
+ { enabled: Boolean(projectId), queryConstraints }
506
519
  )
507
520
  ```
508
521
 
@@ -594,14 +607,14 @@ type parameter, or let it be inferred from a Zod schema.
594
607
 
595
608
  ```typescript
596
609
  const projectDoc = defineDocument<Project>({
597
- collection: 'projects', // Collection path
598
- id: (params) => params.id, // Document ID (string or function)
599
- autosave: 1000, // Optional: debounce interval (ms)
600
- minLoadTime: 0, // Optional: minimum loading time (ms)
601
- readOnly: false, // Optional: prevent updates
602
- retryOnError: false, // Optional: retry on listener errors
603
- retryInterval: 5000, // Optional: retry interval (ms)
604
- schema: ProjectSchema, // Optional: Zod schema (validates set/add)
610
+ collection: 'projects', // Collection path
611
+ id: (params) => params.id, // Document ID (string or function)
612
+ autosave: 1000, // Optional: debounce interval (ms)
613
+ minLoadTime: 0, // Optional: minimum loading time (ms)
614
+ readOnly: false, // Optional: prevent updates
615
+ retryOnError: false, // Optional: retry on listener errors
616
+ retryInterval: 5000, // Optional: retry interval (ms)
617
+ schema: ProjectSchema, // Optional: Zod schema (validates set/add)
605
618
  })
606
619
  ```
607
620
 
@@ -612,12 +625,12 @@ Creates a collection definition.
612
625
  ```typescript
613
626
  const spacesCollection = defineCollection<Space>({
614
627
  path: (params) => `projects/${params.id}/spaces`, // Collection path
615
- autosave: 1000, // Optional: debounce interval
616
- minLoadTime: 0, // Optional: minimum loading time
617
- readOnly: false, // Optional: prevent updates
618
- lazy: false, // Optional: defer subscription
619
- queryConstraints: [], // Optional: Firestore constraints
620
- schema: SpaceSchema, // Optional: Zod schema (validates add)
628
+ autosave: 1000, // Optional: debounce interval
629
+ minLoadTime: 0, // Optional: minimum loading time
630
+ readOnly: false, // Optional: prevent updates
631
+ lazy: false, // Optional: defer subscription
632
+ queryConstraints: [], // Optional: Firestore constraints
633
+ schema: SpaceSchema, // Optional: Zod schema (validates add)
621
634
  })
622
635
  ```
623
636
 
@@ -629,20 +642,20 @@ Subscribe to a document.
629
642
 
630
643
  ```typescript
631
644
  const {
632
- data, // Current document data (T | undefined)
633
- update, // Update with partial diff
634
- set, // Replace entire document
635
- delete: del, // Delete the document
636
- isLoaded, // Whether the initial snapshot has arrived (ready to render)
637
- sync, // Force sync immediately
638
- error, // Error from listener, if any
639
- ref, // Firestore DocumentReference
645
+ data, // Current document data (T | undefined)
646
+ update, // Update with partial diff
647
+ set, // Replace entire document
648
+ delete: del, // Delete the document
649
+ isLoaded, // Whether the initial snapshot has arrived (ready to render)
650
+ sync, // Force sync immediately
651
+ error, // Error from listener, if any
652
+ ref, // Firestore DocumentReference
640
653
  } = useDocument({
641
654
  definition: projectDoc,
642
655
  params: { projectId: '123' },
643
- readOnly: false, // Optional: override read-only
644
- undoable: true, // Optional: enable undo (default: true)
645
- enabled: true, // Optional: set false until required params exist
656
+ readOnly: false, // Optional: override read-only
657
+ undoable: true, // Optional: enable undo (default: true)
658
+ enabled: true, // Optional: set false until required params exist
646
659
  })
647
660
 
648
661
  // The default handle is SYNC-AGNOSTIC: no `isSynced`, so a save settling does
@@ -658,22 +671,22 @@ Subscribe to a collection.
658
671
 
659
672
  ```typescript
660
673
  const {
661
- data, // Record<string, T> of documents
662
- update, // Update one or more documents
663
- add, // Add a new document (explicit or auto-generated id)
664
- remove, // Remove a document
665
- isLoaded, // Active AND past the initial load (isActive && !isLoading)
666
- isActive, // Whether subscription is active (for lazy collections)
667
- load, // Activate a lazy subscription
668
- sync, // Force sync immediately
669
- error, // Error from listener, if any
670
- ref, // Firestore CollectionReference
674
+ data, // Record<string, T> of documents
675
+ update, // Update one or more documents
676
+ add, // Add a new document (explicit or auto-generated id)
677
+ remove, // Remove a document
678
+ isLoaded, // Active AND past the initial load (isActive && !isLoading)
679
+ isActive, // Whether subscription is active (for lazy collections)
680
+ load, // Activate a lazy subscription
681
+ sync, // Force sync immediately
682
+ error, // Error from listener, if any
683
+ ref, // Firestore CollectionReference
671
684
  } = useCollection({
672
685
  definition: spacesCollection,
673
686
  params: { projectId: '123' },
674
687
  queryConstraints: [where('floor', '==', 1)],
675
688
  undoable: true,
676
- enabled: true, // Optional: set false until required params exist
689
+ enabled: true, // Optional: set false until required params exist
677
690
  })
678
691
 
679
692
  // queryConstraints are keyed by query identity, not array reference: the
@@ -708,7 +721,7 @@ By default a component re-renders when the data, the load state (`isLoaded`), or
708
721
  **sync-agnostic default handle** (`data`, `isLoaded`, `error`, the writers, and
709
722
  `ref` — plus a collection's `isActive`). It deliberately omits `isSynced`, so a
710
723
  save settling does not re-render it (see [Sync status and loading status](#sync-status-and-loading-status)).
711
- Pass a `selector` to take further control: it receives the resource's *full*
724
+ Pass a `selector` to take further control: it receives the resource's _full_
712
725
  observable state — including `isLoading`/`isSynced` — and returns the slice the
713
726
  component reacts to, so the component re-renders **only** when that slice changes.
714
727
 
@@ -716,7 +729,7 @@ A selected handle exposes exactly your slice as `data`, plus the writer surface
716
729
  (`update`/`set`/`delete`/`add`/`remove`/`load`/`sync`) and `ref` — the status
717
730
  flags are **not** on it. You react to precisely what you select; status is not a
718
731
  freebie, so read it from the state inside the selector when you need it. A
719
- selector changes what you *read*, never what you *write*.
732
+ selector changes what you _read_, never what you _write_.
720
733
 
721
734
  ```typescript
722
735
  // Re-renders only when the title changes — not on any other field, and not on a
@@ -746,7 +759,7 @@ const { data: space } = useCollection({
746
759
  `s.data` is `undefined` while a document is loading (and the collection record is
747
760
  `{}`), so selectors should handle the empty case.
748
761
 
749
- When writing from a narrowed handle, use `update` — it takes a *partial* and
762
+ When writing from a narrowed handle, use `update` — it takes a _partial_ and
750
763
  merges, so a selected field is just `update({ field: next })`. `set` still
751
764
  **replaces the entire document**, not the slice: never pass the selected value
752
765
  to `set` (e.g. `set(title)`) or you will overwrite every other field. Reach for
@@ -784,7 +797,7 @@ optimistic edits live. Only the read-only handle's own writers are disabled.
784
797
  #### Sync status and loading status
785
798
 
786
799
  The default data handle is **sync-agnostic**: it carries `data`/`isLoaded`/
787
- `error` but never `isSynced`. That matters because `isSynced` flips on *every*
800
+ `error` but never `isSynced`. That matters because `isSynced` flips on _every_
788
801
  autosave settle — so if the data handle carried it, every component that merely
789
802
  reads a record would re-render an extra time after each save. Most readers only
790
803
  want the data; the few that render save state (a "Saving…" indicator, a
@@ -818,7 +831,7 @@ on the load transition, never on data. Collection status hooks take the same
818
831
  `queryConstraints` as the data hook (pass the same query to share the listener).
819
832
 
820
833
  On a **lazy** collection, a status hook does not call `load()` itself — so as
821
- the *only* subscriber it stays idle (`{ isSynced: true, isSaving: false }` /
834
+ the _only_ subscriber it stays idle (`{ isSynced: true, isSaving: false }` /
822
835
  `{ isLoading: false, isLoaded: false }`) and attaches no listener. Pair it with
823
836
  the data hook, whose `load()` activates the one shared listener the status hook
824
837
  then rides. Non-lazy collections activate on mount, so this is lazy-only.
@@ -832,7 +845,7 @@ With the lower-level API there are standalone equivalents —
832
845
  `{ definition, params, enabled }` (collections also `queryConstraints`).
833
846
 
834
847
  This is the per-resource counterpart to [`useIsSynced()`](#useissynced), which
835
- reports a single provider-wide aggregate across *all* tracked resources.
848
+ reports a single provider-wide aggregate across _all_ tracked resources.
836
849
 
837
850
  #### `useUndoManager()`
838
851
 
@@ -840,13 +853,13 @@ Access the undo manager.
840
853
 
841
854
  ```typescript
842
855
  const {
843
- canUndo, // Whether undo is available
844
- canRedo, // Whether redo is available
845
- undo, // Undo the last action
846
- redo, // Redo the last undone action
847
- clear, // Clear undo/redo history
848
- undoStack, // Array of undo actions
849
- redoStack, // Array of redo actions
856
+ canUndo, // Whether undo is available
857
+ canRedo, // Whether redo is available
858
+ undo, // Undo the last action
859
+ redo, // Redo the last undone action
860
+ clear, // Clear undo/redo history
861
+ undoStack, // Array of undo actions
862
+ redoStack, // Array of redo actions
850
863
  } = useUndoManager()
851
864
  ```
852
865
 
@@ -874,11 +887,17 @@ Main provider component.
874
887
 
875
888
  ```tsx
876
889
  <FirestateProvider
877
- firestore={db} // Required: Firestore instance
878
- autosave={1000} // Optional: default debounce (ms)
879
- minLoadTime={0} // Optional: minimum loading time (ms)
880
- maxUndoLength={20} // Optional: max undo stack size
881
- onNavigate={(path) => navigate(path)} // Optional: router navigate for path-aware undo/redo
890
+ firestore={db} // Required: Firestore instance
891
+ autosave={1000} // Optional: default debounce (ms)
892
+ minLoadTime={0} // Optional: minimum loading time (ms)
893
+ maxUndoLength={20} // Optional: max undo stack size
894
+ onNavigate={(path) => navigate(path)} // Optional: router navigate for path-aware undo/redo
895
+ onUndo={(action) =>
896
+ analytics.track('undo', { description: action.description })
897
+ }
898
+ onRedo={(action) =>
899
+ analytics.track('redo', { description: action.description })
900
+ }
882
901
  onError={(error, context) => {
883
902
  // Optional: custom error handler
884
903
  console.error(context.path, error)
@@ -948,7 +967,11 @@ const restored = unflattenDiff(flat)
948
967
  ### Path-Based Utilities
949
968
 
950
969
  ```typescript
951
- import { diffContainsPath, extractDiffValue, createDiffAtPath } from '@hvakr/firestate'
970
+ import {
971
+ diffContainsPath,
972
+ extractDiffValue,
973
+ createDiffAtPath,
974
+ } from '@hvakr/firestate'
952
975
 
953
976
  const diff = { building: { floors: 5 }, name: 'Test' }
954
977
 
@@ -967,7 +990,12 @@ createDiffAtPath('building.config.enabled', true)
967
990
  ### General Utilities
968
991
 
969
992
  ```typescript
970
- import { isDeepEqual, deepClone, isDiffEmpty, mergeDiffs } from '@hvakr/firestate'
993
+ import {
994
+ isDeepEqual,
995
+ deepClone,
996
+ isDiffEmpty,
997
+ mergeDiffs,
998
+ } from '@hvakr/firestate'
971
999
 
972
1000
  // Deep equality check (handles Timestamps, arrays, nested objects)
973
1001
  isDeepEqual(obj1, obj2)
@@ -1005,8 +1033,15 @@ const store = createStore({
1005
1033
  maxUndoLength: 50,
1006
1034
  onError: (error, context) => {
1007
1035
  // Send to error tracking service
1036
+ if (context.type === 'undo') {
1037
+ analytics.track('undo_error', { operation: context.operation })
1038
+ }
1008
1039
  Sentry.captureException(error, { extra: context })
1009
- }
1040
+ },
1041
+ onUndo: (action) =>
1042
+ analytics.track('undo', { description: action.description }),
1043
+ onRedo: (action) =>
1044
+ analytics.track('redo', { description: action.description }),
1010
1045
  })
1011
1046
 
1012
1047
  const subscription = createDocumentSubscription({
@@ -1035,13 +1070,17 @@ import { createUndoManager } from '@hvakr/firestate'
1035
1070
  const undoManager = createUndoManager({
1036
1071
  maxLength: 50,
1037
1072
  onNavigate: (path) => router.push(path),
1073
+ onUndo: (action) =>
1074
+ analytics.track('undo', { description: action.description }),
1075
+ onRedo: (action) =>
1076
+ analytics.track('redo', { description: action.description }),
1038
1077
  })
1039
1078
 
1040
1079
  undoManager.push({
1041
1080
  undo: () => restoreOldValue(),
1042
1081
  redo: () => applyNewValue(),
1043
1082
  groupId: 'myGroup',
1044
- path: '/projects/123', // Navigate here on undo/redo
1083
+ path: '/projects/123', // Navigate here on undo/redo
1045
1084
  description: 'Update project name',
1046
1085
  })
1047
1086
 
@@ -1210,8 +1249,14 @@ export const spacesCollection = defineCollection<Space>({
1210
1249
 
1211
1250
  // Component.tsx
1212
1251
  function ProjectEditor({ projectId }) {
1213
- const project = useDocument({ definition: projectDoc, params: { projectId } })
1214
- const spaces = useCollection({ definition: spacesCollection, params: { projectId } })
1252
+ const project = useDocument({
1253
+ definition: projectDoc,
1254
+ params: { projectId },
1255
+ })
1256
+ const spaces = useCollection({
1257
+ definition: spacesCollection,
1258
+ params: { projectId },
1259
+ })
1215
1260
  const isSynced = useIsSynced() // Automatic!
1216
1261
 
1217
1262
  // That's it. Undo/redo is automatic.
package/dist/index.d.mts CHANGED
@@ -153,8 +153,8 @@ interface CollectionHandle<T extends FirestoreObject> {
153
153
  * before using the id to navigate or persist references.
154
154
  */
155
155
  add: {
156
- (id: string, data: Omit<T, "id">, options?: UpdateOptions): string | undefined;
157
- (data: Omit<T, "id">, options?: UpdateOptions): string | undefined;
156
+ (id: string, data: Omit<T, 'id'>, options?: UpdateOptions): string | undefined;
157
+ (data: Omit<T, 'id'>, options?: UpdateOptions): string | undefined;
158
158
  };
159
159
  /** Remove a document from the collection */
160
160
  remove: (id: string, options?: UpdateOptions) => void;
@@ -179,8 +179,8 @@ interface CollectionHandle<T extends FirestoreObject> {
179
179
  ref: CollectionReference<T> | undefined;
180
180
  }
181
181
  /** Reactive status fields a selector drops unless it folds them into its slice. */
182
- type DocumentStatusKeys = "isLoaded" | "error";
183
- type CollectionStatusKeys = DocumentStatusKeys | "isActive";
182
+ type DocumentStatusKeys = 'isLoaded' | 'error';
183
+ type CollectionStatusKeys = DocumentStatusKeys | 'isActive';
184
184
  /**
185
185
  * A {@link DocumentHandle} reduced to a hook-level `selector`'s output. The
186
186
  * selector receives the full observable state ({@link DocumentState}) and
@@ -201,7 +201,7 @@ type CollectionStatusKeys = DocumentStatusKeys | "isActive";
201
201
  * to `set`, or you will overwrite every other field. Prefer `update` from a
202
202
  * narrowed handle; reach for `set` only when you hold the full document.
203
203
  */
204
- interface SelectedDocumentHandle<TData extends FirestoreObject, TSelected> extends Omit<DocumentHandle<TData>, "data" | DocumentStatusKeys> {
204
+ interface SelectedDocumentHandle<TData extends FirestoreObject, TSelected> extends Omit<DocumentHandle<TData>, 'data' | DocumentStatusKeys> {
205
205
  /** The slice produced by the hook's `selector`. */
206
206
  data: TSelected;
207
207
  }
@@ -214,7 +214,7 @@ interface SelectedDocumentHandle<TData extends FirestoreObject, TSelected> exten
214
214
  * folded into the slice. Writers stay typed against the full collection of
215
215
  * `TData`.
216
216
  */
217
- interface SelectedCollectionHandle<TData extends FirestoreObject, TSelected> extends Omit<CollectionHandle<TData>, "data" | CollectionStatusKeys> {
217
+ interface SelectedCollectionHandle<TData extends FirestoreObject, TSelected> extends Omit<CollectionHandle<TData>, 'data' | CollectionStatusKeys> {
218
218
  /** The slice produced by the hook's `selector`. */
219
219
  data: TSelected;
220
220
  }
@@ -347,6 +347,10 @@ interface FirestateConfig {
347
347
  * where a change occurred before reverting it.
348
348
  */
349
349
  onNavigate?: (path: string) => void;
350
+ /** Called after an undo action has been successfully applied. */
351
+ onUndo?: (action: UndoAction) => void;
352
+ /** Called after a redo action has been successfully applied. */
353
+ onRedo?: (action: UndoAction) => void;
350
354
  /** Custom error handler */
351
355
  onError?: (error: Error, context: ErrorContext) => void;
352
356
  }
@@ -354,9 +358,9 @@ interface FirestateConfig {
354
358
  * Context for error handling
355
359
  */
356
360
  interface ErrorContext {
357
- type: "document" | "collection";
361
+ type: 'document' | 'collection' | 'undo';
358
362
  path: string;
359
- operation: "read" | "write";
363
+ operation: 'read' | 'write' | 'undo' | 'redo';
360
364
  }
361
365
  /**
362
366
  * Subscriber callback type
@@ -462,6 +466,12 @@ interface UndoManagerConfig {
462
466
  maxLength?: number;
463
467
  /** Callback when navigation is requested (for path-aware undo) */
464
468
  onNavigate?: (path: string) => void;
469
+ /** Callback after an undo action has been successfully applied */
470
+ onUndo?: (action: UndoAction) => void;
471
+ /** Callback after a redo action has been successfully applied */
472
+ onRedo?: (action: UndoAction) => void;
473
+ /** Callback when an undo or redo action fails */
474
+ onError?: (error: Error, action: UndoAction, operation: 'undo' | 'redo') => void;
465
475
  }
466
476
  /**
467
477
  * Create an undo manager instance.
@@ -517,6 +527,10 @@ interface FirestateStore {
517
527
  * callback that changes reference on every render.
518
528
  */
519
529
  setOnNavigate: (handler?: (path: string) => void) => void;
530
+ /** Replace the successful-undo handler without recreating the store. */
531
+ setOnUndo: (handler?: (action: UndoAction) => void) => void;
532
+ /** Replace the successful-redo handler without recreating the store. */
533
+ setOnRedo: (handler?: (action: UndoAction) => void) => void;
520
534
  /** Subscribe to sync state changes */
521
535
  subscribeToSyncState: (fn: Subscriber<boolean>) => Unsubscribe;
522
536
  /** Report a document/collection sync state change */
@@ -1563,6 +1577,10 @@ interface FirestateProviderProps {
1563
1577
  onNavigate?: (path: string) => void;
1564
1578
  /** Custom error handler */
1565
1579
  onError?: (error: Error, context: ErrorContext) => void;
1580
+ /** Called after an undo action has been successfully applied */
1581
+ onUndo?: (action: UndoAction) => void;
1582
+ /** Called after a redo action has been successfully applied */
1583
+ onRedo?: (action: UndoAction) => void;
1566
1584
  /** React children */
1567
1585
  children: React.ReactNode;
1568
1586
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/registry/schema.ts","../src/utils/undo.ts","../src/core/store.ts","../src/react/hooks.ts","../src/registry/firestate.ts","../src/utils/diff.ts","../src/utils/shallow.ts","../src/core/document.ts","../src/core/collection.ts","../src/react/provider.tsx"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/registry/schema.ts","../src/utils/undo.ts","../src/core/store.ts","../src/react/hooks.ts","../src/registry/firestate.ts","../src/utils/diff.ts","../src/utils/shallow.ts","../src/core/document.ts","../src/core/collection.ts","../src/react/provider.tsx"],"mappings":"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"}