@rocicorp/zero 0.17.2025030701 → 0.17.2025031200

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 (195) hide show
  1. package/out/advanced.js +1 -1
  2. package/out/chunk-2Y24MEEQ.js +45 -0
  3. package/out/chunk-2Y24MEEQ.js.map +7 -0
  4. package/out/{chunk-6XQK3UTJ.js → chunk-6CQ6CUML.js} +4 -5
  5. package/out/chunk-6CQ6CUML.js.map +7 -0
  6. package/out/{chunk-YKI43S5O.js → chunk-VNV6U5BQ.js} +612 -249
  7. package/out/chunk-VNV6U5BQ.js.map +7 -0
  8. package/out/otel/src/log-options.d.ts +4 -0
  9. package/out/otel/src/log-options.d.ts.map +1 -1
  10. package/out/otel/src/log-options.js +6 -0
  11. package/out/otel/src/log-options.js.map +1 -1
  12. package/out/otel/src/maybe-time.js +1 -1
  13. package/out/react.js +3 -3
  14. package/out/react.js.map +2 -2
  15. package/out/shared/src/asserts.d.ts.map +1 -1
  16. package/out/shared/src/asserts.js +1 -2
  17. package/out/shared/src/asserts.js.map +1 -1
  18. package/out/shared/src/objects.d.ts +4 -0
  19. package/out/shared/src/objects.d.ts.map +1 -0
  20. package/out/shared/src/objects.js +25 -0
  21. package/out/shared/src/objects.js.map +1 -0
  22. package/out/solid.js +6 -4
  23. package/out/solid.js.map +2 -2
  24. package/out/z2s/src/compiler.d.ts.map +1 -1
  25. package/out/z2s/src/compiler.js +1 -1
  26. package/out/z2s/src/compiler.js.map +1 -1
  27. package/out/zero-cache/src/auth/load-permissions.d.ts.map +1 -1
  28. package/out/zero-cache/src/auth/load-permissions.js +0 -1
  29. package/out/zero-cache/src/auth/load-permissions.js.map +1 -1
  30. package/out/zero-cache/src/auth/write-authorizer.d.ts.map +1 -1
  31. package/out/zero-cache/src/auth/write-authorizer.js +1 -0
  32. package/out/zero-cache/src/auth/write-authorizer.js.map +1 -1
  33. package/out/zero-cache/src/config/zero-config.d.ts +4 -0
  34. package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
  35. package/out/zero-cache/src/db/lite-tables.d.ts +5 -1
  36. package/out/zero-cache/src/db/lite-tables.d.ts.map +1 -1
  37. package/out/zero-cache/src/db/lite-tables.js +8 -1
  38. package/out/zero-cache/src/db/lite-tables.js.map +1 -1
  39. package/out/zero-cache/src/db/specs.d.ts +5 -5
  40. package/out/zero-cache/src/scripts/deploy-permissions.js +2 -1
  41. package/out/zero-cache/src/scripts/deploy-permissions.js.map +1 -1
  42. package/out/zero-cache/src/server/multi/config.d.ts +4 -0
  43. package/out/zero-cache/src/server/multi/config.d.ts.map +1 -1
  44. package/out/zero-cache/src/server/syncer.d.ts.map +1 -1
  45. package/out/zero-cache/src/server/syncer.js +1 -1
  46. package/out/zero-cache/src/server/syncer.js.map +1 -1
  47. package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts +10 -10
  48. package/out/zero-cache/src/services/change-source/pg/schema/published.d.ts +4 -4
  49. package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts +1 -1
  50. package/out/zero-cache/src/services/change-source/protocol/current/data.d.ts +8 -8
  51. package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts +12 -12
  52. package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts +4 -4
  53. package/out/zero-cache/src/services/dispatcher/connect-params.d.ts +1 -1
  54. package/out/zero-cache/src/services/dispatcher/connect-params.d.ts.map +1 -1
  55. package/out/zero-cache/src/services/dispatcher/connect-params.js +1 -1
  56. package/out/zero-cache/src/services/dispatcher/connect-params.js.map +1 -1
  57. package/out/zero-cache/src/services/mutagen/mutagen.d.ts +3 -3
  58. package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +1 -1
  59. package/out/zero-cache/src/services/mutagen/mutagen.js +7 -3
  60. package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
  61. package/out/zero-cache/src/services/view-syncer/client-handler.d.ts +1 -1
  62. package/out/zero-cache/src/services/view-syncer/client-handler.d.ts.map +1 -1
  63. package/out/zero-cache/src/services/view-syncer/client-handler.js +4 -2
  64. package/out/zero-cache/src/services/view-syncer/client-handler.js.map +1 -1
  65. package/out/zero-cache/src/services/view-syncer/client-schema.d.ts +5 -0
  66. package/out/zero-cache/src/services/view-syncer/client-schema.d.ts.map +1 -0
  67. package/out/zero-cache/src/services/view-syncer/client-schema.js +74 -0
  68. package/out/zero-cache/src/services/view-syncer/client-schema.js.map +1 -0
  69. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts +6 -2
  70. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +1 -1
  71. package/out/zero-cache/src/services/view-syncer/cvr-store.js +38 -15
  72. package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -1
  73. package/out/zero-cache/src/services/view-syncer/cvr.d.ts +6 -2
  74. package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -1
  75. package/out/zero-cache/src/services/view-syncer/cvr.js +36 -15
  76. package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
  77. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +5 -4
  78. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -1
  79. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +22 -16
  80. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
  81. package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts +2 -0
  82. package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts.map +1 -1
  83. package/out/zero-cache/src/services/view-syncer/schema/cvr.js +2 -1
  84. package/out/zero-cache/src/services/view-syncer/schema/cvr.js.map +1 -1
  85. package/out/zero-cache/src/services/view-syncer/schema/init.d.ts.map +1 -1
  86. package/out/zero-cache/src/services/view-syncer/schema/init.js +6 -0
  87. package/out/zero-cache/src/services/view-syncer/schema/init.js.map +1 -1
  88. package/out/zero-cache/src/services/view-syncer/schema/types.d.ts +2 -2
  89. package/out/zero-cache/src/services/view-syncer/schema/types.d.ts.map +1 -1
  90. package/out/zero-cache/src/services/view-syncer/schema/types.js +4 -3
  91. package/out/zero-cache/src/services/view-syncer/schema/types.js.map +1 -1
  92. package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +1 -1
  93. package/out/zero-cache/src/services/view-syncer/snapshotter.js +4 -1
  94. package/out/zero-cache/src/services/view-syncer/snapshotter.js.map +1 -1
  95. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +2 -2
  96. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
  97. package/out/zero-cache/src/services/view-syncer/view-syncer.js +27 -15
  98. package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
  99. package/out/zero-client/src/client/context.d.ts +10 -4
  100. package/out/zero-client/src/client/context.d.ts.map +1 -1
  101. package/out/zero-client/src/client/options.d.ts +8 -0
  102. package/out/zero-client/src/client/options.d.ts.map +1 -1
  103. package/out/zero-client/src/client/query-manager.d.ts +2 -1
  104. package/out/zero-client/src/client/query-manager.d.ts.map +1 -1
  105. package/out/zero-client/src/client/zero.d.ts +3 -2
  106. package/out/zero-client/src/client/zero.d.ts.map +1 -1
  107. package/out/zero-client/src/mod.d.ts +2 -2
  108. package/out/zero-client/src/mod.d.ts.map +1 -1
  109. package/out/zero-protocol/src/client-schema.d.ts +27 -0
  110. package/out/zero-protocol/src/client-schema.d.ts.map +1 -0
  111. package/out/zero-protocol/src/client-schema.js +28 -0
  112. package/out/zero-protocol/src/client-schema.js.map +1 -0
  113. package/out/zero-protocol/src/connect.d.ts +14 -0
  114. package/out/zero-protocol/src/connect.d.ts.map +1 -1
  115. package/out/zero-protocol/src/connect.js +2 -0
  116. package/out/zero-protocol/src/connect.js.map +1 -1
  117. package/out/zero-protocol/src/protocol-version.d.ts +1 -1
  118. package/out/zero-protocol/src/protocol-version.d.ts.map +1 -1
  119. package/out/zero-protocol/src/protocol-version.js +2 -1
  120. package/out/zero-protocol/src/protocol-version.js.map +1 -1
  121. package/out/zero-protocol/src/push.d.ts +2 -2
  122. package/out/zero-protocol/src/push.d.ts.map +1 -1
  123. package/out/zero-protocol/src/push.js +4 -1
  124. package/out/zero-protocol/src/push.js.map +1 -1
  125. package/out/zero-protocol/src/up.d.ts +8 -1
  126. package/out/zero-protocol/src/up.d.ts.map +1 -1
  127. package/out/zero-react/src/use-query.d.ts +4 -3
  128. package/out/zero-react/src/use-query.d.ts.map +1 -1
  129. package/out/zero-schema/src/builder/schema-builder.d.ts +7 -13
  130. package/out/zero-schema/src/builder/schema-builder.d.ts.map +1 -1
  131. package/out/zero-schema/src/builder/schema-builder.js +22 -13
  132. package/out/zero-schema/src/builder/schema-builder.js.map +1 -1
  133. package/out/zero-schema/src/schema-config.d.ts +2 -4
  134. package/out/zero-schema/src/schema-config.d.ts.map +1 -1
  135. package/out/zero-schema/src/schema-config.js +1 -2
  136. package/out/zero-schema/src/schema-config.js.map +1 -1
  137. package/out/zero-schema/src/table-schema.d.ts +2 -2
  138. package/out/zero-schema/src/table-schema.d.ts.map +1 -1
  139. package/out/zero-solid/src/use-query.d.ts +2 -2
  140. package/out/zero-solid/src/use-query.d.ts.map +1 -1
  141. package/out/zero.js +6 -3
  142. package/out/zql/src/builder/builder.d.ts +3 -2
  143. package/out/zql/src/builder/builder.d.ts.map +1 -1
  144. package/out/zql/src/builder/builder.js +48 -27
  145. package/out/zql/src/builder/builder.js.map +1 -1
  146. package/out/zql/src/ivm/exists.d.ts.map +1 -1
  147. package/out/zql/src/ivm/exists.js +2 -6
  148. package/out/zql/src/ivm/exists.js.map +1 -1
  149. package/out/zql/src/ivm/fan-in.d.ts +1 -0
  150. package/out/zql/src/ivm/fan-in.d.ts.map +1 -1
  151. package/out/zql/src/ivm/fan-in.js +100 -4
  152. package/out/zql/src/ivm/fan-in.js.map +1 -1
  153. package/out/zql/src/ivm/fan-out.d.ts +2 -1
  154. package/out/zql/src/ivm/fan-out.d.ts.map +1 -1
  155. package/out/zql/src/ivm/fan-out.js +6 -12
  156. package/out/zql/src/ivm/fan-out.js.map +1 -1
  157. package/out/zql/src/ivm/join.d.ts.map +1 -1
  158. package/out/zql/src/ivm/join.js +134 -55
  159. package/out/zql/src/ivm/join.js.map +1 -1
  160. package/out/zql/src/ivm/memory-source.d.ts +17 -3
  161. package/out/zql/src/ivm/memory-source.d.ts.map +1 -1
  162. package/out/zql/src/ivm/memory-source.js +108 -56
  163. package/out/zql/src/ivm/memory-source.js.map +1 -1
  164. package/out/zql/src/ivm/source.d.ts +4 -1
  165. package/out/zql/src/ivm/source.d.ts.map +1 -1
  166. package/out/zql/src/ivm/take.d.ts.map +1 -1
  167. package/out/zql/src/ivm/take.js +9 -31
  168. package/out/zql/src/ivm/take.js.map +1 -1
  169. package/out/zql/src/ivm/view-apply-change.js +2 -2
  170. package/out/zql/src/ivm/view-apply-change.js.map +1 -1
  171. package/out/zql/src/query/query-impl.d.ts +4 -2
  172. package/out/zql/src/query/query-impl.d.ts.map +1 -1
  173. package/out/zql/src/query/query-impl.js +6 -4
  174. package/out/zql/src/query/query-impl.js.map +1 -1
  175. package/out/zql/src/query/query-internal.d.ts +3 -2
  176. package/out/zql/src/query/query-internal.d.ts.map +1 -1
  177. package/out/zql/src/query/query.d.ts +2 -2
  178. package/out/zql/src/query/query.d.ts.map +1 -1
  179. package/out/zql/src/query/query.js +1 -1
  180. package/out/zql/src/query/query.js.map +1 -1
  181. package/out/zql/src/query/ttl.d.ts +18 -0
  182. package/out/zql/src/query/ttl.d.ts.map +1 -0
  183. package/out/zql/src/query/ttl.js +33 -0
  184. package/out/zql/src/query/ttl.js.map +1 -0
  185. package/out/zqlite/src/db.js +1 -1
  186. package/out/zqlite/src/db.js.map +1 -1
  187. package/out/zqlite/src/table-source.d.ts +1 -1
  188. package/out/zqlite/src/table-source.d.ts.map +1 -1
  189. package/out/zqlite/src/table-source.js +10 -53
  190. package/out/zqlite/src/table-source.js.map +1 -1
  191. package/package.json +1 -1
  192. package/out/chunk-6XQK3UTJ.js.map +0 -7
  193. package/out/chunk-HARIWJ2J.js +0 -8
  194. package/out/chunk-HARIWJ2J.js.map +0 -7
  195. package/out/chunk-YKI43S5O.js.map +0 -7
