terse-cli 0.1.51 → 0.1.52
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/authOrg.d.ts +12 -0
- package/dist/commands/authOrg.d.ts.map +1 -0
- package/dist/commands/authOrg.js +120 -0
- package/dist/commands/authOrg.js.map +1 -0
- package/dist/commands/authStatus.d.ts +2 -0
- package/dist/commands/authStatus.d.ts.map +1 -0
- package/dist/commands/authStatus.js +27 -0
- package/dist/commands/authStatus.js.map +1 -0
- package/package.json +4 -3
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get an API key scoped to `orgId`, reusing a cached one if we have it and
|
|
3
|
+
* otherwise minting a fresh one via `/sdk/auth/switch-organization`. Does NOT
|
|
4
|
+
* change the user's active org — callers that want to flip active should use
|
|
5
|
+
* `setActiveOrgToken` directly.
|
|
6
|
+
*/
|
|
7
|
+
export declare function resolveApiKeyForOrg(orgId: string, orgName: string, currentApiKey: string): Promise<string>;
|
|
8
|
+
export declare function authOrgList(opts: {
|
|
9
|
+
json?: boolean;
|
|
10
|
+
}): Promise<void>;
|
|
11
|
+
export declare function authOrgSwitch(orgIdArg: string | undefined): Promise<void>;
|
|
12
|
+
//# sourceMappingURL=authOrg.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authOrg.d.ts","sourceRoot":"","sources":["../../src/commands/authOrg.ts"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMhH;AAuBD,wBAAsB,WAAW,CAAC,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBzE;AAED,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAiE/E"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { select } from "@inquirer/prompts";
|
|
2
|
+
import chalk from "chalk";
|
|
3
|
+
import { ApiError, fetchWithAuth } from "../api.js";
|
|
4
|
+
import { isNonInteractive } from "../cliHelpers.js";
|
|
5
|
+
import { cacheOrgToken, getStoredApiKey, getStoredApiKeyForOrg, setActiveOrg, setActiveOrgToken } from "../userConfig.js";
|
|
6
|
+
/**
|
|
7
|
+
* Get an API key scoped to `orgId`, reusing a cached one if we have it and
|
|
8
|
+
* otherwise minting a fresh one via `/sdk/auth/switch-organization`. Does NOT
|
|
9
|
+
* change the user's active org — callers that want to flip active should use
|
|
10
|
+
* `setActiveOrgToken` directly.
|
|
11
|
+
*/
|
|
12
|
+
export async function resolveApiKeyForOrg(orgId, orgName, currentApiKey) {
|
|
13
|
+
const cached = getStoredApiKeyForOrg(orgId);
|
|
14
|
+
if (cached)
|
|
15
|
+
return cached;
|
|
16
|
+
const minted = await fetchWithAuth("/sdk/auth/switch-organization", currentApiKey, { organizationId: orgId }, "POST");
|
|
17
|
+
cacheOrgToken(minted.organization.id, minted.apiKey, orgName);
|
|
18
|
+
return minted.apiKey;
|
|
19
|
+
}
|
|
20
|
+
function readApiKeyOrExit() {
|
|
21
|
+
const apiKey = getStoredApiKey();
|
|
22
|
+
if (!apiKey) {
|
|
23
|
+
console.log("Not logged in. Run `terse auth login`.");
|
|
24
|
+
process.exit(1);
|
|
25
|
+
}
|
|
26
|
+
return apiKey;
|
|
27
|
+
}
|
|
28
|
+
async function loadOrganizations(apiKey) {
|
|
29
|
+
try {
|
|
30
|
+
return await fetchWithAuth("/sdk/me/organizations", apiKey);
|
|
31
|
+
}
|
|
32
|
+
catch (err) {
|
|
33
|
+
if (err instanceof ApiError && err.status === 401) {
|
|
34
|
+
console.log("Credentials expired. Run `terse auth login`.");
|
|
35
|
+
process.exit(1);
|
|
36
|
+
}
|
|
37
|
+
throw err;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
export async function authOrgList(opts) {
|
|
41
|
+
const apiKey = readApiKeyOrExit();
|
|
42
|
+
const data = await loadOrganizations(apiKey);
|
|
43
|
+
if (opts.json) {
|
|
44
|
+
process.stdout.write(JSON.stringify(data, null, 2) + "\n");
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
if (data.organizations.length === 0) {
|
|
48
|
+
console.log("No organizations.");
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
for (const org of data.organizations) {
|
|
52
|
+
const active = org.id === data.activeOrganizationId;
|
|
53
|
+
const marker = active ? chalk.green("*") : " ";
|
|
54
|
+
console.log(`${marker} ${org.name} ${chalk.dim(org.id)}`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
export async function authOrgSwitch(orgIdArg) {
|
|
58
|
+
const apiKey = readApiKeyOrExit();
|
|
59
|
+
const data = await loadOrganizations(apiKey);
|
|
60
|
+
if (data.organizations.length === 0) {
|
|
61
|
+
console.log("No organizations.");
|
|
62
|
+
process.exit(1);
|
|
63
|
+
}
|
|
64
|
+
if (data.organizations.length === 1) {
|
|
65
|
+
console.log("Only one organization, nothing to switch to.");
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
let targetId;
|
|
69
|
+
if (orgIdArg) {
|
|
70
|
+
const match = data.organizations.find(o => o.id === orgIdArg);
|
|
71
|
+
if (!match) {
|
|
72
|
+
console.error(`Unknown organization id "${orgIdArg}". Valid ids:`);
|
|
73
|
+
for (const o of data.organizations)
|
|
74
|
+
console.error(` ${o.id} ${chalk.dim(o.name)}`);
|
|
75
|
+
process.exit(1);
|
|
76
|
+
}
|
|
77
|
+
if (match.id === data.activeOrganizationId) {
|
|
78
|
+
console.log(`Already on ${match.name}.`);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
targetId = match.id;
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
if (isNonInteractive()) {
|
|
85
|
+
console.error("Org id required in non-interactive mode. Pass it as an argument: `terse auth org switch <org-id>`.");
|
|
86
|
+
process.exit(1);
|
|
87
|
+
}
|
|
88
|
+
targetId = await select({
|
|
89
|
+
message: "Switch to which organization?",
|
|
90
|
+
choices: data.organizations.map(o => {
|
|
91
|
+
const isCurrent = o.id === data.activeOrganizationId;
|
|
92
|
+
return {
|
|
93
|
+
name: isCurrent ? `${o.name} ${chalk.dim("(current)")}` : `${o.name} ${chalk.dim(o.id)}`,
|
|
94
|
+
value: o.id,
|
|
95
|
+
disabled: isCurrent
|
|
96
|
+
};
|
|
97
|
+
})
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
const targetOrg = data.organizations.find(o => o.id === targetId);
|
|
101
|
+
if (getStoredApiKeyForOrg(targetId)) {
|
|
102
|
+
setActiveOrg(targetId);
|
|
103
|
+
console.log(`Switched to ${targetOrg.name}.`);
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
let response;
|
|
107
|
+
try {
|
|
108
|
+
response = await fetchWithAuth("/sdk/auth/switch-organization", apiKey, { organizationId: targetId }, "POST");
|
|
109
|
+
}
|
|
110
|
+
catch (err) {
|
|
111
|
+
if (err instanceof ApiError && err.status === 401) {
|
|
112
|
+
console.log("Credentials expired. Run `terse auth login`.");
|
|
113
|
+
process.exit(1);
|
|
114
|
+
}
|
|
115
|
+
throw err;
|
|
116
|
+
}
|
|
117
|
+
setActiveOrgToken(response.organization.id, response.apiKey, response.organization.name);
|
|
118
|
+
console.log(`Switched to ${response.organization.name}.`);
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=authOrg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authOrg.js","sourceRoot":"","sources":["../../src/commands/authOrg.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authStatus.d.ts","sourceRoot":"","sources":["../../src/commands/authStatus.ts"],"names":[],"mappings":"AAeA,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAuBhD"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import { ApiError, fetchWithAuth } from "../api.js";
|
|
3
|
+
import { getStoredApiKey } from "../userConfig.js";
|
|
4
|
+
export async function authStatus() {
|
|
5
|
+
const apiKey = getStoredApiKey();
|
|
6
|
+
if (!apiKey) {
|
|
7
|
+
console.log("Not logged in. Run `terse auth login`.");
|
|
8
|
+
process.exit(1);
|
|
9
|
+
}
|
|
10
|
+
let me;
|
|
11
|
+
try {
|
|
12
|
+
me = await fetchWithAuth("/sdk/me", apiKey);
|
|
13
|
+
}
|
|
14
|
+
catch (err) {
|
|
15
|
+
if (err instanceof ApiError && err.status === 401) {
|
|
16
|
+
console.log("Credentials expired. Run `terse auth login`.");
|
|
17
|
+
process.exit(1);
|
|
18
|
+
}
|
|
19
|
+
throw err;
|
|
20
|
+
}
|
|
21
|
+
const name = me.displayName || me.email;
|
|
22
|
+
const orgName = me.organization?.name ?? "(no organization)";
|
|
23
|
+
const orgId = me.organization?.id ?? me.organizationId;
|
|
24
|
+
console.log(`User: ${name} ${chalk.dim(me.email)}`);
|
|
25
|
+
console.log(`Org: ${orgName} ${chalk.dim(orgId)}`);
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=authStatus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authStatus.js","sourceRoot":"","sources":["../../src/commands/authStatus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAYlD,MAAM,CAAC,KAAK,UAAU,UAAU;IAC5B,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;IAChC,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAA;QACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnB,CAAC;IAED,IAAI,EAAc,CAAA;IAClB,IAAI,CAAC;QACD,EAAE,GAAG,MAAM,aAAa,CAAa,SAAS,EAAE,MAAM,CAAC,CAAA;IAC3D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,IAAI,GAAG,YAAY,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAA;YAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,CAAC;QACD,MAAM,GAAG,CAAA;IACb,CAAC;IAED,MAAM,IAAI,GAAG,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,KAAK,CAAA;IACvC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,EAAE,IAAI,IAAI,mBAAmB,CAAA;IAC5D,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,cAAc,CAAA;IACtD,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IACnD,OAAO,CAAC,GAAG,CAAC,SAAS,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;AACvD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "terse-cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.52",
|
|
4
4
|
"type": "module",
|
|
5
|
+
"license": "SEE LICENSE IN LICENSE.md",
|
|
5
6
|
"bin": {
|
|
6
7
|
"terse": "dist/index.js"
|
|
7
8
|
},
|
|
@@ -21,8 +22,8 @@
|
|
|
21
22
|
"luxon": "^3.7.2",
|
|
22
23
|
"ora": "^8.0.0",
|
|
23
24
|
"tsx": "^4.0.0",
|
|
24
|
-
"terse-sdk": "0.1.
|
|
25
|
-
"terse-types": "0.0.
|
|
25
|
+
"terse-sdk": "0.1.41",
|
|
26
|
+
"terse-types": "0.0.36"
|
|
26
27
|
},
|
|
27
28
|
"devDependencies": {
|
|
28
29
|
"@types/luxon": "^3.7.1",
|