alpic 0.0.0-dev.fdfada2 → 0.0.0-dev.fe18813

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 (138) hide show
  1. package/dist/__tests__/auth.e2e.test.d.ts +1 -0
  2. package/dist/__tests__/auth.e2e.test.js +142 -0
  3. package/dist/__tests__/auth.e2e.test.js.map +1 -0
  4. package/dist/__tests__/deploy-flags.e2e.test.d.ts +1 -0
  5. package/dist/__tests__/deploy-flags.e2e.test.js +111 -0
  6. package/dist/__tests__/deploy-flags.e2e.test.js.map +1 -0
  7. package/dist/__tests__/deploy.e2e.test.d.ts +1 -0
  8. package/dist/__tests__/deploy.e2e.test.js +168 -0
  9. package/dist/__tests__/deploy.e2e.test.js.map +1 -0
  10. package/dist/__tests__/environment-variable/environment-variable-add.e2e.test.d.ts +1 -0
  11. package/dist/__tests__/environment-variable/environment-variable-add.e2e.test.js +250 -0
  12. package/dist/__tests__/environment-variable/environment-variable-add.e2e.test.js.map +1 -0
  13. package/dist/__tests__/environment-variable/environment-variable-list.e2e.test.d.ts +1 -0
  14. package/dist/__tests__/environment-variable/environment-variable-list.e2e.test.js +121 -0
  15. package/dist/__tests__/environment-variable/environment-variable-list.e2e.test.js.map +1 -0
  16. package/dist/__tests__/environment-variable/environment-variable-remove.e2e.test.d.ts +1 -0
  17. package/dist/__tests__/environment-variable/environment-variable-remove.e2e.test.js +139 -0
  18. package/dist/__tests__/environment-variable/environment-variable-remove.e2e.test.js.map +1 -0
  19. package/dist/__tests__/environment-variable/environment-variable-update.e2e.test.d.ts +1 -0
  20. package/dist/__tests__/environment-variable/environment-variable-update.e2e.test.js +294 -0
  21. package/dist/__tests__/environment-variable/environment-variable-update.e2e.test.js.map +1 -0
  22. package/dist/__tests__/environment-variable/environment-variable-validation.test.d.ts +1 -0
  23. package/dist/__tests__/environment-variable/environment-variable-validation.test.js +19 -0
  24. package/dist/__tests__/environment-variable/environment-variable-validation.test.js.map +1 -0
  25. package/dist/__tests__/fixtures/demo-project/index.d.ts +1 -0
  26. package/dist/__tests__/fixtures/demo-project/index.js +4 -0
  27. package/dist/__tests__/fixtures/demo-project/index.js.map +1 -0
  28. package/dist/__tests__/git-flags.e2e.test.d.ts +1 -0
  29. package/dist/__tests__/git-flags.e2e.test.js +124 -0
  30. package/dist/__tests__/git-flags.e2e.test.js.map +1 -0
  31. package/dist/__tests__/git.e2e.test.d.ts +1 -0
  32. package/dist/__tests__/git.e2e.test.js +221 -0
  33. package/dist/__tests__/git.e2e.test.js.map +1 -0
  34. package/dist/__tests__/mock-server.d.ts +23 -0
  35. package/dist/__tests__/mock-server.js +573 -0
  36. package/dist/__tests__/mock-server.js.map +1 -0
  37. package/dist/__tests__/utils.d.ts +67 -0
  38. package/dist/__tests__/utils.js +255 -0
  39. package/dist/__tests__/utils.js.map +1 -0
  40. package/dist/api.d.ts +0 -1
  41. package/dist/api.js +5 -9
  42. package/dist/api.js.map +1 -1
  43. package/dist/commands/deploy.d.ts +7 -4
  44. package/dist/commands/deploy.js +39 -25
  45. package/dist/commands/deploy.js.map +1 -1
  46. package/dist/commands/environment-variable/add.d.ts +14 -0
  47. package/dist/commands/environment-variable/add.js +46 -0
  48. package/dist/commands/environment-variable/add.js.map +1 -0
  49. package/dist/commands/environment-variable/list.d.ts +9 -0
  50. package/dist/commands/environment-variable/list.js +48 -0
  51. package/dist/commands/environment-variable/list.js.map +1 -0
  52. package/dist/commands/environment-variable/remove.d.ts +11 -0
  53. package/dist/commands/environment-variable/remove.js +32 -0
  54. package/dist/commands/environment-variable/remove.js.map +1 -0
  55. package/dist/commands/environment-variable/update.d.ts +13 -0
  56. package/dist/commands/environment-variable/update.js +40 -0
  57. package/dist/commands/environment-variable/update.js.map +1 -0
  58. package/dist/commands/git/connect.d.ts +10 -0
  59. package/dist/commands/git/connect.js +58 -0
  60. package/dist/commands/git/connect.js.map +1 -0
  61. package/dist/commands/git/disconnect.d.ts +9 -0
  62. package/dist/commands/git/disconnect.js +41 -0
  63. package/dist/commands/git/disconnect.js.map +1 -0
  64. package/dist/commands/git.d.ts +6 -0
  65. package/dist/commands/git.js +17 -0
  66. package/dist/commands/git.js.map +1 -0
  67. package/dist/commands/login.d.ts +6 -0
  68. package/dist/commands/login.js +32 -0
  69. package/dist/commands/login.js.map +1 -0
  70. package/dist/commands/logout.d.ts +6 -0
  71. package/dist/commands/logout.js +20 -0
  72. package/dist/commands/logout.js.map +1 -0
  73. package/dist/commands/whoami.d.ts +6 -0
  74. package/dist/commands/whoami.js +13 -0
  75. package/dist/commands/whoami.js.map +1 -0
  76. package/dist/env.d.ts +4 -0
  77. package/dist/env.js +10 -0
  78. package/dist/env.js.map +1 -0
  79. package/dist/lib/alpic-command.d.ts +6 -0
  80. package/dist/lib/alpic-command.js +27 -0
  81. package/dist/lib/alpic-command.js.map +1 -0
  82. package/dist/lib/archive.d.ts +3 -3
  83. package/dist/lib/archive.js +11 -15
  84. package/dist/lib/archive.js.map +1 -1
  85. package/dist/lib/auth/auth.d.ts +2 -0
  86. package/dist/lib/auth/auth.js +21 -0
  87. package/dist/lib/auth/auth.js.map +1 -0
  88. package/dist/lib/auth/oauth/client.d.ts +28 -0
  89. package/dist/lib/auth/oauth/client.js +110 -0
  90. package/dist/lib/auth/oauth/client.js.map +1 -0
  91. package/dist/lib/auth/oauth/constants.d.ts +2 -0
  92. package/dist/lib/auth/oauth/constants.js +3 -0
  93. package/dist/lib/auth/oauth/constants.js.map +1 -0
  94. package/dist/lib/auth/oauth/server/assets/alpic-mountain.png +0 -0
  95. package/dist/lib/auth/oauth/server/assets/authorize.html +195 -0
  96. package/dist/lib/auth/oauth/server/assets/callback.html +88 -0
  97. package/dist/lib/auth/oauth/server/index.d.ts +8 -0
  98. package/dist/lib/auth/oauth/server/index.js +102 -0
  99. package/dist/lib/auth/oauth/server/index.js.map +1 -0
  100. package/dist/lib/auth/whoami.d.ts +1 -0
  101. package/dist/lib/auth/whoami.js +41 -0
  102. package/dist/lib/auth/whoami.js.map +1 -0
  103. package/dist/lib/base-workflow.d.ts +10 -0
  104. package/dist/lib/base-workflow.js +22 -0
  105. package/dist/lib/base-workflow.js.map +1 -0
  106. package/dist/lib/config.d.ts +2 -2
  107. package/dist/lib/config.js +7 -7
  108. package/dist/lib/config.js.map +1 -1
  109. package/dist/lib/deployment.d.ts +2 -3
  110. package/dist/lib/deployment.js +12 -8
  111. package/dist/lib/deployment.js.map +1 -1
  112. package/dist/lib/environment-variable.d.ts +35 -0
  113. package/dist/lib/environment-variable.js +277 -0
  114. package/dist/lib/environment-variable.js.map +1 -0
  115. package/dist/lib/git.d.ts +22 -0
  116. package/dist/lib/git.js +131 -0
  117. package/dist/lib/git.js.map +1 -0
  118. package/dist/lib/global-store.d.ts +28 -0
  119. package/dist/lib/global-store.js +76 -0
  120. package/dist/lib/global-store.js.map +1 -0
  121. package/dist/lib/project.d.ts +65 -61
  122. package/dist/lib/project.js +264 -250
  123. package/dist/lib/project.js.map +1 -1
  124. package/dist/lib/table.d.ts +8 -0
  125. package/dist/lib/table.js +27 -0
  126. package/dist/lib/table.js.map +1 -0
  127. package/dist/lib/telemetry.js +6 -6
  128. package/dist/lib/telemetry.js.map +1 -1
  129. package/dist/lib/utils.d.ts +1 -0
  130. package/dist/lib/utils.js +17 -0
  131. package/dist/lib/utils.js.map +1 -0
  132. package/dist/lib/utils.test.d.ts +1 -0
  133. package/dist/lib/utils.test.js +14 -0
  134. package/dist/lib/utils.test.js.map +1 -0
  135. package/package.json +29 -28
  136. package/dist/lib/global-config.d.ts +0 -9
  137. package/dist/lib/global-config.js +0 -48
  138. package/dist/lib/global-config.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import ci from "ci-info";
