@warlock.js/core 5.28.0 → 5.30.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 (1396) hide show
  1. package/CHANGELOG.md +71 -0
  2. package/esm/application/app.d.mts +1 -1
  3. package/esm/application/app.d.mts.map +1 -1
  4. package/esm/application/app.mjs +1 -1
  5. package/esm/application/app.mjs.map +1 -1
  6. package/esm/application/application-config-types.d.mts +1 -1
  7. package/esm/application/application-config-types.d.mts.map +1 -1
  8. package/esm/application/application.d.mts +1 -1
  9. package/esm/application/application.d.mts.map +1 -1
  10. package/esm/application/application.mjs +1 -1
  11. package/esm/application/application.mjs.map +1 -1
  12. package/esm/application/boot-signal.d.mts +1 -1
  13. package/esm/application/boot-signal.d.mts.map +1 -1
  14. package/esm/application/boot-signal.mjs +1 -1
  15. package/esm/application/boot-signal.mjs.map +1 -1
  16. package/esm/application/public-url.d.mts +1 -1
  17. package/esm/application/public-url.d.mts.map +1 -1
  18. package/esm/application/public-url.mjs +1 -1
  19. package/esm/application/public-url.mjs.map +1 -1
  20. package/esm/application/roles.d.mts +1 -1
  21. package/esm/application/roles.d.mts.map +1 -1
  22. package/esm/application/roles.mjs +1 -1
  23. package/esm/application/roles.mjs.map +1 -1
  24. package/esm/benchmark/benchmark-snapshots.d.mts +1 -1
  25. package/esm/benchmark/benchmark-snapshots.d.mts.map +1 -1
  26. package/esm/benchmark/benchmark-snapshots.mjs +1 -1
  27. package/esm/benchmark/benchmark-snapshots.mjs.map +1 -1
  28. package/esm/benchmark/benchmark.d.mts +1 -1
  29. package/esm/benchmark/benchmark.d.mts.map +1 -1
  30. package/esm/benchmark/benchmark.mjs +1 -1
  31. package/esm/benchmark/benchmark.mjs.map +1 -1
  32. package/esm/benchmark/channels/console.channel.d.mts +1 -1
  33. package/esm/benchmark/channels/console.channel.d.mts.map +1 -1
  34. package/esm/benchmark/channels/console.channel.mjs +1 -1
  35. package/esm/benchmark/channels/console.channel.mjs.map +1 -1
  36. package/esm/benchmark/channels/noop.channel.d.mts +1 -1
  37. package/esm/benchmark/channels/noop.channel.d.mts.map +1 -1
  38. package/esm/benchmark/channels/noop.channel.mjs +1 -1
  39. package/esm/benchmark/channels/noop.channel.mjs.map +1 -1
  40. package/esm/benchmark/profiler.d.mts +1 -1
  41. package/esm/benchmark/profiler.d.mts.map +1 -1
  42. package/esm/benchmark/profiler.mjs +1 -1
  43. package/esm/benchmark/profiler.mjs.map +1 -1
  44. package/esm/benchmark/types.d.mts +1 -1
  45. package/esm/benchmark/types.d.mts.map +1 -1
  46. package/esm/bootstrap/setup.d.mts +1 -1
  47. package/esm/bootstrap/setup.d.mts.map +1 -1
  48. package/esm/bootstrap/setup.mjs +1 -1
  49. package/esm/bootstrap/setup.mjs.map +1 -1
  50. package/esm/bootstrap.d.mts +1 -1
  51. package/esm/bootstrap.d.mts.map +1 -1
  52. package/esm/bootstrap.mjs +1 -1
  53. package/esm/bootstrap.mjs.map +1 -1
  54. package/esm/cache/database-cache-driver.d.mts +1 -1
  55. package/esm/cache/database-cache-driver.d.mts.map +1 -1
  56. package/esm/cache/database-cache-driver.mjs +1 -1
  57. package/esm/cache/database-cache-driver.mjs.map +1 -1
  58. package/esm/cache/index.mjs +1 -1
  59. package/esm/cache/index.mjs.map +1 -1
  60. package/esm/cli/cli-commands.manager.mjs +1 -1
  61. package/esm/cli/cli-commands.manager.mjs.map +1 -1
  62. package/esm/cli/cli-commands.utils.mjs +1 -1
  63. package/esm/cli/cli-commands.utils.mjs.map +1 -1
  64. package/esm/cli/commands/add.command.mjs +1 -1
  65. package/esm/cli/commands/add.command.mjs.map +1 -1
  66. package/esm/cli/commands/build.command.mjs +1 -1
  67. package/esm/cli/commands/build.command.mjs.map +1 -1
  68. package/esm/cli/commands/create-database.command.mjs +1 -1
  69. package/esm/cli/commands/create-database.command.mjs.map +1 -1
  70. package/esm/cli/commands/dev-server.command.mjs +1 -1
  71. package/esm/cli/commands/dev-server.command.mjs.map +1 -1
  72. package/esm/cli/commands/doctor/boot-for-diagnostics.mjs +1 -1
  73. package/esm/cli/commands/doctor/boot-for-diagnostics.mjs.map +1 -1
  74. package/esm/cli/commands/doctor/checks/config.check.mjs +1 -1
  75. package/esm/cli/commands/doctor/checks/config.check.mjs.map +1 -1
  76. package/esm/cli/commands/doctor/checks/connectors.check.mjs +1 -1
  77. package/esm/cli/commands/doctor/checks/connectors.check.mjs.map +1 -1
  78. package/esm/cli/commands/doctor/checks/handler-signature.check.mjs +1 -1
  79. package/esm/cli/commands/doctor/checks/handler-signature.check.mjs.map +1 -1
  80. package/esm/cli/commands/doctor/checks/health.check.mjs +1 -1
  81. package/esm/cli/commands/doctor/checks/health.check.mjs.map +1 -1
  82. package/esm/cli/commands/doctor/checks/index.mjs +1 -1
  83. package/esm/cli/commands/doctor/checks/index.mjs.map +1 -1
  84. package/esm/cli/commands/doctor/checks/jwt-secret.check.mjs +1 -1
  85. package/esm/cli/commands/doctor/checks/jwt-secret.check.mjs.map +1 -1
  86. package/esm/cli/commands/doctor/checks/locales-ts-deprecated.check.mjs +1 -1
  87. package/esm/cli/commands/doctor/checks/locales-ts-deprecated.check.mjs.map +1 -1
  88. package/esm/cli/commands/doctor/checks/optional-peers.check.mjs +1 -1
  89. package/esm/cli/commands/doctor/checks/optional-peers.check.mjs.map +1 -1
  90. package/esm/cli/commands/doctor/checks/release-hygiene.check.mjs +1 -1
  91. package/esm/cli/commands/doctor/checks/release-hygiene.check.mjs.map +1 -1
  92. package/esm/cli/commands/doctor/checks/routes.check.mjs +1 -1
  93. package/esm/cli/commands/doctor/checks/routes.check.mjs.map +1 -1
  94. package/esm/cli/commands/doctor/doctor-command.action.mjs +1 -1
  95. package/esm/cli/commands/doctor/doctor-command.action.mjs.map +1 -1
  96. package/esm/cli/commands/doctor/format-report.mjs +1 -1
  97. package/esm/cli/commands/doctor/format-report.mjs.map +1 -1
  98. package/esm/cli/commands/doctor/run-checks.mjs +1 -1
  99. package/esm/cli/commands/doctor/run-checks.mjs.map +1 -1
  100. package/esm/cli/commands/doctor.command.mjs +1 -1
  101. package/esm/cli/commands/doctor.command.mjs.map +1 -1
  102. package/esm/cli/commands/drop-tables.command.mjs +1 -1
  103. package/esm/cli/commands/drop-tables.command.mjs.map +1 -1
  104. package/esm/cli/commands/generate/generate.command.mjs +1 -1
  105. package/esm/cli/commands/generate/generate.command.mjs.map +1 -1
  106. package/esm/cli/commands/generate/generators/column-dsl-parser.mjs +1 -1
  107. package/esm/cli/commands/generate/generators/column-dsl-parser.mjs.map +1 -1
  108. package/esm/cli/commands/generate/generators/controller.generator.mjs +1 -1
  109. package/esm/cli/commands/generate/generators/controller.generator.mjs.map +1 -1
  110. package/esm/cli/commands/generate/generators/migration.generator.mjs +1 -1
  111. package/esm/cli/commands/generate/generators/migration.generator.mjs.map +1 -1
  112. package/esm/cli/commands/generate/generators/model.generator.mjs +1 -1
  113. package/esm/cli/commands/generate/generators/model.generator.mjs.map +1 -1
  114. package/esm/cli/commands/generate/generators/module.generator.mjs +1 -1
  115. package/esm/cli/commands/generate/generators/module.generator.mjs.map +1 -1
  116. package/esm/cli/commands/generate/generators/repository.generator.mjs +1 -1
  117. package/esm/cli/commands/generate/generators/repository.generator.mjs.map +1 -1
  118. package/esm/cli/commands/generate/generators/resource.generator.mjs +1 -1
  119. package/esm/cli/commands/generate/generators/resource.generator.mjs.map +1 -1
  120. package/esm/cli/commands/generate/generators/service.generator.mjs +1 -1
  121. package/esm/cli/commands/generate/generators/service.generator.mjs.map +1 -1
  122. package/esm/cli/commands/generate/generators/use-case.generator.mjs +1 -1
  123. package/esm/cli/commands/generate/generators/use-case.generator.mjs.map +1 -1
  124. package/esm/cli/commands/generate/templates/stubs.mjs +1 -1
  125. package/esm/cli/commands/generate/templates/stubs.mjs.map +1 -1
  126. package/esm/cli/commands/generate/utils/name-parser.mjs +1 -1
  127. package/esm/cli/commands/generate/utils/name-parser.mjs.map +1 -1
  128. package/esm/cli/commands/generate/utils/path-resolver.mjs +1 -1
  129. package/esm/cli/commands/generate/utils/path-resolver.mjs.map +1 -1
  130. package/esm/cli/commands/generate/utils/prompt.mjs +1 -1
  131. package/esm/cli/commands/generate/utils/prompt.mjs.map +1 -1
  132. package/esm/cli/commands/generate/utils/writer.mjs +1 -1
  133. package/esm/cli/commands/generate/utils/writer.mjs.map +1 -1
  134. package/esm/cli/commands/migrate.command.mjs +1 -1
  135. package/esm/cli/commands/migrate.command.mjs.map +1 -1
  136. package/esm/cli/commands/openapi-generator.action.mjs +1 -1
  137. package/esm/cli/commands/openapi-generator.action.mjs.map +1 -1
  138. package/esm/cli/commands/openapi-generator.command.mjs +1 -1
  139. package/esm/cli/commands/openapi-generator.command.mjs.map +1 -1
  140. package/esm/cli/commands/postman-generator.action.mjs +1 -1
  141. package/esm/cli/commands/postman-generator.action.mjs.map +1 -1
  142. package/esm/cli/commands/postman-generator.command.mjs +1 -1
  143. package/esm/cli/commands/postman-generator.command.mjs.map +1 -1
  144. package/esm/cli/commands/routes/diff-page-routes.mjs +1 -1
  145. package/esm/cli/commands/routes/diff-page-routes.mjs.map +1 -1
  146. package/esm/cli/commands/routes/format-routes-table.mjs +1 -1
  147. package/esm/cli/commands/routes/format-routes-table.mjs.map +1 -1
  148. package/esm/cli/commands/routes/route-row.mjs +1 -1
  149. package/esm/cli/commands/routes/route-row.mjs.map +1 -1
  150. package/esm/cli/commands/routes/routes-command.action.mjs +1 -1
  151. package/esm/cli/commands/routes/routes-command.action.mjs.map +1 -1
  152. package/esm/cli/commands/routes/routes-diff.action.mjs +1 -1
  153. package/esm/cli/commands/routes/routes-diff.action.mjs.map +1 -1
  154. package/esm/cli/commands/routes/with-console-on-stderr.mjs +1 -1
  155. package/esm/cli/commands/routes/with-console-on-stderr.mjs.map +1 -1
  156. package/esm/cli/commands/routes.command.mjs +1 -1
  157. package/esm/cli/commands/routes.command.mjs.map +1 -1
  158. package/esm/cli/commands/seed.command.mjs +1 -1
  159. package/esm/cli/commands/seed.command.mjs.map +1 -1
  160. package/esm/cli/commands/start-production.command.mjs +1 -1
  161. package/esm/cli/commands/start-production.command.mjs.map +1 -1
  162. package/esm/cli/commands/storage-put.action.mjs +1 -1
  163. package/esm/cli/commands/storage-put.action.mjs.map +1 -1
  164. package/esm/cli/commands/storage-put.command.mjs +1 -1
  165. package/esm/cli/commands/storage-put.command.mjs.map +1 -1
  166. package/esm/cli/commands/typings-generator.command.mjs +1 -1
  167. package/esm/cli/commands/typings-generator.command.mjs.map +1 -1
  168. package/esm/cli/commands/update.command.mjs +1 -1
  169. package/esm/cli/commands/update.command.mjs.map +1 -1
  170. package/esm/cli/commands-loader.mjs +1 -1
  171. package/esm/cli/commands-loader.mjs.map +1 -1
  172. package/esm/cli/framework-cli-commands.mjs +1 -1
  173. package/esm/cli/framework-cli-commands.mjs.map +1 -1
  174. package/esm/cli/parse-cli-args.mjs +1 -1
  175. package/esm/cli/parse-cli-args.mjs.map +1 -1
  176. package/esm/cli/start.mjs +1 -1
  177. package/esm/cli/start.mjs.map +1 -1
  178. package/esm/cli/string-similarity.mjs +1 -1
  179. package/esm/cli/string-similarity.mjs.map +1 -1
  180. package/esm/commands/cli-command.d.mts +1 -1
  181. package/esm/commands/cli-command.d.mts.map +1 -1
  182. package/esm/commands/cli-command.mjs +1 -1
  183. package/esm/commands/cli-command.mjs.map +1 -1
  184. package/esm/commands/types.d.mts +1 -1
  185. package/esm/commands/types.d.mts.map +1 -1
  186. package/esm/config/config-getter.d.mts +1 -1
  187. package/esm/config/config-getter.d.mts.map +1 -1
  188. package/esm/config/config-getter.mjs +1 -1
  189. package/esm/config/config-getter.mjs.map +1 -1
  190. package/esm/config/config-handlers.d.mts +1 -1
  191. package/esm/config/config-handlers.d.mts.map +1 -1
  192. package/esm/config/config-handlers.mjs +1 -1
  193. package/esm/config/config-handlers.mjs.map +1 -1
  194. package/esm/config/config-key-from-path.mjs +1 -1
  195. package/esm/config/config-key-from-path.mjs.map +1 -1
  196. package/esm/config/config-loader.d.mts +1 -1
  197. package/esm/config/config-loader.d.mts.map +1 -1
  198. package/esm/config/config-loader.mjs +1 -1
  199. package/esm/config/config-loader.mjs.map +1 -1
  200. package/esm/config/config-manager.mjs +1 -1
  201. package/esm/config/config-manager.mjs.map +1 -1
  202. package/esm/config/config-setter.d.mts +1 -1
  203. package/esm/config/config-setter.d.mts.map +1 -1
  204. package/esm/config/config-setter.mjs +1 -1
  205. package/esm/config/config-setter.mjs.map +1 -1
  206. package/esm/config/config-special-handlers.d.mts +1 -1
  207. package/esm/config/config-special-handlers.d.mts.map +1 -1
  208. package/esm/config/config-special-handlers.mjs +1 -1
  209. package/esm/config/config-special-handlers.mjs.map +1 -1
  210. package/esm/config/load-config-files.mjs +1 -1
  211. package/esm/config/load-config-files.mjs.map +1 -1
  212. package/esm/config/locale-configuration.mjs +1 -1
  213. package/esm/config/locale-configuration.mjs.map +1 -1
  214. package/esm/config/types.d.mts +1 -1
  215. package/esm/config/types.d.mts.map +1 -1
  216. package/esm/connectors/access-connector.d.mts +1 -1
  217. package/esm/connectors/access-connector.d.mts.map +1 -1
  218. package/esm/connectors/access-connector.mjs +1 -1
  219. package/esm/connectors/access-connector.mjs.map +1 -1
  220. package/esm/connectors/ai-connector.d.mts +1 -1
  221. package/esm/connectors/ai-connector.d.mts.map +1 -1
  222. package/esm/connectors/ai-connector.mjs +1 -1
  223. package/esm/connectors/ai-connector.mjs.map +1 -1
  224. package/esm/connectors/assert-no-reserved-connector-names.d.mts +1 -1
  225. package/esm/connectors/assert-no-reserved-connector-names.d.mts.map +1 -1
  226. package/esm/connectors/assert-no-reserved-connector-names.mjs +1 -1
  227. package/esm/connectors/assert-no-reserved-connector-names.mjs.map +1 -1
  228. package/esm/connectors/assert-unique-connector-names.d.mts +1 -1
  229. package/esm/connectors/assert-unique-connector-names.d.mts.map +1 -1
  230. package/esm/connectors/assert-unique-connector-names.mjs +1 -1
  231. package/esm/connectors/assert-unique-connector-names.mjs.map +1 -1
  232. package/esm/connectors/base-connector.d.mts +1 -1
  233. package/esm/connectors/base-connector.d.mts.map +1 -1
  234. package/esm/connectors/base-connector.mjs +1 -1
  235. package/esm/connectors/base-connector.mjs.map +1 -1
  236. package/esm/connectors/cache-connector.d.mts +1 -1
  237. package/esm/connectors/cache-connector.d.mts.map +1 -1
  238. package/esm/connectors/cache-connector.mjs +1 -1
  239. package/esm/connectors/cache-connector.mjs.map +1 -1
  240. package/esm/connectors/connectors-manager.d.mts +1 -1
  241. package/esm/connectors/connectors-manager.d.mts.map +1 -1
  242. package/esm/connectors/connectors-manager.mjs +2 -2
  243. package/esm/connectors/connectors-manager.mjs.map +1 -1
  244. package/esm/connectors/database-connector.d.mts +1 -1
  245. package/esm/connectors/database-connector.d.mts.map +1 -1
  246. package/esm/connectors/database-connector.mjs +1 -1
  247. package/esm/connectors/database-connector.mjs.map +1 -1
  248. package/esm/connectors/describe-server-address.mjs +1 -1
  249. package/esm/connectors/describe-server-address.mjs.map +1 -1
  250. package/esm/connectors/herald-connector.d.mts +1 -1
  251. package/esm/connectors/herald-connector.d.mts.map +1 -1
  252. package/esm/connectors/herald-connector.mjs +1 -1
  253. package/esm/connectors/herald-connector.mjs.map +1 -1
  254. package/esm/connectors/http-connector.d.mts +1 -1
  255. package/esm/connectors/http-connector.d.mts.map +1 -1
  256. package/esm/connectors/http-connector.mjs +1 -1
  257. package/esm/connectors/http-connector.mjs.map +1 -1
  258. package/esm/connectors/logger-connector.d.mts +1 -1
  259. package/esm/connectors/logger-connector.d.mts.map +1 -1
  260. package/esm/connectors/logger-connector.mjs +1 -1
  261. package/esm/connectors/logger-connector.mjs.map +1 -1
  262. package/esm/connectors/mail-connector.d.mts +1 -1
  263. package/esm/connectors/mail-connector.d.mts.map +1 -1
  264. package/esm/connectors/mail-connector.mjs +1 -1
  265. package/esm/connectors/mail-connector.mjs.map +1 -1
  266. package/esm/connectors/notifications-connector.d.mts +1 -1
  267. package/esm/connectors/notifications-connector.d.mts.map +1 -1
  268. package/esm/connectors/notifications-connector.mjs +1 -1
  269. package/esm/connectors/notifications-connector.mjs.map +1 -1
  270. package/esm/connectors/read-bound-port.mjs +1 -1
  271. package/esm/connectors/read-bound-port.mjs.map +1 -1
  272. package/esm/connectors/register-configured-connectors.d.mts +1 -1
  273. package/esm/connectors/register-configured-connectors.d.mts.map +1 -1
  274. package/esm/connectors/register-configured-connectors.mjs +1 -1
  275. package/esm/connectors/register-configured-connectors.mjs.map +1 -1
  276. package/esm/connectors/single-server-warnings.mjs +1 -1
  277. package/esm/connectors/single-server-warnings.mjs.map +1 -1
  278. package/esm/connectors/socket-connector.d.mts +1 -1
  279. package/esm/connectors/socket-connector.d.mts.map +1 -1
  280. package/esm/connectors/socket-connector.mjs +1 -1
  281. package/esm/connectors/socket-connector.mjs.map +1 -1
  282. package/esm/connectors/storage.connector.d.mts +1 -1
  283. package/esm/connectors/storage.connector.d.mts.map +1 -1
  284. package/esm/connectors/storage.connector.mjs +1 -1
  285. package/esm/connectors/storage.connector.mjs.map +1 -1
  286. package/esm/connectors/types.d.mts +1 -1
  287. package/esm/connectors/types.d.mts.map +1 -1
  288. package/esm/connectors/types.mjs +1 -1
  289. package/esm/connectors/types.mjs.map +1 -1
  290. package/esm/container/container-instance-registry.mjs +1 -1
  291. package/esm/container/container-instance-registry.mjs.map +1 -1
  292. package/esm/container/development-app-modules.d.mts +31 -0
  293. package/esm/container/development-app-modules.d.mts.map +1 -0
  294. package/esm/container/development-model-modules.d.mts +1 -1
  295. package/esm/container/development-model-modules.d.mts.map +1 -1
  296. package/esm/container/index.d.mts +3 -1
  297. package/esm/container/index.d.mts.map +1 -1
  298. package/esm/container/index.mjs +1 -1
  299. package/esm/container/index.mjs.map +1 -1
  300. package/esm/database/create-database-action.mjs +1 -1
  301. package/esm/database/create-database-action.mjs.map +1 -1
  302. package/esm/database/drop-tables-action.mjs +1 -1
  303. package/esm/database/drop-tables-action.mjs.map +1 -1
  304. package/esm/database/migrate-action.mjs +1 -1
  305. package/esm/database/migrate-action.mjs.map +1 -1
  306. package/esm/database/models/database-log/database-log.d.mts +31 -39
  307. package/esm/database/models/database-log/database-log.d.mts.map +1 -1
  308. package/esm/database/models/database-log/database-log.mjs +1 -1
  309. package/esm/database/models/database-log/database-log.mjs.map +1 -1
  310. package/esm/database/pending-exit-code.mjs +1 -1
  311. package/esm/database/pending-exit-code.mjs.map +1 -1
  312. package/esm/database/resolve-pending-migrations.mjs +1 -1
  313. package/esm/database/resolve-pending-migrations.mjs.map +1 -1
  314. package/esm/database/seed-command-action.mjs +1 -1
  315. package/esm/database/seed-command-action.mjs.map +1 -1
  316. package/esm/database/seeds/seed-records-table-migration.mjs +1 -1
  317. package/esm/database/seeds/seed-records-table-migration.mjs.map +1 -1
  318. package/esm/database/seeds/seeder.d.mts +1 -1
  319. package/esm/database/seeds/seeder.d.mts.map +1 -1
  320. package/esm/database/seeds/seeder.errors.d.mts +1 -1
  321. package/esm/database/seeds/seeder.errors.d.mts.map +1 -1
  322. package/esm/database/seeds/seeder.errors.mjs +1 -1
  323. package/esm/database/seeds/seeder.errors.mjs.map +1 -1
  324. package/esm/database/seeds/seeder.mjs +1 -1
  325. package/esm/database/seeds/seeder.mjs.map +1 -1
  326. package/esm/database/seeds/seeders.manager.mjs +1 -1
  327. package/esm/database/seeds/seeders.manager.mjs.map +1 -1
  328. package/esm/database/seeds/seeds-table-migration.mjs +1 -1
  329. package/esm/database/seeds/seeds-table-migration.mjs.map +1 -1
  330. package/esm/database/seeds/types.d.mts +1 -1
  331. package/esm/database/seeds/types.d.mts.map +1 -1
  332. package/esm/database/seeds/utils.mjs +1 -1
  333. package/esm/database/seeds/utils.mjs.map +1 -1
  334. package/esm/database/utils.d.mts +1 -1
  335. package/esm/database/utils.d.mts.map +1 -1
  336. package/esm/database/utils.mjs +1 -1
  337. package/esm/database/utils.mjs.map +1 -1
  338. package/esm/dev-server/app-module-registry.mjs +52 -0
  339. package/esm/dev-server/app-module-registry.mjs.map +1 -0
  340. package/esm/dev-server/boot-precondition-error.mjs +1 -1
  341. package/esm/dev-server/boot-precondition-error.mjs.map +1 -1
  342. package/esm/dev-server/build-development-openapi-document.mjs +1 -1
  343. package/esm/dev-server/build-development-openapi-document.mjs.map +1 -1
  344. package/esm/dev-server/check-for-updates.mjs +1 -1
  345. package/esm/dev-server/check-for-updates.mjs.map +1 -1
  346. package/esm/dev-server/collect-development-api-routes.mjs +1 -1
  347. package/esm/dev-server/collect-development-api-routes.mjs.map +1 -1
  348. package/esm/dev-server/create-worker.mjs +1 -1
  349. package/esm/dev-server/create-worker.mjs.map +1 -1
  350. package/esm/dev-server/dependency-graph.d.mts +1 -1
  351. package/esm/dev-server/dependency-graph.d.mts.map +1 -1
  352. package/esm/dev-server/dependency-graph.mjs +1 -1
  353. package/esm/dev-server/dependency-graph.mjs.map +1 -1
  354. package/esm/dev-server/dev-logger.mjs +1 -1
  355. package/esm/dev-server/dev-logger.mjs.map +1 -1
  356. package/esm/dev-server/development-server.mjs +1 -1
  357. package/esm/dev-server/development-server.mjs.map +1 -1
  358. package/esm/dev-server/events.mjs +1 -1
  359. package/esm/dev-server/events.mjs.map +1 -1
  360. package/esm/dev-server/extract-translation-keys.mjs +1 -1
  361. package/esm/dev-server/extract-translation-keys.mjs.map +1 -1
  362. package/esm/dev-server/file-event-handler.mjs +1 -1
  363. package/esm/dev-server/file-event-handler.mjs.map +1 -1
  364. package/esm/dev-server/file-manager.d.mts +1 -1
  365. package/esm/dev-server/file-manager.d.mts.map +1 -1
  366. package/esm/dev-server/file-manager.mjs +1 -1
  367. package/esm/dev-server/file-manager.mjs.map +1 -1
  368. package/esm/dev-server/file-operations.d.mts +1 -1
  369. package/esm/dev-server/file-operations.d.mts.map +1 -1
  370. package/esm/dev-server/file-operations.mjs +1 -1
  371. package/esm/dev-server/file-operations.mjs.map +1 -1
  372. package/esm/dev-server/files-orchestrator.mjs +28 -14
  373. package/esm/dev-server/files-orchestrator.mjs.map +1 -1
  374. package/esm/dev-server/files-watcher.mjs +1 -1
  375. package/esm/dev-server/files-watcher.mjs.map +1 -1
  376. package/esm/dev-server/flags.mjs +1 -1
  377. package/esm/dev-server/flags.mjs.map +1 -1
  378. package/esm/dev-server/health-checker/checkers/base-health-checker.mjs +1 -1
  379. package/esm/dev-server/health-checker/checkers/base-health-checker.mjs.map +1 -1
  380. package/esm/dev-server/health-checker/checkers/eslint-health-checker.mjs +1 -1
  381. package/esm/dev-server/health-checker/checkers/eslint-health-checker.mjs.map +1 -1
  382. package/esm/dev-server/health-checker/checkers/typescript-health-checker.mjs +1 -1
  383. package/esm/dev-server/health-checker/checkers/typescript-health-checker.mjs.map +1 -1
  384. package/esm/dev-server/health-checker/file-health-checker.contract.d.mts +1 -1
  385. package/esm/dev-server/health-checker/file-health-checker.contract.d.mts.map +1 -1
  386. package/esm/dev-server/health-checker/file-health-result.d.mts +1 -1
  387. package/esm/dev-server/health-checker/file-health-result.d.mts.map +1 -1
  388. package/esm/dev-server/health-checker/file-health-result.mjs +1 -1
  389. package/esm/dev-server/health-checker/file-health-result.mjs.map +1 -1
  390. package/esm/dev-server/health-checker/files-healthcare.manager.mjs +1 -1
  391. package/esm/dev-server/health-checker/files-healthcare.manager.mjs.map +1 -1
  392. package/esm/dev-server/health-checker/workers/eslint-health.worker.mjs +1 -1
  393. package/esm/dev-server/health-checker/workers/eslint-health.worker.mjs.map +1 -1
  394. package/esm/dev-server/health-checker/workers/ts-health.worker.mjs +1 -1
  395. package/esm/dev-server/health-checker/workers/ts-health.worker.mjs.map +1 -1
  396. package/esm/dev-server/layer-executor.mjs +1 -1
  397. package/esm/dev-server/layer-executor.mjs.map +1 -1
  398. package/esm/dev-server/legacy-locales-warning.mjs +1 -1
  399. package/esm/dev-server/legacy-locales-warning.mjs.map +1 -1
  400. package/esm/dev-server/loader/build-transpile-init.mjs +1 -1
  401. package/esm/dev-server/loader/build-transpile-init.mjs.map +1 -1
  402. package/esm/dev-server/loader/hook-thread.d.mts +1 -1
  403. package/esm/dev-server/loader/hook-thread.d.mts.map +1 -1
  404. package/esm/dev-server/loader/hook-thread.mjs +1 -1
  405. package/esm/dev-server/loader/hook-thread.mjs.map +1 -1
  406. package/esm/dev-server/loader/load-hook.d.mts +1 -1
  407. package/esm/dev-server/loader/load-hook.d.mts.map +1 -1
  408. package/esm/dev-server/loader/load-hook.mjs +1 -1
  409. package/esm/dev-server/loader/load-hook.mjs.map +1 -1
  410. package/esm/dev-server/loader/loader-port-acks.mjs +34 -0
  411. package/esm/dev-server/loader/loader-port-acks.mjs.map +1 -0
  412. package/esm/dev-server/loader/own-resolver.mjs +1 -1
  413. package/esm/dev-server/loader/own-resolver.mjs.map +1 -1
  414. package/esm/dev-server/loader/register-loader.mjs +1 -1
  415. package/esm/dev-server/loader/register-loader.mjs.map +1 -1
  416. package/esm/dev-server/loader/resolve-capture.mjs +1 -1
  417. package/esm/dev-server/loader/resolve-capture.mjs.map +1 -1
  418. package/esm/dev-server/loader/resolve-hook.d.mts +1 -1
  419. package/esm/dev-server/loader/resolve-hook.d.mts.map +1 -1
  420. package/esm/dev-server/loader/resolve-hook.mjs +2 -2
  421. package/esm/dev-server/loader/resolve-hook.mjs.map +1 -1
  422. package/esm/dev-server/loader/source-slug.mjs +1 -1
  423. package/esm/dev-server/loader/source-slug.mjs.map +1 -1
  424. package/esm/dev-server/loader/transpile-cache.mjs +1 -1
  425. package/esm/dev-server/loader/transpile-cache.mjs.map +1 -1
  426. package/esm/dev-server/loader/version-registry.mjs +1 -1
  427. package/esm/dev-server/loader/version-registry.mjs.map +1 -1
  428. package/esm/dev-server/manifest-manager.d.mts +1 -1
  429. package/esm/dev-server/manifest-manager.d.mts.map +1 -1
  430. package/esm/dev-server/manifest-manager.mjs +1 -1
  431. package/esm/dev-server/manifest-manager.mjs.map +1 -1
  432. package/esm/dev-server/model-module-registry.mjs +1 -1
  433. package/esm/dev-server/model-module-registry.mjs.map +1 -1
  434. package/esm/dev-server/model-resource-typings.mjs +1 -1
  435. package/esm/dev-server/model-resource-typings.mjs.map +1 -1
  436. package/esm/dev-server/module-loader.mjs +1 -1
  437. package/esm/dev-server/module-loader.mjs.map +1 -1
  438. package/esm/dev-server/package-json-manager.mjs +1 -1
  439. package/esm/dev-server/package-json-manager.mjs.map +1 -1
  440. package/esm/dev-server/parse-imports.mjs +73 -6
  441. package/esm/dev-server/parse-imports.mjs.map +1 -1
  442. package/esm/dev-server/read-config-ast.mjs +1 -1
  443. package/esm/dev-server/read-config-ast.mjs.map +1 -1
  444. package/esm/dev-server/ready-block.mjs +1 -1
  445. package/esm/dev-server/ready-block.mjs.map +1 -1
  446. package/esm/dev-server/register-dev-shortcuts.mjs +1 -1
  447. package/esm/dev-server/register-dev-shortcuts.mjs.map +1 -1
  448. package/esm/dev-server/register-installed-devtools.mjs +1 -1
  449. package/esm/dev-server/register-installed-devtools.mjs.map +1 -1
  450. package/esm/dev-server/restart-dev-server.mjs +1 -1
  451. package/esm/dev-server/restart-dev-server.mjs.map +1 -1
  452. package/esm/dev-server/route-types-publisher.mjs +1 -1
  453. package/esm/dev-server/route-types-publisher.mjs.map +1 -1
  454. package/esm/dev-server/run-connector-typings.mjs +1 -1
  455. package/esm/dev-server/run-connector-typings.mjs.map +1 -1
  456. package/esm/dev-server/run-typings-generation.mjs +1 -1
  457. package/esm/dev-server/run-typings-generation.mjs.map +1 -1
  458. package/esm/dev-server/shortcuts.mjs +1 -1
  459. package/esm/dev-server/shortcuts.mjs.map +1 -1
  460. package/esm/dev-server/special-file-patterns.mjs +1 -1
  461. package/esm/dev-server/special-file-patterns.mjs.map +1 -1
  462. package/esm/dev-server/special-files-collector.d.mts +1 -1
  463. package/esm/dev-server/special-files-collector.d.mts.map +1 -1
  464. package/esm/dev-server/special-files-collector.mjs +1 -1
  465. package/esm/dev-server/special-files-collector.mjs.map +1 -1
  466. package/esm/dev-server/start-development-server.mjs +1 -1
  467. package/esm/dev-server/start-development-server.mjs.map +1 -1
  468. package/esm/dev-server/supervisor.mjs +1 -1
  469. package/esm/dev-server/supervisor.mjs.map +1 -1
  470. package/esm/dev-server/translation-keys-sources.mjs +1 -1
  471. package/esm/dev-server/translation-keys-sources.mjs.map +1 -1
  472. package/esm/dev-server/tsconfig-manager.mjs +1 -1
  473. package/esm/dev-server/tsconfig-manager.mjs.map +1 -1
  474. package/esm/dev-server/type-generator.mjs +32 -11
  475. package/esm/dev-server/type-generator.mjs.map +1 -1
  476. package/esm/dev-server/types.d.mts +1 -1
  477. package/esm/dev-server/types.d.mts.map +1 -1
  478. package/esm/dev-server/update-check-cache.mjs +1 -1
  479. package/esm/dev-server/update-check-cache.mjs.map +1 -1
  480. package/esm/dev-server/utils.mjs +1 -1
  481. package/esm/dev-server/utils.mjs.map +1 -1
  482. package/esm/encryption/encrypt.d.mts +1 -1
  483. package/esm/encryption/encrypt.d.mts.map +1 -1
  484. package/esm/encryption/encrypt.mjs +1 -1
  485. package/esm/encryption/encrypt.mjs.map +1 -1
  486. package/esm/encryption/hash.d.mts +1 -1
  487. package/esm/encryption/hash.d.mts.map +1 -1
  488. package/esm/encryption/hash.mjs +1 -1
  489. package/esm/encryption/hash.mjs.map +1 -1
  490. package/esm/encryption/password.d.mts +1 -1
  491. package/esm/encryption/password.d.mts.map +1 -1
  492. package/esm/encryption/password.mjs +1 -1
  493. package/esm/encryption/password.mjs.map +1 -1
  494. package/esm/encryption/types.d.mts +1 -1
  495. package/esm/encryption/types.d.mts.map +1 -1
  496. package/esm/errors/container-key-missing-error.mjs +1 -1
  497. package/esm/errors/container-key-missing-error.mjs.map +1 -1
  498. package/esm/errors/esbuild-binary-missing-error.mjs +1 -1
  499. package/esm/errors/esbuild-binary-missing-error.mjs.map +1 -1
  500. package/esm/errors/index.d.mts +2 -0
  501. package/esm/errors/index.mjs +3 -0
  502. package/esm/errors/unknown-locale-error.mjs +1 -1
  503. package/esm/errors/unknown-locale-error.mjs.map +1 -1
  504. package/esm/generations/add-command.action.mjs +29 -6
  505. package/esm/generations/add-command.action.mjs.map +1 -1
  506. package/esm/generations/features/access.feature.mjs +1 -1
  507. package/esm/generations/features/access.feature.mjs.map +1 -1
  508. package/esm/generations/features/ai-anthropic.feature.mjs +1 -1
  509. package/esm/generations/features/ai-anthropic.feature.mjs.map +1 -1
  510. package/esm/generations/features/ai-bedrock.feature.mjs +1 -1
  511. package/esm/generations/features/ai-bedrock.feature.mjs.map +1 -1
  512. package/esm/generations/features/ai-google.feature.mjs +1 -1
  513. package/esm/generations/features/ai-google.feature.mjs.map +1 -1
  514. package/esm/generations/features/ai-ollama.feature.mjs +1 -1
  515. package/esm/generations/features/ai-ollama.feature.mjs.map +1 -1
  516. package/esm/generations/features/ai-openai.feature.mjs +1 -1
  517. package/esm/generations/features/ai-openai.feature.mjs.map +1 -1
  518. package/esm/generations/features/ai-panoptic.feature.mjs +1 -1
  519. package/esm/generations/features/ai-panoptic.feature.mjs.map +1 -1
  520. package/esm/generations/features/ai-tools.feature.mjs +1 -1
  521. package/esm/generations/features/ai-tools.feature.mjs.map +1 -1
  522. package/esm/generations/features/ai-workspace.feature.mjs +1 -1
  523. package/esm/generations/features/ai-workspace.feature.mjs.map +1 -1
  524. package/esm/generations/features/ai.feature.mjs +1 -1
  525. package/esm/generations/features/ai.feature.mjs.map +1 -1
  526. package/esm/generations/features/auth-google.feature.mjs +1 -1
  527. package/esm/generations/features/auth-google.feature.mjs.map +1 -1
  528. package/esm/generations/features/auth-passkeys.feature.mjs +1 -1
  529. package/esm/generations/features/auth-passkeys.feature.mjs.map +1 -1
  530. package/esm/generations/features/bull-board.feature.mjs +1 -1
  531. package/esm/generations/features/bull-board.feature.mjs.map +1 -1
  532. package/esm/generations/features/devtools.feature.mjs +1 -1
  533. package/esm/generations/features/devtools.feature.mjs.map +1 -1
  534. package/esm/generations/features/herald.feature.mjs +1 -1
  535. package/esm/generations/features/herald.feature.mjs.map +1 -1
  536. package/esm/generations/features/image.feature.mjs +1 -1
  537. package/esm/generations/features/image.feature.mjs.map +1 -1
  538. package/esm/generations/features/index.mjs +1 -1
  539. package/esm/generations/features/index.mjs.map +1 -1
  540. package/esm/generations/features/mail.feature.mjs +1 -1
  541. package/esm/generations/features/mail.feature.mjs.map +1 -1
  542. package/esm/generations/features/mongodb.feature.mjs +1 -1
  543. package/esm/generations/features/mongodb.feature.mjs.map +1 -1
  544. package/esm/generations/features/mysql.feature.mjs +1 -1
  545. package/esm/generations/features/mysql.feature.mjs.map +1 -1
  546. package/esm/generations/features/notifications.feature.mjs +121 -17
  547. package/esm/generations/features/notifications.feature.mjs.map +1 -1
  548. package/esm/generations/features/postgres.feature.mjs +1 -1
  549. package/esm/generations/features/postgres.feature.mjs.map +1 -1
  550. package/esm/generations/features/queue.feature.mjs +1 -1
  551. package/esm/generations/features/queue.feature.mjs.map +1 -1
  552. package/esm/generations/features/react-email.feature.mjs +1 -1
  553. package/esm/generations/features/react-email.feature.mjs.map +1 -1
  554. package/esm/generations/features/react.feature.mjs +1 -1
  555. package/esm/generations/features/react.feature.mjs.map +1 -1
  556. package/esm/generations/features/redis.feature.mjs +1 -1
  557. package/esm/generations/features/redis.feature.mjs.map +1 -1
  558. package/esm/generations/features/s3.feature.mjs +1 -1
  559. package/esm/generations/features/s3.feature.mjs.map +1 -1
  560. package/esm/generations/features/scheduler.feature.mjs +1 -1
  561. package/esm/generations/features/scheduler.feature.mjs.map +1 -1
  562. package/esm/generations/features/ses.feature.mjs +1 -1
  563. package/esm/generations/features/ses.feature.mjs.map +1 -1
  564. package/esm/generations/features/shadcn.feature.mjs +1 -1
  565. package/esm/generations/features/shadcn.feature.mjs.map +1 -1
  566. package/esm/generations/features/shared/insert-connector-entry.mjs +1 -1
  567. package/esm/generations/features/shared/insert-connector-entry.mjs.map +1 -1
  568. package/esm/generations/features/shared/insert-queue-dashboard-block.mjs +1 -1
  569. package/esm/generations/features/shared/insert-queue-dashboard-block.mjs.map +1 -1
  570. package/esm/generations/features/shared/link-ai-package-import.mjs +1 -1
  571. package/esm/generations/features/shared/link-ai-package-import.mjs.map +1 -1
  572. package/esm/generations/features/shared/merge-web-sitemap-config.mjs +1 -1
  573. package/esm/generations/features/shared/merge-web-sitemap-config.mjs.map +1 -1
  574. package/esm/generations/features/shared/migration-timestamp.mjs +1 -1
  575. package/esm/generations/features/shared/migration-timestamp.mjs.map +1 -1
  576. package/esm/generations/features/shared/patch-tsconfig-include.mjs +1 -1
  577. package/esm/generations/features/shared/patch-tsconfig-include.mjs.map +1 -1
  578. package/esm/generations/features/shared/relocate-conflicting-home-route.mjs +1 -1
  579. package/esm/generations/features/shared/relocate-conflicting-home-route.mjs.map +1 -1
  580. package/esm/generations/features/shared/resolve-contact-scaffold.mjs +1 -1
  581. package/esm/generations/features/shared/resolve-contact-scaffold.mjs.map +1 -1
  582. package/esm/generations/features/sitemap.feature.mjs +1 -1
  583. package/esm/generations/features/sitemap.feature.mjs.map +1 -1
  584. package/esm/generations/features/socket.feature.mjs +1 -1
  585. package/esm/generations/features/socket.feature.mjs.map +1 -1
  586. package/esm/generations/features/tailwind.feature.mjs +1 -1
  587. package/esm/generations/features/tailwind.feature.mjs.map +1 -1
  588. package/esm/generations/features/test.feature.mjs +1 -1
  589. package/esm/generations/features/test.feature.mjs.map +1 -1
  590. package/esm/generations/features/types.mjs +1 -1
  591. package/esm/generations/features/types.mjs.map +1 -1
  592. package/esm/generations/features/web.feature.mjs +1 -1
  593. package/esm/generations/features/web.feature.mjs.map +1 -1
  594. package/esm/generations/pnpm-build-approvals.mjs +89 -3
  595. package/esm/generations/pnpm-build-approvals.mjs.map +1 -1
  596. package/esm/generations/stubs.mjs +184 -78
  597. package/esm/generations/stubs.mjs.map +1 -1
  598. package/esm/http/boot-port-preflight.d.mts +1 -1
  599. package/esm/http/boot-port-preflight.d.mts.map +1 -1
  600. package/esm/http/boot-port-preflight.mjs +1 -1
  601. package/esm/http/boot-port-preflight.mjs.map +1 -1
  602. package/esm/http/build-cors-options.mjs +1 -1
  603. package/esm/http/build-cors-options.mjs.map +1 -1
  604. package/esm/http/build-rate-limit-options.d.mts +22 -1
  605. package/esm/http/build-rate-limit-options.d.mts.map +1 -1
  606. package/esm/http/build-rate-limit-options.mjs +7 -1
  607. package/esm/http/build-rate-limit-options.mjs.map +1 -1
  608. package/esm/http/config.d.mts +1 -1
  609. package/esm/http/config.d.mts.map +1 -1
  610. package/esm/http/config.mjs +1 -1
  611. package/esm/http/config.mjs.map +1 -1
  612. package/esm/http/context/request-context.d.mts +1 -1
  613. package/esm/http/context/request-context.d.mts.map +1 -1
  614. package/esm/http/context/request-context.mjs +1 -1
  615. package/esm/http/context/request-context.mjs.map +1 -1
  616. package/esm/http/context/request-memo.d.mts +1 -1
  617. package/esm/http/context/request-memo.d.mts.map +1 -1
  618. package/esm/http/context/request-memo.mjs +1 -1
  619. package/esm/http/context/request-memo.mjs.map +1 -1
  620. package/esm/http/createHttpApplication.d.mts +1 -1
  621. package/esm/http/createHttpApplication.d.mts.map +1 -1
  622. package/esm/http/createHttpApplication.mjs +1 -1
  623. package/esm/http/createHttpApplication.mjs.map +1 -1
  624. package/esm/http/csp.d.mts +1 -1
  625. package/esm/http/csp.d.mts.map +1 -1
  626. package/esm/http/csp.mjs +1 -1
  627. package/esm/http/csp.mjs.map +1 -1
  628. package/esm/http/csrf-default-guard.d.mts +1 -1
  629. package/esm/http/csrf-default-guard.d.mts.map +1 -1
  630. package/esm/http/csrf-default-guard.mjs +1 -1
  631. package/esm/http/csrf-default-guard.mjs.map +1 -1
  632. package/esm/http/csrf-origin-policy.d.mts +1 -1
  633. package/esm/http/csrf-origin-policy.d.mts.map +1 -1
  634. package/esm/http/csrf-origin-policy.mjs +1 -1
  635. package/esm/http/csrf-origin-policy.mjs.map +1 -1
  636. package/esm/http/database/RequestLog.d.mts +63 -111
  637. package/esm/http/database/RequestLog.d.mts.map +1 -1
  638. package/esm/http/database/RequestLog.mjs +1 -1
  639. package/esm/http/database/RequestLog.mjs.map +1 -1
  640. package/esm/http/error-codes.d.mts +1 -1
  641. package/esm/http/error-codes.d.mts.map +1 -1
  642. package/esm/http/error-codes.mjs +1 -1
  643. package/esm/http/error-codes.mjs.map +1 -1
  644. package/esm/http/error-mapper.d.mts +48 -0
  645. package/esm/http/error-mapper.d.mts.map +1 -0
  646. package/esm/http/error-mapper.mjs +48 -0
  647. package/esm/http/error-mapper.mjs.map +1 -0
  648. package/esm/http/errors/errors.d.mts +1 -1
  649. package/esm/http/errors/errors.d.mts.map +1 -1
  650. package/esm/http/errors/errors.mjs +1 -1
  651. package/esm/http/errors/errors.mjs.map +1 -1
  652. package/esm/http/events.d.mts +1 -1
  653. package/esm/http/events.d.mts.map +1 -1
  654. package/esm/http/events.mjs +1 -1
  655. package/esm/http/events.mjs.map +1 -1
  656. package/esm/http/flush-pending-cookies.mjs +1 -1
  657. package/esm/http/flush-pending-cookies.mjs.map +1 -1
  658. package/esm/http/health.d.mts +1 -1
  659. package/esm/http/health.d.mts.map +1 -1
  660. package/esm/http/health.mjs +1 -1
  661. package/esm/http/health.mjs.map +1 -1
  662. package/esm/http/index.d.mts +10 -6
  663. package/esm/http/index.mjs +8 -5
  664. package/esm/http/middleware/cache-response-middleware.d.mts +1 -1
  665. package/esm/http/middleware/cache-response-middleware.d.mts.map +1 -1
  666. package/esm/http/middleware/cache-response-middleware.mjs +1 -1
  667. package/esm/http/middleware/cache-response-middleware.mjs.map +1 -1
  668. package/esm/http/middleware/concurrency-limit.middleware.d.mts +1 -1
  669. package/esm/http/middleware/concurrency-limit.middleware.d.mts.map +1 -1
  670. package/esm/http/middleware/concurrency-limit.middleware.mjs +1 -1
  671. package/esm/http/middleware/concurrency-limit.middleware.mjs.map +1 -1
  672. package/esm/http/middleware/idempotency.middleware.d.mts +1 -1
  673. package/esm/http/middleware/idempotency.middleware.d.mts.map +1 -1
  674. package/esm/http/middleware/idempotency.middleware.mjs +1 -1
  675. package/esm/http/middleware/idempotency.middleware.mjs.map +1 -1
  676. package/esm/http/middleware/inject-request-context.d.mts +1 -1
  677. package/esm/http/middleware/inject-request-context.d.mts.map +1 -1
  678. package/esm/http/middleware/inject-request-context.mjs +4 -2
  679. package/esm/http/middleware/inject-request-context.mjs.map +1 -1
  680. package/esm/http/middleware/ip-filter.middleware.d.mts +1 -1
  681. package/esm/http/middleware/ip-filter.middleware.d.mts.map +1 -1
  682. package/esm/http/middleware/ip-filter.middleware.mjs +1 -1
  683. package/esm/http/middleware/ip-filter.middleware.mjs.map +1 -1
  684. package/esm/http/middleware/maintenance.middleware.d.mts +1 -1
  685. package/esm/http/middleware/maintenance.middleware.d.mts.map +1 -1
  686. package/esm/http/middleware/maintenance.middleware.mjs +1 -1
  687. package/esm/http/middleware/maintenance.middleware.mjs.map +1 -1
  688. package/esm/http/middleware/max-body-size.middleware.d.mts +1 -1
  689. package/esm/http/middleware/max-body-size.middleware.d.mts.map +1 -1
  690. package/esm/http/middleware/max-body-size.middleware.mjs +1 -1
  691. package/esm/http/middleware/max-body-size.middleware.mjs.map +1 -1
  692. package/esm/http/middleware/middleware-list.d.mts +1 -1
  693. package/esm/http/middleware/middleware-list.d.mts.map +1 -1
  694. package/esm/http/middleware/middleware-list.mjs +1 -1
  695. package/esm/http/middleware/middleware-list.mjs.map +1 -1
  696. package/esm/http/middleware/rate-limit.middleware.d.mts +20 -5
  697. package/esm/http/middleware/rate-limit.middleware.d.mts.map +1 -1
  698. package/esm/http/middleware/rate-limit.middleware.mjs +34 -12
  699. package/esm/http/middleware/rate-limit.middleware.mjs.map +1 -1
  700. package/esm/http/middleware/utils/cidr-match.d.mts +1 -1
  701. package/esm/http/middleware/utils/cidr-match.d.mts.map +1 -1
  702. package/esm/http/middleware/utils/cidr-match.mjs +1 -1
  703. package/esm/http/middleware/utils/cidr-match.mjs.map +1 -1
  704. package/esm/http/middleware/utils/idempotency-key.d.mts +1 -1
  705. package/esm/http/middleware/utils/idempotency-key.d.mts.map +1 -1
  706. package/esm/http/middleware/utils/idempotency-key.mjs +1 -1
  707. package/esm/http/middleware/utils/idempotency-key.mjs.map +1 -1
  708. package/esm/http/middleware/utils/parse-size.d.mts +1 -1
  709. package/esm/http/middleware/utils/parse-size.d.mts.map +1 -1
  710. package/esm/http/middleware/utils/parse-size.mjs +1 -1
  711. package/esm/http/middleware/utils/parse-size.mjs.map +1 -1
  712. package/esm/http/parse-urlencoded-body.mjs +1 -1
  713. package/esm/http/parse-urlencoded-body.mjs.map +1 -1
  714. package/esm/http/plugins.d.mts +9 -2
  715. package/esm/http/plugins.d.mts.map +1 -1
  716. package/esm/http/plugins.mjs +18 -4
  717. package/esm/http/plugins.mjs.map +1 -1
  718. package/esm/http/port-preflight.d.mts +1 -1
  719. package/esm/http/port-preflight.d.mts.map +1 -1
  720. package/esm/http/port-preflight.mjs +1 -1
  721. package/esm/http/port-preflight.mjs.map +1 -1
  722. package/esm/http/rate-limit-cache-store.mjs +155 -0
  723. package/esm/http/rate-limit-cache-store.mjs.map +1 -0
  724. package/esm/http/ready-report.d.mts +1 -1
  725. package/esm/http/ready-report.d.mts.map +1 -1
  726. package/esm/http/ready-report.mjs +1 -1
  727. package/esm/http/ready-report.mjs.map +1 -1
  728. package/esm/http/request-controller.d.mts +1 -1
  729. package/esm/http/request-controller.d.mts.map +1 -1
  730. package/esm/http/request-controller.mjs +1 -1
  731. package/esm/http/request-controller.mjs.map +1 -1
  732. package/esm/http/request-log-snapshot.d.mts +123 -0
  733. package/esm/http/request-log-snapshot.d.mts.map +1 -0
  734. package/esm/http/request-log-snapshot.mjs +141 -0
  735. package/esm/http/request-log-snapshot.mjs.map +1 -0
  736. package/esm/http/request.d.mts +41 -2
  737. package/esm/http/request.d.mts.map +1 -1
  738. package/esm/http/request.mjs +65 -2
  739. package/esm/http/request.mjs.map +1 -1
  740. package/esm/http/resolve-bind-port.mjs +1 -1
  741. package/esm/http/resolve-bind-port.mjs.map +1 -1
  742. package/esm/http/response.d.mts +40 -8
  743. package/esm/http/response.d.mts.map +1 -1
  744. package/esm/http/response.mjs +173 -61
  745. package/esm/http/response.mjs.map +1 -1
  746. package/esm/http/serialized.d.mts +1 -1
  747. package/esm/http/serialized.d.mts.map +1 -1
  748. package/esm/http/server-rebuilt.d.mts +1 -1
  749. package/esm/http/server-rebuilt.d.mts.map +1 -1
  750. package/esm/http/server-rebuilt.mjs +1 -1
  751. package/esm/http/server-rebuilt.mjs.map +1 -1
  752. package/esm/http/server.d.mts +34 -6
  753. package/esm/http/server.d.mts.map +1 -1
  754. package/esm/http/server.mjs +70 -5
  755. package/esm/http/server.mjs.map +1 -1
  756. package/esm/http/stream-react-response.d.mts +1 -1
  757. package/esm/http/stream-react-response.d.mts.map +1 -1
  758. package/esm/http/stream-react-response.mjs +1 -1
  759. package/esm/http/stream-react-response.mjs.map +1 -1
  760. package/esm/http/stream-transport.mjs +75 -0
  761. package/esm/http/stream-transport.mjs.map +1 -0
  762. package/esm/http/tracing/trace-id.d.mts +1 -1
  763. package/esm/http/tracing/trace-id.d.mts.map +1 -1
  764. package/esm/http/tracing/trace-id.mjs +1 -1
  765. package/esm/http/tracing/trace-id.mjs.map +1 -1
  766. package/esm/http/tracing/tracing-dispatcher.d.mts +1 -1
  767. package/esm/http/tracing/tracing-dispatcher.d.mts.map +1 -1
  768. package/esm/http/tracing/tracing-dispatcher.mjs +1 -1
  769. package/esm/http/tracing/tracing-dispatcher.mjs.map +1 -1
  770. package/esm/http/tracing/tracing.type.d.mts +1 -1
  771. package/esm/http/tracing/tracing.type.d.mts.map +1 -1
  772. package/esm/http/types.d.mts +131 -6
  773. package/esm/http/types.d.mts.map +1 -1
  774. package/esm/http/uploaded-file.d.mts +2 -2
  775. package/esm/http/uploaded-file.d.mts.map +1 -1
  776. package/esm/http/uploaded-file.mjs +2 -2
  777. package/esm/http/uploaded-file.mjs.map +1 -1
  778. package/esm/http/uploads/detect-image-format.mjs +1 -1
  779. package/esm/http/uploads/detect-image-format.mjs.map +1 -1
  780. package/esm/http/uploads/generate-image-variant.mjs +1 -1
  781. package/esm/http/uploads/generate-image-variant.mjs.map +1 -1
  782. package/esm/http/uploads/generate-image-variants.d.mts +1 -1
  783. package/esm/http/uploads/generate-image-variants.d.mts.map +1 -1
  784. package/esm/http/uploads/generate-image-variants.mjs +15 -7
  785. package/esm/http/uploads/generate-image-variants.mjs.map +1 -1
  786. package/esm/http/uploads/image-variant-cache.mjs +143 -0
  787. package/esm/http/uploads/image-variant-cache.mjs.map +1 -0
  788. package/esm/http/uploads/image-variant-types.d.mts +1 -1
  789. package/esm/http/uploads/image-variant-types.d.mts.map +1 -1
  790. package/esm/http/uploads/image-variants-config-error.d.mts +1 -1
  791. package/esm/http/uploads/image-variants-config-error.d.mts.map +1 -1
  792. package/esm/http/uploads/image-variants-config-error.mjs +1 -1
  793. package/esm/http/uploads/image-variants-config-error.mjs.map +1 -1
  794. package/esm/http/uploads/index.d.mts +3 -1
  795. package/esm/http/uploads/index.mjs +3 -1
  796. package/esm/http/uploads/is-path-inside.mjs +1 -1
  797. package/esm/http/uploads/is-path-inside.mjs.map +1 -1
  798. package/esm/http/uploads/load-variant-source.mjs +1 -1
  799. package/esm/http/uploads/load-variant-source.mjs.map +1 -1
  800. package/esm/http/uploads/local-disk-root.mjs +24 -0
  801. package/esm/http/uploads/local-disk-root.mjs.map +1 -0
  802. package/esm/http/uploads/matches-if-none-match.mjs +1 -1
  803. package/esm/http/uploads/matches-if-none-match.mjs.map +1 -1
  804. package/esm/http/uploads/parse-uploaded-file-query.mjs +1 -1
  805. package/esm/http/uploads/parse-uploaded-file-query.mjs.map +1 -1
  806. package/esm/http/uploads/purge-image-variants.d.mts +32 -0
  807. package/esm/http/uploads/purge-image-variants.d.mts.map +1 -0
  808. package/esm/http/uploads/purge-image-variants.mjs +46 -0
  809. package/esm/http/uploads/purge-image-variants.mjs.map +1 -0
  810. package/esm/http/uploads/read-file-head.mjs +1 -1
  811. package/esm/http/uploads/read-file-head.mjs.map +1 -1
  812. package/esm/http/uploads/resolve-image-variant.d.mts +73 -0
  813. package/esm/http/uploads/resolve-image-variant.d.mts.map +1 -0
  814. package/esm/http/uploads/resolve-image-variant.mjs +107 -0
  815. package/esm/http/uploads/resolve-image-variant.mjs.map +1 -0
  816. package/esm/http/uploads/resolve-image-variants-config.mjs +1 -1
  817. package/esm/http/uploads/resolve-image-variants-config.mjs.map +1 -1
  818. package/esm/http/uploads/resolve-inline-image-content-type.mjs +1 -1
  819. package/esm/http/uploads/resolve-inline-image-content-type.mjs.map +1 -1
  820. package/esm/http/uploads/resolve-original-content-type.mjs +1 -1
  821. package/esm/http/uploads/resolve-original-content-type.mjs.map +1 -1
  822. package/esm/http/uploads/resolve-upload-path.mjs +3 -2
  823. package/esm/http/uploads/resolve-upload-path.mjs.map +1 -1
  824. package/esm/http/uploads/resolve-variant-candidate.mjs +1 -1
  825. package/esm/http/uploads/resolve-variant-candidate.mjs.map +1 -1
  826. package/esm/http/uploads/single-flight.mjs +1 -1
  827. package/esm/http/uploads/single-flight.mjs.map +1 -1
  828. package/esm/http/uploads/uploaded-file.controller.d.mts +24 -6
  829. package/esm/http/uploads/uploaded-file.controller.d.mts.map +1 -1
  830. package/esm/http/uploads/uploaded-file.controller.mjs +63 -91
  831. package/esm/http/uploads/uploaded-file.controller.mjs.map +1 -1
  832. package/esm/http/uploads/variant-cache-key.mjs +30 -5
  833. package/esm/http/uploads/variant-cache-key.mjs.map +1 -1
  834. package/esm/http/uploads/variant-generations.mjs +1 -1
  835. package/esm/http/uploads/variant-generations.mjs.map +1 -1
  836. package/esm/http/uploads-config.d.mts +1 -1
  837. package/esm/http/uploads-config.d.mts.map +1 -1
  838. package/esm/http/uploads-config.mjs +1 -1
  839. package/esm/http/uploads-config.mjs.map +1 -1
  840. package/esm/http/uploads-types.d.mts +1 -1
  841. package/esm/http/uploads-types.d.mts.map +1 -1
  842. package/esm/http/xmlable.d.mts +1 -1
  843. package/esm/http/xmlable.d.mts.map +1 -1
  844. package/esm/image/image.d.mts +1 -1
  845. package/esm/image/image.d.mts.map +1 -1
  846. package/esm/image/image.mjs +1 -1
  847. package/esm/image/image.mjs.map +1 -1
  848. package/esm/index.d.mts +15 -9
  849. package/esm/index.mjs +11 -7
  850. package/esm/loader/app-module-importer.d.mts +1 -1
  851. package/esm/loader/app-module-importer.d.mts.map +1 -1
  852. package/esm/loader/app-module-importer.mjs +1 -1
  853. package/esm/loader/app-module-importer.mjs.map +1 -1
  854. package/esm/localization/parse-locale-dictionary.d.mts +7 -2
  855. package/esm/localization/parse-locale-dictionary.d.mts.map +1 -1
  856. package/esm/localization/parse-locale-dictionary.mjs +6 -2
  857. package/esm/localization/parse-locale-dictionary.mjs.map +1 -1
  858. package/esm/localization/register-locale-dictionary.d.mts +1 -1
  859. package/esm/localization/register-locale-dictionary.d.mts.map +1 -1
  860. package/esm/localization/register-locale-dictionary.mjs +1 -1
  861. package/esm/localization/register-locale-dictionary.mjs.map +1 -1
  862. package/esm/logger/fatal-visibility.d.mts +1 -1
  863. package/esm/logger/fatal-visibility.d.mts.map +1 -1
  864. package/esm/logger/fatal-visibility.mjs +1 -1
  865. package/esm/logger/fatal-visibility.mjs.map +1 -1
  866. package/esm/logger/logger.d.mts +1 -1
  867. package/esm/logger/logger.d.mts.map +1 -1
  868. package/esm/logger/logger.mjs +1 -1
  869. package/esm/logger/logger.mjs.map +1 -1
  870. package/esm/logger/types.d.mts +1 -1
  871. package/esm/logger/types.d.mts.map +1 -1
  872. package/esm/mail/config.d.mts +1 -1
  873. package/esm/mail/config.d.mts.map +1 -1
  874. package/esm/mail/config.mjs +1 -1
  875. package/esm/mail/config.mjs.map +1 -1
  876. package/esm/mail/events.d.mts +1 -1
  877. package/esm/mail/events.d.mts.map +1 -1
  878. package/esm/mail/events.mjs +1 -1
  879. package/esm/mail/events.mjs.map +1 -1
  880. package/esm/mail/mail.d.mts +1 -1
  881. package/esm/mail/mail.d.mts.map +1 -1
  882. package/esm/mail/mail.mjs +1 -1
  883. package/esm/mail/mail.mjs.map +1 -1
  884. package/esm/mail/mailer-pool.d.mts +1 -1
  885. package/esm/mail/mailer-pool.d.mts.map +1 -1
  886. package/esm/mail/mailer-pool.mjs +1 -1
  887. package/esm/mail/mailer-pool.mjs.map +1 -1
  888. package/esm/mail/react-mail.d.mts +1 -1
  889. package/esm/mail/react-mail.d.mts.map +1 -1
  890. package/esm/mail/react-mail.mjs +1 -1
  891. package/esm/mail/react-mail.mjs.map +1 -1
  892. package/esm/mail/send-mail.d.mts +1 -1
  893. package/esm/mail/send-mail.d.mts.map +1 -1
  894. package/esm/mail/send-mail.mjs +7 -7
  895. package/esm/mail/send-mail.mjs.map +1 -1
  896. package/esm/mail/test-mailbox.d.mts +1 -1
  897. package/esm/mail/test-mailbox.d.mts.map +1 -1
  898. package/esm/mail/test-mailbox.mjs +1 -1
  899. package/esm/mail/test-mailbox.mjs.map +1 -1
  900. package/esm/mail/types.d.mts +1 -1
  901. package/esm/mail/types.d.mts.map +1 -1
  902. package/esm/mail/types.mjs +1 -1
  903. package/esm/mail/types.mjs.map +1 -1
  904. package/esm/manifest/manifest-manager.mjs +1 -1
  905. package/esm/manifest/manifest-manager.mjs.map +1 -1
  906. package/esm/openapi/build-openapi-document.d.mts +1 -1
  907. package/esm/openapi/build-openapi-document.d.mts.map +1 -1
  908. package/esm/openapi/build-openapi-document.mjs +1 -1
  909. package/esm/openapi/build-openapi-document.mjs.map +1 -1
  910. package/esm/openapi/cast-schema.mjs +1 -1
  911. package/esm/openapi/cast-schema.mjs.map +1 -1
  912. package/esm/openapi/collect-openapi-document.mjs +1 -1
  913. package/esm/openapi/collect-openapi-document.mjs.map +1 -1
  914. package/esm/openapi/development-openapi-provider.d.mts +1 -1
  915. package/esm/openapi/development-openapi-provider.d.mts.map +1 -1
  916. package/esm/openapi/development-openapi-provider.mjs +1 -1
  917. package/esm/openapi/development-openapi-provider.mjs.map +1 -1
  918. package/esm/openapi/error-responses.mjs +1 -1
  919. package/esm/openapi/error-responses.mjs.map +1 -1
  920. package/esm/openapi/openapi-child-output.mjs +1 -1
  921. package/esm/openapi/openapi-child-output.mjs.map +1 -1
  922. package/esm/openapi/openapi-protocol.mjs +1 -1
  923. package/esm/openapi/openapi-protocol.mjs.map +1 -1
  924. package/esm/openapi/paths.mjs +1 -1
  925. package/esm/openapi/paths.mjs.map +1 -1
  926. package/esm/openapi/postman/build-request-body.mjs +1 -1
  927. package/esm/openapi/postman/build-request-body.mjs.map +1 -1
  928. package/esm/openapi/postman/build-request-url.mjs +1 -1
  929. package/esm/openapi/postman/build-request-url.mjs.map +1 -1
  930. package/esm/openapi/postman/build-saved-responses.mjs +1 -1
  931. package/esm/openapi/postman/build-saved-responses.mjs.map +1 -1
  932. package/esm/openapi/postman/example-from-schema.d.mts +1 -1
  933. package/esm/openapi/postman/example-from-schema.d.mts.map +1 -1
  934. package/esm/openapi/postman/example-from-schema.mjs +1 -1
  935. package/esm/openapi/postman/example-from-schema.mjs.map +1 -1
  936. package/esm/openapi/postman/http-status-text.mjs +1 -1
  937. package/esm/openapi/postman/http-status-text.mjs.map +1 -1
  938. package/esm/openapi/postman/openapi-to-postman-collection.d.mts +1 -1
  939. package/esm/openapi/postman/openapi-to-postman-collection.d.mts.map +1 -1
  940. package/esm/openapi/postman/openapi-to-postman-collection.mjs +1 -1
  941. package/esm/openapi/postman/openapi-to-postman-collection.mjs.map +1 -1
  942. package/esm/openapi/postman/postman-types.d.mts +1 -1
  943. package/esm/openapi/postman/postman-types.d.mts.map +1 -1
  944. package/esm/openapi/postman/resolve-operation-auth.mjs +1 -1
  945. package/esm/openapi/postman/resolve-operation-auth.mjs.map +1 -1
  946. package/esm/openapi/postman/schema-refs.d.mts +1 -1
  947. package/esm/openapi/postman/schema-refs.d.mts.map +1 -1
  948. package/esm/openapi/postman/schema-refs.mjs +1 -1
  949. package/esm/openapi/postman/schema-refs.mjs.map +1 -1
  950. package/esm/openapi/postman/uuid-v5.mjs +1 -1
  951. package/esm/openapi/postman/uuid-v5.mjs.map +1 -1
  952. package/esm/openapi/request-schemas.mjs +1 -1
  953. package/esm/openapi/request-schemas.mjs.map +1 -1
  954. package/esm/openapi/response-schemas.mjs +5 -2
  955. package/esm/openapi/response-schemas.mjs.map +1 -1
  956. package/esm/openapi/schema-registry.mjs +7 -1
  957. package/esm/openapi/schema-registry.mjs.map +1 -1
  958. package/esm/openapi/security.mjs +1 -1
  959. package/esm/openapi/security.mjs.map +1 -1
  960. package/esm/openapi/types.d.mts +1 -1
  961. package/esm/openapi/types.d.mts.map +1 -1
  962. package/esm/production/assert-dist-ready-to-start.mjs +1 -1
  963. package/esm/production/assert-dist-ready-to-start.mjs.map +1 -1
  964. package/esm/production/assert-generated-imports.mjs +1 -1
  965. package/esm/production/assert-generated-imports.mjs.map +1 -1
  966. package/esm/production/build-app-production.mjs +1 -1
  967. package/esm/production/build-app-production.mjs.map +1 -1
  968. package/esm/production/build-contributions.mjs +1 -1
  969. package/esm/production/build-contributions.mjs.map +1 -1
  970. package/esm/production/bundle-framework-dependencies.mjs +1 -1
  971. package/esm/production/bundle-framework-dependencies.mjs.map +1 -1
  972. package/esm/production/dist-build-manifest.mjs +1 -1
  973. package/esm/production/dist-build-manifest.mjs.map +1 -1
  974. package/esm/production/esbuild-plugins.mjs +1 -1
  975. package/esm/production/esbuild-plugins.mjs.map +1 -1
  976. package/esm/production/esbuild-preflight.mjs +1 -1
  977. package/esm/production/esbuild-preflight.mjs.map +1 -1
  978. package/esm/production/production-builder.mjs +1 -1
  979. package/esm/production/production-builder.mjs.map +1 -1
  980. package/esm/production/production-supervisor.mjs +1 -1
  981. package/esm/production/production-supervisor.mjs.map +1 -1
  982. package/esm/production/promote-dist.mjs +1 -1
  983. package/esm/production/promote-dist.mjs.map +1 -1
  984. package/esm/production/registration-child-runner.mjs +1 -1
  985. package/esm/production/registration-child-runner.mjs.map +1 -1
  986. package/esm/production/resolve-build-config.d.mts +1 -1
  987. package/esm/production/resolve-build-config.d.mts.map +1 -1
  988. package/esm/production/resolve-build-config.mjs +1 -1
  989. package/esm/production/resolve-build-config.mjs.map +1 -1
  990. package/esm/production/route-registration-child.mjs +1 -1
  991. package/esm/production/route-registration-child.mjs.map +1 -1
  992. package/esm/production/route-registration-snapshot.mjs +1 -1
  993. package/esm/production/route-registration-snapshot.mjs.map +1 -1
  994. package/esm/production/tsconfig-path-aliases.mjs +1 -1
  995. package/esm/production/tsconfig-path-aliases.mjs.map +1 -1
  996. package/esm/react/index.d.mts +1 -1
  997. package/esm/react/index.d.mts.map +1 -1
  998. package/esm/react/index.mjs +1 -1
  999. package/esm/react/index.mjs.map +1 -1
  1000. package/esm/repositories/adapters/cascade/cascade-adapter.d.mts +1 -1
  1001. package/esm/repositories/adapters/cascade/cascade-adapter.d.mts.map +1 -1
  1002. package/esm/repositories/adapters/cascade/cascade-adapter.mjs +1 -1
  1003. package/esm/repositories/adapters/cascade/cascade-adapter.mjs.map +1 -1
  1004. package/esm/repositories/adapters/cascade/cascade-query-builder.d.mts +1 -1
  1005. package/esm/repositories/adapters/cascade/cascade-query-builder.d.mts.map +1 -1
  1006. package/esm/repositories/adapters/cascade/cascade-query-builder.mjs +1 -1
  1007. package/esm/repositories/adapters/cascade/cascade-query-builder.mjs.map +1 -1
  1008. package/esm/repositories/adapters/cascade/filter-applicator.mjs +1 -1
  1009. package/esm/repositories/adapters/cascade/filter-applicator.mjs.map +1 -1
  1010. package/esm/repositories/contracts/query-builder.contract.d.mts +1 -1
  1011. package/esm/repositories/contracts/query-builder.contract.d.mts.map +1 -1
  1012. package/esm/repositories/contracts/repository-adapter.contract.d.mts +1 -1
  1013. package/esm/repositories/contracts/repository-adapter.contract.d.mts.map +1 -1
  1014. package/esm/repositories/contracts/types.d.mts +1 -1
  1015. package/esm/repositories/contracts/types.d.mts.map +1 -1
  1016. package/esm/repositories/repository.manager.d.mts +1 -1
  1017. package/esm/repositories/repository.manager.d.mts.map +1 -1
  1018. package/esm/repositories/repository.manager.mjs +1 -1
  1019. package/esm/repositories/repository.manager.mjs.map +1 -1
  1020. package/esm/resource/define-resource.d.mts +1 -1
  1021. package/esm/resource/define-resource.d.mts.map +1 -1
  1022. package/esm/resource/define-resource.mjs +1 -1
  1023. package/esm/resource/define-resource.mjs.map +1 -1
  1024. package/esm/resource/index.d.mts +1 -0
  1025. package/esm/resource/index.mjs +1 -0
  1026. package/esm/resource/nullable-resource.d.mts +44 -0
  1027. package/esm/resource/nullable-resource.d.mts.map +1 -0
  1028. package/esm/resource/nullable-resource.mjs +38 -0
  1029. package/esm/resource/nullable-resource.mjs.map +1 -0
  1030. package/esm/resource/register-resource.d.mts +1 -1
  1031. package/esm/resource/register-resource.d.mts.map +1 -1
  1032. package/esm/resource/register-resource.mjs +1 -1
  1033. package/esm/resource/register-resource.mjs.map +1 -1
  1034. package/esm/resource/resource-field-builder.d.mts +1 -1
  1035. package/esm/resource/resource-field-builder.d.mts.map +1 -1
  1036. package/esm/resource/resource-field-builder.mjs +1 -1
  1037. package/esm/resource/resource-field-builder.mjs.map +1 -1
  1038. package/esm/resource/resource.d.mts +1 -1
  1039. package/esm/resource/resource.d.mts.map +1 -1
  1040. package/esm/resource/resource.mjs +23 -4
  1041. package/esm/resource/resource.mjs.map +1 -1
  1042. package/esm/resource/types.d.mts +11 -6
  1043. package/esm/resource/types.d.mts.map +1 -1
  1044. package/esm/restful/restful.d.mts +1 -1
  1045. package/esm/restful/restful.d.mts.map +1 -1
  1046. package/esm/restful/restful.mjs +1 -1
  1047. package/esm/restful/restful.mjs.map +1 -1
  1048. package/esm/router/build-route-rate-limit.mjs +1 -1
  1049. package/esm/router/build-route-rate-limit.mjs.map +1 -1
  1050. package/esm/router/describe-route-for-log.mjs +1 -1
  1051. package/esm/router/describe-route-for-log.mjs.map +1 -1
  1052. package/esm/router/dev-dispatch.mjs +1 -1
  1053. package/esm/router/dev-dispatch.mjs.map +1 -1
  1054. package/esm/router/log-request-lifecycle.mjs +1 -1
  1055. package/esm/router/log-request-lifecycle.mjs.map +1 -1
  1056. package/esm/router/named-api-routes-with-responses.mjs +1 -1
  1057. package/esm/router/named-api-routes-with-responses.mjs.map +1 -1
  1058. package/esm/router/normalize-request-path.d.mts +1 -1
  1059. package/esm/router/normalize-request-path.d.mts.map +1 -1
  1060. package/esm/router/normalize-request-path.mjs +1 -1
  1061. package/esm/router/normalize-request-path.mjs.map +1 -1
  1062. package/esm/router/normalize-route-path.d.mts +1 -1
  1063. package/esm/router/normalize-route-path.d.mts.map +1 -1
  1064. package/esm/router/normalize-route-path.mjs +1 -1
  1065. package/esm/router/normalize-route-path.mjs.map +1 -1
  1066. package/esm/router/positional-handler-diagnostics.d.mts +1 -1
  1067. package/esm/router/positional-handler-diagnostics.d.mts.map +1 -1
  1068. package/esm/router/positional-handler-diagnostics.mjs +1 -1
  1069. package/esm/router/positional-handler-diagnostics.mjs.map +1 -1
  1070. package/esm/router/response-schema-types.mjs +3 -1
  1071. package/esm/router/response-schema-types.mjs.map +1 -1
  1072. package/esm/router/route-builder.d.mts +1 -1
  1073. package/esm/router/route-builder.d.mts.map +1 -1
  1074. package/esm/router/route-builder.mjs +1 -1
  1075. package/esm/router/route-builder.mjs.map +1 -1
  1076. package/esm/router/route-name-method-suffix.d.mts +1 -1
  1077. package/esm/router/route-name-method-suffix.d.mts.map +1 -1
  1078. package/esm/router/route-name-method-suffix.mjs +1 -1
  1079. package/esm/router/route-name-method-suffix.mjs.map +1 -1
  1080. package/esm/router/route-registry.d.mts +1 -1
  1081. package/esm/router/route-registry.d.mts.map +1 -1
  1082. package/esm/router/route-registry.mjs +1 -1
  1083. package/esm/router/route-registry.mjs.map +1 -1
  1084. package/esm/router/router.d.mts +8 -1
  1085. package/esm/router/router.d.mts.map +1 -1
  1086. package/esm/router/router.mjs +20 -15
  1087. package/esm/router/router.mjs.map +1 -1
  1088. package/esm/router/types.d.mts +13 -1
  1089. package/esm/router/types.d.mts.map +1 -1
  1090. package/esm/socket/types.d.mts +1 -1
  1091. package/esm/socket/types.d.mts.map +1 -1
  1092. package/esm/socket/utils.d.mts +1 -1
  1093. package/esm/socket/utils.d.mts.map +1 -1
  1094. package/esm/socket/utils.mjs +1 -1
  1095. package/esm/socket/utils.mjs.map +1 -1
  1096. package/esm/storage/config.d.mts +1 -1
  1097. package/esm/storage/config.d.mts.map +1 -1
  1098. package/esm/storage/config.mjs +1 -1
  1099. package/esm/storage/config.mjs.map +1 -1
  1100. package/esm/storage/context/storage-driver-context.d.mts +1 -1
  1101. package/esm/storage/context/storage-driver-context.d.mts.map +1 -1
  1102. package/esm/storage/context/storage-driver-context.mjs +1 -1
  1103. package/esm/storage/context/storage-driver-context.mjs.map +1 -1
  1104. package/esm/storage/drivers/cloud-driver.d.mts +1 -1
  1105. package/esm/storage/drivers/cloud-driver.d.mts.map +1 -1
  1106. package/esm/storage/drivers/cloud-driver.mjs +1 -1
  1107. package/esm/storage/drivers/cloud-driver.mjs.map +1 -1
  1108. package/esm/storage/drivers/do-spaces-driver.d.mts +1 -1
  1109. package/esm/storage/drivers/do-spaces-driver.d.mts.map +1 -1
  1110. package/esm/storage/drivers/do-spaces-driver.mjs +1 -1
  1111. package/esm/storage/drivers/do-spaces-driver.mjs.map +1 -1
  1112. package/esm/storage/drivers/local-driver.d.mts +12 -1
  1113. package/esm/storage/drivers/local-driver.d.mts.map +1 -1
  1114. package/esm/storage/drivers/local-driver.mjs +33 -1
  1115. package/esm/storage/drivers/local-driver.mjs.map +1 -1
  1116. package/esm/storage/drivers/r2-driver.d.mts +1 -1
  1117. package/esm/storage/drivers/r2-driver.d.mts.map +1 -1
  1118. package/esm/storage/drivers/r2-driver.mjs +1 -1
  1119. package/esm/storage/drivers/r2-driver.mjs.map +1 -1
  1120. package/esm/storage/drivers/s3-driver.d.mts +1 -1
  1121. package/esm/storage/drivers/s3-driver.d.mts.map +1 -1
  1122. package/esm/storage/drivers/s3-driver.mjs +1 -1
  1123. package/esm/storage/drivers/s3-driver.mjs.map +1 -1
  1124. package/esm/storage/index.d.mts +1 -1
  1125. package/esm/storage/scoped-storage.d.mts +1 -1
  1126. package/esm/storage/scoped-storage.d.mts.map +1 -1
  1127. package/esm/storage/scoped-storage.mjs +1 -1
  1128. package/esm/storage/scoped-storage.mjs.map +1 -1
  1129. package/esm/storage/storage-file.d.mts +1 -1
  1130. package/esm/storage/storage-file.d.mts.map +1 -1
  1131. package/esm/storage/storage-file.mjs +1 -1
  1132. package/esm/storage/storage-file.mjs.map +1 -1
  1133. package/esm/storage/storage.d.mts +3 -3
  1134. package/esm/storage/storage.d.mts.map +1 -1
  1135. package/esm/storage/storage.mjs +1 -1
  1136. package/esm/storage/storage.mjs.map +1 -1
  1137. package/esm/storage/types.d.mts +3 -2
  1138. package/esm/storage/types.d.mts.map +1 -1
  1139. package/esm/storage/utils/classify-ip-address.d.mts +1 -1
  1140. package/esm/storage/utils/classify-ip-address.d.mts.map +1 -1
  1141. package/esm/storage/utils/classify-ip-address.mjs +1 -1
  1142. package/esm/storage/utils/classify-ip-address.mjs.map +1 -1
  1143. package/esm/storage/utils/contain-path.d.mts +1 -1
  1144. package/esm/storage/utils/contain-path.d.mts.map +1 -1
  1145. package/esm/storage/utils/contain-path.mjs +1 -1
  1146. package/esm/storage/utils/contain-path.mjs.map +1 -1
  1147. package/esm/storage/utils/mime.d.mts +1 -1
  1148. package/esm/storage/utils/mime.d.mts.map +1 -1
  1149. package/esm/storage/utils/mime.mjs +1 -1
  1150. package/esm/storage/utils/mime.mjs.map +1 -1
  1151. package/esm/storage/utils/safe-fetch.d.mts +1 -1
  1152. package/esm/storage/utils/safe-fetch.d.mts.map +1 -1
  1153. package/esm/storage/utils/safe-fetch.mjs +1 -1
  1154. package/esm/storage/utils/safe-fetch.mjs.map +1 -1
  1155. package/esm/storage/utils/storage-capability-error.d.mts +1 -1
  1156. package/esm/storage/utils/storage-capability-error.d.mts.map +1 -1
  1157. package/esm/storage/utils/storage-capability-error.mjs +1 -1
  1158. package/esm/storage/utils/storage-capability-error.mjs.map +1 -1
  1159. package/esm/storage/utils/storage-error.d.mts +1 -1
  1160. package/esm/storage/utils/storage-error.d.mts.map +1 -1
  1161. package/esm/storage/utils/storage-error.mjs +1 -1
  1162. package/esm/storage/utils/storage-error.mjs.map +1 -1
  1163. package/esm/storage/utils/storage-not-initialized-error.d.mts +1 -1
  1164. package/esm/storage/utils/storage-not-initialized-error.d.mts.map +1 -1
  1165. package/esm/storage/utils/storage-not-initialized-error.mjs +1 -1
  1166. package/esm/storage/utils/storage-not-initialized-error.mjs.map +1 -1
  1167. package/esm/tests/start-http-development-server.d.mts +1 -1
  1168. package/esm/tests/start-http-development-server.d.mts.map +1 -1
  1169. package/esm/tests/start-http-development-server.mjs +1 -1
  1170. package/esm/tests/start-http-development-server.mjs.map +1 -1
  1171. package/esm/tests/test-connectors-selection.d.mts +1 -1
  1172. package/esm/tests/test-connectors-selection.d.mts.map +1 -1
  1173. package/esm/tests/test-connectors-selection.mjs +1 -1
  1174. package/esm/tests/test-connectors-selection.mjs.map +1 -1
  1175. package/esm/tests/test-helpers.d.mts +1 -1
  1176. package/esm/tests/test-helpers.d.mts.map +1 -1
  1177. package/esm/tests/test-helpers.mjs +1 -1
  1178. package/esm/tests/test-helpers.mjs.map +1 -1
  1179. package/esm/tests/test-lifecycle-state.mjs +1 -1
  1180. package/esm/tests/test-lifecycle-state.mjs.map +1 -1
  1181. package/esm/tests/test-server-port-channel.mjs +1 -1
  1182. package/esm/tests/test-server-port-channel.mjs.map +1 -1
  1183. package/esm/tests/test-setup-timeout.mjs +1 -1
  1184. package/esm/tests/test-setup-timeout.mjs.map +1 -1
  1185. package/esm/tests/vitest-setup.d.mts +1 -1
  1186. package/esm/tests/vitest-setup.d.mts.map +1 -1
  1187. package/esm/tests/vitest-setup.mjs +1 -1
  1188. package/esm/tests/vitest-setup.mjs.map +1 -1
  1189. package/esm/updater/package-manager.mjs +1 -1
  1190. package/esm/updater/package-manager.mjs.map +1 -1
  1191. package/esm/updater/update-warlock-packages.mjs +1 -1
  1192. package/esm/updater/update-warlock-packages.mjs.map +1 -1
  1193. package/esm/use-cases/types.d.mts +1 -1
  1194. package/esm/use-cases/types.d.mts.map +1 -1
  1195. package/esm/use-cases/use-case-broadcast.d.mts +1 -1
  1196. package/esm/use-cases/use-case-broadcast.d.mts.map +1 -1
  1197. package/esm/use-cases/use-case-broadcast.mjs +1 -1
  1198. package/esm/use-cases/use-case-broadcast.mjs.map +1 -1
  1199. package/esm/use-cases/use-case-events.d.mts +1 -1
  1200. package/esm/use-cases/use-case-events.d.mts.map +1 -1
  1201. package/esm/use-cases/use-case-events.mjs +1 -1
  1202. package/esm/use-cases/use-case-events.mjs.map +1 -1
  1203. package/esm/use-cases/use-case-pipeline.d.mts +1 -1
  1204. package/esm/use-cases/use-case-pipeline.d.mts.map +1 -1
  1205. package/esm/use-cases/use-case-pipeline.mjs +1 -1
  1206. package/esm/use-cases/use-case-pipeline.mjs.map +1 -1
  1207. package/esm/use-cases/use-case.d.mts +1 -1
  1208. package/esm/use-cases/use-case.d.mts.map +1 -1
  1209. package/esm/use-cases/use-case.errors.d.mts +1 -1
  1210. package/esm/use-cases/use-case.errors.d.mts.map +1 -1
  1211. package/esm/use-cases/use-case.errors.mjs +1 -1
  1212. package/esm/use-cases/use-case.errors.mjs.map +1 -1
  1213. package/esm/use-cases/use-case.mjs +1 -1
  1214. package/esm/use-cases/use-case.mjs.map +1 -1
  1215. package/esm/use-cases/use-cases-registry.d.mts +1 -1
  1216. package/esm/use-cases/use-cases-registry.d.mts.map +1 -1
  1217. package/esm/use-cases/use-cases-registry.mjs +1 -1
  1218. package/esm/use-cases/use-cases-registry.mjs.map +1 -1
  1219. package/esm/utils/app-log.d.mts +6 -6
  1220. package/esm/utils/app-log.d.mts.map +1 -1
  1221. package/esm/utils/app-log.mjs +1 -1
  1222. package/esm/utils/app-log.mjs.map +1 -1
  1223. package/esm/utils/database-log.d.mts +1 -1
  1224. package/esm/utils/database-log.d.mts.map +1 -1
  1225. package/esm/utils/database-log.mjs +1 -1
  1226. package/esm/utils/database-log.mjs.map +1 -1
  1227. package/esm/utils/detect-environment-overrides.mjs +1 -1
  1228. package/esm/utils/detect-environment-overrides.mjs.map +1 -1
  1229. package/esm/utils/environment.d.mts +1 -1
  1230. package/esm/utils/environment.d.mts.map +1 -1
  1231. package/esm/utils/environment.mjs +1 -1
  1232. package/esm/utils/environment.mjs.map +1 -1
  1233. package/esm/utils/framework-vesion.mjs +1 -1
  1234. package/esm/utils/framework-vesion.mjs.map +1 -1
  1235. package/esm/utils/get-localized.d.mts +1 -1
  1236. package/esm/utils/get-localized.d.mts.map +1 -1
  1237. package/esm/utils/get-localized.mjs +1 -1
  1238. package/esm/utils/get-localized.mjs.map +1 -1
  1239. package/esm/utils/is-test-file.mjs +1 -1
  1240. package/esm/utils/is-test-file.mjs.map +1 -1
  1241. package/esm/utils/load-environment.mjs +1 -1
  1242. package/esm/utils/load-environment.mjs.map +1 -1
  1243. package/esm/utils/normalized-path.d.mts +1 -1
  1244. package/esm/utils/normalized-path.d.mts.map +1 -1
  1245. package/esm/utils/normalized-path.mjs +1 -1
  1246. package/esm/utils/normalized-path.mjs.map +1 -1
  1247. package/esm/utils/npm-registry.d.mts +1 -1
  1248. package/esm/utils/npm-registry.d.mts.map +1 -1
  1249. package/esm/utils/npm-registry.mjs +1 -1
  1250. package/esm/utils/npm-registry.mjs.map +1 -1
  1251. package/esm/utils/paths.d.mts +1 -1
  1252. package/esm/utils/paths.d.mts.map +1 -1
  1253. package/esm/utils/paths.mjs +1 -1
  1254. package/esm/utils/paths.mjs.map +1 -1
  1255. package/esm/utils/promise-all-object.d.mts +1 -1
  1256. package/esm/utils/promise-all-object.d.mts.map +1 -1
  1257. package/esm/utils/promise-all-object.mjs +1 -1
  1258. package/esm/utils/promise-all-object.mjs.map +1 -1
  1259. package/esm/utils/queue.d.mts +1 -1
  1260. package/esm/utils/queue.d.mts.map +1 -1
  1261. package/esm/utils/queue.mjs +1 -1
  1262. package/esm/utils/queue.mjs.map +1 -1
  1263. package/esm/utils/recorded-environment-overrides.mjs +1 -1
  1264. package/esm/utils/recorded-environment-overrides.mjs.map +1 -1
  1265. package/esm/utils/report-environment-overrides.mjs +1 -1
  1266. package/esm/utils/report-environment-overrides.mjs.map +1 -1
  1267. package/esm/utils/sleep.d.mts +1 -1
  1268. package/esm/utils/sleep.d.mts.map +1 -1
  1269. package/esm/utils/sleep.mjs +1 -1
  1270. package/esm/utils/sleep.mjs.map +1 -1
  1271. package/esm/utils/sluggable.d.mts +1 -1
  1272. package/esm/utils/sluggable.d.mts.map +1 -1
  1273. package/esm/utils/sluggable.mjs +1 -1
  1274. package/esm/utils/sluggable.mjs.map +1 -1
  1275. package/esm/utils/to-json.d.mts +1 -1
  1276. package/esm/utils/to-json.d.mts.map +1 -1
  1277. package/esm/utils/to-json.mjs +1 -1
  1278. package/esm/utils/to-json.mjs.map +1 -1
  1279. package/esm/utils/types.d.mts +1 -1
  1280. package/esm/utils/types.d.mts.map +1 -1
  1281. package/esm/utils/urls.d.mts +1 -1
  1282. package/esm/utils/urls.d.mts.map +1 -1
  1283. package/esm/utils/urls.mjs +1 -1
  1284. package/esm/utils/urls.mjs.map +1 -1
  1285. package/esm/utils/version-compare.d.mts +1 -1
  1286. package/esm/utils/version-compare.d.mts.map +1 -1
  1287. package/esm/utils/version-compare.mjs +1 -1
  1288. package/esm/utils/version-compare.mjs.map +1 -1
  1289. package/esm/validation/database/exists-except-current-id.d.mts +1 -1
  1290. package/esm/validation/database/exists-except-current-id.d.mts.map +1 -1
  1291. package/esm/validation/database/exists-except-current-id.mjs +1 -1
  1292. package/esm/validation/database/exists-except-current-id.mjs.map +1 -1
  1293. package/esm/validation/database/exists-except-current-user.d.mts +1 -1
  1294. package/esm/validation/database/exists-except-current-user.d.mts.map +1 -1
  1295. package/esm/validation/database/exists-except-current-user.mjs +1 -1
  1296. package/esm/validation/database/exists-except-current-user.mjs.map +1 -1
  1297. package/esm/validation/database/types.d.mts +1 -1
  1298. package/esm/validation/database/types.d.mts.map +1 -1
  1299. package/esm/validation/database/unique-except-current-id.d.mts +1 -1
  1300. package/esm/validation/database/unique-except-current-id.d.mts.map +1 -1
  1301. package/esm/validation/database/unique-except-current-id.mjs +1 -1
  1302. package/esm/validation/database/unique-except-current-id.mjs.map +1 -1
  1303. package/esm/validation/database/unique-except-current-user.d.mts +1 -1
  1304. package/esm/validation/database/unique-except-current-user.d.mts.map +1 -1
  1305. package/esm/validation/database/unique-except-current-user.mjs +1 -1
  1306. package/esm/validation/database/unique-except-current-user.mjs.map +1 -1
  1307. package/esm/validation/file/file.d.mts +1 -1
  1308. package/esm/validation/file/file.d.mts.map +1 -1
  1309. package/esm/validation/file/file.mjs +1 -1
  1310. package/esm/validation/file/file.mjs.map +1 -1
  1311. package/esm/validation/init.mjs +1 -1
  1312. package/esm/validation/init.mjs.map +1 -1
  1313. package/esm/validation/plugins/database-plugin.mjs +1 -1
  1314. package/esm/validation/plugins/database-plugin.mjs.map +1 -1
  1315. package/esm/validation/plugins/file-plugin.mjs +1 -1
  1316. package/esm/validation/plugins/file-plugin.mjs.map +1 -1
  1317. package/esm/validation/plugins/localized-plugin.mjs +1 -1
  1318. package/esm/validation/plugins/localized-plugin.mjs.map +1 -1
  1319. package/esm/validation/types.d.mts +1 -1
  1320. package/esm/validation/types.d.mts.map +1 -1
  1321. package/esm/validation/validateAll.mjs +1 -1
  1322. package/esm/validation/validateAll.mjs.map +1 -1
  1323. package/esm/validation/validators/file-validator.d.mts +44 -41
  1324. package/esm/validation/validators/file-validator.d.mts.map +1 -1
  1325. package/esm/validation/validators/file-validator.mjs +4 -1
  1326. package/esm/validation/validators/file-validator.mjs.map +1 -1
  1327. package/esm/vite/lower-stage3-decorators.d.mts +1 -1
  1328. package/esm/vite/lower-stage3-decorators.d.mts.map +1 -1
  1329. package/esm/vite/lower-stage3-decorators.mjs +1 -1
  1330. package/esm/vite/lower-stage3-decorators.mjs.map +1 -1
  1331. package/esm/warlock-config/bundle-config.mjs +148 -0
  1332. package/esm/warlock-config/bundle-config.mjs.map +1 -0
  1333. package/esm/warlock-config/default-configurations.mjs +1 -1
  1334. package/esm/warlock-config/default-configurations.mjs.map +1 -1
  1335. package/esm/warlock-config/define-config.d.mts +1 -1
  1336. package/esm/warlock-config/define-config.d.mts.map +1 -1
  1337. package/esm/warlock-config/define-config.mjs +1 -1
  1338. package/esm/warlock-config/define-config.mjs.map +1 -1
  1339. package/esm/warlock-config/index.d.mts +1 -1
  1340. package/esm/warlock-config/index.mjs +1 -1
  1341. package/esm/warlock-config/normalize-build-config.mjs +1 -1
  1342. package/esm/warlock-config/normalize-build-config.mjs.map +1 -1
  1343. package/esm/warlock-config/types.d.mts +1 -1
  1344. package/esm/warlock-config/types.d.mts.map +1 -1
  1345. package/esm/warlock-config/warlock-config.manager.d.mts +32 -7
  1346. package/esm/warlock-config/warlock-config.manager.d.mts.map +1 -1
  1347. package/esm/warlock-config/warlock-config.manager.mjs +94 -18
  1348. package/esm/warlock-config/warlock-config.manager.mjs.map +1 -1
  1349. package/esm/warlock-config/warn-deprecated-config.mjs +1 -1
  1350. package/esm/warlock-config/warn-deprecated-config.mjs.map +1 -1
  1351. package/llms-full.txt +306 -249
  1352. package/llms.txt +42 -42
  1353. package/package.json +20 -13
  1354. package/skills/README.md +39 -39
  1355. package/skills/add-connector/SKILL.md +4 -4
  1356. package/skills/benchmark-code/SKILL.md +3 -3
  1357. package/skills/build-restful/SKILL.md +5 -5
  1358. package/skills/build-url/SKILL.md +7 -7
  1359. package/skills/configure-app/SKILL.md +30 -8
  1360. package/skills/create-controller/SKILL.md +12 -8
  1361. package/skills/create-module/SKILL.md +9 -9
  1362. package/skills/define-resource/SKILL.md +4 -4
  1363. package/skills/encrypt-data/SKILL.md +7 -7
  1364. package/skills/generate-openapi/SKILL.md +5 -5
  1365. package/skills/hash-password/SKILL.md +8 -8
  1366. package/skills/health-checks/SKILL.md +8 -6
  1367. package/skills/lower-stage3-decorators/SKILL.md +4 -4
  1368. package/skills/process-image/SKILL.md +5 -5
  1369. package/skills/register-route/SKILL.md +16 -6
  1370. package/skills/request-memo/SKILL.md +4 -4
  1371. package/skills/request-tracing/SKILL.md +6 -6
  1372. package/skills/resolve-path/SKILL.md +6 -6
  1373. package/skills/retry-operation/SKILL.md +4 -4
  1374. package/skills/run-app/SKILL.md +20 -13
  1375. package/skills/send-mail/SKILL.md +3 -3
  1376. package/skills/send-response/SKILL.md +16 -8
  1377. package/skills/store-file/SKILL.md +9 -5
  1378. package/skills/test-http/SKILL.md +5 -5
  1379. package/skills/test-service/SKILL.md +5 -5
  1380. package/skills/update-packages/SKILL.md +6 -6
  1381. package/skills/upload-file/SKILL.md +7 -7
  1382. package/skills/use-app-context/SKILL.md +7 -7
  1383. package/skills/use-localization/SKILL.md +6 -6
  1384. package/skills/use-middleware/SKILL.md +8 -8
  1385. package/skills/use-model-transformers/SKILL.md +6 -6
  1386. package/skills/use-repository/SKILL.md +7 -7
  1387. package/skills/use-request-locals/SKILL.md +4 -4
  1388. package/skills/validate-input/SKILL.md +7 -7
  1389. package/skills/warlock-conventions/SKILL.md +6 -6
  1390. package/skills/warlock-doctor/SKILL.md +5 -5
  1391. package/skills/warlock-routes/SKILL.md +6 -6
  1392. package/skills/wire-socket/SKILL.md +4 -4
  1393. package/skills/write-cli-command/SKILL.md +6 -6
  1394. package/skills/write-middleware/SKILL.md +8 -8
  1395. package/skills/write-seeder/SKILL.md +5 -5
  1396. package/skills/write-use-case/SKILL.md +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"server.mjs","names":[],"sources":["../../../../../../../core/src/http/server.ts"],"sourcesContent":["import config from \"@mongez/config\";\nimport Fastify, { type FastifyServerOptions } from \"fastify\";\nimport { normalizeRequestPath } from \"../router/normalize-request-path\";\n\nexport type FastifyInstance = ReturnType<typeof Fastify>;\n\n// Instantiate Fastify server\nlet server: FastifyInstance | undefined = undefined;\n\n/** Fastify's accepted, non-null `trustProxy` configuration shape. */\ntype TrustProxy = NonNullable<FastifyServerOptions[\"trustProxy\"]>;\ntype TrustProxyPredicate = (address: string, hop: number) => boolean;\n\nfunction isTrustProxyPredicate(value: unknown): value is TrustProxyPredicate {\n return typeof value === \"function\";\n}\n\nfunction isTrustProxyList(value: unknown): value is string[] {\n return (\n Array.isArray(value) &&\n value.length > 0 &&\n value.every((entry) => typeof entry === \"string\" && entry.trim().length > 0)\n );\n}\n\nfunction resolveTrustProxy(value: unknown): TrustProxy {\n if (value === undefined || value === null) return false;\n\n if (typeof value === \"boolean\" || isTrustProxyPredicate(value)) return value;\n\n if (typeof value === \"string\" && value.trim().length > 0) return value;\n\n if (isTrustProxyList(value)) return value;\n\n const received = Array.isArray(value) ? \"array\" : typeof value;\n\n throw new TypeError(\n \"Invalid http.trustProxy configuration: expected a boolean, a non-empty IP/CIDR string, \" +\n `a non-empty string array, or a predicate function; received ${received}.`,\n );\n}\n\nfunction normalizeRequestUrl(url: string): string {\n const queryIndex = url.indexOf(\"?\");\n\n if (queryIndex === -1) return normalizeRequestPath(url);\n\n return normalizeRequestPath(url.slice(0, queryIndex)) + url.slice(queryIndex);\n}\n\nexport function startHttpServer(options?: FastifyServerOptions): FastifyInstance {\n // `config.set(key, undefined)` stores null rather than unsetting, so an app\n // that clears a key is treated the same as an app that never configured it.\n const trustProxy = resolveTrustProxy(config.get(\"http.trustProxy\", false));\n\n const bodyLimit = config.get(\"http.bodyLimit\") ?? undefined;\n const configuredRewriteUrl = options?.rewriteUrl;\n\n return (server = Fastify({\n // `X-Forwarded-For` is client-settable and spoofable, and `request.ip` is\n // what @fastify/rate-limit keys its buckets on — so trusting it by default\n // makes rate limiting bypassable on any deployment NOT behind a proxy that\n // strips the header. Apps behind such a proxy opt in explicitly.\n //\n // Validated shapes resolve exactly as Fastify does: `true`, a CIDR/IP list\n // (string, comma-separated string or array), or a predicate.\n trustProxy,\n // No default: an app that configures nothing keeps Fastify's own 1MB limit\n // rather than the historical 200GB, which silently removed the protection\n // Fastify provides. Per-route caps go through `serverOptions.bodyLimit`;\n // the `maxBodySize()` middleware runs AFTER parsing and cannot reject\n // before the bytes are resident.\n ...(bodyLimit !== undefined && { bodyLimit }),\n // Close idle keep-alive connections on shutdown while letting in-flight\n // requests finish — the basis for graceful draining. Override via\n // `http.gracefulShutdown.forceCloseConnections`.\n forceCloseConnections: config.get(\"http.gracefulShutdown.forceCloseConnections\", \"idle\"),\n ...options,\n // Fastify calls this before route matching in both production `scan()` and\n // the development wildcard dispatcher. Compose an app-supplied rewrite\n // first, then apply the one framework request-path normalizer so the two\n // modes cannot disagree about a terminal slash.\n rewriteUrl(request) {\n const rewritten = configuredRewriteUrl\n ? configuredRewriteUrl.call(this, request)\n : (request.url ?? \"/\");\n\n return normalizeRequestUrl(rewritten);\n },\n }));\n}\n\n/**\n * Expose the server to be publicly accessible\n */\nexport function getHttpServer(): FastifyInstance {\n return server;\n}\n\n/**\n * Minimal shape needed to close a server — lets {@link closeServerWithTimeout}\n * be unit-tested with a fake instead of a real Fastify instance.\n */\nexport type ClosableServer = { close: () => Promise<unknown> };\n\n/**\n * Close a server, bounded by a timeout. Fastify's `close()` stops accepting new\n * requests (it answers 503 while closing) and drains the in-flight ones; this\n * wraps it so a single stuck request can't hang shutdown forever.\n *\n * @returns `true` if the server drained cleanly, `false` if the timeout fired first.\n */\nexport async function closeServerWithTimeout(\n server: ClosableServer,\n timeoutMs: number,\n): Promise<boolean> {\n let timer: ReturnType<typeof setTimeout> | undefined;\n\n const drained = server.close().then(() => true);\n\n const timedOut = new Promise<boolean>((resolve) => {\n timer = setTimeout(() => resolve(false), timeoutMs);\n });\n\n try {\n return await Promise.race([drained, timedOut]);\n } finally {\n if (timer) {\n clearTimeout(timer);\n }\n }\n}\n"],"mappings":";;;;;AAOA,IAAI,SAAsC;AAM1C,SAAS,sBAAsB,OAA8C;CAC3E,OAAO,OAAO,UAAU;AAC1B;AAEA,SAAS,iBAAiB,OAAmC;CAC3D,OACE,MAAM,QAAQ,KAAK,KACnB,MAAM,SAAS,KACf,MAAM,OAAO,UAAU,OAAO,UAAU,YAAY,MAAM,KAAK,CAAC,CAAC,SAAS,CAAC;AAE/E;AAEA,SAAS,kBAAkB,OAA4B;CACrD,IAAI,UAAU,UAAa,UAAU,MAAM,OAAO;CAElD,IAAI,OAAO,UAAU,aAAa,sBAAsB,KAAK,GAAG,OAAO;CAEvE,IAAI,OAAO,UAAU,YAAY,MAAM,KAAK,CAAC,CAAC,SAAS,GAAG,OAAO;CAEjE,IAAI,iBAAiB,KAAK,GAAG,OAAO;CAIpC,MAAM,IAAI,UACR,sJAHe,MAAM,QAAQ,KAAK,IAAI,UAAU,OAAO,MAImB,EAC5E;AACF;AAEA,SAAS,oBAAoB,KAAqB;CAChD,MAAM,aAAa,IAAI,QAAQ,GAAG;CAElC,IAAI,eAAe,IAAI,OAAO,qBAAqB,GAAG;CAEtD,OAAO,qBAAqB,IAAI,MAAM,GAAG,UAAU,CAAC,IAAI,IAAI,MAAM,UAAU;AAC9E;AAEA,SAAgB,gBAAgB,SAAiD;CAG/E,MAAM,aAAa,kBAAkB,OAAO,IAAI,mBAAmB,KAAK,CAAC;CAEzE,MAAM,YAAY,OAAO,IAAI,gBAAgB,KAAK;CAClD,MAAM,uBAAuB,SAAS;CAEtC,OAAQ,SAAS,QAAQ;EAQvB;EAMA,GAAI,cAAc,UAAa,EAAE,UAAU;EAI3C,uBAAuB,OAAO,IAAI,+CAA+C,MAAM;EACvF,GAAG;EAKH,WAAW,SAAS;GAKlB,OAAO,oBAJW,uBACd,qBAAqB,KAAK,MAAM,OAAO,IACtC,QAAQ,OAAO,GAEgB;EACtC;CACF,CAAC;AACH;;;;AAKA,SAAgB,gBAAiC;CAC/C,OAAO;AACT;;;;;;;;AAeA,eAAsB,uBACpB,QACA,WACkB;CAClB,IAAI;CAEJ,MAAM,UAAU,OAAO,MAAM,CAAC,CAAC,WAAW,IAAI;CAE9C,MAAM,WAAW,IAAI,SAAkB,YAAY;EACjD,QAAQ,iBAAiB,QAAQ,KAAK,GAAG,SAAS;CACpD,CAAC;CAED,IAAI;EACF,OAAO,MAAM,QAAQ,KAAK,CAAC,SAAS,QAAQ,CAAC;CAC/C,UAAU;EACR,IAAI,OACF,aAAa,KAAK;CAEtB;AACF"}
