@inlang/sdk 0.24.0 → 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.
@@ -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),
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":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,KAAK,KAAK,YAAY,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,KAAK,qBAAqB,MAAM,6BAA6B,CAAA;AACzE,OAAO,KAAK,EACX,gBAAgB,EAChB,eAAe,EACf,OAAO,EACP,MAAM,EACN,eAAe,EACf,iBAAiB,EACjB,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AAE3E,MAAM,MAAM,eAAe,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;IAChB,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC,CAAA;IAClC,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC,CAAA;IAClC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;CAEd,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACtC,EAAE,EAAE,eAAe,CAAC,IAAI,CAAC,CAAA;IACzB,WAAW,EAAE,eAAe,CAAC,aAAa,CAAC,CAAA;IAC3C,WAAW,EAAE,eAAe,CAAC,aAAa,CAAC,CAAA;IAC3C;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,gBAAgB,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC3B,SAAS,EAAE;QACV,OAAO,EAAE,YAAY,CAAC,eAAe,EAAE,CAAC,CAAA;QACxC,gBAAgB,EAAE,YAAY,CAAC,wBAAwB,EAAE,CAAC,CAAA;KAC1D,CAAA;IACD,MAAM,EAAE,YAAY,CACnB,CAAC,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,OAAO,qBAAqB,CAAC,GAAG,KAAK,CAAC,EAAE,CAC9E,CAAA;IACD,SAAS,EAAE,YAAY,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAA;IACvD,QAAQ,EAAE,YAAY,CAAC,eAAe,CAAC,CAAA;IACvC,WAAW,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,2BAA2B,CAAC,CAAA;IAChG,KAAK,EAAE;QACN,QAAQ,EAAE,eAAe,CAAA;QACzB,kBAAkB,EAAE,0BAA0B,CAAA;KAC9C,CAAA;CACD,CAAA;AAMD,MAAM,MAAM,YAAY,CAAC,KAAK,IAAI;IACjC,IAAI,KAAK,CAAA;IACT,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,KAAK,IAAI,CAAA;CACrD,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC7B,MAAM,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAA;IAC5C,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE;YAAE,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;SAAE,CAAA;KAAE,KAAK,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG;QACtE,SAAS,EAAE,CACV,IAAI,EAAE;YAAE,KAAK,EAAE;gBAAE,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;aAAE,CAAA;SAAE,EACtC,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,KAChC,IAAI,CAAA;KACT,CAAA;IACD,kBAAkB,EAAE,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAIjD,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IACzC,MAAM,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE;YAAE,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;SAAE,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,KAAK,OAAO,CAAA;IACnF,MAAM,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE;YAAE,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;SAAE,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAA;IACvE,MAAM,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE;YAAE,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;SAAE,CAAA;KAAE,KAAK,OAAO,CAAA;CAC3D,CAAA;AAED,MAAM,MAAM,0BAA0B,GAAG;IACxC,MAAM,EAAE,YAAY,CAAC,iBAAiB,EAAE,CAAC,CAAA;IACzC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE;QACZ,KAAK,EAAE;YAAE,SAAS,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAA;SAAE,CAAA;KACpD,KAAK,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC,GAAG;QACtC,SAAS,EAAE,CACV,IAAI,EAAE;YAAE,KAAK,EAAE;gBAAE,SAAS,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAA;aAAE,CAAA;SAAE,EAC9D,QAAQ,EAAE,CAAC,gBAAgB,EAAE,QAAQ,CAAC,iBAAiB,EAAE,CAAC,KAAK,IAAI,KAC/D,IAAI,CAAA;KACT,CAAA;CACD,CAAA"}
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;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;;;;;;;;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"}
@@ -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.24.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
29
  "@inlang/message": "2.0.1",
31
- "@inlang/message-lint-rule": "1.4.1",
30
+ "@inlang/json-types": "1.1.0",
32
31
  "@inlang/module": "1.2.3",
32
+ "@inlang/message-lint-rule": "1.4.1",
33
33
  "@inlang/plugin": "2.4.3",
34
+ "@inlang/project-settings": "2.2.1",
34
35
  "@inlang/result": "1.1.0",
35
36
  "@inlang/translatable": "1.2.1",
36
- "@inlang/project-settings": "2.2.1",
37
37
  "@lix-js/fs": "0.6.0",
38
- "@lix-js/client": "0.6.0"
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[]>
@@ -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
+ }