alpic 0.0.0-dev.gfbdef08 → 0.0.0-dev.gfbf0e1a
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__/alpic-command.test.js +8 -4
- package/dist/__tests__/alpic-command.test.js.map +1 -1
- package/dist/__tests__/auth.e2e.test.js +3 -1
- package/dist/__tests__/auth.e2e.test.js.map +1 -1
- package/dist/__tests__/environment-list.e2e.test.js +1 -1
- package/dist/__tests__/environment-list.e2e.test.js.map +1 -1
- package/dist/__tests__/mock-api.d.ts +6 -0
- package/dist/__tests__/mock-api.js +8 -3
- package/dist/__tests__/mock-api.js.map +1 -1
- package/dist/__tests__/tunnel.e2e.test.js +60 -0
- package/dist/__tests__/tunnel.e2e.test.js.map +1 -1
- package/dist/__tests__/utils.js +2 -2
- 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 +66 -52
- package/dist/commands/deploy.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/tunnel.js +27 -59
- 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 +5 -3
- package/dist/lib/alpic-command.js.map +1 -1
- package/dist/lib/alpic-sdk.d.ts +2 -0
- package/dist/lib/alpic-sdk.js +9 -0
- package/dist/lib/alpic-sdk.js.map +1 -0
- 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/telemetry.js +1 -1
- package/dist/lib/telemetry.js.map +1 -1
- package/dist/lib/whoami.js +17 -0
- package/dist/lib/whoami.js.map +1 -0
- package/package.json +19 -23
- 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/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/lib/{auth/whoami.d.ts → whoami.d.ts} +0 -0
|
@@ -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/telemetry.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import crypto from "node:crypto";
|
|
2
|
+
import { globalStore } from "@alpic-ai/sdk";
|
|
2
3
|
import ci from "ci-info";
|
|
3
4
|
import posthog from "../posthog.js";
|
|
4
5
|
import { initSentry, Sentry } from "../sentry.js";
|
|
5
|
-
import { globalStore } from "./global-store.js";
|
|
6
6
|
const ENV_TELEMETRY_DISABLED = "ALPIC_TELEMETRY_DISABLED";
|
|
7
7
|
const ENV_TELEMETRY_DEBUG = "ALPIC_TELEMETRY_DEBUG";
|
|
8
8
|
const ENV_DO_NOT_TRACK = "DO_NOT_TRACK";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/lib/telemetry.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/lib/telemetry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import { alpic } from "./alpic-sdk.js";
|
|
3
|
+
export async function getWhoamiInfoMessage() {
|
|
4
|
+
const info = await alpic.whoami();
|
|
5
|
+
if (info.method === "unauthenticated") {
|
|
6
|
+
return "Not logged in. Run `alpic login` or set ALPIC_API_KEY.";
|
|
7
|
+
}
|
|
8
|
+
if (info.method === "api_key") {
|
|
9
|
+
return `Authenticated via API key — Team: ${chalk.green(info.team?.name ?? "unknown")}`;
|
|
10
|
+
}
|
|
11
|
+
let label = chalk.cyan(info.email ?? "unknown");
|
|
12
|
+
if (info.name) {
|
|
13
|
+
label = `${chalk.green(info.name)} (${label})`;
|
|
14
|
+
}
|
|
15
|
+
return `Authenticated as ${label}`;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=whoami.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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": "0.0.0-dev.
|
|
3
|
+
"version": "0.0.0-dev.gfbf0e1a",
|
|
4
4
|
"description": "The command-line interface for Alpic",
|
|
5
5
|
"homepage": "https://alpic.ai",
|
|
6
6
|
"preferGlobal": true,
|
|
@@ -25,46 +25,43 @@
|
|
|
25
25
|
"author": "Alpic",
|
|
26
26
|
"license": "ISC",
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@clack/prompts": "^1.
|
|
29
|
-
"@oclif/core": "^4.11.
|
|
30
|
-
"@orpc/client": "^1.14.
|
|
31
|
-
"@orpc/contract": "^1.14.
|
|
32
|
-
"@orpc/openapi-client": "^1.14.
|
|
33
|
-
"@sentry/node": "^10.
|
|
28
|
+
"@clack/prompts": "^1.6.0",
|
|
29
|
+
"@oclif/core": "^4.11.11",
|
|
30
|
+
"@orpc/client": "^1.14.6",
|
|
31
|
+
"@orpc/contract": "^1.14.6",
|
|
32
|
+
"@orpc/openapi-client": "^1.14.6",
|
|
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",
|
|
37
37
|
"ci-info": "^4.4.0",
|
|
38
|
-
"env-paths": "^4.0.0",
|
|
39
38
|
"envfile": "^7.1.0",
|
|
40
39
|
"jwt-decode": "^4.0.0",
|
|
41
40
|
"open": "^11.0.0",
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"tar": "^7.5.15",
|
|
46
|
-
"undici": "^8.2.0",
|
|
41
|
+
"posthog-node": "^5.38.6",
|
|
42
|
+
"semver": "^7.8.5",
|
|
43
|
+
"undici": "^8.5.0",
|
|
47
44
|
"zod": "^4.4.3",
|
|
48
|
-
"@alpic-ai/api": "0.0.0-dev.
|
|
45
|
+
"@alpic-ai/api": "0.0.0-dev.gfbf0e1a",
|
|
46
|
+
"@alpic-ai/sdk": "0.0.0-dev.gfbf0e1a"
|
|
49
47
|
},
|
|
50
48
|
"devDependencies": {
|
|
51
|
-
"@orpc/openapi": "^1.14.
|
|
52
|
-
"@orpc/server": "^1.14.
|
|
53
|
-
"@orpc/zod": "^1.14.
|
|
49
|
+
"@orpc/openapi": "^1.14.6",
|
|
50
|
+
"@orpc/server": "^1.14.6",
|
|
51
|
+
"@orpc/zod": "^1.14.6",
|
|
54
52
|
"@total-typescript/tsconfig": "^1.0.4",
|
|
55
53
|
"@types/express": "^5.0.6",
|
|
56
|
-
"@types/node": "^25.
|
|
54
|
+
"@types/node": "^25.9.4",
|
|
57
55
|
"@types/semver": "^7.7.1",
|
|
58
|
-
"esbuild": "^0.28.0",
|
|
59
56
|
"express": "^5.2.1",
|
|
60
57
|
"jsdom": "^29.1.1",
|
|
61
58
|
"node-pty": "1.1.0",
|
|
62
|
-
"pipenet": "1.4.
|
|
59
|
+
"pipenet": "1.4.2",
|
|
63
60
|
"selfsigned": "^5.5.0",
|
|
64
61
|
"shx": "^0.4.0",
|
|
65
62
|
"ts-node": "^10.9.2",
|
|
66
63
|
"typescript": "^6.0.3",
|
|
67
|
-
"vitest": "^4.1.
|
|
64
|
+
"vitest": "^4.1.9"
|
|
68
65
|
},
|
|
69
66
|
"bin": {
|
|
70
67
|
"alpic": "bin/run.js"
|
|
@@ -79,8 +76,7 @@
|
|
|
79
76
|
}
|
|
80
77
|
},
|
|
81
78
|
"scripts": {
|
|
82
|
-
"build": "shx rm -rf dist && tsc
|
|
83
|
-
"build:assets": "shx cp -r src/lib/auth/oauth/server/assets dist/lib/auth/oauth/server/",
|
|
79
|
+
"build": "shx rm -rf dist && tsc",
|
|
84
80
|
"format": "biome check --write --error-on-warnings .",
|
|
85
81
|
"test": "pnpm run test:unit && pnpm run test:type && pnpm run test:format && pnpm run test:pack",
|
|
86
82
|
"test:unit": "vitest run",
|
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/auth/auth.d.ts
DELETED
package/dist/lib/auth/auth.js
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import * as p from "@clack/prompts";
|
|
2
|
-
import chalk from "chalk";
|
|
3
|
-
import open from "open";
|
|
4
|
-
import { globalStore } from "../global-store.js";
|
|
5
|
-
import { aliasMachineToUser } from "../telemetry.js";
|
|
6
|
-
import { getOAuthClient } from "./oauth/client.js";
|
|
7
|
-
import { getLoginPageUrl, listenToOAuthCallback } from "./oauth/server/index.js";
|
|
8
|
-
export async function getApiToken() {
|
|
9
|
-
const token = process.env.ALPIC_API_KEY ?? (await getOAuthClient().getValidAccessToken())?.access_token;
|
|
10
|
-
return token;
|
|
11
|
-
}
|
|
12
|
-
export async function isAuthenticated() {
|
|
13
|
-
const isAuthenticatedViaApiKey = hasApiKey();
|
|
14
|
-
if (isAuthenticatedViaApiKey) {
|
|
15
|
-
return true;
|
|
16
|
-
}
|
|
17
|
-
const isAuthenticatedViaOAuth = await hasValidAccessToken();
|
|
18
|
-
if (isAuthenticatedViaOAuth) {
|
|
19
|
-
return true;
|
|
20
|
-
}
|
|
21
|
-
return false;
|
|
22
|
-
}
|
|
23
|
-
function hasApiKey() {
|
|
24
|
-
return process.env.ALPIC_API_KEY !== undefined;
|
|
25
|
-
}
|
|
26
|
-
async function hasValidAccessToken() {
|
|
27
|
-
return (await getOAuthClient().getValidAccessToken()) !== null;
|
|
28
|
-
}
|
|
29
|
-
export async function oauthLogin(opts) {
|
|
30
|
-
const { authorizeUrl, state, nonce, codeVerifier } = await getOAuthClient().prepareOAuthConfig();
|
|
31
|
-
const loginUrl = getLoginPageUrl();
|
|
32
|
-
if (opts?.isPlain) {
|
|
33
|
-
console.log(`Opening browser to log in: ${loginUrl}`);
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
p.log.message(`Opening browser to log in…\n\nIf the browser does not open, copy this URL: ${chalk.cyan(loginUrl)}`);
|
|
37
|
-
}
|
|
38
|
-
if (!process.env.ALPIC_NO_OPEN) {
|
|
39
|
-
await open(loginUrl);
|
|
40
|
-
}
|
|
41
|
-
const storedToken = await listenToOAuthCallback({
|
|
42
|
-
state,
|
|
43
|
-
nonce,
|
|
44
|
-
codeVerifier,
|
|
45
|
-
authorizeUrl: authorizeUrl.toString(),
|
|
46
|
-
});
|
|
47
|
-
globalStore.saveCredentials(storedToken);
|
|
48
|
-
await aliasMachineToUser(storedToken.sub);
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=auth.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/lib/auth/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEjF,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,MAAM,cAAc,EAAE,CAAC,mBAAmB,EAAE,CAAC,EAAE,YAAY,CAAC;IAExG,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,wBAAwB,GAAG,SAAS,EAAE,CAAC;IAC7C,IAAI,wBAAwB,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,uBAAuB,GAAG,MAAM,mBAAmB,EAAE,CAAC;IAC5D,IAAI,uBAAuB,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC;AACjD,CAAC;AAED,KAAK,UAAU,mBAAmB;IAChC,OAAO,CAAC,MAAM,cAAc,EAAE,CAAC,mBAAmB,EAAE,CAAC,KAAK,IAAI,CAAC;AACjE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAA4B;IAC3D,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,MAAM,cAAc,EAAE,CAAC,kBAAkB,EAAE,CAAC;IAEjG,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;IACnC,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,8EAA8E,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACtH,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QAC/B,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,qBAAqB,CAAC;QAC9C,KAAK;QACL,KAAK;QACL,YAAY;QACZ,YAAY,EAAE,YAAY,CAAC,QAAQ,EAAE;KACtC,CAAC,CAAC;IAEH,WAAW,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;IAEzC,MAAM,kBAAkB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import * as openid from "openid-client";
|
|
2
|
-
import { type Credentials } from "../../global-store.js";
|
|
3
|
-
export declare class OAuthClient {
|
|
4
|
-
private config;
|
|
5
|
-
initialize: Promise<void>;
|
|
6
|
-
constructor();
|
|
7
|
-
getValidAccessToken(): Promise<Credentials | null>;
|
|
8
|
-
fetchUserInfo(credentials: Credentials): Promise<openid.UserInfoResponse>;
|
|
9
|
-
refreshAccessToken(credentials: Credentials): Promise<Credentials>;
|
|
10
|
-
prepareOAuthConfig(): Promise<{
|
|
11
|
-
authorizeUrl: URL;
|
|
12
|
-
state: string;
|
|
13
|
-
nonce: string;
|
|
14
|
-
codeVerifier: string;
|
|
15
|
-
}>;
|
|
16
|
-
exchangeAuthorizationCode({ url, codeVerifier, state, nonce, }: {
|
|
17
|
-
url: URL;
|
|
18
|
-
codeVerifier: string;
|
|
19
|
-
state: string;
|
|
20
|
-
nonce: string;
|
|
21
|
-
}): Promise<openid.TokenEndpointResponse & openid.TokenEndpointResponseHelpers>;
|
|
22
|
-
getExpiresAt(expires_in: number): number;
|
|
23
|
-
private loadConfig;
|
|
24
|
-
private fetchOAuthProtectedResourceConfig;
|
|
25
|
-
private getConfig;
|
|
26
|
-
private isAccessTokenExpired;
|
|
27
|
-
}
|
|
28
|
-
export declare function getOAuthClient(): OAuthClient;
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
import * as openid from "openid-client";
|
|
2
|
-
import { env } from "../../../env.js";
|
|
3
|
-
import { globalStore } from "../../global-store.js";
|
|
4
|
-
import { LOOPBACK_HOST, LOOPBACK_PORT } from "./constants.js";
|
|
5
|
-
const SCOPES = ["openid", "email", "profile"];
|
|
6
|
-
export class OAuthClient {
|
|
7
|
-
config = null;
|
|
8
|
-
initialize;
|
|
9
|
-
constructor() {
|
|
10
|
-
this.initialize = this.loadConfig();
|
|
11
|
-
}
|
|
12
|
-
async getValidAccessToken() {
|
|
13
|
-
await this.initialize;
|
|
14
|
-
const stored = globalStore.getCredentials();
|
|
15
|
-
if (!stored) {
|
|
16
|
-
return null;
|
|
17
|
-
}
|
|
18
|
-
if (this.isAccessTokenExpired(stored)) {
|
|
19
|
-
try {
|
|
20
|
-
return await this.refreshAccessToken(stored);
|
|
21
|
-
}
|
|
22
|
-
catch {
|
|
23
|
-
return null;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
return stored;
|
|
27
|
-
}
|
|
28
|
-
async fetchUserInfo(credentials) {
|
|
29
|
-
return openid.fetchUserInfo(await this.getConfig(), credentials.access_token, credentials.sub);
|
|
30
|
-
}
|
|
31
|
-
async refreshAccessToken(credentials) {
|
|
32
|
-
if (!credentials.refresh_token) {
|
|
33
|
-
throw new Error("No refresh token available");
|
|
34
|
-
}
|
|
35
|
-
const response = await openid.refreshTokenGrant(await this.getConfig(), credentials.refresh_token);
|
|
36
|
-
const refreshed = {
|
|
37
|
-
access_token: response.access_token,
|
|
38
|
-
refresh_token: response.refresh_token ?? credentials.refresh_token,
|
|
39
|
-
expires_at: this.getExpiresAt(response.expires_in ?? 0),
|
|
40
|
-
sub: credentials.sub,
|
|
41
|
-
};
|
|
42
|
-
globalStore.saveCredentials(refreshed);
|
|
43
|
-
return refreshed;
|
|
44
|
-
}
|
|
45
|
-
async prepareOAuthConfig() {
|
|
46
|
-
await this.initialize;
|
|
47
|
-
if (!this.config) {
|
|
48
|
-
throw new Error("Config not loaded");
|
|
49
|
-
}
|
|
50
|
-
const codeVerifier = openid.randomPKCECodeVerifier();
|
|
51
|
-
const codeChallenge = await openid.calculatePKCECodeChallenge(codeVerifier);
|
|
52
|
-
const state = openid.randomState();
|
|
53
|
-
const nonce = openid.randomNonce();
|
|
54
|
-
const callbackUrl = new URL(`http://${LOOPBACK_HOST}:${LOOPBACK_PORT}/callback`);
|
|
55
|
-
const authorizeUrl = openid.buildAuthorizationUrl(this.config, {
|
|
56
|
-
redirect_uri: callbackUrl.toString(),
|
|
57
|
-
scope: SCOPES.join(" "),
|
|
58
|
-
code_challenge: codeChallenge,
|
|
59
|
-
code_challenge_method: "S256",
|
|
60
|
-
state,
|
|
61
|
-
nonce,
|
|
62
|
-
});
|
|
63
|
-
return { authorizeUrl, state, nonce, codeVerifier };
|
|
64
|
-
}
|
|
65
|
-
async exchangeAuthorizationCode({ url, codeVerifier, state, nonce, }) {
|
|
66
|
-
return await openid.authorizationCodeGrant(await this.getConfig(), url, {
|
|
67
|
-
pkceCodeVerifier: codeVerifier,
|
|
68
|
-
expectedState: state,
|
|
69
|
-
expectedNonce: nonce,
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
getExpiresAt(expires_in) {
|
|
73
|
-
return expires_in !== undefined ? Math.floor(Date.now() / 1000) + expires_in : Date.now() / 1000 + 3600;
|
|
74
|
-
}
|
|
75
|
-
async loadConfig() {
|
|
76
|
-
const protectedResourceConfig = await this.fetchOAuthProtectedResourceConfig();
|
|
77
|
-
const issuer = protectedResourceConfig.authorization_servers[0];
|
|
78
|
-
if (!issuer) {
|
|
79
|
-
throw new Error("No authorization server in OAuth protected resource config");
|
|
80
|
-
}
|
|
81
|
-
const issuerUrl = new URL(issuer);
|
|
82
|
-
try {
|
|
83
|
-
this.config = await openid.discovery(issuerUrl, env.ALPIC_COGNITO_CLIENT_ID);
|
|
84
|
-
}
|
|
85
|
-
catch {
|
|
86
|
-
throw new Error("Failed to discover OAuth config");
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
async fetchOAuthProtectedResourceConfig() {
|
|
90
|
-
const baseUrl = env.ALPIC_API_BASE_URL;
|
|
91
|
-
const response = await fetch(`${baseUrl}/.well-known/oauth-protected-resource`);
|
|
92
|
-
if (!response.ok) {
|
|
93
|
-
throw new Error(`Failed to load service config from ${baseUrl} (${response.status} ${response.statusText})`);
|
|
94
|
-
}
|
|
95
|
-
return (await response.json());
|
|
96
|
-
}
|
|
97
|
-
async getConfig() {
|
|
98
|
-
await this.initialize;
|
|
99
|
-
if (!this.config) {
|
|
100
|
-
throw new Error("Config not loaded");
|
|
101
|
-
}
|
|
102
|
-
return this.config;
|
|
103
|
-
}
|
|
104
|
-
isAccessTokenExpired(credentials) {
|
|
105
|
-
const EXPIRATION_WINDOW_IN_SECONDS = 300;
|
|
106
|
-
return Date.now() / 1000 + EXPIRATION_WINDOW_IN_SECONDS >= credentials.expires_at;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
let _oAuthClient = null;
|
|
110
|
-
export function getOAuthClient() {
|
|
111
|
-
if (!_oAuthClient) {
|
|
112
|
-
_oAuthClient = new OAuthClient();
|
|
113
|
-
}
|
|
114
|
-
return _oAuthClient;
|
|
115
|
-
}
|
|
116
|
-
//# sourceMappingURL=client.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/lib/auth/oauth/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/lib/auth/oauth/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAC;AACzC,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC"}
|
|
Binary file
|