@adonisjs/core 5.9.0 → 6.0.1-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 (280) hide show
  1. package/README.md +6 -15
  2. package/build/commands/commands.json +1 -0
  3. package/build/commands/eject.d.ts +8 -0
  4. package/build/commands/eject.js +34 -0
  5. package/build/commands/{GenerateKey.d.ts → generate_key.d.ts} +3 -4
  6. package/build/commands/generate_key.js +47 -0
  7. package/build/commands/main.js +36 -0
  8. package/build/commands/make/_base.d.ts +6 -0
  9. package/build/commands/make/_base.js +19 -0
  10. package/build/commands/make/command.d.ts +8 -0
  11. package/build/commands/make/command.js +25 -0
  12. package/build/commands/make/controller.d.ts +12 -0
  13. package/build/commands/make/controller.js +57 -0
  14. package/build/commands/make/event.d.ts +8 -0
  15. package/build/commands/make/event.js +25 -0
  16. package/build/commands/make/listener.d.ts +10 -0
  17. package/build/commands/make/listener.js +48 -0
  18. package/build/commands/make/middleware.d.ts +8 -0
  19. package/build/commands/make/middleware.js +25 -0
  20. package/build/commands/make/provider.d.ts +8 -0
  21. package/build/commands/make/provider.js +25 -0
  22. package/build/factories/app.d.ts +1 -0
  23. package/build/factories/app.js +1 -0
  24. package/build/factories/bodyparser.d.ts +1 -0
  25. package/build/factories/bodyparser.js +1 -0
  26. package/build/factories/core/ace.d.ts +8 -0
  27. package/build/factories/core/ace.js +19 -0
  28. package/build/factories/core/ignitor.d.ts +16 -0
  29. package/build/factories/core/ignitor.js +76 -0
  30. package/build/factories/core/main.d.ts +4 -0
  31. package/build/factories/core/main.js +4 -0
  32. package/build/factories/core/test_utils.d.ts +8 -0
  33. package/build/factories/core/test_utils.js +15 -0
  34. package/build/factories/encryption.d.ts +1 -0
  35. package/build/factories/encryption.js +1 -0
  36. package/build/factories/events.d.ts +1 -0
  37. package/build/factories/events.js +1 -0
  38. package/build/factories/hash.d.ts +1 -0
  39. package/build/factories/hash.js +1 -0
  40. package/build/factories/http.d.ts +1 -0
  41. package/build/factories/http.js +1 -0
  42. package/build/factories/logger.d.ts +1 -0
  43. package/build/factories/logger.js +1 -0
  44. package/build/factories/stubs.d.ts +15 -0
  45. package/build/factories/stubs.js +20 -0
  46. package/build/index.d.ts +140 -0
  47. package/build/index.js +21 -0
  48. package/build/legacy/validator.d.ts +1 -0
  49. package/build/legacy/validator.js +1 -0
  50. package/build/modules/ace/commands.d.ts +26 -0
  51. package/build/modules/ace/commands.js +63 -0
  52. package/build/modules/ace/create_kernel.d.ts +3 -0
  53. package/build/modules/ace/create_kernel.js +33 -0
  54. package/build/modules/ace/kernel.d.ts +7 -0
  55. package/build/modules/ace/kernel.js +14 -0
  56. package/build/modules/ace/main.d.ts +3 -0
  57. package/build/modules/ace/main.js +3 -0
  58. package/build/modules/app.d.ts +1 -0
  59. package/build/modules/app.js +1 -0
  60. package/build/modules/bodyparser/bodyparser_middleware.d.ts +2 -0
  61. package/build/modules/bodyparser/bodyparser_middleware.js +2 -0
  62. package/build/modules/bodyparser/main.d.ts +1 -0
  63. package/build/modules/bodyparser/main.js +1 -0
  64. package/build/modules/config.d.ts +1 -0
  65. package/build/modules/config.js +1 -0
  66. package/build/modules/container.d.ts +1 -0
  67. package/build/modules/container.js +1 -0
  68. package/build/modules/encryption.d.ts +1 -0
  69. package/build/modules/encryption.js +1 -0
  70. package/build/modules/env.d.ts +1 -0
  71. package/build/modules/env.js +1 -0
  72. package/build/modules/events.d.ts +1 -0
  73. package/build/modules/events.js +1 -0
  74. package/build/modules/hash/define_config.d.ts +15 -0
  75. package/build/modules/hash/define_config.js +19 -0
  76. package/build/modules/hash/drivers_collection.d.ts +9 -0
  77. package/build/modules/hash/drivers_collection.js +22 -0
  78. package/build/modules/hash/main.d.ts +2 -0
  79. package/build/modules/hash/main.js +2 -0
  80. package/build/modules/http.d.ts +1 -0
  81. package/build/modules/http.js +1 -0
  82. package/build/modules/logger.d.ts +1 -0
  83. package/build/modules/logger.js +1 -0
  84. package/build/providers/app_provider.d.ts +16 -0
  85. package/build/providers/app_provider.js +74 -0
  86. package/build/providers/hash_provider.d.ts +9 -0
  87. package/build/providers/hash_provider.js +29 -0
  88. package/build/providers/http_provider.d.ts +9 -0
  89. package/build/providers/http_provider.js +36 -0
  90. package/build/services/ace.d.ts +3 -0
  91. package/build/services/ace.js +6 -0
  92. package/build/services/app.d.ts +4 -12
  93. package/build/services/app.js +5 -12
  94. package/build/services/config.d.ts +3 -3
  95. package/build/services/config.js +6 -12
  96. package/build/services/emitter.d.ts +3 -0
  97. package/build/services/emitter.js +7 -0
  98. package/build/services/encryption.d.ts +3 -3
  99. package/build/services/encryption.js +7 -12
  100. package/build/services/hash.d.ts +3 -3
  101. package/build/services/hash.js +7 -12
  102. package/build/services/logger.d.ts +3 -0
  103. package/build/services/logger.js +7 -0
  104. package/build/services/router.d.ts +3 -0
  105. package/build/services/router.js +7 -0
  106. package/build/services/server.d.ts +3 -0
  107. package/build/services/server.js +7 -0
  108. package/build/services/test_utils.d.ts +3 -0
  109. package/build/services/test_utils.js +6 -0
  110. package/build/src/debug.d.ts +3 -0
  111. package/build/src/debug.js +2 -0
  112. package/build/src/helpers/is.d.ts +2 -0
  113. package/build/src/helpers/is.js +2 -0
  114. package/build/src/helpers/main.d.ts +2 -0
  115. package/build/src/helpers/main.js +2 -0
  116. package/build/src/helpers/string.d.ts +17 -0
  117. package/build/src/helpers/string.js +26 -0
  118. package/build/src/helpers/string_builder.d.ts +23 -0
  119. package/build/src/helpers/string_builder.js +86 -0
  120. package/build/src/helpers/types.d.ts +24 -0
  121. package/build/src/helpers/types.js +29 -0
  122. package/build/src/ignitor/ace.d.ts +8 -0
  123. package/build/src/ignitor/ace.js +31 -0
  124. package/build/src/ignitor/http.d.ts +10 -0
  125. package/build/src/ignitor/http.js +62 -0
  126. package/build/src/ignitor/main.d.ts +17 -0
  127. package/build/src/ignitor/main.js +45 -0
  128. package/build/src/ignitor/test.d.ts +8 -0
  129. package/build/src/ignitor/test.js +18 -0
  130. package/build/src/test_utils/http.d.ts +10 -0
  131. package/build/src/test_utils/http.js +42 -0
  132. package/build/src/test_utils/main.d.ts +19 -0
  133. package/build/src/test_utils/main.js +33 -0
  134. package/build/src/types.d.ts +63 -0
  135. package/build/src/types.js +1 -0
  136. package/build/stubs/index.d.ts +1 -0
  137. package/build/stubs/index.js +2 -0
  138. package/build/stubs/make/command/main.stub +19 -0
  139. package/build/stubs/make/controller/api.stub +33 -0
  140. package/build/stubs/make/controller/main.stub +9 -0
  141. package/build/stubs/make/controller/resource.stub +43 -0
  142. package/build/stubs/make/event/main.stub +15 -0
  143. package/build/stubs/make/listener/for_event.stub +13 -0
  144. package/build/stubs/make/listener/main.stub +7 -0
  145. package/build/stubs/make/middleware/main.stub +22 -0
  146. package/build/stubs/make/provider/main.stub +35 -0
  147. package/build/types/ace.d.ts +5 -0
  148. package/build/types/ace.js +1 -0
  149. package/build/types/app.d.ts +1 -0
  150. package/build/types/app.js +1 -0
  151. package/build/types/bodyparser.d.ts +1 -0
  152. package/build/types/bodyparser.js +1 -0
  153. package/build/types/container.d.ts +1 -0
  154. package/build/types/container.js +1 -0
  155. package/build/types/encryption.d.ts +1 -0
  156. package/build/types/encryption.js +1 -0
  157. package/build/types/events.d.ts +1 -0
  158. package/build/types/events.js +1 -0
  159. package/build/types/hash.d.ts +1 -0
  160. package/build/types/hash.js +1 -0
  161. package/build/types/http.d.ts +1 -0
  162. package/build/types/http.js +1 -0
  163. package/build/types/logger.d.ts +1 -0
  164. package/build/types/logger.js +1 -0
  165. package/package.json +235 -245
  166. package/build/adonis-typings/ace.d.ts +0 -5
  167. package/build/adonis-typings/ace.js +0 -8
  168. package/build/adonis-typings/assets-manager.d.ts +0 -92
  169. package/build/adonis-typings/assets-manager.js +0 -8
  170. package/build/adonis-typings/container.d.ts +0 -14
  171. package/build/adonis-typings/container.js +0 -8
  172. package/build/adonis-typings/cors.d.ts +0 -15
  173. package/build/adonis-typings/cors.js +0 -8
  174. package/build/adonis-typings/exception-handler.d.ts +0 -31
  175. package/build/adonis-typings/exception-handler.js +0 -8
  176. package/build/adonis-typings/health-check.d.ts +0 -40
  177. package/build/adonis-typings/health-check.js +0 -8
  178. package/build/adonis-typings/index.d.ts +0 -17
  179. package/build/adonis-typings/index.js +0 -25
  180. package/build/adonis-typings/static.d.ts +0 -15
  181. package/build/adonis-typings/static.js +0 -8
  182. package/build/adonis-typings/test-utils.d.ts +0 -24
  183. package/build/adonis-typings/test-utils.js +0 -8
  184. package/build/adonis-typings/tests.d.ts +0 -13
  185. package/build/adonis-typings/tests.js +0 -11
  186. package/build/commands/DumpRc.d.ts +0 -13
  187. package/build/commands/DumpRc.js +0 -33
  188. package/build/commands/GenerateKey.js +0 -25
  189. package/build/commands/ListRoutes/Renderers/Base.d.ts +0 -31
  190. package/build/commands/ListRoutes/Renderers/Base.js +0 -70
  191. package/build/commands/ListRoutes/Renderers/PrettyRenderer.d.ts +0 -51
  192. package/build/commands/ListRoutes/Renderers/PrettyRenderer.js +0 -135
  193. package/build/commands/ListRoutes/Renderers/TableRenderer.d.ts +0 -36
  194. package/build/commands/ListRoutes/Renderers/TableRenderer.js +0 -137
  195. package/build/commands/ListRoutes/index.d.ts +0 -75
  196. package/build/commands/ListRoutes/index.js +0 -166
  197. package/build/commands/index.d.ts +0 -2
  198. package/build/commands/index.js +0 -15
  199. package/build/config.d.ts +0 -2
  200. package/build/config.js +0 -15
  201. package/build/instructions.js +0 -81
  202. package/build/providers/AppProvider.d.ts +0 -68
  203. package/build/providers/AppProvider.js +0 -201
  204. package/build/services/base.d.ts +0 -3
  205. package/build/services/base.js +0 -23
  206. package/build/services/bodyparser.d.ts +0 -2
  207. package/build/services/bodyparser.js +0 -12
  208. package/build/services/drive.d.ts +0 -3
  209. package/build/services/drive.js +0 -12
  210. package/build/services/event.d.ts +0 -3
  211. package/build/services/event.js +0 -12
  212. package/build/services/healthChecks.d.ts +0 -3
  213. package/build/services/healthChecks.js +0 -12
  214. package/build/services/httpContext.d.ts +0 -3
  215. package/build/services/httpContext.js +0 -12
  216. package/build/services/route.d.ts +0 -3
  217. package/build/services/route.js +0 -12
  218. package/build/services/validator.d.ts +0 -3
  219. package/build/services/validator.js +0 -12
  220. package/build/src/AssetsManager/Drivers/Base.d.ts +0 -27
  221. package/build/src/AssetsManager/Drivers/Base.js +0 -66
  222. package/build/src/AssetsManager/Drivers/Encore.d.ts +0 -58
  223. package/build/src/AssetsManager/Drivers/Encore.js +0 -93
  224. package/build/src/AssetsManager/Drivers/Fake.d.ts +0 -38
  225. package/build/src/AssetsManager/Drivers/Fake.js +0 -61
  226. package/build/src/AssetsManager/Drivers/Vite.d.ts +0 -84
  227. package/build/src/AssetsManager/Drivers/Vite.js +0 -139
  228. package/build/src/AssetsManager/index.d.ts +0 -87
  229. package/build/src/AssetsManager/index.js +0 -184
  230. package/build/src/Bindings/Repl.d.ts +0 -8
  231. package/build/src/Bindings/Repl.js +0 -90
  232. package/build/src/Bindings/Tests.d.ts +0 -7
  233. package/build/src/Bindings/Tests.js +0 -66
  234. package/build/src/HealthCheck/Checkers/AppKey.d.ts +0 -6
  235. package/build/src/HealthCheck/Checkers/AppKey.js +0 -60
  236. package/build/src/HealthCheck/Checkers/Env.d.ts +0 -6
  237. package/build/src/HealthCheck/Checkers/Env.js +0 -42
  238. package/build/src/HealthCheck/index.d.ts +0 -48
  239. package/build/src/HealthCheck/index.js +0 -99
  240. package/build/src/Hooks/Cors/index.d.ts +0 -70
  241. package/build/src/Hooks/Cors/index.js +0 -314
  242. package/build/src/Hooks/Static/index.d.ts +0 -18
  243. package/build/src/Hooks/Static/index.js +0 -66
  244. package/build/src/HttpExceptionHandler/index.d.ts +0 -82
  245. package/build/src/HttpExceptionHandler/index.js +0 -213
  246. package/build/src/Ignitor/Ace/App/index.d.ts +0 -60
  247. package/build/src/Ignitor/Ace/App/index.js +0 -236
  248. package/build/src/Ignitor/Ace/Exceptions/index.d.ts +0 -4
  249. package/build/src/Ignitor/Ace/Exceptions/index.js +0 -19
  250. package/build/src/Ignitor/Ace/GenerateManifest/index.d.ts +0 -28
  251. package/build/src/Ignitor/Ace/GenerateManifest/index.js +0 -75
  252. package/build/src/Ignitor/Ace/index.d.ts +0 -11
  253. package/build/src/Ignitor/Ace/index.js +0 -36
  254. package/build/src/Ignitor/HttpServer/index.d.ts +0 -56
  255. package/build/src/Ignitor/HttpServer/index.js +0 -127
  256. package/build/src/Ignitor/Kernel/index.d.ts +0 -56
  257. package/build/src/Ignitor/Kernel/index.js +0 -123
  258. package/build/src/Ignitor/SignalsListener/index.d.ts +0 -23
  259. package/build/src/Ignitor/SignalsListener/index.js +0 -66
  260. package/build/src/Ignitor/index.d.ts +0 -32
  261. package/build/src/Ignitor/index.js +0 -58
  262. package/build/src/TestUtils/HttpServer/index.d.ts +0 -27
  263. package/build/src/TestUtils/HttpServer/index.js +0 -56
  264. package/build/src/TestUtils/index.d.ts +0 -24
  265. package/build/src/TestUtils/index.js +0 -43
  266. package/build/src/utils/index.d.ts +0 -18
  267. package/build/src/utils/index.js +0 -82
  268. package/build/standalone.d.ts +0 -9
  269. package/build/standalone.js +0 -52
  270. package/build/templates/config/app.txt +0 -303
  271. package/build/templates/config/bodyparser.txt +0 -211
  272. package/build/templates/config/cors.txt +0 -134
  273. package/build/templates/config/drive.txt +0 -149
  274. package/build/templates/config/hash.txt +0 -96
  275. package/build/templates/config/static.txt +0 -89
  276. package/build/templates/contracts/drive.txt +0 -13
  277. package/build/templates/contracts/env.txt +0 -24
  278. package/build/templates/contracts/events.txt +0 -31
  279. package/build/templates/contracts/hash.txt +0 -13
  280. package/build/templates/env.txt +0 -31
