@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,185 @@
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.AbstractPackageManager = void 0;
13
+ const chalk = require("chalk");
14
+ const fs_1 = require("fs");
15
+ const ora = require("ora");
16
+ const path_1 = require("path");
17
+ const ui_1 = require("../ui");
18
+ const formatting_1 = require("../utils/formatting");
19
+ class AbstractPackageManager {
20
+ constructor(runner) {
21
+ this.runner = runner;
22
+ }
23
+ install(directory, packageManager) {
24
+ return __awaiter(this, void 0, void 0, function* () {
25
+ const spinner = ora({
26
+ spinner: {
27
+ interval: 120,
28
+ frames: ['▹▹▹▹▹', '▸▹▹▹▹', '▹▸▹▹▹', '▹▹▸▹▹', '▹▹▹▸▹', '▹▹▹▹▸'],
29
+ },
30
+ text: ui_1.MESSAGES.PACKAGE_MANAGER_INSTALLATION_IN_PROGRESS,
31
+ });
32
+ spinner.start();
33
+ try {
34
+ const commandArgs = `${this.cli.install} ${this.cli.silentFlag}`;
35
+ const collect = true;
36
+ const normalizedDirectory = (0, formatting_1.normalizeToKebabOrSnakeCase)(directory);
37
+ yield this.runner.run(commandArgs, collect, (0, path_1.join)(process.cwd(), normalizedDirectory));
38
+ spinner.succeed();
39
+ }
40
+ catch (_a) {
41
+ spinner.fail();
42
+ const commandArgs = this.cli.install;
43
+ const commandToRun = this.runner.rawFullCommand(commandArgs);
44
+ console.error(chalk.red(ui_1.MESSAGES.PACKAGE_MANAGER_INSTALLATION_FAILED(chalk.bold(commandToRun))));
45
+ }
46
+ });
47
+ }
48
+ version() {
49
+ return __awaiter(this, void 0, void 0, function* () {
50
+ const commandArguments = '--version';
51
+ const collect = true;
52
+ return this.runner.run(commandArguments, collect);
53
+ });
54
+ }
55
+ addProduction(dependencies, tag) {
56
+ return __awaiter(this, void 0, void 0, function* () {
57
+ const command = [this.cli.add, this.cli.saveFlag]
58
+ .filter((i) => i)
59
+ .join(' ');
60
+ const args = dependencies
61
+ .map((dependency) => `${dependency}@${tag}`)
62
+ .join(' ');
63
+ const spinner = ora({
64
+ spinner: {
65
+ interval: 120,
66
+ frames: ['▹▹▹▹▹', '▸▹▹▹▹', '▹▸▹▹▹', '▹▹▸▹▹', '▹▹▹▸▹', '▹▹▹▹▸'],
67
+ },
68
+ text: ui_1.MESSAGES.PACKAGE_MANAGER_PRODUCTION_INSTALLATION_IN_PROGRESS,
69
+ });
70
+ spinner.start();
71
+ try {
72
+ yield this.add(`${command} ${args}`);
73
+ spinner.succeed();
74
+ return true;
75
+ }
76
+ catch (_a) {
77
+ spinner.fail();
78
+ return false;
79
+ }
80
+ });
81
+ }
82
+ addDevelopment(dependencies, tag) {
83
+ return __awaiter(this, void 0, void 0, function* () {
84
+ const command = `${this.cli.add} ${this.cli.saveDevFlag}`;
85
+ const args = dependencies
86
+ .map((dependency) => `${dependency}@${tag}`)
87
+ .join(' ');
88
+ yield this.add(`${command} ${args}`);
89
+ });
90
+ }
91
+ add(commandArguments) {
92
+ return __awaiter(this, void 0, void 0, function* () {
93
+ const collect = true;
94
+ yield this.runner.run(commandArguments, collect);
95
+ });
96
+ }
97
+ getProduction() {
98
+ return __awaiter(this, void 0, void 0, function* () {
99
+ const packageJsonContent = yield this.readPackageJson();
100
+ const packageJsonDependencies = packageJsonContent.dependencies;
101
+ const dependencies = [];
102
+ for (const [name, version] of Object.entries(packageJsonDependencies)) {
103
+ dependencies.push({ name, version });
104
+ }
105
+ return dependencies;
106
+ });
107
+ }
108
+ getDevelopment() {
109
+ return __awaiter(this, void 0, void 0, function* () {
110
+ const packageJsonContent = yield this.readPackageJson();
111
+ const packageJsonDevDependencies = packageJsonContent.devDependencies;
112
+ const dependencies = [];
113
+ for (const [name, version] of Object.entries(packageJsonDevDependencies)) {
114
+ dependencies.push({ name, version });
115
+ }
116
+ return dependencies;
117
+ });
118
+ }
119
+ readPackageJson() {
120
+ return __awaiter(this, void 0, void 0, function* () {
121
+ return new Promise((resolve, reject) => {
122
+ (0, fs_1.readFile)((0, path_1.join)(process.cwd(), 'package.json'), (error, buffer) => {
123
+ if (error !== undefined && error !== null) {
124
+ reject(error);
125
+ }
126
+ else {
127
+ resolve(JSON.parse(buffer.toString()));
128
+ }
129
+ });
130
+ });
131
+ });
132
+ }
133
+ updateProduction(dependencies) {
134
+ return __awaiter(this, void 0, void 0, function* () {
135
+ const commandArguments = `${this.cli.update} ${dependencies.join(' ')}`;
136
+ yield this.update(commandArguments);
137
+ });
138
+ }
139
+ updateDevelopment(dependencies) {
140
+ return __awaiter(this, void 0, void 0, function* () {
141
+ const commandArguments = `${this.cli.update} ${dependencies.join(' ')}`;
142
+ yield this.update(commandArguments);
143
+ });
144
+ }
145
+ update(commandArguments) {
146
+ return __awaiter(this, void 0, void 0, function* () {
147
+ const collect = true;
148
+ yield this.runner.run(commandArguments, collect);
149
+ });
150
+ }
151
+ upgradeProduction(dependencies, tag) {
152
+ return __awaiter(this, void 0, void 0, function* () {
153
+ yield this.deleteProduction(dependencies);
154
+ yield this.addProduction(dependencies, tag);
155
+ });
156
+ }
157
+ upgradeDevelopment(dependencies, tag) {
158
+ return __awaiter(this, void 0, void 0, function* () {
159
+ yield this.deleteDevelopment(dependencies);
160
+ yield this.addDevelopment(dependencies, tag);
161
+ });
162
+ }
163
+ deleteProduction(dependencies) {
164
+ return __awaiter(this, void 0, void 0, function* () {
165
+ const command = [this.cli.remove, this.cli.saveFlag]
166
+ .filter((i) => i)
167
+ .join(' ');
168
+ const args = dependencies.join(' ');
169
+ yield this.delete(`${command} ${args}`);
170
+ });
171
+ }
172
+ deleteDevelopment(dependencies) {
173
+ return __awaiter(this, void 0, void 0, function* () {
174
+ const commandArguments = `${this.cli.remove} ${this.cli.saveDevFlag} ${dependencies.join(' ')}`;
175
+ yield this.delete(commandArguments);
176
+ });
177
+ }
178
+ delete(commandArguments) {
179
+ return __awaiter(this, void 0, void 0, function* () {
180
+ const collect = true;
181
+ yield this.runner.run(commandArguments, collect);
182
+ });
183
+ }
184
+ }
185
+ exports.AbstractPackageManager = AbstractPackageManager;
@@ -0,0 +1,8 @@
1
+ export * from './package-manager';
2
+ export * from './package-manager.factory';
3
+ export * from './abstract.package-manager';
4
+ export * from './npm.package-manager';
5
+ export * from './yarn.package-manager';
6
+ export * from './pnpm.package-manager';
7
+ export * from './project.dependency';
8
+ export * from './package-manager-commands';
@@ -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("./package-manager"), exports);
18
+ __exportStar(require("./package-manager.factory"), exports);
19
+ __exportStar(require("./abstract.package-manager"), exports);
20
+ __exportStar(require("./npm.package-manager"), exports);
21
+ __exportStar(require("./yarn.package-manager"), exports);
22
+ __exportStar(require("./pnpm.package-manager"), exports);
23
+ __exportStar(require("./project.dependency"), exports);
24
+ __exportStar(require("./package-manager-commands"), exports);
@@ -0,0 +1,7 @@
1
+ import { AbstractPackageManager } from './abstract.package-manager';
2
+ import { PackageManagerCommands } from './package-manager-commands';
3
+ export declare class NpmPackageManager extends AbstractPackageManager {
4
+ constructor();
5
+ get name(): string;
6
+ get cli(): PackageManagerCommands;
7
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NpmPackageManager = void 0;
4
+ const runners_1 = require("../runners");
5
+ const abstract_package_manager_1 = require("./abstract.package-manager");
6
+ const package_manager_1 = require("./package-manager");
7
+ class NpmPackageManager extends abstract_package_manager_1.AbstractPackageManager {
8
+ constructor() {
9
+ super(runners_1.RunnerFactory.create(runners_1.Runner.NPM));
10
+ }
11
+ get name() {
12
+ return package_manager_1.PackageManager.NPM.toUpperCase();
13
+ }
14
+ get cli() {
15
+ return {
16
+ install: 'install',
17
+ add: 'install',
18
+ update: 'update',
19
+ remove: 'uninstall',
20
+ saveFlag: '--save',
21
+ saveDevFlag: '--save-dev',
22
+ silentFlag: '--silent',
23
+ };
24
+ }
25
+ }
26
+ exports.NpmPackageManager = NpmPackageManager;
@@ -0,0 +1,9 @@
1
+ export interface PackageManagerCommands {
2
+ install: string;
3
+ add: string;
4
+ update: string;
5
+ remove: string;
6
+ saveFlag: string;
7
+ saveDevFlag: string;
8
+ silentFlag: string;
9
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,5 @@
1
+ export declare enum PackageManager {
2
+ NPM = "npm",
3
+ YARN = "yarn",
4
+ PNPM = "pnpm"
5
+ }
@@ -0,0 +1,6 @@
1
+ import { AbstractPackageManager } from './abstract.package-manager';
2
+ import { PackageManager } from './package-manager';
3
+ export declare class PackageManagerFactory {
4
+ static create(name: PackageManager | string): AbstractPackageManager;
5
+ static find(): Promise<AbstractPackageManager>;
6
+ }
@@ -0,0 +1,54 @@
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.PackageManagerFactory = void 0;
13
+ const fs_1 = require("fs");
14
+ const npm_package_manager_1 = require("./npm.package-manager");
15
+ const package_manager_1 = require("./package-manager");
16
+ const yarn_package_manager_1 = require("./yarn.package-manager");
17
+ const pnpm_package_manager_1 = require("./pnpm.package-manager");
18
+ class PackageManagerFactory {
19
+ static create(name) {
20
+ switch (name) {
21
+ case package_manager_1.PackageManager.NPM:
22
+ return new npm_package_manager_1.NpmPackageManager();
23
+ case package_manager_1.PackageManager.YARN:
24
+ return new yarn_package_manager_1.YarnPackageManager();
25
+ case package_manager_1.PackageManager.PNPM:
26
+ return new pnpm_package_manager_1.PnpmPackageManager();
27
+ default:
28
+ throw new Error(`Package manager ${name} is not managed.`);
29
+ }
30
+ }
31
+ static find() {
32
+ return __awaiter(this, void 0, void 0, function* () {
33
+ return new Promise((resolve) => {
34
+ (0, fs_1.readdir)(process.cwd(), (error, files) => {
35
+ if (error) {
36
+ resolve(this.create(package_manager_1.PackageManager.NPM));
37
+ }
38
+ else {
39
+ if (files.findIndex((filename) => filename === 'yarn.lock') > -1) {
40
+ resolve(this.create(package_manager_1.PackageManager.YARN));
41
+ }
42
+ else if (files.findIndex((filename) => filename === 'pnpm-lock.yaml') > -1) {
43
+ resolve(this.create(package_manager_1.PackageManager.PNPM));
44
+ }
45
+ else {
46
+ resolve(this.create(package_manager_1.PackageManager.NPM));
47
+ }
48
+ }
49
+ });
50
+ });
51
+ });
52
+ }
53
+ }
54
+ exports.PackageManagerFactory = PackageManagerFactory;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PackageManager = void 0;
4
+ var PackageManager;
5
+ (function (PackageManager) {
6
+ PackageManager["NPM"] = "npm";
7
+ PackageManager["YARN"] = "yarn";
8
+ PackageManager["PNPM"] = "pnpm";
9
+ })(PackageManager = exports.PackageManager || (exports.PackageManager = {}));
@@ -0,0 +1,7 @@
1
+ import { AbstractPackageManager } from './abstract.package-manager';
2
+ import { PackageManagerCommands } from './package-manager-commands';
3
+ export declare class PnpmPackageManager extends AbstractPackageManager {
4
+ constructor();
5
+ get name(): string;
6
+ get cli(): PackageManagerCommands;
7
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PnpmPackageManager = void 0;
4
+ const runners_1 = require("../runners");
5
+ const abstract_package_manager_1 = require("./abstract.package-manager");
6
+ const package_manager_1 = require("./package-manager");
7
+ class PnpmPackageManager extends abstract_package_manager_1.AbstractPackageManager {
8
+ constructor() {
9
+ super(runners_1.RunnerFactory.create(runners_1.Runner.PNPM));
10
+ }
11
+ get name() {
12
+ return package_manager_1.PackageManager.PNPM.toUpperCase();
13
+ }
14
+ // As of PNPM v5.3, all commands are shared with NPM v6.14.5. See: https://pnpm.js.org/en/pnpm-vs-npm
15
+ get cli() {
16
+ return {
17
+ install: 'install',
18
+ add: 'install',
19
+ update: 'update',
20
+ remove: 'uninstall',
21
+ saveFlag: '--save',
22
+ saveDevFlag: '--save-dev',
23
+ silentFlag: '--reporter=silent',
24
+ };
25
+ }
26
+ }
27
+ exports.PnpmPackageManager = PnpmPackageManager;
@@ -0,0 +1,4 @@
1
+ export interface ProjectDependency {
2
+ name: string;
3
+ version: string;
4
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,7 @@
1
+ import { AbstractPackageManager } from './abstract.package-manager';
2
+ import { PackageManagerCommands } from './package-manager-commands';
3
+ export declare class YarnPackageManager extends AbstractPackageManager {
4
+ constructor();
5
+ get name(): string;
6
+ get cli(): PackageManagerCommands;
7
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.YarnPackageManager = void 0;
4
+ const runners_1 = require("../runners");
5
+ const abstract_package_manager_1 = require("./abstract.package-manager");
6
+ const package_manager_1 = require("./package-manager");
7
+ class YarnPackageManager extends abstract_package_manager_1.AbstractPackageManager {
8
+ constructor() {
9
+ super(runners_1.RunnerFactory.create(runners_1.Runner.YARN));
10
+ }
11
+ get name() {
12
+ return package_manager_1.PackageManager.YARN.toUpperCase();
13
+ }
14
+ get cli() {
15
+ return {
16
+ install: 'install',
17
+ add: 'add',
18
+ update: 'upgrade',
19
+ remove: 'remove',
20
+ saveFlag: '',
21
+ saveDevFlag: '-D',
22
+ silentFlag: '--silent',
23
+ };
24
+ }
25
+ }
26
+ exports.YarnPackageManager = YarnPackageManager;
@@ -0,0 +1,2 @@
1
+ export declare const generateInput: (name: string, message: string) => (defaultAnswer: string) => any;
2
+ export declare const generateSelect: (name: string) => (message: string) => (choices: string[]) => any;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateSelect = exports.generateInput = void 0;
4
+ const generateInput = (name, message) => {
5
+ return (defaultAnswer) => ({
6
+ type: 'input',
7
+ name,
8
+ message,
9
+ default: defaultAnswer,
10
+ });
11
+ };
12
+ exports.generateInput = generateInput;
13
+ const generateSelect = (name) => {
14
+ return (message) => {
15
+ return (choices) => ({
16
+ type: 'list',
17
+ name,
18
+ message,
19
+ choices,
20
+ });
21
+ };
22
+ };
23
+ exports.generateSelect = generateSelect;
@@ -0,0 +1,8 @@
1
+ import { Reader } from './reader';
2
+ export declare class FileSystemReader implements Reader {
3
+ private readonly directory;
4
+ constructor(directory: string);
5
+ list(): Promise<string[]>;
6
+ read(name: string): Promise<string>;
7
+ readAnyOf(filenames: string[]): Promise<string | undefined>;
8
+ }
@@ -0,0 +1,61 @@
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.FileSystemReader = void 0;
13
+ const fs = require("fs");
14
+ class FileSystemReader {
15
+ constructor(directory) {
16
+ this.directory = directory;
17
+ }
18
+ list() {
19
+ return __awaiter(this, void 0, void 0, function* () {
20
+ return new Promise((resolve, reject) => {
21
+ fs.readdir(this.directory, (error, filenames) => {
22
+ if (error) {
23
+ reject(error);
24
+ }
25
+ else {
26
+ resolve(filenames);
27
+ }
28
+ });
29
+ });
30
+ });
31
+ }
32
+ read(name) {
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ return new Promise((resolve, reject) => {
35
+ fs.readFile(`${this.directory}/${name}`, (error, data) => {
36
+ if (error) {
37
+ reject(error);
38
+ }
39
+ else {
40
+ resolve(data.toString());
41
+ }
42
+ });
43
+ });
44
+ });
45
+ }
46
+ readAnyOf(filenames) {
47
+ return __awaiter(this, void 0, void 0, function* () {
48
+ try {
49
+ for (const file of filenames) {
50
+ return yield this.read(file);
51
+ }
52
+ }
53
+ catch (err) {
54
+ return filenames.length > 0
55
+ ? yield this.readAnyOf(filenames.slice(1, filenames.length))
56
+ : undefined;
57
+ }
58
+ });
59
+ }
60
+ }
61
+ exports.FileSystemReader = FileSystemReader;
@@ -0,0 +1,2 @@
1
+ export * from './reader';
2
+ export * from './file-system.reader';
@@ -0,0 +1,18 @@
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("./reader"), exports);
18
+ __exportStar(require("./file-system.reader"), exports);
@@ -0,0 +1,5 @@
1
+ export interface Reader {
2
+ list(): string[] | Promise<string[]>;
3
+ read(name: string): string | Promise<string>;
4
+ readAnyOf(filenames: string[]): string | Promise<string | undefined>;
5
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,11 @@
1
+ export declare class AbstractRunner {
2
+ protected binary: string;
3
+ protected args: string[];
4
+ constructor(binary: string, args?: string[]);
5
+ run(command: string, collect?: boolean, cwd?: string): Promise<null | string>;
6
+ /**
7
+ * @param command
8
+ * @returns The entire command that will be ran when calling `run(command)`.
9
+ */
10
+ rawFullCommand(command: string): string;
11
+ }
@@ -0,0 +1,55 @@
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.AbstractRunner = void 0;
13
+ const chalk = require("chalk");
14
+ const child_process_1 = require("child_process");
15
+ const ui_1 = require("../ui");
16
+ class AbstractRunner {
17
+ constructor(binary, args = []) {
18
+ this.binary = binary;
19
+ this.args = args;
20
+ }
21
+ run(command, collect = false, cwd = process.cwd()) {
22
+ return __awaiter(this, void 0, void 0, function* () {
23
+ const args = [command];
24
+ const options = {
25
+ cwd,
26
+ stdio: collect ? 'pipe' : 'inherit',
27
+ shell: true,
28
+ };
29
+ return new Promise((resolve, reject) => {
30
+ const child = (0, child_process_1.spawn)(`${this.binary}`, [...this.args, ...args], options);
31
+ if (collect) {
32
+ child.stdout.on('data', (data) => resolve(data.toString().replace(/\r\n|\n/, '')));
33
+ }
34
+ child.on('close', (code) => {
35
+ if (code === 0) {
36
+ resolve(null);
37
+ }
38
+ else {
39
+ console.error(chalk.red(ui_1.MESSAGES.RUNNER_EXECUTION_ERROR(`${this.binary} ${command}`)));
40
+ reject();
41
+ }
42
+ });
43
+ });
44
+ });
45
+ }
46
+ /**
47
+ * @param command
48
+ * @returns The entire command that will be ran when calling `run(command)`.
49
+ */
50
+ rawFullCommand(command) {
51
+ const commandArgs = [...this.args, command];
52
+ return `${this.binary} ${commandArgs.join(' ')}`;
53
+ }
54
+ }
55
+ exports.AbstractRunner = AbstractRunner;
@@ -0,0 +1,4 @@
1
+ import { AbstractRunner } from './abstract.runner';
2
+ export declare class GitRunner extends AbstractRunner {
3
+ constructor();
4
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GitRunner = void 0;
4
+ const abstract_runner_1 = require("./abstract.runner");
5
+ class GitRunner extends abstract_runner_1.AbstractRunner {
6
+ constructor() {
7
+ super('git');
8
+ }
9
+ }
10
+ exports.GitRunner = GitRunner;
@@ -0,0 +1,3 @@
1
+ export * from './runner';
2
+ export * from './runner.factory';
3
+ export * from './abstract.runner';