nusm 0.1.0 → 1.1.0

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 (98) hide show
  1. package/README.md +66 -7
  2. package/dist/adapters/indexDbAdapter.d.ts.map +1 -1
  3. package/dist/adapters/localStorageAdapter.d.ts.map +1 -1
  4. package/dist/adapters/sessionStorageAdapter.d.ts.map +1 -1
  5. package/dist/adapters/storageAdapter.d.ts.map +1 -1
  6. package/dist/devtools/client.d.ts +12 -10
  7. package/dist/devtools/client.d.ts.map +1 -1
  8. package/dist/devtools/client.js +50 -10
  9. package/dist/devtools/client.js.map +1 -1
  10. package/dist/devtools/core.d.ts +9 -0
  11. package/dist/devtools/core.d.ts.map +1 -0
  12. package/dist/devtools/core.js +38 -0
  13. package/dist/devtools/core.js.map +1 -0
  14. package/dist/devtools/flatten.d.ts +4 -0
  15. package/dist/devtools/flatten.d.ts.map +1 -0
  16. package/dist/devtools/flatten.js +145 -0
  17. package/dist/devtools/flatten.js.map +1 -0
  18. package/dist/devtools/index.d.ts +4 -0
  19. package/dist/devtools/index.d.ts.map +1 -0
  20. package/dist/devtools/index.js +3 -0
  21. package/dist/devtools/index.js.map +1 -0
  22. package/dist/devtools/nusm-logo.d.ts +4 -0
  23. package/dist/devtools/nusm-logo.d.ts.map +1 -0
  24. package/dist/devtools/nusm-logo.js +5 -0
  25. package/dist/devtools/nusm-logo.js.map +1 -0
  26. package/dist/devtools/panel-controls.d.ts +13 -0
  27. package/dist/devtools/panel-controls.d.ts.map +1 -0
  28. package/dist/devtools/panel-controls.js +32 -0
  29. package/dist/devtools/panel-controls.js.map +1 -0
  30. package/dist/devtools/panel-detail.d.ts +15 -0
  31. package/dist/devtools/panel-detail.d.ts.map +1 -0
  32. package/dist/devtools/panel-detail.js +114 -0
  33. package/dist/devtools/panel-detail.js.map +1 -0
  34. package/dist/devtools/panel-helpers.d.ts +16 -0
  35. package/dist/devtools/panel-helpers.d.ts.map +1 -0
  36. package/dist/devtools/panel-helpers.js +40 -0
  37. package/dist/devtools/panel-helpers.js.map +1 -0
  38. package/dist/devtools/panel-list.d.ts +13 -0
  39. package/dist/devtools/panel-list.d.ts.map +1 -0
  40. package/dist/devtools/panel-list.js +28 -0
  41. package/dist/devtools/panel-list.js.map +1 -0
  42. package/dist/devtools/panel-model.d.ts +19 -0
  43. package/dist/devtools/panel-model.d.ts.map +1 -0
  44. package/dist/devtools/panel-model.js +53 -0
  45. package/dist/devtools/panel-model.js.map +1 -0
  46. package/dist/devtools/panel.d.ts +3 -0
  47. package/dist/devtools/panel.d.ts.map +1 -0
  48. package/dist/devtools/panel.js +429 -0
  49. package/dist/devtools/panel.js.map +1 -0
  50. package/dist/devtools/path.d.ts +5 -0
  51. package/dist/devtools/path.d.ts.map +1 -0
  52. package/dist/devtools/path.js +142 -0
  53. package/dist/devtools/path.js.map +1 -0
  54. package/dist/devtools/plugin.d.ts +14 -2
  55. package/dist/devtools/plugin.d.ts.map +1 -1
  56. package/dist/devtools/plugin.js +10 -56
  57. package/dist/devtools/plugin.js.map +1 -1
  58. package/dist/devtools/projection.d.ts +8 -0
  59. package/dist/devtools/projection.d.ts.map +1 -0
  60. package/dist/devtools/projection.js +72 -0
  61. package/dist/devtools/projection.js.map +1 -0
  62. package/dist/devtools/protocol.d.ts +4 -0
  63. package/dist/devtools/protocol.d.ts.map +1 -0
  64. package/dist/devtools/protocol.js +58 -0
  65. package/dist/devtools/protocol.js.map +1 -0
  66. package/dist/devtools/serialize.d.ts +3 -0
  67. package/dist/devtools/serialize.d.ts.map +1 -0
  68. package/dist/devtools/serialize.js +71 -0
  69. package/dist/devtools/serialize.js.map +1 -0
  70. package/dist/devtools/types.d.ts +60 -0
  71. package/dist/devtools/types.d.ts.map +1 -0
  72. package/dist/devtools/types.js +2 -0
  73. package/dist/devtools/types.js.map +1 -0
  74. package/dist/index.d.ts +2 -3
  75. package/dist/index.d.ts.map +1 -1
  76. package/dist/index.js +1 -2
  77. package/dist/index.js.map +1 -1
  78. package/dist/nusm.d.ts +5 -0
  79. package/dist/nusm.d.ts.map +1 -0
  80. package/dist/nusm.js +1026 -0
  81. package/dist/nusm.js.map +1 -0
  82. package/dist/react/index.d.ts +6 -8
  83. package/dist/react/index.d.ts.map +1 -1
  84. package/dist/react/index.js +16 -28
  85. package/dist/react/index.js.map +1 -1
  86. package/dist/types.d.ts +29 -15
  87. package/dist/types.d.ts.map +1 -1
  88. package/docs/UPGRADING.md +53 -0
  89. package/docs/devtools.md +139 -0
  90. package/package.json +61 -24
  91. package/dist/core/createNusmStore.d.ts +0 -3
  92. package/dist/core/createNusmStore.d.ts.map +0 -1
  93. package/dist/core/createNusmStore.js +0 -491
  94. package/dist/core/createNusmStore.js.map +0 -1
  95. package/dist/utils.d.ts +0 -5
  96. package/dist/utils.d.ts.map +0 -1
  97. package/dist/utils.js +0 -30
  98. package/dist/utils.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nusm.js","sourceRoot":"","sources":["../src/nusm.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,9 @@
