@kdeveloper/kvark 1.4.3 → 1.5.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
@@ -1222,6 +1222,25 @@ type Writable = IsWritable<typeof countAtom>; // → true | false
1222
1222
 
1223
1223
  `WritableAtomContext` extends `MutationContext` — the same `writeOptimistic` / `invalidate` / `invalidateMany` helpers appear on both standalone mutations and writable `write` callbacks.
1224
1224
 
1225
+ ## Test Utilities
1226
+
1227
+ ```ts
1228
+ import { createTestStore, mockAtom, resolveAtom, withAtomMocks } from "@kdeveloper/kvark/tests";
1229
+
1230
+ const userMock = mockAtom(userAtom, { value: { id: "u1", name: "Ada" } });
1231
+ const profileAtom = atom({
1232
+ dependencies: withAtomMocks({ user: userAtom }, { user: userMock }),
1233
+ read: async (ctx) => ctx.read("user"),
1234
+ });
1235
+
1236
+ const store = createTestStore();
1237
+ expect(await resolveAtom(store, profileAtom)).toEqual({ id: "u1", name: "Ada" });
1238
+ ```
1239
+
1240
+ `mockAtom` also accepts `{ read: vi.fn(...) }` / `{ read: jest.fn(...) }` and `{ error }`.
1241
+ Use `mockAtomFamily` for family dependencies, `setAtomValue(s)` for seeded values, and
1242
+ `resolveAtom(s)` to read typed atom values in tests.
1243
+
1225
1244
  ## Package Structure
1226
1245
 
1227
1246
  | Import | Contents |
@@ -1231,6 +1250,7 @@ type Writable = IsWritable<typeof countAtom>; // → true | false
1231
1250
  | `@kdeveloper/kvark/preact` | `Provider`, `AtomCancellationScope`, `useStore`, `useAtomValue`, `useApplyAtom`, `useMutation`, `useAtom`, `useAtomContext` |
1232
1251
  | `@kdeveloper/kvark/vue` | `Provider`, `useStore`, `useAtomValue`, `useApplyAtom`, `useMutation`, `useAtom`, `useAtomContext`; types `ThenableShallowRef`, `ThenableObservedShallowRef`, `ObservedValue` |
1233
1252
  | `@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 |
1253
+ | `@kdeveloper/kvark/tests` | Test helpers: `createTestStore`, `mockAtom`, `mockAtomFamily`, `withAtomMocks`, `setAtomValue`, `setAtomValues`, `resolveAtom`, `resolveAtoms`; framework-agnostic and compatible with Vitest/Jest mock functions |
1234
1254
 
1235
1255
  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`.
1236
1256
 
