@rocicorp/zero 0.4.2024103000 → 0.5.2024110200

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 (537) hide show
  1. package/out/{chunk-4UHYW2B5.js → chunk-INJ4WJHS.js} +111 -99
  2. package/out/chunk-INJ4WJHS.js.map +7 -0
  3. package/out/{chunk-RCVGGCMG.js → chunk-YCMA66NH.js} +2 -2
  4. package/out/{chunk-RCVGGCMG.js.map → chunk-YCMA66NH.js.map} +2 -2
  5. package/out/internal.js +1 -1
  6. package/out/react.js.map +2 -2
  7. package/out/shared/src/iterables.d.ts.map +1 -1
  8. package/out/shared/src/iterables.js +0 -5
  9. package/out/shared/src/iterables.js.map +1 -1
  10. package/out/shared/src/valita.d.ts +7 -0
  11. package/out/shared/src/valita.d.ts.map +1 -1
  12. package/out/shared/src/valita.js +28 -0
  13. package/out/shared/src/valita.js.map +1 -1
  14. package/out/solid.js +2 -2
  15. package/out/solid.js.map +2 -2
  16. package/out/zero-advanced/src/mod.d.ts +7 -7
  17. package/out/zero-advanced/src/mod.d.ts.map +1 -1
  18. package/out/zero-cache/src/config/config-query.d.ts +6 -6
  19. package/out/zero-cache/src/config/config-query.d.ts.map +1 -1
  20. package/out/zero-cache/src/config/config-query.js +1 -1
  21. package/out/zero-cache/src/config/config-query.js.map +1 -1
  22. package/out/zero-cache/src/config/define-config.d.ts +3 -3
  23. package/out/zero-cache/src/config/define-config.d.ts.map +1 -1
  24. package/out/zero-cache/src/config/define-config.js +1 -0
  25. package/out/zero-cache/src/config/define-config.js.map +1 -1
  26. package/out/zero-cache/src/config/refs.js +1 -1
  27. package/out/zero-cache/src/config/refs.js.map +1 -1
  28. package/out/zero-cache/src/config/zero-config.d.ts +38 -38
  29. package/out/zero-cache/src/db/statements.d.ts +1 -1
  30. package/out/zero-cache/src/services/mutagen/write-authorizer.js +2 -2
  31. package/out/zero-cache/src/services/mutagen/write-authorizer.js.map +1 -1
  32. package/out/zero-cache/src/services/replicator/incremental-sync.js +1 -1
  33. package/out/zero-cache/src/services/view-syncer/database-storage.d.ts +1 -1
  34. package/out/zero-cache/src/services/view-syncer/database-storage.d.ts.map +1 -1
  35. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +1 -1
  36. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
  37. package/out/zero-cache/src/services/view-syncer/schema/types.d.ts +5 -5
  38. package/out/zero-cache/src/types/lite.d.ts +1 -1
  39. package/out/zero-cache/src/types/lite.d.ts.map +1 -1
  40. package/out/zero-cache/src/types/lite.js +4 -0
  41. package/out/zero-cache/src/types/lite.js.map +1 -1
  42. package/out/zero-client/src/client/context.d.ts +4 -4
  43. package/out/zero-client/src/client/context.d.ts.map +1 -1
  44. package/out/zero-client/src/client/crud.d.ts +4 -4
  45. package/out/zero-client/src/client/crud.d.ts.map +1 -1
  46. package/out/zero-client/src/client/keys.d.ts +1 -1
  47. package/out/zero-client/src/client/keys.d.ts.map +1 -1
  48. package/out/zero-client/src/client/normalized-schema.d.ts +2 -2
  49. package/out/zero-client/src/client/normalized-schema.d.ts.map +1 -1
  50. package/out/zero-client/src/client/normalized-schema.js +1 -1
  51. package/out/zero-client/src/client/normalized-schema.js.map +1 -1
  52. package/out/zero-client/src/client/options.d.ts +1 -1
  53. package/out/zero-client/src/client/options.d.ts.map +1 -1
  54. package/out/zero-client/src/client/query-manager.d.ts +1 -1
  55. package/out/zero-client/src/client/query-manager.d.ts.map +1 -1
  56. package/out/zero-client/src/client/zero.d.ts +2 -9
  57. package/out/zero-client/src/client/zero.d.ts.map +1 -1
  58. package/out/zero-client/src/mod.d.ts +6 -7
  59. package/out/zero-client/src/mod.d.ts.map +1 -1
  60. package/out/zero-protocol/src/ast.d.ts +2 -2
  61. package/out/zero-protocol/src/ast.d.ts.map +1 -1
  62. package/out/zero-protocol/src/ast.js +2 -1
  63. package/out/zero-protocol/src/ast.js.map +1 -1
  64. package/out/zero-protocol/src/change-desired-queries.d.ts +2 -2
  65. package/out/zero-protocol/src/connect.d.ts +2 -2
  66. package/out/zero-protocol/src/data.d.ts +2 -2
  67. package/out/zero-protocol/src/data.d.ts.map +1 -1
  68. package/out/zero-protocol/src/data.js +2 -1
  69. package/out/zero-protocol/src/data.js.map +1 -1
  70. package/out/zero-protocol/src/down.d.ts +3 -3
  71. package/out/zero-protocol/src/poke.d.ts +6 -6
  72. package/out/zero-protocol/src/push.d.ts +21 -21
  73. package/out/zero-protocol/src/queries-patch.d.ts +3 -3
  74. package/out/zero-protocol/src/row-patch.d.ts +2 -2
  75. package/out/zero-protocol/src/up.d.ts +5 -5
  76. package/out/zero-react/src/use-query.d.ts +2 -1
  77. package/out/zero-react/src/use-query.d.ts.map +1 -1
  78. package/out/zero-react/src/use-zero.d.ts +2 -1
  79. package/out/zero-react/src/use-zero.d.ts.map +1 -1
  80. package/out/zero-schema/src/mod.d.ts +4 -0
  81. package/out/zero-schema/src/mod.d.ts.map +1 -0
  82. package/out/zero-schema/src/mod.js +4 -0
  83. package/out/zero-schema/src/mod.js.map +1 -0
  84. package/out/{zql/src/zql/query → zero-schema/src}/normalize-table-schema.d.ts +2 -3
  85. package/out/zero-schema/src/normalize-table-schema.d.ts.map +1 -0
  86. package/out/{zql/src/zql/query → zero-schema/src}/normalize-table-schema.js +3 -3
  87. package/out/zero-schema/src/normalize-table-schema.js.map +1 -0
  88. package/out/zero-schema/src/schema.d.ts +9 -0
  89. package/out/zero-schema/src/schema.d.ts.map +1 -0
  90. package/out/zero-schema/src/schema.js +4 -0
  91. package/out/zero-schema/src/schema.js.map +1 -0
  92. package/out/{zql/src/zql/query/schema.d.ts → zero-schema/src/table-schema.d.ts} +39 -3
  93. package/out/zero-schema/src/table-schema.d.ts.map +1 -0
  94. package/out/{zql/src/zql/query/schema.js → zero-schema/src/table-schema.js} +1 -1
  95. package/out/zero-schema/src/table-schema.js.map +1 -0
  96. package/out/zero-solid/src/create-zero.d.ts +2 -1
  97. package/out/zero-solid/src/create-zero.d.ts.map +1 -1
  98. package/out/zero.js +2 -6
  99. package/out/zql/src/{zql/builder → builder}/builder.d.ts +4 -4
  100. package/out/zql/src/builder/builder.d.ts.map +1 -0
  101. package/out/zql/src/{zql/builder → builder}/builder.js +7 -3
  102. package/out/zql/src/builder/builder.js.map +1 -0
  103. package/out/zql/src/builder/error.d.ts.map +1 -0
  104. package/out/zql/src/builder/error.js.map +1 -0
  105. package/out/zql/src/{zql/builder → builder}/filter.d.ts +2 -2
  106. package/out/zql/src/builder/filter.d.ts.map +1 -0
  107. package/out/zql/src/{zql/builder → builder}/filter.js +1 -1
  108. package/out/zql/src/builder/filter.js.map +1 -0
  109. package/out/zql/src/builder/like.d.ts.map +1 -0
  110. package/out/zql/src/{zql/builder → builder}/like.js +1 -1
  111. package/out/zql/src/builder/like.js.map +1 -0
  112. package/out/zql/src/ivm/array-view.d.ts.map +1 -0
  113. package/out/zql/src/{zql/ivm → ivm}/array-view.js +1 -1
  114. package/out/zql/src/ivm/array-view.js.map +1 -0
  115. package/out/zql/src/{zql/ivm → ivm}/change.d.ts +1 -1
  116. package/out/zql/src/ivm/change.d.ts.map +1 -0
  117. package/out/zql/src/ivm/change.js.map +1 -0
  118. package/out/zql/src/{zql/ivm → ivm}/data.d.ts +2 -2
  119. package/out/zql/src/ivm/data.d.ts.map +1 -0
  120. package/out/zql/src/{zql/ivm → ivm}/data.js +1 -1
  121. package/out/zql/src/ivm/data.js.map +1 -0
  122. package/out/zql/src/{zql/ivm → ivm}/fan-in.d.ts +6 -4
  123. package/out/zql/src/ivm/fan-in.d.ts.map +1 -0
  124. package/out/zql/src/{zql/ivm → ivm}/fan-in.js +11 -11
  125. package/out/zql/src/ivm/fan-in.js.map +1 -0
  126. package/out/zql/src/{zql/ivm → ivm}/fan-out.d.ts +3 -3
  127. package/out/zql/src/ivm/fan-out.d.ts.map +1 -0
  128. package/out/zql/src/{zql/ivm → ivm}/fan-out.js +7 -5
  129. package/out/zql/src/ivm/fan-out.js.map +1 -0
  130. package/out/zql/src/{zql/ivm → ivm}/filter.d.ts +4 -5
  131. package/out/zql/src/ivm/filter.d.ts.map +1 -0
  132. package/out/zql/src/{zql/ivm → ivm}/filter.js +9 -6
  133. package/out/zql/src/ivm/filter.js.map +1 -0
  134. package/out/zql/src/{zql/ivm → ivm}/join.d.ts +2 -2
  135. package/out/zql/src/ivm/join.d.ts.map +1 -0
  136. package/out/zql/src/{zql/ivm → ivm}/join.js +2 -2
  137. package/out/zql/src/ivm/join.js.map +1 -0
  138. package/out/zql/src/ivm/lookahead-iterator.d.ts.map +1 -0
  139. package/out/zql/src/ivm/lookahead-iterator.js.map +1 -0
  140. package/out/zql/src/{zql/ivm → ivm}/maybe-split-and-push-edit-change.d.ts +1 -1
  141. package/out/zql/src/ivm/maybe-split-and-push-edit-change.d.ts.map +1 -0
  142. package/out/zql/src/ivm/maybe-split-and-push-edit-change.js.map +1 -0
  143. package/out/zql/src/{zql/ivm → ivm}/memory-source.d.ts +6 -6
  144. package/out/zql/src/ivm/memory-source.d.ts.map +1 -0
  145. package/out/zql/src/{zql/ivm → ivm}/memory-source.js +12 -17
  146. package/out/zql/src/ivm/memory-source.js.map +1 -0
  147. package/out/zql/src/{zql/ivm → ivm}/memory-storage.d.ts +1 -1
  148. package/out/zql/src/ivm/memory-storage.d.ts.map +1 -0
  149. package/out/zql/src/{zql/ivm → ivm}/operator.d.ts +5 -5
  150. package/out/zql/src/ivm/operator.d.ts.map +1 -0
  151. package/out/zql/src/ivm/operator.js.map +1 -0
  152. package/out/zql/src/ivm/schema.d.ts +15 -0
  153. package/out/zql/src/ivm/schema.d.ts.map +1 -0
  154. package/out/zql/src/ivm/schema.js +2 -0
  155. package/out/zql/src/ivm/schema.js.map +1 -0
  156. package/out/zql/src/{zql/ivm → ivm}/skip.d.ts +3 -3
  157. package/out/zql/src/ivm/skip.d.ts.map +1 -0
  158. package/out/zql/src/{zql/ivm → ivm}/skip.js +1 -1
  159. package/out/zql/src/ivm/skip.js.map +1 -0
  160. package/out/zql/src/{zql/ivm → ivm}/source.d.ts +2 -2
  161. package/out/zql/src/ivm/source.d.ts.map +1 -0
  162. package/out/zql/src/ivm/source.js.map +1 -0
  163. package/out/zql/src/ivm/stream.d.ts.map +1 -0
  164. package/out/zql/src/ivm/stream.js.map +1 -0
  165. package/out/zql/src/{zql/ivm → ivm}/take.d.ts +2 -2
  166. package/out/zql/src/ivm/take.d.ts.map +1 -0
  167. package/out/zql/src/{zql/ivm → ivm}/take.js +2 -2
  168. package/out/zql/src/ivm/take.js.map +1 -0
  169. package/out/zql/src/ivm/view-apply-change.d.ts +5 -0
  170. package/out/zql/src/ivm/view-apply-change.d.ts.map +1 -0
  171. package/out/zql/src/{zql/ivm → ivm}/view-apply-change.js +2 -2
  172. package/out/zql/src/ivm/view-apply-change.js.map +1 -0
  173. package/out/zql/src/{zql/ivm → ivm}/view.d.ts +2 -2
  174. package/out/zql/src/ivm/view.d.ts.map +1 -0
  175. package/out/zql/src/{zql/ivm → ivm}/view.js.map +1 -1
  176. package/out/zql/src/query/auth-query.d.ts +20 -0
  177. package/out/zql/src/query/auth-query.d.ts.map +1 -0
  178. package/out/zql/src/query/auth-query.js +26 -0
  179. package/out/zql/src/query/auth-query.js.map +1 -0
  180. package/out/zql/src/query/escape-like.d.ts.map +1 -0
  181. package/out/zql/src/query/expression.d.ts +24 -0
  182. package/out/zql/src/query/expression.d.ts.map +1 -0
  183. package/out/zql/src/{zql/query → query}/expression.js +7 -1
  184. package/out/zql/src/query/expression.js.map +1 -0
  185. package/out/zql/src/{zql/query → query}/query-impl.d.ts +5 -5
  186. package/out/zql/src/query/query-impl.d.ts.map +1 -0
  187. package/out/zql/src/{zql/query → query}/query-impl.js +6 -4
  188. package/out/zql/src/query/query-impl.js.map +1 -0
  189. package/out/zql/src/{zql/query → query}/query-internal.d.ts +1 -1
  190. package/out/zql/src/query/query-internal.d.ts.map +1 -0
  191. package/out/zql/src/query/query-internal.js.map +1 -0
  192. package/out/zql/src/{zql/query → query}/query.d.ts +11 -26
  193. package/out/zql/src/query/query.d.ts.map +1 -0
  194. package/out/zql/src/query/query.js.map +1 -0
  195. package/out/zql/src/{zql/query → query}/typed-view.d.ts +1 -1
  196. package/out/zql/src/query/typed-view.d.ts.map +1 -0
  197. package/out/zql/src/query/typed-view.js.map +1 -0
  198. package/out/zqlite/src/db.d.ts +1 -1
  199. package/out/zqlite/src/db.js +1 -1
  200. package/out/zqlite/src/table-source.d.ts +14 -2
  201. package/out/zqlite/src/table-source.d.ts.map +1 -1
  202. package/out/zqlite/src/table-source.js +81 -40
  203. package/out/zqlite/src/table-source.js.map +1 -1
  204. package/package.json +11 -2
  205. package/out/chunk-4UHYW2B5.js.map +0 -7
  206. package/out/replicache/src/async-iterable-to-array.js +0 -8
  207. package/out/replicache/src/async-iterable-to-array.js.map +0 -1
  208. package/out/replicache/src/bg-interval.js +0 -38
  209. package/out/replicache/src/bg-interval.js.map +0 -1
  210. package/out/replicache/src/binary-search.js +0 -31
  211. package/out/replicache/src/binary-search.js.map +0 -1
  212. package/out/replicache/src/broadcast-channel.js +0 -29
  213. package/out/replicache/src/broadcast-channel.js.map +0 -1
  214. package/out/replicache/src/btree/diff.js +0 -6
  215. package/out/replicache/src/btree/diff.js.map +0 -1
  216. package/out/replicache/src/btree/node.js +0 -392
  217. package/out/replicache/src/btree/node.js.map +0 -1
  218. package/out/replicache/src/btree/read.js +0 -227
  219. package/out/replicache/src/btree/read.js.map +0 -1
  220. package/out/replicache/src/btree/splice.js +0 -79
  221. package/out/replicache/src/btree/splice.js.map +0 -1
  222. package/out/replicache/src/btree/write.js +0 -154
  223. package/out/replicache/src/btree/write.js.map +0 -1
  224. package/out/replicache/src/call-default-fetch.js +0 -37
  225. package/out/replicache/src/call-default-fetch.js.map +0 -1
  226. package/out/replicache/src/config.js +0 -13
  227. package/out/replicache/src/config.js.map +0 -1
  228. package/out/replicache/src/connection-loop-delegates.js +0 -30
  229. package/out/replicache/src/connection-loop-delegates.js.map +0 -1
  230. package/out/replicache/src/connection-loop.js +0 -268
  231. package/out/replicache/src/connection-loop.js.map +0 -1
  232. package/out/replicache/src/cookies.js +0 -41
  233. package/out/replicache/src/cookies.js.map +0 -1
  234. package/out/replicache/src/dag/chunk.js +0 -60
  235. package/out/replicache/src/dag/chunk.js.map +0 -1
  236. package/out/replicache/src/dag/gc.js +0 -126
  237. package/out/replicache/src/dag/gc.js.map +0 -1
  238. package/out/replicache/src/dag/key-type-enum.js +0 -6
  239. package/out/replicache/src/dag/key-type-enum.js.map +0 -1
  240. package/out/replicache/src/dag/key.js +0 -54
  241. package/out/replicache/src/dag/key.js.map +0 -1
  242. package/out/replicache/src/dag/lazy-store.js +0 -532
  243. package/out/replicache/src/dag/lazy-store.js.map +0 -1
  244. package/out/replicache/src/dag/store-impl.js +0 -175
  245. package/out/replicache/src/dag/store-impl.js.map +0 -1
  246. package/out/replicache/src/dag/store.js +0 -22
  247. package/out/replicache/src/dag/store.js.map +0 -1
  248. package/out/replicache/src/dag/visitor.js +0 -22
  249. package/out/replicache/src/dag/visitor.js.map +0 -1
  250. package/out/replicache/src/db/commit.js +0 -443
  251. package/out/replicache/src/db/commit.js.map +0 -1
  252. package/out/replicache/src/db/index-operation-enum.js +0 -4
  253. package/out/replicache/src/db/index-operation-enum.js.map +0 -1
  254. package/out/replicache/src/db/index.js +0 -170
  255. package/out/replicache/src/db/index.js.map +0 -1
  256. package/out/replicache/src/db/meta-type-enum.js +0 -7
  257. package/out/replicache/src/db/meta-type-enum.js.map +0 -1
  258. package/out/replicache/src/db/read.js +0 -59
  259. package/out/replicache/src/db/read.js.map +0 -1
  260. package/out/replicache/src/db/rebase.js +0 -56
  261. package/out/replicache/src/db/rebase.js.map +0 -1
  262. package/out/replicache/src/db/scan.js +0 -2
  263. package/out/replicache/src/db/scan.js.map +0 -1
  264. package/out/replicache/src/db/write.js +0 -260
  265. package/out/replicache/src/db/write.js.map +0 -1
  266. package/out/replicache/src/error-responses.js +0 -30
  267. package/out/replicache/src/error-responses.js.map +0 -1
  268. package/out/replicache/src/filter-async-iterable.js +0 -15
  269. package/out/replicache/src/filter-async-iterable.js.map +0 -1
  270. package/out/replicache/src/format-version-enum.js +0 -9
  271. package/out/replicache/src/format-version-enum.js.map +0 -1
  272. package/out/replicache/src/format-version.js +0 -8
  273. package/out/replicache/src/format-version.js.map +0 -1
  274. package/out/replicache/src/frozen-json.js +0 -151
  275. package/out/replicache/src/frozen-json.js.map +0 -1
  276. package/out/replicache/src/get-default-puller.js +0 -74
  277. package/out/replicache/src/get-default-puller.js.map +0 -1
  278. package/out/replicache/src/get-default-pusher.js +0 -36
  279. package/out/replicache/src/get-default-pusher.js.map +0 -1
  280. package/out/replicache/src/hash.js +0 -73
  281. package/out/replicache/src/hash.js.map +0 -1
  282. package/out/replicache/src/http-request-info.js +0 -7
  283. package/out/replicache/src/http-request-info.js.map +0 -1
  284. package/out/replicache/src/impl.js +0 -2
  285. package/out/replicache/src/impl.js.map +0 -1
  286. package/out/replicache/src/index-defs.js +0 -28
  287. package/out/replicache/src/index-defs.js.map +0 -1
  288. package/out/replicache/src/invoke-kind-enum.js +0 -4
  289. package/out/replicache/src/invoke-kind-enum.js.map +0 -1
  290. package/out/replicache/src/iterable-union.js +0 -5
  291. package/out/replicache/src/iterable-union.js.map +0 -1
  292. package/out/replicache/src/kv/idb-store-with-mem-fallback.js +0 -93
  293. package/out/replicache/src/kv/idb-store-with-mem-fallback.js.map +0 -1
  294. package/out/replicache/src/kv/idb-store.js +0 -179
  295. package/out/replicache/src/kv/idb-store.js.map +0 -1
  296. package/out/replicache/src/kv/mem-store.js +0 -61
  297. package/out/replicache/src/kv/mem-store.js.map +0 -1
  298. package/out/replicache/src/kv/read-impl.js +0 -23
  299. package/out/replicache/src/kv/read-impl.js.map +0 -1
  300. package/out/replicache/src/kv/store.js +0 -2
  301. package/out/replicache/src/kv/store.js.map +0 -1
  302. package/out/replicache/src/kv/write-impl-base.js +0 -48
  303. package/out/replicache/src/kv/write-impl-base.js.map +0 -1
  304. package/out/replicache/src/kv/write-impl.js +0 -25
  305. package/out/replicache/src/kv/write-impl.js.map +0 -1
  306. package/out/replicache/src/lazy.js +0 -10
  307. package/out/replicache/src/lazy.js.map +0 -1
  308. package/out/replicache/src/log-options.js +0 -13
  309. package/out/replicache/src/log-options.js.map +0 -1
  310. package/out/replicache/src/merge-async-iterables.js +0 -61
  311. package/out/replicache/src/merge-async-iterables.js.map +0 -1
  312. package/out/replicache/src/mod.js +0 -14
  313. package/out/replicache/src/mod.js.map +0 -1
  314. package/out/replicache/src/mutation-recovery.js +0 -439
  315. package/out/replicache/src/mutation-recovery.js.map +0 -1
  316. package/out/replicache/src/new-client-channel.js +0 -77
  317. package/out/replicache/src/new-client-channel.js.map +0 -1
  318. package/out/replicache/src/on-persist-channel.js +0 -33
  319. package/out/replicache/src/on-persist-channel.js.map +0 -1
  320. package/out/replicache/src/patch-operation.js +0 -37
  321. package/out/replicache/src/patch-operation.js.map +0 -1
  322. package/out/replicache/src/pending-mutations.js +0 -18
  323. package/out/replicache/src/pending-mutations.js.map +0 -1
  324. package/out/replicache/src/persist/client-gc.js +0 -38
  325. package/out/replicache/src/persist/client-gc.js.map +0 -1
  326. package/out/replicache/src/persist/client-group-gc.js +0 -38
  327. package/out/replicache/src/persist/client-group-gc.js.map +0 -1
  328. package/out/replicache/src/persist/client-groups.js +0 -180
  329. package/out/replicache/src/persist/client-groups.js.map +0 -1
  330. package/out/replicache/src/persist/clients.js +0 -390
  331. package/out/replicache/src/persist/clients.js.map +0 -1
  332. package/out/replicache/src/persist/collect-idb-databases.js +0 -174
  333. package/out/replicache/src/persist/collect-idb-databases.js.map +0 -1
  334. package/out/replicache/src/persist/gather-mem-only-visitor.js +0 -25
  335. package/out/replicache/src/persist/gather-mem-only-visitor.js.map +0 -1
  336. package/out/replicache/src/persist/gather-not-cached-visitor.js +0 -35
  337. package/out/replicache/src/persist/gather-not-cached-visitor.js.map +0 -1
  338. package/out/replicache/src/persist/heartbeat.js +0 -37
  339. package/out/replicache/src/persist/heartbeat.js.map +0 -1
  340. package/out/replicache/src/persist/idb-databases-store-db-name.js +0 -18
  341. package/out/replicache/src/persist/idb-databases-store-db-name.js.map +0 -1
  342. package/out/replicache/src/persist/idb-databases-store.js +0 -90
  343. package/out/replicache/src/persist/idb-databases-store.js.map +0 -1
  344. package/out/replicache/src/persist/make-client-id.js +0 -13
  345. package/out/replicache/src/persist/make-client-id.js.map +0 -1
  346. package/out/replicache/src/persist/persist.js +0 -132
  347. package/out/replicache/src/persist/persist.js.map +0 -1
  348. package/out/replicache/src/persist/refresh.js +0 -147
  349. package/out/replicache/src/persist/refresh.js.map +0 -1
  350. package/out/replicache/src/process-scheduler.js +0 -93
  351. package/out/replicache/src/process-scheduler.js.map +0 -1
  352. package/out/replicache/src/puller.js +0 -2
  353. package/out/replicache/src/puller.js.map +0 -1
  354. package/out/replicache/src/pusher.js +0 -32
  355. package/out/replicache/src/pusher.js.map +0 -1
  356. package/out/replicache/src/replicache-impl.js +0 -1007
  357. package/out/replicache/src/replicache-impl.js.map +0 -1
  358. package/out/replicache/src/replicache-options.js +0 -2
  359. package/out/replicache/src/replicache-options.js.map +0 -1
  360. package/out/replicache/src/replicache.js +0 -387
  361. package/out/replicache/src/replicache.js.map +0 -1
  362. package/out/replicache/src/request-idle.js +0 -15
  363. package/out/replicache/src/request-idle.js.map +0 -1
  364. package/out/replicache/src/scan-iterator.js +0 -202
  365. package/out/replicache/src/scan-iterator.js.map +0 -1
  366. package/out/replicache/src/scan-options.js +0 -45
  367. package/out/replicache/src/scan-options.js.map +0 -1
  368. package/out/replicache/src/set-interval-with-signal.js +0 -7
  369. package/out/replicache/src/set-interval-with-signal.js.map +0 -1
  370. package/out/replicache/src/size-of-value.js +0 -77
  371. package/out/replicache/src/size-of-value.js.map +0 -1
  372. package/out/replicache/src/subscriptions.js +0 -357
  373. package/out/replicache/src/subscriptions.js.map +0 -1
  374. package/out/replicache/src/sync/diff.js +0 -75
  375. package/out/replicache/src/sync/diff.js.map +0 -1
  376. package/out/replicache/src/sync/handle-pull-response-result-type-enum.js +0 -5
  377. package/out/replicache/src/sync/handle-pull-response-result-type-enum.js.map +0 -1
  378. package/out/replicache/src/sync/ids.js +0 -4
  379. package/out/replicache/src/sync/ids.js.map +0 -1
  380. package/out/replicache/src/sync/patch.js +0 -41
  381. package/out/replicache/src/sync/patch.js.map +0 -1
  382. package/out/replicache/src/sync/pull-error.js +0 -16
  383. package/out/replicache/src/sync/pull-error.js.map +0 -1
  384. package/out/replicache/src/sync/pull.js +0 -375
  385. package/out/replicache/src/sync/pull.js.map +0 -1
  386. package/out/replicache/src/sync/push.js +0 -141
  387. package/out/replicache/src/sync/push.js.map +0 -1
  388. package/out/replicache/src/sync/request-id.js +0 -31
  389. package/out/replicache/src/sync/request-id.js.map +0 -1
  390. package/out/replicache/src/sync/sync-head-name.js +0 -2
  391. package/out/replicache/src/sync/sync-head-name.js.map +0 -1
  392. package/out/replicache/src/test-license-key.js +0 -3
  393. package/out/replicache/src/test-license-key.js.map +0 -1
  394. package/out/replicache/src/to-error.js +0 -7
  395. package/out/replicache/src/to-error.js.map +0 -1
  396. package/out/replicache/src/transaction-closed-error.js +0 -17
  397. package/out/replicache/src/transaction-closed-error.js.map +0 -1
  398. package/out/replicache/src/transactions.js +0 -144
  399. package/out/replicache/src/transactions.js.map +0 -1
  400. package/out/replicache/src/types.js +0 -2
  401. package/out/replicache/src/types.js.map +0 -1
  402. package/out/replicache/src/version.js +0 -6
  403. package/out/replicache/src/version.js.map +0 -1
  404. package/out/replicache/src/with-transactions.js +0 -28
  405. package/out/replicache/src/with-transactions.js.map +0 -1
  406. package/out/shared/src/browser-env.js +0 -14
  407. package/out/shared/src/browser-env.js.map +0 -1
  408. package/out/shared/src/document-visible.js +0 -76
  409. package/out/shared/src/document-visible.js.map +0 -1
  410. package/out/shared/src/navigator.js +0 -3
  411. package/out/shared/src/navigator.js.map +0 -1
  412. package/out/shared/src/random-uint64.js +0 -8
  413. package/out/shared/src/random-uint64.js.map +0 -1
  414. package/out/shared/src/types.js +0 -2
  415. package/out/shared/src/types.js.map +0 -1
  416. package/out/zero-client/src/client/context.js +0 -113
  417. package/out/zero-client/src/client/context.js.map +0 -1
  418. package/out/zero-client/src/client/crud.js +0 -181
  419. package/out/zero-client/src/client/crud.js.map +0 -1
  420. package/out/zero-client/src/client/enable-analytics.js +0 -21
  421. package/out/zero-client/src/client/enable-analytics.js.map +0 -1
  422. package/out/zero-client/src/client/http-string.js +0 -14
  423. package/out/zero-client/src/client/http-string.js.map +0 -1
  424. package/out/zero-client/src/client/keys.js +0 -32
  425. package/out/zero-client/src/client/keys.js.map +0 -1
  426. package/out/zero-client/src/client/log-options.js +0 -57
  427. package/out/zero-client/src/client/log-options.js.map +0 -1
  428. package/out/zero-client/src/client/metrics.js +0 -268
  429. package/out/zero-client/src/client/metrics.js.map +0 -1
  430. package/out/zero-client/src/client/options.js +0 -2
  431. package/out/zero-client/src/client/options.js.map +0 -1
  432. package/out/zero-client/src/client/query-manager.js +0 -146
  433. package/out/zero-client/src/client/query-manager.js.map +0 -1
  434. package/out/zero-client/src/client/reload-error-handler.js +0 -23
  435. package/out/zero-client/src/client/reload-error-handler.js.map +0 -1
  436. package/out/zero-client/src/client/replicache-types.js +0 -2
  437. package/out/zero-client/src/client/replicache-types.js.map +0 -1
  438. package/out/zero-client/src/client/server-error.js +0 -22
  439. package/out/zero-client/src/client/server-error.js.map +0 -1
  440. package/out/zero-client/src/client/server-option.js +0 -37
  441. package/out/zero-client/src/client/server-option.js.map +0 -1
  442. package/out/zero-client/src/client/version.js +0 -6
  443. package/out/zero-client/src/client/version.js.map +0 -1
  444. package/out/zero-client/src/client/zero-poke-handler.js +0 -240
  445. package/out/zero-client/src/client/zero-poke-handler.js.map +0 -1
  446. package/out/zero-client/src/client/zero.js +0 -1233
  447. package/out/zero-client/src/client/zero.js.map +0 -1
  448. package/out/zero-client/src/mod.js +0 -7
  449. package/out/zero-client/src/mod.js.map +0 -1
  450. package/out/zero-client/src/util/nanoid.js +0 -34
  451. package/out/zero-client/src/util/nanoid.js.map +0 -1
  452. package/out/zero-client/src/util/socket.js +0 -4
  453. package/out/zero-client/src/util/socket.js.map +0 -1
  454. package/out/zql/src/zql/builder/builder.d.ts.map +0 -1
  455. package/out/zql/src/zql/builder/builder.js.map +0 -1
  456. package/out/zql/src/zql/builder/error.d.ts.map +0 -1
  457. package/out/zql/src/zql/builder/error.js.map +0 -1
  458. package/out/zql/src/zql/builder/filter.d.ts.map +0 -1
  459. package/out/zql/src/zql/builder/filter.js.map +0 -1
  460. package/out/zql/src/zql/builder/like.d.ts.map +0 -1
  461. package/out/zql/src/zql/builder/like.js.map +0 -1
  462. package/out/zql/src/zql/ivm/array-view.d.ts.map +0 -1
  463. package/out/zql/src/zql/ivm/array-view.js.map +0 -1
  464. package/out/zql/src/zql/ivm/change.d.ts.map +0 -1
  465. package/out/zql/src/zql/ivm/change.js.map +0 -1
  466. package/out/zql/src/zql/ivm/data.d.ts.map +0 -1
  467. package/out/zql/src/zql/ivm/data.js.map +0 -1
  468. package/out/zql/src/zql/ivm/fan-in.d.ts.map +0 -1
  469. package/out/zql/src/zql/ivm/fan-in.js.map +0 -1
  470. package/out/zql/src/zql/ivm/fan-out.d.ts.map +0 -1
  471. package/out/zql/src/zql/ivm/fan-out.js.map +0 -1
  472. package/out/zql/src/zql/ivm/filter.d.ts.map +0 -1
  473. package/out/zql/src/zql/ivm/filter.js.map +0 -1
  474. package/out/zql/src/zql/ivm/join.d.ts.map +0 -1
  475. package/out/zql/src/zql/ivm/join.js.map +0 -1
  476. package/out/zql/src/zql/ivm/lookahead-iterator.d.ts.map +0 -1
  477. package/out/zql/src/zql/ivm/lookahead-iterator.js.map +0 -1
  478. package/out/zql/src/zql/ivm/maybe-split-and-push-edit-change.d.ts.map +0 -1
  479. package/out/zql/src/zql/ivm/maybe-split-and-push-edit-change.js.map +0 -1
  480. package/out/zql/src/zql/ivm/memory-source.d.ts.map +0 -1
  481. package/out/zql/src/zql/ivm/memory-source.js.map +0 -1
  482. package/out/zql/src/zql/ivm/memory-storage.d.ts.map +0 -1
  483. package/out/zql/src/zql/ivm/memory-storage.js +0 -33
  484. package/out/zql/src/zql/ivm/memory-storage.js.map +0 -1
  485. package/out/zql/src/zql/ivm/operator.d.ts.map +0 -1
  486. package/out/zql/src/zql/ivm/operator.js.map +0 -1
  487. package/out/zql/src/zql/ivm/schema.d.ts +0 -29
  488. package/out/zql/src/zql/ivm/schema.d.ts.map +0 -1
  489. package/out/zql/src/zql/ivm/schema.js +0 -3
  490. package/out/zql/src/zql/ivm/schema.js.map +0 -1
  491. package/out/zql/src/zql/ivm/skip.d.ts.map +0 -1
  492. package/out/zql/src/zql/ivm/skip.js.map +0 -1
  493. package/out/zql/src/zql/ivm/source.d.ts.map +0 -1
  494. package/out/zql/src/zql/ivm/source.js.map +0 -1
  495. package/out/zql/src/zql/ivm/stream.d.ts.map +0 -1
  496. package/out/zql/src/zql/ivm/stream.js.map +0 -1
  497. package/out/zql/src/zql/ivm/take.d.ts.map +0 -1
  498. package/out/zql/src/zql/ivm/take.js.map +0 -1
  499. package/out/zql/src/zql/ivm/view-apply-change.d.ts +0 -5
  500. package/out/zql/src/zql/ivm/view-apply-change.d.ts.map +0 -1
  501. package/out/zql/src/zql/ivm/view-apply-change.js.map +0 -1
  502. package/out/zql/src/zql/ivm/view.d.ts.map +0 -1
  503. package/out/zql/src/zql/query/escape-like.d.ts.map +0 -1
  504. package/out/zql/src/zql/query/escape-like.js +0 -4
  505. package/out/zql/src/zql/query/escape-like.js.map +0 -1
  506. package/out/zql/src/zql/query/expression.d.ts +0 -25
  507. package/out/zql/src/zql/query/expression.d.ts.map +0 -1
  508. package/out/zql/src/zql/query/expression.js.map +0 -1
  509. package/out/zql/src/zql/query/normalize-table-schema.d.ts.map +0 -1
  510. package/out/zql/src/zql/query/normalize-table-schema.js.map +0 -1
  511. package/out/zql/src/zql/query/query-impl.d.ts.map +0 -1
  512. package/out/zql/src/zql/query/query-impl.js.map +0 -1
  513. package/out/zql/src/zql/query/query-internal.d.ts.map +0 -1
  514. package/out/zql/src/zql/query/query-internal.js.map +0 -1
  515. package/out/zql/src/zql/query/query.d.ts.map +0 -1
  516. package/out/zql/src/zql/query/query.js.map +0 -1
  517. package/out/zql/src/zql/query/schema.d.ts.map +0 -1
  518. package/out/zql/src/zql/query/schema.js.map +0 -1
  519. package/out/zql/src/zql/query/typed-view.d.ts.map +0 -1
  520. package/out/zql/src/zql/query/typed-view.js.map +0 -1
  521. /package/out/zql/src/{zql/builder → builder}/error.d.ts +0 -0
  522. /package/out/zql/src/{zql/builder → builder}/error.js +0 -0
  523. /package/out/zql/src/{zql/builder → builder}/like.d.ts +0 -0
  524. /package/out/zql/src/{zql/ivm → ivm}/array-view.d.ts +0 -0
  525. /package/out/zql/src/{zql/ivm → ivm}/change.js +0 -0
  526. /package/out/zql/src/{zql/ivm → ivm}/lookahead-iterator.d.ts +0 -0
  527. /package/out/zql/src/{zql/ivm → ivm}/lookahead-iterator.js +0 -0
  528. /package/out/zql/src/{zql/ivm → ivm}/maybe-split-and-push-edit-change.js +0 -0
  529. /package/out/zql/src/{zql/ivm → ivm}/operator.js +0 -0
  530. /package/out/zql/src/{zql/ivm → ivm}/source.js +0 -0
  531. /package/out/zql/src/{zql/ivm → ivm}/stream.d.ts +0 -0
  532. /package/out/zql/src/{zql/ivm → ivm}/stream.js +0 -0
  533. /package/out/zql/src/{zql/ivm → ivm}/view.js +0 -0
  534. /package/out/zql/src/{zql/query → query}/escape-like.d.ts +0 -0
  535. /package/out/zql/src/{zql/query → query}/query-internal.js +0 -0
  536. /package/out/zql/src/{zql/query → query}/query.js +0 -0
  537. /package/out/zql/src/{zql/query → query}/typed-view.js +0 -0
