@dialecte/core 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (692) hide show
  1. package/dist/assets/hub.worker-B1HcVDhn.js +2 -0
  2. package/dist/diagnostics/diagnostics.d.ts +4 -0
  3. package/dist/diagnostics/diagnostics.d.ts.map +1 -1
  4. package/dist/diagnostics/types.d.ts +6 -1
  5. package/dist/diagnostics/types.d.ts.map +1 -1
  6. package/dist/dialecte/create-dialecte-project.d.ts +11 -0
  7. package/dist/dialecte/create-dialecte-project.d.ts.map +1 -0
  8. package/dist/dialecte/create-project-factory.d.ts +14 -0
  9. package/dist/dialecte/create-project-factory.d.ts.map +1 -0
  10. package/dist/dialecte/define-dialecte.d.ts +12 -0
  11. package/dist/dialecte/define-dialecte.d.ts.map +1 -0
  12. package/dist/dialecte/dialecte.constants.d.ts +4 -0
  13. package/dist/dialecte/dialecte.constants.d.ts.map +1 -0
  14. package/dist/dialecte/dialecte.types.d.ts +75 -0
  15. package/dist/dialecte/dialecte.types.d.ts.map +1 -0
  16. package/dist/dialecte/index.d.ts +4 -0
  17. package/dist/dialecte/index.d.ts.map +1 -0
  18. package/dist/{project-DIKdMMHx.js → dialecte-gIPrRzni.js} +8031 -8457
  19. package/dist/document/bind-extensions.d.ts +4 -1
  20. package/dist/document/bind-extensions.d.ts.map +1 -1
  21. package/dist/document/document.d.ts +58 -5
  22. package/dist/document/document.d.ts.map +1 -1
  23. package/dist/document/progress/progress.types.d.ts +21 -4
  24. package/dist/document/progress/progress.types.d.ts.map +1 -1
  25. package/dist/document/query/find/ancestor/find-ancestor.d.ts +2 -0
  26. package/dist/document/query/find/ancestor/find-ancestor.d.ts.map +1 -1
  27. package/dist/document/query/find/by-attribute/find-by-attributes.d.ts +4 -0
  28. package/dist/document/query/find/by-attribute/find-by-attributes.d.ts.map +1 -1
  29. package/dist/document/query/find/descendant/find-descendant.d.ts +2 -0
  30. package/dist/document/query/find/descendant/find-descendant.d.ts.map +1 -1
  31. package/dist/document/query/get/attribute/get-attribute.d.ts +4 -0
  32. package/dist/document/query/get/attribute/get-attribute.d.ts.map +1 -1
  33. package/dist/document/query/get/attribute/get-attributes.d.ts +4 -0
  34. package/dist/document/query/get/attribute/get-attributes.d.ts.map +1 -1
  35. package/dist/document/query/get/definition/get-definition.d.ts +2 -0
  36. package/dist/document/query/get/definition/get-definition.d.ts.map +1 -1
  37. package/dist/document/query/get/record/get-child.d.ts +2 -0
  38. package/dist/document/query/get/record/get-child.d.ts.map +1 -1
  39. package/dist/document/query/get/record/get-children.d.ts +2 -0
  40. package/dist/document/query/get/record/get-children.d.ts.map +1 -1
  41. package/dist/document/query/get/record/get-record.d.ts +2 -0
  42. package/dist/document/query/get/record/get-record.d.ts.map +1 -1
  43. package/dist/document/query/get/record/get-records-by-tagname.d.ts +2 -0
  44. package/dist/document/query/get/record/get-records-by-tagname.d.ts.map +1 -1
  45. package/dist/document/query/get/record/get-records.d.ts +2 -0
  46. package/dist/document/query/get/record/get-records.d.ts.map +1 -1
  47. package/dist/document/query/get/record/load-live-records.d.ts +2 -0
  48. package/dist/document/query/get/record/load-live-records.d.ts.map +1 -1
  49. package/dist/document/query/get/record/resolve-record.d.ts +2 -0
  50. package/dist/document/query/get/record/resolve-record.d.ts.map +1 -1
  51. package/dist/document/query/get/record/staged-lookup.d.ts +4 -0
  52. package/dist/document/query/get/record/staged-lookup.d.ts.map +1 -1
  53. package/dist/document/query/get/tree/get-tree.d.ts +6 -0
  54. package/dist/document/query/get/tree/get-tree.d.ts.map +1 -1
  55. package/dist/document/query/main.d.ts +50 -15
  56. package/dist/document/query/main.d.ts.map +1 -1
  57. package/dist/document/query/snapshot/collect-snapshot.d.ts +2 -0
  58. package/dist/document/query/snapshot/collect-snapshot.d.ts.map +1 -1
  59. package/dist/document/query/snapshot/get-snapshot.d.ts +2 -0
  60. package/dist/document/query/snapshot/get-snapshot.d.ts.map +1 -1
  61. package/dist/document/query/snapshot/records-to-tree.d.ts +2 -0
  62. package/dist/document/query/snapshot/records-to-tree.d.ts.map +1 -1
  63. package/dist/document/query/tree-filter/omit.d.ts +8 -0
  64. package/dist/document/query/tree-filter/omit.d.ts.map +1 -1
  65. package/dist/document/query/tree-filter/order.d.ts +5 -2
  66. package/dist/document/query/tree-filter/order.d.ts.map +1 -1
  67. package/dist/document/query/tree-filter/unwrap.d.ts +2 -0
  68. package/dist/document/query/tree-filter/unwrap.d.ts.map +1 -1
  69. package/dist/document/staged-operations.d.ts +5 -1
  70. package/dist/document/staged-operations.d.ts.map +1 -1
  71. package/dist/document/transaction/clone/clone.d.ts +2 -0
  72. package/dist/document/transaction/clone/clone.d.ts.map +1 -1
  73. package/dist/document/transaction/commit/commit.d.ts.map +1 -1
  74. package/dist/document/transaction/commit/merge-operations.d.ts +1 -1
  75. package/dist/document/transaction/commit/merge-operations.d.ts.map +1 -1
  76. package/dist/document/transaction/commit/summarize-operations.d.ts +16 -0
  77. package/dist/document/transaction/commit/summarize-operations.d.ts.map +1 -0
  78. package/dist/document/transaction/commit/summarize-operations.types.d.ts +17 -0
  79. package/dist/document/transaction/commit/summarize-operations.types.d.ts.map +1 -0
  80. package/dist/document/transaction/create/create.d.ts +2 -0
  81. package/dist/document/transaction/create/create.d.ts.map +1 -1
  82. package/dist/document/transaction/guard.d.ts +5 -0
  83. package/dist/document/transaction/guard.d.ts.map +1 -1
  84. package/dist/document/transaction/index.d.ts +2 -0
  85. package/dist/document/transaction/index.d.ts.map +1 -1
  86. package/dist/document/transaction/main.d.ts +46 -16
  87. package/dist/document/transaction/main.d.ts.map +1 -1
  88. package/dist/document/transaction/stage-operations.d.ts.map +1 -1
  89. package/dist/document/transaction/update/update.d.ts +2 -0
  90. package/dist/document/transaction/update/update.d.ts.map +1 -1
  91. package/dist/document/types.d.ts +3 -5
  92. package/dist/document/types.d.ts.map +1 -1
  93. package/dist/engine-store-CIEqgPUb.js +348 -0
  94. package/dist/engine.constants-DBMjMmV9.js +98 -0
  95. package/dist/engine.d.ts +9 -0
  96. package/dist/engine.d.ts.map +1 -0
  97. package/dist/engine.js +15805 -0
  98. package/dist/errors/codes.d.ts +451 -0
  99. package/dist/errors/codes.d.ts.map +1 -1
  100. package/dist/errors/errors.constants.d.ts +3 -0
  101. package/dist/errors/errors.constants.d.ts.map +1 -0
  102. package/dist/errors/errors.d.ts +10 -0
  103. package/dist/errors/errors.d.ts.map +1 -1
  104. package/dist/errors/types.d.ts +14 -0
  105. package/dist/errors/types.d.ts.map +1 -1
  106. package/dist/helpers/assert-fixed.d.ts +3 -1
  107. package/dist/helpers/assert-fixed.d.ts.map +1 -1
  108. package/dist/helpers/assert-xml-characters.d.ts +35 -0
  109. package/dist/helpers/assert-xml-characters.d.ts.map +1 -0
  110. package/dist/helpers/assert-xml-characters.types.d.ts +26 -0
  111. package/dist/helpers/assert-xml-characters.types.d.ts.map +1 -0
  112. package/dist/helpers/assert-xsi-type.d.ts +4 -0
  113. package/dist/helpers/assert-xsi-type.d.ts.map +1 -1
  114. package/dist/helpers/converter.d.ts +21 -6
  115. package/dist/helpers/converter.d.ts.map +1 -1
  116. package/dist/helpers/evaluate-expectations.d.ts +21 -0
  117. package/dist/helpers/evaluate-expectations.d.ts.map +1 -0
  118. package/dist/helpers/evaluate-expectations.types.d.ts +31 -0
  119. package/dist/helpers/evaluate-expectations.types.d.ts.map +1 -0
  120. package/dist/helpers/guard.d.ts +24 -4
  121. package/dist/helpers/guard.d.ts.map +1 -1
  122. package/dist/helpers/index.d.ts +2 -0
  123. package/dist/helpers/index.d.ts.map +1 -1
  124. package/dist/helpers/merge-extensions.d.ts +2 -0
  125. package/dist/helpers/merge-extensions.d.ts.map +1 -1
  126. package/dist/helpers/read-attributes.d.ts +4 -0
  127. package/dist/helpers/read-attributes.d.ts.map +1 -1
  128. package/dist/helpers/standardizing.d.ts +10 -0
  129. package/dist/helpers/standardizing.d.ts.map +1 -1
  130. package/dist/helpers/strip-attributes.d.ts +2 -0
  131. package/dist/helpers/strip-attributes.d.ts.map +1 -1
  132. package/dist/helpers-DVShv41E.js +489 -0
  133. package/dist/helpers.js +3 -439
  134. package/dist/in-process-link-DBeAOZRp.js +2791 -0
  135. package/dist/index.d.ts +1 -0
  136. package/dist/index.d.ts.map +1 -1
  137. package/dist/index.js +13 -12
  138. package/dist/perf/create-perf.d.ts +8 -1
  139. package/dist/perf/create-perf.d.ts.map +1 -1
  140. package/dist/perf/index.d.ts +1 -1
  141. package/dist/perf/index.d.ts.map +1 -1
  142. package/dist/perf/noop-perf.d.ts.map +1 -1
  143. package/dist/perf/perf.types.d.ts +65 -6
  144. package/dist/perf/perf.types.d.ts.map +1 -1
  145. package/dist/project/index.d.ts +7 -5
  146. package/dist/project/index.d.ts.map +1 -1
  147. package/dist/project/io/export-blob.d.ts +5 -2
  148. package/dist/project/io/export-blob.d.ts.map +1 -1
  149. package/dist/project/io/export-document.d.ts +5 -4
  150. package/dist/project/io/export-document.d.ts.map +1 -1
  151. package/dist/project/io/index.d.ts +1 -1
  152. package/dist/project/io/index.d.ts.map +1 -1
  153. package/dist/project/io/init-empty-document.d.ts +2 -0
  154. package/dist/project/io/init-empty-document.d.ts.map +1 -1
  155. package/dist/project/io/run-export.d.ts +19 -0
  156. package/dist/project/io/run-export.d.ts.map +1 -0
  157. package/dist/project/io/run-export.types.d.ts +45 -0
  158. package/dist/project/io/run-export.types.d.ts.map +1 -0
  159. package/dist/project/io/run-import.d.ts +15 -0
  160. package/dist/project/io/run-import.d.ts.map +1 -0
  161. package/dist/project/io/run-import.types.d.ts +19 -0
  162. package/dist/project/io/run-import.types.d.ts.map +1 -0
  163. package/dist/project/io/store-runtime.constants.d.ts +6 -0
  164. package/dist/project/io/store-runtime.constants.d.ts.map +1 -0
  165. package/dist/project/io/store-runtime.d.ts +12 -0
  166. package/dist/project/io/store-runtime.d.ts.map +1 -0
  167. package/dist/project/io/store-runtime.types.d.ts +18 -0
  168. package/dist/project/io/store-runtime.types.d.ts.map +1 -0
  169. package/dist/project/project-channel.d.ts +11 -0
  170. package/dist/project/project-channel.d.ts.map +1 -0
  171. package/dist/project/project.constants.d.ts +12 -0
  172. package/dist/project/project.constants.d.ts.map +1 -0
  173. package/dist/project/project.d.ts +315 -31
  174. package/dist/project/project.d.ts.map +1 -1
  175. package/dist/project/state/document-lifecycle.d.ts +0 -12
  176. package/dist/project/state/document-lifecycle.d.ts.map +1 -1
  177. package/dist/project/state/document-state.d.ts +4 -0
  178. package/dist/project/state/document-state.d.ts.map +1 -1
  179. package/dist/project/types.d.ts +126 -60
  180. package/dist/project/types.d.ts.map +1 -1
  181. package/dist/project-key-Ch34EtFa.js +1435 -0
  182. package/dist/rolldown-runtime-CYdcPHCu.js +12 -0
  183. package/dist/running-operations-vnijBvn7.js +76 -0
  184. package/dist/same-json-value-C6kUaoyt.js +1603 -0
  185. package/dist/sqlite.d.ts +5 -0
  186. package/dist/sqlite.d.ts.map +1 -0
  187. package/dist/sqlite.js +2671 -0
  188. package/dist/sqlite3.wasm +0 -0
  189. package/dist/store/apply-record-patch.d.ts +13 -0
  190. package/dist/store/apply-record-patch.d.ts.map +1 -0
  191. package/dist/store/closing-connections.d.ts +7 -0
  192. package/dist/store/closing-connections.d.ts.map +1 -0
  193. package/dist/store/closing-connections.types.d.ts +13 -0
  194. package/dist/store/closing-connections.types.d.ts.map +1 -0
  195. package/dist/store/commit-progress.d.ts +10 -0
  196. package/dist/store/commit-progress.d.ts.map +1 -0
  197. package/dist/store/compare-by-id.d.ts +10 -0
  198. package/dist/store/compare-by-id.d.ts.map +1 -0
  199. package/dist/store/document-path.constants.d.ts +20 -0
  200. package/dist/store/document-path.constants.d.ts.map +1 -0
  201. package/dist/store/document-path.d.ts +75 -0
  202. package/dist/store/document-path.d.ts.map +1 -0
  203. package/dist/store/document-path.types.d.ts +11 -0
  204. package/dist/store/document-path.types.d.ts.map +1 -0
  205. package/dist/store/engine/client/check-engine-wire.d.ts +8 -0
  206. package/dist/store/engine/client/check-engine-wire.d.ts.map +1 -0
  207. package/dist/store/engine/client/client.constants.d.ts +30 -0
  208. package/dist/store/engine/client/client.constants.d.ts.map +1 -0
  209. package/dist/store/engine/client/client.types.d.ts +200 -0
  210. package/dist/store/engine/client/client.types.d.ts.map +1 -0
  211. package/dist/store/engine/client/engine-client.d.ts +15 -0
  212. package/dist/store/engine/client/engine-client.d.ts.map +1 -0
  213. package/dist/store/engine/client/engine-control.d.ts +16 -0
  214. package/dist/store/engine/client/engine-control.d.ts.map +1 -0
  215. package/dist/store/engine/client/heartbeat-watch.d.ts +17 -0
  216. package/dist/store/engine/client/heartbeat-watch.d.ts.map +1 -0
  217. package/dist/store/engine/client/hub-connector.d.ts +11 -0
  218. package/dist/store/engine/client/hub-connector.d.ts.map +1 -0
  219. package/dist/store/engine/client/hub-connector.types.d.ts +25 -0
  220. package/dist/store/engine/client/hub-connector.types.d.ts.map +1 -0
  221. package/dist/store/engine/client/worker-connector.d.ts +32 -0
  222. package/dist/store/engine/client/worker-connector.d.ts.map +1 -0
  223. package/dist/store/engine/creation-refusal.d.ts +10 -0
  224. package/dist/store/engine/creation-refusal.d.ts.map +1 -0
  225. package/dist/store/engine/dialecte-refusal.d.ts +18 -0
  226. package/dist/store/engine/dialecte-refusal.d.ts.map +1 -0
  227. package/dist/store/engine/engine-store.d.ts +163 -0
  228. package/dist/store/engine/engine-store.d.ts.map +1 -0
  229. package/dist/store/engine/engine-store.types.d.ts +53 -0
  230. package/dist/store/engine/engine-store.types.d.ts.map +1 -0
  231. package/dist/store/engine/engine.constants.d.ts +14 -0
  232. package/dist/store/engine/engine.constants.d.ts.map +1 -0
  233. package/dist/store/engine/engine.types.d.ts +165 -0
  234. package/dist/store/engine/engine.types.d.ts.map +1 -0
  235. package/dist/store/engine/host/engine-wire.d.ts +19 -0
  236. package/dist/store/engine/host/engine-wire.d.ts.map +1 -0
  237. package/dist/store/engine/host/heartbeat.d.ts +33 -0
  238. package/dist/store/engine/host/heartbeat.d.ts.map +1 -0
  239. package/dist/store/engine/host/host.constants.d.ts +13 -0
  240. package/dist/store/engine/host/host.constants.d.ts.map +1 -0
  241. package/dist/store/engine/host/host.types.d.ts +65 -0
  242. package/dist/store/engine/host/host.types.d.ts.map +1 -0
  243. package/dist/store/engine/host/store-events.d.ts +14 -0
  244. package/dist/store/engine/host/store-events.d.ts.map +1 -0
  245. package/dist/store/engine/hub/hub-client.constants.d.ts +27 -0
  246. package/dist/store/engine/hub/hub-client.constants.d.ts.map +1 -0
  247. package/dist/store/engine/hub/hub-client.d.ts +46 -0
  248. package/dist/store/engine/hub/hub-client.d.ts.map +1 -0
  249. package/dist/store/engine/hub/hub-client.types.d.ts +208 -0
  250. package/dist/store/engine/hub/hub-client.types.d.ts.map +1 -0
  251. package/dist/store/engine/hub/hub-protocol.types.d.ts +193 -0
  252. package/dist/store/engine/hub/hub-protocol.types.d.ts.map +1 -0
  253. package/dist/store/engine/hub/hub-router.d.ts +9 -0
  254. package/dist/store/engine/hub/hub-router.d.ts.map +1 -0
  255. package/dist/store/engine/hub/hub-shell.d.ts +13 -0
  256. package/dist/store/engine/hub/hub-shell.d.ts.map +1 -0
  257. package/dist/store/engine/hub/hub-shell.types.d.ts +64 -0
  258. package/dist/store/engine/hub/hub-shell.types.d.ts.map +1 -0
  259. package/dist/store/engine/hub/hub.constants.d.ts +33 -0
  260. package/dist/store/engine/hub/hub.constants.d.ts.map +1 -0
  261. package/dist/store/engine/hub/hub.types.d.ts +305 -0
  262. package/dist/store/engine/hub/hub.types.d.ts.map +1 -0
  263. package/dist/store/engine/hub/hub.worker.d.ts +2 -0
  264. package/dist/store/engine/hub/hub.worker.d.ts.map +1 -0
  265. package/dist/store/engine/hub/realm-host.d.ts +10 -0
  266. package/dist/store/engine/hub/realm-host.d.ts.map +1 -0
  267. package/dist/store/engine/hub/realm-host.types.d.ts +78 -0
  268. package/dist/store/engine/hub/realm-host.types.d.ts.map +1 -0
  269. package/dist/store/engine/project-key.d.ts +15 -0
  270. package/dist/store/engine/project-key.d.ts.map +1 -0
  271. package/dist/store/engine/wire/error-envelope.d.ts +25 -0
  272. package/dist/store/engine/wire/error-envelope.d.ts.map +1 -0
  273. package/dist/store/engine/wire/wire-values.d.ts +33 -0
  274. package/dist/store/engine/wire/wire-values.d.ts.map +1 -0
  275. package/dist/store/engine/wire/wire.constants.d.ts +116 -0
  276. package/dist/store/engine/wire/wire.constants.d.ts.map +1 -0
  277. package/dist/store/engine/wire/wire.types.d.ts +119 -0
  278. package/dist/store/engine/wire/wire.types.d.ts.map +1 -0
  279. package/dist/store/hub-public.d.ts +33 -0
  280. package/dist/store/hub-public.d.ts.map +1 -0
  281. package/dist/store/ignore-destroy-outcome.d.ts +6 -0
  282. package/dist/store/ignore-destroy-outcome.d.ts.map +1 -0
  283. package/dist/store/in-memory/in-memory-state.d.ts +46 -0
  284. package/dist/store/in-memory/in-memory-state.d.ts.map +1 -0
  285. package/dist/store/in-memory/in-memory-store.constants.d.ts +7 -0
  286. package/dist/store/in-memory/in-memory-store.constants.d.ts.map +1 -0
  287. package/dist/store/in-memory/in-memory-store.d.ts +105 -17
  288. package/dist/store/in-memory/in-memory-store.d.ts.map +1 -1
  289. package/dist/store/in-memory/types.d.ts +55 -1
  290. package/dist/store/in-memory/types.d.ts.map +1 -1
  291. package/dist/store/index.d.ts +8 -2
  292. package/dist/store/index.d.ts.map +1 -1
  293. package/dist/store/json-values.constants.d.ts +18 -0
  294. package/dist/store/json-values.constants.d.ts.map +1 -0
  295. package/dist/store/json-values.d.ts +40 -0
  296. package/dist/store/json-values.d.ts.map +1 -0
  297. package/dist/store/json-values.types.d.ts +18 -0
  298. package/dist/store/json-values.types.d.ts.map +1 -0
  299. package/dist/store/local/dexie-store.constants.d.ts +20 -0
  300. package/dist/store/local/dexie-store.constants.d.ts.map +1 -0
  301. package/dist/store/local/dexie-store.d.ts +134 -5
  302. package/dist/store/local/dexie-store.d.ts.map +1 -1
  303. package/dist/store/local/types.d.ts +6 -0
  304. package/dist/store/local/types.d.ts.map +1 -1
  305. package/dist/store/lost-write.d.ts +32 -0
  306. package/dist/store/lost-write.d.ts.map +1 -0
  307. package/dist/store/lost-write.types.d.ts +4 -0
  308. package/dist/store/lost-write.types.d.ts.map +1 -0
  309. package/dist/store/open-connections.d.ts +4 -0
  310. package/dist/store/open-connections.d.ts.map +1 -0
  311. package/dist/store/open-connections.types.d.ts +17 -0
  312. package/dist/store/open-connections.types.d.ts.map +1 -0
  313. package/dist/store/own-import.d.ts +10 -0
  314. package/dist/store/own-import.d.ts.map +1 -0
  315. package/dist/store/project-name.d.ts +10 -0
  316. package/dist/store/project-name.d.ts.map +1 -0
  317. package/dist/store/resolve-store.d.ts +28 -4
  318. package/dist/store/resolve-store.d.ts.map +1 -1
  319. package/dist/store/running-operations.d.ts +7 -0
  320. package/dist/store/running-operations.d.ts.map +1 -0
  321. package/dist/store/running-operations.types.d.ts +10 -0
  322. package/dist/store/running-operations.types.d.ts.map +1 -0
  323. package/dist/store/same-json-value.d.ts +9 -0
  324. package/dist/store/same-json-value.d.ts.map +1 -0
  325. package/dist/store/sqlite/adapter/in-process-link.d.ts +20 -0
  326. package/dist/store/sqlite/adapter/in-process-link.d.ts.map +1 -0
  327. package/dist/store/sqlite/adapter/in-process-link.types.d.ts +21 -0
  328. package/dist/store/sqlite/adapter/in-process-link.types.d.ts.map +1 -0
  329. package/dist/store/sqlite/adapter/realm-storage.d.ts +10 -0
  330. package/dist/store/sqlite/adapter/realm-storage.d.ts.map +1 -0
  331. package/dist/store/sqlite/adapter/sqlite-connector.d.ts +14 -0
  332. package/dist/store/sqlite/adapter/sqlite-connector.d.ts.map +1 -0
  333. package/dist/store/sqlite/adapter/sqlite-engine-settings.d.ts +4 -0
  334. package/dist/store/sqlite/adapter/sqlite-engine-settings.d.ts.map +1 -0
  335. package/dist/store/sqlite/adapter/sqlite-hub-spawner.d.ts +8 -0
  336. package/dist/store/sqlite/adapter/sqlite-hub-spawner.d.ts.map +1 -0
  337. package/dist/store/sqlite/adapter/sqlite-hub-spawner.types.d.ts +5 -0
  338. package/dist/store/sqlite/adapter/sqlite-hub-spawner.types.d.ts.map +1 -0
  339. package/dist/store/sqlite/adapter/sqlite-worker-connector.d.ts +8 -0
  340. package/dist/store/sqlite/adapter/sqlite-worker-connector.d.ts.map +1 -0
  341. package/dist/store/sqlite/adapter/sqlite-worker-connector.types.d.ts +5 -0
  342. package/dist/store/sqlite/adapter/sqlite-worker-connector.types.d.ts.map +1 -0
  343. package/dist/store/sqlite/engine/blobs.d.ts +55 -0
  344. package/dist/store/sqlite/engine/blobs.d.ts.map +1 -0
  345. package/dist/store/sqlite/engine/bulk-insert.d.ts +31 -0
  346. package/dist/store/sqlite/engine/bulk-insert.d.ts.map +1 -0
  347. package/dist/store/sqlite/engine/commit.d.ts +20 -0
  348. package/dist/store/sqlite/engine/commit.d.ts.map +1 -0
  349. package/dist/store/sqlite/engine/device-cache.d.ts +13 -0
  350. package/dist/store/sqlite/engine/device-cache.d.ts.map +1 -0
  351. package/dist/store/sqlite/engine/engine-errors.d.ts +26 -0
  352. package/dist/store/sqlite/engine/engine-errors.d.ts.map +1 -0
  353. package/dist/store/sqlite/engine/engine.constants.d.ts +144 -0
  354. package/dist/store/sqlite/engine/engine.constants.d.ts.map +1 -0
  355. package/dist/store/sqlite/engine/engine.types.d.ts +361 -0
  356. package/dist/store/sqlite/engine/engine.types.d.ts.map +1 -0
  357. package/dist/store/sqlite/engine/history.d.ts +114 -0
  358. package/dist/store/sqlite/engine/history.d.ts.map +1 -0
  359. package/dist/store/sqlite/engine/import-queue.d.ts +7 -0
  360. package/dist/store/sqlite/engine/import-queue.d.ts.map +1 -0
  361. package/dist/store/sqlite/engine/import-target.d.ts +23 -0
  362. package/dist/store/sqlite/engine/import-target.d.ts.map +1 -0
  363. package/dist/store/sqlite/engine/import-window.d.ts +23 -0
  364. package/dist/store/sqlite/engine/import-window.d.ts.map +1 -0
  365. package/dist/store/sqlite/engine/reclaim.d.ts +13 -0
  366. package/dist/store/sqlite/engine/reclaim.d.ts.map +1 -0
  367. package/dist/store/sqlite/engine/records.d.ts +117 -0
  368. package/dist/store/sqlite/engine/records.d.ts.map +1 -0
  369. package/dist/store/sqlite/engine/registry.d.ts +76 -0
  370. package/dist/store/sqlite/engine/registry.d.ts.map +1 -0
  371. package/dist/store/sqlite/engine/schema.d.ts +57 -0
  372. package/dist/store/sqlite/engine/schema.d.ts.map +1 -0
  373. package/dist/store/sqlite/engine/sqlite-engine.d.ts +14 -0
  374. package/dist/store/sqlite/engine/sqlite-engine.d.ts.map +1 -0
  375. package/dist/store/sqlite/engine/transaction.d.ts +12 -0
  376. package/dist/store/sqlite/engine/transaction.d.ts.map +1 -0
  377. package/dist/store/sqlite/list-projects.constants.d.ts +12 -0
  378. package/dist/store/sqlite/list-projects.constants.d.ts.map +1 -0
  379. package/dist/store/sqlite/list-projects.d.ts +22 -0
  380. package/dist/store/sqlite/list-projects.d.ts.map +1 -0
  381. package/dist/store/sqlite/list-projects.types.d.ts +28 -0
  382. package/dist/store/sqlite/list-projects.types.d.ts.map +1 -0
  383. package/dist/store/sqlite/load-sqlite.d.ts +11 -0
  384. package/dist/store/sqlite/load-sqlite.d.ts.map +1 -0
  385. package/dist/store/sqlite/runtime/close-engine.d.ts +18 -0
  386. package/dist/store/sqlite/runtime/close-engine.d.ts.map +1 -0
  387. package/dist/store/sqlite/runtime/install-pool.d.ts +94 -0
  388. package/dist/store/sqlite/runtime/install-pool.d.ts.map +1 -0
  389. package/dist/store/sqlite/runtime/pool-header.d.ts +13 -0
  390. package/dist/store/sqlite/runtime/pool-header.d.ts.map +1 -0
  391. package/dist/store/sqlite/runtime/progress-beat.d.ts +13 -0
  392. package/dist/store/sqlite/runtime/progress-beat.d.ts.map +1 -0
  393. package/dist/store/sqlite/runtime/runtime.constants.d.ts +57 -0
  394. package/dist/store/sqlite/runtime/runtime.constants.d.ts.map +1 -0
  395. package/dist/store/sqlite/runtime/runtime.types.d.ts +56 -0
  396. package/dist/store/sqlite/runtime/runtime.types.d.ts.map +1 -0
  397. package/dist/store/sqlite/runtime/serve-dialecte-engine.d.ts +16 -0
  398. package/dist/store/sqlite/runtime/serve-dialecte-engine.d.ts.map +1 -0
  399. package/dist/store/sqlite/sqlite-store-of.d.ts +7 -0
  400. package/dist/store/sqlite/sqlite-store-of.d.ts.map +1 -0
  401. package/dist/store/sqlite/sqlite-text.d.ts +20 -0
  402. package/dist/store/sqlite/sqlite-text.d.ts.map +1 -0
  403. package/dist/store/sqlite/sqlite-wasm-url.d.ts +9 -0
  404. package/dist/store/sqlite/sqlite-wasm-url.d.ts.map +1 -0
  405. package/dist/store/sqlite/sqlite.constants.d.ts +15 -0
  406. package/dist/store/sqlite/sqlite.constants.d.ts.map +1 -0
  407. package/dist/store/sqlite/sqlite.types.d.ts +36 -0
  408. package/dist/store/sqlite/sqlite.types.d.ts.map +1 -0
  409. package/dist/store/sqlite-storage.constants.d.ts +14 -0
  410. package/dist/store/sqlite-storage.constants.d.ts.map +1 -0
  411. package/dist/store/sqlite-storage.d.ts +22 -0
  412. package/dist/store/sqlite-storage.d.ts.map +1 -0
  413. package/dist/store/sqlite-storage.types.d.ts +24 -0
  414. package/dist/store/sqlite-storage.types.d.ts.map +1 -0
  415. package/dist/store/store-errors.d.ts +51 -0
  416. package/dist/store/store-errors.d.ts.map +1 -0
  417. package/dist/store/store.constants.d.ts +15 -3
  418. package/dist/store/store.constants.d.ts.map +1 -1
  419. package/dist/store/store.types.d.ts +280 -16
  420. package/dist/store/store.types.d.ts.map +1 -1
  421. package/dist/store/stored-record.d.ts +16 -0
  422. package/dist/store/stored-record.d.ts.map +1 -0
  423. package/dist/store/unfinished-imports.d.ts +15 -0
  424. package/dist/store/unfinished-imports.d.ts.map +1 -0
  425. package/dist/store/write-outcome.d.ts +34 -0
  426. package/dist/store/write-outcome.d.ts.map +1 -0
  427. package/dist/test/assert-valid-xml/assert-valid-xml.constants.d.ts +7 -0
  428. package/dist/test/assert-valid-xml/assert-valid-xml.constants.d.ts.map +1 -0
  429. package/dist/test/assert-valid-xml/assert-valid-xml.d.ts +19 -18
  430. package/dist/test/assert-valid-xml/assert-valid-xml.d.ts.map +1 -1
  431. package/dist/test/assert-valid-xml/assert-valid-xml.types.d.ts +8 -4
  432. package/dist/test/assert-valid-xml/assert-valid-xml.types.d.ts.map +1 -1
  433. package/dist/test/assert-xml/assert-xml.constants.d.ts +25 -0
  434. package/dist/test/assert-xml/assert-xml.constants.d.ts.map +1 -0
  435. package/dist/test/assert-xml/assert-xml.d.ts +23 -34
  436. package/dist/test/assert-xml/assert-xml.d.ts.map +1 -1
  437. package/dist/test/assert-xml/assert-xml.types.d.ts +48 -0
  438. package/dist/test/assert-xml/assert-xml.types.d.ts.map +1 -0
  439. package/dist/test/assert-xml/describe-nearby.d.ts +16 -0
  440. package/dist/test/assert-xml/describe-nearby.d.ts.map +1 -0
  441. package/dist/test/assert-xml/describe-node-place.d.ts +15 -0
  442. package/dist/test/assert-xml/describe-node-place.d.ts.map +1 -0
  443. package/dist/test/assert-xml/index.d.ts +1 -1
  444. package/dist/test/assert-xml/index.d.ts.map +1 -1
  445. package/dist/test/assert-xml/query-failure-message.d.ts +24 -0
  446. package/dist/test/assert-xml/query-failure-message.d.ts.map +1 -0
  447. package/dist/test/assert-xml/read-xpath-step.d.ts +8 -0
  448. package/dist/test/assert-xml/read-xpath-step.d.ts.map +1 -0
  449. package/dist/test/assert-xml/xpath-parser.d.ts +2 -1
  450. package/dist/test/assert-xml/xpath-parser.d.ts.map +1 -1
  451. package/dist/test/config.d.ts +5 -0
  452. package/dist/test/config.d.ts.map +1 -1
  453. package/dist/test/constant.d.ts +2 -0
  454. package/dist/test/constant.d.ts.map +1 -1
  455. package/dist/test/create-test-dialecte.d.ts +32 -37
  456. package/dist/test/create-test-dialecte.d.ts.map +1 -1
  457. package/dist/test/create-test-dialecte.types.d.ts +99 -0
  458. package/dist/test/create-test-dialecte.types.d.ts.map +1 -0
  459. package/dist/test/create-test-helpers-internal.types.d.ts +19 -0
  460. package/dist/test/create-test-helpers-internal.types.d.ts.map +1 -0
  461. package/dist/test/create-test-helpers.d.ts +13 -0
  462. package/dist/test/create-test-helpers.d.ts.map +1 -0
  463. package/dist/test/create-test-helpers.types.d.ts +50 -0
  464. package/dist/test/create-test-helpers.types.d.ts.map +1 -0
  465. package/dist/test/fixtures/test-entry-scan-constraint.d.ts +3 -0
  466. package/dist/test/fixtures/test-entry-scan-constraint.d.ts.map +1 -0
  467. package/dist/test/fixtures/test-entry-scan-edges.types.d.ts +10 -0
  468. package/dist/test/fixtures/test-entry-scan-edges.types.d.ts.map +1 -0
  469. package/dist/test/fixtures/test-entry-scan-recursive.d.ts +4 -0
  470. package/dist/test/fixtures/test-entry-scan-recursive.d.ts.map +1 -0
  471. package/dist/test/fixtures/test-entry-scan-recursive.types.d.ts +15 -0
  472. package/dist/test/fixtures/test-entry-scan-recursive.types.d.ts.map +1 -0
  473. package/dist/test/fixtures/test-entry-scan-shapes.d.ts +14 -0
  474. package/dist/test/fixtures/test-entry-scan-shapes.d.ts.map +1 -0
  475. package/dist/test/fixtures/test-entry-scan-shapes.types.d.ts +14 -0
  476. package/dist/test/fixtures/test-entry-scan-shapes.types.d.ts.map +1 -0
  477. package/dist/test/fixtures/test-entry-scan-tree.d.ts +3 -0
  478. package/dist/test/fixtures/test-entry-scan-tree.d.ts.map +1 -0
  479. package/dist/test/fixtures/test-entry-scan.d.ts +5 -0
  480. package/dist/test/fixtures/test-entry-scan.d.ts.map +1 -0
  481. package/dist/test/fixtures/test-entry-scan.types.d.ts +5 -0
  482. package/dist/test/fixtures/test-entry-scan.types.d.ts.map +1 -0
  483. package/dist/test/generated/definition.generated.d.ts +5 -0
  484. package/dist/test/generated/definition.generated.d.ts.map +1 -1
  485. package/dist/test/in-memory-storage.setup.d.ts +2 -0
  486. package/dist/test/in-memory-storage.setup.d.ts.map +1 -0
  487. package/dist/test/index.d.ts +6 -0
  488. package/dist/test/index.d.ts.map +1 -1
  489. package/dist/test/normalize-uuids.constants.d.ts +3 -0
  490. package/dist/test/normalize-uuids.constants.d.ts.map +1 -0
  491. package/dist/test/normalize-uuids.d.ts +12 -0
  492. package/dist/test/normalize-uuids.d.ts.map +1 -1
  493. package/dist/test/run-test-cases.d.ts +30 -11
  494. package/dist/test/run-test-cases.d.ts.map +1 -1
  495. package/dist/test/run-test-cases.type.d.ts +16 -0
  496. package/dist/test/run-test-cases.type.d.ts.map +1 -1
  497. package/dist/test/sqlite-storage.setup.d.ts +1 -0
  498. package/dist/test/sqlite-storage.setup.d.ts.map +1 -0
  499. package/dist/test/test-dialecte-setup.d.ts +31 -0
  500. package/dist/test/test-dialecte-setup.d.ts.map +1 -0
  501. package/dist/test/test-dialecte-setup.types.d.ts +29 -0
  502. package/dist/test/test-dialecte-setup.types.d.ts.map +1 -0
  503. package/dist/test/test-dialecte.d.ts +2722 -0
  504. package/dist/test/test-dialecte.d.ts.map +1 -0
  505. package/dist/test/test-dialecte.types.d.ts +3 -0
  506. package/dist/test/test-dialecte.types.d.ts.map +1 -0
  507. package/dist/test/test-dialecte.worker.d.ts +2 -0
  508. package/dist/test/test-dialecte.worker.d.ts.map +1 -0
  509. package/dist/test/test-entry-environment.constants.d.ts +27 -0
  510. package/dist/test/test-entry-environment.constants.d.ts.map +1 -0
  511. package/dist/test/test-record.d.ts +49 -1
  512. package/dist/test/test-record.d.ts.map +1 -1
  513. package/dist/test/test-storage/index.d.ts +5 -0
  514. package/dist/test/test-storage/index.d.ts.map +1 -0
  515. package/dist/test/test-storage/read-test-storage.d.ts +4 -0
  516. package/dist/test/test-storage/read-test-storage.d.ts.map +1 -0
  517. package/dist/test/test-storage/resolve-test-storage.d.ts +9 -0
  518. package/dist/test/test-storage/resolve-test-storage.d.ts.map +1 -0
  519. package/dist/test/test-storage/test-storage.constants.d.ts +9 -0
  520. package/dist/test/test-storage/test-storage.constants.d.ts.map +1 -0
  521. package/dist/test/test-storage/test-storage.types.d.ts +15 -0
  522. package/dist/test/test-storage/test-storage.types.d.ts.map +1 -0
  523. package/dist/test/test-storage/test-store-for.d.ts +19 -0
  524. package/dist/test/test-storage/test-store-for.d.ts.map +1 -0
  525. package/dist/test/test-storage/use-test-storage.d.ts +14 -0
  526. package/dist/test/test-storage/use-test-storage.d.ts.map +1 -0
  527. package/dist/test/test-timing.constants.d.ts +15 -0
  528. package/dist/test/test-timing.constants.d.ts.map +1 -0
  529. package/dist/test/xml/engine-console.d.ts +6 -0
  530. package/dist/test/xml/engine-console.d.ts.map +1 -0
  531. package/dist/test/xml/engine.d.ts +3 -0
  532. package/dist/test/xml/engine.d.ts.map +1 -0
  533. package/dist/test/xml/index.d.ts +8 -0
  534. package/dist/test/xml/index.d.ts.map +1 -0
  535. package/dist/test/xml/malformed-xml-error.d.ts +5 -0
  536. package/dist/test/xml/malformed-xml-error.d.ts.map +1 -0
  537. package/dist/test/xml/print-node.d.ts +7 -0
  538. package/dist/test/xml/print-node.d.ts.map +1 -0
  539. package/dist/test/xml/select-nodes.d.ts +14 -0
  540. package/dist/test/xml/select-nodes.d.ts.map +1 -0
  541. package/dist/test/xml/with-xml-document.constants.d.ts +7 -0
  542. package/dist/test/xml/with-xml-document.constants.d.ts.map +1 -0
  543. package/dist/test/xml/with-xml-document.d.ts +14 -0
  544. package/dist/test/xml/with-xml-document.d.ts.map +1 -0
  545. package/dist/test/xml/xml-query-refused-error.d.ts +13 -0
  546. package/dist/test/xml/xml-query-refused-error.d.ts.map +1 -0
  547. package/dist/test/xml/xml.constants.d.ts +16 -0
  548. package/dist/test/xml/xml.constants.d.ts.map +1 -0
  549. package/dist/test/xml/xml.types.d.ts +31 -0
  550. package/dist/test/xml/xml.types.d.ts.map +1 -0
  551. package/dist/test/xsd/test-ext.xsd +226 -0
  552. package/dist/test/xsd/test.xsd +528 -0
  553. package/dist/test.js +3427 -406
  554. package/dist/types/dialecte-config.d.ts +6 -0
  555. package/dist/types/dialecte-config.d.ts.map +1 -1
  556. package/dist/types/io.d.ts +5 -0
  557. package/dist/types/io.d.ts.map +1 -1
  558. package/dist/utils/attribute-rules.d.ts +16 -1
  559. package/dist/utils/attribute-rules.d.ts.map +1 -1
  560. package/dist/utils/child-occurrences.constants.d.ts +4 -0
  561. package/dist/utils/child-occurrences.constants.d.ts.map +1 -0
  562. package/dist/utils/child-occurrences.d.ts +17 -0
  563. package/dist/utils/child-occurrences.d.ts.map +1 -0
  564. package/dist/utils/child-occurrences.types.d.ts +6 -0
  565. package/dist/utils/child-occurrences.types.d.ts.map +1 -0
  566. package/dist/utils/datatype.d.ts +4 -0
  567. package/dist/utils/datatype.d.ts.map +1 -1
  568. package/dist/utils/format-xml.d.ts +4 -0
  569. package/dist/utils/format-xml.d.ts.map +1 -1
  570. package/dist/utils/index.d.ts +5 -1
  571. package/dist/utils/index.d.ts.map +1 -1
  572. package/dist/utils/invariant.d.ts +2 -0
  573. package/dist/utils/invariant.d.ts.map +1 -1
  574. package/dist/utils/namespaces.d.ts +15 -1
  575. package/dist/utils/namespaces.d.ts.map +1 -1
  576. package/dist/utils/order-children.d.ts +14 -3
  577. package/dist/utils/order-children.d.ts.map +1 -1
  578. package/dist/utils/order-children.types.d.ts +10 -0
  579. package/dist/utils/order-children.types.d.ts.map +1 -0
  580. package/dist/utils/particle-occurrences.d.ts +4 -0
  581. package/dist/utils/particle-occurrences.d.ts.map +1 -0
  582. package/dist/utils/required-choices.d.ts +17 -0
  583. package/dist/utils/required-choices.d.ts.map +1 -0
  584. package/dist/utils/required-choices.types.d.ts +15 -0
  585. package/dist/utils/required-choices.types.d.ts.map +1 -0
  586. package/dist/utils/resolve-definition.d.ts +4 -0
  587. package/dist/utils/resolve-definition.d.ts.map +1 -1
  588. package/dist/utils/save-to-disk.constants.d.ts +3 -0
  589. package/dist/utils/save-to-disk.constants.d.ts.map +1 -0
  590. package/dist/utils/save-to-disk.d.ts +17 -5
  591. package/dist/utils/save-to-disk.d.ts.map +1 -1
  592. package/dist/utils/save-to-disk.types.d.ts +17 -0
  593. package/dist/utils/save-to-disk.types.d.ts.map +1 -0
  594. package/dist/utils/seeded-uuid.constants.d.ts +5 -0
  595. package/dist/utils/seeded-uuid.constants.d.ts.map +1 -0
  596. package/dist/utils/seeded-uuid.d.ts +15 -0
  597. package/dist/utils/seeded-uuid.d.ts.map +1 -0
  598. package/dist/utils/seeded-uuid.types.d.ts +8 -0
  599. package/dist/utils/seeded-uuid.types.d.ts.map +1 -0
  600. package/dist/utils/tell-listener.constants.d.ts +9 -0
  601. package/dist/utils/tell-listener.constants.d.ts.map +1 -0
  602. package/dist/utils/tell-listener.d.ts +24 -0
  603. package/dist/utils/tell-listener.d.ts.map +1 -0
  604. package/dist/utils/xml-characters.constants.d.ts +9 -0
  605. package/dist/utils/xml-characters.constants.d.ts.map +1 -0
  606. package/dist/utils/xml-characters.d.ts +8 -0
  607. package/dist/utils/xml-characters.d.ts.map +1 -0
  608. package/dist/utils/xml-whitespace.constants.d.ts +8 -0
  609. package/dist/utils/xml-whitespace.constants.d.ts.map +1 -0
  610. package/dist/utils/xml-whitespace.d.ts +19 -0
  611. package/dist/utils/xml-whitespace.d.ts.map +1 -0
  612. package/dist/utils/xsi-type.d.ts +4 -0
  613. package/dist/utils/xsi-type.d.ts.map +1 -1
  614. package/dist/utils/yield-to-queue.d.ts +6 -0
  615. package/dist/utils/yield-to-queue.d.ts.map +1 -0
  616. package/dist/utils-USNkj4sT.js +1275 -0
  617. package/dist/utils.js +1 -2
  618. package/dist/xml/build/document-root.d.ts +7 -0
  619. package/dist/xml/build/document-root.d.ts.map +1 -0
  620. package/dist/xml/build/index.d.ts +0 -5
  621. package/dist/xml/build/index.d.ts.map +1 -1
  622. package/dist/xml/build/record-element.d.ts +15 -0
  623. package/dist/xml/build/record-element.d.ts.map +1 -0
  624. package/dist/xml/build/record-element.types.d.ts +12 -0
  625. package/dist/xml/build/record-element.types.d.ts.map +1 -0
  626. package/dist/xml/build/write-xml-records.d.ts +7 -0
  627. package/dist/xml/build/write-xml-records.d.ts.map +1 -0
  628. package/dist/xml/build/write-xml-records.types.d.ts +11 -0
  629. package/dist/xml/build/write-xml-records.types.d.ts.map +1 -0
  630. package/dist/xml/build/xml-element.d.ts +79 -0
  631. package/dist/xml/build/xml-element.d.ts.map +1 -0
  632. package/dist/xml/build/xml-element.types.d.ts +34 -0
  633. package/dist/xml/build/xml-element.types.d.ts.map +1 -0
  634. package/dist/xml/build/xml-writer.constants.d.ts +24 -0
  635. package/dist/xml/build/xml-writer.constants.d.ts.map +1 -0
  636. package/dist/xml/build/xml-writer.d.ts +40 -0
  637. package/dist/xml/build/xml-writer.d.ts.map +1 -0
  638. package/dist/xml/build/xml-writer.types.d.ts +34 -0
  639. package/dist/xml/build/xml-writer.types.d.ts.map +1 -0
  640. package/dist/xml/dom/index.d.ts +3 -0
  641. package/dist/xml/dom/index.d.ts.map +1 -0
  642. package/dist/xml/dom/xml-document-from-file.d.ts +10 -0
  643. package/dist/xml/dom/xml-document-from-file.d.ts.map +1 -0
  644. package/dist/xml/dom/xml-document-from-file.types.d.ts +5 -0
  645. package/dist/xml/dom/xml-document-from-file.types.d.ts.map +1 -0
  646. package/dist/xml/index.d.ts +1 -0
  647. package/dist/xml/index.d.ts.map +1 -1
  648. package/dist/xml/inspect-xml.d.ts +2 -0
  649. package/dist/xml/inspect-xml.d.ts.map +1 -1
  650. package/dist/xml/parse/index.d.ts +1 -1
  651. package/dist/xml/parse/index.d.ts.map +1 -1
  652. package/dist/xml/parse/parse-xml-document.constants.d.ts +5 -0
  653. package/dist/xml/parse/parse-xml-document.constants.d.ts.map +1 -0
  654. package/dist/xml/parse/parse-xml-document.d.ts +13 -2
  655. package/dist/xml/parse/parse-xml-document.d.ts.map +1 -1
  656. package/dist/xml/parse/parse-xml-document.types.d.ts +7 -2
  657. package/dist/xml/parse/parse-xml-document.types.d.ts.map +1 -1
  658. package/dist/xml/parse/parser.constants.d.ts +7 -0
  659. package/dist/xml/parse/parser.constants.d.ts.map +1 -0
  660. package/dist/xml/parse/parser.d.ts.map +1 -1
  661. package/package.json +88 -8
  662. package/skills/dialecte/SKILL.md +276 -0
  663. package/skills/dialecte/references/api.json +1830 -0
  664. package/skills/dialecte/references/api.md +557 -0
  665. package/skills/dialecte/references/core-api.md +204 -0
  666. package/skills/dialecte/references/testing.md +116 -0
  667. package/skills/dialecte-contributing/SKILL.md +328 -0
  668. package/skills/dialecte-contributing/references/code-rules.md +108 -0
  669. package/skills/dialecte-contributing/references/landing-changes.md +83 -0
  670. package/skills/dialecte-contributing/references/perf.md +39 -0
  671. package/skills/dialecte-contributing/references/traps.md +89 -0
  672. package/skills/dialecte-lot/SKILL.md +471 -0
  673. package/skills/dialecte-lot/references/briefs.md +152 -0
  674. package/skills/dialecte-lot/references/model-tiers.md +52 -0
  675. package/skills/dialecte-lot/references/retro.md +51 -0
  676. package/dist/project/io/import-document.d.ts +0 -7
  677. package/dist/project/io/import-document.d.ts.map +0 -1
  678. package/dist/test/assert-xml/types.d.ts +0 -2
  679. package/dist/test/assert-xml/types.d.ts.map +0 -1
  680. package/dist/utils-DJN0Md0v.js +0 -624
  681. package/dist/xml/build/build-xml-document.d.ts +0 -10
  682. package/dist/xml/build/build-xml-document.d.ts.map +0 -1
  683. package/dist/xml/build/build-xml-document.types.d.ts +0 -22
  684. package/dist/xml/build/build-xml-document.types.d.ts.map +0 -1
  685. package/dist/xml/build/download-file.d.ts +0 -7
  686. package/dist/xml/build/download-file.d.ts.map +0 -1
  687. package/dist/xml/build/formatter.d.ts +0 -2
  688. package/dist/xml/build/formatter.d.ts.map +0 -1
  689. package/dist/xml/build/serialize.d.ts +0 -11
  690. package/dist/xml/build/serialize.d.ts.map +0 -1
  691. package/dist/xml/build/serialize.types.d.ts +0 -12
  692. package/dist/xml/build/serialize.types.d.ts.map +0 -1
