@codenotch/codenotch.cli 1.0.52 → 1.0.54

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 (102) hide show
  1. package/README.md +14 -5
  2. package/dist/commands/generate/app.js +22 -14
  3. package/dist/commands/generate/app.js.map +1 -1
  4. package/dist/commands/generate/appmanifest.js +14 -2
  5. package/dist/commands/generate/appmanifest.js.map +1 -1
  6. package/dist/commands/generate/dbcontext.js +9 -2
  7. package/dist/commands/generate/dbcontext.js.map +1 -1
  8. package/dist/commands/generate/i18n.js +15 -0
  9. package/dist/commands/generate/i18n.js.map +1 -1
  10. package/dist/commands/generate/manifest.js +7 -2
  11. package/dist/commands/generate/manifest.js.map +1 -1
  12. package/dist/commands/generate/openapi.js +9 -2
  13. package/dist/commands/generate/openapi.js.map +1 -1
  14. package/dist/commands/generate/pkg.js +7 -2
  15. package/dist/commands/generate/pkg.js.map +1 -1
  16. package/dist/commands/generate/process.js +26 -18
  17. package/dist/commands/generate/process.js.map +1 -1
  18. package/dist/commands/generate/shared.d.ts +5 -0
  19. package/dist/commands/generate/shared.js +12 -0
  20. package/dist/commands/generate/shared.js.map +1 -1
  21. package/dist/commands/project/bump.d.ts +2 -0
  22. package/dist/commands/project/bump.js +130 -0
  23. package/dist/commands/project/bump.js.map +1 -0
  24. package/dist/commands/project/compile.js +11 -2
  25. package/dist/commands/project/compile.js.map +1 -1
  26. package/dist/commands/project/deploy.js +10 -2
  27. package/dist/commands/project/deploy.js.map +1 -1
  28. package/dist/commands/project/index.js +3 -0
  29. package/dist/commands/project/index.js.map +1 -1
  30. package/dist/commands/project/open.js +4 -4
  31. package/dist/commands/project/open.js.map +1 -1
  32. package/dist/commands/project/package.js +60 -4
  33. package/dist/commands/project/package.js.map +1 -1
  34. package/dist/commands/project/refresh.js +49 -3
  35. package/dist/commands/project/refresh.js.map +1 -1
  36. package/dist/commands/project/remove.js +4 -1
  37. package/dist/commands/project/remove.js.map +1 -1
  38. package/dist/commands/project/start.js +8 -4
  39. package/dist/commands/project/start.js.map +1 -1
  40. package/dist/commands/project/test.js +41 -3
  41. package/dist/commands/project/test.js.map +1 -1
  42. package/dist/commands/react/index.js +1 -4
  43. package/dist/commands/react/index.js.map +1 -1
  44. package/dist/commands/runtime/clear.js +5 -0
  45. package/dist/commands/runtime/clear.js.map +1 -1
  46. package/dist/commands/runtime/info.js +1 -1
  47. package/dist/commands/runtime/info.js.map +1 -1
  48. package/dist/commands/runtime/portal.js +4 -4
  49. package/dist/commands/runtime/portal.js.map +1 -1
  50. package/dist/commands/runtime/start.js +10 -1
  51. package/dist/commands/runtime/start.js.map +1 -1
  52. package/dist/commands/runtime/stop.js +5 -0
  53. package/dist/commands/runtime/stop.js.map +1 -1
  54. package/dist/commands/runtime/update.js +4 -3
  55. package/dist/commands/runtime/update.js.map +1 -1
  56. package/dist/commands/system/completion.d.ts +7 -0
  57. package/dist/commands/system/completion.js +145 -0
  58. package/dist/commands/system/completion.js.map +1 -0
  59. package/dist/commands/system/index.js +2 -0
  60. package/dist/commands/system/index.js.map +1 -1
  61. package/dist/commands/system/info.js +42 -8
  62. package/dist/commands/system/info.js.map +1 -1
  63. package/dist/commands/validation/validate.js +3 -3
  64. package/dist/commands/validation/validate.js.map +1 -1
  65. package/dist/index.js +32 -4
  66. package/dist/index.js.map +1 -1
  67. package/dist/utils/BuildUtils.d.ts +6 -5
  68. package/dist/utils/BuildUtils.js +61 -45
  69. package/dist/utils/BuildUtils.js.map +1 -1
  70. package/dist/utils/ConsoleUtils.d.ts +27 -0
  71. package/dist/utils/ConsoleUtils.js +53 -4
  72. package/dist/utils/ConsoleUtils.js.map +1 -1
  73. package/dist/utils/FileUtils.js +1 -1
  74. package/dist/utils/FileUtils.js.map +1 -1
  75. package/dist/utils/GitHubAuthUtils.js +5 -5
  76. package/dist/utils/GitHubAuthUtils.js.map +1 -1
  77. package/dist/utils/PackageUtils.js +15 -15
  78. package/dist/utils/PackageUtils.js.map +1 -1
  79. package/dist/utils/ProjectCompilationUtils.d.ts +0 -1
  80. package/dist/utils/ProjectCompilationUtils.js +22 -23
  81. package/dist/utils/ProjectCompilationUtils.js.map +1 -1
  82. package/dist/utils/ProjectTemplates.js +2 -2
  83. package/dist/utils/ProjectTemplates.js.map +1 -1
  84. package/dist/utils/ProjectUtils.d.ts +6 -0
  85. package/dist/utils/ProjectUtils.js +34 -1
  86. package/dist/utils/ProjectUtils.js.map +1 -1
  87. package/dist/utils/RuntimeUtils.d.ts +84 -9
  88. package/dist/utils/RuntimeUtils.js +263 -58
  89. package/dist/utils/RuntimeUtils.js.map +1 -1
  90. package/dist/utils/ShellUtils.js +6 -2
  91. package/dist/utils/ShellUtils.js.map +1 -1
  92. package/dist/utils/TemplateUtils.js +26 -14
  93. package/dist/utils/TemplateUtils.js.map +1 -1
  94. package/package.json +4 -3
  95. package/resources/docs/apps.md +0 -1
  96. package/resources/docs/project.md +21 -8
  97. package/dist/commands/react/serve.d.ts +0 -2
  98. package/dist/commands/react/serve.js +0 -52
  99. package/dist/commands/react/serve.js.map +0 -1
  100. package/dist/utils/ServeUtils.d.ts +0 -9
  101. package/dist/utils/ServeUtils.js +0 -172
  102. package/dist/utils/ServeUtils.js.map +0 -1
