@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,224 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-non-null-assertion */
2
- import type { MessageLintRule } from "@inlang/message-lint-rule"
3
- import type { Plugin } from "@inlang/plugin"
4
- import { expect, it } from "vitest"
5
- import {
6
- ModuleError,
7
- ModuleExportIsInvalidError,
8
- ModuleHasNoExportsError,
9
- ModuleImportError,
10
- ModuleSettingsAreInvalidError,
11
- } from "./errors.js"
12
- import { resolveModules } from "./resolveModules.js"
13
- import type { ProjectSettings } from "@inlang/project-settings"
14
- import type { InlangModule } from "@inlang/module"
15
- import { Type } from "@sinclair/typebox"
16
-
17
- it("should return an error if a plugin cannot be imported", async () => {
18
- const settings: ProjectSettings = {
19
- sourceLanguageTag: "en",
20
- languageTags: ["de", "en"],
21
- modules: ["https://myplugin.com/index.js"],
22
- }
23
-
24
- const resolved = await resolveModules({
25
- projectPath: "/project.inlang",
26
- settings,
27
- nodeishFs: {} as any,
28
- _import: () => {
29
- throw new ModuleImportError({
30
- module: settings.modules[0]!,
31
- cause: new Error("Could not import"),
32
- })
33
- },
34
- })
35
-
36
- expect(resolved.errors[0]).toBeInstanceOf(ModuleImportError)
37
- })
38
-
39
- it("should resolve plugins and message lint rules successfully", async () => {
40
- // Define mock data
41
- const mockPlugin: Plugin = {
42
- id: "plugin.namespace.mock",
43
- description: { en: "Mock plugin description" },
44
- displayName: { en: "Mock Plugin" },
45
-
46
- loadMessages: () => undefined as any,
47
- saveMessages: () => undefined as any,
48
- addCustomApi: () => ({
49
- "app.inlang.ideExtension": {
50
- messageReferenceMatcher: () => undefined as any,
51
- },
52
- }),
53
- }
54
-
55
- const mockMessageLintRule: MessageLintRule = {
56
- id: "messageLintRule.namespace.mock",
57
- description: { en: "Mock lint rule description" },
58
- displayName: { en: "Mock Lint Rule" },
59
-
60
- run: () => undefined,
61
- }
62
-
63
- const settings: ProjectSettings = {
64
- sourceLanguageTag: "en",
65
- languageTags: ["de", "en"],
66
- modules: ["lint-rule.js", "plugin.js"],
67
- }
68
-
69
- const _import = async (name: string) => {
70
- if (name === "lint-rule.js") {
71
- return {
72
- default: mockMessageLintRule,
73
- }
74
- } else {
75
- return {
76
- default: mockPlugin,
77
- }
78
- }
79
- }
80
-
81
- // Call the function
82
- const resolved = await resolveModules({
83
- projectPath: "/project.inlang",
84
- settings,
85
- _import,
86
- nodeishFs: {} as any,
87
- })
88
-
89
- // Assert results
90
- expect(resolved.errors).toHaveLength(0)
91
- // Check for the meta data of the plugin
92
- expect(resolved.plugins.some((module) => module.id === mockPlugin.id)).toBeDefined()
93
- // Check for the app specific api
94
- expect(resolved.resolvedPluginApi["customApi"]?.["app.inlang.ideExtension"]).toBeDefined()
95
- // Check for the lint rule
96
- expect(resolved.messageLintRules[0]?.id).toBe(mockMessageLintRule.id)
97
- })
98
-
99
- it("should return an error if a module cannot be imported", async () => {
100
- const settings: ProjectSettings = {
101
- sourceLanguageTag: "en",
102
- languageTags: ["de", "en"],
103
- modules: ["https://myplugin.com/index.js"],
104
- }
105
-
106
- const _import = async () => {
107
- throw new ModuleImportError({
108
- module: settings.modules[0]!,
109
- cause: new Error(),
110
- })
111
- }
112
-
113
- // Call the function
114
- const resolved = await resolveModules({
115
- projectPath: "/project.inlang",
116
- settings,
117
- _import,
118
- nodeishFs: {} as any,
119
- })
120
-
121
- // Assert results
122
- expect(resolved.errors[0]).toBeInstanceOf(ModuleImportError)
123
- })
124
-
125
- it("should return an error if a module does not export anything", async () => {
126
- const settings: ProjectSettings = {
127
- sourceLanguageTag: "en",
128
- languageTags: ["de", "en"],
129
- modules: ["https://myplugin.com/index.js"],
130
- }
131
-
132
- const _import = async () => ({})
133
-
134
- // Call the function
135
- const resolved = await resolveModules({
136
- projectPath: "/project.inlang",
137
- settings,
138
- _import,
139
- nodeishFs: {} as any,
140
- })
141
-
142
- // Assert results
143
- expect(resolved.errors[0]).toBeInstanceOf(ModuleHasNoExportsError)
144
- })
145
-
146
- it("should return an error if a module exports an invalid plugin or lint rule", async () => {
147
- const settings: ProjectSettings = {
148
- sourceLanguageTag: "en",
149
- languageTags: ["de", "en"],
150
- modules: ["https://myplugin.com/index.js"],
151
- }
152
- const _import = async () =>
153
- ({
154
- // @ts-expect-error - invalid meta of a plugin
155
- default: {
156
- id: "plugin.namespace.mock",
157
- description: { en: "Mock plugin description" },
158
- },
159
- } satisfies InlangModule)
160
-
161
- const resolved = await resolveModules({
162
- projectPath: "/project.inlang",
163
- settings,
164
- _import,
165
- nodeishFs: {} as any,
166
- })
167
- expect(resolved.errors[0]).toBeInstanceOf(ModuleExportIsInvalidError)
168
- })
169
-
170
- it("should handle other unhandled errors during plugin resolution", async () => {
171
- const errorMessage = "Unhandled error during plugin resolution"
172
- const settings: ProjectSettings = {
173
- sourceLanguageTag: "en",
174
- languageTags: ["de", "en"],
175
- modules: ["https://myplugin.com/index.js"],
176
- }
177
-
178
- const _import = async () => {
179
- throw new Error(errorMessage)
180
- }
181
-
182
- // Call the function
183
- const resolved = await resolveModules({
184
- projectPath: "/project.inlang",
185
- settings,
186
- _import,
187
- nodeishFs: {} as any,
188
- })
189
-
190
- // Assert results
191
- expect(resolved.errors[0]).toBeInstanceOf(ModuleError)
192
- })
193
- it("should return an error if a moduleSettings are invalid", async () => {
194
- const settings: ProjectSettings = {
195
- sourceLanguageTag: "en",
196
- languageTags: ["de", "en"],
197
- modules: ["plugin.js"],
198
- "plugin.namespace.mock": {
199
- ignore: ["invalid"],
200
- },
201
- }
202
-
203
- const _import = async () => ({
204
- default: {
205
- id: "plugin.namespace.mock",
206
- description: { en: "Mock plugin description" },
207
- displayName: { en: "Mock Plugin" },
208
- settingsSchema: Type.Object({
209
- ignore: Type.String(),
210
- }),
211
- },
212
- })
213
-
214
- // Call the function
215
- const resolved = await resolveModules({
216
- projectPath: "/project.inlang",
217
- settings,
218
- _import,
219
- nodeishFs: {} as any,
220
- })
221
-
222
- // Assert results
223
- expect(resolved.errors[0]).toBeInstanceOf(ModuleSettingsAreInvalidError)
224
- })
@@ -1,113 +0,0 @@
1
- import type { ResolveModuleFunction } from "./types.js"
2
- import { InlangModule } from "@inlang/module"
3
- import {
4
- ModuleError,
5
- ModuleImportError,
6
- ModuleHasNoExportsError,
7
- ModuleExportIsInvalidError,
8
- ModuleSettingsAreInvalidError,
9
- } from "./errors.js"
10
- import { tryCatch } from "@inlang/result"
11
- import { resolveMessageLintRules } from "./message-lint-rules/resolveMessageLintRules.js"
12
- import { createImport } from "./import.js"
13
- import { resolvePlugins } from "./plugins/resolvePlugins.js"
14
- import { TypeCompiler } from "@sinclair/typebox/compiler"
15
- import { validatedModuleSettings } from "./validatedModuleSettings.js"
16
- import type { Plugin } from "@inlang/plugin"
17
- import type { MessageLintRule } from "@inlang/message-lint-rule"
18
-
19
- const ModuleCompiler = TypeCompiler.Compile(InlangModule)
20
-
21
- export const resolveModules: ResolveModuleFunction = async (args) => {
22
- const _import = args._import ?? createImport(args.projectPath, args.nodeishFs)
23
-
24
- const allPlugins: Array<Plugin> = []
25
- const allMessageLintRules: Array<MessageLintRule> = []
26
- const meta: Awaited<ReturnType<ResolveModuleFunction>>["meta"] = []
27
- const moduleErrors: Array<ModuleError> = []
28
-
29
- async function resolveModule(module: string) {
30
- const importedModule = await tryCatch<InlangModule>(() => _import(module))
31
-
32
- // -- FAILED TO IMPORT --
33
- if (importedModule.error) {
34
- moduleErrors.push(
35
- new ModuleImportError({
36
- module: module,
37
- cause: importedModule.error as Error,
38
- })
39
- )
40
- return
41
- }
42
-
43
- // -- MODULE DOES NOT EXPORT ANYTHING --
44
- if (importedModule.data?.default === undefined) {
45
- moduleErrors.push(
46
- new ModuleHasNoExportsError({
47
- module: module,
48
- })
49
- )
50
- return
51
- }
52
-
53
- // -- CHECK IF MODULE IS SYNTACTIALLY VALID
54
- const isValidModule = ModuleCompiler.Check(importedModule.data)
55
- if (isValidModule === false) {
56
- const errors = [...ModuleCompiler.Errors(importedModule.data)]
57
- moduleErrors.push(
58
- new ModuleExportIsInvalidError({
59
- module: module,
60
- errors,
61
- })
62
- )
63
-
64
- return
65
- }
66
-
67
- // -- VALIDATE MODULE SETTINGS
68
-
69
- const result = validatedModuleSettings({
70
- settingsSchema: importedModule.data.default.settingsSchema,
71
- moduleSettings: args.settings[importedModule.data.default.id],
72
- })
73
- if (result !== "isValid") {
74
- moduleErrors.push(new ModuleSettingsAreInvalidError({ module: module, errors: result }))
75
- return
76
- }
77
-
78
- meta.push({
79
- module: module,
80
- id: importedModule.data.default.id,
81
- })
82
-
83
- if (importedModule.data.default.id.startsWith("plugin.")) {
84
- allPlugins.push(importedModule.data.default as Plugin)
85
- } else if (importedModule.data.default.id.startsWith("messageLintRule.")) {
86
- allMessageLintRules.push(importedModule.data.default as MessageLintRule)
87
- } else {
88
- moduleErrors.push(
89
- new ModuleError(
90
- `Unimplemented module type ${importedModule.data.default.id}.The module has not been installed.`,
91
- { module: module }
92
- )
93
- )
94
- }
95
- }
96
-
97
- await Promise.all(args.settings.modules.map(resolveModule))
98
- const resolvedPlugins = await resolvePlugins({
99
- plugins: allPlugins,
100
- settings: args.settings,
101
- nodeishFs: args.nodeishFs,
102
- })
103
-
104
- const resolvedLintRules = resolveMessageLintRules({ messageLintRules: allMessageLintRules })
105
-
106
- return {
107
- meta,
108
- messageLintRules: allMessageLintRules,
109
- plugins: allPlugins,
110
- resolvedPluginApi: resolvedPlugins.data,
111
- errors: [...moduleErrors, ...resolvedLintRules.errors, ...resolvedPlugins.errors],
112
- }
113
- }
@@ -1,72 +0,0 @@
1
- import type { ProjectSettings } from "@inlang/project-settings"
2
- import type { MessageLintRule } from "@inlang/message-lint-rule"
3
- import type { Plugin } from "@inlang/plugin"
4
- import type {
5
- NodeishFilesystemSubset,
6
- ResolvePluginsFunction,
7
- ResolvedPluginApi,
8
- } from "./plugins/types.js"
9
- import type { ModuleHasNoExportsError, ModuleImportError } from "./errors.js"
10
- import type { ImportFunction } from "./import.js"
11
- import type { resolveMessageLintRules } from "./message-lint-rules/resolveMessageLintRules.js"
12
-
13
- /**
14
- * Function that resolves modules from the config.
15
- *
16
- * Pass a custom `_import` function to override the default import function.
17
- */
18
- export type ResolveModuleFunction = (args: {
19
- projectPath: string
20
- settings: ProjectSettings
21
- nodeishFs: NodeishFilesystemSubset
22
- _import?: ImportFunction
23
- }) => Promise<{
24
- /**
25
- * Metadata about the resolved module.
26
- *
27
- * @example
28
- * [{
29
- * id: "plugin.inlang.json",
30
- * module: "https://myplugin.com/index.js"
31
- * }]
32
- */
33
- meta: Array<{
34
- /**
35
- * The module link.
36
- *
37
- * @example "https://myplugin.com/index.js"
38
- */
39
- module: string
40
- /**
41
- * The resolved item id of the module.
42
- */
43
- id: Plugin["id"] | MessageLintRule["id"]
44
- }>
45
- /**
46
- * The resolved plugins.
47
- */
48
- plugins: Array<Plugin>
49
- /**
50
- * The resolved message lint rules.
51
- */
52
- messageLintRules: Array<MessageLintRule>
53
- /**
54
- * The resolved api provided by plugins.
55
- */
56
- resolvedPluginApi: ResolvedPluginApi
57
- /**
58
- * Errors during the resolution process.
59
- *
60
- * This includes errors from:
61
- * - importing module
62
- * - resolving plugins
63
- * - resolving lint rules
64
- * - resolving the runtime plugin api
65
- */
66
- errors: Array<
67
- | ModuleHasNoExportsError
68
- | ModuleImportError
69
- | Awaited<ReturnType<ResolvePluginsFunction>>["errors"][number]
70
- | Awaited<ReturnType<typeof resolveMessageLintRules>>["errors"][number]
71
- >
72
- }>
@@ -1,85 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-non-null-assertion */
2
- import { expect, test } from "vitest"
3
- import { Plugin, MessageLintRule } from "../index.js"
4
- // import { createNodeishMemoryFs } from "@lix-js/fs"
5
- import { Type } from "@sinclair/typebox"
6
- import { validatedModuleSettings } from "./validatedModuleSettings.js"
7
-
8
- const mockPluginSchema: Plugin["settingsSchema"] = Type.Object({
9
- pathPattern: Type.Union([
10
- Type.String({
11
- pattern: "^(\\./|\\../|/)[^*]*\\{languageTag\\}[^*]*\\.json",
12
- description: "The pathPattern must contain `{languageTag}` and end with `.json`.",
13
- }),
14
- Type.Record(
15
- Type.String({
16
- pattern: "^[^.]+$",
17
- description: "Dots are not allowd ",
18
- examples: ["website", "app", "homepage"],
19
- }),
20
- Type.String({
21
- pattern: "^(\\./|\\../|/)[^*]*\\{languageTag\\}[^*]*\\.json",
22
- description: "The pathPattern must contain `{languageTag}` and end with `.json`.",
23
- })
24
- ),
25
- ]),
26
- variableReferencePattern: Type.Array(Type.String()),
27
- })
28
-
29
- const mockMessageLintRuleSchema: MessageLintRule["settingsSchema"] = Type.Object({
30
- ignore: Type.Array(
31
- Type.String({
32
- pattern: '([^"]*)',
33
- description: "All items in the array need quotaion marks at the end and beginning",
34
- })
35
- ),
36
- })
37
-
38
- test("if PluginSchema does match with the moduleSettings", async () => {
39
- const isValid = await validatedModuleSettings({
40
- settingsSchema: mockPluginSchema,
41
- moduleSettings: {
42
- pathPattern: "./examples/example01/{languageTag}.json",
43
- variableReferencePattern: ["{", "}"],
44
- },
45
- })
46
-
47
- expect(isValid).toBe("isValid")
48
- })
49
-
50
- test("if namespace settings are valide", async () => {
51
- const isValid = validatedModuleSettings({
52
- settingsSchema: mockPluginSchema,
53
- moduleSettings: {
54
- pathPattern: {
55
- website: "./{languageTag}examplerFolder/ExampleFile.json",
56
- app: "../{languageTag}examplerFolder/ExampleFile.json",
57
- footer: "./{languageTag}examplerFolder/ExampleFile.json",
58
- },
59
- variableReferencePattern: ["{", "}"],
60
- },
61
- })
62
- expect(isValid).toBe("isValid")
63
- })
64
-
65
- test(" if MessageLintRuleSchema match with the settings", async () => {
66
- const isValid = await validatedModuleSettings({
67
- settingsSchema: mockMessageLintRuleSchema,
68
- moduleSettings: {
69
- ignore: ["example", "warning"],
70
- },
71
- })
72
-
73
- expect(isValid).toBe("isValid")
74
- })
75
-
76
- test("if messageLintRule settings are not matching to the settingsSchema would pass ", async () => {
77
- const isValid = validatedModuleSettings({
78
- settingsSchema: mockMessageLintRuleSchema,
79
- moduleSettings: {
80
- ignore: "example",
81
- },
82
- })
83
-
84
- expect(isValid).not.toBe("isValid")
85
- })
@@ -1,19 +0,0 @@
1
- import type { InlangModule } from "@inlang/module"
2
- import type { TSchema } from "@sinclair/typebox"
3
- import { Value, type ValueError } from "@sinclair/typebox/value"
4
-
5
- export const validatedModuleSettings = (args: {
6
- settingsSchema: InlangModule["default"]["settingsSchema"]
7
- moduleSettings: unknown
8
- }): "isValid" | ValueError[] => {
9
- if (args.settingsSchema && args.moduleSettings) {
10
- const hasValidSettings = Value.Check(args.settingsSchema as TSchema, args.moduleSettings)
11
-
12
- if (hasValidSettings === false) {
13
- const errors = [...Value.Errors(args.settingsSchema as TSchema, args.moduleSettings)]
14
-
15
- return errors
16
- }
17
- }
18
- return "isValid"
19
- }
@@ -1,74 +0,0 @@
1
- import { Message, Variant } from "../versionedInterfaces.js"
2
-
3
- const fileExtension = ".json"
4
-
5
- export function getMessageIdFromPath(path: string) {
6
- if (!path.endsWith(fileExtension)) {
7
- return
8
- }
9
-
10
- const cleanedPath = path.replace(/\/$/, "") // This regex matches a trailing slash and replaces it with an empty string
11
- const messageFileName = cleanedPath.split("/").join("_") // we split by the first leading namespace or _ separator - make sure slashes don't exit in the id
12
- // const messageFileName = pathParts.at(-1)!
13
-
14
- const lastDotIndex = messageFileName.lastIndexOf(".")
15
-
16
- // Extract until the last dot (excluding the dot)
17
- return messageFileName.slice(0, Math.max(0, lastDotIndex))
18
- }
19
-
20
- export function getPathFromMessageId(id: string) {
21
- const path = id.replace("_", "/") + fileExtension
22
- return path
23
- }
24
-
25
- /**
26
- * Returns a copy of a message object with sorted variants and object keys.
27
- * This produces a deterministic result when passed to stringify
28
- * independent of the initialization order.
29
- */
30
- export function normalizeMessage(message: Message) {
31
- // order keys in message
32
- const messageWithSortedKeys: any = {}
33
- for (const key of Object.keys(message).sort()) {
34
- messageWithSortedKeys[key] = (message as any)[key]
35
- }
36
-
37
- // order variants
38
- messageWithSortedKeys["variants"] = messageWithSortedKeys["variants"]
39
- .sort((variantA: Variant, variantB: Variant) => {
40
- // compare by language
41
- const languageComparison = variantA.languageTag.localeCompare(variantB.languageTag)
42
-
43
- // if languages are the same, compare by match
44
- if (languageComparison === 0) {
45
- return variantA.match.join("-").localeCompare(variantB.match.join("-"))
46
- }
47
-
48
- return languageComparison
49
- })
50
- // order keys in each variant
51
- .map((variant: Variant) => {
52
- const variantWithSortedKeys: any = {}
53
- for (const variantKey of Object.keys(variant).sort()) {
54
- if (variantKey === "pattern") {
55
- variantWithSortedKeys[variantKey] = (variant as any)["pattern"].map((token: any) => {
56
- const tokenWithSortedKey: any = {}
57
- for (const tokenKey of Object.keys(token).sort()) {
58
- tokenWithSortedKey[tokenKey] = token[tokenKey]
59
- }
60
- return tokenWithSortedKey
61
- })
62
- } else {
63
- variantWithSortedKeys[variantKey] = (variant as any)[variantKey]
64
- }
65
- }
66
- return variantWithSortedKeys
67
- })
68
-
69
- return messageWithSortedKeys as Message
70
- }
71
-
72
- export function stringifyMessage(message: Message) {
73
- return JSON.stringify(normalizeMessage(message), undefined, 4)
74
- }
@@ -1,95 +0,0 @@
1
- import { describe, it, expect } from "vitest"
2
- // import { parseLixUri, parseOrigin } from "./helpers.js"
3
- import { normalizeMessage, stringifyMessage } from "./helper.js"
4
- import type { Message } from "@inlang/message"
5
-
6
- const unsortedMessageRaw: Message = {
7
- alias: {},
8
- selectors: [],
9
- id: "footer_categories_apps",
10
- variants: [
11
- { languageTag: "a", match: ["*", "1"], pattern: [{ type: "Text", value: "2" }] },
12
- { languageTag: "a", match: ["*", "*"], pattern: [{ type: "Text", value: "1" }] },
13
- {
14
- languageTag: "a",
15
- match: ["1", "*"],
16
- pattern: [
17
- { type: "Text", value: "2" },
18
- { type: "Text", value: "2" },
19
- ],
20
- },
21
- { languageTag: "b", match: [], pattern: [{ type: "Text", value: "4" }] },
22
- { languageTag: "a", match: ["1", "1"], pattern: [{ type: "Text", value: "2" }] },
23
- { languageTag: "c", match: [], pattern: [{ value: "5", type: "Text" }] },
24
- { match: [], languageTag: "d", pattern: [{ type: "Text", value: "6" }] },
25
- { languageTag: "e", match: [], pattern: [{ type: "Text", value: "7" }] },
26
- { languageTag: "f", match: [], pattern: [{ type: "Text", value: "8" }] },
27
- { languageTag: "g", match: [], pattern: [{ type: "Text", value: "9" }] },
28
- ],
29
- }
30
-
31
- const sortedMessageRaw: Message = {
32
- alias: {},
33
- id: "footer_categories_apps",
34
- selectors: [],
35
- variants: [
36
- { languageTag: "a", match: ["*", "*"], pattern: [{ type: "Text", value: "1" }] },
37
- { languageTag: "a", match: ["*", "1"], pattern: [{ type: "Text", value: "2" }] },
38
- {
39
- languageTag: "a",
40
- match: ["1", "*"],
41
- pattern: [
42
- { type: "Text", value: "2" },
43
- { type: "Text", value: "2" },
44
- ],
45
- },
46
- { languageTag: "a", match: ["1", "1"], pattern: [{ type: "Text", value: "2" }] },
47
- { languageTag: "b", match: [], pattern: [{ type: "Text", value: "4" }] },
48
- { languageTag: "c", match: [], pattern: [{ type: "Text", value: "5" }] },
49
- { languageTag: "d", match: [], pattern: [{ type: "Text", value: "6" }] },
50
- { languageTag: "e", match: [], pattern: [{ type: "Text", value: "7" }] },
51
- { languageTag: "f", match: [], pattern: [{ type: "Text", value: "8" }] },
52
- { languageTag: "g", match: [], pattern: [{ type: "Text", value: "9" }] },
53
- ],
54
- }
55
-
56
- // stringify with no indentation
57
- function str(obj: any) {
58
- return JSON.stringify(obj)
59
- }
60
-
61
- // stringify with 2 space indentation
62
- function str2(obj: any) {
63
- return JSON.stringify(obj, undefined, 2)
64
- }
65
-
66
- // stringify with 4 space indentation
67
- function str4(obj: any) {
68
- return JSON.stringify(obj, undefined, 4)
69
- }
70
-
71
- describe("normalizeMessage", () => {
72
- it("should return the message with sorted keys and variants", () => {
73
- // test cases are not the same (deep equal) before normalization
74
- // array order of variants is different
75
- expect(unsortedMessageRaw).not.toEqual(sortedMessageRaw)
76
-
77
- // test cases are the same after normalization
78
- expect(normalizeMessage(unsortedMessageRaw)).toEqual(sortedMessageRaw)
79
-
80
- // stringify results are not the same before normalization
81
- expect(str(unsortedMessageRaw)).not.toBe(str(sortedMessageRaw))
82
-
83
- // stringify results are the same after normalization
84
- expect(str(normalizeMessage(unsortedMessageRaw))).toBe(str(sortedMessageRaw))
85
- expect(str2(normalizeMessage(unsortedMessageRaw))).toBe(str2(sortedMessageRaw))
86
- expect(str4(normalizeMessage(unsortedMessageRaw))).toBe(str4(sortedMessageRaw))
87
- })
88
- })
89
-
90
- describe("stringifyMessage", () => {
91
- it("should normalize and JSON stringify a message with 4 space indentation", () => {
92
- expect(stringifyMessage(unsortedMessageRaw)).toBe(str4(sortedMessageRaw))
93
- expect(stringifyMessage(sortedMessageRaw)).toBe(str4(sortedMessageRaw))
94
- })
95
- })