@@ -0,0 +1,2791 @@
1
+ import { S as e, T as t, _ as n, a as r, b as i, c as a, d as o, f as s, g as c, h as l, i as u, l as d, m as f, n as p, o as m, p as h, r as ee, s as g, t as _, u as v, v as y, w as b, x, y as S } from "./engine.constants-DBMjMmV9.js";
2
+ import { A as C, E as w, G as T, K as E, M as D, P as te, S as ne, T as re, U as O, V as k, W as A, _ as j, a as ie, b as ae, h as oe, i as se, j as ce, k as le, n as ue, p as de, r as fe, w as M, x as N, y as P } from "./project-key-Ch34EtFa.js";
3
+ import { G as pe, V as F, W as I, f as me } from "./utils-USNkj4sT.js";
4
+ import { T as he, d as ge, i as _e, m as L, n as R, o as z, p as ve, r as ye, t as be, u as xe } from "./same-json-value-C6kUaoyt.js";
5
+ import Se from "@sqlite.org/sqlite-wasm";
6
+ // src/store/engine/host/store-events.ts
7
+ var Ce = {
8
+ registerDocument: function({ args: e }) {
9
+ return {
10
+ type: "init-empty-document",
11
+ documentId: e[0].id
12
+ };
13
+ },
14
+ updateDocument: function({ args: e, value: t }) {
15
+ return B({ value: t }) ? {
16
+ type: "document-updated",
17
+ documentId: e[0]
18
+ } : void 0;
19
+ },
20
+ removeDocument: function({ args: e, value: t }) {
21
+ return B({ value: t }) ? {
22
+ type: "document-removed",
23
+ documentId: e[0]
24
+ } : void 0;
25
+ },
26
+ bulkWrite: function({ args: e, value: t }) {
27
+ return B({ value: t }) ? {
28
+ type: "commit",
29
+ documentId: e[0]
30
+ } : void 0;
31
+ },
32
+ commit: function({ args: e }) {
33
+ return {
34
+ type: "commit",
35
+ documentId: e[0].documentId
36
+ };
37
+ },
38
+ undo: function({ args: e, value: t }) {
39
+ return B({ value: t }) ? {
40
+ type: "commit",
41
+ documentId: e[0]
42
+ } : void 0;
43
+ },
44
+ redo: function({ args: e, value: t }) {
45
+ return B({ value: t }) ? {
46
+ type: "commit",
47
+ documentId: e[0]
48
+ } : void 0;
49
+ },
50
+ importFile: function({ value: e }) {
51
+ return {
52
+ type: "document-imported",
53
+ documentId: e.record.id
54
+ };
55
+ },
56
+ addBlob: function({ args: e }) {
57
+ let t = e[0];
58
+ return {
59
+ type: "blob-added",
60
+ blobId: t.id,
61
+ documentId: t.documentId
62
+ };
63
+ },
64
+ attachBlob: function({ args: e, value: t }) {
65
+ if (B({ value: t })) return {
66
+ type: "blob-attached",
67
+ blobId: e[0],
68
+ ref: e[1]
69
+ };
70
+ },
71
+ detachBlob: function({ args: e, value: t }) {
72
+ if (B({ value: t })) return {
73
+ type: "blob-detached",
74
+ blobId: e[0],
75
+ ref: e[1]
76
+ };
77
+ },
78
+ removeBlob: function({ args: e, value: t }) {
79
+ return B({ value: t }) ? {
80
+ type: "blob-removed",
81
+ blobId: e[0]
82
+ } : void 0;
83
+ }
84
+ };
85
+ function B(e) {
86
+ return e.value !== !1;
87
+ }
88
+ function we(e) {
89
+ let { member: t, args: n, value: r, connectionId: i } = e, a = Ce[t]?.({
90
+ args: n,
91
+ value: r
92
+ });
93
+ if (!a) return;
94
+ let o = Te({ args: n });
95
+ return {
96
+ type: fe.event,
97
+ message: {
98
+ ...a,
99
+ timestamp: Date.now()
100
+ },
101
+ connectionId: i,
102
+ ...o !== void 0 && { writeId: o }
103
+ };
104
+ }
105
+ function Te(e) {
106
+ let [t] = e.args;
107
+ if (typeof t != "object" || !t || !("writeId" in t)) return;
108
+ let { writeId: n } = t;
109
+ return typeof n == "string" ? n : void 0;
110
+ }
111
+ // src/store/sqlite/sqlite.constants.ts
112
+ var Ee = {
113
+ opfs: !0,
114
+ "opfs-vfs": !0,
115
+ "opfs-wl": !0
116
+ }, De = Object.keys({
117
+ typedArrayToString: !0,
118
+ typedArrayPart: !0,
119
+ allocCString: !0,
120
+ alloc: !0,
121
+ heap8u: !0
122
+ }), Oe = Symbol.for("dialecte.sqlite.losslessText");
123
+ // src/store/sqlite/sqlite-text.ts
124
+ function ke(e) {
125
+ let { sqlite3: t } = e;
126
+ if (Ae({ sqlite3: t })) return;
127
+ let n = Me({ sqlite3: t }), r = new TextDecoder("utf-8", { ignoreBOM: !0 }), i = n.allocCString;
128
+ Object.assign(t.wasm, {
129
+ typedArrayToString: function(e, t, i) {
130
+ return r.decode(n.typedArrayPart(e, t, i));
131
+ },
132
+ allocCString: function(e, t) {
133
+ return typeof e != "string" || e.isWellFormed() ? i(e, t) : Ne({
134
+ wasm: n,
135
+ bytes: je({ text: e }),
136
+ returnWithLength: t
137
+ });
138
+ }
139
+ }), Object.defineProperty(t.wasm, Oe, { value: !0 });
140
+ }
141
+ function Ae(e) {
142
+ return e.sqlite3.wasm[Oe] === !0;
143
+ }
144
+ function je(e) {
145
+ let { text: t } = e, n = [];
146
+ for (let e = 0; e < t.length; e++) {
147
+ let r = t.codePointAt(e);
148
+ r < 128 ? n.push(r) : r < 2048 ? n.push(192 | r >> 6, 128 | r & 63) : r < 65536 ? n.push(224 | r >> 12, 128 | r >> 6 & 63, 128 | r & 63) : (n.push(240 | r >> 18, 128 | r >> 12 & 63, 128 | r >> 6 & 63, 128 | r & 63), e++);
149
+ }
150
+ return Uint8Array.from(n);
151
+ }
152
+ function Me(e) {
153
+ let { sqlite3: t } = e, n = t.wasm, r = De.filter(function(e) {
154
+ return typeof n[e] != "function";
155
+ });
156
+ if (r.length > 0) throw F("ASSERTION_FAILED", { detail: `sqlite-wasm's wasm utilities lack ${r.join(", ")} (SQLite ${t.version?.libVersion ?? "unknown"}): not the sqlite-wasm build core pins, its text codec cannot be made lossless` });
157
+ return n;
158
+ }
159
+ function Ne(e) {
160
+ let { wasm: t, bytes: n, returnWithLength: r } = e, i = t.alloc(n.length + 1), a = t.heap8u();
161
+ return a.set(n, i), a[i + n.length] = 0, r ? [i, n.length] : i;
162
+ }
163
+ // src/store/sqlite/engine/blobs.ts
164
+ function Pe(e) {
165
+ let { db: t, entry: n, type: r, bytes: i } = e;
166
+ t.exec({
167
+ sql: `INSERT OR REPLACE INTO ${k} (id, documentId, entry) VALUES (?, ?, ?)`,
168
+ bind: [
169
+ n.id,
170
+ n.documentId,
171
+ JSON.stringify(n)
172
+ ]
173
+ }), t.exec({
174
+ sql: `INSERT OR REPLACE INTO ${x} (id, type, bytes) VALUES (?, ?, ?)`,
175
+ bind: [
176
+ n.id,
177
+ r,
178
+ i
179
+ ]
180
+ });
181
+ }
182
+ function Fe(e) {
183
+ let { db: t, blobId: n } = e, [r] = t.selectArrays(`SELECT b.entry, d.type, d.bytes FROM ${k} b JOIN ${x} d ON d.id = b.id WHERE b.id = ?`, [n]);
184
+ if (!r) return;
185
+ let [i, a, o] = r;
186
+ return {
187
+ entry: JSON.parse(String(i)),
188
+ type: String(a),
189
+ bytes: o instanceof Uint8Array ? o : /* @__PURE__ */ new Uint8Array()
190
+ };
191
+ }
192
+ function Ie(e) {
193
+ let { db: t, blobId: n } = e, r = t.selectValue(`SELECT entry FROM ${k} WHERE id = ?`, [n]);
194
+ return r === void 0 ? void 0 : JSON.parse(String(r));
195
+ }
196
+ function Le(e) {
197
+ let { db: t, entry: n } = e;
198
+ t.exec({
199
+ sql: `UPDATE ${k} SET entry = ? WHERE id = ?`,
200
+ bind: [JSON.stringify(n), n.id]
201
+ });
202
+ }
203
+ function Re(e) {
204
+ let { db: t, filter: n } = e;
205
+ return (n === "standalone" ? t.selectValues(`SELECT entry FROM ${k} WHERE json_array_length(entry, '$.attachedTo') = 0`) : t.selectValues(`SELECT entry FROM ${k} b WHERE EXISTS (SELECT 1 FROM json_each(b.entry, '$.attachedTo') a WHERE a.value->>'documentId' = ? AND (? IS NULL OR a.value->>'recordRef' = ?))`, [
206
+ n.documentId,
207
+ n.recordRef ?? null,
208
+ n.recordRef ?? null
209
+ ])).map((e) => JSON.parse(String(e))).sort(R);
210
+ }
211
+ function ze(e) {
212
+ let { db: t, blobId: n } = e;
213
+ t.exec({
214
+ sql: `DELETE FROM ${x} WHERE id = ?`,
215
+ bind: [n]
216
+ }), t.exec({
217
+ sql: `DELETE FROM ${k} WHERE id = ?`,
218
+ bind: [n]
219
+ });
220
+ }
221
+ function Be(e) {
222
+ let { db: t, documentId: n } = e;
223
+ t.exec({
224
+ sql: `DELETE FROM ${x} WHERE id IN (SELECT id FROM ${k} WHERE documentId = ?)`,
225
+ bind: [n]
226
+ }), t.exec({
227
+ sql: `DELETE FROM ${k} WHERE documentId = ?`,
228
+ bind: [n]
229
+ });
230
+ }
231
+ // src/store/sqlite/engine/bulk-insert.ts
232
+ function Ve(e) {
233
+ return N({ value: e.records }), He({ records: e.records });
234
+ }
235
+ function He(e) {
236
+ let { records: t } = e, n = [];
237
+ for (let e = 0; e < t.length; e += y) {
238
+ let r = t.slice(e, e + y).map((e) => Ge({ record: e }));
239
+ n.push(JSON.stringify(r));
240
+ }
241
+ return { payloads: n };
242
+ }
243
+ function Ue(e) {
244
+ let { db: t, table: n, rows: r, lead: a } = e;
245
+ if (r.payloads.length === 0) return;
246
+ let o = t.prepare(a ? `INSERT INTO ${n} (${[...a.columns, f].join(", ")}) SELECT ${[...a.columns.map(() => "?"), ...i].join(", ")} FROM json_each(?) e ORDER BY e.key` : `INSERT INTO ${n} (${f}) SELECT ${i.join(", ")} FROM json_each(?) e`);
247
+ try {
248
+ for (let e of r.payloads) o.bind([...a?.values ?? [], e]).stepReset();
249
+ } finally {
250
+ o.finalize();
251
+ }
252
+ }
253
+ function We(e) {
254
+ let { db: t, table: n, records: r, perf: i } = e;
255
+ Ue({
256
+ db: t,
257
+ table: n,
258
+ rows: i.time("import::encode", function() {
259
+ return He({ records: r });
260
+ })
261
+ });
262
+ }
263
+ function Ge(e) {
264
+ let { record: t } = e;
265
+ return [
266
+ t.id,
267
+ t.tagName,
268
+ t.namespace.prefix,
269
+ t.namespace.uri,
270
+ t.value,
271
+ t.parent?.id ?? null,
272
+ t.parent?.tagName ?? null,
273
+ t.attributes,
274
+ t.children
275
+ ];
276
+ }
277
+ // src/store/sqlite/engine/engine-errors.ts
278
+ function V(e) {
279
+ let { key: t, detail: n, work: r } = e;
280
+ try {
281
+ return r();
282
+ } catch (e) {
283
+ throw Ke({
284
+ key: t,
285
+ detail: n,
286
+ thrown: e
287
+ });
288
+ }
289
+ }
290
+ function Ke(e) {
291
+ let { key: t, detail: n, thrown: r } = e;
292
+ if (pe(r)) return r;
293
+ let i = r instanceof Error ? r : Error(String(r));
294
+ return F(t, {
295
+ detail: `${n}: ${i.message}`,
296
+ cause: i
297
+ });
298
+ }
299
+ function H(e) {
300
+ let { detail: t, work: n } = e;
301
+ return V({
302
+ key: "STORE_READ_FAILED",
303
+ detail: `${t} could not be read`,
304
+ work: n
305
+ });
306
+ }
307
+ function qe(e) {
308
+ let t = e.thrown;
309
+ for (let e = 0; typeof t == "object" && t && e < 8; e += 1) {
310
+ let e = t.resultCode;
311
+ if (typeof e == "number") return e & 255;
312
+ t = t.cause;
313
+ }
314
+ }
315
+ // src/store/sqlite/engine/records.ts
316
+ function Je(e) {
317
+ let { db: t, table: n, id: r } = e, [i] = t.selectArrays(`SELECT ${f} FROM ${n} WHERE id = ?`, [r]);
318
+ return i ? U({ row: i }) : void 0;
319
+ }
320
+ function Ye(e) {
321
+ let { db: t, table: n } = e;
322
+ return t.selectArrays(`SELECT ${f} FROM ${n}`).map((e) => U({ row: e })).sort(R);
323
+ }
324
+ function Xe(e) {
325
+ let { db: t, table: n, tagName: r } = e;
326
+ return t.selectArrays(`SELECT ${f} FROM ${n} WHERE tagName = ?`, [r]).map((e) => U({ row: e })).sort(R);
327
+ }
328
+ function Ze(e) {
329
+ let { db: t, table: n, ids: r } = e, i = t.selectArrays(`SELECT ${f} FROM ${n} WHERE id IN (SELECT value FROM json_each(?))`, [JSON.stringify(r)]);
330
+ return new Map(i.map((e) => [String(e[0]), U({ row: e })]));
331
+ }
332
+ function Qe(e) {
333
+ let { db: t, table: n } = e, r = t.prepare(`SELECT ${f} FROM ${n} WHERE id IN (SELECT value FROM json_each(?))`);
334
+ return {
335
+ read: function(e) {
336
+ let t = /* @__PURE__ */ new Map();
337
+ try {
338
+ for (r.bind([JSON.stringify(e)]); r.step();) {
339
+ let e = U({ row: r.get([]) });
340
+ t.set(e.id, e);
341
+ }
342
+ } finally {
343
+ r.reset(!0);
344
+ }
345
+ return t;
346
+ },
347
+ finalize: function() {
348
+ r.finalize();
349
+ }
350
+ };
351
+ }
352
+ function $e(e) {
353
+ let { db: t, table: n, ids: r } = e;
354
+ return new Set(t.selectValues(`SELECT id FROM ${n} WHERE id IN (SELECT value FROM json_each(?))`, [JSON.stringify(r)]).map(String));
355
+ }
356
+ function et(e) {
357
+ return Number(e.db.selectValue(`SELECT count(*) FROM ${e.table}`));
358
+ }
359
+ function tt(e) {
360
+ let { db: t, table: n, documentId: r, creates: i } = e;
361
+ if (i.length === 0) return;
362
+ let a = i.map((e) => e.id);
363
+ nt({
364
+ documentId: r,
365
+ ids: a,
366
+ heldIds: $e({
367
+ db: t,
368
+ table: n,
369
+ ids: a
370
+ })
371
+ });
372
+ }
373
+ function nt(e) {
374
+ let { documentId: t, ids: n, heldIds: r } = e, i = /* @__PURE__ */ new Set(), a = [], o = [];
375
+ for (let e of n) r.has(e) && a.push(e), i.has(e) && o.push(e), i.add(e);
376
+ return (a.length > 0 || o.length > 0) && le({
377
+ documentId: t,
378
+ held: a,
379
+ repeated: o
380
+ }), i;
381
+ }
382
+ function rt(e) {
383
+ let { sqlite3: t, db: n, table: r, documentId: i, thrown: a } = e;
384
+ if (a?.resultCode !== t.capi.SQLITE_CONSTRAINT_UNIQUE) return;
385
+ let o = n.selectValues(`SELECT id FROM ${r} GROUP BY id HAVING count(*) > 1 LIMIT ?`, [100]).map(String);
386
+ le({
387
+ documentId: i,
388
+ held: [],
389
+ repeated: o,
390
+ cause: a instanceof Error ? a : void 0
391
+ });
392
+ }
393
+ function it(e) {
394
+ let { db: t, table: n, patches: r } = e;
395
+ if (r.length === 0) return;
396
+ let i = /* @__PURE__ */ new Set();
397
+ for (let e = 0; e < r.length; e += y) {
398
+ let a = r.slice(e, e + y).map((e) => e.recordId);
399
+ for (let e of $e({
400
+ db: t,
401
+ table: n,
402
+ ids: a
403
+ })) i.add(e);
404
+ }
405
+ at({
406
+ patches: r,
407
+ held: i
408
+ });
409
+ }
410
+ function at(e) {
411
+ let { patches: t, held: n } = e, r = t.filter((e) => n.has(e.recordId));
412
+ return N({ value: r }), r;
413
+ }
414
+ function ot(e) {
415
+ let { db: t, table: r, patches: i } = e;
416
+ if (i.length === 0) return;
417
+ let a = t.prepare(`UPDATE ${r} SET ${n} FROM (SELECT ${S} FROM json_each(?) e) AS u WHERE ${r}.id = u.c0`);
418
+ try {
419
+ for (let e = 0; e < i.length; e += y) {
420
+ let n = i.slice(e, e + y), o = Ze({
421
+ db: t,
422
+ table: r,
423
+ ids: n.map((e) => e.recordId)
424
+ }), s = /* @__PURE__ */ new Map();
425
+ for (let e of n) {
426
+ let t = s.get(e.recordId) ?? o.get(e.recordId);
427
+ t && s.set(e.recordId, ge({
428
+ record: t,
429
+ patch: e
430
+ }));
431
+ }
432
+ let c = He({ records: [...s.values()] });
433
+ for (let e of c.payloads) a.bind([e]).stepReset();
434
+ }
435
+ } finally {
436
+ a.finalize();
437
+ }
438
+ }
439
+ function st(e) {
440
+ let { db: t, table: n, ids: r } = e;
441
+ return r.length === 0 ? 0 : (t.exec({
442
+ sql: `DELETE FROM ${n} WHERE id IN (SELECT value FROM json_each(?))`,
443
+ bind: [JSON.stringify(r)]
444
+ }), t.changes());
445
+ }
446
+ function U(e) {
447
+ let [t, n, r, i, a, o, s, c, l] = e.row;
448
+ return {
449
+ id: String(t),
450
+ tagName: String(n),
451
+ namespace: {
452
+ prefix: String(r ?? ""),
453
+ uri: String(i ?? "")
454
+ },
455
+ attributes: JSON.parse(String(c)),
456
+ value: String(a ?? ""),
457
+ parent: o === null ? null : {
458
+ id: String(o),
459
+ tagName: String(s)
460
+ },
461
+ children: JSON.parse(String(l))
462
+ };
463
+ }
464
+ // src/store/sqlite/engine/history.ts
465
+ function ct(e) {
466
+ let { db: t, documentId: n, table: r, writeId: i } = e;
467
+ t.exec({
468
+ sql: `DELETE FROM ${r} WHERE entry IN (SELECT id FROM ${O} WHERE documentId = ? AND state = ?)`,
469
+ bind: [n, d.undone]
470
+ }), t.exec({
471
+ sql: `UPDATE ${O} SET state = ?, sequenceNumber = NULL WHERE documentId = ? AND state = ?`,
472
+ bind: [
473
+ d.discarded,
474
+ n,
475
+ d.undone
476
+ ]
477
+ });
478
+ let a = Number(t.selectValue(`SELECT coalesce(max(sequenceNumber), 0) FROM ${O} WHERE documentId = ?`, [n]));
479
+ return t.exec({
480
+ sql: `INSERT INTO ${O} (documentId, sequenceNumber, timestamp, writeId, state) VALUES (?, ?, ?, ?, ?)`,
481
+ bind: [
482
+ n,
483
+ a + 1,
484
+ Date.now(),
485
+ i,
486
+ d.applied
487
+ ]
488
+ }), { id: Number(t.selectValue("SELECT last_insert_rowid()")) };
489
+ }
490
+ function lt(e) {
491
+ let { db: t, records: n, table: r, entry: i, part: a, ids: o } = e;
492
+ o.length !== 0 && t.exec({
493
+ sql: `INSERT INTO ${r} (entry, part, ${f}) SELECT ?, ?, ${l.map((e) => `t.${e}`).join(", ")} FROM json_each(?) j JOIN ${n} t ON t.id = j.value ORDER BY j.key`,
494
+ bind: [
495
+ i.id,
496
+ v[a],
497
+ JSON.stringify(o)
498
+ ]
499
+ });
500
+ }
501
+ function ut(e) {
502
+ let { db: t, table: n, entry: r, part: i, rows: a } = e;
503
+ Ue({
504
+ db: t,
505
+ table: n,
506
+ rows: a,
507
+ lead: {
508
+ columns: ["entry", "part"],
509
+ values: [r.id, v[i]]
510
+ }
511
+ });
512
+ }
513
+ function dt(e) {
514
+ let { direction: t, ...n } = e;
515
+ return t === "forward" ? W({
516
+ ...n,
517
+ part: "create"
518
+ }) + W({
519
+ ...n,
520
+ part: "after"
521
+ }) - ft({
522
+ ...n,
523
+ part: "delete"
524
+ }) : W({
525
+ ...n,
526
+ part: "delete"
527
+ }) + W({
528
+ ...n,
529
+ part: "before"
530
+ }) - ft({
531
+ ...n,
532
+ part: "create"
533
+ });
534
+ }
535
+ function W(e) {
536
+ let { db: t, records: n, table: r, entry: i, part: a } = e, o = [i.id, v[a]], s = Number(t.selectValue(`SELECT count(DISTINCT h.id) FROM ${r} h WHERE h.entry = ? AND h.part = ? AND NOT EXISTS (SELECT 1 FROM ${n} t WHERE t.id = h.id)`, o));
537
+ return t.exec({
538
+ sql: `INSERT OR REPLACE INTO ${n} (${f}) SELECT ${f} FROM ${r} WHERE entry = ? AND part = ? ORDER BY rowNo`,
539
+ bind: o
540
+ }), s;
541
+ }
542
+ function ft(e) {
543
+ let { db: t, records: n, table: r, entry: i, part: a } = e;
544
+ return t.exec({
545
+ sql: `DELETE FROM ${n} WHERE id IN (SELECT id FROM ${r} WHERE entry = ? AND part = ?)`,
546
+ bind: [i.id, v[a]]
547
+ }), t.changes();
548
+ }
549
+ function pt(e) {
550
+ let { db: t, documentId: n } = e, r = t.selectValue(`SELECT id FROM ${O} WHERE documentId = ? AND state = ? ORDER BY sequenceNumber DESC LIMIT 1`, [n, d.applied]);
551
+ return r === void 0 ? void 0 : { id: Number(r) };
552
+ }
553
+ function mt(e) {
554
+ let { db: t, documentId: n } = e, r = t.selectValue(`SELECT id FROM ${O} WHERE documentId = ? AND state = ? ORDER BY sequenceNumber LIMIT 1`, [n, d.undone]);
555
+ return r === void 0 ? void 0 : { id: Number(r) };
556
+ }
557
+ function ht(e) {
558
+ let { db: t, entry: n, state: r } = e;
559
+ t.exec({
560
+ sql: `UPDATE ${O} SET state = ? WHERE id = ?`,
561
+ bind: [d[r], n.id]
562
+ });
563
+ }
564
+ function gt(e) {
565
+ let { db: t, documentId: n } = e, r = `EXISTS (SELECT 1 FROM ${O} WHERE documentId = ? AND state = ?)`, [i] = t.selectArrays(`SELECT ${r}, ${r}`, [
566
+ n,
567
+ d.applied,
568
+ n,
569
+ d.undone
570
+ ]);
571
+ return {
572
+ canUndo: Number(i?.[0]) === 1,
573
+ canRedo: Number(i?.[1]) === 1
574
+ };
575
+ }
576
+ function _t(e) {
577
+ let { db: t, documentId: n, table: r } = e, i = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map();
578
+ for (let [e, r, s, c] of t.selectArrays(`SELECT id, sequenceNumber, timestamp, writeId FROM ${O} WHERE documentId = ? AND state != ? ORDER BY sequenceNumber`, [n, d.discarded])) i.set(Number(e), {
579
+ id: Number(e),
580
+ documentId: n,
581
+ sequenceNumber: Number(r),
582
+ timestamp: Number(s),
583
+ writeId: String(c),
584
+ operations: {
585
+ creates: [],
586
+ updates: [],
587
+ deletes: []
588
+ }
589
+ }), a.set(Number(e), []), o.set(Number(e), []);
590
+ if (i.size === 0) return [];
591
+ for (let [e, n, ...s] of t.selectArrays(`SELECT entry, part, ${f} FROM ${r} ORDER BY rowNo`)) {
592
+ let t = i.get(Number(e));
593
+ if (!t) continue;
594
+ let r = U({ row: s });
595
+ n === v.create && t.operations.creates.push(r), n === v.before && a.get(t.id).push(r), n === v.after && o.get(t.id).push(r), n === v.delete && t.operations.deletes.push(r);
596
+ }
597
+ for (let e of i.values()) {
598
+ let t = o.get(e.id);
599
+ e.operations.updates = a.get(e.id).map((e, n) => ({
600
+ before: e,
601
+ after: t[n]
602
+ }));
603
+ }
604
+ return [...i.values()];
605
+ }
606
+ function vt(e) {
607
+ let { db: t, writeId: n } = e;
608
+ return t.selectValue(`SELECT 1 FROM ${O} WHERE writeId = ? LIMIT 1`, [n]) !== void 0;
609
+ }
610
+ function yt(e) {
611
+ let { db: t, documentId: n, table: r } = e;
612
+ t.exec(`DROP TABLE ${r}`), t.exec({
613
+ sql: `DELETE FROM ${O} WHERE documentId = ?`,
614
+ bind: [n]
615
+ });
616
+ }
617
+ // src/store/sqlite/engine/transaction.ts
618
+ function G(e) {
619
+ let { sqlite3: t, db: n, work: r } = e;
620
+ n.exec("BEGIN IMMEDIATE");
621
+ try {
622
+ let e = r();
623
+ return n.exec("COMMIT"), e;
624
+ } catch (e) {
625
+ throw t.capi.sqlite3_get_autocommit(n) === 0 && n.exec("ROLLBACK"), e;
626
+ }
627
+ }
628
+ // src/store/sqlite/engine/schema.ts
629
+ function bt(e) {
630
+ let { db: t, steadyCacheMiB: n } = e;
631
+ t.exec(`PRAGMA locking_mode=EXCLUSIVE; PRAGMA temp_store=MEMORY; PRAGMA journal_mode=TRUNCATE; PRAGMA synchronous=FULL; PRAGMA cache_size=${-n * 1024};`);
632
+ }
633
+ function xt(e) {
634
+ let { sqlite3: t, db: n, dialecteId: r } = e, i = crypto.randomUUID();
635
+ return n.exec("PRAGMA auto_vacuum=INCREMENTAL"), G({
636
+ sqlite3: t,
637
+ db: n,
638
+ work: a
639
+ }), i;
640
+ function a() {
641
+ n.exec(`CREATE TABLE ${T} (key TEXT PRIMARY KEY, value TEXT NOT NULL);CREATE TABLE ${A} (seq INTEGER PRIMARY KEY, ${K({ columns: m })});CREATE TABLE ${O} (${K({ columns: u })});CREATE UNIQUE INDEX ${O}_sequence ON ${O}(documentId, sequenceNumber);CREATE INDEX ${O}_state ON ${O}(documentId, state, sequenceNumber);CREATE INDEX ${O}_writeId ON ${O}(writeId);CREATE TABLE ${k} (${K({ columns: p })});CREATE INDEX ${k}_documentId ON ${k}(documentId);CREATE TABLE ${x} (${K({ columns: ee })});`), n.exec({
642
+ sql: `INSERT INTO ${T} (key, value) VALUES (?, ?), (?, ?), (?, ?)`,
643
+ bind: [
644
+ s.dialecteId,
645
+ r,
646
+ s.layoutVersion,
647
+ "4",
648
+ s.creationId,
649
+ i
650
+ ]
651
+ }), n.exec(`PRAGMA application_id=${St({ dialecteId: r })}`), n.exec("PRAGMA user_version=4");
652
+ }
653
+ }
654
+ function St(e) {
655
+ let { offsetBasis: t, prime: n } = _, r = t;
656
+ for (let t of new TextEncoder().encode(e.dialecteId)) r = Math.imul(r ^ t, n);
657
+ return r | 0;
658
+ }
659
+ function Ct(e) {
660
+ let { sqlite3: n, db: r, project: i, dialecteId: a, expectedCreationId: o, steadyCacheMiB: s } = e, c = Number(r.selectValue("PRAGMA user_version")), l = Number(r.selectValue("SELECT count(*) FROM sqlite_schema"));
661
+ if (c === 0 && l === 0) return t({
662
+ project: i,
663
+ expectedCreationId: o,
664
+ creationId: void 0
665
+ }), bt({
666
+ db: r,
667
+ steadyCacheMiB: s
668
+ }), { creationId: xt({
669
+ sqlite3: n,
670
+ db: r,
671
+ dialecteId: a
672
+ }) };
673
+ if (c === 4) {
674
+ let e = wt({ db: r });
675
+ return Et({
676
+ project: i,
677
+ dialecteId: a,
678
+ fileDialecteId: e.dialecteId
679
+ }), t({
680
+ project: i,
681
+ expectedCreationId: o,
682
+ creationId: e.creationId
683
+ }), bt({
684
+ db: r,
685
+ steadyCacheMiB: s
686
+ }), { creationId: e.creationId };
687
+ }
688
+ I("PROJECT_LAYOUT_OUTDATED", {
689
+ detail: `The project file is at layout ${c}, this library reads layout 4: delete the project and import its files again`,
690
+ meta: {
691
+ layoutVersion: c,
692
+ expectedLayoutVersion: 4
693
+ }
694
+ });
695
+ }
696
+ function wt(e) {
697
+ let t = e.db.selectObjects(`SELECT key, value FROM ${T}`), n = new Map(t.map(Tt));
698
+ return {
699
+ dialecteId: n.get(s.dialecteId) ?? "",
700
+ creationId: n.get(s.creationId) ?? ""
701
+ };
702
+ }
703
+ function Tt(e) {
704
+ return [e.key, e.value];
705
+ }
706
+ function Et(e) {
707
+ let { project: t, dialecteId: n, fileDialecteId: r } = e;
708
+ r !== n && I("PROJECT_DIALECTE_MISMATCH", {
709
+ detail: `The file of "${t}" was stored by ${r || "no dialecte"}, this engine runs ${n}: nothing of it was written`,
710
+ meta: {
711
+ project: t,
712
+ projectDialecteId: r,
713
+ realmDialecteId: n
714
+ }
715
+ });
716
+ }
717
+ function Dt(e) {
718
+ let { db: t, table: n } = e;
719
+ t.exec(`CREATE TABLE ${n} (${K({ columns: h })})`);
720
+ }
721
+ function Ot(e) {
722
+ let { db: t, table: n } = e;
723
+ t.exec(`CREATE TABLE ${n} (rowNo INTEGER PRIMARY KEY, entry INTEGER NOT NULL, part INTEGER NOT NULL, ${K({ columns: h })});CREATE INDEX ${n}_entry ON ${n}(entry, part);`);
724
+ }
725
+ function kt(e) {
726
+ let { db: t, table: n, index: r } = e, { column: i, unique: a } = c[r];
727
+ t.exec(`CREATE ${a ? "UNIQUE " : ""}INDEX ${n}_${r} ON ${n}(${i})`);
728
+ }
729
+ function At(e) {
730
+ for (let t of Object.keys(c)) kt({
731
+ ...e,
732
+ index: t
733
+ });
734
+ }
735
+ function K(e) {
736
+ return Object.entries(e.columns).map(([e, t]) => `${e} ${t}`).join(", ");
737
+ }
738
+ // src/store/sqlite/engine/registry.ts
739
+ function jt(e) {
740
+ let { db: t } = e;
741
+ Ht({
742
+ db: t,
743
+ documentId: e.document.id
744
+ }) !== void 0 && re({ documentId: e.document.id });
745
+ let n = M({ value: e.document });
746
+ n.path !== void 0 && L({
747
+ document: n,
748
+ documents: Vt({ db: t })
749
+ });
750
+ let r = Object.keys(m).map(() => "?").join(", ");
751
+ t.exec({
752
+ sql: `INSERT INTO ${A} (${g}) VALUES (${r})`,
753
+ bind: Gt({ document: n })
754
+ });
755
+ let i = Number(t.selectValue("SELECT last_insert_rowid()")), a = Ut({ seq: i });
756
+ return Dt({
757
+ db: t,
758
+ table: a
759
+ }), Ot({
760
+ db: t,
761
+ table: Wt({ seq: i })
762
+ }), {
763
+ seq: i,
764
+ table: a
765
+ };
766
+ }
767
+ function Mt(e) {
768
+ let { db: t, documentId: n } = e, [r] = t.selectArrays(`SELECT seq, status, writeId, createdAt FROM ${A} WHERE id = ?`, [n]);
769
+ if (!r) return;
770
+ let [i, a, o, s] = r;
771
+ return {
772
+ seq: Number(i),
773
+ status: Jt({ value: a }),
774
+ writeId: o === null ? void 0 : String(o),
775
+ createdAt: Number(s)
776
+ };
777
+ }
778
+ function Nt(e) {
779
+ let { db: t, documentId: n } = e;
780
+ return t.exec({
781
+ sql: `UPDATE ${A} SET status = ? WHERE id = ? AND status = ?`,
782
+ bind: [
783
+ "ready",
784
+ n,
785
+ "importing"
786
+ ]
787
+ }), t.changes() === 1;
788
+ }
789
+ function Pt(e) {
790
+ let { db: t, documentId: n } = e, [r] = t.selectArrays(`SELECT ${g} FROM ${A} WHERE id = ?`, [n]);
791
+ return r ? qt({ row: r }) : void 0;
792
+ }
793
+ function Ft(e) {
794
+ return e.db.selectArrays(`SELECT ${g} FROM ${A}`).map((e) => qt({ row: e })).sort(R);
795
+ }
796
+ function It(e) {
797
+ let { db: t, documentId: n } = e, r = M({ value: e.updates }), i = Pt({
798
+ db: t,
799
+ documentId: n
800
+ });
801
+ if (!i) return !1;
802
+ let a = ve({
803
+ document: i,
804
+ updates: r
805
+ });
806
+ return a.path !== i.path && L({
807
+ document: a,
808
+ documents: Vt({ db: t })
809
+ }), Lt({
810
+ held: i,
811
+ updated: a
812
+ }) ? (t.exec({
813
+ sql: `UPDATE ${A} SET name = ?, metadata = ?, path = ? WHERE id = ?`,
814
+ bind: [
815
+ a.name,
816
+ Kt({ document: a }),
817
+ a.path ?? null,
818
+ n
819
+ ]
820
+ }), !0) : !1;
821
+ }
822
+ function Lt(e) {
823
+ let { held: t, updated: n } = e;
824
+ return t.name !== n.name || t.path !== n.path || !be({
825
+ first: t.metadata,
826
+ second: n.metadata
827
+ });
828
+ }
829
+ function Rt(e) {
830
+ let { db: t, documentId: n } = e, r = Ht({
831
+ db: t,
832
+ documentId: n
833
+ });
834
+ return r !== void 0 && (Bt({
835
+ db: t,
836
+ documentId: n,
837
+ seq: r
838
+ }), !0);
839
+ }
840
+ function q(e) {
841
+ let t = Ht(e);
842
+ return t === void 0 ? void 0 : Ut({ seq: t });
843
+ }
844
+ function zt(e) {
845
+ let t = Mt(e);
846
+ if (!t) return;
847
+ let { seq: n, status: r } = t;
848
+ return {
849
+ seq: n,
850
+ status: r,
851
+ records: Ut({ seq: n }),
852
+ history: Wt({ seq: n })
853
+ };
854
+ }
855
+ function Bt(e) {
856
+ let { db: t, documentId: n, seq: r } = e;
857
+ t.exec(`DROP TABLE ${Ut({ seq: r })}`), yt({
858
+ db: t,
859
+ documentId: n,
860
+ table: Wt({ seq: r })
861
+ }), Be({
862
+ db: t,
863
+ documentId: n
864
+ }), t.exec({
865
+ sql: `DELETE FROM ${A} WHERE seq = ?`,
866
+ bind: [r]
867
+ });
868
+ }
869
+ function Vt(e) {
870
+ return e.db.selectArrays(`SELECT id, path FROM ${A} WHERE path IS NOT NULL`).map(([e, t]) => ({
871
+ id: String(e),
872
+ path: String(t)
873
+ }));
874
+ }
875
+ function Ht(e) {
876
+ let { db: t, documentId: n } = e, r = t.selectValue(`SELECT seq FROM ${A} WHERE id = ?`, [n]);
877
+ return r === void 0 ? void 0 : Number(r);
878
+ }
879
+ function Ut(e) {
880
+ return `${E}${e.seq}`;
881
+ }
882
+ function Wt(t) {
883
+ return `${e}${t.seq}`;
884
+ }
885
+ function Gt(e) {
886
+ let { document: t } = e;
887
+ return [
888
+ t.id,
889
+ t.name,
890
+ t.extension,
891
+ t.configKey,
892
+ t.createdAt,
893
+ Kt({ document: t }),
894
+ t.status,
895
+ t.writeId ?? null,
896
+ t.path ?? null
897
+ ];
898
+ }
899
+ function Kt(e) {
900
+ let { metadata: t } = e.document;
901
+ return t === void 0 ? null : JSON.stringify(t);
902
+ }
903
+ function qt(e) {
904
+ let [t, n, r, i, a, o, s, c, l] = e.row, u = {
905
+ id: String(t),
906
+ name: String(n),
907
+ extension: String(r),
908
+ configKey: String(i),
909
+ createdAt: Number(a),
910
+ status: Jt({ value: s })
911
+ };
912
+ return o !== null && (u.metadata = JSON.parse(String(o))), c !== null && (u.writeId = String(c)), l !== null && (u.path = String(l)), u;
913
+ }
914
+ function Jt(e) {
915
+ return e.value === "importing" ? "importing" : "ready";
916
+ }
917
+ function Yt(e) {
918
+ let { db: t } = e, n = t.selectArrays(`SELECT seq, id FROM ${A} WHERE status = ?`, ["importing"]);
919
+ for (let [e, r] of n) Bt({
920
+ db: t,
921
+ documentId: String(r),
922
+ seq: Number(e)
923
+ });
924
+ }
925
+ function Xt(e) {
926
+ let { db: t, writeId: n } = e;
927
+ return t.selectArrays(`SELECT ${g} FROM ${A} WHERE writeId = ?`, [n]).map((e) => qt({ row: e }));
928
+ }
929
+ // src/store/sqlite/engine/commit.ts
930
+ function Zt(e) {
931
+ let { sqlite3: t, db: n, documentId: r, writeId: i, creates: a, updates: o, deletes: s, settle: c } = e, l = H({
932
+ detail: `Document "${r}"`,
933
+ work: function() {
934
+ return zt({
935
+ db: n,
936
+ documentId: r
937
+ });
938
+ }
939
+ });
940
+ l || w({
941
+ documentId: r,
942
+ what: "records"
943
+ }), l.status === "importing" && w({
944
+ documentId: r,
945
+ what: "a commit"
946
+ }), ne({ writeId: i }), H({
947
+ detail: `The records to update in document "${r}"`,
948
+ work: function() {
949
+ $t({
950
+ db: n,
951
+ table: l.records,
952
+ documentId: r,
953
+ ids: o.map(en)
954
+ });
955
+ }
956
+ });
957
+ let u = Ve({ records: a });
958
+ H({
959
+ detail: `The ids of document "${r}"`,
960
+ work: function() {
961
+ tt({
962
+ db: n,
963
+ table: l.records,
964
+ documentId: r,
965
+ creates: a
966
+ });
967
+ }
968
+ });
969
+ let d = Ve({ records: o });
970
+ return V({
971
+ key: "STORE_COMMIT_FAILED",
972
+ detail: `The commit on document "${r}" could not be written`,
973
+ work: function() {
974
+ return c(), G({
975
+ sqlite3: t,
976
+ db: n,
977
+ work: function() {
978
+ let e = ct({
979
+ db: n,
980
+ documentId: r,
981
+ table: l.history,
982
+ writeId: i
983
+ }), t = {
984
+ db: n,
985
+ records: l.records,
986
+ table: l.history,
987
+ entry: e
988
+ };
989
+ lt({
990
+ ...t,
991
+ part: "before",
992
+ ids: o.map(en)
993
+ }), ut({
994
+ db: n,
995
+ table: l.history,
996
+ entry: e,
997
+ part: "create",
998
+ rows: u
999
+ }), ut({
1000
+ db: n,
1001
+ table: l.history,
1002
+ entry: e,
1003
+ part: "after",
1004
+ rows: d
1005
+ });
1006
+ let a = W({
1007
+ ...t,
1008
+ part: "create"
1009
+ }) + W({
1010
+ ...t,
1011
+ part: "after"
1012
+ });
1013
+ return lt({
1014
+ ...t,
1015
+ part: "delete",
1016
+ ids: s
1017
+ }), a - ft({
1018
+ ...t,
1019
+ part: "delete"
1020
+ });
1021
+ }
1022
+ });
1023
+ }
1024
+ });
1025
+ }
1026
+ function Qt(e) {
1027
+ let { sqlite3: t, db: n, documentId: r, direction: i, settle: a } = e, o = H({
1028
+ detail: `The history of document "${r}"`,
1029
+ work: function() {
1030
+ let e = zt({
1031
+ db: n,
1032
+ documentId: r
1033
+ });
1034
+ if (!e) return;
1035
+ let t = i === "back" ? pt({
1036
+ db: n,
1037
+ documentId: r
1038
+ }) : mt({
1039
+ db: n,
1040
+ documentId: r
1041
+ });
1042
+ return t && {
1043
+ tables: e,
1044
+ entry: t
1045
+ };
1046
+ }
1047
+ });
1048
+ if (!o) return;
1049
+ let { tables: s, entry: c } = o;
1050
+ return V({
1051
+ key: "STORE_COMMIT_FAILED",
1052
+ detail: `The ${i === "back" ? "undo" : "redo"} on document "${r}" could not be written`,
1053
+ work: function() {
1054
+ return a(), G({
1055
+ sqlite3: t,
1056
+ db: n,
1057
+ work: function() {
1058
+ let e = dt({
1059
+ db: n,
1060
+ records: s.records,
1061
+ table: s.history,
1062
+ entry: c,
1063
+ direction: i
1064
+ });
1065
+ return ht({
1066
+ db: n,
1067
+ entry: c,
1068
+ state: i === "forward" ? "applied" : "undone"
1069
+ }), e;
1070
+ }
1071
+ });
1072
+ }
1073
+ });
1074
+ }
1075
+ function $t(e) {
1076
+ let { db: t, table: n, documentId: r, ids: i } = e;
1077
+ for (let e = 0; e < i.length; e += y) {
1078
+ let a = i.slice(e, e + y), o = $e({
1079
+ db: t,
1080
+ table: n,
1081
+ ids: a
1082
+ }), s = a.find((e) => !o.has(e));
1083
+ s !== void 0 && ce({
1084
+ documentId: r,
1085
+ recordId: s
1086
+ });
1087
+ }
1088
+ }
1089
+ function en(e) {
1090
+ return e.id;
1091
+ }
1092
+ // src/store/sqlite/engine/device-cache.ts
1093
+ function tn(e) {
1094
+ let { deviceMemoryGiB: t = 4, rule: n = r.cacheRule } = e, { mibPerGiB: i, floorMiB: a, ceilingMiB: o } = n;
1095
+ return Math.min(o, Math.max(a, Math.round(t * i)));
1096
+ }
1097
+ function nn() {
1098
+ return globalThis.navigator?.deviceMemory;
1099
+ }
1100
+ // src/store/sqlite/engine/import-queue.ts
1101
+ function rn() {
1102
+ let e = [];
1103
+ return {
1104
+ run: function(t) {
1105
+ return an({
1106
+ entries: e,
1107
+ ...t
1108
+ });
1109
+ },
1110
+ abort: function({ writeId: t }) {
1111
+ on({
1112
+ entries: e,
1113
+ matches: (e) => e.writeId === t
1114
+ });
1115
+ },
1116
+ abortOwnedBy: function({ clientId: t }) {
1117
+ on({
1118
+ entries: e,
1119
+ matches: (e) => e.clientId === t
1120
+ });
1121
+ },
1122
+ abortAll: function() {
1123
+ on({
1124
+ entries: e,
1125
+ matches: () => !0
1126
+ });
1127
+ },
1128
+ awaitsRow: function({ writeId: t }) {
1129
+ return e.some((e) => e.writeId === t && !e.registered);
1130
+ },
1131
+ markRegistered: function({ writeId: t }) {
1132
+ for (let n of e) n.writeId === t && (n.registered = !0);
1133
+ },
1134
+ runs: function({ writeId: t }) {
1135
+ return e.some((e) => e.writeId === t);
1136
+ }
1137
+ };
1138
+ }
1139
+ async function an(e) {
1140
+ let { entries: t, writeId: n, clientId: r, work: i } = e, a = Promise.withResolvers(), o = {
1141
+ writeId: n,
1142
+ clientId: r,
1143
+ controller: new AbortController(),
1144
+ hasTurn: !1,
1145
+ registered: !1,
1146
+ start: a.resolve
1147
+ };
1148
+ t.push(o), t.length === 1 && sn({ entry: o });
1149
+ try {
1150
+ return await a.promise, await i(o.controller.signal);
1151
+ } finally {
1152
+ cn({
1153
+ entries: t,
1154
+ entry: o
1155
+ });
1156
+ }
1157
+ }
1158
+ function on(e) {
1159
+ let { entries: t, matches: n } = e;
1160
+ for (let e of t.filter(n)) e.controller.abort(), e.hasTurn || (t.splice(t.indexOf(e), 1), sn({ entry: e }));
1161
+ }
1162
+ function sn(e) {
1163
+ let { entry: t } = e;
1164
+ t.hasTurn = !0, t.start();
1165
+ }
1166
+ function cn(e) {
1167
+ let { entries: t, entry: n } = e, r = t.indexOf(n);
1168
+ if (r === -1) return;
1169
+ t.splice(r, 1);
1170
+ let i = t[0];
1171
+ i && !i.hasTurn && sn({ entry: i });
1172
+ }
1173
+ // src/store/sqlite/engine/import-window.ts
1174
+ function ln(e) {
1175
+ let t = {
1176
+ openedAt: void 0,
1177
+ synchronousOff: !1,
1178
+ cacheRaised: !1,
1179
+ lost: void 0
1180
+ };
1181
+ return {
1182
+ write: function(n) {
1183
+ return un({
1184
+ params: e,
1185
+ state: t
1186
+ }), n();
1187
+ },
1188
+ commitIfDue: function() {
1189
+ return t.openedAt === void 0 || performance.now() - t.openedAt < e.windowMs ? !1 : (J({
1190
+ params: e,
1191
+ state: t
1192
+ }), !0);
1193
+ },
1194
+ alone: function(n) {
1195
+ J({
1196
+ params: e,
1197
+ state: t
1198
+ }), un({
1199
+ params: e,
1200
+ state: t
1201
+ });
1202
+ let r = n();
1203
+ return J({
1204
+ params: e,
1205
+ state: t
1206
+ }), r;
1207
+ },
1208
+ settle: function() {
1209
+ let { sqlite3: n, db: r } = e;
1210
+ try {
1211
+ J({
1212
+ params: e,
1213
+ state: t
1214
+ });
1215
+ } catch (e) {
1216
+ throw n.capi.sqlite3_get_autocommit(r) === 0 && r.exec("ROLLBACK"), t.openedAt = void 0, t.lost = e instanceof Error ? e : Error(String(e)), e;
1217
+ }
1218
+ fn({
1219
+ params: e,
1220
+ state: t
1221
+ });
1222
+ },
1223
+ finish: function() {
1224
+ dn({ state: t }), J({
1225
+ params: e,
1226
+ state: t
1227
+ }), fn({
1228
+ params: e,
1229
+ state: t
1230
+ }), pn({
1231
+ params: e,
1232
+ state: t
1233
+ });
1234
+ },
1235
+ end: function() {
1236
+ if (!e.db.isOpen()) return;
1237
+ let { sqlite3: n, db: r } = e;
1238
+ try {
1239
+ t.openedAt !== void 0 && n.capi.sqlite3_get_autocommit(r) === 0 && r.exec("ROLLBACK");
1240
+ } finally {
1241
+ try {
1242
+ n.capi.sqlite3_get_autocommit(r) === 0 && r.exec("COMMIT");
1243
+ } finally {
1244
+ pn({
1245
+ params: e,
1246
+ state: t
1247
+ }), n.capi.sqlite3_get_autocommit(r) !== 0 && (t.openedAt = void 0, fn({
1248
+ params: e,
1249
+ state: t
1250
+ }));
1251
+ }
1252
+ }
1253
+ }
1254
+ };
1255
+ }
1256
+ function un(e) {
1257
+ let { state: t } = e, { db: n, importCacheMiB: r } = e.params;
1258
+ dn({ state: t }), t.openedAt === void 0 && (t.cacheRaised ||= (n.exec(`PRAGMA cache_size=${-r * 1024}`), !0), t.synchronousOff ||= (n.exec("PRAGMA synchronous=OFF"), !0), n.exec("BEGIN IMMEDIATE"), t.openedAt = performance.now());
1259
+ }
1260
+ function J(e) {
1261
+ let { state: t } = e, { db: n, perf: r } = e.params;
1262
+ t.openedAt !== void 0 && (r.time("import::commit", function() {
1263
+ n.exec("COMMIT");
1264
+ }), t.openedAt = void 0);
1265
+ }
1266
+ function dn(e) {
1267
+ let { lost: t } = e.state;
1268
+ t && I("STORE_COMMIT_FAILED", {
1269
+ detail: `The import's records could not be committed: ${t.message}`,
1270
+ cause: t
1271
+ });
1272
+ }
1273
+ function fn(e) {
1274
+ let { state: t } = e;
1275
+ t.synchronousOff &&= (e.params.db.exec("PRAGMA synchronous=FULL"), !1);
1276
+ }
1277
+ function pn(e) {
1278
+ let { state: t } = e, { db: n, steadyCacheMiB: r } = e.params;
1279
+ t.cacheRaised &&= (n.exec(`PRAGMA cache_size=${-r * 1024}`), !1);
1280
+ }
1281
+ function mn(e) {
1282
+ try {
1283
+ e.window.end();
1284
+ } catch {}
1285
+ }
1286
+ // src/store/sqlite/engine/import-target.ts
1287
+ function hn(e) {
1288
+ let { sqlite3: t, db: n, signal: r, file: i, counts: a, removeDocument: o } = e, s = {
1289
+ registered: void 0,
1290
+ built: /* @__PURE__ */ new Set(),
1291
+ givenIds: e.customIds ? /* @__PURE__ */ new Set() : void 0
1292
+ };
1293
+ return {
1294
+ registerDocument: async function(o) {
1295
+ z({
1296
+ signal: r,
1297
+ file: i
1298
+ });
1299
+ let c = V({
1300
+ key: "STORE_COMMIT_FAILED",
1301
+ detail: `Document "${o.id}" could not be registered`,
1302
+ work: function() {
1303
+ return G({
1304
+ sqlite3: t,
1305
+ db: n,
1306
+ work: function() {
1307
+ return jt({
1308
+ db: n,
1309
+ document: o
1310
+ });
1311
+ }
1312
+ });
1313
+ }
1314
+ });
1315
+ s.registered = {
1316
+ ...c,
1317
+ documentId: o.id,
1318
+ writeId: o.writeId,
1319
+ createdAt: o.createdAt
1320
+ }, e.onRegistered(), a.set(o.id, 0);
1321
+ },
1322
+ getDocument: async function(e) {
1323
+ return z({
1324
+ signal: r,
1325
+ file: i
1326
+ }), H({
1327
+ detail: `Document "${e}"`,
1328
+ work: function() {
1329
+ return Pt({
1330
+ db: n,
1331
+ documentId: e
1332
+ });
1333
+ }
1334
+ });
1335
+ },
1336
+ bulkWrite: async function(t, n) {
1337
+ await gn({
1338
+ params: e,
1339
+ state: s,
1340
+ documentId: t,
1341
+ ops: n
1342
+ });
1343
+ },
1344
+ writeSession: async function(t, n) {
1345
+ s.built.has("id") || await Cn({
1346
+ params: e,
1347
+ state: s,
1348
+ documentId: t,
1349
+ index: "id"
1350
+ }), await gn({
1351
+ params: e,
1352
+ state: s,
1353
+ documentId: t,
1354
+ ops: n
1355
+ });
1356
+ },
1357
+ markReady: async function(t) {
1358
+ for (let n of Object.keys(c)) s.built.has(n) || await Cn({
1359
+ params: e,
1360
+ state: s,
1361
+ documentId: t,
1362
+ index: n
1363
+ });
1364
+ wn({
1365
+ params: e,
1366
+ state: s,
1367
+ documentId: t
1368
+ });
1369
+ },
1370
+ removeDocument: async function(t) {
1371
+ let { registered: r } = s;
1372
+ r?.documentId === t && n.isOpen() && (mn({ window: e.window }), _n({
1373
+ row: Dn({
1374
+ db: n,
1375
+ documentId: t
1376
+ }),
1377
+ registered: r,
1378
+ documentId: t
1379
+ }) && await o({ documentId: t }));
1380
+ }
1381
+ };
1382
+ }
1383
+ async function gn(e) {
1384
+ let { state: t, documentId: n, ops: r } = e, { creates: i = [], updates: a = [], deletes: o = [] } = r;
1385
+ i.length > 0 && await vn({
1386
+ params: e.params,
1387
+ state: t,
1388
+ documentId: n,
1389
+ creates: i
1390
+ }), (a.length !== 0 || o.length !== 0) && (t.built.has("id") || await Cn({
1391
+ params: e.params,
1392
+ state: t,
1393
+ documentId: n,
1394
+ index: "id"
1395
+ }), await yn({
1396
+ params: e.params,
1397
+ state: t,
1398
+ documentId: n,
1399
+ updates: a,
1400
+ deletes: o
1401
+ }));
1402
+ }
1403
+ function Y(e) {
1404
+ let { state: t, documentId: n } = e, { db: r, signal: i, file: a } = e.params;
1405
+ z({
1406
+ signal: i,
1407
+ file: a
1408
+ });
1409
+ let { registered: o } = t, s = Dn({
1410
+ db: r,
1411
+ documentId: n
1412
+ });
1413
+ return o && _n({
1414
+ row: s,
1415
+ registered: o,
1416
+ documentId: n
1417
+ }) || w({
1418
+ documentId: n,
1419
+ what: "records"
1420
+ }), o.table;
1421
+ }
1422
+ function _n(e) {
1423
+ let { row: t, registered: n, documentId: r } = e;
1424
+ return !t || !n || n.documentId !== r ? !1 : t.status === "importing" && t.seq === n.seq && t.writeId === n.writeId && t.createdAt === n.createdAt;
1425
+ }
1426
+ async function vn(e) {
1427
+ let { state: t, documentId: n, creates: r } = e, { db: i, perf: a, counts: o, window: s } = e.params, c = `Records of document "${n}" could not be written`, l = Y(e);
1428
+ a.time("import::encode", function() {
1429
+ N({ value: r });
1430
+ }), V({
1431
+ key: "STORE_BULK_ADD_FAILED",
1432
+ detail: c,
1433
+ work: function() {
1434
+ En({
1435
+ db: i,
1436
+ table: l,
1437
+ state: t,
1438
+ documentId: n,
1439
+ creates: r
1440
+ });
1441
+ }
1442
+ });
1443
+ for (let t = 0; t < r.length; t += y) {
1444
+ let u = r.slice(t, t + y), d = t === 0 ? l : Y(e);
1445
+ V({
1446
+ key: "STORE_BULK_ADD_FAILED",
1447
+ detail: c,
1448
+ work: function() {
1449
+ s.write(function() {
1450
+ We({
1451
+ db: i,
1452
+ table: d,
1453
+ records: u,
1454
+ perf: a
1455
+ });
1456
+ });
1457
+ }
1458
+ }), o.set(n, (o.get(n) ?? 0) + u.length), await xn({
1459
+ params: e.params,
1460
+ documentId: n
1461
+ });
1462
+ }
1463
+ }
1464
+ async function yn(e) {
1465
+ let { documentId: t, updates: n, deletes: r } = e, { db: i, counts: a, window: o } = e.params, s = `Records of document "${t}" could not be written`, c = await bn({
1466
+ params: e.params,
1467
+ state: e.state,
1468
+ documentId: t,
1469
+ updates: n
1470
+ });
1471
+ for (let n = 0; n < c.length; n += y) {
1472
+ let r = Y(e), a = c.slice(n, n + y);
1473
+ V({
1474
+ key: "STORE_BULK_UPDATE_FAILED",
1475
+ detail: s,
1476
+ work: function() {
1477
+ o.write(function() {
1478
+ ot({
1479
+ db: i,
1480
+ table: r,
1481
+ patches: a
1482
+ });
1483
+ });
1484
+ }
1485
+ }), await xn({
1486
+ params: e.params,
1487
+ documentId: t
1488
+ });
1489
+ }
1490
+ for (let n = 0; n < r.length; n += y) {
1491
+ let c = Y(e), l = r.slice(n, n + y), u = V({
1492
+ key: "STORE_DELETE_FAILED",
1493
+ detail: s,
1494
+ work: function() {
1495
+ return o.write(function() {
1496
+ return st({
1497
+ db: i,
1498
+ table: c,
1499
+ ids: l
1500
+ });
1501
+ });
1502
+ }
1503
+ });
1504
+ a.set(t, (a.get(t) ?? 0) - u), await xn({
1505
+ params: e.params,
1506
+ documentId: t
1507
+ });
1508
+ }
1509
+ }
1510
+ async function bn(e) {
1511
+ let { documentId: t, updates: n } = e, { db: r, windowMs: i } = e.params, a = /* @__PURE__ */ new Set(), o = performance.now();
1512
+ for (let s = 0; s < n.length; s += y) {
1513
+ let c = Y(e), l = n.slice(s, s + y).map((e) => e.recordId);
1514
+ for (let e of H({
1515
+ detail: `The records to patch in document "${t}"`,
1516
+ work: function() {
1517
+ return $e({
1518
+ db: r,
1519
+ table: c,
1520
+ ids: l
1521
+ });
1522
+ }
1523
+ })) a.add(e);
1524
+ performance.now() - o >= i && (await Sn(), o = performance.now());
1525
+ }
1526
+ return at({
1527
+ patches: n,
1528
+ held: a
1529
+ });
1530
+ }
1531
+ async function xn(e) {
1532
+ let { documentId: t } = e, { window: n } = e.params;
1533
+ V({
1534
+ key: "STORE_COMMIT_FAILED",
1535
+ detail: `Records of document "${t}" could not be committed`,
1536
+ work: n.commitIfDue
1537
+ }) && await Sn();
1538
+ }
1539
+ function Sn() {
1540
+ return new Promise((e) => setTimeout(e, 0));
1541
+ }
1542
+ async function Cn(e) {
1543
+ let { state: t, documentId: n, index: r } = e, { sqlite3: i, db: a, perf: o, window: s, tellPhase: c, onLongStatement: l } = e.params, u = Y(e);
1544
+ c({ phase: "indexing" }), o.start("import::index");
1545
+ try {
1546
+ V({
1547
+ key: "STORE_COMMIT_FAILED",
1548
+ detail: `The ${r} index of document "${n}" could not be built`,
1549
+ work: function() {
1550
+ l({ work: function() {
1551
+ s.alone(function() {
1552
+ try {
1553
+ kt({
1554
+ db: a,
1555
+ table: u,
1556
+ index: r
1557
+ });
1558
+ } catch (e) {
1559
+ throw rt({
1560
+ sqlite3: i,
1561
+ db: a,
1562
+ table: u,
1563
+ documentId: n,
1564
+ thrown: e
1565
+ }), e;
1566
+ }
1567
+ });
1568
+ } });
1569
+ }
1570
+ });
1571
+ } finally {
1572
+ o.stop("import::index");
1573
+ }
1574
+ t.built.add(r), r === "id" && (t.givenIds = void 0), c({ phase: "storing" }), await Sn();
1575
+ }
1576
+ function wn(e) {
1577
+ let { documentId: t } = e, { sqlite3: n, db: r, window: i } = e.params;
1578
+ Y(e), V({
1579
+ key: "STORE_COMMIT_FAILED",
1580
+ detail: `Records of document "${t}" could not be committed`,
1581
+ work: i.finish
1582
+ }), V({
1583
+ key: "STORE_COMMIT_FAILED",
1584
+ detail: `Document "${t}" could not be marked ready`,
1585
+ work: function() {
1586
+ return G({
1587
+ sqlite3: n,
1588
+ db: r,
1589
+ work: function() {
1590
+ return Nt({
1591
+ db: r,
1592
+ documentId: t
1593
+ });
1594
+ }
1595
+ });
1596
+ }
1597
+ }) || w({
1598
+ documentId: t,
1599
+ what: "its ready state"
1600
+ });
1601
+ }
1602
+ function Tn(e) {
1603
+ let { file: t, listener: n } = e, r = {
1604
+ phase: "storing",
1605
+ bytesRead: 0,
1606
+ totalBytes: t.size
1607
+ };
1608
+ return {
1609
+ onProgress: function(e) {
1610
+ Object.assign(r, e), P({
1611
+ listener: n,
1612
+ value: e,
1613
+ of: j.importProgress,
1614
+ call: r
1615
+ });
1616
+ },
1617
+ tellPhase: function({ phase: e }) {
1618
+ P({
1619
+ listener: n,
1620
+ value: {
1621
+ ...r,
1622
+ phase: e
1623
+ },
1624
+ of: j.importProgress,
1625
+ call: r
1626
+ });
1627
+ }
1628
+ };
1629
+ }
1630
+ function En(e) {
1631
+ let { db: t, table: n, state: r, documentId: i, creates: a } = e;
1632
+ if (r.built.has("id")) {
1633
+ tt({
1634
+ db: t,
1635
+ table: n,
1636
+ documentId: i,
1637
+ creates: a
1638
+ });
1639
+ return;
1640
+ }
1641
+ let { givenIds: o } = r;
1642
+ if (!o) return;
1643
+ let s = nt({
1644
+ documentId: i,
1645
+ ids: a.map((e) => e.id),
1646
+ heldIds: o
1647
+ });
1648
+ for (let e of s) o.add(e);
1649
+ }
1650
+ function Dn(e) {
1651
+ let { db: t, documentId: n } = e;
1652
+ return H({
1653
+ detail: `Document "${n}"`,
1654
+ work: function() {
1655
+ return Mt({
1656
+ db: t,
1657
+ documentId: n
1658
+ });
1659
+ }
1660
+ });
1661
+ }
1662
+ // src/store/sqlite/engine/reclaim.ts
1663
+ async function On(e) {
1664
+ let { db: t, settle: n, isClosed: r, pagesPerStatement: i, sliceMs: a, onStep: o, giveWayTo: s } = e, c = performance.now();
1665
+ for (; !r() && kn({ db: t }) > 0;) {
1666
+ let e = s?.();
1667
+ e ? (await e, c = performance.now()) : (n(), An({
1668
+ db: t,
1669
+ pages: i
1670
+ }), o?.(), performance.now() - c < a || (await de(), c = performance.now()));
1671
+ }
1672
+ }
1673
+ function kn(e) {
1674
+ return Number(e.db.selectValue("PRAGMA freelist_count"));
1675
+ }
1676
+ function An(e) {
1677
+ let t = e.db.prepare(`PRAGMA incremental_vacuum(${e.pages})`);
1678
+ try {
1679
+ for (; t.step(););
1680
+ } finally {
1681
+ t.finalize();
1682
+ }
1683
+ }
1684
+ // src/store/sqlite/engine/sqlite-engine.ts
1685
+ function jn(e) {
1686
+ let { sqlite3: t, db: n, dialecteId: i, expectedCreationId: o, name: s, runtime: c, ensureImportSpace: l, onWork: u, onBroken: d } = e;
1687
+ try {
1688
+ Pn({
1689
+ sqlite3: t,
1690
+ name: s
1691
+ });
1692
+ } catch (e) {
1693
+ throw n.close(), e;
1694
+ }
1695
+ let f = e.onLongStatement ?? Rn, { explainIoFailure: p } = e, m = {
1696
+ ...r,
1697
+ ...e.options
1698
+ }, h = tn({
1699
+ deviceMemoryGiB: nn(),
1700
+ rule: m.cacheRule
1701
+ }), ee = m.steadyCacheMiB ?? h, g = Math.max(h, ee), _ = "";
1702
+ try {
1703
+ V({
1704
+ key: "STORE_CONNECTION_FAILED",
1705
+ detail: "The project file could not be opened",
1706
+ work: function() {
1707
+ _ = Ct({
1708
+ sqlite3: t,
1709
+ db: n,
1710
+ project: s,
1711
+ dialecteId: i,
1712
+ expectedCreationId: o,
1713
+ steadyCacheMiB: ee
1714
+ }).creationId, G({
1715
+ sqlite3: t,
1716
+ db: n,
1717
+ work: function() {
1718
+ Yt({ db: n });
1719
+ }
1720
+ });
1721
+ }
1722
+ });
1723
+ } catch (e) {
1724
+ throw n.close(), e;
1725
+ }
1726
+ let v = /* @__PURE__ */ new Map(), y = /* @__PURE__ */ new Map(), b = /* @__PURE__ */ new Map(), x = { count: 0 }, S = rn(), C = {
1727
+ window: void 0,
1728
+ ended: void 0
1729
+ }, T = {
1730
+ closed: !1,
1731
+ broken: !1
1732
+ }, E = {
1733
+ addBlob: async function(e, t) {
1734
+ Z({
1735
+ state: T,
1736
+ name: s
1737
+ });
1738
+ let r = new Uint8Array(await t.arrayBuffer());
1739
+ Z({
1740
+ state: T,
1741
+ name: s
1742
+ }), H({
1743
+ detail: `Document "${e.documentId}"`,
1744
+ work: function() {
1745
+ return Pt({
1746
+ db: n,
1747
+ documentId: e.documentId
1748
+ });
1749
+ }
1750
+ }) || w({
1751
+ documentId: e.documentId,
1752
+ what: "a blob"
1753
+ }), N({ value: e }), O({
1754
+ detail: `Blob "${e.id}" could not be added`,
1755
+ work: function() {
1756
+ Pe({
1757
+ db: n,
1758
+ entry: e,
1759
+ type: t.type,
1760
+ bytes: r
1761
+ });
1762
+ }
1763
+ });
1764
+ },
1765
+ getBlob: async function(e) {
1766
+ Z({
1767
+ state: T,
1768
+ name: s
1769
+ });
1770
+ let t = H({
1771
+ detail: `Blob "${e}"`,
1772
+ work: function() {
1773
+ return Fe({
1774
+ db: n,
1775
+ blobId: e
1776
+ });
1777
+ }
1778
+ });
1779
+ if (t) return {
1780
+ entry: t.entry,
1781
+ data: new Blob([t.bytes.slice()], { type: t.type })
1782
+ };
1783
+ },
1784
+ getBlobsByDocument: async function(e) {
1785
+ return Z({
1786
+ state: T,
1787
+ name: s
1788
+ }), te({ filter: { documentId: e } });
1789
+ },
1790
+ getBlobsByRecord: async function(e, t) {
1791
+ return Z({
1792
+ state: T,
1793
+ name: s
1794
+ }), te({ filter: {
1795
+ documentId: e,
1796
+ recordRef: t
1797
+ } });
1798
+ },
1799
+ getStandaloneBlobs: async function() {
1800
+ return Z({
1801
+ state: T,
1802
+ name: s
1803
+ }), te({ filter: "standalone" });
1804
+ },
1805
+ attachBlob: async function(e, t) {
1806
+ Z({
1807
+ state: T,
1808
+ name: s
1809
+ });
1810
+ let r = D({ blobId: e });
1811
+ return N({ value: t }), !r.attachedTo.some((e) => e.documentId === t.documentId && e.recordRef === t.recordRef && e.attribute === t.attribute) && (O({
1812
+ detail: `Blob "${e}" could not be attached`,
1813
+ work: function() {
1814
+ Le({
1815
+ db: n,
1816
+ entry: {
1817
+ ...r,
1818
+ attachedTo: [...r.attachedTo, t]
1819
+ }
1820
+ });
1821
+ }
1822
+ }), !0);
1823
+ },
1824
+ detachBlob: async function(e, t) {
1825
+ Z({
1826
+ state: T,
1827
+ name: s
1828
+ });
1829
+ let r = D({ blobId: e }), i = r.attachedTo.filter((e) => e.documentId !== t.documentId || e.recordRef !== t.recordRef);
1830
+ return i.length !== r.attachedTo.length && (O({
1831
+ detail: `Blob "${e}" could not be detached`,
1832
+ work: function() {
1833
+ Le({
1834
+ db: n,
1835
+ entry: {
1836
+ ...r,
1837
+ attachedTo: i
1838
+ }
1839
+ });
1840
+ }
1841
+ }), !0);
1842
+ },
1843
+ removeBlob: async function(e) {
1844
+ return Z({
1845
+ state: T,
1846
+ name: s
1847
+ }), H({
1848
+ detail: `Blob "${e}"`,
1849
+ work: function() {
1850
+ return Ie({
1851
+ db: n,
1852
+ blobId: e
1853
+ });
1854
+ }
1855
+ }) ? (O({
1856
+ detail: `Blob "${e}" could not be removed`,
1857
+ work: function() {
1858
+ ze({
1859
+ db: n,
1860
+ blobId: e
1861
+ });
1862
+ }
1863
+ }), !0) : !1;
1864
+ },
1865
+ registerDocument: async function(e) {
1866
+ Z({
1867
+ state: T,
1868
+ name: s
1869
+ }), V({
1870
+ key: "STORE_COMMIT_FAILED",
1871
+ detail: `Document "${e.id}" could not be registered`,
1872
+ work: function() {
1873
+ X({ importing: C }), G({
1874
+ sqlite3: t,
1875
+ db: n,
1876
+ work: function() {
1877
+ let { table: t } = jt({
1878
+ db: n,
1879
+ document: e
1880
+ });
1881
+ At({
1882
+ db: n,
1883
+ table: t
1884
+ });
1885
+ }
1886
+ });
1887
+ }
1888
+ }), v.set(e.id, 0);
1889
+ },
1890
+ getDocument: async function(e) {
1891
+ return Z({
1892
+ state: T,
1893
+ name: s
1894
+ }), H({
1895
+ detail: `Document "${e}"`,
1896
+ work: function() {
1897
+ return Pt({
1898
+ db: n,
1899
+ documentId: e
1900
+ });
1901
+ }
1902
+ });
1903
+ },
1904
+ getDocuments: async function() {
1905
+ return Z({
1906
+ state: T,
1907
+ name: s
1908
+ }), H({
1909
+ detail: "The documents",
1910
+ work: function() {
1911
+ return Ft({ db: n });
1912
+ }
1913
+ });
1914
+ },
1915
+ updateDocument: async function(e, r) {
1916
+ return Z({
1917
+ state: T,
1918
+ name: s
1919
+ }), V({
1920
+ key: "STORE_COMMIT_FAILED",
1921
+ detail: `Document "${e}" could not be updated`,
1922
+ work: function() {
1923
+ return X({ importing: C }), G({
1924
+ sqlite3: t,
1925
+ db: n,
1926
+ work: function() {
1927
+ return It({
1928
+ db: n,
1929
+ documentId: e,
1930
+ updates: r
1931
+ });
1932
+ }
1933
+ });
1934
+ }
1935
+ });
1936
+ },
1937
+ removeDocument: async function(e) {
1938
+ return Z({
1939
+ state: T,
1940
+ name: s
1941
+ }), ne({ documentId: e });
1942
+ },
1943
+ get: async function(e, t) {
1944
+ return Z({
1945
+ state: T,
1946
+ name: s
1947
+ }), H({
1948
+ detail: `Record "${e}" of document "${t}"`,
1949
+ work: function() {
1950
+ let r = q({
1951
+ db: n,
1952
+ documentId: t
1953
+ });
1954
+ return r ? Je({
1955
+ db: n,
1956
+ table: r,
1957
+ id: e
1958
+ }) : void 0;
1959
+ }
1960
+ });
1961
+ },
1962
+ getByDocumentId: async function(e) {
1963
+ return Z({
1964
+ state: T,
1965
+ name: s
1966
+ }), H({
1967
+ detail: `The records of document "${e}"`,
1968
+ work: function() {
1969
+ let t = q({
1970
+ db: n,
1971
+ documentId: e
1972
+ });
1973
+ return t ? Ye({
1974
+ db: n,
1975
+ table: t
1976
+ }) : [];
1977
+ }
1978
+ });
1979
+ },
1980
+ count: async function(e) {
1981
+ Z({
1982
+ state: T,
1983
+ name: s
1984
+ });
1985
+ let t = v.get(e);
1986
+ return t === void 0 ? H({
1987
+ detail: `The record count of document "${e}"`,
1988
+ work: function() {
1989
+ let t = q({
1990
+ db: n,
1991
+ documentId: e
1992
+ });
1993
+ if (!t) return 0;
1994
+ let r = et({
1995
+ db: n,
1996
+ table: t
1997
+ });
1998
+ return v.set(e, r), r;
1999
+ }
2000
+ }) : t;
2001
+ },
2002
+ getByTagNameInDocument: async function(e, t) {
2003
+ return Z({
2004
+ state: T,
2005
+ name: s
2006
+ }), H({
2007
+ detail: `The ${e} records of document "${t}"`,
2008
+ work: function() {
2009
+ let r = q({
2010
+ db: n,
2011
+ documentId: t
2012
+ });
2013
+ return r ? Xe({
2014
+ db: n,
2015
+ table: r,
2016
+ tagName: e
2017
+ }) : [];
2018
+ }
2019
+ });
2020
+ },
2021
+ getMany: async function(e, t) {
2022
+ return Z({
2023
+ state: T,
2024
+ name: s
2025
+ }), H({
2026
+ detail: `Records of document "${t}"`,
2027
+ work: function() {
2028
+ let r = q({
2029
+ db: n,
2030
+ documentId: t
2031
+ });
2032
+ if (!r) return e.map(() => void 0);
2033
+ let i = Ze({
2034
+ db: n,
2035
+ table: r,
2036
+ ids: e
2037
+ });
2038
+ return e.map((e) => i.get(e));
2039
+ }
2040
+ });
2041
+ },
2042
+ getWriteOutcome: async function({ writeId: e }) {
2043
+ return Z({
2044
+ state: T,
2045
+ name: s
2046
+ }), H({
2047
+ detail: `The outcome of write "${e}"`,
2048
+ work: function() {
2049
+ if (S.awaitsRow({ writeId: e })) return "running";
2050
+ let t = Xt({
2051
+ db: n,
2052
+ writeId: e
2053
+ });
2054
+ return he({
2055
+ documents: t,
2056
+ writeId: e,
2057
+ committed: vt({
2058
+ db: n,
2059
+ writeId: e
2060
+ }),
2061
+ isRunning: S.runs
2062
+ });
2063
+ }
2064
+ });
2065
+ },
2066
+ bulkWrite: async function(e, r) {
2067
+ Z({
2068
+ state: T,
2069
+ name: s
2070
+ });
2071
+ let { creates: i = [], updates: a = [], deletes: o = [] } = r, c = In({
2072
+ sqlite3: t,
2073
+ db: n,
2074
+ documentId: e,
2075
+ creates: i,
2076
+ updates: a,
2077
+ deletes: o,
2078
+ importing: C
2079
+ });
2080
+ return k({
2081
+ documentId: e,
2082
+ gained: i.length - c
2083
+ }), i.length > 0 || a.length > 0 || c > 0;
2084
+ },
2085
+ commit: async function(e, r) {
2086
+ Z({
2087
+ state: T,
2088
+ name: s
2089
+ });
2090
+ let { documentId: i, creates: a, updates: o, deletes: c } = e;
2091
+ k({
2092
+ documentId: i,
2093
+ gained: Zt({
2094
+ ...e,
2095
+ sqlite3: t,
2096
+ db: n,
2097
+ settle: function() {
2098
+ X({ importing: C });
2099
+ }
2100
+ })
2101
+ }), xe({
2102
+ onProgress: r,
2103
+ parts: [
2104
+ a.length,
2105
+ o.length,
2106
+ c.length
2107
+ ]
2108
+ });
2109
+ },
2110
+ undo: async function(e) {
2111
+ return Z({
2112
+ state: T,
2113
+ name: s
2114
+ }), j({
2115
+ documentId: e,
2116
+ direction: "back"
2117
+ });
2118
+ },
2119
+ redo: async function(e) {
2120
+ return Z({
2121
+ state: T,
2122
+ name: s
2123
+ }), j({
2124
+ documentId: e,
2125
+ direction: "forward"
2126
+ });
2127
+ },
2128
+ getHistoryStatus: async function(e) {
2129
+ return Z({
2130
+ state: T,
2131
+ name: s
2132
+ }), H({
2133
+ detail: `The history of document "${e}"`,
2134
+ work: function() {
2135
+ return gt({
2136
+ db: n,
2137
+ documentId: e
2138
+ });
2139
+ }
2140
+ });
2141
+ },
2142
+ getChangeLog: async function(e) {
2143
+ return Z({
2144
+ state: T,
2145
+ name: s
2146
+ }), H({
2147
+ detail: `The changelog of document "${e}"`,
2148
+ work: function() {
2149
+ let t = zt({
2150
+ db: n,
2151
+ documentId: e
2152
+ });
2153
+ return t ? _t({
2154
+ db: n,
2155
+ documentId: e,
2156
+ table: t.history
2157
+ }) : [];
2158
+ }
2159
+ });
2160
+ }
2161
+ };
2162
+ function D(e) {
2163
+ let { blobId: t } = e, r = H({
2164
+ detail: `Blob "${t}"`,
2165
+ work: function() {
2166
+ return Ie({
2167
+ db: n,
2168
+ blobId: t
2169
+ });
2170
+ }
2171
+ });
2172
+ return r || I("STORE_BLOB_NOT_FOUND", { detail: `Blob "${t}" not found` }), r;
2173
+ }
2174
+ function te(e) {
2175
+ return H({
2176
+ detail: "The blobs",
2177
+ work: function() {
2178
+ return Re({
2179
+ db: n,
2180
+ filter: e.filter
2181
+ });
2182
+ }
2183
+ });
2184
+ }
2185
+ async function ne(e) {
2186
+ let { documentId: r } = e, i = `Document "${r}" could not be removed`, a = !1;
2187
+ try {
2188
+ V({
2189
+ key: "STORE_DELETE_FAILED",
2190
+ detail: i,
2191
+ work: function() {
2192
+ X({ importing: C }), f({ work: function() {
2193
+ G({
2194
+ sqlite3: t,
2195
+ db: n,
2196
+ work: function() {
2197
+ a = Rt({
2198
+ db: n,
2199
+ documentId: r
2200
+ });
2201
+ }
2202
+ });
2203
+ } }), v.delete(r);
2204
+ }
2205
+ });
2206
+ } finally {
2207
+ x.count += 1, y.set(r, (y.get(r) ?? 0) + 1);
2208
+ }
2209
+ try {
2210
+ await re({ background: !1 });
2211
+ } catch (e) {
2212
+ throw Ke({
2213
+ key: "STORE_DELETE_FAILED",
2214
+ detail: i,
2215
+ thrown: e
2216
+ });
2217
+ }
2218
+ return a;
2219
+ }
2220
+ function re(e) {
2221
+ return On({
2222
+ giveWayTo: e.background ? le : void 0,
2223
+ db: n,
2224
+ settle: function() {
2225
+ X({ importing: C });
2226
+ },
2227
+ isClosed: function() {
2228
+ return T.closed;
2229
+ },
2230
+ pagesPerStatement: m.reclaimPagesPerStatement,
2231
+ sliceMs: m.reclaimSliceMs,
2232
+ onStep: u
2233
+ });
2234
+ }
2235
+ function O(e) {
2236
+ let { detail: r, work: i } = e;
2237
+ V({
2238
+ key: "STORE_COMMIT_FAILED",
2239
+ detail: r,
2240
+ work: function() {
2241
+ X({ importing: C }), G({
2242
+ sqlite3: t,
2243
+ db: n,
2244
+ work: i
2245
+ });
2246
+ }
2247
+ });
2248
+ }
2249
+ function k(e) {
2250
+ let { documentId: t, gained: n } = e, r = v.get(t);
2251
+ r !== void 0 && v.set(t, r + n), y.set(t, (y.get(t) ?? 0) + 1);
2252
+ }
2253
+ function A(e) {
2254
+ let { signal: t, documentId: r, reads: i } = e;
2255
+ function a() {
2256
+ ie({
2257
+ signal: t,
2258
+ documentId: r
2259
+ });
2260
+ }
2261
+ return {
2262
+ getDocument: async function(e) {
2263
+ return a(), E.getDocument(e);
2264
+ },
2265
+ count: async function(e) {
2266
+ return a(), E.count(e);
2267
+ },
2268
+ getMany: async function(e, t) {
2269
+ return a(), Z({
2270
+ state: T,
2271
+ name: s
2272
+ }), H({
2273
+ detail: `Records of document "${t}"`,
2274
+ work: function() {
2275
+ let n = ge({
2276
+ reads: i,
2277
+ documentId: t
2278
+ })?.read(e);
2279
+ return e.map((e) => n?.get(e));
2280
+ }
2281
+ });
2282
+ },
2283
+ getByTagNameInDocument: async function(e, t) {
2284
+ return a(), E.getByTagNameInDocument(e, t);
2285
+ },
2286
+ getExportVersion: async function({ documentId: e }) {
2287
+ if (a(), Z({
2288
+ state: T,
2289
+ name: s
2290
+ }), H({
2291
+ detail: `Document "${e}"`,
2292
+ work: function() {
2293
+ return Mt({
2294
+ db: n,
2295
+ documentId: e
2296
+ });
2297
+ }
2298
+ })?.status === "ready") return y.get(e) ?? 0;
2299
+ }
2300
+ };
2301
+ }
2302
+ function j(e) {
2303
+ let { documentId: r, direction: i } = e, a = Qt({
2304
+ sqlite3: t,
2305
+ db: n,
2306
+ documentId: r,
2307
+ direction: i,
2308
+ settle: function() {
2309
+ X({ importing: C });
2310
+ }
2311
+ });
2312
+ return a !== void 0 && (k({
2313
+ documentId: r,
2314
+ gained: a
2315
+ }), !0);
2316
+ }
2317
+ async function ae(e) {
2318
+ let { thrown: n } = e;
2319
+ if (pe(n)?.key === "STORE_READ_FAILED") return n;
2320
+ let r = qe({ thrown: n });
2321
+ return r === t.capi.SQLITE_FULL ? F("STORE_QUOTA_EXCEEDED", {
2322
+ detail: `The file of project "${s}" can grow no more`,
2323
+ meta: { project: s },
2324
+ cause: n instanceof Error ? n : void 0
2325
+ }) : r === t.capi.SQLITE_IOERR && p ? await p({ thrown: n }) ?? n : n;
2326
+ }
2327
+ async function ce(e, r) {
2328
+ Z({
2329
+ state: T,
2330
+ name: s
2331
+ });
2332
+ let i = ye({
2333
+ runtime: c,
2334
+ storeName: s,
2335
+ operation: "import"
2336
+ }), { file: a, options: o, writeId: d, clientId: p } = e;
2337
+ return S.run({
2338
+ writeId: d,
2339
+ clientId: p,
2340
+ work: async function(e) {
2341
+ z({
2342
+ signal: e,
2343
+ file: a
2344
+ }), l && (await l({ bytes: Nn({
2345
+ db: n,
2346
+ file: a
2347
+ }) }), z({
2348
+ signal: e,
2349
+ file: a
2350
+ }));
2351
+ let s = oe({
2352
+ enabled: i.perf ?? !1,
2353
+ timeline: !1
2354
+ }), c = ln({
2355
+ sqlite3: t,
2356
+ db: n,
2357
+ perf: s,
2358
+ windowMs: m.importWindowMs,
2359
+ importCacheMiB: g,
2360
+ steadyCacheMiB: ee
2361
+ }), p = Tn({
2362
+ file: a,
2363
+ listener: function(e) {
2364
+ return u?.(), r?.(e);
2365
+ }
2366
+ }), h = hn({
2367
+ sqlite3: t,
2368
+ db: n,
2369
+ perf: s,
2370
+ signal: e,
2371
+ file: a,
2372
+ counts: v,
2373
+ removeDocument: async function({ documentId: e }) {
2374
+ await ne({ documentId: e });
2375
+ },
2376
+ window: c,
2377
+ windowMs: m.importWindowMs,
2378
+ tellPhase: p.tellPhase,
2379
+ onLongStatement: f,
2380
+ onRegistered: function() {
2381
+ S.markRegistered({ writeId: d });
2382
+ },
2383
+ customIds: o?.useCustomRecordsIds ?? !1
2384
+ }), _ = Promise.withResolvers();
2385
+ C.window = c, C.ended = _.promise;
2386
+ try {
2387
+ let t = await _e({
2388
+ store: h,
2389
+ runtime: i,
2390
+ file: a,
2391
+ options: o,
2392
+ writeId: d,
2393
+ perf: s
2394
+ }, {
2395
+ onProgress: p.onProgress,
2396
+ signal: e
2397
+ });
2398
+ return V({
2399
+ key: "STORE_COMMIT_FAILED",
2400
+ detail: `The import of "${a.name}" could not end`,
2401
+ work: c.end
2402
+ }), t;
2403
+ } catch (e) {
2404
+ throw mn({ window: c }), await ae({ thrown: e });
2405
+ } finally {
2406
+ C.window = void 0, C.ended = void 0, _.resolve(), ue();
2407
+ }
2408
+ }
2409
+ });
2410
+ }
2411
+ function le() {
2412
+ return C.ended;
2413
+ }
2414
+ function ue() {
2415
+ if (n.isOpen() && t.capi.sqlite3_get_autocommit(n) === 0) {
2416
+ T.broken = !0;
2417
+ try {
2418
+ fe();
2419
+ } catch {} finally {
2420
+ d?.();
2421
+ }
2422
+ }
2423
+ }
2424
+ function fe() {
2425
+ T.closed = !0;
2426
+ try {
2427
+ S.abortAll();
2428
+ for (let { controller: e, reads: t } of b.values()) e.abort(), Fn({ reads: t });
2429
+ } finally {
2430
+ n.close();
2431
+ }
2432
+ }
2433
+ async function M(e) {
2434
+ S.abort(e);
2435
+ }
2436
+ async function P(e, t) {
2437
+ Z({
2438
+ state: T,
2439
+ name: s
2440
+ });
2441
+ let r = ye({
2442
+ runtime: c,
2443
+ storeName: s,
2444
+ operation: "export"
2445
+ }), { documentId: i, options: a, exportId: o, clientId: l } = e;
2446
+ me(!b.has(o), { detail: `An export of id "${o}" runs already: give each export an id of its own` });
2447
+ let d = new AbortController(), f = { current: void 0 };
2448
+ b.set(o, {
2449
+ clientId: l,
2450
+ controller: d,
2451
+ reads: f
2452
+ });
2453
+ try {
2454
+ return await de(), await se({
2455
+ source: A({
2456
+ signal: d.signal,
2457
+ documentId: i,
2458
+ reads: f
2459
+ }),
2460
+ runtime: r,
2461
+ documentId: i,
2462
+ options: a
2463
+ }, {
2464
+ onProgress: function(e) {
2465
+ return u?.(), t?.(e);
2466
+ },
2467
+ signal: d.signal
2468
+ });
2469
+ } finally {
2470
+ b.delete(o), n.isOpen() && Fn({ reads: f });
2471
+ }
2472
+ }
2473
+ function ge(e) {
2474
+ let { reads: t, documentId: r } = e, i = t.current;
2475
+ if (i && i.documentId === r && i.removals === x.count) return i.statement;
2476
+ i?.statement.finalize(), t.current = void 0;
2477
+ let a = q({
2478
+ db: n,
2479
+ documentId: r
2480
+ });
2481
+ if (a) return t.current = {
2482
+ documentId: r,
2483
+ removals: x.count,
2484
+ statement: Qe({
2485
+ db: n,
2486
+ table: a
2487
+ })
2488
+ }, t.current.statement;
2489
+ }
2490
+ async function L(e) {
2491
+ b.get(e.exportId)?.controller.abort();
2492
+ }
2493
+ let R = { ...E };
2494
+ for (let e of a) {
2495
+ let t = E[e];
2496
+ Object.assign(R, { [e]: async function(...e) {
2497
+ try {
2498
+ return await t(...e);
2499
+ } catch (e) {
2500
+ throw await ae({ thrown: e });
2501
+ }
2502
+ } });
2503
+ }
2504
+ return re({ background: !0 }).catch(Mn), {
2505
+ ...R,
2506
+ creationId: _,
2507
+ importFile: ce,
2508
+ abortImport: M,
2509
+ exportFile: P,
2510
+ abortExport: L,
2511
+ abortExportsOf: function({ clientId: e }) {
2512
+ for (let t of b.values()) t.clientId === e && t.controller.abort();
2513
+ },
2514
+ abortImportsOf: function(e) {
2515
+ S.abortOwnedBy(e);
2516
+ },
2517
+ clientView: function({ clientId: e }) {
2518
+ return {
2519
+ ...R,
2520
+ importFile: function(t, n) {
2521
+ return ce({
2522
+ ...t,
2523
+ clientId: e
2524
+ }, n);
2525
+ },
2526
+ abortImport: M,
2527
+ exportFile: function(t, n) {
2528
+ return P({
2529
+ ...t,
2530
+ clientId: e
2531
+ }, n);
2532
+ },
2533
+ abortExport: L
2534
+ };
2535
+ },
2536
+ close: fe
2537
+ };
2538
+ }
2539
+ function Mn() {}
2540
+ function Nn(e) {
2541
+ let { db: t, file: n } = e, r = Number(t.selectValue("PRAGMA freelist_count")) * Number(t.selectValue("PRAGMA page_size")), i = Math.max(o, 8 * n.size);
2542
+ return Math.max(0, i - r);
2543
+ }
2544
+ function X(e) {
2545
+ e.importing.window?.settle();
2546
+ }
2547
+ function Pn(e) {
2548
+ let { sqlite3: t, name: n } = e;
2549
+ Ae({ sqlite3: t }) || I("ASSERTION_FAILED", { detail: `The engine of "${n}" runs on a SQLite whose text codec is not installed: load SQLite with loadSqlite` });
2550
+ }
2551
+ function Fn(e) {
2552
+ let { reads: t } = e;
2553
+ t.current?.statement.finalize(), t.current = void 0;
2554
+ }
2555
+ function Z(e) {
2556
+ let { state: t, name: n } = e;
2557
+ t.broken && I("STORE_ENGINE_LOST", {
2558
+ detail: `The project engine of "${n}" broke (an import left its connection inside a transaction): the next call starts the next one`,
2559
+ meta: { reason: "host-gone" }
2560
+ }), t.closed && D({ storeName: n });
2561
+ }
2562
+ function In(e) {
2563
+ let { sqlite3: t, db: n, documentId: r, creates: i, updates: a, deletes: o, importing: s } = e, c = `Records of document "${r}" could not be written`, l = H({
2564
+ detail: `Document "${r}"`,
2565
+ work: function() {
2566
+ return q({
2567
+ db: n,
2568
+ documentId: r
2569
+ });
2570
+ }
2571
+ });
2572
+ l || w({
2573
+ documentId: r,
2574
+ what: "records"
2575
+ });
2576
+ let u = Ve({ records: i });
2577
+ return H({
2578
+ detail: `The ids of document "${r}"`,
2579
+ work: function() {
2580
+ tt({
2581
+ db: n,
2582
+ table: l,
2583
+ documentId: r,
2584
+ creates: i
2585
+ });
2586
+ }
2587
+ }), V({
2588
+ key: "STORE_COMMIT_FAILED",
2589
+ detail: c,
2590
+ work: function() {
2591
+ return X({ importing: s }), G({
2592
+ sqlite3: t,
2593
+ db: n,
2594
+ work: function() {
2595
+ return Ln({
2596
+ db: n,
2597
+ table: l,
2598
+ rows: u,
2599
+ updates: a,
2600
+ deletes: o,
2601
+ detail: c
2602
+ });
2603
+ }
2604
+ });
2605
+ }
2606
+ });
2607
+ }
2608
+ function Ln(e) {
2609
+ let { db: t, table: n, rows: r, updates: i, deletes: a, detail: o } = e;
2610
+ return V({
2611
+ key: "STORE_BULK_ADD_FAILED",
2612
+ detail: o,
2613
+ work: function() {
2614
+ Ue({
2615
+ db: t,
2616
+ table: n,
2617
+ rows: r
2618
+ });
2619
+ }
2620
+ }), V({
2621
+ key: "STORE_BULK_UPDATE_FAILED",
2622
+ detail: o,
2623
+ work: function() {
2624
+ it({
2625
+ db: t,
2626
+ table: n,
2627
+ patches: i
2628
+ }), ot({
2629
+ db: t,
2630
+ table: n,
2631
+ patches: i
2632
+ });
2633
+ }
2634
+ }), V({
2635
+ key: "STORE_DELETE_FAILED",
2636
+ detail: o,
2637
+ work: function() {
2638
+ return st({
2639
+ db: t,
2640
+ table: n,
2641
+ ids: a
2642
+ });
2643
+ }
2644
+ });
2645
+ }
2646
+ function Rn(e) {
2647
+ return e.work();
2648
+ }
2649
+ // src/store/sqlite/load-sqlite.ts
2650
+ var zn = Se, Bn, Vn;
2651
+ function Hn(e = {}) {
2652
+ let { wasmUrl: t } = e, n = globalThis;
2653
+ if (n.sqlite3ApiConfig = {
2654
+ ...n.sqlite3ApiConfig,
2655
+ disable: { vfs: Ee }
2656
+ }, t !== void 0 && Vn !== void 0 && t !== Vn) throw F("ASSERTION_FAILED", { detail: `SQLite is loaded in this realm from "${Vn}", not from "${t}": one wasm file per realm` });
2657
+ return Bn || (Vn = t), Bn ??= (t ? zn({ locateFile: function() {
2658
+ return t;
2659
+ } }) : zn()).then(function(e) {
2660
+ return ke({ sqlite3: e }), e;
2661
+ }), Bn;
2662
+ }
2663
+ // src/store/sqlite/adapter/in-process-link.ts
2664
+ var Q = /* @__PURE__ */ new Map(), $ = /* @__PURE__ */ new Map(), Un = /* @__PURE__ */ new WeakMap();
2665
+ function Wn(e) {
2666
+ return te({
2667
+ project: e.name,
2668
+ dialecteId: e.dialecteId
2669
+ }), {
2670
+ connect: function() {
2671
+ return Gn(e);
2672
+ },
2673
+ destroy: async function(t) {
2674
+ let n = t?.own, r = Qn(e), i = $.get(r), a = (i?.size ?? 0) - (n !== void 0 && i?.has(n.link) ? 1 : 0);
2675
+ a > 0 && C({
2676
+ storeName: e.name,
2677
+ connections: a
2678
+ }), n?.letGo(), Xn({ key: r });
2679
+ }
2680
+ };
2681
+ }
2682
+ async function Gn(e) {
2683
+ let { name: n } = e, r = Qn(e), i = $.get(r) ?? /* @__PURE__ */ new Set();
2684
+ $.set(r, i);
2685
+ let a = crypto.randomUUID(), o = !1, s, c, l = /* @__PURE__ */ new Set(), u = {
2686
+ engine: async function() {
2687
+ o && D({ storeName: n });
2688
+ let i = await Yn({
2689
+ ...e,
2690
+ expectedCreationId: s
2691
+ });
2692
+ return t({
2693
+ project: n,
2694
+ expectedCreationId: s,
2695
+ creationId: i.creationId
2696
+ }), s = i.creationId, c !== void 0 && c !== i && qn({
2697
+ link: u,
2698
+ notice: { type: "resync" }
2699
+ }), c = i, Kn({
2700
+ view: i.clientView({ clientId: a }),
2701
+ announce: function(e) {
2702
+ let t = we({
2703
+ ...e,
2704
+ connectionId: a
2705
+ });
2706
+ if (t) for (let e of $.get(r) ?? []) qn({
2707
+ link: e,
2708
+ notice: {
2709
+ type: "event",
2710
+ signal: t
2711
+ }
2712
+ });
2713
+ }
2714
+ });
2715
+ },
2716
+ connectionId: a,
2717
+ onNotice: function(e) {
2718
+ return o ? Jn : (l.add(e), function() {
2719
+ l.delete(e);
2720
+ });
2721
+ },
2722
+ close: async function() {
2723
+ if (o = !0, l.clear(), !i.delete(u) || i.size > 0) return;
2724
+ $.delete(r);
2725
+ let e = Q.get(r);
2726
+ e?.engine?.close(), e && (e.engine = void 0);
2727
+ }
2728
+ };
2729
+ return Un.set(u, l), i.add(u), u;
2730
+ }
2731
+ function Kn(e) {
2732
+ let { view: t, announce: n } = e;
2733
+ return Object.fromEntries(Object.keys(t).map(function(e) {
2734
+ let r = t[e];
2735
+ return [e, async function(...t) {
2736
+ let i = await r(...t);
2737
+ return n({
2738
+ member: e,
2739
+ args: t,
2740
+ value: i
2741
+ }), i;
2742
+ }];
2743
+ }));
2744
+ }
2745
+ function qn(e) {
2746
+ ae({
2747
+ listeners: Un.get(e.link) ?? [],
2748
+ value: e.notice,
2749
+ of: j.engineChanges
2750
+ });
2751
+ }
2752
+ function Jn() {}
2753
+ async function Yn(e) {
2754
+ let { name: n, dialecteId: r, runtime: i, options: a, expectedCreationId: o } = e, s = Qn(e), c = await Hn({ wasmUrl: b() }), l = Q.get(s);
2755
+ l || t({
2756
+ project: n,
2757
+ expectedCreationId: o,
2758
+ creationId: void 0
2759
+ });
2760
+ let u = l ?? { keeper: new c.oo1.DB(Zn({ key: s }), "c") };
2761
+ if (Q.set(s, u), !u.engine) {
2762
+ let e = jn({
2763
+ sqlite3: c,
2764
+ db: new c.oo1.DB(Zn({ key: s }), "c"),
2765
+ dialecteId: r,
2766
+ expectedCreationId: o,
2767
+ name: n,
2768
+ runtime: i,
2769
+ options: a,
2770
+ onBroken: function() {
2771
+ u.engine === e && (u.engine = void 0);
2772
+ }
2773
+ });
2774
+ u.engine = e;
2775
+ }
2776
+ return u.engine;
2777
+ }
2778
+ function Xn(e) {
2779
+ let t = Q.get(e.key);
2780
+ t && (t.engine?.close(), t.keeper.close(), Q.delete(e.key));
2781
+ }
2782
+ function Zn(e) {
2783
+ return `file:/${encodeURIComponent(e.key)}?vfs=memdb`;
2784
+ }
2785
+ function Qn(e) {
2786
+ return ue({
2787
+ dialecteId: e.dialecteId,
2788
+ project: e.name
2789
+ });
2790
+ }
2791
+ export { Wn as createInProcessConnector };