alpic 0.0.0-dev.f64e113 → 0.0.0-dev.f6bb60e

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 (118) 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 +101 -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-flags.e2e.test.d.ts +1 -0
  14. package/dist/__tests__/git-flags.e2e.test.js +124 -0
  15. package/dist/__tests__/git-flags.e2e.test.js.map +1 -0
  16. package/dist/__tests__/git.e2e.test.d.ts +1 -0
  17. package/dist/__tests__/git.e2e.test.js +221 -0
  18. package/dist/__tests__/git.e2e.test.js.map +1 -0
  19. package/dist/__tests__/mock-server.d.ts +22 -0
  20. package/dist/__tests__/mock-server.js +493 -0
  21. package/dist/__tests__/mock-server.js.map +1 -0
  22. package/dist/__tests__/utils.d.ts +67 -0
  23. package/dist/__tests__/utils.js +243 -0
  24. package/dist/__tests__/utils.js.map +1 -0
  25. package/dist/api.d.ts +3 -0
  26. package/dist/api.js +15 -0
  27. package/dist/api.js.map +1 -0
  28. package/dist/commands/deploy.d.ts +8 -2
  29. package/dist/commands/deploy.js +83 -71
  30. package/dist/commands/deploy.js.map +1 -1
  31. package/dist/commands/git/connect.d.ts +10 -0
  32. package/dist/commands/git/connect.js +61 -0
  33. package/dist/commands/git/connect.js.map +1 -0
  34. package/dist/commands/git/disconnect.d.ts +9 -0
  35. package/dist/commands/git/disconnect.js +45 -0
  36. package/dist/commands/git/disconnect.js.map +1 -0
  37. package/dist/commands/git.d.ts +6 -0
  38. package/dist/commands/git.js +17 -0
  39. package/dist/commands/git.js.map +1 -0
  40. package/dist/commands/login.d.ts +6 -0
  41. package/dist/commands/login.js +32 -0
  42. package/dist/commands/login.js.map +1 -0
  43. package/dist/commands/logout.d.ts +6 -0
  44. package/dist/commands/logout.js +20 -0
  45. package/dist/commands/logout.js.map +1 -0
  46. package/dist/commands/telemetry/disable.d.ts +5 -0
  47. package/dist/commands/telemetry/disable.js +14 -0
  48. package/dist/commands/telemetry/disable.js.map +1 -0
  49. package/dist/commands/telemetry/enable.d.ts +5 -0
  50. package/dist/commands/telemetry/enable.js +13 -0
  51. package/dist/commands/telemetry/enable.js.map +1 -0
  52. package/dist/commands/telemetry/status.d.ts +5 -0
  53. package/dist/commands/telemetry/status.js +19 -0
  54. package/dist/commands/telemetry/status.js.map +1 -0
  55. package/dist/commands/whoami.d.ts +6 -0
  56. package/dist/commands/whoami.js +13 -0
  57. package/dist/commands/whoami.js.map +1 -0
  58. package/dist/env.d.ts +4 -0
  59. package/dist/env.js +10 -0
  60. package/dist/env.js.map +1 -0
  61. package/dist/lib/alpic-command.d.ts +6 -0
  62. package/dist/lib/alpic-command.js +27 -0
  63. package/dist/lib/alpic-command.js.map +1 -0
  64. package/dist/lib/archive.d.ts +7 -0
  65. package/dist/lib/archive.js +51 -0
  66. package/dist/lib/archive.js.map +1 -0
  67. package/dist/lib/auth/auth.d.ts +2 -0
  68. package/dist/lib/auth/auth.js +21 -0
  69. package/dist/lib/auth/auth.js.map +1 -0
  70. package/dist/lib/auth/oauth/client.d.ts +28 -0
  71. package/dist/lib/auth/oauth/client.js +110 -0
  72. package/dist/lib/auth/oauth/client.js.map +1 -0
  73. package/dist/lib/auth/oauth/constants.d.ts +2 -0
  74. package/dist/lib/auth/oauth/constants.js +3 -0
  75. package/dist/lib/auth/oauth/constants.js.map +1 -0
  76. package/dist/lib/auth/oauth/server/assets/alpic-mountain.png +0 -0
  77. package/dist/lib/auth/oauth/server/assets/authorize.html +195 -0
  78. package/dist/lib/auth/oauth/server/assets/callback.html +88 -0
  79. package/dist/lib/auth/oauth/server/index.d.ts +8 -0
  80. package/dist/lib/auth/oauth/server/index.js +102 -0
  81. package/dist/lib/auth/oauth/server/index.js.map +1 -0
  82. package/dist/lib/auth/whoami.d.ts +1 -0
  83. package/dist/lib/auth/whoami.js +41 -0
  84. package/dist/lib/auth/whoami.js.map +1 -0
  85. package/dist/lib/base-workflow.d.ts +10 -0
  86. package/dist/lib/base-workflow.js +22 -0
  87. package/dist/lib/base-workflow.js.map +1 -0
  88. package/dist/lib/config.d.ts +11 -0
  89. package/dist/lib/config.js +31 -0
  90. package/dist/lib/config.js.map +1 -0
  91. package/dist/lib/deployment.d.ts +20 -0
  92. package/dist/lib/deployment.js +42 -0
  93. package/dist/lib/deployment.js.map +1 -0
  94. package/dist/lib/git.d.ts +22 -0
  95. package/dist/lib/git.js +133 -0
  96. package/dist/lib/git.js.map +1 -0
  97. package/dist/lib/global-store.d.ts +28 -0
  98. package/dist/lib/global-store.js +76 -0
  99. package/dist/lib/global-store.js.map +1 -0
  100. package/dist/lib/project.d.ts +71 -0
  101. package/dist/lib/project.js +297 -0
  102. package/dist/lib/project.js.map +1 -0
  103. package/dist/lib/telemetry.d.ts +7 -0
  104. package/dist/lib/telemetry.js +66 -0
  105. package/dist/lib/telemetry.js.map +1 -0
  106. package/dist/lib/upload.d.ts +1 -0
  107. package/dist/lib/upload.js +14 -0
  108. package/dist/lib/upload.js.map +1 -0
  109. package/dist/posthog.d.ts +3 -0
  110. package/dist/posthog.js +10 -0
  111. package/dist/posthog.js.map +1 -0
  112. package/dist/types.d.ts +7 -0
  113. package/dist/types.js +2 -0
  114. package/dist/types.js.map +1 -0
  115. package/package.json +35 -11
  116. package/dist/types/api.d.ts +0 -30
  117. package/dist/types/api.js +0 -2
  118. package/dist/types/api.js.map +0 -1
