@arizeai/phoenix-cli 1.9.0 → 1.9.1
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 +54 -7
- package/build/authFetch.d.ts +24 -0
- package/build/authFetch.d.ts.map +1 -0
- package/build/authFetch.js +44 -0
- package/build/authFetch.js.map +1 -0
- package/build/client.d.ts.map +1 -1
- package/build/client.js +5 -1
- package/build/client.js.map +1 -1
- package/build/commands/api.d.ts.map +1 -1
- package/build/commands/api.js +12 -1
- package/build/commands/api.js.map +1 -1
- package/build/commands/auth.d.ts +4 -1
- package/build/commands/auth.d.ts.map +1 -1
- package/build/commands/auth.js +326 -13
- package/build/commands/auth.js.map +1 -1
- package/build/commands/formatSetup.d.ts +6 -0
- package/build/commands/formatSetup.d.ts.map +1 -1
- package/build/commands/formatSetup.js +10 -1
- package/build/commands/formatSetup.js.map +1 -1
- package/build/commands/setup.d.ts.map +1 -1
- package/build/commands/setup.js +4 -0
- package/build/commands/setup.js.map +1 -1
- package/build/config.d.ts +15 -0
- package/build/config.d.ts.map +1 -1
- package/build/config.js +54 -7
- package/build/config.js.map +1 -1
- package/build/exitCodes.d.ts +6 -0
- package/build/exitCodes.d.ts.map +1 -1
- package/build/exitCodes.js +18 -0
- package/build/exitCodes.js.map +1 -1
- package/build/index.js +2 -1
- package/build/index.js.map +1 -1
- package/build/oauth.d.ts +138 -0
- package/build/oauth.d.ts.map +1 -0
- package/build/oauth.js +465 -0
- package/build/oauth.js.map +1 -0
- package/build/oauthCallbackPage.d.ts +9 -0
- package/build/oauthCallbackPage.d.ts.map +1 -0
- package/build/oauthCallbackPage.js +111 -0
- package/build/oauthCallbackPage.js.map +1 -0
- package/build/pxi/client.d.ts.map +1 -1
- package/build/pxi/client.js +11 -2
- package/build/pxi/client.js.map +1 -1
- package/build/settings.d.ts +19 -0
- package/build/settings.d.ts.map +1 -1
- package/build/settings.js +21 -0
- package/build/settings.js.map +1 -1
- package/build/setup/agents/registry.d.ts +57 -0
- package/build/setup/agents/registry.d.ts.map +1 -1
- package/build/setup/agents/registry.js +45 -0
- package/build/setup/agents/registry.js.map +1 -1
- package/build/setup/copy.d.ts +32 -0
- package/build/setup/copy.d.ts.map +1 -1
- package/build/setup/copy.js +44 -0
- package/build/setup/copy.js.map +1 -1
- package/build/setup/deps/buildDefaultDeps.d.ts.map +1 -1
- package/build/setup/deps/buildDefaultDeps.js +2 -0
- package/build/setup/deps/buildDefaultDeps.js.map +1 -1
- package/build/setup/deps/index.d.ts +4 -0
- package/build/setup/deps/index.d.ts.map +1 -1
- package/build/setup/deps/index.js.map +1 -1
- package/build/setup/deps/oauthLogin.d.ts +64 -0
- package/build/setup/deps/oauthLogin.d.ts.map +1 -0
- package/build/setup/deps/oauthLogin.js +82 -0
- package/build/setup/deps/oauthLogin.js.map +1 -0
- package/build/setup/deps/prompter.d.ts +7 -0
- package/build/setup/deps/prompter.d.ts.map +1 -1
- package/build/setup/options.d.ts +11 -0
- package/build/setup/options.d.ts.map +1 -1
- package/build/setup/options.js +1 -0
- package/build/setup/options.js.map +1 -1
- package/build/setup/prompts/instrumentationPrompt.d.ts +7 -1
- package/build/setup/prompts/instrumentationPrompt.d.ts.map +1 -1
- package/build/setup/prompts/instrumentationPrompt.js +6 -2
- package/build/setup/prompts/instrumentationPrompt.js.map +1 -1
- package/build/setup/runSetup.d.ts +3 -0
- package/build/setup/runSetup.d.ts.map +1 -1
- package/build/setup/runSetup.js +13 -12
- package/build/setup/runSetup.js.map +1 -1
- package/build/setup/steps/establishConnection.d.ts +6 -3
- package/build/setup/steps/establishConnection.d.ts.map +1 -1
- package/build/setup/steps/establishConnection.js +120 -11
- package/build/setup/steps/establishConnection.js.map +1 -1
- package/build/setup/steps/instrumentApp.d.ts +23 -4
- package/build/setup/steps/instrumentApp.d.ts.map +1 -1
- package/build/setup/steps/instrumentApp.js +89 -41
- package/build/setup/steps/instrumentApp.js.map +1 -1
- package/build/setup/steps/offerDocsMcp.d.ts +48 -0
- package/build/setup/steps/offerDocsMcp.d.ts.map +1 -0
- package/build/setup/steps/offerDocsMcp.js +133 -0
- package/build/setup/steps/offerDocsMcp.js.map +1 -0
- package/build/setup/ui/clackPrompter.d.ts.map +1 -1
- package/build/setup/ui/clackPrompter.js +15 -0
- package/build/setup/ui/clackPrompter.js.map +1 -1
- package/build/setup/util/mcpConfig.d.ts +31 -0
- package/build/setup/util/mcpConfig.d.ts.map +1 -0
- package/build/setup/util/mcpConfig.js +62 -0
- package/build/setup/util/mcpConfig.js.map +1 -0
- package/package.json +3 -3
package/build/config.js
CHANGED
|
@@ -36,8 +36,6 @@ function loadConfigFromEnvironmentWithSources() {
|
|
|
36
36
|
if (headers) {
|
|
37
37
|
config.headers = headers;
|
|
38
38
|
}
|
|
39
|
-
// Resolve the project from PHOENIX_PROJECT (canonical) or the
|
|
40
|
-
// PHOENIX_PROJECT_NAME alias.
|
|
41
39
|
const project = getProjectFromEnvironment();
|
|
42
40
|
if (project) {
|
|
43
41
|
config.project = project;
|
|
@@ -97,29 +95,32 @@ export function loadConfigFromProfile(profileName) {
|
|
|
97
95
|
if (!active) {
|
|
98
96
|
throw new ProfileResolutionError(`Profile "${profileName}" (from --profile) does not exist. Run \`px profile list\` to see available profiles.`);
|
|
99
97
|
}
|
|
100
|
-
return profileEntryToConfig(active.entry);
|
|
98
|
+
return profileEntryToConfig(active.entry, active.name);
|
|
101
99
|
}
|
|
102
100
|
const active = getStoredActiveProfile(settingsFile);
|
|
103
101
|
if (!active) {
|
|
104
102
|
return {};
|
|
105
103
|
}
|
|
106
|
-
return profileEntryToConfig(active.entry);
|
|
104
|
+
return profileEntryToConfig(active.entry, active.name);
|
|
107
105
|
}
|
|
108
106
|
/**
|
|
109
107
|
* Project a `ProfileEntry` onto the `PhoenixConfig` shape. Skipped fields
|
|
110
108
|
* (e.g. an apiKey set on a different profile) are simply omitted so the
|
|
111
109
|
* downstream merge in `resolveConfig` can layer env vars / defaults on top.
|
|
112
110
|
*/
|
|
113
|
-
function profileEntryToConfig(entry) {
|
|
111
|
+
function profileEntryToConfig(entry, profileName) {
|
|
114
112
|
const config = {};
|
|
115
113
|
if (entry.endpoint)
|
|
116
114
|
config.endpoint = entry.endpoint;
|
|
117
115
|
if (entry.apiKey)
|
|
118
116
|
config.apiKey = entry.apiKey;
|
|
117
|
+
if (entry.oauthTokens)
|
|
118
|
+
config.oauthTokens = entry.oauthTokens;
|
|
119
119
|
if (entry.project)
|
|
120
120
|
config.project = entry.project;
|
|
121
121
|
if (entry.headers)
|
|
122
122
|
config.headers = entry.headers;
|
|
123
|
+
config.profileName = profileName;
|
|
123
124
|
return config;
|
|
124
125
|
}
|
|
125
126
|
/**
|
|
@@ -138,18 +139,45 @@ export function resolveConfig({ cliOptions, profileName, }) {
|
|
|
138
139
|
// Commander (and other callers) may include keys with `undefined` values.
|
|
139
140
|
// If we spread those over envConfig we would accidentally clobber env vars.
|
|
140
141
|
const definedCliOptions = Object.fromEntries(Object.entries(cliOptions).filter(([, value]) => value !== undefined));
|
|
142
|
+
// OAuth tokens are only valid against the endpoint that issued them. When
|
|
143
|
+
// --endpoint or PHOENIX_HOST points the command at a different server, drop
|
|
144
|
+
// the tokens so they are never sent to — or refreshed against — a host that
|
|
145
|
+
// did not issue them.
|
|
146
|
+
const resolvedEndpoint = definedCliOptions.endpoint ??
|
|
147
|
+
processEnvConfig.endpoint ??
|
|
148
|
+
profileConfig.endpoint ??
|
|
149
|
+
envFileConfig.endpoint ??
|
|
150
|
+
builtInDefaults.endpoint;
|
|
151
|
+
const boundProfileConfig = profileConfig.oauthTokens && profileConfig.endpoint !== resolvedEndpoint
|
|
152
|
+
? { ...profileConfig, oauthTokens: undefined }
|
|
153
|
+
: profileConfig;
|
|
154
|
+
const credentialSource = getCredentialSource({
|
|
155
|
+
cliOptions: definedCliOptions,
|
|
156
|
+
processEnvConfig,
|
|
157
|
+
envFileConfig,
|
|
158
|
+
profileConfig: boundProfileConfig,
|
|
159
|
+
});
|
|
160
|
+
const oauthTokens = credentialSource === "oauth" ? boundProfileConfig.oauthTokens : undefined;
|
|
141
161
|
const config = {
|
|
142
162
|
...builtInDefaults,
|
|
143
163
|
...envFileConfig,
|
|
144
164
|
...profileConfig,
|
|
145
165
|
...processEnvConfig,
|
|
146
166
|
...definedCliOptions,
|
|
167
|
+
credentialSource,
|
|
168
|
+
oauthTokens,
|
|
147
169
|
};
|
|
170
|
+
// Profile OAuth outranks `.env.phoenix` API keys. The spread above can leave
|
|
171
|
+
// a file-tier apiKey in place when the profile only has oauthTokens — clear
|
|
172
|
+
// it so clients do not prefer the lower-tier key.
|
|
173
|
+
if (credentialSource === "oauth") {
|
|
174
|
+
config.apiKey = undefined;
|
|
175
|
+
}
|
|
148
176
|
const usesFileEndpoint = endpointSource?.kind === "env-file" &&
|
|
149
177
|
definedCliOptions.endpoint === undefined &&
|
|
150
178
|
processEnvConfig.endpoint === undefined &&
|
|
151
179
|
profileConfig.endpoint === undefined;
|
|
152
|
-
const
|
|
180
|
+
const warningCredentialSource = definedCliOptions.apiKey !== undefined ||
|
|
153
181
|
definedCliOptions.headers !== undefined
|
|
154
182
|
? "CLI options"
|
|
155
183
|
: processEnvConfig.apiKey !== undefined ||
|
|
@@ -161,13 +189,32 @@ export function resolveConfig({ cliOptions, profileName, }) {
|
|
|
161
189
|
: undefined;
|
|
162
190
|
if (usesFileEndpoint) {
|
|
163
191
|
warnIfUsingFileEndpointWithCredentials({
|
|
164
|
-
credentialSource,
|
|
192
|
+
credentialSource: warningCredentialSource,
|
|
165
193
|
endpointSource,
|
|
166
194
|
endpointVariable: ENV_PHOENIX_HOST,
|
|
167
195
|
});
|
|
168
196
|
}
|
|
169
197
|
return config;
|
|
170
198
|
}
|
|
199
|
+
function getCredentialSource({ cliOptions, processEnvConfig, envFileConfig, profileConfig, }) {
|
|
200
|
+
if (cliOptions.apiKey) {
|
|
201
|
+
return "flag";
|
|
202
|
+
}
|
|
203
|
+
// Process env outranks the profile; `.env.phoenix` does not.
|
|
204
|
+
if (processEnvConfig.apiKey) {
|
|
205
|
+
return "env";
|
|
206
|
+
}
|
|
207
|
+
if (profileConfig.apiKey) {
|
|
208
|
+
return "profile-key";
|
|
209
|
+
}
|
|
210
|
+
if (profileConfig.oauthTokens) {
|
|
211
|
+
return "oauth";
|
|
212
|
+
}
|
|
213
|
+
if (envFileConfig.apiKey) {
|
|
214
|
+
return "env";
|
|
215
|
+
}
|
|
216
|
+
return "none";
|
|
217
|
+
}
|
|
171
218
|
/**
|
|
172
219
|
* Validate that required configuration is present.
|
|
173
220
|
*/
|
package/build/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,wBAAwB,EAExB,uCAAuC,EACvC,yBAAyB,EACzB,+BAA+B,EAC/B,sCAAsC,GACvC,MAAM,yBAAyB,CAAC;AAEjC,OAAO,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/build/exitCodes.d.ts
CHANGED
|
@@ -32,6 +32,12 @@ export type ExitCode = (typeof ExitCode)[keyof typeof ExitCode];
|
|
|
32
32
|
export declare class InvalidArgumentError extends Error {
|
|
33
33
|
constructor(message: string);
|
|
34
34
|
}
|
|
35
|
+
export declare class AuthRequiredError extends Error {
|
|
36
|
+
constructor(message: string);
|
|
37
|
+
}
|
|
38
|
+
export declare class NetworkError extends Error {
|
|
39
|
+
constructor(message: string);
|
|
40
|
+
}
|
|
35
41
|
/**
|
|
36
42
|
* Infer a semantic exit code from an unknown error value.
|
|
37
43
|
*
|
package/build/exitCodes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exitCodes.d.ts","sourceRoot":"","sources":["../src/exitCodes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,QAAQ;IACnB,qCAAqC;aACrC,OAAO,EAAE,CAAC;IACV,sCAAsC;aACtC,OAAO,EAAE,CAAC;IACV,mCAAmC;aACnC,SAAS,EAAE,CAAC;IACZ,6DAA6D;aAC7D,gBAAgB,EAAE,CAAC;IACnB,oDAAoD;aACpD,aAAa,EAAE,CAAC;IAChB,4DAA4D;aAC5D,aAAa,EAAE,CAAC;CACR,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAEhE,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,
|
|
1
|
+
{"version":3,"file":"exitCodes.d.ts","sourceRoot":"","sources":["../src/exitCodes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,QAAQ;IACnB,qCAAqC;aACrC,OAAO,EAAE,CAAC;IACV,sCAAsC;aACtC,OAAO,EAAE,CAAC;IACV,mCAAmC;aACnC,SAAS,EAAE,CAAC;IACZ,6DAA6D;aAC7D,gBAAgB,EAAE,CAAC;IACnB,oDAAoD;aACpD,aAAa,EAAE,CAAC;IAChB,4DAA4D;aAC5D,aAAa,EAAE,CAAC;CACR,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAEhE,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED,qBAAa,YAAa,SAAQ,KAAK;IACrC,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAmB5D"}
|
package/build/exitCodes.js
CHANGED
|
@@ -34,6 +34,18 @@ export class InvalidArgumentError extends Error {
|
|
|
34
34
|
this.name = "InvalidArgumentError";
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
+
export class AuthRequiredError extends Error {
|
|
38
|
+
constructor(message) {
|
|
39
|
+
super(message);
|
|
40
|
+
this.name = "AuthRequiredError";
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
export class NetworkError extends Error {
|
|
44
|
+
constructor(message) {
|
|
45
|
+
super(message);
|
|
46
|
+
this.name = "NetworkError";
|
|
47
|
+
}
|
|
48
|
+
}
|
|
37
49
|
/**
|
|
38
50
|
* Infer a semantic exit code from an unknown error value.
|
|
39
51
|
*
|
|
@@ -47,6 +59,12 @@ export function getExitCodeForError(error) {
|
|
|
47
59
|
if (error instanceof InvalidArgumentError) {
|
|
48
60
|
return ExitCode.INVALID_ARGUMENT;
|
|
49
61
|
}
|
|
62
|
+
if (error instanceof AuthRequiredError) {
|
|
63
|
+
return ExitCode.AUTH_REQUIRED;
|
|
64
|
+
}
|
|
65
|
+
if (error instanceof NetworkError) {
|
|
66
|
+
return ExitCode.NETWORK_ERROR;
|
|
67
|
+
}
|
|
50
68
|
// TypeError is thrown by the Fetch API for network-level failures
|
|
51
69
|
// (e.g. ECONNREFUSED, ETIMEDOUT, DNS errors).
|
|
52
70
|
if (error instanceof TypeError) {
|
package/build/exitCodes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exitCodes.js","sourceRoot":"","sources":["../src/exitCodes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,qCAAqC;IACrC,OAAO,EAAE,CAAC;IACV,sCAAsC;IACtC,OAAO,EAAE,CAAC;IACV,mCAAmC;IACnC,SAAS,EAAE,CAAC;IACZ,6DAA6D;IAC7D,gBAAgB,EAAE,CAAC;IACnB,oDAAoD;IACpD,aAAa,EAAE,CAAC;IAChB,4DAA4D;IAC5D,aAAa,EAAE,CAAC;CACR,CAAC;AAIX,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,IAAI,KAAK,YAAY,oBAAoB,EAAE,CAAC;QAC1C,OAAO,QAAQ,CAAC,gBAAgB,CAAC;IACnC,CAAC;IAED,kEAAkE;IAClE,8CAA8C;IAC9C,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;QAC/B,OAAO,QAAQ,CAAC,aAAa,CAAC;IAChC,CAAC;IACD,OAAO,QAAQ,CAAC,OAAO,CAAC;AAC1B,CAAC"}
|
|
1
|
+
{"version":3,"file":"exitCodes.js","sourceRoot":"","sources":["../src/exitCodes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,qCAAqC;IACrC,OAAO,EAAE,CAAC;IACV,sCAAsC;IACtC,OAAO,EAAE,CAAC;IACV,mCAAmC;IACnC,SAAS,EAAE,CAAC;IACZ,6DAA6D;IAC7D,gBAAgB,EAAE,CAAC;IACnB,oDAAoD;IACpD,aAAa,EAAE,CAAC;IAChB,4DAA4D;IAC5D,aAAa,EAAE,CAAC;CACR,CAAC;AAIX,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC1C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,KAAK;IACrC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,IAAI,KAAK,YAAY,oBAAoB,EAAE,CAAC;QAC1C,OAAO,QAAQ,CAAC,gBAAgB,CAAC;IACnC,CAAC;IAED,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;QACvC,OAAO,QAAQ,CAAC,aAAa,CAAC;IAChC,CAAC;IAED,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;QAClC,OAAO,QAAQ,CAAC,aAAa,CAAC;IAChC,CAAC;IAED,kEAAkE;IAClE,8CAA8C;IAC9C,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;QAC/B,OAAO,QAAQ,CAAC,aAAa,CAAC;IAChC,CAAC;IACD,OAAO,QAAQ,CAAC,OAAO,CAAC;AAC1B,CAAC"}
|
package/build/index.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
// Phoenix CLI Entry Point
|
|
3
3
|
import { main } from "./cli.js";
|
|
4
|
+
import { getExitCodeForError } from "./exitCodes.js";
|
|
4
5
|
import { writeError } from "./io.js";
|
|
5
6
|
// Run CLI when executed directly
|
|
6
7
|
void main().catch((error) => {
|
|
7
8
|
writeError({
|
|
8
9
|
message: `Error: ${error instanceof Error ? error.message : String(error)}`,
|
|
9
10
|
});
|
|
10
|
-
process.exit(
|
|
11
|
+
process.exit(getExitCodeForError(error));
|
|
11
12
|
});
|
|
12
13
|
//# sourceMappingURL=index.js.map
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,0BAA0B;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElC,iCAAiC;AACjC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAC1B,UAAU,CAAC;QACT,OAAO,EAAE,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;KAC5E,CAAC,CAAC;IACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,0BAA0B;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElC,iCAAiC;AACjC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAC1B,UAAU,CAAC;QACT,OAAO,EAAE,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;KAC5E,CAAC,CAAC;IACH,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3C,CAAC,CAAC,CAAC"}
|
package/build/oauth.d.ts
ADDED
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { type OAuthTokens, type SettingsFile } from "./settings.js";
|
|
3
|
+
export declare const OAUTH_CLIENT_ID = "phoenix-cli";
|
|
4
|
+
export declare const OAUTH_CALLBACK_PATH = "/callback";
|
|
5
|
+
/**
|
|
6
|
+
* Bounds every token-endpoint round trip. Without it a proxy that accepts the
|
|
7
|
+
* socket but never answers strands the CLI for undici's 300s default, long
|
|
8
|
+
* past the point where the user has already consented in the browser. Generous
|
|
9
|
+
* because the code is single-use: aborting a slow-but-live exchange costs the
|
|
10
|
+
* user the whole browser consent, so this must clear a cold-starting server.
|
|
11
|
+
*/
|
|
12
|
+
export declare const OAUTH_TOKEN_REQUEST_TIMEOUT_MS: number;
|
|
13
|
+
/** Best-effort and blocking a wizard, so it gives up sooner than a token call. */
|
|
14
|
+
export declare const OAUTH_REVOKE_TIMEOUT_MS: number;
|
|
15
|
+
export declare const OAUTH_REFRESH_BUFFER_MS: number;
|
|
16
|
+
export declare const OAuthTokenEndpointResponseSchema: z.ZodObject<{
|
|
17
|
+
access_token: z.ZodString;
|
|
18
|
+
refresh_token: z.ZodString;
|
|
19
|
+
expires_in: z.ZodNumber;
|
|
20
|
+
token_type: z.ZodString;
|
|
21
|
+
scope: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
22
|
+
}, z.core.$strip>;
|
|
23
|
+
export type OAuthTokenEndpointResponse = z.infer<typeof OAuthTokenEndpointResponseSchema>;
|
|
24
|
+
/**
|
|
25
|
+
* The RFC 8414 discovery fields the login flow depends on. Only a document
|
|
26
|
+
* that parses proves an authorization server is really there: a Phoenix
|
|
27
|
+
* without one answers unknown paths with the SPA's index.html and a 200.
|
|
28
|
+
*/
|
|
29
|
+
export declare const OAuthAuthorizationServerMetadataSchema: z.ZodObject<{
|
|
30
|
+
issuer: z.ZodString;
|
|
31
|
+
authorization_endpoint: z.ZodString;
|
|
32
|
+
token_endpoint: z.ZodString;
|
|
33
|
+
}, z.core.$strip>;
|
|
34
|
+
export interface PkcePair {
|
|
35
|
+
verifier: string;
|
|
36
|
+
challenge: string;
|
|
37
|
+
}
|
|
38
|
+
export interface CallbackSuccess {
|
|
39
|
+
status: "success";
|
|
40
|
+
code: string;
|
|
41
|
+
}
|
|
42
|
+
export interface CallbackDenied {
|
|
43
|
+
status: "access_denied";
|
|
44
|
+
}
|
|
45
|
+
export interface CallbackInvalid {
|
|
46
|
+
status: "invalid";
|
|
47
|
+
message: string;
|
|
48
|
+
}
|
|
49
|
+
export type CallbackParseResult = CallbackSuccess | CallbackDenied | CallbackInvalid;
|
|
50
|
+
export declare function base64Url(bytes: Buffer): string;
|
|
51
|
+
export declare function generatePkcePair(): PkcePair;
|
|
52
|
+
export declare function generateState(): string;
|
|
53
|
+
export declare function parseOAuthCallbackUrl({ redirectUrl, expectedState, }: {
|
|
54
|
+
redirectUrl: string;
|
|
55
|
+
expectedState: string;
|
|
56
|
+
}): CallbackParseResult;
|
|
57
|
+
export declare function buildAuthorizationUrl({ endpoint, redirectUri, state, codeChallenge, }: {
|
|
58
|
+
endpoint: string;
|
|
59
|
+
redirectUri: string;
|
|
60
|
+
state: string;
|
|
61
|
+
codeChallenge: string;
|
|
62
|
+
}): string;
|
|
63
|
+
export declare function normalizeEndpoint(endpoint: string): string;
|
|
64
|
+
export declare function tokenResponseToOAuthTokens({ response, now, }: {
|
|
65
|
+
response: OAuthTokenEndpointResponse;
|
|
66
|
+
now?: Date;
|
|
67
|
+
}): OAuthTokens;
|
|
68
|
+
export declare function isOAuthTokenExpiring({ tokens, now, bufferMs, }: {
|
|
69
|
+
tokens: OAuthTokens;
|
|
70
|
+
now?: Date;
|
|
71
|
+
bufferMs?: number;
|
|
72
|
+
}): boolean;
|
|
73
|
+
export declare function exchangeAuthorizationCode({ endpoint, code, redirectUri, verifier, fetchImpl, }: {
|
|
74
|
+
endpoint: string;
|
|
75
|
+
code: string;
|
|
76
|
+
redirectUri: string;
|
|
77
|
+
verifier: string;
|
|
78
|
+
fetchImpl?: typeof fetch;
|
|
79
|
+
}): Promise<OAuthTokenEndpointResponse>;
|
|
80
|
+
export interface BrowserLoginFlowArgs {
|
|
81
|
+
endpoint: string;
|
|
82
|
+
/**
|
|
83
|
+
* Called with the authorization URL before the browser opens, so the user
|
|
84
|
+
* can complete the login by hand when the launch fails or goes unnoticed.
|
|
85
|
+
*/
|
|
86
|
+
onAuthorizationUrl: (url: string) => void;
|
|
87
|
+
/** False keeps the browser shut, leaving the pasted-URL lane (if allowed). */
|
|
88
|
+
openBrowserWindow?: boolean;
|
|
89
|
+
/** Narrates a failed launch; the pasted-redirect prompt is the fallback. */
|
|
90
|
+
onBrowserOpenFailed?: (error: unknown) => void;
|
|
91
|
+
/**
|
|
92
|
+
* Accept a hand-pasted redirect URL when no browser was opened — the only
|
|
93
|
+
* way to finish a login over SSH or in a container.
|
|
94
|
+
*/
|
|
95
|
+
allowPastedRedirect?: boolean;
|
|
96
|
+
/** Abandon the wait — the caller's escape hatch from an unanswered login. */
|
|
97
|
+
signal?: AbortSignal;
|
|
98
|
+
}
|
|
99
|
+
export type BrowserLoginFlowResult = {
|
|
100
|
+
status: "success";
|
|
101
|
+
tokens: OAuthTokenEndpointResponse;
|
|
102
|
+
}
|
|
103
|
+
/** The user declined consent, or abandoned the wait via `signal`. */
|
|
104
|
+
| {
|
|
105
|
+
status: "cancelled";
|
|
106
|
+
} | {
|
|
107
|
+
status: "invalid";
|
|
108
|
+
message: string;
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* The Authorization Code + PKCE browser login, end to end: callback server,
|
|
112
|
+
* browser launch, the wait, and the token exchange. Both `px auth login` (which
|
|
113
|
+
* persists the tokens) and `px setup` (which spends the access token once to
|
|
114
|
+
* mint an API key) drive it — the differences between them are the arguments
|
|
115
|
+
* above, not a second copy of the sequence.
|
|
116
|
+
*/
|
|
117
|
+
export declare function runBrowserLoginFlow({ endpoint, onAuthorizationUrl, openBrowserWindow, onBrowserOpenFailed, allowPastedRedirect, signal, }: BrowserLoginFlowArgs): Promise<BrowserLoginFlowResult>;
|
|
118
|
+
export declare function refreshOAuthToken({ endpoint, refreshToken, fetchImpl, }: {
|
|
119
|
+
endpoint: string;
|
|
120
|
+
refreshToken: string;
|
|
121
|
+
fetchImpl?: typeof fetch;
|
|
122
|
+
}): Promise<OAuthTokenEndpointResponse>;
|
|
123
|
+
export declare function revokeOAuthToken({ endpoint, refreshToken, fetchImpl, }: {
|
|
124
|
+
endpoint: string;
|
|
125
|
+
refreshToken: string;
|
|
126
|
+
fetchImpl?: typeof fetch;
|
|
127
|
+
}): Promise<void>;
|
|
128
|
+
export declare function refreshOAuthTokensForProfile({ endpoint, profileName, currentTokens, force, settingsPath, fetchImpl, }: {
|
|
129
|
+
endpoint: string;
|
|
130
|
+
profileName: string;
|
|
131
|
+
currentTokens: OAuthTokens;
|
|
132
|
+
force?: boolean;
|
|
133
|
+
settingsPath?: string;
|
|
134
|
+
fetchImpl?: typeof fetch;
|
|
135
|
+
}): Promise<OAuthTokens>;
|
|
136
|
+
export declare function resolveTargetProfileName(settings: SettingsFile, explicit?: string): string;
|
|
137
|
+
export declare function withSettingsLock<T>(settingsPath: string, action: () => Promise<T>): Promise<T>;
|
|
138
|
+
//# sourceMappingURL=oauth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,YAAY,EAMlB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAC7C,eAAO,MAAM,mBAAmB,cAAc,CAAC;AAE/C;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B,QAAY,CAAC;AACxD,kFAAkF;AAClF,eAAO,MAAM,uBAAuB,QAAY,CAAC;AACjD,eAAO,MAAM,uBAAuB,QAAY,CAAC;AAIjD,eAAO,MAAM,gCAAgC;;;;;;iBAM3C,CAAC;AAEH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAC9C,OAAO,gCAAgC,CACxC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,sCAAsC;;;;iBAIjD,CAAC;AAEH,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,SAAS,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,mBAAmB,GAC3B,eAAe,GACf,cAAc,GACd,eAAe,CAAC;AAQpB,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,gBAAgB,IAAI,QAAQ,CAI3C;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,qBAAqB,CAAC,EACpC,WAAW,EACX,aAAa,GACd,EAAE;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,mBAAmB,CAmCtB;AAED,wBAAgB,qBAAqB,CAAC,EACpC,QAAQ,EACR,WAAW,EACX,KAAK,EACL,aAAa,GACd,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,MAAM,CAYT;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,0BAA0B,CAAC,EACzC,QAAQ,EACR,GAAgB,GACjB,EAAE;IACD,QAAQ,EAAE,0BAA0B,CAAC;IACrC,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ,GAAG,WAAW,CASd;AAED,wBAAgB,oBAAoB,CAAC,EACnC,MAAM,EACN,GAAgB,EAChB,QAAkC,GACnC,EAAE;IACD,MAAM,EAAE,WAAW,CAAC;IACpB,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAEV;AA4ID,wBAAsB,yBAAyB,CAAC,EAC9C,QAAQ,EACR,IAAI,EACJ,WAAW,EACX,QAAQ,EACR,SAAiB,GAClB,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAStC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,8EAA8E;IAC9E,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,4EAA4E;IAC5E,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,6EAA6E;IAC7E,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,MAAM,sBAAsB,GAC9B;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,0BAA0B,CAAA;CAAE;AAC3D,qEAAqE;GACnE;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GACvB;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3C;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CAAC,EACxC,QAAQ,EACR,kBAAkB,EAClB,iBAAwB,EACxB,mBAAmB,EACnB,mBAA2B,EAC3B,MAAM,GACP,EAAE,oBAAoB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CA2ExD;AAaD,wBAAsB,iBAAiB,CAAC,EACtC,QAAQ,EACR,YAAY,EACZ,SAAiB,GAClB,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAOtC;AAqDD,wBAAsB,gBAAgB,CAAC,EACrC,QAAQ,EACR,YAAY,EACZ,SAAiB,GAClB,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B,GAAG,OAAO,CAAC,IAAI,CAAC,CAahB;AAED,wBAAsB,4BAA4B,CAAC,EACjD,QAAQ,EACR,WAAW,EACX,aAAa,EACb,KAAa,EACb,YAAgC,EAChC,SAAiB,GAClB,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,WAAW,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B,GAAG,OAAO,CAAC,WAAW,CAAC,CA+BvB;AAED,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,YAAY,EACtB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAKR;AAED,wBAAsB,gBAAgB,CAAC,CAAC,EACtC,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACvB,OAAO,CAAC,CAAC,CAAC,CA+CZ"}
|