@kdeveloper/kvark 1.4.3 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -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 } from "@kdeveloper/kvark/tests";
1229
+
1230
+ const userMock = mockAtom(userAtom, { value: { id: "u1", name: "Ada" } });
1231
+ const profileAtom = atom({
1232
+ dependencies: { user: userAtom },
1233
+ read: async (ctx) => ctx.read("user"),
1234
+ });
1235
+
1236
+ const store = createTestStore({ dependencyOverrides: [[userAtom, userMock]] });
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`; store-level `dependencyOverrides`; 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-GIwtmktJ.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-B6CDCsXX.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 infinityAtomFamily, C as StoreOptions, D as InfinityAtomFamily, E as mutation, I as atom, M as InfinityAtomOptions, N as infinityAtom, O as InfinityAtomFamilyOptions, S as StoreInspection, T as Mutation, _ as RegisteredContext, a as AtomState, b as Store, f as StalePolicy, g as Register, i as AtomContext, j as InfiniteData, k as InfinityFamilyAtom, l as MutationContext, m as WritableAtom, o as AtomValue, r as AtomConfig, t as Atom, v as DependencyOverride, w as createStore, x as StoreClient, y as DependencyOverrideEntry } from "./types-GIwtmktJ.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-B6CDCsXX.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.
@@ -142,5 +15,5 @@ declare function atomFamily<Param, Value, Deps extends Record<string, Dependency
142
15
  */
143
16
  declare function stableFamilyKey(value: unknown): string;
144
17
  //#endregion
145
- export { type Atom, type AtomConfig, type AtomContext, type AtomFamily, type AtomFamilyBatchOptions, type AtomFamilyGetOptions, type AtomFamilyOptions, type AtomFamilyStreamOptions, type AtomState, type AtomValue, type BatchFetchInput, type BatchScheduler, type BatchSchedulerContext, type BatchStreamInput, 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 };
18
+ export { type Atom, type AtomConfig, type AtomContext, type AtomFamily, type AtomFamilyBatchOptions, type AtomFamilyGetOptions, type AtomFamilyOptions, type AtomFamilyStreamOptions, type AtomState, type AtomValue, type BatchFetchInput, type BatchScheduler, type BatchSchedulerContext, type BatchStreamInput, type DependencyOverride, type DependencyOverrideEntry, 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 };
146
19
  //# sourceMappingURL=family.d.ts.map
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-BAe5XNQY.js";
2
+ import { n as infinityAtom, t as infinityAtomFamily } from "./infinity-atom-family-d5CFnMGY.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";
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 };
1
+ import { A as infinityAtomFamily, C as StoreOptions, D as InfinityAtomFamily, E as mutation, F as SimpleAtomWriteArg, I as atom, M as InfinityAtomOptions, N as infinityAtom, O as InfinityAtomFamilyOptions, P as SimpleAtomOptions, S as StoreInspection, T as Mutation, _ as RegisteredContext, a as AtomState, b as Store, c as IsWritable, d as RetryDelay, f as StalePolicy, g as Register, h as WritableAtomContext, i as AtomContext, j as InfiniteData, k as InfinityFamilyAtom, 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 DependencyOverride, w as createStore, x as StoreClient, y as DependencyOverrideEntry } from "./types-GIwtmktJ.js";
2
+ export { Atom, AtomArgs, AtomConfig, AtomContext, AtomState, AtomValue, DependencyOverride, DependencyOverrideEntry, 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-BAe5XNQY.js";
2
+ import { n as infinityAtom, t as infinityAtomFamily } from "./infinity-atom-family-d5CFnMGY.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-BAe5XNQY.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-d5CFnMGY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"infinity-atom-family-d5CFnMGY.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 { T as Mutation, b as Store, m as WritableAtom, t as Atom, x as StoreClient } from "../types-GIwtmktJ.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 { T as Mutation, b as Store, m as WritableAtom, t as Atom, x as StoreClient } from "../types-GIwtmktJ.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;
@@ -911,13 +760,19 @@ var Store = class {
911
760
  #pending = /* @__PURE__ */ new Set();
912
761
  #familyUnsubs = /* @__PURE__ */ new Set();
913
762
  #registeredFamilies = /* @__PURE__ */ new WeakSet();
763
+ #dependencyOverrides = /* @__PURE__ */ new WeakMap();
914
764
  #context;
765
+ #hasDependencyOverrides = false;
915
766
  #client = null;
916
767
  #flushScheduled = false;
917
768
  #disposed = false;
918
769
  constructor(...args) {
919
770
  const [options] = args;
920
771
  this.#context = options?.context;
772
+ if (options?.dependencyOverrides != null) for (const [source, replacement] of options.dependencyOverrides) {
773
+ this.#dependencyOverrides.set(source, replacement);
774
+ this.#hasDependencyOverrides = true;
775
+ }
921
776
  }
922
777
  #getOrCreate(atom) {
923
778
  let entry = this.#atoms.get(atom);
@@ -940,6 +795,21 @@ var Store = class {
940
795
  #assertActive() {
941
796
  if (this.#disposed) throw new Error("Store has been disposed");
942
797
  }
798
+ #resolveDependency(dep) {
799
+ return this.#dependencyOverrides.get(dep) ?? dep;
800
+ }
801
+ #resolveDependencies(deps) {
802
+ if (!this.#hasDependencyOverrides) return deps;
803
+ let resolvedDeps = null;
804
+ for (const [key, dep] of Object.entries(deps)) {
805
+ const resolved = this.#resolveDependency(dep);
806
+ if (resolved !== dep) {
807
+ resolvedDeps ??= { ...deps };
808
+ resolvedDeps[key] = resolved;
809
+ }
810
+ }
811
+ return resolvedDeps ?? deps;
812
+ }
943
813
  #abortRead(atom) {
944
814
  const entry = this.#atoms.get(atom);
945
815
  if (entry?.controller != null) {
@@ -999,7 +869,7 @@ var Store = class {
999
869
  }
1000
870
  async #runRead(atom) {
1001
871
  const config = atom[CONFIG];
1002
- const dependencies = config.dependencies;
872
+ const dependencies = config.dependencies == null ? void 0 : this.#resolveDependencies(config.dependencies);
1003
873
  const stalePolicy = config.stalePolicy ?? "keep";
1004
874
  const retryCount = normalizeRetry(config.retry);
1005
875
  const retryDelay = config.retryDelay ?? 0;
@@ -1214,7 +1084,7 @@ var Store = class {
1214
1084
  if (isAtomFamily(dep)) {
1215
1085
  if (rest.length === 0) throw new Error(`Dependency "${String(key)}" is an atomFamily and requires a parameter. Use ctx.read("${String(key)}", param) instead of ctx.read("${String(key)}").`);
1216
1086
  const param = rest[0];
1217
- const target = dep(param);
1087
+ const target = this.#resolveDependency(dep(param));
1218
1088
  this.#registerSingleRdep(atom, target);
1219
1089
  return this.read(target);
1220
1090
  }
@@ -1295,7 +1165,7 @@ var Store = class {
1295
1165
  this.#assertActive();
1296
1166
  const config = atom[CONFIG];
1297
1167
  if (config.write == null) throw new Error(`Atom${atom.debugLabel != null ? ` "${atom.debugLabel}"` : ""} is not writable`);
1298
- const deps = config.dependencies ?? {};
1168
+ const deps = config.dependencies == null ? {} : this.#resolveDependencies(config.dependencies);
1299
1169
  const baseCtx = this.#makeCtx(atom, deps);
1300
1170
  const entry = this.#getOrCreate(atom);
1301
1171
  const optimisticSnapshot = { current: null };
@@ -1479,6 +1349,6 @@ function extractPreviousValue(state) {
1479
1349
  if (state.status === "error") return state.value;
1480
1350
  }
1481
1351
  //#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 };
1352
+ 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
1353
 
1484
- //# sourceMappingURL=store-DxInm7iX.js.map
1354
+ //# sourceMappingURL=store-BAe5XNQY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store-BAe5XNQY.js","names":["#maxSize","#nodeMap","#valueMap","#head","#tail","#moveToMru","#insertBeforeTail","#evict","#detach","#fetch","#scheduler","#queue","#keySet","#flush","#stream","#atoms","#entries","#rdeps","#pending","#familyUnsubs","#registeredFamilies","#dependencyOverrides","#context","#hasDependencyOverrides","#disposed","#resolveDependency","#abortRead","#assertActive","#getOrCreate","#runRead","#abortReadIfUnowned","#resolveDependencies","#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 { C as StoreOptions, F as SimpleAtomWriteArg, _ as RegisteredContext, b as Store, m as WritableAtom, o as AtomValue, s as DependencyEntry, t as Atom, v as DependencyOverride, x as StoreClient, y as DependencyOverrideEntry } from "./types-GIwtmktJ.js";
2
+ import { t as AtomFamily } from "./family-B6CDCsXX.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, type DependencyOverride, type DependencyOverrideEntry, 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-BAe5XNQY.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":";;AAqEA,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"}
@@ -133,11 +133,16 @@ interface StoreClient {
133
133
  inspect(atom: Atom<unknown>): StoreInspection;
134
134
  dispose(): void;
135
135
  }
136
- type StoreOptions = unknown extends RegisteredContext ? {
136
+ type StoreOptions = unknown extends RegisteredContext ? StoreBaseOptions & {
137
137
  context?: RegisteredContext;
138
- } : {
138
+ } : StoreBaseOptions & {
139
139
  context: RegisteredContext;
140
140
  };
141
+ type DependencyOverride<D extends DependencyEntry> = D extends Atom<infer V> ? Atom<V> : D extends AtomFamilyLike<infer P, infer V> ? AtomFamilyLike<P, V> : never;
142
+ type DependencyOverrideEntry<D extends DependencyEntry = DependencyEntry> = readonly [source: D, replacement: DependencyOverride<D>];
143
+ type StoreBaseOptions = {
144
+ dependencyOverrides?: readonly DependencyOverrideEntry[];
145
+ };
141
146
  declare class Store {
142
147
  #private;
143
148
  constructor(...args: unknown extends RegisteredContext ? [options?: StoreOptions] : [options: StoreOptions]);
@@ -309,5 +314,5 @@ type AtomValue<A> = A extends Atom<infer V> ? V : never;
309
314
  type IsWritable<A> = A extends WritableAtom<unknown, readonly unknown[]> ? true : false;
310
315
  type AtomArgs<A> = A extends WritableAtom<unknown, infer Args> ? Args : never;
311
316
  //#endregion
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
317
+ export { infinityAtomFamily as A, StoreOptions as C, InfinityAtomFamily as D, mutation as E, SimpleAtomWriteArg as F, atom as I, InfinityAtomOptions as M, infinityAtom as N, InfinityAtomFamilyOptions as O, SimpleAtomOptions as P, StoreInspection as S, Mutation as T, RegisteredContext as _, AtomState as a, Store as b, IsWritable as c, RetryDelay as d, StalePolicy as f, Register as g, WritableAtomContext as h, AtomContext as i, InfiniteData as j, InfinityFamilyAtom 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, DependencyOverride as v, createStore as w, StoreClient as x, DependencyOverrideEntry as y };
318
+ //# sourceMappingURL=types-GIwtmktJ.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 { T as Mutation, b as Store, m as WritableAtom, t as Atom, x as StoreClient } from "../types-GIwtmktJ.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.1",
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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"}