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,142 @@
1
+ const blockedSegments = new Set(["__proto__", "constructor", "prototype"]);
2
+ const assertSegment = (segment) => {
3
+ if (typeof segment === "string" && blockedSegments.has(segment)) {
4
+ throw new Error(`Unsafe path segment: ${segment}.`);
5
+ }
6
+ if (typeof segment === "number" &&
7
+ (!Number.isSafeInteger(segment) || segment < 0)) {
8
+ throw new Error("Array paths require a non-negative safe integer.");
9
+ }
10
+ };
11
+ const isContainer = (value) => typeof value === "object" && value !== null;
12
+ const readOwnDataValue = (container, segment) => {
13
+ const descriptor = Object.getOwnPropertyDescriptor(container, String(segment));
14
+ if (!descriptor)
15
+ return { exists: false, value: undefined };
16
+ if (!("value" in descriptor))
17
+ throw new Error("Accessor properties cannot be edited through Devtools.");
18
+ return { exists: true, value: descriptor.value };
19
+ };
20
+ const copyOwnDataProperties = (source, target) => {
21
+ for (const key of Reflect.ownKeys(source)) {
22
+ if (key === "length")
23
+ continue;
24
+ if (typeof key === "symbol")
25
+ throw new Error("Symbol properties cannot be edited through Devtools.");
26
+ const descriptor = Object.getOwnPropertyDescriptor(source, key);
27
+ if (!descriptor?.enumerable)
28
+ continue;
29
+ if (!("value" in descriptor))
30
+ throw new Error("Accessor properties cannot be edited through Devtools.");
31
+ Object.defineProperty(target, key, {
32
+ configurable: true,
33
+ enumerable: true,
34
+ value: descriptor.value,
35
+ writable: true,
36
+ });
37
+ }
38
+ };
39
+ const defineDataProperty = (target, segment, value) => {
40
+ Object.defineProperty(target, String(segment), {
41
+ configurable: true,
42
+ enumerable: true,
43
+ value,
44
+ writable: true,
45
+ });
46
+ };
47
+ const createObjectContainer = () => Object.create(null);
48
+ const cloneContainer = (value, nextSegment) => {
49
+ if (Array.isArray(value)) {
50
+ const length = Object.getOwnPropertyDescriptor(value, "length")?.value;
51
+ const target = new Array(typeof length === "number" ? length : 0);
52
+ copyOwnDataProperties(value, target);
53
+ return target;
54
+ }
55
+ if (isContainer(value)) {
56
+ const target = createObjectContainer();
57
+ copyOwnDataProperties(value, target);
58
+ return target;
59
+ }
60
+ return typeof nextSegment === "number" ? [] : createObjectContainer();
61
+ };
62
+ const assertEditableSegment = (container, segment, allowAppend) => {
63
+ if (!Array.isArray(container))
64
+ return;
65
+ if (typeof segment !== "number") {
66
+ throw new Error("Array paths require numeric segments.");
67
+ }
68
+ const limit = allowAppend ? container.length : container.length - 1;
69
+ if (segment > limit) {
70
+ throw new Error(`Array index ${segment} is outside the editable range.`);
71
+ }
72
+ };
73
+ const removeArrayIndex = (source, index) => {
74
+ const result = [];
75
+ const length = source.length;
76
+ for (let current = 0; current < length; current += 1) {
77
+ if (current === index)
78
+ continue;
79
+ const property = readOwnDataValue(source, current);
80
+ if (property.exists)
81
+ defineDataProperty(result, current < index ? current : current - 1, property.value);
82
+ }
83
+ return result;
84
+ };
85
+ export const getValueAtPath = (value, path) => {
86
+ let current = value;
87
+ for (const segment of path) {
88
+ assertSegment(segment);
89
+ if (!isContainer(current))
90
+ return undefined;
91
+ const property = readOwnDataValue(current, segment);
92
+ if (!property.exists)
93
+ return undefined;
94
+ current = property.value;
95
+ }
96
+ return current;
97
+ };
98
+ export const setValueAtPath = (root, path, value) => {
99
+ if (path.length === 0)
100
+ return value;
101
+ path.forEach(assertSegment);
102
+ const setAtDepth = (source, depth) => {
103
+ const segment = path[depth];
104
+ const target = cloneContainer(source, segment);
105
+ assertEditableSegment(target, segment, true);
106
+ if (depth === path.length - 1) {
107
+ defineDataProperty(target, segment, value);
108
+ return target;
109
+ }
110
+ const sourceChild = isContainer(source)
111
+ ? readOwnDataValue(source, segment).value
112
+ : undefined;
113
+ defineDataProperty(target, segment, setAtDepth(sourceChild, depth + 1));
114
+ return target;
115
+ };
116
+ return setAtDepth(root, 0);
117
+ };
118
+ export const removeValueAtPath = (root, path) => {
119
+ if (path.length === 0)
120
+ throw new Error("The root value cannot be removed.");
121
+ path.forEach(assertSegment);
122
+ const removeAtDepth = (source, depth) => {
123
+ if (!isContainer(source))
124
+ throw new Error("The selected path does not exist.");
125
+ const segment = path[depth];
126
+ assertEditableSegment(source, segment, false);
127
+ const property = readOwnDataValue(source, segment);
128
+ if (!property.exists)
129
+ throw new Error("The selected path does not exist.");
130
+ const target = cloneContainer(source, path[depth + 1]);
131
+ if (depth === path.length - 1) {
132
+ if (Array.isArray(target))
133
+ return removeArrayIndex(target, segment);
134
+ delete target[segment];
135
+ return target;
136
+ }
137
+ defineDataProperty(target, segment, removeAtDepth(property.value, depth + 1));
138
+ return target;
139
+ };
140
+ return removeAtDepth(root, 0);
141
+ };
142
+ //# sourceMappingURL=path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path.js","sourceRoot":"","sources":["../../src/devtools/path.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,15 @@
1
- import type { TanStackDevtoolsPlugin } from "@tanstack/devtools";
2
- export declare const createNusmDevtoolsPlugin: () => TanStackDevtoolsPlugin;
1
+ import type { TanStackDevtoolsPluginProps } from "@tanstack/devtools";
2
+ export { NusmDevtoolsCore } from "./core";
3
+ export declare const NusmReactDevtoolsPanel: (props: TanStackDevtoolsPluginProps) => import("react").JSX.Element, NoOpNusmReactDevtoolsPanel: (_props: TanStackDevtoolsPluginProps) => import("react").JSX.Element;
4
+ export declare const createNusmDevtoolsPlugin: () => {
5
+ render: (_el: HTMLElement, props: TanStackDevtoolsPluginProps) => import("react").JSX.Element;
6
+ name: string;
7
+ id?: string;
8
+ defaultOpen?: boolean;
9
+ }, createNoOpNusmDevtoolsPlugin: () => {
10
+ render: (_el: HTMLElement, _props: TanStackDevtoolsPluginProps) => import("react").JSX.Element;
11
+ name: string;
12
+ id?: string;
13
+ defaultOpen?: boolean;
14
+ };
3
15
  //# sourceMappingURL=plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/devtools/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAOjE,eAAO,MAAM,wBAAwB,QAAO,sBAiE3C,CAAC"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/devtools/plugin.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAOtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAE1C,eAAO,MAAO,sBAAsB,uEAAE,0BAA0B,sEAG7D,CAAC;AAEJ,eAAO,MAAO,wBAAwB;;;;;GAAE,4BAA4B;;;;;CAMhE,CAAC"}
