@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
@@ -24,6 +24,11 @@ Examples:
24
24
  process.exitCode = 1;
25
25
  return;
26
26
  }
27
+ // The data cannot be erased under a running runtime (open files, inconsistent state): stop it first
28
+ if (await RuntimeUtils_1.default.isRuntimeRunning()) {
29
+ ConsoleUtils_1.default.log(chalk_1.default.blue(`Stopping the runtime before erasing its data...`));
30
+ await RuntimeUtils_1.default.stopRuntime();
31
+ }
27
32
  await RuntimeUtils_1.default.clearRuntime();
28
33
  });
29
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"clear.js","sourceRoot":"","sources":["../../../src/commands/runtime/clear.ts"],"names":[],"mappings":";;;;;AAKA,sCAqBC;AAzBD,kDAA0B;AAC1B,4EAAoD;AACpD,4EAAoD;AAEpD,SAAgB,aAAa,CAAC,OAAgB;IAC1C,OAAO;SACF,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,sGAAsG,CAAC;SACnH,MAAM,CAAC,WAAW,EAAE,6BAA6B,EAAE,KAAK,CAAC;SACzD,WAAW,CAAC,OAAO,EAAE;;;;CAI7B,CAAC;SACO,MAAM,CAAC,KAAK,EAAE,OAAyB,EAAE,EAAE;QAExC,qGAAqG;QACrG,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,sBAAY,CAAC,OAAO,CAAC,oDAAoD,EAAE,KAAK,CAAC,EAAE,CAAC;YAC3G,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,MAAM,CAAC,qEAAqE,CAAC,CAAC,CAAC;YACnG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,MAAM,sBAAY,CAAC,YAAY,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"clear.js","sourceRoot":"","sources":["../../../src/commands/runtime/clear.ts"],"names":[],"mappings":";;;;;AAKA,sCA2BC;AA/BD,kDAA0B;AAC1B,4EAAoD;AACpD,4EAAoD;AAEpD,SAAgB,aAAa,CAAC,OAAgB;IAC1C,OAAO;SACF,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,sGAAsG,CAAC;SACnH,MAAM,CAAC,WAAW,EAAE,6BAA6B,EAAE,KAAK,CAAC;SACzD,WAAW,CAAC,OAAO,EAAE;;;;CAI7B,CAAC;SACO,MAAM,CAAC,KAAK,EAAE,OAAyB,EAAE,EAAE;QAExC,qGAAqG;QACrG,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,sBAAY,CAAC,OAAO,CAAC,oDAAoD,EAAE,KAAK,CAAC,EAAE,CAAC;YAC3G,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,MAAM,CAAC,qEAAqE,CAAC,CAAC,CAAC;YACnG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,oGAAoG;QACpG,IAAI,MAAM,sBAAY,CAAC,gBAAgB,EAAE,EAAE,CAAC;YACxC,sBAAY,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC,CAAC;YAChF,MAAM,sBAAY,CAAC,WAAW,EAAE,CAAC;QACrC,CAAC;QAED,MAAM,sBAAY,CAAC,YAAY,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;AACX,CAAC"}
@@ -28,7 +28,7 @@ function registerInfo(runtime) {
28
28
  return;
29
29
  }
30
30
  if (isInstalled === false) {
31
- console.log(chalk_1.default.yellow(`Codenotch runtime is not installed. Use "codenotch runtime install" to install the latest version.`));
31
+ console.error(chalk_1.default.yellow(`Codenotch runtime is not installed. Use "codenotch runtime install" to install the latest version.`));
32
32
  return;
33
33
  }
34
34
  const version = await RuntimeUtils_1.default.getRuntimeVersion(); // Requires running the runtime which is a bit slow
