@powerhousedao/connect 1.0.0-dev.229 → 1.0.0-dev.231

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/dist/assets/{app-ZQW92t6O.js → app-DrLeYlAb.js} +5018 -2509
  2. package/dist/assets/{app-loader-4lDPeVBu.js → app-loader-C4p-IWfP.js} +20 -23
  3. package/dist/assets/{ccip-BrCn_W71.js → ccip-BEtUPxLs.js} +4 -4
  4. package/dist/assets/{content-FQ01fqZV.js → content-AMlCFe4r.js} +96 -66
  5. package/dist/assets/{index-CRaABQnH.js → index-CpnYUECS.js} +4 -4
  6. package/dist/assets/{index-DI33bCpS.js → index-DBr1VmSJ.js} +80 -34
  7. package/dist/assets/{index-DqtLcprb.js → index-DtSGN5KF.js} +3 -3
  8. package/dist/assets/{main.DT1Mf4Jj.js → main.D0ReSJ3B.js} +1 -1
  9. package/dist/index.html +1 -1
  10. package/dist/modules/@powerhousedao/reactor-browser/{chunk-4FLW226S.js → chunk-2E6C3NB7.js} +4 -4
  11. package/dist/modules/@powerhousedao/reactor-browser/{chunk-YIBO3HUQ.js → chunk-45DCPCA7.js} +1 -1
  12. package/dist/modules/@powerhousedao/reactor-browser/{chunk-NNVEKADD.js → chunk-F3RCGUF6.js} +2 -2
  13. package/dist/modules/@powerhousedao/reactor-browser/{chunk-EWVIHKMF.js → chunk-F4K6ICY4.js} +1 -1
  14. package/dist/modules/@powerhousedao/reactor-browser/{chunk-D2ZLIUVV.js → chunk-FW7N6EJH.js} +378 -337
  15. package/dist/modules/@powerhousedao/reactor-browser/{chunk-AVKPBC5Q.js → chunk-G6LMXRY5.js} +1 -1
  16. package/dist/modules/@powerhousedao/reactor-browser/{chunk-PLA5FQXD.js → chunk-JWR2PSS2.js} +1 -1
  17. package/dist/modules/@powerhousedao/reactor-browser/{chunk-56M56AY3.js → chunk-M2UUQ5LH.js} +4 -4
  18. package/dist/modules/@powerhousedao/reactor-browser/{chunk-VOHVPRMH.js → chunk-NUW2A4R5.js} +1 -1
  19. package/dist/modules/@powerhousedao/reactor-browser/{chunk-M2DMGCWB.js → chunk-RSZCDZGH.js} +1 -1
  20. package/dist/modules/@powerhousedao/reactor-browser/context/index.js +2 -2
  21. package/dist/modules/@powerhousedao/reactor-browser/context/read-mode.js +2 -2
  22. package/dist/modules/@powerhousedao/reactor-browser/hooks/index.js +8 -8
  23. package/dist/modules/@powerhousedao/reactor-browser/hooks/useAddDebouncedOperations.js +3 -3
  24. package/dist/modules/@powerhousedao/reactor-browser/hooks/useConnectCrypto.js +2 -2
  25. package/dist/modules/@powerhousedao/reactor-browser/hooks/useDocumentDrives.js +2 -2
  26. package/dist/modules/@powerhousedao/reactor-browser/hooks/useDocumentEditor.js +5 -5
  27. package/dist/modules/@powerhousedao/reactor-browser/hooks/useDriveActions.js +2 -2
  28. package/dist/modules/@powerhousedao/reactor-browser/hooks/useDriveActionsWithUiNodes.js +3 -3
  29. package/dist/modules/@powerhousedao/reactor-browser/index.js +10 -10
  30. package/dist/modules/@powerhousedao/reactor-browser/reactor.js +2 -2
  31. package/dist/vite-envs.sh +1 -1
  32. package/package.json +5 -5
@@ -1,65 +1,7 @@
1
- // ../../node_modules/.pnpm/jotai@2.11.1_@types+react@18.3.18_react@18.3.1/node_modules/jotai/esm/vanilla.mjs
2
- var keyCount = 0;
3
- function atom(read, write) {
4
- const key = `atom${++keyCount}`;
5
- const config = {
6
- toString() {
7
- return (import.meta.env ? import.meta.env.MODE : void 0) !== "production" && this.debugLabel ? key + ":" + this.debugLabel : key;
8
- }
9
- };
10
- if (typeof read === "function") {
11
- config.read = read;
12
- } else {
13
- config.init = read;
14
- config.read = defaultRead;
15
- config.write = defaultWrite;
16
- }
17
- if (write) {
18
- config.write = write;
19
- }
20
- return config;
21
- }
22
- function defaultRead(get) {
23
- return get(this);
24
- }
25
- function defaultWrite(get, set, arg) {
26
- return set(
27
- this,
28
- typeof arg === "function" ? arg(get(this)) : arg
29
- );
30
- }
1
+ // ../../node_modules/.pnpm/jotai@2.12.2_@types+react@18.3.18_react@18.3.1/node_modules/jotai/esm/vanilla/internals.mjs
31
2
  var isSelfAtom = (atom2, a) => atom2.unstable_is ? atom2.unstable_is(a) : a === atom2;
32
3
  var hasInitialValue = (atom2) => "init" in atom2;
33
4
  var isActuallyWritableAtom = (atom2) => !!atom2.write;