@@ -0,0 +1,132 @@
1
+ import { d as RetryDelay, f as StalePolicy, h as WritableAtomContext, i as AtomContext, s as DependencyEntry, t as Atom } from "./types-DWKKl1AZ.js";
2
+
3
+ //#region src/internal/family-batch-schedulers.d.ts
4
+ type BatchSchedulerContext = {
5
+ pendingCount: number;
6
+ };
7
+ interface BatchScheduler {
8
+ schedule(flush: () => void, context: BatchSchedulerContext): void;
9
+ reset(): void;
10
+ }
11
+ declare function microtaskScheduler(): BatchScheduler;
12
+ declare function windowScheduler(ms: number): BatchScheduler;
13
+ declare function maxBatchSizeScheduler(maxSize: number): BatchScheduler;
14
+ declare function windowedFiniteBatchScheduler(ms: number, maxSize: number): BatchScheduler;
15
+ //#endregion
16
+ //#region src/internal/family-batch.d.ts
17
+ type BatchFetchInput<Param, Key, Deps extends Record<string, DependencyEntry>> = {
18
+ keys: readonly Key[];
19
+ params: readonly Param[];
20
+ signal: AbortSignal;
21
+ ctx: AtomContext<Deps>;
22
+ };
23
+ /**
24
+ * Input passed to a batched `stream` fetcher. Same shape as {@link BatchFetchInput},
25
+ * just aliased for clarity at call sites.
26
+ */
27
+ type BatchStreamInput<Param, Key, Deps extends Record<string, DependencyEntry>> = BatchFetchInput<Param, Key, Deps>;
28
+ //#endregion
29
+ //#region src/internal/family.d.ts
30
+ type AtomFamilyBaseOptions<Param, Key = Param> = {
31
+ stalePolicy?: StalePolicy;
32
+ retry?: boolean | number;
33
+ retryDelay?: RetryDelay;
34
+ cachePolicy?: "keep-all" | "lru";
35
+ lruSize?: number;
36
+ debugLabel?: string;
37
+ /**
38
+ * If `false`, the store will not auto-invalidate the atom after a successful `write`.
39
+ * Use this when the family's `write` writes the authoritative next value via
40
+ * `ctx.setOptimisticValue` and there is no need to re-run `read` to converge.
41
+ * Defaults to `true` (matches the typical CRUD pattern: `write` mutates the server,
42
+ * `read` then refetches the canonical state).
43
+ */
44
+ invalidateAfterWrite?: boolean;
45
+ /**
46
+ * Optional function to derive a stable cache key from `param`.
47
+ * Use when `Param` is an object and you want equality-by-value semantics.
48
+ * The returned key is used for all cache operations (get, set, LRU, invalidate, remove).
49
+ * The original `param` is still passed to `read`, `write`, and `dependencies`.
50
+ *
51
+ * For plain objects/arrays you can use `stableFamilyKey` from `@kdeveloper/kvark/family`.
52
+ * Treat the param object as immutable after the first call — `stableFamilyKey` memoises
53
+ * by object reference via a WeakMap.
54
+ */
55
+ paramKey?: (param: Param) => Key;
56
+ };
57
+ type AtomFamilyGetOptions<Param, Value, Deps extends Record<string, DependencyEntry>, Args extends readonly unknown[], Key = Param> = AtomFamilyBaseOptions<Param, Key> & {
58
+ dependencies?: (param: Param) => Deps;
59
+ read: (param: Param) => (ctx: AtomContext<Deps>) => Promise<Value>;
60
+ write?: (param: Param) => (ctx: WritableAtomContext<Deps, Value>, ...args: Args) => Promise<void>;
61
+ stream?: never;
62
+ reduce?: never;
63
+ initialValue?: never;
64
+ batch?: never;
65
+ };
66
+ /**
67
+ * Streaming variant of `atomFamily` (non-batched). Mirrors `atom({ stream, reduce, initialValue })`,
68
+ * but with a `param` curried in front so each member of the family can build its own iterable
69
+ * (e.g. SSE / WebSocket subscription scoped to `param`).
70
+ */
71
+ type AtomFamilyStreamOptions<Param, Value, Chunk, Deps extends Record<string, DependencyEntry>, Args extends readonly unknown[], Key = Param> = AtomFamilyBaseOptions<Param, Key> & {
72
+ dependencies?: (param: Param) => Deps;
73
+ /**
74
+ * Initial value used at the start of every `stream` run (including
75
+ * re-runs after invalidation). Provide a function to derive a per-param
76
+ * initial value.
77
+ */
78
+ initialValue: Value | ((param: Param) => Value);
79
+ stream: (param: Param) => (ctx: AtomContext<Deps>) => AsyncIterable<Chunk> | Promise<AsyncIterable<Chunk>>;
80
+ reduce: (param: Param) => (value: Value, chunk: Chunk, ctx: AtomContext<Deps>) => Value | Promise<Value>;
81
+ write?: (param: Param) => (ctx: WritableAtomContext<Deps, Value>, ...args: Args) => Promise<void>;
82
+ read?: never;
83
+ batch?: never;
84
+ };
85
+ type AtomFamilyBatchFetchConfig<Param, Value, Deps extends Record<string, DependencyEntry>, Key> = {
86
+ fetch: (input: BatchFetchInput<Param, Key, Deps>) => Promise<Map<Key, Value>>;
87
+ scheduler?: BatchScheduler;
88
+ stream?: never;
89
+ reduce?: never;
90
+ initialValue?: never;
91
+ };
92
+ type AtomFamilyBatchStreamConfig<Param, Value, Chunk, Deps extends Record<string, DependencyEntry>, Key> = {
93
+ /**
94
+ * Streaming batch fetcher. Each yielded `Map<Key, Chunk>` routes its entries to
95
+ * the matching member atoms; chunks for keys that are not currently subscribed
96
+ * are ignored.
97
+ */
98
+ stream: (input: BatchStreamInput<Param, Key, Deps>) => AsyncIterable<Map<Key, Chunk>> | Promise<AsyncIterable<Map<Key, Chunk>>>;
99
+ reduce: (value: Value, chunk: Chunk, ctx: AtomContext<Deps>) => Value | Promise<Value>;
100
+ initialValue: Value | ((param: Param) => Value);
101
+ scheduler?: BatchScheduler;
102
+ fetch?: never;
103
+ };
104
+ type AtomFamilyBatchOptions<Param, Value, Deps extends Record<string, DependencyEntry>, Key = Param, Chunk = never> = AtomFamilyBaseOptions<Param, Key> & {
105
+ /**
106
+ * In batch mode `dependencies` takes **no param** — the same set of dependency atoms
107
+ * is shared by every member of the family. This ensures that `ctx` passed to `batch.fetch`
108
+ * (or `batch.stream`) is valid for the entire batch.
109
+ */
110
+ dependencies?: () => Deps;
111
+ batch: AtomFamilyBatchFetchConfig<Param, Value, Deps, Key> | AtomFamilyBatchStreamConfig<Param, Value, Chunk, Deps, Key>;
112
+ read?: never;
113
+ write?: never;
114
+ stream?: never;
115
+ reduce?: never;
116
+ initialValue?: never;
117
+ };
118
+ type AtomFamilyOptions<Param, Value, Deps extends Record<string, DependencyEntry>, Args extends readonly unknown[], Key = Param, Chunk = never> = AtomFamilyGetOptions<Param, Value, Deps, Args, Key> | AtomFamilyStreamOptions<Param, Value, Chunk, Deps, Args, Key> | AtomFamilyBatchOptions<Param, Value, Deps, Key, Chunk>;
119
+ interface AtomFamily<Param, Value, Key = Param> {
120
+ (param: Param): Atom<Value>;
121
+ invalidate(param: Param): void;
122
+ invalidateAll(): void;
123
+ has(param: Param): boolean;
124
+ peek(param: Param): Atom<Value> | undefined;
125
+ remove(param: Param): void;
126
+ clear(): void;
127
+ getCache(): ReadonlyMap<Key, Atom<Value>>;
128
+ }
129
+ declare function atomFamily<Param, Value, Deps extends Record<string, DependencyEntry> = Record<never, never>, Args extends readonly unknown[] = readonly [], Key = Param, Chunk = never>(options: AtomFamilyOptions<Param, Value, Deps, Args, Key, Chunk>): AtomFamily<Param, Value, Key>;
130
+ //#endregion
131
+ export { AtomFamilyStreamOptions as a, BatchStreamInput as c, maxBatchSizeScheduler as d, microtaskScheduler as f, AtomFamilyOptions as i, BatchScheduler as l, windowedFiniteBatchScheduler as m, AtomFamilyBatchOptions as n, atomFamily as o, windowScheduler as p, AtomFamilyGetOptions as r, BatchFetchInput as s, AtomFamily as t, BatchSchedulerContext as u };
132
+ //# sourceMappingURL=family-DAd09eM5.d.ts.map
package/dist/family.d.ts CHANGED
@@ -1,133 +1,6 @@
1
- import { A as InfinityAtomOptions, C as Mutation, D as InfinityFamilyAtom, E as InfinityAtomFamilyOptions, O as infinityAtomFamily, P as atom, S as createStore, T as InfinityAtomFamily, _ as RegisteredContext, a as AtomState, b as StoreInspection, d as RetryDelay, f as StalePolicy, g as Register, h as WritableAtomContext, i as AtomContext, j as infinityAtom, k as InfiniteData, l as MutationContext, m as WritableAtom, o as AtomValue, r as AtomConfig, s as DependencyEntry, t as Atom, v as Store, w as mutation, x as StoreOptions, y as StoreClient } from "./types-Bxnij_5I.js";
1
+ import { A as InfinityAtomOptions, C as Mutation, D as InfinityFamilyAtom, E as InfinityAtomFamilyOptions, O as infinityAtomFamily, P as atom, S as createStore, T as InfinityAtomFamily, _ as RegisteredContext, a as AtomState, b as StoreInspection, f as StalePolicy, g as Register, i as AtomContext, j as infinityAtom, k as InfiniteData, l as MutationContext, m as WritableAtom, o as AtomValue, r as AtomConfig, t as Atom, v as Store, w as mutation, x as StoreOptions, y as StoreClient } from "./types-DWKKl1AZ.js";
2
+ import { a as AtomFamilyStreamOptions, c as BatchStreamInput, d as maxBatchSizeScheduler, f as microtaskScheduler, i as AtomFamilyOptions, l as BatchScheduler, m as windowedFiniteBatchScheduler, n as AtomFamilyBatchOptions, o as atomFamily, p as windowScheduler, r as AtomFamilyGetOptions, s as BatchFetchInput, t as AtomFamily, u as BatchSchedulerContext } from "./family-DAd09eM5.js";
2
3
 
