@rocicorp/zero 0.18.2025032400 → 0.18.2025032800

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 (234) hide show
  1. package/out/advanced.js +0 -1
  2. package/out/{chunk-YAABAEJV.js → chunk-3S3SDA44.js} +205 -148
  3. package/out/chunk-3S3SDA44.js.map +7 -0
  4. package/out/{chunk-2B2QE5AT.js → chunk-MB3DEFRC.js} +25 -2
  5. package/out/{chunk-2B2QE5AT.js.map → chunk-MB3DEFRC.js.map} +2 -2
  6. package/out/{chunk-DSUPSGE4.js → chunk-NBZURO2P.js} +81 -26
  7. package/out/{chunk-DSUPSGE4.js.map → chunk-NBZURO2P.js.map} +4 -4
  8. package/out/{inspector-ROITQB3J.js → inspector-SH2ZK7O3.js} +253 -102
  9. package/out/inspector-SH2ZK7O3.js.map +7 -0
  10. package/out/react.js +2 -3
  11. package/out/react.js.map +2 -2
  12. package/out/shared/src/sentinels.d.ts +3 -0
  13. package/out/shared/src/sentinels.d.ts.map +1 -0
  14. package/out/solid.js +3 -4
  15. package/out/solid.js.map +2 -2
  16. package/out/z2s/src/compiler.d.ts +5 -3
  17. package/out/z2s/src/compiler.d.ts.map +1 -1
  18. package/out/z2s/src/compiler.js +116 -16
  19. package/out/z2s/src/compiler.js.map +1 -1
  20. package/out/z2s/src/sql.d.ts +8 -0
  21. package/out/z2s/src/sql.d.ts.map +1 -1
  22. package/out/z2s/src/sql.js +205 -11
  23. package/out/z2s/src/sql.js.map +1 -1
  24. package/out/zero/src/zero-cache-dev.d.ts +1 -1
  25. package/out/zero/src/zero-cache-dev.d.ts.map +1 -1
  26. package/out/zero/src/zero-cache-dev.js +1 -1
  27. package/out/zero/src/zero-cache-dev.js.map +1 -1
  28. package/out/zero-cache/src/auth/load-permissions.d.ts.map +1 -1
  29. package/out/zero-cache/src/auth/load-permissions.js +2 -1
  30. package/out/zero-cache/src/auth/load-permissions.js.map +1 -1
  31. package/out/zero-cache/src/config/zero-config.d.ts +1 -1
  32. package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
  33. package/out/zero-cache/src/config/zero-config.js +6 -3
  34. package/out/zero-cache/src/config/zero-config.js.map +1 -1
  35. package/out/zero-cache/src/db/migration-lite.d.ts.map +1 -1
  36. package/out/zero-cache/src/db/migration-lite.js +9 -9
  37. package/out/zero-cache/src/db/migration-lite.js.map +1 -1
  38. package/out/zero-cache/src/scripts/deploy-permissions.d.ts +1 -1
  39. package/out/zero-cache/src/scripts/deploy-permissions.d.ts.map +1 -1
  40. package/out/zero-cache/src/scripts/deploy-permissions.js +1 -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 +1 -1
  43. package/out/zero-cache/src/server/multi/main.d.ts +1 -1
  44. package/out/zero-cache/src/server/multi/main.d.ts.map +1 -1
  45. package/out/zero-cache/src/server/multi/main.js +1 -1
  46. package/out/zero-cache/src/server/multi/main.js.map +1 -1
  47. package/out/zero-cache/src/server/multi/run-worker.d.ts +1 -1
  48. package/out/zero-cache/src/server/multi/run-worker.d.ts.map +1 -1
  49. package/out/zero-cache/src/server/multi/run-worker.js +1 -1
  50. package/out/zero-cache/src/server/multi/run-worker.js.map +1 -1
  51. package/out/zero-cache/src/server/syncer.js +1 -1
  52. package/out/zero-cache/src/server/syncer.js.map +1 -1
  53. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts +1 -1
  54. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts.map +1 -1
  55. package/out/zero-cache/src/services/change-source/pg/change-source.js +96 -42
  56. package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -1
  57. package/out/zero-cache/src/services/change-source/pg/decommission.d.ts.map +1 -1
  58. package/out/zero-cache/src/services/change-source/pg/decommission.js +16 -5
  59. package/out/zero-cache/src/services/change-source/pg/decommission.js.map +1 -1
  60. package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts +1 -2
  61. package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts.map +1 -1
  62. package/out/zero-cache/src/services/change-source/pg/initial-sync.js +18 -31
  63. package/out/zero-cache/src/services/change-source/pg/initial-sync.js.map +1 -1
  64. package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts +7 -35
  65. package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts.map +1 -1
  66. package/out/zero-cache/src/services/change-source/pg/schema/ddl.js +42 -74
  67. package/out/zero-cache/src/services/change-source/pg/schema/ddl.js.map +1 -1
  68. package/out/zero-cache/src/services/change-source/pg/schema/init.d.ts +1 -1
  69. package/out/zero-cache/src/services/change-source/pg/schema/init.d.ts.map +1 -1
  70. package/out/zero-cache/src/services/change-source/pg/schema/init.js +69 -21
  71. package/out/zero-cache/src/services/change-source/pg/schema/init.js.map +1 -1
  72. package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts +54 -27
  73. package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts.map +1 -1
  74. package/out/zero-cache/src/services/change-source/pg/schema/shard.js +53 -16
  75. package/out/zero-cache/src/services/change-source/pg/schema/shard.js.map +1 -1
  76. package/out/zero-cache/src/services/mutagen/mutagen.d.ts +7 -5
  77. package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +1 -1
  78. package/out/zero-cache/src/services/mutagen/mutagen.js +20 -5
  79. package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
  80. package/out/zero-cache/src/services/mutagen/pusher.d.ts +1 -1
  81. package/out/zero-cache/src/services/mutagen/pusher.d.ts.map +1 -1
  82. package/out/zero-cache/src/services/mutagen/pusher.js +61 -9
  83. package/out/zero-cache/src/services/mutagen/pusher.js.map +1 -1
  84. package/out/zero-cache/src/services/replicator/change-processor.d.ts.map +1 -1
  85. package/out/zero-cache/src/services/replicator/change-processor.js +25 -14
  86. package/out/zero-cache/src/services/replicator/change-processor.js.map +1 -1
  87. package/out/zero-cache/src/services/view-syncer/client-handler.d.ts +8 -4
  88. package/out/zero-cache/src/services/view-syncer/client-handler.d.ts.map +1 -1
  89. package/out/zero-cache/src/services/view-syncer/client-handler.js +47 -23
  90. package/out/zero-cache/src/services/view-syncer/client-handler.js.map +1 -1
  91. package/out/zero-cache/src/services/view-syncer/client-schema.d.ts.map +1 -1
  92. package/out/zero-cache/src/services/view-syncer/client-schema.js +8 -2
  93. package/out/zero-cache/src/services/view-syncer/client-schema.js.map +1 -1
  94. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts +2 -0
  95. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +1 -1
  96. package/out/zero-cache/src/services/view-syncer/cvr-store.js +35 -0
  97. package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -1
  98. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +3 -0
  99. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
  100. package/out/zero-cache/src/services/view-syncer/view-syncer.js +32 -20
  101. package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
  102. package/out/zero-cache/src/types/bigint-json.d.ts +1 -1
  103. package/out/zero-cache/src/types/bigint-json.d.ts.map +1 -1
  104. package/out/zero-cache/src/types/bigint-json.js.map +1 -1
  105. package/out/zero-cache/src/types/lite.d.ts.map +1 -1
  106. package/out/zero-cache/src/types/lite.js +4 -3
  107. package/out/zero-cache/src/types/lite.js.map +1 -1
  108. package/out/zero-cache/src/types/shards.d.ts +4 -0
  109. package/out/zero-cache/src/types/shards.d.ts.map +1 -1
  110. package/out/zero-cache/src/types/shards.js +1 -1
  111. package/out/zero-cache/src/types/shards.js.map +1 -1
  112. package/out/zero-cache/src/workers/connection.d.ts +1 -2
  113. package/out/zero-cache/src/workers/connection.d.ts.map +1 -1
  114. package/out/zero-cache/src/workers/connection.js +64 -21
  115. package/out/zero-cache/src/workers/connection.js.map +1 -1
  116. package/out/zero-cache/src/workers/replicator.d.ts.map +1 -1
  117. package/out/zero-cache/src/workers/replicator.js +4 -8
  118. package/out/zero-cache/src/workers/replicator.js.map +1 -1
  119. package/out/zero-cache/src/workers/syncer-ws-message-handler.d.ts.map +1 -1
  120. package/out/zero-cache/src/workers/syncer-ws-message-handler.js +16 -7
  121. package/out/zero-cache/src/workers/syncer-ws-message-handler.js.map +1 -1
  122. package/out/zero-client/src/client/custom.d.ts +9 -11
  123. package/out/zero-client/src/client/custom.d.ts.map +1 -1
  124. package/out/zero-client/src/client/inspector/inspector.d.ts +2 -1
  125. package/out/zero-client/src/client/inspector/inspector.d.ts.map +1 -1
  126. package/out/zero-client/src/client/inspector/types.d.ts +7 -2
  127. package/out/zero-client/src/client/inspector/types.d.ts.map +1 -1
  128. package/out/zero-client/src/client/mutation-tracker.d.ts +23 -8
  129. package/out/zero-client/src/client/mutation-tracker.d.ts.map +1 -1
  130. package/out/zero-client/src/client/options.d.ts +7 -2
  131. package/out/zero-client/src/client/options.d.ts.map +1 -1
  132. package/out/zero-client/src/client/query-manager.d.ts +2 -1
  133. package/out/zero-client/src/client/query-manager.d.ts.map +1 -1
  134. package/out/zero-client/src/client/zero.d.ts +1 -1
  135. package/out/zero-client/src/client/zero.d.ts.map +1 -1
  136. package/out/zero-client/src/mod.d.ts +7 -1
  137. package/out/zero-client/src/mod.d.ts.map +1 -1
  138. package/out/zero-pg/src/custom.d.ts +2 -13
  139. package/out/zero-pg/src/custom.d.ts.map +1 -1
  140. package/out/zero-pg/src/custom.js +11 -14
  141. package/out/zero-pg/src/custom.js.map +1 -1
  142. package/out/zero-pg/src/mod.d.ts +1 -2
  143. package/out/zero-pg/src/mod.d.ts.map +1 -1
  144. package/out/zero-pg/src/mod.js +1 -1
  145. package/out/zero-pg/src/mod.js.map +1 -1
  146. package/out/zero-pg/src/query.d.ts +2 -2
  147. package/out/zero-pg/src/query.d.ts.map +1 -1
  148. package/out/zero-pg/src/query.js +8 -15
  149. package/out/zero-pg/src/query.js.map +1 -1
  150. package/out/zero-pg/src/web.d.ts +3 -7
  151. package/out/zero-pg/src/web.d.ts.map +1 -1
  152. package/out/zero-pg/src/web.js +9 -15
  153. package/out/zero-pg/src/web.js.map +1 -1
  154. package/out/zero-protocol/src/client-schema.d.ts +1 -1
  155. package/out/zero-protocol/src/client-schema.d.ts.map +1 -1
  156. package/out/zero-protocol/src/client-schema.js +1 -1
  157. package/out/zero-protocol/src/client-schema.js.map +1 -1
  158. package/out/zero-protocol/src/down.d.ts +19 -6
  159. package/out/zero-protocol/src/down.d.ts.map +1 -1
  160. package/out/zero-protocol/src/down.js +2 -2
  161. package/out/zero-protocol/src/down.js.map +1 -1
  162. package/out/zero-protocol/src/inspect-down.d.ts +59 -0
  163. package/out/zero-protocol/src/inspect-down.d.ts.map +1 -0
  164. package/out/zero-protocol/src/inspect-down.js +23 -0
  165. package/out/zero-protocol/src/inspect-down.js.map +1 -0
  166. package/out/zero-protocol/src/inspect-up.d.ts +21 -0
  167. package/out/zero-protocol/src/inspect-up.d.ts.map +1 -0
  168. package/out/zero-protocol/src/inspect-up.js +12 -0
  169. package/out/zero-protocol/src/inspect-up.js.map +1 -0
  170. package/out/zero-protocol/src/mutation-type-enum.d.ts +1 -0
  171. package/out/zero-protocol/src/mutation-type-enum.d.ts.map +1 -1
  172. package/out/zero-protocol/src/protocol-version.d.ts +1 -1
  173. package/out/zero-protocol/src/protocol-version.d.ts.map +1 -1
  174. package/out/zero-protocol/src/protocol-version.js +3 -1
  175. package/out/zero-protocol/src/protocol-version.js.map +1 -1
  176. package/out/zero-protocol/src/push.d.ts +31 -18
  177. package/out/zero-protocol/src/push.d.ts.map +1 -1
  178. package/out/zero-protocol/src/push.js +7 -6
  179. package/out/zero-protocol/src/push.js.map +1 -1
  180. package/out/zero-protocol/src/up.d.ts +5 -1
  181. package/out/zero-protocol/src/up.d.ts.map +1 -1
  182. package/out/zero-protocol/src/up.js +2 -1
  183. package/out/zero-protocol/src/up.js.map +1 -1
  184. package/out/zero-react/src/use-query.d.ts +1 -2
  185. package/out/zero-react/src/use-query.d.ts.map +1 -1
  186. package/out/zero-schema/src/builder/table-builder.d.ts +13 -0
  187. package/out/zero-schema/src/builder/table-builder.d.ts.map +1 -1
  188. package/out/zero-schema/src/builder/table-builder.js +17 -0
  189. package/out/zero-schema/src/builder/table-builder.js.map +1 -1
  190. package/out/zero-schema/src/permissions.d.ts.map +1 -1
  191. package/out/zero-schema/src/table-schema.d.ts +3 -1
  192. package/out/zero-schema/src/table-schema.d.ts.map +1 -1
  193. package/out/zero-schema/src/table-schema.js.map +1 -1
  194. package/out/zero-solid/src/create-zero.d.ts.map +1 -1
  195. package/out/zero-solid/src/solid-view.d.ts +1 -2
  196. package/out/zero-solid/src/solid-view.d.ts.map +1 -1
  197. package/out/zero-solid/src/use-query.d.ts +1 -2
  198. package/out/zero-solid/src/use-query.d.ts.map +1 -1
  199. package/out/zero.js +7 -4
  200. package/out/zql/src/mutate/custom.d.ts +0 -1
  201. package/out/zql/src/mutate/custom.d.ts.map +1 -1
  202. package/out/zql/src/mutate/custom.js.map +1 -1
  203. package/out/zql/src/query/query-impl.d.ts +9 -6
  204. package/out/zql/src/query/query-impl.d.ts.map +1 -1
  205. package/out/zql/src/query/query-impl.js +16 -18
  206. package/out/zql/src/query/query-impl.js.map +1 -1
  207. package/out/zql/src/query/query-internal.d.ts +2 -9
  208. package/out/zql/src/query/query-internal.d.ts.map +1 -1
  209. package/out/zql/src/query/query.d.ts +5 -0
  210. package/out/zql/src/query/query.d.ts.map +1 -1
  211. package/out/zql/src/query/static-query.d.ts +1 -1
  212. package/out/zql/src/query/static-query.d.ts.map +1 -1
  213. package/out/zql/src/query/static-query.js +2 -2
  214. package/out/zql/src/query/static-query.js.map +1 -1
  215. package/out/zql/src/query/ttl.d.ts +1 -1
  216. package/out/zql/src/query/ttl.d.ts.map +1 -1
  217. package/out/zql/src/query/ttl.js +1 -1
  218. package/out/zql/src/query/ttl.js.map +1 -1
  219. package/out/zqlite/src/table-source.d.ts.map +1 -1
  220. package/out/zqlite/src/table-source.js +8 -0
  221. package/out/zqlite/src/table-source.js.map +1 -1
  222. package/package.json +4 -5
  223. package/out/chunk-ULOTOBTC.js +0 -1
  224. package/out/chunk-ULOTOBTC.js.map +0 -7
  225. package/out/chunk-YAABAEJV.js.map +0 -7
  226. package/out/inspector-ROITQB3J.js.map +0 -7
  227. package/out/zero-protocol/src/warm.d.ts +0 -10
  228. package/out/zero-protocol/src/warm.d.ts.map +0 -1
  229. package/out/zero-protocol/src/warm.js +0 -6
  230. package/out/zero-protocol/src/warm.js.map +0 -1
  231. package/out/zero-schema/src/mod.d.ts +0 -5
  232. package/out/zero-schema/src/mod.d.ts.map +0 -1
  233. package/out/zql/src/query/query-internal.js +0 -2
  234. package/out/zql/src/query/query-internal.js.map +0 -1
