@c9up/ream 0.1.33 → 0.2.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 (215) hide show
  1. package/dist/Application.d.ts +68 -0
  2. package/dist/Application.d.ts.map +1 -1
  3. package/dist/Application.js +142 -6
  4. package/dist/Application.js.map +1 -1
  5. package/dist/ConfigLoader.d.ts +4 -0
  6. package/dist/ConfigLoader.d.ts.map +1 -1
  7. package/dist/ConfigLoader.js +0 -8
  8. package/dist/ConfigLoader.js.map +1 -1
  9. package/dist/HealthCheck.d.ts +14 -7
  10. package/dist/HealthCheck.d.ts.map +1 -1
  11. package/dist/HealthCheck.js +21 -12
  12. package/dist/HealthCheck.js.map +1 -1
  13. package/dist/HttpKernel.d.ts +12 -0
  14. package/dist/HttpKernel.d.ts.map +1 -1
  15. package/dist/HttpKernel.js +15 -4
  16. package/dist/HttpKernel.js.map +1 -1
  17. package/dist/Ignitor.d.ts +8 -0
  18. package/dist/Ignitor.d.ts.map +1 -1
  19. package/dist/Ignitor.js +11 -0
  20. package/dist/Ignitor.js.map +1 -1
  21. package/dist/bodyparser/BodyParserMiddleware.d.ts +13 -2
  22. package/dist/bodyparser/BodyParserMiddleware.d.ts.map +1 -1
  23. package/dist/bodyparser/BodyParserMiddleware.js +50 -30
  24. package/dist/bodyparser/BodyParserMiddleware.js.map +1 -1
  25. package/dist/bodyparser/MultipartFile.d.ts +65 -6
  26. package/dist/bodyparser/MultipartFile.d.ts.map +1 -1
  27. package/dist/bodyparser/MultipartFile.js +100 -7
  28. package/dist/bodyparser/MultipartFile.js.map +1 -1
  29. package/dist/console/BaseCommand.d.ts +8 -1
  30. package/dist/console/BaseCommand.d.ts.map +1 -1
  31. package/dist/console/BaseCommand.js +1 -1
  32. package/dist/console/BaseCommand.js.map +1 -1
  33. package/dist/console/Kernel.d.ts +15 -0
  34. package/dist/console/Kernel.d.ts.map +1 -1
  35. package/dist/console/Kernel.js +17 -0
  36. package/dist/console/Kernel.js.map +1 -1
  37. package/dist/directories.d.ts +52 -0
  38. package/dist/directories.d.ts.map +1 -0
  39. package/dist/directories.js +38 -0
  40. package/dist/directories.js.map +1 -0
  41. package/dist/events/Emitter.d.ts +49 -6
  42. package/dist/events/Emitter.d.ts.map +1 -1
  43. package/dist/events/Emitter.js +117 -7
  44. package/dist/events/Emitter.js.map +1 -1
  45. package/dist/events/EventsBuffer.d.ts +47 -0
  46. package/dist/events/EventsBuffer.d.ts.map +1 -0
  47. package/dist/events/EventsBuffer.js +107 -0
  48. package/dist/events/EventsBuffer.js.map +1 -0
  49. package/dist/events/index.d.ts +2 -0
  50. package/dist/events/index.d.ts.map +1 -1
  51. package/dist/events/index.js +1 -0
  52. package/dist/events/index.js.map +1 -1
  53. package/dist/health/BaseCheck.d.ts +19 -0
  54. package/dist/health/BaseCheck.d.ts.map +1 -0
  55. package/dist/health/BaseCheck.js +24 -0
  56. package/dist/health/BaseCheck.js.map +1 -0
  57. package/dist/health/HealthChecks.d.ts +15 -0
  58. package/dist/health/HealthChecks.d.ts.map +1 -0
  59. package/dist/health/HealthChecks.js +69 -0
  60. package/dist/health/HealthChecks.js.map +1 -0
  61. package/dist/health/Result.d.ts +27 -0
  62. package/dist/health/Result.d.ts.map +1 -0
  63. package/dist/health/Result.js +55 -0
  64. package/dist/health/Result.js.map +1 -0
  65. package/dist/health/checks/DiskSpaceCheck.d.ts +29 -0
  66. package/dist/health/checks/DiskSpaceCheck.d.ts.map +1 -0
  67. package/dist/health/checks/DiskSpaceCheck.js +58 -0
  68. package/dist/health/checks/DiskSpaceCheck.js.map +1 -0
  69. package/dist/health/checks/MemoryHeapCheck.d.ts +21 -0
  70. package/dist/health/checks/MemoryHeapCheck.d.ts.map +1 -0
  71. package/dist/health/checks/MemoryHeapCheck.js +55 -0
  72. package/dist/health/checks/MemoryHeapCheck.js.map +1 -0
  73. package/dist/health/checks/MemoryRSSCheck.d.ts +21 -0
  74. package/dist/health/checks/MemoryRSSCheck.d.ts.map +1 -0
  75. package/dist/health/checks/MemoryRSSCheck.js +55 -0
  76. package/dist/health/checks/MemoryRSSCheck.js.map +1 -0
  77. package/dist/health/checks/memory.d.ts +24 -0
  78. package/dist/health/checks/memory.d.ts.map +1 -0
  79. package/dist/health/checks/memory.js +88 -0
  80. package/dist/health/checks/memory.js.map +1 -0
  81. package/dist/health/index.d.ts +9 -0
  82. package/dist/health/index.d.ts.map +1 -0
  83. package/dist/health/index.js +8 -0
  84. package/dist/health/index.js.map +1 -0
  85. package/dist/health/tracing.d.ts +12 -0
  86. package/dist/health/tracing.d.ts.map +1 -0
  87. package/dist/health/tracing.js +11 -0
  88. package/dist/health/tracing.js.map +1 -0
  89. package/dist/health/types.d.ts +51 -0
  90. package/dist/health/types.d.ts.map +1 -0
  91. package/dist/health/types.js +5 -0
  92. package/dist/health/types.js.map +1 -0
  93. package/dist/helpers/bytes.d.ts +28 -0
  94. package/dist/helpers/bytes.d.ts.map +1 -0
  95. package/dist/helpers/bytes.js +63 -0
  96. package/dist/helpers/bytes.js.map +1 -0
  97. package/dist/helpers/string.d.ts +4 -0
  98. package/dist/helpers/string.d.ts.map +1 -1
  99. package/dist/helpers/string.js +2 -0
  100. package/dist/helpers/string.js.map +1 -1
  101. package/dist/http/HttpContext.d.ts +38 -2
  102. package/dist/http/HttpContext.d.ts.map +1 -1
  103. package/dist/http/HttpContext.js +81 -3
  104. package/dist/http/HttpContext.js.map +1 -1
  105. package/dist/http/Request.d.ts +57 -3
  106. package/dist/http/Request.d.ts.map +1 -1
  107. package/dist/http/Request.js +51 -38
  108. package/dist/http/Request.js.map +1 -1
  109. package/dist/http/Response.d.ts +82 -2
  110. package/dist/http/Response.d.ts.map +1 -1
  111. package/dist/http/Response.js +240 -13
  112. package/dist/http/Response.js.map +1 -1
  113. package/dist/http/SseStream.d.ts +10 -0
  114. package/dist/http/SseStream.d.ts.map +1 -1
  115. package/dist/http/SseStream.js.map +1 -1
  116. package/dist/index.d.ts +7 -2
  117. package/dist/index.d.ts.map +1 -1
  118. package/dist/index.js +4 -1
  119. package/dist/index.js.map +1 -1
  120. package/dist/migrations/MigrationRegistry.d.ts +28 -0
  121. package/dist/migrations/MigrationRegistry.d.ts.map +1 -0
  122. package/dist/migrations/MigrationRegistry.js +41 -0
  123. package/dist/migrations/MigrationRegistry.js.map +1 -0
  124. package/dist/migrations/types.d.ts +64 -0
  125. package/dist/migrations/types.d.ts.map +1 -0
  126. package/dist/migrations/types.js +15 -0
  127. package/dist/migrations/types.js.map +1 -0
  128. package/dist/router/Router.d.ts +112 -9
  129. package/dist/router/Router.d.ts.map +1 -1
  130. package/dist/router/Router.js +206 -28
  131. package/dist/router/Router.js.map +1 -1
  132. package/dist/security/CookieSigner.d.ts +43 -4
  133. package/dist/security/CookieSigner.d.ts.map +1 -1
  134. package/dist/security/CookieSigner.js +68 -10
  135. package/dist/security/CookieSigner.js.map +1 -1
  136. package/dist/session/Session.d.ts +46 -1
  137. package/dist/session/Session.d.ts.map +1 -1
  138. package/dist/session/Session.js +57 -4
  139. package/dist/session/Session.js.map +1 -1
  140. package/dist/session/SessionMiddleware.d.ts.map +1 -1
  141. package/dist/session/SessionMiddleware.js +19 -9
  142. package/dist/session/SessionMiddleware.js.map +1 -1
  143. package/dist/session/drivers/CookieDriver.d.ts +1 -1
  144. package/dist/session/drivers/CookieDriver.d.ts.map +1 -1
  145. package/dist/session/drivers/CookieDriver.js +3 -3
  146. package/dist/session/drivers/CookieDriver.js.map +1 -1
  147. package/dist/session/drivers/DatabaseDriver.d.ts +1 -1
  148. package/dist/session/drivers/DatabaseDriver.d.ts.map +1 -1
  149. package/dist/session/drivers/DatabaseDriver.js +2 -2
  150. package/dist/session/drivers/DatabaseDriver.js.map +1 -1
  151. package/dist/session/drivers/FileDriver.d.ts +1 -1
  152. package/dist/session/drivers/FileDriver.d.ts.map +1 -1
  153. package/dist/session/drivers/FileDriver.js +7 -5
  154. package/dist/session/drivers/FileDriver.js.map +1 -1
  155. package/dist/session/drivers/MemoryDriver.d.ts +1 -1
  156. package/dist/session/drivers/MemoryDriver.d.ts.map +1 -1
  157. package/dist/session/drivers/MemoryDriver.js +1 -1
  158. package/dist/session/drivers/MemoryDriver.js.map +1 -1
  159. package/dist/session/drivers/RedisDriver.d.ts +1 -1
  160. package/dist/session/drivers/RedisDriver.d.ts.map +1 -1
  161. package/dist/session/drivers/RedisDriver.js +11 -4
  162. package/dist/session/drivers/RedisDriver.js.map +1 -1
  163. package/events.win32-x64-msvc.node +0 -0
  164. package/index.darwin-arm64.node +0 -0
  165. package/index.darwin-x64.node +0 -0
  166. package/index.linux-arm64-gnu.node +0 -0
  167. package/index.linux-x64-gnu.node +0 -0
  168. package/index.win32-x64-msvc.node +0 -0
  169. package/package.json +5 -2
  170. package/scheduler.win32-x64-msvc.node +0 -0
  171. package/src/Application.ts +169 -6
  172. package/src/ConfigLoader.ts +6 -0
  173. package/src/HealthCheck.ts +27 -14
  174. package/src/HttpKernel.ts +27 -4
  175. package/src/Ignitor.ts +17 -0
  176. package/src/bodyparser/BodyParserMiddleware.ts +70 -36
  177. package/src/bodyparser/MultipartFile.ts +125 -8
  178. package/src/console/BaseCommand.ts +8 -1
  179. package/src/console/Kernel.ts +18 -0
  180. package/src/directories.ts +81 -0
  181. package/src/events/Emitter.ts +129 -13
  182. package/src/events/EventsBuffer.ts +131 -0
  183. package/src/events/index.ts +7 -0
  184. package/src/health/BaseCheck.ts +30 -0
  185. package/src/health/HealthChecks.ts +83 -0
  186. package/src/health/Result.ts +69 -0
  187. package/src/health/checks/DiskSpaceCheck.ts +69 -0
  188. package/src/health/checks/MemoryHeapCheck.ts +68 -0
  189. package/src/health/checks/MemoryRSSCheck.ts +68 -0
  190. package/src/health/checks/memory.ts +115 -0
  191. package/src/health/index.ts +13 -0
  192. package/src/health/tracing.ts +15 -0
  193. package/src/health/types.ts +51 -0
  194. package/src/helpers/bytes.ts +71 -0
  195. package/src/helpers/string.ts +2 -0
  196. package/src/http/HttpContext.ts +86 -4
  197. package/src/http/Request.ts +82 -10
  198. package/src/http/Response.ts +283 -14
  199. package/src/http/SseStream.ts +10 -0
  200. package/src/index.ts +27 -1
  201. package/src/migrations/MigrationRegistry.ts +49 -0
  202. package/src/migrations/types.ts +68 -0
  203. package/src/router/Router.ts +241 -32
  204. package/src/security/CookieSigner.ts +92 -18
  205. package/src/session/Session.ts +71 -5
  206. package/src/session/SessionMiddleware.ts +19 -9
  207. package/src/session/drivers/CookieDriver.ts +4 -4
  208. package/src/session/drivers/DatabaseDriver.ts +3 -3
  209. package/src/session/drivers/FileDriver.ts +8 -6
  210. package/src/session/drivers/MemoryDriver.ts +2 -2
  211. package/src/session/drivers/RedisDriver.ts +12 -5
  212. package/tsconfig.app.json +13 -13
  213. package/tsconfig.base.json +19 -0
  214. package/tsconfig.client.json +16 -0
  215. package/tsconfig.package.json +15 -0
