@inlang/sdk 2.0.0-prerelease.0 → 2.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 (1031) hide show
  1. package/LICENSE +21 -201
  2. package/dist/index.d.ts +0 -2
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +2 -4
  5. package/dist/index.js.map +1 -1
  6. package/dist/json-schema/settings.d.ts +8 -10
  7. package/dist/json-schema/settings.d.ts.map +1 -1
  8. package/dist/json-schema/settings.js +4 -27
  9. package/dist/json-schema/settings.js.map +1 -1
  10. package/dist/json-schema/settings.test.d.ts +2 -0
  11. package/dist/json-schema/settings.test.d.ts.map +1 -0
  12. package/dist/json-schema/settings.test.js +26 -0
  13. package/dist/json-schema/settings.test.js.map +1 -0
  14. package/dist/lix/index.d.ts +2 -0
  15. package/dist/lix/index.d.ts.map +1 -0
  16. package/dist/lix/index.js +5 -0
  17. package/dist/lix/index.js.map +1 -0
  18. package/dist/plugin/importPlugins.test.js +2 -3
  19. package/dist/plugin/importPlugins.test.js.map +1 -1
  20. package/dist/project/api.d.ts +0 -4
  21. package/dist/project/api.d.ts.map +1 -1
  22. package/dist/project/api.js +2 -2
  23. package/dist/project/api.js.map +1 -1
  24. package/dist/project/initHandleSaveToLixOnChange.d.ts.map +1 -1
  25. package/dist/project/initHandleSaveToLixOnChange.js +16 -10
  26. package/dist/project/initHandleSaveToLixOnChange.js.map +1 -1
  27. package/dist/project/loadProject.d.ts +11 -1
  28. package/dist/project/loadProject.d.ts.map +1 -1
  29. package/dist/project/loadProject.js +79 -16
  30. package/dist/project/loadProject.js.map +1 -1
  31. package/dist/project/loadProject.test.js +45 -22
  32. package/dist/project/loadProject.test.js.map +1 -1
  33. package/dist/project/loadProjectFromDirectory.d.ts +2 -11
  34. package/dist/project/loadProjectFromDirectory.d.ts.map +1 -1
  35. package/dist/project/loadProjectFromDirectory.js +68 -89
  36. package/dist/project/loadProjectFromDirectory.js.map +1 -1
  37. package/dist/project/loadProjectFromDirectory.test.js +89 -12
  38. package/dist/project/loadProjectFromDirectory.test.js.map +1 -1
  39. package/dist/project/loadProjectInMemory.d.ts.map +1 -1
  40. package/dist/project/loadProjectInMemory.js +3 -2
  41. package/dist/project/loadProjectInMemory.js.map +1 -1
  42. package/dist/project/maybeCaptureTelemetry.d.ts +8 -2
  43. package/dist/project/maybeCaptureTelemetry.d.ts.map +1 -1
  44. package/dist/project/maybeCaptureTelemetry.js +49 -37
  45. package/dist/project/maybeCaptureTelemetry.js.map +1 -1
  46. package/dist/project/maybeCaptureTelemetry.test.js +14 -3
  47. package/dist/project/maybeCaptureTelemetry.test.js.map +1 -1
  48. package/dist/project/newProject.d.ts.map +1 -1
  49. package/dist/project/newProject.js +6 -5
  50. package/dist/project/newProject.js.map +1 -1
  51. package/dist/project/saveProjectToDirectory.test.js +3 -3
  52. package/dist/project/saveProjectToDirectory.test.js.map +1 -1
  53. package/dist/query-utilities/index.d.ts +0 -1
  54. package/dist/query-utilities/index.d.ts.map +1 -1
  55. package/dist/query-utilities/index.js +2 -3
  56. package/dist/query-utilities/index.js.map +1 -1
  57. package/dist/services/env-variables/index.js +3 -3
  58. package/dist/services/env-variables/index.js.map +1 -1
  59. package/dist/services/telemetry/capture.d.ts +1 -0
  60. package/dist/services/telemetry/capture.d.ts.map +1 -1
  61. package/dist/services/telemetry/capture.js +5 -6
  62. package/dist/services/telemetry/capture.js.map +1 -1
  63. package/dist/services/telemetry/capture.test.js +4 -2
  64. package/dist/services/telemetry/capture.test.js.map +1 -1
  65. package/package.json +4 -10
  66. package/src/index.ts +0 -2
  67. package/src/json-schema/settings.test.ts +26 -0
  68. package/src/json-schema/settings.ts +3 -36
  69. package/src/lix/index.ts +1 -0
  70. package/src/plugin/importPlugins.test.ts +0 -1
  71. package/src/project/api.ts +0 -4
  72. package/src/project/initHandleSaveToLixOnChange.ts +13 -8
  73. package/src/project/loadProject.test.ts +51 -23
  74. package/src/project/loadProject.ts +108 -15
  75. package/src/project/loadProjectFromDirectory.test.ts +113 -10
  76. package/src/project/loadProjectFromDirectory.ts +79 -143
  77. package/src/project/loadProjectInMemory.ts +1 -0
  78. package/src/project/maybeCaptureTelemetry.test.ts +16 -2
  79. package/src/project/maybeCaptureTelemetry.ts +55 -37
  80. package/src/project/newProject.ts +4 -3
  81. package/src/project/saveProjectToDirectory.test.ts +1 -1
  82. package/src/query-utilities/index.ts +0 -1
  83. package/src/services/telemetry/capture.test.ts +2 -0
  84. package/src/services/telemetry/capture.ts +5 -4
  85. package/dist/project/state/id$.d.ts +0 -6
  86. package/dist/project/state/id$.d.ts.map +0 -1
  87. package/dist/project/state/id$.js +0 -19
  88. package/dist/project/state/id$.js.map +0 -1
  89. package/dist/project/state/id$.test.d.ts +0 -2
  90. package/dist/project/state/id$.test.d.ts.map +0 -1
  91. package/dist/project/state/id$.test.js +0 -36
  92. package/dist/project/state/id$.test.js.map +0 -1
  93. package/dist/project/state/setSettings.d.ts +0 -7
  94. package/dist/project/state/setSettings.d.ts.map +0 -1
  95. package/dist/project/state/setSettings.js +0 -16
  96. package/dist/project/state/setSettings.js.map +0 -1
  97. package/dist/project/state/setSettings.test.d.ts +0 -2
  98. package/dist/project/state/setSettings.test.d.ts.map +0 -1
  99. package/dist/project/state/setSettings.test.js +0 -58
  100. package/dist/project/state/setSettings.test.js.map +0 -1
  101. package/dist/project/state/settings$.d.ts +0 -7
  102. package/dist/project/state/settings$.d.ts.map +0 -1
  103. package/dist/project/state/settings$.js +0 -21
  104. package/dist/project/state/settings$.js.map +0 -1
  105. package/dist/project/state/settings$.test.d.ts +0 -2
  106. package/dist/project/state/settings$.test.d.ts.map +0 -1
  107. package/dist/project/state/settings$.test.js +0 -51
  108. package/dist/project/state/settings$.test.js.map +0 -1
  109. package/dist/project/state/state.d.ts +0 -58
  110. package/dist/project/state/state.d.ts.map +0 -1
  111. package/dist/project/state/state.js +0 -67
  112. package/dist/project/state/state.js.map +0 -1
  113. package/dist/project/state/state.test.d.ts +0 -2
  114. package/dist/project/state/state.test.d.ts.map +0 -1
  115. package/dist/project/state/state.test.js +0 -103
  116. package/dist/project/state/state.test.js.map +0 -1
  117. package/dist/query-utilities/pollQuery.d.ts +0 -14
  118. package/dist/query-utilities/pollQuery.d.ts.map +0 -1
  119. package/dist/query-utilities/pollQuery.js +0 -22
  120. package/dist/query-utilities/pollQuery.js.map +0 -1
  121. package/dist/query-utilities/pollQuery.test.d.ts +0 -2
  122. package/dist/query-utilities/pollQuery.test.d.ts.map +0 -1
  123. package/dist/query-utilities/pollQuery.test.js +0 -67
  124. package/dist/query-utilities/pollQuery.test.js.map +0 -1
  125. package/node_modules/@lix-js/sdk/LICENSE +0 -21
  126. package/node_modules/@lix-js/sdk/README.md +0 -68
  127. package/node_modules/@lix-js/sdk/dist/account/create-account.d.ts +0 -7
  128. package/node_modules/@lix-js/sdk/dist/account/create-account.d.ts.map +0 -1
  129. package/node_modules/@lix-js/sdk/dist/account/create-account.js +0 -20
  130. package/node_modules/@lix-js/sdk/dist/account/create-account.js.map +0 -1
  131. package/node_modules/@lix-js/sdk/dist/account/create-account.test.d.ts +0 -2
  132. package/node_modules/@lix-js/sdk/dist/account/create-account.test.d.ts.map +0 -1
  133. package/node_modules/@lix-js/sdk/dist/account/create-account.test.js +0 -22
  134. package/node_modules/@lix-js/sdk/dist/account/create-account.test.js.map +0 -1
  135. package/node_modules/@lix-js/sdk/dist/account/database-schema.d.ts +0 -18
  136. package/node_modules/@lix-js/sdk/dist/account/database-schema.d.ts.map +0 -1
  137. package/node_modules/@lix-js/sdk/dist/account/database-schema.js +0 -36
  138. package/node_modules/@lix-js/sdk/dist/account/database-schema.js.map +0 -1
  139. package/node_modules/@lix-js/sdk/dist/account/database-schema.test.d.ts +0 -2
  140. package/node_modules/@lix-js/sdk/dist/account/database-schema.test.d.ts.map +0 -1
  141. package/node_modules/@lix-js/sdk/dist/account/database-schema.test.js +0 -139
  142. package/node_modules/@lix-js/sdk/dist/account/database-schema.test.js.map +0 -1
  143. package/node_modules/@lix-js/sdk/dist/account/index.d.ts +0 -4
  144. package/node_modules/@lix-js/sdk/dist/account/index.d.ts.map +0 -1
  145. package/node_modules/@lix-js/sdk/dist/account/index.js +0 -4
  146. package/node_modules/@lix-js/sdk/dist/account/index.js.map +0 -1
  147. package/node_modules/@lix-js/sdk/dist/account/switch-account.d.ts +0 -26
  148. package/node_modules/@lix-js/sdk/dist/account/switch-account.d.ts.map +0 -1
  149. package/node_modules/@lix-js/sdk/dist/account/switch-account.js +0 -34
  150. package/node_modules/@lix-js/sdk/dist/account/switch-account.js.map +0 -1
  151. package/node_modules/@lix-js/sdk/dist/account/switch-account.test.d.ts +0 -2
  152. package/node_modules/@lix-js/sdk/dist/account/switch-account.test.d.ts.map +0 -1
  153. package/node_modules/@lix-js/sdk/dist/account/switch-account.test.js +0 -48
  154. package/node_modules/@lix-js/sdk/dist/account/switch-account.test.js.map +0 -1
  155. package/node_modules/@lix-js/sdk/dist/change/apply-changes.d.ts +0 -25
  156. package/node_modules/@lix-js/sdk/dist/change/apply-changes.d.ts.map +0 -1
  157. package/node_modules/@lix-js/sdk/dist/change/apply-changes.js +0 -98
  158. package/node_modules/@lix-js/sdk/dist/change/apply-changes.js.map +0 -1
  159. package/node_modules/@lix-js/sdk/dist/change/apply-changes.test.d.ts +0 -2
  160. package/node_modules/@lix-js/sdk/dist/change/apply-changes.test.d.ts.map +0 -1
  161. package/node_modules/@lix-js/sdk/dist/change/apply-changes.test.js +0 -222
  162. package/node_modules/@lix-js/sdk/dist/change/apply-changes.test.js.map +0 -1
  163. package/node_modules/@lix-js/sdk/dist/change/create-change.d.ts +0 -27
  164. package/node_modules/@lix-js/sdk/dist/change/create-change.d.ts.map +0 -1
  165. package/node_modules/@lix-js/sdk/dist/change/create-change.js +0 -97
  166. package/node_modules/@lix-js/sdk/dist/change/create-change.js.map +0 -1
  167. package/node_modules/@lix-js/sdk/dist/change/create-change.test.d.ts +0 -2
  168. package/node_modules/@lix-js/sdk/dist/change/create-change.test.d.ts.map +0 -1
  169. package/node_modules/@lix-js/sdk/dist/change/create-change.test.js +0 -235
  170. package/node_modules/@lix-js/sdk/dist/change/create-change.test.js.map +0 -1
  171. package/node_modules/@lix-js/sdk/dist/change/index.d.ts +0 -3
  172. package/node_modules/@lix-js/sdk/dist/change/index.d.ts.map +0 -1
  173. package/node_modules/@lix-js/sdk/dist/change/index.js +0 -3
  174. package/node_modules/@lix-js/sdk/dist/change/index.js.map +0 -1
  175. package/node_modules/@lix-js/sdk/dist/change/mock-change.d.ts +0 -10
  176. package/node_modules/@lix-js/sdk/dist/change/mock-change.d.ts.map +0 -1
  177. package/node_modules/@lix-js/sdk/dist/change/mock-change.js +0 -20
  178. package/node_modules/@lix-js/sdk/dist/change/mock-change.js.map +0 -1
  179. package/node_modules/@lix-js/sdk/dist/change-conflict/create-change-conflict.d.ts +0 -15
  180. package/node_modules/@lix-js/sdk/dist/change-conflict/create-change-conflict.d.ts.map +0 -1
  181. package/node_modules/@lix-js/sdk/dist/change-conflict/create-change-conflict.js +0 -67
  182. package/node_modules/@lix-js/sdk/dist/change-conflict/create-change-conflict.js.map +0 -1
  183. package/node_modules/@lix-js/sdk/dist/change-conflict/create-change-conflict.test.d.ts +0 -2
  184. package/node_modules/@lix-js/sdk/dist/change-conflict/create-change-conflict.test.d.ts.map +0 -1
  185. package/node_modules/@lix-js/sdk/dist/change-conflict/create-change-conflict.test.js +0 -145
  186. package/node_modules/@lix-js/sdk/dist/change-conflict/create-change-conflict.test.js.map +0 -1
  187. package/node_modules/@lix-js/sdk/dist/change-conflict/detect-change-conflicts.d.ts +0 -23
  188. package/node_modules/@lix-js/sdk/dist/change-conflict/detect-change-conflicts.d.ts.map +0 -1
  189. package/node_modules/@lix-js/sdk/dist/change-conflict/detect-change-conflicts.js +0 -50
  190. package/node_modules/@lix-js/sdk/dist/change-conflict/detect-change-conflicts.js.map +0 -1
  191. package/node_modules/@lix-js/sdk/dist/change-conflict/detect-change-conflicts.test.d.ts +0 -2
  192. package/node_modules/@lix-js/sdk/dist/change-conflict/detect-change-conflicts.test.d.ts.map +0 -1
  193. package/node_modules/@lix-js/sdk/dist/change-conflict/detect-change-conflicts.test.js +0 -182
  194. package/node_modules/@lix-js/sdk/dist/change-conflict/detect-change-conflicts.test.js.map +0 -1
  195. package/node_modules/@lix-js/sdk/dist/change-conflict/detect-diverging-entity-conflict.d.ts +0 -32
  196. package/node_modules/@lix-js/sdk/dist/change-conflict/detect-diverging-entity-conflict.d.ts.map +0 -1
  197. package/node_modules/@lix-js/sdk/dist/change-conflict/detect-diverging-entity-conflict.js +0 -66
  198. package/node_modules/@lix-js/sdk/dist/change-conflict/detect-diverging-entity-conflict.js.map +0 -1
  199. package/node_modules/@lix-js/sdk/dist/change-conflict/detect-diverging-entity-conflict.test.d.ts +0 -2
  200. package/node_modules/@lix-js/sdk/dist/change-conflict/detect-diverging-entity-conflict.test.d.ts.map +0 -1
  201. package/node_modules/@lix-js/sdk/dist/change-conflict/detect-diverging-entity-conflict.test.js +0 -201
  202. package/node_modules/@lix-js/sdk/dist/change-conflict/detect-diverging-entity-conflict.test.js.map +0 -1
  203. package/node_modules/@lix-js/sdk/dist/change-conflict/garbage-collect-change-conflicts.d.ts +0 -14
  204. package/node_modules/@lix-js/sdk/dist/change-conflict/garbage-collect-change-conflicts.d.ts.map +0 -1
  205. package/node_modules/@lix-js/sdk/dist/change-conflict/garbage-collect-change-conflicts.js +0 -67
  206. package/node_modules/@lix-js/sdk/dist/change-conflict/garbage-collect-change-conflicts.js.map +0 -1
  207. package/node_modules/@lix-js/sdk/dist/change-conflict/garbage-collect-change-conflicts.test.d.ts +0 -2
  208. package/node_modules/@lix-js/sdk/dist/change-conflict/garbage-collect-change-conflicts.test.d.ts.map +0 -1
  209. package/node_modules/@lix-js/sdk/dist/change-conflict/garbage-collect-change-conflicts.test.js +0 -182
  210. package/node_modules/@lix-js/sdk/dist/change-conflict/garbage-collect-change-conflicts.test.js.map +0 -1
  211. package/node_modules/@lix-js/sdk/dist/change-conflict/index.d.ts +0 -4
  212. package/node_modules/@lix-js/sdk/dist/change-conflict/index.d.ts.map +0 -1
  213. package/node_modules/@lix-js/sdk/dist/change-conflict/index.js +0 -4
  214. package/node_modules/@lix-js/sdk/dist/change-conflict/index.js.map +0 -1
  215. package/node_modules/@lix-js/sdk/dist/change-conflict/resolve-conflict-by-selecting.d.ts +0 -12
  216. package/node_modules/@lix-js/sdk/dist/change-conflict/resolve-conflict-by-selecting.d.ts.map +0 -1
  217. package/node_modules/@lix-js/sdk/dist/change-conflict/resolve-conflict-by-selecting.js +0 -48
  218. package/node_modules/@lix-js/sdk/dist/change-conflict/resolve-conflict-by-selecting.js.map +0 -1
  219. package/node_modules/@lix-js/sdk/dist/change-conflict/resolve-conflict-by-selecting.test.d.ts +0 -2
  220. package/node_modules/@lix-js/sdk/dist/change-conflict/resolve-conflict-by-selecting.test.d.ts.map +0 -1
  221. package/node_modules/@lix-js/sdk/dist/change-conflict/resolve-conflict-by-selecting.test.js +0 -95
  222. package/node_modules/@lix-js/sdk/dist/change-conflict/resolve-conflict-by-selecting.test.js.map +0 -1
  223. package/node_modules/@lix-js/sdk/dist/change-conflict/update-change-conflicts.d.ts +0 -2
  224. package/node_modules/@lix-js/sdk/dist/change-conflict/update-change-conflicts.d.ts.map +0 -1
  225. package/node_modules/@lix-js/sdk/dist/change-conflict/update-change-conflicts.js +0 -72
  226. package/node_modules/@lix-js/sdk/dist/change-conflict/update-change-conflicts.js.map +0 -1
  227. package/node_modules/@lix-js/sdk/dist/change-queue/change-queue-settled.d.ts +0 -13
  228. package/node_modules/@lix-js/sdk/dist/change-queue/change-queue-settled.d.ts.map +0 -1
  229. package/node_modules/@lix-js/sdk/dist/change-queue/change-queue-settled.js +0 -25
  230. package/node_modules/@lix-js/sdk/dist/change-queue/change-queue-settled.js.map +0 -1
  231. package/node_modules/@lix-js/sdk/dist/change-queue/change-queue-settled.test.d.ts +0 -2
  232. package/node_modules/@lix-js/sdk/dist/change-queue/change-queue-settled.test.d.ts.map +0 -1
  233. package/node_modules/@lix-js/sdk/dist/change-queue/change-queue-settled.test.js +0 -47
  234. package/node_modules/@lix-js/sdk/dist/change-queue/change-queue-settled.test.js.map +0 -1
  235. package/node_modules/@lix-js/sdk/dist/change-queue/file-handlers.d.ts +0 -24
  236. package/node_modules/@lix-js/sdk/dist/change-queue/file-handlers.d.ts.map +0 -1
  237. package/node_modules/@lix-js/sdk/dist/change-queue/file-handlers.js +0 -209
  238. package/node_modules/@lix-js/sdk/dist/change-queue/file-handlers.js.map +0 -1
  239. package/node_modules/@lix-js/sdk/dist/change-queue/index.d.ts +0 -2
  240. package/node_modules/@lix-js/sdk/dist/change-queue/index.d.ts.map +0 -1
  241. package/node_modules/@lix-js/sdk/dist/change-queue/index.js +0 -2
  242. package/node_modules/@lix-js/sdk/dist/change-queue/index.js.map +0 -1
  243. package/node_modules/@lix-js/sdk/dist/change-queue/init-change-queue.d.ts +0 -7
  244. package/node_modules/@lix-js/sdk/dist/change-queue/init-change-queue.d.ts.map +0 -1
  245. package/node_modules/@lix-js/sdk/dist/change-queue/init-change-queue.js +0 -80
  246. package/node_modules/@lix-js/sdk/dist/change-queue/init-change-queue.js.map +0 -1
  247. package/node_modules/@lix-js/sdk/dist/change-queue/init-change-queue.test.d.ts +0 -2
  248. package/node_modules/@lix-js/sdk/dist/change-queue/init-change-queue.test.d.ts.map +0 -1
  249. package/node_modules/@lix-js/sdk/dist/change-queue/init-change-queue.test.js +0 -373
  250. package/node_modules/@lix-js/sdk/dist/change-queue/init-change-queue.test.js.map +0 -1
  251. package/node_modules/@lix-js/sdk/dist/change-queue/with-skip-change-queue.d.ts +0 -3
  252. package/node_modules/@lix-js/sdk/dist/change-queue/with-skip-change-queue.d.ts.map +0 -1
  253. package/node_modules/@lix-js/sdk/dist/change-queue/with-skip-change-queue.js +0 -26
  254. package/node_modules/@lix-js/sdk/dist/change-queue/with-skip-change-queue.js.map +0 -1
  255. package/node_modules/@lix-js/sdk/dist/change-queue/with-skip-change-queue.test.d.ts +0 -2
  256. package/node_modules/@lix-js/sdk/dist/change-queue/with-skip-change-queue.test.d.ts.map +0 -1
  257. package/node_modules/@lix-js/sdk/dist/change-queue/with-skip-change-queue.test.js +0 -138
  258. package/node_modules/@lix-js/sdk/dist/change-queue/with-skip-change-queue.test.js.map +0 -1
  259. package/node_modules/@lix-js/sdk/dist/change-schema/index.d.ts +0 -2
  260. package/node_modules/@lix-js/sdk/dist/change-schema/index.d.ts.map +0 -1
  261. package/node_modules/@lix-js/sdk/dist/change-schema/index.js +0 -2
  262. package/node_modules/@lix-js/sdk/dist/change-schema/index.js.map +0 -1
  263. package/node_modules/@lix-js/sdk/dist/change-schema/types.d.ts +0 -40
  264. package/node_modules/@lix-js/sdk/dist/change-schema/types.d.ts.map +0 -1
  265. package/node_modules/@lix-js/sdk/dist/change-schema/types.js +0 -2
  266. package/node_modules/@lix-js/sdk/dist/change-schema/types.js.map +0 -1
  267. package/node_modules/@lix-js/sdk/dist/change-schema/types.test-d.d.ts +0 -2
  268. package/node_modules/@lix-js/sdk/dist/change-schema/types.test-d.d.ts.map +0 -1
  269. package/node_modules/@lix-js/sdk/dist/change-schema/types.test-d.js +0 -34
  270. package/node_modules/@lix-js/sdk/dist/change-schema/types.test-d.js.map +0 -1
  271. package/node_modules/@lix-js/sdk/dist/change-set/change-set-element-in-symmetric-difference.d.ts +0 -19
  272. package/node_modules/@lix-js/sdk/dist/change-set/change-set-element-in-symmetric-difference.d.ts.map +0 -1
  273. package/node_modules/@lix-js/sdk/dist/change-set/change-set-element-in-symmetric-difference.js +0 -36
  274. package/node_modules/@lix-js/sdk/dist/change-set/change-set-element-in-symmetric-difference.js.map +0 -1
  275. package/node_modules/@lix-js/sdk/dist/change-set/change-set-element-in-symmetric-difference.test.d.ts +0 -2
  276. package/node_modules/@lix-js/sdk/dist/change-set/change-set-element-in-symmetric-difference.test.d.ts.map +0 -1
  277. package/node_modules/@lix-js/sdk/dist/change-set/change-set-element-in-symmetric-difference.test.js +0 -106
  278. package/node_modules/@lix-js/sdk/dist/change-set/change-set-element-in-symmetric-difference.test.js.map +0 -1
  279. package/node_modules/@lix-js/sdk/dist/change-set/create-change-set.d.ts +0 -16
  280. package/node_modules/@lix-js/sdk/dist/change-set/create-change-set.d.ts.map +0 -1
  281. package/node_modules/@lix-js/sdk/dist/change-set/create-change-set.js +0 -33
  282. package/node_modules/@lix-js/sdk/dist/change-set/create-change-set.js.map +0 -1
  283. package/node_modules/@lix-js/sdk/dist/change-set/create-change-set.test.d.ts +0 -2
  284. package/node_modules/@lix-js/sdk/dist/change-set/create-change-set.test.d.ts.map +0 -1
  285. package/node_modules/@lix-js/sdk/dist/change-set/create-change-set.test.js +0 -37
  286. package/node_modules/@lix-js/sdk/dist/change-set/create-change-set.test.js.map +0 -1
  287. package/node_modules/@lix-js/sdk/dist/change-set/index.d.ts +0 -3
  288. package/node_modules/@lix-js/sdk/dist/change-set/index.d.ts.map +0 -1
  289. package/node_modules/@lix-js/sdk/dist/change-set/index.js +0 -3
  290. package/node_modules/@lix-js/sdk/dist/change-set/index.js.map +0 -1
  291. package/node_modules/@lix-js/sdk/dist/database/apply-schema.d.ts +0 -8
  292. package/node_modules/@lix-js/sdk/dist/database/apply-schema.d.ts.map +0 -1
  293. package/node_modules/@lix-js/sdk/dist/database/apply-schema.js +0 -266
  294. package/node_modules/@lix-js/sdk/dist/database/apply-schema.js.map +0 -1
  295. package/node_modules/@lix-js/sdk/dist/database/execute-sync.d.ts +0 -18
  296. package/node_modules/@lix-js/sdk/dist/database/execute-sync.d.ts.map +0 -1
  297. package/node_modules/@lix-js/sdk/dist/database/execute-sync.js +0 -36
  298. package/node_modules/@lix-js/sdk/dist/database/execute-sync.js.map +0 -1
  299. package/node_modules/@lix-js/sdk/dist/database/execute-sync.test.d.ts +0 -2
  300. package/node_modules/@lix-js/sdk/dist/database/execute-sync.test.d.ts.map +0 -1
  301. package/node_modules/@lix-js/sdk/dist/database/execute-sync.test.js +0 -118
  302. package/node_modules/@lix-js/sdk/dist/database/execute-sync.test.js.map +0 -1
  303. package/node_modules/@lix-js/sdk/dist/database/index.d.ts +0 -5
  304. package/node_modules/@lix-js/sdk/dist/database/index.d.ts.map +0 -1
  305. package/node_modules/@lix-js/sdk/dist/database/index.js +0 -5
  306. package/node_modules/@lix-js/sdk/dist/database/index.js.map +0 -1
  307. package/node_modules/@lix-js/sdk/dist/database/init-db.d.ts +0 -7
  308. package/node_modules/@lix-js/sdk/dist/database/init-db.d.ts.map +0 -1
  309. package/node_modules/@lix-js/sdk/dist/database/init-db.js +0 -95
  310. package/node_modules/@lix-js/sdk/dist/database/init-db.js.map +0 -1
  311. package/node_modules/@lix-js/sdk/dist/database/init-db.test.d.ts +0 -2
  312. package/node_modules/@lix-js/sdk/dist/database/init-db.test.d.ts.map +0 -1
  313. package/node_modules/@lix-js/sdk/dist/database/init-db.test.js +0 -497
  314. package/node_modules/@lix-js/sdk/dist/database/init-db.test.js.map +0 -1
  315. package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/parse-jsonb-plugin-v1.d.ts +0 -3
  316. package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/parse-jsonb-plugin-v1.d.ts.map +0 -1
  317. package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/parse-jsonb-plugin-v1.js +0 -44
  318. package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/parse-jsonb-plugin-v1.js.map +0 -1
  319. package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/parse-jsonb-plugin-v1.test.d.ts +0 -2
  320. package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/parse-jsonb-plugin-v1.test.d.ts.map +0 -1
  321. package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/parse-jsonb-plugin-v1.test.js +0 -162
  322. package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/parse-jsonb-plugin-v1.test.js.map +0 -1
  323. package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/parse-jsonb-plugin-v2.d.ts +0 -12
  324. package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/parse-jsonb-plugin-v2.d.ts.map +0 -1
  325. package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/parse-jsonb-plugin-v2.js +0 -149
  326. package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/parse-jsonb-plugin-v2.js.map +0 -1
  327. package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/parse-jsonb-plugin-v2.no_test.d.ts +0 -2
  328. package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/parse-jsonb-plugin-v2.no_test.d.ts.map +0 -1
  329. package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/parse-jsonb-plugin-v2.no_test.js +0 -162
  330. package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/parse-jsonb-plugin-v2.no_test.js.map +0 -1
  331. package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/serialize-jsonb-plugin.d.ts +0 -3
  332. package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/serialize-jsonb-plugin.d.ts.map +0 -1
  333. package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/serialize-jsonb-plugin.js +0 -100
  334. package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/serialize-jsonb-plugin.js.map +0 -1
  335. package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/serialize-jsonb-plugin.test.d.ts +0 -2
  336. package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/serialize-jsonb-plugin.test.d.ts.map +0 -1
  337. package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/serialize-jsonb-plugin.test.js +0 -107
  338. package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/serialize-jsonb-plugin.test.js.map +0 -1
  339. package/node_modules/@lix-js/sdk/dist/database/mutation-log/database-schema.d.ts +0 -16
  340. package/node_modules/@lix-js/sdk/dist/database/mutation-log/database-schema.d.ts.map +0 -1
  341. package/node_modules/@lix-js/sdk/dist/database/mutation-log/database-schema.js +0 -101
  342. package/node_modules/@lix-js/sdk/dist/database/mutation-log/database-schema.js.map +0 -1
  343. package/node_modules/@lix-js/sdk/dist/database/mutation-log/lix-session.d.ts +0 -8
  344. package/node_modules/@lix-js/sdk/dist/database/mutation-log/lix-session.d.ts.map +0 -1
  345. package/node_modules/@lix-js/sdk/dist/database/mutation-log/lix-session.js +0 -18
  346. package/node_modules/@lix-js/sdk/dist/database/mutation-log/lix-session.js.map +0 -1
  347. package/node_modules/@lix-js/sdk/dist/database/nano-id.d.ts +0 -21
  348. package/node_modules/@lix-js/sdk/dist/database/nano-id.d.ts.map +0 -1
  349. package/node_modules/@lix-js/sdk/dist/database/nano-id.js +0 -58
  350. package/node_modules/@lix-js/sdk/dist/database/nano-id.js.map +0 -1
  351. package/node_modules/@lix-js/sdk/dist/database/nano-id.test.d.ts +0 -2
  352. package/node_modules/@lix-js/sdk/dist/database/nano-id.test.d.ts.map +0 -1
  353. package/node_modules/@lix-js/sdk/dist/database/nano-id.test.js +0 -13
  354. package/node_modules/@lix-js/sdk/dist/database/nano-id.test.js.map +0 -1
  355. package/node_modules/@lix-js/sdk/dist/database/schema.d.ts +0 -212
  356. package/node_modules/@lix-js/sdk/dist/database/schema.d.ts.map +0 -1
  357. package/node_modules/@lix-js/sdk/dist/database/schema.js +0 -2
  358. package/node_modules/@lix-js/sdk/dist/database/schema.js.map +0 -1
  359. package/node_modules/@lix-js/sdk/dist/discussion/create-comment.d.ts +0 -8
  360. package/node_modules/@lix-js/sdk/dist/discussion/create-comment.d.ts.map +0 -1
  361. package/node_modules/@lix-js/sdk/dist/discussion/create-comment.js +0 -12
  362. package/node_modules/@lix-js/sdk/dist/discussion/create-comment.js.map +0 -1
  363. package/node_modules/@lix-js/sdk/dist/discussion/create-discussion.d.ts +0 -21
  364. package/node_modules/@lix-js/sdk/dist/discussion/create-discussion.d.ts.map +0 -1
  365. package/node_modules/@lix-js/sdk/dist/discussion/create-discussion.js +0 -40
  366. package/node_modules/@lix-js/sdk/dist/discussion/create-discussion.js.map +0 -1
  367. package/node_modules/@lix-js/sdk/dist/discussion/create-discussion.test.d.ts +0 -2
  368. package/node_modules/@lix-js/sdk/dist/discussion/create-discussion.test.d.ts.map +0 -1
  369. package/node_modules/@lix-js/sdk/dist/discussion/create-discussion.test.js +0 -38
  370. package/node_modules/@lix-js/sdk/dist/discussion/create-discussion.test.js.map +0 -1
  371. package/node_modules/@lix-js/sdk/dist/discussion/index.d.ts +0 -3
  372. package/node_modules/@lix-js/sdk/dist/discussion/index.d.ts.map +0 -1
  373. package/node_modules/@lix-js/sdk/dist/discussion/index.js +0 -3
  374. package/node_modules/@lix-js/sdk/dist/discussion/index.js.map +0 -1
  375. package/node_modules/@lix-js/sdk/dist/file/index.d.ts +0 -2
  376. package/node_modules/@lix-js/sdk/dist/file/index.d.ts.map +0 -1
  377. package/node_modules/@lix-js/sdk/dist/file/index.js +0 -2
  378. package/node_modules/@lix-js/sdk/dist/file/index.js.map +0 -1
  379. package/node_modules/@lix-js/sdk/dist/file/validate-file-path.d.ts +0 -16
  380. package/node_modules/@lix-js/sdk/dist/file/validate-file-path.d.ts.map +0 -1
  381. package/node_modules/@lix-js/sdk/dist/file/validate-file-path.js +0 -44
  382. package/node_modules/@lix-js/sdk/dist/file/validate-file-path.js.map +0 -1
  383. package/node_modules/@lix-js/sdk/dist/file/validate-file-path.test.d.ts +0 -2
  384. package/node_modules/@lix-js/sdk/dist/file/validate-file-path.test.d.ts.map +0 -1
  385. package/node_modules/@lix-js/sdk/dist/file/validate-file-path.test.js +0 -36
  386. package/node_modules/@lix-js/sdk/dist/file/validate-file-path.test.js.map +0 -1
  387. package/node_modules/@lix-js/sdk/dist/file-queue/file-handlers.d.ts +0 -24
  388. package/node_modules/@lix-js/sdk/dist/file-queue/file-handlers.d.ts.map +0 -1
  389. package/node_modules/@lix-js/sdk/dist/file-queue/file-handlers.js +0 -209
  390. package/node_modules/@lix-js/sdk/dist/file-queue/file-handlers.js.map +0 -1
  391. package/node_modules/@lix-js/sdk/dist/file-queue/file-queue-process.d.ts +0 -5
  392. package/node_modules/@lix-js/sdk/dist/file-queue/file-queue-process.d.ts.map +0 -1
  393. package/node_modules/@lix-js/sdk/dist/file-queue/file-queue-process.js +0 -85
  394. package/node_modules/@lix-js/sdk/dist/file-queue/file-queue-process.js.map +0 -1
  395. package/node_modules/@lix-js/sdk/dist/file-queue/file-queue-process.test.d.ts +0 -2
  396. package/node_modules/@lix-js/sdk/dist/file-queue/file-queue-process.test.d.ts.map +0 -1
  397. package/node_modules/@lix-js/sdk/dist/file-queue/file-queue-process.test.js +0 -373
  398. package/node_modules/@lix-js/sdk/dist/file-queue/file-queue-process.test.js.map +0 -1
  399. package/node_modules/@lix-js/sdk/dist/file-queue/file-queue-settled.d.ts +0 -13
  400. package/node_modules/@lix-js/sdk/dist/file-queue/file-queue-settled.d.ts.map +0 -1
  401. package/node_modules/@lix-js/sdk/dist/file-queue/file-queue-settled.js +0 -25
  402. package/node_modules/@lix-js/sdk/dist/file-queue/file-queue-settled.js.map +0 -1
  403. package/node_modules/@lix-js/sdk/dist/file-queue/file-queue-settled.test.d.ts +0 -2
  404. package/node_modules/@lix-js/sdk/dist/file-queue/file-queue-settled.test.d.ts.map +0 -1
  405. package/node_modules/@lix-js/sdk/dist/file-queue/file-queue-settled.test.js +0 -47
  406. package/node_modules/@lix-js/sdk/dist/file-queue/file-queue-settled.test.js.map +0 -1
  407. package/node_modules/@lix-js/sdk/dist/file-queue/index.d.ts +0 -2
  408. package/node_modules/@lix-js/sdk/dist/file-queue/index.d.ts.map +0 -1
  409. package/node_modules/@lix-js/sdk/dist/file-queue/index.js +0 -2
  410. package/node_modules/@lix-js/sdk/dist/file-queue/index.js.map +0 -1
  411. package/node_modules/@lix-js/sdk/dist/file-queue/with-skip-file-queue.d.ts +0 -3
  412. package/node_modules/@lix-js/sdk/dist/file-queue/with-skip-file-queue.d.ts.map +0 -1
  413. package/node_modules/@lix-js/sdk/dist/file-queue/with-skip-file-queue.js +0 -26
  414. package/node_modules/@lix-js/sdk/dist/file-queue/with-skip-file-queue.js.map +0 -1
  415. package/node_modules/@lix-js/sdk/dist/file-queue/with-skip-file-queue.test.d.ts +0 -2
  416. package/node_modules/@lix-js/sdk/dist/file-queue/with-skip-file-queue.test.d.ts.map +0 -1
  417. package/node_modules/@lix-js/sdk/dist/file-queue/with-skip-file-queue.test.js +0 -138
  418. package/node_modules/@lix-js/sdk/dist/file-queue/with-skip-file-queue.test.js.map +0 -1
  419. package/node_modules/@lix-js/sdk/dist/index.d.ts +0 -17
  420. package/node_modules/@lix-js/sdk/dist/index.d.ts.map +0 -1
  421. package/node_modules/@lix-js/sdk/dist/index.js +0 -17
  422. package/node_modules/@lix-js/sdk/dist/index.js.map +0 -1
  423. package/node_modules/@lix-js/sdk/dist/key-value/database-schema.d.ts +0 -42
  424. package/node_modules/@lix-js/sdk/dist/key-value/database-schema.d.ts.map +0 -1
  425. package/node_modules/@lix-js/sdk/dist/key-value/database-schema.js +0 -21
  426. package/node_modules/@lix-js/sdk/dist/key-value/database-schema.js.map +0 -1
  427. package/node_modules/@lix-js/sdk/dist/key-value/database-schema.test.d.ts +0 -2
  428. package/node_modules/@lix-js/sdk/dist/key-value/database-schema.test.d.ts.map +0 -1
  429. package/node_modules/@lix-js/sdk/dist/key-value/database-schema.test.js +0 -114
  430. package/node_modules/@lix-js/sdk/dist/key-value/database-schema.test.js.map +0 -1
  431. package/node_modules/@lix-js/sdk/dist/lix/close-lix.d.ts +0 -8
  432. package/node_modules/@lix-js/sdk/dist/lix/close-lix.d.ts.map +0 -1
  433. package/node_modules/@lix-js/sdk/dist/lix/close-lix.js +0 -7
  434. package/node_modules/@lix-js/sdk/dist/lix/close-lix.js.map +0 -1
  435. package/node_modules/@lix-js/sdk/dist/lix/index.d.ts +0 -5
  436. package/node_modules/@lix-js/sdk/dist/lix/index.d.ts.map +0 -1
  437. package/node_modules/@lix-js/sdk/dist/lix/index.js +0 -8
  438. package/node_modules/@lix-js/sdk/dist/lix/index.js.map +0 -1
  439. package/node_modules/@lix-js/sdk/dist/lix/merge.d.ts +0 -9
  440. package/node_modules/@lix-js/sdk/dist/lix/merge.d.ts.map +0 -1
  441. package/node_modules/@lix-js/sdk/dist/lix/merge.get-leaf-changes-only-in-source.d.ts +0 -15
  442. package/node_modules/@lix-js/sdk/dist/lix/merge.get-leaf-changes-only-in-source.d.ts.map +0 -1
  443. package/node_modules/@lix-js/sdk/dist/lix/merge.get-leaf-changes-only-in-source.js +0 -34
  444. package/node_modules/@lix-js/sdk/dist/lix/merge.get-leaf-changes-only-in-source.js.map +0 -1
  445. package/node_modules/@lix-js/sdk/dist/lix/merge.get-leaf-changes-only-in-source.test.d.ts +0 -2
  446. package/node_modules/@lix-js/sdk/dist/lix/merge.get-leaf-changes-only-in-source.test.d.ts.map +0 -1
  447. package/node_modules/@lix-js/sdk/dist/lix/merge.get-leaf-changes-only-in-source.test.js +0 -121
  448. package/node_modules/@lix-js/sdk/dist/lix/merge.get-leaf-changes-only-in-source.test.js.map +0 -1
  449. package/node_modules/@lix-js/sdk/dist/lix/merge.js +0 -195
  450. package/node_modules/@lix-js/sdk/dist/lix/merge.js.map +0 -1
  451. package/node_modules/@lix-js/sdk/dist/lix/merge.test.d.ts +0 -2
  452. package/node_modules/@lix-js/sdk/dist/lix/merge.test.d.ts.map +0 -1
  453. package/node_modules/@lix-js/sdk/dist/lix/merge.test.js +0 -689
  454. package/node_modules/@lix-js/sdk/dist/lix/merge.test.js.map +0 -1
  455. package/node_modules/@lix-js/sdk/dist/lix/new-lix.d.ts +0 -8
  456. package/node_modules/@lix-js/sdk/dist/lix/new-lix.d.ts.map +0 -1
  457. package/node_modules/@lix-js/sdk/dist/lix/new-lix.js +0 -26
  458. package/node_modules/@lix-js/sdk/dist/lix/new-lix.js.map +0 -1
  459. package/node_modules/@lix-js/sdk/dist/lix/new-lix.test.d.ts +0 -2
  460. package/node_modules/@lix-js/sdk/dist/lix/new-lix.test.d.ts.map +0 -1
  461. package/node_modules/@lix-js/sdk/dist/lix/new-lix.test.js +0 -21
  462. package/node_modules/@lix-js/sdk/dist/lix/new-lix.test.js.map +0 -1
  463. package/node_modules/@lix-js/sdk/dist/lix/open-lix-in-memory.d.ts +0 -12
  464. package/node_modules/@lix-js/sdk/dist/lix/open-lix-in-memory.d.ts.map +0 -1
  465. package/node_modules/@lix-js/sdk/dist/lix/open-lix-in-memory.js +0 -19
  466. package/node_modules/@lix-js/sdk/dist/lix/open-lix-in-memory.js.map +0 -1
  467. package/node_modules/@lix-js/sdk/dist/lix/open-lix-in-memory.test.d.ts +0 -2
  468. package/node_modules/@lix-js/sdk/dist/lix/open-lix-in-memory.test.d.ts.map +0 -1
  469. package/node_modules/@lix-js/sdk/dist/lix/open-lix-in-memory.test.js +0 -30
  470. package/node_modules/@lix-js/sdk/dist/lix/open-lix-in-memory.test.js.map +0 -1
  471. package/node_modules/@lix-js/sdk/dist/lix/open-lix.d.ts +0 -50
  472. package/node_modules/@lix-js/sdk/dist/lix/open-lix.d.ts.map +0 -1
  473. package/node_modules/@lix-js/sdk/dist/lix/open-lix.js +0 -33
  474. package/node_modules/@lix-js/sdk/dist/lix/open-lix.js.map +0 -1
  475. package/node_modules/@lix-js/sdk/dist/lix/open-lix.test.d.ts +0 -2
  476. package/node_modules/@lix-js/sdk/dist/lix/open-lix.test.d.ts.map +0 -1
  477. package/node_modules/@lix-js/sdk/dist/lix/open-lix.test.js +0 -38
  478. package/node_modules/@lix-js/sdk/dist/lix/open-lix.test.js.map +0 -1
  479. package/node_modules/@lix-js/sdk/dist/lix/to-blob.d.ts +0 -11
  480. package/node_modules/@lix-js/sdk/dist/lix/to-blob.d.ts.map +0 -1
  481. package/node_modules/@lix-js/sdk/dist/lix/to-blob.js +0 -11
  482. package/node_modules/@lix-js/sdk/dist/lix/to-blob.js.map +0 -1
  483. package/node_modules/@lix-js/sdk/dist/own-change-control/apply-own-change.d.ts +0 -10
  484. package/node_modules/@lix-js/sdk/dist/own-change-control/apply-own-change.d.ts.map +0 -1
  485. package/node_modules/@lix-js/sdk/dist/own-change-control/apply-own-change.js +0 -69
  486. package/node_modules/@lix-js/sdk/dist/own-change-control/apply-own-change.js.map +0 -1
  487. package/node_modules/@lix-js/sdk/dist/own-change-control/apply-own-change.test.d.ts +0 -2
  488. package/node_modules/@lix-js/sdk/dist/own-change-control/apply-own-change.test.d.ts.map +0 -1
  489. package/node_modules/@lix-js/sdk/dist/own-change-control/apply-own-change.test.js +0 -297
  490. package/node_modules/@lix-js/sdk/dist/own-change-control/apply-own-change.test.js.map +0 -1
  491. package/node_modules/@lix-js/sdk/dist/own-change-control/change-controlled-tables.d.ts +0 -60
  492. package/node_modules/@lix-js/sdk/dist/own-change-control/change-controlled-tables.d.ts.map +0 -1
  493. package/node_modules/@lix-js/sdk/dist/own-change-control/change-controlled-tables.js +0 -70
  494. package/node_modules/@lix-js/sdk/dist/own-change-control/change-controlled-tables.js.map +0 -1
  495. package/node_modules/@lix-js/sdk/dist/own-change-control/change-controlled-tables.test.d.ts +0 -2
  496. package/node_modules/@lix-js/sdk/dist/own-change-control/change-controlled-tables.test.d.ts.map +0 -1
  497. package/node_modules/@lix-js/sdk/dist/own-change-control/change-controlled-tables.test.js +0 -48
  498. package/node_modules/@lix-js/sdk/dist/own-change-control/change-controlled-tables.test.js.map +0 -1
  499. package/node_modules/@lix-js/sdk/dist/own-change-control/database-triggers.d.ts +0 -5
  500. package/node_modules/@lix-js/sdk/dist/own-change-control/database-triggers.d.ts.map +0 -1
  501. package/node_modules/@lix-js/sdk/dist/own-change-control/database-triggers.js +0 -135
  502. package/node_modules/@lix-js/sdk/dist/own-change-control/database-triggers.js.map +0 -1
  503. package/node_modules/@lix-js/sdk/dist/own-change-control/database-triggers.test.d.ts +0 -2
  504. package/node_modules/@lix-js/sdk/dist/own-change-control/database-triggers.test.d.ts.map +0 -1
  505. package/node_modules/@lix-js/sdk/dist/own-change-control/database-triggers.test.js +0 -214
  506. package/node_modules/@lix-js/sdk/dist/own-change-control/database-triggers.test.js.map +0 -1
  507. package/node_modules/@lix-js/sdk/dist/own-change-control/index.d.ts +0 -2
  508. package/node_modules/@lix-js/sdk/dist/own-change-control/index.d.ts.map +0 -1
  509. package/node_modules/@lix-js/sdk/dist/own-change-control/index.js +0 -2
  510. package/node_modules/@lix-js/sdk/dist/own-change-control/index.js.map +0 -1
  511. package/node_modules/@lix-js/sdk/dist/own-change-control/with-skip-own-change-control.d.ts +0 -3
  512. package/node_modules/@lix-js/sdk/dist/own-change-control/with-skip-own-change-control.d.ts.map +0 -1
  513. package/node_modules/@lix-js/sdk/dist/own-change-control/with-skip-own-change-control.js +0 -28
  514. package/node_modules/@lix-js/sdk/dist/own-change-control/with-skip-own-change-control.js.map +0 -1
  515. package/node_modules/@lix-js/sdk/dist/own-change-control/with-skip-own-change-control.test.d.ts +0 -2
  516. package/node_modules/@lix-js/sdk/dist/own-change-control/with-skip-own-change-control.test.d.ts.map +0 -1
  517. package/node_modules/@lix-js/sdk/dist/own-change-control/with-skip-own-change-control.test.js +0 -49
  518. package/node_modules/@lix-js/sdk/dist/own-change-control/with-skip-own-change-control.test.js.map +0 -1
  519. package/node_modules/@lix-js/sdk/dist/own-entity-change-control/apply-own-entity-change.d.ts +0 -10
  520. package/node_modules/@lix-js/sdk/dist/own-entity-change-control/apply-own-entity-change.d.ts.map +0 -1
  521. package/node_modules/@lix-js/sdk/dist/own-entity-change-control/apply-own-entity-change.js +0 -69
  522. package/node_modules/@lix-js/sdk/dist/own-entity-change-control/apply-own-entity-change.js.map +0 -1
  523. package/node_modules/@lix-js/sdk/dist/own-entity-change-control/apply-own-entity-change.test.d.ts +0 -2
  524. package/node_modules/@lix-js/sdk/dist/own-entity-change-control/apply-own-entity-change.test.d.ts.map +0 -1
  525. package/node_modules/@lix-js/sdk/dist/own-entity-change-control/apply-own-entity-change.test.js +0 -297
  526. package/node_modules/@lix-js/sdk/dist/own-entity-change-control/apply-own-entity-change.test.js.map +0 -1
  527. package/node_modules/@lix-js/sdk/dist/own-entity-change-control/change-controlled-tables.d.ts +0 -61
  528. package/node_modules/@lix-js/sdk/dist/own-entity-change-control/change-controlled-tables.d.ts.map +0 -1
  529. package/node_modules/@lix-js/sdk/dist/own-entity-change-control/change-controlled-tables.js +0 -71
  530. package/node_modules/@lix-js/sdk/dist/own-entity-change-control/change-controlled-tables.js.map +0 -1
  531. package/node_modules/@lix-js/sdk/dist/own-entity-change-control/change-controlled-tables.test.d.ts +0 -2
  532. package/node_modules/@lix-js/sdk/dist/own-entity-change-control/change-controlled-tables.test.d.ts.map +0 -1
  533. package/node_modules/@lix-js/sdk/dist/own-entity-change-control/change-controlled-tables.test.js +0 -48
  534. package/node_modules/@lix-js/sdk/dist/own-entity-change-control/change-controlled-tables.test.js.map +0 -1
  535. package/node_modules/@lix-js/sdk/dist/own-entity-change-control/database-triggers.d.ts +0 -5
  536. package/node_modules/@lix-js/sdk/dist/own-entity-change-control/database-triggers.d.ts.map +0 -1
  537. package/node_modules/@lix-js/sdk/dist/own-entity-change-control/database-triggers.js +0 -135
  538. package/node_modules/@lix-js/sdk/dist/own-entity-change-control/database-triggers.js.map +0 -1
  539. package/node_modules/@lix-js/sdk/dist/own-entity-change-control/database-triggers.test.d.ts +0 -2
  540. package/node_modules/@lix-js/sdk/dist/own-entity-change-control/database-triggers.test.d.ts.map +0 -1
  541. package/node_modules/@lix-js/sdk/dist/own-entity-change-control/database-triggers.test.js +0 -214
  542. package/node_modules/@lix-js/sdk/dist/own-entity-change-control/database-triggers.test.js.map +0 -1
  543. package/node_modules/@lix-js/sdk/dist/own-entity-change-control/index.d.ts +0 -2
  544. package/node_modules/@lix-js/sdk/dist/own-entity-change-control/index.d.ts.map +0 -1
  545. package/node_modules/@lix-js/sdk/dist/own-entity-change-control/index.js +0 -2
  546. package/node_modules/@lix-js/sdk/dist/own-entity-change-control/index.js.map +0 -1
  547. package/node_modules/@lix-js/sdk/dist/own-entity-change-control/with-skip-own-change-control.d.ts +0 -3
  548. package/node_modules/@lix-js/sdk/dist/own-entity-change-control/with-skip-own-change-control.d.ts.map +0 -1
  549. package/node_modules/@lix-js/sdk/dist/own-entity-change-control/with-skip-own-change-control.js +0 -24
  550. package/node_modules/@lix-js/sdk/dist/own-entity-change-control/with-skip-own-change-control.js.map +0 -1
  551. package/node_modules/@lix-js/sdk/dist/own-entity-change-control/with-skip-own-change-control.test.d.ts +0 -2
  552. package/node_modules/@lix-js/sdk/dist/own-entity-change-control/with-skip-own-change-control.test.d.ts.map +0 -1
  553. package/node_modules/@lix-js/sdk/dist/own-entity-change-control/with-skip-own-change-control.test.js +0 -49
  554. package/node_modules/@lix-js/sdk/dist/own-entity-change-control/with-skip-own-change-control.test.js.map +0 -1
  555. package/node_modules/@lix-js/sdk/dist/plugin/index.d.ts +0 -2
  556. package/node_modules/@lix-js/sdk/dist/plugin/index.d.ts.map +0 -1
  557. package/node_modules/@lix-js/sdk/dist/plugin/index.js +0 -2
  558. package/node_modules/@lix-js/sdk/dist/plugin/index.js.map +0 -1
  559. package/node_modules/@lix-js/sdk/dist/plugin/lix-plugin.d.ts +0 -114
  560. package/node_modules/@lix-js/sdk/dist/plugin/lix-plugin.d.ts.map +0 -1
  561. package/node_modules/@lix-js/sdk/dist/plugin/lix-plugin.js +0 -2
  562. package/node_modules/@lix-js/sdk/dist/plugin/lix-plugin.js.map +0 -1
  563. package/node_modules/@lix-js/sdk/dist/plugin/lix-plugin.test-d.d.ts +0 -2
  564. package/node_modules/@lix-js/sdk/dist/plugin/lix-plugin.test-d.d.ts.map +0 -1
  565. package/node_modules/@lix-js/sdk/dist/plugin/lix-plugin.test-d.js +0 -40
  566. package/node_modules/@lix-js/sdk/dist/plugin/lix-plugin.test-d.js.map +0 -1
  567. package/node_modules/@lix-js/sdk/dist/plugin/load-plugin.d.ts +0 -5
  568. package/node_modules/@lix-js/sdk/dist/plugin/load-plugin.d.ts.map +0 -1
  569. package/node_modules/@lix-js/sdk/dist/plugin/load-plugin.js +0 -20
  570. package/node_modules/@lix-js/sdk/dist/plugin/load-plugin.js.map +0 -1
  571. package/node_modules/@lix-js/sdk/dist/plugin/with-transaction.d.ts +0 -11
  572. package/node_modules/@lix-js/sdk/dist/plugin/with-transaction.d.ts.map +0 -1
  573. package/node_modules/@lix-js/sdk/dist/plugin/with-transaction.js +0 -15
  574. package/node_modules/@lix-js/sdk/dist/plugin/with-transaction.js.map +0 -1
  575. package/node_modules/@lix-js/sdk/dist/query-filter/change-conflict-in-version.d.ts +0 -15
  576. package/node_modules/@lix-js/sdk/dist/query-filter/change-conflict-in-version.d.ts.map +0 -1
  577. package/node_modules/@lix-js/sdk/dist/query-filter/change-conflict-in-version.js +0 -18
  578. package/node_modules/@lix-js/sdk/dist/query-filter/change-conflict-in-version.js.map +0 -1
  579. package/node_modules/@lix-js/sdk/dist/query-filter/change-conflict-in-version.test.d.ts +0 -2
  580. package/node_modules/@lix-js/sdk/dist/query-filter/change-conflict-in-version.test.d.ts.map +0 -1
  581. package/node_modules/@lix-js/sdk/dist/query-filter/change-conflict-in-version.test.js +0 -55
  582. package/node_modules/@lix-js/sdk/dist/query-filter/change-conflict-in-version.test.js.map +0 -1
  583. package/node_modules/@lix-js/sdk/dist/query-filter/change-has-label.d.ts +0 -25
  584. package/node_modules/@lix-js/sdk/dist/query-filter/change-has-label.d.ts.map +0 -1
  585. package/node_modules/@lix-js/sdk/dist/query-filter/change-has-label.js +0 -30
  586. package/node_modules/@lix-js/sdk/dist/query-filter/change-has-label.js.map +0 -1
  587. package/node_modules/@lix-js/sdk/dist/query-filter/change-has-label.test.d.ts +0 -2
  588. package/node_modules/@lix-js/sdk/dist/query-filter/change-has-label.test.d.ts.map +0 -1
  589. package/node_modules/@lix-js/sdk/dist/query-filter/change-has-label.test.js +0 -46
  590. package/node_modules/@lix-js/sdk/dist/query-filter/change-has-label.test.js.map +0 -1
  591. package/node_modules/@lix-js/sdk/dist/query-filter/change-in-version.d.ts +0 -16
  592. package/node_modules/@lix-js/sdk/dist/query-filter/change-in-version.d.ts.map +0 -1
  593. package/node_modules/@lix-js/sdk/dist/query-filter/change-in-version.js +0 -29
  594. package/node_modules/@lix-js/sdk/dist/query-filter/change-in-version.js.map +0 -1
  595. package/node_modules/@lix-js/sdk/dist/query-filter/change-in-version.test.d.ts +0 -2
  596. package/node_modules/@lix-js/sdk/dist/query-filter/change-in-version.test.d.ts.map +0 -1
  597. package/node_modules/@lix-js/sdk/dist/query-filter/change-in-version.test.js +0 -75
  598. package/node_modules/@lix-js/sdk/dist/query-filter/change-in-version.test.js.map +0 -1
  599. package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-in-version.d.ts +0 -16
  600. package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-in-version.d.ts.map +0 -1
  601. package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-in-version.js +0 -35
  602. package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-in-version.js.map +0 -1
  603. package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-in-version.test.d.ts +0 -2
  604. package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-in-version.test.d.ts.map +0 -1
  605. package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-in-version.test.js +0 -70
  606. package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-in-version.test.js.map +0 -1
  607. package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-of.bench.d.ts +0 -2
  608. package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-of.bench.d.ts.map +0 -1
  609. package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-of.bench.js +0 -132
  610. package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-of.bench.js.map +0 -1
  611. package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-of.d.ts +0 -29
  612. package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-of.d.ts.map +0 -1
  613. package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-of.js +0 -44
  614. package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-of.js.map +0 -1
  615. package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-of.test.d.ts +0 -2
  616. package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-of.test.d.ts.map +0 -1
  617. package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-of.test.js +0 -71
  618. package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-of.test.js.map +0 -1
  619. package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf.d.ts +0 -18
  620. package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf.d.ts.map +0 -1
  621. package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf.js +0 -18
  622. package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf.js.map +0 -1
  623. package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf.test.d.ts +0 -2
  624. package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf.test.d.ts.map +0 -1
  625. package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf.test.js +0 -122
  626. package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf.test.js.map +0 -1
  627. package/node_modules/@lix-js/sdk/dist/query-filter/change-is-lowest-common-ancestor-of.d.ts +0 -16
  628. package/node_modules/@lix-js/sdk/dist/query-filter/change-is-lowest-common-ancestor-of.d.ts.map +0 -1
  629. package/node_modules/@lix-js/sdk/dist/query-filter/change-is-lowest-common-ancestor-of.js +0 -55
  630. package/node_modules/@lix-js/sdk/dist/query-filter/change-is-lowest-common-ancestor-of.js.map +0 -1
  631. package/node_modules/@lix-js/sdk/dist/query-filter/change-is-lowest-common-ancestor-of.test.d.ts +0 -2
  632. package/node_modules/@lix-js/sdk/dist/query-filter/change-is-lowest-common-ancestor-of.test.d.ts.map +0 -1
  633. package/node_modules/@lix-js/sdk/dist/query-filter/change-is-lowest-common-ancestor-of.test.js +0 -155
  634. package/node_modules/@lix-js/sdk/dist/query-filter/change-is-lowest-common-ancestor-of.test.js.map +0 -1
  635. package/node_modules/@lix-js/sdk/dist/query-filter/change-set-has-label.d.ts +0 -25
  636. package/node_modules/@lix-js/sdk/dist/query-filter/change-set-has-label.d.ts.map +0 -1
  637. package/node_modules/@lix-js/sdk/dist/query-filter/change-set-has-label.js +0 -29
  638. package/node_modules/@lix-js/sdk/dist/query-filter/change-set-has-label.js.map +0 -1
  639. package/node_modules/@lix-js/sdk/dist/query-filter/change-set-has-label.test.d.ts +0 -2
  640. package/node_modules/@lix-js/sdk/dist/query-filter/change-set-has-label.test.d.ts.map +0 -1
  641. package/node_modules/@lix-js/sdk/dist/query-filter/change-set-has-label.test.js +0 -43
  642. package/node_modules/@lix-js/sdk/dist/query-filter/change-set-has-label.test.js.map +0 -1
  643. package/node_modules/@lix-js/sdk/dist/query-filter/index.d.ts +0 -9
  644. package/node_modules/@lix-js/sdk/dist/query-filter/index.d.ts.map +0 -1
  645. package/node_modules/@lix-js/sdk/dist/query-filter/index.js +0 -9
  646. package/node_modules/@lix-js/sdk/dist/query-filter/index.js.map +0 -1
  647. package/node_modules/@lix-js/sdk/dist/query-filter/version-change-in-difference.d.ts +0 -18
  648. package/node_modules/@lix-js/sdk/dist/query-filter/version-change-in-difference.d.ts.map +0 -1
  649. package/node_modules/@lix-js/sdk/dist/query-filter/version-change-in-difference.js +0 -25
  650. package/node_modules/@lix-js/sdk/dist/query-filter/version-change-in-difference.js.map +0 -1
  651. package/node_modules/@lix-js/sdk/dist/query-filter/version-change-in-difference.test.d.ts +0 -2
  652. package/node_modules/@lix-js/sdk/dist/query-filter/version-change-in-difference.test.d.ts.map +0 -1
  653. package/node_modules/@lix-js/sdk/dist/query-filter/version-change-in-difference.test.js +0 -85
  654. package/node_modules/@lix-js/sdk/dist/query-filter/version-change-in-difference.test.js.map +0 -1
  655. package/node_modules/@lix-js/sdk/dist/query-filter/version-change-in-symmetric-difference.d.ts +0 -19
  656. package/node_modules/@lix-js/sdk/dist/query-filter/version-change-in-symmetric-difference.d.ts.map +0 -1
  657. package/node_modules/@lix-js/sdk/dist/query-filter/version-change-in-symmetric-difference.js +0 -36
  658. package/node_modules/@lix-js/sdk/dist/query-filter/version-change-in-symmetric-difference.js.map +0 -1
  659. package/node_modules/@lix-js/sdk/dist/query-filter/version-change-in-symmetric-difference.test.d.ts +0 -2
  660. package/node_modules/@lix-js/sdk/dist/query-filter/version-change-in-symmetric-difference.test.d.ts.map +0 -1
  661. package/node_modules/@lix-js/sdk/dist/query-filter/version-change-in-symmetric-difference.test.js +0 -84
  662. package/node_modules/@lix-js/sdk/dist/query-filter/version-change-in-symmetric-difference.test.js.map +0 -1
  663. package/node_modules/@lix-js/sdk/dist/server-api-handler/create-server-api-handler.d.ts +0 -48
  664. package/node_modules/@lix-js/sdk/dist/server-api-handler/create-server-api-handler.d.ts.map +0 -1
  665. package/node_modules/@lix-js/sdk/dist/server-api-handler/create-server-api-handler.js +0 -68
  666. package/node_modules/@lix-js/sdk/dist/server-api-handler/create-server-api-handler.js.map +0 -1
  667. package/node_modules/@lix-js/sdk/dist/server-api-handler/environment/create-in-memory-environment.d.ts +0 -8
  668. package/node_modules/@lix-js/sdk/dist/server-api-handler/environment/create-in-memory-environment.d.ts.map +0 -1
  669. package/node_modules/@lix-js/sdk/dist/server-api-handler/environment/create-in-memory-environment.js +0 -97
  670. package/node_modules/@lix-js/sdk/dist/server-api-handler/environment/create-in-memory-environment.js.map +0 -1
  671. package/node_modules/@lix-js/sdk/dist/server-api-handler/environment/create-in-memory-environment.test.d.ts +0 -2
  672. package/node_modules/@lix-js/sdk/dist/server-api-handler/environment/create-in-memory-environment.test.d.ts.map +0 -1
  673. package/node_modules/@lix-js/sdk/dist/server-api-handler/environment/create-in-memory-environment.test.js +0 -103
  674. package/node_modules/@lix-js/sdk/dist/server-api-handler/environment/create-in-memory-environment.test.js.map +0 -1
  675. package/node_modules/@lix-js/sdk/dist/server-api-handler/environment/environment.d.ts +0 -53
  676. package/node_modules/@lix-js/sdk/dist/server-api-handler/environment/environment.d.ts.map +0 -1
  677. package/node_modules/@lix-js/sdk/dist/server-api-handler/environment/environment.js +0 -2
  678. package/node_modules/@lix-js/sdk/dist/server-api-handler/environment/environment.js.map +0 -1
  679. package/node_modules/@lix-js/sdk/dist/server-api-handler/index.d.ts +0 -3
  680. package/node_modules/@lix-js/sdk/dist/server-api-handler/index.d.ts.map +0 -1
  681. package/node_modules/@lix-js/sdk/dist/server-api-handler/index.js +0 -3
  682. package/node_modules/@lix-js/sdk/dist/server-api-handler/index.js.map +0 -1
  683. package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/get-v1.d.ts +0 -3
  684. package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/get-v1.d.ts.map +0 -1
  685. package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/get-v1.js +0 -44
  686. package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/get-v1.js.map +0 -1
  687. package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/get-v1.test.d.ts +0 -2
  688. package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/get-v1.test.d.ts.map +0 -1
  689. package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/get-v1.test.js +0 -108
  690. package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/get-v1.test.js.map +0 -1
  691. package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/new-v1.d.ts +0 -3
  692. package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/new-v1.d.ts.map +0 -1
  693. package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/new-v1.js +0 -38
  694. package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/new-v1.js.map +0 -1
  695. package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/new-v1.test.d.ts +0 -2
  696. package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/new-v1.test.d.ts.map +0 -1
  697. package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/new-v1.test.js +0 -72
  698. package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/new-v1.test.js.map +0 -1
  699. package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/pull-v1.d.ts +0 -3
  700. package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/pull-v1.d.ts.map +0 -1
  701. package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/pull-v1.js +0 -41
  702. package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/pull-v1.js.map +0 -1
  703. package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/pull-v1.test.d.ts +0 -2
  704. package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/pull-v1.test.d.ts.map +0 -1
  705. package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/pull-v1.test.js +0 -146
  706. package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/pull-v1.test.js.map +0 -1
  707. package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/push-v1.d.ts +0 -3
  708. package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/push-v1.d.ts.map +0 -1
  709. package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/push-v1.js +0 -142
  710. package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/push-v1.js.map +0 -1
  711. package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/push-v1.test.d.ts +0 -2
  712. package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/push-v1.test.d.ts.map +0 -1
  713. package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/push-v1.test.js +0 -231
  714. package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/push-v1.test.js.map +0 -1
  715. package/node_modules/@lix-js/sdk/dist/snapshot/create-snapshot.d.ts +0 -18
  716. package/node_modules/@lix-js/sdk/dist/snapshot/create-snapshot.d.ts.map +0 -1
  717. package/node_modules/@lix-js/sdk/dist/snapshot/create-snapshot.js +0 -33
  718. package/node_modules/@lix-js/sdk/dist/snapshot/create-snapshot.js.map +0 -1
  719. package/node_modules/@lix-js/sdk/dist/snapshot/create-snapshot.test.d.ts +0 -2
  720. package/node_modules/@lix-js/sdk/dist/snapshot/create-snapshot.test.d.ts.map +0 -1
  721. package/node_modules/@lix-js/sdk/dist/snapshot/create-snapshot.test.js +0 -54
  722. package/node_modules/@lix-js/sdk/dist/snapshot/create-snapshot.test.js.map +0 -1
  723. package/node_modules/@lix-js/sdk/dist/snapshot/index.d.ts +0 -3
  724. package/node_modules/@lix-js/sdk/dist/snapshot/index.d.ts.map +0 -1
  725. package/node_modules/@lix-js/sdk/dist/snapshot/index.js +0 -3
  726. package/node_modules/@lix-js/sdk/dist/snapshot/index.js.map +0 -1
  727. package/node_modules/@lix-js/sdk/dist/snapshot/json-sha-256.d.ts +0 -8
  728. package/node_modules/@lix-js/sdk/dist/snapshot/json-sha-256.d.ts.map +0 -1
  729. package/node_modules/@lix-js/sdk/dist/snapshot/json-sha-256.js +0 -29
  730. package/node_modules/@lix-js/sdk/dist/snapshot/json-sha-256.js.map +0 -1
  731. package/node_modules/@lix-js/sdk/dist/snapshot/json-sha-256.test.d.ts +0 -2
  732. package/node_modules/@lix-js/sdk/dist/snapshot/json-sha-256.test.d.ts.map +0 -1
  733. package/node_modules/@lix-js/sdk/dist/snapshot/json-sha-256.test.js +0 -10
  734. package/node_modules/@lix-js/sdk/dist/snapshot/json-sha-256.test.js.map +0 -1
  735. package/node_modules/@lix-js/sdk/dist/snapshot/mock-json-snapshot.d.ts +0 -8
  736. package/node_modules/@lix-js/sdk/dist/snapshot/mock-json-snapshot.d.ts.map +0 -1
  737. package/node_modules/@lix-js/sdk/dist/snapshot/mock-json-snapshot.js +0 -13
  738. package/node_modules/@lix-js/sdk/dist/snapshot/mock-json-snapshot.js.map +0 -1
  739. package/node_modules/@lix-js/sdk/dist/sync/get-diffing-rows.d.ts +0 -16
  740. package/node_modules/@lix-js/sdk/dist/sync/get-diffing-rows.d.ts.map +0 -1
  741. package/node_modules/@lix-js/sdk/dist/sync/get-diffing-rows.js +0 -62
  742. package/node_modules/@lix-js/sdk/dist/sync/get-diffing-rows.js.map +0 -1
  743. package/node_modules/@lix-js/sdk/dist/sync/merge-state.d.ts +0 -20
  744. package/node_modules/@lix-js/sdk/dist/sync/merge-state.d.ts.map +0 -1
  745. package/node_modules/@lix-js/sdk/dist/sync/merge-state.js +0 -237
  746. package/node_modules/@lix-js/sdk/dist/sync/merge-state.js.map +0 -1
  747. package/node_modules/@lix-js/sdk/dist/sync/pull-from-server.d.ts +0 -8
  748. package/node_modules/@lix-js/sdk/dist/sync/pull-from-server.d.ts.map +0 -1
  749. package/node_modules/@lix-js/sdk/dist/sync/pull-from-server.js +0 -113
  750. package/node_modules/@lix-js/sdk/dist/sync/pull-from-server.js.map +0 -1
  751. package/node_modules/@lix-js/sdk/dist/sync/pull-from-server.test.d.ts +0 -2
  752. package/node_modules/@lix-js/sdk/dist/sync/pull-from-server.test.d.ts.map +0 -1
  753. package/node_modules/@lix-js/sdk/dist/sync/pull-from-server.test.js +0 -340
  754. package/node_modules/@lix-js/sdk/dist/sync/pull-from-server.test.js.map +0 -1
  755. package/node_modules/@lix-js/sdk/dist/sync/push-to-server.d.ts +0 -12
  756. package/node_modules/@lix-js/sdk/dist/sync/push-to-server.d.ts.map +0 -1
  757. package/node_modules/@lix-js/sdk/dist/sync/push-to-server.js +0 -35
  758. package/node_modules/@lix-js/sdk/dist/sync/push-to-server.js.map +0 -1
  759. package/node_modules/@lix-js/sdk/dist/sync/push-to-server.test.d.ts +0 -2
  760. package/node_modules/@lix-js/sdk/dist/sync/push-to-server.test.d.ts.map +0 -1
  761. package/node_modules/@lix-js/sdk/dist/sync/push-to-server.test.js +0 -308
  762. package/node_modules/@lix-js/sdk/dist/sync/push-to-server.test.js.map +0 -1
  763. package/node_modules/@lix-js/sdk/dist/sync/sync-process.d.ts +0 -5
  764. package/node_modules/@lix-js/sdk/dist/sync/sync-process.d.ts.map +0 -1
  765. package/node_modules/@lix-js/sdk/dist/sync/sync-process.js +0 -74
  766. package/node_modules/@lix-js/sdk/dist/sync/sync-process.js.map +0 -1
  767. package/node_modules/@lix-js/sdk/dist/sync/sync-process.test.d.ts +0 -2
  768. package/node_modules/@lix-js/sdk/dist/sync/sync-process.test.d.ts.map +0 -1
  769. package/node_modules/@lix-js/sdk/dist/sync/sync-process.test.js +0 -243
  770. package/node_modules/@lix-js/sdk/dist/sync/sync-process.test.js.map +0 -1
  771. package/node_modules/@lix-js/sdk/dist/version/create-version.d.ts +0 -27
  772. package/node_modules/@lix-js/sdk/dist/version/create-version.d.ts.map +0 -1
  773. package/node_modules/@lix-js/sdk/dist/version/create-version.js +0 -74
  774. package/node_modules/@lix-js/sdk/dist/version/create-version.js.map +0 -1
  775. package/node_modules/@lix-js/sdk/dist/version/create-version.test.d.ts +0 -2
  776. package/node_modules/@lix-js/sdk/dist/version/create-version.test.d.ts.map +0 -1
  777. package/node_modules/@lix-js/sdk/dist/version/create-version.test.js +0 -126
  778. package/node_modules/@lix-js/sdk/dist/version/create-version.test.js.map +0 -1
  779. package/node_modules/@lix-js/sdk/dist/version/index.d.ts +0 -8
  780. package/node_modules/@lix-js/sdk/dist/version/index.d.ts.map +0 -1
  781. package/node_modules/@lix-js/sdk/dist/version/index.js +0 -8
  782. package/node_modules/@lix-js/sdk/dist/version/index.js.map +0 -1
  783. package/node_modules/@lix-js/sdk/dist/version/merge-version.d.ts +0 -8
  784. package/node_modules/@lix-js/sdk/dist/version/merge-version.d.ts.map +0 -1
  785. package/node_modules/@lix-js/sdk/dist/version/merge-version.js +0 -67
  786. package/node_modules/@lix-js/sdk/dist/version/merge-version.js.map +0 -1
  787. package/node_modules/@lix-js/sdk/dist/version/merge-version.test.d.ts +0 -2
  788. package/node_modules/@lix-js/sdk/dist/version/merge-version.test.d.ts.map +0 -1
  789. package/node_modules/@lix-js/sdk/dist/version/merge-version.test.js +0 -434
  790. package/node_modules/@lix-js/sdk/dist/version/merge-version.test.js.map +0 -1
  791. package/node_modules/@lix-js/sdk/dist/version/switch-version.d.ts +0 -27
  792. package/node_modules/@lix-js/sdk/dist/version/switch-version.d.ts.map +0 -1
  793. package/node_modules/@lix-js/sdk/dist/version/switch-version.js +0 -91
  794. package/node_modules/@lix-js/sdk/dist/version/switch-version.js.map +0 -1
  795. package/node_modules/@lix-js/sdk/dist/version/switch-version.test.d.ts +0 -2
  796. package/node_modules/@lix-js/sdk/dist/version/switch-version.test.d.ts.map +0 -1
  797. package/node_modules/@lix-js/sdk/dist/version/switch-version.test.js +0 -227
  798. package/node_modules/@lix-js/sdk/dist/version/switch-version.test.js.map +0 -1
  799. package/node_modules/@lix-js/sdk/dist/version/update-changes-in-version.d.ts +0 -13
  800. package/node_modules/@lix-js/sdk/dist/version/update-changes-in-version.d.ts.map +0 -1
  801. package/node_modules/@lix-js/sdk/dist/version/update-changes-in-version.js +0 -36
  802. package/node_modules/@lix-js/sdk/dist/version/update-changes-in-version.js.map +0 -1
  803. package/node_modules/@lix-js/sdk/dist/version/update-changes-in-version.test.d.ts +0 -2
  804. package/node_modules/@lix-js/sdk/dist/version/update-changes-in-version.test.d.ts.map +0 -1
  805. package/node_modules/@lix-js/sdk/dist/version/update-changes-in-version.test.js +0 -323
  806. package/node_modules/@lix-js/sdk/dist/version/update-changes-in-version.test.js.map +0 -1
  807. package/node_modules/@lix-js/sdk/package.json +0 -52
  808. package/node_modules/@lix-js/sdk/src/account/create-account.test.ts +0 -26
  809. package/node_modules/@lix-js/sdk/src/account/create-account.ts +0 -26
  810. package/node_modules/@lix-js/sdk/src/account/database-schema.test.ts +0 -187
  811. package/node_modules/@lix-js/sdk/src/account/database-schema.ts +0 -58
  812. package/node_modules/@lix-js/sdk/src/account/index.ts +0 -3
  813. package/node_modules/@lix-js/sdk/src/account/switch-account.test.ts +0 -63
  814. package/node_modules/@lix-js/sdk/src/account/switch-account.ts +0 -39
  815. package/node_modules/@lix-js/sdk/src/change/apply-changes.test.ts +0 -268
  816. package/node_modules/@lix-js/sdk/src/change/apply-changes.ts +0 -114
  817. package/node_modules/@lix-js/sdk/src/change/create-change.test.ts +0 -296
  818. package/node_modules/@lix-js/sdk/src/change/create-change.ts +0 -129
  819. package/node_modules/@lix-js/sdk/src/change/index.ts +0 -2
  820. package/node_modules/@lix-js/sdk/src/change/mock-change.ts +0 -21
  821. package/node_modules/@lix-js/sdk/src/change-conflict/create-change-conflict.test.ts +0 -173
  822. package/node_modules/@lix-js/sdk/src/change-conflict/create-change-conflict.ts +0 -105
  823. package/node_modules/@lix-js/sdk/src/change-conflict/detect-change-conflicts.test.ts +0 -215
  824. package/node_modules/@lix-js/sdk/src/change-conflict/detect-change-conflicts.ts +0 -65
  825. package/node_modules/@lix-js/sdk/src/change-conflict/detect-diverging-entity-conflict.test.ts +0 -228
  826. package/node_modules/@lix-js/sdk/src/change-conflict/detect-diverging-entity-conflict.ts +0 -82
  827. package/node_modules/@lix-js/sdk/src/change-conflict/garbage-collect-change-conflicts.test.ts +0 -219
  828. package/node_modules/@lix-js/sdk/src/change-conflict/garbage-collect-change-conflicts.ts +0 -96
  829. package/node_modules/@lix-js/sdk/src/change-conflict/index.ts +0 -3
  830. package/node_modules/@lix-js/sdk/src/change-conflict/resolve-conflict-by-selecting.test.ts +0 -118
  831. package/node_modules/@lix-js/sdk/src/change-conflict/resolve-conflict-by-selecting.ts +0 -66
  832. package/node_modules/@lix-js/sdk/src/change-conflict/update-change-conflicts.ts +0 -79
  833. package/node_modules/@lix-js/sdk/src/change-schema/README.md +0 -3
  834. package/node_modules/@lix-js/sdk/src/change-schema/index.ts +0 -4
  835. package/node_modules/@lix-js/sdk/src/change-schema/types.test-d.ts +0 -52
  836. package/node_modules/@lix-js/sdk/src/change-schema/types.ts +0 -53
  837. package/node_modules/@lix-js/sdk/src/change-set/change-set-element-in-symmetric-difference.test.ts +0 -128
  838. package/node_modules/@lix-js/sdk/src/change-set/change-set-element-in-symmetric-difference.ts +0 -52
  839. package/node_modules/@lix-js/sdk/src/change-set/create-change-set.test.ts +0 -43
  840. package/node_modules/@lix-js/sdk/src/change-set/create-change-set.ts +0 -41
  841. package/node_modules/@lix-js/sdk/src/change-set/index.ts +0 -2
  842. package/node_modules/@lix-js/sdk/src/database/apply-schema.ts +0 -270
  843. package/node_modules/@lix-js/sdk/src/database/execute-sync.test.ts +0 -152
  844. package/node_modules/@lix-js/sdk/src/database/execute-sync.ts +0 -47
  845. package/node_modules/@lix-js/sdk/src/database/index.ts +0 -4
  846. package/node_modules/@lix-js/sdk/src/database/init-db.test.ts +0 -628
  847. package/node_modules/@lix-js/sdk/src/database/init-db.ts +0 -111
  848. package/node_modules/@lix-js/sdk/src/database/kysely-plugin/parse-jsonb-plugin-v1.test.ts +0 -204
  849. package/node_modules/@lix-js/sdk/src/database/kysely-plugin/parse-jsonb-plugin-v1.ts +0 -55
  850. package/node_modules/@lix-js/sdk/src/database/kysely-plugin/parse-jsonb-plugin-v2.no_test.ts +0 -204
  851. package/node_modules/@lix-js/sdk/src/database/kysely-plugin/parse-jsonb-plugin-v2.ts +0 -194
  852. package/node_modules/@lix-js/sdk/src/database/kysely-plugin/serialize-jsonb-plugin.test.ts +0 -132
  853. package/node_modules/@lix-js/sdk/src/database/kysely-plugin/serialize-jsonb-plugin.ts +0 -122
  854. package/node_modules/@lix-js/sdk/src/database/mutation-log/database-schema.ts +0 -126
  855. package/node_modules/@lix-js/sdk/src/database/mutation-log/lix-session.ts +0 -19
  856. package/node_modules/@lix-js/sdk/src/database/nano-id.test.ts +0 -15
  857. package/node_modules/@lix-js/sdk/src/database/nano-id.ts +0 -72
  858. package/node_modules/@lix-js/sdk/src/database/schema.ts +0 -273
  859. package/node_modules/@lix-js/sdk/src/discussion/create-comment.ts +0 -18
  860. package/node_modules/@lix-js/sdk/src/discussion/create-discussion.test.ts +0 -45
  861. package/node_modules/@lix-js/sdk/src/discussion/create-discussion.ts +0 -48
  862. package/node_modules/@lix-js/sdk/src/discussion/index.ts +0 -2
  863. package/node_modules/@lix-js/sdk/src/file/index.ts +0 -1
  864. package/node_modules/@lix-js/sdk/src/file/validate-file-path.test.ts +0 -44
  865. package/node_modules/@lix-js/sdk/src/file/validate-file-path.ts +0 -60
  866. package/node_modules/@lix-js/sdk/src/file-queue/file-handlers.ts +0 -273
  867. package/node_modules/@lix-js/sdk/src/file-queue/file-queue-process.test.ts +0 -457
  868. package/node_modules/@lix-js/sdk/src/file-queue/file-queue-process.ts +0 -101
  869. package/node_modules/@lix-js/sdk/src/file-queue/file-queue-settled.test.ts +0 -56
  870. package/node_modules/@lix-js/sdk/src/file-queue/file-queue-settled.ts +0 -31
  871. package/node_modules/@lix-js/sdk/src/file-queue/index.ts +0 -1
  872. package/node_modules/@lix-js/sdk/src/file-queue/with-skip-file-queue.test.ts +0 -158
  873. package/node_modules/@lix-js/sdk/src/file-queue/with-skip-file-queue.ts +0 -33
  874. package/node_modules/@lix-js/sdk/src/index.ts +0 -16
  875. package/node_modules/@lix-js/sdk/src/key-value/database-schema.test.ts +0 -140
  876. package/node_modules/@lix-js/sdk/src/key-value/database-schema.ts +0 -66
  877. package/node_modules/@lix-js/sdk/src/lix/close-lix.ts +0 -8
  878. package/node_modules/@lix-js/sdk/src/lix/index.ts +0 -7
  879. package/node_modules/@lix-js/sdk/src/lix/merge.get-leaf-changes-only-in-source.test.ts +0 -143
  880. package/node_modules/@lix-js/sdk/src/lix/merge.get-leaf-changes-only-in-source.ts +0 -46
  881. package/node_modules/@lix-js/sdk/src/lix/merge.test.ts +0 -858
  882. package/node_modules/@lix-js/sdk/src/lix/merge.ts +0 -244
  883. package/node_modules/@lix-js/sdk/src/lix/new-lix.test.ts +0 -23
  884. package/node_modules/@lix-js/sdk/src/lix/new-lix.ts +0 -29
  885. package/node_modules/@lix-js/sdk/src/lix/open-lix-in-memory.test.ts +0 -34
  886. package/node_modules/@lix-js/sdk/src/lix/open-lix-in-memory.ts +0 -28
  887. package/node_modules/@lix-js/sdk/src/lix/open-lix.test.ts +0 -45
  888. package/node_modules/@lix-js/sdk/src/lix/open-lix.ts +0 -86
  889. package/node_modules/@lix-js/sdk/src/lix/to-blob.ts +0 -14
  890. package/node_modules/@lix-js/sdk/src/own-change-control/apply-own-change.test.ts +0 -361
  891. package/node_modules/@lix-js/sdk/src/own-change-control/apply-own-change.ts +0 -110
  892. package/node_modules/@lix-js/sdk/src/own-change-control/change-controlled-tables.test.ts +0 -69
  893. package/node_modules/@lix-js/sdk/src/own-change-control/change-controlled-tables.ts +0 -102
  894. package/node_modules/@lix-js/sdk/src/own-change-control/database-triggers.test.ts +0 -259
  895. package/node_modules/@lix-js/sdk/src/own-change-control/database-triggers.ts +0 -189
  896. package/node_modules/@lix-js/sdk/src/own-change-control/index.ts +0 -1
  897. package/node_modules/@lix-js/sdk/src/own-change-control/with-skip-own-change-control.test.ts +0 -57
  898. package/node_modules/@lix-js/sdk/src/own-change-control/with-skip-own-change-control.ts +0 -34
  899. package/node_modules/@lix-js/sdk/src/plugin/index.ts +0 -6
  900. package/node_modules/@lix-js/sdk/src/plugin/lix-plugin.test-d.ts +0 -45
  901. package/node_modules/@lix-js/sdk/src/plugin/lix-plugin.ts +0 -128
  902. package/node_modules/@lix-js/sdk/src/plugin/load-plugin.ts +0 -28
  903. package/node_modules/@lix-js/sdk/src/plugin/with-transaction.ts +0 -22
  904. package/node_modules/@lix-js/sdk/src/query-filter/change-conflict-in-version.test.ts +0 -62
  905. package/node_modules/@lix-js/sdk/src/query-filter/change-conflict-in-version.ts +0 -25
  906. package/node_modules/@lix-js/sdk/src/query-filter/change-has-label.test.ts +0 -52
  907. package/node_modules/@lix-js/sdk/src/query-filter/change-has-label.ts +0 -41
  908. package/node_modules/@lix-js/sdk/src/query-filter/change-in-version.test.ts +0 -82
  909. package/node_modules/@lix-js/sdk/src/query-filter/change-in-version.ts +0 -31
  910. package/node_modules/@lix-js/sdk/src/query-filter/change-is-leaf-in-version.test.ts +0 -77
  911. package/node_modules/@lix-js/sdk/src/query-filter/change-is-leaf-in-version.ts +0 -36
  912. package/node_modules/@lix-js/sdk/src/query-filter/change-is-leaf-of.bench.ts +0 -175
  913. package/node_modules/@lix-js/sdk/src/query-filter/change-is-leaf-of.test.ts +0 -84
  914. package/node_modules/@lix-js/sdk/src/query-filter/change-is-leaf-of.ts +0 -46
  915. package/node_modules/@lix-js/sdk/src/query-filter/change-is-leaf.test.ts +0 -140
  916. package/node_modules/@lix-js/sdk/src/query-filter/change-is-leaf.ts +0 -25
  917. package/node_modules/@lix-js/sdk/src/query-filter/change-is-lowest-common-ancestor-of.test.ts +0 -173
  918. package/node_modules/@lix-js/sdk/src/query-filter/change-is-lowest-common-ancestor-of.ts +0 -57
  919. package/node_modules/@lix-js/sdk/src/query-filter/change-set-has-label.test.ts +0 -50
  920. package/node_modules/@lix-js/sdk/src/query-filter/change-set-has-label.ts +0 -36
  921. package/node_modules/@lix-js/sdk/src/query-filter/index.ts +0 -8
  922. package/node_modules/@lix-js/sdk/src/query-filter/version-change-in-difference.test.ts +0 -105
  923. package/node_modules/@lix-js/sdk/src/query-filter/version-change-in-difference.ts +0 -37
  924. package/node_modules/@lix-js/sdk/src/query-filter/version-change-in-symmetric-difference.test.ts +0 -104
  925. package/node_modules/@lix-js/sdk/src/query-filter/version-change-in-symmetric-difference.ts +0 -52
  926. package/node_modules/@lix-js/sdk/src/server-api-handler/create-server-api-handler.ts +0 -84
  927. package/node_modules/@lix-js/sdk/src/server-api-handler/environment/create-in-memory-environment.test.ts +0 -131
  928. package/node_modules/@lix-js/sdk/src/server-api-handler/environment/create-in-memory-environment.ts +0 -115
  929. package/node_modules/@lix-js/sdk/src/server-api-handler/environment/environment.ts +0 -43
  930. package/node_modules/@lix-js/sdk/src/server-api-handler/index.ts +0 -5
  931. package/node_modules/@lix-js/sdk/src/server-api-handler/routes/get-v1.test.ts +0 -147
  932. package/node_modules/@lix-js/sdk/src/server-api-handler/routes/get-v1.ts +0 -61
  933. package/node_modules/@lix-js/sdk/src/server-api-handler/routes/new-v1.test.ts +0 -103
  934. package/node_modules/@lix-js/sdk/src/server-api-handler/routes/new-v1.ts +0 -46
  935. package/node_modules/@lix-js/sdk/src/server-api-handler/routes/pull-v1.test.ts +0 -201
  936. package/node_modules/@lix-js/sdk/src/server-api-handler/routes/pull-v1.ts +0 -57
  937. package/node_modules/@lix-js/sdk/src/server-api-handler/routes/push-v1.test.ts +0 -302
  938. package/node_modules/@lix-js/sdk/src/server-api-handler/routes/push-v1.ts +0 -180
  939. package/node_modules/@lix-js/sdk/src/snapshot/create-snapshot.test.ts +0 -68
  940. package/node_modules/@lix-js/sdk/src/snapshot/create-snapshot.ts +0 -40
  941. package/node_modules/@lix-js/sdk/src/snapshot/index.ts +0 -2
  942. package/node_modules/@lix-js/sdk/src/snapshot/json-sha-256.test.ts +0 -12
  943. package/node_modules/@lix-js/sdk/src/snapshot/json-sha-256.ts +0 -35
  944. package/node_modules/@lix-js/sdk/src/snapshot/mock-json-snapshot.ts +0 -14
  945. package/node_modules/@lix-js/sdk/src/sync/get-diffing-rows.ts +0 -96
  946. package/node_modules/@lix-js/sdk/src/sync/merge-state.ts +0 -310
  947. package/node_modules/@lix-js/sdk/src/sync/pull-from-server.test.ts +0 -425
  948. package/node_modules/@lix-js/sdk/src/sync/pull-from-server.ts +0 -144
  949. package/node_modules/@lix-js/sdk/src/sync/push-to-server.test.ts +0 -391
  950. package/node_modules/@lix-js/sdk/src/sync/push-to-server.ts +0 -47
  951. package/node_modules/@lix-js/sdk/src/sync/sync-process.test.ts +0 -321
  952. package/node_modules/@lix-js/sdk/src/sync/sync-process.ts +0 -85
  953. package/node_modules/@lix-js/sdk/src/version/create-version.test.ts +0 -149
  954. package/node_modules/@lix-js/sdk/src/version/create-version.ts +0 -88
  955. package/node_modules/@lix-js/sdk/src/version/index.ts +0 -8
  956. package/node_modules/@lix-js/sdk/src/version/merge-version.test.ts +0 -530
  957. package/node_modules/@lix-js/sdk/src/version/merge-version.ts +0 -88
  958. package/node_modules/@lix-js/sdk/src/version/switch-version.test.ts +0 -292
  959. package/node_modules/@lix-js/sdk/src/version/switch-version.ts +0 -110
  960. package/node_modules/@lix-js/sdk/src/version/update-changes-in-version.test.ts +0 -371
  961. package/node_modules/@lix-js/sdk/src/version/update-changes-in-version.ts +0 -47
  962. package/node_modules/sqlite-wasm-kysely/LICENSE +0 -21
  963. package/node_modules/sqlite-wasm-kysely/README.md +0 -11
  964. package/node_modules/sqlite-wasm-kysely/dist/dialect.d.ts +0 -11
  965. package/node_modules/sqlite-wasm-kysely/dist/dialect.js +0 -13
  966. package/node_modules/sqlite-wasm-kysely/dist/dialect.js.map +0 -1
  967. package/node_modules/sqlite-wasm-kysely/dist/index.d.ts +0 -2
  968. package/node_modules/sqlite-wasm-kysely/dist/index.js +0 -3
  969. package/node_modules/sqlite-wasm-kysely/dist/index.js.map +0 -1
  970. package/node_modules/sqlite-wasm-kysely/dist/kysely/ConnectionMutex.d.ts +0 -5
  971. package/node_modules/sqlite-wasm-kysely/dist/kysely/ConnectionMutex.js +0 -34
  972. package/node_modules/sqlite-wasm-kysely/dist/kysely/ConnectionMutex.js.map +0 -1
  973. package/node_modules/sqlite-wasm-kysely/dist/kysely/SqliteWasmConnection.d.ts +0 -8
  974. package/node_modules/sqlite-wasm-kysely/dist/kysely/SqliteWasmConnection.js +0 -57
  975. package/node_modules/sqlite-wasm-kysely/dist/kysely/SqliteWasmConnection.js.map +0 -1
  976. package/node_modules/sqlite-wasm-kysely/dist/kysely/SqliteWasmDialectConfig.d.ts +0 -18
  977. package/node_modules/sqlite-wasm-kysely/dist/kysely/SqliteWasmDialectConfig.js +0 -2
  978. package/node_modules/sqlite-wasm-kysely/dist/kysely/SqliteWasmDialectConfig.js.map +0 -1
  979. package/node_modules/sqlite-wasm-kysely/dist/kysely/SqliteWasmDriver.d.ts +0 -13
  980. package/node_modules/sqlite-wasm-kysely/dist/kysely/SqliteWasmDriver.js +0 -57
  981. package/node_modules/sqlite-wasm-kysely/dist/kysely/SqliteWasmDriver.js.map +0 -1
  982. package/node_modules/sqlite-wasm-kysely/dist/kysely/index.d.ts +0 -4
  983. package/node_modules/sqlite-wasm-kysely/dist/kysely/index.js +0 -4
  984. package/node_modules/sqlite-wasm-kysely/dist/kysely/index.js.map +0 -1
  985. package/node_modules/sqlite-wasm-kysely/dist/kysely/sqliteModule.d.ts +0 -3
  986. package/node_modules/sqlite-wasm-kysely/dist/kysely/sqliteModule.js +0 -5
  987. package/node_modules/sqlite-wasm-kysely/dist/kysely/sqliteModule.js.map +0 -1
  988. package/node_modules/sqlite-wasm-kysely/dist/util/contentFromDatabase.d.ts +0 -9
  989. package/node_modules/sqlite-wasm-kysely/dist/util/contentFromDatabase.js +0 -12
  990. package/node_modules/sqlite-wasm-kysely/dist/util/contentFromDatabase.js.map +0 -1
  991. package/node_modules/sqlite-wasm-kysely/dist/util/createInMemoryDatabase.d.ts +0 -3
  992. package/node_modules/sqlite-wasm-kysely/dist/util/createInMemoryDatabase.js +0 -22
  993. package/node_modules/sqlite-wasm-kysely/dist/util/createInMemoryDatabase.js.map +0 -1
  994. package/node_modules/sqlite-wasm-kysely/dist/util/importDatabase.d.ts +0 -7
  995. package/node_modules/sqlite-wasm-kysely/dist/util/importDatabase.js +0 -15
  996. package/node_modules/sqlite-wasm-kysely/dist/util/importDatabase.js.map +0 -1
  997. package/node_modules/sqlite-wasm-kysely/dist/util/index.d.ts +0 -5
  998. package/node_modules/sqlite-wasm-kysely/dist/util/index.js +0 -5
  999. package/node_modules/sqlite-wasm-kysely/dist/util/index.js.map +0 -1
  1000. package/node_modules/sqlite-wasm-kysely/dist/util/loadDatabaseInMemory.d.ts +0 -1
  1001. package/node_modules/sqlite-wasm-kysely/dist/util/loadDatabaseInMemory.js +0 -13
  1002. package/node_modules/sqlite-wasm-kysely/dist/util/loadDatabaseInMemory.js.map +0 -1
  1003. package/node_modules/sqlite-wasm-kysely/dist/util/sqliteWasmBinary.d.ts +0 -7
  1004. package/node_modules/sqlite-wasm-kysely/dist/util/sqliteWasmBinary.js +0 -17
  1005. package/node_modules/sqlite-wasm-kysely/dist/util/sqliteWasmBinary.js.map +0 -1
  1006. package/node_modules/sqlite-wasm-kysely/package.json +0 -34
  1007. package/node_modules/sqlite-wasm-kysely/src/dialect.ts +0 -15
  1008. package/node_modules/sqlite-wasm-kysely/src/index.ts +0 -2
  1009. package/node_modules/sqlite-wasm-kysely/src/kysely/ConnectionMutex.ts +0 -23
  1010. package/node_modules/sqlite-wasm-kysely/src/kysely/SqliteWasmConnection.ts +0 -57
  1011. package/node_modules/sqlite-wasm-kysely/src/kysely/SqliteWasmDialectConfig.ts +0 -19
  1012. package/node_modules/sqlite-wasm-kysely/src/kysely/SqliteWasmDriver.ts +0 -58
  1013. package/node_modules/sqlite-wasm-kysely/src/kysely/index.ts +0 -4
  1014. package/node_modules/sqlite-wasm-kysely/src/kysely/sqliteModule.ts +0 -7
  1015. package/node_modules/sqlite-wasm-kysely/src/util/contentFromDatabase.ts +0 -13
  1016. package/node_modules/sqlite-wasm-kysely/src/util/createInMemoryDatabase.ts +0 -30
  1017. package/node_modules/sqlite-wasm-kysely/src/util/importDatabase.ts +0 -34
  1018. package/node_modules/sqlite-wasm-kysely/src/util/index.ts +0 -5
  1019. package/node_modules/sqlite-wasm-kysely/src/util/loadDatabaseInMemory.ts +0 -13
  1020. package/node_modules/sqlite-wasm-kysely/src/util/sqliteWasmBinary.ts +0 -20
  1021. package/src/project/state/README.md +0 -22
  1022. package/src/project/state/id$.test.ts +0 -40
  1023. package/src/project/state/id$.ts +0 -21
  1024. package/src/project/state/setSettings.test.ts +0 -73
  1025. package/src/project/state/setSettings.ts +0 -19
  1026. package/src/project/state/settings$.test.ts +0 -63
  1027. package/src/project/state/settings$.ts +0 -26
  1028. package/src/project/state/state.test.ts +0 -128
  1029. package/src/project/state/state.ts +0 -94
  1030. package/src/query-utilities/pollQuery.test.ts +0 -88
  1031. package/src/query-utilities/pollQuery.ts +0 -26