@@ -0,0 +1,130 @@
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.registerBump = registerBump;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const path_1 = require("path");
9
+ const promises_1 = __importDefault(require("node:fs/promises"));
10
+ const FileUtils_1 = __importDefault(require("../../utils/FileUtils"));
11
+ const ConsoleUtils_1 = __importDefault(require("../../utils/ConsoleUtils"));
12
+ const ProjectGeneratorUtils_1 = __importDefault(require("../../utils/ProjectGeneratorUtils"));
13
+ const ManifestUtils_1 = require("../../utils/ManifestUtils");
14
+ const shared_1 = require("./shared");
15
+ const SEMVER = /^(\d+)\.(\d+)\.(\d+)$/;
16
+ const RELEASES = ['major', 'minor', 'patch'];
17
+ function registerBump(project) {
18
+ (0, shared_1.withProjectPathOption)(project
19
+ .command('bump')
20
+ .description('Raise the version of the project (manifest.json, and package.json when it carries one), then regenerate the derived files holding it')
21
+ .argument('[release]', `'${RELEASES.join("', '")}' or an explicit x.y.z version`, 'patch')
22
+ .option('--json', 'output the result in JSON format')
23
+ .addHelpText('after', `
24
+ Examples:
25
+ $ cn project bump 0.1.4 -> 0.1.5
26
+ $ cn project bump minor 0.1.4 -> 0.2.0
27
+ $ cn project bump 2.0.0 set the version as is
28
+
29
+ The version is the one the runtime shows for the project, and the one written in db-schema.xml
30
+ and openapi.json, both regenerated here. The next 'cn project refresh' deploys it.
31
+ `))
32
+ .action(async (release, options) => {
33
+ const abort = (message) => {
34
+ console.error(chalk_1.default.yellow(`Aborted: ${message}`));
35
+ if (options.json) {
36
+ ConsoleUtils_1.default.json({ error: message });
37
+ }
38
+ process.exitCode = 1;
39
+ };
40
+ const manifestPath = (0, path_1.join)(options.projectPath, 'manifest.json');
41
+ const manifest = await readJsonFile(manifestPath);
42
+ if (manifest === undefined) {
43
+ abort(`no manifest.json in '${options.projectPath}', run this inside a project or point '-p' at one.`);
44
+ return;
45
+ }
46
+ // A manifest without a usable version counts from the default one, like a new project
47
+ const previousVersion = typeof manifest.content.version === 'string' && SEMVER.test(manifest.content.version) ? manifest.content.version : undefined;
48
+ const version = nextVersion(previousVersion ?? ManifestUtils_1.DEFAULT_PROJECT_VERSION, release);
49
+ if (version === undefined) {
50
+ abort(`'${release}' is neither ${RELEASES.join(', ')} nor a x.y.z version.`);
51
+ return;
52
+ }
53
+ if (previousVersion === undefined) {
54
+ ConsoleUtils_1.default.checkWarning(`manifest.json had no x.y.z version, counting from ${ManifestUtils_1.DEFAULT_PROJECT_VERSION}.`);
55
+ }
56
+ const updated = [];
57
+ manifest.content.version = version;
58
+ if (!writeJsonFile(manifestPath, manifest)) {
59
+ abort(`could not write '${manifestPath}'.`);
60
+ return;
61
+ }
62
+ updated.push(manifestPath);
63
+ // The package.json of the project follows, when it carries a version
64
+ const packagePath = (0, path_1.join)(options.projectPath, 'package.json');
65
+ const pkg = await readJsonFile(packagePath);
66
+ if (pkg !== undefined && typeof pkg.content.version === 'string') {
67
+ pkg.content.version = version;
68
+ if (!writeJsonFile(packagePath, pkg)) {
69
+ abort(`could not write '${packagePath}'.`);
70
+ return;
71
+ }
72
+ updated.push(packagePath);
73
+ }
74
+ // db-schema.xml and openapi.json carry the version: rebuilt from the sources with it
75
+ const generated = await ProjectGeneratorUtils_1.default.generateAll(options.projectPath);
76
+ for (const warning of generated.warnings) {
77
+ ConsoleUtils_1.default.checkWarning(warning);
78
+ }
79
+ if (generated.error !== undefined) {
80
+ ConsoleUtils_1.default.error(generated.error);
81
+ process.exitCode = 1;
82
+ }
83
+ if (options.json) {
84
+ ConsoleUtils_1.default.json({ previousVersion: previousVersion ?? null, version, updated, regenerated: generated.written, ...(generated.error === undefined ? {} : { error: generated.error }) });
85
+ return;
86
+ }
87
+ console.log(chalk_1.default.green(`Version ${previousVersion ?? '(none)'} -> ${version}`));
88
+ ConsoleUtils_1.default.check(`Updated: ${updated.map(file => (0, path_1.basename)(file)).join(', ')}`);
89
+ if (generated.written.length > 0) {
90
+ ConsoleUtils_1.default.check(`Regenerated: ${generated.written.map(file => (0, path_1.basename)(file)).join(', ')}`);
91
+ }
92
+ });
93
+ }
94
+ /** The version after `release`: the next major/minor/patch of `current`, or `release` itself when it is a x.y.z version */
95
+ function nextVersion(current, release) {
96
+ if (SEMVER.test(release)) {
97
+ return release;
98
+ }
99
+ const parts = SEMVER.exec(current);
100
+ if (parts === null) {
101
+ return undefined;
102
+ }
103
+ const [major, minor, patch] = [Number(parts[1]), Number(parts[2]), Number(parts[3])];
104
+ switch (release) {
105
+ case 'major': return `${major + 1}.0.0`;
106
+ case 'minor': return `${major}.${minor + 1}.0`;
107
+ case 'patch': return `${major}.${minor}.${patch + 1}`;
108
+ default: return undefined;
109
+ }
110
+ }
111
+ async function readJsonFile(filePath) {
112
+ if (await FileUtils_1.default.exists(filePath) === false) {
113
+ return undefined;
114
+ }
115
+ try {
116
+ const raw = await promises_1.default.readFile(filePath, 'utf8');
117
+ return {
118
+ content: JSON.parse(raw),
119
+ indent: /^\{\r?\n([ \t]+)/.exec(raw)?.[1] ?? ' ',
120
+ trailingNewline: raw.endsWith('\n')
121
+ };
122
+ }
123
+ catch {
124
+ return undefined;
125
+ }
126
+ }
127
+ function writeJsonFile(filePath, file) {
128
+ return FileUtils_1.default.writeFileSync(filePath, JSON.stringify(file.content, null, file.indent) + (file.trailingNewline ? '\n' : ''));
129
+ }
130
+ //# sourceMappingURL=bump.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bump.js","sourceRoot":"","sources":["../../../src/commands/project/bump.ts"],"names":[],"mappings":"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"}
@@ -6,23 +6,32 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.registerCompile = registerCompile;
7
7
  const chalk_1 = __importDefault(require("chalk"));
8
8
  const path_1 = __importDefault(require("path"));
9
+ const ConsoleUtils_1 = __importDefault(require("../../utils/ConsoleUtils"));
9
10
  const ProjectUtils_1 = __importDefault(require("../../utils/ProjectUtils"));
10
11
  const shared_1 = require("./shared");
11
12
  function registerCompile(project) {
12
13
  (0, shared_1.withProjectPathOption)(project
13
14
  .command('compile')
14
15
  .description('Compile the project into .codenotch/compiled, the sources are left untouched')
15
- .option('-o, --output-path <path>', 'output folder for the compiled project (default .codenotch/compiled)'))
16
+ .option('-o, --output-path <path>', 'output folder for the compiled project (default .codenotch/compiled)')
17
+ .option('--json', 'output the result in JSON format'))
16
18
  .action(async (options) => {
17
19
  const outputPath = options.outputPath ?? path_1.default.join(options.projectPath, '.codenotch', 'compiled');
18
20
  const compilation = await ProjectUtils_1.default.compileProjectTo(options.projectPath, outputPath);
19
- if (compilation.errors.length > 0) {
21
+ const success = compilation.errors.length === 0;
22
+ if (options.json) {
23
+ ConsoleUtils_1.default.json({ success, outputPath, errors: compilation.errors, warnings: compilation.warnings });
24
+ }
25
+ else if (!success) {
20
26
  console.error(chalk_1.default.red("Compilation failed with errors:"));
21
27
  compilation.errors.forEach(err => console.error(chalk_1.default.red(`- ${err}`)));
22
28
  }
23
29
  else {
24
30
  console.log(chalk_1.default.green(`Project compiled successfully into ${outputPath}`));
25
31
  }
32
+ if (!success) {
33
+ process.exitCode = 1;
34
+ }
26
35
  });
27
36
  }
28
37
  //# sourceMappingURL=compile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../../src/commands/project/compile.ts"],"names":[],"mappings":";;;;;AAMA,0CAgBC;AArBD,kDAA0B;AAC1B,gDAAwB;AACxB,4EAAoD;AACpD,qCAAyE;AAEzE,SAAgB,eAAe,CAAC,OAAgB;IAC5C,IAAA,8BAAqB,EAAC,OAAO;SACxB,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,8EAA8E,CAAC;SAC3F,MAAM,CAAC,0BAA0B,EAAE,sEAAsE,CAAC,CAAC;SAC3G,MAAM,CAAC,KAAK,EAAE,OAAyD,EAAE,EAAE;QACxE,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;QAClG,MAAM,WAAW,GAAG,MAAM,sBAAY,CAAC,gBAAgB,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACzF,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC,CAAC;YAC5D,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5E,CAAC;aACI,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,sCAAsC,UAAU,EAAE,CAAC,CAAC,CAAC;QACjF,CAAC;IACL,CAAC,CAAC,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../../src/commands/project/compile.ts"],"names":[],"mappings":";;;;;AAOA,0CA0BC;AAhCD,kDAA0B;AAC1B,gDAAwB;AACxB,4EAAoD;AACpD,4EAAoD;AACpD,qCAAyE;AAEzE,SAAgB,eAAe,CAAC,OAAgB;IAC5C,IAAA,8BAAqB,EAAC,OAAO;SACxB,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,8EAA8E,CAAC;SAC3F,MAAM,CAAC,0BAA0B,EAAE,sEAAsE,CAAC;SAC1G,MAAM,CAAC,QAAQ,EAAE,kCAAkC,CAAC,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,OAAyE,EAAE,EAAE;QACxF,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;QAClG,MAAM,WAAW,GAAG,MAAM,sBAAY,CAAC,gBAAgB,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACzF,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;QAEhD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,sBAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3G,CAAC;aACI,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC,CAAC;YAC5D,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5E,CAAC;aACI,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,sCAAsC,UAAU,EAAE,CAAC,CAAC,CAAC;QACjF,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACzB,CAAC;IACL,CAAC,CAAC,CAAC;AACX,CAAC"}
@@ -16,7 +16,8 @@ function registerDeploy(project) {
16
16
  .command('deploy')
17
17
  .description('Deploy a packaged project to the runtime')
18
18
  .argument('[service]', "service name of the project on the runtime (omitted: the serviceName of the manifest.json of the project)")
19
- .argument('[zip]', "package to deploy, the zip written by 'cn project package' (omitted: pick one under .codenotch/)"))
19
+ .argument('[zip]', "package to deploy, the zip written by 'cn project package' (omitted: pick one under .codenotch/)")
20
+ .option('--json', 'output the result in JSON format'))
20
21
  .addHelpText('after', `
21
22
  Examples:
22
23
  $ cn project deploy service read from manifest.json, zip picked under .codenotch/
@@ -40,7 +41,14 @@ Examples:
40
41
  process.exitCode = 1;
41
42
  return;
42
43
  }
43
- await RuntimeUtils_1.default.deployProject(serviceName, zipPath);
44
+ // The outcome is already reported on stderr, the JSON carries it for the scripts
45
+ const deployed = await RuntimeUtils_1.default.deployProject(serviceName, zipPath);
46
+ if (options.json) {
47
+ ConsoleUtils_1.default.json({ ...deployed, zip: zipPath });
48
+ }
49
+ if (!deployed.success) {
50
+ process.exitCode = 1;
51
+ }
44
52
  });
45
53
  }
46
54
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/commands/project/deploy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/commands/project/deploy.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ const package_1 = require("./package");
11
11
  const deploy_1 = require("./deploy");
12
12
  const new_1 = require("./new");
13
13
  const remove_1 = require("./remove");
14
+ const bump_1 = require("./bump");
14
15
  function registerProjectCommands(program) {
15
16
  const project = program
16
17
  .command('project') //TODO name subject to change
@@ -21,6 +22,7 @@ Examples:
21
22
  $ cn project start build, deploy and start the local project
22
23
  $ cn project inspect what the sources declare (processes, tables, apps, i18n...)
23
24
  $ cn project refresh sync the changes with the running runtime
25
+ $ cn project bump raise the version of the project (patch, minor, major or x.y.z)
24
26
  `);