3
- //#region src/internal/family-batch-schedulers.d.ts
4
- type BatchSchedulerContext = {
5
- pendingCount: number;
6
- };
7
- interface BatchScheduler {
8
- schedule(flush: () => void, context: BatchSchedulerContext): void;
9
- reset(): void;
10
- }
11
- declare function microtaskScheduler(): BatchScheduler;
12
- declare function windowScheduler(ms: number): BatchScheduler;
13
- declare function maxBatchSizeScheduler(maxSize: number): BatchScheduler;
14
- declare function windowedFiniteBatchScheduler(ms: number, maxSize: number): BatchScheduler;
15
- //#endregion
16
- //#region src/internal/family-batch.d.ts
17
- type BatchFetchInput<Param, Key, Deps extends Record<string, DependencyEntry>> = {
18
- keys: readonly Key[];
19
- params: readonly Param[];
20
- signal: AbortSignal;
21
- ctx: AtomContext<Deps>;
22
- };
23
- /**
24
- * Input passed to a batched `stream` fetcher. Same shape as {@link BatchFetchInput},
25
- * just aliased for clarity at call sites.
26
- */
27
- type BatchStreamInput<Param, Key, Deps extends Record<string, DependencyEntry>> = BatchFetchInput<Param, Key, Deps>;
28
- //#endregion
29
- //#region src/internal/family.d.ts
30
- type AtomFamilyBaseOptions<Param, Key = Param> = {
31
- stalePolicy?: StalePolicy;
32
- retry?: boolean | number;
33
- retryDelay?: RetryDelay;
34
- cachePolicy?: "keep-all" | "lru";
35
- lruSize?: number;
36
- debugLabel?: string;
37
- /**
38
- * If `false`, the store will not auto-invalidate the atom after a successful `write`.
39
- * Use this when the family's `write` writes the authoritative next value via
40
- * `ctx.setOptimisticValue` and there is no need to re-run `read` to converge.
41
- * Defaults to `true` (matches the typical CRUD pattern: `write` mutates the server,
42
- * `read` then refetches the canonical state).
43
- */
44
- invalidateAfterWrite?: boolean;
45
- /**
46
- * Optional function to derive a stable cache key from `param`.
47
- * Use when `Param` is an object and you want equality-by-value semantics.
48
- * The returned key is used for all cache operations (get, set, LRU, invalidate, remove).
49
- * The original `param` is still passed to `read`, `write`, and `dependencies`.
50
- *
51
- * For plain objects/arrays you can use `stableFamilyKey` from `@kdeveloper/kvark/family`.
52
- * Treat the param object as immutable after the first call — `stableFamilyKey` memoises
53
- * by object reference via a WeakMap.
54
- */
55
- paramKey?: (param: Param) => Key;
56
- };
57
- type AtomFamilyGetOptions<Param, Value, Deps extends Record<string, DependencyEntry>, Args extends readonly unknown[], Key = Param> = AtomFamilyBaseOptions<Param, Key> & {
58
- dependencies?: (param: Param) => Deps;
59
- read: (param: Param) => (ctx: AtomContext<Deps>) => Promise<Value>;
60
- write?: (param: Param) => (ctx: WritableAtomContext<Deps, Value>, ...args: Args) => Promise<void>;
61
- stream?: never;
62
- reduce?: never;
63
- initialValue?: never;
64
- batch?: never;
65
- };
66
- /**
67
- * Streaming variant of `atomFamily` (non-batched). Mirrors `atom({ stream, reduce, initialValue })`,
68
- * but with a `param` curried in front so each member of the family can build its own iterable
69
- * (e.g. SSE / WebSocket subscription scoped to `param`).
70
- */
71
- type AtomFamilyStreamOptions<Param, Value, Chunk, Deps extends Record<string, DependencyEntry>, Args extends readonly unknown[], Key = Param> = AtomFamilyBaseOptions<Param, Key> & {
72
- dependencies?: (param: Param) => Deps;
73
- /**
74
- * Initial value used at the start of every `stream` run (including
75
- * re-runs after invalidation). Provide a function to derive a per-param
76
- * initial value.
77
- */
78
- initialValue: Value | ((param: Param) => Value);
79
- stream: (param: Param) => (ctx: AtomContext<Deps>) => AsyncIterable<Chunk> | Promise<AsyncIterable<Chunk>>;
80
- reduce: (param: Param) => (value: Value, chunk: Chunk, ctx: AtomContext<Deps>) => Value | Promise<Value>;
81
- write?: (param: Param) => (ctx: WritableAtomContext<Deps, Value>, ...args: Args) => Promise<void>;
82
- read?: never;
83
- batch?: never;
84
- };
85
- type AtomFamilyBatchFetchConfig<Param, Value, Deps extends Record<string, DependencyEntry>, Key> = {
86
- fetch: (input: BatchFetchInput<Param, Key, Deps>) => Promise<Map<Key, Value>>;
87
- scheduler?: BatchScheduler;
88
- stream?: never;
89
- reduce?: never;
90
- initialValue?: never;
91
- };
92
- type AtomFamilyBatchStreamConfig<Param, Value, Chunk, Deps extends Record<string, DependencyEntry>, Key> = {
93
- /**
94
- * Streaming batch fetcher. Each yielded `Map<Key, Chunk>` routes its entries to
95
- * the matching member atoms; chunks for keys that are not currently subscribed
96
- * are ignored.
97
- */
98
- stream: (input: BatchStreamInput<Param, Key, Deps>) => AsyncIterable<Map<Key, Chunk>> | Promise<AsyncIterable<Map<Key, Chunk>>>;
99
- reduce: (value: Value, chunk: Chunk, ctx: AtomContext<Deps>) => Value | Promise<Value>;
100
- initialValue: Value | ((param: Param) => Value);
101
- scheduler?: BatchScheduler;
102
- fetch?: never;
103
- };
104
- type AtomFamilyBatchOptions<Param, Value, Deps extends Record<string, DependencyEntry>, Key = Param, Chunk = never> = AtomFamilyBaseOptions<Param, Key> & {
105
- /**
106
- * In batch mode `dependencies` takes **no param** — the same set of dependency atoms
107
- * is shared by every member of the family. This ensures that `ctx` passed to `batch.fetch`
108
- * (or `batch.stream`) is valid for the entire batch.
109
- */
110
- dependencies?: () => Deps;
111
- batch: AtomFamilyBatchFetchConfig<Param, Value, Deps, Key> | AtomFamilyBatchStreamConfig<Param, Value, Chunk, Deps, Key>;
112
- read?: never;
113
- write?: never;
114
- stream?: never;
115
- reduce?: never;
116
- initialValue?: never;
117
- };
118
- type AtomFamilyOptions<Param, Value, Deps extends Record<string, DependencyEntry>, Args extends readonly unknown[], Key = Param, Chunk = never> = AtomFamilyGetOptions<Param, Value, Deps, Args, Key> | AtomFamilyStreamOptions<Param, Value, Chunk, Deps, Args, Key> | AtomFamilyBatchOptions<Param, Value, Deps, Key, Chunk>;
119
- interface AtomFamily<Param, Value, Key = Param> {
120
- (param: Param): Atom<Value>;
121
- invalidate(param: Param): void;
122
- invalidateAll(): void;
123
- has(param: Param): boolean;
124
- peek(param: Param): Atom<Value> | undefined;
125
- remove(param: Param): void;
126
- clear(): void;
127
- getCache(): ReadonlyMap<Key, Atom<Value>>;
128
- }
129
- declare function atomFamily<Param, Value, Deps extends Record<string, DependencyEntry> = Record<never, never>, Args extends readonly unknown[] = readonly [], Key = Param, Chunk = never>(options: AtomFamilyOptions<Param, Value, Deps, Args, Key, Chunk>): AtomFamily<Param, Value, Key>;
130
- //#endregion
131
4
  //#region src/internal/stable-family-key.d.ts
