@lix-js/sdk 0.5.0-preview.0 → 0.5.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 (1378) hide show
  1. package/dist/account/create-account.d.ts +5 -5
  2. package/dist/account/create-account.d.ts.map +1 -1
  3. package/dist/account/create-account.js +2 -2
  4. package/dist/account/create-account.js.map +1 -1
  5. package/dist/account/index.d.ts +1 -1
  6. package/dist/account/index.d.ts.map +1 -1
  7. package/dist/account/schema.d.ts +23 -7
  8. package/dist/account/schema.d.ts.map +1 -1
  9. package/dist/account/schema.js +84 -27
  10. package/dist/account/schema.js.map +1 -1
  11. package/dist/account/schema.test.js +87 -83
  12. package/dist/account/schema.test.js.map +1 -1
  13. package/dist/account/switch-account.d.ts +2 -2
  14. package/dist/account/switch-account.d.ts.map +1 -1
  15. package/dist/account/switch-account.js +3 -4
  16. package/dist/account/switch-account.js.map +1 -1
  17. package/dist/account/switch-account.test.js +4 -4
  18. package/dist/account/switch-account.test.js.map +1 -1
  19. package/dist/change/apply-changes.d.ts +13 -0
  20. package/dist/change/apply-changes.d.ts.map +1 -1
  21. package/dist/change/apply-changes.js +14 -4
  22. package/dist/change/apply-changes.js.map +1 -1
  23. package/dist/change/apply-changes.test.js +91 -1
  24. package/dist/change/apply-changes.test.js.map +1 -1
  25. package/dist/change/create-change-v2.d.ts +11 -0
  26. package/dist/change/create-change-v2.d.ts.map +1 -0
  27. package/dist/change/create-change-v2.js +31 -0
  28. package/dist/change/create-change-v2.js.map +1 -0
  29. package/dist/change/create-change-v2.test.d.ts +2 -0
  30. package/dist/change/create-change-v2.test.d.ts.map +1 -0
  31. package/dist/change/create-change-v2.test.js +39 -0
  32. package/dist/change/create-change-v2.test.js.map +1 -0
  33. package/dist/change/create-change.d.ts +2 -2
  34. package/dist/change/create-change.d.ts.map +1 -1
  35. package/dist/change/create-change.js +3 -1
  36. package/dist/change/create-change.js.map +1 -1
  37. package/dist/change/create-change.test.js +4 -6
  38. package/dist/change/create-change.test.js.map +1 -1
  39. package/dist/change/index.d.ts +1 -1
  40. package/dist/change/index.d.ts.map +1 -1
  41. package/dist/change/index.js.map +1 -1
  42. package/dist/change/schema.d.ts +40 -2
  43. package/dist/change/schema.d.ts.map +1 -1
  44. package/dist/change/schema.js +50 -9
  45. package/dist/change/schema.js.map +1 -1
  46. package/dist/change/schema.test.js +33 -0
  47. package/dist/change/schema.test.js.map +1 -1
  48. package/dist/change-author/index.d.ts +1 -1
  49. package/dist/change-author/index.d.ts.map +1 -1
  50. package/dist/change-author/index.js +1 -1
  51. package/dist/change-author/index.js.map +1 -1
  52. package/dist/change-author/schema.d.ts +12 -9
  53. package/dist/change-author/schema.d.ts.map +1 -1
  54. package/dist/change-author/schema.js +16 -10
  55. package/dist/change-author/schema.js.map +1 -1
  56. package/dist/change-author/schema.test.js +283 -229
  57. package/dist/change-author/schema.test.js.map +1 -1
  58. package/dist/change-proposal/create-change-proposal.d.ts +3 -3
  59. package/dist/change-proposal/create-change-proposal.d.ts.map +1 -1
  60. package/dist/change-proposal/database-schema.js +1 -1
  61. package/dist/change-set/apply-change-set.d.ts +2 -2
  62. package/dist/change-set/apply-change-set.d.ts.map +1 -1
  63. package/dist/change-set/apply-change-set.js +40 -51
  64. package/dist/change-set/apply-change-set.js.map +1 -1
  65. package/dist/change-set/apply-change-set.test.js +6 -3
  66. package/dist/change-set/apply-change-set.test.js.map +1 -1
  67. package/dist/change-set/before-after-of-file.d.ts +31 -0
  68. package/dist/change-set/before-after-of-file.d.ts.map +1 -0
  69. package/dist/change-set/before-after-of-file.js +191 -0
  70. package/dist/change-set/before-after-of-file.js.map +1 -0
  71. package/dist/change-set/before-after-of-file.test.d.ts +2 -0
  72. package/dist/change-set/before-after-of-file.test.d.ts.map +1 -0
  73. package/dist/change-set/before-after-of-file.test.js +221 -0
  74. package/dist/change-set/before-after-of-file.test.js.map +1 -0
  75. package/dist/change-set/change-set-element-in-symmetric-difference.d.ts +2 -1
  76. package/dist/change-set/change-set-element-in-symmetric-difference.d.ts.map +1 -1
  77. package/dist/change-set/change-set-element-in-symmetric-difference.js.map +1 -1
  78. package/dist/change-set/change-set-element-in-symmetric-difference.test.js +204 -34
  79. package/dist/change-set/change-set-element-in-symmetric-difference.test.js.map +1 -1
  80. package/dist/change-set/checkout-change-set.d.ts +15 -0
  81. package/dist/change-set/checkout-change-set.d.ts.map +1 -0
  82. package/dist/change-set/checkout-change-set.js +64 -0
  83. package/dist/change-set/checkout-change-set.js.map +1 -0
  84. package/dist/change-set/checkout-change-set.test.d.ts +2 -0
  85. package/dist/change-set/checkout-change-set.test.d.ts.map +1 -0
  86. package/dist/change-set/checkout-change-set.test.js +127 -0
  87. package/dist/change-set/checkout-change-set.test.js.map +1 -0
  88. package/dist/change-set/create-change-set.d.ts +7 -9
  89. package/dist/change-set/create-change-set.d.ts.map +1 -1
  90. package/dist/change-set/create-change-set.js +3 -25
  91. package/dist/change-set/create-change-set.js.map +1 -1
  92. package/dist/change-set/create-change-set.test.js +0 -31
  93. package/dist/change-set/create-change-set.test.js.map +1 -1
  94. package/dist/change-set/create-checkpoint.d.ts.map +1 -1
  95. package/dist/change-set/create-checkpoint.js +11 -2
  96. package/dist/change-set/create-checkpoint.js.map +1 -1
  97. package/dist/change-set/create-checkpoint.test.js +53 -0
  98. package/dist/change-set/create-checkpoint.test.js.map +1 -1
  99. package/dist/change-set/create-merge-change-set.d.ts +4 -4
  100. package/dist/change-set/create-merge-change-set.d.ts.map +1 -1
  101. package/dist/change-set/create-transition-change-set.d.ts +4 -4
  102. package/dist/change-set/create-transition-change-set.d.ts.map +1 -1
  103. package/dist/change-set/create-undo-change-set.d.ts +5 -5
  104. package/dist/change-set/create-undo-change-set.d.ts.map +1 -1
  105. package/dist/change-set/create-undo-change-set.js +4 -3
  106. package/dist/change-set/create-undo-change-set.js.map +1 -1
  107. package/dist/change-set/database-schema.d.ts +39 -0
  108. package/dist/change-set/database-schema.d.ts.map +1 -0
  109. package/dist/change-set/database-schema.js +86 -0
  110. package/dist/change-set/database-schema.js.map +1 -0
  111. package/dist/change-set/database-schema.test.d.ts +2 -0
  112. package/dist/change-set/database-schema.test.d.ts.map +1 -0
  113. package/dist/change-set/database-schema.test.js +547 -0
  114. package/dist/change-set/database-schema.test.js.map +1 -0
  115. package/dist/change-set/diff-for-file.d.ts +29 -0
  116. package/dist/change-set/diff-for-file.d.ts.map +1 -0
  117. package/dist/change-set/diff-for-file.js +19 -0
  118. package/dist/change-set/diff-for-file.js.map +1 -0
  119. package/dist/change-set/get-before-after-of-file.d.ts +31 -0
  120. package/dist/change-set/get-before-after-of-file.d.ts.map +1 -0
  121. package/dist/change-set/get-before-after-of-file.js +189 -0
  122. package/dist/change-set/get-before-after-of-file.js.map +1 -0
  123. package/dist/change-set/get-before-after-of-file.test.d.ts +2 -0
  124. package/dist/change-set/get-before-after-of-file.test.d.ts.map +1 -0
  125. package/dist/change-set/get-before-after-of-file.test.js +220 -0
  126. package/dist/change-set/get-before-after-of-file.test.js.map +1 -0
  127. package/dist/change-set/index.d.ts +1 -5
  128. package/dist/change-set/index.d.ts.map +1 -1
  129. package/dist/change-set/index.js +1 -5
  130. package/dist/change-set/index.js.map +1 -1
  131. package/dist/change-set/merge-change-sets.d.ts +23 -0
  132. package/dist/change-set/merge-change-sets.d.ts.map +1 -0
  133. package/dist/change-set/merge-change-sets.js +69 -0
  134. package/dist/change-set/merge-change-sets.js.map +1 -0
  135. package/dist/change-set/merge-change-sets.test.d.ts +2 -0
  136. package/dist/change-set/merge-change-sets.test.d.ts.map +1 -0
  137. package/dist/change-set/merge-change-sets.test.js +184 -0
  138. package/dist/change-set/merge-change-sets.test.js.map +1 -0
  139. package/dist/change-set/restore-change-set.d.ts +14 -0
  140. package/dist/change-set/restore-change-set.d.ts.map +1 -0
  141. package/dist/change-set/restore-change-set.js +98 -0
  142. package/dist/change-set/restore-change-set.js.map +1 -0
  143. package/dist/change-set/restore-change-set.test.d.ts +2 -0
  144. package/dist/change-set/restore-change-set.test.d.ts.map +1 -0
  145. package/dist/change-set/restore-change-set.test.js +238 -0
  146. package/dist/change-set/restore-change-set.test.js.map +1 -0
  147. package/dist/change-set/schema.d.ts +28 -72
  148. package/dist/change-set/schema.d.ts.map +1 -1
  149. package/dist/change-set/schema.js +37 -84
  150. package/dist/change-set/schema.js.map +1 -1
  151. package/dist/change-set/schema.test.js +0 -247
  152. package/dist/change-set/schema.test.js.map +1 -1
  153. package/dist/change-set-edge/database-schema.d.ts +11 -0
  154. package/dist/change-set-edge/database-schema.d.ts.map +1 -0
  155. package/dist/change-set-edge/database-schema.js +29 -0
  156. package/dist/change-set-edge/database-schema.js.map +1 -0
  157. package/dist/change-set-edge/database-schema.test.d.ts +2 -0
  158. package/dist/change-set-edge/database-schema.test.d.ts.map +1 -0
  159. package/dist/change-set-edge/database-schema.test.js +166 -0
  160. package/dist/change-set-edge/database-schema.test.js.map +1 -0
  161. package/dist/change-set-edge/index.d.ts +2 -0
  162. package/dist/change-set-edge/index.d.ts.map +1 -0
  163. package/dist/change-set-edge/index.js +2 -0
  164. package/dist/change-set-edge/index.js.map +1 -0
  165. package/dist/change-set-v2/apply-change-set.d.ts +10 -0
  166. package/dist/change-set-v2/apply-change-set.d.ts.map +1 -0
  167. package/dist/change-set-v2/apply-change-set.js +147 -0
  168. package/dist/change-set-v2/apply-change-set.js.map +1 -0
  169. package/dist/change-set-v2/apply-change-set.test.d.ts +2 -0
  170. package/dist/change-set-v2/apply-change-set.test.d.ts.map +1 -0
  171. package/dist/change-set-v2/apply-change-set.test.js +270 -0
  172. package/dist/change-set-v2/apply-change-set.test.js.map +1 -0
  173. package/dist/change-set-v2/create-change-set.d.ts +10 -0
  174. package/dist/change-set-v2/create-change-set.d.ts.map +1 -0
  175. package/dist/change-set-v2/create-change-set.js +57 -0
  176. package/dist/change-set-v2/create-change-set.js.map +1 -0
  177. package/dist/change-set-v2/create-change-set.test.d.ts +2 -0
  178. package/dist/change-set-v2/create-change-set.test.d.ts.map +1 -0
  179. package/dist/change-set-v2/create-change-set.test.js +59 -0
  180. package/dist/change-set-v2/create-change-set.test.js.map +1 -0
  181. package/dist/change-set-v2/create-checkpoint.d.ts +7 -0
  182. package/dist/change-set-v2/create-checkpoint.d.ts.map +1 -0
  183. package/dist/change-set-v2/create-checkpoint.js +79 -0
  184. package/dist/change-set-v2/create-checkpoint.js.map +1 -0
  185. package/dist/change-set-v2/create-checkpoint.test.d.ts +2 -0
  186. package/dist/change-set-v2/create-checkpoint.test.d.ts.map +1 -0
  187. package/dist/change-set-v2/create-checkpoint.test.js +289 -0
  188. package/dist/change-set-v2/create-checkpoint.test.js.map +1 -0
  189. package/dist/change-set-v2/create-merge-change-set.d.ts +23 -0
  190. package/dist/change-set-v2/create-merge-change-set.d.ts.map +1 -0
  191. package/dist/change-set-v2/create-merge-change-set.js +68 -0
  192. package/dist/change-set-v2/create-merge-change-set.js.map +1 -0
  193. package/dist/change-set-v2/create-merge-change-set.test.d.ts +2 -0
  194. package/dist/change-set-v2/create-merge-change-set.test.d.ts.map +1 -0
  195. package/dist/change-set-v2/create-merge-change-set.test.js +223 -0
  196. package/dist/change-set-v2/create-merge-change-set.test.js.map +1 -0
  197. package/dist/change-set-v2/index.d.ts +5 -0
  198. package/dist/change-set-v2/index.d.ts.map +1 -0
  199. package/dist/change-set-v2/index.js +5 -0
  200. package/dist/change-set-v2/index.js.map +1 -0
  201. package/dist/change-set-v2/schema.d.ts +50 -0
  202. package/dist/change-set-v2/schema.d.ts.map +1 -0
  203. package/dist/change-set-v2/schema.js +347 -0
  204. package/dist/change-set-v2/schema.js.map +1 -0
  205. package/dist/change-set-v2/schema.test.d.ts +2 -0
  206. package/dist/change-set-v2/schema.test.d.ts.map +1 -0
  207. package/dist/change-set-v2/schema.test.js +713 -0
  208. package/dist/change-set-v2/schema.test.js.map +1 -0
  209. package/dist/commit/apply-commit.d.ts +32 -0
  210. package/dist/commit/apply-commit.d.ts.map +1 -0
  211. package/dist/commit/apply-commit.js +63 -0
  212. package/dist/commit/apply-commit.js.map +1 -0
  213. package/dist/commit/apply-commit.test.d.ts +2 -0
  214. package/dist/commit/apply-commit.test.d.ts.map +1 -0
  215. package/dist/commit/apply-commit.test.js +367 -0
  216. package/dist/commit/apply-commit.test.js.map +1 -0
  217. package/dist/commit/create-checkpoint.d.ts +19 -0
  218. package/dist/commit/create-checkpoint.d.ts.map +1 -0
  219. package/dist/commit/create-checkpoint.js +118 -0
  220. package/dist/commit/create-checkpoint.js.map +1 -0
  221. package/dist/commit/create-checkpoint.test.d.ts +2 -0
  222. package/dist/commit/create-checkpoint.test.d.ts.map +1 -0
  223. package/dist/commit/create-checkpoint.test.js +472 -0
  224. package/dist/commit/create-checkpoint.test.js.map +1 -0
  225. package/dist/commit/create-commit.d.ts +38 -0
  226. package/dist/commit/create-commit.d.ts.map +1 -0
  227. package/dist/commit/create-commit.js +68 -0
  228. package/dist/commit/create-commit.js.map +1 -0
  229. package/dist/commit/create-merge-commit.d.ts +24 -0
  230. package/dist/commit/create-merge-commit.d.ts.map +1 -0
  231. package/dist/commit/create-merge-commit.js +103 -0
  232. package/dist/commit/create-merge-commit.js.map +1 -0
  233. package/dist/commit/create-merge-commit.test.d.ts +2 -0
  234. package/dist/commit/create-merge-commit.test.d.ts.map +1 -0
  235. package/dist/commit/create-merge-commit.test.js +242 -0
  236. package/dist/commit/create-merge-commit.test.js.map +1 -0
  237. package/dist/commit/create-transition-commit.d.ts +18 -0
  238. package/dist/commit/create-transition-commit.d.ts.map +1 -0
  239. package/dist/commit/create-transition-commit.js +136 -0
  240. package/dist/commit/create-transition-commit.js.map +1 -0
  241. package/dist/commit/create-transition-commit.test.d.ts +2 -0
  242. package/dist/commit/create-transition-commit.test.d.ts.map +1 -0
  243. package/dist/commit/create-transition-commit.test.js +221 -0
  244. package/dist/commit/create-transition-commit.test.js.map +1 -0
  245. package/dist/commit/create-undo-commit.d.ts +27 -0
  246. package/dist/commit/create-undo-commit.d.ts.map +1 -0
  247. package/dist/commit/create-undo-commit.js +143 -0
  248. package/dist/commit/create-undo-commit.js.map +1 -0
  249. package/dist/commit/create-undo-commit.test.d.ts +2 -0
  250. package/dist/commit/create-undo-commit.test.d.ts.map +1 -0
  251. package/dist/commit/create-undo-commit.test.js +298 -0
  252. package/dist/commit/create-undo-commit.test.js.map +1 -0
  253. package/dist/commit/index.d.ts +6 -0
  254. package/dist/commit/index.d.ts.map +1 -0
  255. package/dist/commit/index.js +6 -0
  256. package/dist/commit/index.js.map +1 -0
  257. package/dist/commit/schema.d.ts +73 -0
  258. package/dist/commit/schema.d.ts.map +1 -0
  259. package/dist/commit/schema.js +90 -0
  260. package/dist/commit/schema.js.map +1 -0
  261. package/dist/commit/schema.test.d.ts +2 -0
  262. package/dist/commit/schema.test.d.ts.map +1 -0
  263. package/dist/commit/schema.test.js +216 -0
  264. package/dist/commit/schema.test.js.map +1 -0
  265. package/dist/database/apply-schema.d.ts +3 -0
  266. package/dist/database/apply-schema.d.ts.map +1 -1
  267. package/dist/database/apply-schema.js +91 -258
  268. package/dist/database/apply-schema.js.map +1 -1
  269. package/dist/database/index.d.ts +0 -2
  270. package/dist/database/index.d.ts.map +1 -1
  271. package/dist/database/index.js +0 -2
  272. package/dist/database/index.js.map +1 -1
  273. package/dist/database/init-db.d.ts.map +1 -1
  274. package/dist/database/init-db.js +83 -44
  275. package/dist/database/init-db.js.map +1 -1
  276. package/dist/database/init-db.test.js +2 -480
  277. package/dist/database/init-db.test.js.map +1 -1
  278. package/dist/database/kysely-plugin/json-column-plugin.d.ts +5 -1
  279. package/dist/database/kysely-plugin/json-column-plugin.d.ts.map +1 -1
  280. package/dist/database/kysely-plugin/json-column-plugin.js +52 -10
  281. package/dist/database/kysely-plugin/json-column-plugin.js.map +1 -1
  282. package/dist/database/kysely-plugin/json-column-plugin.test.d.ts +2 -0
  283. package/dist/database/kysely-plugin/json-column-plugin.test.d.ts.map +1 -0
  284. package/dist/database/kysely-plugin/json-column-plugin.test.js +329 -0
  285. package/dist/database/kysely-plugin/json-column-plugin.test.js.map +1 -0
  286. package/dist/database/mutation-log/database-schema.d.ts.map +1 -1
  287. package/dist/database/mutation-log/database-schema.js +0 -4
  288. package/dist/database/mutation-log/database-schema.js.map +1 -1
  289. package/dist/database/nano-id.d.ts +4 -1
  290. package/dist/database/nano-id.d.ts.map +1 -1
  291. package/dist/database/nano-id.js +4 -1
  292. package/dist/database/nano-id.js.map +1 -1
  293. package/dist/database/nano-id.test.js +3 -3
  294. package/dist/database/nano-id.test.js.map +1 -1
  295. package/dist/database/schema.d.ts +21 -14
  296. package/dist/database/schema.d.ts.map +1 -1
  297. package/dist/database/schema.js +9 -5
  298. package/dist/database/schema.js.map +1 -1
  299. package/dist/deterministic/generate-human-id.d.ts +20 -0
  300. package/dist/deterministic/generate-human-id.d.ts.map +1 -0
  301. package/dist/deterministic/generate-human-id.js +86 -0
  302. package/dist/deterministic/generate-human-id.js.map +1 -0
  303. package/dist/deterministic/generate-human-id.test.d.ts +2 -0
  304. package/dist/deterministic/generate-human-id.test.d.ts.map +1 -0
  305. package/dist/deterministic/generate-human-id.test.js +123 -0
  306. package/dist/deterministic/generate-human-id.test.js.map +1 -0
  307. package/dist/deterministic/index.d.ts +8 -0
  308. package/dist/deterministic/index.d.ts.map +1 -0
  309. package/dist/deterministic/index.js +8 -0
  310. package/dist/deterministic/index.js.map +1 -0
  311. package/dist/deterministic/is-deterministic-mode.d.ts +14 -0
  312. package/dist/deterministic/is-deterministic-mode.d.ts.map +1 -0
  313. package/dist/deterministic/is-deterministic-mode.js +25 -0
  314. package/dist/deterministic/is-deterministic-mode.js.map +1 -0
  315. package/dist/deterministic/is-deterministic-mode.test.d.ts +2 -0
  316. package/dist/deterministic/is-deterministic-mode.test.d.ts.map +1 -0
  317. package/dist/deterministic/is-deterministic-mode.test.js +103 -0
  318. package/dist/deterministic/is-deterministic-mode.test.js.map +1 -0
  319. package/dist/deterministic/nano-id.d.ts +61 -0
  320. package/dist/deterministic/nano-id.d.ts.map +1 -0
  321. package/dist/deterministic/nano-id.js +161 -0
  322. package/dist/deterministic/nano-id.js.map +1 -0
  323. package/dist/deterministic/nano-id.test.d.ts +2 -0
  324. package/dist/deterministic/nano-id.test.d.ts.map +1 -0
  325. package/dist/deterministic/nano-id.test.js +163 -0
  326. package/dist/deterministic/nano-id.test.js.map +1 -0
  327. package/dist/deterministic/options.d.ts +53 -0
  328. package/dist/deterministic/options.d.ts.map +1 -0
  329. package/dist/deterministic/options.js +52 -0
  330. package/dist/deterministic/options.js.map +1 -0
  331. package/dist/deterministic/options.test.d.ts +2 -0
  332. package/dist/deterministic/options.test.d.ts.map +1 -0
  333. package/dist/deterministic/options.test.js +111 -0
  334. package/dist/deterministic/options.test.js.map +1 -0
  335. package/dist/deterministic/random.d.ts +68 -0
  336. package/dist/deterministic/random.d.ts.map +1 -0
  337. package/dist/deterministic/random.js +225 -0
  338. package/dist/deterministic/random.js.map +1 -0
  339. package/dist/deterministic/random.test.d.ts +2 -0
  340. package/dist/deterministic/random.test.d.ts.map +1 -0
  341. package/dist/deterministic/random.test.js +244 -0
  342. package/dist/deterministic/random.test.js.map +1 -0
  343. package/dist/deterministic/sequence.d.ts +56 -0
  344. package/dist/deterministic/sequence.d.ts.map +1 -0
  345. package/dist/deterministic/sequence.js +107 -0
  346. package/dist/deterministic/sequence.js.map +1 -0
  347. package/dist/deterministic/sequence.test.d.ts +2 -0
  348. package/dist/deterministic/sequence.test.d.ts.map +1 -0
  349. package/dist/deterministic/sequence.test.js +71 -0
  350. package/dist/deterministic/sequence.test.js.map +1 -0
  351. package/dist/deterministic/timestamp.d.ts +47 -0
  352. package/dist/deterministic/timestamp.d.ts.map +1 -0
  353. package/dist/deterministic/timestamp.js +74 -0
  354. package/dist/deterministic/timestamp.js.map +1 -0
  355. package/dist/deterministic/timestamp.test.d.ts +2 -0
  356. package/dist/deterministic/timestamp.test.d.ts.map +1 -0
  357. package/dist/deterministic/timestamp.test.js +145 -0
  358. package/dist/deterministic/timestamp.test.js.map +1 -0
  359. package/dist/deterministic/uuid-v7.d.ts +49 -0
  360. package/dist/deterministic/uuid-v7.d.ts.map +1 -0
  361. package/dist/deterministic/uuid-v7.js +75 -0
  362. package/dist/deterministic/uuid-v7.js.map +1 -0
  363. package/dist/deterministic/uuid-v7.test.d.ts +2 -0
  364. package/dist/deterministic/uuid-v7.test.d.ts.map +1 -0
  365. package/dist/deterministic/uuid-v7.test.js +114 -0
  366. package/dist/deterministic/uuid-v7.test.js.map +1 -0
  367. package/dist/discussion/create-discussion.d.ts +2 -1
  368. package/dist/discussion/create-discussion.d.ts.map +1 -1
  369. package/dist/discussion/create-discussion.js.map +1 -1
  370. package/dist/discussion/create-discussion.test.js +13 -2
  371. package/dist/discussion/create-discussion.test.js.map +1 -1
  372. package/dist/entity/eb-entity.d.ts +76 -0
  373. package/dist/entity/eb-entity.d.ts.map +1 -0
  374. package/dist/entity/eb-entity.js +156 -0
  375. package/dist/entity/eb-entity.js.map +1 -0
  376. package/dist/entity/eb-entity.test.d.ts +2 -0
  377. package/dist/entity/eb-entity.test.d.ts.map +1 -0
  378. package/dist/entity/eb-entity.test.js +573 -0
  379. package/dist/entity/eb-entity.test.js.map +1 -0
  380. package/dist/entity/index.d.ts +7 -0
  381. package/dist/entity/index.d.ts.map +1 -0
  382. package/dist/entity/index.js +4 -0
  383. package/dist/entity/index.js.map +1 -0
  384. package/dist/entity/label/create-entity-label.d.ts +61 -0
  385. package/dist/entity/label/create-entity-label.d.ts.map +1 -0
  386. package/dist/entity/label/create-entity-label.js +92 -0
  387. package/dist/entity/label/create-entity-label.js.map +1 -0
  388. package/dist/entity/label/create-entity-label.test.d.ts +2 -0
  389. package/dist/entity/label/create-entity-label.test.d.ts.map +1 -0
  390. package/dist/entity/label/create-entity-label.test.js +261 -0
  391. package/dist/entity/label/create-entity-label.test.js.map +1 -0
  392. package/dist/entity/label/schema.d.ts +40 -0
  393. package/dist/entity/label/schema.d.ts.map +1 -0
  394. package/dist/entity/label/schema.js +42 -0
  395. package/dist/entity/label/schema.js.map +1 -0
  396. package/dist/entity/label/schema.test.d.ts +2 -0
  397. package/dist/entity/label/schema.test.d.ts.map +1 -0
  398. package/dist/entity/label/schema.test.js +596 -0
  399. package/dist/entity/label/schema.test.js.map +1 -0
  400. package/dist/entity/schema.d.ts +13 -0
  401. package/dist/entity/schema.d.ts.map +1 -0
  402. package/dist/entity/schema.js +5 -0
  403. package/dist/entity/schema.js.map +1 -0
  404. package/dist/entity/thread/create-entity-thread.d.ts +75 -0
  405. package/dist/entity/thread/create-entity-thread.d.ts.map +1 -0
  406. package/dist/entity/thread/create-entity-thread.js +109 -0
  407. package/dist/entity/thread/create-entity-thread.js.map +1 -0
  408. package/dist/entity/thread/create-entity-thread.test.d.ts +2 -0
  409. package/dist/entity/thread/create-entity-thread.test.d.ts.map +1 -0
  410. package/dist/entity/thread/create-entity-thread.test.js +240 -0
  411. package/dist/entity/thread/create-entity-thread.test.js.map +1 -0
  412. package/dist/entity/thread/query-threads.test.d.ts +2 -0
  413. package/dist/entity/thread/query-threads.test.d.ts.map +1 -0
  414. package/dist/entity/thread/query-threads.test.js +330 -0
  415. package/dist/entity/thread/query-threads.test.js.map +1 -0
  416. package/dist/entity/thread/schema.d.ts +40 -0
  417. package/dist/entity/thread/schema.d.ts.map +1 -0
  418. package/dist/entity/thread/schema.js +42 -0
  419. package/dist/entity/thread/schema.js.map +1 -0
  420. package/dist/entity/thread/schema.test.d.ts +2 -0
  421. package/dist/entity/thread/schema.test.d.ts.map +1 -0
  422. package/dist/entity/thread/schema.test.js +144 -0
  423. package/dist/entity/thread/schema.test.js.map +1 -0
  424. package/dist/entity-views/entity-state-all.d.ts +52 -0
  425. package/dist/entity-views/entity-state-all.d.ts.map +1 -1
  426. package/dist/entity-views/entity-state-all.js +19 -11
  427. package/dist/entity-views/entity-state-all.js.map +1 -1
  428. package/dist/entity-views/entity-state-all.test.js +173 -0
  429. package/dist/entity-views/entity-state-all.test.js.map +1 -1
  430. package/dist/entity-views/entity-state-history.d.ts +55 -15
  431. package/dist/entity-views/entity-state-history.d.ts.map +1 -1
  432. package/dist/entity-views/entity-state-history.js +7 -4
  433. package/dist/entity-views/entity-state-history.js.map +1 -1
  434. package/dist/entity-views/entity-state-history.test.js +70 -15
  435. package/dist/entity-views/entity-state-history.test.js.map +1 -1
  436. package/dist/entity-views/entity-state.d.ts +52 -0
  437. package/dist/entity-views/entity-state.d.ts.map +1 -1
  438. package/dist/entity-views/entity-state.js +18 -10
  439. package/dist/entity-views/entity-state.js.map +1 -1
  440. package/dist/entity-views/entity-state.test.js +120 -1
  441. package/dist/entity-views/entity-state.test.js.map +1 -1
  442. package/dist/entity-views/entity-view-builder.test.js +6 -6
  443. package/dist/entity-views/entity-view-builder.test.js.map +1 -1
  444. package/dist/entity-views/types.d.ts +2 -2
  445. package/dist/file/database-schema.d.ts +25 -0
  446. package/dist/file/database-schema.d.ts.map +1 -0
  447. package/dist/file/database-schema.js +26 -0
  448. package/dist/file/database-schema.js.map +1 -0
  449. package/dist/file/database-schema.test.d.ts +2 -0
  450. package/dist/file/database-schema.test.d.ts.map +1 -0
  451. package/dist/file/database-schema.test.js +60 -0
  452. package/dist/file/database-schema.test.js.map +1 -0
  453. package/dist/file/file-handlers.d.ts.map +1 -1
  454. package/dist/file/file-handlers.js +36 -0
  455. package/dist/file/file-handlers.js.map +1 -1
  456. package/dist/file/file-handlers.test.js +4 -4
  457. package/dist/file/file-handlers.test.js.map +1 -1
  458. package/dist/file/materialize-file-data-at-changeset.d.ts +1 -1
  459. package/dist/file/materialize-file-data-at-changeset.d.ts.map +1 -1
  460. package/dist/file/materialize-file-data-at-changeset.js +55 -29
  461. package/dist/file/materialize-file-data-at-changeset.js.map +1 -1
  462. package/dist/file/materialize-file-data-at-commit.d.ts +9 -0
  463. package/dist/file/materialize-file-data-at-commit.d.ts.map +1 -0
  464. package/dist/file/materialize-file-data-at-commit.js +119 -0
  465. package/dist/file/materialize-file-data-at-commit.js.map +1 -0
  466. package/dist/file/schema.d.ts +68 -5
  467. package/dist/file/schema.d.ts.map +1 -1
  468. package/dist/file/schema.js +118 -50
  469. package/dist/file/schema.js.map +1 -1
  470. package/dist/file/schema.test.js +543 -35
  471. package/dist/file/schema.test.js.map +1 -1
  472. package/dist/file-queue/database-schema.d.ts +17 -0
  473. package/dist/file-queue/database-schema.d.ts.map +1 -0
  474. package/dist/file-queue/database-schema.js +53 -0
  475. package/dist/file-queue/database-schema.js.map +1 -0
  476. package/dist/file-queue/file-handlers.d.ts +1 -1
  477. package/dist/file-queue/file-handlers.d.ts.map +1 -1
  478. package/dist/file-queue/file-handlers.js +60 -29
  479. package/dist/file-queue/file-handlers.js.map +1 -1
  480. package/dist/file-queue/file-queue-process.d.ts.map +1 -1
  481. package/dist/file-queue/file-queue-process.js +26 -17
  482. package/dist/file-queue/file-queue-process.js.map +1 -1
  483. package/dist/file-queue/file-queue-process.test.js +133 -43
  484. package/dist/file-queue/file-queue-process.test.js.map +1 -1
  485. package/dist/file-queue/with-skip-file-queue.d.ts +18 -0
  486. package/dist/file-queue/with-skip-file-queue.d.ts.map +1 -1
  487. package/dist/file-queue/with-skip-file-queue.js +56 -10
  488. package/dist/file-queue/with-skip-file-queue.js.map +1 -1
  489. package/dist/file-queue/with-skip-file-queue.test.js +28 -12
  490. package/dist/file-queue/with-skip-file-queue.test.js.map +1 -1
  491. package/dist/hooks/create-hooks.d.ts +4 -26
  492. package/dist/hooks/create-hooks.d.ts.map +1 -1
  493. package/dist/hooks/create-hooks.js +3 -7
  494. package/dist/hooks/create-hooks.js.map +1 -1
  495. package/dist/index.d.ts +3 -0
  496. package/dist/index.d.ts.map +1 -1
  497. package/dist/index.js +3 -0
  498. package/dist/index.js.map +1 -1
  499. package/dist/key-value/database-schema.d.ts +3 -2
  500. package/dist/key-value/database-schema.d.ts.map +1 -1
  501. package/dist/key-value/database-schema.js +3 -3
  502. package/dist/key-value/database-schema.test.js +13 -4
  503. package/dist/key-value/database-schema.test.js.map +1 -1
  504. package/dist/key-value/index.d.ts +1 -1
  505. package/dist/key-value/index.d.ts.map +1 -1
  506. package/dist/key-value/index.js.map +1 -1
  507. package/dist/key-value/schema.d.ts +63 -3
  508. package/dist/key-value/schema.d.ts.map +1 -1
  509. package/dist/key-value/schema.js +8 -2
  510. package/dist/key-value/schema.js.map +1 -1
  511. package/dist/key-value/schema.test.js +91 -2
  512. package/dist/key-value/schema.test.js.map +1 -1
  513. package/dist/key-value-v2/schema.d.ts +27 -0
  514. package/dist/key-value-v2/schema.d.ts.map +1 -0
  515. package/dist/key-value-v2/schema.js +73 -0
  516. package/dist/key-value-v2/schema.js.map +1 -0
  517. package/dist/key-value-v2/schema.test.d.ts +2 -0
  518. package/dist/key-value-v2/schema.test.d.ts.map +1 -0
  519. package/dist/key-value-v2/schema.test.js +144 -0
  520. package/dist/key-value-v2/schema.test.js.map +1 -0
  521. package/dist/label/create-label.d.ts +5 -5
  522. package/dist/label/create-label.d.ts.map +1 -1
  523. package/dist/label/create-label.js +2 -2
  524. package/dist/label/create-label.js.map +1 -1
  525. package/dist/label/index.d.ts +1 -1
  526. package/dist/label/index.d.ts.map +1 -1
  527. package/dist/label/index.js.map +1 -1
  528. package/dist/label/schema.d.ts +3 -3
  529. package/dist/label/schema.d.ts.map +1 -1
  530. package/dist/label/schema.js +4 -6
  531. package/dist/label/schema.js.map +1 -1
  532. package/dist/lix/close-lix.d.ts +1 -10
  533. package/dist/lix/close-lix.d.ts.map +1 -1
  534. package/dist/lix/close-lix.js +1 -10
  535. package/dist/lix/close-lix.js.map +1 -1
  536. package/dist/lix/merge.test.js +4 -1
  537. package/dist/lix/merge.test.js.map +1 -1
  538. package/dist/lix/new-lix.d.ts +4 -2
  539. package/dist/lix/new-lix.d.ts.map +1 -1
  540. package/dist/lix/new-lix.js +244 -60
  541. package/dist/lix/new-lix.js.map +1 -1
  542. package/dist/lix/new-lix.test.js +175 -1
  543. package/dist/lix/new-lix.test.js.map +1 -1
  544. package/dist/lix/open-lix-in-memory.d.ts +1 -9
  545. package/dist/lix/open-lix-in-memory.d.ts.map +1 -1
  546. package/dist/lix/open-lix-in-memory.js +7 -15
  547. package/dist/lix/open-lix-in-memory.js.map +1 -1
  548. package/dist/lix/open-lix-in-memory.test.js +2 -1
  549. package/dist/lix/open-lix-in-memory.test.js.map +1 -1
  550. package/dist/lix/open-lix.d.ts +12 -13
  551. package/dist/lix/open-lix.d.ts.map +1 -1
  552. package/dist/lix/open-lix.js +147 -55
  553. package/dist/lix/open-lix.js.map +1 -1
  554. package/dist/lix/open-lix.test.js +242 -3
  555. package/dist/lix/open-lix.test.js.map +1 -1
  556. package/dist/lix/storage/in-memory.d.ts +7 -6
  557. package/dist/lix/storage/in-memory.d.ts.map +1 -1
  558. package/dist/lix/storage/in-memory.js +10 -17
  559. package/dist/lix/storage/in-memory.js.map +1 -1
  560. package/dist/lix/storage/in-memory.test.js +7 -68
  561. package/dist/lix/storage/in-memory.test.js.map +1 -1
  562. package/dist/lix/storage/lix-storage-adapter.d.ts +35 -5
  563. package/dist/lix/storage/lix-storage-adapter.d.ts.map +1 -1
  564. package/dist/lix/storage/opfs.d.ts +39 -10
  565. package/dist/lix/storage/opfs.d.ts.map +1 -1
  566. package/dist/lix/storage/opfs.js +148 -37
  567. package/dist/lix/storage/opfs.js.map +1 -1
  568. package/dist/lix/storage/opfs.test.js +203 -24
  569. package/dist/lix/storage/opfs.test.js.map +1 -1
  570. package/dist/lix/to-blob.d.ts +2 -9
  571. package/dist/lix/to-blob.d.ts.map +1 -1
  572. package/dist/lix/to-blob.js +2 -9
  573. package/dist/lix/to-blob.js.map +1 -1
  574. package/dist/log/create-lix-own-log.d.ts +9 -1
  575. package/dist/log/create-lix-own-log.d.ts.map +1 -1
  576. package/dist/log/create-lix-own-log.js +14 -25
  577. package/dist/log/create-lix-own-log.js.map +1 -1
  578. package/dist/log/create-lix-own-log.test.js +9 -5
  579. package/dist/log/create-lix-own-log.test.js.map +1 -1
  580. package/dist/log/create-log.d.ts +2 -2
  581. package/dist/log/create-log.d.ts.map +1 -1
  582. package/dist/log/create-log.js +2 -2
  583. package/dist/log/create-log.js.map +1 -1
  584. package/dist/log/database-schema.d.ts +33 -0
  585. package/dist/log/database-schema.d.ts.map +1 -0
  586. package/dist/log/database-schema.js +14 -0
  587. package/dist/log/database-schema.js.map +1 -0
  588. package/dist/log/database-schema.test.d.ts +2 -0
  589. package/dist/log/database-schema.test.d.ts.map +1 -0
  590. package/dist/log/database-schema.test.js +22 -0
  591. package/dist/log/database-schema.test.js.map +1 -0
  592. package/dist/log/index.d.ts +1 -1
  593. package/dist/log/index.d.ts.map +1 -1
  594. package/dist/log/index.js.map +1 -1
  595. package/dist/log/schema.d.ts +3 -3
  596. package/dist/log/schema.d.ts.map +1 -1
  597. package/dist/log/schema.js +4 -5
  598. package/dist/log/schema.js.map +1 -1
  599. package/dist/observe/create-observe.d.ts.map +1 -1
  600. package/dist/observe/create-observe.js +32 -3
  601. package/dist/observe/create-observe.js.map +1 -1
  602. package/dist/observe/create-observe.test.js +298 -44
  603. package/dist/observe/create-observe.test.js.map +1 -1
  604. package/dist/observe/determine-schema-keys.d.ts +6 -0
  605. package/dist/observe/determine-schema-keys.d.ts.map +1 -0
  606. package/dist/observe/determine-schema-keys.js +145 -0
  607. package/dist/observe/determine-schema-keys.js.map +1 -0
  608. package/dist/observe/determine-schema-keys.test.d.ts +2 -0
  609. package/dist/observe/determine-schema-keys.test.d.ts.map +1 -0
  610. package/dist/observe/determine-schema-keys.test.js +266 -0
  611. package/dist/observe/determine-schema-keys.test.js.map +1 -0
  612. package/dist/own-change-control/apply-own-change.d.ts +5 -1
  613. package/dist/own-change-control/apply-own-change.d.ts.map +1 -1
  614. package/dist/own-change-control/apply-own-change.js +26 -12
  615. package/dist/own-change-control/apply-own-change.js.map +1 -1
  616. package/dist/own-change-control/apply-own-change.test.js +86 -48
  617. package/dist/own-change-control/apply-own-change.test.js.map +1 -1
  618. package/dist/own-change-control/change-controlled-tables.d.ts +5 -7
  619. package/dist/own-change-control/change-controlled-tables.d.ts.map +1 -1
  620. package/dist/own-change-control/change-controlled-tables.js +27 -21
  621. package/dist/own-change-control/change-controlled-tables.js.map +1 -1
  622. package/dist/own-change-control/change-controlled-tables.test.js +35 -5
  623. package/dist/own-change-control/change-controlled-tables.test.js.map +1 -1
  624. package/dist/own-change-control/database-triggers.d.ts +2 -1
  625. package/dist/own-change-control/database-triggers.d.ts.map +1 -1
  626. package/dist/own-change-control/database-triggers.js +209 -67
  627. package/dist/own-change-control/database-triggers.js.map +1 -1
  628. package/dist/own-change-control/database-triggers.test.js +139 -8
  629. package/dist/own-change-control/database-triggers.test.js.map +1 -1
  630. package/dist/own-change-control/with-skip-own-change-control.d.ts.map +1 -1
  631. package/dist/own-change-control/with-skip-own-change-control.js +28 -6
  632. package/dist/own-change-control/with-skip-own-change-control.js.map +1 -1
  633. package/dist/own-change-control/with-skip-own-change-control.test.js +38 -1
  634. package/dist/own-change-control/with-skip-own-change-control.test.js.map +1 -1
  635. package/dist/plugin/lix-plugin.d.ts +3 -3
  636. package/dist/plugin/lix-plugin.d.ts.map +1 -1
  637. package/dist/plugin/load-plugin.d.ts.map +1 -1
  638. package/dist/plugin/load-plugin.js.map +1 -1
  639. package/dist/prototype/database-schema.d.ts +43 -0
  640. package/dist/prototype/database-schema.d.ts.map +1 -0
  641. package/dist/prototype/database-schema.js +72 -0
  642. package/dist/prototype/database-schema.js.map +1 -0
  643. package/dist/prototype/file-handlers.d.ts +24 -0
  644. package/dist/prototype/file-handlers.d.ts.map +1 -0
  645. package/dist/prototype/file-handlers.js +129 -0
  646. package/dist/prototype/file-handlers.js.map +1 -0
  647. package/dist/prototype/file-schema.d.ts +47 -0
  648. package/dist/prototype/file-schema.d.ts.map +1 -0
  649. package/dist/prototype/file-schema.js +135 -0
  650. package/dist/prototype/file-schema.js.map +1 -0
  651. package/dist/prototype/file-schema.test.d.ts +2 -0
  652. package/dist/prototype/file-schema.test.d.ts.map +1 -0
  653. package/dist/prototype/file-schema.test.js +146 -0
  654. package/dist/prototype/file-schema.test.js.map +1 -0
  655. package/dist/prototype/get-and-materialize-row.d.ts +5 -0
  656. package/dist/prototype/get-and-materialize-row.d.ts.map +1 -0
  657. package/dist/prototype/get-and-materialize-row.js +99 -0
  658. package/dist/prototype/get-and-materialize-row.js.map +1 -0
  659. package/dist/prototype/json-plugin.d.ts +49 -0
  660. package/dist/prototype/json-plugin.d.ts.map +1 -0
  661. package/dist/prototype/json-plugin.js +104 -0
  662. package/dist/prototype/json-plugin.js.map +1 -0
  663. package/dist/prototype/validate-file-path.d.ts +16 -0
  664. package/dist/prototype/validate-file-path.d.ts.map +1 -0
  665. package/dist/prototype/validate-file-path.js +44 -0
  666. package/dist/prototype/validate-file-path.js.map +1 -0
  667. package/dist/prototype/validate-file-path.test.d.ts +2 -0
  668. package/dist/prototype/validate-file-path.test.d.ts.map +1 -0
  669. package/dist/prototype/validate-file-path.test.js +36 -0
  670. package/dist/prototype/validate-file-path.test.js.map +1 -0
  671. package/dist/prototype/version-schema.d.ts +34 -0
  672. package/dist/prototype/version-schema.d.ts.map +1 -0
  673. package/dist/prototype/version-schema.js +86 -0
  674. package/dist/prototype/version-schema.js.map +1 -0
  675. package/dist/prototype/version-schema.test.d.ts +2 -0
  676. package/dist/prototype/version-schema.test.d.ts.map +1 -0
  677. package/dist/prototype/version-schema.test.js +114 -0
  678. package/dist/prototype/version-schema.test.js.map +1 -0
  679. package/dist/query-filter/change-conflict-in-version.d.ts +2 -0
  680. package/dist/query-filter/change-conflict-in-version.d.ts.map +1 -1
  681. package/dist/query-filter/change-conflict-in-version.js +2 -0
  682. package/dist/query-filter/change-conflict-in-version.js.map +1 -1
  683. package/dist/query-filter/change-in-version.d.ts +2 -0
  684. package/dist/query-filter/change-in-version.d.ts.map +1 -1
  685. package/dist/query-filter/change-in-version.js +2 -0
  686. package/dist/query-filter/change-in-version.js.map +1 -1
  687. package/dist/query-filter/change-is-leaf-in-version.d.ts +1 -0
  688. package/dist/query-filter/change-is-leaf-in-version.d.ts.map +1 -1
  689. package/dist/query-filter/change-is-leaf-in-version.js +1 -0
  690. package/dist/query-filter/change-is-leaf-in-version.js.map +1 -1
  691. package/dist/query-filter/change-is-leaf-of.d.ts +2 -0
  692. package/dist/query-filter/change-is-leaf-of.d.ts.map +1 -1
  693. package/dist/query-filter/change-is-leaf-of.js +2 -0
  694. package/dist/query-filter/change-is-leaf-of.js.map +1 -1
  695. package/dist/query-filter/change-is-leaf-v2.d.ts +69 -0
  696. package/dist/query-filter/change-is-leaf-v2.d.ts.map +1 -0
  697. package/dist/query-filter/change-is-leaf-v2.js +116 -0
  698. package/dist/query-filter/change-is-leaf-v2.js.map +1 -0
  699. package/dist/query-filter/change-is-leaf-v2.test.d.ts +2 -0
  700. package/dist/query-filter/change-is-leaf-v2.test.d.ts.map +1 -0
  701. package/dist/query-filter/change-is-leaf-v2.test.js +237 -0
  702. package/dist/query-filter/change-is-leaf-v2.test.js.map +1 -0
  703. package/dist/query-filter/change-is-leaf.d.ts +2 -0
  704. package/dist/query-filter/change-is-leaf.d.ts.map +1 -1
  705. package/dist/query-filter/change-is-leaf.js +2 -0
  706. package/dist/query-filter/change-is-leaf.js.map +1 -1
  707. package/dist/query-filter/change-is-lowest-common-ancestor-of.d.ts +2 -0
  708. package/dist/query-filter/change-is-lowest-common-ancestor-of.d.ts.map +1 -1
  709. package/dist/query-filter/change-is-lowest-common-ancestor-of.js +4 -0
  710. package/dist/query-filter/change-is-lowest-common-ancestor-of.js.map +1 -1
  711. package/dist/query-filter/change-is-lowest-common-ancestor-of.test.js +5 -3
  712. package/dist/query-filter/change-is-lowest-common-ancestor-of.test.js.map +1 -1
  713. package/dist/query-filter/change-set-element-in-ancestry-of.d.ts +10 -10
  714. package/dist/query-filter/change-set-element-in-ancestry-of.d.ts.map +1 -1
  715. package/dist/query-filter/change-set-element-in-ancestry-of.js +22 -17
  716. package/dist/query-filter/change-set-element-in-ancestry-of.js.map +1 -1
  717. package/dist/query-filter/change-set-element-in-ancestry-of.test.js +99 -26
  718. package/dist/query-filter/change-set-element-in-ancestry-of.test.js.map +1 -1
  719. package/dist/query-filter/change-set-element-in-symmetric-difference-of.d.ts +21 -0
  720. package/dist/query-filter/change-set-element-in-symmetric-difference-of.d.ts.map +1 -0
  721. package/dist/query-filter/change-set-element-in-symmetric-difference-of.js +37 -0
  722. package/dist/query-filter/change-set-element-in-symmetric-difference-of.js.map +1 -0
  723. package/dist/query-filter/change-set-element-in-symmetric-difference-of.test.d.ts +2 -0
  724. package/dist/query-filter/change-set-element-in-symmetric-difference-of.test.d.ts.map +1 -0
  725. package/dist/query-filter/change-set-element-in-symmetric-difference-of.test.js +276 -0
  726. package/dist/query-filter/change-set-element-in-symmetric-difference-of.test.js.map +1 -0
  727. package/dist/query-filter/change-set-element-in-symmetric-difference.d.ts +2 -2
  728. package/dist/query-filter/change-set-element-in-symmetric-difference.d.ts.map +1 -1
  729. package/dist/query-filter/change-set-element-in-symmetric-difference.js.map +1 -1
  730. package/dist/query-filter/change-set-element-in-symmetric-difference.test.js.map +1 -1
  731. package/dist/query-filter/change-set-element-is-leaf-of.d.ts +11 -11
  732. package/dist/query-filter/change-set-element-is-leaf-of.d.ts.map +1 -1
  733. package/dist/query-filter/change-set-element-is-leaf-of.js +58 -36
  734. package/dist/query-filter/change-set-element-is-leaf-of.js.map +1 -1
  735. package/dist/query-filter/change-set-element-is-leaf-of.test.js +83 -24
  736. package/dist/query-filter/change-set-element-is-leaf-of.test.js.map +1 -1
  737. package/dist/query-filter/change-set-is-ancestor-of.d.ts +2 -2
  738. package/dist/query-filter/change-set-is-ancestor-of.d.ts.map +1 -1
  739. package/dist/query-filter/change-set-is-ancestor-of.js.map +1 -1
  740. package/dist/query-filter/change-set-is-descendant-of.d.ts +2 -2
  741. package/dist/query-filter/change-set-is-descendant-of.d.ts.map +1 -1
  742. package/dist/query-filter/change-set-is-descendant-of.js.map +1 -1
  743. package/dist/query-filter/commit-is-ancestor-of.d.ts +51 -0
  744. package/dist/query-filter/commit-is-ancestor-of.d.ts.map +1 -0
  745. package/dist/query-filter/commit-is-ancestor-of.js +63 -0
  746. package/dist/query-filter/commit-is-ancestor-of.js.map +1 -0
  747. package/dist/query-filter/commit-is-ancestor-of.test.d.ts +2 -0
  748. package/dist/query-filter/commit-is-ancestor-of.test.d.ts.map +1 -0
  749. package/dist/query-filter/commit-is-ancestor-of.test.js +292 -0
  750. package/dist/query-filter/commit-is-ancestor-of.test.js.map +1 -0
  751. package/dist/query-filter/commit-is-descendant-of.d.ts +44 -0
  752. package/dist/query-filter/commit-is-descendant-of.d.ts.map +1 -0
  753. package/dist/query-filter/commit-is-descendant-of.js +56 -0
  754. package/dist/query-filter/commit-is-descendant-of.js.map +1 -0
  755. package/dist/query-filter/commit-is-descendant-of.test.d.ts +2 -0
  756. package/dist/query-filter/commit-is-descendant-of.test.d.ts.map +1 -0
  757. package/dist/query-filter/commit-is-descendant-of.test.js +325 -0
  758. package/dist/query-filter/commit-is-descendant-of.test.js.map +1 -0
  759. package/dist/query-filter/index.d.ts +2 -4
  760. package/dist/query-filter/index.d.ts.map +1 -1
  761. package/dist/query-filter/index.js +2 -4
  762. package/dist/query-filter/index.js.map +1 -1
  763. package/dist/query-filter/version-change-in-difference.d.ts +2 -0
  764. package/dist/query-filter/version-change-in-difference.d.ts.map +1 -1
  765. package/dist/query-filter/version-change-in-difference.js +2 -0
  766. package/dist/query-filter/version-change-in-difference.js.map +1 -1
  767. package/dist/query-filter/version-change-in-symmetric-difference.d.ts +2 -0
  768. package/dist/query-filter/version-change-in-symmetric-difference.d.ts.map +1 -1
  769. package/dist/query-filter/version-change-in-symmetric-difference.js +2 -0
  770. package/dist/query-filter/version-change-in-symmetric-difference.js.map +1 -1
  771. package/dist/schema-definition/definition.d.ts +73 -30
  772. package/dist/schema-definition/definition.d.ts.map +1 -1
  773. package/dist/schema-definition/definition.js +38 -14
  774. package/dist/schema-definition/definition.js.map +1 -1
  775. package/dist/schema-definition/definition.test.js +70 -25
  776. package/dist/schema-definition/definition.test.js.map +1 -1
  777. package/dist/schema-definition/validate-lix-schema.d.ts.map +1 -1
  778. package/dist/schema-definition/validate-lix-schema.js.map +1 -1
  779. package/dist/schema-definition/validate-lix-schema.test.js +1 -1
  780. package/dist/schema-definition/validate-lix-schema.test.js.map +1 -1
  781. package/dist/server-protocol-handler/environment/create-in-memory-environment.test.js +2 -2
  782. package/dist/server-protocol-handler/environment/create-in-memory-environment.test.js.map +1 -1
  783. package/dist/server-protocol-handler/routes/push-v1.test.js +1 -1
  784. package/dist/server-protocol-handler/routes/push-v1.test.js.map +1 -1
  785. package/dist/services/env-variables/index.js +1 -1
  786. package/dist/services/env-variables/index.js.map +1 -1
  787. package/dist/snapshot/create-snapshot.d.ts +2 -2
  788. package/dist/snapshot/create-snapshot.d.ts.map +1 -1
  789. package/dist/snapshot/create-snapshot.test.js +3 -3
  790. package/dist/snapshot/create-snapshot.test.js.map +1 -1
  791. package/dist/snapshot/database-schema.d.ts +19 -0
  792. package/dist/snapshot/database-schema.d.ts.map +1 -0
  793. package/dist/snapshot/database-schema.js +33 -0
  794. package/dist/snapshot/database-schema.js.map +1 -0
  795. package/dist/snapshot/database-schema.test.d.ts +2 -0
  796. package/dist/snapshot/database-schema.test.d.ts.map +1 -0
  797. package/dist/snapshot/database-schema.test.js +58 -0
  798. package/dist/snapshot/database-schema.test.js.map +1 -0
  799. package/dist/snapshot/schema.d.ts.map +1 -1
  800. package/dist/snapshot/schema.js +10 -2
  801. package/dist/snapshot/schema.js.map +1 -1
  802. package/dist/snapshot/schema.test.js +86 -0
  803. package/dist/snapshot/schema.test.js.map +1 -1
  804. package/dist/state/cache/clear-state-cache.d.ts +8 -0
  805. package/dist/state/cache/clear-state-cache.d.ts.map +1 -0
  806. package/dist/state/cache/clear-state-cache.js +14 -0
  807. package/dist/state/cache/clear-state-cache.js.map +1 -0
  808. package/dist/state/cache/clear-state-cache.test.d.ts +2 -0
  809. package/dist/state/cache/clear-state-cache.test.d.ts.map +1 -0
  810. package/dist/state/cache/clear-state-cache.test.js +34 -0
  811. package/dist/state/cache/clear-state-cache.test.js.map +1 -0
  812. package/dist/state/cache/is-stale-state-cache.d.ts +5 -0
  813. package/dist/state/cache/is-stale-state-cache.d.ts.map +1 -0
  814. package/dist/state/cache/is-stale-state-cache.js +22 -0
  815. package/dist/state/cache/is-stale-state-cache.js.map +1 -0
  816. package/dist/state/cache/is-stale-state-cache.test.d.ts +2 -0
  817. package/dist/state/cache/is-stale-state-cache.test.d.ts.map +1 -0
  818. package/dist/state/cache/is-stale-state-cache.test.js +27 -0
  819. package/dist/state/cache/is-stale-state-cache.test.js.map +1 -0
  820. package/dist/state/cache/mark-state-cache-as-stale.d.ts +10 -0
  821. package/dist/state/cache/mark-state-cache-as-stale.d.ts.map +1 -0
  822. package/dist/state/cache/mark-state-cache-as-stale.js +42 -0
  823. package/dist/state/cache/mark-state-cache-as-stale.js.map +1 -0
  824. package/dist/state/cache/populate-state-cache.d.ts +9 -0
  825. package/dist/state/cache/populate-state-cache.d.ts.map +1 -0
  826. package/dist/state/cache/populate-state-cache.js +106 -0
  827. package/dist/state/cache/populate-state-cache.js.map +1 -0
  828. package/dist/state/cache/populate-state-cache.test.d.ts +2 -0
  829. package/dist/state/cache/populate-state-cache.test.d.ts.map +1 -0
  830. package/dist/state/cache/populate-state-cache.test.js +204 -0
  831. package/dist/state/cache/populate-state-cache.test.js.map +1 -0
  832. package/dist/state/cache/schema.d.ts +20 -0
  833. package/dist/state/cache/schema.d.ts.map +1 -0
  834. package/dist/state/cache/schema.js +21 -0
  835. package/dist/state/cache/schema.js.map +1 -0
  836. package/dist/state/cache/update-state-cache.d.ts +21 -0
  837. package/dist/state/cache/update-state-cache.d.ts.map +1 -0
  838. package/dist/state/cache/update-state-cache.js +294 -0
  839. package/dist/state/cache/update-state-cache.js.map +1 -0
  840. package/dist/state/cache/update-state-cache.test.d.ts +2 -0
  841. package/dist/state/cache/update-state-cache.test.d.ts.map +1 -0
  842. package/dist/state/cache/update-state-cache.test.js +440 -0
  843. package/dist/state/cache/update-state-cache.test.js.map +1 -0
  844. package/dist/state/commit.d.ts +18 -0
  845. package/dist/state/commit.d.ts.map +1 -0
  846. package/dist/state/commit.js +457 -0
  847. package/dist/state/commit.js.map +1 -0
  848. package/dist/state/commit.test.d.ts +2 -0
  849. package/dist/state/commit.test.d.ts.map +1 -0
  850. package/dist/state/commit.test.js +1173 -0
  851. package/dist/state/commit.test.js.map +1 -0
  852. package/dist/state/get-version-record-by-id-or-throw.d.ts +2 -2
  853. package/dist/state/get-version-record-by-id-or-throw.d.ts.map +1 -1
  854. package/dist/state/get-version-record-by-id-or-throw.js.map +1 -1
  855. package/dist/state/handle-state-mutation.d.ts +0 -12
  856. package/dist/state/handle-state-mutation.d.ts.map +1 -1
  857. package/dist/state/handle-state-mutation.js +11 -206
  858. package/dist/state/handle-state-mutation.js.map +1 -1
  859. package/dist/state/handle-state-mutation.test.js +213 -159
  860. package/dist/state/handle-state-mutation.test.js.map +1 -1
  861. package/dist/state/insert-transaction-state.d.ts +71 -0
  862. package/dist/state/insert-transaction-state.d.ts.map +1 -0
  863. package/dist/state/insert-transaction-state.js +272 -0
  864. package/dist/state/insert-transaction-state.js.map +1 -0
  865. package/dist/state/insert-transaction-state.test.d.ts +2 -0
  866. package/dist/state/insert-transaction-state.test.d.ts.map +1 -0
  867. package/dist/state/insert-transaction-state.test.js +789 -0
  868. package/dist/state/insert-transaction-state.test.js.map +1 -0
  869. package/dist/state/materialize-state.d.ts +3 -0
  870. package/dist/state/materialize-state.d.ts.map +1 -0
  871. package/dist/state/materialize-state.js +230 -0
  872. package/dist/state/materialize-state.js.map +1 -0
  873. package/dist/state/materialize-state.test.d.ts +2 -0
  874. package/dist/state/materialize-state.test.d.ts.map +1 -0
  875. package/dist/state/materialize-state.test.js +1934 -0
  876. package/dist/state/materialize-state.test.js.map +1 -0
  877. package/dist/state/primary-key.d.ts +39 -0
  878. package/dist/state/primary-key.d.ts.map +1 -0
  879. package/dist/state/primary-key.js +62 -0
  880. package/dist/state/primary-key.js.map +1 -0
  881. package/dist/state/primary-key.test.d.ts +2 -0
  882. package/dist/state/primary-key.test.d.ts.map +1 -0
  883. package/dist/state/primary-key.test.js +114 -0
  884. package/dist/state/primary-key.test.js.map +1 -0
  885. package/dist/state/resolved-state-view.d.ts +33 -0
  886. package/dist/state/resolved-state-view.d.ts.map +1 -0
  887. package/dist/state/resolved-state-view.js +182 -0
  888. package/dist/state/resolved-state-view.js.map +1 -0
  889. package/dist/state/resolved-state-view.test.d.ts +2 -0
  890. package/dist/state/resolved-state-view.test.d.ts.map +1 -0
  891. package/dist/state/resolved-state-view.test.js +433 -0
  892. package/dist/state/resolved-state-view.test.js.map +1 -0
  893. package/dist/state/schema.d.ts +6 -19
  894. package/dist/state/schema.d.ts.map +1 -1
  895. package/dist/state/schema.js +533 -796
  896. package/dist/state/schema.js.map +1 -1
  897. package/dist/state/schema.test.js +1684 -1013
  898. package/dist/state/schema.test.js.map +1 -1
  899. package/dist/state/untracked/schema.d.ts +25 -0
  900. package/dist/state/untracked/schema.d.ts.map +1 -0
  901. package/dist/state/untracked/schema.js +38 -0
  902. package/dist/state/untracked/schema.js.map +1 -0
  903. package/dist/state/untracked/schema.test.d.ts +2 -0
  904. package/dist/state/untracked/schema.test.d.ts.map +1 -0
  905. package/dist/state/untracked/schema.test.js +275 -0
  906. package/dist/state/untracked/schema.test.js.map +1 -0
  907. package/dist/state/untracked/update-untracked-state.d.ts +36 -0
  908. package/dist/state/untracked/update-untracked-state.d.ts.map +1 -0
  909. package/dist/state/untracked/update-untracked-state.js +113 -0
  910. package/dist/state/untracked/update-untracked-state.js.map +1 -0
  911. package/dist/state/untracked/update-untracked-state.test.d.ts +2 -0
  912. package/dist/state/untracked/update-untracked-state.test.d.ts.map +1 -0
  913. package/dist/state/untracked/update-untracked-state.test.js +417 -0
  914. package/dist/state/untracked/update-untracked-state.test.js.map +1 -0
  915. package/dist/state/validate-snapshot-content.d.ts +9 -0
  916. package/dist/state/validate-snapshot-content.d.ts.map +1 -0
  917. package/dist/state/validate-snapshot-content.js +42 -0
  918. package/dist/state/validate-snapshot-content.js.map +1 -0
  919. package/dist/state/validate-snapshot-content.test.d.ts +2 -0
  920. package/dist/state/validate-snapshot-content.test.d.ts.map +1 -0
  921. package/dist/state/validate-snapshot-content.test.js +67 -0
  922. package/dist/state/validate-snapshot-content.test.js.map +1 -0
  923. package/dist/state/validate-state-mutation.d.ts +2 -2
  924. package/dist/state/validate-state-mutation.d.ts.map +1 -1
  925. package/dist/state/validate-state-mutation.js +211 -51
  926. package/dist/state/validate-state-mutation.js.map +1 -1
  927. package/dist/state/validate-state-mutation.test.js +910 -75
  928. package/dist/state/validate-state-mutation.test.js.map +1 -1
  929. package/dist/state-history/schema.d.ts +29 -19
  930. package/dist/state-history/schema.d.ts.map +1 -1
  931. package/dist/state-history/schema.js +49 -37
  932. package/dist/state-history/schema.js.map +1 -1
  933. package/dist/state-history/schema.test.js +221 -67
  934. package/dist/state-history/schema.test.js.map +1 -1
  935. package/dist/stored-schema/index.d.ts +1 -1
  936. package/dist/stored-schema/index.d.ts.map +1 -1
  937. package/dist/stored-schema/index.js +1 -1
  938. package/dist/stored-schema/index.js.map +1 -1
  939. package/dist/stored-schema/schema.d.ts +1 -1
  940. package/dist/stored-schema/schema.d.ts.map +1 -1
  941. package/dist/stored-schema/schema.test.js.map +1 -1
  942. package/dist/sync/push-to-server.test.js.map +1 -1
  943. package/dist/test-utilities/simulation-test/cache-miss-simulation.d.ts +8 -0
  944. package/dist/test-utilities/simulation-test/cache-miss-simulation.d.ts.map +1 -0
  945. package/dist/test-utilities/simulation-test/cache-miss-simulation.js +79 -0
  946. package/dist/test-utilities/simulation-test/cache-miss-simulation.js.map +1 -0
  947. package/dist/test-utilities/simulation-test/cache-miss-simulation.test.d.ts +2 -0
  948. package/dist/test-utilities/simulation-test/cache-miss-simulation.test.d.ts.map +1 -0
  949. package/dist/test-utilities/simulation-test/cache-miss-simulation.test.js +127 -0
  950. package/dist/test-utilities/simulation-test/cache-miss-simulation.test.js.map +1 -0
  951. package/dist/test-utilities/simulation-test/chaotic-timestamp-simulation.d.ts +2 -0
  952. package/dist/test-utilities/simulation-test/chaotic-timestamp-simulation.d.ts.map +1 -0
  953. package/dist/test-utilities/simulation-test/chaotic-timestamp-simulation.js +2 -0
  954. package/dist/test-utilities/simulation-test/chaotic-timestamp-simulation.js.map +1 -0
  955. package/dist/test-utilities/simulation-test/out-of-order-sequence-simulation.d.ts +10 -0
  956. package/dist/test-utilities/simulation-test/out-of-order-sequence-simulation.d.ts.map +1 -0
  957. package/dist/test-utilities/simulation-test/out-of-order-sequence-simulation.js +52 -0
  958. package/dist/test-utilities/simulation-test/out-of-order-sequence-simulation.js.map +1 -0
  959. package/dist/test-utilities/simulation-test/out-of-order-sequence-simulation.test.d.ts +2 -0
  960. package/dist/test-utilities/simulation-test/out-of-order-sequence-simulation.test.d.ts.map +1 -0
  961. package/dist/test-utilities/simulation-test/out-of-order-sequence-simulation.test.js +71 -0
  962. package/dist/test-utilities/simulation-test/out-of-order-sequence-simulation.test.js.map +1 -0
  963. package/dist/test-utilities/simulation-test/simulation-test.d.ts +82 -0
  964. package/dist/test-utilities/simulation-test/simulation-test.d.ts.map +1 -0
  965. package/dist/test-utilities/simulation-test/simulation-test.js +85 -0
  966. package/dist/test-utilities/simulation-test/simulation-test.js.map +1 -0
  967. package/dist/test-utilities/simulation-test/simulation-test.test.d.ts +2 -0
  968. package/dist/test-utilities/simulation-test/simulation-test.test.d.ts.map +1 -0
  969. package/dist/test-utilities/simulation-test/simulation-test.test.js +310 -0
  970. package/dist/test-utilities/simulation-test/simulation-test.test.js.map +1 -0
  971. package/dist/thread/comment-utils.d.ts +2 -0
  972. package/dist/thread/comment-utils.d.ts.map +1 -0
  973. package/dist/thread/comment-utils.js +2 -0
  974. package/dist/thread/comment-utils.js.map +1 -0
  975. package/dist/thread/comment.d.ts +24 -0
  976. package/dist/thread/comment.d.ts.map +1 -0
  977. package/dist/thread/comment.js +43 -0
  978. package/dist/thread/comment.js.map +1 -0
  979. package/dist/thread/create-thread-comment.d.ts +2 -2
  980. package/dist/thread/create-thread-comment.d.ts.map +1 -1
  981. package/dist/thread/create-thread-comment.js +20 -3
  982. package/dist/thread/create-thread-comment.js.map +1 -1
  983. package/dist/thread/create-thread-comment.test.js +49 -3
  984. package/dist/thread/create-thread-comment.test.js.map +1 -1
  985. package/dist/thread/create-thread.d.ts +18 -4
  986. package/dist/thread/create-thread.d.ts.map +1 -1
  987. package/dist/thread/create-thread.js +24 -3
  988. package/dist/thread/create-thread.js.map +1 -1
  989. package/dist/thread/create-thread.test.js +149 -0
  990. package/dist/thread/create-thread.test.js.map +1 -1
  991. package/dist/thread/database-schema.d.ts +20 -0
  992. package/dist/thread/database-schema.d.ts.map +1 -0
  993. package/dist/thread/database-schema.js +57 -0
  994. package/dist/thread/database-schema.js.map +1 -0
  995. package/dist/thread/database-schema.test.d.ts +2 -0
  996. package/dist/thread/database-schema.test.d.ts.map +1 -0
  997. package/dist/thread/database-schema.test.js +59 -0
  998. package/dist/thread/database-schema.test.js.map +1 -0
  999. package/dist/thread/index.d.ts +2 -1
  1000. package/dist/thread/index.d.ts.map +1 -1
  1001. package/dist/thread/schema.d.ts +13 -10
  1002. package/dist/thread/schema.d.ts.map +1 -1
  1003. package/dist/thread/schema.js +20 -14
  1004. package/dist/thread/schema.js.map +1 -1
  1005. package/dist/thread/schema.test.js +65 -0
  1006. package/dist/thread/schema.test.js.map +1 -1
  1007. package/dist/version/create-version.d.ts +14 -9
  1008. package/dist/version/create-version.d.ts.map +1 -1
  1009. package/dist/version/create-version.js +40 -12
  1010. package/dist/version/create-version.js.map +1 -1
  1011. package/dist/version/create-version.test.js +80 -25
  1012. package/dist/version/create-version.test.js.map +1 -1
  1013. package/dist/version/database-schema.d.ts +21 -0
  1014. package/dist/version/database-schema.d.ts.map +1 -0
  1015. package/dist/version/database-schema.js +169 -0
  1016. package/dist/version/database-schema.js.map +1 -0
  1017. package/dist/version/database-schema.test.d.ts +2 -0
  1018. package/dist/version/database-schema.test.d.ts.map +1 -0
  1019. package/dist/version/database-schema.test.js +625 -0
  1020. package/dist/version/database-schema.test.js.map +1 -0
  1021. package/dist/version/index.d.ts +1 -1
  1022. package/dist/version/index.d.ts.map +1 -1
  1023. package/dist/version/merge-version.d.ts +3 -0
  1024. package/dist/version/merge-version.d.ts.map +1 -1
  1025. package/dist/version/merge-version.js +3 -0
  1026. package/dist/version/merge-version.js.map +1 -1
  1027. package/dist/version/merge-version.test.js +10 -5
  1028. package/dist/version/merge-version.test.js.map +1 -1
  1029. package/dist/version/schema.d.ts +28 -23
  1030. package/dist/version/schema.d.ts.map +1 -1
  1031. package/dist/version/schema.js +42 -30
  1032. package/dist/version/schema.js.map +1 -1
  1033. package/dist/version/schema.test.js +311 -88
  1034. package/dist/version/schema.test.js.map +1 -1
  1035. package/dist/version/select-active-version.d.ts +7 -0
  1036. package/dist/version/select-active-version.d.ts.map +1 -0
  1037. package/dist/version/select-active-version.js +7 -0
  1038. package/dist/version/select-active-version.js.map +1 -0
  1039. package/dist/version/switch-version.d.ts +3 -3
  1040. package/dist/version/switch-version.d.ts.map +1 -1
  1041. package/dist/version/switch-version.js +1 -1
  1042. package/dist/version/switch-version.test.js +1 -1
  1043. package/dist/version/switch-version.test.js.map +1 -1
  1044. package/dist/version/update-changes-in-version.d.ts +2 -0
  1045. package/dist/version/update-changes-in-version.d.ts.map +1 -1
  1046. package/dist/version/update-changes-in-version.js +2 -0
  1047. package/dist/version/update-changes-in-version.js.map +1 -1
  1048. package/dist/version-v2/create-version.d.ts +18 -0
  1049. package/dist/version-v2/create-version.d.ts.map +1 -0
  1050. package/dist/version-v2/create-version.js +35 -0
  1051. package/dist/version-v2/create-version.js.map +1 -0
  1052. package/dist/version-v2/create-version.test.d.ts +2 -0
  1053. package/dist/version-v2/create-version.test.d.ts.map +1 -0
  1054. package/dist/version-v2/create-version.test.js +88 -0
  1055. package/dist/version-v2/create-version.test.js.map +1 -0
  1056. package/dist/version-v2/database-schema.d.ts +21 -0
  1057. package/dist/version-v2/database-schema.d.ts.map +1 -0
  1058. package/dist/version-v2/database-schema.js +169 -0
  1059. package/dist/version-v2/database-schema.js.map +1 -0
  1060. package/dist/version-v2/database-schema.test.d.ts +2 -0
  1061. package/dist/version-v2/database-schema.test.d.ts.map +1 -0
  1062. package/dist/version-v2/database-schema.test.js +625 -0
  1063. package/dist/version-v2/database-schema.test.js.map +1 -0
  1064. package/dist/version-v2/index.d.ts +2 -0
  1065. package/dist/version-v2/index.d.ts.map +1 -0
  1066. package/dist/version-v2/index.js +2 -0
  1067. package/dist/version-v2/index.js.map +1 -0
  1068. package/dist/version-v2/swich-version.d.ts +27 -0
  1069. package/dist/version-v2/swich-version.d.ts.map +1 -0
  1070. package/dist/version-v2/swich-version.js +46 -0
  1071. package/dist/version-v2/swich-version.js.map +1 -0
  1072. package/dist/version-v2/switch-version.d.ts +27 -0
  1073. package/dist/version-v2/switch-version.d.ts.map +1 -0
  1074. package/dist/version-v2/switch-version.js +91 -0
  1075. package/dist/version-v2/switch-version.js.map +1 -0
  1076. package/dist/version-v2/switch-version.test.d.ts +2 -0
  1077. package/dist/version-v2/switch-version.test.d.ts.map +1 -0
  1078. package/dist/version-v2/switch-version.test.js +110 -0
  1079. package/dist/version-v2/switch-version.test.js.map +1 -0
  1080. package/dist/version-v2/with-skip-update-working-change-set.d.ts +3 -0
  1081. package/dist/version-v2/with-skip-update-working-change-set.d.ts.map +1 -0
  1082. package/dist/version-v2/with-skip-update-working-change-set.js +50 -0
  1083. package/dist/version-v2/with-skip-update-working-change-set.js.map +1 -0
  1084. package/dist/version-v2/with-skip-update-working-change-set.test.d.ts +2 -0
  1085. package/dist/version-v2/with-skip-update-working-change-set.test.d.ts.map +1 -0
  1086. package/dist/version-v2/with-skip-update-working-change-set.test.js +49 -0
  1087. package/dist/version-v2/with-skip-update-working-change-set.test.js.map +1 -0
  1088. package/package.json +3 -3
  1089. package/src/account/create-account.ts +7 -7
  1090. package/src/account/index.ts +2 -2
  1091. package/src/account/schema.test.ts +99 -99
  1092. package/src/account/schema.ts +91 -35
  1093. package/src/account/switch-account.test.ts +4 -4
  1094. package/src/account/switch-account.ts +6 -6
  1095. package/src/change/index.ts +4 -1
  1096. package/src/change/schema.test.ts +38 -0
  1097. package/src/change/schema.ts +91 -11
  1098. package/src/change-author/index.ts +4 -1
  1099. package/src/change-author/schema.test.ts +306 -242
  1100. package/src/change-author/schema.ts +18 -12
  1101. package/src/change-proposal/create-change-proposal.ts +3 -3
  1102. package/src/change-proposal/database-schema.ts +1 -1
  1103. package/src/change-set/apply-change-set.test.ts +10 -7
  1104. package/src/change-set/apply-change-set.ts +44 -56
  1105. package/src/change-set/create-change-set.test.ts +0 -39
  1106. package/src/change-set/create-change-set.ts +9 -33
  1107. package/src/change-set/index.ts +3 -11
  1108. package/src/change-set/schema.test.ts +0 -310
  1109. package/src/change-set/schema.ts +43 -100
  1110. package/src/commit/apply-commit.test.ts +426 -0
  1111. package/src/commit/apply-commit.ts +74 -0
  1112. package/src/{change-set → commit}/create-checkpoint.test.ts +244 -26
  1113. package/src/commit/create-checkpoint.ts +140 -0
  1114. package/src/commit/create-commit.ts +80 -0
  1115. package/src/{change-set/create-merge-change-set.test.ts → commit/create-merge-commit.test.ts} +50 -19
  1116. package/src/{change-set/create-merge-change-set.ts → commit/create-merge-commit.ts} +55 -16
  1117. package/src/{change-set/create-transition-change-set.test.ts → commit/create-transition-commit.test.ts} +43 -32
  1118. package/src/{change-set/create-transition-change-set.ts → commit/create-transition-commit.ts} +60 -22
  1119. package/src/{change-set/create-undo-change-set.test.ts → commit/create-undo-commit.test.ts} +52 -23
  1120. package/src/{change-set/create-undo-change-set.ts → commit/create-undo-commit.ts} +59 -26
  1121. package/src/commit/index.ts +11 -0
  1122. package/src/commit/schema.test.ts +257 -0
  1123. package/src/commit/schema.ts +104 -0
  1124. package/src/database/index.ts +0 -2
  1125. package/src/database/init-db.ts +113 -45
  1126. package/src/database/kysely-plugin/json-column-plugin.test.ts +404 -0
  1127. package/src/database/kysely-plugin/json-column-plugin.ts +80 -15
  1128. package/src/database/nano-id.test.ts +3 -3
  1129. package/src/database/nano-id.ts +4 -1
  1130. package/src/database/schema.ts +26 -24
  1131. package/src/deterministic/generate-human-id.test.ts +154 -0
  1132. package/src/deterministic/generate-human-id.ts +94 -0
  1133. package/src/deterministic/index.ts +7 -0
  1134. package/src/deterministic/is-deterministic-mode.test.ts +133 -0
  1135. package/src/deterministic/is-deterministic-mode.ts +32 -0
  1136. package/src/deterministic/nano-id.test.ts +200 -0
  1137. package/src/deterministic/nano-id.ts +188 -0
  1138. package/src/deterministic/options.test.ts +157 -0
  1139. package/src/deterministic/options.ts +62 -0
  1140. package/src/deterministic/random.test.ts +293 -0
  1141. package/src/deterministic/random.ts +261 -0
  1142. package/src/deterministic/sequence.test.ts +93 -0
  1143. package/src/deterministic/sequence.ts +132 -0
  1144. package/src/deterministic/timestamp.test.ts +170 -0
  1145. package/src/deterministic/timestamp.ts +83 -0
  1146. package/src/deterministic/uuid-v7.test.ts +144 -0
  1147. package/src/deterministic/uuid-v7.ts +82 -0
  1148. package/src/entity/eb-entity.test.ts +687 -0
  1149. package/src/entity/eb-entity.ts +203 -0
  1150. package/src/entity/index.ts +12 -0
  1151. package/src/entity/label/create-entity-label.test.ts +316 -0
  1152. package/src/entity/label/create-entity-label.ts +113 -0
  1153. package/src/entity/label/schema.test.ts +692 -0
  1154. package/src/entity/label/schema.ts +55 -0
  1155. package/src/entity/schema.ts +22 -0
  1156. package/src/entity/thread/create-entity-thread.test.ts +282 -0
  1157. package/src/entity/thread/create-entity-thread.ts +134 -0
  1158. package/src/entity/thread/query-threads.test.ts +394 -0
  1159. package/src/entity/thread/schema.test.ts +170 -0
  1160. package/src/entity/thread/schema.ts +55 -0
  1161. package/src/entity-views/README.md +214 -0
  1162. package/src/entity-views/entity-state-all.test.ts +202 -0
  1163. package/src/entity-views/entity-state-all.ts +80 -11
  1164. package/src/entity-views/entity-state-history.test.ts +78 -16
  1165. package/src/entity-views/entity-state-history.ts +68 -19
  1166. package/src/entity-views/entity-state.test.ts +141 -1
  1167. package/src/entity-views/entity-state.ts +79 -10
  1168. package/src/entity-views/entity-view-builder.test.ts +6 -6
  1169. package/src/entity-views/types.ts +2 -2
  1170. package/src/file/file-handlers.test.ts +4 -4
  1171. package/src/file/file-handlers.ts +40 -0
  1172. package/src/file/materialize-file-data-at-commit.ts +157 -0
  1173. package/src/file/schema.test.ts +693 -37
  1174. package/src/file/schema.ts +183 -56
  1175. package/src/hooks/create-hooks.ts +7 -40
  1176. package/src/index.ts +3 -0
  1177. package/src/key-value/index.ts +1 -1
  1178. package/src/key-value/schema.test.ts +103 -2
  1179. package/src/key-value/schema.ts +66 -5
  1180. package/src/label/create-label.ts +7 -7
  1181. package/src/label/index.ts +1 -1
  1182. package/src/label/schema.ts +7 -10
  1183. package/src/lix/new-lix.test.ts +202 -2
  1184. package/src/lix/new-lix.ts +305 -81
  1185. package/src/lix/open-lix.test.ts +308 -5
  1186. package/src/lix/open-lix.ts +169 -68
  1187. package/src/lix/storage/in-memory.test.ts +9 -83
  1188. package/src/lix/storage/in-memory.ts +13 -18
  1189. package/src/lix/storage/lix-storage-adapter.ts +41 -5
  1190. package/src/lix/storage/opfs.test.ts +254 -31
  1191. package/src/lix/storage/opfs.ts +178 -40
  1192. package/src/log/create-lix-own-log.test.ts +11 -7
  1193. package/src/log/create-lix-own-log.ts +21 -32
  1194. package/src/log/create-log.ts +4 -4
  1195. package/src/log/index.ts +1 -1
  1196. package/src/log/schema.ts +6 -10
  1197. package/src/observe/create-observe.test.ts +395 -60
  1198. package/src/observe/create-observe.ts +41 -3
  1199. package/src/observe/determine-schema-keys.test.ts +371 -0
  1200. package/src/observe/determine-schema-keys.ts +165 -0
  1201. package/src/plugin/lix-plugin.ts +3 -3
  1202. package/src/query-filter/change-set-element-in-ancestry-of.test.ts +112 -26
  1203. package/src/query-filter/change-set-element-in-ancestry-of.ts +25 -20
  1204. package/src/query-filter/change-set-element-in-symmetric-difference.test.ts +6 -6
  1205. package/src/query-filter/change-set-element-in-symmetric-difference.ts +3 -3
  1206. package/src/query-filter/change-set-element-is-leaf-of.test.ts +83 -24
  1207. package/src/query-filter/change-set-element-is-leaf-of.ts +61 -39
  1208. package/src/query-filter/commit-is-ancestor-of.test.ts +333 -0
  1209. package/src/query-filter/commit-is-ancestor-of.ts +77 -0
  1210. package/src/query-filter/commit-is-descendant-of.test.ts +365 -0
  1211. package/src/query-filter/commit-is-descendant-of.ts +70 -0
  1212. package/src/query-filter/index.ts +2 -4
  1213. package/src/schema-definition/definition.test.ts +73 -25
  1214. package/src/schema-definition/definition.ts +87 -30
  1215. package/src/schema-definition/index.ts +1 -1
  1216. package/src/schema-definition/validate-lix-schema.test.ts +14 -5
  1217. package/src/schema-definition/validate-lix-schema.ts +9 -13
  1218. package/src/server-protocol-handler/environment/create-in-memory-environment.test.ts +2 -2
  1219. package/src/server-protocol-handler/routes/push-v1.test.ts +1 -1
  1220. package/src/snapshot/schema.test.ts +113 -0
  1221. package/src/snapshot/schema.ts +10 -2
  1222. package/src/state/README.md +95 -0
  1223. package/src/state/cache/clear-state-cache.test.ts +43 -0
  1224. package/src/state/cache/clear-state-cache.ts +16 -0
  1225. package/src/state/cache/is-stale-state-cache.test.ts +35 -0
  1226. package/src/state/cache/is-stale-state-cache.ts +29 -0
  1227. package/src/state/cache/mark-state-cache-as-stale.ts +53 -0
  1228. package/src/state/cache/populate-state-cache.test.ts +259 -0
  1229. package/src/state/cache/populate-state-cache.ts +124 -0
  1230. package/src/state/cache/schema.ts +41 -0
  1231. package/src/state/cache/update-state-cache.test.ts +510 -0
  1232. package/src/state/cache/update-state-cache.ts +317 -0
  1233. package/src/state/commit.test.ts +1402 -0
  1234. package/src/state/commit.ts +587 -0
  1235. package/src/state/insert-transaction-state.test.ts +928 -0
  1236. package/src/state/insert-transaction-state.ts +306 -0
  1237. package/src/state/materialize-state.test.ts +2358 -0
  1238. package/src/state/materialize-state.ts +235 -0
  1239. package/src/state/primary-key.test.ts +158 -0
  1240. package/src/state/primary-key.ts +80 -0
  1241. package/src/state/resolved-state-view.test.ts +521 -0
  1242. package/src/state/resolved-state-view.ts +202 -0
  1243. package/src/state/schema.test.ts +3116 -2272
  1244. package/src/state/schema.ts +614 -910
  1245. package/src/state/untracked/schema.test.ts +301 -0
  1246. package/src/state/untracked/schema.ts +55 -0
  1247. package/src/state/untracked/update-untracked-state.test.ts +466 -0
  1248. package/src/state/untracked/update-untracked-state.ts +133 -0
  1249. package/src/state/validate-state-mutation.test.ts +1032 -77
  1250. package/src/state/validate-state-mutation.ts +270 -68
  1251. package/src/state-history/schema.test.ts +246 -71
  1252. package/src/state-history/schema.ts +78 -55
  1253. package/src/stored-schema/index.ts +4 -1
  1254. package/src/stored-schema/schema.test.ts +7 -7
  1255. package/src/stored-schema/schema.ts +1 -1
  1256. package/src/sync/push-to-server.test.ts +6 -6
  1257. package/src/test-utilities/simulation-test/cache-miss-simulation.test.ts +162 -0
  1258. package/src/test-utilities/simulation-test/cache-miss-simulation.ts +99 -0
  1259. package/src/test-utilities/simulation-test/chaotic-timestamp-simulation.ts +0 -0
  1260. package/src/test-utilities/simulation-test/out-of-order-sequence-simulation.test.ts +88 -0
  1261. package/src/test-utilities/simulation-test/out-of-order-sequence-simulation.ts +69 -0
  1262. package/src/test-utilities/simulation-test/simulation-test.test.ts +400 -0
  1263. package/src/test-utilities/simulation-test/simulation-test.ts +176 -0
  1264. package/src/thread/create-thread-comment.test.ts +62 -3
  1265. package/src/thread/create-thread-comment.ts +34 -6
  1266. package/src/thread/create-thread.test.ts +180 -0
  1267. package/src/thread/create-thread.ts +32 -7
  1268. package/src/thread/index.ts +3 -2
  1269. package/src/thread/schema.test.ts +81 -0
  1270. package/src/thread/schema.ts +24 -19
  1271. package/src/version/create-version.test.ts +92 -26
  1272. package/src/version/create-version.ts +49 -19
  1273. package/src/version/index.ts +2 -2
  1274. package/src/version/schema.test.ts +328 -92
  1275. package/src/version/schema.ts +47 -33
  1276. package/src/version/select-active-version.ts +18 -0
  1277. package/src/version/switch-version.test.ts +1 -1
  1278. package/src/version/switch-version.ts +3 -3
  1279. package/dist/entity-views/entity-state_history.d.ts +0 -67
  1280. package/dist/entity-views/entity-state_history.d.ts.map +0 -1
  1281. package/dist/entity-views/entity-state_history.js +0 -58
  1282. package/dist/entity-views/entity-state_history.js.map +0 -1
  1283. package/dist/entity-views/generic-types.d.ts +0 -128
  1284. package/dist/entity-views/generic-types.d.ts.map +0 -1
  1285. package/dist/entity-views/generic-types.js +0 -2
  1286. package/dist/entity-views/generic-types.js.map +0 -1
  1287. package/dist/entity-views/generic-types.test.d.ts +0 -2
  1288. package/dist/entity-views/generic-types.test.d.ts.map +0 -1
  1289. package/dist/entity-views/generic-types.test.js +0 -99
  1290. package/dist/entity-views/generic-types.test.js.map +0 -1
  1291. package/dist/lix/to-blob.test.d.ts +0 -2
  1292. package/dist/lix/to-blob.test.d.ts.map +0 -1
  1293. package/dist/lix/to-blob.test.js +0 -18
  1294. package/dist/lix/to-blob.test.js.map +0 -1
  1295. package/dist/repository/comparison-example.js +0 -173
  1296. package/dist/repository/comparison-example.js.map +0 -1
  1297. package/dist/repository/entity-repository.d.ts +0 -53
  1298. package/dist/repository/entity-repository.d.ts.map +0 -1
  1299. package/dist/repository/entity-repository.js +0 -187
  1300. package/dist/repository/entity-repository.js.map +0 -1
  1301. package/dist/repository/entity-repository.test.d.ts +0 -2
  1302. package/dist/repository/entity-repository.test.d.ts.map +0 -1
  1303. package/dist/repository/entity-repository.test.js +0 -94
  1304. package/dist/repository/entity-repository.test.js.map +0 -1
  1305. package/dist/repository/example.d.ts +0 -6
  1306. package/dist/repository/example.d.ts.map +0 -1
  1307. package/dist/repository/example.js +0 -87
  1308. package/dist/repository/example.js.map +0 -1
  1309. package/dist/repository/file-repository.d.ts +0 -39
  1310. package/dist/repository/file-repository.d.ts.map +0 -1
  1311. package/dist/repository/file-repository.js +0 -93
  1312. package/dist/repository/file-repository.js.map +0 -1
  1313. package/dist/repository/file-repository.test.d.ts +0 -2
  1314. package/dist/repository/file-repository.test.d.ts.map +0 -1
  1315. package/dist/repository/file-repository.test.js +0 -165
  1316. package/dist/repository/file-repository.test.js.map +0 -1
  1317. package/dist/repository/index.d.ts +0 -6
  1318. package/dist/repository/index.d.ts.map +0 -1
  1319. package/dist/repository/index.js +0 -6
  1320. package/dist/repository/index.js.map +0 -1
  1321. package/dist/repository/integration.test.d.ts +0 -2
  1322. package/dist/repository/integration.test.d.ts.map +0 -1
  1323. package/dist/repository/integration.test.js +0 -136
  1324. package/dist/repository/integration.test.js.map +0 -1
  1325. package/dist/repository/key-value-repository.d.ts +0 -30
  1326. package/dist/repository/key-value-repository.d.ts.map +0 -1
  1327. package/dist/repository/key-value-repository.js +0 -60
  1328. package/dist/repository/key-value-repository.js.map +0 -1
  1329. package/dist/repository/key-value-repository.test.d.ts +0 -2
  1330. package/dist/repository/key-value-repository.test.d.ts.map +0 -1
  1331. package/dist/repository/key-value-repository.test.js +0 -122
  1332. package/dist/repository/key-value-repository.test.js.map +0 -1
  1333. package/dist/repository/markdown-plugin-example.js +0 -118
  1334. package/dist/repository/markdown-plugin-example.js.map +0 -1
  1335. package/dist/repository/query-builder.d.ts +0 -69
  1336. package/dist/repository/query-builder.d.ts.map +0 -1
  1337. package/dist/repository/query-builder.js +0 -155
  1338. package/dist/repository/query-builder.js.map +0 -1
  1339. package/dist/repository/query-builder.test.d.ts +0 -2
  1340. package/dist/repository/query-builder.test.d.ts.map +0 -1
  1341. package/dist/repository/query-builder.test.js +0 -244
  1342. package/dist/repository/query-builder.test.js.map +0 -1
  1343. package/dist/repository/repository-manager.d.ts +0 -27
  1344. package/dist/repository/repository-manager.d.ts.map +0 -1
  1345. package/dist/repository/repository-manager.js +0 -19
  1346. package/dist/repository/repository-manager.js.map +0 -1
  1347. package/dist/repository/repository-manager.test.d.ts +0 -2
  1348. package/dist/repository/repository-manager.test.d.ts.map +0 -1
  1349. package/dist/repository/repository-manager.test.js +0 -65
  1350. package/dist/repository/repository-manager.test.js.map +0 -1
  1351. package/dist/repository/test-helpers.js +0 -402
  1352. package/dist/repository/test-helpers.js.map +0 -1
  1353. package/dist/schema-definition/lix-generated.test.d.ts +0 -2
  1354. package/dist/schema-definition/lix-generated.test.d.ts.map +0 -1
  1355. package/dist/schema-definition/lix-generated.test.js +0 -127
  1356. package/dist/schema-definition/lix-generated.test.js.map +0 -1
  1357. package/dist/state/entity-view-builder.d.ts +0 -145
  1358. package/dist/state/entity-view-builder.d.ts.map +0 -1
  1359. package/dist/state/entity-view-builder.js +0 -280
  1360. package/dist/state/entity-view-builder.js.map +0 -1
  1361. package/dist/state/entity-view-builder.test.d.ts +0 -2
  1362. package/dist/state/entity-view-builder.test.d.ts.map +0 -1
  1363. package/dist/state/entity-view-builder.test.js +0 -523
  1364. package/dist/state/entity-view-builder.test.js.map +0 -1
  1365. package/src/change-set/create-checkpoint.ts +0 -101
  1366. package/src/file/materialize-file-data-at-changeset.ts +0 -123
  1367. package/src/query-filter/change-has-label.test.ts +0 -79
  1368. package/src/query-filter/change-has-label.ts +0 -45
  1369. package/src/query-filter/change-set-has-label.test.ts +0 -42
  1370. package/src/query-filter/change-set-has-label.ts +0 -50
  1371. package/src/query-filter/change-set-is-ancestor-of.test.ts +0 -178
  1372. package/src/query-filter/change-set-is-ancestor-of.ts +0 -77
  1373. package/src/query-filter/change-set-is-descendant-of.test.ts +0 -169
  1374. package/src/query-filter/change-set-is-descendant-of.ts +0 -70
  1375. package/src/state/create-changeset-for-transaction.ts +0 -321
  1376. package/src/state/get-version-record-by-id-or-throw.ts +0 -51
  1377. package/src/state/handle-state-mutation.test.ts +0 -761
  1378. package/src/state/handle-state-mutation.ts +0 -418
