@kdeveloper/kvark 0.10.0 → 0.10.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.
package/README.md CHANGED
@@ -422,6 +422,31 @@ Available `stalePolicy` values:
422
422
  | `'suspend'` | Re-throw Promise on revalidation (re-suspends) |
423
423
  | `'reset'` | Clear value and re-suspend immediately |
424
424
 
425
+ ### Retry on error
426
+
427
+ By default a failed `get` immediately sets the atom to `error` state. You can opt into automatic retries with the `retry` and `retryDelay` options:
428
+
429
+ ```ts
430
+ const userAtom = atom({
431
+ retry: 3,
432
+ retryDelay: (attempt) => Math.min(1000 * 2 ** attempt, 30_000),
433
+ get: async (ctx) => {
434
+ const res = await fetch("/api/user", { signal: ctx.signal });
435
+ if (!res.ok) throw new Error("Failed to fetch user");
436
+ return res.json();
437
+ },
438
+ });
439
+ ```
440
+
441
+ | Option | Type | Default | Description |
442
+ | ------------ | ---------------------------------------------- | ------- | ------------------------------------------------------------------------------- |
443
+ | `retry` | `boolean \| number` | — | Number of **additional** attempts after the first failure. `true` defaults to 3 |
444
+ | `retryDelay` | `number \| ((attemptIndex: number) => number)` | `0` | Delay in ms before each retry. `attemptIndex` starts at 0 |
445
+
446
+ Retries respect `AbortSignal` — if the atom is invalidated or unmounted mid-retry the remaining attempts are cancelled. The atom stays in its previous state (no intermediate `error` flashes) until all retries are exhausted.
447
+
448
+ The same options are available in `atomFamily` and `infinityAtom`.
449
+
425
450
  ### `atomFamily`
426
451
 
427
452
  Create a family of atoms parametrised by a key. Atoms are cached by param; supports LRU eviction.
@@ -516,12 +541,12 @@ const bob = useAtomValue(userFamily(2));
516
541
 
517
542
  `batch.fetch` receives:
518
543
 
519
- | Field | Type | Description |
520
- | -------- | ------------------------- | ------------------------------------------------------- |
521
- | `keys` | `readonly Key[]` | Unique keys (after `paramKey`) accumulated in this batch |
522
- | `params` | `readonly Param[]` | Corresponding original `param` values (same order) |
523
- | `signal` | `AbortSignal` | Aborts when **all** individual atom signals are aborted |
524
- | `ctx` | `AtomContext<Deps>` | Context from the first enqueued atom in the batch |
544
+ | Field | Type | Description |
545
+ | -------- | ------------------- | -------------------------------------------------------- |
546
+ | `keys` | `readonly Key[]` | Unique keys (after `paramKey`) accumulated in this batch |
547
+ | `params` | `readonly Param[]` | Corresponding original `param` values (same order) |
548
+ | `signal` | `AbortSignal` | Aborts when **all** individual atom signals are aborted |
549
+ | `ctx` | `AtomContext<Deps>` | Context from the first enqueued atom in the batch |
525
550
 
526
551
  Return a `Map<Key, Value>`. Keys missing from the map cause an error for those atoms.
527
552
 
@@ -533,24 +558,23 @@ In batch mode, `dependencies` takes **no param**: `() => Deps`. This guarantees
533
558
 
534
559
  All schedulers are factory functions that return a `BatchScheduler` instance.
535
560
 
536
- | Factory | Behaviour |
537
- | ---------------------------------------------- | ------------------------------------------------------------------------------------------------ |
538
- | `microtaskScheduler()` _(default)_ | Flushes at the end of the current microtask (coalesces all synchronous enqueues) |
539
- | `windowScheduler(ms)` | Flushes after `ms` milliseconds since the first enqueue in the window |
540
- | `maxBatchSizeScheduler(maxSize)` | Flushes immediately when the number of unique keys reaches `maxSize` (no timer fallback) |
541
- | `windowedFiniteBatchScheduler(ms, maxSize)` | Flushes on timer **or** when `maxSize` unique keys are reached — whichever comes first |
561
+ | Factory | Behaviour |
562
+ | ------------------------------------------- | ---------------------------------------------------------------------------------------- |
563
+ | `microtaskScheduler()` _(default)_ | Flushes at the end of the current microtask (coalesces all synchronous enqueues) |
564
+ | `windowScheduler(ms)` | Flushes after `ms` milliseconds since the first enqueue in the window |
565
+ | `maxBatchSizeScheduler(maxSize)` | Flushes immediately when the number of unique keys reaches `maxSize` (no timer fallback) |
566
+ | `windowedFiniteBatchScheduler(ms, maxSize)` | Flushes on timer **or** when `maxSize` unique keys are reached — whichever comes first |
542
567
 
543
568
  ```ts
544
- import {
545
- windowScheduler,
546
- windowedFiniteBatchScheduler,
547
- } from "@kdeveloper/kvark/family";
569
+ import { windowScheduler, windowedFiniteBatchScheduler } from "@kdeveloper/kvark/family";
548
570
 
549
571
  // Flush after 10 ms or when 50 unique keys accumulate
550
572
  const family = atomFamily({
551
573
  batch: {
552
574
  scheduler: windowedFiniteBatchScheduler(10, 50),
553
- fetch: async ({ keys, signal }) => { /* ... */ },
575
+ fetch: async ({ keys, signal }) => {
576
+ /* ... */
577
+ },
554
578
  },
555
579
  });
556
580
  ```
@@ -866,12 +890,12 @@ type Writable = IsWritable<typeof countAtom>; // → true | false
866
890
 
867
891
  ## Package Structure
868
892
 
869
- | Import | Contents |
870
- | -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
871
- | `@kdeveloper/kvark` | `atom`, `mutation`, `createStore`, all types (including `Mutation`, `MutationContext`) |
872
- | `@kdeveloper/kvark/react` | `Provider`, `useStore`, `useAtomValue`, `useSetAtom`, `useMutation`, `useAtom`, `useAtomContext` |
873
- | `@kdeveloper/kvark/preact` | `Provider`, `useStore`, `useAtomValue`, `useSetAtom`, `useMutation`, `useAtom`, `useAtomContext` |
874
- | `@kdeveloper/kvark/vue` | `Provider`, `useStore`, `useAtomValue`, `useSetAtom`, `useMutation`, `useAtom`, `useAtomContext`; types `ThenableShallowRef`, `ThenableObservedShallowRef`, `ObservedValue` |
893
+ | Import | Contents |
894
+ | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
895
+ | `@kdeveloper/kvark` | `atom`, `mutation`, `createStore`, all types (including `Mutation`, `MutationContext`) |
896
+ | `@kdeveloper/kvark/react` | `Provider`, `useStore`, `useAtomValue`, `useSetAtom`, `useMutation`, `useAtom`, `useAtomContext` |
897
+ | `@kdeveloper/kvark/preact` | `Provider`, `useStore`, `useAtomValue`, `useSetAtom`, `useMutation`, `useAtom`, `useAtomContext` |
898
+ | `@kdeveloper/kvark/vue` | `Provider`, `useStore`, `useAtomValue`, `useSetAtom`, `useMutation`, `useAtom`, `useAtomContext`; types `ThenableShallowRef`, `ThenableObservedShallowRef`, `ObservedValue` |
875
899
  | `@kdeveloper/kvark/family` | `atomFamily`, `stableFamilyKey`, `microtaskScheduler`, `windowScheduler`, `maxBatchSizeScheduler`, `windowedFiniteBatchScheduler`, re-exports `atom`, `mutation`, `createStore`; types include `AtomFamily`, `BatchScheduler`, `BatchFetchInput`, `Mutation`, `MutationContext`, and core atom types |
876
900
 
877
901
  The core (`@kdeveloper/kvark`) has **zero runtime dependencies**. **React**, **Preact**, and **Vue** are optional peer dependencies — install the framework you use and import from `/react`, `/preact`, or `/vue`.
@@ -1,4 +1,4 @@
1
- import { c as AtomConfig, g as WritableAtomContext, h as WritableAtom, o as Atom } from "./store-DUIAp1x7.js";
1
+ import { _ as WritableAtomContext, c as AtomConfig, g as WritableAtom, o as Atom } from "./store-CkSajQlZ.js";
2
2
 