25
27
  (0, inspect_1.registerInspect)(project);
26
28
  (0, open_1.registerOpen)(project);
@@ -32,5 +34,6 @@ Examples:
32
34
  (0, deploy_1.registerDeploy)(project);
33
35
  (0, new_1.registerNew)(project);
34
36
  (0, remove_1.registerRemove)(project);
37
+ (0, bump_1.registerBump)(project);
35
38
  }
36
39
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/project/index.ts"],"names":[],"mappings":";;AAYA,0DAsBC;AAjCD,uCAA4C;AAC5C,iCAAsC;AACtC,mCAAwC;AACxC,uCAA4C;AAC5C,iCAAsC;AACtC,uCAA4C;AAC5C,uCAA4C;AAC5C,qCAA0C;AAC1C,+BAAoC;AACpC,qCAA0C;AAE1C,SAAgB,uBAAuB,CAAC,OAAgB;IACpD,MAAM,OAAO,GAAG,OAAO;SAClB,OAAO,CAAC,SAAS,CAAC,CAAC,6BAA6B;SAChD,WAAW,CAAC,uJAAuJ,CAAC;SACpK,WAAW,CAAC,OAAO,EAAE;;;;;;CAM7B,CAAC,CAAC;IAEC,IAAA,yBAAe,EAAC,OAAO,CAAC,CAAC;IACzB,IAAA,mBAAY,EAAC,OAAO,CAAC,CAAC;IACtB,IAAA,qBAAa,EAAC,OAAO,CAAC,CAAC;IACvB,IAAA,yBAAe,EAAC,OAAO,CAAC,CAAC;IACzB,IAAA,mBAAY,EAAC,OAAO,CAAC,CAAC;IACtB,IAAA,yBAAe,EAAC,OAAO,CAAC,CAAC;IACzB,IAAA,yBAAe,EAAC,OAAO,CAAC,CAAC;IACzB,IAAA,uBAAc,EAAC,OAAO,CAAC,CAAC;IACxB,IAAA,iBAAW,EAAC,OAAO,CAAC,CAAC;IACrB,IAAA,uBAAc,EAAC,OAAO,CAAC,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/project/index.ts"],"names":[],"mappings":";;AAaA,0DAwBC;AApCD,uCAA4C;AAC5C,iCAAsC;AACtC,mCAAwC;AACxC,uCAA4C;AAC5C,iCAAsC;AACtC,uCAA4C;AAC5C,uCAA4C;AAC5C,qCAA0C;AAC1C,+BAAoC;AACpC,qCAA0C;AAC1C,iCAAsC;AAEtC,SAAgB,uBAAuB,CAAC,OAAgB;IACpD,MAAM,OAAO,GAAG,OAAO;SAClB,OAAO,CAAC,SAAS,CAAC,CAAC,6BAA6B;SAChD,WAAW,CAAC,uJAAuJ,CAAC;SACpK,WAAW,CAAC,OAAO,EAAE;;;;;;;CAO7B,CAAC,CAAC;IAEC,IAAA,yBAAe,EAAC,OAAO,CAAC,CAAC;IACzB,IAAA,mBAAY,EAAC,OAAO,CAAC,CAAC;IACtB,IAAA,qBAAa,EAAC,OAAO,CAAC,CAAC;IACvB,IAAA,yBAAe,EAAC,OAAO,CAAC,CAAC;IACzB,IAAA,mBAAY,EAAC,OAAO,CAAC,CAAC;IACtB,IAAA,yBAAe,EAAC,OAAO,CAAC,CAAC;IACzB,IAAA,yBAAe,EAAC,OAAO,CAAC,CAAC;IACzB,IAAA,uBAAc,EAAC,OAAO,CAAC,CAAC;IACxB,IAAA,iBAAW,EAAC,OAAO,CAAC,CAAC;IACrB,IAAA,uBAAc,EAAC,OAAO,CAAC,CAAC;IACxB,IAAA,mBAAY,EAAC,OAAO,CAAC,CAAC;AAC1B,CAAC"}
@@ -4,7 +4,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.registerOpen = registerOpen;
7
- const chalk_1 = __importDefault(require("chalk"));
8
7
  const RuntimeUtils_1 = __importDefault(require("../../utils/RuntimeUtils"));
