@warlock.js/core 5.30.0 → 5.32.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 (1374) hide show
  1. package/CHANGELOG.md +165 -36
  2. package/README.md +28 -23
  3. package/bin/source-load-hook.mjs +63 -0
  4. package/bin/warlock.js +102 -42
  5. package/esm/application/app.d.mts +3 -3
  6. package/esm/application/app.d.mts.map +1 -1
  7. package/esm/application/application-config-types.d.mts +1 -2
  8. package/esm/application/application-config-types.d.mts.map +1 -1
  9. package/esm/application/application.d.mts +5 -7
  10. package/esm/application/application.d.mts.map +1 -1
  11. package/esm/application/application.mjs +3 -1
  12. package/esm/application/application.mjs.map +1 -1
  13. package/esm/application/boot-signal.d.mts +14 -12
  14. package/esm/application/boot-signal.d.mts.map +1 -1
  15. package/esm/application/index.d.mts +2 -1
  16. package/esm/application/index.mjs +1 -1
  17. package/esm/application/public-url.d.mts +1 -2
  18. package/esm/application/public-url.d.mts.map +1 -1
  19. package/esm/application/roles.d.mts +10 -11
  20. package/esm/application/roles.d.mts.map +1 -1
  21. package/esm/benchmark/benchmark-snapshots.d.mts +1 -3
  22. package/esm/benchmark/benchmark-snapshots.d.mts.map +1 -1
  23. package/esm/benchmark/benchmark.d.mts +1 -3
  24. package/esm/benchmark/benchmark.d.mts.map +1 -1
  25. package/esm/benchmark/channels/console.channel.d.mts +1 -3
  26. package/esm/benchmark/channels/console.channel.d.mts.map +1 -1
  27. package/esm/benchmark/channels/noop.channel.d.mts +1 -3
  28. package/esm/benchmark/channels/noop.channel.d.mts.map +1 -1
  29. package/esm/benchmark/index.mjs +1 -1
  30. package/esm/benchmark/profiler.d.mts +1 -3
  31. package/esm/benchmark/profiler.d.mts.map +1 -1
  32. package/esm/benchmark/profiler.mjs +2 -1
  33. package/esm/benchmark/profiler.mjs.map +1 -1
  34. package/esm/benchmark/types.d.mts +22 -17
  35. package/esm/benchmark/types.d.mts.map +1 -1
  36. package/esm/bootstrap/setup.d.mts +1 -2
  37. package/esm/bootstrap/setup.d.mts.map +1 -1
  38. package/esm/bootstrap.d.mts +1 -2
  39. package/esm/bootstrap.d.mts.map +1 -1
  40. package/esm/cache/database-cache-driver.d.mts +3 -5
  41. package/esm/cache/database-cache-driver.d.mts.map +1 -1
  42. package/esm/cache/database-cache-driver.mjs +1 -1
  43. package/esm/cache/index.d.mts +2 -1
  44. package/esm/cache/index.mjs +1 -1
  45. package/esm/cli/cli-commands.manager.mjs +6 -3
  46. package/esm/cli/cli-commands.manager.mjs.map +1 -1
  47. package/esm/cli/commands/add.command.mjs +4 -2
  48. package/esm/cli/commands/add.command.mjs.map +1 -1
  49. package/esm/cli/commands/agents-md/agents-md-command.action.mjs +70 -0
  50. package/esm/cli/commands/agents-md/agents-md-command.action.mjs.map +1 -0
  51. package/esm/cli/commands/agents-md.command.mjs +38 -0
  52. package/esm/cli/commands/agents-md.command.mjs.map +1 -0
  53. package/esm/cli/commands/board/board-command.action.mjs +279 -0
  54. package/esm/cli/commands/board/board-command.action.mjs.map +1 -0
  55. package/esm/cli/commands/board.command.mjs +78 -0
  56. package/esm/cli/commands/board.command.mjs.map +1 -0
  57. package/esm/cli/commands/build.command.mjs +6 -1
  58. package/esm/cli/commands/build.command.mjs.map +1 -1
  59. package/esm/cli/commands/check/check-command.action.mjs +57 -0
  60. package/esm/cli/commands/check/check-command.action.mjs.map +1 -0
  61. package/esm/cli/commands/check/child-typecheck.mjs +66 -0
  62. package/esm/cli/commands/check/child-typecheck.mjs.map +1 -0
  63. package/esm/cli/commands/check/format-problems.mjs +43 -0
  64. package/esm/cli/commands/check/format-problems.mjs.map +1 -0
  65. package/esm/cli/commands/check/typecheck-command.action.mjs +61 -0
  66. package/esm/cli/commands/check/typecheck-command.action.mjs.map +1 -0
  67. package/esm/cli/commands/check.command.mjs +50 -0
  68. package/esm/cli/commands/check.command.mjs.map +1 -0
  69. package/esm/cli/commands/dev-server.command.mjs +12 -3
  70. package/esm/cli/commands/dev-server.command.mjs.map +1 -1
  71. package/esm/cli/commands/doctor/boot-for-diagnostics.mjs +8 -3
  72. package/esm/cli/commands/doctor/boot-for-diagnostics.mjs.map +1 -1
  73. package/esm/cli/commands/doctor/check.types.d.mts +89 -0
  74. package/esm/cli/commands/doctor/check.types.d.mts.map +1 -0
  75. package/esm/cli/commands/doctor/checks/config.check.mjs +1 -0
  76. package/esm/cli/commands/doctor/checks/config.check.mjs.map +1 -1
  77. package/esm/cli/commands/doctor/checks/connectors.check.mjs +2 -0
  78. package/esm/cli/commands/doctor/checks/connectors.check.mjs.map +1 -1
  79. package/esm/cli/commands/doctor/checks/handler-signature.check.mjs +1 -0
  80. package/esm/cli/commands/doctor/checks/handler-signature.check.mjs.map +1 -1
  81. package/esm/cli/commands/doctor/checks/health.check.mjs +3 -0
  82. package/esm/cli/commands/doctor/checks/health.check.mjs.map +1 -1
  83. package/esm/cli/commands/doctor/checks/jwt-secret.check.mjs +1 -0
  84. package/esm/cli/commands/doctor/checks/jwt-secret.check.mjs.map +1 -1
  85. package/esm/cli/commands/doctor/checks/locales-ts-deprecated.check.mjs +23 -27
  86. package/esm/cli/commands/doctor/checks/locales-ts-deprecated.check.mjs.map +1 -1
  87. package/esm/cli/commands/doctor/checks/optional-peers.check.mjs +1 -0
  88. package/esm/cli/commands/doctor/checks/optional-peers.check.mjs.map +1 -1
  89. package/esm/cli/commands/doctor/checks/release-hygiene.check.mjs +4 -0
  90. package/esm/cli/commands/doctor/checks/release-hygiene.check.mjs.map +1 -1
  91. package/esm/cli/commands/doctor/checks/routes.check.mjs +3 -0
  92. package/esm/cli/commands/doctor/checks/routes.check.mjs.map +1 -1
  93. package/esm/cli/commands/doctor/doctor-command.action.mjs +15 -6
  94. package/esm/cli/commands/doctor/doctor-command.action.mjs.map +1 -1
  95. package/esm/cli/commands/doctor/format-report.mjs +30 -2
  96. package/esm/cli/commands/doctor/format-report.mjs.map +1 -1
  97. package/esm/cli/commands/doctor.command.mjs +4 -0
  98. package/esm/cli/commands/doctor.command.mjs.map +1 -1
  99. package/esm/cli/commands/explain/explain-command.action.mjs +64 -0
  100. package/esm/cli/commands/explain/explain-command.action.mjs.map +1 -0
  101. package/esm/cli/commands/explain.command.mjs +23 -0
  102. package/esm/cli/commands/explain.command.mjs.map +1 -0
  103. package/esm/cli/commands/generate/generate.command.mjs +124 -124
  104. package/esm/cli/commands/generate/generate.command.mjs.map +1 -1
  105. package/esm/cli/commands/generate/generators/controller.generator.mjs +5 -2
  106. package/esm/cli/commands/generate/generators/controller.generator.mjs.map +1 -1
  107. package/esm/cli/commands/generate/generators/endpoint.generator.mjs +313 -0
  108. package/esm/cli/commands/generate/generators/endpoint.generator.mjs.map +1 -0
  109. package/esm/cli/commands/generate/generators/migration.generator.mjs +1 -1
  110. package/esm/cli/commands/generate/generators/migration.generator.mjs.map +1 -1
  111. package/esm/cli/commands/generate/generators/model.generator.mjs +4 -3
  112. package/esm/cli/commands/generate/generators/model.generator.mjs.map +1 -1
  113. package/esm/cli/commands/generate/generators/repository.generator.mjs +3 -1
  114. package/esm/cli/commands/generate/generators/repository.generator.mjs.map +1 -1
  115. package/esm/cli/commands/generate/generators/resource.generator.mjs +3 -1
  116. package/esm/cli/commands/generate/generators/resource.generator.mjs.map +1 -1
  117. package/esm/cli/commands/generate/generators/service.generator.mjs +3 -1
  118. package/esm/cli/commands/generate/generators/service.generator.mjs.map +1 -1
  119. package/esm/cli/commands/generate/templates/endpoint-stubs.mjs +341 -0
  120. package/esm/cli/commands/generate/templates/endpoint-stubs.mjs.map +1 -0
  121. package/esm/cli/commands/generate/templates/stubs.mjs +19 -6
  122. package/esm/cli/commands/generate/templates/stubs.mjs.map +1 -1
  123. package/esm/cli/commands/generate/utils/endpoint-schema.mjs +136 -0
  124. package/esm/cli/commands/generate/utils/endpoint-schema.mjs.map +1 -0
  125. package/esm/cli/commands/generate/utils/name-parser.mjs +2 -2
  126. package/esm/cli/commands/generate/utils/name-parser.mjs.map +1 -1
  127. package/esm/cli/commands/generate/utils/path-resolver.mjs +1 -1
  128. package/esm/cli/commands/generate/utils/prompt.mjs.map +1 -1
  129. package/esm/cli/commands/generate/utils/writer.mjs +38 -13
  130. package/esm/cli/commands/generate/utils/writer.mjs.map +1 -1
  131. package/esm/cli/commands/inspect/inspect-command.action.mjs +73 -0
  132. package/esm/cli/commands/inspect/inspect-command.action.mjs.map +1 -0
  133. package/esm/cli/commands/inspect.command.mjs +39 -0
  134. package/esm/cli/commands/inspect.command.mjs.map +1 -0
  135. package/esm/cli/commands/issue/collect-environment.mjs +187 -0
  136. package/esm/cli/commands/issue/collect-environment.mjs.map +1 -0
  137. package/esm/cli/commands/issue/issue-command.action.mjs +70 -0
  138. package/esm/cli/commands/issue/issue-command.action.mjs.map +1 -0
  139. package/esm/cli/commands/issue.command.mjs +31 -0
  140. package/esm/cli/commands/issue.command.mjs.map +1 -0
  141. package/esm/cli/commands/mcp/mcp-command.action.mjs +104 -0
  142. package/esm/cli/commands/mcp/mcp-command.action.mjs.map +1 -0
  143. package/esm/cli/commands/mcp.command.mjs +76 -0
  144. package/esm/cli/commands/mcp.command.mjs.map +1 -0
  145. package/esm/cli/commands/openapi-generator.action.mjs +1 -1
  146. package/esm/cli/commands/openapi-generator.action.mjs.map +1 -1
  147. package/esm/cli/commands/openapi-generator.command.mjs.map +1 -1
  148. package/esm/cli/commands/postman-generator.action.mjs +1 -1
  149. package/esm/cli/commands/postman-generator.action.mjs.map +1 -1
  150. package/esm/cli/commands/postman-generator.command.mjs.map +1 -1
  151. package/esm/cli/commands/routes/format-routes-table.mjs +1 -1
  152. package/esm/cli/commands/routes/route-row.mjs +1 -1
  153. package/esm/cli/commands/routes/routes-diff.action.mjs +3 -3
  154. package/esm/cli/commands/routes/routes-diff.action.mjs.map +1 -1
  155. package/esm/cli/commands/test.command.mjs +131 -0
  156. package/esm/cli/commands/test.command.mjs.map +1 -0
  157. package/esm/cli/commands/trace/trace-command.action.mjs +145 -0
  158. package/esm/cli/commands/trace/trace-command.action.mjs.map +1 -0
  159. package/esm/cli/commands/trace.command.mjs +60 -0
  160. package/esm/cli/commands/trace.command.mjs.map +1 -0
  161. package/esm/cli/commands/typecheck.command.mjs +40 -0
  162. package/esm/cli/commands/typecheck.command.mjs.map +1 -0
  163. package/esm/cli/commands/upgrade.command.mjs +46 -0
  164. package/esm/cli/commands/upgrade.command.mjs.map +1 -0
  165. package/esm/cli/commands-loader.mjs +1 -1
  166. package/esm/cli/flush-and-exit.mjs +34 -0
  167. package/esm/cli/flush-and-exit.mjs.map +1 -0
  168. package/esm/cli/framework-cli-commands.mjs +25 -1
  169. package/esm/cli/framework-cli-commands.mjs.map +1 -1
  170. package/esm/cli/parse-cli-args.mjs +3 -2
  171. package/esm/cli/parse-cli-args.mjs.map +1 -1
  172. package/esm/cli/start.d.mts +1 -1
  173. package/esm/cli/string-similarity.mjs +1 -1
  174. package/esm/commands/cli-command.d.mts +2 -4
  175. package/esm/commands/cli-command.d.mts.map +1 -1
  176. package/esm/commands/index.d.mts +2 -1
  177. package/esm/commands/index.mjs +1 -1
  178. package/esm/commands/types.d.mts +8 -8
  179. package/esm/commands/types.d.mts.map +1 -1
  180. package/esm/config/config-getter.d.mts +2 -3
  181. package/esm/config/config-getter.d.mts.map +1 -1
  182. package/esm/config/config-getter.mjs +5 -5
  183. package/esm/config/config-getter.mjs.map +1 -1
  184. package/esm/config/config-handlers.d.mts +1 -3
  185. package/esm/config/config-handlers.d.mts.map +1 -1
  186. package/esm/config/config-loader.d.mts +1 -2
  187. package/esm/config/config-loader.d.mts.map +1 -1
  188. package/esm/config/config-loader.mjs +35 -14
  189. package/esm/config/config-loader.mjs.map +1 -1
  190. package/esm/config/config-manager.mjs +1 -1
  191. package/esm/config/config-schema.d.mts +70 -0
  192. package/esm/config/config-schema.d.mts.map +1 -0
  193. package/esm/config/config-schema.mjs +77 -0
  194. package/esm/config/config-schema.mjs.map +1 -0
  195. package/esm/config/config-setter.d.mts +2 -4
  196. package/esm/config/config-setter.d.mts.map +1 -1
  197. package/esm/config/config-setter.mjs +2 -2
  198. package/esm/config/config-setter.mjs.map +1 -1
  199. package/esm/config/config-special-handlers.d.mts +2 -4
  200. package/esm/config/config-special-handlers.d.mts.map +1 -1
  201. package/esm/config/index.d.mts +7 -0
  202. package/esm/config/index.mjs +2 -1
  203. package/esm/config/types.d.mts +4 -5
  204. package/esm/config/types.d.mts.map +1 -1
  205. package/esm/connectors/access-connector.d.mts +1 -3
  206. package/esm/connectors/access-connector.d.mts.map +1 -1
  207. package/esm/connectors/access-connector.mjs +2 -2
  208. package/esm/connectors/access-connector.mjs.map +1 -1
  209. package/esm/connectors/ai-connector.d.mts +1 -3
  210. package/esm/connectors/ai-connector.d.mts.map +1 -1
  211. package/esm/connectors/ai-connector.mjs +2 -2
  212. package/esm/connectors/ai-connector.mjs.map +1 -1
  213. package/esm/connectors/assert-no-reserved-connector-names.d.mts +1 -3
  214. package/esm/connectors/assert-no-reserved-connector-names.d.mts.map +1 -1
  215. package/esm/connectors/assert-no-reserved-connector-names.mjs +2 -1
  216. package/esm/connectors/assert-no-reserved-connector-names.mjs.map +1 -1
  217. package/esm/connectors/assert-unique-connector-names.d.mts +1 -3
  218. package/esm/connectors/assert-unique-connector-names.d.mts.map +1 -1
  219. package/esm/connectors/assert-unique-connector-names.mjs +26 -1
  220. package/esm/connectors/assert-unique-connector-names.mjs.map +1 -1
  221. package/esm/connectors/base-connector.d.mts +1 -3
  222. package/esm/connectors/base-connector.d.mts.map +1 -1
  223. package/esm/connectors/cache-connector.d.mts +1 -3
  224. package/esm/connectors/cache-connector.d.mts.map +1 -1
  225. package/esm/connectors/cache-connector.mjs +3 -3
  226. package/esm/connectors/cache-connector.mjs.map +1 -1
  227. package/esm/connectors/connectors-manager.d.mts +2 -4
  228. package/esm/connectors/connectors-manager.d.mts.map +1 -1
  229. package/esm/connectors/connectors-manager.mjs +2 -2
  230. package/esm/connectors/connectors-manager.mjs.map +1 -1
  231. package/esm/connectors/database-connector.d.mts +1 -3
  232. package/esm/connectors/database-connector.d.mts.map +1 -1
  233. package/esm/connectors/database-connector.mjs +2 -2
  234. package/esm/connectors/database-connector.mjs.map +1 -1
  235. package/esm/connectors/describe-server-address.mjs +4 -4
  236. package/esm/connectors/describe-server-address.mjs.map +1 -1
  237. package/esm/connectors/herald-connector.d.mts +1 -3
  238. package/esm/connectors/herald-connector.d.mts.map +1 -1
  239. package/esm/connectors/herald-connector.mjs +2 -2
  240. package/esm/connectors/herald-connector.mjs.map +1 -1
  241. package/esm/connectors/http-connector.d.mts +1 -3
  242. package/esm/connectors/http-connector.d.mts.map +1 -1
  243. package/esm/connectors/http-connector.mjs +11 -9
  244. package/esm/connectors/http-connector.mjs.map +1 -1
  245. package/esm/connectors/index.d.mts +2 -1
  246. package/esm/connectors/index.mjs +1 -1
  247. package/esm/connectors/logger-connector.d.mts +1 -3
  248. package/esm/connectors/logger-connector.d.mts.map +1 -1
  249. package/esm/connectors/logger-connector.mjs +2 -2
  250. package/esm/connectors/logger-connector.mjs.map +1 -1
  251. package/esm/connectors/mail-connector.d.mts +1 -3
  252. package/esm/connectors/mail-connector.d.mts.map +1 -1
  253. package/esm/connectors/mail-connector.mjs +2 -2
  254. package/esm/connectors/mail-connector.mjs.map +1 -1
  255. package/esm/connectors/notifications-connector.d.mts +1 -3
  256. package/esm/connectors/notifications-connector.d.mts.map +1 -1
  257. package/esm/connectors/notifications-connector.mjs +2 -2
  258. package/esm/connectors/notifications-connector.mjs.map +1 -1
  259. package/esm/connectors/register-configured-connectors.d.mts +2 -4
  260. package/esm/connectors/register-configured-connectors.d.mts.map +1 -1
  261. package/esm/connectors/single-server-warnings.mjs.map +1 -1
  262. package/esm/connectors/socket-connector.d.mts +1 -3
  263. package/esm/connectors/socket-connector.d.mts.map +1 -1
  264. package/esm/connectors/socket-connector.mjs +12 -10
  265. package/esm/connectors/socket-connector.mjs.map +1 -1
  266. package/esm/connectors/storage.connector.d.mts +1 -3
  267. package/esm/connectors/storage.connector.d.mts.map +1 -1
  268. package/esm/connectors/storage.connector.mjs +2 -2
  269. package/esm/connectors/storage.connector.mjs.map +1 -1
  270. package/esm/connectors/types.d.mts +17 -14
  271. package/esm/connectors/types.d.mts.map +1 -1
  272. package/esm/container/container-instance-registry.mjs.map +1 -1
  273. package/esm/container/development-app-modules.d.mts +7 -5
  274. package/esm/container/development-app-modules.d.mts.map +1 -1
  275. package/esm/container/development-model-modules.d.mts +6 -5
  276. package/esm/container/development-model-modules.d.mts.map +1 -1
  277. package/esm/container/index.d.mts +4 -4
  278. package/esm/container/index.d.mts.map +1 -1
  279. package/esm/container/index.mjs.map +1 -1
  280. package/esm/database/index.d.mts +3 -1
  281. package/esm/database/index.mjs +1 -1
  282. package/esm/database/migrate-action.mjs +1 -1
  283. package/esm/database/migrate-action.mjs.map +1 -1
  284. package/esm/database/models/database-log/database-log.d.mts +2 -31
  285. package/esm/database/models/database-log/database-log.d.mts.map +1 -1
  286. package/esm/database/models/database-log/index.d.mts +2 -1
  287. package/esm/database/models/database-log/index.mjs +1 -1
  288. package/esm/database/seed-command-action.mjs +1 -1
  289. package/esm/database/seeds/seeder.d.mts +2 -4
  290. package/esm/database/seeds/seeder.d.mts.map +1 -1
  291. package/esm/database/seeds/seeder.errors.d.mts +6 -3
  292. package/esm/database/seeds/seeder.errors.d.mts.map +1 -1
  293. package/esm/database/seeds/seeder.errors.mjs +2 -0
  294. package/esm/database/seeds/seeder.errors.mjs.map +1 -1
  295. package/esm/database/seeds/seeders.manager.mjs +2 -1
  296. package/esm/database/seeds/seeders.manager.mjs.map +1 -1
  297. package/esm/database/seeds/types.d.mts +7 -8
  298. package/esm/database/seeds/types.d.mts.map +1 -1
  299. package/esm/database/utils.d.mts +4 -5
  300. package/esm/database/utils.d.mts.map +1 -1
  301. package/esm/dev-server/app-module-registry.mjs +1 -1
  302. package/esm/dev-server/boot-precondition-error.mjs +1 -0
  303. package/esm/dev-server/boot-precondition-error.mjs.map +1 -1
  304. package/esm/dev-server/create-worker.mjs +17 -9
  305. package/esm/dev-server/create-worker.mjs.map +1 -1
  306. package/esm/dev-server/dependency-graph.d.mts +1 -3
  307. package/esm/dev-server/dependency-graph.d.mts.map +1 -1
  308. package/esm/dev-server/dependency-graph.mjs +1 -1
  309. package/esm/dev-server/dependency-graph.mjs.map +1 -1
  310. package/esm/dev-server/dev-agent-tooling.mjs +135 -0
  311. package/esm/dev-server/dev-agent-tooling.mjs.map +1 -0
  312. package/esm/dev-server/dev-logger.mjs.map +1 -1
  313. package/esm/dev-server/development-server.mjs +8 -0
  314. package/esm/dev-server/development-server.mjs.map +1 -1
  315. package/esm/dev-server/extract-translation-keys.mjs +16 -17
  316. package/esm/dev-server/extract-translation-keys.mjs.map +1 -1
  317. package/esm/dev-server/file-manager.d.mts +3 -7
  318. package/esm/dev-server/file-manager.d.mts.map +1 -1
  319. package/esm/dev-server/file-operations.d.mts +1 -3
  320. package/esm/dev-server/file-operations.d.mts.map +1 -1
  321. package/esm/dev-server/files-orchestrator.mjs +4 -5
  322. package/esm/dev-server/files-orchestrator.mjs.map +1 -1
  323. package/esm/dev-server/files-watcher.mjs +12 -11
  324. package/esm/dev-server/files-watcher.mjs.map +1 -1
  325. package/esm/dev-server/health-checker/checkers/eslint-health-checker.mjs +2 -3
  326. package/esm/dev-server/health-checker/checkers/eslint-health-checker.mjs.map +1 -1
  327. package/esm/dev-server/health-checker/checkers/oxlint-health-checker.mjs +33 -0
  328. package/esm/dev-server/health-checker/checkers/oxlint-health-checker.mjs.map +1 -0
  329. package/esm/dev-server/health-checker/checkers/typescript-health-checker.mjs +36 -115
  330. package/esm/dev-server/health-checker/checkers/typescript-health-checker.mjs.map +1 -1
  331. package/esm/dev-server/health-checker/default-health-checkers.mjs +31 -0
  332. package/esm/dev-server/health-checker/default-health-checkers.mjs.map +1 -0
  333. package/esm/dev-server/health-checker/file-health-checker.contract.d.mts +12 -6
  334. package/esm/dev-server/health-checker/file-health-checker.contract.d.mts.map +1 -1
  335. package/esm/dev-server/health-checker/file-health-result.d.mts +2 -2
  336. package/esm/dev-server/health-checker/file-health-result.d.mts.map +1 -1
  337. package/esm/dev-server/health-checker/files-healthcare.manager.mjs +16 -4
  338. package/esm/dev-server/health-checker/files-healthcare.manager.mjs.map +1 -1
  339. package/esm/dev-server/health-checker/oxlint-runner.mjs +303 -0
  340. package/esm/dev-server/health-checker/oxlint-runner.mjs.map +1 -0
  341. package/esm/dev-server/health-checker/workers/eslint-health.worker.d.mts +1 -1
  342. package/esm/dev-server/health-checker/workers/oxlint-health.worker.d.mts +1 -0
  343. package/esm/dev-server/health-checker/workers/oxlint-health.worker.mjs +42 -0
  344. package/esm/dev-server/health-checker/workers/oxlint-health.worker.mjs.map +1 -0
  345. package/esm/dev-server/health-checker/workers/ts-health.worker.d.mts +1 -1
  346. package/esm/dev-server/health-checker/workers/ts-health.worker.mjs +40 -174
  347. package/esm/dev-server/health-checker/workers/ts-health.worker.mjs.map +1 -1
  348. package/esm/dev-server/loader/hook-thread.d.mts +4 -8
  349. package/esm/dev-server/loader/hook-thread.d.mts.map +1 -1
  350. package/esm/dev-server/loader/load-hook.d.mts +10 -6
  351. package/esm/dev-server/loader/load-hook.d.mts.map +1 -1
  352. package/esm/dev-server/loader/load-hook.mjs +4 -3
  353. package/esm/dev-server/loader/load-hook.mjs.map +1 -1
  354. package/esm/dev-server/loader/loader-port-acks.mjs +1 -1
  355. package/esm/dev-server/loader/loader-port-acks.mjs.map +1 -1
  356. package/esm/dev-server/loader/own-resolver.mjs +1 -1
  357. package/esm/dev-server/loader/register-loader.mjs +4 -3
  358. package/esm/dev-server/loader/register-loader.mjs.map +1 -1
  359. package/esm/dev-server/loader/resolve-hook.d.mts +2 -2
  360. package/esm/dev-server/loader/resolve-hook.d.mts.map +1 -1
  361. package/esm/dev-server/loader/resolve-hook.mjs +3 -2
  362. package/esm/dev-server/loader/resolve-hook.mjs.map +1 -1
  363. package/esm/dev-server/loader/transpile-cache.mjs +3 -2
  364. package/esm/dev-server/loader/transpile-cache.mjs.map +1 -1
  365. package/esm/dev-server/manifest-manager.d.mts +1 -3
  366. package/esm/dev-server/manifest-manager.d.mts.map +1 -1
  367. package/esm/dev-server/model-module-registry.mjs +3 -3
  368. package/esm/dev-server/model-module-registry.mjs.map +1 -1
  369. package/esm/dev-server/model-resource-typings.mjs +40 -47
  370. package/esm/dev-server/model-resource-typings.mjs.map +1 -1
  371. package/esm/dev-server/module-loader.mjs +3 -2
  372. package/esm/dev-server/module-loader.mjs.map +1 -1
  373. package/esm/dev-server/package-json-manager.mjs +1 -1
  374. package/esm/dev-server/parse-imports.mjs +7 -39
  375. package/esm/dev-server/parse-imports.mjs.map +1 -1
  376. package/esm/dev-server/read-config-ast.mjs +3 -33
  377. package/esm/dev-server/read-config-ast.mjs.map +1 -1
  378. package/esm/dev-server/ready-block.mjs +1 -1
  379. package/esm/dev-server/route-types-publisher.mjs +1 -1
  380. package/esm/dev-server/shortcuts.mjs +1 -1
  381. package/esm/dev-server/special-files-collector.d.mts +2 -4
  382. package/esm/dev-server/special-files-collector.d.mts.map +1 -1
  383. package/esm/dev-server/start-development-server.mjs.map +1 -1
  384. package/esm/dev-server/supervisor.mjs +1 -1
  385. package/esm/dev-server/translation-keys-sources.mjs +1 -1
  386. package/esm/dev-server/translation-keys-sources.mjs.map +1 -1
  387. package/esm/dev-server/tsconfig-manager.mjs +3 -3
  388. package/esm/dev-server/tsconfig-manager.mjs.map +1 -1
  389. package/esm/dev-server/type-generator.mjs +31 -38
  390. package/esm/dev-server/type-generator.mjs.map +1 -1
  391. package/esm/dev-server/types.d.mts +3 -4
  392. package/esm/dev-server/types.d.mts.map +1 -1
  393. package/esm/dev-server/update-check-cache.mjs +2 -2
  394. package/esm/dev-server/update-check-cache.mjs.map +1 -1
  395. package/esm/encryption/encrypt.d.mts +2 -3
  396. package/esm/encryption/encrypt.d.mts.map +1 -1
  397. package/esm/encryption/hash.d.mts +1 -2
  398. package/esm/encryption/hash.d.mts.map +1 -1
  399. package/esm/encryption/index.mjs +1 -1
  400. package/esm/encryption/password.d.mts +2 -3
  401. package/esm/encryption/password.d.mts.map +1 -1
  402. package/esm/encryption/types.d.mts +2 -3
  403. package/esm/encryption/types.d.mts.map +1 -1
  404. package/esm/errors/container-key-missing-error.mjs +1 -0
  405. package/esm/errors/container-key-missing-error.mjs.map +1 -1
  406. package/esm/errors/error-codes.d.mts +660 -0
  407. package/esm/errors/error-codes.d.mts.map +1 -0
  408. package/esm/errors/error-codes.mjs +634 -0
  409. package/esm/errors/error-codes.mjs.map +1 -0
  410. package/esm/errors/esbuild-binary-missing-error.mjs +1 -0
  411. package/esm/errors/esbuild-binary-missing-error.mjs.map +1 -1
  412. package/esm/errors/index.d.mts +3 -1
  413. package/esm/errors/index.mjs +3 -1
  414. package/esm/errors/unknown-locale-error.mjs +1 -0
  415. package/esm/errors/unknown-locale-error.mjs.map +1 -1
  416. package/esm/errors/warlock-error.d.mts +21 -0
  417. package/esm/errors/warlock-error.d.mts.map +1 -0
  418. package/esm/errors/warlock-error.mjs +22 -0
  419. package/esm/errors/warlock-error.mjs.map +1 -0
  420. package/esm/generations/add-command.action.mjs +22 -5
  421. package/esm/generations/add-command.action.mjs.map +1 -1
  422. package/esm/generations/features/access.feature.mjs +1 -1
  423. package/esm/generations/features/access.feature.mjs.map +1 -1
  424. package/esm/generations/features/bull-board.feature.mjs +3 -2
  425. package/esm/generations/features/bull-board.feature.mjs.map +1 -1
  426. package/esm/generations/features/mysql.feature.mjs.map +1 -1
  427. package/esm/generations/features/notifications.feature.mjs +7 -3
  428. package/esm/generations/features/notifications.feature.mjs.map +1 -1
  429. package/esm/generations/features/queue.feature.mjs +1 -1
  430. package/esm/generations/features/queue.feature.mjs.map +1 -1
  431. package/esm/generations/features/react-email.feature.mjs +1 -1
  432. package/esm/generations/features/react-email.feature.mjs.map +1 -1
  433. package/esm/generations/features/shadcn.feature.mjs +1 -1
  434. package/esm/generations/features/shadcn.feature.mjs.map +1 -1
  435. package/esm/generations/features/shared/link-ai-package-import.mjs +1 -1
  436. package/esm/generations/features/shared/link-ai-package-import.mjs.map +1 -1
  437. package/esm/generations/features/shared/merge-web-sitemap-config.mjs +16 -23
  438. package/esm/generations/features/shared/merge-web-sitemap-config.mjs.map +1 -1
  439. package/esm/generations/features/shared/patch-tsconfig-include.mjs +2 -2
  440. package/esm/generations/features/shared/patch-tsconfig-include.mjs.map +1 -1
  441. package/esm/generations/features/shared/relocate-conflicting-home-route.mjs +2 -2
  442. package/esm/generations/features/shared/relocate-conflicting-home-route.mjs.map +1 -1
  443. package/esm/generations/features/sitemap.feature.mjs +3 -2
  444. package/esm/generations/features/sitemap.feature.mjs.map +1 -1
  445. package/esm/generations/features/tailwind.feature.mjs +1 -1
  446. package/esm/generations/features/tailwind.feature.mjs.map +1 -1
  447. package/esm/generations/features/test.feature.mjs +11 -6
  448. package/esm/generations/features/test.feature.mjs.map +1 -1
  449. package/esm/generations/features/web.feature.mjs +1 -1
  450. package/esm/generations/features/web.feature.mjs.map +1 -1
  451. package/esm/generations/generation-fs.mjs +73 -0
  452. package/esm/generations/generation-fs.mjs.map +1 -0
  453. package/esm/generations/generation-run.mjs +185 -0
  454. package/esm/generations/generation-run.mjs.map +1 -0
  455. package/esm/generations/stubs.mjs +156 -14
  456. package/esm/generations/stubs.mjs.map +1 -1
  457. package/esm/http/boot-port-preflight.d.mts +4 -5
  458. package/esm/http/boot-port-preflight.d.mts.map +1 -1
  459. package/esm/http/boot-port-preflight.mjs +2 -2
  460. package/esm/http/boot-port-preflight.mjs.map +1 -1
  461. package/esm/http/bounded-stream-queue.d.mts +10 -0
  462. package/esm/http/bounded-stream-queue.d.mts.map +1 -0
  463. package/esm/http/bounded-stream-queue.mjs +97 -0
  464. package/esm/http/bounded-stream-queue.mjs.map +1 -0
  465. package/esm/http/build-cors-options.mjs +2 -2
  466. package/esm/http/build-cors-options.mjs.map +1 -1
  467. package/esm/http/build-rate-limit-options.d.mts +15 -3
  468. package/esm/http/build-rate-limit-options.d.mts.map +1 -1
  469. package/esm/http/build-rate-limit-options.mjs +1 -1
  470. package/esm/http/build-rate-limit-options.mjs.map +1 -1
  471. package/esm/http/conditional-request.d.mts +87 -0
  472. package/esm/http/conditional-request.d.mts.map +1 -0
  473. package/esm/http/conditional-request.mjs +121 -0
  474. package/esm/http/conditional-request.mjs.map +1 -0
  475. package/esm/http/config.d.mts +2 -4
  476. package/esm/http/config.d.mts.map +1 -1
  477. package/esm/http/config.mjs +2 -2
  478. package/esm/http/config.mjs.map +1 -1
  479. package/esm/http/context/request-context.d.mts +6 -7
  480. package/esm/http/context/request-context.d.mts.map +1 -1
  481. package/esm/http/context/request-memo.d.mts +1 -2
  482. package/esm/http/context/request-memo.d.mts.map +1 -1
  483. package/esm/http/createHttpApplication.d.mts +2 -3
  484. package/esm/http/createHttpApplication.d.mts.map +1 -1
  485. package/esm/http/createHttpApplication.mjs +2 -2
  486. package/esm/http/createHttpApplication.mjs.map +1 -1
  487. package/esm/http/csp.d.mts +12 -12
  488. package/esm/http/csp.d.mts.map +1 -1
  489. package/esm/http/csp.mjs +3 -2
  490. package/esm/http/csp.mjs.map +1 -1
  491. package/esm/http/csrf-default-guard.d.mts +2 -4
  492. package/esm/http/csrf-default-guard.d.mts.map +1 -1
  493. package/esm/http/csrf-default-guard.mjs +1 -1
  494. package/esm/http/csrf-default-guard.mjs.map +1 -1
  495. package/esm/http/csrf-origin-policy.d.mts +7 -9
  496. package/esm/http/csrf-origin-policy.d.mts.map +1 -1
  497. package/esm/http/csrf-origin-policy.mjs +2 -2
  498. package/esm/http/csrf-origin-policy.mjs.map +1 -1
  499. package/esm/http/database/RequestLog.d.mts +26 -87
  500. package/esm/http/database/RequestLog.d.mts.map +1 -1
  501. package/esm/http/error-codes.d.mts +1 -2
  502. package/esm/http/error-codes.d.mts.map +1 -1
  503. package/esm/http/error-mapper.d.mts +2 -4
  504. package/esm/http/error-mapper.d.mts.map +1 -1
  505. package/esm/http/error-mapper.mjs +2 -2
  506. package/esm/http/error-mapper.mjs.map +1 -1
  507. package/esm/http/errors/errors.d.mts +30 -29
  508. package/esm/http/errors/errors.d.mts.map +1 -1
  509. package/esm/http/errors/errors.mjs +1 -0
  510. package/esm/http/errors/errors.mjs.map +1 -1
  511. package/esm/http/escape-header-value.d.mts +17 -0
  512. package/esm/http/escape-header-value.d.mts.map +1 -0
  513. package/esm/http/escape-header-value.mjs +27 -0
  514. package/esm/http/escape-header-value.mjs.map +1 -0
  515. package/esm/http/events.d.mts +2 -4
  516. package/esm/http/events.d.mts.map +1 -1
  517. package/esm/http/flush-pending-cookies.mjs.map +1 -1
  518. package/esm/http/health.d.mts +4 -4
  519. package/esm/http/health.d.mts.map +1 -1
  520. package/esm/http/index.d.mts +9 -3
  521. package/esm/http/index.mjs +5 -2
  522. package/esm/http/lazy-static.mjs +194 -0
  523. package/esm/http/lazy-static.mjs.map +1 -0
  524. package/esm/http/middleware/cache-response-middleware.d.mts +2 -4
  525. package/esm/http/middleware/cache-response-middleware.d.mts.map +1 -1
  526. package/esm/http/middleware/concurrency-limit.middleware.d.mts +3 -3
  527. package/esm/http/middleware/concurrency-limit.middleware.d.mts.map +1 -1
  528. package/esm/http/middleware/idempotency.middleware.d.mts +3 -3
  529. package/esm/http/middleware/idempotency.middleware.d.mts.map +1 -1
  530. package/esm/http/middleware/idempotency.middleware.mjs +6 -6
  531. package/esm/http/middleware/idempotency.middleware.mjs.map +1 -1
  532. package/esm/http/middleware/index.d.mts +3 -1
  533. package/esm/http/middleware/index.mjs +1 -1
  534. package/esm/http/middleware/inject-request-context.d.mts +2 -4
  535. package/esm/http/middleware/inject-request-context.d.mts.map +1 -1
  536. package/esm/http/middleware/inject-request-context.mjs +3 -3
  537. package/esm/http/middleware/inject-request-context.mjs.map +1 -1
  538. package/esm/http/middleware/ip-filter.middleware.d.mts +3 -3
  539. package/esm/http/middleware/ip-filter.middleware.d.mts.map +1 -1
  540. package/esm/http/middleware/maintenance.middleware.d.mts +3 -3
  541. package/esm/http/middleware/maintenance.middleware.d.mts.map +1 -1
  542. package/esm/http/middleware/maintenance.middleware.mjs +4 -4
  543. package/esm/http/middleware/maintenance.middleware.mjs.map +1 -1
  544. package/esm/http/middleware/max-body-size.middleware.d.mts +2 -2
  545. package/esm/http/middleware/max-body-size.middleware.d.mts.map +1 -1
  546. package/esm/http/middleware/middleware-list.d.mts +1 -3
  547. package/esm/http/middleware/middleware-list.d.mts.map +1 -1
  548. package/esm/http/middleware/rate-limit.middleware.d.mts +3 -3
  549. package/esm/http/middleware/rate-limit.middleware.d.mts.map +1 -1
  550. package/esm/http/middleware/rate-limit.middleware.mjs +2 -2
  551. package/esm/http/middleware/rate-limit.middleware.mjs.map +1 -1
  552. package/esm/http/middleware/utils/cidr-match.d.mts +2 -3
  553. package/esm/http/middleware/utils/cidr-match.d.mts.map +1 -1
  554. package/esm/http/middleware/utils/idempotency-key.d.mts +3 -5
  555. package/esm/http/middleware/utils/idempotency-key.d.mts.map +1 -1
  556. package/esm/http/middleware/utils/index.d.mts +2 -1
  557. package/esm/http/middleware/utils/parse-size.d.mts +1 -2
  558. package/esm/http/middleware/utils/parse-size.d.mts.map +1 -1
  559. package/esm/http/middleware/utils/parse-size.mjs +2 -2
  560. package/esm/http/middleware/utils/parse-size.mjs.map +1 -1
  561. package/esm/http/plugins.d.mts +2 -4
  562. package/esm/http/plugins.d.mts.map +1 -1
  563. package/esm/http/plugins.mjs +17 -14
  564. package/esm/http/plugins.mjs.map +1 -1
  565. package/esm/http/port-preflight.d.mts +3 -4
  566. package/esm/http/port-preflight.d.mts.map +1 -1
  567. package/esm/http/rate-limit-cache-store.mjs +6 -4
  568. package/esm/http/rate-limit-cache-store.mjs.map +1 -1
  569. package/esm/http/ready-report.d.mts +15 -10
  570. package/esm/http/ready-report.d.mts.map +1 -1
  571. package/esm/http/request-controller.d.mts +1 -3
  572. package/esm/http/request-controller.d.mts.map +1 -1
  573. package/esm/http/request-log-snapshot.d.mts +26 -15
  574. package/esm/http/request-log-snapshot.d.mts.map +1 -1
  575. package/esm/http/request-log-snapshot.mjs +85 -6
  576. package/esm/http/request-log-snapshot.mjs.map +1 -1
  577. package/esm/http/request.d.mts +6 -5
  578. package/esm/http/request.d.mts.map +1 -1
  579. package/esm/http/request.mjs +13 -11
  580. package/esm/http/request.mjs.map +1 -1
  581. package/esm/http/response.d.mts +23 -12
  582. package/esm/http/response.d.mts.map +1 -1
  583. package/esm/http/response.mjs +169 -81
  584. package/esm/http/response.mjs.map +1 -1
  585. package/esm/http/safe-redirect.d.mts +50 -0
  586. package/esm/http/safe-redirect.d.mts.map +1 -0
  587. package/esm/http/safe-redirect.mjs +80 -0
  588. package/esm/http/safe-redirect.mjs.map +1 -0
  589. package/esm/http/serialized.d.mts +12 -13
  590. package/esm/http/serialized.d.mts.map +1 -1
  591. package/esm/http/server-rebuilt.d.mts +3 -5
  592. package/esm/http/server-rebuilt.d.mts.map +1 -1
  593. package/esm/http/server.d.mts +11 -9
  594. package/esm/http/server.d.mts.map +1 -1
  595. package/esm/http/server.mjs +17 -7
  596. package/esm/http/server.mjs.map +1 -1
  597. package/esm/http/stream-react-response.d.mts +7 -7
  598. package/esm/http/stream-react-response.d.mts.map +1 -1
  599. package/esm/http/stream-transport.mjs +4 -2
  600. package/esm/http/stream-transport.mjs.map +1 -1
  601. package/esm/http/tracing/index.mjs +1 -1
  602. package/esm/http/tracing/trace-id.d.mts +2 -3
  603. package/esm/http/tracing/trace-id.d.mts.map +1 -1
  604. package/esm/http/tracing/tracing-dispatcher.d.mts +10 -11
  605. package/esm/http/tracing/tracing-dispatcher.d.mts.map +1 -1
  606. package/esm/http/tracing/tracing-dispatcher.mjs +2 -2
  607. package/esm/http/tracing/tracing-dispatcher.mjs.map +1 -1
  608. package/esm/http/tracing/tracing.type.d.mts +11 -9
  609. package/esm/http/tracing/tracing.type.d.mts.map +1 -1
  610. package/esm/http/types.d.mts +78 -39
  611. package/esm/http/types.d.mts.map +1 -1
  612. package/esm/http/uploaded-file.d.mts +6 -5
  613. package/esm/http/uploaded-file.d.mts.map +1 -1
  614. package/esm/http/uploads/generate-image-variant.mjs +1 -1
  615. package/esm/http/uploads/generate-image-variants.d.mts +13 -10
  616. package/esm/http/uploads/generate-image-variants.d.mts.map +1 -1
  617. package/esm/http/uploads/generate-image-variants.mjs +62 -25
  618. package/esm/http/uploads/generate-image-variants.mjs.map +1 -1
  619. package/esm/http/uploads/image-variant-cache-entries.mjs +78 -0
  620. package/esm/http/uploads/image-variant-cache-entries.mjs.map +1 -0
  621. package/esm/http/uploads/image-variant-cache.mjs +72 -30
  622. package/esm/http/uploads/image-variant-cache.mjs.map +1 -1
  623. package/esm/http/uploads/image-variant-types.d.mts +9 -9
  624. package/esm/http/uploads/image-variant-types.d.mts.map +1 -1
  625. package/esm/http/uploads/image-variants-config-error.d.mts +4 -3
  626. package/esm/http/uploads/image-variants-config-error.d.mts.map +1 -1
  627. package/esm/http/uploads/image-variants-config-error.mjs +3 -2
  628. package/esm/http/uploads/image-variants-config-error.mjs.map +1 -1
  629. package/esm/http/uploads/index.d.mts +2 -1
  630. package/esm/http/uploads/index.mjs +1 -1
  631. package/esm/http/uploads/load-variant-source.mjs +1 -1
  632. package/esm/http/uploads/load-variant-source.mjs.map +1 -1
  633. package/esm/http/uploads/parse-uploaded-file-query.mjs +1 -1
  634. package/esm/http/uploads/parse-uploaded-file-query.mjs.map +1 -1
  635. package/esm/http/uploads/purge-image-variants.d.mts +9 -6
  636. package/esm/http/uploads/purge-image-variants.d.mts.map +1 -1
  637. package/esm/http/uploads/purge-image-variants.mjs +16 -16
  638. package/esm/http/uploads/purge-image-variants.mjs.map +1 -1
  639. package/esm/http/uploads/remote-variant-source.mjs +115 -0
  640. package/esm/http/uploads/remote-variant-source.mjs.map +1 -0
  641. package/esm/http/uploads/resolve-image-variant.d.mts +6 -9
  642. package/esm/http/uploads/resolve-image-variant.d.mts.map +1 -1
  643. package/esm/http/uploads/resolve-image-variant.mjs +10 -18
  644. package/esm/http/uploads/resolve-image-variant.mjs.map +1 -1
  645. package/esm/http/uploads/resolve-image-variants-config.mjs +7 -5
  646. package/esm/http/uploads/resolve-image-variants-config.mjs.map +1 -1
  647. package/esm/http/uploads/resolve-original-content-type.mjs +1 -1
  648. package/esm/http/uploads/resolve-original-content-type.mjs.map +1 -1
  649. package/esm/http/uploads/resolve-remote-image-variant.mjs +89 -0
  650. package/esm/http/uploads/resolve-remote-image-variant.mjs.map +1 -0
  651. package/esm/http/uploads/trim-image-variant-cache.mjs +193 -0
  652. package/esm/http/uploads/trim-image-variant-cache.mjs.map +1 -0
  653. package/esm/http/uploads/uploaded-file.controller.d.mts +9 -6
  654. package/esm/http/uploads/uploaded-file.controller.d.mts.map +1 -1
  655. package/esm/http/uploads/uploaded-file.controller.mjs +18 -9
  656. package/esm/http/uploads/uploaded-file.controller.mjs.map +1 -1
  657. package/esm/http/uploads/variant-cache-key.mjs +2 -2
  658. package/esm/http/uploads-config.d.mts +2 -4
  659. package/esm/http/uploads-config.d.mts.map +1 -1
  660. package/esm/http/uploads-types.d.mts +22 -16
  661. package/esm/http/uploads-types.d.mts.map +1 -1
  662. package/esm/http/xmlable.d.mts +1 -2
  663. package/esm/http/xmlable.d.mts.map +1 -1
  664. package/esm/image/image.d.mts +6 -7
  665. package/esm/image/image.d.mts.map +1 -1
  666. package/esm/image/image.mjs.map +1 -1
  667. package/esm/image/index.d.mts +2 -1
  668. package/esm/image/index.mjs +1 -1
  669. package/esm/index.d.mts +38 -6
  670. package/esm/index.mjs +14 -3
  671. package/esm/loader/app-module-importer.d.mts +1 -2
  672. package/esm/loader/app-module-importer.d.mts.map +1 -1
  673. package/esm/localization/index.mjs +1 -1
  674. package/esm/localization/parse-locale-dictionary.d.mts +6 -5
  675. package/esm/localization/parse-locale-dictionary.d.mts.map +1 -1
  676. package/esm/localization/parse-locale-dictionary.mjs +2 -1
  677. package/esm/localization/parse-locale-dictionary.mjs.map +1 -1
  678. package/esm/localization/register-locale-dictionary.d.mts +3 -4
  679. package/esm/localization/register-locale-dictionary.d.mts.map +1 -1
  680. package/esm/localization/register-locale-dictionary.mjs +2 -2
  681. package/esm/localization/register-locale-dictionary.mjs.map +1 -1
  682. package/esm/logger/fatal-visibility.d.mts +1 -2
  683. package/esm/logger/fatal-visibility.d.mts.map +1 -1
  684. package/esm/logger/index.d.mts +2 -1
  685. package/esm/logger/index.mjs +1 -1
  686. package/esm/logger/logger.d.mts +1 -3
  687. package/esm/logger/logger.d.mts.map +1 -1
  688. package/esm/logger/types.d.mts +2 -3
  689. package/esm/logger/types.d.mts.map +1 -1
  690. package/esm/mail/config.d.mts +21 -12
  691. package/esm/mail/config.d.mts.map +1 -1
  692. package/esm/mail/config.mjs +16 -1
  693. package/esm/mail/config.mjs.map +1 -1
  694. package/esm/mail/events.d.mts +4 -6
  695. package/esm/mail/events.d.mts.map +1 -1
  696. package/esm/mail/index.d.mts +3 -2
  697. package/esm/mail/index.mjs +2 -2
  698. package/esm/mail/mail.d.mts +1 -3
  699. package/esm/mail/mail.d.mts.map +1 -1
  700. package/esm/mail/mailer-pool.d.mts +5 -7
  701. package/esm/mail/mailer-pool.d.mts.map +1 -1
  702. package/esm/mail/react-mail.d.mts +1 -3
  703. package/esm/mail/react-mail.d.mts.map +1 -1
  704. package/esm/mail/send-mail.d.mts +1 -3
  705. package/esm/mail/send-mail.d.mts.map +1 -1
  706. package/esm/mail/send-mail.mjs +2 -1
  707. package/esm/mail/send-mail.mjs.map +1 -1
  708. package/esm/mail/test-mailbox.d.mts +11 -13
  709. package/esm/mail/test-mailbox.d.mts.map +1 -1
  710. package/esm/mail/types.d.mts +17 -18
  711. package/esm/mail/types.d.mts.map +1 -1
  712. package/esm/manifest/manifest-manager.mjs +1 -1
  713. package/esm/net/index.d.mts +2 -0
  714. package/esm/net/index.mjs +3 -0
  715. package/esm/openapi/build-openapi-document.d.mts +2 -4
  716. package/esm/openapi/build-openapi-document.d.mts.map +1 -1
  717. package/esm/openapi/build-openapi-document.mjs +8 -5
  718. package/esm/openapi/build-openapi-document.mjs.map +1 -1
  719. package/esm/openapi/cast-schema.mjs +1 -1
  720. package/esm/openapi/development-openapi-provider.d.mts +5 -6
  721. package/esm/openapi/development-openapi-provider.d.mts.map +1 -1
  722. package/esm/openapi/error-responses.mjs +28 -2
  723. package/esm/openapi/error-responses.mjs.map +1 -1
  724. package/esm/openapi/index.d.mts +3 -1
  725. package/esm/openapi/index.mjs +1 -1
  726. package/esm/openapi/openapi-child-output.mjs +2 -2
  727. package/esm/openapi/openapi-child-output.mjs.map +1 -1
  728. package/esm/openapi/postman/build-request-body.mjs.map +1 -1
  729. package/esm/openapi/postman/build-request-url.mjs +1 -1
  730. package/esm/openapi/postman/build-request-url.mjs.map +1 -1
  731. package/esm/openapi/postman/build-saved-responses.mjs.map +1 -1
  732. package/esm/openapi/postman/example-from-schema.d.mts +1 -3
  733. package/esm/openapi/postman/example-from-schema.d.mts.map +1 -1
  734. package/esm/openapi/postman/example-from-schema.mjs.map +1 -1
  735. package/esm/openapi/postman/index.d.mts +2 -1
  736. package/esm/openapi/postman/openapi-to-postman-collection.d.mts +3 -5
  737. package/esm/openapi/postman/openapi-to-postman-collection.d.mts.map +1 -1
  738. package/esm/openapi/postman/openapi-to-postman-collection.mjs.map +1 -1
  739. package/esm/openapi/postman/postman-types.d.mts +19 -18
  740. package/esm/openapi/postman/postman-types.d.mts.map +1 -1
  741. package/esm/openapi/postman/schema-refs.d.mts +1 -3
  742. package/esm/openapi/postman/schema-refs.d.mts.map +1 -1
  743. package/esm/openapi/postman/schema-refs.mjs.map +1 -1
  744. package/esm/openapi/postman/uuid-v5.mjs +1 -1
  745. package/esm/openapi/postman/uuid-v5.mjs.map +1 -1
  746. package/esm/openapi/request-schemas.mjs.map +1 -1
  747. package/esm/openapi/response-schemas.mjs.map +1 -1
  748. package/esm/openapi/schema-registry.d.mts +1 -0
  749. package/esm/openapi/schema-registry.mjs.map +1 -1
  750. package/esm/openapi/security.mjs +1 -1
  751. package/esm/openapi/security.mjs.map +1 -1
  752. package/esm/openapi/types.d.mts +23 -20
  753. package/esm/openapi/types.d.mts.map +1 -1
  754. package/esm/production/assert-generated-imports.mjs +2 -1
  755. package/esm/production/assert-generated-imports.mjs.map +1 -1
  756. package/esm/production/build-contributions.mjs +1 -1
  757. package/esm/production/bundle-framework-dependencies.mjs +1 -1
  758. package/esm/production/dist-build-manifest.mjs +1 -1
  759. package/esm/production/esbuild-plugins.mjs.map +1 -1
  760. package/esm/production/esbuild-preflight.mjs +1 -1
  761. package/esm/production/production-builder.mjs +14 -5
  762. package/esm/production/production-builder.mjs.map +1 -1
  763. package/esm/production/production-supervisor.mjs +1 -1
  764. package/esm/production/registration-child-runner.mjs +4 -3
  765. package/esm/production/registration-child-runner.mjs.map +1 -1
  766. package/esm/production/resolve-build-config.d.mts +4 -4
  767. package/esm/production/resolve-build-config.d.mts.map +1 -1
  768. package/esm/production/resolve-build-config.mjs +2 -1
  769. package/esm/production/resolve-build-config.mjs.map +1 -1
  770. package/esm/production/route-registration-child.d.mts +1 -1
  771. package/esm/production/route-registration-child.mjs +8 -7
  772. package/esm/production/route-registration-child.mjs.map +1 -1
  773. package/esm/production/route-registration-snapshot.mjs.map +1 -1
  774. package/esm/production/tsconfig-path-aliases.mjs +1 -1
  775. package/esm/react/index.d.mts +1 -3
  776. package/esm/react/index.d.mts.map +1 -1
  777. package/esm/react/index.mjs.map +1 -1
  778. package/esm/repositories/adapters/cascade/cascade-adapter.d.mts +3 -4
  779. package/esm/repositories/adapters/cascade/cascade-adapter.d.mts.map +1 -1
  780. package/esm/repositories/adapters/cascade/cascade-query-builder.d.mts +2 -3
  781. package/esm/repositories/adapters/cascade/cascade-query-builder.d.mts.map +1 -1
  782. package/esm/repositories/adapters/cascade/filter-applicator.mjs +10 -9
  783. package/esm/repositories/adapters/cascade/filter-applicator.mjs.map +1 -1
  784. package/esm/repositories/adapters/cascade/index.d.mts +2 -1
  785. package/esm/repositories/adapters/cascade/index.mjs +1 -1
  786. package/esm/repositories/contracts/index.d.mts +2 -1
  787. package/esm/repositories/contracts/query-builder.contract.d.mts +4 -6
  788. package/esm/repositories/contracts/query-builder.contract.d.mts.map +1 -1
  789. package/esm/repositories/contracts/repository-adapter.contract.d.mts +1 -3
  790. package/esm/repositories/contracts/repository-adapter.contract.d.mts.map +1 -1
  791. package/esm/repositories/contracts/types.d.mts +23 -25
  792. package/esm/repositories/contracts/types.d.mts.map +1 -1
  793. package/esm/repositories/index.d.mts +4 -1
  794. package/esm/repositories/index.mjs +1 -1
  795. package/esm/repositories/repository.manager.d.mts +2 -3
  796. package/esm/repositories/repository.manager.d.mts.map +1 -1
  797. package/esm/repositories/repository.manager.mjs +2 -2
  798. package/esm/repositories/repository.manager.mjs.map +1 -1
  799. package/esm/resource/define-resource.d.mts +3 -5
  800. package/esm/resource/define-resource.d.mts.map +1 -1
  801. package/esm/resource/index.d.mts +2 -1
  802. package/esm/resource/index.mjs +1 -1
  803. package/esm/resource/nullable-resource.d.mts +5 -7
  804. package/esm/resource/nullable-resource.d.mts.map +1 -1
  805. package/esm/resource/register-resource.d.mts +1 -3
  806. package/esm/resource/register-resource.d.mts.map +1 -1
  807. package/esm/resource/resource-field-builder.d.mts +1 -3
  808. package/esm/resource/resource-field-builder.d.mts.map +1 -1
  809. package/esm/resource/resource.d.mts +3 -5
  810. package/esm/resource/resource.d.mts.map +1 -1
  811. package/esm/resource/resource.mjs +4 -2
  812. package/esm/resource/resource.mjs.map +1 -1
  813. package/esm/resource/types.d.mts +21 -21
  814. package/esm/resource/types.d.mts.map +1 -1
  815. package/esm/restful/index.d.mts +2 -1
  816. package/esm/restful/index.mjs +1 -1
  817. package/esm/restful/restful.d.mts +11 -31
  818. package/esm/restful/restful.d.mts.map +1 -1
  819. package/esm/restful/restful.mjs.map +1 -1
  820. package/esm/router/build-route-rate-limit.mjs.map +1 -1
  821. package/esm/router/dev-dispatch.mjs +31 -12
  822. package/esm/router/dev-dispatch.mjs.map +1 -1
  823. package/esm/router/index.d.mts +5 -2
  824. package/esm/router/index.mjs +3 -1
  825. package/esm/router/log-request-lifecycle.mjs.map +1 -1
  826. package/esm/router/named-api-routes-with-responses.mjs +2 -1
  827. package/esm/router/named-api-routes-with-responses.mjs.map +1 -1
  828. package/esm/router/normalize-request-path.d.mts +1 -2
  829. package/esm/router/normalize-request-path.d.mts.map +1 -1
  830. package/esm/router/normalize-route-path.d.mts +1 -2
  831. package/esm/router/normalize-route-path.d.mts.map +1 -1
  832. package/esm/router/positional-handler-diagnostics.d.mts +15 -13
  833. package/esm/router/positional-handler-diagnostics.d.mts.map +1 -1
  834. package/esm/router/positional-handler-diagnostics.mjs.map +1 -1
  835. package/esm/router/resolve-route-rate-limit.mjs +47 -0
  836. package/esm/router/resolve-route-rate-limit.mjs.map +1 -0
  837. package/esm/router/resolve-route-validation.mjs +19 -0
  838. package/esm/router/resolve-route-validation.mjs.map +1 -0
  839. package/esm/router/route-builder.d.mts +1 -3
  840. package/esm/router/route-builder.d.mts.map +1 -1
  841. package/esm/router/route-guard-names.mjs +30 -0
  842. package/esm/router/route-guard-names.mjs.map +1 -0
  843. package/esm/router/route-name-method-suffix.d.mts +2 -3
  844. package/esm/router/route-name-method-suffix.d.mts.map +1 -1
  845. package/esm/router/route-name-taken-error.d.mts +12 -0
  846. package/esm/router/route-name-taken-error.d.mts.map +1 -0
  847. package/esm/router/route-name-taken-error.mjs +18 -0
  848. package/esm/router/route-name-taken-error.mjs.map +1 -0
  849. package/esm/router/route-registry.d.mts +1 -3
  850. package/esm/router/route-registry.d.mts.map +1 -1
  851. package/esm/router/router.d.mts +34 -17
  852. package/esm/router/router.d.mts.map +1 -1
  853. package/esm/router/router.mjs +74 -39
  854. package/esm/router/router.mjs.map +1 -1
  855. package/esm/router/types.d.mts +156 -37
  856. package/esm/router/types.d.mts.map +1 -1
  857. package/esm/router/unguarded-route-diagnostics.d.mts +38 -0
  858. package/esm/router/unguarded-route-diagnostics.d.mts.map +1 -0
  859. package/esm/router/unguarded-route-diagnostics.mjs +95 -0
  860. package/esm/router/unguarded-route-diagnostics.mjs.map +1 -0
  861. package/esm/socket/index.d.mts +2 -1
  862. package/esm/socket/index.mjs +1 -1
  863. package/esm/socket/types.d.mts +2 -4
  864. package/esm/socket/types.d.mts.map +1 -1
  865. package/esm/socket/utils.d.mts +1 -3
  866. package/esm/socket/utils.d.mts.map +1 -1
  867. package/esm/storage/config.d.mts +4 -6
  868. package/esm/storage/config.d.mts.map +1 -1
  869. package/esm/storage/context/storage-driver-context.d.mts +3 -4
  870. package/esm/storage/context/storage-driver-context.d.mts.map +1 -1
  871. package/esm/storage/drivers/cloud-driver.d.mts +2 -4
  872. package/esm/storage/drivers/cloud-driver.d.mts.map +1 -1
  873. package/esm/storage/drivers/cloud-driver.mjs.map +1 -1
  874. package/esm/storage/drivers/do-spaces-driver.d.mts +1 -3
  875. package/esm/storage/drivers/do-spaces-driver.d.mts.map +1 -1
  876. package/esm/storage/drivers/local-driver.d.mts +2 -3
  877. package/esm/storage/drivers/local-driver.d.mts.map +1 -1
  878. package/esm/storage/drivers/local-driver.mjs +8 -3
  879. package/esm/storage/drivers/local-driver.mjs.map +1 -1
  880. package/esm/storage/drivers/r2-driver.d.mts +1 -3
  881. package/esm/storage/drivers/r2-driver.d.mts.map +1 -1
  882. package/esm/storage/drivers/s3-driver.d.mts +1 -3
  883. package/esm/storage/drivers/s3-driver.d.mts.map +1 -1
  884. package/esm/storage/index.d.mts +2 -1
  885. package/esm/storage/index.mjs +1 -1
  886. package/esm/storage/local-disk-roots.mjs +24 -0
  887. package/esm/storage/local-disk-roots.mjs.map +1 -0
  888. package/esm/storage/scoped-storage.d.mts +2 -3
  889. package/esm/storage/scoped-storage.d.mts.map +1 -1
  890. package/esm/storage/storage-file.d.mts +1 -3
  891. package/esm/storage/storage-file.d.mts.map +1 -1
  892. package/esm/storage/storage.d.mts +17 -4
  893. package/esm/storage/storage.d.mts.map +1 -1
  894. package/esm/storage/storage.mjs +22 -0
  895. package/esm/storage/storage.mjs.map +1 -1
  896. package/esm/storage/types.d.mts +36 -36
  897. package/esm/storage/types.d.mts.map +1 -1
  898. package/esm/storage/utils/classify-ip-address.d.mts +1 -2
  899. package/esm/storage/utils/classify-ip-address.d.mts.map +1 -1
  900. package/esm/storage/utils/contain-path.d.mts +1 -2
  901. package/esm/storage/utils/contain-path.d.mts.map +1 -1
  902. package/esm/storage/utils/mime.d.mts +2 -3
  903. package/esm/storage/utils/mime.d.mts.map +1 -1
  904. package/esm/storage/utils/safe-fetch.d.mts +6 -6
  905. package/esm/storage/utils/safe-fetch.d.mts.map +1 -1
  906. package/esm/storage/utils/safe-fetch.mjs +3 -3
  907. package/esm/storage/utils/safe-fetch.mjs.map +1 -1
  908. package/esm/storage/utils/storage-capability-error.d.mts +1 -3
  909. package/esm/storage/utils/storage-capability-error.d.mts.map +1 -1
  910. package/esm/storage/utils/storage-error.d.mts +2 -3
  911. package/esm/storage/utils/storage-error.d.mts.map +1 -1
  912. package/esm/storage/utils/storage-not-initialized-error.d.mts +3 -2
  913. package/esm/storage/utils/storage-not-initialized-error.d.mts.map +1 -1
  914. package/esm/storage/utils/storage-not-initialized-error.mjs +1 -0
  915. package/esm/storage/utils/storage-not-initialized-error.mjs.map +1 -1
  916. package/esm/tests/authenticated-test-client.d.mts +31 -0
  917. package/esm/tests/authenticated-test-client.d.mts.map +1 -0
  918. package/esm/tests/authenticated-test-client.mjs +40 -0
  919. package/esm/tests/authenticated-test-client.mjs.map +1 -0
  920. package/esm/tests/factories.d.mts +74 -0
  921. package/esm/tests/factories.d.mts.map +1 -0
  922. package/esm/tests/factories.mjs +105 -0
  923. package/esm/tests/factories.mjs.map +1 -0
  924. package/esm/tests/fakes/cache-fake.d.mts +34 -0
  925. package/esm/tests/fakes/cache-fake.d.mts.map +1 -0
  926. package/esm/tests/fakes/cache-fake.mjs +79 -0
  927. package/esm/tests/fakes/cache-fake.mjs.map +1 -0
  928. package/esm/tests/fakes/clock-fake.d.mts +37 -0
  929. package/esm/tests/fakes/clock-fake.d.mts.map +1 -0
  930. package/esm/tests/fakes/clock-fake.mjs +69 -0
  931. package/esm/tests/fakes/clock-fake.mjs.map +1 -0
  932. package/esm/tests/fakes/fake-assertion-error.d.mts +12 -0
  933. package/esm/tests/fakes/fake-assertion-error.d.mts.map +1 -0
  934. package/esm/tests/fakes/fake-assertion-error.mjs +20 -0
  935. package/esm/tests/fakes/fake-assertion-error.mjs.map +1 -0
  936. package/esm/tests/fakes/ids-fake.d.mts +23 -0
  937. package/esm/tests/fakes/ids-fake.d.mts.map +1 -0
  938. package/esm/tests/fakes/ids-fake.mjs +57 -0
  939. package/esm/tests/fakes/ids-fake.mjs.map +1 -0
  940. package/esm/tests/fakes/index.d.mts +9 -0
  941. package/esm/tests/fakes/index.mjs +10 -0
  942. package/esm/tests/fakes/mail-fake.d.mts +49 -0
  943. package/esm/tests/fakes/mail-fake.d.mts.map +1 -0
  944. package/esm/tests/fakes/mail-fake.mjs +111 -0
  945. package/esm/tests/fakes/mail-fake.mjs.map +1 -0
  946. package/esm/tests/fakes/queue-fake.d.mts +56 -0
  947. package/esm/tests/fakes/queue-fake.d.mts.map +1 -0
  948. package/esm/tests/fakes/queue-fake.mjs +134 -0
  949. package/esm/tests/fakes/queue-fake.mjs.map +1 -0
  950. package/esm/tests/fakes/storage-fake.d.mts +35 -0
  951. package/esm/tests/fakes/storage-fake.d.mts.map +1 -0
  952. package/esm/tests/fakes/storage-fake.mjs +122 -0
  953. package/esm/tests/fakes/storage-fake.mjs.map +1 -0
  954. package/esm/tests/fakes/test-fakes.d.mts +38 -0
  955. package/esm/tests/fakes/test-fakes.d.mts.map +1 -0
  956. package/esm/tests/fakes/test-fakes.mjs +90 -0
  957. package/esm/tests/fakes/test-fakes.mjs.map +1 -0
  958. package/esm/tests/index.d.mts +15 -2
  959. package/esm/tests/index.mjs +15 -2
  960. package/esm/tests/snapshot-response.d.mts +33 -0
  961. package/esm/tests/snapshot-response.d.mts.map +1 -0
  962. package/esm/tests/snapshot-response.mjs +42 -0
  963. package/esm/tests/snapshot-response.mjs.map +1 -0
  964. package/esm/tests/start-http-development-server.d.mts +25 -5
  965. package/esm/tests/start-http-development-server.d.mts.map +1 -1
  966. package/esm/tests/start-http-development-server.mjs +41 -8
  967. package/esm/tests/start-http-development-server.mjs.map +1 -1
  968. package/esm/tests/test-connectors-selection.d.mts +2 -2
  969. package/esm/tests/test-connectors-selection.d.mts.map +1 -1
  970. package/esm/tests/test-connectors-selection.mjs +1 -1
  971. package/esm/tests/test-helpers.d.mts +28 -10
  972. package/esm/tests/test-helpers.d.mts.map +1 -1
  973. package/esm/tests/test-helpers.mjs +40 -27
  974. package/esm/tests/test-helpers.mjs.map +1 -1
  975. package/esm/tests/test-http-server.d.mts +66 -0
  976. package/esm/tests/test-http-server.d.mts.map +1 -0
  977. package/esm/tests/test-http-server.mjs +119 -0
  978. package/esm/tests/test-http-server.mjs.map +1 -0
  979. package/esm/tests/test-lifecycle-state.mjs +1 -1
  980. package/esm/tests/vitest-setup.d.mts +17 -7
  981. package/esm/tests/vitest-setup.d.mts.map +1 -1
  982. package/esm/tests/vitest-setup.mjs +12 -4
  983. package/esm/tests/vitest-setup.mjs.map +1 -1
  984. package/esm/tooling/agents-md/agents-md-markers.d.mts +26 -0
  985. package/esm/tooling/agents-md/agents-md-markers.d.mts.map +1 -0
  986. package/esm/tooling/agents-md/agents-md-markers.mjs +60 -0
  987. package/esm/tooling/agents-md/agents-md-markers.mjs.map +1 -0
  988. package/esm/tooling/agents-md/agents-md-refresher.d.mts +43 -0
  989. package/esm/tooling/agents-md/agents-md-refresher.d.mts.map +1 -0
  990. package/esm/tooling/agents-md/agents-md-refresher.mjs +72 -0
  991. package/esm/tooling/agents-md/agents-md-refresher.mjs.map +1 -0
  992. package/esm/tooling/agents-md/index.mjs +7 -0
  993. package/esm/tooling/agents-md/installed-skills.d.mts +34 -0
  994. package/esm/tooling/agents-md/installed-skills.d.mts.map +1 -0
  995. package/esm/tooling/agents-md/installed-skills.mjs +74 -0
  996. package/esm/tooling/agents-md/installed-skills.mjs.map +1 -0
  997. package/esm/tooling/agents-md/render-agents-md.d.mts +34 -0
  998. package/esm/tooling/agents-md/render-agents-md.d.mts.map +1 -0
  999. package/esm/tooling/agents-md/render-agents-md.mjs +195 -0
  1000. package/esm/tooling/agents-md/render-agents-md.mjs.map +1 -0
  1001. package/esm/tooling/agents-md/write-agents-md.d.mts +38 -0
  1002. package/esm/tooling/agents-md/write-agents-md.d.mts.map +1 -0
  1003. package/esm/tooling/agents-md/write-agents-md.mjs +49 -0
  1004. package/esm/tooling/agents-md/write-agents-md.mjs.map +1 -0
  1005. package/esm/tooling/board/board-message.d.mts +29 -0
  1006. package/esm/tooling/board/board-message.d.mts.map +1 -0
  1007. package/esm/tooling/board/board-message.mjs +86 -0
  1008. package/esm/tooling/board/board-message.mjs.map +1 -0
  1009. package/esm/tooling/board/board.d.mts +121 -0
  1010. package/esm/tooling/board/board.d.mts.map +1 -0
  1011. package/esm/tooling/board/board.mjs +407 -0
  1012. package/esm/tooling/board/board.mjs.map +1 -0
  1013. package/esm/tooling/board/board.types.d.mts +81 -0
  1014. package/esm/tooling/board/board.types.d.mts.map +1 -0
  1015. package/esm/tooling/board/board.types.mjs +54 -0
  1016. package/esm/tooling/board/board.types.mjs.map +1 -0
  1017. package/esm/tooling/check/changed-files.d.mts +31 -0
  1018. package/esm/tooling/check/changed-files.d.mts.map +1 -0
  1019. package/esm/tooling/check/changed-files.mjs +73 -0
  1020. package/esm/tooling/check/changed-files.mjs.map +1 -0
  1021. package/esm/tooling/check/check-report.types.d.mts +67 -0
  1022. package/esm/tooling/check/check-report.types.d.mts.map +1 -0
  1023. package/esm/tooling/check/check-report.types.mjs +37 -0
  1024. package/esm/tooling/check/check-report.types.mjs.map +1 -0
  1025. package/esm/tooling/check/code-style-conventions.mjs +106 -0
  1026. package/esm/tooling/check/code-style-conventions.mjs.map +1 -0
  1027. package/esm/tooling/check/conventions-step.d.mts +32 -0
  1028. package/esm/tooling/check/conventions-step.d.mts.map +1 -0
  1029. package/esm/tooling/check/conventions-step.mjs +173 -0
  1030. package/esm/tooling/check/conventions-step.mjs.map +1 -0
  1031. package/esm/tooling/check/environment-step.d.mts +16 -0
  1032. package/esm/tooling/check/environment-step.d.mts.map +1 -0
  1033. package/esm/tooling/check/environment-step.mjs +78 -0
  1034. package/esm/tooling/check/environment-step.mjs.map +1 -0
  1035. package/esm/tooling/check/index.mjs +10 -0
  1036. package/esm/tooling/check/lint-step.d.mts +18 -0
  1037. package/esm/tooling/check/lint-step.d.mts.map +1 -0
  1038. package/esm/tooling/check/lint-step.mjs +112 -0
  1039. package/esm/tooling/check/lint-step.mjs.map +1 -0
  1040. package/esm/tooling/check/request-input.mjs +132 -0
  1041. package/esm/tooling/check/request-input.mjs.map +1 -0
  1042. package/esm/tooling/check/run-check.d.mts +43 -0
  1043. package/esm/tooling/check/run-check.d.mts.map +1 -0
  1044. package/esm/tooling/check/run-check.mjs +192 -0
  1045. package/esm/tooling/check/run-check.mjs.map +1 -0
  1046. package/esm/tooling/check/run-tests.d.mts +55 -0
  1047. package/esm/tooling/check/run-tests.d.mts.map +1 -0
  1048. package/esm/tooling/check/run-tests.mjs +93 -0
  1049. package/esm/tooling/check/run-tests.mjs.map +1 -0
  1050. package/esm/tooling/check/security-conventions.mjs +650 -0
  1051. package/esm/tooling/check/security-conventions.mjs.map +1 -0
  1052. package/esm/tooling/check/source-ast.mjs +155 -0
  1053. package/esm/tooling/check/source-ast.mjs.map +1 -0
  1054. package/esm/tooling/check/source-files.mjs +27 -0
  1055. package/esm/tooling/check/source-files.mjs.map +1 -0
  1056. package/esm/tooling/check/tests-step.d.mts +33 -0
  1057. package/esm/tooling/check/tests-step.d.mts.map +1 -0
  1058. package/esm/tooling/check/tests-step.mjs +177 -0
  1059. package/esm/tooling/check/tests-step.mjs.map +1 -0
  1060. package/esm/tooling/dev-state/dev-server-state.d.mts +43 -0
  1061. package/esm/tooling/dev-state/dev-server-state.d.mts.map +1 -0
  1062. package/esm/tooling/dev-state/dev-server-state.mjs +67 -0
  1063. package/esm/tooling/dev-state/dev-server-state.mjs.map +1 -0
  1064. package/esm/tooling/devtools/devtools-client.d.mts +100 -0
  1065. package/esm/tooling/devtools/devtools-client.d.mts.map +1 -0
  1066. package/esm/tooling/devtools/devtools-client.mjs +155 -0
  1067. package/esm/tooling/devtools/devtools-client.mjs.map +1 -0
  1068. package/esm/tooling/generate/generation.d.mts +90 -0
  1069. package/esm/tooling/generate/generation.d.mts.map +1 -0
  1070. package/esm/tooling/generate/generation.mjs +127 -0
  1071. package/esm/tooling/generate/generation.mjs.map +1 -0
  1072. package/esm/tooling/generate/generator-spec.d.mts +57 -0
  1073. package/esm/tooling/generate/generator-spec.d.mts.map +1 -0
  1074. package/esm/tooling/generate/generator-spec.mjs +102 -0
  1075. package/esm/tooling/generate/generator-spec.mjs.map +1 -0
  1076. package/esm/tooling/generate/index.mjs +6 -0
  1077. package/esm/tooling/generate/project-files.mjs +121 -0
  1078. package/esm/tooling/generate/project-files.mjs.map +1 -0
  1079. package/esm/tooling/generate/run-cli.d.mts +43 -0
  1080. package/esm/tooling/generate/run-cli.d.mts.map +1 -0
  1081. package/esm/tooling/generate/run-cli.mjs +93 -0
  1082. package/esm/tooling/generate/run-cli.mjs.map +1 -0
  1083. package/esm/tooling/generate/unified-diff.d.mts +40 -0
  1084. package/esm/tooling/generate/unified-diff.d.mts.map +1 -0
  1085. package/esm/tooling/generate/unified-diff.mjs +161 -0
  1086. package/esm/tooling/generate/unified-diff.mjs.map +1 -0
  1087. package/esm/tooling/index.d.mts +42 -0
  1088. package/esm/tooling/index.mjs +45 -0
  1089. package/esm/tooling/inspect/boot-for-inspect.d.mts +23 -0
  1090. package/esm/tooling/inspect/boot-for-inspect.d.mts.map +1 -0
  1091. package/esm/tooling/inspect/boot-for-inspect.mjs +63 -0
  1092. package/esm/tooling/inspect/boot-for-inspect.mjs.map +1 -0
  1093. package/esm/tooling/inspect/collect-config.mjs +77 -0
  1094. package/esm/tooling/inspect/collect-config.mjs.map +1 -0
  1095. package/esm/tooling/inspect/collect-models.d.mts +10 -0
  1096. package/esm/tooling/inspect/collect-models.d.mts.map +1 -0
  1097. package/esm/tooling/inspect/collect-models.mjs +154 -0
  1098. package/esm/tooling/inspect/collect-models.mjs.map +1 -0
  1099. package/esm/tooling/inspect/collect-packages.d.mts +9 -0
  1100. package/esm/tooling/inspect/collect-packages.d.mts.map +1 -0
  1101. package/esm/tooling/inspect/collect-packages.mjs +157 -0
  1102. package/esm/tooling/inspect/collect-packages.mjs.map +1 -0
  1103. package/esm/tooling/inspect/collect-pages.mjs +108 -0
  1104. package/esm/tooling/inspect/collect-pages.mjs.map +1 -0
  1105. package/esm/tooling/inspect/collect-routes.mjs +168 -0
  1106. package/esm/tooling/inspect/collect-routes.mjs.map +1 -0
  1107. package/esm/tooling/inspect/event-recorder.d.mts +37 -0
  1108. package/esm/tooling/inspect/event-recorder.d.mts.map +1 -0
  1109. package/esm/tooling/inspect/event-recorder.mjs +91 -0
  1110. package/esm/tooling/inspect/event-recorder.mjs.map +1 -0
  1111. package/esm/tooling/inspect/index.d.mts +8 -0
  1112. package/esm/tooling/inspect/index.mjs +7 -0
  1113. package/esm/tooling/inspect/inspect-app.d.mts +62 -0
  1114. package/esm/tooling/inspect/inspect-app.d.mts.map +1 -0
  1115. package/esm/tooling/inspect/inspect-app.mjs +92 -0
  1116. package/esm/tooling/inspect/inspect-app.mjs.map +1 -0
  1117. package/esm/tooling/inspect/inspect-report.schema.d.mts +14 -0
  1118. package/esm/tooling/inspect/inspect-report.schema.d.mts.map +1 -0
  1119. package/esm/tooling/inspect/inspect-report.schema.mjs +463 -0
  1120. package/esm/tooling/inspect/inspect-report.schema.mjs.map +1 -0
  1121. package/esm/tooling/inspect/inspect-report.types.d.mts +228 -0
  1122. package/esm/tooling/inspect/inspect-report.types.d.mts.map +1 -0
  1123. package/esm/tooling/inspect/inspect-report.types.mjs +33 -0
  1124. package/esm/tooling/inspect/inspect-report.types.mjs.map +1 -0
  1125. package/esm/tooling/mcp/create-mcp-context.d.mts +29 -0
  1126. package/esm/tooling/mcp/create-mcp-context.d.mts.map +1 -0
  1127. package/esm/tooling/mcp/create-mcp-context.mjs +75 -0
  1128. package/esm/tooling/mcp/create-mcp-context.mjs.map +1 -0
  1129. package/esm/tooling/mcp/db-schema.d.mts +50 -0
  1130. package/esm/tooling/mcp/db-schema.d.mts.map +1 -0
  1131. package/esm/tooling/mcp/db-schema.mjs +56 -0
  1132. package/esm/tooling/mcp/db-schema.mjs.map +1 -0
  1133. package/esm/tooling/mcp/docs-search.d.mts +77 -0
  1134. package/esm/tooling/mcp/docs-search.d.mts.map +1 -0
  1135. package/esm/tooling/mcp/docs-search.mjs +178 -0
  1136. package/esm/tooling/mcp/docs-search.mjs.map +1 -0
  1137. package/esm/tooling/mcp/index.mjs +9 -0
  1138. package/esm/tooling/mcp/load-ai-tools.d.mts +61 -0
  1139. package/esm/tooling/mcp/load-ai-tools.d.mts.map +1 -0
  1140. package/esm/tooling/mcp/load-ai-tools.mjs +45 -0
  1141. package/esm/tooling/mcp/load-ai-tools.mjs.map +1 -0
  1142. package/esm/tooling/mcp/mcp-tools.d.mts +70 -0
  1143. package/esm/tooling/mcp/mcp-tools.d.mts.map +1 -0
  1144. package/esm/tooling/mcp/mcp-tools.mjs +514 -0
  1145. package/esm/tooling/mcp/mcp-tools.mjs.map +1 -0
  1146. package/esm/tooling/mcp/start-mcp-server.d.mts +63 -0
  1147. package/esm/tooling/mcp/start-mcp-server.d.mts.map +1 -0
  1148. package/esm/tooling/mcp/start-mcp-server.mjs +126 -0
  1149. package/esm/tooling/mcp/start-mcp-server.mjs.map +1 -0
  1150. package/esm/tooling/mcp/tool-input.d.mts +75 -0
  1151. package/esm/tooling/mcp/tool-input.d.mts.map +1 -0
  1152. package/esm/tooling/mcp/tool-input.mjs +72 -0
  1153. package/esm/tooling/mcp/tool-input.mjs.map +1 -0
  1154. package/esm/tooling/problem.d.mts +55 -0
  1155. package/esm/tooling/problem.d.mts.map +1 -0
  1156. package/esm/tooling/problem.mjs +28 -0
  1157. package/esm/tooling/problem.mjs.map +1 -0
  1158. package/esm/tooling/syntax/ast.mjs +230 -0
  1159. package/esm/tooling/syntax/ast.mjs.map +1 -0
  1160. package/esm/tooling/syntax/imports.mjs +34 -0
  1161. package/esm/tooling/syntax/imports.mjs.map +1 -0
  1162. package/esm/tooling/trace/trace-report.types.d.mts +85 -0
  1163. package/esm/tooling/trace/trace-report.types.d.mts.map +1 -0
  1164. package/esm/tooling/trace/trace-report.types.mjs +7 -0
  1165. package/esm/tooling/trace/trace-report.types.mjs.map +1 -0
  1166. package/esm/tooling/trace/trace-request.d.mts +90 -0
  1167. package/esm/tooling/trace/trace-request.d.mts.map +1 -0
  1168. package/esm/tooling/trace/trace-request.mjs +241 -0
  1169. package/esm/tooling/trace/trace-request.mjs.map +1 -0
  1170. package/esm/tooling/typecheck/index.mjs +3 -0
  1171. package/esm/tooling/typecheck/run-typecheck.d.mts +26 -0
  1172. package/esm/tooling/typecheck/run-typecheck.d.mts.map +1 -0
  1173. package/esm/tooling/typecheck/run-typecheck.mjs +90 -0
  1174. package/esm/tooling/typecheck/run-typecheck.mjs.map +1 -0
  1175. package/esm/tooling/typescript/compiler.d.mts +31 -0
  1176. package/esm/tooling/typescript/compiler.d.mts.map +1 -0
  1177. package/esm/tooling/typescript/compiler.mjs +120 -0
  1178. package/esm/tooling/typescript/compiler.mjs.map +1 -0
  1179. package/esm/updater/update-warlock-packages.mjs +3 -2
  1180. package/esm/updater/update-warlock-packages.mjs.map +1 -1
  1181. package/esm/upgrade/codemods/head-viewport.mjs +46 -0
  1182. package/esm/upgrade/codemods/head-viewport.mjs.map +1 -0
  1183. package/esm/upgrade/codemods/helpers.mjs +81 -0
  1184. package/esm/upgrade/codemods/helpers.mjs.map +1 -0
  1185. package/esm/upgrade/codemods/index.mjs +34 -0
  1186. package/esm/upgrade/codemods/index.mjs.map +1 -0
  1187. package/esm/upgrade/codemods/logger-sync-calls.mjs +57 -0
  1188. package/esm/upgrade/codemods/logger-sync-calls.mjs.map +1 -0
  1189. package/esm/upgrade/codemods/package-json.mjs +122 -0
  1190. package/esm/upgrade/codemods/package-json.mjs.map +1 -0
  1191. package/esm/upgrade/codemods/request-log-snapshot.mjs +82 -0
  1192. package/esm/upgrade/codemods/request-log-snapshot.mjs.map +1 -0
  1193. package/esm/upgrade/codemods/review-sites.mjs +262 -0
  1194. package/esm/upgrade/codemods/review-sites.mjs.map +1 -0
  1195. package/esm/upgrade/diff.mjs +119 -0
  1196. package/esm/upgrade/diff.mjs.map +1 -0
  1197. package/esm/upgrade/format-upgrade-report.mjs +32 -0
  1198. package/esm/upgrade/format-upgrade-report.mjs.map +1 -0
  1199. package/esm/upgrade/load-ts-morph.mjs +49 -0
  1200. package/esm/upgrade/load-ts-morph.mjs.map +1 -0
  1201. package/esm/upgrade/notes.mjs +16 -0
  1202. package/esm/upgrade/notes.mjs.map +1 -0
  1203. package/esm/upgrade/run-upgrade.mjs +246 -0
  1204. package/esm/upgrade/run-upgrade.mjs.map +1 -0
  1205. package/esm/upgrade/upgrade-command.action.mjs +37 -0
  1206. package/esm/upgrade/upgrade-command.action.mjs.map +1 -0
  1207. package/esm/upgrade/version.mjs +39 -0
  1208. package/esm/upgrade/version.mjs.map +1 -0
  1209. package/esm/use-cases/index.d.mts +2 -1
  1210. package/esm/use-cases/index.mjs +1 -1
  1211. package/esm/use-cases/types.d.mts +116 -63
  1212. package/esm/use-cases/types.d.mts.map +1 -1
  1213. package/esm/use-cases/use-case-broadcast.d.mts +1 -3
  1214. package/esm/use-cases/use-case-broadcast.d.mts.map +1 -1
  1215. package/esm/use-cases/use-case-events.d.mts +3 -5
  1216. package/esm/use-cases/use-case-events.d.mts.map +1 -1
  1217. package/esm/use-cases/use-case-pipeline.d.mts +6 -6
  1218. package/esm/use-cases/use-case-pipeline.d.mts.map +1 -1
  1219. package/esm/use-cases/use-case.d.mts +2 -4
  1220. package/esm/use-cases/use-case.d.mts.map +1 -1
  1221. package/esm/use-cases/use-case.errors.d.mts +1 -3
  1222. package/esm/use-cases/use-case.errors.d.mts.map +1 -1
  1223. package/esm/use-cases/use-cases-registry.d.mts +8 -10
  1224. package/esm/use-cases/use-cases-registry.d.mts.map +1 -1
  1225. package/esm/use-cases/use-cases-registry.mjs.map +1 -1
  1226. package/esm/utils/app-log.d.mts +1 -2
  1227. package/esm/utils/app-log.d.mts.map +1 -1
  1228. package/esm/utils/clock.d.mts +35 -0
  1229. package/esm/utils/clock.d.mts.map +1 -0
  1230. package/esm/utils/clock.mjs +27 -0
  1231. package/esm/utils/clock.mjs.map +1 -0
  1232. package/esm/utils/database-log.d.mts +3 -4
  1233. package/esm/utils/database-log.d.mts.map +1 -1
  1234. package/esm/utils/environment.d.mts +4 -5
  1235. package/esm/utils/environment.d.mts.map +1 -1
  1236. package/esm/utils/framework-vesion.mjs +1 -1
  1237. package/esm/utils/framework-vesion.mjs.map +1 -1
  1238. package/esm/utils/get-localized.d.mts +2 -3
  1239. package/esm/utils/get-localized.d.mts.map +1 -1
  1240. package/esm/utils/ids.d.mts +35 -0
  1241. package/esm/utils/ids.d.mts.map +1 -0
  1242. package/esm/utils/ids.mjs +33 -0
  1243. package/esm/utils/ids.mjs.map +1 -0
  1244. package/esm/utils/index.d.mts +5 -1
  1245. package/esm/utils/index.mjs +4 -1
  1246. package/esm/utils/normalized-path.d.mts +1 -2
  1247. package/esm/utils/normalized-path.d.mts.map +1 -1
  1248. package/esm/utils/npm-registry.d.mts +1 -2
  1249. package/esm/utils/npm-registry.d.mts.map +1 -1
  1250. package/esm/utils/paths.d.mts +13 -14
  1251. package/esm/utils/paths.d.mts.map +1 -1
  1252. package/esm/utils/paths.mjs +2 -2
  1253. package/esm/utils/paths.mjs.map +1 -1
  1254. package/esm/utils/promise-all-object.d.mts +1 -2
  1255. package/esm/utils/promise-all-object.d.mts.map +1 -1
  1256. package/esm/utils/queue.d.mts +1 -2
  1257. package/esm/utils/queue.d.mts.map +1 -1
  1258. package/esm/utils/runtime.d.mts +60 -0
  1259. package/esm/utils/runtime.d.mts.map +1 -0
  1260. package/esm/utils/runtime.mjs +85 -0
  1261. package/esm/utils/runtime.mjs.map +1 -0
  1262. package/esm/utils/sleep.d.mts +1 -2
  1263. package/esm/utils/sleep.d.mts.map +1 -1
  1264. package/esm/utils/sluggable.d.mts +1 -3
  1265. package/esm/utils/sluggable.d.mts.map +1 -1
  1266. package/esm/utils/to-json.d.mts +1 -2
  1267. package/esm/utils/to-json.d.mts.map +1 -1
  1268. package/esm/utils/types.d.mts +1 -2
  1269. package/esm/utils/types.d.mts.map +1 -1
  1270. package/esm/utils/urls.d.mts +5 -6
  1271. package/esm/utils/urls.d.mts.map +1 -1
  1272. package/esm/utils/version-compare.d.mts +1 -2
  1273. package/esm/utils/version-compare.d.mts.map +1 -1
  1274. package/esm/validation/database/exists-except-current-id.d.mts +2 -3
  1275. package/esm/validation/database/exists-except-current-id.d.mts.map +1 -1
  1276. package/esm/validation/database/exists-except-current-user.d.mts +2 -3
  1277. package/esm/validation/database/exists-except-current-user.d.mts.map +1 -1
  1278. package/esm/validation/database/index.d.mts +2 -1
  1279. package/esm/validation/database/index.mjs +1 -1
  1280. package/esm/validation/database/types.d.mts +14 -10
  1281. package/esm/validation/database/types.d.mts.map +1 -1
  1282. package/esm/validation/database/unique-except-current-id.d.mts +2 -3
  1283. package/esm/validation/database/unique-except-current-id.d.mts.map +1 -1
  1284. package/esm/validation/database/unique-except-current-user.d.mts +2 -3
  1285. package/esm/validation/database/unique-except-current-user.d.mts.map +1 -1
  1286. package/esm/validation/file/file.d.mts +4 -6
  1287. package/esm/validation/file/file.d.mts.map +1 -1
  1288. package/esm/validation/file/index.d.mts +2 -1
  1289. package/esm/validation/file/index.mjs +1 -1
  1290. package/esm/validation/index.d.mts +6 -2
  1291. package/esm/validation/index.mjs +1 -1
  1292. package/esm/validation/plugins/index.mjs +1 -1
  1293. package/esm/validation/types.d.mts +61 -4
  1294. package/esm/validation/types.d.mts.map +1 -1
  1295. package/esm/validation/validateAll.mjs +21 -4
  1296. package/esm/validation/validateAll.mjs.map +1 -1
  1297. package/esm/validation/validation-failure-status.mjs +15 -0
  1298. package/esm/validation/validation-failure-status.mjs.map +1 -0
  1299. package/esm/validation/validators/file-validator.d.mts +2 -20
  1300. package/esm/validation/validators/file-validator.d.mts.map +1 -1
  1301. package/esm/validation/validators/index.d.mts +2 -1
  1302. package/esm/validation/validators/index.mjs +1 -1
  1303. package/esm/vite/lower-stage3-decorators.d.mts +2 -3
  1304. package/esm/vite/lower-stage3-decorators.d.mts.map +1 -1
  1305. package/esm/warlock-config/bundle-config.mjs +1 -1
  1306. package/esm/warlock-config/define-config.d.mts +1 -3
  1307. package/esm/warlock-config/define-config.d.mts.map +1 -1
  1308. package/esm/warlock-config/define-config.mjs +3 -2
  1309. package/esm/warlock-config/define-config.mjs.map +1 -1
  1310. package/esm/warlock-config/index.d.mts +2 -1
  1311. package/esm/warlock-config/index.mjs +1 -1
  1312. package/esm/warlock-config/types.d.mts +31 -6
  1313. package/esm/warlock-config/types.d.mts.map +1 -1
  1314. package/esm/warlock-config/warlock-config.manager.d.mts +5 -7
  1315. package/esm/warlock-config/warlock-config.manager.d.mts.map +1 -1
  1316. package/esm/warlock-config/warlock-config.manager.mjs +2 -1
  1317. package/esm/warlock-config/warlock-config.manager.mjs.map +1 -1
  1318. package/esm/warlock-config/warn-deprecated-config.mjs +1 -1
  1319. package/llms-full.txt +3211 -731
  1320. package/llms.txt +16 -6
  1321. package/package.json +47 -15
  1322. package/schemas/inspect-report.schema.json +554 -0
  1323. package/skills/README.md +9 -0
  1324. package/skills/add-connector/SKILL.md +26 -38
  1325. package/skills/benchmark-code/SKILL.md +30 -24
  1326. package/skills/build-restful/SKILL.md +14 -14
  1327. package/skills/build-url/SKILL.md +18 -18
  1328. package/skills/configure-app/SKILL.md +107 -14
  1329. package/skills/create-controller/SKILL.md +25 -12
  1330. package/skills/create-module/SKILL.md +10 -3
  1331. package/skills/define-resource/SKILL.md +32 -29
  1332. package/skills/encrypt-data/SKILL.md +21 -19
  1333. package/skills/generate-openapi/SKILL.md +50 -24
  1334. package/skills/hash-password/SKILL.md +2 -2
  1335. package/skills/health-checks/SKILL.md +24 -7
  1336. package/skills/index.md +11 -4
  1337. package/skills/lower-stage3-decorators/SKILL.md +4 -4
  1338. package/skills/make-endpoint/SKILL.md +110 -0
  1339. package/skills/model-factories/SKILL.md +92 -0
  1340. package/skills/process-image/SKILL.md +32 -30
  1341. package/skills/register-route/SKILL.md +109 -10
  1342. package/skills/report-framework-issue.md +154 -0
  1343. package/skills/request-memo/SKILL.md +1 -1
  1344. package/skills/request-tracing/SKILL.md +4 -1
  1345. package/skills/resolve-path/SKILL.md +45 -44
  1346. package/skills/retry-operation/SKILL.md +20 -11
  1347. package/skills/run-app/SKILL.md +107 -22
  1348. package/skills/send-response/SKILL.md +179 -14
  1349. package/skills/store-file/SKILL.md +93 -53
  1350. package/skills/test-fakes/SKILL.md +123 -0
  1351. package/skills/test-http/SKILL.md +125 -21
  1352. package/skills/test-service/SKILL.md +41 -1
  1353. package/skills/update-packages/SKILL.md +29 -18
  1354. package/skills/upgrade-from-5-29/SKILL.md +454 -0
  1355. package/skills/upload-file/SKILL.md +31 -33
  1356. package/skills/use-app-context/SKILL.md +38 -31
  1357. package/skills/use-middleware/SKILL.md +45 -25
  1358. package/skills/use-model-transformers/SKILL.md +37 -28
  1359. package/skills/use-repository/SKILL.md +2 -2
  1360. package/skills/validate-input/SKILL.md +72 -28
  1361. package/skills/warlock-agents-md/SKILL.md +96 -0
  1362. package/skills/warlock-board/SKILL.md +123 -0
  1363. package/skills/warlock-check/SKILL.md +133 -0
  1364. package/skills/warlock-conventions/SKILL.md +115 -0
  1365. package/skills/warlock-doctor/SKILL.md +55 -22
  1366. package/skills/warlock-inspect/SKILL.md +134 -0
  1367. package/skills/warlock-mcp/SKILL.md +120 -0
  1368. package/skills/warlock-routes/SKILL.md +18 -11
  1369. package/skills/warlock-trace/SKILL.md +81 -0
  1370. package/skills/wire-socket/SKILL.md +8 -8
  1371. package/skills/write-seeder/SKILL.md +46 -32
  1372. package/skills/write-use-case/SKILL.md +40 -27
  1373. package/esm/http/uploads/matches-if-none-match.mjs +0 -13
  1374. package/esm/http/uploads/matches-if-none-match.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"validateAll.mjs","names":["candidate"],"sources":["../../../../../../../../packages/core/src/validation/validateAll.ts"],"sourcesContent":["import config from \"@mongez/config\";\nimport { merge } from \"@mongez/reinforcements\";\nimport { log } from \"@warlock.js/logger\";\nimport { v, type ObjectValidator } from \"@warlock.js/seal\";\nimport type { Request } from \"../http\";\nimport { Response } from \"../http/response\";\nimport type { RequestHandlerValidation, Route } from \"../router\";\n\nfunction resolveDataToParse(\n validating: RequestHandlerValidation[\"validating\"],\n schema: RequestHandlerValidation[\"schema\"],\n request: Request,\n) {\n if (!validating || validating.length === 0) {\n const data = request.allExceptParams();\n\n // Duck-typed rather than `instanceof ObjectValidator`: the app's schema can\n // come from a different copy of seal than core's, and `instanceof` would\n // then silently fall back to ignoring params.\n const shape = (schema as { schema?: unknown } | undefined)?.schema;\n\n if (!shape || typeof shape !== \"object\") return data;\n\n for (const [key, value] of Object.entries(request.params)) {\n if (data[key] === undefined && Object.hasOwn(shape, key)) {\n data[key] = value;\n }\n }\n\n return data;\n }\n\n let data: any = {};\n\n for (const validatingType of validating) {\n if (validatingType === \"body\") {\n data = merge(data, request.body);\n }\n\n if (validatingType === \"query\") {\n data = merge(data, request.query);\n }\n\n if (validatingType === \"params\") {\n data = merge(data, request.params);\n }\n\n if (validatingType === \"headers\") {\n data = merge(data, request.headers);\n }\n }\n\n return data;\n}\n\n/**\n * Route segments arrive from Fastify as strings. A params schema is an\n * explicit request to parse those segments, so enable Seal's built-in\n * coercion for validators that support it (numbers and booleans) without\n * mutating the application-owned schema.\n *\n * This is deliberately duck-typed: a route may carry a Seal schema from a\n * linked application copy rather than core's installed copy.\n */\nconst coercingParamsSchemas = new WeakMap<ObjectValidator, ObjectValidator>();\n\nfunction coercingParamsSchema(schema: ObjectValidator): ObjectValidator {\n const cached = coercingParamsSchemas.get(schema);\n\n if (cached) return cached;\n\n const coercing = buildCoercingParamsSchema(schema);\n\n coercingParamsSchemas.set(schema, coercing);\n\n return coercing;\n}\n\nfunction buildCoercingParamsSchema(schema: ObjectValidator): ObjectValidator {\n const candidate = schema as ObjectValidator & {\n clone?: () => ObjectValidator;\n schema?: Record<string, { coerce?: () => unknown }>;\n };\n const cloned = candidate.clone?.() ?? schema;\n const shape = (cloned as typeof candidate).schema;\n\n if (!shape) return cloned;\n\n for (const [key, validator] of Object.entries(shape)) {\n if (typeof validator.coerce === \"function\") {\n shape[key] = validator.coerce() as typeof validator;\n }\n }\n\n return cloned;\n}\n\n/**\n * Validate the request route\n */\nexport async function validateAll(\n validation: Route[\"handler\"][\"validation\"],\n request: Request,\n response: Response,\n) {\n if (!validation) return;\n\n log.info(\"validation\", \"started\", \"Start validating the request\");\n\n let validatedData: Record<string, unknown> | undefined;\n\n if (validation.schema) {\n log.info(\"validation\", \"schema\", \"Validating request schema\");\n try {\n const data = resolveDataToParse(validation.validating, validation.schema, request);\n const result = await v.validate(validation.schema, data);\n\n if (!result.isValid) {\n log.warn(\"validation\", \"schema\", \"Schema Validation failed\");\n return response.failedSchema(result);\n }\n\n if (result.data) {\n validatedData = result.data;\n }\n\n log.success(\"validation\", \"schema\", \"Schema Validation passed\");\n } catch (error) {\n log.warn(\"app.validation\", \"error\", error);\n throw error;\n }\n }\n\n if (validation.params) {\n log.info(\"validation\", \"params\", \"Validating route params schema\");\n try {\n const result = await v.validate(coercingParamsSchema(validation.params), request.params);\n\n if (!result.isValid) {\n log.warn(\"validation\", \"params\", \"Route params schema validation failed\");\n return response.failedSchema(result);\n }\n\n if (result.data) {\n for (const [key, value] of Object.entries(result.data)) {\n request.setParam(key, value);\n }\n\n validatedData = { ...validatedData, ...result.data };\n }\n\n log.success(\"validation\", \"params\", \"Route params schema validation passed\");\n } catch (error) {\n log.warn(\"app.validation\", \"error\", error);\n throw error;\n }\n }\n\n if (validatedData) {\n request.setValidatedData(validatedData);\n }\n\n if (validation.validate) {\n const result = await validation.validate({ request, response });\n\n // if there is a result, it means it failed\n if (result) {\n log.info(\"validation\", \"failed\", \"Validation failed\");\n\n // a returned Response already carries its own status; anything else is\n // sent with the configured failure status (400 by default)\n if (result instanceof Response) return result;\n\n return response.send(result, config.get(\"validation.responseStatus\", 400));\n }\n\n log.info(\"validation\", \"passed\", \"Validation passed\");\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"validateAll.mjs","names":["candidate","config"],"sources":["../../../../../../../../packages/core/src/validation/validateAll.ts"],"sourcesContent":["import config from \"@mongez/config\";\nimport { merge } from \"@mongez/reinforcements\";\nimport { log } from \"@warlock.js/logger\";\nimport { v, type ObjectValidator, type ValidationResult } from \"@warlock.js/seal\";\nimport type { Request } from \"../http\";\nimport { Response } from \"../http/response\";\nimport type { RequestHandlerValidation, Route } from \"../router\";\nimport { validationFailureStatus } from \"./validation-failure-status\";\n\nfunction resolveDataToParse(\n validating: RequestHandlerValidation[\"validating\"],\n schema: RequestHandlerValidation[\"schema\"],\n request: Request,\n) {\n if (!validating || validating.length === 0) {\n const data = request.allExceptParams();\n\n // Duck-typed rather than `instanceof ObjectValidator`: the app's schema can\n // come from a different copy of seal than core's, and `instanceof` would\n // then silently fall back to ignoring params.\n const shape = (schema as { schema?: unknown } | undefined)?.schema;\n\n if (!shape || typeof shape !== \"object\") return data;\n\n for (const [key, value] of Object.entries(request.params)) {\n if (data[key] === undefined && Object.hasOwn(shape, key)) {\n data[key] = value;\n }\n }\n\n return data;\n }\n\n let data: any = {};\n\n for (const validatingType of validating) {\n if (validatingType === \"body\") {\n data = merge(data, request.body);\n }\n\n if (validatingType === \"query\") {\n data = merge(data, request.query);\n }\n\n if (validatingType === \"params\") {\n data = merge(data, request.params);\n }\n\n if (validatingType === \"headers\") {\n data = merge(data, request.headers);\n }\n }\n\n return data;\n}\n\n/**\n * Route segments arrive from Fastify as strings. A params schema is an\n * explicit request to parse those segments, so enable Seal's built-in\n * coercion for validators that support it (numbers and booleans) without\n * mutating the application-owned schema.\n *\n * This is deliberately duck-typed: a route may carry a Seal schema from a\n * linked application copy rather than core's installed copy.\n */\nconst coercingParamsSchemas = new WeakMap<ObjectValidator, ObjectValidator>();\n\nfunction coercingParamsSchema(schema: ObjectValidator): ObjectValidator {\n const cached = coercingParamsSchemas.get(schema);\n\n if (cached) return cached;\n\n const coercing = buildCoercingParamsSchema(schema);\n\n coercingParamsSchemas.set(schema, coercing);\n\n return coercing;\n}\n\nfunction buildCoercingParamsSchema(schema: ObjectValidator): ObjectValidator {\n const candidate = schema as ObjectValidator & {\n clone?: () => ObjectValidator;\n schema?: Record<string, { coerce?: () => unknown }>;\n };\n const cloned = candidate.clone?.() ?? schema;\n const shape = (cloned as typeof candidate).schema;\n\n if (!shape) return cloned;\n\n for (const [key, validator] of Object.entries(shape)) {\n if (typeof validator.coerce === \"function\") {\n shape[key] = validator.coerce() as typeof validator;\n }\n }\n\n return cloned;\n}\n\n/**\n * Answer a failed `schema` or `params` validation: the route's own\n * `onFailure` hook first, then `response.failedSchema(result)`, which applies\n * the global `validation.response.body` hook or the framework body.\n */\nasync function sendValidationFailure(\n validation: RequestHandlerValidation,\n result: ValidationResult,\n request: Request,\n response: Response,\n) {\n if (validation.onFailure) {\n const custom = await validation.onFailure(result, { request, response, route: request.route });\n\n if (custom) {\n return response.send(custom.body, custom.status ?? validationFailureStatus());\n }\n }\n\n return response.failedSchema(result);\n}\n\n/**\n * Validate the request route\n */\nexport async function validateAll(\n validation: Route[\"handler\"][\"validation\"],\n request: Request,\n response: Response,\n) {\n if (!validation) return;\n\n log.info(\"validation\", \"started\", \"Start validating the request\");\n\n let validatedData: Record<string, unknown> | undefined;\n\n if (validation.schema) {\n log.info(\"validation\", \"schema\", \"Validating request schema\");\n try {\n const data = resolveDataToParse(validation.validating, validation.schema, request);\n const result = await v.validate(validation.schema, data);\n\n if (!result.isValid) {\n log.warn(\"validation\", \"schema\", \"Schema Validation failed\");\n return sendValidationFailure(validation, result, request, response);\n }\n\n if (result.data) {\n validatedData = result.data;\n }\n\n log.success(\"validation\", \"schema\", \"Schema Validation passed\");\n } catch (error) {\n log.warn(\"app.validation\", \"error\", error);\n throw error;\n }\n }\n\n if (validation.params) {\n log.info(\"validation\", \"params\", \"Validating route params schema\");\n try {\n const result = await v.validate(coercingParamsSchema(validation.params), request.params);\n\n if (!result.isValid) {\n log.warn(\"validation\", \"params\", \"Route params schema validation failed\");\n return sendValidationFailure(validation, result, request, response);\n }\n\n if (result.data) {\n for (const [key, value] of Object.entries(result.data)) {\n request.setParam(key, value);\n }\n\n validatedData = { ...validatedData, ...result.data };\n }\n\n log.success(\"validation\", \"params\", \"Route params schema validation passed\");\n } catch (error) {\n log.warn(\"app.validation\", \"error\", error);\n throw error;\n }\n }\n\n if (validatedData) {\n request.setValidatedData(validatedData);\n }\n\n if (validation.validate) {\n const result = await validation.validate({ request, response });\n\n // if there is a result, it means it failed\n if (result) {\n log.info(\"validation\", \"failed\", \"Validation failed\");\n\n // a returned Response already carries its own status; anything else is\n // sent with the configured failure status (400 by default)\n if (result instanceof Response) return result;\n\n return response.send(result, config.get(\"validation.responseStatus\", 400));\n }\n\n log.info(\"validation\", \"passed\", \"Validation passed\");\n }\n}\n"],"mappings":";;;;;;;;AASA,SAAS,mBACP,YACA,QACA,SACA;CACA,IAAI,CAAC,cAAc,WAAW,WAAW,GAAG;EAC1C,MAAM,OAAO,QAAQ,gBAAgB;EAKrC,MAAM,QAAS,QAA6C;EAE5D,IAAI,CAAC,SAAS,OAAO,UAAU,UAAU,OAAO;EAEhD,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,QAAQ,MAAM,GACtD,IAAI,KAAK,SAAS,UAAa,OAAO,OAAO,OAAO,GAAG,GACrD,KAAK,OAAO;EAIhB,OAAO;CACT;CAEA,IAAI,OAAY,CAAC;CAEjB,KAAK,MAAM,kBAAkB,YAAY;EACvC,IAAI,mBAAmB,QACrB,OAAO,MAAM,MAAM,QAAQ,IAAI;EAGjC,IAAI,mBAAmB,SACrB,OAAO,MAAM,MAAM,QAAQ,KAAK;EAGlC,IAAI,mBAAmB,UACrB,OAAO,MAAM,MAAM,QAAQ,MAAM;EAGnC,IAAI,mBAAmB,WACrB,OAAO,MAAM,MAAM,QAAQ,OAAO;CAEtC;CAEA,OAAO;AACT;;;;;;;;;;AAWA,MAAM,wCAAwB,IAAI,QAA0C;AAE5E,SAAS,qBAAqB,QAA0C;CACtE,MAAM,SAAS,sBAAsB,IAAI,MAAM;CAE/C,IAAI,QAAQ,OAAO;CAEnB,MAAM,WAAW,0BAA0B,MAAM;CAEjD,sBAAsB,IAAI,QAAQ,QAAQ;CAE1C,OAAO;AACT;AAEA,SAAS,0BAA0B,QAA0C;CAK3E,MAAM,SAASA,OAAU,QAAQ,KAAK;CACtC,MAAM,QAAS,OAA4B;CAE3C,IAAI,CAAC,OAAO,OAAO;CAEnB,KAAK,MAAM,CAAC,KAAK,cAAc,OAAO,QAAQ,KAAK,GACjD,IAAI,OAAO,UAAU,WAAW,YAC9B,MAAM,OAAO,UAAU,OAAO;CAIlC,OAAO;AACT;;;;;;AAOA,eAAe,sBACb,YACA,QACA,SACA,UACA;CACA,IAAI,WAAW,WAAW;EACxB,MAAM,SAAS,MAAM,WAAW,UAAU,QAAQ;GAAE;GAAS;GAAU,OAAO,QAAQ;EAAM,CAAC;EAE7F,IAAI,QACF,OAAO,SAAS,KAAK,OAAO,MAAM,OAAO,UAAU,wBAAwB,CAAC;CAEhF;CAEA,OAAO,SAAS,aAAa,MAAM;AACrC;;;;AAKA,eAAsB,YACpB,YACA,SACA,UACA;CACA,IAAI,CAAC,YAAY;CAEjB,IAAI,KAAK,cAAc,WAAW,8BAA8B;CAEhE,IAAI;CAEJ,IAAI,WAAW,QAAQ;EACrB,IAAI,KAAK,cAAc,UAAU,2BAA2B;EAC5D,IAAI;GACF,MAAM,OAAO,mBAAmB,WAAW,YAAY,WAAW,QAAQ,OAAO;GACjF,MAAM,SAAS,MAAM,EAAE,SAAS,WAAW,QAAQ,IAAI;GAEvD,IAAI,CAAC,OAAO,SAAS;IACnB,IAAI,KAAK,cAAc,UAAU,0BAA0B;IAC3D,OAAO,sBAAsB,YAAY,QAAQ,SAAS,QAAQ;GACpE;GAEA,IAAI,OAAO,MACT,gBAAgB,OAAO;GAGzB,IAAI,QAAQ,cAAc,UAAU,0BAA0B;EAChE,SAAS,OAAO;GACd,IAAI,KAAK,kBAAkB,SAAS,KAAK;GACzC,MAAM;EACR;CACF;CAEA,IAAI,WAAW,QAAQ;EACrB,IAAI,KAAK,cAAc,UAAU,gCAAgC;EACjE,IAAI;GACF,MAAM,SAAS,MAAM,EAAE,SAAS,qBAAqB,WAAW,MAAM,GAAG,QAAQ,MAAM;GAEvF,IAAI,CAAC,OAAO,SAAS;IACnB,IAAI,KAAK,cAAc,UAAU,uCAAuC;IACxE,OAAO,sBAAsB,YAAY,QAAQ,SAAS,QAAQ;GACpE;GAEA,IAAI,OAAO,MAAM;IACf,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,OAAO,IAAI,GACnD,QAAQ,SAAS,KAAK,KAAK;IAG7B,gBAAgB;KAAE,GAAG;KAAe,GAAG,OAAO;IAAK;GACrD;GAEA,IAAI,QAAQ,cAAc,UAAU,uCAAuC;EAC7E,SAAS,OAAO;GACd,IAAI,KAAK,kBAAkB,SAAS,KAAK;GACzC,MAAM;EACR;CACF;CAEA,IAAI,eACF,QAAQ,iBAAiB,aAAa;CAGxC,IAAI,WAAW,UAAU;EACvB,MAAM,SAAS,MAAM,WAAW,SAAS;GAAE;GAAS;EAAS,CAAC;EAG9D,IAAI,QAAQ;GACV,IAAI,KAAK,cAAc,UAAU,mBAAmB;GAIpD,IAAI,kBAAkB,UAAU,OAAO;GAEvC,OAAO,SAAS,KAAK,QAAQC,WAAO,IAAI,6BAA6B,GAAG,CAAC;EAC3E;EAEA,IAAI,KAAK,cAAc,UAAU,mBAAmB;CACtD;AACF"}
