alpic 0.0.0-dev.6fbb4e5 → 0.0.0-dev.6fe75df

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 (101) 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 +87 -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__/fixtures/demo-project/index.d.ts +1 -0
  11. package/dist/__tests__/fixtures/demo-project/index.js +4 -0
  12. package/dist/__tests__/fixtures/demo-project/index.js.map +1 -0
  13. package/dist/__tests__/git.e2e.test.d.ts +1 -0
  14. package/dist/__tests__/git.e2e.test.js +218 -0
  15. package/dist/__tests__/git.e2e.test.js.map +1 -0
  16. package/dist/__tests__/mock-server.d.ts +22 -0
  17. package/dist/__tests__/mock-server.js +492 -0
  18. package/dist/__tests__/mock-server.js.map +1 -0
  19. package/dist/__tests__/utils.d.ts +69 -0
  20. package/dist/__tests__/utils.js +243 -0
  21. package/dist/__tests__/utils.js.map +1 -0
  22. package/dist/api.d.ts +3 -17
  23. package/dist/api.js +14 -68
  24. package/dist/api.js.map +1 -1
  25. package/dist/commands/deploy.d.ts +8 -2
  26. package/dist/commands/deploy.js +47 -19
  27. package/dist/commands/deploy.js.map +1 -1
  28. package/dist/commands/git/connect.d.ts +9 -0
  29. package/dist/commands/git/connect.js +59 -0
  30. package/dist/commands/git/connect.js.map +1 -0
  31. package/dist/commands/git/disconnect.d.ts +9 -0
  32. package/dist/commands/git/disconnect.js +51 -0
  33. package/dist/commands/git/disconnect.js.map +1 -0
  34. package/dist/commands/git.d.ts +6 -0
  35. package/dist/commands/git.js +17 -0
  36. package/dist/commands/git.js.map +1 -0
  37. package/dist/commands/login.d.ts +6 -0
  38. package/dist/commands/login.js +39 -0
  39. package/dist/commands/login.js.map +1 -0
  40. package/dist/commands/logout.d.ts +6 -0
  41. package/dist/commands/logout.js +20 -0
  42. package/dist/commands/logout.js.map +1 -0
  43. package/dist/commands/telemetry/disable.d.ts +5 -0
  44. package/dist/commands/telemetry/disable.js +14 -0
  45. package/dist/commands/telemetry/disable.js.map +1 -0
  46. package/dist/commands/telemetry/enable.d.ts +5 -0
  47. package/dist/commands/telemetry/enable.js +13 -0
  48. package/dist/commands/telemetry/enable.js.map +1 -0
  49. package/dist/commands/telemetry/status.d.ts +5 -0
  50. package/dist/commands/telemetry/status.js +19 -0
  51. package/dist/commands/telemetry/status.js.map +1 -0
  52. package/dist/commands/whoami.d.ts +6 -0
  53. package/dist/commands/whoami.js +25 -0
  54. package/dist/commands/whoami.js.map +1 -0
  55. package/dist/env.d.ts +4 -0
  56. package/dist/env.js +10 -0
  57. package/dist/env.js.map +1 -0
  58. package/dist/lib/alpic-command.d.ts +4 -0
  59. package/dist/lib/alpic-command.js +17 -0
  60. package/dist/lib/alpic-command.js.map +1 -0
  61. package/dist/lib/auth/auth.d.ts +2 -0
  62. package/dist/lib/auth/auth.js +21 -0
  63. package/dist/lib/auth/auth.js.map +1 -0
  64. package/dist/lib/auth/oauth/client.d.ts +28 -0
  65. package/dist/lib/auth/oauth/client.js +110 -0
  66. package/dist/lib/auth/oauth/client.js.map +1 -0
  67. package/dist/lib/auth/oauth/constants.d.ts +2 -0
  68. package/dist/lib/auth/oauth/constants.js +3 -0
  69. package/dist/lib/auth/oauth/constants.js.map +1 -0
  70. package/dist/lib/auth/oauth/server/assets/alpic-mountain.png +0 -0
  71. package/dist/lib/auth/oauth/server/assets/authorize.html +195 -0
  72. package/dist/lib/auth/oauth/server/assets/callback.html +88 -0
  73. package/dist/lib/auth/oauth/server/index.d.ts +8 -0
  74. package/dist/lib/auth/oauth/server/index.js +102 -0
  75. package/dist/lib/auth/oauth/server/index.js.map +1 -0
  76. package/dist/lib/auth/whoami.d.ts +28 -0
  77. package/dist/lib/auth/whoami.js +35 -0
  78. package/dist/lib/auth/whoami.js.map +1 -0
  79. package/dist/lib/base-workflow.d.ts +10 -0
  80. package/dist/lib/base-workflow.js +22 -0
  81. package/dist/lib/base-workflow.js.map +1 -0
  82. package/dist/lib/deployment.d.ts +16 -6
  83. package/dist/lib/deployment.js +25 -9
  84. package/dist/lib/deployment.js.map +1 -1
  85. package/dist/lib/git.d.ts +14 -0
  86. package/dist/lib/git.js +105 -0
  87. package/dist/lib/git.js.map +1 -0
  88. package/dist/lib/global-store.d.ts +28 -0
  89. package/dist/lib/global-store.js +75 -0
  90. package/dist/lib/global-store.js.map +1 -0
  91. package/dist/lib/project.d.ts +66 -12
  92. package/dist/lib/project.js +268 -252
  93. package/dist/lib/project.js.map +1 -1
  94. package/dist/lib/telemetry.d.ts +7 -0
  95. package/dist/lib/telemetry.js +66 -0
  96. package/dist/lib/telemetry.js.map +1 -0
  97. package/dist/posthog.d.ts +3 -0
  98. package/dist/posthog.js +10 -0
  99. package/dist/posthog.js.map +1 -0
  100. package/dist/types.d.ts +0 -54
  101. package/package.json +32 -10
