alpic 0.0.0-dev.fd65e5d → 0.0.0-dev.fd906e9
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.
- package/dist/__tests__/auth.e2e.test.d.ts +1 -0
- package/dist/__tests__/auth.e2e.test.js +158 -0
- package/dist/__tests__/auth.e2e.test.js.map +1 -0
- package/dist/__tests__/deploy-flags.e2e.test.d.ts +1 -0
- package/dist/__tests__/deploy-flags.e2e.test.js +111 -0
- package/dist/__tests__/deploy-flags.e2e.test.js.map +1 -0
- package/dist/__tests__/deploy.e2e.test.d.ts +1 -0
- package/dist/__tests__/deploy.e2e.test.js +168 -0
- package/dist/__tests__/deploy.e2e.test.js.map +1 -0
- package/dist/__tests__/environment-variable/environment-variable-add.e2e.test.d.ts +1 -0
- package/dist/__tests__/environment-variable/environment-variable-add.e2e.test.js +250 -0
- package/dist/__tests__/environment-variable/environment-variable-add.e2e.test.js.map +1 -0
- package/dist/__tests__/environment-variable/environment-variable-list.e2e.test.d.ts +1 -0
- package/dist/__tests__/environment-variable/environment-variable-list.e2e.test.js +122 -0
- package/dist/__tests__/environment-variable/environment-variable-list.e2e.test.js.map +1 -0
- package/dist/__tests__/environment-variable/environment-variable-remove.e2e.test.d.ts +1 -0
- package/dist/__tests__/environment-variable/environment-variable-remove.e2e.test.js +139 -0
- package/dist/__tests__/environment-variable/environment-variable-remove.e2e.test.js.map +1 -0
- package/dist/__tests__/environment-variable/environment-variable-update.e2e.test.d.ts +1 -0
- package/dist/__tests__/environment-variable/environment-variable-update.e2e.test.js +319 -0
- package/dist/__tests__/environment-variable/environment-variable-update.e2e.test.js.map +1 -0
- package/dist/__tests__/environment-variable/environment-variable-validation.test.d.ts +1 -0
- package/dist/__tests__/environment-variable/environment-variable-validation.test.js +20 -0
- package/dist/__tests__/environment-variable/environment-variable-validation.test.js.map +1 -0
- package/dist/__tests__/fixtures/demo-project/index.d.ts +1 -0
- package/dist/__tests__/fixtures/demo-project/index.js +4 -0
- package/dist/__tests__/fixtures/demo-project/index.js.map +1 -0
- package/dist/__tests__/git-flags.e2e.test.d.ts +1 -0
- package/dist/__tests__/git-flags.e2e.test.js +124 -0
- package/dist/__tests__/git-flags.e2e.test.js.map +1 -0
- package/dist/__tests__/git.e2e.test.d.ts +1 -0
- package/dist/__tests__/git.e2e.test.js +221 -0
- package/dist/__tests__/git.e2e.test.js.map +1 -0
- package/dist/__tests__/logs.e2e.test.d.ts +1 -0
- package/dist/__tests__/logs.e2e.test.js +197 -0
- package/dist/__tests__/logs.e2e.test.js.map +1 -0
- package/dist/__tests__/mock-server.d.ts +26 -0
- package/dist/__tests__/mock-server.js +616 -0
- package/dist/__tests__/mock-server.js.map +1 -0
- package/dist/__tests__/utils.d.ts +67 -0
- package/dist/__tests__/utils.js +255 -0
- package/dist/__tests__/utils.js.map +1 -0
- package/dist/api.d.ts +3 -9
- package/dist/api.js +14 -32
- package/dist/api.js.map +1 -1
- package/dist/commands/deploy.d.ts +7 -4
- package/dist/commands/deploy.js +73 -32
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/environment-variable/add.d.ts +14 -0
- package/dist/commands/environment-variable/add.js +46 -0
- package/dist/commands/environment-variable/add.js.map +1 -0
- package/dist/commands/environment-variable/list.d.ts +9 -0
- package/dist/commands/environment-variable/list.js +44 -0
- package/dist/commands/environment-variable/list.js.map +1 -0
- package/dist/commands/environment-variable/remove.d.ts +11 -0
- package/dist/commands/environment-variable/remove.js +32 -0
- package/dist/commands/environment-variable/remove.js.map +1 -0
- package/dist/commands/environment-variable/update.d.ts +13 -0
- package/dist/commands/environment-variable/update.js +40 -0
- package/dist/commands/environment-variable/update.js.map +1 -0
- package/dist/commands/git/connect.d.ts +10 -0
- package/dist/commands/git/connect.js +58 -0
- package/dist/commands/git/connect.js.map +1 -0
- package/dist/commands/git/disconnect.d.ts +9 -0
- package/dist/commands/git/disconnect.js +41 -0
- package/dist/commands/git/disconnect.js.map +1 -0
- package/dist/commands/git.d.ts +6 -0
- package/dist/commands/git.js +17 -0
- package/dist/commands/git.js.map +1 -0
- package/dist/commands/login.d.ts +6 -0
- package/dist/commands/login.js +34 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.d.ts +6 -0
- package/dist/commands/logout.js +20 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/logs.d.ts +16 -0
- package/dist/commands/logs.js +96 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/telemetry/disable.d.ts +5 -0
- package/dist/commands/telemetry/disable.js +14 -0
- package/dist/commands/telemetry/disable.js.map +1 -0
- package/dist/commands/telemetry/enable.d.ts +5 -0
- package/dist/commands/telemetry/enable.js +13 -0
- package/dist/commands/telemetry/enable.js.map +1 -0
- package/dist/commands/telemetry/status.d.ts +5 -0
- package/dist/commands/telemetry/status.js +19 -0
- package/dist/commands/telemetry/status.js.map +1 -0
- package/dist/commands/whoami.d.ts +6 -0
- package/dist/commands/whoami.js +13 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/env.d.ts +4 -0
- package/dist/env.js +10 -0
- package/dist/env.js.map +1 -0
- package/dist/lib/alpic-command.d.ts +6 -0
- package/dist/lib/alpic-command.js +27 -0
- package/dist/lib/alpic-command.js.map +1 -0
- package/dist/lib/archive.d.ts +3 -3
- package/dist/lib/archive.js +11 -15
- package/dist/lib/archive.js.map +1 -1
- package/dist/lib/auth/auth.d.ts +2 -0
- package/dist/lib/auth/auth.js +21 -0
- package/dist/lib/auth/auth.js.map +1 -0
- package/dist/lib/auth/oauth/client.d.ts +28 -0
- package/dist/lib/auth/oauth/client.js +110 -0
- package/dist/lib/auth/oauth/client.js.map +1 -0
- package/dist/lib/auth/oauth/constants.d.ts +2 -0
- package/dist/lib/auth/oauth/constants.js +3 -0
- package/dist/lib/auth/oauth/constants.js.map +1 -0
- package/dist/lib/auth/oauth/server/assets/alpic-mountain.png +0 -0
- package/dist/lib/auth/oauth/server/assets/authorize.html +195 -0
- package/dist/lib/auth/oauth/server/assets/callback.html +88 -0
- package/dist/lib/auth/oauth/server/index.d.ts +8 -0
- package/dist/lib/auth/oauth/server/index.js +102 -0
- package/dist/lib/auth/oauth/server/index.js.map +1 -0
- package/dist/lib/auth/whoami.d.ts +1 -0
- package/dist/lib/auth/whoami.js +41 -0
- package/dist/lib/auth/whoami.js.map +1 -0
- package/dist/lib/base-workflow.d.ts +10 -0
- package/dist/lib/base-workflow.js +22 -0
- package/dist/lib/base-workflow.js.map +1 -0
- package/dist/lib/config.d.ts +2 -2
- package/dist/lib/config.js +14 -8
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/deployment.d.ts +20 -0
- package/dist/lib/deployment.js +42 -0
- package/dist/lib/deployment.js.map +1 -0
- package/dist/lib/environment-variable.d.ts +41 -0
- package/dist/lib/environment-variable.js +304 -0
- package/dist/lib/environment-variable.js.map +1 -0
- package/dist/lib/git.d.ts +22 -0
- package/dist/lib/git.js +131 -0
- package/dist/lib/git.js.map +1 -0
- package/dist/lib/global-store.d.ts +28 -0
- package/dist/lib/global-store.js +76 -0
- package/dist/lib/global-store.js.map +1 -0
- package/dist/lib/logs.d.ts +19 -0
- package/dist/lib/logs.js +83 -0
- package/dist/lib/logs.js.map +1 -0
- package/dist/lib/project.d.ts +71 -10
- package/dist/lib/project.js +274 -124
- package/dist/lib/project.js.map +1 -1
- package/dist/lib/table.d.ts +8 -0
- package/dist/lib/table.js +27 -0
- package/dist/lib/table.js.map +1 -0
- package/dist/lib/telemetry.d.ts +7 -0
- package/dist/lib/telemetry.js +66 -0
- package/dist/lib/telemetry.js.map +1 -0
- package/dist/lib/upload.d.ts +0 -1
- package/dist/lib/upload.js +0 -6
- package/dist/lib/upload.js.map +1 -1
- package/dist/lib/utils.d.ts +1 -0
- package/dist/lib/utils.js +17 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/lib/utils.test.d.ts +1 -0
- package/dist/lib/utils.test.js +14 -0
- package/dist/lib/utils.test.js.map +1 -0
- package/dist/posthog.d.ts +3 -0
- package/dist/posthog.js +10 -0
- package/dist/posthog.js.map +1 -0
- package/dist/types.d.ts +0 -34
- package/package.json +35 -11
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import { stripVTControlCharacters } from "node:util";
|
|
3
|
+
const visibleLength = (value) => stripVTControlCharacters(value).length;
|
|
4
|
+
const COLUMN_GAP = 4;
|
|
5
|
+
export const formatTable = (rows, columns) => {
|
|
6
|
+
const gap = " ".repeat(COLUMN_GAP);
|
|
7
|
+
const widths = columns.map((column) => {
|
|
8
|
+
const formattedLengths = rows.map((row) => {
|
|
9
|
+
const rawValue = String(row[column.key] ?? "");
|
|
10
|
+
const formattedValue = column.format ? column.format(rawValue, row) : rawValue;
|
|
11
|
+
return visibleLength(formattedValue);
|
|
12
|
+
});
|
|
13
|
+
return Math.max(column.minWidth ?? 0, column.header.length, ...formattedLengths);
|
|
14
|
+
});
|
|
15
|
+
const header = columns.map((column, index) => chalk.gray(column.header.padEnd(widths[index] ?? 0))).join(gap);
|
|
16
|
+
const body = rows.map((row) => columns
|
|
17
|
+
.map((column, index) => {
|
|
18
|
+
const rawValue = String(row[column.key] ?? "");
|
|
19
|
+
const formattedValue = column.format ? column.format(rawValue, row) : rawValue;
|
|
20
|
+
const padSize = Math.max(0, (widths[index] ?? 0) - visibleLength(formattedValue));
|
|
21
|
+
return `${formattedValue}${" ".repeat(padSize)}`;
|
|
22
|
+
})
|
|
23
|
+
.join(gap));
|
|
24
|
+
const content = [header, ...body].join("\n");
|
|
25
|
+
return `\n${content}\n`;
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/lib/table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AASrD,MAAM,aAAa,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AAExF,MAAM,UAAU,GAAG,CAAC,CAAC;AAErB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAsC,IAAW,EAAE,OAA2B,EAAE,EAAE;IAC3G,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACpC,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACxC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/C,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC/E,OAAO,aAAa,CAAC,cAAc,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,gBAAgB,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE9G,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAC5B,OAAO;SACJ,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QACrB,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/C,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC/E,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC;QAClF,OAAO,GAAG,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;IACnD,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CACb,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE7C,OAAO,KAAK,OAAO,IAAI,CAAC;AAC1B,CAAC,CAAC"}
|
|
@@ -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 { 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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"}
|
package/dist/lib/upload.d.ts
CHANGED
package/dist/lib/upload.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { readFileSync, rmSync } from "node:fs";
|
|
2
1
|
export async function uploadToPresignedUrl(uploadUrl, buffer) {
|
|
3
2
|
const res = await fetch(uploadUrl, {
|
|
4
3
|
method: "PUT",
|
|
@@ -12,9 +11,4 @@ export async function uploadToPresignedUrl(uploadUrl, buffer) {
|
|
|
12
11
|
throw new Error(`Upload failed: ${res.status} ${res.statusText}`);
|
|
13
12
|
}
|
|
14
13
|
}
|
|
15
|
-
export function readArchiveAndCleanup(archivePath, tmpDir) {
|
|
16
|
-
const buffer = readFileSync(archivePath);
|
|
17
|
-
rmSync(tmpDir, { recursive: true });
|
|
18
|
-
return buffer;
|
|
19
|
-
}
|
|
20
14
|
//# sourceMappingURL=upload.js.map
|
package/dist/lib/upload.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../src/lib/upload.ts"],"names":[],"mappings":"AAAA,
|
|
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 @@
|
|
|
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/dist/posthog.js
ADDED
|
@@ -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,26 +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
|
-
};
|
|
24
1
|
export type ProjectConfig = {
|
|
25
2
|
projectId: string;
|
|
26
3
|
teamId: string;
|
|
@@ -28,14 +5,3 @@ export type ProjectConfig = {
|
|
|
28
5
|
environmentId?: string;
|
|
29
6
|
environmentName?: string;
|
|
30
7
|
};
|
|
31
|
-
export type ApiDeployment = {
|
|
32
|
-
id: string;
|
|
33
|
-
status: string;
|
|
34
|
-
sourceRef: string;
|
|
35
|
-
sourceCommitId?: string;
|
|
36
|
-
sourceCommitMessage?: string;
|
|
37
|
-
authorUsername: string | null;
|
|
38
|
-
authorAvatarUrl: string | null;
|
|
39
|
-
startedAt: string | null;
|
|
40
|
-
completedAt: string | null;
|
|
41
|
-
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "alpic",
|
|
3
|
-
"version": "0.0.0-dev.
|
|
3
|
+
"version": "0.0.0-dev.fd906e9",
|
|
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,35 @@
|
|
|
25
25
|
"author": "Alpic",
|
|
26
26
|
"license": "ISC",
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@clack/prompts": "^
|
|
28
|
+
"@clack/prompts": "^1.1.0",
|
|
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",
|
|
29
34
|
"chalk": "^5.6.2",
|
|
30
|
-
"
|
|
35
|
+
"ci-info": "^4.4.0",
|
|
36
|
+
"envfile": "^7.1.0",
|
|
37
|
+
"jwt-decode": "^4.0.0",
|
|
38
|
+
"open": "^11.0.0",
|
|
39
|
+
"openid-client": "^6.8.2",
|
|
40
|
+
"posthog-node": "^5.28.0",
|
|
41
|
+
"tar": "^7.5.11",
|
|
42
|
+
"env-paths": "^4.0.0",
|
|
43
|
+
"zod": "^4.3.6",
|
|
44
|
+
"@alpic-ai/api": "0.0.0-dev.fd906e9"
|
|
31
45
|
},
|
|
32
46
|
"devDependencies": {
|
|
33
|
-
"@
|
|
47
|
+
"@orpc/openapi": "^1.13.6",
|
|
48
|
+
"@orpc/server": "^1.13.6",
|
|
49
|
+
"@orpc/zod": "^1.13.6",
|
|
34
50
|
"@total-typescript/tsconfig": "^1.0.4",
|
|
35
|
-
"@types/
|
|
36
|
-
"
|
|
37
|
-
"
|
|
51
|
+
"@types/express": "^5.0.6",
|
|
52
|
+
"@types/node": "^25.4.0",
|
|
53
|
+
"express": "^5.2.1",
|
|
54
|
+
"jsdom": "^28.1.0",
|
|
55
|
+
"node-pty": "1.1.0",
|
|
56
|
+
"selfsigned": "^5.5.0",
|
|
38
57
|
"shx": "^0.4.0",
|
|
39
58
|
"ts-node": "^10.9.2",
|
|
40
59
|
"typescript": "^5.9.3",
|
|
@@ -47,14 +66,19 @@
|
|
|
47
66
|
"bin": "alpic",
|
|
48
67
|
"commands": "./dist/commands",
|
|
49
68
|
"dirname": "alpic",
|
|
50
|
-
"topicSeparator": " "
|
|
69
|
+
"topicSeparator": " ",
|
|
70
|
+
"hooks": {
|
|
71
|
+
"finally": "./dist/lib/telemetry.js"
|
|
72
|
+
}
|
|
51
73
|
},
|
|
52
74
|
"scripts": {
|
|
53
|
-
"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/",
|
|
54
77
|
"format": "biome check --write --error-on-warnings",
|
|
55
78
|
"test": "pnpm run test:unit && pnpm run test:type && pnpm run test:format",
|
|
56
79
|
"test:unit": "vitest run",
|
|
57
80
|
"test:format": "prettier --check .",
|
|
58
|
-
"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\""
|
|
59
83
|
}
|
|
60
84
|
}
|