@@ -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 @@
1
+ export declare function uploadToPresignedUrl(uploadUrl: string, buffer: Buffer): Promise<void>;
@@ -0,0 +1,14 @@
1
+ export async function uploadToPresignedUrl(uploadUrl, buffer) {
2
+ const res = await fetch(uploadUrl, {
3
+ method: "PUT",
4
+ headers: {
5
+ "Content-Type": "application/gzip",
6
+ "Content-Length": String(buffer.byteLength),
7
+ },
8
+ body: new Uint8Array(buffer),
9
+ });
10
+ if (!res.ok) {
11
+ throw new Error(`Upload failed: ${res.status} ${res.statusText}`);
12
+ }
13
+ }
14
+ //# sourceMappingURL=upload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload.js","sourceRoot":"","sources":["../../src/lib/upload.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,SAAiB,EAAE,MAAc;IAC1E,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE;QACjC,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;SAC5C;QACD,IAAI,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC;KAC7B,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IACpE,CAAC;AACH,CAAC"}
@@ -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"}
@@ -0,0 +1,7 @@
1
+ export type ProjectConfig = {
2
+ projectId: string;
3
+ teamId: string;
4
+ projectName: string;
5
+ environmentId?: string;
6
+ environmentName?: string;
7
+ };
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "alpic",
3
- "version": "0.0.0-dev.f64e113",
3
+ "version": "0.0.0-dev.f6bb60e",
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,15 +25,34 @@
25
25
  "author": "Alpic",
26
26
  "license": "ISC",
27
27
  "dependencies": {
28
- "@clack/prompts": "^0.8.2",
29
- "tar": "^7.4.0"
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",
34
+ "chalk": "^5.6.2",
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.26.2",
40
+ "tar": "^7.5.9",
41
+ "env-paths": "^4.0.0",
42
+ "zod": "^4.3.6",
43
+ "@alpic-ai/api": "0.0.0-dev.f6bb60e"
30
44
  },
31
45
  "devDependencies": {
32
- "@oclif/core": "^4.8.0",
46
+ "@orpc/openapi": "^1.13.6",
47
+ "@orpc/server": "^1.13.6",
48
+ "@orpc/zod": "^1.13.6",
33
49
  "@total-typescript/tsconfig": "^1.0.4",
34
- "@types/node": "^25.0.10",
35
- "biome": "^0.3.3",
36
- "jsdom": "^27.4.0",
50
+ "@types/express": "^5.0.6",
51
+ "@types/node": "^25.3.3",
52
+ "express": "^5.2.1",
53
+ "jsdom": "^28.1.0",
54
+ "node-pty": "1.1.0",
55
+ "selfsigned": "^5.5.0",
37
56
  "shx": "^0.4.0",
38
57
  "ts-node": "^10.9.2",
39
58
  "typescript": "^5.9.3",
@@ -46,14 +65,19 @@
46
65
  "bin": "alpic",
47
66
  "commands": "./dist/commands",
48
67
  "dirname": "alpic",
49
- "topicSeparator": " "
68
+ "topicSeparator": " ",
69
+ "hooks": {
70
+ "finally": "./dist/lib/telemetry.js"
71
+ }
50
72
  },
51
73
  "scripts": {
52
- "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/",
53
76
  "format": "biome check --write --error-on-warnings",
54
77
  "test": "pnpm run test:unit && pnpm run test:type && pnpm run test:format",
55
78
  "test:unit": "vitest run",
56
79
  "test:format": "prettier --check .",
57
- "test:type": "tsc --noEmit"
80
+ "test:type": "tsc --noEmit",
81
+ "update:docs": "claude --add-dir ../../docs --permission-mode acceptEdits -p \"/update-cli-docs\" 2>&1 && prettier --write \"../../docs/cli/**/*.mdx\""
58
82
  }
59
83
  }
@@ -1,30 +0,0 @@
1
- export interface LatestDeployment {
2
- id: string;
3
- status: "ongoing" | "deployed" | "failed" | "canceled";
4
- sourceCommitId: string;
5
- sourceCommitMessage: string;
6
- completedAt: Date | null;
7
- }
8
- export interface Environment {
9
- id: string;
10
- name: string;
11
- sourceBranch: string;
12
- mcpServerUrl: string;
13
- createdAt: Date;
14
- projectId: string;
15
- latestDeployment: LatestDeployment | null;
16
- }
17
- export interface Project {
18
- id: string;
19
- name: string;
20
- sourceRepository: string;
21
- runtime: "python3.13" | "node22" | "node24";
22
- rootDirectory: string | null;
23
- buildCommand: string | null;
24
- buildOutputDir: string | null;
25
- installCommand: string | null;
26
- startCommand: string | null;
27
- productionEnvironment: Environment | null;
28
- environments: Environment[];
29
- createdAt: Date;
30
- }
package/dist/types/api.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=api.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":""}