@@ -0,0 +1,66 @@
1
+ import ci from "ci-info";
2
+ import crypto from "node:crypto";
3
+ import posthog from "../posthog.js";
4
+ import { globalStore } from "./global-store.js";
5
+ const ENV_TELEMETRY_DISABLED = "ALPIC_TELEMETRY_DISABLED";
6
+ const ENV_TELEMETRY_DEBUG = "ALPIC_TELEMETRY_DEBUG";
7
+ const ENV_DO_NOT_TRACK = "DO_NOT_TRACK";
8
+ export function isEnabled() {
9
+ if (process.env[ENV_TELEMETRY_DISABLED] === "1" || process.env[ENV_TELEMETRY_DISABLED]?.toLowerCase() === "true") {
10
+ return false;
11
+ }
12
+ if (process.env[ENV_DO_NOT_TRACK] === "1" || process.env[ENV_DO_NOT_TRACK]?.toLowerCase() === "true") {
13
+ return false;
14
+ }
15
+ if (ci.isCI) {
16
+ return true;
17
+ }
18
+ const config = globalStore.getConfig();
19
+ return config.telemetry.enabled;
20
+ }
21
+ export function isDebugMode() {
22
+ return process.env[ENV_TELEMETRY_DEBUG] === "1" || process.env[ENV_TELEMETRY_DEBUG]?.toLowerCase() === "true";
23
+ }
24
+ export function setEnabled(enabled) {
25
+ const config = globalStore.getConfig();
26
+ config.telemetry.enabled = enabled;
27
+ globalStore.saveConfig(config);
28
+ }
29
+ export function getMachineId() {
30
+ if (ci.isCI) {
31
+ return ci.name ?? "unknown-ci";
32
+ }
33
+ return globalStore.getConfig().machineId;
34
+ }
35
+ const hook = async ({ id: command, config: { version }, error, }) => {
36
+ if (!isEnabled()) {
37
+ return;
38
+ }
39
+ const event = {
40
+ command,
41
+ version,
42
+ machineId: getMachineId(),
43
+ sessionId: crypto.randomUUID(),
44
+ isCI: ci.isCI,
45
+ nodeVersion: process.version,
46
+ platform: process.platform,
47
+ outcome: error ? "failure" : "success",
48
+ error: error?.message,
49
+ };
50
+ if (isDebugMode()) {
51
+ console.error("[Telemetry Debug] Would send event:", JSON.stringify(event, null, 2));
52
+ return;
53
+ }
54
+ try {
55
+ posthog.capture({
56
+ distinctId: event.machineId,
57
+ event: command,
58
+ properties: event,
59
+ });
60
+ }
61
+ catch {
62
+ // Silently ignore telemetry errors - never block CLI operation
63
+ }
64
+ };
65
+ export default hook;
66
+ //# sourceMappingURL=telemetry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/lib/telemetry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { PostHog } from "posthog-node";
2
+ declare const posthog: PostHog;
3
+ export default posthog;
@@ -0,0 +1,10 @@
1
+ import { PostHog } from "posthog-node";
2
+ const POSTHOG_API_KEY = "phc_ksTmveDgBWGdJb7tlb8Vz6eeKsOl0UkdpCqUaSU2ypg";
3
+ const POSTHOG_HOST = "https://us.i.posthog.com";
4
+ const posthog = new PostHog(POSTHOG_API_KEY, {
5
+ host: POSTHOG_HOST,
6
+ flushAt: 1,
7
+ flushInterval: 0,
8
+ });
9
+ export default posthog;
10
+ //# sourceMappingURL=posthog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"posthog.js","sourceRoot":"","sources":["../src/posthog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,eAAe,GAAG,iDAAiD,CAAC;AAC1E,MAAM,YAAY,GAAG,0BAA0B,CAAC;AAEhD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,eAAe,EAAE;IAC3C,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,CAAC;IACV,aAAa,EAAE,CAAC;CACjB,CAAC,CAAC;AAEH,eAAe,OAAO,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,27 +1,3 @@
1
- export type ApiProject = {
2
- id: string;
3
- teamId: string;
4
- name: string;
5
- productionEnvironment?: {
6
- id: string;
7
- name: string;
8
- mcpServerUrl: string;
9
- } | null;
10
- environments?: ApiEnvironment[];
11
- };
12
- export type PresignedUploadResponse = {
13
- uploadUrl: string;
14
- token: string;
15
- expiresAt: string;
16
- };
17
- export type ApiEnvironment = {
18
- id: string;
19
- name: string;
20
- sourceBranch: string;
21
- mcpServerUrl: string;
22
- projectId: string;
23
- domains: string[];
24
- };
25
1
  export type ProjectConfig = {
26
2
  projectId: string;
27
3
  teamId: string;
@@ -29,33 +5,3 @@ export type ProjectConfig = {
29
5
  environmentId?: string;
30
6
  environmentName?: string;
31
7
  };
32
- export type ApiDeployment = {
33
- id: string;
34
- status: "ongoing" | "deployed" | "failed" | "canceled";
35
- sourceRef: string;
36
- sourceCommitId?: string;
37
- sourceCommitMessage?: string;
38
- authorUsername: string | null;
39
- authorAvatarUrl: string | null;
40
- startedAt: string | null;
41
- completedAt: string | null;
42
- };
43
- export type Runtime = "node22" | "node24" | "python3.13";
44
- export type CreateProjectInput = {
45
- name: string;
46
- runtime: Runtime;
47
- rootDirectory?: string;
48
- };
49
- export type ApiCreateProjectOutput = {
50
- id: string;
51
- name: string;
52
- teamId: string;
53
- productionEnvironment: {
54
- id: string;
55
- name: string;
56
- } | null;
57
- environments: {
58
- id: string;
59
- name: string;
60
- }[];
61
- };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "alpic",
3
- "version": "0.0.0-dev.6fbb4e5",
3
+ "version": "0.0.0-dev.6fe75df",
4
4
  "description": "The command-line interface for Alpic",
5
5
  "homepage": "https://alpic.ai",
6
6
  "preferGlobal": true,
@@ -14,7 +14,7 @@
14
14
  "dist"
15
15
  ],
