@c9up/ream 0.1.25 → 0.1.27

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 (302) hide show
  1. package/README.md +65 -0
  2. package/dist/ConfigLoader.d.ts +46 -5
  3. package/dist/ConfigLoader.d.ts.map +1 -1
  4. package/dist/ConfigLoader.js +60 -9
  5. package/dist/ConfigLoader.js.map +1 -1
  6. package/dist/HttpKernel.d.ts.map +1 -1
  7. package/dist/HttpKernel.js +46 -6
  8. package/dist/HttpKernel.js.map +1 -1
  9. package/dist/Ignitor.d.ts +115 -7
  10. package/dist/Ignitor.d.ts.map +1 -1
  11. package/dist/Ignitor.js +254 -40
  12. package/dist/Ignitor.js.map +1 -1
  13. package/dist/console/BaseCommand.d.ts +217 -0
  14. package/dist/console/BaseCommand.d.ts.map +1 -0
  15. package/dist/console/BaseCommand.js +340 -0
  16. package/dist/console/BaseCommand.js.map +1 -0
  17. package/dist/console/Console.d.ts +86 -0
  18. package/dist/console/Console.d.ts.map +1 -0
  19. package/dist/console/Console.js +134 -0
  20. package/dist/console/Console.js.map +1 -0
  21. package/dist/console/ExceptionHandler.d.ts +28 -0
  22. package/dist/console/ExceptionHandler.d.ts.map +1 -0
  23. package/dist/console/ExceptionHandler.js +76 -0
  24. package/dist/console/ExceptionHandler.js.map +1 -0
  25. package/dist/console/HelpCommand.d.ts +16 -0
  26. package/dist/console/HelpCommand.d.ts.map +1 -0
  27. package/dist/console/HelpCommand.js +40 -0
  28. package/dist/console/HelpCommand.js.map +1 -0
  29. package/dist/console/IndexGenerator.d.ts +24 -0
  30. package/dist/console/IndexGenerator.d.ts.map +1 -0
  31. package/dist/console/IndexGenerator.js +65 -0
  32. package/dist/console/IndexGenerator.js.map +1 -0
  33. package/dist/console/Kernel.d.ts +298 -0
  34. package/dist/console/Kernel.d.ts.map +1 -0
  35. package/dist/console/Kernel.js +1120 -0
  36. package/dist/console/Kernel.js.map +1 -0
  37. package/dist/console/ListCommand.d.ts +18 -0
  38. package/dist/console/ListCommand.d.ts.map +1 -0
  39. package/dist/console/ListCommand.js +60 -0
  40. package/dist/console/ListCommand.js.map +1 -0
  41. package/dist/console/assertions.d.ts +20 -0
  42. package/dist/console/assertions.d.ts.map +1 -0
  43. package/dist/console/assertions.js +84 -0
  44. package/dist/console/assertions.js.map +1 -0
  45. package/dist/console/cliui.d.ts +248 -0
  46. package/dist/console/cliui.d.ts.map +1 -0
  47. package/dist/console/cliui.js +587 -0
  48. package/dist/console/cliui.js.map +1 -0
  49. package/dist/console/decorators.d.ts +90 -0
  50. package/dist/console/decorators.d.ts.map +1 -0
  51. package/dist/console/decorators.js +142 -0
  52. package/dist/console/decorators.js.map +1 -0
  53. package/dist/console/index.d.ts +32 -0
  54. package/dist/console/index.d.ts.map +1 -0
  55. package/dist/console/index.js +24 -0
  56. package/dist/console/index.js.map +1 -0
  57. package/dist/console/loaders.d.ts +52 -0
  58. package/dist/console/loaders.d.ts.map +1 -0
  59. package/dist/console/loaders.js +131 -0
  60. package/dist/console/loaders.js.map +1 -0
  61. package/dist/console/parser.d.ts +86 -0
  62. package/dist/console/parser.d.ts.map +1 -0
  63. package/dist/console/parser.js +440 -0
  64. package/dist/console/parser.js.map +1 -0
  65. package/dist/console/prompts.d.ts +124 -0
  66. package/dist/console/prompts.d.ts.map +1 -0
  67. package/dist/console/prompts.js +356 -0
  68. package/dist/console/prompts.js.map +1 -0
  69. package/dist/console/tracing.d.ts +17 -0
  70. package/dist/console/tracing.d.ts.map +1 -0
  71. package/dist/console/tracing.js +11 -0
  72. package/dist/console/tracing.js.map +1 -0
  73. package/dist/console/types.d.ts +255 -0
  74. package/dist/console/types.d.ts.map +1 -0
  75. package/dist/console/types.js +25 -0
  76. package/dist/console/types.js.map +1 -0
  77. package/dist/console/ui.d.ts +20 -0
  78. package/dist/console/ui.d.ts.map +1 -0
  79. package/dist/console/ui.js +31 -0
  80. package/dist/console/ui.js.map +1 -0
  81. package/dist/console/utils.d.ts +27 -0
  82. package/dist/console/utils.d.ts.map +1 -0
  83. package/dist/console/utils.js +56 -0
  84. package/dist/console/utils.js.map +1 -0
  85. package/dist/container/Container.d.ts +23 -3
  86. package/dist/container/Container.d.ts.map +1 -1
  87. package/dist/container/Container.js +177 -70
  88. package/dist/container/Container.js.map +1 -1
  89. package/dist/container/types.d.ts +14 -2
  90. package/dist/container/types.d.ts.map +1 -1
  91. package/dist/decorators/Service.d.ts +7 -0
  92. package/dist/decorators/Service.d.ts.map +1 -1
  93. package/dist/decorators/Service.js +23 -3
  94. package/dist/decorators/Service.js.map +1 -1
  95. package/dist/env/Env.d.ts +29 -4
  96. package/dist/env/Env.d.ts.map +1 -1
  97. package/dist/env/Env.js +27 -4
  98. package/dist/env/Env.js.map +1 -1
  99. package/dist/env/Secret.d.ts +11 -0
  100. package/dist/env/Secret.d.ts.map +1 -0
  101. package/dist/env/Secret.js +36 -0
  102. package/dist/env/Secret.js.map +1 -0
  103. package/dist/env/interpolate.d.ts +26 -0
  104. package/dist/env/interpolate.d.ts.map +1 -0
  105. package/dist/env/interpolate.js +48 -0
  106. package/dist/env/interpolate.js.map +1 -0
  107. package/dist/env/loadEnvFiles.d.ts.map +1 -1
  108. package/dist/env/loadEnvFiles.js +14 -4
  109. package/dist/env/loadEnvFiles.js.map +1 -1
  110. package/dist/env/schema.d.ts +23 -6
  111. package/dist/env/schema.d.ts.map +1 -1
  112. package/dist/env/schema.js +67 -33
  113. package/dist/env/schema.js.map +1 -1
  114. package/dist/errors/ReamError.d.ts +25 -0
  115. package/dist/errors/ReamError.d.ts.map +1 -1
  116. package/dist/errors/ReamError.js +5 -0
  117. package/dist/errors/ReamError.js.map +1 -1
  118. package/dist/errors/prettyPrintError.d.ts +9 -0
  119. package/dist/errors/prettyPrintError.d.ts.map +1 -0
  120. package/dist/errors/prettyPrintError.js +22 -0
  121. package/dist/errors/prettyPrintError.js.map +1 -0
  122. package/dist/events/Emitter.d.ts +1 -1
  123. package/dist/events/Emitter.d.ts.map +1 -1
  124. package/dist/events/Emitter.js +1 -1
  125. package/dist/events/Emitter.js.map +1 -1
  126. package/dist/events/EventsProvider.d.ts +2 -2
  127. package/dist/events/EventsProvider.d.ts.map +1 -1
  128. package/dist/events/EventsProvider.js +3 -3
  129. package/dist/events/EventsProvider.js.map +1 -1
  130. package/dist/graphql/GraphQLEngine.d.ts +1 -1
  131. package/dist/graphql/GraphQLEngine.d.ts.map +1 -1
  132. package/dist/graphql/GraphQLEngine.js +2 -2
  133. package/dist/graphql/GraphQLEngine.js.map +1 -1
  134. package/dist/graphql/GraphQLProvider.d.ts.map +1 -1
  135. package/dist/graphql/GraphQLProvider.js +7 -3
  136. package/dist/graphql/GraphQLProvider.js.map +1 -1
  137. package/dist/http/Exception.d.ts +63 -1
  138. package/dist/http/Exception.d.ts.map +1 -1
  139. package/dist/http/Exception.js +185 -48
  140. package/dist/http/Exception.js.map +1 -1
  141. package/dist/http/HttpContext.d.ts +53 -7
  142. package/dist/http/HttpContext.d.ts.map +1 -1
  143. package/dist/http/HttpContext.js +56 -15
  144. package/dist/http/HttpContext.js.map +1 -1
  145. package/dist/http/RedirectBuilder.d.ts.map +1 -1
  146. package/dist/http/RedirectBuilder.js +4 -1
  147. package/dist/http/RedirectBuilder.js.map +1 -1
  148. package/dist/http/Request.d.ts +141 -10
  149. package/dist/http/Request.d.ts.map +1 -1
  150. package/dist/http/Request.js +244 -34
  151. package/dist/http/Request.js.map +1 -1
  152. package/dist/http/Response.d.ts +176 -9
  153. package/dist/http/Response.d.ts.map +1 -1
  154. package/dist/http/Response.js +404 -16
  155. package/dist/http/Response.js.map +1 -1
  156. package/dist/index.d.ts +19 -8
  157. package/dist/index.d.ts.map +1 -1
  158. package/dist/index.js +20 -5
  159. package/dist/index.js.map +1 -1
  160. package/dist/middleware/Pipeline.d.ts +29 -8
  161. package/dist/middleware/Pipeline.d.ts.map +1 -1
  162. package/dist/middleware/Pipeline.js +40 -2
  163. package/dist/middleware/Pipeline.js.map +1 -1
  164. package/dist/openapi/OpenApiProvider.js +4 -4
  165. package/dist/openapi/OpenApiProvider.js.map +1 -1
  166. package/dist/router/Router.d.ts +223 -31
  167. package/dist/router/Router.d.ts.map +1 -1
  168. package/dist/router/Router.js +520 -102
  169. package/dist/router/Router.js.map +1 -1
  170. package/dist/rpc/RpcProvider.d.ts +1 -0
  171. package/dist/rpc/RpcProvider.d.ts.map +1 -1
  172. package/dist/rpc/RpcProvider.js +7 -3
  173. package/dist/rpc/RpcProvider.js.map +1 -1
  174. package/dist/rpc/RpcRouter.d.ts +2 -2
  175. package/dist/rpc/RpcRouter.d.ts.map +1 -1
  176. package/dist/rpc/RpcRouter.js +17 -5
  177. package/dist/rpc/RpcRouter.js.map +1 -1
  178. package/dist/scheduler/ScheduleProvider.d.ts.map +1 -1
  179. package/dist/scheduler/ScheduleProvider.js +7 -15
  180. package/dist/scheduler/ScheduleProvider.js.map +1 -1
  181. package/dist/server/Server.d.ts +17 -4
  182. package/dist/server/Server.d.ts.map +1 -1
  183. package/dist/server/Server.js +41 -7
  184. package/dist/server/Server.js.map +1 -1
  185. package/dist/services/app.d.ts +1 -1
  186. package/dist/services/app.js +1 -1
  187. package/dist/services/console.d.ts +21 -0
  188. package/dist/services/console.d.ts.map +1 -0
  189. package/dist/services/console.js +35 -0
  190. package/dist/services/console.js.map +1 -0
  191. package/dist/session/SessionMiddleware.js +3 -3
  192. package/dist/session/SessionMiddleware.js.map +1 -1
  193. package/dist/storage/StaticProvider.js +1 -1
  194. package/dist/storage/StaticProvider.js.map +1 -1
  195. package/dist/testing/ApiResponse.d.ts +218 -0
  196. package/dist/testing/ApiResponse.d.ts.map +1 -0
  197. package/dist/testing/ApiResponse.js +576 -0
  198. package/dist/testing/ApiResponse.js.map +1 -0
  199. package/dist/testing/RequestBuilder.d.ts +155 -35
  200. package/dist/testing/RequestBuilder.d.ts.map +1 -1
  201. package/dist/testing/RequestBuilder.js +455 -109
  202. package/dist/testing/RequestBuilder.js.map +1 -1
  203. package/dist/testing/TestClient.d.ts +53 -37
  204. package/dist/testing/TestClient.d.ts.map +1 -1
  205. package/dist/testing/TestClient.js +84 -52
  206. package/dist/testing/TestClient.js.map +1 -1
  207. package/dist/utils/Macroable.d.ts +30 -0
  208. package/dist/utils/Macroable.d.ts.map +1 -0
  209. package/dist/utils/Macroable.js +43 -0
  210. package/dist/utils/Macroable.js.map +1 -0
  211. package/dist/utils/inflect.d.ts +17 -0
  212. package/dist/utils/inflect.d.ts.map +1 -0
  213. package/dist/utils/inflect.js +32 -0
  214. package/dist/utils/inflect.js.map +1 -0
  215. package/dist/utils/objectPath.d.ts +57 -0
  216. package/dist/utils/objectPath.d.ts.map +1 -0
  217. package/dist/utils/objectPath.js +141 -0
  218. package/dist/utils/objectPath.js.map +1 -0
  219. package/events.darwin-arm64.node +0 -0
  220. package/events.darwin-x64.node +0 -0
  221. package/events.linux-arm64-gnu.node +0 -0
  222. package/events.linux-x64-gnu.node +0 -0
  223. package/events.win32-x64-msvc.node +0 -0
  224. package/index.darwin-arm64.node +0 -0
  225. package/index.darwin-x64.node +0 -0
  226. package/index.linux-arm64-gnu.node +0 -0
  227. package/index.linux-x64-gnu.node +0 -0
  228. package/index.win32-x64-msvc.node +0 -0
  229. package/package.json +20 -2
  230. package/scheduler.darwin-arm64.node +0 -0
  231. package/scheduler.darwin-x64.node +0 -0
  232. package/scheduler.linux-arm64-gnu.node +0 -0
  233. package/scheduler.linux-x64-gnu.node +0 -0
  234. package/scheduler.win32-x64-msvc.node +0 -0
  235. package/src/ConfigLoader.ts +72 -9
  236. package/src/HttpKernel.ts +53 -15
  237. package/src/Ignitor.ts +364 -45
  238. package/src/console/BaseCommand.ts +467 -0
  239. package/src/console/Console.ts +174 -0
  240. package/src/console/ExceptionHandler.ts +91 -0
  241. package/src/console/HelpCommand.ts +37 -0
  242. package/src/console/IndexGenerator.ts +79 -0
  243. package/src/console/Kernel.ts +1382 -0
  244. package/src/console/ListCommand.ts +55 -0
  245. package/src/console/assertions.ts +114 -0
  246. package/src/console/cliui.ts +756 -0
  247. package/src/console/decorators.ts +199 -0
  248. package/src/console/index.ts +67 -0
  249. package/src/console/loaders.ts +145 -0
  250. package/src/console/parser.ts +598 -0
  251. package/src/console/prompts.ts +548 -0
  252. package/src/console/tracing.ts +22 -0
  253. package/src/console/types.ts +280 -0
  254. package/src/console/ui.ts +37 -0
  255. package/src/console/utils.ts +69 -0
  256. package/src/container/Container.ts +198 -72
  257. package/src/container/types.ts +15 -2
  258. package/src/decorators/Service.ts +28 -3
  259. package/src/env/Env.ts +49 -5
  260. package/src/env/Secret.ts +41 -0
  261. package/src/env/interpolate.ts +54 -0
  262. package/src/env/loadEnvFiles.ts +12 -4
  263. package/src/env/schema.ts +109 -35
  264. package/src/errors/ReamError.ts +31 -0
  265. package/src/errors/prettyPrintError.ts +20 -0
  266. package/src/events/Emitter.ts +2 -2
  267. package/src/events/EventsProvider.ts +5 -5
  268. package/src/graphql/GraphQLEngine.ts +4 -4
  269. package/src/graphql/GraphQLProvider.ts +7 -3
  270. package/src/http/Exception.ts +214 -37
  271. package/src/http/HttpContext.ts +87 -18
  272. package/src/http/RedirectBuilder.ts +4 -1
  273. package/src/http/Request.ts +264 -34
  274. package/src/http/Response.ts +478 -27
  275. package/src/index.ts +41 -6
  276. package/src/middleware/Pipeline.ts +77 -6
  277. package/src/openapi/OpenApiProvider.ts +4 -4
  278. package/src/router/Router.ts +631 -113
  279. package/src/rpc/RpcProvider.ts +6 -2
  280. package/src/rpc/RpcRouter.ts +22 -7
  281. package/src/scheduler/ScheduleProvider.ts +7 -15
  282. package/src/server/Server.ts +49 -10
  283. package/src/services/app.ts +1 -1
  284. package/src/services/console.ts +42 -0
  285. package/src/session/SessionMiddleware.ts +4 -4
  286. package/src/storage/StaticProvider.ts +1 -1
  287. package/src/testing/ApiResponse.ts +691 -0
  288. package/src/testing/RequestBuilder.ts +577 -137
  289. package/src/testing/TestClient.ts +110 -77
  290. package/src/utils/Macroable.ts +54 -0
  291. package/src/utils/inflect.ts +29 -0
  292. package/src/utils/objectPath.ts +142 -0
  293. package/dist/console/CommandRunner.d.ts +0 -18
  294. package/dist/console/CommandRunner.d.ts.map +0 -1
  295. package/dist/console/CommandRunner.js +0 -65
  296. package/dist/console/CommandRunner.js.map +0 -1
  297. package/dist/decorators/Lazy.d.ts +0 -19
  298. package/dist/decorators/Lazy.d.ts.map +0 -1
  299. package/dist/decorators/Lazy.js +0 -53
  300. package/dist/decorators/Lazy.js.map +0 -1
  301. package/src/console/CommandRunner.ts +0 -82
  302. package/src/decorators/Lazy.ts +0 -57