9
8
  const ProjectUtils_1 = __importDefault(require("../../utils/ProjectUtils"));
10
9
  const OsUtils_1 = require("../../utils/OsUtils");
@@ -12,10 +11,11 @@ const shared_1 = require("./shared");
12
11
  function registerOpen(project) {
13
12
  (0, shared_1.withProjectPathOption)(project
14
13
  .command('open')
15
- .description('Open the index page of the project in the default browser'))
14
+ .description('Open the index page of the project in the default browser (proposes to install/start the runtime when needed)'))
16
15
  .action(async (options) => {
17
- if ((await RuntimeUtils_1.default.isRuntimeRunning()) === false) {
18
- console.log(chalk_1.default.yellow(`Codenotch runtime is not running`));
16
+ // The page is served by the runtime: propose to install and/or start it rather than giving up
17
+ if (!await RuntimeUtils_1.default.ensureRuntimeIsRunning()) {
18
+ process.exitCode = 1;
19
19
  return;
20
20
  }
21
21
  const basePath = await RuntimeUtils_1.default.getRuntimeBaseUrl();
@@ -1 +1 @@
1
- {"version":3,"file":"open.js","sourceRoot":"","sources":["../../../src/commands/project/open.ts"],"names":[],"mappings":";;;;;AAOA,oCAaC;AAnBD,kDAA0B;AAC1B,4EAAoD;AACpD,4EAAoD;AACpD,iDAA8C;AAC9C,qCAAyE;AAEzE,SAAgB,YAAY,CAAC,OAAgB;IACzC,IAAA,8BAAqB,EAAC,OAAO;SACxB,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,2DAA2D,CAAC,CAAC;SACzE,MAAM,CAAC,KAAK,EAAE,OAA+B,EAAE,EAAE;QAC9C,IAAI,CAAC,MAAM,sBAAY,CAAC,gBAAgB,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAAC,CAAC;YAC9D,OAAO;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,sBAAY,CAAC,iBAAiB,EAAE,CAAC;QACxD,MAAM,WAAW,GAAG,MAAM,sBAAY,CAAC,qBAAqB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAClF,iBAAO,CAAC,aAAa,CAAC,GAAG,QAAQ,IAAI,WAAW,EAAE,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"open.js","sourceRoot":"","sources":["../../../src/commands/project/open.ts"],"names":[],"mappings":";;;;;AAMA,oCAeC;AApBD,4EAAoD;AACpD,4EAAoD;AACpD,iDAA8C;AAC9C,qCAAyE;AAEzE,SAAgB,YAAY,CAAC,OAAgB;IACzC,IAAA,8BAAqB,EAAC,OAAO;SACxB,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,+GAA+G,CAAC,CAAC;SAC7H,MAAM,CAAC,KAAK,EAAE,OAA+B,EAAE,EAAE;QAE9C,8FAA8F;QAC9F,IAAI,CAAC,MAAM,sBAAY,CAAC,sBAAsB,EAAE,EAAE,CAAC;YAC/C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,sBAAY,CAAC,iBAAiB,EAAE,CAAC;QACxD,MAAM,WAAW,GAAG,MAAM,sBAAY,CAAC,qBAAqB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAClF,iBAAO,CAAC,aAAa,CAAC,GAAG,QAAQ,IAAI,WAAW,EAAE,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;AACX,CAAC"}
@@ -1,4 +1,37 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
37
  };
@@ -6,7 +39,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
39
  exports.registerPackage = registerPackage;
7
40
  const chalk_1 = __importDefault(require("chalk"));
8
41
  const path_1 = __importDefault(require("path"));
9
- const ProjectUtils_1 = __importDefault(require("../../utils/ProjectUtils"));
42
+ const ConsoleUtils_1 = __importDefault(require("../../utils/ConsoleUtils"));
43
+ const ProjectUtils_1 = __importStar(require("../../utils/ProjectUtils"));
10
44
  const shared_1 = require("./shared");
11
45
  function registerPackage(project) {
12
46
  (0, shared_1.withProjectPathOption)(project
@@ -14,12 +48,34 @@ function registerPackage(project) {
14
48
  .alias('build')
15
49
  .description('Compile and package the project, output a zip file')
16
50
  .option('-o, --output-path <path>', 'output path for the build zip file (default .codenotch/build.zip)')
17
- .option('-i, --ignore-errors', 'ignore compilation errors and proceed with packaging', false))
51
+ .option('-i, --ignore-errors', 'ignore compilation errors and proceed with packaging', false)
52
+ .option('--json', 'output the result in JSON format'))
18
53
  .action(async (options) => {
19
54
  const outputPath = options.outputPath ?? path_1.default.join(options.projectPath, ".codenotch", "build.zip");
20
55
  const ignoreErrors = options.ignoreErrors ?? false;
21
- await ProjectUtils_1.default.packageProject(options.projectPath, outputPath, ignoreErrors);
22
- console.log(chalk_1.default.green(`Project built successfully at ${outputPath}`));
56
+ try {
57
+ const compilation = await ProjectUtils_1.default.packageProject(options.projectPath, outputPath, ignoreErrors);
58
+ if (options.json) {
59
+ ConsoleUtils_1.default.json({ success: true, outputPath, errors: compilation.errors, warnings: compilation.warnings });
60
+ }
61
+ else {
62
+ console.log(chalk_1.default.green(`Project built successfully at ${outputPath}`));
63
+ }
64
+ }
65
+ catch (error) {
66
+ // In text mode the failure is reported like any other; the JSON has to carry it
67
+ if (!options.json) {
68
+ throw error;
69
+ }
70
+ const compilationError = error instanceof ProjectUtils_1.CompilationError ? error : undefined;
71
+ ConsoleUtils_1.default.json({
72
+ success: false,
73
+ outputPath,
74
+ errors: compilationError?.errors ?? [error instanceof Error ? error.message : String(error)],
75
+ warnings: compilationError?.warnings ?? []
76
+ });
77
+ process.exitCode = 1;
78
+ }
23
79
  });
24
80
  }
25
81
  //# sourceMappingURL=package.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"package.js","sourceRoot":"","sources":["../../../src/commands/project/package.ts"],"names":[],"mappings":";;;;;AAMA,0CAaC;AAlBD,kDAA0B;AAC1B,gDAAwB;AACxB,4EAAoD;AACpD,qCAAyE;AAEzE,SAAgB,eAAe,CAAC,OAAgB;IAC5C,IAAA,8BAAqB,EAAC,OAAO;SACxB,OAAO,CAAC,SAAS,CAAC;SAClB,KAAK,CAAC,OAAO,CAAC;SACd,WAAW,CAAC,oDAAoD,CAAC;SACjE,MAAM,CAAC,0BAA0B,EAAE,mEAAmE,CAAC;SACvG,MAAM,CAAC,qBAAqB,EAAE,sDAAsD,EAAE,KAAK,CAAC,CAAC;SAC7F,MAAM,CAAC,KAAK,EAAE,OAAiF,EAAE,EAAE;QAChG,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;QACnG,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,KAAK,CAAC;QACnD,MAAM,sBAAY,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QACjF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,iCAAiC,UAAU,EAAE,CAAC,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"package.js","sourceRoot":"","sources":["../../../src/commands/project/package.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,0CAoCC;AA1CD,kDAA0B;AAC1B,gDAAwB;AACxB,4EAAoD;AACpD,yEAA0E;AAC1E,qCAAyE;AAEzE,SAAgB,eAAe,CAAC,OAAgB;IAC5C,IAAA,8BAAqB,EAAC,OAAO;SACxB,OAAO,CAAC,SAAS,CAAC;SAClB,KAAK,CAAC,OAAO,CAAC;SACd,WAAW,CAAC,oDAAoD,CAAC;SACjE,MAAM,CAAC,0BAA0B,EAAE,mEAAmE,CAAC;SACvG,MAAM,CAAC,qBAAqB,EAAE,sDAAsD,EAAE,KAAK,CAAC;SAC5F,MAAM,CAAC,QAAQ,EAAE,kCAAkC,CAAC,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,OAAiG,EAAE,EAAE;QAChH,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;QACnG,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,KAAK,CAAC;QAEnD,IAAI,CAAC;YACD,MAAM,WAAW,GAAG,MAAM,sBAAY,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;YACrG,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,sBAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;YACjH,CAAC;iBACI,CAAC;gBACF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,iCAAiC,UAAU,EAAE,CAAC,CAAC,CAAC;YAC5E,CAAC;QACL,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACX,gFAAgF;YAChF,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBAChB,MAAM,KAAK,CAAC;YAChB,CAAC;YACD,MAAM,gBAAgB,GAAG,KAAK,YAAY,+BAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/E,sBAAY,CAAC,IAAI,CAAC;gBACd,OAAO,EAAE,KAAK;gBACd,UAAU;gBACV,MAAM,EAAE,gBAAgB,EAAE,MAAM,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5F,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,IAAI,EAAE;aAC7C,CAAC,CAAC;YACH,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACzB,CAAC;IACL,CAAC,CAAC,CAAC;AACX,CAAC"}
@@ -1,15 +1,61 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.registerRefresh = registerRefresh;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const ConsoleUtils_1 = __importDefault(require("../../utils/ConsoleUtils"));
9
+ const ProjectUtils_1 = __importDefault(require("../../utils/ProjectUtils"));
10
+ const RuntimeUtils_1 = __importDefault(require("../../utils/RuntimeUtils"));
4
11
  const shared_1 = require("./shared");
5
12
  function registerRefresh(project) {
6
13
  (0, shared_1.withProjectPathOption)(project
7
14
  .command('refresh')
8
15
  .alias('patch')
9
- .description('Sync the project with the runtime, deploy changes and restart if needed'))
16
+ .description('Sync the project with the runtime, deploy changes and restart if needed')
17
+ .option('-i, --ignore-errors', 'deploy even when the compilation reports errors', false)
18
+ .option('--json', 'output the result in JSON format')
19
+ .addHelpText('after', `
20
+ Examples:
21
+ $ cn project refresh package the sources and redeploy them on the runtime
22
+ $ cn project refresh -p ./myproject
23
+ $ cn project refresh --ignore-errors deploy anyway when the compilation reports errors
24
+
25
+ When the runtime is not installed or not running, the command proposes to install/start it
26
+ (accepted by default outside a terminal). A project the runtime does not hold yet is deployed
27
+ as a whole. 'cn project start' does the same and opens the project in the browser.
28
+ `))
10
29
  .action(async (options) => {
11
- console.log("TODO Not implemented yet");
12
- //await RuntimeUtils.patchProject(options.projectPath);
30
+ // Without a manifest there is no service to sync with: say so rather than failing on the read
31
+ let serviceName;
32
+ try {
33
+ serviceName = await ProjectUtils_1.default.getProjectServiceName(options.projectPath);
34
+ }
35
+ catch {
36
+ console.error(chalk_1.default.yellow(`Aborted: no manifest.json in '${options.projectPath}', run this inside a project or point '-p' at one.`));
37
+ process.exitCode = 1;
38
+ return;
39
+ }
40
+ ConsoleUtils_1.default.check(`Service '${serviceName}' (from manifest.json)`);
41
+ try {
42
+ const refreshed = await RuntimeUtils_1.default.refreshProject(options.projectPath, { ignoreErrors: options.ignoreErrors });
43
+ if (options.json) {
44
+ ConsoleUtils_1.default.json(refreshed);
45
+ }
46
+ if (!refreshed.success) {
47
+ process.exitCode = 1;
48
+ }
49
+ }
50
+ catch (error) {
51
+ // A compilation failure already listed its errors, only the outcome is left to report
52
+ const message = error instanceof Error ? error.message : String(error);
53
+ console.error(chalk_1.default.red(`Refresh failed: ${message}`));
54
+ if (options.json) {
55
+ ConsoleUtils_1.default.json({ success: false, serviceName, errors: [message], warnings: [] });
56
+ }
57
+ process.exitCode = 1;
58
+ }
13
59
  });
14
60
  }
15
61
  //# sourceMappingURL=refresh.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"refresh.js","sourceRoot":"","sources":["../../../src/commands/project/refresh.ts"],"names":[],"mappings":";;AAGA,0CASC;AAXD,qCAAyE;AAEzE,SAAgB,eAAe,CAAC,OAAgB;IAC5C,IAAA,8BAAqB,EAAC,OAAO;SACxB,OAAO,CAAC,SAAS,CAAC;SAClB,KAAK,CAAC,OAAO,CAAC;SACd,WAAW,CAAC,yEAAyE,CAAC,CAAC;SACvF,MAAM,CAAC,KAAK,EAAE,OAA+B,EAAE,EAAE;QAC9C,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,uDAAuD;IAC3D,CAAC,CAAC,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"refresh.js","sourceRoot":"","sources":["../../../src/commands/project/refresh.ts"],"names":[],"mappings":";;;;;AAOA,0CAkDC;AAxDD,kDAA0B;AAC1B,4EAAoD;AACpD,4EAAoD;AACpD,4EAAoD;AACpD,qCAAyE;AAEzE,SAAgB,eAAe,CAAC,OAAgB;IAC5C,IAAA,8BAAqB,EAAC,OAAO;SACxB,OAAO,CAAC,SAAS,CAAC;SAClB,KAAK,CAAC,OAAO,CAAC;SACd,WAAW,CAAC,yEAAyE,CAAC;SACtF,MAAM,CAAC,qBAAqB,EAAE,iDAAiD,EAAE,KAAK,CAAC;SACvF,MAAM,CAAC,QAAQ,EAAE,kCAAkC,CAAC;SACpD,WAAW,CAAC,OAAO,EAAE;;;;;;;;;CAS7B,CAAC,CAAC;SACM,MAAM,CAAC,KAAK,EAAE,OAA2E,EAAE,EAAE;QAE1F,8FAA8F;QAC9F,IAAI,WAAmB,CAAC;QACxB,IAAI,CAAC;YACD,WAAW,GAAG,MAAM,sBAAY,CAAC,qBAAqB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAChF,CAAC;QACD,MAAM,CAAC;YACH,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,MAAM,CAAC,iCAAiC,OAAO,CAAC,WAAW,oDAAoD,CAAC,CAAC,CAAC;YACtI,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QACD,sBAAY,CAAC,KAAK,CAAC,YAAY,WAAW,wBAAwB,CAAC,CAAC;QAEpE,IAAI,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,sBAAY,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;YACjH,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,sBAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACjC,CAAC;YACD,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;gBACrB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACzB,CAAC;QACL,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACX,sFAAsF;YACtF,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,mBAAmB,OAAO,EAAE,CAAC,CAAC,CAAC;YACvD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,sBAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;YACxF,CAAC;YACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACzB,CAAC;IACL,CAAC,CAAC,CAAC;AACX,CAAC"}
@@ -27,7 +27,10 @@ Examples:
27
27
  process.exitCode = 1;
28
28
  return;
29
29
  }
30
- await RuntimeUtils_1.default.removeProject(options.projectPath);
30
+ // False when there is no runtime to remove it from, or the user declined to start it
31
+ if (!await RuntimeUtils_1.default.removeProject(options.projectPath)) {
32
+ process.exitCode = 1;
33
+ }
31
34
  });