34
- var cancelablePromiseMap = /* @__PURE__ */ new WeakMap();
35
- var isPendingPromise = (value) => {
36
- var _a;
37
- return isPromiseLike(value) && !((_a = cancelablePromiseMap.get(value)) == null ? void 0 : _a[1]);
38
- };
39
- var cancelPromise = (promise, nextValue) => {
40
- const promiseState = cancelablePromiseMap.get(promise);
41
- if (promiseState) {
42
- promiseState[1] = true;
43
- promiseState[0].forEach((fn) => fn(nextValue));
44
- } else if ((import.meta.env ? import.meta.env.MODE : void 0) !== "production") {
45
- throw new Error("[Bug] cancelable promise not found");
46
- }
47
- };
48
- var patchPromiseForCancelability = (promise) => {
49
- if (cancelablePromiseMap.has(promise)) {
50
- return;
51
- }
52
- const promiseState = [/* @__PURE__ */ new Set(), false];
53
- cancelablePromiseMap.set(promise, promiseState);
54
- const settle = () => {
55
- promiseState[1] = true;
56
- };
57
- promise.then(settle, settle);
58
- promise.onCancel = (fn) => {
59
- promiseState[0].add(fn);
60
- };
61
- };
62
- var isPromiseLike = (p) => typeof (p == null ? void 0 : p.then) === "function";
63
5
  var isAtomStateInitialized = (atomState) => "v" in atomState || "e" in atomState;
