@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.
- package/dist/adapter/solidAdapter.d.ts +1 -0
- package/dist/adapter/solidAdapter.d.ts.map +1 -1
- package/dist/adapter/solidAdapter.js +1 -0
- package/dist/adapter/solidAdapter.test.js +13 -14
- package/dist/api.d.ts +4 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/loadProject.d.ts +1 -24
- package/dist/loadProject.d.ts.map +1 -1
- package/dist/loadProject.js +19 -11
- package/dist/loadProject.test.js +58 -65
- package/dist/telemetry/groupIdentify.d.ts +13 -0
- package/dist/telemetry/groupIdentify.d.ts.map +1 -0
- package/dist/telemetry/groupIdentify.js +35 -0
- package/package.json +5 -5
- package/src/adapter/solidAdapter.test.ts +13 -14
- package/src/adapter/solidAdapter.ts +2 -0
- package/src/api.ts +5 -0
- package/src/loadProject.test.ts +59 -66
- package/src/loadProject.ts +12 -42
- package/src/telemetry/groupIdentify.ts +41 -0
|
@@ -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,
|
|
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"}
|
|
@@ -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 {
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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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"}
|
package/dist/loadProject.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/loadProject.js
CHANGED
|
@@ -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
|
-
|
|
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()),
|