2
2
  import crypto from "node:crypto";
3
3
  import posthog from "../posthog.js";
4
- import { getGlobalConfig, saveGlobalConfig } from "./global-config.js";
4
+ import { globalStore } from "./global-store.js";
5
5
  const ENV_TELEMETRY_DISABLED = "ALPIC_TELEMETRY_DISABLED";
6
6
  const ENV_TELEMETRY_DEBUG = "ALPIC_TELEMETRY_DEBUG";
7
7
  const ENV_DO_NOT_TRACK = "DO_NOT_TRACK";
@@ -15,22 +15,22 @@ export function isEnabled() {
15
15
  if (ci.isCI) {
16
16
  return true;
17
17
  }
18
- const config = getGlobalConfig();
18
+ const config = globalStore.getConfig();
19
19
  return config.telemetry.enabled;
20
20
  }
21
21
  export function isDebugMode() {
22
22
  return process.env[ENV_TELEMETRY_DEBUG] === "1" || process.env[ENV_TELEMETRY_DEBUG]?.toLowerCase() === "true";
23
23
  }
24
24
  export function setEnabled(enabled) {
25
- const config = getGlobalConfig();
25
+ const config = globalStore.getConfig();
26
26
  config.telemetry.enabled = enabled;
27
- saveGlobalConfig(config);
27
+ globalStore.saveConfig(config);
28
28
  }
