@depup/nestjs__cli 11.0.24-depup.8 → 12.0.0-depup.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 (220) hide show
  1. package/README.md +6 -14
  2. package/actions/abstract.action.d.ts +1 -2
  3. package/actions/abstract.action.js +1 -5
  4. package/actions/add.action.d.ts +3 -4
  5. package/actions/add.action.js +44 -53
  6. package/actions/build.action.d.ts +18 -11
  7. package/actions/build.action.js +172 -79
  8. package/actions/deploy.action.d.ts +6 -0
  9. package/actions/deploy.action.js +51 -0
  10. package/actions/generate.action.d.ts +3 -3
  11. package/actions/generate.action.js +61 -59
  12. package/actions/index.d.ts +9 -7
  13. package/actions/index.js +9 -23
  14. package/actions/info.action.d.ts +18 -28
  15. package/actions/info.action.js +80 -60
  16. package/actions/new.action.d.ts +3 -3
  17. package/actions/new.action.js +108 -104
  18. package/actions/start.action.d.ts +4 -7
  19. package/actions/start.action.js +40 -47
  20. package/actions/upgrade.action.d.ts +6 -0
  21. package/actions/upgrade.action.js +53 -0
  22. package/bin/nest.js +11 -10
  23. package/changes.json +6 -38
  24. package/commands/abstract.command.d.ts +3 -3
  25. package/commands/abstract.command.js +2 -5
  26. package/commands/add.command.d.ts +3 -3
  27. package/commands/add.command.js +17 -20
  28. package/commands/build.command.d.ts +3 -3
  29. package/commands/build.command.js +52 -56
  30. package/commands/command.input.js +1 -2
  31. package/commands/command.loader.d.ts +2 -2
  32. package/commands/command.loader.js +29 -22
  33. package/commands/context/add.context.d.ts +7 -0
  34. package/commands/context/add.context.js +1 -0
  35. package/commands/context/build.context.d.ts +17 -0
  36. package/commands/context/build.context.js +1 -0
  37. package/commands/context/deploy.context.d.ts +7 -0
  38. package/commands/context/deploy.context.js +1 -0
  39. package/commands/context/generate.context.d.ts +18 -0
  40. package/commands/context/generate.context.js +1 -0
  41. package/commands/context/index.d.ts +7 -0
  42. package/commands/context/index.js +7 -0
  43. package/commands/context/new.context.d.ts +19 -0
  44. package/commands/context/new.context.js +1 -0
  45. package/commands/context/start.context.d.ts +22 -0
  46. package/commands/context/start.context.js +1 -0
  47. package/commands/context/upgrade.context.d.ts +11 -0
  48. package/commands/context/upgrade.context.js +1 -0
  49. package/commands/deploy.command.d.ts +5 -0
  50. package/commands/deploy.command.js +22 -0
  51. package/commands/generate.command.d.ts +3 -3
  52. package/commands/generate.command.js +35 -66
  53. package/commands/index.d.ts +3 -2
  54. package/commands/index.js +3 -18
  55. package/commands/info.command.d.ts +3 -3
  56. package/commands/info.command.js +4 -8
  57. package/commands/new.command.d.ts +3 -3
  58. package/commands/new.command.js +34 -36
  59. package/commands/start.command.d.ts +3 -3
  60. package/commands/start.command.js +48 -73
  61. package/commands/upgrade.command.d.ts +5 -0
  62. package/commands/upgrade.command.js +32 -0
  63. package/lib/compiler/assets-manager.d.ts +20 -8
  64. package/lib/compiler/assets-manager.js +199 -63
  65. package/lib/compiler/base-compiler.d.ts +5 -5
  66. package/lib/compiler/base-compiler.js +10 -13
  67. package/lib/compiler/compiler.d.ts +6 -6
  68. package/lib/compiler/compiler.js +7 -9
  69. package/lib/compiler/defaults/rspack-defaults.d.ts +3 -0
  70. package/lib/compiler/defaults/rspack-defaults.js +179 -0
  71. package/lib/compiler/defaults/swc-defaults.d.ts +5 -2
  72. package/lib/compiler/defaults/swc-defaults.js +22 -6
  73. package/lib/compiler/defaults/webpack-defaults.d.ts +2 -2
  74. package/lib/compiler/defaults/webpack-defaults.js +59 -19
  75. package/lib/compiler/helpers/append-extension.js +3 -6
  76. package/lib/compiler/helpers/copy-path-resolve.js +2 -5
  77. package/lib/compiler/helpers/delete-out-dir.d.ts +1 -1
  78. package/lib/compiler/helpers/delete-out-dir.js +45 -10
  79. package/lib/compiler/helpers/get-builder.d.ts +9 -7
  80. package/lib/compiler/helpers/get-builder.js +3 -6
  81. package/lib/compiler/helpers/get-effective-root-dir.d.ts +16 -0
  82. package/lib/compiler/helpers/get-effective-root-dir.js +56 -0
  83. package/lib/compiler/helpers/get-rspack-config-path.d.ts +10 -0
  84. package/lib/compiler/helpers/get-rspack-config-path.js +19 -0
  85. package/lib/compiler/helpers/get-tsc-config.path.d.ts +2 -3
  86. package/lib/compiler/helpers/get-tsc-config.path.js +6 -9
  87. package/lib/compiler/helpers/get-value-or-default.d.ts +2 -3
  88. package/lib/compiler/helpers/get-value-or-default.js +3 -8
  89. package/lib/compiler/helpers/get-webpack-config-path.d.ts +2 -3
  90. package/lib/compiler/helpers/get-webpack-config-path.js +4 -7
  91. package/lib/compiler/helpers/glob.d.ts +19 -0
  92. package/lib/compiler/helpers/glob.js +185 -0
  93. package/lib/compiler/helpers/manual-restart.js +4 -8
  94. package/lib/compiler/helpers/path-confinement.d.ts +33 -0
  95. package/lib/compiler/helpers/path-confinement.js +63 -0
  96. package/lib/compiler/helpers/tsconfig-provider.d.ts +7 -6
  97. package/lib/compiler/helpers/tsconfig-provider.js +32 -13
  98. package/lib/compiler/hooks/tsconfig-paths.hook.js +13 -13
  99. package/lib/compiler/interfaces/readonly-visitor.interface.js +1 -2
  100. package/lib/compiler/plugins/plugin-metadata-generator.d.ts +37 -1
  101. package/lib/compiler/plugins/plugin-metadata-generator.js +113 -13
  102. package/lib/compiler/plugins/plugin-metadata-printer.d.ts +1 -1
  103. package/lib/compiler/plugins/plugin-metadata-printer.js +5 -9
  104. package/lib/compiler/plugins/plugins-loader.d.ts +2 -2
  105. package/lib/compiler/plugins/plugins-loader.js +12 -12
  106. package/lib/compiler/rspack-compiler.d.ts +21 -0
  107. package/lib/compiler/rspack-compiler.js +111 -0
  108. package/lib/compiler/swc/constants.d.ts +0 -1
  109. package/lib/compiler/swc/constants.js +9 -13
  110. package/lib/compiler/swc/forked-type-checker.js +13 -18
  111. package/lib/compiler/swc/swc-compiler.d.ts +13 -6
  112. package/lib/compiler/swc/swc-compiler.js +116 -70
  113. package/lib/compiler/swc/type-checker-host.js +31 -24
  114. package/lib/compiler/typescript-loader.js +7 -9
  115. package/lib/compiler/watch-compiler.d.ts +5 -5
  116. package/lib/compiler/watch-compiler.js +13 -15
  117. package/lib/compiler/watchers/recursive-directory-watcher.d.ts +37 -0
  118. package/lib/compiler/watchers/recursive-directory-watcher.js +334 -0
  119. package/lib/compiler/webpack-compiler.d.ts +6 -7
  120. package/lib/compiler/webpack-compiler.js +46 -23
  121. package/lib/configuration/configuration.d.ts +16 -3
  122. package/lib/configuration/configuration.js +1 -2
  123. package/lib/configuration/configuration.loader.d.ts +1 -1
  124. package/lib/configuration/configuration.loader.js +1 -2
  125. package/lib/configuration/defaults.d.ts +2 -1
  126. package/lib/configuration/defaults.js +8 -10
  127. package/lib/configuration/index.d.ts +3 -3
  128. package/lib/configuration/index.js +3 -19
  129. package/lib/configuration/nest-configuration.loader.d.ts +3 -3
  130. package/lib/configuration/nest-configuration.loader.js +28 -29
  131. package/lib/package-managers/abstract.package-manager.d.ts +4 -4
  132. package/lib/package-managers/abstract.package-manager.js +21 -32
  133. package/lib/package-managers/bun.package-manager.d.ts +7 -0
  134. package/lib/package-managers/bun.package-manager.js +22 -0
  135. package/lib/package-managers/index.d.ts +9 -8
  136. package/lib/package-managers/index.js +9 -24
  137. package/lib/package-managers/npm.package-manager.d.ts +2 -2
  138. package/lib/package-managers/npm.package-manager.js +6 -10
  139. package/lib/package-managers/package-manager-commands.js +1 -2
  140. package/lib/package-managers/package-manager.d.ts +2 -1
  141. package/lib/package-managers/package-manager.factory.d.ts +2 -2
  142. package/lib/package-managers/package-manager.factory.js +23 -20
  143. package/lib/package-managers/package-manager.js +3 -5
  144. package/lib/package-managers/pnpm.package-manager.d.ts +2 -2
  145. package/lib/package-managers/pnpm.package-manager.js +6 -10
  146. package/lib/package-managers/project.dependency.js +1 -2
  147. package/lib/package-managers/yarn.package-manager.d.ts +2 -2
  148. package/lib/package-managers/yarn.package-manager.js +6 -10
  149. package/lib/questions/questions.d.ts +5 -1
  150. package/lib/questions/questions.js +2 -7
  151. package/lib/readers/file-system.reader.d.ts +1 -1
  152. package/lib/readers/file-system.reader.js +6 -9
  153. package/lib/readers/index.d.ts +2 -2
  154. package/lib/readers/index.js +2 -18
  155. package/lib/readers/reader.js +3 -5
  156. package/lib/runners/abstract.runner.js +40 -21
  157. package/lib/runners/bun.runner.d.ts +4 -0
  158. package/lib/runners/bun.runner.js +6 -0
  159. package/lib/runners/git.runner.d.ts +1 -1
  160. package/lib/runners/git.runner.js +2 -6
  161. package/lib/runners/index.d.ts +3 -3
  162. package/lib/runners/index.js +3 -19
  163. package/lib/runners/mau.runner.d.ts +8 -0
  164. package/lib/runners/mau.runner.js +10 -0
  165. package/lib/runners/npm.runner.d.ts +1 -1
  166. package/lib/runners/npm.runner.js +2 -6
  167. package/lib/runners/pnpm.runner.d.ts +1 -1
  168. package/lib/runners/pnpm.runner.js +2 -6
  169. package/lib/runners/runner.d.ts +2 -1
  170. package/lib/runners/runner.factory.d.ts +7 -6
  171. package/lib/runners/runner.factory.js +18 -20
  172. package/lib/runners/runner.js +3 -5
  173. package/lib/runners/schematic.runner.d.ts +1 -1
  174. package/lib/runners/schematic.runner.js +5 -7
  175. package/lib/runners/yarn.runner.d.ts +1 -1
  176. package/lib/runners/yarn.runner.js +2 -6
  177. package/lib/schematics/abstract.collection.d.ts +3 -3
  178. package/lib/schematics/abstract.collection.js +3 -5
  179. package/lib/schematics/collection.factory.d.ts +2 -2
  180. package/lib/schematics/collection.factory.js +9 -13
  181. package/lib/schematics/collection.js +2 -5
  182. package/lib/schematics/custom.collection.d.ts +2 -2
  183. package/lib/schematics/custom.collection.js +4 -8
  184. package/lib/schematics/index.d.ts +4 -4
  185. package/lib/schematics/index.js +4 -20
  186. package/lib/schematics/nest.collection.d.ts +3 -3
  187. package/lib/schematics/nest.collection.js +113 -109
  188. package/lib/schematics/schematic.option.js +10 -9
  189. package/lib/ui/banner.js +1 -4
  190. package/lib/ui/emojis.d.ts +17 -17
  191. package/lib/ui/emojis.js +19 -22
  192. package/lib/ui/errors.js +1 -4
  193. package/lib/ui/index.d.ts +5 -5
  194. package/lib/ui/index.js +5 -21
  195. package/lib/ui/messages.d.ts +8 -0
  196. package/lib/ui/messages.js +23 -18
  197. package/lib/ui/prefixes.js +3 -6
  198. package/lib/utils/extra-args-warning.js +3 -6
  199. package/lib/utils/formatting.js +1 -4
  200. package/lib/utils/get-default-tsconfig-path.js +4 -7
  201. package/lib/utils/gracefully-exit-on-prompt-error.js +1 -4
  202. package/lib/utils/is-esm-project.d.ts +5 -0
  203. package/lib/utils/is-esm-project.js +16 -0
  204. package/lib/utils/is-interactive.d.ts +8 -0
  205. package/lib/utils/is-interactive.js +10 -0
  206. package/lib/utils/is-module-available.js +3 -4
  207. package/lib/utils/load-configuration.d.ts +1 -1
  208. package/lib/utils/load-configuration.js +4 -7
  209. package/lib/utils/local-binaries.d.ts +2 -2
  210. package/lib/utils/local-binaries.js +8 -11
  211. package/lib/utils/mau.d.ts +14 -0
  212. package/lib/utils/mau.js +46 -0
  213. package/lib/utils/os-info.utils.js +1 -4
  214. package/lib/utils/project-utils.d.ts +1 -3
  215. package/lib/utils/project-utils.js +16 -28
  216. package/lib/utils/remaining-flags.d.ts +2 -2
  217. package/lib/utils/remaining-flags.js +13 -8
  218. package/lib/utils/tree-kill.js +7 -10
  219. package/lib/utils/type-assertions.js +1 -4
  220. package/package.json +64 -77