1
+ {"version":3,"file":"server.mjs","names":[],"sources":["../../../../../../../../packages/core/src/http/server.ts"],"sourcesContent":["import config from \"@mongez/config\";\nimport Fastify, { type FastifyServerOptions } from \"fastify\";\nimport type { Server as NodeHttpServer, ServerResponse } from \"node:http\";\nimport { normalizeRequestPath } from \"../router/normalize-request-path\";\nimport type { HttpServerOptions } from \"./types\";\n\nexport type FastifyInstance = ReturnType<typeof Fastify>;\n\n// Instantiate Fastify server\nlet server: FastifyInstance | undefined = undefined;\n\n/** Fastify's accepted, non-null `trustProxy` configuration shape. */\ntype TrustProxy = NonNullable<FastifyServerOptions[\"trustProxy\"]>;\ntype TrustProxyPredicate = (address: string, hop: number) => boolean;\n\nfunction isTrustProxyPredicate(value: unknown): value is TrustProxyPredicate {\n return typeof value === \"function\";\n}\n\nfunction isTrustProxyList(value: unknown): value is string[] {\n return (\n Array.isArray(value) &&\n value.length > 0 &&\n value.every((entry) => typeof entry === \"string\" && entry.trim().length > 0)\n );\n}\n\nfunction resolveTrustProxy(value: unknown): TrustProxy {\n if (value === undefined || value === null) return false;\n\n if (typeof value === \"boolean\" || isTrustProxyPredicate(value)) return value;\n\n if (typeof value === \"string\" && value.trim().length > 0) return value;\n\n if (isTrustProxyList(value)) return value;\n\n const received = Array.isArray(value) ? \"array\" : typeof value;\n\n throw new TypeError(\n \"Invalid http.trustProxy configuration: expected a boolean, a non-empty IP/CIDR string, \" +\n `a non-empty string array, or a predicate function; received ${received}.`,\n );\n}\n\nfunction normalizeRequestUrl(url: string): string {\n const queryIndex = url.indexOf(\"?\");\n\n if (queryIndex === -1) return normalizeRequestPath(url);\n\n return normalizeRequestPath(url.slice(0, queryIndex)) + url.slice(queryIndex);\n}\n\nexport function startHttpServer(options?: HttpServerOptions): FastifyInstance {\n // `config.set(key, undefined)` stores null rather than unsetting, so an app\n // that clears a key is treated the same as an app that never configured it.\n const trustProxy = resolveTrustProxy(config.get(\"http.trustProxy\", false));\n\n const bodyLimit = config.get(\"http.bodyLimit\") ?? undefined;\n const configuredRewriteUrl = options?.rewriteUrl;\n const forceCloseConnections =\n options?.forceCloseConnections ??\n config.get(\"http.gracefulShutdown.forceCloseConnections\", \"idle\");\n\n server = Fastify({\n // `X-Forwarded-For` is client-settable and spoofable, and `request.ip` is\n // what @fastify/rate-limit keys its buckets on — so trusting it by default\n // makes rate limiting bypassable on any deployment NOT behind a proxy that\n // strips the header. Apps behind such a proxy opt in explicitly.\n //\n // Validated shapes resolve exactly as Fastify does: `true`, a CIDR/IP list\n // (string, comma-separated string or array), or a predicate.\n trustProxy,\n // No default: an app that configures nothing keeps Fastify's own 1MB limit\n // rather than the historical 200GB, which silently removed the protection\n // Fastify provides. Per-route caps go through `serverOptions.bodyLimit`;\n // the `maxBodySize()` middleware runs AFTER parsing and cannot reject\n // before the bytes are resident.\n ...(bodyLimit !== undefined && { bodyLimit }),\n // Close idle keep-alive connections on shutdown while letting in-flight\n // requests finish — the basis for graceful draining. Override via\n // `http.gracefulShutdown.forceCloseConnections`.\n forceCloseConnections,\n ...options,\n // Fastify calls this before route matching in both production `scan()` and\n // the development wildcard dispatcher. Compose an app-supplied rewrite\n // first, then apply the one framework request-path normalizer so the two\n // modes cannot disagree about a terminal slash.\n rewriteUrl(request) {\n const rewritten = configuredRewriteUrl\n ? configuredRewriteUrl.call(this, request)\n : (request.url ?? \"/\");\n\n return normalizeRequestUrl(rewritten);\n },\n });\n\n // `\"idle\"` promises that idle keep-alive connections close on shutdown. Fastify\n // only reaps the ones idle at the moment close starts; a connection whose\n // request finishes DURING the drain stays open and holds `close()` until\n // the shutdown budget expires (WR-014). Track responses so the drain can\n // retire those connections as they go idle.\n if (forceCloseConnections === \"idle\") {\n trackConnectionsForDrain(server.server as NodeHttpServer);\n }\n\n return server;\n}\n\n/**\n * Expose the server to be publicly accessible\n */\nexport function getHttpServer(): FastifyInstance {\n return server;\n}\n\n/**\n * Minimal shape needed to close a server — lets {@link closeServerWithTimeout}\n * be unit-tested with a fake instead of a real Fastify instance.\n */\nexport type ClosableServer = {\n close: () => Promise<unknown>;\n /** The underlying Node server, when there is one (a Fastify instance's `.server`). */\n server?: unknown;\n};\n\n/**\n * Per-server drain state: the responses currently in flight, and whether a\n * graceful shutdown has begun.\n */\ntype DrainState = {\n inFlight: Set<ServerResponse>;\n draining: boolean;\n};\n\nconst drainStates = new WeakMap<object, DrainState>();\n\n/**\n * Mark a response so its connection closes once it is sent. Only possible\n * before the headers go out; a response that already streams its headers is\n * retired by {@link reapIdleConnections} after it finishes instead.\n */\nfunction retireAfterResponse(response: ServerResponse): void {\n if (response.headersSent || response.writableEnded) return;\n\n response.setHeader(\"Connection\", \"close\");\n}\n\nfunction reapIdleConnections(rawServer: NodeHttpServer): void {\n if (typeof rawServer.closeIdleConnections === \"function\") {\n rawServer.closeIdleConnections();\n }\n}\n\n/**\n * Track in-flight responses on a Node HTTP server so a graceful drain can\n * close keep-alive connections that become idle AFTER `close()` started.\n *\n * Node's `server.close()` (and Fastify's `forceCloseConnections: \"idle\"`)\n * closes only the connections idle at that moment. A request in flight when\n * shutdown begins finishes its response, the client keeps the connection\n * alive, and `close()` waits on it until the shutdown budget runs out. Active\n * responses are never cut short: each one is told to close its connection\n * when it is done (`Connection: close`), and every connection is reaped as\n * soon as its response has finished.\n */\nexport function trackConnectionsForDrain(rawServer: NodeHttpServer): void {\n if (!rawServer || typeof rawServer.on !== \"function\" || drainStates.has(rawServer)) return;\n\n const state: DrainState = { inFlight: new Set(), draining: false };\n\n drainStates.set(rawServer, state);\n\n rawServer.on(\"request\", (_request, response: ServerResponse) => {\n state.inFlight.add(response);\n\n if (state.draining) retireAfterResponse(response);\n\n response.once(\"close\", () => {\n state.inFlight.delete(response);\n\n // The socket becomes idle once Node finishes handling this response,\n // which happens after the response's own `close` event.\n if (state.draining) setImmediate(() => reapIdleConnections(rawServer));\n });\n });\n}\n\n/**\n * Begin a graceful drain on a server tracked by {@link trackConnectionsForDrain}:\n * every in-flight response closes its connection when it is done, and idle\n * keep-alive connections are closed now and whenever another one goes idle.\n * A server that is not tracked is left alone.\n *\n * @returns Whether the server was tracked (and is now draining).\n */\nexport function beginHttpDrain(rawServer: unknown): boolean {\n if (!rawServer || typeof rawServer !== \"object\") return false;\n\n const state = drainStates.get(rawServer);\n\n if (!state) return false;\n\n state.draining = true;\n\n for (const response of state.inFlight) {\n retireAfterResponse(response);\n }\n\n reapIdleConnections(rawServer as NodeHttpServer);\n\n return true;\n}\n\n/**\n * Close a server, bounded by a timeout. Fastify's `close()` stops accepting new\n * requests (it answers 503 while closing) and drains the in-flight ones; this\n * wraps it so a single stuck request can't hang shutdown forever. When the\n * server's connections are tracked (the default `\"idle\"` mode), keep-alive\n * connections that go idle during the drain are closed too, so a finished\n * request does not hold the shutdown open.\n *\n * @returns `true` if the server drained cleanly, `false` if the timeout fired first.\n */\nexport async function closeServerWithTimeout(\n server: ClosableServer,\n timeoutMs: number,\n): Promise<boolean> {\n let timer: ReturnType<typeof setTimeout> | undefined;\n\n beginHttpDrain(server.server);\n\n const drained = server.close().then(() => true);\n\n const timedOut = new Promise<boolean>((resolve) => {\n timer = setTimeout(() => resolve(false), timeoutMs);\n });\n\n try {\n return await Promise.race([drained, timedOut]);\n } finally {\n if (timer) {\n clearTimeout(timer);\n }\n }\n}\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { OutgoingHttpHeaders, ServerResponse } from "node:http";
2
2
 
3
- //#region ../core/src/http/stream-react-response.d.ts
3
+ //#region ../../packages/core/src/http/stream-react-response.d.ts
4
4
  /**
5
5
  * The subset of React's server `PipeableStream` (`react-dom/server`) this
6
6
  * helper needs — piping the render onto a Node writable and aborting it
@@ -1 +1 @@
1
- {"version":3,"file":"stream-react-response.d.mts","names":[],"sources":["../../../../../../../core/src/http/stream-react-response.ts"],"mappings":";;;;;AAUA;;;;;;KAAY,mBAAA;EACV,IAAA,qBAAyB,MAAA,CAAO,cAAA,EAAgB,WAAA,EAAa,WAAA,GAAc,WAAA;EAC3E,KAAA,CAAM,MAAA;AAAA;;KAII,0BAAA;EALmD,qFAO7D,GAAA,EAAK,cAAA;EAPsE;;;;AACrD;AAIxB;EASE,UAAA;;;;;;;;EAQA,OAAA,EAAS,mBAAA,EART;EAUA,cAAA,EAAgB,mBAAA;AAAA;;;;AAAmB;AA6BrC;;;;;;;;AAAiF;;;;;;;;;;;;;;iBAAjE,mBAAA,CAAoB,OAAA,EAAS,0BAAA,GAA6B,OAAO"}
1
+ {"version":3,"file":"stream-react-response.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/http/stream-react-response.ts"],"mappings":";;;;;AAUA;;;;;;KAAY,mBAAA;EACV,IAAA,qBAAyB,MAAA,CAAO,cAAA,EAAgB,WAAA,EAAa,WAAA,GAAc,WAAA;EAC3E,KAAA,CAAM,MAAA;AAAA;;KAII,0BAAA;EALmD,qFAO7D,GAAA,EAAK,cAAA;EAPsE;;;;AACrD;AAIxB;EASE,UAAA;;;;;;;;EAQA,OAAA,EAAS,mBAAA,EART;EAUA,cAAA,EAAgB,mBAAA;AAAA;;;;AAAmB;AA6BrC;;;;;;;;AAAiF;;;;;;;;;;;;;;iBAAjE,mBAAA,CAAoB,OAAA,EAAS,0BAAA,GAA6B,OAAO"}
@@ -1,4 +1,4 @@
1
- //#region ../core/src/http/stream-react-response.ts
1
+ //#region ../../packages/core/src/http/stream-react-response.ts
2
2
  /**
3
3
  * Write the committed status/headers to the raw Node response and pipe a
4
4
  * React server stream onto it — the ONE place in the framework that turns a
@@ -1 +1 @@
1
- {"version":3,"file":"stream-react-response.mjs","names":[],"sources":["../../../../../../../core/src/http/stream-react-response.ts"],"sourcesContent":["import type { OutgoingHttpHeaders, ServerResponse } from \"node:http\";\n\n/**\n * The subset of React's server `PipeableStream` (`react-dom/server`) this\n * helper needs — piping the render onto a Node writable and aborting it\n * early. Declared locally, structurally compatible with React's own type,\n * so this file carries no `react-dom` import: `@warlock.js/core` has no peer\n * dependency on React, only the caller that already imported\n * `renderToPipeableStream` does.\n */\nexport type PipeableReactStream = {\n pipe<Destination extends NodeJS.WritableStream>(destination: Destination): Destination;\n abort(reason?: unknown): void;\n};\n\n/** Options for {@link streamReactResponse}. */\nexport type StreamReactResponseOptions = {\n /** The raw Node response, obtained via core's `Response` — never handed to `web`. */\n raw: ServerResponse;\n /**\n * The committed HTTP status. Decided by the caller BEFORE this runs —\n * loaders, middleware short-circuits, validation and error escalation have\n * all already settled, so this is the one and only status this response\n * will carry.\n */\n statusCode: number;\n /**\n * The committed response headers, read once before piping starts.\n * `Set-Cookie` entries already committed via the framework's ordinary\n * cookie APIs are expected to already be present here (Fastify writes a\n * cookie to the header as soon as it is set), so this helper does not\n * take a separate cookie list.\n */\n headers: OutgoingHttpHeaders;\n /** The already-ready React server stream (its shell, or the whole tree, resolved by the caller). */\n pipeableStream: PipeableReactStream;\n};\n\n/**\n * Write the committed status/headers to the raw Node response and pipe a\n * React server stream onto it — the ONE place in the framework that turns a\n * `PipeableStream` into bytes on the wire (Stage 1 streaming SSR). `web`\n * never touches `raw` itself; it goes through this helper (or\n * `Response.streamReact`, which wraps it) exclusively.\n *\n * Aborts the React render when the client disconnects before the stream\n * finishes, so a dropped connection does not leave the render running to\n * completion for nobody.\n *\n * Resolves once the underlying response has finished sending. Rejects if the\n * raw response errors while writing.\n *\n * @example\n * ```ts\n * const pipeableStream = await new Promise<PipeableStream>((resolve, reject) => {\n * const stream = renderToPipeableStream(element, {\n * onShellReady: () => resolve(stream),\n * onShellError: reject,\n * });\n * });\n *\n * await streamReactResponse({ raw: response.raw, statusCode, headers, pipeableStream });\n * ```\n */\nexport function streamReactResponse(options: StreamReactResponseOptions): Promise<void> {\n const { raw, statusCode, headers, pipeableStream } = options;\n\n return new Promise<void>((resolve, reject) => {\n raw.writeHead(statusCode, headers);\n\n const onDisconnect = (): void => {\n // A normal completion also fires \"close\" after \"finish\" — aborting an\n // already-finished React stream is a documented no-op, but the\n // `writableEnded` guard keeps that fact from ever mattering here.\n if (raw.writableEnded) return;\n\n pipeableStream.abort();\n };\n\n raw.once(\"close\", onDisconnect);\n raw.once(\"aborted\", onDisconnect);\n\n raw.once(\"finish\", () => resolve());\n raw.once(\"error\", (error) => reject(error));\n\n pipeableStream.pipe(raw);\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAgEA,SAAgB,oBAAoB,SAAoD;CACtF,MAAM,EAAE,KAAK,YAAY,SAAS,mBAAmB;CAErD,OAAO,IAAI,SAAe,SAAS,WAAW;EAC5C,IAAI,UAAU,YAAY,OAAO;EAEjC,MAAM,qBAA2B;GAI/B,IAAI,IAAI,eAAe;GAEvB,eAAe,MAAM;EACvB;EAEA,IAAI,KAAK,SAAS,YAAY;EAC9B,IAAI,KAAK,WAAW,YAAY;EAEhC,IAAI,KAAK,gBAAgB,QAAQ,CAAC;EAClC,IAAI,KAAK,UAAU,UAAU,OAAO,KAAK,CAAC;EAE1C,eAAe,KAAK,GAAG;CACzB,CAAC;AACH"}
1
+ {"version":3,"file":"stream-react-response.mjs","names":[],"sources":["../../../../../../../../packages/core/src/http/stream-react-response.ts"],"sourcesContent":["import type { OutgoingHttpHeaders, ServerResponse } from \"node:http\";\n\n/**\n * The subset of React's server `PipeableStream` (`react-dom/server`) this\n * helper needs — piping the render onto a Node writable and aborting it\n * early. Declared locally, structurally compatible with React's own type,\n * so this file carries no `react-dom` import: `@warlock.js/core` has no peer\n * dependency on React, only the caller that already imported\n * `renderToPipeableStream` does.\n */\nexport type PipeableReactStream = {\n pipe<Destination extends NodeJS.WritableStream>(destination: Destination): Destination;\n abort(reason?: unknown): void;\n};\n\n/** Options for {@link streamReactResponse}. */\nexport type StreamReactResponseOptions = {\n /** The raw Node response, obtained via core's `Response` — never handed to `web`. */\n raw: ServerResponse;\n /**\n * The committed HTTP status. Decided by the caller BEFORE this runs —\n * loaders, middleware short-circuits, validation and error escalation have\n * all already settled, so this is the one and only status this response\n * will carry.\n */\n statusCode: number;\n /**\n * The committed response headers, read once before piping starts.\n * `Set-Cookie` entries already committed via the framework's ordinary\n * cookie APIs are expected to already be present here (Fastify writes a\n * cookie to the header as soon as it is set), so this helper does not\n * take a separate cookie list.\n */\n headers: OutgoingHttpHeaders;\n /** The already-ready React server stream (its shell, or the whole tree, resolved by the caller). */\n pipeableStream: PipeableReactStream;\n};\n\n/**\n * Write the committed status/headers to the raw Node response and pipe a\n * React server stream onto it — the ONE place in the framework that turns a\n * `PipeableStream` into bytes on the wire (Stage 1 streaming SSR). `web`\n * never touches `raw` itself; it goes through this helper (or\n * `Response.streamReact`, which wraps it) exclusively.\n *\n * Aborts the React render when the client disconnects before the stream\n * finishes, so a dropped connection does not leave the render running to\n * completion for nobody.\n *\n * Resolves once the underlying response has finished sending. Rejects if the\n * raw response errors while writing.\n *\n * @example\n * ```ts\n * const pipeableStream = await new Promise<PipeableStream>((resolve, reject) => {\n * const stream = renderToPipeableStream(element, {\n * onShellReady: () => resolve(stream),\n * onShellError: reject,\n * });\n * });\n *\n * await streamReactResponse({ raw: response.raw, statusCode, headers, pipeableStream });\n * ```\n */\nexport function streamReactResponse(options: StreamReactResponseOptions): Promise<void> {\n const { raw, statusCode, headers, pipeableStream } = options;\n\n return new Promise<void>((resolve, reject) => {\n raw.writeHead(statusCode, headers);\n\n const onDisconnect = (): void => {\n // A normal completion also fires \"close\" after \"finish\" — aborting an\n // already-finished React stream is a documented no-op, but the\n // `writableEnded` guard keeps that fact from ever mattering here.\n if (raw.writableEnded) return;\n\n pipeableStream.abort();\n };\n\n raw.once(\"close\", onDisconnect);\n raw.once(\"aborted\", onDisconnect);\n\n raw.once(\"finish\", () => resolve());\n raw.once(\"error\", (error) => reject(error));\n\n pipeableStream.pipe(raw);\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAgEA,SAAgB,oBAAoB,SAAoD;CACtF,MAAM,EAAE,KAAK,YAAY,SAAS,mBAAmB;CAErD,OAAO,IAAI,SAAe,SAAS,WAAW;EAC5C,IAAI,UAAU,YAAY,OAAO;EAEjC,MAAM,qBAA2B;GAI/B,IAAI,IAAI,eAAe;GAEvB,eAAe,MAAM;EACvB;EAEA,IAAI,KAAK,SAAS,YAAY;EAC9B,IAAI,KAAK,WAAW,YAAY;EAEhC,IAAI,KAAK,gBAAgB,QAAQ,CAAC;EAClC,IAAI,KAAK,UAAU,UAAU,OAAO,KAAK,CAAC;EAE1C,eAAe,KAAK,GAAG;CACzB,CAAC;AACH"}
@@ -0,0 +1,75 @@
1
+ import { log } from "@warlock.js/logger";
2
+
3
+ //#region ../../packages/core/src/http/stream-transport.ts
4
+ function createStreamTransport(raw, options) {
5
+ let closed = false;
6
+ let disconnected = false;
7
+ const disconnectHandlers = [];
8
+ const disconnectController = new AbortController();
9
+ raw.on("close", () => {
10
+ if (closed) return;
11
+ closed = true;
12
+ disconnected = true;
13
+ options.onClientDisconnected?.();
14
+ disconnectController.abort(new DOMException(options.disconnectMessage, "AbortError"));
15
+ for (const handler of disconnectHandlers) try {
16
+ handler();
17
+ } catch (error) {
18
+ log.error("http", "stream", error, { source: "onDisconnect handler" });
19
+ }
20
+ });
21
+ return {
22
+ signal: disconnectController.signal,
23
+ get closed() {
24
+ return closed;
25
+ },
26
+ get disconnected() {
27
+ return disconnected;
28
+ },
29
+ get backpressured() {
30
+ return !closed && raw.writableNeedDrain;
31
+ },
32
+ finish() {
33
+ closed = true;
34
+ },
35
+ onDisconnect(handler) {
36
+ disconnectHandlers.push(handler);
37
+ },
38
+ waitForDrain() {
39
+ if (closed) return Promise.resolve(false);
40
+ if (!raw.writableNeedDrain) return Promise.resolve(true);
41
+ return new Promise((resolve) => {
42
+ const settle = (drained) => {
43
+ raw.off("drain", onDrain);
44
+ raw.off("close", onClose);
45
+ resolve(drained);
46
+ };
47
+ const onDrain = () => settle(!closed);
48
+ const onClose = () => settle(false);
49
+ raw.once("drain", onDrain);
50
+ raw.once("close", onClose);
51
+ });
52
+ }
53
+ };
54
+ }
55
+ /**
56
+ * The most recent `limit` items, for logging/debugging a stream after it
57
+ * ended. `limit` 0 (or missing/NaN) keeps nothing, so a long-lived stream
58
+ * does not grow with its own history.
59
+ */
60
+ function createRetainedTail(limit) {
61
+ const max = limit === void 0 || Number.isNaN(limit) ? 0 : Math.max(0, Math.floor(limit));
62
+ const items = [];
63
+ return {
64
+ items,
65
+ push(item) {
66
+ if (max === 0) return;
67
+ items.push(item);
68
+ if (items.length > max) items.shift();
69
+ }
70
+ };
71
+ }
72
+
73
+ //#endregion
74
+ export { createRetainedTail, createStreamTransport };
75
+ //# sourceMappingURL=stream-transport.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-transport.mjs","names":[],"sources":["../../../../../../../../packages/core/src/http/stream-transport.ts"],"sourcesContent":["import type { ServerResponse } from \"node:http\";\nimport { log } from \"@warlock.js/logger\";\n\n/**\n * Shared transport bookkeeping for the long-lived responses\n * (`response.sse()` and `response.stream()`): client-disconnect detection,\n * an `AbortSignal` for the work feeding the stream, and backpressure (WR-006).\n */\nexport type StreamTransport = {\n /** Aborted when the client disconnects (not when the stream is ended). */\n readonly signal: AbortSignal;\n /** `true` once the stream was ended or the client disconnected. */\n readonly closed: boolean;\n /** `true` once the client disconnected before the stream was ended. */\n readonly disconnected: boolean;\n /** Whether the transport holds more than its high-water mark. */\n readonly backpressured: boolean;\n /** Mark the stream as ended by the server. */\n finish(): void;\n /** Call `handler` when the client disconnects. */\n onDisconnect(handler: () => void): void;\n /**\n * Resolve once the transport has flushed what it buffered: `true` when the\n * client can take more, `false` when the stream ended or the client left.\n */\n waitForDrain(): Promise<boolean>;\n};\n\nexport function createStreamTransport(\n raw: ServerResponse,\n options: { disconnectMessage: string; onClientDisconnected?: () => void },\n): StreamTransport {\n let closed = false;\n let disconnected = false;\n const disconnectHandlers: Array<() => void> = [];\n const disconnectController = new AbortController();\n\n // Without this, background jobs keep writing to a dead socket after the\n // client drops. `close` also fires after a normal `end()`; `closed` is\n // already set by then.\n raw.on(\"close\", () => {\n if (closed) return;\n\n closed = true;\n disconnected = true;\n options.onClientDisconnected?.();\n disconnectController.abort(new DOMException(options.disconnectMessage, \"AbortError\"));\n\n // Each handler is isolated: this runs inside the socket's `close`\n // listener, so a throwing handler would otherwise become an uncaught\n // exception (taking the process down) and skip the handlers after it.\n for (const handler of disconnectHandlers) {\n try {\n handler();\n } catch (error) {\n log.error(\"http\", \"stream\", error as Error, { source: \"onDisconnect handler\" });\n }\n }\n });\n\n return {\n signal: disconnectController.signal,\n\n get closed() {\n return closed;\n },\n\n get disconnected() {\n return disconnected;\n },\n\n get backpressured() {\n return !closed && raw.writableNeedDrain;\n },\n\n finish() {\n closed = true;\n },\n\n onDisconnect(handler) {\n disconnectHandlers.push(handler);\n },\n\n waitForDrain() {\n if (closed) return Promise.resolve(false);\n\n if (!raw.writableNeedDrain) return Promise.resolve(true);\n\n return new Promise<boolean>((resolve) => {\n const settle = (drained: boolean) => {\n raw.off(\"drain\", onDrain);\n raw.off(\"close\", onClose);\n resolve(drained);\n };\n const onDrain = () => settle(!closed);\n const onClose = () => settle(false);\n\n raw.once(\"drain\", onDrain);\n raw.once(\"close\", onClose);\n });\n },\n };\n}\n\n/**\n * The most recent `limit` items, for logging/debugging a stream after it\n * ended. `limit` 0 (or missing/NaN) keeps nothing, so a long-lived stream\n * does not grow with its own history.\n */\nexport function createRetainedTail<T>(limit: number | undefined): {\n push(item: T): void;\n items: T[];\n} {\n const max = limit === undefined || Number.isNaN(limit) ? 0 : Math.max(0, Math.floor(limit));\n const items: T[] = [];\n\n return {\n items,\n push(item) {\n if (max === 0) return;\n\n items.push(item);\n\n if (items.length > max) items.shift();\n },\n };\n}\n"],"mappings":";;;AA4BA,SAAgB,sBACd,KACA,SACiB;CACjB,IAAI,SAAS;CACb,IAAI,eAAe;CACnB,MAAM,qBAAwC,CAAC;CAC/C,MAAM,uBAAuB,IAAI,gBAAgB;CAKjD,IAAI,GAAG,eAAe;EACpB,IAAI,QAAQ;EAEZ,SAAS;EACT,eAAe;EACf,QAAQ,uBAAuB;EAC/B,qBAAqB,MAAM,IAAI,aAAa,QAAQ,mBAAmB,YAAY,CAAC;EAKpF,KAAK,MAAM,WAAW,oBACpB,IAAI;GACF,QAAQ;EACV,SAAS,OAAO;GACd,IAAI,MAAM,QAAQ,UAAU,OAAgB,EAAE,QAAQ,uBAAuB,CAAC;EAChF;CAEJ,CAAC;CAED,OAAO;EACL,QAAQ,qBAAqB;EAE7B,IAAI,SAAS;GACX,OAAO;EACT;EAEA,IAAI,eAAe;GACjB,OAAO;EACT;EAEA,IAAI,gBAAgB;GAClB,OAAO,CAAC,UAAU,IAAI;EACxB;EAEA,SAAS;GACP,SAAS;EACX;EAEA,aAAa,SAAS;GACpB,mBAAmB,KAAK,OAAO;EACjC;EAEA,eAAe;GACb,IAAI,QAAQ,OAAO,QAAQ,QAAQ,KAAK;GAExC,IAAI,CAAC,IAAI,mBAAmB,OAAO,QAAQ,QAAQ,IAAI;GAEvD,OAAO,IAAI,SAAkB,YAAY;IACvC,MAAM,UAAU,YAAqB;KACnC,IAAI,IAAI,SAAS,OAAO;KACxB,IAAI,IAAI,SAAS,OAAO;KACxB,QAAQ,OAAO;IACjB;IACA,MAAM,gBAAgB,OAAO,CAAC,MAAM;IACpC,MAAM,gBAAgB,OAAO,KAAK;IAElC,IAAI,KAAK,SAAS,OAAO;IACzB,IAAI,KAAK,SAAS,OAAO;GAC3B,CAAC;EACH;CACF;AACF;;;;;;AAOA,SAAgB,mBAAsB,OAGpC;CACA,MAAM,MAAM,UAAU,UAAa,OAAO,MAAM,KAAK,IAAI,IAAI,KAAK,IAAI,GAAG,KAAK,MAAM,KAAK,CAAC;CAC1F,MAAM,QAAa,CAAC;CAEpB,OAAO;EACL;EACA,KAAK,MAAM;GACT,IAAI,QAAQ,GAAG;GAEf,MAAM,KAAK,IAAI;GAEf,IAAI,MAAM,SAAS,KAAK,MAAM,MAAM;EACtC;CACF;AACF"}
@@ -1,4 +1,4 @@
1
- //#region ../core/src/http/tracing/trace-id.d.ts
1
+ //#region ../../packages/core/src/http/tracing/trace-id.d.ts
2
2
  /**
3
3
  * Extract the trace id from a raw `traceparent` header value, or `undefined`
4
4
  * when the header is missing, malformed, or carries the reserved all-zero id.
@@ -1 +1 @@
1
- {"version":3,"file":"trace-id.d.mts","names":[],"sources":["../../../../../../../../core/src/http/tracing/trace-id.ts"],"mappings":";;AAkBA;;;iBAAgB,uBAAA,CAAwB,MAA0B;AAAA;AAkBlE;;;AAlBkE,iBAkBlD,aAAA,CAAc,iBAAA,sBAAuC,SAAiB"}
1
+ {"version":3,"file":"trace-id.d.mts","names":[],"sources":["../../../../../../../../../packages/core/src/http/tracing/trace-id.ts"],"mappings":";;AAkBA;;;iBAAgB,uBAAA,CAAwB,MAA0B;AAAA;AAkBlE;;;AAlBkE,iBAkBlD,aAAA,CAAc,iBAAA,sBAAuC,SAAiB"}
@@ -1,4 +1,4 @@
1
- //#region ../core/src/http/tracing/trace-id.ts
1
+ //#region ../../packages/core/src/http/tracing/trace-id.ts
2
2
  /**
3
3
  * W3C `traceparent` trace-id extraction.
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"trace-id.mjs","names":[],"sources":["../../../../../../../../core/src/http/tracing/trace-id.ts"],"sourcesContent":["/**\n * W3C `traceparent` trace-id extraction.\n *\n * Format: `version-traceid-parentid-flags`, e.g.\n * `00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01`. Only version\n * `00` is accepted (later versions may change the field layout, and nothing\n * in this codebase needs to interoperate with one yet); the trace id must be\n * 32 hex characters and not all zero (the spec reserves all-zero as \"no\n * trace\"). Anything else is treated as absent, not as an error — a\n * malformed header must never fail the request.\n */\nconst TRACEPARENT_PATTERN = /^00-([0-9a-f]{32})-[0-9a-f]{16}-[0-9a-f]{2}$/;\nconst ALL_ZERO_TRACE_ID = \"0\".repeat(32);\n\n/**\n * Extract the trace id from a raw `traceparent` header value, or `undefined`\n * when the header is missing, malformed, or carries the reserved all-zero id.\n */\nexport function parseTraceparentTraceId(header: string | undefined): string | undefined {\n if (!header) return undefined;\n\n const match = TRACEPARENT_PATTERN.exec(header.trim());\n\n if (!match) return undefined;\n\n const traceId = match[1];\n\n if (traceId === ALL_ZERO_TRACE_ID) return undefined;\n\n return traceId;\n}\n\n/**\n * Resolve the trace id to carry for a request: the inbound `traceparent`'s\n * trace id when valid, otherwise `requestId`.\n */\nexport function deriveTraceId(traceparentHeader: string | undefined, requestId: string): string {\n return parseTraceparentTraceId(traceparentHeader) ?? requestId;\n}\n"],"mappings":";;;;;;;;;;;;AAWA,MAAM,sBAAsB;AAC5B,MAAM,oBAAoB,IAAI,OAAO,EAAE;;;;;AAMvC,SAAgB,wBAAwB,QAAgD;CACtF,IAAI,CAAC,QAAQ,OAAO;CAEpB,MAAM,QAAQ,oBAAoB,KAAK,OAAO,KAAK,CAAC;CAEpD,IAAI,CAAC,OAAO,OAAO;CAEnB,MAAM,UAAU,MAAM;CAEtB,IAAI,YAAY,mBAAmB,OAAO;CAE1C,OAAO;AACT;;;;;AAMA,SAAgB,cAAc,mBAAuC,WAA2B;CAC9F,OAAO,wBAAwB,iBAAiB,KAAK;AACvD"}
1
+ {"version":3,"file":"trace-id.mjs","names":[],"sources":["../../../../../../../../../packages/core/src/http/tracing/trace-id.ts"],"sourcesContent":["/**\n * W3C `traceparent` trace-id extraction.\n *\n * Format: `version-traceid-parentid-flags`, e.g.\n * `00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01`. Only version\n * `00` is accepted (later versions may change the field layout, and nothing\n * in this codebase needs to interoperate with one yet); the trace id must be\n * 32 hex characters and not all zero (the spec reserves all-zero as \"no\n * trace\"). Anything else is treated as absent, not as an error — a\n * malformed header must never fail the request.\n */\nconst TRACEPARENT_PATTERN = /^00-([0-9a-f]{32})-[0-9a-f]{16}-[0-9a-f]{2}$/;\nconst ALL_ZERO_TRACE_ID = \"0\".repeat(32);\n\n/**\n * Extract the trace id from a raw `traceparent` header value, or `undefined`\n * when the header is missing, malformed, or carries the reserved all-zero id.\n */\nexport function parseTraceparentTraceId(header: string | undefined): string | undefined {\n if (!header) return undefined;\n\n const match = TRACEPARENT_PATTERN.exec(header.trim());\n\n if (!match) return undefined;\n\n const traceId = match[1];\n\n if (traceId === ALL_ZERO_TRACE_ID) return undefined;\n\n return traceId;\n}\n\n/**\n * Resolve the trace id to carry for a request: the inbound `traceparent`'s\n * trace id when valid, otherwise `requestId`.\n */\nexport function deriveTraceId(traceparentHeader: string | undefined, requestId: string): string {\n return parseTraceparentTraceId(traceparentHeader) ?? requestId;\n}\n"],"mappings":";;;;;;;;;;;;AAWA,MAAM,sBAAsB;AAC5B,MAAM,oBAAoB,IAAI,OAAO,EAAE;;;;;AAMvC,SAAgB,wBAAwB,QAAgD;CACtF,IAAI,CAAC,QAAQ,OAAO;CAEpB,MAAM,QAAQ,oBAAoB,KAAK,OAAO,KAAK,CAAC;CAEpD,IAAI,CAAC,OAAO,OAAO;CAEnB,MAAM,UAAU,MAAM;CAEtB,IAAI,YAAY,mBAAmB,OAAO;CAE1C,OAAO;AACT;;;;;AAMA,SAAgB,cAAc,mBAAuC,WAA2B;CAC9F,OAAO,wBAAwB,iBAAiB,KAAK;AACvD"}
@@ -1,6 +1,6 @@
1
1
  import { TracingContext, TracingHooks, TracingPhaseInfo, TracingRequestEndInfo } from "./tracing.type.mjs";
2
2
 
3
- //#region ../core/src/http/tracing/tracing-dispatcher.d.ts
3
+ //#region ../../packages/core/src/http/tracing/tracing-dispatcher.d.ts
4
4
  type ResolvedTracing = {
5
5
  configEnabled: boolean;
6
6
  hooks: TracingHooks[];
@@ -1 +1 @@
1
- {"version":3,"file":"tracing-dispatcher.d.mts","names":[],"sources":["../../../../../../../../core/src/http/tracing/tracing-dispatcher.ts"],"mappings":";;;KAmBK,eAAA;EACH,aAAA;EACA,KAAA,EAAO,YAAY;AAAA;;;;;;KAYT,oBAAA;EACV,OAAA;EACA,EAAA;EACA,MAAA;EACA,IAAA;EACA,KAAA;IAAU,IAAA;EAAA;AAAA;;;;;AAAI;iBAQA,oBAAA,IAAwB,eAAe;;iBAevC,gBAAA;;AAfuC;AAevD;;;;iBAYgB,oBAAA,CAAqB,KAAmB,EAAZ,YAAY;AAAxD;AAAA,iBAmBgB,0BAAA;;iBAQA,mBAAA,CAAoB,OAAA,EAAS,oBAAA,GAAuB,cAAc;AA3B1B;AAAA,iBA+ExC,oBAAA,CAAqB,GAAmB,EAAd,cAAc;;iBAexC,kBAAA,CAAmB,GAAA,EAAK,cAAA,EAAgB,MAAA,EAAQ,qBAAqB;;iBAerE,aAAA,CAAc,GAAA,EAAK,cAAA,EAAgB,KAAA,EAAO,gBAAgB"}
1
+ {"version":3,"file":"tracing-dispatcher.d.mts","names":[],"sources":["../../../../../../../../../packages/core/src/http/tracing/tracing-dispatcher.ts"],"mappings":";;;KAmBK,eAAA;EACH,aAAA;EACA,KAAA,EAAO,YAAY;AAAA;;;;;;KAYT,oBAAA;EACV,OAAA;EACA,EAAA;EACA,MAAA;EACA,IAAA;EACA,KAAA;IAAU,IAAA;EAAA;AAAA;;;;;AAAI;iBAQA,oBAAA,IAAwB,eAAe;;iBAevC,gBAAA;;AAfuC;AAevD;;;;iBAYgB,oBAAA,CAAqB,KAAmB,EAAZ,YAAY;AAAxD;AAAA,iBAmBgB,0BAAA;;iBAQA,mBAAA,CAAoB,OAAA,EAAS,oBAAA,GAAuB,cAAc;AA3B1B;AAAA,iBA+ExC,oBAAA,CAAqB,GAAmB,EAAd,cAAc;;iBAexC,kBAAA,CAAmB,GAAA,EAAK,cAAA,EAAgB,MAAA,EAAQ,qBAAqB;;iBAerE,aAAA,CAAc,GAAA,EAAK,cAAA,EAAgB,KAAA,EAAO,gBAAgB"}
@@ -1,7 +1,7 @@
1
1
  import config from "@mongez/config";
2
2
  import { log } from "@warlock.js/logger";
3
3
 
4
- //#region ../core/src/http/tracing/tracing-dispatcher.ts
4
+ //#region ../../packages/core/src/http/tracing/tracing-dispatcher.ts
5
5
  /**
6
6
  * Tracing hook dispatch.
7
7
  *
@@ -1 +1 @@
1
- {"version":3,"file":"tracing-dispatcher.mjs","names":[],"sources":["../../../../../../../../core/src/http/tracing/tracing-dispatcher.ts"],"sourcesContent":["/**\n * Tracing hook dispatch.\n *\n * `http.tracing` is resolved once — lazily, on first read, then cached for\n * the life of the process — never per request. Every call site gates on\n * `isTracingEnabled()` BEFORE doing anything else (building a context\n * object, calling `performance.now()`), so a disabled app pays exactly one\n * boolean check per call site and never allocates the attrs/context payload.\n */\nimport config from \"@mongez/config\";\nimport { log } from \"@warlock.js/logger\";\nimport type {\n HttpTracingConfig,\n TracingContext,\n TracingHooks,\n TracingPhaseInfo,\n TracingRequestEndInfo,\n} from \"./tracing.type\";\n\ntype ResolvedTracing = {\n configEnabled: boolean;\n hooks: TracingHooks[];\n};\n\nlet resolved: ResolvedTracing | undefined;\nlet tracingEnabled: boolean | undefined;\nlet runtimeHooks: TracingHooks[] = [];\n\n/**\n * Minimal request shape `buildTracingContext` needs. Kept structural (not a\n * `Request` import) so this module never creates an import cycle with\n * `../request`, which itself calls into this module.\n */\nexport type TracingContextSource = {\n traceId: string;\n id: string;\n method: string;\n path: string;\n route?: { path: string };\n};\n\n/**\n * Resolve `http.tracing` once per process and cache it. Safe to call from\n * every hot-path call site — after the first call this is a plain field\n * read, no config lookup.\n */\nexport function resolveTracingConfig(): ResolvedTracing {\n if (resolved) return resolved;\n\n const tracing = config.get(\"http.tracing\", {} as HttpTracingConfig) ?? {};\n\n resolved = {\n configEnabled: tracing.enabled === true,\n hooks: tracing.hooks ?? [],\n };\n tracingEnabled = resolved.configEnabled || runtimeHooks.length > 0;\n\n return resolved;\n}\n\n/** The single boolean check every instrumented call site guards on. */\nexport function isTracingEnabled(): boolean {\n if (tracingEnabled === undefined) resolveTracingConfig();\n\n return tracingEnabled === true;\n}\n\n/**\n * Register request tracing hooks independently of `http.tracing` config.\n *\n * Runtime hooks are called after configured hooks. Registering a hook enables\n * tracing immediately; the returned function removes that registration.\n */\nexport function registerTracingHooks(hooks: TracingHooks): () => void {\n runtimeHooks.push(hooks);\n tracingEnabled = true;\n\n let registered = true;\n\n return () => {\n if (!registered) return;\n\n registered = false;\n const index = runtimeHooks.indexOf(hooks);\n if (index !== -1) runtimeHooks.splice(index, 1);\n\n const { configEnabled } = resolveTracingConfig();\n tracingEnabled = configEnabled || runtimeHooks.length > 0;\n };\n}\n\n/** Test-only: resets resolved config and removes all runtime tracing hooks. */\nexport function resetTracingConfigForTests(): void {\n resolved = undefined;\n tracingEnabled = undefined;\n runtimeHooks = [];\n reportedHooks = new WeakMap();\n}\n\n/** Build the per-request context handed to every hook call. */\nexport function buildTracingContext(request: TracingContextSource): TracingContext {\n return {\n traceId: request.traceId,\n requestId: request.id,\n method: request.method,\n route: request.route?.path,\n path: request.path,\n };\n}\n\n/**\n * Tracks which (hook, verb) pairs have already been reported, so a hook that\n * throws on every request is reported to the error sink exactly once per\n * process rather than flooding it.\n */\nlet reportedHooks = new WeakMap<TracingHooks, Set<string>>();\n\nfunction reportHookErrorOnce(hook: TracingHooks, verb: string, error: unknown): void {\n let reportedVerbs = reportedHooks.get(hook);\n\n if (!reportedVerbs) {\n reportedVerbs = new Set();\n reportedHooks.set(hook, reportedVerbs);\n }\n\n if (reportedVerbs.has(verb)) return;\n\n reportedVerbs.add(verb);\n\n // Never swallow the only copy of an error — but a throwing hook must never\n // break the request it was only meant to observe, so this is reported, not\n // re-thrown.\n log.error(\"http\", \"tracing-hook\", error, { hook: verb });\n}\n\nfunction safeInvoke<Verb extends keyof TracingHooks>(\n hook: TracingHooks,\n verb: Verb,\n invoke: (fn: NonNullable<TracingHooks[Verb]>) => void,\n): void {\n const fn = hook[verb];\n\n if (!fn) return;\n\n try {\n invoke(fn as NonNullable<TracingHooks[Verb]>);\n } catch (error) {\n reportHookErrorOnce(hook, verb, error);\n }\n}\n\n/** Dispatch `onRequestStart` to every configured and runtime hook. No-op when disabled. */\nexport function dispatchRequestStart(ctx: TracingContext): void {\n if (!isTracingEnabled()) return;\n\n const { hooks } = resolveTracingConfig();\n\n for (const hook of hooks) {\n safeInvoke(hook, \"onRequestStart\", (fn) => fn(ctx));\n }\n\n for (const hook of runtimeHooks) {\n safeInvoke(hook, \"onRequestStart\", (fn) => fn(ctx));\n }\n}\n\n/** Dispatch `onRequestEnd` to every configured and runtime hook. No-op when disabled. */\nexport function dispatchRequestEnd(ctx: TracingContext, result: TracingRequestEndInfo): void {\n if (!isTracingEnabled()) return;\n\n const { hooks } = resolveTracingConfig();\n\n for (const hook of hooks) {\n safeInvoke(hook, \"onRequestEnd\", (fn) => fn(ctx, result));\n }\n\n for (const hook of runtimeHooks) {\n safeInvoke(hook, \"onRequestEnd\", (fn) => fn(ctx, result));\n }\n}\n\n/** Dispatch `onPhase` to every configured and runtime hook. No-op when disabled. */\nexport function dispatchPhase(ctx: TracingContext, phase: TracingPhaseInfo): void {\n if (!isTracingEnabled()) return;\n\n const { hooks } = resolveTracingConfig();\n const phaseInfo =\n phase.startedAt === undefined\n ? {\n ...phase,\n startedAt: performance.timeOrigin + performance.now() - phase.durationMs,\n }\n : phase;\n\n for (const hook of hooks) {\n safeInvoke(hook, \"onPhase\", (fn) => fn(ctx, phaseInfo));\n }\n\n for (const hook of runtimeHooks) {\n safeInvoke(hook, \"onPhase\", (fn) => fn(ctx, phaseInfo));\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"tracing-dispatcher.mjs","names":[],"sources":["../../../../../../../../../packages/core/src/http/tracing/tracing-dispatcher.ts"],"sourcesContent":["/**\n * Tracing hook dispatch.\n *\n * `http.tracing` is resolved once — lazily, on first read, then cached for\n * the life of the process — never per request. Every call site gates on\n * `isTracingEnabled()` BEFORE doing anything else (building a context\n * object, calling `performance.now()`), so a disabled app pays exactly one\n * boolean check per call site and never allocates the attrs/context payload.\n */\nimport config from \"@mongez/config\";\nimport { log } from \"@warlock.js/logger\";\nimport type {\n HttpTracingConfig,\n TracingContext,\n TracingHooks,\n TracingPhaseInfo,\n TracingRequestEndInfo,\n} from \"./tracing.type\";\n\ntype ResolvedTracing = {\n configEnabled: boolean;\n hooks: TracingHooks[];\n};\n\nlet resolved: ResolvedTracing | undefined;\nlet tracingEnabled: boolean | undefined;\nlet runtimeHooks: TracingHooks[] = [];\n\n/**\n * Minimal request shape `buildTracingContext` needs. Kept structural (not a\n * `Request` import) so this module never creates an import cycle with\n * `../request`, which itself calls into this module.\n */\nexport type TracingContextSource = {\n traceId: string;\n id: string;\n method: string;\n path: string;\n route?: { path: string };\n};\n\n/**\n * Resolve `http.tracing` once per process and cache it. Safe to call from\n * every hot-path call site — after the first call this is a plain field\n * read, no config lookup.\n */\nexport function resolveTracingConfig(): ResolvedTracing {\n if (resolved) return resolved;\n\n const tracing = config.get(\"http.tracing\", {} as HttpTracingConfig) ?? {};\n\n resolved = {\n configEnabled: tracing.enabled === true,\n hooks: tracing.hooks ?? [],\n };\n tracingEnabled = resolved.configEnabled || runtimeHooks.length > 0;\n\n return resolved;\n}\n\n/** The single boolean check every instrumented call site guards on. */\nexport function isTracingEnabled(): boolean {\n if (tracingEnabled === undefined) resolveTracingConfig();\n\n return tracingEnabled === true;\n}\n\n/**\n * Register request tracing hooks independently of `http.tracing` config.\n *\n * Runtime hooks are called after configured hooks. Registering a hook enables\n * tracing immediately; the returned function removes that registration.\n */\nexport function registerTracingHooks(hooks: TracingHooks): () => void {\n runtimeHooks.push(hooks);\n tracingEnabled = true;\n\n let registered = true;\n\n return () => {\n if (!registered) return;\n\n registered = false;\n const index = runtimeHooks.indexOf(hooks);\n if (index !== -1) runtimeHooks.splice(index, 1);\n\n const { configEnabled } = resolveTracingConfig();\n tracingEnabled = configEnabled || runtimeHooks.length > 0;\n };\n}\n\n/** Test-only: resets resolved config and removes all runtime tracing hooks. */\nexport function resetTracingConfigForTests(): void {\n resolved = undefined;\n tracingEnabled = undefined;\n runtimeHooks = [];\n reportedHooks = new WeakMap();\n}\n\n/** Build the per-request context handed to every hook call. */\nexport function buildTracingContext(request: TracingContextSource): TracingContext {\n return {\n traceId: request.traceId,\n requestId: request.id,\n method: request.method,\n route: request.route?.path,\n path: request.path,\n };\n}\n\n/**\n * Tracks which (hook, verb) pairs have already been reported, so a hook that\n * throws on every request is reported to the error sink exactly once per\n * process rather than flooding it.\n */\nlet reportedHooks = new WeakMap<TracingHooks, Set<string>>();\n\nfunction reportHookErrorOnce(hook: TracingHooks, verb: string, error: unknown): void {\n let reportedVerbs = reportedHooks.get(hook);\n\n if (!reportedVerbs) {\n reportedVerbs = new Set();\n reportedHooks.set(hook, reportedVerbs);\n }\n\n if (reportedVerbs.has(verb)) return;\n\n reportedVerbs.add(verb);\n\n // Never swallow the only copy of an error — but a throwing hook must never\n // break the request it was only meant to observe, so this is reported, not\n // re-thrown.\n log.error(\"http\", \"tracing-hook\", error, { hook: verb });\n}\n\nfunction safeInvoke<Verb extends keyof TracingHooks>(\n hook: TracingHooks,\n verb: Verb,\n invoke: (fn: NonNullable<TracingHooks[Verb]>) => void,\n): void {\n const fn = hook[verb];\n\n if (!fn) return;\n\n try {\n invoke(fn as NonNullable<TracingHooks[Verb]>);\n } catch (error) {\n reportHookErrorOnce(hook, verb, error);\n }\n}\n\n/** Dispatch `onRequestStart` to every configured and runtime hook. No-op when disabled. */\nexport function dispatchRequestStart(ctx: TracingContext): void {\n if (!isTracingEnabled()) return;\n\n const { hooks } = resolveTracingConfig();\n\n for (const hook of hooks) {\n safeInvoke(hook, \"onRequestStart\", (fn) => fn(ctx));\n }\n\n for (const hook of runtimeHooks) {\n safeInvoke(hook, \"onRequestStart\", (fn) => fn(ctx));\n }\n}\n\n/** Dispatch `onRequestEnd` to every configured and runtime hook. No-op when disabled. */\nexport function dispatchRequestEnd(ctx: TracingContext, result: TracingRequestEndInfo): void {\n if (!isTracingEnabled()) return;\n\n const { hooks } = resolveTracingConfig();\n\n for (const hook of hooks) {\n safeInvoke(hook, \"onRequestEnd\", (fn) => fn(ctx, result));\n }\n\n for (const hook of runtimeHooks) {\n safeInvoke(hook, \"onRequestEnd\", (fn) => fn(ctx, result));\n }\n}\n\n/** Dispatch `onPhase` to every configured and runtime hook. No-op when disabled. */\nexport function dispatchPhase(ctx: TracingContext, phase: TracingPhaseInfo): void {\n if (!isTracingEnabled()) return;\n\n const { hooks } = resolveTracingConfig();\n const phaseInfo =\n phase.startedAt === undefined\n ? {\n ...phase,\n startedAt: performance.timeOrigin + performance.now() - phase.durationMs,\n }\n : phase;\n\n for (const hook of hooks) {\n safeInvoke(hook, \"onPhase\", (fn) => fn(ctx, phaseInfo));\n }\n\n for (const hook of runtimeHooks) {\n safeInvoke(hook, \"onPhase\", (fn) => fn(ctx, phaseInfo));\n }\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- //#region ../core/src/http/tracing/tracing.type.d.ts
1
+ //#region ../../packages/core/src/http/tracing/tracing.type.d.ts
2
2
  /**
3
3
  * Vendor-neutral request-tracing hook surface.
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"tracing.type.d.mts","names":[],"sources":["../../../../../../../../core/src/http/tracing/tracing.type.ts"],"mappings":";;AAkBA;;;;;;;;;;AAUM;AAIN;;;;;KAdY,cAAA;EAkBV;;;;EAbA,OAAA,UAkBU;EAhBV,SAAA;EACA,MAAA;EACA,KAAA;EACA,IAAA;AAAA;;KAIU,gBAAA;EACV,IAAA;EACA,UAAA,UAoBsB;EAlBtB,SAAA;EACA,KAAA,GAAQ,MAAM;AAAA;;KAIJ,qBAAA;EACV,MAAA;EACA,UAAA;EACA,KAAA;AAAA;;;;;;;;KAUU,YAAA;EACV,cAAA,EAAgB,GAAA,EAAK,cAAA;EACrB,YAAA,EAAc,GAAA,EAAK,cAAA,EAAgB,MAAA,EAAQ,qBAAA;EAC3C,OAAA,EAAS,GAAA,EAAK,cAAA,EAAgB,KAAA,EAAO,gBAAA;AAAA;;AAAgB;AASvD;;;;KAAY,iBAAA;EAGV,qBADA,OAAA;EACA,KAAA,GAAQ,YAAY;AAAA"}
1
+ {"version":3,"file":"tracing.type.d.mts","names":[],"sources":["../../../../../../../../../packages/core/src/http/tracing/tracing.type.ts"],"mappings":";;AAkBA;;;;;;;;;;AAUM;AAIN;;;;;KAdY,cAAA;EAkBV;;;;EAbA,OAAA,UAkBU;EAhBV,SAAA;EACA,MAAA;EACA,KAAA;EACA,IAAA;AAAA;;KAIU,gBAAA;EACV,IAAA;EACA,UAAA,UAoBsB;EAlBtB,SAAA;EACA,KAAA,GAAQ,MAAM;AAAA;;KAIJ,qBAAA;EACV,MAAA;EACA,UAAA;EACA,KAAA;AAAA;;;;;;;;KAUU,YAAA;EACV,cAAA,EAAgB,GAAA,EAAK,cAAA;EACrB,YAAA,EAAc,GAAA,EAAK,cAAA,EAAgB,MAAA,EAAQ,qBAAA;EAC3C,OAAA,EAAS,GAAA,EAAK,cAAA,EAAgB,KAAA,EAAO,gBAAA;AAAA;;AAAgB;AASvD;;;;KAAY,iBAAA;EAGV,qBADA,OAAA;EACA,KAAA,GAAQ,YAAY;AAAA"}
@@ -1,13 +1,17 @@
1
1
  import { HttpRateLimitConfig } from "./build-rate-limit-options.mjs";
2
+ import { HttpLoggingConfig } from "./request-log-snapshot.mjs";
2
3
  import { Response } from "./response.mjs";
3
4
  import { CspConfig } from "./csp.mjs";
5
+ import { HttpErrorMapper } from "./error-mapper.mjs";
4
6
  import { HttpTracingConfig } from "./tracing/tracing.type.mjs";
5
7
  import { Middleware } from "../router/types.mjs";
8
+ import { FastifyHttpOptions } from "fastify";
6
9
  import { CookieSerializeOptions } from "@fastify/cookie";
7
10
  import { FastifyCorsOptions } from "@fastify/cors";
11
+ import { Server } from "node:http";
8
12
  import React from "react";
9
13
 
10
- //#region ../core/src/http/types.d.ts
14
+ //#region ../../packages/core/src/http/types.d.ts
11
15
  type RequestEvent = "executingMiddleware" | "executedMiddleware" | "executingAction" | "executedAction";
12
16
  /**
13
17
  * Private, server-only, per-request data bag — `request.locals`.
@@ -175,10 +179,39 @@ interface PartialMiddleware {
175
179
  */
176
180
  middleware: Middleware[];
177
181
  }
182
+ /**
183
+ * Options for the underlying Fastify server, passed through by
184
+ * `http.serverOptions`. Includes `http`, the options Node's
185
+ * `http.createServer()` receives (for example `maxHeaderSize`).
186
+ *
187
+ * Framework-owned settings (`trustProxy`, `bodyLimit`,
188
+ * `gracefulShutdown.forceCloseConnections`) have their own `http.*` keys;
189
+ * setting them here as well overrides those keys.
190
+ */
191
+ type HttpServerOptions = FastifyHttpOptions<Server>;
178
192
  /**
179
193
  * Http Configurations list
180
194
  */
181
195
  interface HttpConfigurations {
196
+ /**
197
+ * Options for the underlying Fastify server, applied when it is created.
198
+ *
199
+ * Node's own HTTP server options go under `http`. The request header size
200
+ * limit, for example, is `serverOptions.http.maxHeaderSize` (Node's default
201
+ * is 16KB); a top-level `maxHeaderSize` is not a Fastify option and is
202
+ * ignored.
203
+ *
204
+ * @example
205
+ * ```ts
206
+ * const httpConfigurations: HttpConfigurations = {
207
+ * serverOptions: {
208
+ * http: { maxHeaderSize: 32 * 1024 },
209
+ * keepAliveTimeout: 10_000,
210
+ * },
211
+ * };
212
+ * ```
213
+ */
214
+ serverOptions?: HttpServerOptions;
182
215
  /**
183
216
  * Status used when a Cascade model fails validation during a database write.
184
217
  * The default is 500 because request input has already been validated before
@@ -188,6 +221,13 @@ interface HttpConfigurations {
188
221
  * @default 500
189
222
  */
190
223
  modelValidationErrorStatus?: number;
224
+ /**
225
+ * Map errors that are not an `HttpError` to an HTTP status (and optional
226
+ * message/payload), so domain errors shared with non-HTTP processes need not
227
+ * extend Core's error classes. Return `undefined` to keep the default
228
+ * handling. See {@link HttpErrorMapper}.
229
+ */
230
+ errorMapper?: HttpErrorMapper;
191
231
  /**
192
232
  * Server port
193
233
  */
@@ -196,6 +236,13 @@ interface HttpConfigurations {
196
236
  * Log requests
197
237
  */
198
238
  log?: boolean;
239
+ /**
240
+ * What request log entries carry of each request's input. Entries carry a
241
+ * bounded `RequestLogSnapshot`, never the `Request`/`Response`
242
+ * instances; credential-bearing query values are masked in its URL.
243
+ * A route's own `logging` option overrides these defaults.
244
+ */
245
+ logging?: HttpLoggingConfig;
199
246
  /**
200
247
  * Cors configurations
201
248
  */
@@ -435,32 +482,110 @@ interface HttpConfigurations {
435
482
  */
436
483
  tracing?: HttpTracingConfig;
437
484
  }
485
+ /**
486
+ * Options for `response.stream()`.
487
+ */
488
+ type ResponseStreamOptions = {
489
+ /**
490
+ * How many of the most recent chunks (from `send()`, `write()` and
491
+ * `render()`) to keep on `response.body` after `end()`, for logging and
492
+ * debugging. Written chunks are otherwise not kept, so a long-lived stream
493
+ * does not grow with its own history.
494
+ *
495
+ * @default 0
496
+ */
497
+ retainChunks?: number;
498
+ };
438
499
  type ResponseStreamController = {
439
500
  /**
440
- * Send data to the client
501
+ * Send data to the client. Does not wait for the client; for long-lived or
502
+ * high-volume streams use `write()` (or `drain()`) so the producer slows
503
+ * down to the client's pace instead of buffering. A silent no-op after the
504
+ * client disconnected; throws after `end()`.
441
505
  */
442
- send: (data: string) => void;
506
+ send: (data: string | Uint8Array) => void;
507
+ /**
508
+ * Send data and wait until the transport can take more. Resolves `true`
509
+ * when it can, `false` when the stream ended or the client disconnected —
510
+ * stop producing then.
511
+ */
512
+ write: (data: string | Uint8Array) => Promise<boolean>;
443
513
  /**
444
514
  * Render a view and send it to the client
445
515
  */
446
516
  render: (view: React.ReactNode) => void;
517
+ /**
518
+ * Wait until output buffered for the client has been flushed. Resolves
519
+ * `true` immediately when nothing is backed up, `false` when the stream
520
+ * ended or the client disconnected.
521
+ */
522
+ drain: () => Promise<boolean>;
447
523
  /**
448
524
  * End the stream
449
525
  */
450
526
  end: () => void;
451
527
  /**
452
- * Detect whether stream is ended
528
+ * Register a handler to be called when the client disconnects
529
+ */
530
+ onDisconnect: (handler: () => void) => ResponseStreamController;
531
+ /**
532
+ * Aborted when the client disconnects (not when `end()` is called). Pass it
533
+ * to the work feeding the stream.
534
+ */
535
+ signal: AbortSignal;
536
+ /**
537
+ * Whether the transport is currently holding more than its high-water mark.
538
+ */
539
+ backpressured: boolean;
540
+ /**
541
+ * Detect whether stream is ended (by `end()` or a client disconnect)
453
542
  */
454
543
  ended: boolean;
455
544
  };
545
+ /**
546
+ * Options for `response.sse()`.
547
+ */
548
+ type ResponseSSEOptions = {
549
+ /**
550
+ * How many of the most recent events to keep on `response.body` after
551
+ * `end()`, for logging and debugging. Sent events are otherwise not kept,
552
+ * so a long-lived stream does not grow with its own history.
553
+ *
554
+ * @default 0
555
+ */
556
+ retainEvents?: number;
557
+ };
456
558
  type ResponseSSEController = {
457
559
  /**
458
- * Send an SSE event to the client
560
+ * Send an SSE event to the client. Does not wait for the client; for
561
+ * long-lived or high-volume streams use `write()` (or `drain()`) so the
562
+ * producer slows down to the client's pace instead of buffering.
459
563
  * @param event - Event name
460
564
  * @param data - Event data (will be JSON stringified)
461
565
  * @param id - Optional event ID for client-side Last-Event-ID tracking
462
566
  */
463
567
  send: (event: string, data: any, id?: string) => ResponseSSEController;
568
+ /**
569
+ * Send an SSE event and wait until the transport can take more.
570
+ * Resolves `true` when it can, `false` when the stream ended or the client
571
+ * disconnected — stop producing then.
572
+ */
573
+ write: (event: string, data: any, id?: string) => Promise<boolean>;
574
+ /**
575
+ * Wait until output buffered for the client has been flushed. Resolves
576
+ * `true` immediately when nothing is backed up, `false` when the stream
577
+ * ended or the client disconnected.
578
+ */
579
+ drain: () => Promise<boolean>;
580
+ /**
581
+ * Aborted when the client disconnects (not when `end()` is called). Pass it
582
+ * to the work feeding the stream.
583
+ */
584
+ signal: AbortSignal;
585
+ /**
586
+ * Whether the transport is currently holding more than its high-water mark.
587
+ */
588
+ backpressured: boolean;
464
589
  /**
465
590
  * Send a comment to keep the connection alive (invisible to client)
466
591
  */
@@ -480,5 +605,5 @@ type ResponseSSEController = {
480
605
  ended: boolean;
481
606
  };
482
607
  //#endregion
483
- export { DecodedAccessToken, HttpConfigurations, PartialMiddleware, RequestEvent, RequestLocals, ResponseEvent, ResponseSSEController, ResponseStreamController, ReturnedResponse };
608
+ export { DecodedAccessToken, HttpConfigurations, HttpServerOptions, PartialMiddleware, RequestEvent, RequestLocals, ResponseEvent, ResponseSSEController, ResponseSSEOptions, ResponseStreamController, ResponseStreamOptions, ReturnedResponse };
484
609
  //# sourceMappingURL=types.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.mts","names":[],"sources":["../../../../../../../core/src/http/types.ts"],"mappings":";;;;;;;;;;KASY,YAAA;;;AAAZ;;;;AAAwB;AA0BxB;;;;AAca;AAeb;;;;AACU;AAMV;;;;;;UApCiB,aAAA;EAoDL;;;;;;;;;;;;;EAtCV,WAAW;AAAA;;;;AAmDY;AAiEzB;;;;;;;;KArGY,kBAAA;EACV,QAAQ;AAAA;;;;KAME,gBAAA;;;;AAIR;;;;EAIA,OAAA,CAAQ,QAAA;;;;EAIR,MAAA;;;;EAIA,OAAA,CAAQ,MAAA;;;;;;;;EAQR,OAAA;;;;KAKQ,aAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqViB;AAG7B;;;;;;;;;;;;;;AAmBA;;;AAAA;;;;;;;;;;;;UA1SiB,iBAAA;EAqTe;;;;EAhT9B,MAAA;EAyTuC;;;AAIlC;;EAvTL,WAAA;;;;EAIA,UAAA,EAAY,UAAU;AAAA;;;;UAMP,kBAAA;;;;;;;;;EASf,0BAAA;;;;EAIA,IAAA;;;;EAIA,GAAA;;;;EAIA,IAAA,GAAO,kBAAA;;;;;;EAMP,eAAA;;;;;EAKA,SAAA;;;;;;IAME,KAAA;;;;;;IAMA,MAAA;;;;;;IAMA,SAAA;EAAA;;;;;;;;;;EAWF,SAAA;;;;;;;;;;;;;;;;;;;;EAoBA,UAAA,mCAA6C,OAAA,UAAiB,GAAA;EAC9D,OAAA;;;;IAIE,MAAA;;;;IAIA,OAAA,GAAU,sBAAA;EAAA;;;;;;;;;;EAWZ,GAAA,GAAM,SAAA;;;;EAIN,SAAA,GAAY,mBAAA;;;;;;;;EAQZ,SAAA;;;;;;IAME,MAAA;;;;IAIA,SAAA;;;;;;;IAOA,OAAA;EAAA;;;;EAKF,WAAA;;;;;;IAME,GAAA;;;;;;IAMA,UAAA;;;;;;;IAOA,OAAA;;;;IAIA,MAAA;EAAA;;;;EAKF,WAAA;;;;;;;IAOE,OAAA;;;;;;IAMA,SAAA;;;;;;IAMA,UAAA;EAAA;;;;EAKF,gBAAA;;;;;;;IAOE,OAAA;;;;;;;;IAQA,qBAAA;EAAA;;;;EAKF,MAAA;;;;;;IAME,OAAA;;;;;;;IAOA,IAAA;;;;;;;IAOA,aAAA;EAAA;;;;EAKF,IAAA;;;;EAIA,UAAA;;;;IAIE,GAAA,GAAM,UAAA;;;;IAIN,IAAA,GAAO,iBAAA;;;;IAIP,MAAA,GAAS,iBAAA;EAAA;;;;;;EAOX,OAAA,GAAU,iBAAA;AAAA;AAAA,KAGA,wBAAA;;;;EAIV,IAAA,GAAO,IAAA;;;;EAIP,MAAA,GAAS,IAAA,EAAM,KAAA,CAAM,SAAS;;;;EAI9B,GAAA;;;;EAIA,KAAA;AAAA;AAAA,KAGU,qBAAA;;;;;;;EAOV,IAAA,GAAO,KAAA,UAAe,IAAA,OAAW,EAAA,cAAgB,qBAAA;;;;EAIjD,OAAA,GAAU,OAAA,aAAoB,qBAAA;;;;EAI9B,GAAA,QAAW,qBAAA;;;;;EAKX,YAAA,GAAe,OAAA,iBAAwB,qBAAA;;;;EAIvC,KAAA;AAAA"}
1
+ {"version":3,"file":"types.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/http/types.ts"],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import { StorageFile } from "../storage/storage-file.mjs";
2
- import { StorageDriverName } from "../storage/types.mjs";
3
2
  import { ScopedStorage } from "../storage/scoped-storage.mjs";
3
+ import { StorageDriverName } from "../storage/types.mjs";
4
4
  import { storage } from "../storage/storage.mjs";
5
5
  import { Image, ImageFormat, ImageTransformOptions } from "../image/image.mjs";
6
6
  import { ImageTransformCallback, PrefixConfig, SaveAsOptions, SaveOptions, UploadedFileImageOptions } from "./uploads-types.mjs";
7
7
  import { MultipartFile } from "@fastify/multipart";
8
8
 
9
- //#region ../core/src/http/uploaded-file.d.ts
9
+ //#region ../../packages/core/src/http/uploaded-file.d.ts
10
10
  type UploadedFileMetadata = {
11
11
  name: string;
12
12
  mimeType: string;
@@ -1 +1 @@
1
- {"version":3,"file":"uploaded-file.d.mts","names":[],"sources":["../../../../../../../core/src/http/uploaded-file.ts"],"mappings":";;;;;;;;;KAiBK,oBAAA;EACH,IAAA;EACA,QAAA;EACA,SAAA;EACA,IAAA;EACA,KAAA;EACA,MAAA;AAAA;;;;;;;;;KAWU,gBAAA;EACV,IAAA;EACA,QAAA;EACA,SAAA;EACA,OAAA;EACA,OAAA;EACA,OAAA;EACA,IAAA;AAAA;;;;KAMU,qBAAA;EANV;;AAAI;AAMN;;EAME,gBAAA;EAN+B;;;;;EAa/B,iBAAA;EAsCW;;;;;EA/BX,OAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA+BW,YAAA;EAAA,mBA4C2B,QAAA,EAAU,aAAA;EA4ff;;;;EAAA,UAniBvB,mBAAA,GAAsB,MAAA;EAylBI;;;;;EAllB7B,IAAA;EAgC+B;;;;EAAA,UA1B5B,QAAA,EAAU,aAAA;EAAV;;;;EAAA,UAMA,YAAA,GAAe,WAAA;EAMA;;;;EAAA,UAAf,aAAA,EAAe,wBAAA;EAcuB;;;;EAAA,UARtC,gBAAA,GAAmB,qBAAA,GAAwB,sBAAA;EAgDxC;;;;;;cAxCyB,QAAA,EAAU,aAAA;EAwEjB;;;;;EAAA,IAzDpB,IAAA;EA8GA;;;;;EAAA,IArGA,QAAA;EAsKJ;;;;;EAAA,IA7JI,SAAA;EA6LC;;;EAtLC,QAAA,IAAY,OAAA,CAAQ,oBAAA;EA2OgB;;;;;EArNpC,IAAA,IAAQ,OAAA;EAwPM;;;;;EA9Od,MAAA,IAAU,OAAA,CAAQ,MAAA;EAwQwB;;;EAAA,IAxP5C,OAAA;EAmT0B;;;EAAA,IA5S1B,OAAA;EA0US;;;EAAA,IAnUT,OAAA;EAmU6D;;;;;;;;;;;;;;;EA5SjE,GAAA,CAAI,MAAA,EAAQ,iBAAA;EAiaT;;;;;;;;;;;;;;;EAzYH,MAAA,CAAO,KAAA,UAAe,MAAA;EA+eR;;;;;;;;;;;;;;EA5dd,OAAA,CAAQ,KAAA;;;;;;;;;;;;;;;EAsBR,MAAA,CAAO,MAAA,EAAQ,WAAA;;;;;;;;;;;;EAgBf,MAAA,CAAO,OAAA;;;;;;;;;;;;EAgBP,IAAA,CAAK,KAAA;;;;;;;;;;;EAkBL,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmCA,SAAA,CAAU,MAAA,EAAQ,qBAAA,GAAwB,sBAAA;;;;;;;;;;;;;;;;;;EAsBpC,OAAA,IAAW,OAAA,CAAQ,KAAA;;;;;;EAanB,UAAA,IAAc,OAAA;IAAU,KAAA;IAAgB,MAAA;EAAA;;;;;;;;;;;;;;;EA0BxC,QAAA,CAAS,OAAA,EAAS,qBAAA,GAAwB,OAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2D1C,IAAA,CAAK,SAAA,UAAmB,OAAA,GAAU,WAAA,GAAc,OAAA,CAAQ,WAAA;;;;;;;;;;;;;;;;;EA8BxD,MAAA,CAAO,QAAA,UAAkB,OAAA,GAAU,aAAA,GAAgB,OAAA,CAAQ,WAAA;;;;;;MAc7D,WAAA,IAAe,WAAA;;;;;YAYV,cAAA,CACd,QAAA,UACA,MAAA,GAAS,iBAAA,GACR,OAAA,CAAQ,WAAA;;;;;YA0BK,mBAAA,IAAuB,OAAA,CAAQ,MAAA;;;;;YA4BrC,iBAAA,CAAkB,GAAA,EAAK,KAAA,GAAQ,KAAA;;;;;YAkC/B,aAAA;;;;;YAQA,cAAA,CAAe,MAAA,GAAS,iBAAA,GAAoB,aAAA,UAAuB,OAAA;;;;;YAYnE,eAAA,CAAgB,OAAA,GAAU,WAAA;;;;;YAwB1B,aAAA,CAAc,MAAA,GAAS,YAAA;;;;;YAiDvB,gBAAA,CAAiB,MAAA,UAAgB,EAAA;;;;;YASjC,UAAA,CAAW,MAAA;;;;;YAQX,aAAA,CAAc,SAAA,UAAmB,MAAA,UAAgB,QAAA;;;;;YAiBjD,iBAAA;;;;;YAiBA,gBAAA;;;;;YAgBA,uBAAA,CAAwB,QAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6C3B,MAAA,IAAU,gBAAA;;;;;;;EAkBJ,QAAA,IAAY,OAAA;AAAA"}
1
+ {"version":3,"file":"uploaded-file.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/http/uploaded-file.ts"],"mappings":"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"}
@@ -1,14 +1,14 @@
1
1
  import { sanitizePath } from "../utils/paths.mjs";
2
+ import { uploadsConfig } from "./uploads-config.mjs";
2
3
  import { storage } from "../storage/storage.mjs";
3
4
  import "../storage/index.mjs";
4
5
  import { Image } from "../image/image.mjs";
5
6
  import "../image/index.mjs";
6
- import { uploadsConfig } from "./uploads-config.mjs";
7
7
  import path from "path";
8
8
  import { Random } from "@mongez/reinforcements";
9
9
  import dayjs from "dayjs";
10
10
 
11
- //#region ../core/src/http/uploaded-file.ts
11
+ //#region ../../packages/core/src/http/uploaded-file.ts
12
12
  /**
13
13
  * UploadedFile - Handles multipart file uploads with storage and image integration
14
14
  *