@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,398 +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.getGridAppFileInfo = exports.getOutputFileInfo = void 0;
7
- /* eslint-disable @typescript-eslint/no-explicit-any */
8
- const fs_extra_1 = __importDefault(require("fs-extra"));
9
- const path_1 = __importDefault(require("path"));
10
- const chalk_1 = __importDefault(require("chalk"));
11
- const tar_1 = __importDefault(require("tar"));
12
- const ajv_1 = __importDefault(require("ajv"));
13
- const child_process_1 = __importDefault(require("child_process"));
14
- const with_spinner_1 = __importDefault(require("../../utils/with-spinner"));
15
- var TemplateFileEnums;
16
- (function (TemplateFileEnums) {
17
- TemplateFileEnums["SCHEMA"] = "schema.json";
18
- TemplateFileEnums["META_SCHEMA"] = "meta-schema.json";
19
- TemplateFileEnums["PACKAGE"] = "package.json";
20
- TemplateFileEnums["INDEX"] = "index.html";
21
- TemplateFileEnums["CONTAINER_SETTINGS"] = "settings.json";
22
- TemplateFileEnums["ANALYTICS_SCHEMA"] = "analytics-schema.json";
23
- })(TemplateFileEnums || (TemplateFileEnums = {}));
24
- const defaultBuildFolder = 'build';
25
- const defaultSchema = {
26
- type: 'object',
27
- title: 'Application Settings',
28
- properties: {},
29
- };
30
- const DEFAULT_META_SCHEMA = {};
31
- const DEFAULT_ANALYTICS_SCHEMA = [];
32
- const archiveExcludedFiles = [
33
- TemplateFileEnums.SCHEMA,
34
- TemplateFileEnums.PACKAGE,
35
- TemplateFileEnums.META_SCHEMA,
36
- TemplateFileEnums.ANALYTICS_SCHEMA,
37
- defaultBuildFolder,
38
- ];
39
- const validateAndGetSchema = async (templatePath, requireIndex = true) => {
40
- try {
41
- if (requireIndex) {
42
- const indexPath = path_1.default.join(templatePath, TemplateFileEnums.INDEX);
43
- if (!fs_extra_1.default.existsSync(indexPath)) {
44
- throw new Error(`Missing required file: ${TemplateFileEnums.INDEX}`);
45
- }
46
- }
47
- let schema = defaultSchema;
48
- const schemaPath = path_1.default.join(templatePath, TemplateFileEnums.SCHEMA);
49
- if (fs_extra_1.default.existsSync(schemaPath)) {
50
- schema = JSON.parse(await fs_extra_1.default.readFile(schemaPath, 'utf8'));
51
- }
52
- const metaSchemaPath = path_1.default.join(templatePath, TemplateFileEnums.META_SCHEMA);
53
- let metaSchema = DEFAULT_META_SCHEMA;
54
- if (fs_extra_1.default.existsSync(metaSchemaPath)) {
55
- metaSchema = JSON.parse(await fs_extra_1.default.readFile(metaSchemaPath, 'utf8'));
56
- }
57
- // TECH-1013: match console's AJV config (see
58
- // apps/console/src/.../settings-configuration.container.tsx). `strict: false`
59
- // tolerates legacy RJSF v1 keywords (e.g. `enumNames`) and draft-04 idioms
60
- // that show up in third-party App schemas. Long-term fix is RJSF v1 -> v5.
61
- const validator = new ajv_1.default({ allErrors: true, verbose: true, strict: false });
62
- if (!validator.validateSchema(schema)) {
63
- throw new Error(`${TemplateFileEnums.SCHEMA} is not valid JSON schema file!`);
64
- }
65
- const analyticsSchemaPath = path_1.default.join(templatePath, TemplateFileEnums.ANALYTICS_SCHEMA);
66
- let analyticsSchema = DEFAULT_ANALYTICS_SCHEMA;
67
- if (fs_extra_1.default.existsSync(analyticsSchemaPath)) {
68
- analyticsSchema = JSON.parse(await fs_extra_1.default.readFile(analyticsSchemaPath, 'utf8'));
69
- }
70
- return {
71
- schema: JSON.stringify(schema),
72
- metaSchema: JSON.stringify(metaSchema),
73
- analyticsSchema,
74
- };
75
- }
76
- catch (err) {
77
- throw new Error(`Error during template files validation: ${err.message}`);
78
- }
79
- };
80
- const readPackageJson = async (templatePath) => {
81
- const packageJsonPath = path_1.default.join(templatePath, TemplateFileEnums.PACKAGE);
82
- if (fs_extra_1.default.existsSync(packageJsonPath)) {
83
- const packageJson = await fs_extra_1.default.promises.readFile(packageJsonPath, 'utf8');
84
- return JSON.parse(packageJson);
85
- }
86
- return null;
87
- };
88
- const build = async ({ templatePath, schema, metaSchema, analyticsSchema, outputFilePath, appInfo, }) => {
89
- const outputPath = path_1.default.dirname(outputFilePath);
90
- await fs_extra_1.default.emptyDir(outputPath);
91
- const files = fs_extra_1.default.readdirSync(templatePath);
92
- // check for icon presence
93
- let iconPath;
94
- const manifestJsonPath = path_1.default.join(templatePath, 'manifest.json');
95
- if (fs_extra_1.default.existsSync(manifestJsonPath)) {
96
- const manifestJson = await fs_extra_1.default.readFile(manifestJsonPath, 'utf8');
97
- const manifestObject = JSON.parse(manifestJson);
98
- // try and find matching icon
99
- iconPath = manifestObject?.icons?.find((icon) => icon.type === 'image/png' && icon.sizes?.includes('192x192'))?.src;
100
- }
101
- const info = {
102
- ...appInfo,
103
- analyticsSchema,
104
- createdAt: Math.floor(Date.now() / 1000),
105
- iconPath,
106
- };
107
- await fs_extra_1.default.promises.writeFile(path_1.default.join(templatePath, '_info.json'), JSON.stringify(info));
108
- await fs_extra_1.default.promises.writeFile(path_1.default.join(templatePath, '_schema.json'), schema);
109
- await fs_extra_1.default.promises.writeFile(path_1.default.join(templatePath, '_meta-schema.json'), metaSchema);
110
- files.push('_info.json', '_schema.json', '_meta-schema.json');
111
- const outputFileStream = fs_extra_1.default.createWriteStream(outputFilePath);
112
- const filesToAdd = files.filter((file) => !archiveExcludedFiles.includes(file));
113
- if (filesToAdd.length === 0) {
114
- // cannot create tar with no files, so create a stub file - only important for edge apps
115
- await fs_extra_1.default.promises.writeFile(path_1.default.join(templatePath, 'index.html'), '');
116
- filesToAdd.push('index.html');
117
- }
118
- const archiveReadable = await tar_1.default.create({
119
- gzip: true,
120
- cwd: templatePath,
121
- }, filesToAdd);
122
- await new Promise((resolve) => archiveReadable.pipe(outputFileStream).on('finish', resolve));
123
- };
124
- const getOutputFileInfo = async ({ buildPath, tag, arch, }) => {
125
- // Fallback values
126
- let version = '1.0.0';
127
- let name = path_1.default.basename(process.cwd());
128
- let license = 'UNLICENSED';
129
- let tagName;
130
- let tagVersion;
131
- if (tag) {
132
- const fileAndVersionArr = tag.split(':');
133
- if (fileAndVersionArr.length < 2) {
134
- throw new Error('Invalid tag option, --tag <filename:version>');
135
- }
136
- [tagName, tagVersion] = fileAndVersionArr;
137
- }
138
- let applicationType = 'screen';
139
- let iotOptions = {};
140
- // if app name and version are known, use them
141
- const packageObject = await readPackageJson(process.cwd());
142
- if (packageObject) {
143
- name = tagName || packageObject.name || name;
144
- license = packageObject.license || license;
145
- version = tagVersion || packageObject.version || version;
146
- if (packageObject['application-type'] === 'iot' ||
147
- packageObject['application-type'] === 'module' ||
148
- packageObject['application-type'] === 'edge') {
149
- applicationType = 'module';
150
- if (!fs_extra_1.default.existsSync(TemplateFileEnums.CONTAINER_SETTINGS))
151
- throw new Error(`${TemplateFileEnums.CONTAINER_SETTINGS} is required for Edge apps`);
152
- console.log('Container Settings:', TemplateFileEnums.CONTAINER_SETTINGS);
153
- const continerOpttions = JSON.parse(fs_extra_1.default.readFileSync(TemplateFileEnums.CONTAINER_SETTINGS).toString());
154
- const registry = packageObject['docker-credentials']?.registry ||
155
- packageObject['container-registry'];
156
- if (!registry)
157
- throw new Error('package.json should contain "container-registry" entry or "docker-credentials.registry" entry');
158
- console.log(chalk_1.default.dim('Reading container registry credentials from package.json'));
159
- const dockerCredentials = packageObject['docker-credentials'];
160
- // Architecture selection priority: --arch flag > package.json > default to both
161
- let archs;
162
- if (arch) {
163
- // Explicit --arch flag (highest priority)
164
- archs = [arch];
165
- console.log(chalk_1.default.dim(`Using architecture from --arch flag: ${chalk_1.default.blue(arch)}`));
166
- }
167
- else if (dockerCredentials?.architectures &&
168
- dockerCredentials.architectures.length > 0) {
169
- // Use architectures from package.json
170
- archs = dockerCredentials.architectures;
171
- console.log(chalk_1.default.dim(`Using architectures from package.json: ${chalk_1.default.blue(archs.join(', '))}`));
172
- }
173
- else {
174
- // Default to both
175
- archs = ['arm64', 'amd64'];
176
- console.log(chalk_1.default.dim(`Using default architectures: ${chalk_1.default.blue('arm64, amd64')}`));
177
- }
178
- if (!dockerCredentials?.pull?.username || !dockerCredentials?.pull?.password) {
179
- throw new Error('Docker credentials not found in package.json. Please run create command again.');
180
- }
181
- // Check if a custom image name is specified in docker-credentials
182
- let image;
183
- if (dockerCredentials.image) {
184
- image = dockerCredentials.image;
185
- console.log(chalk_1.default.dim(`Using custom image name from docker-credentials: ${chalk_1.default.blue(image)}`));
186
- // Ensure the custom image has a version tag
187
- if (!image.includes(':')) {
188
- image = `${image}:${version}`;
189
- console.log(chalk_1.default.dim(`Adding version tag to custom image: ${chalk_1.default.blue(image)}`));
190
- }
191
- }
192
- else {
193
- image = `${registry}/${name}:${version}`;
194
- }
195
- let credentials = null;
196
- const pullUsername = dockerCredentials.pull.username;
197
- const pullPassword = dockerCredentials.pull.password;
198
- const pushUsername = dockerCredentials.push?.username;
199
- const pushPassword = dockerCredentials.push?.password;
200
- credentials = { username: pullUsername, password: pullPassword };
201
- if (pushUsername && pushPassword) {
202
- try {
203
- child_process_1.default.execSync(`docker login ${registry} -u ${pushUsername} -p ${pushPassword}`, {
204
- stdio: 'inherit',
205
- });
206
- }
207
- catch (error) {
208
- console.log(chalk_1.default.yellow('Warning: Failed to store push credentials locally'));
209
- }
210
- }
211
- console.log(chalk_1.default.dim(`Image found ${chalk_1.default.blue(image)}`));
212
- // Update createOptions with pull credentials for the container
213
- const updatedCreateOptions = {
214
- ...continerOpttions,
215
- RegistryCredentials: {
216
- [registry]: {
217
- username: pullUsername,
218
- password: pullPassword,
219
- },
220
- },
221
- };
222
- iotOptions = {
223
- image,
224
- createOptions: JSON.stringify(updatedCreateOptions),
225
- platforms: archs,
226
- credentials,
227
- };
228
- }
229
- }
230
- const outputFileName = `${name}-${version}.gridapp`;
231
- return {
232
- outputFilePath: path_1.default.join(buildPath, outputFileName),
233
- appInfo: {
234
- name,
235
- license,
236
- version,
237
- ...iotOptions,
238
- applicationType,
239
- // TODO: credentials, platforms, createOptions
240
- },
241
- };
242
- };
243
- exports.getOutputFileInfo = getOutputFileInfo;
244
- // Alt version of getOutputFileInfo
245
- const getGridAppFileInfo = async (appRootDir, tag) => {
246
- const currentDir = appRootDir || process.cwd();
247
- // Fallback values
248
- let version = '1.0.0';
249
- let name = path_1.default.basename(currentDir);
250
- let license = 'UNLICENSED';
251
- if (tag) {
252
- const fileAndVersionArr = tag.split(':');
253
- if (fileAndVersionArr.length < 2) {
254
- throw new Error('Invalid tag option, --tag <filename:version>');
255
- }
256
- [name, version] = fileAndVersionArr;
257
- }
258
- let applicationType = 'screen';
259
- let iotOptions = {};
260
- // if app name and version are known, use them
261
- const packageObject = await readPackageJson(appRootDir || process.cwd());
262
- if (packageObject) {
263
- name = packageObject.name || name;
264
- license = packageObject.license || license;
265
- version = packageObject.version || version;
266
- if (packageObject['application-type'] === 'iot' ||
267
- packageObject['application-type'] === 'module' ||
268
- packageObject['application-type'] === 'edge') {
269
- applicationType = 'module';
270
- const settingsFilePath = `${currentDir}/${TemplateFileEnums.CONTAINER_SETTINGS}`;
271
- if (!fs_extra_1.default.existsSync(settingsFilePath))
272
- throw new Error(`${TemplateFileEnums.CONTAINER_SETTINGS} is required for Edge apps`);
273
- const createOptions = JSON.parse(fs_extra_1.default.readFileSync(settingsFilePath).toString());
274
- const registry = packageObject['docker-credentials']?.registry ||
275
- packageObject['container-registry'];
276
- if (!registry)
277
- throw new Error('package.json should contain "container-registry" entry or "docker-credentials.registry" entry');
278
- // Get architectures from package.json or default to both
279
- console.log(chalk_1.default.dim('Reading container registry credentials from package.json'));
280
- const dockerCredentials = packageObject['docker-credentials'];
281
- const archs = dockerCredentials?.architectures && dockerCredentials.architectures.length > 0
282
- ? dockerCredentials.architectures
283
- : ['arm64', 'amd64'];
284
- console.log(chalk_1.default.dim(`Using architectures: ${chalk_1.default.blue(archs.join(', '))}`));
285
- if (!dockerCredentials?.pull?.username || !dockerCredentials?.pull?.password) {
286
- throw new Error('Docker credentials not found in package.json. Please run create command again.');
287
- }
288
- // Check if a custom image name is specified in docker-credentials
289
- let image;
290
- if (dockerCredentials.image) {
291
- image = dockerCredentials.image;
292
- console.log(chalk_1.default.dim(`Using custom image name from docker-credentials: ${chalk_1.default.blue(image)}`));
293
- // Ensure the custom image has a version tag
294
- if (!image.includes(':')) {
295
- image = `${image}:${version}`;
296
- console.log(chalk_1.default.dim(`Adding version tag to custom image: ${chalk_1.default.blue(image)}`));
297
- }
298
- }
299
- else {
300
- image = `${registry}/${name}:${version}`;
301
- }
302
- let credentials = null;
303
- const pullUsername = dockerCredentials.pull.username;
304
- const pullPassword = dockerCredentials.pull.password;
305
- const pushUsername = dockerCredentials.push?.username;
306
- const pushPassword = dockerCredentials.push?.password;
307
- credentials = { username: pullUsername, password: pullPassword };
308
- if (pushUsername && pushPassword) {
309
- try {
310
- child_process_1.default.execSync(`docker login ${registry} -u ${pushUsername} -p ${pushPassword}`, {
311
- stdio: 'inherit',
312
- });
313
- }
314
- catch (error) {
315
- console.log(chalk_1.default.yellow('Warning: Failed to store push credentials locally'));
316
- }
317
- }
318
- console.log(chalk_1.default.dim(`Image found ${chalk_1.default.blue(image)}`));
319
- // Update createOptions with pull credentials for the container
320
- const updatedCreateOptions = {
321
- ...createOptions,
322
- RegistryCredentials: {
323
- [registry]: {
324
- username: pullUsername,
325
- password: pullPassword,
326
- },
327
- },
328
- };
329
- iotOptions = {
330
- image,
331
- createOptions: JSON.stringify(updatedCreateOptions),
332
- platforms: archs,
333
- credentials,
334
- };
335
- }
336
- }
337
- const buildPath = `${currentDir}/build/build`;
338
- const outputFileName = `${name}-${version}.gridapp`;
339
- return {
340
- outputFilePath: path_1.default.join(buildPath, outputFileName),
341
- appInfo: {
342
- name,
343
- license,
344
- version,
345
- ...iotOptions,
346
- applicationType,
347
- // TODO: credentials, platforms, createOptions
348
- },
349
- };
350
- };
351
- exports.getGridAppFileInfo = getGridAppFileInfo;
352
- exports.default = async (moduleName, options = {}) => {
353
- try {
354
- // Extract options with defaults to avoid undefined destructuring errors
355
- const { arch } = options;
356
- const tagArg = options.tag;
357
- let templatePathArg = options.templatePath;
358
- const buildPathArg = options.buildPath;
359
- let tag = null;
360
- // TRICKY: if this is an iot app build via yarn deploy
361
- if (templatePathArg && templatePathArg.indexOf('@') >= 0) {
362
- tag = templatePathArg.replace('@', ':');
363
- templatePathArg = null; // Reset templatePathArg to null after extracting the tag
364
- }
365
- const templatePath = templatePathArg
366
- ? path_1.default.resolve(templatePathArg)
367
- : path_1.default.resolve('build');
368
- const buildPath = buildPathArg
369
- ? path_1.default.resolve(buildPathArg)
370
- : path_1.default.resolve('build/build');
371
- console.log(chalk_1.default.dim(`Reading package information`));
372
- const outputFileInfo = await (0, exports.getOutputFileInfo)({ tag, moduleName, buildPath, arch });
373
- const isIotApp = outputFileInfo.appInfo.applicationType === 'module';
374
- if (isIotApp) {
375
- // For IoT/Edge apps, just verify that Docker configuration is present
376
- // The actual Docker build will happen during publish
377
- const { image } = outputFileInfo.appInfo;
378
- console.log(chalk_1.default.dim('Edge application detected'));
379
- console.log(chalk_1.default.dim(`Docker image will be built during publish: ${chalk_1.default.blue(image)}`));
380
- console.log(chalk_1.default.yellow('⚠️ Note: Run "yarn pub" to build and push the Edge app Docker image'));
381
- }
382
- console.log(chalk_1.default.dim('Using metadata'));
383
- Object.entries(outputFileInfo.appInfo).map(([key, value]) => console.log(chalk_1.default.dim(` ${key}: ${chalk_1.default.blue(value)}`)));
384
- console.log(chalk_1.default.dim(`Validating template files in ${templatePath}...`));
385
- const requireIndex = !isIotApp;
386
- const schemaInfo = await (0, with_spinner_1.default)(() => validateAndGetSchema(templatePath, requireIndex), `Validating...`);
387
- console.log(chalk_1.default.green(`✓ Template files are valid`));
388
- console.log(chalk_1.default.dim(`Creating gridapp file...`));
389
- await (0, with_spinner_1.default)(() => build({ templatePath, ...schemaInfo, ...outputFileInfo }), `Building...`);
390
- console.log(chalk_1.default.green(`✓ Build successful: ${outputFileInfo.outputFilePath}`));
391
- }
392
- catch (err) {
393
- // TODO: setup logging (Sentry, file, console output)
394
- console.error(chalk_1.default.red(`❗️There was an error: ${err.message}`));
395
- throw err;
396
- }
397
- };
398
- //# sourceMappingURL=build.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/commands/app/build.ts"],"names":[],"mappings":"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"}