@adonisjs/core 7.0.0-next.9 → 7.0.1

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 (210) hide show
  1. package/README.md +62 -1
  2. package/build/chunk-iKc69rpz.js +26 -0
  3. package/build/commands/add.d.ts +4 -3
  4. package/build/commands/add.js +73 -110
  5. package/build/commands/build.js +51 -107
  6. package/build/commands/commands.json +1 -1
  7. package/build/commands/configure.js +81 -177
  8. package/build/commands/eject.js +17 -60
  9. package/build/commands/env/add.js +55 -134
  10. package/build/commands/generate_key.js +22 -66
  11. package/build/commands/inspect_rcfile.js +27 -55
  12. package/build/commands/list/routes.js +246 -116
  13. package/build/commands/make/command.d.ts +5 -0
  14. package/build/commands/make/command.js +16 -57
  15. package/build/commands/make/controller.d.ts +5 -0
  16. package/build/commands/make/controller.js +44 -120
  17. package/build/commands/make/event.d.ts +5 -0
  18. package/build/commands/make/event.js +17 -62
  19. package/build/commands/make/exception.d.ts +5 -0
  20. package/build/commands/make/exception.js +17 -62
  21. package/build/commands/make/listener.d.ts +5 -0
  22. package/build/commands/make/listener.js +37 -93
  23. package/build/commands/make/middleware.d.ts +5 -0
  24. package/build/commands/make/middleware.js +42 -101
  25. package/build/commands/make/preload.d.ts +5 -0
  26. package/build/commands/make/preload.js +48 -113
  27. package/build/commands/make/provider.d.ts +5 -0
  28. package/build/commands/make/provider.js +48 -112
  29. package/build/commands/make/service.d.ts +5 -0
  30. package/build/commands/make/service.js +17 -55
  31. package/build/commands/make/test.d.ts +5 -0
  32. package/build/commands/make/test.js +48 -132
  33. package/build/commands/make/transformer.d.ts +5 -0
  34. package/build/commands/make/transformer.js +18 -64
  35. package/build/commands/make/validator.d.ts +5 -0
  36. package/build/commands/make/validator.js +21 -80
  37. package/build/commands/make/view.d.ts +5 -0
  38. package/build/commands/make/view.js +16 -56
  39. package/build/commands/repl.js +17 -50
  40. package/build/commands/serve.js +80 -150
  41. package/build/commands/test.js +92 -202
  42. package/build/config_provider-FIAUgvae.js +13 -0
  43. package/build/core-IpCOCkUL.js +146 -0
  44. package/build/create_kernel-B7ILNhuP.js +38 -0
  45. package/build/create_kernel-BD0Iqi8e.js +3 -0
  46. package/build/debug-CGQmxzGt.js +3 -0
  47. package/build/decorate-DmrZA614.js +7 -0
  48. package/build/define_config-0oHaj43l.js +86 -0
  49. package/build/dumper-BBgqFX5a.js +147 -0
  50. package/build/errors-CrCO-k44.js +8 -0
  51. package/build/factories/app.js +2 -9
  52. package/build/factories/bodyparser.js +2 -9
  53. package/build/factories/core/ace.js +22 -45
  54. package/build/factories/core/ignitor.js +74 -180
  55. package/build/factories/core/main.js +18 -11
  56. package/build/factories/core/test_utils.js +19 -42
  57. package/build/factories/encryption.d.ts +1 -1
  58. package/build/factories/encryption.js +2 -9
  59. package/build/factories/events.js +2 -9
  60. package/build/factories/hash.js +2 -9
  61. package/build/factories/http.js +2 -9
  62. package/build/factories/logger.js +2 -9
  63. package/build/factories/stubs.d.ts +1 -6
  64. package/build/factories/stubs.js +24 -91
  65. package/build/index.d.ts +1 -1
  66. package/build/index.js +10 -46
  67. package/build/main--nXd7T-C.js +73 -0
  68. package/build/main-Cxz0TyIw.js +173 -0
  69. package/build/main-DN2qEEg5.js +41 -0
  70. package/build/main-DkNgvceD.js +52 -0
  71. package/build/main-MBAMnmJb.js +81 -0
  72. package/build/main-kn40V-hF.js +2 -0
  73. package/build/{stubs/make → make}/health/controller.stub +5 -2
  74. package/build/modules/ace/codemods.d.ts +75 -23
  75. package/build/modules/ace/codemods.js +291 -476
  76. package/build/modules/ace/main.js +2 -41
  77. package/build/modules/app.js +6 -26
  78. package/build/modules/bodyparser/bodyparser_middleware.js +3 -14
  79. package/build/modules/bodyparser/main.js +6 -9
  80. package/build/modules/config.js +6 -26
  81. package/build/modules/container.js +6 -9
  82. package/build/modules/dumper/main.js +6 -32
  83. package/build/modules/dumper/plugins/edge.js +46 -61
  84. package/build/modules/encryption/define_config.d.ts +161 -0
  85. package/build/modules/encryption/drivers/aes_256_cbc.d.ts +20 -0
  86. package/build/modules/encryption/drivers/aes_256_cbc.js +2 -0
  87. package/build/modules/encryption/drivers/aes_256_gcm.d.ts +21 -0
  88. package/build/modules/encryption/drivers/aes_256_gcm.js +2 -0
  89. package/build/modules/encryption/drivers/aes_siv.d.ts +19 -0
  90. package/build/modules/encryption/drivers/aes_siv.js +2 -0
  91. package/build/modules/encryption/drivers/chacha20_poly1305.d.ts +21 -0
  92. package/build/modules/encryption/drivers/chacha20_poly1305.js +2 -0
  93. package/build/modules/encryption/drivers/legacy.d.ts +84 -0
  94. package/build/modules/encryption/drivers/legacy.js +57 -0
  95. package/build/modules/encryption/errors.d.ts +16 -0
  96. package/build/modules/encryption/main.d.ts +89 -0
  97. package/build/modules/encryption/main.js +6 -0
  98. package/build/modules/env/editor.js +2 -9
  99. package/build/modules/env/main.js +2 -28
  100. package/build/modules/events.js +6 -9
  101. package/build/modules/hash/drivers/argon.js +2 -9
  102. package/build/modules/hash/drivers/bcrypt.js +2 -20
  103. package/build/modules/hash/drivers/scrypt.js +2 -9
  104. package/build/modules/hash/main.js +6 -28
  105. package/build/modules/hash/phc_formatter.js +2 -9
  106. package/build/modules/health.js +2 -9
  107. package/build/modules/http/helpers.d.ts +1 -0
  108. package/build/modules/http/helpers.js +2 -0
  109. package/build/modules/http/main.js +4 -15
  110. package/build/modules/http/request_validator.d.ts +3 -4
  111. package/build/modules/http/url_builder_client.js +2 -9
  112. package/build/modules/logger.d.ts +30 -0
  113. package/build/modules/logger.js +14 -9
  114. package/build/modules/repl.js +6 -9
  115. package/build/modules/transformers/main.js +2 -9
  116. package/build/providers/app_provider.d.ts +5 -13
  117. package/build/providers/app_provider.js +153 -359
  118. package/build/providers/edge_provider.js +98 -164
  119. package/build/providers/hash_provider.js +29 -91
  120. package/build/providers/repl_provider.js +66 -152
  121. package/build/providers/vinejs_provider.d.ts +1 -1
  122. package/build/providers/vinejs_provider.js +21 -65
  123. package/build/services/ace.js +1 -16
  124. package/build/services/app.js +3 -19
  125. package/build/services/config.js +1 -12
  126. package/build/services/dumper.js +4 -20
  127. package/build/services/emitter.js +1 -13
  128. package/build/services/encryption.js +1 -13
  129. package/build/services/hash.js +1 -13
  130. package/build/services/logger.js +1 -13
  131. package/build/services/repl.js +1 -13
  132. package/build/services/router.js +1 -13
  133. package/build/services/server.js +1 -13
  134. package/build/services/test_utils.js +1 -16
  135. package/build/services/url_builder.d.ts +3 -3
  136. package/build/services/url_builder.js +4 -16
  137. package/build/src/assembler_hooks/index_entities.d.ts +34 -1
  138. package/build/src/debug.d.ts +1 -1
  139. package/build/src/exceptions.js +2 -49
  140. package/build/src/helpers/assert.js +2 -55
  141. package/build/src/helpers/http.js +2 -28
  142. package/build/src/helpers/is.js +3 -31
  143. package/build/src/helpers/main.js +5 -52
  144. package/build/src/helpers/string.js +26 -76
  145. package/build/src/helpers/types.js +25 -134
  146. package/build/src/helpers/verification_token.js +46 -120
  147. package/build/src/test_utils/main.js +8 -77
  148. package/build/src/types.d.ts +53 -99
  149. package/build/src/types.js +0 -8
  150. package/build/src/utils.d.ts +1 -1
  151. package/build/src/vine.js +29 -101
  152. package/build/toolkit/main.js +19 -21
  153. package/build/types/ace.js +2 -9
  154. package/build/types/app.js +2 -9
  155. package/build/types/bodyparser.js +2 -9
  156. package/build/types/common.js +2 -9
  157. package/build/types/container.js +2 -9
  158. package/build/types/encryption.d.ts +53 -1
  159. package/build/types/encryption.js +1 -9
  160. package/build/types/events.js +2 -9
  161. package/build/types/hash.js +2 -9
  162. package/build/types/health.js +2 -9
  163. package/build/types/helpers.js +0 -8
  164. package/build/types/http.js +2 -9
  165. package/build/types/logger.js +2 -9
  166. package/build/types/repl.js +2 -9
  167. package/build/types/transformers.js +2 -9
  168. package/build/utils-rRkbAPnP.js +42 -0
  169. package/package.json +117 -62
  170. package/build/modules/ace/commands.js +0 -157
  171. package/build/modules/ace/create_kernel.js +0 -91
  172. package/build/modules/ace/kernel.js +0 -40
  173. package/build/modules/dumper/define_config.js +0 -36
  174. package/build/modules/dumper/dumper.js +0 -266
  175. package/build/modules/dumper/errors.js +0 -119
  176. package/build/modules/encryption.d.ts +0 -18
  177. package/build/modules/encryption.js +0 -26
  178. package/build/modules/hash/define_config.js +0 -125
  179. package/build/modules/http/request_validator.js +0 -100
  180. package/build/src/assembler_hooks/index_entities.js +0 -112
  181. package/build/src/cli_formatters/routes_list.js +0 -397
  182. package/build/src/config_provider.js +0 -71
  183. package/build/src/debug.js +0 -25
  184. package/build/src/ignitor/ace.js +0 -102
  185. package/build/src/ignitor/http.js +0 -159
  186. package/build/src/ignitor/main.js +0 -124
  187. package/build/src/ignitor/test.js +0 -66
  188. package/build/src/test_utils/http.js +0 -82
  189. package/build/src/utils.js +0 -114
  190. package/build/stubs/main.js +0 -9
  191. package/build/toolkit/commands/index_commands.js +0 -30
  192. /package/build/{stubs/make → make}/command/main.stub +0 -0
  193. /package/build/{stubs/make → make}/controller/actions.stub +0 -0
  194. /package/build/{stubs/make → make}/controller/api.stub +0 -0
  195. /package/build/{stubs/make → make}/controller/main.stub +0 -0
  196. /package/build/{stubs/make → make}/controller/resource.stub +0 -0
  197. /package/build/{stubs/make → make}/event/main.stub +0 -0
  198. /package/build/{stubs/make → make}/exception/main.stub +0 -0
  199. /package/build/{stubs/make → make}/health/main.stub +0 -0
  200. /package/build/{stubs/make → make}/listener/for_event.stub +0 -0
  201. /package/build/{stubs/make → make}/listener/main.stub +0 -0
  202. /package/build/{stubs/make → make}/middleware/main.stub +0 -0
  203. /package/build/{stubs/make → make}/preload/main.stub +0 -0
  204. /package/build/{stubs/make → make}/provider/main.stub +0 -0
  205. /package/build/{stubs/make → make}/service/main.stub +0 -0
  206. /package/build/{stubs/make → make}/test/main.stub +0 -0
  207. /package/build/{stubs/make → make}/transformer/main.stub +0 -0
  208. /package/build/{stubs/make → make}/validator/main.stub +0 -0
  209. /package/build/{stubs/make → make}/validator/resource.stub +0 -0
  210. /package/build/{stubs/make → make}/view/main.stub +0 -0
