@codenotch/codenotch.cli 1.0.39 → 1.0.40

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 (40) hide show
  1. package/dist/commands/generate/app.js +7 -2
  2. package/dist/commands/generate/app.js.map +1 -1
  3. package/dist/commands/generate/appmanifest.js +47 -3
  4. package/dist/commands/generate/appmanifest.js.map +1 -1
  5. package/dist/commands/generate/i18n.d.ts +1 -1
  6. package/dist/commands/generate/i18n.js +48 -10
  7. package/dist/commands/generate/i18n.js.map +1 -1
  8. package/dist/commands/generate/index.js +4 -2
  9. package/dist/commands/generate/index.js.map +1 -1
  10. package/dist/commands/generate/process.d.ts +2 -0
  11. package/dist/commands/generate/process.js +145 -0
  12. package/dist/commands/generate/process.js.map +1 -0
  13. package/dist/commands/project/new.js +9 -2
  14. package/dist/commands/project/new.js.map +1 -1
  15. package/dist/commands/project/remove.js +12 -1
  16. package/dist/commands/project/remove.js.map +1 -1
  17. package/dist/commands/react/shared.js +1 -2
  18. package/dist/commands/react/shared.js.map +1 -1
  19. package/dist/commands/runtime/clear.js +10 -1
  20. package/dist/commands/runtime/clear.js.map +1 -1
  21. package/dist/commands/validation/ValidationUtils.js +1 -1
  22. package/dist/commands/validation/ValidationUtils.js.map +1 -1
  23. package/dist/commands/validation/files/I18nValidator.js +0 -9
  24. package/dist/commands/validation/files/I18nValidator.js.map +1 -1
  25. package/dist/commands/validation/files/ScriptValidator.js +6 -5
  26. package/dist/commands/validation/files/ScriptValidator.js.map +1 -1
  27. package/dist/commands/validation/validate.js +1 -1
  28. package/dist/commands/validation/validate.js.map +1 -1
  29. package/dist/utils/BuildUtils.d.ts +2 -0
  30. package/dist/utils/BuildUtils.js +5 -0
  31. package/dist/utils/BuildUtils.js.map +1 -1
  32. package/dist/utils/ConsoleUtils.d.ts +5 -0
  33. package/dist/utils/ConsoleUtils.js +20 -0
  34. package/dist/utils/ConsoleUtils.js.map +1 -1
  35. package/dist/utils/ProcessModelUtils.d.ts +38 -0
  36. package/dist/utils/ProcessModelUtils.js +254 -0
  37. package/dist/utils/ProcessModelUtils.js.map +1 -0
  38. package/dist/utils/TemplateUtils.js +20 -3
  39. package/dist/utils/TemplateUtils.js.map +1 -1
  40. package/package.json +1 -1
