alpic 0.0.0-dev.gee3a480 → 0.0.0-dev.gee433d6

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.
Files changed (92) hide show
  1. package/dist/__tests__/alpic-command.test.js +8 -4
  2. package/dist/__tests__/alpic-command.test.js.map +1 -1
  3. package/dist/__tests__/auth.e2e.test.js +3 -1
  4. package/dist/__tests__/auth.e2e.test.js.map +1 -1
  5. package/dist/__tests__/environment-list.e2e.test.js +1 -1
  6. package/dist/__tests__/environment-list.e2e.test.js.map +1 -1
  7. package/dist/__tests__/mock-api.d.ts +6 -0
  8. package/dist/__tests__/mock-api.js +14 -8
  9. package/dist/__tests__/mock-api.js.map +1 -1
  10. package/dist/__tests__/playground/playground-example-prompt.e2e.test.js +6 -4
  11. package/dist/__tests__/playground/playground-example-prompt.e2e.test.js.map +1 -1
  12. package/dist/__tests__/tunnel.e2e.test.js +60 -0
  13. package/dist/__tests__/tunnel.e2e.test.js.map +1 -1
  14. package/dist/__tests__/utils.js +2 -2
  15. package/dist/__tests__/utils.js.map +1 -1
  16. package/dist/api.d.ts +1 -1
  17. package/dist/api.js +2 -21
  18. package/dist/api.js.map +1 -1
  19. package/dist/commands/deploy.js +66 -52
  20. package/dist/commands/deploy.js.map +1 -1
  21. package/dist/commands/git/connect.js +2 -2
  22. package/dist/commands/git/connect.js.map +1 -1
  23. package/dist/commands/git/disconnect.js +2 -2
  24. package/dist/commands/git/disconnect.js.map +1 -1
  25. package/dist/commands/link.js.map +1 -1
  26. package/dist/commands/login.js +7 -5
  27. package/dist/commands/login.js.map +1 -1
  28. package/dist/commands/logout.js +1 -1
  29. package/dist/commands/logout.js.map +1 -1
  30. package/dist/commands/playground/example-prompt/add.js +1 -1
  31. package/dist/commands/tunnel.js +27 -59
  32. package/dist/commands/tunnel.js.map +1 -1
  33. package/dist/commands/whoami.js +1 -1
  34. package/dist/commands/whoami.js.map +1 -1
  35. package/dist/lib/alpic-command.js +6 -5
  36. package/dist/lib/alpic-command.js.map +1 -1
  37. package/dist/lib/alpic-sdk.d.ts +2 -0
  38. package/dist/lib/alpic-sdk.js +9 -0
  39. package/dist/lib/alpic-sdk.js.map +1 -0
  40. package/dist/lib/audit.js +2 -2
  41. package/dist/lib/audit.js.map +1 -1
  42. package/dist/lib/deployment.d.ts +0 -21
  43. package/dist/lib/deployment.js +9 -58
  44. package/dist/lib/deployment.js.map +1 -1
  45. package/dist/lib/link.d.ts +1 -2
  46. package/dist/lib/link.js +9 -61
  47. package/dist/lib/link.js.map +1 -1
  48. package/dist/lib/playground.js +2 -2
  49. package/dist/lib/resolve.js +4 -4
  50. package/dist/lib/resolve.js.map +1 -1
  51. package/dist/lib/telemetry.js +1 -1
  52. package/dist/lib/telemetry.js.map +1 -1
  53. package/dist/lib/whoami.js +17 -0
  54. package/dist/lib/whoami.js.map +1 -0
  55. package/package.json +19 -23
  56. package/dist/lib/archive.d.ts +0 -7
  57. package/dist/lib/archive.js +0 -57
  58. package/dist/lib/archive.js.map +0 -1
  59. package/dist/lib/auth/auth.d.ts +0 -5
  60. package/dist/lib/auth/auth.js +0 -50
  61. package/dist/lib/auth/auth.js.map +0 -1
  62. package/dist/lib/auth/oauth/client.d.ts +0 -28
  63. package/dist/lib/auth/oauth/client.js +0 -116
  64. package/dist/lib/auth/oauth/client.js.map +0 -1
  65. package/dist/lib/auth/oauth/constants.d.ts +0 -2
  66. package/dist/lib/auth/oauth/constants.js +0 -3
  67. package/dist/lib/auth/oauth/constants.js.map +0 -1
  68. package/dist/lib/auth/oauth/server/assets/alpic-mountain.png +0 -0
  69. package/dist/lib/auth/oauth/server/assets/authorize.html +0 -234
  70. package/dist/lib/auth/oauth/server/assets/callback.html +0 -88
  71. package/dist/lib/auth/oauth/server/index.d.ts +0 -9
  72. package/dist/lib/auth/oauth/server/index.js +0 -128
  73. package/dist/lib/auth/oauth/server/index.js.map +0 -1
  74. package/dist/lib/auth/whoami.js +0 -47
  75. package/dist/lib/auth/whoami.js.map +0 -1
  76. package/dist/lib/config.d.ts +0 -12
  77. package/dist/lib/config.js +0 -32
  78. package/dist/lib/config.js.map +0 -1
  79. package/dist/lib/global-store.d.ts +0 -28
  80. package/dist/lib/global-store.js +0 -76
  81. package/dist/lib/global-store.js.map +0 -1
  82. package/dist/lib/upload.d.ts +0 -1
  83. package/dist/lib/upload.js +0 -13
  84. package/dist/lib/upload.js.map +0 -1
  85. package/dist/lib/vendor/pipenet.d.ts +0 -1
  86. package/dist/lib/vendor/pipenet.js +0 -15626
  87. package/dist/lib/vendor/pipenet.js.LEGAL.txt +0 -17
  88. package/dist/lib/vendor/pipenet.js.map +0 -7
  89. package/dist/types.d.ts +0 -8
  90. package/dist/types.js +0 -2
  91. package/dist/types.js.map +0 -1
  92. /package/dist/lib/{auth/whoami.d.ts → whoami.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/lib/telemetry.ts"],"names":[],"mappings":"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"}
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.gee3a480",
3
+ "version": "0.0.0-dev.gee433d6",
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.4.0",
29
- "@oclif/core": "^4.11.2",
30
- "@orpc/client": "^1.14.3",
31
- "@orpc/contract": "^1.14.3",
32
- "@orpc/openapi-client": "^1.14.3",
33
- "@sentry/node": "^10.53.0",
28
+ "@clack/prompts": "^1.7.0",
29
+ "@oclif/core": "^4.11.14",
30
+ "@orpc/client": "^1.14.6",
31
+ "@orpc/contract": "^1.14.6",
32
+ "@orpc/openapi-client": "^1.14.6",
33
+ "@sentry/node": "^10.63.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
- "openid-client": "^6.8.4",
43
- "posthog-node": "^5.33.7",
44
- "semver": "^7.8.0",
45
- "tar": "^7.5.15",
46
- "undici": "^8.2.0",
41
+ "posthog-node": "^5.39.4",
42
+ "semver": "^7.8.5",
43
+ "undici": "^6.27.0",
47
44
  "zod": "^4.4.3",
48
- "@alpic-ai/api": "0.0.0-dev.gee3a480"
45
+ "@alpic-ai/api": "0.0.0-dev.gee433d6",
46
+ "@alpic-ai/sdk": "0.0.0-dev.gee433d6"
49
47
  },
50
48
  "devDependencies": {
51
- "@orpc/openapi": "^1.14.3",
52
- "@orpc/server": "^1.14.3",
53
- "@orpc/zod": "^1.14.3",
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.7.0",
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.0",
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.6"
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 && pnpm run build:assets && node scripts/bundle-vendor.mjs",
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",
@@ -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
- }>;
@@ -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
@@ -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"}
@@ -1,5 +0,0 @@
1
- export declare function getApiToken(): Promise<string | undefined>;
2
- export declare function isAuthenticated(): Promise<boolean>;
3
- export declare function oauthLogin(opts?: {
4
- isPlain?: boolean;
5
- }): Promise<void>;
@@ -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,2 +0,0 @@
1
- export declare const LOOPBACK_HOST = "127.0.0.1";
2
- export declare const LOOPBACK_PORT = 38472;
@@ -1,3 +0,0 @@
1
- export const LOOPBACK_HOST = "127.0.0.1";
2
- export const LOOPBACK_PORT = 38472;
3
- //# sourceMappingURL=constants.js.map
@@ -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"}