@inlang/sdk 0.24.1 → 0.26.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.
@@ -5,6 +5,7 @@ export declare const solidAdapter: (project: InlangProject, arg: {
5
5
  from: typeof solidFrom;
6
6
  }) => InlangProjectWithSolidAdapter;
7
7
  export type InlangProjectWithSolidAdapter = {
8
+ id: InlangProject["id"];
8
9
  customApi: () => ReturnType<InlangProject["customApi"]>;
9
10
  installed: {
10
11
  plugins: () => ReturnType<InlangProject["installed"]["plugins"]>;
@@ -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,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"}
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,6BAoCF,CAAA;AAED,MAAM,MAAM,6BAA6B,GAAG;IAC3C,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC,CAAA;IACvB,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"}
@@ -4,6 +4,7 @@ export const solidAdapter = (project, arg) => {
4
4
  return arg.from(observable(signal));
5
5
  };
6
6
  return {
7
+ id: project.id,
7
8
  customApi: convert(project.customApi),
8
9
  settings: convert(project.settings),
9
10
  errors: convert(project.errors),
@@ -3,8 +3,7 @@ import { describe, it, expect } from "vitest";
3
3
  import { createEffect, from, createRoot } from "../reactivity/solid.js";
4
4
  import { solidAdapter } from "./solidAdapter.js";
5
5
  import { loadProject } from "../loadProject.js";
6
- import { createNodeishMemoryFs } from "@lix-js/fs";
7
- import { openRepository } from "@lix-js/client";
6
+ import { mockRepo } from "@lix-js/client";
8
7
  // ------------------------------------------------------------------------------------------------
9
8
  const config = {
10
9
  sourceLanguageTag: "en",
@@ -72,10 +71,10 @@ const $import = async (name) => ({
72
71
  // ------------------------------------------------------------------------------------------------
73
72
  describe("config", () => {
74
73
  it("should react to changes in config", async () => {
75
- const fs = createNodeishMemoryFs();
74
+ const repo = await mockRepo();
75
+ const fs = repo.nodeishFs;
76
76
  await fs.mkdir("/user/project.inlang", { recursive: true });
77
77
  await fs.writeFile("/user/project.inlang/settings.json", JSON.stringify(config));
78
- const repo = await openRepository("file://", { nodeishFs: fs });
79
78
  const project = solidAdapter(await loadProject({
80
79
  projectPath: "/user/project.inlang",
81
80
  repo,
@@ -97,10 +96,10 @@ describe("config", () => {
97
96
  });
98
97
  describe("installed", () => {
99
98
  it("react to changes that are unrelated to installed items", async () => {
100
- const fs = createNodeishMemoryFs();
99
+ const repo = await mockRepo();
100
+ const fs = repo.nodeishFs;
101
101
  await fs.mkdir("/user/project.inlang", { recursive: true });
102
102
  await fs.writeFile("/user/project.inlang/settings.json", JSON.stringify(config));
103
- const repo = await openRepository("file://", { nodeishFs: fs });
104
103
  const project = solidAdapter(await loadProject({
105
104
  projectPath: "/user/project.inlang",
106
105
  repo,
@@ -125,7 +124,8 @@ describe("installed", () => {
125
124
  });
126
125
  describe("messages", () => {
127
126
  it("should react to changes in config", async () => {
128
- const fs = createNodeishMemoryFs();
127
+ const repo = await mockRepo();
128
+ const fs = repo.nodeishFs;
129
129
  const mockConfig = {
130
130
  sourceLanguageTag: "en",
131
131
  languageTags: ["en", "de"],
@@ -154,7 +154,6 @@ describe("messages", () => {
154
154
  const mockImport = async () => ({ default: mockPlugin });
155
155
  await fs.mkdir("/user/project.inlang.inlang", { recursive: true });
156
156
  await fs.writeFile("/user/project.inlang.inlang/settings.json", JSON.stringify(mockConfig));
157
- const repo = await openRepository("file://", { nodeishFs: fs });
158
157
  const project = solidAdapter(await loadProject({
159
158
  projectPath: "/user/project.inlang.inlang",
160
159
  repo,
@@ -173,10 +172,10 @@ describe("messages", () => {
173
172
  expect(Object.values(project.query.messages.getAll()).length).toBe(2);
174
173
  });
175
174
  it("should react to changes in messages", async () => {
176
- const fs = createNodeishMemoryFs();
175
+ const repo = await mockRepo();
176
+ const fs = repo.nodeishFs;
177
177
  await fs.mkdir("/user/project.inlang.inlang", { recursive: true });
178
178
  await fs.writeFile("/user/project.inlang.inlang/settings.json", JSON.stringify(config));
179
- const repo = await openRepository("file://", { nodeishFs: fs });
180
179
  const project = solidAdapter(await loadProject({
181
180
  projectPath: "/user/project.inlang.inlang",
182
181
  repo,
@@ -220,10 +219,10 @@ describe("messages", () => {
220
219
  describe("lint", () => {
221
220
  it.todo("should react to changes in config", async () => {
222
221
  await createRoot(async () => {
223
- const fs = createNodeishMemoryFs();
222
+ const repo = await mockRepo();
223
+ const fs = repo.nodeishFs;
224
224
  await fs.mkdir("./project.inlang", { recursive: true });
225
225
  await fs.writeFile("./project.inlang/settings.json", JSON.stringify(config));
226
- const repo = await openRepository("file://", { nodeishFs: fs });
227
226
  const project = solidAdapter(await loadProject({
228
227
  projectPath: "./project.inlang",
229
228
  repo,
@@ -249,9 +248,9 @@ describe("lint", () => {
249
248
  it.todo("should react to changes to modules");
250
249
  it.todo("should react to changes to messages", async () => {
251
250
  await createRoot(async () => {
252
- const fs = createNodeishMemoryFs();
251
+ const repo = await mockRepo();
252
+ const fs = repo.nodeishFs;
253
253
  await fs.writeFile("./project.config.json", JSON.stringify(config));
254
- const repo = await openRepository("file://", { nodeishFs: fs });
255
254
  const project = solidAdapter(await loadProject({
256
255
  projectPath: "./project.config.json",
257
256
  repo,
package/dist/api.d.ts CHANGED
@@ -23,6 +23,10 @@ export type InstalledMessageLintRule = {
23
23
  level: MessageLintLevel;
24
24
  };
25
25
  export type InlangProject = {
26
+ /**
27
+ * The project's id.
28
+ */
29
+ id?: string;
26
30
  installed: {
27
31
  plugins: Subscribable<InstalledPlugin[]>;
28
32
  messageLintRules: Subscribable<InstalledMessageLintRule[]>;
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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"}
@@ -1,35 +1,12 @@
1
1
  import type { InlangProject, Subscribable } from "./api.js";
2
2
  import { type ImportFunction } from "./resolve-modules/index.js";
3
3
  import type { Repository } from "@lix-js/client";
4
- /**
5
- * Creates an inlang instance.
6
- *
7
- * @param projectPath - Absolute path to the inlang settings file.
8
- * @param @deprecated nodeishFs - Filesystem that implements the NodeishFilesystemSubset interface.
9
- * @param _import - Use `_import` to pass a custom import function for testing,
10
- * and supporting legacy resolvedModules such as CJS.
11
- *
12
- */
13
- export declare function loadProject(args: {
14
- projectPath: string;
15
- nodeishFs: Repository["nodeishFs"];
16
- /**
17
- * The app id is used to identify the app that is using the SDK.
18
- *
19
- * We use the app id to group events in telemetry to answer questions
20
- * like "Which apps causes these errors?" or "Which apps are used more than others?".
21
- *
22
- * @example
23
- * appId: "app.inlang.badge"
24
- */
25
- appId?: string;
26
- _import?: ImportFunction;
27
- }): Promise<InlangProject>;
28
4
  /**
29
5
  * @param projectPath - Absolute path to the inlang settings file.
30
6
  * @param repo - An instance of a lix repo as returned by `openRepository`.
31
7
  * @param _import - Use `_import` to pass a custom import function for testing,
32
8
  * and supporting legacy resolvedModules such as CJS.
9
+ * @param appId - The app id to use for telemetry e.g "app.inlang.badge"
33
10
  *
34
11
  */
35
12
  export declare function loadProject(args: {
@@ -1 +1 @@
1
- {"version":3,"file":"loadProject.d.ts","sourceRoot":"","sources":["../src/loadProject.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,aAAa,EAGb,YAAY,EACZ,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,KAAK,cAAc,EAAkB,MAAM,4BAA4B,CAAA;AAuBhF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAKhD;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE;IACvC,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAA;IAClC;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,cAAc,CAAA;CACxB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;AAE1B;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE;IACvC,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,UAAU,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,cAAc,CAAA;CACxB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;AA+Y1B,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAQtE"}
1
+ {"version":3,"file":"loadProject.d.ts","sourceRoot":"","sources":["../src/loadProject.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,aAAa,EAGb,YAAY,EACZ,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,KAAK,cAAc,EAAkB,MAAM,4BAA4B,CAAA;AAuBhF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAMhD;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE;IACvC,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,UAAU,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,cAAc,CAAA;CACxB,GAAG,OAAO,CAAC,aAAa,CAAC,CAgRzB;AAwHD,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAQtE"}
@@ -15,7 +15,16 @@ import { createNodeishFsWithWatcher } from "./createNodeishFsWithWatcher.js";
15
15
  import { maybeMigrateToDirectory } from "./migrations/migrateToDirectory.js";
16
16
  import { maybeCreateFirstProjectId } from "./migrations/maybeCreateFirstProjectId.js";
17
17
  import { capture } from "./telemetry/capture.js";
18
+ import { identifyProject } from "./telemetry/groupIdentify.js";
18
19
  const settingsCompiler = TypeCompiler.Compile(ProjectSettings);
20
+ /**
21
+ * @param projectPath - Absolute path to the inlang settings file.
22
+ * @param repo - An instance of a lix repo as returned by `openRepository`.
23
+ * @param _import - Use `_import` to pass a custom import function for testing,
24
+ * and supporting legacy resolvedModules such as CJS.
25
+ * @param appId - The app id to use for telemetry e.g "app.inlang.badge"
26
+ *
27
+ */
19
28
  export async function loadProject(args) {
20
29
  const projectPath = normalizePath(args.projectPath);
21
30
  // -- validation --------------------------------------------------------
@@ -28,17 +37,7 @@ export async function loadProject(args) {
28
37
  else if (/[^\\/]+\.inlang$/.test(projectPath) === false) {
29
38
  throw new LoadProjectInvalidArgument(`Expected a path ending in "{name}.inlang" but received "${projectPath}".\n\nValid examples: \n- "/path/to/micky-mouse.inlang"\n- "/path/to/green-elephant.inlang\n`, { argument: "projectPath" });
30
39
  }
31
- let fs;
32
- if (args.nodeishFs) {
33
- // TODO: deprecate
34
- fs = args.nodeishFs;
35
- }
36
- else if (args.repo) {
37
- fs = args.repo.nodeishFs;
38
- }
39
- else {
40
- throw new LoadProjectInvalidArgument(`Repo missing from arguments.`, { argument: "repo" });
41
- }
40
+ const fs = args.repo.nodeishFs;
42
41
  const nodeishFs = createNodeishFsWithAbsolutePaths({
43
42
  projectPath,
44
43
  nodeishFs: fs,
@@ -194,6 +193,14 @@ export async function loadProject(args) {
194
193
  if (projectId && projectLoadedCapturedAlready === false) {
195
194
  projectLoadedCapturedAlready = true;
196
195
  // TODO ensure that capture is "awaited" without blocking the the app from starting
196
+ await identifyProject({
197
+ projectId,
198
+ properties: {
199
+ // using the id for now as a name but can be changed in the future
200
+ // we need at least one property to make a project visible in the dashboard
201
+ name: projectId,
202
+ },
203
+ });
197
204
  await capture("SDK loaded project", {
198
205
  projectId,
199
206
  properties: {
@@ -206,6 +213,7 @@ export async function loadProject(args) {
206
213
  });
207
214
  }
208
215
  return {
216
+ id: projectId,
209
217
  installed: {
210
218
  plugins: createSubscribable(() => installedPlugins()),
211
219
  messageLintRules: createSubscribable(() => installedMessageLintRules()),