@plitzi/nexus 0.32.1 → 0.32.2

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 (79) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +181 -22
  3. package/dist/advanced/index.d.ts +0 -2
  4. package/dist/advanced/index.mjs +10 -16
  5. package/dist/async/index.d.ts +0 -2
  6. package/dist/async/index.mjs +1 -3
  7. package/dist/createStore/createStore.d.ts +3 -43
  8. package/dist/createStore/createStore.mjs +73 -97
  9. package/dist/createStore/helpers/PathTrie.mjs +14 -14
  10. package/dist/createStore/helpers/createChainReads.d.ts +1 -1
  11. package/dist/createStore/helpers/createChainReads.mjs +26 -17
  12. package/dist/createStore/helpers/createSetState.mjs +11 -9
  13. package/dist/createStore/helpers/forwardParentChanges.mjs +16 -13
  14. package/dist/createStore/index.mjs +3 -3
  15. package/dist/derived/index.d.ts +0 -1
  16. package/dist/derived/index.mjs +1 -2
  17. package/dist/entities/createEntityStore.d.ts +0 -3
  18. package/dist/entities/createEntityStore.mjs +71 -78
  19. package/dist/env.d.ts +4 -0
  20. package/dist/env.mjs +3 -0
  21. package/dist/history/index.d.ts +0 -2
  22. package/dist/history/index.mjs +1 -2
  23. package/dist/index.d.ts +23 -16
  24. package/dist/index.mjs +15 -23
  25. package/dist/middleware/historyMiddleware.mjs +31 -31
  26. package/dist/middleware/persistMiddleware.mjs +11 -11
  27. package/dist/middleware/recorderMiddleware.d.ts +21 -0
  28. package/dist/middleware/recorderMiddleware.mjs +33 -0
  29. package/dist/{StoreContext.d.ts → react/StoreContext.d.ts} +1 -1
  30. package/dist/{StoreContext.mjs → react/StoreContext.mjs} +1 -1
  31. package/dist/{StoreProvider.d.ts → react/StoreProvider.d.ts} +4 -2
  32. package/dist/react/StoreProvider.mjs +62 -0
  33. package/dist/react/createStoreHook.d.ts +44 -0
  34. package/dist/react/createStoreHook.mjs +27 -0
  35. package/dist/{createStore → react}/hooks/shared.mjs +2 -2
  36. package/dist/{async → react}/hooks/useAsync.d.ts +1 -1
  37. package/dist/{async → react}/hooks/useAsync.mjs +1 -1
  38. package/dist/{async → react}/hooks/useAsyncValue.d.ts +1 -1
  39. package/dist/{async → react}/hooks/useAsyncValue.mjs +1 -1
  40. package/dist/{derived → react}/hooks/useDerived.d.ts +1 -1
  41. package/dist/{derived → react}/hooks/useDerived.mjs +1 -1
  42. package/dist/react/hooks/useEntity.d.ts +10 -0
  43. package/dist/react/hooks/useEntity.mjs +23 -0
  44. package/dist/{createStore → react}/hooks/useStore.mjs +2 -2
  45. package/dist/{createStore → react}/hooks/useStoreById.mjs +2 -2
  46. package/dist/{createStore → react}/hooks/useStoreGetter.mjs +1 -1
  47. package/dist/react/hooks/useStoreHistory.mjs +29 -0
  48. package/dist/{createStore → react}/hooks/useStoreSetter.mjs +1 -1
  49. package/dist/{createStore → react}/hooks/useStoreSync.mjs +2 -2
  50. package/dist/react/index.d.ts +17 -0
  51. package/dist/react/index.mjs +16 -0
  52. package/dist/{helpers → react}/useIsomorphicLayoutEffect.mjs +1 -1
  53. package/dist/types/StoreTypes.d.ts +3 -0
  54. package/dist/vue/index.d.ts +8 -0
  55. package/dist/vue/index.mjs +7 -0
  56. package/dist/vue/injection.d.ts +3 -0
  57. package/dist/vue/injection.mjs +13 -0
  58. package/dist/vue/useAsync.d.ts +3 -0
  59. package/dist/vue/useAsync.mjs +10 -0
  60. package/dist/vue/useDerived.d.ts +3 -0
  61. package/dist/vue/useDerived.mjs +10 -0
  62. package/dist/vue/useEntity.d.ts +11 -0
  63. package/dist/vue/useEntity.mjs +29 -0
  64. package/dist/vue/useStore.d.ts +13 -0
  65. package/dist/vue/useStore.mjs +31 -0
  66. package/dist/vue/useStoreHistory.d.ts +12 -0
  67. package/dist/vue/useStoreHistory.mjs +33 -0
  68. package/logo.svg +77 -22
  69. package/package.json +127 -58
  70. package/dist/StoreProvider.mjs +0 -57
  71. package/dist/history/hooks/useStoreHistory.mjs +0 -24
  72. /package/dist/{createStore → react}/hooks/shared.d.ts +0 -0
  73. /package/dist/{createStore → react}/hooks/useStore.d.ts +0 -0
  74. /package/dist/{createStore → react}/hooks/useStoreById.d.ts +0 -0
  75. /package/dist/{createStore → react}/hooks/useStoreGetter.d.ts +0 -0
  76. /package/dist/{history → react}/hooks/useStoreHistory.d.ts +0 -0
  77. /package/dist/{createStore → react}/hooks/useStoreSetter.d.ts +0 -0
  78. /package/dist/{createStore → react}/hooks/useStoreSync.d.ts +0 -0
  79. /package/dist/{helpers → react}/useIsomorphicLayoutEffect.d.ts +0 -0
