@contenthero/cli 0.1.1 → 0.1.2
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/commands/auth.d.ts +13 -4
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +16 -28
- package/dist/commands/auth.js.map +1 -1
- package/package.json +1 -1
package/dist/commands/auth.d.ts
CHANGED
|
@@ -18,6 +18,14 @@ import type { Command } from 'commander';
|
|
|
18
18
|
export interface LoopbackOptions {
|
|
19
19
|
/** The state nonce the browser callback must echo back. */
|
|
20
20
|
state: string;
|
|
21
|
+
/**
|
|
22
|
+
* App base URL the browser is redirected back to after delivering the key, so
|
|
23
|
+
* the user lands on a real on-brand success page (`/cli/auth/done`) instead of
|
|
24
|
+
* this raw-IP listener. Delivering the key needs a navigation to localhost (an
|
|
25
|
+
* https page cannot fetch http://127.0.0.1 reliably), so we make that hop
|
|
26
|
+
* instant and bounce straight back to the app.
|
|
27
|
+
*/
|
|
28
|
+
redirectBase: string;
|
|
21
29
|
/** Called with the bound port once the listener is up (to build + open the URL). */
|
|
22
30
|
onListening: (port: number) => void;
|
|
23
31
|
/** Give up after this many ms (default 3 minutes). */
|
|
@@ -25,10 +33,11 @@ export interface LoopbackOptions {
|
|
|
25
33
|
}
|
|
26
34
|
/**
|
|
27
35
|
* Start a localhost listener and resolve with the API key the browser hands back
|
|
28
|
-
* to `/callback?state=<state>&key=<key>`.
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
36
|
+
* to `/callback?state=<state>&key=<key>`. On a valid hit it 302-redirects the
|
|
37
|
+
* browser to `<redirectBase>/cli/auth/done` so the user lands on a styled app
|
|
38
|
+
* page. Rejects on `error=...`, a listener failure, or timeout. A callback whose
|
|
39
|
+
* state does not match is rejected with 400 and ignored (the listener keeps
|
|
40
|
+
* waiting), so a stray or forged hit cannot end the flow. Exported for testing.
|
|
32
41
|
*/
|
|
33
42
|
export declare function awaitLoopbackKey(opts: LoopbackOptions): Promise<string>;
|
|
34
43
|
export declare function registerAuth(program: Command): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA4DxC,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAA;IACb,oFAAoF;IACpF,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA4DxC,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;OAMG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB,oFAAoF;IACpF,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAwDvE;AAkGD,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAanD"}
|
package/dist/commands/auth.js
CHANGED
|
@@ -75,13 +75,15 @@ async function verifyAndStore(key, ctx, label) {
|
|
|
75
75
|
}
|
|
76
76
|
/**
|
|
77
77
|
* Start a localhost listener and resolve with the API key the browser hands back
|
|
78
|
-
* to `/callback?state=<state>&key=<key>`.
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
78
|
+
* to `/callback?state=<state>&key=<key>`. On a valid hit it 302-redirects the
|
|
79
|
+
* browser to `<redirectBase>/cli/auth/done` so the user lands on a styled app
|
|
80
|
+
* page. Rejects on `error=...`, a listener failure, or timeout. A callback whose
|
|
81
|
+
* state does not match is rejected with 400 and ignored (the listener keeps
|
|
82
|
+
* waiting), so a stray or forged hit cannot end the flow. Exported for testing.
|
|
82
83
|
*/
|
|
83
84
|
export function awaitLoopbackKey(opts) {
|
|
84
|
-
const { state, onListening, timeoutMs = LOGIN_TIMEOUT_MS } = opts;
|
|
85
|
+
const { state, redirectBase, onListening, timeoutMs = LOGIN_TIMEOUT_MS } = opts;
|
|
86
|
+
const doneUrl = (status) => `${redirectBase}/cli/auth/done?status=${status}`;
|
|
85
87
|
return new Promise((resolve, reject) => {
|
|
86
88
|
let settled = false;
|
|
87
89
|
const finish = (fn) => {
|
|
@@ -93,45 +95,30 @@ export function awaitLoopbackKey(opts) {
|
|
|
93
95
|
fn();
|
|
94
96
|
};
|
|
95
97
|
const server = http.createServer((req, res) => {
|
|
96
|
-
// CORS + Private Network Access, so the app page can deliver the key with a
|
|
97
|
-
// background fetch (and keep its own success UI) instead of navigating the
|
|
98
|
-
// browser here. Chrome treats https-public -> 127.0.0.1-local as a private
|
|
99
|
-
// network request and requires the preflight to opt in explicitly.
|
|
100
|
-
const cors = {
|
|
101
|
-
'access-control-allow-origin': req.headers.origin || '*',
|
|
102
|
-
'access-control-allow-methods': 'GET, OPTIONS',
|
|
103
|
-
'access-control-allow-headers': '*',
|
|
104
|
-
'access-control-allow-private-network': 'true',
|
|
105
|
-
};
|
|
106
|
-
if (req.method === 'OPTIONS') {
|
|
107
|
-
res.writeHead(204, cors);
|
|
108
|
-
res.end();
|
|
109
|
-
return;
|
|
110
|
-
}
|
|
111
98
|
const reqUrl = new URL(req.url || '/', 'http://127.0.0.1');
|
|
112
99
|
if (reqUrl.pathname !== '/callback') {
|
|
113
|
-
res.writeHead(404, {
|
|
100
|
+
res.writeHead(404, { 'content-type': 'text/plain' });
|
|
114
101
|
res.end('Not found');
|
|
115
102
|
return;
|
|
116
103
|
}
|
|
117
104
|
// Bind the callback to this invocation; ignore anything with a wrong state.
|
|
118
105
|
if (reqUrl.searchParams.get('state') !== state) {
|
|
119
|
-
res.writeHead(400, {
|
|
106
|
+
res.writeHead(400, { 'content-type': 'text/html' });
|
|
120
107
|
res.end(resultPage('login error', 'Invalid request. You can close this tab.'));
|
|
121
108
|
return;
|
|
122
109
|
}
|
|
123
110
|
const error = reqUrl.searchParams.get('error');
|
|
124
111
|
const got = reqUrl.searchParams.get('key');
|
|
125
112
|
if (error || !got) {
|
|
126
|
-
|
|
127
|
-
res.
|
|
113
|
+
// Bounce to the styled cancelled page, then reject the CLI promise.
|
|
114
|
+
res.writeHead(302, { location: doneUrl('cancelled') });
|
|
115
|
+
res.end();
|
|
128
116
|
finish(() => reject(new CliError('Login was cancelled in the browser.', EXIT.AUTH)));
|
|
129
117
|
return;
|
|
130
118
|
}
|
|
131
|
-
//
|
|
132
|
-
|
|
133
|
-
res.
|
|
134
|
-
res.end(resultPage('CLI connected', 'You can close this tab and return to your terminal.'));
|
|
119
|
+
// Key captured: bounce the browser to the on-brand success page on the app.
|
|
120
|
+
res.writeHead(302, { location: doneUrl('connected') });
|
|
121
|
+
res.end();
|
|
135
122
|
finish(() => resolve(got));
|
|
136
123
|
});
|
|
137
124
|
server.on('error', (e) => finish(() => reject(new CliError(`Could not start the local login listener: ${e.message}`, EXIT.GENERAL))));
|
|
@@ -150,6 +137,7 @@ async function browserLogin(ctx) {
|
|
|
150
137
|
const base = (ctx.baseUrl || DEFAULT_BASE_URL).replace(/\/+$/, '');
|
|
151
138
|
const key = await awaitLoopbackKey({
|
|
152
139
|
state,
|
|
140
|
+
redirectBase: base,
|
|
153
141
|
onListening: (port) => {
|
|
154
142
|
const authUrl = `${base}/cli/auth?port=${port}&state=${state}&label=${encodeURIComponent(label)}`;
|
|
155
143
|
process.stderr.write(`Opening your browser to authorize the CLI.\nIf it does not open, visit:\n ${authUrl}\n\nWaiting for authorization...\n`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contenthero/cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Official ContentHero CLI. Generate media, run the content pipeline, and read your brand/research context from the terminal or any agent shell. Rides the @contenthero/sdk kernel.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|