@depup/jotai 2.18.1-depup.0 → 2.19.0-depup.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.
package/README.md CHANGED
@@ -13,8 +13,8 @@ npm install @depup/jotai
13
13
 
14
14
  | Field | Value |
15
15
  |-------|-------|
16
- | Original | [jotai](https://www.npmjs.com/package/jotai) @ 2.18.1 |
17
- | Processed | 2026-03-09 |
16
+ | Original | [jotai](https://www.npmjs.com/package/jotai) @ 2.19.0 |
17
+ | Processed | 2026-03-24 |
18
18
  | Smoke test | failed |
19
19
  | Deps updated | 0 |
20
20
 
package/changes.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "bumped": {},
3
- "timestamp": "2026-03-09T16:26:15.981Z",
3
+ "timestamp": "2026-03-24T08:21:53.715Z",
4
4
  "totalUpdated": 0
5
5
  }
@@ -1,6 +1,7 @@
1
1
  import type { Atom, ExtractAtomValue } from 'jotai/vanilla';
2
2
  import { useStore } from './Provider.mjs';
3
3
  type Options = Parameters<typeof useStore>[0] & {
4
+ /** @deprecated delay option is deprecated and will be removed in v3. https://github.com/pmndrs/jotai/pull/3264 */
4
5
  delay?: number;
5
6
  unstable_promiseStatus?: boolean;
6
7
  };
package/esm/react.mjs CHANGED
@@ -134,6 +134,28 @@ function useAtomValue(atom, options) {
134
134
  }
135
135
  }
136
136
  if (typeof delay === "number") {
137
+ console.warn(`[DEPRECATED] delay option is deprecated and will be removed in v3.
138
+
139
+ Migration guide:
140
+
141
+ Create a custom hook like the following.
142
+
143
+ function useAtomValueWithDelay<Value>(
144
+ atom: Atom<Value>,
145
+ options: { delay: number },
146
+ ): Value {
147
+ const { delay } = options
148
+ const store = useStore(options)
149
+ const [value, setValue] = useState(() => store.get(atom))
150
+ useEffect(() => {
151
+ const unsub = store.sub(atom, () => {
152
+ setTimeout(() => setValue(store.get(atom)), delay)
153
+ })
154
+ return unsub
155
+ }, [store, atom, delay])
156
+ return value
157
+ }
158
+ `);
137
159
  setTimeout(rerender, delay);
138
160
  return;
139
161
  }
