@buoy-gg/storage 7.0.28 → 7.0.29

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 (54) hide show
  1. package/lib/commonjs/storage/components/GameUIStorageBrowser.js +51 -1
  2. package/lib/commonjs/storage/components/SelectionActionBar.js +10 -0
  3. package/lib/commonjs/storage/components/StorageActionButtons.js +16 -0
  4. package/lib/commonjs/storage/components/StorageEventActionButton.js +1 -0
  5. package/lib/commonjs/storage/components/StorageEventCard.js +5 -2
  6. package/lib/commonjs/storage/components/StorageEventFilterView.js +18 -0
  7. package/lib/commonjs/storage/components/StorageFilterCards.js +9 -0
  8. package/lib/commonjs/storage/components/StorageKeyEditorScreen.js +26 -5
  9. package/lib/commonjs/storage/components/StorageKeyRow.js +48 -1
  10. package/lib/commonjs/storage/components/StorageKeySection.js +23 -7
  11. package/lib/commonjs/storage/components/StorageModalWithTabs.js +26 -7
  12. package/lib/commonjs/storage/components/StorageScalarKeyEditor.js +16 -1
  13. package/lib/commonjs/storage/components/StorageTypeFilterBar.js +2 -0
  14. package/lib/commonjs/storage/components/StorageValueEditModal.js +18 -2
  15. package/lib/commonjs/storage/hooks/useTreeDraft.js +12 -1
  16. package/lib/commonjs/storage/utils/deleteStorageKeys.js +34 -5
  17. package/lib/module/storage/components/GameUIStorageBrowser.js +51 -1
  18. package/lib/module/storage/components/SelectionActionBar.js +10 -0
  19. package/lib/module/storage/components/StorageActionButtons.js +16 -0
  20. package/lib/module/storage/components/StorageEventActionButton.js +1 -0
  21. package/lib/module/storage/components/StorageEventCard.js +5 -2
  22. package/lib/module/storage/components/StorageEventFilterView.js +18 -0
  23. package/lib/module/storage/components/StorageFilterCards.js +9 -0
  24. package/lib/module/storage/components/StorageKeyEditorScreen.js +27 -6
  25. package/lib/module/storage/components/StorageKeyRow.js +49 -2
  26. package/lib/module/storage/components/StorageKeySection.js +23 -7
  27. package/lib/module/storage/components/StorageModalWithTabs.js +26 -7
  28. package/lib/module/storage/components/StorageScalarKeyEditor.js +16 -1
  29. package/lib/module/storage/components/StorageTypeFilterBar.js +2 -0
  30. package/lib/module/storage/components/StorageValueEditModal.js +18 -2
  31. package/lib/module/storage/hooks/useTreeDraft.js +12 -1
  32. package/lib/module/storage/utils/deleteStorageKeys.js +34 -5
  33. package/lib/typescript/storage/components/GameUIStorageBrowser.d.ts.map +1 -1
  34. package/lib/typescript/storage/components/SelectionActionBar.d.ts.map +1 -1
  35. package/lib/typescript/storage/components/StorageActionButtons.d.ts.map +1 -1
  36. package/lib/typescript/storage/components/StorageEventActionButton.d.ts.map +1 -1
  37. package/lib/typescript/storage/components/StorageEventCard.d.ts +5 -0
  38. package/lib/typescript/storage/components/StorageEventCard.d.ts.map +1 -1
  39. package/lib/typescript/storage/components/StorageEventFilterView.d.ts.map +1 -1
  40. package/lib/typescript/storage/components/StorageFilterCards.d.ts.map +1 -1
  41. package/lib/typescript/storage/components/StorageKeyEditorScreen.d.ts.map +1 -1
  42. package/lib/typescript/storage/components/StorageKeyRow.d.ts +9 -0
  43. package/lib/typescript/storage/components/StorageKeyRow.d.ts.map +1 -1
  44. package/lib/typescript/storage/components/StorageKeySection.d.ts +3 -1
  45. package/lib/typescript/storage/components/StorageKeySection.d.ts.map +1 -1
  46. package/lib/typescript/storage/components/StorageModalWithTabs.d.ts.map +1 -1
  47. package/lib/typescript/storage/components/StorageScalarKeyEditor.d.ts.map +1 -1
  48. package/lib/typescript/storage/components/StorageTypeFilterBar.d.ts.map +1 -1
  49. package/lib/typescript/storage/components/StorageValueEditModal.d.ts.map +1 -1
  50. package/lib/typescript/storage/hooks/useTreeDraft.d.ts +9 -1
  51. package/lib/typescript/storage/hooks/useTreeDraft.d.ts.map +1 -1
  52. package/lib/typescript/storage/utils/deleteStorageKeys.d.ts +15 -5
  53. package/lib/typescript/storage/utils/deleteStorageKeys.d.ts.map +1 -1
  54. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"StorageValueEditModal.d.ts","sourceRoot":"","sources":["../../../../src/storage/components/StorageValueEditModal.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAcH,UAAU,0BAA0B;IAClC,gFAAgF;IAChF,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAChC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAkCD,wBAAgB,qBAAqB,CAAC,EACpC,IAAI,EACJ,KAAK,EACL,MAAM,EACN,QAAQ,EACR,SAAkB,EAClB,IAAY,GACb,EAAE,0BAA0B,+BAwG5B"}