29
29
  export function getMachineId() {
30
30
  if (ci.isCI) {
31
31
  return ci.name ?? "unknown-ci";
32
32
  }
33
- return getGlobalConfig().machineId;
33
+ return globalStore.getConfig().machineId;
34
34
  }
35
35
  const hook = async ({ id: command, config: { version }, error, }) => {
36
36
  if (!isEnabled()) {
@@ -58,7 +58,7 @@ const hook = async ({ id: command, config: { version }, error, }) => {
58
58
  properties: event,
59
59
  });
60
60
  }
61
- catch (e) {
61
+ catch {
62
62
  // Silently ignore telemetry errors - never block CLI operation
63
63
  }
64
64
  };
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/lib/telemetry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/lib/telemetry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const formatAgo: (date: Date, now?: Date) => string;
@@ -0,0 +1,17 @@
1
+ export const formatAgo = (date, now = new Date()) => {
2
+ const rtf = new Intl.RelativeTimeFormat("en", { numeric: "auto" });
3
+ const diffInSeconds = Math.round((date.getTime() - now.getTime()) / 1000);
4
+ const absSeconds = Math.abs(diffInSeconds);
5
+ if (absSeconds < 60)
6
+ return rtf.format(diffInSeconds, "second");
7
+ if (absSeconds < 3600)
8
+ return rtf.format(Math.round(diffInSeconds / 60), "minute");
9
+ if (absSeconds < 86400)
10
+ return rtf.format(Math.round(diffInSeconds / 3600), "hour");
11
+ if (absSeconds < 2592000)
12
+ return rtf.format(Math.round(diffInSeconds / 86400), "day");
13
+ if (absSeconds < 31536000)
14
+ return rtf.format(Math.round(diffInSeconds / 2592000), "month");
15
+ return rtf.format(Math.round(diffInSeconds / 31536000), "year");
16
+ };
17
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAU,EAAE,GAAG,GAAG,IAAI,IAAI,EAAE,EAAE,EAAE;IACxD,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IACnE,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1E,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAE3C,IAAI,UAAU,GAAG,EAAE;QAAE,OAAO,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAChE,IAAI,UAAU,GAAG,IAAI;QAAE,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IACnF,IAAI,UAAU,GAAG,KAAK;QAAE,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;IACpF,IAAI,UAAU,GAAG,OAAO;QAAE,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;IACtF,IAAI,UAAU,GAAG,QAAQ;QAAE,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3F,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;AAClE,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,14 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { formatAgo } from "./utils.js";
3
+ describe("formatAgo", () => {
4
+ const now = new Date("2026-01-01T00:00:00.000Z");
5
+ it("formats past dates", () => {
6
+ expect(formatAgo(new Date(now.getTime() - 30_000), now)).toBe("30 seconds ago");
7
+ expect(formatAgo(new Date(now.getTime() - 2 * 60_000), now)).toBe("2 minutes ago");
8
+ expect(formatAgo(new Date(now.getTime() - 3 * 3_600_000), now)).toBe("3 hours ago");
9
+ expect(formatAgo(new Date(now.getTime() - 5 * 86_400_000), now)).toBe("5 days ago");
10
+ expect(formatAgo(new Date(now.getTime() - 2 * 2_592_000_000), now)).toBe("2 months ago");
11
+ expect(formatAgo(new Date(now.getTime() - 2 * 31_536_000_000), now)).toBe("2 years ago");
12
+ });
13
+ });
14
+ //# sourceMappingURL=utils.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../src/lib/utils.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAEjD,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC5B,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAChF,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACnF,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACpF,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpF,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,aAAa,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzF,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,cAAc,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3F,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "alpic",
3
- "version": "0.0.0-dev.fdfada2",
3
+ "version": "0.0.0-dev.fe18813",
4
4
  "description": "The command-line interface for Alpic",