@@ -1,5 +1,5 @@
1
1
 
2
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="06ed56aa-293b-5bcc-8b06-9611e0c16b04")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="9753a988-ad27-5056-92c0-c24779eb1720")}catch(e){}}();
3
3
  import { newProject } from "./newProject.js";
4
4
  import { loadProjectInMemory } from "./loadProjectInMemory.js";
5
5
  import {} from "@lix-js/sdk";
@@ -15,8 +15,11 @@ import { upsertBundleNestedMatchByProperties } from "../import-export/upsertBund
15
15
  * that is stored in git.
16
16
  */
17
17
  export async function loadProjectFromDirectory(args) {
18
+ const settingsPath = nodePath.join(args.path, "settings.json");
19
+ const settings = JSON.parse(await args.fs.promises.readFile(settingsPath, "utf8"));
18
20
  const localImport = await importLocalPlugins({
19
21
  fs: args.fs,
22
+ settings,
20
23
  path: args.path,
21
24
  });
22
25
  const providePluginsWithLocalPlugins = [
@@ -30,7 +33,9 @@ export async function loadProjectFromDirectory(args) {
30
33
  const project = await loadProjectInMemory({
31
34
  ...args,
32
35
  providePlugins: providePluginsWithLocalPlugins,
33
- blob: await newProject(),
36
+ blob: await newProject({
37
+ settings,
38
+ }),
34
39
  });
35
40
  await syncLixFsFiles({
36
41
  fs: args.fs,
@@ -38,55 +43,34 @@ export async function loadProjectFromDirectory(args) {
38
43
  lix: project.lix,
39
44
  syncInterval: args.syncInterval,
40
45
  });
41
- const { loadMessagesPlugins, saveMessagesPlugins, importPlugins, exportPlugins, } = categorizePlugins(await project.plugins.get());
46
+ const allPlugins = await project.plugins.get();
47
+ const { loadSavePlugins, importExportPlugins } = categorizePlugins(allPlugins);
42
48
  // TODO i guess we should move this validation logic into sdk2/src/project/loadProject.ts
43
49
  // Two scenarios could arise:
44
50
  // 1. set settings is called from an app - it should detect and reject the setting of settings -> app need to be able to validate before calling set
45
51
  // 2. the settings file loaded from disc here is corrupted -> user has to fix the file on disc
46
- if (loadMessagesPlugins.length > 1 || saveMessagesPlugins.length > 1) {
52
+ if (loadSavePlugins.length > 1) {
47
53
  throw new Error("Max one loadMessages (found: " +
48
- loadMessagesPlugins.length +
54
+ loadSavePlugins.length +
49
55
  ") and one saveMessages plugins (found: " +
50
- saveMessagesPlugins.length +
56
+ loadSavePlugins.length +
51
57
  ") are allowed ");
52
58
  }
53
59
  const importedResourceFileErrors = [];
54
- if ((loadMessagesPlugins.length > 0 || saveMessagesPlugins.length > 0) &&
55
- (exportPlugins.length > 0 || importPlugins.length > 0)) {
56
- throw new Error("Plugins for loadMessages (found: " +
57
- loadMessagesPlugins.length +
58
- ") and saveMessages plugins (found: " +
59
- saveMessagesPlugins.length +
60
- ") must not coexist with import (found: " +
61
- importPlugins.length +
62
- ") or export (found: " +
63
- exportPlugins.length +
64
- ") ");
65
- }
66
- else if (loadMessagesPlugins.length > 1 || saveMessagesPlugins.length > 1) {
67
- throw new Error("Max one loadMessages (found: " +
68
- loadMessagesPlugins.length +
69
- ") and one saveMessages plugins (found: " +
70
- saveMessagesPlugins.length +
71
- ") are allowed ");
72
- }
73
- else if (importPlugins[0]) {
74
- const importer = importPlugins[0];
60
+ // import files from local fs
61
+ for (const plugin of importExportPlugins) {
75
62
  const files = [];
76
- if (importer.toBeImportedFiles) {
77
- const toBeImportedFiles = await importer.toBeImportedFiles({
63
+ if (plugin.toBeImportedFiles) {
64
+ const toBeImportedFiles = await plugin.toBeImportedFiles({
78
65
  settings: await project.settings.get(),
79
66
  });
80
67
  for (const toBeImported of toBeImportedFiles) {
81
68
  const absolute = absolutePathFromProject(args.path, toBeImported.path);
82
69
  try {
83
70
  const data = await args.fs.promises.readFile(absolute);
84
- const name = nodePath.basename(toBeImported.path);
85
71
  files.push({
86
- name,
87
72
  locale: toBeImported.locale,
88
73
  content: data,
89
- pluginKey: importer.key,
90
74
  toBeImportedFilesMetadata: toBeImported.metadata,
91
75
  });
92
76
  }
@@ -103,40 +87,36 @@ export async function loadProjectFromDirectory(args) {
103
87
  }
104
88
  }
105
89
  await project.importFiles({
106
- pluginKey: importer.key,
107
- files: files,
90
+ pluginKey: plugin.key,
91
+ files,
108
92
  });
109
93
  }
110
- else if (loadMessagesPlugins[0] !== undefined) {
111
- // TODO create resource files from loadMessageFn call - to poll?
94
+ for (const plugin of loadSavePlugins) {
112
95
  await loadLegacyMessages({
113
96
  project,
97
+ pluginKey: plugin.key ?? plugin.id,
98
+ loadMessagesFn: plugin.loadMessages,
114
99
  projectPath: args.path,
115
100
  fs: args.fs,
116
- pluginKey: loadMessagesPlugins[0].key ?? loadMessagesPlugins[0].id,
117
- loadMessagesFn: loadMessagesPlugins[0].loadMessages,
118
101
  });
119
102
  }
120
103
  return {
121
104
  ...project,
122
105
  errors: {
123
106
  get: async () => {
124
- const errors = await project.errors.get();
125
- return [
126
- ...withLocallyImportedPluginWarning(errors),
127
- ...localImport.errors,
128
- ...importedResourceFileErrors,
129
- ];
130
- },
131
- subscribe: (callback) => {
132
- return project.errors.subscribe((value) => {
133
- callback([
134
- ...withLocallyImportedPluginWarning(value),
135
- ...localImport.errors,
136
- ...importedResourceFileErrors,
137
- ]);
138
- });
107
+ return [...localImport.errors, ...importedResourceFileErrors];
139
108
  },
109
+ // subscribe: (
110
+ // callback: Parameters<InlangProject["errors"]["subscribe"]>[0]
111
+ // ) => {
112
+ // return project.errors.subscribe((value) => {
113
+ // callback([
114
+ // ...withLocallyImportedPluginWarning(value),
115
+ // ...localImport.errors,
116
+ // ...importedResourceFileErrors,
117
+ // ]);
118
+ // });
119
+ // },
140
120
  },
141
121
  };
142
122
  }
@@ -389,9 +369,12 @@ async function syncLixFsFiles(args) {
389
369
  if (!statesToSync.fsFileStates[path]) {
390
370
  if (lixState.state == "unknown") {
391
371
  // ADD TO FS (6)
392
- args.fs.writeFileSync(
393
- // TODO check platform dependent folder separator
394
- args.path + path, Buffer.from(lixState.content));
372
+ // create directory if not exists
373
+ args.fs.mkdirSync(nodePath.dirname(nodePath.join(args.path, path)), {
374
+ recursive: true,
375
+ });
376
+ // write file
377
+ args.fs.writeFileSync(nodePath.join(args.path, path), Buffer.from(lixState.content));
395
378
  statesToSync.fsFileStates[path] = {
396
379
  state: "known",
397
380
  content: lixState.content,
@@ -449,9 +432,12 @@ async function syncLixFsFiles(args) {
449
432
  return;
450
433
  }
451
434
  async function upsertFileInLix(args, path, data) {
452
- // file is in known state with lix - means we have only changes on the fs - easy
453
- // NOTE we use file_internal for now see: https://linear.app/opral/issue/LIXDK-102/re-visit-simplifying-the-change-queue-implementation#comment-65eb3485
454
- // This means we don't see changes for the file we update via this method!
435
+ // force posix path when upserting into lix
436
+ // https://github.com/opral/inlang-sdk/issues/229
437
+ let posixPath = path.split(nodePath.win32.sep).join(nodePath.posix.sep);
438
+ if (posixPath.startsWith("/") === false) {
439
+ posixPath = "/" + posixPath;
440
+ }
455
441
  await args.lix.db
456
442
  .insertInto("file") // change queue
457
443
  .values({
@@ -461,18 +447,25 @@ async function upsertFileInLix(args, path, data) {
461
447
  .onConflict((oc) => oc.column("path").doUpdateSet({ data: new Uint8Array(data) }))
462
448
  .execute();
463
449
  }
464
- // TODO i guess we should move this validation logic into sdk2/src/project/loadProject.ts
450
+ /**
451
+ * Filters legacy load and save messages plugins.
452
+ *
453
+ * Legacy plugins are plugins that implement loadMessages and saveMessages but not importFiles and exportFiles.
454
+ */
465
455
  function categorizePlugins(plugins) {
466
- const loadMessagesPlugins = plugins.filter((plugin) => plugin.loadMessages !== undefined);
467
- const saveMessagesPlugins = plugins.filter((plugin) => plugin.saveMessages !== undefined);
468
- const importPlugins = plugins.filter((plugin) => plugin.importFiles !== undefined && plugin.toBeImportedFiles !== undefined);
469
- const exportPlugins = plugins.filter((plugin) => plugin.exportFiles !== undefined);
470
- return {
471
- loadMessagesPlugins,
472
- saveMessagesPlugins,
473
- importPlugins,
474
- exportPlugins,
475
- };
456
+ const loadSavePlugins = [];
457
+ const importExportPlugins = [];
458
+ for (const plugin of plugins) {
459
+ if (plugin.loadMessages &&
460
+ plugin.saveMessages &&
461
+ !(plugin.importFiles && plugin.exportFiles)) {
462
+ loadSavePlugins.push(plugin);
463
+ }
464
+ else if (plugin.importFiles || plugin.exportFiles) {
465
+ importExportPlugins.push(plugin);
466
+ }
467
+ }
468
+ return { loadSavePlugins, importExportPlugins };
476
469
  }
477
470
  /**
478
471
  * Imports local plugins for backwards compatibility.
@@ -482,9 +475,10 @@ function categorizePlugins(plugins) {
482
475
  async function importLocalPlugins(args) {
483
476
  const errors = [];
484
477
  const locallyImportedPlugins = [];
485
- const settingsPath = nodePath.join(args.path, "settings.json");
486
- const settings = JSON.parse(await args.fs.promises.readFile(settingsPath, "utf8"));
487
- for (const module of settings.modules ?? []) {
478
+ for (const module of args.settings.modules ?? []) {
479
+ if (module.startsWith("http")) {
480
+ continue;
481
+ }
488
482
  const modulePath = absolutePathFromProject(args.path, module);
489
483
  try {
490
484
  let moduleAsText = await args.fs.promises.readFile(modulePath, "utf8");
@@ -510,21 +504,6 @@ async function importLocalPlugins(args) {
510
504
  locallyImportedPlugins,
511
505
  };
512
506
  }
513
- function withLocallyImportedPluginWarning(errors) {
514
- return errors.map((error) => {
515
- if (error instanceof PluginImportError &&
516
- error.plugin.startsWith("http") === false) {
517
- return new WarningLocalPluginImport(error.plugin);
518
- }
519
- return error;
520
- });
521
- }
522
- export class WarningLocalPluginImport extends Error {
523
- constructor(module) {
524
- super(`Plugin ${module} is imported from a local path. This will work fine in dev tools like Sherlock or Paraglide JS but is not portable. Web apps like Fink or Parrot won't be able to import this plugin. It is recommended to use an http url to import plugins. The plugins are cached locally and will be available offline.`);
525
- this.name = "WarningLocalImport";
526
- }
527
- }
528
507
  export class WarningDeprecatedLintRule extends Error {
529
508
  constructor(module) {
530
509
  super(`The lint rule ${module} is deprecated. Please remove the lint rule from the settings. Lint rules are interim built into apps and will be succeeded by more generilizable lix validation rules.`);
@@ -590,4 +569,4 @@ export class ResourceFileImportError extends Error {
590
569
  }
591
570
  }
592
571
  //# sourceMappingURL=loadProjectFromDirectory.js.map
593
- //# debugId=06ed56aa-293b-5bcc-8b06-9611e0c16b04
572
+ //# debugId=9753a988-ad27-5056-92c0-c24779eb1720
@@ -1 +1 @@
1
- {"version":3,"file":"loadProjectFromDirectory.js","sources":["project/loadProjectFromDirectory.ts"],"sourceRoot":"/","sourcesContent":["import { newProject } from \"./newProject.js\";\nimport { loadProjectInMemory } from \"./loadProjectInMemory.js\";\nimport { type Lix } from \"@lix-js/sdk\";\n\nimport fs from \"node:fs\";\n\nimport nodePath from \"node:path\";\nimport type {\n\tInlangPlugin,\n\tNodeFsPromisesSubsetLegacy,\n} from \"../plugin/schema.js\";\nimport { fromMessageV1 } from \"../json-schema/old-v1-message/fromMessageV1.js\";\nimport type { ProjectSettings } from \"../json-schema/settings.js\";\nimport type { PreprocessPluginBeforeImportFunction } from \"../plugin/importPlugins.js\";\nimport { PluginImportError } from \"../plugin/errors.js\";\nimport type { InlangProject } from \"./api.js\";\nimport { upsertBundleNestedMatchByProperties } from \"../import-export/upsertBundleNestedMatchByProperties.js\";\n\n/**\n * Loads a project from a directory.\n *\n * Main use case are dev tools that want to load a project from a directory\n * that is stored in git.\n */\nexport async function loadProjectFromDirectory(\n\targs: { path: string; fs: typeof fs; syncInterval?: number } & Omit<\n\t\tParameters<typeof loadProjectInMemory>[0],\n\t\t\"blob\"\n\t>\n) {\n\tconst localImport = await importLocalPlugins({\n\t\tfs: args.fs,\n\t\tpath: args.path,\n\t});\n\n\tconst providePluginsWithLocalPlugins = [\n\t\t...(args.providePlugins ?? []),\n\t\t...localImport.locallyImportedPlugins,\n\t];\n\n\t// TODO call tempProject.lix.settled() to wait for the new settings file, and remove reload of the proejct as soon as reactive settings has landed\n\t// NOTE: we need to ensure two things:\n\t// 1. settled needs to include the changes from the copyFiles call\n\t// 2. the changes created from the copyFiles call need to be realized and lead to a signal on the settings\n\tconst project = await loadProjectInMemory({\n\t\t...args,\n\t\tprovidePlugins: providePluginsWithLocalPlugins,\n\t\tblob: await newProject(),\n\t});\n\n\tawait syncLixFsFiles({\n\t\tfs: args.fs,\n\t\tpath: args.path,\n\t\tlix: project.lix,\n\t\tsyncInterval: args.syncInterval,\n\t});\n\n\tconst {\n\t\tloadMessagesPlugins,\n\t\tsaveMessagesPlugins,\n\t\timportPlugins,\n\t\texportPlugins,\n\t} = categorizePlugins(await project.plugins.get());\n\n\t// TODO i guess we should move this validation logic into sdk2/src/project/loadProject.ts\n\t// Two scenarios could arise:\n\t// 1. set settings is called from an app - it should detect and reject the setting of settings -> app need to be able to validate before calling set\n\t// 2. the settings file loaded from disc here is corrupted -> user has to fix the file on disc\n\tif (loadMessagesPlugins.length > 1 || saveMessagesPlugins.length > 1) {\n\t\tthrow new Error(\n\t\t\t\"Max one loadMessages (found: \" +\n\t\t\t\tloadMessagesPlugins.length +\n\t\t\t\t\") and one saveMessages plugins (found: \" +\n\t\t\t\tsaveMessagesPlugins.length +\n\t\t\t\t\") are allowed \"\n\t\t);\n\t}\n\tconst importedResourceFileErrors: Error[] = [];\n\n\tif (\n\t\t(loadMessagesPlugins.length > 0 || saveMessagesPlugins.length > 0) &&\n\t\t(exportPlugins.length > 0 || importPlugins.length > 0)\n\t) {\n\t\tthrow new Error(\n\t\t\t\"Plugins for loadMessages (found: \" +\n\t\t\t\tloadMessagesPlugins.length +\n\t\t\t\t\") and saveMessages plugins (found: \" +\n\t\t\t\tsaveMessagesPlugins.length +\n\t\t\t\t\") must not coexist with import (found: \" +\n\t\t\t\timportPlugins.length +\n\t\t\t\t\") or export (found: \" +\n\t\t\t\texportPlugins.length +\n\t\t\t\t\") \"\n\t\t);\n\t} else if (loadMessagesPlugins.length > 1 || saveMessagesPlugins.length > 1) {\n\t\tthrow new Error(\n\t\t\t\"Max one loadMessages (found: \" +\n\t\t\t\tloadMessagesPlugins.length +\n\t\t\t\t\") and one saveMessages plugins (found: \" +\n\t\t\t\tsaveMessagesPlugins.length +\n\t\t\t\t\") are allowed \"\n\t\t);\n\t} else if (importPlugins[0]) {\n\t\tconst importer = importPlugins[0];\n\t\tconst files = [];\n\n\t\tif (importer.toBeImportedFiles) {\n\t\t\tconst toBeImportedFiles = await importer.toBeImportedFiles({\n\t\t\t\tsettings: await project.settings.get(),\n\t\t\t});\n\t\t\tfor (const toBeImported of toBeImportedFiles) {\n\t\t\t\tconst absolute = absolutePathFromProject(args.path, toBeImported.path);\n\t\t\t\ttry {\n\t\t\t\t\tconst data = await args.fs.promises.readFile(absolute);\n\t\t\t\t\tconst name = nodePath.basename(toBeImported.path);\n\t\t\t\t\tfiles.push({\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tlocale: toBeImported.locale,\n\t\t\t\t\t\tcontent: data,\n\t\t\t\t\t\tpluginKey: importer.key,\n\t\t\t\t\t\ttoBeImportedFilesMetadata: toBeImported.metadata,\n\t\t\t\t\t});\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// https://github.com/opral/inlang-sdk/issues/202\n\t\t\t\t\tif ((e as any)?.code === \"ENOENT\") {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\timportedResourceFileErrors.push(\n\t\t\t\t\t\tnew ResourceFileImportError({\n\t\t\t\t\t\t\tcause: e as Error,\n\t\t\t\t\t\t\tpath: toBeImported.path,\n\t\t\t\t\t\t})\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tawait project.importFiles({\n\t\t\tpluginKey: importer.key,\n\t\t\tfiles: files as any,\n\t\t});\n\t} else if (loadMessagesPlugins[0] !== undefined) {\n\t\t// TODO create resource files from loadMessageFn call - to poll?\n\t\tawait loadLegacyMessages({\n\t\t\tproject,\n\t\t\tprojectPath: args.path,\n\t\t\tfs: args.fs,\n\t\t\tpluginKey: loadMessagesPlugins[0].key ?? loadMessagesPlugins[0].id,\n\t\t\tloadMessagesFn: loadMessagesPlugins[0].loadMessages,\n\t\t});\n\t}\n\n\treturn {\n\t\t...project,\n\t\terrors: {\n\t\t\tget: async () => {\n\t\t\t\tconst errors = await project.errors.get();\n\t\t\t\treturn [\n\t\t\t\t\t...withLocallyImportedPluginWarning(errors),\n\t\t\t\t\t...localImport.errors,\n\t\t\t\t\t...importedResourceFileErrors,\n\t\t\t\t];\n\t\t\t},\n\t\t\tsubscribe: (\n\t\t\t\tcallback: Parameters<InlangProject[\"errors\"][\"subscribe\"]>[0]\n\t\t\t) => {\n\t\t\t\treturn project.errors.subscribe((value) => {\n\t\t\t\t\tcallback([\n\t\t\t\t\t\t...withLocallyImportedPluginWarning(value),\n\t\t\t\t\t\t...localImport.errors,\n\t\t\t\t\t\t...importedResourceFileErrors,\n\t\t\t\t\t]);\n\t\t\t\t});\n\t\t\t},\n\t\t},\n\t};\n}\n\nasync function loadLegacyMessages(args: {\n\tproject: Awaited<ReturnType<typeof loadProjectInMemory>>;\n\tpluginKey: NonNullable<InlangPlugin[\"key\"] | InlangPlugin[\"id\"]>;\n\tloadMessagesFn: Required<InlangPlugin>[\"loadMessages\"];\n\tprojectPath: string;\n\tfs: typeof fs;\n}) {\n\tconst loadedLegacyMessages = await args.loadMessagesFn({\n\t\tsettings: await args.project.settings.get(),\n\t\t// @ts-expect-error - type mismatch\n\t\tnodeishFs: withAbsolutePaths(args.fs.promises, args.projectPath),\n\t});\n\tconst upsertQueries = [];\n\n\tfor (const legacyMessage of loadedLegacyMessages) {\n\t\tconst messageBundle = fromMessageV1(legacyMessage);\n\n\t\tupsertQueries.push(\n\t\t\tupsertBundleNestedMatchByProperties(args.project.db, messageBundle)\n\t\t);\n\t}\n\n\treturn await Promise.all(upsertQueries);\n}\n\ntype FsFileState = Record<\n\tstring,\n\t{\n\t\t/*mtime: number, hash: string, */ content: ArrayBuffer;\n\t\tstate: \"known\" | \"unknown\" | \"updated\" | \"gone\";\n\t}\n>;\n\nfunction arrayBuffersEqual(a: ArrayBuffer, b: ArrayBuffer) {\n\tif (a.byteLength !== b.byteLength) return false;\n\n\t// Create views for byte-by-byte comparison\n\tconst view1 = new Uint8Array(a);\n\tconst view2 = new Uint8Array(b);\n\n\t// Compare each byte\n\tfor (const [i, element] of view1.entries()) {\n\t\tif (element !== view2[i]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\n/**\n * Watches a directory and copies files into lix, keeping them in sync.\n */\nasync function syncLixFsFiles(args: {\n\tfs: typeof fs;\n\tpath: string;\n\tlix: Lix;\n\tsyncInterval?: number;\n}) {\n\t// NOTE this function is async - while it runs 100% sync in the naiv implementation - we may want to change to an async version to optimize\n\tasync function checkFsStateRecursive(\n\t\tdirPath: string,\n\t\tcurrentState: FsFileState\n\t) {\n\t\tconst entries = args.fs.readdirSync(dirPath, { withFileTypes: true });\n\n\t\tfor (const entry of entries) {\n\t\t\tconst fullPath = nodePath.join(dirPath, entry.name);\n\t\t\tif (entry.isDirectory()) {\n\t\t\t\tcheckFsStateRecursive(fullPath, currentState);\n\t\t\t} else {\n\t\t\t\t// NOTE we could start with comparing the mdate and skip file read completely...\n\t\t\t\tconst data = args.fs.readFileSync(fullPath) as unknown as ArrayBuffer;\n\n\t\t\t\tconst relativePath = \"/\" + nodePath.relative(args.path, fullPath);\n\n\t\t\t\tif (!currentState[relativePath]) {\n\t\t\t\t\tcurrentState[relativePath] = {\n\t\t\t\t\t\tcontent: data,\n\t\t\t\t\t\tstate: \"unknown\",\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\tif (arrayBuffersEqual(currentState[relativePath].content, data)) {\n\t\t\t\t\t\tcurrentState[relativePath].state = \"known\";\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentState[relativePath].state = \"updated\";\n\t\t\t\t\t\tcurrentState[relativePath].content = data;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tasync function checkLixState(currentLixState: FsFileState) {\n\t\t// go through all files in lix and check there state\n\t\tconst filesInLix = await args.lix.db\n\t\t\t.selectFrom(\"file\")\n\t\t\t.where(\"path\", \"not like\", \"%db.sqlite\")\n\t\t\t.selectAll()\n\t\t\t.execute();\n\n\t\tfor (const fileInLix of filesInLix) {\n\t\t\tconst currentStateOfFileInLix = currentLixState[fileInLix.path];\n\t\t\t// NOTE we could start with comparing the mdate and skip file read completely...\n\t\t\tif (!currentStateOfFileInLix) {\n\t\t\t\tcurrentLixState[fileInLix.path] = {\n\t\t\t\t\tcontent: new Uint8Array(fileInLix.data).buffer,\n\t\t\t\t\tstate: \"unknown\",\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tarrayBuffersEqual(\n\t\t\t\t\t\tcurrentStateOfFileInLix.content,\n\t\t\t\t\t\tfileInLix.data.buffer as ArrayBuffer\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tcurrentStateOfFileInLix.state = \"known\";\n\t\t\t\t} else {\n\t\t\t\t\tcurrentStateOfFileInLix.state = \"updated\";\n\t\t\t\t\tcurrentStateOfFileInLix.content = fileInLix.data\n\t\t\t\t\t\t.buffer as ArrayBuffer;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tasync function syncUpFsAndLixFiles(statesToSync: {\n\t\tfsFileStates: FsFileState;\n\t\tlixFileStates: FsFileState;\n\t}) {\n\t\t// for (const file of Object.keys(statesToSync.fsFileStates)) {\n\t\t// \tif (file.includes(\"gitignore\"))\n\t\t// \t\tconsole.log(\n\t\t// \t\t\t\"fsFileStates : \" +\n\t\t// \t\t\t\tfile +\n\t\t// \t\t\t\t\" fs \" +\n\t\t// \t\t\t\tstatesToSync.fsFileStates[file]?.state +\n\t\t// \t\t\t\t\" lix \" +\n\t\t// \t\t\t\tstatesToSync.lixFileStates[file]?.state\n\t\t// \t\t);\n\t\t// }\n\n\t\t// Sync cases:\n\t\t// fs - no state for file | fs - unkonwn | fs - known | fs - updated | fs - gone\n\t\t// lix - no state for file \tNOTHING\t(1)\t | ADD TO LIX(2) | ERROR (3) | ERROR (4) | ERROR (5)\n\t\t// lix - unknown\t\t\t\t\tADD TO FS (6) | USE FS VER.(7) | ERROR (8) | CASE (9) | CASE (10)\n\t\t// lix - known ERROR (11) | ERROR (12) | NOTHING(13) | ERROR (14) | ERROR (15)\n\t\t// lix - updated\t\t\t\t\tERROR (16) | ERROR (17) | USE LIX (18) | CASE (19) | CASE (20)\n\t\t// lix - gone \t\t\t\t\t\tERROR (21) | ERROR (22) | DELETE FS (23)| CASE (24) | CASE (25)\n\n\t\t// TODO check export import from saveFileToDirectory\n\n\t\tfor (const [path, fsState] of Object.entries(statesToSync.fsFileStates)) {\n\t\t\t// no state for file in LIX\n\t\t\tif (!statesToSync.lixFileStates[path]) {\n\t\t\t\tif (fsState.state === \"unknown\") {\n\t\t\t\t\t// ADD TO LIX(2)\n\t\t\t\t\tawait upsertFileInLix(args, path, fsState.content);\n\t\t\t\t\tstatesToSync.lixFileStates[path] = {\n\t\t\t\t\t\tstate: \"known\",\n\t\t\t\t\t\tcontent: fsState.content,\n\t\t\t\t\t};\n\t\t\t\t\tfsState.state = \"known\";\n\t\t\t\t} else {\n\t\t\t\t\t// ERROR (3), ERROR (4), ERROR (5)\n\t\t\t\t\t// The file does not exist in lix but its state differs from unknown?\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\"Illeagal lix<->fs sync state. The file [\" +\n\t\t\t\t\t\t\tpath +\n\t\t\t\t\t\t\t\"] that was \" +\n\t\t\t\t\t\t\tfsState.state +\n\t\t\t\t\t\t\t\" on disc did not exit in lix\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst lixState = statesToSync.lixFileStates[path];\n\t\t\t\tif (fsState.state === \"unknown\") {\n\t\t\t\t\tif (lixState.state === \"unknown\") {\n\t\t\t\t\t\tif (arrayBuffersEqual(lixState.content, fsState.content)) {\n\t\t\t\t\t\t\tlixState.state = \"known\";\n\t\t\t\t\t\t\tfsState.state = \"known\";\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tawait upsertFileInLix(args, path, fsState.content);\n\t\t\t\t\t\t\tlixState.content = fsState.content;\n\t\t\t\t\t\t\tlixState.state = \"known\";\n\t\t\t\t\t\t\tfsState.state = \"known\";\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// ERROR 12, 17, 22\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\"Illeagal lix<->fs sync state. The file [\" +\n\t\t\t\t\t\t\t\tpath +\n\t\t\t\t\t\t\t\t\"] that was \" +\n\t\t\t\t\t\t\t\tfsState.state +\n\t\t\t\t\t\t\t\t\" but did exist in lix already\"\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} else if (fsState.state === \"known\") {\n\t\t\t\t\tif (lixState.state === \"known\") {\n\t\t\t\t\t\t// NO OP - NOTHING(13)\n\t\t\t\t\t} else if (lixState.state === \"updated\") {\n\t\t\t\t\t\t// USE LIX (18)\n\t\t\t\t\t\targs.fs.writeFileSync(\n\t\t\t\t\t\t\t// TODO check platform dependent folder separator\n\t\t\t\t\t\t\targs.path + path,\n\t\t\t\t\t\t\tBuffer.from(lixState.content)\n\t\t\t\t\t\t);\n\t\t\t\t\t\tfsState.content = lixState.content;\n\t\t\t\t\t\tfsState.state = \"known\";\n\t\t\t\t\t\tlixState.state = \"known\";\n\t\t\t\t\t} else if (lixState.state === \"gone\") {\n\t\t\t\t\t\t// DELETE FS (23)\n\t\t\t\t\t\targs.fs.unlinkSync(args.path + path);\n\t\t\t\t\t\tfsState.state = \"gone\";\n\t\t\t\t\t\tlixState.state = \"gone\";\n\t\t\t\t\t}\n\t\t\t\t} else if (fsState.state === \"updated\") {\n\t\t\t\t\tif (lixState.state === \"unknown\") {\n\t\t\t\t\t\t// TODO A file was added to lix while a known file from fs was updated?\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\"Illeagal lix<->fs sync state. The file [\" +\n\t\t\t\t\t\t\t\tpath +\n\t\t\t\t\t\t\t\t\"] that was \" +\n\t\t\t\t\t\t\t\tfsState.state +\n\t\t\t\t\t\t\t\t\" but it was not known by lix yet?\"\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if (lixState.state === \"known\") {\n\t\t\t\t\t\tawait upsertFileInLix(args, path, fsState.content);\n\t\t\t\t\t\tlixState.content = fsState.content;\n\n\t\t\t\t\t\tfsState.state = \"known\";\n\t\t\t\t\t} else if (lixState.state === \"updated\") {\n\t\t\t\t\t\t// seems like we saw an update on the file in fs while some changes on lix have not been reached fs? FS -> Winns?\n\t\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t\t\"seems like we saw an update on the file \" +\n\t\t\t\t\t\t\t\tpath +\n\t\t\t\t\t\t\t\t\" in fs while some changes on lix have not been reached fs? FS -> Winns?\"\n\t\t\t\t\t\t);\n\t\t\t\t\t\tawait upsertFileInLix(args, path, fsState.content);\n\t\t\t\t\t\tlixState.content = fsState.content;\n\t\t\t\t\t\tlixState.state = \"known\";\n\t\t\t\t\t\tfsState.state = \"known\";\n\t\t\t\t\t} else if (lixState.state === \"gone\") {\n\t\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t\t\"seems like we saw an delete in lix while some changes on fs have not been reached fs? FS -> Winns?\"\n\t\t\t\t\t\t);\n\t\t\t\t\t\t// TODO update the lix state\n\t\t\t\t\t\tlixState.content = fsState.content;\n\t\t\t\t\t\tlixState.state = \"known\";\n\t\t\t\t\t\tfsState.state = \"known\";\n\t\t\t\t\t}\n\t\t\t\t} else if (fsState.state === \"gone\") {\n\t\t\t\t\tif (lixState.state === \"unknown\") {\n\t\t\t\t\t\t// TODO A file was added to lix while a known file from fs was removed?\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\"Illeagal lix<->fs sync state. The file [\" +\n\t\t\t\t\t\t\t\tpath +\n\t\t\t\t\t\t\t\t\"] that was \" +\n\t\t\t\t\t\t\t\tfsState.state +\n\t\t\t\t\t\t\t\t\" but it was not known by lix yet?\"\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if (lixState.state === \"known\") {\n\t\t\t\t\t\t// file is in known state with lix - means we have only changes on the fs - easy\n\t\t\t\t\t\tawait args.lix.db\n\t\t\t\t\t\t\t.deleteFrom(\"file\")\n\t\t\t\t\t\t\t.where(\"path\", \"=\", path)\n\t\t\t\t\t\t\t.execute();\n\t\t\t\t\t\t// NOTE: states where both are gone will get removed in the lix state loop\n\t\t\t\t\t\tlixState.state = \"gone\";\n\t\t\t\t\t} else if (lixState.state === \"updated\") {\n\t\t\t\t\t\t// seems like we saw an update on the file in fs while some changes on lix have not been reached fs? FS -> Winns?\n\t\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t\t\"seems like we saw an update on the file in fs while some changes on lix have not been reached fs? FS -> Winns?\"\n\t\t\t\t\t\t);\n\t\t\t\t\t\tawait args.lix.db\n\t\t\t\t\t\t\t.deleteFrom(\"file\")\n\t\t\t\t\t\t\t.where(\"path\", \"=\", path)\n\t\t\t\t\t\t\t.execute();\n\t\t\t\t\t\t// NOTE: states where both are gone will get removed in the lix state loop\n\t\t\t\t\t\tlixState.state = \"gone\";\n\t\t\t\t\t\tfsState.state = \"gone\";\n\t\t\t\t\t} else if (lixState.state === \"gone\") {\n\t\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t\t\"seems like we saw an delete in lix while we have a delete in lix simultaniously?\"\n\t\t\t\t\t\t);\n\t\t\t\t\t\tlixState.state = \"gone\";\n\t\t\t\t\t\tfsState.state = \"gone\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (const [path, lixState] of Object.entries(statesToSync.lixFileStates)) {\n\t\t\t// no state for file in fs\n\t\t\tif (!statesToSync.fsFileStates[path]) {\n\t\t\t\tif (lixState.state == \"unknown\") {\n\t\t\t\t\t// ADD TO FS (6)\n\t\t\t\t\targs.fs.writeFileSync(\n\t\t\t\t\t\t// TODO check platform dependent folder separator\n\t\t\t\t\t\targs.path + path,\n\t\t\t\t\t\tBuffer.from(lixState.content)\n\t\t\t\t\t);\n\t\t\t\t\tstatesToSync.fsFileStates[path] = {\n\t\t\t\t\t\tstate: \"known\",\n\t\t\t\t\t\tcontent: lixState.content,\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\t// ERROR (11) 16 21\n\t\t\t\t\t// The file does not exist on fs but its state differs from unknown?\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\"Illeagal lix<->fs sync state. The file [\" +\n\t\t\t\t\t\t\tpath +\n\t\t\t\t\t\t\t\"] that was in the state\" +\n\t\t\t\t\t\t\tlixState.state +\n\t\t\t\t\t\t\t\" for lix did not exist on disk\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tlixState.state === \"gone\" &&\n\t\t\t\t\tstatesToSync.fsFileStates[path].state === \"gone\"\n\t\t\t\t) {\n\t\t\t\t\tdelete statesToSync.lixFileStates[path];\n\t\t\t\t\tdelete statesToSync.fsFileStates[path];\n\t\t\t\t} else if (lixState.state !== statesToSync.fsFileStates[path].state) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\"At this stage both states should be in sync lix state \" +\n\t\t\t\t\t\t\tlixState.state +\n\t\t\t\t\t\t\t\" fs state \" +\n\t\t\t\t\t\t\tstatesToSync.fsFileStates[path].state\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tasync function syncFiles(\n\t\tdirPath: string,\n\t\tfileStates: {\n\t\t\tlixFileStates: FsFileState;\n\t\t\tfsFileStates: FsFileState;\n\t\t},\n\t\tinterval?: number\n\t) {\n\t\t// mark all states as removed - checkFsStateRecursive will update those that exist on the disc correspondingly\n\t\tfor (const fsState of Object.values(fileStates.fsFileStates)) {\n\t\t\tfsState.state = \"gone\";\n\t\t}\n\n\t\t// mark all states as removed - checkFsStateRecursive will update those that exist on the disc correspondingly\n\t\tfor (const lixState of Object.values(fileStates.lixFileStates)) {\n\t\t\tlixState.state = \"gone\";\n\t\t}\n\n\t\t// read states from disc - detect changes\n\t\tawait checkFsStateRecursive(dirPath, fileStates.fsFileStates);\n\n\t\t// read states form lix - detect changes\n\t\tawait checkLixState(fileStates.lixFileStates);\n\n\t\t// sync fs<->lix\n\t\tawait syncUpFsAndLixFiles(fileStates);\n\n\t\tif (interval) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tsyncFiles(dirPath, fileStates, interval);\n\t\t\t}, interval);\n\t\t}\n\n\t\treturn;\n\t}\n\n\t// Initial copy of all files\n\tawait syncFiles(\n\t\targs.path,\n\t\t{ fsFileStates: {}, lixFileStates: {} },\n\t\targs.syncInterval\n\t);\n\n\treturn;\n}\n\nasync function upsertFileInLix(\n\targs: { fs: typeof fs; path: string; lix: Lix },\n\tpath: string,\n\tdata: ArrayBuffer\n) {\n\t// file is in known state with lix - means we have only changes on the fs - easy\n\t// NOTE we use file_internal for now see: https://linear.app/opral/issue/LIXDK-102/re-visit-simplifying-the-change-queue-implementation#comment-65eb3485\n\t// This means we don't see changes for the file we update via this method!\n\tawait args.lix.db\n\t\t.insertInto(\"file\") // change queue\n\t\t.values({\n\t\t\tpath: path,\n\t\t\tdata: new Uint8Array(data),\n\t\t})\n\t\t.onConflict((oc) =>\n\t\t\toc.column(\"path\").doUpdateSet({ data: new Uint8Array(data) })\n\t\t)\n\t\t.execute();\n}\n\n// TODO i guess we should move this validation logic into sdk2/src/project/loadProject.ts\nfunction categorizePlugins(plugins: readonly InlangPlugin[]): {\n\tloadMessagesPlugins: (InlangPlugin &\n\t\tRequired<Pick<InlangPlugin, \"loadMessages\">>)[];\n\tsaveMessagesPlugins: (InlangPlugin &\n\t\tRequired<Pick<InlangPlugin, \"saveMessages\">>)[];\n\timportPlugins: (InlangPlugin &\n\t\tRequired<Pick<InlangPlugin, \"importFiles\" | \"toBeImportedFiles\">>)[];\n\texportPlugins: (InlangPlugin & Required<Pick<InlangPlugin, \"exportFiles\">>)[];\n} {\n\tconst loadMessagesPlugins = plugins.filter(\n\t\t(\n\t\t\tplugin\n\t\t): plugin is InlangPlugin & Required<Pick<InlangPlugin, \"loadMessages\">> =>\n\t\t\tplugin.loadMessages !== undefined\n\t);\n\n\tconst saveMessagesPlugins = plugins.filter(\n\t\t(\n\t\t\tplugin\n\t\t): plugin is InlangPlugin & Required<Pick<InlangPlugin, \"saveMessages\">> =>\n\t\t\tplugin.saveMessages !== undefined\n\t);\n\n\tconst importPlugins = plugins.filter(\n\t\t(\n\t\t\tplugin\n\t\t): plugin is InlangPlugin &\n\t\t\tRequired<Pick<InlangPlugin, \"importFiles\" | \"toBeImportedFiles\">> =>\n\t\t\tplugin.importFiles !== undefined && plugin.toBeImportedFiles !== undefined\n\t);\n\n\tconst exportPlugins = plugins.filter(\n\t\t(\n\t\t\tplugin\n\t\t): plugin is InlangPlugin & Required<Pick<InlangPlugin, \"exportFiles\">> =>\n\t\t\tplugin.exportFiles !== undefined\n\t);\n\n\treturn {\n\t\tloadMessagesPlugins,\n\t\tsaveMessagesPlugins,\n\t\timportPlugins,\n\t\texportPlugins,\n\t};\n}\n\n/**\n * Imports local plugins for backwards compatibility.\n *\n * https://github.com/opral/inlang-sdk/issues/171\n */\nasync function importLocalPlugins(args: {\n\tfs: typeof fs;\n\tpath: string;\n\tpreprocessPluginBeforeImport?: PreprocessPluginBeforeImportFunction;\n}) {\n\tconst errors: Error[] = [];\n\tconst locallyImportedPlugins = [];\n\tconst settingsPath = nodePath.join(args.path, \"settings.json\");\n\tconst settings = JSON.parse(\n\t\tawait args.fs.promises.readFile(settingsPath, \"utf8\")\n\t) as ProjectSettings;\n\tfor (const module of settings.modules ?? []) {\n\t\tconst modulePath = absolutePathFromProject(args.path, module);\n\t\ttry {\n\t\t\tlet moduleAsText = await args.fs.promises.readFile(modulePath, \"utf8\");\n\t\t\tif (moduleAsText.includes(\"messageLintRule\")) {\n\t\t\t\terrors.push(new WarningDeprecatedLintRule(module));\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (args.preprocessPluginBeforeImport) {\n\t\t\t\tmoduleAsText = await args.preprocessPluginBeforeImport(moduleAsText);\n\t\t\t}\n\t\t\tconst moduleWithMimeType =\n\t\t\t\t\"data:application/javascript,\" + encodeURIComponent(moduleAsText);\n\t\t\tconst { default: plugin } = await import(\n\t\t\t\t/* @vite-ignore */ moduleWithMimeType\n\t\t\t);\n\t\t\tlocallyImportedPlugins.push(plugin);\n\t\t} catch (e) {\n\t\t\terrors.push(new PluginImportError({ plugin: module, cause: e as Error }));\n\t\t\tcontinue;\n\t\t}\n\t}\n\treturn {\n\t\terrors,\n\t\tlocallyImportedPlugins,\n\t};\n}\n\nfunction withLocallyImportedPluginWarning(errors: readonly Error[]) {\n\treturn errors.map((error) => {\n\t\tif (\n\t\t\terror instanceof PluginImportError &&\n\t\t\terror.plugin.startsWith(\"http\") === false\n\t\t) {\n\t\t\treturn new WarningLocalPluginImport(error.plugin);\n\t\t}\n\t\treturn error;\n\t});\n}\n\nexport class WarningLocalPluginImport extends Error {\n\tconstructor(module: string) {\n\t\tsuper(\n\t\t\t`Plugin ${module} is imported from a local path. This will work fine in dev tools like Sherlock or Paraglide JS but is not portable. Web apps like Fink or Parrot won't be able to import this plugin. It is recommended to use an http url to import plugins. The plugins are cached locally and will be available offline.`\n\t\t);\n\t\tthis.name = \"WarningLocalImport\";\n\t}\n}\n\nexport class WarningDeprecatedLintRule extends Error {\n\tconstructor(module: string) {\n\t\tsuper(\n\t\t\t`The lint rule ${module} is deprecated. Please remove the lint rule from the settings. Lint rules are interim built into apps and will be succeeded by more generilizable lix validation rules.`\n\t\t);\n\t\tthis.name = \"WarningDeprecatedLintRule\";\n\t}\n}\n\n/**\n * Resolving absolute paths for fs functions.\n *\n * This mapping is required for backwards compatibility.\n * Relative paths in the project.inlang/settings.json\n * file are resolved to absolute paths with `*.inlang`\n * being pruned.\n *\n * @example\n * \"/website/project.inlang\"\n * \"./local-plugins/mock-plugin.js\"\n * -> \"/website/local-plugins/mock-plugin.js\"\n *\n */\nexport function withAbsolutePaths(\n\tfs: NodeFsPromisesSubsetLegacy,\n\tprojectPath: string\n): NodeFsPromisesSubsetLegacy {\n\treturn {\n\t\t// @ts-expect-error - node type mismatch\n\t\treadFile: (path, options) => {\n\t\t\treturn fs.readFile(absolutePathFromProject(projectPath, path), options);\n\t\t},\n\t\twriteFile: (path, data) => {\n\t\t\treturn fs.writeFile(absolutePathFromProject(projectPath, path), data);\n\t\t},\n\t\tmkdir: (path) => {\n\t\t\treturn fs.mkdir(absolutePathFromProject(projectPath, path));\n\t\t},\n\t\treaddir: (path) => {\n\t\t\treturn fs.readdir(absolutePathFromProject(projectPath, path));\n\t\t},\n\t};\n}\n\n/**\n * Joins a path from a project path.\n *\n * @example\n * joinPathFromProject(\"/project.inlang\", \"./local-plugins/mock-plugin.js\") -> \"/local-plugins/mock-plugin.js\"\n *\n * joinPathFromProject(\"/website/project.inlang\", \"./mock-plugin.js\") -> \"/website/mock-plugin.js\"\n */\nexport function absolutePathFromProject(projectPath: string, path: string) {\n\t// need to remove the project path from the module path for legacy reasons\n\t// \"/project.inlang/local-plugins/mock-plugin.js\" -> \"/local-plugins/mock-plugin.js\"\n\tconst pathWithoutProject = projectPath\n\t\t.split(nodePath.sep)\n\t\t.slice(0, -1)\n\t\t.join(nodePath.sep);\n\n\tconst resolvedPath = nodePath.resolve(pathWithoutProject, path);\n\n\treturn resolvedPath;\n}\n\nexport class ResourceFileImportError extends Error {\n\tpath: string;\n\n\tconstructor(args: { cause: Error; path: string }) {\n\t\tsuper(\"Could not import a resource file\");\n\t\tthis.name = \"ResourceFileImportError\";\n\t\tthis.cause = args.cause;\n\t\tthis.path = args.path;\n\t}\n}\n"],"names":[],"mappings":"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","debug_id":"06ed56aa-293b-5bcc-8b06-9611e0c16b04"}
1
+ {"version":3,"file":"loadProjectFromDirectory.js","sources":["project/loadProjectFromDirectory.ts"],"sourceRoot":"/","sourcesContent":["import { newProject } from \"./newProject.js\";\nimport { loadProjectInMemory } from \"./loadProjectInMemory.js\";\nimport { type Lix } from \"@lix-js/sdk\";\nimport fs from \"node:fs\";\nimport nodePath from \"node:path\";\nimport type {\n\tInlangPlugin,\n\tNodeFsPromisesSubsetLegacy,\n} from \"../plugin/schema.js\";\nimport { fromMessageV1 } from \"../json-schema/old-v1-message/fromMessageV1.js\";\nimport type { ProjectSettings } from \"../json-schema/settings.js\";\nimport type { PreprocessPluginBeforeImportFunction } from \"../plugin/importPlugins.js\";\nimport { PluginImportError } from \"../plugin/errors.js\";\nimport { upsertBundleNestedMatchByProperties } from \"../import-export/upsertBundleNestedMatchByProperties.js\";\nimport type { ImportFile } from \"./api.js\";\n\n/**\n * Loads a project from a directory.\n *\n * Main use case are dev tools that want to load a project from a directory\n * that is stored in git.\n */\nexport async function loadProjectFromDirectory(\n\targs: { path: string; fs: typeof fs; syncInterval?: number } & Omit<\n\t\tParameters<typeof loadProjectInMemory>[0],\n\t\t\"blob\"\n\t>\n) {\n\tconst settingsPath = nodePath.join(args.path, \"settings.json\");\n\tconst settings = JSON.parse(\n\t\tawait args.fs.promises.readFile(settingsPath, \"utf8\")\n\t) as ProjectSettings;\n\n\tconst localImport = await importLocalPlugins({\n\t\tfs: args.fs,\n\t\tsettings,\n\t\tpath: args.path,\n\t});\n\n\tconst providePluginsWithLocalPlugins = [\n\t\t...(args.providePlugins ?? []),\n\t\t...localImport.locallyImportedPlugins,\n\t];\n\n\t// TODO call tempProject.lix.settled() to wait for the new settings file, and remove reload of the proejct as soon as reactive settings has landed\n\t// NOTE: we need to ensure two things:\n\t// 1. settled needs to include the changes from the copyFiles call\n\t// 2. the changes created from the copyFiles call need to be realized and lead to a signal on the settings\n\tconst project = await loadProjectInMemory({\n\t\t...args,\n\t\tprovidePlugins: providePluginsWithLocalPlugins,\n\t\tblob: await newProject({\n\t\t\tsettings,\n\t\t}),\n\t});\n\n\tawait syncLixFsFiles({\n\t\tfs: args.fs,\n\t\tpath: args.path,\n\t\tlix: project.lix,\n\t\tsyncInterval: args.syncInterval,\n\t});\n\n\tconst allPlugins = await project.plugins.get();\n\tconst { loadSavePlugins, importExportPlugins } =\n\t\tcategorizePlugins(allPlugins);\n\n\t// TODO i guess we should move this validation logic into sdk2/src/project/loadProject.ts\n\t// Two scenarios could arise:\n\t// 1. set settings is called from an app - it should detect and reject the setting of settings -> app need to be able to validate before calling set\n\t// 2. the settings file loaded from disc here is corrupted -> user has to fix the file on disc\n\tif (loadSavePlugins.length > 1) {\n\t\tthrow new Error(\n\t\t\t\"Max one loadMessages (found: \" +\n\t\t\t\tloadSavePlugins.length +\n\t\t\t\t\") and one saveMessages plugins (found: \" +\n\t\t\t\tloadSavePlugins.length +\n\t\t\t\t\") are allowed \"\n\t\t);\n\t}\n\tconst importedResourceFileErrors: Error[] = [];\n\n\t// import files from local fs\n\tfor (const plugin of importExportPlugins) {\n\t\tconst files: ImportFile[] = [];\n\t\tif (plugin.toBeImportedFiles) {\n\t\t\tconst toBeImportedFiles = await plugin.toBeImportedFiles({\n\t\t\t\tsettings: await project.settings.get(),\n\t\t\t});\n\t\t\tfor (const toBeImported of toBeImportedFiles) {\n\t\t\t\tconst absolute = absolutePathFromProject(args.path, toBeImported.path);\n\t\t\t\ttry {\n\t\t\t\t\tconst data = await args.fs.promises.readFile(absolute);\n\t\t\t\t\tfiles.push({\n\t\t\t\t\t\tlocale: toBeImported.locale,\n\t\t\t\t\t\tcontent: data,\n\t\t\t\t\t\ttoBeImportedFilesMetadata: toBeImported.metadata,\n\t\t\t\t\t});\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// https://github.com/opral/inlang-sdk/issues/202\n\t\t\t\t\tif ((e as any)?.code === \"ENOENT\") {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\timportedResourceFileErrors.push(\n\t\t\t\t\t\tnew ResourceFileImportError({\n\t\t\t\t\t\t\tcause: e as Error,\n\t\t\t\t\t\t\tpath: toBeImported.path,\n\t\t\t\t\t\t})\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tawait project.importFiles({\n\t\t\tpluginKey: plugin.key,\n\t\t\tfiles,\n\t\t});\n\t}\n\n\tfor (const plugin of loadSavePlugins) {\n\t\tawait loadLegacyMessages({\n\t\t\tproject,\n\t\t\tpluginKey: plugin.key ?? plugin.id,\n\t\t\tloadMessagesFn: plugin.loadMessages!,\n\t\t\tprojectPath: args.path,\n\t\t\tfs: args.fs,\n\t\t});\n\t}\n\n\treturn {\n\t\t...project,\n\t\terrors: {\n\t\t\tget: async () => {\n\t\t\t\treturn [...localImport.errors, ...importedResourceFileErrors];\n\t\t\t},\n\t\t\t// subscribe: (\n\t\t\t// \tcallback: Parameters<InlangProject[\"errors\"][\"subscribe\"]>[0]\n\t\t\t// ) => {\n\t\t\t// \treturn project.errors.subscribe((value) => {\n\t\t\t// \t\tcallback([\n\t\t\t// \t\t\t...withLocallyImportedPluginWarning(value),\n\t\t\t// \t\t\t...localImport.errors,\n\t\t\t// \t\t\t...importedResourceFileErrors,\n\t\t\t// \t\t]);\n\t\t\t// \t});\n\t\t\t// },\n\t\t},\n\t};\n}\n\nasync function loadLegacyMessages(args: {\n\tproject: Awaited<ReturnType<typeof loadProjectInMemory>>;\n\tpluginKey: NonNullable<InlangPlugin[\"key\"] | InlangPlugin[\"id\"]>;\n\tloadMessagesFn: Required<InlangPlugin>[\"loadMessages\"];\n\tprojectPath: string;\n\tfs: typeof fs;\n}) {\n\tconst loadedLegacyMessages = await args.loadMessagesFn({\n\t\tsettings: await args.project.settings.get(),\n\t\t// @ts-expect-error - type mismatch\n\t\tnodeishFs: withAbsolutePaths(args.fs.promises, args.projectPath),\n\t});\n\tconst upsertQueries = [];\n\n\tfor (const legacyMessage of loadedLegacyMessages) {\n\t\tconst messageBundle = fromMessageV1(legacyMessage);\n\n\t\tupsertQueries.push(\n\t\t\tupsertBundleNestedMatchByProperties(args.project.db, messageBundle)\n\t\t);\n\t}\n\n\treturn await Promise.all(upsertQueries);\n}\n\ntype FsFileState = Record<\n\tstring,\n\t{\n\t\t/*mtime: number, hash: string, */ content: ArrayBuffer;\n\t\tstate: \"known\" | \"unknown\" | \"updated\" | \"gone\";\n\t}\n>;\n\nfunction arrayBuffersEqual(a: ArrayBuffer, b: ArrayBuffer) {\n\tif (a.byteLength !== b.byteLength) return false;\n\n\t// Create views for byte-by-byte comparison\n\tconst view1 = new Uint8Array(a);\n\tconst view2 = new Uint8Array(b);\n\n\t// Compare each byte\n\tfor (const [i, element] of view1.entries()) {\n\t\tif (element !== view2[i]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\n/**\n * Watches a directory and copies files into lix, keeping them in sync.\n */\nasync function syncLixFsFiles(args: {\n\tfs: typeof fs;\n\tpath: string;\n\tlix: Lix;\n\tsyncInterval?: number;\n}) {\n\t// NOTE this function is async - while it runs 100% sync in the naiv implementation - we may want to change to an async version to optimize\n\tasync function checkFsStateRecursive(\n\t\tdirPath: string,\n\t\tcurrentState: FsFileState\n\t) {\n\t\tconst entries = args.fs.readdirSync(dirPath, { withFileTypes: true });\n\n\t\tfor (const entry of entries) {\n\t\t\tconst fullPath = nodePath.join(dirPath, entry.name);\n\t\t\tif (entry.isDirectory()) {\n\t\t\t\tcheckFsStateRecursive(fullPath, currentState);\n\t\t\t} else {\n\t\t\t\t// NOTE we could start with comparing the mdate and skip file read completely...\n\t\t\t\tconst data = args.fs.readFileSync(fullPath) as unknown as ArrayBuffer;\n\n\t\t\t\tconst relativePath = \"/\" + nodePath.relative(args.path, fullPath);\n\n\t\t\t\tif (!currentState[relativePath]) {\n\t\t\t\t\tcurrentState[relativePath] = {\n\t\t\t\t\t\tcontent: data,\n\t\t\t\t\t\tstate: \"unknown\",\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\tif (arrayBuffersEqual(currentState[relativePath].content, data)) {\n\t\t\t\t\t\tcurrentState[relativePath].state = \"known\";\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentState[relativePath].state = \"updated\";\n\t\t\t\t\t\tcurrentState[relativePath].content = data;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tasync function checkLixState(currentLixState: FsFileState) {\n\t\t// go through all files in lix and check there state\n\t\tconst filesInLix = await args.lix.db\n\t\t\t.selectFrom(\"file\")\n\t\t\t.where(\"path\", \"not like\", \"%db.sqlite\")\n\t\t\t.selectAll()\n\t\t\t.execute();\n\n\t\tfor (const fileInLix of filesInLix) {\n\t\t\tconst currentStateOfFileInLix = currentLixState[fileInLix.path];\n\t\t\t// NOTE we could start with comparing the mdate and skip file read completely...\n\t\t\tif (!currentStateOfFileInLix) {\n\t\t\t\tcurrentLixState[fileInLix.path] = {\n\t\t\t\t\tcontent: new Uint8Array(fileInLix.data).buffer,\n\t\t\t\t\tstate: \"unknown\",\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tarrayBuffersEqual(\n\t\t\t\t\t\tcurrentStateOfFileInLix.content,\n\t\t\t\t\t\tfileInLix.data.buffer as ArrayBuffer\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tcurrentStateOfFileInLix.state = \"known\";\n\t\t\t\t} else {\n\t\t\t\t\tcurrentStateOfFileInLix.state = \"updated\";\n\t\t\t\t\tcurrentStateOfFileInLix.content = fileInLix.data\n\t\t\t\t\t\t.buffer as ArrayBuffer;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tasync function syncUpFsAndLixFiles(statesToSync: {\n\t\tfsFileStates: FsFileState;\n\t\tlixFileStates: FsFileState;\n\t}) {\n\t\t// for (const file of Object.keys(statesToSync.fsFileStates)) {\n\t\t// \tif (file.includes(\"gitignore\"))\n\t\t// \t\tconsole.log(\n\t\t// \t\t\t\"fsFileStates : \" +\n\t\t// \t\t\t\tfile +\n\t\t// \t\t\t\t\" fs \" +\n\t\t// \t\t\t\tstatesToSync.fsFileStates[file]?.state +\n\t\t// \t\t\t\t\" lix \" +\n\t\t// \t\t\t\tstatesToSync.lixFileStates[file]?.state\n\t\t// \t\t);\n\t\t// }\n\n\t\t// Sync cases:\n\t\t// fs - no state for file | fs - unkonwn | fs - known | fs - updated | fs - gone\n\t\t// lix - no state for file \tNOTHING\t(1)\t | ADD TO LIX(2) | ERROR (3) | ERROR (4) | ERROR (5)\n\t\t// lix - unknown\t\t\t\t\tADD TO FS (6) | USE FS VER.(7) | ERROR (8) | CASE (9) | CASE (10)\n\t\t// lix - known ERROR (11) | ERROR (12) | NOTHING(13) | ERROR (14) | ERROR (15)\n\t\t// lix - updated\t\t\t\t\tERROR (16) | ERROR (17) | USE LIX (18) | CASE (19) | CASE (20)\n\t\t// lix - gone \t\t\t\t\t\tERROR (21) | ERROR (22) | DELETE FS (23)| CASE (24) | CASE (25)\n\n\t\t// TODO check export import from saveFileToDirectory\n\n\t\tfor (const [path, fsState] of Object.entries(statesToSync.fsFileStates)) {\n\t\t\t// no state for file in LIX\n\t\t\tif (!statesToSync.lixFileStates[path]) {\n\t\t\t\tif (fsState.state === \"unknown\") {\n\t\t\t\t\t// ADD TO LIX(2)\n\t\t\t\t\tawait upsertFileInLix(args, path, fsState.content);\n\t\t\t\t\tstatesToSync.lixFileStates[path] = {\n\t\t\t\t\t\tstate: \"known\",\n\t\t\t\t\t\tcontent: fsState.content,\n\t\t\t\t\t};\n\t\t\t\t\tfsState.state = \"known\";\n\t\t\t\t} else {\n\t\t\t\t\t// ERROR (3), ERROR (4), ERROR (5)\n\t\t\t\t\t// The file does not exist in lix but its state differs from unknown?\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\"Illeagal lix<->fs sync state. The file [\" +\n\t\t\t\t\t\t\tpath +\n\t\t\t\t\t\t\t\"] that was \" +\n\t\t\t\t\t\t\tfsState.state +\n\t\t\t\t\t\t\t\" on disc did not exit in lix\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst lixState = statesToSync.lixFileStates[path];\n\t\t\t\tif (fsState.state === \"unknown\") {\n\t\t\t\t\tif (lixState.state === \"unknown\") {\n\t\t\t\t\t\tif (arrayBuffersEqual(lixState.content, fsState.content)) {\n\t\t\t\t\t\t\tlixState.state = \"known\";\n\t\t\t\t\t\t\tfsState.state = \"known\";\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tawait upsertFileInLix(args, path, fsState.content);\n\t\t\t\t\t\t\tlixState.content = fsState.content;\n\t\t\t\t\t\t\tlixState.state = \"known\";\n\t\t\t\t\t\t\tfsState.state = \"known\";\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// ERROR 12, 17, 22\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\"Illeagal lix<->fs sync state. The file [\" +\n\t\t\t\t\t\t\t\tpath +\n\t\t\t\t\t\t\t\t\"] that was \" +\n\t\t\t\t\t\t\t\tfsState.state +\n\t\t\t\t\t\t\t\t\" but did exist in lix already\"\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} else if (fsState.state === \"known\") {\n\t\t\t\t\tif (lixState.state === \"known\") {\n\t\t\t\t\t\t// NO OP - NOTHING(13)\n\t\t\t\t\t} else if (lixState.state === \"updated\") {\n\t\t\t\t\t\t// USE LIX (18)\n\t\t\t\t\t\targs.fs.writeFileSync(\n\t\t\t\t\t\t\t// TODO check platform dependent folder separator\n\t\t\t\t\t\t\targs.path + path,\n\t\t\t\t\t\t\tBuffer.from(lixState.content)\n\t\t\t\t\t\t);\n\t\t\t\t\t\tfsState.content = lixState.content;\n\t\t\t\t\t\tfsState.state = \"known\";\n\t\t\t\t\t\tlixState.state = \"known\";\n\t\t\t\t\t} else if (lixState.state === \"gone\") {\n\t\t\t\t\t\t// DELETE FS (23)\n\t\t\t\t\t\targs.fs.unlinkSync(args.path + path);\n\t\t\t\t\t\tfsState.state = \"gone\";\n\t\t\t\t\t\tlixState.state = \"gone\";\n\t\t\t\t\t}\n\t\t\t\t} else if (fsState.state === \"updated\") {\n\t\t\t\t\tif (lixState.state === \"unknown\") {\n\t\t\t\t\t\t// TODO A file was added to lix while a known file from fs was updated?\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\"Illeagal lix<->fs sync state. The file [\" +\n\t\t\t\t\t\t\t\tpath +\n\t\t\t\t\t\t\t\t\"] that was \" +\n\t\t\t\t\t\t\t\tfsState.state +\n\t\t\t\t\t\t\t\t\" but it was not known by lix yet?\"\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if (lixState.state === \"known\") {\n\t\t\t\t\t\tawait upsertFileInLix(args, path, fsState.content);\n\t\t\t\t\t\tlixState.content = fsState.content;\n\n\t\t\t\t\t\tfsState.state = \"known\";\n\t\t\t\t\t} else if (lixState.state === \"updated\") {\n\t\t\t\t\t\t// seems like we saw an update on the file in fs while some changes on lix have not been reached fs? FS -> Winns?\n\t\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t\t\"seems like we saw an update on the file \" +\n\t\t\t\t\t\t\t\tpath +\n\t\t\t\t\t\t\t\t\" in fs while some changes on lix have not been reached fs? FS -> Winns?\"\n\t\t\t\t\t\t);\n\t\t\t\t\t\tawait upsertFileInLix(args, path, fsState.content);\n\t\t\t\t\t\tlixState.content = fsState.content;\n\t\t\t\t\t\tlixState.state = \"known\";\n\t\t\t\t\t\tfsState.state = \"known\";\n\t\t\t\t\t} else if (lixState.state === \"gone\") {\n\t\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t\t\"seems like we saw an delete in lix while some changes on fs have not been reached fs? FS -> Winns?\"\n\t\t\t\t\t\t);\n\t\t\t\t\t\t// TODO update the lix state\n\t\t\t\t\t\tlixState.content = fsState.content;\n\t\t\t\t\t\tlixState.state = \"known\";\n\t\t\t\t\t\tfsState.state = \"known\";\n\t\t\t\t\t}\n\t\t\t\t} else if (fsState.state === \"gone\") {\n\t\t\t\t\tif (lixState.state === \"unknown\") {\n\t\t\t\t\t\t// TODO A file was added to lix while a known file from fs was removed?\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\"Illeagal lix<->fs sync state. The file [\" +\n\t\t\t\t\t\t\t\tpath +\n\t\t\t\t\t\t\t\t\"] that was \" +\n\t\t\t\t\t\t\t\tfsState.state +\n\t\t\t\t\t\t\t\t\" but it was not known by lix yet?\"\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if (lixState.state === \"known\") {\n\t\t\t\t\t\t// file is in known state with lix - means we have only changes on the fs - easy\n\t\t\t\t\t\tawait args.lix.db\n\t\t\t\t\t\t\t.deleteFrom(\"file\")\n\t\t\t\t\t\t\t.where(\"path\", \"=\", path)\n\t\t\t\t\t\t\t.execute();\n\t\t\t\t\t\t// NOTE: states where both are gone will get removed in the lix state loop\n\t\t\t\t\t\tlixState.state = \"gone\";\n\t\t\t\t\t} else if (lixState.state === \"updated\") {\n\t\t\t\t\t\t// seems like we saw an update on the file in fs while some changes on lix have not been reached fs? FS -> Winns?\n\t\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t\t\"seems like we saw an update on the file in fs while some changes on lix have not been reached fs? FS -> Winns?\"\n\t\t\t\t\t\t);\n\t\t\t\t\t\tawait args.lix.db\n\t\t\t\t\t\t\t.deleteFrom(\"file\")\n\t\t\t\t\t\t\t.where(\"path\", \"=\", path)\n\t\t\t\t\t\t\t.execute();\n\t\t\t\t\t\t// NOTE: states where both are gone will get removed in the lix state loop\n\t\t\t\t\t\tlixState.state = \"gone\";\n\t\t\t\t\t\tfsState.state = \"gone\";\n\t\t\t\t\t} else if (lixState.state === \"gone\") {\n\t\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t\t\"seems like we saw an delete in lix while we have a delete in lix simultaniously?\"\n\t\t\t\t\t\t);\n\t\t\t\t\t\tlixState.state = \"gone\";\n\t\t\t\t\t\tfsState.state = \"gone\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (const [path, lixState] of Object.entries(statesToSync.lixFileStates)) {\n\t\t\t// no state for file in fs\n\t\t\tif (!statesToSync.fsFileStates[path]) {\n\t\t\t\tif (lixState.state == \"unknown\") {\n\t\t\t\t\t// ADD TO FS (6)\n\t\t\t\t\t// create directory if not exists\n\t\t\t\t\targs.fs.mkdirSync(nodePath.dirname(nodePath.join(args.path, path)), {\n\t\t\t\t\t\trecursive: true,\n\t\t\t\t\t});\n\t\t\t\t\t// write file\n\t\t\t\t\targs.fs.writeFileSync(\n\t\t\t\t\t\tnodePath.join(args.path, path),\n\t\t\t\t\t\tBuffer.from(lixState.content)\n\t\t\t\t\t);\n\t\t\t\t\tstatesToSync.fsFileStates[path] = {\n\t\t\t\t\t\tstate: \"known\",\n\t\t\t\t\t\tcontent: lixState.content,\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\t// ERROR (11) 16 21\n\t\t\t\t\t// The file does not exist on fs but its state differs from unknown?\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\"Illeagal lix<->fs sync state. The file [\" +\n\t\t\t\t\t\t\tpath +\n\t\t\t\t\t\t\t\"] that was in the state\" +\n\t\t\t\t\t\t\tlixState.state +\n\t\t\t\t\t\t\t\" for lix did not exist on disk\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tlixState.state === \"gone\" &&\n\t\t\t\t\tstatesToSync.fsFileStates[path].state === \"gone\"\n\t\t\t\t) {\n\t\t\t\t\tdelete statesToSync.lixFileStates[path];\n\t\t\t\t\tdelete statesToSync.fsFileStates[path];\n\t\t\t\t} else if (lixState.state !== statesToSync.fsFileStates[path].state) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\"At this stage both states should be in sync lix state \" +\n\t\t\t\t\t\t\tlixState.state +\n\t\t\t\t\t\t\t\" fs state \" +\n\t\t\t\t\t\t\tstatesToSync.fsFileStates[path].state\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tasync function syncFiles(\n\t\tdirPath: string,\n\t\tfileStates: {\n\t\t\tlixFileStates: FsFileState;\n\t\t\tfsFileStates: FsFileState;\n\t\t},\n\t\tinterval?: number\n\t) {\n\t\t// mark all states as removed - checkFsStateRecursive will update those that exist on the disc correspondingly\n\t\tfor (const fsState of Object.values(fileStates.fsFileStates)) {\n\t\t\tfsState.state = \"gone\";\n\t\t}\n\n\t\t// mark all states as removed - checkFsStateRecursive will update those that exist on the disc correspondingly\n\t\tfor (const lixState of Object.values(fileStates.lixFileStates)) {\n\t\t\tlixState.state = \"gone\";\n\t\t}\n\n\t\t// read states from disc - detect changes\n\t\tawait checkFsStateRecursive(dirPath, fileStates.fsFileStates);\n\n\t\t// read states form lix - detect changes\n\t\tawait checkLixState(fileStates.lixFileStates);\n\n\t\t// sync fs<->lix\n\t\tawait syncUpFsAndLixFiles(fileStates);\n\n\t\tif (interval) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tsyncFiles(dirPath, fileStates, interval);\n\t\t\t}, interval);\n\t\t}\n\n\t\treturn;\n\t}\n\n\t// Initial copy of all files\n\tawait syncFiles(\n\t\targs.path,\n\t\t{ fsFileStates: {}, lixFileStates: {} },\n\t\targs.syncInterval\n\t);\n\n\treturn;\n}\n\nasync function upsertFileInLix(\n\targs: { fs: typeof fs; path: string; lix: Lix },\n\tpath: string,\n\tdata: ArrayBuffer\n) {\n\t// force posix path when upserting into lix\n\t// https://github.com/opral/inlang-sdk/issues/229\n\tlet posixPath = path.split(nodePath.win32.sep).join(nodePath.posix.sep);\n\n\tif (posixPath.startsWith(\"/\") === false) {\n\t\tposixPath = \"/\" + posixPath;\n\t}\n\n\tawait args.lix.db\n\t\t.insertInto(\"file\") // change queue\n\t\t.values({\n\t\t\tpath: path,\n\t\t\tdata: new Uint8Array(data),\n\t\t})\n\t\t.onConflict((oc) =>\n\t\t\toc.column(\"path\").doUpdateSet({ data: new Uint8Array(data) })\n\t\t)\n\t\t.execute();\n}\n/**\n * Filters legacy load and save messages plugins.\n *\n * Legacy plugins are plugins that implement loadMessages and saveMessages but not importFiles and exportFiles.\n */\nfunction categorizePlugins(plugins: readonly InlangPlugin[]) {\n\tconst loadSavePlugins: InlangPlugin[] = [];\n\tconst importExportPlugins: InlangPlugin[] = [];\n\n\tfor (const plugin of plugins) {\n\t\tif (\n\t\t\tplugin.loadMessages &&\n\t\t\tplugin.saveMessages &&\n\t\t\t!(plugin.importFiles && plugin.exportFiles)\n\t\t) {\n\t\t\tloadSavePlugins.push(plugin);\n\t\t} else if (plugin.importFiles || plugin.exportFiles) {\n\t\t\timportExportPlugins.push(plugin);\n\t\t}\n\t}\n\n\treturn { loadSavePlugins, importExportPlugins };\n}\n\n/**\n * Imports local plugins for backwards compatibility.\n *\n * https://github.com/opral/inlang-sdk/issues/171\n */\nasync function importLocalPlugins(args: {\n\tfs: typeof fs;\n\tsettings: ProjectSettings;\n\tpath: string;\n\tpreprocessPluginBeforeImport?: PreprocessPluginBeforeImportFunction;\n}) {\n\tconst errors: Error[] = [];\n\tconst locallyImportedPlugins = [];\n\tfor (const module of args.settings.modules ?? []) {\n\t\tif (module.startsWith(\"http\")) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst modulePath = absolutePathFromProject(args.path, module);\n\t\ttry {\n\t\t\tlet moduleAsText = await args.fs.promises.readFile(modulePath, \"utf8\");\n\t\t\tif (moduleAsText.includes(\"messageLintRule\")) {\n\t\t\t\terrors.push(new WarningDeprecatedLintRule(module));\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (args.preprocessPluginBeforeImport) {\n\t\t\t\tmoduleAsText = await args.preprocessPluginBeforeImport(moduleAsText);\n\t\t\t}\n\t\t\tconst moduleWithMimeType =\n\t\t\t\t\"data:application/javascript,\" + encodeURIComponent(moduleAsText);\n\t\t\tconst { default: plugin } = await import(\n\t\t\t\t/* @vite-ignore */ moduleWithMimeType\n\t\t\t);\n\t\t\tlocallyImportedPlugins.push(plugin);\n\t\t} catch (e) {\n\t\t\terrors.push(new PluginImportError({ plugin: module, cause: e as Error }));\n\t\t\tcontinue;\n\t\t}\n\t}\n\treturn {\n\t\terrors,\n\t\tlocallyImportedPlugins,\n\t};\n}\n\nexport class WarningDeprecatedLintRule extends Error {\n\tconstructor(module: string) {\n\t\tsuper(\n\t\t\t`The lint rule ${module} is deprecated. Please remove the lint rule from the settings. Lint rules are interim built into apps and will be succeeded by more generilizable lix validation rules.`\n\t\t);\n\t\tthis.name = \"WarningDeprecatedLintRule\";\n\t}\n}\n\n/**\n * Resolving absolute paths for fs functions.\n *\n * This mapping is required for backwards compatibility.\n * Relative paths in the project.inlang/settings.json\n * file are resolved to absolute paths with `*.inlang`\n * being pruned.\n *\n * @example\n * \"/website/project.inlang\"\n * \"./local-plugins/mock-plugin.js\"\n * -> \"/website/local-plugins/mock-plugin.js\"\n *\n */\nexport function withAbsolutePaths(\n\tfs: NodeFsPromisesSubsetLegacy,\n\tprojectPath: string\n): NodeFsPromisesSubsetLegacy {\n\treturn {\n\t\t// @ts-expect-error - node type mismatch\n\t\treadFile: (path, options) => {\n\t\t\treturn fs.readFile(absolutePathFromProject(projectPath, path), options);\n\t\t},\n\t\twriteFile: (path, data) => {\n\t\t\treturn fs.writeFile(absolutePathFromProject(projectPath, path), data);\n\t\t},\n\t\tmkdir: (path) => {\n\t\t\treturn fs.mkdir(absolutePathFromProject(projectPath, path));\n\t\t},\n\t\treaddir: (path) => {\n\t\t\treturn fs.readdir(absolutePathFromProject(projectPath, path));\n\t\t},\n\t};\n}\n\n/**\n * Joins a path from a project path.\n *\n * @example\n * joinPathFromProject(\"/project.inlang\", \"./local-plugins/mock-plugin.js\") -> \"/local-plugins/mock-plugin.js\"\n *\n * joinPathFromProject(\"/website/project.inlang\", \"./mock-plugin.js\") -> \"/website/mock-plugin.js\"\n */\nexport function absolutePathFromProject(projectPath: string, path: string) {\n\t// need to remove the project path from the module path for legacy reasons\n\t// \"/project.inlang/local-plugins/mock-plugin.js\" -> \"/local-plugins/mock-plugin.js\"\n\tconst pathWithoutProject = projectPath\n\t\t.split(nodePath.sep)\n\t\t.slice(0, -1)\n\t\t.join(nodePath.sep);\n\n\tconst resolvedPath = nodePath.resolve(pathWithoutProject, path);\n\n\treturn resolvedPath;\n}\n\nexport class ResourceFileImportError extends Error {\n\tpath: string;\n\n\tconstructor(args: { cause: Error; path: string }) {\n\t\tsuper(\"Could not import a resource file\");\n\t\tthis.name = \"ResourceFileImportError\";\n\t\tthis.cause = args.cause;\n\t\tthis.path = args.path;\n\t}\n}\n"],"names":[],"mappings":"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","debug_id":"9753a988-ad27-5056-92c0-c24779eb1720"}
@@ -1,11 +1,10 @@
1
1
  /* eslint-disable @typescript-eslint/no-unused-vars */
2
- /* eslint-disable @typescript-eslint/no-non-null-assertion */
3
2
 
4
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="38d550fe-29bc-58ce-bc46-e34467821546")}catch(e){}}();
3
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="a2e360a7-8037-526f-b036-d39152e1fa8a")}catch(e){}}();
5
4
  import { beforeEach, describe, expect, test, vi } from "vitest";
6
5
  import { ProjectSettings } from "../json-schema/settings.js";
7
6
  import { fs, vol, Volume } from "memfs";
8
- import { loadProjectFromDirectory, ResourceFileImportError, WarningDeprecatedLintRule, WarningLocalPluginImport, } from "./loadProjectFromDirectory.js";
7
+ import { loadProjectFromDirectory, ResourceFileImportError, WarningDeprecatedLintRule, } from "./loadProjectFromDirectory.js";
9
8
  import { selectBundleNested } from "../query-utilities/selectBundleNested.js";
10
9
  import { Text } from "../json-schema/pattern.js";
11
10
  import { saveProjectToDirectory } from "./saveProjectToDirectory.js";
@@ -514,7 +513,6 @@ test("it should pass toBeImportedMetadata on import", async () => {
514
513
  expect(importSpy).toHaveBeenCalledWith(expect.objectContaining({
515
514
  files: [
516
515
  expect.objectContaining({
517
- name: "en.json",
518
516
  toBeImportedFilesMetadata: {
519
517
  foo: "bar",
520
518
  },
@@ -545,13 +543,8 @@ test("it should provide plugins from disk for backwards compatibility but warn t
545
543
  const settings = await project.settings.get();
546
544
  expect(plugins.length).toBe(1);
547
545
  expect(plugins[0]?.key).toBe("mock-plugin");
548
- // old mock lint rule import is number two import
549
- // it's hard to model the import of a lint rule
550
- // best if they are removed
551
- expect(errors.length).toBe(3);
552
- expect(errors[0]).toBeInstanceOf(WarningLocalPluginImport);
553
- expect(errors[1]).toBeInstanceOf(WarningLocalPluginImport);
554
- expect(errors[2]).toBeInstanceOf(WarningDeprecatedLintRule);
546
+ expect(errors.length).toBe(1);
547
+ expect(errors[0]).toBeInstanceOf(WarningDeprecatedLintRule);
555
548
  // it should not remove the module from the settings
556
549
  // else roundtrips would not work
557
550
  expect(settings.modules?.[0]).toBe("../local-plugins/mock-plugin.js");
@@ -638,5 +631,89 @@ test("plugin calls that use fs should be intercepted to use an absolute path", a
638
631
  // expect(saveMessagesSpy).toHaveBeenCalled();
639
632
  // expect(toBeImportedFilesSpy).toHaveBeenCalled();
640
633
  });
634
+ test("it can import plugins via http", async () => {
635
+ const mockRepo = {
636
+ "/project.inlang/settings.json": JSON.stringify({
637
+ baseLocale: "en",
638
+ locales: ["en"],
639
+ modules: ["https://example.com/plugin.js"],
640
+ }),
641
+ };
642
+ const fs = Volume.fromJSON(mockRepo);
643
+ const mockPluginModule = `export default {
644
+ key: "mock-plugin"
645
+ }`;
646
+ global.fetch = vi.fn(() => Promise.resolve(new Response(mockPluginModule)));
647
+ const project = await loadProjectFromDirectory({
648
+ fs: fs,
649
+ path: "/project.inlang",
650
+ });
651
+ const plugins = await project.plugins.get();
652
+ expect(global.fetch).toHaveBeenCalledWith("https://example.com/plugin.js");
653
+ expect(plugins.length).toBe(1);
654
+ const pluginCache = await project.lix.db
655
+ .selectFrom("file")
656
+ .selectAll()
657
+ .where("path", "like", "/cache/plugins/%")
658
+ .execute();
659
+ expect(pluginCache.some((file) => new TextDecoder().decode(file.data) === mockPluginModule), "expecting the plugin to be cached").toBe(true);
660
+ });
661
+ test("plugins that provide both loadMessages and importFiles should be allowed and the importFiles should be called", async () => {
662
+ const mockRepo = {
663
+ "/project.inlang/settings.json": JSON.stringify({
664
+ baseLocale: "en",
665
+ locales: ["en"],
666
+ modules: [],
667
+ }),
668
+ };
669
+ const fs = Volume.fromJSON(mockRepo);
670
+ const mockPlugin = {
671
+ key: "mock-plugin",
672
+ loadMessages: vi.fn(async () => []),
673
+ importFiles: vi.fn(async () => {
674
+ return { bundles: [], messages: [], variants: [] };
675
+ }),
676
+ };
677
+ const project = await loadProjectFromDirectory({
678
+ fs: fs,
679
+ path: "/project.inlang",
680
+ providePlugins: [mockPlugin],
681
+ });
682
+ expect(mockPlugin.importFiles).toHaveBeenCalled();
683
+ expect(mockPlugin.loadMessages).not.toHaveBeenCalled();
684
+ });
685
+ test("providing multiple plugins that have legacy loadMessages and saveMessages function should be possible if they have import/export functions", async () => {
686
+ const mockRepo = {
687
+ "/project.inlang/settings.json": JSON.stringify({
688
+ baseLocale: "en",
689
+ locales: ["en"],
690
+ modules: [],
691
+ }),
692
+ };
693
+ const fs = Volume.fromJSON(mockRepo);
694
+ const mockPlugin1 = {
695
+ key: "mock-plugin1",
696
+ loadMessages: vi.fn(async () => []),
697
+ importFiles: vi.fn(async () => {
698
+ return { bundles: [], messages: [], variants: [] };
699
+ }),
700
+ };
701
+ const mockPlugin2 = {
702
+ key: "mock-plugin2",
703
+ loadMessages: vi.fn(async () => []),
704
+ importFiles: vi.fn(async () => {
705
+ return { bundles: [], messages: [], variants: [] };
706
+ }),
707
+ };
708
+ const project = await loadProjectFromDirectory({
709
+ fs: fs,
710
+ path: "/project.inlang",
711
+ providePlugins: [mockPlugin1, mockPlugin2],
712
+ });
713
+ expect(mockPlugin1.importFiles).toHaveBeenCalled();
714
+ expect(mockPlugin1.loadMessages).not.toHaveBeenCalled();
715
+ expect(mockPlugin2.importFiles).toHaveBeenCalled();
716
+ expect(mockPlugin2.loadMessages).not.toHaveBeenCalled();
717
+ });
641
718
  //# sourceMappingURL=loadProjectFromDirectory.test.js.map
642
- //# debugId=38d550fe-29bc-58ce-bc46-e34467821546
719
+ //# debugId=a2e360a7-8037-526f-b036-d39152e1fa8a