@@ -14,6 +14,10 @@ export declare const logOptions: {
14
14
  type: v.Type<number>;
15
15
  desc: string[];
16
16
  };
17
+ slowHydrateThreshold: {
18
+ type: v.Type<number>;
19
+ desc: string[];
20
+ };
17
21
  ivmSampling: {
18
22
  type: v.Type<number>;
19
23
  desc: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"log-options.d.ts","sourceRoot":"","sources":["../../../../otel/src/log-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAC;AAChD,OAAO,EAAC,KAAK,MAAM,EAAC,MAAM,6BAA6B,CAAC;AAExD,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;CAuCtB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,UAAU,CAAC,CAAC"}
1
+ {"version":3,"file":"log-options.d.ts","sourceRoot":"","sources":["../../../../otel/src/log-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAC;AAChD,OAAO,EAAC,KAAK,MAAM,EAAC,MAAM,6BAA6B,CAAC;AAExD,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;CA8CtB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,UAAU,CAAC,CAAC"}
@@ -24,6 +24,12 @@ export const logOptions = {
24
24
  `The number of ms a row must take to fetch from table-source before it is considered slow.`,
25
25
  ],
26
26
  },
27
+ slowHydrateThreshold: {
28
+ type: v.number().default(100),
29
+ desc: [
30
+ `The number of milliseconds a query hydration must take to print a slow warning.`,
31
+ ],
32
+ },
27
33
  ivmSampling: {
28
34
  type: v.number().default(5000),
29
35
  desc: [
@@ -1 +1 @@
1
- {"version":3,"file":"log-options.js","sourceRoot":"","sources":["../../../../otel/src/log-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAC;AAChD,OAAO,EAAa,MAAM,6BAA6B,CAAC;AAExD,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,KAAK,EAAE,CAAC;SACL,KAAK,CACJ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAClB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EACjB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EACjB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CACnB;SACA,OAAO,CAAC,MAAM,CAAC;IAElB,MAAM,EAAE;QACN,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACnE,IAAI,EAAE;YACJ,wDAAwD;YACxD,gEAAgE;SACjE;KACF;IAED,cAAc,EAAE;QACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,IAAI,EAAE;YACJ,wFAAwF;YACxF,4CAA4C;SAC7C;KACF;IAED,gBAAgB,EAAE;QAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3B,IAAI,EAAE;YACJ,2FAA2F;SAC5F;KACF;IAED,WAAW,EAAE;QACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QAC9B,IAAI,EAAE;YACJ,8FAA8F;SAC/F;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"log-options.js","sourceRoot":"","sources":["../../../../otel/src/log-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAC;AAChD,OAAO,EAAa,MAAM,6BAA6B,CAAC;AAExD,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,KAAK,EAAE,CAAC;SACL,KAAK,CACJ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAClB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EACjB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EACjB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CACnB;SACA,OAAO,CAAC,MAAM,CAAC;IAElB,MAAM,EAAE;QACN,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACnE,IAAI,EAAE;YACJ,wDAAwD;YACxD,gEAAgE;SACjE;KACF;IAED,cAAc,EAAE;QACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,IAAI,EAAE;YACJ,wFAAwF;YACxF,4CAA4C;SAC7C;KACF;IAED,gBAAgB,EAAE;QAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3B,IAAI,EAAE;YACJ,2FAA2F;SAC5F;KACF;IAED,oBAAoB,EAAE;QACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;QAC7B,IAAI,EAAE;YACJ,iFAAiF;SAClF;KACF;IAED,WAAW,EAAE;QACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QAC9B,IAAI,EAAE;YACJ,8FAA8F;SAC/F;KACF;CACF,CAAC"}
@@ -4,7 +4,7 @@ export function timeSampled(lc, numerator, denominator, cb, threshold = 0, prefi
4
4
  const result = cb();
5
5
  const duration = performance.now() - start;
6
6
  if (duration > threshold) {
7
- lc.info?.(`${prefix()} duration: ${duration}ms`);
7
+ lc.warn?.(`${prefix()} duration: ${duration}ms`);
8
8
  }
9
9
  return result;
10
10
  }
package/out/react.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import {
2
+ DEFAULT_TTL,
2
3
  hasOwn
3
- } from "./chunk-HARIWJ2J.js";
4
+ } from "./chunk-2Y24MEEQ.js";
4
5
  import "./chunk-424PT5DM.js";
5
6
 
6
7
  // ../zero-react/src/use-query.tsx
@@ -67,10 +68,9 @@ function ZeroProvider({ children, zero }) {
67
68
  }
68
69
 
69
70
  // ../zero-react/src/use-query.tsx
70
- var DEFAULT_TTL = 1e4;
71
71
  function useQuery(query, options) {
72
72
  let enabled = true;
73
- let ttl;
73
+ let ttl = DEFAULT_TTL;
74
74
  if (typeof options === "boolean") {
75
75
  enabled = options;
76
76
  } else if (options) {
package/out/react.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../zero-react/src/use-query.tsx", "../../shared/src/deep-clone.ts", "../../zero-react/src/use-zero.tsx"],
4
- "sourcesContent": ["import {useSyncExternalStore} from 'react';\nimport {deepClone} from '../../shared/src/deep-clone.ts';\nimport type {Immutable} from '../../shared/src/immutable.ts';\nimport type {ReadonlyJSONValue} from '../../shared/src/json.ts';\nimport type {Schema} from '../../zero-schema/src/builder/schema-builder.ts';\nimport type {AdvancedQuery} from '../../zql/src/query/query-internal.ts';\nimport type {HumanReadable, Query} from '../../zql/src/query/query.ts';\nimport type {ResultType, TypedView} from '../../zql/src/query/typed-view.ts';\nimport {useZero} from './use-zero.tsx';\n\nexport type QueryResultDetails = Readonly<{\n type: ResultType;\n}>;\n\nexport type QueryResult<TReturn> = readonly [\n HumanReadable<TReturn>,\n QueryResultDetails,\n];\n\nexport type UseQueryOptions = {\n enabled?: boolean | undefined;\n /**\n * Time to live (TTL) in seconds. Controls how long query results are cached\n * after the query is removed. During this time, Zero continues to sync the query.\n * Default is 10 seconds.\n */\n ttl?: number | undefined;\n};\n\nconst DEFAULT_TTL = 10_000;\n\nexport function useQuery<\n TSchema extends Schema,\n TTable extends keyof TSchema['tables'] & string,\n TReturn,\n>(\n query: Query<TSchema, TTable, TReturn>,\n options?: UseQueryOptions | boolean,\n): QueryResult<TReturn> {\n let enabled = true;\n let ttl: number | undefined;\n if (typeof options === 'boolean') {\n enabled = options;\n } else if (options) {\n ({enabled = true, ttl = DEFAULT_TTL} = options);\n }\n const advancedQuery = query as AdvancedQuery<TSchema, TTable, TReturn>;\n\n const z = useZero();\n const view = viewStore.getView(z.clientID, advancedQuery, enabled, ttl);\n // https://react.dev/reference/react/useSyncExternalStore\n return useSyncExternalStore(\n view.subscribeReactInternals,\n view.getSnapshot,\n view.getSnapshot,\n );\n}\n\nconst emptyArray: unknown[] = [];\nconst disabledSubscriber = () => () => {};\n\nconst resultTypeUnknown = {type: 'unknown'} as const;\nconst resultTypeComplete = {type: 'complete'} as const;\n\nconst emptySnapshotSingularUnknown = [undefined, resultTypeUnknown] as const;\nconst emptySnapshotSingularComplete = [undefined, resultTypeComplete] as const;\nconst emptySnapshotPluralUnknown = [emptyArray, resultTypeUnknown] as const;\nconst emptySnapshotPluralComplete = [emptyArray, resultTypeComplete] as const;\n\nfunction getDefaultSnapshot<TReturn>(singular: boolean): QueryResult<TReturn> {\n return (\n singular ? emptySnapshotSingularUnknown : emptySnapshotPluralUnknown\n ) as QueryResult<TReturn>;\n}\n\n/**\n * Returns a new snapshot or one of the empty predefined ones. Returning the\n * predefined ones is important to prevent unnecessary re-renders in React.\n */\nfunction getSnapshot<TReturn>(\n singular: boolean,\n data: HumanReadable<TReturn>,\n resultType: string,\n): QueryResult<TReturn> {\n if (singular && data === undefined) {\n return (resultType === 'complete'\n ? emptySnapshotSingularComplete\n : emptySnapshotSingularUnknown) as unknown as QueryResult<TReturn>;\n }\n\n if (!singular && (data as unknown[]).length === 0) {\n return (\n resultType === 'complete'\n ? emptySnapshotPluralComplete\n : emptySnapshotPluralUnknown\n ) as QueryResult<TReturn>;\n }\n\n return [\n data,\n resultType === 'complete' ? resultTypeComplete : resultTypeUnknown,\n ];\n}\n\ndeclare const TESTING: boolean;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype ViewWrapperAny = ViewWrapper<any, any, any>;\n\nconst allViews = new WeakMap<ViewStore, Map<string, ViewWrapperAny>>();\n\nexport function getAllViewsSizeForTesting(store: ViewStore): number {\n if (TESTING) {\n return allViews.get(store)?.size ?? 0;\n }\n return 0;\n}\n\n/**\n * A global store of all active views.\n *\n * React subscribes and unsubscribes to these views\n * via `useSyncExternalStore`.\n *\n * Managing views through `useEffect` or `useLayoutEffect` causes\n * inconsistencies because effects run after render.\n *\n * For example, if useQuery used use*Effect in the component below:\n * ```ts\n * function Foo({issueID}) {\n * const issue = useQuery(z.query.issue.where('id', issueID).one());\n * if (issue?.id !== undefined && issue.id !== issueID) {\n * console.log('MISMATCH!', issue.id, issueID);\n * }\n * }\n * ```\n *\n * `MISMATCH` will be printed whenever the `issueID` prop changes.\n *\n * This is because the component will render once with\n * the old state returned from `useQuery`. Then the effect inside\n * `useQuery` will run. The component will render again with the new\n * state. This inconsistent transition can cause unexpected results.\n *\n * Emulating `useEffect` via `useState` and `if` causes resource leaks.\n * That is:\n *\n * ```ts\n * function useQuery(q) {\n * const [oldHash, setOldHash] = useState();\n * if (hash(q) !== oldHash) {\n * // make new view\n * }\n *\n * useEffect(() => {\n * return () => view.destroy();\n * }, []);\n * }\n * ```\n *\n * I'm not sure why but in strict mode the cleanup function\n * fails to be called for the first instance of the view and only\n * cleans up later instances.\n *\n * Swapping `useState` to `useRef` has similar problems.\n */\nexport class ViewStore {\n #views = new Map<string, ViewWrapperAny>();\n\n constructor() {\n if (TESTING) {\n allViews.set(this, this.#views);\n }\n }\n\n getView<\n TSchema extends Schema,\n TTable extends keyof TSchema['tables'] & string,\n TReturn,\n >(\n clientID: string,\n query: AdvancedQuery<TSchema, TTable, TReturn>,\n enabled: boolean,\n ttl: number | undefined,\n ): {\n getSnapshot: () => QueryResult<TReturn>;\n subscribeReactInternals: (internals: () => void) => () => void;\n } {\n if (!enabled) {\n return {\n getSnapshot: () => getDefaultSnapshot(query.format.singular),\n subscribeReactInternals: disabledSubscriber,\n };\n }\n\n const hash = query.hash() + clientID;\n let existing = this.#views.get(hash);\n if (!existing) {\n existing = new ViewWrapper(\n query,\n ttl,\n view => {\n const lastView = this.#views.get(hash);\n // I don't think this can happen\n // but lets guard against it so we don't\n // leak resources.\n if (lastView && lastView !== view) {\n throw new Error('View already exists');\n }\n this.#views.set(hash, view);\n },\n () => {\n this.#views.delete(hash);\n },\n ) as ViewWrapper<TSchema, TTable, TReturn>;\n this.#views.set(hash, existing);\n }\n return existing as ViewWrapper<TSchema, TTable, TReturn>;\n }\n}\n\nconst viewStore = new ViewStore();\n\n/**\n * This wraps and ref counts a view.\n *\n * The only signal we have from React as to whether or not it is\n * done with a view is when it calls `unsubscribe`.\n *\n * In non-strict-mode we can clean up the view as soon\n * as the listener count goes to 0.\n *\n * In strict-mode, the listener count will go to 0 then a\n * new listener for the same view is immediately added back.\n *\n * This is why the `onMaterialized` and `onDematerialized` callbacks exist --\n * they allow a view which React is still referencing to be added\n * back into the store when React re-subscribes to it.\n *\n * This wrapper also exists to deal with the various\n * `useSyncExternalStore` caveats that cause excessive\n * re-renders and materializations.\n *\n * See: https://react.dev/reference/react/useSyncExternalStore#caveats\n * Especially:\n * 1. The store snapshot returned by getSnapshot must be immutable. If the underlying store has mutable data, return a new immutable snapshot if the data has changed. Otherwise, return a cached last snapshot.\n * 2. If a different subscribe function is passed during a re-render, React will re-subscribe to the store using the newly passed subscribe function. You can prevent this by declaring subscribe outside the component.\n */\nclass ViewWrapper<\n TSchema extends Schema,\n TTable extends keyof TSchema['tables'] & string,\n TReturn,\n> {\n #view: TypedView<HumanReadable<TReturn>> | undefined;\n readonly #onDematerialized;\n readonly #onMaterialized;\n readonly #query: AdvancedQuery<TSchema, TTable, TReturn>;\n #snapshot: QueryResult<TReturn>;\n #reactInternals: Set<() => void>;\n readonly #ttl: number | undefined;\n\n constructor(\n query: AdvancedQuery<TSchema, TTable, TReturn>,\n ttl: number | undefined,\n onMaterialized: (view: ViewWrapper<TSchema, TTable, TReturn>) => void,\n onDematerialized: () => void,\n ) {\n this.#query = query;\n this.#ttl = ttl;\n this.#onMaterialized = onMaterialized;\n this.#onDematerialized = onDematerialized;\n this.#snapshot = getDefaultSnapshot(query.format.singular);\n this.#reactInternals = new Set();\n this.#materializeIfNeeded();\n }\n\n #onData = (\n snap: Immutable<HumanReadable<TReturn>>,\n resultType: ResultType,\n ) => {\n const data =\n snap === undefined\n ? snap\n : (deepClone(snap as ReadonlyJSONValue) as HumanReadable<TReturn>);\n this.#snapshot = getSnapshot(this.#query.format.singular, data, resultType);\n for (const internals of this.#reactInternals) {\n internals();\n }\n };\n\n #materializeIfNeeded = () => {\n if (this.#view) {\n return;\n }\n\n this.#view = this.#query.materialize(this.#ttl);\n this.#view.addListener(this.#onData);\n\n this.#onMaterialized(this);\n };\n\n getSnapshot = () => this.#snapshot;\n\n subscribeReactInternals = (internals: () => void): (() => void) => {\n this.#reactInternals.add(internals);\n this.#materializeIfNeeded();\n return () => {\n this.#reactInternals.delete(internals);\n\n // only schedule a cleanup task if we have no listeners left\n if (this.#reactInternals.size === 0) {\n setTimeout(() => {\n // Someone re-registered a listener on this view before the timeout elapsed.\n // This happens often in strict-mode which forces a component\n // to mount, unmount, remount.\n if (this.#reactInternals.size > 0) {\n return;\n }\n // We already destroyed the view\n if (this.#view === undefined) {\n return;\n }\n this.#view?.destroy();\n this.#view = undefined;\n this.#onDematerialized();\n }, 10);\n }\n };\n };\n}\n", "import {hasOwn} from './has-own.ts';\nimport type {JSONValue, ReadonlyJSONValue} from './json.ts';\n\nexport function deepClone(value: ReadonlyJSONValue): JSONValue {\n const seen: Array<ReadonlyJSONValue> = [];\n return internalDeepClone(value, seen);\n}\n\nexport function internalDeepClone(\n value: ReadonlyJSONValue,\n seen: Array<ReadonlyJSONValue>,\n): JSONValue {\n switch (typeof value) {\n case 'boolean':\n case 'number':\n case 'string':\n case 'undefined':\n return value;\n case 'object': {\n if (value === null) {\n return null;\n }\n if (seen.includes(value)) {\n throw new Error('Cyclic object');\n }\n seen.push(value);\n if (Array.isArray(value)) {\n const rv = value.map(v => internalDeepClone(v, seen));\n seen.pop();\n return rv;\n }\n\n const obj: JSONValue = {};\n\n for (const k in value) {\n if (hasOwn(value, k)) {\n const v = (value as Record<string, ReadonlyJSONValue>)[k];\n if (v !== undefined) {\n obj[k] = internalDeepClone(v, seen);\n }\n }\n }\n seen.pop();\n return obj;\n }\n\n default:\n throw new Error(`Invalid type: ${typeof value}`);\n }\n}\n", "import {createContext, useContext} from 'react';\nimport type {Zero} from '../../zero-client/src/client/zero.ts';\nimport type {Schema} from '../../zero-schema/src/builder/schema-builder.ts';\nimport type {CustomMutatorDefs} from '../../zero-client/src/client/custom.ts';\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst ZeroContext = createContext<unknown | undefined>(undefined);\n\nexport function useZero<\n S extends Schema,\n MD extends CustomMutatorDefs<S> | undefined = undefined,\n>(): Zero<S, MD> {\n const zero = useContext(ZeroContext);\n if (zero === undefined) {\n throw new Error('useZero must be used within a ZeroProvider');\n }\n return zero as Zero<S, MD>;\n}\n\nexport function createUseZero<\n S extends Schema,\n MD extends CustomMutatorDefs<S> | undefined = undefined,\n>() {\n return () => useZero<S, MD>();\n}\n\nexport function ZeroProvider<\n S extends Schema,\n MD extends CustomMutatorDefs<S> | undefined = undefined,\n>({children, zero}: {children: React.ReactNode; zero: Zero<S, MD>}) {\n return <ZeroContext.Provider value={zero}>{children}</ZeroContext.Provider>;\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import {useSyncExternalStore} from 'react';\nimport {deepClone} from '../../shared/src/deep-clone.ts';\nimport type {Immutable} from '../../shared/src/immutable.ts';\nimport type {ReadonlyJSONValue} from '../../shared/src/json.ts';\nimport type {Schema} from '../../zero-schema/src/builder/schema-builder.ts';\nimport type {AdvancedQuery} from '../../zql/src/query/query-internal.ts';\nimport {type HumanReadable, type Query} from '../../zql/src/query/query.ts';\nimport {DEFAULT_TTL, type TTL} from '../../zql/src/query/ttl.ts';\nimport type {ResultType, TypedView} from '../../zql/src/query/typed-view.ts';\nimport {useZero} from './use-zero.tsx';\n\nexport type QueryResultDetails = Readonly<{\n type: ResultType;\n}>;\n\nexport type QueryResult<TReturn> = readonly [\n HumanReadable<TReturn>,\n QueryResultDetails,\n];\n\nexport type UseQueryOptions = {\n enabled?: boolean | undefined;\n /**\n * Time to live (TTL) in seconds. Controls how long query results are cached\n * after the query is removed. During this time, Zero continues to sync the query.\n * Default is 10 seconds.\n */\n ttl?: TTL | undefined;\n};\n\nexport function useQuery<\n TSchema extends Schema,\n TTable extends keyof TSchema['tables'] & string,\n TReturn,\n>(\n query: Query<TSchema, TTable, TReturn>,\n options?: UseQueryOptions | boolean,\n): QueryResult<TReturn> {\n let enabled = true;\n let ttl: TTL = DEFAULT_TTL;\n if (typeof options === 'boolean') {\n enabled = options;\n } else if (options) {\n ({enabled = true, ttl = DEFAULT_TTL} = options);\n }\n const advancedQuery = query as AdvancedQuery<TSchema, TTable, TReturn>;\n\n const z = useZero();\n const view = viewStore.getView(z.clientID, advancedQuery, enabled, ttl);\n // https://react.dev/reference/react/useSyncExternalStore\n return useSyncExternalStore(\n view.subscribeReactInternals,\n view.getSnapshot,\n view.getSnapshot,\n );\n}\n\nconst emptyArray: unknown[] = [];\nconst disabledSubscriber = () => () => {};\n\nconst resultTypeUnknown = {type: 'unknown'} as const;\nconst resultTypeComplete = {type: 'complete'} as const;\n\nconst emptySnapshotSingularUnknown = [undefined, resultTypeUnknown] as const;\nconst emptySnapshotSingularComplete = [undefined, resultTypeComplete] as const;\nconst emptySnapshotPluralUnknown = [emptyArray, resultTypeUnknown] as const;\nconst emptySnapshotPluralComplete = [emptyArray, resultTypeComplete] as const;\n\nfunction getDefaultSnapshot<TReturn>(singular: boolean): QueryResult<TReturn> {\n return (\n singular ? emptySnapshotSingularUnknown : emptySnapshotPluralUnknown\n ) as QueryResult<TReturn>;\n}\n\n/**\n * Returns a new snapshot or one of the empty predefined ones. Returning the\n * predefined ones is important to prevent unnecessary re-renders in React.\n */\nfunction getSnapshot<TReturn>(\n singular: boolean,\n data: HumanReadable<TReturn>,\n resultType: string,\n): QueryResult<TReturn> {\n if (singular && data === undefined) {\n return (resultType === 'complete'\n ? emptySnapshotSingularComplete\n : emptySnapshotSingularUnknown) as unknown as QueryResult<TReturn>;\n }\n\n if (!singular && (data as unknown[]).length === 0) {\n return (\n resultType === 'complete'\n ? emptySnapshotPluralComplete\n : emptySnapshotPluralUnknown\n ) as QueryResult<TReturn>;\n }\n\n return [\n data,\n resultType === 'complete' ? resultTypeComplete : resultTypeUnknown,\n ];\n}\n\ndeclare const TESTING: boolean;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype ViewWrapperAny = ViewWrapper<any, any, any>;\n\nconst allViews = new WeakMap<ViewStore, Map<string, ViewWrapperAny>>();\n\nexport function getAllViewsSizeForTesting(store: ViewStore): number {\n if (TESTING) {\n return allViews.get(store)?.size ?? 0;\n }\n return 0;\n}\n\n/**\n * A global store of all active views.\n *\n * React subscribes and unsubscribes to these views\n * via `useSyncExternalStore`.\n *\n * Managing views through `useEffect` or `useLayoutEffect` causes\n * inconsistencies because effects run after render.\n *\n * For example, if useQuery used use*Effect in the component below:\n * ```ts\n * function Foo({issueID}) {\n * const issue = useQuery(z.query.issue.where('id', issueID).one());\n * if (issue?.id !== undefined && issue.id !== issueID) {\n * console.log('MISMATCH!', issue.id, issueID);\n * }\n * }\n * ```\n *\n * `MISMATCH` will be printed whenever the `issueID` prop changes.\n *\n * This is because the component will render once with\n * the old state returned from `useQuery`. Then the effect inside\n * `useQuery` will run. The component will render again with the new\n * state. This inconsistent transition can cause unexpected results.\n *\n * Emulating `useEffect` via `useState` and `if` causes resource leaks.\n * That is:\n *\n * ```ts\n * function useQuery(q) {\n * const [oldHash, setOldHash] = useState();\n * if (hash(q) !== oldHash) {\n * // make new view\n * }\n *\n * useEffect(() => {\n * return () => view.destroy();\n * }, []);\n * }\n * ```\n *\n * I'm not sure why but in strict mode the cleanup function\n * fails to be called for the first instance of the view and only\n * cleans up later instances.\n *\n * Swapping `useState` to `useRef` has similar problems.\n */\nexport class ViewStore {\n #views = new Map<string, ViewWrapperAny>();\n\n constructor() {\n if (TESTING) {\n allViews.set(this, this.#views);\n }\n }\n\n getView<\n TSchema extends Schema,\n TTable extends keyof TSchema['tables'] & string,\n TReturn,\n >(\n clientID: string,\n query: AdvancedQuery<TSchema, TTable, TReturn>,\n enabled: boolean,\n ttl: TTL,\n ): {\n getSnapshot: () => QueryResult<TReturn>;\n subscribeReactInternals: (internals: () => void) => () => void;\n } {\n if (!enabled) {\n return {\n getSnapshot: () => getDefaultSnapshot(query.format.singular),\n subscribeReactInternals: disabledSubscriber,\n };\n }\n\n const hash = query.hash() + clientID;\n let existing = this.#views.get(hash);\n if (!existing) {\n existing = new ViewWrapper(\n query,\n ttl,\n view => {\n const lastView = this.#views.get(hash);\n // I don't think this can happen\n // but lets guard against it so we don't\n // leak resources.\n if (lastView && lastView !== view) {\n throw new Error('View already exists');\n }\n this.#views.set(hash, view);\n },\n () => {\n this.#views.delete(hash);\n },\n ) as ViewWrapper<TSchema, TTable, TReturn>;\n this.#views.set(hash, existing);\n }\n return existing as ViewWrapper<TSchema, TTable, TReturn>;\n }\n}\n\nconst viewStore = new ViewStore();\n\n/**\n * This wraps and ref counts a view.\n *\n * The only signal we have from React as to whether or not it is\n * done with a view is when it calls `unsubscribe`.\n *\n * In non-strict-mode we can clean up the view as soon\n * as the listener count goes to 0.\n *\n * In strict-mode, the listener count will go to 0 then a\n * new listener for the same view is immediately added back.\n *\n * This is why the `onMaterialized` and `onDematerialized` callbacks exist --\n * they allow a view which React is still referencing to be added\n * back into the store when React re-subscribes to it.\n *\n * This wrapper also exists to deal with the various\n * `useSyncExternalStore` caveats that cause excessive\n * re-renders and materializations.\n *\n * See: https://react.dev/reference/react/useSyncExternalStore#caveats\n * Especially:\n * 1. The store snapshot returned by getSnapshot must be immutable. If the underlying store has mutable data, return a new immutable snapshot if the data has changed. Otherwise, return a cached last snapshot.\n * 2. If a different subscribe function is passed during a re-render, React will re-subscribe to the store using the newly passed subscribe function. You can prevent this by declaring subscribe outside the component.\n */\nclass ViewWrapper<\n TSchema extends Schema,\n TTable extends keyof TSchema['tables'] & string,\n TReturn,\n> {\n #view: TypedView<HumanReadable<TReturn>> | undefined;\n readonly #onDematerialized;\n readonly #onMaterialized;\n readonly #query: AdvancedQuery<TSchema, TTable, TReturn>;\n #snapshot: QueryResult<TReturn>;\n #reactInternals: Set<() => void>;\n readonly #ttl: TTL;\n\n constructor(\n query: AdvancedQuery<TSchema, TTable, TReturn>,\n ttl: TTL,\n onMaterialized: (view: ViewWrapper<TSchema, TTable, TReturn>) => void,\n onDematerialized: () => void,\n ) {\n this.#query = query;\n this.#ttl = ttl;\n this.#onMaterialized = onMaterialized;\n this.#onDematerialized = onDematerialized;\n this.#snapshot = getDefaultSnapshot(query.format.singular);\n this.#reactInternals = new Set();\n this.#materializeIfNeeded();\n }\n\n #onData = (\n snap: Immutable<HumanReadable<TReturn>>,\n resultType: ResultType,\n ) => {\n const data =\n snap === undefined\n ? snap\n : (deepClone(snap as ReadonlyJSONValue) as HumanReadable<TReturn>);\n this.#snapshot = getSnapshot(this.#query.format.singular, data, resultType);\n for (const internals of this.#reactInternals) {\n internals();\n }\n };\n\n #materializeIfNeeded = () => {\n if (this.#view) {\n return;\n }\n\n this.#view = this.#query.materialize(this.#ttl);\n this.#view.addListener(this.#onData);\n\n this.#onMaterialized(this);\n };\n\n getSnapshot = () => this.#snapshot;\n\n subscribeReactInternals = (internals: () => void): (() => void) => {\n this.#reactInternals.add(internals);\n this.#materializeIfNeeded();\n return () => {\n this.#reactInternals.delete(internals);\n\n // only schedule a cleanup task if we have no listeners left\n if (this.#reactInternals.size === 0) {\n setTimeout(() => {\n // Someone re-registered a listener on this view before the timeout elapsed.\n // This happens often in strict-mode which forces a component\n // to mount, unmount, remount.\n if (this.#reactInternals.size > 0) {\n return;\n }\n // We already destroyed the view\n if (this.#view === undefined) {\n return;\n }\n this.#view?.destroy();\n this.#view = undefined;\n this.#onDematerialized();\n }, 10);\n }\n };\n };\n}\n", "import {hasOwn} from './has-own.ts';\nimport type {JSONValue, ReadonlyJSONValue} from './json.ts';\n\nexport function deepClone(value: ReadonlyJSONValue): JSONValue {\n const seen: Array<ReadonlyJSONValue> = [];\n return internalDeepClone(value, seen);\n}\n\nexport function internalDeepClone(\n value: ReadonlyJSONValue,\n seen: Array<ReadonlyJSONValue>,\n): JSONValue {\n switch (typeof value) {\n case 'boolean':\n case 'number':\n case 'string':\n case 'undefined':\n return value;\n case 'object': {\n if (value === null) {\n return null;\n }\n if (seen.includes(value)) {\n throw new Error('Cyclic object');\n }\n seen.push(value);\n if (Array.isArray(value)) {\n const rv = value.map(v => internalDeepClone(v, seen));\n seen.pop();\n return rv;\n }\n\n const obj: JSONValue = {};\n\n for (const k in value) {\n if (hasOwn(value, k)) {\n const v = (value as Record<string, ReadonlyJSONValue>)[k];\n if (v !== undefined) {\n obj[k] = internalDeepClone(v, seen);\n }\n }\n }\n seen.pop();\n return obj;\n }\n\n default:\n throw new Error(`Invalid type: ${typeof value}`);\n }\n}\n", "import {createContext, useContext} from 'react';\nimport type {Zero} from '../../zero-client/src/client/zero.ts';\nimport type {Schema} from '../../zero-schema/src/builder/schema-builder.ts';\nimport type {CustomMutatorDefs} from '../../zero-client/src/client/custom.ts';\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst ZeroContext = createContext<unknown | undefined>(undefined);\n\nexport function useZero<\n S extends Schema,\n MD extends CustomMutatorDefs<S> | undefined = undefined,\n>(): Zero<S, MD> {\n const zero = useContext(ZeroContext);\n if (zero === undefined) {\n throw new Error('useZero must be used within a ZeroProvider');\n }\n return zero as Zero<S, MD>;\n}\n\nexport function createUseZero<\n S extends Schema,\n MD extends CustomMutatorDefs<S> | undefined = undefined,\n>() {\n return () => useZero<S, MD>();\n}\n\nexport function ZeroProvider<\n S extends Schema,\n MD extends CustomMutatorDefs<S> | undefined = undefined,\n>({children, zero}: {children: React.ReactNode; zero: Zero<S, MD>}) {\n return <ZeroContext.Provider value={zero}>{children}</ZeroContext.Provider>;\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"asserts.d.ts","sourceRoot":"","sources":["../../../../shared/src/asserts.ts"],"names":[],"mappings":"AAAA,wBAAgB,MAAM,CACpB,CAAC,EAAE,OAAO,EACV,GAAG,GAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAsB,GAChD,OAAO,CAAC,CAAC,CAKX;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,IAAI,MAAM,CAE5D;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,IAAI,MAAM,CAE5D;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,IAAI,OAAO,CAE9D;AAQD,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAK7E;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,IAAI,OAAO,EAAE,CAI9D;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAQzD;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,GAAG,KAAK,CAE7D;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAI5D;AAED,wBAAgB,eAAe,CAAC,CAAC,EAC/B,CAAC,EAAE,CAAC,GAAG,SAAS,EAChB,GAAG,SAA6B,GAC/B,OAAO,CAAC,CAAC,IAAI,CAAC,CAIhB;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,CAAC,EAAE,CAAC,GAAG,SAAS,EAChB,GAAG,SAAiC,GACnC,OAAO,CAAC,CAAC,IAAI,CAAC,CAIhB;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,CAAC,EAAE,OAAO,EACV,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,GAC/B,OAAO,CAAC,CAAC,IAAI,CAAC,CAIhB;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,IAAI,UAAU,CAEpE;AAED,wBAAgB,WAAW,IAAI,KAAK,CAAC;AACrC,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;AAK7C,wBAAgB,cAAc,IAAI,KAAK,CAEtC"}
1
+ {"version":3,"file":"asserts.d.ts","sourceRoot":"","sources":["../../../../shared/src/asserts.ts"],"names":[],"mappings":"AAAA,wBAAgB,MAAM,CACpB,CAAC,EAAE,OAAO,EACV,GAAG,GAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAsB,GAChD,OAAO,CAAC,CAAC,CAIX;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,IAAI,MAAM,CAE5D;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,IAAI,MAAM,CAE5D;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,IAAI,OAAO,CAE9D;AAQD,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAK7E;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,IAAI,OAAO,EAAE,CAI9D;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAQzD;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,GAAG,KAAK,CAE7D;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAI5D;AAED,wBAAgB,eAAe,CAAC,CAAC,EAC/B,CAAC,EAAE,CAAC,GAAG,SAAS,EAChB,GAAG,SAA6B,GAC/B,OAAO,CAAC,CAAC,IAAI,CAAC,CAIhB;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,CAAC,EAAE,CAAC,GAAG,SAAS,EAChB,GAAG,SAAiC,GACnC,OAAO,CAAC,CAAC,IAAI,CAAC,CAIhB;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,CAAC,EAAE,OAAO,EACV,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,GAC/B,OAAO,CAAC,CAAC,IAAI,CAAC,CAIhB;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,IAAI,UAAU,CAEpE;AAED,wBAAgB,WAAW,IAAI,KAAK,CAAC;AACrC,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;AAK7C,wBAAgB,cAAc,IAAI,KAAK,CAEtC"}
@@ -1,7 +1,6 @@
1
1
  export function assert(b, msg = 'Assertion failed') {
2
2
  if (!b) {
3
- const msgStr = typeof msg === 'string' ? msg : msg();
4
- throw new Error(msgStr);
3
+ throw new Error(typeof msg === 'string' ? msg : msg());
5
4
  }
6
5
  }
7
6
  export function assertString(v) {
@@ -1 +1 @@
1
- {"version":3,"file":"asserts.js","sourceRoot":"","sources":["../../../../shared/src/asserts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"asserts.js","sourceRoot":"","sources":["../../../../shared/src/asserts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function mapValues<T, U>(input: Record<string, T>, mapper: (value: T) => U): Record<string, U>;
2
+ export declare function mapEntries<T, U>(input: Record<string, T>, mapper: (key: string, val: T) => [key: string, val: U]): Record<string, U>;
3
+ export declare function mapAllEntries<T, U>(input: Record<string, T>, mapper: (entries: [key: string, val: T][]) => [key: string, val: U][]): Record<string, U>;
4
+ //# sourceMappingURL=objects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objects.d.ts","sourceRoot":"","sources":["../../../../shared/src/objects.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAC5B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EACxB,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GACtB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAEnB;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,CAAC,EAC7B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EACxB,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GACrD,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAYnB;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EACxB,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GACpE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAQnB"}
@@ -0,0 +1,25 @@
1
+ export function mapValues(input, mapper) {
2
+ return mapEntries(input, (k, v) => [k, mapper(v)]);
3
+ }
4
+ export function mapEntries(input, mapper) {
5
+ // Direct assignment is faster than Object.fromEntries()
6
+ // https://github.com/rocicorp/mono/pull/3927#issuecomment-2706059475
7
+ const output = {};
8
+ // In chrome Object.entries is faster than for-in (13x) or Object.keys (15x)
9
+ // https://gist.github.com/arv/1b4e113724f6a14e2d4742bcc760d1fa
10
+ for (const entry of Object.entries(input)) {
11
+ const mapped = mapper(entry[0], entry[1]);
12
+ output[mapped[0]] = mapped[1];
13
+ }
14
+ return output;
15
+ }
16
+ export function mapAllEntries(input, mapper) {
17
+ // Direct assignment is faster than Object.fromEntries()
18
+ // https://github.com/rocicorp/mono/pull/3927#issuecomment-2706059475
19
+ const output = {};
20
+ for (const mapped of mapper(Object.entries(input))) {
21
+ output[mapped[0]] = mapped[1];
22
+ }
23
+ return output;
24
+ }
25
+ //# sourceMappingURL=objects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objects.js","sourceRoot":"","sources":["../../../../shared/src/objects.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CACvB,KAAwB,EACxB,MAAuB;IAEvB,OAAO,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,KAAwB,EACxB,MAAsD;IAEtD,wDAAwD;IACxD,qEAAqE;IACrE,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,4EAA4E;IAC5E,+DAA+D;IAC/D,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,KAAwB,EACxB,MAAqE;IAErE,wDAAwD;IACxD,qEAAqE;IACrE,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/out/solid.js CHANGED
@@ -1,11 +1,13 @@
1
1
  import {
2
2
  Zero
3
- } from "./chunk-YKI43S5O.js";
4
- import "./chunk-HARIWJ2J.js";
3
+ } from "./chunk-VNV6U5BQ.js";
4
+ import {
5
+ DEFAULT_TTL
6
+ } from "./chunk-2Y24MEEQ.js";
5
7
  import "./chunk-ULOTOBTC.js";
6
8
  import {
7
9
  applyChange
8
- } from "./chunk-6XQK3UTJ.js";
10
+ } from "./chunk-6CQ6CUML.js";
9
11
  import "./chunk-424PT5DM.js";
10
12
 
11
13
  // ../zero-solid/src/create-zero.ts
@@ -199,7 +201,7 @@ function solidViewFactory(_query, input, format, onDestroy, onTransactionCommit,
199
201
  // ../zero-solid/src/use-query.ts
200
202
  function useQuery(querySignal, options) {
201
203
  const view = createMemo(() => {
202
- const ttl = normalize(options)?.ttl;
204
+ const ttl = normalize(options)?.ttl ?? DEFAULT_TTL;
203
205
  const query = querySignal();
204
206
  const view2 = query.materialize(
205
207
  solidViewFactory,
package/out/solid.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../zero-solid/src/create-zero.ts", "../../zero-solid/src/use-query.ts", "../../zero-solid/src/solid-view.ts"],
4
- "sourcesContent": ["import {batch} from 'solid-js';\nimport type {ZeroAdvancedOptions} from '../../zero/src/advanced.ts';\nimport {Zero, type Schema, type ZeroOptions} from '../../zero/src/zero.ts';\n\nexport function createZero<S extends Schema>(options: ZeroOptions<S>): Zero<S> {\n const opts: ZeroAdvancedOptions<S> = {\n ...options,\n batchViewUpdates: batch,\n };\n return new Zero(opts);\n}\n", "import {createMemo, onCleanup, type Accessor} from 'solid-js';\nimport type {\n AdvancedQuery,\n HumanReadable,\n Query,\n} from '../../zero/src/advanced.ts';\nimport type {Schema} from '../../zero/src/zero.ts';\nimport {solidViewFactory, type QueryResultDetails} from './solid-view.ts';\n\nexport type QueryResult<TReturn> = readonly [\n Accessor<HumanReadable<TReturn>>,\n Accessor<QueryResultDetails>,\n];\n\nexport type UseQueryOptions = {\n ttl?: number | undefined;\n};\n\nexport function useQuery<\n TSchema extends Schema,\n TTable extends keyof TSchema['tables'] & string,\n TReturn,\n>(\n querySignal: () => Query<TSchema, TTable, TReturn>,\n options?: UseQueryOptions | Accessor<UseQueryOptions>,\n): QueryResult<TReturn> {\n // Wrap in in createMemo to ensure a new view is created if the querySignal changes.\n const view = createMemo(() => {\n const ttl = normalize(options)?.ttl;\n const query = querySignal() as AdvancedQuery<TSchema, TTable, TReturn>;\n\n const view = (query as AdvancedQuery<TSchema, TTable, TReturn>).materialize(\n solidViewFactory,\n ttl,\n );\n\n onCleanup(() => {\n view.destroy();\n });\n return view;\n });\n\n return [() => view().data, () => view().resultDetails];\n}\n\nfunction normalize<T>(\n options?: T | Accessor<T | undefined> | undefined,\n): T | undefined {\n return typeof options === 'function' ? (options as Accessor<T>)() : options;\n}\n", "import {\n createStore,\n produce,\n unwrap,\n type SetStoreFunction,\n type Store,\n} from 'solid-js/store';\nimport {\n applyChange,\n type Change,\n type Entry,\n type Format,\n type HumanReadable,\n type Input,\n type Node,\n type Output,\n type Query,\n type ResultType,\n type Stream,\n type ViewChange,\n type ViewFactory,\n} from '../../zero-advanced/src/mod.js';\nimport type {Schema} from '../../zero-schema/src/mod.js';\nimport type {RefCountMap} from '../../zql/src/ivm/view-apply-change.ts';\n\nexport type QueryResultDetails = {\n readonly type: ResultType;\n};\n\ntype State = [Entry, QueryResultDetails];\n\nconst complete = {type: 'complete'} as const;\nconst unknown = {type: 'unknown'} as const;\n\n/**\n * We need this class since Solid wraps the underlying object in a proxy\n * and we need to store the ref count on the underlying object.\n */\nclass SolidRefCountMap implements RefCountMap {\n readonly #map = new WeakMap<Entry, number>();\n\n get(entry: Entry): number | undefined {\n return this.#map.get(unwrap(entry));\n }\n set(entry: Entry, refCount: number): void {\n this.#map.set(unwrap(entry), refCount);\n }\n delete(entry: Entry): boolean {\n return this.#map.delete(unwrap(entry));\n }\n}\n\nexport class SolidView<V> implements Output {\n readonly #input: Input;\n readonly #format: Format;\n readonly #onDestroy: () => void;\n\n #state: Store<State>;\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 #refCountMap = new SolidRefCountMap();\n\n constructor(\n input: Input,\n onTransactionCommit: (cb: () => void) => void,\n format: Format,\n onDestroy: () => void,\n queryComplete: true | Promise<true>,\n ) {\n this.#input = input;\n onTransactionCommit(this.#onTransactionCommit);\n this.#format = format;\n this.#onDestroy = onDestroy;\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 [this.#state, this.#setState] = createStore<State>([\n initialRoot,\n queryComplete === true ? complete : unknown,\n ]);\n if (isEmptyRoot(initialRoot)) {\n this.#builderRoot = this.#createEmptyRoot();\n }\n\n if (queryComplete !== true) {\n void queryComplete.then(() => {\n this.#setState(oldState => [oldState[0], complete]);\n });\n }\n }\n\n get data(): V {\n return this.#state[0][''] as V;\n }\n\n get resultDetails(): QueryResultDetails {\n return this.#state[1];\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(oldState => [builderRoot, oldState[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 this.#refCountMap,\n );\n }\n\n #createEmptyRoot(): Entry {\n return {\n '': this.#format.singular ? undefined : [],\n };\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 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 | Promise<true>,\n) {\n return new SolidView<HumanReadable<TReturn>>(\n input,\n onTransactionCommit,\n format,\n onDestroy,\n queryComplete,\n );\n}\n\nsolidViewFactory satisfies ViewFactory<Schema, string, unknown, unknown>;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import {batch} from 'solid-js';\nimport type {ZeroAdvancedOptions} from '../../zero/src/advanced.ts';\nimport {Zero, type Schema, type ZeroOptions} from '../../zero/src/zero.ts';\n\nexport function createZero<S extends Schema>(options: ZeroOptions<S>): Zero<S> {\n const opts: ZeroAdvancedOptions<S> = {\n ...options,\n batchViewUpdates: batch,\n };\n return new Zero(opts);\n}\n", "import {createMemo, onCleanup, type Accessor} from 'solid-js';\nimport type {\n AdvancedQuery,\n HumanReadable,\n Query,\n} from '../../zero/src/advanced.ts';\nimport {DEFAULT_TTL, type Schema, type TTL} from '../../zero/src/zero.ts';\nimport {solidViewFactory, type QueryResultDetails} from './solid-view.ts';\n\nexport type QueryResult<TReturn> = readonly [\n Accessor<HumanReadable<TReturn>>,\n Accessor<QueryResultDetails>,\n];\n\nexport type UseQueryOptions = {\n ttl?: TTL | undefined;\n};\n\nexport function useQuery<\n TSchema extends Schema,\n TTable extends keyof TSchema['tables'] & string,\n TReturn,\n>(\n querySignal: () => Query<TSchema, TTable, TReturn>,\n options?: UseQueryOptions | Accessor<UseQueryOptions>,\n): QueryResult<TReturn> {\n // Wrap in in createMemo to ensure a new view is created if the querySignal changes.\n const view = createMemo(() => {\n const ttl = normalize(options)?.ttl ?? DEFAULT_TTL;\n const query = querySignal() as AdvancedQuery<TSchema, TTable, TReturn>;\n\n const view = (query as AdvancedQuery<TSchema, TTable, TReturn>).materialize(\n solidViewFactory,\n ttl,\n );\n\n onCleanup(() => {\n view.destroy();\n });\n return view;\n });\n\n return [() => view().data, () => view().resultDetails];\n}\n\nfunction normalize<T>(\n options?: T | Accessor<T | undefined> | undefined,\n): T | undefined {\n return typeof options === 'function' ? (options as Accessor<T>)() : options;\n}\n", "import {\n createStore,\n produce,\n unwrap,\n type SetStoreFunction,\n type Store,\n} from 'solid-js/store';\nimport {\n applyChange,\n type Change,\n type Entry,\n type Format,\n type HumanReadable,\n type Input,\n type Node,\n type Output,\n type Query,\n type ResultType,\n type Stream,\n type ViewChange,\n type ViewFactory,\n} from '../../zero-advanced/src/mod.js';\nimport type {Schema} from '../../zero-schema/src/mod.js';\nimport type {RefCountMap} from '../../zql/src/ivm/view-apply-change.ts';\n\nexport type QueryResultDetails = {\n readonly type: ResultType;\n};\n\ntype State = [Entry, QueryResultDetails];\n\nconst complete = {type: 'complete'} as const;\nconst unknown = {type: 'unknown'} as const;\n\n/**\n * We need this class since Solid wraps the underlying object in a proxy\n * and we need to store the ref count on the underlying object.\n */\nclass SolidRefCountMap implements RefCountMap {\n readonly #map = new WeakMap<Entry, number>();\n\n get(entry: Entry): number | undefined {\n return this.#map.get(unwrap(entry));\n }\n set(entry: Entry, refCount: number): void {\n this.#map.set(unwrap(entry), refCount);\n }\n delete(entry: Entry): boolean {\n return this.#map.delete(unwrap(entry));\n }\n}\n\nexport class SolidView<V> implements Output {\n readonly #input: Input;\n readonly #format: Format;\n readonly #onDestroy: () => void;\n\n #state: Store<State>;\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 #refCountMap = new SolidRefCountMap();\n\n constructor(\n input: Input,\n onTransactionCommit: (cb: () => void) => void,\n format: Format,\n onDestroy: () => void,\n queryComplete: true | Promise<true>,\n ) {\n this.#input = input;\n onTransactionCommit(this.#onTransactionCommit);\n this.#format = format;\n this.#onDestroy = onDestroy;\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 [this.#state, this.#setState] = createStore<State>([\n initialRoot,\n queryComplete === true ? complete : unknown,\n ]);\n if (isEmptyRoot(initialRoot)) {\n this.#builderRoot = this.#createEmptyRoot();\n }\n\n if (queryComplete !== true) {\n void queryComplete.then(() => {\n this.#setState(oldState => [oldState[0], complete]);\n });\n }\n }\n\n get data(): V {\n return this.#state[0][''] as V;\n }\n\n get resultDetails(): QueryResultDetails {\n return this.#state[1];\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(oldState => [builderRoot, oldState[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 this.#refCountMap,\n );\n }\n\n #createEmptyRoot(): Entry {\n return {\n '': this.#format.singular ? undefined : [],\n };\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 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 | Promise<true>,\n) {\n return new SolidView<HumanReadable<TReturn>>(\n input,\n onTransactionCommit,\n format,\n onDestroy,\n queryComplete,\n );\n}\n\nsolidViewFactory satisfies ViewFactory<Schema, string, unknown, unknown>;\n"],
5
+ "mappings": "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",
6
6
  "names": ["view"]
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../../../z2s/src/compiler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,2BAA2B,EAC3B,WAAW,EACX,QAAQ,EACR,aAAa,EACd,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,KAAK,GAAG,EACR,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,2BAA2B,CAAC;AAEtD,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AAE7C;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,YAE5D;AAED,wBAAgB,MAAM,CACpB,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,WAAW,EAAE,QAAQ,GAAG,SAAS,YAWlC;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAU/D;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAKzD;AAED,wBAAgB,OAAO,CACrB,aAAa,EAAE,SAAS,kBAAkB,EAAE,EAC5C,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,WAAW,EAAE,MAAM,GAClB,QAAQ,EAAE,CAQZ;AA+CD,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,kBAAkB,EAChC,MAAM,GAAE,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC,EAAO,+CAezD;AAED,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,kBAAkB,GAC/B,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC,CAiCnE;AAED,wBAAgB,KAAK,CACnB,SAAS,EAAE,SAAS,GAAG,SAAS,EAChC,WAAW,EAAE,MAAM,GAClB,QAAQ,CAqBV;AAED,wBAAgB,MAAM,CAAC,SAAS,EAAE,eAAe,GAAG,QAAQ,CAsB3D;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,eAAe,GAAG,QAAQ,CAIjE;AAED,wBAAgB,GAAG,CAAC,SAAS,EAAE,eAAe,GAAG,QAAQ,CAIxD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,QAAQ,CAW5D;AAED,wBAAgB,MAAM,CACpB,SAAS,EAAE,2BAA2B,EACtC,WAAW,EAAE,MAAM,GAClB,QAAQ,CAoBV;AAED,wBAAgB,SAAS,CACvB,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,SAAS,MAAM,EAAE,EAChC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,SAAS,MAAM,EAAE,YAWhC"}
1
+ {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../../../z2s/src/compiler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,2BAA2B,EAC3B,WAAW,EACX,QAAQ,EACR,aAAa,EACd,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,KAAK,GAAG,EACR,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,2BAA2B,CAAC;AAEtD,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AAE7C;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,YAE5D;AAED,wBAAgB,MAAM,CACpB,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,WAAW,EAAE,QAAQ,GAAG,SAAS,YAWlC;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAU/D;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAKzD;AAED,wBAAgB,OAAO,CACrB,aAAa,EAAE,SAAS,kBAAkB,EAAE,EAC5C,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,WAAW,EAAE,MAAM,GAClB,QAAQ,EAAE,CAQZ;AAiDD,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,kBAAkB,EAChC,MAAM,GAAE,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC,EAAO,+CAezD;AAED,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,kBAAkB,GAC/B,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC,CAiCnE;AAED,wBAAgB,KAAK,CACnB,SAAS,EAAE,SAAS,GAAG,SAAS,EAChC,WAAW,EAAE,MAAM,GAClB,QAAQ,CAqBV;AAED,wBAAgB,MAAM,CAAC,SAAS,EAAE,eAAe,GAAG,QAAQ,CAsB3D;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,eAAe,GAAG,QAAQ,CAIjE;AAED,wBAAgB,GAAG,CAAC,SAAS,EAAE,eAAe,GAAG,QAAQ,CAIxD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,QAAQ,CAW5D;AAED,wBAAgB,MAAM,CACpB,SAAS,EAAE,2BAA2B,EACtC,WAAW,EAAE,MAAM,GAClB,QAAQ,CAoBV;AAED,wBAAgB,SAAS,CACvB,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,SAAS,MAAM,EAAE,EAChC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,SAAS,MAAM,EAAE,YAWhC"}
@@ -44,7 +44,7 @@ function relationshipSubquery(relationship, format, parentTable) {
44
44
  ) as ${sql.ident(relationship.subquery.alias)}`;
45
45
  }
46
46
  return sql `(
47
- SELECT ${format?.singular ? sql `` : sql `array_agg`}(row_to_json(${sql.ident(`inner_${relationship.subquery.alias}`)})) FROM (${select(relationship.subquery, format, correlate(parentTable, relationship.correlation.parentField, relationship.subquery.table, relationship.correlation.childField))}) ${sql.ident(`inner_${relationship.subquery.alias}`)}
47
+ SELECT ${format?.singular ? sql `` : sql `COALESCE(array_agg`}(row_to_json(${sql.ident(`inner_${relationship.subquery.alias}`)})) ${format?.singular ? sql `` : sql `, ARRAY[]::json[])`} FROM (${select(relationship.subquery, format, correlate(parentTable, relationship.correlation.parentField, relationship.subquery.table, relationship.correlation.childField))}) ${sql.ident(`inner_${relationship.subquery.alias}`)}
48
48
  ) as ${sql.ident(relationship.subquery.alias)}`;
49
49
  }
50
50
  export function pullTablesForJunction(relationship, tables = []) {
@@ -1 +1 @@
1
- {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../../../z2s/src/compiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../../../z2s/src/compiler.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"load-permissions.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/auth/load-permissions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,oDAAoD,CAAC;AAC/E,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,kDAAkD,CAAC;AAE1D,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,2BAA2B,CAAC;AAExD,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC;AAGzD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACtC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,CAAC;AAEF,wBAAgB,eAAe,CAC7B,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,MAAM,GACZ,iBAAiB,CA6BnB;AAED,wBAAgB,0BAA0B,CACxC,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,iBAAiB,GAAG,IAAI,GAChC;IAAC,WAAW,EAAE,iBAAiB,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAC,CAQpD;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,GAAG,MAAM,CAgBnE"}
1
+ {"version":3,"file":"load-permissions.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/auth/load-permissions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,oDAAoD,CAAC;AAC/E,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,kDAAkD,CAAC;AAE1D,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,2BAA2B,CAAC;AAExD,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC;AAGzD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACtC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,CAAC;AAEF,wBAAgB,eAAe,CAC7B,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,MAAM,GACZ,iBAAiB,CA6BnB;AAED,wBAAgB,0BAA0B,CACxC,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,iBAAiB,GAAG,IAAI,GAChC;IAAC,WAAW,EAAE,iBAAiB,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAC,CAQpD;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,GAAG,MAAM,CAenE"}
@@ -42,7 +42,6 @@ export function getSchema(lc, replica) {
42
42
  return [name, { name, columns, primaryKey }];
43
43
  }));
44
44
  return {
45
- version: 1, // only used on the client-side
46
45
  tables,
47
46
  relationships: {}, // relationships are already denormalized in ASTs
48
47
  };
@@ -1 +1 @@
1
- {"version":3,"file":"load-permissions.js","sourceRoot":"","sources":["../../../../../zero-cache/src/auth/load-permissions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,+BAA+B,CAAC;AAEnD,OAAO,EACL,uBAAuB,GAExB,MAAM,kDAAkD,CAAC;AAG1D,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAC,KAAK,EAAC,MAAM,qBAAqB,CAAC;AAO1C,MAAM,UAAU,eAAe,CAC7B,EAAc,EACd,OAAwB,EACxB,KAAa;IAEb,MAAM,EAAC,WAAW,EAAE,IAAI,EAAC,GAAG,OAAO,CAAC,GAAG,CACrC,kCAAkC,KAAK,eAAe,CACvD,CAAC;IACF,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzB,EAAE,CAAC,IAAI,EAAE,CACP,QAAQ;YACN,qCAAqC;YACrC,2DAA2D;YAC3D,QAAQ,CACX,CAAC;QACF,OAAO,EAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAC,CAAC;IACnC,CAAC;IACD,IAAI,GAAG,CAAC;IACR,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC9B,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,iEAAiE;QACjE,MAAM,IAAI,KAAK,CACb,wCAAwC;YACtC,IAAI,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM;YACzC,gEAAgE;YAChE,kEAAkE,EACpE,EAAC,KAAK,EAAE,CAAC,EAAC,CACX,CAAC;IACJ,CAAC;IACD,OAAO,EAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,EAAc,EACd,OAAwB,EACxB,KAAa,EACb,OAAiC;IAEjC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,EAAC,WAAW,EAAE,eAAe,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;IAC3E,CAAC;IACD,MAAM,EAAC,IAAI,EAAC,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,eAAe,CAAC,CAAC;IACtE,OAAO,IAAI,KAAK,OAAO,CAAC,IAAI;QAC1B,CAAC,CAAC,EAAC,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAC;QACxC,CAAC,CAAC,EAAC,WAAW,EAAE,eAAe,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EAAc,EAAE,OAAiB;IACzD,MAAM,KAAK,GAAG,eAAe,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAC/B,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QAC9B,MAAM,EACJ,SAAS,EAAE,EAAC,IAAI,EAAE,UAAU,EAAC,EAC7B,OAAO,EAAE,OAAO,GACjB,GAAG,KAAK,CAAC;QACV,OAAO,CAAC,IAAI,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAuB,CAAC,CAAC;IACnE,CAAC,CAAC,CACH,CAAC;IACF,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,+BAA+B;QAC3C,MAAM;QACN,aAAa,EAAE,EAAE,EAAE,iDAAiD;KACrE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"load-permissions.js","sourceRoot":"","sources":["../../../../../zero-cache/src/auth/load-permissions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,+BAA+B,CAAC;AAEnD,OAAO,EACL,uBAAuB,GAExB,MAAM,kDAAkD,CAAC;AAG1D,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAC,KAAK,EAAC,MAAM,qBAAqB,CAAC;AAO1C,MAAM,UAAU,eAAe,CAC7B,EAAc,EACd,OAAwB,EACxB,KAAa;IAEb,MAAM,EAAC,WAAW,EAAE,IAAI,EAAC,GAAG,OAAO,CAAC,GAAG,CACrC,kCAAkC,KAAK,eAAe,CACvD,CAAC;IACF,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzB,EAAE,CAAC,IAAI,EAAE,CACP,QAAQ;YACN,qCAAqC;YACrC,2DAA2D;YAC3D,QAAQ,CACX,CAAC;QACF,OAAO,EAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAC,CAAC;IACnC,CAAC;IACD,IAAI,GAAG,CAAC;IACR,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC9B,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,iEAAiE;QACjE,MAAM,IAAI,KAAK,CACb,wCAAwC;YACtC,IAAI,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM;YACzC,gEAAgE;YAChE,kEAAkE,EACpE,EAAC,KAAK,EAAE,CAAC,EAAC,CACX,CAAC;IACJ,CAAC;IACD,OAAO,EAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,EAAc,EACd,OAAwB,EACxB,KAAa,EACb,OAAiC;IAEjC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,EAAC,WAAW,EAAE,eAAe,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;IAC3E,CAAC;IACD,MAAM,EAAC,IAAI,EAAC,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,eAAe,CAAC,CAAC;IACtE,OAAO,IAAI,KAAK,OAAO,CAAC,IAAI;QAC1B,CAAC,CAAC,EAAC,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAC;QACxC,CAAC,CAAC,EAAC,WAAW,EAAE,eAAe,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EAAc,EAAE,OAAiB;IACzD,MAAM,KAAK,GAAG,eAAe,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAC/B,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QAC9B,MAAM,EACJ,SAAS,EAAE,EAAC,IAAI,EAAE,UAAU,EAAC,EAC7B,OAAO,EAAE,OAAO,GACjB,GAAG,KAAK,CAAC;QACV,OAAO,CAAC,IAAI,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAuB,CAAC,CAAC;IACnE,CAAC,CAAC,CACH,CAAC;IACF,OAAO;QACL,MAAM;QACN,aAAa,EAAE,EAAE,EAAE,iDAAiD;KACrE,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"write-authorizer.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/auth/write-authorizer.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,MAAM,CAAC;AAcrC,OAAO,KAAK,EACV,MAAM,EAIN,QAAQ,EACT,MAAM,oCAAoC,CAAC;AAW5C,OAAO,EAAC,QAAQ,EAAC,MAAM,2BAA2B,CAAC;AAMnD,OAAO,KAAK,EAAY,UAAU,EAAC,MAAM,0BAA0B,CAAC;AAcpE,MAAM,WAAW,eAAe;IAC9B,cAAc,CACZ,QAAQ,EAAE,UAAU,GAAG,SAAS,EAChC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,GAC/B,OAAO,CAAC;IACX,eAAe,CACb,QAAQ,EAAE,UAAU,GAAG,SAAS,EAChC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,GAC/B,OAAO,CAAC;IACX,iBAAiB,IAAI,IAAI,CAAC;IAC1B,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;CAC1D;AAED,qBAAa,mBAAoB,YAAW,eAAe;;gBAevD,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,QAAQ,EACjB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM;IAuBd,iBAAiB;IASjB,cAAc,CACZ,QAAQ,EAAE,UAAU,GAAG,SAAS,EAChC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;IAsBlC,eAAe,CACb,QAAQ,EAAE,UAAU,GAAG,SAAS,EAChC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;IA6DlC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;CAsSzD"}
1
+ {"version":3,"file":"write-authorizer.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/auth/write-authorizer.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,MAAM,CAAC;AAcrC,OAAO,KAAK,EACV,MAAM,EAIN,QAAQ,EACT,MAAM,oCAAoC,CAAC;AAW5C,OAAO,EAAC,QAAQ,EAAC,MAAM,2BAA2B,CAAC;AAMnD,OAAO,KAAK,EAAY,UAAU,EAAC,MAAM,0BAA0B,CAAC;AAcpE,MAAM,WAAW,eAAe;IAC9B,cAAc,CACZ,QAAQ,EAAE,UAAU,GAAG,SAAS,EAChC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,GAC/B,OAAO,CAAC;IACX,eAAe,CACb,QAAQ,EAAE,UAAU,GAAG,SAAS,EAChC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,GAC/B,OAAO,CAAC;IACX,iBAAiB,IAAI,IAAI,CAAC;IAC1B,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;CAC1D;AAED,qBAAa,mBAAoB,YAAW,eAAe;;gBAevD,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,QAAQ,EACjB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM;IAwBd,iBAAiB;IASjB,cAAc,CACZ,QAAQ,EAAE,UAAU,GAAG,SAAS,EAChC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;IAsBlC,eAAe,CACb,QAAQ,EAAE,UAAU,GAAG,SAAS,EAChC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;IA6DlC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;CAsSzD"}
@@ -43,6 +43,7 @@ export class WriteAuthorizerImpl {
43
43
  this.#builderDelegate = {
44
44
  getSource: name => this.#getSource(name),
45
45
  createStorage: () => cgStorage.createStorage(),
46
+ decorateInput: input => input,
46
47
  };
47
48
  this.#tableSpecs = computeZqlSpecs(this.#lc, replica);
48
49
  this.#statementRunner = new StatementRunner(replica);
@@ -1 +1 @@
1
- {"version":3,"file":"write-authorizer.js","sourceRoot":"","sources":["../../../../../zero-cache/src/auth/write-authorizer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"write-authorizer.js","sourceRoot":"","sources":["../../../../../zero-cache/src/auth/write-authorizer.ts"],"names":[],"mappings":"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"}
@@ -144,6 +144,10 @@ export declare const zeroOptions: {
144
144
  type: v.Type<number>;
145
145
  desc: string[];
146
146
  };
147
+ slowHydrateThreshold: {
148
+ type: v.Type<number>;
149
+ desc: string[];
150
+ };
147
151
  ivmSampling: {
148
152
  type: v.Type<number>;
149
153
  desc: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"zero-config.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/config/zero-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAe,KAAK,MAAM,EAAC,MAAM,gCAAgC,CAAC;AACzE,OAAO,KAAK,CAAC,MAAM,+BAA+B,CAAC;AAOnD,YAAY,EAAC,SAAS,EAAC,MAAM,kCAAkC,CAAC;AAEhE,eAAO,MAAM,UAAU;;;;;;;;;CA8CtB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;CAwBxB,CAAC;AAEF,QAAA,MAAM,cAAc;;;;;;;;;CAmBnB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,cAAc,CAAC,CAAC;AAE3D,QAAA,MAAM,oBAAoB;;;;;;;;;CAczB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAE5D,QAAA,MAAM,WAAW;;;;;;;;;;;;;CAmBhB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,WAAW,CAAC,CAAC;AAKpD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6SvB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,WAAW,CAAC,CAAC;AAEpD,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAI3C,wBAAgB,aAAa,CAC3B,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,IAAI,WAAwB,GAC3B,UAAU,CAUZ"}
1
+ {"version":3,"file":"zero-config.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/config/zero-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAe,KAAK,MAAM,EAAC,MAAM,gCAAgC,CAAC;AACzE,OAAO,KAAK,CAAC,MAAM,+BAA+B,CAAC;AAOnD,YAAY,EAAC,SAAS,EAAC,MAAM,kCAAkC,CAAC;AAEhE,eAAO,MAAM,UAAU;;;;;;;;;CA8CtB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;CAwBxB,CAAC;AAEF,QAAA,MAAM,cAAc;;;;;;;;;CAmBnB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,cAAc,CAAC,CAAC;AAE3D,QAAA,MAAM,oBAAoB;;;;;;;;;CAczB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAE5D,QAAA,MAAM,WAAW;;;;;;;;;;;;;CAmBhB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,WAAW,CAAC,CAAC;AAKpD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6SvB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,WAAW,CAAC,CAAC;AAEpD,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAI3C,wBAAgB,aAAa,CAC3B,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,IAAI,WAAwB,GAC3B,UAAU,CAUZ"}
@@ -13,6 +13,10 @@ export declare function listIndexes(db: Database): LiteIndexSpec[];
13
13
  * in unique indexes
14
14
  *
15
15
  * @param tableSpecs an optional map to reset and populate
16
+ * @param fullTables an optional map to receive the full table specs,
17
+ * which may include tables and columns that are not synced to
18
+ * the client because they lack a primary key or are of unsupported
19
+ * data types.
16
20
  */
17
- export declare function computeZqlSpecs(lc: LogContext, replica: Database, tableSpecs?: Map<string, LiteAndZqlSpec>): Map<string, LiteAndZqlSpec>;
21
+ export declare function computeZqlSpecs(lc: LogContext, replica: Database, tableSpecs?: Map<string, LiteAndZqlSpec>, fullTables?: Map<string, LiteTableSpec>): Map<string, LiteAndZqlSpec>;
18
22
  //# sourceMappingURL=lite-tables.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lite-tables.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/db/lite-tables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAKjD,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,2BAA2B,CAAC;AAMxD,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,aAAa,EAGd,MAAM,YAAY,CAAC;AAWpB,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,GAAG,aAAa,EAAE,CAkDxD;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,QAAQ,GAAG,aAAa,EAAE,CAyCzD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,QAAQ,EACjB,UAAU,GAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAa,GAClD,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CA0E7B"}
1
+ {"version":3,"file":"lite-tables.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/db/lite-tables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAKjD,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,2BAA2B,CAAC;AAMxD,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,aAAa,EAGd,MAAM,YAAY,CAAC;AAWpB,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,GAAG,aAAa,EAAE,CAmDxD;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,QAAQ,GAAG,aAAa,EAAE,CAyCzD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAC7B,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,QAAQ,EACjB,UAAU,GAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAa,EACnD,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,GACtC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CA6E7B"}
@@ -18,6 +18,7 @@ export function listTables(db) {
18
18
  WHERE m.type = 'table'
19
19
  AND m.name NOT LIKE 'sqlite_%'
20
20
  AND m.name NOT LIKE '_zero.%'
21
+ AND m.name NOT LIKE '_litestream_%'
21
22
  `)
22
23
  .all();
23
24
  const tables = [];
@@ -91,9 +92,14 @@ export function listIndexes(db) {
91
92
  * in unique indexes
92
93
  *
93
94
  * @param tableSpecs an optional map to reset and populate
95
+ * @param fullTables an optional map to receive the full table specs,
96
+ * which may include tables and columns that are not synced to
97
+ * the client because they lack a primary key or are of unsupported
98
+ * data types.
94
99
  */
95
- export function computeZqlSpecs(lc, replica, tableSpecs = new Map()) {
100
+ export function computeZqlSpecs(lc, replica, tableSpecs = new Map(), fullTables) {
96
101
  tableSpecs.clear();
102
+ fullTables?.clear();
97
103
  const uniqueColumns = new Map();
98
104
  for (const { tableName, columns } of listIndexes(replica).filter(idx => idx.unique)) {
99
105
  if (!uniqueColumns.has(tableName)) {
@@ -102,6 +108,7 @@ export function computeZqlSpecs(lc, replica, tableSpecs = new Map()) {
102
108
  uniqueColumns.get(tableName)?.push(Object.keys(columns));
103
109
  }
104
110
  listTables(replica).forEach(fullTable => {
111
+ fullTables?.set(fullTable.name, fullTable);
105
112
  // Only include columns for which the mapped ZQL Value is defined.
106
113
  const visibleColumns = Object.entries(fullTable.columns).filter(([_, { dataType }]) => dataTypeToZqlValueType(dataType));
107
114
  const notNullColumns = new Set(visibleColumns