alpic 0.0.0-dev.bd14ef2 → 0.0.0-dev.bd56ce0

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 (111) hide show
  1. package/dist/__tests__/auth.e2e.test.d.ts +1 -0
  2. package/dist/__tests__/auth.e2e.test.js +129 -0
  3. package/dist/__tests__/auth.e2e.test.js.map +1 -0
  4. package/dist/__tests__/deploy.e2e.test.d.ts +1 -0
  5. package/dist/__tests__/deploy.e2e.test.js +220 -0
  6. package/dist/__tests__/deploy.e2e.test.js.map +1 -0
  7. package/dist/__tests__/fixtures/demo-project/index.d.ts +1 -0
  8. package/dist/__tests__/fixtures/demo-project/index.js +4 -0
  9. package/dist/__tests__/fixtures/demo-project/index.js.map +1 -0
  10. package/dist/__tests__/git.e2e.test.d.ts +1 -0
  11. package/dist/__tests__/git.e2e.test.js +225 -0
  12. package/dist/__tests__/git.e2e.test.js.map +1 -0
  13. package/dist/__tests__/mock-server.d.ts +22 -0
  14. package/dist/__tests__/mock-server.js +461 -0
  15. package/dist/__tests__/mock-server.js.map +1 -0
  16. package/dist/__tests__/utils.d.ts +61 -0
  17. package/dist/__tests__/utils.js +196 -0
  18. package/dist/__tests__/utils.js.map +1 -0
  19. package/dist/api.d.ts +4 -0
  20. package/dist/api.js +20 -0
  21. package/dist/api.js.map +1 -0
  22. package/dist/commands/deploy.d.ts +9 -0
  23. package/dist/commands/deploy.js +83 -0
  24. package/dist/commands/deploy.js.map +1 -0
  25. package/dist/commands/git/connect.d.ts +9 -0
  26. package/dist/commands/git/connect.js +58 -0
  27. package/dist/commands/git/connect.js.map +1 -0
  28. package/dist/commands/git/disconnect.d.ts +9 -0
  29. package/dist/commands/git/disconnect.js +50 -0
  30. package/dist/commands/git/disconnect.js.map +1 -0
  31. package/dist/commands/{hello.d.ts → git.d.ts} +1 -1
  32. package/dist/commands/git.js +17 -0
  33. package/dist/commands/git.js.map +1 -0
  34. package/dist/commands/login.d.ts +6 -0
  35. package/dist/commands/login.js +27 -0
  36. package/dist/commands/login.js.map +1 -0
  37. package/dist/commands/logout.d.ts +6 -0
  38. package/dist/commands/logout.js +20 -0
  39. package/dist/commands/logout.js.map +1 -0
  40. package/dist/commands/telemetry/disable.d.ts +5 -0
  41. package/dist/commands/telemetry/disable.js +14 -0
  42. package/dist/commands/telemetry/disable.js.map +1 -0
  43. package/dist/commands/telemetry/enable.d.ts +5 -0
  44. package/dist/commands/telemetry/enable.js +13 -0
  45. package/dist/commands/telemetry/enable.js.map +1 -0
  46. package/dist/commands/telemetry/status.d.ts +5 -0
  47. package/dist/commands/telemetry/status.js +19 -0
  48. package/dist/commands/telemetry/status.js.map +1 -0
  49. package/dist/commands/whoami.d.ts +6 -0
  50. package/dist/commands/whoami.js +25 -0
  51. package/dist/commands/whoami.js.map +1 -0
  52. package/dist/lib/alpic-command.d.ts +4 -0
  53. package/dist/lib/alpic-command.js +17 -0
  54. package/dist/lib/alpic-command.js.map +1 -0
  55. package/dist/lib/archive.d.ts +7 -0
  56. package/dist/lib/archive.js +55 -0
  57. package/dist/lib/archive.js.map +1 -0
  58. package/dist/lib/auth/auth.d.ts +2 -0
  59. package/dist/lib/auth/auth.js +26 -0
  60. package/dist/lib/auth/auth.js.map +1 -0
  61. package/dist/lib/auth/credentials.d.ts +12 -0
  62. package/dist/lib/auth/credentials.js +29 -0
  63. package/dist/lib/auth/credentials.js.map +1 -0
  64. package/dist/lib/auth/oauth/client.d.ts +9 -0
  65. package/dist/lib/auth/oauth/client.js +37 -0
  66. package/dist/lib/auth/oauth/client.js.map +1 -0
  67. package/dist/lib/auth/oauth/constants.d.ts +4 -0
  68. package/dist/lib/auth/oauth/constants.js +5 -0
  69. package/dist/lib/auth/oauth/constants.js.map +1 -0
  70. package/dist/lib/auth/oauth/prepare.d.ts +6 -0
  71. package/dist/lib/auth/oauth/prepare.js +29 -0
  72. package/dist/lib/auth/oauth/prepare.js.map +1 -0
  73. package/dist/lib/auth/oauth/server.d.ts +8 -0
  74. package/dist/lib/auth/oauth/server.js +107 -0
  75. package/dist/lib/auth/oauth/server.js.map +1 -0
  76. package/dist/lib/auth/oauth/token.d.ts +1 -0
  77. package/dist/lib/auth/oauth/token.js +36 -0
  78. package/dist/lib/auth/oauth/token.js.map +1 -0
  79. package/dist/lib/auth/whoami.d.ts +28 -0
  80. package/dist/lib/auth/whoami.js +34 -0
  81. package/dist/lib/auth/whoami.js.map +1 -0
  82. package/dist/lib/config.d.ts +11 -0
  83. package/dist/lib/config.js +31 -0
  84. package/dist/lib/config.js.map +1 -0
  85. package/dist/lib/deployment.d.ts +21 -0
  86. package/dist/lib/deployment.js +38 -0
  87. package/dist/lib/deployment.js.map +1 -0
  88. package/dist/lib/git.d.ts +14 -0
  89. package/dist/lib/git.js +105 -0
  90. package/dist/lib/git.js.map +1 -0
  91. package/dist/lib/global-config.d.ts +9 -0
  92. package/dist/lib/global-config.js +48 -0
  93. package/dist/lib/global-config.js.map +1 -0
  94. package/dist/lib/project.d.ts +67 -0
  95. package/dist/lib/project.js +285 -0
  96. package/dist/lib/project.js.map +1 -0
  97. package/dist/lib/telemetry.d.ts +7 -0
  98. package/dist/lib/telemetry.js +66 -0
  99. package/dist/lib/telemetry.js.map +1 -0
  100. package/dist/lib/upload.d.ts +1 -0
  101. package/dist/lib/upload.js +14 -0
  102. package/dist/lib/upload.js.map +1 -0
  103. package/dist/posthog.d.ts +3 -0
  104. package/dist/posthog.js +10 -0
  105. package/dist/posthog.js.map +1 -0
  106. package/dist/types.d.ts +7 -0
  107. package/dist/types.js +2 -0
  108. package/dist/types.js.map +1 -0
  109. package/package.json +28 -5
  110. package/dist/commands/hello.js +0 -10
  111. package/dist/commands/hello.js.map +0 -1