@@ -27,6 +27,8 @@ type AtomState<Value = AnyValue> = {
27
27
  readonly p: Set<AnyAtom>;
28
28
  /** The epoch number of the atom. */
29
29
  n: EpochNumber;
30
+ /** The store epoch number that last validated the atom. */
31
+ m?: EpochNumber;
30
32
  /** Atom value */
31
33
  v?: Value;
32
34
  /** Atom error */
@@ -89,6 +91,7 @@ type EnhanceBuildingBlocks = (buildingBlocks: Readonly<BuildingBlocks>) => Reado
89
91
  type AbortHandlersMap = WeakMapLike<PromiseLike<unknown>, Set<() => void>>;
90
92
  type RegisterAbortHandler = <T>(store: Store, promise: PromiseLike<T>, abortHandler: () => void) => void;
91
93
  type AbortPromise = <T>(store: Store, promise: PromiseLike<T>) => void;
94
+ type StoreEpochHolder = [n: EpochNumber];
92
95
  type Store = {
93
96
  get: <Value>(atom: Atom<Value>) => Value;
94
97
  set: <Value, Args extends unknown[], Result>(atom: WritableAtom<Value, Args, Result>, ...args: Args) => Result;
@@ -122,7 +125,8 @@ type BuildingBlocks = [
122
125
  enhanceBuildingBlocks: EnhanceBuildingBlocks | undefined,
123
126
  abortHandlersMap: AbortHandlersMap,
124
127
  registerAbortHandler: RegisterAbortHandler,
125
- abortPromise: AbortPromise
128
+ abortPromise: AbortPromise,
129
+ storeEpochHolder: StoreEpochHolder
126
130
  ];
127
131
  export type { AtomState as INTERNAL_AtomState, Mounted as INTERNAL_Mounted, AtomStateMap as INTERNAL_AtomStateMap, MountedMap as INTERNAL_MountedMap, InvalidatedAtoms as INTERNAL_InvalidatedAtoms, ChangedAtoms as INTERNAL_ChangedAtoms, Callbacks as INTERNAL_Callbacks, AtomRead as INTERNAL_AtomRead, AtomWrite as INTERNAL_AtomWrite, AtomOnInit as INTERNAL_AtomOnInit, AtomOnMount as INTERNAL_AtomOnMount, EnsureAtomState as INTERNAL_EnsureAtomState, FlushCallbacks as INTERNAL_FlushCallbacks, RecomputeInvalidatedAtoms as INTERNAL_RecomputeInvalidatedAtoms, ReadAtomState as INTERNAL_ReadAtomState, InvalidateDependents as INTERNAL_InvalidateDependents, WriteAtomState as INTERNAL_WriteAtomState, MountDependencies as INTERNAL_MountDependencies, MountAtom as INTERNAL_MountAtom, UnmountAtom as INTERNAL_UnmountAtom, Store as INTERNAL_Store, BuildingBlocks as INTERNAL_BuildingBlocks, StoreHooks as INTERNAL_StoreHooks, };
128
132
  declare function hasInitialValue<T extends Atom<AnyValue>>(atom: T): atom is T & (T extends Atom<infer Value> ? {
@@ -218,9 +218,19 @@ const BUILDING_BLOCK_readAtomState = (store, atom) => {
218
218
  const mountDependencies = buildingBlocks[17];
219
219
  const setAtomStateValueOrPromise = buildingBlocks[20];
220
220
  const registerAbortHandler = buildingBlocks[26];
221
+ const storeEpochHolder = buildingBlocks[28];
221
222
  const atomState = ensureAtomState(store, atom);
223
+ const storeEpochNumber = storeEpochHolder[0];
222
224
  if (isAtomStateInitialized(atomState)) {
223
- if (mountedMap.has(atom) && invalidatedAtoms.get(atom) !== atomState.n) {
225
+ if (
226
+ // If the atom is mounted, we can use cached atom state,
227
+ // because it should have been updated by dependencies.
228
+ // We can't use the cache if the atom is invalidated.
229
+ mountedMap.has(atom) && invalidatedAtoms.get(atom) !== atomState.n || // If atom is not mounted, we can use cached atom state,
230
+ // only if store hasn't been mutated.
231
+ atomState.m === storeEpochNumber
232
+ ) {
233
+ atomState.m = storeEpochNumber;
224
234
  return atomState;
225
235
  }
226
236
  let hasChangedDeps = false;
@@ -231,6 +241,7 @@ const BUILDING_BLOCK_readAtomState = (store, atom) => {
231
241
  }
232
242
  }
233
243
  if (!hasChangedDeps) {
244
+ atomState.m = storeEpochNumber;
234
245
  return atomState;
235
246
  }
236
247
  }
@@ -344,11 +355,13 @@ const BUILDING_BLOCK_readAtomState = (store, atom) => {
344
355
  pruneDependencies();
345
356
  }
346
357
  (_a = storeHooks.r) == null ? void 0 : _a.call(storeHooks, atom);
358
+ atomState.m = storeEpochNumber;
347
359
  return atomState;
348
360
  } catch (error) {
349
361
  delete atomState.v;
350
362
  atomState.e = error;
351
363
  ++atomState.n;
364
+ atomState.m = storeEpochNumber;
352
365
  return atomState;
353
366
  } finally {
354
367
  isSync = false;
@@ -390,6 +403,7 @@ const BUILDING_BLOCK_writeAtomState = (store, atom, ...args) => {
390
403
  const writeAtomState = buildingBlocks[16];
391
404
  const mountDependencies = buildingBlocks[17];
392
405
  const setAtomStateValueOrPromise = buildingBlocks[20];
406
+ const storeEpochHolder = buildingBlocks[28];
393
407
  let isSync = true;
394
408
  const getter = (a) => returnAtomValue(readAtomState(store, a));
395
409
  const setter = (a, ...args2) => {
@@ -408,6 +422,7 @@ const BUILDING_BLOCK_writeAtomState = (store, atom, ...args) => {
408
422
  setAtomStateValueOrPromise(store, a, v);
409
423
  mountDependencies(store, a);
410
424
  if (prevEpochNumber !== aState.n) {
425
+ ++storeEpochHolder[0];
411
426
  changedAtoms.add(a);
412
427
  invalidateDependents(store, a);
413
428
  (_a = storeHooks.c) == null ? void 0 : _a.call(storeHooks, a);
@@ -712,7 +727,9 @@ function buildStore(...buildArgs) {
712
727
  /* @__PURE__ */ new WeakMap(),
713
728
  // abortHandlersMap
714
729
  BUILDING_BLOCK_registerAbortHandler,
715
- BUILDING_BLOCK_abortPromise
730
+ BUILDING_BLOCK_abortPromise,
731
+ // store epoch
732
+ [0]
716
733
  ].map((fn, i) => buildArgs[i] || fn);
717
734
  buildingBlockMap.set(store, Object.freeze(buildingBlocks));
718
735
  return store;
package/package.json CHANGED
@@ -1,9 +1,8 @@
1
1
  {
2
2
  "name": "@depup/jotai",
3
- "description": "[DepUp] 👻 Primitive and flexible state management for React",
4
- "private": false,
3
+ "description": "👻 Primitive and flexible state management for React (with updated dependencies)",
5
4
  "type": "commonjs",
6
- "version": "2.18.1-depup.0",
5
+ "version": "2.19.0-depup.0",
7
6
  "main": "./index.js",
8
7
  "types": "./index.d.ts",
9
8
  "typesVersions": {
@@ -64,7 +63,9 @@
64
63
  }
65
64
  },
66
65
  "files": [
67
- "**"
66
+ "**",
67
+ "changes.json",
68
+ "README.md"
68
69
  ],
69
70
  "sideEffects": false,
70
71
  "engines": {
@@ -75,10 +76,12 @@
75
76
  "url": "git+https://github.com/pmndrs/jotai.git"
76
77
  },
77
78
  "keywords": [
78
- "depup",
79
- "dependency-bumped",
80
- "updated-deps",
81
79
  "jotai",
80
+ "depup",
81
+ "updated-dependencies",
82
+ "security",
83
+ "latest",
84
+ "patched",
82
85
  "react",
83
86
  "state",
84
87
  "manager",
@@ -118,8 +121,8 @@
118
121
  "changes": {},
119
122
  "depsUpdated": 0,
120
123
  "originalPackage": "jotai",
121
- "originalVersion": "2.18.1",
122
- "processedAt": "2026-03-09T16:26:16.914Z",
124
+ "originalVersion": "2.19.0",
125
+ "processedAt": "2026-03-24T08:21:54.402Z",
123
126
  "smokeTest": "failed"
124
127
  }
125
128
  }
@@ -1,6 +1,7 @@
1
1
  import type { Atom, ExtractAtomValue } from 'jotai/vanilla';
2
2
  import { useStore } from './Provider';
3
3
  type Options = Parameters<typeof useStore>[0] & {
4
+ /** @deprecated delay option is deprecated and will be removed in v3. https://github.com/pmndrs/jotai/pull/3264 */
4
5
  delay?: number;
5
6
  unstable_promiseStatus?: boolean;
6
7
  };
package/react.js CHANGED
@@ -136,6 +136,7 @@ function useAtomValue(atom, options) {
136
136
  } catch (_unused) {}
137
137
  }
138
138
  if (typeof delay === 'number') {
139
+ console.warn("[DEPRECATED] delay option is deprecated and will be removed in v3.\n\nMigration guide:\n\nCreate a custom hook like the following.\n\nfunction useAtomValueWithDelay<Value>(\n atom: Atom<Value>,\n options: { delay: number },\n): Value {\n const { delay } = options\n const store = useStore(options)\n const [value, setValue] = useState(() => store.get(atom))\n useEffect(() => {\n const unsub = store.sub(atom, () => {\n setTimeout(() => setValue(store.get(atom)), delay)\n })\n return unsub\n }, [store, atom, delay])\n return value\n}\n");
139
140
  setTimeout(rerender, delay);
140
141
  return;
141
142
  }
@@ -160,6 +160,28 @@ System.register(['react', 'jotai/vanilla', 'jotai/vanilla/internals'], (function
160
160
  }
161
161
  }
162
162
  if (typeof delay === "number") {
163
+ console.warn(`[DEPRECATED] delay option is deprecated and will be removed in v3.
164
+
165
+ Migration guide:
166
+
167
+ Create a custom hook like the following.
168
+
169
+ function useAtomValueWithDelay<Value>(
170
+ atom: Atom<Value>,
171
+ options: { delay: number },
172
+ ): Value {
173
+ const { delay } = options
174
+ const store = useStore(options)
175
+ const [value, setValue] = useState(() => store.get(atom))
176
+ useEffect(() => {
177
+ const unsub = store.sub(atom, () => {
178
+ setTimeout(() => setValue(store.get(atom)), delay)
179
+ })
180
+ return unsub
181
+ }, [store, atom, delay])
182
+ return value
183
+ }
184
+ `);
163
185
  setTimeout(rerender, delay);
164
186
  return;
165
187
  }
@@ -1,2 +1,23 @@
1
1
  'use client';
2
- System.register(["react","jotai/vanilla","jotai/vanilla/internals"],(function(V){"use strict";var y,k,p,v,d,C,E,j,m,x,P,w;return{setters:[function(s){y=s.createContext,k=s.useContext,p=s.useRef,v=s.createElement,d=s.default,C=s.useReducer,E=s.useEffect,j=s.useDebugValue,m=s.useCallback},function(s){x=s.getDefaultStore,P=s.createStore},function(s){w=s.INTERNAL_getBuildingBlocksRev2}],execute:(function(){V({Provider:L,useAtom:_,useAtomValue:D,useSetAtom:N,useStore:S});const s=y(void 0);function S(t){const e=k(s);return(t==null?void 0:t.store)||e||x()}function L({children:t,store:e}){const n=p(null);return e?v(s.Provider,{value:e},t):(n.current===null&&(n.current=P()),v(s.Provider,{value:n.current},t))}const h=t=>typeof(t==null?void 0:t.then)=="function",A=t=>{t.status||(t.status="pending",t.then(e=>{t.status="fulfilled",t.value=e},e=>{t.status="rejected",t.reason=e}))},T=d.use||(t=>{if(t.status==="pending")throw t;if(t.status==="fulfilled")return t.value;throw t.status==="rejected"?t.reason:(A(t),t)}),b=new WeakMap,B=(t,e,n)=>{const c=w(t)[26];let r=b.get(e);return r||(r=new Promise((f,g)=>{let l=e;const i=u=>R=>{l===u&&f(R)},a=u=>R=>{l===u&&g(R)},o=()=>{try{const u=n();h(u)?(b.set(u,r),l=u,u.then(i(u),a(u)),c(t,u,o)):f(u)}catch(u){g(u)}};e.then(i(e),a(e)),c(t,e,o)}),b.set(e,r)),r};function D(t,e){const{delay:n,unstable_promiseStatus:c=!d.use}=e||{},r=S(e),[[f,g,l],i]=C(o=>{const u=r.get(t);return Object.is(o[0],u)&&o[1]===r&&o[2]===t?o:[u,r,t]},void 0,()=>[r.get(t),r,t]);let a=f;if((g!==r||l!==t)&&(i(),a=r.get(t)),E(()=>{const o=r.sub(t,()=>{if(c)try{const u=r.get(t);h(u)&&A(B(r,u,()=>r.get(t)))}catch(u){}if(typeof n=="number"){setTimeout(i,n);return}i()});return i(),o},[r,t,n,c]),j(a),h(a)){const o=B(r,a,()=>r.get(t));return c&&A(o),T(o)}return a}function N(t,e){const n=S(e);return m((...c)=>n.set(t,...c),[n,t])}function _(t,e){return[D(t,e),N(t,e)]}})}}));
2
+ System.register(["react","jotai/vanilla","jotai/vanilla/internals"],(function(B){"use strict";var S,p,E,d,v,V,R,k,C,w,D,P;return{setters:[function(n){S=n.createContext,p=n.useContext,E=n.useRef,d=n.createElement,v=n.default,V=n.useReducer,R=n.useEffect,k=n.useDebugValue,C=n.useCallback},function(n){w=n.getDefaultStore,D=n.createStore},function(n){P=n.INTERNAL_getBuildingBlocksRev2}],execute:(function(){B({Provider:N,useAtom:I,useAtomValue:j,useSetAtom:x,useStore:m});const n=S(void 0);function m(t){const e=p(n);return(t==null?void 0:t.store)||e||w()}function N({children:t,store:e}){const o=E(null);return e?d(n.Provider,{value:e},t):(o.current===null&&(o.current=D()),d(n.Provider,{value:o.current},t))}const b=t=>typeof(t==null?void 0:t.then)=="function",h=t=>{t.status||(t.status="pending",t.then(e=>{t.status="fulfilled",t.value=e},e=>{t.status="rejected",t.reason=e}))},_=v.use||(t=>{if(t.status==="pending")throw t;if(t.status==="fulfilled")return t.value;throw t.status==="rejected"?t.reason:(h(t),t)}),y=new WeakMap,T=(t,e,o)=>{const a=P(t)[26];let u=y.get(e);return u||(u=new Promise((f,g)=>{let l=e;const i=s=>A=>{l===s&&f(A)},c=s=>A=>{l===s&&g(A)},r=()=>{try{const s=o();b(s)?(y.set(s,u),l=s,s.then(i(s),c(s)),a(t,s,r)):f(s)}catch(s){g(s)}};e.then(i(e),c(e)),a(t,e,r)}),y.set(e,u)),u};function j(t,e){const{delay:o,unstable_promiseStatus:a=!v.use}=e||{},u=m(e),[[f,g,l],i]=V(r=>{const s=u.get(t);return Object.is(r[0],s)&&r[1]===u&&r[2]===t?r:[s,u,t]},void 0,()=>[u.get(t),u,t]);let c=f;if((g!==u||l!==t)&&(i(),c=u.get(t)),R(()=>{const r=u.sub(t,()=>{if(a)try{const s=u.get(t);b(s)&&h(T(u,s,()=>u.get(t)))}catch(s){}if(typeof o=="number"){console.warn(`[DEPRECATED] delay option is deprecated and will be removed in v3.
3
+
4
+ Migration guide:
5
+
6
+ Create a custom hook like the following.
7
+
8
+ function useAtomValueWithDelay<Value>(
9
+ atom: Atom<Value>,
10
+ options: { delay: number },
11
+ ): Value {
12
+ const { delay } = options
13
+ const store = useStore(options)
14
+ const [value, setValue] = useState(() => store.get(atom))
15
+ useEffect(() => {
16
+ const unsub = store.sub(atom, () => {
17
+ setTimeout(() => setValue(store.get(atom)), delay)
18
+ })
19
+ return unsub
20
+ }, [store, atom, delay])
21
+ return value
22
+ }
23
+ `),setTimeout(i,o);return}i()});return i(),r},[u,t,o,a]),k(c),b(c)){const r=T(u,c,()=>u.get(t));return a&&h(r),_(r)}return c}function x(t,e){const o=m(e);return C((...a)=>o.set(t,...a),[o,t])}function I(t,e){return[j(t,e),x(t,e)]}})}}));
@@ -236,9 +236,19 @@ System.register([], (function (exports) {
236
236
  const mountDependencies = buildingBlocks[17];
237
237
  const setAtomStateValueOrPromise = buildingBlocks[20];
238
238
  const registerAbortHandler = buildingBlocks[26];
239
+ const storeEpochHolder = buildingBlocks[28];
239
240
  const atomState = ensureAtomState(store, atom);
241
+ const storeEpochNumber = storeEpochHolder[0];
240
242
  if (isAtomStateInitialized(atomState)) {
241
- if (mountedMap.has(atom) && invalidatedAtoms.get(atom) !== atomState.n) {
243
+ if (
244
+ // If the atom is mounted, we can use cached atom state,
245
+ // because it should have been updated by dependencies.
246
+ // We can't use the cache if the atom is invalidated.
247
+ mountedMap.has(atom) && invalidatedAtoms.get(atom) !== atomState.n || // If atom is not mounted, we can use cached atom state,
248
+ // only if store hasn't been mutated.
249
+ atomState.m === storeEpochNumber
250
+ ) {
251
+ atomState.m = storeEpochNumber;
242
252
  return atomState;
243
253
  }
244
254
  let hasChangedDeps = false;
@@ -249,6 +259,7 @@ System.register([], (function (exports) {
249
259
  }
250
260
  }
251
261
  if (!hasChangedDeps) {
262
+ atomState.m = storeEpochNumber;
252
263
  return atomState;
253
264
  }
254
265
  }
@@ -362,11 +373,13 @@ System.register([], (function (exports) {
362
373
  pruneDependencies();
363
374
  }
364
375
  (_a = storeHooks.r) == null ? void 0 : _a.call(storeHooks, atom);
376
+ atomState.m = storeEpochNumber;
365
377
  return atomState;
366
378
  } catch (error) {
367
379
  delete atomState.v;
368
380
  atomState.e = error;
369
381
  ++atomState.n;
382
+ atomState.m = storeEpochNumber;
370
383
  return atomState;
371
384
  } finally {
372
385
  isSync = false;
@@ -408,6 +421,7 @@ System.register([], (function (exports) {
408
421
  const writeAtomState = buildingBlocks[16];
409
422
  const mountDependencies = buildingBlocks[17];
410
423
  const setAtomStateValueOrPromise = buildingBlocks[20];
424
+ const storeEpochHolder = buildingBlocks[28];
411
425
  let isSync = true;
412
426
  const getter = (a) => returnAtomValue(readAtomState(store, a));
413
427
  const setter = (a, ...args2) => {
@@ -426,6 +440,7 @@ System.register([], (function (exports) {
426
440
  setAtomStateValueOrPromise(store, a, v);
427
441
  mountDependencies(store, a);
428
442
  if (prevEpochNumber !== aState.n) {
443
+ ++storeEpochHolder[0];
429
444
  changedAtoms.add(a);
430
445
  invalidateDependents(store, a);
431
446
  (_a = storeHooks.c) == null ? void 0 : _a.call(storeHooks, a);
@@ -730,7 +745,9 @@ System.register([], (function (exports) {
730
745
  /* @__PURE__ */ new WeakMap(),
731
746
  // abortHandlersMap
732
747
  BUILDING_BLOCK_registerAbortHandler,
733
- BUILDING_BLOCK_abortPromise
748
+ BUILDING_BLOCK_abortPromise,
749
+ // store epoch
750
+ [0]
734
751
  ].map((fn, i) => buildArgs[i] || fn);
735
752
  buildingBlockMap.set(store, Object.freeze(buildingBlocks));
736
753
  return store;
@@ -1 +1 @@
1
- System.register([],(function(C){"use strict";return{execute:(function(){C({INTERNAL_addPendingPromiseToDependency:B,INTERNAL_buildStoreRev2:fn,INTERNAL_getBuildingBlocksRev2:un,INTERNAL_getMountedOrPendingDependents:O,INTERNAL_hasInitialValue:W,INTERNAL_initializeStoreHooksRev2:q,INTERNAL_isActuallyWritableAtom:b,INTERNAL_isAtomStateInitialized:P,INTERNAL_isPromiseLike:I,INTERNAL_returnAtomValue:S});function W(n){return"init"in n}function b(n){return!!n.write}function P(n){return"v"in n||"e"in n}function S(n){if("e"in n)throw n.e;return n.v}function I(n){return typeof(n==null?void 0:n.then)=="function"}function B(n,e,o){if(!o.p.has(n)){o.p.add(n);const t=()=>o.p.delete(n);e.then(t,t)}}function O(n,e,o){var t;const r=new Set;for(const l of((t=o.get(n))==null?void 0:t.t)||[])r.add(l);for(const l of e.p)r.add(l);return r}const H=()=>{const n=new Set,e=()=>n.forEach(o=>o());return e.add=o=>(n.add(o),()=>n.delete(o)),e},R=()=>{const n={},e=new WeakMap,o=t=>{var r,l;(r=e.get(n))==null||r.forEach(s=>s(t)),(l=e.get(t))==null||l.forEach(s=>s())};return o.add=(t,r)=>{const l=t||n;let s=e.get(l);return s||(s=new Set,e.set(l,s)),s.add(r),()=>{s.delete(r),s.size||e.delete(l)}},o};function q(n){return n.i||(n.i=R()),n.r||(n.r=R()),n.c||(n.c=R()),n.m||(n.m=R()),n.u||(n.u=R()),n.f||(n.f=H()),n}const F=(n,e,...o)=>e.read(...o),G=(n,e,...o)=>e.write(...o),J=(n,e)=>{var o;return(o=e.INTERNAL_onInit)==null?void 0:o.call(e,n)},K=(n,e,o)=>{var t;return(t=e.onMount)==null?void 0:t.call(e,o)},Q=(n,e)=>{var o;const t=v(n),r=t[0],l=t[6],s=t[9];let c=r.get(e);return c||(c={d:new Map,p:new Set,n:0},r.set(e,c),(o=l.i)==null||o.call(l,e),s==null||s(n,e)),c},U=n=>{const e=v(n),o=e[1],t=e[3],r=e[4],l=e[5],s=e[6],c=e[13],d=[],g=p=>{try{p()}catch(u){d.push(u)}};do{s.f&&g(s.f);const p=new Set,u=p.add.bind(p);t.forEach(f=>{var a;return(a=o.get(f))==null?void 0:a.l.forEach(u)}),t.clear(),l.forEach(u),l.clear(),r.forEach(u),r.clear(),p.forEach(g),t.size&&c(n)}while(t.size||l.size||r.size);if(d.length)throw new AggregateError(d)},X=n=>{const e=v(n),o=e[1],t=e[2],r=e[3],l=e[11],s=e[14],c=e[17],d=[],g=new WeakSet,p=new WeakSet,u=Array.from(r);for(;u.length;){const f=u[u.length-1],a=l(n,f);if(p.has(f)){u.pop();continue}if(g.has(f)){t.get(f)===a.n&&d.push([f,a]),p.add(f),u.pop();continue}g.add(f);for(const w of O(f,a,o))g.has(w)||u.push(w)}for(let f=d.length-1;f>=0;--f){const[a,w]=d[f];let y=!1;for(const A of w.d.keys())if(A!==a&&r.has(A)){y=!0;break}y&&(t.set(a,w.n),s(n,a),c(n,a)),t.delete(a)}},Y=(n,e)=>{var o,t;const r=v(n),l=r[1],s=r[2],c=r[3],d=r[6],g=r[7],p=r[11],u=r[12],f=r[13],a=r[14],w=r[16],y=r[17],A=r[20],N=r[26],i=p(n,e);if(P(i)){if(l.has(e)&&s.get(e)!==i.n)return i;let h=!1;for(const[k,m]of i.d)if(a(n,k).n!==m){h=!0;break}if(!h)return i}let E=!0;const T=new Set(i.d.keys()),z=new Map,_=()=>{for(const h of T)z.has(h)||i.d.delete(h)},M=()=>{if(l.has(e)){const h=!c.size;y(n,e),h&&(f(n),u(n))}},dn=h=>{var k;if(h===e){const x=p(n,h);if(!P(x))if(W(h))A(n,h,h.init);else throw new Error("no atom init");return S(x)}const m=a(n,h);try{return S(m)}finally{z.set(h,m.n),i.d.set(h,m.n),I(i.v)&&B(e,i.v,m),l.has(e)&&((k=l.get(h))==null||k.t.add(e)),E||M()}};let L,j;const hn={get signal(){return L||(L=new AbortController),L.signal},get setSelf(){return!j&&b(e)&&(j=(...h)=>{if(!E)try{return w(n,e,...h)}finally{f(n),u(n)}}),j}},V=i.n,gn=s.get(e)===V;try{const h=g(n,e,dn,hn);if(A(n,e,h),I(h)){N(n,h,()=>L==null?void 0:L.abort());const k=()=>{_(),M()};h.then(k,k)}else _();return(o=d.r)==null||o.call(d,e),i}catch(h){return delete i.v,i.e=h,++i.n,i}finally{E=!1,i.n!==V&&gn&&(s.set(e,i.n),c.add(e),(t=d.c)==null||t.call(d,e))}},Z=(n,e)=>{const o=v(n),t=o[1],r=o[2],l=o[11],s=[e];for(;s.length;){const c=s.pop(),d=l(n,c);for(const g of O(c,d,t)){const p=l(n,g);r.get(g)!==p.n&&(r.set(g,p.n),s.push(g))}}},$=(n,e,...o)=>{const t=v(n),r=t[3],l=t[6],s=t[8],c=t[11],d=t[12],g=t[13],p=t[14],u=t[15],f=t[16],a=t[17],w=t[20];let y=!0;const A=i=>S(p(n,i)),N=(i,...E)=>{var T;const z=c(n,i);try{if(i===e){if(!W(i))throw new Error("atom not writable");const _=z.n,M=E[0];w(n,i,M),a(n,i),_!==z.n&&(r.add(i),u(n,i),(T=l.c)==null||T.call(l,i));return}else return f(n,i,...E)}finally{y||(g(n),d(n))}};try{return s(n,e,A,N,...o)}finally{y=!1}},nn=(n,e)=>{var o;const t=v(n),r=t[1],l=t[3],s=t[6],c=t[11],d=t[15],g=t[18],p=t[19],u=c(n,e),f=r.get(e);if(f){for(const[a,w]of u.d)if(!f.d.has(a)){const y=c(n,a);g(n,a).t.add(e),f.d.add(a),w!==y.n&&(l.add(a),d(n,a),(o=s.c)==null||o.call(s,a))}for(const a of f.d)if(!u.d.has(a)){f.d.delete(a);const w=p(n,a);w==null||w.t.delete(e)}}},en=(n,e)=>{var o;const t=v(n),r=t[1],l=t[4],s=t[6],c=t[10],d=t[11],g=t[12],p=t[13],u=t[14],f=t[16],a=t[18],w=d(n,e);let y=r.get(e);if(!y){u(n,e);for(const A of w.d.keys())a(n,A).t.add(e);if(y={l:new Set,d:new Set(w.d.keys()),t:new Set},r.set(e,y),b(e)){const A=()=>{let N=!0;const i=(...E)=>{try{return f(n,e,...E)}finally{N||(p(n),g(n))}};try{const E=c(n,e,i);E&&(y.u=()=>{N=!0;try{E()}finally{N=!1}})}finally{N=!1}};l.add(A)}(o=s.m)==null||o.call(s,e)}return y},tn=(n,e)=>{var o,t;const r=v(n),l=r[1],s=r[5],c=r[6],d=r[11],g=r[19],p=d(n,e);let u=l.get(e);if(!u||u.l.size)return u;let f=!1;for(const a of u.t)if((o=l.get(a))!=null&&o.d.has(e)){f=!0;break}if(!f){u.u&&s.add(u.u),u=void 0,l.delete(e);for(const a of p.d.keys()){const w=g(n,a);w==null||w.t.delete(e)}(t=c.u)==null||t.call(c,e);return}return u},rn=(n,e,o)=>{const t=v(n),r=t[11],l=t[27],s=r(n,e),c="v"in s,d=s.v;if(I(o))for(const g of s.d.keys())B(e,o,r(n,g));s.v=o,delete s.e,(!c||!Object.is(d,s.v))&&(++s.n,I(d)&&l(n,d))},on=(n,e)=>{const o=v(n)[14];return S(o(n,e))},ln=(n,e,...o)=>{const t=v(n),r=t[3],l=t[12],s=t[13],c=t[16],d=r.size;try{return c(n,e,...o)}finally{r.size!==d&&(s(n),l(n))}},sn=(n,e,o)=>{const t=v(n),r=t[12],l=t[18],s=t[19],c=l(n,e).l;return c.add(o),r(n),()=>{c.delete(o),s(n,e),r(n)}},an=(n,e,o)=>{const t=v(n)[25];let r=t.get(e);if(!r){r=new Set,t.set(e,r);const l=()=>t.delete(e);e.then(l,l)}r.add(o)},cn=(n,e)=>{const o=v(n)[25].get(e);o==null||o.forEach(t=>t())},D=new WeakMap,v=n=>D.get(n);function un(n){const e=v(n),o=e[24];return o?o(e):e}function fn(...n){const e={get(t){const r=v(e)[21];return r(e,t)},set(t,...r){const l=v(e)[22];return l(e,t,...r)},sub(t,r){const l=v(e)[23];return l(e,t,r)}},o=[new WeakMap,new WeakMap,new WeakMap,new Set,new Set,new Set,{},F,G,J,K,Q,U,X,Y,Z,$,nn,en,tn,rn,on,ln,sn,void 0,new WeakMap,an,cn].map((t,r)=>n[r]||t);return D.set(e,Object.freeze(o)),e}})}}));
1
+ System.register([],(function(q){"use strict";return{execute:(function(){q({INTERNAL_addPendingPromiseToDependency:O,INTERNAL_buildStoreRev2:hn,INTERNAL_getBuildingBlocksRev2:dn,INTERNAL_getMountedOrPendingDependents:V,INTERNAL_hasInitialValue:W,INTERNAL_initializeStoreHooksRev2:G,INTERNAL_isActuallyWritableAtom:P,INTERNAL_isAtomStateInitialized:B,INTERNAL_isPromiseLike:R,INTERNAL_returnAtomValue:I});function W(n){return"init"in n}function P(n){return!!n.write}function B(n){return"v"in n||"e"in n}function I(n){if("e"in n)throw n.e;return n.v}function R(n){return typeof(n==null?void 0:n.then)=="function"}function O(n,e,o){if(!o.p.has(n)){o.p.add(n);const t=()=>o.p.delete(n);e.then(t,t)}}function V(n,e,o){var t;const r=new Set;for(const l of((t=o.get(n))==null?void 0:t.t)||[])r.add(l);for(const l of e.p)r.add(l);return r}const F=()=>{const n=new Set,e=()=>n.forEach(o=>o());return e.add=o=>(n.add(o),()=>n.delete(o)),e},b=()=>{const n={},e=new WeakMap,o=t=>{var r,l;(r=e.get(n))==null||r.forEach(s=>s(t)),(l=e.get(t))==null||l.forEach(s=>s())};return o.add=(t,r)=>{const l=t||n;let s=e.get(l);return s||(s=new Set,e.set(l,s)),s.add(r),()=>{s.delete(r),s.size||e.delete(l)}},o};function G(n){return n.i||(n.i=b()),n.r||(n.r=b()),n.c||(n.c=b()),n.m||(n.m=b()),n.u||(n.u=b()),n.f||(n.f=F()),n}const J=(n,e,...o)=>e.read(...o),K=(n,e,...o)=>e.write(...o),Q=(n,e)=>{var o;return(o=e.INTERNAL_onInit)==null?void 0:o.call(e,n)},U=(n,e,o)=>{var t;return(t=e.onMount)==null?void 0:t.call(e,o)},X=(n,e)=>{var o;const t=v(n),r=t[0],l=t[6],s=t[9];let c=r.get(e);return c||(c={d:new Map,p:new Set,n:0},r.set(e,c),(o=l.i)==null||o.call(l,e),s==null||s(n,e)),c},Y=n=>{const e=v(n),o=e[1],t=e[3],r=e[4],l=e[5],s=e[6],c=e[13],d=[],g=p=>{try{p()}catch(u){d.push(u)}};do{s.f&&g(s.f);const p=new Set,u=p.add.bind(p);t.forEach(f=>{var i;return(i=o.get(f))==null?void 0:i.l.forEach(u)}),t.clear(),l.forEach(u),l.clear(),r.forEach(u),r.clear(),p.forEach(g),t.size&&c(n)}while(t.size||l.size||r.size);if(d.length)throw new AggregateError(d)},Z=n=>{const e=v(n),o=e[1],t=e[2],r=e[3],l=e[11],s=e[14],c=e[17],d=[],g=new WeakSet,p=new WeakSet,u=Array.from(r);for(;u.length;){const f=u[u.length-1],i=l(n,f);if(p.has(f)){u.pop();continue}if(g.has(f)){t.get(f)===i.n&&d.push([f,i]),p.add(f),u.pop();continue}g.add(f);for(const w of V(f,i,o))g.has(w)||u.push(w)}for(let f=d.length-1;f>=0;--f){const[i,w]=d[f];let m=!1;for(const A of w.d.keys())if(A!==i&&r.has(A)){m=!0;break}m&&(t.set(i,w.n),s(n,i),c(n,i)),t.delete(i)}},$=(n,e)=>{var o,t;const r=v(n),l=r[1],s=r[2],c=r[3],d=r[6],g=r[7],p=r[11],u=r[12],f=r[13],i=r[14],w=r[16],m=r[17],A=r[20],k=r[26],z=r[28],a=p(n,e),y=z[0];if(B(a)){if(l.has(e)&&s.get(e)!==a.n||a.m===y)return a.m=y,a;let h=!1;for(const[N,S]of a.d)if(i(n,N).n!==S){h=!0;break}if(!h)return a.m=y,a}let E=!0;const T=new Set(a.d.keys()),_=new Map,M=()=>{for(const h of T)_.has(h)||a.d.delete(h)},x=()=>{if(l.has(e)){const h=!c.size;m(n,e),h&&(f(n),u(n))}},gn=h=>{var N;if(h===e){const H=p(n,h);if(!B(H))if(W(h))A(n,h,h.init);else throw new Error("no atom init");return I(H)}const S=i(n,h);try{return I(S)}finally{_.set(h,S.n),a.d.set(h,S.n),R(a.v)&&O(e,a.v,S),l.has(e)&&((N=l.get(h))==null||N.t.add(e)),E||x()}};let L,j;const pn={get signal(){return L||(L=new AbortController),L.signal},get setSelf(){return!j&&P(e)&&(j=(...h)=>{if(!E)try{return w(n,e,...h)}finally{f(n),u(n)}}),j}},C=a.n,wn=s.get(e)===C;try{const h=g(n,e,gn,pn);if(A(n,e,h),R(h)){k(n,h,()=>L==null?void 0:L.abort());const N=()=>{M(),x()};h.then(N,N)}else M();return(o=d.r)==null||o.call(d,e),a.m=y,a}catch(h){return delete a.v,a.e=h,++a.n,a.m=y,a}finally{E=!1,a.n!==C&&wn&&(s.set(e,a.n),c.add(e),(t=d.c)==null||t.call(d,e))}},nn=(n,e)=>{const o=v(n),t=o[1],r=o[2],l=o[11],s=[e];for(;s.length;){const c=s.pop(),d=l(n,c);for(const g of V(c,d,t)){const p=l(n,g);r.get(g)!==p.n&&(r.set(g,p.n),s.push(g))}}},en=(n,e,...o)=>{const t=v(n),r=t[3],l=t[6],s=t[8],c=t[11],d=t[12],g=t[13],p=t[14],u=t[15],f=t[16],i=t[17],w=t[20],m=t[28];let A=!0;const k=a=>I(p(n,a)),z=(a,...y)=>{var E;const T=c(n,a);try{if(a===e){if(!W(a))throw new Error("atom not writable");const _=T.n,M=y[0];w(n,a,M),i(n,a),_!==T.n&&(++m[0],r.add(a),u(n,a),(E=l.c)==null||E.call(l,a));return}else return f(n,a,...y)}finally{A||(g(n),d(n))}};try{return s(n,e,k,z,...o)}finally{A=!1}},tn=(n,e)=>{var o;const t=v(n),r=t[1],l=t[3],s=t[6],c=t[11],d=t[15],g=t[18],p=t[19],u=c(n,e),f=r.get(e);if(f){for(const[i,w]of u.d)if(!f.d.has(i)){const m=c(n,i);g(n,i).t.add(e),f.d.add(i),w!==m.n&&(l.add(i),d(n,i),(o=s.c)==null||o.call(s,i))}for(const i of f.d)if(!u.d.has(i)){f.d.delete(i);const w=p(n,i);w==null||w.t.delete(e)}}},rn=(n,e)=>{var o;const t=v(n),r=t[1],l=t[4],s=t[6],c=t[10],d=t[11],g=t[12],p=t[13],u=t[14],f=t[16],i=t[18],w=d(n,e);let m=r.get(e);if(!m){u(n,e);for(const A of w.d.keys())i(n,A).t.add(e);if(m={l:new Set,d:new Set(w.d.keys()),t:new Set},r.set(e,m),P(e)){const A=()=>{let k=!0;const z=(...a)=>{try{return f(n,e,...a)}finally{k||(p(n),g(n))}};try{const a=c(n,e,z);a&&(m.u=()=>{k=!0;try{a()}finally{k=!1}})}finally{k=!1}};l.add(A)}(o=s.m)==null||o.call(s,e)}return m},on=(n,e)=>{var o,t;const r=v(n),l=r[1],s=r[5],c=r[6],d=r[11],g=r[19],p=d(n,e);let u=l.get(e);if(!u||u.l.size)return u;let f=!1;for(const i of u.t)if((o=l.get(i))!=null&&o.d.has(e)){f=!0;break}if(!f){u.u&&s.add(u.u),u=void 0,l.delete(e);for(const i of p.d.keys()){const w=g(n,i);w==null||w.t.delete(e)}(t=c.u)==null||t.call(c,e);return}return u},ln=(n,e,o)=>{const t=v(n),r=t[11],l=t[27],s=r(n,e),c="v"in s,d=s.v;if(R(o))for(const g of s.d.keys())O(e,o,r(n,g));s.v=o,delete s.e,(!c||!Object.is(d,s.v))&&(++s.n,R(d)&&l(n,d))},sn=(n,e)=>{const o=v(n)[14];return I(o(n,e))},an=(n,e,...o)=>{const t=v(n),r=t[3],l=t[12],s=t[13],c=t[16],d=r.size;try{return c(n,e,...o)}finally{r.size!==d&&(s(n),l(n))}},cn=(n,e,o)=>{const t=v(n),r=t[12],l=t[18],s=t[19],c=l(n,e).l;return c.add(o),r(n),()=>{c.delete(o),s(n,e),r(n)}},un=(n,e,o)=>{const t=v(n)[25];let r=t.get(e);if(!r){r=new Set,t.set(e,r);const l=()=>t.delete(e);e.then(l,l)}r.add(o)},fn=(n,e)=>{const o=v(n)[25].get(e);o==null||o.forEach(t=>t())},D=new WeakMap,v=n=>D.get(n);function dn(n){const e=v(n),o=e[24];return o?o(e):e}function hn(...n){const e={get(t){const r=v(e)[21];return r(e,t)},set(t,...r){const l=v(e)[22];return l(e,t,...r)},sub(t,r){const l=v(e)[23];return l(e,t,r)}},o=[new WeakMap,new WeakMap,new WeakMap,new Set,new Set,new Set,{},J,K,Q,U,X,Y,Z,$,nn,en,tn,rn,on,ln,sn,an,cn,void 0,new WeakMap,un,fn,[0]].map((t,r)=>n[r]||t);return D.set(e,Object.freeze(o)),e}})}}));
@@ -1,6 +1,7 @@
1
1
  import type { Atom, ExtractAtomValue } from 'jotai/vanilla';
2
2
  import { useStore } from './Provider';
3
3
  type Options = Parameters<typeof useStore>[0] & {
4
+ /** @deprecated delay option is deprecated and will be removed in v3. https://github.com/pmndrs/jotai/pull/3264 */
4
5
  delay?: number;
5
6
  unstable_promiseStatus?: boolean;
6
7
  };
@@ -27,6 +27,8 @@ type AtomState<Value = AnyValue> = {
27
27
  readonly p: Set<AnyAtom>;
28
28
  /** The epoch number of the atom. */
29
29
  n: EpochNumber;
30
+ /** The store epoch number that last validated the atom. */
31
+ m?: EpochNumber;
30
32
  /** Atom value */
31
33
  v?: Value;
32
34
  /** Atom error */
@@ -89,6 +91,9 @@ type EnhanceBuildingBlocks = (buildingBlocks: Readonly<BuildingBlocks>) => Reado
89
91
  type AbortHandlersMap = WeakMapLike<PromiseLike<unknown>, Set<() => void>>;
90
92
  type RegisterAbortHandler = <T>(store: Store, promise: PromiseLike<T>, abortHandler: () => void) => void;
91
93
  type AbortPromise = <T>(store: Store, promise: PromiseLike<T>) => void;
94
+ type StoreEpochHolder = [
95
+ /*n*/ EpochNumber
96
+ ];
92
97
  type Store = {
93
98
  get: <Value>(atom: Atom<Value>) => Value;
94
99
  set: <Value, Args extends unknown[], Result>(atom: WritableAtom<Value, Args, Result>, ...args: Args) => Result;
@@ -122,7 +127,8 @@ type BuildingBlocks = [
122
127
  /*enhanceBuildingBlocks*/ EnhanceBuildingBlocks | undefined,
123
128
  /*abortHandlersMap*/ AbortHandlersMap,
124
129
  /*registerAbortHandler*/ RegisterAbortHandler,
125
- /*abortPromise*/ AbortPromise
130
+ /*abortPromise*/ AbortPromise,
131
+ /*storeEpochHolder*/ StoreEpochHolder
126
132
  ];
127
133
  export type { AtomState as INTERNAL_AtomState, Mounted as INTERNAL_Mounted, AtomStateMap as INTERNAL_AtomStateMap, MountedMap as INTERNAL_MountedMap, InvalidatedAtoms as INTERNAL_InvalidatedAtoms, ChangedAtoms as INTERNAL_ChangedAtoms, Callbacks as INTERNAL_Callbacks, AtomRead as INTERNAL_AtomRead, AtomWrite as INTERNAL_AtomWrite, AtomOnInit as INTERNAL_AtomOnInit, AtomOnMount as INTERNAL_AtomOnMount, EnsureAtomState as INTERNAL_EnsureAtomState, FlushCallbacks as INTERNAL_FlushCallbacks, RecomputeInvalidatedAtoms as INTERNAL_RecomputeInvalidatedAtoms, ReadAtomState as INTERNAL_ReadAtomState, InvalidateDependents as INTERNAL_InvalidateDependents, WriteAtomState as INTERNAL_WriteAtomState, MountDependencies as INTERNAL_MountDependencies, MountAtom as INTERNAL_MountAtom, UnmountAtom as INTERNAL_UnmountAtom, Store as INTERNAL_Store, BuildingBlocks as INTERNAL_BuildingBlocks, StoreHooks as INTERNAL_StoreHooks, };
128
134
  declare function hasInitialValue<T extends Atom<AnyValue>>(atom: T): atom is T & (T extends Atom<infer Value> ? {
@@ -1,6 +1,7 @@
1
1
  import type { Atom, ExtractAtomValue } from 'jotai/vanilla';
2
2
  import { useStore } from './Provider';
3
3
  type Options = Parameters<typeof useStore>[0] & {
4
+ /** @deprecated delay option is deprecated and will be removed in v3. https://github.com/pmndrs/jotai/pull/3264 */
4
5
  delay?: number;
5
6
  unstable_promiseStatus?: boolean;
6
7
  };
@@ -27,6 +27,8 @@ type AtomState<Value = AnyValue> = {
27
27
  readonly p: Set<AnyAtom>;
28
28
  /** The epoch number of the atom. */
29
29
  n: EpochNumber;
30
+ /** The store epoch number that last validated the atom. */
31
+ m?: EpochNumber;
30
32
  /** Atom value */
31
33
  v?: Value;
32
34
  /** Atom error */
@@ -89,6 +91,9 @@ type EnhanceBuildingBlocks = (buildingBlocks: Readonly<BuildingBlocks>) => Reado
89
91
  type AbortHandlersMap = WeakMapLike<PromiseLike<unknown>, Set<() => void>>;
90
92
  type RegisterAbortHandler = <T>(store: Store, promise: PromiseLike<T>, abortHandler: () => void) => void;
91
93
  type AbortPromise = <T>(store: Store, promise: PromiseLike<T>) => void;
94
+ type StoreEpochHolder = [
95
+ /*n*/ EpochNumber
96
+ ];
92
97
  type Store = {
93
98
  get: <Value>(atom: Atom<Value>) => Value;
94
99
  set: <Value, Args extends unknown[], Result>(atom: WritableAtom<Value, Args, Result>, ...args: Args) => Result;
@@ -122,7 +127,8 @@ type BuildingBlocks = [
122
127
  /*enhanceBuildingBlocks*/ EnhanceBuildingBlocks | undefined,
123
128
  /*abortHandlersMap*/ AbortHandlersMap,
124
129
  /*registerAbortHandler*/ RegisterAbortHandler,
125
- /*abortPromise*/ AbortPromise
130
+ /*abortPromise*/ AbortPromise,
131
+ /*storeEpochHolder*/ StoreEpochHolder
126
132
  ];
127
133
  export type { AtomState as INTERNAL_AtomState, Mounted as INTERNAL_Mounted, AtomStateMap as INTERNAL_AtomStateMap, MountedMap as INTERNAL_MountedMap, InvalidatedAtoms as INTERNAL_InvalidatedAtoms, ChangedAtoms as INTERNAL_ChangedAtoms, Callbacks as INTERNAL_Callbacks, AtomRead as INTERNAL_AtomRead, AtomWrite as INTERNAL_AtomWrite, AtomOnInit as INTERNAL_AtomOnInit, AtomOnMount as INTERNAL_AtomOnMount, EnsureAtomState as INTERNAL_EnsureAtomState, FlushCallbacks as INTERNAL_FlushCallbacks, RecomputeInvalidatedAtoms as INTERNAL_RecomputeInvalidatedAtoms, ReadAtomState as INTERNAL_ReadAtomState, InvalidateDependents as INTERNAL_InvalidateDependents, WriteAtomState as INTERNAL_WriteAtomState, MountDependencies as INTERNAL_MountDependencies, MountAtom as INTERNAL_MountAtom, UnmountAtom as INTERNAL_UnmountAtom, Store as INTERNAL_Store, BuildingBlocks as INTERNAL_BuildingBlocks, StoreHooks as INTERNAL_StoreHooks, };
128
134
  declare function hasInitialValue<T extends Atom<AnyValue>>(atom: T): atom is T & (T extends Atom<infer Value> ? {
@@ -136,6 +136,7 @@
136
136
  } catch (_unused) {}
137
137
  }
138
138
  if (typeof delay === 'number') {
139
+ console.warn("[DEPRECATED] delay option is deprecated and will be removed in v3.\n\nMigration guide:\n\nCreate a custom hook like the following.\n\nfunction useAtomValueWithDelay<Value>(\n atom: Atom<Value>,\n options: { delay: number },\n): Value {\n const { delay } = options\n const store = useStore(options)\n const [value, setValue] = useState(() => store.get(atom))\n useEffect(() => {\n const unsub = store.sub(atom, () => {\n setTimeout(() => setValue(store.get(atom)), delay)\n })\n return unsub\n }, [store, atom, delay])\n return value\n}\n");
139
140
  setTimeout(rerender, delay);
140
141
  return;
141
142
  }
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("jotai/vanilla"),require("jotai/vanilla/internals")):"function"==typeof define&&define.amd?define(["exports","react","jotai/vanilla","jotai/vanilla/internals"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).jotaiReact={},e.React,e.jotaiVanilla,e.jotaiVanillaInternals)}(this,function(e,t,n,r){"use strict";var u=t.createContext(void 0);function i(e){var r=t.useContext(u);return(null==e?void 0:e.store)||r||n.getDefaultStore()}var o=function(e){return"function"==typeof(null==e?void 0:e.then)},a=function(e){e.status||(e.status="pending",e.then(function(t){e.status="fulfilled",e.value=t},function(t){e.status="rejected",e.reason=t}))},c=t.use||function(e){if("pending"===e.status)throw e;if("fulfilled"===e.status)return e.value;throw"rejected"===e.status?e.reason:(a(e),e)},f=new WeakMap,l=function(e,t,n){var u=r.INTERNAL_getBuildingBlocksRev2(e)[26],i=f.get(t);return i||(i=new Promise(function(r,a){var c=t,l=function(e){return function(t){c===e&&r(t)}},s=function(e){return function(t){c===e&&a(t)}},v=function(){try{var t=n();o(t)?(f.set(t,i),c=t,t.then(l(t),s(t)),u(e,t,v)):r(t)}catch(e){a(e)}};t.then(l(t),s(t)),u(e,t,v)}),f.set(t,i)),i};function s(e,n){var r=n||{},u=r.delay,f=r.unstable_promiseStatus,s=void 0===f?!t.use:f,v=i(n),d=t.useReducer(function(t){var n=v.get(e);return Object.is(t[0],n)&&t[1]===v&&t[2]===e?t:[n,v,e]},void 0,function(){return[v.get(e),v,e]}),g=d[0],p=g[0],h=g[1],j=g[2],m=d[1],y=p;if(h===v&&j===e||(m(),y=v.get(e)),t.useEffect(function(){var t=v.sub(e,function(){if(s)try{var t=v.get(e);o(t)&&a(l(v,t,function(){return v.get(e)}))}catch(e){}"number"!=typeof u?m():setTimeout(m,u)});return m(),t},[v,e,u,s]),t.useDebugValue(y),o(y)){var b=l(v,y,function(){return v.get(e)});return s&&a(b),c(b)}return y}function v(e,n){var r=i(n),u=t.useCallback(function(){for(var t=arguments.length,n=new Array(t),u=0;u<t;u++)n[u]=arguments[u];return r.set.apply(r,[e].concat(n))},[r,e]);return u}e.Provider=function(e){var r=e.children,i=e.store,o=t.useRef(null);return i?t.createElement(u.Provider,{value:i},r):(null===o.current&&(o.current=n.createStore()),t.createElement(u.Provider,{value:o.current},r))},e.useAtom=function(e,t){return[s(e,t),v(e,t)]},e.useAtomValue=s,e.useSetAtom=v,e.useStore=i});
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("jotai/vanilla"),require("jotai/vanilla/internals")):"function"==typeof define&&define.amd?define(["exports","react","jotai/vanilla","jotai/vanilla/internals"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).jotaiReact={},e.React,e.jotaiVanilla,e.jotaiVanillaInternals)}(this,function(e,t,n,u){"use strict";var r=t.createContext(void 0);function o(e){var u=t.useContext(r);return(null==e?void 0:e.store)||u||n.getDefaultStore()}var a=function(e){return"function"==typeof(null==e?void 0:e.then)},i=function(e){e.status||(e.status="pending",e.then(function(t){e.status="fulfilled",e.value=t},function(t){e.status="rejected",e.reason=t}))},s=t.use||function(e){if("pending"===e.status)throw e;if("fulfilled"===e.status)return e.value;throw"rejected"===e.status?e.reason:(i(e),e)},l=new WeakMap,c=function(e,t,n){var r=u.INTERNAL_getBuildingBlocksRev2(e)[26],o=l.get(t);return o||(o=new Promise(function(u,i){var s=t,c=function(e){return function(t){s===e&&u(t)}},f=function(e){return function(t){s===e&&i(t)}},d=function(){try{var t=n();a(t)?(l.set(t,o),s=t,t.then(c(t),f(t)),r(e,t,d)):u(t)}catch(e){i(e)}};t.then(c(t),f(t)),r(e,t,d)}),l.set(t,o)),o};function f(e,n){var u=n||{},r=u.delay,l=u.unstable_promiseStatus,f=void 0===l?!t.use:l,d=o(n),v=t.useReducer(function(t){var n=d.get(e);return Object.is(t[0],n)&&t[1]===d&&t[2]===e?t:[n,d,e]},void 0,function(){return[d.get(e),d,e]}),m=v[0],g=m[0],p=m[1],y=m[2],h=v[1],b=g;if(p===d&&y===e||(h(),b=d.get(e)),t.useEffect(function(){var t=d.sub(e,function(){if(f)try{var t=d.get(e);a(t)&&i(c(d,t,function(){return d.get(e)}))}catch(e){}if("number"==typeof r)return console.warn("[DEPRECATED] delay option is deprecated and will be removed in v3.\n\nMigration guide:\n\nCreate a custom hook like the following.\n\nfunction useAtomValueWithDelay<Value>(\n atom: Atom<Value>,\n options: { delay: number },\n): Value {\n const { delay } = options\n const store = useStore(options)\n const [value, setValue] = useState(() => store.get(atom))\n useEffect(() => {\n const unsub = store.sub(atom, () => {\n setTimeout(() => setValue(store.get(atom)), delay)\n })\n return unsub\n }, [store, atom, delay])\n return value\n}\n"),void setTimeout(h,r);h()});return h(),t},[d,e,r,f]),t.useDebugValue(b),a(b)){var j=c(d,b,function(){return d.get(e)});return f&&i(j),s(j)}return b}function d(e,n){var u=o(n),r=t.useCallback(function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return u.set.apply(u,[e].concat(n))},[u,e]);return r}e.Provider=function(e){var u=e.children,o=e.store,a=t.useRef(null);return o?t.createElement(r.Provider,{value:o},u):(null===a.current&&(a.current=n.createStore()),t.createElement(r.Provider,{value:a.current},u))},e.useAtom=function(e,t){return[f(e,t),d(e,t)]},e.useAtomValue=f,e.useSetAtom=d,e.useStore=o});
@@ -286,22 +286,26 @@
286
286
  var mountDependencies = buildingBlocks[17];
287
287
  var setAtomStateValueOrPromise = buildingBlocks[20];
288
288
  var registerAbortHandler = buildingBlocks[26];
289
+ var storeEpochHolder = buildingBlocks[28];
289
290
  var atomState = ensureAtomState(store, atom);
291
+ var storeEpochNumber = storeEpochHolder[0];
290
292
  if (isAtomStateInitialized(atomState)) {
291
- if (mountedMap.has(atom) && invalidatedAtoms.get(atom) !== atomState.n) {
293
+ if (mountedMap.has(atom) && invalidatedAtoms.get(atom) !== atomState.n || atomState.m === storeEpochNumber) {
294
+ atomState.m = storeEpochNumber;
292
295
  return atomState;
293
296
  }
294
297
  var hasChangedDeps = false;
295
298
  for (var _iterator5 = _createForOfIteratorHelperLoose(atomState.d), _step5; !(_step5 = _iterator5()).done;) {
296
299
  var _step5$value = _step5.value,
297
300
  a = _step5$value[0],
298
- n = _step5$value[1];
299
- if (readAtomState(store, a).n !== n) {
301
+ _n = _step5$value[1];
302
+ if (readAtomState(store, a).n !== _n) {
300
303
  hasChangedDeps = true;
301
304
  break;
302
305
  }
303
306
  }
304
307
  if (!hasChangedDeps) {
308
+ atomState.m = storeEpochNumber;
305
309
  return atomState;
306
310
  }
307
311
  }
@@ -418,11 +422,13 @@
418
422
  pruneDependencies();
419
423
  }
420
424
  storeHooks.r == null || storeHooks.r(atom);
425
+ atomState.m = storeEpochNumber;
421
426
  return atomState;
422
427
  } catch (error) {
423
428
  delete atomState.v;
424
429
  atomState.e = error;
425
430
  ++atomState.n;
431
+ atomState.m = storeEpochNumber;
426
432
  return atomState;
427
433
  } finally {
428
434
  isSync = false;
@@ -465,6 +471,7 @@
465
471
  var writeAtomState = buildingBlocks[16];
466
472
  var mountDependencies = buildingBlocks[17];
467
473
  var setAtomStateValueOrPromise = buildingBlocks[20];
474
+ var storeEpochHolder = buildingBlocks[28];
468
475
  var isSync = true;
469
476
  var getter = function getter(a) {
470
477
  return returnAtomValue(readAtomState(store, a));
@@ -487,6 +494,7 @@
487
494
  setAtomStateValueOrPromise(store, a, v);
488
495
  mountDependencies(store, a);
489
496
  if (prevEpochNumber !== aState.n) {
497
+ ++storeEpochHolder[0];
490
498
  changedAtoms.add(a);
491
499
  invalidateDependents(store, a);
492
500
  storeHooks.c == null || storeHooks.c(a);
@@ -526,13 +534,13 @@
526
534
  for (var _iterator8 = _createForOfIteratorHelperLoose(atomState.d), _step8; !(_step8 = _iterator8()).done;) {
527
535
  var _step8$value = _step8.value,
528
536
  a = _step8$value[0],
529
- n = _step8$value[1];
537
+ _n2 = _step8$value[1];
530
538
  if (!mounted.d.has(a)) {
531
539
  var aState = ensureAtomState(store, a);
532
540
  var aMounted = mountAtom(store, a);
533
541
  aMounted.t.add(atom);
534
542
  mounted.d.add(a);
535
- if (n !== aState.n) {
543
+ if (_n2 !== aState.n) {
536
544
  changedAtoms.add(a);
537
545
  invalidateDependents(store, a);
538
546
  storeHooks.c == null || storeHooks.c(a);
@@ -770,7 +778,7 @@
770
778
  return storeSub(store, atom, listener);
771
779
  }
772
780
  };
773
- var buildingBlocks = [new WeakMap(), new WeakMap(), new WeakMap(), new Set(), new Set(), new Set(), {}, BUILDING_BLOCK_atomRead, BUILDING_BLOCK_atomWrite, BUILDING_BLOCK_atomOnInit, BUILDING_BLOCK_atomOnMount, BUILDING_BLOCK_ensureAtomState, BUILDING_BLOCK_flushCallbacks, BUILDING_BLOCK_recomputeInvalidatedAtoms, BUILDING_BLOCK_readAtomState, BUILDING_BLOCK_invalidateDependents, BUILDING_BLOCK_writeAtomState, BUILDING_BLOCK_mountDependencies, BUILDING_BLOCK_mountAtom, BUILDING_BLOCK_unmountAtom, BUILDING_BLOCK_setAtomStateValueOrPromise, BUILDING_BLOCK_storeGet, BUILDING_BLOCK_storeSet, BUILDING_BLOCK_storeSub, undefined, new WeakMap(), BUILDING_BLOCK_registerAbortHandler, BUILDING_BLOCK_abortPromise].map(function (fn, i) {
781
+ var buildingBlocks = [new WeakMap(), new WeakMap(), new WeakMap(), new Set(), new Set(), new Set(), {}, BUILDING_BLOCK_atomRead, BUILDING_BLOCK_atomWrite, BUILDING_BLOCK_atomOnInit, BUILDING_BLOCK_atomOnMount, BUILDING_BLOCK_ensureAtomState, BUILDING_BLOCK_flushCallbacks, BUILDING_BLOCK_recomputeInvalidatedAtoms, BUILDING_BLOCK_readAtomState, BUILDING_BLOCK_invalidateDependents, BUILDING_BLOCK_writeAtomState, BUILDING_BLOCK_mountDependencies, BUILDING_BLOCK_mountAtom, BUILDING_BLOCK_unmountAtom, BUILDING_BLOCK_setAtomStateValueOrPromise, BUILDING_BLOCK_storeGet, BUILDING_BLOCK_storeSet, BUILDING_BLOCK_storeSub, undefined, new WeakMap(), BUILDING_BLOCK_registerAbortHandler, BUILDING_BLOCK_abortPromise, [0]].map(function (fn, i) {
774
782
  return buildArgs[i] || fn;
775
783
  });
776
784
  buildingBlockMap.set(store, Object.freeze(buildingBlocks));
@@ -1 +1 @@
1
- !function(n,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((n="undefined"!=typeof globalThis?globalThis:n||self).jotaiVanillaInternals={})}(this,function(n){"use strict";function e(n,e){(null==e||e>n.length)&&(e=n.length);for(var r=0,t=Array(e);r<e;r++)t[r]=n[r];return t}function r(n,r){var t="undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(t)return(t=t.call(n)).next.bind(t);if(Array.isArray(n)||(t=function(n,r){if(n){if("string"==typeof n)return e(n,r);var t={}.toString.call(n).slice(8,-1);return"Object"===t&&n.constructor&&(t=n.constructor.name),"Map"===t||"Set"===t?Array.from(n):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?e(n,r):void 0}}(n))||r){t&&(n=t);var a=0;return function(){return a>=n.length?{done:!0}:{done:!1,value:n[a++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function t(n){return"init"in n}function a(n){return!!n.write}function o(n){return"v"in n||"e"in n}function i(n){if("e"in n)throw n.e;return n.v}function u(n){return"function"==typeof(null==n?void 0:n.then)}function f(n,e,r){if(!r.p.has(n)){r.p.add(n);var t=function(){return r.p.delete(n)};e.then(t,t)}}function l(n,e,t){for(var a,o=new Set,i=r((null==(u=t.get(n))?void 0:u.t)||[]);!(a=i()).done;){var u,f=a.value;o.add(f)}for(var l,d=r(e.p);!(l=d()).done;){var v=l.value;o.add(v)}return o}var d=function(){var n={},e=new WeakMap,r=function(r){var t,a;null==(t=e.get(n))||t.forEach(function(n){return n(r)}),null==(a=e.get(r))||a.forEach(function(n){return n()})};return r.add=function(r,t){var a=r||n,o=e.get(a);return o||(o=new Set,e.set(a,o)),o.add(t),function(){o.delete(t),o.size||e.delete(a)}},r};var v=function(n,e){for(var r=arguments.length,t=new Array(r>2?r-2:0),a=2;a<r;a++)t[a-2]=arguments[a];return e.read.apply(e,t)},c=function(n,e){for(var r=arguments.length,t=new Array(r>2?r-2:0),a=2;a<r;a++)t[a-2]=arguments[a];return e.write.apply(e,t)},s=function(n,e){return null==e.INTERNAL_onInit?void 0:e.INTERNAL_onInit(n)},y=function(n,e,r){return null==e.onMount?void 0:e.onMount(r)},h=function(n,e){var r=M(n),t=r[0],a=r[6],o=r[9],i=t.get(e);return i||(i={d:new Map,p:new Set,n:0},t.set(e,i),null==a.i||a.i(e),null==o||o(n,e)),i},p=function(n){var e=M(n),r=e[1],t=e[3],a=e[4],o=e[5],i=e[6],u=e[13],f=[],l=function(n){try{n()}catch(n){f.push(n)}},d=function(){i.f&&l(i.f);var e=new Set,f=e.add.bind(e);t.forEach(function(n){var e;return null==(e=r.get(n))?void 0:e.l.forEach(f)}),t.clear(),o.forEach(f),o.clear(),a.forEach(f),a.clear(),e.forEach(l),t.size&&u(n)};do{d()}while(t.size||o.size||a.size);if(f.length)throw new AggregateError(f)},g=function(n){for(var e=M(n),t=e[1],a=e[2],o=e[3],i=e[11],u=e[14],f=e[17],d=[],v=new WeakSet,c=new WeakSet,s=Array.from(o);s.length;){var y=s[s.length-1],h=i(n,y);if(c.has(y))s.pop();else if(v.has(y))a.get(y)===h.n&&d.push([y,h]),c.add(y),s.pop();else{v.add(y);for(var p,g=r(l(y,h,t));!(p=g()).done;){var w=p.value;v.has(w)||s.push(w)}}}for(var A=d.length-1;A>=0;--A){for(var m,E=d[A],S=E[0],b=E[1],N=!1,k=r(b.d.keys());!(m=k()).done;){var I=m.value;if(I!==S&&o.has(I)){N=!0;break}}N&&(a.set(S,b.n),u(n,S),f(n,S)),a.delete(S)}},w=(new WeakSet,function(n,e){var l=M(n),d=l[1],v=l[2],c=l[3],s=l[6],y=l[7],h=l[11],p=l[12],g=l[13],w=l[14],A=l[16],m=l[17],E=l[20],S=l[26],b=h(n,e);if(o(b)){if(d.has(e)&&v.get(e)!==b.n)return b;for(var N,k=!1,I=r(b.d);!(N=I()).done;){var T=N.value,R=T[0],L=T[1];if(w(n,R).n!==L){k=!0;break}}if(!k)return b}var z,_,W=!0,j=new Set(b.d.keys()),x=new Map,O=function(){for(var n,e=r(j);!(n=e()).done;){var t=n.value;x.has(t)||b.d.delete(t)}},P=function(){if(d.has(e)){var r=!c.size;m(n,e),r&&(g(n),p(n))}},V={get signal(){return z||(z=new AbortController),z.signal},get setSelf(){return!_&&a(e)&&(_=function(){if(!W)try{for(var r=arguments.length,t=new Array(r),a=0;a<r;a++)t[a]=arguments[a];return A.apply(void 0,[n,e].concat(t))}finally{g(n),p(n)}}),_}},B=b.n,C=v.get(e)===B;try{0;var D=y(n,e,function(r){if(r===e){var a=h(n,r);if(!o(a)){if(!t(r))throw new Error("no atom init");E(n,r,r.init)}return i(a)}var l=w(n,r);try{return i(l)}finally{var v;x.set(r,l.n),b.d.set(r,l.n),u(b.v)&&f(e,b.v,l),d.has(e)&&(null==(v=d.get(r))||v.t.add(e)),W||P()}},V);if(E(n,e,D),u(D)){S(n,D,function(){var n;return null==(n=z)?void 0:n.abort()});var H=function(){O(),P()};D.then(H,H)}else O();return null==s.r||s.r(e),b}catch(n){return delete b.v,b.e=n,++b.n,b}finally{W=!1,b.n!==B&&C&&(v.set(e,b.n),c.add(e),null==s.c||s.c(e))}}),A=function(n,e){for(var t=M(n),a=t[1],o=t[2],i=t[11],u=[e];u.length;)for(var f,d=u.pop(),v=r(l(d,i(n,d),a));!(f=v()).done;){var c=f.value,s=i(n,c);o.get(c)!==s.n&&(o.set(c,s.n),u.push(c))}},m=function(n,e){var r=M(n),a=r[3],o=r[6],u=r[8],f=r[11],l=r[12],d=r[13],v=r[14],c=r[15],s=r[16],y=r[17],h=r[20],p=!0;try{for(var g=arguments.length,w=new Array(g>2?g-2:0),A=2;A<g;A++)w[A-2]=arguments[A];return u.apply(void 0,[n,e,function(e){return i(v(n,e))},function(r){var i=f(n,r);try{for(var u=arguments.length,v=new Array(u>1?u-1:0),g=1;g<u;g++)v[g-1]=arguments[g];if(r===e){if(!t(r))throw new Error("atom not writable");var w=i.n,A=v[0];return h(n,r,A),y(n,r),void(w!==i.n&&(a.add(r),c(n,r),null==o.c||o.c(r)))}return s.apply(void 0,[n,r].concat(v))}finally{p||(d(n),l(n))}}].concat(w))}finally{p=!1}},E=function(n,e){var t=M(n),a=t[1],o=t[3],i=t[6],u=t[11],f=t[15],l=t[18],d=t[19],v=u(n,e),c=a.get(e);if(c){for(var s,y=r(v.d);!(s=y()).done;){var h=s.value,p=h[0],g=h[1];if(!c.d.has(p)){var w=u(n,p);l(n,p).t.add(e),c.d.add(p),g!==w.n&&(o.add(p),f(n,p),null==i.c||i.c(p))}}for(var A,m=r(c.d);!(A=m()).done;){var E=A.value;if(!v.d.has(E)){c.d.delete(E);var S=d(n,E);null==S||S.t.delete(e)}}}},S=function(n,e){var t=M(n),o=t[1],i=t[4],u=t[6],f=t[10],l=t[11],d=t[12],v=t[13],c=t[14],s=t[16],y=t[18],h=l(n,e),p=o.get(e);if(!p){c(n,e);for(var g,w=r(h.d.keys());!(g=w()).done;){var A=g.value;y(n,A).t.add(e)}if(p={l:new Set,d:new Set(h.d.keys()),t:new Set},o.set(e,p),a(e)){i.add(function(){var r=!0;try{var t=f(n,e,function(){try{for(var t=arguments.length,a=new Array(t),o=0;o<t;o++)a[o]=arguments[o];return s.apply(void 0,[n,e].concat(a))}finally{r||(v(n),d(n))}});t&&(p.u=function(){r=!0;try{t()}finally{r=!1}})}finally{r=!1}})}null==u.m||u.m(e)}return p},b=function(n,e){var t=M(n),a=t[1],o=t[5],i=t[6],u=t[11],f=t[19],l=u(n,e),d=a.get(e);if(!d||d.l.size)return d;for(var v,c=!1,s=r(d.t);!(v=s()).done;){var y,h=v.value;if(null!=(y=a.get(h))&&y.d.has(e)){c=!0;break}}if(c)return d;d.u&&o.add(d.u),d=void 0,a.delete(e);for(var p,g=r(l.d.keys());!(p=g()).done;){var w=f(n,p.value);null==w||w.t.delete(e)}null==i.u||i.u(e)},N=function(n,e,t){var a=M(n),o=a[11],i=a[27],l=o(n,e),d="v"in l,v=l.v;if(u(t))for(var c,s=r(l.d.keys());!(c=s()).done;){f(e,t,o(n,c.value))}l.v=t,delete l.e,d&&Object.is(v,l.v)||(++l.n,u(v)&&i(n,v))},k=function(n,e){return i((0,M(n)[14])(n,e))},I=function(n,e){var r=M(n),t=r[3],a=r[12],o=r[13],i=r[16],u=t.size;try{for(var f=arguments.length,l=new Array(f>2?f-2:0),d=2;d<f;d++)l[d-2]=arguments[d];return i.apply(void 0,[n,e].concat(l))}finally{t.size!==u&&(o(n),a(n))}},T=function(n,e,r){var t=M(n),a=t[12],o=t[18],i=t[19],u=o(n,e).l;return u.add(r),a(n),function(){u.delete(r),i(n,e),a(n)}},R=function(n,e,r){var t=M(n)[25],a=t.get(e);if(!a){a=new Set,t.set(e,a);var o=function(){return t.delete(e)};e.then(o,o)}a.add(r)},L=function(n,e){var r=M(n)[25].get(e);null==r||r.forEach(function(n){return n()})},z=new WeakMap,M=function(n){return z.get(n)};n.INTERNAL_addPendingPromiseToDependency=f,n.INTERNAL_buildStoreRev2=function(){for(var n=arguments.length,e=new Array(n),r=0;r<n;r++)e[r]=arguments[r];var t={get:function(n){return(0,M(t)[21])(t,n)},set:function(n){for(var e=M(t)[22],r=arguments.length,a=new Array(r>1?r-1:0),o=1;o<r;o++)a[o-1]=arguments[o];return e.apply(void 0,[t,n].concat(a))},sub:function(n,e){return(0,M(t)[23])(t,n,e)}},a=[new WeakMap,new WeakMap,new WeakMap,new Set,new Set,new Set,{},v,c,s,y,h,p,g,w,A,m,E,S,b,N,k,I,T,void 0,new WeakMap,R,L].map(function(n,r){return e[r]||n});return z.set(t,Object.freeze(a)),t},n.INTERNAL_getBuildingBlocksRev2=function(n){var e=M(n),r=e[24];return r?r(e):e},n.INTERNAL_getMountedOrPendingDependents=l,n.INTERNAL_hasInitialValue=t,n.INTERNAL_initializeStoreHooksRev2=function(n){var e,r,t,a,o,i,u,f;return(e=n).i||(e.i=d()),(r=n).r||(r.r=d()),(t=n).c||(t.c=d()),(a=n).m||(a.m=d()),(o=n).u||(o.u=d()),(i=n).f||(i.f=(u=new Set,(f=function(){return u.forEach(function(n){return n()})}).add=function(n){return u.add(n),function(){return u.delete(n)}},f)),n},n.INTERNAL_isActuallyWritableAtom=a,n.INTERNAL_isAtomStateInitialized=o,n.INTERNAL_isPromiseLike=u,n.INTERNAL_returnAtomValue=i});
1
+ !function(n,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((n="undefined"!=typeof globalThis?globalThis:n||self).jotaiVanillaInternals={})}(this,function(n){"use strict";function e(n,e){(null==e||e>n.length)&&(e=n.length);for(var r=0,t=Array(e);r<e;r++)t[r]=n[r];return t}function r(n,r){var t="undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(t)return(t=t.call(n)).next.bind(t);if(Array.isArray(n)||(t=function(n,r){if(n){if("string"==typeof n)return e(n,r);var t={}.toString.call(n).slice(8,-1);return"Object"===t&&n.constructor&&(t=n.constructor.name),"Map"===t||"Set"===t?Array.from(n):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?e(n,r):void 0}}(n))||r){t&&(n=t);var a=0;return function(){return a>=n.length?{done:!0}:{done:!1,value:n[a++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function t(n){return"init"in n}function a(n){return!!n.write}function o(n){return"v"in n||"e"in n}function i(n){if("e"in n)throw n.e;return n.v}function u(n){return"function"==typeof(null==n?void 0:n.then)}function f(n,e,r){if(!r.p.has(n)){r.p.add(n);var t=function(){return r.p.delete(n)};e.then(t,t)}}function l(n,e,t){for(var a,o=new Set,i=r((null==(u=t.get(n))?void 0:u.t)||[]);!(a=i()).done;){var u,f=a.value;o.add(f)}for(var l,d=r(e.p);!(l=d()).done;){var v=l.value;o.add(v)}return o}var d=function(){var n={},e=new WeakMap,r=function(r){var t,a;null==(t=e.get(n))||t.forEach(function(n){return n(r)}),null==(a=e.get(r))||a.forEach(function(n){return n()})};return r.add=function(r,t){var a=r||n,o=e.get(a);return o||(o=new Set,e.set(a,o)),o.add(t),function(){o.delete(t),o.size||e.delete(a)}},r};var v=function(n,e){for(var r=arguments.length,t=new Array(r>2?r-2:0),a=2;a<r;a++)t[a-2]=arguments[a];return e.read.apply(e,t)},c=function(n,e){for(var r=arguments.length,t=new Array(r>2?r-2:0),a=2;a<r;a++)t[a-2]=arguments[a];return e.write.apply(e,t)},s=function(n,e){return null==e.INTERNAL_onInit?void 0:e.INTERNAL_onInit(n)},y=function(n,e,r){return null==e.onMount?void 0:e.onMount(r)},h=function(n,e){var r=M(n),t=r[0],a=r[6],o=r[9],i=t.get(e);return i||(i={d:new Map,p:new Set,n:0},t.set(e,i),null==a.i||a.i(e),null==o||o(n,e)),i},p=function(n){var e=M(n),r=e[1],t=e[3],a=e[4],o=e[5],i=e[6],u=e[13],f=[],l=function(n){try{n()}catch(n){f.push(n)}},d=function(){i.f&&l(i.f);var e=new Set,f=e.add.bind(e);t.forEach(function(n){var e;return null==(e=r.get(n))?void 0:e.l.forEach(f)}),t.clear(),o.forEach(f),o.clear(),a.forEach(f),a.clear(),e.forEach(l),t.size&&u(n)};do{d()}while(t.size||o.size||a.size);if(f.length)throw new AggregateError(f)},g=function(n){for(var e=M(n),t=e[1],a=e[2],o=e[3],i=e[11],u=e[14],f=e[17],d=[],v=new WeakSet,c=new WeakSet,s=Array.from(o);s.length;){var y=s[s.length-1],h=i(n,y);if(c.has(y))s.pop();else if(v.has(y))a.get(y)===h.n&&d.push([y,h]),c.add(y),s.pop();else{v.add(y);for(var p,g=r(l(y,h,t));!(p=g()).done;){var w=p.value;v.has(w)||s.push(w)}}}for(var A=d.length-1;A>=0;--A){for(var m,E=d[A],S=E[0],b=E[1],N=!1,k=r(b.d.keys());!(m=k()).done;){var I=m.value;if(I!==S&&o.has(I)){N=!0;break}}N&&(a.set(S,b.n),u(n,S),f(n,S)),a.delete(S)}},w=(new WeakSet,function(n,e){var l=M(n),d=l[1],v=l[2],c=l[3],s=l[6],y=l[7],h=l[11],p=l[12],g=l[13],w=l[14],A=l[16],m=l[17],E=l[20],S=l[26],b=l[28],N=h(n,e),k=b[0];if(o(N)){if(d.has(e)&&v.get(e)!==N.n||N.m===k)return N.m=k,N;for(var I,T=!1,R=r(N.d);!(I=R()).done;){var L=I.value,z=L[0],_=L[1];if(w(n,z).n!==_){T=!0;break}}if(!T)return N.m=k,N}var W,j,x=!0,O=new Set(N.d.keys()),P=new Map,V=function(){for(var n,e=r(O);!(n=e()).done;){var t=n.value;P.has(t)||N.d.delete(t)}},B=function(){if(d.has(e)){var r=!c.size;m(n,e),r&&(g(n),p(n))}},C={get signal(){return W||(W=new AbortController),W.signal},get setSelf(){return!j&&a(e)&&(j=function(){if(!x)try{for(var r=arguments.length,t=new Array(r),a=0;a<r;a++)t[a]=arguments[a];return A.apply(void 0,[n,e].concat(t))}finally{g(n),p(n)}}),j}},D=N.n,H=v.get(e)===D;try{0;var U=y(n,e,function(r){if(r===e){var a=h(n,r);if(!o(a)){if(!t(r))throw new Error("no atom init");E(n,r,r.init)}return i(a)}var l=w(n,r);try{return i(l)}finally{var v;P.set(r,l.n),N.d.set(r,l.n),u(N.v)&&f(e,N.v,l),d.has(e)&&(null==(v=d.get(r))||v.t.add(e)),x||B()}},C);if(E(n,e,U),u(U)){S(n,U,function(){var n;return null==(n=W)?void 0:n.abort()});var $=function(){V(),B()};U.then($,$)}else V();return null==s.r||s.r(e),N.m=k,N}catch(n){return delete N.v,N.e=n,++N.n,N.m=k,N}finally{x=!1,N.n!==D&&H&&(v.set(e,N.n),c.add(e),null==s.c||s.c(e))}}),A=function(n,e){for(var t=M(n),a=t[1],o=t[2],i=t[11],u=[e];u.length;)for(var f,d=u.pop(),v=r(l(d,i(n,d),a));!(f=v()).done;){var c=f.value,s=i(n,c);o.get(c)!==s.n&&(o.set(c,s.n),u.push(c))}},m=function(n,e){var r=M(n),a=r[3],o=r[6],u=r[8],f=r[11],l=r[12],d=r[13],v=r[14],c=r[15],s=r[16],y=r[17],h=r[20],p=r[28],g=!0;try{for(var w=arguments.length,A=new Array(w>2?w-2:0),m=2;m<w;m++)A[m-2]=arguments[m];return u.apply(void 0,[n,e,function(e){return i(v(n,e))},function(r){var i=f(n,r);try{for(var u=arguments.length,v=new Array(u>1?u-1:0),w=1;w<u;w++)v[w-1]=arguments[w];if(r===e){if(!t(r))throw new Error("atom not writable");var A=i.n,m=v[0];return h(n,r,m),y(n,r),void(A!==i.n&&(++p[0],a.add(r),c(n,r),null==o.c||o.c(r)))}return s.apply(void 0,[n,r].concat(v))}finally{g||(d(n),l(n))}}].concat(A))}finally{g=!1}},E=function(n,e){var t=M(n),a=t[1],o=t[3],i=t[6],u=t[11],f=t[15],l=t[18],d=t[19],v=u(n,e),c=a.get(e);if(c){for(var s,y=r(v.d);!(s=y()).done;){var h=s.value,p=h[0],g=h[1];if(!c.d.has(p)){var w=u(n,p);l(n,p).t.add(e),c.d.add(p),g!==w.n&&(o.add(p),f(n,p),null==i.c||i.c(p))}}for(var A,m=r(c.d);!(A=m()).done;){var E=A.value;if(!v.d.has(E)){c.d.delete(E);var S=d(n,E);null==S||S.t.delete(e)}}}},S=function(n,e){var t=M(n),o=t[1],i=t[4],u=t[6],f=t[10],l=t[11],d=t[12],v=t[13],c=t[14],s=t[16],y=t[18],h=l(n,e),p=o.get(e);if(!p){c(n,e);for(var g,w=r(h.d.keys());!(g=w()).done;){var A=g.value;y(n,A).t.add(e)}if(p={l:new Set,d:new Set(h.d.keys()),t:new Set},o.set(e,p),a(e)){i.add(function(){var r=!0;try{var t=f(n,e,function(){try{for(var t=arguments.length,a=new Array(t),o=0;o<t;o++)a[o]=arguments[o];return s.apply(void 0,[n,e].concat(a))}finally{r||(v(n),d(n))}});t&&(p.u=function(){r=!0;try{t()}finally{r=!1}})}finally{r=!1}})}null==u.m||u.m(e)}return p},b=function(n,e){var t=M(n),a=t[1],o=t[5],i=t[6],u=t[11],f=t[19],l=u(n,e),d=a.get(e);if(!d||d.l.size)return d;for(var v,c=!1,s=r(d.t);!(v=s()).done;){var y,h=v.value;if(null!=(y=a.get(h))&&y.d.has(e)){c=!0;break}}if(c)return d;d.u&&o.add(d.u),d=void 0,a.delete(e);for(var p,g=r(l.d.keys());!(p=g()).done;){var w=f(n,p.value);null==w||w.t.delete(e)}null==i.u||i.u(e)},N=function(n,e,t){var a=M(n),o=a[11],i=a[27],l=o(n,e),d="v"in l,v=l.v;if(u(t))for(var c,s=r(l.d.keys());!(c=s()).done;){f(e,t,o(n,c.value))}l.v=t,delete l.e,d&&Object.is(v,l.v)||(++l.n,u(v)&&i(n,v))},k=function(n,e){return i((0,M(n)[14])(n,e))},I=function(n,e){var r=M(n),t=r[3],a=r[12],o=r[13],i=r[16],u=t.size;try{for(var f=arguments.length,l=new Array(f>2?f-2:0),d=2;d<f;d++)l[d-2]=arguments[d];return i.apply(void 0,[n,e].concat(l))}finally{t.size!==u&&(o(n),a(n))}},T=function(n,e,r){var t=M(n),a=t[12],o=t[18],i=t[19],u=o(n,e).l;return u.add(r),a(n),function(){u.delete(r),i(n,e),a(n)}},R=function(n,e,r){var t=M(n)[25],a=t.get(e);if(!a){a=new Set,t.set(e,a);var o=function(){return t.delete(e)};e.then(o,o)}a.add(r)},L=function(n,e){var r=M(n)[25].get(e);null==r||r.forEach(function(n){return n()})},z=new WeakMap,M=function(n){return z.get(n)};n.INTERNAL_addPendingPromiseToDependency=f,n.INTERNAL_buildStoreRev2=function(){for(var n=arguments.length,e=new Array(n),r=0;r<n;r++)e[r]=arguments[r];var t={get:function(n){return(0,M(t)[21])(t,n)},set:function(n){for(var e=M(t)[22],r=arguments.length,a=new Array(r>1?r-1:0),o=1;o<r;o++)a[o-1]=arguments[o];return e.apply(void 0,[t,n].concat(a))},sub:function(n,e){return(0,M(t)[23])(t,n,e)}},a=[new WeakMap,new WeakMap,new WeakMap,new Set,new Set,new Set,{},v,c,s,y,h,p,g,w,A,m,E,S,b,N,k,I,T,void 0,new WeakMap,R,L,[0]].map(function(n,r){return e[r]||n});return z.set(t,Object.freeze(a)),t},n.INTERNAL_getBuildingBlocksRev2=function(n){var e=M(n),r=e[24];return r?r(e):e},n.INTERNAL_getMountedOrPendingDependents=l,n.INTERNAL_hasInitialValue=t,n.INTERNAL_initializeStoreHooksRev2=function(n){var e,r,t,a,o,i,u,f;return(e=n).i||(e.i=d()),(r=n).r||(r.r=d()),(t=n).c||(t.c=d()),(a=n).m||(a.m=d()),(o=n).u||(o.u=d()),(i=n).f||(i.f=(u=new Set,(f=function(){return u.forEach(function(n){return n()})}).add=function(n){return u.add(n),function(){return u.delete(n)}},f)),n},n.INTERNAL_isActuallyWritableAtom=a,n.INTERNAL_isAtomStateInitialized=o,n.INTERNAL_isPromiseLike=u,n.INTERNAL_returnAtomValue=i});
@@ -27,6 +27,8 @@ type AtomState<Value = AnyValue> = {
27
27
  readonly p: Set<AnyAtom>;
28
28
  /** The epoch number of the atom. */
29
29
  n: EpochNumber;
30
+ /** The store epoch number that last validated the atom. */
31
+ m?: EpochNumber;
30
32
  /** Atom value */
31
33
  v?: Value;
32
34
  /** Atom error */
@@ -89,6 +91,7 @@ type EnhanceBuildingBlocks = (buildingBlocks: Readonly<BuildingBlocks>) => Reado
89
91
  type AbortHandlersMap = WeakMapLike<PromiseLike<unknown>, Set<() => void>>;
90
92
  type RegisterAbortHandler = <T>(store: Store, promise: PromiseLike<T>, abortHandler: () => void) => void;
91
93
  type AbortPromise = <T>(store: Store, promise: PromiseLike<T>) => void;
94
+ type StoreEpochHolder = [n: EpochNumber];
92
95
  type Store = {
93
96
  get: <Value>(atom: Atom<Value>) => Value;
94
97
  set: <Value, Args extends unknown[], Result>(atom: WritableAtom<Value, Args, Result>, ...args: Args) => Result;
@@ -122,7 +125,8 @@ type BuildingBlocks = [
122
125
  enhanceBuildingBlocks: EnhanceBuildingBlocks | undefined,
123
126
  abortHandlersMap: AbortHandlersMap,
124
127
  registerAbortHandler: RegisterAbortHandler,
125
- abortPromise: AbortPromise
128
+ abortPromise: AbortPromise,
129
+ storeEpochHolder: StoreEpochHolder
126
130
  ];
127
131
  export type { AtomState as INTERNAL_AtomState, Mounted as INTERNAL_Mounted, AtomStateMap as INTERNAL_AtomStateMap, MountedMap as INTERNAL_MountedMap, InvalidatedAtoms as INTERNAL_InvalidatedAtoms, ChangedAtoms as INTERNAL_ChangedAtoms, Callbacks as INTERNAL_Callbacks, AtomRead as INTERNAL_AtomRead, AtomWrite as INTERNAL_AtomWrite, AtomOnInit as INTERNAL_AtomOnInit, AtomOnMount as INTERNAL_AtomOnMount, EnsureAtomState as INTERNAL_EnsureAtomState, FlushCallbacks as INTERNAL_FlushCallbacks, RecomputeInvalidatedAtoms as INTERNAL_RecomputeInvalidatedAtoms, ReadAtomState as INTERNAL_ReadAtomState, InvalidateDependents as INTERNAL_InvalidateDependents, WriteAtomState as INTERNAL_WriteAtomState, MountDependencies as INTERNAL_MountDependencies, MountAtom as INTERNAL_MountAtom, UnmountAtom as INTERNAL_UnmountAtom, Store as INTERNAL_Store, BuildingBlocks as INTERNAL_BuildingBlocks, StoreHooks as INTERNAL_StoreHooks, };
128
132
  declare function hasInitialValue<T extends Atom<AnyValue>>(atom: T): atom is T & (T extends Atom<infer Value> ? {
@@ -282,22 +282,26 @@ var BUILDING_BLOCK_readAtomState = function BUILDING_BLOCK_readAtomState(store,
282
282
  var mountDependencies = buildingBlocks[17];
283
283
  var setAtomStateValueOrPromise = buildingBlocks[20];
284
284
  var registerAbortHandler = buildingBlocks[26];
285
+ var storeEpochHolder = buildingBlocks[28];
285
286
  var atomState = ensureAtomState(store, atom);
287
+ var storeEpochNumber = storeEpochHolder[0];
286
288
  if (isAtomStateInitialized(atomState)) {
287
- if (mountedMap.has(atom) && invalidatedAtoms.get(atom) !== atomState.n) {
289
+ if (mountedMap.has(atom) && invalidatedAtoms.get(atom) !== atomState.n || atomState.m === storeEpochNumber) {
290
+ atomState.m = storeEpochNumber;
288
291
  return atomState;
289
292
  }
290
293
  var hasChangedDeps = false;
291
294
  for (var _iterator5 = _createForOfIteratorHelperLoose(atomState.d), _step5; !(_step5 = _iterator5()).done;) {
292
295
  var _step5$value = _step5.value,
293
296
  a = _step5$value[0],
294
- n = _step5$value[1];
295
- if (readAtomState(store, a).n !== n) {
297
+ _n = _step5$value[1];
298
+ if (readAtomState(store, a).n !== _n) {
296
299
  hasChangedDeps = true;
297
300
  break;
298
301
  }
299
302
  }
300
303
  if (!hasChangedDeps) {
304
+ atomState.m = storeEpochNumber;
301
305
  return atomState;
302
306
  }
303
307
  }
@@ -414,11 +418,13 @@ var BUILDING_BLOCK_readAtomState = function BUILDING_BLOCK_readAtomState(store,
414
418
  pruneDependencies();
415
419
  }
416
420
  storeHooks.r == null || storeHooks.r(atom);
421
+ atomState.m = storeEpochNumber;
417
422
  return atomState;
418
423
  } catch (error) {
419
424
  delete atomState.v;
420
425
  atomState.e = error;
421
426
  ++atomState.n;
427
+ atomState.m = storeEpochNumber;
422
428
  return atomState;
423
429
  } finally {
424
430
  isSync = false;
@@ -461,6 +467,7 @@ var BUILDING_BLOCK_writeAtomState = function BUILDING_BLOCK_writeAtomState(store
461
467
  var writeAtomState = buildingBlocks[16];
462
468
  var mountDependencies = buildingBlocks[17];
463
469
  var setAtomStateValueOrPromise = buildingBlocks[20];
470
+ var storeEpochHolder = buildingBlocks[28];
464
471
  var isSync = true;
465
472
  var getter = function getter(a) {
466
473
  return returnAtomValue(readAtomState(store, a));
@@ -483,6 +490,7 @@ var BUILDING_BLOCK_writeAtomState = function BUILDING_BLOCK_writeAtomState(store
483
490
  setAtomStateValueOrPromise(store, a, v);
484
491
  mountDependencies(store, a);
485
492
  if (prevEpochNumber !== aState.n) {
493
+ ++storeEpochHolder[0];
486
494
  changedAtoms.add(a);
487
495
  invalidateDependents(store, a);
488
496
  storeHooks.c == null || storeHooks.c(a);
@@ -522,13 +530,13 @@ var BUILDING_BLOCK_mountDependencies = function BUILDING_BLOCK_mountDependencies
522
530
  for (var _iterator8 = _createForOfIteratorHelperLoose(atomState.d), _step8; !(_step8 = _iterator8()).done;) {
523
531
  var _step8$value = _step8.value,
524
532
  a = _step8$value[0],
525
- n = _step8$value[1];
533
+ _n2 = _step8$value[1];
526
534
  if (!mounted.d.has(a)) {
527
535
  var aState = ensureAtomState(store, a);
528
536
  var aMounted = mountAtom(store, a);
529
537
  aMounted.t.add(atom);
530
538
  mounted.d.add(a);
531
- if (n !== aState.n) {
539
+ if (_n2 !== aState.n) {
532
540
  changedAtoms.add(a);
533
541
  invalidateDependents(store, a);
534
542
  storeHooks.c == null || storeHooks.c(a);
@@ -766,7 +774,7 @@ function buildStore() {
766
774
  return storeSub(store, atom, listener);
767
775
  }
768
776
  };
769
- var buildingBlocks = [new WeakMap(), new WeakMap(), new WeakMap(), new Set(), new Set(), new Set(), {}, BUILDING_BLOCK_atomRead, BUILDING_BLOCK_atomWrite, BUILDING_BLOCK_atomOnInit, BUILDING_BLOCK_atomOnMount, BUILDING_BLOCK_ensureAtomState, BUILDING_BLOCK_flushCallbacks, BUILDING_BLOCK_recomputeInvalidatedAtoms, BUILDING_BLOCK_readAtomState, BUILDING_BLOCK_invalidateDependents, BUILDING_BLOCK_writeAtomState, BUILDING_BLOCK_mountDependencies, BUILDING_BLOCK_mountAtom, BUILDING_BLOCK_unmountAtom, BUILDING_BLOCK_setAtomStateValueOrPromise, BUILDING_BLOCK_storeGet, BUILDING_BLOCK_storeSet, BUILDING_BLOCK_storeSub, undefined, new WeakMap(), BUILDING_BLOCK_registerAbortHandler, BUILDING_BLOCK_abortPromise].map(function (fn, i) {
777
+ var buildingBlocks = [new WeakMap(), new WeakMap(), new WeakMap(), new Set(), new Set(), new Set(), {}, BUILDING_BLOCK_atomRead, BUILDING_BLOCK_atomWrite, BUILDING_BLOCK_atomOnInit, BUILDING_BLOCK_atomOnMount, BUILDING_BLOCK_ensureAtomState, BUILDING_BLOCK_flushCallbacks, BUILDING_BLOCK_recomputeInvalidatedAtoms, BUILDING_BLOCK_readAtomState, BUILDING_BLOCK_invalidateDependents, BUILDING_BLOCK_writeAtomState, BUILDING_BLOCK_mountDependencies, BUILDING_BLOCK_mountAtom, BUILDING_BLOCK_unmountAtom, BUILDING_BLOCK_setAtomStateValueOrPromise, BUILDING_BLOCK_storeGet, BUILDING_BLOCK_storeSet, BUILDING_BLOCK_storeSub, undefined, new WeakMap(), BUILDING_BLOCK_registerAbortHandler, BUILDING_BLOCK_abortPromise, [0]].map(function (fn, i) {
770
778
  return buildArgs[i] || fn;
771
779
  });
772
780
  buildingBlockMap.set(store, Object.freeze(buildingBlocks));