@zuplo/cli 6.68.6 → 6.68.7
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/common/settings.d.ts +2 -0
- package/dist/common/settings.d.ts.map +1 -1
- package/dist/common/settings.js +6 -0
- package/dist/common/settings.js.map +1 -1
- package/dist/login/login.d.ts +2 -2
- package/dist/login/login.d.ts.map +1 -1
- package/dist/login/login.js +3 -2
- package/dist/login/login.js.map +1 -1
- package/package.json +4 -4
|
@@ -4,6 +4,8 @@ declare class Settings {
|
|
|
4
4
|
get POLL_INTERVAL(): number;
|
|
5
5
|
get MAX_PROVISIONING_RETRIES(): number;
|
|
6
6
|
get PROVISIONING_POLL_INTERVAL(): number;
|
|
7
|
+
get AUTH0_DOMAIN(): string;
|
|
8
|
+
get AUTH0_CLIENT_ID(): string;
|
|
7
9
|
}
|
|
8
10
|
declare const settings: Settings;
|
|
9
11
|
export default settings;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/common/settings.ts"],"names":[],"mappings":"AAGA,cAAM,QAAQ;IACZ,IAAI,4BAA4B,IAAI,MAAM,CAEzC;IAED,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,wBAAwB,IAAI,MAAM,CAErC;IAED,IAAI,0BAA0B,IAAI,MAAM,CAEvC;CACF;AAED,QAAA,MAAM,QAAQ,UAAiB,CAAC;AAChC,eAAe,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/common/settings.ts"],"names":[],"mappings":"AAGA,cAAM,QAAQ;IACZ,IAAI,4BAA4B,IAAI,MAAM,CAEzC;IAED,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,wBAAwB,IAAI,MAAM,CAErC;IAED,IAAI,0BAA0B,IAAI,MAAM,CAEvC;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,eAAe,IAAI,MAAM,CAE5B;CACF;AAED,QAAA,MAAM,QAAQ,UAAiB,CAAC;AAChC,eAAe,QAAQ,CAAC"}
|
package/dist/common/settings.js
CHANGED
|
@@ -14,6 +14,12 @@ class Settings {
|
|
|
14
14
|
get PROVISIONING_POLL_INTERVAL() {
|
|
15
15
|
return parseInt(process.env.PROVISIONING_INTERVAL ?? "15000", 10);
|
|
16
16
|
}
|
|
17
|
+
get AUTH0_DOMAIN() {
|
|
18
|
+
return process.env.AUTH0_DOMAIN ?? "auth.zuplo.com";
|
|
19
|
+
}
|
|
20
|
+
get AUTH0_CLIENT_ID() {
|
|
21
|
+
return process.env.AUTH0_CLIENT_ID ?? "mYLGcH7kB4P0pw0HAk6GH7raRwYhSlW4";
|
|
22
|
+
}
|
|
17
23
|
}
|
|
18
24
|
const settings = new Settings();
|
|
19
25
|
export default settings;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/common/settings.ts"],"names":[],"mappings":"AAGA,MAAM,QAAQ;IACZ,IAAI,4BAA4B;QAC9B,OAAO,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,uBAAuB,CAAC;IAC7E,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,KAAK,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,aAAa;QACf,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,wBAAwB;QAC1B,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,0BAA0B;QAC5B,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;IACpE,CAAC;CACF;AAED,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;AAChC,eAAe,QAAQ,CAAC","sourcesContent":["/** biome-ignore-all lint/style/useNamingConvention: Environment variables */\n/** biome-ignore-all lint/style/noProcessEnv: Environment variables */\n\nclass Settings {\n get ZUPLO_DEVELOPER_API_ENDPOINT(): string {\n return process.env.ZUPLO_DEVELOPER_API_ENDPOINT ?? \"https://dev.zuplo.com\";\n }\n\n get MAX_POLL_RETRIES(): number {\n return parseInt(process.env.MAX_POLL_RETRIES ?? \"250\", 10);\n }\n\n get POLL_INTERVAL(): number {\n return parseInt(process.env.POLL_INTERVAL ?? \"1000\", 10);\n }\n\n get MAX_PROVISIONING_RETRIES(): number {\n return parseInt(process.env.MAX_PROVISIONING_RETRIES ?? \"60\", 10);\n }\n\n get PROVISIONING_POLL_INTERVAL(): number {\n return parseInt(process.env.PROVISIONING_INTERVAL ?? \"15000\", 10);\n }\n}\n\nconst settings = new Settings();\nexport default settings;\n"]}
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/common/settings.ts"],"names":[],"mappings":"AAGA,MAAM,QAAQ;IACZ,IAAI,4BAA4B;QAC9B,OAAO,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,uBAAuB,CAAC;IAC7E,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,KAAK,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,aAAa;QACf,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,wBAAwB;QAC1B,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,0BAA0B;QAC5B,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,YAAY;QACd,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,gBAAgB,CAAC;IACtD,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,kCAAkC,CAAC;IAC3E,CAAC;CACF;AAED,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;AAChC,eAAe,QAAQ,CAAC","sourcesContent":["/** biome-ignore-all lint/style/useNamingConvention: Environment variables */\n/** biome-ignore-all lint/style/noProcessEnv: Environment variables */\n\nclass Settings {\n get ZUPLO_DEVELOPER_API_ENDPOINT(): string {\n return process.env.ZUPLO_DEVELOPER_API_ENDPOINT ?? \"https://dev.zuplo.com\";\n }\n\n get MAX_POLL_RETRIES(): number {\n return parseInt(process.env.MAX_POLL_RETRIES ?? \"250\", 10);\n }\n\n get POLL_INTERVAL(): number {\n return parseInt(process.env.POLL_INTERVAL ?? \"1000\", 10);\n }\n\n get MAX_PROVISIONING_RETRIES(): number {\n return parseInt(process.env.MAX_PROVISIONING_RETRIES ?? \"60\", 10);\n }\n\n get PROVISIONING_POLL_INTERVAL(): number {\n return parseInt(process.env.PROVISIONING_INTERVAL ?? \"15000\", 10);\n }\n\n get AUTH0_DOMAIN(): string {\n return process.env.AUTH0_DOMAIN ?? \"auth.zuplo.com\";\n }\n\n get AUTH0_CLIENT_ID(): string {\n return process.env.AUTH0_CLIENT_ID ?? \"mYLGcH7kB4P0pw0HAk6GH7raRwYhSlW4\";\n }\n}\n\nconst settings = new Settings();\nexport default settings;\n"]}
|
package/dist/login/login.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export declare const CLIENT_ID
|
|
2
|
-
export declare const AUTH0_DOMAIN
|
|
1
|
+
export declare const CLIENT_ID: string;
|
|
2
|
+
export declare const AUTH0_DOMAIN: string;
|
|
3
3
|
export declare const OAUTH_SCOPE = "offline_access";
|
|
4
4
|
export declare const OAUTH_AUDIENCE = "https://dev.zuplo.com/";
|
|
5
5
|
export declare function login(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/login/login.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/login/login.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,SAAS,QAA2B,CAAC;AAClD,eAAO,MAAM,YAAY,QAAwB,CAAC;AAClD,eAAO,MAAM,WAAW,mBAAmB,CAAC;AAC5C,eAAO,MAAM,cAAc,2BAA2B,CAAC;AAoMvD,wBAAsB,KAAK,kBAqD1B"}
|
package/dist/login/login.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import opn from "open";
|
|
2
2
|
import { logger } from "../common/logger.js";
|
|
3
3
|
import { printCriticalFailureToConsoleAndExit } from "../common/output.js";
|
|
4
|
+
import settings from "../common/settings.js";
|
|
4
5
|
import box from "../common/utils/box.js";
|
|
5
6
|
import { saveAuthState } from "./tokens.js";
|
|
6
|
-
export const CLIENT_ID =
|
|
7
|
-
export const AUTH0_DOMAIN =
|
|
7
|
+
export const CLIENT_ID = settings.AUTH0_CLIENT_ID;
|
|
8
|
+
export const AUTH0_DOMAIN = settings.AUTH0_DOMAIN;
|
|
8
9
|
export const OAUTH_SCOPE = "offline_access";
|
|
9
10
|
export const OAUTH_AUDIENCE = "https://dev.zuplo.com/";
|
|
10
11
|
class OAuthError extends Error {
|
package/dist/login/login.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/login/login.ts"],"names":[],"mappings":"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","sourcesContent":["import opn from \"open\";\nimport { logger } from \"../common/logger.js\";\nimport { printCriticalFailureToConsoleAndExit } from \"../common/output.js\";\nimport box from \"../common/utils/box.js\";\nimport { OAuthResponse, saveAuthState } from \"./tokens.js\";\n\nexport const CLIENT_ID = \"mYLGcH7kB4P0pw0HAk6GH7raRwYhSlW4\";\nexport const AUTH0_DOMAIN = \"auth.zuplo.com\";\nexport const OAUTH_SCOPE = \"offline_access\";\nexport const OAUTH_AUDIENCE = \"https://dev.zuplo.com/\";\n\ninterface DeviceCodeResponse {\n // biome-ignore lint/style/useNamingConvention: API field\n device_code: string;\n // biome-ignore lint/style/useNamingConvention: API field\n user_code: string;\n // biome-ignore lint/style/useNamingConvention: API field\n verification_uri: string;\n // biome-ignore lint/style/useNamingConvention: API field\n verification_uri_complete: string;\n // biome-ignore lint/style/useNamingConvention: API field\n expires_in: number;\n interval: number;\n}\n\ninterface DeviceTokenResponse extends OAuthResponse {\n error?: string;\n // biome-ignore lint/style/useNamingConvention: API field\n error_description?: string;\n}\n\nclass OAuthError extends Error {}\n\n/**\n * Initiates the device authorization flow\n */\nasync function initiateDeviceFlow(): Promise<DeviceCodeResponse> {\n const response = await fetch(`https://${AUTH0_DOMAIN}/oauth/device/code`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n },\n body: new URLSearchParams({\n // biome-ignore lint/style/useNamingConvention: External API property\n client_id: CLIENT_ID,\n scope: OAUTH_SCOPE,\n audience: OAUTH_AUDIENCE,\n }),\n });\n\n if (!response.ok) {\n // biome-ignore lint/suspicious/noExplicitAny: Migrated from ESLint\n let errorDetails: any = {};\n try {\n errorDetails = await response.json();\n } catch {\n // If response body is not JSON, continue with status text\n }\n\n const Sentry = await import(\"@sentry/node\");\n const errorMessage =\n errorDetails.error_description ||\n errorDetails.error ||\n response.statusText;\n\n Sentry.captureException(\n new Error(`Failed to initiate device flow: ${errorMessage}`),\n {\n tags: {\n // biome-ignore lint/style/useNamingConvention: External API property\n oauth_error: errorDetails.error || \"device_code_failed\",\n source: \"cli_device_flow_init\",\n // biome-ignore lint/style/useNamingConvention: External API property\n status_code: response.status,\n },\n extra: {\n // biome-ignore lint/style/useNamingConvention: External API property\n error_description: errorDetails.error_description,\n // biome-ignore lint/style/useNamingConvention: External API property\n error_details: errorDetails,\n status: response.status,\n // biome-ignore lint/style/useNamingConvention: External API property\n status_text: response.statusText,\n },\n }\n );\n\n throw new Error(`Failed to initiate device flow: ${errorMessage}`);\n }\n\n return response.json();\n}\n\n/**\n * Polls for the device token\n */\nasync function pollForToken(\n deviceCode: string,\n interval: number,\n expiresIn: number\n): Promise<OAuthResponse> {\n const startTime = Date.now();\n const expirationTime = startTime + expiresIn * 1000;\n\n while (Date.now() < expirationTime) {\n // Wait for the specified interval before polling\n await new Promise((resolve) => setTimeout(resolve, interval * 1000));\n\n const response = await fetch(`https://${AUTH0_DOMAIN}/oauth/token`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n },\n body: new URLSearchParams({\n // biome-ignore lint/style/useNamingConvention: External API property\n grant_type: \"urn:ietf:params:oauth:grant-type:device_code\",\n // biome-ignore lint/style/useNamingConvention: External API property\n device_code: deviceCode,\n // biome-ignore lint/style/useNamingConvention: External API property\n client_id: CLIENT_ID,\n }),\n });\n\n const result: DeviceTokenResponse = await response.json();\n\n // Check for specific device flow errors\n if (result.error) {\n if (result.error === \"authorization_pending\") {\n // User hasn't authorized yet, continue polling\n logger.debug(\"Authorization pending, continuing to poll...\");\n continue;\n } else if (result.error === \"slow_down\") {\n // Increase polling interval as requested by the server\n interval = interval + 5;\n logger.debug(`Slowing down polling interval to ${interval} seconds`);\n continue;\n } else if (result.error === \"expired_token\") {\n // Device code has expired\n const Sentry = await import(\"@sentry/node\");\n Sentry.captureException(\n new Error(\"Device code expired before user authorization\"),\n {\n tags: {\n // biome-ignore lint/style/useNamingConvention: External API property\n oauth_error: \"expired_token\",\n source: \"cli_device_flow_poll\",\n },\n }\n );\n throw new OAuthError(\"The device code has expired.\");\n } else if (result.error === \"access_denied\") {\n // User denied the authorization\n const Sentry = await import(\"@sentry/node\");\n Sentry.captureException(new Error(\"User denied authorization\"), {\n tags: {\n // biome-ignore lint/style/useNamingConvention: External API property\n oauth_error: \"access_denied\",\n source: \"cli_device_flow_poll\",\n },\n });\n throw new OAuthError(\"Authorization was denied.\");\n } else {\n // Unknown error\n const Sentry = await import(\"@sentry/node\");\n Sentry.captureException(\n new Error(`Device flow error: ${result.error}`),\n {\n tags: {\n // biome-ignore lint/style/useNamingConvention: External API property\n oauth_error: result.error,\n source: \"cli_device_flow_poll\",\n },\n extra: {\n // biome-ignore lint/style/useNamingConvention: External API property\n error_description: result.error_description,\n },\n }\n );\n throw new OAuthError(\n result.error_description || `OAuth error: ${result.error}`\n );\n }\n }\n\n // Success! We have the tokens\n if (result.access_token) {\n return result as OAuthResponse;\n }\n }\n\n // Timeout reached\n const Sentry = await import(\"@sentry/node\");\n Sentry.captureException(\n new Error(\"Device flow timed out waiting for user authorization\"),\n {\n tags: {\n // biome-ignore lint/style/useNamingConvention: External API property\n oauth_error: \"timeout\",\n source: \"cli_device_flow_poll\",\n },\n }\n );\n throw new OAuthError(\"Timed out waiting for authorization.\");\n}\n\nexport async function login() {\n try {\n // Step 1: Initiate device flow\n const deviceResponse = await initiateDeviceFlow();\n\n // Step 2: Print login message\n // biome-ignore lint/suspicious/noConsole: Migrated from ESLint\n console.log(\n box(\n ` To login, please visit:\n\n${deviceResponse.verification_uri_complete}\n\nAfter completing login in the browser you can close the tab.`,\n {\n borderColor: \"white\",\n }\n )\n );\n\n // Step 3: Try to open the browser automatically\n try {\n await opn(deviceResponse.verification_uri_complete);\n } catch {\n // Ignore\n }\n\n // Step 4: Poll for the token\n let tokenResponse: OAuthResponse;\n try {\n tokenResponse = await pollForToken(\n deviceResponse.device_code,\n deviceResponse.interval,\n deviceResponse.expires_in\n );\n } catch (err) {\n if (err instanceof OAuthError) {\n return printCriticalFailureToConsoleAndExit(\n `${err.message}. Please run the login command again.`\n );\n } else {\n return printCriticalFailureToConsoleAndExit(\n \"An error occurred while attempting to authenticate. Please run the login command again. If the problem persists, contact support@zuplo.com.\"\n );\n }\n }\n\n // Step 5: Save the authentication state\n await saveAuthState(tokenResponse);\n } catch (error) {\n logger.error(error, \"Login failed\");\n throw error;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/login/login.ts"],"names":[],"mappings":"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","sourcesContent":["import opn from \"open\";\nimport { logger } from \"../common/logger.js\";\nimport { printCriticalFailureToConsoleAndExit } from \"../common/output.js\";\nimport settings from \"../common/settings.js\";\nimport box from \"../common/utils/box.js\";\nimport { OAuthResponse, saveAuthState } from \"./tokens.js\";\n\nexport const CLIENT_ID = settings.AUTH0_CLIENT_ID;\nexport const AUTH0_DOMAIN = settings.AUTH0_DOMAIN;\nexport const OAUTH_SCOPE = \"offline_access\";\nexport const OAUTH_AUDIENCE = \"https://dev.zuplo.com/\";\n\ninterface DeviceCodeResponse {\n // biome-ignore lint/style/useNamingConvention: API field\n device_code: string;\n // biome-ignore lint/style/useNamingConvention: API field\n user_code: string;\n // biome-ignore lint/style/useNamingConvention: API field\n verification_uri: string;\n // biome-ignore lint/style/useNamingConvention: API field\n verification_uri_complete: string;\n // biome-ignore lint/style/useNamingConvention: API field\n expires_in: number;\n interval: number;\n}\n\ninterface DeviceTokenResponse extends OAuthResponse {\n error?: string;\n // biome-ignore lint/style/useNamingConvention: API field\n error_description?: string;\n}\n\nclass OAuthError extends Error {}\n\n/**\n * Initiates the device authorization flow\n */\nasync function initiateDeviceFlow(): Promise<DeviceCodeResponse> {\n const response = await fetch(`https://${AUTH0_DOMAIN}/oauth/device/code`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n },\n body: new URLSearchParams({\n // biome-ignore lint/style/useNamingConvention: External API property\n client_id: CLIENT_ID,\n scope: OAUTH_SCOPE,\n audience: OAUTH_AUDIENCE,\n }),\n });\n\n if (!response.ok) {\n // biome-ignore lint/suspicious/noExplicitAny: Migrated from ESLint\n let errorDetails: any = {};\n try {\n errorDetails = await response.json();\n } catch {\n // If response body is not JSON, continue with status text\n }\n\n const Sentry = await import(\"@sentry/node\");\n const errorMessage =\n errorDetails.error_description ||\n errorDetails.error ||\n response.statusText;\n\n Sentry.captureException(\n new Error(`Failed to initiate device flow: ${errorMessage}`),\n {\n tags: {\n // biome-ignore lint/style/useNamingConvention: External API property\n oauth_error: errorDetails.error || \"device_code_failed\",\n source: \"cli_device_flow_init\",\n // biome-ignore lint/style/useNamingConvention: External API property\n status_code: response.status,\n },\n extra: {\n // biome-ignore lint/style/useNamingConvention: External API property\n error_description: errorDetails.error_description,\n // biome-ignore lint/style/useNamingConvention: External API property\n error_details: errorDetails,\n status: response.status,\n // biome-ignore lint/style/useNamingConvention: External API property\n status_text: response.statusText,\n },\n }\n );\n\n throw new Error(`Failed to initiate device flow: ${errorMessage}`);\n }\n\n return response.json();\n}\n\n/**\n * Polls for the device token\n */\nasync function pollForToken(\n deviceCode: string,\n interval: number,\n expiresIn: number\n): Promise<OAuthResponse> {\n const startTime = Date.now();\n const expirationTime = startTime + expiresIn * 1000;\n\n while (Date.now() < expirationTime) {\n // Wait for the specified interval before polling\n await new Promise((resolve) => setTimeout(resolve, interval * 1000));\n\n const response = await fetch(`https://${AUTH0_DOMAIN}/oauth/token`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n },\n body: new URLSearchParams({\n // biome-ignore lint/style/useNamingConvention: External API property\n grant_type: \"urn:ietf:params:oauth:grant-type:device_code\",\n // biome-ignore lint/style/useNamingConvention: External API property\n device_code: deviceCode,\n // biome-ignore lint/style/useNamingConvention: External API property\n client_id: CLIENT_ID,\n }),\n });\n\n const result: DeviceTokenResponse = await response.json();\n\n // Check for specific device flow errors\n if (result.error) {\n if (result.error === \"authorization_pending\") {\n // User hasn't authorized yet, continue polling\n logger.debug(\"Authorization pending, continuing to poll...\");\n continue;\n } else if (result.error === \"slow_down\") {\n // Increase polling interval as requested by the server\n interval = interval + 5;\n logger.debug(`Slowing down polling interval to ${interval} seconds`);\n continue;\n } else if (result.error === \"expired_token\") {\n // Device code has expired\n const Sentry = await import(\"@sentry/node\");\n Sentry.captureException(\n new Error(\"Device code expired before user authorization\"),\n {\n tags: {\n // biome-ignore lint/style/useNamingConvention: External API property\n oauth_error: \"expired_token\",\n source: \"cli_device_flow_poll\",\n },\n }\n );\n throw new OAuthError(\"The device code has expired.\");\n } else if (result.error === \"access_denied\") {\n // User denied the authorization\n const Sentry = await import(\"@sentry/node\");\n Sentry.captureException(new Error(\"User denied authorization\"), {\n tags: {\n // biome-ignore lint/style/useNamingConvention: External API property\n oauth_error: \"access_denied\",\n source: \"cli_device_flow_poll\",\n },\n });\n throw new OAuthError(\"Authorization was denied.\");\n } else {\n // Unknown error\n const Sentry = await import(\"@sentry/node\");\n Sentry.captureException(\n new Error(`Device flow error: ${result.error}`),\n {\n tags: {\n // biome-ignore lint/style/useNamingConvention: External API property\n oauth_error: result.error,\n source: \"cli_device_flow_poll\",\n },\n extra: {\n // biome-ignore lint/style/useNamingConvention: External API property\n error_description: result.error_description,\n },\n }\n );\n throw new OAuthError(\n result.error_description || `OAuth error: ${result.error}`\n );\n }\n }\n\n // Success! We have the tokens\n if (result.access_token) {\n return result as OAuthResponse;\n }\n }\n\n // Timeout reached\n const Sentry = await import(\"@sentry/node\");\n Sentry.captureException(\n new Error(\"Device flow timed out waiting for user authorization\"),\n {\n tags: {\n // biome-ignore lint/style/useNamingConvention: External API property\n oauth_error: \"timeout\",\n source: \"cli_device_flow_poll\",\n },\n }\n );\n throw new OAuthError(\"Timed out waiting for authorization.\");\n}\n\nexport async function login() {\n try {\n // Step 1: Initiate device flow\n const deviceResponse = await initiateDeviceFlow();\n\n // Step 2: Print login message\n // biome-ignore lint/suspicious/noConsole: Migrated from ESLint\n console.log(\n box(\n ` To login, please visit:\n\n${deviceResponse.verification_uri_complete}\n\nAfter completing login in the browser you can close the tab.`,\n {\n borderColor: \"white\",\n }\n )\n );\n\n // Step 3: Try to open the browser automatically\n try {\n await opn(deviceResponse.verification_uri_complete);\n } catch {\n // Ignore\n }\n\n // Step 4: Poll for the token\n let tokenResponse: OAuthResponse;\n try {\n tokenResponse = await pollForToken(\n deviceResponse.device_code,\n deviceResponse.interval,\n deviceResponse.expires_in\n );\n } catch (err) {\n if (err instanceof OAuthError) {\n return printCriticalFailureToConsoleAndExit(\n `${err.message}. Please run the login command again.`\n );\n } else {\n return printCriticalFailureToConsoleAndExit(\n \"An error occurred while attempting to authenticate. Please run the login command again. If the problem persists, contact support@zuplo.com.\"\n );\n }\n }\n\n // Step 5: Save the authentication state\n await saveAuthState(tokenResponse);\n } catch (error) {\n logger.error(error, \"Login failed\");\n throw error;\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zuplo/cli",
|
|
3
|
-
"version": "6.68.
|
|
3
|
+
"version": "6.68.7",
|
|
4
4
|
"repository": "https://github.com/zuplo/zuplo",
|
|
5
5
|
"author": "Zuplo, Inc.",
|
|
6
6
|
"type": "module",
|
|
@@ -29,10 +29,10 @@
|
|
|
29
29
|
"@opentelemetry/api": "1.9.0",
|
|
30
30
|
"@sentry/node": "9.22.0",
|
|
31
31
|
"@swc/core": "1.10.18",
|
|
32
|
-
"@zuplo/core": "6.68.
|
|
32
|
+
"@zuplo/core": "6.68.7",
|
|
33
33
|
"@zuplo/editor": "1.0.20821740935",
|
|
34
|
-
"@zuplo/openapi-tools": "6.68.
|
|
35
|
-
"@zuplo/runtime": "6.68.
|
|
34
|
+
"@zuplo/openapi-tools": "6.68.7",
|
|
35
|
+
"@zuplo/runtime": "6.68.7",
|
|
36
36
|
"as-table": "1.0.55",
|
|
37
37
|
"chalk": "5.4.1",
|
|
38
38
|
"chokidar": "3.5.3",
|