1
- import type { Derived, Store } from "@tanstack/store";
2
- export * from "@tanstack/store";
1
+ import type { NusmStore } from "../types";
3
2
  export type NoInfer<T> = [T][T extends unknown ? 0 : never];
4
- type EqualityFn<T> = (objA: T, objB: T) => boolean;
5
- interface UseStoreOptions<T> {
6
- equal?: EqualityFn<T>;
3
+ interface UseStoreOptions {
4
+ equal?: boolean;
7
5
  }
8
- export declare function useStore<TState, TSelected = NoInfer<TState>>(store: Store<TState>, selector?: (state: NoInfer<TState>) => TSelected, options?: UseStoreOptions<TSelected>): TSelected;
9
- export declare function useStore<TState, TSelected = NoInfer<TState>>(store: Derived<TState>, selector?: (state: NoInfer<TState>) => TSelected, options?: UseStoreOptions<TSelected>): TSelected;
10
- export declare function shallow<T>(objA: T, objB: T): boolean;
6
+ export declare function useStore<TState, TSelected = NoInfer<TState>>(store: NusmStore<TState>, selector?: (state: NoInfer<TState>) => TSelected, options?: UseStoreOptions): TSelected;
7
+ export declare function useStore<TState, TSelected = NoInfer<TState>>(store: NusmStore<TState>, selector?: (state: NoInfer<TState>) => TSelected, options?: UseStoreOptions): TSelected;
8
+ export {};
11
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEtD,cAAc,iBAAiB,CAAC;AAEhC,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;AAE5D,KAAK,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC;AAEnD,UAAU,eAAe,CAAC,CAAC;IACzB,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;CACvB;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,EAC1D,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EACpB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,SAAS,EAChD,OAAO,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,GACnC,SAAS,CAAC;AACb,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,EAC1D,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,EACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,SAAS,EAChD,OAAO,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,GACnC,SAAS,CAAC;AAiBb,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,WA4B1C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;AAE5D,UAAU,eAAe;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,EAC1D,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EACxB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,SAAS,EAChD,OAAO,CAAC,EAAE,eAAe,GACxB,SAAS,CAAC;AAEb,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,EAC1D,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EACxB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,SAAS,EAChD,OAAO,CAAC,EAAE,eAAe,GACxB,SAAS,CAAC"}
@@ -1,32 +1,20 @@
1
- import { useSyncExternalStoreWithSelector } from "use-sync-external-store/shim/with-selector.js";
2
- export * from "@tanstack/store";
1
+ /// <reference types="react" />
2
+ import { deepEqual, shallowEqual } from "fast-equals";
3
+ import { useRef, useSyncExternalStore } from "react";
3
4
  export function useStore(store, selector = (d) => d, options = {}) {
4
- const equal = options.equal ?? shallow;
5
- return useSyncExternalStoreWithSelector(store.subscribe, () => store.state, () => store.state, selector, equal);
6
- }
7
- export function shallow(objA, objB) {
8
- if (Object.is(objA, objB)) {
9
- return true;
10
- }
11
- if (typeof objA !== "object" ||
12
- objA === null ||
13
- typeof objB !== "object" ||
14
- objB === null) {
15
- return false;
16
- }
17
- const keysA = getOwnKeys(objA);
18
- const keysB = getOwnKeys(objB);
19
- if (keysA.length !== keysB.length) {
20
- return false;
5
+ const equal = options.equal ? deepEqual : shallowEqual;
6
+ const getSnapshot = () => store.state;
7
+ const snapshot = useSyncExternalStore((notify) => {
8
+ const subscription = store.subscribe(notify);
9
+ return typeof subscription === "function"
10
+ ? subscription
11
+ : subscription.unsubscribe;
12
+ }, getSnapshot, getSnapshot);
13
+ const selected = selector(snapshot);
14
+ const selectedRef = useRef(selected);
15
+ if (!equal(selectedRef.current, selected)) {
16
+ selectedRef.current = selected;
21
17
  }
22
- for (const key of keysA) {
23
- if (!(Object.hasOwn(objB, key) && Object.is(objA[key], objB[key]))) {
24
- return false;
25
- }
26
- }
27
- return true;
28
- }
29
- function getOwnKeys(obj) {
30
- return [...Object.keys(obj), ...Object.getOwnPropertySymbols(obj)];
18
+ return selectedRef.current;
31
19
  }
32
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,MAAM,+CAA+C,CAAC;AAGjG,cAAc,iBAAiB,CAAC;AAoBhC,MAAM,UAAU,QAAQ,CACtB,KAAsC,EACtC,WAAkD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAc,EACvE,UAAsC,EAAE;IAExC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC;IAEvC,OAAO,gCAAgC,CACrC,KAAK,CAAC,SAAS,EACf,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,EACjB,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,EACjB,QAAQ,EACR,KAAK,CACN,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,OAAO,CAAI,IAAO,EAAE,IAAO;IACzC,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IACE,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,KAAK,IAAI;QACb,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,KAAK,IAAI,EACb,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAE/B,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,GAAc,CAAC,EAAE,IAAI,CAAC,GAAc,CAAC,CAAC,CAAC,EAAE,CAAC;YACzF,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,UAAU,CAAC,GAAW;IAC7B,OAAO,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC;AACrE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAE/B,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAqBrD,MAAM,UAAU,QAAQ,CACtB,KAAwB,EACxB,QAAQ,GAA0C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAc,EACvE,OAAO,GAAoB,EAAE;IAE7B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC;IACvD,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;IACtC,MAAM,QAAQ,GAAG,oBAAoB,CACnC,CAAC,MAAM,EAAE,EAAE;QACT,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC7C,OAAO,OAAO,YAAY,KAAK,UAAU;YACvC,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC;IAC/B,CAAC,EACD,WAAW,EACX,WAAW,CACZ,CAAC;IACF,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAA2B,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,MAAM,CAAY,QAAQ,CAAC,CAAC;IAEhD,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC1C,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IACjC,CAAC;IAED,OAAO,WAAW,CAAC,OAAO,CAAC;AAC7B,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,11 +1,12 @@
1
- import type { Store } from '@tanstack/store';
1
+ import type { Store } from "@tanstack/store";
2
2
  export type NusmPacerConfig = false | {
3
3
  wait?: number;
4
4
  maxWait?: number;
5
5
  leading?: boolean;
6
6
  trailing?: boolean;
7
7
  };
8
- export type AdapterEventType = 'set' | 'remove' | 'clear';
8
+ export type { Store };
9
+ export type AdapterEventType = "set" | "remove" | "clear";
9
10
  export interface AdapterEvent {
10
11
  type: AdapterEventType;
11
12
  key?: string;
@@ -21,13 +22,17 @@ export interface NusmAdapter {
21
22
  resolveKey?(params: {
22
23
  storeId: string;
23
24
  sliceKey?: string;
24
- kind: 'entire' | 'slice';
25
+ kind: "entire" | "slice";
25
26
  }): string;
26
27
  pacer?: NusmPacerConfig;
27
28
  }
28
29
  export interface PersistSlice<TState> {
29
30
  key: string;
30
31
  select: (state: TState) => unknown;
32
+ /**
33
+ * Applies only this slice's selected value. During missing-value hydration,
34
+ * nusm rejects definitions whose apply function changes another missing slice.
35
+ */
31
36
  apply: (state: TState, sliceValue: unknown) => TState;
32
37
  }
33
38
  export interface HydrateConfig<TState> {
@@ -44,7 +49,7 @@ export interface HydrateConfig<TState> {
44
49
  export interface CreateNusmStoreOptions<TState> {
45
50
  adapter?: NusmAdapter;
46
51
  persist?: {
47
- strategy: 'entire' | 'slices';
52
+ strategy: "entire" | "slices";
48
53
  slices?: Array<PersistSlice<TState>>;
49
54
  hydrate?: HydrateConfig<TState>;
50
55
  };
@@ -55,36 +60,45 @@ export interface CreateNusmStoreOptions<TState> {
55
60
  onError?: (error: unknown) => void;
56
61
  storeId?: string;
57
62
  }
58
- export type HydrationState = 'not_configured' | 'pending' | 'hydrated' | 'discarded' | 'error';
63
+ export type HydrationState = "not_configured" | "pending" | "hydrated" | "discarded" | "error";
59
64
  export interface HydrationStatus {
60
65
  overall: HydrationState;
61
66
  byKey: Record<string, HydrationState>;
62
67
  }
63
- export type NusmEventType = 'hydrate_start' | 'hydrate_discarded' | 'hydrate_applied' | 'hydrate_error' | 'persist_scheduled' | 'persist_flush_start' | 'persist_flush_ok' | 'persist_flush_error' | 'adapter_external_event';
68
+ export type NusmEventType = "hydrate_start" | "hydrate_discarded" | "hydrate_applied" | "hydrate_error" | "persist_scheduled" | "persist_flush_start" | "persist_flush_ok" | "persist_flush_error" | "adapter_external_event" | "devtools_command" | "devtools_command_error" | "devtools_snapshot_error";
64
69
  export interface NusmEvent {
65
70
  ts: number;
66
71
  type: NusmEventType;
67
72
  storeId: string;
73
+ instanceId: string;
68
74
  key?: string;
69
75
  sliceKey?: string;
70
76
  detail?: unknown;
71
77
  }
72
78
  export interface NusmDevtoolsSnapshot {
79
+ eventLogCap?: number;
73
80
  storeId: string;
74
- memory: unknown;
75
- persisted?: unknown;
81
+ instanceId: string;
82
+ adapterName?: string;
76
83
  hydration: HydrationStatus;
84
+ initial?: unknown;
77
85
  isReady: boolean;
78
- pendingKeys?: string[];
79
86
  lastFlushAt?: number;
87
+ memory: unknown;
88
+ pendingKeys?: string[];
89
+ persisted?: unknown;
90
+ persistenceStrategy?: "entire" | "slices";
91
+ synchronization?: "diverged" | "not_applicable" | "synchronized" | "unknown";
80
92
  }
81
- export interface NusmStore<TState> {
82
- store: Store<TState>;
83
- isReady: boolean;
93
+ export type ReadonlyHydrationStatus = {
94
+ readonly byKey: Readonly<Record<string, HydrationState>>;
95
+ readonly overall: HydrationState;
96
+ };
97
+ export interface NusmStore<TState> extends Store<TState> {
98
+ readonly devtoolsInstanceId: string;
99
+ readonly hydration: ReadonlyHydrationStatus;
100
+ readonly isReady: boolean;
84
101
  ready: Promise<void>;
85
- getPersistedSnapshot?: () => Promise<unknown>;
86
- getHydrationStatus?: () => HydrationStatus;
87
- getEventLog?: () => readonly NusmEvent[];
88
102
  }
89
103
  export interface StorageAdapterOptions {
90
104
  storage?: StorageLike;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ # Upgrading to the current TanStack Store API
2
+
3
+ This release intentionally removes nusm's temporary compatibility layer for
4
+ older `@tanstack/store` APIs. It is a breaking change.
5
+
6
+ ## Removed APIs
7
+
8
+ `Derived` and `Effect` are no longer part of the nusm API, and their types are
9
+ no longer available from nusm internals. Import and use the supported current
10
+ TanStack Store primitives directly where needed, or model computed state in
11
+ application code.
12
+
13
+ `useStore` from `nusm/react` now accepts only a store returned by
14
+ `createNusmStore`. Do not pass legacy derived-store objects to this hook.
15
+
16
+ ## Store migration
17
+
18
+ The current `@tanstack/store` API uses functional setters and value-only
19
+ subscriptions. Replace direct updates such as:
20
+
21
+ ```ts
22
+ store.setState(nextState)
23
+ store.subscribe(({ prevVal, currentVal }) => {
24
+ // ...
25
+ })
26
+ ```
27
+
28
+ with:
29
+
30
+ ```ts
31
+ store.setState(() => nextState)
32
+ let previousState = store.state
33
+ store.subscribe((currentState) => {
34
+ // use previousState and currentState as needed
35
+ previousState = currentState
36
+ })
37
+ ```
38
+
39
+ ## Devtools migration
40
+
41
+ The current `@tanstack/devtools` plugin lifecycle expects `render` to return
42
+ `void`. Move cleanup that was previously returned from `render` into the
43
+ plugin's optional `destroy` callback.
44
+
45
+ ## Verification
46
+
47
+ After migrating, run:
48
+
49
+ ```bash
50
+ bun install --frozen-lockfile
51
+ bun run build
52
+ bun test
53
+ ```
@@ -0,0 +1,139 @@
1
+ # nusm Devtools
2
+
3
+ The optional nusm inspector is a native TanStack Devtools plugin. It uses
4
+ `createReactPanel` and `createReactPlugin` from `@tanstack/devtools-utils/react`
5
+ for the framework lifecycle while nusm stores communicate through the
6
+ framework-neutral TanStack `EventClient`.
7
+
8
+ ## Install
9
+
10
+ ```bash
11
+ bun add -d @tanstack/devtools @tanstack/devtools-utils \
12
+ @tanstack/react-devtools lucide-react react react-dom
13
+ ```
14
+
15
+ All Devtools and React packages are optional peers. Importing `nusm` or
16
+ `nusm/react` does not load the inspector; only `nusm/devtools` crosses the
17
+ optional boundary.
18
+
19
+ ## Connect a store
20
+
21
+ ```ts
22
+ import { createLocalStorageAdapter, createNusmStore } from "nusm"
23
+
24
+ export const settings = createNusmStore(
25
+ { profile: { displayName: "Ada" }, shortcuts: true },
26
+ {
27
+ adapter: createLocalStorageAdapter(),
28
+ devtools: { name: "Settings", eventLogCap: 200 },
29
+ persist: { strategy: "entire" },
30
+ storeId: "settings",
31
+ },
32
+ )
33
+ ```
34
+
35
+ ```tsx
36
+ import { TanStackDevtools } from "@tanstack/react-devtools"
37
+ import { createNusmDevtoolsPlugin } from "nusm/devtools"
38
+
39
+ const nusmPlugin = createNusmDevtoolsPlugin()
40
+
41
+ export function DevelopmentTools() {
42
+ return <TanStackDevtools plugins={[nusmPlugin]} />
43
+ }
44
+ ```
45
+
46
+ Create the plugin once rather than during each application render. For an SSR
47
+ or production branch that must preserve the same shape, export and use
48
+ `createNoOpNusmDevtoolsPlugin`.
49
+
50
+ ## Inspector workflow
51
+
52
+ - The icon rail switches between connected stores, timeline, and panel details.
53
+ - The store sidebar filters by store id or adapter and shows connection state.
54
+ - Overview, Memory, adapter, and Timeline tabs keep volatile and persisted data
55
+ visibly distinct.
56
+ - The path browser searches keys, paths, and value previews. Select a row to
57
+ inspect formatted JSON, copy it, edit it, or remove it.
58
+ - Add accepts paths such as `profile.name` and `items[0]`. Raw mode replaces an
59
+ entire memory or persisted value after JSON validation.
60
+ - Reset affects memory only. Refresh requests a new snapshot without mutation.
61
+ - Light and dark colors follow the TanStack shell theme. Dense layouts collapse
62
+ the inspector drawer on narrow panels while keeping keyboard focus visible.
63
+
64
+ ## Bidirectional protocol
65
+
66
+ Stores emit `snapshot`, `hydration`, and bounded `event` messages. The panel
67
+ emits serializable `command` messages and waits for matching `commandResult`
68
+ acknowledgements. Path writes use `set_path`; deletion uses `remove_path`. Each
69
+ store-scoped command includes both a unique runtime instance id and its display
70
+ store id, memory or persisted location, a JSON path, and a unique command id.
71
+ The panel indexes snapshots, events, editor sessions, and acknowledgements by
72
+ instance id, so duplicate or normalization-colliding display names remain visible
73
+ and a mutation reaches exactly one store. Instance sequences are stored in a
74
+ process-global symbol registry, preventing duplicated bundles and hot reloads from
75
+ reusing an identity. The sidebar, summary, accessible name, and store search expose
76
+ the runtime discriminator before a developer issues a mutation. The broadcast `refresh_all` command is
77
+ the sole identity exception. Unsafe prototype segments and invalid array gaps are
78
+ rejected before state is changed.
79
+
80
+ Memory edits deliberately affect only live memory. Persisted edits deliberately
81
+ affect only the configured adapter. Store snapshots publish producer-owned
82
+ synchronization state, so the panel reports synchronized, divergent, pending, or
83
+ unknown health without comparing lossy display projections.
84
+
85
+ On first hydration, a missing entire-store value or slice is written from the
86
+ valid initial state before `ready` resolves. The resulting adapter tab contains
87
+ the same baseline as memory, `lastFlushAt` records the seed, and an empty pending
88
+ list indicates the write finished. Existing, discarded, or unreadable values are
89
+ not silently replaced by this baseline behavior.
90
+
91
+ Slice `apply` functions must be isolated to the value returned by their matching
92
+ `select`. Before writing multiple missing baselines, nusm validates that applying
93
+ them preserves every selected initial value; mutually interacting definitions
94
+ reject hydration without writing a misleading persisted baseline.
95
+
96
+ Slice identities are validated before any adapter read or write. Logical slice
97
+ keys must be unique, and every adapter-resolved physical key must be non-empty
98
+ and unique. nusm resolves each configured physical key once and reuses that
99
+ stable identity for hydration, persistence, external events, and Devtools
100
+ commands. A custom `resolveKey` implementation is called once per configured
101
+ unit and must return a distinct valid key for each unit. Adapter clear events reset
102
+ only configured slices to their initial selected values; live fields outside those
103
+ slices are preserved. Entire-store persistence continues to reset the whole state.
104
+
105
+ ## Bun example
106
+
107
+ The independent [`example`](../example) package uses Bun HTML imports and
108
+ `Bun.serve` for hot reload, bundling, production serving, and tests.
109
+
110
+ ```bash
111
+ bun run example:devtools
112
+ bun run example:test
113
+ bun run example:build
114
+ bun run example:serve
115
+ ```
116
+
117
+ The showcase mounts four real stores: ephemeral workspace state, localStorage
118
+ preferences, a sessionStorage session, and IndexedDB activity history. It
119
+ resolves `nusm` from the current checkout through `file:../src`, disables each
120
+ stateful interaction until its store reports `isReady`, and includes persistence
121
+ proofs for all three browser adapters. Command center, Stores, and Signals are
122
+ controlled accessible views rather than scroll anchors, and both the shell and
123
+ custom panel use the canonical nusm logo. Open the TanStack trigger at the
124
+ lower-right and select `nusm` to inspect them. The active panel is enabled by Bun
125
+ hot-module development or an explicit `?devtools` query parameter; production
126
+ serving otherwise selects the shape-compatible no-op plugin and omits the shell. The
127
+ checked-in [`browser-qa.md`](../example/browser-qa.md) receipt records the rebuilt
128
+ browser runtime, real adapter tabs, live bidirectional mutation, console health,
129
+ and production traversal checks.
130
+
131
+ ## Security
132
+
133
+ Devtools snapshots can contain credentials, personal data, or internal state.
134
+ Keep instrumentation and the panel out of untrusted production builds. Copy and
135
+ editing are explicit user gestures. Mutations accept round-trippable JSON data,
136
+ reject accessors and Proxy values, and never intentionally invoke accessors. JavaScript
137
+ provides no trap-free portable Proxy detection, so an unsupported Proxy may observe the
138
+ validation attempt before the command is rejected; do not expose hostile Proxy state to
139
+ development tooling.
package/package.json CHANGED
@@ -1,37 +1,46 @@
1
1
  {
2
2
  "dependencies": {
3
- "@fastify/deepmerge": "^3.1.0",
4
- "@tanstack/devtools-event-client": "^0.4.0",
5
- "@tanstack/pacer": "^0.17.3",
6
- "@tanstack/store": "^0.8.0",
7
- "fast-equals": "^6.0.0",
8
- "superjson": "^2.2.1"
3
+ "@fastify/deepmerge": "^3.2.1",
4
+ "@tanstack/devtools-event-client": "^0.5.0",
5
+ "@tanstack/pacer": "^0.21.1",
6
+ "@tanstack/store": "^0.11.0",
7
+ "fast-equals": "^6.0.2",
8
+ "superjson": "^2.2.6"
9
9
  },
10
10
  "description": "Non Uniform State Manager nusm (pronounced \"noose em\") built on @tanstack/store with optional persisted adapters.",
11
11
  "devDependencies": {
12
12
  "@bun-security-scanner/osv": "^1.0.0",
13
- "@commitlint/cli": "^20.3.1",
14
- "@commitlint/config-conventional": "^20.3.1",
15
- "@happy-dom/global-registrator": "^20.3.0",
16
- "@release-it/conventional-changelog": "^10.0.4",
13
+ "@commitlint/cli": "^21.2.1",
14
+ "@commitlint/config-conventional": "^21.2.0",
15
+ "@happy-dom/global-registrator": "^20.10.6",
16
+ "@release-it/conventional-changelog": "^11.0.1",
17
+ "@tanstack/devtools": "^0.12.5",
18
+ "@tanstack/devtools-utils": "^0.6.0",
17
19
  "@testing-library/dom": "^10.4.1",
18
20
  "@testing-library/jest-dom": "^6.9.1",
19
- "@testing-library/react": "^16.3.1",
20
- "@types/bun": "latest",
21
- "@types/react": "^19.2.8",
21
+ "@testing-library/react": "^16.3.2",
22
+ "@types/bun": "^1.3.14",
23
+ "@types/react": "^19.2.17",
22
24
  "@types/react-dom": "^19.2.3",
23
- "conventional-changelog-conventionalcommits": "^9.1.0",
25
+ "conventional-changelog-conventionalcommits": "^10.2.1",
24
26
  "fake-indexeddb": "^6.2.5",
25
27
  "husky": "^9.1.7",
26
- "lint-staged": "^16.2.7",
27
- "release-it": "^19.2.3",
28
- "typescript": "^5"
28
+ "lint-staged": "^17.0.8",
29
+ "lucide-react": "^1.24.0",
30
+ "react": "^19.2.7",
31
+ "react-dom": "^19.2.7",
32
+ "release-it": "^20.2.1",
33
+ "typescript": "^7.0.2"
29
34
  },
30
35
  "exports": {
31
36
  ".": {
32
37
  "default": "./dist/index.js",
33
38
  "types": "./dist/index.d.ts"
34
39
  },
40
+ "./devtools": {
41
+ "default": "./dist/devtools/index.js",
42
+ "types": "./dist/devtools/index.d.ts"
43
+ },
35
44
  "./react": {
36
45
  "default": "./dist/react/index.js",
37
46
  "types": "./dist/react/index.d.ts"
@@ -40,7 +49,8 @@
40
49
  "files": [
41
50
  "dist",
42
51
  "README.md",
43
- "LICENSE"
52
+ "LICENSE",
53
+ "docs"
44
54
  ],
45
55
  "license": "MIT",
46
56
  "lint-staged": {
@@ -51,17 +61,39 @@
51
61
  "main": "dist/index.js",
52
62
  "module": "dist/index.js",
53
63
  "name": "nusm",
64
+ "overrides": {
65
+ "ajv": "8.20.0",
66
+ "basic-ftp": "6.0.1",
67
+ "defu": "6.1.7",
68
+ "fast-uri": "4.1.0",
69
+ "handlebars": "4.7.9",
70
+ "ip-address": "10.1.1",
71
+ "js-yaml": "4.2.0",
72
+ "picomatch": "4.0.5"
73
+ },
54
74
  "peerDependencies": {
55
- "@tanstack/devtools": "^0.10.3",
56
- "react": "^19.2.0",
57
- "typescript": "^5"
75
+ "@tanstack/devtools": "^0.12.5",
76
+ "@tanstack/devtools-utils": "^0.6.0",
77
+ "lucide-react": ">=0.468.0",
78
+ "react": ">=18.0.0",
79
+ "react-dom": ">=18.0.0",
80
+ "typescript": ">=5"
58
81
  },
59
82
  "peerDependenciesMeta": {
60
83
  "@tanstack/devtools": {
61
84
  "optional": true
62
85
  },
86
+ "@tanstack/devtools-utils": {
87
+ "optional": true
88
+ },
89
+ "lucide-react": {
90
+ "optional": true
91
+ },
63
92
  "react": {
64
93
  "optional": true
94
+ },
95
+ "react-dom": {
96
+ "optional": true
65
97
  }
66
98
  },
67
99
  "release-it": {
@@ -87,10 +119,15 @@
87
119
  },
88
120
  "scripts": {
89
121
  "build": "tsc -p tsconfig.build.json",
90
- "prepare": "husky",
91
- "test": "bun test"
122
+ "example:build": "bun run --cwd example build",
123
+ "example:devtools": "bun run build && bun run --cwd example dev",
124
+ "example:serve": "bun run --cwd example serve",
125
+ "example:test": "bun run --cwd example test",
126
+ "prepare": "./node_modules/.bin/husky",
127
+ "test": "bun test",
128
+ "test:workspace": "bun test"
92
129
  },
93
130
  "type": "module",
94
131
  "types": "dist/index.d.ts",
95
- "version": "0.1.0"
132
+ "version": "1.1.0"
96
133
  }
@@ -1,3 +0,0 @@
1
- import type { CreateNusmStoreOptions, NusmStore } from "../types";
2
- export declare function createNusmStore<TState>(initialState: TState, options?: CreateNusmStoreOptions<TState>): NusmStore<TState>;
3
- //# sourceMappingURL=createNusmStore.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createNusmStore.d.ts","sourceRoot":"","sources":["../../src/core/createNusmStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,sBAAsB,EAItB,SAAS,EACV,MAAM,UAAU,CAAC;AAwDlB,wBAAgB,eAAe,CAAC,MAAM,EACpC,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,sBAAsB,CAAC,MAAM,CAAC,GACvC,SAAS,CAAC,MAAM,CAAC,CAggBnB"}