@@ -31,6 +31,28 @@ function compareTTL(a, b) {
31
31
  }
32
32
  return ap - bp;
33
33
  }
34
+ function normalizeTTL(ttl) {
35
+ if (typeof ttl === "string") {
36
+ return ttl;
37
+ }
38
+ if (ttl < 0) {
39
+ return "forever";
40
+ }
41
+ if (ttl === 0) {
42
+ return "none";
43
+ }
44
+ let shortest = ttl.toString();
45
+ const lengthOfNumber = shortest.length;
46
+ for (const unit of ["y", "d", "h", "m", "s"]) {
47
+ const multi = multiplier[unit];
48
+ const value = ttl / multi;
49
+ const candidate = `${value}${unit}`;
50
+ if (candidate.length < shortest.length) {
51
+ shortest = candidate;
52
+ }
53
+ }
54
+ return shortest.length < lengthOfNumber ? shortest : ttl;
55
+ }
34
56
 
35
57
  // ../shared/src/has-own.ts
36
58
  var { hasOwn } = Object;
@@ -39,6 +61,7 @@ export {
39
61
  hasOwn,
40
62
  DEFAULT_TTL,
41
63
  parseTTL,
42
- compareTTL
64
+ compareTTL,
65
+ normalizeTTL
43
66
  };
