@inlang/sdk 0.36.4 → 2.0.0-beta.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 (727) hide show
  1. package/README.md +1 -1
  2. package/dist/database/initDb.d.ts +7 -0
  3. package/dist/database/initDb.d.ts.map +1 -0
  4. package/dist/database/initDb.js +36 -0
  5. package/dist/database/initDb.js.map +1 -0
  6. package/dist/database/initDbAndSchema.test.d.ts +2 -0
  7. package/dist/database/initDbAndSchema.test.d.ts.map +1 -0
  8. package/dist/database/initDbAndSchema.test.js +110 -0
  9. package/dist/database/initDbAndSchema.test.js.map +1 -0
  10. package/dist/database/jsonbPlugin.d.ts +20 -0
  11. package/dist/database/jsonbPlugin.d.ts.map +1 -0
  12. package/dist/database/jsonbPlugin.js +183 -0
  13. package/dist/database/jsonbPlugin.js.map +1 -0
  14. package/dist/database/jsonbPlugin.test.d.ts +2 -0
  15. package/dist/database/jsonbPlugin.test.d.ts.map +1 -0
  16. package/dist/database/jsonbPlugin.test.js +119 -0
  17. package/dist/database/jsonbPlugin.test.js.map +1 -0
  18. package/dist/database/schema.d.ts +74 -0
  19. package/dist/database/schema.d.ts.map +1 -0
  20. package/dist/database/schema.js +45 -0
  21. package/dist/database/schema.js.map +1 -0
  22. package/dist/helper.d.ts +71 -0
  23. package/dist/helper.d.ts.map +1 -0
  24. package/dist/helper.js +91 -0
  25. package/dist/helper.js.map +1 -0
  26. package/dist/human-id/human-id.d.ts +3 -0
  27. package/dist/human-id/human-id.d.ts.map +1 -0
  28. package/dist/human-id/human-id.js +12 -0
  29. package/dist/human-id/human-id.js.map +1 -0
  30. package/dist/human-id/words.d.ts.map +1 -0
  31. package/dist/{storage/human-id → human-id}/words.js +4 -0
  32. package/dist/human-id/words.js.map +1 -0
  33. package/dist/human-id/words.test.d.ts.map +1 -0
  34. package/dist/{storage/human-id → human-id}/words.test.js +4 -0
  35. package/dist/human-id/words.test.js.map +1 -0
  36. package/dist/import-export/exportFiles.d.ts +11 -0
  37. package/dist/import-export/exportFiles.d.ts.map +1 -0
  38. package/dist/import-export/exportFiles.js +26 -0
  39. package/dist/import-export/exportFiles.js.map +1 -0
  40. package/dist/import-export/importFiles.d.ts +13 -0
  41. package/dist/import-export/importFiles.d.ts.map +1 -0
  42. package/dist/import-export/importFiles.js +124 -0
  43. package/dist/import-export/importFiles.js.map +1 -0
  44. package/dist/import-export/importFiles.test.d.ts +2 -0
  45. package/dist/import-export/importFiles.test.d.ts.map +1 -0
  46. package/dist/import-export/importFiles.test.js +179 -0
  47. package/dist/import-export/importFiles.test.js.map +1 -0
  48. package/dist/import-export/roundtrip.test.d.ts +2 -0
  49. package/dist/import-export/roundtrip.test.d.ts.map +1 -0
  50. package/dist/import-export/roundtrip.test.js +273 -0
  51. package/dist/import-export/roundtrip.test.js.map +1 -0
  52. package/dist/import-export/upsertBundleNestedMatchByProperties.d.ts +4 -0
  53. package/dist/import-export/upsertBundleNestedMatchByProperties.d.ts.map +1 -0
  54. package/dist/import-export/upsertBundleNestedMatchByProperties.js +58 -0
  55. package/dist/import-export/upsertBundleNestedMatchByProperties.js.map +1 -0
  56. package/dist/index.d.ts +21 -18
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +20 -17
  59. package/dist/index.js.map +1 -0
  60. package/dist/json-schema/old-v1-message/fromMessageV1.d.ts +9 -0
  61. package/dist/json-schema/old-v1-message/fromMessageV1.d.ts.map +1 -0
  62. package/dist/json-schema/old-v1-message/fromMessageV1.js +84 -0
  63. package/dist/json-schema/old-v1-message/fromMessageV1.js.map +1 -0
  64. package/dist/json-schema/old-v1-message/fromMessageV1.test.d.ts +2 -0
  65. package/dist/json-schema/old-v1-message/fromMessageV1.test.d.ts.map +1 -0
  66. package/dist/json-schema/old-v1-message/fromMessageV1.test.js +85 -0
  67. package/dist/json-schema/old-v1-message/fromMessageV1.test.js.map +1 -0
  68. package/dist/json-schema/old-v1-message/schemaV1.d.ts +86 -0
  69. package/dist/json-schema/old-v1-message/schemaV1.d.ts.map +1 -0
  70. package/dist/json-schema/old-v1-message/schemaV1.js +35 -0
  71. package/dist/json-schema/old-v1-message/schemaV1.js.map +1 -0
  72. package/dist/json-schema/old-v1-message/toMessageV1.d.ts +9 -0
  73. package/dist/json-schema/old-v1-message/toMessageV1.d.ts.map +1 -0
  74. package/dist/json-schema/old-v1-message/toMessageV1.js +67 -0
  75. package/dist/json-schema/old-v1-message/toMessageV1.js.map +1 -0
  76. package/dist/json-schema/old-v1-message/toMessageV1.test.d.ts +2 -0
  77. package/dist/json-schema/old-v1-message/toMessageV1.test.d.ts.map +1 -0
  78. package/dist/json-schema/old-v1-message/toMessageV1.test.js +85 -0
  79. package/dist/json-schema/old-v1-message/toMessageV1.test.js.map +1 -0
  80. package/dist/json-schema/pattern.d.ts +190 -0
  81. package/dist/json-schema/pattern.d.ts.map +1 -0
  82. package/dist/json-schema/pattern.js +43 -0
  83. package/dist/json-schema/pattern.js.map +1 -0
  84. package/dist/json-schema/settings.d.ts +31 -0
  85. package/dist/json-schema/settings.d.ts.map +1 -0
  86. package/dist/json-schema/settings.js +96 -0
  87. package/dist/json-schema/settings.js.map +1 -0
  88. package/dist/json-schema/settings.test-d.d.ts +2 -0
  89. package/dist/json-schema/settings.test-d.d.ts.map +1 -0
  90. package/dist/json-schema/settings.test-d.js +20 -0
  91. package/dist/json-schema/settings.test-d.js.map +1 -0
  92. package/dist/lix-plugin/applyChanges.d.ts +3 -0
  93. package/dist/lix-plugin/applyChanges.d.ts.map +1 -0
  94. package/dist/lix-plugin/applyChanges.js +127 -0
  95. package/dist/lix-plugin/applyChanges.js.map +1 -0
  96. package/dist/lix-plugin/applyChanges.test.d.ts +2 -0
  97. package/dist/lix-plugin/applyChanges.test.d.ts.map +1 -0
  98. package/dist/lix-plugin/applyChanges.test.js +135 -0
  99. package/dist/lix-plugin/applyChanges.test.js.map +1 -0
  100. package/dist/lix-plugin/detectConflicts.d.ts +3 -0
  101. package/dist/lix-plugin/detectConflicts.d.ts.map +1 -0
  102. package/dist/lix-plugin/detectConflicts.js +47 -0
  103. package/dist/lix-plugin/detectConflicts.js.map +1 -0
  104. package/dist/lix-plugin/detectConflicts.test.d.ts +2 -0
  105. package/dist/lix-plugin/detectConflicts.test.d.ts.map +1 -0
  106. package/dist/lix-plugin/detectConflicts.test.js +251 -0
  107. package/dist/lix-plugin/detectConflicts.test.js.map +1 -0
  108. package/dist/lix-plugin/inlangLixPluginV1.d.ts +8 -0
  109. package/dist/lix-plugin/inlangLixPluginV1.d.ts.map +1 -0
  110. package/dist/lix-plugin/inlangLixPluginV1.js +109 -0
  111. package/dist/lix-plugin/inlangLixPluginV1.js.map +1 -0
  112. package/dist/lix-plugin/inlangLixPluginV1.test.d.ts +2 -0
  113. package/dist/lix-plugin/inlangLixPluginV1.test.d.ts.map +1 -0
  114. package/dist/lix-plugin/inlangLixPluginV1.test.js +418 -0
  115. package/dist/lix-plugin/inlangLixPluginV1.test.js.map +1 -0
  116. package/dist/lix-plugin/merge.test.d.ts +2 -0
  117. package/dist/lix-plugin/merge.test.d.ts.map +1 -0
  118. package/dist/lix-plugin/merge.test.js +120 -0
  119. package/dist/lix-plugin/merge.test.js.map +1 -0
  120. package/dist/lix-plugin/resolveConflictBySelecting.test.d.ts +2 -0
  121. package/dist/lix-plugin/resolveConflictBySelecting.test.d.ts.map +1 -0
  122. package/dist/lix-plugin/resolveConflictBySelecting.test.js +176 -0
  123. package/dist/lix-plugin/resolveConflictBySelecting.test.js.map +1 -0
  124. package/dist/migrations/v2/createMessageV1.d.ts +28 -0
  125. package/dist/migrations/v2/createMessageV1.d.ts.map +1 -0
  126. package/dist/migrations/v2/createMessageV1.js +31 -0
  127. package/dist/migrations/v2/createMessageV1.js.map +1 -0
  128. package/dist/migrations/v2/withLanguageTagToLocaleMigration.d.ts +9 -0
  129. package/dist/migrations/v2/withLanguageTagToLocaleMigration.d.ts.map +1 -0
  130. package/dist/migrations/v2/withLanguageTagToLocaleMigration.js +31 -0
  131. package/dist/migrations/v2/withLanguageTagToLocaleMigration.js.map +1 -0
  132. package/dist/migrations/v2/withLanguageTagToLocaleMigration.test.d.ts +2 -0
  133. package/dist/migrations/v2/withLanguageTagToLocaleMigration.test.d.ts.map +1 -0
  134. package/dist/migrations/v2/withLanguageTagToLocaleMigration.test.js +45 -0
  135. package/dist/migrations/v2/withLanguageTagToLocaleMigration.test.js.map +1 -0
  136. package/dist/plugin/cache.d.ts +6 -0
  137. package/dist/plugin/cache.d.ts.map +1 -0
  138. package/dist/plugin/cache.js +59 -0
  139. package/dist/plugin/cache.js.map +1 -0
  140. package/dist/plugin/cache.test.d.ts +2 -0
  141. package/dist/plugin/cache.test.d.ts.map +1 -0
  142. package/dist/plugin/cache.test.js +61 -0
  143. package/dist/plugin/cache.test.js.map +1 -0
  144. package/dist/plugin/errors.d.ts +41 -0
  145. package/dist/plugin/errors.d.ts.map +1 -0
  146. package/dist/plugin/errors.js +48 -0
  147. package/dist/plugin/errors.js.map +1 -0
  148. package/dist/plugin/importPlugins.d.ts +19 -0
  149. package/dist/plugin/importPlugins.d.ts.map +1 -0
  150. package/dist/plugin/importPlugins.js +43 -0
  151. package/dist/plugin/importPlugins.js.map +1 -0
  152. package/dist/plugin/importPlugins.test.d.ts +2 -0
  153. package/dist/plugin/importPlugins.test.d.ts.map +1 -0
  154. package/dist/plugin/importPlugins.test.js +95 -0
  155. package/dist/plugin/importPlugins.test.js.map +1 -0
  156. package/dist/plugin/meta/ideExtension.d.ts +54 -0
  157. package/dist/plugin/meta/ideExtension.d.ts.map +1 -0
  158. package/dist/plugin/meta/ideExtension.js +5 -0
  159. package/dist/plugin/meta/ideExtension.js.map +1 -0
  160. package/dist/plugin/schema.d.ts +152 -0
  161. package/dist/plugin/schema.d.ts.map +1 -0
  162. package/dist/plugin/schema.js +5 -0
  163. package/dist/plugin/schema.js.map +1 -0
  164. package/dist/project/api.d.ts +74 -0
  165. package/dist/project/api.d.ts.map +1 -0
  166. package/dist/project/api.js +5 -0
  167. package/dist/project/api.js.map +1 -0
  168. package/dist/project/initHandleSaveToLixOnChange.d.ts +14 -0
  169. package/dist/project/initHandleSaveToLixOnChange.d.ts.map +1 -0
  170. package/dist/project/initHandleSaveToLixOnChange.js +87 -0
  171. package/dist/project/initHandleSaveToLixOnChange.js.map +1 -0
  172. package/dist/project/loadProject.d.ts +53 -0
  173. package/dist/project/loadProject.d.ts.map +1 -0
  174. package/dist/project/loadProject.js +167 -0
  175. package/dist/project/loadProject.js.map +1 -0
  176. package/dist/project/loadProject.test.d.ts.map +1 -0
  177. package/dist/project/loadProject.test.js +146 -0
  178. package/dist/project/loadProject.test.js.map +1 -0
  179. package/dist/project/loadProjectFromDirectory.d.ts +77 -0
  180. package/dist/project/loadProjectFromDirectory.d.ts.map +1 -0
  181. package/dist/project/loadProjectFromDirectory.js +584 -0
  182. package/dist/project/loadProjectFromDirectory.js.map +1 -0
  183. package/dist/project/loadProjectFromDirectory.test.d.ts +2 -0
  184. package/dist/project/loadProjectFromDirectory.test.d.ts.map +1 -0
  185. package/dist/project/loadProjectFromDirectory.test.js +663 -0
  186. package/dist/project/loadProjectFromDirectory.test.js.map +1 -0
  187. package/dist/project/loadProjectInMemory.d.ts +8 -0
  188. package/dist/project/loadProjectInMemory.d.ts.map +1 -0
  189. package/dist/project/loadProjectInMemory.js +32 -0
  190. package/dist/project/loadProjectInMemory.js.map +1 -0
  191. package/dist/project/loadProjectInMemory.test.d.ts +2 -0
  192. package/dist/project/loadProjectInMemory.test.d.ts.map +1 -0
  193. package/dist/project/loadProjectInMemory.test.js +27 -0
  194. package/dist/project/loadProjectInMemory.test.js.map +1 -0
  195. package/dist/project/maybeCaptureTelemetry.d.ts +13 -0
  196. package/dist/project/maybeCaptureTelemetry.d.ts.map +1 -0
  197. package/dist/project/maybeCaptureTelemetry.js +53 -0
  198. package/dist/project/maybeCaptureTelemetry.js.map +1 -0
  199. package/dist/project/maybeCaptureTelemetry.test.d.ts +2 -0
  200. package/dist/project/maybeCaptureTelemetry.test.d.ts.map +1 -0
  201. package/dist/project/maybeCaptureTelemetry.test.js +65 -0
  202. package/dist/project/maybeCaptureTelemetry.test.js.map +1 -0
  203. package/dist/project/newProject.d.ts +17 -0
  204. package/dist/project/newProject.d.ts.map +1 -0
  205. package/dist/project/newProject.js +71 -0
  206. package/dist/project/newProject.js.map +1 -0
  207. package/dist/project/newProject.test.d.ts +2 -0
  208. package/dist/project/newProject.test.d.ts.map +1 -0
  209. package/dist/project/newProject.test.js +37 -0
  210. package/dist/project/newProject.test.js.map +1 -0
  211. package/dist/project/saveProjectToDirectory.d.ts +8 -0
  212. package/dist/project/saveProjectToDirectory.d.ts.map +1 -0
  213. package/dist/project/saveProjectToDirectory.js +86 -0
  214. package/dist/project/saveProjectToDirectory.js.map +1 -0
  215. package/dist/project/saveProjectToDirectory.test.d.ts +2 -0
  216. package/dist/project/saveProjectToDirectory.test.d.ts.map +1 -0
  217. package/dist/project/saveProjectToDirectory.test.js +245 -0
  218. package/dist/project/saveProjectToDirectory.test.js.map +1 -0
  219. package/dist/project/state/id$.d.ts +6 -0
  220. package/dist/project/state/id$.d.ts.map +1 -0
  221. package/dist/project/state/id$.js +19 -0
  222. package/dist/project/state/id$.js.map +1 -0
  223. package/dist/project/state/id$.test.d.ts +2 -0
  224. package/dist/project/state/id$.test.d.ts.map +1 -0
  225. package/dist/project/state/id$.test.js +36 -0
  226. package/dist/project/state/id$.test.js.map +1 -0
  227. package/dist/project/state/setSettings.d.ts +7 -0
  228. package/dist/project/state/setSettings.d.ts.map +1 -0
  229. package/dist/project/state/setSettings.js +16 -0
  230. package/dist/project/state/setSettings.js.map +1 -0
  231. package/dist/project/state/setSettings.test.d.ts +2 -0
  232. package/dist/project/state/setSettings.test.d.ts.map +1 -0
  233. package/dist/project/state/setSettings.test.js +58 -0
  234. package/dist/project/state/setSettings.test.js.map +1 -0
  235. package/dist/project/state/settings$.d.ts +7 -0
  236. package/dist/project/state/settings$.d.ts.map +1 -0
  237. package/dist/project/state/settings$.js +21 -0
  238. package/dist/project/state/settings$.js.map +1 -0
  239. package/dist/project/state/settings$.test.d.ts +2 -0
  240. package/dist/project/state/settings$.test.d.ts.map +1 -0
  241. package/dist/project/state/settings$.test.js +51 -0
  242. package/dist/project/state/settings$.test.js.map +1 -0
  243. package/dist/project/state/state.d.ts +58 -0
  244. package/dist/project/state/state.d.ts.map +1 -0
  245. package/dist/project/state/state.js +67 -0
  246. package/dist/project/state/state.js.map +1 -0
  247. package/dist/project/state/state.test.d.ts +2 -0
  248. package/dist/project/state/state.test.d.ts.map +1 -0
  249. package/dist/project/state/state.test.js +103 -0
  250. package/dist/project/state/state.test.js.map +1 -0
  251. package/dist/query-utilities/index.d.ts +5 -0
  252. package/dist/query-utilities/index.d.ts.map +1 -0
  253. package/dist/query-utilities/index.js +8 -0
  254. package/dist/query-utilities/index.js.map +1 -0
  255. package/dist/query-utilities/insertBundleNested.d.ts +4 -0
  256. package/dist/query-utilities/insertBundleNested.d.ts.map +1 -0
  257. package/dist/query-utilities/insertBundleNested.js +39 -0
  258. package/dist/query-utilities/insertBundleNested.js.map +1 -0
  259. package/dist/query-utilities/pollQuery.d.ts +14 -0
  260. package/dist/query-utilities/pollQuery.d.ts.map +1 -0
  261. package/dist/query-utilities/pollQuery.js +22 -0
  262. package/dist/query-utilities/pollQuery.js.map +1 -0
  263. package/dist/query-utilities/pollQuery.test.d.ts +2 -0
  264. package/dist/query-utilities/pollQuery.test.d.ts.map +1 -0
  265. package/dist/query-utilities/pollQuery.test.js +67 -0
  266. package/dist/query-utilities/pollQuery.test.js.map +1 -0
  267. package/dist/query-utilities/selectBundleNested.d.ts +107 -0
  268. package/dist/query-utilities/selectBundleNested.d.ts.map +1 -0
  269. package/dist/query-utilities/selectBundleNested.js +43 -0
  270. package/dist/query-utilities/selectBundleNested.js.map +1 -0
  271. package/dist/query-utilities/updateBundleNested.d.ts +12 -0
  272. package/dist/query-utilities/updateBundleNested.d.ts.map +1 -0
  273. package/dist/query-utilities/updateBundleNested.js +25 -0
  274. package/dist/query-utilities/updateBundleNested.js.map +1 -0
  275. package/dist/query-utilities/upsertBundleNested.d.ts +4 -0
  276. package/dist/query-utilities/upsertBundleNested.d.ts.map +1 -0
  277. package/dist/query-utilities/upsertBundleNested.js +50 -0
  278. package/dist/query-utilities/upsertBundleNested.js.map +1 -0
  279. package/dist/services/env-variables/index.d.ts +6 -0
  280. package/dist/services/env-variables/index.d.ts.map +1 -0
  281. package/dist/services/env-variables/index.js +9 -0
  282. package/dist/services/env-variables/index.js.map +1 -0
  283. package/dist/services/error-reporting/index.d.ts +15 -0
  284. package/dist/services/error-reporting/index.d.ts.map +1 -0
  285. package/dist/services/error-reporting/index.js +30 -0
  286. package/dist/services/error-reporting/index.js.map +1 -0
  287. package/dist/{telemetry → services/telemetry}/capture.d.ts +4 -2
  288. package/dist/services/telemetry/capture.d.ts.map +1 -0
  289. package/dist/services/telemetry/capture.js +77 -0
  290. package/dist/services/telemetry/capture.js.map +1 -0
  291. package/dist/services/telemetry/capture.test.d.ts +2 -0
  292. package/dist/services/telemetry/capture.test.d.ts.map +1 -0
  293. package/dist/services/telemetry/capture.test.js +44 -0
  294. package/dist/services/telemetry/capture.test.js.map +1 -0
  295. package/dist/utilities/detectJsonFormatting.d.ts +11 -0
  296. package/dist/utilities/detectJsonFormatting.d.ts.map +1 -0
  297. package/dist/utilities/detectJsonFormatting.js +83 -0
  298. package/dist/utilities/detectJsonFormatting.js.map +1 -0
  299. package/dist/utilities/detectJsonFormatting.test.d.ts +2 -0
  300. package/dist/utilities/detectJsonFormatting.test.d.ts.map +1 -0
  301. package/dist/utilities/detectJsonFormatting.test.js +33 -0
  302. package/dist/utilities/detectJsonFormatting.test.js.map +1 -0
  303. package/package.json +32 -40
  304. package/src/database/initDb.ts +34 -0
  305. package/src/database/initDbAndSchema.test.ts +125 -0
  306. package/src/database/jsonbPlugin.test.ts +154 -0
  307. package/src/database/jsonbPlugin.ts +215 -0
  308. package/src/database/schema.ts +127 -0
  309. package/src/helper.ts +113 -0
  310. package/src/human-id/human-id.ts +14 -0
  311. package/src/{storage/human-id → human-id}/words.test.ts +14 -14
  312. package/src/{storage/human-id → human-id}/words.ts +4 -4
  313. package/src/import-export/exportFiles.ts +36 -0
  314. package/src/import-export/importFiles.test.ts +211 -0
  315. package/src/import-export/importFiles.ts +142 -0
  316. package/src/import-export/roundtrip.test.ts +313 -0
  317. package/src/import-export/upsertBundleNestedMatchByProperties.ts +74 -0
  318. package/src/index.ts +29 -37
  319. package/src/json-schema/old-v1-message/README.md +1 -0
  320. package/src/json-schema/old-v1-message/fromMessageV1.test.ts +87 -0
  321. package/src/json-schema/old-v1-message/fromMessageV1.ts +99 -0
  322. package/src/json-schema/old-v1-message/schemaV1.ts +66 -0
  323. package/src/json-schema/old-v1-message/toMessageV1.test.ts +87 -0
  324. package/src/json-schema/old-v1-message/toMessageV1.ts +79 -0
  325. package/src/json-schema/pattern.ts +59 -0
  326. package/src/json-schema/settings.test-d.ts +21 -0
  327. package/src/json-schema/settings.ts +138 -0
  328. package/src/lix-plugin/applyChanges.test.ts +150 -0
  329. package/src/lix-plugin/applyChanges.ts +171 -0
  330. package/src/lix-plugin/detectConflicts.test.ts +286 -0
  331. package/src/lix-plugin/detectConflicts.ts +62 -0
  332. package/src/lix-plugin/inlangLixPluginV1.test.ts +439 -0
  333. package/src/lix-plugin/inlangLixPluginV1.ts +132 -0
  334. package/src/lix-plugin/merge.test.ts +133 -0
  335. package/src/lix-plugin/resolveConflictBySelecting.test.ts +188 -0
  336. package/src/migrations/v2/createMessageV1.ts +37 -0
  337. package/src/migrations/v2/withLanguageTagToLocaleMigration.test.ts +51 -0
  338. package/src/migrations/v2/withLanguageTagToLocaleMigration.ts +31 -0
  339. package/src/plugin/cache.test.ts +83 -0
  340. package/src/plugin/cache.ts +79 -0
  341. package/src/plugin/errors.ts +67 -0
  342. package/src/plugin/importPlugins.test.ts +107 -0
  343. package/src/plugin/importPlugins.ts +60 -0
  344. package/src/plugin/meta/ideExtension.ts +56 -0
  345. package/src/plugin/schema.ts +165 -0
  346. package/src/project/api.ts +77 -0
  347. package/src/project/initHandleSaveToLixOnChange.ts +93 -0
  348. package/src/project/loadProject.test.ts +177 -0
  349. package/src/project/loadProject.ts +245 -0
  350. package/src/project/loadProjectFromDirectory.test.ts +854 -0
  351. package/src/project/loadProjectFromDirectory.ts +752 -0
  352. package/src/project/loadProjectInMemory.test.ts +29 -0
  353. package/src/project/loadProjectInMemory.ts +36 -0
  354. package/src/project/maybeCaptureTelemetry.test.ts +72 -0
  355. package/src/project/maybeCaptureTelemetry.ts +61 -0
  356. package/src/project/newProject.test.ts +36 -0
  357. package/src/project/newProject.ts +78 -0
  358. package/src/project/saveProjectToDirectory.test.ts +310 -0
  359. package/src/project/saveProjectToDirectory.ts +100 -0
  360. package/src/query-utilities/index.ts +4 -0
  361. package/src/query-utilities/insertBundleNested.ts +46 -0
  362. package/src/query-utilities/selectBundleNested.ts +46 -0
  363. package/src/query-utilities/updateBundleNested.ts +35 -0
  364. package/src/query-utilities/upsertBundleNested.ts +61 -0
  365. package/src/services/env-variables/createIndexFile.js +40 -0
  366. package/src/{env-variables → services/env-variables}/index.d.ts +8 -5
  367. package/src/services/error-reporting/index.ts +28 -0
  368. package/src/services/telemetry/capture.test.ts +48 -0
  369. package/src/services/telemetry/capture.ts +98 -0
  370. package/src/utilities/detectJsonFormatting.test.ts +38 -0
  371. package/src/utilities/detectJsonFormatting.ts +109 -0
  372. package/dist/adapter/solidAdapter.d.ts +0 -33
  373. package/dist/adapter/solidAdapter.d.ts.map +0 -1
  374. package/dist/adapter/solidAdapter.js +0 -40
  375. package/dist/adapter/solidAdapter.test.d.ts +0 -2
  376. package/dist/adapter/solidAdapter.test.d.ts.map +0 -1
  377. package/dist/adapter/solidAdapter.test.js +0 -356
  378. package/dist/api.d.ts +0 -113
  379. package/dist/api.d.ts.map +0 -1
  380. package/dist/api.js +0 -1
  381. package/dist/api.test-d.d.ts +0 -2
  382. package/dist/api.test-d.d.ts.map +0 -1
  383. package/dist/api.test-d.js +0 -4
  384. package/dist/createMessageLintReportsQuery.d.ts +0 -12
  385. package/dist/createMessageLintReportsQuery.d.ts.map +0 -1
  386. package/dist/createMessageLintReportsQuery.js +0 -176
  387. package/dist/createMessagesQuery.d.ts +0 -19
  388. package/dist/createMessagesQuery.d.ts.map +0 -1
  389. package/dist/createMessagesQuery.js +0 -451
  390. package/dist/createMessagesQuery.test.d.ts +0 -2
  391. package/dist/createMessagesQuery.test.d.ts.map +0 -1
  392. package/dist/createMessagesQuery.test.js +0 -402
  393. package/dist/createNewProject.d.ts +0 -12
  394. package/dist/createNewProject.d.ts.map +0 -1
  395. package/dist/createNewProject.js +0 -38
  396. package/dist/createNewProject.test.d.ts +0 -2
  397. package/dist/createNewProject.test.d.ts.map +0 -1
  398. package/dist/createNewProject.test.js +0 -91
  399. package/dist/createNodeishFsWithAbsolutePaths.d.ts +0 -12
  400. package/dist/createNodeishFsWithAbsolutePaths.d.ts.map +0 -1
  401. package/dist/createNodeishFsWithAbsolutePaths.js +0 -38
  402. package/dist/createNodeishFsWithAbsolutePaths.test.d.ts +0 -2
  403. package/dist/createNodeishFsWithAbsolutePaths.test.d.ts.map +0 -1
  404. package/dist/createNodeishFsWithAbsolutePaths.test.js +0 -44
  405. package/dist/createNodeishFsWithWatcher.d.ts +0 -14
  406. package/dist/createNodeishFsWithWatcher.d.ts.map +0 -1
  407. package/dist/createNodeishFsWithWatcher.js +0 -75
  408. package/dist/createNodeishFsWithWatcher.test.d.ts +0 -2
  409. package/dist/createNodeishFsWithWatcher.test.d.ts.map +0 -1
  410. package/dist/createNodeishFsWithWatcher.test.js +0 -38
  411. package/dist/defaultProjectSettings.d.ts +0 -14
  412. package/dist/defaultProjectSettings.d.ts.map +0 -1
  413. package/dist/defaultProjectSettings.js +0 -22
  414. package/dist/env-variables/index.d.ts +0 -4
  415. package/dist/env-variables/index.d.ts.map +0 -1
  416. package/dist/env-variables/index.js +0 -3
  417. package/dist/errors.d.ts +0 -48
  418. package/dist/errors.d.ts.map +0 -1
  419. package/dist/errors.js +0 -62
  420. package/dist/lint/index.d.ts +0 -3
  421. package/dist/lint/index.d.ts.map +0 -1
  422. package/dist/lint/index.js +0 -2
  423. package/dist/lint/message/errors.d.ts +0 -7
  424. package/dist/lint/message/errors.d.ts.map +0 -1
  425. package/dist/lint/message/errors.js +0 -9
  426. package/dist/lint/message/lintMessages.d.ts +0 -13
  427. package/dist/lint/message/lintMessages.d.ts.map +0 -1
  428. package/dist/lint/message/lintMessages.js +0 -12
  429. package/dist/lint/message/lintMessages.test.d.ts +0 -2
  430. package/dist/lint/message/lintMessages.test.d.ts.map +0 -1
  431. package/dist/lint/message/lintMessages.test.js +0 -107
  432. package/dist/lint/message/lintSingleMessage.d.ts +0 -19
  433. package/dist/lint/message/lintSingleMessage.d.ts.map +0 -1
  434. package/dist/lint/message/lintSingleMessage.js +0 -38
  435. package/dist/lint/message/lintSingleMessage.test.d.ts +0 -2
  436. package/dist/lint/message/lintSingleMessage.test.d.ts.map +0 -1
  437. package/dist/lint/message/lintSingleMessage.test.js +0 -161
  438. package/dist/listProjects.d.ts +0 -5
  439. package/dist/listProjects.d.ts.map +0 -1
  440. package/dist/listProjects.js +0 -38
  441. package/dist/listProjects.test.d.ts +0 -2
  442. package/dist/listProjects.test.d.ts.map +0 -1
  443. package/dist/listProjects.test.js +0 -72
  444. package/dist/loadProject.d.ts +0 -19
  445. package/dist/loadProject.d.ts.map +0 -1
  446. package/dist/loadProject.js +0 -343
  447. package/dist/loadProject.test.d.ts.map +0 -1
  448. package/dist/loadProject.test.js +0 -975
  449. package/dist/messages/errors.d.ts +0 -13
  450. package/dist/messages/errors.d.ts.map +0 -1
  451. package/dist/messages/errors.js +0 -18
  452. package/dist/messages/index.d.ts +0 -3
  453. package/dist/messages/index.d.ts.map +0 -1
  454. package/dist/messages/index.js +0 -2
  455. package/dist/messages/variant.d.ts +0 -46
  456. package/dist/messages/variant.d.ts.map +0 -1
  457. package/dist/messages/variant.js +0 -176
  458. package/dist/messages/variant.test.d.ts +0 -2
  459. package/dist/messages/variant.test.d.ts.map +0 -1
  460. package/dist/messages/variant.test.js +0 -439
  461. package/dist/migrations/maybeAddModuleCache.d.ts +0 -6
  462. package/dist/migrations/maybeAddModuleCache.d.ts.map +0 -1
  463. package/dist/migrations/maybeAddModuleCache.js +0 -62
  464. package/dist/migrations/maybeCreateFirstProjectId.d.ts +0 -16
  465. package/dist/migrations/maybeCreateFirstProjectId.d.ts.map +0 -1
  466. package/dist/migrations/maybeCreateFirstProjectId.js +0 -46
  467. package/dist/migrations/maybeCreateFirstProjectId.test.d.ts +0 -2
  468. package/dist/migrations/maybeCreateFirstProjectId.test.d.ts.map +0 -1
  469. package/dist/migrations/maybeCreateFirstProjectId.test.js +0 -24
  470. package/dist/migrations/migrateToDirectory.d.ts +0 -10
  471. package/dist/migrations/migrateToDirectory.d.ts.map +0 -1
  472. package/dist/migrations/migrateToDirectory.js +0 -48
  473. package/dist/migrations/migrateToDirectory.test.d.ts +0 -2
  474. package/dist/migrations/migrateToDirectory.test.d.ts.map +0 -1
  475. package/dist/migrations/migrateToDirectory.test.js +0 -48
  476. package/dist/parseConfig.d.ts +0 -8
  477. package/dist/parseConfig.d.ts.map +0 -1
  478. package/dist/parseConfig.js +0 -26
  479. package/dist/persistence/batchedIO.d.ts +0 -11
  480. package/dist/persistence/batchedIO.d.ts.map +0 -1
  481. package/dist/persistence/batchedIO.js +0 -49
  482. package/dist/persistence/batchedIO.test.d.ts +0 -2
  483. package/dist/persistence/batchedIO.test.d.ts.map +0 -1
  484. package/dist/persistence/batchedIO.test.js +0 -56
  485. package/dist/persistence/filelock/acquireFileLock.d.ts +0 -3
  486. package/dist/persistence/filelock/acquireFileLock.d.ts.map +0 -1
  487. package/dist/persistence/filelock/acquireFileLock.js +0 -111
  488. package/dist/persistence/filelock/releaseLock.d.ts +0 -3
  489. package/dist/persistence/filelock/releaseLock.d.ts.map +0 -1
  490. package/dist/persistence/filelock/releaseLock.js +0 -24
  491. package/dist/persistence/store.d.ts +0 -107
  492. package/dist/persistence/store.d.ts.map +0 -1
  493. package/dist/persistence/store.js +0 -99
  494. package/dist/persistence/store.test.d.ts +0 -2
  495. package/dist/persistence/store.test.d.ts.map +0 -1
  496. package/dist/persistence/store.test.js +0 -79
  497. package/dist/persistence/storeApi.d.ts +0 -22
  498. package/dist/persistence/storeApi.d.ts.map +0 -1
  499. package/dist/persistence/storeApi.js +0 -1
  500. package/dist/reactivity/map.d.ts +0 -67
  501. package/dist/reactivity/map.d.ts.map +0 -1
  502. package/dist/reactivity/map.js +0 -143
  503. package/dist/reactivity/solid.d.ts +0 -14
  504. package/dist/reactivity/solid.d.ts.map +0 -1
  505. package/dist/reactivity/solid.js +0 -15
  506. package/dist/reactivity/solid.test.d.ts +0 -2
  507. package/dist/reactivity/solid.test.d.ts.map +0 -1
  508. package/dist/reactivity/solid.test.js +0 -189
  509. package/dist/reactivity/trigger.d.ts +0 -11
  510. package/dist/reactivity/trigger.d.ts.map +0 -1
  511. package/dist/reactivity/trigger.js +0 -46
  512. package/dist/resolve-modules/cache.d.ts +0 -6
  513. package/dist/resolve-modules/cache.d.ts.map +0 -1
  514. package/dist/resolve-modules/cache.js +0 -58
  515. package/dist/resolve-modules/errors.d.ts +0 -41
  516. package/dist/resolve-modules/errors.d.ts.map +0 -1
  517. package/dist/resolve-modules/errors.js +0 -45
  518. package/dist/resolve-modules/import.d.ts +0 -19
  519. package/dist/resolve-modules/import.d.ts.map +0 -1
  520. package/dist/resolve-modules/import.js +0 -102
  521. package/dist/resolve-modules/import.test.d.ts +0 -2
  522. package/dist/resolve-modules/import.test.d.ts.map +0 -1
  523. package/dist/resolve-modules/import.test.js +0 -47
  524. package/dist/resolve-modules/index.d.ts +0 -3
  525. package/dist/resolve-modules/index.d.ts.map +0 -1
  526. package/dist/resolve-modules/index.js +0 -2
  527. package/dist/resolve-modules/message-lint-rules/errors.d.ts +0 -9
  528. package/dist/resolve-modules/message-lint-rules/errors.d.ts.map +0 -1
  529. package/dist/resolve-modules/message-lint-rules/errors.js +0 -6
  530. package/dist/resolve-modules/message-lint-rules/resolveMessageLintRules.d.ts +0 -9
  531. package/dist/resolve-modules/message-lint-rules/resolveMessageLintRules.d.ts.map +0 -1
  532. package/dist/resolve-modules/message-lint-rules/resolveMessageLintRules.js +0 -24
  533. package/dist/resolve-modules/plugins/errors.d.ts +0 -33
  534. package/dist/resolve-modules/plugins/errors.d.ts.map +0 -1
  535. package/dist/resolve-modules/plugins/errors.js +0 -38
  536. package/dist/resolve-modules/plugins/resolvePlugins.d.ts +0 -3
  537. package/dist/resolve-modules/plugins/resolvePlugins.d.ts.map +0 -1
  538. package/dist/resolve-modules/plugins/resolvePlugins.js +0 -92
  539. package/dist/resolve-modules/plugins/resolvePlugins.test.d.ts +0 -2
  540. package/dist/resolve-modules/plugins/resolvePlugins.test.d.ts.map +0 -1
  541. package/dist/resolve-modules/plugins/resolvePlugins.test.js +0 -252
  542. package/dist/resolve-modules/plugins/types.d.ts +0 -57
  543. package/dist/resolve-modules/plugins/types.d.ts.map +0 -1
  544. package/dist/resolve-modules/plugins/types.js +0 -1
  545. package/dist/resolve-modules/plugins/types.test.d.ts +0 -2
  546. package/dist/resolve-modules/plugins/types.test.d.ts.map +0 -1
  547. package/dist/resolve-modules/plugins/types.test.js +0 -45
  548. package/dist/resolve-modules/resolveModules.d.ts +0 -3
  549. package/dist/resolve-modules/resolveModules.d.ts.map +0 -1
  550. package/dist/resolve-modules/resolveModules.js +0 -80
  551. package/dist/resolve-modules/resolveModules.test.d.ts +0 -2
  552. package/dist/resolve-modules/resolveModules.test.d.ts.map +0 -1
  553. package/dist/resolve-modules/resolveModules.test.js +0 -185
  554. package/dist/resolve-modules/types.d.ts +0 -63
  555. package/dist/resolve-modules/types.d.ts.map +0 -1
  556. package/dist/resolve-modules/types.js +0 -1
  557. package/dist/resolve-modules/validateModuleSettings.test.d.ts +0 -2
  558. package/dist/resolve-modules/validateModuleSettings.test.d.ts.map +0 -1
  559. package/dist/resolve-modules/validateModuleSettings.test.js +0 -71
  560. package/dist/resolve-modules/validatedModuleSettings.d.ts +0 -7
  561. package/dist/resolve-modules/validatedModuleSettings.d.ts.map +0 -1
  562. package/dist/resolve-modules/validatedModuleSettings.js +0 -11
  563. package/dist/storage/helper.d.ts +0 -11
  564. package/dist/storage/helper.d.ts.map +0 -1
  565. package/dist/storage/helper.js +0 -63
  566. package/dist/storage/helpers.test.d.ts +0 -2
  567. package/dist/storage/helpers.test.d.ts.map +0 -1
  568. package/dist/storage/helpers.test.js +0 -84
  569. package/dist/storage/human-id/human-readable-id.d.ts +0 -3
  570. package/dist/storage/human-id/human-readable-id.d.ts.map +0 -1
  571. package/dist/storage/human-id/human-readable-id.js +0 -20
  572. package/dist/storage/human-id/words.d.ts.map +0 -1
  573. package/dist/storage/human-id/words.test.d.ts.map +0 -1
  574. package/dist/telemetry/capture.d.ts.map +0 -1
  575. package/dist/telemetry/capture.js +0 -39
  576. package/dist/telemetry/groupIdentify.d.ts +0 -13
  577. package/dist/telemetry/groupIdentify.d.ts.map +0 -1
  578. package/dist/telemetry/groupIdentify.js +0 -35
  579. package/dist/test-utilities/createMessage.d.ts +0 -18
  580. package/dist/test-utilities/createMessage.d.ts.map +0 -1
  581. package/dist/test-utilities/createMessage.js +0 -17
  582. package/dist/test-utilities/createMessage.test.d.ts +0 -2
  583. package/dist/test-utilities/createMessage.test.d.ts.map +0 -1
  584. package/dist/test-utilities/createMessage.test.js +0 -106
  585. package/dist/test-utilities/index.d.ts +0 -3
  586. package/dist/test-utilities/index.d.ts.map +0 -1
  587. package/dist/test-utilities/index.js +0 -2
  588. package/dist/test-utilities/sleep.d.ts +0 -4
  589. package/dist/test-utilities/sleep.d.ts.map +0 -1
  590. package/dist/test-utilities/sleep.js +0 -9
  591. package/dist/v2/helper.d.ts +0 -43
  592. package/dist/v2/helper.d.ts.map +0 -1
  593. package/dist/v2/helper.js +0 -75
  594. package/dist/v2/helper.test.d.ts +0 -2
  595. package/dist/v2/helper.test.d.ts.map +0 -1
  596. package/dist/v2/helper.test.js +0 -92
  597. package/dist/v2/index.d.ts +0 -4
  598. package/dist/v2/index.d.ts.map +0 -1
  599. package/dist/v2/index.js +0 -2
  600. package/dist/v2/mocks/index.d.ts +0 -3
  601. package/dist/v2/mocks/index.d.ts.map +0 -1
  602. package/dist/v2/mocks/index.js +0 -2
  603. package/dist/v2/mocks/multipleMatcher/bundle.d.ts +0 -3
  604. package/dist/v2/mocks/multipleMatcher/bundle.d.ts.map +0 -1
  605. package/dist/v2/mocks/multipleMatcher/bundle.js +0 -194
  606. package/dist/v2/mocks/multipleMatcher/bundle.test.d.ts +0 -2
  607. package/dist/v2/mocks/multipleMatcher/bundle.test.d.ts.map +0 -1
  608. package/dist/v2/mocks/multipleMatcher/bundle.test.js +0 -10
  609. package/dist/v2/mocks/plural/bundle.d.ts +0 -3
  610. package/dist/v2/mocks/plural/bundle.d.ts.map +0 -1
  611. package/dist/v2/mocks/plural/bundle.js +0 -162
  612. package/dist/v2/mocks/plural/bundle.test.d.ts +0 -2
  613. package/dist/v2/mocks/plural/bundle.test.d.ts.map +0 -1
  614. package/dist/v2/mocks/plural/bundle.test.js +0 -15
  615. package/dist/v2/shim.d.ts +0 -12
  616. package/dist/v2/shim.d.ts.map +0 -1
  617. package/dist/v2/shim.js +0 -151
  618. package/dist/v2/shim.test.d.ts +0 -2
  619. package/dist/v2/shim.test.d.ts.map +0 -1
  620. package/dist/v2/shim.test.js +0 -49
  621. package/dist/v2/stubQueryApi.d.ts +0 -9
  622. package/dist/v2/stubQueryApi.d.ts.map +0 -1
  623. package/dist/v2/stubQueryApi.js +0 -38
  624. package/dist/v2/types.d.ts +0 -521
  625. package/dist/v2/types.d.ts.map +0 -1
  626. package/dist/v2/types.js +0 -78
  627. package/dist/validateProjectPath.d.ts +0 -17
  628. package/dist/validateProjectPath.d.ts.map +0 -1
  629. package/dist/validateProjectPath.js +0 -31
  630. package/dist/validateProjectPath.test.d.ts +0 -2
  631. package/dist/validateProjectPath.test.d.ts.map +0 -1
  632. package/dist/validateProjectPath.test.js +0 -40
  633. package/dist/versionedInterfaces.d.ts +0 -8
  634. package/dist/versionedInterfaces.d.ts.map +0 -1
  635. package/dist/versionedInterfaces.js +0 -8
  636. package/src/adapter/solidAdapter.test.ts +0 -472
  637. package/src/adapter/solidAdapter.ts +0 -79
  638. package/src/api.test-d.ts +0 -8
  639. package/src/api.ts +0 -116
  640. package/src/createMessageLintReportsQuery.ts +0 -225
  641. package/src/createMessagesQuery.test.ts +0 -538
  642. package/src/createMessagesQuery.ts +0 -635
  643. package/src/createNewProject.test.ts +0 -105
  644. package/src/createNewProject.ts +0 -46
  645. package/src/createNodeishFsWithAbsolutePaths.test.ts +0 -55
  646. package/src/createNodeishFsWithAbsolutePaths.ts +0 -52
  647. package/src/createNodeishFsWithWatcher.test.ts +0 -50
  648. package/src/createNodeishFsWithWatcher.ts +0 -85
  649. package/src/defaultProjectSettings.ts +0 -26
  650. package/src/env-variables/.prettierignore +0 -1
  651. package/src/env-variables/createIndexFile.js +0 -28
  652. package/src/errors.ts +0 -84
  653. package/src/lint/index.ts +0 -2
  654. package/src/lint/message/errors.ts +0 -9
  655. package/src/lint/message/lintMessages.test.ts +0 -126
  656. package/src/lint/message/lintMessages.ts +0 -25
  657. package/src/lint/message/lintSingleMessage.test.ts +0 -191
  658. package/src/lint/message/lintSingleMessage.ts +0 -57
  659. package/src/listProjects.test.ts +0 -91
  660. package/src/listProjects.ts +0 -48
  661. package/src/loadProject.test.ts +0 -1173
  662. package/src/loadProject.ts +0 -460
  663. package/src/messages/errors.ts +0 -25
  664. package/src/messages/index.ts +0 -2
  665. package/src/messages/variant.test.ts +0 -511
  666. package/src/messages/variant.ts +0 -247
  667. package/src/migrations/maybeAddModuleCache.ts +0 -68
  668. package/src/migrations/maybeCreateFirstProjectId.test.ts +0 -31
  669. package/src/migrations/maybeCreateFirstProjectId.ts +0 -51
  670. package/src/migrations/migrateToDirectory.test.ts +0 -54
  671. package/src/migrations/migrateToDirectory.ts +0 -62
  672. package/src/parseConfig.ts +0 -35
  673. package/src/persistence/batchedIO.test.ts +0 -63
  674. package/src/persistence/batchedIO.ts +0 -64
  675. package/src/persistence/filelock/acquireFileLock.ts +0 -129
  676. package/src/persistence/filelock/releaseLock.ts +0 -29
  677. package/src/persistence/store.test.ts +0 -102
  678. package/src/persistence/store.ts +0 -119
  679. package/src/persistence/storeApi.ts +0 -19
  680. package/src/reactivity/map.ts +0 -135
  681. package/src/reactivity/solid.test.ts +0 -222
  682. package/src/reactivity/solid.ts +0 -42
  683. package/src/reactivity/trigger.ts +0 -46
  684. package/src/resolve-modules/cache.ts +0 -89
  685. package/src/resolve-modules/errors.ts +0 -69
  686. package/src/resolve-modules/import.test.ts +0 -62
  687. package/src/resolve-modules/import.ts +0 -133
  688. package/src/resolve-modules/index.ts +0 -2
  689. package/src/resolve-modules/message-lint-rules/errors.ts +0 -9
  690. package/src/resolve-modules/message-lint-rules/resolveMessageLintRules.ts +0 -27
  691. package/src/resolve-modules/plugins/errors.ts +0 -56
  692. package/src/resolve-modules/plugins/resolvePlugins.test.ts +0 -301
  693. package/src/resolve-modules/plugins/resolvePlugins.ts +0 -129
  694. package/src/resolve-modules/plugins/types.test.ts +0 -53
  695. package/src/resolve-modules/plugins/types.ts +0 -76
  696. package/src/resolve-modules/resolveModules.test.ts +0 -224
  697. package/src/resolve-modules/resolveModules.ts +0 -113
  698. package/src/resolve-modules/types.ts +0 -72
  699. package/src/resolve-modules/validateModuleSettings.test.ts +0 -85
  700. package/src/resolve-modules/validatedModuleSettings.ts +0 -19
  701. package/src/storage/helper.ts +0 -74
  702. package/src/storage/helpers.test.ts +0 -95
  703. package/src/storage/human-id/human-readable-id.ts +0 -27
  704. package/src/telemetry/capture.ts +0 -49
  705. package/src/telemetry/groupIdentify.ts +0 -41
  706. package/src/test-utilities/createMessage.test.ts +0 -118
  707. package/src/test-utilities/createMessage.ts +0 -21
  708. package/src/test-utilities/index.ts +0 -2
  709. package/src/test-utilities/sleep.ts +0 -11
  710. package/src/v2/helper.test.ts +0 -95
  711. package/src/v2/helper.ts +0 -98
  712. package/src/v2/index.ts +0 -3
  713. package/src/v2/mocks/index.ts +0 -2
  714. package/src/v2/mocks/multipleMatcher/bundle.test.ts +0 -11
  715. package/src/v2/mocks/multipleMatcher/bundle.ts +0 -196
  716. package/src/v2/mocks/plural/bundle.test.ts +0 -18
  717. package/src/v2/mocks/plural/bundle.ts +0 -164
  718. package/src/v2/shim.test.ts +0 -56
  719. package/src/v2/shim.ts +0 -173
  720. package/src/v2/stubQueryApi.ts +0 -43
  721. package/src/v2/types.ts +0 -159
  722. package/src/validateProjectPath.test.ts +0 -50
  723. package/src/validateProjectPath.ts +0 -38
  724. package/src/versionedInterfaces.ts +0 -9
  725. /package/dist/{storage/human-id → human-id}/words.d.ts +0 -0
  726. /package/dist/{storage/human-id → human-id}/words.test.d.ts +0 -0
  727. /package/dist/{loadProject.test.d.ts → project/loadProject.test.d.ts} +0 -0