@@ -1,18 +1,18 @@
1
1
  import { handleFileInsert, handleFileUpdate } from "./file-handlers.js";
2
- import { materializeFileData } from "./materialize-file-data.js";
3
- import { materializeFileDataAtChangeset } from "./materialize-file-data-at-changeset.js";
2
+ import { materializeFileDataAtCommit } from "./materialize-file-data-at-commit.js";
4
3
  import type {
5
4
  LixSchemaDefinition,
6
5
  FromLixSchemaDefinition,
7
6
  } from "../schema-definition/definition.js";
8
7
  import type { Lix } from "../lix/open-lix.js";
8
+ import { materializeFileData } from "./materialize-file-data.js";
9
9
 
10
10
  export function applyFileDatabaseSchema(
11
11
  lix: Pick<Lix, "sqlite" | "db" | "plugin" | "hooks">
12
12
  ): void {
13
13
  lix.sqlite.createFunction({
14
14
  name: "handle_file_insert",
15
- arity: 6,
15
+ arity: 7,
16
16
  xFunc: (_ctx: number, ...args: any[]) => {
17
17
  // Parse metadata if it's a JSON string (SQLite converts objects to strings)
18
18
  let metadata = args[3];
@@ -31,9 +31,10 @@ export function applyFileDatabaseSchema(
31
31
  path: args[1],
32
32
  data: args[2],
33
33
  metadata: metadata,
34
+ hidden: Boolean(args[4]),
34
35
  },
35
- versionId: args[4],
36
- untracked: Boolean(args[5]),
36
+ versionId: args[5],
37
+ untracked: Boolean(args[6]),
37
38
  });
38
39
  return result;
39
40
  },
@@ -42,7 +43,7 @@ export function applyFileDatabaseSchema(
42
43
 
43
44
  lix.sqlite.createFunction({
44
45
  name: "handle_file_update",
45
- arity: 6,
46
+ arity: 7,
46
47
  xFunc: (_ctx: number, ...args: any[]) => {
47
48
  // Parse metadata if it's a JSON string (SQLite converts objects to strings)
48
49
  let metadata = args[3];
@@ -61,9 +62,10 @@ export function applyFileDatabaseSchema(
61
62
  path: args[1],
62
63
  data: args[2],
63
64
  metadata: metadata,
65
+ hidden: Boolean(args[4]),
64
66
  },
65
- versionId: args[4],
66
- untracked: Boolean(args[5]),
67
+ versionId: args[5],
68
+ untracked: Boolean(args[6]),
67
69
  });
68
70
  return result;
69
71
  },
@@ -88,18 +90,18 @@ export function applyFileDatabaseSchema(
88
90
  });
89
91
 
90
92
  lix.sqlite.createFunction({
91
- name: "materialize_file_data_at_changeset",
93
+ name: "materialize_file_data_at_commit",
92
94
  arity: 5,
93
95
  deterministic: false,
94
96
  xFunc: (_ctx: number, ...args: any[]) => {
95
- return materializeFileDataAtChangeset({
97
+ return materializeFileDataAtCommit({
96
98
  lix,
97
99
  file: {
98
100
  id: args[0],
99
101
  path: args[1],
100
102
  metadata: args[4],
101
103
  },
102
- changeSetId: args[2],
104
+ rootCommitId: args[2],
103
105
  depth: args[3],
104
106
  });
105
107
  },
@@ -107,53 +109,111 @@ export function applyFileDatabaseSchema(
107
109
 
108
110
  lix.sqlite.exec(`
109
111
  CREATE VIEW IF NOT EXISTS file AS
110
- SELECT
111
- json_extract(snapshot_content, '$.id') AS id,
112
- json_extract(snapshot_content, '$.path') AS path,
113
- materialize_file_data(
114
- json_extract(snapshot_content, '$.id'),
115
- json_extract(snapshot_content, '$.path'),
116
- version_id,
117
- json_extract(snapshot_content, '$.metadata')
118
- ) AS data,
119
- json_extract(snapshot_content, '$.metadata') AS metadata,
120
- inherited_from_version_id AS lixcol_inherited_from_version_id,
121
- created_at AS lixcol_created_at,
122
- updated_at AS lixcol_updated_at,
123
- change_id AS lixcol_change_id,
124
- untracked AS lixcol_untracked
125
- FROM state
126
- WHERE schema_key = 'lix_file_descriptor';
112
+ WITH latest_file_change AS (
113
+ SELECT
114
+ fd.entity_id as file_id,
115
+ -- Get the latest change across all entities in this file
116
+ (SELECT s.change_id
117
+ FROM state s
118
+ WHERE s.file_id = fd.entity_id
119
+ ORDER BY s.updated_at DESC
120
+ LIMIT 1) as latest_change_id,
121
+ -- Get the latest change_set that contains any change for this file
122
+ (SELECT cse.change_set_id
123
+ FROM change_set_element cse
124
+ INNER JOIN state s ON s.change_id = cse.change_id
125
+ WHERE s.file_id = fd.entity_id
126
+ ORDER BY s.updated_at DESC
127
+ LIMIT 1
128
+ ) as latest_change_set_id
129
+ FROM state fd
130
+ WHERE fd.schema_key = 'lix_file_descriptor'
131
+ )
132
+ SELECT
133
+ json_extract(fd.snapshot_content, '$.id') AS id,
134
+ json_extract(fd.snapshot_content, '$.path') AS path,
135
+ materialize_file_data(
136
+ json_extract(fd.snapshot_content, '$.id'),
137
+ json_extract(fd.snapshot_content, '$.path'),
138
+ (SELECT version_id FROM active_version),
139
+ json_extract(fd.snapshot_content, '$.metadata')
140
+ ) AS data,
141
+ json_extract(fd.snapshot_content, '$.metadata') AS metadata,
142
+ json_extract(fd.snapshot_content, '$.hidden') AS hidden,
143
+ fd.entity_id AS lixcol_entity_id,
144
+ 'lix_file_descriptor' AS lixcol_schema_key,
145
+ fd.entity_id AS lixcol_file_id, -- For files, file_id equals entity_id
146
+ fd.inherited_from_version_id AS lixcol_inherited_from_version_id,
147
+ -- Use the latest change info from any entity in the file
148
+ lc.latest_change_id AS lixcol_change_id,
149
+ (SELECT created_at FROM change WHERE id = lc.latest_change_id) AS lixcol_created_at,
150
+ (SELECT created_at FROM change WHERE id = lc.latest_change_id) AS lixcol_updated_at,
151
+ lc.latest_change_set_id AS lixcol_commit_id,
152
+ fd.untracked AS lixcol_untracked
153
+ FROM state fd
154
+ JOIN latest_file_change lc ON lc.file_id = fd.entity_id
155
+ WHERE fd.schema_key = 'lix_file_descriptor';
127
156
 
128
157
  CREATE VIEW IF NOT EXISTS file_all AS
129
- SELECT
130
- json_extract(snapshot_content, '$.id') AS id,
131
- json_extract(snapshot_content, '$.path') AS path,
132
- materialize_file_data(
133
- json_extract(snapshot_content, '$.id'),
134
- json_extract(snapshot_content, '$.path'),
135
- version_id,
136
- json_extract(snapshot_content, '$.metadata')
137
- ) AS data,
138
- json_extract(snapshot_content, '$.metadata') AS metadata,
139
- version_id AS lixcol_version_id,
140
- inherited_from_version_id AS lixcol_inherited_from_version_id,
141
- created_at AS lixcol_created_at,
142
- updated_at AS lixcol_updated_at,
143
- change_id AS lixcol_change_id,
144
- untracked AS lixcol_untracked
145
- FROM state_all
146
- WHERE schema_key = 'lix_file_descriptor';
158
+ WITH latest_file_change AS (
159
+ SELECT
160
+ fd.entity_id as file_id,
161
+ fd.version_id,
162
+ -- Get the latest change across all entities in this file for this version
163
+ (SELECT s.change_id
164
+ FROM state_all s
165
+ WHERE s.file_id = fd.entity_id
166
+ AND s.version_id = fd.version_id
167
+ ORDER BY s.updated_at DESC
168
+ LIMIT 1) as latest_change_id,
169
+ -- Get the latest change_set that contains any change for this file
170
+ (SELECT cse.change_set_id
171
+ FROM change_set_element cse
172
+ INNER JOIN state_all s ON s.change_id = cse.change_id
173
+ WHERE s.file_id = fd.entity_id
174
+ AND s.version_id = fd.version_id
175
+ ORDER BY s.updated_at DESC
176
+ LIMIT 1
177
+ ) as latest_change_set_id
178
+ FROM state_all fd
179
+ WHERE fd.schema_key = 'lix_file_descriptor'
180
+ )
181
+ SELECT
182
+ json_extract(fd.snapshot_content, '$.id') AS id,
183
+ json_extract(fd.snapshot_content, '$.path') AS path,
184
+ materialize_file_data(
185
+ json_extract(fd.snapshot_content, '$.id'),
186
+ json_extract(fd.snapshot_content, '$.path'),
187
+ fd.version_id,
188
+ json_extract(fd.snapshot_content, '$.metadata')
189
+ ) AS data,
190
+ json_extract(fd.snapshot_content, '$.metadata') AS metadata,
191
+ json_extract(fd.snapshot_content, '$.hidden') AS hidden,
192
+ fd.entity_id AS lixcol_entity_id,
193
+ 'lix_file_descriptor' AS lixcol_schema_key,
194
+ fd.entity_id AS lixcol_file_id, -- For files, file_id equals entity_id
195
+ fd.version_id AS lixcol_version_id,
196
+ fd.inherited_from_version_id AS lixcol_inherited_from_version_id,
197
+ -- Use the latest change info from any entity in the file
198
+ lc.latest_change_id AS lixcol_change_id,
199
+ (SELECT created_at FROM change WHERE id = lc.latest_change_id) AS lixcol_created_at,
200
+ (SELECT created_at FROM change WHERE id = lc.latest_change_id) AS lixcol_updated_at,
201
+ lc.latest_change_set_id AS lixcol_commit_id,
202
+ fd.untracked AS lixcol_untracked
203
+ FROM state_all fd
204
+ JOIN latest_file_change lc ON lc.file_id = fd.entity_id AND lc.version_id = fd.version_id
205
+ WHERE fd.schema_key = 'lix_file_descriptor';
147
206
 
148
207
 
149
208
  CREATE TRIGGER IF NOT EXISTS file_insert
150
209
  INSTEAD OF INSERT ON file
151
210
  BEGIN
152
211
  SELECT handle_file_insert(
153
- COALESCE(NEW.id, nano_id()),
212
+ COALESCE(NEW.id, lix_nano_id()),
154
213
  NEW.path,
155
214
  NEW.data,
156
215
  NEW.metadata,
216
+ COALESCE(NEW.hidden, 0),
157
217
  (SELECT version_id FROM active_version),
158
218
  COALESCE(NEW.lixcol_untracked, 0)
159
219
  );
@@ -167,6 +227,7 @@ export function applyFileDatabaseSchema(
167
227
  NEW.path,
168
228
  NEW.data,
169
229
  NEW.metadata,
230
+ COALESCE(NEW.hidden, OLD.hidden),
170
231
  (SELECT version_id FROM active_version),
171
232
  COALESCE(NEW.lixcol_untracked, 0)
172
233
  );
@@ -192,10 +253,11 @@ export function applyFileDatabaseSchema(
192
253
  INSTEAD OF INSERT ON file_all
193
254
  BEGIN
194
255
  SELECT handle_file_insert(
195
- COALESCE(NEW.id, nano_id()),
256
+ COALESCE(NEW.id, lix_nano_id()),
196
257
  NEW.path,
197
258
  NEW.data,
198
259
  NEW.metadata,
260
+ COALESCE(NEW.hidden, 0),
199
261
  COALESCE(NEW.lixcol_version_id, (SELECT version_id FROM active_version)),
200
262
  COALESCE(NEW.lixcol_untracked, 0)
201
263
  );
@@ -209,6 +271,7 @@ export function applyFileDatabaseSchema(
209
271
  NEW.path,
210
272
  NEW.data,
211
273
  NEW.metadata,
274
+ COALESCE(NEW.hidden, OLD.hidden),
212
275
  COALESCE(NEW.lixcol_version_id, OLD.lixcol_version_id),
213
276
  COALESCE(NEW.lixcol_untracked, 0)
214
277
  );
@@ -234,19 +297,23 @@ export function applyFileDatabaseSchema(
234
297
  SELECT
235
298
  json_extract(snapshot_content, '$.id') AS id,
236
299
  json_extract(snapshot_content, '$.path') AS path,
237
- materialize_file_data_at_changeset(
300
+ materialize_file_data_at_commit(
238
301
  json_extract(snapshot_content, '$.id'),
239
302
  json_extract(snapshot_content, '$.path'),
240
- change_set_id,
303
+ root_commit_id,
241
304
  depth,
242
305
  json_extract(snapshot_content, '$.metadata')
243
306
  ) AS data,
244
307
  json_extract(snapshot_content, '$.metadata') AS metadata,
308
+ json_extract(snapshot_content, '$.hidden') AS hidden,
309
+ entity_id AS lixcol_entity_id,
310
+ 'lix_file_descriptor' AS lixcol_schema_key,
245
311
  file_id AS lixcol_file_id,
246
312
  plugin_key AS lixcol_plugin_key,
247
313
  schema_version AS lixcol_schema_version,
248
314
  change_id AS lixcol_change_id,
249
- change_set_id AS lixcol_change_set_id,
315
+ commit_id AS lixcol_commit_id,
316
+ root_commit_id AS lixcol_root_commit_id,
250
317
  depth AS lixcol_depth
251
318
  FROM state_history
252
319
  WHERE schema_key = 'lix_file_descriptor';
@@ -271,6 +338,7 @@ export const LixFileDescriptorSchema = {
271
338
  type: "object",
272
339
  nullable: true,
273
340
  },
341
+ hidden: { type: "boolean", "x-lix-generated": true },
274
342
  },
275
343
  required: ["id", "path"],
276
344
  additionalProperties: false,
@@ -280,8 +348,38 @@ LixFileDescriptorSchema satisfies LixSchemaDefinition;
280
348
  /**
281
349
  * The file descriptor type representing the stored metadata for a file.
282
350
  *
283
- * This contains the file's identity and metadata but not the actual file content.
284
- * The file content (data) is materialized separately by aggregating entities from plugins.
351
+ * This is the underlying entity stored in the database with schema_key 'lix_file_descriptor'.
352
+ * It contains only the file's identity and metadata - NOT the actual file content.
353
+ *
354
+ * ```
355
+ * ┌─────────────────────────────────────────┐
356
+ * │ LixFileDescriptor │
357
+ * │ (schema_key: 'lix_file_descriptor') │
358
+ * ├─────────────────────────────────────────┤
359
+ * │ • id: string (file identifier) │
360
+ * │ • path: string (e.g., "/docs/README.md")│
361
+ * │ • metadata: object | null │
362
+ * │ • hidden: boolean │
363
+ * └─────────────────────────────────────────┘
364
+ * ↓
365
+ * Stored in state/state_all table
366
+ * ↓
367
+ * ┌─────────────────────────────────────────┐
368
+ * │ File content entities are stored │
369
+ * │ separately with file_id = descriptor.id │
370
+ * │ │
371
+ * │ • JSON properties (mock_json_property) │
372
+ * │ • Markdown blocks (markdown_block) │
373
+ * │ • CSV rows (csv_row) │
374
+ * │ • etc... │
375
+ * └─────────────────────────────────────────┘
376
+ * ```
377
+ *
378
+ * Key points:
379
+ * - File descriptors are just metadata - they don't contain file data
380
+ * - The actual file content is stored as separate entities linked by file_id
381
+ * - File views aggregate the descriptor + content entities into a complete file
382
+ * - Changes to file content don't update the descriptor (and vice versa)
285
383
  */
286
384
  export type LixFileDescriptor = FromLixSchemaDefinition<
287
385
  typeof LixFileDescriptorSchema
@@ -291,9 +389,38 @@ export type LixFileDescriptor = FromLixSchemaDefinition<
291
389
  * Complete file type combining the descriptor with materialized data.
292
390
  *
293
391
  * Uses "Lix" prefix to avoid collision with JavaScript's built-in File type.
294
- * This represents the full file as seen in views, combining:
295
- * - LixFileDescriptor: stored metadata (id, path, metadata)
296
- * - data: materialized file content from plugin entities
392
+ *
393
+ * IMPORTANT: File views are projections over multiple entities, not just the file descriptor.
394
+ * However, they expose schema_key as 'lix_file_descriptor' to maintain foreign key integrity.
395
+ *
396
+ * ```
397
+ * ┌─────────────────────────────────────────────────────────────┐
398
+ * │ File View │
399
+ * │ (schema_key: 'lix_file_descriptor') │
400
+ * │ │
401
+ * │ ┌─────────────────────────┐ ┌─────────────────────────┐ │
402
+ * │ │ File Descriptor │ │ Plugin Entities │ │
403
+ * │ │ (lix_file_descriptor) │ │ │ │
404
+ * │ ├─────────────────────────┤ ├─────────────────────────┤ │
405
+ * │ │ • id │ │ • JSON properties │ │
406
+ * │ │ • path │ + │ • Markdown blocks │ │
407
+ * │ │ • metadata │ │ • CSV rows │ │
408
+ * │ │ • hidden │ │ • Future: thumbnails │ │
409
+ * │ └─────────────────────────┘ └─────────────────────────┘ │
410
+ * │ ↓ ↓ │
411
+ * │ ┌─────────────────────────────────┐ │
412
+ * │ │ Materialized as LixFile │ │
413
+ * │ │ • All descriptor fields │ │
414
+ * │ │ • data: Uint8Array (from │ │
415
+ * │ │ plugin entities) │ │
416
+ * │ └─────────────────────────────────┘ │
417
+ * └─────────────────────────────────────────────────────────────┘
418
+ * ```
419
+ *
420
+ * This projection approach means:
421
+ * - File views aggregate changes from ALL entities within the file
422
+ * - The 'data' field is dynamically materialized from plugin entities
423
+ * - A single file view row represents multiple underlying entities
297
424
  */
298
425
  export type LixFile = LixFileDescriptor & {
299
426
  data: Uint8Array;
@@ -1,3 +1,5 @@
1
+ import type { Change } from "../change/index.js";
2
+
1
3
  /**
2
4
  * Lix hooks system for listening to database lifecycle events.
3
5
  *
@@ -25,35 +27,7 @@ export type LixHooks = {
25
27
  * unsubscribe();
26
28
  * ```
27
29
  */
28
- onStateCommit: (handler: () => void) => () => void;
29
-
30
- /**
31
- * Listen to file change events.
32
- *
33
- * Note: This API will become redundant once subscriptions are implemented.
34
- *
35
- * Fires when a file is inserted, updated, or deleted in the database.
36
- * Useful for updating UI, triggering re-parsing, or synchronizing external systems.
37
- *
38
- * @param handler - Function to call when a file changes
39
- * @returns Unsubscribe function to remove the listener
40
- *
41
- * @example
42
- * ```typescript
43
- * const unsubscribe = lix.hooks.onFileChange((fileId, operation) => {
44
- * console.log(`File ${fileId} was ${operation}`);
45
- * if (operation === 'updated') {
46
- * reloadEditor(fileId);
47
- * }
48
- * });
49
- *
50
- * // Later, remove the listener
51
- * unsubscribe();
52
- * ```
53
- */
54
- onFileChange: (
55
- handler: (fileId: string, operation: "inserted" | "updated") => void
56
- ) => () => void;
30
+ onStateCommit: (handler: (data: { changes: Change[] }) => void) => () => void;
57
31
 
58
32
  /**
59
33
  * Internal method for emitting events.
@@ -77,21 +51,14 @@ export function createHooks(): LixHooks {
77
51
  const eventTarget = new EventTarget();
78
52
 
79
53
  return {
80
- onStateCommit(handler: () => void): () => void {
81
- eventTarget.addEventListener("state_commit", handler);
82
- return () => eventTarget.removeEventListener("state_commit", handler);
83
- },
84
-
85
- onFileChange(
86
- handler: (fileId: string, operation: "inserted" | "updated") => void
87
- ): () => void {
54
+ onStateCommit(handler: (data: { changes: Change[] }) => void): () => void {
88
55
  const wrappedHandler = (event: Event) => {
89
56
  const customEvent = event as CustomEvent;
90
- handler(customEvent.detail.fileId, customEvent.detail.operation);
57
+ handler(customEvent.detail);
91
58
  };
92
- eventTarget.addEventListener("file_change", wrappedHandler);
59
+ eventTarget.addEventListener("state_commit", wrappedHandler);
93
60
  return () =>
94
- eventTarget.removeEventListener("file_change", wrappedHandler);
61
+ eventTarget.removeEventListener("state_commit", wrappedHandler);
95
62
  },
96
63
 
97
64
  _emit(eventType: string, data?: any): void {
package/src/index.ts CHANGED
@@ -2,7 +2,10 @@ export * from "./account/index.js";
2
2
  export * from "./change/index.js";
3
3
  export * from "./change-author/index.js";
4
4
  export * from "./change-set/index.js";
5
+ export * from "./commit/index.js";
5
6
  export * from "./database/index.js";
7
+ export * from "./deterministic/index.js";
8
+ export * from "./entity/index.js";
6
9
  export * from "./entity-views/index.js";
7
10
  export * from "./file/index.js";
8
11
  export * from "./hooks/create-hooks.js";
@@ -1 +1 @@
1
- export { LixKeyValueSchema, type KeyValue } from "./schema.js";
1
+ export { LixKeyValueSchema, type LixKeyValue as KeyValue } from "./schema.js";
@@ -1,6 +1,7 @@
1
1
  import { expect, test } from "vitest";
2
2
  import { openLix } from "../lix/open-lix.js";
3
3
  import { createVersion } from "../version/create-version.js";
4
+ import { sql } from "kysely";
4
5
 
5
6
  test("inserts, updates, deletes are handled", async () => {
6
7
  const lix = await openLix({});
@@ -88,7 +89,7 @@ test("arbitrary json is allowed", async () => {
88
89
  expect(viewAfterInsert).toEqual(kvs);
89
90
  });
90
91
 
91
- test.todo("view should show changes across versions", async () => {
92
+ test("view should show changes across versions", async () => {
92
93
  const lix = await openLix({});
93
94
 
94
95
  // creating a new version
@@ -129,7 +130,7 @@ test.todo("view should show changes across versions", async () => {
129
130
  lix,
130
131
  id: "versionB",
131
132
  name: "versionB",
132
- changeSet: { id: versionAAfterKvInsert.change_set_id },
133
+ commit_id: versionAAfterKvInsert.commit_id,
133
134
  });
134
135
 
135
136
  const kvAfterInsertInVersionB = await lix.db
@@ -177,3 +178,103 @@ test.todo("view should show changes across versions", async () => {
177
178
  },
178
179
  ]);
179
180
  });
181
+
182
+ test("can update individual JSON properties using SQLite JSON functions", async () => {
183
+ const lix = await openLix({});
184
+
185
+ // Insert a complex JSON object
186
+ await lix.db
187
+ .insertInto("key_value")
188
+ .values({
189
+ key: "test_config",
190
+ value: {
191
+ enabled: true,
192
+ settings: {
193
+ theme: "dark",
194
+ language: "en",
195
+ notifications: true,
196
+ },
197
+ features: ["feature1", "feature2"],
198
+ count: 42,
199
+ },
200
+ })
201
+ .execute();
202
+
203
+ // First check the initial insert worked
204
+ const initialValue = await lix.db
205
+ .selectFrom("key_value")
206
+ .where("key", "=", "test_config")
207
+ .select("value")
208
+ .executeTakeFirst();
209
+
210
+ expect(initialValue?.value).toBeDefined();
211
+
212
+ // Update a single nested property using json_set
213
+ await lix.db
214
+ .updateTable("key_value")
215
+ .set({
216
+ value: sql`json_set(value, '$.settings.theme', 'light')`,
217
+ })
218
+ .where("key", "=", "test_config")
219
+ .execute();
220
+
221
+ const afterThemeUpdate = await lix.db
222
+ .selectFrom("key_value")
223
+ .where("key", "=", "test_config")
224
+ .select("value")
225
+ .executeTakeFirst();
226
+
227
+ expect(afterThemeUpdate?.value).toMatchObject({
228
+ enabled: true,
229
+ settings: {
230
+ theme: "light", // Changed
231
+ language: "en",
232
+ notifications: true,
233
+ },
234
+ features: ["feature1", "feature2"],
235
+ count: 42,
236
+ });
237
+
238
+ // Update multiple properties at once
239
+ await lix.db
240
+ .updateTable("key_value")
241
+ .set({
242
+ value: sql`json_set(value, '$.enabled', false, '$.count', 100, '$.settings.notifications', false)`,
243
+ })
244
+ .where("key", "=", "test_config")
245
+ .execute();
246
+
247
+ const afterMultiUpdate = await lix.db
248
+ .selectFrom("key_value")
249
+ .where("key", "=", "test_config")
250
+ .select("value")
251
+ .executeTakeFirst();
252
+
253
+ expect(afterMultiUpdate?.value).toMatchObject({
254
+ enabled: 0, // Changed - SQLite stores false as 0
255
+ settings: {
256
+ theme: "light",
257
+ language: "en",
258
+ notifications: 0, // Changed - SQLite stores false as 0
259
+ },
260
+ features: ["feature1", "feature2"],
261
+ count: 100, // Changed
262
+ });
263
+
264
+ // Read specific properties using JSON operators
265
+ const specificProps = await lix.db
266
+ .selectFrom("key_value")
267
+ .where("key", "=", "test_config")
268
+ .select([
269
+ sql<boolean>`value ->> '$.enabled'`.as("enabled"),
270
+ sql<string>`value ->> '$.settings.theme'`.as("theme"),
271
+ sql<number>`value ->> '$.count'`.as("count"),
272
+ ])
273
+ .executeTakeFirst();
274
+
275
+ expect(specificProps).toEqual({
276
+ enabled: 0, // SQLite returns 0 for false
277
+ theme: "light",
278
+ count: 100,
279
+ });
280
+ });
@@ -1,14 +1,16 @@
1
- import type { SqliteWasmDatabase } from "sqlite-wasm-kysely";
2
1
  import type {
3
2
  LixSchemaDefinition,
4
3
  FromLixSchemaDefinition,
5
4
  } from "../schema-definition/definition.js";
6
5
  import { JSONTypeSchema } from "../schema-definition/json-type.js";
7
6
  import { createEntityViewsIfNotExists } from "../entity-views/entity-view-builder.js";
7
+ import type { Lix } from "../index.js";
8
8
 
9
- export function applyKeyValueDatabaseSchema(sqlite: SqliteWasmDatabase): void {
9
+ export function applyKeyValueDatabaseSchema(
10
+ lix: Pick<Lix, "sqlite" | "db">
11
+ ): void {
10
12
  return createEntityViewsIfNotExists({
11
- lix: { sqlite },
13
+ lix,
12
14
  schema: LixKeyValueSchema,
13
15
  overrideName: "key_value",
14
16
  pluginKey: "lix_own_entity",
@@ -16,6 +18,12 @@ export function applyKeyValueDatabaseSchema(sqlite: SqliteWasmDatabase): void {
16
18
  });
17
19
  }
18
20
 
21
+ /**
22
+ * Schema definition for key-value pairs in Lix.
23
+ *
24
+ * Key-value pairs provide a flexible storage mechanism for configuration,
25
+ * settings, and metadata within a Lix instance.
26
+ */
19
27
  export const LixKeyValueSchema = {
20
28
  "x-lix-key": "lix_key_value",
21
29
  "x-lix-version": "1.0",
@@ -30,8 +38,61 @@ export const LixKeyValueSchema = {
30
38
  } as const;
31
39
  LixKeyValueSchema satisfies LixSchemaDefinition;
32
40
 
33
- // Pure business logic type (inferred from schema)
34
- export type KeyValue = FromLixSchemaDefinition<typeof LixKeyValueSchema> & {
41
+ /**
42
+ * Represents a key-value pair in Lix.
43
+ *
44
+ * The value can be any JSON-serializable type (string, number, boolean, object, array, null).
45
+ *
46
+ * **Important SQLite Limitation with Boolean Values:**
47
+ * SQLite does not have a native boolean type. When storing JSON values:
48
+ * - `true` is stored as `1`
49
+ * - `false` is stored as `0`
50
+ *
51
+ * This is a fundamental limitation of SQLite's JSON implementation. There is no way
52
+ * to distinguish between a boolean `true` and the number `1` after retrieval.
53
+ *
54
+ * When querying boolean values, use loose equality (`==`) or handle the numeric representation.
55
+ *
56
+ * @example
57
+ * ```typescript
58
+ * // Inserting key-value pairs
59
+ * await lix.db.insertInto("key_value").values({
60
+ * key: "lix_sync_enabled",
61
+ * value: true // Will be stored as 1 in SQLite
62
+ * }).execute();
63
+ *
64
+ * await lix.db.insertInto("key_value").values({
65
+ * key: "lix_server_url",
66
+ * value: "https://api.example.com"
67
+ * }).execute();
68
+ * ```
69
+ *
70
+ * @example
71
+ * ```typescript
72
+ * // Querying boolean values
73
+ * const result = await lix.db
74
+ * .selectFrom("key_value")
75
+ * .where("key", "=", "lix_sync_enabled")
76
+ * .select("value")
77
+ * .executeTakeFirst();
78
+ *
79
+ * // result.value will be 1 (not true)
80
+ * const isEnabled = result?.value == true; // Use loose equality
81
+ * // or
82
+ * const isEnabled = result?.value === 1; // Check for numeric value
83
+ * ```
84
+ *
85
+ * @example
86
+ * ```typescript
87
+ * // Common Lix system keys
88
+ * // "lix_id" - Unique identifier for the Lix instance
89
+ * // "lix_name" - Human-readable name for the Lix instance
90
+ * // "lix_server_url" - URL of the sync server
91
+ * // "lix_deterministic_mode" - Boolean flag for deterministic ID generation
92
+ * // "lix_telemetry" - Telemetry setting ("on" or "off")
93
+ * ```
94
+ */
95
+ export type LixKeyValue = FromLixSchemaDefinition<typeof LixKeyValueSchema> & {
35
96
  // override the value to any to allow any JSON type (instead of unknown which is annoying)
36
97
  value: any;
37
98
  };