@kdeveloper/kvark 0.18.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -452,11 +452,11 @@ const runAddItem = useMutation(addItem);
452
452
 
453
453
  Both can update an atom's cached value, but they serve different purposes:
454
454
 
455
- | | `write` | `onMount` |
456
- | ---------------- | ---------------------------------------------- | -------------------------------------- |
457
- | **Triggered by** | Explicit call (`store.apply`, `useApplyAtom`) | First subscriber mounts |
458
- | **After update** | `invalidate` → refetch via `read` | No refetch — value stays as-is |
459
- | **Use case** | Mutations, API calls, optimistic updates | Timers, subscriptions, imperative push |
455
+ | | `write` | `onMount` |
456
+ | ---------------- | --------------------------------------------- | -------------------------------------- |
457
+ | **Triggered by** | Explicit call (`store.apply`, `useApplyAtom`) | First subscriber mounts |
458
+ | **After update** | `invalidate` → refetch via `read` | No refetch — value stays as-is |
459
+ | **Use case** | Mutations, API calls, optimistic updates | Timers, subscriptions, imperative push |
460
460
 
461
461
  ### `onMount`
462
462
 
@@ -581,8 +581,16 @@ postFamily.invalidate(42);
581
581
 
582
582
  // Invalidate everything (e.g. on logout)
583
583
  postFamily.invalidateAll();
584
+
585
+ // Cache helpers
586
+ postFamily.has(42);
587
+ postFamily.peek(42); // Atom<Post> | undefined, does not create a member
588
+ postFamily.remove(42);
589
+ postFamily.clear();
584
590
  ```
585
591
 
592
+ `atomFamily` and `infinityAtomFamily` expose the same cache helper shape: `has(param)`, `peek(param)`, `remove(param)`, `clear()`, and `getCache()`. `peek`/`has` inspect the current cache without creating a new atom; calling the family itself still creates or touches the member and updates LRU order.
593
+
586
594
  ### `atomFamily` as a dependency
587
595
 
588
596
  A `dependencies` entry can be either a regular `Atom` or an `atomFamily`. When the entry is a family, supply the param at the call site as the **second positional argument** to `ctx.read`. Each unique param maps to its own family member; reverse-dependency edges are wired up automatically, so invalidating any read member (or the whole family) propagates `stale` to the consumer.
@@ -609,8 +617,8 @@ userFamily.invalidate(7); // marks profileAtom stale
609
617
 
610
618
  The signature of `ctx.read` is keyed on the dependency entry:
611
619
 
612
- | Entry | Call form | Compile-time errors |
613
- | ------------ | --------------------- | ---------------------------------------------------- |
620
+ | Entry | Call form | Compile-time errors |
621
+ | ------------ | ---------------------- | ---------------------------------------------------- |
614
622
  | `Atom<V>` | `ctx.read(key)` | passing a second arg → error |
615
623
  | `atomFamily` | `ctx.read(key, param)` | omitting `param` → error; wrong `param` type → error |
616
624
 
@@ -980,6 +988,20 @@ const unsub = client.subscribe(userAtom, (state) => {
980
988
  });
981
989
  ```
982
990
 
991
+ `client.observe(atom, listener)` is an explicit alias for state-bearing external subscriptions. `client.subscribe` remains available for compatibility and has the same state-bearing callback shape on `StoreClient`.
992
+
993
+ ### Cache-first reads
994
+
995
+ Use `read(atom)` when you want Kvark's normal async read semantics. For imperative code that prefers cached data when available, use:
996
+
997
+ ```ts
998
+ const state = client.get(userAtom); // AtomState<User>, sync
999
+ const cached = client.peek(userAtom); // User | undefined, sync
1000
+ const user = await client.ensure(userAtom); // cached fresh/stale value, otherwise read()
1001
+ ```
1002
+
1003
+ `get(atom)` mirrors `getSnapshot(atom)`. `peek(atom)` returns the current cached value from `fresh`, `stale`, or retained `error` states without starting a read. `ensure(atom)` resolves immediately for cached `fresh`/`stale` values, or for an `error` state that retained a non-`undefined` value; otherwise it delegates to `read(atom)`.
1004
+
983
1005
  ### Direct Write
984
1006
 
985
1007
  When the server pushes a complete, authoritative value (e.g. via WebSocket or SSE), use `store.write` / `client.write` to store it directly — no refetch through `read` is triggered, and the atom's `write` callback is not invoked. Any in-flight `read` for the atom is aborted, and derived atoms that depend on it are marked `stale` so they re-compute.
@@ -1003,22 +1025,43 @@ client.write(counterAtom, (prev) => (prev ?? 0) + 1);
1003
1025
 
1004
1026
  `write` works on any `Atom<V>` — the atom does not need a `write` config. This makes it the right tool when you already have the final value and want to skip a redundant network round-trip. Use `apply` when you want to run the atom's async `write` callback instead.
1005
1027
 
1028
+ `set(atom, value | mutator)` is an alias for `write(atom, ...)`; `run(atom, ...args)` is an alias for `apply(atom, ...args)`; `runMutation(m, ...args)` is an alias for `mutate(m, ...args)`.
1029
+
1030
+ ### Inspect and dispose
1031
+
1032
+ For devtools and diagnostics, `inspect(atom)` returns lightweight metadata: label, current status, dependency counts, listener count, mount count, and whether a read promise is in flight.
1033
+
1034
+ Call `dispose()` when a store is scoped to a request, test, or worker lifetime. It aborts in-flight reads, calls active `onMount` cleanups, clears listeners, and unregisters family invalidation hooks. After disposal, store methods throw `Store has been disposed`; calling `dispose()` again is a no-op.
1035
+
1006
1036
  ### `StoreClient` interface
1007
1037
 
1008
1038
  The concrete `Store` class exposes the same surface as `getClient()` — e.g. `store.read(atom)` / `client.read(atom)`, `store.apply(atom, ...args)` / `client.apply(atom, ...args)`, and `store.mutate(m, ...args)` / `client.mutate(m, ...args)`.
1009
1039
 
1010
1040
  ```ts
1011
- import type { Atom, WritableAtom, AtomState, Mutation } from "@kdeveloper/kvark";
1041
+ import type { Atom, WritableAtom, AtomState, Mutation, StoreInspection } from "@kdeveloper/kvark";
1012
1042
 
1013
1043
  interface StoreClient {
1044
+ get<V>(atom: Atom<V>): AtomState<V>;
1045
+ peek<V>(atom: Atom<V>): V | undefined;
1046
+ ensure<V>(atom: Atom<V>): Promise<V>;
1014
1047
  read<V>(atom: Atom<V>): Promise<V>;
1048
+ run<V, A extends readonly unknown[]>(atom: WritableAtom<V, A>, ...args: A): Promise<void>;
1015
1049
  apply<V, A extends readonly unknown[]>(atom: WritableAtom<V, A>, ...args: A): Promise<void>;
1050
+ runMutation<Args extends readonly unknown[]>(
1051
+ mutation: Mutation<Args>,
1052
+ ...args: Args
1053
+ ): Promise<void>;
1016
1054
  mutate<Args extends readonly unknown[]>(mutation: Mutation<Args>, ...args: Args): Promise<void>;
1055
+ set<V>(atom: Atom<V>, value: V): void;
1056
+ set<V>(atom: Atom<V>, mutate: (prev: V | undefined) => V): void;
1017
1057
  write<V>(atom: Atom<V>, value: V): void;
1018
1058
  write<V>(atom: Atom<V>, mutate: (prev: V | undefined) => V): void;
1019
1059
  invalidate(atom: Atom<unknown>): void;
1020
1060
  invalidateMany(atoms: ReadonlyArray<Atom<unknown>>): void;
1061
+ observe<V>(atom: Atom<V>, listener: (state: AtomState<V>) => void): () => void;
1021
1062
  subscribe<V>(atom: Atom<V>, listener: (state: AtomState<V>) => void): () => void;
1063
+ inspect(atom: Atom<unknown>): StoreInspection;
1064
+ dispose(): void;
1022
1065
  }
1023
1066
  ```
1024
1067
 
