hookery 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/README.md +28 -26
  2. package/dist/index.d.ts +147 -1
  3. package/dist/index.js +10 -4304
  4. package/dist/index.mjs +10 -4164
  5. package/package.json +10 -81
  6. package/dist/bridges/auth0.d.mts +0 -16
  7. package/dist/bridges/auth0.d.ts +0 -16
  8. package/dist/bridges/auth0.js +0 -3015
  9. package/dist/bridges/auth0.js.map +0 -1
  10. package/dist/bridges/auth0.mjs +0 -2977
  11. package/dist/bridges/auth0.mjs.map +0 -1
  12. package/dist/bridges/axios.d.mts +0 -17
  13. package/dist/bridges/axios.d.ts +0 -17
  14. package/dist/bridges/axios.js +0 -15351
  15. package/dist/bridges/axios.js.map +0 -1
  16. package/dist/bridges/axios.mjs +0 -15347
  17. package/dist/bridges/axios.mjs.map +0 -1
  18. package/dist/bridges/clerk.d.mts +0 -1
  19. package/dist/bridges/clerk.d.ts +0 -1
  20. package/dist/bridges/clerk.js +0 -5991
  21. package/dist/bridges/clerk.js.map +0 -1
  22. package/dist/bridges/clerk.mjs +0 -5985
  23. package/dist/bridges/clerk.mjs.map +0 -1
  24. package/dist/bridges/firebase.d.mts +0 -14
  25. package/dist/bridges/firebase.d.ts +0 -14
  26. package/dist/bridges/firebase.js +0 -52
  27. package/dist/bridges/firebase.js.map +0 -1
  28. package/dist/bridges/firebase.mjs +0 -25
  29. package/dist/bridges/firebase.mjs.map +0 -1
  30. package/dist/bridges/jotai.d.mts +0 -11
  31. package/dist/bridges/jotai.d.ts +0 -11
  32. package/dist/bridges/jotai.js +0 -870
  33. package/dist/bridges/jotai.js.map +0 -1
  34. package/dist/bridges/jotai.mjs +0 -827
  35. package/dist/bridges/jotai.mjs.map +0 -1
  36. package/dist/bridges/motion.d.mts +0 -6
  37. package/dist/bridges/motion.d.ts +0 -6
  38. package/dist/bridges/motion.js +0 -3752
  39. package/dist/bridges/motion.js.map +0 -1
  40. package/dist/bridges/motion.mjs +0 -3721
  41. package/dist/bridges/motion.mjs.map +0 -1
  42. package/dist/bridges/next.d.mts +0 -10
  43. package/dist/bridges/next.d.ts +0 -10
  44. package/dist/bridges/next.js +0 -2588
  45. package/dist/bridges/next.js.map +0 -1
  46. package/dist/bridges/next.mjs +0 -2582
  47. package/dist/bridges/next.mjs.map +0 -1
  48. package/dist/bridges/redux.d.mts +0 -15
  49. package/dist/bridges/redux.d.ts +0 -15
  50. package/dist/bridges/redux.js +0 -410
  51. package/dist/bridges/redux.js.map +0 -1
  52. package/dist/bridges/redux.mjs +0 -402
  53. package/dist/bridges/redux.mjs.map +0 -1
  54. package/dist/bridges/remix.d.mts +0 -1
  55. package/dist/bridges/remix.d.ts +0 -1
  56. package/dist/bridges/remix.js +0 -2215
  57. package/dist/bridges/remix.js.map +0 -1
  58. package/dist/bridges/remix.mjs +0 -2174
  59. package/dist/bridges/remix.mjs.map +0 -1
  60. package/dist/bridges/stripe.d.mts +0 -15
  61. package/dist/bridges/stripe.d.ts +0 -15
  62. package/dist/bridges/stripe.js +0 -1572
  63. package/dist/bridges/stripe.js.map +0 -1
  64. package/dist/bridges/stripe.mjs +0 -1556
  65. package/dist/bridges/stripe.mjs.map +0 -1
  66. package/dist/bridges/supabase.d.mts +0 -13
  67. package/dist/bridges/supabase.d.ts +0 -13
  68. package/dist/bridges/supabase.js +0 -51
  69. package/dist/bridges/supabase.js.map +0 -1
  70. package/dist/bridges/supabase.mjs +0 -24
  71. package/dist/bridges/supabase.mjs.map +0 -1
  72. package/dist/bridges/tanstack.d.mts +0 -3
  73. package/dist/bridges/tanstack.d.ts +0 -3
  74. package/dist/bridges/tanstack.js +0 -1319
  75. package/dist/bridges/tanstack.js.map +0 -1
  76. package/dist/bridges/tanstack.mjs +0 -1281
  77. package/dist/bridges/tanstack.mjs.map +0 -1
  78. package/dist/bridges/yup.d.mts +0 -16
  79. package/dist/bridges/yup.d.ts +0 -16
  80. package/dist/bridges/yup.js +0 -80
  81. package/dist/bridges/yup.js.map +0 -1
  82. package/dist/bridges/yup.mjs +0 -43
  83. package/dist/bridges/yup.mjs.map +0 -1
  84. package/dist/bridges/zod.d.mts +0 -19
  85. package/dist/bridges/zod.d.ts +0 -19
  86. package/dist/bridges/zod.js +0 -66
  87. package/dist/bridges/zod.js.map +0 -1
  88. package/dist/bridges/zod.mjs +0 -39
  89. package/dist/bridges/zod.mjs.map +0 -1
  90. package/dist/bridges/zustand.d.mts +0 -14
  91. package/dist/bridges/zustand.d.ts +0 -14
  92. package/dist/bridges/zustand.js +0 -58
  93. package/dist/bridges/zustand.js.map +0 -1
  94. package/dist/bridges/zustand.mjs +0 -21
  95. package/dist/bridges/zustand.mjs.map +0 -1
  96. package/dist/index.d.mts +0 -3130
  97. package/dist/index.js.map +0 -1
  98. package/dist/index.mjs.map +0 -1
