@buoy-gg/shared-ui 7.0.17 → 7.0.19

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 (65) hide show
  1. package/lib/commonjs/dataViewer/ThemedSplitView.js +622 -0
  2. package/lib/commonjs/dataViewer/index.js +32 -0
  3. package/lib/commonjs/dataViewer/objectDiff.js +304 -0
  4. package/lib/commonjs/hooks/safe-area-impl.js +1 -1
  5. package/lib/commonjs/index.js +19 -0
  6. package/lib/commonjs/storage/devToolsStorageKeys.js +9 -0
  7. package/lib/commonjs/sync/wireBudget.js +97 -0
  8. package/lib/commonjs/ui/components/HeaderSearchButton.js +6 -1
  9. package/lib/commonjs/utils/persistentStorage.js +6 -3
  10. package/lib/commonjs/utils/stateSnapshotRegistry.js +9 -0
  11. package/lib/module/dataViewer/ThemedSplitView.js +617 -0
  12. package/lib/module/dataViewer/index.js +7 -1
  13. package/lib/module/dataViewer/objectDiff.js +297 -0
  14. package/lib/module/hooks/safe-area-impl.js +1 -1
  15. package/lib/module/index.js +2 -1
  16. package/lib/module/storage/devToolsStorageKeys.js +9 -0
  17. package/lib/module/sync/wireBudget.js +92 -0
  18. package/lib/module/ui/components/HeaderSearchButton.js +6 -1
  19. package/lib/module/utils/persistentStorage.js +6 -3
  20. package/lib/module/utils/stateSnapshotRegistry.js +9 -0
  21. package/lib/typescript/commonjs/dataViewer/ThemedSplitView.d.ts +28 -0
  22. package/lib/typescript/commonjs/dataViewer/ThemedSplitView.d.ts.map +1 -0
  23. package/lib/typescript/commonjs/dataViewer/index.d.ts +2 -0
  24. package/lib/typescript/commonjs/dataViewer/index.d.ts.map +1 -1
  25. package/lib/typescript/commonjs/dataViewer/objectDiff.d.ts +67 -0
  26. package/lib/typescript/commonjs/dataViewer/objectDiff.d.ts.map +1 -0
  27. package/lib/typescript/commonjs/hooks/safe-area-impl.d.ts +1 -1
  28. package/lib/typescript/commonjs/index.d.ts +3 -2
  29. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  30. package/lib/typescript/commonjs/storage/devToolsStorageKeys.d.ts +9 -0
  31. package/lib/typescript/commonjs/storage/devToolsStorageKeys.d.ts.map +1 -1
  32. package/lib/typescript/commonjs/sync/wireBudget.d.ts +50 -0
  33. package/lib/typescript/commonjs/sync/wireBudget.d.ts.map +1 -0
  34. package/lib/typescript/commonjs/ui/components/HeaderSearchButton.d.ts +3 -1
  35. package/lib/typescript/commonjs/ui/components/HeaderSearchButton.d.ts.map +1 -1
  36. package/lib/typescript/commonjs/utils/index.d.ts +1 -1
  37. package/lib/typescript/commonjs/utils/index.d.ts.map +1 -1
  38. package/lib/typescript/commonjs/utils/persistentStorage.d.ts.map +1 -1
  39. package/lib/typescript/commonjs/utils/stateSnapshotRegistry.d.ts +45 -1
  40. package/lib/typescript/commonjs/utils/stateSnapshotRegistry.d.ts.map +1 -1
  41. package/lib/typescript/module/dataViewer/ThemedSplitView.d.ts +28 -0
  42. package/lib/typescript/module/dataViewer/ThemedSplitView.d.ts.map +1 -0
  43. package/lib/typescript/module/dataViewer/index.d.ts +2 -0
  44. package/lib/typescript/module/dataViewer/index.d.ts.map +1 -1
  45. package/lib/typescript/module/dataViewer/objectDiff.d.ts +67 -0
  46. package/lib/typescript/module/dataViewer/objectDiff.d.ts.map +1 -0
  47. package/lib/typescript/module/hooks/safe-area-impl.d.ts +1 -1
  48. package/lib/typescript/module/index.d.ts +3 -2
  49. package/lib/typescript/module/index.d.ts.map +1 -1
  50. package/lib/typescript/module/storage/devToolsStorageKeys.d.ts +9 -0
  51. package/lib/typescript/module/storage/devToolsStorageKeys.d.ts.map +1 -1
  52. package/lib/typescript/module/sync/wireBudget.d.ts +50 -0
  53. package/lib/typescript/module/sync/wireBudget.d.ts.map +1 -0
  54. package/lib/typescript/module/ui/components/HeaderSearchButton.d.ts +3 -1
  55. package/lib/typescript/module/ui/components/HeaderSearchButton.d.ts.map +1 -1
  56. package/lib/typescript/module/utils/index.d.ts +1 -1
  57. package/lib/typescript/module/utils/index.d.ts.map +1 -1
  58. package/lib/typescript/module/utils/persistentStorage.d.ts.map +1 -1
  59. package/lib/typescript/module/utils/stateSnapshotRegistry.d.ts +45 -1
  60. package/lib/typescript/module/utils/stateSnapshotRegistry.d.ts.map +1 -1
  61. package/package.json +10 -5
  62. package/lib/typescript/commonjs/dataViewer/__tests__/jsonOps.test.d.ts +0 -19
  63. package/lib/typescript/commonjs/dataViewer/__tests__/jsonOps.test.d.ts.map +0 -1
  64. package/lib/typescript/module/dataViewer/__tests__/jsonOps.test.d.ts +0 -19
  65. package/lib/typescript/module/dataViewer/__tests__/jsonOps.test.d.ts.map +0 -1
@@ -114,6 +114,15 @@ export declare const devToolsStorageKeys: {
114
114
  readonly isMonitoring: () => "@react_buoy_storage_is_monitoring";
115
115
  readonly diffViewerMode: () => "@react_buoy_storage_diff_viewer_mode";
116
116
  };
117
+ /**
118
+ * Time Machine storage keys. NOTE: the snapshot VAULT keys
119
+ * (`@react_buoy_time_machine:index` / `:snap:*`) predate this namespace and
120
+ * stay as-is — only preferences live here.
121
+ */
122
+ readonly timeMachine: {
123
+ readonly root: () => "@react_buoy_time_machine";
124
+ readonly diffViewerMode: () => "@react_buoy_time_machine_diff_viewer_mode";
125
+ };
117
126
  /**
118
127
  * React Query-related storage keys
119
128
  */
