@lix-js/sdk 0.0.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 (812) hide show
  1. package/README.md +68 -0
  2. package/dist/account/create-account.d.ts +7 -0
  3. package/dist/account/create-account.d.ts.map +1 -0
  4. package/dist/account/create-account.js +20 -0
  5. package/dist/account/create-account.js.map +1 -0
  6. package/dist/account/create-account.test.d.ts +2 -0
  7. package/dist/account/create-account.test.d.ts.map +1 -0
  8. package/dist/account/create-account.test.js +22 -0
  9. package/dist/account/create-account.test.js.map +1 -0
  10. package/dist/account/database-schema.d.ts +18 -0
  11. package/dist/account/database-schema.d.ts.map +1 -0
  12. package/dist/account/database-schema.js +36 -0
  13. package/dist/account/database-schema.js.map +1 -0
  14. package/dist/account/database-schema.test.d.ts +2 -0
  15. package/dist/account/database-schema.test.d.ts.map +1 -0
  16. package/dist/account/database-schema.test.js +139 -0
  17. package/dist/account/database-schema.test.js.map +1 -0
  18. package/dist/account/index.d.ts +4 -0
  19. package/dist/account/index.d.ts.map +1 -0
  20. package/dist/account/index.js +4 -0
  21. package/dist/account/index.js.map +1 -0
  22. package/dist/account/switch-account.d.ts +26 -0
  23. package/dist/account/switch-account.d.ts.map +1 -0
  24. package/dist/account/switch-account.js +34 -0
  25. package/dist/account/switch-account.js.map +1 -0
  26. package/dist/account/switch-account.test.d.ts +2 -0
  27. package/dist/account/switch-account.test.d.ts.map +1 -0
  28. package/dist/account/switch-account.test.js +48 -0
  29. package/dist/account/switch-account.test.js.map +1 -0
  30. package/dist/change/apply-changes.d.ts +25 -0
  31. package/dist/change/apply-changes.d.ts.map +1 -0
  32. package/dist/change/apply-changes.js +98 -0
  33. package/dist/change/apply-changes.js.map +1 -0
  34. package/dist/change/apply-changes.test.d.ts +2 -0
  35. package/dist/change/apply-changes.test.d.ts.map +1 -0
  36. package/dist/change/apply-changes.test.js +222 -0
  37. package/dist/change/apply-changes.test.js.map +1 -0
  38. package/dist/change/create-change.d.ts +27 -0
  39. package/dist/change/create-change.d.ts.map +1 -0
  40. package/dist/change/create-change.js +97 -0
  41. package/dist/change/create-change.js.map +1 -0
  42. package/dist/change/create-change.test.d.ts +2 -0
  43. package/dist/change/create-change.test.d.ts.map +1 -0
  44. package/dist/change/create-change.test.js +235 -0
  45. package/dist/change/create-change.test.js.map +1 -0
  46. package/dist/change/index.d.ts +3 -0
  47. package/dist/change/index.d.ts.map +1 -0
  48. package/dist/change/index.js +3 -0
  49. package/dist/change/index.js.map +1 -0
  50. package/dist/change/mock-change.d.ts +10 -0
  51. package/dist/change/mock-change.d.ts.map +1 -0
  52. package/dist/change/mock-change.js +20 -0
  53. package/dist/change/mock-change.js.map +1 -0
  54. package/dist/change-conflict/create-change-conflict.d.ts +15 -0
  55. package/dist/change-conflict/create-change-conflict.d.ts.map +1 -0
  56. package/dist/change-conflict/create-change-conflict.js +67 -0
  57. package/dist/change-conflict/create-change-conflict.js.map +1 -0
  58. package/dist/change-conflict/create-change-conflict.test.d.ts +2 -0
  59. package/dist/change-conflict/create-change-conflict.test.d.ts.map +1 -0
  60. package/dist/change-conflict/create-change-conflict.test.js +145 -0
  61. package/dist/change-conflict/create-change-conflict.test.js.map +1 -0
  62. package/dist/change-conflict/detect-change-conflicts.d.ts +23 -0
  63. package/dist/change-conflict/detect-change-conflicts.d.ts.map +1 -0
  64. package/dist/change-conflict/detect-change-conflicts.js +50 -0
  65. package/dist/change-conflict/detect-change-conflicts.js.map +1 -0
  66. package/dist/change-conflict/detect-change-conflicts.test.d.ts +2 -0
  67. package/dist/change-conflict/detect-change-conflicts.test.d.ts.map +1 -0
  68. package/dist/change-conflict/detect-change-conflicts.test.js +182 -0
  69. package/dist/change-conflict/detect-change-conflicts.test.js.map +1 -0
  70. package/dist/change-conflict/detect-diverging-entity-conflict.d.ts +32 -0
  71. package/dist/change-conflict/detect-diverging-entity-conflict.d.ts.map +1 -0
  72. package/dist/change-conflict/detect-diverging-entity-conflict.js +66 -0
  73. package/dist/change-conflict/detect-diverging-entity-conflict.js.map +1 -0
  74. package/dist/change-conflict/detect-diverging-entity-conflict.test.d.ts +2 -0
  75. package/dist/change-conflict/detect-diverging-entity-conflict.test.d.ts.map +1 -0
  76. package/dist/change-conflict/detect-diverging-entity-conflict.test.js +201 -0
  77. package/dist/change-conflict/detect-diverging-entity-conflict.test.js.map +1 -0
  78. package/dist/change-conflict/garbage-collect-change-conflicts.d.ts +14 -0
  79. package/dist/change-conflict/garbage-collect-change-conflicts.d.ts.map +1 -0
  80. package/dist/change-conflict/garbage-collect-change-conflicts.js +67 -0
  81. package/dist/change-conflict/garbage-collect-change-conflicts.js.map +1 -0
  82. package/dist/change-conflict/garbage-collect-change-conflicts.test.d.ts +2 -0
  83. package/dist/change-conflict/garbage-collect-change-conflicts.test.d.ts.map +1 -0
  84. package/dist/change-conflict/garbage-collect-change-conflicts.test.js +182 -0
  85. package/dist/change-conflict/garbage-collect-change-conflicts.test.js.map +1 -0
  86. package/dist/change-conflict/index.d.ts +4 -0
  87. package/dist/change-conflict/index.d.ts.map +1 -0
  88. package/dist/change-conflict/index.js +4 -0
  89. package/dist/change-conflict/index.js.map +1 -0
  90. package/dist/change-conflict/resolve-conflict-by-selecting.d.ts +12 -0
  91. package/dist/change-conflict/resolve-conflict-by-selecting.d.ts.map +1 -0
  92. package/dist/change-conflict/resolve-conflict-by-selecting.js +48 -0
  93. package/dist/change-conflict/resolve-conflict-by-selecting.js.map +1 -0
  94. package/dist/change-conflict/resolve-conflict-by-selecting.test.d.ts +2 -0
  95. package/dist/change-conflict/resolve-conflict-by-selecting.test.d.ts.map +1 -0
  96. package/dist/change-conflict/resolve-conflict-by-selecting.test.js +95 -0
  97. package/dist/change-conflict/resolve-conflict-by-selecting.test.js.map +1 -0
  98. package/dist/change-conflict/update-change-conflicts.d.ts +2 -0
  99. package/dist/change-conflict/update-change-conflicts.d.ts.map +1 -0
  100. package/dist/change-conflict/update-change-conflicts.js +72 -0
  101. package/dist/change-conflict/update-change-conflicts.js.map +1 -0
  102. package/dist/change-queue/change-queue-settled.d.ts +13 -0
  103. package/dist/change-queue/change-queue-settled.d.ts.map +1 -0
  104. package/dist/change-queue/change-queue-settled.js +25 -0
  105. package/dist/change-queue/change-queue-settled.js.map +1 -0
  106. package/dist/change-queue/change-queue-settled.test.d.ts +2 -0
  107. package/dist/change-queue/change-queue-settled.test.d.ts.map +1 -0
  108. package/dist/change-queue/change-queue-settled.test.js +47 -0
  109. package/dist/change-queue/change-queue-settled.test.js.map +1 -0
  110. package/dist/change-queue/file-handlers.d.ts +24 -0
  111. package/dist/change-queue/file-handlers.d.ts.map +1 -0
  112. package/dist/change-queue/file-handlers.js +209 -0
  113. package/dist/change-queue/file-handlers.js.map +1 -0
  114. package/dist/change-queue/index.d.ts +2 -0
  115. package/dist/change-queue/index.d.ts.map +1 -0
  116. package/dist/change-queue/index.js +2 -0
  117. package/dist/change-queue/index.js.map +1 -0
  118. package/dist/change-queue/init-change-queue.d.ts +7 -0
  119. package/dist/change-queue/init-change-queue.d.ts.map +1 -0
  120. package/dist/change-queue/init-change-queue.js +80 -0
  121. package/dist/change-queue/init-change-queue.js.map +1 -0
  122. package/dist/change-queue/init-change-queue.test.d.ts +2 -0
  123. package/dist/change-queue/init-change-queue.test.d.ts.map +1 -0
  124. package/dist/change-queue/init-change-queue.test.js +373 -0
  125. package/dist/change-queue/init-change-queue.test.js.map +1 -0
  126. package/dist/change-queue/with-skip-change-queue.d.ts +3 -0
  127. package/dist/change-queue/with-skip-change-queue.d.ts.map +1 -0
  128. package/dist/change-queue/with-skip-change-queue.js +26 -0
  129. package/dist/change-queue/with-skip-change-queue.js.map +1 -0
  130. package/dist/change-queue/with-skip-change-queue.test.d.ts +2 -0
  131. package/dist/change-queue/with-skip-change-queue.test.d.ts.map +1 -0
  132. package/dist/change-queue/with-skip-change-queue.test.js +138 -0
  133. package/dist/change-queue/with-skip-change-queue.test.js.map +1 -0
  134. package/dist/change-schema/index.d.ts +2 -0
  135. package/dist/change-schema/index.d.ts.map +1 -0
  136. package/dist/change-schema/index.js +2 -0
  137. package/dist/change-schema/index.js.map +1 -0
  138. package/dist/change-schema/types.d.ts +40 -0
  139. package/dist/change-schema/types.d.ts.map +1 -0
  140. package/dist/change-schema/types.js +2 -0
  141. package/dist/change-schema/types.js.map +1 -0
  142. package/dist/change-schema/types.test-d.d.ts +2 -0
  143. package/dist/change-schema/types.test-d.d.ts.map +1 -0
  144. package/dist/change-schema/types.test-d.js +34 -0
  145. package/dist/change-schema/types.test-d.js.map +1 -0
  146. package/dist/change-set/change-set-element-in-symmetric-difference.d.ts +19 -0
  147. package/dist/change-set/change-set-element-in-symmetric-difference.d.ts.map +1 -0
  148. package/dist/change-set/change-set-element-in-symmetric-difference.js +36 -0
  149. package/dist/change-set/change-set-element-in-symmetric-difference.js.map +1 -0
  150. package/dist/change-set/change-set-element-in-symmetric-difference.test.d.ts +2 -0
  151. package/dist/change-set/change-set-element-in-symmetric-difference.test.d.ts.map +1 -0
  152. package/dist/change-set/change-set-element-in-symmetric-difference.test.js +106 -0
  153. package/dist/change-set/change-set-element-in-symmetric-difference.test.js.map +1 -0
  154. package/dist/change-set/create-change-set.d.ts +16 -0
  155. package/dist/change-set/create-change-set.d.ts.map +1 -0
  156. package/dist/change-set/create-change-set.js +33 -0
  157. package/dist/change-set/create-change-set.js.map +1 -0
  158. package/dist/change-set/create-change-set.test.d.ts +2 -0
  159. package/dist/change-set/create-change-set.test.d.ts.map +1 -0
  160. package/dist/change-set/create-change-set.test.js +37 -0
  161. package/dist/change-set/create-change-set.test.js.map +1 -0
  162. package/dist/change-set/index.d.ts +3 -0
  163. package/dist/change-set/index.d.ts.map +1 -0
  164. package/dist/change-set/index.js +3 -0
  165. package/dist/change-set/index.js.map +1 -0
  166. package/dist/database/apply-schema.d.ts +8 -0
  167. package/dist/database/apply-schema.d.ts.map +1 -0
  168. package/dist/database/apply-schema.js +318 -0
  169. package/dist/database/apply-schema.js.map +1 -0
  170. package/dist/database/execute-sync.d.ts +18 -0
  171. package/dist/database/execute-sync.d.ts.map +1 -0
  172. package/dist/database/execute-sync.js +36 -0
  173. package/dist/database/execute-sync.js.map +1 -0
  174. package/dist/database/execute-sync.test.d.ts +2 -0
  175. package/dist/database/execute-sync.test.d.ts.map +1 -0
  176. package/dist/database/execute-sync.test.js +118 -0
  177. package/dist/database/execute-sync.test.js.map +1 -0
  178. package/dist/database/index.d.ts +5 -0
  179. package/dist/database/index.d.ts.map +1 -0
  180. package/dist/database/index.js +5 -0
  181. package/dist/database/index.js.map +1 -0
  182. package/dist/database/init-db.d.ts +7 -0
  183. package/dist/database/init-db.d.ts.map +1 -0
  184. package/dist/database/init-db.js +80 -0
  185. package/dist/database/init-db.js.map +1 -0
  186. package/dist/database/init-db.test.d.ts +2 -0
  187. package/dist/database/init-db.test.d.ts.map +1 -0
  188. package/dist/database/init-db.test.js +386 -0
  189. package/dist/database/init-db.test.js.map +1 -0
  190. package/dist/database/kysely-plugin/parse-jsonb-plugin-v1.d.ts +3 -0
  191. package/dist/database/kysely-plugin/parse-jsonb-plugin-v1.d.ts.map +1 -0
  192. package/dist/database/kysely-plugin/parse-jsonb-plugin-v1.js +41 -0
  193. package/dist/database/kysely-plugin/parse-jsonb-plugin-v1.js.map +1 -0
  194. package/dist/database/kysely-plugin/parse-jsonb-plugin-v1.test.d.ts +2 -0
  195. package/dist/database/kysely-plugin/parse-jsonb-plugin-v1.test.d.ts.map +1 -0
  196. package/dist/database/kysely-plugin/parse-jsonb-plugin-v1.test.js +162 -0
  197. package/dist/database/kysely-plugin/parse-jsonb-plugin-v1.test.js.map +1 -0
  198. package/dist/database/kysely-plugin/parse-jsonb-plugin-v2.d.ts +12 -0
  199. package/dist/database/kysely-plugin/parse-jsonb-plugin-v2.d.ts.map +1 -0
  200. package/dist/database/kysely-plugin/parse-jsonb-plugin-v2.js +149 -0
  201. package/dist/database/kysely-plugin/parse-jsonb-plugin-v2.js.map +1 -0
  202. package/dist/database/kysely-plugin/parse-jsonb-plugin-v2.no_test.d.ts +2 -0
  203. package/dist/database/kysely-plugin/parse-jsonb-plugin-v2.no_test.d.ts.map +1 -0
  204. package/dist/database/kysely-plugin/parse-jsonb-plugin-v2.no_test.js +162 -0
  205. package/dist/database/kysely-plugin/parse-jsonb-plugin-v2.no_test.js.map +1 -0
  206. package/dist/database/kysely-plugin/serialize-jsonb-plugin.d.ts +3 -0
  207. package/dist/database/kysely-plugin/serialize-jsonb-plugin.d.ts.map +1 -0
  208. package/dist/database/kysely-plugin/serialize-jsonb-plugin.js +100 -0
  209. package/dist/database/kysely-plugin/serialize-jsonb-plugin.js.map +1 -0
  210. package/dist/database/kysely-plugin/serialize-jsonb-plugin.test.d.ts +2 -0
  211. package/dist/database/kysely-plugin/serialize-jsonb-plugin.test.d.ts.map +1 -0
  212. package/dist/database/kysely-plugin/serialize-jsonb-plugin.test.js +107 -0
  213. package/dist/database/kysely-plugin/serialize-jsonb-plugin.test.js.map +1 -0
  214. package/dist/database/mutation-log/database-schema.d.ts +16 -0
  215. package/dist/database/mutation-log/database-schema.d.ts.map +1 -0
  216. package/dist/database/mutation-log/database-schema.js +103 -0
  217. package/dist/database/mutation-log/database-schema.js.map +1 -0
  218. package/dist/database/mutation-log/lix-session.d.ts +8 -0
  219. package/dist/database/mutation-log/lix-session.d.ts.map +1 -0
  220. package/dist/database/mutation-log/lix-session.js +18 -0
  221. package/dist/database/mutation-log/lix-session.js.map +1 -0
  222. package/dist/database/schema.d.ts +220 -0
  223. package/dist/database/schema.d.ts.map +1 -0
  224. package/dist/database/schema.js +2 -0
  225. package/dist/database/schema.js.map +1 -0
  226. package/dist/discussion/create-comment.d.ts +10 -0
  227. package/dist/discussion/create-comment.d.ts.map +1 -0
  228. package/dist/discussion/create-comment.js +13 -0
  229. package/dist/discussion/create-comment.js.map +1 -0
  230. package/dist/discussion/create-discussion.d.ts +23 -0
  231. package/dist/discussion/create-discussion.d.ts.map +1 -0
  232. package/dist/discussion/create-discussion.js +41 -0
  233. package/dist/discussion/create-discussion.js.map +1 -0
  234. package/dist/discussion/create-discussion.test.d.ts +2 -0
  235. package/dist/discussion/create-discussion.test.d.ts.map +1 -0
  236. package/dist/discussion/create-discussion.test.js +64 -0
  237. package/dist/discussion/create-discussion.test.js.map +1 -0
  238. package/dist/discussion/index.d.ts +3 -0
  239. package/dist/discussion/index.d.ts.map +1 -0
  240. package/dist/discussion/index.js +3 -0
  241. package/dist/discussion/index.js.map +1 -0
  242. package/dist/file/index.d.ts +2 -0
  243. package/dist/file/index.d.ts.map +1 -0
  244. package/dist/file/index.js +2 -0
  245. package/dist/file/index.js.map +1 -0
  246. package/dist/file/validate-file-path.d.ts +16 -0
  247. package/dist/file/validate-file-path.d.ts.map +1 -0
  248. package/dist/file/validate-file-path.js +44 -0
  249. package/dist/file/validate-file-path.js.map +1 -0
  250. package/dist/file/validate-file-path.test.d.ts +2 -0
  251. package/dist/file/validate-file-path.test.d.ts.map +1 -0
  252. package/dist/file/validate-file-path.test.js +36 -0
  253. package/dist/file/validate-file-path.test.js.map +1 -0
  254. package/dist/index.d.ts +17 -0
  255. package/dist/index.d.ts.map +1 -0
  256. package/dist/index.js +17 -0
  257. package/dist/index.js.map +1 -0
  258. package/dist/key-value/database-schema.d.ts +33 -0
  259. package/dist/key-value/database-schema.d.ts.map +1 -0
  260. package/dist/key-value/database-schema.js +18 -0
  261. package/dist/key-value/database-schema.js.map +1 -0
  262. package/dist/key-value/database-schema.test.d.ts +2 -0
  263. package/dist/key-value/database-schema.test.d.ts.map +1 -0
  264. package/dist/key-value/database-schema.test.js +98 -0
  265. package/dist/key-value/database-schema.test.js.map +1 -0
  266. package/dist/lix/index.d.ts +4 -0
  267. package/dist/lix/index.d.ts.map +1 -0
  268. package/dist/lix/index.js +7 -0
  269. package/dist/lix/index.js.map +1 -0
  270. package/dist/lix/merge.d.ts +9 -0
  271. package/dist/lix/merge.d.ts.map +1 -0
  272. package/dist/lix/merge.get-leaf-changes-only-in-source.d.ts +15 -0
  273. package/dist/lix/merge.get-leaf-changes-only-in-source.d.ts.map +1 -0
  274. package/dist/lix/merge.get-leaf-changes-only-in-source.js +34 -0
  275. package/dist/lix/merge.get-leaf-changes-only-in-source.js.map +1 -0
  276. package/dist/lix/merge.get-leaf-changes-only-in-source.test.d.ts +2 -0
  277. package/dist/lix/merge.get-leaf-changes-only-in-source.test.d.ts.map +1 -0
  278. package/dist/lix/merge.get-leaf-changes-only-in-source.test.js +121 -0
  279. package/dist/lix/merge.get-leaf-changes-only-in-source.test.js.map +1 -0
  280. package/dist/lix/merge.js +195 -0
  281. package/dist/lix/merge.js.map +1 -0
  282. package/dist/lix/merge.test.d.ts +2 -0
  283. package/dist/lix/merge.test.d.ts.map +1 -0
  284. package/dist/lix/merge.test.js +700 -0
  285. package/dist/lix/merge.test.js.map +1 -0
  286. package/dist/lix/new-lix.d.ts +8 -0
  287. package/dist/lix/new-lix.d.ts.map +1 -0
  288. package/dist/lix/new-lix.js +27 -0
  289. package/dist/lix/new-lix.js.map +1 -0
  290. package/dist/lix/new-lix.test.d.ts +2 -0
  291. package/dist/lix/new-lix.test.d.ts.map +1 -0
  292. package/dist/lix/new-lix.test.js +21 -0
  293. package/dist/lix/new-lix.test.js.map +1 -0
  294. package/dist/lix/open-lix-in-memory.d.ts +12 -0
  295. package/dist/lix/open-lix-in-memory.d.ts.map +1 -0
  296. package/dist/lix/open-lix-in-memory.js +19 -0
  297. package/dist/lix/open-lix-in-memory.js.map +1 -0
  298. package/dist/lix/open-lix-in-memory.test.d.ts +2 -0
  299. package/dist/lix/open-lix-in-memory.test.d.ts.map +1 -0
  300. package/dist/lix/open-lix-in-memory.test.js +29 -0
  301. package/dist/lix/open-lix-in-memory.test.js.map +1 -0
  302. package/dist/lix/open-lix.d.ts +52 -0
  303. package/dist/lix/open-lix.d.ts.map +1 -0
  304. package/dist/lix/open-lix.js +47 -0
  305. package/dist/lix/open-lix.js.map +1 -0
  306. package/dist/lix/open-lix.test.d.ts +2 -0
  307. package/dist/lix/open-lix.test.d.ts.map +1 -0
  308. package/dist/lix/open-lix.test.js +29 -0
  309. package/dist/lix/open-lix.test.js.map +1 -0
  310. package/dist/own-entity-change-control/apply-own-entity-change.d.ts +10 -0
  311. package/dist/own-entity-change-control/apply-own-entity-change.d.ts.map +1 -0
  312. package/dist/own-entity-change-control/apply-own-entity-change.js +69 -0
  313. package/dist/own-entity-change-control/apply-own-entity-change.js.map +1 -0
  314. package/dist/own-entity-change-control/apply-own-entity-change.test.d.ts +2 -0
  315. package/dist/own-entity-change-control/apply-own-entity-change.test.d.ts.map +1 -0
  316. package/dist/own-entity-change-control/apply-own-entity-change.test.js +297 -0
  317. package/dist/own-entity-change-control/apply-own-entity-change.test.js.map +1 -0
  318. package/dist/own-entity-change-control/change-controlled-tables.d.ts +61 -0
  319. package/dist/own-entity-change-control/change-controlled-tables.d.ts.map +1 -0
  320. package/dist/own-entity-change-control/change-controlled-tables.js +71 -0
  321. package/dist/own-entity-change-control/change-controlled-tables.js.map +1 -0
  322. package/dist/own-entity-change-control/change-controlled-tables.test.d.ts +2 -0
  323. package/dist/own-entity-change-control/change-controlled-tables.test.d.ts.map +1 -0
  324. package/dist/own-entity-change-control/change-controlled-tables.test.js +48 -0
  325. package/dist/own-entity-change-control/change-controlled-tables.test.js.map +1 -0
  326. package/dist/own-entity-change-control/database-triggers.d.ts +5 -0
  327. package/dist/own-entity-change-control/database-triggers.d.ts.map +1 -0
  328. package/dist/own-entity-change-control/database-triggers.js +135 -0
  329. package/dist/own-entity-change-control/database-triggers.js.map +1 -0
  330. package/dist/own-entity-change-control/database-triggers.test.d.ts +2 -0
  331. package/dist/own-entity-change-control/database-triggers.test.d.ts.map +1 -0
  332. package/dist/own-entity-change-control/database-triggers.test.js +214 -0
  333. package/dist/own-entity-change-control/database-triggers.test.js.map +1 -0
  334. package/dist/own-entity-change-control/index.d.ts +2 -0
  335. package/dist/own-entity-change-control/index.d.ts.map +1 -0
  336. package/dist/own-entity-change-control/index.js +2 -0
  337. package/dist/own-entity-change-control/index.js.map +1 -0
  338. package/dist/own-entity-change-control/with-skip-own-change-control.d.ts +3 -0
  339. package/dist/own-entity-change-control/with-skip-own-change-control.d.ts.map +1 -0
  340. package/dist/own-entity-change-control/with-skip-own-change-control.js +24 -0
  341. package/dist/own-entity-change-control/with-skip-own-change-control.js.map +1 -0
  342. package/dist/own-entity-change-control/with-skip-own-change-control.test.d.ts +2 -0
  343. package/dist/own-entity-change-control/with-skip-own-change-control.test.d.ts.map +1 -0
  344. package/dist/own-entity-change-control/with-skip-own-change-control.test.js +49 -0
  345. package/dist/own-entity-change-control/with-skip-own-change-control.test.js.map +1 -0
  346. package/dist/plugin/index.d.ts +2 -0
  347. package/dist/plugin/index.d.ts.map +1 -0
  348. package/dist/plugin/index.js +2 -0
  349. package/dist/plugin/index.js.map +1 -0
  350. package/dist/plugin/lix-plugin.d.ts +114 -0
  351. package/dist/plugin/lix-plugin.d.ts.map +1 -0
  352. package/dist/plugin/lix-plugin.js +2 -0
  353. package/dist/plugin/lix-plugin.js.map +1 -0
  354. package/dist/plugin/lix-plugin.test-d.d.ts +2 -0
  355. package/dist/plugin/lix-plugin.test-d.d.ts.map +1 -0
  356. package/dist/plugin/lix-plugin.test-d.js +40 -0
  357. package/dist/plugin/lix-plugin.test-d.js.map +1 -0
  358. package/dist/plugin/load-plugin.d.ts +5 -0
  359. package/dist/plugin/load-plugin.d.ts.map +1 -0
  360. package/dist/plugin/load-plugin.js +20 -0
  361. package/dist/plugin/load-plugin.js.map +1 -0
  362. package/dist/plugin/with-transaction.d.ts +11 -0
  363. package/dist/plugin/with-transaction.d.ts.map +1 -0
  364. package/dist/plugin/with-transaction.js +15 -0
  365. package/dist/plugin/with-transaction.js.map +1 -0
  366. package/dist/query-filter/change-conflict-in-version.d.ts +15 -0
  367. package/dist/query-filter/change-conflict-in-version.d.ts.map +1 -0
  368. package/dist/query-filter/change-conflict-in-version.js +18 -0
  369. package/dist/query-filter/change-conflict-in-version.js.map +1 -0
  370. package/dist/query-filter/change-conflict-in-version.test.d.ts +2 -0
  371. package/dist/query-filter/change-conflict-in-version.test.d.ts.map +1 -0
  372. package/dist/query-filter/change-conflict-in-version.test.js +55 -0
  373. package/dist/query-filter/change-conflict-in-version.test.js.map +1 -0
  374. package/dist/query-filter/change-has-label.d.ts +25 -0
  375. package/dist/query-filter/change-has-label.d.ts.map +1 -0
  376. package/dist/query-filter/change-has-label.js +30 -0
  377. package/dist/query-filter/change-has-label.js.map +1 -0
  378. package/dist/query-filter/change-has-label.test.d.ts +2 -0
  379. package/dist/query-filter/change-has-label.test.d.ts.map +1 -0
  380. package/dist/query-filter/change-has-label.test.js +46 -0
  381. package/dist/query-filter/change-has-label.test.js.map +1 -0
  382. package/dist/query-filter/change-in-version.d.ts +16 -0
  383. package/dist/query-filter/change-in-version.d.ts.map +1 -0
  384. package/dist/query-filter/change-in-version.js +29 -0
  385. package/dist/query-filter/change-in-version.js.map +1 -0
  386. package/dist/query-filter/change-in-version.test.d.ts +2 -0
  387. package/dist/query-filter/change-in-version.test.d.ts.map +1 -0
  388. package/dist/query-filter/change-in-version.test.js +75 -0
  389. package/dist/query-filter/change-in-version.test.js.map +1 -0
  390. package/dist/query-filter/change-is-leaf-in-version.d.ts +16 -0
  391. package/dist/query-filter/change-is-leaf-in-version.d.ts.map +1 -0
  392. package/dist/query-filter/change-is-leaf-in-version.js +35 -0
  393. package/dist/query-filter/change-is-leaf-in-version.js.map +1 -0
  394. package/dist/query-filter/change-is-leaf-in-version.test.d.ts +2 -0
  395. package/dist/query-filter/change-is-leaf-in-version.test.d.ts.map +1 -0
  396. package/dist/query-filter/change-is-leaf-in-version.test.js +70 -0
  397. package/dist/query-filter/change-is-leaf-in-version.test.js.map +1 -0
  398. package/dist/query-filter/change-is-leaf-of.bench.d.ts +2 -0
  399. package/dist/query-filter/change-is-leaf-of.bench.d.ts.map +1 -0
  400. package/dist/query-filter/change-is-leaf-of.bench.js +132 -0
  401. package/dist/query-filter/change-is-leaf-of.bench.js.map +1 -0
  402. package/dist/query-filter/change-is-leaf-of.d.ts +29 -0
  403. package/dist/query-filter/change-is-leaf-of.d.ts.map +1 -0
  404. package/dist/query-filter/change-is-leaf-of.js +44 -0
  405. package/dist/query-filter/change-is-leaf-of.js.map +1 -0
  406. package/dist/query-filter/change-is-leaf-of.test.d.ts +2 -0
  407. package/dist/query-filter/change-is-leaf-of.test.d.ts.map +1 -0
  408. package/dist/query-filter/change-is-leaf-of.test.js +71 -0
  409. package/dist/query-filter/change-is-leaf-of.test.js.map +1 -0
  410. package/dist/query-filter/change-is-leaf.d.ts +18 -0
  411. package/dist/query-filter/change-is-leaf.d.ts.map +1 -0
  412. package/dist/query-filter/change-is-leaf.js +18 -0
  413. package/dist/query-filter/change-is-leaf.js.map +1 -0
  414. package/dist/query-filter/change-is-leaf.test.d.ts +2 -0
  415. package/dist/query-filter/change-is-leaf.test.d.ts.map +1 -0
  416. package/dist/query-filter/change-is-leaf.test.js +122 -0
  417. package/dist/query-filter/change-is-leaf.test.js.map +1 -0
  418. package/dist/query-filter/change-is-lowest-common-ancestor-of.d.ts +16 -0
  419. package/dist/query-filter/change-is-lowest-common-ancestor-of.d.ts.map +1 -0
  420. package/dist/query-filter/change-is-lowest-common-ancestor-of.js +55 -0
  421. package/dist/query-filter/change-is-lowest-common-ancestor-of.js.map +1 -0
  422. package/dist/query-filter/change-is-lowest-common-ancestor-of.test.d.ts +2 -0
  423. package/dist/query-filter/change-is-lowest-common-ancestor-of.test.d.ts.map +1 -0
  424. package/dist/query-filter/change-is-lowest-common-ancestor-of.test.js +155 -0
  425. package/dist/query-filter/change-is-lowest-common-ancestor-of.test.js.map +1 -0
  426. package/dist/query-filter/change-set-has-label.d.ts +25 -0
  427. package/dist/query-filter/change-set-has-label.d.ts.map +1 -0
  428. package/dist/query-filter/change-set-has-label.js +29 -0
  429. package/dist/query-filter/change-set-has-label.js.map +1 -0
  430. package/dist/query-filter/change-set-has-label.test.d.ts +2 -0
  431. package/dist/query-filter/change-set-has-label.test.d.ts.map +1 -0
  432. package/dist/query-filter/change-set-has-label.test.js +43 -0
  433. package/dist/query-filter/change-set-has-label.test.js.map +1 -0
  434. package/dist/query-filter/index.d.ts +9 -0
  435. package/dist/query-filter/index.d.ts.map +1 -0
  436. package/dist/query-filter/index.js +9 -0
  437. package/dist/query-filter/index.js.map +1 -0
  438. package/dist/query-filter/version-change-in-difference.d.ts +18 -0
  439. package/dist/query-filter/version-change-in-difference.d.ts.map +1 -0
  440. package/dist/query-filter/version-change-in-difference.js +25 -0
  441. package/dist/query-filter/version-change-in-difference.js.map +1 -0
  442. package/dist/query-filter/version-change-in-difference.test.d.ts +2 -0
  443. package/dist/query-filter/version-change-in-difference.test.d.ts.map +1 -0
  444. package/dist/query-filter/version-change-in-difference.test.js +77 -0
  445. package/dist/query-filter/version-change-in-difference.test.js.map +1 -0
  446. package/dist/query-filter/version-change-in-symmetric-difference.d.ts +19 -0
  447. package/dist/query-filter/version-change-in-symmetric-difference.d.ts.map +1 -0
  448. package/dist/query-filter/version-change-in-symmetric-difference.js +36 -0
  449. package/dist/query-filter/version-change-in-symmetric-difference.js.map +1 -0
  450. package/dist/query-filter/version-change-in-symmetric-difference.test.d.ts +2 -0
  451. package/dist/query-filter/version-change-in-symmetric-difference.test.d.ts.map +1 -0
  452. package/dist/query-filter/version-change-in-symmetric-difference.test.js +86 -0
  453. package/dist/query-filter/version-change-in-symmetric-difference.test.js.map +1 -0
  454. package/dist/server-api-handler/create-server-api-handler.d.ts +48 -0
  455. package/dist/server-api-handler/create-server-api-handler.d.ts.map +1 -0
  456. package/dist/server-api-handler/create-server-api-handler.js +68 -0
  457. package/dist/server-api-handler/create-server-api-handler.js.map +1 -0
  458. package/dist/server-api-handler/environment/create-in-memory-environment.d.ts +8 -0
  459. package/dist/server-api-handler/environment/create-in-memory-environment.d.ts.map +1 -0
  460. package/dist/server-api-handler/environment/create-in-memory-environment.js +93 -0
  461. package/dist/server-api-handler/environment/create-in-memory-environment.js.map +1 -0
  462. package/dist/server-api-handler/environment/create-in-memory-environment.test.d.ts +2 -0
  463. package/dist/server-api-handler/environment/create-in-memory-environment.test.d.ts.map +1 -0
  464. package/dist/server-api-handler/environment/create-in-memory-environment.test.js +102 -0
  465. package/dist/server-api-handler/environment/create-in-memory-environment.test.js.map +1 -0
  466. package/dist/server-api-handler/environment/environment.d.ts +53 -0
  467. package/dist/server-api-handler/environment/environment.d.ts.map +1 -0
  468. package/dist/server-api-handler/environment/environment.js +2 -0
  469. package/dist/server-api-handler/environment/environment.js.map +1 -0
  470. package/dist/server-api-handler/index.d.ts +3 -0
  471. package/dist/server-api-handler/index.d.ts.map +1 -0
  472. package/dist/server-api-handler/index.js +3 -0
  473. package/dist/server-api-handler/index.js.map +1 -0
  474. package/dist/server-api-handler/routes/get-v1.d.ts +3 -0
  475. package/dist/server-api-handler/routes/get-v1.d.ts.map +1 -0
  476. package/dist/server-api-handler/routes/get-v1.js +45 -0
  477. package/dist/server-api-handler/routes/get-v1.js.map +1 -0
  478. package/dist/server-api-handler/routes/get-v1.test.d.ts +2 -0
  479. package/dist/server-api-handler/routes/get-v1.test.d.ts.map +1 -0
  480. package/dist/server-api-handler/routes/get-v1.test.js +107 -0
  481. package/dist/server-api-handler/routes/get-v1.test.js.map +1 -0
  482. package/dist/server-api-handler/routes/new-v1.d.ts +3 -0
  483. package/dist/server-api-handler/routes/new-v1.d.ts.map +1 -0
  484. package/dist/server-api-handler/routes/new-v1.js +36 -0
  485. package/dist/server-api-handler/routes/new-v1.js.map +1 -0
  486. package/dist/server-api-handler/routes/new-v1.test.d.ts +2 -0
  487. package/dist/server-api-handler/routes/new-v1.test.d.ts.map +1 -0
  488. package/dist/server-api-handler/routes/new-v1.test.js +71 -0
  489. package/dist/server-api-handler/routes/new-v1.test.js.map +1 -0
  490. package/dist/server-api-handler/routes/pull-v1.d.ts +3 -0
  491. package/dist/server-api-handler/routes/pull-v1.d.ts.map +1 -0
  492. package/dist/server-api-handler/routes/pull-v1.js +41 -0
  493. package/dist/server-api-handler/routes/pull-v1.js.map +1 -0
  494. package/dist/server-api-handler/routes/pull-v1.test.d.ts +2 -0
  495. package/dist/server-api-handler/routes/pull-v1.test.d.ts.map +1 -0
  496. package/dist/server-api-handler/routes/pull-v1.test.js +145 -0
  497. package/dist/server-api-handler/routes/pull-v1.test.js.map +1 -0
  498. package/dist/server-api-handler/routes/push-v1.d.ts +3 -0
  499. package/dist/server-api-handler/routes/push-v1.d.ts.map +1 -0
  500. package/dist/server-api-handler/routes/push-v1.js +142 -0
  501. package/dist/server-api-handler/routes/push-v1.js.map +1 -0
  502. package/dist/server-api-handler/routes/push-v1.test.d.ts +2 -0
  503. package/dist/server-api-handler/routes/push-v1.test.d.ts.map +1 -0
  504. package/dist/server-api-handler/routes/push-v1.test.js +230 -0
  505. package/dist/server-api-handler/routes/push-v1.test.js.map +1 -0
  506. package/dist/snapshot/create-snapshot.d.ts +18 -0
  507. package/dist/snapshot/create-snapshot.d.ts.map +1 -0
  508. package/dist/snapshot/create-snapshot.js +33 -0
  509. package/dist/snapshot/create-snapshot.js.map +1 -0
  510. package/dist/snapshot/create-snapshot.test.d.ts +2 -0
  511. package/dist/snapshot/create-snapshot.test.d.ts.map +1 -0
  512. package/dist/snapshot/create-snapshot.test.js +54 -0
  513. package/dist/snapshot/create-snapshot.test.js.map +1 -0
  514. package/dist/snapshot/index.d.ts +3 -0
  515. package/dist/snapshot/index.d.ts.map +1 -0
  516. package/dist/snapshot/index.js +3 -0
  517. package/dist/snapshot/index.js.map +1 -0
  518. package/dist/snapshot/json-sha-256.d.ts +8 -0
  519. package/dist/snapshot/json-sha-256.d.ts.map +1 -0
  520. package/dist/snapshot/json-sha-256.js +29 -0
  521. package/dist/snapshot/json-sha-256.js.map +1 -0
  522. package/dist/snapshot/json-sha-256.test.d.ts +2 -0
  523. package/dist/snapshot/json-sha-256.test.d.ts.map +1 -0
  524. package/dist/snapshot/json-sha-256.test.js +10 -0
  525. package/dist/snapshot/json-sha-256.test.js.map +1 -0
  526. package/dist/snapshot/mock-json-snapshot.d.ts +8 -0
  527. package/dist/snapshot/mock-json-snapshot.d.ts.map +1 -0
  528. package/dist/snapshot/mock-json-snapshot.js +13 -0
  529. package/dist/snapshot/mock-json-snapshot.js.map +1 -0
  530. package/dist/sync/get-diffing-rows.d.ts +16 -0
  531. package/dist/sync/get-diffing-rows.d.ts.map +1 -0
  532. package/dist/sync/get-diffing-rows.js +62 -0
  533. package/dist/sync/get-diffing-rows.js.map +1 -0
  534. package/dist/sync/merge-state.d.ts +20 -0
  535. package/dist/sync/merge-state.d.ts.map +1 -0
  536. package/dist/sync/merge-state.js +237 -0
  537. package/dist/sync/merge-state.js.map +1 -0
  538. package/dist/sync/pull-from-server.d.ts +8 -0
  539. package/dist/sync/pull-from-server.d.ts.map +1 -0
  540. package/dist/sync/pull-from-server.js +115 -0
  541. package/dist/sync/pull-from-server.js.map +1 -0
  542. package/dist/sync/pull-from-server.test.d.ts +2 -0
  543. package/dist/sync/pull-from-server.test.d.ts.map +1 -0
  544. package/dist/sync/pull-from-server.test.js +325 -0
  545. package/dist/sync/pull-from-server.test.js.map +1 -0
  546. package/dist/sync/push-to-server.d.ts +12 -0
  547. package/dist/sync/push-to-server.d.ts.map +1 -0
  548. package/dist/sync/push-to-server.js +35 -0
  549. package/dist/sync/push-to-server.js.map +1 -0
  550. package/dist/sync/push-to-server.test.d.ts +2 -0
  551. package/dist/sync/push-to-server.test.d.ts.map +1 -0
  552. package/dist/sync/push-to-server.test.js +304 -0
  553. package/dist/sync/push-to-server.test.js.map +1 -0
  554. package/dist/sync/sync-process.d.ts +7 -0
  555. package/dist/sync/sync-process.d.ts.map +1 -0
  556. package/dist/sync/sync-process.js +79 -0
  557. package/dist/sync/sync-process.js.map +1 -0
  558. package/dist/sync/sync-process.test.d.ts +2 -0
  559. package/dist/sync/sync-process.test.d.ts.map +1 -0
  560. package/dist/sync/sync-process.test.js +255 -0
  561. package/dist/sync/sync-process.test.js.map +1 -0
  562. package/dist/version/create-version.d.ts +27 -0
  563. package/dist/version/create-version.d.ts.map +1 -0
  564. package/dist/version/create-version.js +62 -0
  565. package/dist/version/create-version.js.map +1 -0
  566. package/dist/version/create-version.test.d.ts +2 -0
  567. package/dist/version/create-version.test.d.ts.map +1 -0
  568. package/dist/version/create-version.test.js +126 -0
  569. package/dist/version/create-version.test.js.map +1 -0
  570. package/dist/version/index.d.ts +8 -0
  571. package/dist/version/index.d.ts.map +1 -0
  572. package/dist/version/index.js +8 -0
  573. package/dist/version/index.js.map +1 -0
  574. package/dist/version/merge-version.d.ts +8 -0
  575. package/dist/version/merge-version.d.ts.map +1 -0
  576. package/dist/version/merge-version.js +77 -0
  577. package/dist/version/merge-version.js.map +1 -0
  578. package/dist/version/merge-version.test.d.ts +2 -0
  579. package/dist/version/merge-version.test.d.ts.map +1 -0
  580. package/dist/version/merge-version.test.js +434 -0
  581. package/dist/version/merge-version.test.js.map +1 -0
  582. package/dist/version/switch-version.d.ts +27 -0
  583. package/dist/version/switch-version.d.ts.map +1 -0
  584. package/dist/version/switch-version.js +91 -0
  585. package/dist/version/switch-version.js.map +1 -0
  586. package/dist/version/switch-version.test.d.ts +2 -0
  587. package/dist/version/switch-version.test.d.ts.map +1 -0
  588. package/dist/version/switch-version.test.js +230 -0
  589. package/dist/version/switch-version.test.js.map +1 -0
  590. package/dist/version/update-changes-in-version.d.ts +13 -0
  591. package/dist/version/update-changes-in-version.d.ts.map +1 -0
  592. package/dist/version/update-changes-in-version.js +56 -0
  593. package/dist/version/update-changes-in-version.js.map +1 -0
  594. package/dist/version/update-changes-in-version.test.d.ts +2 -0
  595. package/dist/version/update-changes-in-version.test.d.ts.map +1 -0
  596. package/dist/version/update-changes-in-version.test.js +323 -0
  597. package/dist/version/update-changes-in-version.test.js.map +1 -0
  598. package/node_modules/@lix-js/server-api-schema/.prettierrc.json +3 -0
  599. package/node_modules/@lix-js/server-api-schema/.vscode/extensions.json +3 -0
  600. package/node_modules/@lix-js/server-api-schema/dist/schema.d.ts +384 -0
  601. package/node_modules/@lix-js/server-api-schema/package.json +21 -0
  602. package/node_modules/@lix-js/server-api-schema/src/schema.yaml +290 -0
  603. package/node_modules/@lix-js/server-api-schema/tsconfig.json +20 -0
  604. package/node_modules/sqlite-wasm-kysely/README.md +11 -0
  605. package/node_modules/sqlite-wasm-kysely/dist/dialect.d.ts +11 -0
  606. package/node_modules/sqlite-wasm-kysely/dist/dialect.js +13 -0
  607. package/node_modules/sqlite-wasm-kysely/dist/dialect.js.map +1 -0
  608. package/node_modules/sqlite-wasm-kysely/dist/index.d.ts +2 -0
  609. package/node_modules/sqlite-wasm-kysely/dist/index.js +3 -0
  610. package/node_modules/sqlite-wasm-kysely/dist/index.js.map +1 -0
  611. package/node_modules/sqlite-wasm-kysely/dist/kysely/ConnectionMutex.d.ts +5 -0
  612. package/node_modules/sqlite-wasm-kysely/dist/kysely/ConnectionMutex.js +34 -0
  613. package/node_modules/sqlite-wasm-kysely/dist/kysely/ConnectionMutex.js.map +1 -0
  614. package/node_modules/sqlite-wasm-kysely/dist/kysely/SqliteWasmConnection.d.ts +8 -0
  615. package/node_modules/sqlite-wasm-kysely/dist/kysely/SqliteWasmConnection.js +57 -0
  616. package/node_modules/sqlite-wasm-kysely/dist/kysely/SqliteWasmConnection.js.map +1 -0
  617. package/node_modules/sqlite-wasm-kysely/dist/kysely/SqliteWasmDialectConfig.d.ts +18 -0
  618. package/node_modules/sqlite-wasm-kysely/dist/kysely/SqliteWasmDialectConfig.js +2 -0
  619. package/node_modules/sqlite-wasm-kysely/dist/kysely/SqliteWasmDialectConfig.js.map +1 -0
  620. package/node_modules/sqlite-wasm-kysely/dist/kysely/SqliteWasmDriver.d.ts +13 -0
  621. package/node_modules/sqlite-wasm-kysely/dist/kysely/SqliteWasmDriver.js +57 -0
  622. package/node_modules/sqlite-wasm-kysely/dist/kysely/SqliteWasmDriver.js.map +1 -0
  623. package/node_modules/sqlite-wasm-kysely/dist/kysely/index.d.ts +4 -0
  624. package/node_modules/sqlite-wasm-kysely/dist/kysely/index.js +4 -0
  625. package/node_modules/sqlite-wasm-kysely/dist/kysely/index.js.map +1 -0
  626. package/node_modules/sqlite-wasm-kysely/dist/kysely/sqliteModule.d.ts +3 -0
  627. package/node_modules/sqlite-wasm-kysely/dist/kysely/sqliteModule.js +5 -0
  628. package/node_modules/sqlite-wasm-kysely/dist/kysely/sqliteModule.js.map +1 -0
  629. package/node_modules/sqlite-wasm-kysely/dist/util/contentFromDatabase.d.ts +9 -0
  630. package/node_modules/sqlite-wasm-kysely/dist/util/contentFromDatabase.js +12 -0
  631. package/node_modules/sqlite-wasm-kysely/dist/util/contentFromDatabase.js.map +1 -0
  632. package/node_modules/sqlite-wasm-kysely/dist/util/createInMemoryDatabase.d.ts +3 -0
  633. package/node_modules/sqlite-wasm-kysely/dist/util/createInMemoryDatabase.js +22 -0
  634. package/node_modules/sqlite-wasm-kysely/dist/util/createInMemoryDatabase.js.map +1 -0
  635. package/node_modules/sqlite-wasm-kysely/dist/util/importDatabase.d.ts +7 -0
  636. package/node_modules/sqlite-wasm-kysely/dist/util/importDatabase.js +15 -0
  637. package/node_modules/sqlite-wasm-kysely/dist/util/importDatabase.js.map +1 -0
  638. package/node_modules/sqlite-wasm-kysely/dist/util/index.d.ts +5 -0
  639. package/node_modules/sqlite-wasm-kysely/dist/util/index.js +5 -0
  640. package/node_modules/sqlite-wasm-kysely/dist/util/index.js.map +1 -0
  641. package/node_modules/sqlite-wasm-kysely/dist/util/loadDatabaseInMemory.d.ts +1 -0
  642. package/node_modules/sqlite-wasm-kysely/dist/util/loadDatabaseInMemory.js +13 -0
  643. package/node_modules/sqlite-wasm-kysely/dist/util/loadDatabaseInMemory.js.map +1 -0
  644. package/node_modules/sqlite-wasm-kysely/dist/util/sqliteWasmBinary.d.ts +7 -0
  645. package/node_modules/sqlite-wasm-kysely/dist/util/sqliteWasmBinary.js +17 -0
  646. package/node_modules/sqlite-wasm-kysely/dist/util/sqliteWasmBinary.js.map +1 -0
  647. package/node_modules/sqlite-wasm-kysely/package.json +34 -0
  648. package/node_modules/sqlite-wasm-kysely/src/dialect.ts +15 -0
  649. package/node_modules/sqlite-wasm-kysely/src/index.ts +2 -0
  650. package/node_modules/sqlite-wasm-kysely/src/kysely/ConnectionMutex.ts +23 -0
  651. package/node_modules/sqlite-wasm-kysely/src/kysely/SqliteWasmConnection.ts +57 -0
  652. package/node_modules/sqlite-wasm-kysely/src/kysely/SqliteWasmDialectConfig.ts +19 -0
  653. package/node_modules/sqlite-wasm-kysely/src/kysely/SqliteWasmDriver.ts +58 -0
  654. package/node_modules/sqlite-wasm-kysely/src/kysely/index.ts +4 -0
  655. package/node_modules/sqlite-wasm-kysely/src/kysely/sqliteModule.ts +7 -0
  656. package/node_modules/sqlite-wasm-kysely/src/util/contentFromDatabase.ts +13 -0
  657. package/node_modules/sqlite-wasm-kysely/src/util/createInMemoryDatabase.ts +30 -0
  658. package/node_modules/sqlite-wasm-kysely/src/util/importDatabase.ts +34 -0
  659. package/node_modules/sqlite-wasm-kysely/src/util/index.ts +5 -0
  660. package/node_modules/sqlite-wasm-kysely/src/util/loadDatabaseInMemory.ts +13 -0
  661. package/node_modules/sqlite-wasm-kysely/src/util/sqliteWasmBinary.ts +20 -0
  662. package/package.json +52 -0
  663. package/src/account/create-account.test.ts +26 -0
  664. package/src/account/create-account.ts +26 -0
  665. package/src/account/database-schema.test.ts +187 -0
  666. package/src/account/database-schema.ts +58 -0
  667. package/src/account/index.ts +3 -0
  668. package/src/account/switch-account.test.ts +63 -0
  669. package/src/account/switch-account.ts +39 -0
  670. package/src/change/apply-changes.test.ts +268 -0
  671. package/src/change/apply-changes.ts +114 -0
  672. package/src/change/create-change.test.ts +296 -0
  673. package/src/change/create-change.ts +129 -0
  674. package/src/change/index.ts +2 -0
  675. package/src/change/mock-change.ts +21 -0
  676. package/src/change-conflict/create-change-conflict.test.ts +173 -0
  677. package/src/change-conflict/create-change-conflict.ts +105 -0
  678. package/src/change-conflict/detect-change-conflicts.test.ts +215 -0
  679. package/src/change-conflict/detect-change-conflicts.ts +65 -0
  680. package/src/change-conflict/detect-diverging-entity-conflict.test.ts +228 -0
  681. package/src/change-conflict/detect-diverging-entity-conflict.ts +82 -0
  682. package/src/change-conflict/garbage-collect-change-conflicts.test.ts +219 -0
  683. package/src/change-conflict/garbage-collect-change-conflicts.ts +96 -0
  684. package/src/change-conflict/index.ts +3 -0
  685. package/src/change-conflict/resolve-conflict-by-selecting.test.ts +118 -0
  686. package/src/change-conflict/resolve-conflict-by-selecting.ts +66 -0
  687. package/src/change-conflict/update-change-conflicts.ts +79 -0
  688. package/src/change-queue/change-queue-settled.test.ts +56 -0
  689. package/src/change-queue/change-queue-settled.ts +31 -0
  690. package/src/change-queue/file-handlers.ts +273 -0
  691. package/src/change-queue/index.ts +1 -0
  692. package/src/change-queue/init-change-queue.test.ts +457 -0
  693. package/src/change-queue/init-change-queue.ts +99 -0
  694. package/src/change-queue/with-skip-change-queue.test.ts +158 -0
  695. package/src/change-queue/with-skip-change-queue.ts +33 -0
  696. package/src/change-schema/README.md +3 -0
  697. package/src/change-schema/index.ts +4 -0
  698. package/src/change-schema/types.test-d.ts +52 -0
  699. package/src/change-schema/types.ts +53 -0
  700. package/src/change-set/change-set-element-in-symmetric-difference.test.ts +128 -0
  701. package/src/change-set/change-set-element-in-symmetric-difference.ts +52 -0
  702. package/src/change-set/create-change-set.test.ts +43 -0
  703. package/src/change-set/create-change-set.ts +41 -0
  704. package/src/change-set/index.ts +2 -0
  705. package/src/database/apply-schema.ts +323 -0
  706. package/src/database/execute-sync.test.ts +152 -0
  707. package/src/database/execute-sync.ts +47 -0
  708. package/src/database/index.ts +4 -0
  709. package/src/database/init-db.test.ts +484 -0
  710. package/src/database/init-db.ts +94 -0
  711. package/src/database/kysely-plugin/parse-jsonb-plugin-v1.test.ts +204 -0
  712. package/src/database/kysely-plugin/parse-jsonb-plugin-v1.ts +48 -0
  713. package/src/database/kysely-plugin/parse-jsonb-plugin-v2.no_test.ts +204 -0
  714. package/src/database/kysely-plugin/parse-jsonb-plugin-v2.ts +194 -0
  715. package/src/database/kysely-plugin/serialize-jsonb-plugin.test.ts +132 -0
  716. package/src/database/kysely-plugin/serialize-jsonb-plugin.ts +122 -0
  717. package/src/database/mutation-log/database-schema.ts +128 -0
  718. package/src/database/mutation-log/lix-session.ts +19 -0
  719. package/src/database/schema.ts +282 -0
  720. package/src/discussion/create-comment.ts +21 -0
  721. package/src/discussion/create-discussion.test.ts +76 -0
  722. package/src/discussion/create-discussion.ts +51 -0
  723. package/src/discussion/index.ts +2 -0
  724. package/src/file/index.ts +1 -0
  725. package/src/file/validate-file-path.test.ts +44 -0
  726. package/src/file/validate-file-path.ts +60 -0
  727. package/src/index.ts +16 -0
  728. package/src/key-value/database-schema.test.ts +119 -0
  729. package/src/key-value/database-schema.ts +54 -0
  730. package/src/lix/index.ts +6 -0
  731. package/src/lix/merge.get-leaf-changes-only-in-source.test.ts +143 -0
  732. package/src/lix/merge.get-leaf-changes-only-in-source.ts +46 -0
  733. package/src/lix/merge.test.ts +870 -0
  734. package/src/lix/merge.ts +244 -0
  735. package/src/lix/new-lix.test.ts +23 -0
  736. package/src/lix/new-lix.ts +30 -0
  737. package/src/lix/open-lix-in-memory.test.ts +30 -0
  738. package/src/lix/open-lix-in-memory.ts +28 -0
  739. package/src/lix/open-lix.test.ts +33 -0
  740. package/src/lix/open-lix.ts +103 -0
  741. package/src/own-entity-change-control/apply-own-entity-change.test.ts +365 -0
  742. package/src/own-entity-change-control/apply-own-entity-change.ts +110 -0
  743. package/src/own-entity-change-control/change-controlled-tables.test.ts +69 -0
  744. package/src/own-entity-change-control/change-controlled-tables.ts +103 -0
  745. package/src/own-entity-change-control/database-triggers.test.ts +259 -0
  746. package/src/own-entity-change-control/database-triggers.ts +189 -0
  747. package/src/own-entity-change-control/index.ts +1 -0
  748. package/src/own-entity-change-control/with-skip-own-change-control.test.ts +57 -0
  749. package/src/own-entity-change-control/with-skip-own-change-control.ts +30 -0
  750. package/src/plugin/index.ts +6 -0
  751. package/src/plugin/lix-plugin.test-d.ts +45 -0
  752. package/src/plugin/lix-plugin.ts +128 -0
  753. package/src/plugin/load-plugin.ts +28 -0
  754. package/src/plugin/with-transaction.ts +22 -0
  755. package/src/query-filter/change-conflict-in-version.test.ts +62 -0
  756. package/src/query-filter/change-conflict-in-version.ts +25 -0
  757. package/src/query-filter/change-has-label.test.ts +52 -0
  758. package/src/query-filter/change-has-label.ts +41 -0
  759. package/src/query-filter/change-in-version.test.ts +82 -0
  760. package/src/query-filter/change-in-version.ts +31 -0
  761. package/src/query-filter/change-is-leaf-in-version.test.ts +77 -0
  762. package/src/query-filter/change-is-leaf-in-version.ts +36 -0
  763. package/src/query-filter/change-is-leaf-of.bench.ts +175 -0
  764. package/src/query-filter/change-is-leaf-of.test.ts +84 -0
  765. package/src/query-filter/change-is-leaf-of.ts +46 -0
  766. package/src/query-filter/change-is-leaf.test.ts +140 -0
  767. package/src/query-filter/change-is-leaf.ts +25 -0
  768. package/src/query-filter/change-is-lowest-common-ancestor-of.test.ts +173 -0
  769. package/src/query-filter/change-is-lowest-common-ancestor-of.ts +57 -0
  770. package/src/query-filter/change-set-has-label.test.ts +50 -0
  771. package/src/query-filter/change-set-has-label.ts +36 -0
  772. package/src/query-filter/index.ts +8 -0
  773. package/src/query-filter/version-change-in-difference.test.ts +96 -0
  774. package/src/query-filter/version-change-in-difference.ts +37 -0
  775. package/src/query-filter/version-change-in-symmetric-difference.test.ts +105 -0
  776. package/src/query-filter/version-change-in-symmetric-difference.ts +52 -0
  777. package/src/server-api-handler/create-server-api-handler.ts +84 -0
  778. package/src/server-api-handler/environment/create-in-memory-environment.test.ts +130 -0
  779. package/src/server-api-handler/environment/create-in-memory-environment.ts +111 -0
  780. package/src/server-api-handler/environment/environment.ts +43 -0
  781. package/src/server-api-handler/index.ts +5 -0
  782. package/src/server-api-handler/routes/get-v1.test.ts +146 -0
  783. package/src/server-api-handler/routes/get-v1.ts +63 -0
  784. package/src/server-api-handler/routes/new-v1.test.ts +102 -0
  785. package/src/server-api-handler/routes/new-v1.ts +44 -0
  786. package/src/server-api-handler/routes/pull-v1.test.ts +200 -0
  787. package/src/server-api-handler/routes/pull-v1.ts +57 -0
  788. package/src/server-api-handler/routes/push-v1.test.ts +301 -0
  789. package/src/server-api-handler/routes/push-v1.ts +180 -0
  790. package/src/snapshot/create-snapshot.test.ts +68 -0
  791. package/src/snapshot/create-snapshot.ts +40 -0
  792. package/src/snapshot/index.ts +2 -0
  793. package/src/snapshot/json-sha-256.test.ts +12 -0
  794. package/src/snapshot/json-sha-256.ts +35 -0
  795. package/src/snapshot/mock-json-snapshot.ts +14 -0
  796. package/src/sync/get-diffing-rows.ts +96 -0
  797. package/src/sync/merge-state.ts +310 -0
  798. package/src/sync/pull-from-server.test.ts +410 -0
  799. package/src/sync/pull-from-server.ts +146 -0
  800. package/src/sync/push-to-server.test.ts +387 -0
  801. package/src/sync/push-to-server.ts +47 -0
  802. package/src/sync/sync-process.test.ts +327 -0
  803. package/src/sync/sync-process.ts +97 -0
  804. package/src/version/create-version.test.ts +149 -0
  805. package/src/version/create-version.ts +76 -0
  806. package/src/version/index.ts +8 -0
  807. package/src/version/merge-version.test.ts +530 -0
  808. package/src/version/merge-version.ts +96 -0
  809. package/src/version/switch-version.test.ts +295 -0
  810. package/src/version/switch-version.ts +110 -0
  811. package/src/version/update-changes-in-version.test.ts +371 -0
  812. package/src/version/update-changes-in-version.ts +66 -0
