@nifrajs/web 1.8.0 → 1.9.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/dist/query.d.ts CHANGED
@@ -1,9 +1,11 @@
1
1
  /**
2
2
  * The agnostic keyed query-cache — a `query(key, fn)` primitive with in-flight dedup, `staleTime`
3
- * freshness, prefix `invalidateQueries`, and bounded GC. Pure logic, no `window`, no framework, no
3
+ * freshness, prefix `invalidateQueries`, imperative cache read/write, prefetch, SSR dehydrate/hydrate,
4
+ * infinite (paged) queries, and standalone mutations. Pure logic, no `window`, no framework, no
4
5
  * `Date.now`/timers (the clock is injected) — so it unit-tests deterministically and is safe to import
5
- * from the SSR core's main entry. A per-adapter binding (`useQuery`/`createQuery`) subscribes to a
6
- * query's `subscribe`/`snapshot` store (the same shape the router + fetchers use).
6
+ * from the SSR core's main entry. A per-adapter binding (`useQuery`/`useMutation`/`createQuery`)
7
+ * subscribes to a query/mutation's `subscribe`/`snapshot` store (the same shape the router + fetchers
8
+ * use).
7
9
  *
8
10
  * This is a SECOND keyed cache, distinct from the router's path-keyed route cache (F16): route loaders
9
11
  * + navigation use the path cache; component-level interactive data (search, infinite scroll, polling)
@@ -32,6 +34,12 @@ export interface QueryHandle<T = unknown> {
32
34
  /** Refetch regardless of staleness (still joins an in-flight fetch). */
33
35
  refetch: () => Promise<T>;
34
36
  }