@@ -1077,10 +1120,10 @@ type Writable = IsWritable<typeof countAtom>; // → true | false
1077
1120
 
1078
1121
  | Import | Contents |
1079
1122
  | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1080
- | `@kdeveloper/kvark` | `atom`, `infinityAtom`, `infinityAtomFamily`, `mutation`, `createStore`, all types (including `Mutation`, `MutationContext`) |
1123
+ | `@kdeveloper/kvark` | `atom`, `infinityAtom`, `infinityAtomFamily`, `mutation`, `createStore`, all types (including `Store`, `StoreClient`, `StoreInspection`, `Mutation`, `MutationContext`) |
1081
1124
  | `@kdeveloper/kvark/react` | `Provider`, `useStore`, `useAtomValue`, `useApplyAtom`, `useMutation`, `useAtom`, `useAtomContext` |
1082
1125
  | `@kdeveloper/kvark/preact` | `Provider`, `useStore`, `useAtomValue`, `useApplyAtom`, `useMutation`, `useAtom`, `useAtomContext` |
1083
- | `@kdeveloper/kvark/vue` | `Provider`, `useStore`, `useAtomValue`, `useApplyAtom`, `useMutation`, `useAtom`, `useAtomContext`; types `ThenableShallowRef`, `ThenableObservedShallowRef`, `ObservedValue` |
1126
+ | `@kdeveloper/kvark/vue` | `Provider`, `useStore`, `useAtomValue`, `useApplyAtom`, `useMutation`, `useAtom`, `useAtomContext`; types `ThenableShallowRef`, `ThenableObservedShallowRef`, `ObservedValue` |
1084
1127
  | `@kdeveloper/kvark/family` | `atomFamily`, `infinityAtomFamily`, `stableFamilyKey`, `microtaskScheduler`, `windowScheduler`, `maxBatchSizeScheduler`, `windowedFiniteBatchScheduler`, re-exports `atom`, `infinityAtom`, `mutation`, `createStore`; types include `AtomFamily`, `InfinityAtomFamily`, `BatchScheduler`, `BatchFetchInput`, `Mutation`, `MutationContext`, and core atom types |
1085
1128
 
