prompsit-cli 26.410.1337 → 26.410.1551
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/api/resources/auth.d.ts +2 -0
- package/dist/api/resources/auth.d.ts.map +1 -1
- package/dist/api/resources/auth.js +34 -22
- package/dist/api/resources/auth.js.map +1 -1
- package/dist/commands/device-flow.d.ts.map +1 -1
- package/dist/commands/device-flow.js +15 -5
- package/dist/commands/device-flow.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/api/resources/auth.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAKL,KAAK,aAAa,EAClB,KAAK,2BAA2B,EAChC,KAAK,mBAAmB,EACzB,MAAM,cAAc,CAAC;AAItB;;;;;;GAMG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM;IAKrD;;;;;;;;OAQG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAiB1E;;;;;;;OAOG;IACG,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAgBhE;;;;OAIG;IACG,iBAAiB,IAAI,OAAO,CAAC,2BAA2B,CAAC;IAU/D;;;;;;;OAOG;IACG,eAAe,CACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CACN;QAAE,MAAM,EAAE,SAAS,CAAC;QAAC,IAAI,EAAE,mBAAmB,CAAA;KAAE,GAChD;QAAE,MAAM,EAAE,SAAS,CAAA;KAAE,GACrB;QAAE,MAAM,EAAE,WAAW,CAAA;KAAE,GACvB;QAAE,MAAM,EAAE,SAAS,CAAA;KAAE,GACrB;QAAE,MAAM,EAAE,QAAQ,CAAA;KAAE,
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/api/resources/auth.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAKL,KAAK,aAAa,EAClB,KAAK,2BAA2B,EAChC,KAAK,mBAAmB,EACzB,MAAM,cAAc,CAAC;AAItB;;;;;;GAMG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM;IAKrD;;;;;;;;OAQG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAiB1E;;;;;;;OAOG;IACG,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAgBhE;;;;OAIG;IACG,iBAAiB,IAAI,OAAO,CAAC,2BAA2B,CAAC;IAU/D;;;;;;;OAOG;IACG,eAAe,CACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CACN;QAAE,MAAM,EAAE,SAAS,CAAC;QAAC,IAAI,EAAE,mBAAmB,CAAA;KAAE,GAChD;QAAE,MAAM,EAAE,SAAS,CAAA;KAAE,GACrB;QAAE,MAAM,EAAE,WAAW,CAAA;KAAE,GACvB;QAAE,MAAM,EAAE,SAAS,CAAA;KAAE,GACrB;QAAE,MAAM,EAAE,QAAQ,CAAA;KAAE,GACpB;QAAE,MAAM,EAAE,iBAAiB,CAAA;KAAE,CAChC;CA6CF"}
|
|
@@ -77,30 +77,42 @@ export class AuthResource {
|
|
|
77
77
|
* OAuth2 error format {error, error_description} — the RFC 8628 fields are lost.
|
|
78
78
|
*/
|
|
79
79
|
async pollDeviceToken(deviceCode) {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
80
|
+
try {
|
|
81
|
+
const raw = await this.transport.requestRaw("POST", `${this.baseUrl}${Endpoint.AUTH_DEVICE_TOKEN}`, {
|
|
82
|
+
json: {
|
|
83
|
+
device_code: deviceCode,
|
|
84
|
+
grant_type: GrantType.DEVICE_CODE,
|
|
85
|
+
},
|
|
86
|
+
throwHttpErrors: false,
|
|
87
|
+
}, true // public client
|
|
88
|
+
);
|
|
89
|
+
if (raw.statusCode === 200) {
|
|
90
|
+
const body = JSON.parse(raw.body.toString());
|
|
91
|
+
return { status: "success", data: DeviceTokenResponseSchema.parse(body) };
|
|
92
|
+
}
|
|
93
|
+
if (raw.statusCode === 400) {
|
|
94
|
+
const body = JSON.parse(raw.body.toString());
|
|
95
|
+
const err = DeviceTokenErrorSchema.parse(body);
|
|
96
|
+
if (err.error === "authorization_pending")
|
|
97
|
+
return { status: "pending" };
|
|
98
|
+
if (err.error === "slow_down")
|
|
99
|
+
return { status: "slow_down" };
|
|
100
|
+
if (err.error === "expired_token")
|
|
101
|
+
return { status: "expired" };
|
|
102
|
+
return { status: "denied" };
|
|
103
|
+
}
|
|
104
|
+
// 5xx (502 Bad Gateway, 503 Service Unavailable, etc.) — transient, retry
|
|
105
|
+
if (raw.statusCode >= 500) {
|
|
106
|
+
return { status: "transient_error" };
|
|
107
|
+
}
|
|
108
|
+
throw new APIError(`Unexpected status ${String(raw.statusCode)}`, "E_DEVICE_FLOW", raw.statusCode);
|
|
91
109
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
if (err.error === "slow_down")
|
|
98
|
-
return { status: "slow_down" };
|
|
99
|
-
if (err.error === "expired_token")
|
|
100
|
-
return { status: "expired" };
|
|
101
|
-
return { status: "denied" };
|
|
110
|
+
catch (error) {
|
|
111
|
+
// Network errors (DNS, timeout, connection reset) — transient, retry
|
|
112
|
+
if (error instanceof APIError)
|
|
113
|
+
throw error; // re-throw our own errors
|
|
114
|
+
return { status: "transient_error" };
|
|
102
115
|
}
|
|
103
|
-
throw new APIError(`Unexpected status ${String(raw.statusCode)}`, "E_DEVICE_FLOW", raw.statusCode);
|
|
104
116
|
}
|
|
105
117
|
}
|
|
106
118
|
//# sourceMappingURL=auth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/api/resources/auth.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,4DAA4D;AAC5D,gFAAgF;AAGhF,OAAO,EACL,mBAAmB,EACnB,iCAAiC,EACjC,yBAAyB,EACzB,sBAAsB,GAIvB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD;;;;;;GAMG;AACH,MAAM,OAAO,YAAY;IACN,SAAS,CAAgB;IACzB,OAAO,CAAS;IAEjC,YAAY,SAAwB,EAAE,OAAe;QACnD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,QAAQ,CAAC,QAAgB,EAAE,QAAgB;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CACvC,MAAM,EACN,GAAG,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,EAClC;YACE,IAAI,EAAE;gBACJ,UAAU,EAAE,SAAS,CAAC,QAAQ;gBAC9B,QAAQ;gBACR,QAAQ;aACT;SACF,EACD,IAAI,CAAC,iCAAiC;SACvC,CAAC;QACF,OAAO,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,YAAY,CAAC,YAAoB;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CACvC,MAAM,EACN,GAAG,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,EAClC;YACE,IAAI,EAAE;gBACJ,UAAU,EAAE,SAAS,CAAC,aAAa;gBACnC,aAAa,EAAE,YAAY;aAC5B;SACF,EACD,IAAI,CAAC,iCAAiC;SACvC,CAAC;QACF,OAAO,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,iBAAiB;QACrB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CACvC,MAAM,EACN,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,WAAW,EAAE,EACxC,EAAE,EACF,IAAI,CAAC,gBAAgB;SACtB,CAAC;QACF,OAAO,iCAAiC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,eAAe,CACnB,UAAkB;
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/api/resources/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device-flow.d.ts","sourceRoot":"","sources":["../../src/commands/device-flow.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAe7D,2CAA2C;AAC3C,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;CACxB;AA8CD;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,YAAY,EAAE,YAAY,EAC1B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"device-flow.d.ts","sourceRoot":"","sources":["../../src/commands/device-flow.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAe7D,2CAA2C;AAC3C,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;CACxB;AA8CD;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,YAAY,EAAE,YAAY,EAC1B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,gBAAgB,CAAC,CAoG3B"}
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
// Works in both CLI mode (ora spinner) and REPL mode (terminal.dim).
|
|
4
4
|
import { spawn } from "node:child_process";
|
|
5
5
|
import ora, {} from "ora";
|
|
6
|
+
import { getApiClient } from "../api/client.js";
|
|
6
7
|
import { sleep } from "../runtime/async-utils.js";
|
|
7
8
|
import { getRuntimePlatform } from "../runtime/platform.js";
|
|
8
|
-
import { CancelledError } from "../errors/contracts.js";
|
|
9
|
-
import { AuthenticationError } from "../errors/contracts.js";
|
|
9
|
+
import { CancelledError, AuthenticationError } from "../errors/contracts.js";
|
|
10
10
|
import { terminal } from "../output/index.js";
|
|
11
11
|
import { t } from "../i18n/index.js";
|
|
12
12
|
import { getLogger } from "../logging/index.js";
|
|
@@ -77,13 +77,19 @@ export async function runDeviceFlow(authResource, signal) {
|
|
|
77
77
|
interval: String(deviceAuth.interval),
|
|
78
78
|
});
|
|
79
79
|
// 2. Display user_code and verification URI
|
|
80
|
+
// Resolve relative URI to absolute (defensive: API may omit API_PUBLIC_URL)
|
|
81
|
+
const baseUrl = getApiClient().baseUrl;
|
|
82
|
+
const resolveUrl = (uri) => (uri.startsWith("http") ? uri : `${baseUrl}${uri}`);
|
|
83
|
+
const verificationUri = resolveUrl(deviceAuth.verification_uri);
|
|
84
|
+
const browseUrl = deviceAuth.verification_uri_complete
|
|
85
|
+
? resolveUrl(deviceAuth.verification_uri_complete)
|
|
86
|
+
: verificationUri;
|
|
80
87
|
terminal.info("");
|
|
81
88
|
terminal.info(` ${t("auth.device.user_code", { code: deviceAuth.user_code })}`);
|
|
82
89
|
terminal.info("");
|
|
83
|
-
terminal.info(` ${t("auth.device.visit_url", { url:
|
|
90
|
+
terminal.info(` ${t("auth.device.visit_url", { url: browseUrl })}`);
|
|
84
91
|
terminal.info("");
|
|
85
|
-
// 3. Open browser
|
|
86
|
-
const browseUrl = deviceAuth.verification_uri_complete ?? deviceAuth.verification_uri;
|
|
92
|
+
// 3. Open browser (prefer complete URL with embedded user_code)
|
|
87
93
|
const opened = await openBrowser(browseUrl);
|
|
88
94
|
if (opened) {
|
|
89
95
|
terminal.info(t("auth.device.browser_opened"));
|
|
@@ -143,6 +149,10 @@ export async function runDeviceFlow(authResource, signal) {
|
|
|
143
149
|
spinner?.fail();
|
|
144
150
|
throw new AuthenticationError(t("auth.device.denied"));
|
|
145
151
|
}
|
|
152
|
+
case "transient_error": {
|
|
153
|
+
log.warn("Transient error during polling, will retry");
|
|
154
|
+
break;
|
|
155
|
+
}
|
|
146
156
|
}
|
|
147
157
|
}
|
|
148
158
|
// Deadline reached without success
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device-flow.js","sourceRoot":"","sources":["../../src/commands/device-flow.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,mFAAmF;AACnF,qEAAqE;AAErE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,GAAG,EAAE,EAAY,MAAM,KAAK,CAAC;AAEpC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"device-flow.js","sourceRoot":"","sources":["../../src/commands/device-flow.ts"],"names":[],"mappings":"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"}
|