64
6
  var returnAtomValue = (atomState) => {
65
7
  if ("e" in atomState) {
@@ -70,6 +12,31 @@ var returnAtomValue = (atomState) => {
70
12
  }
71
13
  return atomState.v;
72
14
  };
15
+ var promiseStateMap = /* @__PURE__ */ new WeakMap();
16
+ var isPendingPromise = (value) => {
17
+ var _a;
18
+ return isPromiseLike(value) && !!((_a = promiseStateMap.get(value)) == null ? void 0 : _a[0]);
19
+ };
20
+ var abortPromise = (promise) => {
21
+ const promiseState = promiseStateMap.get(promise);
22
+ if (promiseState == null ? void 0 : promiseState[0]) {
23
+ promiseState[0] = false;
24
+ promiseState[1].forEach((fn) => fn());
25
+ }
26
+ };
27
+ var registerAbortHandler = (promise, abortHandler) => {
28
+ let promiseState = promiseStateMap.get(promise);
29
+ if (!promiseState) {
30
+ promiseState = [true, /* @__PURE__ */ new Set()];
31
+ promiseStateMap.set(promise, promiseState);
32
+ const settle = () => {
33
+ promiseState[0] = false;
34
+ };
35
+ promise.then(settle, settle);
36
+ }
37
+ promiseState[1].add(abortHandler);
38
+ };
39
+ var isPromiseLike = (p) => typeof (p == null ? void 0 : p.then) === "function";
73
40
  var addPendingPromiseToDependency = (atom2, promise, dependencyAtomState) => {
74
41
  if (!dependencyAtomState.p.has(atom2)) {
75
42
  dependencyAtomState.p.add(atom2);
@@ -83,45 +50,99 @@ var addPendingPromiseToDependency = (atom2, promise, dependencyAtomState) => {
83
50
  );
84
51
  }
85
52
  };
86
- var addDependency = (atom2, atomState, a, aState) => {
53
+ var setAtomStateValueOrPromise = (atom2, valueOrPromise, ensureAtomState) => {
54
+ const atomState = ensureAtomState(atom2);
55
+ const hasPrevValue = "v" in atomState;
56
+ const prevValue = atomState.v;
57
+ if (isPromiseLike(valueOrPromise)) {
58
+ for (const a of atomState.d.keys()) {
59
+ addPendingPromiseToDependency(atom2, valueOrPromise, ensureAtomState(a));
60
+ }
61
+ }
62
+ atomState.v = valueOrPromise;
63
+ delete atomState.e;
64
+ if (!hasPrevValue || !Object.is(prevValue, atomState.v)) {
65
+ ++atomState.n;
66
+ if (isPromiseLike(prevValue)) {
67
+ abortPromise(prevValue);
68
+ }
69
+ }
70
+ };
71
+ var getMountedOrPendingDependents = (atom2, atomState, mountedMap) => {
87
72
  var _a;
88
- if ((import.meta.env ? import.meta.env.MODE : void 0) !== "production" && a === atom2) {
89
- throw new Error("[Bug] atom cannot depend on itself");
73
+ const dependents = /* @__PURE__ */ new Set();
74
+ for (const a of ((_a = mountedMap.get(atom2)) == null ? void 0 : _a.t) || []) {
75
+ if (mountedMap.has(a)) {
76
+ dependents.add(a);
77
+ }
90
78
  }
91
- atomState.d.set(a, aState.n);
92
- if (isPendingPromise(atomState.v)) {
93
- addPendingPromiseToDependency(atom2, atomState.v, aState);
79
+ for (const atomWithPendingPromise of atomState.p) {
80
+ dependents.add(atomWithPendingPromise);
94
81
  }
95
- (_a = aState.m) == null ? void 0 : _a.t.add(atom2);
82
+ return dependents;
96
83
  };
97
- var INTERNAL_flushStoreHook = Symbol.for("JOTAI.EXPERIMENTAL.FLUSHSTOREHOOK");
98
- var buildStore = (...storeArgs) => {
99
- const [
100
- getAtomState,
101
- setAtomState,
102
- atomRead,
103
- atomWrite,
104
- atomOnInit,
105
- atomOnMount
106
- ] = storeArgs;
107
- const ensureAtomState = (atom2) => {
84
+ var createStoreHook = () => {
85
+ const callbacks = /* @__PURE__ */ new Set();
86
+ const notify = () => {
87
+ callbacks.forEach((fn) => fn());
88
+ };
89
+ notify.add = (fn) => {
90
+ callbacks.add(fn);
91
+ return () => {
92
+ callbacks.delete(fn);
93
+ };
94
+ };
95
+ return notify;
96
+ };
97
+ var createStoreHookForAtoms = () => {
98
+ const all = {};
99
+ const callbacks = /* @__PURE__ */ new WeakMap();
100
+ const notify = (atom2) => {
101
+ var _a, _b;
102
+ (_a = callbacks.get(all)) == null ? void 0 : _a.forEach((fn) => fn(atom2));
103
+ (_b = callbacks.get(atom2)) == null ? void 0 : _b.forEach((fn) => fn());
104
+ };
105
+ notify.add = (atom2, fn) => {
106
+ const key = atom2 || all;
107
+ const fns = (callbacks.has(key) ? callbacks : callbacks.set(key, /* @__PURE__ */ new Set())).get(key);
108
+ fns.add(fn);
109
+ return () => {
110
+ fns == null ? void 0 : fns.delete(fn);
111
+ if (!fns.size) {
112
+ callbacks.delete(key);
113
+ }
114
+ };
115
+ };
116
+ return notify;
117
+ };
118
+ var initializeStoreHooks = (storeHooks) => {
119
+ storeHooks.c || (storeHooks.c = createStoreHookForAtoms());
120
+ storeHooks.m || (storeHooks.m = createStoreHookForAtoms());
121
+ storeHooks.u || (storeHooks.u = createStoreHookForAtoms());
122
+ storeHooks.f || (storeHooks.f = createStoreHook());
123
+ return storeHooks;
124
+ };
125
+ var BUILDING_BLOCKS = Symbol();
126
+ var buildStore = (atomStateMap = /* @__PURE__ */ new WeakMap(), mountedMap = /* @__PURE__ */ new WeakMap(), invalidatedAtoms = /* @__PURE__ */ new WeakMap(), changedAtoms = /* @__PURE__ */ new Set(), mountCallbacks = /* @__PURE__ */ new Set(), unmountCallbacks = /* @__PURE__ */ new Set(), storeHooks = {}, atomRead = (atom2, ...params) => atom2.read(...params), atomWrite = (atom2, ...params) => atom2.write(...params), atomOnInit = (atom2, store) => {
127
+ var _a;
128
+ return (_a = atom2.unstable_onInit) == null ? void 0 : _a.call(atom2, store);
129
+ }, atomOnMount = (atom2, setAtom) => {
130
+ var _a;
131
+ return (_a = atom2.onMount) == null ? void 0 : _a.call(atom2, setAtom);
132
+ }, ...buildingBlockFunctions) => {
133
+ const ensureAtomState = buildingBlockFunctions[0] || ((atom2) => {
108
134
  if ((import.meta.env ? import.meta.env.MODE : void 0) !== "production" && !atom2) {
109
135
  throw new Error("Atom is undefined or null");
110
136
  }
111
- let atomState = getAtomState(atom2);
137
+ let atomState = atomStateMap.get(atom2);
112
138
  if (!atomState) {
113
139
  atomState = { d: /* @__PURE__ */ new Map(), p: /* @__PURE__ */ new Set(), n: 0 };
114
- setAtomState(atom2, atomState);
140
+ atomStateMap.set(atom2, atomState);
115
141
  atomOnInit == null ? void 0 : atomOnInit(atom2, store);
116
142
  }
117
143
  return atomState;
118
- };
119
- const invalidatedAtoms = /* @__PURE__ */ new WeakMap();
120
- const changedAtoms = /* @__PURE__ */ new Map();
121
- const unmountCallbacks = /* @__PURE__ */ new Set();
122
- const mountCallbacks = /* @__PURE__ */ new Set();
123
- const flushCallbacks = () => {
124
- var _a;
144
+ });
145
+ const flushCallbacks = buildingBlockFunctions[1] || (() => {
125
146
  const errors = [];
126
147
  const call = (fn) => {
127
148
  try {
@@ -131,12 +152,14 @@ var buildStore = (...storeArgs) => {
131
152
  }
132
153
  };
133
154
  do {
134
- (_a = store[INTERNAL_flushStoreHook]) == null ? void 0 : _a.call(store);
155
+ if (storeHooks.f) {
156
+ call(storeHooks.f);
157
+ }
135
158
  const callbacks = /* @__PURE__ */ new Set();
136
159
  const add = callbacks.add.bind(callbacks);
137
- changedAtoms.forEach((atomState) => {
138
- var _a2;
139
- return (_a2 = atomState.m) == null ? void 0 : _a2.l.forEach(add);
160
+ changedAtoms.forEach((atom2) => {
161
+ var _a;
162
+ return (_a = mountedMap.get(atom2)) == null ? void 0 : _a.l.forEach(add);
140
163
  });
141
164
  changedAtoms.clear();
142
165
  unmountCallbacks.forEach(add);
@@ -149,35 +172,59 @@ var buildStore = (...storeArgs) => {
149
172
  }
150
173
  } while (changedAtoms.size || unmountCallbacks.size || mountCallbacks.size);
151
174
  if (errors.length) {
152
- throw errors[0];
175
+ throw new AggregateError(errors);
153
176
  }
154
- };
155
- const setAtomStateValueOrPromise = (atom2, atomState, valueOrPromise) => {
156
- const hasPrevValue = "v" in atomState;
157
- const prevValue = atomState.v;
158
- const pendingPromise = isPendingPromise(atomState.v) ? atomState.v : null;
159
- if (isPromiseLike(valueOrPromise)) {
160
- patchPromiseForCancelability(valueOrPromise);
161
- for (const a of atomState.d.keys()) {
162
- addPendingPromiseToDependency(atom2, valueOrPromise, ensureAtomState(a));
177
+ });
178
+ const recomputeInvalidatedAtoms = buildingBlockFunctions[2] || (() => {
179
+ const topSortedReversed = [];
180
+ const visiting = /* @__PURE__ */ new WeakSet();
181
+ const visited = /* @__PURE__ */ new WeakSet();
182
+ const stack = Array.from(changedAtoms);
183
+ while (stack.length) {
184
+ const a = stack[stack.length - 1];
185
+ const aState = ensureAtomState(a);
186
+ if (visited.has(a)) {
187
+ stack.pop();
188
+ continue;
189
+ }
190
+ if (visiting.has(a)) {
191
+ if (invalidatedAtoms.get(a) === aState.n) {
192
+ topSortedReversed.push([a, aState]);
193
+ } else if ((import.meta.env ? import.meta.env.MODE : void 0) !== "production" && invalidatedAtoms.has(a)) {
194
+ throw new Error("[Bug] invalidated atom exists");
195
+ }
196
+ visited.add(a);
197
+ stack.pop();
198
+ continue;
199
+ }
200
+ visiting.add(a);
201
+ for (const d of getMountedOrPendingDependents(a, aState, mountedMap)) {
202
+ if (!visiting.has(d)) {
203
+ stack.push(d);
204
+ }
163
205
  }
164
- atomState.v = valueOrPromise;
165
- } else {
166
- atomState.v = valueOrPromise;
167
206
  }
168
- delete atomState.e;
169
- if (!hasPrevValue || !Object.is(prevValue, atomState.v)) {
170
- ++atomState.n;
171
- if (pendingPromise) {
172
- cancelPromise(pendingPromise, valueOrPromise);
207
+ for (let i = topSortedReversed.length - 1; i >= 0; --i) {
208
+ const [a, aState] = topSortedReversed[i];
209
+ let hasChangedDeps = false;
210
+ for (const dep of aState.d.keys()) {
211
+ if (dep !== a && changedAtoms.has(dep)) {
212
+ hasChangedDeps = true;
213
+ break;
214
+ }
173
215
  }
216
+ if (hasChangedDeps) {
217
+ readAtomState(a);
218
+ mountDependencies(a);
219
+ }
220
+ invalidatedAtoms.delete(a);
174
221
  }
175
- };
176
- const readAtomState = (atom2) => {
222
+ });
223
+ const readAtomState = buildingBlockFunctions[3] || ((atom2) => {
177
224
  var _a;
178
225
  const atomState = ensureAtomState(atom2);
179
226
  if (isAtomStateInitialized(atomState)) {
180
- if (atomState.m && invalidatedAtoms.get(atom2) !== atomState.n) {
227
+ if (mountedMap.has(atom2) && invalidatedAtoms.get(atom2) !== atomState.n) {
181
228
  return atomState;
182
229
  }
183
230
  if (Array.from(atomState.d).every(
@@ -193,18 +240,19 @@ var buildStore = (...storeArgs) => {
193
240
  atomState.d.clear();
194
241
  let isSync = true;
195
242
  const mountDependenciesIfAsync = () => {
196
- if (atomState.m) {
197
- mountDependencies(atom2, atomState);
243
+ if (mountedMap.has(atom2)) {
244
+ mountDependencies(atom2);
198
245
  recomputeInvalidatedAtoms();
199
246
  flushCallbacks();
200
247
  }
201
248
  };
202
249
  const getter = (a) => {
250
+ var _a2;
203
251
  if (isSelfAtom(atom2, a)) {
204
252
  const aState2 = ensureAtomState(a);
205
253
  if (!isAtomStateInitialized(aState2)) {
206
254
  if (hasInitialValue(a)) {
207
- setAtomStateValueOrPromise(a, aState2, a.init);
255
+ setAtomStateValueOrPromise(a, a.init, ensureAtomState);
208
256
  } else {
209
257
  throw new Error("no atom init");
210
258
  }
@@ -215,7 +263,11 @@ var buildStore = (...storeArgs) => {
215
263
  try {
216
264
  return returnAtomValue(aState);
217
265
  } finally {
218
- addDependency(atom2, atomState, a, aState);
266
+ atomState.d.set(a, aState.n);
267
+ if (isPendingPromise(atomState.v)) {
268
+ addPendingPromiseToDependency(atom2, atomState.v, aState);
269
+ }
270
+ (_a2 = mountedMap.get(a)) == null ? void 0 : _a2.t.add(atom2);
219
271
  if (!isSync) {
220
272
  mountDependenciesIfAsync();
221
273
  }
@@ -240,19 +292,28 @@ var buildStore = (...storeArgs) => {
240
292
  console.warn("setSelf function cannot be called in sync");
241
293
  }
242
294
  if (!isSync) {
243
- return writeAtom(atom2, ...args);
295
+ try {
296
+ return writeAtomState(atom2, ...args);
297
+ } finally {
298
+ recomputeInvalidatedAtoms();
299
+ flushCallbacks();
300
+ }
244
301
  }
245
302
  };
246
303
  }
247
304
  return setSelf;
248
305
  }
249
306
  };
307
+ const prevEpochNumber = atomState.n;
250
308
  try {
251
309
  const valueOrPromise = atomRead(atom2, getter, options);
252
- setAtomStateValueOrPromise(atom2, atomState, valueOrPromise);
310
+ setAtomStateValueOrPromise(atom2, valueOrPromise, ensureAtomState);
253
311
  if (isPromiseLike(valueOrPromise)) {
254
- (_a = valueOrPromise.onCancel) == null ? void 0 : _a.call(valueOrPromise, () => controller == null ? void 0 : controller.abort());
255
- valueOrPromise.then(mountDependenciesIfAsync, mountDependenciesIfAsync);
312
+ registerAbortHandler(valueOrPromise, () => controller == null ? void 0 : controller.abort());
313
+ valueOrPromise.then(
314
+ mountDependenciesIfAsync,
315
+ mountDependenciesIfAsync
316
+ );
256
317
  }
257
318
  return atomState;
258
319
  } catch (error) {
@@ -262,89 +323,26 @@ var buildStore = (...storeArgs) => {
262
323
  return atomState;
263
324
  } finally {
264
325
  isSync = false;
265
- }
266
- };
267
- const readAtom = (atom2) => returnAtomValue(readAtomState(atom2));
268
- const getMountedOrPendingDependents = (atomState) => {
269
- var _a;
270
- const dependents = /* @__PURE__ */ new Map();
271
- for (const a of ((_a = atomState.m) == null ? void 0 : _a.t) || []) {
272
- const aState = ensureAtomState(a);
273
- if (aState.m) {
274
- dependents.set(a, aState);
275
- }
276
- }
277
- for (const atomWithPendingPromise of atomState.p) {
278
- dependents.set(
279
- atomWithPendingPromise,
280
- ensureAtomState(atomWithPendingPromise)
281
- );
282
- }
283
- return dependents;
284
- };
285
- const invalidateDependents = (atomState) => {
286
- const stack = [atomState];
287
- while (stack.length) {
288
- const aState = stack.pop();
289
- for (const [d, s] of getMountedOrPendingDependents(aState)) {
290
- if (!invalidatedAtoms.has(d)) {
291
- invalidatedAtoms.set(d, s.n);
292
- stack.push(s);
293
- }
326
+ if (prevEpochNumber !== atomState.n && invalidatedAtoms.get(atom2) === prevEpochNumber) {
327
+ invalidatedAtoms.set(atom2, atomState.n);
328
+ changedAtoms.add(atom2);
329
+ (_a = storeHooks.c) == null ? void 0 : _a.call(storeHooks, atom2);
294
330
  }
295
331
  }
296
- };
297
- const recomputeInvalidatedAtoms = () => {
298
- var _a;
299
- const topSortedReversed = [];
300
- const visiting = /* @__PURE__ */ new WeakSet();
301
- const visited = /* @__PURE__ */ new WeakSet();
302
- const stack = Array.from(changedAtoms);
332
+ });
333
+ const invalidateDependents = buildingBlockFunctions[4] || ((atom2) => {
334
+ const stack = [atom2];
303
335
  while (stack.length) {
304
- const [a, aState] = stack[stack.length - 1];
305
- if (visited.has(a)) {
306
- stack.pop();
307
- continue;
308
- }
309
- if (visiting.has(a)) {
310
- if (invalidatedAtoms.get(a) === aState.n) {
311
- topSortedReversed.push([a, aState, aState.n]);
312
- } else {
313
- invalidatedAtoms.delete(a);
314
- changedAtoms.set(a, aState);
315
- }
316
- visited.add(a);
317
- stack.pop();
318
- continue;
319
- }
320
- visiting.add(a);
321
- for (const [d, s] of getMountedOrPendingDependents(aState)) {
322
- if (!visiting.has(d)) {
323
- stack.push([d, s]);
324
- }
325
- }
326
- }
327
- for (let i = topSortedReversed.length - 1; i >= 0; --i) {
328
- const [a, aState, prevEpochNumber] = topSortedReversed[i];
329
- let hasChangedDeps = false;
330
- for (const dep of aState.d.keys()) {
331
- if (dep !== a && changedAtoms.has(dep)) {
332
- hasChangedDeps = true;
333
- break;
334
- }
335
- }
336
- if (hasChangedDeps) {
337
- readAtomState(a);
338
- mountDependencies(a, aState);
339
- if (prevEpochNumber !== aState.n) {
340
- changedAtoms.set(a, aState);
341
- (_a = aState.u) == null ? void 0 : _a.call(aState);
342
- }
336
+ const a = stack.pop();
337
+ const aState = ensureAtomState(a);
338
+ for (const d of getMountedOrPendingDependents(a, aState, mountedMap)) {
339
+ const dState = ensureAtomState(d);
340
+ invalidatedAtoms.set(d, dState.n);
341
+ stack.push(d);
343
342
  }
344
- invalidatedAtoms.delete(a);
345
343
  }
346
- };
347
- const writeAtomState = (atom2, ...args) => {
344
+ });
345
+ const writeAtomState = buildingBlockFunctions[5] || ((atom2, ...args) => {
348
346
  let isSync = true;
349
347
  const getter = (a) => returnAtomValue(readAtomState(a));
350
348
  const setter = (a, ...args2) => {
@@ -357,12 +355,12 @@ var buildStore = (...storeArgs) => {
357
355
  }
358
356
  const prevEpochNumber = aState.n;
359
357
  const v = args2[0];
360
- setAtomStateValueOrPromise(a, aState, v);
361
- mountDependencies(a, aState);
358
+ setAtomStateValueOrPromise(a, v, ensureAtomState);
359
+ mountDependencies(a);
362
360
  if (prevEpochNumber !== aState.n) {
363
- changedAtoms.set(a, aState);
364
- (_a = aState.u) == null ? void 0 : _a.call(aState);
365
- invalidateDependents(aState);
361
+ changedAtoms.add(a);
362
+ (_a = storeHooks.c) == null ? void 0 : _a.call(storeHooks, a);
363
+ invalidateDependents(a);
366
364
  }
367
365
  return void 0;
368
366
  } else {
@@ -380,56 +378,52 @@ var buildStore = (...storeArgs) => {
380
378
  } finally {
381
379
  isSync = false;
382
380
  }
383
- };
384
- const writeAtom = (atom2, ...args) => {
385
- try {
386
- return writeAtomState(atom2, ...args);
387
- } finally {
388
- recomputeInvalidatedAtoms();
389
- flushCallbacks();
390
- }
391
- };
392
- const mountDependencies = (atom2, atomState) => {
381
+ });
382
+ const mountDependencies = buildingBlockFunctions[6] || ((atom2) => {
393
383
  var _a;
394
- if (atomState.m && !isPendingPromise(atomState.v)) {
384
+ const atomState = ensureAtomState(atom2);
385
+ const mounted = mountedMap.get(atom2);
386
+ if (mounted && !isPendingPromise(atomState.v)) {
395
387
  for (const [a, n] of atomState.d) {
396
- if (!atomState.m.d.has(a)) {
388
+ if (!mounted.d.has(a)) {
397
389
  const aState = ensureAtomState(a);
398
- const aMounted = mountAtom(a, aState);
390
+ const aMounted = mountAtom(a);
399
391
  aMounted.t.add(atom2);
400
- atomState.m.d.add(a);
392
+ mounted.d.add(a);
401
393
  if (n !== aState.n) {
402
- changedAtoms.set(a, aState);
403
- (_a = aState.u) == null ? void 0 : _a.call(aState);
404
- invalidateDependents(aState);
394
+ changedAtoms.add(a);
395
+ (_a = storeHooks.c) == null ? void 0 : _a.call(storeHooks, a);
396
+ invalidateDependents(a);
405
397
  }
406
398
  }
407
399
  }
408
- for (const a of atomState.m.d || []) {
400
+ for (const a of mounted.d || []) {
409
401
  if (!atomState.d.has(a)) {
410
- atomState.m.d.delete(a);
411
- const aMounted = unmountAtom(a, ensureAtomState(a));
402
+ mounted.d.delete(a);
403
+ const aMounted = unmountAtom(a);
412
404
  aMounted == null ? void 0 : aMounted.t.delete(atom2);
413
405
  }
414
406
  }
415
407
  }
416
- };
417
- const mountAtom = (atom2, atomState) => {
408
+ });
409
+ const mountAtom = buildingBlockFunctions[7] || ((atom2) => {
418
410
  var _a;
419
- if (!atomState.m) {
411
+ const atomState = ensureAtomState(atom2);
412
+ let mounted = mountedMap.get(atom2);
413
+ if (!mounted) {
420
414
  readAtomState(atom2);
421
415
  for (const a of atomState.d.keys()) {
422
- const aMounted = mountAtom(a, ensureAtomState(a));
416
+ const aMounted = mountAtom(a);
423
417
  aMounted.t.add(atom2);
424
418
  }
425
- atomState.m = {
419
+ mounted = {
426
420
  l: /* @__PURE__ */ new Set(),
427
421
  d: new Set(atomState.d.keys()),
428
422
  t: /* @__PURE__ */ new Set()
429
423
  };
430
- (_a = atomState.h) == null ? void 0 : _a.call(atomState);
424
+ mountedMap.set(atom2, mounted);
425
+ (_a = storeHooks.m) == null ? void 0 : _a.call(storeHooks, atom2);
431
426
  if (isActuallyWritableAtom(atom2)) {
432
- const mounted = atomState.m;
433
427
  const processOnMount = () => {
434
428
  let isSync = true;
435
429
  const setAtom = (...args) => {
@@ -461,88 +455,149 @@ var buildStore = (...storeArgs) => {
461
455
  mountCallbacks.add(processOnMount);
462
456
  }
463
457
  }
464
- return atomState.m;
465
- };
466
- const unmountAtom = (atom2, atomState) => {
458
+ return mounted;
459
+ });
460
+ const unmountAtom = buildingBlockFunctions[8] || ((atom2) => {
467
461
  var _a;
468
- if (atomState.m && !atomState.m.l.size && !Array.from(atomState.m.t).some((a) => {
462
+ const atomState = ensureAtomState(atom2);
463
+ let mounted = mountedMap.get(atom2);
464
+ if (mounted && !mounted.l.size && !Array.from(mounted.t).some((a) => {
469
465
  var _a2;
470
- return (_a2 = ensureAtomState(a).m) == null ? void 0 : _a2.d.has(atom2);
466
+ return (_a2 = mountedMap.get(a)) == null ? void 0 : _a2.d.has(atom2);
471
467
  })) {
472
- const onUnmount = atomState.m.u;
473
- if (onUnmount) {
474
- unmountCallbacks.add(onUnmount);
468
+ if (mounted.u) {
469
+ unmountCallbacks.add(mounted.u);
475
470
  }
476
- delete atomState.m;
477
- (_a = atomState.h) == null ? void 0 : _a.call(atomState);
471
+ mounted = void 0;
472
+ mountedMap.delete(atom2);
473
+ (_a = storeHooks.u) == null ? void 0 : _a.call(storeHooks, atom2);
478
474
  for (const a of atomState.d.keys()) {
479
- const aMounted = unmountAtom(a, ensureAtomState(a));
475
+ const aMounted = unmountAtom(a);
480
476
  aMounted == null ? void 0 : aMounted.t.delete(atom2);
481
477
  }
482
478
  return void 0;
483
479
  }
484
- return atomState.m;
485
- };
486
- const subscribeAtom = (atom2, listener) => {
487
- const atomState = ensureAtomState(atom2);
488
- const mounted = mountAtom(atom2, atomState);
489
- const listeners = mounted.l;
490
- listeners.add(listener);
491
- flushCallbacks();
492
- return () => {
493
- listeners.delete(listener);
494
- unmountAtom(atom2, atomState);
495
- flushCallbacks();
496
- };
497
- };
498
- const unstable_derive = (fn) => buildStore(...fn(...storeArgs));
480
+ return mounted;
481
+ });
482
+ const buildingBlocks = [
483
+ // store state
484
+ atomStateMap,
485
+ mountedMap,
486
+ invalidatedAtoms,
487
+ changedAtoms,
488
+ mountCallbacks,
489
+ unmountCallbacks,
490
+ storeHooks,
491
+ // atom intercepters
492
+ atomRead,
493
+ atomWrite,
494
+ atomOnInit,
495
+ atomOnMount,
496
+ // building-block functions
497
+ ensureAtomState,
498
+ flushCallbacks,
499
+ recomputeInvalidatedAtoms,
500
+ readAtomState,
501
+ invalidateDependents,
502
+ writeAtomState,
503
+ mountDependencies,
504
+ mountAtom,
505
+ unmountAtom
506
+ ];
499
507
  const store = {
500
- get: readAtom,
501
- set: writeAtom,
502
- sub: subscribeAtom,
503
- unstable_derive
508
+ get: (atom2) => returnAtomValue(readAtomState(atom2)),
509
+ set: (atom2, ...args) => {
510
+ try {
511
+ return writeAtomState(atom2, ...args);
512
+ } finally {
513
+ recomputeInvalidatedAtoms();
514
+ flushCallbacks();
515
+ }
516
+ },
517
+ sub: (atom2, listener) => {
518
+ const mounted = mountAtom(atom2);
519
+ const listeners = mounted.l;
520
+ listeners.add(listener);
521
+ flushCallbacks();
522
+ return () => {
523
+ listeners.delete(listener);
524
+ unmountAtom(atom2);
525
+ flushCallbacks();
526
+ };
527
+ }
504
528
  };
529
+ Object.defineProperty(store, BUILDING_BLOCKS, { value: buildingBlocks });
505
530
  return store;
506
531
  };
507
- var deriveDevStoreRev4 = (store) => {
508
- const debugMountedAtoms = /* @__PURE__ */ new Set();
509
- let savedGetAtomState;
532
+ var INTERNAL_buildStoreRev1 = buildStore;
533
+ var INTERNAL_initializeStoreHooks = initializeStoreHooks;
534
+ var INTERNAL_registerAbortHandler = registerAbortHandler;
535
+
536
+ // ../../node_modules/.pnpm/jotai@2.12.2_@types+react@18.3.18_react@18.3.1/node_modules/jotai/esm/vanilla.mjs
537
+ var keyCount = 0;
538
+ function atom(read, write) {
539
+ const key = `atom${++keyCount}`;
540
+ const config = {
541
+ toString() {
542
+ return (import.meta.env ? import.meta.env.MODE : void 0) !== "production" && this.debugLabel ? key + ":" + this.debugLabel : key;
543
+ }
544
+ };
545
+ if (typeof read === "function") {
546
+ config.read = read;
547
+ } else {
548
+ config.init = read;
549
+ config.read = defaultRead;
550
+ config.write = defaultWrite;
551
+ }
552
+ if (write) {
553
+ config.write = write;
554
+ }
555
+ return config;
556
+ }
557
+ function defaultRead(get) {
558
+ return get(this);
559
+ }
560
+ function defaultWrite(get, set, arg) {
561
+ return set(
562
+ this,
563
+ typeof arg === "function" ? arg(get(this)) : arg
564
+ );
565
+ }
566
+ var createDevStoreRev4 = () => {
510
567
  let inRestoreAtom = 0;
511
- const derivedStore = store.unstable_derive((...storeArgs) => {
512
- const [getAtomState, setAtomState, , atomWrite] = storeArgs;
513
- savedGetAtomState = getAtomState;
514
- storeArgs[1] = function devSetAtomState(atom2, atomState) {
515
- setAtomState(atom2, atomState);
516
- const originalMounted = atomState.h;
517
- atomState.h = () => {
518
- originalMounted == null ? void 0 : originalMounted();
519
- if (atomState.m) {
520
- debugMountedAtoms.add(atom2);
521
- } else {
522
- debugMountedAtoms.delete(atom2);
523
- }
524
- };
525
- };
526
- storeArgs[3] = function devAtomWrite(atom2, getter, setter, ...args) {
568
+ const storeHooks = INTERNAL_initializeStoreHooks({});
569
+ const atomStateMap = /* @__PURE__ */ new WeakMap();
570
+ const mountedAtoms = /* @__PURE__ */ new WeakMap();
571
+ const store = INTERNAL_buildStoreRev1(
572
+ atomStateMap,
573
+ mountedAtoms,
574
+ void 0,
575
+ void 0,
576
+ void 0,
577
+ void 0,
578
+ storeHooks,
579
+ void 0,
580
+ (atom2, get, set, ...args) => {
527
581
  if (inRestoreAtom) {
528
- return setter(atom2, ...args);
582
+ return set(atom2, ...args);
529
583
  }
530
- return atomWrite(atom2, getter, setter, ...args);
531
- };
532
- return storeArgs;
584
+ return atom2.write(get, set, ...args);
585
+ }
586
+ );
587
+ const debugMountedAtoms = /* @__PURE__ */ new Set();
588
+ storeHooks.m.add(void 0, (atom2) => {
589
+ debugMountedAtoms.add(atom2);
590
+ const atomState = atomStateMap.get(atom2);
591
+ atomState.m = mountedAtoms.get(atom2);
592
+ });
593
+ storeHooks.u.add(void 0, (atom2) => {
594
+ debugMountedAtoms.delete(atom2);
595
+ const atomState = atomStateMap.get(atom2);
596
+ delete atomState.m;
533
597
  });
534
- const savedStoreSet = derivedStore.set;
535
598
  const devStore = {
536
599
  // store dev methods (these are tentative and subject to change without notice)
537
- dev4_get_internal_weak_map: () => ({
538
- get: (atom2) => {
539
- const atomState = savedGetAtomState(atom2);
540
- if (!atomState || atomState.n === 0) {
541
- return void 0;
542
- }
543
- return atomState;
544
- }
545
- }),
600
+ dev4_get_internal_weak_map: () => atomStateMap,
546
601
  dev4_get_mounted_atoms: () => debugMountedAtoms,
547
602
  dev4_restore_atoms: (values) => {
548
603
  const restoreAtom = {
@@ -551,7 +606,7 @@ var deriveDevStoreRev4 = (store) => {
551
606
  ++inRestoreAtom;
552
607
  try {
553
608
  for (const [atom2, value] of values) {
554
- if (hasInitialValue(atom2)) {
609
+ if ("init" in atom2) {
555
610
  set(atom2, value);
556
611
  }
557
612
  }
@@ -560,34 +615,20 @@ var deriveDevStoreRev4 = (store) => {
560
615
  }
561
616
  }
562
617
  };
563
- savedStoreSet(restoreAtom);
618
+ store.set(restoreAtom);
564
619
  }
565
620
  };
566
- return Object.assign(derivedStore, devStore);
621
+ return Object.assign(store, devStore);
567
622
  };
568
- var createStore = () => {
569
- const atomStateMap = /* @__PURE__ */ new WeakMap();
570
- const store = buildStore(
571
- (atom2) => atomStateMap.get(atom2),
572
- (atom2, atomState) => atomStateMap.set(atom2, atomState).get(atom2),
573
- (atom2, ...params) => atom2.read(...params),
574
- (atom2, ...params) => atom2.write(...params),
575
- (atom2, ...params) => {
576
- var _a;
577
- return (_a = atom2.unstable_onInit) == null ? void 0 : _a.call(atom2, ...params);
578
- },
579
- (atom2, ...params) => {
580
- var _a;
581
- return (_a = atom2.onMount) == null ? void 0 : _a.call(atom2, ...params);
582
- }
583
- );
623
+ function createStore() {
584
624
  if ((import.meta.env ? import.meta.env.MODE : void 0) !== "production") {
585
- return deriveDevStoreRev4(store);
625
+ return createDevStoreRev4();
586
626
  }
627
+ const store = INTERNAL_buildStoreRev1();
587
628
  return store;
588
- };
629
+ }
589
630
  var defaultStore;
590
- var getDefaultStore = () => {
631
+ function getDefaultStore() {
591
632
  if (!defaultStore) {
592
633
  defaultStore = createStore();
593
634
  if ((import.meta.env ? import.meta.env.MODE : void 0) !== "production") {
@@ -600,17 +641,17 @@ var getDefaultStore = () => {
600
641
  }
601
642
  }
602
643
  return defaultStore;
603
- };
644
+ }
604
645
 
605
- // ../../node_modules/.pnpm/jotai@2.11.1_@types+react@18.3.18_react@18.3.1/node_modules/jotai/esm/react.mjs
646
+ // ../../node_modules/.pnpm/jotai@2.12.2_@types+react@18.3.18_react@18.3.1/node_modules/jotai/esm/react.mjs
606
647
  import ReactExports, { createContext, useContext, useRef, createElement, useReducer, useEffect, useDebugValue, useCallback } from "react";
607
648
  var StoreContext = createContext(
608
649
  void 0
609
650
  );
610
- var useStore = (options) => {
651
+ function useStore(options) {
611
652
  const store = useContext(StoreContext);
612
653
  return (options == null ? void 0 : options.store) || store || getDefaultStore();
613
- };
654
+ }
614
655
  var isPromiseLike2 = (x) => typeof (x == null ? void 0 : x.then) === "function";
615
656
  var attachPromiseMeta = (promise) => {
616
657
  promise.status = "pending";
@@ -638,7 +679,7 @@ var use = ReactExports.use || ((promise) => {
638
679
  }
639
680
  });
640
681
  var continuablePromiseMap = /* @__PURE__ */ new WeakMap();
641
- var createContinuablePromise = (promise) => {
682
+ var createContinuablePromise = (promise, getValue) => {
642
683
  let continuablePromise = continuablePromiseMap.get(promise);
643
684
  if (!continuablePromise) {
644
685
  continuablePromise = new Promise((resolve, reject) => {
@@ -653,25 +694,23 @@ var createContinuablePromise = (promise) => {
653
694
  reject(e);
654
695
  }
655
696
  };
656
- const registerCancelHandler = (p) => {
657
- if ("onCancel" in p && typeof p.onCancel === "function") {
658
- p.onCancel((nextValue) => {
659
- if ((import.meta.env ? import.meta.env.MODE : void 0) !== "production" && nextValue === p) {
660
- throw new Error("[Bug] p is not updated even after cancelation");
661
- }
662
- if (isPromiseLike2(nextValue)) {
663
- continuablePromiseMap.set(nextValue, continuablePromise);
664
- curr = nextValue;
665
- nextValue.then(onFulfilled(nextValue), onRejected(nextValue));
666
- registerCancelHandler(nextValue);
667
- } else {
668
- resolve(nextValue);
669
- }
670
- });
697
+ const onAbort = () => {
698
+ try {
699
+ const nextValue = getValue();
700
+ if (isPromiseLike2(nextValue)) {
701
+ continuablePromiseMap.set(nextValue, continuablePromise);
702
+ curr = nextValue;
703
+ nextValue.then(onFulfilled(nextValue), onRejected(nextValue));
704
+ INTERNAL_registerAbortHandler(nextValue, onAbort);
705
+ } else {
706
+ resolve(nextValue);
707
+ }
708
+ } catch (e) {
709
+ reject(e);
671
710
  }
672
711
  };
673
712
  promise.then(onFulfilled(promise), onRejected(promise));
674
- registerCancelHandler(promise);
713
+ INTERNAL_registerAbortHandler(promise, onAbort);
675
714
  });
676
715
  continuablePromiseMap.set(promise, continuablePromise);
677
716
  }
@@ -701,7 +740,9 @@ function useAtomValue(atom2, options) {
701
740
  if (typeof delay === "number") {
702
741
  const value2 = store.get(atom2);
703
742
  if (isPromiseLike2(value2)) {
704
- attachPromiseMeta(createContinuablePromise(value2));
743
+ attachPromiseMeta(
744
+ createContinuablePromise(value2, () => store.get(atom2))
745
+ );
705
746
  }
706
747
  setTimeout(rerender, delay);
707
748
  return;
@@ -713,7 +754,7 @@ function useAtomValue(atom2, options) {
713
754
  }, [store, atom2, delay]);
714
755
  useDebugValue(value);
715
756
  if (isPromiseLike2(value)) {
716
- const promise = createContinuablePromise(value);
757
+ const promise = createContinuablePromise(value, () => store.get(atom2));
717
758
  return use(promise);
718
759
  }
719
760
  return value;