@@ -13,11 +13,16 @@ function registerGenerateEmptyApp(generate) {
13
13
  generate
14
14
  .command('app')
15
15
  .description('Generate an empty Codenotch React app (*.tsx and its *.manifest.json)')
16
- .requiredOption('-n, --name <name>', 'name of the app, used as file name and React component name')
16
+ .option('-n, --name <name>', 'name of the app, used as file name and React component name (asked when omitted)')
17
17
  .option('-p, --path <path>', 'directory in which the app is generated', process.cwd())
18
18
  .option('--no-manifest', 'do not generate the *.manifest.json next to the app')
19
19
  .action(async (options) => {
20
- const appName = options.name.trim();
20
+ const appName = (options.name ?? await ConsoleUtils_1.default.ask('Name of the app?')).trim();
21
+ if (appName === '') {
22
+ console.error(chalk_1.default.yellow(`Aborted: no app name given (use -n <name>).`));
23
+ process.exitCode = 1;
24
+ return;
25
+ }
21
26
  if (!TemplateUtils_1.default.isValidAppName(appName)) {
22
27
  console.error(chalk_1.default.yellow(`Aborted: '${appName}' is not a valid app name (letters, digits, '_' and '$', not starting with a digit).`));
23
28
  process.exitCode = 1;
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/commands/generate/app.ts"],"names":[],"mappings":";;;;;AAOA,4DAyCC;AA/CD,kDAA0B;AAC1B,+BAAqC;AACrC,4EAAoD;AACpD,8EAAsD;AACtD,qCAA8C;AAE9C,SAAgB,wBAAwB,CAAC,QAAiB;IACtD,QAAQ;SACH,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,uEAAuE,CAAC;SACpF,cAAc,CAAC,mBAAmB,EAAE,6DAA6D,CAAC;SAClG,MAAM,CAAC,mBAAmB,EAAE,yCAAyC,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;SACrF,MAAM,CAAC,eAAe,EAAE,qDAAqD,CAAC;SAC9E,MAAM,CAAC,KAAK,EAAE,OAA0D,EAAE,EAAE;QAEzE,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAEpC,IAAI,CAAC,uBAAa,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YACzC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,MAAM,CAAC,aAAa,OAAO,sFAAsF,CAAC,CAAC,CAAC;YACxI,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,MAAM,YAAY,GAAG,IAAA,cAAO,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,YAAY,EAAE,GAAG,OAAO,MAAM,CAAC,CAAC;QAEtD,IAAI,CAAC,MAAM,IAAA,2BAAkB,EAAC,QAAQ,EAAE,uBAAa,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YAC3E,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,sBAAY,CAAC,KAAK,CAAC,GAAG,OAAO,qBAAqB,eAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAE3E,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO;QACX,CAAC;QAED,MAAM,YAAY,GAAG,IAAA,WAAI,EAAC,YAAY,EAAE,GAAG,OAAO,gBAAgB,CAAC,CAAC;QACpE,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAa,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAE1F,IAAI,CAAC,MAAM,IAAA,2BAAkB,EAAC,YAAY,EAAE,eAAe,CAAC,EAAE,CAAC;YAC3D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,sBAAY,CAAC,KAAK,CAAC,GAAG,OAAO,+BAA+B,eAAK,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/commands/generate/app.ts"],"names":[],"mappings":";;;;;AAOA,4DA8CC;AApDD,kDAA0B;AAC1B,+BAAqC;AACrC,4EAAoD;AACpD,8EAAsD;AACtD,qCAA8C;AAE9C,SAAgB,wBAAwB,CAAC,QAAiB;IACtD,QAAQ;SACH,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,uEAAuE,CAAC;SACpF,MAAM,CAAC,mBAAmB,EAAE,kFAAkF,CAAC;SAC/G,MAAM,CAAC,mBAAmB,EAAE,yCAAyC,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;SACrF,MAAM,CAAC,eAAe,EAAE,qDAAqD,CAAC;SAC9E,MAAM,CAAC,KAAK,EAAE,OAA2D,EAAE,EAAE;QAE1E,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,sBAAY,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACpF,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,MAAM,CAAC,6CAA6C,CAAC,CAAC,CAAC;YAC3E,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,IAAI,CAAC,uBAAa,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YACzC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,MAAM,CAAC,aAAa,OAAO,sFAAsF,CAAC,CAAC,CAAC;YACxI,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,MAAM,YAAY,GAAG,IAAA,cAAO,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,YAAY,EAAE,GAAG,OAAO,MAAM,CAAC,CAAC;QAEtD,IAAI,CAAC,MAAM,IAAA,2BAAkB,EAAC,QAAQ,EAAE,uBAAa,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YAC3E,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,sBAAY,CAAC,KAAK,CAAC,GAAG,OAAO,qBAAqB,eAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAE3E,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO;QACX,CAAC;QAED,MAAM,YAAY,GAAG,IAAA,WAAI,EAAC,YAAY,EAAE,GAAG,OAAO,gBAAgB,CAAC,CAAC;QACpE,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAa,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAE1F,IAAI,CAAC,MAAM,IAAA,2BAAkB,EAAC,YAAY,EAAE,eAAe,CAAC,EAAE,CAAC;YAC3D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,sBAAY,CAAC,KAAK,CAAC,GAAG,OAAO,+BAA+B,eAAK,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;AACX,CAAC"}
@@ -5,22 +5,29 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.registerGenerateAppManifest = registerGenerateAppManifest;
7
7
  const chalk_1 = __importDefault(require("chalk"));
8
+ const fs_1 = require("fs");
8
9
  const path_1 = require("path");
9
10
  const FileUtils_1 = __importDefault(require("../../utils/FileUtils"));
10
11
  const ConsoleUtils_1 = __importDefault(require("../../utils/ConsoleUtils"));
12
+ const BuildUtils_1 = __importDefault(require("../../utils/BuildUtils"));
11
13
  const TemplateUtils_1 = __importDefault(require("../../utils/TemplateUtils"));
12
14
  const shared_1 = require("./shared");
13
15
  function registerGenerateAppManifest(generate) {
14
16
  generate
15
17
  .command('appmanifest')
16
- .description('Generate the *.manifest.json of an existing Codenotch app')
17
- .requiredOption('-f, --file-path <path>', 'path to the *.tsx/*.jsx file')
18
+ .description('Generate the *.manifest.json of an existing Codenotch app. Without -f, the components missing one are proposed.')
19
+ .option('-f, --file-path <path>', 'path to the *.tsx/*.jsx file (asked when omitted)')
18
20
  .action(async (options) => {
19
- const filePath = await (0, shared_1.resolveInputFile)(options.filePath, ['.tsx', '.jsx']);
21
+ const filePath = options.filePath !== undefined
22
+ ? await (0, shared_1.resolveInputFile)(options.filePath, ['.tsx', '.jsx'])
23
+ : await pickComponentWithoutManifest();
20
24
  if (filePath === null) {
21
25
  process.exitCode = 1;
22
26
  return;
23
27
  }
28
+ if (filePath === undefined) {
29
+ return; // nothing to do, already reported
30
+ }
24
31
  const appName = FileUtils_1.default.getNameFromPath(filePath, true);
25
32
  const targetPath = (0, path_1.join)((0, path_1.dirname)(filePath), `${appName}.manifest.json`);
26
33
  const content = JSON.stringify(TemplateUtils_1.default.createAppManifest(appName), null, 4);
@@ -31,4 +38,41 @@ function registerGenerateAppManifest(generate) {
31
38
  ConsoleUtils_1.default.check(`App manifest generated at ${chalk_1.default.green(targetPath)}`);
32
39
  });
33
40
  }
41
+ /**
42
+ * The apps of the surrounding project that have no manifest yet: the only one is taken,
43
+ * several are proposed on the terminal. Only the direct children of 'apps/' are candidates —
44
+ * a component deeper in the tree (layouts, pages...) is not an app and must not get a manifest.
45
+ * Returns undefined when every app already has one, null when nothing can be resolved.
46
+ */
47
+ async function pickComponentWithoutManifest() {
48
+ const workspacePath = BuildUtils_1.default.findWorkspace();
49
+ if (workspacePath === undefined) {
50
+ console.error(chalk_1.default.yellow(`Aborted: no Codenotch project found from '${process.cwd()}' (no manifest.json in the parent folders).`));
51
+ return null;
52
+ }
53
+ const appsPath = (0, path_1.join)(workspacePath, 'apps');
54
+ const scripts = ((0, fs_1.existsSync)(appsPath) ? (0, fs_1.readdirSync)(appsPath, { withFileTypes: true }) : [])
55
+ .filter(entry => !entry.isDirectory() && /\.(tsx|jsx)$/i.test(entry.name))
56
+ .map(entry => (0, path_1.join)(appsPath, entry.name));
57
+ const missing = [];
58
+ for (const scriptPath of scripts) {
59
+ const manifestPath = (0, path_1.join)((0, path_1.dirname)(scriptPath), `${FileUtils_1.default.getNameFromPath(scriptPath, true)}.manifest.json`);
60
+ if (await FileUtils_1.default.exists(manifestPath) === false) {
61
+ missing.push(scriptPath);
62
+ }
63
+ }
64
+ if (missing.length === 0) {
65
+ ConsoleUtils_1.default.check(`Every app of '${appsPath}' already has its manifest.`);
66
+ return undefined;
67
+ }
68
+ if (missing.length === 1) {
69
+ console.log(`Only '${(0, path_1.relative)(workspacePath, missing[0])}' has no manifest.`);
70
+ return missing[0];
71
+ }
72
+ const index = await ConsoleUtils_1.default.select('Which component?', missing.map(scriptPath => ({
73
+ name: (0, path_1.relative)(workspacePath, scriptPath),
74
+ description: ''
75
+ })), 0);
76
+ return missing[index];
77
+ }
34
78
  //# sourceMappingURL=appmanifest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"appmanifest.js","sourceRoot":"","sources":["../../../src/commands/generate/appmanifest.ts"],"names":[],"mappings":";;;;;AAQA,kEAwBC;AA/BD,kDAA0B;AAC1B,+BAAqC;AACrC,sEAA8C;AAC9C,4EAAoD;AACpD,8EAAsD;AACtD,qCAAgE;AAEhE,SAAgB,2BAA2B,CAAC,QAAiB;IACzD,QAAQ;SACH,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,2DAA2D,CAAC;SACxE,cAAc,CAAC,wBAAwB,EAAE,8BAA8B,CAAC;SACxE,MAAM,CAAC,KAAK,EAAE,OAA6B,EAAE,EAAE;QAE5C,MAAM,QAAQ,GAAG,MAAM,IAAA,yBAAgB,EAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QAC5E,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,MAAM,OAAO,GAAG,mBAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,IAAA,WAAI,EAAC,IAAA,cAAO,EAAC,QAAQ,CAAC,EAAE,GAAG,OAAO,gBAAgB,CAAC,CAAC;QACvE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAa,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAElF,IAAI,CAAC,MAAM,IAAA,2BAAkB,EAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC;YACjD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,sBAAY,CAAC,KAAK,CAAC,6BAA6B,eAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"appmanifest.js","sourceRoot":"","sources":["../../../src/commands/generate/appmanifest.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  import { Command } from 'commander';
2
- export declare function registerI18nTs(generate: Command): void;
2
+ export declare function registerGenerateI18nTs(generate: Command): void;
@@ -3,27 +3,65 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.registerI18nTs = registerI18nTs;
6
+ exports.registerGenerateI18nTs = registerGenerateI18nTs;
7
7
  const chalk_1 = __importDefault(require("chalk"));
8
+ const path_1 = require("path");
8
9
  const ConsoleUtils_1 = __importDefault(require("../../utils/ConsoleUtils"));
10
+ const BuildUtils_1 = __importDefault(require("../../utils/BuildUtils"));
11
+ const ProjectUtils_1 = __importDefault(require("../../utils/ProjectUtils"));
9
12
  const ProjectGeneratorUtils_1 = __importDefault(require("../../utils/ProjectGeneratorUtils"));
10
13
  const shared_1 = require("./shared");
11
- function registerI18nTs(generate) {
14
+ function registerGenerateI18nTs(generate) {
12
15
  generate
13
16
  .command('i18n')
14
- .description('Transform a *.i18n.csv into an importable i18n ts (generated next to the csv).')
15
- .requiredOption('-f, --file-path <path>', 'path to the *.i18n.csv file')
17
+ .description('Transform a *.i18n.csv into an importable i18n ts (generated next to the csv). Without -f, the files of the project are proposed.')
18
+ .option('-f, --file-path <path>', 'path to the *.i18n.csv file (asked when omitted)')
16
19
  .action(async (options) => {
17
- const filePath = await (0, shared_1.resolveInputFile)(options.filePath, ['.i18n.csv']);
18
- if (filePath === null) {
20
+ const targets = await resolveTargets(options.filePath);
21
+ if (targets === null) {
19
22
  process.exitCode = 1;
20
23
  return;
21
24
  }
22
- const result = await ProjectGeneratorUtils_1.default.generateI18n(filePath);
23
- if (!(0, shared_1.reportGeneration)(result)) {
24
- return;
25
+ for (const csvPath of targets) {
26
+ const result = await ProjectGeneratorUtils_1.default.generateI18n(csvPath);
27
+ if (!(0, shared_1.reportGeneration)(result)) {
28
+ continue;
29
+ }
30
+ ConsoleUtils_1.default.check(`${result.keyCount} key(s) generated at ${chalk_1.default.green(result.written[0])}`);
25
31
  }
26
- ConsoleUtils_1.default.check(`${result.keyCount} key(s) generated at ${chalk_1.default.green(result.written[0])}`);
27
32
  });
28
33
  }
34
+ /**
35
+ * The csv files to generate from: the one of -f, or the ones of the surrounding project —
36
+ * every file by default, one of them when picked on the terminal.
37
+ */
38
+ async function resolveTargets(filePath) {
39
+ if (filePath !== undefined) {
40
+ const resolved = await (0, shared_1.resolveInputFile)(filePath, ['.i18n.csv']);
41
+ return resolved === null ? null : [resolved];
42
+ }
43
+ const workspacePath = BuildUtils_1.default.findWorkspace();
44
+ if (workspacePath === undefined) {
45
+ console.error(chalk_1.default.yellow(`Aborted: no Codenotch project found from '${process.cwd()}' (no manifest.json in the parent folders).`));
46
+ return null;
47
+ }
48
+ const files = await ProjectUtils_1.default.discoverI18nsFiles(workspacePath);
49
+ if (files.length === 0) {
50
+ ConsoleUtils_1.default.checkWarning(`No *.i18n.csv file in '${workspacePath}', nothing to generate.`);
51
+ return [];
52
+ }
53
+ if (files.length === 1) {
54
+ return [files[0].filePath];
55
+ }
56
+ const choices = [
57
+ // Regenerating everything is the usual case (fresh clone), so it is the default
58
+ { name: 'All of them', description: `${files.length} file(s)` },
59
+ ...files.map(file => ({
60
+ name: (0, path_1.relative)(workspacePath, file.filePath),
61
+ description: `${file.keys.length} key(s) — ${file.languages.join(', ')}`
62
+ }))
63
+ ];
64
+ const index = await ConsoleUtils_1.default.select('Which translation file?', choices, 0);
65
+ return index === 0 ? files.map(file => file.filePath) : [files[index - 1].filePath];
66
+ }
29
67
  //# sourceMappingURL=i18n.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../../src/commands/generate/i18n.ts"],"names":[],"mappings":";;;;;AAMA,wCAoBC;AAzBD,kDAA0B;AAC1B,4EAAoD;AACpD,8FAAsE;AACtE,qCAA8D;AAE9D,SAAgB,cAAc,CAAC,QAAiB;IAC5C,QAAQ;SACH,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,gFAAgF,CAAC;SAC7F,cAAc,CAAC,wBAAwB,EAAE,6BAA6B,CAAC;SACvE,MAAM,CAAC,KAAK,EAAE,OAA6B,EAAE,EAAE;QAE5C,MAAM,QAAQ,GAAG,MAAM,IAAA,yBAAgB,EAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QACzE,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,+BAAqB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAClE,IAAI,CAAC,IAAA,yBAAgB,EAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,OAAO;QACX,CAAC;QAED,sBAAY,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,wBAAwB,eAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACnG,CAAC,CAAC,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../../src/commands/generate/i18n.ts"],"names":[],"mappings":"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"}
@@ -8,16 +8,18 @@ const app_1 = require("./app");
8
8
  const i18n_1 = require("./i18n");
9
9
  const dbcontext_1 = require("./dbcontext");
10
10
  const openapi_1 = require("./openapi");
11
+ const process_1 = require("./process");
11
12
  function registerGenerateCommands(program) {
12
13
  const generate = program
13
14
  .command('generate')
14
- .description('Generate Codenotch project files (manifest, ...)');
15
+ .description('Generate project files: derived ones, rebuilt from the sources (db schema, openapi, i18n classes), and ready-to-edit scaffolds (app, manifests, package.json, model processes)');
15
16
  (0, manifest_1.registerGenerateProjectManifest)(generate);
16
17
  (0, appmanifest_1.registerGenerateAppManifest)(generate);
17
18
  (0, pkg_1.registerGeneratePackageJson)(generate);
18
19
  (0, app_1.registerGenerateEmptyApp)(generate);
19
- (0, i18n_1.registerI18nTs)(generate);
20
+ (0, i18n_1.registerGenerateI18nTs)(generate);
20
21
  (0, dbcontext_1.registerGenerateDbContext)(generate);
21
22
  (0, openapi_1.registerGenerateOpenApi)(generate);
23
+ (0, process_1.registerGenerateProcess)(generate);
22
24
  }
23
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/generate/index.ts"],"names":[],"mappings":";;AASA,4DAYC;AApBD,yCAA6D;AAC7D,+CAA4D;AAC5D,+BAAoD;AACpD,+BAAiD;AACjD,iCAAwC;AACxC,2CAAwD;AACxD,uCAAoD;AAEpD,SAAgB,wBAAwB,CAAC,OAAgB;IACrD,MAAM,QAAQ,GAAG,OAAO;SACnB,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,kDAAkD,CAAC,CAAC;IAErE,IAAA,0CAA+B,EAAC,QAAQ,CAAC,CAAC;IAC1C,IAAA,yCAA2B,EAAC,QAAQ,CAAC,CAAC;IACtC,IAAA,iCAA2B,EAAC,QAAQ,CAAC,CAAC;IACtC,IAAA,8BAAwB,EAAC,QAAQ,CAAC,CAAC;IACnC,IAAA,qBAAc,EAAC,QAAQ,CAAC,CAAC;IACzB,IAAA,qCAAyB,EAAC,QAAQ,CAAC,CAAC;IACpC,IAAA,iCAAuB,EAAC,QAAQ,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/generate/index.ts"],"names":[],"mappings":";;AAUA,4DAaC;AAtBD,yCAA6D;AAC7D,+CAA4D;AAC5D,+BAAoD;AACpD,+BAAiD;AACjD,iCAAgD;AAChD,2CAAwD;AACxD,uCAAoD;AACpD,uCAAoD;AAEpD,SAAgB,wBAAwB,CAAC,OAAgB;IACrD,MAAM,QAAQ,GAAG,OAAO;SACnB,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,gLAAgL,CAAC,CAAC;IAEnM,IAAA,0CAA+B,EAAC,QAAQ,CAAC,CAAC;IAC1C,IAAA,yCAA2B,EAAC,QAAQ,CAAC,CAAC;IACtC,IAAA,iCAA2B,EAAC,QAAQ,CAAC,CAAC;IACtC,IAAA,8BAAwB,EAAC,QAAQ,CAAC,CAAC;IACnC,IAAA,6BAAsB,EAAC,QAAQ,CAAC,CAAC;IACjC,IAAA,qCAAyB,EAAC,QAAQ,CAAC,CAAC;IACpC,IAAA,iCAAuB,EAAC,QAAQ,CAAC,CAAC;IAClC,IAAA,iCAAuB,EAAC,QAAQ,CAAC,CAAC;AACtC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerGenerateProcess(generate: Command): void;
@@ -0,0 +1,145 @@
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
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.registerGenerateProcess = registerGenerateProcess;
40
+ const chalk_1 = __importDefault(require("chalk"));
41
+ const path_1 = require("path");
42
+ const FileUtils_1 = __importDefault(require("../../utils/FileUtils"));
43
+ const BuildUtils_1 = __importDefault(require("../../utils/BuildUtils"));
44
+ const ConsoleUtils_1 = __importDefault(require("../../utils/ConsoleUtils"));
45
+ const ManifestUtils_1 = __importDefault(require("../../utils/ManifestUtils"));
46
+ const ProjectUtils_1 = __importDefault(require("../../utils/ProjectUtils"));
47
+ const ProcessModelUtils_1 = __importStar(require("../../utils/ProcessModelUtils"));
48
+ const shared_1 = require("./shared");
49
+ function registerGenerateProcess(generate) {
50
+ generate
51
+ .command('process')
52
+ .description('Generate a ready-to-edit model process (api crud, insert, upsert, ...) working on a table of the project')
53
+ .option('-m, --model <name>', `model to generate: ${ProcessModelUtils_1.PROCESS_MODELS.map(model => model.name).join(', ')} (asked when omitted)`)
54
+ .option('-t, --table <name>', 'name of the table the process works on (asked when omitted)')
55
+ .option('-p, --path <path>', "directory in which the process is generated (default: the 'processes' folder of the project)")
56
+ .action(async (options) => {
57
+ const workspacePath = BuildUtils_1.default.findWorkspace();
58
+ if (workspacePath === undefined) {
59
+ console.error(chalk_1.default.yellow(`Aborted: no Codenotch project found from '${process.cwd()}' (no manifest.json in the parent folders).`));
60
+ process.exitCode = 1;
61
+ return;
62
+ }
63
+ const model = await pickModel(options.model);
64
+ if (model === undefined) {
65
+ process.exitCode = 1;
66
+ return;
67
+ }
68
+ const table = await pickTable(workspacePath, options.table);
69
+ if (table === undefined) {
70
+ process.exitCode = 1;
71
+ return;
72
+ }
73
+ const targetFolder = options.path !== undefined ? (0, path_1.resolve)(options.path) : (0, path_1.join)(workspacePath, 'processes');
74
+ const targetPath = (0, path_1.join)(targetFolder, ProcessModelUtils_1.default.getFileName(model, table));
75
+ const built = ProcessModelUtils_1.default.createProcessFile(model, table, targetPath);
76
+ for (const warning of built.warnings) {
77
+ ConsoleUtils_1.default.checkWarning(warning);
78
+ }
79
+ if (built.content === undefined) {
80
+ console.error(chalk_1.default.yellow(`Aborted: ${built.error}`));
81
+ process.exitCode = 1;
82
+ return;
83
+ }
84
+ if (!await (0, shared_1.writeGeneratedFile)(targetPath, built.content)) {
85
+ process.exitCode = 1;
86
+ return;
87
+ }
88
+ ConsoleUtils_1.default.check(`'${model}' process for '${table.name}' generated at ${chalk_1.default.green(targetPath)}`);
89
+ if (model !== 'api') {
90
+ return;
91
+ }
92
+ // The list endpoint reads its rows through a project query, generated next to the others
93
+ const manifest = await FileUtils_1.default.readJsonFileAsync((0, path_1.join)(workspacePath, 'manifest.json'));
94
+ const serviceName = manifest?.serviceName ?? ManifestUtils_1.default.toServiceName(FileUtils_1.default.getNameFromPath(workspacePath));
95
+ const queryPath = (0, path_1.join)(workspacePath, 'queries', ProcessModelUtils_1.default.getQueryFileName(table));
96
+ if (!await (0, shared_1.writeGeneratedFile)(queryPath, ProcessModelUtils_1.default.createAllRowsQuery(table, serviceName))) {
97
+ process.exitCode = 1;
98
+ return;
99
+ }
100
+ ConsoleUtils_1.default.check(`Query of the list endpoint generated at ${chalk_1.default.green(queryPath)}`);
101
+ });
102
+ }
103
+ /** The model to generate: the one of -m when valid, otherwise the one picked on the terminal */
104
+ async function pickModel(requested) {
105
+ if (requested !== undefined) {
106
+ const model = ProcessModelUtils_1.PROCESS_MODELS.find(model => model.name === requested.toLowerCase());
107
+ if (model === undefined) {
108
+ console.error(chalk_1.default.yellow(`Unknown model '${requested}', expected one of: ${ProcessModelUtils_1.PROCESS_MODELS.map(model => model.name).join(', ')}.`));
109
+ return undefined;
110
+ }
111
+ return model.name;
112
+ }
113
+ const index = await ConsoleUtils_1.default.select('Which model of process?', ProcessModelUtils_1.PROCESS_MODELS, 0);
114
+ return ProcessModelUtils_1.PROCESS_MODELS[index].name;
115
+ }
116
+ /**
117
+ * The table the process works on: the one of -t when it exists, the only one of the project,
118
+ * or the one picked on the terminal. Tables with a name built at runtime cannot be used.
119
+ */
120
+ async function pickTable(workspacePath, requested) {
121
+ const tables = (await ProjectUtils_1.default.discoverTableFiles(workspacePath)).filter(table => table.name !== undefined);
122
+ const names = tables.map(table => table.name).join(', ');
123
+ if (requested !== undefined) {
124
+ const table = tables.find(table => table.name?.toLowerCase() === requested.toLowerCase());
125
+ if (table === undefined) {
126
+ console.error(chalk_1.default.yellow(`No table named '${requested}' in '${workspacePath}'${tables.length > 0 ? `. Available: ${names}` : ' (it declares none)'}.`));
127
+ return undefined;
128
+ }
129
+ return table;
130
+ }
131
+ if (tables.length === 0) {
132
+ console.error(chalk_1.default.yellow(`Aborted: no table discovered in '${workspacePath}', declare one with defineEntity first.`));
133
+ return undefined;
134
+ }
135
+ if (tables.length === 1) {
136
+ console.log(`Only one table in the project: '${tables[0].name}'.`);
137
+ return tables[0];
138
+ }
139
+ const index = await ConsoleUtils_1.default.select('Which table does the process work on?', tables.map(table => ({
140
+ name: table.name ?? '',
141
+ description: `${table.columns.length} column(s) at ${(0, path_1.relative)(workspacePath, table.filePath)}`
142
+ })), 0);
143
+ return tables[index];
144
+ }
145
+ //# sourceMappingURL=process.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process.js","sourceRoot":"","sources":["../../../src/commands/generate/process.ts"],"names":[],"mappings":"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"}
@@ -82,11 +82,18 @@ function registerNew(project) {
82
82
  finalFolder = options.projectPath;
83
83
  }
84
84
  else {
85
- finalFolder = (0, path_1.join)(process.cwd(), 'New Codenotch Project');
85
+ // The name matters: the service name derives from it, and renaming it later costs a refactoring
86
+ const askedName = await ConsoleUtils_1.default.ask('Name of the project?', 'New Codenotch Project');
87
+ if (/[<>:"/\\|?*]/.test(askedName)) {
88
+ console.error(chalk_1.default.yellow(`Aborted: '${askedName}' cannot be used as a folder name.`));
89
+ process.exitCode = 1;
90
+ return;
91
+ }
92
+ finalFolder = (0, path_1.join)(process.cwd(), askedName);
86
93
  let counter = 0;
87
94
  while (await FileUtils_1.default.exists(finalFolder)) {
88
95
  counter++;
89
- finalFolder = (0, path_1.join)(process.cwd(), `New Codenotch Project (${counter})`);
96
+ finalFolder = (0, path_1.join)(process.cwd(), `${askedName} (${counter})`);
90
97
  }
91
98
  }
92
99
  (0, fs_extra_1.ensureDirSync)(finalFolder);
@@ -1 +1 @@
1
- {"version":3,"file":"new.js","sourceRoot":"","sources":["../../../src/commands/project/new.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"new.js","sourceRoot":"","sources":["../../../src/commands/project/new.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,kCAgHC;AA3HD,qCAAyE;AACzE,sEAA8C;AAC9C,4EAAoD;AACpD,2EAA6E;AAC7E,iFAAgG;AAChG,8FAAsE;AACtE,wEAAgD;AAChD,uCAAyC;AACzC,+BAAqC;AACrC,kDAA0B;AAE1B,SAAgB,WAAW,CAAC,OAAgB;IACxC,IAAA,8BAAqB,EAAC,OAAO;SACxB,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,sBAAsB,CAAC;SACnC,MAAM,CAAC,uBAAuB,EAAE,2BAA2B,0BAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC;SACzI,MAAM,CAAC,kBAAkB,EAAE,uCAAuC,CAAC;SACnE,MAAM,CAAC,cAAc,EAAE,2CAA2C,CAAC,CAAC;SACpE,MAAM,CAAC,KAAK,EAAE,OAAkG,EAAE,EAAE;QAEjH,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YACxB,KAAK,MAAM,QAAQ,IAAI,0BAAgB,CAAC,SAAS,EAAE,CAAC;gBAChD,OAAO,CAAC,GAAG,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;YACnF,CAAC;YACD,OAAO;QACX,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC1D,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,IAAI,OAAO,CAAC,WAAW,KAAK,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;YACxC,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC;QAC7B,CAAC;QAED,wBAAwB;QACxB,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC3D,+FAA+F;YAC/F,OAAO,CAAC,WAAW,GAAG,IAAA,cAAO,EAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACnD,IAAI,MAAM,mBAAS,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC9C,OAAO,CAAC,KAAK,CAAC,SAAS,OAAO,CAAC,WAAW,mBAAmB,CAAC,CAAC;gBAC/D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO;YACX,CAAC;YACD,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACtC,CAAC;aACI,CAAC;YACF,gGAAgG;YAChG,MAAM,SAAS,GAAG,MAAM,sBAAY,CAAC,GAAG,CAAC,sBAAsB,EAAE,uBAAuB,CAAC,CAAC;YAC1F,IAAI,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBACjC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,MAAM,CAAC,aAAa,SAAS,oCAAoC,CAAC,CAAC,CAAC;gBACxF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO;YACX,CAAC;YAED,WAAW,GAAG,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;YAC7C,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,OAAO,MAAM,mBAAS,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;gBACzC,OAAO,EAAE,CAAC;gBACV,WAAW,GAAG,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,SAAS,KAAK,OAAO,GAAG,CAAC,CAAC;YACnE,CAAC;QACL,CAAC;QACD,IAAA,wBAAa,EAAC,WAAW,CAAC,CAAC;QAE3B,MAAM,WAAW,GAAG,mBAAS,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAG,uBAAa,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAE7D,MAAM,QAAQ,GAAG,0BAAgB,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,GAAG,iCAAiB,CAAC,EAAE,CAAC,CAAC;QAEvH,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACpC,IAAA,wBAAa,EAAC,IAAA,WAAI,EAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;QAC7C,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YAChC,IAAI,CAAC,mBAAS,CAAC,aAAa,CAAC,IAAA,WAAI,EAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACvE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO;YACX,CAAC;QACL,CAAC;QACD,sBAAY,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,8BAA8B,YAAY,YAAY,CAAC,CAAC;QAEnG,4FAA4F;QAC5F,MAAM,SAAS,GAAG,MAAM,+BAAqB,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACvE,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;YACvC,sBAAY,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QACD,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,sBAAY,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,uBAAuB,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,mBAAS,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChJ,CAAC;QAED,0GAA0G;QAC1G,IAAI,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QACnC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;YAC1C,MAAM,QAAQ,GAAG,MAAM,oBAAU,CAAC,GAAG,CAAC,WAAW,EAAE,kCAAkC,CAAC,CAAC;YACvF,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACjB,sBAAY,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;gBAC7C,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,mCAAgB,CAAC,CAAC;YACpE,CAAC;iBACI,CAAC;gBACF,sBAAY,CAAC,YAAY,CAAC,iCAAiC,QAAQ,0CAA0C,CAAC,CAAC;YACnH,CAAC;QACL,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,OAAO,WAAW,GAAG,CAAC,CAAC,CAAC;QAChD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACnC,CAAC;IACL,CAAC,CAAC,CAAC;AACX,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,YAAY,CAAC,SAA6B;IAErD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC1B,IAAI,0BAAgB,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7C,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,MAAM,CAAC,qBAAqB,SAAS,uBAAuB,0BAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5I,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,sBAAY,CAAC,MAAM,CAAC,2CAA2C,EAAE,0BAAgB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACpH,OAAO,0BAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;AAClD,CAAC"}
@@ -4,13 +4,24 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.registerRemove = registerRemove;
7
+ const chalk_1 = __importDefault(require("chalk"));
7
8
  const RuntimeUtils_1 = __importDefault(require("../../utils/RuntimeUtils"));
9
+ const ConsoleUtils_1 = __importDefault(require("../../utils/ConsoleUtils"));
10
+ const FileUtils_1 = __importDefault(require("../../utils/FileUtils"));
8
11
  const shared_1 = require("./shared");
9
12
  function registerRemove(project) {
10
13
  (0, shared_1.withProjectPathOption)(project
11
14
  .command('remove')
12
- .description('Uninstall the project and erase its data (use with caution)'))
15
+ .description('Uninstall the project and erase its data (use with caution)')
16
+ .option('-y, --yes', 'do not ask for confirmation', false))
13
17
  .action(async (options) => {
18
+ const projectName = FileUtils_1.default.getNameFromPath(options.projectPath);
19
+ // Erasing data deserves an explicit go: outside a terminal, only --yes can give it
20
+ if (!options.yes && !await ConsoleUtils_1.default.confirm(`Remove project '${projectName}' and erase its data?`, false)) {
21
+ console.error(chalk_1.default.yellow(`Aborted: nothing removed. Run with '--yes' to skip the confirmation.`));
22
+ process.exitCode = 1;
23
+ return;
24
+ }
14
25
  await RuntimeUtils_1.default.removeProject(options.projectPath);
15
26
  });
16
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../src/commands/project/remove.ts"],"names":[],"mappings":";;;;;AAIA,wCAOC;AAVD,4EAAoD;AACpD,qCAAyE;AAEzE,SAAgB,cAAc,CAAC,OAAgB;IAC3C,IAAA,8BAAqB,EAAC,OAAO;SACxB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,6DAA6D,CAAC,CAAC;SAC3E,MAAM,CAAC,KAAK,EAAE,OAA+B,EAAE,EAAE;QAC9C,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,wCAkBC;AAxBD,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,CAAC;SAC1D,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"}
@@ -14,8 +14,7 @@ const FileUtils_1 = __importDefault(require("../../utils/FileUtils"));
14
14
  const ProjectUtils_1 = __importDefault(require("../../utils/ProjectUtils"));
15
15
  /** Root of the Codenotch project a folder belongs to, walking up to the closest manifest.json */
16
16
  function findWorkspace(fromDir = process.cwd()) {
17
- // findWorkspaceFromFile strips the last segment, hand it a dummy file
18
- return BuildUtils_1.default.findWorkspaceFromFile((0, path_1.join)(fromDir, '_'));
17
+ return BuildUtils_1.default.findWorkspace(fromDir);
19
18
  }
20
19
  /**
21
20
  * The app targeted by a 'cn react ...' command.
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/commands/react/shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/commands/react/shared.ts"],"names":[],"mappings":"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"}
@@ -4,12 +4,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.registerClear = registerClear;
7
+ const chalk_1 = __importDefault(require("chalk"));
7
8
  const RuntimeUtils_1 = __importDefault(require("../../utils/RuntimeUtils"));
9
+ const ConsoleUtils_1 = __importDefault(require("../../utils/ConsoleUtils"));
8
10
  function registerClear(runtime) {
9
11
  runtime
10
12
  .command('clear')
11
13
  .description('Erase all runtime data (ie. all projects, users, ...) but keep the runtime itself (use with caution)')
12
- .action(async () => {
14
+ .option('-y, --yes', 'do not ask for confirmation', false)
15
+ .action(async (options) => {
16
+ // Erasing every project and user deserves an explicit go: outside a terminal, only --yes can give it
17
+ if (!options.yes && !await ConsoleUtils_1.default.confirm('Erase ALL runtime data (every project, user, ...)?', false)) {
18
+ console.error(chalk_1.default.yellow(`Aborted: nothing erased. Run with '--yes' to skip the confirmation.`));
19
+ process.exitCode = 1;
20
+ return;
21
+ }
13
22
  await RuntimeUtils_1.default.clearRuntime();
14
23
  });
15
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"clear.js","sourceRoot":"","sources":["../../../src/commands/runtime/clear.ts"],"names":[],"mappings":";;;;;AAGA,sCAOC;AATD,4EAAoD;AAEpD,SAAgB,aAAa,CAAC,OAAgB;IAC1C,OAAO;SACF,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,sGAAsG,CAAC;SACnH,MAAM,CAAC,KAAK,IAAI,EAAE;QACf,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,sCAgBC;AApBD,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,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"}
@@ -106,7 +106,7 @@ class ValidationUtils {
106
106
  }
107
107
  /** Lists all files under a folder, skipping dot-folders and generated/vendored directories. */
108
108
  static listFilesRecursive(folderPath) {
109
- const ignoredFolders = ['node_modules', 'dist', 'build', 'typings'];
109
+ const ignoredFolders = ['node_modules', 'dist', 'build'];
110
110
  const files = [];
111
111
  const visit = (dir) => {
112
112
  for (const entry of (0, fs_1.readdirSync)(dir, { withFileTypes: true })) {
@@ -1 +1 @@
1
- {"version":3,"file":"ValidationUtils.js","sourceRoot":"","sources":["../../../src/commands/validation/ValidationUtils.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,2BAAiC;AACjC,4DAA4B;AAC5B,sEAA8C;AAa9C,MAA8B,eAAe;IAEzC,MAAM,CAAC,iBAAiB,CAAC,QAAgB;QACrC,MAAM,IAAI,GAAG,mBAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,mBAAS,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;QACnE,IAAI,IAAI,KAAK,eAAe,EAAE,CAAC;YAC3B,OAAO,UAAU,CAAC;QACtB,CAAC;aACI,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACvC,OAAO,cAAc,CAAC;QAC1B,CAAC;aACI,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,OAAO,MAAM,CAAC;QAClB,CAAC;aACI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5E,iCAAiC;YACjC,OAAO,QAAQ,CAAC;QACpB,CAAC;aACI,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YACtB,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,wBAAwB,CAAC,GAAwB;QACpD,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YACf,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC;QAC3B,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,IAAI,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;QACjF,CAAC;QACD,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;YAChB,MAAM,IAAI,IAAI,CAAC;QACnB,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC;QAEvB,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YACX,MAAM,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QAC7B,CAAC;QACD,MAAM,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;QAE7B,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACb,MAAM,IAAI,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC;QACtC,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,qBAAqB,CAAC,UAAyB;QAClD,MAAM,OAAO,GAAwB;YACjC,QAAQ,EAAE,UAAU,CAAC,QAAQ,KAAK,oBAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;gBACnE,CAAC,CAAC,UAAU,CAAC,QAAQ,KAAK,oBAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;oBACnE,CAAC,CAAC,MAAM;YACZ,OAAO,EAAE,oBAAE,CAAC,4BAA4B,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC;YACtE,IAAI,EAAE,KAAK,UAAU,CAAC,IAAI,EAAE;SAC/B,CAAC;QACF,IAAI,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACpD,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,6BAA6B,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC5E,OAAO,CAAC,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC5C,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;YAC5B,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,OAAe,EAAE,QAAgB;QACvD,MAAM,QAAQ,GAA0B,EAAE,CAAC;QAE3C,yEAAyE;QACzE,MAAM,UAAU,GAAG,oBAAE,CAAC,aAAa,CAAC,mBAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;QAClF,MAAM,gBAAgB,GAAqB,UAAkB,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,0BAA0B;QAChH,KAAK,MAAM,UAAU,IAAI,gBAAgB,EAAE,CAAC;YACxC,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;YACvD,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAC5B,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QAED,yFAAyF;QACzF,qEAAqE;QACrE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC;gBACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC9E,CAAC;YACD,OAAO,CAAC,EAAE,CAAC;gBACP,MAAM,OAAO,GAAwB;oBACjC,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;oBACnD,IAAI,EAAE,cAAc;oBACpB,QAAQ,EAAE,QAAQ;iBACrB,CAAC;gBACF,MAAM,QAAQ,GAAG,oDAAoD,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC5F,IAAI,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;oBACxC,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;oBACnC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzC,CAAC;qBACI,IAAI,QAAQ,EAAE,CAAC;oBAChB,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACrD,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;oBACzC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACpE,CAAC;gBACD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3B,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,+FAA+F;IAC/F,MAAM,CAAC,kBAAkB,CAAC,UAAkB;QACxC,MAAM,cAAc,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QACpE,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,EAAE;YAC1B,KAAK,MAAM,KAAK,IAAI,IAAA,gBAAW,EAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;gBAC5D,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;oBACtB,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;wBAClF,SAAS;oBACb,CAAC;oBACD,KAAK,CAAC,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtC,CAAC;qBACI,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;oBACtB,KAAK,CAAC,IAAI,CAAC,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC3C,CAAC;YACL,CAAC;QACL,CAAC,CAAC;QACF,KAAK,CAAC,UAAU,CAAC,CAAC;QAClB,OAAO,KAAK,CAAC;IACjB,CAAC;CAEJ;AApID,kCAoIC"}
1
+ {"version":3,"file":"ValidationUtils.js","sourceRoot":"","sources":["../../../src/commands/validation/ValidationUtils.ts"],"names":[],"mappings":"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"}
@@ -79,15 +79,6 @@ class I18nValidator {
79
79
  }
80
80
  static validateRow(row, key, languages, line, headerLength) {
81
81
  const messages = [];
82
- if (/\s/.test(key)) {
83
- messages.push({
84
- severity: 'warning',
85
- code: 'i18n/invalid-key',
86
- message: `The key '${key}' contains whitespace, which makes it awkward to use from the generated typings.`,
87
- line,
88
- target: key
89
- });
90
- }
91
82
  if (row.length > headerLength) {
92
83
  messages.push({
93
84
  severity: 'warning',