@phystack/cli 5.0.3 → 5.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. package/bin/index.js +27 -1
  2. package/package.json +12 -65
  3. package/dist/commands/app/build-apps.js +0 -66
  4. package/dist/commands/app/build-apps.js.map +0 -1
  5. package/dist/commands/app/build-container-remote.js +0 -171
  6. package/dist/commands/app/build-container-remote.js.map +0 -1
  7. package/dist/commands/app/build-container.js +0 -330
  8. package/dist/commands/app/build-container.js.map +0 -1
  9. package/dist/commands/app/build.js +0 -398
  10. package/dist/commands/app/build.js.map +0 -1
  11. package/dist/commands/app/create.js +0 -463
  12. package/dist/commands/app/create.js.map +0 -1
  13. package/dist/commands/app/deploy.js +0 -176
  14. package/dist/commands/app/deploy.js.map +0 -1
  15. package/dist/commands/app/device-picker.js +0 -150
  16. package/dist/commands/app/device-picker.js.map +0 -1
  17. package/dist/commands/app/import.js +0 -336
  18. package/dist/commands/app/import.js.map +0 -1
  19. package/dist/commands/app/list.js +0 -26
  20. package/dist/commands/app/list.js.map +0 -1
  21. package/dist/commands/app/publish.js +0 -332
  22. package/dist/commands/app/publish.js.map +0 -1
  23. package/dist/commands/app/settings.js +0 -133
  24. package/dist/commands/app/settings.js.map +0 -1
  25. package/dist/commands/app/types.js +0 -14
  26. package/dist/commands/app/types.js.map +0 -1
  27. package/dist/commands/app/upload-description.js +0 -139
  28. package/dist/commands/app/upload-description.js.map +0 -1
  29. package/dist/commands/app/upload-settings.js +0 -29
  30. package/dist/commands/app/upload-settings.js.map +0 -1
  31. package/dist/commands/app/utils.js +0 -86
  32. package/dist/commands/app/utils.js.map +0 -1
  33. package/dist/commands/auth/login.js +0 -145
  34. package/dist/commands/auth/login.js.map +0 -1
  35. package/dist/commands/auth/logout.js +0 -19
  36. package/dist/commands/auth/logout.js.map +0 -1
  37. package/dist/commands/descriptor/create.js +0 -143
  38. package/dist/commands/descriptor/create.js.map +0 -1
  39. package/dist/commands/descriptor/index.js +0 -36
  40. package/dist/commands/descriptor/index.js.map +0 -1
  41. package/dist/commands/descriptor/publish.js +0 -163
  42. package/dist/commands/descriptor/publish.js.map +0 -1
  43. package/dist/commands/descriptor/show.js +0 -68
  44. package/dist/commands/descriptor/show.js.map +0 -1
  45. package/dist/commands/dev/cp.js +0 -764
  46. package/dist/commands/dev/cp.js.map +0 -1
  47. package/dist/commands/dev/develop.js +0 -175
  48. package/dist/commands/dev/develop.js.map +0 -1
  49. package/dist/commands/dev/forward.js +0 -132
  50. package/dist/commands/dev/forward.js.map +0 -1
  51. package/dist/commands/dev/index.js +0 -80
  52. package/dist/commands/dev/index.js.map +0 -1
  53. package/dist/commands/dev/list.js +0 -96
  54. package/dist/commands/dev/list.js.map +0 -1
  55. package/dist/commands/dev/screen-devtools.js +0 -156
  56. package/dist/commands/dev/screen-devtools.js.map +0 -1
  57. package/dist/commands/dev/select.js +0 -118
  58. package/dist/commands/dev/select.js.map +0 -1
  59. package/dist/commands/dev/shell.js +0 -186
  60. package/dist/commands/dev/shell.js.map +0 -1
  61. package/dist/commands/dev/vnc.js +0 -75
  62. package/dist/commands/dev/vnc.js.map +0 -1
  63. package/dist/commands/device/select.js +0 -118
  64. package/dist/commands/device/select.js.map +0 -1
  65. package/dist/commands/flash.js +0 -1120
  66. package/dist/commands/flash.js.map +0 -1
  67. package/dist/commands/inst/create.js +0 -55
  68. package/dist/commands/inst/create.js.map +0 -1
  69. package/dist/commands/inst/index.js +0 -15
  70. package/dist/commands/inst/index.js.map +0 -1
  71. package/dist/commands/inst/list.js +0 -26
  72. package/dist/commands/inst/list.js.map +0 -1
  73. package/dist/commands/legacydev/debug.js +0 -11
  74. package/dist/commands/legacydev/debug.js.map +0 -1
  75. package/dist/commands/legacydev/deploy.js +0 -15
  76. package/dist/commands/legacydev/deploy.js.map +0 -1
  77. package/dist/commands/legacydev/dumpTwin.js +0 -27
  78. package/dist/commands/legacydev/dumpTwin.js.map +0 -1
  79. package/dist/commands/legacydev/forward.js +0 -104
  80. package/dist/commands/legacydev/forward.js.map +0 -1
  81. package/dist/commands/legacydev/index.js +0 -188
  82. package/dist/commands/legacydev/index.js.map +0 -1
  83. package/dist/commands/legacydev/invoke.js +0 -29
  84. package/dist/commands/legacydev/invoke.js.map +0 -1
  85. package/dist/commands/legacydev/js.js +0 -69
  86. package/dist/commands/legacydev/js.js.map +0 -1
  87. package/dist/commands/legacydev/list.js +0 -196
  88. package/dist/commands/legacydev/list.js.map +0 -1
  89. package/dist/commands/legacydev/logs.js +0 -60
  90. package/dist/commands/legacydev/logs.js.map +0 -1
  91. package/dist/commands/legacydev/modules.js +0 -50
  92. package/dist/commands/legacydev/modules.js.map +0 -1
  93. package/dist/commands/legacydev/move.js +0 -23
  94. package/dist/commands/legacydev/move.js.map +0 -1
  95. package/dist/commands/legacydev/ota.js +0 -88
  96. package/dist/commands/legacydev/ota.js.map +0 -1
  97. package/dist/commands/legacydev/patchTwin.js +0 -21
  98. package/dist/commands/legacydev/patchTwin.js.map +0 -1
  99. package/dist/commands/legacydev/pin.js +0 -23
  100. package/dist/commands/legacydev/pin.js.map +0 -1
  101. package/dist/commands/legacydev/pub.js +0 -25
  102. package/dist/commands/legacydev/pub.js.map +0 -1
  103. package/dist/commands/legacydev/rdp.js +0 -64
  104. package/dist/commands/legacydev/rdp.js.map +0 -1
  105. package/dist/commands/legacydev/screen-devtools.js +0 -142
  106. package/dist/commands/legacydev/screen-devtools.js.map +0 -1
  107. package/dist/commands/legacydev/settingsShow.js +0 -89
  108. package/dist/commands/legacydev/settingsShow.js.map +0 -1
  109. package/dist/commands/legacydev/settingsUpdate.js +0 -114
  110. package/dist/commands/legacydev/settingsUpdate.js.map +0 -1
  111. package/dist/commands/legacydev/shell.js +0 -167
  112. package/dist/commands/legacydev/shell.js.map +0 -1
  113. package/dist/commands/legacydev/showTwin.js +0 -9
  114. package/dist/commands/legacydev/showTwin.js.map +0 -1
  115. package/dist/commands/legacydev/statusLog.js +0 -56
  116. package/dist/commands/legacydev/statusLog.js.map +0 -1
  117. package/dist/commands/legacydev/sub.js +0 -39
  118. package/dist/commands/legacydev/sub.js.map +0 -1
  119. package/dist/commands/legacydev/vnc.js +0 -61
  120. package/dist/commands/legacydev/vnc.js.map +0 -1
  121. package/dist/commands/simulator/index.js +0 -37
  122. package/dist/commands/simulator/index.js.map +0 -1
  123. package/dist/commands/simulator/list.js +0 -20
  124. package/dist/commands/simulator/list.js.map +0 -1
  125. package/dist/commands/simulator/remove.js +0 -19
  126. package/dist/commands/simulator/remove.js.map +0 -1
  127. package/dist/commands/simulator/run.js +0 -380
  128. package/dist/commands/simulator/run.js.map +0 -1
  129. package/dist/commands/simulator/start.js +0 -186
  130. package/dist/commands/simulator/start.js.map +0 -1
  131. package/dist/commands/tenant/index.js +0 -21
  132. package/dist/commands/tenant/index.js.map +0 -1
  133. package/dist/commands/tenant/list.js +0 -14
  134. package/dist/commands/tenant/list.js.map +0 -1
  135. package/dist/commands/tenant/select.js +0 -87
  136. package/dist/commands/tenant/select.js.map +0 -1
  137. package/dist/commands/vm/create.js +0 -959
  138. package/dist/commands/vm/create.js.map +0 -1
  139. package/dist/commands/vm/index.js +0 -130
  140. package/dist/commands/vm/index.js.map +0 -1
  141. package/dist/commands/vm/list.js +0 -124
  142. package/dist/commands/vm/list.js.map +0 -1
  143. package/dist/commands/vm/logs.js +0 -66
  144. package/dist/commands/vm/logs.js.map +0 -1
  145. package/dist/commands/vm/remove.js +0 -180
  146. package/dist/commands/vm/remove.js.map +0 -1
  147. package/dist/commands/vm/shell.js +0 -400
  148. package/dist/commands/vm/shell.js.map +0 -1
  149. package/dist/commands/vm/start.js +0 -861
  150. package/dist/commands/vm/start.js.map +0 -1
  151. package/dist/commands/vm/stop.js +0 -232
  152. package/dist/commands/vm/stop.js.map +0 -1
  153. package/dist/index.js +0 -169
  154. package/dist/index.js.map +0 -1
  155. package/dist/services/admin-api/admin-api.types.js +0 -3
  156. package/dist/services/admin-api/admin-api.types.js.map +0 -1
  157. package/dist/services/admin-api/device-modules.admin-api.service.js +0 -58
  158. package/dist/services/admin-api/device-modules.admin-api.service.js.map +0 -1
  159. package/dist/services/admin-api/devices-admin-api.service.js +0 -213
  160. package/dist/services/admin-api/devices-admin-api.service.js.map +0 -1
  161. package/dist/services/admin-api/gridapps-admin-api.service.js +0 -59
  162. package/dist/services/admin-api/gridapps-admin-api.service.js.map +0 -1
  163. package/dist/services/admin-api/index.js +0 -151
  164. package/dist/services/admin-api/index.js.map +0 -1
  165. package/dist/services/admin-api/installations-admin-api.service.js +0 -29
  166. package/dist/services/admin-api/installations-admin-api.service.js.map +0 -1
  167. package/dist/services/admin-api/organizations-admin-api.service.js +0 -53
  168. package/dist/services/admin-api/organizations-admin-api.service.js.map +0 -1
  169. package/dist/services/auth/device-grant-auth.service.js +0 -226
  170. package/dist/services/auth/device-grant-auth.service.js.map +0 -1
  171. package/dist/services/env.js +0 -21
  172. package/dist/services/env.js.map +0 -1
  173. package/dist/services/phyhub/index.js +0 -200
  174. package/dist/services/phyhub/index.js.map +0 -1
  175. package/dist/services/phyhub/phyhub.types.js +0 -3
  176. package/dist/services/phyhub/phyhub.types.js.map +0 -1
  177. package/dist/simulator/index.js +0 -162
  178. package/dist/simulator/index.js.map +0 -1
  179. package/dist/simulator/local-server.js +0 -147
  180. package/dist/simulator/local-server.js.map +0 -1
  181. package/dist/simulator/logger.js +0 -43
  182. package/dist/simulator/logger.js.map +0 -1
  183. package/dist/simulator/message-router.js +0 -379
  184. package/dist/simulator/message-router.js.map +0 -1
  185. package/dist/simulator/twin-cache.js +0 -58
  186. package/dist/simulator/twin-cache.js.map +0 -1
  187. package/dist/simulator/types.js +0 -16
  188. package/dist/simulator/types.js.map +0 -1
  189. package/dist/utils/device-fetcher.js +0 -92
  190. package/dist/utils/device-fetcher.js.map +0 -1
  191. package/dist/utils/devices.js +0 -41
  192. package/dist/utils/devices.js.map +0 -1
  193. package/dist/utils/docker-credentials.js +0 -720
  194. package/dist/utils/docker-credentials.js.map +0 -1
  195. package/dist/utils/emulated-device.js +0 -91
  196. package/dist/utils/emulated-device.js.map +0 -1
  197. package/dist/utils/index.js +0 -147
  198. package/dist/utils/index.js.map +0 -1
  199. package/dist/utils/modules.js +0 -36
  200. package/dist/utils/modules.js.map +0 -1
  201. package/dist/utils/org-selector.js +0 -108
  202. package/dist/utils/org-selector.js.map +0 -1
  203. package/dist/utils/proxy.js +0 -31
  204. package/dist/utils/proxy.js.map +0 -1
  205. package/dist/utils/registry-credentials.js +0 -113
  206. package/dist/utils/registry-credentials.js.map +0 -1
  207. package/dist/utils/simulator-config.js +0 -142
  208. package/dist/utils/simulator-config.js.map +0 -1
  209. package/dist/utils/statuses.js +0 -124
  210. package/dist/utils/statuses.js.map +0 -1
  211. package/dist/utils/templates.js +0 -197
  212. package/dist/utils/templates.js.map +0 -1
  213. package/dist/utils/tenant-storage.js +0 -88
  214. package/dist/utils/tenant-storage.js.map +0 -1
  215. package/dist/utils/vm.js +0 -434
  216. package/dist/utils/vm.js.map +0 -1
  217. package/dist/utils/with-spinner.js +0 -20
  218. package/dist/utils/with-spinner.js.map +0 -1
