@lunora/client 1.0.0-alpha.4 → 1.0.0-alpha.6

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
@@ -74,6 +74,8 @@ const unsubscribe = client.subscribe(api.messages.list, { room: "general" }, (ne
74
74
  client.close();
75
75
  ```
76
76
 
77
+ `client.subscribeShape({ name, args }, cb)` is the [local-first sync engine](https://lunora.sh/docs/concepts/local-first)'s parallel to `subscribe`: it replicates a **partial view** of a table (a server-defined shape) over the poke diff protocol instead of re-running a query. Most apps consume it through [`@lunora/db`](https://www.npmjs.com/package/@lunora/db)'s `lunoraCollectionOptions({ shape })` rather than directly.
78
+
77
79
  > This README covers the basics. For the full API, options, and guides, see the **[documentation](https://lunora.sh/docs/api/client)**.
78
80
 
79
81
  ## Related
@@ -1,4 +1,4 @@
1
- import { U as User, L as LunoraClient } from "../packem_shared/lunora-client.d-CbnxmuqG.mjs";
1
+ import { U as User, L as LunoraClient } from "../packem_shared/lunora-client.d-DzEWBYeP.mjs";
2
2
  import '@lunora/runtime';
3
3
  interface IdentityStore {
4
4
  /** Read the current resolved user, or `null` when signed out / not yet resolved. */
@@ -1,4 +1,4 @@
1
- import { U as User, L as LunoraClient } from "../packem_shared/lunora-client.d-CbnxmuqG.js";
1
+ import { U as User, L as LunoraClient } from "../packem_shared/lunora-client.d-DzEWBYeP.js";
2
2
  import '@lunora/runtime';
3
3
  interface IdentityStore {
4
4
  /** Read the current resolved user, or `null` when signed out / not yet resolved. */
package/dist/index.d.mts CHANGED
@@ -1,6 +1,6 @@
1
- import { c as PersistenceAdapter, B as BookmarkStorage, F as FunctionReference, A as ArgsOf, M as MutationCallOptions, R as ReturnOf, O as OfflineQueueOptions, Q as QueryCacheAdapter, d as ReconnectOptions } from "./packem_shared/lunora-client.d-CbnxmuqG.mjs";
2
- export { type C as CachedQuery, type e as ClientMessage, type f as ConnectionStatus, D as DEFAULT_MAX_BUFFER, type g as FunctionArgumentDescriptor, type h as FunctionDescriptor, type G as GlobalFacetResult, type i as GlobalFacetValue, type j as GlobalFilterClause, type k as GlobalTableInfo, type l as GlobalTablePage, L as LunoraClient, type m as LunoraClientOptions, type n as OptimisticLocalStore, type o as OptimisticUpdate, type p as PersistedMutation, type P as Preloaded, type q as RpcEnvelope, type r as RpcResponseBody, type s as ScheduleRecord, type t as SchedulerPoolStatus, type u as SchedulerStatus, type v as ServerMessage, type w as ShardTrafficEntry, type x as ShardTrafficResult, type y as StorageListPage, type z as StorageObject, type E as StreamHandle, type H as StreamIterable, type I as SubscriptionCallback, type S as SubscriptionError, type b as SubscriptionErrorCallback, J as SubscriptionRegistry, type K as SubscriptionState, type a as Unsubscribe, type U as User, type W as WorkflowInstanceAction, type N as WorkflowInstanceDetail, type T as WorkflowInstancePage, type V as WorkflowInstanceStatus, type X as WorkflowInstanceSummary, type Y as WorkflowStepDetail, Z as createLocalStore, _ as createStream } from "./packem_shared/lunora-client.d-CbnxmuqG.mjs";
3
- export { p as preloadQuery, a as preloadedQueryResult } from "./packem_shared/preload.d-Bhq6DBSe.mjs";
1
+ import { c as PersistenceAdapter, B as BookmarkStorage, F as FunctionReference, A as ArgsOf, M as MutationCallOptions, R as ReturnOf, O as OfflineQueueOptions, Q as QueryCacheAdapter, d as ReconnectOptions } from "./packem_shared/lunora-client.d-DzEWBYeP.mjs";
2
+ export { type C as CachedQuery, type e as ClientMessage, type f as ClientShapeSubscribeMessage, type g as ClientShapeUnsubscribeMessage, type h as ConnectionStatus, D as DEFAULT_MAX_BUFFER, type i as FunctionArgumentDescriptor, type j as FunctionDescriptor, type G as GlobalFacetResult, type k as GlobalFacetValue, type l as GlobalFilterClause, type m as GlobalTableInfo, type n as GlobalTablePage, L as LunoraClient, type o as LunoraClientOptions, type p as OptimisticLocalStore, type q as OptimisticUpdate, type r as OutboxMutation, type s as OutboxSink, type t as PersistedMutation, type P as Preloaded, type u as RowOp, type v as RpcEnvelope, type w as RpcResponseBody, type x as ScheduleRecord, type y as SchedulerPoolStatus, type z as SchedulerStatus, type E as ServerMessage, type H as ServerPokeEndMessage, type I as ServerPokePartMessage, type J as ServerPokeStartMessage, type K as ShardTrafficEntry, type N as ShardTrafficResult, type T as StorageListPage, type V as StorageObject, type W as StreamHandle, type X as StreamIterable, type Y as SubscriptionCallback, type S as SubscriptionError, type b as SubscriptionErrorCallback, Z as SubscriptionRegistry, type _ as SubscriptionState, type $ as SyncWatermark, type a as Unsubscribe, type U as User, type a0 as WorkflowInstanceAction, type a1 as WorkflowInstanceDetail, type a2 as WorkflowInstancePage, type a3 as WorkflowInstanceStatus, type a4 as WorkflowInstanceSummary, type a5 as WorkflowStepDetail, a6 as createLocalStore, a7 as createStream } from "./packem_shared/lunora-client.d-DzEWBYeP.mjs";
3
+ export { p as preloadQuery, a as preloadedQueryResult } from "./packem_shared/preload.d-DuYqEQ5J.mjs";
4
4
  export type { AuthCapabilities, AuthImpersonation, AuthPage, AuthSession, AuthUser, CronJobInfo, VectorIndexSummary, VectorQueryMatch } from '@lunora/runtime';
5
5
  /**
6
6
  * The slice of React Native's `AsyncStorage` (or any async key/value store —
@@ -136,6 +136,59 @@ interface MutationRunnerSinks<R> {
136
136
  * pass straight through to `client.mutation`.
137
137
  */
138
138
  declare const createMutationRunner: <F extends FunctionReference>(client: MutationCapableClient<F>, function_: F, sinks: MutationRunnerSinks<ReturnOf<F>>) => ((args: ArgsOf<F>, options?: MutationCallOptions<unknown, unknown, ArgsOf<F>>) => Promise<ReturnOf<F>>);
139
+ /**
140
+ * The structural surface of a TanStack `Transaction` a bound custom mutator
141
+ * returns — its `isPersisted.promise` resolves once the write is persisted and
142
+ * rejects on failure. Typed structurally so the framework adapters need not
143
+ * depend on `@tanstack/db` or `@lunora/db` (the handle is created app-side by
144
+ * `bindMutators`).
145
+ */
146
+ interface MutatorTransaction {
147
+ isPersisted: {
148
+ promise: Promise<unknown>;
149
+ };
150
+ }
151
+ /**
152
+ * A bound custom-mutator handle produced by `bindMutators(client, ctx, mutators)`
153
+ * in `@lunora/db`. Calling it applies the optimistic overlay to the local
154
+ * collections and pushes the authoritative server write; it returns the TanStack
155
+ * transaction whose `isPersisted` promise tracks completion.
156
+ */
157
+ type MutatorHandle<TArgs> = (args: TArgs) => MutatorTransaction;
158
+ /**
159
+ * Reactive sinks an adapter binds to its own primitive's setters (a React
160
+ * `useState`, a Solid signal, a Vue ref, a Svelte store). The runner pushes into
161
+ * them; how they store the value is the adapter's concern.
162
+ */
163
+ interface MutatorRunnerSinks {
164
+ /** Receives the normalized {@link Error} when an invocation rejects, or `undefined` on success / reset. */
165
+ setError: (error: Error | undefined) => void;
166
+ /** Receives `true` while at least one invocation is in flight (ref-counted across overlapping calls), else `false`. */
167
+ setPending: (pending: boolean) => void;
168
+ }
169
+ /**
170
+ * Build the framework-neutral `mutate` / `reset` pair of an adapter's
171
+ * custom-mutator hook (`useMutator` / `createMutator` / `mutator`).
172
+ *
173
+ * Owns the orchestration every adapter otherwise copy-pastes: ref-counts
174
+ * overlapping invocations into `setPending` (so it only clears once the last
175
+ * settles), awaits the bound handle's `isPersisted` promise, normalizes a thrown
176
+ * non-`Error`, and routes failure to `setError` (clearing it on success) before
177
+ * re-throwing. Each adapter (`@lunora/react`, `/solid`, `/svelte`, `/vue`) binds
178
+ * the two sinks to its own reactive setters, so this logic lives in exactly one
179
+ * place. The optimistic overlay + server push are owned by the bound handle.
180
+ *
181
+ * `error` tracks the LATEST invocation, not the last to settle: overlapping
182
+ * calls can resolve out of order, so an earlier call that finishes later must
183
+ * not clobber a newer call's outcome. Each invocation takes a monotonic token
184
+ * and only writes `setError` while it is still the most recent one — otherwise
185
+ * `error`/`isError` could surface a stale success or failure (the documented
186
+ * "latest invocation's error" contract every adapter advertises).
187
+ */
188
+ declare const createMutatorRunner: <TArgs>(handle: MutatorHandle<TArgs>, sinks: MutatorRunnerSinks) => {
189
+ mutate: (args: TArgs) => Promise<void>;
190
+ reset: () => void;
191
+ };
139
192
  interface QueuedMutation<T = unknown> {
140
193
  readonly args: Record<string, unknown>;
141
194
  readonly functionPath: string;
@@ -153,6 +206,16 @@ interface QueuedMutation<T = unknown> {
153
206
  readonly shardKey?: string;
154
207
  }
155
208
  /**
209
+ * A process-unique id, used both per-mutation and as the fallback `clientId`. It
210
+ * MUST be globally unique: the server scopes a custom mutator's replay watermark
211
+ * by `(verifiedIdentity, clientId)`, and an anonymous push has no verified
212
+ * identity — so two anonymous clients that collide on `clientId` would share one
213
+ * watermark namespace, letting one stall/suppress the other's ordered mutations.
214
+ * `crypto.randomUUID` covers every modern runtime; the fallback still mixes
215
+ * crypto-quality (or `Math.random`) entropy with the timestamp + counter so it
216
+ * can't collide across two clients started in the same millisecond.
217
+ */
218
+ /**
156
219
  * Bounded FIFO queue. Mutations issued while the client is offline are
157
220
  * enqueued and replayed in the order they were submitted once the WS
158
221
  * reconnects and identifies. If the queue exceeds `maxItems` the oldest
@@ -278,4 +341,4 @@ interface ReconnectCalculator {
278
341
  reset: () => void;
279
342
  }
280
343
  declare const createReconnect: (options?: ReconnectOptions, random?: () => number) => ReconnectCalculator;
281
- export { type ArgsOf, type AsyncStorageLike, type AsyncStoragePersistenceOptions, type BookmarkStorage, CONFLICT_ERROR_CODE, type FunctionReference, type IndexedDbPersistenceOptions, type IndexedDbQueryCacheOptions, type MutationCallOptions, type MutationDelta, type MutationRunnerSinks, OfflineQueue, type OfflineQueueOptions, type PersistenceAdapter, type QueryCacheAdapter, type QueuedMutation, type ReconnectCalculator, type ReconnectOptions, type ReturnOf, applyDelta, createAsyncStoragePersistence, createInMemoryBookmarkStorage, createInMemoryPersistence, createInMemoryQueryCache, createIndexedDbPersistence, createIndexedDbQueryCache, createMutationRunner, createReconnect, isConflictError, isMutationDelta, queryCacheKey };
344
+ export { type ArgsOf, type AsyncStorageLike, type AsyncStoragePersistenceOptions, type BookmarkStorage, CONFLICT_ERROR_CODE, type FunctionReference, type IndexedDbPersistenceOptions, type IndexedDbQueryCacheOptions, type MutationCallOptions, type MutationDelta, type MutationRunnerSinks, type MutatorHandle, type MutatorRunnerSinks, type MutatorTransaction, OfflineQueue, type OfflineQueueOptions, type PersistenceAdapter, type QueryCacheAdapter, type QueuedMutation, type ReconnectCalculator, type ReconnectOptions, type ReturnOf, applyDelta, createAsyncStoragePersistence, createInMemoryBookmarkStorage, createInMemoryPersistence, createInMemoryQueryCache, createIndexedDbPersistence, createIndexedDbQueryCache, createMutationRunner, createMutatorRunner, createReconnect, isConflictError, isMutationDelta, queryCacheKey };
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { c as PersistenceAdapter, B as BookmarkStorage, F as FunctionReference, A as ArgsOf, M as MutationCallOptions, R as ReturnOf, O as OfflineQueueOptions, Q as QueryCacheAdapter, d as ReconnectOptions } from "./packem_shared/lunora-client.d-CbnxmuqG.js";
2
- export { type C as CachedQuery, type e as ClientMessage, type f as ConnectionStatus, D as DEFAULT_MAX_BUFFER, type g as FunctionArgumentDescriptor, type h as FunctionDescriptor, type G as GlobalFacetResult, type i as GlobalFacetValue, type j as GlobalFilterClause, type k as GlobalTableInfo, type l as GlobalTablePage, L as LunoraClient, type m as LunoraClientOptions, type n as OptimisticLocalStore, type o as OptimisticUpdate, type p as PersistedMutation, type P as Preloaded, type q as RpcEnvelope, type r as RpcResponseBody, type s as ScheduleRecord, type t as SchedulerPoolStatus, type u as SchedulerStatus, type v as ServerMessage, type w as ShardTrafficEntry, type x as ShardTrafficResult, type y as StorageListPage, type z as StorageObject, type E as StreamHandle, type H as StreamIterable, type I as SubscriptionCallback, type S as SubscriptionError, type b as SubscriptionErrorCallback, J as SubscriptionRegistry, type K as SubscriptionState, type a as Unsubscribe, type U as User, type W as WorkflowInstanceAction, type N as WorkflowInstanceDetail, type T as WorkflowInstancePage, type V as WorkflowInstanceStatus, type X as WorkflowInstanceSummary, type Y as WorkflowStepDetail, Z as createLocalStore, _ as createStream } from "./packem_shared/lunora-client.d-CbnxmuqG.js";
3
- export { p as preloadQuery, a as preloadedQueryResult } from "./packem_shared/preload.d-C73DT6bL.js";
1
+ import { c as PersistenceAdapter, B as BookmarkStorage, F as FunctionReference, A as ArgsOf, M as MutationCallOptions, R as ReturnOf, O as OfflineQueueOptions, Q as QueryCacheAdapter, d as ReconnectOptions } from "./packem_shared/lunora-client.d-DzEWBYeP.js";
2
+ export { type C as CachedQuery, type e as ClientMessage, type f as ClientShapeSubscribeMessage, type g as ClientShapeUnsubscribeMessage, type h as ConnectionStatus, D as DEFAULT_MAX_BUFFER, type i as FunctionArgumentDescriptor, type j as FunctionDescriptor, type G as GlobalFacetResult, type k as GlobalFacetValue, type l as GlobalFilterClause, type m as GlobalTableInfo, type n as GlobalTablePage, L as LunoraClient, type o as LunoraClientOptions, type p as OptimisticLocalStore, type q as OptimisticUpdate, type r as OutboxMutation, type s as OutboxSink, type t as PersistedMutation, type P as Preloaded, type u as RowOp, type v as RpcEnvelope, type w as RpcResponseBody, type x as ScheduleRecord, type y as SchedulerPoolStatus, type z as SchedulerStatus, type E as ServerMessage, type H as ServerPokeEndMessage, type I as ServerPokePartMessage, type J as ServerPokeStartMessage, type K as ShardTrafficEntry, type N as ShardTrafficResult, type T as StorageListPage, type V as StorageObject, type W as StreamHandle, type X as StreamIterable, type Y as SubscriptionCallback, type S as SubscriptionError, type b as SubscriptionErrorCallback, Z as SubscriptionRegistry, type _ as SubscriptionState, type $ as SyncWatermark, type a as Unsubscribe, type U as User, type a0 as WorkflowInstanceAction, type a1 as WorkflowInstanceDetail, type a2 as WorkflowInstancePage, type a3 as WorkflowInstanceStatus, type a4 as WorkflowInstanceSummary, type a5 as WorkflowStepDetail, a6 as createLocalStore, a7 as createStream } from "./packem_shared/lunora-client.d-DzEWBYeP.js";
3
+ export { p as preloadQuery, a as preloadedQueryResult } from "./packem_shared/preload.d-CmMMC-wm.js";
4
4
  export type { AuthCapabilities, AuthImpersonation, AuthPage, AuthSession, AuthUser, CronJobInfo, VectorIndexSummary, VectorQueryMatch } from '@lunora/runtime';
5
5
  /**
6
6
  * The slice of React Native's `AsyncStorage` (or any async key/value store —
@@ -136,6 +136,59 @@ interface MutationRunnerSinks<R> {
136
136
  * pass straight through to `client.mutation`.
137
137
  */
138
138
  declare const createMutationRunner: <F extends FunctionReference>(client: MutationCapableClient<F>, function_: F, sinks: MutationRunnerSinks<ReturnOf<F>>) => ((args: ArgsOf<F>, options?: MutationCallOptions<unknown, unknown, ArgsOf<F>>) => Promise<ReturnOf<F>>);
139
+ /**
140
+ * The structural surface of a TanStack `Transaction` a bound custom mutator
141
+ * returns — its `isPersisted.promise` resolves once the write is persisted and
142
+ * rejects on failure. Typed structurally so the framework adapters need not
143
+ * depend on `@tanstack/db` or `@lunora/db` (the handle is created app-side by
144
+ * `bindMutators`).
145
+ */
146
+ interface MutatorTransaction {
147
+ isPersisted: {
148
+ promise: Promise<unknown>;
149
+ };
150
+ }
151
+ /**
152
+ * A bound custom-mutator handle produced by `bindMutators(client, ctx, mutators)`
153
+ * in `@lunora/db`. Calling it applies the optimistic overlay to the local
154
+ * collections and pushes the authoritative server write; it returns the TanStack
155
+ * transaction whose `isPersisted` promise tracks completion.
156
+ */
157
+ type MutatorHandle<TArgs> = (args: TArgs) => MutatorTransaction;
158
+ /**
159
+ * Reactive sinks an adapter binds to its own primitive's setters (a React
160
+ * `useState`, a Solid signal, a Vue ref, a Svelte store). The runner pushes into
161
+ * them; how they store the value is the adapter's concern.
162
+ */
163
+ interface MutatorRunnerSinks {
164
+ /** Receives the normalized {@link Error} when an invocation rejects, or `undefined` on success / reset. */
165
+ setError: (error: Error | undefined) => void;
166
+ /** Receives `true` while at least one invocation is in flight (ref-counted across overlapping calls), else `false`. */
167
+ setPending: (pending: boolean) => void;
168
+ }
169
+ /**
170
+ * Build the framework-neutral `mutate` / `reset` pair of an adapter's
171
+ * custom-mutator hook (`useMutator` / `createMutator` / `mutator`).
172
+ *
173
+ * Owns the orchestration every adapter otherwise copy-pastes: ref-counts
174
+ * overlapping invocations into `setPending` (so it only clears once the last
175
+ * settles), awaits the bound handle's `isPersisted` promise, normalizes a thrown
176
+ * non-`Error`, and routes failure to `setError` (clearing it on success) before
177
+ * re-throwing. Each adapter (`@lunora/react`, `/solid`, `/svelte`, `/vue`) binds
178
+ * the two sinks to its own reactive setters, so this logic lives in exactly one
179
+ * place. The optimistic overlay + server push are owned by the bound handle.
180
+ *
181
+ * `error` tracks the LATEST invocation, not the last to settle: overlapping
182
+ * calls can resolve out of order, so an earlier call that finishes later must
183
+ * not clobber a newer call's outcome. Each invocation takes a monotonic token
184
+ * and only writes `setError` while it is still the most recent one — otherwise
185
+ * `error`/`isError` could surface a stale success or failure (the documented
186
+ * "latest invocation's error" contract every adapter advertises).
187
+ */
188
+ declare const createMutatorRunner: <TArgs>(handle: MutatorHandle<TArgs>, sinks: MutatorRunnerSinks) => {
189
+ mutate: (args: TArgs) => Promise<void>;
190
+ reset: () => void;
191
+ };
139
192
  interface QueuedMutation<T = unknown> {
140
193
  readonly args: Record<string, unknown>;
141
194
  readonly functionPath: string;
@@ -153,6 +206,16 @@ interface QueuedMutation<T = unknown> {
153
206
  readonly shardKey?: string;
154
207
  }
155
208
  /**
209
+ * A process-unique id, used both per-mutation and as the fallback `clientId`. It
210
+ * MUST be globally unique: the server scopes a custom mutator's replay watermark
211
+ * by `(verifiedIdentity, clientId)`, and an anonymous push has no verified
212
+ * identity — so two anonymous clients that collide on `clientId` would share one
213
+ * watermark namespace, letting one stall/suppress the other's ordered mutations.
214
+ * `crypto.randomUUID` covers every modern runtime; the fallback still mixes
215
+ * crypto-quality (or `Math.random`) entropy with the timestamp + counter so it
216
+ * can't collide across two clients started in the same millisecond.
217
+ */
218
+ /**
156
219
  * Bounded FIFO queue. Mutations issued while the client is offline are
157
220
  * enqueued and replayed in the order they were submitted once the WS
158
221
  * reconnects and identifies. If the queue exceeds `maxItems` the oldest
@@ -278,4 +341,4 @@ interface ReconnectCalculator {
278
341
  reset: () => void;
279
342
  }
280
343
  declare const createReconnect: (options?: ReconnectOptions, random?: () => number) => ReconnectCalculator;
281
- export { type ArgsOf, type AsyncStorageLike, type AsyncStoragePersistenceOptions, type BookmarkStorage, CONFLICT_ERROR_CODE, type FunctionReference, type IndexedDbPersistenceOptions, type IndexedDbQueryCacheOptions, type MutationCallOptions, type MutationDelta, type MutationRunnerSinks, OfflineQueue, type OfflineQueueOptions, type PersistenceAdapter, type QueryCacheAdapter, type QueuedMutation, type ReconnectCalculator, type ReconnectOptions, type ReturnOf, applyDelta, createAsyncStoragePersistence, createInMemoryBookmarkStorage, createInMemoryPersistence, createInMemoryQueryCache, createIndexedDbPersistence, createIndexedDbQueryCache, createMutationRunner, createReconnect, isConflictError, isMutationDelta, queryCacheKey };
344
+ export { type ArgsOf, type AsyncStorageLike, type AsyncStoragePersistenceOptions, type BookmarkStorage, CONFLICT_ERROR_CODE, type FunctionReference, type IndexedDbPersistenceOptions, type IndexedDbQueryCacheOptions, type MutationCallOptions, type MutationDelta, type MutationRunnerSinks, type MutatorHandle, type MutatorRunnerSinks, type MutatorTransaction, OfflineQueue, type OfflineQueueOptions, type PersistenceAdapter, type QueryCacheAdapter, type QueuedMutation, type ReconnectCalculator, type ReconnectOptions, type ReturnOf, applyDelta, createAsyncStoragePersistence, createInMemoryBookmarkStorage, createInMemoryPersistence, createInMemoryQueryCache, createIndexedDbPersistence, createIndexedDbQueryCache, createMutationRunner, createMutatorRunner, createReconnect, isConflictError, isMutationDelta, queryCacheKey };
package/dist/index.mjs CHANGED
@@ -3,9 +3,10 @@ export { default as createInMemoryBookmarkStorage } from './packem_shared/create
3
3
  export { applyDelta, isMutationDelta } from './packem_shared/applyDelta-4jFGTPA3.mjs';
4
4
  export { CONFLICT_ERROR_CODE, isConflictError } from './packem_shared/CONFLICT_ERROR_CODE-aUdVbEDw.mjs';
5
5
  export { createLocalStore } from './packem_shared/createLocalStore-DSUfoLqY.mjs';
6
- export { LunoraClient } from './packem_shared/LunoraClient-DHMV-94j.mjs';
6
+ export { LunoraClient } from './packem_shared/LunoraClient-DhwA_5Kj.mjs';
7
7
  export { createMutationRunner } from './packem_shared/createMutationRunner-BqsavzvG.mjs';
8
- export { OfflineQueue } from './packem_shared/OfflineQueue-D5p_QgF_.mjs';
8
+ export { createMutatorRunner } from './packem_shared/createMutatorRunner-BETvCd0p.mjs';
9
+ export { OfflineQueue } from './packem_shared/OfflineQueue-D-ASeqL7.mjs';
9
10
  export { createInMemoryPersistence, createIndexedDbPersistence } from './packem_shared/createInMemoryPersistence-CW82inU5.mjs';
10
11
  export { preloadQuery, preloadedQueryResult } from './packem_shared/preloadQuery-lobFkD2Z.mjs';
11
12
  export { createInMemoryQueryCache, createIndexedDbQueryCache, queryCacheKey } from './packem_shared/createInMemoryQueryCache-B1PQ9Twl.mjs';