@gadmin2n/cli 0.0.73

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 (182) hide show
  1. package/.circleci/config.yml +62 -0
  2. package/.claude/settings.local.json +7 -0
  3. package/.github/ISSUE_TEMPLATE/Bug_report.yml +106 -0
  4. package/.github/ISSUE_TEMPLATE/Feature_request.yml +52 -0
  5. package/.github/ISSUE_TEMPLATE/Regression.yml +78 -0
  6. package/.github/ISSUE_TEMPLATE/config.yml +7 -0
  7. package/.github/PULL_REQUEST_TEMPLATE.md +41 -0
  8. package/LICENSE +24 -0
  9. package/README.md +56 -0
  10. package/actions/abstract.action.d.ts +4 -0
  11. package/actions/abstract.action.js +6 -0
  12. package/actions/add.action.d.ts +12 -0
  13. package/actions/add.action.js +129 -0
  14. package/actions/build.action.d.ts +27 -0
  15. package/actions/build.action.js +108 -0
  16. package/actions/generate.action.d.ts +5 -0
  17. package/actions/generate.action.js +95 -0
  18. package/actions/index.d.ts +8 -0
  19. package/actions/index.js +24 -0
  20. package/actions/info.action.d.ts +28 -0
  21. package/actions/info.action.js +129 -0
  22. package/actions/new.action.d.ts +7 -0
  23. package/actions/new.action.js +294 -0
  24. package/actions/prisma.action.d.ts +5 -0
  25. package/actions/prisma.action.js +153 -0
  26. package/actions/start.action.d.ts +9 -0
  27. package/actions/start.action.js +115 -0
  28. package/actions/update.action.d.ts +5 -0
  29. package/actions/update.action.js +26 -0
  30. package/bin/gadmin.d.ts +2 -0
  31. package/bin/gadmin.js +25 -0
  32. package/commands/abstract.command.d.ts +7 -0
  33. package/commands/abstract.command.js +9 -0
  34. package/commands/add.command.d.ts +5 -0
  35. package/commands/add.command.js +43 -0
  36. package/commands/build.command.d.ts +5 -0
  37. package/commands/build.command.js +50 -0
  38. package/commands/command.input.d.ts +25 -0
  39. package/commands/command.input.js +28 -0
  40. package/commands/command.loader.d.ts +5 -0
  41. package/commands/command.loader.js +33 -0
  42. package/commands/generate.command.d.ts +7 -0
  43. package/commands/generate.command.js +105 -0
  44. package/commands/index.d.ts +2 -0
  45. package/commands/index.js +18 -0
  46. package/commands/info.command.d.ts +5 -0
  47. package/commands/info.command.js +25 -0
  48. package/commands/new.command.d.ts +5 -0
  49. package/commands/new.command.js +52 -0
  50. package/commands/start.command.d.ts +5 -0
  51. package/commands/start.command.js +64 -0
  52. package/commands/update.command.d.ts +5 -0
  53. package/commands/update.command.js +30 -0
  54. package/lib/compiler/assets-manager.d.ts +15 -0
  55. package/lib/compiler/assets-manager.js +103 -0
  56. package/lib/compiler/compiler.d.ts +12 -0
  57. package/lib/compiler/compiler.js +60 -0
  58. package/lib/compiler/defaults/webpack-defaults.d.ts +3 -0
  59. package/lib/compiler/defaults/webpack-defaults.js +95 -0
  60. package/lib/compiler/helpers/append-extension.d.ts +1 -0
  61. package/lib/compiler/helpers/append-extension.js +8 -0
  62. package/lib/compiler/helpers/copy-path-resolve.d.ts +7 -0
  63. package/lib/compiler/helpers/copy-path-resolve.js +26 -0
  64. package/lib/compiler/helpers/get-value-or-default.d.ts +4 -0
  65. package/lib/compiler/helpers/get-value-or-default.js +67 -0
  66. package/lib/compiler/helpers/tsconfig-provider.d.ts +11 -0
  67. package/lib/compiler/helpers/tsconfig-provider.js +22 -0
  68. package/lib/compiler/hooks/tsconfig-paths.hook.d.ts +2 -0
  69. package/lib/compiler/hooks/tsconfig-paths.hook.js +70 -0
  70. package/lib/compiler/plugins-loader.d.ts +21 -0
  71. package/lib/compiler/plugins-loader.js +54 -0
  72. package/lib/compiler/typescript-loader.d.ts +6 -0
  73. package/lib/compiler/typescript-loader.js +31 -0
  74. package/lib/compiler/watch-compiler.d.ts +14 -0
  75. package/lib/compiler/watch-compiler.js +70 -0
  76. package/lib/compiler/webpack-compiler.d.ts +9 -0
  77. package/lib/compiler/webpack-compiler.js +74 -0
  78. package/lib/compiler/workspace-utils.d.ts +4 -0
  79. package/lib/compiler/workspace-utils.js +26 -0
  80. package/lib/configuration/configuration.d.ts +52 -0
  81. package/lib/configuration/configuration.js +2 -0
  82. package/lib/configuration/configuration.loader.d.ts +4 -0
  83. package/lib/configuration/configuration.loader.js +2 -0
  84. package/lib/configuration/defaults.d.ts +4 -0
  85. package/lib/configuration/defaults.js +56 -0
  86. package/lib/configuration/gadmin-configuration.loader.d.ts +8 -0
  87. package/lib/configuration/gadmin-configuration.loader.js +39 -0
  88. package/lib/configuration/index.d.ts +3 -0
  89. package/lib/configuration/index.js +19 -0
  90. package/lib/dependency-managers/index.d.ts +1 -0
  91. package/lib/dependency-managers/index.js +17 -0
  92. package/lib/dependency-managers/nest.dependency-manager.d.ts +7 -0
  93. package/lib/dependency-managers/nest.dependency-manager.js +48 -0
  94. package/lib/package-managers/abstract.package-manager.d.ts +25 -0
  95. package/lib/package-managers/abstract.package-manager.js +185 -0
  96. package/lib/package-managers/index.d.ts +8 -0
  97. package/lib/package-managers/index.js +24 -0
  98. package/lib/package-managers/npm.package-manager.d.ts +7 -0
  99. package/lib/package-managers/npm.package-manager.js +26 -0
  100. package/lib/package-managers/package-manager-commands.d.ts +9 -0
  101. package/lib/package-managers/package-manager-commands.js +2 -0
  102. package/lib/package-managers/package-manager.d.ts +5 -0
  103. package/lib/package-managers/package-manager.factory.d.ts +6 -0
  104. package/lib/package-managers/package-manager.factory.js +54 -0
  105. package/lib/package-managers/package-manager.js +9 -0
  106. package/lib/package-managers/pnpm.package-manager.d.ts +7 -0
  107. package/lib/package-managers/pnpm.package-manager.js +27 -0
  108. package/lib/package-managers/project.dependency.d.ts +4 -0
  109. package/lib/package-managers/project.dependency.js +2 -0
  110. package/lib/package-managers/yarn.package-manager.d.ts +7 -0
  111. package/lib/package-managers/yarn.package-manager.js +26 -0
  112. package/lib/questions/questions.d.ts +2 -0
  113. package/lib/questions/questions.js +23 -0
  114. package/lib/readers/file-system.reader.d.ts +8 -0
  115. package/lib/readers/file-system.reader.js +61 -0
  116. package/lib/readers/index.d.ts +2 -0
  117. package/lib/readers/index.js +18 -0
  118. package/lib/readers/reader.d.ts +5 -0
  119. package/lib/readers/reader.js +2 -0
  120. package/lib/runners/abstract.runner.d.ts +11 -0
  121. package/lib/runners/abstract.runner.js +55 -0
  122. package/lib/runners/git.runner.d.ts +4 -0
  123. package/lib/runners/git.runner.js +10 -0
  124. package/lib/runners/index.d.ts +3 -0
  125. package/lib/runners/index.js +19 -0
  126. package/lib/runners/npm.runner.d.ts +4 -0
  127. package/lib/runners/npm.runner.js +10 -0
  128. package/lib/runners/pnpm.runner.d.ts +4 -0
  129. package/lib/runners/pnpm.runner.js +10 -0
  130. package/lib/runners/runner.d.ts +6 -0
  131. package/lib/runners/runner.factory.d.ts +8 -0
  132. package/lib/runners/runner.factory.js +26 -0
  133. package/lib/runners/runner.js +10 -0
  134. package/lib/runners/schematic.runner.d.ts +6 -0
  135. package/lib/runners/schematic.runner.js +21 -0
  136. package/lib/runners/yarn.runner.d.ts +4 -0
  137. package/lib/runners/yarn.runner.js +10 -0
  138. package/lib/schematics/abstract.collection.d.ts +10 -0
  139. package/lib/schematics/abstract.collection.js +34 -0
  140. package/lib/schematics/collection.d.ts +3 -0
  141. package/lib/schematics/collection.factory.d.ts +5 -0
  142. package/lib/schematics/collection.factory.js +18 -0
  143. package/lib/schematics/collection.js +7 -0
  144. package/lib/schematics/custom.collection.d.ts +3 -0
  145. package/lib/schematics/custom.collection.js +7 -0
  146. package/lib/schematics/gadmin.collection.d.ts +16 -0
  147. package/lib/schematics/gadmin.collection.js +142 -0
  148. package/lib/schematics/index.d.ts +4 -0
  149. package/lib/schematics/index.js +20 -0
  150. package/lib/schematics/schematic.option.d.ts +8 -0
  151. package/lib/schematics/schematic.option.js +44 -0
  152. package/lib/ui/banner.d.ts +1 -0
  153. package/lib/ui/banner.js +11 -0
  154. package/lib/ui/emojis.d.ts +19 -0
  155. package/lib/ui/emojis.js +23 -0
  156. package/lib/ui/errors.d.ts +4 -0
  157. package/lib/ui/errors.js +8 -0
  158. package/lib/ui/index.d.ts +5 -0
  159. package/lib/ui/index.js +21 -0
  160. package/lib/ui/messages.d.ts +26 -0
  161. package/lib/ui/messages.js +34 -0
  162. package/lib/ui/prefixes.d.ts +2 -0
  163. package/lib/ui/prefixes.js +6 -0
  164. package/lib/utils/formatting.d.ts +8 -0
  165. package/lib/utils/formatting.js +19 -0
  166. package/lib/utils/is-error.d.ts +1 -0
  167. package/lib/utils/is-error.js +11 -0
  168. package/lib/utils/load-configuration.d.ts +2 -0
  169. package/lib/utils/load-configuration.js +21 -0
  170. package/lib/utils/local-binaries.d.ts +3 -0
  171. package/lib/utils/local-binaries.js +16 -0
  172. package/lib/utils/project-utils.d.ts +8 -0
  173. package/lib/utils/project-utils.js +69 -0
  174. package/lib/utils/remaining-flags.d.ts +2 -0
  175. package/lib/utils/remaining-flags.js +37 -0
  176. package/lib/utils/tree-kill.d.ts +1 -0
  177. package/lib/utils/tree-kill.js +66 -0
  178. package/package.json +105 -0
  179. package/test/lib/compiler/hooks/__snapshots__/tsconfig-paths.hook.spec.ts.snap +68 -0
  180. package/test/lib/compiler/hooks/fixtures/aliased-imports/src/bar.tsx +1 -0
  181. package/test/lib/compiler/hooks/fixtures/aliased-imports/src/baz.js +1 -0
  182. package/test/lib/compiler/hooks/fixtures/aliased-imports/src/qux.jsx +1 -0
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.BuildAction = void 0;
13
+ const chalk = require("chalk");
14
+ const path_1 = require("path");
15
+ const assets_manager_1 = require("../lib/compiler/assets-manager");
16
+ const compiler_1 = require("../lib/compiler/compiler");
17
+ const get_value_or_default_1 = require("../lib/compiler/helpers/get-value-or-default");
18
+ const tsconfig_provider_1 = require("../lib/compiler/helpers/tsconfig-provider");
19
+ const plugins_loader_1 = require("../lib/compiler/plugins-loader");
20
+ const typescript_loader_1 = require("../lib/compiler/typescript-loader");
21
+ const watch_compiler_1 = require("../lib/compiler/watch-compiler");
22
+ const webpack_compiler_1 = require("../lib/compiler/webpack-compiler");
23
+ const workspace_utils_1 = require("../lib/compiler/workspace-utils");
24
+ const configuration_1 = require("../lib/configuration");
25
+ const defaults_1 = require("../lib/configuration/defaults");
26
+ const readers_1 = require("../lib/readers");
27
+ const ui_1 = require("../lib/ui");
28
+ const abstract_action_1 = require("./abstract.action");
29
+ class BuildAction extends abstract_action_1.AbstractAction {
30
+ constructor() {
31
+ super(...arguments);
32
+ this.pluginsLoader = new plugins_loader_1.PluginsLoader();
33
+ this.tsLoader = new typescript_loader_1.TypeScriptBinaryLoader();
34
+ this.tsConfigProvider = new tsconfig_provider_1.TsConfigProvider(this.tsLoader);
35
+ this.compiler = new compiler_1.Compiler(this.pluginsLoader, this.tsConfigProvider, this.tsLoader);
36
+ this.webpackCompiler = new webpack_compiler_1.WebpackCompiler(this.pluginsLoader);
37
+ this.watchCompiler = new watch_compiler_1.WatchCompiler(this.pluginsLoader, this.tsConfigProvider, this.tsLoader);
38
+ this.fileSystemReader = new readers_1.FileSystemReader(process.cwd());
39
+ this.loader = new configuration_1.GadminConfigurationLoader(this.fileSystemReader);
40
+ this.assetsManager = new assets_manager_1.AssetsManager();
41
+ this.workspaceUtils = new workspace_utils_1.WorkspaceUtils();
42
+ }
43
+ handle(inputs, options) {
44
+ return __awaiter(this, void 0, void 0, function* () {
45
+ try {
46
+ const watchModeOption = options.find((option) => option.name === 'watch');
47
+ const watchMode = !!(watchModeOption && watchModeOption.value);
48
+ const watchAssetsModeOption = options.find((option) => option.name === 'watchAssets');
49
+ const watchAssetsMode = !!(watchAssetsModeOption && watchAssetsModeOption.value);
50
+ yield this.runBuild(inputs, options, watchMode, watchAssetsMode);
51
+ }
52
+ catch (err) {
53
+ if (err instanceof Error) {
54
+ console.log(`\n${ui_1.ERROR_PREFIX} ${err.message}\n`);
55
+ }
56
+ else {
57
+ console.error(`\n${chalk.red(err)}\n`);
58
+ }
59
+ process.exit(1);
60
+ }
61
+ });
62
+ }
63
+ runBuild(inputs, options, watchMode, watchAssetsMode, isDebugEnabled = false, onSuccess) {
64
+ return __awaiter(this, void 0, void 0, function* () {
65
+ const configFileName = options.find((option) => option.name === 'config')
66
+ .value;
67
+ const configuration = yield this.loader.load(configFileName);
68
+ const appName = inputs.find((input) => input.name === 'app')
69
+ .value;
70
+ const pathToTsconfig = (0, get_value_or_default_1.getValueOrDefault)(configuration, 'compilerOptions.tsConfigPath', appName, 'path', options);
71
+ const { options: tsOptions } = this.tsConfigProvider.getByConfigFilename(pathToTsconfig);
72
+ const outDir = tsOptions.outDir || defaults_1.defaultOutDir;
73
+ const isWebpackEnabled = (0, get_value_or_default_1.getValueOrDefault)(configuration, 'compilerOptions.webpack', appName, 'webpack', options);
74
+ yield this.workspaceUtils.deleteOutDirIfEnabled(configuration, appName, outDir);
75
+ this.assetsManager.copyAssets(configuration, appName, outDir, watchAssetsMode);
76
+ if (isWebpackEnabled) {
77
+ const webpackPath = (0, get_value_or_default_1.getValueOrDefault)(configuration, 'compilerOptions.webpackConfigPath', appName, 'webpackPath', options);
78
+ const webpackConfigFactoryOrConfig = this.getWebpackConfigFactoryByPath(webpackPath, configuration.compilerOptions.webpackConfigPath);
79
+ return this.webpackCompiler.run(configuration, webpackConfigFactoryOrConfig, pathToTsconfig, appName, isDebugEnabled, watchMode, this.assetsManager, onSuccess);
80
+ }
81
+ if (watchMode) {
82
+ const tsCompilerOptions = {};
83
+ const isPreserveWatchOutputEnabled = options.find((option) => option.name === 'preserveWatchOutput' && option.value === true);
84
+ if (isPreserveWatchOutputEnabled) {
85
+ tsCompilerOptions.preserveWatchOutput = true;
86
+ }
87
+ this.watchCompiler.run(configuration, pathToTsconfig, appName, tsCompilerOptions, onSuccess);
88
+ }
89
+ else {
90
+ this.compiler.run(configuration, pathToTsconfig, appName, onSuccess);
91
+ this.assetsManager.closeWatchers();
92
+ }
93
+ });
94
+ }
95
+ getWebpackConfigFactoryByPath(webpackPath, defaultPath) {
96
+ const pathToWebpackFile = (0, path_1.join)(process.cwd(), webpackPath);
97
+ try {
98
+ return require(pathToWebpackFile);
99
+ }
100
+ catch (err) {
101
+ if (webpackPath !== defaultPath) {
102
+ throw err;
103
+ }
104
+ return ({}) => ({});
105
+ }
106
+ }
107
+ }
108
+ exports.BuildAction = BuildAction;
@@ -0,0 +1,5 @@
1
+ import { Input } from '../commands';
2
+ import { AbstractAction } from './abstract.action';
3
+ export declare class GenerateAction extends AbstractAction {
4
+ handle(inputs: Input[], options: Input[]): Promise<void>;
5
+ }
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.GenerateAction = void 0;
13
+ const chalk = require("chalk");
14
+ const get_value_or_default_1 = require("../lib/compiler/helpers/get-value-or-default");
15
+ const schematics_1 = require("../lib/schematics");
16
+ const ui_1 = require("../lib/ui");
17
+ const load_configuration_1 = require("../lib/utils/load-configuration");
18
+ const project_utils_1 = require("../lib/utils/project-utils");
19
+ const abstract_action_1 = require("./abstract.action");
20
+ class GenerateAction extends abstract_action_1.AbstractAction {
21
+ handle(inputs, options) {
22
+ return __awaiter(this, void 0, void 0, function* () {
23
+ yield generateFiles(inputs.concat(options));
24
+ });
25
+ }
26
+ }
27
+ exports.GenerateAction = GenerateAction;
28
+ const generateFiles = (inputs) => __awaiter(void 0, void 0, void 0, function* () {
29
+ const configuration = yield (0, load_configuration_1.loadConfiguration)();
30
+ const collectionOption = inputs.find((option) => option.name === 'collection').value;
31
+ const schematic = inputs.find((option) => option.name === 'schematic')
32
+ .value;
33
+ const appName = inputs.find((option) => option.name === 'project')
34
+ .value;
35
+ const spec = inputs.find((option) => option.name === 'spec');
36
+ const collection = schematics_1.CollectionFactory.create(collectionOption || configuration.collection || schematics_1.Collection.GADMIN_GENERATOR);
37
+ const schematicOptions = mapSchematicOptions(inputs);
38
+ schematicOptions.push(new schematics_1.SchematicOption('language', configuration.language));
39
+ const configurationProjects = configuration.projects;
40
+ let sourceRoot = appName
41
+ ? (0, get_value_or_default_1.getValueOrDefault)(configuration, 'sourceRoot', appName)
42
+ : configuration.sourceRoot;
43
+ const specValue = spec.value;
44
+ const specOptions = spec.options;
45
+ let generateSpec = (0, project_utils_1.shouldGenerateSpec)(configuration, schematic, appName, specValue, specOptions.passedAsInput);
46
+ // If you only add a `lib` we actually don't have monorepo: true BUT we do have "projects"
47
+ // Ensure we don't run for new app/libs schematics
48
+ if ((0, project_utils_1.shouldAskForProject)(schematic, configurationProjects, appName)) {
49
+ const defaultLabel = ' [ Default ]';
50
+ let defaultProjectName = configuration.sourceRoot + defaultLabel;
51
+ for (const property in configurationProjects) {
52
+ if (configurationProjects[property].sourceRoot === configuration.sourceRoot) {
53
+ defaultProjectName = property + defaultLabel;
54
+ break;
55
+ }
56
+ }
57
+ const projects = (0, project_utils_1.moveDefaultProjectToStart)(configuration, defaultProjectName, defaultLabel);
58
+ const answers = yield (0, project_utils_1.askForProjectName)(ui_1.MESSAGES.PROJECT_SELECTION_QUESTION, projects);
59
+ const project = answers.appName.replace(defaultLabel, '');
60
+ if (project !== configuration.sourceRoot) {
61
+ sourceRoot = configurationProjects[project].sourceRoot;
62
+ }
63
+ if (answers.appName !== defaultProjectName) {
64
+ // Only overwrite if the appName is not the default- as it has already been loaded above
65
+ generateSpec = (0, project_utils_1.shouldGenerateSpec)(configuration, schematic, answers.appName, specValue, specOptions.passedAsInput);
66
+ }
67
+ }
68
+ schematicOptions.push(new schematics_1.SchematicOption('sourceRoot', sourceRoot));
69
+ schematicOptions.push(new schematics_1.SchematicOption('spec', generateSpec));
70
+ try {
71
+ const schematicInput = inputs.find((input) => input.name === 'schematic');
72
+ if (!schematicInput) {
73
+ throw new Error('Unable to find a schematic for this configuration');
74
+ }
75
+ yield collection.execute(schematicInput.value, schematicOptions);
76
+ }
77
+ catch (error) {
78
+ if (error && error.message) {
79
+ console.error(chalk.red(error.message));
80
+ }
81
+ }
82
+ });
83
+ const mapSchematicOptions = (inputs) => {
84
+ const excludedInputNames = ['schematic', 'spec'];
85
+ const options = [];
86
+ inputs.forEach((input) => {
87
+ if (!excludedInputNames.includes(input.name) && input.value !== undefined) {
88
+ const keepInputName = input.options
89
+ ? 'keepInputNameFormat' in input.options
90
+ : false;
91
+ options.push(new schematics_1.SchematicOption(input.name, input.value, keepInputName));
92
+ }
93
+ });
94
+ return options;
95
+ };
@@ -0,0 +1,8 @@
1
+ export * from './abstract.action';
2
+ export * from './build.action';
3
+ export * from './generate.action';
4
+ export * from './info.action';
5
+ export * from './new.action';
6
+ export * from './update.action';
7
+ export * from './start.action';
8
+ export * from './add.action';
@@ -0,0 +1,24 @@
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("./abstract.action"), exports);
18
+ __exportStar(require("./build.action"), exports);
19
+ __exportStar(require("./generate.action"), exports);
20
+ __exportStar(require("./info.action"), exports);
21
+ __exportStar(require("./new.action"), exports);
22
+ __exportStar(require("./update.action"), exports);
23
+ __exportStar(require("./start.action"), exports);
24
+ __exportStar(require("./add.action"), exports);
@@ -0,0 +1,28 @@
1
+ import { AbstractAction } from './abstract.action';
2
+ interface LockfileDependency {
3
+ version: string;
4
+ }
5
+ interface PackageJsonDependencies {
6
+ [key: string]: LockfileDependency;
7
+ }
8
+ interface GadminDependency {
9
+ name: string;
10
+ value: string;
11
+ }
12
+ export declare class InfoAction extends AbstractAction {
13
+ private manager;
14
+ handle(): Promise<void>;
15
+ private displayBanner;
16
+ private displaySystemInformation;
17
+ displayPackageManagerVersion(): Promise<void>;
18
+ displayGadminInformation(): Promise<void>;
19
+ displayGadminInformationFromPackage(): Promise<void>;
20
+ displayCliVersion(): void;
21
+ readProjectPackageDependencies(): PackageJsonDependencies;
22
+ displayGadminVersions(dependencies: PackageJsonDependencies): void;
23
+ buildGadminVersionsMessage(dependencies: PackageJsonDependencies): GadminDependency[];
24
+ collectGadminDependencies(dependencies: PackageJsonDependencies): GadminDependency[];
25
+ format(dependencies: GadminDependency[]): GadminDependency[];
26
+ rightPad(name: string, length: number): string;
27
+ }
28
+ export {};
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.InfoAction = void 0;
13
+ const chalk = require("chalk");
14
+ const fs_1 = require("fs");
15
+ const os_1 = require("os");
16
+ const osName = require("os-name");
17
+ const path_1 = require("path");
18
+ const package_managers_1 = require("../lib/package-managers");
19
+ const ui_1 = require("../lib/ui");
20
+ const abstract_action_1 = require("./abstract.action");
21
+ class InfoAction extends abstract_action_1.AbstractAction {
22
+ handle() {
23
+ return __awaiter(this, void 0, void 0, function* () {
24
+ this.manager = yield package_managers_1.PackageManagerFactory.find();
25
+ this.displayBanner();
26
+ yield this.displaySystemInformation();
27
+ yield this.displayGadminInformation();
28
+ });
29
+ }
30
+ displayBanner() {
31
+ console.info(chalk.red(ui_1.BANNER));
32
+ }
33
+ displaySystemInformation() {
34
+ return __awaiter(this, void 0, void 0, function* () {
35
+ console.info(chalk.green('[System Information]'));
36
+ console.info('OS Version :', chalk.blue(osName((0, os_1.platform)(), (0, os_1.release)())));
37
+ console.info('NodeJS Version :', chalk.blue(process.version));
38
+ yield this.displayPackageManagerVersion();
39
+ });
40
+ }
41
+ displayPackageManagerVersion() {
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ try {
44
+ const version = yield this.manager.version();
45
+ console.info(`${this.manager.name} Version :`, chalk.blue(version), '\n');
46
+ }
47
+ catch (_a) {
48
+ console.error(`${this.manager.name} Version :`, chalk.red('Unknown'), '\n');
49
+ }
50
+ });
51
+ }
52
+ displayGadminInformation() {
53
+ return __awaiter(this, void 0, void 0, function* () {
54
+ this.displayCliVersion();
55
+ console.info(chalk.green('[Gadmin Platform Information]'));
56
+ yield this.displayGadminInformationFromPackage();
57
+ });
58
+ }
59
+ displayGadminInformationFromPackage() {
60
+ return __awaiter(this, void 0, void 0, function* () {
61
+ try {
62
+ const dependencies = this.readProjectPackageDependencies();
63
+ this.displayGadminVersions(dependencies);
64
+ }
65
+ catch (err) {
66
+ console.error(chalk.red(ui_1.MESSAGES.GADMIN_INFORMATION_PACKAGE_MANAGER_FAILED));
67
+ }
68
+ });
69
+ }
70
+ displayCliVersion() {
71
+ console.info(chalk.green('[Gadmin CLI]'));
72
+ console.info('Gadmin CLI Version :', chalk.blue(JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(__dirname, '../package.json')).toString())
73
+ .version), '\n');
74
+ }
75
+ readProjectPackageDependencies() {
76
+ const buffer = (0, fs_1.readFileSync)((0, path_1.join)(process.cwd(), 'package.json'));
77
+ const pack = JSON.parse(buffer.toString());
78
+ const dependencies = Object.assign(Object.assign({}, pack.dependencies), pack.devDependencies);
79
+ Object.keys(dependencies).forEach((key) => {
80
+ dependencies[key] = {
81
+ version: dependencies[key],
82
+ };
83
+ });
84
+ return dependencies;
85
+ }
86
+ displayGadminVersions(dependencies) {
87
+ this.buildGadminVersionsMessage(dependencies).forEach((dependency) => console.info(dependency.name, chalk.blue(dependency.value)));
88
+ }
89
+ buildGadminVersionsMessage(dependencies) {
90
+ const gadminDependencies = this.collectGadminDependencies(dependencies);
91
+ return this.format(gadminDependencies);
92
+ }
93
+ collectGadminDependencies(dependencies) {
94
+ const gadminDependencies = [];
95
+ Object.keys(dependencies).forEach((key) => {
96
+ if (key.indexOf('@gadminjs') > -1) {
97
+ const depPackagePath = require.resolve(key + '/package.json', {
98
+ paths: [process.cwd()],
99
+ });
100
+ const depPackage = (0, fs_1.readFileSync)(depPackagePath).toString();
101
+ const value = JSON.parse(depPackage).version;
102
+ gadminDependencies.push({
103
+ name: `${key.replace(/@gadminjs\//, '').replace(/@.*/, '')} version`,
104
+ value: value || dependencies[key].version,
105
+ });
106
+ }
107
+ });
108
+ return gadminDependencies;
109
+ }
110
+ format(dependencies) {
111
+ const sorted = dependencies.sort((dependencyA, dependencyB) => dependencyB.name.length - dependencyA.name.length);
112
+ const length = sorted[0].name.length;
113
+ sorted.forEach((dependency) => {
114
+ if (dependency.name.length < length) {
115
+ dependency.name = this.rightPad(dependency.name, length);
116
+ }
117
+ dependency.name = dependency.name.concat(' :');
118
+ dependency.value = dependency.value.replace(/(\^|\~)/, '');
119
+ });
120
+ return sorted;
121
+ }
122
+ rightPad(name, length) {
123
+ while (name.length < length) {
124
+ name = name.concat(' ');
125
+ }
126
+ return name;
127
+ }
128
+ }
129
+ exports.InfoAction = InfoAction;
@@ -0,0 +1,7 @@
1
+ import { Input } from '../commands';
2
+ import { AbstractAction } from './abstract.action';
3
+ export declare class NewAction extends AbstractAction {
4
+ handle(inputs: Input[], options: Input[]): Promise<void>;
5
+ }
6
+ export declare const retrieveCols: () => number;
7
+ export declare const exit: () => never;