@@ -0,0 +1,15 @@
1
+ import baseConfig from "@mongez/config";
2
+
3
+ //#region ../../packages/core/src/validation/validation-failure-status.ts
4
+ /**
5
+ * The status of a failed schema validation: `validation.response.status`, or
6
+ * 422 when it is not configured.
7
+ */
8
+ function validationFailureStatus() {
9
+ const status = baseConfig.get("validation.response.status");
10
+ return typeof status === "number" && Number.isInteger(status) ? status : 422;
11
+ }
12
+
13
+ //#endregion
14
+ export { validationFailureStatus };
15
+ //# sourceMappingURL=validation-failure-status.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation-failure-status.mjs","names":["config"],"sources":["../../../../../../../../packages/core/src/validation/validation-failure-status.ts"],"sourcesContent":["import config from \"@mongez/config\";\n\n/**\n * The status of a failed schema validation: `validation.response.status`, or\n * 422 when it is not configured.\n */\nexport function validationFailureStatus(): number {\n const status: unknown = config.get(\"validation.response.status\");\n\n return typeof status === \"number\" && Number.isInteger(status) ? status : 422;\n}\n"],"mappings":";;;;;;;AAMA,SAAgB,0BAAkC;CAChD,MAAM,SAAkBA,WAAO,IAAI,4BAA4B;CAE/D,OAAO,OAAO,WAAW,YAAY,OAAO,UAAU,MAAM,IAAI,SAAS;AAC3E"}
@@ -1,7 +1,6 @@
1
1
  import { BaseValidator, FileSizeOption, JsonSchemaResult, JsonSchemaTarget, StandardSchemaV1 } from "@warlock.js/seal";
