@rocicorp/zero 0.25.0-canary.1 → 0.25.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.
Files changed (166) hide show
  1. package/out/{chunk-AIPM77UE.js → chunk-QZSBDHTA.js} +509 -311
  2. package/out/chunk-QZSBDHTA.js.map +7 -0
  3. package/out/{chunk-55BOUNXO.js → chunk-YTVU4GOY.js} +19 -3
  4. package/out/{chunk-55BOUNXO.js.map → chunk-YTVU4GOY.js.map} +3 -3
  5. package/out/react.js +44 -25
  6. package/out/react.js.map +2 -2
  7. package/out/shared/src/error.d.ts +4 -0
  8. package/out/shared/src/error.d.ts.map +1 -0
  9. package/out/shared/src/error.js +70 -0
  10. package/out/shared/src/error.js.map +1 -0
  11. package/out/solid.js +44 -18
  12. package/out/solid.js.map +2 -2
  13. package/out/zero/package.json +3 -2
  14. package/out/zero/src/zero-out.d.ts +3 -0
  15. package/out/zero/src/zero-out.d.ts.map +1 -0
  16. package/out/zero/src/zero-out.js +13 -0
  17. package/out/zero/src/zero-out.js.map +1 -0
  18. package/out/zero-cache/src/custom/fetch.js +3 -3
  19. package/out/zero-cache/src/custom/fetch.js.map +1 -1
  20. package/out/zero-cache/src/scripts/decommission.d.ts +50 -0
  21. package/out/zero-cache/src/scripts/decommission.d.ts.map +1 -0
  22. package/out/zero-cache/src/scripts/decommission.js +51 -0
  23. package/out/zero-cache/src/scripts/decommission.js.map +1 -0
  24. package/out/zero-cache/src/server/inspector-delegate.d.ts.map +1 -1
  25. package/out/zero-cache/src/server/inspector-delegate.js +2 -1
  26. package/out/zero-cache/src/server/inspector-delegate.js.map +1 -1
  27. package/out/zero-cache/src/services/mutagen/pusher.d.ts +17 -21
  28. package/out/zero-cache/src/services/mutagen/pusher.d.ts.map +1 -1
  29. package/out/zero-cache/src/services/mutagen/pusher.js +4 -4
  30. package/out/zero-cache/src/services/mutagen/pusher.js.map +1 -1
  31. package/out/zero-cache/src/services/view-syncer/drain-coordinator.d.ts +1 -0
  32. package/out/zero-cache/src/services/view-syncer/drain-coordinator.d.ts.map +1 -1
  33. package/out/zero-cache/src/services/view-syncer/drain-coordinator.js +5 -0
  34. package/out/zero-cache/src/services/view-syncer/drain-coordinator.js.map +1 -1
  35. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +7 -0
  36. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
  37. package/out/zero-cache/src/services/view-syncer/view-syncer.js +24 -1
  38. package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
  39. package/out/zero-cache/src/types/streams.d.ts +1 -1
  40. package/out/zero-cache/src/types/streams.d.ts.map +1 -1
  41. package/out/zero-cache/src/types/streams.js +19 -9
  42. package/out/zero-cache/src/types/streams.js.map +1 -1
  43. package/out/zero-cache/src/types/subscription.d.ts +16 -1
  44. package/out/zero-cache/src/types/subscription.d.ts.map +1 -1
  45. package/out/zero-cache/src/types/subscription.js +41 -5
  46. package/out/zero-cache/src/types/subscription.js.map +1 -1
  47. package/out/zero-cache/src/workers/syncer.d.ts.map +1 -1
  48. package/out/zero-cache/src/workers/syncer.js +1 -3
  49. package/out/zero-cache/src/workers/syncer.js.map +1 -1
  50. package/out/zero-client/src/client/connection-manager.d.ts +21 -5
  51. package/out/zero-client/src/client/connection-manager.d.ts.map +1 -1
  52. package/out/zero-client/src/client/connection-status-enum.d.ts +2 -0
  53. package/out/zero-client/src/client/connection-status-enum.d.ts.map +1 -1
  54. package/out/zero-client/src/client/connection.d.ts +11 -3
  55. package/out/zero-client/src/client/connection.d.ts.map +1 -1
  56. package/out/zero-client/src/client/error.d.ts +33 -161
  57. package/out/zero-client/src/client/error.d.ts.map +1 -1
  58. package/out/zero-client/src/client/mutation-tracker.d.ts.map +1 -1
  59. package/out/zero-client/src/client/options.d.ts +9 -16
  60. package/out/zero-client/src/client/options.d.ts.map +1 -1
  61. package/out/zero-client/src/client/query-manager.d.ts.map +1 -1
  62. package/out/zero-client/src/client/zero-rep.d.ts +2 -0
  63. package/out/zero-client/src/client/zero-rep.d.ts.map +1 -1
  64. package/out/zero-client/src/client/zero.d.ts.map +1 -1
  65. package/out/zero-client/src/mod.d.ts +4 -1
  66. package/out/zero-client/src/mod.d.ts.map +1 -1
  67. package/out/zero-client/src/types/query-result.d.ts +23 -0
  68. package/out/zero-client/src/types/query-result.d.ts.map +1 -0
  69. package/out/zero-protocol/src/application-error.d.ts +33 -0
  70. package/out/zero-protocol/src/application-error.d.ts.map +1 -0
  71. package/out/zero-protocol/src/application-error.js +37 -0
  72. package/out/zero-protocol/src/application-error.js.map +1 -0
  73. package/out/zero-protocol/src/custom-queries.d.ts +27 -95
  74. package/out/zero-protocol/src/custom-queries.d.ts.map +1 -1
  75. package/out/zero-protocol/src/custom-queries.js +9 -24
  76. package/out/zero-protocol/src/custom-queries.js.map +1 -1
  77. package/out/zero-protocol/src/down.d.ts +7 -9
  78. package/out/zero-protocol/src/down.d.ts.map +1 -1
  79. package/out/zero-protocol/src/error.d.ts +42 -0
  80. package/out/zero-protocol/src/error.d.ts.map +1 -1
  81. package/out/zero-protocol/src/error.js +7 -0
  82. package/out/zero-protocol/src/error.js.map +1 -1
  83. package/out/zero-protocol/src/mutations-patch.d.ts +3 -0
  84. package/out/zero-protocol/src/mutations-patch.d.ts.map +1 -1
  85. package/out/zero-protocol/src/poke.d.ts +2 -0
  86. package/out/zero-protocol/src/poke.d.ts.map +1 -1
  87. package/out/zero-protocol/src/protocol-version.d.ts +1 -1
  88. package/out/zero-protocol/src/protocol-version.d.ts.map +1 -1
  89. package/out/zero-protocol/src/protocol-version.js +2 -1
  90. package/out/zero-protocol/src/protocol-version.js.map +1 -1
  91. package/out/zero-protocol/src/push.d.ts +7 -0
  92. package/out/zero-protocol/src/push.d.ts.map +1 -1
  93. package/out/zero-protocol/src/push.js +1 -0
  94. package/out/zero-protocol/src/push.js.map +1 -1
  95. package/out/zero-react/src/mod.d.ts +5 -1
  96. package/out/zero-react/src/mod.d.ts.map +1 -1
  97. package/out/zero-react/src/use-query.d.ts +1 -21
  98. package/out/zero-react/src/use-query.d.ts.map +1 -1
  99. package/out/zero-react/src/zero-provider.d.ts.map +1 -1
  100. package/out/zero-server/src/mod.d.ts +5 -4
  101. package/out/zero-server/src/mod.d.ts.map +1 -1
  102. package/out/zero-server/src/mod.js +5 -4
  103. package/out/zero-server/src/mod.js.map +1 -1
  104. package/out/zero-server/src/process-mutations.d.ts.map +1 -1
  105. package/out/zero-server/src/process-mutations.js +181 -68
  106. package/out/zero-server/src/process-mutations.js.map +1 -1
  107. package/out/zero-server/src/queries/process-queries.d.ts +4 -3
  108. package/out/zero-server/src/queries/process-queries.d.ts.map +1 -1
  109. package/out/zero-server/src/queries/process-queries.js +85 -19
  110. package/out/zero-server/src/queries/process-queries.js.map +1 -1
  111. package/out/zero-solid/src/mod.d.ts +8 -0
  112. package/out/zero-solid/src/mod.d.ts.map +1 -1
  113. package/out/zero-solid/src/solid-view.d.ts +3 -23
  114. package/out/zero-solid/src/solid-view.d.ts.map +1 -1
  115. package/out/zero-solid/src/use-query.d.ts +1 -1
  116. package/out/zero-solid/src/use-query.d.ts.map +1 -1
  117. package/out/zero-solid/src/use-zero.d.ts +1 -0
  118. package/out/zero-solid/src/use-zero.d.ts.map +1 -1
  119. package/out/zero.js +4 -2
  120. package/out/zql/src/planner/planner-builder.d.ts +2 -1
  121. package/out/zql/src/planner/planner-builder.d.ts.map +1 -1
  122. package/out/zql/src/planner/planner-builder.js +6 -6
  123. package/out/zql/src/planner/planner-builder.js.map +1 -1
  124. package/out/zql/src/planner/planner-connection.d.ts +9 -3
  125. package/out/zql/src/planner/planner-connection.d.ts.map +1 -1
  126. package/out/zql/src/planner/planner-connection.js +38 -82
  127. package/out/zql/src/planner/planner-connection.js.map +1 -1
  128. package/out/zql/src/planner/planner-debug.d.ts +37 -7
  129. package/out/zql/src/planner/planner-debug.d.ts.map +1 -1
  130. package/out/zql/src/planner/planner-debug.js +131 -80
  131. package/out/zql/src/planner/planner-debug.js.map +1 -1
  132. package/out/zql/src/planner/planner-fan-in.d.ts +5 -3
  133. package/out/zql/src/planner/planner-fan-in.d.ts.map +1 -1
  134. package/out/zql/src/planner/planner-fan-in.js +41 -23
  135. package/out/zql/src/planner/planner-fan-in.js.map +1 -1
  136. package/out/zql/src/planner/planner-fan-out.d.ts +5 -3
  137. package/out/zql/src/planner/planner-fan-out.d.ts.map +1 -1
  138. package/out/zql/src/planner/planner-fan-out.js +22 -5
  139. package/out/zql/src/planner/planner-fan-out.js.map +1 -1
  140. package/out/zql/src/planner/planner-graph.d.ts +2 -2
  141. package/out/zql/src/planner/planner-graph.d.ts.map +1 -1
  142. package/out/zql/src/planner/planner-graph.js +17 -48
  143. package/out/zql/src/planner/planner-graph.js.map +1 -1
  144. package/out/zql/src/planner/planner-join.d.ts +61 -6
  145. package/out/zql/src/planner/planner-join.d.ts.map +1 -1
  146. package/out/zql/src/planner/planner-join.js +148 -65
  147. package/out/zql/src/planner/planner-join.js.map +1 -1
  148. package/out/zql/src/planner/planner-node.d.ts +29 -2
  149. package/out/zql/src/planner/planner-node.d.ts.map +1 -1
  150. package/out/zql/src/planner/planner-source.d.ts +1 -1
  151. package/out/zql/src/planner/planner-source.d.ts.map +1 -1
  152. package/out/zql/src/planner/planner-source.js +2 -2
  153. package/out/zql/src/planner/planner-source.js.map +1 -1
  154. package/out/zql/src/planner/planner-terminus.d.ts +4 -3
  155. package/out/zql/src/planner/planner-terminus.d.ts.map +1 -1
  156. package/out/zql/src/planner/planner-terminus.js +4 -4
  157. package/out/zql/src/planner/planner-terminus.js.map +1 -1
  158. package/out/zql/src/query/error.d.ts +4 -0
  159. package/out/zql/src/query/error.d.ts.map +1 -0
  160. package/out/zql/src/query/error.js +9 -0
  161. package/out/zql/src/query/error.js.map +1 -0
  162. package/out/zql/src/query/named.d.ts.map +1 -1
  163. package/out/zql/src/query/named.js +9 -1
  164. package/out/zql/src/query/named.js.map +1 -1
  165. package/package.json +3 -2
  166. package/out/chunk-AIPM77UE.js.map +0 -7
