@lix-js/sdk 0.0.1 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (278) hide show
  1. package/LICENSE +21 -0
  2. package/dist/change/apply-changes.js +9 -9
  3. package/dist/change/apply-changes.js.map +1 -1
  4. package/dist/change/apply-changes.test.js +5 -5
  5. package/dist/change/apply-changes.test.js.map +1 -1
  6. package/dist/database/apply-schema.d.ts.map +1 -1
  7. package/dist/database/apply-schema.js +20 -72
  8. package/dist/database/apply-schema.js.map +1 -1
  9. package/dist/database/execute-sync.test.js +3 -3
  10. package/dist/database/execute-sync.test.js.map +1 -1
  11. package/dist/database/init-db.d.ts.map +1 -1
  12. package/dist/database/init-db.js +18 -3
  13. package/dist/database/init-db.js.map +1 -1
  14. package/dist/database/init-db.test.js +128 -17
  15. package/dist/database/init-db.test.js.map +1 -1
  16. package/dist/database/kysely-plugin/parse-jsonb-plugin-v1.d.ts.map +1 -1
  17. package/dist/database/kysely-plugin/parse-jsonb-plugin-v1.js +5 -2
  18. package/dist/database/kysely-plugin/parse-jsonb-plugin-v1.js.map +1 -1
  19. package/dist/database/mutation-log/database-schema.d.ts.map +1 -1
  20. package/dist/database/mutation-log/database-schema.js +1 -3
  21. package/dist/database/mutation-log/database-schema.js.map +1 -1
  22. package/dist/database/nano-id.d.ts +21 -0
  23. package/dist/database/nano-id.d.ts.map +1 -0
  24. package/dist/database/nano-id.js +58 -0
  25. package/dist/database/nano-id.js.map +1 -0
  26. package/dist/database/nano-id.test.d.ts +2 -0
  27. package/dist/database/nano-id.test.d.ts.map +1 -0
  28. package/dist/database/nano-id.test.js +13 -0
  29. package/dist/database/nano-id.test.js.map +1 -0
  30. package/dist/database/schema.d.ts +15 -23
  31. package/dist/database/schema.d.ts.map +1 -1
  32. package/dist/discussion/create-comment.d.ts +0 -2
  33. package/dist/discussion/create-comment.d.ts.map +1 -1
  34. package/dist/discussion/create-comment.js +0 -1
  35. package/dist/discussion/create-comment.js.map +1 -1
  36. package/dist/discussion/create-discussion.d.ts +3 -5
  37. package/dist/discussion/create-discussion.d.ts.map +1 -1
  38. package/dist/discussion/create-discussion.js +4 -5
  39. package/dist/discussion/create-discussion.js.map +1 -1
  40. package/dist/discussion/create-discussion.test.js +8 -34
  41. package/dist/discussion/create-discussion.test.js.map +1 -1
  42. package/dist/file-queue/file-handlers.d.ts +24 -0
  43. package/dist/file-queue/file-handlers.d.ts.map +1 -0
  44. package/dist/file-queue/file-handlers.js +209 -0
  45. package/dist/file-queue/file-handlers.js.map +1 -0
  46. package/dist/file-queue/file-queue-process.d.ts +5 -0
  47. package/dist/file-queue/file-queue-process.d.ts.map +1 -0
  48. package/dist/file-queue/file-queue-process.js +85 -0
  49. package/dist/file-queue/file-queue-process.js.map +1 -0
  50. package/dist/file-queue/file-queue-process.test.d.ts +2 -0
  51. package/dist/file-queue/file-queue-process.test.d.ts.map +1 -0
  52. package/dist/file-queue/file-queue-process.test.js +373 -0
  53. package/dist/file-queue/file-queue-process.test.js.map +1 -0
  54. package/dist/file-queue/file-queue-settled.d.ts +13 -0
  55. package/dist/file-queue/file-queue-settled.d.ts.map +1 -0
  56. package/dist/file-queue/file-queue-settled.js +25 -0
  57. package/dist/file-queue/file-queue-settled.js.map +1 -0
  58. package/dist/file-queue/file-queue-settled.test.d.ts +2 -0
  59. package/dist/file-queue/file-queue-settled.test.d.ts.map +1 -0
  60. package/dist/file-queue/file-queue-settled.test.js +47 -0
  61. package/dist/file-queue/file-queue-settled.test.js.map +1 -0
  62. package/dist/file-queue/index.d.ts +2 -0
  63. package/dist/file-queue/index.d.ts.map +1 -0
  64. package/dist/file-queue/index.js +2 -0
  65. package/dist/file-queue/index.js.map +1 -0
  66. package/dist/file-queue/with-skip-file-queue.d.ts +3 -0
  67. package/dist/file-queue/with-skip-file-queue.d.ts.map +1 -0
  68. package/dist/file-queue/with-skip-file-queue.js +26 -0
  69. package/dist/file-queue/with-skip-file-queue.js.map +1 -0
  70. package/dist/file-queue/with-skip-file-queue.test.d.ts +2 -0
  71. package/dist/file-queue/with-skip-file-queue.test.d.ts.map +1 -0
  72. package/dist/file-queue/with-skip-file-queue.test.js +138 -0
  73. package/dist/file-queue/with-skip-file-queue.test.js.map +1 -0
  74. package/dist/index.d.ts +2 -2
  75. package/dist/index.d.ts.map +1 -1
  76. package/dist/index.js +2 -2
  77. package/dist/index.js.map +1 -1
  78. package/dist/key-value/database-schema.d.ts +11 -2
  79. package/dist/key-value/database-schema.d.ts.map +1 -1
  80. package/dist/key-value/database-schema.js +7 -4
  81. package/dist/key-value/database-schema.js.map +1 -1
  82. package/dist/key-value/database-schema.test.js +21 -5
  83. package/dist/key-value/database-schema.test.js.map +1 -1
  84. package/dist/lix/close-lix.d.ts +8 -0
  85. package/dist/lix/close-lix.d.ts.map +1 -0
  86. package/dist/lix/close-lix.js +7 -0
  87. package/dist/lix/close-lix.js.map +1 -0
  88. package/dist/lix/index.d.ts +1 -0
  89. package/dist/lix/index.d.ts.map +1 -1
  90. package/dist/lix/index.js +1 -0
  91. package/dist/lix/index.js.map +1 -1
  92. package/dist/lix/merge.js +3 -3
  93. package/dist/lix/merge.js.map +1 -1
  94. package/dist/lix/merge.test.js +7 -18
  95. package/dist/lix/merge.test.js.map +1 -1
  96. package/dist/lix/new-lix.d.ts.map +1 -1
  97. package/dist/lix/new-lix.js +2 -3
  98. package/dist/lix/new-lix.js.map +1 -1
  99. package/dist/lix/open-lix-in-memory.test.js +2 -1
  100. package/dist/lix/open-lix-in-memory.test.js.map +1 -1
  101. package/dist/lix/open-lix.d.ts +3 -5
  102. package/dist/lix/open-lix.d.ts.map +1 -1
  103. package/dist/lix/open-lix.js +4 -18
  104. package/dist/lix/open-lix.js.map +1 -1
  105. package/dist/lix/open-lix.test.js +16 -7
  106. package/dist/lix/open-lix.test.js.map +1 -1
  107. package/dist/lix/to-blob.d.ts +11 -0
  108. package/dist/lix/to-blob.d.ts.map +1 -0
  109. package/dist/lix/to-blob.js +11 -0
  110. package/dist/lix/to-blob.js.map +1 -0
  111. package/dist/own-change-control/apply-own-change.d.ts +10 -0
  112. package/dist/own-change-control/apply-own-change.d.ts.map +1 -0
  113. package/dist/own-change-control/apply-own-change.js +69 -0
  114. package/dist/own-change-control/apply-own-change.js.map +1 -0
  115. package/dist/own-change-control/apply-own-change.test.d.ts +2 -0
  116. package/dist/own-change-control/apply-own-change.test.d.ts.map +1 -0
  117. package/dist/own-change-control/apply-own-change.test.js +297 -0
  118. package/dist/own-change-control/apply-own-change.test.js.map +1 -0
  119. package/dist/own-change-control/change-controlled-tables.d.ts +60 -0
  120. package/dist/own-change-control/change-controlled-tables.d.ts.map +1 -0
  121. package/dist/own-change-control/change-controlled-tables.js +70 -0
  122. package/dist/own-change-control/change-controlled-tables.js.map +1 -0
  123. package/dist/own-change-control/change-controlled-tables.test.d.ts +2 -0
  124. package/dist/own-change-control/change-controlled-tables.test.d.ts.map +1 -0
  125. package/dist/own-change-control/change-controlled-tables.test.js +48 -0
  126. package/dist/own-change-control/change-controlled-tables.test.js.map +1 -0
  127. package/dist/own-change-control/database-triggers.d.ts +5 -0
  128. package/dist/own-change-control/database-triggers.d.ts.map +1 -0
  129. package/dist/own-change-control/database-triggers.js +135 -0
  130. package/dist/own-change-control/database-triggers.js.map +1 -0
  131. package/dist/own-change-control/database-triggers.test.d.ts +2 -0
  132. package/dist/own-change-control/database-triggers.test.d.ts.map +1 -0
  133. package/dist/own-change-control/database-triggers.test.js +214 -0
  134. package/dist/own-change-control/database-triggers.test.js.map +1 -0
  135. package/dist/own-change-control/index.d.ts +2 -0
  136. package/dist/own-change-control/index.d.ts.map +1 -0
  137. package/dist/own-change-control/index.js +2 -0
  138. package/dist/own-change-control/index.js.map +1 -0
  139. package/dist/own-change-control/with-skip-own-change-control.d.ts +3 -0
  140. package/dist/own-change-control/with-skip-own-change-control.d.ts.map +1 -0
  141. package/dist/own-change-control/with-skip-own-change-control.js +28 -0
  142. package/dist/own-change-control/with-skip-own-change-control.js.map +1 -0
  143. package/dist/own-change-control/with-skip-own-change-control.test.d.ts +2 -0
  144. package/dist/own-change-control/with-skip-own-change-control.test.d.ts.map +1 -0
  145. package/dist/own-change-control/with-skip-own-change-control.test.js +49 -0
  146. package/dist/own-change-control/with-skip-own-change-control.test.js.map +1 -0
  147. package/dist/own-entity-change-control/apply-own-entity-change.js +2 -2
  148. package/dist/own-entity-change-control/apply-own-entity-change.js.map +1 -1
  149. package/dist/own-entity-change-control/apply-own-entity-change.test.js +9 -9
  150. package/dist/own-entity-change-control/apply-own-entity-change.test.js.map +1 -1
  151. package/dist/own-entity-change-control/database-triggers.js +6 -6
  152. package/dist/own-entity-change-control/database-triggers.js.map +1 -1
  153. package/dist/own-entity-change-control/database-triggers.test.js +1 -1
  154. package/dist/own-entity-change-control/database-triggers.test.js.map +1 -1
  155. package/dist/query-filter/version-change-in-difference.test.js +37 -29
  156. package/dist/query-filter/version-change-in-difference.test.js.map +1 -1
  157. package/dist/query-filter/version-change-in-symmetric-difference.test.js +37 -39
  158. package/dist/query-filter/version-change-in-symmetric-difference.test.js.map +1 -1
  159. package/dist/server-api-handler/environment/create-in-memory-environment.d.ts.map +1 -1
  160. package/dist/server-api-handler/environment/create-in-memory-environment.js +7 -3
  161. package/dist/server-api-handler/environment/create-in-memory-environment.js.map +1 -1
  162. package/dist/server-api-handler/environment/create-in-memory-environment.test.js +8 -7
  163. package/dist/server-api-handler/environment/create-in-memory-environment.test.js.map +1 -1
  164. package/dist/server-api-handler/routes/get-v1.d.ts.map +1 -1
  165. package/dist/server-api-handler/routes/get-v1.js +1 -2
  166. package/dist/server-api-handler/routes/get-v1.js.map +1 -1
  167. package/dist/server-api-handler/routes/get-v1.test.js +6 -5
  168. package/dist/server-api-handler/routes/get-v1.test.js.map +1 -1
  169. package/dist/server-api-handler/routes/new-v1.d.ts.map +1 -1
  170. package/dist/server-api-handler/routes/new-v1.js +3 -1
  171. package/dist/server-api-handler/routes/new-v1.js.map +1 -1
  172. package/dist/server-api-handler/routes/new-v1.test.js +2 -1
  173. package/dist/server-api-handler/routes/new-v1.test.js.map +1 -1
  174. package/dist/server-api-handler/routes/pull-v1.test.js +4 -3
  175. package/dist/server-api-handler/routes/pull-v1.test.js.map +1 -1
  176. package/dist/server-api-handler/routes/push-v1.test.js +5 -4
  177. package/dist/server-api-handler/routes/push-v1.test.js.map +1 -1
  178. package/dist/sync/pull-from-server.d.ts.map +1 -1
  179. package/dist/sync/pull-from-server.js +0 -2
  180. package/dist/sync/pull-from-server.js.map +1 -1
  181. package/dist/sync/pull-from-server.test.js +29 -14
  182. package/dist/sync/pull-from-server.test.js.map +1 -1
  183. package/dist/sync/push-to-server.test.js +17 -13
  184. package/dist/sync/push-to-server.test.js.map +1 -1
  185. package/dist/sync/sync-process.d.ts +2 -4
  186. package/dist/sync/sync-process.d.ts.map +1 -1
  187. package/dist/sync/sync-process.js +4 -9
  188. package/dist/sync/sync-process.js.map +1 -1
  189. package/dist/sync/sync-process.test.js +26 -38
  190. package/dist/sync/sync-process.test.js.map +1 -1
  191. package/dist/version/create-version.d.ts +5 -5
  192. package/dist/version/create-version.d.ts.map +1 -1
  193. package/dist/version/create-version.js +23 -11
  194. package/dist/version/create-version.js.map +1 -1
  195. package/dist/version/create-version.test.js +2 -2
  196. package/dist/version/create-version.test.js.map +1 -1
  197. package/dist/version/merge-version.d.ts.map +1 -1
  198. package/dist/version/merge-version.js +16 -26
  199. package/dist/version/merge-version.js.map +1 -1
  200. package/dist/version/switch-version.js +3 -3
  201. package/dist/version/switch-version.js.map +1 -1
  202. package/dist/version/switch-version.test.js +12 -15
  203. package/dist/version/switch-version.test.js.map +1 -1
  204. package/dist/version/update-changes-in-version.d.ts.map +1 -1
  205. package/dist/version/update-changes-in-version.js +11 -31
  206. package/dist/version/update-changes-in-version.js.map +1 -1
  207. package/node_modules/@lix-js/server-api-schema/CHANGELOG.md +9 -0
  208. package/node_modules/@lix-js/server-api-schema/LICENSE +21 -0
  209. package/node_modules/@lix-js/server-api-schema/dist/schema.js +0 -0
  210. package/node_modules/@lix-js/server-api-schema/package.json +2 -2
  211. package/node_modules/sqlite-wasm-kysely/LICENSE +21 -0
  212. package/package.json +4 -4
  213. package/src/change/apply-changes.test.ts +7 -7
  214. package/src/change/apply-changes.ts +9 -9
  215. package/src/database/apply-schema.ts +20 -73
  216. package/src/database/execute-sync.test.ts +3 -3
  217. package/src/database/init-db.test.ts +163 -19
  218. package/src/database/init-db.ts +20 -3
  219. package/src/database/kysely-plugin/parse-jsonb-plugin-v1.ts +9 -2
  220. package/src/database/mutation-log/database-schema.ts +1 -3
  221. package/src/database/nano-id.test.ts +15 -0
  222. package/src/database/nano-id.ts +72 -0
  223. package/src/database/schema.ts +15 -24
  224. package/src/discussion/create-comment.ts +0 -3
  225. package/src/discussion/create-discussion.test.ts +8 -39
  226. package/src/discussion/create-discussion.ts +6 -9
  227. package/src/{change-queue → file-queue}/file-handlers.ts +27 -27
  228. package/src/{change-queue/init-change-queue.test.ts → file-queue/file-queue-process.test.ts} +24 -24
  229. package/src/{change-queue/init-change-queue.ts → file-queue/file-queue-process.ts} +18 -16
  230. package/src/{change-queue/change-queue-settled.test.ts → file-queue/file-queue-settled.test.ts} +12 -12
  231. package/src/{change-queue/change-queue-settled.ts → file-queue/file-queue-settled.ts} +4 -4
  232. package/src/file-queue/index.ts +1 -0
  233. package/src/{change-queue/with-skip-change-queue.test.ts → file-queue/with-skip-file-queue.test.ts} +9 -9
  234. package/src/{change-queue/with-skip-change-queue.ts → file-queue/with-skip-file-queue.ts} +3 -3
  235. package/src/index.ts +2 -2
  236. package/src/key-value/database-schema.test.ts +26 -5
  237. package/src/key-value/database-schema.ts +18 -6
  238. package/src/lix/close-lix.ts +8 -0
  239. package/src/lix/index.ts +1 -0
  240. package/src/lix/merge.test.ts +7 -19
  241. package/src/lix/merge.ts +4 -4
  242. package/src/lix/new-lix.ts +2 -3
  243. package/src/lix/open-lix-in-memory.test.ts +5 -1
  244. package/src/lix/open-lix.test.ts +19 -7
  245. package/src/lix/open-lix.ts +7 -24
  246. package/src/lix/to-blob.ts +14 -0
  247. package/src/{own-entity-change-control/apply-own-entity-change.test.ts → own-change-control/apply-own-change.test.ts} +27 -31
  248. package/src/{own-entity-change-control/apply-own-entity-change.ts → own-change-control/apply-own-change.ts} +3 -3
  249. package/src/{own-entity-change-control → own-change-control}/change-controlled-tables.ts +0 -1
  250. package/src/{own-entity-change-control → own-change-control}/database-triggers.test.ts +7 -7
  251. package/src/{own-entity-change-control → own-change-control}/database-triggers.ts +11 -11
  252. package/src/{own-entity-change-control → own-change-control}/with-skip-own-change-control.ts +6 -2
  253. package/src/query-filter/version-change-in-difference.test.ts +41 -32
  254. package/src/query-filter/version-change-in-symmetric-difference.test.ts +41 -42
  255. package/src/server-api-handler/environment/create-in-memory-environment.test.ts +8 -7
  256. package/src/server-api-handler/environment/create-in-memory-environment.ts +7 -3
  257. package/src/server-api-handler/routes/get-v1.test.ts +6 -5
  258. package/src/server-api-handler/routes/get-v1.ts +1 -3
  259. package/src/server-api-handler/routes/new-v1.test.ts +2 -1
  260. package/src/server-api-handler/routes/new-v1.ts +3 -1
  261. package/src/server-api-handler/routes/pull-v1.test.ts +4 -3
  262. package/src/server-api-handler/routes/push-v1.test.ts +5 -4
  263. package/src/sync/pull-from-server.test.ts +29 -14
  264. package/src/sync/pull-from-server.ts +0 -2
  265. package/src/sync/push-to-server.test.ts +19 -15
  266. package/src/sync/sync-process.test.ts +37 -43
  267. package/src/sync/sync-process.ts +6 -18
  268. package/src/version/create-version.test.ts +2 -2
  269. package/src/version/create-version.ts +24 -12
  270. package/src/version/merge-version.ts +18 -26
  271. package/src/version/switch-version.test.ts +12 -15
  272. package/src/version/switch-version.ts +3 -3
  273. package/src/version/update-changes-in-version.ts +11 -30
  274. package/node_modules/@lix-js/server-api-schema/dist/schema.d.ts +0 -384
  275. package/src/change-queue/index.ts +0 -1
  276. /package/src/{own-entity-change-control → own-change-control}/change-controlled-tables.test.ts +0 -0
  277. /package/src/{own-entity-change-control → own-change-control}/index.ts +0 -0
  278. /package/src/{own-entity-change-control → own-change-control}/with-skip-own-change-control.test.ts +0 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Opral US Inc.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1,5 +1,5 @@
