@phystack/cli 4.3.40-dev
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/LICENSE.md +19 -0
- package/README.md +24 -0
- package/bin/index.js +2 -0
- package/dist/commands/app/build-apps.js +66 -0
- package/dist/commands/app/build-apps.js.map +1 -0
- package/dist/commands/app/build-container-remote.js +171 -0
- package/dist/commands/app/build-container-remote.js.map +1 -0
- package/dist/commands/app/build-container.js +330 -0
- package/dist/commands/app/build-container.js.map +1 -0
- package/dist/commands/app/build.js +393 -0
- package/dist/commands/app/build.js.map +1 -0
- package/dist/commands/app/create.js +451 -0
- package/dist/commands/app/create.js.map +1 -0
- package/dist/commands/app/deploy.js +176 -0
- package/dist/commands/app/deploy.js.map +1 -0
- package/dist/commands/app/device-picker.js +150 -0
- package/dist/commands/app/device-picker.js.map +1 -0
- package/dist/commands/app/import.js +303 -0
- package/dist/commands/app/import.js.map +1 -0
- package/dist/commands/app/list.js +26 -0
- package/dist/commands/app/list.js.map +1 -0
- package/dist/commands/app/publish.js +327 -0
- package/dist/commands/app/publish.js.map +1 -0
- package/dist/commands/app/settings.js +129 -0
- package/dist/commands/app/settings.js.map +1 -0
- package/dist/commands/app/types.js +13 -0
- package/dist/commands/app/types.js.map +1 -0
- package/dist/commands/app/upload-description.js +139 -0
- package/dist/commands/app/upload-description.js.map +1 -0
- package/dist/commands/app/upload-settings.js +29 -0
- package/dist/commands/app/upload-settings.js.map +1 -0
- package/dist/commands/app/utils.js +86 -0
- package/dist/commands/app/utils.js.map +1 -0
- package/dist/commands/auth/login.js +111 -0
- package/dist/commands/auth/login.js.map +1 -0
- package/dist/commands/auth/logout.js +19 -0
- package/dist/commands/auth/logout.js.map +1 -0
- package/dist/commands/descriptor/create.js +143 -0
- package/dist/commands/descriptor/create.js.map +1 -0
- package/dist/commands/descriptor/index.js +36 -0
- package/dist/commands/descriptor/index.js.map +1 -0
- package/dist/commands/descriptor/publish.js +163 -0
- package/dist/commands/descriptor/publish.js.map +1 -0
- package/dist/commands/descriptor/show.js +68 -0
- package/dist/commands/descriptor/show.js.map +1 -0
- package/dist/commands/dev/develop.js +175 -0
- package/dist/commands/dev/develop.js.map +1 -0
- package/dist/commands/dev/forward.js +118 -0
- package/dist/commands/dev/forward.js.map +1 -0
- package/dist/commands/dev/index.js +66 -0
- package/dist/commands/dev/index.js.map +1 -0
- package/dist/commands/dev/list.js +96 -0
- package/dist/commands/dev/list.js.map +1 -0
- package/dist/commands/dev/screen-devtools.js +156 -0
- package/dist/commands/dev/screen-devtools.js.map +1 -0
- package/dist/commands/dev/select.js +118 -0
- package/dist/commands/dev/select.js.map +1 -0
- package/dist/commands/dev/shell.js +171 -0
- package/dist/commands/dev/shell.js.map +1 -0
- package/dist/commands/dev/vnc.js +75 -0
- package/dist/commands/dev/vnc.js.map +1 -0
- package/dist/commands/device/select.js +118 -0
- package/dist/commands/device/select.js.map +1 -0
- package/dist/commands/flash.js +1120 -0
- package/dist/commands/flash.js.map +1 -0
- package/dist/commands/inst/create.js +55 -0
- package/dist/commands/inst/create.js.map +1 -0
- package/dist/commands/inst/index.js +15 -0
- package/dist/commands/inst/index.js.map +1 -0
- package/dist/commands/inst/list.js +26 -0
- package/dist/commands/inst/list.js.map +1 -0
- package/dist/commands/legacydev/debug.js +11 -0
- package/dist/commands/legacydev/debug.js.map +1 -0
- package/dist/commands/legacydev/deploy.js +15 -0
- package/dist/commands/legacydev/deploy.js.map +1 -0
- package/dist/commands/legacydev/dumpTwin.js +27 -0
- package/dist/commands/legacydev/dumpTwin.js.map +1 -0
- package/dist/commands/legacydev/forward.js +104 -0
- package/dist/commands/legacydev/forward.js.map +1 -0
- package/dist/commands/legacydev/index.js +188 -0
- package/dist/commands/legacydev/index.js.map +1 -0
- package/dist/commands/legacydev/invoke.js +29 -0
- package/dist/commands/legacydev/invoke.js.map +1 -0
- package/dist/commands/legacydev/js.js +69 -0
- package/dist/commands/legacydev/js.js.map +1 -0
- package/dist/commands/legacydev/list.js +196 -0
- package/dist/commands/legacydev/list.js.map +1 -0
- package/dist/commands/legacydev/logs.js +60 -0
- package/dist/commands/legacydev/logs.js.map +1 -0
- package/dist/commands/legacydev/modules.js +50 -0
- package/dist/commands/legacydev/modules.js.map +1 -0
- package/dist/commands/legacydev/move.js +23 -0
- package/dist/commands/legacydev/move.js.map +1 -0
- package/dist/commands/legacydev/ota.js +88 -0
- package/dist/commands/legacydev/ota.js.map +1 -0
- package/dist/commands/legacydev/patchTwin.js +21 -0
- package/dist/commands/legacydev/patchTwin.js.map +1 -0
- package/dist/commands/legacydev/pin.js +23 -0
- package/dist/commands/legacydev/pin.js.map +1 -0
- package/dist/commands/legacydev/pub.js +25 -0
- package/dist/commands/legacydev/pub.js.map +1 -0
- package/dist/commands/legacydev/rdp.js +64 -0
- package/dist/commands/legacydev/rdp.js.map +1 -0
- package/dist/commands/legacydev/screen-devtools.js +142 -0
- package/dist/commands/legacydev/screen-devtools.js.map +1 -0
- package/dist/commands/legacydev/settingsShow.js +89 -0
- package/dist/commands/legacydev/settingsShow.js.map +1 -0
- package/dist/commands/legacydev/settingsUpdate.js +114 -0
- package/dist/commands/legacydev/settingsUpdate.js.map +1 -0
- package/dist/commands/legacydev/shell.js +167 -0
- package/dist/commands/legacydev/shell.js.map +1 -0
- package/dist/commands/legacydev/showTwin.js +9 -0
- package/dist/commands/legacydev/showTwin.js.map +1 -0
- package/dist/commands/legacydev/statusLog.js +56 -0
- package/dist/commands/legacydev/statusLog.js.map +1 -0
- package/dist/commands/legacydev/sub.js +39 -0
- package/dist/commands/legacydev/sub.js.map +1 -0
- package/dist/commands/legacydev/vnc.js +61 -0
- package/dist/commands/legacydev/vnc.js.map +1 -0
- package/dist/commands/tenant/index.js +21 -0
- package/dist/commands/tenant/index.js.map +1 -0
- package/dist/commands/tenant/list.js +14 -0
- package/dist/commands/tenant/list.js.map +1 -0
- package/dist/commands/tenant/select.js +87 -0
- package/dist/commands/tenant/select.js.map +1 -0
- package/dist/commands/vm/create.js +718 -0
- package/dist/commands/vm/create.js.map +1 -0
- package/dist/commands/vm/index.js +130 -0
- package/dist/commands/vm/index.js.map +1 -0
- package/dist/commands/vm/list.js +124 -0
- package/dist/commands/vm/list.js.map +1 -0
- package/dist/commands/vm/logs.js +66 -0
- package/dist/commands/vm/logs.js.map +1 -0
- package/dist/commands/vm/remove.js +180 -0
- package/dist/commands/vm/remove.js.map +1 -0
- package/dist/commands/vm/shell.js +400 -0
- package/dist/commands/vm/shell.js.map +1 -0
- package/dist/commands/vm/start.js +861 -0
- package/dist/commands/vm/start.js.map +1 -0
- package/dist/commands/vm/stop.js +232 -0
- package/dist/commands/vm/stop.js.map +1 -0
- package/dist/index.js +158 -0
- package/dist/index.js.map +1 -0
- package/dist/services/admin-api/admin-api.types.js +3 -0
- package/dist/services/admin-api/admin-api.types.js.map +1 -0
- package/dist/services/admin-api/device-modules.admin-api.service.js +58 -0
- package/dist/services/admin-api/device-modules.admin-api.service.js.map +1 -0
- package/dist/services/admin-api/devices-admin-api.service.js +213 -0
- package/dist/services/admin-api/devices-admin-api.service.js.map +1 -0
- package/dist/services/admin-api/gridapps-admin-api.service.js +59 -0
- package/dist/services/admin-api/gridapps-admin-api.service.js.map +1 -0
- package/dist/services/admin-api/index.js +157 -0
- package/dist/services/admin-api/index.js.map +1 -0
- package/dist/services/admin-api/installations-admin-api.service.js +29 -0
- package/dist/services/admin-api/installations-admin-api.service.js.map +1 -0
- package/dist/services/admin-api/organizations-admin-api.service.js +53 -0
- package/dist/services/admin-api/organizations-admin-api.service.js.map +1 -0
- package/dist/services/auth/device-grant-auth.service.js +224 -0
- package/dist/services/auth/device-grant-auth.service.js.map +1 -0
- package/dist/services/phyhub/index.js +200 -0
- package/dist/services/phyhub/index.js.map +1 -0
- package/dist/services/phyhub/phyhub.types.js +3 -0
- package/dist/services/phyhub/phyhub.types.js.map +1 -0
- package/dist/utils/device-fetcher.js +92 -0
- package/dist/utils/device-fetcher.js.map +1 -0
- package/dist/utils/devices.js +41 -0
- package/dist/utils/devices.js.map +1 -0
- package/dist/utils/docker-credentials.js +720 -0
- package/dist/utils/docker-credentials.js.map +1 -0
- package/dist/utils/emulated-device.js +91 -0
- package/dist/utils/emulated-device.js.map +1 -0
- package/dist/utils/index.js +180 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/modules.js +36 -0
- package/dist/utils/modules.js.map +1 -0
- package/dist/utils/org-selector.js +108 -0
- package/dist/utils/org-selector.js.map +1 -0
- package/dist/utils/proxy.js +31 -0
- package/dist/utils/proxy.js.map +1 -0
- package/dist/utils/registry-credentials.js +113 -0
- package/dist/utils/registry-credentials.js.map +1 -0
- package/dist/utils/statuses.js +124 -0
- package/dist/utils/statuses.js.map +1 -0
- package/dist/utils/templates.js +197 -0
- package/dist/utils/templates.js.map +1 -0
- package/dist/utils/tenant-storage.js +88 -0
- package/dist/utils/tenant-storage.js.map +1 -0
- package/dist/utils/vm.js +434 -0
- package/dist/utils/vm.js.map +1 -0
- package/dist/utils/with-spinner.js +20 -0
- package/dist/utils/with-spinner.js.map +1 -0
- package/package.json +103 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const devices_1 = require("../../utils/devices");
|
|
4
|
+
const statuses_1 = require("../../utils/statuses");
|
|
5
|
+
const admin_api_1 = require("../../services/admin-api");
|
|
6
|
+
const printLine = (day, dayLogs) => {
|
|
7
|
+
const e = [];
|
|
8
|
+
for (let m = 0; m < 24 * 3; m += 1) {
|
|
9
|
+
e.push('_');
|
|
10
|
+
}
|
|
11
|
+
for (const [n, st] of dayLogs) {
|
|
12
|
+
const round20min = Math.floor(n / 20);
|
|
13
|
+
e[round20min] = statuses_1.letters[st] || '?';
|
|
14
|
+
}
|
|
15
|
+
const applied = (0, statuses_1.applyUnderscores)(e);
|
|
16
|
+
const c = (0, statuses_1.renderColorStatuses)(applied);
|
|
17
|
+
console.log(day
|
|
18
|
+
.toISOString()
|
|
19
|
+
.split('T')
|
|
20
|
+
.shift(), c);
|
|
21
|
+
};
|
|
22
|
+
async function statusLog(deviceName) {
|
|
23
|
+
const device = await (0, devices_1.fetchDeviceByName)(deviceName);
|
|
24
|
+
console.log('device:', device);
|
|
25
|
+
if (!device)
|
|
26
|
+
throw new Error('device not found');
|
|
27
|
+
const data = await (0, admin_api_1.adminApi)().devices.getDeviceStatusLog(device.uuid);
|
|
28
|
+
data.push([Date.now(), 'unknown']);
|
|
29
|
+
const sorted = data.sort((a, b) => a[0] - b[0]);
|
|
30
|
+
// console.log('GOT', data);
|
|
31
|
+
let lastDay = 0;
|
|
32
|
+
let lastDate = null;
|
|
33
|
+
let daylogs = [];
|
|
34
|
+
for (const [time, status] of sorted) {
|
|
35
|
+
const date = new Date(time);
|
|
36
|
+
const day = date.getFullYear() * 10000 + date.getMonth() * 100 + date.getDate();
|
|
37
|
+
if (lastDay !== day) {
|
|
38
|
+
if (lastDate)
|
|
39
|
+
printLine(lastDate, daylogs);
|
|
40
|
+
let last = 'offline';
|
|
41
|
+
if (daylogs.length) {
|
|
42
|
+
const [, lastStatus] = daylogs[daylogs.length - 1];
|
|
43
|
+
last = lastStatus; // latest status of the day
|
|
44
|
+
}
|
|
45
|
+
daylogs = [[0, last]];
|
|
46
|
+
lastDay = day;
|
|
47
|
+
lastDate = date;
|
|
48
|
+
}
|
|
49
|
+
daylogs.push([date.getHours() * 60 + date.getMinutes(), status]);
|
|
50
|
+
}
|
|
51
|
+
if (daylogs && daylogs.length > 1) {
|
|
52
|
+
printLine(lastDate, daylogs);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.default = statusLog;
|
|
56
|
+
//# sourceMappingURL=statusLog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statusLog.js","sourceRoot":"","sources":["../../../src/commands/legacydev/statusLog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
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 chalk_1 = __importDefault(require("chalk"));
|
|
7
|
+
const utils_1 = require("../../utils");
|
|
8
|
+
const admin_api_1 = require("../../services/admin-api");
|
|
9
|
+
async function sub(deviceName, { timestamps }) {
|
|
10
|
+
const { stream } = (0, utils_1.openStream)(await (0, admin_api_1.adminApi)().devices.subscribeMessageBus(deviceName));
|
|
11
|
+
console.log(chalk_1.default.dim('Dumping all events from message bus'));
|
|
12
|
+
stream.on('data', (data) => {
|
|
13
|
+
try {
|
|
14
|
+
const { type, payload } = JSON.parse(data.toString());
|
|
15
|
+
if (timestamps) {
|
|
16
|
+
console.log(chalk_1.default.magenta(new Date().toISOString()), chalk_1.default.blue(type), payload);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
console.log(chalk_1.default.blue(type), payload);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
catch (e) {
|
|
23
|
+
if (timestamps) {
|
|
24
|
+
console.log(chalk_1.default.red(new Date().toISOString()), e.toString());
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
console.log(chalk_1.default.red(e.toString()));
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
await new Promise((resolve) => {
|
|
32
|
+
stream.on('end', () => {
|
|
33
|
+
console.log(chalk_1.default.dim('Stream closed'));
|
|
34
|
+
resolve();
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
exports.default = sub;
|
|
39
|
+
//# sourceMappingURL=sub.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sub.js","sourceRoot":"","sources":["../../../src/commands/legacydev/sub.ts"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAE1B,uCAAyC;AACzC,wDAAoD;AAEpD,KAAK,UAAU,GAAG,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE;IAC3C,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,kBAAU,EAAC,MAAM,IAAA,oBAAQ,GAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC;IAExF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC,CAAC;IAE9D,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YACtD,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;YAClF,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YACjE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAClC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACpB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;YACxC,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,kBAAe,GAAG,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
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 chalk_1 = __importDefault(require("chalk"));
|
|
7
|
+
const child_process_1 = __importDefault(require("child_process"));
|
|
8
|
+
const fs_1 = __importDefault(require("fs"));
|
|
9
|
+
const shell_1 = require("./shell");
|
|
10
|
+
const VNC_PATH = {
|
|
11
|
+
darwin: '/Applications/VNC Viewer.app',
|
|
12
|
+
win32: 'c:\\Program Files\\RealVNC\\VNC Viewer\\vncviewer.exe',
|
|
13
|
+
linux: '/usr/bin/vncviewer',
|
|
14
|
+
};
|
|
15
|
+
async function vnc(deviceName, options) {
|
|
16
|
+
// Use the legacy VNC implementation for IoTHub devices
|
|
17
|
+
const exeName = VNC_PATH[process.platform];
|
|
18
|
+
// Verify VNC viewer is installed
|
|
19
|
+
if (!exeName) {
|
|
20
|
+
throw new Error(`VNC command is not supported on platform ${process.platform}`);
|
|
21
|
+
}
|
|
22
|
+
if (!fs_1.default.existsSync(exeName)) {
|
|
23
|
+
throw new Error(`VNC Viewer not found, please install from ${chalk_1.default.blueBright('https://www.realvnc.com/en/connect/download/viewer/')}`);
|
|
24
|
+
}
|
|
25
|
+
// Generate random port for VNC forwarding
|
|
26
|
+
const fwdPort = Math.floor(10000 + ((Math.random() * 100000) % 10000));
|
|
27
|
+
console.log(chalk_1.default.dim('Starting VNC session via IoTHub...'));
|
|
28
|
+
// Start shell with port forwarding and detached mode
|
|
29
|
+
const { shellPromise, process: shellProcess } = await (0, shell_1.shellImpl)(deviceName, {
|
|
30
|
+
L: `${fwdPort}:localhost:5900`,
|
|
31
|
+
silent: true,
|
|
32
|
+
detached: true,
|
|
33
|
+
});
|
|
34
|
+
// Unref the child process to prevent it from keeping the event loop running
|
|
35
|
+
shellProcess?.unref();
|
|
36
|
+
// Wait longer for the connection and port forwarding to establish
|
|
37
|
+
await new Promise((resolve) => setTimeout(resolve, 8000));
|
|
38
|
+
// Launch VNC viewer
|
|
39
|
+
const vncTarget = `127.0.0.1:${fwdPort}`;
|
|
40
|
+
console.log(chalk_1.default.dim(`Starting local VNC client pointing to ${vncTarget}...`));
|
|
41
|
+
if (process.platform === 'darwin') {
|
|
42
|
+
child_process_1.default.spawn('open', [
|
|
43
|
+
'-n',
|
|
44
|
+
exeName,
|
|
45
|
+
'--args',
|
|
46
|
+
'WarnUnencrypted=0',
|
|
47
|
+
'SecurityNotificationTimeout=0',
|
|
48
|
+
vncTarget,
|
|
49
|
+
]);
|
|
50
|
+
}
|
|
51
|
+
else if (process.platform === 'linux') {
|
|
52
|
+
child_process_1.default.exec(`${exeName} WarnUnencrypted=0 SecurityNotificationTimeout=0 ${vncTarget}`);
|
|
53
|
+
}
|
|
54
|
+
else if (process.platform === 'win32') {
|
|
55
|
+
child_process_1.default.spawn(exeName, ['WarnUnencrypted=0', 'SecurityNotificationTimeout=0', vncTarget]);
|
|
56
|
+
}
|
|
57
|
+
console.log(chalk_1.default.dim(`VNC connection established at ${vncTarget}. Press Ctrl+C when done.`));
|
|
58
|
+
return shellPromise;
|
|
59
|
+
}
|
|
60
|
+
exports.default = vnc;
|
|
61
|
+
//# sourceMappingURL=vnc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vnc.js","sourceRoot":"","sources":["../../../src/commands/legacydev/vnc.ts"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAC1B,kEAA+B;AAC/B,4CAAoB;AACpB,mCAA6C;AAE7C,MAAM,QAAQ,GAAG;IACf,MAAM,EAAE,8BAA8B;IACtC,KAAK,EAAE,uDAAuD;IAC9D,KAAK,EAAE,oBAAoB;CAC5B,CAAC;AAEF,KAAK,UAAU,GAAG,CAAC,UAAU,EAAE,OAAO;IACpC,uDAAuD;IACvD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE3C,iCAAiC;IACjC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,4CAA4C,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACb,6CAA6C,eAAK,CAAC,UAAU,CAC3D,qDAAqD,CACtD,EAAE,CACJ,CAAC;IACJ,CAAC;IAED,0CAA0C;IAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAEvE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC,CAAC;IAE7D,qDAAqD;IACrD,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,IAAA,iBAAK,EAAC,UAAU,EAAE;QACtE,CAAC,EAAE,GAAG,OAAO,iBAAiB;QAC9B,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IAEH,4EAA4E;IAC5E,YAAY,EAAE,KAAK,EAAE,CAAC;IAEtB,kEAAkE;IAClE,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IAE1D,oBAAoB;IACpB,MAAM,SAAS,GAAG,aAAa,OAAO,EAAE,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,yCAAyC,SAAS,KAAK,CAAC,CAAC,CAAC;IAEhF,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,uBAAE,CAAC,KAAK,CAAC,MAAM,EAAE;YACf,IAAI;YACJ,OAAO;YACP,QAAQ;YACR,mBAAmB;YACnB,+BAA+B;YAC/B,SAAS;SACV,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACxC,uBAAE,CAAC,IAAI,CAAC,GAAG,OAAO,oDAAoD,SAAS,EAAE,CAAC,CAAC;IACrF,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACxC,uBAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,mBAAmB,EAAE,+BAA+B,EAAE,SAAS,CAAC,CAAC,CAAC;IACvF,CAAC;IAED,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,GAAG,CAAC,iCAAiC,SAAS,2BAA2B,CAAC,CACjF,CAAC;IAEF,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,kBAAe,GAAG,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
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 commander_1 = __importDefault(require("commander"));
|
|
7
|
+
const utils_1 = require("../../utils");
|
|
8
|
+
const list_1 = __importDefault(require("./list"));
|
|
9
|
+
const select_1 = __importDefault(require("./select"));
|
|
10
|
+
const tenant = commander_1.default.command('tenant').description('Tenant management');
|
|
11
|
+
tenant
|
|
12
|
+
.command('list [<search-string>]')
|
|
13
|
+
.description('List tenants')
|
|
14
|
+
.action((0, utils_1.handleError)(list_1.default));
|
|
15
|
+
tenant
|
|
16
|
+
.command('select')
|
|
17
|
+
.description('Select or change default tenant for CLI operations')
|
|
18
|
+
.option('--clear', 'Clear the saved tenant')
|
|
19
|
+
.action((0, utils_1.handleError)(select_1.default));
|
|
20
|
+
exports.default = tenant;
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/tenant/index.ts"],"names":[],"mappings":";;;;;AAAA,0DAAgC;AAChC,uCAA0C;AAC1C,kDAA0B;AAC1B,sDAA8B;AAE9B,MAAM,MAAM,GAAG,mBAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;AAE1E,MAAM;KACH,OAAO,CAAC,wBAAwB,CAAC;KACjC,WAAW,CAAC,cAAc,CAAC;KAC3B,MAAM,CAAC,IAAA,mBAAW,EAAC,cAAI,CAAC,CAAC,CAAC;AAE7B,MAAM;KACH,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,oDAAoD,CAAC;KACjE,MAAM,CAAC,SAAS,EAAE,wBAAwB,CAAC;KAC3C,MAAM,CAAC,IAAA,mBAAW,EAAC,gBAAM,CAAC,CAAC,CAAC;AAE/B,kBAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const utils_1 = require("../../utils");
|
|
4
|
+
const admin_api_1 = require("../../services/admin-api");
|
|
5
|
+
exports.default = async (search) => {
|
|
6
|
+
const data = await (0, admin_api_1.adminApi)().organizations.listOrganizations();
|
|
7
|
+
return (0, utils_1.printTable)({
|
|
8
|
+
data,
|
|
9
|
+
fields: ['organizationName', 'displayName'],
|
|
10
|
+
sort: 'organizationName',
|
|
11
|
+
search,
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/tenant/list.ts"],"names":[],"mappings":";;AAAA,uCAAyC;AACzC,wDAAoD;AAEpD,kBAAe,KAAK,EAAE,MAAM,EAAE,EAAE;IAC9B,MAAM,IAAI,GAAG,MAAM,IAAA,oBAAQ,GAAE,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC;IAEhE,OAAO,IAAA,kBAAU,EAAC;QAChB,IAAI;QACJ,MAAM,EAAE,CAAC,kBAAkB,EAAE,aAAa,CAAC;QAC3C,IAAI,EAAE,kBAAkB;QACxB,MAAM;KACP,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
40
|
+
const org_selector_1 = require("../../utils/org-selector");
|
|
41
|
+
const tenant_storage_1 = require("../../utils/tenant-storage");
|
|
42
|
+
/**
|
|
43
|
+
* Command to select a tenant for future CLI operations
|
|
44
|
+
*/
|
|
45
|
+
exports.default = async (options = {}) => {
|
|
46
|
+
try {
|
|
47
|
+
// Check if we need to clear the saved tenant
|
|
48
|
+
if (options.clear) {
|
|
49
|
+
await (0, tenant_storage_1.clearTenant)();
|
|
50
|
+
console.log(chalk_1.default.green('Cleared saved tenant.'));
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
// Check if we already have a saved tenant
|
|
54
|
+
const hasSavedTenant = await (0, tenant_storage_1.hasTenant)();
|
|
55
|
+
if (hasSavedTenant) {
|
|
56
|
+
const tenant = await (0, tenant_storage_1.getTenant)();
|
|
57
|
+
console.log(chalk_1.default.green(`Current tenant: ${chalk_1.default.blue(tenant.displayName)} (${tenant.slug})`));
|
|
58
|
+
// Ask if the user wants to change it
|
|
59
|
+
const inquirer = (await Promise.resolve().then(() => __importStar(require('inquirer')))).default;
|
|
60
|
+
const { changeTenant } = await inquirer.prompt([
|
|
61
|
+
{
|
|
62
|
+
type: 'confirm',
|
|
63
|
+
name: 'changeTenant',
|
|
64
|
+
message: 'Would you like to select a different tenant?',
|
|
65
|
+
default: false,
|
|
66
|
+
},
|
|
67
|
+
]);
|
|
68
|
+
if (!changeTenant) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
// Force the selection of a new tenant
|
|
73
|
+
console.log(chalk_1.default.dim('Please select a tenant to use for all CLI operations:'));
|
|
74
|
+
const tenant = await (0, org_selector_1.selectOrganization)('Select a tenant:', true);
|
|
75
|
+
if (!tenant) {
|
|
76
|
+
console.log(chalk_1.default.yellow('No tenant selected. Operation cancelled.'));
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
console.log(chalk_1.default.green(`Successfully selected tenant: ${chalk_1.default.blue(tenant.displayName)} (${tenant.slug})`));
|
|
80
|
+
console.log(chalk_1.default.dim('This tenant will be used for all operations unless overridden.'));
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
console.error(chalk_1.default.red(`Error selecting tenant: ${error.message}`));
|
|
84
|
+
process.exit(1);
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
//# sourceMappingURL=select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../src/commands/tenant/select.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,2DAA8D;AAC9D,+DAA+E;AAE/E;;GAEG;AACH,kBAAe,KAAK,EAAE,UAA+B,EAAE,EAAE,EAAE;IACzD,IAAI,CAAC;QACH,6CAA6C;QAC7C,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,IAAA,4BAAW,GAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QAED,0CAA0C;QAC1C,MAAM,cAAc,GAAG,MAAM,IAAA,0BAAS,GAAE,CAAC;QACzC,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAS,GAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,KAAK,CAAC,mBAAmB,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,CAClF,CAAC;YAEF,qCAAqC;YACrC,MAAM,QAAQ,GAAG,CAAC,wDAAa,UAAU,GAAC,CAAC,CAAC,OAAO,CAAC;YACpD,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;gBAC7C;oBACE,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,cAAc;oBACpB,OAAO,EAAE,8CAA8C;oBACvD,OAAO,EAAE,KAAK;iBACf;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,OAAO;YACT,CAAC;QACH,CAAC;QAED,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC,CAAC;QAChF,MAAM,MAAM,GAAG,MAAM,IAAA,iCAAkB,EAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;QAElE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,0CAA0C,CAAC,CAAC,CAAC;YACtE,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,KAAK,CACT,iCAAiC,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAC7D,MAAM,CAAC,IACT,GAAG,CACJ,CACF,CAAC;QACF,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAC5E,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,2BAA2B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC"}
|