1
+ {"version":3,"file":"StorageValueEditModal.d.ts","sourceRoot":"","sources":["../../../../src/storage/components/StorageValueEditModal.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAcH,UAAU,0BAA0B;IAClC,gFAAgF;IAChF,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAChC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAkCD,wBAAgB,qBAAqB,CAAC,EACpC,IAAI,EACJ,KAAK,EACL,MAAM,EACN,QAAQ,EACR,SAAkB,EAClB,IAAY,GACb,EAAE,0BAA0B,+BA2H5B"}
@@ -56,7 +56,15 @@ export interface TreeDraft {
56
56
  * never written and show the user nothing.
57
57
  */
58
58
  commit: () => Promise<boolean>;
59
- /** Throw the draft away and leave edit mode. */
59
+ /**
60
+ * Throw the draft away — back to the value as stored, still editing.
61
+ *
62
+ * Deliberately NOT "leave edit mode": Discard sits next to Save in the
63
+ * commit row and leaves you on the editor. Dropping out of edit mode there
64
+ * left a screen that looked fine and silently swallowed every subsequent
65
+ * edit — `value` fell back to the live value, `isDirty` was pinned false,
66
+ * and Save never came back, because nothing re-enters edit mode after mount.
67
+ */
60
68
  discard: () => void;
61
69
  }
62
70
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"useTreeDraft.d.ts","sourceRoot":"","sources":["../../../../src/storage/hooks/useTreeDraft.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,EAAqC,KAAK,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAE/F,MAAM,WAAW,SAAS;IACxB,2CAA2C;IAC3C,SAAS,EAAE,OAAO,CAAC;IACnB,kFAAkF;IAClF,KAAK,EAAE,OAAO,CAAC;IACf,sDAAsD;IACtD,OAAO,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,QAAQ,EAAE,OAAO,CAAC;IAClB,iDAAiD;IACjD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,kEAAkE;IAClE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC;IAExC,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,qDAAqD;IACrD,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B;;;;;OAKG;IACH,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACnC;;;;;;;;OAQG;IACH,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,gDAAgD;IAChD,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,OAAO,EAClB,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GACpC,SAAS,CA4EX"}
1
+ {"version":3,"file":"useTreeDraft.d.ts","sourceRoot":"","sources":["../../../../src/storage/hooks/useTreeDraft.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,EAAqC,KAAK,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAE/F,MAAM,WAAW,SAAS;IACxB,2CAA2C;IAC3C,SAAS,EAAE,OAAO,CAAC;IACnB,kFAAkF;IAClF,KAAK,EAAE,OAAO,CAAC;IACf,sDAAsD;IACtD,OAAO,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,QAAQ,EAAE,OAAO,CAAC;IAClB,iDAAiD;IACjD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,kEAAkE;IAClE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC;IAExC,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,qDAAqD;IACrD,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B;;;;;OAKG;IACH,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACnC;;;;;;;;OAQG;IACH,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B;;;;;;;;OAQG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,OAAO,EAClB,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GACpC,SAAS,CAsFX"}
@@ -3,10 +3,15 @@
3
3
  *
4
4
  * Each backend removes keys differently — AsyncStorage takes a batch,
5
5
  * SecureStore has to go through the registry (only it knows each key's
6
- * `keychainService` options), and MMKV deletes per registered instance. Two call
7
- * sites need this (the selection action bar and a single row's "Delete key"),
8
- * and a second copy of that fan-out is exactly how one backend quietly stops
9
- * being cleaned up.
6
+ * `keychainService` options), and MMKV deletes per registered instance. A
7
+ * second copy of that fan-out is exactly how one backend quietly stops being
8
+ * cleaned up — which is not hypothetical: the MMKV branch called a method
9
+ * react-native-mmkv v4 had renamed, and deleting an MMKV key silently did
10
+ * nothing until an e2e test deleted from all three backends at once.
11
+ *
12
+ * One call site today: the selection action bar. Deleting is deliberately not
13
+ * an affordance on the row itself — see `StorageKeyRow`, whose expanded card
14
+ * carries three actions and only one of them changes anything.
10
15
  *
11
16
  * Pro gating and confirmation are deliberately NOT here: they belong to the UI
12
17
  * that has the user's attention. This function assumes the caller already asked.
@@ -14,8 +19,13 @@
14
19
  import type { StorageKeyInfo } from "../types";
15
20
  export interface MMKVInstanceRef {
16
21
  id: string;
22
+ /**
23
+ * Either spelling of "remove this key". react-native-mmkv v4 renamed
24
+ * `delete` to `remove`, and Buoy supports both — see `removeMMKVKey`.
25
+ */
17
26
  instance: {
18
- delete: (key: string) => void;
27
+ remove?: (key: string) => unknown;
28
+ delete?: (key: string) => unknown;
19
29
  };
20
30
  }
21
31
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"deleteStorageKeys.d.ts","sourceRoot":"","sources":["../../../../src/storage/utils/deleteStorageKeys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAI/C,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE;QAAE,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAC;CAC7C;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,cAAc,EAAE,EACtB,aAAa,EAAE,eAAe,EAAE,GAC/B,OAAO,CAAC,IAAI,CAAC,CA8Bf"}
1
+ {"version":3,"file":"deleteStorageKeys.d.ts","sourceRoot":"","sources":["../../../../src/storage/utils/deleteStorageKeys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAI/C,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX;;;OAGG;IACH,QAAQ,EAAE;QACR,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;QAClC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;KACnC,CAAC;CACH;AA6BD;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,cAAc,EAAE,EACtB,aAAa,EAAE,eAAe,EAAE,GAC/B,OAAO,CAAC,IAAI,CAAC,CA8Bf"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@buoy-gg/storage",
3
- "version": "7.0.28",
3
+ "version": "7.0.29",
4
4
  "description": "Browse & edit AsyncStorage, MMKV & SecureStore inside your React Native app, with change history. Part of Buoy devtools.",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -29,11 +29,11 @@
29
29
  "**/snapshotProvider.ts"
30
30
  ],
31
31
  "dependencies": {
32
- "@buoy-gg/floating-tools-core": "^7.0.28",
33
- "@buoy-gg/shared-ui": "^7.0.28"
32
+ "@buoy-gg/floating-tools-core": "^7.0.29",
33
+ "@buoy-gg/shared-ui": "^7.0.29"
34
34
  },
35
35
  "peerDependencies": {
36
- "@buoy-gg/license": "7.0.28",
36
+ "@buoy-gg/license": "7.0.29",
37
37
  "@react-native-async-storage/async-storage": "^2.0.0 || ^3.1.0",
38
38
  "react": "*",
39
39
  "react-native": "*"
@@ -43,7 +43,7 @@
43
43
  "@types/react": "^19.1.0",
44
44
  "@types/react-native": "^0.73.0",
45
45
  "typescript": "~5.8.3",
46
- "@buoy-gg/license": "^7.0.28"
46
+ "@buoy-gg/license": "^7.0.29"
47
47
  },
48
48
  "react-native-builder-bob": {
49
49
  "source": "src",