@tanstack/react-store 0.0.1-beta.87 → 0.0.1-beta.89

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.
@@ -4024,7 +4024,7 @@ var drawChart = (function (exports) {
4024
4024
  </script>
4025
4025
  <script>
4026
4026
  /*<!--*/
4027
- const data = {"version":2,"tree":{"name":"root","children":[{"name":"index.production.js","children":[{"name":"packages","children":[{"name":"store/build/esm/index.js","uid":"3b45-1"},{"name":"react-store/src/index.tsx","uid":"3b45-3"}]}]}],"isRoot":true},"nodeParts":{"3b45-1":{"renderedLength":1417,"gzipLength":507,"brotliLength":0,"mainUid":"3b45-0"},"3b45-3":{"renderedLength":754,"gzipLength":343,"brotliLength":0,"mainUid":"3b45-2"}},"nodeMetas":{"3b45-0":{"id":"/packages/store/build/esm/index.js","moduleParts":{"index.production.js":"3b45-1"},"imported":[],"importedBy":[{"uid":"3b45-2"}]},"3b45-2":{"id":"/packages/react-store/src/index.tsx","moduleParts":{"index.production.js":"3b45-3"},"imported":[{"uid":"3b45-4"},{"uid":"3b45-0"}],"importedBy":[],"isEntry":true},"3b45-4":{"id":"use-sync-external-store/shim/with-selector","moduleParts":{},"imported":[],"importedBy":[{"uid":"3b45-2"}],"isExternal":true}},"env":{"rollup":"2.79.1"},"options":{"gzip":true,"brotli":false,"sourcemap":false}};
4027
+ const data = {"version":2,"tree":{"name":"root","children":[{"name":"index.production.js","children":[{"name":"packages","children":[{"name":"store/build/esm/index.js","uid":"0d14-1"},{"name":"react-store/src/index.tsx","uid":"0d14-3"}]}]}],"isRoot":true},"nodeParts":{"0d14-1":{"renderedLength":1313,"gzipLength":489,"brotliLength":0,"mainUid":"0d14-0"},"0d14-3":{"renderedLength":754,"gzipLength":343,"brotliLength":0,"mainUid":"0d14-2"}},"nodeMetas":{"0d14-0":{"id":"/packages/store/build/esm/index.js","moduleParts":{"index.production.js":"0d14-1"},"imported":[],"importedBy":[{"uid":"0d14-2"}]},"0d14-2":{"id":"/packages/react-store/src/index.tsx","moduleParts":{"index.production.js":"0d14-3"},"imported":[{"uid":"0d14-4"},{"uid":"0d14-0"}],"importedBy":[],"isEntry":true},"0d14-4":{"id":"use-sync-external-store/shim/with-selector","moduleParts":{},"imported":[],"importedBy":[{"uid":"0d14-2"}],"isExternal":true}},"env":{"rollup":"2.79.1"},"options":{"gzip":true,"brotli":false,"sourcemap":false}};
4028
4028
 
4029
4029
  const run = () => {
4030
4030
  const width = window.innerWidth;
@@ -11,11 +11,11 @@
11
11
  "children": [
12
12
  {
13
13
  "name": "store/build/esm/index.js",
14
- "uid": "3b45-6"
14
+ "uid": "0d14-6"
15
15
  },
16
16
  {
17
17
  "name": "react-store/src/index.tsx",
18
- "uid": "3b45-8"
18
+ "uid": "0d14-8"
19
19
  }
20
20
  ]
21
21
  }
@@ -25,55 +25,55 @@
25
25
  "isRoot": true
26
26
  },
27
27
  "nodeParts": {
28
- "3b45-6": {
29
- "renderedLength": 1417,
30
- "gzipLength": 507,
28
+ "0d14-6": {
29
+ "renderedLength": 1313,
30
+ "gzipLength": 489,
31
31
  "brotliLength": 0,
32
- "mainUid": "3b45-5"
32
+ "mainUid": "0d14-5"
33
33
  },
34
- "3b45-8": {
34
+ "0d14-8": {
35
35
  "renderedLength": 754,
36
36
  "gzipLength": 343,
37
37
  "brotliLength": 0,
38
- "mainUid": "3b45-7"
38
+ "mainUid": "0d14-7"
39
39
  }
40
40
  },
41
41
  "nodeMetas": {
42
- "3b45-5": {
42
+ "0d14-5": {
43
43
  "id": "/packages/store/build/esm/index.js",
44
44
  "moduleParts": {
45
- "index.production.js": "3b45-6"
45
+ "index.production.js": "0d14-6"
46
46
  },
47
47
  "imported": [],
48
48
  "importedBy": [
49
49
  {
50
- "uid": "3b45-7"
50
+ "uid": "0d14-7"
51
51
  }
52
52
  ]
53
53
  },
54
- "3b45-7": {
54
+ "0d14-7": {
55
55
  "id": "/packages/react-store/src/index.tsx",
56
56
  "moduleParts": {
57
- "index.production.js": "3b45-8"
57
+ "index.production.js": "0d14-8"
58
58
  },
59
59
  "imported": [
60
60
  {
61
- "uid": "3b45-9"
61
+ "uid": "0d14-9"
62
62
  },
63
63
  {
64
- "uid": "3b45-5"
64
+ "uid": "0d14-5"
65
65
  }
66
66
  ],
67
67
  "importedBy": [],
68
68
  "isEntry": true
69
69
  },
70
- "3b45-9": {
70
+ "0d14-9": {
71
71
  "id": "use-sync-external-store/shim/with-selector",
72
72
  "moduleParts": {},
73
73
  "imported": [],
74
74
  "importedBy": [
75
75
  {
76
- "uid": "3b45-7"
76
+ "uid": "0d14-7"
77
77
  }
78
78
  ],
79
79
  "isExternal": true
@@ -46,23 +46,22 @@
46
46
  setState = updater => {
47
47
  const previous = this.state;
48
48
  this.state = this.options?.updateFn ? this.options.updateFn(previous)(updater) : updater(previous);
49
- this.#flush(previous);
49
+ this.#flush();
50
50
  };
51
- #flush = previous => {
51
+ #flush = () => {
52
52
  if (this.#batching) return;
53
53
  const flushId = ++this.#flushing;
54
54
  this.listeners.forEach(listener => {
55
- if (this.#flushing !== flushId || this.state === previous) return;
56
- listener(this.state, previous);
55
+ if (this.#flushing !== flushId) return;
56
+ listener();
57
57
  });
58
58
  };
59
59
  batch = cb => {
60
60
  if (this.#batching) return cb();
61
- const previous = this.state;
62
61
  this.#batching = true;
63
62
  cb();
64
63
  this.#batching = false;
65
- this.#flush(previous);
64
+ this.#flush();
66
65
  };
67
66
  }
68
67
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.development.js","sources":["../../../store/build/esm/index.js","../../src/index.tsx"],"sourcesContent":["/**\n * store\n *\n * Copyright (c) TanStack\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nclass Store {\n listeners = new Set();\n #batching = false;\n #flushing = 0;\n constructor(initialState, options) {\n this.state = initialState;\n this.options = options;\n if (this.options?.onUpdate) {\n this.subscribe(this.options?.onUpdate);\n }\n }\n subscribe = listener => {\n this.listeners.add(listener);\n const unsub = this.options?.onSubscribe?.(listener, this);\n return () => {\n this.listeners.delete(listener);\n unsub?.();\n };\n };\n setState = updater => {\n const previous = this.state;\n this.state = this.options?.updateFn ? this.options.updateFn(previous)(updater) : updater(previous);\n this.#flush(previous);\n };\n #flush = previous => {\n if (this.#batching) return;\n const flushId = ++this.#flushing;\n this.listeners.forEach(listener => {\n if (this.#flushing !== flushId || this.state === previous) return;\n listener(this.state, previous);\n });\n };\n batch = cb => {\n if (this.#batching) return cb();\n const previous = this.state;\n this.#batching = true;\n cb();\n this.#batching = false;\n this.#flush(previous);\n };\n}\n\nexport { Store };\n//# sourceMappingURL=index.js.map\n","import { AnyUpdater, Store } from '@tanstack/store'\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector'\n\nexport * from '@tanstack/store'\n\nexport type NoInfer<T> = [T][T extends any ? 0 : never]\n\nexport function useStore<\n TState,\n TSelected = NoInfer<TState>,\n TUpdater extends AnyUpdater = AnyUpdater,\n>(\n store: Store<TState, TUpdater>,\n selector: (state: NoInfer<TState>) => TSelected = (d) => d as any,\n) {\n const slice = useSyncExternalStoreWithSelector(\n store.subscribe,\n () => store.state,\n () => store.state,\n selector,\n shallow,\n )\n\n return slice\n}\n\nexport function shallow<T>(objA: T, objB: T) {\n if (Object.is(objA, objB)) {\n return true\n }\n\n if (\n typeof objA !== 'object' ||\n objA === null ||\n typeof objB !== 'object' ||\n objB === null\n ) {\n return false\n }\n\n const keysA = Object.keys(objA)\n if (keysA.length !== Object.keys(objB).length) {\n return false\n }\n\n for (let i = 0; i < keysA.length; i++) {\n if (\n !Object.prototype.hasOwnProperty.call(objB, keysA[i] as string) ||\n !Object.is(objA[keysA[i] as keyof T], objB[keysA[i] as keyof T])\n ) {\n return false\n }\n }\n return true\n}\n"],"names":["useStore","store","selector","d","slice","useSyncExternalStoreWithSelector","subscribe","state","shallow","objA","objB","Object","is","keysA","keys","length","i","prototype","hasOwnProperty","call"],"mappings":"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"}
1
+ {"version":3,"file":"index.development.js","sources":["../../../store/build/esm/index.js","../../src/index.tsx"],"sourcesContent":["/**\n * store\n *\n * Copyright (c) TanStack\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nclass Store {\n listeners = new Set();\n #batching = false;\n #flushing = 0;\n constructor(initialState, options) {\n this.state = initialState;\n this.options = options;\n if (this.options?.onUpdate) {\n this.subscribe(this.options?.onUpdate);\n }\n }\n subscribe = listener => {\n this.listeners.add(listener);\n const unsub = this.options?.onSubscribe?.(listener, this);\n return () => {\n this.listeners.delete(listener);\n unsub?.();\n };\n };\n setState = updater => {\n const previous = this.state;\n this.state = this.options?.updateFn ? this.options.updateFn(previous)(updater) : updater(previous);\n this.#flush();\n };\n #flush = () => {\n if (this.#batching) return;\n const flushId = ++this.#flushing;\n this.listeners.forEach(listener => {\n if (this.#flushing !== flushId) return;\n listener();\n });\n };\n batch = cb => {\n if (this.#batching) return cb();\n this.#batching = true;\n cb();\n this.#batching = false;\n this.#flush();\n };\n}\n\nexport { Store };\n//# sourceMappingURL=index.js.map\n","import { AnyUpdater, Store } from '@tanstack/store'\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector'\n\nexport * from '@tanstack/store'\n\nexport type NoInfer<T> = [T][T extends any ? 0 : never]\n\nexport function useStore<\n TState,\n TSelected = NoInfer<TState>,\n TUpdater extends AnyUpdater = AnyUpdater,\n>(\n store: Store<TState, TUpdater>,\n selector: (state: NoInfer<TState>) => TSelected = (d) => d as any,\n) {\n const slice = useSyncExternalStoreWithSelector(\n store.subscribe,\n () => store.state,\n () => store.state,\n selector,\n shallow,\n )\n\n return slice\n}\n\nexport function shallow<T>(objA: T, objB: T) {\n if (Object.is(objA, objB)) {\n return true\n }\n\n if (\n typeof objA !== 'object' ||\n objA === null ||\n typeof objB !== 'object' ||\n objB === null\n ) {\n return false\n }\n\n const keysA = Object.keys(objA)\n if (keysA.length !== Object.keys(objB).length) {\n return false\n }\n\n for (let i = 0; i < keysA.length; i++) {\n if (\n !Object.prototype.hasOwnProperty.call(objB, keysA[i] as string) ||\n !Object.is(objA[keysA[i] as keyof T], objB[keysA[i] as keyof T])\n ) {\n return false\n }\n }\n return true\n}\n"],"names":["useStore","store","selector","d","slice","useSyncExternalStoreWithSelector","subscribe","state","shallow","objA","objB","Object","is","keysA","keys","length","i","prototype","hasOwnProperty","call"],"mappings":"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"}
@@ -18,5 +18,5 @@
18
18
  * LICENSE.md file in the root directory of this source tree.
19
19
  *
20
20
  * @license MIT
21
- */function s(t,e){if(Object.is(t,e))return!0;if("object"!=typeof t||null===t||"object"!=typeof e||null===e)return!1;const s=Object.keys(t);if(s.length!==Object.keys(e).length)return!1;for(let i=0;i<s.length;i++)if(!Object.prototype.hasOwnProperty.call(e,s[i])||!Object.is(t[s[i]],e[s[i]]))return!1;return!0}t.Store=class{listeners=new Set;#t=!1;#e=0;constructor(t,e){this.state=t,this.options=e,this.options?.onUpdate&&this.subscribe(this.options?.onUpdate)}subscribe=t=>{this.listeners.add(t);const e=this.options?.onSubscribe?.(t,this);return()=>{this.listeners.delete(t),e?.()}};setState=t=>{const e=this.state;this.state=this.options?.updateFn?this.options.updateFn(e)(t):t(e),this.#s(e)};#s=t=>{if(this.#t)return;const e=++this.#e;this.listeners.forEach((s=>{this.#e===e&&this.state!==t&&s(this.state,t)}))};batch=t=>{if(this.#t)return t();const e=this.state;this.#t=!0,t(),this.#t=!1,this.#s(e)}},t.shallow=s,t.useStore=function(t,i=(t=>t)){return e.useSyncExternalStoreWithSelector(t.subscribe,(()=>t.state),(()=>t.state),i,s)},Object.defineProperty(t,"__esModule",{value:!0})}));
21
+ */function s(t,e){if(Object.is(t,e))return!0;if("object"!=typeof t||null===t||"object"!=typeof e||null===e)return!1;const s=Object.keys(t);if(s.length!==Object.keys(e).length)return!1;for(let i=0;i<s.length;i++)if(!Object.prototype.hasOwnProperty.call(e,s[i])||!Object.is(t[s[i]],e[s[i]]))return!1;return!0}t.Store=class{listeners=new Set;#t=!1;#e=0;constructor(t,e){this.state=t,this.options=e,this.options?.onUpdate&&this.subscribe(this.options?.onUpdate)}subscribe=t=>{this.listeners.add(t);const e=this.options?.onSubscribe?.(t,this);return()=>{this.listeners.delete(t),e?.()}};setState=t=>{const e=this.state;this.state=this.options?.updateFn?this.options.updateFn(e)(t):t(e),this.#s()};#s=()=>{if(this.#t)return;const t=++this.#e;this.listeners.forEach((e=>{this.#e===t&&e()}))};batch=t=>{if(this.#t)return t();this.#t=!0,t(),this.#t=!1,this.#s()}},t.shallow=s,t.useStore=function(t,i=(t=>t)){return e.useSyncExternalStoreWithSelector(t.subscribe,(()=>t.state),(()=>t.state),i,s)},Object.defineProperty(t,"__esModule",{value:!0})}));
22
22
  //# sourceMappingURL=index.production.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.production.js","sources":["../../src/index.tsx","../../../store/build/esm/index.js"],"sourcesContent":["import { AnyUpdater, Store } from '@tanstack/store'\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector'\n\nexport * from '@tanstack/store'\n\nexport type NoInfer<T> = [T][T extends any ? 0 : never]\n\nexport function useStore<\n TState,\n TSelected = NoInfer<TState>,\n TUpdater extends AnyUpdater = AnyUpdater,\n>(\n store: Store<TState, TUpdater>,\n selector: (state: NoInfer<TState>) => TSelected = (d) => d as any,\n) {\n const slice = useSyncExternalStoreWithSelector(\n store.subscribe,\n () => store.state,\n () => store.state,\n selector,\n shallow,\n )\n\n return slice\n}\n\nexport function shallow<T>(objA: T, objB: T) {\n if (Object.is(objA, objB)) {\n return true\n }\n\n if (\n typeof objA !== 'object' ||\n objA === null ||\n typeof objB !== 'object' ||\n objB === null\n ) {\n return false\n }\n\n const keysA = Object.keys(objA)\n if (keysA.length !== Object.keys(objB).length) {\n return false\n }\n\n for (let i = 0; i < keysA.length; i++) {\n if (\n !Object.prototype.hasOwnProperty.call(objB, keysA[i] as string) ||\n !Object.is(objA[keysA[i] as keyof T], objB[keysA[i] as keyof T])\n ) {\n return false\n }\n }\n return true\n}\n","/**\n * store\n *\n * Copyright (c) TanStack\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nclass Store {\n listeners = new Set();\n #batching = false;\n #flushing = 0;\n constructor(initialState, options) {\n this.state = initialState;\n this.options = options;\n if (this.options?.onUpdate) {\n this.subscribe(this.options?.onUpdate);\n }\n }\n subscribe = listener => {\n this.listeners.add(listener);\n const unsub = this.options?.onSubscribe?.(listener, this);\n return () => {\n this.listeners.delete(listener);\n unsub?.();\n };\n };\n setState = updater => {\n const previous = this.state;\n this.state = this.options?.updateFn ? this.options.updateFn(previous)(updater) : updater(previous);\n this.#flush(previous);\n };\n #flush = previous => {\n if (this.#batching) return;\n const flushId = ++this.#flushing;\n this.listeners.forEach(listener => {\n if (this.#flushing !== flushId || this.state === previous) return;\n listener(this.state, previous);\n });\n };\n batch = cb => {\n if (this.#batching) return cb();\n const previous = this.state;\n this.#batching = true;\n cb();\n this.#batching = false;\n this.#flush(previous);\n };\n}\n\nexport { Store };\n//# sourceMappingURL=index.js.map\n"],"names":["shallow","objA","objB","Object","is","keysA","keys","length","i","prototype","hasOwnProperty","call","listeners","Set","batching","flushing","constructor","initialState","options","this","state","onUpdate","subscribe","listener","add","unsub","onSubscribe","delete","setState","updater","previous","updateFn","flush","flushId","forEach","batch","cb","store","selector","d","useSyncExternalStoreWithSelector"],"mappings":";;;;;;;;;;;;;;;;;;;;KA0BO,SAASA,EAAWC,EAASC,GAClC,GAAIC,OAAOC,GAAGH,EAAMC,GAClB,OAAO,EAGT,GACkB,iBAATD,GACE,OAATA,GACgB,iBAATC,GACE,OAATA,EAEA,OAAO,EAGT,MAAMG,EAAQF,OAAOG,KAAKL,GAC1B,GAAII,EAAME,SAAWJ,OAAOG,KAAKJ,GAAMK,OACrC,OAAO,EAGT,IAAK,IAAIC,EAAI,EAAGA,EAAIH,EAAME,OAAQC,IAChC,IACGL,OAAOM,UAAUC,eAAeC,KAAKT,EAAMG,EAAMG,MACjDL,OAAOC,GAAGH,EAAKI,EAAMG,IAAgBN,EAAKG,EAAMG,KAEjD,OAAO,EAGX,OAAO,CACT,SC5CA,MACEI,UAAY,IAAIC,IAChBC,IAAY,EACZC,GAAY,EACZC,YAAYC,EAAcC,GACxBC,KAAKC,MAAQH,EACbE,KAAKD,QAAUA,EACXC,KAAKD,SAASG,UAChBF,KAAKG,UAAUH,KAAKD,SAASG,SAEhC,CACDC,UAAYC,IACVJ,KAAKP,UAAUY,IAAID,GACnB,MAAME,EAAQN,KAAKD,SAASQ,cAAcH,EAAUJ,MACpD,MAAO,KACLA,KAAKP,UAAUe,OAAOJ,GACtBE,KAAS,CACV,EAEHG,SAAWC,IACT,MAAMC,EAAWX,KAAKC,MACtBD,KAAKC,MAAQD,KAAKD,SAASa,SAAWZ,KAAKD,QAAQa,SAASD,EAAtBX,CAAgCU,GAAWA,EAAQC,GACzFX,MAAKa,EAAOF,EAAS,EAEvBE,GAASF,IACP,GAAIX,MAAKL,EAAW,OACpB,MAAMmB,IAAYd,MAAKJ,EACvBI,KAAKP,UAAUsB,SAAQX,IACjBJ,MAAKJ,IAAckB,GAAWd,KAAKC,QAAUU,GACjDP,EAASJ,KAAKC,MAAOU,EAAS,GAC9B,EAEJK,MAAQC,IACN,GAAIjB,MAAKL,EAAW,OAAOsB,IAC3B,MAAMN,EAAWX,KAAKC,MACtBD,MAAKL,GAAY,EACjBsB,IACAjB,MAAKL,GAAY,EACjBK,MAAKa,EAAOF,EAAS,0BDzClB,SAKLO,EACAC,EAAmDC,IAAMA,IAUzD,OARcC,EAAAA,iCACZH,EAAMf,WACN,IAAMe,EAAMjB,QACZ,IAAMiB,EAAMjB,OACZkB,EACAtC,EAIJ"}
1
+ {"version":3,"file":"index.production.js","sources":["../../src/index.tsx","../../../store/build/esm/index.js"],"sourcesContent":["import { AnyUpdater, Store } from '@tanstack/store'\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector'\n\nexport * from '@tanstack/store'\n\nexport type NoInfer<T> = [T][T extends any ? 0 : never]\n\nexport function useStore<\n TState,\n TSelected = NoInfer<TState>,\n TUpdater extends AnyUpdater = AnyUpdater,\n>(\n store: Store<TState, TUpdater>,\n selector: (state: NoInfer<TState>) => TSelected = (d) => d as any,\n) {\n const slice = useSyncExternalStoreWithSelector(\n store.subscribe,\n () => store.state,\n () => store.state,\n selector,\n shallow,\n )\n\n return slice\n}\n\nexport function shallow<T>(objA: T, objB: T) {\n if (Object.is(objA, objB)) {\n return true\n }\n\n if (\n typeof objA !== 'object' ||\n objA === null ||\n typeof objB !== 'object' ||\n objB === null\n ) {\n return false\n }\n\n const keysA = Object.keys(objA)\n if (keysA.length !== Object.keys(objB).length) {\n return false\n }\n\n for (let i = 0; i < keysA.length; i++) {\n if (\n !Object.prototype.hasOwnProperty.call(objB, keysA[i] as string) ||\n !Object.is(objA[keysA[i] as keyof T], objB[keysA[i] as keyof T])\n ) {\n return false\n }\n }\n return true\n}\n","/**\n * store\n *\n * Copyright (c) TanStack\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nclass Store {\n listeners = new Set();\n #batching = false;\n #flushing = 0;\n constructor(initialState, options) {\n this.state = initialState;\n this.options = options;\n if (this.options?.onUpdate) {\n this.subscribe(this.options?.onUpdate);\n }\n }\n subscribe = listener => {\n this.listeners.add(listener);\n const unsub = this.options?.onSubscribe?.(listener, this);\n return () => {\n this.listeners.delete(listener);\n unsub?.();\n };\n };\n setState = updater => {\n const previous = this.state;\n this.state = this.options?.updateFn ? this.options.updateFn(previous)(updater) : updater(previous);\n this.#flush();\n };\n #flush = () => {\n if (this.#batching) return;\n const flushId = ++this.#flushing;\n this.listeners.forEach(listener => {\n if (this.#flushing !== flushId) return;\n listener();\n });\n };\n batch = cb => {\n if (this.#batching) return cb();\n this.#batching = true;\n cb();\n this.#batching = false;\n this.#flush();\n };\n}\n\nexport { Store };\n//# sourceMappingURL=index.js.map\n"],"names":["shallow","objA","objB","Object","is","keysA","keys","length","i","prototype","hasOwnProperty","call","listeners","Set","batching","flushing","constructor","initialState","options","this","state","onUpdate","subscribe","listener","add","unsub","onSubscribe","delete","setState","updater","previous","updateFn","flush","flushId","forEach","batch","cb","store","selector","d","useSyncExternalStoreWithSelector"],"mappings":";;;;;;;;;;;;;;;;;;;;KA0BO,SAASA,EAAWC,EAASC,GAClC,GAAIC,OAAOC,GAAGH,EAAMC,GAClB,OAAO,EAGT,GACkB,iBAATD,GACE,OAATA,GACgB,iBAATC,GACE,OAATA,EAEA,OAAO,EAGT,MAAMG,EAAQF,OAAOG,KAAKL,GAC1B,GAAII,EAAME,SAAWJ,OAAOG,KAAKJ,GAAMK,OACrC,OAAO,EAGT,IAAK,IAAIC,EAAI,EAAGA,EAAIH,EAAME,OAAQC,IAChC,IACGL,OAAOM,UAAUC,eAAeC,KAAKT,EAAMG,EAAMG,MACjDL,OAAOC,GAAGH,EAAKI,EAAMG,IAAgBN,EAAKG,EAAMG,KAEjD,OAAO,EAGX,OAAO,CACT,SC5CA,MACEI,UAAY,IAAIC,IAChBC,IAAY,EACZC,GAAY,EACZC,YAAYC,EAAcC,GACxBC,KAAKC,MAAQH,EACbE,KAAKD,QAAUA,EACXC,KAAKD,SAASG,UAChBF,KAAKG,UAAUH,KAAKD,SAASG,SAEhC,CACDC,UAAYC,IACVJ,KAAKP,UAAUY,IAAID,GACnB,MAAME,EAAQN,KAAKD,SAASQ,cAAcH,EAAUJ,MACpD,MAAO,KACLA,KAAKP,UAAUe,OAAOJ,GACtBE,KAAS,CACV,EAEHG,SAAWC,IACT,MAAMC,EAAWX,KAAKC,MACtBD,KAAKC,MAAQD,KAAKD,SAASa,SAAWZ,KAAKD,QAAQa,SAASD,EAAtBX,CAAgCU,GAAWA,EAAQC,GACzFX,MAAKa,GAAQ,EAEfA,GAAS,KACP,GAAIb,MAAKL,EAAW,OACpB,MAAMmB,IAAYd,MAAKJ,EACvBI,KAAKP,UAAUsB,SAAQX,IACjBJ,MAAKJ,IAAckB,GACvBV,GAAU,GACV,EAEJY,MAAQC,IACN,GAAIjB,MAAKL,EAAW,OAAOsB,IAC3BjB,MAAKL,GAAY,EACjBsB,IACAjB,MAAKL,GAAY,EACjBK,MAAKa,GAAQ,0BDxCV,SAKLK,EACAC,EAAmDC,IAAMA,IAUzD,OARcC,EAAAA,iCACZH,EAAMf,WACN,IAAMe,EAAMjB,QACZ,IAAMiB,EAAMjB,OACZkB,EACAtC,EAIJ"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tanstack/react-store",
3
3
  "author": "Tanner Linsley",
4
- "version": "0.0.1-beta.87",
4
+ "version": "0.0.1-beta.89",
5
5
  "license": "MIT",
6
6
  "repository": "tanstack/react-store",
7
7
  "homepage": "https://tanstack.com/",
@@ -36,7 +36,7 @@
36
36
  },
37
37
  "dependencies": {
38
38
  "use-sync-external-store": "^1.2.0",
39
- "@tanstack/store": "0.0.1-beta.87"
39
+ "@tanstack/store": "0.0.1-beta.89"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@types/use-sync-external-store": "^0.0.3"