alpic 0.0.0-dev.ge3cead0 → 0.0.0-dev.ge3d809b
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/README.md +18 -0
- package/bin/run.js +15 -1
- package/dist/__tests__/alpic-command.test.js +8 -4
- package/dist/__tests__/alpic-command.test.js.map +1 -1
- package/dist/__tests__/audit.e2e.test.js +16 -29
- package/dist/__tests__/audit.e2e.test.js.map +1 -1
- package/dist/__tests__/auth.e2e.test.js +9 -23
- package/dist/__tests__/auth.e2e.test.js.map +1 -1
- package/dist/__tests__/deploy-flags.e2e.test.js +6 -21
- package/dist/__tests__/deploy-flags.e2e.test.js.map +1 -1
- package/dist/__tests__/deploy.e2e.test.js +5 -21
- package/dist/__tests__/deploy.e2e.test.js.map +1 -1
- package/dist/__tests__/deployment-inspect.e2e.test.js +18 -31
- package/dist/__tests__/deployment-inspect.e2e.test.js.map +1 -1
- package/dist/__tests__/deployment-list.e2e.test.js +18 -31
- package/dist/__tests__/deployment-list.e2e.test.js.map +1 -1
- package/dist/__tests__/deployment-logs.e2e.test.js +15 -29
- package/dist/__tests__/deployment-logs.e2e.test.js.map +1 -1
- package/dist/__tests__/environment-list.e2e.test.js +6 -22
- package/dist/__tests__/environment-list.e2e.test.js.map +1 -1
- package/dist/__tests__/environment-variable/environment-variable-add.e2e.test.js +19 -31
- package/dist/__tests__/environment-variable/environment-variable-add.e2e.test.js.map +1 -1
- package/dist/__tests__/environment-variable/environment-variable-list.e2e.test.js +19 -31
- package/dist/__tests__/environment-variable/environment-variable-list.e2e.test.js.map +1 -1
- package/dist/__tests__/environment-variable/environment-variable-remove.e2e.test.js +18 -31
- package/dist/__tests__/environment-variable/environment-variable-remove.e2e.test.js.map +1 -1
- package/dist/__tests__/environment-variable/environment-variable-update.e2e.test.js +18 -31
- package/dist/__tests__/environment-variable/environment-variable-update.e2e.test.js.map +1 -1
- package/dist/__tests__/git-flags.e2e.test.js +6 -22
- package/dist/__tests__/git-flags.e2e.test.js.map +1 -1
- package/dist/__tests__/git.e2e.test.js +7 -22
- package/dist/__tests__/git.e2e.test.js.map +1 -1
- package/dist/__tests__/insights-category.e2e.test.d.ts +1 -0
- package/dist/__tests__/insights-category.e2e.test.js +248 -0
- package/dist/__tests__/insights-category.e2e.test.js.map +1 -0
- package/dist/__tests__/insights.e2e.test.d.ts +1 -0
- package/dist/__tests__/insights.e2e.test.js +193 -0
- package/dist/__tests__/insights.e2e.test.js.map +1 -0
- package/dist/__tests__/logs.e2e.test.js +21 -35
- package/dist/__tests__/logs.e2e.test.js.map +1 -1
- package/dist/__tests__/mock-api.d.ts +23 -1
- package/dist/__tests__/mock-api.js +208 -41
- package/dist/__tests__/mock-api.js.map +1 -1
- package/dist/__tests__/playground/playground-configure.e2e.test.js +18 -26
- package/dist/__tests__/playground/playground-configure.e2e.test.js.map +1 -1
- package/dist/__tests__/playground/playground-enable-disable.e2e.test.js +18 -26
- package/dist/__tests__/playground/playground-enable-disable.e2e.test.js.map +1 -1
- package/dist/__tests__/playground/playground-example-prompt.e2e.test.js +24 -30
- package/dist/__tests__/playground/playground-example-prompt.e2e.test.js.map +1 -1
- package/dist/__tests__/playground/playground-headers.e2e.test.js +18 -26
- package/dist/__tests__/playground/playground-headers.e2e.test.js.map +1 -1
- package/dist/__tests__/playground/playground-status.e2e.test.js +18 -26
- package/dist/__tests__/playground/playground-status.e2e.test.js.map +1 -1
- package/dist/__tests__/project-list.e2e.test.js +5 -21
- package/dist/__tests__/project-list.e2e.test.js.map +1 -1
- package/dist/__tests__/publish.e2e.test.js +6 -24
- package/dist/__tests__/publish.e2e.test.js.map +1 -1
- package/dist/__tests__/team-inspect.e2e.test.js +26 -1
- package/dist/__tests__/team-inspect.e2e.test.js.map +1 -1
- package/dist/__tests__/team-list.e2e.test.js +5 -21
- package/dist/__tests__/team-list.e2e.test.js.map +1 -1
- package/dist/__tests__/tunnel.e2e.test.js +61 -23
- package/dist/__tests__/tunnel.e2e.test.js.map +1 -1
- package/dist/__tests__/utils.d.ts +17 -6
- package/dist/__tests__/utils.js +49 -20
- package/dist/__tests__/utils.js.map +1 -1
- package/dist/api.d.ts +1 -1
- package/dist/api.js +2 -21
- package/dist/api.js.map +1 -1
- package/dist/commands/deploy.js +69 -52
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/git/connect.js +2 -2
- package/dist/commands/git/connect.js.map +1 -1
- package/dist/commands/git/disconnect.js +2 -2
- package/dist/commands/git/disconnect.js.map +1 -1
- package/dist/commands/insights/category/create.d.ts +17 -0
- package/dist/commands/insights/category/create.js +63 -0
- package/dist/commands/insights/category/create.js.map +1 -0
- package/dist/commands/insights/category/delete.d.ts +13 -0
- package/dist/commands/insights/category/delete.js +40 -0
- package/dist/commands/insights/category/delete.js.map +1 -0
- package/dist/commands/insights/category/link.d.ts +14 -0
- package/dist/commands/insights/category/link.js +36 -0
- package/dist/commands/insights/category/link.js.map +1 -0
- package/dist/commands/insights/category/list.d.ts +13 -0
- package/dist/commands/insights/category/list.js +45 -0
- package/dist/commands/insights/category/list.js.map +1 -0
- package/dist/commands/insights/category/unlink.d.ts +14 -0
- package/dist/commands/insights/category/unlink.js +36 -0
- package/dist/commands/insights/category/unlink.js.map +1 -0
- package/dist/commands/insights/category/update.d.ts +16 -0
- package/dist/commands/insights/category/update.js +44 -0
- package/dist/commands/insights/category/update.js.map +1 -0
- package/dist/commands/insights/feedback/list.d.ts +19 -0
- package/dist/commands/insights/feedback/list.js +72 -0
- package/dist/commands/insights/feedback/list.js.map +1 -0
- package/dist/commands/insights/intent/list.d.ts +22 -0
- package/dist/commands/insights/intent/list.js +88 -0
- package/dist/commands/insights/intent/list.js.map +1 -0
- package/dist/commands/link.js +1 -0
- package/dist/commands/link.js.map +1 -1
- package/dist/commands/login.js +7 -5
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.js +1 -1
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/logs.js +1 -9
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/playground/example-prompt/add.js +1 -1
- package/dist/commands/team/inspect.js +17 -2
- package/dist/commands/team/inspect.js.map +1 -1
- package/dist/commands/tunnel.js +25 -61
- package/dist/commands/tunnel.js.map +1 -1
- package/dist/commands/whoami.js +1 -1
- package/dist/commands/whoami.js.map +1 -1
- package/dist/lib/alpic-command.js +17 -5
- package/dist/lib/alpic-command.js.map +1 -1
- package/dist/lib/alpic-sdk.d.ts +2 -0
- package/dist/lib/alpic-sdk.js +8 -0
- package/dist/lib/alpic-sdk.js.map +1 -0
- package/dist/lib/audit.js +6 -3
- package/dist/lib/audit.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/environment-variable.js +1 -0
- package/dist/lib/environment-variable.js.map +1 -1
- package/dist/lib/insights.d.ts +17 -0
- package/dist/lib/insights.js +54 -0
- package/dist/lib/insights.js.map +1 -0
- package/dist/lib/link.d.ts +1 -2
- package/dist/lib/link.js +16 -71
- package/dist/lib/link.js.map +1 -1
- package/dist/lib/logs.js +4 -5
- package/dist/lib/logs.js.map +1 -1
- package/dist/lib/playground.js +2 -2
- package/dist/lib/project-settings.d.ts +7 -0
- package/dist/lib/project-settings.js +140 -0
- package/dist/lib/project-settings.js.map +1 -0
- package/dist/lib/project-settings.test.d.ts +1 -0
- package/dist/lib/project-settings.test.js +56 -0
- package/dist/lib/project-settings.test.js.map +1 -0
- package/dist/lib/resolve.js +4 -5
- package/dist/lib/resolve.js.map +1 -1
- package/dist/lib/telemetry.js +24 -17
- package/dist/lib/telemetry.js.map +1 -1
- package/dist/lib/utils.d.ts +9 -1
- package/dist/lib/utils.js +28 -2
- package/dist/lib/utils.js.map +1 -1
- package/dist/lib/utils.test.js +43 -5
- package/dist/lib/utils.test.js.map +1 -1
- package/dist/lib/whoami.js +17 -0
- package/dist/lib/whoami.js.map +1 -0
- package/dist/sentry.js +3 -6
- package/dist/sentry.js.map +1 -1
- package/package.json +26 -30
- 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/auth/auth.d.ts +0 -5
- package/dist/lib/auth/auth.js +0 -50
- package/dist/lib/auth/auth.js.map +0 -1
- package/dist/lib/auth/oauth/client.d.ts +0 -28
- package/dist/lib/auth/oauth/client.js +0 -116
- package/dist/lib/auth/oauth/client.js.map +0 -1
- package/dist/lib/auth/oauth/constants.d.ts +0 -2
- package/dist/lib/auth/oauth/constants.js +0 -3
- package/dist/lib/auth/oauth/constants.js.map +0 -1
- package/dist/lib/auth/oauth/server/assets/alpic-mountain.png +0 -0
- package/dist/lib/auth/oauth/server/assets/authorize.html +0 -234
- package/dist/lib/auth/oauth/server/assets/callback.html +0 -88
- package/dist/lib/auth/oauth/server/index.d.ts +0 -9
- package/dist/lib/auth/oauth/server/index.js +0 -128
- package/dist/lib/auth/oauth/server/index.js.map +0 -1
- package/dist/lib/auth/whoami.js +0 -47
- package/dist/lib/auth/whoami.js.map +0 -1
- package/dist/lib/config.d.ts +0 -12
- package/dist/lib/config.js +0 -32
- package/dist/lib/config.js.map +0 -1
- package/dist/lib/global-store.d.ts +0 -28
- package/dist/lib/global-store.js +0 -76
- package/dist/lib/global-store.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/lib/vendor/pipenet.d.ts +0 -1
- package/dist/lib/vendor/pipenet.js +0 -15626
- package/dist/lib/vendor/pipenet.js.LEGAL.txt +0 -17
- package/dist/lib/vendor/pipenet.js.map +0 -7
- package/dist/types.d.ts +0 -8
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- /package/dist/lib/{auth/whoami.d.ts → whoami.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-inspect.e2e.test.js","sourceRoot":"","sources":["../../src/__tests__/team-inspect.e2e.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE1F,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,
|
|
1
|
+
{"version":3,"file":"team-inspect.e2e.test.js","sourceRoot":"","sources":["../../src/__tests__/team-inspect.e2e.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { MockApiServer } from "./mock-api.js";
|
|
4
|
-
import { cliSession, expectSuccessfulApiCall, setupTestDirectory } from "./utils.js";
|
|
1
|
+
import { beforeEach, describe, expect, it } from "vitest";
|
|
2
|
+
import { cliSession, expectSuccessfulApiCall, registerCliE2ELifecycle } from "./utils.js";
|
|
5
3
|
describe("alpic team list (E2E)", () => {
|
|
4
|
+
const context = registerCliE2ELifecycle();
|
|
6
5
|
let mockServer;
|
|
7
6
|
let serverUrl;
|
|
8
7
|
let cwd;
|
|
9
8
|
let binPath;
|
|
10
|
-
|
|
11
|
-
mockServer =
|
|
12
|
-
serverUrl = await mockServer.start();
|
|
13
|
-
});
|
|
14
|
-
afterAll(async () => {
|
|
15
|
-
await mockServer.stop();
|
|
16
|
-
});
|
|
17
|
-
beforeEach(async () => {
|
|
18
|
-
mockServer.reset();
|
|
19
|
-
const setup = await setupTestDirectory();
|
|
20
|
-
cwd = setup.cwd;
|
|
21
|
-
binPath = setup.binPath;
|
|
22
|
-
});
|
|
23
|
-
afterEach(() => {
|
|
24
|
-
if (cwd) {
|
|
25
|
-
rmSync(cwd, { recursive: true, force: true });
|
|
26
|
-
}
|
|
9
|
+
beforeEach(() => {
|
|
10
|
+
({ mockServer, serverUrl, cwd, binPath } = context);
|
|
27
11
|
});
|
|
28
12
|
it("lists teams for the authenticated user", async () => {
|
|
29
13
|
mockServer.setTeams([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-list.e2e.test.js","sourceRoot":"","sources":["../../src/__tests__/team-list.e2e.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"team-list.e2e.test.js","sourceRoot":"","sources":["../../src/__tests__/team-list.e2e.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAG1D,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1F,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,MAAM,OAAO,GAAG,uBAAuB,EAAE,CAAC;IAE1C,IAAI,UAAyB,CAAC;IAC9B,IAAI,SAAiB,CAAC;IACtB,IAAI,GAAW,CAAC;IAChB,IAAI,OAAe,CAAC;IAEpB,UAAU,CAAC,GAAG,EAAE;QACd,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,UAAU,CAAC,QAAQ,CAAC;YAClB,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE;YACpC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE;SACpC,CAAC,CAAC;QAEH,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,UAAU,CAC3C,OAAO,CAAC,QAAQ,EAChB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EACzB;YACE,GAAG;YACH,GAAG,EAAE,EAAE,kBAAkB,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE;SACtE,EACD,KAAK,EAAE,GAAG,EAAE,EAAE;YACZ,MAAM,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACpC,CAAC,CACF,CAAC;QAEF,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACjD,MAAM,CAAC,QAAQ,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;QAEjD,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC5D,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAExB,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,UAAU,CAC3C,OAAO,CAAC,QAAQ,EAChB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EACzB;YACE,GAAG;YACH,GAAG,EAAE,EAAE,kBAAkB,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE;SACtE,EACD,KAAK,EAAE,GAAG,EAAE,EAAE;YACZ,MAAM,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACrC,CAAC,CACF,CAAC;QAEF,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,29 +1,25 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { cliSession, createOAuthEnv,
|
|
1
|
+
import http from "node:http";
|
|
2
|
+
import { createServer } from "pipenet/server";
|
|
3
|
+
import { beforeEach, describe, expect, it } from "vitest";
|
|
4
|
+
import { cliSession, createOAuthEnv, registerCliE2ELifecycle } from "./utils.js";
|
|
5
|
+
function freePort() {
|
|
6
|
+
return new Promise((resolve, reject) => {
|
|
7
|
+
const probe = http.createServer();
|
|
8
|
+
probe.on("error", reject);
|
|
9
|
+
probe.listen(0, "127.0.0.1", () => {
|
|
10
|
+
const { port } = probe.address();
|
|
11
|
+
probe.close(() => resolve(port));
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
}
|
|
5
15
|
describe("alpic tunnel (E2E)", () => {
|
|
16
|
+
const context = registerCliE2ELifecycle();
|
|
6
17
|
let mockServer;
|
|
7
18
|
let serverUrl;
|
|
8
19
|
let cwd;
|
|
9
20
|
let binPath;
|
|
10
|
-
|
|
11
|
-
mockServer =
|
|
12
|
-
serverUrl = await mockServer.start();
|
|
13
|
-
});
|
|
14
|
-
afterAll(async () => {
|
|
15
|
-
await mockServer.stop();
|
|
16
|
-
});
|
|
17
|
-
beforeEach(async () => {
|
|
18
|
-
mockServer.reset();
|
|
19
|
-
const setup = await setupTestDirectory();
|
|
20
|
-
cwd = setup.cwd;
|
|
21
|
-
binPath = setup.binPath;
|
|
22
|
-
});
|
|
23
|
-
afterEach(() => {
|
|
24
|
-
if (cwd) {
|
|
25
|
-
rmSync(cwd, { recursive: true, force: true });
|
|
26
|
-
}
|
|
21
|
+
beforeEach(() => {
|
|
22
|
+
({ mockServer, serverUrl, cwd, binPath } = context);
|
|
27
23
|
});
|
|
28
24
|
it("triggers login when not authenticated", async () => {
|
|
29
25
|
const { output } = await cliSession(process.execPath, [binPath, "tunnel", "--port", "3000"], {
|
|
@@ -57,8 +53,7 @@ describe("alpic tunnel (E2E)", () => {
|
|
|
57
53
|
timeoutMs: 12000,
|
|
58
54
|
}, async (cli) => {
|
|
59
55
|
await cli.expect("Opening tunnel");
|
|
60
|
-
// "Opening tunnel"
|
|
61
|
-
// Wait for the request to reach the mock server before killing the process.
|
|
56
|
+
// "Opening tunnel" prints before the API request is sent, so wait for the request to reach the mock server before killing the process.
|
|
62
57
|
const deadline = Date.now() + 500;
|
|
63
58
|
while (Date.now() < deadline) {
|
|
64
59
|
if (mockServer.getCalls().some((call) => call.path.includes("tunnels"))) {
|
|
@@ -71,5 +66,48 @@ describe("alpic tunnel (E2E)", () => {
|
|
|
71
66
|
const ticketCall = mockServer.getCalls().find((call) => call.path.includes("tunnels"));
|
|
72
67
|
expect(ticketCall).toBeDefined();
|
|
73
68
|
});
|
|
69
|
+
it("closes the previous tunnel when a new one is opened for the same account", async () => {
|
|
70
|
+
// The patched pipenet enforces at-most-one tunnel per subdomain: opening a second closes the first and severs its sockets, so the displaced CLI detects the takeover and exits on its own.
|
|
71
|
+
const subdomain = "cool-mongoose-123";
|
|
72
|
+
const tunnelPort = await freePort();
|
|
73
|
+
const tunnelServer = createServer({
|
|
74
|
+
domains: ["localhost"],
|
|
75
|
+
tunnelPort,
|
|
76
|
+
maxTcpSockets: 10,
|
|
77
|
+
keepAliveDelayMs: 1_000,
|
|
78
|
+
});
|
|
79
|
+
// Bind on all interfaces so the CLI's `localhost` tunnel sockets connect whether it resolves to IPv4 or IPv6.
|
|
80
|
+
await tunnelServer.tunnelServer?.listen(tunnelPort);
|
|
81
|
+
const httpPort = await new Promise((resolve) => {
|
|
82
|
+
tunnelServer.listen(0, () => resolve(tunnelServer.address().port));
|
|
83
|
+
});
|
|
84
|
+
mockServer.setTunnelTicket({ subdomain, ticket: "mock-ticket", tunnelHost: `localhost:${httpPort}` });
|
|
85
|
+
const env = createOAuthEnv(cwd, serverUrl);
|
|
86
|
+
let startSecondTunnel = () => { };
|
|
87
|
+
const secondTunnelStarted = new Promise((resolve) => {
|
|
88
|
+
startSecondTunnel = resolve;
|
|
89
|
+
});
|
|
90
|
+
const firstSession = cliSession(process.execPath, [binPath, "tunnel", "--port", "4011"], { cwd, env, timeoutMs: 30_000 }, async (cli) => {
|
|
91
|
+
await cli.expect("Forwarding");
|
|
92
|
+
startSecondTunnel();
|
|
93
|
+
await cli.expect("a new tunnel was opened for this account", { timeoutMs: 20_000 });
|
|
94
|
+
});
|
|
95
|
+
await secondTunnelStarted;
|
|
96
|
+
const secondSession = cliSession(process.execPath, [binPath, "tunnel", "--port", "4012"], { cwd, env, timeoutMs: 30_000 }, async (cli) => {
|
|
97
|
+
await cli.expect("Forwarding");
|
|
98
|
+
// Keep the new tunnel alive until the old one has exited, then shut it down.
|
|
99
|
+
await firstSession;
|
|
100
|
+
cli.stop();
|
|
101
|
+
});
|
|
102
|
+
try {
|
|
103
|
+
const first = await firstSession;
|
|
104
|
+
await secondSession;
|
|
105
|
+
expect(first.output).toContain("a new tunnel was opened for this account");
|
|
106
|
+
}
|
|
107
|
+
finally {
|
|
108
|
+
tunnelServer.tunnelServer?.close();
|
|
109
|
+
await new Promise((resolve) => tunnelServer.close(() => resolve()));
|
|
110
|
+
}
|
|
111
|
+
}, 40_000);
|
|
74
112
|
});
|
|
75
113
|
//# sourceMappingURL=tunnel.e2e.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tunnel.e2e.test.js","sourceRoot":"","sources":["../../src/__tests__/tunnel.e2e.test.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"tunnel.e2e.test.js","sourceRoot":"","sources":["../../src/__tests__/tunnel.e2e.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { RouterOutput } from "@alpic-ai/api";
|
|
2
|
-
import type
|
|
2
|
+
import { type ApiCall, MockApiServer } from "./mock-api.js";
|
|
3
3
|
type Expectable = string | RegExp;
|
|
4
4
|
type ProjectGetV1 = RouterOutput["projects"]["get"]["v1"];
|
|
5
5
|
type DeploymentGetV1 = RouterOutput["deployments"]["get"]["v1"];
|
|
6
|
+
type TeamUsageGetV1 = RouterOutput["teams"]["getUsage"]["v1"];
|
|
6
7
|
type ProductionEnvironment = NonNullable<ProjectGetV1["productionEnvironment"]>;
|
|
7
8
|
type ProductionEnvironmentDomains = ProductionEnvironment["domains"];
|
|
8
9
|
export type CliSessionOptions = {
|
|
@@ -45,6 +46,8 @@ export type BuildMockProjectParams = {
|
|
|
45
46
|
};
|
|
46
47
|
export declare function buildMockProject(params: BuildMockProjectParams): ProjectGetV1;
|
|
47
48
|
export declare function buildMockDeployment(overrides?: Partial<DeploymentGetV1>): DeploymentGetV1;
|
|
49
|
+
/** Anchored on the run so the rendered "resets in 12 days" stays snapshot-stable. */
|
|
50
|
+
export declare function buildMockTeamUsage(teamId: string, overrides?: Partial<TeamUsageGetV1>): TeamUsageGetV1;
|
|
48
51
|
export type SetupTestDirectoryOptions = {
|
|
49
52
|
/** If true, run git init and add origin/upstream remotes */
|
|
50
53
|
initGit?: boolean;
|
|
@@ -53,14 +56,22 @@ export declare function setupTestDirectory(options?: SetupTestDirectoryOptions):
|
|
|
53
56
|
cwd: string;
|
|
54
57
|
binPath: string;
|
|
55
58
|
}>;
|
|
59
|
+
export type CliE2EContext = {
|
|
60
|
+
mockServer: MockApiServer;
|
|
61
|
+
serverUrl: string;
|
|
62
|
+
cwd: string;
|
|
63
|
+
binPath: string;
|
|
64
|
+
};
|
|
65
|
+
export type RegisterCliE2ELifecycleOptions = {
|
|
66
|
+
projects?: BuildMockProjectParams[];
|
|
67
|
+
testDirectory?: SetupTestDirectoryOptions;
|
|
68
|
+
};
|
|
69
|
+
/** Registers the standard e2e lifecycle (one mock API server per suite, fresh test directory and mock state per test); context fields are (re)assigned by the hooks, so read them inside tests or a `beforeEach`, never at `describe` scope. */
|
|
70
|
+
export declare function registerCliE2ELifecycle(options?: RegisterCliE2ELifecycleOptions): CliE2EContext;
|
|
56
71
|
export declare function createConfigFile(cwd: string, projectId: string, teamId: string, projectName: string, environmentId: string, environmentName: string, teamName?: string): void;
|
|
57
72
|
export declare function runGit(args: string[], cwd: string): void;
|
|
58
73
|
export declare function expectSuccessfulApiCall(call: ApiCall | undefined, customAssertions?: (call: ApiCall) => void): asserts call is ApiCall;
|
|
59
|
-
/**
|
|
60
|
-
* Create OAuth credentials in a temp config dir and return env for CLI subprocess.
|
|
61
|
-
* Use this to run commands with OAuth auth (no ALPIC_API_KEY).
|
|
62
|
-
* Caller must pass serverUrl so userinfo can be pointed at the mock server.
|
|
63
|
-
*/
|
|
74
|
+
/** Creates OAuth credentials in a temp config dir and returns env for running the CLI with OAuth auth (no ALPIC_API_KEY); serverUrl points userinfo at the mock server. */
|
|
64
75
|
export declare function createOAuthEnv(cwd: string, serverUrl: string): Record<string, string>;
|
|
65
76
|
export declare function verifyConfigFile(cwd: string, expected: {
|
|
66
77
|
projectName: string;
|
package/dist/__tests__/utils.js
CHANGED
|
@@ -7,8 +7,10 @@ import { dirname, join } from "node:path";
|
|
|
7
7
|
import { fileURLToPath } from "node:url";
|
|
8
8
|
import { stripVTControlCharacters } from "node:util";
|
|
9
9
|
import pty from "node-pty";
|
|
10
|
-
import { expect } from "vitest";
|
|
10
|
+
import { afterAll, afterEach, beforeAll, beforeEach, expect } from "vitest";
|
|
11
|
+
import { MockApiServer } from "./mock-api.js";
|
|
11
12
|
const DEFAULT_CLI_SESSION_TIMEOUT_MS = 10_000;
|
|
13
|
+
const DAY_MS = 24 * 60 * 60 * 1000;
|
|
12
14
|
const __testDirname = dirname(fileURLToPath(import.meta.url));
|
|
13
15
|
export async function cliSession(cmd, args, options, fn = async () => { }) {
|
|
14
16
|
const { cwd, env, cols = 100, rows = 30, timeoutMs = DEFAULT_CLI_SESSION_TIMEOUT_MS } = options;
|
|
@@ -21,11 +23,9 @@ export async function cliSession(cmd, args, options, fn = async () => { }) {
|
|
|
21
23
|
ALPIC_POLL_INTERVAL_MS: "100",
|
|
22
24
|
// Prevent browser windows from opening during tests.
|
|
23
25
|
ALPIC_NO_OPEN: "1",
|
|
24
|
-
// Disable PostHog telemetry: every CLI invocation in CI/local tests would
|
|
25
|
-
// otherwise fire a real production event and drown out customer signal.
|
|
26
|
+
// Disable PostHog telemetry: every CLI invocation in CI/local tests would otherwise fire a real production event and drown out customer signal.
|
|
26
27
|
ALPIC_TELEMETRY_DISABLED: "1",
|
|
27
|
-
// Resolve @alpic-ai/api to TypeScript source via the "development" export condition,
|
|
28
|
-
// so e2e tests run without building the api package first.
|
|
28
|
+
// Resolve @alpic-ai/api to TypeScript source via the "development" export condition, so e2e tests run without building the api package first.
|
|
29
29
|
NODE_OPTIONS: [process.env.NODE_OPTIONS, "--conditions=development"].filter(Boolean).join(" "),
|
|
30
30
|
...Object.fromEntries(Object.entries(env ?? {}).filter(([, value]) => value !== undefined)),
|
|
31
31
|
};
|
|
@@ -59,10 +59,7 @@ export async function cliSession(cmd, args, options, fn = async () => { }) {
|
|
|
59
59
|
const controller = {
|
|
60
60
|
expect: (pattern, opts) => waitFor(() => matches(buf, pattern), opts?.timeoutMs ?? timeoutMs, () => buf, pattern),
|
|
61
61
|
send: async (line) => {
|
|
62
|
-
// Wait until PTY output has gone quiet
|
|
63
|
-
// This ensures the CLI has yielded its event loop and entered the I/O
|
|
64
|
-
// polling phase where it can receive keypresses — without a fixed
|
|
65
|
-
// overly-conservative delay.
|
|
62
|
+
// Wait until PTY output has gone quiet so the CLI has yielded its event loop and can receive keypresses, without a fixed overly-conservative delay.
|
|
66
63
|
const quietMs = 10;
|
|
67
64
|
while (Date.now() - lastDataAt < quietMs) {
|
|
68
65
|
await sleep(5);
|
|
@@ -78,9 +75,7 @@ export async function cliSession(cmd, args, options, fn = async () => { }) {
|
|
|
78
75
|
try {
|
|
79
76
|
term.kill();
|
|
80
77
|
}
|
|
81
|
-
catch {
|
|
82
|
-
// ignore
|
|
83
|
-
}
|
|
78
|
+
catch { }
|
|
84
79
|
},
|
|
85
80
|
};
|
|
86
81
|
try {
|
|
@@ -141,7 +136,7 @@ export function buildMockProject(params) {
|
|
|
141
136
|
name: environmentName,
|
|
142
137
|
sourceBranch,
|
|
143
138
|
mcpServerUrl,
|
|
144
|
-
createdAt: new Date(
|
|
139
|
+
createdAt: new Date(Date.now() - 2 * 365 * 24 * 60 * 60 * 1000),
|
|
145
140
|
projectId,
|
|
146
141
|
latestDeployment,
|
|
147
142
|
},
|
|
@@ -161,7 +156,7 @@ export function buildMockProject(params) {
|
|
|
161
156
|
buildOutputDir: null,
|
|
162
157
|
installCommand: null,
|
|
163
158
|
startCommand: null,
|
|
164
|
-
createdAt: new Date(
|
|
159
|
+
createdAt: new Date(Date.now() - 2 * 365 * 24 * 60 * 60 * 1000),
|
|
165
160
|
};
|
|
166
161
|
}
|
|
167
162
|
export function buildMockDeployment(overrides) {
|
|
@@ -181,6 +176,18 @@ export function buildMockDeployment(overrides) {
|
|
|
181
176
|
};
|
|
182
177
|
return { ...base, ...overrides };
|
|
183
178
|
}
|
|
179
|
+
/** Anchored on the run so the rendered "resets in 12 days" stays snapshot-stable. */
|
|
180
|
+
export function buildMockTeamUsage(teamId, overrides) {
|
|
181
|
+
const base = {
|
|
182
|
+
teamId,
|
|
183
|
+
plan: null,
|
|
184
|
+
periodStart: new Date(Date.now() - 18 * DAY_MS),
|
|
185
|
+
periodEnd: new Date(Date.now() + 12 * DAY_MS),
|
|
186
|
+
requestCount: 0,
|
|
187
|
+
includedRequests: 10_000,
|
|
188
|
+
};
|
|
189
|
+
return { ...base, ...overrides };
|
|
190
|
+
}
|
|
184
191
|
export async function setupTestDirectory(options = {}) {
|
|
185
192
|
const { initGit = false } = options;
|
|
186
193
|
const uniqueId = randomUUID();
|
|
@@ -195,6 +202,32 @@ export async function setupTestDirectory(options = {}) {
|
|
|
195
202
|
const binPath = join(process.cwd(), "bin", "dev.js");
|
|
196
203
|
return { cwd, binPath };
|
|
197
204
|
}
|
|
205
|
+
/** Registers the standard e2e lifecycle (one mock API server per suite, fresh test directory and mock state per test); context fields are (re)assigned by the hooks, so read them inside tests or a `beforeEach`, never at `describe` scope. */
|
|
206
|
+
export function registerCliE2ELifecycle(options = {}) {
|
|
207
|
+
const context = {};
|
|
208
|
+
beforeAll(async () => {
|
|
209
|
+
context.mockServer = new MockApiServer();
|
|
210
|
+
context.serverUrl = await context.mockServer.start();
|
|
211
|
+
});
|
|
212
|
+
afterAll(async () => {
|
|
213
|
+
await context.mockServer.stop();
|
|
214
|
+
});
|
|
215
|
+
beforeEach(async () => {
|
|
216
|
+
context.mockServer.reset();
|
|
217
|
+
const setup = await setupTestDirectory(options.testDirectory);
|
|
218
|
+
context.cwd = setup.cwd;
|
|
219
|
+
context.binPath = setup.binPath;
|
|
220
|
+
for (const project of options.projects ?? []) {
|
|
221
|
+
context.mockServer.addProject(buildMockProject(project));
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
afterEach(async () => {
|
|
225
|
+
if (context.cwd) {
|
|
226
|
+
await rm(context.cwd, { recursive: true, force: true });
|
|
227
|
+
}
|
|
228
|
+
});
|
|
229
|
+
return context;
|
|
230
|
+
}
|
|
198
231
|
export function createConfigFile(cwd, projectId, teamId, projectName, environmentId, environmentName, teamName) {
|
|
199
232
|
const configDir = join(cwd, ".alpic");
|
|
200
233
|
mkdirSync(configDir, { recursive: true });
|
|
@@ -224,16 +257,12 @@ export function expectSuccessfulApiCall(call, customAssertions) {
|
|
|
224
257
|
customAssertions(call);
|
|
225
258
|
}
|
|
226
259
|
}
|
|
227
|
-
/**
|
|
228
|
-
* Create OAuth credentials in a temp config dir and return env for CLI subprocess.
|
|
229
|
-
* Use this to run commands with OAuth auth (no ALPIC_API_KEY).
|
|
230
|
-
* Caller must pass serverUrl so userinfo can be pointed at the mock server.
|
|
231
|
-
*/
|
|
260
|
+
/** Creates OAuth credentials in a temp config dir and returns env for running the CLI with OAuth auth (no ALPIC_API_KEY); serverUrl points userinfo at the mock server. */
|
|
232
261
|
export function createOAuthEnv(cwd, serverUrl) {
|
|
233
262
|
const alpicConfigDir = join(cwd, ".config", "alpic");
|
|
234
263
|
mkdirSync(alpicConfigDir, { recursive: true });
|
|
235
264
|
const credentialsPath = join(alpicConfigDir, "credentials.json");
|
|
236
|
-
const expiresAt = Math.floor(Date.now() / 1000) + 3600;
|
|
265
|
+
const expiresAt = Math.floor(Date.now() / 1000) + 3600;
|
|
237
266
|
writeFileSync(credentialsPath, JSON.stringify({
|
|
238
267
|
access_token: "test-oauth-token",
|
|
239
268
|
refresh_token: "test-refresh-token",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/__tests__/utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/__tests__/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAErD,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE5E,OAAO,EAAgB,aAAa,EAAE,MAAM,eAAe,CAAC;AAE5D,MAAM,8BAA8B,GAAG,MAAM,CAAC;AAC9C,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AASnC,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAyB9D,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,GAAW,EACX,IAAc,EACd,OAA0B,EAC1B,KAAmD,KAAK,IAAI,EAAE,GAAE,CAAC;IAEjE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,GAAG,8BAA8B,EAAE,GAAG,OAAO,CAAC;IAChG,MAAM,gBAAgB,GAAG,GAAG,EAAE,uBAAuB,KAAK,SAAS,CAAC;IACpE,MAAM,eAAe,GAAG,GAAG,EAAE,uBAAuB,IAAI,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAE7G,MAAM,SAAS,GAA2B;QACxC,GAAG,OAAO,CAAC,GAAG;QACd,uBAAuB,EAAE,eAAe;QACxC,oFAAoF;QACpF,sBAAsB,EAAE,KAAK;QAC7B,qDAAqD;QACrD,aAAa,EAAE,GAAG;QAClB,gJAAgJ;QAChJ,wBAAwB,EAAE,GAAG;QAC7B,8IAA8I;QAC9I,YAAY,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,0BAA0B,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAC9F,GAAG,MAAM,CAAC,WAAW,CACnB,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAA4B,CAChG;KACF,CAAC;IAEF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACrD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,KAAK,CAAC,CAAC;YAChE,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,kBAAkB,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE;QAChC,GAAG;QACH,GAAG,EAAE,SAAS;QACd,IAAI,EAAE,gBAAgB;QACtB,IAAI;QACJ,IAAI;KACL,CAAC,CAAC;IAEH,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE;QAC9B,GAAG,IAAI,IAAI,CAAC;QACZ,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC1B,CAAC,CAAC;IAEF,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEpB,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAChD,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YACpB,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC;YAClC,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAkB;QAChC,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CACxB,OAAO,CACL,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,EAC3B,IAAI,EAAE,SAAS,IAAI,SAAS,EAC5B,GAAG,EAAE,CAAC,GAAG,EACT,OAAO,CACR;QACH,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACnB,oJAAoJ;YACpJ,MAAM,OAAO,GAAG,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,GAAG,OAAO,EAAE,CAAC;gBACzC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QACjC,MAAM,EAAE,GAAG,EAAE,CAAC,wBAAwB,CAAC,GAAG,CAAC;QAC3C,KAAK,EAAE,GAAG,EAAE;YACV,GAAG,GAAG,EAAE,CAAC;QACX,CAAC;QACD,IAAI,EAAE,GAAG,EAAE;YACT,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC;KACF,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC;IACvB,CAAC;YAAS,CAAC;QACT,MAAM,iBAAiB,GAAG,MAAM,WAAW,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAEpE,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,UAAU,CAAC,IAAI,EAAE,CAAC;YAClB,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,EAAE,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,wBAAwB,CAAC,GAAG,CAAC,EAAE,CAAC;AAC7D,CAAC;AAED,SAAS,OAAO,CAAC,IAAY,EAAE,OAAmB;IAChD,MAAM,cAAc,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACtC,CAAC;AAED,KAAK,UAAU,OAAO,CACpB,SAAwB,EACxB,SAAiB,EACjB,SAAuB,EACvB,OAAmB;IAEnB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEzB,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,SAAS,EAAE,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,SAAS,EAAE,CAAC;YACnC,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CACb,mBAAmB,SAAS,mBAAmB,eAAe,CAAC,OAAO,CAAC,MAAM;gBAC3E,2BAA2B,GAAG,wBAAwB,CACzD,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,OAAmB;IAC1C,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;AACvG,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,WAA0B,EAAE,SAAiB;IACtE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1F,CAAC;AAcD,MAAM,UAAU,gBAAgB,CAAC,MAA8B;IAC7D,MAAM,EACJ,SAAS,EACT,MAAM,EACN,WAAW,EACX,aAAa,EACb,eAAe,EACf,gBAAgB,GAAG,IAAI,EACvB,YAAY,GAAG,IAAI,EACnB,OAAO,GAAG,EAAE,EACZ,gBAAgB,GAAG,IAAI,GACxB,GAAG,MAAM,CAAC;IACX,MAAM,YAAY,GAAG,eAAe,SAAS,WAAW,CAAC;IACzD,OAAO;QACL,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,WAAW;QACjB,MAAM;QACN,YAAY,EAAE;YACZ;gBACE,EAAE,EAAE,aAAa;gBACjB,IAAI,EAAE,eAAe;gBACrB,YAAY;gBACZ,YAAY;gBACZ,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;gBAC/D,SAAS;gBACT,gBAAgB;aACjB;SACF;QACD,qBAAqB,EAAE;YACrB,EAAE,EAAE,aAAa;YACjB,IAAI,EAAE,eAAe;YACrB,YAAY;YACZ,OAAO;YACP,gBAAgB;SACjB;QACD,gBAAgB;QAChB,OAAO,EAAE,QAAQ;QACjB,SAAS,EAAE,IAAI;QACf,aAAa,EAAE,IAAI;QACnB,YAAY,EAAE,IAAI;QAClB,cAAc,EAAE,IAAI;QACpB,cAAc,EAAE,IAAI;QACpB,YAAY,EAAE,IAAI;QAClB,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;KACzC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,SAAoC;IACtE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,IAAI,GAAG;QACX,EAAE,EAAE,UAAU;QACd,MAAM,EAAE,UAAU;QAClB,SAAS,EAAE,MAAM;QACjB,cAAc,EAAE,SAAS;QACzB,mBAAmB,EAAE,mBAAmB;QACxC,cAAc,EAAE,SAAS;QACzB,eAAe,EAAE,IAAI;QACrB,SAAS,EAAE,GAAG;QACd,WAAW,EAAE,GAAG;QAChB,SAAS,EAAE,IAAI;QACf,iBAAiB,EAAE,IAAI;KACL,CAAC;IAErB,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC;AACnC,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,SAAmC;IACpF,MAAM,IAAI,GAAG;QACX,MAAM;QACN,IAAI,EAAE,IAAI;QACV,WAAW,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;QAC/C,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;QAC7C,YAAY,EAAE,CAAC;QACf,gBAAgB,EAAE,MAAM;KACA,CAAC;IAE3B,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC;AACnC,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,UAAqC,EAAE;IAEvC,MAAM,EAAE,OAAO,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IACpC,MAAM,QAAQ,GAAG,UAAU,EAAE,CAAC;IAC9B,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,iBAAiB,QAAQ,GAAG,CAAC,CAAC,CAAC;IACxE,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;IACpE,MAAM,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhD,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;QACtB,MAAM,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,kCAAkC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC7E,MAAM,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,qCAAqC,CAAC,EAAE,GAAG,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACrD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AAC1B,CAAC;AAcD,gPAAgP;AAChP,MAAM,UAAU,uBAAuB,CAAC,UAA0C,EAAE;IAClF,MAAM,OAAO,GAAG,EAAmB,CAAC;IAEpC,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,OAAO,CAAC,UAAU,GAAG,IAAI,aAAa,EAAE,CAAC;QACzC,OAAO,CAAC,SAAS,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,KAAK,IAAI,EAAE;QAClB,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;QACxB,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAEhC,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YAC7C,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,GAAW,EACX,SAAiB,EACjB,MAAc,EACd,WAAmB,EACnB,aAAqB,EACrB,eAAuB,EACvB,QAAiB;IAEjB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACtC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACnD,MAAM,UAAU,GAA2B;QACzC,SAAS;QACT,MAAM;QACN,WAAW;QACX,aAAa;QACb,eAAe;KAChB,CAAC;IACF,IAAI,QAAQ,EAAE,CAAC;QACb,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACjC,CAAC;IACD,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,IAAc,EAAE,GAAW;IAChD,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE;QACxB,GAAG;QACH,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;KAClC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,IAAyB,EACzB,gBAA0C;IAE1C,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IAC3B,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,gBAAgB,IAAI,IAAI,EAAE,CAAC;QAC7B,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;AACH,CAAC;AAED,2KAA2K;AAC3K,MAAM,UAAU,cAAc,CAAC,GAAW,EAAE,SAAiB;IAC3D,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACrD,SAAS,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IACvD,aAAa,CACX,eAAe,EACf,IAAI,CAAC,SAAS,CAAC;QACb,YAAY,EAAE,kBAAkB;QAChC,aAAa,EAAE,oBAAoB;QACnC,UAAU,EAAE,SAAS;QACrB,GAAG,EAAE,UAAU;KAChB,CAAC,EACF,OAAO,CACR,CAAC;IACF,OAAO;QACL,uBAAuB,EAAE,cAAc;QACvC,iBAAiB,EAAE,SAAS;QAC5B,kBAAkB,EAAE,SAAS;KAC9B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAW,EACX,QAOC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACtD,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;IACzC,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;IACtC,CAAC;IACD,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,QAAQ,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC;IACD,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IAChE,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,GAAkB,EAAE,UAAyB;IACtF,MAAM,GAAG,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAEvC,MAAM,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAEpC,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IAC5E,uBAAuB,CAAC,UAAU,CAAC,CAAC;IAEpC,MAAM,GAAG,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAEvC,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAC;IACpF,uBAAuB,CAAC,UAAU,CAAC,CAAC;IAEpC,MAAM,GAAG,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC;IAE7C,MAAM,GAAG,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAExC,MAAM,qBAAqB,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;IAClF,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAExD,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;IACxE,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC"}
|
package/dist/api.d.ts
CHANGED
package/dist/api.js
CHANGED
|
@@ -1,22 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import { ResponseValidationPlugin } from "@orpc/contract/plugins";
|
|
4
|
-
import { OpenAPILink } from "@orpc/openapi-client/fetch";
|
|
5
|
-
import { env } from "./env.js";
|
|
6
|
-
import { getApiToken } from "./lib/auth/auth.js";
|
|
7
|
-
const link = new OpenAPILink(contract, {
|
|
8
|
-
url: env.ALPIC_API_BASE_URL,
|
|
9
|
-
headers: async ({ context }) => {
|
|
10
|
-
const headers = context.request?.headers || {};
|
|
11
|
-
if (!headers.Authorization) {
|
|
12
|
-
const token = await getApiToken();
|
|
13
|
-
if (token) {
|
|
14
|
-
headers.Authorization = `Bearer ${token}`;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
return headers;
|
|
18
|
-
},
|
|
19
|
-
plugins: [new ResponseValidationPlugin(contract)],
|
|
20
|
-
});
|
|
21
|
-
export const api = createORPCClient(link);
|
|
1
|
+
import { alpic } from "./lib/alpic-sdk.js";
|
|
2
|
+
export const api = alpic.api;
|
|
22
3
|
//# sourceMappingURL=api.js.map
|
package/dist/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,MAAM,CAAC,MAAM,GAAG,GAA0C,KAAK,CAAC,GAAG,CAAC"}
|
package/dist/commands/deploy.js
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
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 {
|
|
8
|
+
import { detectProjectSettings } from "../lib/project-settings.js";
|
|
11
9
|
export class Deploy extends AlpicCommand {
|
|
12
10
|
static description = "Deploy a project to Alpic";
|
|
13
11
|
static examples = [
|
|
@@ -50,6 +48,7 @@ export class Deploy extends AlpicCommand {
|
|
|
50
48
|
const linkWorkflowFlags = {
|
|
51
49
|
"non-interactive": flags["non-interactive"],
|
|
52
50
|
projectName: flags["project-name"],
|
|
51
|
+
// biome-ignore lint/plugin/no-type-assertion: Oclif validates runtime flag values against the configured options.
|
|
53
52
|
runtime: flags.runtime,
|
|
54
53
|
rootDir: flags["root-dir"],
|
|
55
54
|
teamId: flags["team-id"],
|
|
@@ -65,54 +64,49 @@ export class Deploy extends AlpicCommand {
|
|
|
65
64
|
throw new Error("Deploy cancelled");
|
|
66
65
|
}
|
|
67
66
|
const spinner = this.spinner();
|
|
68
|
-
let
|
|
67
|
+
let elapsedInterval;
|
|
68
|
+
let deployingStarted = false;
|
|
69
|
+
let result;
|
|
69
70
|
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({
|
|
71
|
+
result = await alpic.deployments.deploy({
|
|
84
72
|
environmentId: projectConfig.environmentId,
|
|
85
|
-
|
|
73
|
+
teamId: projectConfig.teamId,
|
|
74
|
+
detectSettings: (files) => detectProjectSettings(process.cwd(), files),
|
|
75
|
+
onProgress: (event) => {
|
|
76
|
+
switch (event.type) {
|
|
77
|
+
case "collecting":
|
|
78
|
+
spinner.start("Collecting source files...");
|
|
79
|
+
break;
|
|
80
|
+
case "collected":
|
|
81
|
+
spinner.stop(`Collected ${event.fileCount} file${event.fileCount === 1 ? "" : "s"}`);
|
|
82
|
+
break;
|
|
83
|
+
case "uploading":
|
|
84
|
+
spinner.start("Uploading source...");
|
|
85
|
+
break;
|
|
86
|
+
case "triggering":
|
|
87
|
+
spinner.stop("Upload complete");
|
|
88
|
+
spinner.start("Triggering deployment...");
|
|
89
|
+
break;
|
|
90
|
+
case "deploying":
|
|
91
|
+
if (deployingStarted) {
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
deployingStarted = true;
|
|
95
|
+
spinner.stop("Deployment started");
|
|
96
|
+
if (event.deploymentPageUrl) {
|
|
97
|
+
p.note(`🔗 ${event.deploymentPageUrl}`, "View deployment details:", { format: (line) => line });
|
|
98
|
+
}
|
|
99
|
+
spinner.start("Deployment in progress");
|
|
100
|
+
{
|
|
101
|
+
const startedAt = Date.now() - event.elapsedMs;
|
|
102
|
+
elapsedInterval = setInterval(() => {
|
|
103
|
+
spinner.message(`Deployment in progress — ${formatElapsed(Date.now() - startedAt)}`);
|
|
104
|
+
}, 1000);
|
|
105
|
+
}
|
|
106
|
+
break;
|
|
107
|
+
}
|
|
108
|
+
},
|
|
86
109
|
});
|
|
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
110
|
}
|
|
117
111
|
catch (error) {
|
|
118
112
|
spinner.stop();
|
|
@@ -120,10 +114,33 @@ export class Deploy extends AlpicCommand {
|
|
|
120
114
|
throw new Error(`Error: ${message}`);
|
|
121
115
|
}
|
|
122
116
|
finally {
|
|
123
|
-
if (
|
|
124
|
-
|
|
117
|
+
if (elapsedInterval) {
|
|
118
|
+
clearInterval(elapsedInterval);
|
|
125
119
|
}
|
|
126
120
|
}
|
|
121
|
+
spinner.stop(result.status === "deployed" ? chalk.green("Deployment completed") : chalk.red("Deployment failed"));
|
|
122
|
+
if (result.status !== "deployed") {
|
|
123
|
+
throw new Error("Deployment failed");
|
|
124
|
+
}
|
|
125
|
+
const urls = result.mcpServerUrl ? [result.mcpServerUrl] : result.domains;
|
|
126
|
+
const playgroundUrl = result.mcpServerUrl ? `${result.mcpServerUrl.replace(/\/$/, "")}/try` : null;
|
|
127
|
+
const teamLine = projectConfig.teamName ? chalk.dim(`Team: ${projectConfig.teamName}`) : null;
|
|
128
|
+
p.box([
|
|
129
|
+
teamLine,
|
|
130
|
+
...urls.map((url) => chalk.bold(`🔗 ${url}`)),
|
|
131
|
+
playgroundUrl ? `\n${chalk.dim("Playground:")} ${chalk.cyan(playgroundUrl)}` : null,
|
|
132
|
+
"",
|
|
133
|
+
`Completed in ${formatElapsed(result.elapsedMs)}`,
|
|
134
|
+
]
|
|
135
|
+
.filter(Boolean)
|
|
136
|
+
.join("\n"), "Deployment summary:", {
|
|
137
|
+
contentAlign: "center",
|
|
138
|
+
titleAlign: "center",
|
|
139
|
+
width: "auto",
|
|
140
|
+
rounded: true,
|
|
141
|
+
contentPadding: 3,
|
|
142
|
+
});
|
|
143
|
+
p.log.info(`View build logs: ${chalk.cyan(`alpic deployment logs --deployment-id ${result.deploymentId}`)}`);
|
|
127
144
|
}
|
|
128
145
|
}
|
|
129
146
|
//# sourceMappingURL=deploy.js.map
|