132
5
  /**
133
6
  * Produces a deterministic string key for plain-object/array/primitive values.
package/dist/family.js CHANGED
@@ -1,2 +1,3 @@
1
- import { a as microtaskScheduler, c as infinityAtomFamily, d as atom, i as maxBatchSizeScheduler, l as stableFamilyKey, n as mutation, o as windowScheduler, r as atomFamily, s as windowedFiniteBatchScheduler, t as createStore, u as infinityAtom } from "./store-DxInm7iX.js";
1
+ import { a as microtaskScheduler, f as atom, i as maxBatchSizeScheduler, l as stableFamilyKey, n as mutation, o as windowScheduler, r as atomFamily, s as windowedFiniteBatchScheduler, t as createStore } from "./store-C9XvK8PL.js";
2
+ import { n as infinityAtom, t as infinityAtomFamily } from "./infinity-atom-family-Dgy8KNoF.js";
2
3
  export { atom, atomFamily, createStore, infinityAtom, infinityAtomFamily, maxBatchSizeScheduler, microtaskScheduler, mutation, stableFamilyKey, windowScheduler, windowedFiniteBatchScheduler };
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { A as InfinityAtomOptions, C as Mutation, D as InfinityFamilyAtom, E as InfinityAtomFamilyOptions, M as SimpleAtomOptions, N as SimpleAtomWriteArg, O as infinityAtomFamily, P as atom, S as createStore, T as InfinityAtomFamily, _ as RegisteredContext, a as AtomState, b as StoreInspection, c as IsWritable, d as RetryDelay, f as StalePolicy, g as Register, h as WritableAtomContext, i as AtomContext, j as infinityAtom, k as InfiniteData, l as MutationContext, m as WritableAtom, n as AtomArgs, o as AtomValue, p as StreamAtomConfig, r as AtomConfig, t as Atom, u as ReadAtomConfig, v as Store, w as mutation, x as StoreOptions, y as StoreClient } from "./types-Bxnij_5I.js";
1
+ import { A as InfinityAtomOptions, C as Mutation, D as InfinityFamilyAtom, E as InfinityAtomFamilyOptions, M as SimpleAtomOptions, N as SimpleAtomWriteArg, O as infinityAtomFamily, P as atom, S as createStore, T as InfinityAtomFamily, _ as RegisteredContext, a as AtomState, b as StoreInspection, c as IsWritable, d as RetryDelay, f as StalePolicy, g as Register, h as WritableAtomContext, i as AtomContext, j as infinityAtom, k as InfiniteData, l as MutationContext, m as WritableAtom, n as AtomArgs, o as AtomValue, p as StreamAtomConfig, r as AtomConfig, t as Atom, u as ReadAtomConfig, v as Store, w as mutation, x as StoreOptions, y as StoreClient } from "./types-DWKKl1AZ.js";
2
2
  export { Atom, AtomArgs, AtomConfig, AtomContext, AtomState, AtomValue, InfiniteData, InfinityAtomFamily, InfinityAtomFamilyOptions, InfinityAtomOptions, InfinityFamilyAtom, IsWritable, Mutation, MutationContext, ReadAtomConfig, Register, RegisteredContext, RetryDelay, SimpleAtomOptions, SimpleAtomWriteArg, StalePolicy, Store, StoreClient, StoreInspection, StoreOptions, StreamAtomConfig, WritableAtom, WritableAtomContext, atom, createStore, infinityAtom, infinityAtomFamily, mutation };
package/dist/index.js CHANGED
@@ -1,2 +1,3 @@
1
- import { c as infinityAtomFamily, d as atom, n as mutation, t as createStore, u as infinityAtom } from "./store-DxInm7iX.js";
1
+ import { f as atom, n as mutation, t as createStore } from "./store-C9XvK8PL.js";
2
+ import { n as infinityAtom, t as infinityAtomFamily } from "./infinity-atom-family-Dgy8KNoF.js";
2
3
  export { atom, createStore, infinityAtom, infinityAtomFamily, mutation };
@@ -0,0 +1,156 @@
1
+ import { n as FAMILY_LINK } from "./types-B2mzc3A5.js";
2
+ import { c as createFamilyParamKeyDevTracker, d as LruCache, f as atom, u as isDev } from "./store-C9XvK8PL.js";
3
+ //#region src/internal/infinity-atom.ts
4
+ function infinityAtom(options) {
5
+ function applyMaxPages(pages, cursors) {
6
+ if (options.maxPages != null && pages.length > options.maxPages) {
7
+ const excess = pages.length - options.maxPages;
8
+ return {
9
+ pages: pages.slice(excess),
10
+ cursors: cursors.slice(excess)
11
+ };
12
+ }
13
+ return {
14
+ pages,
15
+ cursors
16
+ };
17
+ }
18
+ function buildResult(pages, pageCursors) {
19
+ const trimmed = applyMaxPages(pages, pageCursors);
20
+ const lastPage = trimmed.pages[trimmed.pages.length - 1];
21
+ const nextCursor = lastPage != null ? options.getNextCursor(lastPage, trimmed.pages) : void 0;
22
+ return {
23
+ pages: trimmed.pages,
24
+ pageCursors: trimmed.cursors,
25
+ hasNextPage: nextCursor != null,
26
+ isFetchingNextPage: false
27
+ };
28
+ }
29
+ const config = {
30
+ invalidateAfterWrite: false,
31
+ read: async (ctx) => {
32
+ const prev = ctx.getPreviousValue();
33
+ if (prev == null) return buildResult([await options.queryFn({
34
+ cursor: options.initialCursor,
35
+ signal: ctx.signal,
36
+ global: ctx.global
37
+ })], [options.initialCursor]);
38
+ const pages = [];
39
+ const pageCursors = [];
40
+ for (const cursor of prev.pageCursors) {
41
+ const page = await options.queryFn({
42
+ cursor,
43
+ signal: ctx.signal,
44
+ global: ctx.global
45
+ });
46
+ pages.push(page);
47
+ pageCursors.push(cursor);
48
+ }
49
+ return buildResult(pages, pageCursors);
50
+ },
51
+ write: async (ctx, action) => {
52
+ if (action !== "loadNext") return;
53
+ const current = ctx.getPreviousValue();
54
+ if (current == null || !current.hasNextPage) return;
55
+ const lastPage = current.pages[current.pages.length - 1];
56
+ if (lastPage == null) return;
57
+ const nextCursor = options.getNextCursor(lastPage, current.pages);
58
+ if (nextCursor == null) return;
59
+ ctx.setOptimisticValue({
60
+ ...current,
61
+ isFetchingNextPage: true
62
+ });
63
+ const page = await options.queryFn({
64
+ cursor: nextCursor,
65
+ signal: ctx.signal,
66
+ global: ctx.global
67
+ });
68
+ const pages = [...current.pages, page];
69
+ const pageCursors = [...current.pageCursors, nextCursor];
70
+ ctx.setOptimisticValue(buildResult(pages, pageCursors));
71
+ }
72
+ };
73
+ if (options.debugLabel != null) config.debugLabel = options.debugLabel;
74
+ if (options.stalePolicy != null) config.stalePolicy = options.stalePolicy;
75
+ if (options.retry != null) config.retry = options.retry;
76
+ if (options.retryDelay != null) config.retryDelay = options.retryDelay;
77
+ if (options.dependencies != null) config.dependencies = options.dependencies;
78
+ return atom(config);
79
+ }
80
+ //#endregion
81
+ //#region src/internal/infinity-atom-family.ts
82
+ function infinityAtomFamily(options) {
83
+ const cache = new LruCache(options.cachePolicy === "lru" ? options.lruSize ?? 100 : Infinity);
84
+ const storeCallbacks = /* @__PURE__ */ new Set();
85
+ const link = {
86
+ invalidateAtom(target) {
87
+ for (const cb of storeCallbacks) cb(target);
88
+ },
89
+ registerStore(cb) {
90
+ storeCallbacks.add(cb);
91
+ return () => {
92
+ storeCallbacks.delete(cb);
93
+ };
94
+ }
95
+ };
96
+ const devTracker = isDev ? createFamilyParamKeyDevTracker({
97
+ hasParamKey: options.paramKey != null,
98
+ debugLabel: options.debugLabel
99
+ }) : null;
100
+ function keyOf(param) {
101
+ const key = options.paramKey != null ? options.paramKey(param) : param;
102
+ devTracker?.track(param, key);
103
+ return key;
104
+ }
105
+ function attachLink(target) {
106
+ target[FAMILY_LINK] = link;
107
+ }
108
+ function buildAtomOptions(param, key) {
109
+ const opts = {
110
+ initialCursor: options.initialCursor(param),
111
+ queryFn: options.queryFn(param),
112
+ getNextCursor: options.getNextCursor(param)
113
+ };
114
+ if (options.maxPages != null) opts.maxPages = options.maxPages;
115
+ if (options.stalePolicy != null) opts.stalePolicy = options.stalePolicy;
116
+ if (options.retry != null) opts.retry = options.retry;
117
+ if (options.retryDelay != null) opts.retryDelay = options.retryDelay;
118
+ if (options.dependencies != null) opts.dependencies = options.dependencies(param);
119
+ if (options.debugLabel != null) {
120
+ const labelSuffix = options.paramKey != null ? String(key) : String(param);
121
+ opts.debugLabel = `${options.debugLabel}(${labelSuffix})`;
122
+ }
123
+ return opts;
124
+ }
125
+ function getOrCreate(param) {
126
+ const key = keyOf(param);
127
+ const cached = cache.get(key);
128
+ if (cached != null) return cached;
129
+ const created = infinityAtom(buildAtomOptions(param, key));
130
+ attachLink(created);
131
+ cache.set(key, created);
132
+ return created;
133
+ }
134
+ const family = getOrCreate;
135
+ family.invalidate = (param) => {
136
+ const cached = cache.peek(keyOf(param));
137
+ if (cached != null) link.invalidateAtom(cached);
138
+ };
139
+ family.invalidateAll = () => {
140
+ for (const cached of cache.values()) link.invalidateAtom(cached);
141
+ };
142
+ family.has = (param) => cache.peek(keyOf(param)) != null;
143
+ family.peek = (param) => cache.peek(keyOf(param));
144
+ family.remove = (param) => {
145
+ cache.delete(keyOf(param));
146
+ };
147
+ family.clear = () => {
148
+ cache.clear();
149
+ };
150
+ family.getCache = () => cache.asReadonlyMap();
151
+ return family;
152
+ }
153
+ //#endregion
154
+ export { infinityAtom as n, infinityAtomFamily as t };
155
+
156
+ //# sourceMappingURL=infinity-atom-family-Dgy8KNoF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"infinity-atom-family-Dgy8KNoF.js","names":[],"sources":["../src/internal/infinity-atom.ts","../src/internal/infinity-atom-family.ts"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { C as Mutation, m as WritableAtom, t as Atom, v as Store, y as StoreClient } from "../types-Bxnij_5I.js";
1
+ import { C as Mutation, m as WritableAtom, t as Atom, v as Store, y as StoreClient } from "../types-DWKKl1AZ.js";
2
2
  import { ComponentChildren, VNode } from "preact";
