@confiqure/cli 0.1.0 → 0.1.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/dist/commands/login.js +32 -1
- package/dist/commands/login.js.map +1 -1
- package/package.json +1 -1
package/dist/commands/login.js
CHANGED
|
@@ -2,6 +2,31 @@ import { input, password } from "@inquirer/prompts";
|
|
|
2
2
|
import chalk from "chalk";
|
|
3
3
|
import { credentialsPath, loadCredentials, saveCredentials, } from "../credentials.js";
|
|
4
4
|
import { ApiError, getWhoami } from "../api.js";
|
|
5
|
+
/**
|
|
6
|
+
* A confiqure API token is `cqai_` + 43 url-safe base64 chars (no padding) =
|
|
7
|
+
* exactly 48 chars. Anything shorter is almost certainly a clipboard
|
|
8
|
+
* truncation — surface that locally instead of letting the user discover it
|
|
9
|
+
* via a server-side "Invalid token" 401.
|
|
10
|
+
*/
|
|
11
|
+
const TOKEN_TOTAL_LEN = 48;
|
|
12
|
+
function validateToken(v) {
|
|
13
|
+
const trimmed = v.trim();
|
|
14
|
+
if (trimmed !== v) {
|
|
15
|
+
return "Token has leading/trailing whitespace — copy again without surrounding spaces.";
|
|
16
|
+
}
|
|
17
|
+
if (!v.startsWith("cqai_")) {
|
|
18
|
+
return "Token must start with cqai_";
|
|
19
|
+
}
|
|
20
|
+
if (v.length !== TOKEN_TOTAL_LEN) {
|
|
21
|
+
return `Token must be exactly ${TOKEN_TOTAL_LEN} characters; got ${v.length}. Looks truncated — paste from the dashboard's copy button.`;
|
|
22
|
+
}
|
|
23
|
+
// base64 url-safe alphabet check on the secret portion.
|
|
24
|
+
const secret = v.slice(5);
|
|
25
|
+
if (!/^[A-Za-z0-9_-]+$/.test(secret)) {
|
|
26
|
+
return "Token contains characters outside the url-safe base64 alphabet. Re-copy from the dashboard.";
|
|
27
|
+
}
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
5
30
|
export function registerLogin(program) {
|
|
6
31
|
program
|
|
7
32
|
.command("login")
|
|
@@ -20,8 +45,14 @@ export function registerLogin(program) {
|
|
|
20
45
|
(await password({
|
|
21
46
|
message: "API token (cqai_…):",
|
|
22
47
|
mask: "*",
|
|
23
|
-
validate:
|
|
48
|
+
validate: validateToken,
|
|
24
49
|
}));
|
|
50
|
+
// --token bypasses the prompt validator, so re-check explicitly.
|
|
51
|
+
const flagError = opts.token ? validateToken(opts.token) : true;
|
|
52
|
+
if (flagError !== true) {
|
|
53
|
+
console.error(chalk.red("✗"), flagError);
|
|
54
|
+
process.exit(1);
|
|
55
|
+
}
|
|
25
56
|
// Resolve workspaceKey. Manual override skips the network call (useful
|
|
26
57
|
// for CI / offline setup); otherwise we ask the backend.
|
|
27
58
|
let workspaceKey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAEL,eAAe,EACf,eAAe,EACf,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEhD,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC5C,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,6CAA6C,CAAC;SAC1D,MAAM,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;SACpD,MAAM,CACL,mBAAmB,EACnB,uFAAuF,CACxF;SACA,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;SAC/C,MAAM,CAAC,KAAK,EAAE,IAA8D,EAAE,EAAE;QAC/E,MAAM,QAAQ,GAAG,MAAM,eAAe,EAAE,CAAC;QACzC,MAAM,OAAO,GACX,IAAI,CAAC,OAAO;YACZ,CAAC,MAAM,KAAK,CAAC;gBACX,OAAO,EAAE,eAAe;gBACxB,OAAO,EAAE,QAAQ,EAAE,OAAO,IAAI,0BAA0B;aACzD,CAAC,CAAC,CAAC;QACN,MAAM,KAAK,GACT,IAAI,CAAC,KAAK;YACV,CAAC,MAAM,QAAQ,CAAC;gBACd,OAAO,EAAE,qBAAqB;gBAC9B,IAAI,EAAE,GAAG;gBACT,QAAQ,EAAE,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
|