32
35
  }
33
36
  //# sourceMappingURL=remove.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../src/commands/project/remove.ts"],"names":[],"mappings":";;;;;AAOA,wCAuBC;AA7BD,kDAA0B;AAC1B,4EAAoD;AACpD,4EAAoD;AACpD,sEAA8C;AAC9C,qCAAyE;AAEzE,SAAgB,cAAc,CAAC,OAAgB;IAC3C,IAAA,8BAAqB,EAAC,OAAO;SACxB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,6DAA6D,CAAC;SAC1E,MAAM,CAAC,WAAW,EAAE,6BAA6B,EAAE,KAAK,CAAC;SACzD,WAAW,CAAC,OAAO,EAAE;;;;CAI7B,CAAC,CAAC;SACM,MAAM,CAAC,KAAK,EAAE,OAAkD,EAAE,EAAE;QAEjE,MAAM,WAAW,GAAG,mBAAS,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAEnE,mFAAmF;QACnF,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,sBAAY,CAAC,OAAO,CAAC,mBAAmB,WAAW,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC;YAC5G,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,MAAM,CAAC,sEAAsE,CAAC,CAAC,CAAC;YACpG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,MAAM,sBAAY,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../src/commands/project/remove.ts"],"names":[],"mappings":";;;;;AAOA,wCA0BC;AAhCD,kDAA0B;AAC1B,4EAAoD;AACpD,4EAAoD;AACpD,sEAA8C;AAC9C,qCAAyE;AAEzE,SAAgB,cAAc,CAAC,OAAgB;IAC3C,IAAA,8BAAqB,EAAC,OAAO;SACxB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,6DAA6D,CAAC;SAC1E,MAAM,CAAC,WAAW,EAAE,6BAA6B,EAAE,KAAK,CAAC;SACzD,WAAW,CAAC,OAAO,EAAE;;;;CAI7B,CAAC,CAAC;SACM,MAAM,CAAC,KAAK,EAAE,OAAkD,EAAE,EAAE;QAEjE,MAAM,WAAW,GAAG,mBAAS,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAEnE,mFAAmF;QACnF,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,sBAAY,CAAC,OAAO,CAAC,mBAAmB,WAAW,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC;YAC5G,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,MAAM,CAAC,sEAAsE,CAAC,CAAC,CAAC;YACpG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,qFAAqF;QACrF,IAAI,CAAC,MAAM,sBAAY,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YACzD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACzB,CAAC;IACL,CAAC,CAAC,CAAC;AACX,CAAC"}