3
3
 
4
4
  //#region src/preact/atom-cancellation-scope.d.ts
@@ -1,4 +1,4 @@
1
- import { t as getAtomValueResult } from "../use-atom-value-Bu9qPOox.js";
1
+ import { t as getAtomValueResult } from "../use-atom-value-BiN9catp.js";
2
2
  import { createContext } from "preact";
3
3
  import { useCallback, useContext, useEffect, useMemo, useReducer, useRef } from "preact/hooks";
4
4
  import { jsx } from "preact/jsx-runtime";
@@ -1,4 +1,4 @@
1
- import { C as Mutation, m as WritableAtom, t as Atom, v as Store, y as StoreClient } from "../types-Bxnij_5I.js";
1
+ import { C as Mutation, m as WritableAtom, t as Atom, v as Store, y as StoreClient } from "../types-DWKKl1AZ.js";
2
2
  import { ReactNode } from "react";
3
3
 
4
4
  //#region src/react/atom-cancellation-scope.d.ts
@@ -1,4 +1,4 @@
1
- import { t as getAtomValueResult } from "../use-atom-value-Bu9qPOox.js";
1
+ import { t as getAtomValueResult } from "../use-atom-value-BiN9catp.js";
2
2
  import { createContext, useCallback, useContext, useEffect, useMemo, useReducer, useRef } from "react";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  //#region src/react/provider.tsx
@@ -56,84 +56,6 @@ function fromInitialValue(initialValue, options) {
56
56
  };
57
57
  }
58
58
  //#endregion
59
- //#region src/internal/infinity-atom.ts
60
- function infinityAtom(options) {
61
- function applyMaxPages(pages, cursors) {
62
- if (options.maxPages != null && pages.length > options.maxPages) {
63
- const excess = pages.length - options.maxPages;
64
- return {
65
- pages: pages.slice(excess),
66
- cursors: cursors.slice(excess)
67
- };
68
- }
69
- return {
70
- pages,
71
- cursors
72
- };
73
- }
74
- function buildResult(pages, pageCursors) {
75
- const trimmed = applyMaxPages(pages, pageCursors);
76
- const lastPage = trimmed.pages[trimmed.pages.length - 1];
77
- const nextCursor = lastPage != null ? options.getNextCursor(lastPage, trimmed.pages) : void 0;
78
- return {
79
- pages: trimmed.pages,
80
- pageCursors: trimmed.cursors,
81
- hasNextPage: nextCursor != null,
82
- isFetchingNextPage: false
83
- };
84
- }
85
- const config = {
86
- invalidateAfterWrite: false,
87
- read: async (ctx) => {
88
- const prev = ctx.getPreviousValue();
89
- if (prev == null) return buildResult([await options.queryFn({
90
- cursor: options.initialCursor,
91
- signal: ctx.signal,
92
- global: ctx.global
93
- })], [options.initialCursor]);
94
- const pages = [];
95
- const pageCursors = [];
96
- for (const cursor of prev.pageCursors) {
97
- const page = await options.queryFn({
98
- cursor,
99
- signal: ctx.signal,
100
- global: ctx.global
101
- });
102
- pages.push(page);
103
- pageCursors.push(cursor);
104
- }
105
- return buildResult(pages, pageCursors);
106
- },
107
- write: async (ctx, action) => {
108
- if (action !== "loadNext") return;
109
- const current = ctx.getPreviousValue();
110
- if (current == null || !current.hasNextPage) return;
111
- const lastPage = current.pages[current.pages.length - 1];
112
- if (lastPage == null) return;
113
- const nextCursor = options.getNextCursor(lastPage, current.pages);
114
- if (nextCursor == null) return;
115
- ctx.setOptimisticValue({
116
- ...current,
117
- isFetchingNextPage: true
118
- });
119
- const page = await options.queryFn({
120
- cursor: nextCursor,
121
- signal: ctx.signal,
122
- global: ctx.global
123
- });
124
- const pages = [...current.pages, page];
125
- const pageCursors = [...current.pageCursors, nextCursor];
126
- ctx.setOptimisticValue(buildResult(pages, pageCursors));
127
- }
128
- };
129
- if (options.debugLabel != null) config.debugLabel = options.debugLabel;
130
- if (options.stalePolicy != null) config.stalePolicy = options.stalePolicy;
131
- if (options.retry != null) config.retry = options.retry;
132
- if (options.retryDelay != null) config.retryDelay = options.retryDelay;
133
- if (options.dependencies != null) config.dependencies = options.dependencies;
134
- return atom(config);
135
- }
136
- //#endregion
137
59
  //#region src/internal/lru-cache.ts