@@ -1,439 +0,0 @@
1
- import { assert, assertNotUndefined } from '../../shared/src/asserts.js';
2
- import { throwChunkHasher } from './dag/chunk.js';
3
- import { LazyStore } from './dag/lazy-store.js';
4
- import { StoreImpl } from './dag/store-impl.js';
5
- import { DEFAULT_HEAD_NAME } from './db/commit.js';
6
- import { isClientStateNotFoundResponse, isVersionNotSupportedResponse, } from './error-responses.js';
7
- import * as FormatVersion from './format-version-enum.js';
8
- import { parseReplicacheFormatVersion as parseFormatVersion } from './format-version.js';
9
- import { assertHash, newRandomHash } from './hash.js';
10
- import { getClientGroups, disableClientGroup as persistDisableClientGroup, setClientGroups, } from './persist/client-groups.js';
11
- import { assertClientV4, getClients, setClients, } from './persist/clients.js';
12
- import { beginPullV0, beginPullV1 } from './sync/pull.js';
13
- import { PUSH_VERSION_DD31, PUSH_VERSION_SDD, push } from './sync/push.js';
14
- import { withRead, withWrite } from './with-transactions.js';
15
- const MUTATION_RECOVERY_LAZY_STORE_SOURCE_CHUNK_CACHE_SIZE_LIMIT = 10 * 2 ** 20; // 10 MB
16
- export class MutationRecovery {
17
- #recoveringMutations = false;
18
- #options;
19
- constructor(options) {
20
- this.#options = options;
21
- }
22
- async recoverMutations(preReadClientMap, ready, perdag, idbDatabase, idbDatabases, createStore) {
23
- const { lc, enableMutationRecovery, isPushDisabled, delegate } = this.#options;
24
- if (!enableMutationRecovery ||
25
- this.#recoveringMutations ||
26
- !delegate.online ||
27
- delegate.closed ||
28
- isPushDisabled()) {
29
- return false;
30
- }
31
- const stepDescription = 'Recovering mutations.';
32
- lc.debug?.('Start:', stepDescription);
33
- try {
34
- this.#recoveringMutations = true;
35
- await ready;
36
- await recoverMutationsFromPerdag(idbDatabase, this.#options, perdag, preReadClientMap);
37
- for (const database of Object.values(await idbDatabases.getDatabases())) {
38
- if (delegate.closed) {
39
- lc.debug?.('Exiting early due to close:', stepDescription);
40
- return true;
41
- }
42
- if (database.replicacheName === delegate.name &&
43
- database.name !== delegate.idbName) {
44
- switch (database.replicacheFormatVersion) {
45
- case FormatVersion.SDD:
46
- case FormatVersion.DD31:
47
- case FormatVersion.V6:
48
- case FormatVersion.V7:
49
- await recoverMutationsWithNewPerdag(database, this.#options, undefined, createStore);
50
- }
51
- }
52
- }
53
- }
54
- catch (e) {
55
- logMutationRecoveryError(e, lc, stepDescription, delegate);
56
- }
57
- finally {
58
- lc.debug?.('End:', stepDescription);
59
- this.#recoveringMutations = false;
60
- }
61
- return true;
62
- }
63
- }
64
- function logMutationRecoveryError(e, lc, stepDescription, closedDelegate) {
65
- if (closedDelegate.closed) {
66
- lc.debug?.(`Mutation recovery error likely due to close during:\n${stepDescription}\nError:\n`, e);
67
- }
68
- else {
69
- lc.error?.(`Mutation recovery error during:\n${stepDescription}\nError:\n`, e);
70
- }
71
- }
72
- /**
73
- * @returns When mutations are recovered the resulting updated client map.
74
- * Otherwise undefined, which can be because there were no mutations to
75
- * recover, or because an error occurred when trying to recover the
76
- * mutations.
77
- */
78
- async function recoverMutationsOfClientV4(client, clientID, perdag, database, options, formatVersion) {
79
- assert(database.replicacheFormatVersion === FormatVersion.SDD);
80
- assertClientV4(client);
81
- const { delegate, lc, wrapInOnlineCheck, wrapInReauthRetries, isPushDisabled, isPullDisabled, } = options;
82
- const selfClientID = delegate.clientID;
83
- if (selfClientID === clientID) {
84
- return;
85
- }
86
- if (client.lastServerAckdMutationID >= client.mutationID) {
87
- return;
88
- }
89
- const stepDescription = `Recovering mutations for ${clientID}.`;
90
- lc.debug?.('Start:', stepDescription);
91
- const lazyDagForOtherClient = new LazyStore(perdag, MUTATION_RECOVERY_LAZY_STORE_SOURCE_CHUNK_CACHE_SIZE_LIMIT, throwChunkHasher, assertHash);
92
- try {
93
- await withWrite(lazyDagForOtherClient, write => write.setHead(DEFAULT_HEAD_NAME, client.headHash));
94
- if (isPushDisabled()) {
95
- lc.debug?.(`Cannot recover mutations for client ${clientID} because push is disabled.`);
96
- return;
97
- }
98
- const { pusher } = delegate;
99
- const pushDescription = 'recoveringMutationsPush';
100
- const pushSucceeded = await wrapInOnlineCheck(async () => {
101
- const { result: pusherResult } = await wrapInReauthRetries(async (requestID, requestLc) => {
102
- assertNotUndefined(lazyDagForOtherClient);
103
- const pusherResult = await push(requestID, lazyDagForOtherClient, requestLc, await delegate.profileID, undefined, clientID, pusher, database.schemaVersion, PUSH_VERSION_SDD);
104
- return {
105
- result: pusherResult,
106
- httpRequestInfo: pusherResult?.httpRequestInfo,
107
- };
108
- }, pushDescription, lc);
109
- return (!!pusherResult && pusherResult.httpRequestInfo.httpStatusCode === 200);
110
- }, pushDescription);
111
- if (!pushSucceeded) {
112
- lc.debug?.(`Failed to recover mutations for client ${clientID} due to a push error.`);
113
- return;
114
- }
115
- if (isPullDisabled()) {
116
- lc.debug?.(`Cannot confirm mutations were recovered for client ${clientID} ` +
117
- `because pull is disabled.`);
118
- return;
119
- }
120
- const { puller } = delegate;
121
- const pullDescription = 'recoveringMutationsPull';
122
- let pullResponse;
123
- const pullSucceeded = await wrapInOnlineCheck(async () => {
124
- const { result: beginPullResponse } = await wrapInReauthRetries(async (requestID, requestLc) => {
125
- const beginPullResponse = await beginPullV0(await delegate.profileID, clientID, database.schemaVersion, puller, requestID, lazyDagForOtherClient, formatVersion, requestLc, false);
126
- return {
127
- result: beginPullResponse,
128
- httpRequestInfo: beginPullResponse.httpRequestInfo,
129
- };
130
- }, pullDescription, lc);
131
- ({ pullResponse } = beginPullResponse);
132
- return (!!pullResponse &&
133
- beginPullResponse.httpRequestInfo.httpStatusCode === 200);
134
- }, pullDescription);
135
- if (!pullSucceeded) {
136
- lc.debug?.(`Failed to recover mutations for client ${clientID} due to a pull error.`);
137
- return;
138
- }
139
- if (lc.debug && pullResponse) {
140
- if (isClientStateNotFoundResponse(pullResponse)) {
141
- lc.debug?.(`Client ${selfClientID} cannot recover mutations for client ` +
142
- `${clientID}. The client no longer exists on the server.`);
143
- }
144
- else if (isVersionNotSupportedResponse(pullResponse)) {
145
- lc.debug?.(`Version is not supported on the server. versionType: ${pullResponse.versionType}. Cannot recover mutations for client ${clientID}.`);
146
- }
147
- else {
148
- lc.debug?.(`Client ${selfClientID} recovered mutations for client ` +
149
- `${clientID}. Details`, {
150
- mutationID: client.mutationID,
151
- lastServerAckdMutationID: client.lastServerAckdMutationID,
152
- lastMutationID: pullResponse.lastMutationID,
153
- });
154
- }
155
- }
156
- return await withWrite(perdag, async (dagWrite) => {
157
- const clients = await getClients(dagWrite);
158
- const clientToUpdate = clients.get(clientID);
159
- if (!clientToUpdate) {
160
- return clients;
161
- }
162
- assertClientV4(clientToUpdate);
163
- const setNewClients = async (newClients) => {
164
- await setClients(newClients, dagWrite);
165
- return newClients;
166
- };
167
- if (isClientStateNotFoundResponse(pullResponse) ||
168
- // Even though SDD did not have VersionNotSupported we can still get
169
- // this if the server was upgraded to handle this. It seems better to
170
- // delete the client at this point.
171
- isVersionNotSupportedResponse(pullResponse)) {
172
- const newClients = new Map(clients);
173
- newClients.delete(clientID);
174
- return setNewClients(newClients);
175
- }
176
- assert(pullResponse);
177
- if (clientToUpdate.lastServerAckdMutationID >= pullResponse.lastMutationID) {
178
- return clients;
179
- }
180
- const newClients = new Map(clients).set(clientID, {
181
- ...clientToUpdate,
182
- lastServerAckdMutationID: pullResponse.lastMutationID,
183
- });
184
- return setNewClients(newClients);
185
- });
186
- }
187
- catch (e) {
188
- logMutationRecoveryError(e, lc, stepDescription, delegate);
189
- }
190
- finally {
191
- await lazyDagForOtherClient.close();
192
- lc.debug?.('End:', stepDescription);
193
- }
194
- return;
195
- }
196
- async function recoverMutationsWithNewPerdag(database, options, preReadClientMap, createStore) {
197
- const perKvStore = createStore(database.name);
198
- const perdag = new StoreImpl(perKvStore, newRandomHash, assertHash);
199
- try {
200
- await recoverMutationsFromPerdag(database, options, perdag, preReadClientMap);
201
- }
202
- finally {
203
- await perdag.close();
204
- }
205
- }
206
- function recoverMutationsFromPerdag(database, options, perdag, preReadClientMap) {
207
- if (database.replicacheFormatVersion >= FormatVersion.DD31) {
208
- return recoverMutationsFromPerdagDD31(database, options, perdag);
209
- }
210
- return recoverMutationsFromPerdagSDD(database, options, perdag, preReadClientMap);
211
- }
212
- async function recoverMutationsFromPerdagSDD(database, options, perdag, preReadClientMap) {
213
- const { delegate, lc } = options;
214
- const stepDescription = `Recovering mutations from db ${database.name}.`;
215
- lc.debug?.('Start:', stepDescription);
216
- try {
217
- const formatVersion = parseFormatVersion(database.replicacheFormatVersion);
218
- let clientMap = preReadClientMap || (await withRead(perdag, read => getClients(read)));
219
- const clientIDsVisited = new Set();
220
- while (clientMap) {
221
- let newClientMap;
222
- for (const [clientID, client] of clientMap) {
223
- if (delegate.closed) {
224
- lc.debug?.('Exiting early due to close:', stepDescription);
225
- return;
226
- }
227
- if (!clientIDsVisited.has(clientID)) {
228
- clientIDsVisited.add(clientID);
229
- newClientMap = await recoverMutationsOfClientV4(client, clientID, perdag, database, options, formatVersion);
230
- if (newClientMap) {
231
- break;
232
- }
233
- }
234
- }
235
- clientMap = newClientMap;
236
- }
237
- }
238
- catch (e) {
239
- logMutationRecoveryError(e, lc, stepDescription, delegate);
240
- }
241
- lc.debug?.('End:', stepDescription);
242
- }
243
- async function recoverMutationsFromPerdagDD31(database, options, perdag) {
244
- const { delegate, lc } = options;
245
- const stepDescription = `Recovering mutations from db ${database.name}.`;
246
- lc.debug?.('Start:', stepDescription);
247
- try {
248
- const formatVersion = parseFormatVersion(database.replicacheFormatVersion);
249
- let clientGroups = await withRead(perdag, read => getClientGroups(read));
250
- const clientGroupIDsVisited = new Set();
251
- while (clientGroups) {
252
- let newClientGroups;
253
- for (const [clientGroupID, clientGroup] of clientGroups) {
254
- if (delegate.closed) {
255
- lc.debug?.('Exiting early due to close:', stepDescription);
256
- return;
257
- }
258
- if (!clientGroupIDsVisited.has(clientGroupID)) {
259
- clientGroupIDsVisited.add(clientGroupID);
260
- newClientGroups = await recoverMutationsOfClientGroupDD31(clientGroup, clientGroupID, perdag, database, options, formatVersion);
261
- if (newClientGroups) {
262
- break;
263
- }
264
- }
265
- }
266
- clientGroups = newClientGroups;
267
- }
268
- }
269
- catch (e) {
270
- logMutationRecoveryError(e, lc, stepDescription, delegate);
271
- }
272
- lc.debug?.('End:', stepDescription);
273
- }
274
- function isResponseThatShouldDisableClientGroup(response) {
275
- return (isClientStateNotFoundResponse(response) ||
276
- isVersionNotSupportedResponse(response));
277
- }
278
- async function disableClientGroup(lc, selfClientGroupID, clientGroupID, response, perdag) {
279
- if (isClientStateNotFoundResponse(response)) {
280
- lc.debug?.(`Client group ${selfClientGroupID} cannot recover mutations for client group ${clientGroupID}. The client group is unknown on the server. Marking it as disabled.`);
281
- }
282
- else if (isVersionNotSupportedResponse(response)) {
283
- lc.debug?.(`Client group ${selfClientGroupID} cannot recover mutations for client group ${clientGroupID}. The client group's version is not supported on the server. versionType: ${response.versionType}. Marking it as disabled.`);
284
- }
285
- // The client group is not the main client group so we do not need the
286
- // Replicache instance to update its internal _isClientGroupDisabled
287
- // property.
288
- await withWrite(perdag, perdagWrite => persistDisableClientGroup(clientGroupID, perdagWrite));
289
- }
290
- /**
291
- * @returns When mutations are recovered the resulting updated client group map.
292
- * Otherwise undefined, which can be because there were no mutations to
293
- * recover, or because an error occurred when trying to recover the mutations.
294
- */
295
- async function recoverMutationsOfClientGroupDD31(clientGroup, clientGroupID, perdag, database, options, formatVersion) {
296
- assert(database.replicacheFormatVersion >= FormatVersion.DD31);
297
- const { delegate, lc, wrapInOnlineCheck, wrapInReauthRetries, isPushDisabled, isPullDisabled, clientGroupIDPromise, } = options;
298
- const selfClientGroupID = await clientGroupIDPromise;
299
- assertNotUndefined(selfClientGroupID);
300
- if (selfClientGroupID === clientGroupID) {
301
- return;
302
- }
303
- let clientID;
304
- // If all local mutations have been applied then exit.
305
- let allAckd = true;
306
- for (const [cid, mutationID] of Object.entries(clientGroup.mutationIDs)) {
307
- // if not present then the server has not acknowledged this client's mutations.
308
- if (!clientGroup.lastServerAckdMutationIDs[cid] ||
309
- clientGroup.lastServerAckdMutationIDs[cid] < mutationID) {
310
- clientID = cid;
311
- allAckd = false;
312
- break;
313
- }
314
- }
315
- if (allAckd) {
316
- return;
317
- }
318
- if (clientGroup.disabled) {
319
- lc.debug?.(`Not recovering mutations for client group ${clientGroupID} because group is disabled.`);
320
- return;
321
- }
322
- const stepDescription = `Recovering mutations for client group ${clientGroupID}.`;
323
- lc.debug?.('Start:', stepDescription);
324
- const lazyDagForOtherClientGroup = new LazyStore(perdag, MUTATION_RECOVERY_LAZY_STORE_SOURCE_CHUNK_CACHE_SIZE_LIMIT, throwChunkHasher, assertHash);
325
- try {
326
- await withWrite(lazyDagForOtherClientGroup, write => write.setHead(DEFAULT_HEAD_NAME, clientGroup.headHash));
327
- if (isPushDisabled()) {
328
- lc.debug?.(`Cannot recover mutations for client group ${clientGroupID} because push is disabled.`);
329
- return;
330
- }
331
- const { pusher } = delegate;
332
- const pushDescription = 'recoveringMutationsPush';
333
- const pushSucceeded = await wrapInOnlineCheck(async () => {
334
- const { result: pusherResult } = await wrapInReauthRetries(async (requestID, requestLc) => {
335
- assert(clientID);
336
- assert(lazyDagForOtherClientGroup);
337
- const pusherResult = await push(requestID, lazyDagForOtherClientGroup, requestLc, await delegate.profileID, clientGroupID,
338
- // TODO(DD31): clientID is not needed in DD31. It is currently kept for debugging purpose.
339
- clientID, pusher, database.schemaVersion, PUSH_VERSION_DD31);
340
- return {
341
- result: pusherResult,
342
- httpRequestInfo: pusherResult?.httpRequestInfo,
343
- };
344
- }, pushDescription, lc);
345
- if (!pusherResult) {
346
- return false;
347
- }
348
- const pusherResponse = pusherResult.response;
349
- if (isResponseThatShouldDisableClientGroup(pusherResponse)) {
350
- await disableClientGroup(lc, selfClientGroupID, clientGroupID, pusherResponse, perdag);
351
- return false;
352
- }
353
- return pusherResult.httpRequestInfo.httpStatusCode === 200;
354
- }, pushDescription);
355
- if (!pushSucceeded) {
356
- lc.debug?.(`Failed to recover mutations for client ${clientGroupID} due to a push error.`);
357
- return;
358
- }
359
- if (isPullDisabled()) {
360
- lc.debug?.(`Cannot confirm mutations were recovered for client ${clientGroupID} ` +
361
- `because pull is disabled.`);
362
- return;
363
- }
364
- const { puller } = delegate;
365
- const pullDescription = 'recoveringMutationsPull';
366
- let okPullResponse;
367
- const pullSucceeded = await wrapInOnlineCheck(async () => {
368
- const { result: beginPullResponse } = await wrapInReauthRetries(async (requestID, requestLc) => {
369
- assert(clientID);
370
- const beginPullResponse = await beginPullV1(await delegate.profileID, clientID, clientGroupID, database.schemaVersion, puller, requestID, lazyDagForOtherClientGroup, formatVersion, requestLc, false);
371
- return {
372
- result: beginPullResponse,
373
- httpRequestInfo: beginPullResponse.httpRequestInfo,
374
- };
375
- }, pullDescription, lc);
376
- const { pullResponse } = beginPullResponse;
377
- if (isResponseThatShouldDisableClientGroup(pullResponse)) {
378
- await disableClientGroup(lc, selfClientGroupID, clientGroupID, pullResponse, perdag);
379
- return false;
380
- }
381
- if (!pullResponse ||
382
- beginPullResponse.httpRequestInfo.httpStatusCode !== 200) {
383
- return false;
384
- }
385
- okPullResponse = pullResponse;
386
- return true;
387
- }, pullDescription);
388
- if (!pullSucceeded) {
389
- lc.debug?.(`Failed to recover mutations for client ${clientGroupID} due to a pull error.`);
390
- return;
391
- }
392
- // TODO(arv): Refactor to make pullResponse a const.
393
- // pullResponse must be non undefined because pullSucceeded is true.
394
- assert(okPullResponse);
395
- lc.debug?.(`Client group ${selfClientGroupID} recovered mutations for client group ${clientGroupID}. Details`, {
396
- mutationIDs: clientGroup.mutationIDs,
397
- lastServerAckdMutationIDs: clientGroup.lastServerAckdMutationIDs,
398
- lastMutationIDChanges: okPullResponse.lastMutationIDChanges,
399
- });
400
- return await withWrite(perdag, async (dagWrite) => {
401
- const clientGroups = await getClientGroups(dagWrite);
402
- const clientGroupToUpdate = clientGroups.get(clientGroupID);
403
- if (!clientGroupToUpdate) {
404
- return clientGroups;
405
- }
406
- assert(okPullResponse);
407
- const lastServerAckdMutationIDsUpdates = {};
408
- let anyMutationIDsUpdated = false;
409
- for (const [clientID, lastMutationIDChange] of Object.entries(okPullResponse.lastMutationIDChanges)) {
410
- if ((clientGroupToUpdate.lastServerAckdMutationIDs[clientID] ?? 0) <
411
- lastMutationIDChange) {
412
- lastServerAckdMutationIDsUpdates[clientID] = lastMutationIDChange;
413
- anyMutationIDsUpdated = true;
414
- }
415
- }
416
- if (!anyMutationIDsUpdated) {
417
- return clientGroups;
418
- }
419
- const newClientGroups = new Map(clientGroups).set(clientGroupID, {
420
- ...clientGroupToUpdate,
421
- lastServerAckdMutationIDs: {
422
- ...clientGroupToUpdate.lastServerAckdMutationIDs,
423
- ...lastServerAckdMutationIDsUpdates,
424
- },
425
- });
426
- await setClientGroups(newClientGroups, dagWrite);
427
- return newClientGroups;
428
- });
429
- }
430
- catch (e) {
431
- logMutationRecoveryError(e, lc, stepDescription, delegate);
432
- }
433
- finally {
434
- await lazyDagForOtherClientGroup.close();
435
- lc.debug?.('End:', stepDescription);
436
- }
437
- return;
438
- }
439
- //# sourceMappingURL=mutation-recovery.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mutation-recovery.js","sourceRoot":"","sources":["../../../../replicache/src/mutation-recovery.ts"],"names":[],"mappings":"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"}
@@ -1,77 +0,0 @@
1
- import { BroadcastChannel } from './broadcast-channel.js';
2
- import { getClientGroup } from './persist/client-groups.js';
3
- import { withRead } from './with-transactions.js';
4
- // Older clients (<= replicache@13.0.1), listened on this channel name
5
- // and *asserted* that the messages received were an array containing exactly
6
- // one string.
7
- function makeChannelNameV0(replicacheName) {
8
- return `replicache-new-client-group:${replicacheName}`;
9
- }
10
- // This channel name was introduced when we first needed to change the message
11
- // format. The design of the messages sent on this channel allows for
12
- // the message content to be extended in the future in a way that is
13
- // forward and backwards compatible. The message format can be extended
14
- // by adding new *optional* fields.
15
- function makeChannelNameV1(replicacheName) {
16
- return `replicache-new-client-group-v1:${replicacheName}`;
17
- }
18
- export { makeChannelNameV0 as makeChannelNameV0ForTesting, makeChannelNameV1 as makeChannelNameV1ForTesting, };
19
- function isNewClientChannelMessageV1(message) {
20
- return (typeof message === 'object' &&
21
- typeof message.clientGroupID === 'string' &&
22
- typeof message.idbName === 'string');
23
- }
24
- export function initNewClientChannel(replicacheName, idbName, signal, clientGroupID, isNewClientGroup, onUpdateNeeded, perdag) {
25
- if (signal.aborted) {
26
- return;
27
- }
28
- const channelV1 = new BroadcastChannel(makeChannelNameV1(replicacheName));
29
- if (isNewClientGroup) {
30
- channelV1.postMessage({ clientGroupID, idbName });
31
- // Send expected format to V0 channel for old clients.
32
- const channelV0 = new BroadcastChannel(makeChannelNameV0(replicacheName));
33
- channelV0.postMessage([clientGroupID]);
34
- channelV0.close();
35
- }
36
- channelV1.onmessage = async (e) => {
37
- const { data } = e;
38
- if (isNewClientChannelMessageV1(data)) {
39
- const { clientGroupID: newClientGroupID, idbName: newClientIDBName } = data;
40
- if (newClientGroupID !== clientGroupID) {
41
- if (newClientIDBName === idbName) {
42
- // Check if this client can see the new client's newClientGroupID in its
43
- // perdag. It should be able to if the clients share persistent
44
- // storage. However, with `ReplicacheOption.kvStore`
45
- // and `IDBStoreWithMemFallback` clients may not actually share
46
- // persistent storage. If storage is not shared, then there is no point
47
- // in updating, since clients cannot sync locally. If clients do update
48
- // in this case, they can continually cause each other to update, since
49
- // on each update the clients get assigned a new client group.
50
- const updateNeeded = await withRead(perdag, async (perdagRead) => (await getClientGroup(newClientGroupID, perdagRead)) !==
51
- undefined);
52
- if (updateNeeded) {
53
- onUpdateNeeded();
54
- }
55
- }
56
- else {
57
- // Idb name is different, indicating new schema or format version.
58
- // Update to get assigned to newClientIDBName, and hopefully
59
- // newClientGroupID.
60
- // If storage is not actually shared (i.e. due to
61
- // `ReplicacheOption.kvStore`
62
- // or `IDBStoreWithMemFallback`) the new client will not
63
- // get assigned to newClientGroupID, but should get the
64
- // newClientIDBName.
65
- // Note: we don't try to read from newClientIDBName to see
66
- // if this client shares storage with the new client, because
67
- // the newClientIDBName may have a format version this client
68
- // cannot read.
69
- onUpdateNeeded();
70
- return;
71
- }
72
- }
73
- }
74
- };
75
- signal.addEventListener('abort', () => channelV1.close(), { once: true });
76
- }
77
- //# sourceMappingURL=new-client-channel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"new-client-channel.js","sourceRoot":"","sources":["../../../../replicache/src/new-client-channel.ts"],"names":[],"mappings":"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"}
@@ -1,33 +0,0 @@
1
- import { assertObject, assertString } from '../../shared/src/asserts.js';
2
- import { BroadcastChannel } from './broadcast-channel.js';
3
- function makeChannelName(replicacheName) {
4
- return `replicache-on-persist:${replicacheName}`;
5
- }
6
- function assertPersistInfo(value) {
7
- assertObject(value);
8
- assertString(value.clientGroupID);
9
- assertString(value.clientID);
10
- }
11
- export function initOnPersistChannel(replicacheName, signal, handlePersist) {
12
- if (signal.aborted) {
13
- return () => undefined;
14
- }
15
- const channel = new BroadcastChannel(makeChannelName(replicacheName));
16
- channel.onmessage = e => {
17
- const { data } = e;
18
- assertPersistInfo(data);
19
- handlePersist({
20
- clientGroupID: data.clientGroupID,
21
- clientID: data.clientID,
22
- });
23
- };
24
- signal.addEventListener('abort', () => channel.close(), { once: true });
25
- return (persistInfo) => {
26
- if (signal.aborted) {
27
- return;
28
- }
29
- channel.postMessage(persistInfo);
30
- handlePersist(persistInfo);
31
- };
32
- }
33
- //# sourceMappingURL=on-persist-channel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"on-persist-channel.js","sourceRoot":"","sources":["../../../../replicache/src/on-persist-channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,YAAY,EAAC,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAC,gBAAgB,EAAC,MAAM,wBAAwB,CAAC;AAGxD,SAAS,eAAe,CAAC,cAAsB;IAC7C,OAAO,yBAAyB,cAAc,EAAE,CAAC;AACnD,CAAC;AAWD,SAAS,iBAAiB,CAAC,KAAc;IACvC,YAAY,CAAC,KAAK,CAAC,CAAC;IACpB,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAClC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,cAAsB,EACtB,MAAmB,EACnB,aAA4B;IAE5B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC;IACzB,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC;IAEtE,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE;QACtB,MAAM,EAAC,IAAI,EAAC,GAAG,CAAC,CAAC;QACjB,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACxB,aAAa,CAAC;YACZ,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;IAEtE,OAAO,CAAC,WAAwB,EAAE,EAAE;QAClC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QACD,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACjC,aAAa,CAAC,WAAW,CAAC,CAAC;IAC7B,CAAC,CAAC;AACJ,CAAC"}
@@ -1,37 +0,0 @@
1
- import { assertArray, assertObject, assertString, } from '../../shared/src/asserts.js';
2
- import { assertJSONObject, assertJSONValue, } from '../../shared/src/json.js';
3
- export function assertPatchOperations(p) {
4
- assertArray(p);
5
- for (const item of p) {
6
- assertPatchOperation(item);
7
- }
8
- }
9
- function assertPatchOperation(p) {
10
- assertObject(p);
11
- switch (p.op) {
12
- case 'put':
13
- assertString(p.key);
14
- assertJSONValue(p.value);
15
- break;
16
- case 'update':
17
- assertString(p.key);
18
- if (p.merge !== undefined) {
19
- assertJSONObject(p.merge);
20
- }
21
- if (p.constrain !== undefined) {
22
- assertArray(p.constrain);
23
- for (const key of p.constrain) {
24
- assertString(key);
25
- }
26
- }
27
- break;
28
- case 'del':
29
- assertString(p.key);
30
- break;
31
- case 'clear':
32
- break;
33
- default:
34
- throw new Error(`unknown patch op \`${p.op}\`, expected one of \`put\`, \`del\`, \`clear\``);
35
- }
36
- }
37
- //# sourceMappingURL=patch-operation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"patch-operation.js","sourceRoot":"","sources":["../../../../replicache/src/patch-operation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,YAAY,EACZ,YAAY,GACb,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAGL,gBAAgB,EAChB,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAwClC,MAAM,UAAU,qBAAqB,CACnC,CAAU;IAEV,WAAW,CAAC,CAAC,CAAC,CAAC;IACf,KAAK,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC;QACrB,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,CAAU;IACtC,YAAY,CAAC,CAAC,CAAC,CAAC;IAChB,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC;QACb,KAAK,KAAK;YACR,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACpB,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACzB,MAAM;QACR,KAAK,QAAQ;YACX,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACpB,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC1B,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;YACD,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC9B,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gBACzB,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;oBAC9B,YAAY,CAAC,GAAG,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC;YACD,MAAM;QACR,KAAK,KAAK;YACR,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACpB,MAAM;QACR,KAAK,OAAO;YACV,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CACb,sBAAsB,CAAC,CAAC,EAAE,iDAAiD,CAC5E,CAAC;IACN,CAAC;AACH,CAAC"}
@@ -1,18 +0,0 @@
1
- import { mustGetHeadHash } from './dag/store.js';
2
- import { DEFAULT_HEAD_NAME, localMutationsDD31 } from './db/commit.js';
3
- /**
4
- * This returns the pending changes with the oldest mutations first.
5
- */
6
- export async function pendingMutationsForAPI(dagRead) {
7
- const mainHeadHash = await mustGetHeadHash(DEFAULT_HEAD_NAME, dagRead);
8
- const pending = await localMutationsDD31(mainHeadHash, dagRead);
9
- return pending
10
- .map(p => ({
11
- id: p.meta.mutationID,
12
- name: p.meta.mutatorName,
13
- args: p.meta.mutatorArgsJSON,
14
- clientID: p.meta.clientID,
15
- }))
16
- .reverse();
17
- }
18
- //# sourceMappingURL=pending-mutations.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pending-mutations.js","sourceRoot":"","sources":["../../../../replicache/src/pending-mutations.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAY,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAC,iBAAiB,EAAE,kBAAkB,EAAC,MAAM,gBAAgB,CAAC;AAUrE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,OAAa;IAEb,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAChE,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACT,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU;QACrB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW;QACxB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe;QAC5B,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ;KAC1B,CAAC,CAAC;SACF,OAAO,EAAE,CAAC;AACf,CAAC"}