@@ -11,14 +11,18 @@ const shared_1 = require("./shared");
11
11
  function registerStart(project) {
12
12
  (0, shared_1.withProjectPathOption)(project
13
13
  .command('start')
14
- .description('Build, deploy and start the local project')
15
- .option('-q, --quiet', 'do not open the project in the browser after starting', false)
14
+ .description('Build, deploy and start the local project (proposes to install/start the runtime when needed)')
15
+ .option('--no-open', 'do not open the project in the browser once started')
16
16
  //TODO expose runtime start args here ?
17
17
  //TODO --watch (auto apply chnages with patch without restarting the runtime, for development purposes)
18
18
  )
19
19
  .action(async (options) => {
20
- await RuntimeUtils_1.default.startProject(options.projectPath);
21
- if (!options.quiet) {
20
+ // A declined runtime or a failed deployment leaves nothing to open
21
+ if (!await RuntimeUtils_1.default.startProject(options.projectPath)) {
22
+ process.exitCode = 1;
23
+ return;
24
+ }
25
+ if (options.open) {
22
26
  const basePath = await RuntimeUtils_1.default.getRuntimeBaseUrl();
23
27
  const serviceName = await ProjectUtils_1.default.getProjectServiceName(options.projectPath);
24
28
  OsUtils_1.OsUtils.openInBrowser(`${basePath}/${serviceName}`);
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/commands/project/start.ts"],"names":[],"mappings":";;;;;AAMA,sCAiBC;AAtBD,4EAAoD;AACpD,4EAAoD;AACpD,iDAA8C;AAC9C,qCAAyE;AAEzE,SAAgB,aAAa,CAAC,OAAgB;IAC1C,IAAA,8BAAqB,EAAC,OAAO;SACxB,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,2CAA2C,CAAC;SACxD,MAAM,CAAC,aAAa,EAAE,uDAAuD,EAAE,KAAK,CAAC;IACtF,uCAAuC;IACvC,uGAAuG;KAC1G;SACI,MAAM,CAAC,KAAK,EAAE,OAAoD,EAAE,EAAE;QACnE,MAAM,sBAAY,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAErD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,MAAM,sBAAY,CAAC,iBAAiB,EAAE,CAAC;YACxD,MAAM,WAAW,GAAG,MAAM,sBAAY,CAAC,qBAAqB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAClF,iBAAO,CAAC,aAAa,CAAC,GAAG,QAAQ,IAAI,WAAW,EAAE,CAAC,CAAC;QACxD,CAAC;IACL,CAAC,CAAC,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/commands/project/start.ts"],"names":[],"mappings":";;;;;AAMA,sCAsBC;AA3BD,4EAAoD;AACpD,4EAAoD;AACpD,iDAA8C;AAC9C,qCAAyE;AAEzE,SAAgB,aAAa,CAAC,OAAgB;IAC1C,IAAA,8BAAqB,EAAC,OAAO;SACxB,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,+FAA+F,CAAC;SAC5G,MAAM,CAAC,WAAW,EAAE,qDAAqD,CAAC;IAC3E,uCAAuC;IACvC,uGAAuG;KAC1G;SACI,MAAM,CAAC,KAAK,EAAE,OAAmD,EAAE,EAAE;QAElE,mEAAmE;QACnE,IAAI,CAAC,MAAM,sBAAY,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YACxD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,MAAM,sBAAY,CAAC,iBAAiB,EAAE,CAAC;YACxD,MAAM,WAAW,GAAG,MAAM,sBAAY,CAAC,qBAAqB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAClF,iBAAO,CAAC,aAAa,CAAC,GAAG,QAAQ,IAAI,WAAW,EAAE,CAAC,CAAC;QACxD,CAAC;IACL,CAAC,CAAC,CAAC;AACX,CAAC"}
@@ -4,17 +4,55 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.registerTest = registerTest;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const ConsoleUtils_1 = __importDefault(require("../../utils/ConsoleUtils"));
7
9
  const RuntimeUtils_1 = __importDefault(require("../../utils/RuntimeUtils"));
8
10
  const shared_1 = require("./shared");
9
11
  function registerTest(project) {
10
12
  (0, shared_1.withProjectPathOption)(project
11
13
  .command('test')
12
- .description('Run tests for the project')
14
+ .description('Run tests for the project (proposes to install the runtime when it is missing)')
13
15
  .option('-f, --file-filter <pattern>', 'filter test files by pattern')
14
16
  .option('-t, --name-filter <pattern>', 'filter tests by name pattern')
15
- .option('--in-place', 'if compilation is needed, compile and modify files directly in the project folder', false))
17
+ .option('--in-place', 'if compilation is needed, compile and modify files directly in the project folder', false)
18
+ .option('--json', 'output the result in JSON format')
19
+ .addHelpText('after', `
20
+ Examples:
21
+ $ cn project test every test, the report goes to test-report.json
22
+ $ cn project test -t "create*" the tests whose name matches
23
+ $ cn project test --json the summary and each test as JSON, exit code 1 when one fails
24
+ `))
16
25
  .action(async (options) => {
17
- await RuntimeUtils_1.default.testProject(options.projectPath, options.fileFilter, options.nameFilter, options.inPlace);
26
+ // Undefined when the user declined to install the runtime the tests run on
27
+ const result = await RuntimeUtils_1.default.testProject(options.projectPath, options.fileFilter, options.nameFilter, options.inPlace);
28
+ if (result === undefined) {
29
+ process.exitCode = 1;
30
+ return;
31
+ }
32
+ const report = result.report;
33
+ if (options.json) {
34
+ ConsoleUtils_1.default.json({
35
+ success: report?.Success ?? false,
36
+ successCount: report?.SuccessCount ?? 0,
37
+ failureCount: report?.FailureCount ?? 0,
38
+ reportPath: result.reportPath,
39
+ tests: (report?.Tests ?? []).map(test => ({ name: test.Name, success: test.Success, errors: test.Errors }))
40
+ });
41
+ }
42
+ else if (report === undefined) {
43
+ ConsoleUtils_1.default.warn(`No test report was produced.`);
44
+ }
45
+ else {
46
+ const summary = `${report.SuccessCount + report.FailureCount} test(s): ${report.SuccessCount} passed, ${report.FailureCount} failed (report: ${result.reportPath})`;
47
+ console.log(report.Success ? chalk_1.default.green(summary) : chalk_1.default.red(summary));
48
+ for (const test of report.Tests.filter(test => !test.Success)) {
49
+ console.error(chalk_1.default.red(` ✗ ${test.Name}${test.Errors.length > 0 ? `: ${test.Errors.join('; ')}` : ''}`));
50
+ }
51
+ }
52
+ // Failing tests are a failed command, for the CI and the scripts
53
+ if (report === undefined || !report.Success) {
54
+ process.exitCode = 1;
55
+ }
18
56
  });
19
57
  }
20
58
  //# sourceMappingURL=test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../../../src/commands/project/test.ts"],"names":[],"mappings":";;;;;AAIA,oCAUC;AAbD,4EAAoD;AACpD,qCAAyE;AAEzE,SAAgB,YAAY,CAAC,OAAgB;IACzC,IAAA,8BAAqB,EAAC,OAAO;SACxB,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,2BAA2B,CAAC;SACxC,MAAM,CAAC,6BAA6B,EAAE,8BAA8B,CAAC;SACrE,MAAM,CAAC,6BAA6B,EAAE,8BAA8B,CAAC;SACrE,MAAM,CAAC,YAAY,EAAE,mFAAmF,EAAE,KAAK,CAAC,CAAC;SACjH,MAAM,CAAC,KAAK,EAAE,OAAiG,EAAE,EAAE;QAChH,MAAM,sBAAY,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACjH,CAAC,CAAC,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../../../src/commands/project/test.ts"],"names":[],"mappings":";;;;;AAMA,oCAiDC;AAtDD,kDAA0B;AAC1B,4EAAoD;AACpD,4EAAoD;AACpD,qCAAyE;AAEzE,SAAgB,YAAY,CAAC,OAAgB;IACzC,IAAA,8BAAqB,EAAC,OAAO;SACxB,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,gFAAgF,CAAC;SAC7F,MAAM,CAAC,6BAA6B,EAAE,8BAA8B,CAAC;SACrE,MAAM,CAAC,6BAA6B,EAAE,8BAA8B,CAAC;SACrE,MAAM,CAAC,YAAY,EAAE,mFAAmF,EAAE,KAAK,CAAC;SAChH,MAAM,CAAC,QAAQ,EAAE,kCAAkC,CAAC;SACpD,WAAW,CAAC,OAAO,EAAE;;;;;CAK7B,CAAC,CAAC;SACM,MAAM,CAAC,KAAK,EAAE,OAAiH,EAAE,EAAE;QAEhI,2EAA2E;QAC3E,MAAM,MAAM,GAAG,MAAM,sBAAY,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5H,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC7B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,sBAAY,CAAC,IAAI,CAAC;gBACd,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,KAAK;gBACjC,YAAY,EAAE,MAAM,EAAE,YAAY,IAAI,CAAC;gBACvC,YAAY,EAAE,MAAM,EAAE,YAAY,IAAI,CAAC;gBACvC,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,KAAK,EAAE,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;aAC9G,CAAC,CAAC;QACP,CAAC;aACI,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAC5B,sBAAY,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QACtD,CAAC;aACI,CAAC;YACF,MAAM,OAAO,GAAG,GAAG,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,aAAa,MAAM,CAAC,YAAY,YAAY,MAAM,CAAC,YAAY,oBAAoB,MAAM,CAAC,UAAU,GAAG,CAAC;YACpK,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,eAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;YACxE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC5D,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC/G,CAAC;QACL,CAAC;QAED,iEAAiE;QACjE,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC1C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACzB,CAAC;IACL,CAAC,CAAC,CAAC;AACX,CAAC"}
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.registerReactCommands = registerReactCommands;
4
- const serve_1 = require("./serve");
5
4
  const build_1 = require("./build");
6
5
  const dev_1 = require("./dev");
7
6
  const clean_1 = require("./clean");
@@ -9,18 +8,16 @@ const package_1 = require("./package");
9
8
  function registerReactCommands(program) {
10
9
  const react = program
11
10
  .command('react')
12
- .description('Work on the React apps of the project: dev server with hot reload, production build, preview of a build, desktop installer, cleanup of the staging folders')
11
+ .description('Work on the React apps of the project: dev server with hot reload, production build, desktop installer, cleanup of the staging folders')
13
12
  .addHelpText('after', `
14
13
  Examples:
15
14
  $ cn react dev dev server of the only app, opens the browser
16
15
  $ cn react build Dashboard production bundle in .codenotch/Dashboard-dist
17
- $ cn react preview Dashboard serve that bundle locally
18
16
  $ cn react package Dashboard desktop installer for this OS (Tauri, needs Rust)
19
17
  $ cn react clean delete every staging and bundle folder
20
18
  `);
21
19
  (0, dev_1.registerDev)(react);
22
20
  (0, build_1.registerBuild)(react);
23
- (0, serve_1.registerServe)(react);
24
21
  (0, package_1.registerPackage)(react);
25
22
  (0, clean_1.registerClean)(react);
26
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/react/index.ts"],"names":[],"mappings":";;AAOA,sDAkBC;AAxBD,mCAAwC;AACxC,mCAAwC;AACxC,+BAAoC;AACpC,mCAAwC;AACxC,uCAA4C;AAE5C,SAAgB,qBAAqB,CAAC,OAAgB;IAClD,MAAM,KAAK,GAAG,OAAO;SAChB,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,4JAA4J,CAAC;SACzK,WAAW,CAAC,OAAO,EAAE;;;;;;;CAO7B,CAAC,CAAC;IAEC,IAAA,iBAAW,EAAC,KAAK,CAAC,CAAC;IACnB,IAAA,qBAAa,EAAC,KAAK,CAAC,CAAC;IACrB,IAAA,qBAAa,EAAC,KAAK,CAAC,CAAC;IACrB,IAAA,yBAAe,EAAC,KAAK,CAAC,CAAC;IACvB,IAAA,qBAAa,EAAC,KAAK,CAAC,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/react/index.ts"],"names":[],"mappings":";;AAMA,sDAgBC;AArBD,mCAAwC;AACxC,+BAAoC;AACpC,mCAAwC;AACxC,uCAA4C;AAE5C,SAAgB,qBAAqB,CAAC,OAAgB;IAClD,MAAM,KAAK,GAAG,OAAO;SAChB,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,wIAAwI,CAAC;SACrJ,WAAW,CAAC,OAAO,EAAE;;;;;;CAM7B,CAAC,CAAC;IAEC,IAAA,iBAAW,EAAC,KAAK,CAAC,CAAC;IACnB,IAAA,qBAAa,EAAC,KAAK,CAAC,CAAC;IACrB,IAAA,yBAAe,EAAC,KAAK,CAAC,CAAC;IACvB,IAAA,qBAAa,EAAC,KAAK,CAAC,CAAC;AACzB,CAAC"}