@@ -1,402 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-non-null-assertion */
2
- import { describe, it, expect } from "vitest";
3
- import { createMessagesQuery } from "./createMessagesQuery.js";
4
- import { createEffect, createRoot, createSignal } from "./reactivity/solid.js";
5
- import { Message } from "@inlang/message";
6
- import { createMessage } from "./test-utilities/createMessage.js";
7
- import { createNodeishMemoryFs } from "@lix-js/fs";
8
- const createChangeListener = async (cb) => createEffect(cb);
9
- const nextTick = () => new Promise((resolve) => setTimeout(resolve, 0));
10
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
11
- const awaitableCreateMessageQuery = async (_messages) => {
12
- const fs = createNodeishMemoryFs();
13
- const settings = {
14
- sourceLanguageTag: "en",
15
- languageTags: ["en"],
16
- modules: ["plugin.js", "lintRule.js"],
17
- messageLintRuleLevels: {
18
- "messageLintRule.project.missingTranslation": "error",
19
- },
20
- "plugin.project.i18next": {
21
- pathPattern: "./examples/example01/{languageTag}.json",
22
- variableReferencePattern: ["{", "}"],
23
- },
24
- };
25
- let messages = _messages();
26
- const resolvedModules = {
27
- meta: [],
28
- plugins: [],
29
- messageLintRules: [],
30
- resolvedPluginApi: {
31
- loadMessages: (() => {
32
- return messages;
33
- }),
34
- saveMessages: ((newMessages) => {
35
- messages = newMessages;
36
- }),
37
- customApi: {},
38
- },
39
- errors: [],
40
- };
41
- return new Promise((res, rej) => {
42
- const query = createMessagesQuery({
43
- projectPath: "",
44
- nodeishFs: fs,
45
- settings: () => settings,
46
- resolvedModules: () => resolvedModules,
47
- onInitialMessageLoadResult: (error) => {
48
- if (error) {
49
- rej(error);
50
- }
51
- else {
52
- res(query);
53
- }
54
- },
55
- onLoadMessageResult: () => { },
56
- onSaveMessageResult: () => { },
57
- });
58
- });
59
- };
60
- describe("create", async () => {
61
- it("should create a message", async () => {
62
- const query = await awaitableCreateMessageQuery(() => []);
63
- expect(query.get({ where: { id: "first-message" } })).toBeUndefined();
64
- const mockMessage = createMessage("first-message", { en: "Hello World" });
65
- const created = query.create({ data: mockMessage });
66
- expect(query.get({ where: { id: "first-message" } })).toEqual(mockMessage);
67
- expect(created).toBe(true);
68
- });
69
- it("query.getByDefaultAlias should return a message with a default alias", async () => {
70
- const query = await awaitableCreateMessageQuery(() => []);
71
- expect(query.get({ where: { id: "first-message" } })).toBeUndefined();
72
- const mockMessage = createMessage("first-message", { en: "Hello World" });
73
- mockMessage.alias = { default: "first-message-alias" };
74
- const created = query.create({ data: mockMessage });
75
- expect(query.get({ where: { id: "first-message" } })).toEqual(mockMessage);
76
- expect(query.getByDefaultAlias("first-message-alias")).toEqual(mockMessage);
77
- expect(created).toBe(true);
78
- });
79
- it("should return false if message with id already exists", async () => {
80
- const query = await awaitableCreateMessageQuery(() => [
81
- createMessage("first-message", { en: "Hello World" }),
82
- ]);
83
- expect(query.get({ where: { id: "first-message" } })).toBeDefined();
84
- const mockMessage = createMessage("first-message", { en: "Some Text" });
85
- query.create({ data: mockMessage });
86
- const created = query.create({ data: mockMessage });
87
- expect(created).toBe(false);
88
- });
89
- });
90
- describe("get", async () => {
91
- it("should return undefined if a message does not exist", async () => {
92
- const query = await awaitableCreateMessageQuery(() => [
93
- createMessage("first-message", { en: "Hello World" }),
94
- ]);
95
- const message = query.get({ where: { id: "none-existent-message" } });
96
- expect(message).toBeUndefined();
97
- });
98
- it("should return an object, not an array", async () => {
99
- const query = await awaitableCreateMessageQuery(() => [
100
- createMessage("first-message", { en: "Hello World" }),
101
- ]);
102
- expect(query.get({ where: { id: "first-message" } })).toBeDefined();
103
- const mockMessageInit = createMessage("first-message", { en: "Hello World" });
104
- query.create({ data: mockMessageInit });
105
- const message = query.get({ where: { id: "first-message" } });
106
- expect(message).toBeDefined();
107
- expect(Array.isArray(message)).toBe(false);
108
- });
109
- // todo: improve the readonly type
110
- it.skip("mutating the returned value should not affect subsequent return values", async () => {
111
- const query = await awaitableCreateMessageQuery(() => [
112
- createMessage("first-message", { en: "Hello World" }),
113
- ]);
114
- const message1 = query.get({ where: { id: "first-message" } });
115
- message1.variants.find((v) => v.languageTag === "en").pattern[0].value =
116
- "Hello World 2";
117
- const message2 = query.get({ where: { id: "first-message" } });
118
- expect(message1.variants.find((v) => v.languageTag === "en").pattern[0].value).toBe("Hello World 2");
119
- expect(message2.variants.find((v) => v.languageTag === "en").pattern[0].value).toBe("Hello World");
120
- });
121
- });
122
- describe("getAll", async () => {
123
- it("should return an empty array if no messages exist", async () => {
124
- const query = await awaitableCreateMessageQuery(() => []);
125
- const messages = query.getAll();
126
- expect(Object.values(messages)).toEqual([]);
127
- });
128
- it("should return all message objects", async () => {
129
- const query = await awaitableCreateMessageQuery(() => []);
130
- const mockMessage1 = createMessage("first-message", { en: "Hello World" });
131
- const mockMessage2 = createMessage("second-message", { en: "Hello World 2" });
132
- query.create({ data: mockMessage1 });
133
- query.create({ data: mockMessage2 });
134
- const messages = query.getAll();
135
- expect(Object.values(messages)).toEqual([mockMessage1, mockMessage2]);
136
- });
137
- // todo: improve the readonly type
138
- it.skip("mutating the returned value should not affect subsequent return values", async () => {
139
- const query = await awaitableCreateMessageQuery(() => [
140
- createMessage("first-message", { en: "Hello World" }),
141
- ]);
142
- const messages1 = query.getAll();
143
- Object.values(messages1)[0].variants.find((v) => v.languageTag === "en")
144
- .pattern[0].value = "Hello World 2";
145
- expect(Object.values(query.getAll())[0].variants.find((v) => v.languageTag === "en")
146
- .pattern[0].value).toBe("Hello World");
147
- });
148
- });
149
- describe("update", async () => {
150
- it("should update a message", async () => {
151
- const query = await awaitableCreateMessageQuery(() => [
152
- createMessage("first-message", { en: "Hello World" }),
153
- ]);
154
- expect(query.get({ where: { id: "first-message" } })).toBeDefined();
155
- const mockMessage = createMessage("first-message", { en: "Hello World 2" });
156
- const updated = query.update({ where: { id: "first-message" }, data: mockMessage });
157
- expect(query.get({ where: { id: "first-message" } })).toEqual(mockMessage);
158
- expect(updated).toBe(true);
159
- });
160
- it("should return false if message with id does not exist exists", async () => {
161
- const query = await awaitableCreateMessageQuery(() => []);
162
- expect(query.get({ where: { id: "first-message" } })).toBeUndefined();
163
- const mockMessage = createMessage("first-message", { en: "Hello World" });
164
- const updated = query.update({ where: { id: "first-message" }, data: mockMessage });
165
- expect(updated).toBe(false);
166
- });
167
- });
168
- describe("upsert", async () => {
169
- it("should create a message if not present yet", async () => {
170
- const query = await awaitableCreateMessageQuery(() => []);
171
- expect(query.get({ where: { id: "first-message" } })).toBeUndefined();
172
- const mockMessage = createMessage("first-message", { en: "Hello World" });
173
- const upserted = query.upsert({ where: { id: "first-message" }, data: mockMessage });
174
- expect(query.get({ where: { id: "first-message" } })).toEqual(mockMessage);
175
- expect(upserted).toBe(true);
176
- });
177
- it("should update message if id already exists", async () => {
178
- const query = await awaitableCreateMessageQuery(() => [
179
- createMessage("first-message", { en: "Hello World" }),
180
- ]);
181
- expect(query.get({ where: { id: "first-message" } })).toBeDefined();
182
- const mockMessageInit = createMessage("first-message", { en: "Hello World" });
183
- query.create({ data: mockMessageInit });
184
- expect(query.get({ where: { id: "first-message" } })).toBeDefined();
185
- const mockMessage = createMessage("first-message", { en: "Hello World 2" });
186
- const upserted = query.upsert({ where: { id: "first-message" }, data: mockMessage });
187
- expect(query.get({ where: { id: "first-message" } })).toEqual(mockMessage);
188
- expect(upserted).toBe(true);
189
- });
190
- });
191
- describe("delete", async () => {
192
- it("should delete a message", async () => {
193
- const query = await awaitableCreateMessageQuery(() => [
194
- createMessage("first-message", { en: "Hello World" }),
195
- ]);
196
- expect(query.get({ where: { id: "first-message" } })).toBeDefined();
197
- const deleted = query.delete({ where: { id: "first-message" } });
198
- expect(query.get({ where: { id: "first-message" } })).toBeUndefined();
199
- expect(deleted).toBe(true);
200
- });
201
- it("should return false if message with id does not exist", async () => {
202
- const query = await awaitableCreateMessageQuery(() => []);
203
- expect(query.get({ where: { id: "first-message" } })).toBeUndefined();
204
- const deleted = query.delete({ where: { id: "first-message" } });
205
- expect(deleted).toBe(false);
206
- });
207
- });
208
- describe("reactivity", async () => {
209
- describe("get", async () => {
210
- it("should react to `create`", async () => {
211
- await createRoot(async () => {
212
- const query = await awaitableCreateMessageQuery(() => []);
213
- // eslint-disable-next-line unicorn/no-null
214
- let message = null;
215
- await createChangeListener(() => (message = query.get({ where: { id: "1" } })));
216
- expect(message).toBeUndefined();
217
- query.create({ data: createMessage("1", { en: "before" }) });
218
- expect(message).toBeDefined();
219
- const anotherMessage = query.get({ where: { id: "1" } });
220
- expect(anotherMessage).toBeDefined();
221
- expect(message).toStrictEqual(anotherMessage);
222
- });
223
- });
224
- it("should react to `update`", async () => {
225
- await createRoot(async () => {
226
- const query = await awaitableCreateMessageQuery(() => [
227
- createMessage("1", { en: "before" }),
228
- ]);
229
- let message;
230
- await createChangeListener(() => (message = query.get({ where: { id: "1" } })));
231
- expect(message).toBeDefined();
232
- expect((message?.variants.find((variant) => variant.languageTag === "en")?.pattern[0])
233
- .value).toBe("before");
234
- query.update({ where: { id: "1" }, data: createMessage("1", { en: "after" }) });
235
- expect((message?.variants.find((variant) => variant.languageTag === "en")?.pattern[0])
236
- .value).toBe("after");
237
- });
238
- });
239
- it("should react to `upsert`", async () => {
240
- await createRoot(async () => {
241
- const query = await awaitableCreateMessageQuery(() => []);
242
- let message;
243
- await createChangeListener(() => (message = query.get({ where: { id: "1" } })));
244
- expect(message).toBeUndefined();
245
- query.upsert({ where: { id: "1" }, data: createMessage("1", { en: "before" }) });
246
- expect(message).toBeDefined();
247
- expect((message?.variants.find((variant) => variant.languageTag === "en")?.pattern[0])
248
- .value).toBe("before");
249
- query.upsert({ where: { id: "1" }, data: createMessage("1", { en: "after" }) });
250
- expect((message?.variants.find((variant) => variant.languageTag === "en")?.pattern[0])
251
- .value).toBe("after");
252
- });
253
- });
254
- it("should react to `delete`", async () => {
255
- await createRoot(async () => {
256
- const query = await awaitableCreateMessageQuery(() => [createMessage("1", { en: "" })]);
257
- let message;
258
- await createChangeListener(() => (message = query.get({ where: { id: "1" } })));
259
- expect(message).toBeDefined();
260
- query.delete({ where: { id: "1" } });
261
- expect(message).toBeUndefined();
262
- });
263
- });
264
- });
265
- describe("subscribe", async () => {
266
- describe("get", async () => {
267
- it("should subscribe to `create`", async () => {
268
- await createRoot(async () => {
269
- const query = await awaitableCreateMessageQuery(() => []);
270
- // eslint-disable-next-line unicorn/no-null
271
- let message = null;
272
- query.get.subscribe({ where: { id: "1" } }, (v) => {
273
- void (message = v);
274
- });
275
- await nextTick();
276
- expect(message).toBeUndefined();
277
- query.create({ data: createMessage("1", { en: "before" }) });
278
- expect(message).toBeDefined();
279
- });
280
- });
281
- });
282
- describe("getByDefaultAlias", async () => {
283
- it("should subscribe to `create`", async () => {
284
- await createRoot(async () => {
285
- const query = await awaitableCreateMessageQuery(() => []);
286
- // eslint-disable-next-line unicorn/no-null
287
- let message = null;
288
- query.getByDefaultAlias.subscribe("message-alias", (v) => {
289
- void (message = v);
290
- });
291
- await nextTick(); // required for effect to run on reactive map
292
- expect(message).toBeUndefined();
293
- const mockMessage = createMessage("1", { en: "before" });
294
- mockMessage.alias = { default: "message-alias" };
295
- query.create({ data: mockMessage });
296
- expect(message).toBeDefined();
297
- });
298
- });
299
- });
300
- });
301
- describe("getAll", async () => {
302
- it("should react to `create`", async () => {
303
- await createRoot(async () => {
304
- const query = await awaitableCreateMessageQuery(() => []);
305
- let messages = undefined;
306
- await createChangeListener(() => (messages = query.getAll()));
307
- expect(Object.values(messages)).toHaveLength(0);
308
- query.create({ data: createMessage("1", { en: "before" }) });
309
- expect(Object.values(messages)).toHaveLength(1);
310
- query.create({ data: createMessage("2", { en: "before" }) });
311
- expect(Object.values(messages)).toHaveLength(2);
312
- query.create({ data: createMessage("3", { en: "before" }) });
313
- expect(Object.values(messages)).toHaveLength(3);
314
- });
315
- });
316
- it("should react to `update`", async () => {
317
- await createRoot(async () => {
318
- const query = await awaitableCreateMessageQuery(() => [
319
- createMessage("1", { en: "before" }),
320
- ]);
321
- let messages = undefined;
322
- await createChangeListener(() => (messages = query.getAll()));
323
- expect(Object.values(messages)).toHaveLength(1);
324
- expect(Object.values(messages)[0].variants.find((variant) => variant.languageTag === "en")
325
- .pattern[0].value).toBe("before");
326
- query.update({ where: { id: "1" }, data: createMessage("1", { en: "after" }) });
327
- expect(Object.values(messages)).toHaveLength(1);
328
- expect(Object.values(messages)[0].variants.find((variant) => variant.languageTag === "en")
329
- .pattern[0].value).toBe("after");
330
- });
331
- });
332
- it("should react to `upsert`", async () => {
333
- await createRoot(async () => {
334
- const query = await awaitableCreateMessageQuery(() => []);
335
- let messages = undefined;
336
- await createChangeListener(() => (messages = query.getAll()));
337
- expect(Object.values(messages)).toHaveLength(0);
338
- query.upsert({ where: { id: "1" }, data: createMessage("1", { en: "before" }) });
339
- expect(Object.values(messages)).toHaveLength(1);
340
- expect(Object.values(messages)[0].variants.find((variant) => variant.languageTag === "en")
341
- .pattern[0].value).toBe("before");
342
- query.upsert({ where: { id: "1" }, data: createMessage("1", { en: "after" }) });
343
- expect(Object.values(messages)[0].variants.find((variant) => variant.languageTag === "en")
344
- .pattern[0].value).toBe("after");
345
- });
346
- });
347
- it("should react to `delete`", async () => {
348
- await createRoot(async () => {
349
- const query = await awaitableCreateMessageQuery(() => [
350
- createMessage("1", { en: "" }),
351
- createMessage("2", { en: "" }),
352
- createMessage("3", { en: "" }),
353
- ]);
354
- let messages = undefined;
355
- await createChangeListener(() => (messages = query.getAll()));
356
- expect(Object.values(messages)).toHaveLength(3);
357
- query.delete({ where: { id: "1" } });
358
- expect(Object.values(messages)).toHaveLength(2);
359
- // deleting the same id again should not have an effect
360
- query.delete({ where: { id: "1" } });
361
- expect(Object.values(messages)).toHaveLength(2);
362
- query.delete({ where: { id: "2" } });
363
- expect(Object.values(messages)).toHaveLength(1);
364
- query.delete({ where: { id: "3" } });
365
- expect(Object.values(messages)).toHaveLength(0);
366
- });
367
- });
368
- it("should not mutate messages signal outside the query when using the query", async () => {
369
- const [inputMessages] = createSignal([createMessage("1", { en: "before" })]);
370
- const query = await awaitableCreateMessageQuery(inputMessages);
371
- let messages = undefined;
372
- await createChangeListener(() => (messages = query.getAll()));
373
- expect(Object.values(messages)).toHaveLength(1);
374
- query.create({ data: createMessage("2", { en: "" }) });
375
- expect(inputMessages().length).toBe(1);
376
- });
377
- });
378
- });
379
- it("instances should not share state", async () => {
380
- await createRoot(async () => {
381
- const query1 = await awaitableCreateMessageQuery(() => [createMessage("1", { en: "before" })]);
382
- const query2 = await awaitableCreateMessageQuery(() => []);
383
- // eslint-disable-next-line unicorn/no-null
384
- let message1 = null;
385
- await createChangeListener(() => (message1 = query1.get({ where: { id: "1" } })));
386
- // eslint-disable-next-line unicorn/no-null
387
- let message2 = null;
388
- await createChangeListener(() => (message2 = query2.get({ where: { id: "1" } })));
389
- expect(message1).toBeDefined();
390
- expect(message2).toBeUndefined();
391
- query2.create({ data: createMessage("1", { en: "before" }) });
392
- expect(message2).toBeDefined();
393
- query1.update({ where: { id: "1" }, data: createMessage("1", { en: "after" }) });
394
- expect(message1.variants.find((variant) => variant.languageTag === "en").pattern[0]
395
- .value).toBe("after");
396
- expect(message2.variants.find((variant) => variant.languageTag === "en").pattern[0]
397
- .value).toBe("before");
398
- query1.delete({ where: { id: "1" } });
399
- expect(message1).toBeUndefined();
400
- expect(message2).toBeDefined();
401
- });
402
- });
@@ -1,12 +0,0 @@
1
- import type { Repository } from "@lix-js/client";
2
- import { ProjectSettings } from "@inlang/project-settings";
3
- /**
4
- * Creates a new project in the given directory.
5
- * The directory must be an absolute path, must not exist, and must end with {name}.inlang
6
- */
7
- export declare function createNewProject(args: {
8
- projectPath: string;
9
- repo: Repository;
10
- projectSettings: ProjectSettings;
11
- }): Promise<void>;
12
- //# sourceMappingURL=createNewProject.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createNewProject.d.ts","sourceRoot":"","sources":["../src/createNewProject.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAI1D;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC5C,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,UAAU,CAAA;IAChB,eAAe,EAAE,eAAe,CAAA;CAChC,GAAG,OAAO,CAAC,IAAI,CAAC,CAehB"}
@@ -1,38 +0,0 @@
1
- import { ProjectSettings } from "@inlang/project-settings";
2
- import { assertValidProjectPath } from "./validateProjectPath.js";
3
- import { defaultProjectSettings } from "./defaultProjectSettings.js";
4
- /**
5
- * Creates a new project in the given directory.
6
- * The directory must be an absolute path, must not exist, and must end with {name}.inlang
7
- */
8
- export async function createNewProject(args) {
9
- assertValidProjectPath(args.projectPath);
10
- const nodeishFs = args.repo.nodeishFs;
11
- if (await directoryExists(args.projectPath, nodeishFs)) {
12
- throw new Error(`projectPath already exists, received "${args.projectPath}"`);
13
- }
14
- const settingsText = JSON.stringify(args.projectSettings ?? defaultProjectSettings, undefined, 2);
15
- await nodeishFs.mkdir(args.projectPath, { recursive: true });
16
- await Promise.all([
17
- nodeishFs.writeFile(`${args.projectPath}/settings.json`, settingsText),
18
- nodeishFs.writeFile(`${args.projectPath}/.gitignore`, "cache"),
19
- nodeishFs.mkdir(`${args.projectPath}/cache/modules`, { recursive: true }),
20
- ]);
21
- }
22
- /**
23
- * Returns true if the path exists (file or directory), false otherwise.
24
- */
25
- async function directoryExists(filePath, nodeishFs) {
26
- try {
27
- const stat = await nodeishFs.stat(filePath);
28
- return stat.isDirectory();
29
- }
30
- catch (error) {
31
- if (error && "code" in error && error.code === "ENOENT") {
32
- return false;
33
- }
34
- else {
35
- throw new Error(`Failed to check if path exists: ${error}`, { cause: error });
36
- }
37
- }
38
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=createNewProject.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createNewProject.test.d.ts","sourceRoot":"","sources":["../src/createNewProject.test.ts"],"names":[],"mappings":""}
@@ -1,91 +0,0 @@
1
- import { describe, it, expect } from "vitest";
2
- import { createNewProject } from "./createNewProject.js";
3
- import { mockRepo } from "@lix-js/client";
4
- import { defaultProjectSettings } from "./defaultProjectSettings.js";
5
- import { loadProject } from "./loadProject.js";
6
- import { createMessage } from "./test-utilities/createMessage.js";
7
- import { sleep } from "./test-utilities/sleep.js";
8
- describe("createNewProject", () => {
9
- it("should throw if a path does not end with .inlang", async () => {
10
- const repo = await mockRepo();
11
- const projectPath = "/test/project.inl";
12
- try {
13
- await createNewProject({ projectPath, repo, projectSettings: defaultProjectSettings });
14
- // should not reach this point
15
- throw new Error("Expected an error");
16
- }
17
- catch (e) {
18
- expect(e.message).toMatch('Expected a path ending in "{name}.inlang" but received "/test/project.inl"');
19
- }
20
- });
21
- it("should throw if projectPath is not an absolute path", async () => {
22
- const repo = await mockRepo();
23
- const projectPath = "test/project.inlang";
24
- try {
25
- await createNewProject({ projectPath, repo, projectSettings: defaultProjectSettings });
26
- // should not reach this point
27
- throw new Error("Expected an error");
28
- }
29
- catch (e) {
30
- expect(e.message).toMatch('Expected an absolute path but received "test/project.inlang"');
31
- }
32
- });
33
- it("should throw if the path already exists", async () => {
34
- const repo = await mockRepo();
35
- const projectPath = "/test/project.inlang";
36
- await repo.nodeishFs.mkdir(projectPath, { recursive: true });
37
- try {
38
- await createNewProject({ projectPath, repo, projectSettings: defaultProjectSettings });
39
- // should not reach this point
40
- throw new Error("Expected an error");
41
- }
42
- catch (e) {
43
- expect(e.message).toMatch('projectPath already exists, received "/test/project.inlang"');
44
- }
45
- });
46
- it("should create default defaultProjectSettings in projectPath", async () => {
47
- const repo = await mockRepo();
48
- const projectPath = "/test/project.inlang";
49
- await createNewProject({ projectPath, repo, projectSettings: defaultProjectSettings });
50
- const json = await repo.nodeishFs.readFile(`${projectPath}/settings.json`, {
51
- encoding: "utf-8",
52
- });
53
- const settings = JSON.parse(json);
54
- expect(settings).toEqual(defaultProjectSettings);
55
- });
56
- it("should create different projectSettings in projectPath", async () => {
57
- const repo = await mockRepo();
58
- const projectPath = "/test/project.inlang";
59
- const projectSettings = { ...defaultProjectSettings, languageTags: ["en", "de", "fr"] };
60
- await createNewProject({ projectPath, repo, projectSettings });
61
- const json = await repo.nodeishFs.readFile(`${projectPath}/settings.json`, {
62
- encoding: "utf-8",
63
- });
64
- const settings = JSON.parse(json);
65
- expect(settings).toEqual(projectSettings);
66
- expect(settings).not.toEqual(defaultProjectSettings);
67
- });
68
- it("should load the project after creating it", async () => {
69
- const repo = await mockRepo();
70
- const projectPath = "/test/project.inlang";
71
- await createNewProject({ projectPath, repo, projectSettings: defaultProjectSettings });
72
- const project = await loadProject({ projectPath, repo });
73
- expect(project.errors()).toEqual([]);
74
- });
75
- it("should create messages inside the project directory", async () => {
76
- const repo = await mockRepo();
77
- const projectPath = "/test/project.inlang";
78
- await createNewProject({ projectPath, repo, projectSettings: defaultProjectSettings });
79
- const project = await loadProject({ projectPath, repo });
80
- expect(project.errors()).toEqual([]);
81
- const testMessage = createMessage("test", { en: "test message" });
82
- project.query.messages.create({ data: testMessage });
83
- const messages = project.query.messages.getAll();
84
- expect(messages.length).toBe(1);
85
- expect(messages[0]).toEqual(testMessage);
86
- await sleep(20);
87
- const json = await repo.nodeishFs.readFile("/test/messages/en.json", { encoding: "utf-8" });
88
- const jsonMessages = JSON.parse(json);
89
- expect(jsonMessages["test"]).toEqual("test message");
90
- });
91
- });
@@ -1,12 +0,0 @@
1
- import { type NodeishFilesystem } from "@lix-js/fs";
2
- /**
3
- * Wraps the nodeish filesystem subset with a function that intercepts paths
4
- * and prepends the base path.
5
- *
6
- * The paths are resolved from the `projectPath` argument.
7
- */
8
- export declare const createNodeishFsWithAbsolutePaths: (args: {
9
- projectPath: string;
10
- nodeishFs: NodeishFilesystem;
11
- }) => NodeishFilesystem;
12
- //# sourceMappingURL=createNodeishFsWithAbsolutePaths.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createNodeishFsWithAbsolutePaths.d.ts","sourceRoot":"","sources":["../src/createNodeishFsWithAbsolutePaths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAGlE;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,SAAU;IACtD,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,iBAAiB,CAAA;CAC5B,KAAG,iBAuCH,CAAA"}
@@ -1,38 +0,0 @@
1
- import { normalizePath } from "@lix-js/fs";
2
- import { isAbsolutePath } from "./validateProjectPath.js";
3
- /**
4
- * Wraps the nodeish filesystem subset with a function that intercepts paths
5
- * and prepends the base path.
6
- *
7
- * The paths are resolved from the `projectPath` argument.
8
- */
9
- export const createNodeishFsWithAbsolutePaths = (args) => {
10
- if (!isAbsolutePath(args.projectPath)) {
11
- throw new Error(`Expected an absolute path but received "${args.projectPath}".`);
12
- }
13
- // get the base path of the settings file by
14
- // removing the file name from the path
15
- const basePath = normalizePath(args.projectPath).split("/").slice(0, -1).join("/");
16
- const makeAbsolute = (path) => {
17
- if (isAbsolutePath(path)) {
18
- return normalizePath(path);
19
- }
20
- return normalizePath(basePath + "/" + path);
21
- };
22
- return {
23
- // @ts-expect-error
24
- readFile: (path, options) => args.nodeishFs.readFile(makeAbsolute(path), options),
25
- readdir: (path) => args.nodeishFs.readdir(makeAbsolute(path)),
26
- mkdir: (path, options) => args.nodeishFs.mkdir(makeAbsolute(path), options),
27
- writeFile: (path, data) => args.nodeishFs.writeFile(makeAbsolute(path), data),
28
- stat: (path) => args.nodeishFs.stat(makeAbsolute(path)),
29
- rm: (path) => args.nodeishFs.rm(makeAbsolute(path)),
30
- rmdir: (path) => args.nodeishFs.rmdir(makeAbsolute(path)),
31
- watch: (path, options) => args.nodeishFs.watch(makeAbsolute(path), options),
32
- // This might be surprising when symlinks were intended to be relative
33
- symlink: (target, path) => args.nodeishFs.symlink(makeAbsolute(target), makeAbsolute(path)),
34
- unlink: (path) => args.nodeishFs.unlink(makeAbsolute(path)),
35
- readlink: (path) => args.nodeishFs.readlink(makeAbsolute(path)),
36
- lstat: (path) => args.nodeishFs.lstat(makeAbsolute(path)),
37
- };
38
- };
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=createNodeishFsWithAbsolutePaths.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createNodeishFsWithAbsolutePaths.test.d.ts","sourceRoot":"","sources":["../src/createNodeishFsWithAbsolutePaths.test.ts"],"names":[],"mappings":""}