@@ -0,0 +1,10 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ /// <reference types="node" resolution-mode="require"/>
3
+ import type { Server as NodeHttpsServer } from 'node:https';
4
+ import { IncomingMessage, ServerResponse, Server as NodeHttpServer } from 'node:http';
5
+ import { Ignitor } from './main.js';
6
+ export declare class HttpServerProcess {
7
+ #private;
8
+ constructor(ignitor: Ignitor);
9
+ start(serverCallback?: (handler: (req: IncomingMessage, res: ServerResponse) => any) => NodeHttpsServer | NodeHttpServer): Promise<void>;
10
+ }
@@ -0,0 +1,62 @@
1
+ import { createServer } from 'node:http';
2
+ import debug from '../debug.js';
3
+ export class HttpServerProcess {
4
+ #ignitor;
5
+ constructor(ignitor) {
6
+ this.#ignitor = ignitor;
7
+ }
8
+ #close(nodeHttpServer) {
9
+ return new Promise((resolve) => {
10
+ debug('closing http server process');
11
+ nodeHttpServer.close(() => resolve());
12
+ });
13
+ }
14
+ #monitorAppAndServer(nodeHttpServer, app, logger) {
15
+ app.terminating(async () => {
16
+ debug('terminating signal received');
17
+ await this.#close(nodeHttpServer);
18
+ });
19
+ nodeHttpServer.once('error', (error) => {
20
+ debug('http server crashed with error "%O"', error);
21
+ logger.fatal({ err: error }, error.message);
22
+ process.exitCode = 1;
23
+ app.terminate();
24
+ });
25
+ }
26
+ #listen(nodeHttpServer) {
27
+ return new Promise((resolve, reject) => {
28
+ const host = process.env.HOST || '0.0.0.0';
29
+ const port = Number(process.env.PORT || '3333');
30
+ nodeHttpServer.listen(port, host);
31
+ nodeHttpServer.once('listening', () => {
32
+ debug('listening to http server, host :%s, port: %s', host, port);
33
+ resolve({ port, host });
34
+ });
35
+ nodeHttpServer.once('error', (error) => {
36
+ reject(error);
37
+ });
38
+ });
39
+ }
40
+ #notifyServerHasStarted(app, logger, emitter, payload) {
41
+ app.notify({ isAdonisJS: true, environment: 'web', ...payload });
42
+ logger.info('started HTTP server on %s:%s', payload.host, payload.port);
43
+ emitter.emit('http:server_ready', payload);
44
+ }
45
+ async start(serverCallback) {
46
+ const createHTTPServer = serverCallback || createServer;
47
+ const app = this.#ignitor.createApp('web');
48
+ await app.init();
49
+ await app.boot();
50
+ await app.start(async () => {
51
+ const server = await app.container.make('server');
52
+ await server.boot();
53
+ const httpServer = createHTTPServer(server.handle.bind(server));
54
+ server.setNodeServer(httpServer);
55
+ const logger = await app.container.make('logger');
56
+ const emitter = await app.container.make('emitter');
57
+ const payload = await this.#listen(httpServer);
58
+ this.#notifyServerHasStarted(app, logger, emitter, payload);
59
+ this.#monitorAppAndServer(httpServer, app, logger);
60
+ });
61
+ }
62
+ }
@@ -0,0 +1,17 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ import { AceProcess } from './ace.js';
3
+ import { TestRunnerProcess } from './test.js';
4
+ import { HttpServerProcess } from './http.js';
5
+ import type { AppEnvironments } from '../../types/app.js';
6
+ import type { ApplicationService, IgnitorOptions } from '../types.js';
7
+ export declare class Ignitor {
8
+ #private;
9
+ constructor(appRoot: URL, options: IgnitorOptions);
10
+ getApp(): ApplicationService | undefined;
11
+ createApp(environment: AppEnvironments): ApplicationService;
12
+ tap(callback: (app: ApplicationService) => void): this;
13
+ httpServer(): HttpServerProcess;
14
+ ace(): AceProcess;
15
+ testRunner(): TestRunnerProcess;
16
+ terminate(): Promise<void>;
17
+ }
@@ -0,0 +1,45 @@
1
+ import debug from '../debug.js';
2
+ import { AceProcess } from './ace.js';
3
+ import { TestRunnerProcess } from './test.js';
4
+ import { HttpServerProcess } from './http.js';
5
+ import { setApp } from '../../services/app.js';
6
+ import { Application } from '../../modules/app.js';
7
+ export class Ignitor {
8
+ #options;
9
+ #appRoot;
10
+ #app;
11
+ #tapCallbacks = new Set();
12
+ constructor(appRoot, options) {
13
+ this.#appRoot = appRoot;
14
+ this.#options = options;
15
+ }
16
+ #runTapCallbacks(app) {
17
+ this.#tapCallbacks.forEach((tapCallback) => tapCallback(app));
18
+ }
19
+ getApp() {
20
+ return this.#app;
21
+ }
22
+ createApp(environment) {
23
+ debug('creating application instance');
24
+ this.#app = new Application(this.#appRoot, { environment, importer: this.#options.importer });
25
+ setApp(this.#app);
26
+ this.#runTapCallbacks(this.#app);
27
+ return this.#app;
28
+ }
29
+ tap(callback) {
30
+ this.#tapCallbacks.add(callback);
31
+ return this;
32
+ }
33
+ httpServer() {
34
+ return new HttpServerProcess(this);
35
+ }
36
+ ace() {
37
+ return new AceProcess(this);
38
+ }
39
+ testRunner() {
40
+ return new TestRunnerProcess(this);
41
+ }
42
+ async terminate() {
43
+ await this.#app?.terminate();
44
+ }
45
+ }
@@ -0,0 +1,8 @@
1
+ import { Ignitor } from './main.js';
2
+ import type { ApplicationService } from '../types.js';
3
+ export declare class TestRunnerProcess {
4
+ #private;
5
+ constructor(ignitor: Ignitor);
6
+ configure(callback: (app: ApplicationService) => Promise<void> | void): this;
7
+ run(callback: (app: ApplicationService) => Promise<void> | void): Promise<void>;
8
+ }
@@ -0,0 +1,18 @@
1
+ export class TestRunnerProcess {
2
+ #ignitor;
3
+ #configureCallback = () => { };
4
+ constructor(ignitor) {
5
+ this.#ignitor = ignitor;
6
+ }
7
+ configure(callback) {
8
+ this.#configureCallback = callback;
9
+ return this;
10
+ }
11
+ async run(callback) {
12
+ const app = this.#ignitor.createApp('test');
13
+ await app.init();
14
+ await app.boot();
15
+ await app.start(this.#configureCallback);
16
+ await callback(app);
17
+ }
18
+ }
@@ -0,0 +1,10 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ /// <reference types="node" resolution-mode="require"/>
3
+ import type { TestUtils } from './main.js';
4
+ import type { Server as NodeHttpsServer } from 'node:https';
5
+ import { IncomingMessage, ServerResponse, Server as NodeHttpServer } from 'node:http';
6
+ export declare class HttpServerUtils {
7
+ #private;
8
+ constructor(utils: TestUtils);
9
+ start(serverCallback?: (handler: (req: IncomingMessage, res: ServerResponse) => any) => NodeHttpsServer | NodeHttpServer): Promise<() => Promise<void>>;
10
+ }
@@ -0,0 +1,42 @@
1
+ import debug from '../debug.js';
2
+ import { createServer } from 'node:http';
3
+ export class HttpServerUtils {
4
+ #utils;
5
+ constructor(utils) {
6
+ this.#utils = utils;
7
+ }
8
+ #listen(nodeHttpServer) {
9
+ return new Promise((resolve, reject) => {
10
+ const host = process.env.HOST || '0.0.0.0';
11
+ const port = Number(process.env.PORT || '3333');
12
+ nodeHttpServer.listen(port, host);
13
+ nodeHttpServer.once('listening', () => {
14
+ debug('listening to utils http server, host :%s, port: %s', host, port);
15
+ resolve({ port, host });
16
+ });
17
+ nodeHttpServer.once('error', (error) => {
18
+ reject(error);
19
+ });
20
+ });
21
+ }
22
+ async start(serverCallback) {
23
+ const createHTTPServer = serverCallback || createServer;
24
+ const server = await this.#utils.app.container.make('server');
25
+ await server.boot();
26
+ const httpServer = createHTTPServer(server.handle.bind(server));
27
+ server.setNodeServer(httpServer);
28
+ await this.#listen(httpServer);
29
+ return () => {
30
+ return new Promise((resolve, reject) => {
31
+ httpServer.close((error) => {
32
+ if (error) {
33
+ reject(error);
34
+ }
35
+ else {
36
+ resolve();
37
+ }
38
+ });
39
+ });
40
+ };
41
+ }
42
+ }
@@ -0,0 +1,19 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ import Macroable from '@poppinss/macroable';
3
+ import { IncomingMessage, ServerResponse } from 'node:http';
4
+ import { HttpServerUtils } from './http.js';
5
+ import type { ApplicationService } from '../types.js';
6
+ import { CookieClient } from '../../modules/http.js';
7
+ export declare class TestUtils extends Macroable {
8
+ #private;
9
+ app: ApplicationService;
10
+ get isBooted(): boolean;
11
+ cookies: CookieClient;
12
+ constructor(app: ApplicationService);
13
+ boot(): Promise<void>;
14
+ httpServer(): HttpServerUtils;
15
+ createHttpContext(options?: {
16
+ req?: IncomingMessage;
17
+ res?: ServerResponse;
18
+ }): Promise<import("../../modules/http.js").HttpContext>;
19
+ }
@@ -0,0 +1,33 @@
1
+ import { Socket } from 'node:net';
2
+ import Macroable from '@poppinss/macroable';
3
+ import { IncomingMessage, ServerResponse } from 'node:http';
4
+ import { HttpServerUtils } from './http.js';
5
+ import { CookieClient } from '../../modules/http.js';
6
+ export class TestUtils extends Macroable {
7
+ app;
8
+ #booted = false;
9
+ get isBooted() {
10
+ return this.#booted;
11
+ }
12
+ constructor(app) {
13
+ super();
14
+ this.app = app;
15
+ }
16
+ async boot() {
17
+ if (!this.isBooted) {
18
+ this.#booted = true;
19
+ this.cookies = new CookieClient(await this.app.container.make('encryption'));
20
+ }
21
+ }
22
+ httpServer() {
23
+ return new HttpServerUtils(this);
24
+ }
25
+ async createHttpContext(options = {}) {
26
+ const req = options.req || new IncomingMessage(new Socket());
27
+ const res = options.res || new ServerResponse(req);
28
+ const server = await this.app.container.make('server');
29
+ const request = server.createRequest(req, res);
30
+ const response = server.createResponse(req, res);
31
+ return server.createHttpContext(request, response, this.app.container.createResolver());
32
+ }
33
+ }
@@ -0,0 +1,63 @@
1
+ import type { Importer } from '../types/app.js';
2
+ import type { Emitter } from '../modules/events.js';
3
+ import type { Kernel } from '../modules/ace/main.js';
4
+ import type { Application } from '../modules/app.js';
5
+ import type { TestUtils } from './test_utils/main.js';
6
+ import type { Router, Server } from '../modules/http.js';
7
+ import type { LoggerManager } from '../modules/logger.js';
8
+ import type { Encryption } from '../modules/encryption.js';
9
+ import type { HttpRequestFinishedPayload } from '../types/http.js';
10
+ import type { LoggerConfig, LoggerManagerConfig } from '../types/logger.js';
11
+ import type hashDriversCollection from '../modules/hash/drivers_collection.js';
12
+ import type { Argon, Bcrypt, HashManager, Scrypt } from '../modules/hash/main.js';
13
+ import type { ArgonConfig, BcryptConfig, ScryptConfig, ManagerDriverFactory } from '../types/hash.js';
14
+ export type IgnitorOptions = {
15
+ importer: Importer;
16
+ };
17
+ export interface EventsList {
18
+ 'http:request_handled': HttpRequestFinishedPayload;
19
+ 'http:server_ready': {
20
+ port: number;
21
+ host: string;
22
+ };
23
+ }
24
+ export interface LoggersList {
25
+ }
26
+ export type InferLoggers<T extends LoggerManagerConfig<any>> = T['loggers'];
27
+ export interface HashDriversList {
28
+ bcrypt: (config: BcryptConfig) => Bcrypt;
29
+ argon2: (config: ArgonConfig) => Argon;
30
+ scrypt: (config: ScryptConfig) => Scrypt;
31
+ }
32
+ export interface HashersList {
33
+ }
34
+ export type InferHashers<T extends {
35
+ list: Record<string, ManagerDriverFactory>;
36
+ }> = T['list'];
37
+ export interface ApplicationService extends Application<ContainerBindings extends Record<any, any> ? ContainerBindings : never> {
38
+ }
39
+ export interface LoggerService extends LoggerManager<LoggersList extends Record<string, LoggerConfig> ? LoggersList : never> {
40
+ }
41
+ export interface EmitterService extends Emitter<EventsList> {
42
+ }
43
+ export interface EncryptionService extends Encryption {
44
+ }
45
+ export interface HttpServerService extends Server {
46
+ }
47
+ export interface HttpRouterService extends Router {
48
+ }
49
+ export interface HashService extends HashManager<HashersList extends Record<string, ManagerDriverFactory> ? HashersList : never> {
50
+ }
51
+ export interface ContainerBindings {
52
+ ace: Kernel;
53
+ app: ApplicationService;
54
+ logger: LoggerService;
55
+ config: ApplicationService['config'];
56
+ emitter: EmitterService;
57
+ encryption: EncryptionService;
58
+ hash: HashService;
59
+ hashDrivers: typeof hashDriversCollection;
60
+ server: HttpServerService;
61
+ router: HttpRouterService;
62
+ testUtils: TestUtils;
63
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export declare const stubsRoot: string;
@@ -0,0 +1,2 @@
1
+ import { getDirname } from '@poppinss/utils';
2
+ export const stubsRoot = getDirname(import.meta.url);
@@ -0,0 +1,19 @@
1
+ {{#var commandName = generators.commandName(entity.name)}}
2
+ {{#var commandTerminalName = generators.commandTerminalName(entity.name)}}
3
+ {{#var commandFileName = generators.commandFileName(entity.name)}}
4
+ ---
5
+ to: {{ app.commandsPath(entity.path, commandFileName) }}
6
+ ---
7
+ import { BaseCommand } from '@adonisjs/core/ace'
8
+ import { CommandOptions } from '@adonisjs/core/types'
9
+
10
+ export default class {{ commandName }} extends BaseCommand {
11
+ static commandName = '{{ commandTerminalName }}'
12
+ static description = ''
13
+
14
+ static options: CommandOptions = {}
15
+
16
+ async run() {
17
+ this.info('Hello world from "{{ commandName }}"')
18
+ }
19
+ }
@@ -0,0 +1,33 @@
1
+ {{#var controllerName = generators.controllerName(entity.name)}}
2
+ {{#var controllerFileName = generators.controllerFileName(entity.name)}}
3
+ ---
4
+ to: {{ app.httpControllersPath(entity.path, controllerFileName) }}
5
+ ---
6
+ import { HttpContext } from '@adonisjs/core/http'
7
+
8
+ export default class {{ controllerName }} {
9
+ /**
10
+ * Display a list of resource
11
+ */
12
+ async index({}: HttpContext) {}
13
+
14
+ /**
15
+ * Handle form submission for the create action
16
+ */
17
+ async store({ request }: HttpContext) {}
18
+
19
+ /**
20
+ * Show individual record
21
+ */
22
+ async show({ params }: HttpContext) {}
23
+
24
+ /**
25
+ * Handle form submission for the edit action
26
+ */
27
+ async update({ params, request }: HttpContext) {}
28
+
29
+ /**
30
+ * Delete record
31
+ */
32
+ async destroy({ params }: HttpContext) {}
33
+ }
@@ -0,0 +1,9 @@
1
+ {{#var controllerName = generators.controllerName(entity.name)}}
2
+ {{#var controllerFileName = generators.controllerFileName(entity.name)}}
3
+ ---
4
+ to: {{ app.httpControllersPath(entity.path, controllerFileName) }}
5
+ ---
6
+ // import { HttpContext } from '@adonisjs/core/http'
7
+
8
+ export default class {{ controllerName }} {
9
+ }
@@ -0,0 +1,43 @@
1
+ {{#var controllerName = generators.controllerName(entity.name)}}
2
+ {{#var controllerFileName = generators.controllerFileName(entity.name)}}
3
+ ---
4
+ to: {{ app.httpControllersPath(entity.path, controllerFileName) }}
5
+ ---
6
+ import { HttpContext } from '@adonisjs/core/http'
7
+
8
+ export default class {{ controllerName }} {
9
+ /**
10
+ * Display a list of resource
11
+ */
12
+ async index({}: HttpContext) {}
13
+
14
+ /**
15
+ * Display form to create a new record
16
+ */
17
+ async create({}: HttpContext) {}
18
+
19
+ /**
20
+ * Handle form submission for the create action
21
+ */
22
+ async store({ request }: HttpContext) {}
23
+
24
+ /**
25
+ * Show individual record
26
+ */
27
+ async show({ params }: HttpContext) {}
28
+
29
+ /**
30
+ * Edit individual record
31
+ */
32
+ async edit({ params }: HttpContext) {}
33
+
34
+ /**
35
+ * Handle form submission for the edit action
36
+ */
37
+ async update({ params, request }: HttpContext) {}
38
+
39
+ /**
40
+ * Delete record
41
+ */
42
+ async destroy({ params }: HttpContext) {}
43
+ }
@@ -0,0 +1,15 @@
1
+ {{#var eventName = generators.eventName(entity.name)}}
2
+ {{#var eventFileName = generators.eventFileName(entity.name)}}
3
+ ---
4
+ to: {{ app.eventsPath(entity.path, eventFileName) }}
5
+ ---
6
+ import { BaseEvent } from '@adonisjs/core/events'
7
+
8
+ export default class {{ eventName }} extends BaseEvent {
9
+ /**
10
+ * Accept event data as constructor parameters
11
+ */
12
+ constructor() {
13
+ super()
14
+ }
15
+ }
@@ -0,0 +1,13 @@
1
+ {{#var listenerName = generators.listenerName(entity.name)}}
2
+ {{#var listenerFileName = generators.listenerFileName(entity.name)}}
3
+ {{#var eventName = generators.eventName(event.name)}}
4
+ {{#var eventFileName = generators.eventFileName(event.name)}}
5
+ {{#var eventImportPath = generators.importPath('#events', event.path, eventFileName)}}
6
+ ---
7
+ to: {{ app.listenersPath(entity.path, listenerFileName) }}
8
+ ---
9
+ import {{ eventName }} from '{{ eventImportPath }}'
10
+
11
+ export default class {{ listenerName }} {
12
+ async handle(event: {{ eventName }}) {}
13
+ }
@@ -0,0 +1,7 @@
1
+ {{#var listenerName = generators.listenerName(entity.name)}}
2
+ {{#var listenerFileName = generators.listenerFileName(entity.name)}}
3
+ ---
4
+ to: {{ app.listenersPath(entity.path, listenerFileName) }}
5
+ ---
6
+ export default class {{ listenerName }} {
7
+ }
@@ -0,0 +1,22 @@
1
+ {{#var middlewareName = generators.middlewareName(entity.name)}}
2
+ {{#var middlewareFileName = generators.middlewareFileName(entity.name)}}
3
+ ---
4
+ to: {{ app.middlewarePath(entity.path, middlewareFileName) }}
5
+ ---
6
+ import { HttpContext } from '@adonisjs/core/http'
7
+ import { NextFn } from '@adonisjs/core/types/http'
8
+
9
+ export default class {{ middlewareName }} {
10
+ async handle(ctx: HttpContext, next: NextFn) {
11
+ /**
12
+ * Middleware logic goes here (before the next call)
13
+ */
14
+ console.log(ctx)
15
+
16
+ /**
17
+ * Call next method in the pipeline and return its output
18
+ */
19
+ const output = await next()
20
+ return output
21
+ }
22
+ }
@@ -0,0 +1,35 @@
1
+ {{#var providerName = generators.providerName(entity.name)}}
2
+ {{#var providerFileName = generators.providerFileName(entity.name)}}
3
+ ---
4
+ to: {{ app.providersPath(entity.path, providerFileName) }}
5
+ ---
6
+ import { ApplicationService } from '@adonisjs/core/types'
7
+
8
+ export default class {{ providerName }} {
9
+ constructor(protected app: ApplicationService) {}
10
+
11
+ /**
12
+ * Register bindings to the container
13
+ */
14
+ register() {}
15
+
16
+ /**
17
+ * The container bindings have booted
18
+ */
19
+ async boot() {}
20
+
21
+ /**
22
+ * The application has been booted
23
+ */
24
+ async start() {}
25
+
26
+ /**
27
+ * The process has been started
28
+ */
29
+ async ready() {}
30
+
31
+ /**
32
+ * Preparing to shutdown the app
33
+ */
34
+ async shutdown() {}
35
+ }
@@ -0,0 +1,5 @@
1
+ import type { CommandOptions as BaseCommandOptions } from '@adonisjs/ace/types';
2
+ export type CommandOptions = BaseCommandOptions & {
3
+ startApp?: boolean;
4
+ };
5
+ export * from '@adonisjs/ace/types';
@@ -0,0 +1 @@
1
+ export * from '@adonisjs/ace/types';
@@ -0,0 +1 @@
1
+ export * from '@adonisjs/application/types';
@@ -0,0 +1 @@
1
+ export * from '@adonisjs/application/types';
@@ -0,0 +1 @@
1
+ export * from '@adonisjs/bodyparser/types';
@@ -0,0 +1 @@
1
+ export * from '@adonisjs/bodyparser/types';
@@ -0,0 +1 @@
1
+ export * from '@adonisjs/fold/types';
@@ -0,0 +1 @@
1
+ export * from '@adonisjs/fold/types';
@@ -0,0 +1 @@
1
+ export * from '@adonisjs/encryption/types';
@@ -0,0 +1 @@
1
+ export * from '@adonisjs/encryption/types';
@@ -0,0 +1 @@
1
+ export * from '@adonisjs/events/types';
@@ -0,0 +1 @@
1
+ export * from '@adonisjs/events/types';
@@ -0,0 +1 @@
1
+ export * from '@adonisjs/hash/types';
@@ -0,0 +1 @@
1
+ export * from '@adonisjs/hash/types';
@@ -0,0 +1 @@
1
+ export * from '@adonisjs/http-server/types';
@@ -0,0 +1 @@
1
+ export * from '@adonisjs/http-server/types';
@@ -0,0 +1 @@
1
+ export * from '@adonisjs/logger/types';
@@ -0,0 +1 @@
1
+ export * from '@adonisjs/logger/types';