@@ -1,5 +1,5 @@
1
- import e from "../../helpers/parsePath.mjs";
2
- import t from "./Subscribers.mjs";
1
+ import e from "./Subscribers.mjs";
2
+ import t from "../../helpers/parsePath.mjs";
3
3
  //#region src/createStore/helpers/PathTrie.ts
4
4
  var n = class {
5
5
  subscribers = null;
@@ -10,16 +10,16 @@ var n = class {
10
10
  root = new n();
11
11
  size = 0;
12
12
  add(r, i) {
13
- let a = e(r), o = this.direct.get(r);
13
+ let a = t(r), o = this.direct.get(r);
14
14
  if (!o) {
15
- o = new t(), this.direct.set(r, o);
16
- let e = this.root;
17
- for (let t of a) {
18
- e.children ||= /* @__PURE__ */ new Map();
19
- let r = e.children.get(t);
20
- r || (r = new n(), e.children.set(t, r)), e = r;
15
+ o = new e(), this.direct.set(r, o);
16
+ let t = this.root;
17
+ for (let e of a) {
18
+ t.children ||= /* @__PURE__ */ new Map();
19
+ let r = t.children.get(e);
20
+ r || (r = new n(), t.children.set(e, r)), t = r;
21
21
  }
22
- e.subscribers = o, this.size++;
22
+ t.subscribers = o, this.size++;
23
23
  let i = "";
24
24
  for (let e = 0; e < a.length - 1; e++) {
25
25
  i = i ? `${i}.${a[e]}` : a[e];
@@ -59,16 +59,16 @@ var n = class {
59
59
  getDescendants(e) {
60
60
  return this.descendants.get(e);
61
61
  }
62
- forEachAffected(t, n, r) {
62
+ forEachAffected(e, n, r) {
63
63
  let i = (e) => {
64
64
  e && e.forEach(n, r);
65
65
  };
66
- if (typeof t != "string") {
66
+ if (typeof e != "string") {
67
67
  this.direct.forEach(i);
68
68
  return;
69
69
  }
70
- let a = e(t);
71
- this.walkAncestors(a, i), this.descendants.get(t)?.forEach((e) => i(this.direct.get(e)));
70
+ let a = t(e);
71
+ this.walkAncestors(a, i), this.descendants.get(e)?.forEach((e) => i(this.direct.get(e)));
72
72
  }
73
73
  clear() {
74
74
  this.direct.clear(), this.descendants.clear(), this.root.children = null, this.root.subscribers = null, this.size = 0;
@@ -7,4 +7,4 @@ export type ChainReads<TState extends object> = {
7
7
  resetCache: () => void;
8
8
  getMergeCount: () => number;
9
9
  };
10
- export declare function createChainReads<TState extends object>(getOwnState: () => TState, getOwnSnapshot: () => TState, parent: StoreApi<TState> | undefined): ChainReads<TState>;
10
+ export declare function createChainReads<TState extends object>(getOwnState: () => TState, getOwnSnapshot: () => TState, parent: StoreApi<TState> | undefined, exclusive?: ReadonlyArray<string>): ChainReads<TState>;
@@ -1,35 +1,44 @@
1
- import e from "../../helpers/getByPath.mjs";
2
- import { deepMerge as t, isPlainObject as n } from "./deepMerge.mjs";
1
+ import { deepMerge as e, isPlainObject as t } from "./deepMerge.mjs";
2
+ import n from "../../helpers/getByPath.mjs";
3
3
  //#region src/createStore/helpers/createChainReads.ts
4
- function r(r, i, a) {
4
+ function r(r, i, a, o) {
5
5
  if (!a) return {
6
6
  getState: i,
7
- getPath: (t) => e(r(), t),
7
+ getPath: (e) => n(r(), e),
8
8
  invalidate: () => {},
9
9
  resetCache: () => {},
10
10
  getMergeCount: () => 0
11
11
  };
12
- let o = a, s = !0, c = !1, l, u = 0, d = /* @__PURE__ */ new Map(), f = () => (u++, t(o.getState(), i())), p = () => ((s || l === void 0) && (l = f(), s = !1), l), m = (t) => {
13
- let i = e(r(), t);
14
- if (i === void 0) return o.getPath(t);
15
- let a = o.getPath(t);
16
- return a === void 0 || !n(i) || !n(a) ? i : e(p(), t);
12
+ let s = a, c = o && o.length > 0 ? new Set(o) : void 0, l = !0, u = !1, d, f = 0, p = /* @__PURE__ */ new Map(), m = () => {
13
+ f++;
14
+ let t = i(), n = e(s.getState(), t);
15
+ if (c) for (let e of c) t[e] !== void 0 && (n[e] = t[e]);
16
+ return n;
17
+ }, h = () => ((l || d === void 0) && (d = m(), l = !1), d), g = (e) => {
18
+ if (c) {
19
+ let t = e.indexOf("."), i = t === -1 ? e : e.slice(0, t);
20
+ if (c.has(i) && r()[i] !== void 0) return n(r(), e);
21
+ }
22
+ let i = n(r(), e);
23
+ if (i === void 0) return s.getPath(e);
24
+ let a = s.getPath(e);
25
+ return a === void 0 || !t(i) || !t(a) ? i : n(h(), e);
17
26
  };
18
27
  return {
19
- getState: p,
28
+ getState: h,
20
29
  getPath: (e) => {
21
- if (c) d.clear(), c = !1;
22
- else if (d.has(e)) return d.get(e);
23
- let t = m(e);
24
- return d.set(e, t), t;
30
+ if (u) p.clear(), u = !1;
31
+ else if (p.has(e)) return p.get(e);
32
+ let t = g(e);
33
+ return p.set(e, t), t;
25
34
  },
26
35
  invalidate: () => {
27
- s = !0, c = !0;
36
+ l = !0, u = !0;
28
37
  },
29
38
  resetCache: () => {
30
- d.clear(), l = void 0, s = !0, c = !1;
39
+ p.clear(), d = void 0, l = !0, u = !1;
31
40
  },
32
- getMergeCount: () => u
41
+ getMergeCount: () => f
33
42
  };
34
43
  }
35
44
  //#endregion
@@ -65,15 +65,17 @@ function u(u) {
65
65
  t !== o && b(t, "notify", void 0);
66
66
  }
67
67
  }
68
- }, O = (e, t, n) => {
69
- let r = {
68
+ }, O = (e, n, r) => {
69
+ let i = {
70
70
  path: e,
71
- prev: t,
72
- next: n
73
- }, { items: i } = v;
71
+ prev: n,
72
+ next: r,
73
+ prevValue: e === void 0 ? n : t(n, e),
74
+ nextValue: e === void 0 ? r : t(r, e)
75
+ }, { items: a } = v;
74
76
  v.begin();
75
77
  try {
76
- let t = s(i, r, i.length);
78
+ let t = s(a, i, a.length);
77
79
  t !== o && b(t, "onChange", e);
78
80
  } finally {
79
81
  v.end();
@@ -139,9 +141,9 @@ function u(u) {
139
141
  }
140
142
  let b = e(i), w;
141
143
  if (y.length > 0) {
142
- let e = t(u, i), n = C(i, typeof o == "function" ? o(e) : o, e);
143
- if (n === a) return;
144
- w = r(u, i, b, n, !1);
144
+ let e = t(u, i), n = typeof o == "function" ? o(e) : o, s = C(i, n, e);
145
+ if (s === a) return;
146
+ w = r(u, i, b, s, !1);
145
147
  } else w = r(u, i, b, o, typeof o == "function");
146
148
  if (w === n) return;
147
149
  let T = w;
@@ -1,23 +1,26 @@
1
+ import e from "../../helpers/getByPath.mjs";
1
2
  //#region src/createStore/helpers/forwardParentChanges.ts
2
- function e(e, t, n, r, i, a, o) {
3
- let s;
3
+ function t(t, n, r, i, a, o, s) {
4
+ let c;
4
5
  return {
5
- unsubscribe: e.subscribe((e) => {
6
- o();
7
- let c = e;
8
- if (t.forEach((t) => t(e), (e) => a(e, "notify", c)), n.size > 0 && n.forEachAffected(e, (t) => t(e), (e) => a(e, "notify", c)), r.length > 0) {
9
- let e = i(), t = {
10
- path: c,
11
- prev: s ?? e,
12
- next: e
6
+ unsubscribe: t.subscribe((t) => {
7
+ s();
8
+ let l = t;
9
+ if (n.forEach((e) => e(t), (e) => o(e, "notify", l)), r.size > 0 && r.forEachAffected(t, (e) => e(t), (e) => o(e, "notify", l)), i.length > 0) {
10
+ let t = a(), n = c ?? t, r = {
11
+ path: l,
12
+ prev: n,
13
+ next: t,
14
+ prevValue: l === void 0 ? n : e(n, l),
15
+ nextValue: l === void 0 ? t : e(t, l)
13
16
  };
14
- s = e, r.forEach((e) => e(t), (e) => a(e, "onChange", c));
17
+ c = t, i.forEach((e) => e(r), (e) => o(e, "onChange", l));
15
18
  }
16
19
  }),
17
20
  seedBaseline: () => {
18
- s ??= i();
21
+ c ??= a();
19
22
  }
20
23
  };
21
24
  }
22
25
  //#endregion
23
- export { e as forwardParentChanges };
26
+ export { t as forwardParentChanges };
@@ -1,5 +1,5 @@
1
- import e, { createStoreHook as t } from "./createStore.mjs";
1
+ import e from "./createStore.mjs";
2
2
  //#region src/createStore/index.ts
3
- var n = e;
3
+ var t = e;
4
4
  //#endregion
5
- export { t as createStoreHook, n as default };
5
+ export { t as default };
@@ -1,3 +1,2 @@
1
1
  export { createDerived } from './createDerived';
2
- export { useDerived } from './hooks/useDerived';
3
2
  export type { Derived, DerivedOptions } from './createDerived';
@@ -1,3 +1,2 @@
1
1
  import { createDerived as e } from "./createDerived.mjs";
2
- import { useDerived as t } from "./hooks/useDerived.mjs";
3
- export { e as createDerived, t as useDerived };
2
+ export { e as createDerived };
@@ -30,9 +30,6 @@ export type EntityStore<T> = {
30
30
  subscribeOne: (id: EntityId, listener: EntityChangeListener) => () => void;
31
31
  subscribeIds: (listener: EntityChangeListener) => () => void;
32
32
  subscribeAll: (listener: EntityChangeListener) => () => void;
33
- useOne: (id: EntityId) => T | undefined;
34
- useIds: () => string[];
35
- useAll: () => T[];
36
33
  destroy: () => void;
37
34
  };
38
35
  export declare function createEntityStore<T>(initialEntities?: readonly T[], options?: EntityStoreOptions<T>): EntityStore<T>;
@@ -1,102 +1,95 @@
1
1
  import e from "../createStore/helpers/Subscribers.mjs";
2
- import { useCallback as t, useSyncExternalStore as n } from "react";
3
2
  //#region src/entities/createEntityStore.ts
4
- function r(r = [], i = {}) {
5
- let a = i.selectId ?? ((e) => e.id), o = i.sortComparer, s = (e) => String(a(e)), c = /* @__PURE__ */ new Map();
6
- for (let e of r) c.set(s(e), e);
7
- let l = /* @__PURE__ */ new Map(), u = new e(), d = new e(), f, p, m = 0, h = /* @__PURE__ */ new Set(), g = !1, _ = !1, v = (e) => {
3
+ function t(t = [], n = {}) {
4
+ let r = n.selectId ?? ((e) => e.id), i = n.sortComparer, a = (e) => String(r(e)), o = /* @__PURE__ */ new Map();
5
+ for (let e of t) o.set(a(e), e);
6
+ let s = /* @__PURE__ */ new Map(), c = new e(), l = new e(), u, d, f = 0, p = /* @__PURE__ */ new Set(), m = !1, h = !1, g = (e) => {
8
7
  e && e.length > 0 && e.forEach((e) => e());
9
- }, y = (e, t) => {
10
- if (t && (f = void 0), p = void 0, m > 0) {
11
- h.add(e), g ||= t, _ = !0;
8
+ }, _ = (e, t) => {
9
+ if (t && (u = void 0), d = void 0, f > 0) {
10
+ p.add(e), m ||= t, h = !0;
12
11
  return;
13
12
  }
14
- v(l.get(e)), t && v(u), v(d);
15
- }, b = () => {
16
- let e = [...h], t = g, n = _;
17
- h.clear(), g = !1, _ = !1;
18
- for (let t of e) v(l.get(t));
19
- t && v(u), n && v(d);
20
- }, x = (e) => {
21
- m++;
13
+ g(s.get(e)), t && g(c), g(l);
14
+ }, v = () => {
15
+ let e = [...p], t = m, n = h;
16
+ p.clear(), m = !1, h = !1;
17
+ for (let t of e) g(s.get(t));
18
+ t && g(c), n && g(l);
19
+ }, y = (e) => {
20
+ f++;
22
21
  try {
23
22
  e();
24
23
  } finally {
25
- m--, m === 0 && _ && b();
24
+ f--, f === 0 && h && v();
26
25
  }
27
- }, S = (e, t, n) => {
28
- let r = s(e), i = c.get(r), a = i === void 0;
29
- if (t && !a) return;
30
- let o = n && !a ? {
26
+ }, b = (e, t, n) => {
27
+ let r = a(e), i = o.get(r), s = i === void 0;
28
+ if (t && !s) return;
29
+ let c = n && !s ? {
31
30
  ...i,
32
31
  ...e
33
32
  } : e;
34
- o !== i && (c.set(r, o), y(r, a));
33
+ c !== i && (o.set(r, c), _(r, s));
34
+ }, x = (e) => {
35
+ b(e, !1, !1);
36
+ }, S = (e) => {
37
+ b(e, !0, !1);
35
38
  }, C = (e) => {
36
- S(e, !1, !1);
37
- }, w = (e) => {
38
- S(e, !0, !1);
39
- }, T = (e) => {
40
- S(e, !1, !0);
41
- }, E = (e, t) => {
42
- let n = String(e), r = c.get(n);
43
- r !== void 0 && (c.set(n, {
39
+ b(e, !1, !0);
40
+ }, w = (e, t) => {
41
+ let n = String(e), r = o.get(n);
42
+ r !== void 0 && (o.set(n, {
44
43
  ...r,
45
44
  ...t
46
- }), y(n, !1));
47
- }, D = (e) => {
45
+ }), _(n, !1));
46
+ }, T = (e) => {
48
47
  let t = String(e);
49
- c.has(t) && (c.delete(t), y(t, !0));
50
- }, O = (e) => c.get(String(e)), k = () => f ??= [...c.keys()], A = () => {
51
- if (p === void 0) {
52
- let e = [...c.values()];
53
- p = o ? e.sort(o) : e;
54
- }
55
- return p;
56
- }, j = (t, n) => {
57
- let r = String(t), i = l.get(r);
58
- i || (i = new e(), l.set(r, i));
59
- let a = i, o = a.add(n);
60
- return () => {
61
- o(), a.length === 0 && l.get(r) === a && l.delete(r);
62
- };
63
- }, M = (e) => u.add(e), N = (e) => d.add(e);
48
+ o.has(t) && (o.delete(t), _(t, !0));
49
+ };
64
50
  return {
65
- selectId: a,
66
- getOne: O,
67
- getIds: k,
68
- getAll: A,
69
- has: (e) => c.has(String(e)),
70
- size: () => c.size,
71
- setOne: C,
72
- setMany: (e) => x(() => e.forEach(C)),
73
- setAll: (e) => x(() => {
74
- for (let e of [...c.keys()]) D(e);
75
- e.forEach(C);
51
+ selectId: r,
52
+ getOne: (e) => o.get(String(e)),
53
+ getIds: () => u ??= [...o.keys()],
54
+ getAll: () => {
55
+ if (d === void 0) {
56
+ let e = [...o.values()];
57
+ d = i ? e.sort(i) : e;
58
+ }
59
+ return d;
60
+ },
61
+ has: (e) => o.has(String(e)),
62
+ size: () => o.size,
63
+ setOne: x,
64
+ setMany: (e) => y(() => e.forEach(x)),
65
+ setAll: (e) => y(() => {
66
+ for (let e of [...o.keys()]) T(e);
67
+ e.forEach(x);
76
68
  }),
77
- addOne: w,
78
- addMany: (e) => x(() => e.forEach(w)),
79
- upsertOne: T,
80
- upsertMany: (e) => x(() => e.forEach(T)),
81
- updateOne: E,
82
- updateMany: (e) => x(() => e.forEach(({ id: e, changes: t }) => E(e, t))),
83
- removeOne: D,
84
- removeMany: (e) => x(() => e.forEach(D)),
85
- removeAll: () => x(() => [...c.keys()].forEach(D)),
86
- batch: x,
87
- subscribeOne: j,
88
- subscribeIds: M,
89
- subscribeAll: N,
90
- useOne: (e) => {
91
- let r = String(e), i = t((e) => j(r, e), [r]), a = t(() => c.get(r), [r]);
92
- return n(i, a, a);
69
+ addOne: S,
70
+ addMany: (e) => y(() => e.forEach(S)),
71
+ upsertOne: C,
72
+ upsertMany: (e) => y(() => e.forEach(C)),
73
+ updateOne: w,
74
+ updateMany: (e) => y(() => e.forEach(({ id: e, changes: t }) => w(e, t))),
75
+ removeOne: T,
76
+ removeMany: (e) => y(() => e.forEach(T)),
77
+ removeAll: () => y(() => [...o.keys()].forEach(T)),
78
+ batch: y,
79
+ subscribeOne: (t, n) => {
80
+ let r = String(t), i = s.get(r);
81
+ i || (i = new e(), s.set(r, i));
82
+ let a = i, o = a.add(n);
83
+ return () => {
84
+ o(), a.length === 0 && s.get(r) === a && s.delete(r);
85
+ };
93
86
  },
94
- useIds: () => n(M, k, k),
95
- useAll: () => n(N, A, A),
87
+ subscribeIds: (e) => c.add(e),
88
+ subscribeAll: (e) => l.add(e),
96
89
  destroy: () => {
97
- c.clear(), l.clear(), u.clear(), d.clear(), f = void 0, p = void 0;
90
+ o.clear(), s.clear(), c.clear(), l.clear(), u = void 0, d = void 0;
98
91
  }
99
92
  };
100
93
  }
101
94
  //#endregion
102
- export { r as createEntityStore };
95
+ export { t as createEntityStore };
package/dist/env.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ export declare const MODE: string;
2
+ export declare const isProd: boolean;
3
+ export declare const isDev: boolean;
4
+ export declare const isTest: boolean;
package/dist/env.mjs ADDED
@@ -0,0 +1,3 @@
1
+ var e = typeof process < "u" && process.env.NODE_ENV ? process.env.NODE_ENV : "production", t = e === "production", n = !t, r = e === "test";
2
+ //#endregion
3
+ export { e as MODE, n as isDev, t as isProd, r as isTest };
@@ -1,4 +1,2 @@
1
1
  export { getStoreHistory } from '../middleware/historyMiddleware';
2
- export { useStoreHistory } from './hooks/useStoreHistory';
3
2
  export type { HistoryEntry, HistorySnapshot, StoreHistory, StoreHistoryOptions } from '../middleware/historyMiddleware';
4
- export type { UseStoreHistoryReturn } from './hooks/useStoreHistory';
@@ -1,3 +1,2 @@
1
1
  import { getStoreHistory as e } from "../middleware/historyMiddleware.mjs";
2
- import { useStoreHistory as t } from "./hooks/useStoreHistory.mjs";
3
- export { e as getStoreHistory, t as useStoreHistory };
2
+ export { e as getStoreHistory };
package/dist/index.d.ts CHANGED
@@ -1,18 +1,25 @@
1
- import { default as createStore } from './createStore';
2
- import { default as useStoreById } from './createStore/hooks/useStoreById';
3
- import { default as useStoreSetter } from './createStore/hooks/useStoreSetter';
4
- import { default as StoreProvider } from './StoreProvider';
5
- export * from './createStore';
6
- export * from './StoreProvider';
7
- export * from './types';
8
- export { createStore, StoreProvider };
9
- export * from './async';
10
- export * from './derived';
11
- export * from './entities';
12
- export * from './history';
13
- export * from './middleware';
14
- export * from './createStore/hooks/useStoreSetter';
15
- export * from './createStore/hooks/useStoreById';
16
- export { useStoreById, useStoreSetter };
1
+ export { default as createStore } from './createStore/createStore';
17
2
  export { setCodegenEnabled } from './createStore/helpers/writeByPath';
3
+ export { createAsync } from './async/createAsync';
4
+ export { createDerived } from './derived/createDerived';
5
+ export { createEntityAdapter } from './entities/createEntityAdapter';
6
+ export { createEntityStore } from './entities/createEntityStore';
7
+ export { loggerMiddleware } from './middleware/loggerMiddleware';
8
+ export { persistMiddleware } from './middleware/persistMiddleware';
9
+ export { historyMiddleware } from './middleware/historyMiddleware';
10
+ export { reduxDevToolsMiddleware } from './middleware/reduxDevToolsMiddleware';
11
+ export { createRecorder } from './middleware/recorderMiddleware';
12
+ export { cascade } from './middleware/cascade';
13
+ export { getStoreHistory } from './middleware/historyMiddleware';
18
14
  export { createServerSnapshot, isServerSnapshot } from './rsc';
15
+ export * from './types';
16
+ export type { CreateStoreOptions } from './createStore/createStore';
17
+ export type { AsyncOptions, AsyncResource, AsyncSnapshot, AsyncStatus } from './async/createAsync';
18
+ export type { Derived, DerivedOptions } from './derived/createDerived';
19
+ export type { EntityAdapter, EntityAdapterOptions, EntityId, EntityMap, EntityUpdate, EntityUpdater } from './entities/createEntityAdapter';
20
+ export type { EntityStore, EntityStoreOptions, EntityChangeListener } from './entities/createEntityStore';
21
+ export type { LoggerOptions } from './middleware/loggerMiddleware';
22
+ export type { PersistOptions, PersistStorage, PersistTarget, PersistTargetOption } from './middleware/persistMiddleware';
23
+ export type { ReduxDevToolsOptions } from './middleware/reduxDevToolsMiddleware';
24
+ export type { Recorder, RecorderEntry, RecorderOptions } from './middleware/recorderMiddleware';
25
+ export type { HistoryEntry, HistorySnapshot, StoreHistory, StoreHistoryOptions } from './middleware/historyMiddleware';
package/dist/index.mjs CHANGED
@@ -1,23 +1,15 @@
1
- import { StoreContext as e, StoreRegistryContext as t } from "./StoreContext.mjs";
2
- import n from "./createStore/hooks/useStoreById.mjs";
3
- import r from "./createStore/hooks/useStoreSetter.mjs";
4
- import { createAsync as i } from "./async/createAsync.mjs";
5
- import { useAsync as a } from "./async/hooks/useAsync.mjs";
6
- import { useAsyncValue as o } from "./async/hooks/useAsyncValue.mjs";
7
- import { createDerived as s } from "./derived/createDerived.mjs";
8
- import { useDerived as c } from "./derived/hooks/useDerived.mjs";
9
- import { createEntityAdapter as l } from "./entities/createEntityAdapter.mjs";
10
- import { createEntityStore as u } from "./entities/createEntityStore.mjs";
11
- import { getStoreHistory as d, historyMiddleware as f } from "./middleware/historyMiddleware.mjs";
12
- import { useStoreHistory as p } from "./history/hooks/useStoreHistory.mjs";
13
- import { loggerMiddleware as m } from "./middleware/loggerMiddleware.mjs";
14
- import { persistMiddleware as h } from "./middleware/persistMiddleware.mjs";
15
- import { reduxDevToolsMiddleware as g } from "./middleware/reduxDevToolsMiddleware.mjs";
16
- import { cascade as _ } from "./middleware/cascade.mjs";
17
- import { setCodegenEnabled as v } from "./createStore/helpers/writeByPath.mjs";
18
- import { CANCEL as y } from "./types/StoreTypes.mjs";
19
- import { createStoreHook as b } from "./createStore/createStore.mjs";
20
- import x from "./createStore/index.mjs";
21
- import { createServerSnapshot as S, isServerSnapshot as C } from "./rsc/index.mjs";
22
- import w from "./StoreProvider.mjs";
23
- export { y as CANCEL, e as StoreContext, w as StoreProvider, t as StoreRegistryContext, _ as cascade, i as createAsync, s as createDerived, l as createEntityAdapter, u as createEntityStore, S as createServerSnapshot, x as createStore, b as createStoreHook, d as getStoreHistory, f as historyMiddleware, C as isServerSnapshot, m as loggerMiddleware, h as persistMiddleware, g as reduxDevToolsMiddleware, v as setCodegenEnabled, a as useAsync, o as useAsyncValue, c as useDerived, n as useStoreById, p as useStoreHistory, r as useStoreSetter };
1
+ import { createAsync as e } from "./async/createAsync.mjs";
2
+ import { createDerived as t } from "./derived/createDerived.mjs";
3
+ import { createEntityAdapter as n } from "./entities/createEntityAdapter.mjs";
4
+ import { createEntityStore as r } from "./entities/createEntityStore.mjs";
5
+ import { getStoreHistory as i, historyMiddleware as a } from "./middleware/historyMiddleware.mjs";
6
+ import { loggerMiddleware as o } from "./middleware/loggerMiddleware.mjs";
7
+ import { persistMiddleware as s } from "./middleware/persistMiddleware.mjs";
8
+ import { reduxDevToolsMiddleware as c } from "./middleware/reduxDevToolsMiddleware.mjs";
9
+ import { cascade as l } from "./middleware/cascade.mjs";
10
+ import { setCodegenEnabled as u } from "./createStore/helpers/writeByPath.mjs";
11
+ import { CANCEL as d } from "./types/StoreTypes.mjs";
12
+ import f from "./createStore/createStore.mjs";
13
+ import { createRecorder as p } from "./middleware/recorderMiddleware.mjs";
14
+ import { createServerSnapshot as m, isServerSnapshot as h } from "./rsc/index.mjs";
15
+ export { d as CANCEL, l as cascade, e as createAsync, t as createDerived, n as createEntityAdapter, r as createEntityStore, p as createRecorder, m as createServerSnapshot, f as createStore, i as getStoreHistory, a as historyMiddleware, h as isServerSnapshot, o as loggerMiddleware, s as persistMiddleware, c as reduxDevToolsMiddleware, u as setCodegenEnabled };
@@ -1,27 +1,27 @@
1
- import e from "../helpers/getByPath.mjs";
2
- import { isDisabled as t } from "./isDisabled.mjs";
3
- import { isPlainObject as n } from "../createStore/helpers/deepMerge.mjs";
1
+ import { isDisabled as e } from "./isDisabled.mjs";
2
+ import { isPlainObject as t } from "../createStore/helpers/deepMerge.mjs";
3
+ import n from "../helpers/getByPath.mjs";
4
4
  import r from "../helpers/isPathAffected.mjs";
5
5
  //#region src/middleware/historyMiddleware.ts
6
- var i = (e, t, r = 12) => {
7
- if (!Object.is(e, t)) {
8
- if (r <= 0 || !n(e) || !n(t)) return {
6
+ var i = (e, n, r = 12) => {
7
+ if (!Object.is(e, n)) {
8
+ if (r <= 0 || !t(e) || !t(n)) return {
9
9
  path: "",
10
- value: t
10
+ value: n
11
11
  };
12
- for (let n of new Set([...Object.keys(e), ...Object.keys(t)])) {
13
- if (Object.is(e[n], t[n])) continue;
14
- let a = i(e[n], t[n], r - 1);
12
+ for (let t of /* @__PURE__ */ new Set([...Object.keys(e), ...Object.keys(n)])) {
13
+ if (Object.is(e[t], n[t])) continue;
14
+ let a = i(e[t], n[t], r - 1);
15
15
  if (a) return {
16
- path: a.path ? `${n}.${a.path}` : n,
16
+ path: a.path ? `${t}.${a.path}` : t,
17
17
  value: a.value
18
18
  };
19
19
  }
20
20
  }
21
21
  };
22
- function a(t, n = {}) {
23
- let a = n.limit ?? 100, o = n.path, s = n.shouldRecord, c = [{
24
- state: t.getState(),
22
+ function a(e, t = {}) {
23
+ let a = t.limit ?? 100, o = t.path, s = t.shouldRecord, c = [{
24
+ state: e.getState(),
25
25
  timestamp: Date.now()
26
26
  }], l = 0, u = !1, d = () => ({
27
27
  entries: c,
@@ -30,12 +30,12 @@ function a(t, n = {}) {
30
30
  canRedo: l < c.length - 1
31
31
  }), f = d(), p = /* @__PURE__ */ new Set(), m = () => {
32
32
  f = d(), p.forEach((e) => e());
33
- }, h = ({ path: n }) => {
34
- if (u || s && !s(n) || o && n !== void 0 && !r(n, o)) return;
35
- let d = l < c.length - 1 ? c.slice(0, l + 1) : c, f = d[d.length - 1].state, p = t.getState(), h = n ?? o, g, _ = n ?? o;
33
+ }, h = ({ path: t }) => {
34
+ if (u || s && !s(t) || o && t !== void 0 && !r(t, o)) return;
35
+ let d = l < c.length - 1 ? c.slice(0, l + 1) : c, f = d[d.length - 1].state, p = e.getState(), h = t ?? o, g, _ = t ?? o;
36
36
  if (_) try {
37
- let t = i(e(f, _), e(p, _));
38
- t && (h = t.path ? `${_}.${t.path}` : _, g = t.value);
37
+ let e = i(n(f, _), n(p, _));
38
+ e && (h = e.path ? `${_}.${e.path}` : _, g = e.value);
39
39
  } catch {}
40
40
  let v = [...d, {
41
41
  path: h,
@@ -44,14 +44,14 @@ function a(t, n = {}) {
44
44
  timestamp: Date.now()
45
45
  }];
46
46
  c = v.length > a ? v.slice(v.length - a) : v, l = c.length - 1, m();
47
- }, g = (n) => {
48
- if (n < 0 || n >= c.length || n === l) return;
49
- let r = c[n].state;
47
+ }, g = (t) => {
48
+ if (t < 0 || t >= c.length || t === l) return;
49
+ let r = c[t].state;
50
50
  if (u = !0, o) {
51
- let n = e(r, o);
52
- t.setState(o, () => n);
53
- } else t.setState(void 0, () => r);
54
- u = !1, l = n, m();
51
+ let t = n(r, o);
52
+ e.setState(o, () => t);
53
+ } else e.setState(void 0, () => r);
54
+ u = !1, l = t, m();
55
55
  };
56
56
  return {
57
57
  handle: {
@@ -62,7 +62,7 @@ function a(t, n = {}) {
62
62
  travelTo: g,
63
63
  clear: () => {
64
64
  c = [{
65
- state: t.getState(),
65
+ state: e.getState(),
66
66
  timestamp: Date.now()
67
67
  }], l = 0, m();
68
68
  }
@@ -74,11 +74,11 @@ var o = /* @__PURE__ */ new WeakMap();
74
74
  function s(e) {
75
75
  return o.get(e);
76
76
  }
77
- var c = (e) => {
78
- let n = e?.enabled;
77
+ var c = (t) => {
78
+ let n = t?.enabled;
79
79
  return (r) => {
80
- if (t(n, r.getState())) return;
81
- let { handle: i, record: s } = a(r, e);
80
+ if (e(n, r.getState())) return;
81
+ let { handle: i, record: s } = a(r, t);
82
82
  return o.set(r, i), { onChange: s };
83
83
  };
84
84
  };