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