1
- import { withSkipChangeQueue } from "../change-queue/with-skip-change-queue.js";
2
- import { applyOwnEntityChanges } from "../own-entity-change-control/apply-own-entity-change.js";
1
+ import { withSkipFileQueue } from "../file-queue/with-skip-file-queue.js";
2
+ import { applyOwnChanges } from "../own-change-control/apply-own-change.js";
3
3
  /**
4
4
  * Applies the given changes to the lix.
5
5
  *
@@ -26,23 +26,23 @@ export async function applyChanges(args) {
26
26
  // Plugin changes depend on lix changes like the file
27
27
  // data for example. Therefore, the lix changes need
28
28
  // to be applied first.
29
- const lixOwnChanges = groupByFile["null"] ?? [];
30
- delete groupByFile["null"];
29
+ const lixOwnChanges = groupByFile["lix_own_change_control"] ?? [];
30
+ delete groupByFile["lix_own_change_control"];
31
31
  const plugins = await args.lix.plugin.getAll();
32
32
  // TODO make detection of which plugin to use easier
33
33
  // https://linear.app/opral/issue/LIXDK-104/add-detectedchangeschema
34
34
  for (const [fileId, changes] of [
35
35
  // applying lix own changes first
36
- ["null", lixOwnChanges],
36
+ ["lix_own_change_control", lixOwnChanges],
37
37
  ...Object.entries(groupByFile),
38
38
  ]) {
39
39
  if (changes === undefined || changes.length === 0) {
40
40
  continue;
41
41
  }
42
42
  // Skip own entity changes which have a file id 'null' and
43
- // plugin key 'lix_own_entity' as they are not associated with a file
44
- if (fileId === "null" && changes[0]?.plugin_key === "lix_own_entity") {
45
- await applyOwnEntityChanges({ lix: { ...args.lix, db: trx }, changes });
43
+ // plugin key 'lix_own_change_control' as they are not associated with a file
44
+ if (fileId === "lix_own_change_control") {
45
+ await applyOwnChanges({ lix: { ...args.lix, db: trx }, changes });
46
46
  continue;
47
47
  }
48
48
  const groupByPlugin = Object.groupBy(changes, (c) => c.plugin_key);
@@ -78,7 +78,7 @@ export async function applyChanges(args) {
78
78
  file,
79
79
  changes,
80
80
  });
81
- await withSkipChangeQueue(trx, async (trx) => {
81
+ await withSkipFileQueue(trx, async (trx) => {
82
82
  await trx
83
83
  .updateTable("file")
84
84
  .set({ data: fileData })
@@ -1 +1 @@
1
- {"version":3,"file":"apply-changes.js","sourceRoot":"","sources":["../../src/change/apply-changes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAGhF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yDAAyD,CAAC;AAEhG;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAGlC;IACA,MAAM,oBAAoB,GAAG,KAAK,EAAE,GAAc,EAAE,EAAE;QACrD,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CACjC,IAAI,CAAC,OAAO,EACZ,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAC1B,CAAC;QAEF,4CAA4C;QAC5C,EAAE;QACF,qDAAqD;QACrD,oDAAoD;QACpD,uBAAuB;QACvB,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAChD,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;QAE3B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAE/C,oDAAoD;QACpD,oEAAoE;QACpE,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;YAC/B,iCAAiC;YACjC,CAAC,MAAM,EAAE,aAAa,CAAuB;YAC7C,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;SAC9B,EAAE,CAAC;YACH,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnD,SAAS;YACV,CAAC;YACD,0DAA0D;YAC1D,qEAAqE;YACrE,IAAI,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,KAAK,gBAAgB,EAAE,CAAC;gBACtE,MAAM,qBAAqB,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;gBACxE,SAAS;YACV,CAAC;YAED,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAEnE,uDAAuD;YACvD,sCAAsC;YACtC,MAAM,IAAI,GAAG,MAAM,GAAG;iBACpB,UAAU,CAAC,MAAM,CAAC;iBAClB,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC;iBACxB,SAAS,EAAE;iBACX,gBAAgB,EAAE,CAAC;YAErB,0CAA0C;YAC1C,mCAAmC;YACnC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACxB,SAAS;YACV,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;gBACvC,gEAAgE;gBAChE,OAAO,IAAI,CAAC,IAAI,CAAC;YAClB,CAAC;YAED,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;gBAClE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC3B,SAAS;gBACV,CAAC;gBACD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC;gBAClE,IAAI,CAAC,MAAM,EAAE,CAAC;oBACb,MAAM,IAAI,KAAK,CAAC,mBAAmB,SAAS,YAAY,CAAC,CAAC;gBAC3D,CAAC;qBAAM,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;oBACjC,MAAM,IAAI,KAAK,CACd,mBAAmB,SAAS,oCAAoC,CAChE,CAAC;gBACH,CAAC;gBACD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;oBAC9C,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE;oBAC7B,IAAI;oBACJ,OAAO;iBACP,CAAC,CAAC;gBAEH,MAAM,mBAAmB,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;oBAC5C,MAAM,GAAG;yBACP,WAAW,CAAC,MAAM,CAAC;yBACnB,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;yBACvB,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC;yBACxB,OAAO,EAAE,CAAC;gBACb,CAAC,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;IACF,CAAC,CAAC;IAEF,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;QAC/B,OAAO,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC;SAAM,CAAC;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAChE,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"apply-changes.js","sourceRoot":"","sources":["../../src/change/apply-changes.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { expect, test, vi } from "vitest";
2
2
  import { openLixInMemory } from "../lix/open-lix-in-memory.js";
3
3
  import { applyChanges } from "./apply-changes.js";
4
4
  import { mockJsonSnapshot } from "../snapshot/mock-json-snapshot.js";
5
- import { changeQueueSettled } from "../change-queue/change-queue-settled.js";
5
+ import { fileQueueSettled } from "../file-queue/file-queue-settled.js";
6
6
  test("it applies the given changes", async () => {
7
7
  const lix = await openLixInMemory({});
8
8
  // Prepare mock plugin
@@ -125,8 +125,8 @@ test("it applies own entity changes", async () => {
125
125
  {
126
126
  id: "change0",
127
127
  entity_id: "mock-key",
128
- file_id: "null",
129
- plugin_key: "lix_own_entity",
128
+ file_id: "lix_own_change_control",
129
+ plugin_key: "lix_own_change_control",
130
130
  schema_key: "lix_key_value_table",
131
131
  snapshot_id: snapshot.id,
132
132
  created_at: "2021-01-01T00:00:00Z",
@@ -138,7 +138,7 @@ test("it applies own entity changes", async () => {
138
138
  .where("key", "=", "mock-key")
139
139
  .selectAll()
140
140
  .executeTakeFirst();
141
- expect(keyValue).toEqual({
141
+ expect(keyValue).toMatchObject({
142
142
  key: "mock-key",
143
143
  value: "1+1=2",
144
144
  });
@@ -186,7 +186,7 @@ test("applies an insert change for a file if the file does not exist", async ()
186
186
  })
187
187
  .returningAll()
188
188
  .executeTakeFirstOrThrow();
189
- await changeQueueSettled({ lix });
189
+ await fileQueueSettled({ lix });
190
190
  const changes1 = await lix.db
191
191
  .selectFrom("change")
192
192
  .orderBy("id desc")
@@ -1 +1 @@
1
- {"version":3,"file":"apply-changes.test.js","sourceRoot":"","sources":["../../src/change/apply-changes.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAErE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAE7E,IAAI,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;IAC/C,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,EAAE,CAAC,CAAC;IAEtC,sBAAsB;IACtB,MAAM,UAAU,GAAc;QAC7B,GAAG,EAAE,SAAS;QACd,YAAY,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;YACzC,OAAO;gBACN,QAAQ,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,gBAAgB,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC;aACpE,CAAC;QACH,CAAC,CAAC;KACF,CAAC;IAEF,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,iBAAiB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IAE/D,wDAAwD;IACxD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,EAAE;SACvB,UAAU,CAAC,MAAM,CAAC;SAClB,MAAM,CAAC;QACP,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC;QAC9C,IAAI,EAAE,YAAY;KAClB,CAAC;SACD,YAAY,EAAE;SACd,uBAAuB,EAAE,CAAC;IAE5B,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,EAAE;SAC1B,UAAU,CAAC,QAAQ,CAAC;SACpB,MAAM,CAAC;QACP;YACC,EAAE,EAAE,SAAS;YACb,OAAO,EAAE,IAAI,CAAC,EAAE;YAChB,UAAU,EAAE,UAAU,CAAC,GAAG;YAC1B,WAAW,EAAE,YAAY;YACzB,SAAS,EAAE,QAAQ;YACnB,UAAU,EAAE,MAAM;SAClB;KACD,CAAC;SACD,YAAY,EAAE;SACd,OAAO,EAAE,CAAC;IAEZ,MAAM,YAAY,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;IAErC,+BAA+B;IAC/B,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,EAAE;SAC9B,UAAU,CAAC,MAAM,CAAC;SAClB,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC;SACzB,SAAS,EAAE;SACX,uBAAuB,EAAE,CAAC;IAE5B,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CACtD,sBAAsB,CACtB,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;IACxE,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,EAAE,CAAC,CAAC;IAEtC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,EAAE;SACvB,UAAU,CAAC,MAAM,CAAC;SAClB,MAAM,CAAC;QACP,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC;QAC9C,IAAI,EAAE,YAAY;KAClB,CAAC;SACD,YAAY,EAAE;SACd,uBAAuB,EAAE,CAAC;IAE5B,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,EAAE;SAC1B,UAAU,CAAC,QAAQ,CAAC;SACpB,MAAM,CAAC;QACP;YACC,EAAE,EAAE,SAAS;YACb,OAAO,EAAE,IAAI,CAAC,EAAE;YAChB,UAAU,EAAE,cAAc;YAC1B,WAAW,EAAE,YAAY;YACzB,SAAS,EAAE,QAAQ;YACnB,UAAU,EAAE,MAAM;SAClB;KACD,CAAC;SACD,YAAY,EAAE;SACd,OAAO,EAAE,CAAC;IAEZ,oDAAoD;IACpD,MAAM,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACrD,wCAAwC,CACxC,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;IAC3F,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,EAAE,CAAC,CAAC;IAEtC,2CAA2C;IAC3C,MAAM,UAAU,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;IAEtC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,iBAAiB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IAE/D,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,EAAE;SACvB,UAAU,CAAC,MAAM,CAAC;SAClB,MAAM,CAAC;QACP,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC;QAC9C,IAAI,EAAE,YAAY;KAClB,CAAC;SACD,YAAY,EAAE;SACd,uBAAuB,EAAE,CAAC;IAE5B,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,EAAE;SAC1B,UAAU,CAAC,QAAQ,CAAC;SACpB,MAAM,CAAC;QACP;YACC,EAAE,EAAE,SAAS;YACb,OAAO,EAAE,IAAI,CAAC,EAAE;YAChB,UAAU,EAAE,UAAU,CAAC,GAAG;YAC1B,WAAW,EAAE,YAAY;YACzB,SAAS,EAAE,QAAQ;YACnB,UAAU,EAAE,MAAM;SAClB;KACD,CAAC;SACD,YAAY,EAAE;SACd,OAAO,EAAE,CAAC;IAEZ,8DAA8D;IAC9D,MAAM,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACrD,2DAA2D,CAC3D,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;IAChD,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,EAAE,CAAC,CAAC;IAEtC,MAAM,QAAQ,GAAG,gBAAgB,CAAC;QACjC,GAAG,EAAE,UAAU;QACf,KAAK,EAAE,OAAO;KACK,CAAC,CAAC;IAEtB,MAAM,GAAG,CAAC,EAAE;SACV,UAAU,CAAC,UAAU,CAAC;SACtB,MAAM,CAAC;QACP,OAAO,EAAE,QAAQ,CAAC,OAAO;KACzB,CAAC;SACD,OAAO,EAAE,CAAC;IAEZ,MAAM,YAAY,CAAC;QAClB,GAAG;QACH,OAAO,EAAE;YACR;gBACC,EAAE,EAAE,SAAS;gBACb,SAAS,EAAE,UAAU;gBACrB,OAAO,EAAE,MAAM;gBACf,UAAU,EAAE,gBAAgB;gBAC5B,UAAU,EAAE,qBAAqB;gBACjC,WAAW,EAAE,QAAQ,CAAC,EAAE;gBACxB,UAAU,EAAE,sBAAsB;aAClC;SACD;KACD,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,EAAE;SAC3B,UAAU,CAAC,WAAW,CAAC;SACvB,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,UAAU,CAAC;SAC7B,SAAS,EAAE;SACX,gBAAgB,EAAE,CAAC;IAErB,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;QACxB,GAAG,EAAE,UAAU;QACf,KAAK,EAAE,OAAO;KACd,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;IACjF,MAAM,aAAa,GAAc;QAChC,GAAG,EAAE,iBAAiB;QACtB,iBAAiB,EAAE,OAAO;QAC1B,aAAa,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;YAClC,OAAO;gBACN;oBACC,SAAS,EAAE,UAAU;oBACrB,QAAQ,EAAE,KAAK;wBACd,CAAC,CAAC;4BACA,IAAI,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC;yBAC3C;wBACF,CAAC,CAAC,IAAI;oBACP,MAAM,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,GAAG,EAAE,KAAK;qBACV;iBACD;aACD,CAAC;QACH,CAAC;QAED,YAAY,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE;YACxC,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,EAAE;iBAC3B,UAAU,CAAC,UAAU,CAAC;iBACtB,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,WAAW,CAAC;iBAC7C,SAAS,EAAE;iBACX,uBAAuB,EAAE,CAAC;YAE5B,OAAO;gBACN,QAAQ,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAQ,CAAC,IAAI,CAAC;aAC1D,CAAC;QACH,CAAC;KACD,CAAC;IAEF,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC;QACjC,cAAc,EAAE,CAAC,aAAa,CAAC;KAC/B,CAAC,CAAC;IAEH,mBAAmB;IACnB,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,EAAE;SACxB,UAAU,CAAC,MAAM,CAAC;SAClB,MAAM,CAAC;QACP,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;KACvC,CAAC;SACD,YAAY,EAAE;SACd,uBAAuB,EAAE,CAAC;IAE5B,MAAM,kBAAkB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAElC,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,EAAE;SAC3B,UAAU,CAAC,QAAQ,CAAC;SACpB,OAAO,CAAC,SAAS,CAAC;SAClB,SAAS,EAAE;SACX,OAAO,EAAE,CAAC;IAEZ,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC;IAE7E,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC;QAClC,cAAc,EAAE,CAAC,aAAa,CAAC;KAC/B,CAAC,CAAC;IAEH,yDAAyD;IACzD,MAAM,IAAI,CAAC,EAAE;SACX,UAAU,CAAC,UAAU,CAAC;SACtB,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;SACvD,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC;SAClC,OAAO,EAAE,CAAC;IAEZ,uEAAuE;IACvE,8DAA8D;IAC9D,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;IAE9D,MAAM,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IAErD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,EAAE;SAC5B,UAAU,CAAC,QAAQ,CAAC;SACpB,OAAO,CAAC,SAAS,CAAC;SAClB,SAAS,EAAE;SACX,OAAO,EAAE,CAAC;IAEZ,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE;SACzB,UAAU,CAAC,MAAM,CAAC;SAClB,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,WAAW,CAAC;SAC/B,SAAS,EAAE;SACX,uBAAuB,EAAE,CAAC;IAE5B,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"apply-changes.test.js","sourceRoot":"","sources":["../../src/change/apply-changes.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"apply-schema.d.ts","sourceRoot":"","sources":["../../src/database/apply-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAKzD;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,cAAc,CAAA;CAAE,GAAG,cAAc,CA0T5E"}
1
+ {"version":3,"file":"apply-schema.d.ts","sourceRoot":"","sources":["../../src/database/apply-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAKzD;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,cAAc,CAAA;CAAE,GAAG,cAAc,CAqQ5E"}
@@ -16,7 +16,7 @@ export function applySchema(args) {
16
16
  -- file
17
17
 
18
18
  CREATE TABLE IF NOT EXISTS file (
19
- id TEXT PRIMARY KEY DEFAULT (uuid_v7()),
19
+ id TEXT PRIMARY KEY DEFAULT (nano_id(10)),
20
20
  path TEXT NOT NULL UNIQUE,
21
21
  data BLOB NOT NULL,
22
22
  metadata BLOB,
@@ -25,7 +25,7 @@ export function applySchema(args) {
25
25
  CHECK (is_valid_file_path(path))
26
26
  ) STRICT;
27
27
 
28
- CREATE TABLE IF NOT EXISTS change_queue (
28
+ CREATE TABLE IF NOT EXISTS file_queue (
29
29
  id INTEGER PRIMARY KEY AUTOINCREMENT,
30
30
  file_id TEXT NOT NULL,
31
31
  data_before BLOB,
@@ -38,18 +38,18 @@ export function applySchema(args) {
38
38
 
39
39
  CREATE TRIGGER IF NOT EXISTS file_insert BEFORE INSERT ON file
40
40
  BEGIN
41
- INSERT INTO change_queue(
41
+ INSERT INTO file_queue(
42
42
  file_id, path_after, data_after, metadata_after
43
43
  )
44
44
  VALUES (
45
45
  NEW.id, NEW.path, NEW.data, NEW.metadata
46
46
  );
47
- SELECT triggerChangeQueue();
47
+ SELECT triggerFileQueue();
48
48
  END;
49
49
 
50
50
  CREATE TRIGGER IF NOT EXISTS file_update BEFORE UPDATE ON file
51
51
  BEGIN
52
- INSERT INTO change_queue(
52
+ INSERT INTO file_queue(
53
53
  file_id,
54
54
  path_before, data_before, metadata_before,
55
55
  path_after, data_after, metadata_after
@@ -61,14 +61,14 @@ export function applySchema(args) {
61
61
  NEW.path, NEW.data, NEW.metadata
62
62
  );
63
63
 
64
- SELECT triggerChangeQueue();
64
+ SELECT triggerFileQueue();
65
65
  END;
66
66
 
67
67
  CREATE TRIGGER IF NOT EXISTS file_delete BEFORE DELETE ON file
68
68
  BEGIN
69
- INSERT INTO change_queue(file_id)
69
+ INSERT INTO file_queue(file_id)
70
70
  VALUES (OLD.id);
71
- SELECT triggerChangeQueue();
71
+ SELECT triggerFileQueue();
72
72
  END;
73
73
 
74
74
  CREATE TABLE IF NOT EXISTS change (
@@ -141,7 +141,7 @@ export function applySchema(args) {
141
141
  -- change sets
142
142
 
143
143
  CREATE TABLE IF NOT EXISTS change_set (
144
- id TEXT PRIMARY KEY DEFAULT (uuid_v7())
144
+ id TEXT PRIMARY KEY DEFAULT (nano_id(16))
145
145
  ) STRICT;
146
146
 
147
147
  CREATE TABLE IF NOT EXISTS change_set_element (
@@ -162,34 +162,21 @@ export function applySchema(args) {
162
162
  FOREIGN KEY(change_set_id) REFERENCES change_set(id)
163
163
  ) STRICT;
164
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
165
  -- discussions
176
166
 
177
167
  CREATE TABLE IF NOT EXISTS discussion (
178
- id TEXT PRIMARY KEY DEFAULT (uuid_v7()),
168
+ id TEXT PRIMARY KEY DEFAULT (nano_id(12)),
179
169
  change_set_id TEXT NOT NULL,
180
170
 
181
171
  FOREIGN KEY(change_set_id) REFERENCES change_set(id)
182
172
  ) STRICT;
183
173
 
184
174
  CREATE TABLE IF NOT EXISTS comment (
185
- id TEXT PRIMARY KEY DEFAULT (uuid_v7()),
175
+ id TEXT PRIMARY KEY DEFAULT (nano_id(14)),
186
176
  parent_id TEXT,
187
177
  discussion_id TEXT NULL,
188
- created_at TEXT DEFAULT CURRENT_TIMESTAMP NOT NULL,
189
178
  content TEXT NOT NULL,
190
- created_by TEXT NOT NULL,
191
179
 
192
- FOREIGN KEY(created_by) REFERENCES account(id),
193
180
  FOREIGN KEY(discussion_id) REFERENCES discussion(id),
194
181
  FOREIGN KEY(parent_id) REFERENCES comment(id)
195
182
  ) STRICT;
@@ -197,7 +184,7 @@ export function applySchema(args) {
197
184
  -- labels
198
185
 
199
186
  CREATE TABLE IF NOT EXISTS label (
200
- id TEXT PRIMARY KEY DEFAULT (uuid_v7()),
187
+ id TEXT PRIMARY KEY DEFAULT (nano_id(8)),
201
188
 
202
189
  name TEXT NOT NULL UNIQUE -- e.g., 'confirmed', 'reviewed'
203
190
 
@@ -211,23 +198,22 @@ export function applySchema(args) {
211
198
  CREATE TABLE IF NOT EXISTS version (
212
199
  id TEXT PRIMARY KEY DEFAULT (uuid_v7()),
213
200
 
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
201
+ name TEXT NOT NULL UNIQUE DEFAULT (human_id())
222
202
  ) STRICT;
223
203
 
224
204
  CREATE TABLE IF NOT EXISTS version_change (
225
205
  version_id TEXT NOT NULL,
226
206
  change_id TEXT NOT NULL,
227
207
 
208
+ entity_id TEXT NOT NULL,
209
+ schema_key TEXT NOT NULL,
210
+ file_id TEXT NOT NULL,
211
+
228
212
  PRIMARY KEY (version_id, change_id),
229
213
  FOREIGN KEY (version_id) REFERENCES version(id) ON DELETE CASCADE,
230
- FOREIGN KEY (change_id) REFERENCES change(id) ON DELETE CASCADE
214
+ FOREIGN KEY (change_id, entity_id, schema_key, file_id) REFERENCES change(id, entity_id, schema_key, file_id) ON DELETE CASCADE,
215
+
216
+ UNIQUE (version_id, entity_id, schema_key, file_id)
231
217
  ) STRICT;
232
218
 
233
219
  CREATE TABLE IF NOT EXISTS version_change_conflict (
@@ -273,45 +259,7 @@ export function applySchema(args) {
273
259
  WHERE id = NEW.account_id;
274
260
  END;
275
261
 
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
262
  `;
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
263
  applyMutationLogDatabaseSchema(args.sqlite);
316
264
  return args.sqlite;
317
265
  }
@@ -1 +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"}
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2Pd,CAAC;IAEH,8BAA8B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE5C,OAAO,IAAI,CAAC,MAAM,CAAC;AACpB,CAAC"}
@@ -19,7 +19,7 @@ test("handles joins", async () => {
19
19
  const mockFile0 = {
20
20
  id: "file-0",
21
21
  path: "/file-0",
22
- data: new ArrayBuffer(0),
22
+ data: new Uint8Array(),
23
23
  metadata: {},
24
24
  };
25
25
  const mockChange0 = mockChange({ id: "change-0", file_id: "file-0" });
@@ -41,7 +41,7 @@ test("does not transform the query or results (json parsing)", async () => {
41
41
  const mockFile0 = {
42
42
  id: "file-0",
43
43
  path: "/file-0",
44
- data: new ArrayBuffer(0),
44
+ data: new Uint8Array(),
45
45
  metadata: {
46
46
  foo: "bar",
47
47
  },
@@ -74,7 +74,7 @@ test("using executeSync with a 'fake async' function should work", async () => {
74
74
  return executeSync({ lix, query });
75
75
  }
76
76
  const result = await fakeAyncQuery(lix);
77
- expect(result).toEqual([{ key: "foo", value: "bar" }]);
77
+ expect(result).toMatchObject([{ key: "foo", value: "bar" }]);
78
78
  });
79
79
  test("it works with kysely transactions", async () => {
80
80
  const lix = await openLixInMemory({});
@@ -1 +1 @@
1
- {"version":3,"file":"execute-sync.test.js","sourceRoot":"","sources":["../../src/database/execute-sync.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execute-sync.test.js","sourceRoot":"","sources":["../../src/database/execute-sync.test.ts"],"names":[],"mappings":"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"}
@@ -1 +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"}
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;AAWrD,wBAAgB,MAAM,CAAC,IAAI,EAAE;IAC5B,MAAM,EAAE,cAAc,CAAC;CACvB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAsB5B"}
@@ -7,7 +7,9 @@ import { jsonSha256 } from "../snapshot/json-sha-256.js";
7
7
  import { ParseJsonBPluginV1 } from "./kysely-plugin/parse-jsonb-plugin-v1.js";
8
8
  import { SerializeJsonBPlugin } from "./kysely-plugin/serialize-jsonb-plugin.js";
9
9
  import { createSession } from "./mutation-log/lix-session.js";
10
- import { applyOwnEntityChangeControlTriggers } from "../own-entity-change-control/database-triggers.js";
10
+ import { applyOwnChangeControlTriggers } from "../own-change-control/database-triggers.js";
11
+ import { humanId } from "human-id";
12
+ import { nanoid } from "./nano-id.js";
11
13
  export function initDb(args) {
12
14
  initFunctions({ sqlite: args.sqlite });
13
15
  applySchema({ sqlite: args.sqlite });
@@ -19,7 +21,7 @@ export function initDb(args) {
19
21
  ParseJsonBPluginV1({
20
22
  // jsonb columns
21
23
  file: ["metadata"],
22
- change_queue: ["metadata_before", "metadata_after"],
24
+ file_queue: ["metadata_before", "metadata_after"],
23
25
  snapshot: ["content"],
24
26
  mutation_log: ["row_id"],
25
27
  }),
@@ -27,7 +29,7 @@ export function initDb(args) {
27
29
  ],
28
30
  });
29
31
  // need to apply it here because db object needs to be available
30
- applyOwnEntityChangeControlTriggers(args.sqlite, db);
32
+ applyOwnChangeControlTriggers(args.sqlite, db);
31
33
  return db;
32
34
  }
33
35
  function initFunctions(args) {
@@ -76,5 +78,18 @@ function initFunctions(args) {
76
78
  arity: 0,
77
79
  xFunc: () => lixSession.sessionClockTick(),
78
80
  });
81
+ args.sqlite.createFunction({
82
+ name: "human_id",
83
+ arity: 0,
84
+ xFunc: () => humanId({ separator: "-", capitalize: false }),
85
+ });
86
+ args.sqlite.createFunction({
87
+ name: "nano_id",
88
+ arity: 1,
89
+ // @ts-expect-error - not sure why this is not working
90
+ xFunc: (_ctx, length) => {
91
+ return nanoid(length);
92
+ },
93
+ });
79
94
  }
80
95
  //# sourceMappingURL=init-db.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init-db.js","sourceRoot":"","sources":["../../src/database/init-db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init-db.js","sourceRoot":"","sources":["../../src/database/init-db.ts"],"names":[],"mappings":"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"}