@@ -1 +1 @@
1
- {"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/commands/runtime/info.ts"],"names":[],"mappings":";;;;;AAIA,oCA0CC;AA7CD,kDAA0B;AAC1B,4EAAoD;AAEpD,SAAgB,YAAY,CAAC,OAAgB;IACzC,OAAO;SACF,OAAO,CAAC,MAAM,CAAC;SACf,KAAK,CAAC,QAAQ,CAAC;SACf,WAAW,CAAC,0DAA0D,CAAC;SACvE,MAAM,CAAC,QAAQ,EAAE,kCAAkC,CAAC;SACpD,MAAM,CAAC,KAAK,EAAE,OAA0B,EAAE,EAAE;QAEzC,MAAM,WAAW,GAAG,MAAM,sBAAY,CAAC,kBAAkB,EAAE,CAAC;QAC5D,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;gBAClD,OAAO;YACX,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,sBAAY,CAAC,iBAAiB,EAAE,CAAC;YACvD,MAAM,WAAW,GAAG,sBAAY,CAAC,wBAAwB,EAAE,CAAC;YAC5D,MAAM,OAAO,GAAG,MAAM,sBAAY,CAAC,iBAAiB,EAAE,CAAC;YACvD,MAAM,SAAS,GAAG,MAAM,sBAAY,CAAC,gBAAgB,EAAE,CAAC;YACxD,MAAM,QAAQ,GAAG,MAAM,sBAAY,CAAC,kBAAkB,EAAE,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;YACnI,OAAO;QACX,CAAC;QAED,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,oGAAoG,CAAC,CAAC,CAAC;YAChI,OAAO;QACX,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,sBAAY,CAAC,iBAAiB,EAAE,CAAC,CAAC,mDAAmD;QAC3G,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,sBAAY,CAAC,wBAAwB,EAAE,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,sCAAsC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC9E,MAAM,OAAO,GAAG,MAAM,sBAAY,CAAC,iBAAiB,EAAE,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,QAAQ,OAAO,EAAE,CAAC,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,MAAM,sBAAY,CAAC,gBAAgB,EAAE,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,WAAW,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;QAC7E,MAAM,QAAQ,GAAG,MAAM,sBAAY,CAAC,kBAAkB,EAAE,CAAC;QACzD,IAAI,QAAQ,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAC,CAAC;QACvD,CAAC;QAED,8EAA8E;IAClF,CAAC,CAAC,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/commands/runtime/info.ts"],"names":[],"mappings":";;;;;AAIA,oCA0CC;AA7CD,kDAA0B;AAC1B,4EAAoD;AAEpD,SAAgB,YAAY,CAAC,OAAgB;IACzC,OAAO;SACF,OAAO,CAAC,MAAM,CAAC;SACf,KAAK,CAAC,QAAQ,CAAC;SACf,WAAW,CAAC,0DAA0D,CAAC;SACvE,MAAM,CAAC,QAAQ,EAAE,kCAAkC,CAAC;SACpD,MAAM,CAAC,KAAK,EAAE,OAA0B,EAAE,EAAE;QAEzC,MAAM,WAAW,GAAG,MAAM,sBAAY,CAAC,kBAAkB,EAAE,CAAC;QAC5D,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;gBAClD,OAAO;YACX,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,sBAAY,CAAC,iBAAiB,EAAE,CAAC;YACvD,MAAM,WAAW,GAAG,sBAAY,CAAC,wBAAwB,EAAE,CAAC;YAC5D,MAAM,OAAO,GAAG,MAAM,sBAAY,CAAC,iBAAiB,EAAE,CAAC;YACvD,MAAM,SAAS,GAAG,MAAM,sBAAY,CAAC,gBAAgB,EAAE,CAAC;YACxD,MAAM,QAAQ,GAAG,MAAM,sBAAY,CAAC,kBAAkB,EAAE,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;YACnI,OAAO;QACX,CAAC;QAED,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,MAAM,CAAC,oGAAoG,CAAC,CAAC,CAAC;YAClI,OAAO;QACX,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,sBAAY,CAAC,iBAAiB,EAAE,CAAC,CAAC,mDAAmD;QAC3G,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,sBAAY,CAAC,wBAAwB,EAAE,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,sCAAsC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC9E,MAAM,OAAO,GAAG,MAAM,sBAAY,CAAC,iBAAiB,EAAE,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,QAAQ,OAAO,EAAE,CAAC,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,MAAM,sBAAY,CAAC,gBAAgB,EAAE,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,WAAW,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;QAC7E,MAAM,QAAQ,GAAG,MAAM,sBAAY,CAAC,kBAAkB,EAAE,CAAC;QACzD,IAAI,QAAQ,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAC,CAAC;QACvD,CAAC;QAED,8EAA8E;IAClF,CAAC,CAAC,CAAC;AACX,CAAC"}
@@ -4,17 +4,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.registerPortal = registerPortal;
7
- const chalk_1 = __importDefault(require("chalk"));
8
7
  const RuntimeUtils_1 = __importDefault(require("../../utils/RuntimeUtils"));
9
8
  const OsUtils_1 = require("../../utils/OsUtils");
10
9
  // Root-level command, but it lives here because it targets the runtime portal