3
3
  //#region src/internal/atom.d.ts
4
4
  type WritableConfig<Value, Deps extends Record<string, Atom<unknown>>, Args extends readonly unknown[]> = AtomConfig<Value, Deps, Args> & {
@@ -9,4 +9,4 @@ declare function atom<Value, Deps extends Record<string, Atom<unknown>> = Record
9
9
  declare function atom<Value, Deps extends Record<string, Atom<unknown>> = Record<never, never>>(config: ReadonlyConfig<Value, Deps>): Atom<Value>;
10
10
  //#endregion
11
11
  export { atom as t };
12
- //# sourceMappingURL=atom-BhfSS5xG.d.ts.map
12
+ //# sourceMappingURL=atom-KKDuP3S2.d.ts.map
package/dist/family.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { a as mutation, c as AtomConfig, d as AtomValue, g as WritableAtomContext, h as WritableAtom, i as Mutation, l as AtomContext, m as StalePolicy, o as Atom, p as MutationContext, r as createStore, u as AtomState } from "./store-DUIAp1x7.js";
2
- import { t as atom } from "./atom-BhfSS5xG.js";
1
+ import { _ as WritableAtomContext, a as mutation, c as AtomConfig, d as AtomValue, g as WritableAtom, h as StalePolicy, i as Mutation, l as AtomContext, m as RetryDelay, o as Atom, p as MutationContext, r as createStore, u as AtomState } from "./store-CkSajQlZ.js";
2
+ import { t as atom } from "./atom-KKDuP3S2.js";
3
3
 
4
4
  //#region src/internal/family-batch-schedulers.d.ts
5
5
  type BatchSchedulerContext = {
@@ -25,6 +25,8 @@ type BatchFetchInput<Param, Key, Deps extends Record<string, Atom<unknown>>> = {
25
25
  //#region src/internal/family.d.ts
26
26
  type AtomFamilyBaseOptions<Param, Key = Param> = {
27
27
  stalePolicy?: StalePolicy;
28
+ retry?: boolean | number;
29
+ retryDelay?: RetryDelay;
28
30
  cachePolicy?: "keep-all" | "lru";
29
31
  lruSize?: number;
30
32
  debugLabel?: string;
package/dist/family.js CHANGED
@@ -1,4 +1,4 @@
1
- import { a as microtaskScheduler, c as atom, i as maxBatchSizeScheduler, n as mutation, o as windowScheduler, r as atomFamily, s as windowedFiniteBatchScheduler, t as createStore } from "./store-gE1mKZy1.js";
1
+ import { a as microtaskScheduler, c as atom, i as maxBatchSizeScheduler, n as mutation, o as windowScheduler, r as atomFamily, s as windowedFiniteBatchScheduler, t as createStore } from "./store-DhEeznqs.js";
2
2
  //#region src/internal/stable-family-key.ts
3
3
  /**
4
4
  * Produces a deterministic string key for plain-object/array/primitive values.
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { a as mutation, c as AtomConfig, d as AtomValue, f as IsWritable, g as WritableAtomContext, h as WritableAtom, i as Mutation, l as AtomContext, m as StalePolicy, n as StoreClient, o as Atom, p as MutationContext, r as createStore, s as AtomArgs, u as AtomState } from "./store-DUIAp1x7.js";
2
- import { t as atom } from "./atom-BhfSS5xG.js";
1
+ import { _ as WritableAtomContext, a as mutation, c as AtomConfig, d as AtomValue, f as IsWritable, g as WritableAtom, h as StalePolicy, i as Mutation, l as AtomContext, m as RetryDelay, n as StoreClient, o as Atom, p as MutationContext, r as createStore, s as AtomArgs, u as AtomState } from "./store-CkSajQlZ.js";
2
+ import { t as atom } from "./atom-KKDuP3S2.js";
3
3
 
4
4
  //#region src/internal/infinity-atom.d.ts
5
5
  type InfiniteData<Page, Cursor> = {
@@ -18,9 +18,11 @@ type InfinityAtomOptions<Page, Cursor> = {
18
18
  maxPages?: number;
19
19
  debugLabel?: string;
20
20
  stalePolicy?: StalePolicy;
21
+ retry?: boolean | number;
22
+ retryDelay?: RetryDelay;
21
23
  dependencies?: Record<string, Atom<unknown>>;
22
24
  };
23
25
  declare function infinityAtom<Page, Cursor>(options: InfinityAtomOptions<Page, Cursor>): WritableAtom<InfiniteData<Page, Cursor>, [action: "loadNext"]>;
24
26
  //#endregion
25
- export { type Atom, type AtomArgs, type AtomConfig, type AtomContext, type AtomState, type AtomValue, type InfiniteData, type InfinityAtomOptions, type IsWritable, type Mutation, type MutationContext, type StalePolicy, type StoreClient, type WritableAtom, type WritableAtomContext, atom, createStore, infinityAtom, mutation };
27
+ export { type Atom, type AtomArgs, type AtomConfig, type AtomContext, type AtomState, type AtomValue, type InfiniteData, type InfinityAtomOptions, type IsWritable, type Mutation, type MutationContext, type RetryDelay, type StalePolicy, type StoreClient, type WritableAtom, type WritableAtomContext, atom, createStore, infinityAtom, mutation };
26
28
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { c as atom, n as mutation, t as createStore } from "./store-gE1mKZy1.js";
1
+ import { c as atom, n as mutation, t as createStore } from "./store-DhEeznqs.js";
2
2
  //#region src/internal/infinity-atom.ts
3
3
  function infinityAtom(options) {
4
4
  function applyMaxPages(pages, cursors) {
@@ -67,6 +67,8 @@ function infinityAtom(options) {
67
67
  };
68
68
  if (options.debugLabel != null) config.debugLabel = options.debugLabel;
69
69
  if (options.stalePolicy != null) config.stalePolicy = options.stalePolicy;
70
+ if (options.retry != null) config.retry = options.retry;
71
+ if (options.retryDelay != null) config.retryDelay = options.retryDelay;
70
72
  if (options.dependencies != null) config.dependencies = options.dependencies;
71
73
  return atom(config);
72
74
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../src/internal/infinity-atom.ts"],"mappings":";;AAoBA,SAAgB,aACd,SACgE;CAGhE,SAAS,cAAc,OAAe,SAAyD;AAC7F,MAAI,QAAQ,YAAY,QAAQ,MAAM,SAAS,QAAQ,UAAU;GAC/D,MAAM,SAAS,MAAM,SAAS,QAAQ;AACtC,UAAO;IAAE,OAAO,MAAM,MAAM,OAAO;IAAE,SAAS,QAAQ,MAAM,OAAO;IAAE;;AAEvE,SAAO;GAAE;GAAO;GAAS;;CAG3B,SAAS,YAAY,OAAe,aAA6B;EAC/D,MAAM,UAAU,cAAc,OAAO,YAAY;EACjD,MAAM,WAAW,QAAQ,MAAM,QAAQ,MAAM,SAAS;EACtD,MAAM,aAAa,YAAY,OAC3B,QAAQ,cAAc,UAAU,QAAQ,MAAM,GAC9C,KAAA;AACJ,SAAO;GACL,OAAO,QAAQ;GACf,aAAa,QAAQ;GACrB,aAAa,cAAc;GAC3B,oBAAoB;GACrB;;CAGH,MAAM,SAAgF;EACpF,KAAK,OAAO,QAAQ;GAClB,MAAM,OAAO,IAAI,kBAAkB;AAEnC,OAAI,QAAQ,KAKV,QAAO,YAAY,CAJN,MAAM,QAAQ,QAAQ;IACjC,QAAQ,QAAQ;IAChB,QAAQ,IAAI;IACb,CAAC,CACuB,EAAE,CAAC,QAAQ,cAAc,CAAC;GAIrD,MAAM,QAAgB,EAAE;GACxB,MAAM,cAAwB,EAAE;AAChC,QAAK,MAAM,UAAU,KAAK,aAAa;IACrC,MAAM,OAAO,MAAM,QAAQ,QAAQ;KAAE;KAAQ,QAAQ,IAAI;KAAQ,CAAC;AAClE,UAAM,KAAK,KAAK;AAChB,gBAAY,KAAK,OAAO;;AAE1B,UAAO,YAAY,OAAO,YAAY;;EAExC,KAAK,OAAO,KAAK,WAAW;AAC1B,OAAI,WAAW,WACb;GAGF,MAAM,UAAU,IAAI,kBAAkB;AACtC,OAAI,WAAW,QAAQ,CAAC,QAAQ,YAC9B;GAGF,MAAM,WAAW,QAAQ,MAAM,QAAQ,MAAM,SAAS;AACtD,OAAI,YAAY,KACd;GAGF,MAAM,aAAa,QAAQ,cAAc,UAAU,QAAQ,MAAM;AACjE,OAAI,cAAc,KAChB;AAGF,OAAI,mBAAmB;IAAE,GAAG;IAAS,oBAAoB;IAAM,CAAC;GAEhE,MAAM,OAAO,MAAM,QAAQ,QAAQ;IACjC,QAAQ;IACR,QAAQ,IAAI;IACb,CAAC;GAEF,MAAM,QAAQ,CAAC,GAAG,QAAQ,OAAO,KAAK;GACtC,MAAM,cAAc,CAAC,GAAG,QAAQ,aAAa,WAAW;AAExD,OAAI,mBAAmB,YAAY,OAAO,YAAY,CAAC;;EAE1D;AAED,KAAI,QAAQ,cAAc,KACxB,QAAO,aAAa,QAAQ;AAE9B,KAAI,QAAQ,eAAe,KACzB,QAAO,cAAc,QAAQ;AAE/B,KAAI,QAAQ,gBAAgB,KAC1B,QAAO,eAAe,QAAQ;AAGhC,QAAO,KAAK,OAAO"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/internal/infinity-atom.ts"],"mappings":";;AAsBA,SAAgB,aACd,SACgE;CAGhE,SAAS,cAAc,OAAe,SAAyD;AAC7F,MAAI,QAAQ,YAAY,QAAQ,MAAM,SAAS,QAAQ,UAAU;GAC/D,MAAM,SAAS,MAAM,SAAS,QAAQ;AACtC,UAAO;IAAE,OAAO,MAAM,MAAM,OAAO;IAAE,SAAS,QAAQ,MAAM,OAAO;IAAE;;AAEvE,SAAO;GAAE;GAAO;GAAS;;CAG3B,SAAS,YAAY,OAAe,aAA6B;EAC/D,MAAM,UAAU,cAAc,OAAO,YAAY;EACjD,MAAM,WAAW,QAAQ,MAAM,QAAQ,MAAM,SAAS;EACtD,MAAM,aACJ,YAAY,OAAO,QAAQ,cAAc,UAAU,QAAQ,MAAM,GAAG,KAAA;AACtE,SAAO;GACL,OAAO,QAAQ;GACf,aAAa,QAAQ;GACrB,aAAa,cAAc;GAC3B,oBAAoB;GACrB;;CAGH,MAAM,SAAgF;EACpF,KAAK,OAAO,QAAQ;GAClB,MAAM,OAAO,IAAI,kBAAkB;AAEnC,OAAI,QAAQ,KAKV,QAAO,YAAY,CAJN,MAAM,QAAQ,QAAQ;IACjC,QAAQ,QAAQ;IAChB,QAAQ,IAAI;IACb,CAAC,CACuB,EAAE,CAAC,QAAQ,cAAc,CAAC;GAIrD,MAAM,QAAgB,EAAE;GACxB,MAAM,cAAwB,EAAE;AAChC,QAAK,MAAM,UAAU,KAAK,aAAa;IACrC,MAAM,OAAO,MAAM,QAAQ,QAAQ;KAAE;KAAQ,QAAQ,IAAI;KAAQ,CAAC;AAClE,UAAM,KAAK,KAAK;AAChB,gBAAY,KAAK,OAAO;;AAE1B,UAAO,YAAY,OAAO,YAAY;;EAExC,KAAK,OAAO,KAAK,WAAW;AAC1B,OAAI,WAAW,WACb;GAGF,MAAM,UAAU,IAAI,kBAAkB;AACtC,OAAI,WAAW,QAAQ,CAAC,QAAQ,YAC9B;GAGF,MAAM,WAAW,QAAQ,MAAM,QAAQ,MAAM,SAAS;AACtD,OAAI,YAAY,KACd;GAGF,MAAM,aAAa,QAAQ,cAAc,UAAU,QAAQ,MAAM;AACjE,OAAI,cAAc,KAChB;AAGF,OAAI,mBAAmB;IAAE,GAAG;IAAS,oBAAoB;IAAM,CAAC;GAEhE,MAAM,OAAO,MAAM,QAAQ,QAAQ;IACjC,QAAQ;IACR,QAAQ,IAAI;IACb,CAAC;GAEF,MAAM,QAAQ,CAAC,GAAG,QAAQ,OAAO,KAAK;GACtC,MAAM,cAAc,CAAC,GAAG,QAAQ,aAAa,WAAW;AAExD,OAAI,mBAAmB,YAAY,OAAO,YAAY,CAAC;;EAE1D;AAED,KAAI,QAAQ,cAAc,KACxB,QAAO,aAAa,QAAQ;AAE9B,KAAI,QAAQ,eAAe,KACzB,QAAO,cAAc,QAAQ;AAE/B,KAAI,QAAQ,SAAS,KACnB,QAAO,QAAQ,QAAQ;AAEzB,KAAI,QAAQ,cAAc,KACxB,QAAO,aAAa,QAAQ;AAE9B,KAAI,QAAQ,gBAAgB,KAC1B,QAAO,eAAe,QAAQ;AAGhC,QAAO,KAAK,OAAO"}
@@ -1,4 +1,4 @@
1
- import { h as WritableAtom, i as Mutation, n as StoreClient, o as Atom, t as Store } from "../store-DUIAp1x7.js";
1
+ import { g as WritableAtom, i as Mutation, n as StoreClient, o as Atom, t as Store } from "../store-CkSajQlZ.js";
2
2
  import { ComponentChildren, VNode } from "preact";
3
3
 
4
4
  //#region src/preact/provider.d.ts
@@ -1,4 +1,4 @@
1
- import { h as WritableAtom, i as Mutation, n as StoreClient, o as Atom, t as Store } from "../store-DUIAp1x7.js";
1
+ import { g as WritableAtom, i as Mutation, n as StoreClient, o as Atom, t as Store } from "../store-CkSajQlZ.js";
2
2
  import { ReactNode } from "react";
3
3
 
4
4
  //#region src/react/provider.d.ts
@@ -36,9 +36,12 @@ interface WritableAtomContext<Deps extends Record<string, Atom<unknown>>, Value>
36
36
  setOptimisticValue(mutate: (prev: Value | undefined) => Value): void;
37
37
  getPreviousValue(): Value | undefined;
38
38
  }
39
+ type RetryDelay = number | ((attemptIndex: number) => number);
39
40
  type AtomConfig<Value, Deps extends Record<string, Atom<unknown>>, Args extends readonly unknown[]> = {
40
41
  dependencies?: Deps;
41
42
  stalePolicy?: StalePolicy;
43
+ retry?: boolean | number;
44
+ retryDelay?: RetryDelay;
42
45
  debugLabel?: string;
43
46
  get: (ctx: AtomContext<Deps>) => Promise<Value>;
44
47
  set?: (ctx: WritableAtomContext<Deps, Value>, ...args: Args) => Promise<void>;
@@ -47,6 +50,8 @@ type AtomConfig<Value, Deps extends Record<string, Atom<unknown>>, Args extends
47
50
  interface InternalAtomConfig<Value> {
48
51
  dependencies?: Record<string, Atom<unknown>>;
49
52
  stalePolicy?: StalePolicy;
53
+ retry?: boolean | number;
54
+ retryDelay?: RetryDelay;
50
55
  debugLabel?: string;
51
56
  get: (ctx: AtomContext<Record<string, Atom<unknown>>>) => Promise<Value>;
52
57
  set?: (ctx: WritableAtomContext<Record<string, Atom<unknown>>, any>, ...args: readonly unknown[]) => Promise<void>;
@@ -97,5 +102,5 @@ declare class Store {
97
102
  }
98
103
  declare function createStore(): Store;
99
104
  //#endregion
100
- export { mutation as a, AtomConfig as c, AtomValue as d, IsWritable as f, WritableAtomContext as g, WritableAtom as h, Mutation as i, AtomContext as l, StalePolicy as m, StoreClient as n, Atom as o, MutationContext as p, createStore as r, AtomArgs as s, Store as t, AtomState as u };
101
- //# sourceMappingURL=store-DUIAp1x7.d.ts.map
105
+ export { WritableAtomContext as _, mutation as a, AtomConfig as c, AtomValue as d, IsWritable as f, WritableAtom as g, StalePolicy as h, Mutation as i, AtomContext as l, RetryDelay as m, StoreClient as n, Atom as o, MutationContext as p, createStore as r, AtomArgs as s, Store as t, AtomState as u };
106
+ //# sourceMappingURL=store-CkSajQlZ.d.ts.map
@@ -6,6 +6,8 @@ function atom(config) {
6
6
  if (config.debugLabel != null) internal.debugLabel = config.debugLabel;
7
7
  if (config.dependencies != null) internal.dependencies = config.dependencies;
8
8
  if (config.stalePolicy != null) internal.stalePolicy = config.stalePolicy;
9
+ if (config.retry != null) internal.retry = config.retry;
10
+ if (config.retryDelay != null) internal.retryDelay = config.retryDelay;
9
11
  if (config.set != null) internal.set = config.set;
10
12
  if (config.onMount != null) internal.onMount = config.onMount;
11
13
  if (config.set != null) return {
@@ -297,6 +299,8 @@ function atomFamily(options) {
297
299
  if (label != null) base.debugLabel = label;
298
300
  if (deps != null) base.dependencies = deps;
299
301
  if (options.stalePolicy != null) base.stalePolicy = options.stalePolicy;
302
+ if (options.retry != null) base.retry = options.retry;
303
+ if (options.retryDelay != null) base.retryDelay = options.retryDelay;
300
304
  if (setFn != null) {
301
305
  base.set = setFn;
302
306
  return atom(base);
@@ -368,35 +372,46 @@ var Store = class {
368
372
  const config = atom[CONFIG];
369
373
  const dependencies = config.dependencies;
370
374
  const stalePolicy = config.stalePolicy ?? "keep";
375
+ const retryCount = normalizeRetry(config.retry);
376
+ const retryDelay = config.retryDelay ?? 0;
371
377
  const entry = this.#getOrCreate(atom);
372
378
  if (dependencies != null) {
373
379
  await Promise.all(Object.values(dependencies).map((dep) => this.resolve(dep)));
374
380
  this.#registerRdeps(atom, dependencies);
375
381
  }
376
382
  const ctx = this.#makeCtx(atom, dependencies ?? {});
377
- try {
378
- const value = await config.get(ctx);
379
- if (ctx.signal.aborted) throw new DOMException("The operation was aborted", "AbortError");
380
- entry.state = {
381
- status: "fresh",
382
- value,
383
- error: void 0
384
- };
385
- entry.version++;
386
- this.#scheduleNotify(atom);
387
- return value;
388
- } catch (e) {
389
- if (isAbortError(e)) throw e;
390
- const prevValue = extractPreviousValue(entry.state);
391
- entry.state = {
392
- status: "error",
393
- value: stalePolicy === "keep" ? prevValue : void 0,
394
- error: e
395
- };
396
- entry.version++;
397
- this.#scheduleNotify(atom);
398
- throw e;
383
+ let lastError;
384
+ for (let attempt = 0; attempt <= retryCount; attempt++) {
385
+ if (attempt > 0) {
386
+ if (ctx.signal.aborted) throw new DOMException("The operation was aborted", "AbortError");
387
+ const delay = typeof retryDelay === "function" ? retryDelay(attempt - 1) : retryDelay;
388
+ if (delay > 0) await abortableDelay(delay, ctx.signal);
389
+ }
390
+ try {
391
+ const value = await config.get(ctx);
392
+ if (ctx.signal.aborted) throw new DOMException("The operation was aborted", "AbortError");
393
+ entry.state = {
394
+ status: "fresh",
395
+ value,
396
+ error: void 0
397
+ };
398
+ entry.version++;
399
+ this.#scheduleNotify(atom);
400
+ return value;
401
+ } catch (e) {
402
+ if (isAbortError(e)) throw e;
403
+ lastError = e;
404
+ }
399
405
  }
406
+ const prevValue = extractPreviousValue(entry.state);
407
+ entry.state = {
408
+ status: "error",
409
+ value: stalePolicy === "keep" ? prevValue : void 0,
410
+ error: lastError
411
+ };
412
+ entry.version++;
413
+ this.#scheduleNotify(atom);
414
+ throw lastError;
400
415
  }
401
416
  invalidate(atom) {
402
417
  this.#markStale(atom);
@@ -657,6 +672,25 @@ var Store = class {
657
672
  function createStore() {
658
673
  return new Store();
659
674
  }
675
+ const DEFAULT_RETRY = 3;
676
+ function normalizeRetry(value) {
677
+ if (value == null || value === false) return 0;
678
+ if (value === true) return DEFAULT_RETRY;
679
+ return Math.max(0, Math.floor(value));
680
+ }
681
+ function abortableDelay(ms, signal) {
682
+ return new Promise((resolve, reject) => {
683
+ if (signal.aborted) {
684
+ reject(new DOMException("The operation was aborted", "AbortError"));
685
+ return;
686
+ }
687
+ const timer = setTimeout(resolve, ms);
688
+ signal.addEventListener("abort", () => {
689
+ clearTimeout(timer);
690
+ reject(new DOMException("The operation was aborted", "AbortError"));
691
+ }, { once: true });
692
+ });
693
+ }
660
694
  function isAbortError(e) {
661
695
  return e instanceof DOMException && e.name === "AbortError";
662
696
  }
@@ -667,4 +701,4 @@ function extractPreviousValue(state) {
667
701
  //#endregion
668
702
  export { microtaskScheduler as a, atom as c, maxBatchSizeScheduler as i, mutation as n, windowScheduler as o, atomFamily as r, windowedFiniteBatchScheduler as s, createStore as t };
669
703
 
670
- //# sourceMappingURL=store-gE1mKZy1.js.map
704
+ //# sourceMappingURL=store-DhEeznqs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store-DhEeznqs.js","names":["#maxSize","#nodeMap","#valueMap","#head","#tail","#moveToMru","#insertBeforeTail","#evict","#detach","#fetch","#scheduler","#queue","#keySet","#flush","#atoms","#rdeps","#pending","#controllers","#familyUnsubs","#registeredFamilies","#getOrCreate","#runGet","#registerRdeps","#makeCtx","#scheduleNotify","#markStale","#schedulePendingFlush","#flushScheduled","#flushPending","#markReverseDependentsStale","#autoRegisterFamily","#relatedOptimisticWrite","#rollbackRelatedSnapshots","#client"],"sources":["../src/internal/atom.ts","../src/internal/lru-cache.ts","../src/internal/family-batch-schedulers.ts","../src/internal/family-batch.ts","../src/internal/family.ts","../src/internal/mutation.ts","../src/internal/store.ts"],"mappings":";;AAgCA,SAAgB,KAId,QAAoD;CACpD,MAAM,WAAsC,OAAO,OAAO,KAAK;AAC/D,UAAS,MAAM,OAAO;AAEtB,KAAI,OAAO,cAAc,KACvB,UAAS,aAAa,OAAO;AAE/B,KAAI,OAAO,gBAAgB,KACzB,UAAS,eAAe,OAAO;AAEjC,KAAI,OAAO,eAAe,KACxB,UAAS,cAAc,OAAO;AAEhC,KAAI,OAAO,SAAS,KAClB,UAAS,QAAQ,OAAO;AAE1B,KAAI,OAAO,cAAc,KACvB,UAAS,aAAa,OAAO;AAE/B,KAAI,OAAO,OAAO,KAChB,UAAS,MAAM,OAAO;AAExB,KAAI,OAAO,WAAW,KACpB,UAAS,UAAU,OAAO;AAG5B,KAAI,OAAO,OAAO,KAChB,QAAO;GACJ,SAAS;GACT,WAAW,EAAE;EACd,YAAY,OAAO;EACpB;AAGH,QAAO;GACJ,SAAS;EACV,YAAY,OAAO;EACpB;;;;;;;;;;;AC5DH,IAAa,WAAb,MAA4B;CAC1B;CACA,2BAAoB,IAAI,KAAoB;CAC5C,4BAAqB,IAAI,KAAW;CACpC;CACA;CAEA,YAAY,SAAiB;AAC3B,QAAA,UAAgB;AAChB,QAAA,OAAa;GAAE,KAAK,KAAA;GAA2B,MAAM;GAAM,MAAM;GAAM;AACvE,QAAA,OAAa;GAAE,KAAK,KAAA;GAA2B,MAAM,MAAA;GAAY,MAAM;GAAM;AAC7E,QAAA,KAAW,OAAO,MAAA;;;CAIpB,IAAI,KAAuB;EACzB,MAAM,OAAO,MAAA,QAAc,IAAI,IAAI;AACnC,MAAI,QAAQ,KACV;AAEF,QAAA,UAAgB,KAAK;AACrB,SAAO,MAAA,SAAe,IAAI,IAAI;;;CAIhC,KAAK,KAAuB;AAC1B,SAAO,MAAA,SAAe,IAAI,IAAI;;;CAIhC,IAAI,KAAQ,OAAgB;EAC1B,MAAM,WAAW,MAAA,QAAc,IAAI,IAAI;AACvC,MAAI,YAAY,MAAM;AACpB,SAAA,SAAe,IAAI,KAAK,MAAM;AAC9B,SAAA,UAAgB,SAAS;AACzB;;EAGF,MAAM,OAAmB;GAAE;GAAK,MAAM;GAAM,MAAM;GAAM;AACxD,QAAA,QAAc,IAAI,KAAK,KAAK;AAC5B,QAAA,SAAe,IAAI,KAAK,MAAM;AAC9B,QAAA,iBAAuB,KAAK;AAC5B,QAAA,OAAa;;CAGf,OAAO,KAAc;EACnB,MAAM,OAAO,MAAA,QAAc,IAAI,IAAI;AACnC,MAAI,QAAQ,KACV;AAEF,QAAA,OAAa,KAAK;AAClB,QAAA,QAAc,OAAO,IAAI;AACzB,QAAA,SAAe,OAAO,IAAI;;CAG5B,SAA8B;AAC5B,SAAO,MAAA,SAAe,QAAQ;;;CAIhC,gBAAmC;AACjC,SAAO,MAAA;;CAGT,WAAW,MAAwB;AACjC,QAAA,OAAa,KAAK;AAClB,QAAA,iBAAuB,KAAK;;CAG9B,QAAQ,MAAwB;EAC9B,MAAM,EAAE,MAAM,SAAS;AACvB,MAAI,QAAQ,QAAQ,QAAQ,KAC1B;AAEF,OAAK,OAAO;AACZ,OAAK,OAAO;;CAGd,kBAAkB,MAAwB;EACxC,MAAM,SAAS,MAAA,KAAW;AAC1B,MAAI,UAAU,KACZ;AAEF,SAAO,OAAO;AACd,OAAK,OAAO;AACZ,OAAK,OAAO,MAAA;AACZ,QAAA,KAAW,OAAO;;CAGpB,SAAe;AACb,MAAI,CAAC,OAAO,SAAS,MAAA,QAAc,CACjC;AAEF,SAAO,MAAA,QAAc,OAAO,MAAA,SAAe;GACzC,MAAM,SAAS,MAAA,KAAW;AAC1B,OAAI,UAAU,KACZ;AAEF,SAAA,OAAa,OAAO;AACpB,SAAA,QAAc,OAAO,OAAO,IAAI;AAChC,SAAA,SAAe,OAAO,OAAO,IAAI;;;;;;ACxGvC,SAAgB,qBAAqC;CACnD,IAAI,YAAY;AAChB,QAAO;EACL,SAAS,OAAO;AACd,OAAI,CAAC,WAAW;AACd,gBAAY;AACZ,mBAAe,MAAM;;;EAGzB,QAAQ;AACN,eAAY;;EAEf;;AAGH,SAAgB,gBAAgB,IAA4B;CAC1D,IAAI,QAA8C;AAClD,QAAO;EACL,SAAS,OAAO;AACd,OAAI,SAAS,KACX,SAAQ,WAAW,OAAO,GAAG;;EAGjC,QAAQ;AACN,OAAI,SAAS,MAAM;AACjB,iBAAa,MAAM;AACnB,YAAQ;;;EAGb;;AAGH,SAAgB,sBAAsB,SAAiC;AACrE,QAAO;EACL,SAAS,OAAO,SAAS;AACvB,OAAI,QAAQ,gBAAgB,QAC1B,QAAO;;EAGX,QAAQ;EACT;;AAGH,SAAgB,6BAA6B,IAAY,SAAiC;CACxF,IAAI,QAA8C;AAClD,QAAO;EACL,SAAS,OAAO,SAAS;AACvB,OAAI,QAAQ,gBAAgB,SAAS;AACnC,QAAI,SAAS,MAAM;AACjB,kBAAa,MAAM;AACnB,aAAQ;;AAEV,WAAO;AACP;;AAEF,OAAI,SAAS,KACX,SAAQ,WAAW,OAAO,GAAG;;EAGjC,QAAQ;AACN,OAAI,SAAS,MAAM;AACjB,iBAAa,MAAM;AACnB,YAAQ;;;EAGb;;;;ACtDH,IAAa,mBAAb,MAAiD;CAC/C;CAGA;CACA,SAAqC,EAAE;CACvC,0BAAU,IAAI,KAAU;CAExB,YACE,OAGA,WACA;AACA,QAAA,QAAc;AACd,QAAA,YAAkB,aAAa,oBAAoB;;CAGrD,QACE,KACA,OACA,KACA,QACgB;AAChB,SAAO,IAAI,SAAgB,SAAS,WAAW;AAC7C,SAAA,MAAY,KAAK;IACf;IACA;IACA;IACS;IACT;IACA;IACD,CAAC;AACF,SAAA,OAAa,IAAI,IAAI;AAErB,SAAA,UAAgB,eAAe,MAAA,OAAa,EAAE,EAC5C,cAAc,MAAA,OAAa,MAC5B,CAAC;IACF;;CAGJ,SAAe;AACb,MAAI,MAAA,MAAY,WAAW,EACzB;EAGF,MAAM,UAAU,MAAA;AAChB,QAAA,QAAc,EAAE;AAChB,QAAA,yBAAe,IAAI,KAAK;AACxB,QAAA,UAAgB,OAAO;EAEvB,MAAM,aAAoB,EAAE;EAC5B,MAAM,eAAwB,EAAE;EAChC,MAAM,uBAAO,IAAI,KAAU;AAC3B,OAAK,MAAM,SAAS,QAClB,KAAI,CAAC,KAAK,IAAI,MAAM,IAAI,EAAE;AACxB,QAAK,IAAI,MAAM,IAAI;AACnB,cAAW,KAAK,MAAM,IAAI;AAC1B,gBAAa,KAAK,MAAM,MAAM;;EAKlC,MAAM,aAAa,QAAQ;AAC3B,MAAI,cAAc,KAChB;EAEF,MAAM,WAAW,WAAW;EAE5B,MAAM,aAAa,IAAI,iBAAiB;EACxC,IAAI,eAAe;AAEnB,OAAK,MAAM,SAAS,QAClB,KAAI,MAAM,OAAO,QACf;MAEA,OAAM,OAAO,iBACX,eACM;AACJ;AACA,OAAI,iBAAiB,QAAQ,OAC3B,YAAW,OAAO;KAGtB,EAAE,MAAM,MAAM,CACf;AAIL,MAAI,iBAAiB,QAAQ,OAC3B,YAAW,OAAO;AAGf,QAAA,MAAY;GACf,MAAM;GACN,QAAQ;GACR,QAAQ,WAAW;GACnB,KAAK;GACN,CAAC,CAAC,MACA,cAAc;AACb,QAAK,MAAM,SAAS,QAClB,KAAI,MAAM,OAAO,QACf,OAAM,OAAO,IAAI,aAAa,6BAA6B,aAAa,CAAC;YAChE,UAAU,IAAI,MAAM,IAAI,CACjC,OAAM,QAAQ,UAAU,IAAI,MAAM,IAAI,CAAC;OAEvC,OAAM,uBACJ,IAAI,MAAM,+CAA+C,OAAO,MAAM,IAAI,GAAG,CAC9E;MAIN,UAAmB;AAClB,QAAK,MAAM,SAAS,QAClB,OAAM,OAAO,MAAM;IAGxB;;;;;AChDL,SAAgB,cAAc,QAA+C;AAC3E,QAAQ,OAA6D;;AAGvE,SAAgB,WAMd,SAA0F;CAE1F,MAAM,QAAQ,IAAI,SADF,QAAQ,gBAAgB,QAAS,QAAQ,WAAW,MAAO,SACtB;CACrD,MAAM,iCAAiB,IAAI,KAAoC;CAE/D,MAAM,cACJ,QAAQ,SAAS,OACb,IAAI,iBACF,QAAQ,MAAM,OAGd,QAAQ,MAAM,UACf,GACD;CAEN,SAAS,MAAM,OAAmB;AAChC,SAAO,QAAQ,YAAY,OAAO,QAAQ,SAAS,MAAM,GAAI;;CAG/D,MAAM,OAAmB;EACvB,eAAe,QAA6B;AAC1C,QAAK,MAAM,MAAM,eACf,IAAG,OAAO;;EAGd,cAAc,IAA+C;AAC3D,kBAAe,IAAI,GAAG;AACtB,gBAAa;AACX,mBAAe,OAAO,GAAG;;;EAG9B;CAED,SAAS,WAAW,QAA2B;AAC5C,SAAiD,eAAe;;CAGnE,SAAS,YAAY,OAA2B;EAC9C,MAAM,MAAM,MAAM,MAAM;EACxB,MAAM,SAAS,MAAM,IAAI,IAAI;AAC7B,MAAI,UAAU,KACZ,QAAO;EAGT,IAAI;EACJ,IAAI;EACJ,IAAI;AAIJ,MAAI,eAAe,MAAM;AACvB,UAAQ,QAA4D,gBAAgB;AACpF,YAAS,QACP,YAAY,QACV,KACA,OACA,KACA,IAAI,OACL;AACH,WAAQ,KAAA;SACH;GACL,MAAM,UAAU;AAChB,UAAO,QAAQ,eAAe,MAAM;AACpC,WAAQ,QAAQ,IAAI,MAAM;AAC1B,WAAQ,QAAQ,MAAM,MAAM;;EAG9B,MAAM,cAAc,QAAQ,YAAY,OAAO,OAAO,IAAI,GAAG,OAAO,MAAM;EAG1E,MAAM,UAAU,WAFF,QAAQ,cAAc,OAAO,GAAG,QAAQ,WAAW,GAAG,YAAY,KAAK,KAAA,GAEnD,MAAM,OAAO,MAAM;AACrD,aAAW,QAAQ;AACnB,QAAM,IAAI,KAAK,QAAQ;AAEvB,SAAO;;CAGT,SAAS,WACP,OACA,MACA,OACA,OACa;EACb,MAAM,OAAO,EACX,KAAK,OACN;AAUD,MAAI,SAAS,KACX,MAAK,aAAa;AAEpB,MAAI,QAAQ,KACV,MAAK,eAAe;AAEtB,MAAI,QAAQ,eAAe,KACzB,MAAK,cAAc,QAAQ;AAE7B,MAAI,QAAQ,SAAS,KACnB,MAAK,QAAQ,QAAQ;AAEvB,MAAI,QAAQ,cAAc,KACxB,MAAK,aAAa,QAAQ;AAG5B,MAAI,SAAS,MAAM;AACjB,QAAK,MAAM;AACX,UAAO,KACL,KAGD;;AAGH,SAAO,KAAK,KAAiC;;CAG/C,MAAM,SAAS;AAEf,QAAO,cAAc,UAAuB;EAC1C,MAAM,SAAS,MAAM,KAAK,MAAM,MAAM,CAAC;AACvC,MAAI,UAAU,KACZ,MAAK,eAAe,OAAO;;AAI/B,QAAO,sBAA4B;AACjC,OAAK,MAAM,UAAU,MAAM,QAAQ,CACjC,MAAK,eAAe,OAAO;;AAI/B,QAAO,UAAU,UAAuB;AACtC,QAAM,OAAO,MAAM,MAAM,CAAC;;AAG5B,QAAO,iBAAgD,MAAM,eAAe;AAE5E,QAAO;;;;ACjPT,MAAa,eAAe,OAAO,oBAAoB;AAMvD,SAAgB,SACd,IACgB;AAChB,QAAO,GAAG,eAAe,IAAI;;;;AC0B/B,MAAM,gBAAkC;CACtC,QAAQ;CACR,OAAO,KAAA;CACP,OAAO,KAAA;CACR;AAED,IAAa,QAAb,MAAmB;CACjB,yBAAkB,IAAI,SAA4C;CAClE,yBAAkB,IAAI,KAAwC;CAC9D,2BAAoB,IAAI,KAAoB;CAC5C,+BAAwB,IAAI,SAAyC;CACrE,gCAAyB,IAAI,KAAiB;CAC9C,sCAA+B,IAAI,SAAiB;CACpD,UAA8B;CAC9B,kBAAkB;CAElB,aAAgB,MAA6B;EAC3C,IAAI,QAAQ,MAAA,MAAY,IAAI,KAAK;AACjC,MAAI,SAAS,MAAM;AACjB,WAAQ;IACN,OAAO;IACP,SAAS;IACT,SAAS;IACT,2BAAW,IAAI,KAAK;IACpB,YAAY;IACZ,SAAS;IACV;AACD,SAAA,MAAY,IAAI,MAAM,MAA4B;;AAEpD,SAAO;;CAGT,QAAW,MAA2B;EACpC,MAAM,QAAQ,MAAA,YAAkB,KAAK;AACrC,MAAI,MAAM,WAAW,KACnB,QAAO,MAAM;EAGf,MAAM,UAAU,MAAA,OAAa,KAAK,CAAC,cAAc;GAC/C,MAAM,IAAI,MAAA,MAAY,IAAI,KAAK;AAC/B,OAAI,KAAK,KACP,GAAE,UAAU;IAEd;AACF,QAAM,UAAU;AAChB,SAAO;;CAGT,OAAA,OAAiB,MAA2B;EAC1C,MAAM,SAAgC,KAAK;EAC3C,MAAM,eAAe,OAAO;EAC5B,MAAM,cAA2B,OAAO,eAAe;EACvD,MAAM,aAAa,eAAe,OAAO,MAAM;EAC/C,MAAM,aAAa,OAAO,cAAc;EACxC,MAAM,QAAQ,MAAA,YAAkB,KAAK;AAErC,MAAI,gBAAgB,MAAM;AACxB,SAAM,QAAQ,IAAI,OAAO,OAAO,aAAa,CAAC,KAAK,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC;AAC9E,SAAA,cAAoB,MAAM,aAAa;;EAGzC,MAAM,MAAM,MAAA,QAAc,MAAM,gBAAgB,EAAE,CAAC;EAEnD,IAAI;AACJ,OAAK,IAAI,UAAU,GAAG,WAAW,YAAY,WAAW;AACtD,OAAI,UAAU,GAAG;AACf,QAAI,IAAI,OAAO,QACb,OAAM,IAAI,aAAa,6BAA6B,aAAa;IAEnE,MAAM,QAAQ,OAAO,eAAe,aAAa,WAAW,UAAU,EAAE,GAAG;AAC3E,QAAI,QAAQ,EACV,OAAM,eAAe,OAAO,IAAI,OAAO;;AAI3C,OAAI;IACF,MAAM,QAAQ,MAAM,OAAO,IAAI,IAAI;AACnC,QAAI,IAAI,OAAO,QACb,OAAM,IAAI,aAAa,6BAA6B,aAAa;AAEnE,UAAM,QAAQ;KAAE,QAAQ;KAAS;KAAO,OAAO,KAAA;KAAW;AAC1D,UAAM;AACN,UAAA,eAAqB,KAAK;AAC1B,WAAO;YACA,GAAY;AACnB,QAAI,aAAa,EAAE,CACjB,OAAM;AAER,gBAAY;;;EAIhB,MAAM,YAAY,qBAAwB,MAAM,MAAM;AACtD,QAAM,QAAQ;GACZ,QAAQ;GACR,OAAO,gBAAgB,SAAS,YAAY,KAAA;GAC5C,OAAO;GACR;AACD,QAAM;AACN,QAAA,eAAqB,KAAK;AAC1B,QAAM;;CAGR,WAAW,MAA2B;AACpC,QAAA,UAAgB,KAAK;AACrB,QAAA,QAAc,IAAI,KAAK;AACvB,QAAA,sBAA4B;;CAG9B,eAAe,OAA2C;AACxD,OAAK,MAAM,KAAK,OAAO;AACrB,SAAA,UAAgB,EAAE;AAClB,SAAA,QAAc,IAAI,EAAE;;AAEtB,MAAI,MAAA,QAAc,OAAO,EACvB,OAAA,sBAA4B;;CAIhC,WAAW,MAAqB,0BAAU,IAAI,KAAoB,EAAQ;AACxE,MAAI,QAAQ,IAAI,KAAK,CACnB;AAEF,UAAQ,IAAI,KAAK;EAEjB,MAAM,QAAQ,MAAA,MAAY,IAAI,KAAK;AACnC,MAAI,SAAS,MAAM;GACjB,MAAM,cAA2B,KAAK,QAAQ,eAAe;AAE7D,OAAI,MAAM,MAAM,WAAW,QACzB,KAAI,gBAAgB,QAClB,OAAM,QAAQ;OAEd,OAAM,QAAQ;IAAE,GAAG,MAAM;IAAO,QAAQ;IAAS;AAIrD,SAAM,UAAU;AAChB,SAAA,YAAkB,IAAI,KAAK,EAAE,OAAO;;EAGtC,MAAM,QAAQ,MAAA,MAAY,IAAI,KAAK;AACnC,MAAI,SAAS,KACX,MAAK,MAAM,OAAO,MAChB,OAAA,UAAgB,KAAK,QAAQ;;CAKnC,4BAA4B,MAA2B;EACrD,MAAM,QAAQ,MAAA,MAAY,IAAI,KAAK;AACnC,MAAI,SAAS,MAAM;GACjB,MAAM,UAAU,IAAI,IAAmB,CAAC,KAAK,CAAC;AAC9C,QAAK,MAAM,OAAO,OAAO;AACvB,UAAA,UAAgB,KAAK,QAAQ;AAC7B,UAAA,QAAc,IAAI,IAAI;;;;CAK5B,gBAAsB;EACpB,MAAM,QAAQ,CAAC,GAAG,MAAA,QAAc;AAChC,QAAA,QAAc,OAAO;EACrB,MAAM,2BAAW,IAAI,KAAiB;AACtC,OAAK,MAAM,KAAK,OAAO;GACrB,MAAM,QAAQ,MAAA,MAAY,IAAI,EAAE;AAChC,OAAI,SAAS,KACX,MAAK,MAAM,KAAK,MAAM,UACpB,UAAS,IAAI,EAAE;;AAIrB,OAAK,MAAM,KAAK,SACd,IAAG;;CAIP,wBAA8B;AAC5B,MAAI,CAAC,MAAA,gBAAsB;AACzB,SAAA,iBAAuB;AACvB,wBAAqB;AACnB,UAAA,iBAAuB;AACvB,UAAA,cAAoB;KACpB;;;CAIN,gBAAgB,MAA2B;AACzC,QAAA,QAAc,IAAI,KAAK;AACvB,QAAA,sBAA4B;;CAG9B,wBACE,QACA,eACA,kBACM;EACN,MAAM,cAAc,MAAA,YAAkB,OAAO;AAC7C,MAAI,CAAC,iBAAiB,IAAI,OAAO,CAC/B,kBAAiB,IAAI,QAAQ;GAAE,OAAO,YAAY;GAAO,SAAS,YAAY;GAAS,CAAC;AAE1F,QAAA,YAAkB,IAAI,OAAO,EAAE,OAAO;AACtC,cAAY,UAAU;AAKtB,cAAY,QAAQ;GAAE,QAAQ;GAAS,OAHrC,OAAO,kBAAkB,aACpB,cAA6C,qBAAqB,YAAY,MAAM,CAAC,GACtF;GAC8C,OAAO,KAAA;GAAW;AACtE,cAAY;AACZ,QAAA,eAAqB,OAAO;AAC5B,QAAA,2BAAiC,OAAO;;CAG1C,0BACE,kBACM;AACN,OAAK,MAAM,CAAC,QAAQ,eAAe,kBAAkB;GACnD,MAAM,cAAc,MAAA,MAAY,IAAI,OAAO;AAC3C,OAAI,eAAe,MAAM;AACvB,gBAAY,QAAQ,WAAW;AAC/B,gBAAY,UAAU,WAAW;AACjC,UAAA,eAAqB,OAAO;;;;CAKlC,eAAe,MAAqB,MAA2C;AAC7E,OAAK,MAAM,OAAO,OAAO,OAAO,KAAK,EAAE;GACrC,IAAI,MAAM,MAAA,MAAY,IAAI,IAAI;AAC9B,OAAI,OAAO,MAAM;AACf,0BAAM,IAAI,KAAK;AACf,UAAA,MAAY,IAAI,KAAK,IAAI;;AAE3B,OAAI,IAAI,KAAK;;;CAIjB,SACE,MACA,MAC4C;AAC5C,QAAA,YAAkB,IAAI,KAAK,EAAE,OAAO;EACpC,MAAM,aAAa,IAAI,iBAAiB;AACxC,QAAA,YAAkB,IAAI,MAAM,WAAW;AAEvC,SAAO;GACL,QAAQ,WAAW;GACnB,KAAK,OAAO,QAAgB;IAC1B,MAAM,MAAM,KAAK;AACjB,QAAI,OAAO,KACT,OAAM,IAAI,MAAM,4BAA4B,OAAO,IAAI,CAAC,GAAG;AAE7D,WAAO,KAAK,QAAQ,IAAI;;GAE1B,wBAAiC;AAC/B,WAAO,qBAAqB,MAAA,YAAkB,KAAK,CAAC,MAAM;;GAE7D;;CAGH,UAAa,MAAe,UAAkC;EAC5D,MAAM,QAAQ,MAAA,YAAkB,KAAK;AACrC,QAAM,UAAU,IAAI,SAAS;AAE7B,QAAA,mBAAyB,KAAK;AAE9B,MAAI,MAAM,MAAM,WAAW,aAAa,MAAM,WAAW,KAClD,MAAK,QAAQ,KAAK;AAGzB,QAAM;AACN,MAAI,MAAM,eAAe,GAAG;GAC1B,MAAM,SAAgC,KAAK;AAC3C,OAAI,OAAO,WAAW,MAAM;IAC1B,MAAM,YAAY,UAAmB;AACnC,WAAM,QAAQ;MAAE,QAAQ;MAAS;MAAO,OAAO,KAAA;MAAW;AAC1D,WAAM;AACN,WAAA,eAAqB,KAAK;;IAE5B,MAAM,UAAU,OAAO,QAAQ,SAAqC;AACpE,QAAI,OAAO,YAAY,WACrB,OAAM,UAAU;;;AAKtB,eAAa;AACX,SAAM,UAAU,OAAO,SAAS;AAChC,SAAM;AACN,OAAI,MAAM,eAAe,KAAK,MAAM,WAAW,MAAM;AACnD,UAAM,SAAS;AACf,UAAM,UAAU;;;;CAKtB,oBAAoB,MAA2B;EAC7C,MAAM,OAAO,cAAc,KAAK;AAChC,MAAI,QAAQ,KACV;AAEF,MAAI,MAAA,mBAAyB,IAAI,KAAK,CACpC;AAEF,QAAA,mBAAyB,IAAI,KAAK;EAClC,MAAM,QAAQ,KAAK,eAAe,WAA0B;AAC1D,QAAK,WAAW,OAAO;IACvB;AACF,QAAA,aAAmB,IAAI,MAAM;;CAG/B,YAAe,MAA6B;AAC1C,SAAO,MAAA,YAAkB,KAAK,CAAC;;CAGjC,kBAAqB,MAA6B;EAChD,MAAM,QAAQ,MAAA,MAAY,IAAI,KAAK;AACnC,MAAI,SAAS,KACX,QAAO,MAAM;AAEf,SAAO;;CAGT,MAAM,IACJ,MACA,GAAG,MACY;EACf,MAAM,SAAgC,KAAK;AAC3C,MAAI,OAAO,OAAO,KAChB,OAAM,IAAI,MACR,OAAO,KAAK,cAAc,OAAO,KAAK,KAAK,WAAW,KAAK,GAAG,kBAC/D;EAGH,MAAM,OAAO,OAAO,gBAAgB,EAAE;EACtC,MAAM,UAAU,MAAA,QAAc,MAAM,KAAK;EACzC,MAAM,QAAQ,MAAA,YAAkB,KAAK;EAErC,MAAM,qBAEF,EAAE,SAAS,MAAM;EACrB,MAAM,mCAAmB,IAAI,KAG1B;EAEH,MAAM,MAA6D;GACjE,GAAG;GACH,wBAAuC;AACrC,WAAO,qBAAwB,MAAM,MAAM;;GAE7C,qBAAqB,kBAA0D;AAC7E,QAAI,mBAAmB,WAAW,KAChC,oBAAmB,UAAU;KAAE,OAAO,MAAM;KAAO,SAAS,MAAM;KAAS;AAM7E,UAAM,QAAQ;KAAE,QAAQ;KAAS,OAH/B,OAAO,kBAAkB,aACpB,cAA6C,qBAAqB,MAAM,MAAM,CAAC,GAChF;KACwC,OAAO,KAAA;KAAW;AAChE,UAAM;AACN,UAAA,eAAqB,KAAK;AAC1B,UAAA,2BAAiC,KAAK;;GAExC,kBACE,QACA,kBACS;AACT,UAAA,uBAA6B,QAAQ,eAAe,iBAAiB;;GAEvE,aAAa,WAAgC,KAAK,WAAW,OAAO;GACpE,iBAAiB,YAAgD,KAAK,eAAe,QAAQ;GAC9F;AAED,MAAI;AACF,SAAM,OAAO,IAAI,KAAK,GAAG,KAAK;WACvB,GAAY;GACnB,MAAM,OAAO,mBAAmB;AAChC,OAAI,QAAQ,MAAM;AAChB,UAAM,QAAQ,KAAK;AACnB,UAAM,UAAU,KAAK;AACrB,UAAA,eAAqB,KAAK;;AAE5B,SAAA,yBAA+B,iBAAiB;AAChD,SAAM;;AAGR,OAAK,WAAW,KAAK;;CAGvB,MAAM,OACJ,UACA,GAAG,MACY;EACf,MAAM,mCAAmB,IAAI,KAG1B;EAEH,MAAM,MAAuB;GAC3B,kBACE,QACA,kBACS;AACT,UAAA,uBAA6B,QAAQ,eAAe,iBAAiB;;GAEvE,aAAa,WAAgC,KAAK,WAAW,OAAO;GACpE,iBAAiB,YAAgD,KAAK,eAAe,QAAQ;GAC9F;AAED,MAAI;AACF,SAAM,SAAS,cAAc,KAAK,GAAG,KAAK;WACnC,GAAY;AACnB,SAAA,yBAA+B,iBAAiB;AAChD,SAAM;;;CAMV,MAAS,MAAe,eAAuD;EAC7E,MAAM,QAAQ,MAAA,YAAkB,KAAK;AACrC,QAAA,YAAkB,IAAI,KAAK,EAAE,OAAO;AACpC,QAAM,UAAU;AAKhB,QAAM,QAAQ;GAAE,QAAQ;GAAS,OAH/B,OAAO,kBAAkB,aACpB,cAA6C,qBAAqB,MAAM,MAAM,CAAC,GAChF;GACwC,OAAO,KAAA;GAAW;AAChE,QAAM;AACN,QAAA,eAAqB,KAAK;AAC1B,QAAA,2BAAiC,KAAK;;CAGxC,YAAyB;AACvB,MAAI,MAAA,UAAgB,KAClB,QAAO,MAAA;AAGT,QAAA,SAAe;GACb,MAAS,SAA8B,KAAK,QAAQ,KAAK;GACzD,MAAuC,MAA0B,GAAG,SAClE,KAAK,IAAI,MAAM,GAAG,KAAK;GACzB,SAA0C,GAAmB,GAAG,SAC9D,KAAK,OAAO,GAAG,GAAG,KAAK;GACzB,QAAW,MAAe,kBACxB,KAAK,MAAM,MAAM,cAAmB;GACtC,aAAa,SAA8B,KAAK,WAAW,KAAK;GAChE,iBAAiB,UAA8C,KAAK,eAAe,MAAM;GACzF,YAAe,MAAe,aAC5B,KAAK,UAAU,YAAY;AACzB,aAAS,KAAK,YAAY,KAAK,CAAC;KAChC;GACL;AACD,SAAO,MAAA;;;AAIX,SAAgB,cAAqB;AACnC,QAAO,IAAI,OAAO;;AAGpB,MAAM,gBAAgB;AAEtB,SAAS,eAAe,OAA6C;AACnE,KAAI,SAAS,QAAQ,UAAU,MAC7B,QAAO;AAET,KAAI,UAAU,KACZ,QAAO;AAET,QAAO,KAAK,IAAI,GAAG,KAAK,MAAM,MAAM,CAAC;;AAGvC,SAAS,eAAe,IAAY,QAAoC;AACtE,QAAO,IAAI,SAAe,SAAS,WAAW;AAC5C,MAAI,OAAO,SAAS;AAClB,UAAO,IAAI,aAAa,6BAA6B,aAAa,CAAC;AACnE;;EAEF,MAAM,QAAQ,WAAW,SAAS,GAAG;AACrC,SAAO,iBACL,eACM;AACJ,gBAAa,MAAM;AACnB,UAAO,IAAI,aAAa,6BAA6B,aAAa,CAAC;KAErE,EAAE,MAAM,MAAM,CACf;GACD;;AAGJ,SAAS,aAAa,GAAqB;AACzC,QAAO,aAAa,gBAAgB,EAAE,SAAS;;AAGjD,SAAS,qBAAwB,OAAoC;AACnE,KAAI,MAAM,WAAW,WAAW,MAAM,WAAW,QAC/C,QAAO,MAAM;AAEf,KAAI,MAAM,WAAW,QACnB,QAAO,MAAM"}
@@ -1,4 +1,4 @@
1
- import { h as WritableAtom, i as Mutation, n as StoreClient, o as Atom, t as Store } from "../store-DUIAp1x7.js";
1
+ import { g as WritableAtom, i as Mutation, n as StoreClient, o as Atom, t as Store } from "../store-CkSajQlZ.js";
2
2
  import * as _$vue from "vue";
3
3
  import { PropType, ShallowRef } from "vue";
4
4
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kdeveloper/kvark",
3
- "version": "0.10.0",
3
+ "version": "0.10.1",
4
4
  "description": "Atomic state management with explicit dependency graphs",
5
5
  "license": "MIT",
6
6
  "files": [
@@ -39,6 +39,7 @@
39
39
  "@types/node": "^25.5.0",
40
40
  "@types/react": "^19.2.14",
41
41
  "@types/react-dom": "^19.2.3",
42
+ "@vitest/coverage-v8": "^4.1.2",
42
43
  "@vue/test-utils": "^2.4.6",
43
44
  "jsdom": "^29.0.1",
44
45
  "oxfmt": "^0.42.0",
@@ -79,6 +80,7 @@
79
80
  "fmt": "oxfmt .",
80
81
  "fmt:check": "oxfmt --check .",
81
82
  "test": "vitest run",
83
+ "test:coverage": "vitest run --coverage",
82
84
  "test:watch": "vitest"
83
85
  }
84
86
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"store-gE1mKZy1.js","names":["#maxSize","#nodeMap","#valueMap","#head","#tail","#moveToMru","#insertBeforeTail","#evict","#detach","#fetch","#scheduler","#queue","#keySet","#flush","#atoms","#rdeps","#pending","#controllers","#familyUnsubs","#registeredFamilies","#getOrCreate","#runGet","#registerRdeps","#makeCtx","#scheduleNotify","#markStale","#schedulePendingFlush","#flushScheduled","#flushPending","#markReverseDependentsStale","#autoRegisterFamily","#relatedOptimisticWrite","#rollbackRelatedSnapshots","#client"],"sources":["../src/internal/atom.ts","../src/internal/lru-cache.ts","../src/internal/family-batch-schedulers.ts","../src/internal/family-batch.ts","../src/internal/family.ts","../src/internal/mutation.ts","../src/internal/store.ts"],"mappings":"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"}