@inlang/sdk 0.3.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/adapter/solidAdapter.d.ts +2 -2
  2. package/dist/adapter/solidAdapter.d.ts.map +1 -1
  3. package/dist/adapter/solidAdapter.js +2 -2
  4. package/dist/adapter/solidAdapter.test.js +68 -78
  5. package/dist/api.d.ts +10 -6
  6. package/dist/api.d.ts.map +1 -1
  7. package/dist/api.test-d.d.ts +2 -0
  8. package/dist/api.test-d.d.ts.map +1 -0
  9. package/dist/api.test-d.js +4 -0
  10. package/dist/createMessageLintReportsQuery.d.ts +2 -2
  11. package/dist/createMessageLintReportsQuery.d.ts.map +1 -1
  12. package/dist/createMessageLintReportsQuery.js +11 -11
  13. package/dist/createMessagesQuery.js +1 -1
  14. package/dist/errors.d.ts +3 -3
  15. package/dist/errors.d.ts.map +1 -1
  16. package/dist/errors.js +6 -6
  17. package/dist/index.d.ts +2 -2
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +2 -2
  20. package/dist/lint/message/lintMessages.d.ts +3 -7
  21. package/dist/lint/message/lintMessages.d.ts.map +1 -1
  22. package/dist/lint/message/lintMessages.test.js +38 -36
  23. package/dist/lint/message/lintSingleMessage.d.ts +3 -7
  24. package/dist/lint/message/lintSingleMessage.d.ts.map +1 -1
  25. package/dist/lint/message/lintSingleMessage.js +10 -10
  26. package/dist/lint/message/lintSingleMessage.test.js +71 -65
  27. package/dist/{openInlangProject.d.ts → loadProject.d.ts} +3 -3
  28. package/dist/loadProject.d.ts.map +1 -0
  29. package/dist/{openInlangProject.js → loadProject.js} +70 -66
  30. package/dist/loadProject.test.d.ts +2 -0
  31. package/dist/loadProject.test.d.ts.map +1 -0
  32. package/dist/{openInlangProject.test.js → loadProject.test.js} +160 -176
  33. package/dist/parseConfig.d.ts +2 -2
  34. package/dist/parseConfig.d.ts.map +1 -1
  35. package/dist/parseConfig.js +3 -3
  36. package/dist/resolve-modules/import.js +1 -1
  37. package/dist/resolve-modules/message-lint-rules/resolveMessageLintRules.js +1 -1
  38. package/dist/resolve-modules/plugins/errors.d.ts +1 -1
  39. package/dist/resolve-modules/plugins/errors.d.ts.map +1 -1
  40. package/dist/resolve-modules/plugins/resolvePlugins.js +15 -15
  41. package/dist/resolve-modules/plugins/resolvePlugins.test.js +55 -94
  42. package/dist/resolve-modules/plugins/types.d.ts +1 -1
  43. package/dist/resolve-modules/plugins/types.d.ts.map +1 -1
  44. package/dist/resolve-modules/plugins/types.test.js +10 -14
  45. package/dist/resolve-modules/resolveModules.d.ts.map +1 -1
  46. package/dist/resolve-modules/resolveModules.js +9 -9
  47. package/dist/resolve-modules/resolveModules.test.js +28 -42
  48. package/dist/resolve-modules/types.d.ts +3 -3
  49. package/dist/resolve-modules/types.d.ts.map +1 -1
  50. package/dist/versionedInterfaces.d.ts +1 -1
  51. package/dist/versionedInterfaces.d.ts.map +1 -1
  52. package/dist/versionedInterfaces.js +1 -1
  53. package/package.json +3 -3
  54. package/src/adapter/solidAdapter.test.ts +77 -87
  55. package/src/adapter/solidAdapter.ts +4 -4
  56. package/src/api.test-d.ts +8 -0
  57. package/src/api.ts +10 -6
  58. package/src/createMessageLintReportsQuery.ts +15 -20
  59. package/src/createMessagesQuery.ts +1 -1
  60. package/src/errors.ts +6 -6
  61. package/src/index.ts +4 -4
  62. package/src/lint/message/lintMessages.test.ts +38 -36
  63. package/src/lint/message/lintMessages.ts +3 -11
  64. package/src/lint/message/lintSingleMessage.test.ts +71 -65
  65. package/src/lint/message/lintSingleMessage.ts +13 -21
  66. package/src/{openInlangProject.test.ts → loadProject.test.ts} +165 -181
  67. package/src/{openInlangProject.ts → loadProject.ts} +81 -82
  68. package/src/parseConfig.ts +5 -3
  69. package/src/resolve-modules/import.ts +1 -1
  70. package/src/resolve-modules/message-lint-rules/resolveMessageLintRules.ts +1 -1
  71. package/src/resolve-modules/plugins/errors.ts +1 -1
  72. package/src/resolve-modules/plugins/resolvePlugins.test.ts +55 -94
  73. package/src/resolve-modules/plugins/resolvePlugins.ts +19 -19
  74. package/src/resolve-modules/plugins/types.test.ts +11 -15
  75. package/src/resolve-modules/plugins/types.ts +1 -1
  76. package/src/resolve-modules/resolveModules.test.ts +29 -43
  77. package/src/resolve-modules/resolveModules.ts +11 -9
  78. package/src/resolve-modules/types.ts +3 -3
  79. package/src/versionedInterfaces.ts +1 -1
  80. package/dist/openInlangProject.d.ts.map +0 -1
  81. package/dist/openInlangProject.test.d.ts +0 -2
  82. package/dist/openInlangProject.test.d.ts.map +0 -1