44
- //# sourceMappingURL=chunk-2B2QE5AT.js.map
67
+ //# sourceMappingURL=chunk-MB3DEFRC.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../zql/src/query/ttl.ts", "../../shared/src/has-own.ts"],
4
- "sourcesContent": ["export type TimeUnit = 's' | 'm' | 'h' | 'd' | 'y';\n\n/**\n * Time To Live. This is used for query expiration.\n * - `forever` means the query will never expire.\n * - `none` means the query will expire immediately.\n * - A number means the query will expire after that many milliseconds.\n * - A negative number means the query will never expire, this is same as 'forever'.\n * - A string like `1s` means the query will expire after that many seconds.\n * - A string like `1m` means the query will expire after that many minutes.\n * - A string like `1h` means the query will expire after that many hours.\n * - A string like `1d` means the query will expire after that many days.\n * - A string like `1y` means the query will expire after that many years.\n */\nexport type TTL = `${number}${TimeUnit}` | 'forever' | 'none' | number;\n\nexport const DEFAULT_TTL: TTL = 'none';\n\nconst multiplier = {\n s: 1000,\n m: 60 * 1000,\n h: 60 * 60 * 1000,\n d: 24 * 60 * 60 * 1000,\n y: 365 * 24 * 60 * 60 * 1000,\n} as const;\n\nexport function parseTTL(ttl: TTL): number {\n if (typeof ttl === 'number') {\n return Number.isNaN(ttl) ? 0 : !Number.isFinite(ttl) || ttl < 0 ? -1 : ttl;\n }\n if (ttl === 'none') {\n return 0;\n }\n if (ttl === 'forever') {\n return -1;\n }\n const multi = multiplier[ttl[ttl.length - 1] as TimeUnit];\n return Number(ttl.slice(0, -1)) * multi;\n}\n\nexport function compareTTL(a: TTL, b: TTL): number {\n const ap = parseTTL(a);\n const bp = parseTTL(b);\n if (ap === -1 && bp !== -1) {\n return 1;\n }\n if (ap !== -1 && bp === -1) {\n return -1;\n }\n return ap - bp;\n}\n\nexport function normalizeTTL(ttl: TTL): string | number {\n if (typeof ttl === 'string') {\n return ttl;\n }\n\n if (ttl < 0) {\n return 'forever';\n }\n\n if (ttl === 0) {\n return 'none';\n }\n\n let shortest = ttl.toString();\n const lengthOfNumber = shortest.length;\n for (const unit of ['y', 'd', 'h', 'm', 's'] as const) {\n const multi = multiplier[unit];\n const value = ttl / multi;\n const candidate = `${value}${unit}`;\n if (candidate.length < shortest.length) {\n shortest = candidate;\n }\n }\n\n return shortest.length < lengthOfNumber ? shortest : ttl;\n}\n", "// hasOwn was added in ES2022\nexport const {hasOwn} = Object;\n"],
5
- "mappings": ";AAgBO,IAAM,cAAmB;AAEhC,IAAM,aAAa;AAAA,EACjB,GAAG;AAAA,EACH,GAAG,KAAK;AAAA,EACR,GAAG,KAAK,KAAK;AAAA,EACb,GAAG,KAAK,KAAK,KAAK;AAAA,EAClB,GAAG,MAAM,KAAK,KAAK,KAAK;AAC1B;AAEO,SAAS,SAAS,KAAkB;AACzC,MAAI,OAAO,QAAQ,UAAU;AAC3B,WAAO,OAAO,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,SAAS,GAAG,KAAK,MAAM,IAAI,KAAK;AAAA,EACzE;AACA,MAAI,QAAQ,QAAQ;AAClB,WAAO;AAAA,EACT;AACA,MAAI,QAAQ,WAAW;AACrB,WAAO;AAAA,EACT;AACA,QAAM,QAAQ,WAAW,IAAI,IAAI,SAAS,CAAC,CAAa;AACxD,SAAO,OAAO,IAAI,MAAM,GAAG,EAAE,CAAC,IAAI;AACpC;AAEO,SAAS,WAAW,GAAQ,GAAgB;AACjD,QAAM,KAAK,SAAS,CAAC;AACrB,QAAM,KAAK,SAAS,CAAC;AACrB,MAAI,OAAO,MAAM,OAAO,IAAI;AAC1B,WAAO;AAAA,EACT;AACA,MAAI,OAAO,MAAM,OAAO,IAAI;AAC1B,WAAO;AAAA,EACT;AACA,SAAO,KAAK;AACd;;;ACjDO,IAAM,EAAC,OAAM,IAAI;",
4
+ "sourcesContent": ["export type TimeUnit = 's' | 'm' | 'h' | 'd' | 'y';\n\n/**\n * Time To Live. This is used for query expiration.\n * - `forever` means the query will never expire.\n * - `none` means the query will expire immediately.\n * - A number means the query will expire after that many milliseconds.\n * - A negative number means the query will never expire, this is same as 'forever'.\n * - A string like `1s` means the query will expire after that many seconds.\n * - A string like `1m` means the query will expire after that many minutes.\n * - A string like `1h` means the query will expire after that many hours.\n * - A string like `1d` means the query will expire after that many days.\n * - A string like `1y` means the query will expire after that many years.\n */\nexport type TTL = `${number}${TimeUnit}` | 'forever' | 'none' | number;\n\nexport const DEFAULT_TTL: TTL = 'none';\n\nconst multiplier = {\n s: 1000,\n m: 60 * 1000,\n h: 60 * 60 * 1000,\n d: 24 * 60 * 60 * 1000,\n y: 365 * 24 * 60 * 60 * 1000,\n} as const;\n\nexport function parseTTL(ttl: TTL): number {\n if (typeof ttl === 'number') {\n return Number.isNaN(ttl) ? 0 : !Number.isFinite(ttl) || ttl < 0 ? -1 : ttl;\n }\n if (ttl === 'none') {\n return 0;\n }\n if (ttl === 'forever') {\n return -1;\n }\n const multi = multiplier[ttl[ttl.length - 1] as TimeUnit];\n return Number(ttl.slice(0, -1)) * multi;\n}\n\nexport function compareTTL(a: TTL, b: TTL): number {\n const ap = parseTTL(a);\n const bp = parseTTL(b);\n if (ap === -1 && bp !== -1) {\n return 1;\n }\n if (ap !== -1 && bp === -1) {\n return -1;\n }\n return ap - bp;\n}\n\nexport function normalizeTTL(ttl: TTL): TTL {\n if (typeof ttl === 'string') {\n return ttl;\n }\n\n if (ttl < 0) {\n return 'forever';\n }\n\n if (ttl === 0) {\n return 'none';\n }\n\n let shortest = ttl.toString();\n const lengthOfNumber = shortest.length;\n for (const unit of ['y', 'd', 'h', 'm', 's'] as const) {\n const multi = multiplier[unit];\n const value = ttl / multi;\n const candidate = `${value}${unit}`;\n if (candidate.length < shortest.length) {\n shortest = candidate;\n }\n }\n\n return (shortest.length < lengthOfNumber ? shortest : ttl) as TTL;\n}\n", "// hasOwn was added in ES2022\nexport const {hasOwn} = Object;\n"],
5
+ "mappings": ";AAgBO,IAAM,cAAmB;AAEhC,IAAM,aAAa;AAAA,EACjB,GAAG;AAAA,EACH,GAAG,KAAK;AAAA,EACR,GAAG,KAAK,KAAK;AAAA,EACb,GAAG,KAAK,KAAK,KAAK;AAAA,EAClB,GAAG,MAAM,KAAK,KAAK,KAAK;AAC1B;AAEO,SAAS,SAAS,KAAkB;AACzC,MAAI,OAAO,QAAQ,UAAU;AAC3B,WAAO,OAAO,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,SAAS,GAAG,KAAK,MAAM,IAAI,KAAK;AAAA,EACzE;AACA,MAAI,QAAQ,QAAQ;AAClB,WAAO;AAAA,EACT;AACA,MAAI,QAAQ,WAAW;AACrB,WAAO;AAAA,EACT;AACA,QAAM,QAAQ,WAAW,IAAI,IAAI,SAAS,CAAC,CAAa;AACxD,SAAO,OAAO,IAAI,MAAM,GAAG,EAAE,CAAC,IAAI;AACpC;AAEO,SAAS,WAAW,GAAQ,GAAgB;AACjD,QAAM,KAAK,SAAS,CAAC;AACrB,QAAM,KAAK,SAAS,CAAC;AACrB,MAAI,OAAO,MAAM,OAAO,IAAI;AAC1B,WAAO;AAAA,EACT;AACA,MAAI,OAAO,MAAM,OAAO,IAAI;AAC1B,WAAO;AAAA,EACT;AACA,SAAO,KAAK;AACd;AAEO,SAAS,aAAa,KAAe;AAC1C,MAAI,OAAO,QAAQ,UAAU;AAC3B,WAAO;AAAA,EACT;AAEA,MAAI,MAAM,GAAG;AACX,WAAO;AAAA,EACT;AAEA,MAAI,QAAQ,GAAG;AACb,WAAO;AAAA,EACT;AAEA,MAAI,WAAW,IAAI,SAAS;AAC5B,QAAM,iBAAiB,SAAS;AAChC,aAAW,QAAQ,CAAC,KAAK,KAAK,KAAK,KAAK,GAAG,GAAY;AACrD,UAAM,QAAQ,WAAW,IAAI;AAC7B,UAAM,QAAQ,MAAM;AACpB,UAAM,YAAY,GAAG,KAAK,GAAG,IAAI;AACjC,QAAI,UAAU,SAAS,SAAS,QAAQ;AACtC,iBAAW;AAAA,IACb;AAAA,EACF;AAEA,SAAQ,SAAS,SAAS,iBAAiB,WAAW;AACxD;;;AC5EO,IAAM,EAAC,OAAM,IAAI;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  DEFAULT_TTL,
3
3
  hasOwn