2
-
3
2
  //#region ../../packages/core/src/validation/validators/file-validator.d.ts
4
- declare const uploadedFileMetadataSchema: import("@warlock.js/seal").ObjectValidator<{
3
+ export declare const uploadedFileMetadataSchema: import("@warlock.js/seal").ObjectValidator<{
5
4
  location: import("@warlock.js/seal").StringValidator & StandardSchemaV1<string, string>;
6
5
  width: import("@warlock.js/seal").IntValidator & StandardSchemaV1<number, number>;
7
6
  height: import("@warlock.js/seal").IntValidator & StandardSchemaV1<number, number>;
@@ -9,27 +8,11 @@ declare const uploadedFileMetadataSchema: import("@warlock.js/seal").ObjectValid
9
8
  mimeType: import("@warlock.js/seal").StringValidator & StandardSchemaV1<string, string>;
10
9
  extension: import("@warlock.js/seal").StringValidator & StandardSchemaV1<string, string>;
11
10
  name: import("@warlock.js/seal").StringValidator & StandardSchemaV1<string, string>;
12
- }> & StandardSchemaV1<{
13
- location: string;
14
- width: number;
15
- height: number;
16
- size: number;
17
- mimeType: string;
18
- extension: string;
19
- name: string;
20
- }, {
21
- location: string;
22
- width: number;
23
- height: number;
24
- size: number;
25
- mimeType: string;
26
- extension: string;
27
- name: string;
28
11
  }>;
29
12
  /**
30
13
  * File validator class
31
14
  */
32
- declare class FileValidator extends BaseValidator {
15
+ export declare class FileValidator extends BaseValidator {
33
16
  constructor(errorMessage?: string);
34
17
  /**
35
18
  * Check if value is a File type
@@ -88,5 +71,4 @@ declare class FileValidator extends BaseValidator {
88
71
  toJsonSchema(target?: JsonSchemaTarget): JsonSchemaResult;
89
72
  }
90
73
  //#endregion
91
- export { FileValidator, uploadedFileMetadataSchema };
92
74
  //# sourceMappingURL=file-validator.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-validator.d.mts","names":[],"sources":["../../../../../../../../../packages/core/src/validation/validators/file-validator.ts"],"mappings":";;;cAoBa,0BAAA,6BAA0B,eAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAa1B,aAAA,SAAsB,aAAA;cACd,YAAA;;;;EAQZ,WAAA,CAAY,KAAA;;EAKZ,KAAA,CAAM,YAAA;;EAKN,MAAA,CAAO,UAAA,qBAA+B,YAAA;;EAOtC,QAAA,CAAS,SAAA,qBAA8B,YAAA;;EAOvC,GAAA,CAAI,YAAA;;EAKJ,KAAA,CAAM,YAAA;;EAWN,IAAA,CAAK,YAAA;;EAWL,OAAA,CAAQ,IAAA,WAAe,cAAA,EAAgB,YAAA;;EAOvC,GAAA,CAAI,IAAA,WAAe,cAAA,EAAgB,YAAA;;EAKnC,OAAA,CAAQ,IAAA,WAAe,cAAA,EAAgB,YAAA;;EAOvC,GAAA,CAAI,IAAA,UAAc,YAAA;EA/EA;EAoFlB,QAAA,CAAS,KAAA,UAAe,YAAA;EAxBD;EA+BvB,QAAA,CAAS,KAAA,UAAe,YAAA;EAnBD;EA0BvB,SAAA,CAAU,MAAA,UAAgB,YAAA;EAmByB;EAZnD,SAAA,CAAU,MAAA,UAAgB,YAAA;EAmCyC;;;;;;EAvBnE,MAAA,CAAO,iBAAA,WAA4B,aAAA,GAAgB,gBAAA;EA5GnD;;;;;;;;;;;;;;;EAmIS,YAAA,CAAa,MAAA,GAAQ,gBAAA,GAAqC,gBAAA;AAAA"}
1
+ {"version":3,"file":"file-validator.d.mts","names":[],"sources":["../../../../../../../../../packages/core/src/validation/validators/file-validator.ts"],"mappings":";;qBAoBa,uDAA0B;;;;;;;;;;;;qBAa1B,sBAAsB;EACjC,YAAmB;;;;EAQZ,YAAY;;EAKZ,MAAM;;EAKN,OAAO,+BAA+B;;EAOtC,SAAS,8BAA8B;;EAOvC,IAAI;;EAKJ,MAAM;;EAWN,KAAK;;EAWL,QAAQ,eAAe,gBAAgB;;EAOvC,IAAI,eAAe,gBAAgB;;EAKnC,QAAQ,eAAe,gBAAgB;;EAOvC,IAAI,cAAc;;EAKlB,SAAS,eAAe;;EAOxB,SAAS,eAAe;;EAOxB,UAAU,gBAAgB;;EAO1B,UAAU,gBAAgB;;;;;;;EAY1B,OAAO,4BAA4B,gBAAgB;;;;;;;;;;;;;;;;EAuB1C,aAAa,SAAQ,mBAAqC"}
@@ -1 +1,2 @@
1
- import { FileValidator, uploadedFileMetadataSchema } from "./file-validator.mjs";
1
+ import { FileValidator, uploadedFileMetadataSchema } from "./file-validator.mjs";
2
+ export { FileValidator, uploadedFileMetadataSchema };
@@ -1,3 +1,3 @@
1
1
  import { FileValidator, uploadedFileMetadataSchema } from "./file-validator.mjs";
2
2
 
3
- export { };
3
+ export { FileValidator, uploadedFileMetadataSchema };
@@ -6,7 +6,7 @@
6
6
  * just for one type — the shape is assignable to Vite's `PluginOption` wherever
7
7
  * it's placed in a config's `plugins` array.
8
8
  */
9
- interface DecoratorLoweringPlugin {
9
+ export interface DecoratorLoweringPlugin {
10
10
  name: string;
11
11
  enforce: "pre";
12
12
  transform(code: string, id: string): Promise<{
@@ -47,7 +47,6 @@ interface DecoratorLoweringPlugin {
47
47
  * });
48
48
  * ```
49
49
  */
50
- declare function lowerStage3Decorators(): DecoratorLoweringPlugin;
50
+ export declare function lowerStage3Decorators(): DecoratorLoweringPlugin;
51
51
  //#endregion
52
- export { DecoratorLoweringPlugin, lowerStage3Decorators };
53
52
  //# sourceMappingURL=lower-stage3-decorators.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lower-stage3-decorators.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/vite/lower-stage3-decorators.ts"],"mappings":";;AASA;;;;;;UAAiB,uBAAA;EACf,IAAA;EACA,OAAA;EACA,SAAA,CAAU,IAAA,UAAc,EAAA,WAAa,OAAO;IAAG,IAAA;IAAc,GAAA;EAAA;AAAA;AAoC/D;;;;AAAgE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAhE,iBAAgB,qBAAA,IAAyB,uBAAuB"}
1
+ {"version":3,"file":"lower-stage3-decorators.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/vite/lower-stage3-decorators.ts"],"mappings":";;;;;;;;iBASiB;EACf;EACA;EACA,UAAU,cAAc,aAAa;IAAU;IAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAoC/C,yBAAyB"}
@@ -1,7 +1,7 @@
1
1
  import path from "node:path";
2
+ import { pathToFileURL } from "node:url";
2
3
  import { readFile } from "node:fs/promises";
3
4
  import { getTsconfig } from "get-tsconfig";
4
- import { pathToFileURL } from "node:url";
5
5
 
6
6
  //#region ../../packages/core/src/warlock-config/bundle-config.ts
7
7
  /**
@@ -1,7 +1,5 @@
1
1
  import { WarlockConfig } from "./types.mjs";
2
-
3
2
  //#region ../../packages/core/src/warlock-config/define-config.d.ts
4
- declare function defineConfig(options: WarlockConfig): WarlockConfig;
3
+ export declare function defineConfig(options: WarlockConfig): WarlockConfig;
5
4
  //#endregion
6
- export { defineConfig };
7
5
  //# sourceMappingURL=define-config.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"define-config.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/warlock-config/define-config.ts"],"mappings":";;;iBAKgB,YAAA,CAAa,OAAA,EAAS,aAAA,GAQsB,aAAa"}
1
+ {"version":3,"file":"define-config.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/warlock-config/define-config.ts"],"mappings":";;wBAKgB,aAAa,SAAS,gBAQsB"}
@@ -4,10 +4,11 @@ import { merge } from "@mongez/reinforcements";
4
4
 
5
5
  //#region ../../packages/core/src/warlock-config/define-config.ts
6
6
  function defineConfig(options) {
7
- return merge(defaultWarlockConfigurations, options.build ? {
7
+ const normalized = options.build ? {
8
8
  ...options,
9
9
  build: normalizeBuildConfig(options.build)
10
- } : options);
10
+ } : options;
11
+ return merge(defaultWarlockConfigurations, normalized);
11
12
  }
12
13
 
13
14
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"define-config.mjs","names":[],"sources":["../../../../../../../../packages/core/src/warlock-config/define-config.ts"],"sourcesContent":["import { merge } from \"@mongez/reinforcements\";\nimport { defaultWarlockConfigurations } from \"./default-configurations\";\nimport { normalizeBuildConfig } from \"./normalize-build-config\";\nimport type { WarlockConfig } from \"./types\";\n\nexport function defineConfig(options: WarlockConfig) {\n // Fold `build.outDirectory` into `build.outdir` BEFORE merging. Afterwards\n // is too late: the defaults supply an `outdir`, so the alias could never\n // tell \"the user set outdir\" from \"the default did\" and would be dropped.\n const normalized: WarlockConfig = options.build\n ? { ...options, build: normalizeBuildConfig(options.build) }\n : options;\n\n return merge(defaultWarlockConfigurations, normalized) as WarlockConfig;\n}\n"],"mappings":";;;;;AAKA,SAAgB,aAAa,SAAwB;CAQnD,OAAO,MAAM,8BAJqB,QAAQ,QACtC;EAAE,GAAG;EAAS,OAAO,qBAAqB,QAAQ,KAAK;CAAE,IACzD,OAEiD;AACvD"}
1
+ {"version":3,"file":"define-config.mjs","names":[],"sources":["../../../../../../../../packages/core/src/warlock-config/define-config.ts"],"sourcesContent":["import { merge } from \"@mongez/reinforcements\";\nimport { defaultWarlockConfigurations } from \"./default-configurations\";\nimport { normalizeBuildConfig } from \"./normalize-build-config\";\nimport type { WarlockConfig } from \"./types\";\n\nexport function defineConfig(options: WarlockConfig) {\n // Fold `build.outDirectory` into `build.outdir` BEFORE merging. Afterwards\n // is too late: the defaults supply an `outdir`, so the alias could never\n // tell \"the user set outdir\" from \"the default did\" and would be dropped.\n const normalized: WarlockConfig = options.build\n ? { ...options, build: normalizeBuildConfig(options.build) }\n : options;\n\n return merge(defaultWarlockConfigurations, normalized) as WarlockConfig;\n}\n"],"mappings":";;;;;AAKA,SAAgB,aAAa,SAAwB;CAInD,MAAM,aAA4B,QAAQ,QACtC;EAAE,GAAG;EAAS,OAAO,qBAAqB,QAAQ,KAAK;CAAE,IACzD;CAEJ,OAAO,MAAM,8BAA8B,UAAU;AACvD"}
@@ -1,3 +1,4 @@
1
1
  import { WarlockConfig } from "./types.mjs";
2
2
  import { defineConfig } from "./define-config.mjs";
3
- import { WarlockConfigManager, isUnknownTsExtensionError, isUnresolvedConfigImportError, isUnsupportedTypeStrippingError, warlockConfigManager } from "./warlock-config.manager.mjs";
3
+ import { WarlockConfigManager, isUnknownTsExtensionError, isUnresolvedConfigImportError, isUnsupportedTypeStrippingError, warlockConfigManager } from "./warlock-config.manager.mjs";
4
+ export { WarlockConfig, WarlockConfigManager, defineConfig, isUnknownTsExtensionError, isUnresolvedConfigImportError, isUnsupportedTypeStrippingError, warlockConfigManager };
@@ -1,4 +1,4 @@
1
1
  import { WarlockConfigManager, isUnknownTsExtensionError, isUnresolvedConfigImportError, isUnsupportedTypeStrippingError, warlockConfigManager } from "./warlock-config.manager.mjs";
2
2
  import { defineConfig } from "./define-config.mjs";
3
3
 
4
- export { };
4
+ export { WarlockConfigManager, defineConfig, isUnknownTsExtensionError, isUnresolvedConfigImportError, isUnsupportedTypeStrippingError, warlockConfigManager };
@@ -1,16 +1,15 @@
1
- import { FileHealthCheckerContract } from "../dev-server/health-checker/file-health-checker.contract.mjs";
1
+ import { BuiltInHealthCheckerOptions, FileHealthCheckerContract } from "../dev-server/health-checker/file-health-checker.contract.mjs";
2
2
  import { Connector } from "../connectors/types.mjs";
3
3
  import { CLICommand } from "../commands/cli-command.mjs";
4
4
  import { MigrationConstructor } from "@warlock.js/cascade";
5
5
  import { BuildOptions } from "esbuild";
6
-
7
6
  //#region ../../packages/core/src/warlock-config/types.d.ts
8
7
  /**
9
8
  * Resolved Warlock Configuration
10
9
  *
11
10
  * This is the final configuration after merging user config with defaults
12
11
  */
13
- type WarlockConfig = {
12
+ export type WarlockConfig = {
14
13
  /**
15
14
  * Server configuration
16
15
  */
@@ -169,9 +168,10 @@ type WarlockConfig = {
169
168
  exclude?: string[];
170
169
  };
171
170
  /**
172
- * Custom health checkers
171
+ * Built-in checker switches, custom checker array, or false to disable.
172
+ * Installed/configured ESLint and Oxlint both run by default.
173
173
  */
174
- healthCheckers?: FileHealthCheckerContract[] | false;
174
+ healthCheckers?: FileHealthCheckerContract[] | BuiltInHealthCheckerOptions | false;
175
175
  /**
176
176
  * Whether to generate typings on dev server start
177
177
  * @default true
@@ -217,6 +217,32 @@ type WarlockConfig = {
217
217
  * @default false
218
218
  */
219
219
  timings?: boolean;
220
+ /**
221
+ * Keep the generated section of the project's `AGENTS.md` fresh: written
222
+ * on boot and again (debounced) after reloads, between the
223
+ * `<!-- warlock:generated:start -->` / `end` markers. Content outside the
224
+ * markers is never touched; the file is created when missing. Set to
225
+ * `false` to leave `AGENTS.md` alone (`warlock agents-md --write` still
226
+ * works).
227
+ * @default true
228
+ */
229
+ agentsMd?: boolean;
230
+ /**
231
+ * Serve `warlock mcp` from inside the dev server, over Streamable HTTP on
232
+ * loopback, so its `inspect_*` tools read the live registries. Same as
233
+ * `warlock dev --mcp`. `true` uses the defaults; an object sets them. The
234
+ * endpoint is printed and recorded in `.warlock/dev-server.json`. Needs
235
+ * `@warlock.js/ai-tools`.
236
+ * @default false
237
+ */
238
+ mcp?: boolean | {
239
+ /** `0` picks a free port. @default 0 */
240
+ port?: number;
241
+ /** Bearer token clients must send. @default none (loopback only) */
242
+ token?: string;
243
+ /** Let generate tools write into the project. @default false */
244
+ allowWrites?: boolean;
245
+ };
220
246
  };
221
247
  /**
222
248
  * Database configuration
@@ -268,5 +294,4 @@ type WarlockConfig = {
268
294
  };
269
295
  };
270
296
  //#endregion
271
- export { WarlockConfig };
272
297
  //# sourceMappingURL=types.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/warlock-config/types.ts"],"mappings":";;;;;;;;;AAWA;;;KAAY,aAAA;EA8BF;;;EA1BR,MAAA;IAsOqB;;;IAlOnB,IAAA;IAJF;;;IAQE,IAAA;IAkBF;;;IAdE,cAAA;EAAA;EAqCA;;;;;;;;;;;EAvBF,KAAA,GAAQ,IAAA,CAAK,YAAA;IAsHX;;;;;IAhHA,MAAA;IA+IA;;;;;;;;;;IApIA,YAAA;IAsNO;AAAA;;;;IAhNP,OAAA;;;;;;;IAOA,0BAAA;;;;;;;;;;;;;;;;;IAiBA,YAAA;;;;;;;;;;;;;;;;IAgBA,OAAA;;;;;;IAMA,MAAA;;;;;;IAMA,SAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;EA2BF,UAAA,GAAa,SAAA;;;;EAKb,GAAA;IACE,QAAA,GAAW,UAAA;EAAA;;;;EAMb,SAAA;;;;IAIE,KAAA;;;;;;MAME,OAAA;;;;;;MAMA,OAAA;IAAA;;;;IAKF,cAAA,GAAiB,yBAAA;;;;;IAKjB,eAAA;;;;;;;;;IASA,eAAA;;;;;;;;;IASA,qBAAA;;;;;;;;;;IAUA,mBAAA;;;;;;;;;;;;IAYA,OAAA;EAAA;;;;EAMF,QAAA;;;;;;;;;;;;;;;;;;IAkBE,UAAA,GAAa,KAAA,CAAM,oBAAA;EAAA;;;;;;;EASrB,OAAA;;;;;;;;;IASE,OAAA;;;;;;;;IASA,OAAA;EAAA;AAAA"}
1
+ {"version":3,"file":"types.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/warlock-config/types.ts"],"mappings":";;;;;;;;;;;YAcY;;;;EAIV;;;;IAIE;;;;IAIA;;;;IAIA;;;;;;;;;;;;;EAcF,QAAQ,KAAK;;;;;;IAMX;;;;;;;;;;;IAWA;;;;;;IAMA;;;;;;;IAOA;;;;;;;;;;;;;;;;;IAiBA;;;;;;;;;;;;;;;;IAgBA;;;;;;IAMA;;;;;;IAMA;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BF,aAAa;;;;EAKb;IACE,WAAW;;;;;EAMb;;;;IAIE;;;;;;MAME;;;;;;MAMA;;;;;;IAMF,iBAAiB,8BAA8B;;;;;IAK/C;;;;;;;;;IASA;;;;;;;;;IASA;;;;;;;;;;IAUA;;;;;;;;;;;;IAYA;;;;;;;;;;IAUA;;;;;;;;;IASA;;MAIM;;MAEA;;MAEA;;;;;;EAOR;;;;;;;;;;;;;;;;;;IAkBE,aAAa,MAAM;;;;;;;;EASrB;;;;;;;;;IASE;;;;;;;;IASA"}
@@ -1,5 +1,4 @@
1
1
  import { WarlockConfig } from "./types.mjs";
2
-
3
2
  //#region ../../packages/core/src/warlock-config/warlock-config.manager.d.ts
4
3
  /**
5
4
  * True when `error` is Node's "this runtime can't import a `.ts` file" error.
@@ -9,7 +8,7 @@ import { WarlockConfig } from "./types.mjs";
9
8
  * `import("warlock.config.ts")` throws `ERR_UNKNOWN_FILE_EXTENSION` — which is
10
9
  * the signal to fall back to transpiling the config ourselves.
11
10
  */
12
- declare function isUnknownTsExtensionError(error: unknown): boolean;
11
+ export declare function isUnknownTsExtensionError(error: unknown): boolean;
13
12
  /**
14
13
  * True when `error` is Node failing to RESOLVE an import of the config's OWN
15
14
  * graph: an extensionless relative import (`./src/connectors/local`), a
@@ -24,20 +23,20 @@ declare function isUnknownTsExtensionError(error: unknown): boolean;
24
23
  * `pathAliases` are the tsconfig `paths` patterns (`app/*`). When the message
25
24
  * cannot be parsed the error is treated as a graph error, as before.
26
25
  */
27
- declare function isUnresolvedConfigImportError(error: unknown, pathAliases?: readonly string[]): boolean;
26
+ export declare function isUnresolvedConfigImportError(error: unknown, pathAliases?: readonly string[]): boolean;
28
27
  /**
29
28
  * True when `error` is native type stripping refusing TypeScript it cannot
30
29
  * strip (an `enum`, a `namespace`, a parameter property) or a `.ts` file under
31
30
  * `node_modules`. Both are raised while loading, before the graph runs.
32
31
  */
33
- declare function isUnsupportedTypeStrippingError(error: unknown): boolean;
32
+ export declare function isUnsupportedTypeStrippingError(error: unknown): boolean;
34
33
  /**
35
34
  * Warlock Config Manager
36
35
  *
37
36
  * Manages lazy loading of the pre-compiled warlock.config.js file
38
37
  * from the .warlock/cache directory.
39
38
  */
40
- declare class WarlockConfigManager {
39
+ export declare class WarlockConfigManager {
41
40
  /**
42
41
  * Cached config instance
43
42
  */
@@ -123,7 +122,6 @@ declare class WarlockConfigManager {
123
122
  * await warlockConfig.load();
124
123
  * const commands = warlockConfig.get("cli.commands");
125
124
  */
126
- declare const warlockConfigManager: WarlockConfigManager;
125
+ export declare const warlockConfigManager: WarlockConfigManager;
127
126
  //#endregion
128
- export { WarlockConfigManager, isUnknownTsExtensionError, isUnresolvedConfigImportError, isUnsupportedTypeStrippingError, warlockConfigManager };
129
127
  //# sourceMappingURL=warlock-config.manager.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"warlock-config.manager.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/warlock-config/warlock-config.manager.ts"],"mappings":";;;;;AAyBA;;;;AAAwD;AAqBxD;iBArBgB,yBAAA,CAA0B,KAAc;;;AAuBnB;AA4BrC;;;;AAA8D;AA+B9D;;;;;;iBA7DgB,6BAAA,CACd,KAAA,WACA,WAAmC;;;;;;iBA4BrB,+BAAA,CAAgC,KAAc;;;;;;;cA+BjD,oBAAA;EA0LmB;;;EAAA,QAtLtB,MAAA;EAYK;;;EAAA,QAPL,OAAA;EA6FM;;;;;EAtFD,IAAA,IAAQ,OAAA,CAAQ,aAAA;EAwHZ;;;;;;EAAA,QA1FH,MAAA;EA6GkB;;;;;;;;;;;;EAAA,QArDlB,cAAA;EAoFS;;AAAO;AAwDhC;;;;AAA8D;;;;EA5GrD,GAAA,mBAAsB,aAAA,EAC3B,GAAA,EAAK,GAAA,EACL,YAAA,GAAe,aAAA,CAAc,GAAA,IAC5B,aAAA,CAAc,GAAA;;;;;;;;;;;EAkBX,OAAA,mBAA0B,aAAA,EAC9B,GAAA,EAAK,GAAA,EACL,YAAA,GAAe,aAAA,CAAc,GAAA,IAC5B,OAAA,CAAQ,aAAA,CAAc,GAAA;;;;MAQd,QAAA;;;;;;EASJ,MAAA,IAAU,aAAA;;;;EAWJ,MAAA,IAAU,OAAA;AAAA;;;;;;;;;;;;;;cAwDZ,oBAAA,EAAoB,oBAA6B"}
1
+ {"version":3,"file":"warlock-config.manager.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/warlock-config/warlock-config.manager.ts"],"mappings":";;;;;;;;;;wBAyBgB,0BAA0B;;;;;;;;;;;;;;;wBAqB1B,8BACd,gBACA;;;;;;wBA4Bc,gCAAgC;;;;;;;qBA+BnC;;;;UAIH;;;;UAKA;;;;;;EAOK,QAAQ,QAAQ;;;;;;;UA8Bf;;;;;;;;;;;;;UAwDA;;;;;;;;;;;;EAgCP,IAAI,kBAAkB,eAC3B,KAAK,KACL,eAAe,cAAc,OAC5B,cAAc;;;;;;;;;;;EAkBX,QAAQ,kBAAkB,eAC9B,KAAK,KACL,eAAe,cAAc,OAC5B,QAAQ,cAAc;;;;MAQd;;;;;;EASJ,UAAU;;;;EAWJ,UAAU;;;;;;;;;;;;;;;qBAwDZ,sBAAoB"}
@@ -207,7 +207,8 @@ function configPathAliases(configPath) {
207
207
  function nameOriginalConfig(error, compiledPath, configPath) {
208
208
  const code = error?.code;
209
209
  if (typeof code !== "string" || !code.startsWith("ERR_")) return error;
210
- const wrapped = new ErrorWithCause(`Failed to load warlock.config.ts: ${String(error.message ?? error).split(pathToFileURL(compiledPath).href).join(pathToFileURL(configPath).href).split(compiledPath).join(configPath)}`, { cause: error });
210
+ const message = String(error.message ?? error).split(pathToFileURL(compiledPath).href).join(pathToFileURL(configPath).href).split(compiledPath).join(configPath);
211
+ const wrapped = new ErrorWithCause(`Failed to load warlock.config.ts: ${message}`, { cause: error });
211
212
  wrapped.code = code;
212
213
  return wrapped;
213
214
  }
@@ -1 +1 @@
1
- {"version":3,"file":"warlock-config.manager.mjs","names":[],"sources":["../../../../../../../../packages/core/src/warlock-config/warlock-config.manager.ts"],"sourcesContent":["import { fileExistsAsync } from \"@warlock.js/fs\";\nimport { get } from \"@mongez/reinforcements\";\nimport { getTsconfig } from \"get-tsconfig\";\nimport { unlink, writeFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { pathToFileURL } from \"url\";\nimport { rootPath } from \"../utils\";\nimport { bundleWarlockConfig } from \"./bundle-config\";\nimport { type WarlockConfig } from \"./types\";\nimport { getDeprecatedConfigWarnings } from \"./warn-deprecated-config\";\n\n/**\n * `Error` with the ES2022 `cause` option, typed for packages still compiled\n * against an older lib (see `application.ts`).\n */\nconst ErrorWithCause = Error as new (message: string, options: { cause: unknown }) => Error;\n\n/**\n * True when `error` is Node's \"this runtime can't import a `.ts` file\" error.\n *\n * Node only executes TypeScript natively from v22.18 / v23.6 onward (earlier\n * 22.x needs `--experimental-strip-types`). On older runtimes a bare\n * `import(\"warlock.config.ts\")` throws `ERR_UNKNOWN_FILE_EXTENSION` — which is\n * the signal to fall back to transpiling the config ourselves.\n */\nexport function isUnknownTsExtensionError(error: unknown): boolean {\n return (\n (error as { code?: string })?.code === \"ERR_UNKNOWN_FILE_EXTENSION\" ||\n /Unknown file extension \"\\.tsx?\"/.test(String((error as Error)?.message))\n );\n}\n\n/**\n * True when `error` is Node failing to RESOLVE an import of the config's OWN\n * graph: an extensionless relative import (`./src/connectors/local`), a\n * directory import, or a tsconfig `paths` alias (`app/connectors`) — all of\n * which only a TypeScript toolchain resolves. Native type stripping\n * (Node ≥ 22.18) loads `warlock.config.ts` itself, then fails here.\n *\n * A package that is genuinely not installed is NOT a fallback case: the error\n * names a bare specifier that matches no `paths` pattern, and it is rethrown\n * as is. Neither is a missing module imported from inside `node_modules`.\n *\n * `pathAliases` are the tsconfig `paths` patterns (`app/*`). When the message\n * cannot be parsed the error is treated as a graph error, as before.\n */\nexport function isUnresolvedConfigImportError(\n error: unknown,\n pathAliases: readonly string[] = [],\n): boolean {\n const code = (error as { code?: string })?.code;\n\n if (code === \"ERR_UNSUPPORTED_DIR_IMPORT\") return true;\n if (code !== \"ERR_MODULE_NOT_FOUND\") return false;\n\n const message = String((error as Error)?.message ?? \"\");\n const match = /Cannot find (module|package) '([^']+)' imported from (.+)$/m.exec(message);\n\n if (!match) return true;\n\n const [, kind, specifier = \"\", importer = \"\"] = match;\n\n if (/[\\\\/]node_modules[\\\\/]/.test(importer)) return false;\n\n // An unresolved relative or absolute path: an extensionless TS import.\n if (kind === \"module\") return true;\n\n // A bare name: only a tsconfig alias is the config graph's own code.\n return pathAliases.some((pattern) => aliasCovers(pattern, specifier));\n}\n\n/**\n * True when `error` is native type stripping refusing TypeScript it cannot\n * strip (an `enum`, a `namespace`, a parameter property) or a `.ts` file under\n * `node_modules`. Both are raised while loading, before the graph runs.\n */\nexport function isUnsupportedTypeStrippingError(error: unknown): boolean {\n const code = (error as { code?: string })?.code;\n\n return (\n code === \"ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX\" ||\n code === \"ERR_UNSUPPORTED_NODE_MODULES_TYPE_STRIPPING\"\n );\n}\n\n/**\n * True when a tsconfig `paths` pattern can produce `packageName` as the first\n * segment(s) of a specifier: `app/*` covers `app`, `@shared/*` covers\n * `@shared`, a catch-all `*` covers anything.\n */\nfunction aliasCovers(pattern: string, packageName: string): boolean {\n const star = pattern.indexOf(\"*\");\n const prefix = star === -1 ? pattern : pattern.slice(0, star);\n\n if (prefix === \"\") return true;\n\n return (\n prefix === packageName || prefix.startsWith(`${packageName}/`) || packageName.startsWith(prefix)\n );\n}\n\n/**\n * Warlock Config Manager\n *\n * Manages lazy loading of the pre-compiled warlock.config.js file\n * from the .warlock/cache directory.\n */\nexport class WarlockConfigManager {\n /**\n * Cached config instance\n */\n private config?: WarlockConfig;\n\n /**\n * Loading promise to prevent duplicate loads\n */\n private loading?: Promise<WarlockConfig | undefined>;\n\n /**\n * Load warlock.config.js (cached after first load)\n *\n * @returns The resolved Warlock configuration\n */\n public async load(): Promise<WarlockConfig | undefined> {\n // Already loaded\n if (this.config) {\n return this.config;\n }\n\n // Currently loading (prevent duplicate loads)\n if (this.loading) {\n return this.loading;\n }\n\n // Start loading\n this.loading = this.doLoad();\n this.config = await this.loading;\n this.loading = undefined;\n\n // Console, not the logger: this runs before any log channel exists.\n for (const warning of getDeprecatedConfigWarnings(this.config)) {\n console.warn(warning);\n }\n\n return this.config;\n }\n\n /**\n * Internal load implementation\n *\n * The ESM loader hook transpiles `warlock.config.ts` on import — no\n * separate compile-to-disk step is needed.\n */\n private async doLoad(): Promise<WarlockConfig | undefined> {\n const configPath = rootPath(\"warlock.config.ts\");\n\n if (!(await fileExistsAsync(configPath))) {\n // Written straight to the console, NOT through `@warlock.js/logger`.\n // This runs during CLI bootstrap, before `LoggerConnector.start()` has\n // configured a single channel, so a logger call here reaches nobody in\n // any application — the warning would be silently dropped exactly when\n // the user most needs it.\n console.warn(\n \"warlock.config.ts is missing — create it at the project root (see https://warlock.js.org/docs for the config reference)\",\n );\n return;\n }\n\n try {\n const configModule = await import(pathToFileURL(configPath).href);\n return configModule.default;\n } catch (error) {\n // `dev` registers a TS loader hook, and Node ≥ 22.18 / 23.6 strips types\n // natively — in both cases the direct import above works for a\n // self-contained config. But `build` / `start` register no hook, so on an\n // older Node the import throws ERR_UNKNOWN_FILE_EXTENSION; native\n // stripping cannot resolve extensionless or tsconfig-aliased local\n // imports, nor strip an `enum` or a parameter property. Bundle the\n // config's local graph with esbuild ourselves so config loading is\n // Node-version-independent.\n //\n // These errors are raised while resolving and loading the STATIC graph,\n // before any of it runs. An unresolved import reached later — a dynamic\n // `import()` while the config runs — is indistinguishable by code, so the\n // fallback is limited to the config's own relative and aliased imports.\n if (\n isUnknownTsExtensionError(error) ||\n isUnsupportedTypeStrippingError(error) ||\n isUnresolvedConfigImportError(error, configPathAliases(configPath))\n ) {\n return await this.loadViaEsbuild(configPath);\n }\n\n throw new ErrorWithCause(`Failed to load warlock.config.ts: ${error}`, { cause: error });\n }\n }\n\n /**\n * Fallback config loader for runtimes that cannot import the config as written.\n *\n * Bundles `warlock.config.ts` with its LOCAL import graph (relative imports,\n * extensionless TS imports, tsconfig `paths` aliases) through esbuild, keeping\n * every package external so `BaseConnector`, the container and other\n * registries keep the application's identity (see `bundleWarlockConfig`).\n * The bundle is written as a sibling `.mjs` — so its external imports resolve\n * from the project exactly as they would from the original config — imported\n * once, then removed whether it loaded or threw. An error thrown by the\n * user's config propagates unchanged.\n */\n private async loadViaEsbuild(configPath: string): Promise<WarlockConfig | undefined> {\n const code = await bundleWarlockConfig(configPath);\n\n // Unique sibling name so concurrent processes never clobber each other.\n const compiledPath = configPath.replace(\n /warlock\\.config\\.ts$/,\n `.warlock.config.${process.pid}.${Date.now()}.mjs`,\n );\n\n await writeFile(compiledPath, code, \"utf8\");\n\n try {\n const configModule = await import(pathToFileURL(compiledPath).href);\n return configModule.default;\n } catch (error) {\n throw nameOriginalConfig(error, compiledPath, configPath);\n } finally {\n await unlink(compiledPath).catch(() => {});\n }\n }\n\n /**\n * Get config value by key (dot notation supported)\n *\n * @example\n * config.get(\"server.port\") // Returns 3000\n * config.get(\"cli.commands\") // Returns array of commands\n *\n * @param key - Config key (supports dot notation), autocompletes for first level only\n * @returns The config value\n * @throws Error if config is not loaded\n */\n public get<Key extends keyof WarlockConfig>(\n key: Key,\n defaultValue?: WarlockConfig[Key],\n ): WarlockConfig[Key] {\n if (!this.config) {\n throw new Error(\"WarlockConfig not loaded. Call load() first or use lazyGet().\");\n }\n\n return get(this.config, key as string, defaultValue);\n }\n\n /**\n * Lazy get - loads config if not already loaded\n *\n * @example\n * const port = await config.lazyGet(\"server\");\n *\n * @param key - Config key (supports dot notation), autocompletes for first level only\n * @param defaultValue - Default value if config key is undefined\n * @returns The config value\n */\n async lazyGet<Key extends keyof WarlockConfig>(\n key: Key,\n defaultValue?: WarlockConfig[Key],\n ): Promise<WarlockConfig[Key]> {\n await this.load();\n return this.get(key, defaultValue);\n }\n\n /**\n * Check if config is loaded\n */\n public get isLoaded(): boolean {\n return this.config !== undefined;\n }\n\n /**\n * Get the entire config object\n *\n * @throws Error if config is not loaded\n */\n public getAll(): WarlockConfig {\n if (!this.config) {\n throw new Error(\"WarlockConfig not loaded. Call load() first or use lazyGet().\");\n }\n\n return this.config;\n }\n\n /**\n * Reload config (useful for HMR/development)\n */\n public async reload(): Promise<void> {\n this.config = undefined;\n this.loading = undefined;\n await this.load();\n }\n}\n\n/**\n * The tsconfig `paths` patterns of the project holding `configPath`.\n */\nfunction configPathAliases(configPath: string): string[] {\n try {\n return Object.keys(getTsconfig(path.dirname(configPath))?.config.compilerOptions?.paths ?? {});\n } catch {\n return [];\n }\n}\n\n/**\n * A loader error raised by the bundled config names the temporary `.mjs`\n * module. Rewrite it to name `warlock.config.ts`, keeping the original as the\n * cause. An error thrown by the user's own config is returned unchanged.\n */\nfunction nameOriginalConfig(error: unknown, compiledPath: string, configPath: string): unknown {\n const code = (error as { code?: string })?.code;\n\n if (typeof code !== \"string\" || !code.startsWith(\"ERR_\")) return error;\n\n const message = String((error as Error).message ?? error)\n .split(pathToFileURL(compiledPath).href)\n .join(pathToFileURL(configPath).href)\n .split(compiledPath)\n .join(configPath);\n\n const wrapped = new ErrorWithCause(`Failed to load warlock.config.ts: ${message}`, {\n cause: error,\n });\n\n (wrapped as Error & { code?: string }).code = code;\n\n return wrapped;\n}\n\n/**\n * Exported singleton instance\n *\n * @example\n * import { warlockConfig } from \"@warlock.js/core\";\n *\n * // Lazy load and get value\n * const port = await warlockConfig.lazyGet(\"server.port\");\n *\n * // Or load first, then get\n * await warlockConfig.load();\n * const commands = warlockConfig.get(\"cli.commands\");\n */\nexport const warlockConfigManager = new WarlockConfigManager();\n"],"mappings":"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"}
1
+ {"version":3,"file":"warlock-config.manager.mjs","names":[],"sources":["../../../../../../../../packages/core/src/warlock-config/warlock-config.manager.ts"],"sourcesContent":["import { fileExistsAsync } from \"@warlock.js/fs\";\nimport { get } from \"@mongez/reinforcements\";\nimport { getTsconfig } from \"get-tsconfig\";\nimport { unlink, writeFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { pathToFileURL } from \"url\";\nimport { rootPath } from \"../utils\";\nimport { bundleWarlockConfig } from \"./bundle-config\";\nimport { type WarlockConfig } from \"./types\";\nimport { getDeprecatedConfigWarnings } from \"./warn-deprecated-config\";\n\n/**\n * `Error` with the ES2022 `cause` option, typed for packages still compiled\n * against an older lib (see `application.ts`).\n */\nconst ErrorWithCause = Error as new (message: string, options: { cause: unknown }) => Error;\n\n/**\n * True when `error` is Node's \"this runtime can't import a `.ts` file\" error.\n *\n * Node only executes TypeScript natively from v22.18 / v23.6 onward (earlier\n * 22.x needs `--experimental-strip-types`). On older runtimes a bare\n * `import(\"warlock.config.ts\")` throws `ERR_UNKNOWN_FILE_EXTENSION` — which is\n * the signal to fall back to transpiling the config ourselves.\n */\nexport function isUnknownTsExtensionError(error: unknown): boolean {\n return (\n (error as { code?: string })?.code === \"ERR_UNKNOWN_FILE_EXTENSION\" ||\n /Unknown file extension \"\\.tsx?\"/.test(String((error as Error)?.message))\n );\n}\n\n/**\n * True when `error` is Node failing to RESOLVE an import of the config's OWN\n * graph: an extensionless relative import (`./src/connectors/local`), a\n * directory import, or a tsconfig `paths` alias (`app/connectors`) — all of\n * which only a TypeScript toolchain resolves. Native type stripping\n * (Node ≥ 22.18) loads `warlock.config.ts` itself, then fails here.\n *\n * A package that is genuinely not installed is NOT a fallback case: the error\n * names a bare specifier that matches no `paths` pattern, and it is rethrown\n * as is. Neither is a missing module imported from inside `node_modules`.\n *\n * `pathAliases` are the tsconfig `paths` patterns (`app/*`). When the message\n * cannot be parsed the error is treated as a graph error, as before.\n */\nexport function isUnresolvedConfigImportError(\n error: unknown,\n pathAliases: readonly string[] = [],\n): boolean {\n const code = (error as { code?: string })?.code;\n\n if (code === \"ERR_UNSUPPORTED_DIR_IMPORT\") return true;\n if (code !== \"ERR_MODULE_NOT_FOUND\") return false;\n\n const message = String((error as Error)?.message ?? \"\");\n const match = /Cannot find (module|package) '([^']+)' imported from (.+)$/m.exec(message);\n\n if (!match) return true;\n\n const [, kind, specifier = \"\", importer = \"\"] = match;\n\n if (/[\\\\/]node_modules[\\\\/]/.test(importer)) return false;\n\n // An unresolved relative or absolute path: an extensionless TS import.\n if (kind === \"module\") return true;\n\n // A bare name: only a tsconfig alias is the config graph's own code.\n return pathAliases.some((pattern) => aliasCovers(pattern, specifier));\n}\n\n/**\n * True when `error` is native type stripping refusing TypeScript it cannot\n * strip (an `enum`, a `namespace`, a parameter property) or a `.ts` file under\n * `node_modules`. Both are raised while loading, before the graph runs.\n */\nexport function isUnsupportedTypeStrippingError(error: unknown): boolean {\n const code = (error as { code?: string })?.code;\n\n return (\n code === \"ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX\" ||\n code === \"ERR_UNSUPPORTED_NODE_MODULES_TYPE_STRIPPING\"\n );\n}\n\n/**\n * True when a tsconfig `paths` pattern can produce `packageName` as the first\n * segment(s) of a specifier: `app/*` covers `app`, `@shared/*` covers\n * `@shared`, a catch-all `*` covers anything.\n */\nfunction aliasCovers(pattern: string, packageName: string): boolean {\n const star = pattern.indexOf(\"*\");\n const prefix = star === -1 ? pattern : pattern.slice(0, star);\n\n if (prefix === \"\") return true;\n\n return (\n prefix === packageName || prefix.startsWith(`${packageName}/`) || packageName.startsWith(prefix)\n );\n}\n\n/**\n * Warlock Config Manager\n *\n * Manages lazy loading of the pre-compiled warlock.config.js file\n * from the .warlock/cache directory.\n */\nexport class WarlockConfigManager {\n /**\n * Cached config instance\n */\n private config?: WarlockConfig;\n\n /**\n * Loading promise to prevent duplicate loads\n */\n private loading?: Promise<WarlockConfig | undefined>;\n\n /**\n * Load warlock.config.js (cached after first load)\n *\n * @returns The resolved Warlock configuration\n */\n public async load(): Promise<WarlockConfig | undefined> {\n // Already loaded\n if (this.config) {\n return this.config;\n }\n\n // Currently loading (prevent duplicate loads)\n if (this.loading) {\n return this.loading;\n }\n\n // Start loading\n this.loading = this.doLoad();\n this.config = await this.loading;\n this.loading = undefined;\n\n // Console, not the logger: this runs before any log channel exists.\n for (const warning of getDeprecatedConfigWarnings(this.config)) {\n console.warn(warning);\n }\n\n return this.config;\n }\n\n /**\n * Internal load implementation\n *\n * The ESM loader hook transpiles `warlock.config.ts` on import — no\n * separate compile-to-disk step is needed.\n */\n private async doLoad(): Promise<WarlockConfig | undefined> {\n const configPath = rootPath(\"warlock.config.ts\");\n\n if (!(await fileExistsAsync(configPath))) {\n // Written straight to the console, NOT through `@warlock.js/logger`.\n // This runs during CLI bootstrap, before `LoggerConnector.start()` has\n // configured a single channel, so a logger call here reaches nobody in\n // any application — the warning would be silently dropped exactly when\n // the user most needs it.\n console.warn(\n \"warlock.config.ts is missing — create it at the project root (see https://warlock.js.org/docs for the config reference)\",\n );\n return;\n }\n\n try {\n const configModule = await import(pathToFileURL(configPath).href);\n return configModule.default;\n } catch (error) {\n // `dev` registers a TS loader hook, and Node ≥ 22.18 / 23.6 strips types\n // natively — in both cases the direct import above works for a\n // self-contained config. But `build` / `start` register no hook, so on an\n // older Node the import throws ERR_UNKNOWN_FILE_EXTENSION; native\n // stripping cannot resolve extensionless or tsconfig-aliased local\n // imports, nor strip an `enum` or a parameter property. Bundle the\n // config's local graph with esbuild ourselves so config loading is\n // Node-version-independent.\n //\n // These errors are raised while resolving and loading the STATIC graph,\n // before any of it runs. An unresolved import reached later — a dynamic\n // `import()` while the config runs — is indistinguishable by code, so the\n // fallback is limited to the config's own relative and aliased imports.\n if (\n isUnknownTsExtensionError(error) ||\n isUnsupportedTypeStrippingError(error) ||\n isUnresolvedConfigImportError(error, configPathAliases(configPath))\n ) {\n return await this.loadViaEsbuild(configPath);\n }\n\n throw new ErrorWithCause(`Failed to load warlock.config.ts: ${error}`, { cause: error });\n }\n }\n\n /**\n * Fallback config loader for runtimes that cannot import the config as written.\n *\n * Bundles `warlock.config.ts` with its LOCAL import graph (relative imports,\n * extensionless TS imports, tsconfig `paths` aliases) through esbuild, keeping\n * every package external so `BaseConnector`, the container and other\n * registries keep the application's identity (see `bundleWarlockConfig`).\n * The bundle is written as a sibling `.mjs` — so its external imports resolve\n * from the project exactly as they would from the original config — imported\n * once, then removed whether it loaded or threw. An error thrown by the\n * user's config propagates unchanged.\n */\n private async loadViaEsbuild(configPath: string): Promise<WarlockConfig | undefined> {\n const code = await bundleWarlockConfig(configPath);\n\n // Unique sibling name so concurrent processes never clobber each other.\n const compiledPath = configPath.replace(\n /warlock\\.config\\.ts$/,\n `.warlock.config.${process.pid}.${Date.now()}.mjs`,\n );\n\n await writeFile(compiledPath, code, \"utf8\");\n\n try {\n const configModule = await import(pathToFileURL(compiledPath).href);\n return configModule.default;\n } catch (error) {\n throw nameOriginalConfig(error, compiledPath, configPath);\n } finally {\n await unlink(compiledPath).catch(() => {});\n }\n }\n\n /**\n * Get config value by key (dot notation supported)\n *\n * @example\n * config.get(\"server.port\") // Returns 3000\n * config.get(\"cli.commands\") // Returns array of commands\n *\n * @param key - Config key (supports dot notation), autocompletes for first level only\n * @returns The config value\n * @throws Error if config is not loaded\n */\n public get<Key extends keyof WarlockConfig>(\n key: Key,\n defaultValue?: WarlockConfig[Key],\n ): WarlockConfig[Key] {\n if (!this.config) {\n throw new Error(\"WarlockConfig not loaded. Call load() first or use lazyGet().\");\n }\n\n return get(this.config, key as string, defaultValue);\n }\n\n /**\n * Lazy get - loads config if not already loaded\n *\n * @example\n * const port = await config.lazyGet(\"server\");\n *\n * @param key - Config key (supports dot notation), autocompletes for first level only\n * @param defaultValue - Default value if config key is undefined\n * @returns The config value\n */\n async lazyGet<Key extends keyof WarlockConfig>(\n key: Key,\n defaultValue?: WarlockConfig[Key],\n ): Promise<WarlockConfig[Key]> {\n await this.load();\n return this.get(key, defaultValue);\n }\n\n /**\n * Check if config is loaded\n */\n public get isLoaded(): boolean {\n return this.config !== undefined;\n }\n\n /**\n * Get the entire config object\n *\n * @throws Error if config is not loaded\n */\n public getAll(): WarlockConfig {\n if (!this.config) {\n throw new Error(\"WarlockConfig not loaded. Call load() first or use lazyGet().\");\n }\n\n return this.config;\n }\n\n /**\n * Reload config (useful for HMR/development)\n */\n public async reload(): Promise<void> {\n this.config = undefined;\n this.loading = undefined;\n await this.load();\n }\n}\n\n/**\n * The tsconfig `paths` patterns of the project holding `configPath`.\n */\nfunction configPathAliases(configPath: string): string[] {\n try {\n return Object.keys(getTsconfig(path.dirname(configPath))?.config.compilerOptions?.paths ?? {});\n } catch {\n return [];\n }\n}\n\n/**\n * A loader error raised by the bundled config names the temporary `.mjs`\n * module. Rewrite it to name `warlock.config.ts`, keeping the original as the\n * cause. An error thrown by the user's own config is returned unchanged.\n */\nfunction nameOriginalConfig(error: unknown, compiledPath: string, configPath: string): unknown {\n const code = (error as { code?: string })?.code;\n\n if (typeof code !== \"string\" || !code.startsWith(\"ERR_\")) return error;\n\n const message = String((error as Error).message ?? error)\n .split(pathToFileURL(compiledPath).href)\n .join(pathToFileURL(configPath).href)\n .split(compiledPath)\n .join(configPath);\n\n const wrapped = new ErrorWithCause(`Failed to load warlock.config.ts: ${message}`, {\n cause: error,\n });\n\n (wrapped as Error & { code?: string }).code = code;\n\n return wrapped;\n}\n\n/**\n * Exported singleton instance\n *\n * @example\n * import { warlockConfig } from \"@warlock.js/core\";\n *\n * // Lazy load and get value\n * const port = await warlockConfig.lazyGet(\"server.port\");\n *\n * // Or load first, then get\n * await warlockConfig.load();\n * const commands = warlockConfig.get(\"cli.commands\");\n */\nexport const warlockConfigManager = new WarlockConfigManager();\n"],"mappings":"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"}
@@ -21,5 +21,5 @@ function getDeprecatedConfigWarnings(config) {
21
21
  }
22
22
 
23
23
  //#endregion
24
- export { getDeprecatedConfigWarnings };
24
+ export { deprecatedConfigKeys, getDeprecatedConfigWarnings };
25
25
  //# sourceMappingURL=warn-deprecated-config.mjs.map