alpic 1.144.0 → 1.145.0
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/commands/deploy.js +66 -52
- package/dist/commands/deploy.js.map +1 -1
- package/dist/lib/deployment.d.ts +0 -21
- package/dist/lib/deployment.js +9 -58
- package/dist/lib/deployment.js.map +1 -1
- package/dist/lib/whoami.js +4 -34
- package/dist/lib/whoami.js.map +1 -1
- package/package.json +7 -8
- package/dist/lib/archive.d.ts +0 -7
- package/dist/lib/archive.js +0 -57
- package/dist/lib/archive.js.map +0 -1
- package/dist/lib/upload.d.ts +0 -1
- package/dist/lib/upload.js +0 -13
- package/dist/lib/upload.js.map +0 -1
package/dist/commands/deploy.js
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
import { readFileSync, rmSync } from "node:fs";
|
|
2
1
|
import * as p from "@clack/prompts";
|
|
3
2
|
import { Flags } from "@oclif/core";
|
|
4
3
|
import chalk from "chalk";
|
|
5
|
-
import { api } from "../api.js";
|
|
6
4
|
import { AlpicCommand } from "../lib/alpic-command.js";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
5
|
+
import { alpic } from "../lib/alpic-sdk.js";
|
|
6
|
+
import { formatElapsed } from "../lib/deployment.js";
|
|
9
7
|
import { LinkWorkflow, RUNTIMES } from "../lib/link.js";
|
|
10
|
-
import { uploadToPresignedUrl } from "../lib/upload.js";
|
|
11
8
|
export class Deploy extends AlpicCommand {
|
|
12
9
|
static description = "Deploy a project to Alpic";
|
|
13
10
|
static examples = [
|
|
@@ -65,54 +62,48 @@ export class Deploy extends AlpicCommand {
|
|
|
65
62
|
throw new Error("Deploy cancelled");
|
|
66
63
|
}
|
|
67
64
|
const spinner = this.spinner();
|
|
68
|
-
let
|
|
65
|
+
let elapsedInterval;
|
|
66
|
+
let deployingStarted = false;
|
|
67
|
+
let result;
|
|
69
68
|
try {
|
|
70
|
-
|
|
71
|
-
const files = getFilesToPack();
|
|
72
|
-
spinner.stop(`Collected ${files.length} file${files.length === 1 ? "" : "s"}`);
|
|
73
|
-
const result = await createTarArchive(files);
|
|
74
|
-
tmpDir = result.tmpDir;
|
|
75
|
-
const archivePath = result.archivePath;
|
|
76
|
-
const { uploadUrl, token } = await api.deployments.uploadArtifact.v1({ teamId: projectConfig.teamId });
|
|
77
|
-
spinner.start("Uploading source...");
|
|
78
|
-
const buffer = readFileSync(archivePath);
|
|
79
|
-
await uploadToPresignedUrl(uploadUrl, buffer);
|
|
80
|
-
spinner.stop("Upload complete");
|
|
81
|
-
spinner.start("Triggering deployment...");
|
|
82
|
-
const deployStartedAt = Date.now();
|
|
83
|
-
const initialDeployment = await api.environments.deploy.v1({
|
|
69
|
+
result = await alpic.deployments.deploy({
|
|
84
70
|
environmentId: projectConfig.environmentId,
|
|
85
|
-
|
|
71
|
+
teamId: projectConfig.teamId,
|
|
72
|
+
onProgress: (event) => {
|
|
73
|
+
switch (event.type) {
|
|
74
|
+
case "collecting":
|
|
75
|
+
spinner.start("Collecting source files...");
|
|
76
|
+
break;
|
|
77
|
+
case "collected":
|
|
78
|
+
spinner.stop(`Collected ${event.fileCount} file${event.fileCount === 1 ? "" : "s"}`);
|
|
79
|
+
break;
|
|
80
|
+
case "uploading":
|
|
81
|
+
spinner.start("Uploading source...");
|
|
82
|
+
break;
|
|
83
|
+
case "triggering":
|
|
84
|
+
spinner.stop("Upload complete");
|
|
85
|
+
spinner.start("Triggering deployment...");
|
|
86
|
+
break;
|
|
87
|
+
case "deploying":
|
|
88
|
+
if (deployingStarted) {
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
deployingStarted = true;
|
|
92
|
+
spinner.stop("Deployment started");
|
|
93
|
+
if (event.deploymentPageUrl) {
|
|
94
|
+
p.note(`🔗 ${event.deploymentPageUrl}`, "View deployment details:", { format: (line) => line });
|
|
95
|
+
}
|
|
96
|
+
spinner.start("Deployment in progress");
|
|
97
|
+
{
|
|
98
|
+
const startedAt = Date.now() - event.elapsedMs;
|
|
99
|
+
elapsedInterval = setInterval(() => {
|
|
100
|
+
spinner.message(`Deployment in progress — ${formatElapsed(Date.now() - startedAt)}`);
|
|
101
|
+
}, 1000);
|
|
102
|
+
}
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
},
|
|
86
106
|
});
|
|
87
|
-
spinner.stop("Deployment started");
|
|
88
|
-
const { deployment, elapsedMs } = await deployAndWait({
|
|
89
|
-
initial: initialDeployment,
|
|
90
|
-
startedAt: deployStartedAt,
|
|
91
|
-
});
|
|
92
|
-
const elapsedStr = formatElapsed(elapsedMs);
|
|
93
|
-
if (deployment.status !== "deployed") {
|
|
94
|
-
throw new Error("Deployment failed");
|
|
95
|
-
}
|
|
96
|
-
const environment = await api.environments.get.v1({ environmentId: projectConfig.environmentId });
|
|
97
|
-
const urls = environment.mcpServerUrl ? [environment.mcpServerUrl] : environment.domains;
|
|
98
|
-
const playgroundUrl = environment.mcpServerUrl ? `${environment.mcpServerUrl.replace(/\/$/, "")}/try` : null;
|
|
99
|
-
const teamLine = projectConfig.teamName ? chalk.dim(`Team: ${projectConfig.teamName}`) : null;
|
|
100
|
-
p.box([
|
|
101
|
-
teamLine,
|
|
102
|
-
...urls.map((url) => chalk.bold(`🔗 ${url}`)),
|
|
103
|
-
playgroundUrl ? `\n${chalk.dim("Playground:")} ${chalk.cyan(playgroundUrl)}` : null,
|
|
104
|
-
"",
|
|
105
|
-
`Completed in ${elapsedStr}`,
|
|
106
|
-
]
|
|
107
|
-
.filter(Boolean)
|
|
108
|
-
.join("\n"), "Deployment summary:", {
|
|
109
|
-
contentAlign: "center",
|
|
110
|
-
titleAlign: "center",
|
|
111
|
-
width: "auto",
|
|
112
|
-
rounded: true,
|
|
113
|
-
contentPadding: 3,
|
|
114
|
-
});
|
|
115
|
-
p.log.info(`View build logs: ${chalk.cyan(`alpic deployment logs --deployment-id ${deployment.id}`)}`);
|
|
116
107
|
}
|
|
117
108
|
catch (error) {
|
|
118
109
|
spinner.stop();
|
|
@@ -120,10 +111,33 @@ export class Deploy extends AlpicCommand {
|
|
|
120
111
|
throw new Error(`Error: ${message}`);
|
|
121
112
|
}
|
|
122
113
|
finally {
|
|
123
|
-
if (
|
|
124
|
-
|
|
114
|
+
if (elapsedInterval) {
|
|
115
|
+
clearInterval(elapsedInterval);
|
|
125
116
|
}
|
|
126
117
|
}
|
|
118
|
+
spinner.stop(result.status === "deployed" ? chalk.green("Deployment completed") : chalk.red("Deployment failed"));
|
|
119
|
+
if (result.status !== "deployed") {
|
|
120
|
+
throw new Error("Deployment failed");
|
|
121
|
+
}
|
|
122
|
+
const urls = result.mcpServerUrl ? [result.mcpServerUrl] : result.domains;
|
|
123
|
+
const playgroundUrl = result.mcpServerUrl ? `${result.mcpServerUrl.replace(/\/$/, "")}/try` : null;
|
|
124
|
+
const teamLine = projectConfig.teamName ? chalk.dim(`Team: ${projectConfig.teamName}`) : null;
|
|
125
|
+
p.box([
|
|
126
|
+
teamLine,
|
|
127
|
+
...urls.map((url) => chalk.bold(`🔗 ${url}`)),
|
|
128
|
+
playgroundUrl ? `\n${chalk.dim("Playground:")} ${chalk.cyan(playgroundUrl)}` : null,
|
|
129
|
+
"",
|
|
130
|
+
`Completed in ${formatElapsed(result.elapsedMs)}`,
|
|
131
|
+
]
|
|
132
|
+
.filter(Boolean)
|
|
133
|
+
.join("\n"), "Deployment summary:", {
|
|
134
|
+
contentAlign: "center",
|
|
135
|
+
titleAlign: "center",
|
|
136
|
+
width: "auto",
|
|
137
|
+
rounded: true,
|
|
138
|
+
contentPadding: 3,
|
|
139
|
+
});
|
|
140
|
+
p.log.info(`View build logs: ${chalk.cyan(`alpic deployment logs --deployment-id ${result.deploymentId}`)}`);
|
|
127
141
|
}
|
|
128
142
|
}
|
|
129
143
|
//# sourceMappingURL=deploy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/deployment.d.ts
CHANGED
|
@@ -67,25 +67,4 @@ export declare function printDeploymentLog(log: DeploymentLogEntry, { noColor }?
|
|
|
67
67
|
export declare function followDeploymentLogs(deploymentId: string, initialLogs: DeploymentLogEntry[], { noColor }?: {
|
|
68
68
|
noColor?: boolean;
|
|
69
69
|
}): Promise<void>;
|
|
70
|
-
export declare function deployAndWait({ initial, startedAt, }: {
|
|
71
|
-
initial: RouterOutput["deployments"]["get"]["v1"];
|
|
72
|
-
startedAt: number;
|
|
73
|
-
}): Promise<{
|
|
74
|
-
deployment: {
|
|
75
|
-
id: string;
|
|
76
|
-
status: "failed" | "ongoing" | "deployed" | "canceled";
|
|
77
|
-
sourceRef: string | null;
|
|
78
|
-
sourceCommitId: string | null;
|
|
79
|
-
sourceCommitMessage: string | null;
|
|
80
|
-
authorUsername: string | null;
|
|
81
|
-
authorAvatarUrl: string | null;
|
|
82
|
-
startedAt: Date | null;
|
|
83
|
-
completedAt: Date | null;
|
|
84
|
-
environmentId: string;
|
|
85
|
-
environmentName: string;
|
|
86
|
-
isCurrent: boolean;
|
|
87
|
-
deploymentPageUrl: string | null;
|
|
88
|
-
};
|
|
89
|
-
elapsedMs: number;
|
|
90
|
-
}>;
|
|
91
70
|
export {};
|
package/dist/lib/deployment.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { stripVTControlCharacters } from "node:util";
|
|
2
|
-
import * as p from "@clack/prompts";
|
|
3
2
|
import chalk from "chalk";
|
|
4
3
|
import { api } from "../api.js";
|
|
5
4
|
import { createSpinner } from "./agent-mode.js";
|
|
5
|
+
import { alpic } from "./alpic-sdk.js";
|
|
6
6
|
import { formatLogTimestamp } from "./logs.js";
|
|
7
7
|
import { resolveEnvironmentId } from "./resolve.js";
|
|
8
8
|
import { pollIntervalMs } from "./utils.js";
|
|
@@ -21,7 +21,6 @@ export const colorizeDeploymentStatus = (text) => {
|
|
|
21
21
|
}
|
|
22
22
|
};
|
|
23
23
|
const FINAL_STATUSES = new Set(["deployed", "failed", "canceled"]);
|
|
24
|
-
const FIFTEEN_MINUTES_IN_MS = 15 * 60 * 1000;
|
|
25
24
|
export const FORMAT_ELAPSED_PATTERN = /\b\d+m \d+s\b|\b\d+s\b/g;
|
|
26
25
|
export function formatElapsed(ms) {
|
|
27
26
|
const totalSeconds = Math.floor(ms / 1000);
|
|
@@ -45,18 +44,15 @@ export async function fetchDeployment(deploymentId) {
|
|
|
45
44
|
export async function fetchLatestDeploymentForEnvironment(environmentId) {
|
|
46
45
|
const spinner = createSpinner();
|
|
47
46
|
spinner.start("Fetching latest deployment...");
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
if (!latest) {
|
|
47
|
+
try {
|
|
48
|
+
const latest = await alpic.deployments.getLatestForEnvironment(environmentId);
|
|
49
|
+
spinner.stop(`Using latest deployment ${chalk.dim(latest.id)} for environment ${chalk.dim(environmentId)}`);
|
|
50
|
+
return latest;
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
55
53
|
spinner.stop("No deployments found");
|
|
56
|
-
throw
|
|
54
|
+
throw error;
|
|
57
55
|
}
|
|
58
|
-
spinner.stop(`Using latest deployment ${chalk.dim(latest.id)} for environment ${chalk.dim(environmentId)}`);
|
|
59
|
-
return latest;
|
|
60
56
|
}
|
|
61
57
|
export async function resolveDeploymentId(flags) {
|
|
62
58
|
if (flags["deployment-id"]) {
|
|
@@ -71,23 +67,13 @@ export async function waitForDeployment(deployment) {
|
|
|
71
67
|
return deployment;
|
|
72
68
|
}
|
|
73
69
|
const startedAt = deployment.startedAt?.getTime() ?? Date.now();
|
|
74
|
-
const waitStartedAt = Date.now();
|
|
75
|
-
let current = deployment;
|
|
76
70
|
const spinner = createSpinner();
|
|
77
71
|
spinner.start("Waiting for deployment to complete");
|
|
78
72
|
const elapsedInterval = setInterval(() => {
|
|
79
73
|
spinner.message(`Waiting for deployment to complete — ${formatElapsed(Date.now() - startedAt)}`);
|
|
80
74
|
}, 1000);
|
|
81
75
|
try {
|
|
82
|
-
|
|
83
|
-
if (Date.now() - waitStartedAt >= FIFTEEN_MINUTES_IN_MS) {
|
|
84
|
-
throw new Error("Deployment did not reach a final state within 15 minutes.");
|
|
85
|
-
}
|
|
86
|
-
current = await api.deployments.get.v1({ deploymentId: current.id });
|
|
87
|
-
if (!FINAL_STATUSES.has(current.status)) {
|
|
88
|
-
await new Promise((resolve) => setTimeout(resolve, pollIntervalMs(3_000)));
|
|
89
|
-
}
|
|
90
|
-
}
|
|
76
|
+
const current = await alpic.deployments.watch(deployment.id);
|
|
91
77
|
spinner.stop(`Deployment is ${colorizeDeploymentStatus(current.status)(current.status)}`);
|
|
92
78
|
return current;
|
|
93
79
|
}
|
|
@@ -116,39 +102,4 @@ export async function followDeploymentLogs(deploymentId, initialLogs, { noColor
|
|
|
116
102
|
}
|
|
117
103
|
}
|
|
118
104
|
}
|
|
119
|
-
export async function deployAndWait({ initial, startedAt, }) {
|
|
120
|
-
const spinner = createSpinner();
|
|
121
|
-
let deployment = initial;
|
|
122
|
-
const deploymentPageUrl = deployment.deploymentPageUrl;
|
|
123
|
-
if (deploymentPageUrl) {
|
|
124
|
-
p.note(`🔗 ${deploymentPageUrl}`, "View deployment details:", {
|
|
125
|
-
format: (line) => line,
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
spinner.start("Deployment in progress");
|
|
129
|
-
const elapsedInterval = setInterval(() => {
|
|
130
|
-
const elapsed = formatElapsed(Date.now() - startedAt);
|
|
131
|
-
spinner.message(`Deployment in progress — ${elapsed}`);
|
|
132
|
-
}, 1000);
|
|
133
|
-
try {
|
|
134
|
-
while (deployment.status === "ongoing") {
|
|
135
|
-
const elapsedMs = Date.now() - startedAt;
|
|
136
|
-
if (elapsedMs >= FIFTEEN_MINUTES_IN_MS) {
|
|
137
|
-
throw new Error(`Deployment aborted after 15 minutes. View status: ${deploymentPageUrl}`);
|
|
138
|
-
}
|
|
139
|
-
deployment = await api.deployments.get.v1({
|
|
140
|
-
deploymentId: deployment.id,
|
|
141
|
-
});
|
|
142
|
-
if (deployment.status === "ongoing") {
|
|
143
|
-
await new Promise((resolve) => setTimeout(resolve, pollIntervalMs(10_000)));
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
return { deployment, elapsedMs: Date.now() - startedAt };
|
|
147
|
-
}
|
|
148
|
-
finally {
|
|
149
|
-
const message = deployment.status === "deployed" ? chalk.green("Deployment completed") : chalk.red("Deployment failed");
|
|
150
|
-
spinner.stop(message);
|
|
151
|
-
clearInterval(elapsedInterval);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
105
|
//# sourceMappingURL=deployment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployment.js","sourceRoot":"","sources":["../../src/lib/deployment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAErD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"deployment.js","sourceRoot":"","sources":["../../src/lib/deployment.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/whoami.js
CHANGED
|
@@ -1,47 +1,17 @@
|
|
|
1
|
-
import { getOAuthClient } from "@alpic-ai/sdk";
|
|
2
1
|
import chalk from "chalk";
|
|
3
|
-
import {
|
|
2
|
+
import { alpic } from "./alpic-sdk.js";
|
|
4
3
|
export async function getWhoamiInfoMessage() {
|
|
5
|
-
const info =
|
|
6
|
-
if (info ===
|
|
4
|
+
const info = await alpic.whoami();
|
|
5
|
+
if (info.method === "unauthenticated") {
|
|
7
6
|
return "Not logged in. Run `alpic login` or set ALPIC_API_KEY.";
|
|
8
7
|
}
|
|
9
8
|
if (info.method === "api_key") {
|
|
10
9
|
return `Authenticated via API key — Team: ${chalk.green(info.team?.name ?? "unknown")}`;
|
|
11
10
|
}
|
|
12
|
-
let label = chalk.cyan(info.email);
|
|
11
|
+
let label = chalk.cyan(info.email ?? "unknown");
|
|
13
12
|
if (info.name) {
|
|
14
13
|
label = `${chalk.green(info.name)} (${label})`;
|
|
15
14
|
}
|
|
16
15
|
return `Authenticated as ${label}`;
|
|
17
16
|
}
|
|
18
|
-
async function getWhoamiInfoFromApiKey() {
|
|
19
|
-
if (process.env.ALPIC_API_KEY === undefined) {
|
|
20
|
-
return null;
|
|
21
|
-
}
|
|
22
|
-
const team = await getApiKeyTeam();
|
|
23
|
-
return {
|
|
24
|
-
method: "api_key",
|
|
25
|
-
team,
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
async function getWhoamiInfoFromOAuth() {
|
|
29
|
-
const token = await getOAuthClient().getValidAccessToken();
|
|
30
|
-
if (!token) {
|
|
31
|
-
return null;
|
|
32
|
-
}
|
|
33
|
-
const userInfo = await getOAuthClient().fetchUserInfo(token);
|
|
34
|
-
if (!userInfo) {
|
|
35
|
-
return null;
|
|
36
|
-
}
|
|
37
|
-
return {
|
|
38
|
-
method: "oauth",
|
|
39
|
-
email: userInfo.email ?? "unknown",
|
|
40
|
-
name: userInfo.name,
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
async function getApiKeyTeam() {
|
|
44
|
-
const teams = await api.teams.list.v1();
|
|
45
|
-
return teams[0];
|
|
46
|
-
}
|
|
47
17
|
//# sourceMappingURL=whoami.js.map
|
package/dist/lib/whoami.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/lib/whoami.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/lib/whoami.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC;IAElC,IAAI,IAAI,CAAC,MAAM,KAAK,iBAAiB,EAAE,CAAC;QACtC,OAAO,wDAAwD,CAAC;IAClE,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,qCAAqC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,SAAS,CAAC,EAAE,CAAC;IAC1F,CAAC;IAED,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC;IAChD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,KAAK,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC;IACjD,CAAC;IAED,OAAO,oBAAoB,KAAK,EAAE,CAAC;AACrC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "alpic",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.145.0",
|
|
4
4
|
"description": "The command-line interface for Alpic",
|
|
5
5
|
"homepage": "https://alpic.ai",
|
|
6
6
|
"preferGlobal": true,
|
|
@@ -26,11 +26,11 @@
|
|
|
26
26
|
"license": "ISC",
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"@clack/prompts": "^1.6.0",
|
|
29
|
-
"@oclif/core": "^4.11.
|
|
29
|
+
"@oclif/core": "^4.11.11",
|
|
30
30
|
"@orpc/client": "^1.14.6",
|
|
31
31
|
"@orpc/contract": "^1.14.6",
|
|
32
32
|
"@orpc/openapi-client": "^1.14.6",
|
|
33
|
-
"@sentry/node": "^10.
|
|
33
|
+
"@sentry/node": "^10.62.0",
|
|
34
34
|
"@t3-oss/env-core": "^0.13.11",
|
|
35
35
|
"@vercel/detect-agent": "^1.2.3",
|
|
36
36
|
"chalk": "^5.6.2",
|
|
@@ -38,13 +38,12 @@
|
|
|
38
38
|
"envfile": "^7.1.0",
|
|
39
39
|
"jwt-decode": "^4.0.0",
|
|
40
40
|
"open": "^11.0.0",
|
|
41
|
-
"posthog-node": "^5.38.
|
|
41
|
+
"posthog-node": "^5.38.6",
|
|
42
42
|
"semver": "^7.8.5",
|
|
43
|
-
"tar": "^7.5.16",
|
|
44
43
|
"undici": "^8.5.0",
|
|
45
44
|
"zod": "^4.4.3",
|
|
46
|
-
"@alpic-ai/api": "1.
|
|
47
|
-
"@alpic-ai/sdk": "1.
|
|
45
|
+
"@alpic-ai/api": "1.145.0",
|
|
46
|
+
"@alpic-ai/sdk": "1.145.0"
|
|
48
47
|
},
|
|
49
48
|
"devDependencies": {
|
|
50
49
|
"@orpc/openapi": "^1.14.6",
|
|
@@ -57,7 +56,7 @@
|
|
|
57
56
|
"express": "^5.2.1",
|
|
58
57
|
"jsdom": "^29.1.1",
|
|
59
58
|
"node-pty": "1.1.0",
|
|
60
|
-
"pipenet": "1.4.
|
|
59
|
+
"pipenet": "1.4.2",
|
|
61
60
|
"selfsigned": "^5.5.0",
|
|
62
61
|
"shx": "^0.4.0",
|
|
63
62
|
"ts-node": "^10.9.2",
|
package/dist/lib/archive.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export declare function ensureGitAvailable(): void;
|
|
2
|
-
export declare function getGitFiles(): string[];
|
|
3
|
-
export declare function getFilesToPack(): string[];
|
|
4
|
-
export declare function createTarArchive(files: string[]): Promise<{
|
|
5
|
-
tmpDir: string;
|
|
6
|
-
archivePath: string;
|
|
7
|
-
}>;
|
package/dist/lib/archive.js
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { execSync } from "node:child_process";
|
|
2
|
-
import { existsSync, mkdtempSync, rmSync } from "node:fs";
|
|
3
|
-
import { tmpdir } from "node:os";
|
|
4
|
-
import { join } from "node:path";
|
|
5
|
-
import { create as tarCreate } from "tar";
|
|
6
|
-
const GIT_FILES_MAX_BUFFER = 10 * 1024 * 1024;
|
|
7
|
-
function isGitRepository() {
|
|
8
|
-
return existsSync(join(process.cwd(), ".git"));
|
|
9
|
-
}
|
|
10
|
-
export function ensureGitAvailable() {
|
|
11
|
-
try {
|
|
12
|
-
execSync("git --version", { stdio: "ignore" });
|
|
13
|
-
}
|
|
14
|
-
catch {
|
|
15
|
-
throw new Error("Git is required to deploy. Please install git and ensure it is available in your PATH.");
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
export function getGitFiles() {
|
|
19
|
-
const output = execSync("git ls-files -z --cached --others --exclude-standard -- .", {
|
|
20
|
-
encoding: "utf8",
|
|
21
|
-
maxBuffer: GIT_FILES_MAX_BUFFER,
|
|
22
|
-
});
|
|
23
|
-
const files = output.split("\0").filter(Boolean);
|
|
24
|
-
if (files.length === 0) {
|
|
25
|
-
throw new Error("No tracked or untracked files found. Ensure you are in a git repository with files to deploy.");
|
|
26
|
-
}
|
|
27
|
-
return files;
|
|
28
|
-
}
|
|
29
|
-
export function getFilesToPack() {
|
|
30
|
-
if (isGitRepository()) {
|
|
31
|
-
return getGitFiles();
|
|
32
|
-
}
|
|
33
|
-
ensureGitAvailable();
|
|
34
|
-
execSync("git init", { stdio: "ignore" });
|
|
35
|
-
try {
|
|
36
|
-
return getGitFiles();
|
|
37
|
-
}
|
|
38
|
-
finally {
|
|
39
|
-
rmSync(join(process.cwd(), ".git"), { recursive: true, force: true });
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
export async function createTarArchive(files) {
|
|
43
|
-
const tmpDir = mkdtempSync(join(tmpdir(), "alpic-deploy-"));
|
|
44
|
-
const archivePath = join(tmpDir, "source.tar.gz");
|
|
45
|
-
try {
|
|
46
|
-
await tarCreate({
|
|
47
|
-
gzip: true,
|
|
48
|
-
file: archivePath,
|
|
49
|
-
}, files);
|
|
50
|
-
}
|
|
51
|
-
catch (error) {
|
|
52
|
-
rmSync(tmpDir, { recursive: true, force: true });
|
|
53
|
-
throw error;
|
|
54
|
-
}
|
|
55
|
-
return { tmpDir, archivePath };
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=archive.js.map
|
package/dist/lib/archive.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"archive.js","sourceRoot":"","sources":["../../src/lib/archive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,KAAK,CAAC;AAE1C,MAAM,oBAAoB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAE9C,SAAS,eAAe;IACtB,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,IAAI,CAAC;QACH,QAAQ,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,wFAAwF,CAAC,CAAC;IAC5G,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,MAAM,MAAM,GAAG,QAAQ,CAAC,2DAA2D,EAAE;QACnF,QAAQ,EAAE,MAAM;QAChB,SAAS,EAAE,oBAAoB;KAChC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,+FAA+F,CAAC,CAAC;IACnH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,IAAI,eAAe,EAAE,EAAE,CAAC;QACtB,OAAO,WAAW,EAAE,CAAC;IACvB,CAAC;IACD,kBAAkB,EAAE,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1C,IAAI,CAAC;QACH,OAAO,WAAW,EAAE,CAAC;IACvB,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAAe;IACpD,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,SAAS,CACb;YACE,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,WAAW;SAClB,EACD,KAAK,CACN,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,MAAM,KAAK,CAAC;IACd,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AACjC,CAAC"}
|
package/dist/lib/upload.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function uploadToPresignedUrl(uploadUrl: string, buffer: Buffer): Promise<void>;
|
package/dist/lib/upload.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export async function uploadToPresignedUrl(uploadUrl, buffer) {
|
|
2
|
-
const res = await fetch(uploadUrl, {
|
|
3
|
-
method: "PUT",
|
|
4
|
-
headers: {
|
|
5
|
-
"Content-Type": "application/gzip",
|
|
6
|
-
},
|
|
7
|
-
body: new Uint8Array(buffer),
|
|
8
|
-
});
|
|
9
|
-
if (!res.ok) {
|
|
10
|
-
throw new Error(`Upload failed: ${res.status} ${res.statusText}`);
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=upload.js.map
|
package/dist/lib/upload.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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;SACnC;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"}
|