@lix-js/sdk 0.5.1 → 0.6.0-preview.1

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 (2195) hide show
  1. package/README.md +5 -63
  2. package/SKILL.md +483 -0
  3. package/dist/builtin-schemas.d.ts +1 -0
  4. package/dist/builtin-schemas.js +1 -0
  5. package/dist/engine-wasm/index.d.ts +87 -0
  6. package/dist/engine-wasm/index.js +339 -0
  7. package/dist/engine-wasm/wasm/lix_engine.d.ts +50 -0
  8. package/dist/engine-wasm/wasm/lix_engine.js +767 -0
  9. package/dist/engine-wasm/wasm/lix_engine.wasm +0 -0
  10. package/dist/engine-wasm/wasm/lix_engine.wasm.d.ts +20 -0
  11. package/dist/generated/builtin-schemas.d.ts +502 -0
  12. package/dist/generated/builtin-schemas.js +740 -0
  13. package/dist/index.d.ts +5 -28
  14. package/dist/index.js +3 -28
  15. package/dist/open-lix.d.ts +111 -0
  16. package/dist/open-lix.js +265 -0
  17. package/dist/sqlite/index.d.ts +12 -0
  18. package/dist/sqlite/index.js +226 -0
  19. package/dist/types.d.ts +1 -0
  20. package/dist/types.js +1 -0
  21. package/package.json +49 -66
  22. package/LICENSE +0 -21
  23. package/dist/account/create-account.d.ts +0 -20
  24. package/dist/account/create-account.d.ts.map +0 -1
  25. package/dist/account/create-account.js +0 -42
  26. package/dist/account/create-account.js.map +0 -1
  27. package/dist/account/create-account.test.d.ts +0 -2
  28. package/dist/account/create-account.test.d.ts.map +0 -1
  29. package/dist/account/create-account.test.js +0 -48
  30. package/dist/account/create-account.test.js.map +0 -1
  31. package/dist/account/index.d.ts +0 -4
  32. package/dist/account/index.d.ts.map +0 -1
  33. package/dist/account/index.js +0 -4
  34. package/dist/account/index.js.map +0 -1
  35. package/dist/account/schema-definition.d.ts +0 -53
  36. package/dist/account/schema-definition.d.ts.map +0 -1
  37. package/dist/account/schema-definition.js +0 -50
  38. package/dist/account/schema-definition.js.map +0 -1
  39. package/dist/account/schema.test.d.ts +0 -2
  40. package/dist/account/schema.test.d.ts.map +0 -1
  41. package/dist/account/schema.test.js +0 -337
  42. package/dist/account/schema.test.js.map +0 -1
  43. package/dist/account/switch-account.d.ts +0 -26
  44. package/dist/account/switch-account.d.ts.map +0 -1
  45. package/dist/account/switch-account.js +0 -40
  46. package/dist/account/switch-account.js.map +0 -1
  47. package/dist/account/switch-account.test.d.ts +0 -2
  48. package/dist/account/switch-account.test.d.ts.map +0 -1
  49. package/dist/account/switch-account.test.js +0 -59
  50. package/dist/account/switch-account.test.js.map +0 -1
  51. package/dist/change/index.d.ts +0 -2
  52. package/dist/change/index.d.ts.map +0 -1
  53. package/dist/change/index.js +0 -2
  54. package/dist/change/index.js.map +0 -1
  55. package/dist/change/schema-definition.d.ts +0 -82
  56. package/dist/change/schema-definition.d.ts.map +0 -1
  57. package/dist/change/schema-definition.js +0 -36
  58. package/dist/change/schema-definition.js.map +0 -1
  59. package/dist/change/schema.bench.d.ts +0 -2
  60. package/dist/change/schema.bench.d.ts.map +0 -1
  61. package/dist/change/schema.bench.js +0 -334
  62. package/dist/change/schema.bench.js.map +0 -1
  63. package/dist/change/schema.d.ts +0 -15
  64. package/dist/change/schema.d.ts.map +0 -1
  65. package/dist/change/schema.js +0 -91
  66. package/dist/change/schema.js.map +0 -1
  67. package/dist/change/schema.test.d.ts +0 -2
  68. package/dist/change/schema.test.d.ts.map +0 -1
  69. package/dist/change/schema.test.js +0 -344
  70. package/dist/change/schema.test.js.map +0 -1
  71. package/dist/change-author/index.d.ts +0 -2
  72. package/dist/change-author/index.d.ts.map +0 -1
  73. package/dist/change-author/index.js +0 -2
  74. package/dist/change-author/index.js.map +0 -1
  75. package/dist/change-author/schema-definition.d.ts +0 -37
  76. package/dist/change-author/schema-definition.d.ts.map +0 -1
  77. package/dist/change-author/schema-definition.js +0 -35
  78. package/dist/change-author/schema-definition.js.map +0 -1
  79. package/dist/change-author/schema.test.d.ts +0 -2
  80. package/dist/change-author/schema.test.d.ts.map +0 -1
  81. package/dist/change-author/schema.test.js +0 -425
  82. package/dist/change-author/schema.test.js.map +0 -1
  83. package/dist/change-conflict/create-change-conflict.d.ts +0 -15
  84. package/dist/change-conflict/create-change-conflict.d.ts.map +0 -1
  85. package/dist/change-conflict/create-change-conflict.js +0 -85
  86. package/dist/change-conflict/create-change-conflict.js.map +0 -1
  87. package/dist/change-conflict/create-change-conflict.test.d.ts +0 -2
  88. package/dist/change-conflict/create-change-conflict.test.d.ts.map +0 -1
  89. package/dist/change-conflict/create-change-conflict.test.js +0 -147
  90. package/dist/change-conflict/create-change-conflict.test.js.map +0 -1
  91. package/dist/change-conflict/detect-change-conflicts.d.ts +0 -23
  92. package/dist/change-conflict/detect-change-conflicts.d.ts.map +0 -1
  93. package/dist/change-conflict/detect-change-conflicts.js +0 -52
  94. package/dist/change-conflict/detect-change-conflicts.js.map +0 -1
  95. package/dist/change-conflict/detect-change-conflicts.test.d.ts +0 -2
  96. package/dist/change-conflict/detect-change-conflicts.test.d.ts.map +0 -1
  97. package/dist/change-conflict/detect-change-conflicts.test.js +0 -186
  98. package/dist/change-conflict/detect-change-conflicts.test.js.map +0 -1
  99. package/dist/change-conflict/detect-diverging-entity-conflict.d.ts +0 -32
  100. package/dist/change-conflict/detect-diverging-entity-conflict.d.ts.map +0 -1
  101. package/dist/change-conflict/detect-diverging-entity-conflict.js +0 -68
  102. package/dist/change-conflict/detect-diverging-entity-conflict.js.map +0 -1
  103. package/dist/change-conflict/detect-diverging-entity-conflict.test.d.ts +0 -2
  104. package/dist/change-conflict/detect-diverging-entity-conflict.test.d.ts.map +0 -1
  105. package/dist/change-conflict/detect-diverging-entity-conflict.test.js +0 -203
  106. package/dist/change-conflict/detect-diverging-entity-conflict.test.js.map +0 -1
  107. package/dist/change-conflict/garbage-collect-change-conflicts.d.ts +0 -14
  108. package/dist/change-conflict/garbage-collect-change-conflicts.d.ts.map +0 -1
  109. package/dist/change-conflict/garbage-collect-change-conflicts.js +0 -69
  110. package/dist/change-conflict/garbage-collect-change-conflicts.js.map +0 -1
  111. package/dist/change-conflict/garbage-collect-change-conflicts.test.d.ts +0 -2
  112. package/dist/change-conflict/garbage-collect-change-conflicts.test.d.ts.map +0 -1
  113. package/dist/change-conflict/garbage-collect-change-conflicts.test.js +0 -182
  114. package/dist/change-conflict/garbage-collect-change-conflicts.test.js.map +0 -1
  115. package/dist/change-conflict/index.d.ts +0 -4
  116. package/dist/change-conflict/index.d.ts.map +0 -1
  117. package/dist/change-conflict/index.js +0 -4
  118. package/dist/change-conflict/index.js.map +0 -1
  119. package/dist/change-conflict/resolve-conflict-by-selecting.d.ts +0 -12
  120. package/dist/change-conflict/resolve-conflict-by-selecting.d.ts.map +0 -1
  121. package/dist/change-conflict/resolve-conflict-by-selecting.js +0 -48
  122. package/dist/change-conflict/resolve-conflict-by-selecting.js.map +0 -1
  123. package/dist/change-conflict/resolve-conflict-by-selecting.test.d.ts +0 -2
  124. package/dist/change-conflict/resolve-conflict-by-selecting.test.d.ts.map +0 -1
  125. package/dist/change-conflict/resolve-conflict-by-selecting.test.js +0 -104
  126. package/dist/change-conflict/resolve-conflict-by-selecting.test.js.map +0 -1
  127. package/dist/change-conflict/update-change-conflicts.d.ts +0 -2
  128. package/dist/change-conflict/update-change-conflicts.d.ts.map +0 -1
  129. package/dist/change-conflict/update-change-conflicts.js +0 -72
  130. package/dist/change-conflict/update-change-conflicts.js.map +0 -1
  131. package/dist/change-proposal/accept-change-proposal.d.ts +0 -7
  132. package/dist/change-proposal/accept-change-proposal.d.ts.map +0 -1
  133. package/dist/change-proposal/accept-change-proposal.js +0 -36
  134. package/dist/change-proposal/accept-change-proposal.js.map +0 -1
  135. package/dist/change-proposal/accept-change-proposal.test.d.ts +0 -2
  136. package/dist/change-proposal/accept-change-proposal.test.d.ts.map +0 -1
  137. package/dist/change-proposal/accept-change-proposal.test.js +0 -55
  138. package/dist/change-proposal/accept-change-proposal.test.js.map +0 -1
  139. package/dist/change-proposal/create-change-proposal.d.ts +0 -18
  140. package/dist/change-proposal/create-change-proposal.d.ts.map +0 -1
  141. package/dist/change-proposal/create-change-proposal.js +0 -37
  142. package/dist/change-proposal/create-change-proposal.js.map +0 -1
  143. package/dist/change-proposal/create-change-proposal.test.d.ts +0 -2
  144. package/dist/change-proposal/create-change-proposal.test.d.ts.map +0 -1
  145. package/dist/change-proposal/create-change-proposal.test.js +0 -70
  146. package/dist/change-proposal/create-change-proposal.test.js.map +0 -1
  147. package/dist/change-proposal/index.d.ts +0 -5
  148. package/dist/change-proposal/index.d.ts.map +0 -1
  149. package/dist/change-proposal/index.js +0 -5
  150. package/dist/change-proposal/index.js.map +0 -1
  151. package/dist/change-proposal/reject-change-proposal.d.ts +0 -7
  152. package/dist/change-proposal/reject-change-proposal.d.ts.map +0 -1
  153. package/dist/change-proposal/reject-change-proposal.js +0 -15
  154. package/dist/change-proposal/reject-change-proposal.js.map +0 -1
  155. package/dist/change-proposal/reject-change-proposal.test.d.ts +0 -2
  156. package/dist/change-proposal/reject-change-proposal.test.d.ts.map +0 -1
  157. package/dist/change-proposal/reject-change-proposal.test.js +0 -28
  158. package/dist/change-proposal/reject-change-proposal.test.js.map +0 -1
  159. package/dist/change-proposal/schema-definition.d.ts +0 -45
  160. package/dist/change-proposal/schema-definition.d.ts.map +0 -1
  161. package/dist/change-proposal/schema-definition.js +0 -34
  162. package/dist/change-proposal/schema-definition.js.map +0 -1
  163. package/dist/change-proposal/schema.test.d.ts +0 -2
  164. package/dist/change-proposal/schema.test.d.ts.map +0 -1
  165. package/dist/change-proposal/schema.test.js +0 -103
  166. package/dist/change-proposal/schema.test.js.map +0 -1
  167. package/dist/change-set/apply-change-set.d.ts +0 -10
  168. package/dist/change-set/apply-change-set.d.ts.map +0 -1
  169. package/dist/change-set/apply-change-set.js +0 -127
  170. package/dist/change-set/apply-change-set.js.map +0 -1
  171. package/dist/change-set/apply-change-set.test.d.ts +0 -2
  172. package/dist/change-set/apply-change-set.test.d.ts.map +0 -1
  173. package/dist/change-set/apply-change-set.test.js +0 -394
  174. package/dist/change-set/apply-change-set.test.js.map +0 -1
  175. package/dist/change-set/create-change-set.d.ts +0 -25
  176. package/dist/change-set/create-change-set.d.ts.map +0 -1
  177. package/dist/change-set/create-change-set.js +0 -73
  178. package/dist/change-set/create-change-set.js.map +0 -1
  179. package/dist/change-set/create-change-set.test.d.ts +0 -2
  180. package/dist/change-set/create-change-set.test.d.ts.map +0 -1
  181. package/dist/change-set/create-change-set.test.js +0 -100
  182. package/dist/change-set/create-change-set.test.js.map +0 -1
  183. package/dist/change-set/index.d.ts +0 -4
  184. package/dist/change-set/index.d.ts.map +0 -1
  185. package/dist/change-set/index.js +0 -4
  186. package/dist/change-set/index.js.map +0 -1
  187. package/dist/change-set/schema-definition.d.ts +0 -73
  188. package/dist/change-set/schema-definition.d.ts.map +0 -1
  189. package/dist/change-set/schema-definition.js +0 -72
  190. package/dist/change-set/schema-definition.js.map +0 -1
  191. package/dist/change-set/schema.test.d.ts +0 -2
  192. package/dist/change-set/schema.test.d.ts.map +0 -1
  193. package/dist/change-set/schema.test.js +0 -432
  194. package/dist/change-set/schema.test.js.map +0 -1
  195. package/dist/commit/index.d.ts +0 -2
  196. package/dist/commit/index.d.ts.map +0 -1
  197. package/dist/commit/index.js +0 -2
  198. package/dist/commit/index.js.map +0 -1
  199. package/dist/commit/schema-definition.d.ts +0 -97
  200. package/dist/commit/schema-definition.d.ts.map +0 -1
  201. package/dist/commit/schema-definition.js +0 -89
  202. package/dist/commit/schema-definition.js.map +0 -1
  203. package/dist/commit/schema.test.d.ts +0 -2
  204. package/dist/commit/schema.test.d.ts.map +0 -1
  205. package/dist/commit/schema.test.js +0 -295
  206. package/dist/commit/schema.test.js.map +0 -1
  207. package/dist/conversation/create-conversation-message.d.ts +0 -11
  208. package/dist/conversation/create-conversation-message.d.ts.map +0 -1
  209. package/dist/conversation/create-conversation-message.js +0 -59
  210. package/dist/conversation/create-conversation-message.js.map +0 -1
  211. package/dist/conversation/create-conversation-message.test.d.ts +0 -2
  212. package/dist/conversation/create-conversation-message.test.d.ts.map +0 -1
  213. package/dist/conversation/create-conversation-message.test.js +0 -98
  214. package/dist/conversation/create-conversation-message.test.js.map +0 -1
  215. package/dist/conversation/create-conversation.d.ts +0 -39
  216. package/dist/conversation/create-conversation.d.ts.map +0 -1
  217. package/dist/conversation/create-conversation.js +0 -80
  218. package/dist/conversation/create-conversation.js.map +0 -1
  219. package/dist/conversation/create-conversation.test.d.ts +0 -2
  220. package/dist/conversation/create-conversation.test.d.ts.map +0 -1
  221. package/dist/conversation/create-conversation.test.js +0 -157
  222. package/dist/conversation/create-conversation.test.js.map +0 -1
  223. package/dist/conversation/index.d.ts +0 -4
  224. package/dist/conversation/index.d.ts.map +0 -1
  225. package/dist/conversation/index.js +0 -4
  226. package/dist/conversation/index.js.map +0 -1
  227. package/dist/conversation/schema-definition.d.ts +0 -64
  228. package/dist/conversation/schema-definition.d.ts.map +0 -1
  229. package/dist/conversation/schema-definition.js +0 -59
  230. package/dist/conversation/schema-definition.js.map +0 -1
  231. package/dist/database/graph-traversal-mode.d.ts +0 -72
  232. package/dist/database/graph-traversal-mode.d.ts.map +0 -1
  233. package/dist/database/graph-traversal-mode.js +0 -2
  234. package/dist/database/graph-traversal-mode.js.map +0 -1
  235. package/dist/database/index.d.ts +0 -4
  236. package/dist/database/index.d.ts.map +0 -1
  237. package/dist/database/index.js +0 -4
  238. package/dist/database/index.js.map +0 -1
  239. package/dist/database/init-db.d.ts +0 -35
  240. package/dist/database/init-db.d.ts.map +0 -1
  241. package/dist/database/init-db.js +0 -127
  242. package/dist/database/init-db.js.map +0 -1
  243. package/dist/database/kysely/index.d.ts +0 -2
  244. package/dist/database/kysely/index.d.ts.map +0 -1
  245. package/dist/database/kysely/index.js +0 -2
  246. package/dist/database/kysely/index.js.map +0 -1
  247. package/dist/database/kysely/json-column-config.d.ts +0 -6
  248. package/dist/database/kysely/json-column-config.d.ts.map +0 -1
  249. package/dist/database/kysely/json-column-config.js +0 -55
  250. package/dist/database/kysely/json-column-config.js.map +0 -1
  251. package/dist/database/kysely/plugins/json-column-plugin.d.ts +0 -7
  252. package/dist/database/kysely/plugins/json-column-plugin.d.ts.map +0 -1
  253. package/dist/database/kysely/plugins/json-column-plugin.js +0 -216
  254. package/dist/database/kysely/plugins/json-column-plugin.js.map +0 -1
  255. package/dist/database/kysely/plugins/json-column-plugin.test.d.ts +0 -2
  256. package/dist/database/kysely/plugins/json-column-plugin.test.d.ts.map +0 -1
  257. package/dist/database/kysely/plugins/json-column-plugin.test.js +0 -441
  258. package/dist/database/kysely/plugins/json-column-plugin.test.js.map +0 -1
  259. package/dist/database/kysely/plugins/view-insert-returning-error-plugin.d.ts +0 -15
  260. package/dist/database/kysely/plugins/view-insert-returning-error-plugin.d.ts.map +0 -1
  261. package/dist/database/kysely/plugins/view-insert-returning-error-plugin.js +0 -31
  262. package/dist/database/kysely/plugins/view-insert-returning-error-plugin.js.map +0 -1
  263. package/dist/database/kysely/plugins/view-insert-returning-error-plugin.test.d.ts +0 -2
  264. package/dist/database/kysely/plugins/view-insert-returning-error-plugin.test.d.ts.map +0 -1
  265. package/dist/database/kysely/plugins/view-insert-returning-error-plugin.test.js +0 -51
  266. package/dist/database/kysely/plugins/view-insert-returning-error-plugin.test.js.map +0 -1
  267. package/dist/database/kysely/plugins.d.ts +0 -3
  268. package/dist/database/kysely/plugins.d.ts.map +0 -1
  269. package/dist/database/kysely/plugins.js +0 -15
  270. package/dist/database/kysely/plugins.js.map +0 -1
  271. package/dist/database/nano-id.d.ts +0 -24
  272. package/dist/database/nano-id.d.ts.map +0 -1
  273. package/dist/database/nano-id.js +0 -84
  274. package/dist/database/nano-id.js.map +0 -1
  275. package/dist/database/nano-id.test.d.ts +0 -2
  276. package/dist/database/nano-id.test.d.ts.map +0 -1
  277. package/dist/database/nano-id.test.js +0 -38
  278. package/dist/database/nano-id.test.js.map +0 -1
  279. package/dist/database/schema-view-map.d.ts +0 -3
  280. package/dist/database/schema-view-map.d.ts.map +0 -1
  281. package/dist/database/schema-view-map.js +0 -35
  282. package/dist/database/schema-view-map.js.map +0 -1
  283. package/dist/database/schema.d.ts +0 -89
  284. package/dist/database/schema.d.ts.map +0 -1
  285. package/dist/database/schema.js +0 -21
  286. package/dist/database/schema.js.map +0 -1
  287. package/dist/database/sqlite/content-from-database.d.ts +0 -10
  288. package/dist/database/sqlite/content-from-database.d.ts.map +0 -1
  289. package/dist/database/sqlite/content-from-database.js +0 -11
  290. package/dist/database/sqlite/content-from-database.js.map +0 -1
  291. package/dist/database/sqlite/create-in-memory-database.d.ts +0 -23
  292. package/dist/database/sqlite/create-in-memory-database.d.ts.map +0 -1
  293. package/dist/database/sqlite/create-in-memory-database.js +0 -44
  294. package/dist/database/sqlite/create-in-memory-database.js.map +0 -1
  295. package/dist/database/sqlite/environment-dialect.d.ts +0 -21
  296. package/dist/database/sqlite/environment-dialect.d.ts.map +0 -1
  297. package/dist/database/sqlite/environment-dialect.js +0 -198
  298. package/dist/database/sqlite/environment-dialect.js.map +0 -1
  299. package/dist/database/sqlite/environment-dialect.test.d.ts +0 -2
  300. package/dist/database/sqlite/environment-dialect.test.d.ts.map +0 -1
  301. package/dist/database/sqlite/environment-dialect.test.js +0 -66
  302. package/dist/database/sqlite/environment-dialect.test.js.map +0 -1
  303. package/dist/database/sqlite/import-database.d.ts +0 -18
  304. package/dist/database/sqlite/import-database.d.ts.map +0 -1
  305. package/dist/database/sqlite/import-database.js +0 -24
  306. package/dist/database/sqlite/import-database.js.map +0 -1
  307. package/dist/database/sqlite/index.d.ts +0 -8
  308. package/dist/database/sqlite/index.d.ts.map +0 -1
  309. package/dist/database/sqlite/index.js +0 -7
  310. package/dist/database/sqlite/index.js.map +0 -1
  311. package/dist/database/sqlite/kysely-driver/connection-mutex.d.ts +0 -6
  312. package/dist/database/sqlite/kysely-driver/connection-mutex.d.ts.map +0 -1
  313. package/dist/database/sqlite/kysely-driver/connection-mutex.js +0 -19
  314. package/dist/database/sqlite/kysely-driver/connection-mutex.js.map +0 -1
  315. package/dist/database/sqlite/kysely-driver/index.d.ts +0 -5
  316. package/dist/database/sqlite/kysely-driver/index.d.ts.map +0 -1
  317. package/dist/database/sqlite/kysely-driver/index.js +0 -4
  318. package/dist/database/sqlite/kysely-driver/index.js.map +0 -1
  319. package/dist/database/sqlite/kysely-driver/sqlite-wasm-connection.d.ts +0 -9
  320. package/dist/database/sqlite/kysely-driver/sqlite-wasm-connection.d.ts.map +0 -1
  321. package/dist/database/sqlite/kysely-driver/sqlite-wasm-connection.js +0 -43
  322. package/dist/database/sqlite/kysely-driver/sqlite-wasm-connection.js.map +0 -1
  323. package/dist/database/sqlite/kysely-driver/sqlite-wasm-dialect-config.d.ts +0 -19
  324. package/dist/database/sqlite/kysely-driver/sqlite-wasm-dialect-config.d.ts.map +0 -1
  325. package/dist/database/sqlite/kysely-driver/sqlite-wasm-dialect-config.js +0 -2
  326. package/dist/database/sqlite/kysely-driver/sqlite-wasm-dialect-config.js.map +0 -1
  327. package/dist/database/sqlite/kysely-driver/sqlite-wasm-driver.d.ts +0 -14
  328. package/dist/database/sqlite/kysely-driver/sqlite-wasm-driver.d.ts.map +0 -1
  329. package/dist/database/sqlite/kysely-driver/sqlite-wasm-driver.js +0 -45
  330. package/dist/database/sqlite/kysely-driver/sqlite-wasm-driver.js.map +0 -1
  331. package/dist/database/sqlite/lix-dialect.d.ts +0 -23
  332. package/dist/database/sqlite/lix-dialect.d.ts.map +0 -1
  333. package/dist/database/sqlite/lix-dialect.js +0 -24
  334. package/dist/database/sqlite/lix-dialect.js.map +0 -1
  335. package/dist/database/sqlite/load-database-in-memory.d.ts +0 -13
  336. package/dist/database/sqlite/load-database-in-memory.d.ts.map +0 -1
  337. package/dist/database/sqlite/load-database-in-memory.js +0 -23
  338. package/dist/database/sqlite/load-database-in-memory.js.map +0 -1
  339. package/dist/database/sqlite/sqlite-wasm-binary.d.ts +0 -2
  340. package/dist/database/sqlite/sqlite-wasm-binary.js +0 -42835
  341. package/dist/dependency/kysely/helpers/sqlite.d.ts +0 -5
  342. package/dist/dependency/kysely/helpers/sqlite.d.ts.map +0 -1
  343. package/dist/dependency/kysely/helpers/sqlite.js +0 -5
  344. package/dist/dependency/kysely/helpers/sqlite.js.map +0 -1
  345. package/dist/dependency/kysely/index.d.ts +0 -9
  346. package/dist/dependency/kysely/index.d.ts.map +0 -1
  347. package/dist/dependency/kysely/index.js +0 -9
  348. package/dist/dependency/kysely/index.js.map +0 -1
  349. package/dist/dependency/zettel-ast/index.d.ts +0 -11
  350. package/dist/dependency/zettel-ast/index.d.ts.map +0 -1
  351. package/dist/dependency/zettel-ast/index.js +0 -11
  352. package/dist/dependency/zettel-ast/index.js.map +0 -1
  353. package/dist/diff/index.d.ts +0 -3
  354. package/dist/diff/index.d.ts.map +0 -1
  355. package/dist/diff/index.js +0 -3
  356. package/dist/diff/index.js.map +0 -1
  357. package/dist/diff/select-commit-diff.bench.d.ts +0 -2
  358. package/dist/diff/select-commit-diff.bench.d.ts.map +0 -1
  359. package/dist/diff/select-commit-diff.bench.js +0 -136
  360. package/dist/diff/select-commit-diff.bench.js.map +0 -1
  361. package/dist/diff/select-commit-diff.d.ts +0 -56
  362. package/dist/diff/select-commit-diff.d.ts.map +0 -1
  363. package/dist/diff/select-commit-diff.js +0 -212
  364. package/dist/diff/select-commit-diff.js.map +0 -1
  365. package/dist/diff/select-commit-diff.test.d.ts +0 -2
  366. package/dist/diff/select-commit-diff.test.d.ts.map +0 -1
  367. package/dist/diff/select-commit-diff.test.js +0 -52
  368. package/dist/diff/select-commit-diff.test.js.map +0 -1
  369. package/dist/diff/select-working-diff.bench.d.ts +0 -2
  370. package/dist/diff/select-working-diff.bench.d.ts.map +0 -1
  371. package/dist/diff/select-working-diff.bench.js +0 -82
  372. package/dist/diff/select-working-diff.bench.js.map +0 -1
  373. package/dist/diff/select-working-diff.d.ts +0 -105
  374. package/dist/diff/select-working-diff.d.ts.map +0 -1
  375. package/dist/diff/select-working-diff.js +0 -95
  376. package/dist/diff/select-working-diff.js.map +0 -1
  377. package/dist/diff/select-working-diff.test.d.ts +0 -2
  378. package/dist/diff/select-working-diff.test.d.ts.map +0 -1
  379. package/dist/diff/select-working-diff.test.js +0 -231
  380. package/dist/diff/select-working-diff.test.js.map +0 -1
  381. package/dist/engine/boot.d.ts +0 -90
  382. package/dist/engine/boot.d.ts.map +0 -1
  383. package/dist/engine/boot.js +0 -149
  384. package/dist/engine/boot.js.map +0 -1
  385. package/dist/engine/boot.test.d.ts +0 -2
  386. package/dist/engine/boot.test.d.ts.map +0 -1
  387. package/dist/engine/boot.test.js +0 -75
  388. package/dist/engine/boot.test.js.map +0 -1
  389. package/dist/engine/cel-environment/cel-environment.d.ts +0 -17
  390. package/dist/engine/cel-environment/cel-environment.d.ts.map +0 -1
  391. package/dist/engine/cel-environment/cel-environment.js +0 -54
  392. package/dist/engine/cel-environment/cel-environment.js.map +0 -1
  393. package/dist/engine/cel-environment/cel-environment.test.d.ts +0 -2
  394. package/dist/engine/cel-environment/cel-environment.test.d.ts.map +0 -1
  395. package/dist/engine/cel-environment/cel-environment.test.js +0 -19
  396. package/dist/engine/cel-environment/cel-environment.test.js.map +0 -1
  397. package/dist/engine/deterministic-mode/is-deterministic-mode.d.ts +0 -36
  398. package/dist/engine/deterministic-mode/is-deterministic-mode.d.ts.map +0 -1
  399. package/dist/engine/deterministic-mode/is-deterministic-mode.js +0 -80
  400. package/dist/engine/deterministic-mode/is-deterministic-mode.js.map +0 -1
  401. package/dist/engine/deterministic-mode/is-deterministic-mode.test.d.ts +0 -2
  402. package/dist/engine/deterministic-mode/is-deterministic-mode.test.d.ts.map +0 -1
  403. package/dist/engine/deterministic-mode/is-deterministic-mode.test.js +0 -95
  404. package/dist/engine/deterministic-mode/is-deterministic-mode.test.js.map +0 -1
  405. package/dist/engine/deterministic-mode/options.d.ts +0 -48
  406. package/dist/engine/deterministic-mode/options.d.ts.map +0 -1
  407. package/dist/engine/deterministic-mode/options.js +0 -47
  408. package/dist/engine/deterministic-mode/options.js.map +0 -1
  409. package/dist/engine/deterministic-mode/options.test.d.ts +0 -2
  410. package/dist/engine/deterministic-mode/options.test.d.ts.map +0 -1
  411. package/dist/engine/deterministic-mode/options.test.js +0 -111
  412. package/dist/engine/deterministic-mode/options.test.js.map +0 -1
  413. package/dist/engine/entity-views/build-json-object-entries.d.ts +0 -12
  414. package/dist/engine/entity-views/build-json-object-entries.d.ts.map +0 -1
  415. package/dist/engine/entity-views/build-json-object-entries.js +0 -37
  416. package/dist/engine/entity-views/build-json-object-entries.js.map +0 -1
  417. package/dist/engine/entity-views/build-json-object-entries.test.d.ts +0 -2
  418. package/dist/engine/entity-views/build-json-object-entries.test.d.ts.map +0 -1
  419. package/dist/engine/entity-views/build-json-object-entries.test.js +0 -35
  420. package/dist/engine/entity-views/build-json-object-entries.test.js.map +0 -1
  421. package/dist/engine/entity-views/entity-state-by-version.d.ts +0 -238
  422. package/dist/engine/entity-views/entity-state-by-version.d.ts.map +0 -1
  423. package/dist/engine/entity-views/entity-state-by-version.js +0 -2
  424. package/dist/engine/entity-views/entity-state-by-version.js.map +0 -1
  425. package/dist/engine/entity-views/entity-state-history.d.ts +0 -189
  426. package/dist/engine/entity-views/entity-state-history.d.ts.map +0 -1
  427. package/dist/engine/entity-views/entity-state-history.js +0 -2
  428. package/dist/engine/entity-views/entity-state-history.js.map +0 -1
  429. package/dist/engine/entity-views/entity-state.d.ts +0 -218
  430. package/dist/engine/entity-views/entity-state.d.ts.map +0 -1
  431. package/dist/engine/entity-views/entity-state.js +0 -2
  432. package/dist/engine/entity-views/entity-state.js.map +0 -1
  433. package/dist/engine/entity-views/entity-view-builder.d.ts +0 -34
  434. package/dist/engine/entity-views/entity-view-builder.d.ts.map +0 -1
  435. package/dist/engine/entity-views/entity-view-builder.js +0 -4
  436. package/dist/engine/entity-views/entity-view-builder.js.map +0 -1
  437. package/dist/engine/entity-views/index.d.ts +0 -2
  438. package/dist/engine/entity-views/index.d.ts.map +0 -1
  439. package/dist/engine/entity-views/index.js +0 -2
  440. package/dist/engine/entity-views/index.js.map +0 -1
  441. package/dist/engine/entity-views/types.d.ts +0 -309
  442. package/dist/engine/entity-views/types.d.ts.map +0 -1
  443. package/dist/engine/entity-views/types.js +0 -2
  444. package/dist/engine/entity-views/types.js.map +0 -1
  445. package/dist/engine/entity-views/types.test.d.ts +0 -2
  446. package/dist/engine/entity-views/types.test.d.ts.map +0 -1
  447. package/dist/engine/entity-views/types.test.js +0 -62
  448. package/dist/engine/entity-views/types.test.js.map +0 -1
  449. package/dist/engine/execute-sync.d.ts +0 -5
  450. package/dist/engine/execute-sync.d.ts.map +0 -1
  451. package/dist/engine/execute-sync.js +0 -38
  452. package/dist/engine/execute-sync.js.map +0 -1
  453. package/dist/engine/execute-sync.test.d.ts +0 -2
  454. package/dist/engine/execute-sync.test.d.ts.map +0 -1
  455. package/dist/engine/execute-sync.test.js +0 -64
  456. package/dist/engine/execute-sync.test.js.map +0 -1
  457. package/dist/engine/explain-query.d.ts +0 -15
  458. package/dist/engine/explain-query.d.ts.map +0 -1
  459. package/dist/engine/explain-query.js +0 -66
  460. package/dist/engine/explain-query.js.map +0 -1
  461. package/dist/engine/explain-query.test.d.ts +0 -2
  462. package/dist/engine/explain-query.test.d.ts.map +0 -1
  463. package/dist/engine/explain-query.test.js +0 -17
  464. package/dist/engine/explain-query.test.js.map +0 -1
  465. package/dist/engine/functions/function-registry.d.ts +0 -20
  466. package/dist/engine/functions/function-registry.d.ts.map +0 -1
  467. package/dist/engine/functions/function-registry.js +0 -25
  468. package/dist/engine/functions/function-registry.js.map +0 -1
  469. package/dist/engine/functions/generate-human-id.d.ts +0 -43
  470. package/dist/engine/functions/generate-human-id.d.ts.map +0 -1
  471. package/dist/engine/functions/generate-human-id.js +0 -335
  472. package/dist/engine/functions/generate-human-id.js.map +0 -1
  473. package/dist/engine/functions/generate-human-id.test.d.ts +0 -2
  474. package/dist/engine/functions/generate-human-id.test.d.ts.map +0 -1
  475. package/dist/engine/functions/generate-human-id.test.js +0 -156
  476. package/dist/engine/functions/generate-human-id.test.js.map +0 -1
  477. package/dist/engine/functions/index.d.ts +0 -7
  478. package/dist/engine/functions/index.d.ts.map +0 -1
  479. package/dist/engine/functions/index.js +0 -7
  480. package/dist/engine/functions/index.js.map +0 -1
  481. package/dist/engine/functions/nano-id.bench.d.ts +0 -2
  482. package/dist/engine/functions/nano-id.bench.d.ts.map +0 -1
  483. package/dist/engine/functions/nano-id.bench.js +0 -48
  484. package/dist/engine/functions/nano-id.bench.js.map +0 -1
  485. package/dist/engine/functions/nano-id.d.ts +0 -69
  486. package/dist/engine/functions/nano-id.d.ts.map +0 -1
  487. package/dist/engine/functions/nano-id.js +0 -170
  488. package/dist/engine/functions/nano-id.js.map +0 -1
  489. package/dist/engine/functions/nano-id.test.d.ts +0 -2
  490. package/dist/engine/functions/nano-id.test.d.ts.map +0 -1
  491. package/dist/engine/functions/nano-id.test.js +0 -163
  492. package/dist/engine/functions/nano-id.test.js.map +0 -1
  493. package/dist/engine/functions/random.d.ts +0 -57
  494. package/dist/engine/functions/random.d.ts.map +0 -1
  495. package/dist/engine/functions/random.js +0 -214
  496. package/dist/engine/functions/random.js.map +0 -1
  497. package/dist/engine/functions/random.test.d.ts +0 -2
  498. package/dist/engine/functions/random.test.d.ts.map +0 -1
  499. package/dist/engine/functions/random.test.js +0 -244
  500. package/dist/engine/functions/random.test.js.map +0 -1
  501. package/dist/engine/functions/register-builtins.d.ts +0 -9
  502. package/dist/engine/functions/register-builtins.d.ts.map +0 -1
  503. package/dist/engine/functions/register-builtins.js +0 -110
  504. package/dist/engine/functions/register-builtins.js.map +0 -1
  505. package/dist/engine/functions/sequence.d.ts +0 -77
  506. package/dist/engine/functions/sequence.d.ts.map +0 -1
  507. package/dist/engine/functions/sequence.js +0 -136
  508. package/dist/engine/functions/sequence.js.map +0 -1
  509. package/dist/engine/functions/sequence.test.d.ts +0 -2
  510. package/dist/engine/functions/sequence.test.d.ts.map +0 -1
  511. package/dist/engine/functions/sequence.test.js +0 -77
  512. package/dist/engine/functions/sequence.test.js.map +0 -1
  513. package/dist/engine/functions/timestamp.d.ts +0 -44
  514. package/dist/engine/functions/timestamp.d.ts.map +0 -1
  515. package/dist/engine/functions/timestamp.js +0 -70
  516. package/dist/engine/functions/timestamp.js.map +0 -1
  517. package/dist/engine/functions/timestamp.test.d.ts +0 -2
  518. package/dist/engine/functions/timestamp.test.d.ts.map +0 -1
  519. package/dist/engine/functions/timestamp.test.js +0 -147
  520. package/dist/engine/functions/timestamp.test.js.map +0 -1
  521. package/dist/engine/functions/uuid-v7.d.ts +0 -50
  522. package/dist/engine/functions/uuid-v7.d.ts.map +0 -1
  523. package/dist/engine/functions/uuid-v7.js +0 -75
  524. package/dist/engine/functions/uuid-v7.js.map +0 -1
  525. package/dist/engine/functions/uuid-v7.test.d.ts +0 -2
  526. package/dist/engine/functions/uuid-v7.test.d.ts.map +0 -1
  527. package/dist/engine/functions/uuid-v7.test.js +0 -114
  528. package/dist/engine/functions/uuid-v7.test.js.map +0 -1
  529. package/dist/engine/index.d.ts +0 -2
  530. package/dist/engine/index.d.ts.map +0 -1
  531. package/dist/engine/index.js +0 -2
  532. package/dist/engine/index.js.map +0 -1
  533. package/dist/engine/internal-query-builder.d.ts +0 -26
  534. package/dist/engine/internal-query-builder.d.ts.map +0 -1
  535. package/dist/engine/internal-query-builder.js +0 -34
  536. package/dist/engine/internal-query-builder.js.map +0 -1
  537. package/dist/engine/preprocessor/create-preprocessor.d.ts +0 -18
  538. package/dist/engine/preprocessor/create-preprocessor.d.ts.map +0 -1
  539. package/dist/engine/preprocessor/create-preprocessor.js +0 -217
  540. package/dist/engine/preprocessor/create-preprocessor.js.map +0 -1
  541. package/dist/engine/preprocessor/create-preprocessor.test.d.ts +0 -2
  542. package/dist/engine/preprocessor/create-preprocessor.test.d.ts.map +0 -1
  543. package/dist/engine/preprocessor/create-preprocessor.test.js +0 -216
  544. package/dist/engine/preprocessor/create-preprocessor.test.js.map +0 -1
  545. package/dist/engine/preprocessor/entity-views/delete.d.ts +0 -3
  546. package/dist/engine/preprocessor/entity-views/delete.d.ts.map +0 -1
  547. package/dist/engine/preprocessor/entity-views/delete.js +0 -235
  548. package/dist/engine/preprocessor/entity-views/delete.js.map +0 -1
  549. package/dist/engine/preprocessor/entity-views/delete.test.d.ts +0 -2
  550. package/dist/engine/preprocessor/entity-views/delete.test.d.ts.map +0 -1
  551. package/dist/engine/preprocessor/entity-views/delete.test.js +0 -700
  552. package/dist/engine/preprocessor/entity-views/delete.test.js.map +0 -1
  553. package/dist/engine/preprocessor/entity-views/insert.d.ts +0 -3
  554. package/dist/engine/preprocessor/entity-views/insert.d.ts.map +0 -1
  555. package/dist/engine/preprocessor/entity-views/insert.js +0 -675
  556. package/dist/engine/preprocessor/entity-views/insert.js.map +0 -1
  557. package/dist/engine/preprocessor/entity-views/insert.test.d.ts +0 -2
  558. package/dist/engine/preprocessor/entity-views/insert.test.d.ts.map +0 -1
  559. package/dist/engine/preprocessor/entity-views/insert.test.js +0 -1014
  560. package/dist/engine/preprocessor/entity-views/insert.test.js.map +0 -1
  561. package/dist/engine/preprocessor/entity-views/select.bench.d.ts +0 -2
  562. package/dist/engine/preprocessor/entity-views/select.bench.d.ts.map +0 -1
  563. package/dist/engine/preprocessor/entity-views/select.bench.js +0 -145
  564. package/dist/engine/preprocessor/entity-views/select.bench.js.map +0 -1
  565. package/dist/engine/preprocessor/entity-views/select.d.ts +0 -6
  566. package/dist/engine/preprocessor/entity-views/select.d.ts.map +0 -1
  567. package/dist/engine/preprocessor/entity-views/select.js +0 -1306
  568. package/dist/engine/preprocessor/entity-views/select.js.map +0 -1
  569. package/dist/engine/preprocessor/entity-views/select.test.d.ts +0 -2
  570. package/dist/engine/preprocessor/entity-views/select.test.d.ts.map +0 -1
  571. package/dist/engine/preprocessor/entity-views/select.test.js +0 -320
  572. package/dist/engine/preprocessor/entity-views/select.test.js.map +0 -1
  573. package/dist/engine/preprocessor/entity-views/shared.d.ts +0 -165
  574. package/dist/engine/preprocessor/entity-views/shared.d.ts.map +0 -1
  575. package/dist/engine/preprocessor/entity-views/shared.js +0 -1080
  576. package/dist/engine/preprocessor/entity-views/shared.js.map +0 -1
  577. package/dist/engine/preprocessor/entity-views/update.d.ts +0 -3
  578. package/dist/engine/preprocessor/entity-views/update.d.ts.map +0 -1
  579. package/dist/engine/preprocessor/entity-views/update.js +0 -527
  580. package/dist/engine/preprocessor/entity-views/update.js.map +0 -1
  581. package/dist/engine/preprocessor/entity-views/update.test.d.ts +0 -2
  582. package/dist/engine/preprocessor/entity-views/update.test.d.ts.map +0 -1
  583. package/dist/engine/preprocessor/entity-views/update.test.js +0 -356
  584. package/dist/engine/preprocessor/entity-views/update.test.js.map +0 -1
  585. package/dist/engine/preprocessor/inheritance/version-inheritance-cache.d.ts +0 -38
  586. package/dist/engine/preprocessor/inheritance/version-inheritance-cache.d.ts.map +0 -1
  587. package/dist/engine/preprocessor/inheritance/version-inheritance-cache.js +0 -296
  588. package/dist/engine/preprocessor/inheritance/version-inheritance-cache.js.map +0 -1
  589. package/dist/engine/preprocessor/inheritance/version-inheritance-cache.test.d.ts +0 -2
  590. package/dist/engine/preprocessor/inheritance/version-inheritance-cache.test.d.ts.map +0 -1
  591. package/dist/engine/preprocessor/inheritance/version-inheritance-cache.test.js +0 -80
  592. package/dist/engine/preprocessor/inheritance/version-inheritance-cache.test.js.map +0 -1
  593. package/dist/engine/preprocessor/sql-parser/ast-helpers.d.ts +0 -110
  594. package/dist/engine/preprocessor/sql-parser/ast-helpers.d.ts.map +0 -1
  595. package/dist/engine/preprocessor/sql-parser/ast-helpers.js +0 -196
  596. package/dist/engine/preprocessor/sql-parser/ast-helpers.js.map +0 -1
  597. package/dist/engine/preprocessor/sql-parser/column-usage.d.ts +0 -14
  598. package/dist/engine/preprocessor/sql-parser/column-usage.d.ts.map +0 -1
  599. package/dist/engine/preprocessor/sql-parser/column-usage.js +0 -300
  600. package/dist/engine/preprocessor/sql-parser/column-usage.js.map +0 -1
  601. package/dist/engine/preprocessor/sql-parser/compile.d.ts +0 -30
  602. package/dist/engine/preprocessor/sql-parser/compile.d.ts.map +0 -1
  603. package/dist/engine/preprocessor/sql-parser/compile.js +0 -719
  604. package/dist/engine/preprocessor/sql-parser/compile.js.map +0 -1
  605. package/dist/engine/preprocessor/sql-parser/compile.test.d.ts +0 -2
  606. package/dist/engine/preprocessor/sql-parser/compile.test.d.ts.map +0 -1
  607. package/dist/engine/preprocessor/sql-parser/compile.test.js +0 -100
  608. package/dist/engine/preprocessor/sql-parser/compile.test.js.map +0 -1
  609. package/dist/engine/preprocessor/sql-parser/cst.d.ts +0 -49
  610. package/dist/engine/preprocessor/sql-parser/cst.d.ts.map +0 -1
  611. package/dist/engine/preprocessor/sql-parser/cst.js +0 -768
  612. package/dist/engine/preprocessor/sql-parser/cst.js.map +0 -1
  613. package/dist/engine/preprocessor/sql-parser/lexer.d.ts +0 -93
  614. package/dist/engine/preprocessor/sql-parser/lexer.d.ts.map +0 -1
  615. package/dist/engine/preprocessor/sql-parser/lexer.js +0 -517
  616. package/dist/engine/preprocessor/sql-parser/lexer.js.map +0 -1
  617. package/dist/engine/preprocessor/sql-parser/nodes.d.ts +0 -268
  618. package/dist/engine/preprocessor/sql-parser/nodes.d.ts.map +0 -1
  619. package/dist/engine/preprocessor/sql-parser/nodes.js +0 -20
  620. package/dist/engine/preprocessor/sql-parser/nodes.js.map +0 -1
  621. package/dist/engine/preprocessor/sql-parser/parse.d.ts +0 -15
  622. package/dist/engine/preprocessor/sql-parser/parse.d.ts.map +0 -1
  623. package/dist/engine/preprocessor/sql-parser/parse.js +0 -1503
  624. package/dist/engine/preprocessor/sql-parser/parse.js.map +0 -1
  625. package/dist/engine/preprocessor/sql-parser/parse.test.d.ts +0 -2
  626. package/dist/engine/preprocessor/sql-parser/parse.test.d.ts.map +0 -1
  627. package/dist/engine/preprocessor/sql-parser/parse.test.js +0 -1483
  628. package/dist/engine/preprocessor/sql-parser/parse.test.js.map +0 -1
  629. package/dist/engine/preprocessor/sql-parser/visitor.d.ts +0 -80
  630. package/dist/engine/preprocessor/sql-parser/visitor.d.ts.map +0 -1
  631. package/dist/engine/preprocessor/sql-parser/visitor.js +0 -875
  632. package/dist/engine/preprocessor/sql-parser/visitor.js.map +0 -1
  633. package/dist/engine/preprocessor/sql-parser/visitor.test.d.ts +0 -2
  634. package/dist/engine/preprocessor/sql-parser/visitor.test.d.ts.map +0 -1
  635. package/dist/engine/preprocessor/sql-parser/visitor.test.js +0 -142
  636. package/dist/engine/preprocessor/sql-parser/visitor.test.js.map +0 -1
  637. package/dist/engine/preprocessor/steps/cache-populator.d.ts +0 -12
  638. package/dist/engine/preprocessor/steps/cache-populator.d.ts.map +0 -1
  639. package/dist/engine/preprocessor/steps/cache-populator.js +0 -603
  640. package/dist/engine/preprocessor/steps/cache-populator.js.map +0 -1
  641. package/dist/engine/preprocessor/steps/cache-populator.test.d.ts +0 -2
  642. package/dist/engine/preprocessor/steps/cache-populator.test.d.ts.map +0 -1
  643. package/dist/engine/preprocessor/steps/cache-populator.test.js +0 -95
  644. package/dist/engine/preprocessor/steps/cache-populator.test.js.map +0 -1
  645. package/dist/engine/preprocessor/steps/expand-sql-views.d.ts +0 -13
  646. package/dist/engine/preprocessor/steps/expand-sql-views.d.ts.map +0 -1
  647. package/dist/engine/preprocessor/steps/expand-sql-views.js +0 -894
  648. package/dist/engine/preprocessor/steps/expand-sql-views.js.map +0 -1
  649. package/dist/engine/preprocessor/steps/expand-sql-views.test.d.ts +0 -2
  650. package/dist/engine/preprocessor/steps/expand-sql-views.test.d.ts.map +0 -1
  651. package/dist/engine/preprocessor/steps/expand-sql-views.test.js +0 -1177
  652. package/dist/engine/preprocessor/steps/expand-sql-views.test.js.map +0 -1
  653. package/dist/engine/preprocessor/steps/rewrite-active-version-subquery.d.ts +0 -7
  654. package/dist/engine/preprocessor/steps/rewrite-active-version-subquery.d.ts.map +0 -1
  655. package/dist/engine/preprocessor/steps/rewrite-active-version-subquery.js +0 -190
  656. package/dist/engine/preprocessor/steps/rewrite-active-version-subquery.js.map +0 -1
  657. package/dist/engine/preprocessor/steps/rewrite-active-version-subquery.test.d.ts +0 -2
  658. package/dist/engine/preprocessor/steps/rewrite-active-version-subquery.test.d.ts.map +0 -1
  659. package/dist/engine/preprocessor/steps/rewrite-active-version-subquery.test.js +0 -74
  660. package/dist/engine/preprocessor/steps/rewrite-active-version-subquery.test.js.map +0 -1
  661. package/dist/engine/preprocessor/steps/rewrite-vtable-selects.bench.d.ts +0 -2
  662. package/dist/engine/preprocessor/steps/rewrite-vtable-selects.bench.d.ts.map +0 -1
  663. package/dist/engine/preprocessor/steps/rewrite-vtable-selects.bench.js +0 -64
  664. package/dist/engine/preprocessor/steps/rewrite-vtable-selects.bench.js.map +0 -1
  665. package/dist/engine/preprocessor/steps/rewrite-vtable-selects.d.ts +0 -16
  666. package/dist/engine/preprocessor/steps/rewrite-vtable-selects.d.ts.map +0 -1
  667. package/dist/engine/preprocessor/steps/rewrite-vtable-selects.js +0 -2305
  668. package/dist/engine/preprocessor/steps/rewrite-vtable-selects.js.map +0 -1
  669. package/dist/engine/preprocessor/steps/rewrite-vtable-selects.test.d.ts +0 -2
  670. package/dist/engine/preprocessor/steps/rewrite-vtable-selects.test.d.ts.map +0 -1
  671. package/dist/engine/preprocessor/steps/rewrite-vtable-selects.test.js +0 -975
  672. package/dist/engine/preprocessor/steps/rewrite-vtable-selects.test.js.map +0 -1
  673. package/dist/engine/preprocessor/types.d.ts +0 -93
  674. package/dist/engine/preprocessor/types.d.ts.map +0 -1
  675. package/dist/engine/preprocessor/types.js +0 -2
  676. package/dist/engine/preprocessor/types.js.map +0 -1
  677. package/dist/engine/sql-parser/tokenizer.d.ts +0 -60
  678. package/dist/engine/sql-parser/tokenizer.d.ts.map +0 -1
  679. package/dist/engine/sql-parser/tokenizer.js +0 -188
  680. package/dist/engine/sql-parser/tokenizer.js.map +0 -1
  681. package/dist/engine/sql-parser/tokenizer.test.d.ts +0 -2
  682. package/dist/engine/sql-parser/tokenizer.test.d.ts.map +0 -1
  683. package/dist/engine/sql-parser/tokenizer.test.js +0 -252
  684. package/dist/engine/sql-parser/tokenizer.test.js.map +0 -1
  685. package/dist/engine/with-runtime-cache.d.ts +0 -27
  686. package/dist/engine/with-runtime-cache.d.ts.map +0 -1
  687. package/dist/engine/with-runtime-cache.js +0 -140
  688. package/dist/engine/with-runtime-cache.js.map +0 -1
  689. package/dist/engine/with-runtime-cache.test.d.ts +0 -2
  690. package/dist/engine/with-runtime-cache.test.d.ts.map +0 -1
  691. package/dist/engine/with-runtime-cache.test.js +0 -129
  692. package/dist/engine/with-runtime-cache.test.js.map +0 -1
  693. package/dist/entity/conversation/attach-conversation.d.ts +0 -49
  694. package/dist/entity/conversation/attach-conversation.d.ts.map +0 -1
  695. package/dist/entity/conversation/attach-conversation.js +0 -74
  696. package/dist/entity/conversation/attach-conversation.js.map +0 -1
  697. package/dist/entity/conversation/attach-conversation.test.d.ts +0 -2
  698. package/dist/entity/conversation/attach-conversation.test.d.ts.map +0 -1
  699. package/dist/entity/conversation/attach-conversation.test.js +0 -220
  700. package/dist/entity/conversation/attach-conversation.test.js.map +0 -1
  701. package/dist/entity/conversation/schema-definition.d.ts +0 -43
  702. package/dist/entity/conversation/schema-definition.d.ts.map +0 -1
  703. package/dist/entity/conversation/schema-definition.js +0 -44
  704. package/dist/entity/conversation/schema-definition.js.map +0 -1
  705. package/dist/entity/conversation/schema.test.d.ts +0 -2
  706. package/dist/entity/conversation/schema.test.d.ts.map +0 -1
  707. package/dist/entity/conversation/schema.test.js +0 -91
  708. package/dist/entity/conversation/schema.test.js.map +0 -1
  709. package/dist/entity/eb-entity.d.ts +0 -76
  710. package/dist/entity/eb-entity.d.ts.map +0 -1
  711. package/dist/entity/eb-entity.js +0 -156
  712. package/dist/entity/eb-entity.js.map +0 -1
  713. package/dist/entity/eb-entity.test.d.ts +0 -2
  714. package/dist/entity/eb-entity.test.d.ts.map +0 -1
  715. package/dist/entity/eb-entity.test.js +0 -650
  716. package/dist/entity/eb-entity.test.js.map +0 -1
  717. package/dist/entity/index.d.ts +0 -7
  718. package/dist/entity/index.d.ts.map +0 -1
  719. package/dist/entity/index.js +0 -4
  720. package/dist/entity/index.js.map +0 -1
  721. package/dist/entity/label/attach-label.d.ts +0 -79
  722. package/dist/entity/label/attach-label.d.ts.map +0 -1
  723. package/dist/entity/label/attach-label.js +0 -144
  724. package/dist/entity/label/attach-label.js.map +0 -1
  725. package/dist/entity/label/attach-label.test.d.ts +0 -2
  726. package/dist/entity/label/attach-label.test.d.ts.map +0 -1
  727. package/dist/entity/label/attach-label.test.js +0 -295
  728. package/dist/entity/label/attach-label.test.js.map +0 -1
  729. package/dist/entity/label/schema-definition.d.ts +0 -43
  730. package/dist/entity/label/schema-definition.d.ts.map +0 -1
  731. package/dist/entity/label/schema-definition.js +0 -39
  732. package/dist/entity/label/schema-definition.js.map +0 -1
  733. package/dist/entity/label/schema.test.d.ts +0 -2
  734. package/dist/entity/label/schema.test.d.ts.map +0 -1
  735. package/dist/entity/label/schema.test.js +0 -829
  736. package/dist/entity/label/schema.test.js.map +0 -1
  737. package/dist/entity/types.d.ts +0 -11
  738. package/dist/entity/types.d.ts.map +0 -1
  739. package/dist/entity/types.js +0 -2
  740. package/dist/entity/types.js.map +0 -1
  741. package/dist/environment/api.d.ts +0 -38
  742. package/dist/environment/api.d.ts.map +0 -1
  743. package/dist/environment/api.js +0 -2
  744. package/dist/environment/api.js.map +0 -1
  745. package/dist/environment/api.test.d.ts +0 -2
  746. package/dist/environment/api.test.d.ts.map +0 -1
  747. package/dist/environment/api.test.js +0 -76
  748. package/dist/environment/api.test.js.map +0 -1
  749. package/dist/environment/in-memory.d.ts +0 -22
  750. package/dist/environment/in-memory.d.ts.map +0 -1
  751. package/dist/environment/in-memory.js +0 -55
  752. package/dist/environment/in-memory.js.map +0 -1
  753. package/dist/environment/in-memory.test.d.ts +0 -2
  754. package/dist/environment/in-memory.test.d.ts.map +0 -1
  755. package/dist/environment/in-memory.test.js +0 -69
  756. package/dist/environment/in-memory.test.js.map +0 -1
  757. package/dist/environment/index.d.ts +0 -4
  758. package/dist/environment/index.d.ts.map +0 -1
  759. package/dist/environment/index.js +0 -3
  760. package/dist/environment/index.js.map +0 -1
  761. package/dist/environment/kysely/kysely-driver.test.d.ts +0 -2
  762. package/dist/environment/kysely/kysely-driver.test.d.ts.map +0 -1
  763. package/dist/environment/kysely/kysely-driver.test.js +0 -26
  764. package/dist/environment/kysely/kysely-driver.test.js.map +0 -1
  765. package/dist/environment/load-from-string.d.ts +0 -3
  766. package/dist/environment/load-from-string.d.ts.map +0 -1
  767. package/dist/environment/load-from-string.js +0 -71
  768. package/dist/environment/load-from-string.js.map +0 -1
  769. package/dist/environment/load-from-string.test.d.ts +0 -2
  770. package/dist/environment/load-from-string.test.d.ts.map +0 -1
  771. package/dist/environment/load-from-string.test.js +0 -16
  772. package/dist/environment/load-from-string.test.js.map +0 -1
  773. package/dist/environment/opfs-sah.browser.test.d.ts +0 -2
  774. package/dist/environment/opfs-sah.browser.test.d.ts.map +0 -1
  775. package/dist/environment/opfs-sah.browser.test.js +0 -309
  776. package/dist/environment/opfs-sah.browser.test.js.map +0 -1
  777. package/dist/environment/opfs-sah.d.ts +0 -63
  778. package/dist/environment/opfs-sah.d.ts.map +0 -1
  779. package/dist/environment/opfs-sah.js +0 -240
  780. package/dist/environment/opfs-sah.js.map +0 -1
  781. package/dist/environment/opfs-sah.worker.d.ts +0 -2
  782. package/dist/environment/opfs-sah.worker.d.ts.map +0 -1
  783. package/dist/environment/opfs-sah.worker.js +0 -212
  784. package/dist/environment/opfs-sah.worker.js.map +0 -1
  785. package/dist/environment/test-actors/echo.actor.d.ts +0 -2
  786. package/dist/environment/test-actors/echo.actor.d.ts.map +0 -1
  787. package/dist/environment/test-actors/echo.actor.js +0 -7
  788. package/dist/environment/test-actors/echo.actor.js.map +0 -1
  789. package/dist/filesystem/directory/ensure-directories.d.ts +0 -48
  790. package/dist/filesystem/directory/ensure-directories.d.ts.map +0 -1
  791. package/dist/filesystem/directory/ensure-directories.js +0 -223
  792. package/dist/filesystem/directory/ensure-directories.js.map +0 -1
  793. package/dist/filesystem/directory/schema-definition.d.ts +0 -36
  794. package/dist/filesystem/directory/schema-definition.d.ts.map +0 -1
  795. package/dist/filesystem/directory/schema-definition.js +0 -35
  796. package/dist/filesystem/directory/schema-definition.js.map +0 -1
  797. package/dist/filesystem/directory/schema.d.ts +0 -11
  798. package/dist/filesystem/directory/schema.d.ts.map +0 -1
  799. package/dist/filesystem/directory/schema.js +0 -494
  800. package/dist/filesystem/directory/schema.js.map +0 -1
  801. package/dist/filesystem/directory/schema.test.d.ts +0 -2
  802. package/dist/filesystem/directory/schema.test.d.ts.map +0 -1
  803. package/dist/filesystem/directory/schema.test.js +0 -93
  804. package/dist/filesystem/directory/schema.test.js.map +0 -1
  805. package/dist/filesystem/file/cache/clear-file-data-cache.d.ts +0 -17
  806. package/dist/filesystem/file/cache/clear-file-data-cache.d.ts.map +0 -1
  807. package/dist/filesystem/file/cache/clear-file-data-cache.js +0 -54
  808. package/dist/filesystem/file/cache/clear-file-data-cache.js.map +0 -1
  809. package/dist/filesystem/file/cache/lixcol-schema.d.ts +0 -27
  810. package/dist/filesystem/file/cache/lixcol-schema.d.ts.map +0 -1
  811. package/dist/filesystem/file/cache/lixcol-schema.js +0 -31
  812. package/dist/filesystem/file/cache/lixcol-schema.js.map +0 -1
  813. package/dist/filesystem/file/cache/path-cache-schema.d.ts +0 -25
  814. package/dist/filesystem/file/cache/path-cache-schema.d.ts.map +0 -1
  815. package/dist/filesystem/file/cache/path-cache-schema.js +0 -30
  816. package/dist/filesystem/file/cache/path-cache-schema.js.map +0 -1
  817. package/dist/filesystem/file/cache/schema.d.ts +0 -21
  818. package/dist/filesystem/file/cache/schema.d.ts.map +0 -1
  819. package/dist/filesystem/file/cache/schema.js +0 -24
  820. package/dist/filesystem/file/cache/schema.js.map +0 -1
  821. package/dist/filesystem/file/cache/schema.test.d.ts +0 -2
  822. package/dist/filesystem/file/cache/schema.test.d.ts.map +0 -1
  823. package/dist/filesystem/file/cache/schema.test.js +0 -264
  824. package/dist/filesystem/file/cache/schema.test.js.map +0 -1
  825. package/dist/filesystem/file/cache/update-file-data-cache.d.ts +0 -20
  826. package/dist/filesystem/file/cache/update-file-data-cache.d.ts.map +0 -1
  827. package/dist/filesystem/file/cache/update-file-data-cache.js +0 -25
  828. package/dist/filesystem/file/cache/update-file-data-cache.js.map +0 -1
  829. package/dist/filesystem/file/cache/update-file-lixcol-cache.d.ts +0 -21
  830. package/dist/filesystem/file/cache/update-file-lixcol-cache.d.ts.map +0 -1
  831. package/dist/filesystem/file/cache/update-file-lixcol-cache.js +0 -78
  832. package/dist/filesystem/file/cache/update-file-lixcol-cache.js.map +0 -1
  833. package/dist/filesystem/file/cache/update-file-path-cache.d.ts +0 -25
  834. package/dist/filesystem/file/cache/update-file-path-cache.d.ts.map +0 -1
  835. package/dist/filesystem/file/cache/update-file-path-cache.js +0 -38
  836. package/dist/filesystem/file/cache/update-file-path-cache.js.map +0 -1
  837. package/dist/filesystem/file/descriptor-utils.d.ts +0 -70
  838. package/dist/filesystem/file/descriptor-utils.d.ts.map +0 -1
  839. package/dist/filesystem/file/descriptor-utils.js +0 -218
  840. package/dist/filesystem/file/descriptor-utils.js.map +0 -1
  841. package/dist/filesystem/file/file-handlers.d.ts +0 -22
  842. package/dist/filesystem/file/file-handlers.d.ts.map +0 -1
  843. package/dist/filesystem/file/file-handlers.js +0 -540
  844. package/dist/filesystem/file/file-handlers.js.map +0 -1
  845. package/dist/filesystem/file/file-handlers.test.d.ts +0 -2
  846. package/dist/filesystem/file/file-handlers.test.d.ts.map +0 -1
  847. package/dist/filesystem/file/file-handlers.test.js +0 -344
  848. package/dist/filesystem/file/file-handlers.test.js.map +0 -1
  849. package/dist/filesystem/file/materialize-file-data-at-commit.d.ts +0 -9
  850. package/dist/filesystem/file/materialize-file-data-at-commit.d.ts.map +0 -1
  851. package/dist/filesystem/file/materialize-file-data-at-commit.js +0 -156
  852. package/dist/filesystem/file/materialize-file-data-at-commit.js.map +0 -1
  853. package/dist/filesystem/file/materialize-file-data.d.ts +0 -8
  854. package/dist/filesystem/file/materialize-file-data.d.ts.map +0 -1
  855. package/dist/filesystem/file/materialize-file-data.js +0 -111
  856. package/dist/filesystem/file/materialize-file-data.js.map +0 -1
  857. package/dist/filesystem/file/materialize-file-data.test.d.ts +0 -2
  858. package/dist/filesystem/file/materialize-file-data.test.d.ts.map +0 -1
  859. package/dist/filesystem/file/materialize-file-data.test.js +0 -104
  860. package/dist/filesystem/file/materialize-file-data.test.js.map +0 -1
  861. package/dist/filesystem/file/schema-definition.d.ts +0 -46
  862. package/dist/filesystem/file/schema-definition.d.ts.map +0 -1
  863. package/dist/filesystem/file/schema-definition.js +0 -39
  864. package/dist/filesystem/file/schema-definition.js.map +0 -1
  865. package/dist/filesystem/file/schema.d.ts +0 -54
  866. package/dist/filesystem/file/schema.d.ts.map +0 -1
  867. package/dist/filesystem/file/schema.js +0 -620
  868. package/dist/filesystem/file/schema.js.map +0 -1
  869. package/dist/filesystem/file/schema.test.d.ts +0 -2
  870. package/dist/filesystem/file/schema.test.d.ts.map +0 -1
  871. package/dist/filesystem/file/schema.test.js +0 -1885
  872. package/dist/filesystem/file/schema.test.js.map +0 -1
  873. package/dist/filesystem/file/select-file-data.d.ts +0 -21
  874. package/dist/filesystem/file/select-file-data.d.ts.map +0 -1
  875. package/dist/filesystem/file/select-file-data.js +0 -48
  876. package/dist/filesystem/file/select-file-data.js.map +0 -1
  877. package/dist/filesystem/file/select-file-lixcol.d.ts +0 -27
  878. package/dist/filesystem/file/select-file-lixcol.d.ts.map +0 -1
  879. package/dist/filesystem/file/select-file-lixcol.js +0 -120
  880. package/dist/filesystem/file/select-file-lixcol.js.map +0 -1
  881. package/dist/filesystem/file/store-detected-change-schema.d.ts +0 -8
  882. package/dist/filesystem/file/store-detected-change-schema.d.ts.map +0 -1
  883. package/dist/filesystem/file/store-detected-change-schema.js +0 -38
  884. package/dist/filesystem/file/store-detected-change-schema.js.map +0 -1
  885. package/dist/filesystem/file/store-detected-change-schema.test.d.ts +0 -2
  886. package/dist/filesystem/file/store-detected-change-schema.test.d.ts.map +0 -1
  887. package/dist/filesystem/file/store-detected-change-schema.test.js +0 -222
  888. package/dist/filesystem/file/store-detected-change-schema.test.js.map +0 -1
  889. package/dist/filesystem/file/unknown-file-fallback-plugin.d.ts +0 -23
  890. package/dist/filesystem/file/unknown-file-fallback-plugin.d.ts.map +0 -1
  891. package/dist/filesystem/file/unknown-file-fallback-plugin.js +0 -74
  892. package/dist/filesystem/file/unknown-file-fallback-plugin.js.map +0 -1
  893. package/dist/filesystem/file/unknown-file-fallback-plugin.test.d.ts +0 -2
  894. package/dist/filesystem/file/unknown-file-fallback-plugin.test.d.ts.map +0 -1
  895. package/dist/filesystem/file/unknown-file-fallback-plugin.test.js +0 -319
  896. package/dist/filesystem/file/unknown-file-fallback-plugin.test.js.map +0 -1
  897. package/dist/filesystem/fs.bench.d.ts +0 -2
  898. package/dist/filesystem/fs.bench.d.ts.map +0 -1
  899. package/dist/filesystem/fs.bench.js +0 -534
  900. package/dist/filesystem/fs.bench.js.map +0 -1
  901. package/dist/filesystem/index.d.ts +0 -5
  902. package/dist/filesystem/index.d.ts.map +0 -1
  903. package/dist/filesystem/index.js +0 -4
  904. package/dist/filesystem/index.js.map +0 -1
  905. package/dist/filesystem/path.d.ts +0 -37
  906. package/dist/filesystem/path.d.ts.map +0 -1
  907. package/dist/filesystem/path.js +0 -94
  908. package/dist/filesystem/path.js.map +0 -1
  909. package/dist/filesystem/path.test.d.ts +0 -2
  910. package/dist/filesystem/path.test.d.ts.map +0 -1
  911. package/dist/filesystem/path.test.js +0 -102
  912. package/dist/filesystem/path.test.js.map +0 -1
  913. package/dist/filesystem/schema.d.ts +0 -11
  914. package/dist/filesystem/schema.d.ts.map +0 -1
  915. package/dist/filesystem/schema.js +0 -13
  916. package/dist/filesystem/schema.js.map +0 -1
  917. package/dist/filesystem/schema.test.d.ts +0 -2
  918. package/dist/filesystem/schema.test.d.ts.map +0 -1
  919. package/dist/filesystem/schema.test.js +0 -502
  920. package/dist/filesystem/schema.test.js.map +0 -1
  921. package/dist/filesystem/util/glob.d.ts +0 -18
  922. package/dist/filesystem/util/glob.d.ts.map +0 -1
  923. package/dist/filesystem/util/glob.js +0 -26
  924. package/dist/filesystem/util/glob.js.map +0 -1
  925. package/dist/hooks/create-hooks.d.ts +0 -105
  926. package/dist/hooks/create-hooks.d.ts.map +0 -1
  927. package/dist/hooks/create-hooks.js +0 -40
  928. package/dist/hooks/create-hooks.js.map +0 -1
  929. package/dist/hooks/create-hooks.test.d.ts +0 -2
  930. package/dist/hooks/create-hooks.test.d.ts.map +0 -1
  931. package/dist/hooks/create-hooks.test.js +0 -195
  932. package/dist/hooks/create-hooks.test.js.map +0 -1
  933. package/dist/hooks/index.d.ts +0 -2
  934. package/dist/hooks/index.d.ts.map +0 -1
  935. package/dist/hooks/index.js +0 -2
  936. package/dist/hooks/index.js.map +0 -1
  937. package/dist/index.d.ts.map +0 -1
  938. package/dist/index.js.map +0 -1
  939. package/dist/key-value/index.d.ts +0 -2
  940. package/dist/key-value/index.d.ts.map +0 -1
  941. package/dist/key-value/index.js +0 -2
  942. package/dist/key-value/index.js.map +0 -1
  943. package/dist/key-value/schema-definition.d.ts +0 -74
  944. package/dist/key-value/schema-definition.d.ts.map +0 -1
  945. package/dist/key-value/schema-definition.js +0 -19
  946. package/dist/key-value/schema-definition.js.map +0 -1
  947. package/dist/key-value/schema.test.d.ts +0 -2
  948. package/dist/key-value/schema.test.d.ts.map +0 -1
  949. package/dist/key-value/schema.test.js +0 -338
  950. package/dist/key-value/schema.test.js.map +0 -1
  951. package/dist/label/create-label.d.ts +0 -20
  952. package/dist/label/create-label.d.ts.map +0 -1
  953. package/dist/label/create-label.js +0 -48
  954. package/dist/label/create-label.js.map +0 -1
  955. package/dist/label/create-label.test.d.ts +0 -2
  956. package/dist/label/create-label.test.d.ts.map +0 -1
  957. package/dist/label/create-label.test.js +0 -191
  958. package/dist/label/create-label.test.js.map +0 -1
  959. package/dist/label/index.d.ts +0 -3
  960. package/dist/label/index.d.ts.map +0 -1
  961. package/dist/label/index.js +0 -3
  962. package/dist/label/index.js.map +0 -1
  963. package/dist/label/schema-definition.d.ts +0 -24
  964. package/dist/label/schema-definition.d.ts.map +0 -1
  965. package/dist/label/schema-definition.js +0 -21
  966. package/dist/label/schema-definition.js.map +0 -1
  967. package/dist/label/schema.test.d.ts +0 -2
  968. package/dist/label/schema.test.d.ts.map +0 -1
  969. package/dist/label/schema.test.js +0 -76
  970. package/dist/label/schema.test.js.map +0 -1
  971. package/dist/lix/index.d.ts +0 -3
  972. package/dist/lix/index.d.ts.map +0 -1
  973. package/dist/lix/index.js +0 -3
  974. package/dist/lix/index.js.map +0 -1
  975. package/dist/lix/new-lix.d.ts +0 -83
  976. package/dist/lix/new-lix.d.ts.map +0 -1
  977. package/dist/lix/new-lix.js +0 -630
  978. package/dist/lix/new-lix.js.map +0 -1
  979. package/dist/lix/new-lix.test.d.ts +0 -2
  980. package/dist/lix/new-lix.test.d.ts.map +0 -1
  981. package/dist/lix/new-lix.test.js +0 -404
  982. package/dist/lix/new-lix.test.js.map +0 -1
  983. package/dist/lix/open-lix.bench.d.ts +0 -2
  984. package/dist/lix/open-lix.bench.d.ts.map +0 -1
  985. package/dist/lix/open-lix.bench.js +0 -22
  986. package/dist/lix/open-lix.bench.js.map +0 -1
  987. package/dist/lix/open-lix.d.ts +0 -192
  988. package/dist/lix/open-lix.d.ts.map +0 -1
  989. package/dist/lix/open-lix.js +0 -176
  990. package/dist/lix/open-lix.js.map +0 -1
  991. package/dist/lix/open-lix.test.d.ts +0 -2
  992. package/dist/lix/open-lix.test.d.ts.map +0 -1
  993. package/dist/lix/open-lix.test.js +0 -438
  994. package/dist/lix/open-lix.test.js.map +0 -1
  995. package/dist/log/create-lix-own-log.d.ts +0 -73
  996. package/dist/log/create-lix-own-log.d.ts.map +0 -1
  997. package/dist/log/create-lix-own-log.js +0 -91
  998. package/dist/log/create-lix-own-log.js.map +0 -1
  999. package/dist/log/create-lix-own-log.test.d.ts +0 -2
  1000. package/dist/log/create-lix-own-log.test.d.ts.map +0 -1
  1001. package/dist/log/create-lix-own-log.test.js +0 -113
  1002. package/dist/log/create-lix-own-log.test.js.map +0 -1
  1003. package/dist/log/create-log.d.ts +0 -42
  1004. package/dist/log/create-log.d.ts.map +0 -1
  1005. package/dist/log/create-log.js +0 -52
  1006. package/dist/log/create-log.js.map +0 -1
  1007. package/dist/log/index.d.ts +0 -3
  1008. package/dist/log/index.d.ts.map +0 -1
  1009. package/dist/log/index.js +0 -3
  1010. package/dist/log/index.js.map +0 -1
  1011. package/dist/log/schema-definition.d.ts +0 -36
  1012. package/dist/log/schema-definition.d.ts.map +0 -1
  1013. package/dist/log/schema-definition.js +0 -39
  1014. package/dist/log/schema-definition.js.map +0 -1
  1015. package/dist/log/schema.test.d.ts +0 -2
  1016. package/dist/log/schema.test.d.ts.map +0 -1
  1017. package/dist/log/schema.test.js +0 -152
  1018. package/dist/log/schema.test.js.map +0 -1
  1019. package/dist/observe/create-observe.d.ts +0 -17
  1020. package/dist/observe/create-observe.d.ts.map +0 -1
  1021. package/dist/observe/create-observe.js +0 -263
  1022. package/dist/observe/create-observe.js.map +0 -1
  1023. package/dist/observe/create-observe.test.d.ts +0 -2
  1024. package/dist/observe/create-observe.test.d.ts.map +0 -1
  1025. package/dist/observe/create-observe.test.js +0 -1101
  1026. package/dist/observe/create-observe.test.js.map +0 -1
  1027. package/dist/observe/determine-schema-keys.d.ts +0 -15
  1028. package/dist/observe/determine-schema-keys.d.ts.map +0 -1
  1029. package/dist/observe/determine-schema-keys.js +0 -460
  1030. package/dist/observe/determine-schema-keys.js.map +0 -1
  1031. package/dist/observe/determine-schema-keys.test.d.ts +0 -2
  1032. package/dist/observe/determine-schema-keys.test.d.ts.map +0 -1
  1033. package/dist/observe/determine-schema-keys.test.js +0 -331
  1034. package/dist/observe/determine-schema-keys.test.js.map +0 -1
  1035. package/dist/observe/index.d.ts +0 -2
  1036. package/dist/observe/index.d.ts.map +0 -1
  1037. package/dist/observe/index.js +0 -2
  1038. package/dist/observe/index.js.map +0 -1
  1039. package/dist/observe/lix-observable.d.ts +0 -31
  1040. package/dist/observe/lix-observable.d.ts.map +0 -1
  1041. package/dist/observe/lix-observable.js +0 -65
  1042. package/dist/observe/lix-observable.js.map +0 -1
  1043. package/dist/observe/lix-observable.test.d.ts +0 -2
  1044. package/dist/observe/lix-observable.test.d.ts.map +0 -1
  1045. package/dist/observe/lix-observable.test.js +0 -187
  1046. package/dist/observe/lix-observable.test.js.map +0 -1
  1047. package/dist/plugin/index.d.ts +0 -4
  1048. package/dist/plugin/index.d.ts.map +0 -1
  1049. package/dist/plugin/index.js +0 -3
  1050. package/dist/plugin/index.js.map +0 -1
  1051. package/dist/plugin/lix-plugin.d.ts +0 -133
  1052. package/dist/plugin/lix-plugin.d.ts.map +0 -1
  1053. package/dist/plugin/lix-plugin.js +0 -2
  1054. package/dist/plugin/lix-plugin.js.map +0 -1
  1055. package/dist/plugin/lix-plugin.test-d.d.ts +0 -2
  1056. package/dist/plugin/lix-plugin.test-d.d.ts.map +0 -1
  1057. package/dist/plugin/lix-plugin.test-d.js +0 -47
  1058. package/dist/plugin/lix-plugin.test-d.js.map +0 -1
  1059. package/dist/plugin/lix-plugin.test.d.ts +0 -2
  1060. package/dist/plugin/lix-plugin.test.d.ts.map +0 -1
  1061. package/dist/plugin/lix-plugin.test.js +0 -49
  1062. package/dist/plugin/lix-plugin.test.js.map +0 -1
  1063. package/dist/plugin/mock-json-plugin.d.ts +0 -17
  1064. package/dist/plugin/mock-json-plugin.d.ts.map +0 -1
  1065. package/dist/plugin/mock-json-plugin.flatten.d.ts +0 -3
  1066. package/dist/plugin/mock-json-plugin.flatten.d.ts.map +0 -1
  1067. package/dist/plugin/mock-json-plugin.flatten.js +0 -124
  1068. package/dist/plugin/mock-json-plugin.flatten.js.map +0 -1
  1069. package/dist/plugin/mock-json-plugin.js +0 -102
  1070. package/dist/plugin/mock-json-plugin.js.map +0 -1
  1071. package/dist/plugin/mock-json-plugin.test.d.ts +0 -2
  1072. package/dist/plugin/mock-json-plugin.test.d.ts.map +0 -1
  1073. package/dist/plugin/mock-json-plugin.test.js +0 -174
  1074. package/dist/plugin/mock-json-plugin.test.js.map +0 -1
  1075. package/dist/plugin/query-sync.d.ts +0 -85
  1076. package/dist/plugin/query-sync.d.ts.map +0 -1
  1077. package/dist/plugin/query-sync.js +0 -110
  1078. package/dist/plugin/query-sync.js.map +0 -1
  1079. package/dist/plugin/query-sync.test.d.ts +0 -2
  1080. package/dist/plugin/query-sync.test.d.ts.map +0 -1
  1081. package/dist/plugin/query-sync.test.js +0 -110
  1082. package/dist/plugin/query-sync.test.js.map +0 -1
  1083. package/dist/query-filter/commit-is-ancestor-of.d.ts +0 -51
  1084. package/dist/query-filter/commit-is-ancestor-of.d.ts.map +0 -1
  1085. package/dist/query-filter/commit-is-ancestor-of.js +0 -63
  1086. package/dist/query-filter/commit-is-ancestor-of.js.map +0 -1
  1087. package/dist/query-filter/commit-is-ancestor-of.test.d.ts +0 -2
  1088. package/dist/query-filter/commit-is-ancestor-of.test.d.ts.map +0 -1
  1089. package/dist/query-filter/commit-is-ancestor-of.test.js +0 -202
  1090. package/dist/query-filter/commit-is-ancestor-of.test.js.map +0 -1
  1091. package/dist/query-filter/commit-is-descendant-of.d.ts +0 -44
  1092. package/dist/query-filter/commit-is-descendant-of.d.ts.map +0 -1
  1093. package/dist/query-filter/commit-is-descendant-of.js +0 -56
  1094. package/dist/query-filter/commit-is-descendant-of.js.map +0 -1
  1095. package/dist/query-filter/commit-is-descendant-of.test.d.ts +0 -2
  1096. package/dist/query-filter/commit-is-descendant-of.test.d.ts.map +0 -1
  1097. package/dist/query-filter/commit-is-descendant-of.test.js +0 -218
  1098. package/dist/query-filter/commit-is-descendant-of.test.js.map +0 -1
  1099. package/dist/query-filter/index.d.ts +0 -3
  1100. package/dist/query-filter/index.d.ts.map +0 -1
  1101. package/dist/query-filter/index.js +0 -3
  1102. package/dist/query-filter/index.js.map +0 -1
  1103. package/dist/schema-definition/definition.d.ts +0 -555
  1104. package/dist/schema-definition/definition.d.ts.map +0 -1
  1105. package/dist/schema-definition/definition.js +0 -166
  1106. package/dist/schema-definition/definition.js.map +0 -1
  1107. package/dist/schema-definition/definition.test-d.d.ts +0 -2
  1108. package/dist/schema-definition/definition.test-d.d.ts.map +0 -1
  1109. package/dist/schema-definition/definition.test-d.js +0 -245
  1110. package/dist/schema-definition/definition.test-d.js.map +0 -1
  1111. package/dist/schema-definition/definition.test.d.ts +0 -2
  1112. package/dist/schema-definition/definition.test.d.ts.map +0 -1
  1113. package/dist/schema-definition/definition.test.js +0 -605
  1114. package/dist/schema-definition/definition.test.js.map +0 -1
  1115. package/dist/schema-definition/index.d.ts +0 -4
  1116. package/dist/schema-definition/index.d.ts.map +0 -1
  1117. package/dist/schema-definition/index.js +0 -4
  1118. package/dist/schema-definition/index.js.map +0 -1
  1119. package/dist/schema-definition/json-pointer.d.ts +0 -51
  1120. package/dist/schema-definition/json-pointer.d.ts.map +0 -1
  1121. package/dist/schema-definition/json-pointer.js +0 -143
  1122. package/dist/schema-definition/json-pointer.js.map +0 -1
  1123. package/dist/schema-definition/json-pointer.test.d.ts +0 -2
  1124. package/dist/schema-definition/json-pointer.test.d.ts.map +0 -1
  1125. package/dist/schema-definition/json-pointer.test.js +0 -72
  1126. package/dist/schema-definition/json-pointer.test.js.map +0 -1
  1127. package/dist/schema-definition/json-type.d.ts +0 -24
  1128. package/dist/schema-definition/json-type.d.ts.map +0 -1
  1129. package/dist/schema-definition/json-type.js +0 -42
  1130. package/dist/schema-definition/json-type.js.map +0 -1
  1131. package/dist/schema-definition/json-type.test.d.ts +0 -2
  1132. package/dist/schema-definition/json-type.test.d.ts.map +0 -1
  1133. package/dist/schema-definition/json-type.test.js +0 -21
  1134. package/dist/schema-definition/json-type.test.js.map +0 -1
  1135. package/dist/schema-definition/validate-lix-schema.d.ts +0 -65
  1136. package/dist/schema-definition/validate-lix-schema.d.ts.map +0 -1
  1137. package/dist/schema-definition/validate-lix-schema.js +0 -166
  1138. package/dist/schema-definition/validate-lix-schema.js.map +0 -1
  1139. package/dist/schema-definition/validate-lix-schema.test.d.ts +0 -2
  1140. package/dist/schema-definition/validate-lix-schema.test.d.ts.map +0 -1
  1141. package/dist/schema-definition/validate-lix-schema.test.js +0 -150
  1142. package/dist/schema-definition/validate-lix-schema.test.js.map +0 -1
  1143. package/dist/server-protocol-handler/create-server-protocol-handler.d.ts +0 -48
  1144. package/dist/server-protocol-handler/create-server-protocol-handler.d.ts.map +0 -1
  1145. package/dist/server-protocol-handler/create-server-protocol-handler.js +0 -68
  1146. package/dist/server-protocol-handler/create-server-protocol-handler.js.map +0 -1
  1147. package/dist/server-protocol-handler/environment/create-in-memory-environment.d.ts +0 -9
  1148. package/dist/server-protocol-handler/environment/create-in-memory-environment.d.ts.map +0 -1
  1149. package/dist/server-protocol-handler/environment/create-in-memory-environment.js +0 -84
  1150. package/dist/server-protocol-handler/environment/create-in-memory-environment.js.map +0 -1
  1151. package/dist/server-protocol-handler/environment/create-in-memory-environment.test.d.ts +0 -2
  1152. package/dist/server-protocol-handler/environment/create-in-memory-environment.test.d.ts.map +0 -1
  1153. package/dist/server-protocol-handler/environment/create-in-memory-environment.test.js +0 -102
  1154. package/dist/server-protocol-handler/environment/create-in-memory-environment.test.js.map +0 -1
  1155. package/dist/server-protocol-handler/environment/environment.d.ts +0 -50
  1156. package/dist/server-protocol-handler/environment/environment.d.ts.map +0 -1
  1157. package/dist/server-protocol-handler/environment/environment.js +0 -2
  1158. package/dist/server-protocol-handler/environment/environment.js.map +0 -1
  1159. package/dist/server-protocol-handler/index.d.ts +0 -3
  1160. package/dist/server-protocol-handler/index.d.ts.map +0 -1
  1161. package/dist/server-protocol-handler/index.js +0 -3
  1162. package/dist/server-protocol-handler/index.js.map +0 -1
  1163. package/dist/server-protocol-handler/routes/get-v1.d.ts +0 -3
  1164. package/dist/server-protocol-handler/routes/get-v1.d.ts.map +0 -1
  1165. package/dist/server-protocol-handler/routes/get-v1.js +0 -46
  1166. package/dist/server-protocol-handler/routes/get-v1.js.map +0 -1
  1167. package/dist/server-protocol-handler/routes/get-v1.test.d.ts +0 -2
  1168. package/dist/server-protocol-handler/routes/get-v1.test.d.ts.map +0 -1
  1169. package/dist/server-protocol-handler/routes/get-v1.test.js +0 -107
  1170. package/dist/server-protocol-handler/routes/get-v1.test.js.map +0 -1
  1171. package/dist/server-protocol-handler/routes/new-v1.d.ts +0 -3
  1172. package/dist/server-protocol-handler/routes/new-v1.d.ts.map +0 -1
  1173. package/dist/server-protocol-handler/routes/new-v1.js +0 -36
  1174. package/dist/server-protocol-handler/routes/new-v1.js.map +0 -1
  1175. package/dist/server-protocol-handler/routes/new-v1.test.d.ts +0 -2
  1176. package/dist/server-protocol-handler/routes/new-v1.test.d.ts.map +0 -1
  1177. package/dist/server-protocol-handler/routes/new-v1.test.js +0 -71
  1178. package/dist/server-protocol-handler/routes/new-v1.test.js.map +0 -1
  1179. package/dist/server-protocol-handler/routes/pull-v1.d.ts +0 -3
  1180. package/dist/server-protocol-handler/routes/pull-v1.d.ts.map +0 -1
  1181. package/dist/server-protocol-handler/routes/pull-v1.js +0 -41
  1182. package/dist/server-protocol-handler/routes/pull-v1.js.map +0 -1
  1183. package/dist/server-protocol-handler/routes/pull-v1.test.d.ts +0 -2
  1184. package/dist/server-protocol-handler/routes/pull-v1.test.d.ts.map +0 -1
  1185. package/dist/server-protocol-handler/routes/pull-v1.test.js +0 -161
  1186. package/dist/server-protocol-handler/routes/pull-v1.test.js.map +0 -1
  1187. package/dist/server-protocol-handler/routes/push-v1.d.ts +0 -3
  1188. package/dist/server-protocol-handler/routes/push-v1.d.ts.map +0 -1
  1189. package/dist/server-protocol-handler/routes/push-v1.js +0 -144
  1190. package/dist/server-protocol-handler/routes/push-v1.js.map +0 -1
  1191. package/dist/server-protocol-handler/routes/push-v1.test.d.ts +0 -2
  1192. package/dist/server-protocol-handler/routes/push-v1.test.d.ts.map +0 -1
  1193. package/dist/server-protocol-handler/routes/push-v1.test.js +0 -226
  1194. package/dist/server-protocol-handler/routes/push-v1.test.js.map +0 -1
  1195. package/dist/services/env-variables/index.d.ts +0 -5
  1196. package/dist/services/env-variables/index.d.ts.map +0 -1
  1197. package/dist/services/env-variables/index.js +0 -5
  1198. package/dist/services/env-variables/index.js.map +0 -1
  1199. package/dist/services/telemetry/capture.d.ts +0 -30
  1200. package/dist/services/telemetry/capture.d.ts.map +0 -1
  1201. package/dist/services/telemetry/capture.js +0 -71
  1202. package/dist/services/telemetry/capture.js.map +0 -1
  1203. package/dist/services/telemetry/capture.test.d.ts +0 -2
  1204. package/dist/services/telemetry/capture.test.d.ts.map +0 -1
  1205. package/dist/services/telemetry/capture.test.js +0 -37
  1206. package/dist/services/telemetry/capture.test.js.map +0 -1
  1207. package/dist/snapshot/schema.d.ts +0 -8
  1208. package/dist/snapshot/schema.d.ts.map +0 -1
  1209. package/dist/snapshot/schema.js +0 -24
  1210. package/dist/snapshot/schema.js.map +0 -1
  1211. package/dist/snapshot/schema.test.d.ts +0 -2
  1212. package/dist/snapshot/schema.test.d.ts.map +0 -1
  1213. package/dist/snapshot/schema.test.js +0 -202
  1214. package/dist/snapshot/schema.test.js.map +0 -1
  1215. package/dist/state/cache/builtin-schemas.d.ts +0 -3
  1216. package/dist/state/cache/builtin-schemas.d.ts.map +0 -1
  1217. package/dist/state/cache/builtin-schemas.js +0 -16
  1218. package/dist/state/cache/builtin-schemas.js.map +0 -1
  1219. package/dist/state/cache/clear-state-cache.d.ts +0 -17
  1220. package/dist/state/cache/clear-state-cache.d.ts.map +0 -1
  1221. package/dist/state/cache/clear-state-cache.js +0 -43
  1222. package/dist/state/cache/clear-state-cache.js.map +0 -1
  1223. package/dist/state/cache/clear-state-cache.test.d.ts +0 -2
  1224. package/dist/state/cache/clear-state-cache.test.d.ts.map +0 -1
  1225. package/dist/state/cache/clear-state-cache.test.js +0 -38
  1226. package/dist/state/cache/clear-state-cache.test.js.map +0 -1
  1227. package/dist/state/cache/create-schema-cache-table.d.ts +0 -37
  1228. package/dist/state/cache/create-schema-cache-table.d.ts.map +0 -1
  1229. package/dist/state/cache/create-schema-cache-table.js +0 -137
  1230. package/dist/state/cache/create-schema-cache-table.js.map +0 -1
  1231. package/dist/state/cache/create-schema-cache-table.test.d.ts +0 -2
  1232. package/dist/state/cache/create-schema-cache-table.test.d.ts.map +0 -1
  1233. package/dist/state/cache/create-schema-cache-table.test.js +0 -49
  1234. package/dist/state/cache/create-schema-cache-table.test.js.map +0 -1
  1235. package/dist/state/cache/is-stale-state-cache.d.ts +0 -27
  1236. package/dist/state/cache/is-stale-state-cache.d.ts.map +0 -1
  1237. package/dist/state/cache/is-stale-state-cache.js +0 -64
  1238. package/dist/state/cache/is-stale-state-cache.js.map +0 -1
  1239. package/dist/state/cache/is-stale-state-cache.test.d.ts +0 -2
  1240. package/dist/state/cache/is-stale-state-cache.test.d.ts.map +0 -1
  1241. package/dist/state/cache/is-stale-state-cache.test.js +0 -30
  1242. package/dist/state/cache/is-stale-state-cache.test.js.map +0 -1
  1243. package/dist/state/cache/mark-state-cache-as-stale.d.ts +0 -10
  1244. package/dist/state/cache/mark-state-cache-as-stale.d.ts.map +0 -1
  1245. package/dist/state/cache/mark-state-cache-as-stale.js +0 -50
  1246. package/dist/state/cache/mark-state-cache-as-stale.js.map +0 -1
  1247. package/dist/state/cache/populate-state-cache.d.ts +0 -19
  1248. package/dist/state/cache/populate-state-cache.d.ts.map +0 -1
  1249. package/dist/state/cache/populate-state-cache.js +0 -196
  1250. package/dist/state/cache/populate-state-cache.js.map +0 -1
  1251. package/dist/state/cache/populate-state-cache.test.d.ts +0 -2
  1252. package/dist/state/cache/populate-state-cache.test.d.ts.map +0 -1
  1253. package/dist/state/cache/populate-state-cache.test.js +0 -526
  1254. package/dist/state/cache/populate-state-cache.test.js.map +0 -1
  1255. package/dist/state/cache/schema-indexes.d.ts +0 -19
  1256. package/dist/state/cache/schema-indexes.d.ts.map +0 -1
  1257. package/dist/state/cache/schema-indexes.js +0 -137
  1258. package/dist/state/cache/schema-indexes.js.map +0 -1
  1259. package/dist/state/cache/schema-indexes.test.d.ts +0 -2
  1260. package/dist/state/cache/schema-indexes.test.d.ts.map +0 -1
  1261. package/dist/state/cache/schema-indexes.test.js +0 -124
  1262. package/dist/state/cache/schema-indexes.test.js.map +0 -1
  1263. package/dist/state/cache/schema-resolver.d.ts +0 -34
  1264. package/dist/state/cache/schema-resolver.d.ts.map +0 -1
  1265. package/dist/state/cache/schema-resolver.js +0 -49
  1266. package/dist/state/cache/schema-resolver.js.map +0 -1
  1267. package/dist/state/cache/schema.bench.d.ts +0 -2
  1268. package/dist/state/cache/schema.bench.d.ts.map +0 -1
  1269. package/dist/state/cache/schema.bench.js +0 -305
  1270. package/dist/state/cache/schema.bench.js.map +0 -1
  1271. package/dist/state/cache/schema.d.ts +0 -23
  1272. package/dist/state/cache/schema.d.ts.map +0 -1
  1273. package/dist/state/cache/schema.js +0 -41
  1274. package/dist/state/cache/schema.js.map +0 -1
  1275. package/dist/state/cache/schema.test.d.ts +0 -2
  1276. package/dist/state/cache/schema.test.d.ts.map +0 -1
  1277. package/dist/state/cache/schema.test.js +0 -126
  1278. package/dist/state/cache/schema.test.js.map +0 -1
  1279. package/dist/state/cache/select-from-state-cache.d.ts +0 -11
  1280. package/dist/state/cache/select-from-state-cache.d.ts.map +0 -1
  1281. package/dist/state/cache/select-from-state-cache.js +0 -50
  1282. package/dist/state/cache/select-from-state-cache.js.map +0 -1
  1283. package/dist/state/cache/select-from-state-cache.test.d.ts +0 -2
  1284. package/dist/state/cache/select-from-state-cache.test.d.ts.map +0 -1
  1285. package/dist/state/cache/select-from-state-cache.test.js +0 -49
  1286. package/dist/state/cache/select-from-state-cache.test.js.map +0 -1
  1287. package/dist/state/cache/update-state-cache.bench.d.ts +0 -2
  1288. package/dist/state/cache/update-state-cache.bench.d.ts.map +0 -1
  1289. package/dist/state/cache/update-state-cache.bench.js +0 -129
  1290. package/dist/state/cache/update-state-cache.bench.js.map +0 -1
  1291. package/dist/state/cache/update-state-cache.d.ts +0 -40
  1292. package/dist/state/cache/update-state-cache.d.ts.map +0 -1
  1293. package/dist/state/cache/update-state-cache.js +0 -378
  1294. package/dist/state/cache/update-state-cache.js.map +0 -1
  1295. package/dist/state/cache/update-state-cache.test.d.ts +0 -2
  1296. package/dist/state/cache/update-state-cache.test.d.ts.map +0 -1
  1297. package/dist/state/cache/update-state-cache.test.js +0 -970
  1298. package/dist/state/cache/update-state-cache.test.js.map +0 -1
  1299. package/dist/state/cache-v2/cache-columns.d.ts +0 -3
  1300. package/dist/state/cache-v2/cache-columns.d.ts.map +0 -1
  1301. package/dist/state/cache-v2/cache-columns.js +0 -20
  1302. package/dist/state/cache-v2/cache-columns.js.map +0 -1
  1303. package/dist/state/cache-v2/clear-state-cache.d.ts +0 -17
  1304. package/dist/state/cache-v2/clear-state-cache.d.ts.map +0 -1
  1305. package/dist/state/cache-v2/clear-state-cache.js +0 -42
  1306. package/dist/state/cache-v2/clear-state-cache.js.map +0 -1
  1307. package/dist/state/cache-v2/clear-state-cache.test.d.ts +0 -2
  1308. package/dist/state/cache-v2/clear-state-cache.test.d.ts.map +0 -1
  1309. package/dist/state/cache-v2/clear-state-cache.test.js +0 -87
  1310. package/dist/state/cache-v2/clear-state-cache.test.js.map +0 -1
  1311. package/dist/state/cache-v2/create-schema-cache-table.d.ts +0 -48
  1312. package/dist/state/cache-v2/create-schema-cache-table.d.ts.map +0 -1
  1313. package/dist/state/cache-v2/create-schema-cache-table.js +0 -152
  1314. package/dist/state/cache-v2/create-schema-cache-table.js.map +0 -1
  1315. package/dist/state/cache-v2/create-schema-cache-table.test.d.ts +0 -2
  1316. package/dist/state/cache-v2/create-schema-cache-table.test.d.ts.map +0 -1
  1317. package/dist/state/cache-v2/create-schema-cache-table.test.js +0 -76
  1318. package/dist/state/cache-v2/create-schema-cache-table.test.js.map +0 -1
  1319. package/dist/state/cache-v2/is-stale-state-cache.d.ts +0 -27
  1320. package/dist/state/cache-v2/is-stale-state-cache.d.ts.map +0 -1
  1321. package/dist/state/cache-v2/is-stale-state-cache.js +0 -64
  1322. package/dist/state/cache-v2/is-stale-state-cache.js.map +0 -1
  1323. package/dist/state/cache-v2/is-stale-state-cache.test.d.ts +0 -2
  1324. package/dist/state/cache-v2/is-stale-state-cache.test.d.ts.map +0 -1
  1325. package/dist/state/cache-v2/is-stale-state-cache.test.js +0 -30
  1326. package/dist/state/cache-v2/is-stale-state-cache.test.js.map +0 -1
  1327. package/dist/state/cache-v2/mark-state-cache-as-stale.d.ts +0 -22
  1328. package/dist/state/cache-v2/mark-state-cache-as-stale.d.ts.map +0 -1
  1329. package/dist/state/cache-v2/mark-state-cache-as-stale.js +0 -62
  1330. package/dist/state/cache-v2/mark-state-cache-as-stale.js.map +0 -1
  1331. package/dist/state/cache-v2/populate-state-cache.d.ts +0 -22
  1332. package/dist/state/cache-v2/populate-state-cache.d.ts.map +0 -1
  1333. package/dist/state/cache-v2/populate-state-cache.js +0 -143
  1334. package/dist/state/cache-v2/populate-state-cache.js.map +0 -1
  1335. package/dist/state/cache-v2/populate-state-cache.test.d.ts +0 -2
  1336. package/dist/state/cache-v2/populate-state-cache.test.d.ts.map +0 -1
  1337. package/dist/state/cache-v2/populate-state-cache.test.js +0 -102
  1338. package/dist/state/cache-v2/populate-state-cache.test.js.map +0 -1
  1339. package/dist/state/cache-v2/schema-metadata.d.ts +0 -20
  1340. package/dist/state/cache-v2/schema-metadata.d.ts.map +0 -1
  1341. package/dist/state/cache-v2/schema-metadata.js +0 -18
  1342. package/dist/state/cache-v2/schema-metadata.js.map +0 -1
  1343. package/dist/state/cache-v2/schema.bench.d.ts +0 -2
  1344. package/dist/state/cache-v2/schema.bench.d.ts.map +0 -1
  1345. package/dist/state/cache-v2/schema.bench.js +0 -194
  1346. package/dist/state/cache-v2/schema.bench.js.map +0 -1
  1347. package/dist/state/cache-v2/schema.d.ts +0 -30
  1348. package/dist/state/cache-v2/schema.d.ts.map +0 -1
  1349. package/dist/state/cache-v2/schema.js +0 -72
  1350. package/dist/state/cache-v2/schema.js.map +0 -1
  1351. package/dist/state/cache-v2/schema.test.d.ts +0 -2
  1352. package/dist/state/cache-v2/schema.test.d.ts.map +0 -1
  1353. package/dist/state/cache-v2/schema.test.js +0 -246
  1354. package/dist/state/cache-v2/schema.test.js.map +0 -1
  1355. package/dist/state/cache-v2/select-from-state-cache.d.ts +0 -19
  1356. package/dist/state/cache-v2/select-from-state-cache.d.ts.map +0 -1
  1357. package/dist/state/cache-v2/select-from-state-cache.js +0 -141
  1358. package/dist/state/cache-v2/select-from-state-cache.js.map +0 -1
  1359. package/dist/state/cache-v2/select-from-state-cache.test.d.ts +0 -2
  1360. package/dist/state/cache-v2/select-from-state-cache.test.d.ts.map +0 -1
  1361. package/dist/state/cache-v2/select-from-state-cache.test.js +0 -72
  1362. package/dist/state/cache-v2/select-from-state-cache.test.js.map +0 -1
  1363. package/dist/state/cache-v2/sqlite-type-mapper.d.ts +0 -6
  1364. package/dist/state/cache-v2/sqlite-type-mapper.d.ts.map +0 -1
  1365. package/dist/state/cache-v2/sqlite-type-mapper.js +0 -50
  1366. package/dist/state/cache-v2/sqlite-type-mapper.js.map +0 -1
  1367. package/dist/state/cache-v2/sqlite-type-mapper.test.d.ts +0 -2
  1368. package/dist/state/cache-v2/sqlite-type-mapper.test.d.ts.map +0 -1
  1369. package/dist/state/cache-v2/sqlite-type-mapper.test.js +0 -41
  1370. package/dist/state/cache-v2/sqlite-type-mapper.test.js.map +0 -1
  1371. package/dist/state/cache-v2/update-state-cache.bench.d.ts +0 -2
  1372. package/dist/state/cache-v2/update-state-cache.bench.d.ts.map +0 -1
  1373. package/dist/state/cache-v2/update-state-cache.bench.js +0 -165
  1374. package/dist/state/cache-v2/update-state-cache.bench.js.map +0 -1
  1375. package/dist/state/cache-v2/update-state-cache.d.ts +0 -23
  1376. package/dist/state/cache-v2/update-state-cache.d.ts.map +0 -1
  1377. package/dist/state/cache-v2/update-state-cache.js +0 -403
  1378. package/dist/state/cache-v2/update-state-cache.js.map +0 -1
  1379. package/dist/state/cache-v2/update-state-cache.test.d.ts +0 -2
  1380. package/dist/state/cache-v2/update-state-cache.test.d.ts.map +0 -1
  1381. package/dist/state/cache-v2/update-state-cache.test.js +0 -281
  1382. package/dist/state/cache-v2/update-state-cache.test.js.map +0 -1
  1383. package/dist/state/create-checkpoint.d.ts +0 -22
  1384. package/dist/state/create-checkpoint.d.ts.map +0 -1
  1385. package/dist/state/create-checkpoint.js +0 -226
  1386. package/dist/state/create-checkpoint.js.map +0 -1
  1387. package/dist/state/create-checkpoint.test.d.ts +0 -2
  1388. package/dist/state/create-checkpoint.test.d.ts.map +0 -1
  1389. package/dist/state/create-checkpoint.test.js +0 -649
  1390. package/dist/state/create-checkpoint.test.js.map +0 -1
  1391. package/dist/state/index.d.ts +0 -7
  1392. package/dist/state/index.d.ts.map +0 -1
  1393. package/dist/state/index.js +0 -5
  1394. package/dist/state/index.js.map +0 -1
  1395. package/dist/state/materialize-state.bench.d.ts +0 -2
  1396. package/dist/state/materialize-state.bench.d.ts.map +0 -1
  1397. package/dist/state/materialize-state.bench.js +0 -196
  1398. package/dist/state/materialize-state.bench.js.map +0 -1
  1399. package/dist/state/materialize-state.d.ts +0 -5
  1400. package/dist/state/materialize-state.d.ts.map +0 -1
  1401. package/dist/state/materialize-state.js +0 -561
  1402. package/dist/state/materialize-state.js.map +0 -1
  1403. package/dist/state/materialize-state.test.d.ts +0 -2
  1404. package/dist/state/materialize-state.test.d.ts.map +0 -1
  1405. package/dist/state/materialize-state.test.js +0 -2314
  1406. package/dist/state/materialize-state.test.js.map +0 -1
  1407. package/dist/state/schema.bench.d.ts +0 -2
  1408. package/dist/state/schema.bench.d.ts.map +0 -1
  1409. package/dist/state/schema.bench.js +0 -108
  1410. package/dist/state/schema.bench.js.map +0 -1
  1411. package/dist/state/schema.d.ts +0 -5
  1412. package/dist/state/schema.d.ts.map +0 -1
  1413. package/dist/state/schema.js +0 -35
  1414. package/dist/state/schema.js.map +0 -1
  1415. package/dist/state/transaction/insert-transaction-state.d.ts +0 -65
  1416. package/dist/state/transaction/insert-transaction-state.d.ts.map +0 -1
  1417. package/dist/state/transaction/insert-transaction-state.js +0 -116
  1418. package/dist/state/transaction/insert-transaction-state.js.map +0 -1
  1419. package/dist/state/transaction/insert-transaction-state.test.d.ts +0 -2
  1420. package/dist/state/transaction/insert-transaction-state.test.d.ts.map +0 -1
  1421. package/dist/state/transaction/insert-transaction-state.test.js +0 -946
  1422. package/dist/state/transaction/insert-transaction-state.test.js.map +0 -1
  1423. package/dist/state/transaction/schema.d.ts +0 -22
  1424. package/dist/state/transaction/schema.d.ts.map +0 -1
  1425. package/dist/state/transaction/schema.js +0 -25
  1426. package/dist/state/transaction/schema.js.map +0 -1
  1427. package/dist/state/transition.bench.d.ts +0 -2
  1428. package/dist/state/transition.bench.d.ts.map +0 -1
  1429. package/dist/state/transition.bench.js +0 -215
  1430. package/dist/state/transition.bench.js.map +0 -1
  1431. package/dist/state/transition.d.ts +0 -21
  1432. package/dist/state/transition.d.ts.map +0 -1
  1433. package/dist/state/transition.js +0 -336
  1434. package/dist/state/transition.js.map +0 -1
  1435. package/dist/state/transition.test.d.ts +0 -2
  1436. package/dist/state/transition.test.d.ts.map +0 -1
  1437. package/dist/state/transition.test.js +0 -226
  1438. package/dist/state/transition.test.js.map +0 -1
  1439. package/dist/state/untracked/schema.d.ts +0 -25
  1440. package/dist/state/untracked/schema.d.ts.map +0 -1
  1441. package/dist/state/untracked/schema.js +0 -45
  1442. package/dist/state/untracked/schema.js.map +0 -1
  1443. package/dist/state/untracked/schema.test.d.ts +0 -2
  1444. package/dist/state/untracked/schema.test.d.ts.map +0 -1
  1445. package/dist/state/untracked/schema.test.js +0 -275
  1446. package/dist/state/untracked/schema.test.js.map +0 -1
  1447. package/dist/state/untracked/update-untracked-state.d.ts +0 -36
  1448. package/dist/state/untracked/update-untracked-state.d.ts.map +0 -1
  1449. package/dist/state/untracked/update-untracked-state.js +0 -144
  1450. package/dist/state/untracked/update-untracked-state.js.map +0 -1
  1451. package/dist/state/untracked/update-untracked-state.test.d.ts +0 -2
  1452. package/dist/state/untracked/update-untracked-state.test.d.ts.map +0 -1
  1453. package/dist/state/untracked/update-untracked-state.test.js +0 -435
  1454. package/dist/state/untracked/update-untracked-state.test.js.map +0 -1
  1455. package/dist/state/views/state-by-version.d.ts +0 -30
  1456. package/dist/state/views/state-by-version.d.ts.map +0 -1
  1457. package/dist/state/views/state-by-version.js +0 -94
  1458. package/dist/state/views/state-by-version.js.map +0 -1
  1459. package/dist/state/views/state-with-tombstones.d.ts +0 -34
  1460. package/dist/state/views/state-with-tombstones.d.ts.map +0 -1
  1461. package/dist/state/views/state-with-tombstones.js +0 -37
  1462. package/dist/state/views/state-with-tombstones.js.map +0 -1
  1463. package/dist/state/views/state-with-tombstones.test.d.ts +0 -2
  1464. package/dist/state/views/state-with-tombstones.test.d.ts.map +0 -1
  1465. package/dist/state/views/state-with-tombstones.test.js +0 -148
  1466. package/dist/state/views/state-with-tombstones.test.js.map +0 -1
  1467. package/dist/state/views/state.bench.d.ts +0 -2
  1468. package/dist/state/views/state.bench.d.ts.map +0 -1
  1469. package/dist/state/views/state.bench.js +0 -308
  1470. package/dist/state/views/state.bench.js.map +0 -1
  1471. package/dist/state/views/state.d.ts +0 -15
  1472. package/dist/state/views/state.d.ts.map +0 -1
  1473. package/dist/state/views/state.js +0 -85
  1474. package/dist/state/views/state.js.map +0 -1
  1475. package/dist/state/views/state.test.d.ts +0 -2
  1476. package/dist/state/views/state.test.d.ts.map +0 -1
  1477. package/dist/state/views/state.test.js +0 -340
  1478. package/dist/state/views/state.test.js.map +0 -1
  1479. package/dist/state/vtable/commit.bench.d.ts +0 -2
  1480. package/dist/state/vtable/commit.bench.d.ts.map +0 -1
  1481. package/dist/state/vtable/commit.bench.js +0 -287
  1482. package/dist/state/vtable/commit.bench.js.map +0 -1
  1483. package/dist/state/vtable/commit.d.ts +0 -18
  1484. package/dist/state/vtable/commit.d.ts.map +0 -1
  1485. package/dist/state/vtable/commit.js +0 -426
  1486. package/dist/state/vtable/commit.js.map +0 -1
  1487. package/dist/state/vtable/commit.test.d.ts +0 -2
  1488. package/dist/state/vtable/commit.test.d.ts.map +0 -1
  1489. package/dist/state/vtable/commit.test.js +0 -1644
  1490. package/dist/state/vtable/commit.test.js.map +0 -1
  1491. package/dist/state/vtable/generate-commit.d.ts +0 -33
  1492. package/dist/state/vtable/generate-commit.d.ts.map +0 -1
  1493. package/dist/state/vtable/generate-commit.js +0 -277
  1494. package/dist/state/vtable/generate-commit.js.map +0 -1
  1495. package/dist/state/vtable/generate-commit.test.d.ts +0 -2
  1496. package/dist/state/vtable/generate-commit.test.d.ts.map +0 -1
  1497. package/dist/state/vtable/generate-commit.test.js +0 -377
  1498. package/dist/state/vtable/generate-commit.test.js.map +0 -1
  1499. package/dist/state/vtable/index.d.ts +0 -3
  1500. package/dist/state/vtable/index.d.ts.map +0 -1
  1501. package/dist/state/vtable/index.js +0 -3
  1502. package/dist/state/vtable/index.js.map +0 -1
  1503. package/dist/state/vtable/insert-vtable-log.d.ts +0 -18
  1504. package/dist/state/vtable/insert-vtable-log.d.ts.map +0 -1
  1505. package/dist/state/vtable/insert-vtable-log.js +0 -49
  1506. package/dist/state/vtable/insert-vtable-log.js.map +0 -1
  1507. package/dist/state/vtable/primary-key.d.ts +0 -41
  1508. package/dist/state/vtable/primary-key.d.ts.map +0 -1
  1509. package/dist/state/vtable/primary-key.js +0 -64
  1510. package/dist/state/vtable/primary-key.js.map +0 -1
  1511. package/dist/state/vtable/primary-key.test.d.ts +0 -2
  1512. package/dist/state/vtable/primary-key.test.d.ts.map +0 -1
  1513. package/dist/state/vtable/primary-key.test.js +0 -32
  1514. package/dist/state/vtable/primary-key.test.js.map +0 -1
  1515. package/dist/state/vtable/validate-state-mutation.bench.d.ts +0 -2
  1516. package/dist/state/vtable/validate-state-mutation.bench.d.ts.map +0 -1
  1517. package/dist/state/vtable/validate-state-mutation.bench.js +0 -284
  1518. package/dist/state/vtable/validate-state-mutation.bench.js.map +0 -1
  1519. package/dist/state/vtable/validate-state-mutation.d.ts +0 -21
  1520. package/dist/state/vtable/validate-state-mutation.d.ts.map +0 -1
  1521. package/dist/state/vtable/validate-state-mutation.js +0 -886
  1522. package/dist/state/vtable/validate-state-mutation.js.map +0 -1
  1523. package/dist/state/vtable/validate-state-mutation.playground.test.d.ts +0 -2
  1524. package/dist/state/vtable/validate-state-mutation.playground.test.d.ts.map +0 -1
  1525. package/dist/state/vtable/validate-state-mutation.playground.test.js +0 -389
  1526. package/dist/state/vtable/validate-state-mutation.playground.test.js.map +0 -1
  1527. package/dist/state/vtable/validate-state-mutation.test.d.ts +0 -2
  1528. package/dist/state/vtable/validate-state-mutation.test.d.ts.map +0 -1
  1529. package/dist/state/vtable/validate-state-mutation.test.js +0 -3655
  1530. package/dist/state/vtable/validate-state-mutation.test.js.map +0 -1
  1531. package/dist/state/vtable/vtable.d.ts +0 -26
  1532. package/dist/state/vtable/vtable.d.ts.map +0 -1
  1533. package/dist/state/vtable/vtable.insert.bench.d.ts +0 -2
  1534. package/dist/state/vtable/vtable.insert.bench.d.ts.map +0 -1
  1535. package/dist/state/vtable/vtable.insert.bench.js +0 -100
  1536. package/dist/state/vtable/vtable.insert.bench.js.map +0 -1
  1537. package/dist/state/vtable/vtable.js +0 -951
  1538. package/dist/state/vtable/vtable.js.map +0 -1
  1539. package/dist/state/vtable/vtable.select.bench.d.ts +0 -2
  1540. package/dist/state/vtable/vtable.select.bench.d.ts.map +0 -1
  1541. package/dist/state/vtable/vtable.select.bench.js +0 -334
  1542. package/dist/state/vtable/vtable.select.bench.js.map +0 -1
  1543. package/dist/state/vtable/vtable.test.d.ts +0 -2
  1544. package/dist/state/vtable/vtable.test.d.ts.map +0 -1
  1545. package/dist/state/vtable/vtable.test.js +0 -3516
  1546. package/dist/state/vtable/vtable.test.js.map +0 -1
  1547. package/dist/state/working-change-set/refresh-working-change-set.d.ts +0 -21
  1548. package/dist/state/working-change-set/refresh-working-change-set.d.ts.map +0 -1
  1549. package/dist/state/working-change-set/refresh-working-change-set.js +0 -185
  1550. package/dist/state/working-change-set/refresh-working-change-set.js.map +0 -1
  1551. package/dist/state/working-change-set/refresh-working-change-set.test.d.ts +0 -2
  1552. package/dist/state/working-change-set/refresh-working-change-set.test.d.ts.map +0 -1
  1553. package/dist/state/working-change-set/refresh-working-change-set.test.js +0 -89
  1554. package/dist/state/working-change-set/refresh-working-change-set.test.js.map +0 -1
  1555. package/dist/state/writer.d.ts +0 -42
  1556. package/dist/state/writer.d.ts.map +0 -1
  1557. package/dist/state/writer.js +0 -62
  1558. package/dist/state/writer.js.map +0 -1
  1559. package/dist/state-history/schema.d.ts +0 -72
  1560. package/dist/state-history/schema.d.ts.map +0 -1
  1561. package/dist/state-history/schema.js +0 -180
  1562. package/dist/state-history/schema.js.map +0 -1
  1563. package/dist/state-history/schema.test.d.ts +0 -2
  1564. package/dist/state-history/schema.test.d.ts.map +0 -1
  1565. package/dist/state-history/schema.test.js +0 -855
  1566. package/dist/state-history/schema.test.js.map +0 -1
  1567. package/dist/stored-schema/get-stored-schema.d.ts +0 -27
  1568. package/dist/stored-schema/get-stored-schema.d.ts.map +0 -1
  1569. package/dist/stored-schema/get-stored-schema.js +0 -129
  1570. package/dist/stored-schema/get-stored-schema.js.map +0 -1
  1571. package/dist/stored-schema/get-stored-schema.test.d.ts +0 -2
  1572. package/dist/stored-schema/get-stored-schema.test.d.ts.map +0 -1
  1573. package/dist/stored-schema/get-stored-schema.test.js +0 -259
  1574. package/dist/stored-schema/get-stored-schema.test.js.map +0 -1
  1575. package/dist/stored-schema/index.d.ts +0 -2
  1576. package/dist/stored-schema/index.d.ts.map +0 -1
  1577. package/dist/stored-schema/index.js +0 -2
  1578. package/dist/stored-schema/index.js.map +0 -1
  1579. package/dist/stored-schema/schema-definition.d.ts +0 -22
  1580. package/dist/stored-schema/schema-definition.d.ts.map +0 -1
  1581. package/dist/stored-schema/schema-definition.js +0 -20
  1582. package/dist/stored-schema/schema-definition.js.map +0 -1
  1583. package/dist/stored-schema/schema.test.d.ts +0 -2
  1584. package/dist/stored-schema/schema.test.d.ts.map +0 -1
  1585. package/dist/stored-schema/schema.test.js +0 -135
  1586. package/dist/stored-schema/schema.test.js.map +0 -1
  1587. package/dist/sync/get-diffing-rows.d.ts +0 -28
  1588. package/dist/sync/get-diffing-rows.d.ts.map +0 -1
  1589. package/dist/sync/get-diffing-rows.js +0 -76
  1590. package/dist/sync/get-diffing-rows.js.map +0 -1
  1591. package/dist/sync/merge-state.d.ts +0 -20
  1592. package/dist/sync/merge-state.d.ts.map +0 -1
  1593. package/dist/sync/merge-state.js +0 -238
  1594. package/dist/sync/merge-state.js.map +0 -1
  1595. package/dist/sync/pull-from-server.d.ts +0 -8
  1596. package/dist/sync/pull-from-server.d.ts.map +0 -1
  1597. package/dist/sync/pull-from-server.js +0 -113
  1598. package/dist/sync/pull-from-server.js.map +0 -1
  1599. package/dist/sync/pull-from-server.test.d.ts +0 -2
  1600. package/dist/sync/pull-from-server.test.d.ts.map +0 -1
  1601. package/dist/sync/pull-from-server.test.js +0 -344
  1602. package/dist/sync/pull-from-server.test.js.map +0 -1
  1603. package/dist/sync/push-to-server.d.ts +0 -21
  1604. package/dist/sync/push-to-server.d.ts.map +0 -1
  1605. package/dist/sync/push-to-server.js +0 -44
  1606. package/dist/sync/push-to-server.js.map +0 -1
  1607. package/dist/sync/push-to-server.test.d.ts +0 -2
  1608. package/dist/sync/push-to-server.test.d.ts.map +0 -1
  1609. package/dist/sync/push-to-server.test.js +0 -307
  1610. package/dist/sync/push-to-server.test.js.map +0 -1
  1611. package/dist/sync/sync-process.d.ts +0 -5
  1612. package/dist/sync/sync-process.d.ts.map +0 -1
  1613. package/dist/sync/sync-process.js +0 -89
  1614. package/dist/sync/sync-process.js.map +0 -1
  1615. package/dist/sync/sync-process.test.d.ts +0 -2
  1616. package/dist/sync/sync-process.test.d.ts.map +0 -1
  1617. package/dist/sync/sync-process.test.js +0 -247
  1618. package/dist/sync/sync-process.test.js.map +0 -1
  1619. package/dist/test-utilities/simulation-test/cache-miss-simulation.d.ts +0 -8
  1620. package/dist/test-utilities/simulation-test/cache-miss-simulation.d.ts.map +0 -1
  1621. package/dist/test-utilities/simulation-test/cache-miss-simulation.js +0 -79
  1622. package/dist/test-utilities/simulation-test/cache-miss-simulation.js.map +0 -1
  1623. package/dist/test-utilities/simulation-test/cache-miss-simulation.test.d.ts +0 -2
  1624. package/dist/test-utilities/simulation-test/cache-miss-simulation.test.d.ts.map +0 -1
  1625. package/dist/test-utilities/simulation-test/cache-miss-simulation.test.js +0 -150
  1626. package/dist/test-utilities/simulation-test/cache-miss-simulation.test.js.map +0 -1
  1627. package/dist/test-utilities/simulation-test/chaotic-timestamp-simulation.d.ts +0 -2
  1628. package/dist/test-utilities/simulation-test/chaotic-timestamp-simulation.d.ts.map +0 -1
  1629. package/dist/test-utilities/simulation-test/chaotic-timestamp-simulation.js +0 -2
  1630. package/dist/test-utilities/simulation-test/chaotic-timestamp-simulation.js.map +0 -1
  1631. package/dist/test-utilities/simulation-test/engine-boundary-simulation.d.ts +0 -3
  1632. package/dist/test-utilities/simulation-test/engine-boundary-simulation.d.ts.map +0 -1
  1633. package/dist/test-utilities/simulation-test/engine-boundary-simulation.js +0 -52
  1634. package/dist/test-utilities/simulation-test/engine-boundary-simulation.js.map +0 -1
  1635. package/dist/test-utilities/simulation-test/engine-boundary-simulation.test.d.ts +0 -2
  1636. package/dist/test-utilities/simulation-test/engine-boundary-simulation.test.d.ts.map +0 -1
  1637. package/dist/test-utilities/simulation-test/engine-boundary-simulation.test.js +0 -10
  1638. package/dist/test-utilities/simulation-test/engine-boundary-simulation.test.js.map +0 -1
  1639. package/dist/test-utilities/simulation-test/out-of-order-sequence-simulation.d.ts +0 -10
  1640. package/dist/test-utilities/simulation-test/out-of-order-sequence-simulation.d.ts.map +0 -1
  1641. package/dist/test-utilities/simulation-test/out-of-order-sequence-simulation.js +0 -50
  1642. package/dist/test-utilities/simulation-test/out-of-order-sequence-simulation.js.map +0 -1
  1643. package/dist/test-utilities/simulation-test/out-of-order-sequence-simulation.test.d.ts +0 -2
  1644. package/dist/test-utilities/simulation-test/out-of-order-sequence-simulation.test.d.ts.map +0 -1
  1645. package/dist/test-utilities/simulation-test/out-of-order-sequence-simulation.test.js +0 -71
  1646. package/dist/test-utilities/simulation-test/out-of-order-sequence-simulation.test.js.map +0 -1
  1647. package/dist/test-utilities/simulation-test/simulation-test.d.ts +0 -87
  1648. package/dist/test-utilities/simulation-test/simulation-test.d.ts.map +0 -1
  1649. package/dist/test-utilities/simulation-test/simulation-test.js +0 -89
  1650. package/dist/test-utilities/simulation-test/simulation-test.js.map +0 -1
  1651. package/dist/test-utilities/simulation-test/simulation-test.test.d.ts +0 -2
  1652. package/dist/test-utilities/simulation-test/simulation-test.test.d.ts.map +0 -1
  1653. package/dist/test-utilities/simulation-test/simulation-test.test.js +0 -308
  1654. package/dist/test-utilities/simulation-test/simulation-test.test.js.map +0 -1
  1655. package/dist/version/create-version-from-commit.d.ts +0 -44
  1656. package/dist/version/create-version-from-commit.d.ts.map +0 -1
  1657. package/dist/version/create-version-from-commit.js +0 -119
  1658. package/dist/version/create-version-from-commit.js.map +0 -1
  1659. package/dist/version/create-version-from-commit.test.d.ts +0 -2
  1660. package/dist/version/create-version-from-commit.test.d.ts.map +0 -1
  1661. package/dist/version/create-version-from-commit.test.js +0 -166
  1662. package/dist/version/create-version-from-commit.test.js.map +0 -1
  1663. package/dist/version/create-version.d.ts +0 -15
  1664. package/dist/version/create-version.d.ts.map +0 -1
  1665. package/dist/version/create-version.js +0 -42
  1666. package/dist/version/create-version.js.map +0 -1
  1667. package/dist/version/create-version.test.d.ts +0 -2
  1668. package/dist/version/create-version.test.d.ts.map +0 -1
  1669. package/dist/version/create-version.test.js +0 -178
  1670. package/dist/version/create-version.test.js.map +0 -1
  1671. package/dist/version/index.d.ts +0 -7
  1672. package/dist/version/index.d.ts.map +0 -1
  1673. package/dist/version/index.js +0 -7
  1674. package/dist/version/index.js.map +0 -1
  1675. package/dist/version/merge-version.d.ts +0 -8
  1676. package/dist/version/merge-version.d.ts.map +0 -1
  1677. package/dist/version/merge-version.js +0 -485
  1678. package/dist/version/merge-version.js.map +0 -1
  1679. package/dist/version/merge-version.test.d.ts +0 -2
  1680. package/dist/version/merge-version.test.d.ts.map +0 -1
  1681. package/dist/version/merge-version.test.js +0 -844
  1682. package/dist/version/merge-version.test.js.map +0 -1
  1683. package/dist/version/schema-definition.d.ts +0 -107
  1684. package/dist/version/schema-definition.d.ts.map +0 -1
  1685. package/dist/version/schema-definition.js +0 -93
  1686. package/dist/version/schema-definition.js.map +0 -1
  1687. package/dist/version/schema.d.ts +0 -6
  1688. package/dist/version/schema.d.ts.map +0 -1
  1689. package/dist/version/schema.js +0 -452
  1690. package/dist/version/schema.js.map +0 -1
  1691. package/dist/version/schema.test.d.ts +0 -2
  1692. package/dist/version/schema.test.d.ts.map +0 -1
  1693. package/dist/version/schema.test.js +0 -1071
  1694. package/dist/version/schema.test.js.map +0 -1
  1695. package/dist/version/select-active-version.d.ts +0 -7
  1696. package/dist/version/select-active-version.d.ts.map +0 -1
  1697. package/dist/version/select-active-version.js +0 -7
  1698. package/dist/version/select-active-version.js.map +0 -1
  1699. package/dist/version/select-version-diff.bench.d.ts +0 -2
  1700. package/dist/version/select-version-diff.bench.d.ts.map +0 -1
  1701. package/dist/version/select-version-diff.bench.js +0 -126
  1702. package/dist/version/select-version-diff.bench.js.map +0 -1
  1703. package/dist/version/select-version-diff.d.ts +0 -121
  1704. package/dist/version/select-version-diff.d.ts.map +0 -1
  1705. package/dist/version/select-version-diff.js +0 -179
  1706. package/dist/version/select-version-diff.js.map +0 -1
  1707. package/dist/version/select-version-diff.playground.test.d.ts +0 -2
  1708. package/dist/version/select-version-diff.playground.test.d.ts.map +0 -1
  1709. package/dist/version/select-version-diff.playground.test.js +0 -114
  1710. package/dist/version/select-version-diff.playground.test.js.map +0 -1
  1711. package/dist/version/select-version-diff.test.d.ts +0 -2
  1712. package/dist/version/select-version-diff.test.d.ts.map +0 -1
  1713. package/dist/version/select-version-diff.test.js +0 -689
  1714. package/dist/version/select-version-diff.test.js.map +0 -1
  1715. package/dist/version/switch-version.d.ts +0 -27
  1716. package/dist/version/switch-version.d.ts.map +0 -1
  1717. package/dist/version/switch-version.js +0 -35
  1718. package/dist/version/switch-version.js.map +0 -1
  1719. package/dist/version/switch-version.test.d.ts +0 -2
  1720. package/dist/version/switch-version.test.d.ts.map +0 -1
  1721. package/dist/version/switch-version.test.js +0 -27
  1722. package/dist/version/switch-version.test.js.map +0 -1
  1723. package/src/account/create-account.test.ts +0 -57
  1724. package/src/account/create-account.ts +0 -53
  1725. package/src/account/index.ts +0 -8
  1726. package/src/account/schema-definition.ts +0 -60
  1727. package/src/account/schema.test.ts +0 -409
  1728. package/src/account/switch-account.test.ts +0 -74
  1729. package/src/account/switch-account.ts +0 -48
  1730. package/src/change/index.ts +0 -4
  1731. package/src/change/schema-definition.ts +0 -84
  1732. package/src/change/schema.bench.ts +0 -411
  1733. package/src/change/schema.test.ts +0 -413
  1734. package/src/change/schema.ts +0 -108
  1735. package/src/change-author/index.ts +0 -4
  1736. package/src/change-author/schema-definition.ts +0 -43
  1737. package/src/change-author/schema.test.ts +0 -510
  1738. package/src/change-conflict/create-change-conflict.test.ts +0 -176
  1739. package/src/change-conflict/create-change-conflict.ts +0 -128
  1740. package/src/change-conflict/detect-change-conflicts.test.ts +0 -218
  1741. package/src/change-conflict/detect-change-conflicts.ts +0 -68
  1742. package/src/change-conflict/detect-diverging-entity-conflict.test.ts +0 -231
  1743. package/src/change-conflict/detect-diverging-entity-conflict.ts +0 -85
  1744. package/src/change-conflict/garbage-collect-change-conflicts.test.ts +0 -220
  1745. package/src/change-conflict/garbage-collect-change-conflicts.ts +0 -99
  1746. package/src/change-conflict/index.ts +0 -3
  1747. package/src/change-conflict/resolve-conflict-by-selecting.test.ts +0 -128
  1748. package/src/change-conflict/resolve-conflict-by-selecting.ts +0 -67
  1749. package/src/change-conflict/update-change-conflicts.ts +0 -79
  1750. package/src/change-proposal/accept-change-proposal.test.ts +0 -64
  1751. package/src/change-proposal/accept-change-proposal.ts +0 -46
  1752. package/src/change-proposal/create-change-proposal.test.ts +0 -81
  1753. package/src/change-proposal/create-change-proposal.ts +0 -46
  1754. package/src/change-proposal/index.ts +0 -7
  1755. package/src/change-proposal/reject-change-proposal.test.ts +0 -34
  1756. package/src/change-proposal/reject-change-proposal.ts +0 -22
  1757. package/src/change-proposal/schema-definition.ts +0 -42
  1758. package/src/change-proposal/schema.test.ts +0 -124
  1759. package/src/change-set/apply-change-set.test.ts +0 -473
  1760. package/src/change-set/apply-change-set.ts +0 -166
  1761. package/src/change-set/create-change-set.test.ts +0 -119
  1762. package/src/change-set/create-change-set.ts +0 -93
  1763. package/src/change-set/index.ts +0 -8
  1764. package/src/change-set/schema-definition.ts +0 -83
  1765. package/src/change-set/schema.test.ts +0 -497
  1766. package/src/commit/index.ts +0 -6
  1767. package/src/commit/schema-definition.ts +0 -103
  1768. package/src/commit/schema.test.ts +0 -353
  1769. package/src/conversation/create-conversation-message.test.ts +0 -118
  1770. package/src/conversation/create-conversation-message.ts +0 -82
  1771. package/src/conversation/create-conversation.test.ts +0 -194
  1772. package/src/conversation/create-conversation.ts +0 -110
  1773. package/src/conversation/index.ts +0 -8
  1774. package/src/conversation/schema-definition.ts +0 -74
  1775. package/src/database/graph-traversal-mode.ts +0 -75
  1776. package/src/database/index.ts +0 -3
  1777. package/src/database/init-db.ts +0 -158
  1778. package/src/database/kysely/index.ts +0 -1
  1779. package/src/database/kysely/json-column-config.ts +0 -63
  1780. package/src/database/kysely/plugins/json-column-plugin.test.ts +0 -533
  1781. package/src/database/kysely/plugins/json-column-plugin.ts +0 -286
  1782. package/src/database/kysely/plugins/view-insert-returning-error-plugin.test.ts +0 -62
  1783. package/src/database/kysely/plugins/view-insert-returning-error-plugin.ts +0 -49
  1784. package/src/database/kysely/plugins.ts +0 -16
  1785. package/src/database/nano-id.test.ts +0 -42
  1786. package/src/database/nano-id.ts +0 -100
  1787. package/src/database/schema-view-map.ts +0 -48
  1788. package/src/database/schema.ts +0 -165
  1789. package/src/database/sqlite/content-from-database.ts +0 -12
  1790. package/src/database/sqlite/create-in-memory-database.ts +0 -61
  1791. package/src/database/sqlite/environment-dialect.test.ts +0 -84
  1792. package/src/database/sqlite/environment-dialect.ts +0 -227
  1793. package/src/database/sqlite/import-database.ts +0 -43
  1794. package/src/database/sqlite/index.ts +0 -7
  1795. package/src/database/sqlite/kysely-driver/connection-mutex.ts +0 -23
  1796. package/src/database/sqlite/kysely-driver/index.ts +0 -4
  1797. package/src/database/sqlite/kysely-driver/sqlite-wasm-connection.ts +0 -58
  1798. package/src/database/sqlite/kysely-driver/sqlite-wasm-dialect-config.ts +0 -19
  1799. package/src/database/sqlite/kysely-driver/sqlite-wasm-driver.ts +0 -59
  1800. package/src/database/sqlite/lix-dialect.ts +0 -27
  1801. package/src/database/sqlite/load-database-in-memory.ts +0 -28
  1802. package/src/database/sqlite/sqlite-wasm-binary.d.ts +0 -2
  1803. package/src/dependency/kysely/helpers/sqlite.ts +0 -4
  1804. package/src/dependency/kysely/index.ts +0 -8
  1805. package/src/dependency/zettel-ast/index.ts +0 -10
  1806. package/src/diff/index.ts +0 -2
  1807. package/src/diff/select-commit-diff.bench.ts +0 -156
  1808. package/src/diff/select-commit-diff.test.ts +0 -65
  1809. package/src/diff/select-commit-diff.ts +0 -234
  1810. package/src/diff/select-working-diff.bench.ts +0 -99
  1811. package/src/diff/select-working-diff.test.ts +0 -275
  1812. package/src/diff/select-working-diff.ts +0 -233
  1813. package/src/engine/boot.test.ts +0 -88
  1814. package/src/engine/boot.ts +0 -280
  1815. package/src/engine/cel-environment/cel-environment.test.ts +0 -20
  1816. package/src/engine/cel-environment/cel-environment.ts +0 -85
  1817. package/src/engine/deterministic-mode/is-deterministic-mode.test.ts +0 -121
  1818. package/src/engine/deterministic-mode/is-deterministic-mode.ts +0 -105
  1819. package/src/engine/deterministic-mode/options.test.ts +0 -159
  1820. package/src/engine/deterministic-mode/options.ts +0 -57
  1821. package/src/engine/entity-views/README.md +0 -214
  1822. package/src/engine/entity-views/build-json-object-entries.test.ts +0 -42
  1823. package/src/engine/entity-views/build-json-object-entries.ts +0 -43
  1824. package/src/engine/entity-views/entity-state-by-version.ts +0 -263
  1825. package/src/engine/entity-views/entity-state-history.ts +0 -208
  1826. package/src/engine/entity-views/entity-state.ts +0 -239
  1827. package/src/engine/entity-views/entity-view-builder.ts +0 -58
  1828. package/src/engine/entity-views/index.ts +0 -1
  1829. package/src/engine/entity-views/types.test.ts +0 -99
  1830. package/src/engine/entity-views/types.ts +0 -330
  1831. package/src/engine/execute-sync.test.ts +0 -90
  1832. package/src/engine/execute-sync.ts +0 -47
  1833. package/src/engine/explain-query.test.ts +0 -21
  1834. package/src/engine/explain-query.ts +0 -89
  1835. package/src/engine/functions/function-registry.ts +0 -69
  1836. package/src/engine/functions/generate-human-id.test.ts +0 -199
  1837. package/src/engine/functions/generate-human-id.ts +0 -383
  1838. package/src/engine/functions/index.ts +0 -6
  1839. package/src/engine/functions/nano-id.bench.ts +0 -57
  1840. package/src/engine/functions/nano-id.test.ts +0 -200
  1841. package/src/engine/functions/nano-id.ts +0 -205
  1842. package/src/engine/functions/random.test.ts +0 -293
  1843. package/src/engine/functions/random.ts +0 -267
  1844. package/src/engine/functions/register-builtins.ts +0 -154
  1845. package/src/engine/functions/sequence.test.ts +0 -99
  1846. package/src/engine/functions/sequence.ts +0 -165
  1847. package/src/engine/functions/timestamp.test.ts +0 -172
  1848. package/src/engine/functions/timestamp.ts +0 -86
  1849. package/src/engine/functions/uuid-v7.test.ts +0 -144
  1850. package/src/engine/functions/uuid-v7.ts +0 -88
  1851. package/src/engine/index.ts +0 -1
  1852. package/src/engine/internal-query-builder.ts +0 -42
  1853. package/src/engine/preprocessor/create-preprocessor.test.ts +0 -275
  1854. package/src/engine/preprocessor/create-preprocessor.ts +0 -267
  1855. package/src/engine/preprocessor/entity-views/__bench__/entity-view-select-all-rows.explain.txt +0 -287
  1856. package/src/engine/preprocessor/entity-views/__bench__/entity-view-select-id-filter.explain.txt +0 -290
  1857. package/src/engine/preprocessor/entity-views/delete.test.ts +0 -994
  1858. package/src/engine/preprocessor/entity-views/delete.ts +0 -359
  1859. package/src/engine/preprocessor/entity-views/insert.test.ts +0 -1175
  1860. package/src/engine/preprocessor/entity-views/insert.ts +0 -903
  1861. package/src/engine/preprocessor/entity-views/select.bench.ts +0 -168
  1862. package/src/engine/preprocessor/entity-views/select.test.ts +0 -385
  1863. package/src/engine/preprocessor/entity-views/select.ts +0 -2079
  1864. package/src/engine/preprocessor/entity-views/shared.ts +0 -1560
  1865. package/src/engine/preprocessor/entity-views/update.test.ts +0 -424
  1866. package/src/engine/preprocessor/entity-views/update.ts +0 -753
  1867. package/src/engine/preprocessor/inheritance/version-inheritance-cache.test.ts +0 -128
  1868. package/src/engine/preprocessor/inheritance/version-inheritance-cache.ts +0 -385
  1869. package/src/engine/preprocessor/sql-parser/ast-helpers.ts +0 -235
  1870. package/src/engine/preprocessor/sql-parser/column-usage.ts +0 -504
  1871. package/src/engine/preprocessor/sql-parser/compile.test.ts +0 -147
  1872. package/src/engine/preprocessor/sql-parser/compile.ts +0 -898
  1873. package/src/engine/preprocessor/sql-parser/cst.ts +0 -1012
  1874. package/src/engine/preprocessor/sql-parser/lexer.ts +0 -608
  1875. package/src/engine/preprocessor/sql-parser/nodes.ts +0 -395
  1876. package/src/engine/preprocessor/sql-parser/parse.test.ts +0 -1646
  1877. package/src/engine/preprocessor/sql-parser/parse.ts +0 -1984
  1878. package/src/engine/preprocessor/sql-parser/visitor.test.ts +0 -173
  1879. package/src/engine/preprocessor/sql-parser/visitor.ts +0 -1403
  1880. package/src/engine/preprocessor/steps/cache-populator.test.ts +0 -128
  1881. package/src/engine/preprocessor/steps/cache-populator.ts +0 -797
  1882. package/src/engine/preprocessor/steps/expand-sql-views.test.ts +0 -1353
  1883. package/src/engine/preprocessor/steps/expand-sql-views.ts +0 -1167
  1884. package/src/engine/preprocessor/steps/rewrite-active-version-subquery.test.ts +0 -83
  1885. package/src/engine/preprocessor/steps/rewrite-active-version-subquery.ts +0 -251
  1886. package/src/engine/preprocessor/steps/rewrite-vtable-selects.bench.ts +0 -68
  1887. package/src/engine/preprocessor/steps/rewrite-vtable-selects.test.ts +0 -1326
  1888. package/src/engine/preprocessor/steps/rewrite-vtable-selects.ts +0 -3751
  1889. package/src/engine/preprocessor/types.ts +0 -103
  1890. package/src/engine/sql-parser/tokenizer.test.ts +0 -408
  1891. package/src/engine/sql-parser/tokenizer.ts +0 -205
  1892. package/src/engine/with-runtime-cache.test.ts +0 -173
  1893. package/src/engine/with-runtime-cache.ts +0 -206
  1894. package/src/entity/conversation/attach-conversation.test.ts +0 -251
  1895. package/src/entity/conversation/attach-conversation.ts +0 -98
  1896. package/src/entity/conversation/schema-definition.ts +0 -52
  1897. package/src/entity/conversation/schema.test.ts +0 -105
  1898. package/src/entity/eb-entity.test.ts +0 -769
  1899. package/src/entity/eb-entity.ts +0 -203
  1900. package/src/entity/index.ts +0 -9
  1901. package/src/entity/label/attach-label.test.ts +0 -356
  1902. package/src/entity/label/attach-label.ts +0 -165
  1903. package/src/entity/label/schema-definition.ts +0 -47
  1904. package/src/entity/label/schema.test.ts +0 -945
  1905. package/src/entity/types.ts +0 -13
  1906. package/src/environment/api.test.ts +0 -102
  1907. package/src/environment/api.ts +0 -39
  1908. package/src/environment/in-memory.test.ts +0 -100
  1909. package/src/environment/in-memory.ts +0 -68
  1910. package/src/environment/index.ts +0 -7
  1911. package/src/environment/kysely/kysely-driver.test.ts +0 -29
  1912. package/src/environment/load-from-string.test.ts +0 -17
  1913. package/src/environment/load-from-string.ts +0 -86
  1914. package/src/environment/opfs-sah.browser.test.ts +0 -352
  1915. package/src/environment/opfs-sah.ts +0 -279
  1916. package/src/environment/opfs-sah.worker.ts +0 -271
  1917. package/src/environment/test-actors/echo.actor.ts +0 -6
  1918. package/src/filesystem/__bench__/batch-file-reads-select-multiple-files.explain.txt +0 -523
  1919. package/src/filesystem/__bench__/file-delete-operations-delete.explain.txt +0 -90
  1920. package/src/filesystem/__bench__/file-delete-operations-insert.explain.txt +0 -11
  1921. package/src/filesystem/__bench__/file-insert-operations.explain.txt +0 -11
  1922. package/src/filesystem/__bench__/file-read-by-exact-path.explain.txt +0 -523
  1923. package/src/filesystem/__bench__/file-read-excluding-file-path-via-not-like.explain.txt +0 -458
  1924. package/src/filesystem/__bench__/file-read-with-path-based-like.explain.txt +0 -523
  1925. package/src/filesystem/__bench__/file-reads-with-varying-sizes.explain.txt +0 -523
  1926. package/src/filesystem/__bench__/file-table-full-scan.explain.txt +0 -522
  1927. package/src/filesystem/__bench__/file-update-by-path.explain.txt +0 -90
  1928. package/src/filesystem/__bench__/mixed-file-read-pattern-80-20-distribution.explain.txt +0 -523
  1929. package/src/filesystem/__bench__/repeated-file-reads-same-file-cache-hit-scenario.explain.txt +0 -523
  1930. package/src/filesystem/__bench__/sequential-file-reads-unique-files.explain.txt +0 -523
  1931. package/src/filesystem/directory/ensure-directories.ts +0 -311
  1932. package/src/filesystem/directory/schema-definition.ts +0 -44
  1933. package/src/filesystem/directory/schema.test.ts +0 -119
  1934. package/src/filesystem/directory/schema.ts +0 -577
  1935. package/src/filesystem/file/cache/clear-file-data-cache.ts +0 -56
  1936. package/src/filesystem/file/cache/lixcol-schema.ts +0 -48
  1937. package/src/filesystem/file/cache/path-cache-schema.ts +0 -45
  1938. package/src/filesystem/file/cache/schema.test.ts +0 -326
  1939. package/src/filesystem/file/cache/schema.ts +0 -36
  1940. package/src/filesystem/file/cache/update-file-data-cache.ts +0 -31
  1941. package/src/filesystem/file/cache/update-file-lixcol-cache.ts +0 -88
  1942. package/src/filesystem/file/cache/update-file-path-cache.ts +0 -47
  1943. package/src/filesystem/file/descriptor-utils.ts +0 -356
  1944. package/src/filesystem/file/file-handlers.test.ts +0 -390
  1945. package/src/filesystem/file/file-handlers.ts +0 -670
  1946. package/src/filesystem/file/materialize-file-data-at-commit.ts +0 -203
  1947. package/src/filesystem/file/materialize-file-data.test.ts +0 -123
  1948. package/src/filesystem/file/materialize-file-data.ts +0 -140
  1949. package/src/filesystem/file/schema-definition.ts +0 -49
  1950. package/src/filesystem/file/schema.test.ts +0 -2452
  1951. package/src/filesystem/file/schema.ts +0 -681
  1952. package/src/filesystem/file/select-file-data.ts +0 -59
  1953. package/src/filesystem/file/select-file-lixcol.ts +0 -144
  1954. package/src/filesystem/file/store-detected-change-schema.test.ts +0 -285
  1955. package/src/filesystem/file/store-detected-change-schema.ts +0 -62
  1956. package/src/filesystem/file/unknown-file-fallback-plugin.test.ts +0 -383
  1957. package/src/filesystem/file/unknown-file-fallback-plugin.ts +0 -96
  1958. package/src/filesystem/fs.bench.ts +0 -661
  1959. package/src/filesystem/index.ts +0 -15
  1960. package/src/filesystem/path.test.ts +0 -130
  1961. package/src/filesystem/path.ts +0 -127
  1962. package/src/filesystem/schema.test.ts +0 -656
  1963. package/src/filesystem/schema.ts +0 -14
  1964. package/src/filesystem/util/glob.ts +0 -31
  1965. package/src/hooks/create-hooks.test.ts +0 -240
  1966. package/src/hooks/create-hooks.ts +0 -155
  1967. package/src/hooks/index.ts +0 -1
  1968. package/src/index.ts +0 -27
  1969. package/src/key-value/index.ts +0 -1
  1970. package/src/key-value/schema-definition.ts +0 -78
  1971. package/src/key-value/schema.test.ts +0 -405
  1972. package/src/label/create-label.test.ts +0 -234
  1973. package/src/label/create-label.ts +0 -65
  1974. package/src/label/index.ts +0 -2
  1975. package/src/label/schema-definition.ts +0 -27
  1976. package/src/label/schema.test.ts +0 -92
  1977. package/src/lix/index.ts +0 -2
  1978. package/src/lix/new-lix.test.ts +0 -486
  1979. package/src/lix/new-lix.ts +0 -787
  1980. package/src/lix/open-lix.bench.ts +0 -23
  1981. package/src/lix/open-lix.test.ts +0 -530
  1982. package/src/lix/open-lix.ts +0 -365
  1983. package/src/log/create-lix-own-log.test.ts +0 -147
  1984. package/src/log/create-lix-own-log.ts +0 -112
  1985. package/src/log/create-log.ts +0 -63
  1986. package/src/log/index.ts +0 -2
  1987. package/src/log/schema-definition.ts +0 -45
  1988. package/src/log/schema.test.ts +0 -179
  1989. package/src/observe/create-observe.test.ts +0 -1420
  1990. package/src/observe/create-observe.ts +0 -326
  1991. package/src/observe/determine-schema-keys.test.ts +0 -461
  1992. package/src/observe/determine-schema-keys.ts +0 -523
  1993. package/src/observe/index.ts +0 -1
  1994. package/src/observe/lix-observable.test.ts +0 -247
  1995. package/src/observe/lix-observable.ts +0 -92
  1996. package/src/plugin/index.ts +0 -8
  1997. package/src/plugin/lix-plugin.test-d.ts +0 -57
  1998. package/src/plugin/lix-plugin.test.ts +0 -57
  1999. package/src/plugin/lix-plugin.ts +0 -162
  2000. package/src/plugin/mock-json-plugin.flatten.ts +0 -161
  2001. package/src/plugin/mock-json-plugin.test.ts +0 -225
  2002. package/src/plugin/mock-json-plugin.ts +0 -114
  2003. package/src/plugin/query-sync.test.ts +0 -132
  2004. package/src/plugin/query-sync.ts +0 -170
  2005. package/src/query-filter/commit-is-ancestor-of.test.ts +0 -234
  2006. package/src/query-filter/commit-is-ancestor-of.ts +0 -77
  2007. package/src/query-filter/commit-is-descendant-of.test.ts +0 -249
  2008. package/src/query-filter/commit-is-descendant-of.ts +0 -70
  2009. package/src/query-filter/index.ts +0 -2
  2010. package/src/schema-definition/definition.test-d.ts +0 -338
  2011. package/src/schema-definition/definition.test.ts +0 -677
  2012. package/src/schema-definition/definition.ts +0 -637
  2013. package/src/schema-definition/index.ts +0 -13
  2014. package/src/schema-definition/json-pointer.test.ts +0 -101
  2015. package/src/schema-definition/json-pointer.ts +0 -168
  2016. package/src/schema-definition/json-type.test.ts +0 -30
  2017. package/src/schema-definition/json-type.ts +0 -53
  2018. package/src/schema-definition/validate-lix-schema.test.ts +0 -193
  2019. package/src/schema-definition/validate-lix-schema.ts +0 -176
  2020. package/src/server-protocol-handler/create-server-protocol-handler.ts +0 -84
  2021. package/src/server-protocol-handler/environment/create-in-memory-environment.test.ts +0 -130
  2022. package/src/server-protocol-handler/environment/create-in-memory-environment.ts +0 -100
  2023. package/src/server-protocol-handler/environment/environment.ts +0 -41
  2024. package/src/server-protocol-handler/index.ts +0 -5
  2025. package/src/server-protocol-handler/routes/get-v1.test.ts +0 -146
  2026. package/src/server-protocol-handler/routes/get-v1.ts +0 -65
  2027. package/src/server-protocol-handler/routes/new-v1.test.ts +0 -102
  2028. package/src/server-protocol-handler/routes/new-v1.ts +0 -44
  2029. package/src/server-protocol-handler/routes/pull-v1.test.ts +0 -217
  2030. package/src/server-protocol-handler/routes/pull-v1.ts +0 -58
  2031. package/src/server-protocol-handler/routes/push-v1.test.ts +0 -301
  2032. package/src/server-protocol-handler/routes/push-v1.ts +0 -184
  2033. package/src/services/env-variables/create-index-file.js +0 -35
  2034. package/src/services/env-variables/index.d.ts +0 -15
  2035. package/src/services/telemetry/capture.test.ts +0 -44
  2036. package/src/services/telemetry/capture.ts +0 -99
  2037. package/src/snapshot/schema.test.ts +0 -268
  2038. package/src/snapshot/schema.ts +0 -33
  2039. package/src/state/README.md +0 -95
  2040. package/src/state/cache/builtin-schemas.ts +0 -25
  2041. package/src/state/cache/clear-state-cache.test.ts +0 -44
  2042. package/src/state/cache/clear-state-cache.ts +0 -52
  2043. package/src/state/cache/create-schema-cache-table.test.ts +0 -67
  2044. package/src/state/cache/create-schema-cache-table.ts +0 -164
  2045. package/src/state/cache/is-stale-state-cache.test.ts +0 -39
  2046. package/src/state/cache/is-stale-state-cache.ts +0 -86
  2047. package/src/state/cache/mark-state-cache-as-stale.ts +0 -66
  2048. package/src/state/cache/populate-state-cache.test.ts +0 -605
  2049. package/src/state/cache/populate-state-cache.ts +0 -227
  2050. package/src/state/cache/schema-indexes.test.ts +0 -144
  2051. package/src/state/cache/schema-indexes.ts +0 -191
  2052. package/src/state/cache/schema-resolver.ts +0 -59
  2053. package/src/state/cache/schema.bench.ts +0 -361
  2054. package/src/state/cache/schema.test.ts +0 -143
  2055. package/src/state/cache/schema.ts +0 -72
  2056. package/src/state/cache/select-from-state-cache.test.ts +0 -72
  2057. package/src/state/cache/select-from-state-cache.ts +0 -71
  2058. package/src/state/cache/update-state-cache.bench.ts +0 -158
  2059. package/src/state/cache/update-state-cache.test.ts +0 -1110
  2060. package/src/state/cache/update-state-cache.ts +0 -458
  2061. package/src/state/cache-v2/cache-columns.ts +0 -20
  2062. package/src/state/cache-v2/clear-state-cache.test.ts +0 -101
  2063. package/src/state/cache-v2/clear-state-cache.ts +0 -51
  2064. package/src/state/cache-v2/create-schema-cache-table.test.ts +0 -96
  2065. package/src/state/cache-v2/create-schema-cache-table.ts +0 -205
  2066. package/src/state/cache-v2/is-stale-state-cache.test.ts +0 -39
  2067. package/src/state/cache-v2/is-stale-state-cache.ts +0 -86
  2068. package/src/state/cache-v2/mark-state-cache-as-stale.ts +0 -78
  2069. package/src/state/cache-v2/populate-state-cache.test.ts +0 -124
  2070. package/src/state/cache-v2/populate-state-cache.ts +0 -178
  2071. package/src/state/cache-v2/schema-metadata.ts +0 -46
  2072. package/src/state/cache-v2/schema.bench.ts +0 -238
  2073. package/src/state/cache-v2/schema.test.ts +0 -330
  2074. package/src/state/cache-v2/schema.ts +0 -114
  2075. package/src/state/cache-v2/select-from-state-cache.test.ts +0 -109
  2076. package/src/state/cache-v2/select-from-state-cache.ts +0 -201
  2077. package/src/state/cache-v2/sqlite-type-mapper.test.ts +0 -56
  2078. package/src/state/cache-v2/sqlite-type-mapper.ts +0 -64
  2079. package/src/state/cache-v2/update-state-cache.bench.ts +0 -198
  2080. package/src/state/cache-v2/update-state-cache.test.ts +0 -344
  2081. package/src/state/cache-v2/update-state-cache.ts +0 -607
  2082. package/src/state/create-checkpoint.test.ts +0 -848
  2083. package/src/state/create-checkpoint.ts +0 -278
  2084. package/src/state/index.ts +0 -24
  2085. package/src/state/materialize-state.bench.ts +0 -231
  2086. package/src/state/materialize-state.test.ts +0 -2837
  2087. package/src/state/materialize-state.ts +0 -569
  2088. package/src/state/schema.bench.ts +0 -132
  2089. package/src/state/schema.ts +0 -44
  2090. package/src/state/transaction/insert-transaction-state.test.ts +0 -1119
  2091. package/src/state/transaction/insert-transaction-state.ts +0 -149
  2092. package/src/state/transaction/schema.ts +0 -49
  2093. package/src/state/transition.bench.ts +0 -271
  2094. package/src/state/transition.test.ts +0 -295
  2095. package/src/state/transition.ts +0 -413
  2096. package/src/state/untracked/schema.test.ts +0 -301
  2097. package/src/state/untracked/schema.ts +0 -62
  2098. package/src/state/untracked/update-untracked-state.test.ts +0 -484
  2099. package/src/state/untracked/update-untracked-state.ts +0 -181
  2100. package/src/state/views/__bench__/state-delete-tracked-row.explain.txt +0 -79
  2101. package/src/state/views/__bench__/state-insert-tracked-row.explain.txt +0 -20
  2102. package/src/state/views/__bench__/state-insert-untracked-row.explain.txt +0 -20
  2103. package/src/state/views/__bench__/state-select-recent-file-scan.explain.txt +0 -1133
  2104. package/src/state/views/__bench__/state-select-tracked-entity.explain.txt +0 -296
  2105. package/src/state/views/__bench__/state-select-untracked-filter.explain.txt +0 -301
  2106. package/src/state/views/__bench__/state-update-tracked-row.explain.txt +0 -80
  2107. package/src/state/views/state-by-version.ts +0 -121
  2108. package/src/state/views/state-with-tombstones.test.ts +0 -166
  2109. package/src/state/views/state-with-tombstones.ts +0 -61
  2110. package/src/state/views/state.bench.1_base.json +0 -189
  2111. package/src/state/views/state.bench.2_dml.json +0 -189
  2112. package/src/state/views/state.bench.ts +0 -382
  2113. package/src/state/views/state.test.ts +0 -417
  2114. package/src/state/views/state.ts +0 -97
  2115. package/src/state/vtable/__bench__/cache-entity-version-file-plugin.explain.txt +0 -237
  2116. package/src/state/vtable/__bench__/cache-entity-version-file.explain.txt +0 -236
  2117. package/src/state/vtable/__bench__/cache-entity-version.explain.txt +0 -235
  2118. package/src/state/vtable/__bench__/inherited-cache-entity-version-file-plugin.explain.txt +0 -363
  2119. package/src/state/vtable/__bench__/inherited-cache-entity-version-file.explain.txt +0 -362
  2120. package/src/state/vtable/__bench__/inherited-cache-entity-version.explain.txt +0 -367
  2121. package/src/state/vtable/__bench__/inherited-untracked-entity-version-file-plugin.explain.txt +0 -363
  2122. package/src/state/vtable/__bench__/inherited-untracked-entity-version-file.explain.txt +0 -362
  2123. package/src/state/vtable/__bench__/inherited-untracked-entity-version.explain.txt +0 -367
  2124. package/src/state/vtable/__bench__/transaction-entity-version-file-plugin.explain.txt +0 -237
  2125. package/src/state/vtable/__bench__/transaction-entity-version-file.explain.txt +0 -236
  2126. package/src/state/vtable/__bench__/transaction-entity-version.explain.txt +0 -235
  2127. package/src/state/vtable/__bench__/untracked-entity-version-file-plugin.explain.txt +0 -237
  2128. package/src/state/vtable/__bench__/untracked-entity-version-file.explain.txt +0 -236
  2129. package/src/state/vtable/__bench__/untracked-entity-version.explain.txt +0 -235
  2130. package/src/state/vtable/__playground__/validate-state-mutation.foreign-key.explain.txt +0 -173
  2131. package/src/state/vtable/__playground__/validate-state-mutation.primary-key.explain.txt +0 -173
  2132. package/src/state/vtable/__playground__/validate-state-mutation.unique-nested.explain.txt +0 -173
  2133. package/src/state/vtable/commit.bench.ts +0 -339
  2134. package/src/state/vtable/commit.test.ts +0 -1924
  2135. package/src/state/vtable/commit.ts +0 -508
  2136. package/src/state/vtable/generate-commit.test.ts +0 -417
  2137. package/src/state/vtable/generate-commit.ts +0 -346
  2138. package/src/state/vtable/index.ts +0 -5
  2139. package/src/state/vtable/insert-vtable-log.ts +0 -64
  2140. package/src/state/vtable/primary-key.test.ts +0 -44
  2141. package/src/state/vtable/primary-key.ts +0 -82
  2142. package/src/state/vtable/validate-state-mutation.bench.ts +0 -326
  2143. package/src/state/vtable/validate-state-mutation.playground.test.ts +0 -456
  2144. package/src/state/vtable/validate-state-mutation.test.ts +0 -4265
  2145. package/src/state/vtable/validate-state-mutation.ts +0 -1236
  2146. package/src/state/vtable/vtable.insert.bench.ts +0 -127
  2147. package/src/state/vtable/vtable.select.bench.ts +0 -439
  2148. package/src/state/vtable/vtable.test.ts +0 -4211
  2149. package/src/state/vtable/vtable.ts +0 -1223
  2150. package/src/state/working-change-set/refresh-working-change-set.test.ts +0 -116
  2151. package/src/state/working-change-set/refresh-working-change-set.ts +0 -290
  2152. package/src/state/writer.ts +0 -71
  2153. package/src/state-history/schema.test.ts +0 -1002
  2154. package/src/state-history/schema.ts +0 -288
  2155. package/src/stored-schema/get-stored-schema.test.ts +0 -352
  2156. package/src/stored-schema/get-stored-schema.ts +0 -163
  2157. package/src/stored-schema/index.ts +0 -4
  2158. package/src/stored-schema/schema-definition.ts +0 -30
  2159. package/src/stored-schema/schema.test.ts +0 -198
  2160. package/src/sync/get-diffing-rows.ts +0 -112
  2161. package/src/sync/merge-state.ts +0 -313
  2162. package/src/sync/pull-from-server.test.ts +0 -430
  2163. package/src/sync/pull-from-server.ts +0 -146
  2164. package/src/sync/push-to-server.test.ts +0 -387
  2165. package/src/sync/push-to-server.ts +0 -56
  2166. package/src/sync/sync-process.test.ts +0 -324
  2167. package/src/sync/sync-process.ts +0 -103
  2168. package/src/test-utilities/simulation-test/cache-miss-simulation.test.ts +0 -198
  2169. package/src/test-utilities/simulation-test/cache-miss-simulation.ts +0 -96
  2170. package/src/test-utilities/simulation-test/chaotic-timestamp-simulation.ts +0 -0
  2171. package/src/test-utilities/simulation-test/engine-boundary-simulation.test.ts +0 -14
  2172. package/src/test-utilities/simulation-test/engine-boundary-simulation.ts +0 -65
  2173. package/src/test-utilities/simulation-test/out-of-order-sequence-simulation.test.ts +0 -88
  2174. package/src/test-utilities/simulation-test/out-of-order-sequence-simulation.ts +0 -61
  2175. package/src/test-utilities/simulation-test/simulation-test.test.ts +0 -404
  2176. package/src/test-utilities/simulation-test/simulation-test.ts +0 -194
  2177. package/src/types/fs.d.ts +0 -11
  2178. package/src/version/create-version-from-commit.test.ts +0 -211
  2179. package/src/version/create-version-from-commit.ts +0 -141
  2180. package/src/version/create-version.test.ts +0 -215
  2181. package/src/version/create-version.ts +0 -50
  2182. package/src/version/index.ts +0 -15
  2183. package/src/version/merge-version.test.ts +0 -1051
  2184. package/src/version/merge-version.ts +0 -583
  2185. package/src/version/schema-definition.ts +0 -111
  2186. package/src/version/schema.test.ts +0 -1256
  2187. package/src/version/schema.ts +0 -475
  2188. package/src/version/select-active-version.ts +0 -18
  2189. package/src/version/select-version-diff.bench.ts +0 -145
  2190. package/src/version/select-version-diff.playground-plan.txt +0 -3837
  2191. package/src/version/select-version-diff.playground.test.ts +0 -129
  2192. package/src/version/select-version-diff.test.ts +0 -805
  2193. package/src/version/select-version-diff.ts +0 -201
  2194. package/src/version/switch-version.test.ts +0 -31
  2195. package/src/version/switch-version.ts +0 -40
