@adonisjs/core 7.0.0-next.1 → 7.0.0-next.11

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 (145) hide show
  1. package/build/commands/add.js +40 -110
  2. package/build/commands/build.js +51 -107
  3. package/build/commands/configure.js +82 -177
  4. package/build/commands/eject.js +17 -60
  5. package/build/commands/env/add.js +55 -134
  6. package/build/commands/generate_key.js +22 -66
  7. package/build/commands/inspect_rcfile.js +27 -55
  8. package/build/commands/list/routes.js +246 -116
  9. package/build/commands/make/command.js +15 -57
  10. package/build/commands/make/controller.js +43 -120
  11. package/build/commands/make/event.js +16 -62
  12. package/build/commands/make/exception.js +16 -62
  13. package/build/commands/make/listener.js +36 -93
  14. package/build/commands/make/middleware.js +41 -101
  15. package/build/commands/make/preload.js +47 -113
  16. package/build/commands/make/provider.js +47 -112
  17. package/build/commands/make/service.js +16 -55
  18. package/build/commands/make/test.js +47 -132
  19. package/build/commands/make/transformer.js +17 -64
  20. package/build/commands/make/validator.js +20 -80
  21. package/build/commands/make/view.js +15 -56
  22. package/build/commands/repl.js +17 -50
  23. package/build/commands/serve.js +80 -156
  24. package/build/commands/test.js +92 -208
  25. package/build/factories/app.js +2 -9
  26. package/build/factories/bodyparser.js +2 -9
  27. package/build/factories/core/ace.js +15 -46
  28. package/build/factories/core/ignitor.js +12 -180
  29. package/build/factories/core/main.js +22 -11
  30. package/build/factories/core/test_utils.js +19 -43
  31. package/build/factories/encryption.js +2 -9
  32. package/build/factories/events.js +2 -9
  33. package/build/factories/hash.js +2 -9
  34. package/build/factories/http.js +2 -9
  35. package/build/factories/logger.js +2 -9
  36. package/build/factories/stubs.js +28 -91
  37. package/build/index.js +13 -46
  38. package/build/modules/ace/codemods.d.ts +109 -14
  39. package/build/modules/ace/codemods.js +222 -374
  40. package/build/modules/ace/main.d.ts +30 -0
  41. package/build/modules/ace/main.js +2 -11
  42. package/build/modules/app.d.ts +17 -0
  43. package/build/modules/app.js +4 -9
  44. package/build/modules/bodyparser/bodyparser_middleware.js +2 -14
  45. package/build/modules/bodyparser/main.js +4 -9
  46. package/build/modules/config.d.ts +17 -0
  47. package/build/modules/config.js +4 -9
  48. package/build/modules/container.js +4 -9
  49. package/build/modules/dumper/dumper.d.ts +5 -0
  50. package/build/modules/dumper/main.d.ts +21 -0
  51. package/build/modules/dumper/main.js +6 -11
  52. package/build/modules/dumper/plugins/edge.js +2 -62
  53. package/build/modules/encryption.d.ts +17 -0
  54. package/build/modules/encryption.js +4 -9
  55. package/build/modules/env/editor.js +2 -9
  56. package/build/modules/env/main.d.ts +19 -0
  57. package/build/modules/env/main.js +2 -9
  58. package/build/modules/events.js +4 -9
  59. package/build/modules/hash/drivers/argon.js +2 -9
  60. package/build/modules/hash/drivers/bcrypt.d.ts +11 -0
  61. package/build/modules/hash/drivers/bcrypt.js +2 -9
  62. package/build/modules/hash/drivers/scrypt.js +2 -9
  63. package/build/modules/hash/main.d.ts +18 -0
  64. package/build/modules/hash/main.js +6 -10
  65. package/build/modules/hash/phc_formatter.js +2 -9
  66. package/build/modules/health.js +2 -9
  67. package/build/modules/http/main.js +4 -15
  68. package/build/modules/http/url_builder_client.d.ts +1 -0
  69. package/build/modules/http/url_builder_client.js +2 -0
  70. package/build/modules/logger.d.ts +30 -0
  71. package/build/modules/logger.js +4 -9
  72. package/build/modules/repl.js +4 -9
  73. package/build/modules/transformers/main.js +4 -9
  74. package/build/providers/app_provider.d.ts +9 -21
  75. package/build/providers/app_provider.js +147 -363
  76. package/build/providers/edge_provider.js +97 -104
  77. package/build/providers/hash_provider.js +29 -91
  78. package/build/providers/repl_provider.js +61 -152
  79. package/build/providers/vinejs_provider.d.ts +1 -1
  80. package/build/providers/vinejs_provider.js +20 -66
  81. package/build/services/ace.js +2 -17
  82. package/build/services/app.js +2 -21
  83. package/build/services/config.js +2 -13
  84. package/build/services/dumper.js +5 -21
  85. package/build/services/emitter.js +2 -14
  86. package/build/services/encryption.js +2 -14
  87. package/build/services/hash.js +2 -14
  88. package/build/services/logger.js +2 -14
  89. package/build/services/repl.js +2 -14
  90. package/build/services/router.js +2 -14
  91. package/build/services/server.js +2 -14
  92. package/build/services/test_utils.js +2 -17
  93. package/build/services/url_builder.js +5 -17
  94. package/build/src/exceptions.js +2 -49
  95. package/build/src/helpers/assert.js +2 -55
  96. package/build/src/helpers/http.d.ts +20 -0
  97. package/build/src/helpers/http.js +2 -0
  98. package/build/src/helpers/is.js +3 -31
  99. package/build/src/helpers/main.d.ts +1 -5
  100. package/build/src/helpers/main.js +5 -56
  101. package/build/src/helpers/string.js +2 -60
  102. package/build/src/helpers/types.js +26 -135
  103. package/build/src/helpers/verification_token.js +2 -120
  104. package/build/src/test_utils/main.js +5 -77
  105. package/build/src/types.d.ts +1 -0
  106. package/build/src/types.js +0 -8
  107. package/build/src/utils.d.ts +1 -1
  108. package/build/src/vine.js +2 -97
  109. package/build/types/ace.js +2 -9
  110. package/build/types/app.js +2 -9
  111. package/build/types/bodyparser.js +2 -9
  112. package/build/types/common.js +2 -9
  113. package/build/types/container.js +2 -9
  114. package/build/types/encryption.js +2 -9
  115. package/build/types/events.js +2 -9
  116. package/build/types/hash.js +2 -9
  117. package/build/types/health.js +2 -9
  118. package/build/types/helpers.d.ts +20 -0
  119. package/build/types/helpers.js +0 -8
  120. package/build/types/http.js +2 -9
  121. package/build/types/logger.js +2 -9
  122. package/build/types/repl.js +2 -9
  123. package/build/types/transformers.js +2 -9
  124. package/package.json +88 -30
  125. package/build/modules/ace/commands.js +0 -157
  126. package/build/modules/ace/create_kernel.js +0 -91
  127. package/build/modules/ace/kernel.js +0 -40
  128. package/build/modules/dumper/define_config.js +0 -36
  129. package/build/modules/dumper/dumper.js +0 -256
  130. package/build/modules/dumper/errors.js +0 -119
  131. package/build/modules/hash/define_config.js +0 -125
  132. package/build/modules/http/request_validator.js +0 -100
  133. package/build/src/assembler_hooks/index_entities.js +0 -106
  134. package/build/src/cli_formatters/routes_list.js +0 -381
  135. package/build/src/config_provider.js +0 -71
  136. package/build/src/debug.js +0 -25
  137. package/build/src/ignitor/ace.js +0 -102
  138. package/build/src/ignitor/http.js +0 -146
  139. package/build/src/ignitor/main.js +0 -124
  140. package/build/src/ignitor/test.js +0 -66
  141. package/build/src/test_utils/http.js +0 -82
  142. package/build/src/utils.js +0 -104
  143. package/build/stubs/main.js +0 -9
  144. package/build/toolkit/commands/index_commands.js +0 -30
  145. package/build/toolkit/main.js +0 -27