@@ -14,6 +14,7 @@
14
14
  */
15
15
  import { ConfigStore } from './ConfigLoader.js';
16
16
  import { Container } from './container/Container.js';
17
+ import { type DirectoriesNode } from './directories.js';
17
18
  import type { AppContext, ProviderContract } from './Provider.js';
18
19
  /**
19
20
  * How far the app intends to go in its lifecycle.
@@ -58,6 +59,29 @@ export declare class Application implements AppContext {
58
59
  get appRoot(): URL | undefined;
59
60
  /** Absolute path to a file/dir inside the project root. */
60
61
  makePath(...paths: string[]): string;
62
+ /**
63
+ * A URL to a file/dir inside the project root, where {@link makePath} gives
64
+ * a path. What an importer wants.
65
+ */
66
+ makeURL(...paths: string[]): URL;
67
+ /** Turn an absolute path back into one relative to the project root. */
68
+ relativePath(absolutePath: string): string;
69
+ /**
70
+ * The conventional directory layout, `reamrc.ts` overrides merged over the
71
+ * defaults. Every helper below reads it, so moving a directory is declared
72
+ * once.
73
+ */
74
+ get directories(): DirectoriesNode;
75
+ /**
76
+ * Feed the loaded rc file to the application (AdonisJS `rcContents`).
77
+ *
78
+ * Today it reads one key, `directories`, merged over the defaults; the rest
79
+ * of the rc file is consumed by the Ignitor and the CLI, which own providers,
80
+ * preloads, commands and test suites.
81
+ */
82
+ rcContents(value: {
83
+ directories?: Partial<DirectoriesNode>;
84
+ }): this;
61
85
  /** Absolute path inside the `config/` directory. */