11
10
  function registerPortal(program) {
12
11
  program
13
12
  .command('portal')
14
- .description('Open the Codenotch portal in the default browser')
13
+ .description('Open the Codenotch portal in the default browser (proposes to install/start the runtime when needed)')
15
14
  .action(async () => {
16
- if ((await RuntimeUtils_1.default.isRuntimeRunning()) === false) {
17
- console.log(chalk_1.default.yellow(`Codenotch runtime is not running`));
15
+ // The portal is served by the runtime: propose to install and/or start it rather than giving up
16
+ if (!await RuntimeUtils_1.default.ensureRuntimeIsRunning()) {
17
+ process.exitCode = 1;
18
18
  return;
19
19
  }
20
20
  const basePath = await RuntimeUtils_1.default.getRuntimeBaseUrl();
@@ -1 +1 @@
1
- {"version":3,"file":"portal.js","sourceRoot":"","sources":["../../../src/commands/runtime/portal.ts"],"names":[],"mappings":";;;;;AAMA,wCAaC;AAlBD,kDAA0B;AAC1B,4EAAoD;AACpD,iDAA8C;AAE9C,8EAA8E;AAC9E,SAAgB,cAAc,CAAC,OAAgB;IAC3C,OAAO;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,kDAAkD,CAAC;SAC/D,MAAM,CAAC,KAAK,IAAI,EAAE;QAEf,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,iBAAO,CAAC,aAAa,CAAC,GAAG,QAAQ,SAAS,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"portal.js","sourceRoot":"","sources":["../../../src/commands/runtime/portal.ts"],"names":[],"mappings":";;;;;AAKA,wCAcC;AAlBD,4EAAoD;AACpD,iDAA8C;AAE9C,8EAA8E;AAC9E,SAAgB,cAAc,CAAC,OAAgB;IAC3C,OAAO;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,sGAAsG,CAAC;SACnH,MAAM,CAAC,KAAK,IAAI,EAAE;QAEf,gGAAgG;QAChG,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,iBAAO,CAAC,aAAa,CAAC,GAAG,QAAQ,SAAS,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACX,CAAC"}
@@ -12,8 +12,17 @@ function registerStart(runtime) {
12
12
  .option('-p, --port <port>', 'port used by the runtime (default 5005)', (value) => parseInt(value, 10), 5005)
13
13
  .option('-a, --attach', 'attach to the runtime process (default false)', false)
14
14
  .option('-d, --data-path <path>', 'path to the runtime data directory')
15
- .description('Start the Codenotch runtime')
15
+ .description('Start the Codenotch runtime (proposes to install it first when it is missing)')
16
16
  .action(async (options) => {
17
+ if (await RuntimeUtils_1.default.isRuntimeRunning()) {
18
+ console.log(chalk_1.default.green(`Codenotch runtime is already running at ${await RuntimeUtils_1.default.getRuntimeBaseUrl()}`));
19
+ return;
20
+ }
21
+ // Nothing to start without a runtime: propose to install it (accepted by default, so scripts go through)
22
+ if (!await RuntimeUtils_1.default.ensureRuntimeInstalled()) {
23
+ process.exitCode = 1;
24
+ return;
25
+ }
17
26
  await RuntimeUtils_1.default.startRuntime(options);
18
27
  console.log(chalk_1.default.green(`Codenotch runtime started successfully`));
19
28
  });
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/commands/runtime/start.ts"],"names":[],"mappings":";;;;;AAIA,sCAWC;AAdD,kDAA0B;AAC1B,4EAAoD;AAEpD,SAAgB,aAAa,CAAC,OAAgB;IAC1C,OAAO;SACF,OAAO,CAAC,OAAO,CAAC;SAChB,MAAM,CAAC,mBAAmB,EAAE,yCAAyC,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC;SACpH,MAAM,CAAC,cAAc,EAAE,+CAA+C,EAAE,KAAK,CAAC;SAC9E,MAAM,CAAC,wBAAwB,EAAE,oCAAoC,CAAC;SACtE,WAAW,CAAC,6BAA6B,CAAC;SAC1C,MAAM,CAAC,KAAK,EAAE,OAA6D,EAAE,EAAE;QAC5E,MAAM,sBAAY,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/commands/runtime/start.ts"],"names":[],"mappings":";;;;;AAIA,sCAuBC;AA1BD,kDAA0B;AAC1B,4EAAoD;AAEpD,SAAgB,aAAa,CAAC,OAAgB;IAC1C,OAAO;SACF,OAAO,CAAC,OAAO,CAAC;SAChB,MAAM,CAAC,mBAAmB,EAAE,yCAAyC,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC;SACpH,MAAM,CAAC,cAAc,EAAE,+CAA+C,EAAE,KAAK,CAAC;SAC9E,MAAM,CAAC,wBAAwB,EAAE,oCAAoC,CAAC;SACtE,WAAW,CAAC,+EAA+E,CAAC;SAC5F,MAAM,CAAC,KAAK,EAAE,OAA6D,EAAE,EAAE;QAE5E,IAAI,MAAM,sBAAY,CAAC,gBAAgB,EAAE,EAAE,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,2CAA2C,MAAM,sBAAY,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC;YAC9G,OAAO;QACX,CAAC;QAED,yGAAyG;QACzG,IAAI,CAAC,MAAM,sBAAY,CAAC,sBAAsB,EAAE,EAAE,CAAC;YAC/C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,MAAM,sBAAY,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACX,CAAC"}
@@ -11,6 +11,11 @@ function registerStop(runtime) {
11
11
  .command('stop')
12
12
  .description('Stop the Codenotch runtime')
13
13
  .action(async () => {
14
+ // Stopping what does not run is not an error, but claiming a success would be a lie
15
+ if (!await RuntimeUtils_1.default.isRuntimeRunning()) {
16
+ console.error(chalk_1.default.yellow(`Codenotch runtime is not running`));
17
+ return;
18
+ }
14
19
  await RuntimeUtils_1.default.stopRuntime();
15
20
  console.log(chalk_1.default.green(`Codenotch runtime stopped successfully`));
16
21
  });
@@ -1 +1 @@
1
- {"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../src/commands/runtime/stop.ts"],"names":[],"mappings":";;;;;AAIA,oCAQC;AAXD,kDAA0B;AAC1B,4EAAoD;AAEpD,SAAgB,YAAY,CAAC,OAAgB;IACzC,OAAO;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,4BAA4B,CAAC;SACzC,MAAM,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,sBAAY,CAAC,WAAW,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../src/commands/runtime/stop.ts"],"names":[],"mappings":";;;;;AAIA,oCAeC;AAlBD,kDAA0B;AAC1B,4EAAoD;AAEpD,SAAgB,YAAY,CAAC,OAAgB;IACzC,OAAO;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,4BAA4B,CAAC;SACzC,MAAM,CAAC,KAAK,IAAI,EAAE;QAEf,oFAAoF;QACpF,IAAI,CAAC,MAAM,sBAAY,CAAC,gBAAgB,EAAE,EAAE,CAAC;YACzC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAAC,CAAC;YAChE,OAAO;QACX,CAAC;QAED,MAAM,sBAAY,CAAC,WAAW,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACX,CAAC"}
@@ -9,9 +9,10 @@ function registerUpdate(runtime) {
9
9
  runtime
10
10
  .command('update')
11
11
  .alias('install')
12
- .description('Check for Codenotch runtime updates and install if available')
13
- .action(async () => {
14
- await RuntimeUtils_1.default.installLatestRuntime();
12
+ .description('Install the latest Codenotch runtime release, or update the installed runtime to it when it is newer')
13
+ .option('-f, --force', 'reinstall even when the installed runtime already is the latest release', false)
14
+ .action(async (options) => {
15
+ await RuntimeUtils_1.default.installLatestRuntime({ force: options.force });
15
16
  });
16
17
  }
17
18
  //# sourceMappingURL=update.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/runtime/update.ts"],"names":[],"mappings":";;;;;AAGA,wCAQC;AAVD,4EAAoD;AAEpD,SAAgB,cAAc,CAAC,OAAgB;IAC3C,OAAO;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,KAAK,CAAC,SAAS,CAAC;SAChB,WAAW,CAAC,8DAA8D,CAAC;SAC3E,MAAM,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,sBAAY,CAAC,oBAAoB,EAAE,CAAC;IAC9C,CAAC,CAAC,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/runtime/update.ts"],"names":[],"mappings":";;;;;AAGA,wCASC;AAXD,4EAAoD;AAEpD,SAAgB,cAAc,CAAC,OAAgB;IAC3C,OAAO;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,KAAK,CAAC,SAAS,CAAC;SAChB,WAAW,CAAC,sGAAsG,CAAC;SACnH,MAAM,CAAC,aAAa,EAAE,yEAAyE,EAAE,KAAK,CAAC;SACvG,MAAM,CAAC,KAAK,EAAE,OAA2B,EAAE,EAAE;QAC1C,MAAM,sBAAY,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;AACX,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * 'cn completion <shell>': prints a completion script built from the command tree, so it always
4
+ * matches the installed CLI. The script holds one table, "command path" -> "words to propose",
5
+ * and looks the typed path up: no shell has to know anything about commander.
6
+ */
7
+ export declare function registerCompletion(program: Command): void;
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerCompletion = registerCompletion;
4
+ const SHELLS = ['bash', 'zsh', 'powershell'];
5
+ /** The names the CLI is installed under, both completed */
6
+ const COMMAND_NAMES = ['cn', 'codenotch-cli'];
7
+ /**
8
+ * 'cn completion <shell>': prints a completion script built from the command tree, so it always
9
+ * matches the installed CLI. The script holds one table, "command path" -> "words to propose",
10
+ * and looks the typed path up: no shell has to know anything about commander.
11
+ */
12
+ function registerCompletion(program) {
13
+ program
14
+ .command('completion')
15
+ .description('Print the shell completion script of the CLI (bash, zsh or powershell)')
16
+ .argument('<shell>', `shell to print the script for: ${SHELLS.join(', ')}`)
17
+ .addHelpText('after', `
18
+ Install it once, then open a new terminal:
19
+ bash echo 'eval "$(cn completion bash)"' >> ~/.bashrc
20
+ zsh echo 'eval "$(cn completion zsh)"' >> ~/.zshrc
21
+ powershell Add-Content $PROFILE 'cn completion powershell | Out-String | Invoke-Expression'
22
+ `)
23
+ .action((shell) => {
24
+ if (!isShell(shell)) {
25
+ throw new Error(`Unknown shell '${shell}', expected one of: ${SHELLS.join(', ')}.`);
26
+ }
27
+ const table = buildTable(program);
28
+ console.log(shell === 'bash' ? bashScript(table) : shell === 'zsh' ? zshScript(table) : powershellScript(table));
29
+ });
30
+ }
31
+ function isShell(value) {
32
+ return SHELLS.includes(value);
33
+ }
34
+ /**
35
+ * Every command path (aliases included) with the words it accepts next: its subcommands, its
36
+ * options, and the global options that are valid anywhere. Keyed "cn <path>" for the lookup.
37
+ */
38
+ function buildTable(program) {
39
+ const table = new Map();
40
+ const globalOptions = optionWords(program);
41
+ const collect = (command, path) => {
42
+ const subcommands = command.commands.filter(sub => !sub._hidden);
43
+ const words = [];
44
+ for (const sub of subcommands) {
45
+ words.push(sub.name(), ...sub.aliases());
46
+ }
47
+ if (subcommands.length > 0) {
48
+ words.push('help');
49
+ }
50
+ words.push(...(command === program ? [] : optionWords(command)), ...globalOptions, '--help', '-h');
51
+ table.set(['cn', ...path].join(' '), [...new Set(words)]);
52
+ for (const sub of subcommands) {
53
+ for (const name of [sub.name(), ...sub.aliases()]) {
54
+ collect(sub, [...path, name]);
55
+ }
56
+ }
57
+ };
58
+ collect(program, []);
59
+ return table;
60
+ }
61
+ function optionWords(command) {
62
+ const words = [];
63
+ for (const option of command.options) {
64
+ if (option.hidden) {
65
+ continue;
66
+ }
67
+ if (option.long) {
68
+ words.push(option.long);
69
+ }
70
+ if (option.short) {
71
+ words.push(option.short);
72
+ }
73
+ }
74
+ return words;
75
+ }
76
+ function bashScript(table) {
77
+ const cases = [...table.entries()].map(([key, words]) => ` "${key}") candidates="${words.join(' ')}" ;;`).join('\n');
78
+ return `# Completion of the Codenotch CLI, generated by 'cn completion bash'
79
+ _cn_completion() {
80
+ local cur="\${COMP_WORDS[COMP_CWORD]}"
81
+ local path="cn" word i
82
+ for ((i = 1; i < COMP_CWORD; i++)); do
83
+ word="\${COMP_WORDS[i]}"
84
+ case "$word" in -*) continue ;; esac
85
+ path="$path $word"
86
+ done
87
+ local candidates=""
88
+ case "$path" in
89
+ ${cases}
90
+ esac
91
+ COMPREPLY=( $(compgen -W "$candidates" -- "$cur") )
92
+ }
93
+ ${COMMAND_NAMES.map(name => `complete -o default -F _cn_completion ${name}`).join('\n')}
94
+ `;
95
+ }
96
+ function zshScript(table) {
97
+ const cases = [...table.entries()].map(([key, words]) => ` "${key}") candidates=(${words.join(' ')}) ;;`).join('\n');
98
+ return `#compdef ${COMMAND_NAMES.join(' ')}
99
+ # Completion of the Codenotch CLI, generated by 'cn completion zsh'
100
+ _cn_completion() {
101
+ local -a candidates
102
+ local path="cn" word
103
+ for word in "\${(@)words[2,CURRENT-1]}"; do
104
+ [[ "$word" == -* ]] && continue
105
+ path="$path $word"
106
+ done
107
+ case "$path" in
108
+ ${cases}
109
+ esac
110
+ if (( \${#candidates} )); then
111
+ compadd -- "\${candidates[@]}"
112
+ else
113
+ _files
114
+ fi
115
+ }
116
+ (( \${+functions[compdef]} )) || { autoload -Uz compinit && compinit; }
117
+ compdef _cn_completion ${COMMAND_NAMES.join(' ')}
118
+ `;
119
+ }
120
+ function powershellScript(table) {
121
+ const entries = [...table.entries()].map(([key, words]) => ` '${key}' = @(${words.map(word => `'${word}'`).join(', ')})`).join('\n');
122
+ return `# Completion of the Codenotch CLI, generated by 'cn completion powershell'
123
+ $cnCompletion = {
124
+ param($wordToComplete, $commandAst, $cursorPosition)
125
+ $table = @{
126
+ ${entries}
127
+ }
128
+ # The words typed before the one being completed, options left aside
129
+ $path = @('cn')
130
+ foreach ($element in ($commandAst.CommandElements | Select-Object -Skip 1)) {
131
+ if ($element.Extent.EndOffset -ge $cursorPosition) { break }
132
+ $word = $element.ToString()
133
+ if ($word.StartsWith('-')) { continue }
134
+ $path += $word
135
+ }
136
+ $candidates = $table[($path -join ' ')]
137
+ if ($null -eq $candidates) { return }
138
+ $candidates | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
139
+ [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_)
140
+ }
141
+ }
142
+ ${COMMAND_NAMES.map(name => `Register-ArgumentCompleter -Native -CommandName ${name} -ScriptBlock $cnCompletion`).join('\n')}
143
+ `;
144
+ }
145
+ //# sourceMappingURL=completion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion.js","sourceRoot":"","sources":["../../../src/commands/system/completion.ts"],"names":[],"mappings":"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"}
@@ -4,10 +4,12 @@ exports.registerSystemCommands = registerSystemCommands;
4
4
  const info_1 = require("./info");
5
5
  const read_1 = require("./read");
6
6
  const docs_1 = require("./docs");
7
+ const completion_1 = require("./completion");
7
8
  // Root-level commands that are not tied to a specific project or the runtime
8
9
  function registerSystemCommands(program) {
9
10
  (0, info_1.registerInfo)(program);
10
11
  (0, read_1.registerRead)(program);
11
12
  (0, docs_1.registerDocs)(program);
13
+ (0, completion_1.registerCompletion)(program);
12
14
  }
13
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/system/index.ts"],"names":[],"mappings":";;AAMA,wDAIC;AATD,iCAAsC;AACtC,iCAAsC;AACtC,iCAAsC;AAEtC,6EAA6E;AAC7E,SAAgB,sBAAsB,CAAC,OAAgB;IACnD,IAAA,mBAAY,EAAC,OAAO,CAAC,CAAC;IACtB,IAAA,mBAAY,EAAC,OAAO,CAAC,CAAC;IACtB,IAAA,mBAAY,EAAC,OAAO,CAAC,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/system/index.ts"],"names":[],"mappings":";;AAOA,wDAKC;AAXD,iCAAsC;AACtC,iCAAsC;AACtC,iCAAsC;AACtC,6CAAkD;AAElD,6EAA6E;AAC7E,SAAgB,sBAAsB,CAAC,OAAgB;IACnD,IAAA,mBAAY,EAAC,OAAO,CAAC,CAAC;IACtB,IAAA,mBAAY,EAAC,OAAO,CAAC,CAAC;IACtB,IAAA,mBAAY,EAAC,OAAO,CAAC,CAAC;IACtB,IAAA,+BAAkB,EAAC,OAAO,CAAC,CAAC;AAChC,CAAC"}
@@ -5,17 +5,51 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.registerInfo = registerInfo;
7
7
  const chalk_1 = __importDefault(require("chalk"));
8
+ const RuntimeUtils_1 = __importDefault(require("../../utils/RuntimeUtils"));
8
9
  function registerInfo(program) {
9
10
  program
10
11
  .command('info')
11
- .description('Display system information')
12
- .action(() => {
13
- console.log(chalk_1.default.green('System Information:'));
14
- console.log(`- Node.js version: ${chalk_1.default.yellow(process.version)}`);
15
- console.log(`- Platform: ${chalk_1.default.yellow(process.platform)}`);
16
- console.log(`- Architecture: ${chalk_1.default.yellow(process.arch)}`);
17
- console.log(`- Nvm version: ${chalk_1.default.yellow(process.env.NVM_BIN ? 'nvm detected' : 'nvm not detected')}`);
18
- console.log(`- Current directory: ${chalk_1.default.yellow(process.cwd())}`);
12
+ .description('Display the versions of the CLI, Node.js and the local runtime, and whether the runtime is running')
13
+ .option('--json', 'output the result in JSON format')
14
+ .action(async (options) => {
15
+ // One place to diagnose a setup: what runs the CLI, and what the CLI can run the projects on
16
+ const installed = await RuntimeUtils_1.default.isRuntimeInstalled();
17
+ const running = installed && await RuntimeUtils_1.default.isRuntimeRunning();
18
+ const runtime = {
19
+ installed,
20
+ version: installed ? await RuntimeUtils_1.default.getRuntimeVersion() : undefined,
21
+ path: installed ? RuntimeUtils_1.default.getRuntimeExecutablePath() : undefined,
22
+ url: installed ? await RuntimeUtils_1.default.getRuntimeBaseUrl() : undefined,
23
+ running,
24
+ dataPath: installed ? await RuntimeUtils_1.default.getRuntimeDataPath() : undefined
25
+ };
26
+ const info = {
27
+ cli: program.version(),
28
+ node: process.version,
29
+ platform: process.platform,
30
+ arch: process.arch,
31
+ cwd: process.cwd(),
32
+ runtime
33
+ };
34
+ if (options.json) {
35
+ console.log(JSON.stringify(info));
36
+ return;
37
+ }
38
+ console.log(chalk_1.default.green('Codenotch CLI'));
39
+ console.log(`- CLI version: ${chalk_1.default.yellow(info.cli ?? 'unknown')}`);
40
+ console.log(`- Node.js version: ${chalk_1.default.yellow(info.node)}`);
41
+ console.log(`- Platform: ${chalk_1.default.yellow(`${info.platform} ${info.arch}`)}`);
42
+ console.log(`- Current directory: ${chalk_1.default.yellow(info.cwd)}`);
43
+ console.log(chalk_1.default.green('Codenotch runtime'));
44
+ if (!installed) {
45
+ console.log(chalk_1.default.yellow(`- Not installed: 'cn runtime install' installs it, 'cn project start' proposes it when needed`));
46
+ return;
47
+ }
48
+ console.log(`- Version: ${chalk_1.default.yellow(runtime.version)} at ${chalk_1.default.yellow(runtime.path)}`);
49
+ console.log(`- Status: ${running ? chalk_1.default.green('running') : chalk_1.default.yellow('not running')} (${runtime.url})`);
50
+ if (runtime.dataPath) {
51
+ console.log(`- Data path: ${chalk_1.default.yellow(runtime.dataPath)}`);
52
+ }
19
53
  });
20
54
  }
21
55
  //# sourceMappingURL=info.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/commands/system/info.ts"],"names":[],"mappings":";;;;;AAGA,oCAYC;AAdD,kDAA0B;AAE1B,SAAgB,YAAY,CAAC,OAAgB;IACzC,OAAO;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,4BAA4B,CAAC;SACzC,MAAM,CAAC,GAAG,EAAE;QACT,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,sBAAsB,eAAK,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,eAAe,eAAK,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,mBAAmB,eAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,kBAAkB,eAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;QACzG,OAAO,CAAC,GAAG,CAAC,wBAAwB,eAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/commands/system/info.ts"],"names":[],"mappings":"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"}
@@ -19,13 +19,13 @@ const MAX_VALIDATED_FILES = 100;
19
19
  function registerValidate(program) {
20
20
  program
21
21
  .command('validate')
22
- .description('Validate a file or a folder and print hints, warnings and errors.')
23
- .argument('<path>', 'File to validate, or folder to scan recursively')
22
+ .description('Validate a file or a folder (default: the current directory) and print hints, warnings and errors.')
23
+ .argument('[path]', 'File to validate, or folder to scan recursively', '.')
24
24
  .option('--json', 'Output the messages as a JSON array instead of text')
25
25
  .option('--nolimit', `Validate all files instead of capping at ${MAX_VALIDATED_FILES}`)
26
26
  .addHelpText('after', `
27
27
  Examples:
28
- $ cn validate . the whole project
28
+ $ cn validate the whole project, from its folder
29
29
  $ cn validate processes/books.ts a single file
30
30
  $ cn validate . --json machine-readable output
31
31
  `)
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/commands/validation/validate.ts"],"names":[],"mappings":";;;;;AAgBA,4CA0FC;AAzGD,sEAA8C;AAC9C,kDAA0B;AAC1B,+BAAkD;AAClD,2BAA+B;AAE/B,wEAAgD;AAChD,wEAAuE;AACvE,wFAAgE;AAChE,8EAAsD;AACtD,0EAAkD;AAClD,gGAAwE;AACxE,0EAAkD;AAElD,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC,SAAgB,gBAAgB,CAAC,OAAgB;IAC7C,OAAO;SACF,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,mEAAmE,CAAC;SAChF,QAAQ,CAAC,QAAQ,EAAE,iDAAiD,CAAC;SACrE,MAAM,CAAC,QAAQ,EAAE,qDAAqD,CAAC;SACvE,MAAM,CAAC,WAAW,EAAE,4CAA4C,mBAAmB,EAAE,CAAC;SACtF,WAAW,CAAC,OAAO,EAAE;;;;;CAK7B,CAAC;SACO,MAAM,CAAC,KAAK,EAAE,UAAkB,EAAE,OAA8C,EAAE,EAAE;QACjF,+FAA+F;QAC/F,UAAU,GAAG,IAAA,cAAO,EAAC,UAAU,CAAC,CAAC;QAEjC,IAAI,QAAQ,GAA0B,EAAE,CAAC;QACzC,IAAI,OAAO,GAAG,EAAE,CAAC;QAEjB,IAAI,MAAM,mBAAS,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,KAAK,EAAE,CAAC;YAC/C,QAAQ,CAAC,IAAI,CAAC;gBACV,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,aAAa,UAAU,eAAe;aAClD,CAAC,CAAC;QACP,CAAC;aACI,IAAI,IAAA,cAAS,EAAC,UAAU,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YAC3C,IAAI,KAAK,GAAG,yBAAe,CAAC,kBAAkB,CAAC,UAAU,CAAC;iBACrD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,yBAAe,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;YAErE,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,mBAAmB,EAAE,CAAC;gBACjE,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,mBAAmB,CAAC;gBAC7C,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;YAChD,CAAC;YAED,QAAQ,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;YAEtC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBACd,QAAQ,CAAC,IAAI,CAAC;oBACV,QAAQ,EAAE,SAAS;oBACnB,OAAO,EAAE,oCAAoC,mBAAmB,0BAA0B,OAAO,gEAAgE;iBACpK,CAAC,CAAC;YACP,CAAC;YACD,OAAO,GAAG,GAAG,KAAK,CAAC,MAAM,qBAAqB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,yCAAyC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAEzH,iEAAiE;YACjE,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;gBACzB,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;oBACf,GAAG,CAAC,QAAQ,GAAG,IAAA,eAAQ,EAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACtD,CAAC;YACL,CAAC;QACL,CAAC;aACI,CAAC;YACF,QAAQ,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;YAC1C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACjD,QAAQ,CAAC,IAAI,CAAC;oBACV,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,8BAA8B;iBAC1C,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC;aACI,CAAC;YACF,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;gBACzB,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,eAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC9G,MAAM,IAAI,GAAG,yBAAe,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;gBAC3D,IAAI,QAAQ,EAAE,CAAC;oBACX,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;gBAC/B,CAAC;qBACI,CAAC;oBACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACtB,CAAC;YACL,CAAC;YACD,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;gBACjB,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;gBACnE,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;gBACvE,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,MAAM,CAAC,CAAC,CAAC,eAAK,CAAC,KAAK,CAAC;gBACpF,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,OAAO,KAAK,MAAM,cAAc,QAAQ,cAAc,CAAC,CAAC,CAAC;YACrF,CAAC;QACL,CAAC;QAED,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,EAAE,CAAC;YAC7C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACzB,CAAC;IACL,CAAC,CAAC,CAAC;AAEX,CAAC;AAED,2GAA2G;AAC3G,KAAK,UAAU,aAAa,CAAC,KAAe;IACxC,MAAM,QAAQ,GAA0B,EAAE,CAAC;IAE3C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAoB,CAAC;IACjD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,yBAAe,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;YACvD,MAAM,SAAS,GAAG,oBAAU,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,IAAA,cAAO,EAAC,IAAI,CAAC,CAAC;YAC1E,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAChF,CAAC;aACI,CAAC;YACF,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/C,CAAC;IACL,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;QACxC,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,yBAAe,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,QAAgB;IACxC,IAAI,QAAQ,GAA0B,EAAE,CAAC;IAEzC,MAAM,GAAG,GAAG,mBAAS,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IACnE,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;QACb,OAAO,CAAC;gBACJ,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,aAAa,QAAQ,gEAAgE;gBAC9F,QAAQ,EAAE,QAAQ;aACrB,CAAC,CAAC;IACP,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,MAAM,mBAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAE,CAAC;IAC3D,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACxB,OAAO,CAAC;gBACJ,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,aAAa,QAAQ,4BAA4B;gBAC1D,QAAQ,EAAE,QAAQ;aACrB,CAAC,CAAC;IACP,CAAC;IAED,oDAAoD;IACpD,MAAM,WAAW,GAAG,oBAAU,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAC/D,IAAI,QAAQ,GAA0C,SAAS,CAAC;IAChE,IAAI,WAAW,EAAE,CAAC;QACd,QAAQ,CAAC,IAAI,CAAC;YACV,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,iCAAiC,WAAW,IAAI;SAC5D,CAAC,CAAC;QACH,QAAQ,GAAG,oBAAU,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IACrD,CAAC;SACI,CAAC;QACF,QAAQ,CAAC,IAAI,CAAC;YACV,QAAQ,EAAE,SAAS;YACnB,OAAO,EAAE,aAAa,QAAQ,mFAAmF;SACpH,CAAC,CAAC;IACP,CAAC;IAED,MAAM,OAAO,GAAsB;QAC/B,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,WAAW;QACxB,QAAQ,EAAE,QAAQ;KACrB,CAAC;IAEF,MAAM,QAAQ,GAAG,yBAAe,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAE7D,IAAI,CAAC;QACD,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;YAC1B,QAAQ,GAAG,MAAM,kCAAwB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAChE,CAAC;aACI,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;YACnC,QAAQ,GAAG,MAAM,8BAAoB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC5D,CAAC;aACI,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC7B,QAAQ,GAAG,MAAM,yBAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACvD,CAAC;aACI,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YAC3B,QAAQ,GAAG,MAAM,uBAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACrD,CAAC;aACI,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YAC3B,QAAQ,GAAG,MAAM,uBAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACrD,CAAC;aACI,CAAC;YACF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACzB,QAAQ,CAAC,IAAI,CAAC;oBACV,QAAQ,EAAE,SAAS;oBACnB,OAAO,EAAE,aAAa,QAAQ,0DAA0D;iBAC3F,CAAC,CAAC;YACP,CAAC;iBACI,CAAC;gBACF,QAAQ,CAAC,IAAI,CAAC;oBACV,QAAQ,EAAE,SAAS;oBACnB,OAAO,EAAE,kBAAkB,QAAQ,mGAAmG;iBACzI,CAAC,CAAC;YACP,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,CAAC,EAAE,CAAC;QACP,QAAQ,CAAC,IAAI,CAAC;YACV,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,sBAAsB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;SAC9E,CAAC,CAAC;IACP,CAAC;IAED,6FAA6F;IAC7F,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YACxD,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC5B,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/commands/validation/validate.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -38,10 +38,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
38
38
  };
39
39
  Object.defineProperty(exports, "__esModule", { value: true });
40
40
  const commander_1 = require("commander");
41
+ const chalk_1 = __importDefault(require("chalk"));
41
42
  const fs_1 = require("fs");
42
43
  const path_1 = __importStar(require("path"));
43
44
  const dotenv_1 = __importDefault(require("dotenv"));
44
45
  const commands_1 = require("./commands");
46
+ const ConsoleUtils_1 = __importDefault(require("./utils/ConsoleUtils"));
45
47
  // / Load environment variables from .env file in the CLI's own root directory, regardless of where the command is run from
46
48
  dotenv_1.default.config({ path: path_1.default.resolve(__dirname, "../.env"), quiet: true });
47
49
  const packageJson = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(__dirname, '../package.json'), 'utf8'));
@@ -50,16 +52,42 @@ program
50
52
  .name('codenotch-cli')
51
53
  .description('CLI of the Codenotch platform: manage the local runtime, scaffold and deploy projects, generate their derived files, and work on their React apps')
52
54
  .version(packageJson.version)
55
+ .option('-q, --quiet', 'print the results, the warnings and the errors only, no progress')
56
+ // Program options are accepted before and after the subcommand, so the flag is read once the command is known
57
+ .hook('preAction', () => {
58
+ ConsoleUtils_1.default.quiet = program.opts().quiet === true;
59
+ })
53
60
  .addHelpText('after', `
54
61
  The reference documentation ships with the CLI: 'cn docs' lists its topics (project anatomy,
55
62
  tables, processes, queries, apps, i18n). Read the topic before writing a file of that kind.
56
63
 
57
64
  Getting started:
58
- $ cn runtime update install (or update) the local Codenotch runtime
59
- $ cn runtime start
60
65
  $ cn project new create a project (asks for the template and the name)
61
- $ cn project start build, deploy and open it
66
+ $ cn project start build, deploy and open it (installs and starts the local runtime when needed)
67
+
68
+ Automation:
69
+ stdout carries the results only, the progress and the messages go to stderr. Most commands take
70
+ '--json' for a machine-readable result and '--quiet' drops the progress. 'cn completion <shell>'
71
+ prints the completion script of bash, zsh or powershell.
72
+
73
+ Environment:
74
+ CODENOTCH_PATH folder of the local runtime (default: ~/.codenotch)
75
+ CODENOTCH_DEBUG set to 1 to print the stack trace of a failure and the debug lines
76
+ GITHUB_TOKEN token used to download the runtime releases, instead of the browser login
62
77
  `);
63
78
  (0, commands_1.registerAllCommands)(program);
64
- program.parse();
79
+ // Every failure an action did not handle ends here: one message for the user, the stack trace on demand only
80
+ program.parseAsync().catch((error) => {
81
+ const message = error instanceof Error ? error.message : String(error);
82
+ ConsoleUtils_1.default.error(`Error: ${message}`);
83
+ if (error instanceof Error && error.stack) {
84
+ if (ConsoleUtils_1.default.debug) {
85
+ console.error(chalk_1.default.gray(error.stack));
86
+ }
87
+ else {
88
+ console.error(chalk_1.default.gray(`(set CODENOTCH_DEBUG=1 for the stack trace)`));
89
+ }
90
+ }
91
+ process.exitCode = 1;
92
+ });
65
93
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,yCAAoC;AACpC,2BAAkC;AAClC,6CAAkC;AAClC,oDAA4B;AAC5B,yCAAiD;AAEjD,2HAA2H;AAC3H,gBAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAEzE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AACzF,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACF,IAAI,CAAC,eAAe,CAAC;KACrB,WAAW,CAAC,mJAAmJ,CAAC;KAChK,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;KAC5B,WAAW,CAAC,OAAO,EAAE;;;;;;;;;CASzB,CAAC,CAAC;AAEH,IAAA,8BAAmB,EAAC,OAAO,CAAC,CAAC;AAE7B,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,yCAAoC;AACpC,kDAA0B;AAC1B,2BAAkC;AAClC,6CAAkC;AAClC,oDAA4B;AAC5B,yCAAiD;AACjD,wEAAgD;AAEhD,2HAA2H;AAC3H,gBAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAEzE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AACzF,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACF,IAAI,CAAC,eAAe,CAAC;KACrB,WAAW,CAAC,mJAAmJ,CAAC;KAChK,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;KAC5B,MAAM,CAAC,aAAa,EAAE,kEAAkE,CAAC;IAC1F,8GAA8G;KAC7G,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;IACpB,sBAAY,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC;AACvD,CAAC,CAAC;KACD,WAAW,CAAC,OAAO,EAAE;;;;;;;;;;;;;;;;;CAiBzB,CAAC,CAAC;AAEH,IAAA,8BAAmB,EAAC,OAAO,CAAC,CAAC;AAE7B,6GAA6G;AAC7G,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAC1C,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,sBAAY,CAAC,KAAK,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;IACxC,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QACxC,IAAI,sBAAY,CAAC,KAAK,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,CAAC;aACI,CAAC;YACF,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC,CAAC;QAC7E,CAAC;IACL,CAAC;IACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC"}
@@ -28,15 +28,16 @@ export default abstract class BuildUtils {
28
28
  * tsconfig.json, the workspace `.npmrc` when there is one, and a copy of every source file of the workspace,
29
29
  * mirrored flat so that root config files (postcss.config.js, ...) stay where Vite looks.
30
30
  * - `.codenotch/<appName>-dist` — the bundle Vite emits, plus a `.env` holding the Codenotch
31
- * environment (app name, manifests, cluster url) read by the served page.
31
+ * environment (app name, manifests, cluster url) the host is expected to expose as
32
+ * `/api/env` (the runtime does it for a deployed app).
32
33
  * Both folders are deleted first when a previous build left them behind.
33
34
  *
34
35
  * The build itself runs `npm install` then `npm run build` (vite alone: the copy holds server
35
36
  * files too, typechecking is the job of 'cn validate') inside `-source`, with the Node the CLI
36
37
  * runs under — Node 20 or newer is expected (Vite 8), and npm needs the network.
37
38
  *
38
- * On success, prints the `cn react serve '<dist>'` command to try the bundle, and returns
39
- * the path of the dist folder (undefined when the copy found nothing to build).
39
+ * On success, prints where the bundle landed and returns the path of the dist folder
40
+ * (undefined when the copy found nothing to build).
40
41
  *
41
42
  * @param appFilePath Path (absolute, or relative to the current directory) to the app
42
43
  * component, e.g. `./apps/index.tsx`. NOT the manifest: the sibling
@@ -48,8 +49,8 @@ export default abstract class BuildUtils {
48
49
  * the bundle is built all the same, but not bound to a cluster.
49
50
  * `static`: the environment is baked into the JS (a `codenotch.env.json`
50
51
  * imported by index.jsx) instead of the `/api/env` fetch — the dist then runs
51
- * from any static file host. The `.env` is still written, so `cn react serve`
52
- * keeps working on such a bundle.
52
+ * from any static file host. The `.env` is written all the same, as the
53
+ * description of the environment the bundle was built for.
53
54
  * `pwa`: implies static, and makes the bundle installable — a
54
55
  * `manifest.webmanifest` generated from the `pwa` section of the app manifest
55
56
  * (with its icons, shipped through the staging `public/`), and a service