@@ -1,57 +1,11 @@
1
- export const createNusmDevtoolsPlugin = () => {
2
- const pluginId = "nusm";
3
- return {
4
- id: pluginId,
5
- name: "nusm",
6
- defaultOpen: true,
7
- render: (el) => {
8
- const container = document.createElement("div");
9
- container.style.display = "grid";
10
- container.style.gap = "12px";
11
- container.style.fontFamily = "monospace";
12
- const snapshotTitle = document.createElement("h3");
13
- snapshotTitle.textContent = "Snapshot";
14
- snapshotTitle.style.margin = "0";
15
- const snapshotPre = document.createElement("pre");
16
- snapshotPre.style.whiteSpace = "pre-wrap";
17
- snapshotPre.style.margin = "0";
18
- snapshotPre.textContent = "No snapshot yet.";
19
- const eventsTitle = document.createElement("h3");
20
- eventsTitle.textContent = "Events";
21
- eventsTitle.style.margin = "0";
22
- const eventsPre = document.createElement("pre");
23
- eventsPre.style.whiteSpace = "pre-wrap";
24
- eventsPre.style.margin = "0";
25
- eventsPre.textContent = "No events yet.";
26
- container.appendChild(snapshotTitle);
27
- container.appendChild(snapshotPre);
28
- container.appendChild(eventsTitle);
29
- container.appendChild(eventsPre);
30
- el.appendChild(container);
31
- const onSnapshot = (event) => {
32
- const detail = event.detail;
33
- if (!detail?.payload)
34
- return;
35
- snapshotPre.textContent = JSON.stringify(detail.payload, null, 2);
36
- };
37
- const onEvent = (event) => {
38
- const detail = event
39
- .detail;
40
- if (!detail?.payload)
41
- return;
42
- const existing = eventsPre.textContent ?? "";
43
- const line = JSON.stringify(detail.payload);
44
- eventsPre.textContent =
45
- existing === "No events yet." ? line : `${existing}\n${line}`;
46
- };
47
- window.addEventListener(`${pluginId}:snapshot`, onSnapshot);
48
- window.addEventListener(`${pluginId}:event`, onEvent);
49
- return () => {
50
- window.removeEventListener(`${pluginId}:snapshot`, onSnapshot);
51
- window.removeEventListener(`${pluginId}:event`, onEvent);
52
- el.innerHTML = "";
53
- };
54
- },
55
- };
56
- };
1
+ import { createReactPanel, createReactPlugin, } from "@tanstack/devtools-utils/react";
2
+ import { NusmDevtoolsCore } from "./core";
3
+ export { NusmDevtoolsCore } from "./core";
4
+ export const [NusmReactDevtoolsPanel, NoOpNusmReactDevtoolsPanel] = createReactPanel(NusmDevtoolsCore);
5
+ export const [createNusmDevtoolsPlugin, createNoOpNusmDevtoolsPlugin] = createReactPlugin({
6
+ Component: NusmReactDevtoolsPanel,
7
+ defaultOpen: false,
8
+ id: "nusm",
9
+ name: "nusm",
10
+ });
57
11
  //# sourceMappingURL=plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/devtools/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/devtools/plugin.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAE1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAE1C,MAAM,CAAC,MAAM,CAAC,sBAAsB,EAAE,0BAA0B,CAAC,GAC/D,gBAAgB,CACd,gBAAgB,CACjB,CAAC;AAEJ,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE,4BAA4B,CAAC,GACnE,iBAAiB,CAAC;IAChB,SAAS,EAAE,sBAAsB;IACjC,WAAW,EAAE,KAAK;IAClB,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,MAAM;CACb,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ type ProjectionContext = {
