@foal/cli 5.1.3 → 5.2.0

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 (166) hide show
  1. package/lib/cli.d.ts +6 -0
  2. package/lib/cli.js +208 -0
  3. package/lib/commands/connectors/connect-angular/connect-angular-command.service.d.ts +15 -0
  4. package/lib/commands/connectors/connect-angular/connect-angular-command.service.js +66 -0
  5. package/lib/commands/connectors/connect-angular/index.d.ts +1 -0
  6. package/lib/commands/connectors/connect-angular/index.js +5 -0
  7. package/lib/commands/connectors/connect-react/connect-react-command.service.d.ts +15 -0
  8. package/lib/commands/connectors/connect-react/connect-react-command.service.js +47 -0
  9. package/lib/commands/connectors/connect-react/index.d.ts +1 -0
  10. package/lib/commands/connectors/connect-react/index.js +5 -0
  11. package/lib/commands/connectors/connect-vue/connect-vue-command.service.d.ts +15 -0
  12. package/lib/commands/connectors/connect-vue/connect-vue-command.service.js +51 -0
  13. package/lib/commands/connectors/connect-vue/index.d.ts +1 -0
  14. package/lib/commands/connectors/connect-vue/index.js +5 -0
  15. package/lib/commands/connectors/index.d.ts +3 -0
  16. package/lib/commands/connectors/index.js +9 -0
  17. package/lib/commands/create-secret/create-secret-command.service.d.ts +7 -0
  18. package/lib/commands/create-secret/create-secret-command.service.js +16 -0
  19. package/lib/commands/create-secret/index.d.ts +1 -0
  20. package/lib/commands/create-secret/index.js +5 -0
  21. package/lib/commands/generators/create-app/create-app-command.service.d.ts +25 -0
  22. package/lib/commands/generators/create-app/create-app-command.service.js +151 -0
  23. package/lib/commands/generators/create-app/index.d.ts +1 -0
  24. package/lib/commands/generators/create-app/index.js +5 -0
  25. package/lib/commands/generators/create-controller/create-controller-command.service.d.ts +19 -0
  26. package/lib/commands/generators/create-controller/create-controller-command.service.js +53 -0
  27. package/lib/commands/generators/create-controller/index.d.ts +1 -0
  28. package/lib/commands/generators/create-controller/index.js +5 -0
  29. package/lib/commands/generators/create-entity/create-entity-command.service.d.ts +17 -0
  30. package/lib/commands/generators/create-entity/create-entity-command.service.js +42 -0
  31. package/lib/commands/generators/create-entity/index.d.ts +1 -0
  32. package/lib/commands/generators/create-entity/index.js +5 -0
  33. package/lib/commands/generators/create-hook/create-hook-command.service.d.ts +17 -0
  34. package/lib/commands/generators/create-hook/create-hook-command.service.js +40 -0
  35. package/lib/commands/generators/create-hook/index.d.ts +1 -0
  36. package/lib/commands/generators/create-hook/index.js +5 -0
  37. package/lib/commands/generators/create-rest-api/create-rest-api-command.service.d.ts +21 -0
  38. package/lib/commands/generators/create-rest-api/create-rest-api-command.service.js +80 -0
  39. package/lib/commands/generators/create-rest-api/index.d.ts +1 -0
  40. package/lib/commands/generators/create-rest-api/index.js +5 -0
  41. package/lib/commands/generators/create-script/create-script-command.service.d.ts +17 -0
  42. package/lib/commands/generators/create-script/create-script-command.service.js +28 -0
  43. package/lib/commands/generators/create-script/index.d.ts +1 -0
  44. package/lib/commands/generators/create-script/index.js +5 -0
  45. package/lib/commands/generators/create-service/create-service-command.service.d.ts +17 -0
  46. package/lib/commands/generators/create-service/create-service-command.service.js +40 -0
  47. package/lib/commands/generators/create-service/index.d.ts +1 -0
  48. package/lib/commands/generators/create-service/index.js +5 -0
  49. package/lib/commands/generators/index.d.ts +7 -0
  50. package/lib/commands/generators/index.js +17 -0
  51. package/lib/commands/index.d.ts +6 -0
  52. package/lib/commands/index.js +23 -0
  53. package/lib/commands/rmdir/index.d.ts +1 -0
  54. package/lib/commands/rmdir/index.js +5 -0
  55. package/lib/commands/rmdir/rmdir-command.service.d.ts +12 -0
  56. package/lib/commands/rmdir/rmdir-command.service.js +29 -0
  57. package/lib/commands/run-script/index.d.ts +1 -0
  58. package/lib/commands/run-script/index.js +5 -0
  59. package/lib/commands/run-script/run-script-command.service.d.ts +10 -0
  60. package/lib/commands/run-script/run-script-command.service.js +79 -0
  61. package/lib/commands/upgrade/index.d.ts +1 -0
  62. package/lib/commands/upgrade/index.js +5 -0
  63. package/lib/commands/upgrade/upgrade-command.service.d.ts +24 -0
  64. package/lib/commands/upgrade/upgrade-command.service.js +49 -0
  65. package/lib/index.d.ts +1 -6
  66. package/lib/index.js +1 -157
  67. package/lib/services/crypto/crypto.service.d.ts +11 -0
  68. package/lib/services/crypto/crypto.service.js +20 -0
  69. package/lib/services/crypto/index.d.ts +1 -0
  70. package/lib/services/crypto/index.js +5 -0
  71. package/lib/services/file-system/file-system.service.d.ts +24 -0
  72. package/lib/services/file-system/file-system.service.js +89 -0
  73. package/lib/services/file-system/index.d.ts +1 -0
  74. package/lib/services/file-system/index.js +5 -0
  75. package/lib/{generate/file-system.d.ts → services/generator/generator.d.ts} +34 -41
  76. package/lib/{generate/file-system.js → services/generator/generator.js} +82 -112
  77. package/lib/services/generator/index.d.ts +1 -0
  78. package/lib/services/generator/index.js +6 -0
  79. package/lib/services/index.d.ts +5 -0
  80. package/lib/services/index.js +14 -0
  81. package/lib/services/logger/index.d.ts +1 -0
  82. package/lib/services/logger/index.js +5 -0
  83. package/lib/services/logger/logger.service.d.ts +8 -0
  84. package/lib/services/logger/logger.service.js +39 -0
  85. package/lib/services/util/index.d.ts +1 -0
  86. package/lib/services/util/index.js +5 -0
  87. package/lib/services/util/util.service.d.ts +12 -0
  88. package/lib/services/util/util.service.js +33 -0
  89. package/package.json +5 -8
  90. package/templates/file-system/test-template.txt +1 -0
  91. package/lib/create-secret/create-secret.d.ts +0 -7
  92. package/lib/create-secret/create-secret.js +0 -15
  93. package/lib/create-secret/index.d.ts +0 -1
  94. package/lib/create-secret/index.js +0 -5
  95. package/lib/generate/generators/angular/connect-angular.d.ts +0 -1
  96. package/lib/generate/generators/angular/connect-angular.js +0 -52
  97. package/lib/generate/generators/angular/index.d.ts +0 -1
  98. package/lib/generate/generators/angular/index.js +0 -5
  99. package/lib/generate/generators/app/create-app.d.ts +0 -7
  100. package/lib/generate/generators/app/create-app.js +0 -134
  101. package/lib/generate/generators/app/index.d.ts +0 -1
  102. package/lib/generate/generators/app/index.js +0 -5
  103. package/lib/generate/generators/controller/create-controller.d.ts +0 -4
  104. package/lib/generate/generators/controller/create-controller.js +0 -39
  105. package/lib/generate/generators/controller/index.d.ts +0 -1
  106. package/lib/generate/generators/controller/index.js +0 -5
  107. package/lib/generate/generators/entity/create-entity.d.ts +0 -3
  108. package/lib/generate/generators/entity/create-entity.js +0 -28
  109. package/lib/generate/generators/entity/index.d.ts +0 -1
  110. package/lib/generate/generators/entity/index.js +0 -5
  111. package/lib/generate/generators/hook/create-hook.d.ts +0 -3
  112. package/lib/generate/generators/hook/create-hook.js +0 -26
  113. package/lib/generate/generators/hook/index.d.ts +0 -1
  114. package/lib/generate/generators/hook/index.js +0 -5
  115. package/lib/generate/generators/index.d.ts +0 -11
  116. package/lib/generate/generators/index.js +0 -27
  117. package/lib/generate/generators/react/connect-react.d.ts +0 -1
  118. package/lib/generate/generators/react/connect-react.js +0 -33
  119. package/lib/generate/generators/react/index.d.ts +0 -1
  120. package/lib/generate/generators/react/index.js +0 -5
  121. package/lib/generate/generators/rest-api/create-rest-api.d.ts +0 -5
  122. package/lib/generate/generators/rest-api/create-rest-api.js +0 -63
  123. package/lib/generate/generators/rest-api/index.d.ts +0 -1
  124. package/lib/generate/generators/rest-api/index.js +0 -5
  125. package/lib/generate/generators/script/create-script.d.ts +0 -3
  126. package/lib/generate/generators/script/create-script.js +0 -15
  127. package/lib/generate/generators/script/index.d.ts +0 -1
  128. package/lib/generate/generators/script/index.js +0 -5
  129. package/lib/generate/generators/service/create-service.d.ts +0 -3
  130. package/lib/generate/generators/service/create-service.js +0 -26
  131. package/lib/generate/generators/service/index.d.ts +0 -1
  132. package/lib/generate/generators/service/index.js +0 -5
  133. package/lib/generate/generators/upgrade/index.d.ts +0 -1
  134. package/lib/generate/generators/upgrade/index.js +0 -5
  135. package/lib/generate/generators/upgrade/upgrade.d.ts +0 -8
  136. package/lib/generate/generators/upgrade/upgrade.js +0 -34
  137. package/lib/generate/generators/vue/connect-vue.d.ts +0 -1
  138. package/lib/generate/generators/vue/connect-vue.js +0 -37
  139. package/lib/generate/generators/vue/index.d.ts +0 -1
  140. package/lib/generate/generators/vue/index.js +0 -5
  141. package/lib/generate/index.d.ts +0 -1
  142. package/lib/generate/index.js +0 -17
  143. package/lib/rmdir/index.d.ts +0 -1
  144. package/lib/rmdir/index.js +0 -5
  145. package/lib/rmdir/rmdir.util.d.ts +0 -8
  146. package/lib/rmdir/rmdir.util.js +0 -24
  147. package/lib/run/get-command-line-arguments.util.d.ts +0 -1
  148. package/lib/run/get-command-line-arguments.util.js +0 -21
  149. package/lib/run/index.d.ts +0 -1
  150. package/lib/run/index.js +0 -5
  151. package/lib/run/run-script.d.ts +0 -7
  152. package/lib/run/run-script.js +0 -76
  153. /package/lib/{generate → commands/generators}/utils/get-names.d.ts +0 -0
  154. /package/lib/{generate → commands/generators}/utils/get-names.js +0 -0
  155. /package/lib/{generate → commands/generators}/utils/index.d.ts +0 -0
  156. /package/lib/{generate → commands/generators}/utils/index.js +0 -0
  157. /package/lib/{generate → commands/generators}/utils/init-git-repo.d.ts +0 -0
  158. /package/lib/{generate → commands/generators}/utils/init-git-repo.js +0 -0
  159. /package/lib/{generate → commands/generators}/utils/install-dependencies.d.ts +0 -0
  160. /package/lib/{generate → commands/generators}/utils/install-dependencies.js +0 -0
  161. /package/lib/{generate → commands/generators}/utils/logger.d.ts +0 -0
  162. /package/lib/{generate → commands/generators}/utils/logger.js +0 -0
  163. /package/lib/{generate → commands/generators}/utils/mkdir-if-does-not-exist.d.ts +0 -0
  164. /package/lib/{generate → commands/generators}/utils/mkdir-if-does-not-exist.js +0 -0
  165. /package/lib/{generate → commands/generators}/utils/rm-dir-and-files-if-exist.d.ts +0 -0
  166. /package/lib/{generate → commands/generators}/utils/rm-dir-and-files-if-exist.js +0 -0
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createService = void 0;
4
- var create_service_1 = require("./create-service");
5
- Object.defineProperty(exports, "createService", { enumerable: true, get: function () { return create_service_1.createService; } });
@@ -1 +0,0 @@
1
- export { upgrade } from './upgrade';
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.upgrade = void 0;
4
- var upgrade_1 = require("./upgrade");
5
- Object.defineProperty(exports, "upgrade", { enumerable: true, get: function () { return upgrade_1.upgrade; } });
@@ -1,8 +0,0 @@
1
- declare function getLatestVersion(): Promise<string>;
2
- export declare function upgrade({ version, autoInstall }: {
3
- version?: string;
4
- autoInstall?: boolean;
5
- }, options?: {
6
- getLatestVersion: typeof getLatestVersion;
7
- }): Promise<void>;
8
- export {};
@@ -1,34 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.upgrade = upgrade;
4
- // FoalTS
5
- const file_system_1 = require("../../file-system");
6
- const utils_1 = require("../../utils");
7
- async function getLatestVersion() {
8
- const response = await fetch('https://registry.npmjs.org/@foal/core/latest');
9
- const { version } = await response.json();
10
- return version;
11
- }
12
- async function upgrade({ version, autoInstall }, options = { getLatestVersion }) {
13
- version ??= await options.getLatestVersion();
14
- utils_1.logger.log();
15
- utils_1.logger.log(` Upgrading @foal/* dependencies to version ${version}...`);
16
- utils_1.logger.log();
17
- const fs = new file_system_1.FileSystem();
18
- const dependencies = fs.getProjectDependencies();
19
- for (const dependency of dependencies) {
20
- if (dependency.name.startsWith('@foal/')) {
21
- fs.setOrUpdateProjectDependency(dependency.name, version);
22
- }
23
- }
24
- const devDependencies = fs.getProjectDevDependencies();
25
- for (const devDependency of devDependencies) {
26
- if (devDependency.name.startsWith('@foal/')) {
27
- fs.setOrUpdateProjectDevDependency(devDependency.name, version);
28
- }
29
- }
30
- if (autoInstall) {
31
- await (0, utils_1.installDependencies)();
32
- utils_1.logger.log();
33
- }
34
- }
@@ -1 +0,0 @@
1
- export declare function connectVue(path: string): void;
@@ -1,37 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.connectVue = connectVue;
4
- const path_1 = require("path");
5
- const safe_1 = require("colors/safe");
6
- const file_system_1 = require("../../file-system");
7
- function connectVue(path) {
8
- const fs = new file_system_1.FileSystem();
9
- if (!fs.exists(path)) {
10
- if (process.env.P1Z7kEbSUUPMxF8GqPwD8Gx_FOAL_CLI_TEST !== 'true') {
11
- console.log((0, safe_1.red)(` The directory ${path} does not exist.`));
12
- }
13
- return;
14
- }
15
- if (!fs.exists((0, path_1.join)(path, 'package.json'))) {
16
- if (process.env.P1Z7kEbSUUPMxF8GqPwD8Gx_FOAL_CLI_TEST !== 'true') {
17
- console.log((0, safe_1.red)(` The directory ${path} is not a Vue project (missing package.json).`));
18
- }
19
- return;
20
- }
21
- fs
22
- .cd(path)
23
- .modify('package.json', content => {
24
- const pkg = JSON.parse(content);
25
- pkg.vue = pkg.vue || {};
26
- // Proxy configuration
27
- pkg.vue.devServer = pkg.vue.devServer || {};
28
- pkg.vue.devServer.proxy = pkg.vue.devServer.proxy || {};
29
- pkg.vue.devServer.proxy['^/api'] = { target: 'http://localhost:3001' };
30
- // Output build directory
31
- const outputPath = (0, path_1.join)((0, path_1.relative)(path, process.cwd()), 'public')
32
- // Make projects generated on Windows build on Unix.
33
- .replace(/\\/g, '/');
34
- pkg.vue.outputDir = outputPath;
35
- return JSON.stringify(pkg, null, 2);
36
- });
37
- }
@@ -1 +0,0 @@
1
- export { connectVue } from './connect-vue';
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.connectVue = void 0;
4
- var connect_vue_1 = require("./connect-vue");
5
- Object.defineProperty(exports, "connectVue", { enumerable: true, get: function () { return connect_vue_1.connectVue; } });
@@ -1 +0,0 @@
1
- export * from './generators';
@@ -1,17 +0,0 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./generators"), exports);
@@ -1 +0,0 @@
1
- export { rmdir } from './rmdir.util';
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.rmdir = void 0;
4
- var rmdir_util_1 = require("./rmdir.util");
5
- Object.defineProperty(exports, "rmdir", { enumerable: true, get: function () { return rmdir_util_1.rmdir; } });
@@ -1,8 +0,0 @@
1
- /**
2
- * Remove a directory and all its contents, including any subdirectories and files.
3
- *
4
- * @export
5
- * @param {string} path - The path of the directory
6
- * @returns {Promise<void>}
7
- */
8
- export declare function rmdir(path: string): Promise<void>;
@@ -1,24 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.rmdir = rmdir;
4
- // std
5
- const promises_1 = require("node:fs/promises");
6
- /**
7
- * Remove a directory and all its contents, including any subdirectories and files.
8
- *
9
- * @export
10
- * @param {string} path - The path of the directory
11
- * @returns {Promise<void>}
12
- */
13
- async function rmdir(path) {
14
- try {
15
- await (0, promises_1.readdir)(path);
16
- }
17
- catch (error) {
18
- if (error.code === 'ENOENT') {
19
- return;
20
- }
21
- throw error;
22
- }
23
- await (0, promises_1.rm)(path, { recursive: true });
24
- }
@@ -1 +0,0 @@
1
- export declare function getCommandLineArguments(argv: string[]): any;
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getCommandLineArguments = getCommandLineArguments;
4
- function getCommandLineArguments(argv) {
5
- const args = argv.splice(4);
6
- const result = {};
7
- args.forEach(keyAndValue => {
8
- const [key, value] = keyAndValue.split('=');
9
- if (typeof value === 'undefined') {
10
- result[key] = true;
11
- return;
12
- }
13
- try {
14
- result[key] = JSON.parse(value);
15
- }
16
- catch (error) {
17
- result[key] = value;
18
- }
19
- });
20
- return result;
21
- }
@@ -1 +0,0 @@
1
- export { runScript } from './run-script';
package/lib/run/index.js DELETED
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.runScript = void 0;
4
- var run_script_1 = require("./run-script");
5
- Object.defineProperty(exports, "runScript", { enumerable: true, get: function () { return run_script_1.runScript; } });
@@ -1,7 +0,0 @@
1
- import type { Logger, ServiceManager } from '@foal/core';
2
- export declare function runScript({ name }: {
3
- name: string;
4
- }, argv: string[]): Promise<void>;
5
- export declare function execScript({ name }: {
6
- name: string;
7
- }, argv: string[], services: ServiceManager, logger: Logger): Promise<void>;
@@ -1,76 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.runScript = runScript;
4
- exports.execScript = execScript;
5
- // std
6
- const fs_1 = require("fs");
7
- const crypto_1 = require("crypto");
8
- // 3p
9
- const ajv_1 = require("ajv");
10
- const ajv_formats_1 = require("ajv-formats");
11
- // FoalTS
12
- const get_command_line_arguments_util_1 = require("./get-command-line-arguments.util");
13
- // TODO: test this function
14
- async function runScript({ name }, argv) {
15
- try {
16
- const { Logger, ServiceManager } = require(require.resolve('@foal/core', {
17
- paths: [process.cwd()],
18
- }));
19
- const services = new ServiceManager();
20
- const logger = services.get(Logger);
21
- logger.initLogContext(() => execScript({ name }, argv, services, logger).catch(error => console.error(error)));
22
- }
23
- catch (error) {
24
- if (error.code === 'MODULE_NOT_FOUND') {
25
- console.error('@foal/core module not found. Are you sure you are in a FoalTS project?');
26
- return;
27
- }
28
- throw error;
29
- }
30
- }
31
- async function execScript({ name }, argv, services, logger) {
32
- logger.addLogContext({
33
- scriptId: (0, crypto_1.randomUUID)(),
34
- scriptName: name
35
- });
36
- if (!(0, fs_1.existsSync)(`build/scripts/${name}.js`)) {
37
- if ((0, fs_1.existsSync)(`src/scripts/${name}.ts`)) {
38
- logger.error(`Script "${name}" not found in build/scripts/ but found in src/scripts/. Did you forget to build it?`);
39
- }
40
- else {
41
- logger.error(`Script "${name}" not found.`);
42
- }
43
- return;
44
- }
45
- const { main, schema } = require(require.resolve(`./build/scripts/${name}`, {
46
- paths: [process.cwd()],
47
- }));
48
- if (!main) {
49
- logger.error(`No "main" function found in script "${name}".`);
50
- return;
51
- }
52
- const args = (0, get_command_line_arguments_util_1.getCommandLineArguments)(argv);
53
- if (schema) {
54
- const ajv = new ajv_1.default({ useDefaults: true, allErrors: true });
55
- (0, ajv_formats_1.default)(ajv);
56
- if (!ajv.validate(schema, args)) {
57
- ajv.errors.forEach(err => {
58
- if (err.instancePath) {
59
- logger.error(`Script argument "${err.instancePath.split('/')[1]}" ${err.message}.`);
60
- }
61
- else {
62
- logger.error(`Script arguments ${err.message}.`);
63
- }
64
- });
65
- return;
66
- }
67
- }
68
- try {
69
- await main(args, services, logger);
70
- logger.info(`Script "${name}" completed.`);
71
- }
72
- catch (error) {
73
- logger.error(error.message, { error });
74
- logger.error(`Script "${name}" failed.`);
75
- }
76
- }