@l4yercak3/cli 2.0.0-alpha.1 → 2.0.0-alpha.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/bin/sevenlayers.js +15 -0
- package/dist/bin/sevenlayers.js.map +1 -1
- package/dist/commands/app/remote.d.ts.map +1 -1
- package/dist/commands/app/remote.js +8 -3
- package/dist/commands/app/remote.js.map +1 -1
- package/dist/commands/auth/login.d.ts +3 -0
- package/dist/commands/auth/login.d.ts.map +1 -0
- package/dist/commands/auth/login.js +73 -0
- package/dist/commands/auth/login.js.map +1 -0
- package/dist/commands/env/pick.d.ts +3 -0
- package/dist/commands/env/pick.d.ts.map +1 -0
- package/dist/commands/env/pick.js +155 -0
- package/dist/commands/env/pick.js.map +1 -0
- package/dist/commands/org/list.d.ts +3 -0
- package/dist/commands/org/list.d.ts.map +1 -0
- package/dist/commands/org/list.js +48 -0
- package/dist/commands/org/list.js.map +1 -0
- package/dist/commands/org/shared.d.ts +28 -0
- package/dist/commands/org/shared.d.ts.map +1 -0
- package/dist/commands/org/shared.js +149 -0
- package/dist/commands/org/shared.js.map +1 -0
- package/dist/config/auth-store.d.ts +12 -0
- package/dist/config/auth-store.d.ts.map +1 -0
- package/dist/config/auth-store.js +84 -0
- package/dist/config/auth-store.js.map +1 -0
- package/dist/tests/auth-org-env.test.d.ts +2 -0
- package/dist/tests/auth-org-env.test.d.ts.map +1 -0
- package/dist/tests/auth-org-env.test.js +206 -0
- package/dist/tests/auth-org-env.test.js.map +1 -0
- package/package.json +1 -1
package/dist/bin/sevenlayers.js
CHANGED
|
@@ -16,8 +16,11 @@ const setup_1 = require("../commands/app/setup");
|
|
|
16
16
|
const sync_1 = require("../commands/app/sync");
|
|
17
17
|
const target_1 = require("../commands/doctor/target");
|
|
18
18
|
const list_1 = require("../commands/env/list");
|
|
19
|
+
const pick_1 = require("../commands/env/pick");
|
|
19
20
|
const set_1 = require("../commands/env/set");
|
|
20
21
|
const use_1 = require("../commands/env/use");
|
|
22
|
+
const login_1 = require("../commands/auth/login");
|
|
23
|
+
const list_2 = require("../commands/org/list");
|
|
21
24
|
const connect_2 = require("../commands/legacy/connect");
|
|
22
25
|
const pages_2 = require("../commands/legacy/pages");
|
|
23
26
|
const spread_1 = require("../commands/legacy/spread");
|
|
@@ -41,7 +44,10 @@ function printHelp() {
|
|
|
41
44
|
console.log((0, colors_1.colorOrange)("Usage: sevenlayers <command> [options]"));
|
|
42
45
|
console.log("");
|
|
43
46
|
console.log("Core commands:");
|
|
47
|
+
console.log(" auth login Store auth token/backend for interactive org wiring");
|
|
48
|
+
console.log(" org list List organizations for the authenticated account");
|
|
44
49
|
console.log(" env list List configured target profiles");
|
|
50
|
+
console.log(" env pick Interactive profile+organization selection");
|
|
45
51
|
console.log(" env use <profile> Set active profile");
|
|
46
52
|
console.log(" env set <profile> Configure profile endpoints/default targets");
|
|
47
53
|
console.log(" doctor target Validate resolved profile/org/app target context");
|
|
@@ -102,6 +108,15 @@ async function run() {
|
|
|
102
108
|
if (second === "set") {
|
|
103
109
|
return (0, set_1.handleEnvSet)(parsed);
|
|
104
110
|
}
|
|
111
|
+
if (second === "pick") {
|
|
112
|
+
return (0, pick_1.handleEnvPick)(parsed);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
if (first === "auth" && second === "login") {
|
|
116
|
+
return (0, login_1.handleAuthLogin)(parsed);
|
|
117
|
+
}
|
|
118
|
+
if (first === "org" && (!second || second === "list")) {
|
|
119
|
+
return (0, list_2.handleOrgList)(parsed);
|
|
105
120
|
}
|
|
106
121
|
if (first === "doctor" && second === "target") {
|
|
107
122
|
return (0, target_1.handleDoctorTarget)(parsed);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sevenlayers.js","sourceRoot":"","sources":["../../src/bin/sevenlayers.ts"],"names":[],"mappings":";;;;;;AAEA,sEAAqC;AACrC,uCAA2D;AAC3D,2CAAkE;AAClE,qDAA2D;AAC3D,+CAAqD;AACrD,+CAAqD;AACrD,iDAAuD;AACvD,uDAA6D;AAC7D,iDAAuD;AACvD,+CAAqD;AACrD,sDAA+D;AAC/D,+CAAqD;AACrD,6CAAmD;AACnD,6CAAmD;AACnD,wDAAiE;AACjE,oDAA6D;AAC7D,sDAA+D;AAC/D,kDAA2D;AAC3D,uDAA6D;AAC7D,+CAAqD;AACrD,qDAA2D;AAC3D,+CAAqD;AACrD,mDAAyD;AACzD,qDAA+D;AAC/D,qDAA+D;AAC/D,qDAA+D;AAC/D,iDAAyD;AACzD,yDAAiE;AACjE,+DAAuE;AACvE,mDAA2D;AAC3D,uDAA+D;AAC/D,qCAAwC;AAExC,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC,IAAA,iBAAU,GAAE,CAAC,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAC,IAAA,oBAAW,EAAC,wCAAwC,CAAC,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC9B,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC;IACtF,OAAO,CAAC,GAAG,CAAC,6EAA6E,CAAC,CAAC;IAC3F,OAAO,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC;IACnF,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;IAC7E,OAAO,CAAC,GAAG,CAAC,2EAA2E,CAAC,CAAC;IACzF,OAAO,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAC;IAC1F,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;IAC7E,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC;IACpF,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;IAClF,OAAO,CAAC,GAAG,CAAC,yEAAyE,CAAC,CAAC;IACvF,OAAO,CAAC,GAAG,CAAC,iFAAiF,CAAC,CAAC;IAC/F,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC;IACtF,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,CAAC,6EAA6E,CAAC,CAAC;IAC3F,OAAO,CAAC,GAAG,CAAC,6EAA6E,CAAC,CAAC;IAC3F,OAAO,CAAC,GAAG,CAAC,2EAA2E,CAAC,CAAC;IACzF,OAAO,CAAC,GAAG,CAAC,gFAAgF,CAAC,CAAC;IAC9F,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,yEAAyE,CAAC,CAAC;IACvF,OAAO,CAAC,GAAG,CAAC,6EAA6E,CAAC,CAAC;IAC3F,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;IACrF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtB,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CACT,IAAA,kBAAS,EAAC,+EAA+E,CAAC,CAC3F,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,GAAG;IAChB,MAAM,MAAM,GAAG,IAAA,gBAAS,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhD,IACE,MAAM,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;QAC/B,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,MAAM,EAChC,CAAC;QACD,SAAS,EAAE,CAAC;QACZ,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,IAAA,uBAAgB,EAAC,MAAM,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QAC/E,OAAO,CAAC,GAAG,CAAC,sBAAG,CAAC,OAAO,CAAC,CAAC;QACzB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC;IAE3C,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACjC,OAAO,IAAA,oBAAa,EAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;QAED,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,OAAO,IAAA,kBAAY,EAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,OAAO,IAAA,kBAAY,EAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,IAAI,KAAK,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC9C,OAAO,IAAA,2BAAkB,EAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,KAAK,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACzC,OAAO,IAAA,oBAAa,EAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,KAAK,KAAK,KAAK,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC5C,OAAO,IAAA,0BAAgB,EAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,KAAK,KAAK,KAAK,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;QAC7C,OAAO,IAAA,4BAAiB,EAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,KAAK,KAAK,KAAK,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QAC1C,OAAO,IAAA,sBAAc,EAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,KAAK,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACzC,OAAO,IAAA,oBAAa,EAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,KAAK,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACzC,OAAO,IAAA,oBAAa,EAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,KAAK,KAAK,KAAK,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QAC1C,OAAO,IAAA,sBAAc,EAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,KAAK,KAAK,KAAK,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;QAC7C,OAAO,IAAA,4BAAiB,EAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,KAAK,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACzC,OAAO,IAAA,oBAAa,EAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,KAAK,KAAK,KAAK,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC5C,OAAO,IAAA,0BAAgB,EAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,KAAK,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACzC,OAAO,IAAA,oBAAa,EAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,KAAK,KAAK,KAAK,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC3C,OAAO,IAAA,wBAAe,EAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QAC9C,OAAO,IAAA,0BAAkB,EAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QAC9C,OAAO,IAAA,0BAAkB,EAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QAC9C,OAAO,IAAA,0BAAkB,EAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,KAAK,KAAK,OAAO,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QAC3C,OAAO,IAAA,sBAAe,EAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,KAAK,KAAK,OAAO,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;QAC/C,OAAO,IAAA,8BAAmB,EAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,KAAK,KAAK,OAAO,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;QAClD,OAAO,IAAA,oCAAsB,EAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,KAAK,KAAK,OAAO,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QAC5C,OAAO,IAAA,wBAAgB,EAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,KAAK,KAAK,OAAO,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9C,OAAO,IAAA,4BAAkB,EAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,OAAO,IAAA,oBAAa,EAAC,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO,IAAA,2BAAkB,EAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,IAAA,6BAAmB,EAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,OAAO,IAAA,uBAAgB,EAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,OAAO,IAAA,yBAAiB,EAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,IAAA,iBAAQ,EAAC,oBAAoB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,SAAS,EAAE,CAAC;IACZ,OAAO,CAAC,CAAC;AACX,CAAC;AAED,GAAG,EAAE;KACF,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;IACjB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC;KACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IACxB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,CAAC,KAAK,CAAC,IAAA,iBAAQ,EAAC,cAAc,OAAO,EAAE,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"sevenlayers.js","sourceRoot":"","sources":["../../src/bin/sevenlayers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../../src/commands/app/remote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAqC,MAAM,iBAAiB,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,KAAK,aAAa,EAAwB,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../../src/commands/app/remote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAqC,MAAM,iBAAiB,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,KAAK,aAAa,EAAwB,MAAM,2BAA2B,CAAC;AAGrF,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,2BAA2B;IAC1C,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;CAC1B;AA+BD,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,qBAAqB,CAAC,CAqBhC"}
|
|
@@ -4,7 +4,8 @@ exports.resolveRemoteCommand = resolveRemoteCommand;
|
|
|
4
4
|
const args_1 = require("../../core/args");
|
|
5
5
|
const platform_1 = require("../../api/platform");
|
|
6
6
|
const target_guard_1 = require("../../safety/target-guard");
|
|
7
|
-
|
|
7
|
+
const auth_store_1 = require("../../config/auth-store");
|
|
8
|
+
async function resolveApiToken(parsed) {
|
|
8
9
|
const explicit = (0, args_1.getOptionString)(parsed, "token") ??
|
|
9
10
|
(0, args_1.getOptionString)(parsed, "api-token") ??
|
|
10
11
|
(0, args_1.getOptionString)(parsed, "api-key");
|
|
@@ -21,6 +22,10 @@ function resolveApiToken(parsed) {
|
|
|
21
22
|
return candidate.trim();
|
|
22
23
|
}
|
|
23
24
|
}
|
|
25
|
+
const authStore = await (0, auth_store_1.loadAuthStore)();
|
|
26
|
+
if (authStore.token && authStore.token.trim().length > 0) {
|
|
27
|
+
return authStore.token.trim();
|
|
28
|
+
}
|
|
24
29
|
return undefined;
|
|
25
30
|
}
|
|
26
31
|
async function resolveRemoteCommand(parsed, options) {
|
|
@@ -28,9 +33,9 @@ async function resolveRemoteCommand(parsed, options) {
|
|
|
28
33
|
requireOrgApp: options.requireOrgApp,
|
|
29
34
|
mutatingCommand: options.mutatingCommand
|
|
30
35
|
});
|
|
31
|
-
const token = resolveApiToken(parsed);
|
|
36
|
+
const token = await resolveApiToken(parsed);
|
|
32
37
|
if (!token) {
|
|
33
|
-
throw new Error("Missing API token. Provide --token <value
|
|
38
|
+
throw new Error("Missing API token. Provide --token <value>, set SEVENLAYERS_API_TOKEN/L4YERCAK3_API_KEY, or run 'sevenlayers auth login'.");
|
|
34
39
|
}
|
|
35
40
|
return {
|
|
36
41
|
target,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../../../src/commands/app/remote.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../../../src/commands/app/remote.ts"],"names":[],"mappings":";;AA6CA,oDAwBC;AArED,0CAAqF;AACrF,iDAA6D;AAC7D,4DAAqF;AACrF,wDAAwD;AAaxD,KAAK,UAAU,eAAe,CAAC,MAAkB;IAC/C,MAAM,QAAQ,GACZ,IAAA,sBAAe,EAAC,MAAM,EAAE,OAAO,CAAC;QAChC,IAAA,sBAAe,EAAC,MAAM,EAAE,WAAW,CAAC;QACpC,IAAA,sBAAe,EAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACrC,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3C,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,kBAAkB,GAAG;QACzB,OAAO,CAAC,GAAG,CAAC,qBAAqB;QACjC,OAAO,CAAC,GAAG,CAAC,mBAAmB;QAC/B,OAAO,CAAC,GAAG,CAAC,iBAAiB;KAC9B,CAAC;IAEF,KAAK,MAAM,SAAS,IAAI,kBAAkB,EAAE,CAAC;QAC3C,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,IAAA,0BAAa,GAAE,CAAC;IACxC,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzD,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAChC,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAEM,KAAK,UAAU,oBAAoB,CACxC,MAAkB,EAClB,OAAoC;IAEpC,MAAM,MAAM,GAAG,MAAM,IAAA,mCAAoB,EAAC,MAAM,EAAE;QAChD,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,eAAe,EAAE,OAAO,CAAC,eAAe;KACzC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;IAC5C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,2HAA2H,CAC5H,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM;QACN,IAAI,EAAE,IAAA,uBAAgB,EAAC,MAAM,EAAE,MAAM,CAAC;QACtC,GAAG,EAAE,IAAA,kCAAuB,EAAC;YAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,KAAK;SACN,CAAC;KACH,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/login.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAAqC,MAAM,iBAAiB,CAAC;AAyBrF,wBAAsB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAkDzE"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.handleAuthLogin = handleAuthLogin;
|
|
7
|
+
const promises_1 = __importDefault(require("node:readline/promises"));
|
|
8
|
+
const node_process_1 = require("node:process");
|
|
9
|
+
const profile_store_1 = require("../../config/profile-store");
|
|
10
|
+
const auth_store_1 = require("../../config/auth-store");
|
|
11
|
+
const args_1 = require("../../core/args");
|
|
12
|
+
const colors_1 = require("../../core/colors");
|
|
13
|
+
const shared_1 = require("../org/shared");
|
|
14
|
+
function printUsage() {
|
|
15
|
+
console.log((0, colors_1.colorOrange)("Usage: sevenlayers auth login [options]"));
|
|
16
|
+
console.log("");
|
|
17
|
+
console.log("Options:");
|
|
18
|
+
console.log(" --token <value> API token (or use env vars)");
|
|
19
|
+
console.log(" --backend-url <url> Backend URL to persist for auth/org commands");
|
|
20
|
+
console.log(" --skip-verify Skip organization list verification probe");
|
|
21
|
+
console.log(" --json Output deterministic JSON");
|
|
22
|
+
console.log(" --help Show this help");
|
|
23
|
+
}
|
|
24
|
+
async function promptForToken() {
|
|
25
|
+
const terminal = promises_1.default.createInterface({ input: node_process_1.stdin, output: node_process_1.stdout });
|
|
26
|
+
try {
|
|
27
|
+
const token = await terminal.question("API token: ");
|
|
28
|
+
return token.trim();
|
|
29
|
+
}
|
|
30
|
+
finally {
|
|
31
|
+
terminal.close();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
async function handleAuthLogin(parsed) {
|
|
35
|
+
if ((0, args_1.getOptionBoolean)(parsed, "help")) {
|
|
36
|
+
printUsage();
|
|
37
|
+
return 0;
|
|
38
|
+
}
|
|
39
|
+
const explicitToken = (0, shared_1.resolveApiToken)(parsed);
|
|
40
|
+
const token = explicitToken ?? await promptForToken();
|
|
41
|
+
if (!token) {
|
|
42
|
+
throw new Error("No token provided. Re-run with --token <value>.");
|
|
43
|
+
}
|
|
44
|
+
const backendUrl = ((0, args_1.getOptionString)(parsed, "backend-url") ?? "").trim()
|
|
45
|
+
|| (0, profile_store_1.getBootstrapProfileDefaults)("staging").backendUrl;
|
|
46
|
+
let verified = false;
|
|
47
|
+
if (!(0, args_1.getOptionBoolean)(parsed, "skip-verify")) {
|
|
48
|
+
const { organizations } = await (0, shared_1.fetchOrganizations)({
|
|
49
|
+
backendUrl,
|
|
50
|
+
token,
|
|
51
|
+
limit: 1
|
|
52
|
+
});
|
|
53
|
+
verified = organizations.length >= 0;
|
|
54
|
+
}
|
|
55
|
+
const saved = await (0, auth_store_1.saveAuthStore)({ token, backendUrl });
|
|
56
|
+
if ((0, args_1.getOptionBoolean)(parsed, "json")) {
|
|
57
|
+
console.log(JSON.stringify({
|
|
58
|
+
success: true,
|
|
59
|
+
backendUrl: saved.backendUrl,
|
|
60
|
+
tokenStored: Boolean(saved.token),
|
|
61
|
+
verified
|
|
62
|
+
}, null, 2));
|
|
63
|
+
return 0;
|
|
64
|
+
}
|
|
65
|
+
console.log((0, colors_1.colorGreen)("Authentication saved."));
|
|
66
|
+
console.log((0, colors_1.colorGray)(`Backend URL: ${saved.backendUrl ?? "<unset>"}`));
|
|
67
|
+
console.log((0, colors_1.colorGray)(`Token stored: ${saved.token ? "yes" : "no"}`));
|
|
68
|
+
console.log((0, colors_1.colorGray)(`Verified: ${verified ? "yes" : "no (skipped)"}`));
|
|
69
|
+
console.log("");
|
|
70
|
+
console.log((0, colors_1.colorOrange)("Next: sevenlayers org list"));
|
|
71
|
+
return 0;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=login.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/commands/auth/login.ts"],"names":[],"mappings":";;;;;AA6BA,0CAkDC;AA/ED,sEAA8C;AAC9C,+CAAgE;AAChE,8DAAyE;AACzE,wDAAwD;AACxD,0CAAqF;AACrF,8CAAuE;AACvE,0CAAoE;AAEpE,SAAS,UAAU;IACjB,OAAO,CAAC,GAAG,CAAC,IAAA,oBAAW,EAAC,yCAAyC,CAAC,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACxB,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAC;IAC1F,OAAO,CAAC,GAAG,CAAC,yEAAyE,CAAC,CAAC;IACvF,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;AAC9D,CAAC;AAED,KAAK,UAAU,cAAc;IAC3B,MAAM,QAAQ,GAAG,kBAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAL,oBAAK,EAAE,MAAM,EAAN,qBAAM,EAAE,CAAC,CAAC;IAC7D,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACrD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;YAAS,CAAC;QACT,QAAQ,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,eAAe,CAAC,MAAkB;IACtD,IAAI,IAAA,uBAAgB,EAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QACrC,UAAU,EAAE,CAAC;QACb,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,aAAa,GAAG,IAAA,wBAAe,EAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,aAAa,IAAI,MAAM,cAAc,EAAE,CAAC;IACtD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,IAAA,sBAAe,EAAC,MAAM,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;WACnE,IAAA,2CAA2B,EAAC,SAAS,CAAC,CAAC,UAAU,CAAC;IAEvD,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,CAAC,IAAA,uBAAgB,EAAC,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC;QAC7C,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,IAAA,2BAAkB,EAAC;YACjD,UAAU;YACV,KAAK;YACL,KAAK,EAAE,CAAC;SACT,CAAC,CAAC;QACH,QAAQ,GAAG,aAAa,CAAC,MAAM,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,IAAA,0BAAa,EAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;IAEzD,IAAI,IAAA,uBAAgB,EAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QACrC,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CACZ;YACE,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;YACjC,QAAQ;SACT,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,IAAA,mBAAU,EAAC,uBAAuB,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,IAAA,kBAAS,EAAC,gBAAgB,KAAK,CAAC,UAAU,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,IAAA,kBAAS,EAAC,iBAAiB,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,IAAA,kBAAS,EAAC,aAAa,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,IAAA,oBAAW,EAAC,4BAA4B,CAAC,CAAC,CAAC;IACvD,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pick.d.ts","sourceRoot":"","sources":["../../../src/commands/env/pick.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,UAAU,EAGhB,MAAM,iBAAiB,CAAC;AA4CzB,wBAAsB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CA4HvE"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.handleEnvPick = handleEnvPick;
|
|
7
|
+
const promises_1 = __importDefault(require("node:readline/promises"));
|
|
8
|
+
const node_process_1 = require("node:process");
|
|
9
|
+
const args_1 = require("../../core/args");
|
|
10
|
+
const colors_1 = require("../../core/colors");
|
|
11
|
+
const profile_store_1 = require("../../config/profile-store");
|
|
12
|
+
const shared_1 = require("../org/shared");
|
|
13
|
+
function printUsage() {
|
|
14
|
+
console.log((0, colors_1.colorOrange)("Usage: sevenlayers env pick [options]"));
|
|
15
|
+
console.log("");
|
|
16
|
+
console.log("Options:");
|
|
17
|
+
console.log(" --env <profile> Profile to configure (default: active)");
|
|
18
|
+
console.log(" --org-id <id> Organization id (skip picker)");
|
|
19
|
+
console.log(" --app-id <id> Default app id to persist");
|
|
20
|
+
console.log(" --backend-url <url> Backend URL override");
|
|
21
|
+
console.log(" --token <value> API token override");
|
|
22
|
+
console.log(" --yes Non-interactive mode (auto-pick first org)");
|
|
23
|
+
console.log(" --json Output deterministic JSON");
|
|
24
|
+
console.log(" --help Show this help");
|
|
25
|
+
}
|
|
26
|
+
async function promptLine(question) {
|
|
27
|
+
const terminal = promises_1.default.createInterface({ input: node_process_1.stdin, output: node_process_1.stdout });
|
|
28
|
+
try {
|
|
29
|
+
const answer = await terminal.question(question);
|
|
30
|
+
return answer.trim();
|
|
31
|
+
}
|
|
32
|
+
finally {
|
|
33
|
+
terminal.close();
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
async function promptRequiredLine(question, fallback) {
|
|
37
|
+
while (true) {
|
|
38
|
+
const answer = await promptLine(question);
|
|
39
|
+
const value = answer.length > 0 ? answer : fallback;
|
|
40
|
+
if (value.trim().length > 0) {
|
|
41
|
+
return value.trim();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
async function handleEnvPick(parsed) {
|
|
46
|
+
if ((0, args_1.getOptionBoolean)(parsed, "help")) {
|
|
47
|
+
printUsage();
|
|
48
|
+
return 0;
|
|
49
|
+
}
|
|
50
|
+
const store = await (0, profile_store_1.loadProfileStore)();
|
|
51
|
+
const profileName = (0, args_1.getOptionString)(parsed, "env")
|
|
52
|
+
?? (0, args_1.getOptionString)(parsed, "profile")
|
|
53
|
+
?? store.activeProfile;
|
|
54
|
+
const existing = store.profiles[profileName];
|
|
55
|
+
const defaults = (0, profile_store_1.getBootstrapProfileDefaults)(profileName);
|
|
56
|
+
const authContext = await (0, shared_1.resolveAuthContext)(parsed);
|
|
57
|
+
const backendUrl = (0, args_1.getOptionString)(parsed, "backend-url")
|
|
58
|
+
?? existing?.backendUrl
|
|
59
|
+
?? authContext.backendUrl
|
|
60
|
+
?? defaults.backendUrl;
|
|
61
|
+
let selectedOrgId = (0, args_1.getOptionString)(parsed, "org-id") ?? existing?.defaultOrgId;
|
|
62
|
+
if (!selectedOrgId) {
|
|
63
|
+
let result = await (0, shared_1.fetchOrganizations)({
|
|
64
|
+
backendUrl,
|
|
65
|
+
token: authContext.token,
|
|
66
|
+
limit: 50
|
|
67
|
+
});
|
|
68
|
+
if (!process.stdin.isTTY && !(0, args_1.getOptionBoolean)(parsed, "yes")) {
|
|
69
|
+
throw new Error("Non-interactive mode requires --org-id or --yes.");
|
|
70
|
+
}
|
|
71
|
+
if (result.organizations.length === 0) {
|
|
72
|
+
if (!process.stdin.isTTY) {
|
|
73
|
+
throw new Error("No organizations found and terminal is non-interactive.");
|
|
74
|
+
}
|
|
75
|
+
const orgName = await promptRequiredLine("Organization name to create: ", "My Organization");
|
|
76
|
+
const created = await (0, shared_1.createOrganization)({
|
|
77
|
+
backendUrl,
|
|
78
|
+
token: authContext.token,
|
|
79
|
+
name: orgName
|
|
80
|
+
});
|
|
81
|
+
result = {
|
|
82
|
+
organizations: [created],
|
|
83
|
+
total: 1
|
|
84
|
+
};
|
|
85
|
+
console.log((0, colors_1.colorGray)(`Created organization: ${created.name} (${created.id})`));
|
|
86
|
+
}
|
|
87
|
+
if ((0, args_1.getOptionBoolean)(parsed, "yes")) {
|
|
88
|
+
selectedOrgId = result.organizations[0]?.id;
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
console.log((0, colors_1.colorOrange)("Select organization:"));
|
|
92
|
+
for (const [index, organization] of result.organizations.entries()) {
|
|
93
|
+
console.log(`${index + 1}. ${organization.name} (${organization.id})`);
|
|
94
|
+
}
|
|
95
|
+
console.log(`${result.organizations.length + 1}. Create new organization`);
|
|
96
|
+
const raw = await promptLine("Organization number: ");
|
|
97
|
+
const selection = Number.parseInt(raw, 10);
|
|
98
|
+
if (!Number.isInteger(selection) || selection < 1 || selection > result.organizations.length + 1) {
|
|
99
|
+
throw new Error("Invalid selection. Re-run and choose a valid organization number.");
|
|
100
|
+
}
|
|
101
|
+
if (selection === result.organizations.length + 1) {
|
|
102
|
+
const orgName = await promptRequiredLine("Organization name: ", "My Organization");
|
|
103
|
+
const created = await (0, shared_1.createOrganization)({
|
|
104
|
+
backendUrl,
|
|
105
|
+
token: authContext.token,
|
|
106
|
+
name: orgName
|
|
107
|
+
});
|
|
108
|
+
selectedOrgId = created.id;
|
|
109
|
+
console.log((0, colors_1.colorGray)(`Created organization: ${created.name} (${created.id})`));
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
selectedOrgId = result.organizations[selection - 1]?.id;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
if (!selectedOrgId) {
|
|
117
|
+
throw new Error("Could not resolve organization id.");
|
|
118
|
+
}
|
|
119
|
+
let appId = (0, args_1.getOptionString)(parsed, "app-id") ?? existing?.defaultAppId;
|
|
120
|
+
if (!(0, args_1.getOptionString)(parsed, "app-id") && process.stdin.isTTY && !(0, args_1.getOptionBoolean)(parsed, "yes")) {
|
|
121
|
+
const suggested = existing?.defaultAppId ?? "";
|
|
122
|
+
const prompt = suggested.length > 0
|
|
123
|
+
? `Default app id [${suggested}] (optional): `
|
|
124
|
+
: "Default app id (optional): ";
|
|
125
|
+
const answer = await promptLine(prompt);
|
|
126
|
+
if (answer.length > 0) {
|
|
127
|
+
appId = answer;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
await (0, profile_store_1.upsertProfile)({
|
|
131
|
+
name: profileName,
|
|
132
|
+
backendUrl,
|
|
133
|
+
appUrl: existing?.appUrl ?? defaults.appUrl,
|
|
134
|
+
defaultOrgId: selectedOrgId,
|
|
135
|
+
defaultAppId: appId,
|
|
136
|
+
requiresConfirmation: existing?.requiresConfirmation ?? defaults.requiresConfirmation
|
|
137
|
+
});
|
|
138
|
+
await (0, profile_store_1.setActiveProfile)(profileName);
|
|
139
|
+
if ((0, args_1.getOptionBoolean)(parsed, "json")) {
|
|
140
|
+
console.log(JSON.stringify({
|
|
141
|
+
success: true,
|
|
142
|
+
profile: profileName,
|
|
143
|
+
backendUrl,
|
|
144
|
+
defaultOrgId: selectedOrgId,
|
|
145
|
+
defaultAppId: appId ?? null
|
|
146
|
+
}, null, 2));
|
|
147
|
+
return 0;
|
|
148
|
+
}
|
|
149
|
+
console.log((0, colors_1.colorGreen)(`Profile '${profileName}' updated.`));
|
|
150
|
+
console.log((0, colors_1.colorGray)(`Backend URL: ${backendUrl}`));
|
|
151
|
+
console.log((0, colors_1.colorGray)(`Default org: ${selectedOrgId}`));
|
|
152
|
+
console.log((0, colors_1.colorGray)(`Default app: ${appId ?? "<unset>"}`));
|
|
153
|
+
return 0;
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=pick.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pick.js","sourceRoot":"","sources":["../../../src/commands/env/pick.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/org/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAqC,MAAM,iBAAiB,CAAC;AAerF,wBAAsB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAuCvE"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handleOrgList = handleOrgList;
|
|
4
|
+
const args_1 = require("../../core/args");
|
|
5
|
+
const colors_1 = require("../../core/colors");
|
|
6
|
+
const shared_1 = require("./shared");
|
|
7
|
+
function printUsage() {
|
|
8
|
+
console.log((0, colors_1.colorOrange)("Usage: sevenlayers org list [options]"));
|
|
9
|
+
console.log("");
|
|
10
|
+
console.log("Options:");
|
|
11
|
+
console.log(" --backend-url <url> Backend URL override");
|
|
12
|
+
console.log(" --token <value> API token override");
|
|
13
|
+
console.log(" --limit <n> Max organizations to fetch (default: 25)");
|
|
14
|
+
console.log(" --json Output deterministic JSON");
|
|
15
|
+
console.log(" --help Show this help");
|
|
16
|
+
}
|
|
17
|
+
async function handleOrgList(parsed) {
|
|
18
|
+
if ((0, args_1.getOptionBoolean)(parsed, "help")) {
|
|
19
|
+
printUsage();
|
|
20
|
+
return 0;
|
|
21
|
+
}
|
|
22
|
+
const context = await (0, shared_1.resolveAuthContext)(parsed);
|
|
23
|
+
const limitRaw = (0, args_1.getOptionString)(parsed, "limit");
|
|
24
|
+
const parsedLimit = limitRaw ? Number.parseInt(limitRaw, 10) : Number.NaN;
|
|
25
|
+
const limit = Number.isFinite(parsedLimit) && parsedLimit > 0 ? parsedLimit : 25;
|
|
26
|
+
const result = await (0, shared_1.fetchOrganizations)({
|
|
27
|
+
backendUrl: context.backendUrl,
|
|
28
|
+
token: context.token,
|
|
29
|
+
limit
|
|
30
|
+
});
|
|
31
|
+
if ((0, args_1.getOptionBoolean)(parsed, "json")) {
|
|
32
|
+
console.log(JSON.stringify({
|
|
33
|
+
success: true,
|
|
34
|
+
backendUrl: context.backendUrl,
|
|
35
|
+
total: result.total,
|
|
36
|
+
organizations: result.organizations
|
|
37
|
+
}, null, 2));
|
|
38
|
+
return 0;
|
|
39
|
+
}
|
|
40
|
+
console.log((0, colors_1.colorOrange)(`Organizations (${result.organizations.length}/${result.total}):`));
|
|
41
|
+
for (const [index, organization] of result.organizations.entries()) {
|
|
42
|
+
const slug = organization.slug ? ` slug=${organization.slug}` : "";
|
|
43
|
+
console.log(`${index + 1}. ${organization.name}`);
|
|
44
|
+
console.log((0, colors_1.colorGray)(` id=${organization.id}${slug}`));
|
|
45
|
+
}
|
|
46
|
+
return 0;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/org/list.ts"],"names":[],"mappings":";;AAeA,sCAuCC;AAtDD,0CAAqF;AACrF,8CAA2D;AAC3D,qCAAkE;AAElE,SAAS,UAAU;IACjB,OAAO,CAAC,GAAG,CAAC,IAAA,oBAAW,EAAC,uCAAuC,CAAC,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACxB,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC;IACtF,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;AAC9D,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,MAAkB;IACpD,IAAI,IAAA,uBAAgB,EAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QACrC,UAAU,EAAE,CAAC;QACb,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,IAAA,2BAAkB,EAAC,MAAM,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,IAAA,sBAAe,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;IAC1E,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IACjF,MAAM,MAAM,GAAG,MAAM,IAAA,2BAAkB,EAAC;QACtC,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK;KACN,CAAC,CAAC;IAEH,IAAI,IAAA,uBAAgB,EAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QACrC,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CACZ;YACE,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,aAAa,EAAE,MAAM,CAAC,aAAa;SACpC,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,IAAA,oBAAW,EAAC,kBAAkB,MAAM,CAAC,aAAa,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;IAC5F,KAAK,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;QACnE,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,IAAA,kBAAS,EAAC,UAAU,YAAY,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type ParsedArgs } from "../../core/args";
|
|
2
|
+
import { type AuthStore } from "../../config/auth-store";
|
|
3
|
+
export interface OrganizationSummary {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
slug?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function resolveApiToken(parsed: ParsedArgs, authStore?: AuthStore): string | undefined;
|
|
9
|
+
export declare function resolveBackendUrl(parsed: ParsedArgs, authStore?: AuthStore): Promise<string | undefined>;
|
|
10
|
+
export declare function fetchOrganizations(args: {
|
|
11
|
+
backendUrl: string;
|
|
12
|
+
token: string;
|
|
13
|
+
limit?: number;
|
|
14
|
+
}): Promise<{
|
|
15
|
+
organizations: OrganizationSummary[];
|
|
16
|
+
total: number;
|
|
17
|
+
}>;
|
|
18
|
+
export declare function createOrganization(args: {
|
|
19
|
+
backendUrl: string;
|
|
20
|
+
token: string;
|
|
21
|
+
name: string;
|
|
22
|
+
}): Promise<OrganizationSummary>;
|
|
23
|
+
export declare function resolveAuthContext(parsed: ParsedArgs): Promise<{
|
|
24
|
+
authStore: AuthStore;
|
|
25
|
+
backendUrl: string;
|
|
26
|
+
token: string;
|
|
27
|
+
}>;
|
|
28
|
+
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/commands/org/shared.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAmB,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,KAAK,SAAS,EAAiB,MAAM,yBAAyB,CAAC;AAGxE,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAyB7F;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAoB9G;AA4DD,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC;IAAE,aAAa,EAAE,mBAAmB,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAqBnE;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAmB/B;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC;IACpE,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,CAiBD"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveApiToken = resolveApiToken;
|
|
4
|
+
exports.resolveBackendUrl = resolveBackendUrl;
|
|
5
|
+
exports.fetchOrganizations = fetchOrganizations;
|
|
6
|
+
exports.createOrganization = createOrganization;
|
|
7
|
+
exports.resolveAuthContext = resolveAuthContext;
|
|
8
|
+
const client_1 = require("../../api/client");
|
|
9
|
+
const args_1 = require("../../core/args");
|
|
10
|
+
const auth_store_1 = require("../../config/auth-store");
|
|
11
|
+
const profile_store_1 = require("../../config/profile-store");
|
|
12
|
+
function resolveApiToken(parsed, authStore) {
|
|
13
|
+
const explicit = (0, args_1.getOptionString)(parsed, "token") ??
|
|
14
|
+
(0, args_1.getOptionString)(parsed, "api-token") ??
|
|
15
|
+
(0, args_1.getOptionString)(parsed, "api-key");
|
|
16
|
+
if (explicit && explicit.trim().length > 0) {
|
|
17
|
+
return explicit.trim();
|
|
18
|
+
}
|
|
19
|
+
const envTokenCandidates = [
|
|
20
|
+
process.env.SEVENLAYERS_API_TOKEN,
|
|
21
|
+
process.env.L4YERCAK3_API_TOKEN,
|
|
22
|
+
process.env.L4YERCAK3_API_KEY
|
|
23
|
+
];
|
|
24
|
+
for (const candidate of envTokenCandidates) {
|
|
25
|
+
if (candidate && candidate.trim().length > 0) {
|
|
26
|
+
return candidate.trim();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
if (authStore?.token && authStore.token.trim().length > 0) {
|
|
30
|
+
return authStore.token.trim();
|
|
31
|
+
}
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
async function resolveBackendUrl(parsed, authStore) {
|
|
35
|
+
const explicit = (0, args_1.getOptionString)(parsed, "backend-url");
|
|
36
|
+
if (explicit && explicit.trim().length > 0) {
|
|
37
|
+
return explicit.trim();
|
|
38
|
+
}
|
|
39
|
+
if (authStore?.backendUrl && authStore.backendUrl.trim().length > 0) {
|
|
40
|
+
return authStore.backendUrl.trim();
|
|
41
|
+
}
|
|
42
|
+
try {
|
|
43
|
+
const profile = await (0, profile_store_1.getActiveProfile)();
|
|
44
|
+
if (profile.backendUrl && profile.backendUrl.trim().length > 0) {
|
|
45
|
+
return profile.backendUrl.trim();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
function normalizeOptionalString(value) {
|
|
54
|
+
if (typeof value !== "string") {
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
const normalized = value.trim();
|
|
58
|
+
return normalized.length > 0 ? normalized : undefined;
|
|
59
|
+
}
|
|
60
|
+
function normalizeOrganization(candidate) {
|
|
61
|
+
if (!candidate || typeof candidate !== "object") {
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
const record = candidate;
|
|
65
|
+
const id = normalizeOptionalString(record.id)
|
|
66
|
+
?? normalizeOptionalString(record._id)
|
|
67
|
+
?? normalizeOptionalString(record.organizationId);
|
|
68
|
+
if (!id) {
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
const name = normalizeOptionalString(record.name)
|
|
72
|
+
?? normalizeOptionalString(record.displayName)
|
|
73
|
+
?? normalizeOptionalString(record.slug)
|
|
74
|
+
?? id;
|
|
75
|
+
const slug = normalizeOptionalString(record.slug);
|
|
76
|
+
return { id, name, slug };
|
|
77
|
+
}
|
|
78
|
+
function parseOrganizationsResponse(payload) {
|
|
79
|
+
if (Array.isArray(payload)) {
|
|
80
|
+
const organizations = payload.map(normalizeOrganization).filter((entry) => Boolean(entry));
|
|
81
|
+
return { organizations, total: organizations.length };
|
|
82
|
+
}
|
|
83
|
+
if (!payload || typeof payload !== "object") {
|
|
84
|
+
return { organizations: [], total: 0 };
|
|
85
|
+
}
|
|
86
|
+
const record = payload;
|
|
87
|
+
const rawItems = Array.isArray(record.items)
|
|
88
|
+
? record.items
|
|
89
|
+
: Array.isArray(record.organizations)
|
|
90
|
+
? record.organizations
|
|
91
|
+
: Array.isArray(record.data)
|
|
92
|
+
? record.data
|
|
93
|
+
: [];
|
|
94
|
+
const organizations = rawItems
|
|
95
|
+
.map(normalizeOrganization)
|
|
96
|
+
.filter((entry) => Boolean(entry));
|
|
97
|
+
const total = typeof record.total === "number" ? record.total : organizations.length;
|
|
98
|
+
return { organizations, total };
|
|
99
|
+
}
|
|
100
|
+
async function fetchOrganizations(args) {
|
|
101
|
+
const limit = args.limit && args.limit > 0 ? args.limit : 25;
|
|
102
|
+
const client = (0, client_1.createApiClient)({
|
|
103
|
+
backendUrl: args.backendUrl,
|
|
104
|
+
token: args.token
|
|
105
|
+
});
|
|
106
|
+
try {
|
|
107
|
+
const response = await client.request("GET", "/api/v1/auth/cli/organizations");
|
|
108
|
+
const parsed = parseOrganizationsResponse(response);
|
|
109
|
+
if (parsed.organizations.length > 0 || parsed.total > 0) {
|
|
110
|
+
return parsed;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
// Fallback to CRM organizations endpoint.
|
|
115
|
+
}
|
|
116
|
+
const fallback = await client.request("GET", `/api/v1/crm/organizations?limit=${encodeURIComponent(String(limit))}`);
|
|
117
|
+
return parseOrganizationsResponse(fallback);
|
|
118
|
+
}
|
|
119
|
+
async function createOrganization(args) {
|
|
120
|
+
const client = (0, client_1.createApiClient)({
|
|
121
|
+
backendUrl: args.backendUrl,
|
|
122
|
+
token: args.token
|
|
123
|
+
});
|
|
124
|
+
const response = await client.request("POST", "/api/v1/auth/cli/organizations", {
|
|
125
|
+
name: args.name
|
|
126
|
+
});
|
|
127
|
+
const parsed = parseOrganizationsResponse(response);
|
|
128
|
+
if (parsed.organizations.length > 0) {
|
|
129
|
+
return parsed.organizations[0];
|
|
130
|
+
}
|
|
131
|
+
const normalized = normalizeOrganization(response);
|
|
132
|
+
if (!normalized) {
|
|
133
|
+
throw new Error("Organization create response did not contain a valid organization id.");
|
|
134
|
+
}
|
|
135
|
+
return normalized;
|
|
136
|
+
}
|
|
137
|
+
async function resolveAuthContext(parsed) {
|
|
138
|
+
const authStore = await (0, auth_store_1.loadAuthStore)();
|
|
139
|
+
const backendUrl = await resolveBackendUrl(parsed, authStore);
|
|
140
|
+
if (!backendUrl) {
|
|
141
|
+
throw new Error("Missing backend URL. Provide --backend-url <url>, run 'sevenlayers auth login', or set a profile backend via 'sevenlayers env set'.");
|
|
142
|
+
}
|
|
143
|
+
const token = resolveApiToken(parsed, authStore);
|
|
144
|
+
if (!token) {
|
|
145
|
+
throw new Error("Missing API token. Provide --token <value>, set L4YERCAK3_API_KEY, or run 'sevenlayers auth login'.");
|
|
146
|
+
}
|
|
147
|
+
return { authStore, backendUrl, token };
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/commands/org/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface AuthStore {
|
|
2
|
+
token?: string;
|
|
3
|
+
backendUrl?: string;
|
|
4
|
+
updatedAt: number;
|
|
5
|
+
}
|
|
6
|
+
interface AuthStoreOptions {
|
|
7
|
+
filePath?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function loadAuthStore(options?: AuthStoreOptions): Promise<AuthStore>;
|
|
10
|
+
export declare function saveAuthStore(store: Pick<AuthStore, "token" | "backendUrl">, options?: AuthStoreOptions): Promise<AuthStore>;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=auth-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-store.d.ts","sourceRoot":"","sources":["../../src/config/auth-store.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,gBAAgB;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA2DD,wBAAsB,aAAa,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,SAAS,CAAC,CAkBtF;AAED,wBAAsB,aAAa,CACjC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,YAAY,CAAC,EAC9C,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,SAAS,CAAC,CASpB"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.loadAuthStore = loadAuthStore;
|
|
7
|
+
exports.saveAuthStore = saveAuthStore;
|
|
8
|
+
const promises_1 = __importDefault(require("node:fs/promises"));
|
|
9
|
+
const node_os_1 = __importDefault(require("node:os"));
|
|
10
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
11
|
+
function now() {
|
|
12
|
+
return Date.now();
|
|
13
|
+
}
|
|
14
|
+
function resolveStorePath(filePath) {
|
|
15
|
+
if (filePath) {
|
|
16
|
+
return node_path_1.default.resolve(filePath);
|
|
17
|
+
}
|
|
18
|
+
const override = process.env.SEVENLAYERS_AUTH_STORE_PATH;
|
|
19
|
+
if (override && override.trim().length > 0) {
|
|
20
|
+
return node_path_1.default.resolve(override);
|
|
21
|
+
}
|
|
22
|
+
return node_path_1.default.join(node_os_1.default.homedir(), ".sevenlayers", "auth.json");
|
|
23
|
+
}
|
|
24
|
+
function fallbackStorePath() {
|
|
25
|
+
return node_path_1.default.join(node_os_1.default.tmpdir(), "sevenlayers-auth.json");
|
|
26
|
+
}
|
|
27
|
+
function isPermissionError(error) {
|
|
28
|
+
const ioError = error;
|
|
29
|
+
return ioError.code === "EPERM" || ioError.code === "EACCES";
|
|
30
|
+
}
|
|
31
|
+
function normalizeOptionalString(value) {
|
|
32
|
+
if (typeof value !== "string") {
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
const normalized = value.trim();
|
|
36
|
+
return normalized.length > 0 ? normalized : undefined;
|
|
37
|
+
}
|
|
38
|
+
async function writeStoreFile(filePath, store) {
|
|
39
|
+
await promises_1.default.mkdir(node_path_1.default.dirname(filePath), { recursive: true });
|
|
40
|
+
await promises_1.default.writeFile(filePath, `${JSON.stringify(store, null, 2)}\n`, "utf8");
|
|
41
|
+
}
|
|
42
|
+
async function writeWithFallback(filePath, store, explicitPath) {
|
|
43
|
+
try {
|
|
44
|
+
await writeStoreFile(filePath, store);
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
if (explicitPath || !isPermissionError(error)) {
|
|
48
|
+
throw error;
|
|
49
|
+
}
|
|
50
|
+
const fallback = fallbackStorePath();
|
|
51
|
+
await writeStoreFile(fallback, store);
|
|
52
|
+
process.env.SEVENLAYERS_AUTH_STORE_PATH = fallback;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
async function loadAuthStore(options = {}) {
|
|
56
|
+
const filePath = resolveStorePath(options.filePath);
|
|
57
|
+
try {
|
|
58
|
+
const raw = await promises_1.default.readFile(filePath, "utf8");
|
|
59
|
+
const parsed = JSON.parse(raw);
|
|
60
|
+
return {
|
|
61
|
+
token: normalizeOptionalString(parsed.token),
|
|
62
|
+
backendUrl: normalizeOptionalString(parsed.backendUrl),
|
|
63
|
+
updatedAt: typeof parsed.updatedAt === "number" ? parsed.updatedAt : now()
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
const readError = error;
|
|
68
|
+
if (readError.code !== "ENOENT") {
|
|
69
|
+
throw readError;
|
|
70
|
+
}
|
|
71
|
+
return { updatedAt: now() };
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
async function saveAuthStore(store, options = {}) {
|
|
75
|
+
const normalized = {
|
|
76
|
+
token: normalizeOptionalString(store.token),
|
|
77
|
+
backendUrl: normalizeOptionalString(store.backendUrl),
|
|
78
|
+
updatedAt: now()
|
|
79
|
+
};
|
|
80
|
+
const filePath = resolveStorePath(options.filePath);
|
|
81
|
+
await writeWithFallback(filePath, normalized, Boolean(options.filePath));
|
|
82
|
+
return normalized;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=auth-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-store.js","sourceRoot":"","sources":["../../src/config/auth-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-org-env.test.d.ts","sourceRoot":"","sources":["../../src/tests/auth-org-env.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const node_test_1 = __importDefault(require("node:test"));
|
|
7
|
+
const strict_1 = __importDefault(require("node:assert/strict"));
|
|
8
|
+
const promises_1 = __importDefault(require("node:fs/promises"));
|
|
9
|
+
const node_os_1 = __importDefault(require("node:os"));
|
|
10
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
11
|
+
const args_1 = require("../core/args");
|
|
12
|
+
const profile_store_1 = require("../config/profile-store");
|
|
13
|
+
const auth_store_1 = require("../config/auth-store");
|
|
14
|
+
const login_1 = require("../commands/auth/login");
|
|
15
|
+
const list_1 = require("../commands/org/list");
|
|
16
|
+
const pick_1 = require("../commands/env/pick");
|
|
17
|
+
async function withTempDir(run) {
|
|
18
|
+
const directory = await promises_1.default.mkdtemp(node_path_1.default.join(node_os_1.default.tmpdir(), "sevenlayers-auth-org-env-"));
|
|
19
|
+
try {
|
|
20
|
+
await run(directory);
|
|
21
|
+
}
|
|
22
|
+
finally {
|
|
23
|
+
await promises_1.default.rm(directory, { recursive: true, force: true });
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
async function withMockFetch(handler, run) {
|
|
27
|
+
const original = globalThis.fetch;
|
|
28
|
+
globalThis.fetch = handler;
|
|
29
|
+
try {
|
|
30
|
+
await run();
|
|
31
|
+
}
|
|
32
|
+
finally {
|
|
33
|
+
globalThis.fetch = original;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
async function captureOutput(run) {
|
|
37
|
+
const stdoutLines = [];
|
|
38
|
+
const stderrLines = [];
|
|
39
|
+
const originalLog = console.log;
|
|
40
|
+
const originalError = console.error;
|
|
41
|
+
console.log = (...args) => {
|
|
42
|
+
stdoutLines.push(args.map((arg) => String(arg)).join(" "));
|
|
43
|
+
};
|
|
44
|
+
console.error = (...args) => {
|
|
45
|
+
stderrLines.push(args.map((arg) => String(arg)).join(" "));
|
|
46
|
+
};
|
|
47
|
+
try {
|
|
48
|
+
const exitCode = await run();
|
|
49
|
+
return {
|
|
50
|
+
exitCode,
|
|
51
|
+
stdout: stdoutLines.join("\n"),
|
|
52
|
+
stderr: stderrLines.join("\n")
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
finally {
|
|
56
|
+
console.log = originalLog;
|
|
57
|
+
console.error = originalError;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
function jsonResponse(payload, status = 200) {
|
|
61
|
+
return new Response(JSON.stringify(payload), {
|
|
62
|
+
status,
|
|
63
|
+
headers: { "Content-Type": "application/json" }
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
(0, node_test_1.default)("auth login persists token/backend and verifies organization access", async () => {
|
|
67
|
+
await withTempDir(async (directory) => {
|
|
68
|
+
const authStorePath = node_path_1.default.join(directory, "auth.json");
|
|
69
|
+
const previousAuth = process.env.SEVENLAYERS_AUTH_STORE_PATH;
|
|
70
|
+
process.env.SEVENLAYERS_AUTH_STORE_PATH = authStorePath;
|
|
71
|
+
try {
|
|
72
|
+
await withMockFetch(async (input, init) => {
|
|
73
|
+
strict_1.default.equal(String(input), "https://example.convex.site/api/v1/auth/cli/organizations");
|
|
74
|
+
strict_1.default.equal(init?.method, "GET");
|
|
75
|
+
strict_1.default.equal(init?.headers?.Authorization, "Bearer tok_login");
|
|
76
|
+
return jsonResponse([{ id: "org_1", name: "Org One" }]);
|
|
77
|
+
}, async () => {
|
|
78
|
+
const parsed = (0, args_1.parseArgv)([
|
|
79
|
+
"auth",
|
|
80
|
+
"login",
|
|
81
|
+
"--token",
|
|
82
|
+
"tok_login",
|
|
83
|
+
"--backend-url",
|
|
84
|
+
"https://example.convex.site",
|
|
85
|
+
"--json"
|
|
86
|
+
]);
|
|
87
|
+
const output = await captureOutput(() => (0, login_1.handleAuthLogin)(parsed));
|
|
88
|
+
strict_1.default.equal(output.exitCode, 0);
|
|
89
|
+
const payload = JSON.parse(output.stdout);
|
|
90
|
+
strict_1.default.equal(payload.success, true);
|
|
91
|
+
strict_1.default.equal(payload.backendUrl, "https://example.convex.site");
|
|
92
|
+
strict_1.default.equal(payload.tokenStored, true);
|
|
93
|
+
strict_1.default.equal(payload.verified, true);
|
|
94
|
+
});
|
|
95
|
+
const stored = await (0, auth_store_1.loadAuthStore)({ filePath: authStorePath });
|
|
96
|
+
strict_1.default.equal(stored.token, "tok_login");
|
|
97
|
+
strict_1.default.equal(stored.backendUrl, "https://example.convex.site");
|
|
98
|
+
}
|
|
99
|
+
finally {
|
|
100
|
+
if (previousAuth === undefined) {
|
|
101
|
+
delete process.env.SEVENLAYERS_AUTH_STORE_PATH;
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
process.env.SEVENLAYERS_AUTH_STORE_PATH = previousAuth;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
(0, node_test_1.default)("org list can resolve token from auth store and emits deterministic JSON", async () => {
|
|
110
|
+
await withTempDir(async (directory) => {
|
|
111
|
+
const authStorePath = node_path_1.default.join(directory, "auth.json");
|
|
112
|
+
await promises_1.default.writeFile(authStorePath, JSON.stringify({
|
|
113
|
+
token: "tok_saved",
|
|
114
|
+
backendUrl: "https://example.convex.site",
|
|
115
|
+
updatedAt: Date.now()
|
|
116
|
+
}, null, 2), "utf8");
|
|
117
|
+
const previousAuth = process.env.SEVENLAYERS_AUTH_STORE_PATH;
|
|
118
|
+
process.env.SEVENLAYERS_AUTH_STORE_PATH = authStorePath;
|
|
119
|
+
try {
|
|
120
|
+
await withMockFetch(async (input, init) => {
|
|
121
|
+
strict_1.default.equal(String(input), "https://example.convex.site/api/v1/auth/cli/organizations");
|
|
122
|
+
strict_1.default.equal(init?.headers?.Authorization, "Bearer tok_saved");
|
|
123
|
+
return jsonResponse({
|
|
124
|
+
organizations: [{ id: "org_a", name: "Alpha Org", slug: "alpha" }]
|
|
125
|
+
});
|
|
126
|
+
}, async () => {
|
|
127
|
+
const parsed = (0, args_1.parseArgv)(["org", "list", "--json"]);
|
|
128
|
+
const output = await captureOutput(() => (0, list_1.handleOrgList)(parsed));
|
|
129
|
+
strict_1.default.equal(output.exitCode, 0);
|
|
130
|
+
const payload = JSON.parse(output.stdout);
|
|
131
|
+
strict_1.default.equal(payload.backendUrl, "https://example.convex.site");
|
|
132
|
+
strict_1.default.equal(payload.total, 1);
|
|
133
|
+
strict_1.default.equal(payload.organizations[0]?.id, "org_a");
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
finally {
|
|
137
|
+
if (previousAuth === undefined) {
|
|
138
|
+
delete process.env.SEVENLAYERS_AUTH_STORE_PATH;
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
process.env.SEVENLAYERS_AUTH_STORE_PATH = previousAuth;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
(0, node_test_1.default)("env pick updates profile defaults using explicit org/app values", async () => {
|
|
147
|
+
await withTempDir(async (directory) => {
|
|
148
|
+
const storePath = node_path_1.default.join(directory, "profiles.json");
|
|
149
|
+
const authStorePath = node_path_1.default.join(directory, "auth.json");
|
|
150
|
+
await (0, profile_store_1.upsertProfile)({
|
|
151
|
+
name: "staging",
|
|
152
|
+
backendUrl: "https://example.convex.site",
|
|
153
|
+
appUrl: "http://127.0.0.1:3000",
|
|
154
|
+
defaultOrgId: "org_old",
|
|
155
|
+
defaultAppId: "app_old",
|
|
156
|
+
requiresConfirmation: false
|
|
157
|
+
}, { filePath: storePath });
|
|
158
|
+
await promises_1.default.writeFile(authStorePath, JSON.stringify({
|
|
159
|
+
token: "tok_saved",
|
|
160
|
+
backendUrl: "https://example.convex.site",
|
|
161
|
+
updatedAt: Date.now()
|
|
162
|
+
}, null, 2), "utf8");
|
|
163
|
+
const previousProfile = process.env.SEVENLAYERS_PROFILE_STORE_PATH;
|
|
164
|
+
const previousAuth = process.env.SEVENLAYERS_AUTH_STORE_PATH;
|
|
165
|
+
process.env.SEVENLAYERS_PROFILE_STORE_PATH = storePath;
|
|
166
|
+
process.env.SEVENLAYERS_AUTH_STORE_PATH = authStorePath;
|
|
167
|
+
try {
|
|
168
|
+
const parsed = (0, args_1.parseArgv)([
|
|
169
|
+
"env",
|
|
170
|
+
"pick",
|
|
171
|
+
"--env",
|
|
172
|
+
"staging",
|
|
173
|
+
"--org-id",
|
|
174
|
+
"org_new",
|
|
175
|
+
"--app-id",
|
|
176
|
+
"app_new",
|
|
177
|
+
"--json"
|
|
178
|
+
]);
|
|
179
|
+
const output = await captureOutput(() => (0, pick_1.handleEnvPick)(parsed));
|
|
180
|
+
strict_1.default.equal(output.exitCode, 0);
|
|
181
|
+
const payload = JSON.parse(output.stdout);
|
|
182
|
+
strict_1.default.equal(payload.profile, "staging");
|
|
183
|
+
strict_1.default.equal(payload.defaultOrgId, "org_new");
|
|
184
|
+
strict_1.default.equal(payload.defaultAppId, "app_new");
|
|
185
|
+
const persisted = JSON.parse(await promises_1.default.readFile(storePath, "utf8"));
|
|
186
|
+
strict_1.default.equal(persisted.activeProfile, "staging");
|
|
187
|
+
strict_1.default.equal(persisted.profiles.staging.defaultOrgId, "org_new");
|
|
188
|
+
strict_1.default.equal(persisted.profiles.staging.defaultAppId, "app_new");
|
|
189
|
+
}
|
|
190
|
+
finally {
|
|
191
|
+
if (previousProfile === undefined) {
|
|
192
|
+
delete process.env.SEVENLAYERS_PROFILE_STORE_PATH;
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
process.env.SEVENLAYERS_PROFILE_STORE_PATH = previousProfile;
|
|
196
|
+
}
|
|
197
|
+
if (previousAuth === undefined) {
|
|
198
|
+
delete process.env.SEVENLAYERS_AUTH_STORE_PATH;
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
process.env.SEVENLAYERS_AUTH_STORE_PATH = previousAuth;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
});
|
|
206
|
+
//# sourceMappingURL=auth-org-env.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-org-env.test.js","sourceRoot":"","sources":["../../src/tests/auth-org-env.test.ts"],"names":[],"mappings":"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"}
|