4
- } from "./chunk-2B2QE5AT.js";
4
+ } from "./chunk-MB3DEFRC.js";
5
5
  import {
6
6
  applyChange,
7
7
  assert,
@@ -844,13 +844,13 @@ var DataNodeImpl = class extends NodeImpl {
844
844
  }
845
845
  }
846
846
  };
847
- function readonlySplice(array4, start, deleteCount, ...items) {
848
- const arr = array4.slice(0, start);
847
+ function readonlySplice(array5, start, deleteCount, ...items) {
848
+ const arr = array5.slice(0, start);
849
849
  for (let i = 0; i < items.length; i++) {
850
850
  arr.push(items[i]);
851
851
  }
852
- for (let i = start + deleteCount; i < array4.length; i++) {
853
- arr.push(array4[i]);
852
+ for (let i = start + deleteCount; i < array5.length; i++) {
853
+ arr.push(array5[i]);
854
854
  }
855
855
  return arr;
856
856
  }
@@ -3457,6 +3457,57 @@ function compareUTF8MaybeNull(a, b) {
3457
3457
  return 0;
3458
3458
  }
3459
3459
 
3460
+ // ../zero-protocol/src/inspect-down.ts
3461
+ var inspectQueryRowSchema = valita_exports.object({
3462
+ clientID: valita_exports.string(),
3463
+ queryID: valita_exports.string(),
3464
+ ast: astSchema,
3465
+ got: valita_exports.boolean(),
3466
+ deleted: valita_exports.boolean(),
3467
+ ttl: valita_exports.number(),
3468
+ inactivatedAt: valita_exports.number().nullable(),
3469
+ rowCount: valita_exports.number()
3470
+ });
3471
+ var inspectQueriesDownSchema = valita_exports.object({
3472
+ op: valita_exports.literal("queries"),
3473
+ id: valita_exports.string(),
3474
+ value: valita_exports.array(inspectQueryRowSchema)
3475
+ });
3476
+ var inspectDownBodySchema = valita_exports.union(inspectQueriesDownSchema);
3477
+ var inspectDownMessageSchema = valita_exports.tuple([
3478
+ valita_exports.literal("inspect"),
3479
+ inspectDownBodySchema
3480
+ ]);
3481
+
3482
+ // ../shared/src/random-values.ts
3483
+ function getNonCryptoRandomValues(array5) {
3484
+ if (array5 === null) {
3485
+ throw new TypeError("array cannot be null");
3486
+ }
3487
+ for (let i = 0; i < array5.length; i++) {
3488
+ array5[i] = Math.floor(Math.random() * 256);
3489
+ }
3490
+ return array5;
3491
+ }
3492
+
3493
+ // ../zero-client/src/util/nanoid.ts
3494
+ function nanoid(size = 21) {
3495
+ const randomBytes = getNonCryptoRandomValues(new Uint8Array(size));
3496
+ return randomBytes.reduce((id, byte) => {
3497
+ byte &= 63;
3498
+ if (byte < 36) {
3499
+ id += byte.toString(36);
3500
+ } else if (byte < 62) {
3501
+ id += (byte - 26).toString(36).toUpperCase();
3502
+ } else if (byte > 62) {
3503
+ id += "-";
3504
+ } else {
3505
+ id += "_";
3506
+ }
3507
+ return id;
3508
+ }, "");
3509
+ }
3510
+
3460
3511
  // ../shared/src/hash.ts
3461
3512
  import { xxHash32 } from "js-xxhash";
3462
3513
  var h64 = (s) => hash(s, 2);
@@ -5714,8 +5765,8 @@ var negateOperatorMap = {
5714
5765
  function negateOperator(op) {
5715
5766
  return must(negateOperatorMap[op]);
5716
5767
  }
5717
- function filterUndefined(array4) {
5718
- return array4.filter((e) => e !== void 0);
5768
+ function filterUndefined(array5) {
5769
+ return array5.filter((e) => e !== void 0);
5719
5770
  }
5720
5771
  function filterTrue(conditions) {
5721
5772
  return conditions.filter((c) => !isAlwaysTrue(c));
@@ -5780,7 +5831,7 @@ function unwrap(c) {
5780
5831
  // ../zql/src/query/query-impl.ts
5781
5832
  var astForTestingSymbol = Symbol();
5782
5833
  function newQuery(delegate, schema, table) {
5783
- return new QueryImpl(delegate, schema, table);
5834
+ return new QueryImpl(delegate, schema, table, { table }, defaultFormat);
5784
5835
  }
5785
5836
  function newQueryWithDetails(delegate, schema, tableName, ast, format) {
5786
5837
  return new QueryImpl(delegate, schema, tableName, ast, format);
@@ -5794,20 +5845,18 @@ function staticParam(anchorClass, field) {
5794
5845
  };
5795
5846
  }
5796
5847
  var SUBQ_PREFIX = "zsubq_";
5848
+ var defaultFormat = { singular: false, relationships: {} };
5797
5849
  var AbstractQuery = class {
5798
5850
  #schema;
5799
5851
  #tableName;
5800
5852
  #ast;
5801
- #format;
5853
+ format;
5802
5854
  #hash = "";
5803
- constructor(schema, tableName, ast = { table: tableName }, format) {
5855
+ constructor(schema, tableName, ast, format) {
5804
5856
  this.#schema = schema;
5805
5857
  this.#tableName = tableName;
5806
5858
  this.#ast = ast;
5807
- this.#format = format ?? { singular: false, relationships: {} };
5808
- }
5809
- get format() {
5810
- return this.#format;
5859
+ this.format = format;
5811
5860
  }
5812
5861
  // Not part of Query or QueryInternal interface
5813
5862
  get [astForTestingSymbol]() {
@@ -5828,7 +5877,7 @@ var AbstractQuery = class {
5828
5877
  limit: 1
5829
5878
  },
5830
5879
  {
5831
- ...this.#format,
5880
+ ...this.format,
5832
5881
  singular: true
5833
5882
  }
5834
5883
  );
@@ -5894,10 +5943,10 @@ var AbstractQuery = class {
5894
5943
  ]
5895
5944
  },
5896
5945
  {
5897
- ...this.#format,
5946
+ ...this.format,
5898
5947
  relationships: {
5899
- ...this.#format.relationships,
5900
- [relationship]: sq.#format
5948
+ ...this.format.relationships,
5949
+ [relationship]: sq.format
5901
5950
  }
5902
5951
  }
5903
5952
  );
@@ -5964,10 +6013,10 @@ var AbstractQuery = class {
5964
6013
  ]
5965
6014
  },
5966
6015
  {
5967
- ...this.#format,
6016
+ ...this.format,
5968
6017
  relationships: {
5969
- ...this.#format.relationships,
5970
- [relationship]: sq.#format
6018
+ ...this.format.relationships,
6019
+ [relationship]: sq.format
5971
6020
  }
5972
6021
  }
5973
6022
  );
@@ -5995,7 +6044,7 @@ var AbstractQuery = class {
5995
6044
  ...this.#ast,
5996
6045
  where: dnf(cond)
5997
6046
  },
5998
- this.#format
6047
+ this.format
5999
6048
  );
6000
6049
  }
6001
6050
  start(row, opts) {
@@ -6009,7 +6058,7 @@ var AbstractQuery = class {
6009
6058
  exclusive: !opts?.inclusive
6010
6059
  }
6011
6060
  },
6012
- this.#format
6061
+ this.format
6013
6062
  );
6014
6063
  }