5
5
  "homepage": "https://alpic.ai",
6
6
  "preferGlobal": true,
@@ -16,20 +16,6 @@
16
16
  "engines": {
17
17
  "node": ">= 18.20.8"
18
18
  },
19
- "nx": {
20
- "targets": {
21
- "build": {
22
- "dependsOn": [
23
- "@alpic-ai/api:build"
24
- ]
25
- },
26
- "test:type": {
27
- "dependsOn": [
28
- "@alpic-ai/api:build"
29
- ]
30
- }
31
- }
32
- },
33
19
  "keywords": [
34
20
  "chatgpt",
35
21
  "app",
@@ -39,22 +25,35 @@
39
25
  "author": "Alpic",
40
26
  "license": "ISC",
41
27
  "dependencies": {
42
- "@clack/prompts": "^1.0.0",
43
- "@oclif/core": "^4.8.0",
44
- "@orpc/client": "^1.13.4",
45
- "@orpc/contract": "^1.13.4",
46
- "@orpc/openapi-client": "^1.13.4",
28
+ "@clack/prompts": "^1.0.1",
29
+ "@oclif/core": "^4.8.3",
30
+ "@orpc/client": "^1.13.6",
31
+ "@orpc/contract": "^1.13.6",
32
+ "@orpc/openapi-client": "^1.13.6",
33
+ "@t3-oss/env-core": "^0.13.10",
47
34
  "chalk": "^5.6.2",
48
35
  "ci-info": "^4.4.0",
49
- "posthog-node": "^5.24.11",
50
- "tar": "^7.4.0",
51
- "@alpic-ai/api": "0.0.0-dev.fdfada2"
36
+ "env-paths": "^4.0.0",
37
+ "envfile": "^7.1.0",
38
+ "jwt-decode": "^4.0.0",
39
+ "open": "^11.0.0",
40
+ "openid-client": "^6.8.2",
41
+ "posthog-node": "^5.26.2",
42
+ "tar": "^7.5.9",
43
+ "zod": "^4.3.6",
44
+ "@alpic-ai/api": "0.0.0-dev.fe18813"
52
45
  },
53
46
  "devDependencies": {
47
+ "@orpc/openapi": "^1.13.6",
48
+ "@orpc/server": "^1.13.6",
49
+ "@orpc/zod": "^1.13.6",
54
50
  "@total-typescript/tsconfig": "^1.0.4",
55
- "@types/node": "^25.2.2",
56
- "biome": "^0.3.3",
57
- "jsdom": "^27.4.0",
51
+ "@types/express": "^5.0.6",
52
+ "@types/node": "^25.3.3",
53
+ "express": "^5.2.1",
54
+ "jsdom": "^28.1.0",
55
+ "node-pty": "1.1.0",
56
+ "selfsigned": "^5.5.0",
58
57
  "shx": "^0.4.0",
59
58
  "ts-node": "^10.9.2",
60
59
  "typescript": "^5.9.3",
@@ -73,11 +72,13 @@
73
72
  }
74
73
  },