@@ -1,3516 +0,0 @@
1
- import { expect, test } from "vitest";
2
- import { Kysely, sql } from "kysely";
3
- import { createVersion } from "../../version/create-version.js";
4
- import { simulationTest, normalSimulation, } from "../../test-utilities/simulation-test/simulation-test.js";
5
- import { createVersionFromCommit } from "../../version/create-version-from-commit.js";
6
- import { openLix } from "../../lix/open-lix.js";
7
- import { withWriterKey } from "../writer.js";
8
- test("simulation test discover", () => { });
9
- simulationTest("select, insert, update, delete entity via lix_internal_state_vtable", async ({ openSimulatedLix }) => {
10
- const mockSchema = {
11
- "x-lix-key": "mock_schema",
12
- "x-lix-version": "1.0",
13
- type: "object",
14
- additionalProperties: false,
15
- properties: {
16
- value: {
17
- type: "string",
18
- },
19
- },
20
- };
21
- const lix = await openSimulatedLix({
22
- keyValues: [
23
- {
24
- key: "lix_deterministic_mode",
25
- value: { enabled: true },
26
- lixcol_version_id: "global",
27
- },
28
- ],
29
- });
30
- const internalDb = lix.db;
31
- await lix.db
32
- .insertInto("stored_schema")
33
- .values({ value: mockSchema })
34
- .execute();
35
- const db = lix.db;
36
- // Test INSERT via lix_internal_state_vtable
37
- await db
38
- .insertInto("lix_internal_state_vtable")
39
- .values({
40
- entity_id: "e0",
41
- file_id: "f0",
42
- schema_key: "mock_schema",
43
- plugin_key: "lix_sdk",
44
- schema_version: "1.0",
45
- version_id: sql `(SELECT version_id FROM active_version)`,
46
- snapshot_content: JSON.stringify({
47
- value: "hello world",
48
- }),
49
- untracked: 0,
50
- })
51
- .execute();
52
- // Test SELECT from lix_internal_state_vtable
53
- const viewAfterInsert = await db
54
- .selectFrom("lix_internal_state_vtable")
55
- .where("schema_key", "=", "mock_schema")
56
- .orderBy("entity_id")
57
- .orderBy("version_id")
58
- .select([
59
- "entity_id",
60
- "file_id",
61
- "schema_key",
62
- "plugin_key",
63
- sql `json(snapshot_content)`.as("snapshot_content"),
64
- ])
65
- .execute();
66
- expect(viewAfterInsert).toMatchObject([
67
- {
68
- entity_id: "e0",
69
- file_id: "f0",
70
- schema_key: "mock_schema",
71
- plugin_key: "lix_sdk",
72
- snapshot_content: {
73
- value: "hello world",
74
- },
75
- },
76
- ]);
77
- // Test UPDATE via lix_internal_state_vtable
78
- await db
79
- .updateTable("lix_internal_state_vtable")
80
- .set({
81
- snapshot_content: JSON.stringify({
82
- value: "hello world - updated",
83
- }),
84
- })
85
- .where("entity_id", "=", "e0")
86
- .where("schema_key", "=", "mock_schema")
87
- .where("file_id", "=", "f0")
88
- .execute();
89
- const viewAfterUpdate = await db
90
- .selectFrom("lix_internal_state_vtable")
91
- .where("schema_key", "=", "mock_schema")
92
- .orderBy("entity_id")
93
- .orderBy("version_id")
94
- .select([
95
- "entity_id",
96
- "file_id",
97
- "schema_key",
98
- "plugin_key",
99
- sql `json(snapshot_content)`.as("snapshot_content"),
100
- ])
101
- .execute();
102
- expect(viewAfterUpdate).toMatchObject([
103
- {
104
- entity_id: "e0",
105
- file_id: "f0",
106
- schema_key: "mock_schema",
107
- plugin_key: "lix_sdk",
108
- snapshot_content: {
109
- value: "hello world - updated",
110
- },
111
- },
112
- ]);
113
- // Test DELETE via lix_internal_state_vtable
114
- await db
115
- .deleteFrom("lix_internal_state_vtable")
116
- .where("entity_id", "=", "e0")
117
- .where("version_id", "=", db.selectFrom("active_version").select("version_id"))
118
- .where("schema_key", "=", "mock_schema")
119
- .execute();
120
- const viewAfterDelete = await db
121
- .selectFrom("lix_internal_state_vtable")
122
- .where("schema_key", "=", "mock_schema")
123
- .where("snapshot_content", "is not", null)
124
- .orderBy("entity_id")
125
- .orderBy("version_id")
126
- .selectAll()
127
- .execute();
128
- expect(viewAfterDelete).toHaveLength(0);
129
- });
130
- simulationTest("writer_key persists on insert/update and clears on update without writer", async ({ openSimulatedLix, expectDeterministic }) => {
131
- const lix = await openSimulatedLix({
132
- keyValues: [
133
- {
134
- key: "lix_deterministic_mode",
135
- value: { enabled: true },
136
- lixcol_version_id: "global",
137
- },
138
- ],
139
- });
140
- const mockSchema = {
141
- "x-lix-key": "mock_schema_writer",
142
- "x-lix-version": "1.0",
143
- type: "object",
144
- additionalProperties: false,
145
- properties: { value: { type: "string" } },
146
- };
147
- await lix.db
148
- .insertInto("stored_schema")
149
- .values({ value: mockSchema })
150
- .execute();
151
- const db = lix.db;
152
- const ME = "testapp:state#me";
153
- // Insert with writer via withWriterKey helper
154
- await withWriterKey(db, ME, (trx) => trx
155
- .insertInto("lix_internal_state_vtable")
156
- .values({
157
- entity_id: "w1",
158
- file_id: "f1",
159
- schema_key: "mock_schema_writer",
160
- plugin_key: "test_plugin",
161
- schema_version: "1.0",
162
- version_id: sql `(SELECT version_id FROM active_version)`,
163
- snapshot_content: JSON.stringify({ value: "A" }),
164
- untracked: 0,
165
- })
166
- .execute());
167
- const afterInsert = await db
168
- .selectFrom("lix_internal_state_vtable")
169
- .where("entity_id", "=", "w1")
170
- .orderBy("entity_id")
171
- .orderBy("version_id")
172
- .select([
173
- "entity_id",
174
- sql `writer_key`.as("writer_key"),
175
- sql `json(snapshot_content)`.as("snapshot_content"),
176
- ])
177
- .executeTakeFirstOrThrow();
178
- expectDeterministic(afterInsert.writer_key).toBe(ME);
179
- expectDeterministic(afterInsert.snapshot_content).toEqual({ value: "A" });
180
- // Update with different writer via withWriterKey helper
181
- await withWriterKey(db, `${ME}-2`, (trx) => trx
182
- .updateTable("lix_internal_state_vtable")
183
- .set({ snapshot_content: JSON.stringify({ value: "B" }) })
184
- .where("entity_id", "=", "w1")
185
- .where("schema_key", "=", "mock_schema_writer")
186
- .where("file_id", "=", "f1")
187
- .execute());
188
- const afterUpdateWithWriter = await db
189
- .selectFrom("lix_internal_state_vtable")
190
- .where("entity_id", "=", "w1")
191
- .orderBy("entity_id")
192
- .orderBy("version_id")
193
- .select([
194
- sql `writer_key`.as("writer_key"),
195
- sql `json(snapshot_content)`.as("snapshot_content"),
196
- ])
197
- .executeTakeFirstOrThrow();
198
- expectDeterministic(afterUpdateWithWriter.writer_key).toBe(`${ME}-2`);
199
- expectDeterministic(afterUpdateWithWriter.snapshot_content).toEqual({
200
- value: "B",
201
- });
202
- // Update WITHOUT writer_key should clear writer (delete writer row)
203
- await db
204
- .updateTable("lix_internal_state_vtable")
205
- .set({ snapshot_content: JSON.stringify({ value: "C" }) })
206
- .where("entity_id", "=", "w1")
207
- .where("schema_key", "=", "mock_schema_writer")
208
- .where("file_id", "=", "f1")
209
- .execute();
210
- const afterUpdateNoWriter = await db
211
- .selectFrom("lix_internal_state_vtable")
212
- .where("entity_id", "=", "w1")
213
- .orderBy("entity_id")
214
- .orderBy("version_id")
215
- .select([
216
- sql `writer_key`.as("writer_key"),
217
- sql `json(snapshot_content)`.as("snapshot_content"),
218
- ])
219
- .executeTakeFirstOrThrow();
220
- expectDeterministic(afterUpdateNoWriter.writer_key).toBeNull();
221
- expectDeterministic(afterUpdateNoWriter.snapshot_content).toEqual({
222
- value: "C",
223
- });
224
- });
225
- simulationTest("writer_key on delete: provided writer retained on tombstone; missing writer clears", async ({ openSimulatedLix, expectDeterministic }) => {
226
- const lix = await openSimulatedLix({
227
- keyValues: [
228
- {
229
- key: "lix_deterministic_mode",
230
- value: { enabled: true },
231
- lixcol_version_id: "global",
232
- },
233
- ],
234
- });
235
- const mockSchema = {
236
- "x-lix-key": "mock_schema_writer_del",
237
- "x-lix-version": "1.0",
238
- type: "object",
239
- additionalProperties: false,
240
- properties: { value: { type: "string" } },
241
- };
242
- await lix.db
243
- .insertInto("stored_schema")
244
- .values({ value: mockSchema })
245
- .execute();
246
- const db = lix.db;
247
- const ME = "testapp:state#me";
248
- // Insert tracked row (no writer yet)
249
- await db
250
- .insertInto("lix_internal_state_vtable")
251
- .values({
252
- entity_id: "wd1",
253
- file_id: "fd",
254
- schema_key: "mock_schema_writer_del",
255
- plugin_key: "test_plugin",
256
- schema_version: "1.0",
257
- version_id: sql `(SELECT version_id FROM active_version)`,
258
- snapshot_content: JSON.stringify({ value: "L" }),
259
- untracked: 0,
260
- })
261
- .execute();
262
- // Delete WITH writer via withWriterKey helper
263
- await withWriterKey(db, `${ME}-del`, (trx) => trx
264
- .deleteFrom("lix_internal_state_vtable")
265
- .where("entity_id", "=", "wd1")
266
- .where("schema_key", "=", "mock_schema_writer_del")
267
- .where("file_id", "=", "fd")
268
- .where("version_id", "=", trx.selectFrom("active_version").select("version_id"))
269
- .execute());
270
- const tombstoneWithWriter = await db
271
- .selectFrom("lix_internal_state_vtable")
272
- .where("entity_id", "=", "wd1")
273
- .where("schema_key", "=", "mock_schema_writer_del")
274
- .where("file_id", "=", "fd")
275
- .orderBy("entity_id")
276
- .orderBy("version_id")
277
- .select([sql `writer_key`.as("writer_key"), "snapshot_content"])
278
- .executeTakeFirstOrThrow();
279
- expectDeterministic(tombstoneWithWriter.snapshot_content).toBeNull();
280
- expectDeterministic(tombstoneWithWriter.writer_key).toBe(`${ME}-del`);
281
- // Recreate and delete WITHOUT writer -> writer row cleared
282
- await db
283
- .insertInto("lix_internal_state_vtable")
284
- .values({
285
- entity_id: "wd1",
286
- file_id: "fd",
287
- schema_key: "mock_schema_writer_del",
288
- plugin_key: "test_plugin",
289
- schema_version: "1.0",
290
- version_id: sql `(SELECT version_id FROM active_version)`,
291
- snapshot_content: JSON.stringify({ value: "X" }),
292
- untracked: 0,
293
- })
294
- .execute();
295
- await db
296
- .deleteFrom("lix_internal_state_vtable")
297
- .where("entity_id", "=", "wd1")
298
- .where("schema_key", "=", "mock_schema_writer_del")
299
- .where("file_id", "=", "fd")
300
- .where("version_id", "=", db.selectFrom("active_version").select("version_id"))
301
- .execute();
302
- const tombstoneNoWriter = await db
303
- .selectFrom("lix_internal_state_vtable")
304
- .where("entity_id", "=", "wd1")
305
- .where("schema_key", "=", "mock_schema_writer_del")
306
- .where("file_id", "=", "fd")
307
- .orderBy("entity_id")
308
- .orderBy("version_id")
309
- .select([sql `writer_key`.as("writer_key"), "snapshot_content"])
310
- .executeTakeFirstOrThrow();
311
- expectDeterministic(tombstoneNoWriter.snapshot_content).toBeNull();
312
- expectDeterministic(tombstoneNoWriter.writer_key).toBeNull();
313
- });
314
- simulationTest("inheritance exposes parent writer when child has no local writer; child override replaces", async ({ openSimulatedLix, expectDeterministic }) => {
315
- const lix = await openSimulatedLix({
316
- keyValues: [
317
- {
318
- key: "lix_deterministic_mode",
319
- value: { enabled: true },
320
- lixcol_version_id: "global",
321
- },
322
- ],
323
- });
324
- const mockSchema = {
325
- "x-lix-key": "mock_schema_writer_inherit",
326
- "x-lix-version": "1.0",
327
- type: "object",
328
- additionalProperties: false,
329
- properties: { value: { type: "string" } },
330
- };
331
- await lix.db
332
- .insertInto("stored_schema")
333
- .values({ value: mockSchema })
334
- .execute();
335
- const db = lix.db;
336
- const child = await createVersion({ lix, name: "child" });
337
- const P = "app:state#parent";
338
- const C = "app:state#child";
339
- // Insert in parent with writer P
340
- await withWriterKey(db, P, (trx) => trx
341
- .insertInto("lix_internal_state_vtable")
342
- .values({
343
- entity_id: "wi1",
344
- file_id: "fi1",
345
- schema_key: "mock_schema_writer_inherit",
346
- plugin_key: "tp",
347
- schema_version: "1.0",
348
- version_id: "global",
349
- snapshot_content: JSON.stringify({ value: "parent" }),
350
- untracked: 0,
351
- })
352
- .execute());
353
- // Child inherits content; should expose parent's writer_key
354
- const inherited = await db
355
- .selectFrom("lix_internal_state_vtable")
356
- .where("entity_id", "=", "wi1")
357
- .where("version_id", "=", child.id)
358
- .orderBy("entity_id")
359
- .orderBy("version_id")
360
- .select([
361
- sql `writer_key`.as("writer_key"),
362
- sql `json(snapshot_content)`.as("snapshot_content"),
363
- "inherited_from_version_id",
364
- ])
365
- .executeTakeFirstOrThrow();
366
- expectDeterministic(inherited.snapshot_content).toEqual({
367
- value: "parent",
368
- });
369
- expectDeterministic(inherited.inherited_from_version_id).toBe("global");
370
- expectDeterministic(inherited.writer_key).toBe(P);
371
- // Now override in child with its own writer C
372
- await withWriterKey(db, C, (trx) => trx
373
- .insertInto("lix_internal_state_vtable")
374
- .values({
375
- entity_id: "wi1",
376
- file_id: "fi1",
377
- schema_key: "mock_schema_writer_inherit",
378
- plugin_key: "tp",
379
- schema_version: "1.0",
380
- version_id: child.id,
381
- snapshot_content: JSON.stringify({ value: "child" }),
382
- untracked: 0,
383
- })
384
- .execute());
385
- const childNow = await db
386
- .selectFrom("lix_internal_state_vtable")
387
- .where("entity_id", "=", "wi1")
388
- .where("version_id", "=", child.id)
389
- .orderBy("entity_id")
390
- .orderBy("version_id")
391
- .select([
392
- sql `writer_key`.as("writer_key"),
393
- sql `json(snapshot_content)`.as("snapshot_content"),
394
- "inherited_from_version_id",
395
- ])
396
- .executeTakeFirstOrThrow();
397
- expectDeterministic(childNow.snapshot_content).toEqual({ value: "child" });
398
- expectDeterministic(childNow.inherited_from_version_id).toBeNull();
399
- expectDeterministic(childNow.writer_key).toBe(C);
400
- });
401
- simulationTest("writer_key exposed on state/state_by_version/state_with_tombstones", async ({ openSimulatedLix, expectDeterministic }) => {
402
- const lix = await openSimulatedLix({
403
- keyValues: [
404
- {
405
- key: "lix_deterministic_mode",
406
- value: { enabled: true },
407
- lixcol_version_id: "global",
408
- },
409
- ],
410
- });
411
- const mockSchema = {
412
- "x-lix-key": "mock_schema_writer_views",
413
- "x-lix-version": "1.0",
414
- type: "object",
415
- additionalProperties: false,
416
- properties: { value: { type: "string" } },
417
- };
418
- await lix.db
419
- .insertInto("stored_schema")
420
- .values({ value: mockSchema })
421
- .execute();
422
- const db = lix.db;
423
- const ME = "app:state#me";
424
- // Insert with writer via withWriterKey helper
425
- await withWriterKey(db, ME, (trx) => trx
426
- .insertInto("lix_internal_state_vtable")
427
- .values({
428
- entity_id: "vw1",
429
- file_id: "fv",
430
- schema_key: "mock_schema_writer_views",
431
- plugin_key: "tp",
432
- schema_version: "1.0",
433
- version_id: sql `(SELECT version_id FROM active_version)`,
434
- snapshot_content: JSON.stringify({ value: "X" }),
435
- untracked: 0,
436
- })
437
- .execute());
438
- // state_by_version
439
- const sAll = await db
440
- .selectFrom("state_by_version")
441
- .where("entity_id", "=", "vw1")
442
- .select(["entity_id", sql `writer_key`.as("writer_key")])
443
- .executeTakeFirstOrThrow();
444
- expectDeterministic(sAll.writer_key).toBe(ME);
445
- // state (active)
446
- const s = await db
447
- .selectFrom("state")
448
- .where("entity_id", "=", "vw1")
449
- .select(["entity_id", sql `writer_key`.as("writer_key")])
450
- .executeTakeFirstOrThrow();
451
- expectDeterministic(s.writer_key).toBe(ME);
452
- // state_with_tombstones should expose writer_key as well
453
- const swt = await db
454
- .selectFrom("state_with_tombstones")
455
- .where("entity_id", "=", "vw1")
456
- .select(["entity_id", sql `writer_key`.as("writer_key")])
457
- .executeTakeFirstOrThrow();
458
- expectDeterministic(swt.writer_key).toBe(ME);
459
- });
460
- simulationTest("exposes tracked deletions as tombstones (NULL snapshot_content)", async ({ openSimulatedLix, expectDeterministic }) => {
461
- const lix = await openSimulatedLix({
462
- keyValues: [
463
- {
464
- key: "lix_deterministic_mode",
465
- value: { enabled: true },
466
- lixcol_version_id: "global",
467
- },
468
- ],
469
- });
470
- const mockSchema = {
471
- "x-lix-key": "mock_schema_tombstone",
472
- "x-lix-version": "1.0",
473
- type: "object",
474
- additionalProperties: false,
475
- properties: {
476
- value: { type: "string" },
477
- },
478
- };
479
- await lix.db
480
- .insertInto("stored_schema")
481
- .values({ value: mockSchema })
482
- .execute();
483
- const db = lix.db;
484
- // Insert a tracked row via the vtable into the active version
485
- await db
486
- .insertInto("lix_internal_state_vtable")
487
- .values({
488
- entity_id: "e_tomb",
489
- file_id: "f_tomb",
490
- schema_key: "mock_schema_tombstone",
491
- plugin_key: "test_plugin",
492
- schema_version: "1.0",
493
- version_id: sql `(SELECT version_id FROM active_version)`,
494
- snapshot_content: JSON.stringify({ value: "live" }),
495
- untracked: 0,
496
- })
497
- .execute();
498
- // Delete it via the vtable in the active version (creates a tracked tombstone)
499
- await db
500
- .deleteFrom("lix_internal_state_vtable")
501
- .where("entity_id", "=", "e_tomb")
502
- .where("schema_key", "=", "mock_schema_tombstone")
503
- .where("file_id", "=", "f_tomb")
504
- .where("version_id", "=", db.selectFrom("active_version").select("version_id"))
505
- .execute();
506
- // Default filter (snapshot_content IS NOT NULL) would hide the deletion; ensure tombstone is exposed
507
- const rows = await db
508
- .selectFrom("lix_internal_state_vtable")
509
- .where("entity_id", "=", "e_tomb")
510
- .where("schema_key", "=", "mock_schema_tombstone")
511
- .where("file_id", "=", "f_tomb")
512
- .orderBy("entity_id")
513
- .orderBy("version_id")
514
- .select([
515
- "entity_id",
516
- "schema_key",
517
- "file_id",
518
- "version_id",
519
- "change_id",
520
- "commit_id",
521
- "snapshot_content",
522
- ])
523
- .execute();
524
- expect(rows).toHaveLength(1);
525
- expect(rows[0]?.change_id).toBeTruthy();
526
- expect(rows[0]?.commit_id).toBeTruthy();
527
- const sanitizedRows = rows.map(({ change_id: _ignoredChangeId, commit_id: _ignoredCommitId, ...rest }) => rest);
528
- expectDeterministic(sanitizedRows).toEqual([
529
- {
530
- entity_id: "e_tomb",
531
- schema_key: "mock_schema_tombstone",
532
- file_id: "f_tomb",
533
- version_id: "boot_0000000000",
534
- snapshot_content: null,
535
- },
536
- ]);
537
- });
538
- simulationTest("delete ALL via vtable should delete untracked entities in active version", async ({ openSimulatedLix, expectDeterministic }) => {
539
- const lix = await openSimulatedLix({
540
- keyValues: [
541
- {
542
- key: "lix_deterministic_mode",
543
- value: { enabled: true },
544
- lixcol_version_id: "global",
545
- },
546
- ],
547
- });
548
- const db = lix.db;
549
- const mockSchema = {
550
- "x-lix-key": "mock_test_schema",
551
- "x-lix-version": "1.0",
552
- type: "object",
553
- additionalProperties: false,
554
- properties: {
555
- value: { type: "string" },
556
- },
557
- };
558
- await lix.db
559
- .insertInto("stored_schema")
560
- .values({ value: mockSchema })
561
- .execute();
562
- // Create a tracked entity in active version
563
- await db
564
- .insertInto("lix_internal_state_vtable")
565
- .values({
566
- entity_id: "tracked-entity",
567
- schema_key: "mock_test_schema",
568
- file_id: "test-file",
569
- plugin_key: "test_plugin",
570
- snapshot_content: JSON.stringify({ value: "tracked" }),
571
- schema_version: "1.0",
572
- version_id: sql `(SELECT version_id FROM active_version)`,
573
- untracked: 0,
574
- })
575
- .execute();
576
- // Create an untracked entity in active version
577
- await db
578
- .insertInto("lix_internal_state_vtable")
579
- .values({
580
- entity_id: "untracked-entity",
581
- schema_key: "mock_test_schema",
582
- file_id: "test-file",
583
- plugin_key: "test_plugin",
584
- snapshot_content: JSON.stringify({ value: "untracked" }),
585
- schema_version: "1.0",
586
- version_id: sql `(SELECT version_id FROM active_version)`,
587
- untracked: 1,
588
- })
589
- .execute();
590
- // Verify both exist in vtable
591
- const beforeDelete = await db
592
- .selectFrom("lix_internal_state_vtable")
593
- .where("schema_key", "=", "mock_test_schema")
594
- .orderBy("entity_id")
595
- .orderBy("version_id")
596
- .select(["entity_id"])
597
- .execute();
598
- expectDeterministic(beforeDelete).toHaveLength(2);
599
- // Delete all entities of schema in active version
600
- await db
601
- .deleteFrom("lix_internal_state_vtable")
602
- .where("schema_key", "=", "mock_test_schema")
603
- .where("version_id", "=", db.selectFrom("active_version").select("version_id"))
604
- .execute();
605
- // Check both were deleted in vtable
606
- const afterDelete = await db
607
- .selectFrom("lix_internal_state_vtable")
608
- .where("schema_key", "=", "mock_test_schema")
609
- .where("snapshot_content", "is not", null)
610
- .orderBy("entity_id")
611
- .orderBy("version_id")
612
- .selectAll()
613
- .execute();
614
- expectDeterministic(afterDelete).toHaveLength(0);
615
- });
616
- simulationTest("delete via vtable with WHERE should delete only untracked entities in active version", async ({ openSimulatedLix, expectDeterministic }) => {
617
- const lix = await openSimulatedLix({
618
- keyValues: [
619
- {
620
- key: "lix_deterministic_mode",
621
- value: { enabled: true },
622
- lixcol_version_id: "global",
623
- },
624
- ],
625
- });
626
- const db = lix.db;
627
- const mockSchema = {
628
- "x-lix-key": "mock_test_schema",
629
- "x-lix-version": "1.0",
630
- type: "object",
631
- additionalProperties: false,
632
- properties: {
633
- value: { type: "string" },
634
- },
635
- };
636
- await lix.db
637
- .insertInto("stored_schema")
638
- .values({ value: mockSchema })
639
- .execute();
640
- // Create a tracked entity in active version
641
- await db
642
- .insertInto("lix_internal_state_vtable")
643
- .values({
644
- entity_id: "tracked-entity",
645
- schema_key: "mock_test_schema",
646
- file_id: "test-file",
647
- plugin_key: "test_plugin",
648
- snapshot_content: JSON.stringify({ value: "tracked" }),
649
- schema_version: "1.0",
650
- version_id: sql `(SELECT version_id FROM active_version)`,
651
- untracked: 0,
652
- })
653
- .execute();
654
- // Create an untracked entity in active version
655
- await db
656
- .insertInto("lix_internal_state_vtable")
657
- .values({
658
- entity_id: "untracked-entity",
659
- schema_key: "mock_test_schema",
660
- file_id: "test-file",
661
- plugin_key: "test_plugin",
662
- snapshot_content: JSON.stringify({ value: "untracked" }),
663
- schema_version: "1.0",
664
- version_id: sql `(SELECT version_id FROM active_version)`,
665
- untracked: 1,
666
- })
667
- .execute();
668
- // Verify both exist in the vtable
669
- const beforeDelete = await db
670
- .selectFrom("lix_internal_state_vtable")
671
- .where("schema_key", "=", "mock_test_schema")
672
- .orderBy("entity_id")
673
- .orderBy("version_id")
674
- .select(["entity_id"])
675
- .execute();
676
- expectDeterministic(beforeDelete).toHaveLength(2);
677
- // Delete the untracked entity by id in active version
678
- await db
679
- .deleteFrom("lix_internal_state_vtable")
680
- .where("entity_id", "=", "untracked-entity")
681
- .where("version_id", "=", db.selectFrom("active_version").select("version_id"))
682
- .execute();
683
- // Should only have the tracked entity remaining
684
- const afterDelete = await db
685
- .selectFrom("lix_internal_state_vtable")
686
- .where("schema_key", "=", "mock_test_schema")
687
- .orderBy("entity_id")
688
- .orderBy("version_id")
689
- .select(["entity_id"])
690
- .execute();
691
- expectDeterministic(afterDelete).toHaveLength(1);
692
- expectDeterministic(afterDelete[0]?.entity_id).toBe("tracked-entity");
693
- // Confirm the untracked entry is gone in vtable
694
- const stateAfterDelete = await db
695
- .selectFrom("lix_internal_state_vtable")
696
- .where("entity_id", "=", "untracked-entity")
697
- .where("schema_key", "=", "mock_test_schema")
698
- .orderBy("entity_id")
699
- .orderBy("version_id")
700
- .selectAll()
701
- .execute();
702
- expectDeterministic(stateAfterDelete).toHaveLength(0);
703
- });
704
- // see https://github.com/opral/lix-sdk/issues/359
705
- simulationTest("commit_id in state should be from the real auto-commit, not the working commit", async ({ openSimulatedLix, expectDeterministic }) => {
706
- const lix = await openSimulatedLix({
707
- keyValues: [
708
- {
709
- key: "lix_deterministic_mode",
710
- value: { enabled: true },
711
- lixcol_version_id: "global",
712
- },
713
- ],
714
- });
715
- // Get the active version with its commit_id and working_commit_id
716
- const activeVersion = await lix.db
717
- .selectFrom("active_version")
718
- .innerJoin("version", "version.id", "active_version.version_id")
719
- .selectAll("version")
720
- .executeTakeFirstOrThrow();
721
- // Verify we have both commit_id and working_commit_id
722
- expectDeterministic(activeVersion.commit_id).toBeTruthy();
723
- expectDeterministic(activeVersion.working_commit_id).toBeTruthy();
724
- expectDeterministic(activeVersion.commit_id).not.toBe(activeVersion.working_commit_id);
725
- const db = lix.db;
726
- const testSchema = {
727
- "x-lix-key": "test_schema",
728
- "x-lix-version": "1.0",
729
- type: "object",
730
- additionalProperties: false,
731
- properties: {
732
- value: { type: "string" },
733
- },
734
- };
735
- await lix.db
736
- .insertInto("stored_schema")
737
- .values({ value: testSchema })
738
- .execute();
739
- const commitsBeforeInsert = await lix.db
740
- .selectFrom("commit")
741
- .select("id")
742
- .execute();
743
- // Insert some state data via lix_internal_state_vtable
744
- await db
745
- .insertInto("lix_internal_state_vtable")
746
- .values({
747
- entity_id: "test-entity-1",
748
- schema_key: "test_schema",
749
- file_id: "test-file",
750
- plugin_key: "test-plugin",
751
- schema_version: "1.0",
752
- snapshot_content: JSON.stringify({ value: "initial value" }),
753
- version_id: sql `(SELECT version_id FROM active_version)`,
754
- untracked: 0,
755
- })
756
- .execute();
757
- const activeVersionAfterInsert = await lix.db
758
- .selectFrom("active_version")
759
- .innerJoin("version", "active_version.version_id", "version.id")
760
- .selectAll("version")
761
- .executeTakeFirstOrThrow();
762
- // expect the version to be identical
763
- expect(activeVersionAfterInsert).toBeDefined();
764
- // Query to check the commit_id via vtable
765
- const stateAfterInsert = await db
766
- .selectFrom("lix_internal_state_vtable")
767
- .where("entity_id", "=", "test-entity-1")
768
- .orderBy("entity_id")
769
- .orderBy("version_id")
770
- .select(["entity_id", "commit_id"])
771
- .executeTakeFirstOrThrow();
772
- expect(stateAfterInsert).toBeDefined();
773
- // The commit_id should NOT be the working_commit_id
774
- expect(stateAfterInsert.commit_id).not.toBe(activeVersionAfterInsert.working_commit_id);
775
- // The commit_id should be the auto-commit ID (not the working commit)
776
- expect(stateAfterInsert.commit_id).toBe(activeVersionAfterInsert.commit_id);
777
- const commitsAfterInsert = await lix.db
778
- .selectFrom("commit")
779
- .select("id")
780
- .execute();
781
- expectDeterministic(commitsAfterInsert.length).toBe(commitsBeforeInsert.length + 1);
782
- // Update the state via vtable to trigger another auto-commit
783
- await db
784
- .updateTable("lix_internal_state_vtable")
785
- .where("entity_id", "=", "test-entity-1")
786
- .set({ snapshot_content: JSON.stringify({ value: "updated value" }) })
787
- .execute();
788
- // Check again
789
- const stateAfterUpdate = await db
790
- .selectFrom("lix_internal_state_vtable")
791
- .where("entity_id", "=", "test-entity-1")
792
- .orderBy("entity_id")
793
- .orderBy("version_id")
794
- .select(["entity_id", "commit_id"])
795
- .executeTakeFirstOrThrow();
796
- const activeVersionAfterUpdate = await lix.db
797
- .selectFrom("active_version")
798
- .innerJoin("version", "active_version.version_id", "version.id")
799
- .selectAll("version")
800
- .executeTakeFirstOrThrow();
801
- // The commit_id should now be the new auto-commit ID
802
- expect(stateAfterUpdate.commit_id).toBe(activeVersionAfterUpdate.commit_id);
803
- expect(stateAfterUpdate.commit_id).not.toBe(activeVersion.working_commit_id);
804
- });
805
- simulationTest("metadata on committed state rows is preserved", async ({ openSimulatedLix }) => {
806
- const lix = await openSimulatedLix({
807
- keyValues: [
808
- {
809
- key: "lix_deterministic_mode",
810
- value: { enabled: true },
811
- lixcol_version_id: "global",
812
- },
813
- ],
814
- });
815
- const selectStateMetadata = async () => await lix.db
816
- .selectFrom("state_by_version")
817
- .where("entity_id", "=", "meta-entity")
818
- .where("schema_key", "=", "lix_key_value")
819
- .select(["metadata"])
820
- .executeTakeFirstOrThrow();
821
- const selectChangeMetadata = async () => await lix.db
822
- .selectFrom("change")
823
- .where("entity_id", "=", "meta-entity")
824
- .where("schema_key", "=", "lix_key_value")
825
- .orderBy("created_at", "desc")
826
- .select(["metadata"])
827
- .executeTakeFirstOrThrow();
828
- // Perform a regular insert via the public state view
829
- await lix.db
830
- .insertInto("state")
831
- .values({
832
- entity_id: "meta-entity",
833
- schema_key: "lix_key_value",
834
- file_id: "lix",
835
- plugin_key: "lix_sdk",
836
- snapshot_content: { key: "meta", value: "value" },
837
- schema_version: "1.0",
838
- metadata: { foo: "bar" },
839
- })
840
- .execute();
841
- expect((await selectStateMetadata()).metadata).toEqual({ foo: "bar" });
842
- expect((await selectChangeMetadata()).metadata).toEqual({ foo: "bar" });
843
- // Updating metadata via state should persist the new value
844
- await lix.db
845
- .updateTable("state")
846
- .set({ metadata: { foo: "baz" } })
847
- .where("entity_id", "=", "meta-entity")
848
- .where("schema_key", "=", "lix_key_value")
849
- .where("file_id", "=", "lix")
850
- .execute();
851
- expect((await selectStateMetadata()).metadata).toEqual({ foo: "baz" });
852
- expect((await selectChangeMetadata()).metadata).toEqual({ foo: "baz" });
853
- // Partially update metadata using SQL JSON helpers
854
- await lix.db
855
- .updateTable("state")
856
- .set(({ eb }) => ({
857
- metadata: sql `json_set(${eb.ref("metadata")}, '$.bar', 'qux')`,
858
- }))
859
- .where("entity_id", "=", "meta-entity")
860
- .where("schema_key", "=", "lix_key_value")
861
- .where("file_id", "=", "lix")
862
- .execute();
863
- expect((await selectStateMetadata()).metadata).toEqual({
864
- foo: "baz",
865
- bar: "qux",
866
- });
867
- expect((await selectChangeMetadata()).metadata).toEqual({
868
- foo: "baz",
869
- bar: "qux",
870
- });
871
- // Clearing metadata via state should propagate null
872
- await lix.db
873
- .updateTable("state")
874
- .set({ metadata: null })
875
- .where("entity_id", "=", "meta-entity")
876
- .where("schema_key", "=", "lix_key_value")
877
- .where("file_id", "=", "lix")
878
- .execute();
879
- expect((await selectStateMetadata()).metadata).toBeNull();
880
- expect((await selectChangeMetadata()).metadata).toBeNull();
881
- }, { simulations: [normalSimulation] });
882
- simulationTest("untracked state in child overrides inherited untracked state", async ({ openSimulatedLix, expectDeterministic }) => {
883
- const lix = await openSimulatedLix({
884
- keyValues: [
885
- {
886
- key: "lix_deterministic_mode",
887
- value: { enabled: true },
888
- lixcol_version_id: "global",
889
- },
890
- ],
891
- });
892
- const mockSchema = {
893
- "x-lix-key": "mock_schema",
894
- "x-lix-version": "1.0",
895
- type: "object",
896
- additionalProperties: false,
897
- properties: {
898
- value: { type: "string" },
899
- },
900
- };
901
- await lix.db
902
- .insertInto("stored_schema")
903
- .values({ value: mockSchema })
904
- .execute();
905
- const db = lix.db;
906
- const childVersion = await createVersion({ lix, name: "child" });
907
- // 1. Insert untracked state in global version
908
- await db
909
- .insertInto("lix_internal_state_vtable")
910
- .values({
911
- entity_id: "untracked_override_test",
912
- file_id: "f1",
913
- schema_key: "mock_schema",
914
- plugin_key: "p1",
915
- schema_version: "1.0",
916
- snapshot_content: JSON.stringify({ value: "global untracked" }),
917
- version_id: "global",
918
- untracked: 1,
919
- })
920
- .execute();
921
- // 2. Verify child inherits untracked state
922
- const inheritedState = await db
923
- .selectFrom("lix_internal_state_vtable")
924
- .where("entity_id", "=", "untracked_override_test")
925
- .where("version_id", "=", childVersion.id)
926
- .orderBy("entity_id")
927
- .orderBy("version_id")
928
- .select([sql `json(snapshot_content)`.as("snapshot_content"), "untracked"])
929
- .execute();
930
- expectDeterministic(inheritedState).toHaveLength(1);
931
- expectDeterministic(inheritedState[0]?.snapshot_content).toEqual({
932
- value: "global untracked",
933
- });
934
- expectDeterministic(inheritedState[0]?.untracked).toBe(1);
935
- // 3. Insert untracked state in child version for same entity
936
- await db
937
- .insertInto("lix_internal_state_vtable")
938
- .values({
939
- entity_id: "untracked_override_test",
940
- file_id: "f1",
941
- schema_key: "mock_schema",
942
- plugin_key: "p1",
943
- schema_version: "1.0",
944
- snapshot_content: JSON.stringify({ value: "child untracked" }),
945
- version_id: childVersion.id,
946
- untracked: 1,
947
- })
948
- .execute();
949
- // 4. Verify child now sees its own untracked state
950
- const finalState = await db
951
- .selectFrom("lix_internal_state_vtable")
952
- .where("entity_id", "=", "untracked_override_test")
953
- .where("version_id", "=", childVersion.id)
954
- .orderBy("entity_id")
955
- .orderBy("version_id")
956
- .select([sql `json(snapshot_content)`.as("snapshot_content"), "untracked"])
957
- .execute();
958
- expectDeterministic(finalState).toHaveLength(1);
959
- expectDeterministic(finalState[0]?.snapshot_content).toEqual({
960
- value: "child untracked",
961
- });
962
- expectDeterministic(finalState[0]?.untracked).toBe(1);
963
- });
964
- simulationTest("tracked state in child overrides inherited untracked state", async ({ openSimulatedLix, expectDeterministic }) => {
965
- const lix = await openSimulatedLix({
966
- keyValues: [
967
- {
968
- key: "lix_deterministic_mode",
969
- value: { enabled: true },
970
- lixcol_version_id: "global",
971
- },
972
- ],
973
- });
974
- const mockSchema = {
975
- "x-lix-key": "mock_schema",
976
- "x-lix-version": "1.0",
977
- type: "object",
978
- additionalProperties: false,
979
- properties: {
980
- value: { type: "string" },
981
- },
982
- };
983
- await lix.db
984
- .insertInto("stored_schema")
985
- .values({ value: mockSchema })
986
- .execute();
987
- const db = lix.db;
988
- const childVersion = await createVersion({ lix, name: "child" });
989
- // 1. Insert untracked state in global version
990
- await db
991
- .insertInto("lix_internal_state_vtable")
992
- .values({
993
- entity_id: "override_test",
994
- file_id: "f1",
995
- schema_key: "mock_schema",
996
- plugin_key: "p1",
997
- schema_version: "1.0",
998
- snapshot_content: JSON.stringify({ value: "global untracked" }),
999
- version_id: "global",
1000
- untracked: 1,
1001
- })
1002
- .execute();
1003
- // 2. Verify child inherits untracked state
1004
- const inheritedState = await db
1005
- .selectFrom("lix_internal_state_vtable")
1006
- .where("entity_id", "=", "override_test")
1007
- .where("version_id", "=", childVersion.id)
1008
- .orderBy("entity_id")
1009
- .orderBy("version_id")
1010
- .select([
1011
- sql `json(snapshot_content)`.as("snapshot_content"),
1012
- "untracked",
1013
- "inherited_from_version_id",
1014
- ])
1015
- .execute();
1016
- expectDeterministic(inheritedState).toHaveLength(1);
1017
- expectDeterministic(inheritedState[0]?.snapshot_content).toEqual({
1018
- value: "global untracked",
1019
- });
1020
- expectDeterministic(inheritedState[0]?.untracked).toBe(1);
1021
- expectDeterministic(inheritedState[0]?.inherited_from_version_id).toBe("global");
1022
- // 3. Insert tracked state in child version for same entity
1023
- await db
1024
- .insertInto("lix_internal_state_vtable")
1025
- .values({
1026
- entity_id: "override_test",
1027
- file_id: "f1",
1028
- schema_key: "mock_schema",
1029
- plugin_key: "p1",
1030
- schema_version: "1.0",
1031
- snapshot_content: JSON.stringify({ value: "child tracked" }),
1032
- version_id: childVersion.id,
1033
- untracked: 0,
1034
- })
1035
- .execute();
1036
- // 4. Verify child now sees tracked state, not inherited untracked
1037
- const finalState = await db
1038
- .selectFrom("lix_internal_state_vtable")
1039
- .where("entity_id", "=", "override_test")
1040
- .where("version_id", "=", childVersion.id)
1041
- .orderBy("entity_id")
1042
- .orderBy("version_id")
1043
- .select([sql `json(snapshot_content)`.as("snapshot_content"), "untracked"])
1044
- .execute();
1045
- expectDeterministic(finalState).toHaveLength(1);
1046
- expectDeterministic(finalState[0]?.snapshot_content).toEqual({
1047
- value: "child tracked",
1048
- });
1049
- expectDeterministic(finalState[0]?.untracked).toBe(0); // Should be tracked
1050
- });
1051
- simulationTest("untracked state has untracked change_id for both inherited and non-inherited entities", async ({ openSimulatedLix, expectDeterministic }) => {
1052
- const lix = await openSimulatedLix({
1053
- keyValues: [
1054
- {
1055
- key: "lix_deterministic_mode",
1056
- value: { enabled: true },
1057
- lixcol_version_id: "global",
1058
- },
1059
- ],
1060
- });
1061
- const mockSchema = {
1062
- "x-lix-key": "mock_schema",
1063
- "x-lix-version": "1.0",
1064
- type: "object",
1065
- additionalProperties: false,
1066
- properties: {
1067
- value: { type: "string" },
1068
- },
1069
- };
1070
- await lix.db
1071
- .insertInto("stored_schema")
1072
- .values({ value: mockSchema })
1073
- .execute();
1074
- const db = lix.db;
1075
- const childVersion = await createVersion({ lix, name: "child" });
1076
- // 1. Insert untracked state in global version (will be inherited by child)
1077
- await db
1078
- .insertInto("lix_internal_state_vtable")
1079
- .values({
1080
- entity_id: "inherited-entity",
1081
- file_id: "test-file",
1082
- schema_key: "mock_schema",
1083
- plugin_key: "test_plugin",
1084
- schema_version: "1.0",
1085
- snapshot_content: JSON.stringify({ value: "global untracked" }),
1086
- version_id: "global",
1087
- untracked: 1,
1088
- })
1089
- .execute();
1090
- // 2. Insert untracked state directly in child version (non-inherited)
1091
- await db
1092
- .insertInto("lix_internal_state_vtable")
1093
- .values({
1094
- entity_id: "non-inherited-entity",
1095
- file_id: "test-file",
1096
- schema_key: "mock_schema",
1097
- plugin_key: "test_plugin",
1098
- schema_version: "1.0",
1099
- snapshot_content: JSON.stringify({ value: "child untracked" }),
1100
- version_id: childVersion.id,
1101
- untracked: 1,
1102
- })
1103
- .execute();
1104
- // 3. Query all untracked entities in child version
1105
- const untrackedEntities = await db
1106
- .selectFrom("lix_internal_state_vtable")
1107
- .where("version_id", "=", childVersion.id)
1108
- .where("entity_id", "in", ["inherited-entity", "non-inherited-entity"])
1109
- .where("untracked", "=", 1)
1110
- .orderBy("_pk")
1111
- .select(["entity_id", "change_id"])
1112
- .execute();
1113
- expectDeterministic(untrackedEntities).toHaveLength(2);
1114
- // 4. Check that both entities have untracked change_id
1115
- for (const entity of untrackedEntities) {
1116
- expectDeterministic(entity.change_id).toBe("untracked");
1117
- }
1118
- // 5. Verify specific entities
1119
- const inheritedEntity = untrackedEntities.find((e) => e.entity_id === "inherited-entity");
1120
- const nonInheritedEntity = untrackedEntities.find((e) => e.entity_id === "non-inherited-entity");
1121
- expectDeterministic(inheritedEntity).toBeDefined();
1122
- expectDeterministic(nonInheritedEntity).toBeDefined();
1123
- // Both inherited and non-inherited untracked entities should have change_id = "untracked"
1124
- expectDeterministic(inheritedEntity?.change_id).toBe("untracked");
1125
- expectDeterministic(nonInheritedEntity?.change_id).toBe("untracked");
1126
- });
1127
- simulationTest("lix_internal_state_vtable inherits untracked state from parent version into child", async ({ openSimulatedLix, expectDeterministic }) => {
1128
- const lix = await openSimulatedLix({
1129
- keyValues: [
1130
- {
1131
- key: "lix_deterministic_mode",
1132
- value: { enabled: true },
1133
- lixcol_version_id: "global",
1134
- },
1135
- ],
1136
- });
1137
- const mockSchema = {
1138
- "x-lix-key": "mock_schema",
1139
- "x-lix-version": "1.0",
1140
- type: "object",
1141
- additionalProperties: false,
1142
- properties: {
1143
- value: { type: "string" },
1144
- },
1145
- };
1146
- await lix.db
1147
- .insertInto("stored_schema")
1148
- .values({ value: mockSchema })
1149
- .execute();
1150
- const db = lix.db;
1151
- // Get active child version id
1152
- const activeVersion = await db
1153
- .selectFrom("active_version")
1154
- .innerJoin("version", "active_version.version_id", "version.id")
1155
- .selectAll("version")
1156
- .executeTakeFirstOrThrow();
1157
- // Insert untracked entity into global version (parent)
1158
- await db
1159
- .insertInto("lix_internal_state_vtable")
1160
- .values({
1161
- file_id: "test-file",
1162
- schema_key: "mock_schema",
1163
- plugin_key: "test_plugin",
1164
- schema_version: "1.0",
1165
- entity_id: "test_key",
1166
- snapshot_content: JSON.stringify({ value: "test_value" }),
1167
- version_id: "global",
1168
- untracked: 1,
1169
- })
1170
- .execute();
1171
- // Read from global (parent)
1172
- const globalState = await db
1173
- .selectFrom("lix_internal_state_vtable")
1174
- .where("entity_id", "=", "test_key")
1175
- .where("version_id", "=", "global")
1176
- .orderBy("entity_id")
1177
- .orderBy("version_id")
1178
- .select([sql `json(snapshot_content)`.as("snapshot_content")])
1179
- .executeTakeFirstOrThrow();
1180
- expectDeterministic(globalState).toBeDefined();
1181
- // Read from child active version (should inherit from global)
1182
- const versionState = await db
1183
- .selectFrom("lix_internal_state_vtable")
1184
- .where("entity_id", "=", "test_key")
1185
- .where("version_id", "=", activeVersion.id)
1186
- .orderBy("entity_id")
1187
- .orderBy("version_id")
1188
- .select([
1189
- sql `json(snapshot_content)`.as("snapshot_content"),
1190
- "inherited_from_version_id",
1191
- ])
1192
- .executeTakeFirstOrThrow();
1193
- expectDeterministic(versionState).toBeDefined();
1194
- expectDeterministic(versionState.snapshot_content).toEqual(globalState.snapshot_content);
1195
- expectDeterministic(versionState.inherited_from_version_id).toBe("global");
1196
- });
1197
- simulationTest("untracked state overrides inherited state (untracked > inherited)", async ({ openSimulatedLix, expectDeterministic }) => {
1198
- const lix = await openSimulatedLix({
1199
- keyValues: [
1200
- {
1201
- key: "lix_deterministic_mode",
1202
- value: { enabled: true },
1203
- lixcol_version_id: "global",
1204
- },
1205
- ],
1206
- });
1207
- const mockSchema = {
1208
- "x-lix-key": "mock_schema",
1209
- "x-lix-version": "1.0",
1210
- type: "object",
1211
- additionalProperties: false,
1212
- properties: {
1213
- value: { type: "string" },
1214
- },
1215
- };
1216
- await lix.db
1217
- .insertInto("stored_schema")
1218
- .values({ value: mockSchema })
1219
- .execute();
1220
- const db = lix.db;
1221
- // Step 1: Insert entity in global version (tracked)
1222
- await db
1223
- .insertInto("lix_internal_state_vtable")
1224
- .values({
1225
- entity_id: "inherited-entity",
1226
- file_id: "test-file",
1227
- schema_key: "mock_schema",
1228
- plugin_key: "test_plugin",
1229
- schema_version: "1.0",
1230
- version_id: "global",
1231
- snapshot_content: JSON.stringify({ value: "inherited value" }),
1232
- untracked: 0,
1233
- })
1234
- .execute();
1235
- // Step 2: Create a child version that inherits from global
1236
- const childVersion = await createVersion({ lix, name: "child-version" });
1237
- // Verify inheritance is set up correctly
1238
- expectDeterministic(childVersion.inherits_from_version_id).toBe("global");
1239
- // Step 3: Verify child initially sees inherited entity
1240
- const inheritedState = await db
1241
- .selectFrom("lix_internal_state_vtable")
1242
- .where("entity_id", "=", "inherited-entity")
1243
- .where("version_id", "=", childVersion.id)
1244
- .orderBy("entity_id")
1245
- .orderBy("version_id")
1246
- .select([
1247
- sql `json(snapshot_content)`.as("snapshot_content"),
1248
- "inherited_from_version_id",
1249
- ])
1250
- .execute();
1251
- expectDeterministic(inheritedState).toHaveLength(1);
1252
- expectDeterministic(inheritedState[0]?.snapshot_content).toEqual({
1253
- value: "inherited value",
1254
- });
1255
- expectDeterministic(inheritedState[0]?.inherited_from_version_id).toBe("global");
1256
- // Step 4: Add untracked state for same entity in child version
1257
- await db
1258
- .insertInto("lix_internal_state_vtable")
1259
- .values({
1260
- entity_id: "inherited-entity",
1261
- file_id: "test-file",
1262
- schema_key: "mock_schema",
1263
- plugin_key: "test_plugin",
1264
- schema_version: "1.0",
1265
- version_id: childVersion.id,
1266
- snapshot_content: JSON.stringify({ value: "untracked override" }),
1267
- untracked: 1,
1268
- })
1269
- .execute();
1270
- // Step 5: Query should return untracked state (higher priority than inherited)
1271
- const finalState = await db
1272
- .selectFrom("lix_internal_state_vtable")
1273
- .where("entity_id", "=", "inherited-entity")
1274
- .where("version_id", "=", childVersion.id)
1275
- .orderBy("entity_id")
1276
- .orderBy("version_id")
1277
- .select([
1278
- sql `json(snapshot_content)`.as("snapshot_content"),
1279
- "inherited_from_version_id",
1280
- "version_id",
1281
- ])
1282
- .execute();
1283
- expect(finalState).toHaveLength(1);
1284
- const sanitizedFinalState = finalState.map(({ version_id: _ignoredVersionId, ...rest }) => rest);
1285
- expectDeterministic(sanitizedFinalState).toEqual([
1286
- {
1287
- snapshot_content: { value: "untracked override" },
1288
- inherited_from_version_id: null,
1289
- },
1290
- ]);
1291
- expect(finalState[0]?.version_id).toBe(childVersion.id);
1292
- // Step 6: Verify the inherited entity still exists in global version (unchanged)
1293
- const globalState = await db
1294
- .selectFrom("lix_internal_state_vtable")
1295
- .where("entity_id", "=", "inherited-entity")
1296
- .where("version_id", "=", "global")
1297
- .orderBy("entity_id")
1298
- .orderBy("version_id")
1299
- .select([
1300
- sql `json(snapshot_content)`.as("snapshot_content"),
1301
- "inherited_from_version_id",
1302
- ])
1303
- .execute();
1304
- expectDeterministic(globalState).toHaveLength(1);
1305
- expectDeterministic(globalState[0]?.snapshot_content).toEqual({
1306
- value: "inherited value",
1307
- });
1308
- expectDeterministic(globalState[0]?.inherited_from_version_id).toBe(null);
1309
- // Step 7: No changes should be created for untracked mutations
1310
- const changes = await db
1311
- .selectFrom("change")
1312
- .where("entity_id", "=", "inherited-entity")
1313
- .where("schema_key", "=", "mock_schema")
1314
- .selectAll()
1315
- .execute();
1316
- expect(changes).toHaveLength(1);
1317
- });
1318
- simulationTest("untracked state has highest priority in UNION (untracked > tracked > inherited)", async ({ openSimulatedLix, expectDeterministic }) => {
1319
- const lix = await openSimulatedLix({
1320
- keyValues: [
1321
- {
1322
- key: "lix_deterministic_mode",
1323
- value: { enabled: true },
1324
- lixcol_version_id: "global",
1325
- },
1326
- ],
1327
- });
1328
- const mockSchema = {
1329
- "x-lix-key": "mock_schema",
1330
- "x-lix-version": "1.0",
1331
- type: "object",
1332
- additionalProperties: false,
1333
- properties: {
1334
- value: {
1335
- type: "string",
1336
- },
1337
- },
1338
- };
1339
- await lix.db
1340
- .insertInto("stored_schema")
1341
- .values({ value: mockSchema })
1342
- .execute();
1343
- const db = lix.db;
1344
- // Step 1: Insert tracked state with "init"
1345
- await db
1346
- .insertInto("lix_internal_state_vtable")
1347
- .values({
1348
- entity_id: "entity0",
1349
- file_id: "test-file",
1350
- schema_key: "mock_schema",
1351
- plugin_key: "test_plugin",
1352
- schema_version: "1.0",
1353
- version_id: sql `(SELECT version_id FROM active_version)`,
1354
- snapshot_content: JSON.stringify({ value: "init" }),
1355
- untracked: 0,
1356
- })
1357
- .execute();
1358
- // Verify tracked state exists
1359
- const afterInit = await db
1360
- .selectFrom("lix_internal_state_vtable")
1361
- .where("entity_id", "=", "entity0")
1362
- .orderBy("entity_id")
1363
- .orderBy("version_id")
1364
- .select([sql `json(snapshot_content)`.as("snapshot_content")])
1365
- .execute();
1366
- expectDeterministic(afterInit).toHaveLength(1);
1367
- expectDeterministic(afterInit[0]?.snapshot_content).toEqual({
1368
- value: "init",
1369
- });
1370
- // Step 2: Update to untracked state with "update" (should NOT delete tracked state)
1371
- await db
1372
- .updateTable("lix_internal_state_vtable")
1373
- .set({
1374
- snapshot_content: JSON.stringify({ value: "update" }),
1375
- untracked: 1,
1376
- })
1377
- .where("entity_id", "=", "entity0")
1378
- .where("schema_key", "=", "mock_schema")
1379
- .where("file_id", "=", "test-file")
1380
- .execute();
1381
- // Step 3: Query should return untracked state "update" (highest priority)
1382
- const afterUntrackedUpdate = await db
1383
- .selectFrom("lix_internal_state_vtable")
1384
- .where("entity_id", "=", "entity0")
1385
- .orderBy("entity_id")
1386
- .orderBy("version_id")
1387
- .select([sql `json(snapshot_content)`.as("snapshot_content")])
1388
- .execute();
1389
- expectDeterministic(afterUntrackedUpdate).toHaveLength(1);
1390
- expectDeterministic(afterUntrackedUpdate[0]?.snapshot_content).toEqual({
1391
- value: "update",
1392
- });
1393
- // Step 4: Update back to tracked state with "update2" (should delete untracked state)
1394
- await db
1395
- .updateTable("lix_internal_state_vtable")
1396
- .set({
1397
- snapshot_content: JSON.stringify({ value: "update2" }),
1398
- untracked: 0,
1399
- })
1400
- .where("entity_id", "=", "entity0")
1401
- .where("schema_key", "=", "mock_schema")
1402
- .where("file_id", "=", "test-file")
1403
- .execute();
1404
- // Step 5: Query should return tracked state "update2"
1405
- const afterTrackedUpdate = await db
1406
- .selectFrom("lix_internal_state_vtable")
1407
- .where("entity_id", "=", "entity0")
1408
- .orderBy("entity_id")
1409
- .orderBy("version_id")
1410
- .select([sql `json(snapshot_content)`.as("snapshot_content")])
1411
- .execute();
1412
- expectDeterministic(afterTrackedUpdate).toHaveLength(1);
1413
- expectDeterministic(afterTrackedUpdate[0]?.snapshot_content).toEqual({
1414
- value: "update2",
1415
- });
1416
- // Verify that a change was created for the final tracked mutation
1417
- const changes = await db
1418
- .selectFrom("change")
1419
- .where("entity_id", "=", "entity0")
1420
- .where("schema_key", "=", "mock_schema")
1421
- .selectAll()
1422
- .execute();
1423
- expectDeterministic(changes.length).toBeGreaterThan(0);
1424
- });
1425
- simulationTest("deleting without filtering for the version_id deletes the entity from all versions", async ({ openSimulatedLix, expectDeterministic }) => {
1426
- const lix = await openSimulatedLix({
1427
- keyValues: [
1428
- {
1429
- key: "lix_deterministic_mode",
1430
- value: { enabled: true },
1431
- lixcol_version_id: "global",
1432
- },
1433
- ],
1434
- });
1435
- // Insert an entity into global version via vtable
1436
- const db = lix.db;
1437
- const testSchema = {
1438
- "x-lix-key": "test_schema",
1439
- "x-lix-version": "1.0",
1440
- type: "object",
1441
- additionalProperties: false,
1442
- properties: {
1443
- id: { type: "string" },
1444
- name: { type: "string" },
1445
- },
1446
- required: ["id", "name"],
1447
- };
1448
- await lix.db
1449
- .insertInto("stored_schema")
1450
- .values({ value: testSchema })
1451
- .execute();
1452
- await db
1453
- .insertInto("lix_internal_state_vtable")
1454
- .values({
1455
- entity_id: "shared-entity",
1456
- file_id: "test-file",
1457
- schema_key: "test_schema",
1458
- plugin_key: "test_plugin",
1459
- snapshot_content: JSON.stringify({
1460
- id: "shared-entity",
1461
- name: "Global Entity",
1462
- }),
1463
- schema_version: "1.0",
1464
- version_id: "global",
1465
- untracked: 0,
1466
- })
1467
- .execute();
1468
- // Create a child version that inherits from global
1469
- const childVersion = await createVersion({
1470
- lix,
1471
- name: "child-version",
1472
- inheritsFrom: { id: "global" },
1473
- });
1474
- // Verify inheritance - both global and child should see the entity via vtable
1475
- const beforeDelete = await db
1476
- .selectFrom("lix_internal_state_vtable")
1477
- .where("entity_id", "=", "shared-entity")
1478
- .where("version_id", "in", ["global", childVersion.id])
1479
- .orderBy("entity_id")
1480
- .orderBy("version_id")
1481
- .select([
1482
- "entity_id",
1483
- "version_id",
1484
- "inherited_from_version_id",
1485
- sql `json(snapshot_content)`.as("snapshot_content"),
1486
- ])
1487
- .execute();
1488
- expect(beforeDelete).toHaveLength(2);
1489
- expect(beforeDelete).toEqual(expect.arrayContaining([
1490
- expect.objectContaining({
1491
- entity_id: "shared-entity",
1492
- version_id: "global",
1493
- inherited_from_version_id: null,
1494
- snapshot_content: { id: "shared-entity", name: "Global Entity" },
1495
- }),
1496
- expect.objectContaining({
1497
- entity_id: "shared-entity",
1498
- version_id: childVersion.id,
1499
- inherited_from_version_id: "global",
1500
- snapshot_content: {
1501
- id: "shared-entity",
1502
- name: "Global Entity",
1503
- },
1504
- }),
1505
- ]));
1506
- // Delete across versions by not filtering by version_id should fail
1507
- await expect(db
1508
- .deleteFrom("lix_internal_state_vtable")
1509
- .where("entity_id", "=", "shared-entity")
1510
- .where("schema_key", "=", "test_schema")
1511
- .execute()).rejects.toThrow(/inherited/);
1512
- const afterDelete = await db
1513
- .selectFrom("lix_internal_state_vtable")
1514
- .where("entity_id", "=", "shared-entity")
1515
- .where("version_id", "in", ["global", childVersion.id])
1516
- .orderBy("entity_id")
1517
- .orderBy("version_id")
1518
- .select([
1519
- "entity_id",
1520
- "version_id",
1521
- "inherited_from_version_id",
1522
- sql `json(snapshot_content)`.as("snapshot_content"),
1523
- ])
1524
- .execute();
1525
- // Both versions should still have the entity untouched
1526
- expectDeterministic(afterDelete).toEqual(expect.arrayContaining([
1527
- expect.objectContaining({
1528
- entity_id: "shared-entity",
1529
- version_id: "global",
1530
- inherited_from_version_id: null,
1531
- snapshot_content: { id: "shared-entity", name: "Global Entity" },
1532
- }),
1533
- expect.objectContaining({
1534
- entity_id: "shared-entity",
1535
- version_id: childVersion.id,
1536
- inherited_from_version_id: "global",
1537
- snapshot_content: {
1538
- id: "shared-entity",
1539
- name: "Global Entity",
1540
- },
1541
- }),
1542
- ]));
1543
- });
1544
- simulationTest("untracked state is persisted across lix openings", async ({ openSimulatedLix, expectDeterministic }) => {
1545
- const mockSchema = {
1546
- "x-lix-key": "mock_schema",
1547
- "x-lix-version": "1.0",
1548
- type: "object",
1549
- additionalProperties: false,
1550
- properties: {
1551
- value: {
1552
- type: "string",
1553
- },
1554
- },
1555
- };
1556
- // First session - create and insert untracked state via vtable
1557
- const lix1 = await openSimulatedLix({
1558
- keyValues: [
1559
- {
1560
- key: "lix_deterministic_mode",
1561
- value: { enabled: true },
1562
- lixcol_version_id: "global",
1563
- },
1564
- ],
1565
- });
1566
- await lix1.db
1567
- .insertInto("stored_schema")
1568
- .values({ value: mockSchema })
1569
- .execute();
1570
- const db1 = lix1.db;
1571
- await db1
1572
- .insertInto("lix_internal_state_vtable")
1573
- .values({
1574
- entity_id: "persistent-entity",
1575
- file_id: "test-file",
1576
- schema_key: "mock_schema",
1577
- plugin_key: "test_plugin",
1578
- schema_version: "1.0",
1579
- version_id: sql `(SELECT version_id FROM active_version)`,
1580
- snapshot_content: JSON.stringify({
1581
- value: "persistent untracked value",
1582
- }),
1583
- untracked: 1,
1584
- })
1585
- .execute();
1586
- // Second session - verify untracked state persists
1587
- const lix2 = await openLix({ blob: await lix1.toBlob() });
1588
- const db2 = lix2.db;
1589
- const persistedState = await db2
1590
- .selectFrom("lix_internal_state_vtable")
1591
- .where("entity_id", "=", "persistent-entity")
1592
- .orderBy("entity_id")
1593
- .orderBy("version_id")
1594
- .select([sql `json(snapshot_content)`.as("snapshot_content")])
1595
- .execute();
1596
- expectDeterministic(persistedState).toHaveLength(1);
1597
- expectDeterministic(persistedState[0]?.snapshot_content).toEqual({
1598
- value: "persistent untracked value",
1599
- });
1600
- await lix2.close();
1601
- });
1602
- simulationTest("child version inherits entities from parent version", async ({ openSimulatedLix, expectDeterministic }) => {
1603
- const lix = await openSimulatedLix({
1604
- keyValues: [
1605
- {
1606
- key: "lix_deterministic_mode",
1607
- value: { enabled: true },
1608
- lixcol_version_id: "global",
1609
- },
1610
- ],
1611
- });
1612
- const testSchema = {
1613
- "x-lix-key": "test_schema",
1614
- "x-lix-version": "1.0",
1615
- type: "object",
1616
- additionalProperties: false,
1617
- properties: {
1618
- id: { type: "string" },
1619
- name: { type: "string" },
1620
- },
1621
- required: ["id", "name"],
1622
- };
1623
- await lix.db
1624
- .insertInto("stored_schema")
1625
- .values({ value: testSchema })
1626
- .execute();
1627
- // Insert an entity into global version
1628
- await lix.db
1629
- .insertInto("state_by_version")
1630
- .values({
1631
- entity_id: "global-entity-1",
1632
- file_id: "test-file",
1633
- schema_key: "test_schema",
1634
- plugin_key: "test_plugin",
1635
- version_id: "global",
1636
- snapshot_content: {
1637
- id: "global-entity-1",
1638
- name: "Global Entity",
1639
- },
1640
- schema_version: "1.0",
1641
- })
1642
- .execute();
1643
- // Create a child version that inherits from global
1644
- const childVersion = await createVersion({
1645
- lix,
1646
- name: "child-version",
1647
- });
1648
- // Verify inheritance was set up correctly
1649
- expectDeterministic(childVersion.inherits_from_version_id).toBe("global");
1650
- // The child version should inherit the entity from global
1651
- const inheritedEntity = await lix.db
1652
- .selectFrom("state_by_version")
1653
- .where("entity_id", "=", "global-entity-1")
1654
- .where("version_id", "=", childVersion.id)
1655
- .selectAll()
1656
- .execute();
1657
- // This should pass - the entity should be visible in the child version via inheritance
1658
- expect(inheritedEntity).toHaveLength(1);
1659
- expect(inheritedEntity[0]?.entity_id).toBe("global-entity-1");
1660
- expect(inheritedEntity[0]?.version_id).toBe(childVersion.id); // Should return child version ID
1661
- expect(inheritedEntity[0]?.inherited_from_version_id).toBe("global"); // Should track inheritance source
1662
- expect(inheritedEntity[0]?.snapshot_content).toEqual({
1663
- id: "global-entity-1",
1664
- name: "Global Entity",
1665
- });
1666
- });
1667
- // Mutating inherited state comes with substantial mental overhead like:
1668
- //
1669
- // - "I deleted this entity, why does it still exist?"
1670
- // - "Where is this tombstone coming from?"
1671
- //
1672
- // To keep things simpler, lix prevents mutating inherited state.
1673
- simulationTest("mutating inherited state should throw", async ({ openSimulatedLix }) => {
1674
- const lix = await openSimulatedLix({
1675
- keyValues: [
1676
- {
1677
- key: "lix_deterministic_mode",
1678
- value: { enabled: true },
1679
- lixcol_version_id: "global",
1680
- },
1681
- ],
1682
- });
1683
- const mockSchema = {
1684
- "x-lix-key": "mock_schema_inherited_delete_guard",
1685
- "x-lix-version": "1.0",
1686
- type: "object",
1687
- additionalProperties: false,
1688
- properties: {
1689
- value: { type: "string" },
1690
- },
1691
- };
1692
- await lix.db
1693
- .insertInto("stored_schema")
1694
- .values({ value: mockSchema })
1695
- .execute();
1696
- // Seed entity directly in global version.
1697
- await lix.db
1698
- .insertInto("state_by_version")
1699
- .values({
1700
- entity_id: "inherited-delete-test",
1701
- file_id: "test-file",
1702
- schema_key: mockSchema["x-lix-key"],
1703
- plugin_key: "test_plugin",
1704
- version_id: "global",
1705
- schema_version: mockSchema["x-lix-version"],
1706
- snapshot_content: {
1707
- value: "global seed",
1708
- },
1709
- })
1710
- .execute();
1711
- const db = lix.db;
1712
- const activeVersion = await db
1713
- .selectFrom("active_version")
1714
- .select("version_id")
1715
- .executeTakeFirstOrThrow();
1716
- // Guardrail: mutations from a child version shouldn’t backfill tombstones into the ancestor.
1717
- // Forbidding DELETE here keeps inheritance transparent. Local overrides or explicit clones
1718
- // remain allowed; only direct edits on the inherited shadow are blocked.
1719
- // Sanity check: row resolves as inherited in the active version.
1720
- const inheritedRow = await db
1721
- .selectFrom("lix_internal_state_vtable")
1722
- .select([
1723
- "inherited_from_version_id",
1724
- sql `json(snapshot_content)`.as("snapshot_content"),
1725
- ])
1726
- .where("entity_id", "=", "inherited-delete-test")
1727
- .where("schema_key", "=", mockSchema["x-lix-key"])
1728
- .where("version_id", "=", activeVersion.version_id)
1729
- .executeTakeFirst();
1730
- expect(inheritedRow?.inherited_from_version_id).toBe("global");
1731
- expect(inheritedRow?.snapshot_content).toEqual({ value: "global seed" });
1732
- await expect(db
1733
- .updateTable("lix_internal_state_vtable")
1734
- .set({
1735
- snapshot_content: JSON.stringify({
1736
- value: "attempted inherited edit",
1737
- }),
1738
- })
1739
- .where("entity_id", "=", "inherited-delete-test")
1740
- .where("schema_key", "=", mockSchema["x-lix-key"])
1741
- .where("version_id", "=", activeVersion.version_id)
1742
- .execute()).rejects.toThrow(/inherited/i);
1743
- const rowAfterUpdateAttempt = await db
1744
- .selectFrom("lix_internal_state_vtable")
1745
- .select(sql `json(snapshot_content)`.as("snapshot_content"))
1746
- .where("entity_id", "=", "inherited-delete-test")
1747
- .where("schema_key", "=", mockSchema["x-lix-key"])
1748
- .where("version_id", "=", activeVersion.version_id)
1749
- .executeTakeFirst();
1750
- expect(rowAfterUpdateAttempt?.snapshot_content).toEqual({
1751
- value: "global seed",
1752
- });
1753
- await expect(db
1754
- .deleteFrom("lix_internal_state_vtable")
1755
- .where("entity_id", "=", "inherited-delete-test")
1756
- .where("schema_key", "=", mockSchema["x-lix-key"])
1757
- .where("version_id", "=", activeVersion.version_id)
1758
- .execute()).rejects.toThrow(/inherited/i);
1759
- });
1760
- simulationTest("inherited_from_version_id is read-only", async ({ openSimulatedLix, expectDeterministic }) => {
1761
- const lix = await openSimulatedLix({
1762
- keyValues: [
1763
- {
1764
- key: "lix_deterministic_mode",
1765
- value: { enabled: true },
1766
- lixcol_version_id: "global",
1767
- },
1768
- ],
1769
- });
1770
- const mockSchema = {
1771
- "x-lix-key": "mock_schema_inherited_flag",
1772
- "x-lix-version": "1.0",
1773
- type: "object",
1774
- additionalProperties: false,
1775
- properties: {
1776
- value: { type: "string" },
1777
- },
1778
- };
1779
- await lix.db
1780
- .insertInto("stored_schema")
1781
- .values({ value: mockSchema })
1782
- .execute();
1783
- const db = lix.db;
1784
- const activeVersion = await db
1785
- .selectFrom("active_version")
1786
- .select("version_id")
1787
- .executeTakeFirstOrThrow();
1788
- await db
1789
- .insertInto("lix_internal_state_vtable")
1790
- .values({
1791
- entity_id: "local-entity",
1792
- file_id: "test-file",
1793
- schema_key: mockSchema["x-lix-key"],
1794
- plugin_key: "test_plugin",
1795
- schema_version: mockSchema["x-lix-version"],
1796
- version_id: activeVersion.version_id,
1797
- snapshot_content: JSON.stringify({ value: "local value" }),
1798
- untracked: 0,
1799
- })
1800
- .execute();
1801
- const before = await db
1802
- .selectFrom("lix_internal_state_vtable")
1803
- .select(["inherited_from_version_id"])
1804
- .where("entity_id", "=", "local-entity")
1805
- .where("schema_key", "=", mockSchema["x-lix-key"])
1806
- .where("version_id", "=", activeVersion.version_id)
1807
- .executeTakeFirstOrThrow();
1808
- expectDeterministic(before.inherited_from_version_id).toBeNull();
1809
- await expect(db
1810
- .updateTable("lix_internal_state_vtable")
1811
- .set({ inherited_from_version_id: "global" })
1812
- .where("entity_id", "=", "local-entity")
1813
- .where("schema_key", "=", mockSchema["x-lix-key"])
1814
- .where("version_id", "=", activeVersion.version_id)
1815
- .execute()).rejects.toThrow(/inherited_from_version_id/i);
1816
- const after = await db
1817
- .selectFrom("lix_internal_state_vtable")
1818
- .select(["inherited_from_version_id"])
1819
- .where("entity_id", "=", "local-entity")
1820
- .where("schema_key", "=", mockSchema["x-lix-key"])
1821
- .where("version_id", "=", activeVersion.version_id)
1822
- .executeTakeFirstOrThrow();
1823
- expectDeterministic(after.inherited_from_version_id).toBeNull();
1824
- });
1825
- simulationTest("delete operations are validated for foreign key constraints", async ({ openSimulatedLix, expectDeterministic }) => {
1826
- const lix = await openSimulatedLix({
1827
- keyValues: [
1828
- {
1829
- key: "lix_deterministic_mode",
1830
- value: { enabled: true },
1831
- lixcol_version_id: "global",
1832
- },
1833
- ],
1834
- });
1835
- // Define parent schema (referenced entity)
1836
- const parentSchema = {
1837
- "x-lix-key": "parent_entity",
1838
- "x-lix-version": "1.0",
1839
- "x-lix-primary-key": ["/id"],
1840
- type: "object",
1841
- properties: {
1842
- id: { type: "string" },
1843
- name: { type: "string" },
1844
- },
1845
- required: ["id", "name"],
1846
- additionalProperties: false,
1847
- };
1848
- // Define child schema with foreign key to parent
1849
- const childSchema = {
1850
- "x-lix-key": "child_entity",
1851
- "x-lix-version": "1.0",
1852
- "x-lix-primary-key": ["/id"],
1853
- "x-lix-foreign-keys": [
1854
- {
1855
- properties: ["/parent_id"],
1856
- references: {
1857
- schemaKey: "parent_entity",
1858
- properties: ["/id"],
1859
- },
1860
- },
1861
- ],
1862
- type: "object",
1863
- properties: {
1864
- id: { type: "string" },
1865
- parent_id: { type: "string" },
1866
- value: { type: "string" },
1867
- },
1868
- required: ["id", "parent_id", "value"],
1869
- additionalProperties: false,
1870
- };
1871
- // Register both schemas
1872
- await lix.db
1873
- .insertInto("stored_schema")
1874
- .values([{ value: parentSchema }, { value: childSchema }])
1875
- .execute();
1876
- // Insert parent entity
1877
- await lix.db
1878
- .insertInto("state_by_version")
1879
- .values({
1880
- entity_id: "parent-1",
1881
- schema_key: "parent_entity",
1882
- file_id: "test-file",
1883
- plugin_key: "test-plugin",
1884
- snapshot_content: {
1885
- id: "parent-1",
1886
- name: "Parent Entity",
1887
- },
1888
- schema_version: "1.0",
1889
- version_id: sql `(SELECT version_id FROM active_version)`,
1890
- })
1891
- .execute();
1892
- // Insert child entity that references the parent
1893
- await lix.db
1894
- .insertInto("state_by_version")
1895
- .values({
1896
- entity_id: "child-1",
1897
- schema_key: "child_entity",
1898
- file_id: "test-file",
1899
- plugin_key: "test-plugin",
1900
- snapshot_content: {
1901
- id: "child-1",
1902
- parent_id: "parent-1",
1903
- value: "Child Value",
1904
- },
1905
- schema_version: "1.0",
1906
- version_id: sql `(SELECT version_id FROM active_version)`,
1907
- })
1908
- .execute();
1909
- // Verify both entities exist
1910
- const parentBefore = await lix.db
1911
- .selectFrom("state_by_version")
1912
- .where("entity_id", "=", "parent-1")
1913
- .where("schema_key", "=", "parent_entity")
1914
- .selectAll()
1915
- .execute();
1916
- const childBefore = await lix.db
1917
- .selectFrom("state_by_version")
1918
- .where("entity_id", "=", "child-1")
1919
- .where("schema_key", "=", "child_entity")
1920
- .selectAll()
1921
- .execute();
1922
- expectDeterministic(parentBefore).toHaveLength(1);
1923
- expectDeterministic(childBefore).toHaveLength(1);
1924
- // Attempting to delete the parent entity should fail due to foreign key constraint
1925
- // because there's a child entity that references it
1926
- await expect(lix.db
1927
- .deleteFrom("state_by_version")
1928
- .where("entity_id", "=", "parent-1")
1929
- .where("schema_key", "=", "parent_entity")
1930
- .execute()).rejects.toThrow(/foreign key/i);
1931
- // Verify the parent still exists after failed deletion attempt
1932
- const parentAfter = await lix.db
1933
- .selectFrom("state_by_version")
1934
- .where("entity_id", "=", "parent-1")
1935
- .where("schema_key", "=", "parent_entity")
1936
- .selectAll()
1937
- .execute();
1938
- expectDeterministic(parentAfter).toHaveLength(1);
1939
- });
1940
- simulationTest("validates the schema on insert via lix_internal_state_vtable", async ({ openSimulatedLix }) => {
1941
- const lix = await openSimulatedLix({
1942
- keyValues: [
1943
- {
1944
- key: "lix_deterministic_mode",
1945
- value: { enabled: true },
1946
- lixcol_version_id: "global",
1947
- },
1948
- ],
1949
- });
1950
- const mockSchema = {
1951
- "x-lix-key": "mock_schema",
1952
- "x-lix-version": "1.0",
1953
- type: "object",
1954
- additionalProperties: false,
1955
- properties: {
1956
- value: {
1957
- type: "number",
1958
- },
1959
- },
1960
- };
1961
- await lix.db
1962
- .insertInto("stored_schema")
1963
- .values({ value: mockSchema })
1964
- .execute();
1965
- const db = lix.db;
1966
- // Test that invalid data is rejected by lix_internal_state_vtable
1967
- await expect(db
1968
- .insertInto("lix_internal_state_vtable")
1969
- .values({
1970
- entity_id: "e0",
1971
- file_id: "f0",
1972
- schema_key: "mock_schema",
1973
- plugin_key: "lix_sdk",
1974
- schema_version: "1.0",
1975
- snapshot_content: JSON.stringify({
1976
- value: "hello world", // Should be a number, not a string
1977
- }),
1978
- version_id: sql `(SELECT version_id FROM active_version)`,
1979
- untracked: 0,
1980
- })
1981
- .execute()).rejects.toThrow(/value must be number/);
1982
- });
1983
- simulationTest("validates the schema on update via lix_internal_state_vtable", async ({ openSimulatedLix }) => {
1984
- const lix = await openSimulatedLix({});
1985
- const mockSchema = {
1986
- "x-lix-key": "mock_schema",
1987
- "x-lix-version": "1.0",
1988
- type: "object",
1989
- additionalProperties: false,
1990
- properties: {
1991
- value: {
1992
- type: "number",
1993
- },
1994
- },
1995
- };
1996
- await lix.db
1997
- .insertInto("stored_schema")
1998
- .values({ value: mockSchema })
1999
- .execute();
2000
- const db = lix.db;
2001
- // Insert valid data first
2002
- await db
2003
- .insertInto("lix_internal_state_vtable")
2004
- .values({
2005
- entity_id: "e0",
2006
- file_id: "f0",
2007
- schema_key: "mock_schema",
2008
- plugin_key: "lix_sdk",
2009
- schema_version: "1.0",
2010
- snapshot_content: JSON.stringify({
2011
- value: 5,
2012
- }),
2013
- version_id: sql `(SELECT version_id FROM active_version)`,
2014
- untracked: 0,
2015
- })
2016
- .execute();
2017
- // Test that invalid update is rejected by lix_internal_state_vtable
2018
- await expect(db
2019
- .updateTable("lix_internal_state_vtable")
2020
- .set({
2021
- snapshot_content: JSON.stringify({
2022
- value: "hello world - updated", // Should be a number, not a string
2023
- }),
2024
- })
2025
- .where("entity_id", "=", "e0")
2026
- .where("schema_key", "=", "mock_schema")
2027
- .where("file_id", "=", "f0")
2028
- .execute()).rejects.toThrow(/value must be number/);
2029
- // Verify the data wasn't changed
2030
- const viewAfterFailedUpdate = await db
2031
- .selectFrom("lix_internal_state_vtable")
2032
- .where("schema_key", "=", "mock_schema")
2033
- .orderBy("entity_id")
2034
- .orderBy("version_id")
2035
- .select([
2036
- "entity_id",
2037
- "file_id",
2038
- "schema_key",
2039
- "plugin_key",
2040
- sql `json(snapshot_content)`.as("snapshot_content"),
2041
- ])
2042
- .execute();
2043
- expect(viewAfterFailedUpdate).toMatchObject([
2044
- {
2045
- entity_id: "e0",
2046
- file_id: "f0",
2047
- schema_key: "mock_schema",
2048
- plugin_key: "lix_sdk",
2049
- snapshot_content: {
2050
- value: 5,
2051
- },
2052
- },
2053
- ]);
2054
- });
2055
- simulationTest("file scoped unique constraints allow duplicates across files via lix_internal_state_vtable", async ({ openSimulatedLix, expectDeterministic }) => {
2056
- const lix = await openSimulatedLix({
2057
- keyValues: [
2058
- {
2059
- key: "lix_deterministic_mode",
2060
- value: { enabled: true },
2061
- lixcol_version_id: "global",
2062
- },
2063
- ],
2064
- });
2065
- const constrainedSchema = {
2066
- "x-lix-key": "file_scoped_unique_schema",
2067
- "x-lix-version": "1.0",
2068
- "x-lix-primary-key": ["/id"],
2069
- "x-lix-unique": [["/slug"]],
2070
- type: "object",
2071
- additionalProperties: false,
2072
- required: ["id", "slug"],
2073
- properties: {
2074
- id: { type: "string" },
2075
- slug: { type: "string" },
2076
- },
2077
- };
2078
- await lix.db
2079
- .insertInto("stored_schema")
2080
- .values({ value: constrainedSchema })
2081
- .execute();
2082
- const db = lix.db;
2083
- const activeVersion = await db
2084
- .selectFrom("active_version")
2085
- .select("version_id")
2086
- .executeTakeFirstOrThrow();
2087
- const insertEntity = async (args) => {
2088
- await db
2089
- .insertInto("lix_internal_state_vtable")
2090
- .values({
2091
- entity_id: args.entityId,
2092
- file_id: args.fileId,
2093
- schema_key: constrainedSchema["x-lix-key"],
2094
- plugin_key: "test_plugin",
2095
- schema_version: constrainedSchema["x-lix-version"],
2096
- version_id: activeVersion.version_id,
2097
- snapshot_content: JSON.stringify({
2098
- id: args.entityId,
2099
- slug: args.slug,
2100
- }),
2101
- untracked: 0,
2102
- })
2103
- .execute();
2104
- };
2105
- await insertEntity({
2106
- entityId: "entity-a",
2107
- fileId: "file-a",
2108
- slug: "shared-slug",
2109
- });
2110
- await insertEntity({
2111
- entityId: "entity-b",
2112
- fileId: "file-b",
2113
- slug: "shared-slug",
2114
- });
2115
- const insertedRows = await db
2116
- .selectFrom("lix_internal_state_vtable")
2117
- .where("schema_key", "=", constrainedSchema["x-lix-key"])
2118
- .orderBy("entity_id")
2119
- .orderBy("version_id")
2120
- .select([
2121
- "entity_id",
2122
- "file_id",
2123
- sql `json_extract(snapshot_content, '$.slug')`.as("slug"),
2124
- ])
2125
- .execute();
2126
- expectDeterministic(insertedRows).toEqual([
2127
- { entity_id: "entity-a", file_id: "file-a", slug: "shared-slug" },
2128
- { entity_id: "entity-b", file_id: "file-b", slug: "shared-slug" },
2129
- ]);
2130
- await expect(insertEntity({
2131
- entityId: "entity-c",
2132
- fileId: "file-a",
2133
- slug: "shared-slug",
2134
- })).rejects.toThrow(/unique/i);
2135
- });
2136
- simulationTest("delete operations remove entries from underlying data via lix_internal_state_vtable", async ({ openSimulatedLix }) => {
2137
- const lix = await openSimulatedLix({
2138
- keyValues: [
2139
- {
2140
- key: "lix_deterministic_mode",
2141
- value: { enabled: true },
2142
- lixcol_version_id: "global",
2143
- },
2144
- ],
2145
- });
2146
- const activeVersion = await lix.db
2147
- .selectFrom("active_version")
2148
- .innerJoin("version", "active_version.version_id", "version.id")
2149
- .selectAll("version")
2150
- .executeTakeFirstOrThrow();
2151
- const db = lix.db;
2152
- const deleteSchema = {
2153
- "x-lix-key": "delete_cache_schema",
2154
- "x-lix-version": "1.0",
2155
- type: "object",
2156
- additionalProperties: false,
2157
- properties: {
2158
- to: { type: "string" },
2159
- },
2160
- required: ["to"],
2161
- };
2162
- await lix.db
2163
- .insertInto("stored_schema")
2164
- .values({ value: deleteSchema })
2165
- .execute();
2166
- // Insert initial state via lix_internal_state_vtable
2167
- await db
2168
- .insertInto("lix_internal_state_vtable")
2169
- .values({
2170
- entity_id: "delete-cache-entity",
2171
- schema_key: "delete_cache_schema",
2172
- file_id: "delete-cache-file",
2173
- plugin_key: "delete-plugin",
2174
- snapshot_content: JSON.stringify({ to: "delete" }),
2175
- schema_version: "1.0",
2176
- version_id: sql `(SELECT version_id FROM active_version)`,
2177
- untracked: 0,
2178
- })
2179
- .execute();
2180
- // Verify data exists
2181
- const beforeDelete = await db
2182
- .selectFrom("lix_internal_state_vtable")
2183
- .where("entity_id", "=", "delete-cache-entity")
2184
- .orderBy("entity_id")
2185
- .orderBy("version_id")
2186
- .selectAll()
2187
- .execute();
2188
- expect(beforeDelete).toHaveLength(1);
2189
- // Delete the state via lix_internal_state_vtable
2190
- await db
2191
- .deleteFrom("lix_internal_state_vtable")
2192
- .where("entity_id", "=", "delete-cache-entity")
2193
- .where("schema_key", "=", "delete_cache_schema")
2194
- .where("file_id", "=", "delete-cache-file")
2195
- .where("version_id", "=", activeVersion.id)
2196
- .execute();
2197
- // Data should no longer be accessible
2198
- const afterDelete = await db
2199
- .selectFrom("lix_internal_state_vtable")
2200
- .where("entity_id", "=", "delete-cache-entity")
2201
- .where("snapshot_content", "is not", null)
2202
- .orderBy("entity_id")
2203
- .orderBy("version_id")
2204
- .selectAll()
2205
- .execute();
2206
- expect(afterDelete).toHaveLength(0);
2207
- });
2208
- simulationTest("write-through cache: insert operations populate cache immediately via lix_internal_state_vtable", async ({ openSimulatedLix }) => {
2209
- const lix = await openSimulatedLix({
2210
- keyValues: [
2211
- {
2212
- key: "lix_deterministic_mode",
2213
- value: { enabled: true },
2214
- lixcol_version_id: "global",
2215
- },
2216
- ],
2217
- });
2218
- const activeVersion = await lix.db
2219
- .selectFrom("active_version")
2220
- .innerJoin("version", "active_version.version_id", "version.id")
2221
- .selectAll("version")
2222
- .executeTakeFirstOrThrow();
2223
- const db = lix.db;
2224
- const writeThroughSchema = {
2225
- "x-lix-key": "write_through_schema",
2226
- "x-lix-version": "1.0",
2227
- type: "object",
2228
- additionalProperties: false,
2229
- properties: {
2230
- test: { type: "string" },
2231
- },
2232
- required: ["test"],
2233
- };
2234
- await lix.db
2235
- .insertInto("stored_schema")
2236
- .values({ value: writeThroughSchema })
2237
- .execute();
2238
- // Insert state data via lix_internal_state_vtable - should populate cache
2239
- await db
2240
- .insertInto("lix_internal_state_vtable")
2241
- .values({
2242
- entity_id: "write-through-entity",
2243
- schema_key: "write_through_schema",
2244
- file_id: "write-through-file",
2245
- plugin_key: "write-through-plugin",
2246
- snapshot_content: JSON.stringify({ test: "write-through-data" }),
2247
- schema_version: "1.0",
2248
- version_id: activeVersion.id,
2249
- untracked: 0,
2250
- })
2251
- .execute();
2252
- // Cache should be populated immediately via write-through
2253
- const cacheEntry = await db
2254
- .selectFrom("lix_internal_state_vtable")
2255
- .where("_pk", "like", "C%")
2256
- .where("entity_id", "=", "write-through-entity")
2257
- .where("schema_key", "=", "write_through_schema")
2258
- .where("file_id", "=", "write-through-file")
2259
- .where("version_id", "=", activeVersion.id)
2260
- .selectAll()
2261
- .select(sql `json(snapshot_content)`.as("snapshot_content"))
2262
- .executeTakeFirst();
2263
- expect(cacheEntry).toBeDefined();
2264
- expect(cacheEntry?.entity_id).toBe("write-through-entity");
2265
- expect(cacheEntry?.plugin_key).toBe("write-through-plugin");
2266
- expect(cacheEntry?.snapshot_content).toEqual({
2267
- test: "write-through-data",
2268
- });
2269
- // Virtual table should return the same data
2270
- const stateResults = await db
2271
- .selectFrom("lix_internal_state_vtable")
2272
- .where("entity_id", "=", "write-through-entity")
2273
- .orderBy("entity_id")
2274
- .orderBy("version_id")
2275
- .select(["entity_id", sql `json(snapshot_content)`.as("snapshot_content")])
2276
- .execute();
2277
- expect(stateResults).toHaveLength(1);
2278
- expect(stateResults[0]?.entity_id).toBe("write-through-entity");
2279
- expect(stateResults[0]?.snapshot_content).toEqual({
2280
- test: "write-through-data",
2281
- });
2282
- }, { simulations: [normalSimulation] });
2283
- simulationTest("write-through cache: update operations update cache immediately via lix_internal_state_vtable", async ({ openSimulatedLix }) => {
2284
- const lix = await openSimulatedLix({
2285
- keyValues: [
2286
- {
2287
- key: "lix_deterministic_mode",
2288
- value: { enabled: true },
2289
- lixcol_version_id: "global",
2290
- },
2291
- ],
2292
- });
2293
- const activeVersion = await lix.db
2294
- .selectFrom("active_version")
2295
- .innerJoin("version", "active_version.version_id", "version.id")
2296
- .selectAll("version")
2297
- .executeTakeFirstOrThrow();
2298
- const db = lix.db;
2299
- const updateSchema = {
2300
- "x-lix-key": "update_cache_schema",
2301
- "x-lix-version": "1.0",
2302
- type: "object",
2303
- additionalProperties: false,
2304
- properties: {
2305
- initial: { type: "string" },
2306
- updated: { type: "string" },
2307
- },
2308
- };
2309
- await lix.db
2310
- .insertInto("stored_schema")
2311
- .values({ value: updateSchema })
2312
- .execute();
2313
- // Insert initial state via lix_internal_state_vtable
2314
- await db
2315
- .insertInto("lix_internal_state_vtable")
2316
- .values({
2317
- entity_id: "update-cache-entity",
2318
- schema_key: "update_cache_schema",
2319
- file_id: "update-cache-file",
2320
- plugin_key: "initial-plugin",
2321
- snapshot_content: JSON.stringify({ initial: "value" }),
2322
- schema_version: "1.0",
2323
- version_id: activeVersion.id,
2324
- untracked: 0,
2325
- })
2326
- .execute();
2327
- // Update the state via lix_internal_state_vtable - should update cache
2328
- await db
2329
- .updateTable("lix_internal_state_vtable")
2330
- .set({
2331
- snapshot_content: JSON.stringify({ updated: "value" }),
2332
- plugin_key: "updated-plugin",
2333
- })
2334
- .where("entity_id", "=", "update-cache-entity")
2335
- .where("schema_key", "=", "update_cache_schema")
2336
- .where("file_id", "=", "update-cache-file")
2337
- .where("version_id", "=", activeVersion.id)
2338
- .execute();
2339
- // Cache should be immediately updated
2340
- const cacheEntry = await db
2341
- .selectFrom("lix_internal_state_vtable")
2342
- .where("_pk", "like", "C%")
2343
- .where("entity_id", "=", "update-cache-entity")
2344
- .where("schema_key", "=", "update_cache_schema")
2345
- .where("file_id", "=", "update-cache-file")
2346
- .where("version_id", "=", activeVersion.id)
2347
- .selectAll()
2348
- .select(sql `json(snapshot_content)`.as("snapshot_content"))
2349
- .executeTakeFirst();
2350
- expect(cacheEntry).toBeDefined();
2351
- expect(cacheEntry?.snapshot_content).toEqual({
2352
- updated: "value",
2353
- });
2354
- expect(cacheEntry?.plugin_key).toBe("updated-plugin");
2355
- // Virtual table should return updated data
2356
- const stateResults = await db
2357
- .selectFrom("lix_internal_state_vtable")
2358
- .where("entity_id", "=", "update-cache-entity")
2359
- .orderBy("entity_id")
2360
- .orderBy("version_id")
2361
- .select([
2362
- sql `json(snapshot_content)`.as("snapshot_content"),
2363
- "plugin_key",
2364
- ])
2365
- .execute();
2366
- expect(stateResults).toHaveLength(1);
2367
- expect(stateResults[0]?.snapshot_content).toEqual({ updated: "value" });
2368
- expect(stateResults[0]?.plugin_key).toBe("updated-plugin");
2369
- }, { simulations: [normalSimulation] });
2370
- simulationTest("change.created_at and state timestamps are consistent", async ({ openSimulatedLix }) => {
2371
- const lix = await openSimulatedLix({
2372
- keyValues: [
2373
- {
2374
- key: "lix_deterministic_mode",
2375
- value: { enabled: true },
2376
- lixcol_version_id: "global",
2377
- },
2378
- ],
2379
- });
2380
- const mockSchema = {
2381
- "x-lix-key": "mock_schema",
2382
- "x-lix-version": "1.0",
2383
- type: "object",
2384
- additionalProperties: false,
2385
- properties: {
2386
- value: {
2387
- type: "string",
2388
- },
2389
- },
2390
- };
2391
- await lix.db
2392
- .insertInto("stored_schema")
2393
- .values({ value: mockSchema })
2394
- .execute();
2395
- // Insert state data
2396
- await lix.db
2397
- .insertInto("state_by_version")
2398
- .values({
2399
- entity_id: "timestamp-test-entity",
2400
- schema_key: "mock_schema",
2401
- file_id: "timestamp-test-file",
2402
- plugin_key: "timestamp-test-plugin",
2403
- snapshot_content: { value: "timestamp test" },
2404
- schema_version: "1.0",
2405
- version_id: sql `(SELECT version_id FROM active_version)`,
2406
- })
2407
- .execute();
2408
- // Get the change record
2409
- const changeRecord = await lix.db
2410
- .selectFrom("lix_internal_change")
2411
- .where("entity_id", "=", "timestamp-test-entity")
2412
- .where("schema_key", "=", "mock_schema")
2413
- .select(["created_at"])
2414
- .executeTakeFirstOrThrow();
2415
- // Get the state cache record
2416
- const cacheRecord = await lix.db
2417
- .selectFrom("lix_internal_state_vtable")
2418
- .where("_pk", "like", "C%")
2419
- .where("entity_id", "=", "timestamp-test-entity")
2420
- .where("schema_key", "=", "mock_schema")
2421
- .select(["created_at", "updated_at"])
2422
- .executeTakeFirstOrThrow();
2423
- // Verify all timestamps are identical
2424
- expect(changeRecord.created_at).toBe(cacheRecord.created_at);
2425
- expect(changeRecord.created_at).toBe(cacheRecord.updated_at);
2426
- }, { simulations: [normalSimulation] });
2427
- simulationTest("lix_internal_state_vtable exposes change_id for blame and diff functionality", async ({ openSimulatedLix }) => {
2428
- const lix = await openSimulatedLix({
2429
- keyValues: [
2430
- {
2431
- key: "lix_deterministic_mode",
2432
- value: { enabled: true },
2433
- lixcol_version_id: "global",
2434
- },
2435
- ],
2436
- });
2437
- const mockSchema = {
2438
- "x-lix-key": "mock_schema",
2439
- "x-lix-version": "1.0",
2440
- type: "object",
2441
- additionalProperties: false,
2442
- properties: {
2443
- value: {
2444
- type: "string",
2445
- },
2446
- },
2447
- };
2448
- await lix.db
2449
- .insertInto("stored_schema")
2450
- .values({ value: mockSchema })
2451
- .execute();
2452
- const db = lix.db;
2453
- // Insert initial state via lix_internal_state_vtable (tracked)
2454
- await db
2455
- .insertInto("lix_internal_state_vtable")
2456
- .values({
2457
- entity_id: "change-id-test-entity",
2458
- file_id: "change-id-test-file",
2459
- schema_key: "mock_schema",
2460
- plugin_key: "change-id-test-plugin",
2461
- schema_version: "1.0",
2462
- version_id: sql `(SELECT version_id FROM active_version)`,
2463
- snapshot_content: JSON.stringify({ value: "initial value" }),
2464
- untracked: 0,
2465
- })
2466
- .execute();
2467
- // Query lix_internal_state_vtable to verify change_id is exposed
2468
- const initialResult = await db
2469
- .selectFrom("lix_internal_state_vtable")
2470
- .where("entity_id", "=", "change-id-test-entity")
2471
- .where("schema_key", "=", "mock_schema")
2472
- .where("file_id", "=", "change-id-test-file")
2473
- .orderBy("entity_id")
2474
- .orderBy("version_id")
2475
- .select(["change_id", sql `json(snapshot_content)`.as("snapshot_content")])
2476
- .execute();
2477
- expect(initialResult).toHaveLength(1);
2478
- expect(initialResult[0]?.change_id).toBeDefined();
2479
- expect(typeof initialResult[0]?.change_id).toBe("string");
2480
- // Get the actual change record to verify the change_id
2481
- const changeRecord = await db
2482
- .selectFrom("change")
2483
- .where("entity_id", "=", "change-id-test-entity")
2484
- .where("schema_key", "=", "mock_schema")
2485
- .select(["change.id", "snapshot_content"])
2486
- .executeTakeFirstOrThrow();
2487
- expect(initialResult[0]?.change_id).toBe(changeRecord.id);
2488
- expect(changeRecord.snapshot_content).toEqual({ value: "initial value" });
2489
- expect(initialResult[0]?.snapshot_content).toEqual({
2490
- value: "initial value",
2491
- });
2492
- // Update the entity to create a new change via lix_internal_state_vtable
2493
- await db
2494
- .updateTable("lix_internal_state_vtable")
2495
- .set({
2496
- snapshot_content: JSON.stringify({ value: "updated value" }),
2497
- })
2498
- .where("entity_id", "=", "change-id-test-entity")
2499
- .where("schema_key", "=", "mock_schema")
2500
- .where("file_id", "=", "change-id-test-file")
2501
- .execute();
2502
- // Query again to verify change_id updated after modification
2503
- const updatedResult = await db
2504
- .selectFrom("lix_internal_state_vtable")
2505
- .where("entity_id", "=", "change-id-test-entity")
2506
- .where("schema_key", "=", "mock_schema")
2507
- .where("file_id", "=", "change-id-test-file")
2508
- .orderBy("entity_id")
2509
- .orderBy("version_id")
2510
- .select(["change_id", sql `json(snapshot_content)`.as("snapshot_content")])
2511
- .execute();
2512
- expect(updatedResult).toHaveLength(1);
2513
- expect(updatedResult[0]?.change_id).toBeDefined();
2514
- expect(updatedResult[0]?.change_id).not.toBe(initialResult[0]?.change_id);
2515
- // Get the new change record by matching the change_id from the updated state
2516
- const newChangeRecord = await db
2517
- .selectFrom("change")
2518
- .where("change.id", "=", updatedResult[0].change_id)
2519
- .select(["change.id", "snapshot_content"])
2520
- .executeTakeFirstOrThrow();
2521
- expect(updatedResult[0]?.change_id).toBe(newChangeRecord.id);
2522
- expect(newChangeRecord.snapshot_content).toEqual({
2523
- value: "updated value",
2524
- });
2525
- expect(updatedResult[0]?.snapshot_content).toEqual({
2526
- value: "updated value",
2527
- });
2528
- });
2529
- simulationTest("exposes commit_id for history queries", async ({ expectDeterministic, openSimulatedLix }) => {
2530
- const lix = await openSimulatedLix({
2531
- keyValues: [
2532
- {
2533
- key: "lix_deterministic_mode",
2534
- value: { enabled: true },
2535
- lixcol_version_id: "global",
2536
- },
2537
- ],
2538
- });
2539
- const mockSchema = {
2540
- "x-lix-key": "mock_schema",
2541
- "x-lix-version": "1.0",
2542
- type: "object",
2543
- additionalProperties: false,
2544
- properties: {
2545
- value: {
2546
- type: "string",
2547
- },
2548
- },
2549
- };
2550
- const db = lix.db;
2551
- await db
2552
- .insertInto("stored_schema")
2553
- .values({ value: mockSchema })
2554
- .execute();
2555
- // Insert initial state using Kysely to ensure virtual table is triggered
2556
- await db
2557
- .insertInto("lix_internal_state_vtable")
2558
- .values({
2559
- entity_id: "change-set-id-test-entity",
2560
- schema_key: "mock_schema",
2561
- file_id: "change-set-id-test-file",
2562
- plugin_key: "change-set-id-test-plugin",
2563
- snapshot_content: JSON.stringify({ value: "initial value" }),
2564
- schema_version: "1.0",
2565
- version_id: sql `(SELECT version_id FROM active_version)`,
2566
- untracked: 0,
2567
- })
2568
- .execute();
2569
- const activeVersionAfterInsert = await lix.db
2570
- .selectFrom("active_version")
2571
- .innerJoin("version", "active_version.version_id", "version.id")
2572
- .selectAll("version")
2573
- .executeTakeFirstOrThrow();
2574
- // Query state_by_version view to verify commit_id is exposed
2575
- const stateResult = await db
2576
- .selectFrom("lix_internal_state_vtable")
2577
- .where("entity_id", "=", "change-set-id-test-entity")
2578
- .where("schema_key", "=", "mock_schema")
2579
- .orderBy("entity_id")
2580
- .orderBy("version_id")
2581
- .selectAll()
2582
- .execute();
2583
- expect(stateResult).toHaveLength(1);
2584
- expect(stateResult[0]).toHaveProperty("commit_id");
2585
- expect(stateResult[0]?.commit_id).toBe(activeVersionAfterInsert.commit_id);
2586
- // Get the change_set_element records - there should be two:
2587
- // 1. One in the working change set
2588
- // 2. One in the version's current change set (after commit)
2589
- const changeSetElements = await lix.db
2590
- .selectFrom("change_set_element")
2591
- .where("entity_id", "=", "change-set-id-test-entity")
2592
- .where("schema_key", "=", "mock_schema")
2593
- .where("file_id", "=", "change-set-id-test-file")
2594
- .select(["change_set_id", "change_id"])
2595
- .orderBy("change_set_id")
2596
- .execute();
2597
- expect(changeSetElements).toHaveLength(2);
2598
- // Get the version to understand which change sets we're dealing with
2599
- const version = await lix.db
2600
- .selectFrom("version")
2601
- .where("id", "=", activeVersionAfterInsert.id)
2602
- .select(["id", "commit_id", "working_commit_id"])
2603
- .executeTakeFirstOrThrow();
2604
- // Get the change set ID from the version's commit
2605
- const versionCommit = await lix.db
2606
- .selectFrom("commit")
2607
- .where("id", "=", version.commit_id)
2608
- .selectAll()
2609
- .executeTakeFirstOrThrow();
2610
- // Get the change set ID from the working commit
2611
- const workingCommit = await lix.db
2612
- .selectFrom("commit")
2613
- .where("id", "=", version.working_commit_id)
2614
- .selectAll()
2615
- .executeTakeFirstOrThrow();
2616
- // Find which change_set_element is in the version's change set (not working)
2617
- const versionChangeSetElement = changeSetElements.find((el) => el.change_set_id === versionCommit.change_set_id);
2618
- const workingChangeSetElement = changeSetElements.find((el) => el.change_set_id === workingCommit.change_set_id);
2619
- expect(versionChangeSetElement).toBeDefined();
2620
- expect(workingChangeSetElement).toBeDefined();
2621
- // The state view should show the commit_id from the version,
2622
- // not related to the working change set (which is temporary and not part of the graph)
2623
- expect(stateResult[0]?.commit_id).toBe(version.commit_id);
2624
- // Verify that the change_id also matches for consistency
2625
- expect(stateResult[0]?.change_id).toBe(versionChangeSetElement.change_id);
2626
- });
2627
- simulationTest("transaction table is empty after select, insert, update, delete via lix_internal_state_vtable", async ({ openSimulatedLix, expectDeterministic }) => {
2628
- const lix = await openSimulatedLix({
2629
- keyValues: [
2630
- {
2631
- key: "lix_deterministic_mode",
2632
- value: { enabled: true },
2633
- lixcol_version_id: "global",
2634
- },
2635
- ],
2636
- });
2637
- // Prepare a simple schema for state mutations
2638
- const mockSchema = {
2639
- "x-lix-key": "mock_schema_txn",
2640
- "x-lix-version": "1.0",
2641
- type: "object",
2642
- additionalProperties: false,
2643
- properties: {
2644
- value: { type: "string" },
2645
- },
2646
- };
2647
- await lix.db
2648
- .insertInto("stored_schema")
2649
- .values({ value: mockSchema })
2650
- .execute();
2651
- const db = lix.db;
2652
- // Helper to assert transaction table is empty
2653
- const expectTxnEmpty = async () => {
2654
- const rows = await db
2655
- .selectFrom("lix_internal_transaction_state")
2656
- .selectAll()
2657
- .execute();
2658
- expectDeterministic(rows.length).toBe(0);
2659
- };
2660
- // 1) SELECT should not stage anything
2661
- await db
2662
- .selectFrom("lix_internal_state_vtable")
2663
- .where("schema_key", "=", "mock_schema_txn")
2664
- .orderBy("entity_id")
2665
- .orderBy("version_id")
2666
- .selectAll()
2667
- .execute();
2668
- await expectTxnEmpty();
2669
- // 2) INSERT tracked via lix_internal_state_vtable
2670
- await db
2671
- .insertInto("lix_internal_state_vtable")
2672
- .values({
2673
- entity_id: "e_txn",
2674
- file_id: "f_txn",
2675
- schema_key: "mock_schema_txn",
2676
- plugin_key: "lix_sdk",
2677
- schema_version: "1.0",
2678
- version_id: sql `(SELECT version_id FROM active_version)`,
2679
- snapshot_content: JSON.stringify({ value: "v1" }),
2680
- untracked: 0, // tracked
2681
- })
2682
- .execute();
2683
- await expectTxnEmpty();
2684
- // 3) UPDATE via lix_internal_state_vtable
2685
- await db
2686
- .updateTable("lix_internal_state_vtable")
2687
- .set({ snapshot_content: JSON.stringify({ value: "v2" }) })
2688
- .where("entity_id", "=", "e_txn")
2689
- .where("schema_key", "=", "mock_schema_txn")
2690
- .where("file_id", "=", "f_txn")
2691
- .execute();
2692
- await expectTxnEmpty();
2693
- // 4) DELETE via lix_internal_state_vtable
2694
- await db
2695
- .deleteFrom("lix_internal_state_vtable")
2696
- .where("entity_id", "=", "e_txn")
2697
- .where("schema_key", "=", "mock_schema_txn")
2698
- .where("file_id", "=", "f_txn")
2699
- .execute();
2700
- await expectTxnEmpty();
2701
- });
2702
- simulationTest("untracked mutations don't trigger change control via lix_internal_state_vtable", async ({ openSimulatedLix, expectDeterministic }) => {
2703
- const lix = await openSimulatedLix({
2704
- keyValues: [
2705
- {
2706
- key: "lix_deterministic_mode",
2707
- value: { enabled: true },
2708
- lixcol_version_id: "global",
2709
- },
2710
- ],
2711
- });
2712
- const mockSchema = {
2713
- "x-lix-key": "mock_schema",
2714
- "x-lix-version": "1.0",
2715
- type: "object",
2716
- additionalProperties: false,
2717
- properties: {
2718
- value: {
2719
- type: "string",
2720
- },
2721
- },
2722
- };
2723
- await lix.db
2724
- .insertInto("stored_schema")
2725
- .values({ value: mockSchema })
2726
- .execute();
2727
- const db = lix.db;
2728
- // Count changes before any untracked mutations
2729
- const changesInitial = await db.selectFrom("change").selectAll().execute();
2730
- // 1. INSERT untracked state via lix_internal_state_vtable
2731
- await db
2732
- .insertInto("lix_internal_state_vtable")
2733
- .values({
2734
- entity_id: "untracked-entity",
2735
- file_id: "test-file",
2736
- schema_key: "mock_schema",
2737
- plugin_key: "test_plugin",
2738
- schema_version: "1.0",
2739
- version_id: sql `(SELECT version_id FROM active_version)`,
2740
- snapshot_content: JSON.stringify({
2741
- value: "untracked value",
2742
- }),
2743
- untracked: 1, // untracked
2744
- })
2745
- .execute();
2746
- // Count changes after untracked insert
2747
- const changesAfterInsert = await db
2748
- .selectFrom("change")
2749
- .selectAll()
2750
- .execute();
2751
- // Number of changes should be identical (no change control for untracked)
2752
- expectDeterministic(changesAfterInsert.length).toBe(changesInitial.length);
2753
- // Verify the untracked entity exists in vtable
2754
- const untrackedState = await db
2755
- .selectFrom("lix_internal_state_vtable")
2756
- .where("entity_id", "=", "untracked-entity")
2757
- .orderBy("entity_id")
2758
- .orderBy("version_id")
2759
- .select([
2760
- "entity_id",
2761
- sql `json(snapshot_content)`.as("snapshot_content"),
2762
- "untracked",
2763
- ])
2764
- .execute();
2765
- expectDeterministic(untrackedState).toHaveLength(1);
2766
- expectDeterministic(untrackedState[0]?.snapshot_content).toEqual({
2767
- value: "untracked value",
2768
- });
2769
- expectDeterministic(untrackedState[0]?.untracked).toBe(1);
2770
- // 2. UPDATE untracked state via lix_internal_state_vtable
2771
- await db
2772
- .updateTable("lix_internal_state_vtable")
2773
- .where("entity_id", "=", "untracked-entity")
2774
- .set({
2775
- snapshot_content: JSON.stringify({
2776
- value: "untracked value updated",
2777
- }),
2778
- })
2779
- .execute();
2780
- // Count changes after untracked update
2781
- const changesAfterUpdate = await db
2782
- .selectFrom("change")
2783
- .selectAll()
2784
- .execute();
2785
- // Still no new changes
2786
- expectDeterministic(changesAfterUpdate.length).toBe(changesInitial.length);
2787
- // 3. DELETE untracked state via lix_internal_state_vtable
2788
- await db
2789
- .deleteFrom("lix_internal_state_vtable")
2790
- .where("entity_id", "=", "untracked-entity")
2791
- .execute();
2792
- // Count changes after untracked delete
2793
- const changesAfterDelete = await db
2794
- .selectFrom("change")
2795
- .selectAll()
2796
- .execute();
2797
- // Still no new changes
2798
- expectDeterministic(changesAfterDelete.length).toBe(changesInitial.length);
2799
- });
2800
- simulationTest("tracked update to previously untracked entity deletes untracked state via lix_internal_state_vtable", async ({ openSimulatedLix, expectDeterministic }) => {
2801
- const lix = await openSimulatedLix({
2802
- keyValues: [
2803
- {
2804
- key: "lix_deterministic_mode",
2805
- value: { enabled: true },
2806
- lixcol_version_id: "global",
2807
- },
2808
- ],
2809
- });
2810
- const mockSchema = {
2811
- "x-lix-key": "mock_schema",
2812
- "x-lix-version": "1.0",
2813
- type: "object",
2814
- additionalProperties: false,
2815
- properties: {
2816
- value: {
2817
- type: "string",
2818
- },
2819
- },
2820
- };
2821
- await lix.db
2822
- .insertInto("stored_schema")
2823
- .values({ value: mockSchema })
2824
- .execute();
2825
- const db = lix.db;
2826
- // Insert untracked state via lix_internal_state_vtable
2827
- await db
2828
- .insertInto("lix_internal_state_vtable")
2829
- .values({
2830
- entity_id: "override-entity",
2831
- file_id: "test-file",
2832
- schema_key: "mock_schema",
2833
- plugin_key: "test_plugin",
2834
- schema_version: "1.0",
2835
- version_id: sql `(SELECT version_id FROM active_version)`,
2836
- snapshot_content: JSON.stringify({
2837
- value: "untracked value",
2838
- }),
2839
- untracked: 1,
2840
- })
2841
- .execute();
2842
- // Verify untracked state exists
2843
- const untrackedState = await db
2844
- .selectFrom("lix_internal_state_vtable")
2845
- .where("entity_id", "=", "override-entity")
2846
- .orderBy("entity_id")
2847
- .orderBy("version_id")
2848
- .select([sql `json(snapshot_content)`.as("snapshot_content"), "untracked"])
2849
- .execute();
2850
- expectDeterministic(untrackedState).toHaveLength(1);
2851
- expectDeterministic(untrackedState[0]?.snapshot_content).toEqual({
2852
- value: "untracked value",
2853
- });
2854
- // Now update the entity as tracked (should delete from untracked table)
2855
- await db
2856
- .updateTable("lix_internal_state_vtable")
2857
- .set({
2858
- snapshot_content: JSON.stringify({
2859
- value: "tracked value",
2860
- }),
2861
- untracked: 0,
2862
- })
2863
- .where("entity_id", "=", "override-entity")
2864
- .where("schema_key", "=", "mock_schema")
2865
- .execute();
2866
- // Verify tracked state has overridden untracked state
2867
- const finalState = await db
2868
- .selectFrom("lix_internal_state_vtable")
2869
- .where("entity_id", "=", "override-entity")
2870
- .orderBy("entity_id")
2871
- .orderBy("version_id")
2872
- .select([sql `json(snapshot_content)`.as("snapshot_content"), "untracked"])
2873
- .execute();
2874
- expectDeterministic(finalState).toHaveLength(1);
2875
- expectDeterministic(finalState[0]?.snapshot_content).toEqual({
2876
- value: "tracked value",
2877
- });
2878
- // Verify a change was created for the tracked mutation
2879
- const changes = await db
2880
- .selectFrom("change")
2881
- .where("entity_id", "=", "override-entity")
2882
- .where("schema_key", "=", "mock_schema")
2883
- .selectAll()
2884
- .execute();
2885
- expectDeterministic(changes.length).toBeGreaterThan(0);
2886
- });
2887
- simulationTest("created_at and updated_at timestamps are computed correctly via lix_internal_state_vtable", async ({ openSimulatedLix }) => {
2888
- const lix = await openSimulatedLix({
2889
- keyValues: [
2890
- {
2891
- key: "lix_deterministic_mode",
2892
- value: { enabled: true },
2893
- lixcol_version_id: "global",
2894
- },
2895
- ],
2896
- });
2897
- const mockSchema = {
2898
- "x-lix-key": "mock_schema",
2899
- "x-lix-version": "1.0",
2900
- type: "object",
2901
- additionalProperties: false,
2902
- properties: {
2903
- value: {
2904
- type: "string",
2905
- },
2906
- },
2907
- };
2908
- await lix.db
2909
- .insertInto("stored_schema")
2910
- .values({ value: mockSchema })
2911
- .execute();
2912
- const db = lix.db;
2913
- // Insert initial entity via lix_internal_state_vtable
2914
- await db
2915
- .insertInto("lix_internal_state_vtable")
2916
- .values({
2917
- entity_id: "e0",
2918
- file_id: "f0",
2919
- schema_key: "mock_schema",
2920
- plugin_key: "lix_sdk",
2921
- schema_version: "1.0",
2922
- version_id: sql `(SELECT version_id FROM active_version)`,
2923
- snapshot_content: JSON.stringify({
2924
- value: "initial value",
2925
- }),
2926
- untracked: 0,
2927
- })
2928
- .execute();
2929
- const stateAfterInsert = await db
2930
- .selectFrom("lix_internal_state_vtable")
2931
- .where("entity_id", "=", "e0")
2932
- .orderBy("entity_id")
2933
- .orderBy("version_id")
2934
- .selectAll()
2935
- .execute();
2936
- expect(stateAfterInsert).toHaveLength(1);
2937
- expect(stateAfterInsert[0]?.created_at).toBeDefined();
2938
- expect(stateAfterInsert[0]?.updated_at).toBeDefined();
2939
- expect(stateAfterInsert[0]?.created_at).toBe(stateAfterInsert[0]?.updated_at);
2940
- // Update the entity via lix_internal_state_vtable
2941
- await db
2942
- .updateTable("lix_internal_state_vtable")
2943
- .set({
2944
- snapshot_content: JSON.stringify({
2945
- value: "updated value",
2946
- }),
2947
- })
2948
- .where("entity_id", "=", "e0")
2949
- .where("schema_key", "=", "mock_schema")
2950
- .execute();
2951
- const stateAfterUpdate = await db
2952
- .selectFrom("lix_internal_state_vtable")
2953
- .where("entity_id", "=", "e0")
2954
- .orderBy("entity_id")
2955
- .orderBy("version_id")
2956
- .selectAll()
2957
- .execute();
2958
- expect(stateAfterUpdate).toHaveLength(1);
2959
- expect(stateAfterUpdate[0]?.created_at).toBeDefined();
2960
- expect(stateAfterUpdate[0]?.updated_at).toBeDefined();
2961
- // created_at should remain the same
2962
- expect(stateAfterUpdate[0]?.created_at).toBe(stateAfterInsert[0]?.created_at);
2963
- // updated_at should be different (newer)
2964
- expect(stateAfterUpdate[0]?.updated_at).not.toBe(stateAfterInsert[0]?.updated_at);
2965
- });
2966
- simulationTest("untracked insert then delete within same transaction leaves no residue via lix_internal_state_vtable", async ({ openSimulatedLix }) => {
2967
- const lix = await openSimulatedLix({
2968
- keyValues: [
2969
- {
2970
- key: "lix_deterministic_mode",
2971
- value: { enabled: true },
2972
- lixcol_version_id: "global",
2973
- },
2974
- ],
2975
- });
2976
- const mockSchema = {
2977
- "x-lix-key": "key_value",
2978
- "x-lix-version": "1.0",
2979
- type: "object",
2980
- additionalProperties: false,
2981
- properties: {
2982
- key: { type: "string" },
2983
- value: { type: ["boolean", "null"] },
2984
- },
2985
- };
2986
- await lix.db
2987
- .insertInto("stored_schema")
2988
- .values({ value: mockSchema })
2989
- .execute();
2990
- const db = lix.db;
2991
- const active = await lix.db
2992
- .selectFrom("active_version")
2993
- .selectAll()
2994
- .executeTakeFirstOrThrow();
2995
- await db.transaction().execute(async (trx) => {
2996
- await trx
2997
- .insertInto("lix_internal_state_vtable")
2998
- .values({
2999
- entity_id: "tx_skip_flag_untracked",
3000
- file_id: "system",
3001
- schema_key: "key_value",
3002
- plugin_key: "lix_sdk",
3003
- schema_version: "1.0",
3004
- version_id: active.version_id ?? active.id,
3005
- snapshot_content: JSON.stringify({
3006
- key: "tx_skip_flag_untracked",
3007
- value: true,
3008
- }),
3009
- untracked: 1, // SQLite uses INTEGER for boolean
3010
- })
3011
- .execute();
3012
- await trx
3013
- .deleteFrom("lix_internal_state_vtable")
3014
- .where("entity_id", "=", "tx_skip_flag_untracked")
3015
- .where("version_id", "=", active.version_id ?? active.id)
3016
- .execute();
3017
- });
3018
- const remaining = await db
3019
- .selectFrom("lix_internal_state_vtable")
3020
- .where("entity_id", "=", "tx_skip_flag_untracked")
3021
- .where("version_id", "=", active.version_id ?? active.id)
3022
- .where("snapshot_content", "is not", null)
3023
- .orderBy("entity_id")
3024
- .orderBy("version_id")
3025
- .selectAll()
3026
- .execute();
3027
- expect(remaining).toHaveLength(0);
3028
- });
3029
- simulationTest("state is separated by version", async ({ openSimulatedLix }) => {
3030
- const lix = await openSimulatedLix({
3031
- keyValues: [
3032
- {
3033
- key: "lix_deterministic_mode",
3034
- value: { enabled: true },
3035
- lixcol_version_id: "global",
3036
- },
3037
- ],
3038
- });
3039
- await createVersion({ lix, id: "version_a" });
3040
- await createVersion({ lix, id: "version_b" });
3041
- const db = lix.db;
3042
- const mockSchema = {
3043
- "x-lix-key": "mock_schema",
3044
- "x-lix-version": "1.0",
3045
- type: "object",
3046
- additionalProperties: false,
3047
- properties: {
3048
- value: { type: "string" },
3049
- },
3050
- };
3051
- await lix.db
3052
- .insertInto("stored_schema")
3053
- .values({ value: mockSchema })
3054
- .execute();
3055
- await db
3056
- .insertInto("lix_internal_state_vtable")
3057
- .values([
3058
- {
3059
- entity_id: "e0",
3060
- file_id: "f0",
3061
- schema_key: "mock_schema",
3062
- plugin_key: "mock_plugin",
3063
- schema_version: "1.0",
3064
- snapshot_content: JSON.stringify({
3065
- value: "hello world from version a",
3066
- }),
3067
- version_id: "version_a",
3068
- untracked: 0,
3069
- },
3070
- {
3071
- entity_id: "e0",
3072
- file_id: "f0",
3073
- schema_key: "mock_schema",
3074
- plugin_key: "mock_plugin",
3075
- schema_version: "1.0",
3076
- snapshot_content: JSON.stringify({
3077
- value: "hello world from version b",
3078
- }),
3079
- version_id: "version_b",
3080
- untracked: 0,
3081
- },
3082
- ])
3083
- .execute();
3084
- const stateAfterInserts = await db
3085
- .selectFrom("lix_internal_state_vtable")
3086
- .where("schema_key", "=", "mock_schema")
3087
- .where("entity_id", "=", "e0")
3088
- .where("snapshot_content", "is not", null)
3089
- .orderBy("entity_id")
3090
- .orderBy("version_id")
3091
- .selectAll()
3092
- .execute();
3093
- expect(stateAfterInserts).toHaveLength(2);
3094
- // The vtable returns snapshot_content as string (JSON), we need to parse it
3095
- const content0 = stateAfterInserts[0].snapshot_content;
3096
- const content1 = stateAfterInserts[1].snapshot_content;
3097
- expect(content0).toEqual({
3098
- value: "hello world from version a",
3099
- });
3100
- expect(content1).toEqual({
3101
- value: "hello world from version b",
3102
- });
3103
- // Verify timestamps are present
3104
- expect(stateAfterInserts[0]?.created_at).toBeDefined();
3105
- expect(stateAfterInserts[0]?.updated_at).toBeDefined();
3106
- expect(stateAfterInserts[1]?.created_at).toBeDefined();
3107
- expect(stateAfterInserts[1]?.updated_at).toBeDefined();
3108
- await db
3109
- .updateTable("lix_internal_state_vtable")
3110
- .set({
3111
- snapshot_content: JSON.stringify({
3112
- value: "hello world from version b UPDATED",
3113
- }),
3114
- })
3115
- .where("entity_id", "=", "e0")
3116
- .where("schema_key", "=", "mock_schema")
3117
- .where("version_id", "=", "version_b")
3118
- .execute();
3119
- const stateAfterUpdate = await db
3120
- .selectFrom("lix_internal_state_vtable")
3121
- .where("schema_key", "=", "mock_schema")
3122
- .where("entity_id", "=", "e0")
3123
- .where("snapshot_content", "is not", null)
3124
- .orderBy("entity_id")
3125
- .orderBy("version_id")
3126
- .selectAll()
3127
- .execute();
3128
- expect(stateAfterUpdate).toHaveLength(2);
3129
- const updateContent0 = stateAfterUpdate[0].snapshot_content;
3130
- const updateContent1 = stateAfterUpdate[1].snapshot_content;
3131
- expect(updateContent0).toEqual({
3132
- value: "hello world from version a",
3133
- });
3134
- expect(updateContent1).toEqual({
3135
- value: "hello world from version b UPDATED",
3136
- });
3137
- await db
3138
- .deleteFrom("lix_internal_state_vtable")
3139
- .where("entity_id", "=", "e0")
3140
- .where("version_id", "=", "version_b")
3141
- .execute();
3142
- const stateAfterDelete = await db
3143
- .selectFrom("lix_internal_state_vtable")
3144
- .where("schema_key", "=", "mock_schema")
3145
- .where("entity_id", "=", "e0")
3146
- .where("snapshot_content", "is not", null)
3147
- .orderBy("entity_id")
3148
- .orderBy("version_id")
3149
- .selectAll()
3150
- .execute();
3151
- expect(stateAfterDelete).toHaveLength(1);
3152
- expect(stateAfterDelete[0]?.version_id).toBe("version_a");
3153
- const deleteContent = stateAfterDelete[0].snapshot_content;
3154
- expect(deleteContent).toEqual({
3155
- value: "hello world from version a",
3156
- });
3157
- });
3158
- simulationTest("created_at and updated_at are version specific via lix_internal_state_vtable", async ({ openSimulatedLix }) => {
3159
- const lix = await openSimulatedLix({
3160
- keyValues: [
3161
- {
3162
- key: "lix_deterministic_mode",
3163
- value: { enabled: true },
3164
- lixcol_version_id: "global",
3165
- },
3166
- ],
3167
- });
3168
- await createVersion({ lix, id: "version_a" });
3169
- await createVersion({ lix, id: "version_b" });
3170
- const mockSchema = {
3171
- "x-lix-key": "mock_schema",
3172
- "x-lix-version": "1.0",
3173
- additionalProperties: false,
3174
- type: "object",
3175
- properties: {
3176
- value: {
3177
- type: "string",
3178
- },
3179
- },
3180
- };
3181
- await lix.db
3182
- .insertInto("stored_schema")
3183
- .values({ value: mockSchema })
3184
- .execute();
3185
- const db = lix.db;
3186
- // Insert entity in version A
3187
- await db
3188
- .insertInto("lix_internal_state_vtable")
3189
- .values({
3190
- entity_id: "e0",
3191
- file_id: "f0",
3192
- schema_key: "mock_schema",
3193
- plugin_key: "lix_sdk",
3194
- schema_version: "1.0",
3195
- version_id: "version_a",
3196
- snapshot_content: JSON.stringify({
3197
- value: "value in version a",
3198
- }),
3199
- untracked: 0,
3200
- })
3201
- .execute();
3202
- // Insert same entity in version B
3203
- await db
3204
- .insertInto("lix_internal_state_vtable")
3205
- .values({
3206
- entity_id: "e0",
3207
- file_id: "f0",
3208
- schema_key: "mock_schema",
3209
- plugin_key: "lix_sdk",
3210
- schema_version: "1.0",
3211
- version_id: "version_b",
3212
- snapshot_content: JSON.stringify({
3213
- value: "value in version b",
3214
- }),
3215
- untracked: 0,
3216
- })
3217
- .execute();
3218
- const stateVersionA = await db
3219
- .selectFrom("lix_internal_state_vtable")
3220
- .where("entity_id", "=", "e0")
3221
- .where("version_id", "=", "version_a")
3222
- .orderBy("entity_id")
3223
- .orderBy("version_id")
3224
- .selectAll()
3225
- .execute();
3226
- const stateVersionB = await db
3227
- .selectFrom("lix_internal_state_vtable")
3228
- .where("entity_id", "=", "e0")
3229
- .where("version_id", "=", "version_b")
3230
- .orderBy("entity_id")
3231
- .orderBy("version_id")
3232
- .selectAll()
3233
- .execute();
3234
- expect(stateVersionA).toHaveLength(1);
3235
- expect(stateVersionB).toHaveLength(1);
3236
- // Both should have timestamps
3237
- expect(stateVersionA[0]?.created_at).toBeDefined();
3238
- expect(stateVersionA[0]?.updated_at).toBeDefined();
3239
- expect(stateVersionB[0]?.created_at).toBeDefined();
3240
- expect(stateVersionB[0]?.updated_at).toBeDefined();
3241
- // the same entity has been inserted but with different changes
3242
- expect(stateVersionA[0]?.created_at).not.toBe(stateVersionB[0]?.created_at);
3243
- await db
3244
- .updateTable("lix_internal_state_vtable")
3245
- .set({
3246
- snapshot_content: JSON.stringify({
3247
- value: "updated value in version b",
3248
- }),
3249
- })
3250
- .where("entity_id", "=", "e0")
3251
- .where("version_id", "=", "version_b")
3252
- .execute();
3253
- const updatedStateVersionA = await db
3254
- .selectFrom("lix_internal_state_vtable")
3255
- .where("entity_id", "=", "e0")
3256
- .where("version_id", "=", "version_a")
3257
- .orderBy("entity_id")
3258
- .orderBy("version_id")
3259
- .selectAll()
3260
- .execute();
3261
- const updatedStateVersionB = await db
3262
- .selectFrom("lix_internal_state_vtable")
3263
- .where("entity_id", "=", "e0")
3264
- .where("version_id", "=", "version_b")
3265
- .orderBy("entity_id")
3266
- .orderBy("version_id")
3267
- .selectAll()
3268
- .execute();
3269
- // Version A should remain unchanged
3270
- expect(updatedStateVersionA[0]?.updated_at).toBe(stateVersionA[0]?.updated_at);
3271
- // Version B should have updated timestamp
3272
- expect(updatedStateVersionB[0]?.updated_at).not.toBe(stateVersionB[0]?.updated_at);
3273
- });
3274
- simulationTest("state appears in both versions when they share the same commit via lix_internal_state_vtable", async ({ openSimulatedLix }) => {
3275
- const lix = await openSimulatedLix({
3276
- keyValues: [
3277
- {
3278
- key: "lix_deterministic_mode",
3279
- value: { enabled: true },
3280
- lixcol_version_id: "global",
3281
- },
3282
- ],
3283
- });
3284
- const versionA = await createVersion({ lix, id: "version_a" });
3285
- const db = lix.db;
3286
- const mockSchema = {
3287
- "x-lix-key": "mock_schema",
3288
- "x-lix-version": "1.0",
3289
- type: "object",
3290
- additionalProperties: false,
3291
- properties: {
3292
- value: { type: "string" },
3293
- },
3294
- };
3295
- await lix.db
3296
- .insertInto("stored_schema")
3297
- .values({ value: mockSchema })
3298
- .execute();
3299
- // Insert state into version A
3300
- await db
3301
- .insertInto("lix_internal_state_vtable")
3302
- .values({
3303
- entity_id: "e0",
3304
- file_id: "f0",
3305
- schema_key: "mock_schema",
3306
- plugin_key: "mock_plugin",
3307
- schema_version: "1.0",
3308
- snapshot_content: JSON.stringify({
3309
- value: "shared state",
3310
- }),
3311
- version_id: "version_a",
3312
- untracked: 0,
3313
- })
3314
- .execute();
3315
- const versionAAfterInsert = await lix.db
3316
- .selectFrom("version")
3317
- .where("id", "=", versionA.id)
3318
- .selectAll()
3319
- .executeTakeFirstOrThrow();
3320
- const versionB = await createVersionFromCommit({
3321
- lix,
3322
- id: "version_b",
3323
- commit: { id: versionAAfterInsert.commit_id },
3324
- });
3325
- expect(versionB.commit_id).toBe(versionAAfterInsert.commit_id);
3326
- const stateInBothVersions = await db
3327
- .selectFrom("lix_internal_state_vtable")
3328
- .where("schema_key", "=", "mock_schema")
3329
- .where("entity_id", "=", "e0")
3330
- .orderBy("entity_id")
3331
- .orderBy("version_id")
3332
- .selectAll()
3333
- .execute();
3334
- // Both versions should see the same state
3335
- expect(stateInBothVersions).toHaveLength(2);
3336
- expect(stateInBothVersions[0]?.entity_id).toBe("e0");
3337
- expect(stateInBothVersions[1]?.entity_id).toBe("e0");
3338
- const sharedContent0 = stateInBothVersions[0].snapshot_content;
3339
- const sharedContent1 = stateInBothVersions[1].snapshot_content;
3340
- expect(sharedContent0).toEqual({ value: "shared state" });
3341
- expect(sharedContent1).toEqual({ value: "shared state" });
3342
- expect(stateInBothVersions[0]?.version_id).toBe("version_a");
3343
- expect(stateInBothVersions[1]?.version_id).toBe("version_b");
3344
- expect(stateInBothVersions[0]?.commit_id).toBe(versionAAfterInsert.commit_id);
3345
- expect(stateInBothVersions[1]?.commit_id).toBe(versionAAfterInsert.commit_id);
3346
- });
3347
- simulationTest("state diverges when versions have common ancestor but different changes via lix_internal_state_vtable", async ({ openSimulatedLix }) => {
3348
- const lix = await openSimulatedLix({
3349
- keyValues: [
3350
- {
3351
- key: "lix_deterministic_mode",
3352
- value: { enabled: true },
3353
- lixcol_version_id: "global",
3354
- },
3355
- ],
3356
- });
3357
- // Create base version and add initial state
3358
- const baseVersion = await createVersion({ lix, id: "base_version" });
3359
- const db = lix.db;
3360
- const mockSchema = {
3361
- "x-lix-key": "mock_schema",
3362
- "x-lix-version": "1.0",
3363
- type: "object",
3364
- additionalProperties: false,
3365
- properties: {
3366
- value: { type: "string" },
3367
- },
3368
- };
3369
- await lix.db
3370
- .insertInto("stored_schema")
3371
- .values({ value: mockSchema })
3372
- .execute();
3373
- await db
3374
- .insertInto("lix_internal_state_vtable")
3375
- .values({
3376
- entity_id: "e0",
3377
- file_id: "f0",
3378
- schema_key: "mock_schema",
3379
- plugin_key: "mock_plugin",
3380
- schema_version: "1.0",
3381
- snapshot_content: JSON.stringify({
3382
- value: "base state",
3383
- }),
3384
- version_id: baseVersion.id,
3385
- untracked: 0,
3386
- })
3387
- .execute();
3388
- // Create two versions from the same base version
3389
- await createVersion({
3390
- lix,
3391
- id: "version_a",
3392
- from: baseVersion,
3393
- });
3394
- await createVersion({
3395
- lix,
3396
- id: "version_b",
3397
- from: baseVersion,
3398
- });
3399
- const versions = await lix.db
3400
- .selectFrom("version")
3401
- .where("id", "in", ["base_version", "version_a", "version_b"])
3402
- .select(["id", "commit_id"])
3403
- .execute();
3404
- expect(versions).toHaveLength(3);
3405
- // Both versions should initially see the base state
3406
- const initialState = await db
3407
- .selectFrom("lix_internal_state_vtable")
3408
- .where("schema_key", "=", "mock_schema")
3409
- .where("entity_id", "=", "e0")
3410
- .orderBy("entity_id")
3411
- .orderBy("version_id")
3412
- .selectAll()
3413
- .execute();
3414
- expect(initialState).toHaveLength(3); // base, version_a, version_b
3415
- // Update state in version A
3416
- await db
3417
- .updateTable("lix_internal_state_vtable")
3418
- .set({
3419
- snapshot_content: JSON.stringify({ value: "updated in version A" }),
3420
- })
3421
- .where("entity_id", "=", "e0")
3422
- .where("version_id", "=", "version_a")
3423
- .execute();
3424
- // Update state in version B differently
3425
- await db
3426
- .updateTable("lix_internal_state_vtable")
3427
- .set({
3428
- snapshot_content: JSON.stringify({ value: "updated in version B" }),
3429
- })
3430
- .where("entity_id", "=", "e0")
3431
- .where("version_id", "=", "version_b")
3432
- .execute();
3433
- const divergedState = await db
3434
- .selectFrom("lix_internal_state_vtable")
3435
- .where("schema_key", "=", "mock_schema")
3436
- .where("entity_id", "=", "e0")
3437
- .selectAll()
3438
- .orderBy("version_id")
3439
- .execute();
3440
- // All three versions should have different states
3441
- expect(divergedState).toHaveLength(3);
3442
- expect(divergedState[0]?.version_id).toBe("base_version");
3443
- expect(divergedState[1]?.version_id).toBe("version_a");
3444
- expect(divergedState[2]?.version_id).toBe("version_b");
3445
- const divergedContent0 = divergedState[0].snapshot_content;
3446
- const divergedContent1 = divergedState[1].snapshot_content;
3447
- const divergedContent2 = divergedState[2].snapshot_content;
3448
- expect(divergedContent0).toEqual({ value: "base state" });
3449
- expect(divergedContent1).toEqual({ value: "updated in version A" });
3450
- expect(divergedContent2).toEqual({ value: "updated in version B" });
3451
- });
3452
- simulationTest("tracked insert then delete within same transaction leaves no residue via lix_internal_state_vtable", async ({ openSimulatedLix }) => {
3453
- const lix = await openSimulatedLix({
3454
- keyValues: [
3455
- {
3456
- key: "lix_deterministic_mode",
3457
- value: { enabled: true },
3458
- lixcol_version_id: "global",
3459
- },
3460
- ],
3461
- });
3462
- const mockSchema = {
3463
- "x-lix-key": "key_value",
3464
- "x-lix-version": "1.0",
3465
- type: "object",
3466
- additionalProperties: false,
3467
- properties: {
3468
- key: { type: "string" },
3469
- value: { type: ["boolean", "null"] },
3470
- },
3471
- };
3472
- await lix.db
3473
- .insertInto("stored_schema")
3474
- .values({ value: mockSchema })
3475
- .execute();
3476
- const db = lix.db;
3477
- const active = await lix.db
3478
- .selectFrom("active_version")
3479
- .selectAll()
3480
- .executeTakeFirstOrThrow();
3481
- await db.transaction().execute(async (trx) => {
3482
- // tracked by default (untracked: 0)
3483
- await trx
3484
- .insertInto("lix_internal_state_vtable")
3485
- .values({
3486
- entity_id: "tx_skip_flag_tracked",
3487
- file_id: "system",
3488
- schema_key: "key_value",
3489
- plugin_key: "lix_sdk",
3490
- schema_version: "1.0",
3491
- version_id: active.version_id ?? active.id,
3492
- snapshot_content: JSON.stringify({
3493
- key: "tx_skip_flag_tracked",
3494
- value: true,
3495
- }),
3496
- untracked: 0, // tracked (SQLite uses INTEGER for boolean)
3497
- })
3498
- .execute();
3499
- await trx
3500
- .deleteFrom("lix_internal_state_vtable")
3501
- .where("entity_id", "=", "tx_skip_flag_tracked")
3502
- .where("version_id", "=", active.version_id ?? active.id)
3503
- .execute();
3504
- });
3505
- const remaining = await db
3506
- .selectFrom("lix_internal_state_vtable")
3507
- .where("entity_id", "=", "tx_skip_flag_tracked")
3508
- .where("version_id", "=", active.version_id ?? active.id)
3509
- .where("snapshot_content", "is not", null)
3510
- .orderBy("entity_id")
3511
- .orderBy("version_id")
3512
- .selectAll()
3513
- .execute();
3514
- expect(remaining).toHaveLength(0);
3515
- });
3516
- //# sourceMappingURL=vtable.test.js.map