@@ -0,0 +1,7 @@
1
+ import type { Hook } from "@oclif/core";
2
+ export declare function isEnabled(): boolean;
3
+ export declare function isDebugMode(): boolean;
4
+ export declare function setEnabled(enabled: boolean): void;
5
+ export declare function getMachineId(): string;
6
+ declare const hook: Hook<"finally">;
7
+ export default hook;
@@ -0,0 +1,66 @@
1
+ import ci from "ci-info";
2
+ import crypto from "node:crypto";
3
+ import posthog from "../posthog.js";
4
+ import { getGlobalConfig, saveGlobalConfig } from "./global-config.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 = getGlobalConfig();
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 = getGlobalConfig();
26
+ config.telemetry.enabled = enabled;
27
+ saveGlobalConfig(config);
28
+ }
29
+ export function getMachineId() {
30
+ if (ci.isCI) {
31
+ return ci.name ?? "unknown-ci";
32
+ }
33
+ return getGlobalConfig().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 (e) {
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.bd14ef2",
3
+ "version": "0.0.0-dev.bd56ce0",
4
4
  "description": "The command-line interface for Alpic",
5
5
  "homepage": "https://alpic.ai",
6
6
  "preferGlobal": true,
@@ -24,12 +24,32 @@
24
24
  ],
25
25
  "author": "Alpic",
26
26
  "license": "ISC",
27
- "devDependencies": {
27
+ "dependencies": {
28
+ "@clack/prompts": "^1.0.0",
28
29
  "@oclif/core": "^4.8.0",
30
+ "@orpc/client": "^1.13.4",
31
+ "@orpc/contract": "^1.13.4",
32
+ "@orpc/openapi-client": "^1.13.4",
33
+ "chalk": "^5.6.2",
34
+ "ci-info": "^4.4.0",
35
+ "jwt-decode": "^4.0.0",
36
+ "open": "^11.0.0",
37
+ "posthog-node": "^5.24.11",
38
+ "tar": "^7.4.0",
39
+ "xdg-app-paths": "^8.3.0",
40
+ "@alpic-ai/api": "0.0.0-dev.bd56ce0"
41
+ },
42
+ "devDependencies": {
43
+ "@orpc/openapi": "^1.13.4",
44
+ "@orpc/server": "^1.13.4",
45
+ "@orpc/zod": "^1.13.4",
29
46
  "@total-typescript/tsconfig": "^1.0.4",
30
- "@types/node": "^25.1.0",
47
+ "@types/express": "^5.0.6",
48
+ "@types/node": "^25.2.2",
31
49
  "biome": "^0.3.3",
32
- "jsdom": "^27.4.0",
50
+ "express": "^5.2.1",
51
+ "jsdom": "^28.0.0",
52
+ "node-pty": "1.0.0",
33
53
  "shx": "^0.4.0",
34
54
  "ts-node": "^10.9.2",
35
55
  "typescript": "^5.9.3",
@@ -42,7 +62,10 @@
42
62
  "bin": "alpic",
43
63
  "commands": "./dist/commands",
44
64
  "dirname": "alpic",
45
- "topicSeparator": " "
65
+ "topicSeparator": " ",
66
+ "hooks": {
67
+ "finally": "./dist/lib/telemetry.js"
68
+ }
46
69
  },
47
70
  "scripts": {
48
71
  "build": "shx rm -rf dist && tsc",
@@ -1,10 +0,0 @@
1
- import { Command } from "@oclif/core";
2
- export class Hello extends Command {
3
- static description = "A simple hello world command for testing";
4
- static examples = ["<%= config.bin %> hello"];
5
- async run() {
6
- await this.parse(Hello);
7
- this.log("Hello, world! 👋");
8
- }
9
- }
10
- //# sourceMappingURL=hello.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hello.js","sourceRoot":"","sources":["../../src/commands/hello.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,MAAM,OAAO,KAAM,SAAQ,OAAO;IAChC,MAAM,CAAU,WAAW,GAAG,0CAA0C,CAAC;IAEzE,MAAM,CAAU,QAAQ,GAAG,CAAC,yBAAyB,CAAC,CAAC;IAEvD,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAC/B,CAAC"}