@@ -1,64 +0,0 @@
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
- /* eslint-disable @typescript-eslint/no-unused-vars */
7
- const net_1 = __importDefault(require("net"));
8
- const chalk_1 = __importDefault(require("chalk"));
9
- const child_process_1 = __importDefault(require("child_process"));
10
- const fs_1 = __importDefault(require("fs"));
11
- const utils_1 = require("../../utils");
12
- const admin_api_1 = require("../../services/admin-api");
13
- const EXE_PATH = {
14
- darwin: '/Applications/Microsoft Remote Desktop.app',
15
- win32: 'c:\\Program Files\\RealVNC\\VNC Viewer\\vncviewer.exe',
16
- };
17
- async function vnc(deviceName) {
18
- const exeName = EXE_PATH[process.platform];
19
- if (!exeName)
20
- throw new Error(`RDP command is not supported on platform ${process.platform}`);
21
- if (!fs_1.default.existsSync(exeName)) {
22
- throw new Error(`RDP desktop client not found, please install from ${chalk_1.default.blueBright('https://www.microsoft.com/en-us/p/microsoft-remote-desktop/')}`);
23
- }
24
- console.log(chalk_1.default.dim('Starting local service'));
25
- const port = Math.floor(10000 + ((Math.random() * 100000) % 10000));
26
- // wait for a single connection
27
- const connPromise = new Promise((resolve) => {
28
- const server = net_1.default.createServer((c) => {
29
- server.close();
30
- resolve(c);
31
- });
32
- server.listen(port, () => console.log(chalk_1.default.dim(`Rdp listening on port ${chalk_1.default.blue(port)}`)));
33
- });
34
- // FIXME: use node-tmp library
35
- console.log(chalk_1.default.dim('Starting RDP client'));
36
- if (process.platform === 'darwin') {
37
- fs_1.default.writeFileSync('/tmp/conn.rdp', `full address:s:127.0.0.1:${port}\nusername:s:test\n`);
38
- child_process_1.default.spawn('open', [exeName, `/tmp/conn.rdp`]);
39
- }
40
- if (process.platform === 'win32') {
41
- fs_1.default.writeFileSync('c:/Windows/Temp/conn.rdp', `full address:s:127.0.0.1:${port}\nusername:s:test\n`);
42
- child_process_1.default.spawn('mstsc.exe', [`c:/Windows/Temp/conn.rdp`]);
43
- }
44
- console.log(chalk_1.default.dim('Waiting for an rdp connection'));
45
- let conn = await connPromise;
46
- const { stream } = (0, utils_1.openStream)(await (0, admin_api_1.adminApi)().devices.startRdpSession(deviceName));
47
- console.log(chalk_1.default.dim('Opened'));
48
- stream.pipe(conn);
49
- conn.pipe(stream);
50
- conn.on('error', (e) => console.log('Error', e.toString()));
51
- conn.on('close', () => {
52
- console.log(chalk_1.default.dim('Connection closed'));
53
- stream.destroy();
54
- });
55
- stream.on('close', () => {
56
- console.log(chalk_1.default.dim('Socket closed'));
57
- if (conn) {
58
- conn.destroy();
59
- conn = null;
60
- }
61
- });
62
- }
63
- exports.default = vnc;
64
- //# sourceMappingURL=rdp.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rdp.js","sourceRoot":"","sources":["../../../src/commands/legacydev/rdp.ts"],"names":[],"mappings":"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"}
@@ -1,142 +0,0 @@
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 ws_1 = __importDefault(require("ws"));
8
- const shell_1 = require("./shell");
9
- async function getWebSocketDebuggerUrl(port) {
10
- const response = await fetch(`http://localhost:${port}/json`);
11
- const targets = await response.json();
12
- const pageTarget = targets.find((target) => {
13
- const url = new URL(target.url);
14
- return (target.type === 'page' &&
15
- (url.protocol === 'http:' || url.protocol === 'https:' || url.protocol === 'file:'));
16
- });
17
- if (!pageTarget) {
18
- throw new Error('No suitable page target found');
19
- }
20
- return pageTarget.webSocketDebuggerUrl;
21
- }
22
- async function screenDevTools(deviceName, options) {
23
- const { url, port } = options;
24
- let originalUrl = null;
25
- let debuggerWs = null;
26
- // Use provided port or generate random port for DevTools forwarding
27
- const remotePort = port || Math.floor(10000 + ((Math.random() * 100000) % 10000));
28
- console.log(chalk_1.default.dim(`Starting Chrome DevTools session on port ${remotePort}...`));
29
- // Start shell with port forwarding
30
- const { shellPromise, process: shellProcess } = await (0, shell_1.shellImpl)(deviceName, {
31
- L: `${remotePort}:localhost:3000`,
32
- silent: true,
33
- detached: true,
34
- });
35
- // Unref the child process to prevent it from keeping the event loop running
36
- shellProcess?.unref();
37
- // Handle cleanup on process exit
38
- async function cleanup() {
39
- if (originalUrl && debuggerWs) {
40
- console.log(chalk_1.default.dim('Restoring original URL...'));
41
- try {
42
- const navigateCommand = {
43
- id: 1,
44
- method: 'Page.navigate',
45
- params: { url: originalUrl },
46
- };
47
- debuggerWs.send(JSON.stringify(navigateCommand));
48
- // Poll the /json endpoint until URL changes back
49
- const maxAttempts = 20; // 10 seconds total (20 * 500ms)
50
- for (let attempt = 0; attempt < maxAttempts; attempt++) {
51
- await new Promise((resolve) => setTimeout(resolve, 500));
52
- try {
53
- const response = await fetch(`http://localhost:${remotePort}/json`);
54
- const targets = await response.json();
55
- const pageTarget = targets.find((target) => target.type === 'page');
56
- if (pageTarget && pageTarget.url === originalUrl) {
57
- debuggerWs.close();
58
- console.log(chalk_1.default.green('Successfully restored original URL'));
59
- return;
60
- }
61
- }
62
- catch (error) {
63
- console.log(chalk_1.default.yellow(`Failed to check navigation status: ${error.message}`));
64
- }
65
- }
66
- throw new Error('Navigation timeout');
67
- }
68
- catch (error) {
69
- console.log(chalk_1.default.yellow(`Failed to restore original URL: ${error.message}`));
70
- throw error;
71
- }
72
- }
73
- }
74
- process.on('SIGINT', async () => {
75
- await cleanup();
76
- shellProcess?.kill();
77
- await new Promise((resolve) => setTimeout(resolve, 500));
78
- process.exit();
79
- });
80
- // Wait for the connection and port forwarding to establish
81
- await new Promise((resolve) => setTimeout(resolve, 3000));
82
- // Launch Chrome/Chromium with inspect page
83
- console.log(chalk_1.default.dim('Opening Chrome DevTools inspector...'));
84
- console.log(chalk_1.default.yellow('\nTo debug the remote target:'));
85
- console.log(chalk_1.default.yellow('1. Click "Configure..." next to "Discover network targets" in Chrome DevTools'));
86
- console.log(chalk_1.default.yellow(`2. Add "localhost:${remotePort}" to the target discovery settings`));
87
- console.log(chalk_1.default.yellow('3. Wait for the target to appear under "Remote Target"\n'));
88
- if (url) {
89
- console.log(chalk_1.default.dim(`Waiting for debugger to be available...`));
90
- await new Promise((resolve) => setTimeout(resolve, 5000));
91
- try {
92
- const debuggerUrl = await getWebSocketDebuggerUrl(remotePort);
93
- debuggerWs = new ws_1.default(debuggerUrl);
94
- // Save current URL and establish WebSocket connection
95
- await new Promise((resolve, reject) => {
96
- debuggerWs?.on('open', () => {
97
- console.log(chalk_1.default.dim('WebSocket connection opened'));
98
- const getUrlCommand = {
99
- id: 1,
100
- method: 'Page.getNavigationHistory',
101
- };
102
- debuggerWs?.send(JSON.stringify(getUrlCommand));
103
- });
104
- const onMessage = (data) => {
105
- const response = JSON.parse(data.toString());
106
- if (response.id === 1 && response.result?.entries?.length > 0) {
107
- const currentEntry = response.result.entries[response.result.currentIndex];
108
- originalUrl = currentEntry.url;
109
- console.log(chalk_1.default.dim(`Saved original URL: ${originalUrl}`));
110
- // Now navigate to the new URL
111
- const navigateCommand = {
112
- id: 2,
113
- method: 'Page.navigate',
114
- params: { url },
115
- };
116
- debuggerWs?.send(JSON.stringify(navigateCommand));
117
- }
118
- else if (response.id === 2) {
119
- debuggerWs?.removeListener('message', onMessage);
120
- console.log(chalk_1.default.green(`Successfully navigated to ${url}`));
121
- resolve();
122
- }
123
- };
124
- debuggerWs?.on('message', onMessage);
125
- debuggerWs?.on('error', (error) => {
126
- console.log(chalk_1.default.red(`WebSocket error: ${error.message}`));
127
- reject(error);
128
- });
129
- });
130
- }
131
- catch (error) {
132
- console.log(chalk_1.default.yellow(`Failed to navigate to URL: ${error.message}`));
133
- console.log(chalk_1.default.yellow('You may need to navigate manually.'));
134
- }
135
- }
136
- console.log(chalk_1.default.dim('\nPress Ctrl+C when done.'));
137
- // Await the shell promise
138
- await shellPromise;
139
- return shellPromise;
140
- }
141
- exports.default = screenDevTools;
142
- //# sourceMappingURL=screen-devtools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"screen-devtools.js","sourceRoot":"","sources":["../../../src/commands/legacydev/screen-devtools.ts"],"names":[],"mappings":"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"}
@@ -1,89 +0,0 @@
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
- /* eslint-disable @typescript-eslint/no-explicit-any */
7
- const chalk_1 = __importDefault(require("chalk"));
8
- const admin_api_1 = require("../../services/admin-api");
9
- const fmt = (a) => {
10
- if (typeof a === 'string')
11
- return chalk_1.default.green(a);
12
- if (typeof a === 'number')
13
- return chalk_1.default.blue(a);
14
- if (typeof a === 'boolean')
15
- return chalk_1.default.yellow(a);
16
- return a;
17
- };
18
- const fmtStatus = (status) => {
19
- if (status === 'running')
20
- return chalk_1.default.green(status);
21
- if (status === 'backoff')
22
- return chalk_1.default.red(status);
23
- return chalk_1.default.yellow(status);
24
- };
25
- const fmtVersion = (selected, desired, reported) => {
26
- if (desired === reported && desired === selected)
27
- return chalk_1.default.blue(reported);
28
- if (selected === desired)
29
- return `${chalk_1.default.yellow(reported)} => ${chalk_1.default.yellow(desired)}`;
30
- return `${chalk_1.default.red(reported)} => ${chalk_1.default.blue(selected)}`;
31
- };
32
- exports.default = async (deviceName) => {
33
- const orgs = await (0, admin_api_1.adminApi)().organizations.listOrganizations();
34
- const device = await (0, admin_api_1.adminApi)().devices.getDeviceByName(deviceName);
35
- if (!device) {
36
- throw new Error('Device not found');
37
- }
38
- if (!device.parentDevice ||
39
- !device.parentDevice.id ||
40
- device.parentDevice.type !== 'iothub') {
41
- throw new Error('Non Edge device cannot have edge modules');
42
- }
43
- const iothubDeviceId = device.parentDevice.id;
44
- console.log(chalk_1.default.dim(`Using device ${chalk_1.default.blue(`${device.organizationSlug}.${device.deviceName}`)}`));
45
- const orgsById = orgs.reduce((res, o) => {
46
- res[o.id] = o;
47
- return res;
48
- }, {});
49
- const modules = await (0, admin_api_1.adminApi)().deviceModules.listModules();
50
- const res = await (0, admin_api_1.adminApi)().devices.getDeviceInstalledModulesEdge(iothubDeviceId);
51
- const moduleStatus = await (0, admin_api_1.adminApi)().devices.getDeviceReportedModulesEdge(deviceName);
52
- const result = [];
53
- for (const mod of Object.values(res)) {
54
- const module = modules.find((m) => m.id === mod.moduleId);
55
- if (!module) {
56
- console.error(chalk_1.default.red(`Module ${mod.moduleId} not found`));
57
- continue; // eslint-disable-line no-continue
58
- }
59
- const versions = await (0, admin_api_1.adminApi)().deviceModules.listModuleVersions(module.id);
60
- const version = versions.find((ver) => ver.id === mod.versionId);
61
- if (!version) {
62
- console.error(chalk_1.default.red(`Version ${mod.versionId} not found`));
63
- continue; // eslint-disable-line no-continue
64
- }
65
- const { organizationName } = orgsById[module.organizationId];
66
- const status = moduleStatus.find((st) => st.module === module.moduleName);
67
- result.push({
68
- name: `${organizationName}.${module.moduleName}`,
69
- module,
70
- version: version.version,
71
- desiredVer: status ? status.desiredVersion : version.version,
72
- reportedVer: status ? status.version : version.version,
73
- status: status ? status.status : 'unknown',
74
- settings: mod.settings,
75
- });
76
- }
77
- let i = 0;
78
- for (const item of result) {
79
- if (i !== 0)
80
- console.log('');
81
- i += 1;
82
- console.log(fmtStatus(item.status), chalk_1.default.magenta(item.name), fmtVersion(item.version, item.desiredVer, item.reportedVer), chalk_1.default.dim(item.module.displayName));
83
- for (const name of Object.keys(item.settings)) {
84
- console.log(' ', name, fmt(item.settings[name]));
85
- }
86
- }
87
- // console.log(JSON.stringify(result, null, 1));
88
- };
89
- //# sourceMappingURL=settingsShow.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"settingsShow.js","sourceRoot":"","sources":["../../../src/commands/legacydev/settingsShow.ts"],"names":[],"mappings":"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"}
@@ -1,114 +0,0 @@
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
- /* eslint-disable @typescript-eslint/no-explicit-any */
7
- /* eslint-disable @typescript-eslint/no-unused-vars */
8
- const chalk_1 = __importDefault(require("chalk"));
9
- const admin_api_1 = require("../../services/admin-api");
10
- const findModule = (selectedModule, installedModules, modules, orgsById) => {
11
- for (const installed of Object.values(installedModules)) {
12
- const module = modules.find((m) => m._id === installed.moduleId);
13
- if (!module)
14
- console.error(chalk_1.default.red(`Module ${installed.moduleId} not found`));
15
- const { organizationName } = orgsById[module.organizationId];
16
- if (!organizationName)
17
- console.error(chalk_1.default.red(`Org ${module.organizationId} not found`));
18
- const fullName = `${organizationName}.${module.moduleName}`;
19
- const shortName = module.moduleName;
20
- if (selectedModule === fullName)
21
- return { installed, module, name: fullName, path: '' };
22
- if (selectedModule === shortName)
23
- return { installed, module, name: fullName, path: '' };
24
- if (selectedModule.startsWith(`${fullName}.`))
25
- return {
26
- installed,
27
- module,
28
- name: fullName,
29
- path: selectedModule.split(`${fullName}.`)[1],
30
- };
31
- if (selectedModule.startsWith(`${shortName}.`))
32
- return {
33
- installed,
34
- module,
35
- name: fullName,
36
- path: selectedModule.split(`${shortName}.`)[1],
37
- };
38
- }
39
- return false;
40
- };
41
- const updateModuleVersion = async (selected, info, installedModules) => {
42
- const versions = await (0, admin_api_1.adminApi)().deviceModules.listModuleVersions(info.module._id);
43
- let version = selected;
44
- if (selected === 'latest' || selected === 'last') {
45
- // @ts-ignore
46
- versions.sort((a, b) => a.createdAt - b.createdAt);
47
- version = versions[versions.length - 1].version;
48
- }
49
- const found = versions.find((ver) => ver.version === version);
50
- if (!found)
51
- throw new Error(`Module version ${version} not found`);
52
- console.log(chalk_1.default.dim('Version found'));
53
- if (installedModules[info.module._id].versionId !== found.id) {
54
- return [found, true];
55
- }
56
- return [found, false];
57
- };
58
- exports.default = async (deviceName, patches) => {
59
- const device = await (0, admin_api_1.adminApi)().devices.getDeviceByName(deviceName);
60
- if (!device) {
61
- throw new Error('Device not found');
62
- }
63
- if (device.parentDevice.type !== 'iothub' || !device.parentDevice.id) {
64
- throw new Error('Non Edge device cannot have edge modules');
65
- }
66
- const iothubDeviceId = device.parentDevice.id;
67
- const orgs = await (0, admin_api_1.adminApi)().organizations.listOrganizations();
68
- const orgsById = orgs.reduce((res, o) => {
69
- res[o.id] = o;
70
- return res;
71
- }, {});
72
- const modules = await (0, admin_api_1.adminApi)().deviceModules.listModules();
73
- const installedModules = await (0, admin_api_1.adminApi)().devices.getDeviceInstalledModulesEdge(iothubDeviceId);
74
- let changed = false;
75
- for (const patch of patches) {
76
- const [name, value] = patch.split('=');
77
- const [selectedModule, selectedVersion] = name.split('@');
78
- if (!selectedModule)
79
- throw new Error('Please specify module name');
80
- const info = findModule(selectedModule, installedModules, modules, orgsById);
81
- if (!info)
82
- throw new Error(`Module not found: ${selectedModule}`);
83
- console.log(chalk_1.default.dim('Module found'));
84
- if (selectedVersion) {
85
- const [version, updated] = await updateModuleVersion(selectedVersion, info, installedModules);
86
- if (updated) {
87
- changed = true;
88
- installedModules[info.module._id].versionId = version.id;
89
- console.log(chalk_1.default.green(`Module ${chalk_1.default.magenta(info.name)} updated to version ${chalk_1.default.blue(version.version)}`));
90
- }
91
- else {
92
- console.log(chalk_1.default.green(`Module ${chalk_1.default.magenta(info.name)} version ${chalk_1.default.blue(version.version)} not changed`));
93
- }
94
- }
95
- if (value !== undefined && info.path !== '') {
96
- const type = typeof installedModules[info.module._id].settings[info.path];
97
- if (type === 'undefined')
98
- throw new Error(`No such setting: ${info.path}`);
99
- if (type === 'string') {
100
- console.log(`Updating setting ${chalk_1.default.magenta(info.name)}.${chalk_1.default.green(info.path)} = ${chalk_1.default.blue(value)}`);
101
- installedModules[info.module._id].settings[info.path] = value;
102
- changed = true;
103
- }
104
- else {
105
- throw new Error(`Invalid setting type: ${type}`);
106
- }
107
- }
108
- }
109
- if (changed) {
110
- console.log(installedModules);
111
- await (0, admin_api_1.adminApi)().devices.updateDeviceInstalledModulesEdge(iothubDeviceId, installedModules);
112
- }
113
- };
114
- //# sourceMappingURL=settingsUpdate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"settingsUpdate.js","sourceRoot":"","sources":["../../../src/commands/legacydev/settingsUpdate.ts"],"names":[],"mappings":"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"}
@@ -1,167 +0,0 @@
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.shellImpl = shellImpl;
7
- /* eslint-disable @typescript-eslint/no-explicit-any */
8
- /* eslint-disable @typescript-eslint/no-unused-vars */
9
- const child_process_1 = __importDefault(require("child_process"));
10
- const net_1 = __importDefault(require("net"));
11
- const fs_1 = __importDefault(require("fs"));
12
- const chalk_1 = __importDefault(require("chalk"));
13
- const path_1 = __importDefault(require("path"));
14
- const os_1 = __importDefault(require("os"));
15
- const utils_1 = require("../../utils");
16
- const admin_api_1 = require("../../services/admin-api");
17
- async function shellImpl(deviceName, options) {
18
- let forward = options.L;
19
- const { silent, detached } = options;
20
- if (!silent)
21
- console.log(chalk_1.default.dim('> creating keypair'));
22
- const keyfile = path_1.default.join(os_1.default.tmpdir(), `gridapp${Math.floor(Math.random() * 1000)}.key`);
23
- if (fs_1.default.existsSync(keyfile)) {
24
- fs_1.default.unlinkSync(keyfile);
25
- }
26
- if (fs_1.default.existsSync(`${keyfile}.pub`)) {
27
- fs_1.default.unlinkSync(`${keyfile}.pub`);
28
- }
29
- child_process_1.default.execSync(`ssh-keygen -t ed25519 -f ${keyfile} -N ""`);
30
- const key = fs_1.default.readFileSync(`${keyfile}.pub`).toString();
31
- let stream;
32
- let isPhyos = true;
33
- try {
34
- if (!silent)
35
- console.log(chalk_1.default.dim(`Connecting to IoTHub for device: ${deviceName}`));
36
- const { stream: curStream, isPhyos: isPhyosDevice } = (0, utils_1.openStream)(await (0, admin_api_1.adminApi)().devices.startDeviceShellSession(deviceName, { key }));
37
- stream = curStream;
38
- isPhyos = isPhyosDevice;
39
- }
40
- catch (err) {
41
- throw new Error(`Unable to establish connection to the device. Please try again. ${err}`);
42
- }
43
- let socketDataCounter = 0;
44
- const keepAliveDurationSeconds = 25;
45
- const timeoutDuration = 1000 * (keepAliveDurationSeconds + 5);
46
- // Each interval lasts 30 seconds (timeoutDuration)
47
- // 15 minutes = 15 × 60 = 900 seconds -> 900 seconds ÷ 30 seconds/interval = 30 intervals
48
- const maxInactivityCount = 30; // 15 mins
49
- let inactivityFlagCounter = 0;
50
- let activityCheckInterval;
51
- function startActivityCheckInterval() {
52
- // Don't start activity check if detached mode is enabled
53
- if (detached) {
54
- return;
55
- }
56
- clearInterval(activityCheckInterval);
57
- activityCheckInterval = setInterval(() => {
58
- if (socketDataCounter > 3) {
59
- inactivityFlagCounter = 0;
60
- socketDataCounter = 0;
61
- return;
62
- }
63
- inactivityFlagCounter += 1;
64
- if (inactivityFlagCounter >= maxInactivityCount) {
65
- console.log(chalk_1.default.dim('> No activity for ~15 min, terminating connection.'));
66
- stream.destroy();
67
- clearInterval(activityCheckInterval);
68
- }
69
- socketDataCounter = 0;
70
- }, timeoutDuration);
71
- }
72
- stream.on('data', () => {
73
- socketDataCounter += 1;
74
- });
75
- stream.on('connect', () => {
76
- startActivityCheckInterval();
77
- });
78
- const port = Math.floor(10000 + ((Math.random() * 100000) % 10000));
79
- let fwdPort = Math.floor(10000 + ((Math.random() * 100000) % 10000));
80
- // support for -L fwdPort:host:dstPort option
81
- if (forward) {
82
- const split = forward.split(':');
83
- if (split.length === 3) {
84
- fwdPort = split.shift();
85
- forward = split.join(':');
86
- }
87
- }
88
- if (!silent)
89
- console.log(chalk_1.default.dim('> waiting for client'));
90
- // wait for a single connection
91
- const connPromise = new Promise((resolve) => {
92
- const server = net_1.default.createServer((c) => {
93
- server.close();
94
- resolve(c);
95
- });
96
- server.listen(port, () => {
97
- if (!silent)
98
- console.log(chalk_1.default.dim(`> ssh listening on port ${chalk_1.default.blue(port)}`));
99
- });
100
- });
101
- const fwdOptions = forward ? ['-L', `0.0.0.0:${fwdPort}:${forward}`] : [];
102
- const sshProcess = child_process_1.default.spawn('ssh', [
103
- '-qtt',
104
- `${isPhyos ? 'phygrid' : 'ombori'}@localhost`,
105
- ...fwdOptions,
106
- '-p',
107
- `${port}`,
108
- '-o',
109
- 'UserKnownHostsFile=/dev/null',
110
- '-o',
111
- 'StrictHostKeyChecking=no',
112
- '-o',
113
- `ServerAliveInterval=${keepAliveDurationSeconds}`,
114
- '-i',
115
- keyfile,
116
- ], {
117
- stdio: silent ? 'ignore' : 'inherit',
118
- detached,
119
- });
120
- // Prevent the child from receiving SIGINT
121
- process.removeAllListeners('SIGINT');
122
- const conn = await connPromise;
123
- if (forward && !silent) {
124
- const prefix = /:443$/.test(forward) ? 'https://' : 'http://';
125
- console.log(chalk_1.default.dim(`> port ${chalk_1.default.blue(`${prefix}${forward}`)} fowarded to ${chalk_1.default.bold(chalk_1.default.green(`${prefix}localhost:${fwdPort}`))}`));
126
- }
127
- if (!silent)
128
- console.log(chalk_1.default.dim('> client connected'));
129
- conn.on('end', () => {
130
- if (!silent)
131
- console.log(chalk_1.default.dim('> client disconnected'));
132
- });
133
- // removing key file
134
- setTimeout(() => {
135
- fs_1.default.unlinkSync(keyfile);
136
- }, 10000);
137
- return {
138
- shellPromise: new Promise((resolve, reject) => {
139
- conn.pipe(stream);
140
- stream.pipe(conn);
141
- stream.on('error', () => {
142
- if (!silent)
143
- console.log(chalk_1.default.red('> socket error'));
144
- clearInterval(activityCheckInterval);
145
- reject();
146
- });
147
- stream.on('close', (e) => {
148
- if (!silent)
149
- console.log(chalk_1.default.dim('> socket closed'));
150
- clearInterval(activityCheckInterval);
151
- resolve();
152
- });
153
- }),
154
- process: sshProcess,
155
- };
156
- }
157
- async function shell(deviceName, options) {
158
- try {
159
- const { shellPromise, process } = await shellImpl(deviceName, options);
160
- await shellPromise;
161
- }
162
- catch (error) {
163
- process.exit(1);
164
- }
165
- }
166
- exports.default = shell;
167
- //# sourceMappingURL=shell.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../../src/commands/legacydev/shell.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const admin_api_1 = require("../../services/admin-api");
4
- async function config(deviceName) {
5
- const data = await (0, admin_api_1.adminApi)().devices.getDeviceTwinEdge(deviceName);
6
- console.log(JSON.stringify(data, null, 2));
7
- }
8
- exports.default = config;
9
- //# sourceMappingURL=showTwin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"showTwin.js","sourceRoot":"","sources":["../../../src/commands/legacydev/showTwin.ts"],"names":[],"mappings":";;AAAA,wDAAoD;AAEpD,KAAK,UAAU,MAAM,CAAC,UAAU;IAC9B,MAAM,IAAI,GAAG,MAAM,IAAA,oBAAQ,GAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,kBAAe,MAAM,CAAC"}