16
16
  "engines": {
17
- "node": ">= 18"
17
+ "node": ">= 18.20.8"
18
18
  },
19
19
  "keywords": [
20
20
  "chatgpt",
@@ -25,16 +25,34 @@
25
25
  "author": "Alpic",
26
26
  "license": "ISC",
27
27
  "dependencies": {
28
- "@clack/prompts": "^1.0.0",
29
- "@oclif/core": "^4.8.0",
28
+ "@clack/prompts": "^1.0.1",
29
+ "@oclif/core": "^4.8.1",
30
+ "@orpc/client": "^1.13.5",
31
+ "@orpc/contract": "^1.13.5",
32
+ "@orpc/openapi-client": "^1.13.5",
33
+ "@t3-oss/env-core": "^0.13.10",
30
34
  "chalk": "^5.6.2",
31
- "tar": "^7.4.0"
35
+ "ci-info": "^4.4.0",
36
+ "jwt-decode": "^4.0.0",
37
+ "open": "^11.0.0",
38
+ "openid-client": "^6.8.2",
39
+ "posthog-node": "^5.24.17",
40
+ "tar": "^7.5.9",
41
+ "xdg-app-paths": "^8.3.0",
42
+ "zod": "^4.3.6",
43
+ "@alpic-ai/api": "0.0.0-dev.6fe75df"
32
44
  },
33
45
  "devDependencies": {
46
+ "@orpc/openapi": "^1.13.5",
47
+ "@orpc/server": "^1.13.5",
48
+ "@orpc/zod": "^1.13.5",
34
49
  "@total-typescript/tsconfig": "^1.0.4",
35
- "@types/node": "^25.1.0",
36
- "biome": "^0.3.3",
37
- "jsdom": "^27.4.0",
50
+ "@types/express": "^5.0.6",
51
+ "@types/node": "^25.3.0",
52
+ "express": "^5.2.1",
53
+ "jsdom": "^28.1.0",
54
+ "node-pty": "1.1.0",
55
+ "selfsigned": "^5.5.0",
38
56
  "shx": "^0.4.0",
39
57
  "ts-node": "^10.9.2",
40
58
  "typescript": "^5.9.3",
@@ -47,10 +65,14 @@
47
65
  "bin": "alpic",
48
66
  "commands": "./dist/commands",
49
67
  "dirname": "alpic",
50
- "topicSeparator": " "
68
+ "topicSeparator": " ",
69
+ "hooks": {
70
+ "finally": "./dist/lib/telemetry.js"
71
+ }
51
72
  },
52
73
  "scripts": {
53
- "build": "shx rm -rf dist && tsc",
74
+ "build": "shx rm -rf dist && tsc && pnpm run build:assets",
75
+ "build:assets": "shx cp -r src/lib/auth/oauth/server/assets dist/lib/auth/oauth/server/",
54
76
  "format": "biome check --write --error-on-warnings",
55
77
  "test": "pnpm run test:unit && pnpm run test:type && pnpm run test:format",
56
78
  "test:unit": "vitest run",