@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,150 @@
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.selectDevice = selectDevice;
7
+ const inquirer_1 = __importDefault(require("inquirer"));
8
+ const inquirer_autocomplete_prompt_1 = __importDefault(require("inquirer-autocomplete-prompt"));
9
+ const fuzzy_1 = __importDefault(require("fuzzy"));
10
+ const chalk_1 = __importDefault(require("chalk"));
11
+ const admin_api_1 = require("../../services/admin-api");
12
+ const with_spinner_1 = __importDefault(require("../../utils/with-spinner"));
13
+ const org_selector_1 = require("../../utils/org-selector");
14
+ /**
15
+ * Device picker component that allows selecting a device from a tenant's device list
16
+ *
17
+ * @param organizationSlug - The slug/name of the organization to fetch devices for
18
+ * @returns A promise that resolves to the selected device or null if selection failed
19
+ */
20
+ async function selectDevice(organizationSlug) {
21
+ // Register the autocomplete prompt type
22
+ inquirer_1.default.registerPrompt('autocomplete', inquirer_autocomplete_prompt_1.default);
23
+ const deviceList = [
24
+ {
25
+ type: 'autocomplete',
26
+ name: 'deviceLabel',
27
+ message: 'Select a device to associate with your app:',
28
+ source: undefined,
29
+ },
30
+ ];
31
+ // Get the organization details from the slug using the shared utility function
32
+ const organization = await (0, org_selector_1.getOrganizationBySlug)(organizationSlug);
33
+ if (!organization) {
34
+ console.log(chalk_1.default.yellow(`Organization ${organizationSlug} not found`));
35
+ return null;
36
+ }
37
+ const { id: organizationId, phyhubUrl } = organization;
38
+ if (!phyhubUrl) {
39
+ console.log(chalk_1.default.yellow(`No PhyHub URL found for organization ${organizationSlug}`));
40
+ return null;
41
+ }
42
+ // Fetch devices using the built-in method that already handles authentication
43
+ const deviceResponse = await (0, with_spinner_1.default)(async () => {
44
+ try {
45
+ // Use the built-in method that handles authentication properly
46
+ const response = await (0, admin_api_1.adminApi)().organizations.fetchDevicesFromPhyhub(organizationId, phyhubUrl);
47
+ // Check if we have a valid response
48
+ if (response.status === 404) {
49
+ console.log(chalk_1.default.yellow('No devices found for this organization.'));
50
+ return [];
51
+ }
52
+ // Try to extract devices from different possible response structures
53
+ let devices = [];
54
+ if (response.data?.data?.docs) {
55
+ // Format: response.data.data.docs[]
56
+ devices = response.data.data.docs;
57
+ }
58
+ else if (response.data?.docs) {
59
+ // Format: response.data.docs[]
60
+ devices = response.data.docs;
61
+ }
62
+ else if (Array.isArray(response.data)) {
63
+ // Format: response.data[]
64
+ devices = response.data;
65
+ }
66
+ else if (response.data?.data && Array.isArray(response.data.data)) {
67
+ // Format: response.data.data[]
68
+ devices = response.data.data;
69
+ }
70
+ else {
71
+ // No recognizable format
72
+ console.log(chalk_1.default.yellow('Could not find devices in response.'));
73
+ return [];
74
+ }
75
+ return devices;
76
+ }
77
+ catch (error) {
78
+ console.error(chalk_1.default.red(`Error fetching devices: ${error.message}`));
79
+ if (error.response && error.response.status) {
80
+ console.error(chalk_1.default.red(`API Error: ${error.response.status} ${error.response.statusText}`));
81
+ }
82
+ return [];
83
+ }
84
+ }, 'Fetching devices for this organization. Please wait...');
85
+ if (!deviceResponse || deviceResponse.length === 0) {
86
+ console.log(chalk_1.default.yellow(`No devices found for organization ${organizationSlug}`));
87
+ console.log(chalk_1.default.yellow('Please make sure this organization has devices provisioned.'));
88
+ throw new Error('No devices found. Device selection is required for screen applications.');
89
+ }
90
+ // After fetching the devices, update the mapping to focus on the ID field
91
+ const mappedDevices = deviceResponse
92
+ .map((device) => {
93
+ // Always prioritize the id field
94
+ const deviceId = device.id || device._id;
95
+ const accessKey = device.accessKey || deviceId; // Use deviceId as fallback if no accessKey
96
+ if (!deviceId) {
97
+ console.log(chalk_1.default.yellow(`Warning: Device without ID found: ${JSON.stringify(device)}`));
98
+ }
99
+ return {
100
+ name: device.displayName ||
101
+ device.deviceName ||
102
+ device.name ||
103
+ device.deviceSerial ||
104
+ deviceId ||
105
+ 'Unknown device',
106
+ value: deviceId,
107
+ accessKey,
108
+ displayName: device.displayName || device.deviceName || device.name || '',
109
+ deviceSerial: device.deviceSerial || device.serial || '',
110
+ };
111
+ })
112
+ .filter((device) => device.value); // Filter out any devices without an ID
113
+ deviceList[0].source = (answers, input = '') => {
114
+ return new Promise((resolve) => {
115
+ const filtered = fuzzy_1.default.filter(input || '', mappedDevices, {
116
+ extract: (entry) => `${entry.name} (${entry.value})`,
117
+ });
118
+ const deviceLabels = filtered.map((entry) => `${entry.original.name} (${entry.original.value})`);
119
+ const updatedAnswers = answers;
120
+ updatedAnswers.filtered = filtered;
121
+ resolve(deviceLabels);
122
+ });
123
+ };
124
+ // Show the prompt and handle empty results
125
+ if (mappedDevices.length === 0) {
126
+ console.log(chalk_1.default.yellow(`No devices with valid IDs found for organization ${organizationSlug}`));
127
+ throw new Error('No valid devices found. Device selection is required for screen applications.');
128
+ }
129
+ try {
130
+ const result = (await inquirer_1.default.prompt(deviceList));
131
+ const { filtered, deviceLabel } = result;
132
+ const filteredDevice = filtered.find((entry) => entry.string === deviceLabel);
133
+ if (!filteredDevice) {
134
+ throw new Error('Device selection is required for screen applications.');
135
+ }
136
+ const { name, value: id, accessKey, displayName, deviceSerial, } = filteredDevice.original;
137
+ // More detailed device information in the log
138
+ const deviceInfo = displayName || deviceSerial
139
+ ? `${name} (ID: ${id}${deviceSerial ? `, Serial: ${deviceSerial}` : ''})`
140
+ : `${name} (${id})`;
141
+ console.log(chalk_1.default.green(`Selected device: ${deviceInfo}`));
142
+ return { id, name, accessKey, displayName, deviceSerial };
143
+ }
144
+ catch (error) {
145
+ console.error(chalk_1.default.red(`Error during device selection: ${error.message}`));
146
+ throw new Error('Device selection failed. Device is required for screen applications.');
147
+ }
148
+ }
149
+ exports.default = selectDevice;
150
+ //# sourceMappingURL=device-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-picker.js","sourceRoot":"","sources":["../../../src/commands/app/device-picker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,303 @@
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 fs_extra_1 = __importDefault(require("fs-extra"));
7
+ const path_1 = __importDefault(require("path"));
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const inquirer_1 = __importDefault(require("inquirer"));
10
+ const cheerio_1 = __importDefault(require("cheerio"));
11
+ const utils_1 = require("../../utils");
12
+ const types_1 = require("./types");
13
+ const create_1 = require("./create");
14
+ const importApp = async (source, project) => {
15
+ try {
16
+ const sourceDir = path_1.default.dirname(source);
17
+ const sourceFile = path_1.default.basename(source);
18
+ const templatePath = path_1.default.resolve('templates/html');
19
+ const buildPath = path_1.default.resolve('build', project);
20
+ // Ensure the template and build directories exist
21
+ await fs_extra_1.default.ensureDir(templatePath);
22
+ await fs_extra_1.default.ensureDir(buildPath);
23
+ console.log(chalk_1.default.dim(`Importing ${project} from ${source}...`));
24
+ console.log(chalk_1.default.dim(`Source directory: ${sourceDir}`));
25
+ console.log(chalk_1.default.dim(`Source file: ${sourceFile}`));
26
+ console.log(chalk_1.default.dim(`Template directory: ${templatePath}`));
27
+ console.log(chalk_1.default.dim(`Build directory: ${buildPath}`));
28
+ let pname = (0, utils_1.kebabCase)(project || '');
29
+ let displayName = project || pname;
30
+ while (!pname || pname.trim() === '') {
31
+ const { name } = await inquirer_1.default.prompt([
32
+ {
33
+ name: 'name',
34
+ type: 'input',
35
+ message: 'Enter name for your app:',
36
+ },
37
+ ]);
38
+ pname = (0, utils_1.kebabCase)(name);
39
+ displayName = name;
40
+ }
41
+ const resultInitApp = await (0, create_1.initializeProjectApp)(pname, displayName, types_1.ProjectType.Basic);
42
+ const { appDirectory } = resultInitApp;
43
+ console.log(chalk_1.default.green(`✓ Created ${appDirectory}`));
44
+ // Replace the index.html with the source file
45
+ const targetIndexPath = path_1.default.join(appDirectory, 'index.html');
46
+ await fs_extra_1.default.copyFile(path_1.default.join(sourceDir, sourceFile), targetIndexPath);
47
+ // Copy all other assets from the source directory to the build directory
48
+ const files = await fs_extra_1.default.readdir(sourceDir);
49
+ const assetFiles = files.filter((file) => file !== sourceFile);
50
+ for (const file of assetFiles) {
51
+ const sourcePath = path_1.default.join(sourceDir, file);
52
+ const targetPath = path_1.default.join(appDirectory, file);
53
+ await fs_extra_1.default.copy(sourcePath, targetPath);
54
+ }
55
+ generateSchema(appDirectory);
56
+ console.log(chalk_1.default.green(`✓ Import successful: ${appDirectory}`));
57
+ }
58
+ catch (err) {
59
+ console.error(chalk_1.default.red(`❗️Error importing app: ${err.message}`));
60
+ throw err;
61
+ }
62
+ };
63
+ // Function to extract image sources
64
+ const extractImageSources = ($) => {
65
+ const images = [];
66
+ $('img').each((index, element) => {
67
+ images.push({
68
+ type: 'img',
69
+ index,
70
+ src: $(element).attr('src'),
71
+ originalSrc: $(element).attr('src'),
72
+ });
73
+ });
74
+ $('gwd-image').each((index, element) => {
75
+ images.push({
76
+ type: 'gwd-image',
77
+ index,
78
+ src: $(element).attr('source'),
79
+ originalSrc: $(element).attr('source'),
80
+ });
81
+ });
82
+ return images;
83
+ };
84
+ // Function to extract text content
85
+ const extractTextContent = ($) => {
86
+ const texts = [];
87
+ $('p, span, h1, h2, h3, h4, h5, h6').each((index, element) => {
88
+ const textContent = $(element).text();
89
+ if (textContent.trim()) {
90
+ texts.push({
91
+ type: element.tagName,
92
+ index,
93
+ text: textContent,
94
+ originalText: textContent,
95
+ });
96
+ }
97
+ });
98
+ return texts;
99
+ };
100
+ // Function to update an image source with a placeholder
101
+ const updateImageSource = ($, image, newSrc) => {
102
+ if (image.type === 'img') {
103
+ $('img')
104
+ .eq(image.index)
105
+ .attr('src', newSrc);
106
+ }
107
+ else if (image.type === 'gwd-image') {
108
+ $('gwd-image')
109
+ .eq(image.index)
110
+ .attr('source', newSrc);
111
+ }
112
+ };
113
+ // Function to update text content with a placeholder
114
+ const updateTextContent = ($, text, newText) => {
115
+ const element = $(text.type).eq(text.index);
116
+ element.text(newText);
117
+ };
118
+ // Function to generate JSON schema for placeholders
119
+ const generateJsonSchema = (placeholders) => {
120
+ const schema = {
121
+ type: 'object',
122
+ schema: 'http://json-schema.org/draft-07/schema#',
123
+ properties: {},
124
+ };
125
+ placeholders.forEach(({ type, name, description, default: defaultValue }) => {
126
+ if (type === 'img') {
127
+ schema.properties[name] = {
128
+ type: 'object',
129
+ title: description,
130
+ default: {
131
+ media: {
132
+ url: defaultValue,
133
+ },
134
+ },
135
+ properties: {
136
+ media: {
137
+ type: 'object',
138
+ properties: {
139
+ ref: {
140
+ type: 'string',
141
+ const: 'media',
142
+ },
143
+ type: {
144
+ type: 'string',
145
+ },
146
+ id: {
147
+ type: 'string',
148
+ },
149
+ url: {
150
+ type: 'string',
151
+ },
152
+ },
153
+ },
154
+ },
155
+ };
156
+ }
157
+ else {
158
+ schema.properties[name] = {
159
+ type: 'string',
160
+ title: description,
161
+ default: defaultValue || undefined,
162
+ };
163
+ }
164
+ });
165
+ return schema;
166
+ };
167
+ // Main function to handle the interactive menu
168
+ const generateSchema = async (appDirectory) => {
169
+ // Read the HTML file
170
+ const htmlFilePath = `${appDirectory}/index.html`;
171
+ const html = fs_extra_1.default.readFileSync(htmlFilePath, 'utf8');
172
+ // Load the HTML into cheerio
173
+ const $ = cheerio_1.default.load(html);
174
+ $('body').append('<script src="apply-settings.js"></script>');
175
+ const images = extractImageSources($);
176
+ const texts = extractTextContent($);
177
+ const placeholders = [];
178
+ if (images.length === 0 && texts.length === 0) {
179
+ console.log('No images or texts found.');
180
+ return;
181
+ }
182
+ const imageChoices = images.map((image, index) => ({
183
+ name: `Image ${index + 1}: ${image.src}`,
184
+ value: { type: 'image', index },
185
+ }));
186
+ const textChoices = texts.map((text, index) => ({
187
+ name: `Text ${index + 1}: "${text.text}"`,
188
+ value: { type: 'text', index },
189
+ }));
190
+ const choices = [
191
+ ...imageChoices,
192
+ ...textChoices,
193
+ new inquirer_1.default.Separator(),
194
+ { name: 'Finish', value: 'finish' },
195
+ ];
196
+ while (true) {
197
+ const answer = await inquirer_1.default.prompt([
198
+ {
199
+ type: 'list',
200
+ name: 'selectedItem',
201
+ message: 'Select an item to update:',
202
+ choices,
203
+ },
204
+ ]);
205
+ if (answer.selectedItem === 'finish') {
206
+ break;
207
+ }
208
+ const { type, index } = answer.selectedItem;
209
+ if (type === 'image') {
210
+ const currentImage = images[index];
211
+ if (currentImage.src.startsWith('{{') && currentImage.src.endsWith('}}')) {
212
+ // Reset to original value
213
+ updateImageSource($, currentImage, currentImage.originalSrc);
214
+ currentImage.src = currentImage.originalSrc;
215
+ console.log(`Image ${index + 1} reset to original URL.`);
216
+ }
217
+ else {
218
+ const assetDetails = await inquirer_1.default.prompt([
219
+ {
220
+ type: 'input',
221
+ name: 'assetDescription',
222
+ message: `Enter asset description for Image ${index + 1}:`,
223
+ },
224
+ {
225
+ type: 'input',
226
+ name: 'defaultValue',
227
+ message: `Enter default value for Image ${index + 1} (optional):`,
228
+ validate: (input) => {
229
+ if (input && !/^https?:\/\/[^\s]+$/.test(input)) {
230
+ return 'Default value must be a valid URL';
231
+ }
232
+ return true;
233
+ },
234
+ default: '',
235
+ },
236
+ ]);
237
+ const assetName = (0, utils_1.kebabCase)(assetDetails.assetDescription);
238
+ const placeholder = `{{img:${assetName}:${assetDetails.assetDescription}}}`;
239
+ updateImageSource($, currentImage, placeholder);
240
+ currentImage.src = placeholder;
241
+ console.log(`Image ${index + 1} updated.`);
242
+ placeholders.push({
243
+ type: 'img',
244
+ name: assetName,
245
+ description: assetDetails.assetDescription,
246
+ default: assetDetails.defaultValue,
247
+ });
248
+ }
249
+ // Update the choices with the new placeholder or original URL
250
+ if ('name' in choices[index]) {
251
+ choices[index].name = `Image ${index + 1}: ${currentImage.src}`;
252
+ }
253
+ }
254
+ else if (type === 'text') {
255
+ const currentText = texts[index];
256
+ if (currentText.text.startsWith('{{') && currentText.text.endsWith('}}')) {
257
+ // Reset to original value
258
+ updateTextContent($, currentText, currentText.originalText);
259
+ currentText.text = currentText.originalText;
260
+ console.log(`Text ${index + 1} reset to original value.`);
261
+ }
262
+ else {
263
+ const assetDetails = await inquirer_1.default.prompt([
264
+ {
265
+ type: 'input',
266
+ name: 'assetDescription',
267
+ message: `Enter asset description for Text ${index + 1}:`,
268
+ },
269
+ {
270
+ type: 'input',
271
+ name: 'defaultValue',
272
+ message: `Enter default value for Text ${index + 1} (optional):`,
273
+ default: '',
274
+ },
275
+ ]);
276
+ const assetName = (0, utils_1.kebabCase)(assetDetails.assetDescription);
277
+ const placeholder = `{{txt:${assetName}:${assetDetails.assetDescription}}}`;
278
+ updateTextContent($, currentText, placeholder);
279
+ currentText.text = placeholder;
280
+ console.log(`Text ${index + 1} updated.`);
281
+ placeholders.push({
282
+ type: 'txt',
283
+ name: assetName,
284
+ description: assetDetails.assetDescription,
285
+ default: assetDetails.defaultValue,
286
+ });
287
+ }
288
+ // Update the choices with the new placeholder or original text
289
+ if ('name' in choices[images.length + index]) {
290
+ choices[images.length + index].name = `Text ${index +
291
+ 1}: "${currentText.text}"`;
292
+ }
293
+ }
294
+ }
295
+ // Save the updated HTML
296
+ fs_extra_1.default.writeFileSync(htmlFilePath, $.html());
297
+ console.log('HTML file updated.');
298
+ // Generate and save JSON schema
299
+ const jsonSchema = generateJsonSchema(placeholders);
300
+ fs_extra_1.default.writeFileSync(`${appDirectory}/schema.json`, JSON.stringify(jsonSchema, null, 2));
301
+ };
302
+ exports.default = importApp;
303
+ //# sourceMappingURL=import.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import.js","sourceRoot":"","sources":["../../../src/commands/app/import.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
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 utils_1 = require("../../utils");
7
+ const admin_api_1 = require("../../services/admin-api");
8
+ const org_selector_1 = require("../../utils/org-selector");
9
+ const with_spinner_1 = __importDefault(require("../../utils/with-spinner"));
10
+ exports.default = async (search) => {
11
+ const tenant = await (0, org_selector_1.selectOrganization)('Select a tenant to list apps for:');
12
+ const apps = await (0, with_spinner_1.default)(() => (0, admin_api_1.adminApi)().gridapps.listGridappsByOrganizationId(tenant.id), 'Fetching apps...');
13
+ const data = [];
14
+ apps.forEach((app) => data.push({
15
+ displayName: app.displayName,
16
+ name: `${tenant.slug}.${app.packageName}`,
17
+ access: app.access === 'public' ? 'public' : '',
18
+ }));
19
+ (0, utils_1.printTable)({
20
+ data,
21
+ fields: ['access', 'name', 'displayName'],
22
+ sort: 'displayName',
23
+ search,
24
+ });
25
+ };
26
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/app/list.ts"],"names":[],"mappings":";;;;;AAAA,uCAAyC;AACzC,wDAAoD;AACpD,2DAA8D;AAC9D,4EAAmD;AAEnD,kBAAe,KAAK,EAAE,MAAM,EAAE,EAAE;IAC9B,MAAM,MAAM,GAAG,MAAM,IAAA,iCAAkB,EAAC,mCAAmC,CAAC,CAAC;IAE7E,MAAM,IAAI,GAAG,MAAM,IAAA,sBAAW,EAC5B,GAAG,EAAE,CAAC,IAAA,oBAAQ,GAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC,MAAM,CAAC,EAAE,CAAC,EACjE,kBAAkB,CACnB,CAAC;IAEF,MAAM,IAAI,GAAG,EAAE,CAAC;IAChB,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CACnB,IAAI,CAAC,IAAI,CAAC;QACR,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC,WAAW,EAAE;QACzC,MAAM,EAAE,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;KAChD,CAAC,CACH,CAAC;IAEF,IAAA,kBAAU,EAAC;QACT,IAAI;QACJ,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC;QACzC,IAAI,EAAE,aAAa;QACnB,MAAM;KACP,CAAC,CAAC;AACL,CAAC,CAAC"}