6015
6064
  limit(limit) {
@@ -6026,7 +6075,7 @@ var AbstractQuery = class {
6026
6075
  ...this.#ast,
6027
6076
  limit
6028
6077
  },
6029
- this.#format
6078
+ this.format
6030
6079
  );
6031
6080
  }
6032
6081
  orderBy(field, direction) {
@@ -6037,7 +6086,7 @@ var AbstractQuery = class {
6037
6086
  ...this.#ast,
6038
6087
  orderBy: [...this.#ast.orderBy ?? [], [field, direction]]
6039
6088
  },
6040
- this.#format
6089
+ this.format
6041
6090
  );
6042
6091
  }
6043
6092
  _exists = (relationship, cb = (q) => q) => {
@@ -6372,6 +6421,7 @@ export {
6372
6421
  deepFreezeAllowUndefined,
6373
6422
  parse,
6374
6423
  test,
6424
+ readonly,
6375
6425
  readonlyObject,
6376
6426
  readonlyArray,
6377
6427
  valita_exports,
@@ -6448,6 +6498,7 @@ export {
6448
6498
  getClientGroupIDForClient,
6449
6499
  setClient,
6450
6500
  setClients,
6501
+ getNonCryptoRandomValues,
6451
6502
  h64,
6452
6503
  zip,
6453
6504
  rowSchema,
@@ -6465,11 +6516,15 @@ export {
6465
6516
  newQuery,
6466
6517
  staticParam,
6467
6518
  SUBQ_PREFIX,
6519
+ defaultFormat,
6468
6520
  AbstractQuery,
6469
6521
  clientToServer,
6470
6522
  serverToClient,
6523
+ inspectQueriesDownSchema,
6524
+ inspectDownMessageSchema,
6471
6525
  primaryKeySchema,
6472
6526
  primaryKeyValueRecordSchema,
6527
+ nanoid,
6473
6528
  GOT_QUERIES_KEY_PREFIX,
6474
6529
  ENTITIES_KEY_PREFIX,
6475
6530
  toDesiredQueriesKey,
@@ -6478,4 +6533,4 @@ export {
6478
6533
  toPrimaryKeyString,
6479
6534
  sourceNameFromKey
6480
6535
  };
6481
- //# sourceMappingURL=chunk-DSUPSGE4.js.map
6536
+ //# sourceMappingURL=chunk-NBZURO2P.js.map