package/out/solid.js CHANGED
@@ -1,9 +1,10 @@
1
- import "./chunk-55BOUNXO.js";
1
+ import "./chunk-YTVU4GOY.js";
2
2
  import {
3
3
  Zero,
4
4
  applyChange,
5
+ connection_status_enum_exports,
5
6
  idSymbol
6
- } from "./chunk-AIPM77UE.js";
7
+ } from "./chunk-QZSBDHTA.js";
7
8
  import "./chunk-ASRS2LFV.js";
8
9
  import {
9
10
  DEFAULT_TTL_MS
@@ -23,7 +24,7 @@ var SolidView = class {
23
24
  #input;
24
25
  #format;
25
26
  #onDestroy;
26
- #refetch;
27
+ #retry;
27
28
  #setState;
28
29
  // Optimization: if the store is currently empty we build up
29
30
  // the view on a plain old JS object stored at #builderRoot, and return
@@ -36,13 +37,13 @@ var SolidView = class {
36
37
  #builderRoot;
37
38
  #pendingChanges = [];
38
39
  #updateTTL;
39
- constructor(input, onTransactionCommit, format, onDestroy, queryComplete, updateTTL, setState, refetch) {
40
+ constructor(input, onTransactionCommit, format, onDestroy, queryComplete, updateTTL, setState, retry) {
40
41
  this.#input = input;
41
42
  onTransactionCommit(this.#onTransactionCommit);
42
43
  this.#format = format;
43
44
  this.#onDestroy = onDestroy;
44
45
  this.#updateTTL = updateTTL;
45
- this.#refetch = refetch;
46
+ this.#retry = retry;
46
47
  input.setOutput(this);
47
48
  const initialRoot = this.#createEmptyRoot();
48
49
  this.#applyChangesToRoot(
@@ -75,18 +76,15 @@ var SolidView = class {
75
76
  }
76
77
  }
77
78
  #makeError(error) {
79
+ const message = error.message ?? "An unknown error occurred";
78
80
  return {
79
81
  type: "error",
80
- refetch: this.#refetch,
81
- error: error.error === "app" || error.error === "zero" ? {
82
- type: "app",
83
- queryName: error.name,
84
- details: error.details
85
- } : {
86
- type: "http",
87
- queryName: error.name,
88
- status: error.status,
89
- details: error.details
82
+ retry: this.#retry,
83
+ refetch: this.#retry,
84
+ error: {
85
+ type: error.error,
86
+ message,
87
+ ...error.details ? { details: error.details } : {}
90
88
  }
91
89
  };
92
90
  }
@@ -197,7 +195,7 @@ function isEmptyRoot(entry) {
197
195
  const data = entry[""];
198
196
  return data === void 0 || Array.isArray(data) && data.length === 0;
199
197
  }
200
- function createSolidViewFactory(setState, refetch) {
198
+ function createSolidViewFactory(setState, retry) {
201
199
  function solidViewFactory(_query, input, format, onDestroy, onTransactionCommit, queryComplete, updateTTL) {
202
200
  return new SolidView(
203
201
  input,
@@ -207,7 +205,7 @@ function createSolidViewFactory(setState, refetch) {
207
205
  queryComplete,
208
206
  updateTTL,
209
207
  setState,
210
- refetch || (() => {
208
+ retry || (() => {
211
209
  })
212
210
  );
213
211
  }
@@ -219,14 +217,17 @@ function createSolidViewFactory(setState, refetch) {
219
217
  import {
220
218
  batch,
221
219
  createContext,
220
+ createEffect,
222
221
  createMemo,
223
222
  onCleanup,
224
223
  splitProps,
224
+ untrack,
225
225
  useContext
226
226
  } from "solid-js";
227
227
  var ZeroContext = createContext(
228
228
  void 0
229
229
  );
230
+ var NO_AUTH_SET = Symbol("NO_AUTH_SET");
230
231
  function createZero(options) {
231
232
  const opts = {
232
233
  ...options,
@@ -249,14 +250,38 @@ function ZeroProvider(props) {
249
250
  if ("zero" in props) {
250
251
  return props.zero;
251
252
  }
252
- const [, options] = splitProps(props, ["children"]);
253
+ const [, options] = splitProps(props, ["children", "auth"]);
254
+ const authValue = untrack(() => props.auth);
253
255
  const createdZero = new Zero({
254
256
  ...options,
257
+ ...authValue !== void 0 ? { auth: authValue } : {},
255
258
  batchViewUpdates: batch
256
259
  });
260
+ options.init?.(createdZero);
257
261
  onCleanup(() => createdZero.close());
258
262
  return createdZero;
259
263
  });
264
+ const auth = createMemo(
265
+ () => "auth" in props ? props.auth : NO_AUTH_SET
266
+ );
267
+ let prevAuth = NO_AUTH_SET;
268
+ createEffect(() => {
269
+ const currentZero = zero();
270
+ if (!currentZero) {
271
+ return;
272
+ }
273
+ const currentAuth = auth();
274
+ if (prevAuth === NO_AUTH_SET) {
275
+ prevAuth = currentAuth;
276
+ return;
277
+ }
278
+ if (currentAuth !== prevAuth) {
279
+ prevAuth = currentAuth;
280
+ void currentZero.connection.connect({
281
+ auth: currentAuth === NO_AUTH_SET ? void 0 : currentAuth
282
+ });
283
+ }
284
+ });
260
285
  return ZeroContext.Provider({
261
286
  value: zero,
262
287
  get children() {
@@ -347,6 +372,7 @@ function useZeroOnline() {
347
372
  return online;
348
373
  }
349
374
  export {
375
+ connection_status_enum_exports as ConnectionStatus,
350
376
  ZeroProvider,
351
377
  createQuery,
352
378
  createUseZero,
package/out/solid.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../zero-solid/src/use-query.ts", "../../zero-solid/src/solid-view.ts", "../../zero-solid/src/use-zero.ts", "../../zero-solid/src/use-zero-connection-state.ts", "../../zero-solid/src/use-zero-online.ts"],
4
- "sourcesContent": ["import {createComputed, createSignal, onCleanup, type Accessor} from 'solid-js';\nimport {createStore} from 'solid-js/store';\nimport type {ClientID} from '../../replicache/src/sync/ids.ts';\nimport type {Schema} from '../../zero-schema/src/builder/schema-builder.ts';\nimport type {HumanReadable, Query} from '../../zql/src/query/query.ts';\nimport {DEFAULT_TTL_MS, type TTL} from '../../zql/src/query/ttl.ts';\nimport {\n createSolidViewFactory,\n UNKNOWN,\n type QueryResultDetails,\n type SolidView,\n type State,\n} from './solid-view.ts';\nimport {useZero} from './use-zero.ts';\n\nexport type QueryResult<TReturn> = readonly [\n Accessor<HumanReadable<TReturn>>,\n Accessor<QueryResultDetails>,\n];\n\n// Deprecated in 0.22\n/**\n * @deprecated Use {@linkcode UseQueryOptions} instead.\n */\nexport type CreateQueryOptions = {\n ttl?: TTL | undefined;\n};\n\nexport type UseQueryOptions = {\n ttl?: TTL | undefined;\n};\n\n// Deprecated in 0.22\n/**\n * @deprecated Use {@linkcode useQuery} instead.\n */\nexport function createQuery<\n TSchema extends Schema,\n TTable extends keyof TSchema['tables'] & string,\n TReturn,\n>(\n querySignal: Accessor<Query<TSchema, TTable, TReturn>>,\n options?: CreateQueryOptions | Accessor<CreateQueryOptions>,\n): QueryResult<TReturn> {\n return useQuery(querySignal, options);\n}\n\nexport function useQuery<\n TSchema extends Schema,\n TTable extends keyof TSchema['tables'] & string,\n TReturn,\n>(\n querySignal: Accessor<Query<TSchema, TTable, TReturn>>,\n options?: UseQueryOptions | Accessor<UseQueryOptions>,\n): QueryResult<TReturn> {\n const [state, setState] = createStore<State>([\n {\n '': undefined,\n },\n UNKNOWN,\n ]);\n const initialRefetchKey = 0;\n const [refetchKey, setRefetchKey] = createSignal(initialRefetchKey);\n\n const refetch = () => {\n setRefetchKey(k => k + 1);\n };\n\n let view: SolidView | undefined = undefined;\n\n // Wrap in in createComputed to ensure a new view is created if the querySignal changes.\n createComputed<\n [\n SolidView | undefined,\n ClientID | undefined,\n Query<TSchema, TTable, TReturn> | undefined,\n string | undefined,\n TTL | undefined,\n number,\n ]\n >(\n ([\n prevView,\n prevClientID,\n prevQuery,\n prevQueryHash,\n prevTtl,\n prevRefetchKey,\n ]) => {\n const zero = useZero()();\n const currentRefetchKey = refetchKey(); // depend on refetchKey to force re-evaluation\n const {clientID} = zero;\n const query = querySignal();\n const queryHash = query.hash();\n const ttl = normalize(options)?.ttl ?? DEFAULT_TTL_MS;\n if (\n !prevView ||\n clientID !== prevClientID ||\n prevRefetchKey !== currentRefetchKey ||\n (query !== prevQuery &&\n (clientID === undefined || query.hash() !== prevQueryHash))\n ) {\n if (prevView) {\n prevView.destroy();\n }\n view = zero.materialize(\n query,\n createSolidViewFactory(setState, refetch),\n {ttl},\n );\n } else {\n view = prevView;\n if (ttl !== prevTtl) {\n view.updateTTL(ttl);\n }\n }\n\n return [view, clientID, query, queryHash, ttl, currentRefetchKey];\n },\n [undefined, undefined, undefined, undefined, undefined, initialRefetchKey],\n );\n\n onCleanup(() => {\n view?.destroy();\n });\n\n return [() => state[0][''] as HumanReadable<TReturn>, () => state[1]];\n}\n\nfunction normalize<T>(options?: T | Accessor<T | undefined>): T | undefined {\n return typeof options === 'function' ? (options as Accessor<T>)() : options;\n}\n", "import {produce, reconcile, type SetStoreFunction} from 'solid-js/store';\nimport {\n applyChange,\n type Change,\n type Entry,\n type Format,\n type Input,\n type Node,\n type Output,\n type Query,\n type Schema,\n type Stream,\n type TTL,\n type ViewChange,\n type ViewFactory,\n} from '../../zero-client/src/mod.js';\nimport {idSymbol} from '../../zql/src/ivm/view-apply-change.ts';\nimport type {ReadonlyJSONValue} from '../../shared/src/json.ts';\nimport type {ErroredQuery} from '../../zero-protocol/src/custom-queries.ts';\n\nexport type QueryResultDetails = Readonly<\n | {\n type: 'complete';\n }\n | {\n type: 'unknown';\n }\n | QueryErrorDetails\n>;\n\ntype QueryErrorDetails = {\n type: 'error';\n refetch: () => void;\n error:\n | {\n type: 'app';\n queryName: string;\n details: ReadonlyJSONValue;\n }\n | {\n type: 'http';\n queryName: string;\n status: number;\n details: ReadonlyJSONValue;\n };\n};\n\nexport type State = [Entry, QueryResultDetails];\n\nexport const COMPLETE: QueryResultDetails = Object.freeze({type: 'complete'});\nexport const UNKNOWN: QueryResultDetails = Object.freeze({type: 'unknown'});\n\nexport class SolidView implements Output {\n readonly #input: Input;\n readonly #format: Format;\n readonly #onDestroy: () => void;\n readonly #refetch: () => void;\n\n #setState: SetStoreFunction<State>;\n\n // Optimization: if the store is currently empty we build up\n // the view on a plain old JS object stored at #builderRoot, and return\n // that for the new state on transaction commit. This avoids building up\n // large views from scratch via solid produce. The proxy object used by\n // solid produce is slow and in this case we don't care about solid tracking\n // the fine grained changes (everything has changed, it's all new). For a\n // test case with a view with 3000 rows, each row having 2 children, this\n // optimization reduced #applyChanges time from 743ms to 133ms.\n #builderRoot: Entry | undefined;\n #pendingChanges: ViewChange[] = [];\n readonly #updateTTL: (ttl: TTL) => void;\n\n constructor(\n input: Input,\n onTransactionCommit: (cb: () => void) => void,\n format: Format,\n onDestroy: () => void,\n queryComplete: true | ErroredQuery | Promise<true>,\n updateTTL: (ttl: TTL) => void,\n setState: SetStoreFunction<State>,\n refetch: () => void,\n ) {\n this.#input = input;\n onTransactionCommit(this.#onTransactionCommit);\n this.#format = format;\n this.#onDestroy = onDestroy;\n this.#updateTTL = updateTTL;\n this.#refetch = refetch;\n\n input.setOutput(this);\n\n const initialRoot = this.#createEmptyRoot();\n this.#applyChangesToRoot(\n input.fetch({}),\n node => ({type: 'add', node}),\n initialRoot,\n );\n\n this.#setState = setState;\n this.#setState(\n reconcile(\n [\n initialRoot,\n queryComplete === true\n ? COMPLETE\n : 'error' in queryComplete\n ? this.#makeError(queryComplete)\n : UNKNOWN,\n ],\n {\n // solidjs's types want a string, but a symbol works\n key: idSymbol as unknown as string,\n },\n ),\n );\n\n if (isEmptyRoot(initialRoot)) {\n this.#builderRoot = this.#createEmptyRoot();\n }\n\n if (queryComplete !== true && !('error' in queryComplete)) {\n void queryComplete\n .then(() => {\n this.#setState(prev => [prev[0], COMPLETE]);\n })\n .catch((error: ErroredQuery) => {\n this.#setState(prev => [prev[0], this.#makeError(error)]);\n });\n }\n }\n\n #makeError(error: ErroredQuery): QueryErrorDetails {\n return {\n type: 'error',\n refetch: this.#refetch,\n error:\n error.error === 'app' || error.error === 'zero'\n ? {\n type: 'app',\n queryName: error.name,\n details: error.details,\n }\n : {\n type: 'http',\n queryName: error.name,\n status: error.status,\n details: error.details,\n },\n };\n }\n\n destroy(): void {\n this.#onDestroy();\n }\n\n #onTransactionCommit = () => {\n const builderRoot = this.#builderRoot;\n if (builderRoot) {\n if (!isEmptyRoot(builderRoot)) {\n this.#setState(\n 0,\n reconcile(builderRoot, {\n // solidjs's types want a string, but a symbol works\n key: idSymbol as unknown as string,\n }),\n );\n this.#setState(prev => [builderRoot, prev[1]]);\n this.#builderRoot = undefined;\n }\n } else {\n try {\n this.#applyChanges(this.#pendingChanges, c => c);\n } finally {\n this.#pendingChanges = [];\n }\n }\n };\n\n push(change: Change): void {\n // Delay updating the solid store state until the transaction commit\n // (because each update of the solid store is quite expensive). If\n // this.#builderRoot is defined apply the changes to it (we are building\n // from an empty root), otherwise queue the changes to be applied\n // using produce at the end of the transaction but read the relationships\n // now as they are only valid to read when the push is received.\n if (this.#builderRoot) {\n this.#applyChangeToRoot(change, this.#builderRoot);\n } else {\n this.#pendingChanges.push(materializeRelationships(change));\n }\n }\n\n #applyChanges<T>(changes: Iterable<T>, mapper: (v: T) => ViewChange): void {\n this.#setState(\n produce((draftState: State) => {\n this.#applyChangesToRoot<T>(changes, mapper, draftState[0]);\n if (isEmptyRoot(draftState[0])) {\n this.#builderRoot = this.#createEmptyRoot();\n }\n }),\n );\n }\n\n #applyChangesToRoot<T>(\n changes: Iterable<T>,\n mapper: (v: T) => ViewChange,\n root: Entry,\n ) {\n for (const change of changes) {\n this.#applyChangeToRoot(mapper(change), root);\n }\n }\n\n #applyChangeToRoot(change: ViewChange, root: Entry) {\n applyChange(\n root,\n change,\n this.#input.getSchema(),\n '',\n this.#format,\n true /* withIDs */,\n );\n }\n\n #createEmptyRoot(): Entry {\n return {\n '': this.#format.singular ? undefined : [],\n };\n }\n\n updateTTL(ttl: TTL): void {\n this.#updateTTL(ttl);\n }\n}\n\nfunction materializeRelationships(change: Change): ViewChange {\n switch (change.type) {\n case 'add':\n return {type: 'add', node: materializeNodeRelationships(change.node)};\n case 'remove':\n return {type: 'remove', node: materializeNodeRelationships(change.node)};\n case 'child':\n return {\n type: 'child',\n node: {row: change.node.row},\n child: {\n relationshipName: change.child.relationshipName,\n change: materializeRelationships(change.child.change),\n },\n };\n case 'edit':\n return {\n type: 'edit',\n node: {row: change.node.row},\n oldNode: {row: change.oldNode.row},\n };\n }\n}\n\nfunction materializeNodeRelationships(node: Node): Node {\n const relationships: Record<string, () => Stream<Node>> = {};\n for (const relationship in node.relationships) {\n const materialized: Node[] = [];\n for (const n of node.relationships[relationship]()) {\n materialized.push(materializeNodeRelationships(n));\n }\n relationships[relationship] = () => materialized;\n }\n return {\n row: node.row,\n relationships,\n };\n}\n\nfunction isEmptyRoot(entry: Entry) {\n const data = entry[''];\n return data === undefined || (Array.isArray(data) && data.length === 0);\n}\n\nexport function createSolidViewFactory(\n setState: SetStoreFunction<State>,\n refetch?: () => void,\n) {\n function solidViewFactory<\n TSchema extends Schema,\n TTable extends keyof TSchema['tables'] & string,\n TReturn,\n >(\n _query: Query<TSchema, TTable, TReturn>,\n input: Input,\n format: Format,\n onDestroy: () => void,\n onTransactionCommit: (cb: () => void) => void,\n queryComplete: true | ErroredQuery | Promise<true>,\n updateTTL: (ttl: TTL) => void,\n ) {\n return new SolidView(\n input,\n onTransactionCommit,\n format,\n onDestroy,\n queryComplete,\n updateTTL,\n setState,\n refetch || (() => {}),\n );\n }\n\n solidViewFactory satisfies ViewFactory<Schema, string, unknown, unknown>;\n\n return solidViewFactory;\n}\n", "import {\n batch,\n createContext,\n createMemo,\n onCleanup,\n splitProps,\n useContext,\n type Accessor,\n type JSX,\n} from 'solid-js';\nimport type {CustomMutatorDefs} from '../../zero-client/src/client/custom.ts';\nimport type {ZeroOptions} from '../../zero-client/src/client/options.ts';\nimport {Zero} from '../../zero-client/src/client/zero.ts';\nimport type {Schema} from '../../zero-schema/src/builder/schema-builder.ts';\n\n// oxlint-disable-next-line no-explicit-any\nconst ZeroContext = createContext<Accessor<Zero<any, any>> | undefined>(\n undefined,\n);\n\nexport function createZero<S extends Schema, MD extends CustomMutatorDefs>(\n options: ZeroOptions<S, MD>,\n): Zero<S, MD> {\n const opts = {\n ...options,\n batchViewUpdates: batch,\n };\n return new Zero(opts);\n}\n\nexport function useZero<\n S extends Schema,\n MD extends CustomMutatorDefs | undefined = undefined,\n>(): () => Zero<S, MD> {\n const zero = useContext(ZeroContext);\n\n if (zero === undefined) {\n throw new Error('useZero must be used within a ZeroProvider');\n }\n return zero;\n}\n\nexport function createUseZero<\n S extends Schema,\n MD extends CustomMutatorDefs | undefined = undefined,\n>() {\n return () => useZero<S, MD>();\n}\n\nexport function ZeroProvider<\n S extends Schema,\n MD extends CustomMutatorDefs | undefined = undefined,\n>(\n props: {children: JSX.Element} & (\n | {\n zero: Zero<S, MD>;\n }\n | ZeroOptions<S, MD>\n ),\n) {\n const zero = createMemo(() => {\n if ('zero' in props) {\n return props.zero;\n }\n const [, options] = splitProps(props, ['children']);\n const createdZero = new Zero({\n ...options,\n batchViewUpdates: batch,\n });\n onCleanup(() => createdZero.close());\n return createdZero;\n });\n\n return ZeroContext.Provider({\n value: zero,\n get children() {\n return props.children;\n },\n });\n}\n", "import {createSignal, onCleanup, type Accessor} from 'solid-js';\nimport {useZero} from './use-zero.ts';\nimport type {ConnectionState} from '../../zero-client/src/client/connection-manager.ts';\n\n/**\n * Tracks the connection status of the current Zero instance.\n *\n * @returns The connection status of the Zero instance.\n * @see {@link ConnectionState} for more details on the connection state.\n */\nexport function useZeroConnectionState(): Accessor<ConnectionState> {\n const zero = useZero()();\n\n const [connectionState, setConnectionState] = createSignal<ConnectionState>(\n zero.connection.state.current,\n );\n\n const unsubscribe = zero.connection.state.subscribe(setConnectionState);\n\n onCleanup(unsubscribe);\n\n return connectionState;\n}\n", "import {createSignal, onCleanup, type Accessor} from 'solid-js';\nimport {useZero} from './use-zero.ts';\n\n/**\n * Tracks the online status of the current Zero instance.\n *\n * @returns An accessor \u2014 call `online()` to get a reactive `boolean`.\n * @deprecated Use {@linkcode useZeroConnectionState} instead, which provides more detailed connection state.\n */\nexport function useZeroOnline(): Accessor<boolean> {\n const zero = useZero()();\n\n const [online, setOnline] = createSignal<boolean>(zero.online);\n\n const unsubscribe = zero.onOnline(setOnline);\n\n onCleanup(unsubscribe);\n\n return online;\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import {createComputed, createSignal, onCleanup, type Accessor} from 'solid-js';\nimport {createStore} from 'solid-js/store';\nimport type {ClientID} from '../../replicache/src/sync/ids.ts';\nimport type {Schema} from '../../zero-schema/src/builder/schema-builder.ts';\nimport type {HumanReadable, Query} from '../../zql/src/query/query.ts';\nimport {DEFAULT_TTL_MS, type TTL} from '../../zql/src/query/ttl.ts';\nimport {\n createSolidViewFactory,\n UNKNOWN,\n type SolidView,\n type State,\n} from './solid-view.ts';\nimport {useZero} from './use-zero.ts';\nimport type {QueryResultDetails} from '../../zero-client/src/types/query-result.ts';\n\nexport type QueryResult<TReturn> = readonly [\n Accessor<HumanReadable<TReturn>>,\n Accessor<QueryResultDetails>,\n];\n\n// Deprecated in 0.22\n/**\n * @deprecated Use {@linkcode UseQueryOptions} instead.\n */\nexport type CreateQueryOptions = {\n ttl?: TTL | undefined;\n};\n\nexport type UseQueryOptions = {\n ttl?: TTL | undefined;\n};\n\n// Deprecated in 0.22\n/**\n * @deprecated Use {@linkcode useQuery} instead.\n */\nexport function createQuery<\n TSchema extends Schema,\n TTable extends keyof TSchema['tables'] & string,\n TReturn,\n>(\n querySignal: Accessor<Query<TSchema, TTable, TReturn>>,\n options?: CreateQueryOptions | Accessor<CreateQueryOptions>,\n): QueryResult<TReturn> {\n return useQuery(querySignal, options);\n}\n\nexport function useQuery<\n TSchema extends Schema,\n TTable extends keyof TSchema['tables'] & string,\n TReturn,\n>(\n querySignal: Accessor<Query<TSchema, TTable, TReturn>>,\n options?: UseQueryOptions | Accessor<UseQueryOptions>,\n): QueryResult<TReturn> {\n const [state, setState] = createStore<State>([\n {\n '': undefined,\n },\n UNKNOWN,\n ]);\n const initialRefetchKey = 0;\n const [refetchKey, setRefetchKey] = createSignal(initialRefetchKey);\n\n const refetch = () => {\n setRefetchKey(k => k + 1);\n };\n\n let view: SolidView | undefined = undefined;\n\n // Wrap in in createComputed to ensure a new view is created if the querySignal changes.\n createComputed<\n [\n SolidView | undefined,\n ClientID | undefined,\n Query<TSchema, TTable, TReturn> | undefined,\n string | undefined,\n TTL | undefined,\n number,\n ]\n >(\n ([\n prevView,\n prevClientID,\n prevQuery,\n prevQueryHash,\n prevTtl,\n prevRefetchKey,\n ]) => {\n const zero = useZero()();\n const currentRefetchKey = refetchKey(); // depend on refetchKey to force re-evaluation\n const {clientID} = zero;\n const query = querySignal();\n const queryHash = query.hash();\n const ttl = normalize(options)?.ttl ?? DEFAULT_TTL_MS;\n if (\n !prevView ||\n clientID !== prevClientID ||\n prevRefetchKey !== currentRefetchKey ||\n (query !== prevQuery &&\n (clientID === undefined || query.hash() !== prevQueryHash))\n ) {\n if (prevView) {\n prevView.destroy();\n }\n view = zero.materialize(\n query,\n createSolidViewFactory(setState, refetch),\n {ttl},\n );\n } else {\n view = prevView;\n if (ttl !== prevTtl) {\n view.updateTTL(ttl);\n }\n }\n\n return [view, clientID, query, queryHash, ttl, currentRefetchKey];\n },\n [undefined, undefined, undefined, undefined, undefined, initialRefetchKey],\n );\n\n onCleanup(() => {\n view?.destroy();\n });\n\n return [() => state[0][''] as HumanReadable<TReturn>, () => state[1]];\n}\n\nfunction normalize<T>(options?: T | Accessor<T | undefined>): T | undefined {\n return typeof options === 'function' ? (options as Accessor<T>)() : options;\n}\n", "import {produce, reconcile, type SetStoreFunction} from 'solid-js/store';\nimport {\n applyChange,\n type Change,\n type Entry,\n type Format,\n type Input,\n type Node,\n type Output,\n type Query,\n type Schema,\n type Stream,\n type TTL,\n type ViewChange,\n type ViewFactory,\n} from '../../zero-client/src/mod.js';\nimport type {\n QueryErrorDetails,\n QueryResultDetails,\n} from '../../zero-client/src/types/query-result.ts';\nimport type {ErroredQuery} from '../../zero-protocol/src/custom-queries.ts';\nimport {idSymbol} from '../../zql/src/ivm/view-apply-change.ts';\n\nexport type State = [Entry, QueryResultDetails];\n\nexport const COMPLETE: QueryResultDetails = Object.freeze({type: 'complete'});\nexport const UNKNOWN: QueryResultDetails = Object.freeze({type: 'unknown'});\n\nexport class SolidView implements Output {\n readonly #input: Input;\n readonly #format: Format;\n readonly #onDestroy: () => void;\n readonly #retry: () => void;\n\n #setState: SetStoreFunction<State>;\n\n // Optimization: if the store is currently empty we build up\n // the view on a plain old JS object stored at #builderRoot, and return\n // that for the new state on transaction commit. This avoids building up\n // large views from scratch via solid produce. The proxy object used by\n // solid produce is slow and in this case we don't care about solid tracking\n // the fine grained changes (everything has changed, it's all new). For a\n // test case with a view with 3000 rows, each row having 2 children, this\n // optimization reduced #applyChanges time from 743ms to 133ms.\n #builderRoot: Entry | undefined;\n #pendingChanges: ViewChange[] = [];\n readonly #updateTTL: (ttl: TTL) => void;\n\n constructor(\n input: Input,\n onTransactionCommit: (cb: () => void) => void,\n format: Format,\n onDestroy: () => void,\n queryComplete: true | ErroredQuery | Promise<true>,\n updateTTL: (ttl: TTL) => void,\n setState: SetStoreFunction<State>,\n retry: () => void,\n ) {\n this.#input = input;\n onTransactionCommit(this.#onTransactionCommit);\n this.#format = format;\n this.#onDestroy = onDestroy;\n this.#updateTTL = updateTTL;\n this.#retry = retry;\n\n input.setOutput(this);\n\n const initialRoot = this.#createEmptyRoot();\n this.#applyChangesToRoot(\n input.fetch({}),\n node => ({type: 'add', node}),\n initialRoot,\n );\n\n this.#setState = setState;\n this.#setState(\n reconcile(\n [\n initialRoot,\n queryComplete === true\n ? COMPLETE\n : 'error' in queryComplete\n ? this.#makeError(queryComplete)\n : UNKNOWN,\n ],\n {\n // solidjs's types want a string, but a symbol works\n key: idSymbol as unknown as string,\n },\n ),\n );\n\n if (isEmptyRoot(initialRoot)) {\n this.#builderRoot = this.#createEmptyRoot();\n }\n\n if (queryComplete !== true && !('error' in queryComplete)) {\n void queryComplete\n .then(() => {\n this.#setState(prev => [prev[0], COMPLETE]);\n })\n .catch((error: ErroredQuery) => {\n this.#setState(prev => [prev[0], this.#makeError(error)]);\n });\n }\n }\n\n #makeError(error: ErroredQuery): QueryErrorDetails {\n const message = error.message ?? 'An unknown error occurred';\n return {\n type: 'error',\n retry: this.#retry,\n refetch: this.#retry,\n error: {\n type: error.error,\n message,\n ...(error.details ? {details: error.details} : {}),\n },\n };\n }\n\n destroy(): void {\n this.#onDestroy();\n }\n\n #onTransactionCommit = () => {\n const builderRoot = this.#builderRoot;\n if (builderRoot) {\n if (!isEmptyRoot(builderRoot)) {\n this.#setState(\n 0,\n reconcile(builderRoot, {\n // solidjs's types want a string, but a symbol works\n key: idSymbol as unknown as string,\n }),\n );\n this.#setState(prev => [builderRoot, prev[1]]);\n this.#builderRoot = undefined;\n }\n } else {\n try {\n this.#applyChanges(this.#pendingChanges, c => c);\n } finally {\n this.#pendingChanges = [];\n }\n }\n };\n\n push(change: Change): void {\n // Delay updating the solid store state until the transaction commit\n // (because each update of the solid store is quite expensive). If\n // this.#builderRoot is defined apply the changes to it (we are building\n // from an empty root), otherwise queue the changes to be applied\n // using produce at the end of the transaction but read the relationships\n // now as they are only valid to read when the push is received.\n if (this.#builderRoot) {\n this.#applyChangeToRoot(change, this.#builderRoot);\n } else {\n this.#pendingChanges.push(materializeRelationships(change));\n }\n }\n\n #applyChanges<T>(changes: Iterable<T>, mapper: (v: T) => ViewChange): void {\n this.#setState(\n produce((draftState: State) => {\n this.#applyChangesToRoot<T>(changes, mapper, draftState[0]);\n if (isEmptyRoot(draftState[0])) {\n this.#builderRoot = this.#createEmptyRoot();\n }\n }),\n );\n }\n\n #applyChangesToRoot<T>(\n changes: Iterable<T>,\n mapper: (v: T) => ViewChange,\n root: Entry,\n ) {\n for (const change of changes) {\n this.#applyChangeToRoot(mapper(change), root);\n }\n }\n\n #applyChangeToRoot(change: ViewChange, root: Entry) {\n applyChange(\n root,\n change,\n this.#input.getSchema(),\n '',\n this.#format,\n true /* withIDs */,\n );\n }\n\n #createEmptyRoot(): Entry {\n return {\n '': this.#format.singular ? undefined : [],\n };\n }\n\n updateTTL(ttl: TTL): void {\n this.#updateTTL(ttl);\n }\n}\n\nfunction materializeRelationships(change: Change): ViewChange {\n switch (change.type) {\n case 'add':\n return {type: 'add', node: materializeNodeRelationships(change.node)};\n case 'remove':\n return {type: 'remove', node: materializeNodeRelationships(change.node)};\n case 'child':\n return {\n type: 'child',\n node: {row: change.node.row},\n child: {\n relationshipName: change.child.relationshipName,\n change: materializeRelationships(change.child.change),\n },\n };\n case 'edit':\n return {\n type: 'edit',\n node: {row: change.node.row},\n oldNode: {row: change.oldNode.row},\n };\n }\n}\n\nfunction materializeNodeRelationships(node: Node): Node {\n const relationships: Record<string, () => Stream<Node>> = {};\n for (const relationship in node.relationships) {\n const materialized: Node[] = [];\n for (const n of node.relationships[relationship]()) {\n materialized.push(materializeNodeRelationships(n));\n }\n relationships[relationship] = () => materialized;\n }\n return {\n row: node.row,\n relationships,\n };\n}\n\nfunction isEmptyRoot(entry: Entry) {\n const data = entry[''];\n return data === undefined || (Array.isArray(data) && data.length === 0);\n}\n\nexport function createSolidViewFactory(\n setState: SetStoreFunction<State>,\n retry?: () => void,\n) {\n function solidViewFactory<\n TSchema extends Schema,\n TTable extends keyof TSchema['tables'] & string,\n TReturn,\n >(\n _query: Query<TSchema, TTable, TReturn>,\n input: Input,\n format: Format,\n onDestroy: () => void,\n onTransactionCommit: (cb: () => void) => void,\n queryComplete: true | ErroredQuery | Promise<true>,\n updateTTL: (ttl: TTL) => void,\n ) {\n return new SolidView(\n input,\n onTransactionCommit,\n format,\n onDestroy,\n queryComplete,\n updateTTL,\n setState,\n retry || (() => {}),\n );\n }\n\n solidViewFactory satisfies ViewFactory<Schema, string, unknown, unknown>;\n\n return solidViewFactory;\n}\n", "import {\n batch,\n createContext,\n createEffect,\n createMemo,\n onCleanup,\n splitProps,\n untrack,\n useContext,\n type Accessor,\n type JSX,\n} from 'solid-js';\nimport type {CustomMutatorDefs} from '../../zero-client/src/client/custom.ts';\nimport type {ZeroOptions} from '../../zero-client/src/client/options.ts';\nimport {Zero} from '../../zero-client/src/client/zero.ts';\nimport type {Schema} from '../../zero-schema/src/builder/schema-builder.ts';\n\n// oxlint-disable-next-line no-explicit-any\nconst ZeroContext = createContext<Accessor<Zero<any, any>> | undefined>(\n undefined,\n);\n\nconst NO_AUTH_SET = Symbol('NO_AUTH_SET');\n\nexport function createZero<S extends Schema, MD extends CustomMutatorDefs>(\n options: ZeroOptions<S, MD>,\n): Zero<S, MD> {\n const opts = {\n ...options,\n batchViewUpdates: batch,\n };\n return new Zero(opts);\n}\n\nexport function useZero<\n S extends Schema,\n MD extends CustomMutatorDefs | undefined = undefined,\n>(): () => Zero<S, MD> {\n const zero = useContext(ZeroContext);\n\n if (zero === undefined) {\n throw new Error('useZero must be used within a ZeroProvider');\n }\n return zero;\n}\n\nexport function createUseZero<\n S extends Schema,\n MD extends CustomMutatorDefs | undefined = undefined,\n>() {\n return () => useZero<S, MD>();\n}\n\nexport function ZeroProvider<\n S extends Schema,\n MD extends CustomMutatorDefs | undefined = undefined,\n>(\n props: {children: JSX.Element; init?: (zero: Zero<S, MD>) => void} & (\n | {\n zero: Zero<S, MD>;\n }\n | ZeroOptions<S, MD>\n ),\n) {\n const zero = createMemo(() => {\n if ('zero' in props) {\n return props.zero;\n }\n\n const [, options] = splitProps(props, ['children', 'auth']);\n\n const authValue = untrack(() => props.auth);\n const createdZero = new Zero({\n ...options,\n ...(authValue !== undefined ? {auth: authValue} : {}),\n batchViewUpdates: batch,\n });\n options.init?.(createdZero);\n onCleanup(() => createdZero.close());\n return createdZero;\n });\n\n const auth = createMemo<typeof NO_AUTH_SET | ZeroOptions<S, MD>['auth']>(\n () => ('auth' in props ? props.auth : NO_AUTH_SET),\n );\n\n let prevAuth: typeof NO_AUTH_SET | ZeroOptions<S, MD>['auth'] = NO_AUTH_SET;\n\n createEffect(() => {\n const currentZero = zero();\n if (!currentZero) {\n return;\n }\n\n const currentAuth = auth();\n\n if (prevAuth === NO_AUTH_SET) {\n prevAuth = currentAuth;\n return;\n }\n\n if (currentAuth !== prevAuth) {\n prevAuth = currentAuth;\n void currentZero.connection.connect({\n auth: currentAuth === NO_AUTH_SET ? undefined : currentAuth,\n });\n }\n });\n\n return ZeroContext.Provider({\n value: zero,\n get children() {\n return props.children;\n },\n });\n}\n", "import {createSignal, onCleanup, type Accessor} from 'solid-js';\nimport {useZero} from './use-zero.ts';\nimport type {ConnectionState} from '../../zero-client/src/client/connection-manager.ts';\n\n/**\n * Tracks the connection status of the current Zero instance.\n *\n * @returns The connection status of the Zero instance.\n * @see {@link ConnectionState} for more details on the connection state.\n */\nexport function useZeroConnectionState(): Accessor<ConnectionState> {\n const zero = useZero()();\n\n const [connectionState, setConnectionState] = createSignal<ConnectionState>(\n zero.connection.state.current,\n );\n\n const unsubscribe = zero.connection.state.subscribe(setConnectionState);\n\n onCleanup(unsubscribe);\n\n return connectionState;\n}\n", "import {createSignal, onCleanup, type Accessor} from 'solid-js';\nimport {useZero} from './use-zero.ts';\n\n/**\n * Tracks the online status of the current Zero instance.\n *\n * @returns An accessor \u2014 call `online()` to get a reactive `boolean`.\n * @deprecated Use {@linkcode useZeroConnectionState} instead, which provides more detailed connection state.\n */\nexport function useZeroOnline(): Accessor<boolean> {\n const zero = useZero()();\n\n const [online, setOnline] = createSignal<boolean>(zero.online);\n\n const unsubscribe = zero.onOnline(setOnline);\n\n onCleanup(unsubscribe);\n\n return online;\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["onCleanup", "onCleanup", "createSignal", "onCleanup", "createSignal", "onCleanup", "createSignal", "onCleanup", "createSignal", "onCleanup"]
7
7
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rocicorp/zero",
3
- "version": "0.25.0-canary.1",
3
+ "version": "0.25.0",
4
4
  "description": "Zero is a web framework for serverless web development.",
5
5
  "author": "Rocicorp, Inc.",
6
6
  "repository": {
@@ -16,7 +16,7 @@
16
16
  "scripts": {
17
17
  "build": "rm -rf out && npm run build-server && npm run build-client",
18
18
  "build-client": "tsc -p tsconfig.client.json && tsx tool/build.js",
19
- "build-server": "tsc -p tsconfig.server.json && chmod +x out/zero/src/cli.js out/zero/src/build-schema.js out/zero/src/deploy-permissions.js out/zero/src/zero-cache-dev.js out/zero/src/ast-to-zql.js out/zero/src/analyze-query.js out/zero/src/transform-query.js",
19
+ "build-server": "tsc -p tsconfig.server.json && chmod +x out/zero/src/cli.js out/zero/src/build-schema.js out/zero/src/deploy-permissions.js out/zero/src/zero-cache-dev.js out/zero/src/ast-to-zql.js out/zero/src/analyze-query.js out/zero/src/transform-query.js out/zero/src/zero-out.js",
20
20
  "check-types": "tsc -p tsconfig.client.json && tsc -p tsconfig.server.json",
21
21
  "check-types:client:watch": "tsc -p tsconfig.client.json --watch",
22
22
  "check-types:server:watch": "tsc -p tsconfig.server.json --watch",
@@ -178,6 +178,7 @@
178
178
  "zero-cache": "./out/zero/src/cli.js",
179
179
  "zero-cache-dev": "./out/zero/src/zero-cache-dev.js",
180
180
  "zero-deploy-permissions": "./out/zero/src/deploy-permissions.js",
181
+ "zero-out": "./out/zero/src/zero-out.js",
181
182
  "ast-to-zql": "./out/zero/src/ast-to-zql.js",
182
183
  "analyze-query": "./out/zero/src/analyze-query.js",
183
184
  "transform-query": "./out/zero/src/transform-query.js"
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ import '../../shared/src/dotenv.ts';
3
+ //# sourceMappingURL=zero-out.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zero-out.d.ts","sourceRoot":"","sources":["../../../src/zero-out.ts"],"names":[],"mappings":";AAEA,OAAO,4BAA4B,CAAC"}
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env node
2
+ import "../../shared/src/dotenv.js";
3
+ import { createLogContext } from "../../shared/src/logging.js";
4
+ import { parseOptions } from "../../shared/src/options.js";
5
+ import { ZERO_ENV_VAR_PREFIX as envNamePrefix } from "../../zero-cache/src/config/zero-config.js";
6
+ import { decommissionOptions, decommissionZero, } from "../../zero-cache/src/scripts/decommission.js";
7
+ async function main() {
8
+ const config = parseOptions(decommissionOptions, { envNamePrefix });
9
+ const lc = createLogContext(config);
10
+ await decommissionZero(lc, config);
11
+ }
12
+ void main();
13
+ //# sourceMappingURL=zero-out.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zero-out.js","sourceRoot":"","sources":["../../../src/zero-out.ts"],"names":[],"mappings":";AAEA,OAAO,4BAA4B,CAAC;AAEpC,OAAO,EAAC,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAC,YAAY,EAAC,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAC,mBAAmB,IAAI,aAAa,EAAC,MAAM,4CAA4C,CAAC;AAChG,OAAO,EACL,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,8CAA8C,CAAC;AAEtD,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,YAAY,CAAC,mBAAmB,EAAE,EAAC,aAAa,EAAC,CAAC,CAAC;IAClE,MAAM,EAAE,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,gBAAgB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;AACrC,CAAC;AAED,KAAK,IAAI,EAAE,CAAC"}
@@ -49,13 +49,13 @@ export async function fetchFromAPIServer(validator, source, lc, url, allowedUrlP
49
49
  const headers = {
50
50
  'Content-Type': 'application/json',
51
51
  };
52
- if (headerOptions.apiKey !== undefined) {
52
+ if (headerOptions.apiKey) {
53
53
  headers['X-Api-Key'] = headerOptions.apiKey;
54
54
  }
55
- if (headerOptions.token !== undefined) {
55
+ if (headerOptions.token) {
56
56
  headers['Authorization'] = `Bearer ${headerOptions.token}`;
57
57
  }
58
- if (headerOptions.cookie !== undefined) {
58
+ if (headerOptions.cookie) {
59
59
  headers['Cookie'] = headerOptions.cookie;
60
60
  }
61
61
  const urlObj = new URL(url);
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../../../zero-cache/src/custom/fetch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../../../zero-cache/src/custom/fetch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import type { LogContext } from '@rocicorp/logger';
2
+ import type { Config } from '../../../shared/src/options.ts';
3
+ export declare const decommissionOptions: {
4
+ app: {
5
+ id: {
6
+ type: import("@badrap/valita").Type<string>;
7
+ desc: string[];
8
+ };
9
+ };
10
+ shard: {
11
+ num: {
12
+ type: import("@badrap/valita").Type<number>;
13
+ desc: string[];
14
+ hidden: boolean;
15
+ };
16
+ };
17
+ upstream: {
18
+ db: {
19
+ type: import("@badrap/valita").Type<string>;
20
+ desc: string[];
21
+ };
22
+ type: {
23
+ type: import("@badrap/valita").Type<"pg" | "custom">;
24
+ desc: string[];
25
+ hidden: boolean;
26
+ };
27
+ };
28
+ cvr: {
29
+ db: {
30
+ type: import("@badrap/valita").Optional<string>;
31
+ desc: string[];
32
+ };
33
+ };
34
+ change: {
35
+ db: {
36
+ type: import("@badrap/valita").Optional<string>;
37
+ desc: string[];
38
+ };
39
+ };
40
+ log: {
41
+ level: import("@badrap/valita").Type<"error" | "debug" | "info" | "warn">;
42
+ format: {
43
+ type: import("@badrap/valita").Type<"text" | "json">;
44
+ desc: string[];
45
+ };
46
+ };
47
+ };
48
+ export type DecommissionConfig = Config<typeof decommissionOptions>;
49
+ export declare function decommissionZero(lc: LogContext, cfg: DecommissionConfig): Promise<void>;
50
+ //# sourceMappingURL=decommission.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decommission.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/scripts/decommission.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,gCAAgC,CAAC;AAO3D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuB/B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEpE,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,UAAU,EACd,GAAG,EAAE,kBAAkB,iBA0BxB"}
@@ -0,0 +1,51 @@
1
+ import { logOptions } from "../../../otel/src/log-options.js";
2
+ import { appOptions, shardOptions, zeroOptions } from "../config/zero-config.js";
3
+ import { decommissionShard } from "../services/change-source/pg/decommission.js";
4
+ import { pgClient } from "../types/pg.js";
5
+ import { cdcSchema, cvrSchema, getShardID } from "../types/shards.js";
6
+ import { id } from "../types/sql.js";
7
+ export const decommissionOptions = {
8
+ app: {
9
+ id: appOptions.id,
10
+ },
11
+ shard: {
12
+ num: shardOptions.num,
13
+ },
14
+ upstream: {
15
+ db: zeroOptions.upstream.db,
16
+ type: zeroOptions.upstream.type,
17
+ },
18
+ cvr: {
19
+ db: zeroOptions.cvr.db,
20
+ },
21
+ change: {
22
+ db: zeroOptions.change.db,
23
+ },
24
+ log: { level: logOptions.level, format: logOptions.format },
25
+ };
26
+ export async function decommissionZero(lc, cfg) {
27
+ const { app, shard } = cfg;
28
+ const shardID = getShardID(cfg);
29
+ lc.info?.(`Decommissioning app "${app.id}"`);
30
+ if (cfg.upstream.type === 'pg') {
31
+ const upstream = pgClient(lc, cfg.upstream.db);
32
+ await decommissionShard(lc, upstream, app.id, shard.num);
33
+ lc.debug?.(`Cleaning up upstream metadata from ${hostPort(upstream)}`);
34
+ await upstream.unsafe(`DROP SCHEMA IF EXISTS ${id(app.id)} CASCADE`);
35
+ await upstream.end();
36
+ }
37
+ const cvr = pgClient(lc, cfg.cvr.db ?? cfg.upstream.db);
38
+ lc.debug?.(`Cleaning up cvc data from ${hostPort(cvr)}`);
39
+ await cvr.unsafe(`DROP SCHEMA IF EXISTS ${id(cvrSchema(shardID))} CASCADE`);
40
+ await cvr.end();
41
+ const cdc = pgClient(lc, cfg.change.db ?? cfg.upstream.db);
42
+ lc.debug?.(`Cleaning up cdc data from ${hostPort(cdc)}`);
43
+ await cdc.unsafe(`DROP SCHEMA IF EXISTS ${id(cdcSchema(shardID))} CASCADE`);
44
+ await cdc.end();
45
+ lc.info?.(`App "${app.id}" decommissioned`);
46
+ }
47
+ function hostPort(db) {
48
+ const { host, port } = db.options;
49
+ return `${host.join(',')}:${port?.at(0) ?? 5432}`;
50
+ }
51
+ //# sourceMappingURL=decommission.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decommission.js","sourceRoot":"","sources":["../../../../../zero-cache/src/scripts/decommission.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"inspector-delegate.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/server/inspector-delegate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,6BAA6B,CAAC;AAEnE,OAAO,EAAC,OAAO,EAAC,MAAM,gCAAgC,CAAC;AACvD,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,mCAAmC,CAAC;AAE3D,OAAO,KAAK,EAAC,aAAa,IAAI,iBAAiB,EAAC,MAAM,4CAA4C,CAAC;AAEnG,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,eAAe,EACrB,MAAM,4CAA4C,CAAC;AAEpD,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,sCAAsC,CAAC;AACjF,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AAGtD;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,8BAA8B,EAAE,OAAO,CAAC;IACxC,qBAAqB,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,KAAK,aAAa,GAAG,MAAM,CAAC;AAQ5B,qBAAa,iBAAkB,YAAW,eAAe;;gBAQ3C,sBAAsB,EAAE,sBAAsB,GAAG,SAAS;IAItE,SAAS,CAAC,CAAC,SAAS,MAAM,SAAS,EACjC,MAAM,EAAE,CAAC,EACT,KAAK,EAAE,MAAM,EACb,GAAG,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,GACpB,IAAI;IAeP,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI;IAKjE,cAAc;;;;IAId,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS;IAOhD,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAalC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI;IAWrE;;;OAGG;IACH,eAAe,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO;IAMtD,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI;IAIpD,kBAAkB,CAAC,aAAa,EAAE,aAAa;IAI/C;;;;OAIG;IACG,oBAAoB,CACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,SAAS,iBAAiB,EAAE,EAClC,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,OAAO,CAAC,GAAG,CAAC;CAyChB"}
1
+ {"version":3,"file":"inspector-delegate.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/server/inspector-delegate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,6BAA6B,CAAC;AAEnE,OAAO,EAAC,OAAO,EAAC,MAAM,gCAAgC,CAAC;AACvD,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,mCAAmC,CAAC;AAE3D,OAAO,KAAK,EAAC,aAAa,IAAI,iBAAiB,EAAC,MAAM,4CAA4C,CAAC;AAEnG,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,eAAe,EACrB,MAAM,4CAA4C,CAAC;AAEpD,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,sCAAsC,CAAC;AACjF,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AAGtD;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,8BAA8B,EAAE,OAAO,CAAC;IACxC,qBAAqB,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,KAAK,aAAa,GAAG,MAAM,CAAC;AAQ5B,qBAAa,iBAAkB,YAAW,eAAe;;gBAQ3C,sBAAsB,EAAE,sBAAsB,GAAG,SAAS;IAItE,SAAS,CAAC,CAAC,SAAS,MAAM,SAAS,EACjC,MAAM,EAAE,CAAC,EACT,KAAK,EAAE,MAAM,EACb,GAAG,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,GACpB,IAAI;IAeP,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI;IAKjE,cAAc;;;;IAId,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS;IAOhD,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAalC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI;IAWrE;;;OAGG;IACH,eAAe,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO;IAMtD,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI;IAIpD,kBAAkB,CAAC,aAAa,EAAE,aAAa;IAI/C;;;;OAIG;IACG,oBAAoB,CACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,SAAS,iBAAiB,EAAE,EAClC,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,OAAO,CAAC,GAAG,CAAC;CA2ChB"}
@@ -109,7 +109,8 @@ export class InspectorDelegate {
109
109
  throw new Error('No transformation result returned');
110
110
  }
111
111
  if ('error' in result) {
112
- throw new Error(`Application error transforming custom query ${name}: ${result.error} ${JSON.stringify(result.details)}`);
112
+ const message = result.message ?? 'Unknown application error from custom query';
113
+ throw new Error(`Error transforming custom query ${name} (${result.error}): ${message} ${JSON.stringify(result.details)}`);
113
114
  }
114
115
  return result.transformedAst;
115
116
  }
@@ -1 +1 @@
1
- {"version":3,"file":"inspector-delegate.js","sourceRoot":"","sources":["../../../../../zero-cache/src/server/inspector-delegate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inspector-delegate.js","sourceRoot":"","sources":["../../../../../zero-cache/src/server/inspector-delegate.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ import type { RefCountedService, Service } from '../service.ts';
10
10
  export interface Pusher extends RefCountedService {
11
11
  readonly pushURL: string | undefined;
12
12
  initConnection(clientID: string, wsID: string, userPushURL: string | undefined): Source<Downstream>;
13
- enqueuePush(clientID: string, push: PushBody, jwt: string | undefined, httpCookie: string | undefined): HandlerResult;
13
+ enqueuePush(clientID: string, push: PushBody, auth: string | undefined, httpCookie: string | undefined): HandlerResult;
14
14
  ackMutationResponses(upToID: MutationID): Promise<void>;
15
15
  }
16
16
  type Config = Pick<ZeroConfig, 'app' | 'shard'>;
@@ -41,21 +41,17 @@ export declare class PusherService implements Service, Pusher {
41
41
  timestamp?: number | undefined;
42
42
  wsid: string;
43
43
  }] | import("../../../../zero-protocol/src/error.ts").ErrorMessage | ["transformError", ({
44
+ message?: string | undefined;
45
+ details?: import("../../../../shared/src/json.ts").ReadonlyJSONValue | undefined;
44
46
  error: "app";
45
47
  id: string;
46
48
  name: string;
47
- details: import("../../../../shared/src/json.ts").ReadonlyJSONValue;
48
49
  } | {
49
- error: "http";
50
- id: string;
51
- name: string;
52
- status: number;
53
- details: import("../../../../shared/src/json.ts").ReadonlyJSONValue;
54
- } | {
55
- error: "zero";
50
+ details?: import("../../../../shared/src/json.ts").ReadonlyJSONValue | undefined;
51
+ error: "parse";
56
52
  id: string;
57
53
  name: string;
58
- details: import("../../../../shared/src/json.ts").ReadonlyJSONValue;
54
+ message: string;
59
55
  })[]] | ["pushResponse", {
60
56
  mutationIDs?: {
61
57
  id: number;
@@ -90,6 +86,7 @@ export declare class PusherService implements Service, Pusher {
90
86
  clientID: string;
91
87
  };
92
88
  result: {
89
+ message?: string | undefined;
93
90
  details?: import("../../../../shared/src/json.ts").ReadonlyJSONValue | undefined;
94
91
  error: "app";
95
92
  } | {
@@ -210,6 +207,7 @@ export declare class PusherService implements Service, Pusher {
210
207
  clientID: string;
211
208
  };
212
209
  result: {
210
+ message?: string | undefined;
213
211
  details?: import("../../../../shared/src/json.ts").ReadonlyJSONValue | undefined;
214
212
  error: "app";
215
213
  } | {
@@ -242,21 +240,17 @@ export declare class PusherService implements Service, Pusher {
242
240
  timestamp?: number | undefined;
243
241
  wsid: string;
244
242
  }] | import("../../../../zero-protocol/src/error.ts").ErrorMessage | ["transformError", ({
243
+ message?: string | undefined;
244
+ details?: import("../../../../shared/src/json.ts").ReadonlyJSONValue | undefined;
245
245
  error: "app";
246
246
  id: string;
247
247
  name: string;
248
- details: import("../../../../shared/src/json.ts").ReadonlyJSONValue;
249
- } | {
250
- error: "http";
251
- id: string;
252
- name: string;
253
- status: number;
254
- details: import("../../../../shared/src/json.ts").ReadonlyJSONValue;
255
248
  } | {
256
- error: "zero";
249
+ details?: import("../../../../shared/src/json.ts").ReadonlyJSONValue | undefined;
250
+ error: "parse";
257
251
  id: string;
258
252
  name: string;
259
- details: import("../../../../shared/src/json.ts").ReadonlyJSONValue;
253
+ message: string;
260
254
  })[]] | ["pushResponse", {
261
255
  mutationIDs?: {
262
256
  id: number;
@@ -291,6 +285,7 @@ export declare class PusherService implements Service, Pusher {
291
285
  clientID: string;
292
286
  };
293
287
  result: {
288
+ message?: string | undefined;
294
289
  details?: import("../../../../shared/src/json.ts").ReadonlyJSONValue | undefined;
295
290
  error: "app";
296
291
  } | {
@@ -411,6 +406,7 @@ export declare class PusherService implements Service, Pusher {
411
406
  clientID: string;
412
407
  };
413
408
  result: {
409
+ message?: string | undefined;
414
410
  details?: import("../../../../shared/src/json.ts").ReadonlyJSONValue | undefined;
415
411
  error: "app";
416
412
  } | {
@@ -437,7 +433,7 @@ export declare class PusherService implements Service, Pusher {
437
433
  requestID: string;
438
434
  lastMutationIDChanges: Record<string, number>;
439
435
  }]>;
440
- enqueuePush(clientID: string, push: PushBody, jwt: string | undefined, httpCookie: string | undefined): Exclude<HandlerResult, StreamResult>;
436
+ enqueuePush(clientID: string, push: PushBody, auth: string | undefined, httpCookie: string | undefined): Exclude<HandlerResult, StreamResult>;
441
437
  ackMutationResponses(upToID: MutationID): Promise<void>;
442
438
  ref(): void;
443
439
  unref(): void;
@@ -447,7 +443,7 @@ export declare class PusherService implements Service, Pusher {
447
443
  }
448
444
  type PusherEntry = {
449
445
  push: PushBody;
450
- jwt: string | undefined;
446
+ auth: string | undefined;
451
447
  httpCookie: string | undefined;
452
448
  clientID: string;
453
449
  };