2
+ ancestors: Map<object, string>;
3
+ depth: number;
4
+ path: string;
5
+ };
6
+ export declare const projectForDisplay: (value: unknown, context?: ProjectionContext) => unknown;
7
+ export {};
8
+ //# sourceMappingURL=projection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../../src/devtools/projection.ts"],"names":[],"mappings":"AAAA,KAAK,iBAAiB,GAAG;IACvB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AA2EF,eAAO,MAAM,iBAAiB,UACrB,OAAO,YACL,iBAAiB,KACzB,OAKF,CAAC"}
@@ -0,0 +1,72 @@
1
+ const describeError = (error) => error instanceof Error ? error.message : String(error);
2
+ const projectPrimitive = (value) => {
3
+ if (typeof value === "bigint")
4
+ return { handled: true, value: `${value}n` };
5
+ if (typeof value === "function")
6
+ return { handled: true, value: "[Function]" };
7
+ if (typeof value === "symbol")
8
+ return { handled: true, value: String(value) };
9
+ return {
10
+ handled: typeof value !== "object" || value === null,
11
+ value,
12
+ };
13
+ };
14
+ const assignProjected = (output, key, value) => {
15
+ Object.defineProperty(output, key, {
16
+ configurable: true,
17
+ enumerable: true,
18
+ value,
19
+ writable: true,
20
+ });
21
+ };
22
+ const projectProperty = (source, key, context) => {
23
+ let descriptor;
24
+ try {
25
+ descriptor = Object.getOwnPropertyDescriptor(source, key);
26
+ }
27
+ catch (error) {
28
+ return `[Uninspectable: ${describeError(error)}]`;
29
+ }
30
+ if (!descriptor?.enumerable)
31
+ return undefined;
32
+ if (!("value" in descriptor))
33
+ return "[Accessor not evaluated]";
34
+ return projectForDisplay(descriptor.value, {
35
+ ancestors: context.ancestors,
36
+ depth: context.depth + 1,
37
+ path: `${context.path}[${JSON.stringify(key)}]`,
38
+ });
39
+ };
40
+ const projectObject = (value, context) => {
41
+ const origin = context.ancestors.get(value);
42
+ if (origin)
43
+ return `[Circular → ${origin}]`;
44
+ if (context.depth >= 16)
45
+ return "[Max depth reached]";
46
+ context.ancestors.set(value, context.path);
47
+ try {
48
+ const keys = Reflect.ownKeys(value).filter((key) => typeof key === "string" && key !== "length");
49
+ const output = Array.isArray(value)
50
+ ? []
51
+ : Object.create(null);
52
+ for (const key of keys.slice(0, 2_000)) {
53
+ const projected = projectProperty(value, key, context);
54
+ if (projected !== undefined)
55
+ assignProjected(output, key, projected);
56
+ }
57
+ return output;
58
+ }
59
+ catch (error) {
60
+ return `[Uninspectable: ${describeError(error)}]`;
61
+ }
62
+ finally {
63
+ context.ancestors.delete(value);
64
+ }
65
+ };
66
+ export const projectForDisplay = (value, context = { ancestors: new Map(), depth: 0, path: "$" }) => {
67
+ const primitive = projectPrimitive(value);
68
+ return primitive.handled
69
+ ? primitive.value
70
+ : projectObject(value, context);
71
+ };
72
+ //# sourceMappingURL=projection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projection.js","sourceRoot":"","sources":["../../src/devtools/projection.ts"],"names":[],"mappings":"AAMA,MAAM,aAAa,GAAG,CAAC,KAAc,EAAE,EAAE,CACvC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAEzD,MAAM,gBAAgB,GAAG,CACvB,KAAc,EACwB,EAAE;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,EAAE,CAAC;IAC5E,IAAI,OAAO,KAAK,KAAK,UAAU;QAC7B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAChD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IAC9E,OAAO;QACL,OAAO,EAAE,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QACpD,KAAK;KACN,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CACtB,MAA2C,EAC3C,GAAW,EACX,KAAc,EACd,EAAE;IACF,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE;QACjC,YAAY,EAAE,IAAI;QAClB,UAAU,EAAE,IAAI;QAChB,KAAK;QACL,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CACtB,MAAc,EACd,GAAW,EACX,OAA0B,EACjB,EAAE;IACX,IAAI,UAA0C,CAAC;IAC/C,IAAI,CAAC;QACH,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,mBAAmB,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC;IACpD,CAAC;IACD,IAAI,CAAC,UAAU,EAAE,UAAU;QAAE,OAAO,SAAS,CAAC;IAC9C,IAAI,CAAC,CAAC,OAAO,IAAI,UAAU,CAAC;QAAE,OAAO,0BAA0B,CAAC;IAChE,OAAO,iBAAiB,CAAC,UAAU,CAAC,KAAK,EAAE;QACzC,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,KAAK,EAAE,OAAO,CAAC,KAAK,GAAG,CAAC;QACxB,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG;KAChD,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,OAA0B,EAAW,EAAE;IAC3E,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,MAAM;QAAE,OAAO,eAAe,MAAM,GAAG,CAAC;IAC5C,IAAI,OAAO,CAAC,KAAK,IAAI,EAAE;QAAE,OAAO,qBAAqB,CAAC;IACtD,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CACxC,CAAC,GAAG,EAAiB,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,QAAQ,CACpE,CAAC;QACF,MAAM,MAAM,GAAwC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YACtE,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;YACvC,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YACvD,IAAI,SAAS,KAAK,SAAS;gBAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,mBAAmB,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC;IACpD,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,KAAc,EACd,OAAO,GAAsB,EAAE,SAAS,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EACjE,EAAE;IACX,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC1C,OAAO,SAAS,CAAC,OAAO;QACtB,CAAC,CAAC,SAAS,CAAC,KAAK;QACjB,CAAC,CAAC,aAAa,CAAC,KAAe,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { NusmDevtoolsCommandResult } from "./types";
2
+ export { getNusmDevtoolsClient } from "./client";
3
+ export declare const parseNusmDevtoolsCommandResult: (value: unknown) => Readonly<NusmDevtoolsCommandResult> | undefined;
4
+ //# sourceMappingURL=protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/devtools/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAEzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAiBjD,eAAO,MAAM,8BAA8B,UAClC,OAAO,KACb,QAAQ,CAAC,yBAAyB,CAAC,GAAG,SA2CxC,CAAC"}
@@ -0,0 +1,58 @@
1
+ export { getNusmDevtoolsClient } from "./client";
2
+ const commandActions = new Set([
3
+ "refresh_all",
4
+ "refresh",
5
+ "reset_memory",
6
+ "replace_memory",
7
+ "replace_persisted",
8
+ "set_path",
9
+ "remove_path",
10
+ ]);
11
+ const commandStatuses = new Set([
12
+ "success",
13
+ "success_with_warning",
14
+ "error",
15
+ ]);
16
+ export const parseNusmDevtoolsCommandResult = (value) => {
17
+ try {
18
+ if (typeof value !== "object" || value === null)
19
+ return undefined;
20
+ const candidate = value;
21
+ if (!Object.hasOwn(candidate, "action") ||
22
+ !Object.hasOwn(candidate, "commandId") ||
23
+ !Object.hasOwn(candidate, "instanceId") ||
24
+ !Object.hasOwn(candidate, "status") ||
25
+ !Object.hasOwn(candidate, "storeId"))
26
+ return undefined;
27
+ const action = candidate.action;
28
+ const commandId = candidate.commandId;
29
+ const instanceId = candidate.instanceId;
30
+ const status = candidate.status;
31
+ const storeId = candidate.storeId;
32
+ const error = Object.hasOwn(candidate, "error")
33
+ ? candidate.error
34
+ : undefined;
35
+ if (typeof commandId !== "string" ||
36
+ commandId.length === 0 ||
37
+ typeof instanceId !== "string" ||
38
+ instanceId.length === 0 ||
39
+ typeof storeId !== "string" ||
40
+ storeId.length === 0 ||
41
+ !commandActions.has(action) ||
42
+ !commandStatuses.has(status) ||
43
+ (error !== undefined && typeof error !== "string"))
44
+ return undefined;
45
+ return Object.freeze({
46
+ action: action,
47
+ commandId,
48
+ error,
49
+ instanceId,
50
+ status: status,
51
+ storeId,
52
+ });
53
+ }
54
+ catch {
55
+ return undefined;
56
+ }
57
+ };
58
+ //# sourceMappingURL=protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/devtools/protocol.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEjD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAsC;IAClE,aAAa;IACb,SAAS;IACT,cAAc;IACd,gBAAgB;IAChB,mBAAmB;IACnB,UAAU;IACV,aAAa;CACd,CAAC,CAAC;AACH,MAAM,eAAe,GAAG,IAAI,GAAG,CAAsC;IACnE,SAAS;IACT,sBAAsB;IACtB,OAAO;CACR,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAC5C,KAAc,EACmC,EAAE;IACnD,IAAI,CAAC;QACH,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,SAAS,CAAC;QAClE,MAAM,SAAS,GAAG,KAAgC,CAAC;QACnD,IACE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC;YACnC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC;YACtC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC;YACvC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC;YACnC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC;YAEpC,OAAO,SAAS,CAAC;QACnB,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QAChC,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;QACtC,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;QACxC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QAChC,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;QAClC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC;YAC7C,CAAC,CAAC,SAAS,CAAC,KAAK;YACjB,CAAC,CAAC,SAAS,CAAC;QACd,IACE,OAAO,SAAS,KAAK,QAAQ;YAC7B,SAAS,CAAC,MAAM,KAAK,CAAC;YACtB,OAAO,UAAU,KAAK,QAAQ;YAC9B,UAAU,CAAC,MAAM,KAAK,CAAC;YACvB,OAAO,OAAO,KAAK,QAAQ;YAC3B,OAAO,CAAC,MAAM,KAAK,CAAC;YACpB,CAAC,cAAc,CAAC,GAAG,CAAC,MAA6C,CAAC;YAClE,CAAC,eAAe,CAAC,GAAG,CAAC,MAA6C,CAAC;YACnE,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;YAElD,OAAO,SAAS,CAAC;QACnB,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,MAAM,EAAE,MAA6C;YACrD,SAAS;YACT,KAAK;YACL,UAAU;YACV,MAAM,EAAE,MAA6C;YACrD,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const isRoundTrippableForDevtools: (value: unknown) => boolean;
2
+ export declare const stringifyForDevtools: (value: unknown) => string;
3
+ //# sourceMappingURL=serialize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../src/devtools/serialize.ts"],"names":[],"mappings":"AA2DA,eAAO,MAAM,2BAA2B,UAAW,OAAO,KAAG,OAM5D,CAAC;AAEF,eAAO,MAAM,oBAAoB,UAAW,OAAO,KAAG,MAMrD,CAAC"}
@@ -0,0 +1,71 @@
1
+ import { projectForDisplay } from "./projection";
2
+ const isJsonPrimitive = (value) => {
3
+ if (value === null)
4
+ return true;
5
+ if (typeof value === "string" || typeof value === "boolean")
6
+ return true;
7
+ return typeof value === "number" && Number.isFinite(value);
8
+ };
9
+ const isDataDescriptor = (descriptor) => descriptor !== undefined &&
10
+ "value" in descriptor &&
11
+ descriptor.get === undefined &&
12
+ descriptor.set === undefined;
13
+ const isJsonArray = (value, ancestors) => {
14
+ const keys = Reflect.ownKeys(value);
15
+ if (keys.some((key) => typeof key === "symbol"))
16
+ return false;
17
+ if (keys.length !== value.length + 1)
18
+ return false;
19
+ return Array.from({ length: value.length }, (_, index) => index).every((index) => {
20
+ const descriptor = Object.getOwnPropertyDescriptor(value, String(index));
21
+ return (isDataDescriptor(descriptor) &&
22
+ descriptor.enumerable === true &&
23
+ isJsonDomainValue(descriptor.value, ancestors));
24
+ });
25
+ };
26
+ const isJsonRecord = (value, ancestors) => {
27
+ const prototype = Object.getPrototypeOf(value);
28
+ if (prototype !== Object.prototype && prototype !== null)
29
+ return false;
30
+ const keys = Reflect.ownKeys(value);
31
+ if (keys.some((key) => typeof key === "symbol"))
32
+ return false;
33
+ if (keys.length !== Object.keys(value).length)
34
+ return false;
35
+ return keys.every((key) => {
36
+ const descriptor = Object.getOwnPropertyDescriptor(value, key);
37
+ return (isDataDescriptor(descriptor) &&
38
+ isJsonDomainValue(descriptor.value, ancestors));
39
+ });
40
+ };
41
+ const isJsonDomainValue = (value, ancestors) => {
42
+ if (isJsonPrimitive(value))
43
+ return true;
44
+ if (typeof value !== "object" || value === null)
45
+ return false;
46
+ if (ancestors.has(value))
47
+ return false;
48
+ ancestors.add(value);
49
+ const valid = Array.isArray(value)
50
+ ? isJsonArray(value, ancestors)
51
+ : isJsonRecord(value, ancestors);
52
+ ancestors.delete(value);
53
+ return valid;
54
+ };
55
+ export const isRoundTrippableForDevtools = (value) => {
56
+ try {
57
+ return isJsonDomainValue(value, new Set());
58
+ }
59
+ catch {
60
+ return false;
61
+ }
62
+ };
63
+ export const stringifyForDevtools = (value) => {
64
+ try {
65
+ return JSON.stringify(projectForDisplay(value), null, 2) ?? "undefined";
66
+ }
67
+ catch (error) {
68
+ return `[Unserializable: ${error instanceof Error ? error.message : String(error)}]`;
69
+ }
70
+ };
71
+ //# sourceMappingURL=serialize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../src/devtools/serialize.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ import type { HydrationStatus, NusmDevtoolsSnapshot, NusmEvent } from "../types";
2
+ export type NusmDevtoolsLocation = "memory" | "persisted";
3
+ export type NusmDevtoolsPath = Array<string | number>;
4
+ export type NusmDevtoolsCommandInput = {
5
+ action: "refresh_all";
6
+ } | {
7
+ action: "refresh";
8
+ instanceId: string;
9
+ storeId: string;
10
+ } | {
11
+ action: "reset_memory";
12
+ instanceId: string;
13
+ storeId: string;
14
+ } | {
15
+ action: "replace_memory";
16
+ instanceId: string;
17
+ storeId: string;
18
+ value: unknown;
19
+ } | {
20
+ action: "replace_persisted";
21
+ instanceId: string;
22
+ storeId: string;
23
+ value: unknown;
24
+ } | {
25
+ action: "set_path";
26
+ instanceId: string;
27
+ location: NusmDevtoolsLocation;
28
+ path: NusmDevtoolsPath;
29
+ storeId: string;
30
+ value: unknown;
31
+ } | {
32
+ action: "remove_path";
33
+ instanceId: string;
34
+ location: NusmDevtoolsLocation;
35
+ path: NusmDevtoolsPath;
36
+ storeId: string;
37
+ };
38
+ export type NusmDevtoolsCommand = NusmDevtoolsCommandInput & {
39
+ commandId: string;
40
+ };
41
+ export type NusmDevtoolsCommandResult = {
42
+ action: NusmDevtoolsCommand["action"];
43
+ commandId: string;
44
+ error?: string;
45
+ instanceId: string;
46
+ status: "success" | "success_with_warning" | "error";
47
+ storeId: string;
48
+ };
49
+ export type NusmDevtoolsEventMap = {
50
+ command: NusmDevtoolsCommand;
51
+ commandResult: NusmDevtoolsCommandResult;
52
+ event: NusmEvent;
53
+ hydration: {
54
+ hydration: HydrationStatus;
55
+ instanceId: string;
56
+ storeId: string;
57
+ };
58
+ snapshot: NusmDevtoolsSnapshot;
59
+ };
60
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/devtools/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACpB,SAAS,EACV,MAAM,UAAU,CAAC;AAElB,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE1D,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;AAEtD,MAAM,MAAM,wBAAwB,GAChC;IAAE,MAAM,EAAE,aAAa,CAAA;CAAE,GACzB;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC1D;IAAE,MAAM,EAAE,cAAc,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC/D;IACE,MAAM,EAAE,gBAAgB,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;CAChB,GACD;IACE,MAAM,EAAE,mBAAmB,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;CAChB,GACD;IACE,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;CAChB,GACD;IACE,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEN,MAAM,MAAM,mBAAmB,GAAG,wBAAwB,GAAG;IAC3D,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,GAAG,sBAAsB,GAAG,OAAO,CAAC;IACrD,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,mBAAmB,CAAC;IAC7B,aAAa,EAAE,yBAAyB,CAAC;IACzC,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,EAAE;QACT,SAAS,EAAE,eAAe,CAAC;QAC3B,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,QAAQ,EAAE,oBAAoB,CAAC;CAChC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/devtools/types.ts"],"names":[],"mappings":""}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  export { createIndexDbAdapter } from "./adapters/indexDbAdapter";
2
2
  export { createLocalStorageAdapter } from "./adapters/localStorageAdapter";
