alpic 0.0.0-dev.f693d22 → 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.
- package/dist/__tests__/auth.e2e.test.d.ts +1 -0
- package/dist/__tests__/auth.e2e.test.js +142 -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 +101 -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__/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__/mock-server.d.ts +22 -0
- package/dist/__tests__/mock-server.js +493 -0
- package/dist/__tests__/mock-server.js.map +1 -0
- package/dist/__tests__/utils.d.ts +67 -0
- package/dist/__tests__/utils.js +243 -0
- package/dist/__tests__/utils.js.map +1 -0
- package/dist/api.d.ts +3 -13
- package/dist/api.js +14 -52
- package/dist/api.js.map +1 -1
- package/dist/commands/deploy.d.ts +7 -4
- package/dist/commands/deploy.js +60 -27
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/git/connect.d.ts +10 -0
- package/dist/commands/git/connect.js +61 -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 +45 -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 +32 -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/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 +7 -7
- 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/git.d.ts +22 -0
- package/dist/lib/git.js +133 -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/project.d.ts +71 -10
- package/dist/lib/project.js +276 -124
- package/dist/lib/project.js.map +1 -1
- 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/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 +34 -11
package/dist/lib/project.js
CHANGED
|
@@ -1,145 +1,297 @@
|
|
|
1
1
|
import * as p from "@clack/prompts";
|
|
2
2
|
import chalk from "chalk";
|
|
3
|
-
import { existsSync, statSync } from "node:fs";
|
|
3
|
+
import { existsSync, readFileSync, statSync } from "node:fs";
|
|
4
4
|
import { resolve } from "node:path";
|
|
5
5
|
import { api } from "../api.js";
|
|
6
|
+
import { BaseWorkflow } from "./base-workflow.js";
|
|
6
7
|
import { config } from "./config.js";
|
|
7
|
-
export
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
export class ProjectWorkflow extends BaseWorkflow {
|
|
9
|
+
async selectEnvironmentFromList(environments) {
|
|
10
|
+
if (environments.length === 0) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
const choice = await p.select({
|
|
14
|
+
message: chalk.bold("Choose an environment to deploy to"),
|
|
15
|
+
options: environments.map((env) => ({
|
|
16
|
+
value: env.id,
|
|
17
|
+
label: env.sourceBranch ? `${env.name} (${env.sourceBranch})` : env.name,
|
|
18
|
+
})),
|
|
19
|
+
});
|
|
20
|
+
if (p.isCancel(choice))
|
|
21
|
+
return null;
|
|
22
|
+
const environment = environments.find((e) => e.id === choice);
|
|
23
|
+
return environment ?? null;
|
|
11
24
|
}
|
|
12
|
-
|
|
13
|
-
|
|
25
|
+
async selectProjectFromList(projects) {
|
|
26
|
+
if (projects.length === 0) {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
const choice = await p.select({
|
|
30
|
+
message: chalk.bold("Choose a project"),
|
|
31
|
+
options: projects.map((proj) => ({ value: proj.id, label: proj.name })),
|
|
32
|
+
});
|
|
33
|
+
if (p.isCancel(choice))
|
|
34
|
+
return null;
|
|
35
|
+
const project = projects.find((proj) => proj.id === choice);
|
|
36
|
+
return project ?? null;
|
|
14
37
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
38
|
+
async promptRootDirectory() {
|
|
39
|
+
if (this.isNonInteractive()) {
|
|
40
|
+
if (this.flags.rootDir) {
|
|
41
|
+
const trimmed = this.flags.rootDir.trim();
|
|
42
|
+
if (trimmed === "" || trimmed === ".")
|
|
43
|
+
return null;
|
|
44
|
+
if (!this.directoryExists(trimmed)) {
|
|
45
|
+
throw new Error(`Directory does not exist: ${resolve(trimmed)}`);
|
|
46
|
+
}
|
|
47
|
+
return trimmed;
|
|
48
|
+
}
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
while (true) {
|
|
52
|
+
const rootDir = await p.text({
|
|
53
|
+
message: chalk.bold("Root directory"),
|
|
54
|
+
placeholder: ".",
|
|
55
|
+
initialValue: ".",
|
|
56
|
+
validate: (value) => {
|
|
57
|
+
if (value != null && value.length > 512)
|
|
58
|
+
return "Path must be at most 512 characters.";
|
|
59
|
+
return undefined;
|
|
60
|
+
},
|
|
61
|
+
});
|
|
62
|
+
if (p.isCancel(rootDir))
|
|
63
|
+
return null;
|
|
64
|
+
const trimmed = rootDir.trim();
|
|
65
|
+
if (trimmed === "" || trimmed === ".")
|
|
66
|
+
return null;
|
|
67
|
+
if (!this.directoryExists(trimmed)) {
|
|
68
|
+
p.log.error(`Directory does not exist: ${trimmed}`);
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
return trimmed;
|
|
72
|
+
}
|
|
30
73
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
options: environments.map((env) => ({
|
|
34
|
-
value: env.id,
|
|
35
|
-
label: `${env.name} (${env.sourceBranch})`,
|
|
36
|
-
})),
|
|
37
|
-
});
|
|
38
|
-
if (p.isCancel(choice))
|
|
39
|
-
return null;
|
|
40
|
-
const environment = environments.find((e) => e.id === choice);
|
|
41
|
-
return environment ?? null;
|
|
42
|
-
}
|
|
43
|
-
export async function confirmDeployWithoutConfig(deployDir) {
|
|
44
|
-
const confirm = await p.confirm({
|
|
45
|
-
message: chalk.bold(`Deploy the directory? `) + chalk.cyan(deployDir),
|
|
46
|
-
initialValue: true,
|
|
47
|
-
});
|
|
48
|
-
if (p.isCancel(confirm))
|
|
49
|
-
return false;
|
|
50
|
-
return confirm === true;
|
|
51
|
-
}
|
|
52
|
-
export async function confirmLinkExisting() {
|
|
53
|
-
const link = await p.confirm({
|
|
54
|
-
message: chalk.bold("Link to existing project?"),
|
|
55
|
-
initialValue: true,
|
|
56
|
-
});
|
|
57
|
-
if (p.isCancel(link))
|
|
58
|
-
return false;
|
|
59
|
-
return link === true;
|
|
60
|
-
}
|
|
61
|
-
export async function selectProjectFromList(projects) {
|
|
62
|
-
if (projects.length === 0) {
|
|
63
|
-
return null;
|
|
74
|
+
directoryExists(dir) {
|
|
75
|
+
return existsSync(dir) && statSync(dir).isDirectory();
|
|
64
76
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
77
|
+
detectRuntime() {
|
|
78
|
+
const has = (file) => existsSync(file);
|
|
79
|
+
const read = (file) => {
|
|
80
|
+
try {
|
|
81
|
+
return readFileSync(file, "utf8");
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
return "";
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
if (has("pyproject.toml") || has("requirements.txt") || has("setup.py") || has(".python-version")) {
|
|
88
|
+
return "python3.13";
|
|
89
|
+
}
|
|
90
|
+
if (has("package.json")) {
|
|
91
|
+
const nvmrc = has(".nvmrc") ? (read(".nvmrc").trim().split(/\s/)[0] ?? "") : "";
|
|
92
|
+
const major = nvmrc.replace(/^v/i, "").match(/^(\d+)/)?.[1];
|
|
93
|
+
if (major === "22")
|
|
94
|
+
return "node22";
|
|
95
|
+
return "node24";
|
|
96
|
+
}
|
|
70
97
|
return null;
|
|
71
|
-
const project = projects.find((proj) => proj.id === choice);
|
|
72
|
-
return project ?? null;
|
|
73
|
-
}
|
|
74
|
-
async function resolveEnvironmentForProject(projectId) {
|
|
75
|
-
const project = await api.getProject(projectId);
|
|
76
|
-
const environments = project.environments ?? [];
|
|
77
|
-
if (environments.length === 0) {
|
|
78
|
-
throw new Error("No environments found for this project.");
|
|
79
98
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
99
|
+
async confirmDeployWithExistingConfig(existingConfig) {
|
|
100
|
+
const envLabel = existingConfig.environmentName ? ` to environment "${existingConfig.environmentName}"` : "";
|
|
101
|
+
const confirmed = await this.confirm({
|
|
102
|
+
message: chalk.bold(`Deploy project "${existingConfig.projectName}"${envLabel}?`),
|
|
103
|
+
initialValue: true,
|
|
104
|
+
});
|
|
105
|
+
if (p.isCancel(confirmed))
|
|
106
|
+
return null;
|
|
107
|
+
return confirmed === true;
|
|
108
|
+
}
|
|
109
|
+
async confirmDeployDirectory() {
|
|
110
|
+
const confirmed = await this.confirm({
|
|
111
|
+
message: chalk.bold(`Deploy the directory? `) + chalk.cyan(process.cwd()),
|
|
112
|
+
initialValue: true,
|
|
113
|
+
});
|
|
114
|
+
if (p.isCancel(confirmed))
|
|
115
|
+
return false;
|
|
116
|
+
return confirmed === true;
|
|
117
|
+
}
|
|
118
|
+
async confirmLinkExisting() {
|
|
119
|
+
const link = await this.confirm({
|
|
120
|
+
message: chalk.bold("Link to existing project?"),
|
|
121
|
+
initialValue: true,
|
|
122
|
+
}, false);
|
|
123
|
+
if (p.isCancel(link))
|
|
124
|
+
return false;
|
|
125
|
+
return link === true;
|
|
126
|
+
}
|
|
127
|
+
async confirmLinkToAnotherProject() {
|
|
128
|
+
const link = await this.confirm({
|
|
129
|
+
message: chalk.bold("Link to another project?"),
|
|
130
|
+
initialValue: true,
|
|
131
|
+
}, false);
|
|
132
|
+
if (p.isCancel(link))
|
|
133
|
+
return false;
|
|
134
|
+
return link === true;
|
|
135
|
+
}
|
|
136
|
+
async resolveProjectForDeploy() {
|
|
137
|
+
const ok = await this.confirmDeployDirectory();
|
|
89
138
|
if (!ok)
|
|
90
139
|
return null;
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
140
|
+
const existingConfig = config.load();
|
|
141
|
+
if (existingConfig) {
|
|
142
|
+
let confirmed;
|
|
143
|
+
while (true) {
|
|
144
|
+
confirmed = await this.confirmDeployWithExistingConfig(existingConfig);
|
|
145
|
+
if (confirmed === null)
|
|
146
|
+
return null;
|
|
147
|
+
if (confirmed)
|
|
148
|
+
break;
|
|
149
|
+
const linkAnother = await this.confirmLinkToAnotherProject();
|
|
150
|
+
if (p.isCancel(linkAnother))
|
|
151
|
+
return null;
|
|
152
|
+
if (linkAnother) {
|
|
153
|
+
const linkExisting = await this.confirmLinkExisting();
|
|
154
|
+
if (!linkExisting) {
|
|
155
|
+
return this.runCreateProjectFlow();
|
|
156
|
+
}
|
|
157
|
+
return this.runLinkingFlow();
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
if (existingConfig.environmentId) {
|
|
161
|
+
return {
|
|
162
|
+
projectId: existingConfig.projectId,
|
|
163
|
+
teamId: existingConfig.teamId,
|
|
164
|
+
projectName: existingConfig.projectName,
|
|
165
|
+
environmentId: existingConfig.environmentId,
|
|
166
|
+
environmentName: existingConfig.environmentName,
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
const env = await this.resolveEnvironmentForProject(existingConfig.projectId);
|
|
170
|
+
if (!env)
|
|
171
|
+
return null;
|
|
172
|
+
const updatedConfig = {
|
|
173
|
+
...existingConfig,
|
|
174
|
+
environmentId: env.environmentId,
|
|
175
|
+
environmentName: env.environmentName,
|
|
98
176
|
};
|
|
177
|
+
config.save(updatedConfig);
|
|
178
|
+
p.note(`Environment "${env.environmentName}" will be used for future deploys.`, undefined, {
|
|
179
|
+
format: (line) => line,
|
|
180
|
+
});
|
|
181
|
+
return updatedConfig;
|
|
99
182
|
}
|
|
100
|
-
const
|
|
101
|
-
if (!
|
|
102
|
-
return
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
environmentId: env.environmentId,
|
|
106
|
-
environmentName: env.environmentName,
|
|
107
|
-
};
|
|
108
|
-
config.save(updatedConfig, deployDir);
|
|
109
|
-
p.note(`Environment "${env.environmentName}" will be used for future deploys.`);
|
|
110
|
-
return updatedConfig;
|
|
183
|
+
const linkExisting = await this.confirmLinkExisting();
|
|
184
|
+
if (!linkExisting) {
|
|
185
|
+
return this.runCreateProjectFlow();
|
|
186
|
+
}
|
|
187
|
+
return this.runLinkingFlow();
|
|
111
188
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
189
|
+
async resolveEnvironmentForProject(projectId) {
|
|
190
|
+
const project = await api.projects.get.v1({ projectId });
|
|
191
|
+
const environments = project.environments ?? [];
|
|
192
|
+
if (environments.length === 0) {
|
|
193
|
+
throw new Error("No environments found for this project.");
|
|
194
|
+
}
|
|
195
|
+
const environment = await this.selectEnvironmentFromList(environments);
|
|
196
|
+
if (!environment)
|
|
197
|
+
return null;
|
|
198
|
+
return { environmentId: environment.id, environmentName: environment.name };
|
|
119
199
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
200
|
+
async runCreateProjectFlow() {
|
|
201
|
+
if (this.isNonInteractive() && !this.flags.projectName) {
|
|
202
|
+
throw new Error("--project-name is required when using --yes");
|
|
203
|
+
}
|
|
204
|
+
const name = this.flags.projectName ??
|
|
205
|
+
(await p.text({
|
|
206
|
+
message: chalk.bold("Project name"),
|
|
207
|
+
placeholder: "my-app",
|
|
208
|
+
validate: (value) => {
|
|
209
|
+
if (!value?.trim())
|
|
210
|
+
return "Project name is required.";
|
|
211
|
+
if (value.length > 100)
|
|
212
|
+
return "Project name must be at most 100 characters.";
|
|
213
|
+
return undefined;
|
|
214
|
+
},
|
|
215
|
+
}));
|
|
216
|
+
if (p.isCancel(name)) {
|
|
217
|
+
p.cancel("Project name is required.");
|
|
218
|
+
return null;
|
|
219
|
+
}
|
|
220
|
+
const detectedRuntime = this.detectRuntime();
|
|
221
|
+
const defaultRuntime = detectedRuntime ?? "node24";
|
|
222
|
+
const runtime = this.isNonInteractive()
|
|
223
|
+
? (this.flags.runtime ?? defaultRuntime)
|
|
224
|
+
: await p.select({
|
|
225
|
+
message: chalk.bold("Runtime"),
|
|
226
|
+
options: [
|
|
227
|
+
{ value: "node24", label: "Node.js 24" },
|
|
228
|
+
{ value: "node22", label: "Node.js 22" },
|
|
229
|
+
{ value: "python3.14", label: "Python 3.14" },
|
|
230
|
+
{ value: "python3.13", label: "Python 3.13" },
|
|
231
|
+
],
|
|
232
|
+
initialValue: defaultRuntime,
|
|
233
|
+
});
|
|
234
|
+
if (p.isCancel(runtime)) {
|
|
235
|
+
p.cancel("Runtime is required.");
|
|
236
|
+
return null;
|
|
237
|
+
}
|
|
238
|
+
const rootDirectory = await this.promptRootDirectory();
|
|
239
|
+
const spin = p.spinner();
|
|
240
|
+
spin.start("Creating project...");
|
|
241
|
+
try {
|
|
242
|
+
const projectInput = {
|
|
243
|
+
name,
|
|
244
|
+
runtime,
|
|
245
|
+
};
|
|
246
|
+
projectInput.rootDirectory = rootDirectory ?? undefined;
|
|
247
|
+
const created = await api.projects.create.v1(projectInput);
|
|
248
|
+
spin.stop("Project created.");
|
|
249
|
+
const productionEnv = created.productionEnvironment;
|
|
250
|
+
if (!productionEnv) {
|
|
251
|
+
throw new Error("Project was created but has no Production environment.");
|
|
252
|
+
}
|
|
253
|
+
const newConfig = {
|
|
254
|
+
projectId: created.id,
|
|
255
|
+
teamId: created.teamId,
|
|
256
|
+
projectName: created.name,
|
|
257
|
+
environmentId: productionEnv.id,
|
|
258
|
+
environmentName: productionEnv.name,
|
|
259
|
+
};
|
|
260
|
+
config.save(newConfig);
|
|
261
|
+
return newConfig;
|
|
262
|
+
}
|
|
263
|
+
catch (error) {
|
|
264
|
+
spin.stop();
|
|
265
|
+
throw error;
|
|
266
|
+
}
|
|
123
267
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
268
|
+
async runLinkingFlow() {
|
|
269
|
+
const projects = await api.projects.list.v1();
|
|
270
|
+
if (projects.length === 0) {
|
|
271
|
+
throw new Error("No projects found. Create a project in the Alpic dashboard first.");
|
|
272
|
+
}
|
|
273
|
+
const project = await this.selectProjectFromList(projects);
|
|
274
|
+
if (!project)
|
|
275
|
+
return null;
|
|
276
|
+
const environments = project.environments ?? [];
|
|
277
|
+
if (environments.length === 0) {
|
|
278
|
+
throw new Error("No environments found for this project.");
|
|
279
|
+
}
|
|
280
|
+
const environment = await this.selectEnvironmentFromList(environments);
|
|
281
|
+
if (!environment)
|
|
282
|
+
return null;
|
|
283
|
+
const newConfig = {
|
|
284
|
+
projectId: project.id,
|
|
285
|
+
teamId: project.teamId,
|
|
286
|
+
projectName: project.name,
|
|
287
|
+
environmentId: environment.id,
|
|
288
|
+
environmentName: environment.name,
|
|
289
|
+
};
|
|
290
|
+
config.save(newConfig);
|
|
291
|
+
p.note(`Linked to project "${project.name}", environment "${environment.name}".`, undefined, {
|
|
292
|
+
format: (line) => line,
|
|
293
|
+
});
|
|
294
|
+
return newConfig;
|
|
130
295
|
}
|
|
131
|
-
const environment = await selectEnvironmentFromList(environments);
|
|
132
|
-
if (!environment)
|
|
133
|
-
return null;
|
|
134
|
-
const newConfig = {
|
|
135
|
-
projectId: project.id,
|
|
136
|
-
teamId: project.teamId,
|
|
137
|
-
projectName: project.name,
|
|
138
|
-
environmentId: environment.id,
|
|
139
|
-
environmentName: environment.name,
|
|
140
|
-
};
|
|
141
|
-
config.save(newConfig, deployDir);
|
|
142
|
-
p.note(`Linked to project "${project.name}", environment "${environment.name}".`);
|
|
143
|
-
return newConfig;
|
|
144
296
|
}
|
|
145
297
|
//# sourceMappingURL=project.js.map
|
package/dist/lib/project.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/lib/project.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/lib/project.ts"],"names":[],"mappings":"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"}
|
|
@@ -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/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
|
-
};
|