@phystack/cli 4.4.29

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 (192) hide show
  1. package/LICENSE.md +19 -0
  2. package/README.md +24 -0
  3. package/bin/index.js +2 -0
  4. package/dist/commands/app/build-apps.js +66 -0
  5. package/dist/commands/app/build-apps.js.map +1 -0
  6. package/dist/commands/app/build-container-remote.js +171 -0
  7. package/dist/commands/app/build-container-remote.js.map +1 -0
  8. package/dist/commands/app/build-container.js +322 -0
  9. package/dist/commands/app/build-container.js.map +1 -0
  10. package/dist/commands/app/build.js +375 -0
  11. package/dist/commands/app/build.js.map +1 -0
  12. package/dist/commands/app/create.js +409 -0
  13. package/dist/commands/app/create.js.map +1 -0
  14. package/dist/commands/app/deploy.js +176 -0
  15. package/dist/commands/app/deploy.js.map +1 -0
  16. package/dist/commands/app/device-picker.js +150 -0
  17. package/dist/commands/app/device-picker.js.map +1 -0
  18. package/dist/commands/app/import.js +303 -0
  19. package/dist/commands/app/import.js.map +1 -0
  20. package/dist/commands/app/list.js +26 -0
  21. package/dist/commands/app/list.js.map +1 -0
  22. package/dist/commands/app/publish.js +327 -0
  23. package/dist/commands/app/publish.js.map +1 -0
  24. package/dist/commands/app/settings.js +129 -0
  25. package/dist/commands/app/settings.js.map +1 -0
  26. package/dist/commands/app/types.js +13 -0
  27. package/dist/commands/app/types.js.map +1 -0
  28. package/dist/commands/app/upload-description.js +139 -0
  29. package/dist/commands/app/upload-description.js.map +1 -0
  30. package/dist/commands/app/upload-settings.js +29 -0
  31. package/dist/commands/app/upload-settings.js.map +1 -0
  32. package/dist/commands/app/utils.js +86 -0
  33. package/dist/commands/app/utils.js.map +1 -0
  34. package/dist/commands/auth/login.js +111 -0
  35. package/dist/commands/auth/login.js.map +1 -0
  36. package/dist/commands/auth/logout.js +19 -0
  37. package/dist/commands/auth/logout.js.map +1 -0
  38. package/dist/commands/descriptor/create.js +143 -0
  39. package/dist/commands/descriptor/create.js.map +1 -0
  40. package/dist/commands/descriptor/index.js +36 -0
  41. package/dist/commands/descriptor/index.js.map +1 -0
  42. package/dist/commands/descriptor/publish.js +163 -0
  43. package/dist/commands/descriptor/publish.js.map +1 -0
  44. package/dist/commands/descriptor/show.js +68 -0
  45. package/dist/commands/descriptor/show.js.map +1 -0
  46. package/dist/commands/dev/develop.js +175 -0
  47. package/dist/commands/dev/develop.js.map +1 -0
  48. package/dist/commands/dev/forward.js +118 -0
  49. package/dist/commands/dev/forward.js.map +1 -0
  50. package/dist/commands/dev/index.js +66 -0
  51. package/dist/commands/dev/index.js.map +1 -0
  52. package/dist/commands/dev/list.js +96 -0
  53. package/dist/commands/dev/list.js.map +1 -0
  54. package/dist/commands/dev/screen-devtools.js +156 -0
  55. package/dist/commands/dev/screen-devtools.js.map +1 -0
  56. package/dist/commands/dev/select.js +118 -0
  57. package/dist/commands/dev/select.js.map +1 -0
  58. package/dist/commands/dev/shell.js +171 -0
  59. package/dist/commands/dev/shell.js.map +1 -0
  60. package/dist/commands/dev/vnc.js +75 -0
  61. package/dist/commands/dev/vnc.js.map +1 -0
  62. package/dist/commands/device/select.js +118 -0
  63. package/dist/commands/device/select.js.map +1 -0
  64. package/dist/commands/flash.js +1120 -0
  65. package/dist/commands/flash.js.map +1 -0
  66. package/dist/commands/inst/create.js +55 -0
  67. package/dist/commands/inst/create.js.map +1 -0
  68. package/dist/commands/inst/index.js +15 -0
  69. package/dist/commands/inst/index.js.map +1 -0
  70. package/dist/commands/inst/list.js +26 -0
  71. package/dist/commands/inst/list.js.map +1 -0
  72. package/dist/commands/legacydev/debug.js +11 -0
  73. package/dist/commands/legacydev/debug.js.map +1 -0
  74. package/dist/commands/legacydev/deploy.js +15 -0
  75. package/dist/commands/legacydev/deploy.js.map +1 -0
  76. package/dist/commands/legacydev/dumpTwin.js +27 -0
  77. package/dist/commands/legacydev/dumpTwin.js.map +1 -0
  78. package/dist/commands/legacydev/forward.js +104 -0
  79. package/dist/commands/legacydev/forward.js.map +1 -0
  80. package/dist/commands/legacydev/index.js +188 -0
  81. package/dist/commands/legacydev/index.js.map +1 -0
  82. package/dist/commands/legacydev/invoke.js +29 -0
  83. package/dist/commands/legacydev/invoke.js.map +1 -0
  84. package/dist/commands/legacydev/js.js +69 -0
  85. package/dist/commands/legacydev/js.js.map +1 -0
  86. package/dist/commands/legacydev/list.js +196 -0
  87. package/dist/commands/legacydev/list.js.map +1 -0
  88. package/dist/commands/legacydev/logs.js +60 -0
  89. package/dist/commands/legacydev/logs.js.map +1 -0
  90. package/dist/commands/legacydev/modules.js +50 -0
  91. package/dist/commands/legacydev/modules.js.map +1 -0
  92. package/dist/commands/legacydev/move.js +23 -0
  93. package/dist/commands/legacydev/move.js.map +1 -0
  94. package/dist/commands/legacydev/ota.js +88 -0
  95. package/dist/commands/legacydev/ota.js.map +1 -0
  96. package/dist/commands/legacydev/patchTwin.js +21 -0
  97. package/dist/commands/legacydev/patchTwin.js.map +1 -0
  98. package/dist/commands/legacydev/pin.js +23 -0
  99. package/dist/commands/legacydev/pin.js.map +1 -0
  100. package/dist/commands/legacydev/pub.js +25 -0
  101. package/dist/commands/legacydev/pub.js.map +1 -0
  102. package/dist/commands/legacydev/rdp.js +64 -0
  103. package/dist/commands/legacydev/rdp.js.map +1 -0
  104. package/dist/commands/legacydev/screen-devtools.js +142 -0
  105. package/dist/commands/legacydev/screen-devtools.js.map +1 -0
  106. package/dist/commands/legacydev/settingsShow.js +89 -0
  107. package/dist/commands/legacydev/settingsShow.js.map +1 -0
  108. package/dist/commands/legacydev/settingsUpdate.js +114 -0
  109. package/dist/commands/legacydev/settingsUpdate.js.map +1 -0
  110. package/dist/commands/legacydev/shell.js +167 -0
  111. package/dist/commands/legacydev/shell.js.map +1 -0
  112. package/dist/commands/legacydev/showTwin.js +9 -0
  113. package/dist/commands/legacydev/showTwin.js.map +1 -0
  114. package/dist/commands/legacydev/statusLog.js +56 -0
  115. package/dist/commands/legacydev/statusLog.js.map +1 -0
  116. package/dist/commands/legacydev/sub.js +39 -0
  117. package/dist/commands/legacydev/sub.js.map +1 -0
  118. package/dist/commands/legacydev/vnc.js +61 -0
  119. package/dist/commands/legacydev/vnc.js.map +1 -0
  120. package/dist/commands/tenant/index.js +21 -0
  121. package/dist/commands/tenant/index.js.map +1 -0
  122. package/dist/commands/tenant/list.js +14 -0
  123. package/dist/commands/tenant/list.js.map +1 -0
  124. package/dist/commands/tenant/select.js +87 -0
  125. package/dist/commands/tenant/select.js.map +1 -0
  126. package/dist/commands/vm/create.js +718 -0
  127. package/dist/commands/vm/create.js.map +1 -0
  128. package/dist/commands/vm/index.js +130 -0
  129. package/dist/commands/vm/index.js.map +1 -0
  130. package/dist/commands/vm/list.js +124 -0
  131. package/dist/commands/vm/list.js.map +1 -0
  132. package/dist/commands/vm/logs.js +66 -0
  133. package/dist/commands/vm/logs.js.map +1 -0
  134. package/dist/commands/vm/remove.js +180 -0
  135. package/dist/commands/vm/remove.js.map +1 -0
  136. package/dist/commands/vm/shell.js +400 -0
  137. package/dist/commands/vm/shell.js.map +1 -0
  138. package/dist/commands/vm/start.js +861 -0
  139. package/dist/commands/vm/start.js.map +1 -0
  140. package/dist/commands/vm/stop.js +232 -0
  141. package/dist/commands/vm/stop.js.map +1 -0
  142. package/dist/index.js +158 -0
  143. package/dist/index.js.map +1 -0
  144. package/dist/services/admin-api/admin-api.types.js +3 -0
  145. package/dist/services/admin-api/admin-api.types.js.map +1 -0
  146. package/dist/services/admin-api/device-modules.admin-api.service.js +58 -0
  147. package/dist/services/admin-api/device-modules.admin-api.service.js.map +1 -0
  148. package/dist/services/admin-api/devices-admin-api.service.js +213 -0
  149. package/dist/services/admin-api/devices-admin-api.service.js.map +1 -0
  150. package/dist/services/admin-api/gridapps-admin-api.service.js +59 -0
  151. package/dist/services/admin-api/gridapps-admin-api.service.js.map +1 -0
  152. package/dist/services/admin-api/index.js +157 -0
  153. package/dist/services/admin-api/index.js.map +1 -0
  154. package/dist/services/admin-api/installations-admin-api.service.js +29 -0
  155. package/dist/services/admin-api/installations-admin-api.service.js.map +1 -0
  156. package/dist/services/admin-api/organizations-admin-api.service.js +53 -0
  157. package/dist/services/admin-api/organizations-admin-api.service.js.map +1 -0
  158. package/dist/services/auth/device-grant-auth.service.js +224 -0
  159. package/dist/services/auth/device-grant-auth.service.js.map +1 -0
  160. package/dist/services/phyhub/index.js +200 -0
  161. package/dist/services/phyhub/index.js.map +1 -0
  162. package/dist/services/phyhub/phyhub.types.js +3 -0
  163. package/dist/services/phyhub/phyhub.types.js.map +1 -0
  164. package/dist/utils/device-fetcher.js +92 -0
  165. package/dist/utils/device-fetcher.js.map +1 -0
  166. package/dist/utils/devices.js +41 -0
  167. package/dist/utils/devices.js.map +1 -0
  168. package/dist/utils/docker-credentials.js +546 -0
  169. package/dist/utils/docker-credentials.js.map +1 -0
  170. package/dist/utils/emulated-device.js +91 -0
  171. package/dist/utils/emulated-device.js.map +1 -0
  172. package/dist/utils/index.js +180 -0
  173. package/dist/utils/index.js.map +1 -0
  174. package/dist/utils/modules.js +36 -0
  175. package/dist/utils/modules.js.map +1 -0
  176. package/dist/utils/org-selector.js +108 -0
  177. package/dist/utils/org-selector.js.map +1 -0
  178. package/dist/utils/proxy.js +31 -0
  179. package/dist/utils/proxy.js.map +1 -0
  180. package/dist/utils/registry-credentials.js +113 -0
  181. package/dist/utils/registry-credentials.js.map +1 -0
  182. package/dist/utils/statuses.js +124 -0
  183. package/dist/utils/statuses.js.map +1 -0
  184. package/dist/utils/templates.js +189 -0
  185. package/dist/utils/templates.js.map +1 -0
  186. package/dist/utils/tenant-storage.js +88 -0
  187. package/dist/utils/tenant-storage.js.map +1 -0
  188. package/dist/utils/vm.js +434 -0
  189. package/dist/utils/vm.js.map +1 -0
  190. package/dist/utils/with-spinner.js +20 -0
  191. package/dist/utils/with-spinner.js.map +1 -0
  192. package/package.json +103 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../src/commands/descriptor/publish.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
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 phyhub_1 = require("../../services/phyhub");
8
+ const tenant_storage_1 = require("../../utils/tenant-storage");
9
+ const org_selector_1 = require("../../utils/org-selector");
10
+ const with_spinner_1 = __importDefault(require("../../utils/with-spinner"));
11
+ /**
12
+ * Format and display descriptor details in a user-friendly way
13
+ * @param descriptor The descriptor to display
14
+ */
15
+ const displayDescriptor = (descriptor) => {
16
+ console.log(chalk_1.default.bold('\nDESCRIPTOR DETAILS'));
17
+ console.log('-'.repeat(50));
18
+ console.log(`${chalk_1.default.bold('Name:')} ${descriptor.name}`);
19
+ console.log(`${chalk_1.default.bold('Display Name:')} ${descriptor.displayName}`);
20
+ console.log(`${chalk_1.default.bold('Unique Name:')} ${descriptor.uniqueName}`);
21
+ console.log(`${chalk_1.default.bold('ID:')} ${descriptor.id}`);
22
+ console.log(`${chalk_1.default.bold('Latest Version:')} ${descriptor.latestVersion}`);
23
+ console.log(`${chalk_1.default.bold('Tenant ID:')} ${descriptor.tenantId}`);
24
+ console.log(`${chalk_1.default.bold('Created:')} ${new Date(descriptor.createdAt).toLocaleString()}`);
25
+ console.log(`${chalk_1.default.bold('Updated:')} ${new Date(descriptor.updatedAt).toLocaleString()}`);
26
+ console.log(`\n${chalk_1.default.bold('Description:')}`);
27
+ console.log(descriptor.description || '(No description provided)');
28
+ };
29
+ /**
30
+ * Command to show details of a specific descriptor
31
+ * @param descriptorName Name of the descriptor to show
32
+ * @param options Command options
33
+ */
34
+ exports.default = async (descriptorName, options = {}) => {
35
+ try {
36
+ // First check if we have a saved tenant
37
+ let organization;
38
+ if (await (0, tenant_storage_1.hasTenant)()) {
39
+ organization = await (0, tenant_storage_1.getTenant)();
40
+ console.log(chalk_1.default.dim(`Using saved tenant: ${organization.displayName}`));
41
+ }
42
+ else {
43
+ // Prompt user to select an organization if no saved tenant
44
+ organization = await (0, org_selector_1.selectOrganization)('Select a tenant to fetch descriptor from:');
45
+ }
46
+ if (!organization) {
47
+ console.log(chalk_1.default.yellow('No tenant selected. Exiting.'));
48
+ return;
49
+ }
50
+ // Use the phyhub service to fetch descriptor details
51
+ console.log(chalk_1.default.dim(`Fetching descriptor: ${descriptorName}`));
52
+ const descriptor = await (0, with_spinner_1.default)(async () => {
53
+ const result = await (0, phyhub_1.phyhubApi)().getTwinDescriptorByName(organization.phyhubUrl, organization.id, descriptorName);
54
+ return result;
55
+ }, `Fetching descriptor "${descriptorName}" from ${organization.displayName}...`);
56
+ if (!descriptor) {
57
+ console.log(chalk_1.default.yellow(`Descriptor "${descriptorName}" not found.`));
58
+ return;
59
+ }
60
+ // Display the descriptor details
61
+ displayDescriptor(descriptor);
62
+ }
63
+ catch (error) {
64
+ console.error(chalk_1.default.red(`Error showing descriptor: ${error.message}`));
65
+ process.exit(1);
66
+ }
67
+ };
68
+ //# sourceMappingURL=show.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"show.js","sourceRoot":"","sources":["../../../src/commands/descriptor/show.ts"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAC1B,kDAAkD;AAClD,+DAAkE;AAClE,2DAA8D;AAC9D,4EAAmD;AAGnD;;;GAGG;AACH,MAAM,iBAAiB,GAAG,CAAC,UAAkC,EAAE,EAAE;IAC/D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5B,OAAO,CAAC,GAAG,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CACT,GAAG,eAAK,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,EAAE,CACtF,CAAC;IACF,OAAO,CAAC,GAAG,CACT,GAAG,eAAK,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,EAAE,CACtF,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,IAAI,2BAA2B,CAAC,CAAC;AACrE,CAAC,CAAC;AAEF;;;;GAIG;AACH,kBAAe,KAAK,EAAE,cAAsB,EAAE,UAAe,EAAE,EAAE,EAAE;IACjE,IAAI,CAAC;QACH,wCAAwC;QACxC,IAAI,YAAY,CAAC;QACjB,IAAI,MAAM,IAAA,0BAAS,GAAE,EAAE,CAAC;YACtB,YAAY,GAAG,MAAM,IAAA,0BAAS,GAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,uBAAuB,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC5E,CAAC;aAAM,CAAC;YACN,2DAA2D;YAC3D,YAAY,GAAG,MAAM,IAAA,iCAAkB,EACrC,2CAA2C,CAC5C,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,CAAC;YAC1D,OAAO;QACT,CAAC;QAED,qDAAqD;QACrD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,wBAAwB,cAAc,EAAE,CAAC,CAAC,CAAC;QAEjE,MAAM,UAAU,GAAG,MAAM,IAAA,sBAAW,EAAC,KAAK,IAAI,EAAE;YAC9C,MAAM,MAAM,GAAG,MAAM,IAAA,kBAAS,GAAE,CAAC,uBAAuB,CACtD,YAAY,CAAC,SAAS,EACtB,YAAY,CAAC,EAAE,EACf,cAAc,CACf,CAAC;YACF,OAAO,MAAM,CAAC;QAChB,CAAC,EAAE,wBAAwB,cAAc,UAAU,YAAY,CAAC,WAAW,KAAK,CAAC,CAAC;QAElF,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,eAAe,cAAc,cAAc,CAAC,CAAC,CAAC;YACvE,OAAO;QACT,CAAC;QAED,iCAAiC;QACjC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,6BAA6B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,175 @@
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 = require("child_process");
8
+ const device_picker_1 = require("../app/device-picker");
9
+ const org_selector_1 = require("../../utils/org-selector");
10
+ const tenant_storage_1 = require("../../utils/tenant-storage");
11
+ const emulated_device_1 = require("../../utils/emulated-device");
12
+ /**
13
+ * Setup a development environment with device credentials as environment variables
14
+ *
15
+ * @param command Optional command to run in the development environment
16
+ * @param options Command options
17
+ * @returns Promise that resolves when the command completes
18
+ */
19
+ exports.default = async (command, options = {}) => {
20
+ try {
21
+ // In export modes, we need to redirect console.log to suppress all output
22
+ // This prevents any debug messages from breaking eval
23
+ if (options.export || options.exportPowershell) {
24
+ // Save original console methods
25
+ const originalConsoleLog = console.log;
26
+ const originalConsoleError = console.error;
27
+ // Temporarily disable all console output
28
+ console.log = () => { };
29
+ console.error = () => { };
30
+ try {
31
+ // Check if we already have a saved device
32
+ const hasDevice = await (0, emulated_device_1.hasEmulatedDevice)();
33
+ if (!hasDevice) {
34
+ // Restore console for error message
35
+ console.log = originalConsoleLog;
36
+ console.error = originalConsoleError;
37
+ console.error('No saved device found. Run "phy dev select" first.');
38
+ return;
39
+ }
40
+ const device = await (0, emulated_device_1.getEmulatedDevice)();
41
+ // Validate that we have the necessary information
42
+ if (!device?.id) {
43
+ // Restore console for error message
44
+ console.log = originalConsoleLog;
45
+ console.error = originalConsoleError;
46
+ console.error('Error: Missing device ID. Run "phy dev select" to select a valid device.');
47
+ return;
48
+ }
49
+ // Prepare environment variables
50
+ const envVars = {
51
+ PHYGRID_DEVICE_ID: device.id,
52
+ PHYGRID_DEVICE_KEY: device.accessKey || '',
53
+ };
54
+ // Output only the export commands with no other text
55
+ if (options.export) {
56
+ // Unix shell export format (bash, zsh, etc.)
57
+ for (const [key, value] of Object.entries(envVars)) {
58
+ process.stdout.write(`export ${key}="${value}";\n`);
59
+ }
60
+ }
61
+ else if (options.exportPowershell) {
62
+ // PowerShell export format
63
+ for (const [key, value] of Object.entries(envVars)) {
64
+ process.stdout.write(`$env:${key}="${value}";\n`);
65
+ }
66
+ }
67
+ // Restore console methods before returning
68
+ console.log = originalConsoleLog;
69
+ console.error = originalConsoleError;
70
+ return;
71
+ }
72
+ catch (error) {
73
+ // Restore console methods
74
+ console.log = originalConsoleLog;
75
+ console.error = originalConsoleError;
76
+ console.error(`Error: ${error.message}`);
77
+ return;
78
+ }
79
+ }
80
+ // Normal mode (not export) - continue with regular flow
81
+ let device;
82
+ const hasDevice = await (0, emulated_device_1.hasEmulatedDevice)();
83
+ if (hasDevice) {
84
+ device = await (0, emulated_device_1.getEmulatedDevice)();
85
+ console.log(chalk_1.default.green(`Using saved device: ${chalk_1.default.cyan(device.name)} (${device.id})`));
86
+ }
87
+ else {
88
+ console.log(chalk_1.default.yellow('No saved device found. You need to select a device first.'));
89
+ // First check if we have a saved tenant
90
+ let organization;
91
+ if (await (0, tenant_storage_1.hasTenant)()) {
92
+ organization = await (0, tenant_storage_1.getTenant)();
93
+ console.log(chalk_1.default.dim(`Using saved tenant: ${organization.displayName}`));
94
+ }
95
+ else {
96
+ // Select a tenant if not already saved
97
+ organization = await (0, org_selector_1.selectOrganization)('Select an organization to find devices:');
98
+ }
99
+ if (!organization) {
100
+ console.log(chalk_1.default.yellow('No organization selected. Exiting.'));
101
+ return;
102
+ }
103
+ // Select a device from the chosen organization
104
+ console.log(chalk_1.default.dim('Please select a device for development:'));
105
+ device = await (0, device_picker_1.selectDevice)(organization.slug);
106
+ if (!device) {
107
+ console.log(chalk_1.default.yellow('No device selected. Operation cancelled.'));
108
+ return;
109
+ }
110
+ }
111
+ // Validate that we have the necessary information
112
+ if (!device?.id) {
113
+ console.error(chalk_1.default.red('Error: Missing device ID'));
114
+ return;
115
+ }
116
+ if (!device?.accessKey) {
117
+ console.error(chalk_1.default.yellow('Warning: Missing device access key'));
118
+ }
119
+ // Prepare environment variables
120
+ const envVars = {
121
+ PHYGRID_DEVICE_ID: device.id,
122
+ PHYGRID_DEVICE_KEY: device.accessKey || '',
123
+ };
124
+ // Skip the variables display in export mode
125
+ console.log(chalk_1.default.green('Setting environment variables:'));
126
+ console.log(chalk_1.default.dim(` PHYGRID_DEVICE_ID=${device.id}`));
127
+ if (device.accessKey) {
128
+ console.log(chalk_1.default.dim(` PHYGRID_DEVICE_KEY=************`));
129
+ }
130
+ else {
131
+ console.log(chalk_1.default.yellow(' PHYGRID_DEVICE_KEY not set (no access key available)'));
132
+ }
133
+ // If no command provided, show how to use variables in the shell
134
+ if (!command) {
135
+ console.log(chalk_1.default.green('\nPhygrid applications require device credentials for local development.'));
136
+ console.log(chalk_1.default.dim('These credentials are used to authenticate with the PhyHub API and access device resources.'));
137
+ console.log(chalk_1.default.green('\nTo set device environment variables in your current shell session:'));
138
+ console.log(chalk_1.default.cyan(' eval "$(phy dev develop --export)" # For bash/zsh'));
139
+ console.log(chalk_1.default.cyan(' phy dev develop --export-powershell | Invoke-Expression # For PowerShell'));
140
+ console.log(chalk_1.default.dim('\nThis will set the following variables:'));
141
+ console.log(chalk_1.default.dim(' PHYGRID_DEVICE_ID'));
142
+ console.log(chalk_1.default.dim(' PHYGRID_DEVICE_KEY'));
143
+ return;
144
+ }
145
+ // Run the command with the environment variables set
146
+ console.log(chalk_1.default.green(`\nRunning command: ${chalk_1.default.cyan(command)}`));
147
+ const childProcess = (0, child_process_1.spawn)(command, {
148
+ stdio: 'inherit',
149
+ env: { ...process.env, ...envVars },
150
+ shell: options.shell !== false,
151
+ });
152
+ // Handle process exit
153
+ await new Promise((resolve, reject) => {
154
+ childProcess.on('close', (code) => {
155
+ if (code === 0) {
156
+ console.log(chalk_1.default.green('\nCommand completed successfully.'));
157
+ resolve();
158
+ }
159
+ else {
160
+ console.error(chalk_1.default.red(`\nCommand exited with code ${code}`));
161
+ reject(new Error(`Command exited with code ${code}`));
162
+ }
163
+ });
164
+ childProcess.on('error', (err) => {
165
+ console.error(chalk_1.default.red(`\nError running command: ${err.message}`));
166
+ reject(err);
167
+ });
168
+ });
169
+ }
170
+ catch (error) {
171
+ console.error(chalk_1.default.red(`Error: ${error.message}`));
172
+ process.exit(1);
173
+ }
174
+ };
175
+ //# sourceMappingURL=develop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"develop.js","sourceRoot":"","sources":["../../../src/commands/dev/develop.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,118 @@
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 websocket_stream_1 = __importDefault(require("websocket-stream"));
7
+ const child_process_1 = __importDefault(require("child_process"));
8
+ const net_1 = __importDefault(require("net"));
9
+ const fs_1 = __importDefault(require("fs"));
10
+ const chalk_1 = __importDefault(require("chalk"));
11
+ const path_1 = __importDefault(require("path"));
12
+ const os_1 = __importDefault(require("os"));
13
+ const url_1 = __importDefault(require("url"));
14
+ const admin_api_1 = require("../../services/admin-api");
15
+ async function forward(deviceName, fwdUrl, options) {
16
+ try {
17
+ const parsed = url_1.default.parse(fwdUrl);
18
+ const isHttp = parsed.protocol === 'http:';
19
+ const isHttps = parsed.protocol === 'https:';
20
+ if (!isHttp && !isHttps)
21
+ throw new Error('Can only forward http and https urls');
22
+ let remotePort = parsed.port;
23
+ if (remotePort === null) {
24
+ if (isHttp)
25
+ remotePort = '80';
26
+ if (isHttps)
27
+ remotePort = '443';
28
+ }
29
+ const remoteHost = parsed.hostname;
30
+ const forwardedUrl = { ...parsed, host: null, href: null, hostname: 'localhost' };
31
+ console.log(chalk_1.default.dim('> creating keypair'));
32
+ const keyfile = path_1.default.join(os_1.default.tmpdir(), `gridapp${Math.floor(Math.random() * 1000)}.key`);
33
+ if (fs_1.default.existsSync(keyfile)) {
34
+ fs_1.default.unlinkSync(keyfile);
35
+ }
36
+ if (fs_1.default.existsSync(`${keyfile}.pub`)) {
37
+ fs_1.default.unlinkSync(`${keyfile}.pub`);
38
+ }
39
+ child_process_1.default.execSync(`ssh-keygen -t ed25519 -f ${keyfile} -N ""`);
40
+ const key = fs_1.default.readFileSync(`${keyfile}.pub`).toString();
41
+ console.log(chalk_1.default.dim('> starting session'));
42
+ try {
43
+ const { url, auth, isPhyos, } = await (0, admin_api_1.adminApi)().devices.startPhyHubDeviceShellSession(deviceName, { key });
44
+ console.log(chalk_1.default.dim('> opening local service'));
45
+ const port = Math.floor(10000 + ((Math.random() * 100000) % 10000));
46
+ const fwdPort = Math.floor(10000 + ((Math.random() * 100000) % 10000));
47
+ forwardedUrl.port = `${fwdPort}`;
48
+ // wait for a single connection
49
+ const connPromise = new Promise((resolve) => {
50
+ const server = net_1.default.createServer((c) => {
51
+ server.close();
52
+ resolve(c);
53
+ });
54
+ server.listen(port, () => console.log(chalk_1.default.dim(`> ssh listening on port ${chalk_1.default.blue(port)}`)));
55
+ });
56
+ child_process_1.default.spawn('ssh', [
57
+ `${isPhyos ? 'phygrid' : 'ombori'}@localhost`,
58
+ '-L',
59
+ `0.0.0.0:${fwdPort}:${remoteHost}:${remotePort}`,
60
+ '-p',
61
+ `${port}`,
62
+ '-o',
63
+ 'UserKnownHostsFile=/dev/null',
64
+ '-o',
65
+ 'StrictHostKeyChecking=no',
66
+ '-o',
67
+ 'ServerAliveInterval=60',
68
+ '-N',
69
+ '-i',
70
+ keyfile,
71
+ ], { stdio: 'inherit' });
72
+ const conn = await connPromise;
73
+ const tgt = url_1.default.format(forwardedUrl);
74
+ console.log(chalk_1.default.dim(`Url ${chalk_1.default.blue(fwdUrl)} forwarded to ${chalk_1.default.bold(chalk_1.default.green(tgt))}`));
75
+ console.log(chalk_1.default.dim('> client connected'));
76
+ conn.on('end', () => {
77
+ console.log(chalk_1.default.dim('> client disconnected'));
78
+ });
79
+ // removing key file
80
+ setTimeout(() => {
81
+ fs_1.default.unlinkSync(keyfile);
82
+ }, 10000);
83
+ const exited = new Promise((resolve, reject) => {
84
+ const ws = (0, websocket_stream_1.default)(url, { headers: { Authorization: `Bearer ${auth}` } });
85
+ console.log(chalk_1.default.dim(`> connection opened`));
86
+ console.log(chalk_1.default.dim('Opening browser'));
87
+ if (process.platform === 'darwin')
88
+ child_process_1.default.spawn('open', [tgt]);
89
+ if (process.platform === 'win32')
90
+ child_process_1.default.exec(`start ${tgt}`);
91
+ conn.pipe(ws);
92
+ ws.pipe(conn);
93
+ ws.on('error', () => {
94
+ console.log(chalk_1.default.red('> socket error'));
95
+ reject();
96
+ });
97
+ ws.on('close', () => {
98
+ console.log(chalk_1.default.dim('> socket closed'));
99
+ resolve();
100
+ });
101
+ });
102
+ await new Promise((resolve) => setTimeout(resolve, 3000));
103
+ return exited;
104
+ }
105
+ catch (apiError) {
106
+ if (apiError.message && apiError.message.includes('Unauthorized')) {
107
+ throw new Error(`Unauthorized. Please run "phy login" to use this command.`);
108
+ }
109
+ throw apiError;
110
+ }
111
+ }
112
+ catch (error) {
113
+ console.error(chalk_1.default.red(error.toString()));
114
+ process.exit(1);
115
+ }
116
+ }
117
+ exports.default = forward;
118
+ //# sourceMappingURL=forward.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forward.js","sourceRoot":"","sources":["../../../src/commands/dev/forward.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
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 shell_1 = __importDefault(require("./shell"));
9
+ const vnc_1 = __importDefault(require("./vnc"));
10
+ const forward_1 = __importDefault(require("./forward"));
11
+ const screen_devtools_1 = __importDefault(require("./screen-devtools"));
12
+ const list_1 = __importDefault(require("./list"));
13
+ const select_1 = __importDefault(require("./select"));
14
+ const develop_1 = __importDefault(require("./develop"));
15
+ const dev = commander_1.default.command('dev').description('Compute devices management');
16
+ // Shell command
17
+ dev
18
+ .command('shell <device>')
19
+ .option('-L <ip>:<port>', 'Forward remote port to a local machine')
20
+ .description('Open a shell session to a device via PhyHub')
21
+ .usage('<device> - open shell via PhyHub')
22
+ .usage('-L <host>:<port> <device> - open shell and forward a remote port')
23
+ .action((0, utils_1.handleError)(shell_1.default));
24
+ // VNC command
25
+ dev
26
+ .command('vnc <device>')
27
+ .description('Open a VNC session to a device via PhyHub')
28
+ .action((0, utils_1.handleError)(vnc_1.default));
29
+ // Forward command
30
+ dev
31
+ .command('forward <device> <url>')
32
+ .description("Access a url from device's local network via PhyHub")
33
+ .action((0, utils_1.handleError)(forward_1.default));
34
+ // Screen DevTools command
35
+ dev
36
+ .command('screen-devtools <device>')
37
+ .description('Open Chrome / Chromium DevTools debugging session to a device')
38
+ .option('-u, --url <url>', 'URL to navigate to after connecting')
39
+ .option('-p, --port <port>', 'Port to forward to')
40
+ .action((0, utils_1.handleError)(screen_devtools_1.default));
41
+ // List devices command
42
+ dev
43
+ .command('list [searchQuery]')
44
+ .description('List devices from PhyHub')
45
+ .option('-j, --json', 'Output in JSON format')
46
+ .option('--limit <number>', 'Maximum number of devices to fetch', parseInt)
47
+ .option('--page <number>', 'Page number for pagination', parseInt)
48
+ .option('--search <term>', 'Search term to filter devices (deprecated, use positional argument)')
49
+ .action((0, utils_1.handleError)(list_1.default));
50
+ // Select device command
51
+ dev
52
+ .command('select')
53
+ .description('Select a device for screen app emulation')
54
+ .option('--clear', 'Clear the saved device')
55
+ .action((0, utils_1.handleError)(select_1.default));
56
+ // Develop command
57
+ dev
58
+ .command('develop [command]')
59
+ .description('Set PHYGRID_DEVICE_ID and PHYGRID_DEVICE_KEY environment variables for local development')
60
+ .option('--no-shell', 'Disable shell mode when running the command')
61
+ .option('--export', 'Output export commands for bash/zsh shells')
62
+ .option('--export-powershell', 'Output export commands for PowerShell')
63
+ .action((0, utils_1.handleError)(develop_1.default));
64
+ // Other commands for new devices will be added here
65
+ exports.default = dev;
66
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/dev/index.ts"],"names":[],"mappings":";;;;;AAAA,0DAAgC;AAChC,uCAA0C;AAC1C,oDAA4B;AAC5B,gDAAwB;AACxB,wDAAgC;AAChC,wEAA+C;AAC/C,kDAA0B;AAC1B,sDAA8B;AAC9B,wDAAgC;AAEhC,MAAM,GAAG,GAAG,mBAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAC;AAE7E,gBAAgB;AAChB,GAAG;KACA,OAAO,CAAC,gBAAgB,CAAC;KACzB,MAAM,CAAC,gBAAgB,EAAE,wCAAwC,CAAC;KAClE,WAAW,CAAC,6CAA6C,CAAC;KAC1D,KAAK,CAAC,kCAAkC,CAAC;KACzC,KAAK,CAAC,kEAAkE,CAAC;KACzE,MAAM,CAAC,IAAA,mBAAW,EAAC,eAAK,CAAC,CAAC,CAAC;AAE9B,cAAc;AACd,GAAG;KACA,OAAO,CAAC,cAAc,CAAC;KACvB,WAAW,CAAC,2CAA2C,CAAC;KACxD,MAAM,CAAC,IAAA,mBAAW,EAAC,aAAG,CAAC,CAAC,CAAC;AAE5B,kBAAkB;AAClB,GAAG;KACA,OAAO,CAAC,wBAAwB,CAAC;KACjC,WAAW,CAAC,qDAAqD,CAAC;KAClE,MAAM,CAAC,IAAA,mBAAW,EAAC,iBAAO,CAAC,CAAC,CAAC;AAEhC,0BAA0B;AAC1B,GAAG;KACA,OAAO,CAAC,0BAA0B,CAAC;KACnC,WAAW,CAAC,+DAA+D,CAAC;KAC5E,MAAM,CAAC,iBAAiB,EAAE,qCAAqC,CAAC;KAChE,MAAM,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;KACjD,MAAM,CAAC,IAAA,mBAAW,EAAC,yBAAc,CAAC,CAAC,CAAC;AAEvC,uBAAuB;AACvB,GAAG;KACA,OAAO,CAAC,oBAAoB,CAAC;KAC7B,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,YAAY,EAAE,uBAAuB,CAAC;KAC7C,MAAM,CAAC,kBAAkB,EAAE,oCAAoC,EAAE,QAAQ,CAAC;KAC1E,MAAM,CAAC,iBAAiB,EAAE,4BAA4B,EAAE,QAAQ,CAAC;KACjE,MAAM,CAAC,iBAAiB,EAAE,qEAAqE,CAAC;KAChG,MAAM,CAAC,IAAA,mBAAW,EAAC,cAAI,CAAC,CAAC,CAAC;AAE7B,wBAAwB;AACxB,GAAG;KACA,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,0CAA0C,CAAC;KACvD,MAAM,CAAC,SAAS,EAAE,wBAAwB,CAAC;KAC3C,MAAM,CAAC,IAAA,mBAAW,EAAC,gBAAM,CAAC,CAAC,CAAC;AAE/B,kBAAkB;AAClB,GAAG;KACA,OAAO,CAAC,mBAAmB,CAAC;KAC5B,WAAW,CACV,0FAA0F,CAC3F;KACA,MAAM,CAAC,YAAY,EAAE,6CAA6C,CAAC;KACnE,MAAM,CAAC,UAAU,EAAE,4CAA4C,CAAC;KAChE,MAAM,CAAC,qBAAqB,EAAE,uCAAuC,CAAC;KACtE,MAAM,CAAC,IAAA,mBAAW,EAAC,iBAAO,CAAC,CAAC,CAAC;AAEhC,oDAAoD;AAEpD,kBAAe,GAAG,CAAC"}
@@ -0,0 +1,96 @@
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 org_selector_1 = require("../../utils/org-selector");
9
+ const tenant_storage_1 = require("../../utils/tenant-storage");
10
+ const device_fetcher_1 = require("../../utils/device-fetcher");
11
+ /**
12
+ * Apply color formatting to device status with dot indicator
13
+ * @param status Device status string
14
+ * @returns Colored status string with dot indicator
15
+ */
16
+ function formatStatus(status) {
17
+ const normalizedStatus = status.toLowerCase();
18
+ if (normalizedStatus === 'online') {
19
+ return chalk_1.default.green('● ') + chalk_1.default.green(status);
20
+ }
21
+ if (normalizedStatus === 'offline') {
22
+ return chalk_1.default.red('● ') + chalk_1.default.red(status);
23
+ }
24
+ if (normalizedStatus === 'failing' || normalizedStatus === 'error') {
25
+ return chalk_1.default.yellow('● ') + chalk_1.default.yellow(status);
26
+ }
27
+ return chalk_1.default.gray('○ ') + chalk_1.default.gray(status);
28
+ }
29
+ /**
30
+ * Command to list devices from PhyHub for a specified organization
31
+ *
32
+ * @param searchQuery Optional search query passed as positional argument
33
+ * @param options Command options
34
+ * @returns Promise that resolves when listing is complete
35
+ */
36
+ exports.default = async (searchQuery, options = {}) => {
37
+ try {
38
+ // Default values
39
+ const { limit = 20, page = 1, search: searchOption } = options;
40
+ // Use positional argument if provided, otherwise use --search option
41
+ const search = searchQuery || searchOption;
42
+ // First check if we have a saved tenant
43
+ let organization;
44
+ if (await (0, tenant_storage_1.hasTenant)()) {
45
+ organization = await (0, tenant_storage_1.getTenant)();
46
+ console.log(chalk_1.default.dim(`Using saved tenant: ${organization.displayName}`));
47
+ }
48
+ else {
49
+ // Prompt user to select an organization if no saved tenant
50
+ organization = await (0, org_selector_1.selectOrganization)('Select an organization to list devices from:');
51
+ }
52
+ if (!organization) {
53
+ console.log(chalk_1.default.yellow('No organization selected. Exiting.'));
54
+ return;
55
+ }
56
+ console.log(chalk_1.default.dim(`Fetching devices for organization: ${organization.displayName}`));
57
+ // Fetch devices from PhyHub
58
+ const devices = await (0, device_fetcher_1.fetchDevicesFromPhyHub)(organization, limit, page, search);
59
+ if (!devices || devices.length === 0) {
60
+ console.log(chalk_1.default.yellow(`No devices found for organization ${organization.displayName}`));
61
+ return;
62
+ }
63
+ console.log(chalk_1.default.green(`Found ${devices.length} devices:`));
64
+ // Format output based on requested format
65
+ if (options.json) {
66
+ // For JSON output, remove access keys before displaying
67
+ const sanitizedDevices = devices.map((device) => {
68
+ const { accessKey, ...rest } = device;
69
+ return rest;
70
+ });
71
+ console.log(JSON.stringify(sanitizedDevices, null, 2));
72
+ return;
73
+ }
74
+ // Format devices for display
75
+ const formattedDevices = devices.map((device) => ({
76
+ id: device.id || device._id || '',
77
+ displayName: device.displayName || device.deviceName || device.name || 'Unnamed Device',
78
+ serial: device.deviceSerial || device.serial || '',
79
+ status: formatStatus(device.status || 'Unknown'),
80
+ }));
81
+ // Print header row
82
+ console.log(chalk_1.default.bold('\nDEVICE NAME'.padEnd(30)), chalk_1.default.bold('ID'.padEnd(30)), chalk_1.default.bold('SERIAL'.padEnd(20)), chalk_1.default.bold('STATUS'));
83
+ console.log('-'.repeat(90)); // Divider line
84
+ // Print as table
85
+ (0, utils_1.printTable)({
86
+ data: formattedDevices,
87
+ fields: ['displayName', 'id', 'serial', 'status'],
88
+ sort: 'displayName',
89
+ });
90
+ }
91
+ catch (error) {
92
+ console.error(chalk_1.default.red(`Error listing devices: ${error.message}`));
93
+ process.exit(1);
94
+ }
95
+ };
96
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/dev/list.ts"],"names":[],"mappings":"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"}