@adonisjs/core 7.0.0 → 7.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 (162) hide show
  1. package/build/ace-DBm6EcQ-.js +37 -0
  2. package/build/app-BCcG_oDd.js +7 -0
  3. package/build/app-CAuSGb2P.js +15 -0
  4. package/build/bodyparser_middleware-H5FArWkI.js +9 -0
  5. package/build/{chunk-iKc69rpz.js → chunk-Do49iUES.js} +3 -0
  6. package/build/commands/add.d.ts +1 -0
  7. package/build/commands/add.js +64 -10
  8. package/build/commands/build.js +41 -3
  9. package/build/commands/commands.json +1 -1
  10. package/build/commands/configure.js +70 -4
  11. package/build/commands/eject.js +30 -4
  12. package/build/commands/env/add.js +62 -4
  13. package/build/commands/generate_key.js +23 -3
  14. package/build/commands/inspect_rcfile.js +26 -2
  15. package/build/commands/list/routes.d.ts +5 -0
  16. package/build/commands/list/routes.js +242 -3
  17. package/build/commands/make/command.js +33 -4
  18. package/build/commands/make/controller.js +46 -4
  19. package/build/commands/make/event.js +36 -4
  20. package/build/commands/make/exception.js +36 -4
  21. package/build/commands/make/listener.js +44 -4
  22. package/build/commands/make/middleware.js +53 -5
  23. package/build/commands/make/preload.js +55 -5
  24. package/build/commands/make/provider.js +54 -5
  25. package/build/commands/make/service.js +29 -4
  26. package/build/commands/make/test.js +63 -4
  27. package/build/commands/make/transformer.js +37 -4
  28. package/build/commands/make/validator.js +44 -4
  29. package/build/commands/make/view.js +33 -4
  30. package/build/commands/repl.js +31 -2
  31. package/build/commands/serve.js +54 -4
  32. package/build/commands/test.js +69 -4
  33. package/build/config-Coti2q6R.js +7 -0
  34. package/build/config_provider-Do9af1ze.js +35 -0
  35. package/build/container-CGfEwWof.js +7 -0
  36. package/build/{core-IpCOCkUL.js → core-XjMm_ipu.js} +51 -2
  37. package/build/create_kernel-BV3swyCg.js +4 -0
  38. package/build/{create_kernel-B7ILNhuP.js → create_kernel-D38-0Zbt.js} +41 -1
  39. package/build/debug-DWofTfIX.js +20 -0
  40. package/build/{decorate-DmrZA614.js → decorate-B9Uz0anB.js} +2 -0
  41. package/build/{define_config-0oHaj43l.js → define_config--5euEdi8.js} +54 -3
  42. package/build/dumper-3R77st8F.js +353 -0
  43. package/build/edge-BG5ZYp6Z.js +57 -0
  44. package/build/{errors-CrCO-k44.js → errors-BScZTzBu.js} +9 -1
  45. package/build/events-DlKX1ZdL.js +7 -0
  46. package/build/exceptions-B2MzIlHY.js +2 -0
  47. package/build/factories/app.js +1 -0
  48. package/build/factories/bodyparser.js +1 -0
  49. package/build/factories/core/ace.js +16 -22
  50. package/build/factories/core/ignitor.js +13 -73
  51. package/build/factories/core/main.js +25 -17
  52. package/build/factories/core/test_utils.js +22 -19
  53. package/build/factories/encryption.js +1 -0
  54. package/build/factories/events.js +1 -0
  55. package/build/factories/hash.js +1 -0
  56. package/build/factories/http.js +1 -0
  57. package/build/factories/logger.js +1 -0
  58. package/build/factories/stubs.js +75 -7
  59. package/build/ignitor-Kym3gR-I.js +169 -0
  60. package/build/index.js +11 -8
  61. package/build/logger-DIdZPHCe.js +43 -0
  62. package/build/main-B50zECAi.js +121 -0
  63. package/build/main-CRnMnrH7.js +184 -0
  64. package/build/{main-kn40V-hF.js → main-CfTiGsiS.js} +2 -0
  65. package/build/main-Ck0GqLx4.js +117 -0
  66. package/build/main-CoZI4Ezs.js +2 -0
  67. package/build/main-D1MSq4Uu.js +435 -0
  68. package/build/{main--nXd7T-C.js → main-bRYXIHgD.js} +75 -3
  69. package/build/main-zxNP7iRl.js +7 -0
  70. package/build/modules/ace/codemods.d.ts +1 -1
  71. package/build/modules/ace/codemods.js +303 -8
  72. package/build/modules/ace/commands.d.ts +5 -0
  73. package/build/modules/ace/main.js +2 -1
  74. package/build/modules/app.js +3 -5
  75. package/build/modules/bodyparser/bodyparser_middleware.js +2 -2
  76. package/build/modules/bodyparser/main.js +3 -5
  77. package/build/modules/config.js +3 -5
  78. package/build/modules/container.js +3 -5
  79. package/build/modules/dumper/main.js +29 -2
  80. package/build/modules/dumper/plugins/edge.js +2 -46
  81. package/build/modules/encryption/drivers/aes_256_cbc.js +1 -0
  82. package/build/modules/encryption/drivers/aes_256_gcm.js +1 -0
  83. package/build/modules/encryption/drivers/aes_siv.js +1 -0
  84. package/build/modules/encryption/drivers/chacha20_poly1305.js +1 -0
  85. package/build/modules/encryption/drivers/legacy.js +46 -1
  86. package/build/modules/encryption/main.js +7 -5
  87. package/build/modules/env/editor.js +1 -0
  88. package/build/modules/env/main.js +1 -0
  89. package/build/modules/events.js +3 -5
  90. package/build/modules/hash/drivers/argon.js +1 -0
  91. package/build/modules/hash/drivers/bcrypt.js +1 -0
  92. package/build/modules/hash/drivers/scrypt.js +1 -0
  93. package/build/modules/hash/main.js +4 -4
  94. package/build/modules/hash/phc_formatter.js +1 -0
  95. package/build/modules/health.js +1 -0
  96. package/build/modules/http/helpers.js +1 -0
  97. package/build/modules/http/main.js +2 -2
  98. package/build/modules/http/url_builder_client.js +1 -0
  99. package/build/modules/logger.js +3 -13
  100. package/build/modules/repl.js +3 -5
  101. package/build/modules/transformers/main.js +1 -0
  102. package/build/providers/app_provider.js +214 -15
  103. package/build/providers/edge_provider.js +90 -3
  104. package/build/providers/hash_provider.js +59 -4
  105. package/build/providers/repl_provider.js +64 -2
  106. package/build/providers/vinejs_provider.js +44 -3
  107. package/build/repl-C02Re0Yd.js +7 -0
  108. package/build/services/ace.js +11 -1
  109. package/build/services/app.js +2 -4
  110. package/build/services/config.js +7 -1
  111. package/build/services/dumper.js +13 -1
  112. package/build/services/emitter.js +8 -1
  113. package/build/services/encryption.js +8 -1
  114. package/build/services/hash.js +8 -1
  115. package/build/services/logger.js +8 -1
  116. package/build/services/repl.js +8 -1
  117. package/build/services/router.js +8 -1
  118. package/build/services/server.js +8 -1
  119. package/build/services/test_utils.js +11 -1
  120. package/build/services/url_builder.js +8 -1
  121. package/build/src/cli_formatters/routes_list.d.ts +7 -0
  122. package/build/src/exceptions.js +2 -1
  123. package/build/src/helpers/assert.js +1 -0
  124. package/build/src/helpers/http.js +1 -0
  125. package/build/src/helpers/is.js +24 -0
  126. package/build/src/helpers/main.js +2 -1
  127. package/build/src/helpers/string.js +2 -27
  128. package/build/src/helpers/types.js +18 -0
  129. package/build/src/helpers/verification_token.js +2 -45
  130. package/build/src/test_utils/main.js +9 -7
  131. package/build/src/types.js +1 -0
  132. package/build/src/vine.js +2 -32
  133. package/build/string-8_8He-HH.js +46 -0
  134. package/build/test_utils-DbJS_uEu.js +32 -0
  135. package/build/toolkit/main.js +13 -1
  136. package/build/types/ace.js +1 -0
  137. package/build/types/app.js +1 -0
  138. package/build/types/bodyparser.js +1 -0
  139. package/build/types/common.js +1 -0
  140. package/build/types/container.js +1 -0
  141. package/build/types/encryption.js +1 -0
  142. package/build/types/events.js +1 -0
  143. package/build/types/hash.js +1 -0
  144. package/build/types/health.js +1 -0
  145. package/build/types/helpers.js +1 -0
  146. package/build/types/http.js +1 -0
  147. package/build/types/logger.js +1 -0
  148. package/build/types/repl.js +1 -0
  149. package/build/types/transformers.js +1 -0
  150. package/build/utils-CKwka7OL.js +105 -0
  151. package/build/verification_token-WCrZtUgZ.js +108 -0
  152. package/build/vine-DkIupA3Z.js +97 -0
  153. package/package.json +12 -12
  154. package/build/config_provider-FIAUgvae.js +0 -13
  155. package/build/create_kernel-BD0Iqi8e.js +0 -3
  156. package/build/debug-CGQmxzGt.js +0 -3
  157. package/build/dumper-BBgqFX5a.js +0 -147
  158. package/build/main-Cxz0TyIw.js +0 -173
  159. package/build/main-DN2qEEg5.js +0 -41
  160. package/build/main-DkNgvceD.js +0 -52
  161. package/build/main-MBAMnmJb.js +0 -81
  162. package/build/utils-rRkbAPnP.js +0 -42