75
74
  "scripts": {
76
- "build": "shx rm -rf dist && tsc",
75
+ "build": "shx rm -rf dist && tsc && pnpm run build:assets",
76
+ "build:assets": "shx cp -r src/lib/auth/oauth/server/assets dist/lib/auth/oauth/server/",
77
77
  "format": "biome check --write --error-on-warnings",
78
78
  "test": "pnpm run test:unit && pnpm run test:type && pnpm run test:format",
79
79
  "test:unit": "vitest run",
80
80
  "test:format": "prettier --check .",
81
- "test:type": "tsc --noEmit"
81
+ "test:type": "tsc --noEmit",
82
+ "update:docs": "claude --add-dir ../../docs --permission-mode acceptEdits -p \"/update-cli-docs\" 2>&1 && prettier --write \"../../docs/cli/**/*.mdx\""
82
83
  }
83
84
  }
@@ -1,9 +0,0 @@
1
- export declare const GLOBAL_CONFIG_FILE: string;
2
- export interface GlobalConfig {
3
- machineId: string;
4
- telemetry: {
5
- enabled: boolean;
6
- };
7
- }
8
- export declare function getGlobalConfig(): GlobalConfig;
9
- export declare function saveGlobalConfig(config: GlobalConfig): void;
@@ -1,48 +0,0 @@
1
- import crypto from "node:crypto";
2
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
3
- import { homedir } from "node:os";
4
- import { join } from "node:path";
5
- const GLOBAL_CONFIG_DIR = join(homedir(), ".alpic");
6
- export const GLOBAL_CONFIG_FILE = join(GLOBAL_CONFIG_DIR, "config.json");
7
- function readJsonFile(filePath) {
8
- try {
9
- if (existsSync(filePath)) {
10
- const content = readFileSync(filePath, "utf-8");
11
- return JSON.parse(content);
12
- }
13
- }
14
- catch {
15
- // Ignore errors reading config
16
- }
17
- return null;
18
- }
19
- function writeJsonFile(filePath, data) {
20
- try {
21
- const dir = join(filePath, "..");
22
- if (!existsSync(dir)) {
23
- mkdirSync(dir, { recursive: true });
24
- }
25
- writeFileSync(filePath, JSON.stringify(data, null, 2), "utf-8");
26
- }
27
- catch {
28
- // Ignore errors writing config
29
- }
30
- }
31
- export function getGlobalConfig() {
32
- const existing = readJsonFile(GLOBAL_CONFIG_FILE);
33
- if (existing?.machineId && existing?.telemetry !== undefined) {
34
- return existing;
35
- }
36
- const config = {
37
- machineId: existing?.machineId ?? crypto.randomUUID(),
38
- telemetry: {
39
- enabled: existing?.telemetry?.enabled ?? true,
40
- },
41
- };
42
- writeJsonFile(GLOBAL_CONFIG_FILE, config);
43
- return config;
44
- }
45
- export function saveGlobalConfig(config) {
46
- writeJsonFile(GLOBAL_CONFIG_FILE, config);
47
- }
48
- //# sourceMappingURL=global-config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"global-config.js","sourceRoot":"","sources":["../../src/lib/global-config.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;AACpD,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;AASzE,SAAS,YAAY,CAAI,QAAgB;IACvC,IAAI,CAAC;QACH,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAChD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAM,CAAC;QAClC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,+BAA+B;IACjC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CAAC,QAAgB,EAAE,IAAa;IACpD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACtC,CAAC;QACD,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,+BAA+B;IACjC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,QAAQ,GAAG,YAAY,CAAe,kBAAkB,CAAC,CAAC;IAChE,IAAI,QAAQ,EAAE,SAAS,IAAI,QAAQ,EAAE,SAAS,KAAK,SAAS,EAAE,CAAC;QAC7D,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,MAAM,GAAiB;QAC3B,SAAS,EAAE,QAAQ,EAAE,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE;QACrD,SAAS,EAAE;YACT,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,IAAI,IAAI;SAC9C;KACF,CAAC;IACF,aAAa,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAoB;IACnD,aAAa,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;AAC5C,CAAC"}