@@ -1,827 +0,0 @@
1
- // node_modules/jotai/esm/vanilla/internals.mjs
2
- function hasInitialValue(atom) {
3
- return "init" in atom;
4
- }
5
- function isActuallyWritableAtom(atom) {
6
- return !!atom.write;
7
- }
8
- function isAtomStateInitialized(atomState) {
9
- return "v" in atomState || "e" in atomState;
10
- }
11
- function returnAtomValue(atomState) {
12
- if ("e" in atomState) {
13
- throw atomState.e;
14
- }
15
- if ((import.meta.env ? import.meta.env.MODE : void 0) !== "production" && !("v" in atomState)) {
16
- throw new Error("[Bug] atom state is not initialized");
17
- }
18
- return atomState.v;
19
- }
20
- var promiseStateMap = /* @__PURE__ */ new WeakMap();
21
- function isPendingPromise(value) {
22
- var _a;
23
- return isPromiseLike(value) && !!((_a = promiseStateMap.get(value)) == null ? void 0 : _a[0]);
24
- }
25
- function abortPromise(promise) {
26
- const promiseState = promiseStateMap.get(promise);
27
- if (promiseState == null ? void 0 : promiseState[0]) {
28
- promiseState[0] = false;
29
- promiseState[1].forEach((fn) => fn());
30
- }
31
- }
32
- function registerAbortHandler(promise, abortHandler) {
33
- let promiseState = promiseStateMap.get(promise);
34
- if (!promiseState) {
35
- promiseState = [true, /* @__PURE__ */ new Set()];
36
- promiseStateMap.set(promise, promiseState);
37
- const settle = () => {
38
- promiseState[0] = false;
39
- };
40
- promise.then(settle, settle);
41
- }
42
- promiseState[1].add(abortHandler);
43
- }
44
- function isPromiseLike(p) {
45
- return typeof (p == null ? void 0 : p.then) === "function";
46
- }
47
- function addPendingPromiseToDependency(atom, promise, dependencyAtomState) {
48
- if (!dependencyAtomState.p.has(atom)) {
49
- dependencyAtomState.p.add(atom);
50
- const cleanup = () => dependencyAtomState.p.delete(atom);
51
- promise.then(cleanup, cleanup);
52
- }
53
- }
54
- function getMountedOrPendingDependents(atom, atomState, mountedMap) {
55
- var _a;
56
- const dependents = /* @__PURE__ */ new Set();
57
- for (const a of ((_a = mountedMap.get(atom)) == null ? void 0 : _a.t) || []) {
58
- dependents.add(a);
59
- }
60
- for (const atomWithPendingPromise of atomState.p) {
61
- dependents.add(atomWithPendingPromise);
62
- }
63
- return dependents;
64
- }
65
- var BUILDING_BLOCK_atomRead = (_store, atom, ...params) => atom.read(...params);
66
- var BUILDING_BLOCK_atomWrite = (_store, atom, ...params) => atom.write(...params);
67
- var BUILDING_BLOCK_atomOnInit = (store, atom) => {
68
- if (atom.INTERNAL_onInit) {
69
- return atom.INTERNAL_onInit(store);
70
- }
71
- };
72
- var BUILDING_BLOCK_atomOnMount = (_store, atom, setAtom) => {
73
- var _a;
74
- return (_a = atom.onMount) == null ? void 0 : _a.call(atom, setAtom);
75
- };
76
- var BUILDING_BLOCK_ensureAtomState = (store, atom) => {
77
- var _a;
78
- const buildingBlocks = getInternalBuildingBlocks(store);
79
- const atomStateMap = buildingBlocks[0];
80
- const storeHooks = buildingBlocks[6];
81
- const atomOnInit = buildingBlocks[9];
82
- if ((import.meta.env ? import.meta.env.MODE : void 0) !== "production" && !atom) {
83
- throw new Error("Atom is undefined or null");
84
- }
85
- let atomState = atomStateMap.get(atom);
86
- if (!atomState) {
87
- atomState = { d: /* @__PURE__ */ new Map(), p: /* @__PURE__ */ new Set(), n: 0 };
88
- atomStateMap.set(atom, atomState);
89
- (_a = storeHooks.i) == null ? void 0 : _a.call(storeHooks, atom);
90
- atomOnInit == null ? void 0 : atomOnInit(store, atom);
91
- }
92
- return atomState;
93
- };
94
- var BUILDING_BLOCK_flushCallbacks = (store) => {
95
- const buildingBlocks = getInternalBuildingBlocks(store);
96
- const mountedMap = buildingBlocks[1];
97
- const changedAtoms = buildingBlocks[3];
98
- const mountCallbacks = buildingBlocks[4];
99
- const unmountCallbacks = buildingBlocks[5];
100
- const storeHooks = buildingBlocks[6];
101
- const recomputeInvalidatedAtoms = buildingBlocks[13];
102
- const errors = [];
103
- const call = (fn) => {
104
- try {
105
- fn();
106
- } catch (e) {
107
- errors.push(e);
108
- }
109
- };
110
- do {
111
- if (storeHooks.f) {
112
- call(storeHooks.f);
113
- }
114
- const callbacks = /* @__PURE__ */ new Set();
115
- const add = callbacks.add.bind(callbacks);
116
- changedAtoms.forEach((atom) => {
117
- var _a;
118
- return (_a = mountedMap.get(atom)) == null ? void 0 : _a.l.forEach(add);
119
- });
120
- changedAtoms.clear();
121
- unmountCallbacks.forEach(add);
122
- unmountCallbacks.clear();
123
- mountCallbacks.forEach(add);
124
- mountCallbacks.clear();
125
- callbacks.forEach(call);
126
- if (changedAtoms.size) {
127
- recomputeInvalidatedAtoms(store);
128
- }
129
- } while (changedAtoms.size || unmountCallbacks.size || mountCallbacks.size);
130
- if (errors.length) {
131
- throw new AggregateError(errors);
132
- }
133
- };
134
- var BUILDING_BLOCK_recomputeInvalidatedAtoms = (store) => {
135
- const buildingBlocks = getInternalBuildingBlocks(store);
136
- const mountedMap = buildingBlocks[1];
137
- const invalidatedAtoms = buildingBlocks[2];
138
- const changedAtoms = buildingBlocks[3];
139
- const ensureAtomState = buildingBlocks[11];
140
- const readAtomState = buildingBlocks[14];
141
- const mountDependencies = buildingBlocks[17];
142
- const topSortedReversed = [];
143
- const visiting = /* @__PURE__ */ new WeakSet();
144
- const visited = /* @__PURE__ */ new WeakSet();
145
- const stack = Array.from(changedAtoms);
146
- while (stack.length) {
147
- const a = stack[stack.length - 1];
148
- const aState = ensureAtomState(store, a);
149
- if (visited.has(a)) {
150
- stack.pop();
151
- continue;
152
- }
153
- if (visiting.has(a)) {
154
- if (invalidatedAtoms.get(a) === aState.n) {
155
- topSortedReversed.push([a, aState]);
156
- } else if ((import.meta.env ? import.meta.env.MODE : void 0) !== "production" && invalidatedAtoms.has(a)) {
157
- throw new Error("[Bug] invalidated atom exists");
158
- }
159
- visited.add(a);
160
- stack.pop();
161
- continue;
162
- }
163
- visiting.add(a);
164
- for (const d of getMountedOrPendingDependents(a, aState, mountedMap)) {
165
- if (!visiting.has(d)) {
166
- stack.push(d);
167
- }
168
- }
169
- }
170
- for (let i = topSortedReversed.length - 1; i >= 0; --i) {
171
- const [a, aState] = topSortedReversed[i];
172
- let hasChangedDeps = false;
173
- for (const dep of aState.d.keys()) {
174
- if (dep !== a && changedAtoms.has(dep)) {
175
- hasChangedDeps = true;
176
- break;
177
- }
178
- }
179
- if (hasChangedDeps) {
180
- readAtomState(store, a);
181
- mountDependencies(store, a);
182
- }
183
- invalidatedAtoms.delete(a);
184
- }
185
- };
186
- var storeMutationSet = /* @__PURE__ */ new WeakSet();
187
- var BUILDING_BLOCK_readAtomState = (store, atom) => {
188
- var _a, _b;
189
- const buildingBlocks = getInternalBuildingBlocks(store);
190
- const mountedMap = buildingBlocks[1];
191
- const invalidatedAtoms = buildingBlocks[2];
192
- const changedAtoms = buildingBlocks[3];
193
- const storeHooks = buildingBlocks[6];
194
- const atomRead = buildingBlocks[7];
195
- const ensureAtomState = buildingBlocks[11];
196
- const flushCallbacks = buildingBlocks[12];
197
- const recomputeInvalidatedAtoms = buildingBlocks[13];
198
- const readAtomState = buildingBlocks[14];
199
- const writeAtomState = buildingBlocks[16];
200
- const mountDependencies = buildingBlocks[17];
201
- const setAtomStateValueOrPromise = buildingBlocks[20];
202
- const atomState = ensureAtomState(store, atom);
203
- if (isAtomStateInitialized(atomState)) {
204
- if (mountedMap.has(atom) && invalidatedAtoms.get(atom) !== atomState.n) {
205
- return atomState;
206
- }
207
- let hasChangedDeps = false;
208
- for (const [a, n] of atomState.d) {
209
- if (readAtomState(store, a).n !== n) {
210
- hasChangedDeps = true;
211
- break;
212
- }
213
- }
214
- if (!hasChangedDeps) {
215
- return atomState;
216
- }
217
- }
218
- atomState.d.clear();
219
- let isSync = true;
220
- function mountDependenciesIfAsync() {
221
- if (mountedMap.has(atom)) {
222
- mountDependencies(store, atom);
223
- recomputeInvalidatedAtoms(store);
224
- flushCallbacks(store);
225
- }
226
- }
227
- function getter(a) {
228
- var _a2;
229
- if (a === atom) {
230
- const aState2 = ensureAtomState(store, a);
231
- if (!isAtomStateInitialized(aState2)) {
232
- if (hasInitialValue(a)) {
233
- setAtomStateValueOrPromise(store, a, a.init);
234
- } else {
235
- throw new Error("no atom init");
236
- }
237
- }
238
- return returnAtomValue(aState2);
239
- }
240
- const aState = readAtomState(store, a);
241
- try {
242
- return returnAtomValue(aState);
243
- } finally {
244
- atomState.d.set(a, aState.n);
245
- if (isPendingPromise(atomState.v)) {
246
- addPendingPromiseToDependency(atom, atomState.v, aState);
247
- }
248
- if (mountedMap.has(atom)) {
249
- (_a2 = mountedMap.get(a)) == null ? void 0 : _a2.t.add(atom);
250
- }
251
- if (!isSync) {
252
- mountDependenciesIfAsync();
253
- }
254
- }
255
- }
256
- let controller;
257
- let setSelf;
258
- const options = {
259
- get signal() {
260
- if (!controller) {
261
- controller = new AbortController();
262
- }
263
- return controller.signal;
264
- },
265
- get setSelf() {
266
- if ((import.meta.env ? import.meta.env.MODE : void 0) !== "production") {
267
- console.warn(
268
- "[DEPRECATED] setSelf is deprecated and will be removed in v3."
269
- );
270
- }
271
- if ((import.meta.env ? import.meta.env.MODE : void 0) !== "production" && !isActuallyWritableAtom(atom)) {
272
- console.warn("setSelf function cannot be used with read-only atom");
273
- }
274
- if (!setSelf && isActuallyWritableAtom(atom)) {
275
- setSelf = (...args) => {
276
- if ((import.meta.env ? import.meta.env.MODE : void 0) !== "production" && isSync) {
277
- console.warn("setSelf function cannot be called in sync");
278
- }
279
- if (!isSync) {
280
- try {
281
- return writeAtomState(store, atom, ...args);
282
- } finally {
283
- recomputeInvalidatedAtoms(store);
284
- flushCallbacks(store);
285
- }
286
- }
287
- };
288
- }
289
- return setSelf;
290
- }
291
- };
292
- const prevEpochNumber = atomState.n;
293
- try {
294
- if ((import.meta.env ? import.meta.env.MODE : void 0) !== "production") {
295
- storeMutationSet.delete(store);
296
- }
297
- const valueOrPromise = atomRead(store, atom, getter, options);
298
- if ((import.meta.env ? import.meta.env.MODE : void 0) !== "production" && storeMutationSet.has(store)) {
299
- console.warn(
300
- "Detected store mutation during atom read. This is not supported."
301
- );
302
- }
303
- setAtomStateValueOrPromise(store, atom, valueOrPromise);
304
- if (isPromiseLike(valueOrPromise)) {
305
- registerAbortHandler(valueOrPromise, () => controller == null ? void 0 : controller.abort());
306
- valueOrPromise.then(mountDependenciesIfAsync, mountDependenciesIfAsync);
307
- }
308
- (_a = storeHooks.r) == null ? void 0 : _a.call(storeHooks, atom);
309
- return atomState;
310
- } catch (error) {
311
- delete atomState.v;
312
- atomState.e = error;
313
- ++atomState.n;
314
- return atomState;
315
- } finally {
316
- isSync = false;
317
- if (prevEpochNumber !== atomState.n && invalidatedAtoms.get(atom) === prevEpochNumber) {
318
- invalidatedAtoms.set(atom, atomState.n);
319
- changedAtoms.add(atom);
320
- (_b = storeHooks.c) == null ? void 0 : _b.call(storeHooks, atom);
321
- }
322
- }
323
- };
324
- var BUILDING_BLOCK_invalidateDependents = (store, atom) => {
325
- const buildingBlocks = getInternalBuildingBlocks(store);
326
- const mountedMap = buildingBlocks[1];
327
- const invalidatedAtoms = buildingBlocks[2];
328
- const ensureAtomState = buildingBlocks[11];
329
- const stack = [atom];
330
- while (stack.length) {
331
- const a = stack.pop();
332
- const aState = ensureAtomState(store, a);
333
- for (const d of getMountedOrPendingDependents(a, aState, mountedMap)) {
334
- const dState = ensureAtomState(store, d);
335
- invalidatedAtoms.set(d, dState.n);
336
- stack.push(d);
337
- }
338
- }
339
- };
340
- var BUILDING_BLOCK_writeAtomState = (store, atom, ...args) => {
341
- const buildingBlocks = getInternalBuildingBlocks(store);
342
- const changedAtoms = buildingBlocks[3];
343
- const storeHooks = buildingBlocks[6];
344
- const atomWrite = buildingBlocks[8];
345
- const ensureAtomState = buildingBlocks[11];
346
- const flushCallbacks = buildingBlocks[12];
347
- const recomputeInvalidatedAtoms = buildingBlocks[13];
348
- const readAtomState = buildingBlocks[14];
349
- const invalidateDependents = buildingBlocks[15];
350
- const writeAtomState = buildingBlocks[16];
351
- const mountDependencies = buildingBlocks[17];
352
- const setAtomStateValueOrPromise = buildingBlocks[20];
353
- let isSync = true;
354
- const getter = (a) => returnAtomValue(readAtomState(store, a));
355
- const setter = (a, ...args2) => {
356
- var _a;
357
- const aState = ensureAtomState(store, a);
358
- try {
359
- if (a === atom) {
360
- if (!hasInitialValue(a)) {
361
- throw new Error("atom not writable");
362
- }
363
- if ((import.meta.env ? import.meta.env.MODE : void 0) !== "production") {
364
- storeMutationSet.add(store);
365
- }
366
- const prevEpochNumber = aState.n;
367
- const v = args2[0];
368
- setAtomStateValueOrPromise(store, a, v);
369
- mountDependencies(store, a);
370
- if (prevEpochNumber !== aState.n) {
371
- changedAtoms.add(a);
372
- invalidateDependents(store, a);
373
- (_a = storeHooks.c) == null ? void 0 : _a.call(storeHooks, a);
374
- }
375
- return void 0;
376
- } else {
377
- return writeAtomState(store, a, ...args2);
378
- }
379
- } finally {
380
- if (!isSync) {
381
- recomputeInvalidatedAtoms(store);
382
- flushCallbacks(store);
383
- }
384
- }
385
- };
386
- try {
387
- return atomWrite(store, atom, getter, setter, ...args);
388
- } finally {
389
- isSync = false;
390
- }
391
- };
392
- var BUILDING_BLOCK_mountDependencies = (store, atom) => {
393
- var _a;
394
- const buildingBlocks = getInternalBuildingBlocks(store);
395
- const mountedMap = buildingBlocks[1];
396
- const changedAtoms = buildingBlocks[3];
397
- const storeHooks = buildingBlocks[6];
398
- const ensureAtomState = buildingBlocks[11];
399
- const invalidateDependents = buildingBlocks[15];
400
- const mountAtom = buildingBlocks[18];
401
- const unmountAtom = buildingBlocks[19];
402
- const atomState = ensureAtomState(store, atom);
403
- const mounted = mountedMap.get(atom);
404
- if (mounted && !isPendingPromise(atomState.v)) {
405
- for (const [a, n] of atomState.d) {
406
- if (!mounted.d.has(a)) {
407
- const aState = ensureAtomState(store, a);
408
- const aMounted = mountAtom(store, a);
409
- aMounted.t.add(atom);
410
- mounted.d.add(a);
411
- if (n !== aState.n) {
412
- changedAtoms.add(a);
413
- invalidateDependents(store, a);
414
- (_a = storeHooks.c) == null ? void 0 : _a.call(storeHooks, a);
415
- }
416
- }
417
- }
418
- for (const a of mounted.d) {
419
- if (!atomState.d.has(a)) {
420
- mounted.d.delete(a);
421
- const aMounted = unmountAtom(store, a);
422
- aMounted == null ? void 0 : aMounted.t.delete(atom);
423
- }
424
- }
425
- }
426
- };
427
- var BUILDING_BLOCK_mountAtom = (store, atom) => {
428
- var _a;
429
- const buildingBlocks = getInternalBuildingBlocks(store);
430
- const mountedMap = buildingBlocks[1];
431
- const mountCallbacks = buildingBlocks[4];
432
- const storeHooks = buildingBlocks[6];
433
- const atomOnMount = buildingBlocks[10];
434
- const ensureAtomState = buildingBlocks[11];
435
- const flushCallbacks = buildingBlocks[12];
436
- const recomputeInvalidatedAtoms = buildingBlocks[13];
437
- const readAtomState = buildingBlocks[14];
438
- const writeAtomState = buildingBlocks[16];
439
- const mountAtom = buildingBlocks[18];
440
- const atomState = ensureAtomState(store, atom);
441
- let mounted = mountedMap.get(atom);
442
- if (!mounted) {
443
- readAtomState(store, atom);
444
- for (const a of atomState.d.keys()) {
445
- const aMounted = mountAtom(store, a);
446
- aMounted.t.add(atom);
447
- }
448
- mounted = {
449
- l: /* @__PURE__ */ new Set(),
450
- d: new Set(atomState.d.keys()),
451
- t: /* @__PURE__ */ new Set()
452
- };
453
- mountedMap.set(atom, mounted);
454
- if (isActuallyWritableAtom(atom)) {
455
- const processOnMount = () => {
456
- let isSync = true;
457
- const setAtom = (...args) => {
458
- try {
459
- return writeAtomState(store, atom, ...args);
460
- } finally {
461
- if (!isSync) {
462
- recomputeInvalidatedAtoms(store);
463
- flushCallbacks(store);
464
- }
465
- }
466
- };
467
- try {
468
- const onUnmount = atomOnMount(store, atom, setAtom);
469
- if (onUnmount) {
470
- mounted.u = () => {
471
- isSync = true;
472
- try {
473
- onUnmount();
474
- } finally {
475
- isSync = false;
476
- }
477
- };
478
- }
479
- } finally {
480
- isSync = false;
481
- }
482
- };
483
- mountCallbacks.add(processOnMount);
484
- }
485
- (_a = storeHooks.m) == null ? void 0 : _a.call(storeHooks, atom);
486
- }
487
- return mounted;
488
- };
489
- var BUILDING_BLOCK_unmountAtom = (store, atom) => {
490
- var _a, _b;
491
- const buildingBlocks = getInternalBuildingBlocks(store);
492
- const mountedMap = buildingBlocks[1];
493
- const unmountCallbacks = buildingBlocks[5];
494
- const storeHooks = buildingBlocks[6];
495
- const ensureAtomState = buildingBlocks[11];
496
- const unmountAtom = buildingBlocks[19];
497
- const atomState = ensureAtomState(store, atom);
498
- let mounted = mountedMap.get(atom);
499
- if (!mounted || mounted.l.size) {
500
- return mounted;
501
- }
502
- let isDependent = false;
503
- for (const a of mounted.t) {
504
- if ((_a = mountedMap.get(a)) == null ? void 0 : _a.d.has(atom)) {
505
- isDependent = true;
506
- break;
507
- }
508
- }
509
- if (!isDependent) {
510
- if (mounted.u) {
511
- unmountCallbacks.add(mounted.u);
512
- }
513
- mounted = void 0;
514
- mountedMap.delete(atom);
515
- for (const a of atomState.d.keys()) {
516
- const aMounted = unmountAtom(store, a);
517
- aMounted == null ? void 0 : aMounted.t.delete(atom);
518
- }
519
- (_b = storeHooks.u) == null ? void 0 : _b.call(storeHooks, atom);
520
- return void 0;
521
- }
522
- return mounted;
523
- };
524
- var BUILDING_BLOCK_setAtomStateValueOrPromise = (store, atom, valueOrPromise) => {
525
- const ensureAtomState = getInternalBuildingBlocks(store)[11];
526
- const atomState = ensureAtomState(store, atom);
527
- const hasPrevValue = "v" in atomState;
528
- const prevValue = atomState.v;
529
- if (isPromiseLike(valueOrPromise)) {
530
- for (const a of atomState.d.keys()) {
531
- addPendingPromiseToDependency(
532
- atom,
533
- valueOrPromise,
534
- ensureAtomState(store, a)
535
- );
536
- }
537
- }
538
- atomState.v = valueOrPromise;
539
- delete atomState.e;
540
- if (!hasPrevValue || !Object.is(prevValue, atomState.v)) {
541
- ++atomState.n;
542
- if (isPromiseLike(prevValue)) {
543
- abortPromise(prevValue);
544
- }
545
- }
546
- };
547
- var BUILDING_BLOCK_storeGet = (store, atom) => {
548
- const readAtomState = getInternalBuildingBlocks(store)[14];
549
- return returnAtomValue(readAtomState(store, atom));
550
- };
551
- var BUILDING_BLOCK_storeSet = (store, atom, ...args) => {
552
- const buildingBlocks = getInternalBuildingBlocks(store);
553
- const flushCallbacks = buildingBlocks[12];
554
- const recomputeInvalidatedAtoms = buildingBlocks[13];
555
- const writeAtomState = buildingBlocks[16];
556
- try {
557
- return writeAtomState(store, atom, ...args);
558
- } finally {
559
- recomputeInvalidatedAtoms(store);
560
- flushCallbacks(store);
561
- }
562
- };
563
- var BUILDING_BLOCK_storeSub = (store, atom, listener) => {
564
- const buildingBlocks = getInternalBuildingBlocks(store);
565
- const flushCallbacks = buildingBlocks[12];
566
- const mountAtom = buildingBlocks[18];
567
- const unmountAtom = buildingBlocks[19];
568
- const mounted = mountAtom(store, atom);
569
- const listeners = mounted.l;
570
- listeners.add(listener);
571
- flushCallbacks(store);
572
- return () => {
573
- listeners.delete(listener);
574
- unmountAtom(store, atom);
575
- flushCallbacks(store);
576
- };
577
- };
578
- var buildingBlockMap = /* @__PURE__ */ new WeakMap();
579
- var getInternalBuildingBlocks = (store) => {
580
- const buildingBlocks = buildingBlockMap.get(store);
581
- if ((import.meta.env ? import.meta.env.MODE : void 0) !== "production" && !buildingBlocks) {
582
- throw new Error(
583
- "Store must be created by buildStore to read its building blocks"
584
- );
585
- }
586
- return buildingBlocks;
587
- };
588
- function buildStore(...buildArgs) {
589
- const store = {
590
- get(atom) {
591
- const storeGet = getInternalBuildingBlocks(store)[21];
592
- return storeGet(store, atom);
593
- },
594
- set(atom, ...args) {
595
- const storeSet = getInternalBuildingBlocks(store)[22];
596
- return storeSet(store, atom, ...args);
597
- },
598
- sub(atom, listener) {
599
- const storeSub = getInternalBuildingBlocks(store)[23];
600
- return storeSub(store, atom, listener);
601
- }
602
- };
603
- const buildingBlocks = [
604
- // store state
605
- /* @__PURE__ */ new WeakMap(),
606
- // atomStateMap
607
- /* @__PURE__ */ new WeakMap(),
608
- // mountedMap
609
- /* @__PURE__ */ new WeakMap(),
610
- // invalidatedAtoms
611
- /* @__PURE__ */ new Set(),
612
- // changedAtoms
613
- /* @__PURE__ */ new Set(),
614
- // mountCallbacks
615
- /* @__PURE__ */ new Set(),
616
- // unmountCallbacks
617
- {},
618
- // storeHooks
619
- // atom interceptors
620
- BUILDING_BLOCK_atomRead,
621
- BUILDING_BLOCK_atomWrite,
622
- BUILDING_BLOCK_atomOnInit,
623
- BUILDING_BLOCK_atomOnMount,
624
- // building-block functions
625
- BUILDING_BLOCK_ensureAtomState,
626
- BUILDING_BLOCK_flushCallbacks,
627
- BUILDING_BLOCK_recomputeInvalidatedAtoms,
628
- BUILDING_BLOCK_readAtomState,
629
- BUILDING_BLOCK_invalidateDependents,
630
- BUILDING_BLOCK_writeAtomState,
631
- BUILDING_BLOCK_mountDependencies,
632
- BUILDING_BLOCK_mountAtom,
633
- BUILDING_BLOCK_unmountAtom,
634
- BUILDING_BLOCK_setAtomStateValueOrPromise,
635
- BUILDING_BLOCK_storeGet,
636
- BUILDING_BLOCK_storeSet,
637
- BUILDING_BLOCK_storeSub,
638
- void 0
639
- ].map((fn, i) => buildArgs[i] || fn);
640
- buildingBlockMap.set(store, Object.freeze(buildingBlocks));
641
- return store;
642
- }
643
-
644
- // node_modules/jotai/esm/vanilla.mjs
645
- var overriddenCreateStore;
646
- function createStore() {
647
- if (overriddenCreateStore) {
648
- return overriddenCreateStore();
649
- }
650
- return buildStore();
651
- }
652
- var defaultStore;
653
- function getDefaultStore() {
654
- if (!defaultStore) {
655
- defaultStore = createStore();
656
- if ((import.meta.env ? import.meta.env.MODE : void 0) !== "production") {
657
- globalThis.__JOTAI_DEFAULT_STORE__ || (globalThis.__JOTAI_DEFAULT_STORE__ = defaultStore);
658
- if (globalThis.__JOTAI_DEFAULT_STORE__ !== defaultStore) {
659
- console.warn(
660
- "Detected multiple Jotai instances. It may cause unexpected behavior with the default store. https://github.com/pmndrs/jotai/discussions/2044"
661
- );
662
- }
663
- }
664
- }
665
- return defaultStore;
666
- }
667
-
668
- // node_modules/jotai/esm/react.mjs
669
- import React, { createContext, useContext, useRef, createElement, useReducer, useEffect, useDebugValue, useCallback } from "react";
670
- var StoreContext = createContext(
671
- void 0
672
- );
673
- function useStore(options) {
674
- const store = useContext(StoreContext);
675
- return (options == null ? void 0 : options.store) || store || getDefaultStore();
676
- }
677
- var isPromiseLike2 = (x) => typeof (x == null ? void 0 : x.then) === "function";
678
- var attachPromiseStatus = (promise) => {
679
- if (!promise.status) {
680
- promise.status = "pending";
681
- promise.then(
682
- (v) => {
683
- promise.status = "fulfilled";
684
- promise.value = v;
685
- },
686
- (e) => {
687
- promise.status = "rejected";
688
- promise.reason = e;
689
- }
690
- );
691
- }
692
- };
693
- var use = React.use || // A shim for older React versions
694
- ((promise) => {
695
- if (promise.status === "pending") {
696
- throw promise;
697
- } else if (promise.status === "fulfilled") {
698
- return promise.value;
699
- } else if (promise.status === "rejected") {
700
- throw promise.reason;
701
- } else {
702
- attachPromiseStatus(promise);
703
- throw promise;
704
- }
705
- });
706
- var continuablePromiseMap = /* @__PURE__ */ new WeakMap();
707
- var createContinuablePromise = (promise, getValue) => {
708
- let continuablePromise = continuablePromiseMap.get(promise);
709
- if (!continuablePromise) {
710
- continuablePromise = new Promise((resolve, reject) => {
711
- let curr = promise;
712
- const onFulfilled = (me) => (v) => {
713
- if (curr === me) {
714
- resolve(v);
715
- }
716
- };
717
- const onRejected = (me) => (e) => {
718
- if (curr === me) {
719
- reject(e);
720
- }
721
- };
722
- const onAbort = () => {
723
- try {
724
- const nextValue = getValue();
725
- if (isPromiseLike2(nextValue)) {
726
- continuablePromiseMap.set(nextValue, continuablePromise);
727
- curr = nextValue;
728
- nextValue.then(onFulfilled(nextValue), onRejected(nextValue));
729
- registerAbortHandler(nextValue, onAbort);
730
- } else {
731
- resolve(nextValue);
732
- }
733
- } catch (e) {
734
- reject(e);
735
- }
736
- };
737
- promise.then(onFulfilled(promise), onRejected(promise));
738
- registerAbortHandler(promise, onAbort);
739
- });
740
- continuablePromiseMap.set(promise, continuablePromise);
741
- }
742
- return continuablePromise;
743
- };
744
- function useAtomValue(atom, options) {
745
- const { delay, unstable_promiseStatus: promiseStatus = !React.use } = options || {};
746
- const store = useStore(options);
747
- const [[valueFromReducer, storeFromReducer, atomFromReducer], rerender] = useReducer(
748
- (prev) => {
749
- const nextValue = store.get(atom);
750
- if (Object.is(prev[0], nextValue) && prev[1] === store && prev[2] === atom) {
751
- return prev;
752
- }
753
- return [nextValue, store, atom];
754
- },
755
- void 0,
756
- () => [store.get(atom), store, atom]
757
- );
758
- let value = valueFromReducer;
759
- if (storeFromReducer !== store || atomFromReducer !== atom) {
760
- rerender();
761
- value = store.get(atom);
762
- }
763
- useEffect(() => {
764
- const unsub = store.sub(atom, () => {
765
- if (promiseStatus) {
766
- try {
767
- const value2 = store.get(atom);
768
- if (isPromiseLike2(value2)) {
769
- attachPromiseStatus(
770
- createContinuablePromise(value2, () => store.get(atom))
771
- );
772
- }
773
- } catch (e) {
774
- }
775
- }
776
- if (typeof delay === "number") {
777
- setTimeout(rerender, delay);
778
- return;
779
- }
780
- rerender();
781
- });
782
- rerender();
783
- return unsub;
784
- }, [store, atom, delay, promiseStatus]);
785
- useDebugValue(value);
786
- if (isPromiseLike2(value)) {
787
- const promise = createContinuablePromise(value, () => store.get(atom));
788
- if (promiseStatus) {
789
- attachPromiseStatus(promise);
790
- }
791
- return use(promise);
792
- }
793
- return value;
794
- }
795
- function useSetAtom(atom, options) {
796
- const store = useStore(options);
797
- const setAtom = useCallback(
798
- (...args) => {
799
- if ((import.meta.env ? import.meta.env.MODE : void 0) !== "production" && !("write" in atom)) {
800
- throw new Error("not writable atom");
801
- }
802
- return store.set(atom, ...args);
803
- },
804
- [store, atom]
805
- );
806
- return setAtom;
807
- }
808
- function useAtom(atom, options) {
809
- return [
810
- useAtomValue(atom, options),
811
- // We do wrong type assertion here, which results in throwing an error.
812
- useSetAtom(atom, options)
813
- ];
814
- }
815
-
816
- // src/bridges/jotai/useJotai.ts
817
- function useJotai(atom) {
818
- const [value, setValue] = useAtom(atom);
819
- return [value, setValue];
820
- }
821
- export {
822
- useAtom,
823
- useAtomValue,
824
- useJotai,
825
- useSetAtom
826
- };
827
- //# sourceMappingURL=jotai.mjs.map