package/README.md CHANGED
@@ -35,6 +35,71 @@ const app = new Ignitor({ port: 3000 })
35
35
  await app.start()
36
36
  ```
37
37
 
38
+ ## Testing
39
+
40
+ Declare your suites in `reamrc.ts`, the way AdonisJS declares them in
41
+ `adonisrc.ts`, and `ream test` runs them:
42
+
43
+ ```ts
44
+ // reamrc.ts
45
+ export default defineConfig({
46
+ tests: {
47
+ timeout: 2_000,
48
+ forceExit: false,
49
+ suites: [
50
+ { name: 'unit', files: ['tests/unit/**/*.spec.(js|ts)'] },
51
+ {
52
+ name: 'functional',
53
+ files: ['tests/functional/**/*.spec.ts'],
54
+ timeout: 30_000,
55
+ // Japa's per-suite `configure`. Costs an import of this file in every
56
+ // worker — `configureSuite` in tests/bootstrap.ts does the same for free.
57
+ configure: (suite) => suite.setup(() => startHttpServer()),
58
+ },
59
+ ],
60
+ },
61
+ })
62
+ ```
63
+
64
+ ```sh
65
+ ream test # every suite, in order
66
+ ream test functional # one suite
67
+ ream test --bail --threads=4
68
+ ```
69
+
70
+ `ream test` sets `NODE_ENV=test` and loads the `.env` files itself, before
71
+ spawning anything: `.env.test` wins over `.env`, `.env.local` is skipped so
72
+ a developer's local overrides never decide what CI runs, and the shell keeps
73
+ the last word. The app writes no hook for this — the workers inherit the
74
+ environment of the process that spawned them.
75
+
76
+ `japaPlugins: true` lets official Japa plugins (`@japa/assert`, …) run: it
77
+ points `@japa/runner/core` at helix's shim in every worker, so a plugin
78
+ instruments the runner that is actually running. Off by default —
79
+ redirecting a package specifier is not something to do behind your back.
80
+
81
+ `forceExit: true` makes the run call `process.exit()` once it ends instead
82
+ of waiting for the event loop to drain — the same thing Japa does with it,
83
+ and the answer to a pool or a server the app left open. Without it the
84
+ process exits on its own, so a leaked handle surfaces as a diagnosable
85
+ hang rather than being swallowed.
86
+
87
+ The stratification is AdonisJS's: ream reads its rc file and hands the
88
+ suites to the runner ([`@c9up/helix`](../helix)), exactly as
89
+ `@adonisjs/core` reads `adonisrc.ts` and hands them to Japa. helix knows
90
+ nothing about ream, and ream owns no test execution. `tests/bootstrap.ts`
91
+ — plugins, `runnerHooks`, `configureSuite` — is helix's, unchanged.
92
+
93
+ Driving it yourself (a `bin/test.ts`, a console command) is the same call:
94
+
95
+ ```ts
96
+ import { runTestsFromRcFile } from '@c9up/ream/test-runner'
97
+
98
+ process.exitCode = await runTestsFromRcFile('./reamrc.ts', {
99
+ suites: process.argv.slice(2),
100
+ })
101
+ ```
102
+
38
103
  ## Ecosystem
39
104
 
40
105
  Every package is standalone and publishable on its own; they consume the Ream
@@ -5,15 +5,38 @@
5
5
  */
6
6
  /**
7
7
  * In-memory config store. In production this is populated from config/*.ts
8
- * files via `defineConfig()`. The class is its own contract — `AppContext.config`
9
- * is typed against it directly (structural).
8
+ * files via `defineConfig()` — one top-level key per module (`config/app.ts`
9
+ * → `app`). The class is its own contract — `AppContext.config` is typed
10
+ * against it directly (structural).
11
+ *
12
+ * Values are held as a nested tree and read with AdonisJS dot-notation
13
+ * (`config.get('database.mysql.host')`), matching `@adonisjs/config`'s
14
+ * `lodash`-backed accessors — reimplemented dependency-free via
15
+ * {@link ../utils/objectPath}.
10
16
  */
11
17
  export declare class ConfigStore {
12
- private store;
13
- get<T = unknown>(key: string): T | undefined;
18
+ #private;
19
+ /**
20
+ * Read a value by dot-notation key, returning `defaultValue` when the path
21
+ * is absent or resolves to `undefined` (AdonisJS `config.get`).
22
+ */
23
+ get<T = unknown>(key: string, defaultValue?: T): T | undefined;
24
+ /** Set a value by dot-notation key, creating intermediate objects. */
14
25
  set(key: string, value: unknown): void;
26
+ /** True when the dot-notation key exists (AdonisJS `config.has`). */
15
27
  has(key: string): boolean;
16
- /** Load config from an object (used for testing and initial setup). */
28
+ /** The full config tree (AdonisJS `config.all`). */
29
+ all(): Record<string, unknown>;
30
+ /**
31
+ * Merge `value` as defaults for `key` — existing config wins over the
32
+ * provided defaults (AdonisJS `config.defaults`).
33
+ */
34
+ defaults(key: string, value: unknown): void;
35
+ /**
36
+ * Load config from an object (used for testing and initial setup). Each key
37
+ * is applied by dot-notation, so both nested modules (`{ app: {...} }`) and
38
+ * flat dotted keys (`{ 'db.host': '...' }`) land in the tree.
39
+ */
17
40
  loadFromObject(config: Record<string, unknown>): void;
18
41
  }
19
42
  /**
@@ -26,4 +49,22 @@ export declare function env(key: string, defaultValue?: string): string | undefi
26
49
  * Returns the config object as-is (type-checked by the module's defineConfig).
27
50
  */
28
51
  export declare function defineModuleConfig<T>(config: T): T;
52
+ declare const CONFIG_PROVIDER: unique symbol;
53
+ /** A deferred config value that resolves against the application at boot. */
54
+ interface ConfigProviderMarker<T> {
55
+ readonly [CONFIG_PROVIDER]: (app: unknown) => T | Promise<T>;
56
+ }
57
+ /**
58
+ * Deferred configuration (AdonisJS `configProvider`). A package exports
59
+ * `configProvider.create((app) => ...)` when its config needs the application
60
+ * (env, paths) at boot; the framework calls `configProvider.resolve(app, value)`
61
+ * to materialise it, passing plain values through untouched.
62
+ */
63
+ export declare const configProvider: {
64
+ /** Wrap a resolver so it's materialised later by {@link resolve}. */
65
+ create<T>(resolver: (app: unknown) => T | Promise<T>): ConfigProviderMarker<T>;
66
+ /** Resolve a value: run it if it's a provider, otherwise return it as-is. */
67
+ resolve<T>(app: unknown, value: ConfigProviderMarker<T> | T): Promise<T>;
68
+ };
69
+ export {};
29
70
  //# sourceMappingURL=ConfigLoader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigLoader.d.ts","sourceRoot":"","sources":["../src/ConfigLoader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;GAIG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,KAAK,CAAkC;IAE/C,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAI5C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAItC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,uEAAuE;IACvE,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"}
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"}
@@ -3,26 +3,57 @@
3
3
  *
4
4
  * @implements FR18, FR19
5
5
  */
6
+ import { getPath, hasPath, mergeDeep, setPath } from './utils/objectPath.js';
6
7
  /**
7
8
  * In-memory config store. In production this is populated from config/*.ts
8
- * files via `defineConfig()`. The class is its own contract — `AppContext.config`
9
- * is typed against it directly (structural).
9
+ * files via `defineConfig()` — one top-level key per module (`config/app.ts`
10
+ * → `app`). The class is its own contract — `AppContext.config` is typed
11
+ * against it directly (structural).
12
+ *
13
+ * Values are held as a nested tree and read with AdonisJS dot-notation
14
+ * (`config.get('database.mysql.host')`), matching `@adonisjs/config`'s
15
+ * `lodash`-backed accessors — reimplemented dependency-free via
16
+ * {@link ../utils/objectPath}.
10
17
  */
11
18
  export class ConfigStore {
12
- store = new Map();
13
- get(key) {
14
- return this.store.get(key);
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
+ get(key, defaultValue) {
25
+ // Untyped store: the caller declares the shape it configured (same
26
+ // contract as `@adonisjs/config`, whose `get<T>` returns the loose value).
27
+ return getPath(this.#tree, key, defaultValue);
15
28
  }
29
+ /** Set a value by dot-notation key, creating intermediate objects. */
16
30
  set(key, value) {
17
- this.store.set(key, value);
31
+ setPath(this.#tree, key, value);
18
32
  }
33
+ /** True when the dot-notation key exists (AdonisJS `config.has`). */
19
34
  has(key) {
20
- return this.store.has(key);
35
+ return hasPath(this.#tree, key);
36
+ }
37
+ /** The full config tree (AdonisJS `config.all`). */
38
+ all() {
39
+ return this.#tree;
40
+ }
41
+ /**
42
+ * Merge `value` as defaults for `key` — existing config wins over the
43
+ * provided defaults (AdonisJS `config.defaults`).
44
+ */
45
+ defaults(key, value) {
46
+ const existing = this.get(key);
47
+ this.set(key, existing === undefined ? value : mergeDeep(value, existing));
21
48
  }
22
- /** Load config from an object (used for testing and initial setup). */
49
+ /**
50
+ * Load config from an object (used for testing and initial setup). Each key
51
+ * is applied by dot-notation, so both nested modules (`{ app: {...} }`) and
52
+ * flat dotted keys (`{ 'db.host': '...' }`) land in the tree.
53
+ */
23
54
  loadFromObject(config) {
24
55
  for (const [key, value] of Object.entries(config)) {
25
- this.store.set(key, value);
56
+ this.set(key, value);
26
57
  }
27
58
  }
28
59
  }
@@ -40,4 +71,24 @@ export function env(key, defaultValue) {
40
71
  export function defineModuleConfig(config) {
41
72
  return config;
42
73
  }
74
+ const CONFIG_PROVIDER = Symbol('ream.configProvider');
75
+ function isConfigProvider(value) {
76
+ return typeof value === 'object' && value !== null && CONFIG_PROVIDER in value;
77
+ }
78
+ /**
79
+ * Deferred configuration (AdonisJS `configProvider`). A package exports
80
+ * `configProvider.create((app) => ...)` when its config needs the application
81
+ * (env, paths) at boot; the framework calls `configProvider.resolve(app, value)`
82
+ * to materialise it, passing plain values through untouched.
83
+ */
84
+ export const configProvider = {
85
+ /** Wrap a resolver so it's materialised later by {@link resolve}. */
86
+ create(resolver) {
87
+ return { [CONFIG_PROVIDER]: resolver };
88
+ },
89
+ /** Resolve a value: run it if it's a provider, otherwise return it as-is. */
90
+ async resolve(app, value) {
91
+ return isConfigProvider(value) ? value[CONFIG_PROVIDER](app) : value;
92
+ },
93
+ };
43
94
  //# sourceMappingURL=ConfigLoader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigLoader.js","sourceRoot":"","sources":["../src/ConfigLoader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;GAIG;AACH,MAAM,OAAO,WAAW;IACd,KAAK,GAAyB,IAAI,GAAG,EAAE,CAAA;IAE/C,GAAG,CAAc,GAAW;QAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAkB,CAAA;IAC7C,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAc;QAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAC5B,CAAC;IAED,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC5B,CAAC;IAED,uEAAuE;IACvE,cAAc,CAAC,MAA+B;QAC5C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QAC5B,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"}
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 +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,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAEnB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,KAAK,EAAmB,MAAM,EAAE,MAAM,oBAAoB,CAAA;AACjE,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;CAC9E;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,CAoO7D"}
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,EAAmB,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAGjE,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;CAC9E;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,CAwQ7D"}
@@ -30,15 +30,36 @@ export function createHttpKernel(config) {
30
30
  // creation, and `has()` avoids loading the native bus for apps without events.
31
31
  let eventsEmitter;
32
32
  let eventsResolved = false;
33
- const resolveEvents = () => {
33
+ const resolveEvents = async () => {
34
34
  if (!eventsResolved) {
35
35
  eventsResolved = true;
36
36
  if (config.container?.has('events')) {
37
- eventsEmitter = config.container.resolve('events');
37
+ eventsEmitter = await config.container.resolve('events');
38
38
  }
39
39
  }
40
40
  return eventsEmitter;
41
41
  };
42
+ // APP_KEY-backed services + base logger, resolved once (the container is async
43
+ // now, so they can't be resolved in the HttpContext constructor) and injected
44
+ // per request via setters. Best-effort: absent bindings leave the feature off.
45
+ let servicesResolved = false;
46
+ let encryption;
47
+ let signedUrl;
48
+ let baseLogger;
49
+ const resolveServices = async () => {
50
+ if (servicesResolved)
51
+ return;
52
+ servicesResolved = true;
53
+ const c = config.container;
54
+ if (!c)
55
+ return;
56
+ if (c.has('encryption'))
57
+ encryption = await c.resolve('encryption');
58
+ if (c.has('signedUrl'))
59
+ signedUrl = await c.resolve('signedUrl');
60
+ if (c.has('logger'))
61
+ baseLogger = await c.resolve('logger');
62
+ };
42
63
  return async (reqData) => {
43
64
  // The Rust HyperServer hands the request as a typed JS object via napi
44
65
  // `to_js_value` (no JSON intermediate). Serverless adapters that pass a
@@ -74,7 +95,15 @@ export function createHttpKernel(config) {
74
95
  // handed instead of importing `@c9up/ream/services/app` at runtime.
75
96
  const ctx = new HttpContext(correlationId, reqData, match?.params ?? {}, routeInfo, config.container);
76
97
  ctx.setRouteUrlResolver((name, params) => config.router.urlFor(name, params));
77
- ctx.events = resolveEvents();
98
+ // Inject the async-resolved APP_KEY services + base logger (resolved once).
99
+ await resolveServices();
100
+ if (encryption)
101
+ ctx.setCookieSigner(encryption);
102
+ if (signedUrl)
103
+ ctx.setSignedUrl(signedUrl);
104
+ if (baseLogger)
105
+ ctx.setBaseLogger(baseLogger);
106
+ ctx.events = await resolveEvents();
78
107
  // Core lifecycle event: a request entered the kernel. Fire-and-forget through
79
108
  // the bus when events are wired (`?.` → zero cost when no provider). The
80
109
  // `http:response` counterpart fires before every exit below.
@@ -100,6 +129,17 @@ export function createHttpKernel(config) {
100
129
  }
101
130
  let cached = pipelineCache.get(match.route);
102
131
  if (!cached) {
132
+ // Promote a lazy/string controller to a concrete controller tuple on
133
+ // first request (imported once, then reused). Done before handler +
134
+ // guard-metadata resolution so @Guard/@Role/@inject flow through the
135
+ // normal controller path below.
136
+ if (match.route.lazyController && !match.route.controller) {
137
+ const mod = await match.route.lazyController.loader();
138
+ match.route.controller = {
139
+ target: mod.default,
140
+ method: match.route.lazyController.method,
141
+ };
142
+ }
103
143
  // Resolve handler (once per route)
104
144
  let routeHandler;
105
145
  if (match.route.controller) {
@@ -125,14 +165,14 @@ export function createHttpKernel(config) {
125
165
  // A declared validator that isn't registered is a HARD error — never
126
166
  // silently skip validation, that's a security footgun (a typo'd
127
167
  // `.validate('craeteUser')` must fail loudly, not pass unvalidated).
128
- const validators = match.route.validators.map((name) => {
168
+ const validators = await Promise.all(match.route.validators.map((name) => {
129
169
  const token = `validator:${name}`;
130
170
  if (!config.container?.has(token)) {
131
171
  throw new Error(`[E_VALIDATOR_NOT_FOUND] Route validator '${name}' is not registered. ` +
132
172
  `Bind it with container.singleton('${token}', () => schema({ ... })).`);
133
173
  }
134
174
  return config.container.resolve(token);
135
- });
175
+ }));
136
176
  // Compile pipeline once
137
177
  const chain = config.middleware.buildChain(match.route.middleware, [...routerMw, ...match.route.inlineMiddleware], async (c) => {
138
178
  await routeHandler(c);
@@ -210,7 +250,7 @@ function createControllerHandler(
210
250
  // biome-ignore lint/suspicious/noExplicitAny: see ControllerAction type — IoC resolves constructor params
211
251
  controller, container) {
212
252
  return async (ctx) => {
213
- const instance = container ? container.make(controller.target) : new controller.target();
253
+ const instance = container ? await container.make(controller.target) : new controller.target();
214
254
  const method = instance[controller.method];
215
255
  if (typeof method !== 'function') {
216
256
  throw new Error(`Controller method '${controller.method}' not found on ${controller.target.name}`);
@@ -1 +1 @@
1
- {"version":3,"file":"HttpKernel.js","sourceRoot":"","sources":["../src/HttpKernel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HttpKernel.js","sourceRoot":"","sources":["../src/HttpKernel.ts"],"names":[],"mappings":"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"}
package/dist/Ignitor.d.ts CHANGED
@@ -13,7 +13,10 @@
13
13
  * @implements FR17, FR20, FR23
14
14
  */
15
15
  import { Application } from './Application.js';
16
+ import type { Console } from './console/Console.js';
17
+ import type { Kernel as ConsoleKernelInstance } from './console/Kernel.js';
16
18
  import type { ErrorEvent } from './ErrorBoundary.js';
19
+ import { prettyPrintError } from './errors/prettyPrintError.js';
17
20
  import type { HttpKernelRequest, HttpKernelResponse } from './HttpKernel.js';
18
21
  import type { MiddlewareFunction } from './middleware/Pipeline.js';
19
22
  import type { AppContext, ProviderContract } from './Provider.js';
@@ -38,12 +41,81 @@ export interface ReamrcConfig {
38
41
  environment?: string[];
39
42
  }>;
40
43
  commands?: Array<() => Promise<unknown>>;
44
+ /**
45
+ * Command shorthands — Console's `commandsAliases`. The value is the command the
46
+ * alias stands for, flags included:
47
+ * `{ resource: 'make:controller --resource' }`
48
+ */
49
+ commandsAliases?: Record<string, string>;
41
50
  modules?: {
42
51
  /** Path to the modules directory (relative to app root). Default: './app/modules' */
43
52
  path?: string;
44
53
  /** Auto-loaded files in each module directory. Default: ['routes'] */
45
54
  autoload?: string[];
46
55
  };
56
+ /** Test suites and runner settings — the `tests` block of adonisrc.ts. */
57
+ tests?: TestsConfig;
58
+ }
59
+ /** One test suite, as declared in the rc file (AdonisJS `tests.suites[]`). */
60
+ export interface TestSuiteConfig {
61
+ /** Suite name — what `ream test <name>` selects. */
62
+ name: string;
63
+ /**
64
+ * The suite's files: a glob, several, or a callback returning their URLs
65
+ * (Japa `TestFiles`).
66
+ */
67
+ files: string | string[] | (() => URL[] | Promise<URL[]>);
68
+ /** Per-test timeout for this suite, in ms. */
69
+ timeout?: number;
70
+ /** Extra attempts on failure for this suite. */
71
+ retries?: number;
72
+ /**
73
+ * Configure the suite before it runs (Japa `TestSuite.configure`). Receives
74
+ * the same handle as the bootstrap's `configureSuite`, and runs after it.
75
+ *
76
+ * Costs an import of the rc file in every worker, since a function cannot
77
+ * cross a process boundary — `configureSuite` in `tests/bootstrap.ts` does
78
+ * the same job for free, and is what AdonisJS itself uses.
79
+ */
80
+ configure?: (suite: TestSuiteHandle) => void;
81
+ }
82
+ /**
83
+ * What a suite's `configure` receives — helix's `SuiteHandle`, re-declared here
84
+ * so the rc file types without ream depending on the runner at type level.
85
+ */
86
+ export interface TestSuiteHandle {
87
+ readonly name: string;
88
+ setup(fn: () => void | Promise<void>): TestSuiteHandle;
89
+ teardown(fn: () => void | Promise<void>): TestSuiteHandle;
90
+ onTest(callback: (test: unknown) => void): TestSuiteHandle;
91
+ onGroup(callback: (group: unknown) => void): TestSuiteHandle;
92
+ bail(toggle?: boolean): TestSuiteHandle;
93
+ }
94
+ /**
95
+ * The `tests` block of the rc file — AdonisJS `adonisrc.ts` `tests`, field for
96
+ * field. The runner that consumes it is helix; ream reads the file, exactly as
97
+ * `@adonisjs/core` reads adonisrc and hands the suites to Japa.
98
+ */
99
+ export interface TestsConfig {
100
+ /** Named suites. `ream test` with no argument runs them all, in order. */
101
+ suites?: TestSuiteConfig[];
102
+ /** Default per-test timeout, in ms. */
103
+ timeout?: number;
104
+ /** `process.exit()` once the run ends instead of draining the event loop. */
105
+ forceExit?: boolean;
106
+ /**
107
+ * Ream particularity: the bootstrap module's path. AdonisJS hardcodes
108
+ * `tests/bootstrap.ts`; that stays the default here, and this overrides it.
109
+ */
110
+ bootstrap?: string;
111
+ /**
112
+ * Point `@japa/runner/core` at helix's shim in every worker, so official Japa
113
+ * plugins (`@japa/assert`, …) instrument the runner that is actually running.
114
+ *
115
+ * Off by default: redirecting a package specifier is not something to do
116
+ * behind a user's back, and a project with no Japa plugin gains nothing.
117
+ */
118
+ japaPlugins?: boolean;
47
119
  }
48
120
  /** defineConfig helper — like AdonisJS defineConfig(). */
49
121
  export declare function defineConfig(config: ReamrcConfig): ReamrcConfig;
@@ -179,6 +251,24 @@ export declare class Ignitor {
179
251
  stop(): Promise<void>;
180
252
  port(): Promise<number>;
181
253
  getApp(): Application;
254
+ /**
255
+ * The application root passed to `new Ignitor(new URL('../', import.meta.url))`.
256
+ * Undefined for inline/test ignitors created without one.
257
+ */
258
+ getAppRoot(): URL | undefined;
259
+ /** Has the application already been started? */
260
+ isStarted(): boolean;
261
+ /**
262
+ * The `consoleApp` façade — the programmatic console.
263
+ *
264
+ * Built on demand: the console modules are only imported when something
265
+ * actually reaches for them, so an HTTP-only boot does not pay for the CLI.
266
+ */
267
+ consoleApp(): Promise<Console>;
268
+ /** The loaded rc file, if `useRcFile()` was called. */
269
+ getRcFile(): ReamrcConfig | undefined;
270
+ /** The custom module importer, when the app provided one. */
271
+ getImporter(): ((filePath: string) => Promise<unknown>) | undefined;
182
272
  getRouter(): Router;
183
273
  getServer(): Server;
184
274
  /**
@@ -190,17 +280,35 @@ export declare class Ignitor {
190
280
  getPhase(): string;
191
281
  private handleError;
192
282
  }
283
+ export { prettyPrintError };
193
284
  /**
194
- * Pretty-print an error (like AdonisJS prettyPrintError).
195
- */
196
- export declare function prettyPrintError(error: unknown): void;
197
- /**
198
- * ConsoleKernel — handles CLI command dispatching.
199
- * Like AdonisJS: new Ignitor(...).console().handle(process.argv.splice(2))
285
+ * ConsoleKernel — boots the app in console mode and dispatches a command.
286
+ *
287
+ * Console parity: `new Ignitor(...).console().handle(process.argv.slice(2))`.
288
+ *
289
+ * Commands come from two places, as in Console:
290
+ * 1. the app's own `commands/` directory, discovered automatically;
291
+ * 2. `reamrc.commands[]`, which registers commands shipped by packages.
292
+ *
293
+ * The application is booted lazily — only for a command declaring
294
+ * `options.startApp`. A generator has no reason to open a database
295
+ * connection, and paying the boot cost on every `--help` is worse than
296
+ * pointless: it fails on a machine where the DB is simply not running.
200
297
  */
201
298
  export declare class ConsoleKernel {
202
- private ignitor;
299
+ #private;
203
300
  constructor(ignitor: Ignitor);
301
+ /**
302
+ * Build the console kernel and the function that fills it.
303
+ *
304
+ * Shared by `handle()` (the CLI) and the `consoleApp` façade (programmatic use), so
305
+ * both see exactly the same commands — discovery plus `reamrc.commands` —
306
+ * instead of two loaders drifting apart.
307
+ */
308
+ build(): Promise<{
309
+ kernel: ConsoleKernelInstance;
310
+ load: () => Promise<void>;
311
+ }>;
204
312
  handle(argv: string[]): Promise<void>;
205
313
  }
206
314
  //# sourceMappingURL=Ignitor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Ignitor.d.ts","sourceRoot":"","sources":["../src/Ignitor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Ignitor.d.ts","sourceRoot":"","sources":["../src/Ignitor.ts"],"names":[],"mappings":"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"}