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