@@ -1,359 +1,153 @@
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 { dirname } from 'node:path';
10
- import { mkdir, writeFile } from 'node:fs/promises';
11
- import { Config } from "../modules/config.js";
12
- import { Logger } from "../modules/logger.js";
13
- import { Application } from "../modules/app.js";
14
- import { Dumper } from "../modules/dumper/dumper.js";
15
- import { HttpContext } from "../modules/http/main.js";
16
- import { Encryption } from "../modules/encryption.js";
17
- import { Router, Server } from "../modules/http/main.js";
18
- import { BaseEvent, Emitter } from "../modules/events.js";
19
- import { serialize } from "../modules/transformers/main.js";
20
- import BodyParserMiddleware from "../modules/bodyparser/bodyparser_middleware.js";
21
- /**
22
- * The Application Service provider registers all the baseline
23
- * features required to run the framework.
24
- *
25
- * This provider handles the registration of core services including:
26
- * - Application instance
27
- * - Logger and logger manager
28
- * - Configuration
29
- * - Event emitter
30
- * - Encryption service
31
- * - HTTP server and router
32
- * - Body parser middleware
33
- * - Dumper for debugging
34
- * - Test utilities and ACE kernel
35
- *
36
- * @example
37
- * const provider = new AppServiceProvider(app)
38
- * provider.register()
39
- * await provider.boot()
40
- * await provider.ready()
41
- */
42
- export default class AppServiceProvider {
43
- app;
44
- /**
45
- * Application service provider constructor
46
- *
47
- * @param app - The application service instance
48
- */
49
- constructor(app) {
50
- this.app = app;
51
- }
52
- /**
53
- * Registers test utils with the container
54
- *
55
- * Creates a singleton binding for 'testUtils' that lazily imports
56
- * and instantiates the TestUtils class when first accessed.
57
- *
58
- * @example
59
- * const testUtils = await app.container.make('testUtils')
60
- * testUtils.createHttpContext()
61
- */
62
- registerTestUtils() {
63
- this.app.container.singleton('testUtils', async () => {
64
- const { TestUtils } = await import('../src/test_utils/main.js');
65
- return new TestUtils(this.app);
66
- });
67
- }
68
- /**
69
- * Registers ace with the container
70
- *
71
- * Creates a singleton binding for 'ace' that lazily creates
72
- * the ACE kernel for command-line interface functionality.
73
- *
74
- * @example
75
- * const ace = await app.container.make('ace')
76
- * await ace.exec('make:controller', ['UserController'])
77
- */
78
- registerAce() {
79
- this.app.container.singleton('ace', async () => {
80
- const { createAceKernel } = await import('../modules/ace/create_kernel.js');
81
- return createAceKernel(this.app);
82
- });
83
- }
84
- /**
85
- * Registers the application to the container
86
- *
87
- * Binds the application instance as both a class binding and an alias.
88
- * This allows access to the app instance throughout the container.
89
- *
90
- * @example
91
- * const app = await container.make('app')
92
- * const appPath = app.makePath('tmp')
93
- */
94
- registerApp() {
95
- this.app.container.singleton(Application, () => this.app);
96
- this.app.container.alias('app', Application);
97
- }
98
- /**
99
- * Registers the logger class to resolve the default logger
100
- *
101
- * Creates a singleton binding for the Logger class that resolves
102
- * the default logger instance from the logger manager.
103
- *
104
- * @example
105
- * const logger = await container.make(Logger)
106
- * logger.info('Application started')
107
- */
108
- registerLogger() {
109
- this.app.container.singleton(Logger, async (resolver) => {
110
- const loggerManager = await resolver.make('logger');
111
- return loggerManager.use();
112
- });
113
- }
114
- /**
115
- * Registers the logger manager to the container
116
- *
117
- * Creates a singleton binding for 'logger' that instantiates
118
- * the LoggerManager with configuration from config/logger.ts
119
- *
120
- * @example
121
- * const loggerManager = await container.make('logger')
122
- * const fileLogger = loggerManager.use('file')
123
- */
124
- registerLoggerManager() {
125
- this.app.container.singleton('logger', async () => {
126
- const { LoggerManager } = await import('../modules/logger.js');
127
- const config = this.app.config.get('logger');
128
- return new LoggerManager(config);
129
- });
130
- }
131
- /**
132
- * Registers the config to the container
133
- *
134
- * Binds the application's config instance as both a class binding
135
- * and an alias, allowing access to configuration values.
136
- *
137
- * @example
138
- * const config = await container.make('config')
139
- * const appKey = config.get('app.appKey')
140
- */
141
- registerConfig() {
142
- this.app.container.singleton(Config, () => this.app.config);
143
- this.app.container.alias('config', Config);
144
- }
145
- /**
146
- * Registers emitter service to the container
147
- *
148
- * Creates a singleton binding for the event emitter that handles
149
- * application-wide event dispatching and listening.
150
- *
151
- * @example
152
- * const emitter = await container.make('emitter')
153
- * emitter.emit('user:created', { userId: 123 })
154
- */
155
- registerEmitter() {
156
- this.app.container.singleton(Emitter, async () => {
157
- return new Emitter(this.app);
158
- });
159
- this.app.container.alias('emitter', Emitter);
160
- }
161
- /**
162
- * Register the encryption service to the container
163
- *
164
- * Creates a singleton binding for the encryption service using
165
- * the app key from configuration for encryption/decryption operations.
166
- *
167
- * @example
168
- * const encryption = await container.make('encryption')
169
- * const encrypted = encryption.encrypt('sensitive data')
170
- */
171
- registerEncryption() {
172
- this.app.container.singleton(Encryption, () => {
173
- const appKey = this.app.config.get('app.appKey');
174
- return new Encryption({ secret: appKey });
175
- });
176
- this.app.container.alias('encryption', Encryption);
177
- }
178
- /**
179
- * Registers the HTTP server with the container as a singleton
180
- *
181
- * Creates a singleton binding for the HTTP server that handles
182
- * incoming requests, with dependencies on encryption, emitter,
183
- * logger, and HTTP configuration.
184
- *
185
- * @example
186
- * const server = await container.make('server')
187
- * server.start()
188
- */
189
- registerServer() {
190
- this.app.container.singleton(Server, async (resolver) => {
191
- const encryption = await resolver.make('encryption');
192
- const emitter = await resolver.make('emitter');
193
- const logger = await resolver.make('logger');
194
- const config = this.app.config.get('app.http');
195
- return new Server(this.app, encryption, emitter, logger, config);
196
- });
197
- this.app.container.alias('server', Server);
198
- }
199
- /**
200
- * Registers router with the container as a singleton
201
- *
202
- * Creates a singleton binding for the router by getting it from
203
- * the HTTP server instance. The router handles URL routing.
204
- *
205
- * @example
206
- * const router = await container.make('router')
207
- * router.get('/', ({ response }) => response.send('Hello'))
208
- */
209
- registerRouter() {
210
- this.app.container.singleton(Router, async (resolver) => {
211
- const server = await resolver.make('server');
212
- return server.getRouter();
213
- });
214
- this.app.container.alias('router', Router);
215
- }
216
- /**
217
- * Self construct bodyparser middleware class, since it needs
218
- * config that cannot be resolved by the container
219
- *
220
- * Binds the BodyParserMiddleware with bodyparser configuration
221
- * and experimental flags for parsing request bodies.
222
- *
223
- * @example
224
- * const middleware = await container.make(BodyParserMiddleware)
225
- * await middleware.handle(ctx, next)
226
- */
227
- registerBodyParserMiddleware() {
228
- this.app.container.singleton(BodyParserMiddleware, () => {
229
- const config = this.app.config.get('bodyparser');
230
- return new BodyParserMiddleware(config, this.app.experimentalFlags);
231
- });
232
- }
233
- /**
234
- * Registeres singleton instance of the "Dumper" module configured
235
- * via the "config/app.ts" file.
236
- *
237
- * The dumper is used for debugging and variable inspection with
238
- * configurable HTML and console output formats.
239
- *
240
- * @example
241
- * const dumper = await container.make('dumper')
242
- * dumper.dump({ user: { name: 'John' } })
243
- */
244
- registerDumper() {
245
- this.app.container.singleton(Dumper, async () => {
246
- const config = this.app.config.get('app.dumper', {});
247
- const dumper = new Dumper(this.app);
248
- if (config.html) {
249
- dumper.configureHtmlOutput(config.html);
250
- }
251
- if (config.console) {
252
- dumper.configureAnsiOutput(config.console);
253
- }
254
- return dumper;
255
- });
256
- this.app.container.alias('dumper', Dumper);
257
- }
258
- /**
259
- * Generates TypeScript type definitions and JSON representation of routes
260
- *
261
- * Creates route type definitions for better IDE support and a JSON file
262
- * containing all registered routes. This is used in development mode for
263
- * tooling integration and type-safety.
264
- *
265
- * @param router - The router instance containing registered routes
266
- *
267
- * @example
268
- * const router = await container.make('router')
269
- * await this.emitRoutes(router)
270
- * // Generates .adonisjs/server/routes.d.ts and routes.json
271
- */
272
- async emitRoutes(router) {
273
- try {
274
- const { routes, imports, types } = router.generateTypes(2);
275
- const routesTypesPath = this.app.generatedServerPath('routes.d.ts');
276
- const routesJsonPath = this.app.generatedServerPath('routes.json');
277
- await mkdir(dirname(routesTypesPath), { recursive: true });
278
- await Promise.all([
279
- writeFile(routesTypesPath, [
280
- `import '@adonisjs/core/types/http'`,
281
- ...imports,
282
- '',
283
- ...types,
284
- '',
285
- 'export type ScannedRoutes = {',
286
- routes,
287
- '}',
288
- `declare module '@adonisjs/core/types/http' {`,
289
- ' export interface RoutesList extends ScannedRoutes {}',
290
- '}',
291
- ].join('\n')),
292
- writeFile(routesJsonPath, JSON.stringify(router.toJSON())),
293
- ]);
294
- this.app.notify({ isAdonisJS: true, routesFileLocation: routesJsonPath });
295
- }
296
- catch (error) {
297
- console.error("Unable to generate routes types file due to the following error. This won't impact the dev-server");
298
- console.error(error);
299
- }
300
- }
301
- /**
302
- * Registers bindings
303
- *
304
- * Called during the application bootstrap phase to register
305
- * all core service bindings with the IoC container.
306
- *
307
- * @example
308
- * const provider = new AppServiceProvider(app)
309
- * provider.register() // Registers all core services
310
- */
311
- register() {
312
- this.registerApp();
313
- this.registerAce();
314
- this.registerDumper();
315
- this.registerLoggerManager();
316
- this.registerLogger();
317
- this.registerConfig();
318
- this.registerEmitter();
319
- this.registerEncryption();
320
- this.registerTestUtils();
321
- this.registerServer();
322
- this.registerRouter();
323
- this.registerBodyParserMiddleware();
324
- }
325
- /**
326
- * Boot the service provider
327
- *
328
- * Called after all providers have been registered. Sets up
329
- * event emitter for BaseEvent and adds transform macro to HttpContext.
330
- *
331
- * @example
332
- * await provider.boot()
333
- * // Now HttpContext has transform method available
334
- */
335
- async boot() {
336
- BaseEvent.useEmitter(await this.app.container.make('emitter'));
337
- HttpContext.instanceProperty('serialize', function (value, container) {
338
- return serialize(value, container ?? this.containerResolver);
339
- });
340
- }
341
- /**
342
- * Called when the application is ready
343
- *
344
- * In non-production environments, generates route types and
345
- * JSON files for development tooling when router is committed.
346
- *
347
- * @example
348
- * await provider.ready()
349
- * // Route types and JSON generated in development
350
- */
351
- async ready() {
352
- if (!this.app.inProduction) {
353
- const router = await this.app.container.make('router');
354
- if (router.commited) {
355
- await this.emitRoutes(router);
356
- }
357
- }
358
- }
359
- }
1
+ import "../chunk-iKc69rpz.js";
2
+ import "../debug-CGQmxzGt.js";
3
+ import { t as app_exports } from "../modules/app.js";
4
+ import { t as configProvider } from "../config_provider-FIAUgvae.js";
5
+ import { t as config_exports } from "../modules/config.js";
6
+ import { t as events_exports } from "../modules/events.js";
7
+ import { t as logger_exports } from "../modules/logger.js";
8
+ import { t as Dumper } from "../dumper-BBgqFX5a.js";
9
+ import { RuntimeException } from "../src/exceptions.js";
10
+ import { t as main_exports } from "../main-DN2qEEg5.js";
11
+ import "../errors-CrCO-k44.js";
12
+ import "../define_config-0oHaj43l.js";
13
+ import { Encryption } from "../modules/encryption/main.js";
14
+ import bodyparser_middleware_default from "../modules/bodyparser/bodyparser_middleware.js";
15
+ import { dirname } from "node:path";
16
+ import { mkdir, writeFile } from "node:fs/promises";
17
+ var AppServiceProvider = class {
18
+ constructor(app) {
19
+ this.app = app;
20
+ }
21
+ registerTestUtils() {
22
+ this.app.container.singleton("testUtils", async () => {
23
+ const { TestUtils } = await import("../src/test_utils/main.js");
24
+ return new TestUtils(this.app);
25
+ });
26
+ }
27
+ registerAce() {
28
+ this.app.container.singleton("ace", async () => {
29
+ const { createAceKernel } = await import("../create_kernel-BD0Iqi8e.js");
30
+ return createAceKernel(this.app);
31
+ });
32
+ }
33
+ registerApp() {
34
+ this.app.container.singleton(app_exports.Application, () => this.app);
35
+ this.app.container.alias("app", app_exports.Application);
36
+ }
37
+ registerLogger() {
38
+ this.app.container.singleton(logger_exports.Logger, async (resolver) => {
39
+ return (await resolver.make("logger")).use();
40
+ });
41
+ }
42
+ registerLoggerManager() {
43
+ this.app.container.singleton("logger", async () => {
44
+ const { LoggerManager } = await import("../modules/logger.js");
45
+ return new LoggerManager(this.app.config.get("logger"));
46
+ });
47
+ }
48
+ registerConfig() {
49
+ this.app.container.singleton(config_exports.Config, () => this.app.config);
50
+ this.app.container.alias("config", config_exports.Config);
51
+ }
52
+ registerEmitter() {
53
+ this.app.container.singleton(events_exports.Emitter, async () => {
54
+ return new events_exports.Emitter(this.app);
55
+ });
56
+ this.app.container.alias("emitter", events_exports.Emitter);
57
+ }
58
+ registerEncryption() {
59
+ this.app.container.singleton("encryption", async () => {
60
+ const encryptionConfigProvider = this.app.config.get("encryption");
61
+ const config = await configProvider.resolve(this.app, encryptionConfigProvider);
62
+ if (!config) throw new RuntimeException("Invalid \"config/encryption.ts\" file. Make sure you are using the \"defineConfig\" method");
63
+ const { EncryptionManager } = await import("../modules/encryption/main.js");
64
+ return new EncryptionManager(config);
65
+ });
66
+ this.app.container.singleton(Encryption, async (resolver) => {
67
+ return (await resolver.make("encryption")).use();
68
+ });
69
+ }
70
+ registerServer() {
71
+ this.app.container.singleton(main_exports.Server, async (resolver) => {
72
+ const encryption = await resolver.make(Encryption);
73
+ const emitter = await resolver.make("emitter");
74
+ const logger = await resolver.make("logger");
75
+ const config = this.app.config.get("app.http");
76
+ return new main_exports.Server(this.app, encryption, emitter, logger, config);
77
+ });
78
+ this.app.container.alias("server", main_exports.Server);
79
+ }
80
+ registerRouter() {
81
+ this.app.container.singleton(main_exports.Router, async (resolver) => {
82
+ return (await resolver.make("server")).getRouter();
83
+ });
84
+ this.app.container.alias("router", main_exports.Router);
85
+ }
86
+ registerBodyParserMiddleware() {
87
+ this.app.container.singleton(bodyparser_middleware_default, () => {
88
+ return new bodyparser_middleware_default(this.app.config.get("bodyparser"), this.app.experimentalFlags);
89
+ });
90
+ }
91
+ registerDumper() {
92
+ this.app.container.singleton(Dumper, async () => {
93
+ const config = this.app.config.get("app.dumper", {});
94
+ const dumper = new Dumper(this.app);
95
+ if (config.html) dumper.configureHtmlOutput(config.html);
96
+ if (config.console) dumper.configureAnsiOutput(config.console);
97
+ return dumper;
98
+ });
99
+ this.app.container.alias("dumper", Dumper);
100
+ }
101
+ async emitRoutes(router) {
102
+ try {
103
+ const { routes, imports, types } = router.generateTypes(2);
104
+ const routesTypesPath = this.app.generatedServerPath("routes.d.ts");
105
+ const routesJsonPath = this.app.generatedServerPath("routes.json");
106
+ await mkdir(dirname(routesTypesPath), { recursive: true });
107
+ await Promise.all([writeFile(routesTypesPath, [
108
+ `import '@adonisjs/core/types/http'`,
109
+ ...imports,
110
+ "",
111
+ ...types,
112
+ "",
113
+ "export type ScannedRoutes = {",
114
+ routes,
115
+ "}",
116
+ `declare module '@adonisjs/core/types/http' {`,
117
+ " export interface RoutesList extends ScannedRoutes {}",
118
+ "}"
119
+ ].join("\n")), writeFile(routesJsonPath, JSON.stringify(router.toJSON()))]);
120
+ this.app.notify({
121
+ isAdonisJS: true,
122
+ routesFileLocation: routesJsonPath
123
+ });
124
+ } catch (error) {
125
+ console.error("Unable to generate routes types file due to the following error. This won't impact the dev-server");
126
+ console.error(error);
127
+ }
128
+ }
129
+ register() {
130
+ this.registerApp();
131
+ this.registerAce();
132
+ this.registerDumper();
133
+ this.registerLoggerManager();
134
+ this.registerLogger();
135
+ this.registerConfig();
136
+ this.registerEmitter();
137
+ this.registerEncryption();
138
+ this.registerTestUtils();
139
+ this.registerServer();
140
+ this.registerRouter();
141
+ this.registerBodyParserMiddleware();
142
+ }
143
+ async boot() {
144
+ events_exports.BaseEvent.useEmitter(await this.app.container.make("emitter"));
145
+ }
146
+ async ready() {
147
+ if (!this.app.inProduction) {
148
+ const router = await this.app.container.make("router");
149
+ if (router.commited) await this.emitRoutes(router);
150
+ }
151
+ }
152
+ };
153
+ export { AppServiceProvider as default };