seamless-cli 0.5.2 → 0.7.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/README.md +171 -0
- package/dist/commands/adminShared.js +23 -0
- package/dist/commands/adminShared.js.map +1 -0
- package/dist/commands/config.js +187 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/help.js +98 -0
- package/dist/commands/help.js.map +1 -1
- package/dist/commands/init.js +182 -26
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/login.js +86 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.js +43 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/org.js +249 -0
- package/dist/commands/org.js.map +1 -0
- package/dist/commands/profile.js +150 -0
- package/dist/commands/profile.js.map +1 -0
- package/dist/commands/sessions.js +112 -0
- package/dist/commands/sessions.js.map +1 -0
- package/dist/commands/users.js +147 -0
- package/dist/commands/users.js.map +1 -0
- package/dist/commands/verify.js +133 -9
- package/dist/commands/verify.js.map +1 -1
- package/dist/commands/whoami.js +29 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/core/admin.js +142 -0
- package/dist/core/admin.js.map +1 -0
- package/dist/core/args.js +19 -0
- package/dist/core/args.js.map +1 -0
- package/dist/core/authClient.js +113 -0
- package/dist/core/authClient.js.map +1 -0
- package/dist/core/config.js +146 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/http.js +34 -0
- package/dist/core/http.js.map +1 -0
- package/dist/core/images.js +1 -1
- package/dist/core/keychain.js +112 -0
- package/dist/core/keychain.js.map +1 -0
- package/dist/core/loginFlow.js +143 -0
- package/dist/core/loginFlow.js.map +1 -0
- package/dist/core/output.js +46 -0
- package/dist/core/output.js.map +1 -1
- package/dist/core/portal.js +74 -0
- package/dist/core/portal.js.map +1 -0
- package/dist/core/session.js +30 -0
- package/dist/core/session.js.map +1 -0
- package/dist/core/sessions.js +41 -0
- package/dist/core/sessions.js.map +1 -0
- package/dist/core/systemConfig.js +125 -0
- package/dist/core/systemConfig.js.map +1 -0
- package/dist/generators/config/config.js +30 -15
- package/dist/generators/config/config.js.map +1 -1
- package/dist/index.js +51 -3
- package/dist/index.js.map +1 -1
- package/dist/prompts/appSelect.js +41 -0
- package/dist/prompts/appSelect.js.map +1 -0
- package/dist/prompts/projectSetup.js +26 -0
- package/dist/prompts/projectSetup.js.map +1 -1
- package/package.json +13 -2
package/dist/commands/init.js
CHANGED
|
@@ -1,15 +1,27 @@
|
|
|
1
1
|
import path from "path";
|
|
2
2
|
import fs from "fs";
|
|
3
|
-
import {
|
|
3
|
+
import { confirm, isCancel } from "@clack/prompts";
|
|
4
|
+
import kleur from "kleur";
|
|
5
|
+
import { runProjectSetupPrompts, runManagedTemplatePrompts, } from "../prompts/projectSetup.js";
|
|
4
6
|
import { generateAuthServer } from "../generators/auth/auth.js";
|
|
5
7
|
import { generateDockerCompose } from "../generators/docker/docker.js";
|
|
6
|
-
import { printSuccessOutput } from "../core/output.js";
|
|
8
|
+
import { printManagedSuccessOutput, printSuccessOutput, } from "../core/output.js";
|
|
7
9
|
import { generateSeamlessConfig } from "../generators/config/config.js";
|
|
8
10
|
import { applyTemplateEnv, assertCliSupports, openTemplateSource, } from "../core/templates.js";
|
|
9
11
|
import { runOAuthSetupPrompts } from "../prompts/oauthSetup.js";
|
|
12
|
+
import { createAuthClient, ReauthRequiredError, } from "../core/authClient.js";
|
|
13
|
+
import { normalizeInstanceUrl } from "../core/config.js";
|
|
14
|
+
import { parseEnv, writeEnv } from "../core/env.js";
|
|
15
|
+
import { generateSecret } from "../core/secrets.js";
|
|
16
|
+
import { listApplications, rotateServiceToken, } from "../core/portal.js";
|
|
17
|
+
import { selectApplication } from "../prompts/appSelect.js";
|
|
10
18
|
const AUTH_SERVER_URL = "http://localhost:5312";
|
|
11
19
|
const API_URL = "http://localhost:3000";
|
|
12
|
-
|
|
20
|
+
// Managed auth instances resolve signing keys from the token header and do not
|
|
21
|
+
// expose a per-application JWKS kid, so the scaffolded backend uses the SDK's
|
|
22
|
+
// default. This matches the portal's own "Get connected" guidance.
|
|
23
|
+
const MANAGED_JWKS_KID = "dev-main";
|
|
24
|
+
export async function runCLI(projectName, aliases = [], opts = {}) {
|
|
13
25
|
const cwd = process.cwd();
|
|
14
26
|
let root = cwd;
|
|
15
27
|
if (projectName) {
|
|
@@ -20,34 +32,88 @@ export async function runCLI(projectName, aliases = []) {
|
|
|
20
32
|
fs.mkdirSync(root);
|
|
21
33
|
console.log(`Creating project in ${root}`);
|
|
22
34
|
}
|
|
23
|
-
|
|
24
|
-
|
|
35
|
+
// A logged-in profile makes the managed path the default; --local forces the
|
|
36
|
+
// self-hosted stack, and a missing session falls back to it automatically.
|
|
37
|
+
const client = opts.local ? null : await resolveManagedClient(opts.profileFlag);
|
|
38
|
+
const isEmpty = fs.readdirSync(root).length === 0;
|
|
25
39
|
if (!isEmpty) {
|
|
26
|
-
|
|
27
|
-
console.log("Integration flow coming next.");
|
|
40
|
+
await integrateExistingProject(root, client, opts);
|
|
28
41
|
return;
|
|
29
42
|
}
|
|
43
|
+
if (client) {
|
|
44
|
+
await scaffoldManaged(root, projectName, aliases, client, opts);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
await scaffoldLocal(root, projectName, aliases);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
// Returns an authenticated control-plane client when a profile is logged in, or
|
|
51
|
+
// null when there is no session (so init drops to the local stack).
|
|
52
|
+
async function resolveManagedClient(profileFlag) {
|
|
53
|
+
try {
|
|
54
|
+
return await createAuthClient({ profileFlag });
|
|
55
|
+
}
|
|
56
|
+
catch (err) {
|
|
57
|
+
if (err instanceof ReauthRequiredError)
|
|
58
|
+
return null;
|
|
59
|
+
throw err;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
async function scaffoldManaged(root, projectName, aliases, client, opts) {
|
|
30
63
|
const source = await openTemplateSource();
|
|
31
64
|
const preselect = resolveTemplateAliases(aliases, source.registry.templates);
|
|
32
|
-
const answers = await
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
65
|
+
const answers = await runManagedTemplatePrompts(source.registry.templates, preselect);
|
|
66
|
+
const selected = await resolveSelectedTemplates(source, answers.webTemplateId, answers.apiTemplateId, root);
|
|
67
|
+
// Resolve the target application and its service token before writing files,
|
|
68
|
+
// so a cancelled selection or an authorization failure leaves nothing behind.
|
|
69
|
+
const apps = await listApplications(client);
|
|
70
|
+
const app = await selectApplication(apps, opts.appId);
|
|
71
|
+
if (!app)
|
|
72
|
+
return;
|
|
73
|
+
const serviceToken = await issueServiceToken(client, app);
|
|
74
|
+
if (serviceToken === null)
|
|
75
|
+
return;
|
|
76
|
+
const authServerUrl = normalizeInstanceUrl(app.domain);
|
|
77
|
+
for (const { entry, dir } of selected) {
|
|
78
|
+
console.log(`Adding ${entry.label} starter...`);
|
|
79
|
+
await source.copyInto(entry, dir);
|
|
80
|
+
}
|
|
81
|
+
const ctx = {
|
|
82
|
+
authServerUrl,
|
|
83
|
+
apiUrl: API_URL,
|
|
84
|
+
apiToken: serviceToken,
|
|
85
|
+
jwksKid: MANAGED_JWKS_KID,
|
|
39
86
|
};
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
// config (tokens, key id) exists below.
|
|
43
|
-
const selected = [];
|
|
44
|
-
for (const id of [answers.webTemplateId, answers.apiTemplateId]) {
|
|
45
|
-
const entry = findEntry(id);
|
|
46
|
-
const manifest = await source.readManifest(entry);
|
|
47
|
-
assertCliSupports(manifest, entry.label);
|
|
48
|
-
const dir = path.join(root, manifest.targetDir);
|
|
49
|
-
selected.push({ entry, manifest, dir });
|
|
87
|
+
for (const { manifest, dir } of selected) {
|
|
88
|
+
applyTemplateEnv(dir, manifest, ctx);
|
|
50
89
|
}
|
|
90
|
+
const webEntry = findEntry(source.registry.templates, answers.webTemplateId);
|
|
91
|
+
const apiEntry = findEntry(source.registry.templates, answers.apiTemplateId);
|
|
92
|
+
generateSeamlessConfig(root, {
|
|
93
|
+
projectName,
|
|
94
|
+
webFramework: webEntry.framework,
|
|
95
|
+
apiFramework: apiEntry.framework,
|
|
96
|
+
authMode: "managed",
|
|
97
|
+
adminMode: "image",
|
|
98
|
+
managed: {
|
|
99
|
+
instanceUrl: authServerUrl,
|
|
100
|
+
applicationId: app.id,
|
|
101
|
+
applicationName: app.name,
|
|
102
|
+
},
|
|
103
|
+
});
|
|
104
|
+
printManagedSuccessOutput({
|
|
105
|
+
projectName,
|
|
106
|
+
webFramework: webEntry.framework,
|
|
107
|
+
apiFramework: apiEntry.framework,
|
|
108
|
+
authServerUrl,
|
|
109
|
+
appName: app.name,
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
async function scaffoldLocal(root, projectName, aliases) {
|
|
113
|
+
const source = await openTemplateSource();
|
|
114
|
+
const preselect = resolveTemplateAliases(aliases, source.registry.templates);
|
|
115
|
+
const answers = await runProjectSetupPrompts(source.registry.templates, preselect);
|
|
116
|
+
const selected = await resolveSelectedTemplates(source, answers.webTemplateId, answers.apiTemplateId, root);
|
|
51
117
|
// Templates can opt into OAuth setup (manifest setup.oauth). Collect providers now,
|
|
52
118
|
// before scaffolding, so the auth server can be wired up with them below.
|
|
53
119
|
const webSelection = selected.find((s) => s.entry.kind === "web");
|
|
@@ -83,8 +149,8 @@ export async function runCLI(projectName, aliases = []) {
|
|
|
83
149
|
for (const { manifest, dir } of selected) {
|
|
84
150
|
applyTemplateEnv(dir, manifest, ctx);
|
|
85
151
|
}
|
|
86
|
-
const webEntry = findEntry(answers.webTemplateId);
|
|
87
|
-
const apiEntry = findEntry(answers.apiTemplateId);
|
|
152
|
+
const webEntry = findEntry(source.registry.templates, answers.webTemplateId);
|
|
153
|
+
const apiEntry = findEntry(source.registry.templates, answers.apiTemplateId);
|
|
88
154
|
generateSeamlessConfig(root, {
|
|
89
155
|
projectName,
|
|
90
156
|
webFramework: webEntry.framework,
|
|
@@ -102,6 +168,96 @@ export async function runCLI(projectName, aliases = []) {
|
|
|
102
168
|
});
|
|
103
169
|
printOAuthNextSteps(oauthProviders);
|
|
104
170
|
}
|
|
171
|
+
// Existing-project integration: wire the managed credentials into an already
|
|
172
|
+
// scaffolded repo without re-generating source. Kept intentionally small, it
|
|
173
|
+
// updates api/.env when an api directory exists and otherwise prints the values
|
|
174
|
+
// to paste in by hand.
|
|
175
|
+
async function integrateExistingProject(root, client, opts) {
|
|
176
|
+
if (!client) {
|
|
177
|
+
console.log("Existing project detected.");
|
|
178
|
+
console.log("Log in first to connect it to a managed instance: " +
|
|
179
|
+
kleur.cyan("seamless login") +
|
|
180
|
+
".");
|
|
181
|
+
console.log(kleur.dim("Run init in an empty directory to scaffold a new local project."));
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
const apps = await listApplications(client);
|
|
185
|
+
const app = await selectApplication(apps, opts.appId);
|
|
186
|
+
if (!app)
|
|
187
|
+
return;
|
|
188
|
+
const serviceToken = await issueServiceToken(client, app);
|
|
189
|
+
if (serviceToken === null)
|
|
190
|
+
return;
|
|
191
|
+
const authServerUrl = normalizeInstanceUrl(app.domain);
|
|
192
|
+
const apiDir = path.join(root, "api");
|
|
193
|
+
if (fs.existsSync(apiDir)) {
|
|
194
|
+
wireApiEnv(apiDir, authServerUrl, serviceToken);
|
|
195
|
+
console.log(kleur.green(`Updated ${path.join("api", ".env")}.`));
|
|
196
|
+
console.log(kleur.dim(" Set your web app's auth server URL to: ") +
|
|
197
|
+
kleur.cyan(authServerUrl));
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
printManagedValues(authServerUrl, serviceToken);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
// Merges the managed auth values into an existing api/.env, preserving any keys
|
|
204
|
+
// already there and keeping (or generating) a cookie signing key.
|
|
205
|
+
function wireApiEnv(apiDir, authServerUrl, serviceToken) {
|
|
206
|
+
const envPath = path.join(apiDir, ".env");
|
|
207
|
+
const values = fs.existsSync(envPath) ? parseEnv(envPath) : {};
|
|
208
|
+
values.AUTH_SERVER_URL = authServerUrl;
|
|
209
|
+
values.API_SERVICE_TOKEN = serviceToken;
|
|
210
|
+
values.JWKS_KID = values.JWKS_KID || MANAGED_JWKS_KID;
|
|
211
|
+
values.COOKIE_SIGNING_KEY =
|
|
212
|
+
values.COOKIE_SIGNING_KEY || generateSecret(32);
|
|
213
|
+
fs.mkdirSync(apiDir, { recursive: true });
|
|
214
|
+
writeEnv(envPath, values);
|
|
215
|
+
}
|
|
216
|
+
function printManagedValues(authServerUrl, serviceToken) {
|
|
217
|
+
console.log(kleur.green("\nManaged connection values:\n"));
|
|
218
|
+
console.log(kleur.dim(" AUTH_SERVER_URL ") + authServerUrl);
|
|
219
|
+
console.log(kleur.dim(" API_SERVICE_TOKEN ") + serviceToken);
|
|
220
|
+
console.log(kleur.dim(" JWKS_KID ") + MANAGED_JWKS_KID);
|
|
221
|
+
console.log(kleur.yellow("\nCopy the service token now. The control plane will not show it again."));
|
|
222
|
+
console.log(kleur.dim("Set AUTH_SERVER_URL and API_SERVICE_TOKEN on your backend, and the auth"));
|
|
223
|
+
console.log(kleur.dim("server URL on your frontend, then sign in to verify.\n"));
|
|
224
|
+
}
|
|
225
|
+
// Issues the app's service token, confirming first when one already exists so a
|
|
226
|
+
// scaffold does not silently break an app that is already deployed. Returns null
|
|
227
|
+
// only when the developer declines the rotation.
|
|
228
|
+
async function issueServiceToken(client, app) {
|
|
229
|
+
if (app.hasServiceToken) {
|
|
230
|
+
const proceed = await confirm({
|
|
231
|
+
message: `"${app.name}" already has a service token. Issuing a new one invalidates the existing token. Continue?`,
|
|
232
|
+
initialValue: false,
|
|
233
|
+
});
|
|
234
|
+
if (isCancel(proceed) || !proceed) {
|
|
235
|
+
console.log("Cancelled. No token was issued.");
|
|
236
|
+
return null;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
return rotateServiceToken(client, app.id);
|
|
240
|
+
}
|
|
241
|
+
// Resolves the chosen templates (reading their manifests and asserting CLI
|
|
242
|
+
// support) before any files are written, so every prompt finishes first.
|
|
243
|
+
async function resolveSelectedTemplates(source, webTemplateId, apiTemplateId, root) {
|
|
244
|
+
const selected = [];
|
|
245
|
+
for (const id of [webTemplateId, apiTemplateId]) {
|
|
246
|
+
const entry = findEntry(source.registry.templates, id);
|
|
247
|
+
const manifest = await source.readManifest(entry);
|
|
248
|
+
assertCliSupports(manifest, entry.label);
|
|
249
|
+
const dir = path.join(root, manifest.targetDir);
|
|
250
|
+
selected.push({ entry, manifest, dir });
|
|
251
|
+
}
|
|
252
|
+
return selected;
|
|
253
|
+
}
|
|
254
|
+
function findEntry(templates, id) {
|
|
255
|
+
const entry = templates.find((t) => t.id === id);
|
|
256
|
+
if (!entry) {
|
|
257
|
+
throw new Error(`Selected template "${id}" is not in the registry.`);
|
|
258
|
+
}
|
|
259
|
+
return entry;
|
|
260
|
+
}
|
|
105
261
|
// Summarizes the OAuth wiring after scaffolding: which providers are ready and which
|
|
106
262
|
// still need credentials, plus the redirect URI to register with each provider.
|
|
107
263
|
function printOAuthNextSteps(providers) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { intro, outro, text, isCancel, cancel } from "@clack/prompts";
|
|
2
|
+
import kleur from "kleur";
|
|
3
|
+
import { extractFlag } from "../core/args.js";
|
|
4
|
+
import { getActiveProfile, upsertProfile } from "../core/config.js";
|
|
5
|
+
import { KeychainUnavailableError, saveTokens } from "../core/keychain.js";
|
|
6
|
+
import { completeLogin, LoginError } from "../core/loginFlow.js";
|
|
7
|
+
export async function runLogin(args) {
|
|
8
|
+
const profileFlag = extractFlag(args, "profile");
|
|
9
|
+
const idFlag = extractFlag(profileFlag.rest, "identifier");
|
|
10
|
+
const profile = getActiveProfile({ profileFlag: profileFlag.value });
|
|
11
|
+
if (!profile) {
|
|
12
|
+
console.error(kleur.red("No active profile is configured."));
|
|
13
|
+
console.log("Add one with: " +
|
|
14
|
+
kleur.cyan("seamless profile add <name> --instance-url <url>"));
|
|
15
|
+
process.exit(1);
|
|
16
|
+
}
|
|
17
|
+
intro(`Log in to ${kleur.bold(profile.name)} (${profile.instanceUrl})`);
|
|
18
|
+
let identifier = (idFlag.value ?? idFlag.rest[0])?.trim();
|
|
19
|
+
if (!identifier) {
|
|
20
|
+
const answer = await text({
|
|
21
|
+
message: "Email or phone",
|
|
22
|
+
placeholder: profile.email ?? "you@example.com",
|
|
23
|
+
initialValue: profile.email ?? "",
|
|
24
|
+
validate: (value) => value && value.trim() ? undefined : "An identifier is required",
|
|
25
|
+
});
|
|
26
|
+
if (isCancel(answer)) {
|
|
27
|
+
cancel("Cancelled.");
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
identifier = answer.trim();
|
|
31
|
+
}
|
|
32
|
+
try {
|
|
33
|
+
const result = await completeLogin({
|
|
34
|
+
instanceUrl: profile.instanceUrl,
|
|
35
|
+
identifier,
|
|
36
|
+
getCode: async ({ resent }) => {
|
|
37
|
+
const answer = await text({
|
|
38
|
+
message: resent ? "Enter the new code" : "Enter the code we sent you",
|
|
39
|
+
placeholder: "123456",
|
|
40
|
+
validate: (value) => /^\d{4,8}$/.test((value ?? "").trim())
|
|
41
|
+
? undefined
|
|
42
|
+
: "Enter the numeric code from the message",
|
|
43
|
+
});
|
|
44
|
+
if (isCancel(answer))
|
|
45
|
+
return null;
|
|
46
|
+
return answer.trim();
|
|
47
|
+
},
|
|
48
|
+
notify: (event) => {
|
|
49
|
+
switch (event.type) {
|
|
50
|
+
case "code_sent":
|
|
51
|
+
console.log(kleur.dim(`A code was sent to ${identifier}.`));
|
|
52
|
+
break;
|
|
53
|
+
case "code_resent":
|
|
54
|
+
console.log(kleur.dim("Your previous code expired, so we sent a new one."));
|
|
55
|
+
break;
|
|
56
|
+
case "incorrect":
|
|
57
|
+
console.log(kleur.yellow(`That code was not accepted. ${event.attemptsLeft} attempt${event.attemptsLeft === 1 ? "" : "s"} left.`));
|
|
58
|
+
break;
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
});
|
|
62
|
+
if (!result) {
|
|
63
|
+
cancel("Cancelled.");
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
await persistSession(profile, result);
|
|
67
|
+
outro(kleur.green(`Logged in as ${result.identity.email ?? identifier}.`));
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
if (err instanceof LoginError || err instanceof KeychainUnavailableError) {
|
|
71
|
+
outro(kleur.red(err.message));
|
|
72
|
+
process.exit(1);
|
|
73
|
+
}
|
|
74
|
+
throw err;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
async function persistSession(profile, result) {
|
|
78
|
+
await saveTokens(profile, result.tokens);
|
|
79
|
+
upsertProfile({
|
|
80
|
+
...profile,
|
|
81
|
+
sub: result.identity.sub ?? profile.sub,
|
|
82
|
+
email: result.identity.email ?? profile.email,
|
|
83
|
+
identifierType: result.identity.identifierType,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=login.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAgB,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,UAAU,EAAoB,MAAM,sBAAsB,CAAC;AAEnF,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAc;IAC3C,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,WAAW,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAE3D,MAAM,OAAO,GAAG,gBAAgB,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;IACrE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CACT,gBAAgB;YACd,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CACjE,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC;IAExE,IAAI,UAAU,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAC1D,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC;YACxB,OAAO,EAAE,gBAAgB;YACzB,WAAW,EAAE,OAAO,CAAC,KAAK,IAAI,iBAAiB;YAC/C,YAAY,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE;YACjC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAClB,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,2BAA2B;SAClE,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACrB,MAAM,CAAC,YAAY,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,UAAU,GAAI,MAAiB,CAAC,IAAI,EAAE,CAAC;IACzC,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;YACjC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,UAAU;YACV,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;gBAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC;oBACxB,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,4BAA4B;oBACrE,WAAW,EAAE,QAAQ;oBACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAClB,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;wBACpC,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC,yCAAyC;iBAChD,CAAC,CAAC;gBACH,IAAI,QAAQ,CAAC,MAAM,CAAC;oBAAE,OAAO,IAAI,CAAC;gBAClC,OAAQ,MAAiB,CAAC,IAAI,EAAE,CAAC;YACnC,CAAC;YACD,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;gBAChB,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;oBACnB,KAAK,WAAW;wBACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,UAAU,GAAG,CAAC,CAAC,CAAC;wBAC5D,MAAM;oBACR,KAAK,aAAa;wBAChB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAC/D,CAAC;wBACF,MAAM;oBACR,KAAK,WAAW;wBACd,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,+BAA+B,KAAK,CAAC,YAAY,WAC/C,KAAK,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAClC,QAAQ,CACT,CACF,CAAC;wBACF,MAAM;gBACV,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,CAAC,YAAY,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,MAAM,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACtC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC;IAC7E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,UAAU,IAAI,GAAG,YAAY,wBAAwB,EAAE,CAAC;YACzE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,OAAgB,EAChB,MAAmB;IAEnB,MAAM,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACzC,aAAa,CAAC;QACZ,GAAG,OAAO;QACV,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG;QACvC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK;QAC7C,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC,cAAc;KAC/C,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import kleur from "kleur";
|
|
2
|
+
import { extractFlag } from "../core/args.js";
|
|
3
|
+
import { createAuthClient, ReauthRequiredError } from "../core/authClient.js";
|
|
4
|
+
import { getActiveProfile } from "../core/config.js";
|
|
5
|
+
import { clearLocalSession, revokeSession } from "../core/session.js";
|
|
6
|
+
export async function runLogout(args) {
|
|
7
|
+
const all = args.includes("--all");
|
|
8
|
+
const { value: profileFlag } = extractFlag(args.filter((a) => a !== "--all"), "profile");
|
|
9
|
+
const profile = getActiveProfile({ profileFlag });
|
|
10
|
+
if (!profile) {
|
|
11
|
+
console.log(kleur.yellow("No active profile. Nothing to log out of."));
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
let client;
|
|
15
|
+
try {
|
|
16
|
+
client = await createAuthClient({ profileFlag });
|
|
17
|
+
}
|
|
18
|
+
catch (err) {
|
|
19
|
+
if (err instanceof ReauthRequiredError) {
|
|
20
|
+
await clearLocalSession(profile);
|
|
21
|
+
console.log(kleur.green("You are already logged out."));
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
throw err;
|
|
25
|
+
}
|
|
26
|
+
let revoked = false;
|
|
27
|
+
try {
|
|
28
|
+
revoked = await revokeSession(client, { all });
|
|
29
|
+
}
|
|
30
|
+
catch (err) {
|
|
31
|
+
if (!(err instanceof ReauthRequiredError))
|
|
32
|
+
throw err;
|
|
33
|
+
revoked = true;
|
|
34
|
+
}
|
|
35
|
+
await clearLocalSession(profile);
|
|
36
|
+
if (revoked) {
|
|
37
|
+
console.log(kleur.green(all ? "Logged out of all sessions." : "Logged out."));
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
console.log(kleur.yellow("Cleared the local session. The instance reported a problem revoking the session."));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=logout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logout.js","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEtE,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAc;IAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,WAAW,CACxC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,EACjC,SAAS,CACV,CAAC;IAEF,MAAM,OAAO,GAAG,gBAAgB,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IAClD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,2CAA2C,CAAC,CAAC,CAAC;QACvE,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,gBAAgB,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,mBAAmB,EAAE,CAAC;YACvC,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,CAAC,GAAG,YAAY,mBAAmB,CAAC;YAAE,MAAM,GAAG,CAAC;QACrD,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IAED,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAEjC,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,aAAa,CAAC,CACjE,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,kFAAkF,CACnF,CACF,CAAC;IACJ,CAAC;AACH,CAAC"}
|