@@ -0,0 +1,318 @@
1
+ import { applyAccountDatabaseSchema } from "../account/database-schema.js";
2
+ import { applyKeyValueDatabaseSchema } from "../key-value/database-schema.js";
3
+ import { applyMutationLogDatabaseSchema } from "./mutation-log/database-schema.js";
4
+ /**
5
+ * Applies the database schema to the given sqlite database.
6
+ */
7
+ export function applySchema(args) {
8
+ applyAccountDatabaseSchema(args.sqlite);
9
+ applyKeyValueDatabaseSchema(args.sqlite);
10
+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions
11
+ args.sqlite.exec `
12
+
13
+ PRAGMA foreign_keys = ON;
14
+ PRAGMA auto_vacuum = 2; -- incremental https://www.sqlite.org/pragma.html#pragma_auto_vacuum
15
+
16
+ -- file
17
+
18
+ CREATE TABLE IF NOT EXISTS file (
19
+ id TEXT PRIMARY KEY DEFAULT (uuid_v7()),
20
+ path TEXT NOT NULL UNIQUE,
21
+ data BLOB NOT NULL,
22
+ metadata BLOB,
23
+
24
+
25
+ CHECK (is_valid_file_path(path))
26
+ ) STRICT;
27
+
28
+ CREATE TABLE IF NOT EXISTS change_queue (
29
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
30
+ file_id TEXT NOT NULL,
31
+ data_before BLOB,
32
+ data_after BLOB,
33
+ path_before TEXT,
34
+ path_after TEXT,
35
+ metadata_before BLOB,
36
+ metadata_after BLOB
37
+ ) STRICT;
38
+
39
+ CREATE TRIGGER IF NOT EXISTS file_insert BEFORE INSERT ON file
40
+ BEGIN
41
+ INSERT INTO change_queue(
42
+ file_id, path_after, data_after, metadata_after
43
+ )
44
+ VALUES (
45
+ NEW.id, NEW.path, NEW.data, NEW.metadata
46
+ );
47
+ SELECT triggerChangeQueue();
48
+ END;
49
+
50
+ CREATE TRIGGER IF NOT EXISTS file_update BEFORE UPDATE ON file
51
+ BEGIN
52
+ INSERT INTO change_queue(
53
+ file_id,
54
+ path_before, data_before, metadata_before,
55
+ path_after, data_after, metadata_after
56
+ )
57
+
58
+ VALUES (
59
+ NEW.id,
60
+ OLD.path, OLD.data, OLD.metadata,
61
+ NEW.path, NEW.data, NEW.metadata
62
+ );
63
+
64
+ SELECT triggerChangeQueue();
65
+ END;
66
+
67
+ CREATE TRIGGER IF NOT EXISTS file_delete BEFORE DELETE ON file
68
+ BEGIN
69
+ INSERT INTO change_queue(file_id)
70
+ VALUES (OLD.id);
71
+ SELECT triggerChangeQueue();
72
+ END;
73
+
74
+ CREATE TABLE IF NOT EXISTS change (
75
+ id TEXT PRIMARY KEY DEFAULT (uuid_v7()),
76
+ entity_id TEXT NOT NULL,
77
+ schema_key TEXT NOT NULL,
78
+ file_id TEXT NOT NULL,
79
+ plugin_key TEXT NOT NULL,
80
+ snapshot_id TEXT NOT NULL,
81
+ created_at TEXT DEFAULT CURRENT_TIMESTAMP NOT NULL,
82
+
83
+ UNIQUE (id, entity_id, file_id, schema_key),
84
+ FOREIGN KEY(snapshot_id) REFERENCES snapshot(id)
85
+ ) STRICT;
86
+
87
+ CREATE TABLE IF NOT EXISTS change_author (
88
+ change_id TEXT NOT NULL,
89
+ account_id TEXT NOT NULL,
90
+
91
+ PRIMARY KEY (change_id, account_id),
92
+ FOREIGN KEY(change_id) REFERENCES change(id),
93
+ FOREIGN KEY(account_id) REFERENCES account(id)
94
+ ) strict;
95
+
96
+ CREATE TABLE IF NOT EXISTS change_edge (
97
+ parent_id TEXT NOT NULL,
98
+ child_id TEXT NOT NULL,
99
+
100
+ PRIMARY KEY (parent_id, child_id),
101
+ FOREIGN KEY(parent_id) REFERENCES change(id),
102
+ FOREIGN KEY(child_id) REFERENCES change(id),
103
+ -- Prevent self referencing edges
104
+ CHECK (parent_id != child_id)
105
+ ) STRICT;
106
+
107
+ CREATE TABLE IF NOT EXISTS snapshot (
108
+ id TEXT GENERATED ALWAYS AS (json_sha256(content)) STORED UNIQUE,
109
+ content BLOB
110
+ ) STRICT;
111
+
112
+ -- Create the default 'no-content' snapshot
113
+ -- to avoid foreign key constraint violations in tests
114
+ INSERT OR IGNORE INTO snapshot (content) VALUES (NULL);
115
+
116
+ -- conflicts
117
+
118
+ CREATE INDEX IF NOT EXISTS idx_content_hash ON snapshot (id);
119
+
120
+ CREATE TABLE IF NOT EXISTS change_conflict (
121
+ id TEXT PRIMARY KEY DEFAULT (uuid_v7()),
122
+
123
+ key TEXT NOT NULL,
124
+ change_set_id TEXT NOT NULL,
125
+ FOREIGN KEY(change_set_id) REFERENCES change_set(id)
126
+ ) STRICT;
127
+
128
+ CREATE TABLE IF NOT EXISTS change_conflict_resolution (
129
+ change_conflict_id TEXT NOT NULL,
130
+ resolved_change_id TEXT NOT NULL,
131
+
132
+ -- potential future columns
133
+ -- resolved_by <account_id>
134
+ -- resolved_at <timestamp>
135
+
136
+ PRIMARY KEY(change_conflict_id, resolved_change_id),
137
+ FOREIGN KEY(change_conflict_id) REFERENCES change_conflict(id),
138
+ FOREIGN KEY(resolved_change_id) REFERENCES change(id)
139
+ ) STRICT;
140
+
141
+ -- change sets
142
+
143
+ CREATE TABLE IF NOT EXISTS change_set (
144
+ id TEXT PRIMARY KEY DEFAULT (uuid_v7())
145
+ ) STRICT;
146
+
147
+ CREATE TABLE IF NOT EXISTS change_set_element (
148
+
149
+ change_set_id TEXT NOT NULL,
150
+ change_id TEXT NOT NULL,
151
+
152
+ PRIMARY KEY(change_set_id, change_id),
153
+ FOREIGN KEY(change_set_id) REFERENCES change_set(id),
154
+ FOREIGN KEY(change_id) REFERENCES change(id)
155
+ ) STRICT;
156
+
157
+ CREATE TABLE IF NOT EXISTS change_set_label (
158
+ label_id TEXT NOT NULL,
159
+ change_set_id TEXT NOT NULL,
160
+ PRIMARY KEY(label_id, change_set_id),
161
+ FOREIGN KEY(label_id) REFERENCES label(id),
162
+ FOREIGN KEY(change_set_id) REFERENCES change_set(id)
163
+ ) STRICT;
164
+
165
+ CREATE TABLE IF NOT EXISTS change_set_label_author (
166
+ label_id TEXT NOT NULL,
167
+ change_set_id TEXT NOT NULL,
168
+ account_id TEXT NOT NULL,
169
+
170
+ PRIMARY KEY(label_id, change_set_id, account_id),
171
+ FOREIGN KEY(label_id, change_set_id) REFERENCES change_set_label(label_id, change_set_id),
172
+ FOREIGN KEY(account_id) REFERENCES account(id)
173
+ ) STRICT;
174
+
175
+ -- discussions
176
+
177
+ CREATE TABLE IF NOT EXISTS discussion (
178
+ id TEXT PRIMARY KEY DEFAULT (uuid_v7()),
179
+ change_set_id TEXT NOT NULL,
180
+
181
+ FOREIGN KEY(change_set_id) REFERENCES change_set(id)
182
+ ) STRICT;
183
+
184
+ CREATE TABLE IF NOT EXISTS comment (
185
+ id TEXT PRIMARY KEY DEFAULT (uuid_v7()),
186
+ parent_id TEXT,
187
+ discussion_id TEXT NULL,
188
+ created_at TEXT DEFAULT CURRENT_TIMESTAMP NOT NULL,
189
+ content TEXT NOT NULL,
190
+ created_by TEXT NOT NULL,
191
+
192
+ FOREIGN KEY(created_by) REFERENCES account(id),
193
+ FOREIGN KEY(discussion_id) REFERENCES discussion(id),
194
+ FOREIGN KEY(parent_id) REFERENCES comment(id)
195
+ ) STRICT;
196
+
197
+ -- labels
198
+
199
+ CREATE TABLE IF NOT EXISTS label (
200
+ id TEXT PRIMARY KEY DEFAULT (uuid_v7()),
201
+
202
+ name TEXT NOT NULL UNIQUE -- e.g., 'confirmed', 'reviewed'
203
+
204
+ ) STRICT;
205
+
206
+ INSERT OR IGNORE INTO label (name) VALUES ('confirmed');
207
+ INSERT OR IGNORE INTO label (name) VALUES ('grouped');
208
+
209
+ -- versions
210
+
211
+ CREATE TABLE IF NOT EXISTS version (
212
+ id TEXT PRIMARY KEY DEFAULT (uuid_v7()),
213
+
214
+ -- name is optional.
215
+ --
216
+ -- "anonymous" versiones can ease workflows.
217
+ -- For example, a user can create a version
218
+ -- without a name to experiment with
219
+ -- changes with no mental overhead of
220
+ -- naming the version.
221
+ name TEXT
222
+ ) STRICT;
223
+
224
+ CREATE TABLE IF NOT EXISTS version_change (
225
+ version_id TEXT NOT NULL,
226
+ change_id TEXT NOT NULL,
227
+
228
+ PRIMARY KEY (version_id, change_id),
229
+ FOREIGN KEY (version_id) REFERENCES version(id) ON DELETE CASCADE,
230
+ FOREIGN KEY (change_id) REFERENCES change(id) ON DELETE CASCADE
231
+ ) STRICT;
232
+
233
+ CREATE TABLE IF NOT EXISTS version_change_conflict (
234
+ version_id TEXT NOT NULL,
235
+ change_conflict_id TEXT NOT NULL,
236
+
237
+ PRIMARY KEY (version_id, change_conflict_id),
238
+ FOREIGN KEY (version_id) REFERENCES version(id),
239
+ FOREIGN KEY (change_conflict_id) REFERENCES change_conflict(id)
240
+ ) STRICT;
241
+
242
+ -- only one version can be active at a time
243
+ -- hence, the table has only one row
244
+ CREATE TABLE IF NOT EXISTS current_version (
245
+ id TEXT NOT NULL PRIMARY KEY,
246
+
247
+ FOREIGN KEY(id) REFERENCES version(id)
248
+ ) STRICT;
249
+
250
+ -- Insert the default version if missing
251
+ -- (this is a workaround for not having a separata creation and migration schema's)
252
+
253
+ INSERT INTO version (id, name)
254
+ SELECT '019328cc-ccb0-7f51-96e8-524df4597ac6', 'main'
255
+ WHERE NOT EXISTS (SELECT 1 FROM version);
256
+
257
+ -- Set the default current version to 'main' if both tables are empty
258
+ -- (this is a workaround for not having a separata creation and migration schema's)
259
+ INSERT INTO current_version (id)
260
+ SELECT '019328cc-ccb0-7f51-96e8-524df4597ac6'
261
+ WHERE NOT EXISTS (SELECT 1 FROM current_version);
262
+
263
+
264
+ CREATE TEMP TRIGGER IF NOT EXISTS insert_account_if_not_exists_on_change_author
265
+ BEFORE INSERT ON change_author
266
+ FOR EACH ROW
267
+ WHEN NEW.account_id NOT IN (SELECT id FROM account) AND NEW.account_id IN (SELECT id FROM temp.active_account)
268
+ BEGIN
269
+ INSERT OR IGNORE INTO account
270
+ SELECT
271
+ *
272
+ FROM active_account
273
+ WHERE id = NEW.account_id;
274
+ END;
275
+
276
+ CREATE TEMP TRIGGER IF NOT EXISTS insert_account_if_not_exists_on_change_set_label_author
277
+ BEFORE INSERT ON change_set_label_author
278
+ FOR EACH ROW
279
+ WHEN NEW.account_id NOT IN (SELECT id FROM account) AND NEW.account_id IN (SELECT id FROM temp.active_account)
280
+ BEGIN
281
+ INSERT OR IGNORE INTO account
282
+ SELECT
283
+ *
284
+ FROM active_account
285
+ WHERE id = NEW.account_id;
286
+ END;
287
+
288
+ CREATE TEMP TRIGGER IF NOT EXISTS insert_account_if_not_exists_on_comment
289
+ BEFORE INSERT ON comment
290
+ FOR EACH ROW
291
+ WHEN NEW.created_by NOT IN (SELECT id FROM account) AND NEW.created_by IN (SELECT id FROM temp.active_account)
292
+ BEGIN
293
+ INSERT OR IGNORE INTO account
294
+ SELECT
295
+ *
296
+ FROM active_account
297
+ WHERE id = NEW.created_by;
298
+ END;
299
+
300
+
301
+ `;
302
+ // CREATE TRIGGER IF NOT EXISTS insert_account_if_not_exists_on_change_set_label_author
303
+ // BEFORE INSERT ON change_set_label_author
304
+ // FOR EACH ROW
305
+ // BEGIN
306
+ // INSERT OR IGNORE INTO account (id, name)
307
+ // VALUES (
308
+ // NEW.account_id,
309
+ // CASE
310
+ // WHEN NEW.account_id LIKE 'anonymous_%' THEN 'anonymous'
311
+ // ELSE NEW.account_id
312
+ // END
313
+ // );
314
+ // END;
315
+ applyMutationLogDatabaseSchema(args.sqlite);
316
+ return args.sqlite;
317
+ }
318
+ //# sourceMappingURL=apply-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply-schema.js","sourceRoot":"","sources":["../../src/database/apply-schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AAEnF;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAAgC;IAC3D,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxC,2BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEzC,oEAAoE;IACpE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkSd,CAAC;IAEH,uFAAuF;IACvF,2CAA2C;IAC3C,eAAe;IACf,QAAQ;IACR,6CAA6C;IAC7C,aAAa;IACb,sBAAsB;IACtB,WAAW;IACX,gEAAgE;IAChE,4BAA4B;IAC5B,UAAU;IACV,OAAO;IACP,OAAO;IAEP,8BAA8B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE5C,OAAO,IAAI,CAAC,MAAM,CAAC;AACpB,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { Lix } from "../lix/open-lix.js";
2
+ /**
3
+ * Execute a query synchronously.
4
+ *
5
+ * WARNING: This function is not recommended for general use.
6
+ * Only if you need sync queries, like in a trigger for exmaple,
7
+ * you should use this function. The function is not transforming
8
+ * the query or the result as the db API does. You get raw SQL.
9
+ *
10
+ * @example
11
+ * const query = lix.db.selectFrom("key_value").selectAll();
12
+ * const result = executeSync({ lix, query }) as KeyValue[];
13
+ */
14
+ export declare function executeSync(args: {
15
+ lix: Pick<Lix, "sqlite">;
16
+ query: any;
17
+ }): Array<any>;
18
+ //# sourceMappingURL=execute-sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute-sync.d.ts","sourceRoot":"","sources":["../../src/database/execute-sync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAE9C;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE;IACjC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACzB,KAAK,EAAE,GAAG,CAAC;CACX,GAAG,KAAK,CAAC,GAAG,CAAC,CA6Bb"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Execute a query synchronously.
3
+ *
4
+ * WARNING: This function is not recommended for general use.
5
+ * Only if you need sync queries, like in a trigger for exmaple,
6
+ * you should use this function. The function is not transforming
7
+ * the query or the result as the db API does. You get raw SQL.
8
+ *
9
+ * @example
10
+ * const query = lix.db.selectFrom("key_value").selectAll();
11
+ * const result = executeSync({ lix, query }) as KeyValue[];
12
+ */
13
+ export function executeSync(args) {
14
+ const compiledQuery = args.query.compile();
15
+ const columnNames = [];
16
+ try {
17
+ const result = args.lix.sqlite.exec({
18
+ sql: compiledQuery.sql,
19
+ bind: compiledQuery.parameters,
20
+ returnValue: "resultRows",
21
+ columnNames,
22
+ });
23
+ return result.map((row) => {
24
+ const obj = {};
25
+ columnNames.forEach((columnName, index) => {
26
+ obj[columnName] = row[index];
27
+ });
28
+ return obj;
29
+ });
30
+ }
31
+ catch (e) {
32
+ console.error(`Error in executeSync for query:\n\n${compiledQuery.sql}\n\n`, e);
33
+ return [];
34
+ }
35
+ }
36
+ //# sourceMappingURL=execute-sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute-sync.js","sourceRoot":"","sources":["../../src/database/execute-sync.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,WAAW,CAAC,IAG3B;IACA,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAE3C,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;YACnC,GAAG,EAAE,aAAa,CAAC,GAAG;YACtB,IAAI,EAAE,aAAa,CAAC,UAAmB;YACvC,WAAW,EAAE,YAAY;YACzB,WAAW;SACX,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACzB,MAAM,GAAG,GAAQ,EAAE,CAAC;YAEpB,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;gBACzC,GAAG,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;YAEH,OAAO,GAAG,CAAC;QACZ,CAAC,CAAC,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CACZ,sCAAsC,aAAa,CAAC,GAAG,MAAM,EAC7D,CAAC,CACD,CAAC;QACF,OAAO,EAAE,CAAC;IACX,CAAC;AACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=execute-sync.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute-sync.test.d.ts","sourceRoot":"","sources":["../../src/database/execute-sync.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,118 @@
1
+ import { expect, test } from "vitest";
2
+ import { openLixInMemory } from "../lix/open-lix-in-memory.js";
3
+ import { executeSync } from "./execute-sync.js";
4
+ import { mockChange } from "../change/mock-change.js";
5
+ import { sql } from "kysely";
6
+ test("executeSync yields the same result as async execute for an insert", async () => {
7
+ const lix1 = await openLixInMemory({});
8
+ const lix2 = await openLixInMemory({});
9
+ const query = (lix) => lix.db
10
+ .insertInto("key_value")
11
+ .values({ key: "foo", value: "bar" })
12
+ .returningAll();
13
+ const result = executeSync({ lix: lix1, query: query(lix1) });
14
+ const result2 = await query(lix2).execute();
15
+ expect(result).toEqual(result2);
16
+ });
17
+ test("handles joins", async () => {
18
+ const lix = await openLixInMemory({});
19
+ const mockFile0 = {
20
+ id: "file-0",
21
+ path: "/file-0",
22
+ data: new ArrayBuffer(0),
23
+ metadata: {},
24
+ };
25
+ const mockChange0 = mockChange({ id: "change-0", file_id: "file-0" });
26
+ await lix.db.insertInto("change").values(mockChange0).execute();
27
+ await lix.db.insertInto("file").values(mockFile0).execute();
28
+ const query = lix.db
29
+ .selectFrom("file")
30
+ .innerJoin("change", "change.file_id", "file.id")
31
+ .where("file.id", "=", "file-0")
32
+ .selectAll("change")
33
+ .select("file.path as file_path");
34
+ const result = executeSync({ lix, query });
35
+ const result2 = await query.execute();
36
+ expect(result).toEqual(result2);
37
+ });
38
+ test("does not transform the query or results (json parsing)", async () => {
39
+ const lix1 = await openLixInMemory({});
40
+ const lix2 = await openLixInMemory({});
41
+ const mockFile0 = {
42
+ id: "file-0",
43
+ path: "/file-0",
44
+ data: new ArrayBuffer(0),
45
+ metadata: {
46
+ foo: "bar",
47
+ },
48
+ };
49
+ const insertQuery = (lix) => lix.db.insertInto("file").values(mockFile0).returningAll();
50
+ const result1 = await insertQuery(lix1).execute();
51
+ const result2 = executeSync({ lix: lix2, query: insertQuery(lix2) });
52
+ expect(result1).not.toEqual(result2);
53
+ const withManualJson = executeSync({
54
+ lix: lix2,
55
+ query: lix2.db
56
+ .selectFrom("file")
57
+ .selectAll()
58
+ .select(sql `json(metadata)`.as("metadata")),
59
+ });
60
+ for (const row of withManualJson) {
61
+ row.metadata = JSON.parse(row.metadata);
62
+ }
63
+ expect(result1).toEqual(withManualJson);
64
+ });
65
+ // important for function like `createQuery` which are used in triggers and need to be sync
66
+ // but are also used by users where the API is async
67
+ test("using executeSync with a 'fake async' function should work", async () => {
68
+ const lix = await openLixInMemory({});
69
+ async function fakeAyncQuery(lix) {
70
+ const query = lix.db
71
+ .insertInto("key_value")
72
+ .values({ key: "foo", value: "bar" })
73
+ .returningAll();
74
+ return executeSync({ lix, query });
75
+ }
76
+ const result = await fakeAyncQuery(lix);
77
+ expect(result).toEqual([{ key: "foo", value: "bar" }]);
78
+ });
79
+ test("it works with kysely transactions", async () => {
80
+ const lix = await openLixInMemory({});
81
+ // transaction that fails
82
+ try {
83
+ await lix.db.transaction().execute(async (trx) => {
84
+ await trx
85
+ .insertInto("key_value")
86
+ .values({ key: "foo", value: "bar" })
87
+ .execute();
88
+ executeSync({
89
+ lix,
90
+ query: trx
91
+ .insertInto("key_value")
92
+ .values({ key: "foo2", value: "bar2" }),
93
+ });
94
+ throw new Error("rollback");
95
+ });
96
+ }
97
+ catch {
98
+ // ignore;
99
+ }
100
+ const keyValues = await lix.db.selectFrom("key_value").selectAll().execute();
101
+ expect(keyValues.find((kv) => kv.key === "foo")).toBeUndefined();
102
+ expect(keyValues.find((kv) => kv.key === "foo2")).toBeUndefined();
103
+ // transaction that succeeds
104
+ await lix.db.transaction().execute(async (trx) => {
105
+ await trx
106
+ .insertInto("key_value")
107
+ .values({ key: "foo", value: "bar" })
108
+ .execute();
109
+ executeSync({
110
+ lix,
111
+ query: trx.insertInto("key_value").values({ key: "foo2", value: "bar2" }),
112
+ });
113
+ });
114
+ const keyValues2 = await lix.db.selectFrom("key_value").selectAll().execute();
115
+ expect(keyValues2.find((kv) => kv.key === "foo")).toBeDefined();
116
+ expect(keyValues2.find((kv) => kv.key === "foo2")).toBeDefined();
117
+ });
118
+ //# sourceMappingURL=execute-sync.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute-sync.test.js","sourceRoot":"","sources":["../../src/database/execute-sync.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export * from "./schema.js";
2
+ export { jsonObjectFrom, jsonArrayFrom } from "kysely/helpers/sqlite";
3
+ export { sql } from "kysely";
4
+ export { executeSync } from "./execute-sync.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from "./schema.js";
2
+ export { jsonObjectFrom, jsonArrayFrom } from "kysely/helpers/sqlite";
3
+ export { sql } from "kysely";
4
+ export { executeSync } from "./execute-sync.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { Kysely } from "kysely";
2
+ import { type SqliteDatabase } from "sqlite-wasm-kysely";
3
+ import type { LixDatabaseSchema } from "./schema.js";
4
+ export declare function initDb(args: {
5
+ sqlite: SqliteDatabase;
6
+ }): Kysely<LixDatabaseSchema>;
7
+ //# sourceMappingURL=init-db.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-db.d.ts","sourceRoot":"","sources":["../../src/database/init-db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAExE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AASrD,wBAAgB,MAAM,CAAC,IAAI,EAAE;IAC5B,MAAM,EAAE,cAAc,CAAC;CACvB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAsB5B"}
@@ -0,0 +1,80 @@
1
+ import { Kysely } from "kysely";
2
+ import { createDialect } from "sqlite-wasm-kysely";
3
+ import { v7 as uuid_v7, v4 as uuid_v4 } from "uuid";
4
+ import { applySchema } from "./apply-schema.js";
5
+ import { validateFilePath } from "../file/validate-file-path.js";
6
+ import { jsonSha256 } from "../snapshot/json-sha-256.js";
7
+ import { ParseJsonBPluginV1 } from "./kysely-plugin/parse-jsonb-plugin-v1.js";
8
+ import { SerializeJsonBPlugin } from "./kysely-plugin/serialize-jsonb-plugin.js";
9
+ import { createSession } from "./mutation-log/lix-session.js";
10
+ import { applyOwnEntityChangeControlTriggers } from "../own-entity-change-control/database-triggers.js";
11
+ export function initDb(args) {
12
+ initFunctions({ sqlite: args.sqlite });
13
+ applySchema({ sqlite: args.sqlite });
14
+ const db = new Kysely({
15
+ dialect: createDialect({
16
+ database: args.sqlite,
17
+ }),
18
+ plugins: [
19
+ ParseJsonBPluginV1({
20
+ // jsonb columns
21
+ file: ["metadata"],
22
+ change_queue: ["metadata_before", "metadata_after"],
23
+ snapshot: ["content"],
24
+ mutation_log: ["row_id"],
25
+ }),
26
+ SerializeJsonBPlugin(),
27
+ ],
28
+ });
29
+ // need to apply it here because db object needs to be available
30
+ applyOwnEntityChangeControlTriggers(args.sqlite, db);
31
+ return db;
32
+ }
33
+ function initFunctions(args) {
34
+ args.sqlite.createFunction({
35
+ name: "uuid_v7",
36
+ arity: 0,
37
+ xFunc: () => uuid_v7(),
38
+ });
39
+ args.sqlite.createFunction({
40
+ name: "uuid_v4",
41
+ arity: 0,
42
+ xFunc: () => uuid_v4(),
43
+ });
44
+ args.sqlite.createFunction({
45
+ name: "json_sha256",
46
+ arity: 1,
47
+ xFunc: (_ctx, value) => {
48
+ if (!value) {
49
+ return "no-content";
50
+ }
51
+ const json = args.sqlite.exec("SELECT json(?)", {
52
+ bind: [value],
53
+ returnValue: "resultRows",
54
+ })[0][0];
55
+ const parsed = JSON.parse(json);
56
+ return jsonSha256(parsed);
57
+ },
58
+ deterministic: true,
59
+ });
60
+ args.sqlite.createFunction({
61
+ name: "is_valid_file_path",
62
+ arity: 1,
63
+ xFunc: (_ctx, value) => {
64
+ return validateFilePath(value);
65
+ },
66
+ deterministic: true,
67
+ });
68
+ const lixSession = createSession();
69
+ args.sqlite.createFunction({
70
+ name: "lix_session",
71
+ arity: 0,
72
+ xFunc: () => lixSession.id(),
73
+ });
74
+ args.sqlite.createFunction({
75
+ name: "lix_session_clock_tick",
76
+ arity: 0,
77
+ xFunc: () => lixSession.sessionClockTick(),
78
+ });
79
+ }
80
+ //# sourceMappingURL=init-db.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-db.js","sourceRoot":"","sources":["../../src/database/init-db.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=init-db.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-db.test.d.ts","sourceRoot":"","sources":["../../src/database/init-db.test.ts"],"names":[],"mappings":""}