3
3
  export { createSessionStorageAdapter } from "./adapters/sessionStorageAdapter";
4
- export { createNusmStore } from "./core/createNusmStore";
5
- export { createNusmDevtoolsPlugin } from "./devtools/plugin";
6
- export type { AdapterEvent, AdapterEventType, CreateNusmStoreOptions, HydrateConfig, HydrationState, HydrationStatus, NusmDevtoolsSnapshot, IndexDbAdapterOptions, NusmAdapter, NusmEvent, NusmEventType, NusmPacerConfig, NusmStore, PersistSlice, StorageAdapterOptions, StorageLike, } from "./types";
4
+ export { createNusmStore } from "./nusm";
5
+ export type { AdapterEvent, AdapterEventType, CreateNusmStoreOptions, HydrateConfig, HydrationState, HydrationStatus, IndexDbAdapterOptions, NusmAdapter, NusmDevtoolsSnapshot, NusmEvent, NusmEventType, NusmPacerConfig, NusmStore, PersistSlice, ReadonlyHydrationStatus, StorageAdapterOptions, StorageLike, } from "./types";
7
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,aAAa,EACb,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,WAAW,EACX,SAAS,EACT,aAAa,EACb,eAAe,EACf,SAAS,EACT,YAAY,EACZ,qBAAqB,EACrB,WAAW,GACZ,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAEzC,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,aAAa,EACb,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,WAAW,EACX,oBAAoB,EACpB,SAAS,EACT,aAAa,EACb,eAAe,EACf,SAAS,EACT,YAAY,EACZ,uBAAuB,EACvB,qBAAqB,EACrB,WAAW,GACZ,MAAM,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,5 @@
1
1
  export { createIndexDbAdapter } from "./adapters/indexDbAdapter";
2
2
  export { createLocalStorageAdapter } from "./adapters/localStorageAdapter";
3
3
  export { createSessionStorageAdapter } from "./adapters/sessionStorageAdapter";
4
- export { createNusmStore } from "./core/createNusmStore";
5
- export { createNusmDevtoolsPlugin } from "./devtools/plugin";
4
+ export { createNusmStore } from "./nusm";
6
5
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC"}
package/dist/nusm.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ import { batch, Store } from "@tanstack/store";
2
+ import type { CreateNusmStoreOptions, NusmStore } from "./types";
3
+ export { batch, Store };
4
+ export declare function createNusmStore<TState>(initialState: TState, options?: CreateNusmStoreOptions<TState>): NusmStore<TState>;
5
+ //# sourceMappingURL=nusm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nusm.d.ts","sourceRoot":"","sources":["../src/nusm.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAS/C,OAAO,KAAK,EAEV,sBAAsB,EAItB,SAAS,EACV,MAAM,SAAS,CAAC;AAyFjB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAGxB,wBAAgB,eAAe,CAAC,MAAM,EACpC,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,sBAAsB,CAAC,MAAM,CAAC,GACvC,SAAS,CAAC,MAAM,CAAC,CA+mCnB"}