37
+ /** Per-query overrides passed alongside the fetcher. */
38
+ export interface QueryOptions {
39
+ /** Data stays fresh this long (ms) after a fetch; older ⇒ refetch on the next `fetch()`. Overrides
40
+ * the client default for this key. */
41
+ readonly staleTime?: number;
42
+ }
35
43
  export interface QueryClientOptions {
36
44
  /** Monotonic clock in ms — injected so the core stays deterministic + testable; the adapter binding
37
45
  * passes `() => Date.now()`. */
@@ -43,14 +51,71 @@ export interface QueryClientOptions {
43
51
  /** Hard cap on cached entries — LRU-evict the oldest *unsubscribed* entry past it (default 1000). */
44
52
  readonly max?: number;
45
53
  }
54
+ /** An infinite (paged) query's accumulated data: the fetched `pages` in order + the `pageParam` each
55
+ * was fetched with (so the next/previous param can be derived). */
56
+ export interface InfiniteData<T, P> {
57
+ readonly pages: readonly T[];
58
+ readonly pageParams: readonly P[];
59
+ }
60
+ /** Options for an {@link InfiniteQueryHandle}. `getNextPageParam` (required) derives the param for the
61
+ * next page from the last page — return `undefined`/`null` to signal there is no next page. */
62
+ export interface InfiniteQueryOptions<T, P> extends QueryOptions {
63
+ /** The param the FIRST page is fetched with. */
64
+ readonly initialPageParam: P;
65
+ /** Derive the next page's param from the last fetched page (and all pages/params). `undefined`/`null`
66
+ * ⇒ no next page (`hasNextPage` is false). */
67
+ readonly getNextPageParam: (lastPage: T, allPages: readonly T[], lastPageParam: P, allPageParams: readonly P[]) => P | undefined | null;
68
+ /** Derive the previous page's param (for bidirectional infinite lists). Omit ⇒ no previous page. */
69
+ readonly getPreviousPageParam?: (firstPage: T, allPages: readonly T[], firstPageParam: P, allPageParams: readonly P[]) => P | undefined | null;
70
+ }
71
+ /** A stable per-key handle for an infinite (paged) query. */
72
+ export interface InfiniteQueryHandle<T, P> {
73
+ snapshot: () => QueryState<InfiniteData<T, P>>;
74
+ subscribe: (listener: () => void) => () => void;
75
+ /** Fetch the first page when absent/stale (fresh ⇒ no-op). */
76
+ fetch: () => Promise<InfiniteData<T, P>>;
77
+ /** Refetch every currently-loaded page (in order), replacing the data. */
78
+ refetch: () => Promise<InfiniteData<T, P>>;
79
+ /** Append the next page (a no-op when `hasNextPage()` is false or a fetch is already in flight). */
80
+ fetchNextPage: () => Promise<InfiniteData<T, P>>;
81
+ /** Prepend the previous page (a no-op without `getPreviousPageParam` or when there is none). */
82
+ fetchPreviousPage: () => Promise<InfiniteData<T, P>>;
83
+ /** Whether another page can be appended (derived from `getNextPageParam` of the last page). */
84
+ hasNextPage: () => boolean;
85
+ /** Whether a page can be prepended (derived from `getPreviousPageParam` of the first page). */
86
+ hasPreviousPage: () => boolean;
87
+ }
88
+ /** A serializable snapshot of the cache's successful queries — the SSR→client bridge payload. */
89
+ export interface DehydratedState {
90
+ readonly queries: ReadonlyArray<{
91
+ readonly key: unknown;
92
+ readonly data: unknown;
93
+ readonly updatedAt: number;
94
+ }>;
95
+ }
46
96
  /** The keyed query cache. One per app (a binding registers it like the router). */
47
97
  export interface QueryClient {
48
- /** Get the stable {@link QueryHandle} for `key`, fetched via `fn`. Re-binds the latest `fn` each
49
- * call (closures change between renders); returns the same handle for the same (hashed) key. */
50
- query: <T>(key: unknown, fn: () => Promise<T>) => QueryHandle<T>;
98
+ /** Get the stable {@link QueryHandle} for `key`, fetched via `fn`. Re-binds the latest `fn` (and
99
+ * `options`) each call (closures change between renders); returns the same handle for the same
100
+ * (hashed) key. */
101
+ query: <T>(key: unknown, fn: () => Promise<T>, options?: QueryOptions) => QueryHandle<T>;
102
+ /** Get the stable {@link InfiniteQueryHandle} for `key`, whose pages are fetched via `fn(pageParam)`. */
103
+ infiniteQuery: <T, P>(key: unknown, fn: (pageParam: P) => Promise<T>, options: InfiniteQueryOptions<T, P>) => InfiniteQueryHandle<T, P>;
51
104
  /** Mark matching cached queries stale and refetch the **mounted** ones (subscribers > 0). Array
52
105
  * keys match by **prefix** (`["todo"]` ⇒ every `["todo", …]`); other keys match exactly. */
53
106
  invalidateQueries: (keyOrPrefix: unknown) => void;
107
+ /** Read a cached query's data (`undefined` if absent or not yet successful). Synchronous, no fetch. */
108
+ getQueryData: <T>(key: unknown) => T | undefined;
109
+ /** Write a query's data directly (optimistic updates, or seeding). Creates the entry if absent; marks
110
+ * it fresh (`updatedAt = now`). `updater` may be a value or a function of the previous data. */
111
+ setQueryData: <T>(key: unknown, updater: T | ((prev: T | undefined) => T)) => void;
112
+ /** Fetch + cache a query's data WITHOUT subscribing (SSR prefetch, hover warm). Resolves when cached;
113
+ * a fresh entry is a no-op. Rejects if the fetch throws (caller may swallow). */
114
+ prefetchQuery: <T>(key: unknown, fn: () => Promise<T>, options?: QueryOptions) => Promise<void>;
115
+ /** Serialize every successful query to a transferable snapshot (server → client SSR bridge). */
116
+ dehydrate: () => DehydratedState;
117
+ /** Seed the cache from a {@link dehydrate} snapshot (client boot). Existing fresher entries win. */
118
+ hydrate: (state: DehydratedState) => void;
54
119
  }
55
120
  /**
56
121
  * Hash a query key to a stable cache string. Object keys are sorted (so `{a,b}` ≡ `{b,a}`); arrays
@@ -59,4 +124,41 @@ export interface QueryClient {
59
124
  */
60
125
  export declare function hashQueryKey(key: unknown): string;
61
126
  export declare function createQueryClient(options: QueryClientOptions): QueryClient;
127
+ /** A mutation's lifecycle status. */
128
+ export type MutationStatus = "idle" | "pending" | "success" | "error";
129
+ /** A mutation's observable state. A new (frozen) object per transition (reference-comparable). */
130
+ export interface MutationState<TData, TVariables> {
131
+ readonly status: MutationStatus;
132
+ readonly data: TData | undefined;
133
+ readonly error: unknown;
134
+ /** The variables of the in-flight / last mutation (`undefined` before the first call). */
135
+ readonly variables: TVariables | undefined;
136
+ }
137
+ /** Lifecycle callbacks for a mutation. All optional; `onSettled` runs after success OR error. */
138
+ export interface MutationCallbacks<TData, TVariables> {
139
+ readonly onMutate?: (variables: TVariables) => void | Promise<void>;
140
+ readonly onSuccess?: (data: TData, variables: TVariables) => void | Promise<void>;
141
+ readonly onError?: (error: unknown, variables: TVariables) => void | Promise<void>;
142
+ readonly onSettled?: (data: TData | undefined, error: unknown, variables: TVariables) => void | Promise<void>;
143
+ }
144
+ /** A standalone mutation store: subscribe to its state, fire `mutate`, `reset` back to idle. */
145
+ export interface MutationHandle<TData, TVariables> {
146
+ snapshot: () => MutationState<TData, TVariables>;
147
+ subscribe: (listener: () => void) => () => void;
148
+ /** Run the mutation. Resolves to the data (and runs onSuccess/onSettled) or rejects (onError/onSettled).
149
+ * The latest concurrent call wins the published state (older results are dropped). */
150
+ mutate: (variables: TVariables) => Promise<TData>;
151
+ /** Rebind the latest `fn`/callbacks (closures change between renders) without losing state. */
152
+ rebind: (fn: (variables: TVariables) => Promise<TData>, callbacks: MutationCallbacks<TData, TVariables>) => void;
153
+ /** Reset to the idle state (clears data/error/variables). */
154
+ reset: () => void;
155
+ }
156
+ /**
157
+ * Create a standalone mutation state machine — framework-agnostic, so a per-adapter `useMutation`
158
+ * binding just subscribes to it. Single-flight by a monotonic token: overlapping `mutate` calls each
159
+ * run their `fn`, but only the latest publishes state (an older, slower response can't clobber a newer
160
+ * one). The callbacks fire in TanStack order: `onMutate` (before), then `onSuccess`/`onError`, then
161
+ * `onSettled`.
162
+ */
163
+ export declare function createMutation<TData, TVariables>(fn: (variables: TVariables) => Promise<TData>, callbacks?: MutationCallbacks<TData, TVariables>): MutationHandle<TData, TVariables>;
62
164
  //# sourceMappingURL=query.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,uGAAuG;AACvG,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAA;AAEzD;qEACqE;AACrE,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,OAAO;IACrC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;IAC5B,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,SAAS,CAAA;IAC5B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,wGAAwG;IACxG,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,0GAA0G;IAC1G,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAED,iGAAiG;AACjG,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,OAAO;IACtC,QAAQ,EAAE,MAAM,UAAU,CAAC,CAAC,CAAC,CAAA;IAC7B,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAA;IAC/C;8CAC0C;IAC1C,KAAK,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAA;IACvB,wEAAwE;IACxE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAA;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC;oCACgC;IAChC,QAAQ,CAAC,GAAG,EAAE,MAAM,MAAM,CAAA;IAC1B,qGAAqG;IACrG,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,sFAAsF;IACtF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,qGAAqG;IACrG,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,mFAAmF;AACnF,MAAM,WAAW,WAAW;IAC1B;oGACgG;IAChG,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,CAAA;IAChE;gGAC4F;IAC5F,iBAAiB,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAA;CAClD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAcjD;AAuCD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,CAmI1E"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
package/dist/query.js CHANGED
@@ -1,9 +1,11 @@
1
1
  /**
2
2
  * The agnostic keyed query-cache — a `query(key, fn)` primitive with in-flight dedup, `staleTime`
3
- * freshness, prefix `invalidateQueries`, and bounded GC. Pure logic, no `window`, no framework, no
3
+ * freshness, prefix `invalidateQueries`, imperative cache read/write, prefetch, SSR dehydrate/hydrate,
4
+ * infinite (paged) queries, and standalone mutations. Pure logic, no `window`, no framework, no
4
5
  * `Date.now`/timers (the clock is injected) — so it unit-tests deterministically and is safe to import
5
- * from the SSR core's main entry. A per-adapter binding (`useQuery`/`createQuery`) subscribes to a
6
- * query's `subscribe`/`snapshot` store (the same shape the router + fetchers use).
6
+ * from the SSR core's main entry. A per-adapter binding (`useQuery`/`useMutation`/`createQuery`)
7
+ * subscribes to a query/mutation's `subscribe`/`snapshot` store (the same shape the router + fetchers
8
+ * use).
7
9
  *
8
10
  * This is a SECOND keyed cache, distinct from the router's path-keyed route cache (F16): route loaders
9
11
  * + navigation use the path cache; component-level interactive data (search, infinite scroll, polling)
@@ -41,9 +43,13 @@ const PENDING = Object.freeze({
41
43
  isFetching: false,
42
44
  updatedAt: Number.NEGATIVE_INFINITY,
43
45
  });
46
+ /** Build a success state for freshly-set data (imperative writes + hydration). */
47
+ function successState(data, updatedAt) {
48
+ return { status: "success", data, error: undefined, isFetching: false, updatedAt };
49
+ }
44
50
  export function createQueryClient(options) {
45
51
  const { now } = options;
46
- const staleTime = options.staleTime ?? 0;
52
+ const defaultStaleTime = options.staleTime ?? 0;
47
53
  const gcTime = options.gcTime ?? 5 * 60_000;
48
54
  const max = options.max ?? 1000;
49
55
  const cache = new Map();
@@ -64,17 +70,14 @@ export function createQueryClient(options) {
64
70
  cache.delete(h); // oldest-inserted unsubscribed first (Map order)
65
71
  }
66
72
  };
67
- const query = (key, fn) => {
68
- sweep();
69
- const h = hashQueryKey(key);
70
- const existing = cache.get(h);
71
- if (existing !== undefined) {
72
- existing.fn = fn; // re-bind the latest closure
73
- return existing.handle;
74
- }
73
+ // Build a cache entry + its handle. `fn`/`staleTime` are mutated in place on re-bind (closures change
74
+ // between renders). All the fetch/dedup/generation machinery lives here so query(), prefetchQuery(),
75
+ // setQueryData(), and invalidateQueries() share exactly one implementation.
76
+ const makeEntry = (key, fn, staleTime) => {
75
77
  const entry = {
76
78
  key,
77
- fn: fn,
79
+ fn,
80
+ staleTime,
78
81
  state: PENDING,
79
82
  promise: undefined,
80
83
  promiseGen: 0,
@@ -83,25 +86,25 @@ export function createQueryClient(options) {
83
86
  subscribers: 0,
84
87
  gcAt: undefined,
85
88
  listeners: new Set(),
86
- // `handle` is assigned just below; the cast lets the entry reference itself.
89
+ setState: undefined,
90
+ run: undefined,
87
91
  handle: undefined,
88
92
  };
89
93
  const emit = () => {
90
- // Iterate the live set — no per-emit copy (the common case is 0–1 subscribers; the spread
91
- // allocated an array on every state transition ∝ subscriber count). Contract: a listener must
92
- // not synchronously subscribe/unsubscribe during notification — `useSyncExternalStore`/signal/
93
- // store bindings don't (un/subscribe happens in a later effect/cleanup tick).
94
+ // Iterate the live set — no per-emit copy (the common case is 0–1 subscribers). Contract: a
95
+ // listener must not synchronously subscribe/unsubscribe during notification — `useSyncExternalStore`/
96
+ // signal/store bindings don't (un/subscribe happens in a later effect/cleanup tick).
94
97
  if (entry.listeners.size === 0)
95
98
  return;
96
99
  for (const l of entry.listeners)
97
100
  l();
98
101
  };
99
- const setState = (next) => {
102
+ entry.setState = (next) => {
100
103
  entry.state = Object.freeze(next);
101
104
  emit();
102
105
  };
103
- const isStale = () => entry.invalidated || now() - entry.state.updatedAt >= staleTime;
104
- const run = (force) => {
106
+ const isStale = () => entry.invalidated || now() - entry.state.updatedAt >= entry.staleTime;
107
+ entry.run = (force) => {
105
108
  // Dedup — but join the in-flight fetch ONLY when it belongs to the current generation. An
106
109
  // `invalidateQueries` bumps `generation`, so a fetch that started *before* the invalidation is
107
110
  // superseded and must NOT satisfy this call (its data is pre-mutation); fall through and kick a
@@ -111,7 +114,7 @@ export function createQueryClient(options) {
111
114
  if (!force && entry.state.status === "success" && !isStale())
112
115
  return Promise.resolve(entry.state.data); // fresh cache hit — no fn call
113
116
  const gen = entry.generation;
114
- setState({ ...entry.state, isFetching: true }); // show the background/initial fetch
117
+ entry.setState({ ...entry.state, isFetching: true }); // show the background/initial fetch
115
118
  const promise = (async () => {
116
119
  try {
117
120
  const data = await entry.fn();
@@ -121,18 +124,12 @@ export function createQueryClient(options) {
121
124
  if (gen !== entry.generation)
122
125
  return data;
123
126
  entry.invalidated = false;
124
- setState({
125
- status: "success",
126
- data,
127
- error: undefined,
128
- isFetching: false,
129
- updatedAt: now(),
130
- });
127
+ entry.setState(successState(data, now()));
131
128
  return data;
132
129
  }
133
130
  catch (error) {
134
131
  if (gen === entry.generation)
135
- setState({ ...entry.state, status: "error", error, isFetching: false });
132
+ entry.setState({ ...entry.state, status: "error", error, isFetching: false });
136
133
  throw error;
137
134
  }
138
135
  finally {
@@ -160,11 +157,28 @@ export function createQueryClient(options) {
160
157
  entry.gcAt = now() + gcTime;
161
158
  };
162
159
  },
163
- fetch: () => run(false),
164
- refetch: () => run(true),
160
+ fetch: () => entry.run(false),
161
+ refetch: () => entry.run(true),
165
162
  };
163
+ return entry;
164
+ };
165
+ // Get an entry by key, or create + insert a fresh one. `fn`/`staleTime` re-bind on an existing entry.
166
+ const upsert = (key, fn, staleTime) => {
167
+ const h = hashQueryKey(key);
168
+ const existing = cache.get(h);
169
+ if (existing !== undefined) {
170
+ existing.fn = fn;
171
+ existing.staleTime = staleTime;
172
+ return existing;
173
+ }
174
+ const entry = makeEntry(key, fn, staleTime);
166
175
  cache.set(h, entry);
167
- return entry.handle;
176
+ return entry;
177
+ };
178
+ const query = (key, fn, opts) => {
179
+ sweep();
180
+ return upsert(key, fn, opts?.staleTime ?? defaultStaleTime)
181
+ .handle;
168
182
  };
169
183
  const invalidateQueries = (keyOrPrefix) => {
170
184
  for (const entry of cache.values()) {
@@ -179,6 +193,267 @@ export function createQueryClient(options) {
179
193
  void entry.handle.refetch().catch(() => { }); // refresh mounted now (best-effort)
180
194
  }
181
195
  };
182
- return { query, invalidateQueries };
196
+ const getQueryData = (key) => {
197
+ const entry = cache.get(hashQueryKey(key));
198
+ return entry !== undefined && entry.state.status === "success"
199
+ ? entry.state.data
200
+ : undefined;
201
+ };
202
+ const setQueryData = (key, updater) => {
203
+ // Create a placeholder entry if none exists — its `fn` throws until a real `query(key, fn)` re-binds
204
+ // it, so a `setQueryData` for a key nobody queries yet never triggers a fetch on its own.
205
+ const entry = upsert(key, cache.get(hashQueryKey(key))?.fn ??
206
+ (() => Promise.reject(new Error("[nifra/web] query has no fetcher (setQueryData-only key)"))), defaultStaleTime);
207
+ const prev = entry.state.status === "success" ? entry.state.data : undefined;
208
+ const data = typeof updater === "function" ? updater(prev) : updater;
209
+ // A direct write is the new truth — bump the generation so any in-flight fetch can't overwrite it,
210
+ // and clear the invalidated flag (the caller just supplied fresh data).
211
+ entry.generation++;
212
+ entry.invalidated = false;
213
+ entry.setState(successState(data, now()));
214
+ };
215
+ const prefetchQuery = async (key, fn, opts) => {
216
+ sweep();
217
+ await upsert(key, fn, opts?.staleTime ?? defaultStaleTime).run(false);
218
+ };
219
+ const dehydrate = () => {
220
+ const queries = [];
221
+ for (const entry of cache.values()) {
222
+ if (entry.state.status === "success")
223
+ queries.push({ key: entry.key, data: entry.state.data, updatedAt: entry.state.updatedAt });
224
+ }
225
+ return { queries };
226
+ };
227
+ const hydrate = (state) => {
228
+ for (const q of state.queries) {
229
+ const entry = upsert(q.key, cache.get(hashQueryKey(q.key))?.fn ??
230
+ (() => Promise.reject(new Error("[nifra/web] hydrated query has no fetcher yet"))), defaultStaleTime);
231
+ // Don't clobber a client entry that's already fresher than the server snapshot (the client may
232
+ // have refetched between SSR and hydration). Seed only when we have no successful data or the
233
+ // incoming snapshot is newer.
234
+ if (entry.state.status !== "success" || q.updatedAt > entry.state.updatedAt)
235
+ entry.setState(successState(q.data, q.updatedAt));
236
+ }
237
+ };
238
+ // --- Infinite (paged) queries -----------------------------------------------------------------
239
+ const infiniteQuery = (key, fn, opts) => {
240
+ sweep();
241
+ const h = hashQueryKey(key);
242
+ const existing = infinite.get(h);
243
+ if (existing !== undefined) {
244
+ existing.rebind(fn, opts);
245
+ return existing.handle;
246
+ }
247
+ const created = makeInfinite(fn, opts);
248
+ infinite.set(h, created);
249
+ return created.handle;
250
+ };
251
+ const infinite = new Map();
252
+ const makeInfinite = (fetchPage, initialOpts) => {
253
+ let fn = fetchPage;
254
+ let opts = initialOpts;
255
+ let state = PENDING;
256
+ let generation = 0;
257
+ let promise;
258
+ let subscribers = 0;
259
+ const listeners = new Set();
260
+ const emit = () => {
261
+ for (const l of listeners)
262
+ l();
263
+ };
264
+ const setState = (next) => {
265
+ state = Object.freeze(next);
266
+ emit();
267
+ };
268
+ const nextParam = (data) => {
269
+ const last = data.pages[data.pages.length - 1];
270
+ if (last === undefined)
271
+ return undefined;
272
+ return opts.getNextPageParam(last, data.pages, data.pageParams[data.pageParams.length - 1], data.pageParams);
273
+ };
274
+ const prevParam = (data) => {
275
+ if (opts.getPreviousPageParam === undefined || data.pages.length === 0)
276
+ return undefined;
277
+ return opts.getPreviousPageParam(data.pages[0], data.pages, data.pageParams[0], data.pageParams);
278
+ };
279
+ const isStale = () => now() - state.updatedAt >= (opts.staleTime ?? defaultStaleTime);
280
+ // Run a paged operation under a fresh generation, guarding against a superseding op (like `run`).
281
+ const runPaged = (build) => {
282
+ if (promise !== undefined)
283
+ return promise;
284
+ const gen = ++generation;
285
+ setState({ ...state, isFetching: true });
286
+ const p = (async () => {
287
+ try {
288
+ const data = await build();
289
+ if (gen !== generation)
290
+ return data;
291
+ setState(successState(data, now()));
292
+ return data;
293
+ }
294
+ catch (error) {
295
+ if (gen === generation)
296
+ setState({ ...state, status: "error", error, isFetching: false });
297
+ throw error;
298
+ }
299
+ finally {
300
+ if (gen === generation)
301
+ promise = undefined;
302
+ }
303
+ })();
304
+ promise = p;
305
+ return p;
306
+ };
307
+ const fetchFirst = (force) => {
308
+ if (!force && state.status === "success" && !isStale() && state.data !== undefined)
309
+ return Promise.resolve(state.data);
310
+ return runPaged(async () => {
311
+ const page = await fn(opts.initialPageParam);
312
+ return { pages: [page], pageParams: [opts.initialPageParam] };
313
+ });
314
+ };
315
+ const handle = {
316
+ snapshot: () => state,
317
+ subscribe: (listener) => {
318
+ subscribers++;
319
+ listeners.add(listener);
320
+ return () => {
321
+ listeners.delete(listener);
322
+ subscribers--;
323
+ };
324
+ },
325
+ fetch: () => fetchFirst(false),
326
+ refetch: () => runPaged(async () => {
327
+ const current = state.data;
328
+ if (current === undefined || current.pages.length === 0) {
329
+ const page = await fn(opts.initialPageParam);
330
+ return { pages: [page], pageParams: [opts.initialPageParam] };
331
+ }
332
+ // Refetch every loaded page in order with its original param, so the list stays the same size.
333
+ const pages = [];
334
+ for (const param of current.pageParams)
335
+ pages.push(await fn(param));
336
+ return { pages, pageParams: [...current.pageParams] };
337
+ }),
338
+ fetchNextPage: () => {
339
+ const current = state.data;
340
+ if (current === undefined)
341
+ return fetchFirst(false);
342
+ const param = nextParam(current);
343
+ if (param === undefined || param === null)
344
+ return Promise.resolve(current);
345
+ return runPaged(async () => {
346
+ const page = await fn(param);
347
+ return { pages: [...current.pages, page], pageParams: [...current.pageParams, param] };
348
+ });
349
+ },
350
+ fetchPreviousPage: () => {
351
+ const current = state.data;
352
+ if (current === undefined)
353
+ return fetchFirst(false);
354
+ const param = prevParam(current);
355
+ if (param === undefined || param === null)
356
+ return Promise.resolve(current);
357
+ return runPaged(async () => {
358
+ const page = await fn(param);
359
+ return { pages: [page, ...current.pages], pageParams: [param, ...current.pageParams] };
360
+ });
361
+ },
362
+ hasNextPage: () => {
363
+ const p = state.data === undefined ? undefined : nextParam(state.data);
364
+ return p !== undefined && p !== null;
365
+ },
366
+ hasPreviousPage: () => {
367
+ const p = state.data === undefined ? undefined : prevParam(state.data);
368
+ return p !== undefined && p !== null;
369
+ },
370
+ };
371
+ return {
372
+ handle: handle,
373
+ rebind: (nextFn, nextOpts) => {
374
+ fn = nextFn;
375
+ opts = nextOpts;
376
+ },
377
+ };
378
+ };
379
+ return {
380
+ query,
381
+ infiniteQuery,
382
+ invalidateQueries,
383
+ getQueryData,
384
+ setQueryData,
385
+ prefetchQuery,
386
+ dehydrate,
387
+ hydrate,
388
+ };
389
+ }
390
+ const IDLE_MUTATION = Object.freeze({
391
+ status: "idle",
392
+ data: undefined,
393
+ error: undefined,
394
+ variables: undefined,
395
+ });
396
+ /**
397
+ * Create a standalone mutation state machine — framework-agnostic, so a per-adapter `useMutation`
398
+ * binding just subscribes to it. Single-flight by a monotonic token: overlapping `mutate` calls each
399
+ * run their `fn`, but only the latest publishes state (an older, slower response can't clobber a newer
400
+ * one). The callbacks fire in TanStack order: `onMutate` (before), then `onSuccess`/`onError`, then
401
+ * `onSettled`.
402
+ */
403
+ export function createMutation(fn, callbacks = {}) {
404
+ let mutationFn = fn;
405
+ let cbs = callbacks;
406
+ let state = IDLE_MUTATION;
407
+ let token = 0;
408
+ const listeners = new Set();
409
+ const emit = () => {
410
+ for (const l of listeners)
411
+ l();
412
+ };
413
+ const setState = (next) => {
414
+ state = Object.freeze(next);
415
+ emit();
416
+ };
417
+ return {
418
+ snapshot: () => state,
419
+ subscribe: (listener) => {
420
+ listeners.add(listener);
421
+ return () => {
422
+ listeners.delete(listener);
423
+ };
424
+ },
425
+ rebind: (nextFn, nextCallbacks) => {
426
+ mutationFn = nextFn;
427
+ cbs = nextCallbacks;
428
+ },
429
+ reset: () => setState(IDLE_MUTATION),
430
+ mutate: async (variables) => {
431
+ const mine = ++token;
432
+ setState({ status: "pending", data: undefined, error: undefined, variables });
433
+ // Only await a callback when one is actually supplied — an `await undefined` would insert a
434
+ // needless microtask before the mutationFn runs (and complicates single-flight timing).
435
+ if (cbs.onMutate !== undefined)
436
+ await cbs.onMutate(variables);
437
+ try {
438
+ const data = await mutationFn(variables);
439
+ if (mine === token)
440
+ setState({ status: "success", data, error: undefined, variables });
441
+ if (cbs.onSuccess !== undefined)
442
+ await cbs.onSuccess(data, variables);
443
+ if (cbs.onSettled !== undefined)
444
+ await cbs.onSettled(data, undefined, variables);
445
+ return data;
446
+ }
447
+ catch (error) {
448
+ if (mine === token)
449
+ setState({ status: "error", data: undefined, error, variables });
450
+ if (cbs.onError !== undefined)
451
+ await cbs.onError(error, variables);
452
+ if (cbs.onSettled !== undefined)
453
+ await cbs.onSettled(undefined, error, variables);
454
+ throw error;
455
+ }
456
+ },
457
+ };
183
458
  }
184
459
  //# sourceMappingURL=query.js.map
package/dist/query.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAoIH;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,GAAY;IACvC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;QACvC,IAAI,OAAO,KAAK,KAAK,UAAU,IAAI,OAAO,KAAK,KAAK,QAAQ;YAC1D,MAAM,IAAI,SAAS,CAAC,qEAAqE,CAAC,CAAA;QAC5F,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzE,MAAM,GAAG,GAAG,KAAgC,CAAA;YAC5C,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;iBACb,IAAI,EAAE;iBACN,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAC3B,CAAA;QACH,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,qGAAqG;AACrG,wDAAwD;AACxD,SAAS,gBAAgB,CAAC,GAAY,EAAE,MAAe;IACrD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAC/C,OAAO,YAAY,CAAC,GAAG,CAAC,KAAK,YAAY,CAAC,MAAM,CAAC,CAAA;IACnD,OAAO,CACL,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAChG,CAAA;AACH,CAAC;AAyBD,MAAM,OAAO,GAAe,MAAM,CAAC,MAAM,CAAC;IACxC,MAAM,EAAE,SAAS;IACjB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,SAAS;IAChB,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,MAAM,CAAC,iBAAiB;CACpC,CAAC,CAAA;AAEF,kFAAkF;AAClF,SAAS,YAAY,CAAI,IAAO,EAAE,SAAiB;IACjD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;AACpF,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAA2B;IAC3D,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;IACvB,MAAM,gBAAgB,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,CAAA;IAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,GAAG,MAAM,CAAA;IAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAA;IAC/B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAiB,CAAA;IAEtC,iGAAiG;IACjG,sGAAsG;IACtG,MAAM,KAAK,GAAG,GAAS,EAAE;QACvB,MAAM,CAAC,GAAG,GAAG,EAAE,CAAA;QACf,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI;gBAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QACjF,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,IAAI,GAAG;YAAE,OAAM;QAC7B,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,IAAI,IAAI,GAAG;gBAAE,MAAK;YAC5B,IAAI,CAAC,CAAC,WAAW,KAAK,CAAC;gBAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA,CAAC,iDAAiD;QAC5F,CAAC;IACH,CAAC,CAAA;IAED,sGAAsG;IACtG,qGAAqG;IACrG,4EAA4E;IAC5E,MAAM,SAAS,GAAG,CAAC,GAAY,EAAE,EAA0B,EAAE,SAAiB,EAAS,EAAE;QACvF,MAAM,KAAK,GAAU;YACnB,GAAG;YACH,EAAE;YACF,SAAS;YACT,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,CAAC;YACb,WAAW,EAAE,KAAK;YAClB,WAAW,EAAE,CAAC;YACd,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,IAAI,GAAG,EAAE;YACpB,QAAQ,EAAE,SAAyC;YACnD,GAAG,EAAE,SAAoC;YACzC,MAAM,EAAE,SAAmC;SAC5C,CAAA;QACD,MAAM,IAAI,GAAG,GAAS,EAAE;YACtB,4FAA4F;YAC5F,sGAAsG;YACtG,qFAAqF;YACrF,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC;gBAAE,OAAM;YACtC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS;gBAAE,CAAC,EAAE,CAAA;QACtC,CAAC,CAAA;QACD,KAAK,CAAC,QAAQ,GAAG,CAAC,IAAgB,EAAQ,EAAE;YAC1C,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACjC,IAAI,EAAE,CAAA;QACR,CAAC,CAAA;QACD,MAAM,OAAO,GAAG,GAAY,EAAE,CAC5B,KAAK,CAAC,WAAW,IAAI,GAAG,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAA;QAEvE,KAAK,CAAC,GAAG,GAAG,CAAC,KAAc,EAAoB,EAAE;YAC/C,0FAA0F;YAC1F,+FAA+F;YAC/F,gGAAgG;YAChG,4DAA4D;YAC5D,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU;gBAAE,OAAO,KAAK,CAAC,OAAO,CAAA;YAC9F,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,OAAO,EAAE;gBAC1D,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA,CAAC,+BAA+B;YAC1E,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAA;YAC5B,KAAK,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA,CAAC,oCAAoC;YACzF,MAAM,OAAO,GAAG,CAAC,KAAK,IAAI,EAAE;gBAC1B,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,EAAE,CAAA;oBAC7B,2FAA2F;oBAC3F,yFAAyF;oBACzF,6DAA6D;oBAC7D,IAAI,GAAG,KAAK,KAAK,CAAC,UAAU;wBAAE,OAAO,IAAI,CAAA;oBACzC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAA;oBACzB,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;oBACzC,OAAO,IAAI,CAAA;gBACb,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,GAAG,KAAK,KAAK,CAAC,UAAU;wBAC1B,KAAK,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAA;oBAC/E,MAAM,KAAK,CAAA;gBACb,CAAC;wBAAS,CAAC;oBACT,mFAAmF;oBACnF,uFAAuF;oBACvF,yFAAyF;oBACzF,IAAI,KAAK,CAAC,UAAU,KAAK,GAAG;wBAAE,KAAK,CAAC,OAAO,GAAG,SAAS,CAAA;gBACzD,CAAC;YACH,CAAC,CAAC,EAAE,CAAA;YACJ,KAAK,CAAC,OAAO,GAAG,OAAO,CAAA;YACvB,KAAK,CAAC,UAAU,GAAG,GAAG,CAAA;YACtB,OAAO,OAAO,CAAA;QAChB,CAAC,CAAA;QAED,KAAK,CAAC,MAAM,GAAG;YACb,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK;YAC3B,SAAS,EAAE,CAAC,QAAoB,EAAE,EAAE;gBAClC,KAAK,CAAC,WAAW,EAAE,CAAA;gBACnB,KAAK,CAAC,IAAI,GAAG,SAAS,CAAA,CAAC,6CAA6C;gBACpE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;gBAC7B,OAAO,GAAG,EAAE;oBACV,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;oBAChC,KAAK,CAAC,WAAW,EAAE,CAAA;oBACnB,IAAI,KAAK,CAAC,WAAW,KAAK,CAAC;wBAAE,KAAK,CAAC,IAAI,GAAG,GAAG,EAAE,GAAG,MAAM,CAAA;gBAC1D,CAAC,CAAA;YACH,CAAC;YACD,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;YAC7B,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;SAC/B,CAAA;QACD,OAAO,KAAK,CAAA;IACd,CAAC,CAAA;IAED,sGAAsG;IACtG,MAAM,MAAM,GAAG,CAAC,GAAY,EAAE,EAA0B,EAAE,SAAiB,EAAS,EAAE;QACpF,MAAM,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;QAC3B,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAC7B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAA;YAChB,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAA;YAC9B,OAAO,QAAQ,CAAA;QACjB,CAAC;QACD,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,EAAE,EAAE,SAAS,CAAC,CAAA;QAC3C,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;QACnB,OAAO,KAAK,CAAA;IACd,CAAC,CAAA;IAED,MAAM,KAAK,GAAG,CAAI,GAAY,EAAE,EAAoB,EAAE,IAAmB,EAAkB,EAAE;QAC3F,KAAK,EAAE,CAAA;QACP,OAAO,MAAM,CAAC,GAAG,EAAE,EAA4B,EAAE,IAAI,EAAE,SAAS,IAAI,gBAAgB,CAAC;aAClF,MAAwB,CAAA;IAC7B,CAAC,CAAA;IAED,MAAM,iBAAiB,GAAG,CAAC,WAAoB,EAAQ,EAAE;QACvD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACnC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC;gBAAE,SAAQ;YACvD,KAAK,CAAC,WAAW,GAAG,IAAI,CAAA,CAAC,6CAA6C;YACtE,8FAA8F;YAC9F,2FAA2F;YAC3F,iEAAiE;YACjE,KAAK,CAAC,UAAU,EAAE,CAAA;YAClB,IAAI,KAAK,CAAC,WAAW,GAAG,CAAC;gBAAE,KAAK,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA,CAAC,oCAAoC;QAC7G,CAAC;IACH,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,CAAI,GAAY,EAAiB,EAAE;QACtD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAA;QAC1C,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS;YAC5D,CAAC,CAAE,KAAK,CAAC,KAAK,CAAC,IAAU;YACzB,CAAC,CAAC,SAAS,CAAA;IACf,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,CAAI,GAAY,EAAE,OAAyC,EAAQ,EAAE;QACxF,qGAAqG;QACrG,0FAA0F;QAC1F,MAAM,KAAK,GAAG,MAAM,CAClB,GAAG,EACH,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE;YAC9B,CAAC,GAAG,EAAE,CACJ,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC,CAAC,EAC1F,gBAAgB,CACjB,CAAA;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAE,KAAK,CAAC,KAAK,CAAC,IAAU,CAAC,CAAC,CAAC,SAAS,CAAA;QACnF,MAAM,IAAI,GACR,OAAO,OAAO,KAAK,UAAU,CAAC,CAAC,CAAE,OAAmC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;QACtF,mGAAmG;QACnG,wEAAwE;QACxE,KAAK,CAAC,UAAU,EAAE,CAAA;QAClB,KAAK,CAAC,WAAW,GAAG,KAAK,CAAA;QACzB,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;IAC3C,CAAC,CAAA;IAED,MAAM,aAAa,GAAG,KAAK,EACzB,GAAY,EACZ,EAAoB,EACpB,IAAmB,EACJ,EAAE;QACjB,KAAK,EAAE,CAAA;QACP,MAAM,MAAM,CAAC,GAAG,EAAE,EAA4B,EAAE,IAAI,EAAE,SAAS,IAAI,gBAAgB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IACjG,CAAC,CAAA;IAED,MAAM,SAAS,GAAG,GAAoB,EAAE;QACtC,MAAM,OAAO,GAA8D,EAAE,CAAA;QAC7E,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACnC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS;gBAClC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAA;QAC9F,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,CAAA;IACpB,CAAC,CAAA;IAED,MAAM,OAAO,GAAG,CAAC,KAAsB,EAAQ,EAAE;QAC/C,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,MAAM,CAClB,CAAC,CAAC,GAAG,EACL,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE;gBAChC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC,CAAC,EACpF,gBAAgB,CACjB,CAAA;YACD,+FAA+F;YAC/F,8FAA8F;YAC9F,8BAA8B;YAC9B,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS;gBACzE,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;QACrD,CAAC;IACH,CAAC,CAAA;IAED,iGAAiG;IACjG,MAAM,aAAa,GAAG,CACpB,GAAY,EACZ,EAAgC,EAChC,IAAgC,EACL,EAAE;QAC7B,KAAK,EAAE,CAAA;QACP,MAAM,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;QAC3B,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAChC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,QAAQ,CAAC,MAAM,CACb,EAAsC,EACtC,IAA8C,CAC/C,CAAA;YACD,OAAO,QAAQ,CAAC,MAAmC,CAAA;QACrD,CAAC;QACD,MAAM,OAAO,GAAG,YAAY,CAAO,EAAE,EAAE,IAAI,CAAC,CAAA;QAC5C,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,OAA0C,CAAC,CAAA;QAC3D,OAAO,OAAO,CAAC,MAAM,CAAA;IACvB,CAAC,CAAA;IAOD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA2C,CAAA;IAEnE,MAAM,YAAY,GAAG,CACnB,SAAuC,EACvC,WAAuC,EAClB,EAAE;QACvB,IAAI,EAAE,GAAG,SAAS,CAAA;QAClB,IAAI,IAAI,GAAG,WAAW,CAAA;QACtB,IAAI,KAAK,GAAmC,OAAyC,CAAA;QACrF,IAAI,UAAU,GAAG,CAAC,CAAA;QAClB,IAAI,OAAgD,CAAA;QACpD,IAAI,WAAW,GAAG,CAAC,CAAA;QACnB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAc,CAAA;QACvC,MAAM,IAAI,GAAG,GAAS,EAAE;YACtB,KAAK,MAAM,CAAC,IAAI,SAAS;gBAAE,CAAC,EAAE,CAAA;QAChC,CAAC,CAAA;QACD,MAAM,QAAQ,GAAG,CAAC,IAAoC,EAAQ,EAAE;YAC9D,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YAC3B,IAAI,EAAE,CAAA;QACR,CAAC,CAAA;QACD,MAAM,SAAS,GAAG,CAAC,IAAwB,EAAwB,EAAE;YACnE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;YAC9C,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,SAAS,CAAA;YACxC,OAAO,IAAI,CAAC,gBAAgB,CAC1B,IAAI,EACJ,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAM,EAChD,IAAI,CAAC,UAAU,CAChB,CAAA;QACH,CAAC,CAAA;QACD,MAAM,SAAS,GAAG,CAAC,IAAwB,EAAwB,EAAE;YACnE,IAAI,IAAI,CAAC,oBAAoB,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,SAAS,CAAA;YACxF,OAAO,IAAI,CAAC,oBAAoB,CAC9B,IAAI,CAAC,KAAK,CAAC,CAAC,CAAM,EAClB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,UAAU,CAAC,CAAC,CAAM,EACvB,IAAI,CAAC,UAAU,CAChB,CAAA;QACH,CAAC,CAAA;QACD,MAAM,OAAO,GAAG,GAAY,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,gBAAgB,CAAC,CAAA;QAE9F,kGAAkG;QAClG,MAAM,QAAQ,GAAG,CAAC,KAAwC,EAA+B,EAAE;YACzF,IAAI,OAAO,KAAK,SAAS;gBAAE,OAAO,OAAO,CAAA;YACzC,MAAM,GAAG,GAAG,EAAE,UAAU,CAAA;YACxB,QAAQ,CAAC,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;YACxC,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;gBACpB,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,MAAM,KAAK,EAAE,CAAA;oBAC1B,IAAI,GAAG,KAAK,UAAU;wBAAE,OAAO,IAAI,CAAA;oBACnC,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;oBACnC,OAAO,IAAI,CAAA;gBACb,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,GAAG,KAAK,UAAU;wBAAE,QAAQ,CAAC,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAA;oBACzF,MAAM,KAAK,CAAA;gBACb,CAAC;wBAAS,CAAC;oBACT,IAAI,GAAG,KAAK,UAAU;wBAAE,OAAO,GAAG,SAAS,CAAA;gBAC7C,CAAC;YACH,CAAC,CAAC,EAAE,CAAA;YACJ,OAAO,GAAG,CAAC,CAAA;YACX,OAAO,CAAC,CAAA;QACV,CAAC,CAAA;QAED,MAAM,UAAU,GAAG,CAAC,KAAc,EAA+B,EAAE;YACjE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;gBAChF,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YACpC,OAAO,QAAQ,CAAC,KAAK,IAAI,EAAE;gBACzB,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;gBAC5C,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAA;YAC/D,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA;QAED,MAAM,MAAM,GAA8B;YACxC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK;YACrB,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE;gBACtB,WAAW,EAAE,CAAA;gBACb,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;gBACvB,OAAO,GAAG,EAAE;oBACV,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;oBAC1B,WAAW,EAAE,CAAA;gBACf,CAAC,CAAA;YACH,CAAC;YACD,KAAK,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;YAC9B,OAAO,EAAE,GAAG,EAAE,CACZ,QAAQ,CAAC,KAAK,IAAI,EAAE;gBAClB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAA;gBAC1B,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACxD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;oBAC5C,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAA;gBAC/D,CAAC;gBACD,+FAA+F;gBAC/F,MAAM,KAAK,GAAQ,EAAE,CAAA;gBACrB,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,UAAU;oBAAE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;gBACnE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,EAAE,CAAA;YACvD,CAAC,CAAC;YACJ,aAAa,EAAE,GAAG,EAAE;gBAClB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAA;gBAC1B,IAAI,OAAO,KAAK,SAAS;oBAAE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAA;gBACnD,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;gBAChC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;oBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;gBAC1E,OAAO,QAAQ,CAAC,KAAK,IAAI,EAAE;oBACzB,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,CAAA;oBAC5B,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,CAAA;gBACxF,CAAC,CAAC,CAAA;YACJ,CAAC;YACD,iBAAiB,EAAE,GAAG,EAAE;gBACtB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAA;gBAC1B,IAAI,OAAO,KAAK,SAAS;oBAAE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAA;gBACnD,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;gBAChC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;oBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;gBAC1E,OAAO,QAAQ,CAAC,KAAK,IAAI,EAAE;oBACzB,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,CAAA;oBAC5B,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,EAAE,CAAA;gBACxF,CAAC,CAAC,CAAA;YACJ,CAAC;YACD,WAAW,EAAE,GAAG,EAAE;gBAChB,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBACtE,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CAAA;YACtC,CAAC;YACD,eAAe,EAAE,GAAG,EAAE;gBACpB,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBACtE,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CAAA;YACtC,CAAC;SACF,CAAA;QACD,OAAO;YACL,MAAM,EAAE,MAA+C;YACvD,MAAM,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE;gBAC3B,EAAE,GAAG,MAAM,CAAA;gBACX,IAAI,GAAG,QAAQ,CAAA;YACjB,CAAC;SACqB,CAAA;IAC1B,CAAC,CAAA;IAED,OAAO;QACL,KAAK;QACL,aAAa;QACb,iBAAiB;QACjB,YAAY;QACZ,YAAY;QACZ,aAAa;QACb,SAAS;QACT,OAAO;KACR,CAAA;AACH,CAAC;AA4CD,MAAM,aAAa,GAAoC,MAAM,CAAC,MAAM,CAAC;IACnE,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,SAAS;IAChB,SAAS,EAAE,SAAS;CACrB,CAAC,CAAA;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,EAA6C,EAC7C,YAAkD,EAAE;IAEpD,IAAI,UAAU,GAAG,EAAE,CAAA;IACnB,IAAI,GAAG,GAAG,SAAS,CAAA;IACnB,IAAI,KAAK,GAAG,aAAiD,CAAA;IAC7D,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,MAAM,SAAS,GAAG,IAAI,GAAG,EAAc,CAAA;IACvC,MAAM,IAAI,GAAG,GAAS,EAAE;QACtB,KAAK,MAAM,CAAC,IAAI,SAAS;YAAE,CAAC,EAAE,CAAA;IAChC,CAAC,CAAA;IACD,MAAM,QAAQ,GAAG,CAAC,IAAsC,EAAQ,EAAE;QAChE,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAC3B,IAAI,EAAE,CAAA;IACR,CAAC,CAAA;IACD,OAAO;QACL,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK;QACrB,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE;YACtB,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YACvB,OAAO,GAAG,EAAE;gBACV,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YAC5B,CAAC,CAAA;QACH,CAAC;QACD,MAAM,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE;YAChC,UAAU,GAAG,MAAM,CAAA;YACnB,GAAG,GAAG,aAAa,CAAA;QACrB,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAiD,CAAC;QACxE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;YAC1B,MAAM,IAAI,GAAG,EAAE,KAAK,CAAA;YACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAA;YAC7E,4FAA4F;YAC5F,wFAAwF;YACxF,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS;gBAAE,MAAM,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;YAC7D,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,CAAA;gBACxC,IAAI,IAAI,KAAK,KAAK;oBAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAA;gBACtF,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS;oBAAE,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;gBACrE,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS;oBAAE,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;gBAChF,OAAO,IAAI,CAAA;YACb,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,IAAI,KAAK,KAAK;oBAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;gBACpF,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS;oBAAE,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;gBAClE,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS;oBAAE,MAAM,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;gBACjF,MAAM,KAAK,CAAA;YACb,CAAC;QACH,CAAC;KACF,CAAA;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nifrajs/web",
3
- "version": "1.8.0",
3
+ "version": "1.9.0",
4
4
  "description": "Framework-agnostic SSR core for nifra — the render seam + HTML document orchestration.",
5
5
  "keywords": [
6
6
  "bun",
@@ -112,7 +112,7 @@
112
112
  "access": "public"
113
113
  },
114
114
  "dependencies": {
115
- "@nifrajs/core": "1.8.0"
115
+ "@nifrajs/core": "1.9.0"
116
116
  },
117
117
  "peerDependencies": {
118
118
  "sass": "^1.0.0",