138
60
  /**
139
61
  * Fixed-capacity cache with O(1) get, set, delete and LRU eviction.
@@ -400,79 +322,6 @@ function formatKey(value) {
400
322
  return String(value);
401
323
  }
402
324
  //#endregion
403
- //#region src/internal/infinity-atom-family.ts
404
- function infinityAtomFamily(options) {
405
- const cache = new LruCache(options.cachePolicy === "lru" ? options.lruSize ?? 100 : Infinity);
406
- const storeCallbacks = /* @__PURE__ */ new Set();
407
- const link = {
408
- invalidateAtom(target) {
409
- for (const cb of storeCallbacks) cb(target);
410
- },
411
- registerStore(cb) {
412
- storeCallbacks.add(cb);
413
- return () => {
414
- storeCallbacks.delete(cb);
415
- };
416
- }
417
- };
418
- const devTracker = isDev ? createFamilyParamKeyDevTracker({
419
- hasParamKey: options.paramKey != null,
420
- debugLabel: options.debugLabel
421
- }) : null;
422
- function keyOf(param) {
423
- const key = options.paramKey != null ? options.paramKey(param) : param;
424
- devTracker?.track(param, key);
425
- return key;
426
- }
427
- function attachLink(target) {
428
- target[FAMILY_LINK] = link;
429
- }
430
- function buildAtomOptions(param, key) {
431
- const opts = {
432
- initialCursor: options.initialCursor(param),
433
- queryFn: options.queryFn(param),
434
- getNextCursor: options.getNextCursor(param)
435
- };
436
- if (options.maxPages != null) opts.maxPages = options.maxPages;
437
- if (options.stalePolicy != null) opts.stalePolicy = options.stalePolicy;
438
- if (options.retry != null) opts.retry = options.retry;
439
- if (options.retryDelay != null) opts.retryDelay = options.retryDelay;
440
- if (options.dependencies != null) opts.dependencies = options.dependencies(param);
441
- if (options.debugLabel != null) {
442
- const labelSuffix = options.paramKey != null ? String(key) : String(param);
443
- opts.debugLabel = `${options.debugLabel}(${labelSuffix})`;
444
- }
445
- return opts;
446
- }
447
- function getOrCreate(param) {
448
- const key = keyOf(param);
449
- const cached = cache.get(key);
450
- if (cached != null) return cached;
451
- const created = infinityAtom(buildAtomOptions(param, key));
452
- attachLink(created);
453
- cache.set(key, created);
454
- return created;
455
- }
456
- const family = getOrCreate;
457
- family.invalidate = (param) => {
458
- const cached = cache.peek(keyOf(param));
459
- if (cached != null) link.invalidateAtom(cached);
460
- };
461
- family.invalidateAll = () => {
462
- for (const cached of cache.values()) link.invalidateAtom(cached);
463
- };
464
- family.has = (param) => cache.peek(keyOf(param)) != null;
465
- family.peek = (param) => cache.peek(keyOf(param));
466
- family.remove = (param) => {
467
- cache.delete(keyOf(param));
468
- };
469
- family.clear = () => {
470
- cache.clear();
471
- };
472
- family.getCache = () => cache.asReadonlyMap();
473
- return family;
474
- }
475
- //#endregion
476
325
  //#region src/internal/family-batch-schedulers.ts
