@inlang/sdk 0.24.1 → 0.25.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/api.d.ts +4 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/loadProject.d.ts.map +1 -1
- package/dist/loadProject.js +10 -0
- 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 +7 -7
- package/src/adapter/solidAdapter.ts +2 -0
- package/src/api.ts +5 -0
- package/src/loadProject.ts +10 -0
- 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"}
|
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 +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;;;;;;;;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;AAwZ1B,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAQtE"}
|
package/dist/loadProject.js
CHANGED
|
@@ -15,6 +15,7 @@ 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);
|
|
19
20
|
export async function loadProject(args) {
|
|
20
21
|
const projectPath = normalizePath(args.projectPath);
|
|
@@ -194,6 +195,14 @@ export async function loadProject(args) {
|
|
|
194
195
|
if (projectId && projectLoadedCapturedAlready === false) {
|
|
195
196
|
projectLoadedCapturedAlready = true;
|
|
196
197
|
// TODO ensure that capture is "awaited" without blocking the the app from starting
|
|
198
|
+
await identifyProject({
|
|
199
|
+
projectId,
|
|
200
|
+
properties: {
|
|
201
|
+
// using the id for now as a name but can be changed in the future
|
|
202
|
+
// we need at least one property to make a project visible in the dashboard
|
|
203
|
+
name: projectId,
|
|
204
|
+
},
|
|
205
|
+
});
|
|
197
206
|
await capture("SDK loaded project", {
|
|
198
207
|
projectId,
|
|
199
208
|
properties: {
|
|
@@ -206,6 +215,7 @@ export async function loadProject(args) {
|
|
|
206
215
|
});
|
|
207
216
|
}
|
|
208
217
|
return {
|
|
218
|
+
id: projectId,
|
|
209
219
|
installed: {
|
|
210
220
|
plugins: createSubscribable(() => installedPlugins()),
|
|
211
221
|
messageLintRules: createSubscribable(() => installedMessageLintRules()),
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Capture an event.
|
|
3
|
+
*
|
|
4
|
+
* - manually calling the PostHog API because the SDKs were not platform angostic (and generally bloated)
|
|
5
|
+
*/
|
|
6
|
+
export declare const identifyProject: (args: {
|
|
7
|
+
projectId: string;
|
|
8
|
+
/**
|
|
9
|
+
* Please use snake_case for property names.
|
|
10
|
+
*/
|
|
11
|
+
properties: Record<string, any>;
|
|
12
|
+
}) => Promise<void>;
|
|
13
|
+
//# sourceMappingURL=groupIdentify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groupIdentify.d.ts","sourceRoot":"","sources":["../../src/telemetry/groupIdentify.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,eAAe,SAAgB;IAC3C,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,UAAU,EAAE,OAAO,MAAM,EAAE,GAAG,CAAC,CAAA;CAC/B,kBA2BA,CAAA"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ENV_VARIABLES } from "../env-variables/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Capture an event.
|
|
4
|
+
*
|
|
5
|
+
* - manually calling the PostHog API because the SDKs were not platform angostic (and generally bloated)
|
|
6
|
+
*/
|
|
7
|
+
export const identifyProject = async (args) => {
|
|
8
|
+
// do not send events if the token is not set
|
|
9
|
+
// (assuming this eases testing)
|
|
10
|
+
if (ENV_VARIABLES.PUBLIC_POSTHOG_TOKEN === undefined) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
try {
|
|
14
|
+
await fetch("https://eu.posthog.com/capture/", {
|
|
15
|
+
method: "POST",
|
|
16
|
+
body: JSON.stringify({
|
|
17
|
+
api_key: ENV_VARIABLES.PUBLIC_POSTHOG_TOKEN,
|
|
18
|
+
event: "$groupidentify",
|
|
19
|
+
// id is "unknown" because no user information is available
|
|
20
|
+
distinct_id: "unknown",
|
|
21
|
+
properties: {
|
|
22
|
+
$group_type: "project",
|
|
23
|
+
$group_key: args.projectId,
|
|
24
|
+
$group_set: {
|
|
25
|
+
...args.properties,
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
}),
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
catch (e) {
|
|
32
|
+
// TODO implement sentry logging
|
|
33
|
+
// do not console.log and avoid exposing internal errors to the user
|
|
34
|
+
}
|
|
35
|
+
};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inlang/sdk",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.25.0",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"publishConfig": {
|
|
7
7
|
"access": "public"
|
|
@@ -25,17 +25,17 @@
|
|
|
25
25
|
"deepmerge-ts": "^5.1.0",
|
|
26
26
|
"solid-js": "1.6.12",
|
|
27
27
|
"throttle-debounce": "^5.0.0",
|
|
28
|
-
"@inlang/json-types": "1.1.0",
|
|
29
28
|
"@inlang/language-tag": "1.4.0",
|
|
30
|
-
"@inlang/message
|
|
29
|
+
"@inlang/message": "2.0.1",
|
|
30
|
+
"@inlang/json-types": "1.1.0",
|
|
31
31
|
"@inlang/module": "1.2.3",
|
|
32
|
+
"@inlang/message-lint-rule": "1.4.1",
|
|
32
33
|
"@inlang/plugin": "2.4.3",
|
|
33
|
-
"@inlang/result": "1.1.0",
|
|
34
34
|
"@inlang/project-settings": "2.2.1",
|
|
35
|
-
"@inlang/
|
|
35
|
+
"@inlang/result": "1.1.0",
|
|
36
|
+
"@inlang/translatable": "1.2.1",
|
|
36
37
|
"@lix-js/fs": "0.6.0",
|
|
37
|
-
"@lix-js/client": "0.7.0"
|
|
38
|
-
"@inlang/translatable": "1.2.1"
|
|
38
|
+
"@lix-js/client": "0.7.0"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@types/throttle-debounce": "5.0.0",
|
|
@@ -13,6 +13,7 @@ export const solidAdapter = (
|
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
return {
|
|
16
|
+
id: project.id,
|
|
16
17
|
customApi: convert(project.customApi),
|
|
17
18
|
settings: convert(project.settings),
|
|
18
19
|
errors: convert(project.errors),
|
|
@@ -45,6 +46,7 @@ export const solidAdapter = (
|
|
|
45
46
|
}
|
|
46
47
|
|
|
47
48
|
export type InlangProjectWithSolidAdapter = {
|
|
49
|
+
id: InlangProject["id"]
|
|
48
50
|
customApi: () => ReturnType<InlangProject["customApi"]>
|
|
49
51
|
installed: {
|
|
50
52
|
plugins: () => ReturnType<InlangProject["installed"]["plugins"]>
|
package/src/api.ts
CHANGED
|
@@ -34,6 +34,11 @@ export type InstalledMessageLintRule = {
|
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
export type InlangProject = {
|
|
37
|
+
/**
|
|
38
|
+
* The project's id.
|
|
39
|
+
*/
|
|
40
|
+
// TODO #2063 make project id non-optional when every project is guaranteed to a project id
|
|
41
|
+
id?: string
|
|
37
42
|
installed: {
|
|
38
43
|
plugins: Subscribable<InstalledPlugin[]>
|
|
39
44
|
messageLintRules: Subscribable<InstalledMessageLintRule[]>
|
package/src/loadProject.ts
CHANGED
|
@@ -30,6 +30,7 @@ import { maybeMigrateToDirectory } from "./migrations/migrateToDirectory.js"
|
|
|
30
30
|
import { maybeCreateFirstProjectId } from "./migrations/maybeCreateFirstProjectId.js"
|
|
31
31
|
import type { Repository } from "@lix-js/client"
|
|
32
32
|
import { capture } from "./telemetry/capture.js"
|
|
33
|
+
import { identifyProject } from "./telemetry/groupIdentify.js"
|
|
33
34
|
|
|
34
35
|
const settingsCompiler = TypeCompiler.Compile(ProjectSettings)
|
|
35
36
|
|
|
@@ -319,6 +320,14 @@ export async function loadProject(args: {
|
|
|
319
320
|
if (projectId && projectLoadedCapturedAlready === false) {
|
|
320
321
|
projectLoadedCapturedAlready = true
|
|
321
322
|
// TODO ensure that capture is "awaited" without blocking the the app from starting
|
|
323
|
+
await identifyProject({
|
|
324
|
+
projectId,
|
|
325
|
+
properties: {
|
|
326
|
+
// using the id for now as a name but can be changed in the future
|
|
327
|
+
// we need at least one property to make a project visible in the dashboard
|
|
328
|
+
name: projectId,
|
|
329
|
+
},
|
|
330
|
+
})
|
|
322
331
|
await capture("SDK loaded project", {
|
|
323
332
|
projectId,
|
|
324
333
|
properties: {
|
|
@@ -332,6 +341,7 @@ export async function loadProject(args: {
|
|
|
332
341
|
}
|
|
333
342
|
|
|
334
343
|
return {
|
|
344
|
+
id: projectId,
|
|
335
345
|
installed: {
|
|
336
346
|
plugins: createSubscribable(() => installedPlugins()),
|
|
337
347
|
messageLintRules: createSubscribable(() => installedMessageLintRules()),
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { ENV_VARIABLES } from "../env-variables/index.js"
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Capture an event.
|
|
5
|
+
*
|
|
6
|
+
* - manually calling the PostHog API because the SDKs were not platform angostic (and generally bloated)
|
|
7
|
+
*/
|
|
8
|
+
export const identifyProject = async (args: {
|
|
9
|
+
projectId: string
|
|
10
|
+
/**
|
|
11
|
+
* Please use snake_case for property names.
|
|
12
|
+
*/
|
|
13
|
+
properties: Record<string, any>
|
|
14
|
+
}) => {
|
|
15
|
+
// do not send events if the token is not set
|
|
16
|
+
// (assuming this eases testing)
|
|
17
|
+
if (ENV_VARIABLES.PUBLIC_POSTHOG_TOKEN === undefined) {
|
|
18
|
+
return
|
|
19
|
+
}
|
|
20
|
+
try {
|
|
21
|
+
await fetch("https://eu.posthog.com/capture/", {
|
|
22
|
+
method: "POST",
|
|
23
|
+
body: JSON.stringify({
|
|
24
|
+
api_key: ENV_VARIABLES.PUBLIC_POSTHOG_TOKEN,
|
|
25
|
+
event: "$groupidentify",
|
|
26
|
+
// id is "unknown" because no user information is available
|
|
27
|
+
distinct_id: "unknown",
|
|
28
|
+
properties: {
|
|
29
|
+
$group_type: "project",
|
|
30
|
+
$group_key: args.projectId,
|
|
31
|
+
$group_set: {
|
|
32
|
+
...args.properties,
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
}),
|
|
36
|
+
})
|
|
37
|
+
} catch (e) {
|
|
38
|
+
// TODO implement sentry logging
|
|
39
|
+
// do not console.log and avoid exposing internal errors to the user
|
|
40
|
+
}
|
|
41
|
+
}
|