@@ -11,8 +11,8 @@ export type InlangProjectWithSolidAdapter = {
11
11
  messageLintRules: () => ReturnType<InlangProject["installed"]["messageLintRules"]>;
12
12
  };
13
13
  errors: () => ReturnType<InlangProject["errors"]>;
14
- config: () => ReturnType<InlangProject["config"]>;
15
- setConfig: InlangProject["setConfig"];
14
+ settings: () => ReturnType<InlangProject["settings"]>;
15
+ setSettings: InlangProject["setSettings"];
16
16
  query: {
17
17
  messages: {
18
18
  create: MessageQueryApi["create"];
@@ -1 +1 @@
1
- {"version":3,"file":"solidAdapter.d.ts","sourceRoot":"","sources":["../../src/adapter/solidAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAA;AAC1E,OAAO,EAAc,KAAK,IAAI,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElD,eAAO,MAAM,YAAY,YACf,aAAa,OACjB;IACJ,IAAI,EAAE,gBAAgB,CAAA;CACtB,KACC,6BAmCF,CAAA;AAED,MAAM,MAAM,6BAA6B,GAAG;IAC3C,SAAS,EAAE,MAAM,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAA;IACvD,SAAS,EAAE;QACV,OAAO,EAAE,MAAM,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;QAChE,gBAAgB,EAAE,MAAM,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAA;KAClF,CAAA;IACD,MAAM,EAAE,MAAM,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAA;IACjD,MAAM,EAAE,MAAM,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAA;IACjD,SAAS,EAAE,aAAa,CAAC,WAAW,CAAC,CAAA;IACrC,KAAK,EAAE;QACN,QAAQ,EAAE;YACT,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAA;YACjC,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAA;YACjC,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAA;YACjC,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAA;YACjC,GAAG,EAAE,eAAe,CAAC,KAAK,CAAC,CAAA;YAE3B,MAAM,EAAE,MAAM,UAAU,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAA;YACnD,kBAAkB,EAAE,MAAM,UAAU,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC,CAAA;SAC3E,CAAA;QACD,kBAAkB,EAAE;YACnB,GAAG,EAAE,0BAA0B,CAAC,KAAK,CAAC,CAAA;YACtC,MAAM,EAAE,MAAM,UAAU,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC,CAAA;SAC9D,CAAA;KACD,CAAA;CACD,CAAA"}
1
+ {"version":3,"file":"solidAdapter.d.ts","sourceRoot":"","sources":["../../src/adapter/solidAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAA;AAC1E,OAAO,EAAc,KAAK,IAAI,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElD,eAAO,MAAM,YAAY,YACf,aAAa,OACjB;IACJ,IAAI,EAAE,gBAAgB,CAAA;CACtB,KACC,6BAmCF,CAAA;AAED,MAAM,MAAM,6BAA6B,GAAG;IAC3C,SAAS,EAAE,MAAM,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAA;IACvD,SAAS,EAAE;QACV,OAAO,EAAE,MAAM,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;QAChE,gBAAgB,EAAE,MAAM,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAA;KAClF,CAAA;IACD,MAAM,EAAE,MAAM,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAA;IACjD,QAAQ,EAAE,MAAM,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAA;IACrD,WAAW,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IACzC,KAAK,EAAE;QACN,QAAQ,EAAE;YACT,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAA;YACjC,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAA;YACjC,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAA;YACjC,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAA;YACjC,GAAG,EAAE,eAAe,CAAC,KAAK,CAAC,CAAA;YAE3B,MAAM,EAAE,MAAM,UAAU,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAA;YACnD,kBAAkB,EAAE,MAAM,UAAU,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC,CAAA;SAC3E,CAAA;QACD,kBAAkB,EAAE;YACnB,GAAG,EAAE,0BAA0B,CAAC,KAAK,CAAC,CAAA;YACtC,MAAM,EAAE,MAAM,UAAU,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC,CAAA;SAC9D,CAAA;KACD,CAAA;CACD,CAAA"}
@@ -5,13 +5,13 @@ export const solidAdapter = (project, arg) => {
5
5
  };
6
6
  return {
7
7
  customApi: convert(project.customApi),
8
- config: convert(project.config),
8
+ settings: convert(project.settings),
9
9
  errors: convert(project.errors),
10
10
  installed: {
11
11
  messageLintRules: convert(project.installed.messageLintRules),
12
12
  plugins: convert(project.installed.plugins),
13
13
  },
14
- setConfig: project.setConfig,
14
+ setSettings: project.setSettings,
15
15
  query: {
16
16
  messages: {
17
17
  create: project.query.messages.create,
@@ -2,29 +2,25 @@
2
2
  import { describe, it, expect } from "vitest";
3
3
  import { createEffect, from, createRoot } from "../reactivity/solid.js";
4
4
  import { solidAdapter } from "./solidAdapter.js";
5
- import { openInlangProject } from "../openInlangProject.js";
5
+ import { loadProject } from "../loadProject.js";
6
6
  import { createNodeishMemoryFs } from "@lix-js/fs";
7
7
  // ------------------------------------------------------------------------------------------------
8
8
  const config = {
9
9
  sourceLanguageTag: "en",
10
10
  languageTags: ["en"],
11
11
  modules: ["plugin.js", "plugin2.js"],
12
- settings: {
13
- "project.messageLintRuleLevels": {
14
- "messageLintRule.inlang.missingTranslation": "error",
15
- },
16
- "plugin.inlang.i18next": {
17
- pathPattern: "./examples/example01/{languageTag}.json",
18
- variableReferencePattern: ["{", "}"],
19
- },
12
+ messageLintRuleLevels: {
13
+ "messageLintRule.project.missingTranslation": "error",
14
+ },
15
+ "plugin.project.i18next": {
16
+ pathPattern: "./examples/example01/{languageTag}.json",
17
+ variableReferencePattern: ["{", "}"],
20
18
  },
21
19
  };
22
20
  const mockPlugin = {
23
- meta: {
24
- id: "plugin.inlang.i18next",
25
- description: { en: "Mock plugin description" },
26
- displayName: { en: "Mock Plugin" },
27
- },
21
+ id: "plugin.project.i18next",
22
+ description: { en: "Mock plugin description" },
23
+ displayName: { en: "Mock Plugin" },
28
24
  loadMessages: () => exampleMessages,
29
25
  saveMessages: () => undefined,
30
26
  };
@@ -64,12 +60,10 @@ const exampleMessages = [
64
60
  },
65
61
  ];
66
62
  const mockLintRule = {
67
- meta: {
68
- id: "messageLintRule.namespace.mock",
69
- description: { en: "Mock lint rule description" },
70
- displayName: { en: "Mock Lint Rule" },
71
- },
72
- message: () => undefined,
63
+ id: "messageLintRule.namespace.mock",
64
+ description: { en: "Mock lint rule description" },
65
+ displayName: { en: "Mock Lint Rule" },
66
+ run: () => undefined,
73
67
  };
74
68
  const $import = async (name) => ({
75
69
  default: name === "plugin.js" ? mockPlugin : mockLintRule,
@@ -79,45 +73,45 @@ describe("config", () => {
79
73
  it("should react to changes in config", async () => {
80
74
  const fs = createNodeishMemoryFs();
81
75
  await fs.writeFile("./project.inlang.json", JSON.stringify(config));
82
- const inlang = solidAdapter(await openInlangProject({
83
- projectFilePath: "./project.inlang.json",
76
+ const project = solidAdapter(await loadProject({
77
+ settingsFilePath: "./project.inlang.json",
84
78
  nodeishFs: fs,
85
79
  _import: $import,
86
80
  }), { from });
87
81
  let counter = 0;
88
82
  createEffect(() => {
89
- inlang.config();
83
+ project.settings();
90
84
  counter += 1;
91
85
  });
92
86
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
93
- const newConfig = { ...inlang.config(), languageTags: ["en", "de"] };
94
- inlang.setConfig(newConfig);
87
+ const newConfig = { ...project.settings(), languageTags: ["en", "de"] };
88
+ project.setSettings(newConfig);
95
89
  // TODO: how can we await `setConfig` correctly
96
90
  await new Promise((resolve) => setTimeout(resolve, 0));
97
91
  expect(counter).toBe(2); // 2 times because effect creation + set
98
- expect(inlang.config()).toStrictEqual(newConfig);
92
+ expect(project.settings()).toStrictEqual(newConfig);
99
93
  });
100
94
  });
101
95
  describe("installed", () => {
102
96
  it("react to changes that are unrelated to installed items", async () => {
103
97
  const fs = createNodeishMemoryFs();
104
98
  await fs.writeFile("./project.inlang.json", JSON.stringify(config));
105
- const inlang = solidAdapter(await openInlangProject({
106
- projectFilePath: "./project.inlang.json",
99
+ const project = solidAdapter(await loadProject({
100
+ settingsFilePath: "./project.inlang.json",
107
101
  nodeishFs: fs,
108
102
  _import: $import,
109
103
  }), { from });
110
104
  let counterPlugins = 0;
111
105
  let counterLint = 0;
112
106
  createEffect(() => {
113
- inlang.installed.plugins();
107
+ project.installed.plugins();
114
108
  counterPlugins += 1;
115
109
  });
116
110
  createEffect(() => {
117
- inlang.installed.messageLintRules();
111
+ project.installed.messageLintRules();
118
112
  counterLint += 1;
119
113
  });
120
- inlang.setConfig({ ...inlang.config(), languageTags: ["en", "fr"] });
114
+ project.setSettings({ ...project.settings(), languageTags: ["en", "fr"] });
121
115
  // TODO: how can we await `setConfig` correctly
122
116
  await new Promise((resolve) => setTimeout(resolve, 0));
123
117
  expect(counterPlugins).toBe(2); // 2 times because effect creation + set
@@ -131,68 +125,64 @@ describe("messages", () => {
131
125
  sourceLanguageTag: "en",
132
126
  languageTags: ["en", "de"],
133
127
  modules: ["./plugin-a.js"],
134
- settings: {
135
- "library.inlang.paraglideJsSveltekit": {
136
- languageNegotiation: {
137
- strategies: [
138
- {
139
- type: "localStorage",
140
- },
141
- ],
142
- },
128
+ "library.project.paraglideJsSveltekit": {
129
+ languageNegotiation: {
130
+ strategies: [
131
+ {
132
+ type: "localStorage",
133
+ },
134
+ ],
143
135
  },
144
136
  },
145
137
  };
146
138
  const mockPlugin = {
147
- meta: {
148
- id: "plugin.mock.id",
149
- displayName: {
150
- en: "hello",
151
- },
152
- description: {
153
- en: "wo",
154
- },
139
+ id: "plugin.mock.id",
140
+ displayName: {
141
+ en: "hello",
142
+ },
143
+ description: {
144
+ en: "wo",
155
145
  },
156
146
  loadMessages: ({ languageTags }) => (languageTags.length ? exampleMessages : []),
157
147
  saveMessages: () => undefined,
158
148
  };
159
149
  const mockImport = async () => ({ default: mockPlugin });
160
150
  await fs.writeFile("./project.inlang.json", JSON.stringify(mockConfig));
161
- const inlang = solidAdapter(await openInlangProject({
162
- projectFilePath: "./project.inlang.json",
151
+ const project = solidAdapter(await loadProject({
152
+ settingsFilePath: "./project.inlang.json",
163
153
  nodeishFs: fs,
164
154
  _import: mockImport,
165
155
  }), { from });
166
156
  let counter = 0;
167
157
  createEffect(() => {
168
- inlang.query.messages.getAll();
158
+ project.query.messages.getAll();
169
159
  counter += 1;
170
160
  });
171
- expect(Object.values(inlang.query.messages.getAll()).length).toBe(2);
172
- inlang.setConfig({ ...inlang.config(), languageTags: [] });
161
+ expect(Object.values(project.query.messages.getAll()).length).toBe(2);
162
+ project.setSettings({ ...project.settings(), languageTags: [] });
173
163
  // TODO: how can we await `setConfig` correctly
174
164
  await new Promise((resolve) => setTimeout(resolve, 0));
175
165
  expect(counter).toBe(2); // 2 times because effect creation + set
176
- expect(Object.values(inlang.query.messages.getAll()).length).toBe(0);
166
+ expect(Object.values(project.query.messages.getAll()).length).toBe(0);
177
167
  });
178
168
  it("should react to changes in messages", async () => {
179
169
  const fs = createNodeishMemoryFs();
180
170
  await fs.writeFile("./project.inlang.json", JSON.stringify(config));
181
- const inlang = solidAdapter(await openInlangProject({
182
- projectFilePath: "./project.inlang.json",
171
+ const project = solidAdapter(await loadProject({
172
+ settingsFilePath: "./project.inlang.json",
183
173
  nodeishFs: fs,
184
174
  _import: $import,
185
175
  }), { from });
186
176
  let counter = 0;
187
177
  createEffect(() => {
188
- inlang.query.messages.getAll();
178
+ project.query.messages.getAll();
189
179
  counter += 1;
190
180
  });
191
- const messagesBefore = inlang.query.messages.getAll;
181
+ const messagesBefore = project.query.messages.getAll;
192
182
  expect(Object.values(messagesBefore()).length).toBe(2);
193
183
  expect((Object.values(messagesBefore())[0]?.variants.find((variant) => variant.languageTag === "en")
194
184
  ?.pattern[0]).value).toBe("test");
195
- inlang.query.messages.update({
185
+ project.query.messages.update({
196
186
  where: { id: "a" },
197
187
  // TODO: use `createMessage` utility
198
188
  data: {
@@ -212,7 +202,7 @@ describe("messages", () => {
212
202
  },
213
203
  });
214
204
  expect(counter).toBe(2); // 2 times because effect creation + set
215
- const messagesAfter = inlang.query.messages.getAll;
205
+ const messagesAfter = project.query.messages.getAll;
216
206
  expect(Object.values(messagesAfter()).length).toBe(2);
217
207
  expect((Object.values(messagesAfter())[0]?.variants.find((variant) => variant.languageTag === "en")
218
208
  ?.pattern[0]).value).toBe("test2");
@@ -222,26 +212,26 @@ describe("lint", () => {
222
212
  it.todo("should react to changes in config", async () => {
223
213
  await createRoot(async () => {
224
214
  const fs = createNodeishMemoryFs();
225
- await fs.writeFile("./inlang.config.json", JSON.stringify(config));
226
- const inlang = solidAdapter(await openInlangProject({
227
- projectFilePath: "./inlang.config.json",
215
+ await fs.writeFile("./project.config.json", JSON.stringify(config));
216
+ const project = solidAdapter(await loadProject({
217
+ settingsFilePath: "./project.config.json",
228
218
  nodeishFs: fs,
229
219
  _import: $import,
230
220
  }), { from });
231
221
  let counter = 0;
232
222
  createEffect(() => {
233
- inlang.query.messageLintReports.getAll();
223
+ project.query.messageLintReports.getAll();
234
224
  counter += 1;
235
225
  });
236
- const newConfig = { ...inlang.config(), languageTags: ["en", "de"] };
237
- inlang.setConfig(newConfig);
226
+ const newConfig = { ...project.settings(), languageTags: ["en", "de"] };
227
+ project.setSettings(newConfig);
238
228
  expect(counter).toBe(1);
239
- expect(inlang.query.messageLintReports.getAll()).toEqual([]);
229
+ expect(project.query.messageLintReports.getAll()).toEqual([]);
240
230
  await new Promise((resolve) => setTimeout(resolve, 510));
241
- const newConfig2 = { ...inlang.config(), languageTags: ["en", "de", "fr"] };
242
- inlang.setConfig(newConfig2);
231
+ const newConfig2 = { ...project.settings(), languageTags: ["en", "de", "fr"] };
232
+ project.setSettings(newConfig2);
243
233
  expect(counter).toBe(9);
244
- expect(inlang.query.messageLintReports.getAll()).toEqual([]);
234
+ expect(project.query.messageLintReports.getAll()).toEqual([]);
245
235
  });
246
236
  });
247
237
  it.todo("should react to changes to packages");
@@ -249,18 +239,18 @@ describe("lint", () => {
249
239
  it.todo("should react to changes to messages", async () => {
250
240
  await createRoot(async () => {
251
241
  const fs = createNodeishMemoryFs();
252
- await fs.writeFile("./inlang.config.json", JSON.stringify(config));
253
- const inlang = solidAdapter(await openInlangProject({
254
- projectFilePath: "./inlang.config.json",
242
+ await fs.writeFile("./project.config.json", JSON.stringify(config));
243
+ const project = solidAdapter(await loadProject({
244
+ settingsFilePath: "./project.config.json",
255
245
  nodeishFs: fs,
256
246
  _import: $import,
257
247
  }), { from });
258
248
  let counter = 0;
259
249
  createEffect(() => {
260
- inlang.query.messageLintReports.getAll();
250
+ project.query.messageLintReports.getAll();
261
251
  counter += 1;
262
252
  });
263
- inlang.query.messages.update({
253
+ project.query.messages.update({
264
254
  where: { id: "a" },
265
255
  data: {
266
256
  ...exampleMessages[0],
@@ -268,9 +258,9 @@ describe("lint", () => {
268
258
  },
269
259
  });
270
260
  expect(counter).toBe(1);
271
- expect(inlang.query.messageLintReports.getAll()).toEqual([]);
261
+ expect(project.query.messageLintReports.getAll()).toEqual([]);
272
262
  await new Promise((resolve) => setTimeout(resolve, 510));
273
- inlang.query.messages.update({
263
+ project.query.messages.update({
274
264
  where: { id: "a" },
275
265
  data: {
276
266
  ...exampleMessages[0],
@@ -278,7 +268,7 @@ describe("lint", () => {
278
268
  },
279
269
  });
280
270
  expect(counter).toBe(6);
281
- expect(inlang.query.messageLintReports.getAll()).toEqual([]);
271
+ expect(project.query.messageLintReports.getAll()).toEqual([]);
282
272
  });
283
273
  });
284
274
  });
package/dist/api.d.ts CHANGED
@@ -1,22 +1,26 @@
1
1
  import type { Result } from "@inlang/result";
2
2
  import type * as RuntimeError from "./errors.js";
3
3
  import type * as ModuleResolutionError from "./resolve-modules/errors.js";
4
- import type { MessageLintLevel, MessageLintRule, Message, Plugin, ProjectConfig, MessageLintReport } from "./versionedInterfaces.js";
4
+ import type { MessageLintLevel, MessageLintRule, Message, Plugin, ProjectSettings, MessageLintReport } from "./versionedInterfaces.js";
5
5
  import type { ResolvedPluginApi } from "./resolve-modules/plugins/types.js";
6
6
  export type InstalledPlugin = {
7
- meta: Plugin["meta"];
7
+ id: Plugin["id"];
8
+ displayName: Plugin["displayName"];
9
+ description: Plugin["description"];
8
10
  /**
9
11
  * The module which the plugin is installed from.
10
12
  */
11
13
  module: string;
12
14
  };
13
15
  export type InstalledMessageLintRule = {
14
- meta: MessageLintRule["meta"];
16
+ id: MessageLintRule["id"];
17
+ displayName: MessageLintRule["displayName"];
18
+ description: MessageLintRule["description"];
15
19
  /**
16
20
  * The module which the lint rule is installed from.
17
21
  */
18
22
  module: string;
19
- lintLevel: MessageLintLevel;
23
+ level: MessageLintLevel;
20
24
  };
21
25
  export type InlangProject = {
22
26
  installed: {
@@ -25,8 +29,8 @@ export type InlangProject = {
25
29
  };
26
30
  errors: Subscribable<((typeof ModuleResolutionError)[keyof typeof ModuleResolutionError] | Error)[]>;
27
31
  customApi: Subscribable<ResolvedPluginApi["customApi"]>;
28
- config: Subscribable<ProjectConfig | undefined>;
29
- setConfig: (config: ProjectConfig) => Result<void, RuntimeError.InvalidConfigError>;
32
+ settings: Subscribable<ProjectSettings>;
33
+ setSettings: (config: ProjectSettings) => Result<void, RuntimeError.ProjectSettingsInvalidError>;
30
34
  query: {
31
35
  messages: MessageQueryApi;
32
36
  messageLintReports: MessageLintReportsQueryApi;
package/dist/api.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=api.test-d.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.test-d.d.ts","sourceRoot":"","sources":["../src/api.test-d.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { expectType } from "tsd";
2
+ const project = {};
3
+ // it should not have potentially undefined settings.
4
+ expectType(project.settings());
@@ -1,9 +1,9 @@
1
1
  import type { InlangProject, InstalledMessageLintRule } from "./api.js";
2
- import type { ProjectConfig } from "@inlang/project-config";
2
+ import type { ProjectSettings } from "@inlang/project-settings";
3
3
  import type { resolveModules } from "./resolve-modules/index.js";
4
4
  import type { Message } from "./versionedInterfaces.js";
5
5
  /**
6
6
  * Creates a reactive query API for messages.
7
7
  */
8
- export declare function createMessageLintReportsQuery(messages: () => Array<Message> | undefined, config: () => ProjectConfig | undefined, installedMessageLintRules: () => Array<InstalledMessageLintRule>, resolvedModules: () => Awaited<ReturnType<typeof resolveModules>> | undefined): InlangProject["query"]["messageLintReports"];
8
+ export declare function createMessageLintReportsQuery(messages: () => Array<Message> | undefined, settings: () => ProjectSettings, installedMessageLintRules: () => Array<InstalledMessageLintRule>, resolvedModules: () => Awaited<ReturnType<typeof resolveModules>> | undefined): InlangProject["query"]["messageLintReports"];
9
9
  //# sourceMappingURL=createMessageLintReportsQuery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createMessageLintReportsQuery.d.ts","sourceRoot":"","sources":["../src/createMessageLintReportsQuery.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,wBAAwB,EAA8B,MAAM,UAAU,CAAA;AACnG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,KAAK,EAIX,OAAO,EACP,MAAM,0BAA0B,CAAA;AAIjC;;GAEG;AACH,wBAAgB,6BAA6B,CAC5C,QAAQ,EAAE,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,SAAS,EAC1C,MAAM,EAAE,MAAM,aAAa,GAAG,SAAS,EACvC,yBAAyB,EAAE,MAAM,KAAK,CAAC,wBAAwB,CAAC,EAChE,eAAe,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,GAAG,SAAS,GAC3E,aAAa,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,CAsD9C"}
1
+ {"version":3,"file":"createMessageLintReportsQuery.d.ts","sourceRoot":"","sources":["../src/createMessageLintReportsQuery.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,wBAAwB,EAA8B,MAAM,UAAU,CAAA;AACnG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,KAAK,EAAqB,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAI1E;;GAEG;AACH,wBAAgB,6BAA6B,CAC5C,QAAQ,EAAE,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,SAAS,EAC1C,QAAQ,EAAE,MAAM,eAAe,EAC/B,yBAAyB,EAAE,MAAM,KAAK,CAAC,wBAAwB,CAAC,EAChE,eAAe,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,GAAG,SAAS,GAC3E,aAAa,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,CAsD9C"}
@@ -1,29 +1,29 @@
1
1
  import { createEffect } from "./reactivity/solid.js";
2
- import { createSubscribable } from "./openInlangProject.js";
2
+ import { createSubscribable } from "./loadProject.js";
3
3
  import { lintSingleMessage } from "./lint/index.js";
4
4
  import { ReactiveMap } from "./reactivity/map.js";
5
5
  /**
6
6
  * Creates a reactive query API for messages.
7
7
  */
8
- export function createMessageLintReportsQuery(messages, config, installedMessageLintRules, resolvedModules) {
8
+ export function createMessageLintReportsQuery(messages, settings, installedMessageLintRules, resolvedModules) {
9
9
  // @ts-expect-error
10
10
  const index = new ReactiveMap();
11
11
  createEffect(() => {
12
- const msgs = messages();
13
- const conf = config();
14
12
  const modules = resolvedModules();
15
- if (msgs && conf && modules) {
13
+ const _messages = messages();
14
+ const _settings = settings();
15
+ if (_messages && _settings && modules) {
16
16
  // console.log("new calculation")
17
17
  // index.clear()
18
- for (const message of msgs) {
18
+ for (const message of _messages) {
19
19
  // TODO: only lint changed messages and update arrays selectively
20
20
  lintSingleMessage({
21
21
  rules: modules.messageLintRules,
22
- ruleSettings: conf.settings,
23
- ruleLevels: Object.fromEntries(installedMessageLintRules().map((rule) => [rule.meta.id, rule.lintLevel])),
24
- sourceLanguageTag: conf.sourceLanguageTag,
25
- languageTags: conf.languageTags,
26
- messages: msgs,
22
+ settings: {
23
+ ..._settings,
24
+ messageLintRuleLevels: Object.fromEntries(installedMessageLintRules().map((rule) => [rule.id, rule.level])),
25
+ },
26
+ messages: _messages,
27
27
  message: message,
28
28
  }).then((report) => {
29
29
  if (report.errors.length === 0 &&
@@ -1,6 +1,6 @@
1
1
  import { ReactiveMap } from "./reactivity/map.js";
2
2
  import { createEffect } from "./reactivity/solid.js";
3
- import { createSubscribable } from "./openInlangProject.js";
3
+ import { createSubscribable } from "./loadProject.js";
4
4
  /**
5
5
  * Creates a reactive query API for messages.
6
6
  */
package/dist/errors.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- export declare class InvalidConfigError extends Error {
1
+ export declare class ProjectSettingsInvalidError extends Error {
2
2
  constructor(message: string, options: ErrorOptions);
3
3
  }
4
- export declare class ProjectFileJSONSyntaxError extends Error {
4
+ export declare class ProjectSettingsFileJSONSyntaxError extends Error {
5
5
  constructor(message: string, options: ErrorOptions);
6
6
  }
7
- export declare class ProjectFilePathNotFoundError extends Error {
7
+ export declare class ProjectSettingsFileNotFoundError extends Error {
8
8
  constructor(message: string, options: ErrorOptions);
9
9
  }
10
10
  export declare class PluginSaveMessagesError extends Error {
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,kBAAmB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY;CAIlD;AAED,qBAAa,0BAA2B,SAAQ,KAAK;gBACxC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY;CAIlD;AAED,qBAAa,4BAA6B,SAAQ,KAAK;gBAC1C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY;CAIlD;AAED,qBAAa,uBAAwB,SAAQ,KAAK;gBACrC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY;CAIlD;AAED,qBAAa,uBAAwB,SAAQ,KAAK;gBACrC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY;CAIlD"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,2BAA4B,SAAQ,KAAK;gBACzC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY;CAIlD;AAED,qBAAa,kCAAmC,SAAQ,KAAK;gBAChD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY;CAIlD;AAED,qBAAa,gCAAiC,SAAQ,KAAK;gBAC9C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY;CAIlD;AAED,qBAAa,uBAAwB,SAAQ,KAAK;gBACrC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY;CAIlD;AAED,qBAAa,uBAAwB,SAAQ,KAAK;gBACrC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY;CAIlD"}
package/dist/errors.js CHANGED
@@ -1,19 +1,19 @@
1
- export class InvalidConfigError extends Error {
1
+ export class ProjectSettingsInvalidError extends Error {
2
2
  constructor(message, options) {
3
3
  super(message, options);
4
- this.name = "InvalidConfigError";
4
+ this.name = "ProjectSettingsInvalidError";
5
5
  }
6
6
  }
7
- export class ProjectFileJSONSyntaxError extends Error {
7
+ export class ProjectSettingsFileJSONSyntaxError extends Error {
8
8
  constructor(message, options) {
9
9
  super(message, options);
10
- this.name = "ProjectFileJSONSyntaxError";
10
+ this.name = "ProjectSettingsFileJSONSyntaxError";
11
11
  }
12
12
  }
13
- export class ProjectFilePathNotFoundError extends Error {
13
+ export class ProjectSettingsFileNotFoundError extends Error {
14
14
  constructor(message, options) {
15
15
  super(message, options);
16
- this.name = "ProjectFilePathNotFoundError";
16
+ this.name = "ProjectSettingsFileNotFoundError";
17
17
  }
18
18
  }
19
19
  export class PluginSaveMessagesError extends Error {
package/dist/index.d.ts CHANGED
@@ -5,10 +5,10 @@
5
5
  */
6
6
  export type { InlangProject, InstalledMessageLintRule, InstalledPlugin, MessageQueryApi, Subscribable, } from "./api.js";
7
7
  export { type ImportFunction, createImport } from "./resolve-modules/index.js";
8
- export { openInlangProject } from "./openInlangProject.js";
8
+ export { loadProject } from "./loadProject.js";
9
9
  export { solidAdapter, type InlangProjectWithSolidAdapter } from "./adapter/solidAdapter.js";
10
10
  export { createMessagesQuery } from "./createMessagesQuery.js";
11
- export { ProjectFilePathNotFoundError, ProjectFileJSONSyntaxError, InvalidConfigError, PluginLoadMessagesError, PluginSaveMessagesError, } from "./errors.js";
11
+ export { ProjectSettingsFileJSONSyntaxError, ProjectSettingsFileNotFoundError, ProjectSettingsInvalidError, PluginLoadMessagesError, PluginSaveMessagesError, } from "./errors.js";
12
12
  export * from "./messages/variant.js";
13
13
  export * from "./versionedInterfaces.js";
14
14
  export { InlangModule } from "@inlang/module";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EACX,aAAa,EACb,wBAAwB,EACxB,eAAe,EACf,eAAe,EACf,YAAY,GACZ,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,KAAK,cAAc,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,KAAK,6BAA6B,EAAE,MAAM,2BAA2B,CAAA;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EACN,4BAA4B,EAC5B,0BAA0B,EAC1B,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,GACvB,MAAM,aAAa,CAAA;AAEpB,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EACX,aAAa,EACb,wBAAwB,EACxB,eAAe,EACf,eAAe,EACf,YAAY,GACZ,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,KAAK,cAAc,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,KAAK,6BAA6B,EAAE,MAAM,2BAA2B,CAAA;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EACN,kCAAkC,EAClC,gCAAgC,EAChC,2BAA2B,EAC3B,uBAAuB,EACvB,uBAAuB,GACvB,MAAM,aAAa,CAAA;AAEpB,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA"}
package/dist/index.js CHANGED
@@ -4,10 +4,10 @@
4
4
  *! EXPORT AS LITTLE AS POSSIBLE TO MINIMIZE THE CHANCE OF BREAKING CHANGES.
5
5
  */
6
6
  export { createImport } from "./resolve-modules/index.js";
7
- export { openInlangProject } from "./openInlangProject.js";
7
+ export { loadProject } from "./loadProject.js";
8
8
  export { solidAdapter } from "./adapter/solidAdapter.js";
9
9
  export { createMessagesQuery } from "./createMessagesQuery.js";
10
- export { ProjectFilePathNotFoundError, ProjectFileJSONSyntaxError, InvalidConfigError, PluginLoadMessagesError, PluginSaveMessagesError, } from "./errors.js";
10
+ export { ProjectSettingsFileJSONSyntaxError, ProjectSettingsFileNotFoundError, ProjectSettingsInvalidError, PluginLoadMessagesError, PluginSaveMessagesError, } from "./errors.js";
11
11
  export * from "./messages/variant.js";
12
12
  export * from "./versionedInterfaces.js";
13
13
  export { InlangModule } from "@inlang/module";
@@ -1,13 +1,9 @@
1
1
  import type { Message } from "@inlang/message";
2
2
  import type { MessagedLintRuleThrowedError } from "./errors.js";
3
- import type { LanguageTag } from "@inlang/language-tag";
4
- import type { JSONObject } from "@inlang/json-types";
5
- import type { MessageLintLevel, MessageLintReport, MessageLintRule } from "@inlang/message-lint-rule";
3
+ import type { MessageLintReport, MessageLintRule } from "@inlang/message-lint-rule";
4
+ import type { ProjectSettings } from "@inlang/project-settings";
6
5
  export declare const lintMessages: (args: {
7
- sourceLanguageTag: LanguageTag;
8
- languageTags: LanguageTag[];
9
- ruleSettings: Record<MessageLintRule["meta"]["id"], JSONObject>;
10
- ruleLevels: Record<MessageLintRule["meta"]["id"], MessageLintLevel>;
6
+ settings: ProjectSettings & Required<Pick<ProjectSettings, "messageLintRuleLevels">>;
11
7
  rules: MessageLintRule[];
12
8
  messages: Message[];
13
9
  }) => Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"lintMessages.d.ts","sourceRoot":"","sources":["../../../src/lint/message/lintMessages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAE9C,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAA;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EACX,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,MAAM,2BAA2B,CAAA;AAElC,eAAO,MAAM,YAAY,SAAgB;IACxC,iBAAiB,EAAE,WAAW,CAAA;IAC9B,YAAY,EAAE,WAAW,EAAE,CAAA;IAC3B,YAAY,EAAE,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAA;IAC/D,UAAU,EAAE,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC,CAAA;IACnE,KAAK,EAAE,eAAe,EAAE,CAAA;IACxB,QAAQ,EAAE,OAAO,EAAE,CAAA;CACnB,KAAG,QAAQ;IAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;IAAC,MAAM,EAAE,4BAA4B,EAAE,CAAA;CAAE,CAchF,CAAA"}
1
+ {"version":3,"file":"lintMessages.d.ts","sourceRoot":"","sources":["../../../src/lint/message/lintMessages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAE9C,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAA;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AACnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE/D,eAAO,MAAM,YAAY,SAAgB;IACxC,QAAQ,EAAE,eAAe,GAAG,SAAS,KAAK,eAAe,EAAE,uBAAuB,CAAC,CAAC,CAAA;IACpF,KAAK,EAAE,eAAe,EAAE,CAAA;IACxB,QAAQ,EAAE,OAAO,EAAE,CAAA;CACnB,KAAG,QAAQ;IAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;IAAC,MAAM,EAAE,4BAA4B,EAAE,CAAA;CAAE,CAchF,CAAA"}