477
326
  function microtaskScheduler() {
478
327
  let scheduled = false;
@@ -1479,6 +1328,6 @@ function extractPreviousValue(state) {
1479
1328
  if (state.status === "error") return state.value;
1480
1329
  }
1481
1330
  //#endregion
1482
- export { microtaskScheduler as a, infinityAtomFamily as c, atom as d, maxBatchSizeScheduler as i, stableFamilyKey as l, mutation as n, windowScheduler as o, atomFamily as r, windowedFiniteBatchScheduler as s, createStore as t, infinityAtom as u };
1331
+ export { microtaskScheduler as a, createFamilyParamKeyDevTracker as c, LruCache as d, atom as f, maxBatchSizeScheduler as i, stableFamilyKey as l, mutation as n, windowScheduler as o, atomFamily as r, windowedFiniteBatchScheduler as s, createStore as t, isDev as u };
1483
1332
 
1484
- //# sourceMappingURL=store-DxInm7iX.js.map
1333
+ //# sourceMappingURL=store-C9XvK8PL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store-C9XvK8PL.js","names":["#maxSize","#nodeMap","#valueMap","#head","#tail","#moveToMru","#insertBeforeTail","#evict","#detach","#fetch","#scheduler","#queue","#keySet","#flush","#stream","#atoms","#entries","#rdeps","#pending","#familyUnsubs","#registeredFamilies","#context","#disposed","#abortRead","#assertActive","#getOrCreate","#runRead","#abortReadIfUnowned","#registerRdeps","#makeCtx","#runStreamRead","#scheduleNotify","#markStale","#schedulePendingFlush","#cancelRead","#flushScheduled","#flushPending","#markReverseDependentsStale","#registerSingleRdep","#autoRegisterFamily","#relatedOptimisticWrite","#rollbackRelatedSnapshots","#client"],"sources":["../src/internal/atom.ts","../src/internal/lru-cache.ts","../src/internal/is-dev.ts","../src/internal/stable-family-key.ts","../src/internal/family-param-key-dev.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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"}
@@ -0,0 +1,49 @@
1
+ import { N as SimpleAtomWriteArg, _ as RegisteredContext, m as WritableAtom, o as AtomValue, s as DependencyEntry, t as Atom, v as Store, x as StoreOptions, y as StoreClient } from "./types-DWKKl1AZ.js";
2
+ import { t as AtomFamily } from "./family-DAd09eM5.js";
3
+
4
+ //#region src/tests.d.ts
5
+ type TestStoreClient = Pick<StoreClient, "read" | "write">;
6
+ type AtomValueEntry<A extends Atom<unknown> = Atom<unknown>> = readonly [atom: A, value: AtomValue<A>];
7
+ type TestStoreOptions = StoreOptions & {
8
+ values?: readonly AtomValueEntry[];
9
+ };
10
+ type MockAtomRead<Value> = () => Value | Promise<Value>;
11
+ type MockAtomValueOptions<Value> = {
12
+ debugLabel?: string;
13
+ value: Value;
14
+ };
15
+ type MockAtomReadOptions<Value> = {
16
+ debugLabel?: string;
17
+ read: MockAtomRead<Value>;
18
+ };
19
+ type MockAtomErrorOptions = {
20
+ debugLabel?: string;
21
+ error: unknown;
22
+ };
23
+ type MockAtomOptions<Value> = MockAtomValueOptions<Value> | MockAtomReadOptions<Value> | MockAtomErrorOptions;
24
+ type MockAtomFamilyValueOptions<Value> = {
25
+ debugLabel?: string;
26
+ value: Value;
27
+ };
28
+ type MockAtomFamilyGetValueOptions<Param, Value> = {
29
+ debugLabel?: string;
30
+ getValue: (param: Param) => Value | Promise<Value>;
31
+ };
32
+ type MockAtomFamilyErrorOptions<Param> = {
33
+ debugLabel?: string;
34
+ getError?: (param: Param) => unknown;
35
+ error?: unknown;
36
+ };
37
+ type MockAtomFamilyOptions<Param, Value> = MockAtomFamilyValueOptions<Value> | MockAtomFamilyGetValueOptions<Param, Value> | MockAtomFamilyErrorOptions<Param>;
38
+ declare function createTestStore(...args: unknown extends RegisteredContext ? [options?: TestStoreOptions] : [options: TestStoreOptions]): Store;
39
+ declare function mockAtom<Value>(source: Atom<Value>, options: MockAtomValueOptions<Value>): WritableAtom<Value, readonly [SimpleAtomWriteArg<Value>]>;
40
+ declare function mockAtom<Value>(source: Atom<Value>, options: MockAtomReadOptions<Value> | MockAtomErrorOptions): Atom<Value>;
41
+ declare function mockAtomFamily<Param, Value, Key>(source: AtomFamily<Param, Value, Key>, options: MockAtomFamilyOptions<Param, Value>): AtomFamily<Param, Value>;
42
+ declare function withAtomMocks<Deps extends Record<string, DependencyEntry>>(dependencies: Deps, mocks: Partial<Deps>): Deps;
43
+ declare function setAtomValue<Value>(store: TestStoreClient, target: Atom<Value>, value: Value): void;
44
+ declare function setAtomValues(store: TestStoreClient, entries: readonly AtomValueEntry[]): void;
45
+ declare function resolveAtom<Value>(store: TestStoreClient, target: Atom<Value>): Promise<Value>;
46
+ declare function resolveAtoms<const Atoms extends readonly Atom<unknown>[]>(store: TestStoreClient, targets: Atoms): Promise<{ [Index in keyof Atoms]: AtomValue<Atoms[Index]> }>;
47
+ //#endregion
48
+ export { AtomValueEntry, MockAtomErrorOptions, MockAtomFamilyErrorOptions, MockAtomFamilyGetValueOptions, MockAtomFamilyOptions, MockAtomFamilyValueOptions, MockAtomOptions, MockAtomRead, MockAtomReadOptions, MockAtomValueOptions, TestStoreClient, TestStoreOptions, createTestStore, mockAtom, mockAtomFamily, resolveAtom, resolveAtoms, setAtomValue, setAtomValues, withAtomMocks };
49
+ //# sourceMappingURL=tests.d.ts.map
package/dist/tests.js ADDED
@@ -0,0 +1,86 @@
1
+ import { f as atom, r as atomFamily, t as createStore } from "./store-C9XvK8PL.js";
2
+ //#region src/tests.ts
3
+ function createTestStore(...args) {
4
+ const [options] = args;
5
+ const values = options?.values;
6
+ const storeOptions = stripTestStoreOptions(options);
7
+ const store = storeOptions == null ? createStore() : createStore(storeOptions);
8
+ if (values != null) setAtomValues(store, values);
9
+ return store;
10
+ }
11
+ function mockAtom(source, options) {
12
+ const debugLabel = mockDebugLabel(source.debugLabel, options.debugLabel);
13
+ if ("value" in options) {
14
+ const initialValue = options.value;
15
+ return atom({
16
+ debugLabel,
17
+ invalidateAfterWrite: false,
18
+ read: async (ctx) => {
19
+ await Promise.resolve();
20
+ const previous = ctx.getPreviousValue();
21
+ return previous === void 0 ? initialValue : previous;
22
+ },
23
+ write: async (ctx, valueOrMutate) => {
24
+ const previous = ctx.getPreviousValue();
25
+ const next = typeof valueOrMutate === "function" ? valueOrMutate(previous === void 0 ? initialValue : previous) : valueOrMutate;
26
+ ctx.setOptimisticValue(next);
27
+ }
28
+ });
29
+ }
30
+ if ("read" in options) return atom({
31
+ debugLabel,
32
+ read: async () => options.read()
33
+ });
34
+ return atom({
35
+ debugLabel,
36
+ retry: false,
37
+ read: async () => {
38
+ throw options.error;
39
+ }
40
+ });
41
+ }
42
+ function mockAtomFamily(source, options) {
43
+ return atomFamily({
44
+ debugLabel: options.debugLabel ?? mockFamilyDebugLabel(source),
45
+ retry: false,
46
+ read: (param) => async () => {
47
+ if ("value" in options) return options.value;
48
+ if ("getValue" in options) return options.getValue(param);
49
+ throw options.getError == null ? options.error : options.getError(param);
50
+ }
51
+ });
52
+ }
53
+ function withAtomMocks(dependencies, mocks) {
54
+ return {
55
+ ...dependencies,
56
+ ...mocks
57
+ };
58
+ }
59
+ function setAtomValue(store, target, value) {
60
+ store.write(target, value);
61
+ }
62
+ function setAtomValues(store, entries) {
63
+ for (const [target, value] of entries) store.write(target, value);
64
+ }
65
+ function resolveAtom(store, target) {
66
+ return store.read(target);
67
+ }
68
+ async function resolveAtoms(store, targets) {
69
+ return await Promise.all(targets.map((target) => store.read(target)));
70
+ }
71
+ function stripTestStoreOptions(options) {
72
+ if (options == null) return;
73
+ const { values: _values, ...storeOptions } = options;
74
+ return storeOptions;
75
+ }
76
+ function mockDebugLabel(source, explicit) {
77
+ if (explicit != null) return explicit;
78
+ return source == null ? "mockAtom" : `mock(${source})`;
79
+ }
80
+ function mockFamilyDebugLabel(source) {
81
+ return source.name == null || source.name === "" ? "mockAtomFamily" : `mock(${source.name})`;
82
+ }
83
+ //#endregion
84
+ export { createTestStore, mockAtom, mockAtomFamily, resolveAtom, resolveAtoms, setAtomValue, setAtomValues, withAtomMocks };
85
+
86
+ //# sourceMappingURL=tests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tests.js","names":[],"sources":["../src/tests.ts"],"mappings":";;AA4DA,SAAgB,gBACd,GAAG,MAGI;CACP,MAAM,CAAC,WAAW;CAClB,MAAM,SAAS,SAAS;CACxB,MAAM,eAAe,sBAAsB,QAAQ;CACnD,MAAM,QAAQ,gBAAgB,OAAO,aAAa,GAAG,YAAY,aAAa;CAE9E,IAAI,UAAU,MACZ,cAAc,OAAO,OAAO;CAG9B,OAAO;;AAWT,SAAgB,SAAgB,QAAqB,SAA8C;CACjG,MAAM,aAAa,eAAe,OAAO,YAAY,QAAQ,WAAW;CAExE,IAAI,WAAW,SAAS;EACtB,MAAM,eAAe,QAAQ;EAC7B,OAAO,KAAK;GACV;GACA,sBAAsB;GACtB,MAAM,OAAO,QAAQ;IACnB,MAAM,QAAQ,SAAS;IACvB,MAAM,WAAW,IAAI,kBAAkB;IACvC,OAAO,aAAa,KAAA,IAAY,eAAe;;GAEjD,OAAO,OAAO,KAAK,kBAA6C;IAC9D,MAAM,WAAW,IAAI,kBAAkB;IAEvC,MAAM,OACJ,OAAO,kBAAkB,aACpB,cAHM,aAAa,KAAA,IAAY,eAAe,SAGA,GAC/C;IACN,IAAI,mBAAmB,KAAK;;GAE/B,CAAC;;CAGJ,IAAI,UAAU,SACZ,OAAO,KAAK;EACV;EACA,MAAM,YAAY,QAAQ,MAAM;EACjC,CAAC;CAGJ,OAAO,KAAK;EACV;EACA,OAAO;EACP,MAAM,YAAY;GAChB,MAAM,QAAQ;;EAEjB,CAAC;;AAGJ,SAAgB,eACd,QACA,SAC0B;CAI1B,OAAO,WAAW;EAChB,YAHA,QAAQ,cAAc,qBAAqB,OAAqC;EAIhF,OAAO;EACP,OAAO,UAAiB,YAAY;GAClC,IAAI,WAAW,SACb,OAAO,QAAQ;GAEjB,IAAI,cAAc,SAChB,OAAO,QAAQ,SAAS,MAAM;GAEhC,MAAM,QAAQ,YAAY,OAAO,QAAQ,QAAQ,QAAQ,SAAS,MAAM;;EAE3E,CAAC;;AAGJ,SAAgB,cACd,cACA,OACM;CACN,OAAO;EAAE,GAAG;EAAc,GAAG;EAAO;;AAGtC,SAAgB,aACd,OACA,QACA,OACM;CACN,MAAM,MAAM,QAAQ,MAAM;;AAG5B,SAAgB,cAAc,OAAwB,SAA0C;CAC9F,KAAK,MAAM,CAAC,QAAQ,UAAU,SAC5B,MAAM,MAAM,QAAQ,MAAM;;AAI9B,SAAgB,YAAmB,OAAwB,QAAqC;CAC9F,OAAO,MAAM,KAAK,OAAO;;AAG3B,eAAsB,aACpB,OACA,SAC8D;CAE9D,OAAO,MADc,QAAQ,IAAI,QAAQ,KAAK,WAAW,MAAM,KAAK,OAAO,CAAC,CAAC;;AAI/E,SAAS,sBAAsB,SAAiE;CAC9F,IAAI,WAAW,MACb;CAGF,MAAM,EAAE,QAAQ,SAAS,GAAG,iBAAiB;CAC7C,OAAO;;AAGT,SAAS,eAAe,QAA4B,UAAsC;CACxF,IAAI,YAAY,MACd,OAAO;CAET,OAAO,UAAU,OAAO,aAAa,QAAQ,OAAO;;AAGtD,SAAS,qBAAqB,QAA4C;CACxE,OAAO,OAAO,QAAQ,QAAQ,OAAO,SAAS,KAAK,mBAAmB,QAAQ,OAAO,KAAK"}
@@ -310,4 +310,4 @@ type IsWritable<A> = A extends WritableAtom<unknown, readonly unknown[]> ? true
310
310
  type AtomArgs<A> = A extends WritableAtom<unknown, infer Args> ? Args : never;
311
311
  //#endregion
312
312
  export { InfinityAtomOptions as A, Mutation as C, InfinityFamilyAtom as D, InfinityAtomFamilyOptions as E, SimpleAtomOptions as M, SimpleAtomWriteArg as N, infinityAtomFamily as O, atom as P, createStore as S, InfinityAtomFamily as T, RegisteredContext as _, AtomState as a, StoreInspection as b, IsWritable as c, RetryDelay as d, StalePolicy as f, Register as g, WritableAtomContext as h, AtomContext as i, infinityAtom as j, InfiniteData as k, MutationContext as l, WritableAtom as m, AtomArgs as n, AtomValue as o, StreamAtomConfig as p, AtomConfig as r, DependencyEntry as s, Atom as t, ReadAtomConfig as u, Store as v, mutation as w, StoreOptions as x, StoreClient as y };
313
- //# sourceMappingURL=types-Bxnij_5I.d.ts.map
313
+ //# sourceMappingURL=types-DWKKl1AZ.d.ts.map
@@ -38,4 +38,4 @@ function getAtomValueResult(store, atom, snapshot, observe, isInitialRender, onS
38
38
  //#endregion
39
39
  export { getAtomValueResult as t };
40
40
 
41
- //# sourceMappingURL=use-atom-value-Bu9qPOox.js.map
41
+ //# sourceMappingURL=use-atom-value-BiN9catp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-atom-value-Bu9qPOox.js","names":[],"sources":["../src/internal/use-atom-value.ts"],"mappings":";;AAUA,SAAgB,mBACd,OACA,MACA,UACA,SACA,iBACA,eACsB;CACtB,MAAM,cAA2B,KAAK,QAAQ,eAAe;CAE7D,IAAI,SAAS,WAAW,WAAW;EACjC,iBAAiB;EACjB,MAAM,MAAM,KAAK,KAAK;;CAGxB,IAAI,SAAS,WAAW,SAAS;EAC/B,IAAI,gBAAgB,WAAW;GAC7B,iBAAiB;GACjB,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
+ {"version":3,"file":"use-atom-value-BiN9catp.js","names":[],"sources":["../src/internal/use-atom-value.ts"],"mappings":";;AAUA,SAAgB,mBACd,OACA,MACA,UACA,SACA,iBACA,eACsB;CACtB,MAAM,cAA2B,KAAK,QAAQ,eAAe;CAE7D,IAAI,SAAS,WAAW,WAAW;EACjC,iBAAiB;EACjB,MAAM,MAAM,KAAK,KAAK;;CAGxB,IAAI,SAAS,WAAW,SAAS;EAC/B,IAAI,gBAAgB,WAAW;GAC7B,iBAAiB;GACjB,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 { C as Mutation, m as WritableAtom, t as Atom, v as Store, y as StoreClient } from "../types-Bxnij_5I.js";
1
+ import { C as Mutation, m as WritableAtom, t as Atom, v as Store, y as StoreClient } from "../types-DWKKl1AZ.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": "1.4.3",
3
+ "version": "1.5.0",
4
4
  "description": "Atomic state management with explicit dependency graphs",
5
5
  "license": "MIT",
6
6
  "files": [
@@ -30,6 +30,10 @@
30
30
  "./family": {
31
31
  "types": "./dist/family.d.ts",
32
32
  "import": "./dist/family.js"
33
+ },
34
+ "./tests": {
35
+ "types": "./dist/tests.d.ts",
36
+ "import": "./dist/tests.js"
33
37
  }
34
38
  },
35
39
  "devDependencies": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"store-DxInm7iX.js","names":["#maxSize","#nodeMap","#valueMap","#head","#tail","#moveToMru","#insertBeforeTail","#evict","#detach","#fetch","#scheduler","#queue","#keySet","#flush","#stream","#atoms","#entries","#rdeps","#pending","#familyUnsubs","#registeredFamilies","#context","#disposed","#abortRead","#assertActive","#getOrCreate","#runRead","#abortReadIfUnowned","#registerRdeps","#makeCtx","#runStreamRead","#scheduleNotify","#markStale","#schedulePendingFlush","#cancelRead","#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/is-dev.ts","../src/internal/stable-family-key.ts","../src/internal/family-param-key-dev.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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"}