@interopio/iocd-cli 0.0.47 → 0.0.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -15
- package/dist/commands/apps.command.js +20 -21
- package/dist/commands/apps.command.js.map +1 -1
- package/dist/commands/build.command.js +5 -5
- package/dist/commands/build.command.js.map +1 -1
- package/dist/commands/components.command.js +19 -20
- package/dist/commands/components.command.js.map +1 -1
- package/dist/commands/create.command.js +18 -14
- package/dist/commands/create.command.js.map +1 -1
- package/dist/commands/dev.command.js +2 -2
- package/dist/commands/license.command.js +11 -10
- package/dist/commands/license.command.js.map +1 -1
- package/dist/commands/modifications.command.js +3 -4
- package/dist/commands/modifications.command.js.map +1 -1
- package/dist/commands/setup.command.js +4 -4
- package/dist/commands/setup.command.js.map +1 -1
- package/dist/commands/test.command.js +2 -2
- package/dist/commands/test.command.js.map +1 -1
- package/dist/schemas/iocd.cli.config.schema.json +6 -7
- package/dist/services/app.service.js +29 -29
- package/dist/services/app.service.js.map +1 -1
- package/dist/services/components/components.registry.js +6 -6
- package/dist/services/components/components.registry.js.map +1 -1
- package/dist/services/components/platform.utils.js +9 -10
- package/dist/services/components/platform.utils.js.map +1 -1
- package/dist/services/components/stores/s3.store.js +1 -1
- package/dist/services/components/stores/s3.store.js.map +1 -1
- package/dist/services/config/config.service.js +28 -12
- package/dist/services/config/config.service.js.map +1 -1
- package/dist/services/create.service.js +146 -67
- package/dist/services/create.service.js.map +1 -1
- package/dist/services/dev.service.js +11 -11
- package/dist/services/dev.service.js.map +1 -1
- package/dist/services/installer/prerequisites.js +3 -3
- package/dist/services/installer/prerequisites.js.map +1 -1
- package/dist/services/installer/windows.helper.js +17 -14
- package/dist/services/installer/windows.helper.js.map +1 -1
- package/dist/services/license-file.service.js +1 -1
- package/dist/services/license-file.service.js.map +1 -1
- package/dist/services/license.service.js +18 -17
- package/dist/services/license.service.js.map +1 -1
- package/dist/services/modifications/modifications.service.js +49 -18
- package/dist/services/modifications/modifications.service.js.map +1 -1
- package/dist/services/template.service.js +72 -59
- package/dist/services/template.service.js.map +1 -1
- package/dist/services/test.service.js +4 -4
- package/dist/services/test.service.js.map +1 -1
- package/dist/templates/ioconnect-desktop/README.md +28 -15
- package/dist/templates/ioconnect-desktop/config/iocd.cli.config.json +0 -3
- package/dist/templates/ioconnect-desktop/modifications/base/iocd/config/system.json.merge +2 -1
- package/dist/templates/ioconnect-desktop/package.json +2 -2
- package/dist/templates/tests/tests/package-lock.json +5 -11
- package/dist/templates/tests/tests/package.json +2 -6
- package/dist/templates/tests/tests/tests/sample.spec.ts +65 -22
- package/dist/templates/tests/tests/tsconfig.json +10 -10
- package/dist/templates/tests/tests/wdio.config.ts +29 -26
- package/dist/utils/colors.js +31 -31
- package/dist/utils/colors.js.map +1 -1
- package/dist/utils/deep.merge.js +3 -3
- package/dist/utils/deep.merge.js.map +1 -1
- package/dist/utils/electron.builder.config.helper.js +2 -2
- package/dist/utils/ensure.iocd.exists.js +5 -7
- package/dist/utils/ensure.iocd.exists.js.map +1 -1
- package/dist/utils/error.handler.js +23 -20
- package/dist/utils/error.handler.js.map +1 -1
- package/dist/utils/file.js +1 -1
- package/dist/utils/file.js.map +1 -1
- package/dist/utils/logger.js +17 -15
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/pacakge.json.helper.js +48 -2
- package/dist/utils/pacakge.json.helper.js.map +1 -1
- package/dist/utils/path.js +23 -23
- package/dist/utils/path.js.map +1 -1
- package/dist/utils/sentry.js +15 -5
- package/dist/utils/sentry.js.map +1 -1
- package/dist/utils/version.js +2 -2
- package/package.json +5 -5
- package/dist/templates/launchpad/apps/launchpad/.eslintrc.json +0 -3
|
@@ -44,7 +44,7 @@ class TemplateService {
|
|
|
44
44
|
logger = logger_1.Logger.getInstance("template.service");
|
|
45
45
|
templatesPath;
|
|
46
46
|
constructor() {
|
|
47
|
-
this.templatesPath = (0, node_path_1.join)(__dirname,
|
|
47
|
+
this.templatesPath = (0, node_path_1.join)(__dirname, "../templates");
|
|
48
48
|
}
|
|
49
49
|
/**
|
|
50
50
|
* Get the path to embedded templates
|
|
@@ -58,7 +58,7 @@ class TemplateService {
|
|
|
58
58
|
getAvailableTemplates() {
|
|
59
59
|
try {
|
|
60
60
|
if (!(0, node_fs_1.existsSync)(this.templatesPath)) {
|
|
61
|
-
this.logger.warn(
|
|
61
|
+
this.logger.warn("Templates directory does not exist:", this.templatesPath);
|
|
62
62
|
return [];
|
|
63
63
|
}
|
|
64
64
|
return (0, node_fs_1.readdirSync)(this.templatesPath, { withFileTypes: true })
|
|
@@ -66,14 +66,14 @@ class TemplateService {
|
|
|
66
66
|
.map(dirent => dirent.name);
|
|
67
67
|
}
|
|
68
68
|
catch (error) {
|
|
69
|
-
this.logger.error(
|
|
70
|
-
throw new error_handler_1.CLIError(
|
|
69
|
+
this.logger.error("Failed to list templates:", error);
|
|
70
|
+
throw new error_handler_1.CLIError("Failed to list available templates", {
|
|
71
71
|
code: error_handler_1.ErrorCode.FILE_SYSTEM_ERROR,
|
|
72
72
|
cause: error,
|
|
73
73
|
suggestions: [
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
]
|
|
74
|
+
"Check if the CLI installation is complete",
|
|
75
|
+
"Try reinstalling the CLI tool",
|
|
76
|
+
],
|
|
77
77
|
});
|
|
78
78
|
}
|
|
79
79
|
}
|
|
@@ -95,31 +95,32 @@ class TemplateService {
|
|
|
95
95
|
throw new error_handler_1.CLIError(`Template '${templateName}' not found`, {
|
|
96
96
|
code: error_handler_1.ErrorCode.NOT_FOUND,
|
|
97
97
|
suggestions: [
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
]
|
|
98
|
+
"Check available templates with: iocd templates list",
|
|
99
|
+
"Verify the template name is spelled correctly",
|
|
100
|
+
],
|
|
101
101
|
});
|
|
102
102
|
}
|
|
103
103
|
// Ensure only base templates can be used for project generation
|
|
104
104
|
const templateInfo = this.getTemplateInfo(templateName);
|
|
105
|
-
if (templateInfo.type !==
|
|
105
|
+
if (templateInfo.type !== "base") {
|
|
106
106
|
throw new error_handler_1.CLIError(`Template '${templateName}' is not a base template`, {
|
|
107
107
|
code: error_handler_1.ErrorCode.VALIDATION_ERROR,
|
|
108
108
|
suggestions: [
|
|
109
109
|
'Use a base template like "ioconnect-desktop"',
|
|
110
|
-
|
|
111
|
-
]
|
|
110
|
+
"Feature templates are applied automatically through the features option",
|
|
111
|
+
],
|
|
112
112
|
});
|
|
113
113
|
}
|
|
114
114
|
// Check if target directory already exists (but only if it's not the current directory)
|
|
115
|
-
if ((0, node_fs_1.existsSync)(options.targetDirectory) &&
|
|
115
|
+
if ((0, node_fs_1.existsSync)(options.targetDirectory) &&
|
|
116
|
+
options.targetDirectory !== process.cwd()) {
|
|
116
117
|
throw new error_handler_1.CLIError(`Directory '${options.targetDirectory}' already exists`, {
|
|
117
118
|
code: error_handler_1.ErrorCode.FILE_SYSTEM_ERROR,
|
|
118
119
|
suggestions: [
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
]
|
|
120
|
+
"Choose a different project name",
|
|
121
|
+
"Remove the existing directory",
|
|
122
|
+
"Use a different target location",
|
|
123
|
+
],
|
|
123
124
|
});
|
|
124
125
|
}
|
|
125
126
|
const templatePath = (0, node_path_1.join)(this.templatesPath, templateName);
|
|
@@ -131,24 +132,25 @@ class TemplateService {
|
|
|
131
132
|
const variables = this.prepareTemplateVariables(options);
|
|
132
133
|
// Copy base template files with variable replacement
|
|
133
134
|
await this.copyTemplateFiles(templatePath, options.targetDirectory, variables);
|
|
134
|
-
// add components configuration to package.json
|
|
135
|
+
// add components configuration to package.json
|
|
135
136
|
await this.updateComponentsConfig(options.targetDirectory, options.initialComponents, options.componentSource);
|
|
136
137
|
// Process template application files if selected
|
|
137
|
-
if (options.templateApplications &&
|
|
138
|
+
if (options.templateApplications &&
|
|
139
|
+
options.templateApplications.length > 0) {
|
|
138
140
|
await this.processApplicationsTemplates(options.targetDirectory, variables, options.templateApplications);
|
|
139
141
|
}
|
|
140
142
|
this.logger.info(`Project generated successfully at: ${options.targetDirectory}`);
|
|
141
143
|
}
|
|
142
144
|
catch (error) {
|
|
143
|
-
this.logger.error(
|
|
144
|
-
throw new error_handler_1.CLIError(
|
|
145
|
+
this.logger.error("Failed to generate project:", error);
|
|
146
|
+
throw new error_handler_1.CLIError("Failed to generate project from template", {
|
|
145
147
|
code: error_handler_1.ErrorCode.FILE_SYSTEM_ERROR,
|
|
146
148
|
cause: error,
|
|
147
149
|
suggestions: [
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
]
|
|
150
|
+
"Check write permissions for the target directory",
|
|
151
|
+
"Ensure sufficient disk space is available",
|
|
152
|
+
"Try running with --verbose for more details",
|
|
153
|
+
],
|
|
152
154
|
});
|
|
153
155
|
}
|
|
154
156
|
}
|
|
@@ -160,30 +162,31 @@ class TemplateService {
|
|
|
160
162
|
const variables = this.prepareTemplateVariables({
|
|
161
163
|
productSlug: config.productSlug,
|
|
162
164
|
productName: config.productName,
|
|
165
|
+
productDescription: config.productDescription,
|
|
163
166
|
company: config.company,
|
|
164
167
|
copyright: config.copyright,
|
|
165
168
|
version: config.version,
|
|
166
169
|
targetDirectory: path_1.PathUtils.getRootDir(),
|
|
167
170
|
templateApplications: [appName],
|
|
168
|
-
initialComponents: []
|
|
171
|
+
initialComponents: [],
|
|
169
172
|
});
|
|
170
|
-
await this.processApplicationsTemplates(
|
|
173
|
+
await this.processApplicationsTemplates("./", variables, [appName]);
|
|
171
174
|
this.logger.info(`Template application ${appName} added successfully`);
|
|
172
175
|
}
|
|
173
176
|
/** Adds initialComponents to the iocd.cli.config.json -> components.list object in the target directory */
|
|
174
177
|
updateComponentsConfig(targetDirectory, initialComponents, componentSource) {
|
|
175
178
|
// Try root directory first
|
|
176
|
-
let configPath = (0, node_path_1.join)(targetDirectory,
|
|
179
|
+
let configPath = (0, node_path_1.join)(targetDirectory, "iocd.cli.config.json");
|
|
177
180
|
if (!(0, node_fs_1.existsSync)(configPath)) {
|
|
178
181
|
// Try config directory
|
|
179
|
-
configPath = (0, node_path_1.join)(targetDirectory,
|
|
182
|
+
configPath = (0, node_path_1.join)(targetDirectory, "config", "iocd.cli.config.json");
|
|
180
183
|
}
|
|
181
184
|
this.logger.debug(`Updating components configuration in ${configPath} to include:`, initialComponents);
|
|
182
185
|
if (!(0, node_fs_1.existsSync)(configPath)) {
|
|
183
186
|
this.logger.warn(`iocd.cli.config.json not found in target directory or config folder, skipping components configuration`);
|
|
184
187
|
return;
|
|
185
188
|
}
|
|
186
|
-
const configContent = (0, node_fs_1.readFileSync)(configPath,
|
|
189
|
+
const configContent = (0, node_fs_1.readFileSync)(configPath, "utf-8");
|
|
187
190
|
const config = JSON.parse(configContent);
|
|
188
191
|
// Ensure the components structure exists
|
|
189
192
|
if (!config.components) {
|
|
@@ -196,8 +199,8 @@ class TemplateService {
|
|
|
196
199
|
if (componentSource) {
|
|
197
200
|
config.components.store = {
|
|
198
201
|
local: {
|
|
199
|
-
path: componentSource
|
|
200
|
-
}
|
|
202
|
+
path: componentSource,
|
|
203
|
+
},
|
|
201
204
|
};
|
|
202
205
|
this.logger.debug(`Configured local components store: ${componentSource}`);
|
|
203
206
|
}
|
|
@@ -206,7 +209,7 @@ class TemplateService {
|
|
|
206
209
|
config.components.list[component] = "latest";
|
|
207
210
|
}
|
|
208
211
|
// write back the updated config
|
|
209
|
-
(0, node_fs_1.writeFileSync)(configPath, JSON.stringify(config, null, 4),
|
|
212
|
+
(0, node_fs_1.writeFileSync)(configPath, JSON.stringify(config, null, 4), "utf-8");
|
|
210
213
|
this.logger.debug(`Updated components configuration in iocd.cli.config.json`);
|
|
211
214
|
}
|
|
212
215
|
/**
|
|
@@ -215,25 +218,35 @@ class TemplateService {
|
|
|
215
218
|
prepareTemplateVariables(options) {
|
|
216
219
|
return [
|
|
217
220
|
{
|
|
218
|
-
key:
|
|
221
|
+
key: "{{PRODUCT_NAME}}",
|
|
219
222
|
value: options.productName,
|
|
220
|
-
description:
|
|
223
|
+
description: "The product name for the application",
|
|
221
224
|
},
|
|
222
225
|
{
|
|
223
|
-
key:
|
|
226
|
+
key: "{{PRODUCT_SLUG}}",
|
|
224
227
|
value: this.generatePackageName(options.productSlug),
|
|
225
|
-
description:
|
|
228
|
+
description: "NPM-compatible package name",
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
key: "{{PRODUCT_DESCRIPTION}}",
|
|
232
|
+
value: options.productDescription,
|
|
233
|
+
description: "Product description for metadata",
|
|
226
234
|
},
|
|
227
235
|
{
|
|
228
|
-
key:
|
|
236
|
+
key: "{{COMPANY}}",
|
|
237
|
+
value: options.company,
|
|
238
|
+
description: "Company/author name",
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
key: "{{FEATURES}}",
|
|
229
242
|
value: JSON.stringify(options.templateApplications || []),
|
|
230
|
-
description:
|
|
243
|
+
description: "Selected features array",
|
|
231
244
|
},
|
|
232
245
|
{
|
|
233
|
-
key:
|
|
246
|
+
key: "{{YEAR}}",
|
|
234
247
|
value: new Date().getFullYear().toString(),
|
|
235
|
-
description:
|
|
236
|
-
}
|
|
248
|
+
description: "Current year",
|
|
249
|
+
},
|
|
237
250
|
];
|
|
238
251
|
}
|
|
239
252
|
/**
|
|
@@ -242,9 +255,9 @@ class TemplateService {
|
|
|
242
255
|
generatePackageName(productName) {
|
|
243
256
|
return productName
|
|
244
257
|
.toLowerCase()
|
|
245
|
-
.replace(/[^a-z0-9-]/g,
|
|
246
|
-
.replace(/-+/g,
|
|
247
|
-
.replace(/^-|-$/g,
|
|
258
|
+
.replace(/[^a-z0-9-]/g, "-")
|
|
259
|
+
.replace(/-+/g, "-")
|
|
260
|
+
.replace(/^-|-$/g, "");
|
|
248
261
|
}
|
|
249
262
|
/**
|
|
250
263
|
* Recursively copy template files with variable replacement
|
|
@@ -255,7 +268,7 @@ class TemplateService {
|
|
|
255
268
|
const sourceItemPath = (0, node_path_1.join)(sourcePath, item.name);
|
|
256
269
|
const targetItemPath = (0, node_path_1.join)(targetPath, item.name);
|
|
257
270
|
// Skip template.json files - they are metadata for the template system
|
|
258
|
-
if (item.isFile() && item.name ===
|
|
271
|
+
if (item.isFile() && item.name === "template.json") {
|
|
259
272
|
continue;
|
|
260
273
|
}
|
|
261
274
|
if (item.isDirectory()) {
|
|
@@ -266,9 +279,9 @@ class TemplateService {
|
|
|
266
279
|
else if (item.isFile()) {
|
|
267
280
|
// the logic here is to check the extension and only replace known text-based extensions
|
|
268
281
|
// the rest should be copied as-is (e.g. images, binaries), otherwise they may get corrupted
|
|
269
|
-
// the check is a bit complicated because of the .json.merge and .json.merge-<<suffix>> files
|
|
282
|
+
// the check is a bit complicated because of the .json.merge and .json.merge-<<suffix>> files
|
|
270
283
|
const ext = (0, node_path_1.extname)(sourceItemPath);
|
|
271
|
-
const allowedExtensions = [
|
|
284
|
+
const allowedExtensions = [".env", ".json", ".merge"];
|
|
272
285
|
const isAllowedExtension = allowedExtensions.some(e => ext.startsWith(e) || ext === e);
|
|
273
286
|
if (ext && isAllowedExtension) {
|
|
274
287
|
await this.copyFileWithReplacement(sourceItemPath, targetItemPath, variables);
|
|
@@ -283,14 +296,14 @@ class TemplateService {
|
|
|
283
296
|
* Copy a single file with variable replacement
|
|
284
297
|
*/
|
|
285
298
|
async copyFileWithReplacement(sourcePath, targetPath, variables) {
|
|
286
|
-
const sourceContent = (0, node_fs_1.readFileSync)(sourcePath,
|
|
299
|
+
const sourceContent = (0, node_fs_1.readFileSync)(sourcePath, "utf-8");
|
|
287
300
|
// Replace template variables
|
|
288
301
|
let targetContent = sourceContent;
|
|
289
302
|
for (const variable of variables) {
|
|
290
|
-
const regex = new RegExp(this.escapeRegExp(variable.key),
|
|
303
|
+
const regex = new RegExp(this.escapeRegExp(variable.key), "g");
|
|
291
304
|
targetContent = targetContent.replace(regex, variable.value);
|
|
292
305
|
}
|
|
293
|
-
(0, node_fs_1.writeFileSync)(targetPath, targetContent,
|
|
306
|
+
(0, node_fs_1.writeFileSync)(targetPath, targetContent, "utf-8");
|
|
294
307
|
this.logger.debug(`Copied and processed: ${(0, node_path_1.relative)(process.cwd(), targetPath)}`);
|
|
295
308
|
}
|
|
296
309
|
copyFileNoReplacement(source, destination) {
|
|
@@ -308,7 +321,7 @@ class TemplateService {
|
|
|
308
321
|
}
|
|
309
322
|
// Verify it's a application template
|
|
310
323
|
const templateInfo = this.getTemplateInfo(application);
|
|
311
|
-
if (templateInfo.type !==
|
|
324
|
+
if (templateInfo.type !== "application") {
|
|
312
325
|
this.logger.warn(`Template '${application}' is not a application template, skipping`);
|
|
313
326
|
continue;
|
|
314
327
|
}
|
|
@@ -320,17 +333,17 @@ class TemplateService {
|
|
|
320
333
|
* Escape special regex characters
|
|
321
334
|
*/
|
|
322
335
|
escapeRegExp(string) {
|
|
323
|
-
return string.replace(/[.*+?^${}()|[\]\\]/g,
|
|
336
|
+
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
324
337
|
}
|
|
325
338
|
/**
|
|
326
339
|
* Get template information
|
|
327
340
|
*/
|
|
328
341
|
getTemplateInfo(templateName) {
|
|
329
342
|
const templatePath = (0, node_path_1.join)(this.templatesPath, templateName);
|
|
330
|
-
const templateInfoPath = (0, node_path_1.join)(templatePath,
|
|
343
|
+
const templateInfoPath = (0, node_path_1.join)(templatePath, "template.json");
|
|
331
344
|
if ((0, node_fs_1.existsSync)(templateInfoPath)) {
|
|
332
345
|
try {
|
|
333
|
-
return JSON.parse((0, node_fs_1.readFileSync)(templateInfoPath,
|
|
346
|
+
return JSON.parse((0, node_fs_1.readFileSync)(templateInfoPath, "utf-8"));
|
|
334
347
|
}
|
|
335
348
|
catch (error) {
|
|
336
349
|
this.logger.warn(`Failed to parse template.json for ${templateName}:`, error);
|
|
@@ -339,8 +352,8 @@ class TemplateService {
|
|
|
339
352
|
return {
|
|
340
353
|
name: templateName,
|
|
341
354
|
description: `${templateName} template`,
|
|
342
|
-
version:
|
|
343
|
-
type:
|
|
355
|
+
version: "1.0.0",
|
|
356
|
+
type: "base", // Default fallback
|
|
344
357
|
};
|
|
345
358
|
}
|
|
346
359
|
/**
|
|
@@ -351,7 +364,7 @@ class TemplateService {
|
|
|
351
364
|
const applicationTemplates = [];
|
|
352
365
|
for (const templateName of allTemplates) {
|
|
353
366
|
const templateInfo = this.getTemplateInfo(templateName);
|
|
354
|
-
if (templateInfo.type ===
|
|
367
|
+
if (templateInfo.type === "application") {
|
|
355
368
|
applicationTemplates.push(templateInfo);
|
|
356
369
|
}
|
|
357
370
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template.service.js","sourceRoot":"","sources":["../../src/services/template.service.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAoD;AACpD,qCAOiB;AACjB,4CAAyC;AACzC,0DAA6D;AAC7D,wDAA0B;AAC1B,4DAAwD;AACxD,wCAA0C;
|
|
1
|
+
{"version":3,"file":"template.service.js","sourceRoot":"","sources":["../../src/services/template.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -117,7 +117,7 @@ class TestService {
|
|
|
117
117
|
stdio: "inherit",
|
|
118
118
|
shell: true,
|
|
119
119
|
});
|
|
120
|
-
child.on("close",
|
|
120
|
+
child.on("close", code => {
|
|
121
121
|
if (code === 0) {
|
|
122
122
|
resolve();
|
|
123
123
|
}
|
|
@@ -125,7 +125,7 @@ class TestService {
|
|
|
125
125
|
reject(new Error(`npm install failed with code ${code}`));
|
|
126
126
|
}
|
|
127
127
|
});
|
|
128
|
-
child.on("error",
|
|
128
|
+
child.on("error", err => {
|
|
129
129
|
reject(err);
|
|
130
130
|
});
|
|
131
131
|
});
|
|
@@ -146,7 +146,7 @@ class TestService {
|
|
|
146
146
|
BINARY_PATH: binaryPath,
|
|
147
147
|
},
|
|
148
148
|
});
|
|
149
|
-
child.on("close",
|
|
149
|
+
child.on("close", code => {
|
|
150
150
|
if (code === 0) {
|
|
151
151
|
this.logger.info("Tests completed successfully");
|
|
152
152
|
resolve();
|
|
@@ -155,7 +155,7 @@ class TestService {
|
|
|
155
155
|
reject(new Error(`Tests failed with code ${code}`));
|
|
156
156
|
}
|
|
157
157
|
});
|
|
158
|
-
child.on("error",
|
|
158
|
+
child.on("error", err => {
|
|
159
159
|
reject(err);
|
|
160
160
|
});
|
|
161
161
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.service.js","sourceRoot":"","sources":["../../src/services/test.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAAyC;AACzC,uCAAyB;AACzB,2CAA6B;AAC7B,wCAA0C;AAC1C,iDAAsC;AACtC,iEAA4D;AAE5D;;;;;;;;GAQG;AACH,MAAa,WAAW;
|
|
1
|
+
{"version":3,"file":"test.service.js","sourceRoot":"","sources":["../../src/services/test.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -134,31 +134,44 @@ npm run build
|
|
|
134
134
|
|
|
135
135
|
### Basic Settings
|
|
136
136
|
|
|
137
|
-
|
|
137
|
+
Product metadata is configured in your `package.json` file:
|
|
138
138
|
|
|
139
139
|
```json
|
|
140
140
|
{
|
|
141
|
-
"
|
|
142
|
-
"productSlug": "your-product-slug",
|
|
143
|
-
"company": "Your Company",
|
|
141
|
+
"name": "your-product-slug",
|
|
144
142
|
"version": "1.0.0",
|
|
145
|
-
"
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
143
|
+
"description": "Your product description",
|
|
144
|
+
"productName": "Your Product Name",
|
|
145
|
+
"author": "Your Company"
|
|
146
|
+
}
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
These values are automatically populated by the create script and are used for:
|
|
150
|
+
- **name** → Project identifier (folder name, exe name, package name, etc.)
|
|
151
|
+
- **productName** → Display name shown to users
|
|
152
|
+
- **description** → Product description in installers and metadata
|
|
153
|
+
- **author** → Company name (also used to auto-generate copyright)
|
|
154
|
+
- **version** → Application version
|
|
155
|
+
|
|
156
|
+
CLI-specific settings go in `config/iocd.cli.config.json`:
|
|
157
|
+
|
|
158
|
+
```json
|
|
159
|
+
{
|
|
160
|
+
"components": {
|
|
161
|
+
"store": {
|
|
162
|
+
"github": {
|
|
163
|
+
"repo": "interopio/iocd-components/releases"
|
|
164
|
+
}
|
|
149
165
|
},
|
|
150
|
-
"
|
|
151
|
-
"
|
|
152
|
-
"pfxPath": "path/to/certificate.pfx"
|
|
166
|
+
"list": {
|
|
167
|
+
"iocd": "latest"
|
|
153
168
|
}
|
|
154
|
-
},
|
|
155
|
-
"mac": {
|
|
156
|
-
"appBundleName": "Your Product.app",
|
|
157
|
-
"appBundleId": "com.yourcompany.product"
|
|
158
169
|
}
|
|
159
170
|
}
|
|
160
171
|
```
|
|
161
172
|
|
|
173
|
+
> **Tip**: You can view the full JSON schema for `iocd.cli.config.json` in `node_modules/@interopio/iocd-cli/dist/schemas/iocd.cli.config.schema.json`. Add a `$schema` property to your config file for IDE autocompletion and validation.
|
|
174
|
+
|
|
162
175
|
### License Key
|
|
163
176
|
|
|
164
177
|
Set your license key using:
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "{{PRODUCT_SLUG}}",
|
|
3
3
|
"version": "1.0.0",
|
|
4
|
-
"description": "{{
|
|
4
|
+
"description": "{{PRODUCT_DESCRIPTION}}",
|
|
5
5
|
"productName": "{{PRODUCT_NAME}}",
|
|
6
|
+
"author": "{{COMPANY}}",
|
|
6
7
|
"scripts": {
|
|
7
8
|
"dev": "iocd dev",
|
|
8
9
|
"test": "iocd test",
|
|
@@ -17,7 +18,6 @@
|
|
|
17
18
|
"desktop",
|
|
18
19
|
"{{PRODUCT_NAME}}"
|
|
19
20
|
],
|
|
20
|
-
"author": "Your Name",
|
|
21
21
|
"license": "MIT",
|
|
22
22
|
"engines": {
|
|
23
23
|
"node": ">=22.0.0"
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"version": "1.0.0",
|
|
10
10
|
"license": "ISC",
|
|
11
11
|
"devDependencies": {
|
|
12
|
-
"@interopio/wdio-iocd-service": "^0.1.
|
|
12
|
+
"@interopio/wdio-iocd-service": "^0.1.1",
|
|
13
13
|
"@types/node": "^24.10.0",
|
|
14
14
|
"@wdio/cli": "^8.46.0",
|
|
15
15
|
"@wdio/local-runner": "^8.46.0",
|
|
@@ -248,9 +248,9 @@
|
|
|
248
248
|
}
|
|
249
249
|
},
|
|
250
250
|
"node_modules/@interopio/wdio-iocd-service": {
|
|
251
|
-
"version": "0.1.
|
|
252
|
-
"resolved": "https://registry.npmjs.org/@interopio/wdio-iocd-service/-/wdio-iocd-service-0.1.
|
|
253
|
-
"integrity": "sha512-
|
|
251
|
+
"version": "0.1.1",
|
|
252
|
+
"resolved": "https://registry.npmjs.org/@interopio/wdio-iocd-service/-/wdio-iocd-service-0.1.1.tgz",
|
|
253
|
+
"integrity": "sha512-piJVeDnUfjjPeFunlYQHnfNs7F/NUwhxSBy9ZC5HS/anLGpTayojgs4BeC3dw179aEA3wTqSyLZBJNA5ZlYFCw==",
|
|
254
254
|
"dev": true,
|
|
255
255
|
"license": "MIT",
|
|
256
256
|
"dependencies": {
|
|
@@ -650,7 +650,6 @@
|
|
|
650
650
|
"integrity": "sha512-qzQZRBqkFsYyaSWXuEHc2WR9c0a0CXwiE5FWUvn7ZM+vdy1uZLfCunD38UzhuB7YN/J11ndbDBcTmOdxJo9Q7A==",
|
|
651
651
|
"dev": true,
|
|
652
652
|
"license": "MIT",
|
|
653
|
-
"peer": true,
|
|
654
653
|
"dependencies": {
|
|
655
654
|
"undici-types": "~7.16.0"
|
|
656
655
|
}
|
|
@@ -1053,7 +1052,6 @@
|
|
|
1053
1052
|
"integrity": "sha512-t4NaNTvJZci3Xv/yUZPH4eTL0hxrVTf5wdwNnYIBrzMnlRDbNefjQ0P7FM7ZjQCLaH92AEH6t/XanUId7Webug==",
|
|
1054
1053
|
"dev": true,
|
|
1055
1054
|
"license": "MIT",
|
|
1056
|
-
"peer": true,
|
|
1057
1055
|
"dependencies": {
|
|
1058
1056
|
"@types/node": "^22.2.0"
|
|
1059
1057
|
},
|
|
@@ -1170,7 +1168,6 @@
|
|
|
1170
1168
|
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
|
|
1171
1169
|
"dev": true,
|
|
1172
1170
|
"license": "MIT",
|
|
1173
|
-
"peer": true,
|
|
1174
1171
|
"dependencies": {
|
|
1175
1172
|
"fast-deep-equal": "^3.1.1",
|
|
1176
1173
|
"fast-json-stable-stringify": "^2.0.0",
|
|
@@ -2363,8 +2360,7 @@
|
|
|
2363
2360
|
"resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1400418.tgz",
|
|
2364
2361
|
"integrity": "sha512-U8j75zDOXF8IP3o0Cgb7K4tFA9uUHEOru2Wx64+EUqL4LNOh9dRe1i8WKR1k3mSpjcCe3aIkTDvEwq0YkI4hfw==",
|
|
2365
2362
|
"dev": true,
|
|
2366
|
-
"license": "BSD-3-Clause"
|
|
2367
|
-
"peer": true
|
|
2363
|
+
"license": "BSD-3-Clause"
|
|
2368
2364
|
},
|
|
2369
2365
|
"node_modules/diff": {
|
|
2370
2366
|
"version": "7.0.0",
|
|
@@ -6606,7 +6602,6 @@
|
|
|
6606
6602
|
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
|
|
6607
6603
|
"dev": true,
|
|
6608
6604
|
"license": "Apache-2.0",
|
|
6609
|
-
"peer": true,
|
|
6610
6605
|
"bin": {
|
|
6611
6606
|
"tsc": "bin/tsc",
|
|
6612
6607
|
"tsserver": "bin/tsserver"
|
|
@@ -6867,7 +6862,6 @@
|
|
|
6867
6862
|
"integrity": "sha512-SyrSVpygEdPzvgpapVZRQCy8XIOecadp56bPQewpfSfo9ypB6wdOUkx13NBu2ANDlUAtJX7KaLJpTtywVHNlVw==",
|
|
6868
6863
|
"dev": true,
|
|
6869
6864
|
"license": "MIT",
|
|
6870
|
-
"peer": true,
|
|
6871
6865
|
"dependencies": {
|
|
6872
6866
|
"@types/node": "^22.2.0",
|
|
6873
6867
|
"@wdio/config": "8.46.0",
|
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tests",
|
|
3
3
|
"version": "1.0.0",
|
|
4
|
-
"description": "",
|
|
5
4
|
"license": "ISC",
|
|
6
|
-
"author": "",
|
|
7
|
-
"type": "commonjs",
|
|
8
|
-
"main": "basic.test.js",
|
|
9
5
|
"scripts": {
|
|
10
6
|
"test": "npx wdio run ./wdio.config.ts"
|
|
11
7
|
},
|
|
12
8
|
"devDependencies": {
|
|
13
|
-
"@interopio/wdio-iocd-service": "^0.1.
|
|
9
|
+
"@interopio/wdio-iocd-service": "^0.1.1",
|
|
14
10
|
"@types/node": "^24.10.0",
|
|
15
11
|
"@wdio/cli": "^8.46.0",
|
|
16
12
|
"@wdio/local-runner": "^8.46.0",
|
|
@@ -20,4 +16,4 @@
|
|
|
20
16
|
"typescript": "^5.9.3",
|
|
21
17
|
"webdriverio": "^8.46.0"
|
|
22
18
|
}
|
|
23
|
-
}
|
|
19
|
+
}
|