@redplanethq/corebrain 2.1.0 → 2.3.0
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/browser/close.d.ts +1 -1
- package/dist/commands/browser/close.d.ts.map +1 -1
- package/dist/commands/browser/close.js +39 -50
- package/dist/commands/browser/close.js.map +1 -1
- package/dist/commands/browser/command.d.ts +1 -1
- package/dist/commands/browser/command.d.ts.map +1 -1
- package/dist/commands/browser/command.js +46 -56
- package/dist/commands/browser/command.js.map +1 -1
- package/dist/commands/browser/create-profile.d.ts +1 -1
- package/dist/commands/browser/create-profile.d.ts.map +1 -1
- package/dist/commands/browser/create-profile.js +27 -21
- package/dist/commands/browser/create-profile.js.map +1 -1
- package/dist/commands/browser/delete-profile.d.ts +1 -1
- package/dist/commands/browser/delete-profile.d.ts.map +1 -1
- package/dist/commands/browser/delete-profile.js +26 -19
- package/dist/commands/browser/delete-profile.js.map +1 -1
- package/dist/commands/browser/install.d.ts +1 -1
- package/dist/commands/browser/install.d.ts.map +1 -1
- package/dist/commands/browser/install.js +31 -42
- package/dist/commands/browser/install.js.map +1 -1
- package/dist/commands/browser/open.d.ts +1 -1
- package/dist/commands/browser/open.d.ts.map +1 -1
- package/dist/commands/browser/open.js +40 -52
- package/dist/commands/browser/open.js.map +1 -1
- package/dist/commands/browser/status.d.ts +1 -1
- package/dist/commands/browser/status.d.ts.map +1 -1
- package/dist/commands/browser/status.js +36 -41
- package/dist/commands/browser/status.js.map +1 -1
- package/dist/commands/coding/config.d.ts +1 -1
- package/dist/commands/coding/config.d.ts.map +1 -1
- package/dist/commands/coding/config.js +95 -98
- package/dist/commands/coding/config.js.map +1 -1
- package/dist/commands/coding/remove.d.ts +1 -1
- package/dist/commands/coding/remove.d.ts.map +1 -1
- package/dist/commands/coding/remove.js +26 -28
- package/dist/commands/coding/remove.js.map +1 -1
- package/dist/commands/coding/setup.d.ts +1 -1
- package/dist/commands/coding/setup.d.ts.map +1 -1
- package/dist/commands/coding/setup.js +56 -71
- package/dist/commands/coding/setup.js.map +1 -1
- package/dist/commands/exec/config.d.ts +1 -1
- package/dist/commands/exec/config.d.ts.map +1 -1
- package/dist/commands/exec/config.js +71 -66
- package/dist/commands/exec/config.js.map +1 -1
- package/dist/commands/gateway/config.d.ts +9 -2
- package/dist/commands/gateway/config.d.ts.map +1 -1
- package/dist/commands/gateway/config.js +419 -156
- package/dist/commands/gateway/config.js.map +1 -1
- package/dist/commands/gateway/off.d.ts +1 -1
- package/dist/commands/gateway/off.d.ts.map +1 -1
- package/dist/commands/gateway/off.js +53 -63
- package/dist/commands/gateway/off.js.map +1 -1
- package/dist/commands/gateway/on.d.ts +1 -1
- package/dist/commands/gateway/on.d.ts.map +1 -1
- package/dist/commands/gateway/on.js +88 -117
- package/dist/commands/gateway/on.js.map +1 -1
- package/dist/commands/gateway/restart.d.ts +1 -1
- package/dist/commands/gateway/restart.d.ts.map +1 -1
- package/dist/commands/gateway/restart.js +49 -63
- package/dist/commands/gateway/restart.js.map +1 -1
- package/dist/commands/gateway/status.d.ts +1 -1
- package/dist/commands/gateway/status.d.ts.map +1 -1
- package/dist/commands/gateway/status.js +62 -76
- package/dist/commands/gateway/status.js.map +1 -1
- package/dist/commands/gateway/uninstall.d.ts +1 -1
- package/dist/commands/gateway/uninstall.d.ts.map +1 -1
- package/dist/commands/gateway/uninstall.js +60 -72
- package/dist/commands/gateway/uninstall.js.map +1 -1
- package/dist/commands/login.d.ts +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +99 -108
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.d.ts +1 -1
- package/dist/commands/logout.d.ts.map +1 -1
- package/dist/commands/logout.js +24 -45
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/me.d.ts +1 -1
- package/dist/commands/me.d.ts.map +1 -1
- package/dist/commands/me.js +40 -50
- package/dist/commands/me.js.map +1 -1
- package/dist/commands/token.d.ts +1 -1
- package/dist/commands/token.d.ts.map +1 -1
- package/dist/commands/token.js +19 -24
- package/dist/commands/token.js.map +1 -1
- package/dist/components/error-message.js +0 -1
- package/dist/components/error-message.js.map +1 -1
- package/dist/components/warning-message.js +0 -1
- package/dist/components/warning-message.js.map +1 -1
- package/dist/server/gateway-client.d.ts +4 -0
- package/dist/server/gateway-client.d.ts.map +1 -1
- package/dist/server/gateway-client.js +45 -6
- package/dist/server/gateway-client.js.map +1 -1
- package/dist/server/tools/exec-tools.d.ts.map +1 -1
- package/dist/server/tools/exec-tools.js +9 -0
- package/dist/server/tools/exec-tools.js.map +1 -1
- package/dist/types/config.d.ts +15 -0
- package/dist/types/config.d.ts.map +1 -1
- package/package.json +6 -3
package/dist/commands/login.js
CHANGED
|
@@ -1,16 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
import { useApp } from 'ink';
|
|
3
|
+
import * as p from '@clack/prompts';
|
|
4
|
+
import chalk from 'chalk';
|
|
4
5
|
import zod from 'zod';
|
|
5
6
|
import { exec } from 'node:child_process';
|
|
6
7
|
import { CoreClient } from '@redplanethq/sdk';
|
|
7
8
|
import { getConfig, updateConfig } from '../config/index.js';
|
|
8
|
-
const
|
|
9
|
+
const DEFAULT_URL = 'https://app.getcore.me';
|
|
9
10
|
const POLL_INTERVAL_MS = 2000;
|
|
10
11
|
const POLL_TIMEOUT_MS = 300_000; // 5 minutes
|
|
11
|
-
/**
|
|
12
|
-
* Open URL in the default browser
|
|
13
|
-
*/
|
|
14
12
|
function openBrowser(url) {
|
|
15
13
|
const command = process.platform === 'darwin'
|
|
16
14
|
? `open "${url}"`
|
|
@@ -19,113 +17,106 @@ function openBrowser(url) {
|
|
|
19
17
|
: `xdg-open "${url}"`;
|
|
20
18
|
exec(command, (error) => {
|
|
21
19
|
if (error) {
|
|
22
|
-
// Silently fail - user can still copy the URL manually
|
|
23
20
|
console.error('Failed to open browser:', error.message);
|
|
24
21
|
}
|
|
25
22
|
});
|
|
26
23
|
}
|
|
27
24
|
export const options = zod.object({});
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
// Step 3: Poll for token
|
|
77
|
-
const startedAt = Date.now();
|
|
78
|
-
while (!cancelled) {
|
|
79
|
-
if (Date.now() - startedAt > POLL_TIMEOUT_MS) {
|
|
80
|
-
if (!cancelled) {
|
|
81
|
-
setError('Login timed out after 5 minutes. Please try again.');
|
|
82
|
-
setStatus('error');
|
|
83
|
-
}
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
await new Promise((resolve) => setTimeout(resolve, POLL_INTERVAL_MS));
|
|
87
|
-
if (cancelled)
|
|
88
|
-
break;
|
|
89
|
-
try {
|
|
90
|
-
const tokenRes = await client.exchangeToken({ authorizationCode: authCode });
|
|
91
|
-
if (tokenRes.token) {
|
|
92
|
-
const pat = tokenRes.token.token;
|
|
93
|
-
// Step 4: Persist token
|
|
94
|
-
updateConfig({
|
|
95
|
-
auth: {
|
|
96
|
-
url: BASE_URL,
|
|
97
|
-
apiKey: pat,
|
|
98
|
-
},
|
|
99
|
-
});
|
|
100
|
-
if (!cancelled)
|
|
101
|
-
setStatus('success');
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
catch {
|
|
106
|
-
// Token endpoint returned an error — keep polling
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
})();
|
|
110
|
-
return () => {
|
|
111
|
-
cancelled = true;
|
|
25
|
+
async function runLogin() {
|
|
26
|
+
p.intro(chalk.bgCyan(chalk.black(' Login ')));
|
|
27
|
+
const config = getConfig();
|
|
28
|
+
// Step 1: Ask for host URL first
|
|
29
|
+
const hostUrl = await p.text({
|
|
30
|
+
message: 'Host URL',
|
|
31
|
+
placeholder: DEFAULT_URL,
|
|
32
|
+
initialValue: config.auth?.url || DEFAULT_URL,
|
|
33
|
+
});
|
|
34
|
+
if (p.isCancel(hostUrl)) {
|
|
35
|
+
p.cancel('Login cancelled');
|
|
36
|
+
return { success: false, error: 'Cancelled' };
|
|
37
|
+
}
|
|
38
|
+
const baseUrl = hostUrl || DEFAULT_URL;
|
|
39
|
+
const spinner = p.spinner();
|
|
40
|
+
// Step 2: Check if already authenticated
|
|
41
|
+
spinner.start('Checking existing authentication...');
|
|
42
|
+
if (config.auth?.apiKey && config.auth?.url === baseUrl) {
|
|
43
|
+
try {
|
|
44
|
+
const client = new CoreClient({
|
|
45
|
+
baseUrl,
|
|
46
|
+
token: config.auth.apiKey,
|
|
47
|
+
});
|
|
48
|
+
await client.checkAuth();
|
|
49
|
+
spinner.stop(chalk.green('Already authenticated'));
|
|
50
|
+
p.outro('Use a different command or clear your config to re-login.');
|
|
51
|
+
return { success: true };
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
// Token invalid or expired — proceed with login flow
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// Step 3: Request authorization code
|
|
58
|
+
spinner.message('Requesting authorization code...');
|
|
59
|
+
const client = new CoreClient({ baseUrl, token: '' });
|
|
60
|
+
let authCode = '';
|
|
61
|
+
let verifyUrl = '';
|
|
62
|
+
try {
|
|
63
|
+
const res = await client.getAuthorizationCode();
|
|
64
|
+
authCode = res.authorizationCode;
|
|
65
|
+
const base64Token = Buffer.from(JSON.stringify({ authorizationCode: authCode, source: 'core-cli', clientName: 'core-cli' })).toString('base64');
|
|
66
|
+
verifyUrl = `${baseUrl}/agent/verify/${base64Token}?source=core-cli`;
|
|
67
|
+
}
|
|
68
|
+
catch (err) {
|
|
69
|
+
spinner.stop(chalk.red('Failed to get authorization code'));
|
|
70
|
+
return {
|
|
71
|
+
success: false,
|
|
72
|
+
error: err instanceof Error ? err.message : 'Failed to get authorization code',
|
|
112
73
|
};
|
|
113
|
-
}, []);
|
|
114
|
-
switch (status) {
|
|
115
|
-
case 'checking':
|
|
116
|
-
return _jsx(Text, { dimColor: true, children: "Checking existing authentication..." });
|
|
117
|
-
case 'already-authenticated':
|
|
118
|
-
return (_jsx(Text, { color: "green", children: "Already authenticated. Use a different command or clear your config to re-login." }));
|
|
119
|
-
case 'fetching-code':
|
|
120
|
-
return _jsx(Text, { dimColor: true, children: "Requesting authorization code..." });
|
|
121
|
-
case 'polling':
|
|
122
|
-
return (_jsxs(_Fragment, { children: [_jsx(Text, { color: "green", children: "Opening browser to authorize... If it doesn't open automatically, visit:" }), _jsx(Text, { color: "cyan", children: url }), _jsx(Text, { dimColor: true, children: "Waiting for authorization..." })] }));
|
|
123
|
-
case 'success':
|
|
124
|
-
return (_jsx(Text, { color: "green", bold: true, children: "Successfully logged in. Token saved to config." }));
|
|
125
|
-
case 'error':
|
|
126
|
-
return _jsx(Text, { color: "red", children: error });
|
|
127
|
-
default:
|
|
128
|
-
return null;
|
|
129
74
|
}
|
|
75
|
+
spinner.stop(chalk.green('Authorization code received'));
|
|
76
|
+
// Open browser and show URL
|
|
77
|
+
p.log.info(`Opening browser to authorize...`);
|
|
78
|
+
p.log.message(chalk.cyan(verifyUrl));
|
|
79
|
+
openBrowser(verifyUrl);
|
|
80
|
+
// Step 3: Poll for token
|
|
81
|
+
spinner.start('Waiting for authorization...');
|
|
82
|
+
const startedAt = Date.now();
|
|
83
|
+
while (true) {
|
|
84
|
+
if (Date.now() - startedAt > POLL_TIMEOUT_MS) {
|
|
85
|
+
spinner.stop(chalk.red('Login timed out'));
|
|
86
|
+
return { success: false, error: 'Login timed out after 5 minutes. Please try again.' };
|
|
87
|
+
}
|
|
88
|
+
await new Promise((resolve) => setTimeout(resolve, POLL_INTERVAL_MS));
|
|
89
|
+
try {
|
|
90
|
+
const tokenRes = await client.exchangeToken({ authorizationCode: authCode });
|
|
91
|
+
if (tokenRes.token) {
|
|
92
|
+
const pat = tokenRes.token.token;
|
|
93
|
+
updateConfig({
|
|
94
|
+
auth: {
|
|
95
|
+
url: baseUrl,
|
|
96
|
+
apiKey: pat,
|
|
97
|
+
},
|
|
98
|
+
});
|
|
99
|
+
spinner.stop(chalk.green('Authorization successful'));
|
|
100
|
+
p.outro(chalk.green('Successfully logged in. Token saved to config.'));
|
|
101
|
+
return { success: true };
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
catch {
|
|
105
|
+
// Token endpoint returned an error — keep polling
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
export default function Login(_props) {
|
|
110
|
+
const { exit } = useApp();
|
|
111
|
+
useEffect(() => {
|
|
112
|
+
runLogin()
|
|
113
|
+
.catch((err) => {
|
|
114
|
+
p.log.error(err instanceof Error ? err.message : 'Unknown error');
|
|
115
|
+
})
|
|
116
|
+
.finally(() => {
|
|
117
|
+
setTimeout(() => exit(), 100);
|
|
118
|
+
});
|
|
119
|
+
}, [exit]);
|
|
120
|
+
return null;
|
|
130
121
|
}
|
|
131
122
|
//# sourceMappingURL=login.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEzD,MAAM,WAAW,GAAG,wBAAwB,CAAC;AAC7C,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC9B,MAAM,eAAe,GAAG,OAAO,CAAC,CAAC,YAAY;AAE7C,SAAS,WAAW,CAAC,GAAW;IAC/B,MAAM,OAAO,GACZ,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAC5B,CAAC,CAAC,SAAS,GAAG,GAAG;QACjB,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO;YAC7B,CAAC,CAAC,aAAa,GAAG,GAAG;YACrB,CAAC,CAAC,aAAa,GAAG,GAAG,CAAC;IAEzB,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QACvB,IAAI,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACzD,CAAC;IACF,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAMtC,KAAK,UAAU,QAAQ;IACtB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAE9C,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,iCAAiC;IACjC,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC;QAC5B,OAAO,EAAE,UAAU;QACnB,WAAW,EAAE,WAAW;QACxB,YAAY,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,WAAW;KAC7C,CAAC,CAAC;IAEH,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAC5B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAC/C,CAAC;IAED,MAAM,OAAO,GAAI,OAAkB,IAAI,WAAW,CAAC;IAEnD,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IAE5B,yCAAyC;IACzC,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACrD,IAAI,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,EAAE,CAAC;QACzD,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC;gBAC7B,OAAO;gBACP,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;aACzB,CAAC,CAAC;YACH,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;YACnD,CAAC,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;YACrE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACR,qDAAqD;QACtD,CAAC;IACF,CAAC;IAED,qCAAqC;IACrC,OAAO,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IACtD,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,oBAAoB,EAAE,CAAC;QAChD,QAAQ,GAAG,GAAG,CAAC,iBAAkB,CAAC;QAClC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAC9B,IAAI,CAAC,SAAS,CAAC,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAC3F,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACrB,SAAS,GAAG,GAAG,OAAO,iBAAiB,WAAW,kBAAkB,CAAC;IACtE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC,CAAC;QAC5D,OAAO;YACN,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,kCAAkC;SAC9E,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;IAEzD,4BAA4B;IAC5B,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAC9C,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACrC,WAAW,CAAC,SAAS,CAAC,CAAC;IAEvB,yBAAyB;IACzB,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,OAAO,IAAI,EAAE,CAAC;QACb,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,eAAe,EAAE,CAAC;YAC9C,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC3C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,oDAAoD,EAAE,CAAC;QACxF,CAAC;QAED,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAEtE,IAAI,CAAC;YACJ,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC7E,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACpB,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAM,CAAC;gBAClC,YAAY,CAAC;oBACZ,IAAI,EAAE;wBACL,GAAG,EAAE,OAAO;wBACZ,MAAM,EAAE,GAAG;qBACX;iBACD,CAAC,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;gBACtD,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC,CAAC;gBACvE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAC1B,CAAC;QACF,CAAC;QAAC,MAAM,CAAC;YACR,kDAAkD;QACnD,CAAC;IACF,CAAC;AACF,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,MAAa;IAC1C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;IAE1B,SAAS,CAAC,GAAG,EAAE;QACd,QAAQ,EAAE;aACR,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACd,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;QACnE,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACb,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,OAAO,IAAI,CAAC;AACb,CAAC"}
|
|
@@ -3,6 +3,6 @@ export declare const options: zod.ZodObject<{}, zod.core.$strip>;
|
|
|
3
3
|
type Props = {
|
|
4
4
|
options: zod.infer<typeof options>;
|
|
5
5
|
};
|
|
6
|
-
export default function Logout(_props: Props):
|
|
6
|
+
export default function Logout(_props: Props): null;
|
|
7
7
|
export {};
|
|
8
8
|
//# sourceMappingURL=logout.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../src/commands/logout.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../src/commands/logout.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAGtB,eAAO,MAAM,OAAO,oCAAiB,CAAC;AAEtC,KAAK,KAAK,GAAG;IACZ,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CACnC,CAAC;AAkBF,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,MAAM,EAAE,KAAK,QAU3C"}
|
package/dist/commands/logout.js
CHANGED
|
@@ -1,52 +1,31 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
import { useApp } from 'ink';
|
|
3
|
+
import * as p from '@clack/prompts';
|
|
4
|
+
import chalk from 'chalk';
|
|
4
5
|
import zod from 'zod';
|
|
5
6
|
import { getConfig, updateConfig } from '../config/index.js';
|
|
6
7
|
export const options = zod.object({});
|
|
8
|
+
async function runLogout() {
|
|
9
|
+
const config = getConfig();
|
|
10
|
+
if (!config.auth?.apiKey) {
|
|
11
|
+
p.log.warning('Already logged out. No authentication found in config.');
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
try {
|
|
15
|
+
updateConfig({ auth: undefined });
|
|
16
|
+
p.log.success(chalk.green('Successfully logged out. Authentication cleared from config.'));
|
|
17
|
+
}
|
|
18
|
+
catch (err) {
|
|
19
|
+
p.log.error(err instanceof Error ? err.message : 'Failed to clear authentication');
|
|
20
|
+
}
|
|
21
|
+
}
|
|
7
22
|
export default function Logout(_props) {
|
|
8
|
-
const
|
|
9
|
-
const [error, setError] = useState('');
|
|
23
|
+
const { exit } = useApp();
|
|
10
24
|
useEffect(() => {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
if (!cancelled)
|
|
17
|
-
setStatus('not-authenticated');
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
try {
|
|
21
|
-
// Remove auth from config
|
|
22
|
-
updateConfig({ auth: undefined });
|
|
23
|
-
if (!cancelled)
|
|
24
|
-
setStatus('success');
|
|
25
|
-
}
|
|
26
|
-
catch (err) {
|
|
27
|
-
if (!cancelled) {
|
|
28
|
-
setError(err instanceof Error
|
|
29
|
-
? err.message
|
|
30
|
-
: 'Failed to clear authentication');
|
|
31
|
-
setStatus('error');
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
})();
|
|
35
|
-
return () => {
|
|
36
|
-
cancelled = true;
|
|
37
|
-
};
|
|
38
|
-
}, []);
|
|
39
|
-
switch (status) {
|
|
40
|
-
case 'checking':
|
|
41
|
-
return _jsx(Text, { dimColor: true, children: "Logging out..." });
|
|
42
|
-
case 'not-authenticated':
|
|
43
|
-
return (_jsx(Text, { color: "yellow", children: "Already logged out. No authentication found in config." }));
|
|
44
|
-
case 'success':
|
|
45
|
-
return (_jsx(Text, { color: "green", bold: true, children: "Successfully logged out. Authentication cleared from config." }));
|
|
46
|
-
case 'error':
|
|
47
|
-
return _jsxs(Text, { color: "red", children: ["Error: ", error] });
|
|
48
|
-
default:
|
|
49
|
-
return null;
|
|
50
|
-
}
|
|
25
|
+
runLogout().finally(() => {
|
|
26
|
+
setTimeout(() => exit(), 100);
|
|
27
|
+
});
|
|
28
|
+
}, [exit]);
|
|
29
|
+
return null;
|
|
51
30
|
}
|
|
52
31
|
//# sourceMappingURL=logout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logout.js","sourceRoot":"","sources":["../../src/commands/logout.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logout.js","sourceRoot":"","sources":["../../src/commands/logout.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEzD,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAMtC,KAAK,UAAU,SAAS;IACvB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAC1B,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,wDAAwD,CAAC,CAAC;QACxE,OAAO;IACR,CAAC;IAED,IAAI,CAAC;QACJ,YAAY,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAClC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC,CAAC;IAC5F,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC;IACpF,CAAC;AACF,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,MAAa;IAC3C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;IAE1B,SAAS,CAAC,GAAG,EAAE;QACd,SAAS,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YACxB,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,OAAO,IAAI,CAAC;AACb,CAAC"}
|
package/dist/commands/me.d.ts
CHANGED
|
@@ -3,6 +3,6 @@ export declare const options: zod.ZodObject<{}, zod.core.$strip>;
|
|
|
3
3
|
type Props = {
|
|
4
4
|
options: zod.infer<typeof options>;
|
|
5
5
|
};
|
|
6
|
-
export default function Me(_props: Props):
|
|
6
|
+
export default function Me(_props: Props): null;
|
|
7
7
|
export {};
|
|
8
8
|
//# sourceMappingURL=me.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"me.d.ts","sourceRoot":"","sources":["../../src/commands/me.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"me.d.ts","sourceRoot":"","sources":["../../src/commands/me.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAMtB,eAAO,MAAM,OAAO,oCAAiB,CAAC;AAEtC,KAAK,KAAK,GAAG;IACZ,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CACnC,CAAC;AAwCF,MAAM,CAAC,OAAO,UAAU,EAAE,CAAC,MAAM,EAAE,KAAK,QAUvC"}
|
package/dist/commands/me.js
CHANGED
|
@@ -1,59 +1,49 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
import { useApp } from 'ink';
|
|
3
|
+
import * as p from '@clack/prompts';
|
|
4
|
+
import chalk from 'chalk';
|
|
4
5
|
import zod from 'zod';
|
|
5
6
|
import { CoreClient } from '@redplanethq/sdk';
|
|
6
7
|
import { getConfig } from '../config/index.js';
|
|
7
8
|
const BASE_URL = 'https://app.getcore.me';
|
|
8
9
|
export const options = zod.object({});
|
|
10
|
+
async function runMe() {
|
|
11
|
+
const config = getConfig();
|
|
12
|
+
const apiKey = config.auth?.apiKey;
|
|
13
|
+
const url = config.auth?.url;
|
|
14
|
+
if (!apiKey) {
|
|
15
|
+
p.log.error('Not authenticated. Please run the login command first.');
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const spinner = p.spinner();
|
|
19
|
+
spinner.start('Fetching user info...');
|
|
20
|
+
try {
|
|
21
|
+
const client = new CoreClient({
|
|
22
|
+
baseUrl: url || BASE_URL,
|
|
23
|
+
token: apiKey,
|
|
24
|
+
});
|
|
25
|
+
const user = await client.me();
|
|
26
|
+
spinner.stop(chalk.green('User info retrieved'));
|
|
27
|
+
p.note([
|
|
28
|
+
`${chalk.bold('Name:')} ${user?.name || 'Not set'}`,
|
|
29
|
+
user?.email ? `${chalk.bold('Email:')} ${user.email}` : null,
|
|
30
|
+
user?.workspaceId ? `${chalk.bold('Workspace ID:')} ${user.workspaceId}` : null,
|
|
31
|
+
]
|
|
32
|
+
.filter(Boolean)
|
|
33
|
+
.join('\n'), 'User Info');
|
|
34
|
+
}
|
|
35
|
+
catch (err) {
|
|
36
|
+
spinner.stop(chalk.red('Failed to fetch user info'));
|
|
37
|
+
p.log.error(err instanceof Error ? err.message : 'Failed to fetch user info');
|
|
38
|
+
}
|
|
39
|
+
}
|
|
9
40
|
export default function Me(_props) {
|
|
10
|
-
const
|
|
11
|
-
const [user, setUser] = useState(null);
|
|
12
|
-
const [error, setError] = useState('');
|
|
41
|
+
const { exit } = useApp();
|
|
13
42
|
useEffect(() => {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
if (!apiKey) {
|
|
20
|
-
if (!cancelled)
|
|
21
|
-
setStatus('not-authenticated');
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
try {
|
|
25
|
-
const client = new CoreClient({
|
|
26
|
-
baseUrl: url || BASE_URL,
|
|
27
|
-
token: apiKey,
|
|
28
|
-
});
|
|
29
|
-
const response = await client.me();
|
|
30
|
-
if (!cancelled) {
|
|
31
|
-
setUser(response);
|
|
32
|
-
setStatus('success');
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
catch (err) {
|
|
36
|
-
if (!cancelled) {
|
|
37
|
-
setError(err instanceof Error ? err.message : 'Failed to fetch user info');
|
|
38
|
-
setStatus('error');
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
})();
|
|
42
|
-
return () => {
|
|
43
|
-
cancelled = true;
|
|
44
|
-
};
|
|
45
|
-
}, []);
|
|
46
|
-
switch (status) {
|
|
47
|
-
case 'loading':
|
|
48
|
-
return _jsx(Text, { dimColor: true, children: "Fetching user info..." });
|
|
49
|
-
case 'not-authenticated':
|
|
50
|
-
return (_jsx(Text, { color: "red", children: "Not authenticated. Please run the login command first." }));
|
|
51
|
-
case 'success':
|
|
52
|
-
return (_jsxs(_Fragment, { children: [_jsxs(Text, { color: "green", bold: true, children: ["Name: ", user?.name || 'Not set'] }), user?.email && _jsxs(Text, { dimColor: true, children: ["Email: ", user.email] }), user?.workspaceId && (_jsxs(Text, { dimColor: true, children: ["Workspace ID: ", user.workspaceId] }))] }));
|
|
53
|
-
case 'error':
|
|
54
|
-
return _jsxs(Text, { color: "red", children: ["Error: ", error] });
|
|
55
|
-
default:
|
|
56
|
-
return null;
|
|
57
|
-
}
|
|
43
|
+
runMe().finally(() => {
|
|
44
|
+
setTimeout(() => exit(), 100);
|
|
45
|
+
});
|
|
46
|
+
}, [exit]);
|
|
47
|
+
return null;
|
|
58
48
|
}
|
|
59
49
|
//# sourceMappingURL=me.js.map
|
package/dist/commands/me.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"me.js","sourceRoot":"","sources":["../../src/commands/me.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"me.js","sourceRoot":"","sources":["../../src/commands/me.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,QAAQ,GAAG,wBAAwB,CAAC;AAE1C,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAMtC,KAAK,UAAU,KAAK;IACnB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;IACnC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC;IAE7B,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;QACtE,OAAO;IACR,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5B,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAEvC,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC;YAC7B,OAAO,EAAE,GAAG,IAAI,QAAQ;YACxB,KAAK,EAAE,MAAM;SACb,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,EAAE,EAAE,CAAC;QAE/B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAEjD,CAAC,CAAC,IAAI,CACL;YACC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,IAAI,IAAI,SAAS,EAAE;YACnD,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI;YAC5D,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI;SAC/E;aACC,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,IAAI,CAAC,EACZ,WAAW,CACX,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC;IAC/E,CAAC;AACF,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,EAAE,CAAC,MAAa;IACvC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;IAE1B,SAAS,CAAC,GAAG,EAAE;QACd,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YACpB,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,OAAO,IAAI,CAAC;AACb,CAAC"}
|
package/dist/commands/token.d.ts
CHANGED
|
@@ -3,6 +3,6 @@ export declare const options: zod.ZodObject<{}, zod.core.$strip>;
|
|
|
3
3
|
type Props = {
|
|
4
4
|
options: zod.infer<typeof options>;
|
|
5
5
|
};
|
|
6
|
-
export default function Token(_props: Props):
|
|
6
|
+
export default function Token(_props: Props): null;
|
|
7
7
|
export {};
|
|
8
8
|
//# sourceMappingURL=token.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../src/commands/token.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../src/commands/token.tsx"],"names":[],"mappings":"AAGA,OAAO,GAAG,MAAM,KAAK,CAAC;AAGtB,eAAO,MAAM,OAAO,oCAAiB,CAAC;AAEtC,KAAK,KAAK,GAAG;IACZ,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CACnC,CAAC;AAeF,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,MAAM,EAAE,KAAK,QAU1C"}
|
package/dist/commands/token.js
CHANGED
|
@@ -1,31 +1,26 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
import { useApp } from 'ink';
|
|
3
|
+
import * as p from '@clack/prompts';
|
|
4
4
|
import zod from 'zod';
|
|
5
5
|
import { getConfig } from '../config/index.js';
|
|
6
6
|
export const options = zod.object({});
|
|
7
|
+
async function runToken() {
|
|
8
|
+
const config = getConfig();
|
|
9
|
+
const apiKey = config.auth?.apiKey;
|
|
10
|
+
if (!apiKey) {
|
|
11
|
+
p.log.error('Not authenticated. Please run the login command first.');
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
// Just output the token directly for piping/scripting
|
|
15
|
+
console.log(apiKey);
|
|
16
|
+
}
|
|
7
17
|
export default function Token(_props) {
|
|
8
|
-
const
|
|
9
|
-
const [token, setToken] = useState('');
|
|
18
|
+
const { exit } = useApp();
|
|
10
19
|
useEffect(() => {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
setToken(apiKey);
|
|
18
|
-
setStatus('found');
|
|
19
|
-
}, []);
|
|
20
|
-
switch (status) {
|
|
21
|
-
case 'loading':
|
|
22
|
-
return _jsx(Text, { dimColor: true, children: "Reading token..." });
|
|
23
|
-
case 'not-authenticated':
|
|
24
|
-
return (_jsx(Text, { color: "red", children: "Not authenticated. Please run the login command first." }));
|
|
25
|
-
case 'found':
|
|
26
|
-
return _jsx(Text, { children: token });
|
|
27
|
-
default:
|
|
28
|
-
return null;
|
|
29
|
-
}
|
|
20
|
+
runToken().finally(() => {
|
|
21
|
+
setTimeout(() => exit(), 100);
|
|
22
|
+
});
|
|
23
|
+
}, [exit]);
|
|
24
|
+
return null;
|
|
30
25
|
}
|
|
31
26
|
//# sourceMappingURL=token.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/commands/token.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/commands/token.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAMtC,KAAK,UAAU,QAAQ;IACtB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;IAEnC,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;QACtE,OAAO;IACR,CAAC;IAED,sDAAsD;IACtD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,MAAa;IAC1C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;IAE1B,SAAS,CAAC,GAAG,EAAE;QACd,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YACvB,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,OAAO,IAAI,CAAC;AACb,CAAC"}
|
|
@@ -9,7 +9,6 @@ function MessageLines({ message, color }) {
|
|
|
9
9
|
return (_jsx(_Fragment, { children: lines.map((line, i) => (_jsx(Text, { color: color, children: line }, i))) }));
|
|
10
10
|
}
|
|
11
11
|
export default memo(function ErrorMessage({ message, hideTitle = false, hideBox = false, }) {
|
|
12
|
-
console.log(message);
|
|
13
12
|
const boxWidth = useTerminalWidth();
|
|
14
13
|
const { colors } = useTheme();
|
|
15
14
|
return (_jsx(_Fragment, { children: hideBox ? (_jsx(Box, { width: boxWidth, flexDirection: "column", marginBottom: 1, children: _jsx(MessageLines, { message: message, color: colors.error }) })) : hideTitle ? (_jsx(Box, { borderStyle: "round", width: boxWidth, borderColor: colors.error, paddingX: 2, paddingY: 0, flexDirection: "column", children: _jsx(MessageLines, { message: message, color: colors.error }) })) : (_jsx(TitledBox, { borderStyle: "round", titles: ['Error'], titleStyles: titleStyles.pill, width: boxWidth, borderColor: colors.error, paddingX: 2, paddingY: 1, flexDirection: "column", children: _jsx(MessageLines, { message: message, color: colors.error }) }, colors.primary)) }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-message.js","sourceRoot":"","sources":["../../src/components/error-message.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAE7B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,SAAS,YAAY,CAAC,EAAE,OAAO,EAAE,KAAK,EAAsC;IAC3E,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,OAAO,CACN,4BACE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACvB,KAAC,IAAI,IAAS,KAAK,EAAE,KAAK,YAAG,IAAI,IAAtB,CAAC,CAA6B,CACzC,CAAC,GACA,CACH,CAAC;AACH,CAAC;AAED,eAAe,IAAI,CAAC,SAAS,YAAY,CAAC,EACzC,OAAO,EACP,SAAS,GAAG,KAAK,EACjB,OAAO,GAAG,KAAK,GAKf;
|
|
1
|
+
{"version":3,"file":"error-message.js","sourceRoot":"","sources":["../../src/components/error-message.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAE7B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,SAAS,YAAY,CAAC,EAAE,OAAO,EAAE,KAAK,EAAsC;IAC3E,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,OAAO,CACN,4BACE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACvB,KAAC,IAAI,IAAS,KAAK,EAAE,KAAK,YAAG,IAAI,IAAtB,CAAC,CAA6B,CACzC,CAAC,GACA,CACH,CAAC;AACH,CAAC;AAED,eAAe,IAAI,CAAC,SAAS,YAAY,CAAC,EACzC,OAAO,EACP,SAAS,GAAG,KAAK,EACjB,OAAO,GAAG,KAAK,GAKf;IAEA,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IACpC,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC9B,OAAO,CACN,4BACE,OAAO,CAAC,CAAC,CAAC,CACV,KAAC,GAAG,IAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,YAC3D,KAAC,YAAY,IAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,GAAI,GAClD,CACN,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CACf,KAAC,GAAG,IACH,WAAW,EAAC,OAAO,EACnB,KAAK,EAAE,QAAQ,EACf,WAAW,EAAE,MAAM,CAAC,KAAK,EACzB,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,CAAC,EACX,aAAa,EAAC,QAAQ,YAEtB,KAAC,YAAY,IAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,GAAI,GAClD,CACN,CAAC,CAAC,CAAC,CACH,KAAC,SAAS,IAET,WAAW,EAAC,OAAO,EACnB,MAAM,EAAE,CAAC,OAAO,CAAC,EACjB,WAAW,EAAE,WAAW,CAAC,IAAI,EAC7B,KAAK,EAAE,QAAQ,EACf,WAAW,EAAE,MAAM,CAAC,KAAK,EACzB,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,CAAC,EACX,aAAa,EAAC,QAAQ,YAEtB,KAAC,YAAY,IAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,GAAI,IAVlD,MAAM,CAAC,OAAO,CAWR,CACZ,GACC,CACH,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -11,7 +11,6 @@ function MessageLines({ message, color }) {
|
|
|
11
11
|
export default function WarningMessage({ message, hideTitle = false, hideBox = false, }) {
|
|
12
12
|
const boxWidth = useTerminalWidth();
|
|
13
13
|
const { colors } = useTheme();
|
|
14
|
-
console.log(message);
|
|
15
14
|
return (_jsx(_Fragment, { children: hideBox ? (_jsx(Box, { width: boxWidth, flexDirection: "column", marginBottom: 1, children: _jsx(MessageLines, { message: message, color: colors.warning }) })) : hideTitle ? (_jsx(Box, { borderStyle: "round", width: boxWidth, borderColor: colors.warning, paddingX: 2, paddingY: 0, flexDirection: "column", children: _jsx(MessageLines, { message: message, color: colors.warning }) })) : (_jsx(TitledBox, { borderStyle: "round", titles: ['Warning'], titleStyles: titleStyles.pill, width: boxWidth, borderColor: colors.warning, paddingX: 2, paddingY: 1, flexDirection: "column", children: _jsx(MessageLines, { message: message, color: colors.warning }) }, colors.primary)) }));
|
|
16
15
|
}
|
|
17
16
|
;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"warning-message.js","sourceRoot":"","sources":["../../src/components/warning-message.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAGhC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,SAAS,YAAY,CAAC,EAAE,OAAO,EAAE,KAAK,EAAsC;IAC3E,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACpB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,OAAO,CACN,4BACE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACvB,KAAC,IAAI,IAAS,KAAK,EAAE,KAAK,YAAG,IAAI,IAAtB,CAAC,CAA6B,CACzC,CAAC,GACA,CACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACtC,OAAO,EACP,SAAS,GAAG,KAAK,EACjB,OAAO,GAAG,KAAK,GAKf;IACA,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IACpC,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"warning-message.js","sourceRoot":"","sources":["../../src/components/warning-message.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAGhC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,SAAS,YAAY,CAAC,EAAE,OAAO,EAAE,KAAK,EAAsC;IAC3E,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACpB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,OAAO,CACN,4BACE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACvB,KAAC,IAAI,IAAS,KAAK,EAAE,KAAK,YAAG,IAAI,IAAtB,CAAC,CAA6B,CACzC,CAAC,GACA,CACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACtC,OAAO,EACP,SAAS,GAAG,KAAK,EACjB,OAAO,GAAG,KAAK,GAKf;IACA,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IACpC,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;IAE9B,OAAO,CACN,4BACE,OAAO,CAAC,CAAC,CAAC,CACV,KAAC,GAAG,IAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,YAC3D,KAAC,YAAY,IAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,GAAI,GAEpD,CACN,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CACf,KAAC,GAAG,IACH,WAAW,EAAC,OAAO,EACnB,KAAK,EAAE,QAAQ,EACf,WAAW,EAAE,MAAM,CAAC,OAAO,EAC3B,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,CAAC,EACX,aAAa,EAAC,QAAQ,YAEtB,KAAC,YAAY,IAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,GAAI,GAEpD,CACN,CAAC,CAAC,CAAC,CACH,KAAC,SAAS,IAET,WAAW,EAAC,OAAO,EACnB,MAAM,EAAE,CAAC,SAAS,CAAC,EACnB,WAAW,EAAE,WAAW,CAAC,IAAI,EAC7B,KAAK,EAAE,QAAQ,EACf,WAAW,EAAE,MAAM,CAAC,OAAO,EAC3B,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,CAAC,EACX,aAAa,EAAC,QAAQ,YAEtB,KAAC,YAAY,IAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,GAAI,IAVpD,MAAM,CAAC,OAAO,CAYR,CACZ,GACC,CACH,CAAC;AACH,CAAC;AAAA,CAAC"}
|