1086
1129
  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`.
package/dist/family.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { A as atom, C as InfinityFamilyAtom, D as infinityAtom, E as InfinityAtomOptions, S as InfinityAtomFamilyOptions, T as InfiniteData, a as AtomState, b as mutation, d as StalePolicy, f as WritableAtom, h as RegisteredContext, i as AtomContext, l as MutationContext, m as Register, o as AtomValue, p as WritableAtomContext, r as AtomConfig, s as DependencyEntry, t as Atom, u as RetryDelay, v as createStore, w as infinityAtomFamily, x as InfinityAtomFamily, y as Mutation } from "./types-DOyqUVX8.js";
1
+ import { C as InfinityAtomFamily, D as InfiniteData, E as infinityAtomFamily, M as atom, O as InfinityAtomOptions, S as mutation, T as InfinityFamilyAtom, _ as StoreClient, a as AtomState, b as createStore, d as StalePolicy, f as WritableAtom, g as Store, h as RegisteredContext, i as AtomContext, k as infinityAtom, l as MutationContext, m as Register, o as AtomValue, p as WritableAtomContext, r as AtomConfig, s as DependencyEntry, t as Atom, u as RetryDelay, v as StoreInspection, w as InfinityAtomFamilyOptions, x as Mutation, y as StoreOptions } from "./types-D8ep-ydI.js";
2
2
 
3
3
  //#region src/internal/family-batch-schedulers.d.ts
4
4
  type BatchSchedulerContext = {
@@ -74,7 +74,10 @@ interface AtomFamily<Param, Value, Key = Param> {
74
74
  (param: Param): Atom<Value>;
75
75
  invalidate(param: Param): void;
76
76
  invalidateAll(): void;
77
+ has(param: Param): boolean;
78
+ peek(param: Param): Atom<Value> | undefined;
77
79
  remove(param: Param): void;
80
+ clear(): void;
78
81
  getCache(): ReadonlyMap<Key, Atom<Value>>;
79
82
  }
80
83
  declare function atomFamily<Param, Value, Deps extends Record<string, DependencyEntry> = Record<never, never>, Args extends readonly unknown[] = readonly [], Key = Param>(options: AtomFamilyOptions<Param, Value, Deps, Args, Key>): AtomFamily<Param, Value, Key>;
@@ -93,5 +96,5 @@ declare function atomFamily<Param, Value, Deps extends Record<string, Dependency
93
96
  */
94
97
  declare function stableFamilyKey(value: unknown): string;
95
98
  //#endregion
96
- export { type Atom, type AtomConfig, type AtomContext, type AtomFamily, type AtomFamilyBatchOptions, type AtomFamilyGetOptions, type AtomFamilyOptions, type AtomState, type AtomValue, type BatchFetchInput, type BatchScheduler, type BatchSchedulerContext, type InfiniteData, type InfinityAtomFamily, type InfinityAtomFamilyOptions, type InfinityAtomOptions, type InfinityFamilyAtom, type Mutation, type MutationContext, type Register, type RegisteredContext, type StalePolicy, type WritableAtom, atom, atomFamily, createStore, infinityAtom, infinityAtomFamily, maxBatchSizeScheduler, microtaskScheduler, mutation, stableFamilyKey, windowScheduler, windowedFiniteBatchScheduler };
99
+ export { type Atom, type AtomConfig, type AtomContext, type AtomFamily, type AtomFamilyBatchOptions, type AtomFamilyGetOptions, type AtomFamilyOptions, type AtomState, type AtomValue, type BatchFetchInput, type BatchScheduler, type BatchSchedulerContext, type InfiniteData, type InfinityAtomFamily, type InfinityAtomFamilyOptions, type InfinityAtomOptions, type InfinityFamilyAtom, type Mutation, type MutationContext, type Register, type RegisteredContext, type StalePolicy, type Store, type StoreClient, type StoreInspection, type StoreOptions, type WritableAtom, atom, atomFamily, createStore, infinityAtom, infinityAtomFamily, maxBatchSizeScheduler, microtaskScheduler, mutation, stableFamilyKey, windowScheduler, windowedFiniteBatchScheduler };
97
100
  //# sourceMappingURL=family.d.ts.map
package/dist/family.js CHANGED
@@ -1,4 +1,4 @@
1
- import { a as microtaskScheduler, c as infinityAtomFamily, i as maxBatchSizeScheduler, l as infinityAtom, n as mutation, o as windowScheduler, r as atomFamily, s as windowedFiniteBatchScheduler, t as createStore, u as atom } from "./store-CTGJpxoI.js";
1
+ import { a as microtaskScheduler, c as infinityAtomFamily, i as maxBatchSizeScheduler, l as infinityAtom, n as mutation, o as windowScheduler, r as atomFamily, s as windowedFiniteBatchScheduler, t as createStore, u as atom } from "./store-Cq_V-puR.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,2 +1,2 @@
1
- import { A as atom, C as InfinityFamilyAtom, D as infinityAtom, E as InfinityAtomOptions, O as SimpleAtomOptions, S as InfinityAtomFamilyOptions, T as InfiniteData, _ as StoreClient, a as AtomState, b as mutation, c as IsWritable, d as StalePolicy, f as WritableAtom, h as RegisteredContext, i as AtomContext, k as SimpleAtomWriteArg, l as MutationContext, m as Register, n as AtomArgs, o as AtomValue, p as WritableAtomContext, r as AtomConfig, t as Atom, u as RetryDelay, v as createStore, w as infinityAtomFamily, x as InfinityAtomFamily, y as Mutation } from "./types-DOyqUVX8.js";
2
- export { Atom, AtomArgs, AtomConfig, AtomContext, AtomState, AtomValue, InfiniteData, InfinityAtomFamily, InfinityAtomFamilyOptions, InfinityAtomOptions, InfinityFamilyAtom, IsWritable, Mutation, MutationContext, Register, RegisteredContext, RetryDelay, SimpleAtomOptions, SimpleAtomWriteArg, StalePolicy, StoreClient, WritableAtom, WritableAtomContext, atom, createStore, infinityAtom, infinityAtomFamily, mutation };
1
+ import { A as SimpleAtomOptions, C as InfinityAtomFamily, D as InfiniteData, E as infinityAtomFamily, M as atom, O as InfinityAtomOptions, S as mutation, T as InfinityFamilyAtom, _ as StoreClient, a as AtomState, b as createStore, c as IsWritable, d as StalePolicy, f as WritableAtom, g as Store, h as RegisteredContext, i as AtomContext, j as SimpleAtomWriteArg, k as infinityAtom, l as MutationContext, m as Register, n as AtomArgs, o as AtomValue, p as WritableAtomContext, r as AtomConfig, t as Atom, u as RetryDelay, v as StoreInspection, w as InfinityAtomFamilyOptions, x as Mutation, y as StoreOptions } from "./types-D8ep-ydI.js";
2
+ export { Atom, AtomArgs, AtomConfig, AtomContext, AtomState, AtomValue, InfiniteData, InfinityAtomFamily, InfinityAtomFamilyOptions, InfinityAtomOptions, InfinityFamilyAtom, IsWritable, Mutation, MutationContext, Register, RegisteredContext, RetryDelay, SimpleAtomOptions, SimpleAtomWriteArg, StalePolicy, Store, StoreClient, StoreInspection, StoreOptions, WritableAtom, WritableAtomContext, atom, createStore, infinityAtom, infinityAtomFamily, mutation };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import { c as infinityAtomFamily, l as infinityAtom, n as mutation, t as createStore, u as atom } from "./store-CTGJpxoI.js";
1
+ import { c as infinityAtomFamily, l as infinityAtom, n as mutation, t as createStore, u as atom } from "./store-Cq_V-puR.js";
2
2
  export { atom, createStore, infinityAtom, infinityAtomFamily, mutation };
@@ -1,4 +1,4 @@
1
- import { _ as StoreClient, f as WritableAtom, g as Store, t as Atom, y as Mutation } from "../types-DOyqUVX8.js";
1
+ import { _ as StoreClient, f as WritableAtom, g as Store, t as Atom, x as Mutation } from "../types-D8ep-ydI.js";
2
2
  import { ComponentChildren, VNode } from "preact";
3
3
 
4
4
  //#region src/preact/provider.d.ts
@@ -1,4 +1,4 @@
1
- import { t as CONFIG } from "../types-B2mzc3A5.js";
1
+ import { t as getAtomValueResult } from "../use-atom-value-BhGvD9Vf.js";
2
2
  import { createContext } from "preact";
3
3
  import { useCallback, useContext, useEffect, useLayoutEffect, useRef, useState } from "preact/hooks";
4
4
  import { jsx } from "preact/jsx-runtime";
@@ -63,33 +63,7 @@ function useAtomValue(atom, opts) {
63
63
  const initialRenderRef = useRef(true);
64
64
  const isInitialRender = initialRenderRef.current;
65
65
  initialRenderRef.current = false;
66
- const stalePolicy = atom[CONFIG].stalePolicy ?? "keep";
67
- if (snapshot.status === "pending") throw store.read(atom);
68
- if (snapshot.status === "stale") {
69
- if (stalePolicy === "suspend") throw store.read(atom);
70
- store.read(atom);
71
- if (opts?.observe === true) return {
72
- value: snapshot.value,
73
- isStale: true,
74
- error: void 0
75
- };
76
- return snapshot.value;
77
- }
78
- if (snapshot.status === "error") {
79
- if (opts?.observe === true && snapshot.value !== void 0) return {
80
- value: snapshot.value,
81
- isStale: false,
82
- error: snapshot.error
83
- };
84
- if (isInitialRender) store.read(atom);
85
- throw snapshot.error;
86
- }
87
- if (opts?.observe === true) return {
88
- value: snapshot.value,
89
- isStale: false,
90
- error: void 0
91
- };
92
- return snapshot.value;
66
+ return getAtomValueResult(store, atom, snapshot, opts?.observe === true, isInitialRender);
93
67
  }
94
68
  //#endregion
95
69
  //#region src/preact/use-apply-atom.ts
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/preact/provider.tsx","../../src/preact/use-sync-external-store.ts","../../src/preact/use-stable-fn.ts","../../src/preact/use-atom-value.ts","../../src/preact/use-apply-atom.ts","../../src/preact/use-mutation.ts","../../src/preact/use-atom.ts","../../src/preact/use-atom-context.ts"],"mappings":";;;;;;AAKA,MAAM,eAAe,cAA4B,KAAK;AAOtD,SAAgB,SAAS,EAAE,OAAO,YAAkC;CAClE,OAAO,oBAAC,aAAa,UAAd;EAAuB,OAAO;EAAQ;EAAiC,CAAA;;AAGhF,SAAgB,WAAkB;CAChC,MAAM,QAAQ,WAAW,aAAa;CACtC,IAAI,SAAS,MACX,MAAM,IAAI,MAAM,4CAA4C;CAE9D,OAAO;;;;ACdT,SAAS,kBAAqB,MAAiC;CAC7D,IAAI;EACF,OAAO,CAAC,OAAO,GAAG,KAAK,QAAQ,KAAK,cAAc,CAAC;SAC7C;EACN,OAAO;;;AAIX,SAAgB,qBACd,WACA,aACG;CACH,MAAM,QAAQ,aAAa;CAE3B,MAAM,CAAC,EAAE,aAAa,eAAe,gBAAgB,EACnD,WAAW;EAAE,QAAQ;EAAO,cAAc;EAAa,EACxD,EAAE;CAEH,sBAAsB;EACpB,UAAU,SAAS;EACnB,UAAU,eAAe;EAEzB,IAAI,kBAAkB,UAAU,EAC9B,YAAY,EAAE,WAAW,CAAC;IAE3B;EAAC;EAAW;EAAO;EAAY,CAAC;CAEnC,gBAAgB;EACd,IAAI,kBAAkB,UAAU,EAC9B,YAAY,EAAE,WAAW,CAAC;EAG5B,OAAO,gBAAgB;GACrB,IAAI,kBAAkB,UAAU,EAC9B,YAAY,EAAE,WAAW,CAAC;IAE5B;IACD,CAAC,UAAU,CAAC;CAEf,OAAO;;;;AC5CT,SAAgB,YACd,IACsB;CACtB,MAAM,MAAM,OAAO,GAAG;CACtB,IAAI,UAAU;CAEd,OAAO,aAAa,GAAG,SAAe,IAAI,QAAQ,GAAG,KAAK,EAAE,EAAE,CAAC;;;;ACOjE,SAAgB,aAAgB,MAAe,MAAgD;CAC7F,MAAM,QAAQ,UAAU;CAKxB,MAAM,WAAyB,qBAHb,aAAa,WAAuB,MAAM,UAAU,MAAM,OAAO,CAGtB,EAFzC,kBAAkB,MAAM,YAAY,KAAK,CAEa,CAAC;CAK3E,MAAM,mBAAmB,OAAO,KAAK;CACrC,MAAM,kBAAkB,iBAAiB;CACzC,iBAAiB,UAAU;CAE3B,MAAM,cAA2B,KAAK,QAAQ,eAAe;CAE7D,IAAI,SAAS,WAAW,WACtB,MAAM,MAAM,KAAK,KAAK;CAGxB,IAAI,SAAS,WAAW,SAAS;EAC/B,IAAI,gBAAgB,WAClB,MAAM,MAAM,KAAK,KAAK;EAGxB,MAAW,KAAK,KAAK;EAErB,IAAI,MAAM,YAAY,MACpB,OAAO;GAAE,OAAO,SAAS;GAAO,SAAS;GAAM,OAAO,KAAA;GAAW;EAEnE,OAAO,SAAS;;CAGlB,IAAI,SAAS,WAAW,SAAS;EAC/B,IAAI,MAAM,YAAY,QAAQ,SAAS,UAAU,KAAA,GAC/C,OAAO;GACL,OAAO,SAAS;GAChB,SAAS;GACT,OAAO,SAAS;GACjB;EAMH,IAAI,iBACF,MAAW,KAAK,KAAK;EAEvB,MAAM,SAAS;;CAIjB,IAAI,MAAM,YAAY,MACpB,OAAO;EAAE,OAAO,SAAS;EAAO,SAAS;EAAO,OAAO,KAAA;EAAW;CAEpE,OAAO,SAAS;;;;ACnElB,SAAgB,aACd,MAC+B;CAC/B,MAAM,QAAQ,UAAU;CACxB,OAAO,aAAa,GAAG,SAA2B,MAAM,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC,OAAO,KAAK,CAAC;;;;ACJ9F,SAAgB,YACd,UACkC;CAClC,MAAM,QAAQ,UAAU;CACxB,OAAO,aACJ,GAAG,SAA8B,MAAM,OAAO,UAAU,GAAG,KAAK,EACjE,CAAC,OAAO,SAAS,CAClB;;;;ACPH,SAAgB,QACd,MAC6C;CAG7C,OAAO,CAFO,aAAa,KAEd,EADE,aAAa,KACP,CAAC;;;;ACLxB,SAAgB,eAAkB,UAA8D;CAC9F,MAAM,QAAQ,UAAU;CACxB,OAAO,kBAA8B,SAAS,MAAM,WAAW,CAAC,EAAE,CAAC,OAAO,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/preact/provider.tsx","../../src/preact/use-sync-external-store.ts","../../src/preact/use-stable-fn.ts","../../src/preact/use-atom-value.ts","../../src/preact/use-apply-atom.ts","../../src/preact/use-mutation.ts","../../src/preact/use-atom.ts","../../src/preact/use-atom-context.ts"],"mappings":";;;;;;AAKA,MAAM,eAAe,cAA4B,KAAK;AAOtD,SAAgB,SAAS,EAAE,OAAO,YAAkC;CAClE,OAAO,oBAAC,aAAa,UAAd;EAAuB,OAAO;EAAQ;EAAiC,CAAA;;AAGhF,SAAgB,WAAkB;CAChC,MAAM,QAAQ,WAAW,aAAa;CACtC,IAAI,SAAS,MACX,MAAM,IAAI,MAAM,4CAA4C;CAE9D,OAAO;;;;ACdT,SAAS,kBAAqB,MAAiC;CAC7D,IAAI;EACF,OAAO,CAAC,OAAO,GAAG,KAAK,QAAQ,KAAK,cAAc,CAAC;SAC7C;EACN,OAAO;;;AAIX,SAAgB,qBACd,WACA,aACG;CACH,MAAM,QAAQ,aAAa;CAE3B,MAAM,CAAC,EAAE,aAAa,eAAe,gBAAgB,EACnD,WAAW;EAAE,QAAQ;EAAO,cAAc;EAAa,EACxD,EAAE;CAEH,sBAAsB;EACpB,UAAU,SAAS;EACnB,UAAU,eAAe;EAEzB,IAAI,kBAAkB,UAAU,EAC9B,YAAY,EAAE,WAAW,CAAC;IAE3B;EAAC;EAAW;EAAO;EAAY,CAAC;CAEnC,gBAAgB;EACd,IAAI,kBAAkB,UAAU,EAC9B,YAAY,EAAE,WAAW,CAAC;EAG5B,OAAO,gBAAgB;GACrB,IAAI,kBAAkB,UAAU,EAC9B,YAAY,EAAE,WAAW,CAAC;IAE5B;IACD,CAAC,UAAU,CAAC;CAEf,OAAO;;;;AC5CT,SAAgB,YACd,IACsB;CACtB,MAAM,MAAM,OAAO,GAAG;CACtB,IAAI,UAAU;CAEd,OAAO,aAAa,GAAG,SAAe,IAAI,QAAQ,GAAG,KAAK,EAAE,EAAE,CAAC;;;;ACOjE,SAAgB,aAAgB,MAAe,MAAgD;CAC7F,MAAM,QAAQ,UAAU;CAKxB,MAAM,WAAyB,qBAHb,aAAa,WAAuB,MAAM,UAAU,MAAM,OAAO,CAGtB,EAFzC,kBAAkB,MAAM,YAAY,KAAK,CAEa,CAAC;CAK3E,MAAM,mBAAmB,OAAO,KAAK;CACrC,MAAM,kBAAkB,iBAAiB;CACzC,iBAAiB,UAAU;CAE3B,OAAO,mBAAmB,OAAO,MAAM,UAAU,MAAM,YAAY,MAAM,gBAAgB;;;;AC1B3F,SAAgB,aACd,MAC+B;CAC/B,MAAM,QAAQ,UAAU;CACxB,OAAO,aAAa,GAAG,SAA2B,MAAM,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC,OAAO,KAAK,CAAC;;;;ACJ9F,SAAgB,YACd,UACkC;CAClC,MAAM,QAAQ,UAAU;CACxB,OAAO,aACJ,GAAG,SAA8B,MAAM,OAAO,UAAU,GAAG,KAAK,EACjE,CAAC,OAAO,SAAS,CAClB;;;;ACPH,SAAgB,QACd,MAC6C;CAG7C,OAAO,CAFO,aAAa,KAEd,EADE,aAAa,KACP,CAAC;;;;ACLxB,SAAgB,eAAkB,UAA8D;CAC9F,MAAM,QAAQ,UAAU;CACxB,OAAO,kBAA8B,SAAS,MAAM,WAAW,CAAC,EAAE,CAAC,OAAO,SAAS,CAAC"}
@@ -1,4 +1,4 @@
1
- import { _ as StoreClient, f as WritableAtom, g as Store, t as Atom, y as Mutation } from "../types-DOyqUVX8.js";
1
+ import { _ as StoreClient, f as WritableAtom, g as Store, t as Atom, x as Mutation } from "../types-D8ep-ydI.js";
2
2
  import { ReactNode } from "react";
3
3
 
4
4
  //#region src/react/provider.d.ts
@@ -1,4 +1,4 @@
1
- import { t as CONFIG } from "../types-B2mzc3A5.js";
1
+ import { t as getAtomValueResult } from "../use-atom-value-BhGvD9Vf.js";
2
2
  import { createContext, useCallback, useContext, useRef, useSyncExternalStore } from "react";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  //#region src/react/provider.tsx
@@ -29,33 +29,7 @@ function useAtomValue(atom, opts) {
29
29
  const initialRenderRef = useRef(true);
30
30
  const isInitialRender = initialRenderRef.current;
31
31
  initialRenderRef.current = false;
32
- const stalePolicy = atom[CONFIG].stalePolicy ?? "keep";
33
- if (snapshot.status === "pending") throw store.read(atom);
34
- if (snapshot.status === "stale") {
35
- if (stalePolicy === "suspend") throw store.read(atom);
36
- store.read(atom);
37
- if (opts?.observe === true) return {
38
- value: snapshot.value,
39
- isStale: true,
40
- error: void 0
41
- };
42
- return snapshot.value;
43
- }
44
- if (snapshot.status === "error") {
45
- if (opts?.observe === true && snapshot.value !== void 0) return {
46
- value: snapshot.value,
47
- isStale: false,
48
- error: snapshot.error
49
- };
50
- if (isInitialRender) store.read(atom);
51
- throw snapshot.error;
52
- }
53
- if (opts?.observe === true) return {
54
- value: snapshot.value,
55
- isStale: false,
56
- error: void 0
57
- };
58
- return snapshot.value;
32
+ return getAtomValueResult(store, atom, snapshot, opts?.observe === true, isInitialRender);
59
33
  }
60
34
  //#endregion
61
35
  //#region src/react/use-apply-atom.ts
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/react/provider.tsx","../../src/react/use-stable-fn.ts","../../src/react/use-atom-value.ts","../../src/react/use-apply-atom.ts","../../src/react/use-mutation.ts","../../src/react/use-atom.ts","../../src/react/use-atom-context.ts"],"mappings":";;;;AAGA,MAAM,eAAe,cAA4B,KAAK;AAOtD,SAAgB,SAAS,EAAE,OAAO,YAAsC;CACtE,OAAO,oBAAC,aAAa,UAAd;EAAuB,OAAO;EAAQ;EAAiC,CAAA;;AAGhF,SAAgB,WAAkB;CAChC,MAAM,QAAQ,WAAW,aAAa;CACtC,IAAI,SAAS,MACX,MAAM,IAAI,MAAM,4CAA4C;CAE9D,OAAO;;;;ACjBT,SAAgB,YACd,IACsB;CACtB,MAAM,MAAM,OAAO,GAAG;CACtB,IAAI,UAAU;CAEd,OAAO,aAAa,GAAG,SAAe,IAAI,QAAQ,GAAG,KAAK,EAAE,EAAE,CAAC;;;;ACMjE,SAAgB,aAAgB,MAAe,MAAgD;CAC7F,MAAM,QAAQ,UAAU;CAMxB,MAAM,WAAyB,qBAJb,aAAa,WAAuB,MAAM,UAAU,MAAM,OAAO,CAItB,EAHzC,kBAAkB,MAAM,YAAY,KAAK,CAGa,EAFhD,kBAAkB,MAAM,kBAAkB,KAAK,CAEoB,CAAC;CAK9F,MAAM,mBAAmB,OAAO,KAAK;CACrC,MAAM,kBAAkB,iBAAiB;CACzC,iBAAiB,UAAU;CAE3B,MAAM,cAA2B,KAAK,QAAQ,eAAe;CAE7D,IAAI,SAAS,WAAW,WACtB,MAAM,MAAM,KAAK,KAAK;CAGxB,IAAI,SAAS,WAAW,SAAS;EAC/B,IAAI,gBAAgB,WAClB,MAAM,MAAM,KAAK,KAAK;EAGxB,MAAW,KAAK,KAAK;EAErB,IAAI,MAAM,YAAY,MACpB,OAAO;GAAE,OAAO,SAAS;GAAO,SAAS;GAAM,OAAO,KAAA;GAAW;EAEnE,OAAO,SAAS;;CAGlB,IAAI,SAAS,WAAW,SAAS;EAC/B,IAAI,MAAM,YAAY,QAAQ,SAAS,UAAU,KAAA,GAC/C,OAAO;GACL,OAAO,SAAS;GAChB,SAAS;GACT,OAAO,SAAS;GACjB;EAMH,IAAI,iBACF,MAAW,KAAK,KAAK;EAEvB,MAAM,SAAS;;CAIjB,IAAI,MAAM,YAAY,MACpB,OAAO;EAAE,OAAO,SAAS;EAAO,SAAS;EAAO,OAAO,KAAA;EAAW;CAEpE,OAAO,SAAS;;;;ACnElB,SAAgB,aACd,MAC+B;CAC/B,MAAM,QAAQ,UAAU;CACxB,OAAO,aAAa,GAAG,SAA2B,MAAM,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC,OAAO,KAAK,CAAC;;;;ACJ9F,SAAgB,YACd,UACkC;CAClC,MAAM,QAAQ,UAAU;CACxB,OAAO,aACJ,GAAG,SAA8B,MAAM,OAAO,UAAU,GAAG,KAAK,EACjE,CAAC,OAAO,SAAS,CAClB;;;;ACPH,SAAgB,QACd,MAC6C;CAG7C,OAAO,CAFO,aAAa,KAEd,EADE,aAAa,KACP,CAAC;;;;ACLxB,SAAgB,eAAkB,UAA8D;CAC9F,MAAM,QAAQ,UAAU;CACxB,OAAO,kBAA8B,SAAS,MAAM,WAAW,CAAC,EAAE,CAAC,OAAO,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/react/provider.tsx","../../src/react/use-stable-fn.ts","../../src/react/use-atom-value.ts","../../src/react/use-apply-atom.ts","../../src/react/use-mutation.ts","../../src/react/use-atom.ts","../../src/react/use-atom-context.ts"],"mappings":";;;;AAGA,MAAM,eAAe,cAA4B,KAAK;AAOtD,SAAgB,SAAS,EAAE,OAAO,YAAsC;CACtE,OAAO,oBAAC,aAAa,UAAd;EAAuB,OAAO;EAAQ;EAAiC,CAAA;;AAGhF,SAAgB,WAAkB;CAChC,MAAM,QAAQ,WAAW,aAAa;CACtC,IAAI,SAAS,MACX,MAAM,IAAI,MAAM,4CAA4C;CAE9D,OAAO;;;;ACjBT,SAAgB,YACd,IACsB;CACtB,MAAM,MAAM,OAAO,GAAG;CACtB,IAAI,UAAU;CAEd,OAAO,aAAa,GAAG,SAAe,IAAI,QAAQ,GAAG,KAAK,EAAE,EAAE,CAAC;;;;ACMjE,SAAgB,aAAgB,MAAe,MAAgD;CAC7F,MAAM,QAAQ,UAAU;CAMxB,MAAM,WAAyB,qBAJb,aAAa,WAAuB,MAAM,UAAU,MAAM,OAAO,CAItB,EAHzC,kBAAkB,MAAM,YAAY,KAAK,CAGa,EAFhD,kBAAkB,MAAM,kBAAkB,KAAK,CAEoB,CAAC;CAK9F,MAAM,mBAAmB,OAAO,KAAK;CACrC,MAAM,kBAAkB,iBAAiB;CACzC,iBAAiB,UAAU;CAE3B,OAAO,mBAAmB,OAAO,MAAM,UAAU,MAAM,YAAY,MAAM,gBAAgB;;;;AC1B3F,SAAgB,aACd,MAC+B;CAC/B,MAAM,QAAQ,UAAU;CACxB,OAAO,aAAa,GAAG,SAA2B,MAAM,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC,OAAO,KAAK,CAAC;;;;ACJ9F,SAAgB,YACd,UACkC;CAClC,MAAM,QAAQ,UAAU;CACxB,OAAO,aACJ,GAAG,SAA8B,MAAM,OAAO,UAAU,GAAG,KAAK,EACjE,CAAC,OAAO,SAAS,CAClB;;;;ACPH,SAAgB,QACd,MAC6C;CAG7C,OAAO,CAFO,aAAa,KAEd,EADE,aAAa,KACP,CAAC;;;;ACLxB,SAAgB,eAAkB,UAA8D;CAC9F,MAAM,QAAQ,UAAU;CACxB,OAAO,kBAA8B,SAAS,MAAM,WAAW,CAAC,EAAE,CAAC,OAAO,SAAS,CAAC"}
@@ -144,7 +144,7 @@ var LruCache = class {
144
144
  #head;
145
145
  #tail;
146
146
  constructor(maxSize) {
147
- this.#maxSize = maxSize;
147
+ this.#maxSize = normalizeMaxSize(maxSize);
148
148
  this.#head = {
149
149
  key: void 0,
150
150
  prev: null,
@@ -193,6 +193,12 @@ var LruCache = class {
193
193
  this.#nodeMap.delete(key);
194
194
  this.#valueMap.delete(key);
195
195
  }
196
+ clear() {
197
+ this.#nodeMap.clear();
198
+ this.#valueMap.clear();
199
+ this.#head.next = this.#tail;
200
+ this.#tail.prev = this.#head;
201
+ }
196
202
  values() {
197
203
  return this.#valueMap.values();
198
204
  }
@@ -222,13 +228,17 @@ var LruCache = class {
222
228
  if (!Number.isFinite(this.#maxSize)) return;
223
229
  while (this.#nodeMap.size > this.#maxSize) {
224
230
  const oldest = this.#head.next;
225
- if (oldest == null) break;
231
+ if (oldest == null || oldest === this.#tail) break;
226
232
  this.#detach(oldest);
227
233
  this.#nodeMap.delete(oldest.key);
228
234
  this.#valueMap.delete(oldest.key);
229
235
  }
230
236
  }
231
237
  };
238
+ function normalizeMaxSize(maxSize) {
239
+ if (!Number.isFinite(maxSize)) return Infinity;
240
+ return Math.max(0, Math.floor(maxSize));
241
+ }
232
242
  //#endregion
233
243
  //#region src/internal/infinity-atom-family.ts
234
244
  function infinityAtomFamily(options) {
@@ -285,9 +295,14 @@ function infinityAtomFamily(options) {
285
295
  family.invalidateAll = () => {
286
296
  for (const cached of cache.values()) link.invalidateAtom(cached);
287
297
  };
298
+ family.has = (param) => cache.peek(keyOf(param)) != null;
299
+ family.peek = (param) => cache.peek(keyOf(param));
288
300
  family.remove = (param) => {
289
301
  cache.delete(keyOf(param));
290
302
  };
303
+ family.clear = () => {
304
+ cache.clear();
305
+ };
291
306
  family.getCache = () => cache.asReadonlyMap();
292
307
  return family;
293
308
  }
@@ -486,9 +501,14 @@ function atomFamily(options) {
486
501
  family.invalidateAll = () => {
487
502
  for (const cached of cache.values()) link.invalidateAtom(cached);
488
503
  };
504
+ family.has = (param) => cache.peek(keyOf(param)) != null;
505
+ family.peek = (param) => cache.peek(keyOf(param));
489
506
  family.remove = (param) => {
490
507
  cache.delete(keyOf(param));
491
508
  };
509
+ family.clear = () => {
510
+ cache.clear();
511
+ };
492
512
  family.getCache = () => cache.asReadonlyMap();
493
513
  return family;
494
514
  }
@@ -507,14 +527,15 @@ const PENDING_STATE = {
507
527
  };
508
528
  var Store = class {
509
529
  #atoms = /* @__PURE__ */ new WeakMap();
530
+ #entries = /* @__PURE__ */ new Set();
510
531
  #rdeps = /* @__PURE__ */ new Map();
511
532
  #pending = /* @__PURE__ */ new Set();
512
- #controllers = /* @__PURE__ */ new WeakMap();
513
533
  #familyUnsubs = /* @__PURE__ */ new Set();
514
534
  #registeredFamilies = /* @__PURE__ */ new WeakSet();
515
535
  #context;
516
536
  #client = null;
517
537
  #flushScheduled = false;
538
+ #disposed = false;
518
539
  constructor(...args) {
519
540
  const [options] = args;
520
541
  this.#context = options?.context;
@@ -526,15 +547,46 @@ var Store = class {
526
547
  state: PENDING_STATE,
527
548
  version: 0,
528
549
  promise: null,
550
+ controller: null,
529
551
  listeners: /* @__PURE__ */ new Set(),
530
552
  mountCount: 0,
531
553
  unmount: null
532
554
  };
533
555
  this.#atoms.set(atom, entry);
556
+ this.#entries.add(entry);
534
557
  }
535
558
  return entry;
536
559
  }
560
+ #assertActive() {
561
+ if (this.#disposed) throw new Error("Store has been disposed");
562
+ }
563
+ #abortRead(atom) {
564
+ const entry = this.#atoms.get(atom);
565
+ if (entry?.controller != null) {
566
+ entry.controller.abort();
567
+ entry.controller = null;
568
+ }
569
+ }
570
+ get(atom) {
571
+ return this.getSnapshot(atom);
572
+ }
573
+ peek(atom) {
574
+ this.#assertActive();
575
+ const entry = this.#atoms.get(atom);
576
+ if (entry == null) return;
577
+ return extractPreviousValue(entry.state);
578
+ }
579
+ ensure(atom) {
580
+ this.#assertActive();
581
+ const entry = this.#atoms.get(atom);
582
+ if (entry != null) {
583
+ if (entry.state.status === "fresh" || entry.state.status === "stale") return Promise.resolve(entry.state.value);
584
+ if (entry.state.status === "error" && entry.state.value !== void 0) return Promise.resolve(entry.state.value);
585
+ }
586
+ return this.read(atom);
587
+ }
537
588
  read(atom) {
589
+ this.#assertActive();
538
590
  const entry = this.#getOrCreate(atom);
539
591
  if (entry.promise != null) return entry.promise;
540
592
  const promise = this.#runRead(atom).finally(() => {
@@ -596,11 +648,13 @@ var Store = class {
596
648
  throw lastError;
597
649
  }
598
650
  invalidate(atom) {
651
+ this.#assertActive();
599
652
  this.#markStale(atom);
600
653
  this.#pending.add(atom);
601
654
  this.#schedulePendingFlush();
602
655
  }
603
656
  invalidateMany(atoms) {
657
+ this.#assertActive();
604
658
  for (const a of atoms) {
605
659
  this.#markStale(a);
606
660
  this.#pending.add(a);
@@ -619,7 +673,7 @@ var Store = class {
619
673
  status: "stale"
620
674
  };
621
675
  entry.promise = null;
622
- this.#controllers.get(atom)?.abort();
676
+ this.#abortRead(atom);
623
677
  }
624
678
  const rdeps = this.#rdeps.get(atom);
625
679
  if (rdeps != null) for (const dep of rdeps) this.#markStale(dep, visited);
@@ -648,6 +702,11 @@ var Store = class {
648
702
  if (!this.#flushScheduled) {
649
703
  this.#flushScheduled = true;
650
704
  queueMicrotask(() => {
705
+ if (this.#disposed) {
706
+ this.#flushScheduled = false;
707
+ this.#pending.clear();
708
+ return;
709
+ }
651
710
  this.#flushScheduled = false;
652
711
  this.#flushPending();
653
712
  });
@@ -663,7 +722,7 @@ var Store = class {
663
722
  state: targetEntry.state,
664
723
  version: targetEntry.version
665
724
  });
666
- this.#controllers.get(target)?.abort();
725
+ this.#abortRead(target);
667
726
  targetEntry.promise = null;
668
727
  targetEntry.state = {
669
728
  status: "fresh",
@@ -699,9 +758,9 @@ var Store = class {
699
758
  set.add(atom);
700
759
  }
701
760
  #makeCtx(atom, deps, depPromises) {
702
- this.#controllers.get(atom)?.abort();
761
+ this.#abortRead(atom);
703
762
  const controller = new AbortController();
704
- this.#controllers.set(atom, controller);
763
+ this.#getOrCreate(atom).controller = controller;
705
764
  const read = async (key, ...rest) => {
706
765
  const dep = deps[key];
707
766
  if (dep == null) throw new Error(`Unknown dependency key: "${String(key)}"`);
@@ -727,6 +786,7 @@ var Store = class {
727
786
  };
728
787
  }
729
788
  subscribe(atom, listener) {
789
+ this.#assertActive();
730
790
  const entry = this.#getOrCreate(atom);
731
791
  entry.listeners.add(listener);
732
792
  this.#autoRegisterFamily(atom);
@@ -748,7 +808,11 @@ var Store = class {
748
808
  if (typeof cleanup === "function") entry.unmount = cleanup;
749
809
  }
750
810
  }
811
+ let active = true;
751
812
  return () => {
813
+ if (!active) return;
814
+ active = false;
815
+ if (this.#disposed) return;
752
816
  entry.listeners.delete(listener);
753
817
  entry.mountCount--;
754
818
  if (entry.mountCount === 0 && entry.unmount != null) {
@@ -768,14 +832,17 @@ var Store = class {
768
832
  this.#familyUnsubs.add(unsub);
769
833
  }
770
834
  getSnapshot(atom) {
835
+ this.#assertActive();
771
836
  return this.#getOrCreate(atom).state;
772
837
  }
773
838
  getServerSnapshot(atom) {
839
+ this.#assertActive();
774
840
  const entry = this.#atoms.get(atom);
775
841
  if (entry != null) return entry.state;
776
842
  return PENDING_STATE;
777
843
  }
778
844
  async apply(atom, ...args) {
845
+ this.#assertActive();
779
846
  const config = atom[CONFIG];
780
847
  if (config.write == null) throw new Error(`Atom${atom.debugLabel != null ? ` "${atom.debugLabel}"` : ""} is not writable`);
781
848
  const deps = config.dependencies ?? {};
@@ -823,6 +890,7 @@ var Store = class {
823
890
  if (config.invalidateAfterWrite !== false) this.invalidate(atom);
824
891
  }
825
892
  async mutate(mutation, ...args) {
893
+ this.#assertActive();
826
894
  const relatedSnapshots = /* @__PURE__ */ new Map();
827
895
  const ctx = {
828
896
  global: this.#context,
@@ -841,8 +909,9 @@ var Store = class {
841
909
  }
842
910
  }
843
911
  write(atom, valueOrMutate) {
912
+ this.#assertActive();
844
913
  const entry = this.#getOrCreate(atom);
845
- this.#controllers.get(atom)?.abort();
914
+ this.#abortRead(atom);
846
915
  entry.promise = null;
847
916
  entry.state = {
848
917
  status: "fresh",
@@ -853,18 +922,71 @@ var Store = class {
853
922
  this.#scheduleNotify(atom);
854
923
  this.#markReverseDependentsStale(atom);
855
924
  }
925
+ run(atom, ...args) {
926
+ return this.apply(atom, ...args);
927
+ }
928
+ runMutation(mutation, ...args) {
929
+ return this.mutate(mutation, ...args);
930
+ }
931
+ set(atom, valueOrMutate) {
932
+ this.write(atom, valueOrMutate);
933
+ }
934
+ observe(atom, listener) {
935
+ return this.subscribe(atom, () => {
936
+ listener(this.getSnapshot(atom));
937
+ });
938
+ }
939
+ inspect(atom) {
940
+ this.#assertActive();
941
+ const entry = this.#atoms.get(atom);
942
+ return {
943
+ debugLabel: atom.debugLabel,
944
+ status: entry?.state.status ?? "pending",
945
+ dependencyCount: Object.keys(atom[CONFIG].dependencies ?? {}).length,
946
+ reverseDependentCount: this.#rdeps.get(atom)?.size ?? 0,
947
+ listenerCount: entry?.listeners.size ?? 0,
948
+ mountCount: entry?.mountCount ?? 0,
949
+ hasPromise: entry?.promise != null
950
+ };
951
+ }
952
+ dispose() {
953
+ if (this.#disposed) return;
954
+ this.#disposed = true;
955
+ this.#pending.clear();
956
+ for (const unsub of this.#familyUnsubs) unsub();
957
+ this.#familyUnsubs.clear();
958
+ for (const entry of this.#entries) {
959
+ entry.controller?.abort();
960
+ entry.controller = null;
961
+ entry.promise = null;
962
+ entry.listeners.clear();
963
+ entry.mountCount = 0;
964
+ if (entry.unmount != null) {
965
+ entry.unmount();
966
+ entry.unmount = null;
967
+ }
968
+ }
969
+ }
856
970
  getClient() {
971
+ this.#assertActive();
857
972
  if (this.#client != null) return this.#client;
858
973
  this.#client = {
974
+ get: (atom) => this.get(atom),
975
+ peek: (atom) => this.peek(atom),
976
+ ensure: (atom) => this.ensure(atom),
859
977
  read: (atom) => this.read(atom),
978
+ run: (atom, ...args) => this.run(atom, ...args),
860
979
  apply: (atom, ...args) => this.apply(atom, ...args),
980
+ runMutation: (m, ...args) => this.runMutation(m, ...args),
861
981
  mutate: (m, ...args) => this.mutate(m, ...args),
982
+ set: (atom, valueOrMutate) => this.set(atom, valueOrMutate),
862
983
  write: (atom, valueOrMutate) => this.write(atom, valueOrMutate),
863
984
  invalidate: (atom) => this.invalidate(atom),
864
985
  invalidateMany: (atoms) => this.invalidateMany(atoms),
865
- subscribe: (atom, listener) => this.subscribe(atom, () => {
866
- listener(this.getSnapshot(atom));
867
- })
986
+ observe: (atom, listener) => this.observe(atom, listener),
987
+ subscribe: (atom, listener) => this.observe(atom, listener),
988
+ inspect: (atom) => this.inspect(atom),
989
+ dispose: () => this.dispose()
868
990
  };
869
991
  return this.#client;
870
992
  }
@@ -906,4 +1028,4 @@ function extractPreviousValue(state) {
906
1028
  //#endregion
907
1029
  export { microtaskScheduler as a, infinityAtomFamily as c, maxBatchSizeScheduler as i, infinityAtom as l, mutation as n, windowScheduler as o, atomFamily as r, windowedFiniteBatchScheduler as s, createStore as t, atom as u };
908
1030
 
909
- //# sourceMappingURL=store-CTGJpxoI.js.map
1031
+ //# sourceMappingURL=store-Cq_V-puR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store-Cq_V-puR.js","names":["#maxSize","#nodeMap","#valueMap","#head","#tail","#moveToMru","#insertBeforeTail","#evict","#detach","#fetch","#scheduler","#queue","#keySet","#flush","#atoms","#entries","#rdeps","#pending","#familyUnsubs","#registeredFamilies","#context","#disposed","#assertActive","#getOrCreate","#runRead","#registerRdeps","#makeCtx","#scheduleNotify","#markStale","#schedulePendingFlush","#abortRead","#flushScheduled","#flushPending","#markReverseDependentsStale","#registerSingleRdep","#autoRegisterFamily","#relatedOptimisticWrite","#rollbackRelatedSnapshots","#client"],"sources":["../src/internal/atom.ts","../src/internal/infinity-atom.ts","../src/internal/lru-cache.ts","../src/internal/infinity-atom-family.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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"}
@@ -77,7 +77,10 @@ interface InfinityAtomFamily<Param, Page, Cursor, Key = Param> {
77
77
  (param: Param): InfinityFamilyAtom<Page, Cursor>;
78
78
  invalidate(param: Param): void;
79
79
  invalidateAll(): void;
80
+ has(param: Param): boolean;
81
+ peek(param: Param): InfinityFamilyAtom<Page, Cursor> | undefined;
80
82
  remove(param: Param): void;
83
+ clear(): void;
81
84
  getCache(): ReadonlyMap<Key, InfinityFamilyAtom<Page, Cursor>>;
82
85
  }
83
86
  declare function infinityAtomFamily<Param, Page, Cursor, Key = Param>(options: InfinityAtomFamilyOptions<Param, Page, Cursor, Key>): InfinityAtomFamily<Param, Page, Cursor, Key>;
@@ -90,15 +93,34 @@ type Mutation<in out Args extends readonly unknown[]> = {
90
93
  declare function mutation<const Args extends readonly unknown[]>(fn: (ctx: MutationContext, ...args: Args) => Promise<void>): Mutation<Args>;
91
94
  //#endregion
92
95
  //#region src/internal/store.d.ts
96
+ type StoreInspection = {
97
+ debugLabel: string | undefined;
98
+ status: AtomState<unknown>["status"];
99
+ dependencyCount: number;
100
+ reverseDependentCount: number;
101
+ listenerCount: number;
102
+ mountCount: number;
103
+ hasPromise: boolean;
104
+ };
93
105
  interface StoreClient {
106
+ get<V>(atom: Atom<V>): AtomState<V>;
107
+ peek<V>(atom: Atom<V>): V | undefined;
108
+ ensure<V>(atom: Atom<V>): Promise<V>;
94
109
  read<V>(atom: Atom<V>): Promise<V>;
110
+ run<V, A extends readonly unknown[]>(atom: WritableAtom<V, A>, ...args: NoInfer<A>): Promise<void>;
95
111
  apply<V, A extends readonly unknown[]>(atom: WritableAtom<V, A>, ...args: NoInfer<A>): Promise<void>;
112
+ runMutation<Args extends readonly unknown[]>(mutation: Mutation<Args>, ...args: Args): Promise<void>;
96
113
  mutate<Args extends readonly unknown[]>(mutation: Mutation<Args>, ...args: Args): Promise<void>;
114
+ set<V>(atom: Atom<V>, value: V): void;
115
+ set<V>(atom: Atom<V>, mutate: (prev: V | undefined) => V): void;
97
116
  write<V>(atom: Atom<V>, value: V): void;
98
117
  write<V>(atom: Atom<V>, mutate: (prev: V | undefined) => V): void;
99
118
  invalidate(atom: Atom<unknown>): void;
100
119
  invalidateMany(atoms: ReadonlyArray<Atom<unknown>>): void;
120
+ observe<V>(atom: Atom<V>, listener: (state: AtomState<V>) => void): () => void;
101
121
  subscribe<V>(atom: Atom<V>, listener: (state: AtomState<V>) => void): () => void;
122
+ inspect(atom: Atom<unknown>): StoreInspection;
123
+ dispose(): void;
102
124
  }
103
125
  type StoreOptions = unknown extends RegisteredContext ? {
104
126
  context?: RegisteredContext;
@@ -108,6 +130,9 @@ type StoreOptions = unknown extends RegisteredContext ? {
108
130
  declare class Store {
109
131
  #private;
110
132
  constructor(...args: unknown extends RegisteredContext ? [options?: StoreOptions] : [options: StoreOptions]);
133
+ get<V>(atom: Atom<V>): AtomState<V>;
134
+ peek<V>(atom: Atom<V>): V | undefined;
135
+ ensure<V>(atom: Atom<V>): Promise<V>;
111
136
  read<V>(atom: Atom<V>): Promise<V>;
112
137
  invalidate(atom: Atom<unknown>): void;
113
138
  invalidateMany(atoms: ReadonlyArray<Atom<unknown>>): void;
@@ -118,6 +143,13 @@ declare class Store {
118
143
  mutate<Args extends readonly unknown[]>(mutation: Mutation<Args>, ...args: Args): Promise<void>;
119
144
  write<V>(atom: Atom<V>, value: V): void;
120
145
  write<V>(atom: Atom<V>, mutate: (prev: V | undefined) => V): void;
146
+ run<V, A extends readonly unknown[]>(atom: WritableAtom<V, A>, ...args: NoInfer<A>): Promise<void>;
147
+ runMutation<Args extends readonly unknown[]>(mutation: Mutation<Args>, ...args: Args): Promise<void>;
148
+ set<V>(atom: Atom<V>, value: V): void;
149
+ set<V>(atom: Atom<V>, mutate: (prev: V | undefined) => V): void;
150
+ observe<V>(atom: Atom<V>, listener: (state: AtomState<V>) => void): () => void;
151
+ inspect(atom: Atom<unknown>): StoreInspection;
152
+ dispose(): void;
121
153
  getClient(): StoreClient;
122
154
  }
123
155
  declare function createStore(...args: unknown extends RegisteredContext ? [options?: StoreOptions] : [options: StoreOptions]): Store;
@@ -240,5 +272,5 @@ type AtomValue<A> = A extends Atom<infer V> ? V : never;
240
272
  type IsWritable<A> = A extends WritableAtom<unknown, readonly unknown[]> ? true : false;
241
273
  type AtomArgs<A> = A extends WritableAtom<unknown, infer Args> ? Args : never;
242
274
  //#endregion
243
- export { atom as A, InfinityFamilyAtom as C, infinityAtom as D, InfinityAtomOptions as E, SimpleAtomOptions as O, InfinityAtomFamilyOptions as S, InfiniteData as T, StoreClient as _, AtomState as a, mutation as b, IsWritable as c, StalePolicy as d, WritableAtom as f, Store as g, RegisteredContext as h, AtomContext as i, SimpleAtomWriteArg as k, MutationContext as l, Register as m, AtomArgs as n, AtomValue as o, WritableAtomContext as p, AtomConfig as r, DependencyEntry as s, Atom as t, RetryDelay as u, createStore as v, infinityAtomFamily as w, InfinityAtomFamily as x, Mutation as y };
244
- //# sourceMappingURL=types-DOyqUVX8.d.ts.map
275
+ export { SimpleAtomOptions as A, InfinityAtomFamily as C, InfiniteData as D, infinityAtomFamily as E, atom as M, InfinityAtomOptions as O, mutation as S, InfinityFamilyAtom as T, StoreClient as _, AtomState as a, createStore as b, IsWritable as c, StalePolicy as d, WritableAtom as f, Store as g, RegisteredContext as h, AtomContext as i, SimpleAtomWriteArg as j, infinityAtom as k, MutationContext as l, Register as m, AtomArgs as n, AtomValue as o, WritableAtomContext as p, AtomConfig as r, DependencyEntry as s, Atom as t, RetryDelay as u, StoreInspection as v, InfinityAtomFamilyOptions as w, Mutation as x, StoreOptions as y };
276
+ //# sourceMappingURL=types-D8ep-ydI.d.ts.map
@@ -0,0 +1,35 @@
1
+ import { t as CONFIG } from "./types-B2mzc3A5.js";
2
+ //#region src/internal/use-atom-value.ts
3
+ function getAtomValueResult(store, atom, snapshot, observe, isInitialRender) {
4
+ const stalePolicy = atom[CONFIG].stalePolicy ?? "keep";
5
+ if (snapshot.status === "pending") throw store.read(atom);
6
+ if (snapshot.status === "stale") {
7
+ if (stalePolicy === "suspend") throw store.read(atom);
8
+ store.read(atom);
9
+ if (observe) return {
10
+ value: snapshot.value,
11
+ isStale: true,
12
+ error: void 0
13
+ };
14
+ return snapshot.value;
15
+ }
16
+ if (snapshot.status === "error") {
17
+ if (observe && snapshot.value !== void 0) return {
18
+ value: snapshot.value,
19
+ isStale: false,
20
+ error: snapshot.error
21
+ };
22
+ if (isInitialRender) store.read(atom);
23
+ throw snapshot.error;
24
+ }
25
+ if (observe) return {
26
+ value: snapshot.value,
27
+ isStale: false,
28
+ error: void 0
29
+ };
30
+ return snapshot.value;
31
+ }
32
+ //#endregion
33
+ export { getAtomValueResult as t };
34
+
35
+ //# sourceMappingURL=use-atom-value-BhGvD9Vf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-atom-value-BhGvD9Vf.js","names":[],"sources":["../src/internal/use-atom-value.ts"],"mappings":";;AAUA,SAAgB,mBACd,OACA,MACA,UACA,SACA,iBACsB;CACtB,MAAM,cAA2B,KAAK,QAAQ,eAAe;CAE7D,IAAI,SAAS,WAAW,WACtB,MAAM,MAAM,KAAK,KAAK;CAGxB,IAAI,SAAS,WAAW,SAAS;EAC/B,IAAI,gBAAgB,WAClB,MAAM,MAAM,KAAK,KAAK;EAExB,MAAW,KAAK,KAAK;EAErB,IAAI,SACF,OAAO;GAAE,OAAO,SAAS;GAAO,SAAS;GAAM,OAAO,KAAA;GAAW;EAEnE,OAAO,SAAS;;CAGlB,IAAI,SAAS,WAAW,SAAS;EAC/B,IAAI,WAAW,SAAS,UAAU,KAAA,GAChC,OAAO;GACL,OAAO,SAAS;GAChB,SAAS;GACT,OAAO,SAAS;GACjB;EAEH,IAAI,iBACF,MAAW,KAAK,KAAK;EAEvB,MAAM,SAAS;;CAGjB,IAAI,SACF,OAAO;EAAE,OAAO,SAAS;EAAO,SAAS;EAAO,OAAO,KAAA;EAAW;CAEpE,OAAO,SAAS"}
@@ -1,4 +1,4 @@
1
- import { _ as StoreClient, f as WritableAtom, g as Store, t as Atom, y as Mutation } from "../types-DOyqUVX8.js";
1
+ import { _ as StoreClient, f as WritableAtom, g as Store, t as Atom, x as Mutation } from "../types-D8ep-ydI.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.18.0",
3
+ "version": "1.0.0",
4
4
  "description": "Atomic state management with explicit dependency graphs",
5
5
  "license": "MIT",
6
6
  "files": [
@@ -1 +0,0 @@
1
- {"version":3,"file":"store-CTGJpxoI.js","names":["#maxSize","#nodeMap","#valueMap","#head","#tail","#moveToMru","#insertBeforeTail","#evict","#detach","#fetch","#scheduler","#queue","#keySet","#flush","#atoms","#rdeps","#pending","#controllers","#familyUnsubs","#registeredFamilies","#context","#getOrCreate","#runRead","#registerRdeps","#makeCtx","#scheduleNotify","#markStale","#schedulePendingFlush","#flushScheduled","#flushPending","#markReverseDependentsStale","#registerSingleRdep","#autoRegisterFamily","#relatedOptimisticWrite","#rollbackRelatedSnapshots","#client"],"sources":["../src/internal/atom.ts","../src/internal/infinity-atom.ts","../src/internal/lru-cache.ts","../src/internal/infinity-atom-family.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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"}