@@ -1,374 +1,222 @@
1
- /*
2
- * @adonisjs/core
3
- *
4
- * (c) AdonisJS
5
- *
6
- * For the full copyright and license information, please view the LICENSE
7
- * file that was distributed with this source code.
8
- */
9
- import { EventEmitter } from 'node:events';
10
- import { EnvEditor } from '@adonisjs/env/editor';
11
- import stringHelpers from "../../src/helpers/string.js";
12
- /**
13
- * Codemods class for programmatically modifying AdonisJS source files.
14
- * This class provides APIs to modify configuration files, register middleware,
15
- * generate stubs, and install packages.
16
- *
17
- * The codemod APIs rely on the "@adonisjs/assembler" package, which must be
18
- * installed as a dependency in the user application.
19
- *
20
- * @example
21
- * ```ts
22
- * const codemods = new Codemods(app, logger)
23
- *
24
- * // Generate a controller from a stub
25
- * await codemods.makeUsingStub(stubsRoot, 'controller.stub', {
26
- * filename: 'UserController',
27
- * entity: { name: 'User' }
28
- * })
29
- *
30
- * // Install packages
31
- * await codemods.installPackages([
32
- * { name: '@adonisjs/lucid', isDevDependency: false }
33
- * ])
34
- * ```
35
- */
36
- export class Codemods extends EventEmitter {
37
- /**
38
- * Reference to lazily imported assembler code transformer
39
- */
40
- #codeTransformer;
41
- /**
42
- * Reference to AdonisJS application
43
- */
44
- #app;
45
- /**
46
- * Reference to CLI logger to write logs
47
- */
48
- #cliLogger;
49
- /**
50
- * Overwrite existing files when generating files
51
- * from stubs
52
- */
53
- overwriteExisting = false;
54
- /**
55
- * Display verbose logs for package installation
56
- */
57
- verboseInstallOutput = false;
58
- constructor(app, cliLogger) {
59
- super();
60
- this.#app = app;
61
- this.#cliLogger = cliLogger;
62
- }
63
- /**
64
- * - Lazily import the code transformer
65
- * - Return a fresh or reused instance of the code transformer
66
- */
67
- async #getCodeTransformer() {
68
- try {
69
- if (!this.#codeTransformer) {
70
- const { CodeTransformer } = await import('@adonisjs/assembler/code_transformer');
71
- this.#codeTransformer = new CodeTransformer(this.#app.appRoot);
72
- }
73
- return this.#codeTransformer;
74
- }
75
- catch {
76
- return null;
77
- }
78
- }
79
- /**
80
- * Returns the installation command for different
81
- * package managers
82
- */
83
- #getInstallationCommands(packages, packageManager, isDev) {
84
- if (!packages.length) {
85
- return '';
86
- }
87
- const colors = this.#cliLogger.getColors();
88
- const devFlag = isDev ? ' -D' : '';
89
- switch (packageManager) {
90
- case 'yarn':
91
- case 'yarn@berry':
92
- return `${colors.yellow(`yarn add${devFlag}`)} ${packages.join(' ')}`;
93
- case 'pnpm':
94
- return `${colors.yellow(`pnpm add${devFlag}`)} ${packages.join(' ')}`;
95
- case 'npm':
96
- default:
97
- return `${colors.yellow(`npm i${devFlag}`)} ${packages.join(' ')}`;
98
- }
99
- }
100
- /**
101
- * Define one or more environment variables in the .env file
102
- *
103
- * @param environmentVariables - Key-value pairs of environment variables
104
- * @param options - Configuration options
105
- * @param options.omitFromExample - Keys to exclude from .env.example file
106
- *
107
- * @example
108
- * ```ts
109
- * await codemods.defineEnvVariables({
110
- * DB_CONNECTION: 'mysql',
111
- * DB_HOST: 'localhost',
112
- * SECRET_KEY: 'abc123'
113
- * }, {
114
- * omitFromExample: ['SECRET_KEY']
115
- * })
116
- * ```
117
- */
118
- async defineEnvVariables(environmentVariables, options) {
119
- const editor = new EnvEditor(this.#app.appRoot);
120
- await editor.load();
121
- Object.keys(environmentVariables).forEach((key) => {
122
- const value = environmentVariables[key];
123
- editor.add(key, value, options?.omitFromExample?.includes(key));
124
- });
125
- await editor.save();
126
- this.#cliLogger.action('update .env file').succeeded();
127
- }
128
- /**
129
- * Returns the TsMorph project instance for advanced AST manipulations.
130
- * See https://ts-morph.com/ for documentation.
131
- *
132
- * @example
133
- * ```ts
134
- * const project = await codemods.getTsMorphProject()
135
- * if (project) {
136
- * const sourceFile = project.getSourceFile('app/controllers/user_controller.ts')
137
- * // Perform advanced AST operations
138
- * }
139
- * ```
140
- */
141
- async getTsMorphProject() {
142
- const transformer = await this.#getCodeTransformer();
143
- if (!transformer) {
144
- this.#cliLogger.warning('Cannot create CodeTransformer. Install "@adonisjs/assembler" to modify source files');
145
- return;
146
- }
147
- return transformer.project;
148
- }
149
- /**
150
- * Define validations for the environment variables
151
- */
152
- async defineEnvValidations(validations) {
153
- const transformer = await this.#getCodeTransformer();
154
- if (!transformer) {
155
- this.#cliLogger.warning('Cannot update "start/env.ts" file. Install "@adonisjs/assembler" to modify source files');
156
- return;
157
- }
158
- const action = this.#cliLogger.action('update start/env.ts file');
159
- try {
160
- await transformer.defineEnvValidations(validations);
161
- action.succeeded();
162
- }
163
- catch (error) {
164
- this.emit('error', error);
165
- action.failed(error.message);
166
- }
167
- }
168
- /**
169
- * Define validations for the environment variables
170
- */
171
- async registerMiddleware(stack, middleware) {
172
- const transformer = await this.#getCodeTransformer();
173
- if (!transformer) {
174
- this.#cliLogger.warning('Cannot update "start/kernel.ts" file. Install "@adonisjs/assembler" to modify source files');
175
- return;
176
- }
177
- const action = this.#cliLogger.action('update start/kernel.ts file');
178
- try {
179
- await transformer.addMiddlewareToStack(stack, middleware);
180
- action.succeeded();
181
- }
182
- catch (error) {
183
- this.emit('error', error);
184
- action.failed(error.message);
185
- }
186
- }
187
- /**
188
- * Register bouncer policies to the list of policies
189
- * collection exported from the "app/policies/main.ts"
190
- * file.
191
- */
192
- async registerPolicies(policies) {
193
- const transformer = await this.#getCodeTransformer();
194
- if (!transformer) {
195
- this.#cliLogger.warning('Cannot update "app/policies/main.ts" file. Install "@adonisjs/assembler" to modify source files');
196
- return;
197
- }
198
- const action = this.#cliLogger.action('update app/policies/main.ts file');
199
- try {
200
- await transformer.addPolicies(policies);
201
- action.succeeded();
202
- }
203
- catch (error) {
204
- this.emit('error', error);
205
- action.failed(error.message);
206
- }
207
- }
208
- /**
209
- * Update RCFile
210
- */
211
- async updateRcFile(...params) {
212
- const transformer = await this.#getCodeTransformer();
213
- if (!transformer) {
214
- this.#cliLogger.warning('Cannot update "adonisrc.ts" file. Install "@adonisjs/assembler" to modify source files');
215
- return;
216
- }
217
- const action = this.#cliLogger.action('update adonisrc.ts file');
218
- try {
219
- await transformer.updateRcFile(...params);
220
- action.succeeded();
221
- }
222
- catch (error) {
223
- this.emit('error', error);
224
- action.failed(error.message);
225
- }
226
- }
227
- /**
228
- * Register a new Vite plugin in the `vite.config.ts` file
229
- */
230
- async registerVitePlugin(...params) {
231
- const transformer = await this.#getCodeTransformer();
232
- if (!transformer) {
233
- this.#cliLogger.warning('Cannot update "vite.config.ts" file. Install "@adonisjs/assembler" to modify source files');
234
- return;
235
- }
236
- const action = this.#cliLogger.action('update vite.config.ts file');
237
- try {
238
- await transformer.addVitePlugin(...params);
239
- action.succeeded();
240
- }
241
- catch (error) {
242
- this.emit('error', error);
243
- action.failed(error.message);
244
- }
245
- }
246
- /**
247
- * Register a new Japa plugin in the `tests/bootstrap.ts` file
248
- */
249
- async registerJapaPlugin(...params) {
250
- const transformer = await this.#getCodeTransformer();
251
- if (!transformer) {
252
- this.#cliLogger.warning('Cannot update "tests/bootstrap.ts" file. Install "@adonisjs/assembler" to modify source files');
253
- return;
254
- }
255
- const action = this.#cliLogger.action('update tests/bootstrap.ts file');
256
- try {
257
- await transformer.addJapaPlugin(...params);
258
- action.succeeded();
259
- }
260
- catch (error) {
261
- this.emit('error', error);
262
- action.failed(error.message);
263
- }
264
- }
265
- /**
266
- * Generate a file using a stub template
267
- *
268
- * @param stubsRoot - Root directory containing stub files
269
- * @param stubPath - Path to the specific stub file
270
- * @param stubState - Template variables for stub generation
271
- *
272
- * @example
273
- * ```ts
274
- * const result = await codemods.makeUsingStub(
275
- * './stubs',
276
- * 'controller.stub',
277
- * {
278
- * filename: 'UserController',
279
- * entity: { name: 'User', modelName: 'User' },
280
- * resourceful: true
281
- * }
282
- * )
283
- * ```
284
- */
285
- async makeUsingStub(stubsRoot, stubPath, stubState) {
286
- const stubs = await this.#app.stubs.create();
287
- const stub = await stubs.build(stubPath, { source: stubsRoot });
288
- const output = await stub.generate({ force: this.overwriteExisting, ...stubState });
289
- const entityFileName = stringHelpers.toUnixSlash(this.#app.relativePath(output.destination));
290
- const result = { ...output, relativeFileName: entityFileName };
291
- if (output.status === 'skipped') {
292
- this.#cliLogger.action(`create ${entityFileName}`).skipped(output.skipReason);
293
- return result;
294
- }
295
- this.#cliLogger.action(`create ${entityFileName}`).succeeded();
296
- return result;
297
- }
298
- /**
299
- * Install packages using the correct package manager
300
- * You can specify version of each package by setting it in the
301
- * name like :
302
- *
303
- * ```
304
- * this.installPackages([{ name: '@adonisjs/lucid@next', isDevDependency: false }])
305
- * ```
306
- */
307
- async installPackages(packages, packageManager) {
308
- const transformer = await this.#getCodeTransformer();
309
- const appPath = this.#app.makePath();
310
- const colors = this.#cliLogger.getColors();
311
- const devDependencies = packages.filter((pkg) => pkg.isDevDependency).map(({ name }) => name);
312
- const dependencies = packages.filter((pkg) => !pkg.isDevDependency).map(({ name }) => name);
313
- if (!transformer) {
314
- this.#cliLogger.warning('Cannot install packages. Install "@adonisjs/assembler" or manually install following packages');
315
- this.#cliLogger.log(`devDependencies: ${devDependencies.join(',')}`);
316
- this.#cliLogger.log(`dependencies: ${dependencies.join(',')}`);
317
- return false;
318
- }
319
- packageManager = packageManager ?? (await transformer.detectPackageManager(appPath)) ?? 'npm';
320
- const spinner = this.#cliLogger.await(`installing dependencies using ${packageManager} `);
321
- const silentLogs = !this.verboseInstallOutput;
322
- if (silentLogs) {
323
- spinner.start();
324
- }
325
- try {
326
- if (dependencies.length) {
327
- await transformer.installPackage(dependencies, {
328
- cwd: appPath,
329
- silent: silentLogs,
330
- packageManager,
331
- });
332
- }
333
- if (devDependencies.length) {
334
- await transformer.installPackage(devDependencies, {
335
- dev: true,
336
- cwd: appPath,
337
- silent: silentLogs,
338
- packageManager,
339
- });
340
- }
341
- if (silentLogs) {
342
- spinner.stop();
343
- }
344
- this.#cliLogger.success('Packages installed');
345
- this.#cliLogger.log(devDependencies.map((dependency) => ` ${colors.dim('dev')} ${dependency} `).join('\n'));
346
- this.#cliLogger.log(dependencies.map((dependency) => ` ${colors.dim('prod')} ${dependency} `).join('\n'));
347
- return true;
348
- }
349
- catch (error) {
350
- if (silentLogs) {
351
- spinner.update('unable to install dependencies');
352
- spinner.stop();
353
- }
354
- this.#cliLogger.fatal(error);
355
- this.emit('error', error);
356
- return false;
357
- }
358
- }
359
- /**
360
- * List the packages one should install before using the packages
361
- */
362
- async listPackagesToInstall(packages) {
363
- const appPath = this.#app.makePath();
364
- const devDependencies = packages.filter((pkg) => pkg.isDevDependency).map(({ name }) => name);
365
- const dependencies = packages.filter((pkg) => !pkg.isDevDependency).map(({ name }) => name);
366
- let packageManager = null;
367
- const transformer = await this.#getCodeTransformer();
368
- if (transformer)
369
- packageManager = await transformer.detectPackageManager(appPath);
370
- this.#cliLogger.log('Please install following packages');
371
- this.#cliLogger.log(this.#getInstallationCommands(devDependencies, packageManager || 'npm', true));
372
- this.#cliLogger.log(this.#getInstallationCommands(dependencies, packageManager || 'npm', false));
373
- }
374
- }
1
+ import { t as string_default } from "../../string-CJ7ewUFq.js";
2
+ import { EnvEditor } from "@adonisjs/env/editor";
3
+ import { EventEmitter } from "node:events";
4
+ var Codemods = class extends EventEmitter {
5
+ #codeTransformer;
6
+ #app;
7
+ #cliLogger;
8
+ overwriteExisting = false;
9
+ verboseInstallOutput = false;
10
+ constructor(app, cliLogger) {
11
+ super();
12
+ this.#app = app;
13
+ this.#cliLogger = cliLogger;
14
+ }
15
+ async #getCodeTransformer() {
16
+ try {
17
+ if (!this.#codeTransformer) {
18
+ const { CodeTransformer } = await import("@adonisjs/assembler/code_transformer");
19
+ this.#codeTransformer = new CodeTransformer(this.#app.appRoot);
20
+ }
21
+ return this.#codeTransformer;
22
+ } catch {
23
+ return null;
24
+ }
25
+ }
26
+ #getInstallationCommands(packages, packageManager, isDev) {
27
+ if (!packages.length) return "";
28
+ const colors = this.#cliLogger.getColors();
29
+ const devFlag = isDev ? " -D" : "";
30
+ switch (packageManager) {
31
+ case "yarn":
32
+ case "yarn@berry": return `${colors.yellow(`yarn add${devFlag}`)} ${packages.join(" ")}`;
33
+ case "pnpm": return `${colors.yellow(`pnpm add${devFlag}`)} ${packages.join(" ")}`;
34
+ case "npm":
35
+ default: return `${colors.yellow(`npm i${devFlag}`)} ${packages.join(" ")}`;
36
+ }
37
+ }
38
+ async defineEnvVariables(environmentVariables, options) {
39
+ const editor = new EnvEditor(this.#app.appRoot);
40
+ await editor.load();
41
+ Object.keys(environmentVariables).forEach((key) => {
42
+ const value = environmentVariables[key];
43
+ editor.add(key, value, options?.omitFromExample?.includes(key));
44
+ });
45
+ await editor.save();
46
+ this.#cliLogger.action("update .env file").succeeded();
47
+ }
48
+ async getTsMorphProject() {
49
+ const transformer = await this.#getCodeTransformer();
50
+ if (!transformer) {
51
+ this.#cliLogger.warning("Cannot create CodeTransformer. Install \"@adonisjs/assembler\" to modify source files");
52
+ return;
53
+ }
54
+ return transformer.project;
55
+ }
56
+ async defineEnvValidations(validations) {
57
+ const transformer = await this.#getCodeTransformer();
58
+ if (!transformer) {
59
+ this.#cliLogger.warning("Cannot update \"start/env.ts\" file. Install \"@adonisjs/assembler\" to modify source files");
60
+ return;
61
+ }
62
+ const action = this.#cliLogger.action("update start/env.ts file");
63
+ try {
64
+ await transformer.defineEnvValidations(validations);
65
+ action.succeeded();
66
+ } catch (error) {
67
+ this.emit("error", error);
68
+ action.failed(error.message);
69
+ }
70
+ }
71
+ async registerMiddleware(stack, middleware) {
72
+ const transformer = await this.#getCodeTransformer();
73
+ if (!transformer) {
74
+ this.#cliLogger.warning("Cannot update \"start/kernel.ts\" file. Install \"@adonisjs/assembler\" to modify source files");
75
+ return;
76
+ }
77
+ const action = this.#cliLogger.action("update start/kernel.ts file");
78
+ try {
79
+ await transformer.addMiddlewareToStack(stack, middleware);
80
+ action.succeeded();
81
+ } catch (error) {
82
+ this.emit("error", error);
83
+ action.failed(error.message);
84
+ }
85
+ }
86
+ async registerPolicies(policies) {
87
+ const transformer = await this.#getCodeTransformer();
88
+ if (!transformer) {
89
+ this.#cliLogger.warning("Cannot update \"app/policies/main.ts\" file. Install \"@adonisjs/assembler\" to modify source files");
90
+ return;
91
+ }
92
+ const action = this.#cliLogger.action("update app/policies/main.ts file");
93
+ try {
94
+ await transformer.addPolicies(policies);
95
+ action.succeeded();
96
+ } catch (error) {
97
+ this.emit("error", error);
98
+ action.failed(error.message);
99
+ }
100
+ }
101
+ async updateRcFile(...params) {
102
+ const transformer = await this.#getCodeTransformer();
103
+ if (!transformer) {
104
+ this.#cliLogger.warning("Cannot update \"adonisrc.ts\" file. Install \"@adonisjs/assembler\" to modify source files");
105
+ return;
106
+ }
107
+ const action = this.#cliLogger.action("update adonisrc.ts file");
108
+ try {
109
+ await transformer.updateRcFile(...params);
110
+ action.succeeded();
111
+ } catch (error) {
112
+ this.emit("error", error);
113
+ action.failed(error.message);
114
+ }
115
+ }
116
+ async registerVitePlugin(...params) {
117
+ const transformer = await this.#getCodeTransformer();
118
+ if (!transformer) {
119
+ this.#cliLogger.warning("Cannot update \"vite.config.ts\" file. Install \"@adonisjs/assembler\" to modify source files");
120
+ return;
121
+ }
122
+ const action = this.#cliLogger.action("update vite.config.ts file");
123
+ try {
124
+ await transformer.addVitePlugin(...params);
125
+ action.succeeded();
126
+ } catch (error) {
127
+ this.emit("error", error);
128
+ action.failed(error.message);
129
+ }
130
+ }
131
+ async registerJapaPlugin(...params) {
132
+ const transformer = await this.#getCodeTransformer();
133
+ if (!transformer) {
134
+ this.#cliLogger.warning("Cannot update \"tests/bootstrap.ts\" file. Install \"@adonisjs/assembler\" to modify source files");
135
+ return;
136
+ }
137
+ const action = this.#cliLogger.action("update tests/bootstrap.ts file");
138
+ try {
139
+ await transformer.addJapaPlugin(...params);
140
+ action.succeeded();
141
+ } catch (error) {
142
+ this.emit("error", error);
143
+ action.failed(error.message);
144
+ }
145
+ }
146
+ async makeUsingStub(stubsRoot, stubPath, stubState) {
147
+ const output = await (await (await this.#app.stubs.create()).build(stubPath, { source: stubsRoot })).generate({
148
+ force: this.overwriteExisting,
149
+ ...stubState
150
+ });
151
+ const entityFileName = string_default.toUnixSlash(this.#app.relativePath(output.destination));
152
+ const result = {
153
+ ...output,
154
+ relativeFileName: entityFileName
155
+ };
156
+ if (output.status === "skipped") {
157
+ this.#cliLogger.action(`create ${entityFileName}`).skipped(output.skipReason);
158
+ return result;
159
+ }
160
+ this.#cliLogger.action(`create ${entityFileName}`).succeeded();
161
+ return result;
162
+ }
163
+ async installPackages(packages, packageManager) {
164
+ const transformer = await this.#getCodeTransformer();
165
+ const appPath = this.#app.makePath();
166
+ const colors = this.#cliLogger.getColors();
167
+ const devDependencies = packages.filter((pkg) => pkg.isDevDependency).map(({ name }) => {
168
+ return name.startsWith("@adonisjs/") ? `${name}@next` : name;
169
+ });
170
+ const dependencies = packages.filter((pkg) => !pkg.isDevDependency).map(({ name }) => {
171
+ return name.startsWith("@adonisjs/") ? `${name}@next` : name;
172
+ });
173
+ if (!transformer) {
174
+ this.#cliLogger.warning("Cannot install packages. Install \"@adonisjs/assembler\" or manually install following packages");
175
+ this.#cliLogger.log(`devDependencies: ${devDependencies.join(",")}`);
176
+ this.#cliLogger.log(`dependencies: ${dependencies.join(",")}`);
177
+ return false;
178
+ }
179
+ packageManager = packageManager ?? await transformer.detectPackageManager(appPath) ?? "npm";
180
+ const spinner = this.#cliLogger.await(`installing dependencies using ${packageManager} `);
181
+ const silentLogs = !this.verboseInstallOutput;
182
+ if (silentLogs) spinner.start();
183
+ try {
184
+ if (dependencies.length) await transformer.installPackage(dependencies, {
185
+ cwd: appPath,
186
+ silent: silentLogs,
187
+ packageManager
188
+ });
189
+ if (devDependencies.length) await transformer.installPackage(devDependencies, {
190
+ dev: true,
191
+ cwd: appPath,
192
+ silent: silentLogs,
193
+ packageManager
194
+ });
195
+ if (silentLogs) spinner.stop();
196
+ this.#cliLogger.success("Packages installed");
197
+ this.#cliLogger.log(devDependencies.map((dependency) => ` ${colors.dim("dev")} ${dependency} `).join("\n"));
198
+ this.#cliLogger.log(dependencies.map((dependency) => ` ${colors.dim("prod")} ${dependency} `).join("\n"));
199
+ return true;
200
+ } catch (error) {
201
+ if (silentLogs) {
202
+ spinner.update("unable to install dependencies");
203
+ spinner.stop();
204
+ }
205
+ this.#cliLogger.fatal(error);
206
+ this.emit("error", error);
207
+ return false;
208
+ }
209
+ }
210
+ async listPackagesToInstall(packages) {
211
+ const appPath = this.#app.makePath();
212
+ const devDependencies = packages.filter((pkg) => pkg.isDevDependency).map(({ name }) => name);
213
+ const dependencies = packages.filter((pkg) => !pkg.isDevDependency).map(({ name }) => name);
214
+ let packageManager = null;
215
+ const transformer = await this.#getCodeTransformer();
216
+ if (transformer) packageManager = await transformer.detectPackageManager(appPath);
217
+ this.#cliLogger.log("Please install following packages");
218
+ this.#cliLogger.log(this.#getInstallationCommands(devDependencies, packageManager || "npm", true));
219
+ this.#cliLogger.log(this.#getInstallationCommands(dependencies, packageManager || "npm", false));
220
+ }
221
+ };
222
+ export { Codemods };
@@ -1,3 +1,33 @@
1
+ /**
2
+ * Ace command line interface module for AdonisJS applications.
3
+ * Provides the kernel, base commands, and utilities for building CLI applications.
4
+ *
5
+ * @example
6
+ * // Create and use the Ace kernel
7
+ * import { Kernel, BaseCommand } from '@adonisjs/core/ace'
8
+ *
9
+ * const kernel = new Kernel(app)
10
+ * await kernel.handle(['make:controller', 'UserController'])
11
+ *
12
+ * @example
13
+ * // Create a custom command
14
+ * import { BaseCommand, args, flags } from '@adonisjs/core/ace'
15
+ *
16
+ * export default class MakeUser extends BaseCommand {
17
+ * static commandName = 'make:user'
18
+ * static description = 'Create a new user'
19
+ *
20
+ * @args.string({ description: 'Name of the user' })
21
+ * declare name: string
22
+ *
23
+ * @flags.boolean({ description: 'Create admin user' })
24
+ * declare admin: boolean
25
+ *
26
+ * async run() {
27
+ * this.logger.info(`Creating user: ${this.name}`)
28
+ * }
29
+ * }
30
+ */
1
31
  export { Kernel } from './kernel.ts';
2
32
  export { BaseCommand, ListCommand } from './commands.ts';
3
33
  export { args, flags, errors, Parser, FsLoader, ListLoader, cliHelpers, HelpCommand, IndexGenerator, tracingChannels, } from '@adonisjs/ace';
@@ -1,11 +1,2 @@
1
- /*
2
- * @adonisjs/core
3
- *
4
- * (c) AdonisJS
5
- *
6
- * For the full copyright and license information, please view the LICENSE
7
- * file that was distributed with this source code.
8
- */
9
- export { Kernel } from "./kernel.js";
10
- export { BaseCommand, ListCommand } from "./commands.js";
11
- export { args, flags, errors, Parser, FsLoader, ListLoader, cliHelpers, HelpCommand, IndexGenerator, tracingChannels, } from '@adonisjs/ace';
1
+ import { a as Parser, c as errors, d as Kernel, f as BaseCommand, i as ListLoader, l as flags, n as HelpCommand, o as args, p as ListCommand, r as IndexGenerator, s as cliHelpers, t as FsLoader, u as tracingChannels } from "../../main-Cn_x9YY5.js";
2
+ export { BaseCommand, FsLoader, HelpCommand, IndexGenerator, Kernel, ListCommand, ListLoader, Parser, args, cliHelpers, errors, flags, tracingChannels };