@@ -1 +1 @@
1
- {"version":3,"file":"devToolsStorageKeys.d.ts","sourceRoot":"","sources":["../../../../src/storage/devToolsStorageKeys.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB;IAC9B;;OAEG;;IAGH;;OAEG;;;;;;;IASH;;OAEG;;;;;;;;IAUH;;;;;;;;;;OAUG;8BACc,MAAM;;QAInB,kEAAkE;;;QAGlE,iCAAiC;sBACnB,MAAM;;IAIxB;;OAEG;;;;;;QAQD,kDAAkD;;QAElD,gCAAgC;;QAGhC,gCAAgC;;;IAKlC;;OAEG;;;QAGD,mCAAmC;;QAEnC,qEAAqE;;;IAIvE;;OAEG;;;;;IAOH;;OAEG;;;;;;;IAQH;;OAEG;;;;;;;IASH;;OAEG;;;;;;;;;;;;;;IAuBH;;OAEG;;;;;;;;;;;IAiBH;;OAEG;;;;;;;;;;QAcD;;;WAGG;;QAEH;;;;;WAKG;;;IAIL;;OAEG;;;;;;;;;;IAgBH;;OAEG;;;;;;;QAUD,2BAA2B;;;IAK7B;;OAEG;;;;;;;;;IAcH;;OAEG;;;;QAID,oCAAoC;;QAGpC,wCAAwC;;QAGxC,2BAA2B;;;CAIrB,CAAC;AAwBX;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CA0BzD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAE9D;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,EAAE,CAsBpD"}
1
+ {"version":3,"file":"devToolsStorageKeys.d.ts","sourceRoot":"","sources":["../../../../src/storage/devToolsStorageKeys.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB;IAC9B;;OAEG;;IAGH;;OAEG;;;;;;;IASH;;OAEG;;;;;;;;IAUH;;;;;;;;;;OAUG;8BACc,MAAM;;QAInB,kEAAkE;;;QAGlE,iCAAiC;sBACnB,MAAM;;IAIxB;;OAEG;;;;;;QAQD,kDAAkD;;QAElD,gCAAgC;;QAGhC,gCAAgC;;;IAKlC;;OAEG;;;QAGD,mCAAmC;;QAEnC,qEAAqE;;;IAIvE;;OAEG;;;;;IAOH;;OAEG;;;;;;;IAQH;;OAEG;;;;;;;IASH;;OAEG;;;;;;;;;;;;;;IAuBH;;;;OAIG;;;;;IAOH;;OAEG;;;;;;;;;;;IAiBH;;OAEG;;;;;;;;;;QAcD;;;WAGG;;QAEH;;;;;WAKG;;;IAIL;;OAEG;;;;;;;;;;IAgBH;;OAEG;;;;;;;QAUD,2BAA2B;;;IAK7B;;OAEG;;;;;;;;;IAcH;;OAEG;;;;QAID,oCAAoC;;QAGpC,wCAAwC;;QAGxC,2BAA2B;;;CAIrB,CAAC;AAwBX;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CA0BzD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAE9D;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,EAAE,CAsBpD"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Size guards for anything a tool puts on the sync wire.
3
+ *
4
+ * Every adapter faces the same problem: a snapshot is rebuilt and serialized
5
+ * on the device's JS thread ~5x/sec while a dashboard watches, and one fat or
6
+ * unserializable field can either freeze that thread or blow the emit layer's
7
+ * budget — which drops the WHOLE snapshot and leaves the panel stale.
8
+ *
9
+ * Two rules make that safe, and both are easy to get subtly wrong, which is
10
+ * why they live here instead of being copied per adapter:
11
+ *
12
+ * 1. NEVER measure by serializing. `JSON.stringify(value).length` is
13
+ * O(payload) and allocates the whole string — an unbounded cost to
14
+ * enforce a 16KB cap, i.e. the protection becomes the freeze. Walk with
15
+ * an early abort instead: the cost is O(limit) no matter how big the
16
+ * value, and a string costs a length read rather than a scan.
17
+ *
18
+ * 2. Only reach for `JSON.stringify` when the walk saw something that could
19
+ * actually make it throw. A value straight out of `JSON.parse` — which is
20
+ * what a network body or a stored string is — is a finite tree of plain
21
+ * values and can never throw, so the check is pure waste on the common
22
+ * path.
23
+ */
24
+ export interface SizeWalk {
25
+ /** Bytes counted before the walk finished or passed `limit`. */
26
+ bytes: number;
27
+ /**
28
+ * An object/array was reached by more than one path. A cycle always causes
29
+ * this, so `false` PROVES the value is a tree and therefore cycle-free.
30
+ * (`true` does not prove a cycle — plain structural sharing sets it too.)
31
+ */
32
+ sawRepeat: boolean;
33
+ /** A bigint was reached. `JSON.stringify` THROWS on those, unlike functions. */
34
+ sawBigInt: boolean;
35
+ }
36
+ /**
37
+ * Approximate JSON size, aborting as soon as `limit` is passed — O(limit),
38
+ * never O(payload). Returns the bytes counted so far, so one walk can both
39
+ * threshold ("over the per-field cap?") and accumulate ("how much of the
40
+ * snapshot budget is left?").
41
+ */
42
+ export declare function approxJsonSize(value: unknown, limit: number): SizeWalk;
43
+ /**
44
+ * Should this value be withheld from the wire — too big, or unserializable?
45
+ *
46
+ * The ordering is the point: measure with the early-abort walk, and only pay
47
+ * for `JSON.stringify` when the walk found a reason it might throw.
48
+ */
49
+ export declare function isOverWireBudget(value: unknown, limit: number): boolean;
50
+ //# sourceMappingURL=wireBudget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wireBudget.d.ts","sourceRoot":"","sources":["../../../../src/sync/wireBudget.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,MAAM,WAAW,QAAQ;IACvB,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB,gFAAgF;IAChF,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,CAmCtE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAUvE"}
@@ -3,7 +3,9 @@ interface HeaderSearchButtonProps {
3
3
  size?: number;
4
4
  color?: string;
5
5
  style?: any;
6
+ accessibilityLabel?: string;
7
+ testID?: string;
6
8
  }
7
- export declare function HeaderSearchButton({ onPress, size, color, style, }: HeaderSearchButtonProps): import("react").JSX.Element;
9
+ export declare function HeaderSearchButton({ onPress, size, color, style, accessibilityLabel, testID, }: HeaderSearchButtonProps): import("react").JSX.Element;
8
10
  export {};
9
11
  //# sourceMappingURL=HeaderSearchButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HeaderSearchButton.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/HeaderSearchButton.tsx"],"names":[],"mappings":"AAIA,UAAU,uBAAuB;IAC/B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,GAAG,CAAC;CACb;AAED,wBAAgB,kBAAkB,CAAC,EACjC,OAAO,EACP,IAAS,EACT,KAA8B,EAC9B,KAAK,GACN,EAAE,uBAAuB,+BAUzB"}
1
+ {"version":3,"file":"HeaderSearchButton.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/HeaderSearchButton.tsx"],"names":[],"mappings":"AAIA,UAAU,uBAAuB;IAC/B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,kBAAkB,CAAC,EACjC,OAAO,EACP,IAAS,EACT,KAA8B,EAC9B,KAAK,EACL,kBAA6B,EAC7B,MAAM,GACP,EAAE,uBAAuB,+BAazB"}
@@ -7,7 +7,7 @@ export { getValueType, isPrimitive, isJsonSerializable, isValidJson, getConstruc
7
7
  export { parseValue, formatValue, getTypeColor, truncateText, flattenObject, formatPath, } from "./valueFormatting";
8
8
  export { loadOptionalModule, getCachedOptionalModule } from "./loadOptionalModule";
9
9
  export { setRenderCaptureProvider, getRenderCaptureProvider, type RenderCaptureProvider, type RenderCaptureSummary, type RenderCaptureTopComponent, } from "./renderCaptureRegistry";
10
- export { registerStateSnapshotProvider, getStateSnapshotProviders, getStateSnapshotProvider, subscribeToStateSnapshotProviders, type StateSnapshotProvider, type StateSnapshotProviderStatus, type StateSnapshotCapture, type StateSnapshotRestoreResult, } from "./stateSnapshotRegistry";
10
+ export { registerStateSnapshotProvider, getStateSnapshotProviders, getStateSnapshotProvider, subscribeToStateSnapshotProviders, type StateSnapshotProvider, type StateSnapshotProviderStatus, type StateSnapshotCapture, type StateSnapshotRestoreResult, type StateSnapshotPreview, type StateSnapshotPreviewItem, type StateSnapshotPreviewVerdict, } from "./stateSnapshotRegistry";
11
11
  export { serialize as superJsonSerialize, deserialize as superJsonDeserialize, type SuperJSONResult, } from "./minimalSuperJSON";
12
12
  export { reloadApp, scheduleReloadApp, resolveReloadStrategy, REMOTE_RELOAD_DELAY_MS, type ReloadStrategy, type ResolvedReloadStrategy, } from "./reloadApp";
13
13
  export { Subscribable, type SubscribableListener } from "./subscribable";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,KAAK,eAAe,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EACL,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,OAAO,EACP,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,UAAU,GACX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,GAC/B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,6BAA6B,EAC7B,yBAAyB,EACzB,wBAAwB,EACxB,iCAAiC,EACjC,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAChC,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,GAChC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,SAAS,IAAI,kBAAkB,EAC/B,WAAW,IAAI,oBAAoB,EACnC,KAAK,eAAe,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,KAAK,cAAc,EACnB,KAAK,sBAAsB,GAC5B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EACL,uBAAuB,EACvB,iCAAiC,EACjC,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,aAAa,EACb,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,aAAa,EACb,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,KAAK,eAAe,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EACL,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,OAAO,EACP,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,UAAU,GACX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,GAC/B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,6BAA6B,EAC7B,yBAAyB,EACzB,wBAAwB,EACxB,iCAAiC,EACjC,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAChC,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,EAC/B,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,2BAA2B,GACjC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,SAAS,IAAI,kBAAkB,EAC/B,WAAW,IAAI,oBAAoB,EACnC,KAAK,eAAe,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,KAAK,cAAc,EACnB,KAAK,sBAAsB,GAC5B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EACL,uBAAuB,EACvB,iCAAiC,EACjC,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,aAAa,EACb,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,aAAa,EACb,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"persistentStorage.d.ts","sourceRoot":"","sources":["../../../../src/utils/persistentStorage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA2CH,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7D,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAGD,KAAK,cAAc,GAAG,YAAY,GAAG,cAAc,GAAG,cAAc,GAAG,QAAQ,CAAC;AAgkBhF;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,EAAE,eAmC/B,CAAC;AAEF;;GAEG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,OAAO,CAAC,CAGjE;AAED;;GAEG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,cAAc,CAAC,CAGrE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAIvC"}
1
+ {"version":3,"file":"persistentStorage.d.ts","sourceRoot":"","sources":["../../../../src/utils/persistentStorage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA2CH,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7D,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAGD,KAAK,cAAc,GAAG,YAAY,GAAG,cAAc,GAAG,cAAc,GAAG,QAAQ,CAAC;AAmkBhF;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,EAAE,eAmC/B,CAAC;AAEF;;GAEG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,OAAO,CAAC,CAGjE;AAED;;GAEG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,cAAc,CAAC,CAGrE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAIvC"}
@@ -36,6 +36,30 @@ export interface StateSnapshotRestoreResult {
36
36
  }[];
37
37
  warnings: string[];
38
38
  }
39
+ /**
40
+ * Per-item verdict in a Restore Preview. The critical distinction:
41
+ * "changed" means the restore WILL apply this difference; "wont-apply" means
42
+ * a difference exists (or an item does) that restore can NOT apply, with the
43
+ * reason. A preview that shows raw diffs without this distinction lies.
44
+ */
45
+ export type StateSnapshotPreviewVerdict = "added" | "removed" | "changed" | "unchanged" | "wont-apply" | "recomputes" | "too-large";
46
+ export interface StateSnapshotPreviewItem {
47
+ /** Stable id within the source, e.g. "async:@cart", "mmkv:default/theme". */
48
+ key: string;
49
+ /** Display name (usually the bare key/store/atom/queryKey). */
50
+ label: string;
51
+ verdict: StateSnapshotPreviewVerdict;
52
+ /** Required for wont-apply/recomputes/too-large — shown to the user. */
53
+ reason?: string;
54
+ /** RAW values (UI normalizes via toDiffable at render time). */
55
+ oldValue?: unknown;
56
+ newValue?: unknown;
57
+ }
58
+ export interface StateSnapshotPreview {
59
+ items: StateSnapshotPreviewItem[];
60
+ /** Source-level annotations, e.g. "4 store actions preserved (not diffed)". */
61
+ notes: string[];
62
+ }
39
63
  export interface StateSnapshotProvider {
40
64
  /** Stable source id, e.g. "storage" | "redux" | "zustand" | "jotai" | "query". */
41
65
  id: string;
@@ -44,13 +68,33 @@ export interface StateSnapshotProvider {
44
68
  /** Cheap capability probe — drives UI gating and restore-mode suggestions. */
45
69
  status(): StateSnapshotProviderStatus;
46
70
  capture(): Promise<StateSnapshotCapture>;
47
- restore(data: unknown): Promise<StateSnapshotRestoreResult>;
71
+ /**
72
+ * Apply `data` to live state. Both option lists use preview item keys (the
73
+ * same `key` values previewItems emits), and both mean "leave everything
74
+ * else untouched in BOTH directions" — not written from the snapshot, and
75
+ * not deleted for being absent from it:
76
+ * - `excludeKeys`: items the user opted OUT of (touch all but these).
77
+ * - `includeKeys`: a positive scope (touch ONLY these) — used by scoped
78
+ * restore points. When present it wins; excludeKeys still applies on top.
79
+ */
80
+ restore(data: unknown, options?: {
81
+ excludeKeys?: readonly string[];
82
+ includeKeys?: readonly string[];
83
+ }): Promise<StateSnapshotRestoreResult>;
48
84
  /**
49
85
  * Optional: wipe this source to fresh-install state. Used by the
50
86
  * "restore baseline" flow (typically followed by a JS reload so in-memory
51
87
  * stores rebuild themselves from the wiped persisted state).
52
88
  */
53
89
  clear?(): Promise<StateSnapshotRestoreResult>;
90
+ /**
91
+ * Optional: decompose "what would restoring `target` change?" into
92
+ * item-level verdicts. `base` is another snapshot's data for this source;
93
+ * omitted = compare against LIVE state (the only mode where restore
94
+ * semantics — wont-apply etc. — are meaningful).
95
+ * Providers without it get a whole-source fallback via objectDiff.
96
+ */
97
+ previewItems?(target: unknown, base?: unknown): Promise<StateSnapshotPreview>;
54
98
  }
55
99
  type Listener = () => void;
56
100
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"stateSnapshotRegistry.d.ts","sourceRoot":"","sources":["../../../../src/utils/stateSnapshotRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,2BAA2B;IAC1C,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,0BAA0B;IACzC,8EAA8E;IAC9E,EAAE,EAAE,OAAO,CAAC;IACZ,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1C,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,kFAAkF;IAClF,EAAE,EAAE,MAAM,CAAC;IACX,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,MAAM,IAAI,2BAA2B,CAAC;IACtC,OAAO,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACzC,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAC5D;;;;OAIG;IACH,KAAK,CAAC,IAAI,OAAO,CAAC,0BAA0B,CAAC,CAAC;CAC/C;AAED,KAAK,QAAQ,GAAG,MAAM,IAAI,CAAC;AAe3B;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,qBAAqB,GAC9B,MAAM,IAAI,CASZ;AAED,wBAAgB,yBAAyB,IAAI,qBAAqB,EAAE,CAEnE;AAED,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,MAAM,GACT,qBAAqB,GAAG,IAAI,CAE9B;AAED,0EAA0E;AAC1E,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,QAAQ,GACjB,MAAM,IAAI,CAKZ"}
1
+ {"version":3,"file":"stateSnapshotRegistry.d.ts","sourceRoot":"","sources":["../../../../src/utils/stateSnapshotRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,2BAA2B;IAC1C,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,0BAA0B;IACzC,8EAA8E;IAC9E,EAAE,EAAE,OAAO,CAAC;IACZ,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1C,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,MAAM,2BAA2B,GACnC,OAAO,GACP,SAAS,GACT,SAAS,GACT,WAAW,GACX,YAAY,GACZ,YAAY,GACZ,WAAW,CAAC;AAEhB,MAAM,WAAW,wBAAwB;IACvC,6EAA6E;IAC7E,GAAG,EAAE,MAAM,CAAC;IACZ,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,2BAA2B,CAAC;IACrC,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,wBAAwB,EAAE,CAAC;IAClC,+EAA+E;IAC/E,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,kFAAkF;IAClF,EAAE,EAAE,MAAM,CAAC;IACX,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,MAAM,IAAI,2BAA2B,CAAC;IACtC,OAAO,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACzC;;;;;;;;OAQG;IACH,OAAO,CACL,IAAI,EAAE,OAAO,EACb,OAAO,CAAC,EAAE;QACR,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAChC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;KACjC,GACA,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACvC;;;;OAIG;IACH,KAAK,CAAC,IAAI,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAC9C;;;;;;OAMG;IACH,YAAY,CAAC,CACX,MAAM,EAAE,OAAO,EACf,IAAI,CAAC,EAAE,OAAO,GACb,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAClC;AAED,KAAK,QAAQ,GAAG,MAAM,IAAI,CAAC;AAe3B;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,qBAAqB,GAC9B,MAAM,IAAI,CASZ;AAED,wBAAgB,yBAAyB,IAAI,qBAAqB,EAAE,CAEnE;AAED,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,MAAM,GACT,qBAAqB,GAAG,IAAI,CAE9B;AAED,0EAA0E;AAC1E,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,QAAQ,GACjB,MAAM,IAAI,CAKZ"}
@@ -0,0 +1,28 @@
1
+ import { DiffTheme } from "./diffThemes";
2
+ export type DiffCompareMethod = "chars" | "words" | "lines" | "trimmedLines";
3
+ /** Rendering options (the shape storage's DiffOptionsPanel edits). */
4
+ export interface DiffOptions {
5
+ hideLineNumbers: boolean;
6
+ disableWordDiff: boolean;
7
+ showDiffOnly: boolean;
8
+ compareMethod: DiffCompareMethod;
9
+ contextLines: number;
10
+ lineOffset: number;
11
+ }
12
+ interface ThemedSplitViewProps {
13
+ oldValue: unknown;
14
+ newValue: unknown;
15
+ differences: unknown[];
16
+ theme: DiffTheme;
17
+ options?: DiffOptions;
18
+ showThemeName?: boolean;
19
+ /**
20
+ * Scroll the rows inside their own fixed-height pane (default). Set false to
21
+ * render every row inline at natural height and let an ancestor ScrollView
22
+ * move them — one page-level scroll instead of a nested scroll region.
23
+ */
24
+ scrollEnabled?: boolean;
25
+ }
26
+ export declare function ThemedSplitView({ oldValue, newValue, theme, options, showThemeName, scrollEnabled, }: ThemedSplitViewProps): import("react").JSX.Element;
27
+ export {};
28
+ //# sourceMappingURL=ThemedSplitView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemedSplitView.d.ts","sourceRoot":"","sources":["../../../../src/dataViewer/ThemedSplitView.tsx"],"names":[],"mappings":"AAmCA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,cAAc,CAAC;AAE7E,sEAAsE;AACtE,MAAM,WAAW,WAAW;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,iBAAiB,CAAC;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,EAAE,CAAC;IACvB,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAaD,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,OAAyB,EACzB,aAAqB,EACrB,aAAoB,GACrB,EAAE,oBAAoB,+BAmMtB"}
@@ -21,4 +21,6 @@ export { DiffSummary } from "./DiffSummary";
21
21
  export type { DiffSummaryProps } from "./DiffSummary";
22
22
  export { computeLineDiff, DiffType, ABSENT_VALUE, isAbsent, type LineDiffInfo, type WordDiff, type DiffComputeOptions, } from "./lineDiff";
23
23
  export { diffThemes, gitClassicTheme, devToolsDefaultTheme, type DiffTheme, type DiffThemeKey, } from "./diffThemes";
24
+ export { objectDiff, boundedDeepEqual, toDiffable, jsonLikelyLargerThan, type ObjectDiffOptions, type ObjectDiffResult, } from "./objectDiff";
25
+ export { ThemedSplitView, type DiffOptions, type DiffCompareMethod, } from "./ThemedSplitView";
24
26
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/dataViewer/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C;;;;GAIG;AACH,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAIlE,OAAO,EACL,WAAW,EACX,SAAS,EACT,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,KAAK,MAAM,GACZ,MAAM,WAAW,CAAC;AAInB,OAAO,EACL,cAAc,EACd,aAAa,EACb,UAAU,EACV,SAAS,EACT,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,iBAAiB,GACvB,MAAM,eAAe,CAAC;AAIvB,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,KAAK,sBAAsB,GAC5B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,GAC7B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGtD,OAAO,EACL,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,UAAU,EACV,eAAe,EACf,oBAAoB,EACpB,KAAK,SAAS,EACd,KAAK,YAAY,GAClB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/dataViewer/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C;;;;GAIG;AACH,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAIlE,OAAO,EACL,WAAW,EACX,SAAS,EACT,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,KAAK,MAAM,GACZ,MAAM,WAAW,CAAC;AAInB,OAAO,EACL,cAAc,EACd,aAAa,EACb,UAAU,EACV,SAAS,EACT,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,iBAAiB,GACvB,MAAM,eAAe,CAAC;AAIvB,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,KAAK,sBAAsB,GAC5B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,GAC7B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGtD,OAAO,EACL,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,UAAU,EACV,eAAe,EACf,oBAAoB,EACpB,KAAK,SAAS,EACd,KAAK,YAAY,GAClB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,oBAAoB,EACpB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,GACtB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,eAAe,EACf,KAAK,WAAW,EAChB,KAAK,iBAAiB,GACvB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * objectDiff — the bounded, cycle-safe diff KERNEL the dataViewer never had.
3
+ *
4
+ * Every diff consumer so far either hand-rolled a private summary helper or
5
+ * fed whole values into the render-layer viewers (which compute eagerly, have
6
+ * no cycle guards, and mis-compare rich types — TreeDiffViewer treats two
7
+ * different Dates/Maps/Sets as EQUAL because they have zero own keys).
8
+ *
9
+ * This kernel is for VERDICTS and BADGES, not rendering:
10
+ * - correct equality for Date / RegExp / Map / Set / BigInt / NaN /
11
+ * TypedArray / URL / Error, and `undefined`-value vs absent-key
12
+ * - WeakSet cycle guard (a revisited pair reports unequal-safe truncation,
13
+ * never a stack overflow)
14
+ * - hard depth + node budgets with an explicit `truncated` flag; when the
15
+ * budget runs out a subtree is reported as CHANGED (a false "changed" is
16
+ * recoverable — a false "unchanged" hides a real difference, the worst
17
+ * failure mode for a restore preview)
18
+ *
19
+ * `toDiffable` is the companion RENDER normalizer: it converts rich types to
20
+ * plain-JSON stand-ins so the existing viewers (which only handle plain JSON
21
+ * faithfully) never see a Date/Map/Set/BigInt/cycle at all.
22
+ */
23
+ export interface ObjectDiffOptions {
24
+ /** Recursion cap. @default 8 */
25
+ maxDepth?: number;
26
+ /** Total node-visit budget across the whole comparison. @default 2000 */
27
+ maxNodes?: number;
28
+ }
29
+ export interface ObjectDiffResult {
30
+ equal: boolean;
31
+ /** Top-level keys present only in `newValue`. */
32
+ addedKeys: string[];
33
+ /** Top-level keys present only in `oldValue`. */
34
+ removedKeys: string[];
35
+ /** Top-level keys present in both with different values. */
36
+ changedKeys: string[];
37
+ /**
38
+ * True when a depth/node budget or a cycle stopped the walk — counts are
39
+ * then lower bounds and "changed" verdicts may be conservative.
40
+ */
41
+ truncated: boolean;
42
+ }
43
+ /**
44
+ * Bounded deep equality. Returns false on budget exhaustion (conservative:
45
+ * report changed rather than hide a change) and marks the budget truncated.
46
+ */
47
+ export declare function boundedDeepEqual(a: unknown, b: unknown, options?: ObjectDiffOptions): boolean;
48
+ /**
49
+ * Top-level key diff of two values with bounded deep equality per key.
50
+ * Non-object inputs degrade to a single implicit "value" comparison.
51
+ */
52
+ export declare function objectDiff(oldValue: unknown, newValue: unknown, options?: ObjectDiffOptions): ObjectDiffResult;
53
+ /**
54
+ * Convert a value tree into plain JSON the render-layer diff viewers handle
55
+ * faithfully. Dates → ISO strings, Maps → objects, Sets → arrays,
56
+ * BigInt → "123n", TypedArrays/cycles/depth-overflow → placeholder strings.
57
+ * Functions become "[Function]" (providers have already recorded real ones).
58
+ */
59
+ export declare function toDiffable(value: unknown): unknown;
60
+ /**
61
+ * True when `value`'s JSON form is likely larger than `limitBytes`. Iterative
62
+ * walk that bails the moment the running estimate crosses the limit, so cost
63
+ * is O(limit) regardless of payload size (the redux store's `jsonLongerThan`
64
+ * lesson: a full stringify per check froze enterprise-scale apps).
65
+ */
66
+ export declare function jsonLikelyLargerThan(value: unknown, limitBytes: number): boolean;
67
+ //# sourceMappingURL=objectDiff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objectDiff.d.ts","sourceRoot":"","sources":["../../../../src/dataViewer/objectDiff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,WAAW,iBAAiB;IAChC,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,iDAAiD;IACjD,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,iDAAiD;IACjD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,4DAA4D;IAC5D,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAC;CACpB;AAiBD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,CAAC,EAAE,OAAO,EACV,CAAC,EAAE,OAAO,EACV,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAMT;AA8HD;;;GAGG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,OAAO,EACjB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,gBAAgB,CAiDlB;AAQD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAElD;AA0DD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,EACd,UAAU,EAAE,MAAM,GACjB,OAAO,CA4CT"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Auto-generated safe area implementation
3
3
  * Detected: none
4
- * Generated at: 2026-08-07T14:32:36.664Z
4
+ * Generated at: 2026-08-14T03:24:05.937Z
5
5
  *
6
6
  * DO NOT EDIT - This file is generated by scripts/detect-safe-area.js
7
7
  *
@@ -1,6 +1,7 @@
1
1
  export * from "./ui";
2
2
  export * from "./stores";
3
- export { absoluteFill, displayValue, parseDisplayValue, getSafeAreaInsets, persistentStorage, isUsingPersistentStorage, getStorageBackendType, safeStringify, getValueType, isPrimitive, isJsonSerializable, isValidJson, getConstructorName, isEmpty, getValueSize, parseValue, formatValue, getTypeColor, truncateText, flattenObject, formatPath, loadOptionalModule, getCachedOptionalModule, setRenderCaptureProvider, getRenderCaptureProvider, type RenderCaptureProvider, type RenderCaptureSummary, type RenderCaptureTopComponent, registerStateSnapshotProvider, getStateSnapshotProviders, getStateSnapshotProvider, subscribeToStateSnapshotProviders, type StateSnapshotProvider, type StateSnapshotProviderStatus, type StateSnapshotCapture, type StateSnapshotRestoreResult, superJsonSerialize, superJsonDeserialize, type SuperJSONResult, reloadApp, scheduleReloadApp, resolveReloadStrategy, REMOTE_RELOAD_DELAY_MS, type ReloadStrategy, type ResolvedReloadStrategy, Subscribable, type SubscribableListener, subscriberCountNotifier, subscribeToSubscriberCountChanges, notifySubscriberCountChange, useSafeRouter, useSafePathname, useSafeSegments, useSafeGlobalSearchParams, getSafeRouter, getSafeCurrentPathname, isExpoRouterAvailable, } from "./utils";
3
+ export * from "./sync/wireBudget";
4
+ export { absoluteFill, displayValue, parseDisplayValue, getSafeAreaInsets, persistentStorage, isUsingPersistentStorage, getStorageBackendType, safeStringify, getValueType, isPrimitive, isJsonSerializable, isValidJson, getConstructorName, isEmpty, getValueSize, parseValue, formatValue, getTypeColor, truncateText, flattenObject, formatPath, loadOptionalModule, getCachedOptionalModule, setRenderCaptureProvider, getRenderCaptureProvider, type RenderCaptureProvider, type RenderCaptureSummary, type RenderCaptureTopComponent, registerStateSnapshotProvider, getStateSnapshotProviders, getStateSnapshotProvider, subscribeToStateSnapshotProviders, type StateSnapshotProvider, type StateSnapshotProviderStatus, type StateSnapshotCapture, type StateSnapshotRestoreResult, type StateSnapshotPreview, type StateSnapshotPreviewItem, type StateSnapshotPreviewVerdict, superJsonSerialize, superJsonDeserialize, type SuperJSONResult, reloadApp, scheduleReloadApp, resolveReloadStrategy, REMOTE_RELOAD_DELAY_MS, type ReloadStrategy, type ResolvedReloadStrategy, Subscribable, type SubscribableListener, subscriberCountNotifier, subscribeToSubscriberCountChanges, notifySubscriberCountChange, useSafeRouter, useSafePathname, useSafeSegments, useSafeGlobalSearchParams, getSafeRouter, getSafeCurrentPathname, isExpoRouterAvailable, } from "./utils";
4
5
  export * from "./utils/formatting";
5
6
  export * from "./utils/time";
6
7
  export { isPlainObject as isPlainObjectUtil } from "./utils/typeHelpers";
@@ -9,7 +10,7 @@ export * from "./clipboard";
9
10
  export * from "./logger";
10
11
  export * from "./settings";
11
12
  export * from "./storage";
12
- export { useSafeAreaInsets, useFilterManager, useDeviceInfo, getDeviceInfo, logDeviceInfo, type DeviceInfo, type PlatformInfo, type DisplayInfo, type AccessibilitySettings, type AppearanceInfo, type LocaleInfo, type StatusBarInfo, type KeyboardInfo, type AppStateInfo, type UniqueIdentifiers, type SettingsInfo, } from "./hooks";
13
+ export { useSafeAreaInsets, useFilterManager, usePersistedState, useDeviceInfo, getDeviceInfo, logDeviceInfo, type DeviceInfo, type PlatformInfo, type DisplayInfo, type AccessibilitySettings, type AppearanceInfo, type LocaleInfo, type StatusBarInfo, type KeyboardInfo, type AppStateInfo, type UniqueIdentifiers, type SettingsInfo, } from "./hooks";
13
14
  export { JsModal } from "./JsModal";
14
15
  export type { ModalMode, ModalState } from "./JsModal";
15
16
  export { gameUIColors, buoyColors } from "./ui/gameUI/constants/gameUIColors";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
@@ -114,6 +114,15 @@ export declare const devToolsStorageKeys: {
114
114
  readonly isMonitoring: () => "@react_buoy_storage_is_monitoring";
115
115
  readonly diffViewerMode: () => "@react_buoy_storage_diff_viewer_mode";
116
116
  };
117
+ /**
118
+ * Time Machine storage keys. NOTE: the snapshot VAULT keys
119
+ * (`@react_buoy_time_machine:index` / `:snap:*`) predate this namespace and
120
+ * stay as-is — only preferences live here.
121
+ */
122
+ readonly timeMachine: {
123
+ readonly root: () => "@react_buoy_time_machine";
124
+ readonly diffViewerMode: () => "@react_buoy_time_machine_diff_viewer_mode";
125
+ };
117
126
  /**
118
127
  * React Query-related storage keys
119
128
  */
@@ -1 +1 @@
1
- {"version":3,"file":"devToolsStorageKeys.d.ts","sourceRoot":"","sources":["../../../../src/storage/devToolsStorageKeys.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB;IAC9B;;OAEG;;IAGH;;OAEG;;;;;;;IASH;;OAEG;;;;;;;;IAUH;;;;;;;;;;OAUG;8BACc,MAAM;;QAInB,kEAAkE;;;QAGlE,iCAAiC;sBACnB,MAAM;;IAIxB;;OAEG;;;;;;QAQD,kDAAkD;;QAElD,gCAAgC;;QAGhC,gCAAgC;;;IAKlC;;OAEG;;;QAGD,mCAAmC;;QAEnC,qEAAqE;;;IAIvE;;OAEG;;;;;IAOH;;OAEG;;;;;;;IAQH;;OAEG;;;;;;;IASH;;OAEG;;;;;;;;;;;;;;IAuBH;;OAEG;;;;;;;;;;;IAiBH;;OAEG;;;;;;;;;;QAcD;;;WAGG;;QAEH;;;;;WAKG;;;IAIL;;OAEG;;;;;;;;;;IAgBH;;OAEG;;;;;;;QAUD,2BAA2B;;;IAK7B;;OAEG;;;;;;;;;IAcH;;OAEG;;;;QAID,oCAAoC;;QAGpC,wCAAwC;;QAGxC,2BAA2B;;;CAIrB,CAAC;AAwBX;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CA0BzD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAE9D;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,EAAE,CAsBpD"}
1
+ {"version":3,"file":"devToolsStorageKeys.d.ts","sourceRoot":"","sources":["../../../../src/storage/devToolsStorageKeys.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB;IAC9B;;OAEG;;IAGH;;OAEG;;;;;;;IASH;;OAEG;;;;;;;;IAUH;;;;;;;;;;OAUG;8BACc,MAAM;;QAInB,kEAAkE;;;QAGlE,iCAAiC;sBACnB,MAAM;;IAIxB;;OAEG;;;;;;QAQD,kDAAkD;;QAElD,gCAAgC;;QAGhC,gCAAgC;;;IAKlC;;OAEG;;;QAGD,mCAAmC;;QAEnC,qEAAqE;;;IAIvE;;OAEG;;;;;IAOH;;OAEG;;;;;;;IAQH;;OAEG;;;;;;;IASH;;OAEG;;;;;;;;;;;;;;IAuBH;;;;OAIG;;;;;IAOH;;OAEG;;;;;;;;;;;IAiBH;;OAEG;;;;;;;;;;QAcD;;;WAGG;;QAEH;;;;;WAKG;;;IAIL;;OAEG;;;;;;;;;;IAgBH;;OAEG;;;;;;;QAUD,2BAA2B;;;IAK7B;;OAEG;;;;;;;;;IAcH;;OAEG;;;;QAID,oCAAoC;;QAGpC,wCAAwC;;QAGxC,2BAA2B;;;CAIrB,CAAC;AAwBX;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CA0BzD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAE9D;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,EAAE,CAsBpD"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Size guards for anything a tool puts on the sync wire.
3
+ *
4
+ * Every adapter faces the same problem: a snapshot is rebuilt and serialized
5
+ * on the device's JS thread ~5x/sec while a dashboard watches, and one fat or
6
+ * unserializable field can either freeze that thread or blow the emit layer's
7
+ * budget — which drops the WHOLE snapshot and leaves the panel stale.
8
+ *
9
+ * Two rules make that safe, and both are easy to get subtly wrong, which is
10
+ * why they live here instead of being copied per adapter:
11
+ *
12
+ * 1. NEVER measure by serializing. `JSON.stringify(value).length` is
13
+ * O(payload) and allocates the whole string — an unbounded cost to
14
+ * enforce a 16KB cap, i.e. the protection becomes the freeze. Walk with
15
+ * an early abort instead: the cost is O(limit) no matter how big the
16
+ * value, and a string costs a length read rather than a scan.
17
+ *
18
+ * 2. Only reach for `JSON.stringify` when the walk saw something that could
19
+ * actually make it throw. A value straight out of `JSON.parse` — which is
20
+ * what a network body or a stored string is — is a finite tree of plain
21
+ * values and can never throw, so the check is pure waste on the common
22
+ * path.
23
+ */
24
+ export interface SizeWalk {
25
+ /** Bytes counted before the walk finished or passed `limit`. */
26
+ bytes: number;
27
+ /**
28
+ * An object/array was reached by more than one path. A cycle always causes
29
+ * this, so `false` PROVES the value is a tree and therefore cycle-free.
30
+ * (`true` does not prove a cycle — plain structural sharing sets it too.)
31
+ */
32
+ sawRepeat: boolean;
33
+ /** A bigint was reached. `JSON.stringify` THROWS on those, unlike functions. */
34
+ sawBigInt: boolean;
35
+ }
36
+ /**
37
+ * Approximate JSON size, aborting as soon as `limit` is passed — O(limit),
38
+ * never O(payload). Returns the bytes counted so far, so one walk can both
39
+ * threshold ("over the per-field cap?") and accumulate ("how much of the
40
+ * snapshot budget is left?").
41
+ */
42
+ export declare function approxJsonSize(value: unknown, limit: number): SizeWalk;
43
+ /**
44
+ * Should this value be withheld from the wire — too big, or unserializable?
45
+ *
46
+ * The ordering is the point: measure with the early-abort walk, and only pay
47
+ * for `JSON.stringify` when the walk found a reason it might throw.
48
+ */
49
+ export declare function isOverWireBudget(value: unknown, limit: number): boolean;
50
+ //# sourceMappingURL=wireBudget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wireBudget.d.ts","sourceRoot":"","sources":["../../../../src/sync/wireBudget.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,MAAM,WAAW,QAAQ;IACvB,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB,gFAAgF;IAChF,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,CAmCtE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAUvE"}
@@ -3,7 +3,9 @@ interface HeaderSearchButtonProps {
3
3
  size?: number;
4
4
  color?: string;
5
5
  style?: any;
6
+ accessibilityLabel?: string;
7
+ testID?: string;
6
8
  }
7
- export declare function HeaderSearchButton({ onPress, size, color, style, }: HeaderSearchButtonProps): import("react").JSX.Element;
9
+ export declare function HeaderSearchButton({ onPress, size, color, style, accessibilityLabel, testID, }: HeaderSearchButtonProps): import("react").JSX.Element;
8
10
  export {};
9
11
  //# sourceMappingURL=HeaderSearchButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HeaderSearchButton.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/HeaderSearchButton.tsx"],"names":[],"mappings":"AAIA,UAAU,uBAAuB;IAC/B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,GAAG,CAAC;CACb;AAED,wBAAgB,kBAAkB,CAAC,EACjC,OAAO,EACP,IAAS,EACT,KAA8B,EAC9B,KAAK,GACN,EAAE,uBAAuB,+BAUzB"}
1
+ {"version":3,"file":"HeaderSearchButton.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/HeaderSearchButton.tsx"],"names":[],"mappings":"AAIA,UAAU,uBAAuB;IAC/B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,kBAAkB,CAAC,EACjC,OAAO,EACP,IAAS,EACT,KAA8B,EAC9B,KAAK,EACL,kBAA6B,EAC7B,MAAM,GACP,EAAE,uBAAuB,+BAazB"}
@@ -7,7 +7,7 @@ export { getValueType, isPrimitive, isJsonSerializable, isValidJson, getConstruc
7
7
  export { parseValue, formatValue, getTypeColor, truncateText, flattenObject, formatPath, } from "./valueFormatting";
8
8
  export { loadOptionalModule, getCachedOptionalModule } from "./loadOptionalModule";
9
9
  export { setRenderCaptureProvider, getRenderCaptureProvider, type RenderCaptureProvider, type RenderCaptureSummary, type RenderCaptureTopComponent, } from "./renderCaptureRegistry";
10
- export { registerStateSnapshotProvider, getStateSnapshotProviders, getStateSnapshotProvider, subscribeToStateSnapshotProviders, type StateSnapshotProvider, type StateSnapshotProviderStatus, type StateSnapshotCapture, type StateSnapshotRestoreResult, } from "./stateSnapshotRegistry";
10
+ export { registerStateSnapshotProvider, getStateSnapshotProviders, getStateSnapshotProvider, subscribeToStateSnapshotProviders, type StateSnapshotProvider, type StateSnapshotProviderStatus, type StateSnapshotCapture, type StateSnapshotRestoreResult, type StateSnapshotPreview, type StateSnapshotPreviewItem, type StateSnapshotPreviewVerdict, } from "./stateSnapshotRegistry";
11
11
  export { serialize as superJsonSerialize, deserialize as superJsonDeserialize, type SuperJSONResult, } from "./minimalSuperJSON";
12
12
  export { reloadApp, scheduleReloadApp, resolveReloadStrategy, REMOTE_RELOAD_DELAY_MS, type ReloadStrategy, type ResolvedReloadStrategy, } from "./reloadApp";
13
13
  export { Subscribable, type SubscribableListener } from "./subscribable";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,KAAK,eAAe,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EACL,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,OAAO,EACP,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,UAAU,GACX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,GAC/B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,6BAA6B,EAC7B,yBAAyB,EACzB,wBAAwB,EACxB,iCAAiC,EACjC,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAChC,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,GAChC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,SAAS,IAAI,kBAAkB,EAC/B,WAAW,IAAI,oBAAoB,EACnC,KAAK,eAAe,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,KAAK,cAAc,EACnB,KAAK,sBAAsB,GAC5B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EACL,uBAAuB,EACvB,iCAAiC,EACjC,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,aAAa,EACb,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,aAAa,EACb,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,KAAK,eAAe,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EACL,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,OAAO,EACP,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,UAAU,GACX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,GAC/B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,6BAA6B,EAC7B,yBAAyB,EACzB,wBAAwB,EACxB,iCAAiC,EACjC,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAChC,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,EAC/B,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,2BAA2B,GACjC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,SAAS,IAAI,kBAAkB,EAC/B,WAAW,IAAI,oBAAoB,EACnC,KAAK,eAAe,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,KAAK,cAAc,EACnB,KAAK,sBAAsB,GAC5B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EACL,uBAAuB,EACvB,iCAAiC,EACjC,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,aAAa,EACb,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,aAAa,EACb,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"persistentStorage.d.ts","sourceRoot":"","sources":["../../../../src/utils/persistentStorage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA2CH,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7D,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAGD,KAAK,cAAc,GAAG,YAAY,GAAG,cAAc,GAAG,cAAc,GAAG,QAAQ,CAAC;AAgkBhF;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,EAAE,eAmC/B,CAAC;AAEF;;GAEG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,OAAO,CAAC,CAGjE;AAED;;GAEG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,cAAc,CAAC,CAGrE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAIvC"}
1
+ {"version":3,"file":"persistentStorage.d.ts","sourceRoot":"","sources":["../../../../src/utils/persistentStorage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA2CH,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7D,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAGD,KAAK,cAAc,GAAG,YAAY,GAAG,cAAc,GAAG,cAAc,GAAG,QAAQ,CAAC;AAmkBhF;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,EAAE,eAmC/B,CAAC;AAEF;;GAEG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,OAAO,CAAC,CAGjE;AAED;;GAEG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,cAAc,CAAC,CAGrE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAIvC"}
@@ -36,6 +36,30 @@ export interface StateSnapshotRestoreResult {
36
36
  }[];
37
37
  warnings: string[];
38
38
  }
39
+ /**
40
+ * Per-item verdict in a Restore Preview. The critical distinction:
41
+ * "changed" means the restore WILL apply this difference; "wont-apply" means
42
+ * a difference exists (or an item does) that restore can NOT apply, with the
43
+ * reason. A preview that shows raw diffs without this distinction lies.
44
+ */
45
+ export type StateSnapshotPreviewVerdict = "added" | "removed" | "changed" | "unchanged" | "wont-apply" | "recomputes" | "too-large";
46
+ export interface StateSnapshotPreviewItem {
47
+ /** Stable id within the source, e.g. "async:@cart", "mmkv:default/theme". */
48
+ key: string;
49
+ /** Display name (usually the bare key/store/atom/queryKey). */
50
+ label: string;
51
+ verdict: StateSnapshotPreviewVerdict;
52
+ /** Required for wont-apply/recomputes/too-large — shown to the user. */
53
+ reason?: string;
54
+ /** RAW values (UI normalizes via toDiffable at render time). */
55
+ oldValue?: unknown;
56
+ newValue?: unknown;
57
+ }
58
+ export interface StateSnapshotPreview {
59
+ items: StateSnapshotPreviewItem[];
60
+ /** Source-level annotations, e.g. "4 store actions preserved (not diffed)". */
61
+ notes: string[];
62
+ }
39
63
  export interface StateSnapshotProvider {
40
64
  /** Stable source id, e.g. "storage" | "redux" | "zustand" | "jotai" | "query". */
41
65
  id: string;
@@ -44,13 +68,33 @@ export interface StateSnapshotProvider {
44
68
  /** Cheap capability probe — drives UI gating and restore-mode suggestions. */
45
69
  status(): StateSnapshotProviderStatus;
46
70
  capture(): Promise<StateSnapshotCapture>;
47
- restore(data: unknown): Promise<StateSnapshotRestoreResult>;
71
+ /**
72
+ * Apply `data` to live state. Both option lists use preview item keys (the
73
+ * same `key` values previewItems emits), and both mean "leave everything
74
+ * else untouched in BOTH directions" — not written from the snapshot, and
75
+ * not deleted for being absent from it:
76
+ * - `excludeKeys`: items the user opted OUT of (touch all but these).
77
+ * - `includeKeys`: a positive scope (touch ONLY these) — used by scoped
78
+ * restore points. When present it wins; excludeKeys still applies on top.
79
+ */
80
+ restore(data: unknown, options?: {
81
+ excludeKeys?: readonly string[];
82
+ includeKeys?: readonly string[];
83
+ }): Promise<StateSnapshotRestoreResult>;
48
84
  /**
49
85
  * Optional: wipe this source to fresh-install state. Used by the
50
86
  * "restore baseline" flow (typically followed by a JS reload so in-memory
51
87
  * stores rebuild themselves from the wiped persisted state).
52
88
  */
53
89
  clear?(): Promise<StateSnapshotRestoreResult>;
90
+ /**
91
+ * Optional: decompose "what would restoring `target` change?" into
92
+ * item-level verdicts. `base` is another snapshot's data for this source;
93
+ * omitted = compare against LIVE state (the only mode where restore
94
+ * semantics — wont-apply etc. — are meaningful).
95
+ * Providers without it get a whole-source fallback via objectDiff.
96
+ */
97
+ previewItems?(target: unknown, base?: unknown): Promise<StateSnapshotPreview>;
54
98
  }
55
99
  type Listener = () => void;
56
100
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"stateSnapshotRegistry.d.ts","sourceRoot":"","sources":["../../../../src/utils/stateSnapshotRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,2BAA2B;IAC1C,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,0BAA0B;IACzC,8EAA8E;IAC9E,EAAE,EAAE,OAAO,CAAC;IACZ,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1C,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,kFAAkF;IAClF,EAAE,EAAE,MAAM,CAAC;IACX,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,MAAM,IAAI,2BAA2B,CAAC;IACtC,OAAO,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACzC,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAC5D;;;;OAIG;IACH,KAAK,CAAC,IAAI,OAAO,CAAC,0BAA0B,CAAC,CAAC;CAC/C;AAED,KAAK,QAAQ,GAAG,MAAM,IAAI,CAAC;AAe3B;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,qBAAqB,GAC9B,MAAM,IAAI,CASZ;AAED,wBAAgB,yBAAyB,IAAI,qBAAqB,EAAE,CAEnE;AAED,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,MAAM,GACT,qBAAqB,GAAG,IAAI,CAE9B;AAED,0EAA0E;AAC1E,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,QAAQ,GACjB,MAAM,IAAI,CAKZ"}
1
+ {"version":3,"file":"stateSnapshotRegistry.d.ts","sourceRoot":"","sources":["../../../../src/utils/stateSnapshotRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,2BAA2B;IAC1C,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,0BAA0B;IACzC,8EAA8E;IAC9E,EAAE,EAAE,OAAO,CAAC;IACZ,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1C,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,MAAM,2BAA2B,GACnC,OAAO,GACP,SAAS,GACT,SAAS,GACT,WAAW,GACX,YAAY,GACZ,YAAY,GACZ,WAAW,CAAC;AAEhB,MAAM,WAAW,wBAAwB;IACvC,6EAA6E;IAC7E,GAAG,EAAE,MAAM,CAAC;IACZ,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,2BAA2B,CAAC;IACrC,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,wBAAwB,EAAE,CAAC;IAClC,+EAA+E;IAC/E,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,kFAAkF;IAClF,EAAE,EAAE,MAAM,CAAC;IACX,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,MAAM,IAAI,2BAA2B,CAAC;IACtC,OAAO,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACzC;;;;;;;;OAQG;IACH,OAAO,CACL,IAAI,EAAE,OAAO,EACb,OAAO,CAAC,EAAE;QACR,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAChC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;KACjC,GACA,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACvC;;;;OAIG;IACH,KAAK,CAAC,IAAI,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAC9C;;;;;;OAMG;IACH,YAAY,CAAC,CACX,MAAM,EAAE,OAAO,EACf,IAAI,CAAC,EAAE,OAAO,GACb,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAClC;AAED,KAAK,QAAQ,GAAG,MAAM,IAAI,CAAC;AAe3B;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,qBAAqB,GAC9B,MAAM,IAAI,CASZ;AAED,wBAAgB,yBAAyB,IAAI,qBAAqB,EAAE,CAEnE;AAED,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,MAAM,GACT,qBAAqB,GAAG,IAAI,CAE9B;AAED,0EAA0E;AAC1E,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,QAAQ,GACjB,MAAM,IAAI,CAKZ"}