@@ -1,16 +1,51 @@
1
- import { t as E_BLIND_INDEX_NOT_SUPPORTED } from "../../../errors-CrCO-k44.js";
1
+ import "../../../chunk-Do49iUES.js";
2
+ import "../../../exceptions-B2MzIlHY.js";
3
+ import { t as E_BLIND_INDEX_NOT_SUPPORTED } from "../../../errors-BScZTzBu.js";
2
4
  import { BaseDriver, Hmac, base64UrlDecode, base64UrlEncode, errors } from "@boringnode/encryption";
3
5
  import { MessageBuilder } from "@poppinss/utils";
4
6
  import { createCipheriv, createDecipheriv, randomBytes } from "node:crypto";
7
+ //#region modules/encryption/drivers/legacy.ts
8
+ /**
9
+ * Factory function to create a Legacy encryption configuration.
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * drivers.legacy({
14
+ * keys: [env.get('APP_KEY')]
15
+ * })
16
+ * ```
17
+ */
5
18
  function legacy(config) {
6
19
  return {
7
20
  driver: (key) => new Legacy({ key }),
8
21
  keys: config.keys
9
22
  };
10
23
  }
24
+ /**
25
+ * Legacy encryption driver for AdonisJS.
26
+ *
27
+ * This driver maintains compatibility with the old AdonisJS v6 encryption
28
+ * format. It uses:
29
+ * - AES-256-CBC for encryption
30
+ * - HMAC SHA-256 for integrity verification
31
+ * - MessageBuilder from @poppinss/utils for encoding values
32
+ *
33
+ * Encrypted format: `[encrypted_base64url].[iv_base64url].[hmac]`
34
+ *
35
+ * @example
36
+ * ```ts
37
+ * const driver = new Legacy({ key: 'your-32-character-secret-key!!' })
38
+ *
39
+ * const encrypted = driver.encrypt('sensitive data')
40
+ * const decrypted = driver.decrypt(encrypted)
41
+ * ```
42
+ */
11
43
  var Legacy = class extends BaseDriver {
12
44
  constructor(config) {
13
45
  super(config);
46
+ /**
47
+ * The key length must be at least 16 characters
48
+ */
14
49
  if (this.cryptoKey.length < 16) throw new errors.E_INSECURE_ENCRYPTER_KEY();
15
50
  }
16
51
  encrypt(payload, expiresInOrOptions, purpose) {
@@ -30,6 +65,9 @@ var Legacy = class extends BaseDriver {
30
65
  const hmac = new Hmac(this.cryptoKey).generate(macPayload);
31
66
  return this.computeReturns([macPayload, hmac]);
32
67
  }
68
+ /**
69
+ * Decrypt value and verify it against a purpose
70
+ */
33
71
  decrypt(value, purpose) {
34
72
  if (typeof value !== "string") return null;
35
73
  const [cipherEncoded, ivEncoded, macEncoded] = value.split(this.separator);
@@ -47,11 +85,18 @@ var Legacy = class extends BaseDriver {
47
85
  return null;
48
86
  }
49
87
  }
88
+ /**
89
+ * Legacy driver does not support blind indexes.
90
+ */
50
91
  blindIndex(_payload, _purpose) {
51
92
  throw new E_BLIND_INDEX_NOT_SUPPORTED(["legacy"]);
52
93
  }
94
+ /**
95
+ * Legacy driver does not support blind indexes.
96
+ */
53
97
  blindIndexes(_payload, _purpose) {
54
98
  throw new E_BLIND_INDEX_NOT_SUPPORTED(["legacy"]);
55
99
  }
56
100
  };
101
+ //#endregion
57
102
  export { Legacy, legacy };
@@ -1,6 +1,8 @@
1
- import "../../debug-CGQmxzGt.js";
2
- import "../../config_provider-FIAUgvae.js";
3
- import { n as errors } from "../../errors-CrCO-k44.js";
4
- import { n as drivers, t as defineConfig } from "../../define_config-0oHaj43l.js";
5
- import { BaseDriver, Encryption, EncryptionManager, Hmac } from "@boringnode/encryption";
1
+ import "../../chunk-Do49iUES.js";
2
+ import "../../debug-DWofTfIX.js";
3
+ import "../../config_provider-Do9af1ze.js";
4
+ import "../../exceptions-B2MzIlHY.js";
5
+ import { n as errors } from "../../errors-BScZTzBu.js";
6
+ import { n as drivers, t as defineConfig } from "../../define_config--5euEdi8.js";
7
+ import { i as Hmac, n as Encryption, r as EncryptionManager, t as BaseDriver } from "../../main-CoZI4Ezs.js";
6
8
  export { BaseDriver, Encryption, EncryptionManager, Hmac, defineConfig, drivers, errors };
@@ -1,2 +1,3 @@
1
+ import "../../chunk-Do49iUES.js";
1
2
  export * from "@adonisjs/env/editor";
2
3
  export {};
@@ -1,2 +1,3 @@
1
+ import "../../chunk-Do49iUES.js";
1
2
  export * from "@adonisjs/env";
2
3
  export {};
@@ -1,6 +1,4 @@
1
- import { n as __reExport, t as __exportAll } from "../chunk-iKc69rpz.js";
1
+ import "../chunk-Do49iUES.js";
2
+ import "../events-DlKX1ZdL.js";
2
3
  export * from "@adonisjs/events";
3
- var events_exports = /* @__PURE__ */ __exportAll({});
4
- import * as import__adonisjs_events from "@adonisjs/events";
5
- __reExport(events_exports, import__adonisjs_events);
6
- export { events_exports as t };
4
+ export {};
@@ -1,2 +1,3 @@
1
+ import "../../../chunk-Do49iUES.js";
1
2
  export * from "@adonisjs/hash/drivers/argon";
2
3
  export {};
@@ -1,2 +1,3 @@
1
+ import "../../../chunk-Do49iUES.js";
1
2
  export * from "@adonisjs/hash/drivers/bcrypt";
2
3
  export {};
@@ -1,2 +1,3 @@
1
+ import "../../../chunk-Do49iUES.js";
1
2
  export * from "@adonisjs/hash/drivers/scrypt";
2
3
  export {};
@@ -1,6 +1,6 @@
1
- import "../../chunk-iKc69rpz.js";
2
- import "../../debug-CGQmxzGt.js";
3
- import "../../config_provider-FIAUgvae.js";
4
- import { n as defineConfig, r as drivers } from "../../main-DkNgvceD.js";
1
+ import "../../chunk-Do49iUES.js";
2
+ import "../../debug-DWofTfIX.js";
3
+ import "../../config_provider-Do9af1ze.js";
4
+ import { n as defineConfig, r as drivers } from "../../main-B50zECAi.js";
5
5
  export * from "@adonisjs/hash";
6
6
  export { defineConfig, drivers };
@@ -1,2 +1,3 @@
1
+ import "../../chunk-Do49iUES.js";
1
2
  export * from "@adonisjs/hash/phc_formatter";
2
3
  export {};
@@ -1,2 +1,3 @@
1
+ import "../chunk-Do49iUES.js";
1
2
  export * from "@adonisjs/health";
2
3
  export {};
@@ -1,2 +1,3 @@
1
+ import "../../chunk-Do49iUES.js";
1
2
  export * from "@adonisjs/http-server/helpers";
2
3
  export {};
@@ -1,4 +1,4 @@
1
- import "../../chunk-iKc69rpz.js";
2
- import { n as RequestValidator } from "../../main-DN2qEEg5.js";
1
+ import "../../chunk-Do49iUES.js";
2
+ import { n as RequestValidator } from "../../main-Ck0GqLx4.js";
3
3
  export * from "@adonisjs/http-server";
4
4
  export { RequestValidator };
@@ -1,2 +1,3 @@
1
+ import "../../chunk-Do49iUES.js";
1
2
  export * from "@adonisjs/http-server/client/url_builder";
2
3
  export {};
@@ -1,14 +1,4 @@
1
- import { n as __reExport, t as __exportAll } from "../chunk-iKc69rpz.js";
2
- import { destination } from "@adonisjs/logger";
1
+ import "../chunk-Do49iUES.js";
2
+ import { n as syncDestination } from "../logger-DIdZPHCe.js";
3
3
  export * from "@adonisjs/logger";
4
- var logger_exports = /* @__PURE__ */ __exportAll({ syncDestination: () => syncDestination });
5
- import * as import__adonisjs_logger from "@adonisjs/logger";
6
- __reExport(logger_exports, import__adonisjs_logger);
7
- async function syncDestination(options) {
8
- const { default: pinoPretty, isColorSupported } = await import("pino-pretty");
9
- return isColorSupported ? pinoPretty({
10
- ...options,
11
- sync: true
12
- }) : destination(1);
13
- }
14
- export { syncDestination, logger_exports as t };
4
+ export { syncDestination };
@@ -1,6 +1,4 @@
1
- import { n as __reExport, t as __exportAll } from "../chunk-iKc69rpz.js";
1
+ import "../chunk-Do49iUES.js";
2
+ import "../repl-C02Re0Yd.js";
2
3
  export * from "@adonisjs/repl";
3
- var repl_exports = /* @__PURE__ */ __exportAll({});
4
- import * as import__adonisjs_repl from "@adonisjs/repl";
5
- __reExport(repl_exports, import__adonisjs_repl);
6
- export { repl_exports as t };
4
+ export {};
@@ -1,2 +1,3 @@
1
+ import "../../chunk-Do49iUES.js";
1
2
  export * from "@adonisjs/http-transformers";
2
3
  export {};
@@ -1,63 +1,174 @@
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";
1
+ import "../chunk-Do49iUES.js";
2
+ import "../debug-DWofTfIX.js";
3
+ import { t as app_exports } from "../app-BCcG_oDd.js";
4
+ import { t as configProvider } from "../config_provider-Do9af1ze.js";
5
+ import { t as config_exports } from "../config-Coti2q6R.js";
6
+ import { t as events_exports } from "../events-DlKX1ZdL.js";
7
+ import { t as logger_exports } from "../logger-DIdZPHCe.js";
8
+ import { t as Dumper } from "../dumper-3R77st8F.js";
9
+ import { r as RuntimeException } from "../exceptions-B2MzIlHY.js";
10
+ import { t as main_exports } from "../main-Ck0GqLx4.js";
11
+ import "../errors-BScZTzBu.js";
12
+ import "../define_config--5euEdi8.js";
13
+ import { n as Encryption } from "../main-CoZI4Ezs.js";
14
+ import { t as bodyparser_middleware_default } from "../bodyparser_middleware-H5FArWkI.js";
15
15
  import { dirname } from "node:path";
16
16
  import { mkdir, writeFile } from "node:fs/promises";
17
+ //#region providers/app_provider.ts
18
+ /**
19
+ * The Application Service provider registers all the baseline
20
+ * features required to run the framework.
21
+ *
22
+ * This provider handles the registration of core services including:
23
+ * - Application instance
24
+ * - Logger and logger manager
25
+ * - Configuration
26
+ * - Event emitter
27
+ * - Encryption service
28
+ * - HTTP server and router
29
+ * - Body parser middleware
30
+ * - Dumper for debugging
31
+ * - Test utilities and ACE kernel
32
+ *
33
+ * @example
34
+ * const provider = new AppServiceProvider(app)
35
+ * provider.register()
36
+ * await provider.boot()
37
+ * await provider.ready()
38
+ */
17
39
  var AppServiceProvider = class {
40
+ /**
41
+ * Application service provider constructor
42
+ *
43
+ * @param app - The application service instance
44
+ */
18
45
  constructor(app) {
19
46
  this.app = app;
20
47
  }
48
+ /**
49
+ * Registers test utils with the container
50
+ *
51
+ * Creates a singleton binding for 'testUtils' that lazily imports
52
+ * and instantiates the TestUtils class when first accessed.
53
+ *
54
+ * @example
55
+ * const testUtils = await app.container.make('testUtils')
56
+ * testUtils.createHttpContext()
57
+ */
21
58
  registerTestUtils() {
22
59
  this.app.container.singleton("testUtils", async () => {
23
60
  const { TestUtils } = await import("../src/test_utils/main.js");
24
61
  return new TestUtils(this.app);
25
62
  });
26
63
  }
64
+ /**
65
+ * Registers ace with the container
66
+ *
67
+ * Creates a singleton binding for 'ace' that lazily creates
68
+ * the ACE kernel for command-line interface functionality.
69
+ *
70
+ * @example
71
+ * const ace = await app.container.make('ace')
72
+ * await ace.exec('make:controller', ['UserController'])
73
+ */
27
74
  registerAce() {
28
75
  this.app.container.singleton("ace", async () => {
29
- const { createAceKernel } = await import("../create_kernel-BD0Iqi8e.js");
76
+ const { createAceKernel } = await import("../create_kernel-BV3swyCg.js");
30
77
  return createAceKernel(this.app);
31
78
  });
32
79
  }
80
+ /**
81
+ * Registers the application to the container
82
+ *
83
+ * Binds the application instance as both a class binding and an alias.
84
+ * This allows access to the app instance throughout the container.
85
+ *
86
+ * @example
87
+ * const app = await container.make('app')
88
+ * const appPath = app.makePath('tmp')
89
+ */
33
90
  registerApp() {
34
91
  this.app.container.singleton(app_exports.Application, () => this.app);
35
92
  this.app.container.alias("app", app_exports.Application);
36
93
  }
94
+ /**
95
+ * Registers the logger class to resolve the default logger
96
+ *
97
+ * Creates a singleton binding for the Logger class that resolves
98
+ * the default logger instance from the logger manager.
99
+ *
100
+ * @example
101
+ * const logger = await container.make(Logger)
102
+ * logger.info('Application started')
103
+ */
37
104
  registerLogger() {
38
105
  this.app.container.singleton(logger_exports.Logger, async (resolver) => {
39
106
  return (await resolver.make("logger")).use();
40
107
  });
41
108
  }
109
+ /**
110
+ * Registers the logger manager to the container
111
+ *
112
+ * Creates a singleton binding for 'logger' that instantiates
113
+ * the LoggerManager with configuration from config/logger.ts
114
+ *
115
+ * @example
116
+ * const loggerManager = await container.make('logger')
117
+ * const fileLogger = loggerManager.use('file')
118
+ */
42
119
  registerLoggerManager() {
43
120
  this.app.container.singleton("logger", async () => {
44
121
  const { LoggerManager } = await import("../modules/logger.js");
45
122
  return new LoggerManager(this.app.config.get("logger"));
46
123
  });
47
124
  }
125
+ /**
126
+ * Registers the config to the container
127
+ *
128
+ * Binds the application's config instance as both a class binding
129
+ * and an alias, allowing access to configuration values.
130
+ *
131
+ * @example
132
+ * const config = await container.make('config')
133
+ * const appKey = config.get('app.appKey')
134
+ */
48
135
  registerConfig() {
49
136
  this.app.container.singleton(config_exports.Config, () => this.app.config);
50
137
  this.app.container.alias("config", config_exports.Config);
51
138
  }
139
+ /**
140
+ * Registers emitter service to the container
141
+ *
142
+ * Creates a singleton binding for the event emitter that handles
143
+ * application-wide event dispatching and listening.
144
+ *
145
+ * @example
146
+ * const emitter = await container.make('emitter')
147
+ * emitter.emit('user:created', { userId: 123 })
148
+ */
52
149
  registerEmitter() {
53
150
  this.app.container.singleton(events_exports.Emitter, async () => {
54
151
  return new events_exports.Emitter(this.app);
55
152
  });
56
153
  this.app.container.alias("emitter", events_exports.Emitter);
57
154
  }
155
+ /**
156
+ * Registers the encryption service with the container
157
+ *
158
+ * Creates singleton bindings for both the encryption manager and
159
+ * the default encryption instance. Resolves configuration from
160
+ * config/encryption.ts file.
161
+ *
162
+ * @example
163
+ * const encryption = await container.make('encryption')
164
+ * const encrypted = encryption.encrypt('secret-data')
165
+ */
58
166
  registerEncryption() {
59
167
  this.app.container.singleton("encryption", async () => {
60
168
  const encryptionConfigProvider = this.app.config.get("encryption");
169
+ /**
170
+ * Resolve config from the provider
171
+ */
61
172
  const config = await configProvider.resolve(this.app, encryptionConfigProvider);
62
173
  if (!config) throw new RuntimeException("Invalid \"config/encryption.ts\" file. Make sure you are using the \"defineConfig\" method");
63
174
  const { EncryptionManager } = await import("../modules/encryption/main.js");
@@ -67,6 +178,17 @@ var AppServiceProvider = class {
67
178
  return (await resolver.make("encryption")).use();
68
179
  });
69
180
  }
181
+ /**
182
+ * Registers the HTTP server with the container as a singleton
183
+ *
184
+ * Creates a singleton binding for the HTTP server that handles
185
+ * incoming requests, with dependencies on encryption, emitter,
186
+ * logger, and HTTP configuration.
187
+ *
188
+ * @example
189
+ * const server = await container.make('server')
190
+ * server.start()
191
+ */
70
192
  registerServer() {
71
193
  this.app.container.singleton(main_exports.Server, async (resolver) => {
72
194
  const encryption = await resolver.make(Encryption);
@@ -77,17 +199,49 @@ var AppServiceProvider = class {
77
199
  });
78
200
  this.app.container.alias("server", main_exports.Server);
79
201
  }
202
+ /**
203
+ * Registers router with the container as a singleton
204
+ *
205
+ * Creates a singleton binding for the router by getting it from
206
+ * the HTTP server instance. The router handles URL routing.
207
+ *
208
+ * @example
209
+ * const router = await container.make('router')
210
+ * router.get('/', ({ response }) => response.send('Hello'))
211
+ */
80
212
  registerRouter() {
81
213
  this.app.container.singleton(main_exports.Router, async (resolver) => {
82
214
  return (await resolver.make("server")).getRouter();
83
215
  });
84
216
  this.app.container.alias("router", main_exports.Router);
85
217
  }
218
+ /**
219
+ * Self construct bodyparser middleware class, since it needs
220
+ * config that cannot be resolved by the container
221
+ *
222
+ * Binds the BodyParserMiddleware with bodyparser configuration
223
+ * and experimental flags for parsing request bodies.
224
+ *
225
+ * @example
226
+ * const middleware = await container.make(BodyParserMiddleware)
227
+ * await middleware.handle(ctx, next)
228
+ */
86
229
  registerBodyParserMiddleware() {
87
230
  this.app.container.singleton(bodyparser_middleware_default, () => {
88
231
  return new bodyparser_middleware_default(this.app.config.get("bodyparser"), this.app.experimentalFlags);
89
232
  });
90
233
  }
234
+ /**
235
+ * Registeres singleton instance of the "Dumper" module configured
236
+ * via the "config/app.ts" file.
237
+ *
238
+ * The dumper is used for debugging and variable inspection with
239
+ * configurable HTML and console output formats.
240
+ *
241
+ * @example
242
+ * const dumper = await container.make('dumper')
243
+ * dumper.dump({ user: { name: 'John' } })
244
+ */
91
245
  registerDumper() {
92
246
  this.app.container.singleton(Dumper, async () => {
93
247
  const config = this.app.config.get("app.dumper", {});
@@ -98,6 +252,20 @@ var AppServiceProvider = class {
98
252
  });
99
253
  this.app.container.alias("dumper", Dumper);
100
254
  }
255
+ /**
256
+ * Generates TypeScript type definitions and JSON representation of routes
257
+ *
258
+ * Creates route type definitions for better IDE support and a JSON file
259
+ * containing all registered routes. This is used in development mode for
260
+ * tooling integration and type-safety.
261
+ *
262
+ * @param router - The router instance containing registered routes
263
+ *
264
+ * @example
265
+ * const router = await container.make('router')
266
+ * await this.emitRoutes(router)
267
+ * // Generates .adonisjs/server/routes.d.ts and routes.json
268
+ */
101
269
  async emitRoutes(router) {
102
270
  try {
103
271
  const { routes, imports, types } = router.generateTypes(2);
@@ -126,6 +294,16 @@ var AppServiceProvider = class {
126
294
  console.error(error);
127
295
  }
128
296
  }
297
+ /**
298
+ * Registers bindings
299
+ *
300
+ * Called during the application bootstrap phase to register
301
+ * all core service bindings with the IoC container.
302
+ *
303
+ * @example
304
+ * const provider = new AppServiceProvider(app)
305
+ * provider.register() // Registers all core services
306
+ */
129
307
  register() {
130
308
  this.registerApp();
131
309
  this.registerAce();
@@ -140,9 +318,29 @@ var AppServiceProvider = class {
140
318
  this.registerRouter();
141
319
  this.registerBodyParserMiddleware();
142
320
  }
321
+ /**
322
+ * Boot the service provider
323
+ *
324
+ * Called after all providers have been registered. Sets up
325
+ * event emitter for BaseEvent and adds transform macro to HttpContext.
326
+ *
327
+ * @example
328
+ * await provider.boot()
329
+ * // Now HttpContext has transform method available
330
+ */
143
331
  async boot() {
144
332
  events_exports.BaseEvent.useEmitter(await this.app.container.make("emitter"));
145
333
  }
334
+ /**
335
+ * Called when the application is ready
336
+ *
337
+ * In non-production environments, generates route types and
338
+ * JSON files for development tooling when router is committed.
339
+ *
340
+ * @example
341
+ * await provider.ready()
342
+ * // Route types and JSON generated in development
343
+ */
146
344
  async ready() {
147
345
  if (!this.app.inProduction) {
148
346
  const router = await this.app.container.make("router");
@@ -150,4 +348,5 @@ var AppServiceProvider = class {
150
348
  }
151
349
  }
152
350
  };
351
+ //#endregion
153
352
  export { AppServiceProvider as default };