@@ -1,16 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NestConfigurationLoader = void 0;
4
- const readers_1 = require("../readers");
5
- const defaults_1 = require("./defaults");
1
+ import { ReaderFileLackPermissionsError } from '../readers/index.js';
2
+ import { defaultConfiguration } from './defaults.js';
6
3
  /**
7
4
  * A cache table that maps some reader (by its name along with the config path)
8
5
  * to a loaded configuration.
9
6
  * This was added because several commands relies on the app's config in order
10
- * to generate some dynanmic content prior running the command itself.
7
+ * to generate some dynamic content prior running the command itself.
11
8
  */
12
9
  const loadedConfigsCache = new Map();
13
- class NestConfigurationLoader {
10
+ export class NestConfigurationLoader {
11
+ reader;
14
12
  constructor(reader) {
15
13
  this.reader = reader;
16
14
  }
@@ -20,42 +18,43 @@ class NestConfigurationLoader {
20
18
  if (cachedConfig) {
21
19
  return cachedConfig;
22
20
  }
23
- let loadedConfig;
21
+ let loadedConfig = defaultConfiguration;
24
22
  const contentOrError = name
25
23
  ? this.reader.read(name)
26
- : this.reader.readAnyOf([
27
- 'nest-cli.json',
28
- '.nest-cli.json',
29
- ]);
24
+ : this.reader.readAnyOf(['nest-cli.json', '.nest-cli.json']);
30
25
  if (contentOrError) {
31
- const isMissingPermissionsError = contentOrError instanceof readers_1.ReaderFileLackPermissionsError;
26
+ const isMissingPermissionsError = contentOrError instanceof ReaderFileLackPermissionsError;
32
27
  if (isMissingPermissionsError) {
33
28
  console.error(contentOrError.message);
34
29
  process.exit(1);
35
30
  }
36
- const fileConfig = JSON.parse(contentOrError);
31
+ const configFilename = name ?? 'nest-cli.json';
32
+ let fileConfig;
33
+ try {
34
+ fileConfig = JSON.parse(contentOrError);
35
+ }
36
+ catch (err) {
37
+ const reason = err instanceof Error ? err.message : String(err);
38
+ throw new Error(`Could not parse Nest CLI configuration file "${configFilename}". Please, ensure that the file contains valid JSON. Reason: ${reason}`);
39
+ }
40
+ loadedConfig = {
41
+ ...defaultConfiguration,
42
+ ...fileConfig,
43
+ };
37
44
  if (fileConfig.compilerOptions) {
38
- loadedConfig = {
39
- ...defaults_1.defaultConfiguration,
40
- ...fileConfig,
41
- compilerOptions: {
42
- ...defaults_1.defaultConfiguration.compilerOptions,
43
- ...fileConfig.compilerOptions,
44
- },
45
+ loadedConfig.compilerOptions = {
46
+ ...defaultConfiguration.compilerOptions,
47
+ ...fileConfig.compilerOptions,
45
48
  };
46
49
  }
47
- else {
48
- loadedConfig = {
49
- ...defaults_1.defaultConfiguration,
50
- ...fileConfig,
50
+ if (fileConfig.generateOptions) {
51
+ loadedConfig.generateOptions = {
52
+ ...defaultConfiguration.generateOptions,
53
+ ...fileConfig.generateOptions,
51
54
  };
52
55
  }
53
56
  }
54
- else {
55
- loadedConfig = defaults_1.defaultConfiguration;
56
- }
57
57
  loadedConfigsCache.set(cacheEntryKey, loadedConfig);
58
58
  return loadedConfig;
59
59
  }
60
60
  }
61
- exports.NestConfigurationLoader = NestConfigurationLoader;
@@ -1,6 +1,6 @@
1
- import { AbstractRunner } from '../runners/abstract.runner';
2
- import { PackageManagerCommands } from './package-manager-commands';
3
- import { ProjectDependency } from './project.dependency';
1
+ import { AbstractRunner } from '../runners/abstract.runner.js';
2
+ import { PackageManagerCommands } from './package-manager-commands.js';
3
+ import { ProjectDependency } from './project.dependency.js';
4
4
  export declare abstract class AbstractPackageManager {
5
5
  protected runner: AbstractRunner;
6
6
  constructor(runner: AbstractRunner);
@@ -19,7 +19,7 @@ export declare abstract class AbstractPackageManager {
19
19
  upgradeDevelopment(dependencies: string[], tag: string): Promise<void>;
20
20
  deleteProduction(dependencies: string[]): Promise<void>;
21
21
  deleteDevelopment(dependencies: string[]): Promise<void>;
22
- delete(commandArguments: string): Promise<void>;
22
+ private delete;
23
23
  abstract get name(): string;
24
24
  abstract get cli(): PackageManagerCommands;
25
25
  }
@@ -1,13 +1,11 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AbstractPackageManager = void 0;
4
- const ansis_1 = require("ansis");
5
- const fs_1 = require("fs");
6
- const ora = require("ora");
7
- const path_1 = require("path");
8
- const ui_1 = require("../ui");
9
- const formatting_1 = require("../utils/formatting");
10
- class AbstractPackageManager {
1
+ import { bold, gray, red } from 'ansis';
2
+ import { readFile } from 'fs/promises';
3
+ import ora from 'ora';
4
+ import { join } from 'path';
5
+ import { MESSAGES } from '../ui/index.js';
6
+ import { normalizeToKebabOrSnakeCase } from '../utils/formatting.js';
7
+ export class AbstractPackageManager {
8
+ runner;
11
9
  constructor(runner) {
12
10
  this.runner = runner;
13
11
  }
@@ -17,28 +15,28 @@ class AbstractPackageManager {
17
15
  interval: 120,
18
16
  frames: ['▹▹▹▹▹', '▸▹▹▹▹', '▹▸▹▹▹', '▹▹▸▹▹', '▹▹▹▸▹', '▹▹▹▹▸'],
19
17
  },
20
- text: ui_1.MESSAGES.PACKAGE_MANAGER_INSTALLATION_IN_PROGRESS,
18
+ text: MESSAGES.PACKAGE_MANAGER_INSTALLATION_IN_PROGRESS,
21
19
  });
22
20
  spinner.start();
23
21
  try {
24
22
  const commandArgs = `${this.cli.install} ${this.cli.silentFlag}`;
25
23
  const collect = true;
26
- const normalizedDirectory = (0, formatting_1.normalizeToKebabOrSnakeCase)(directory);
27
- await this.runner.run(commandArgs, collect, (0, path_1.join)(process.cwd(), normalizedDirectory));
24
+ const normalizedDirectory = normalizeToKebabOrSnakeCase(directory);
25
+ await this.runner.run(commandArgs, collect, join(process.cwd(), normalizedDirectory));
28
26
  spinner.succeed();
29
27
  console.info();
30
- console.info(ui_1.MESSAGES.PACKAGE_MANAGER_INSTALLATION_SUCCEED(directory));
31
- console.info(ui_1.MESSAGES.GET_STARTED_INFORMATION);
28
+ console.info(MESSAGES.PACKAGE_MANAGER_INSTALLATION_SUCCEED(directory));
29
+ console.info(MESSAGES.GET_STARTED_INFORMATION);
32
30
  console.info();
33
- console.info((0, ansis_1.gray)(ui_1.MESSAGES.CHANGE_DIR_COMMAND(directory)));
34
- console.info((0, ansis_1.gray)(ui_1.MESSAGES.START_COMMAND(packageManager)));
31
+ console.info(gray(MESSAGES.CHANGE_DIR_COMMAND(directory)));
32
+ console.info(gray(MESSAGES.START_COMMAND(packageManager)));
35
33
  console.info();
36
34
  }
37
35
  catch {
38
36
  spinner.fail();
39
37
  const commandArgs = this.cli.install;
40
38
  const commandToRun = this.runner.rawFullCommand(commandArgs);
41
- console.error((0, ansis_1.red)(ui_1.MESSAGES.PACKAGE_MANAGER_INSTALLATION_FAILED((0, ansis_1.bold)(commandToRun))));
39
+ console.error(red(MESSAGES.PACKAGE_MANAGER_INSTALLATION_FAILED(bold(commandToRun))));
42
40
  }
43
41
  }
44
42
  async version() {
@@ -58,7 +56,7 @@ class AbstractPackageManager {
58
56
  interval: 120,
59
57
  frames: ['▹▹▹▹▹', '▸▹▹▹▹', '▹▸▹▹▹', '▹▹▸▹▹', '▹▹▹▸▹', '▹▹▹▹▸'],
60
58
  },
61
- text: ui_1.MESSAGES.PACKAGE_MANAGER_PRODUCTION_INSTALLATION_IN_PROGRESS,
59
+ text: MESSAGES.PACKAGE_MANAGER_PRODUCTION_INSTALLATION_IN_PROGRESS,
62
60
  });
63
61
  spinner.start();
64
62
  try {
@@ -84,7 +82,7 @@ class AbstractPackageManager {
84
82
  }
85
83
  async getProduction() {
86
84
  const packageJsonContent = await this.readPackageJson();
87
- const packageJsonDependencies = packageJsonContent.dependencies;
85
+ const packageJsonDependencies = packageJsonContent.dependencies ?? {};
88
86
  const dependencies = [];
89
87
  for (const [name, version] of Object.entries(packageJsonDependencies)) {
90
88
  dependencies.push({ name, version });
@@ -93,7 +91,7 @@ class AbstractPackageManager {
93
91
  }
94
92
  async getDevelopment() {
95
93
  const packageJsonContent = await this.readPackageJson();
96
- const packageJsonDevDependencies = packageJsonContent.devDependencies;
94
+ const packageJsonDevDependencies = packageJsonContent.devDependencies ?? {};
97
95
  const dependencies = [];
98
96
  for (const [name, version] of Object.entries(packageJsonDevDependencies)) {
99
97
  dependencies.push({ name, version });
@@ -101,16 +99,8 @@ class AbstractPackageManager {
101
99
  return dependencies;
102
100
  }
103
101
  async readPackageJson() {
104
- return new Promise((resolve, reject) => {
105
- (0, fs_1.readFile)((0, path_1.join)(process.cwd(), 'package.json'), (error, buffer) => {
106
- if (error !== undefined && error !== null) {
107
- reject(error);
108
- }
109
- else {
110
- resolve(JSON.parse(buffer.toString()));
111
- }
112
- });
113
- });
102
+ const buffer = await readFile(join(process.cwd(), 'package.json'));
103
+ return JSON.parse(buffer.toString());
114
104
  }
115
105
  async updateProduction(dependencies) {
116
106
  const commandArguments = `${this.cli.update} ${dependencies.join(' ')}`;
@@ -148,4 +138,3 @@ class AbstractPackageManager {
148
138
  await this.runner.run(commandArguments, collect);
149
139
  }
150
140
  }
151
- exports.AbstractPackageManager = AbstractPackageManager;
@@ -0,0 +1,7 @@
1
+ import { AbstractPackageManager } from './abstract.package-manager.js';
2
+ import { PackageManagerCommands } from './package-manager-commands.js';
3
+ export declare class BunPackageManager extends AbstractPackageManager {
4
+ constructor();
5
+ get name(): string;
6
+ get cli(): PackageManagerCommands;
7
+ }
@@ -0,0 +1,22 @@
1
+ import { Runner, RunnerFactory } from '../runners/index.js';
2
+ import { AbstractPackageManager } from './abstract.package-manager.js';
3
+ import { PackageManager } from './package-manager.js';
4
+ export class BunPackageManager extends AbstractPackageManager {
5
+ constructor() {
6
+ super(RunnerFactory.create(Runner.BUN));
7
+ }
8
+ get name() {
9
+ return PackageManager.BUN.toUpperCase();
10
+ }
11
+ get cli() {
12
+ return {
13
+ install: 'install',
14
+ add: 'add',
15
+ update: 'update',
16
+ remove: 'remove',
17
+ saveFlag: '--save',
18
+ saveDevFlag: '--dev',
19
+ silentFlag: '--silent',
20
+ };
21
+ }
22
+ }
@@ -1,8 +1,9 @@
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';
1
+ export * from './package-manager.js';
2
+ export * from './package-manager.factory.js';
3
+ export * from './abstract.package-manager.js';
4
+ export * from './npm.package-manager.js';
5
+ export * from './yarn.package-manager.js';
6
+ export * from './pnpm.package-manager.js';
7
+ export * from './bun.package-manager.js';
8
+ export * from './project.dependency.js';
9
+ export * from './package-manager-commands.js';
@@ -1,24 +1,9 @@
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);
1
+ export * from './package-manager.js';
2
+ export * from './package-manager.factory.js';
3
+ export * from './abstract.package-manager.js';
4
+ export * from './npm.package-manager.js';
5
+ export * from './yarn.package-manager.js';
6
+ export * from './pnpm.package-manager.js';
7
+ export * from './bun.package-manager.js';
8
+ export * from './project.dependency.js';
9
+ export * from './package-manager-commands.js';
@@ -1,5 +1,5 @@
1
- import { AbstractPackageManager } from './abstract.package-manager';
2
- import { PackageManagerCommands } from './package-manager-commands';
1
+ import { AbstractPackageManager } from './abstract.package-manager.js';
2
+ import { PackageManagerCommands } from './package-manager-commands.js';
3
3
  export declare class NpmPackageManager extends AbstractPackageManager {
4
4
  constructor();
5
5
  get name(): string;
@@ -1,15 +1,12 @@
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 {
1
+ import { Runner, RunnerFactory } from '../runners/index.js';
2
+ import { AbstractPackageManager } from './abstract.package-manager.js';
3
+ import { PackageManager } from './package-manager.js';
4
+ export class NpmPackageManager extends AbstractPackageManager {
8
5
  constructor() {
9
- super(runners_1.RunnerFactory.create(runners_1.Runner.NPM));
6
+ super(RunnerFactory.create(Runner.NPM));
10
7
  }
11
8
  get name() {
12
- return package_manager_1.PackageManager.NPM.toUpperCase();
9
+ return PackageManager.NPM.toUpperCase();
13
10
  }
14
11
  get cli() {
15
12
  return {
@@ -23,4 +20,3 @@ class NpmPackageManager extends abstract_package_manager_1.AbstractPackageManage
23
20
  };
24
21
  }
25
22
  }
26
- exports.NpmPackageManager = NpmPackageManager;
@@ -1,2 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
@@ -1,5 +1,6 @@
1
1
  export declare enum PackageManager {
2
2
  NPM = "npm",
3
3
  YARN = "yarn",
4
- PNPM = "pnpm"
4
+ PNPM = "pnpm",
5
+ BUN = "bun"
5
6
  }
@@ -1,5 +1,5 @@
1
- import { AbstractPackageManager } from './abstract.package-manager';
2
- import { PackageManager } from './package-manager';
1
+ import { AbstractPackageManager } from './abstract.package-manager.js';
2
+ import { PackageManager } from './package-manager.js';
3
3
  export declare class PackageManagerFactory {
4
4
  static create(name: PackageManager | string): AbstractPackageManager;
5
5
  static find(): Promise<AbstractPackageManager>;
@@ -1,41 +1,44 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PackageManagerFactory = void 0;
4
- const fs = require("fs");
5
- const npm_package_manager_1 = require("./npm.package-manager");
6
- const package_manager_1 = require("./package-manager");
7
- const yarn_package_manager_1 = require("./yarn.package-manager");
8
- const pnpm_package_manager_1 = require("./pnpm.package-manager");
9
- class PackageManagerFactory {
1
+ import * as fs from 'fs';
2
+ import { NpmPackageManager } from './npm.package-manager.js';
3
+ import { PackageManager } from './package-manager.js';
4
+ import { YarnPackageManager } from './yarn.package-manager.js';
5
+ import { PnpmPackageManager } from './pnpm.package-manager.js';
6
+ import { BunPackageManager } from './bun.package-manager.js';
7
+ export class PackageManagerFactory {
10
8
  static create(name) {
11
9
  switch (name) {
12
- case package_manager_1.PackageManager.NPM:
13
- return new npm_package_manager_1.NpmPackageManager();
14
- case package_manager_1.PackageManager.YARN:
15
- return new yarn_package_manager_1.YarnPackageManager();
16
- case package_manager_1.PackageManager.PNPM:
17
- return new pnpm_package_manager_1.PnpmPackageManager();
10
+ case PackageManager.NPM:
11
+ return new NpmPackageManager();
12
+ case PackageManager.YARN:
13
+ return new YarnPackageManager();
14
+ case PackageManager.PNPM:
15
+ return new PnpmPackageManager();
16
+ case PackageManager.BUN:
17
+ return new BunPackageManager();
18
18
  default:
19
19
  throw new Error(`Package manager ${name} is not managed.`);
20
20
  }
21
21
  }
22
22
  static async find() {
23
- const DEFAULT_PACKAGE_MANAGER = package_manager_1.PackageManager.NPM;
23
+ const DEFAULT_PACKAGE_MANAGER = PackageManager.NPM;
24
24
  try {
25
25
  const files = await fs.promises.readdir(process.cwd());
26
26
  const hasYarnLockFile = files.includes('yarn.lock');
27
27
  if (hasYarnLockFile) {
28
- return this.create(package_manager_1.PackageManager.YARN);
28
+ return this.create(PackageManager.YARN);
29
29
  }
30
30
  const hasPnpmLockFile = files.includes('pnpm-lock.yaml');
31
31
  if (hasPnpmLockFile) {
32
- return this.create(package_manager_1.PackageManager.PNPM);
32
+ return this.create(PackageManager.PNPM);
33
+ }
34
+ const hasBunLockFile = ['bun.lock', 'bun.lockb'].some((lockFile) => files.includes(lockFile));
35
+ if (hasBunLockFile) {
36
+ return this.create(PackageManager.BUN);
33
37
  }
34
38
  return this.create(DEFAULT_PACKAGE_MANAGER);
35
39
  }
36
- catch (error) {
40
+ catch {
37
41
  return this.create(DEFAULT_PACKAGE_MANAGER);
38
42
  }
39
43
  }
40
44
  }
41
- exports.PackageManagerFactory = PackageManagerFactory;
@@ -1,9 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PackageManager = void 0;
4
- var PackageManager;
1
+ export var PackageManager;
5
2
  (function (PackageManager) {
6
3
  PackageManager["NPM"] = "npm";
7
4
  PackageManager["YARN"] = "yarn";
8
5
  PackageManager["PNPM"] = "pnpm";
9
- })(PackageManager || (exports.PackageManager = PackageManager = {}));
6
+ PackageManager["BUN"] = "bun";
7
+ })(PackageManager || (PackageManager = {}));
@@ -1,5 +1,5 @@
1
- import { AbstractPackageManager } from './abstract.package-manager';
2
- import { PackageManagerCommands } from './package-manager-commands';
1
+ import { AbstractPackageManager } from './abstract.package-manager.js';
2
+ import { PackageManagerCommands } from './package-manager-commands.js';
3
3
  export declare class PnpmPackageManager extends AbstractPackageManager {
4
4
  constructor();
5
5
  get name(): string;
@@ -1,15 +1,12 @@
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 {
1
+ import { Runner, RunnerFactory } from '../runners/index.js';
2
+ import { AbstractPackageManager } from './abstract.package-manager.js';
3
+ import { PackageManager } from './package-manager.js';
4
+ export class PnpmPackageManager extends AbstractPackageManager {
8
5
  constructor() {
9
- super(runners_1.RunnerFactory.create(runners_1.Runner.PNPM));
6
+ super(RunnerFactory.create(Runner.PNPM));
10
7
  }
11
8
  get name() {
12
- return package_manager_1.PackageManager.PNPM.toUpperCase();
9
+ return PackageManager.PNPM.toUpperCase();
13
10
  }
14
11
  // As of PNPM v5.3, all commands are shared with NPM v6.14.5. See: https://pnpm.js.org/en/pnpm-vs-npm
15
12
  get cli() {
@@ -24,4 +21,3 @@ class PnpmPackageManager extends abstract_package_manager_1.AbstractPackageManag
24
21
  };
25
22
  }
26
23
  }
27
- exports.PnpmPackageManager = PnpmPackageManager;
@@ -1,2 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
@@ -1,5 +1,5 @@
1
- import { AbstractPackageManager } from './abstract.package-manager';
2
- import { PackageManagerCommands } from './package-manager-commands';
1
+ import { AbstractPackageManager } from './abstract.package-manager.js';
2
+ import { PackageManagerCommands } from './package-manager-commands.js';
3
3
  export declare class YarnPackageManager extends AbstractPackageManager {
4
4
  constructor();
5
5
  get name(): string;
@@ -1,15 +1,12 @@
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 {
1
+ import { Runner, RunnerFactory } from '../runners/index.js';
2
+ import { AbstractPackageManager } from './abstract.package-manager.js';
3
+ import { PackageManager } from './package-manager.js';
4
+ export class YarnPackageManager extends AbstractPackageManager {
8
5
  constructor() {
9
- super(runners_1.RunnerFactory.create(runners_1.Runner.YARN));
6
+ super(RunnerFactory.create(Runner.YARN));
10
7
  }
11
8
  get name() {
12
- return package_manager_1.PackageManager.YARN.toUpperCase();
9
+ return PackageManager.YARN.toUpperCase();
13
10
  }
14
11
  get cli() {
15
12
  return {
@@ -23,4 +20,3 @@ class YarnPackageManager extends abstract_package_manager_1.AbstractPackageManag
23
20
  };
24
21
  }
25
22
  }
26
- exports.YarnPackageManager = YarnPackageManager;
@@ -1,4 +1,8 @@
1
- export declare const generateInput: (name: string, message: string) => (defaultAnswer: string) => any;
1
+ export declare const generateInput: (name: string, message: string) => (defaultAnswer: string) => {
2
+ name: string;
3
+ message: string;
4
+ default: string;
5
+ };
2
6
  export declare const generateSelect: (name: string) => (message: string) => (choices: string[]) => {
3
7
  name: string;
4
8
  message: string;
@@ -1,15 +1,11 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateSelect = exports.generateInput = void 0;
4
- const generateInput = (name, message) => {
1
+ export const generateInput = (name, message) => {
5
2
  return (defaultAnswer) => ({
6
3
  name,
7
4
  message,
8
5
  default: defaultAnswer,
9
6
  });
10
7
  };
11
- exports.generateInput = generateInput;
12
- const generateSelect = (name) => {
8
+ export const generateSelect = (name) => {
13
9
  return (message) => {
14
10
  return (choices) => {
15
11
  const choicesFormatted = choices.map((choice) => ({
@@ -24,4 +20,3 @@ const generateSelect = (name) => {
24
20
  };
25
21
  };
26
22
  };
27
- exports.generateSelect = generateSelect;
@@ -1,4 +1,4 @@
1
- import { Reader, ReaderFileLackPermissionsError } from './reader';
1
+ import { Reader, ReaderFileLackPermissionsError } from './reader.js';
2
2
  export declare class FileSystemReader implements Reader {
3
3
  private readonly directory;
4
4
  constructor(directory: string);
@@ -1,10 +1,8 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FileSystemReader = void 0;
4
- const fs = require("fs");
5
- const path = require("path");
6
- const reader_1 = require("./reader");
7
- class FileSystemReader {
1
+ import * as fs from 'fs';
2
+ import * as path from 'path';
3
+ import { ReaderFileLackPermissionsError } from './reader.js';
4
+ export class FileSystemReader {
5
+ directory;
8
6
  constructor(directory) {
9
7
  this.directory = directory;
10
8
  }
@@ -34,7 +32,7 @@ class FileSystemReader {
34
32
  continue;
35
33
  }
36
34
  if (firstFilePathFoundButWithInsufficientPermissions) {
37
- return new reader_1.ReaderFileLackPermissionsError(firstFilePathFoundButWithInsufficientPermissions, readErr.code);
35
+ return new ReaderFileLackPermissionsError(firstFilePathFoundButWithInsufficientPermissions, readErr.code);
38
36
  }
39
37
  else {
40
38
  return undefined;
@@ -43,4 +41,3 @@ class FileSystemReader {
43
41
  }
44
42
  }
45
43
  }
46
- exports.FileSystemReader = FileSystemReader;
@@ -1,2 +1,2 @@
1
- export * from './reader';
2
- export * from './file-system.reader';
1
+ export * from './reader.js';
2
+ export * from './file-system.reader.js';
@@ -1,18 +1,2 @@
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);
1
+ export * from './reader.js';
2
+ export * from './file-system.reader.js';
@@ -1,11 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ReaderFileLackPermissionsError = void 0;
4
- class ReaderFileLackPermissionsError extends Error {
1
+ export class ReaderFileLackPermissionsError extends Error {
2
+ filePath;
3
+ fsErrorCode;
5
4
  constructor(filePath, fsErrorCode) {
6
5
  super(`File ${filePath} lacks read permissions!`);
7
6
  this.filePath = filePath;
8
7
  this.fsErrorCode = fsErrorCode;
9
8
  }
10
9
  }
11
- exports.ReaderFileLackPermissionsError = ReaderFileLackPermissionsError;