62
86
  configPath(...paths: string[]): string;
63
87
  /** Absolute path inside the `database/migrations/` directory. */
@@ -66,6 +90,50 @@ export declare class Application implements AppContext {
66
90
  tmpPath(...paths: string[]): string;
67
91
  /** Absolute path inside the `public/` directory. */
68
92
  publicPath(...paths: string[]): string;
93
+ /** Absolute path inside the `providers/` directory. */
94
+ providersPath(...paths: string[]): string;
95
+ /** Absolute path inside the `database/factories/` directory. */
96
+ factoriesPath(...paths: string[]): string;
97
+ /** Absolute path inside the `database/seeders/` directory. */
98
+ seedersPath(...paths: string[]): string;
99
+ /** Absolute path inside the `resources/lang/` directory. */
100
+ languageFilesPath(...paths: string[]): string;
101
+ /** Absolute path inside the `resources/views/` directory. */
102
+ viewsPath(...paths: string[]): string;
103
+ /** Absolute path inside the `start/` directory. */
104
+ startPath(...paths: string[]): string;
105
+ /** Absolute path inside the `contracts/` directory. */
106
+ contractsPath(...paths: string[]): string;
107
+ /** Absolute path inside the `app/controllers/` directory. */
108
+ httpControllersPath(...paths: string[]): string;
109
+ /** Absolute path inside the `app/models/` directory. */
110
+ modelsPath(...paths: string[]): string;
111
+ /** Absolute path inside the `app/services/` directory. */
112
+ servicesPath(...paths: string[]): string;
113
+ /** Absolute path inside the `app/exceptions/` directory. */
114
+ exceptionsPath(...paths: string[]): string;
115
+ /** Absolute path inside the `app/mailers/` directory. */
116
+ mailersPath(...paths: string[]): string;
117
+ /** Absolute path inside the `app/mails/` directory. */
118
+ mailsPath(...paths: string[]): string;
119
+ /** Absolute path inside the `app/middleware/` directory. */
120
+ middlewarePath(...paths: string[]): string;
121
+ /** Absolute path inside the `app/policies/` directory. */
122
+ policiesPath(...paths: string[]): string;
123
+ /** Absolute path inside the `app/validators/` directory. */
124
+ validatorsPath(...paths: string[]): string;
125
+ /** Absolute path inside the `commands/` directory. */
126
+ commandsPath(...paths: string[]): string;
127
+ /** Absolute path inside the `app/events/` directory. */
128
+ eventsPath(...paths: string[]): string;
129
+ /** Absolute path inside the `app/listeners/` directory. */
130
+ listenersPath(...paths: string[]): string;
131
+ /** Absolute path inside the `app/transformers/` directory. */
132
+ transformersPath(...paths: string[]): string;
133
+ /** Absolute path inside the generated-client directory (`.ream/client`). */
134
+ generatedClientPath(...paths: string[]): string;
135
+ /** Absolute path inside the generated-server directory (`.ream/server`). */
136
+ generatedServerPath(...paths: string[]): string;
69
137
  /** Check if running in production. */
70
138
  get inProduction(): boolean;
71
139
  /** Check if running in development. */
@@ -1 +1 @@
1
- {"version":3,"file":"Application.d.ts","sourceRoot":"","sources":["../src/Application.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAGjE;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,QAAQ,CAAA;AAE9C,qBAAa,WAAY,YAAW,UAAU;;IAC5C,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;IAE5B,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,OAAO,CAAQ;IAEvB,OAAO,CAAC,aAAa,CAAwC;IAC7D,OAAO,CAAC,YAAY,CAAwC;IAC5D,OAAO,CAAC,cAAc,CAAwC;;IAO9D;;;;;;;;;;;;OAYG;IACH,OAAO,IAAI,eAAe;IAI1B;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;IAcpC,4EAA4E;IAC5E,UAAU,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IAI3B,6EAA6E;IAC7E,IAAI,OAAO,IAAI,GAAG,GAAG,SAAS,CAE7B;IAED,2DAA2D;IAC3D,QAAQ,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IASpC,oDAAoD;IACpD,UAAU,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAItC,iEAAiE;IACjE,cAAc,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAI1C,iDAAiD;IACjD,OAAO,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAInC,oDAAoD;IACpD,UAAU,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAMtC,sCAAsC;IACtC,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,uCAAuC;IACvC,IAAI,KAAK,IAAI,OAAO,CAGnB;IAED,qCAAqC;IACrC,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,+BAA+B;IAC/B,IAAI,YAAY,IAAI,OAAO,CAE1B;IAID;;;OAGG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;IAInD;;;OAGG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;IAsBlD;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAK1D;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAMhF;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAOhC,oCAAoC;IACpC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAO1C,gEAAgE;IAC1D,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB3B;;;;OAIG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAgC/B,gCAAgC;IAChC,UAAU,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;IAItD,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;CACF"}
1
+ {"version":3,"file":"Application.d.ts","sourceRoot":"","sources":["../src/Application.ts"],"names":[],"mappings":"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"}
@@ -12,15 +12,17 @@
12
12
  *
13
13
  * @implements FR17, FR20
14
14
  */
15
- import { join } from 'node:path';
15
+ import { join, relative } from 'node:path';
16
16
  import { fileURLToPath } from 'node:url';
17
17
  import { ConfigStore } from './ConfigLoader.js';
18
18
  import { Container } from './container/Container.js';
19
+ import { directories as defaultDirectories } from './directories.js';
19
20
  import { callProviderPhase } from './Provider.js';
20
21
  export class Application {
21
22
  container;
22
23
  config;
23
24
  #appRoot;
25
+ #directories = { ...defaultDirectories };
24
26
  providers = [];
25
27
  _booted = false;
26
28
  #mode = 'run';
@@ -74,26 +76,160 @@ export class Application {
74
76
  }
75
77
  /** Absolute path to a file/dir inside the project root. */
76
78
  makePath(...paths) {
79
+ return join(fileURLToPath(this.#requireAppRoot()), ...paths);
80
+ }
81
+ /**
82
+ * A URL to a file/dir inside the project root, where {@link makePath} gives
83
+ * a path. What an importer wants.
84
+ */
85
+ makeURL(...paths) {
86
+ // Joined with '/', not `path.join`: a URL keeps forward slashes on every
87
+ // platform, and `join` would hand Windows a backslash-separated href.
88
+ return new URL(paths.join('/'), this.#requireAppRoot());
89
+ }
90
+ /** Turn an absolute path back into one relative to the project root. */
91
+ relativePath(absolutePath) {
92
+ return relative(fileURLToPath(this.#requireAppRoot()), absolutePath);
93
+ }
94
+ #requireAppRoot() {
77
95
  if (!this.#appRoot) {
78
96
  throw new Error('Application.makePath: app root is not set — construct the Ignitor with `new Ignitor(new URL("../", import.meta.url))`.');
79
97
  }
80
- return join(fileURLToPath(this.#appRoot), ...paths);
98
+ return this.#appRoot;
99
+ }
100
+ /**
101
+ * The conventional directory layout, `reamrc.ts` overrides merged over the
102
+ * defaults. Every helper below reads it, so moving a directory is declared
103
+ * once.
104
+ */
105
+ get directories() {
106
+ return this.#directories;
107
+ }
108
+ /**
109
+ * Feed the loaded rc file to the application (AdonisJS `rcContents`).
110
+ *
111
+ * Today it reads one key, `directories`, merged over the defaults; the rest
112
+ * of the rc file is consumed by the Ignitor and the CLI, which own providers,
113
+ * preloads, commands and test suites.
114
+ */
115
+ rcContents(value) {
116
+ if (value.directories) {
117
+ // Skip the undefined entries a `Partial` may carry: spreading them would
118
+ // blank a default rather than leave it alone.
119
+ for (const [key, path] of Object.entries(value.directories)) {
120
+ if (path !== undefined)
121
+ this.#directories[key] = path;
122
+ }
123
+ }
124
+ return this;
125
+ }
126
+ /** Resolve inside one of the conventional directories. */
127
+ #inDirectory(key, paths) {
128
+ return this.makePath(this.#directories[key], ...paths);
81
129
  }
82
130
  /** Absolute path inside the `config/` directory. */
83
131
  configPath(...paths) {
84
- return this.makePath('config', ...paths);
132
+ return this.#inDirectory('config', paths);
85
133
  }
86
134
  /** Absolute path inside the `database/migrations/` directory. */
87
135
  migrationsPath(...paths) {
88
- return this.makePath('database', 'migrations', ...paths);
136
+ return this.#inDirectory('migrations', paths);
89
137
  }
90
138
  /** Absolute path inside the `tmp/` directory. */
91
139
  tmpPath(...paths) {
92
- return this.makePath('tmp', ...paths);
140
+ return this.#inDirectory('tmp', paths);
93
141
  }
94
142
  /** Absolute path inside the `public/` directory. */
95
143
  publicPath(...paths) {
96
- return this.makePath('public', ...paths);
144
+ return this.#inDirectory('public', paths);
145
+ }
146
+ /** Absolute path inside the `providers/` directory. */
147
+ providersPath(...paths) {
148
+ return this.#inDirectory('providers', paths);
149
+ }
150
+ /** Absolute path inside the `database/factories/` directory. */
151
+ factoriesPath(...paths) {
152
+ return this.#inDirectory('factories', paths);
153
+ }
154
+ /** Absolute path inside the `database/seeders/` directory. */
155
+ seedersPath(...paths) {
156
+ return this.#inDirectory('seeders', paths);
157
+ }
158
+ /** Absolute path inside the `resources/lang/` directory. */
159
+ languageFilesPath(...paths) {
160
+ return this.#inDirectory('languageFiles', paths);
161
+ }
162
+ /** Absolute path inside the `resources/views/` directory. */
163
+ viewsPath(...paths) {
164
+ return this.#inDirectory('views', paths);
165
+ }
166
+ /** Absolute path inside the `start/` directory. */
167
+ startPath(...paths) {
168
+ return this.#inDirectory('start', paths);
169
+ }
170
+ /** Absolute path inside the `contracts/` directory. */
171
+ contractsPath(...paths) {
172
+ return this.#inDirectory('contracts', paths);
173
+ }
174
+ /** Absolute path inside the `app/controllers/` directory. */
175
+ httpControllersPath(...paths) {
176
+ return this.#inDirectory('httpControllers', paths);
177
+ }
178
+ /** Absolute path inside the `app/models/` directory. */
179
+ modelsPath(...paths) {
180
+ return this.#inDirectory('models', paths);
181
+ }
182
+ /** Absolute path inside the `app/services/` directory. */
183
+ servicesPath(...paths) {
184
+ return this.#inDirectory('services', paths);
185
+ }
186
+ /** Absolute path inside the `app/exceptions/` directory. */
187
+ exceptionsPath(...paths) {
188
+ return this.#inDirectory('exceptions', paths);
189
+ }
190
+ /** Absolute path inside the `app/mailers/` directory. */
191
+ mailersPath(...paths) {
192
+ return this.#inDirectory('mailers', paths);
193
+ }
194
+ /** Absolute path inside the `app/mails/` directory. */
195
+ mailsPath(...paths) {
196
+ return this.#inDirectory('mails', paths);
197
+ }
198
+ /** Absolute path inside the `app/middleware/` directory. */
199
+ middlewarePath(...paths) {
200
+ return this.#inDirectory('middleware', paths);
201
+ }
202
+ /** Absolute path inside the `app/policies/` directory. */
203
+ policiesPath(...paths) {
204
+ return this.#inDirectory('policies', paths);
205
+ }
206
+ /** Absolute path inside the `app/validators/` directory. */
207
+ validatorsPath(...paths) {
208
+ return this.#inDirectory('validators', paths);
209
+ }
210
+ /** Absolute path inside the `commands/` directory. */
211
+ commandsPath(...paths) {
212
+ return this.#inDirectory('commands', paths);
213
+ }
214
+ /** Absolute path inside the `app/events/` directory. */
215
+ eventsPath(...paths) {
216
+ return this.#inDirectory('events', paths);
217
+ }
218
+ /** Absolute path inside the `app/listeners/` directory. */
219
+ listenersPath(...paths) {
220
+ return this.#inDirectory('listeners', paths);
221
+ }
222
+ /** Absolute path inside the `app/transformers/` directory. */
223
+ transformersPath(...paths) {
224
+ return this.#inDirectory('transformers', paths);
225
+ }
226
+ /** Absolute path inside the generated-client directory (`.ream/client`). */
227
+ generatedClientPath(...paths) {
228
+ return this.#inDirectory('generatedClient', paths);
229
+ }
230
+ /** Absolute path inside the generated-server directory (`.ream/server`). */
231
+ generatedServerPath(...paths) {
232
+ return this.#inDirectory('generatedServer', paths);
97
233
  }
98
234
  // ─── Environment ──────────────────────────────────────────
99
235
  /** Check if running in production. */
@@ -1 +1 @@
1
- {"version":3,"file":"Application.js","sourceRoot":"","sources":["../src/Application.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAUjD,MAAM,OAAO,WAAW;IACb,SAAS,CAAW;IACpB,MAAM,CAAa;IAC5B,QAAQ,CAAM;IACN,SAAS,GAAuB,EAAE,CAAA;IAClC,OAAO,GAAG,KAAK,CAAA;IACvB,KAAK,GAAoB,KAAK,CAAA;IACtB,aAAa,GAAsC,EAAE,CAAA;IACrD,YAAY,GAAsC,EAAE,CAAA;IACpD,cAAc,GAAsC,EAAE,CAAA;IAE9D;QACE,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,EAAE,CAAA;QAChC,IAAI,CAAC,MAAM,GAAG,IAAI,WAAW,EAAE,CAAA;IACjC,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,IAAqB;QAC3B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,4CAA4C,CAAC,CAAA;QACxF,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,6DAA6D;IAC7D,2EAA2E;IAC3E,8EAA8E;IAC9E,6EAA6E;IAC7E,iEAAiE;IAEjE,4EAA4E;IAC5E,UAAU,CAAC,IAAS;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;IACtB,CAAC;IAED,6EAA6E;IAC7E,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IAED,2DAA2D;IAC3D,QAAQ,CAAC,GAAG,KAAe;QACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,wHAAwH,CACzH,CAAA;QACH,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,CAAC,CAAA;IACrD,CAAC;IAED,oDAAoD;IACpD,UAAU,CAAC,GAAG,KAAe;QAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,CAAA;IAC1C,CAAC;IAED,iEAAiE;IACjE,cAAc,CAAC,GAAG,KAAe;QAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC,CAAA;IAC1D,CAAC;IAED,iDAAiD;IACjD,OAAO,CAAC,GAAG,KAAe;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,CAAA;IACvC,CAAC;IAED,oDAAoD;IACpD,UAAU,CAAC,GAAG,KAAe;QAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,CAAA;IAC1C,CAAC;IAED,6DAA6D;IAE7D,sCAAsC;IACtC,IAAI,YAAY;QACd,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAA;IAC9C,CAAC;IAED,uCAAuC;IACvC,IAAI,KAAK;QACP,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAA;QAChC,OAAO,GAAG,KAAK,YAAY,IAAI,GAAG,KAAK,MAAM,CAAA;IAC/C,CAAC;IAED,qCAAqC;IACrC,IAAI,MAAM;QACR,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAA;IACxC,CAAC;IAED,+BAA+B;IAC/B,IAAI,YAAY;QACd,OAAO,UAAU,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,IAAI,OAAO,CAAC,GAAG,CAAA;IAC5D,CAAC;IAED,6DAA6D;IAE7D;;;OAGG;IACH,OAAO,CAAC,QAAoC;QAC1C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACnC,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,QAAoC;QACzC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,iEAAiE;YACjE,6DAA6D;YAC7D,4DAA4D;YAC5D,iEAAiE;YACjE,+BAA+B;YAC/B,OAAO,CAAC,OAAO,EAAE;iBACd,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;iBACtB,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,GAAG,IAAI,CAAC,CAAA;YAClE,CAAC,CAAC,CAAA;YACJ,OAAM;QACR,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAClC,CAAC;IAED,6DAA6D;IAE7D,8EAA8E;IAC9E,eAAe,GAAwC,EAAE,CAAA;IAEzD;;;;;;OAMG;IACH,MAAM,CAAC,MAAsB,EAAE,QAAoB;QACjD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAA;QAC7C,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC9B,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,SAAkB,EAAE,MAAsB,EAAE,QAAoB;QACvE,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,SAAS;QACb,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAA;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,6DAA6D;IAE7D,oCAAoC;IACpC,QAAQ,CAAC,QAA0B;QACjC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC7B,IAAI,OAAO,QAAQ,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;YAC5C,QAAQ,CAAC,QAAQ,EAAE,CAAA;QACrB,CAAC;IACH,CAAC;IAED,gEAAgE;IAChE,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,OAAO;YAAE,OAAM;QAExB,oBAAoB;QACpB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACtC,MAAM,IAAI,EAAE,CAAA;QACd,CAAC;QAED,iEAAiE;QACjE,mEAAmE;QACnE,iCAAiC;QACjC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAC3C,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QAEnB,mBAAmB;QACnB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACrC,MAAM,IAAI,EAAE,CAAA;QACd,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ;QACZ,MAAM,MAAM,GAAc,EAAE,CAAA;QAE5B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACvC,IAAI,CAAC;gBACH,MAAM,IAAI,EAAE,CAAA;YACd,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAClB,CAAC;QACH,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YACrD,IAAI,CAAC;gBACH,MAAM,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;YAC/C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAClB,CAAC;QACH,CAAC;QAED,yDAAyD;QACzD,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAC/B,CAAC;QACD,IAAI,CAAC,eAAe,GAAG,EAAE,CAAA;QAEzB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,MAAM,CAAC,CAAC,CAAC,CAAA;QACxC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,cAAc,CAAC,MAAM,EAAE,8CAA8C,CAAC,CAAA;QAClF,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,UAAU,CAAC,QAAoC;QAC7C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACpC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAA;IAC9B,CAAC;CACF"}
1
+ {"version":3,"file":"Application.js","sourceRoot":"","sources":["../src/Application.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,8 @@ export declare class ConfigStore {
20
20
  * Read a value by dot-notation key, returning `defaultValue` when the path
21
21
  * is absent or resolves to `undefined` (AdonisJS `config.get`).
22
22
  */
23
+ get<T = unknown>(key: string): T | undefined;
24
+ get<T = unknown>(key: string, defaultValue: T): T;
23
25
  get<T = unknown>(key: string, defaultValue?: T): T | undefined;
24
26
  /** Set a value by dot-notation key, creating intermediate objects. */
25
27
  set(key: string, value: unknown): void;
@@ -43,6 +45,8 @@ export declare class ConfigStore {
43
45
  * Read an environment variable with optional default.
44
46
  * @implements FR19
45
47
  */
48
+ export declare function env(key: string): string | undefined;
49
+ export declare function env(key: string, defaultValue: string): string;
46
50
  export declare function env(key: string, defaultValue?: string): string | undefined;
47
51
  /**
48
52
  * Define typed configuration for a module.
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigLoader.d.ts","sourceRoot":"","sources":["../src/ConfigLoader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;;;;;;;GAUG;AACH,qBAAa,WAAW;;IAGtB;;;OAGG;IACH,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAM9D,sEAAsE;IACtE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAItC,qEAAqE;IACrE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,oDAAoD;IACpD,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAI9B;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAK3C;;;;OAIG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAKtD;AAED;;;GAGG;AACH,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE1E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAElD;AAED,QAAA,MAAM,eAAe,eAAgC,CAAA;AAErD,6EAA6E;AAC7E,UAAU,oBAAoB,CAAC,CAAC;IAC9B,QAAQ,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;CAC7D;AAMD;;;;;GAKG;AACH,eAAO,MAAM,cAAc;IACzB,qEAAqE;WAC9D,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC;IAI9E,6EAA6E;YAC/D,CAAC,OAAO,OAAO,SAAS,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAG/E,CAAA"}
1
+ {"version":3,"file":"ConfigLoader.d.ts","sourceRoot":"","sources":["../src/ConfigLoader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;;;;;;;GAUG;AACH,qBAAa,WAAW;;IAGtB;;;OAGG;IACH,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAC5C,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC;IACjD,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAO9D,sEAAsE;IACtE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAItC,qEAAqE;IACrE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,oDAAoD;IACpD,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAI9B;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAK3C;;;;OAIG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAKtD;AAED;;;GAGG;AACH,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;AACpD,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAAA;AAC9D,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;AAK3E;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAElD;AAED,QAAA,MAAM,eAAe,eAAgC,CAAA;AAErD,6EAA6E;AAC7E,UAAU,oBAAoB,CAAC,CAAC;IAC9B,QAAQ,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;CAC7D;AAMD;;;;;GAKG;AACH,eAAO,MAAM,cAAc;IACzB,qEAAqE;WAC9D,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC;IAI9E,6EAA6E;YAC/D,CAAC,OAAO,OAAO,SAAS,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAG/E,CAAA"}
@@ -17,10 +17,6 @@ import { getPath, hasPath, mergeDeep, setPath } from './utils/objectPath.js';
17
17
  */
18
18
  export class ConfigStore {
19
19
  #tree = {};
20
- /**
21
- * Read a value by dot-notation key, returning `defaultValue` when the path
22
- * is absent or resolves to `undefined` (AdonisJS `config.get`).
23
- */
24
20
  get(key, defaultValue) {
25
21
  // Untyped store: the caller declares the shape it configured (same
26
22
  // contract as `@adonisjs/config`, whose `get<T>` returns the loose value).
@@ -57,10 +53,6 @@ export class ConfigStore {
57
53
  }
58
54
  }
59
55
  }
60
- /**
61
- * Read an environment variable with optional default.
62
- * @implements FR19
63
- */
64
56
  export function env(key, defaultValue) {
65
57
  return process.env[key] ?? defaultValue;
66
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigLoader.js","sourceRoot":"","sources":["../src/ConfigLoader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAE5E;;;;;;;;;;GAUG;AACH,MAAM,OAAO,WAAW;IACtB,KAAK,GAA4B,EAAE,CAAA;IAEnC;;;OAGG;IACH,GAAG,CAAc,GAAW,EAAE,YAAgB;QAC5C,mEAAmE;QACnE,2EAA2E;QAC3E,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,YAAY,CAAkB,CAAA;IAChE,CAAC;IAED,sEAAsE;IACtE,GAAG,CAAC,GAAW,EAAE,KAAc;QAC7B,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;IACjC,CAAC;IAED,qEAAqE;IACrE,GAAG,CAAC,GAAW;QACb,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IACjC,CAAC;IAED,oDAAoD;IACpD,GAAG;QACD,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,GAAW,EAAE,KAAc;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC9B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAA;IAC5E,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,MAA+B;QAC5C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACtB,CAAC;IACH,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,YAAqB;IACpD,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,YAAY,CAAA;AACzC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAI,MAAS;IAC7C,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,eAAe,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAA;AAOrD,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,eAAe,IAAI,KAAK,CAAA;AAChF,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,qEAAqE;IACrE,MAAM,CAAI,QAA0C;QAClD,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAA;IACxC,CAAC;IAED,6EAA6E;IAC7E,KAAK,CAAC,OAAO,CAAI,GAAY,EAAE,KAAkC;QAC/D,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IACtE,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"ConfigLoader.js","sourceRoot":"","sources":["../src/ConfigLoader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAE5E;;;;;;;;;;GAUG;AACH,MAAM,OAAO,WAAW;IACtB,KAAK,GAA4B,EAAE,CAAA;IASnC,GAAG,CAAc,GAAW,EAAE,YAAgB;QAC5C,mEAAmE;QACnE,2EAA2E;QAC3E,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,YAAY,CAAkB,CAAA;IAChE,CAAC;IAED,sEAAsE;IACtE,GAAG,CAAC,GAAW,EAAE,KAAc;QAC7B,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;IACjC,CAAC;IAED,qEAAqE;IACrE,GAAG,CAAC,GAAW;QACb,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IACjC,CAAC;IAED,oDAAoD;IACpD,GAAG;QACD,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,GAAW,EAAE,KAAc;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC9B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAA;IAC5E,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,MAA+B;QAC5C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACtB,CAAC;IACH,CAAC;CACF;AASD,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,YAAqB;IACpD,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,YAAY,CAAA;AACzC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAI,MAAS;IAC7C,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,eAAe,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAA;AAOrD,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,eAAe,IAAI,KAAK,CAAA;AAChF,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,qEAAqE;IACrE,MAAM,CAAI,QAA0C;QAClD,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAA;IACxC,CAAC;IAED,6EAA6E;IAC7E,KAAK,CAAC,OAAO,CAAI,GAAY,EAAE,KAAkC;QAC/D,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IACtE,CAAC;CACF,CAAA"}
@@ -20,9 +20,7 @@ export type HealthChecker = () => Promise<HealthCheckResult> | HealthCheckResult
20
20
  * Manages health check registrations and produces aggregated status.
21
21
  */
22
22
  export declare class HealthCheck {
23
- private checkers;
24
- private startTime;
25
- private checkTimeout;
23
+ #private;
26
24
  constructor(options?: {
27
25
  checkTimeout?: number;
28
26
  });
@@ -30,12 +28,21 @@ export declare class HealthCheck {
30
28
  register(name: string, checker: HealthChecker): void;
31
29
  /** Run all health checks and return aggregated status. */
32
30
  check(): Promise<HealthStatus>;
33
- /** Create the /health route handler. Returns 200 for ok, 503 for degraded/error. */
31
+ /**
32
+ * Create the /health route handler. Returns 200 for ok, 503 otherwise.
33
+ *
34
+ * The parameter is the narrowest shape a real `HttpContext` satisfies, so
35
+ * this can be mounted straight on a route. It used to assign
36
+ * `ctx.response.status` and `ctx.response.body` as PROPERTIES, which no Ream
37
+ * response has ever had — mounted for real it would have answered an empty
38
+ * 200 to every probe, marking a dead app healthy. Its only test built a fake
39
+ * context in that invented shape, so nothing caught it.
40
+ */
34
41
  handler(): (ctx: {
35
42
  response: {
36
- status: number;
37
- headers: Record<string, string>;
38
- body: string;
43
+ status(code: number): unknown;
44
+ header(key: string, value: string): unknown;
45
+ json(body: unknown): unknown;
39
46
  };
40
47
  }) => Promise<void>;
41
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"HealthCheck.d.ts","sourceRoot":"","sources":["../src/HealthCheck.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,IAAI,GAAG,UAAU,GAAG,OAAO,CAAA;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,iBAAiB,EAAE,CAAA;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,IAAI,GAAG,MAAM,GAAG,OAAO,CAAA;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,GAAG,iBAAiB,CAAA;AAKhF;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAwC;IACxD,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,YAAY,CAAQ;gBAEhB,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE;IAI/C,iCAAiC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI;IAIpD,0DAA0D;IACpD,KAAK,IAAI,OAAO,CAAC,YAAY,CAAC;IAyCpC,oFAAoF;IACpF,OAAO,IAAI,CAAC,GAAG,EAAE;QACf,QAAQ,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;KAC5E,KAAK,OAAO,CAAC,IAAI,CAAC;CAQpB"}
1
+ {"version":3,"file":"HealthCheck.d.ts","sourceRoot":"","sources":["../src/HealthCheck.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,IAAI,GAAG,UAAU,GAAG,OAAO,CAAA;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,iBAAiB,EAAE,CAAA;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,IAAI,GAAG,MAAM,GAAG,OAAO,CAAA;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,GAAG,iBAAiB,CAAA;AAKhF;;GAEG;AACH,qBAAa,WAAW;;gBAKV,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE;IAI/C,iCAAiC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI;IAIpD,0DAA0D;IACpD,KAAK,IAAI,OAAO,CAAC,YAAY,CAAC;IAyCpC;;;;;;;;;OASG;IACH,OAAO,IAAI,CAAC,GAAG,EAAE;QACf,QAAQ,EAAE;YACR,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;YAC7B,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;YAC3C,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAA;SAC7B,CAAA;KACF,KAAK,OAAO,CAAC,IAAI,CAAC;CAQpB"}
@@ -9,25 +9,25 @@ const DEFAULT_CHECK_TIMEOUT = 5000;
9
9
  * Manages health check registrations and produces aggregated status.
10
10
  */
11
11
  export class HealthCheck {
12
- checkers = new Map();
13
- startTime = Date.now();
14
- checkTimeout;
12
+ #checkers = new Map();
13
+ #startTime = Date.now();
14
+ #checkTimeout;
15
15
  constructor(options) {
16
- this.checkTimeout = options?.checkTimeout ?? DEFAULT_CHECK_TIMEOUT;
16
+ this.#checkTimeout = options?.checkTimeout ?? DEFAULT_CHECK_TIMEOUT;
17
17
  }
18
18
  /** Register a health checker. */
19
19
  register(name, checker) {
20
- this.checkers.set(name, checker);
20
+ this.#checkers.set(name, checker);
21
21
  }
22
22
  /** Run all health checks and return aggregated status. */
23
23
  async check() {
24
24
  const checks = [];
25
- for (const [name, checker] of this.checkers) {
25
+ for (const [name, checker] of this.#checkers) {
26
26
  const start = Date.now();
27
27
  try {
28
28
  const result = await Promise.race([
29
29
  Promise.resolve(checker()),
30
- new Promise((_, reject) => setTimeout(() => reject(new Error(`Health check '${name}' timed out after ${this.checkTimeout}ms`)), this.checkTimeout)),
30
+ new Promise((_, reject) => setTimeout(() => reject(new Error(`Health check '${name}' timed out after ${this.#checkTimeout}ms`)), this.#checkTimeout)),
31
31
  ]);
32
32
  // Enforce authoritative name from registration key
33
33
  result.name = name;
@@ -47,18 +47,27 @@ export class HealthCheck {
47
47
  const hasWarn = checks.some((c) => c.status === 'warn');
48
48
  return {
49
49
  status: hasError ? 'error' : hasWarn ? 'degraded' : 'ok',
50
- uptime: Math.floor((Date.now() - this.startTime) / 1000),
50
+ uptime: Math.floor((Date.now() - this.#startTime) / 1000),
51
51
  timestamp: new Date().toISOString(),
52
52
  checks,
53
53
  };
54
54
  }
55
- /** Create the /health route handler. Returns 200 for ok, 503 for degraded/error. */
55
+ /**
56
+ * Create the /health route handler. Returns 200 for ok, 503 otherwise.
57
+ *
58
+ * The parameter is the narrowest shape a real `HttpContext` satisfies, so
59
+ * this can be mounted straight on a route. It used to assign
60
+ * `ctx.response.status` and `ctx.response.body` as PROPERTIES, which no Ream
61
+ * response has ever had — mounted for real it would have answered an empty
62
+ * 200 to every probe, marking a dead app healthy. Its only test built a fake
63
+ * context in that invented shape, so nothing caught it.
64
+ */
56
65
  handler() {
57
66
  return async (ctx) => {
58
67
  const health = await this.check();
59
- ctx.response.status = health.status === 'ok' ? 200 : 503;
60
- ctx.response.headers['content-type'] = 'application/json';
61
- ctx.response.body = JSON.stringify(health);
68
+ ctx.response.status(health.status === 'ok' ? 200 : 503);
69
+ ctx.response.header('content-type', 'application/json');
70
+ ctx.response.json(health);
62
71
  };
63
72
  }
64
73
  }
@@ -1 +1 @@
1
- {"version":3,"file":"HealthCheck.js","sourceRoot":"","sources":["../src/HealthCheck.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAkBH,yCAAyC;AACzC,MAAM,qBAAqB,GAAG,IAAI,CAAA;AAElC;;GAEG;AACH,MAAM,OAAO,WAAW;IACd,QAAQ,GAA+B,IAAI,GAAG,EAAE,CAAA;IAChD,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IACtB,YAAY,CAAQ;IAE5B,YAAY,OAAmC;QAC7C,IAAI,CAAC,YAAY,GAAG,OAAO,EAAE,YAAY,IAAI,qBAAqB,CAAA;IACpE,CAAC;IAED,iCAAiC;IACjC,QAAQ,CAAC,IAAY,EAAE,OAAsB;QAC3C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAClC,CAAC;IAED,0DAA0D;IAC1D,KAAK,CAAC,KAAK;QACT,MAAM,MAAM,GAAwB,EAAE,CAAA;QAEtC,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YACxB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;oBAChC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;oBAC1B,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAC/B,UAAU,CACR,GAAG,EAAE,CACH,MAAM,CAAC,IAAI,KAAK,CAAC,iBAAiB,IAAI,qBAAqB,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,EACpF,IAAI,CAAC,YAAY,CAClB,CACF;iBACF,CAAC,CAAA;gBACF,mDAAmD;gBACnD,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;gBAClB,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAA;gBACnC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACrB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI;oBACJ,MAAM,EAAE,OAAO;oBACf,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;oBACzD,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;iBAC5B,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAA;QACzD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAA;QAEvD,OAAO;YACL,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI;YACxD,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;YACxD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,MAAM;SACP,CAAA;IACH,CAAC;IAED,oFAAoF;IACpF,OAAO;QAGL,OAAO,KAAK,EAAE,GAAG,EAAE,EAAE;YACnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;YACjC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;YACxD,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAA;YACzD,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QAC5C,CAAC,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"HealthCheck.js","sourceRoot":"","sources":["../src/HealthCheck.ts"],"names":[],"mappings":"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"}
@@ -39,6 +39,18 @@ export interface HttpKernelConfig {
39
39
  * could rewrite itself into a DELETE.
40
40
  */
41
41
  allowMethodSpoofing?: boolean;
42
+ /**
43
+ * Default callback name for `response.jsonp()` (AdonisJS
44
+ * `http.jsonpCallbackName`). Falls back to `callback`.
45
+ */
46
+ jsonpCallbackName?: string;
47
+ /**
48
+ * Ceiling on a buffered response body, in bytes. Default 100MB — the same the
49
+ * Rust layer caps an incoming body at. Responses are not streamed yet, so the
50
+ * body is held whole in memory; this is what stops a large one growing until
51
+ * the process dies with no message.
52
+ */
53
+ maxResponseBytes?: number;
42
54
  }
43
55
  export interface HttpKernelResponse {
44
56
  status: number;
@@ -1 +1 @@
1
- {"version":3,"file":"HttpKernel.d.ts","sourceRoot":"","sources":["../src/HttpKernel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEzD,OAAO,EAAqB,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACzE,OAAO,EAA0B,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAC3E,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAEnB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,KAAK,EAAmC,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAGjF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AAE9C,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,kBAAkB,CAAA;IAC9B,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,gBAAgB,CAAC,EAAE,kBAAkB,EAAE,CAAA;IACvC,gBAAgB,CAAC,EAAE,kBAAkB,EAAE,CAAA;IACvC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,KAAK,IAAI,CAAA;IACpD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,OAAO,qBAAqB,EAAE,aAAa,GAAG,SAAS,CAAA;IAC7E;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,IAAI,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,IAAI,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAA;IAChC,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,gBAAgB,GACvB,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAqR7D"}
1
+ {"version":3,"file":"HttpKernel.d.ts","sourceRoot":"","sources":["../src/HttpKernel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEzD,OAAO,EAAqB,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACzE,OAAO,EAA0B,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAC3E,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAEnB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,KAAK,EAAmC,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAGjF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AAE9C,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,kBAAkB,CAAA;IAC9B,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,gBAAgB,CAAC,EAAE,kBAAkB,EAAE,CAAA;IACvC,gBAAgB,CAAC,EAAE,kBAAkB,EAAE,CAAA;IACvC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,KAAK,IAAI,CAAA;IACpD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,OAAO,qBAAqB,EAAE,aAAa,GAAG,SAAS,CAAA;IAC7E;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,IAAI,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,IAAI,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAA;IAChC,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,gBAAgB,GACvB,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAgS7D"}
@@ -99,6 +99,12 @@ export function createHttpKernel(config) {
99
99
  // What Adonis binds on every request's resolver: the context itself, so a
100
100
  // controller or service can take `HttpContext` as a constructor dependency.
101
101
  resolver?.bindValue(HttpContext, ctx);
102
+ if (config.jsonpCallbackName !== undefined) {
103
+ ctx.response.setJsonpCallbackName(config.jsonpCallbackName);
104
+ }
105
+ if (config.maxResponseBytes !== undefined) {
106
+ ctx.response.setMaxBodyBytes(config.maxResponseBytes);
107
+ }
102
108
  if (config.allowMethodSpoofing === true) {
103
109
  // Was never wired: the setter existed but nothing called it, so a
104
110
  // migrated config asking for spoofing got a `_method` field that did
@@ -230,8 +236,13 @@ export function createHttpKernel(config) {
230
236
  // the HyperServer keeps feeding a dead stream slot forever.
231
237
  await ctx.response.abortStream();
232
238
  try {
233
- await handler.handle(error, ctx);
239
+ // REPORT first, then handle — the AdonisJS order
240
+ // (`#requestErrorResponder`: `await report(error, ctx)` before
241
+ // `handle`). Handling first meant a throwing `handle()` fell into the
242
+ // catch below and the error was never reported: it vanished from the
243
+ // logs and the operator saw only "ExceptionHandler failed".
234
244
  await handler.report(error, ctx);
245
+ await handler.handle(error, ctx);
235
246
  }
236
247
  catch (handlerError) {
237
248
  console.error('ExceptionHandler failed:', handlerError);
@@ -294,9 +305,9 @@ function readControllerGuardMetadata(target, method) {
294
305
  }
295
306
  }
296
307
  async function serializeResponse(ctx) {
297
- // A body still being drained by `response.stream()` — upstream returns void
298
- // there, so a migrated controller does not await it.
299
- await ctx.response.settle();
308
+ // The terminal step, as AdonisJS' server calls `response.finish()`: it
309
+ // stamps the request id and waits for a body still being produced.
310
+ await ctx.response.finish();
300
311
  const streamId = ctx.response.getStreamId();
301
312
  return {
302
313
  status: ctx.response.getStatus(),