@warlock.js/core 5.29.0 → 5.31.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 (1818) hide show
  1. package/CHANGELOG.md +168 -4
  2. package/README.md +28 -23
  3. package/bin/source-load-hook.mjs +63 -0
  4. package/bin/warlock.js +102 -42
  5. package/esm/application/app.d.mts +1 -1
  6. package/esm/application/app.d.mts.map +1 -1
  7. package/esm/application/app.mjs +1 -1
  8. package/esm/application/app.mjs.map +1 -1
  9. package/esm/application/application-config-types.d.mts +1 -1
  10. package/esm/application/application-config-types.d.mts.map +1 -1
  11. package/esm/application/application.d.mts +1 -1
  12. package/esm/application/application.d.mts.map +1 -1
  13. package/esm/application/application.mjs +1 -1
  14. package/esm/application/application.mjs.map +1 -1
  15. package/esm/application/boot-signal.d.mts +1 -1
  16. package/esm/application/boot-signal.d.mts.map +1 -1
  17. package/esm/application/boot-signal.mjs +1 -1
  18. package/esm/application/boot-signal.mjs.map +1 -1
  19. package/esm/application/public-url.d.mts +1 -1
  20. package/esm/application/public-url.d.mts.map +1 -1
  21. package/esm/application/public-url.mjs +1 -1
  22. package/esm/application/public-url.mjs.map +1 -1
  23. package/esm/application/roles.d.mts +1 -1
  24. package/esm/application/roles.d.mts.map +1 -1
  25. package/esm/application/roles.mjs +1 -1
  26. package/esm/application/roles.mjs.map +1 -1
  27. package/esm/benchmark/benchmark-snapshots.d.mts +1 -1
  28. package/esm/benchmark/benchmark-snapshots.d.mts.map +1 -1
  29. package/esm/benchmark/benchmark-snapshots.mjs +1 -1
  30. package/esm/benchmark/benchmark-snapshots.mjs.map +1 -1
  31. package/esm/benchmark/benchmark.d.mts +1 -1
  32. package/esm/benchmark/benchmark.d.mts.map +1 -1
  33. package/esm/benchmark/benchmark.mjs +1 -1
  34. package/esm/benchmark/benchmark.mjs.map +1 -1
  35. package/esm/benchmark/channels/console.channel.d.mts +1 -1
  36. package/esm/benchmark/channels/console.channel.d.mts.map +1 -1
  37. package/esm/benchmark/channels/console.channel.mjs +1 -1
  38. package/esm/benchmark/channels/console.channel.mjs.map +1 -1
  39. package/esm/benchmark/channels/noop.channel.d.mts +1 -1
  40. package/esm/benchmark/channels/noop.channel.d.mts.map +1 -1
  41. package/esm/benchmark/channels/noop.channel.mjs +1 -1
  42. package/esm/benchmark/channels/noop.channel.mjs.map +1 -1
  43. package/esm/benchmark/profiler.d.mts +1 -1
  44. package/esm/benchmark/profiler.d.mts.map +1 -1
  45. package/esm/benchmark/profiler.mjs +1 -1
  46. package/esm/benchmark/profiler.mjs.map +1 -1
  47. package/esm/benchmark/types.d.mts +1 -1
  48. package/esm/benchmark/types.d.mts.map +1 -1
  49. package/esm/bootstrap/setup.d.mts +1 -1
  50. package/esm/bootstrap/setup.d.mts.map +1 -1
  51. package/esm/bootstrap/setup.mjs +1 -1
  52. package/esm/bootstrap/setup.mjs.map +1 -1
  53. package/esm/bootstrap.d.mts +1 -1
  54. package/esm/bootstrap.d.mts.map +1 -1
  55. package/esm/bootstrap.mjs +1 -1
  56. package/esm/bootstrap.mjs.map +1 -1
  57. package/esm/cache/database-cache-driver.d.mts +1 -1
  58. package/esm/cache/database-cache-driver.d.mts.map +1 -1
  59. package/esm/cache/database-cache-driver.mjs +1 -1
  60. package/esm/cache/database-cache-driver.mjs.map +1 -1
  61. package/esm/cache/index.mjs +1 -1
  62. package/esm/cache/index.mjs.map +1 -1
  63. package/esm/cli/cli-commands.manager.mjs +1 -1
  64. package/esm/cli/cli-commands.manager.mjs.map +1 -1
  65. package/esm/cli/cli-commands.utils.mjs +1 -1
  66. package/esm/cli/cli-commands.utils.mjs.map +1 -1
  67. package/esm/cli/commands/add.command.mjs +5 -3
  68. package/esm/cli/commands/add.command.mjs.map +1 -1
  69. package/esm/cli/commands/agents-md/agents-md-command.action.mjs +69 -0
  70. package/esm/cli/commands/agents-md/agents-md-command.action.mjs.map +1 -0
  71. package/esm/cli/commands/agents-md.command.mjs +38 -0
  72. package/esm/cli/commands/agents-md.command.mjs.map +1 -0
  73. package/esm/cli/commands/board/board-command.action.mjs +279 -0
  74. package/esm/cli/commands/board/board-command.action.mjs.map +1 -0
  75. package/esm/cli/commands/board.command.mjs +78 -0
  76. package/esm/cli/commands/board.command.mjs.map +1 -0
  77. package/esm/cli/commands/build.command.mjs +7 -2
  78. package/esm/cli/commands/build.command.mjs.map +1 -1
  79. package/esm/cli/commands/check/check-command.action.mjs +57 -0
  80. package/esm/cli/commands/check/check-command.action.mjs.map +1 -0
  81. package/esm/cli/commands/check/child-typecheck.mjs +66 -0
  82. package/esm/cli/commands/check/child-typecheck.mjs.map +1 -0
  83. package/esm/cli/commands/check/format-problems.mjs +43 -0
  84. package/esm/cli/commands/check/format-problems.mjs.map +1 -0
  85. package/esm/cli/commands/check/typecheck-command.action.mjs +61 -0
  86. package/esm/cli/commands/check/typecheck-command.action.mjs.map +1 -0
  87. package/esm/cli/commands/check.command.mjs +50 -0
  88. package/esm/cli/commands/check.command.mjs.map +1 -0
  89. package/esm/cli/commands/create-database.command.mjs +1 -1
  90. package/esm/cli/commands/create-database.command.mjs.map +1 -1
  91. package/esm/cli/commands/dev-server.command.mjs +10 -2
  92. package/esm/cli/commands/dev-server.command.mjs.map +1 -1
  93. package/esm/cli/commands/doctor/boot-for-diagnostics.mjs +9 -4
  94. package/esm/cli/commands/doctor/boot-for-diagnostics.mjs.map +1 -1
  95. package/esm/cli/commands/doctor/check.types.d.mts +76 -0
  96. package/esm/cli/commands/doctor/check.types.d.mts.map +1 -0
  97. package/esm/cli/commands/doctor/checks/config.check.mjs +2 -1
  98. package/esm/cli/commands/doctor/checks/config.check.mjs.map +1 -1
  99. package/esm/cli/commands/doctor/checks/connectors.check.mjs +3 -1
  100. package/esm/cli/commands/doctor/checks/connectors.check.mjs.map +1 -1
  101. package/esm/cli/commands/doctor/checks/handler-signature.check.mjs +2 -1
  102. package/esm/cli/commands/doctor/checks/handler-signature.check.mjs.map +1 -1
  103. package/esm/cli/commands/doctor/checks/health.check.mjs +4 -1
  104. package/esm/cli/commands/doctor/checks/health.check.mjs.map +1 -1
  105. package/esm/cli/commands/doctor/checks/index.mjs +1 -1
  106. package/esm/cli/commands/doctor/checks/index.mjs.map +1 -1
  107. package/esm/cli/commands/doctor/checks/jwt-secret.check.mjs +2 -1
  108. package/esm/cli/commands/doctor/checks/jwt-secret.check.mjs.map +1 -1
  109. package/esm/cli/commands/doctor/checks/locales-ts-deprecated.check.mjs +2 -1
  110. package/esm/cli/commands/doctor/checks/locales-ts-deprecated.check.mjs.map +1 -1
  111. package/esm/cli/commands/doctor/checks/optional-peers.check.mjs +2 -1
  112. package/esm/cli/commands/doctor/checks/optional-peers.check.mjs.map +1 -1
  113. package/esm/cli/commands/doctor/checks/release-hygiene.check.mjs +5 -1
  114. package/esm/cli/commands/doctor/checks/release-hygiene.check.mjs.map +1 -1
  115. package/esm/cli/commands/doctor/checks/routes.check.mjs +4 -1
  116. package/esm/cli/commands/doctor/checks/routes.check.mjs.map +1 -1
  117. package/esm/cli/commands/doctor/doctor-command.action.mjs +15 -7
  118. package/esm/cli/commands/doctor/doctor-command.action.mjs.map +1 -1
  119. package/esm/cli/commands/doctor/format-report.mjs +31 -3
  120. package/esm/cli/commands/doctor/format-report.mjs.map +1 -1
  121. package/esm/cli/commands/doctor/run-checks.mjs +1 -1
  122. package/esm/cli/commands/doctor/run-checks.mjs.map +1 -1
  123. package/esm/cli/commands/doctor.command.mjs +5 -1
  124. package/esm/cli/commands/doctor.command.mjs.map +1 -1
  125. package/esm/cli/commands/drop-tables.command.mjs +1 -1
  126. package/esm/cli/commands/drop-tables.command.mjs.map +1 -1
  127. package/esm/cli/commands/explain/explain-command.action.mjs +64 -0
  128. package/esm/cli/commands/explain/explain-command.action.mjs.map +1 -0
  129. package/esm/cli/commands/explain.command.mjs +23 -0
  130. package/esm/cli/commands/explain.command.mjs.map +1 -0
  131. package/esm/cli/commands/generate/generate.command.mjs +125 -125
  132. package/esm/cli/commands/generate/generate.command.mjs.map +1 -1
  133. package/esm/cli/commands/generate/generators/column-dsl-parser.mjs +1 -1
  134. package/esm/cli/commands/generate/generators/column-dsl-parser.mjs.map +1 -1
  135. package/esm/cli/commands/generate/generators/controller.generator.mjs +1 -1
  136. package/esm/cli/commands/generate/generators/controller.generator.mjs.map +1 -1
  137. package/esm/cli/commands/generate/generators/endpoint.generator.mjs +311 -0
  138. package/esm/cli/commands/generate/generators/endpoint.generator.mjs.map +1 -0
  139. package/esm/cli/commands/generate/generators/migration.generator.mjs +2 -2
  140. package/esm/cli/commands/generate/generators/migration.generator.mjs.map +1 -1
  141. package/esm/cli/commands/generate/generators/model.generator.mjs +2 -2
  142. package/esm/cli/commands/generate/generators/model.generator.mjs.map +1 -1
  143. package/esm/cli/commands/generate/generators/module.generator.mjs +1 -1
  144. package/esm/cli/commands/generate/generators/module.generator.mjs.map +1 -1
  145. package/esm/cli/commands/generate/generators/repository.generator.mjs +1 -1
  146. package/esm/cli/commands/generate/generators/repository.generator.mjs.map +1 -1
  147. package/esm/cli/commands/generate/generators/resource.generator.mjs +1 -1
  148. package/esm/cli/commands/generate/generators/resource.generator.mjs.map +1 -1
  149. package/esm/cli/commands/generate/generators/service.generator.mjs +1 -1
  150. package/esm/cli/commands/generate/generators/service.generator.mjs.map +1 -1
  151. package/esm/cli/commands/generate/generators/use-case.generator.mjs +1 -1
  152. package/esm/cli/commands/generate/generators/use-case.generator.mjs.map +1 -1
  153. package/esm/cli/commands/generate/templates/endpoint-stubs.mjs +341 -0
  154. package/esm/cli/commands/generate/templates/endpoint-stubs.mjs.map +1 -0
  155. package/esm/cli/commands/generate/templates/stubs.mjs +20 -7
  156. package/esm/cli/commands/generate/templates/stubs.mjs.map +1 -1
  157. package/esm/cli/commands/generate/utils/endpoint-schema.mjs +137 -0
  158. package/esm/cli/commands/generate/utils/endpoint-schema.mjs.map +1 -0
  159. package/esm/cli/commands/generate/utils/name-parser.mjs +2 -2
  160. package/esm/cli/commands/generate/utils/name-parser.mjs.map +1 -1
  161. package/esm/cli/commands/generate/utils/path-resolver.mjs +1 -1
  162. package/esm/cli/commands/generate/utils/path-resolver.mjs.map +1 -1
  163. package/esm/cli/commands/generate/utils/prompt.mjs +1 -1
  164. package/esm/cli/commands/generate/utils/prompt.mjs.map +1 -1
  165. package/esm/cli/commands/generate/utils/writer.mjs +39 -14
  166. package/esm/cli/commands/generate/utils/writer.mjs.map +1 -1
  167. package/esm/cli/commands/inspect/inspect-command.action.mjs +72 -0
  168. package/esm/cli/commands/inspect/inspect-command.action.mjs.map +1 -0
  169. package/esm/cli/commands/inspect.command.mjs +39 -0
  170. package/esm/cli/commands/inspect.command.mjs.map +1 -0
  171. package/esm/cli/commands/mcp/mcp-command.action.mjs +103 -0
  172. package/esm/cli/commands/mcp/mcp-command.action.mjs.map +1 -0
  173. package/esm/cli/commands/mcp.command.mjs +76 -0
  174. package/esm/cli/commands/mcp.command.mjs.map +1 -0
  175. package/esm/cli/commands/migrate.command.mjs +1 -1
  176. package/esm/cli/commands/migrate.command.mjs.map +1 -1
  177. package/esm/cli/commands/openapi-generator.action.mjs +1 -1
  178. package/esm/cli/commands/openapi-generator.action.mjs.map +1 -1
  179. package/esm/cli/commands/openapi-generator.command.mjs +1 -1
  180. package/esm/cli/commands/openapi-generator.command.mjs.map +1 -1
  181. package/esm/cli/commands/postman-generator.action.mjs +1 -1
  182. package/esm/cli/commands/postman-generator.action.mjs.map +1 -1
  183. package/esm/cli/commands/postman-generator.command.mjs +1 -1
  184. package/esm/cli/commands/postman-generator.command.mjs.map +1 -1
  185. package/esm/cli/commands/routes/diff-page-routes.mjs +1 -1
  186. package/esm/cli/commands/routes/diff-page-routes.mjs.map +1 -1
  187. package/esm/cli/commands/routes/format-routes-table.mjs +1 -1
  188. package/esm/cli/commands/routes/format-routes-table.mjs.map +1 -1
  189. package/esm/cli/commands/routes/route-row.mjs +1 -1
  190. package/esm/cli/commands/routes/route-row.mjs.map +1 -1
  191. package/esm/cli/commands/routes/routes-command.action.mjs +1 -1
  192. package/esm/cli/commands/routes/routes-command.action.mjs.map +1 -1
  193. package/esm/cli/commands/routes/routes-diff.action.mjs +2 -2
  194. package/esm/cli/commands/routes/routes-diff.action.mjs.map +1 -1
  195. package/esm/cli/commands/routes/with-console-on-stderr.mjs +1 -1
  196. package/esm/cli/commands/routes/with-console-on-stderr.mjs.map +1 -1
  197. package/esm/cli/commands/routes.command.mjs +1 -1
  198. package/esm/cli/commands/routes.command.mjs.map +1 -1
  199. package/esm/cli/commands/seed.command.mjs +1 -1
  200. package/esm/cli/commands/seed.command.mjs.map +1 -1
  201. package/esm/cli/commands/start-production.command.mjs +1 -1
  202. package/esm/cli/commands/start-production.command.mjs.map +1 -1
  203. package/esm/cli/commands/storage-put.action.mjs +1 -1
  204. package/esm/cli/commands/storage-put.action.mjs.map +1 -1
  205. package/esm/cli/commands/storage-put.command.mjs +1 -1
  206. package/esm/cli/commands/storage-put.command.mjs.map +1 -1
  207. package/esm/cli/commands/test.command.mjs +131 -0
  208. package/esm/cli/commands/test.command.mjs.map +1 -0
  209. package/esm/cli/commands/trace/trace-command.action.mjs +145 -0
  210. package/esm/cli/commands/trace/trace-command.action.mjs.map +1 -0
  211. package/esm/cli/commands/trace.command.mjs +60 -0
  212. package/esm/cli/commands/trace.command.mjs.map +1 -0
  213. package/esm/cli/commands/typecheck.command.mjs +40 -0
  214. package/esm/cli/commands/typecheck.command.mjs.map +1 -0
  215. package/esm/cli/commands/typings-generator.command.mjs +1 -1
  216. package/esm/cli/commands/typings-generator.command.mjs.map +1 -1
  217. package/esm/cli/commands/update.command.mjs +1 -1
  218. package/esm/cli/commands/update.command.mjs.map +1 -1
  219. package/esm/cli/commands/upgrade.command.mjs +46 -0
  220. package/esm/cli/commands/upgrade.command.mjs.map +1 -0
  221. package/esm/cli/commands-loader.mjs +1 -1
  222. package/esm/cli/commands-loader.mjs.map +1 -1
  223. package/esm/cli/flush-and-exit.mjs +34 -0
  224. package/esm/cli/flush-and-exit.mjs.map +1 -0
  225. package/esm/cli/framework-cli-commands.mjs +24 -2
  226. package/esm/cli/framework-cli-commands.mjs.map +1 -1
  227. package/esm/cli/parse-cli-args.mjs +2 -1
  228. package/esm/cli/parse-cli-args.mjs.map +1 -1
  229. package/esm/cli/start.mjs +1 -1
  230. package/esm/cli/start.mjs.map +1 -1
  231. package/esm/cli/string-similarity.mjs +1 -1
  232. package/esm/cli/string-similarity.mjs.map +1 -1
  233. package/esm/commands/cli-command.d.mts +1 -1
  234. package/esm/commands/cli-command.d.mts.map +1 -1
  235. package/esm/commands/cli-command.mjs +1 -1
  236. package/esm/commands/cli-command.mjs.map +1 -1
  237. package/esm/commands/types.d.mts +1 -1
  238. package/esm/commands/types.d.mts.map +1 -1
  239. package/esm/config/config-getter.d.mts +1 -1
  240. package/esm/config/config-getter.d.mts.map +1 -1
  241. package/esm/config/config-getter.mjs +1 -1
  242. package/esm/config/config-getter.mjs.map +1 -1
  243. package/esm/config/config-handlers.d.mts +1 -1
  244. package/esm/config/config-handlers.d.mts.map +1 -1
  245. package/esm/config/config-handlers.mjs +1 -1
  246. package/esm/config/config-handlers.mjs.map +1 -1
  247. package/esm/config/config-key-from-path.mjs +1 -1
  248. package/esm/config/config-key-from-path.mjs.map +1 -1
  249. package/esm/config/config-loader.d.mts +1 -1
  250. package/esm/config/config-loader.d.mts.map +1 -1
  251. package/esm/config/config-loader.mjs +35 -14
  252. package/esm/config/config-loader.mjs.map +1 -1
  253. package/esm/config/config-manager.mjs +1 -1
  254. package/esm/config/config-manager.mjs.map +1 -1
  255. package/esm/config/config-schema.d.mts +67 -0
  256. package/esm/config/config-schema.d.mts.map +1 -0
  257. package/esm/config/config-schema.mjs +77 -0
  258. package/esm/config/config-schema.mjs.map +1 -0
  259. package/esm/config/config-setter.d.mts +1 -1
  260. package/esm/config/config-setter.d.mts.map +1 -1
  261. package/esm/config/config-setter.mjs +1 -1
  262. package/esm/config/config-setter.mjs.map +1 -1
  263. package/esm/config/config-special-handlers.d.mts +1 -1
  264. package/esm/config/config-special-handlers.d.mts.map +1 -1
  265. package/esm/config/config-special-handlers.mjs +1 -1
  266. package/esm/config/config-special-handlers.mjs.map +1 -1
  267. package/esm/config/index.d.mts +6 -0
  268. package/esm/config/index.mjs +1 -0
  269. package/esm/config/load-config-files.mjs +1 -1
  270. package/esm/config/load-config-files.mjs.map +1 -1
  271. package/esm/config/locale-configuration.mjs +1 -1
  272. package/esm/config/locale-configuration.mjs.map +1 -1
  273. package/esm/config/types.d.mts +1 -1
  274. package/esm/config/types.d.mts.map +1 -1
  275. package/esm/connectors/access-connector.d.mts +1 -1
  276. package/esm/connectors/access-connector.d.mts.map +1 -1
  277. package/esm/connectors/access-connector.mjs +1 -1
  278. package/esm/connectors/access-connector.mjs.map +1 -1
  279. package/esm/connectors/ai-connector.d.mts +1 -1
  280. package/esm/connectors/ai-connector.d.mts.map +1 -1
  281. package/esm/connectors/ai-connector.mjs +1 -1
  282. package/esm/connectors/ai-connector.mjs.map +1 -1
  283. package/esm/connectors/assert-no-reserved-connector-names.d.mts +1 -1
  284. package/esm/connectors/assert-no-reserved-connector-names.d.mts.map +1 -1
  285. package/esm/connectors/assert-no-reserved-connector-names.mjs +3 -2
  286. package/esm/connectors/assert-no-reserved-connector-names.mjs.map +1 -1
  287. package/esm/connectors/assert-unique-connector-names.d.mts +1 -1
  288. package/esm/connectors/assert-unique-connector-names.d.mts.map +1 -1
  289. package/esm/connectors/assert-unique-connector-names.mjs +27 -3
  290. package/esm/connectors/assert-unique-connector-names.mjs.map +1 -1
  291. package/esm/connectors/base-connector.d.mts +1 -1
  292. package/esm/connectors/base-connector.d.mts.map +1 -1
  293. package/esm/connectors/base-connector.mjs +1 -1
  294. package/esm/connectors/base-connector.mjs.map +1 -1
  295. package/esm/connectors/cache-connector.d.mts +1 -1
  296. package/esm/connectors/cache-connector.d.mts.map +1 -1
  297. package/esm/connectors/cache-connector.mjs +1 -1
  298. package/esm/connectors/cache-connector.mjs.map +1 -1
  299. package/esm/connectors/connectors-manager.d.mts +1 -1
  300. package/esm/connectors/connectors-manager.d.mts.map +1 -1
  301. package/esm/connectors/connectors-manager.mjs +2 -2
  302. package/esm/connectors/connectors-manager.mjs.map +1 -1
  303. package/esm/connectors/database-connector.d.mts +1 -1
  304. package/esm/connectors/database-connector.d.mts.map +1 -1
  305. package/esm/connectors/database-connector.mjs +1 -1
  306. package/esm/connectors/database-connector.mjs.map +1 -1
  307. package/esm/connectors/describe-server-address.mjs +1 -1
  308. package/esm/connectors/describe-server-address.mjs.map +1 -1
  309. package/esm/connectors/herald-connector.d.mts +1 -1
  310. package/esm/connectors/herald-connector.d.mts.map +1 -1
  311. package/esm/connectors/herald-connector.mjs +1 -1
  312. package/esm/connectors/herald-connector.mjs.map +1 -1
  313. package/esm/connectors/http-connector.d.mts +1 -1
  314. package/esm/connectors/http-connector.d.mts.map +1 -1
  315. package/esm/connectors/http-connector.mjs +4 -3
  316. package/esm/connectors/http-connector.mjs.map +1 -1
  317. package/esm/connectors/logger-connector.d.mts +1 -1
  318. package/esm/connectors/logger-connector.d.mts.map +1 -1
  319. package/esm/connectors/logger-connector.mjs +1 -1
  320. package/esm/connectors/logger-connector.mjs.map +1 -1
  321. package/esm/connectors/mail-connector.d.mts +1 -1
  322. package/esm/connectors/mail-connector.d.mts.map +1 -1
  323. package/esm/connectors/mail-connector.mjs +1 -1
  324. package/esm/connectors/mail-connector.mjs.map +1 -1
  325. package/esm/connectors/notifications-connector.d.mts +1 -1
  326. package/esm/connectors/notifications-connector.d.mts.map +1 -1
  327. package/esm/connectors/notifications-connector.mjs +1 -1
  328. package/esm/connectors/notifications-connector.mjs.map +1 -1
  329. package/esm/connectors/read-bound-port.mjs +1 -1
  330. package/esm/connectors/read-bound-port.mjs.map +1 -1
  331. package/esm/connectors/register-configured-connectors.d.mts +1 -1
  332. package/esm/connectors/register-configured-connectors.d.mts.map +1 -1
  333. package/esm/connectors/register-configured-connectors.mjs +1 -1
  334. package/esm/connectors/register-configured-connectors.mjs.map +1 -1
  335. package/esm/connectors/single-server-warnings.mjs +1 -1
  336. package/esm/connectors/single-server-warnings.mjs.map +1 -1
  337. package/esm/connectors/socket-connector.d.mts +1 -1
  338. package/esm/connectors/socket-connector.d.mts.map +1 -1
  339. package/esm/connectors/socket-connector.mjs +1 -1
  340. package/esm/connectors/socket-connector.mjs.map +1 -1
  341. package/esm/connectors/storage.connector.d.mts +1 -1
  342. package/esm/connectors/storage.connector.d.mts.map +1 -1
  343. package/esm/connectors/storage.connector.mjs +1 -1
  344. package/esm/connectors/storage.connector.mjs.map +1 -1
  345. package/esm/connectors/types.d.mts +1 -1
  346. package/esm/connectors/types.d.mts.map +1 -1
  347. package/esm/connectors/types.mjs +1 -1
  348. package/esm/connectors/types.mjs.map +1 -1
  349. package/esm/container/container-instance-registry.mjs +1 -1
  350. package/esm/container/container-instance-registry.mjs.map +1 -1
  351. package/esm/container/development-app-modules.d.mts +1 -1
  352. package/esm/container/development-app-modules.d.mts.map +1 -1
  353. package/esm/container/development-model-modules.d.mts +1 -1
  354. package/esm/container/development-model-modules.d.mts.map +1 -1
  355. package/esm/container/index.d.mts +1 -1
  356. package/esm/container/index.d.mts.map +1 -1
  357. package/esm/container/index.mjs +1 -1
  358. package/esm/container/index.mjs.map +1 -1
  359. package/esm/database/create-database-action.mjs +1 -1
  360. package/esm/database/create-database-action.mjs.map +1 -1
  361. package/esm/database/drop-tables-action.mjs +1 -1
  362. package/esm/database/drop-tables-action.mjs.map +1 -1
  363. package/esm/database/migrate-action.mjs +1 -1
  364. package/esm/database/migrate-action.mjs.map +1 -1
  365. package/esm/database/models/database-log/database-log.d.mts +3 -39
  366. package/esm/database/models/database-log/database-log.d.mts.map +1 -1
  367. package/esm/database/models/database-log/database-log.mjs +1 -1
  368. package/esm/database/models/database-log/database-log.mjs.map +1 -1
  369. package/esm/database/pending-exit-code.mjs +1 -1
  370. package/esm/database/pending-exit-code.mjs.map +1 -1
  371. package/esm/database/resolve-pending-migrations.mjs +1 -1
  372. package/esm/database/resolve-pending-migrations.mjs.map +1 -1
  373. package/esm/database/seed-command-action.mjs +1 -1
  374. package/esm/database/seed-command-action.mjs.map +1 -1
  375. package/esm/database/seeds/seed-records-table-migration.mjs +1 -1
  376. package/esm/database/seeds/seed-records-table-migration.mjs.map +1 -1
  377. package/esm/database/seeds/seeder.d.mts +1 -1
  378. package/esm/database/seeds/seeder.d.mts.map +1 -1
  379. package/esm/database/seeds/seeder.errors.d.mts +5 -1
  380. package/esm/database/seeds/seeder.errors.d.mts.map +1 -1
  381. package/esm/database/seeds/seeder.errors.mjs +3 -1
  382. package/esm/database/seeds/seeder.errors.mjs.map +1 -1
  383. package/esm/database/seeds/seeder.mjs +1 -1
  384. package/esm/database/seeds/seeder.mjs.map +1 -1
  385. package/esm/database/seeds/seeders.manager.mjs +1 -1
  386. package/esm/database/seeds/seeders.manager.mjs.map +1 -1
  387. package/esm/database/seeds/seeds-table-migration.mjs +1 -1
  388. package/esm/database/seeds/seeds-table-migration.mjs.map +1 -1
  389. package/esm/database/seeds/types.d.mts +1 -1
  390. package/esm/database/seeds/types.d.mts.map +1 -1
  391. package/esm/database/seeds/utils.mjs +1 -1
  392. package/esm/database/seeds/utils.mjs.map +1 -1
  393. package/esm/database/utils.d.mts +1 -1
  394. package/esm/database/utils.d.mts.map +1 -1
  395. package/esm/database/utils.mjs +1 -1
  396. package/esm/database/utils.mjs.map +1 -1
  397. package/esm/dev-server/app-module-registry.mjs +1 -1
  398. package/esm/dev-server/app-module-registry.mjs.map +1 -1
  399. package/esm/dev-server/boot-precondition-error.mjs +2 -1
  400. package/esm/dev-server/boot-precondition-error.mjs.map +1 -1
  401. package/esm/dev-server/build-development-openapi-document.mjs +1 -1
  402. package/esm/dev-server/build-development-openapi-document.mjs.map +1 -1
  403. package/esm/dev-server/check-for-updates.mjs +1 -1
  404. package/esm/dev-server/check-for-updates.mjs.map +1 -1
  405. package/esm/dev-server/collect-development-api-routes.mjs +1 -1
  406. package/esm/dev-server/collect-development-api-routes.mjs.map +1 -1
  407. package/esm/dev-server/create-worker.mjs +16 -10
  408. package/esm/dev-server/create-worker.mjs.map +1 -1
  409. package/esm/dev-server/dependency-graph.d.mts +1 -1
  410. package/esm/dev-server/dependency-graph.d.mts.map +1 -1
  411. package/esm/dev-server/dependency-graph.mjs +1 -1
  412. package/esm/dev-server/dependency-graph.mjs.map +1 -1
  413. package/esm/dev-server/dev-agent-tooling.mjs +135 -0
  414. package/esm/dev-server/dev-agent-tooling.mjs.map +1 -0
  415. package/esm/dev-server/dev-logger.mjs +1 -1
  416. package/esm/dev-server/dev-logger.mjs.map +1 -1
  417. package/esm/dev-server/development-server.mjs +9 -1
  418. package/esm/dev-server/development-server.mjs.map +1 -1
  419. package/esm/dev-server/events.mjs +1 -1
  420. package/esm/dev-server/events.mjs.map +1 -1
  421. package/esm/dev-server/extract-translation-keys.mjs +1 -1
  422. package/esm/dev-server/extract-translation-keys.mjs.map +1 -1
  423. package/esm/dev-server/file-event-handler.mjs +1 -1
  424. package/esm/dev-server/file-event-handler.mjs.map +1 -1
  425. package/esm/dev-server/file-manager.d.mts +1 -1
  426. package/esm/dev-server/file-manager.d.mts.map +1 -1
  427. package/esm/dev-server/file-manager.mjs +1 -1
  428. package/esm/dev-server/file-manager.mjs.map +1 -1
  429. package/esm/dev-server/file-operations.d.mts +1 -1
  430. package/esm/dev-server/file-operations.d.mts.map +1 -1
  431. package/esm/dev-server/file-operations.mjs +1 -1
  432. package/esm/dev-server/file-operations.mjs.map +1 -1
  433. package/esm/dev-server/files-orchestrator.mjs +22 -20
  434. package/esm/dev-server/files-orchestrator.mjs.map +1 -1
  435. package/esm/dev-server/files-watcher.mjs +2 -2
  436. package/esm/dev-server/files-watcher.mjs.map +1 -1
  437. package/esm/dev-server/flags.mjs +1 -1
  438. package/esm/dev-server/flags.mjs.map +1 -1
  439. package/esm/dev-server/health-checker/checkers/base-health-checker.mjs +1 -1
  440. package/esm/dev-server/health-checker/checkers/base-health-checker.mjs.map +1 -1
  441. package/esm/dev-server/health-checker/checkers/eslint-health-checker.mjs +3 -4
  442. package/esm/dev-server/health-checker/checkers/eslint-health-checker.mjs.map +1 -1
  443. package/esm/dev-server/health-checker/checkers/oxlint-health-checker.mjs +33 -0
  444. package/esm/dev-server/health-checker/checkers/oxlint-health-checker.mjs.map +1 -0
  445. package/esm/dev-server/health-checker/checkers/typescript-health-checker.mjs +1 -1
  446. package/esm/dev-server/health-checker/checkers/typescript-health-checker.mjs.map +1 -1
  447. package/esm/dev-server/health-checker/default-health-checkers.mjs +31 -0
  448. package/esm/dev-server/health-checker/default-health-checkers.mjs.map +1 -0
  449. package/esm/dev-server/health-checker/file-health-checker.contract.d.mts +10 -4
  450. package/esm/dev-server/health-checker/file-health-checker.contract.d.mts.map +1 -1
  451. package/esm/dev-server/health-checker/file-health-result.d.mts +1 -1
  452. package/esm/dev-server/health-checker/file-health-result.d.mts.map +1 -1
  453. package/esm/dev-server/health-checker/file-health-result.mjs +1 -1
  454. package/esm/dev-server/health-checker/file-health-result.mjs.map +1 -1
  455. package/esm/dev-server/health-checker/files-healthcare.manager.mjs +16 -5
  456. package/esm/dev-server/health-checker/files-healthcare.manager.mjs.map +1 -1
  457. package/esm/dev-server/health-checker/oxlint-runner.mjs +302 -0
  458. package/esm/dev-server/health-checker/oxlint-runner.mjs.map +1 -0
  459. package/esm/dev-server/health-checker/workers/eslint-health.worker.mjs +1 -1
  460. package/esm/dev-server/health-checker/workers/eslint-health.worker.mjs.map +1 -1
  461. package/esm/dev-server/health-checker/workers/oxlint-health.worker.d.mts +1 -0
  462. package/esm/dev-server/health-checker/workers/oxlint-health.worker.mjs +42 -0
  463. package/esm/dev-server/health-checker/workers/oxlint-health.worker.mjs.map +1 -0
  464. package/esm/dev-server/health-checker/workers/ts-health.worker.mjs +1 -1
  465. package/esm/dev-server/health-checker/workers/ts-health.worker.mjs.map +1 -1
  466. package/esm/dev-server/layer-executor.mjs +1 -1
  467. package/esm/dev-server/layer-executor.mjs.map +1 -1
  468. package/esm/dev-server/legacy-locales-warning.mjs +1 -1
  469. package/esm/dev-server/legacy-locales-warning.mjs.map +1 -1
  470. package/esm/dev-server/loader/build-transpile-init.mjs +1 -1
  471. package/esm/dev-server/loader/build-transpile-init.mjs.map +1 -1
  472. package/esm/dev-server/loader/hook-thread.d.mts +1 -1
  473. package/esm/dev-server/loader/hook-thread.d.mts.map +1 -1
  474. package/esm/dev-server/loader/hook-thread.mjs +1 -1
  475. package/esm/dev-server/loader/hook-thread.mjs.map +1 -1
  476. package/esm/dev-server/loader/load-hook.d.mts +1 -1
  477. package/esm/dev-server/loader/load-hook.d.mts.map +1 -1
  478. package/esm/dev-server/loader/load-hook.mjs +1 -1
  479. package/esm/dev-server/loader/load-hook.mjs.map +1 -1
  480. package/esm/dev-server/loader/loader-port-acks.mjs +34 -0
  481. package/esm/dev-server/loader/loader-port-acks.mjs.map +1 -0
  482. package/esm/dev-server/loader/own-resolver.mjs +1 -1
  483. package/esm/dev-server/loader/own-resolver.mjs.map +1 -1
  484. package/esm/dev-server/loader/register-loader.mjs +2 -2
  485. package/esm/dev-server/loader/register-loader.mjs.map +1 -1
  486. package/esm/dev-server/loader/resolve-capture.mjs +1 -1
  487. package/esm/dev-server/loader/resolve-capture.mjs.map +1 -1
  488. package/esm/dev-server/loader/resolve-hook.d.mts +1 -1
  489. package/esm/dev-server/loader/resolve-hook.d.mts.map +1 -1
  490. package/esm/dev-server/loader/resolve-hook.mjs +1 -1
  491. package/esm/dev-server/loader/resolve-hook.mjs.map +1 -1
  492. package/esm/dev-server/loader/source-slug.mjs +1 -1
  493. package/esm/dev-server/loader/source-slug.mjs.map +1 -1
  494. package/esm/dev-server/loader/transpile-cache.mjs +2 -2
  495. package/esm/dev-server/loader/transpile-cache.mjs.map +1 -1
  496. package/esm/dev-server/loader/version-registry.mjs +1 -1
  497. package/esm/dev-server/loader/version-registry.mjs.map +1 -1
  498. package/esm/dev-server/manifest-manager.d.mts +1 -1
  499. package/esm/dev-server/manifest-manager.d.mts.map +1 -1
  500. package/esm/dev-server/manifest-manager.mjs +1 -1
  501. package/esm/dev-server/manifest-manager.mjs.map +1 -1
  502. package/esm/dev-server/model-module-registry.mjs +1 -1
  503. package/esm/dev-server/model-module-registry.mjs.map +1 -1
  504. package/esm/dev-server/model-resource-typings.mjs +1 -1
  505. package/esm/dev-server/model-resource-typings.mjs.map +1 -1
  506. package/esm/dev-server/module-loader.mjs +2 -1
  507. package/esm/dev-server/module-loader.mjs.map +1 -1
  508. package/esm/dev-server/package-json-manager.mjs +1 -1
  509. package/esm/dev-server/package-json-manager.mjs.map +1 -1
  510. package/esm/dev-server/parse-imports.mjs +74 -7
  511. package/esm/dev-server/parse-imports.mjs.map +1 -1
  512. package/esm/dev-server/read-config-ast.mjs +1 -1
  513. package/esm/dev-server/read-config-ast.mjs.map +1 -1
  514. package/esm/dev-server/ready-block.mjs +1 -1
  515. package/esm/dev-server/ready-block.mjs.map +1 -1
  516. package/esm/dev-server/register-dev-shortcuts.mjs +1 -1
  517. package/esm/dev-server/register-dev-shortcuts.mjs.map +1 -1
  518. package/esm/dev-server/register-installed-devtools.mjs +1 -1
  519. package/esm/dev-server/register-installed-devtools.mjs.map +1 -1
  520. package/esm/dev-server/restart-dev-server.mjs +1 -1
  521. package/esm/dev-server/restart-dev-server.mjs.map +1 -1
  522. package/esm/dev-server/route-types-publisher.mjs +2 -2
  523. package/esm/dev-server/route-types-publisher.mjs.map +1 -1
  524. package/esm/dev-server/run-connector-typings.mjs +1 -1
  525. package/esm/dev-server/run-connector-typings.mjs.map +1 -1
  526. package/esm/dev-server/run-typings-generation.mjs +1 -1
  527. package/esm/dev-server/run-typings-generation.mjs.map +1 -1
  528. package/esm/dev-server/shortcuts.mjs +1 -1
  529. package/esm/dev-server/shortcuts.mjs.map +1 -1
  530. package/esm/dev-server/special-file-patterns.mjs +1 -1
  531. package/esm/dev-server/special-file-patterns.mjs.map +1 -1
  532. package/esm/dev-server/special-files-collector.d.mts +1 -1
  533. package/esm/dev-server/special-files-collector.d.mts.map +1 -1
  534. package/esm/dev-server/special-files-collector.mjs +1 -1
  535. package/esm/dev-server/special-files-collector.mjs.map +1 -1
  536. package/esm/dev-server/start-development-server.mjs +1 -1
  537. package/esm/dev-server/start-development-server.mjs.map +1 -1
  538. package/esm/dev-server/supervisor.mjs +1 -1
  539. package/esm/dev-server/supervisor.mjs.map +1 -1
  540. package/esm/dev-server/translation-keys-sources.mjs +2 -2
  541. package/esm/dev-server/translation-keys-sources.mjs.map +1 -1
  542. package/esm/dev-server/tsconfig-manager.mjs +1 -1
  543. package/esm/dev-server/tsconfig-manager.mjs.map +1 -1
  544. package/esm/dev-server/type-generator.mjs +33 -12
  545. package/esm/dev-server/type-generator.mjs.map +1 -1
  546. package/esm/dev-server/types.d.mts +1 -1
  547. package/esm/dev-server/types.d.mts.map +1 -1
  548. package/esm/dev-server/update-check-cache.mjs +1 -1
  549. package/esm/dev-server/update-check-cache.mjs.map +1 -1
  550. package/esm/dev-server/utils.mjs +1 -1
  551. package/esm/dev-server/utils.mjs.map +1 -1
  552. package/esm/encryption/encrypt.d.mts +1 -1
  553. package/esm/encryption/encrypt.d.mts.map +1 -1
  554. package/esm/encryption/encrypt.mjs +1 -1
  555. package/esm/encryption/encrypt.mjs.map +1 -1
  556. package/esm/encryption/hash.d.mts +1 -1
  557. package/esm/encryption/hash.d.mts.map +1 -1
  558. package/esm/encryption/hash.mjs +1 -1
  559. package/esm/encryption/hash.mjs.map +1 -1
  560. package/esm/encryption/password.d.mts +1 -1
  561. package/esm/encryption/password.d.mts.map +1 -1
  562. package/esm/encryption/password.mjs +1 -1
  563. package/esm/encryption/password.mjs.map +1 -1
  564. package/esm/encryption/types.d.mts +1 -1
  565. package/esm/encryption/types.d.mts.map +1 -1
  566. package/esm/errors/container-key-missing-error.mjs +2 -1
  567. package/esm/errors/container-key-missing-error.mjs.map +1 -1
  568. package/esm/errors/error-codes.d.mts +653 -0
  569. package/esm/errors/error-codes.d.mts.map +1 -0
  570. package/esm/errors/error-codes.mjs +634 -0
  571. package/esm/errors/error-codes.mjs.map +1 -0
  572. package/esm/errors/esbuild-binary-missing-error.mjs +2 -1
  573. package/esm/errors/esbuild-binary-missing-error.mjs.map +1 -1
  574. package/esm/errors/index.d.mts +4 -0
  575. package/esm/errors/index.mjs +5 -0
  576. package/esm/errors/unknown-locale-error.mjs +2 -1
  577. package/esm/errors/unknown-locale-error.mjs.map +1 -1
  578. package/esm/errors/warlock-error.d.mts +23 -0
  579. package/esm/errors/warlock-error.d.mts.map +1 -0
  580. package/esm/errors/warlock-error.mjs +22 -0
  581. package/esm/errors/warlock-error.mjs.map +1 -0
  582. package/esm/generations/add-command.action.mjs +48 -9
  583. package/esm/generations/add-command.action.mjs.map +1 -1
  584. package/esm/generations/features/access.feature.mjs +2 -2
  585. package/esm/generations/features/access.feature.mjs.map +1 -1
  586. package/esm/generations/features/ai-anthropic.feature.mjs +1 -1
  587. package/esm/generations/features/ai-anthropic.feature.mjs.map +1 -1
  588. package/esm/generations/features/ai-bedrock.feature.mjs +1 -1
  589. package/esm/generations/features/ai-bedrock.feature.mjs.map +1 -1
  590. package/esm/generations/features/ai-google.feature.mjs +1 -1
  591. package/esm/generations/features/ai-google.feature.mjs.map +1 -1
  592. package/esm/generations/features/ai-ollama.feature.mjs +1 -1
  593. package/esm/generations/features/ai-ollama.feature.mjs.map +1 -1
  594. package/esm/generations/features/ai-openai.feature.mjs +1 -1
  595. package/esm/generations/features/ai-openai.feature.mjs.map +1 -1
  596. package/esm/generations/features/ai-panoptic.feature.mjs +1 -1
  597. package/esm/generations/features/ai-panoptic.feature.mjs.map +1 -1
  598. package/esm/generations/features/ai-tools.feature.mjs +1 -1
  599. package/esm/generations/features/ai-tools.feature.mjs.map +1 -1
  600. package/esm/generations/features/ai-workspace.feature.mjs +1 -1
  601. package/esm/generations/features/ai-workspace.feature.mjs.map +1 -1
  602. package/esm/generations/features/ai.feature.mjs +1 -1
  603. package/esm/generations/features/ai.feature.mjs.map +1 -1
  604. package/esm/generations/features/auth-google.feature.mjs +1 -1
  605. package/esm/generations/features/auth-google.feature.mjs.map +1 -1
  606. package/esm/generations/features/auth-passkeys.feature.mjs +1 -1
  607. package/esm/generations/features/auth-passkeys.feature.mjs.map +1 -1
  608. package/esm/generations/features/bull-board.feature.mjs +2 -2
  609. package/esm/generations/features/bull-board.feature.mjs.map +1 -1
  610. package/esm/generations/features/devtools.feature.mjs +1 -1
  611. package/esm/generations/features/devtools.feature.mjs.map +1 -1
  612. package/esm/generations/features/herald.feature.mjs +1 -1
  613. package/esm/generations/features/herald.feature.mjs.map +1 -1
  614. package/esm/generations/features/image.feature.mjs +1 -1
  615. package/esm/generations/features/image.feature.mjs.map +1 -1
  616. package/esm/generations/features/index.mjs +1 -1
  617. package/esm/generations/features/index.mjs.map +1 -1
  618. package/esm/generations/features/mail.feature.mjs +1 -1
  619. package/esm/generations/features/mail.feature.mjs.map +1 -1
  620. package/esm/generations/features/mongodb.feature.mjs +1 -1
  621. package/esm/generations/features/mongodb.feature.mjs.map +1 -1
  622. package/esm/generations/features/mysql.feature.mjs +1 -1
  623. package/esm/generations/features/mysql.feature.mjs.map +1 -1
  624. package/esm/generations/features/notifications.feature.mjs +124 -17
  625. package/esm/generations/features/notifications.feature.mjs.map +1 -1
  626. package/esm/generations/features/postgres.feature.mjs +1 -1
  627. package/esm/generations/features/postgres.feature.mjs.map +1 -1
  628. package/esm/generations/features/queue.feature.mjs +2 -2
  629. package/esm/generations/features/queue.feature.mjs.map +1 -1
  630. package/esm/generations/features/react-email.feature.mjs +2 -2
  631. package/esm/generations/features/react-email.feature.mjs.map +1 -1
  632. package/esm/generations/features/react.feature.mjs +1 -1
  633. package/esm/generations/features/react.feature.mjs.map +1 -1
  634. package/esm/generations/features/redis.feature.mjs +1 -1
  635. package/esm/generations/features/redis.feature.mjs.map +1 -1
  636. package/esm/generations/features/s3.feature.mjs +1 -1
  637. package/esm/generations/features/s3.feature.mjs.map +1 -1
  638. package/esm/generations/features/scheduler.feature.mjs +1 -1
  639. package/esm/generations/features/scheduler.feature.mjs.map +1 -1
  640. package/esm/generations/features/ses.feature.mjs +1 -1
  641. package/esm/generations/features/ses.feature.mjs.map +1 -1
  642. package/esm/generations/features/shadcn.feature.mjs +2 -2
  643. package/esm/generations/features/shadcn.feature.mjs.map +1 -1
  644. package/esm/generations/features/shared/insert-connector-entry.mjs +1 -1
  645. package/esm/generations/features/shared/insert-connector-entry.mjs.map +1 -1
  646. package/esm/generations/features/shared/insert-queue-dashboard-block.mjs +1 -1
  647. package/esm/generations/features/shared/insert-queue-dashboard-block.mjs.map +1 -1
  648. package/esm/generations/features/shared/link-ai-package-import.mjs +2 -2
  649. package/esm/generations/features/shared/link-ai-package-import.mjs.map +1 -1
  650. package/esm/generations/features/shared/merge-web-sitemap-config.mjs +1 -1
  651. package/esm/generations/features/shared/merge-web-sitemap-config.mjs.map +1 -1
  652. package/esm/generations/features/shared/migration-timestamp.mjs +1 -1
  653. package/esm/generations/features/shared/migration-timestamp.mjs.map +1 -1
  654. package/esm/generations/features/shared/patch-tsconfig-include.mjs +2 -2
  655. package/esm/generations/features/shared/patch-tsconfig-include.mjs.map +1 -1
  656. package/esm/generations/features/shared/relocate-conflicting-home-route.mjs +2 -2
  657. package/esm/generations/features/shared/relocate-conflicting-home-route.mjs.map +1 -1
  658. package/esm/generations/features/shared/resolve-contact-scaffold.mjs +1 -1
  659. package/esm/generations/features/shared/resolve-contact-scaffold.mjs.map +1 -1
  660. package/esm/generations/features/sitemap.feature.mjs +2 -2
  661. package/esm/generations/features/sitemap.feature.mjs.map +1 -1
  662. package/esm/generations/features/socket.feature.mjs +1 -1
  663. package/esm/generations/features/socket.feature.mjs.map +1 -1
  664. package/esm/generations/features/tailwind.feature.mjs +2 -2
  665. package/esm/generations/features/tailwind.feature.mjs.map +1 -1
  666. package/esm/generations/features/test.feature.mjs +12 -7
  667. package/esm/generations/features/test.feature.mjs.map +1 -1
  668. package/esm/generations/features/types.mjs +1 -1
  669. package/esm/generations/features/types.mjs.map +1 -1
  670. package/esm/generations/features/web.feature.mjs +2 -2
  671. package/esm/generations/features/web.feature.mjs.map +1 -1
  672. package/esm/generations/generation-fs.mjs +73 -0
  673. package/esm/generations/generation-fs.mjs.map +1 -0
  674. package/esm/generations/generation-run.mjs +185 -0
  675. package/esm/generations/generation-run.mjs.map +1 -0
  676. package/esm/generations/pnpm-build-approvals.mjs +89 -3
  677. package/esm/generations/pnpm-build-approvals.mjs.map +1 -1
  678. package/esm/generations/stubs.mjs +327 -79
  679. package/esm/generations/stubs.mjs.map +1 -1
  680. package/esm/http/boot-port-preflight.d.mts +1 -1
  681. package/esm/http/boot-port-preflight.d.mts.map +1 -1
  682. package/esm/http/boot-port-preflight.mjs +1 -1
  683. package/esm/http/boot-port-preflight.mjs.map +1 -1
  684. package/esm/http/bounded-stream-queue.d.mts +10 -0
  685. package/esm/http/bounded-stream-queue.d.mts.map +1 -0
  686. package/esm/http/bounded-stream-queue.mjs +97 -0
  687. package/esm/http/bounded-stream-queue.mjs.map +1 -0
  688. package/esm/http/build-cors-options.mjs +1 -1
  689. package/esm/http/build-cors-options.mjs.map +1 -1
  690. package/esm/http/build-rate-limit-options.d.mts +35 -1
  691. package/esm/http/build-rate-limit-options.d.mts.map +1 -1
  692. package/esm/http/build-rate-limit-options.mjs +7 -1
  693. package/esm/http/build-rate-limit-options.mjs.map +1 -1
  694. package/esm/http/conditional-request.d.mts +86 -0
  695. package/esm/http/conditional-request.d.mts.map +1 -0
  696. package/esm/http/conditional-request.mjs +121 -0
  697. package/esm/http/conditional-request.mjs.map +1 -0
  698. package/esm/http/config.d.mts +1 -1
  699. package/esm/http/config.d.mts.map +1 -1
  700. package/esm/http/config.mjs +1 -1
  701. package/esm/http/config.mjs.map +1 -1
  702. package/esm/http/context/request-context.d.mts +1 -1
  703. package/esm/http/context/request-context.d.mts.map +1 -1
  704. package/esm/http/context/request-context.mjs +1 -1
  705. package/esm/http/context/request-context.mjs.map +1 -1
  706. package/esm/http/context/request-memo.d.mts +1 -1
  707. package/esm/http/context/request-memo.d.mts.map +1 -1
  708. package/esm/http/context/request-memo.mjs +1 -1
  709. package/esm/http/context/request-memo.mjs.map +1 -1
  710. package/esm/http/createHttpApplication.d.mts +1 -1
  711. package/esm/http/createHttpApplication.d.mts.map +1 -1
  712. package/esm/http/createHttpApplication.mjs +1 -1
  713. package/esm/http/createHttpApplication.mjs.map +1 -1
  714. package/esm/http/csp.d.mts +3 -1
  715. package/esm/http/csp.d.mts.map +1 -1
  716. package/esm/http/csp.mjs +2 -1
  717. package/esm/http/csp.mjs.map +1 -1
  718. package/esm/http/csrf-default-guard.d.mts +1 -1
  719. package/esm/http/csrf-default-guard.d.mts.map +1 -1
  720. package/esm/http/csrf-default-guard.mjs +1 -1
  721. package/esm/http/csrf-default-guard.mjs.map +1 -1
  722. package/esm/http/csrf-origin-policy.d.mts +1 -1
  723. package/esm/http/csrf-origin-policy.d.mts.map +1 -1
  724. package/esm/http/csrf-origin-policy.mjs +1 -1
  725. package/esm/http/csrf-origin-policy.mjs.map +1 -1
  726. package/esm/http/database/RequestLog.d.mts +27 -135
  727. package/esm/http/database/RequestLog.d.mts.map +1 -1
  728. package/esm/http/database/RequestLog.mjs +1 -1
  729. package/esm/http/database/RequestLog.mjs.map +1 -1
  730. package/esm/http/error-codes.d.mts +1 -1
  731. package/esm/http/error-codes.d.mts.map +1 -1
  732. package/esm/http/error-codes.mjs +1 -1
  733. package/esm/http/error-codes.mjs.map +1 -1
  734. package/esm/http/error-mapper.d.mts +48 -0
  735. package/esm/http/error-mapper.d.mts.map +1 -0
  736. package/esm/http/error-mapper.mjs +48 -0
  737. package/esm/http/error-mapper.mjs.map +1 -0
  738. package/esm/http/errors/errors.d.mts +3 -1
  739. package/esm/http/errors/errors.d.mts.map +1 -1
  740. package/esm/http/errors/errors.mjs +2 -1
  741. package/esm/http/errors/errors.mjs.map +1 -1
  742. package/esm/http/escape-header-value.d.mts +18 -0
  743. package/esm/http/escape-header-value.d.mts.map +1 -0
  744. package/esm/http/escape-header-value.mjs +27 -0
  745. package/esm/http/escape-header-value.mjs.map +1 -0
  746. package/esm/http/events.d.mts +1 -1
  747. package/esm/http/events.d.mts.map +1 -1
  748. package/esm/http/events.mjs +1 -1
  749. package/esm/http/events.mjs.map +1 -1
  750. package/esm/http/flush-pending-cookies.mjs +1 -1
  751. package/esm/http/flush-pending-cookies.mjs.map +1 -1
  752. package/esm/http/health.d.mts +1 -1
  753. package/esm/http/health.d.mts.map +1 -1
  754. package/esm/http/health.mjs +1 -1
  755. package/esm/http/health.mjs.map +1 -1
  756. package/esm/http/index.d.mts +13 -6
  757. package/esm/http/index.mjs +12 -6
  758. package/esm/http/lazy-static.mjs +194 -0
  759. package/esm/http/lazy-static.mjs.map +1 -0
  760. package/esm/http/middleware/cache-response-middleware.d.mts +1 -1
  761. package/esm/http/middleware/cache-response-middleware.d.mts.map +1 -1
  762. package/esm/http/middleware/cache-response-middleware.mjs +1 -1
  763. package/esm/http/middleware/cache-response-middleware.mjs.map +1 -1
  764. package/esm/http/middleware/concurrency-limit.middleware.d.mts +1 -1
  765. package/esm/http/middleware/concurrency-limit.middleware.d.mts.map +1 -1
  766. package/esm/http/middleware/concurrency-limit.middleware.mjs +1 -1
  767. package/esm/http/middleware/concurrency-limit.middleware.mjs.map +1 -1
  768. package/esm/http/middleware/idempotency.middleware.d.mts +1 -1
  769. package/esm/http/middleware/idempotency.middleware.d.mts.map +1 -1
  770. package/esm/http/middleware/idempotency.middleware.mjs +1 -1
  771. package/esm/http/middleware/idempotency.middleware.mjs.map +1 -1
  772. package/esm/http/middleware/inject-request-context.d.mts +1 -1
  773. package/esm/http/middleware/inject-request-context.d.mts.map +1 -1
  774. package/esm/http/middleware/inject-request-context.mjs +4 -2
  775. package/esm/http/middleware/inject-request-context.mjs.map +1 -1
  776. package/esm/http/middleware/ip-filter.middleware.d.mts +1 -1
  777. package/esm/http/middleware/ip-filter.middleware.d.mts.map +1 -1
  778. package/esm/http/middleware/ip-filter.middleware.mjs +1 -1
  779. package/esm/http/middleware/ip-filter.middleware.mjs.map +1 -1
  780. package/esm/http/middleware/maintenance.middleware.d.mts +1 -1
  781. package/esm/http/middleware/maintenance.middleware.d.mts.map +1 -1
  782. package/esm/http/middleware/maintenance.middleware.mjs +1 -1
  783. package/esm/http/middleware/maintenance.middleware.mjs.map +1 -1
  784. package/esm/http/middleware/max-body-size.middleware.d.mts +1 -1
  785. package/esm/http/middleware/max-body-size.middleware.d.mts.map +1 -1
  786. package/esm/http/middleware/max-body-size.middleware.mjs +1 -1
  787. package/esm/http/middleware/max-body-size.middleware.mjs.map +1 -1
  788. package/esm/http/middleware/middleware-list.d.mts +1 -1
  789. package/esm/http/middleware/middleware-list.d.mts.map +1 -1
  790. package/esm/http/middleware/middleware-list.mjs +1 -1
  791. package/esm/http/middleware/middleware-list.mjs.map +1 -1
  792. package/esm/http/middleware/rate-limit.middleware.d.mts +20 -5
  793. package/esm/http/middleware/rate-limit.middleware.d.mts.map +1 -1
  794. package/esm/http/middleware/rate-limit.middleware.mjs +34 -12
  795. package/esm/http/middleware/rate-limit.middleware.mjs.map +1 -1
  796. package/esm/http/middleware/utils/cidr-match.d.mts +1 -1
  797. package/esm/http/middleware/utils/cidr-match.d.mts.map +1 -1
  798. package/esm/http/middleware/utils/cidr-match.mjs +1 -1
  799. package/esm/http/middleware/utils/cidr-match.mjs.map +1 -1
  800. package/esm/http/middleware/utils/idempotency-key.d.mts +1 -1
  801. package/esm/http/middleware/utils/idempotency-key.d.mts.map +1 -1
  802. package/esm/http/middleware/utils/idempotency-key.mjs +1 -1
  803. package/esm/http/middleware/utils/idempotency-key.mjs.map +1 -1
  804. package/esm/http/middleware/utils/parse-size.d.mts +1 -1
  805. package/esm/http/middleware/utils/parse-size.d.mts.map +1 -1
  806. package/esm/http/middleware/utils/parse-size.mjs +1 -1
  807. package/esm/http/middleware/utils/parse-size.mjs.map +1 -1
  808. package/esm/http/parse-urlencoded-body.mjs +1 -1
  809. package/esm/http/parse-urlencoded-body.mjs.map +1 -1
  810. package/esm/http/plugins.d.mts +9 -2
  811. package/esm/http/plugins.d.mts.map +1 -1
  812. package/esm/http/plugins.mjs +23 -6
  813. package/esm/http/plugins.mjs.map +1 -1
  814. package/esm/http/port-preflight.d.mts +1 -1
  815. package/esm/http/port-preflight.d.mts.map +1 -1
  816. package/esm/http/port-preflight.mjs +1 -1
  817. package/esm/http/port-preflight.mjs.map +1 -1
  818. package/esm/http/rate-limit-cache-store.mjs +156 -0
  819. package/esm/http/rate-limit-cache-store.mjs.map +1 -0
  820. package/esm/http/ready-report.d.mts +1 -1
  821. package/esm/http/ready-report.d.mts.map +1 -1
  822. package/esm/http/ready-report.mjs +1 -1
  823. package/esm/http/ready-report.mjs.map +1 -1
  824. package/esm/http/request-controller.d.mts +1 -1
  825. package/esm/http/request-controller.d.mts.map +1 -1
  826. package/esm/http/request-controller.mjs +1 -1
  827. package/esm/http/request-controller.mjs.map +1 -1
  828. package/esm/http/request-log-snapshot.d.mts +130 -0
  829. package/esm/http/request-log-snapshot.d.mts.map +1 -0
  830. package/esm/http/request-log-snapshot.mjs +220 -0
  831. package/esm/http/request-log-snapshot.mjs.map +1 -0
  832. package/esm/http/request.d.mts +43 -4
  833. package/esm/http/request.d.mts.map +1 -1
  834. package/esm/http/request.mjs +70 -6
  835. package/esm/http/request.mjs.map +1 -1
  836. package/esm/http/resolve-bind-port.mjs +1 -1
  837. package/esm/http/resolve-bind-port.mjs.map +1 -1
  838. package/esm/http/response.d.mts +51 -9
  839. package/esm/http/response.d.mts.map +1 -1
  840. package/esm/http/response.mjs +301 -101
  841. package/esm/http/response.mjs.map +1 -1
  842. package/esm/http/safe-redirect.d.mts +51 -0
  843. package/esm/http/safe-redirect.d.mts.map +1 -0
  844. package/esm/http/safe-redirect.mjs +80 -0
  845. package/esm/http/safe-redirect.mjs.map +1 -0
  846. package/esm/http/serialized.d.mts +1 -1
  847. package/esm/http/serialized.d.mts.map +1 -1
  848. package/esm/http/server-rebuilt.d.mts +1 -1
  849. package/esm/http/server-rebuilt.d.mts.map +1 -1
  850. package/esm/http/server-rebuilt.mjs +1 -1
  851. package/esm/http/server-rebuilt.mjs.map +1 -1
  852. package/esm/http/server.d.mts +36 -6
  853. package/esm/http/server.d.mts.map +1 -1
  854. package/esm/http/server.mjs +80 -5
  855. package/esm/http/server.mjs.map +1 -1
  856. package/esm/http/stream-react-response.d.mts +1 -1
  857. package/esm/http/stream-react-response.d.mts.map +1 -1
  858. package/esm/http/stream-react-response.mjs +1 -1
  859. package/esm/http/stream-react-response.mjs.map +1 -1
  860. package/esm/http/stream-transport.mjs +77 -0
  861. package/esm/http/stream-transport.mjs.map +1 -0
  862. package/esm/http/tracing/trace-id.d.mts +1 -1
  863. package/esm/http/tracing/trace-id.d.mts.map +1 -1
  864. package/esm/http/tracing/trace-id.mjs +1 -1
  865. package/esm/http/tracing/trace-id.mjs.map +1 -1
  866. package/esm/http/tracing/tracing-dispatcher.d.mts +1 -1
  867. package/esm/http/tracing/tracing-dispatcher.d.mts.map +1 -1
  868. package/esm/http/tracing/tracing-dispatcher.mjs +1 -1
  869. package/esm/http/tracing/tracing-dispatcher.mjs.map +1 -1
  870. package/esm/http/tracing/tracing.type.d.mts +1 -1
  871. package/esm/http/tracing/tracing.type.d.mts.map +1 -1
  872. package/esm/http/types.d.mts +165 -7
  873. package/esm/http/types.d.mts.map +1 -1
  874. package/esm/http/uploaded-file.d.mts +2 -2
  875. package/esm/http/uploaded-file.d.mts.map +1 -1
  876. package/esm/http/uploaded-file.mjs +2 -2
  877. package/esm/http/uploaded-file.mjs.map +1 -1
  878. package/esm/http/uploads/detect-image-format.mjs +1 -1
  879. package/esm/http/uploads/detect-image-format.mjs.map +1 -1
  880. package/esm/http/uploads/generate-image-variant.mjs +2 -2
  881. package/esm/http/uploads/generate-image-variant.mjs.map +1 -1
  882. package/esm/http/uploads/generate-image-variants.d.mts +11 -8
  883. package/esm/http/uploads/generate-image-variants.d.mts.map +1 -1
  884. package/esm/http/uploads/generate-image-variants.mjs +75 -30
  885. package/esm/http/uploads/generate-image-variants.mjs.map +1 -1
  886. package/esm/http/uploads/image-variant-cache-entries.mjs +78 -0
  887. package/esm/http/uploads/image-variant-cache-entries.mjs.map +1 -0
  888. package/esm/http/uploads/image-variant-cache.mjs +185 -0
  889. package/esm/http/uploads/image-variant-cache.mjs.map +1 -0
  890. package/esm/http/uploads/image-variant-types.d.mts +3 -1
  891. package/esm/http/uploads/image-variant-types.d.mts.map +1 -1
  892. package/esm/http/uploads/image-variants-config-error.d.mts +4 -2
  893. package/esm/http/uploads/image-variants-config-error.d.mts.map +1 -1
  894. package/esm/http/uploads/image-variants-config-error.mjs +4 -3
  895. package/esm/http/uploads/image-variants-config-error.mjs.map +1 -1
  896. package/esm/http/uploads/index.d.mts +3 -1
  897. package/esm/http/uploads/index.mjs +3 -1
  898. package/esm/http/uploads/is-path-inside.mjs +1 -1
  899. package/esm/http/uploads/is-path-inside.mjs.map +1 -1
  900. package/esm/http/uploads/load-variant-source.mjs +2 -2
  901. package/esm/http/uploads/load-variant-source.mjs.map +1 -1
  902. package/esm/http/uploads/local-disk-root.mjs +24 -0
  903. package/esm/http/uploads/local-disk-root.mjs.map +1 -0
  904. package/esm/http/uploads/parse-uploaded-file-query.mjs +1 -1
  905. package/esm/http/uploads/parse-uploaded-file-query.mjs.map +1 -1
  906. package/esm/http/uploads/purge-image-variants.d.mts +37 -0
  907. package/esm/http/uploads/purge-image-variants.d.mts.map +1 -0
  908. package/esm/http/uploads/purge-image-variants.mjs +46 -0
  909. package/esm/http/uploads/purge-image-variants.mjs.map +1 -0
  910. package/esm/http/uploads/read-file-head.mjs +1 -1
  911. package/esm/http/uploads/read-file-head.mjs.map +1 -1
  912. package/esm/http/uploads/remote-variant-source.mjs +115 -0
  913. package/esm/http/uploads/remote-variant-source.mjs.map +1 -0
  914. package/esm/http/uploads/resolve-image-variant.d.mts +72 -0
  915. package/esm/http/uploads/resolve-image-variant.d.mts.map +1 -0
  916. package/esm/http/uploads/resolve-image-variant.mjs +99 -0
  917. package/esm/http/uploads/resolve-image-variant.mjs.map +1 -0
  918. package/esm/http/uploads/resolve-image-variants-config.mjs +6 -4
  919. package/esm/http/uploads/resolve-image-variants-config.mjs.map +1 -1
  920. package/esm/http/uploads/resolve-inline-image-content-type.mjs +1 -1
  921. package/esm/http/uploads/resolve-inline-image-content-type.mjs.map +1 -1
  922. package/esm/http/uploads/resolve-original-content-type.mjs +1 -1
  923. package/esm/http/uploads/resolve-original-content-type.mjs.map +1 -1
  924. package/esm/http/uploads/resolve-remote-image-variant.mjs +89 -0
  925. package/esm/http/uploads/resolve-remote-image-variant.mjs.map +1 -0
  926. package/esm/http/uploads/resolve-upload-path.mjs +3 -2
  927. package/esm/http/uploads/resolve-upload-path.mjs.map +1 -1
  928. package/esm/http/uploads/resolve-variant-candidate.mjs +1 -1
  929. package/esm/http/uploads/resolve-variant-candidate.mjs.map +1 -1
  930. package/esm/http/uploads/single-flight.mjs +1 -1
  931. package/esm/http/uploads/single-flight.mjs.map +1 -1
  932. package/esm/http/uploads/trim-image-variant-cache.mjs +193 -0
  933. package/esm/http/uploads/trim-image-variant-cache.mjs.map +1 -0
  934. package/esm/http/uploads/uploaded-file.controller.d.mts +27 -7
  935. package/esm/http/uploads/uploaded-file.controller.d.mts.map +1 -1
  936. package/esm/http/uploads/uploaded-file.controller.mjs +72 -92
  937. package/esm/http/uploads/uploaded-file.controller.mjs.map +1 -1
  938. package/esm/http/uploads/variant-cache-key.mjs +31 -6
  939. package/esm/http/uploads/variant-cache-key.mjs.map +1 -1
  940. package/esm/http/uploads/variant-generations.mjs +1 -1
  941. package/esm/http/uploads/variant-generations.mjs.map +1 -1
  942. package/esm/http/uploads-config.d.mts +1 -1
  943. package/esm/http/uploads-config.d.mts.map +1 -1
  944. package/esm/http/uploads-config.mjs +1 -1
  945. package/esm/http/uploads-config.mjs.map +1 -1
  946. package/esm/http/uploads-types.d.mts +7 -3
  947. package/esm/http/uploads-types.d.mts.map +1 -1
  948. package/esm/http/xmlable.d.mts +1 -1
  949. package/esm/http/xmlable.d.mts.map +1 -1
  950. package/esm/image/image.d.mts +1 -1
  951. package/esm/image/image.d.mts.map +1 -1
  952. package/esm/image/image.mjs +1 -1
  953. package/esm/image/image.mjs.map +1 -1
  954. package/esm/index.d.mts +27 -12
  955. package/esm/index.mjs +23 -9
  956. package/esm/loader/app-module-importer.d.mts +1 -1
  957. package/esm/loader/app-module-importer.d.mts.map +1 -1
  958. package/esm/loader/app-module-importer.mjs +1 -1
  959. package/esm/loader/app-module-importer.mjs.map +1 -1
  960. package/esm/localization/parse-locale-dictionary.d.mts +3 -1
  961. package/esm/localization/parse-locale-dictionary.d.mts.map +1 -1
  962. package/esm/localization/parse-locale-dictionary.mjs +2 -1
  963. package/esm/localization/parse-locale-dictionary.mjs.map +1 -1
  964. package/esm/localization/register-locale-dictionary.d.mts +1 -1
  965. package/esm/localization/register-locale-dictionary.d.mts.map +1 -1
  966. package/esm/localization/register-locale-dictionary.mjs +1 -1
  967. package/esm/localization/register-locale-dictionary.mjs.map +1 -1
  968. package/esm/logger/fatal-visibility.d.mts +1 -1
  969. package/esm/logger/fatal-visibility.d.mts.map +1 -1
  970. package/esm/logger/fatal-visibility.mjs +1 -1
  971. package/esm/logger/fatal-visibility.mjs.map +1 -1
  972. package/esm/logger/logger.d.mts +1 -1
  973. package/esm/logger/logger.d.mts.map +1 -1
  974. package/esm/logger/logger.mjs +1 -1
  975. package/esm/logger/logger.mjs.map +1 -1
  976. package/esm/logger/types.d.mts +1 -1
  977. package/esm/logger/types.d.mts.map +1 -1
  978. package/esm/mail/config.d.mts +13 -2
  979. package/esm/mail/config.d.mts.map +1 -1
  980. package/esm/mail/config.mjs +17 -2
  981. package/esm/mail/config.mjs.map +1 -1
  982. package/esm/mail/events.d.mts +1 -1
  983. package/esm/mail/events.d.mts.map +1 -1
  984. package/esm/mail/events.mjs +1 -1
  985. package/esm/mail/events.mjs.map +1 -1
  986. package/esm/mail/index.d.mts +1 -1
  987. package/esm/mail/index.mjs +1 -1
  988. package/esm/mail/mail.d.mts +1 -1
  989. package/esm/mail/mail.d.mts.map +1 -1
  990. package/esm/mail/mail.mjs +1 -1
  991. package/esm/mail/mail.mjs.map +1 -1
  992. package/esm/mail/mailer-pool.d.mts +1 -1
  993. package/esm/mail/mailer-pool.d.mts.map +1 -1
  994. package/esm/mail/mailer-pool.mjs +1 -1
  995. package/esm/mail/mailer-pool.mjs.map +1 -1
  996. package/esm/mail/react-mail.d.mts +1 -1
  997. package/esm/mail/react-mail.d.mts.map +1 -1
  998. package/esm/mail/react-mail.mjs +1 -1
  999. package/esm/mail/react-mail.mjs.map +1 -1
  1000. package/esm/mail/send-mail.d.mts +1 -1
  1001. package/esm/mail/send-mail.d.mts.map +1 -1
  1002. package/esm/mail/send-mail.mjs +7 -7
  1003. package/esm/mail/send-mail.mjs.map +1 -1
  1004. package/esm/mail/test-mailbox.d.mts +1 -1
  1005. package/esm/mail/test-mailbox.d.mts.map +1 -1
  1006. package/esm/mail/test-mailbox.mjs +1 -1
  1007. package/esm/mail/test-mailbox.mjs.map +1 -1
  1008. package/esm/mail/types.d.mts +1 -1
  1009. package/esm/mail/types.d.mts.map +1 -1
  1010. package/esm/mail/types.mjs +1 -1
  1011. package/esm/mail/types.mjs.map +1 -1
  1012. package/esm/manifest/manifest-manager.mjs +1 -1
  1013. package/esm/manifest/manifest-manager.mjs.map +1 -1
  1014. package/esm/net/index.d.mts +2 -0
  1015. package/esm/net/index.mjs +3 -0
  1016. package/esm/openapi/build-openapi-document.d.mts +1 -1
  1017. package/esm/openapi/build-openapi-document.d.mts.map +1 -1
  1018. package/esm/openapi/build-openapi-document.mjs +9 -6
  1019. package/esm/openapi/build-openapi-document.mjs.map +1 -1
  1020. package/esm/openapi/cast-schema.mjs +1 -1
  1021. package/esm/openapi/cast-schema.mjs.map +1 -1
  1022. package/esm/openapi/collect-openapi-document.mjs +1 -1
  1023. package/esm/openapi/collect-openapi-document.mjs.map +1 -1
  1024. package/esm/openapi/development-openapi-provider.d.mts +1 -1
  1025. package/esm/openapi/development-openapi-provider.d.mts.map +1 -1
  1026. package/esm/openapi/development-openapi-provider.mjs +1 -1
  1027. package/esm/openapi/development-openapi-provider.mjs.map +1 -1
  1028. package/esm/openapi/error-responses.mjs +29 -3
  1029. package/esm/openapi/error-responses.mjs.map +1 -1
  1030. package/esm/openapi/openapi-child-output.mjs +1 -1
  1031. package/esm/openapi/openapi-child-output.mjs.map +1 -1
  1032. package/esm/openapi/openapi-protocol.mjs +1 -1
  1033. package/esm/openapi/openapi-protocol.mjs.map +1 -1
  1034. package/esm/openapi/paths.mjs +1 -1
  1035. package/esm/openapi/paths.mjs.map +1 -1
  1036. package/esm/openapi/postman/build-request-body.mjs +1 -1
  1037. package/esm/openapi/postman/build-request-body.mjs.map +1 -1
  1038. package/esm/openapi/postman/build-request-url.mjs +1 -1
  1039. package/esm/openapi/postman/build-request-url.mjs.map +1 -1
  1040. package/esm/openapi/postman/build-saved-responses.mjs +1 -1
  1041. package/esm/openapi/postman/build-saved-responses.mjs.map +1 -1
  1042. package/esm/openapi/postman/example-from-schema.d.mts +1 -1
  1043. package/esm/openapi/postman/example-from-schema.d.mts.map +1 -1
  1044. package/esm/openapi/postman/example-from-schema.mjs +1 -1
  1045. package/esm/openapi/postman/example-from-schema.mjs.map +1 -1
  1046. package/esm/openapi/postman/http-status-text.mjs +1 -1
  1047. package/esm/openapi/postman/http-status-text.mjs.map +1 -1
  1048. package/esm/openapi/postman/openapi-to-postman-collection.d.mts +1 -1
  1049. package/esm/openapi/postman/openapi-to-postman-collection.d.mts.map +1 -1
  1050. package/esm/openapi/postman/openapi-to-postman-collection.mjs +1 -1
  1051. package/esm/openapi/postman/openapi-to-postman-collection.mjs.map +1 -1
  1052. package/esm/openapi/postman/postman-types.d.mts +1 -1
  1053. package/esm/openapi/postman/postman-types.d.mts.map +1 -1
  1054. package/esm/openapi/postman/resolve-operation-auth.mjs +1 -1
  1055. package/esm/openapi/postman/resolve-operation-auth.mjs.map +1 -1
  1056. package/esm/openapi/postman/schema-refs.d.mts +1 -1
  1057. package/esm/openapi/postman/schema-refs.d.mts.map +1 -1
  1058. package/esm/openapi/postman/schema-refs.mjs +1 -1
  1059. package/esm/openapi/postman/schema-refs.mjs.map +1 -1
  1060. package/esm/openapi/postman/uuid-v5.mjs +1 -1
  1061. package/esm/openapi/postman/uuid-v5.mjs.map +1 -1
  1062. package/esm/openapi/request-schemas.mjs +1 -1
  1063. package/esm/openapi/request-schemas.mjs.map +1 -1
  1064. package/esm/openapi/response-schemas.mjs +1 -1
  1065. package/esm/openapi/response-schemas.mjs.map +1 -1
  1066. package/esm/openapi/schema-registry.d.mts +1 -0
  1067. package/esm/openapi/schema-registry.mjs +1 -1
  1068. package/esm/openapi/schema-registry.mjs.map +1 -1
  1069. package/esm/openapi/security.mjs +1 -1
  1070. package/esm/openapi/security.mjs.map +1 -1
  1071. package/esm/openapi/types.d.mts +4 -3
  1072. package/esm/openapi/types.d.mts.map +1 -1
  1073. package/esm/production/assert-dist-ready-to-start.mjs +1 -1
  1074. package/esm/production/assert-dist-ready-to-start.mjs.map +1 -1
  1075. package/esm/production/assert-generated-imports.mjs +2 -1
  1076. package/esm/production/assert-generated-imports.mjs.map +1 -1
  1077. package/esm/production/build-app-production.mjs +1 -1
  1078. package/esm/production/build-app-production.mjs.map +1 -1
  1079. package/esm/production/build-contributions.mjs +1 -1
  1080. package/esm/production/build-contributions.mjs.map +1 -1
  1081. package/esm/production/bundle-framework-dependencies.mjs +1 -1
  1082. package/esm/production/bundle-framework-dependencies.mjs.map +1 -1
  1083. package/esm/production/dist-build-manifest.mjs +1 -1
  1084. package/esm/production/dist-build-manifest.mjs.map +1 -1
  1085. package/esm/production/esbuild-plugins.mjs +1 -1
  1086. package/esm/production/esbuild-plugins.mjs.map +1 -1
  1087. package/esm/production/esbuild-preflight.mjs +1 -1
  1088. package/esm/production/esbuild-preflight.mjs.map +1 -1
  1089. package/esm/production/production-builder.mjs +13 -5
  1090. package/esm/production/production-builder.mjs.map +1 -1
  1091. package/esm/production/production-supervisor.mjs +1 -1
  1092. package/esm/production/production-supervisor.mjs.map +1 -1
  1093. package/esm/production/promote-dist.mjs +1 -1
  1094. package/esm/production/promote-dist.mjs.map +1 -1
  1095. package/esm/production/registration-child-runner.mjs +1 -1
  1096. package/esm/production/registration-child-runner.mjs.map +1 -1
  1097. package/esm/production/resolve-build-config.d.mts +1 -1
  1098. package/esm/production/resolve-build-config.d.mts.map +1 -1
  1099. package/esm/production/resolve-build-config.mjs +2 -1
  1100. package/esm/production/resolve-build-config.mjs.map +1 -1
  1101. package/esm/production/route-registration-child.mjs +1 -1
  1102. package/esm/production/route-registration-child.mjs.map +1 -1
  1103. package/esm/production/route-registration-snapshot.mjs +1 -1
  1104. package/esm/production/route-registration-snapshot.mjs.map +1 -1
  1105. package/esm/production/tsconfig-path-aliases.mjs +1 -1
  1106. package/esm/production/tsconfig-path-aliases.mjs.map +1 -1
  1107. package/esm/react/index.d.mts +1 -1
  1108. package/esm/react/index.d.mts.map +1 -1
  1109. package/esm/react/index.mjs +1 -1
  1110. package/esm/react/index.mjs.map +1 -1
  1111. package/esm/repositories/adapters/cascade/cascade-adapter.d.mts +1 -1
  1112. package/esm/repositories/adapters/cascade/cascade-adapter.d.mts.map +1 -1
  1113. package/esm/repositories/adapters/cascade/cascade-adapter.mjs +1 -1
  1114. package/esm/repositories/adapters/cascade/cascade-adapter.mjs.map +1 -1
  1115. package/esm/repositories/adapters/cascade/cascade-query-builder.d.mts +1 -1
  1116. package/esm/repositories/adapters/cascade/cascade-query-builder.d.mts.map +1 -1
  1117. package/esm/repositories/adapters/cascade/cascade-query-builder.mjs +1 -1
  1118. package/esm/repositories/adapters/cascade/cascade-query-builder.mjs.map +1 -1
  1119. package/esm/repositories/adapters/cascade/filter-applicator.mjs +1 -1
  1120. package/esm/repositories/adapters/cascade/filter-applicator.mjs.map +1 -1
  1121. package/esm/repositories/contracts/query-builder.contract.d.mts +1 -1
  1122. package/esm/repositories/contracts/query-builder.contract.d.mts.map +1 -1
  1123. package/esm/repositories/contracts/repository-adapter.contract.d.mts +1 -1
  1124. package/esm/repositories/contracts/repository-adapter.contract.d.mts.map +1 -1
  1125. package/esm/repositories/contracts/types.d.mts +1 -1
  1126. package/esm/repositories/contracts/types.d.mts.map +1 -1
  1127. package/esm/repositories/repository.manager.d.mts +1 -1
  1128. package/esm/repositories/repository.manager.d.mts.map +1 -1
  1129. package/esm/repositories/repository.manager.mjs +1 -1
  1130. package/esm/repositories/repository.manager.mjs.map +1 -1
  1131. package/esm/resource/define-resource.d.mts +1 -1
  1132. package/esm/resource/define-resource.d.mts.map +1 -1
  1133. package/esm/resource/define-resource.mjs +1 -1
  1134. package/esm/resource/define-resource.mjs.map +1 -1
  1135. package/esm/resource/nullable-resource.d.mts +1 -1
  1136. package/esm/resource/nullable-resource.d.mts.map +1 -1
  1137. package/esm/resource/nullable-resource.mjs +1 -1
  1138. package/esm/resource/nullable-resource.mjs.map +1 -1
  1139. package/esm/resource/register-resource.d.mts +1 -1
  1140. package/esm/resource/register-resource.d.mts.map +1 -1
  1141. package/esm/resource/register-resource.mjs +1 -1
  1142. package/esm/resource/register-resource.mjs.map +1 -1
  1143. package/esm/resource/resource-field-builder.d.mts +1 -1
  1144. package/esm/resource/resource-field-builder.d.mts.map +1 -1
  1145. package/esm/resource/resource-field-builder.mjs +1 -1
  1146. package/esm/resource/resource-field-builder.mjs.map +1 -1
  1147. package/esm/resource/resource.d.mts +1 -1
  1148. package/esm/resource/resource.d.mts.map +1 -1
  1149. package/esm/resource/resource.mjs +1 -1
  1150. package/esm/resource/resource.mjs.map +1 -1
  1151. package/esm/resource/types.d.mts +1 -1
  1152. package/esm/resource/types.d.mts.map +1 -1
  1153. package/esm/restful/restful.d.mts +6 -6
  1154. package/esm/restful/restful.d.mts.map +1 -1
  1155. package/esm/restful/restful.mjs +1 -1
  1156. package/esm/restful/restful.mjs.map +1 -1
  1157. package/esm/router/build-route-rate-limit.mjs +1 -1
  1158. package/esm/router/build-route-rate-limit.mjs.map +1 -1
  1159. package/esm/router/describe-route-for-log.mjs +1 -1
  1160. package/esm/router/describe-route-for-log.mjs.map +1 -1
  1161. package/esm/router/dev-dispatch.mjs +32 -13
  1162. package/esm/router/dev-dispatch.mjs.map +1 -1
  1163. package/esm/router/index.d.mts +4 -2
  1164. package/esm/router/index.mjs +2 -0
  1165. package/esm/router/log-request-lifecycle.mjs +1 -1
  1166. package/esm/router/log-request-lifecycle.mjs.map +1 -1
  1167. package/esm/router/named-api-routes-with-responses.mjs +1 -1
  1168. package/esm/router/named-api-routes-with-responses.mjs.map +1 -1
  1169. package/esm/router/normalize-request-path.d.mts +1 -1
  1170. package/esm/router/normalize-request-path.d.mts.map +1 -1
  1171. package/esm/router/normalize-request-path.mjs +1 -1
  1172. package/esm/router/normalize-request-path.mjs.map +1 -1
  1173. package/esm/router/normalize-route-path.d.mts +1 -1
  1174. package/esm/router/normalize-route-path.d.mts.map +1 -1
  1175. package/esm/router/normalize-route-path.mjs +1 -1
  1176. package/esm/router/normalize-route-path.mjs.map +1 -1
  1177. package/esm/router/positional-handler-diagnostics.d.mts +1 -1
  1178. package/esm/router/positional-handler-diagnostics.d.mts.map +1 -1
  1179. package/esm/router/positional-handler-diagnostics.mjs +1 -1
  1180. package/esm/router/positional-handler-diagnostics.mjs.map +1 -1
  1181. package/esm/router/resolve-route-rate-limit.mjs +47 -0
  1182. package/esm/router/resolve-route-rate-limit.mjs.map +1 -0
  1183. package/esm/router/resolve-route-validation.mjs +19 -0
  1184. package/esm/router/resolve-route-validation.mjs.map +1 -0
  1185. package/esm/router/response-schema-types.mjs +1 -1
  1186. package/esm/router/response-schema-types.mjs.map +1 -1
  1187. package/esm/router/route-builder.d.mts +1 -1
  1188. package/esm/router/route-builder.d.mts.map +1 -1
  1189. package/esm/router/route-builder.mjs +1 -1
  1190. package/esm/router/route-builder.mjs.map +1 -1
  1191. package/esm/router/route-guard-names.mjs +30 -0
  1192. package/esm/router/route-guard-names.mjs.map +1 -0
  1193. package/esm/router/route-name-method-suffix.d.mts +1 -1
  1194. package/esm/router/route-name-method-suffix.d.mts.map +1 -1
  1195. package/esm/router/route-name-method-suffix.mjs +1 -1
  1196. package/esm/router/route-name-method-suffix.mjs.map +1 -1
  1197. package/esm/router/route-name-taken-error.d.mts +14 -0
  1198. package/esm/router/route-name-taken-error.d.mts.map +1 -0
  1199. package/esm/router/route-name-taken-error.mjs +18 -0
  1200. package/esm/router/route-name-taken-error.mjs.map +1 -0
  1201. package/esm/router/route-registry.d.mts +1 -1
  1202. package/esm/router/route-registry.d.mts.map +1 -1
  1203. package/esm/router/route-registry.mjs +1 -1
  1204. package/esm/router/route-registry.mjs.map +1 -1
  1205. package/esm/router/router.d.mts +35 -9
  1206. package/esm/router/router.d.mts.map +1 -1
  1207. package/esm/router/router.mjs +78 -40
  1208. package/esm/router/router.mjs.map +1 -1
  1209. package/esm/router/types.d.mts +150 -18
  1210. package/esm/router/types.d.mts.map +1 -1
  1211. package/esm/router/unguarded-route-diagnostics.d.mts +40 -0
  1212. package/esm/router/unguarded-route-diagnostics.d.mts.map +1 -0
  1213. package/esm/router/unguarded-route-diagnostics.mjs +95 -0
  1214. package/esm/router/unguarded-route-diagnostics.mjs.map +1 -0
  1215. package/esm/socket/types.d.mts +1 -1
  1216. package/esm/socket/types.d.mts.map +1 -1
  1217. package/esm/socket/utils.d.mts +1 -1
  1218. package/esm/socket/utils.d.mts.map +1 -1
  1219. package/esm/socket/utils.mjs +1 -1
  1220. package/esm/socket/utils.mjs.map +1 -1
  1221. package/esm/storage/config.d.mts +1 -1
  1222. package/esm/storage/config.d.mts.map +1 -1
  1223. package/esm/storage/config.mjs +1 -1
  1224. package/esm/storage/config.mjs.map +1 -1
  1225. package/esm/storage/context/storage-driver-context.d.mts +1 -1
  1226. package/esm/storage/context/storage-driver-context.d.mts.map +1 -1
  1227. package/esm/storage/context/storage-driver-context.mjs +1 -1
  1228. package/esm/storage/context/storage-driver-context.mjs.map +1 -1
  1229. package/esm/storage/drivers/cloud-driver.d.mts +1 -1
  1230. package/esm/storage/drivers/cloud-driver.d.mts.map +1 -1
  1231. package/esm/storage/drivers/cloud-driver.mjs +1 -1
  1232. package/esm/storage/drivers/cloud-driver.mjs.map +1 -1
  1233. package/esm/storage/drivers/do-spaces-driver.d.mts +1 -1
  1234. package/esm/storage/drivers/do-spaces-driver.d.mts.map +1 -1
  1235. package/esm/storage/drivers/do-spaces-driver.mjs +1 -1
  1236. package/esm/storage/drivers/do-spaces-driver.mjs.map +1 -1
  1237. package/esm/storage/drivers/local-driver.d.mts +12 -1
  1238. package/esm/storage/drivers/local-driver.d.mts.map +1 -1
  1239. package/esm/storage/drivers/local-driver.mjs +33 -1
  1240. package/esm/storage/drivers/local-driver.mjs.map +1 -1
  1241. package/esm/storage/drivers/r2-driver.d.mts +1 -1
  1242. package/esm/storage/drivers/r2-driver.d.mts.map +1 -1
  1243. package/esm/storage/drivers/r2-driver.mjs +1 -1
  1244. package/esm/storage/drivers/r2-driver.mjs.map +1 -1
  1245. package/esm/storage/drivers/s3-driver.d.mts +1 -1
  1246. package/esm/storage/drivers/s3-driver.d.mts.map +1 -1
  1247. package/esm/storage/drivers/s3-driver.mjs +1 -1
  1248. package/esm/storage/drivers/s3-driver.mjs.map +1 -1
  1249. package/esm/storage/index.d.mts +1 -1
  1250. package/esm/storage/local-disk-roots.mjs +24 -0
  1251. package/esm/storage/local-disk-roots.mjs.map +1 -0
  1252. package/esm/storage/scoped-storage.d.mts +1 -1
  1253. package/esm/storage/scoped-storage.d.mts.map +1 -1
  1254. package/esm/storage/scoped-storage.mjs +1 -1
  1255. package/esm/storage/scoped-storage.mjs.map +1 -1
  1256. package/esm/storage/storage-file.d.mts +1 -1
  1257. package/esm/storage/storage-file.d.mts.map +1 -1
  1258. package/esm/storage/storage-file.mjs +1 -1
  1259. package/esm/storage/storage-file.mjs.map +1 -1
  1260. package/esm/storage/storage.d.mts +17 -3
  1261. package/esm/storage/storage.d.mts.map +1 -1
  1262. package/esm/storage/storage.mjs +23 -1
  1263. package/esm/storage/storage.mjs.map +1 -1
  1264. package/esm/storage/types.d.mts +3 -2
  1265. package/esm/storage/types.d.mts.map +1 -1
  1266. package/esm/storage/utils/classify-ip-address.d.mts +1 -1
  1267. package/esm/storage/utils/classify-ip-address.d.mts.map +1 -1
  1268. package/esm/storage/utils/classify-ip-address.mjs +1 -1
  1269. package/esm/storage/utils/classify-ip-address.mjs.map +1 -1
  1270. package/esm/storage/utils/contain-path.d.mts +1 -1
  1271. package/esm/storage/utils/contain-path.d.mts.map +1 -1
  1272. package/esm/storage/utils/contain-path.mjs +1 -1
  1273. package/esm/storage/utils/contain-path.mjs.map +1 -1
  1274. package/esm/storage/utils/mime.d.mts +1 -1
  1275. package/esm/storage/utils/mime.d.mts.map +1 -1
  1276. package/esm/storage/utils/mime.mjs +1 -1
  1277. package/esm/storage/utils/mime.mjs.map +1 -1
  1278. package/esm/storage/utils/safe-fetch.d.mts +1 -1
  1279. package/esm/storage/utils/safe-fetch.d.mts.map +1 -1
  1280. package/esm/storage/utils/safe-fetch.mjs +1 -1
  1281. package/esm/storage/utils/safe-fetch.mjs.map +1 -1
  1282. package/esm/storage/utils/storage-capability-error.d.mts +1 -1
  1283. package/esm/storage/utils/storage-capability-error.d.mts.map +1 -1
  1284. package/esm/storage/utils/storage-capability-error.mjs +1 -1
  1285. package/esm/storage/utils/storage-capability-error.mjs.map +1 -1
  1286. package/esm/storage/utils/storage-error.d.mts +1 -1
  1287. package/esm/storage/utils/storage-error.d.mts.map +1 -1
  1288. package/esm/storage/utils/storage-error.mjs +1 -1
  1289. package/esm/storage/utils/storage-error.mjs.map +1 -1
  1290. package/esm/storage/utils/storage-not-initialized-error.d.mts +3 -1
  1291. package/esm/storage/utils/storage-not-initialized-error.d.mts.map +1 -1
  1292. package/esm/storage/utils/storage-not-initialized-error.mjs +2 -1
  1293. package/esm/storage/utils/storage-not-initialized-error.mjs.map +1 -1
  1294. package/esm/tests/authenticated-test-client.d.mts +32 -0
  1295. package/esm/tests/authenticated-test-client.d.mts.map +1 -0
  1296. package/esm/tests/authenticated-test-client.mjs +40 -0
  1297. package/esm/tests/authenticated-test-client.mjs.map +1 -0
  1298. package/esm/tests/factories.d.mts +59 -0
  1299. package/esm/tests/factories.d.mts.map +1 -0
  1300. package/esm/tests/factories.mjs +105 -0
  1301. package/esm/tests/factories.mjs.map +1 -0
  1302. package/esm/tests/fakes/cache-fake.d.mts +29 -0
  1303. package/esm/tests/fakes/cache-fake.d.mts.map +1 -0
  1304. package/esm/tests/fakes/cache-fake.mjs +79 -0
  1305. package/esm/tests/fakes/cache-fake.mjs.map +1 -0
  1306. package/esm/tests/fakes/clock-fake.d.mts +32 -0
  1307. package/esm/tests/fakes/clock-fake.d.mts.map +1 -0
  1308. package/esm/tests/fakes/clock-fake.mjs +69 -0
  1309. package/esm/tests/fakes/clock-fake.mjs.map +1 -0
  1310. package/esm/tests/fakes/fake-assertion-error.d.mts +13 -0
  1311. package/esm/tests/fakes/fake-assertion-error.d.mts.map +1 -0
  1312. package/esm/tests/fakes/fake-assertion-error.mjs +20 -0
  1313. package/esm/tests/fakes/fake-assertion-error.mjs.map +1 -0
  1314. package/esm/tests/fakes/ids-fake.d.mts +22 -0
  1315. package/esm/tests/fakes/ids-fake.d.mts.map +1 -0
  1316. package/esm/tests/fakes/ids-fake.mjs +57 -0
  1317. package/esm/tests/fakes/ids-fake.mjs.map +1 -0
  1318. package/esm/tests/fakes/index.d.mts +8 -0
  1319. package/esm/tests/fakes/index.mjs +10 -0
  1320. package/esm/tests/fakes/mail-fake.d.mts +41 -0
  1321. package/esm/tests/fakes/mail-fake.d.mts.map +1 -0
  1322. package/esm/tests/fakes/mail-fake.mjs +111 -0
  1323. package/esm/tests/fakes/mail-fake.mjs.map +1 -0
  1324. package/esm/tests/fakes/queue-fake.d.mts +48 -0
  1325. package/esm/tests/fakes/queue-fake.d.mts.map +1 -0
  1326. package/esm/tests/fakes/queue-fake.mjs +134 -0
  1327. package/esm/tests/fakes/queue-fake.mjs.map +1 -0
  1328. package/esm/tests/fakes/storage-fake.d.mts +31 -0
  1329. package/esm/tests/fakes/storage-fake.d.mts.map +1 -0
  1330. package/esm/tests/fakes/storage-fake.mjs +122 -0
  1331. package/esm/tests/fakes/storage-fake.mjs.map +1 -0
  1332. package/esm/tests/fakes/test-fakes.d.mts +39 -0
  1333. package/esm/tests/fakes/test-fakes.d.mts.map +1 -0
  1334. package/esm/tests/fakes/test-fakes.mjs +90 -0
  1335. package/esm/tests/fakes/test-fakes.mjs.map +1 -0
  1336. package/esm/tests/index.d.mts +14 -2
  1337. package/esm/tests/index.mjs +15 -2
  1338. package/esm/tests/snapshot-response.d.mts +34 -0
  1339. package/esm/tests/snapshot-response.d.mts.map +1 -0
  1340. package/esm/tests/snapshot-response.mjs +42 -0
  1341. package/esm/tests/snapshot-response.mjs.map +1 -0
  1342. package/esm/tests/start-http-development-server.d.mts +23 -1
  1343. package/esm/tests/start-http-development-server.d.mts.map +1 -1
  1344. package/esm/tests/start-http-development-server.mjs +37 -4
  1345. package/esm/tests/start-http-development-server.mjs.map +1 -1
  1346. package/esm/tests/test-connectors-selection.d.mts +1 -1
  1347. package/esm/tests/test-connectors-selection.d.mts.map +1 -1
  1348. package/esm/tests/test-connectors-selection.mjs +1 -1
  1349. package/esm/tests/test-connectors-selection.mjs.map +1 -1
  1350. package/esm/tests/test-helpers.d.mts +21 -2
  1351. package/esm/tests/test-helpers.d.mts.map +1 -1
  1352. package/esm/tests/test-helpers.mjs +41 -28
  1353. package/esm/tests/test-helpers.mjs.map +1 -1
  1354. package/esm/tests/test-http-server.d.mts +62 -0
  1355. package/esm/tests/test-http-server.d.mts.map +1 -0
  1356. package/esm/tests/test-http-server.mjs +119 -0
  1357. package/esm/tests/test-http-server.mjs.map +1 -0
  1358. package/esm/tests/test-lifecycle-state.mjs +1 -1
  1359. package/esm/tests/test-lifecycle-state.mjs.map +1 -1
  1360. package/esm/tests/test-server-port-channel.mjs +1 -1
  1361. package/esm/tests/test-server-port-channel.mjs.map +1 -1
  1362. package/esm/tests/test-setup-timeout.mjs +1 -1
  1363. package/esm/tests/test-setup-timeout.mjs.map +1 -1
  1364. package/esm/tests/vitest-setup.d.mts +12 -1
  1365. package/esm/tests/vitest-setup.d.mts.map +1 -1
  1366. package/esm/tests/vitest-setup.mjs +13 -5
  1367. package/esm/tests/vitest-setup.mjs.map +1 -1
  1368. package/esm/tooling/agents-md/agents-md-markers.d.mts +27 -0
  1369. package/esm/tooling/agents-md/agents-md-markers.d.mts.map +1 -0
  1370. package/esm/tooling/agents-md/agents-md-markers.mjs +59 -0
  1371. package/esm/tooling/agents-md/agents-md-markers.mjs.map +1 -0
  1372. package/esm/tooling/agents-md/agents-md-refresher.d.mts +36 -0
  1373. package/esm/tooling/agents-md/agents-md-refresher.d.mts.map +1 -0
  1374. package/esm/tooling/agents-md/agents-md-refresher.mjs +72 -0
  1375. package/esm/tooling/agents-md/agents-md-refresher.mjs.map +1 -0
  1376. package/esm/tooling/agents-md/index.mjs +7 -0
  1377. package/esm/tooling/agents-md/installed-skills.d.mts +30 -0
  1378. package/esm/tooling/agents-md/installed-skills.d.mts.map +1 -0
  1379. package/esm/tooling/agents-md/installed-skills.mjs +74 -0
  1380. package/esm/tooling/agents-md/installed-skills.mjs.map +1 -0
  1381. package/esm/tooling/agents-md/render-agents-md.d.mts +33 -0
  1382. package/esm/tooling/agents-md/render-agents-md.d.mts.map +1 -0
  1383. package/esm/tooling/agents-md/render-agents-md.mjs +195 -0
  1384. package/esm/tooling/agents-md/render-agents-md.mjs.map +1 -0
  1385. package/esm/tooling/agents-md/write-agents-md.d.mts +33 -0
  1386. package/esm/tooling/agents-md/write-agents-md.d.mts.map +1 -0
  1387. package/esm/tooling/agents-md/write-agents-md.mjs +49 -0
  1388. package/esm/tooling/agents-md/write-agents-md.mjs.map +1 -0
  1389. package/esm/tooling/board/board-message.d.mts +31 -0
  1390. package/esm/tooling/board/board-message.d.mts.map +1 -0
  1391. package/esm/tooling/board/board-message.mjs +86 -0
  1392. package/esm/tooling/board/board-message.mjs.map +1 -0
  1393. package/esm/tooling/board/board.d.mts +109 -0
  1394. package/esm/tooling/board/board.d.mts.map +1 -0
  1395. package/esm/tooling/board/board.mjs +406 -0
  1396. package/esm/tooling/board/board.mjs.map +1 -0
  1397. package/esm/tooling/board/board.types.d.mts +72 -0
  1398. package/esm/tooling/board/board.types.d.mts.map +1 -0
  1399. package/esm/tooling/board/board.types.mjs +54 -0
  1400. package/esm/tooling/board/board.types.mjs.map +1 -0
  1401. package/esm/tooling/check/changed-files.d.mts +33 -0
  1402. package/esm/tooling/check/changed-files.d.mts.map +1 -0
  1403. package/esm/tooling/check/changed-files.mjs +73 -0
  1404. package/esm/tooling/check/changed-files.mjs.map +1 -0
  1405. package/esm/tooling/check/check-report.types.d.mts +62 -0
  1406. package/esm/tooling/check/check-report.types.d.mts.map +1 -0
  1407. package/esm/tooling/check/check-report.types.mjs +37 -0
  1408. package/esm/tooling/check/check-report.types.mjs.map +1 -0
  1409. package/esm/tooling/check/code-style-conventions.mjs +106 -0
  1410. package/esm/tooling/check/code-style-conventions.mjs.map +1 -0
  1411. package/esm/tooling/check/conventions-step.d.mts +34 -0
  1412. package/esm/tooling/check/conventions-step.d.mts.map +1 -0
  1413. package/esm/tooling/check/conventions-step.mjs +184 -0
  1414. package/esm/tooling/check/conventions-step.mjs.map +1 -0
  1415. package/esm/tooling/check/environment-step.d.mts +18 -0
  1416. package/esm/tooling/check/environment-step.d.mts.map +1 -0
  1417. package/esm/tooling/check/environment-step.mjs +78 -0
  1418. package/esm/tooling/check/environment-step.mjs.map +1 -0
  1419. package/esm/tooling/check/index.d.mts +8 -0
  1420. package/esm/tooling/check/index.mjs +10 -0
  1421. package/esm/tooling/check/lint-step.d.mts +19 -0
  1422. package/esm/tooling/check/lint-step.d.mts.map +1 -0
  1423. package/esm/tooling/check/lint-step.mjs +111 -0
  1424. package/esm/tooling/check/lint-step.mjs.map +1 -0
  1425. package/esm/tooling/check/request-input.mjs +132 -0
  1426. package/esm/tooling/check/request-input.mjs.map +1 -0
  1427. package/esm/tooling/check/run-check.d.mts +35 -0
  1428. package/esm/tooling/check/run-check.d.mts.map +1 -0
  1429. package/esm/tooling/check/run-check.mjs +192 -0
  1430. package/esm/tooling/check/run-check.mjs.map +1 -0
  1431. package/esm/tooling/check/run-tests.d.mts +48 -0
  1432. package/esm/tooling/check/run-tests.d.mts.map +1 -0
  1433. package/esm/tooling/check/run-tests.mjs +93 -0
  1434. package/esm/tooling/check/run-tests.mjs.map +1 -0
  1435. package/esm/tooling/check/security-conventions.mjs +648 -0
  1436. package/esm/tooling/check/security-conventions.mjs.map +1 -0
  1437. package/esm/tooling/check/source-ast.mjs +195 -0
  1438. package/esm/tooling/check/source-ast.mjs.map +1 -0
  1439. package/esm/tooling/check/source-files.mjs +27 -0
  1440. package/esm/tooling/check/source-files.mjs.map +1 -0
  1441. package/esm/tooling/check/tests-step.d.mts +34 -0
  1442. package/esm/tooling/check/tests-step.d.mts.map +1 -0
  1443. package/esm/tooling/check/tests-step.mjs +177 -0
  1444. package/esm/tooling/check/tests-step.mjs.map +1 -0
  1445. package/esm/tooling/dev-state/dev-server-state.d.mts +39 -0
  1446. package/esm/tooling/dev-state/dev-server-state.d.mts.map +1 -0
  1447. package/esm/tooling/dev-state/dev-server-state.mjs +67 -0
  1448. package/esm/tooling/dev-state/dev-server-state.mjs.map +1 -0
  1449. package/esm/tooling/devtools/devtools-client.d.mts +91 -0
  1450. package/esm/tooling/devtools/devtools-client.d.mts.map +1 -0
  1451. package/esm/tooling/devtools/devtools-client.mjs +155 -0
  1452. package/esm/tooling/devtools/devtools-client.mjs.map +1 -0
  1453. package/esm/tooling/generate/generation.d.mts +78 -0
  1454. package/esm/tooling/generate/generation.d.mts.map +1 -0
  1455. package/esm/tooling/generate/generation.mjs +123 -0
  1456. package/esm/tooling/generate/generation.mjs.map +1 -0
  1457. package/esm/tooling/generate/generator-spec.d.mts +57 -0
  1458. package/esm/tooling/generate/generator-spec.d.mts.map +1 -0
  1459. package/esm/tooling/generate/generator-spec.mjs +102 -0
  1460. package/esm/tooling/generate/generator-spec.mjs.map +1 -0
  1461. package/esm/tooling/generate/index.mjs +6 -0
  1462. package/esm/tooling/generate/project-files.mjs +121 -0
  1463. package/esm/tooling/generate/project-files.mjs.map +1 -0
  1464. package/esm/tooling/generate/run-cli.d.mts +40 -0
  1465. package/esm/tooling/generate/run-cli.d.mts.map +1 -0
  1466. package/esm/tooling/generate/run-cli.mjs +93 -0
  1467. package/esm/tooling/generate/run-cli.mjs.map +1 -0
  1468. package/esm/tooling/generate/unified-diff.d.mts +37 -0
  1469. package/esm/tooling/generate/unified-diff.d.mts.map +1 -0
  1470. package/esm/tooling/generate/unified-diff.mjs +161 -0
  1471. package/esm/tooling/generate/unified-diff.mjs.map +1 -0
  1472. package/esm/tooling/index.d.mts +41 -0
  1473. package/esm/tooling/index.mjs +45 -0
  1474. package/esm/tooling/inspect/boot-for-inspect.d.mts +23 -0
  1475. package/esm/tooling/inspect/boot-for-inspect.d.mts.map +1 -0
  1476. package/esm/tooling/inspect/boot-for-inspect.mjs +63 -0
  1477. package/esm/tooling/inspect/boot-for-inspect.mjs.map +1 -0
  1478. package/esm/tooling/inspect/collect-config.mjs +77 -0
  1479. package/esm/tooling/inspect/collect-config.mjs.map +1 -0
  1480. package/esm/tooling/inspect/collect-models.d.mts +9 -0
  1481. package/esm/tooling/inspect/collect-models.d.mts.map +1 -0
  1482. package/esm/tooling/inspect/collect-models.mjs +154 -0
  1483. package/esm/tooling/inspect/collect-models.mjs.map +1 -0
  1484. package/esm/tooling/inspect/collect-packages.d.mts +10 -0
  1485. package/esm/tooling/inspect/collect-packages.d.mts.map +1 -0
  1486. package/esm/tooling/inspect/collect-packages.mjs +157 -0
  1487. package/esm/tooling/inspect/collect-packages.mjs.map +1 -0
  1488. package/esm/tooling/inspect/collect-pages.mjs +108 -0
  1489. package/esm/tooling/inspect/collect-pages.mjs.map +1 -0
  1490. package/esm/tooling/inspect/collect-routes.mjs +168 -0
  1491. package/esm/tooling/inspect/collect-routes.mjs.map +1 -0
  1492. package/esm/tooling/inspect/event-recorder.d.mts +37 -0
  1493. package/esm/tooling/inspect/event-recorder.d.mts.map +1 -0
  1494. package/esm/tooling/inspect/event-recorder.mjs +91 -0
  1495. package/esm/tooling/inspect/event-recorder.mjs.map +1 -0
  1496. package/esm/tooling/inspect/index.d.mts +7 -0
  1497. package/esm/tooling/inspect/index.mjs +7 -0
  1498. package/esm/tooling/inspect/inspect-app.d.mts +53 -0
  1499. package/esm/tooling/inspect/inspect-app.d.mts.map +1 -0
  1500. package/esm/tooling/inspect/inspect-app.mjs +92 -0
  1501. package/esm/tooling/inspect/inspect-app.mjs.map +1 -0
  1502. package/esm/tooling/inspect/inspect-report.schema.d.mts +15 -0
  1503. package/esm/tooling/inspect/inspect-report.schema.d.mts.map +1 -0
  1504. package/esm/tooling/inspect/inspect-report.schema.mjs +463 -0
  1505. package/esm/tooling/inspect/inspect-report.schema.mjs.map +1 -0
  1506. package/esm/tooling/inspect/inspect-report.types.d.mts +196 -0
  1507. package/esm/tooling/inspect/inspect-report.types.d.mts.map +1 -0
  1508. package/esm/tooling/inspect/inspect-report.types.mjs +33 -0
  1509. package/esm/tooling/inspect/inspect-report.types.mjs.map +1 -0
  1510. package/esm/tooling/mcp/create-mcp-context.d.mts +26 -0
  1511. package/esm/tooling/mcp/create-mcp-context.d.mts.map +1 -0
  1512. package/esm/tooling/mcp/create-mcp-context.mjs +75 -0
  1513. package/esm/tooling/mcp/create-mcp-context.mjs.map +1 -0
  1514. package/esm/tooling/mcp/db-schema.d.mts +49 -0
  1515. package/esm/tooling/mcp/db-schema.d.mts.map +1 -0
  1516. package/esm/tooling/mcp/db-schema.mjs +56 -0
  1517. package/esm/tooling/mcp/db-schema.mjs.map +1 -0
  1518. package/esm/tooling/mcp/docs-search.d.mts +72 -0
  1519. package/esm/tooling/mcp/docs-search.d.mts.map +1 -0
  1520. package/esm/tooling/mcp/docs-search.mjs +178 -0
  1521. package/esm/tooling/mcp/docs-search.mjs.map +1 -0
  1522. package/esm/tooling/mcp/index.mjs +9 -0
  1523. package/esm/tooling/mcp/load-ai-tools.d.mts +62 -0
  1524. package/esm/tooling/mcp/load-ai-tools.d.mts.map +1 -0
  1525. package/esm/tooling/mcp/load-ai-tools.mjs +44 -0
  1526. package/esm/tooling/mcp/load-ai-tools.mjs.map +1 -0
  1527. package/esm/tooling/mcp/mcp-tools.d.mts +60 -0
  1528. package/esm/tooling/mcp/mcp-tools.d.mts.map +1 -0
  1529. package/esm/tooling/mcp/mcp-tools.mjs +513 -0
  1530. package/esm/tooling/mcp/mcp-tools.mjs.map +1 -0
  1531. package/esm/tooling/mcp/start-mcp-server.d.mts +56 -0
  1532. package/esm/tooling/mcp/start-mcp-server.d.mts.map +1 -0
  1533. package/esm/tooling/mcp/start-mcp-server.mjs +126 -0
  1534. package/esm/tooling/mcp/start-mcp-server.mjs.map +1 -0
  1535. package/esm/tooling/mcp/tool-input.d.mts +75 -0
  1536. package/esm/tooling/mcp/tool-input.d.mts.map +1 -0
  1537. package/esm/tooling/mcp/tool-input.mjs +72 -0
  1538. package/esm/tooling/mcp/tool-input.mjs.map +1 -0
  1539. package/esm/tooling/problem.d.mts +45 -0
  1540. package/esm/tooling/problem.d.mts.map +1 -0
  1541. package/esm/tooling/problem.mjs +28 -0
  1542. package/esm/tooling/problem.mjs.map +1 -0
  1543. package/esm/tooling/trace/trace-report.types.d.mts +71 -0
  1544. package/esm/tooling/trace/trace-report.types.d.mts.map +1 -0
  1545. package/esm/tooling/trace/trace-report.types.mjs +7 -0
  1546. package/esm/tooling/trace/trace-report.types.mjs.map +1 -0
  1547. package/esm/tooling/trace/trace-request.d.mts +83 -0
  1548. package/esm/tooling/trace/trace-request.d.mts.map +1 -0
  1549. package/esm/tooling/trace/trace-request.mjs +241 -0
  1550. package/esm/tooling/trace/trace-request.mjs.map +1 -0
  1551. package/esm/tooling/typecheck/index.d.mts +1 -0
  1552. package/esm/tooling/typecheck/index.mjs +3 -0
  1553. package/esm/tooling/typecheck/run-typecheck.d.mts +59 -0
  1554. package/esm/tooling/typecheck/run-typecheck.d.mts.map +1 -0
  1555. package/esm/tooling/typecheck/run-typecheck.mjs +153 -0
  1556. package/esm/tooling/typecheck/run-typecheck.mjs.map +1 -0
  1557. package/esm/updater/package-manager.mjs +1 -1
  1558. package/esm/updater/package-manager.mjs.map +1 -1
  1559. package/esm/updater/update-warlock-packages.mjs +1 -1
  1560. package/esm/updater/update-warlock-packages.mjs.map +1 -1
  1561. package/esm/upgrade/codemods/head-viewport.mjs +46 -0
  1562. package/esm/upgrade/codemods/head-viewport.mjs.map +1 -0
  1563. package/esm/upgrade/codemods/helpers.mjs +81 -0
  1564. package/esm/upgrade/codemods/helpers.mjs.map +1 -0
  1565. package/esm/upgrade/codemods/index.mjs +34 -0
  1566. package/esm/upgrade/codemods/index.mjs.map +1 -0
  1567. package/esm/upgrade/codemods/logger-sync-calls.mjs +57 -0
  1568. package/esm/upgrade/codemods/logger-sync-calls.mjs.map +1 -0
  1569. package/esm/upgrade/codemods/package-json.mjs +122 -0
  1570. package/esm/upgrade/codemods/package-json.mjs.map +1 -0
  1571. package/esm/upgrade/codemods/request-log-snapshot.mjs +82 -0
  1572. package/esm/upgrade/codemods/request-log-snapshot.mjs.map +1 -0
  1573. package/esm/upgrade/codemods/review-sites.mjs +262 -0
  1574. package/esm/upgrade/codemods/review-sites.mjs.map +1 -0
  1575. package/esm/upgrade/diff.mjs +119 -0
  1576. package/esm/upgrade/diff.mjs.map +1 -0
  1577. package/esm/upgrade/format-upgrade-report.mjs +32 -0
  1578. package/esm/upgrade/format-upgrade-report.mjs.map +1 -0
  1579. package/esm/upgrade/load-ts-morph.mjs +48 -0
  1580. package/esm/upgrade/load-ts-morph.mjs.map +1 -0
  1581. package/esm/upgrade/notes.mjs +16 -0
  1582. package/esm/upgrade/notes.mjs.map +1 -0
  1583. package/esm/upgrade/run-upgrade.mjs +246 -0
  1584. package/esm/upgrade/run-upgrade.mjs.map +1 -0
  1585. package/esm/upgrade/upgrade-command.action.mjs +37 -0
  1586. package/esm/upgrade/upgrade-command.action.mjs.map +1 -0
  1587. package/esm/upgrade/version.mjs +39 -0
  1588. package/esm/upgrade/version.mjs.map +1 -0
  1589. package/esm/use-cases/types.d.mts +1 -1
  1590. package/esm/use-cases/types.d.mts.map +1 -1
  1591. package/esm/use-cases/use-case-broadcast.d.mts +1 -1
  1592. package/esm/use-cases/use-case-broadcast.d.mts.map +1 -1
  1593. package/esm/use-cases/use-case-broadcast.mjs +1 -1
  1594. package/esm/use-cases/use-case-broadcast.mjs.map +1 -1
  1595. package/esm/use-cases/use-case-events.d.mts +1 -1
  1596. package/esm/use-cases/use-case-events.d.mts.map +1 -1
  1597. package/esm/use-cases/use-case-events.mjs +1 -1
  1598. package/esm/use-cases/use-case-events.mjs.map +1 -1
  1599. package/esm/use-cases/use-case-pipeline.d.mts +1 -1
  1600. package/esm/use-cases/use-case-pipeline.d.mts.map +1 -1
  1601. package/esm/use-cases/use-case-pipeline.mjs +1 -1
  1602. package/esm/use-cases/use-case-pipeline.mjs.map +1 -1
  1603. package/esm/use-cases/use-case.d.mts +1 -1
  1604. package/esm/use-cases/use-case.d.mts.map +1 -1
  1605. package/esm/use-cases/use-case.errors.d.mts +1 -1
  1606. package/esm/use-cases/use-case.errors.d.mts.map +1 -1
  1607. package/esm/use-cases/use-case.errors.mjs +1 -1
  1608. package/esm/use-cases/use-case.errors.mjs.map +1 -1
  1609. package/esm/use-cases/use-case.mjs +1 -1
  1610. package/esm/use-cases/use-case.mjs.map +1 -1
  1611. package/esm/use-cases/use-cases-registry.d.mts +1 -1
  1612. package/esm/use-cases/use-cases-registry.d.mts.map +1 -1
  1613. package/esm/use-cases/use-cases-registry.mjs +1 -1
  1614. package/esm/use-cases/use-cases-registry.mjs.map +1 -1
  1615. package/esm/utils/app-log.d.mts +6 -6
  1616. package/esm/utils/app-log.d.mts.map +1 -1
  1617. package/esm/utils/app-log.mjs +1 -1
  1618. package/esm/utils/app-log.mjs.map +1 -1
  1619. package/esm/utils/clock.d.mts +33 -0
  1620. package/esm/utils/clock.d.mts.map +1 -0
  1621. package/esm/utils/clock.mjs +27 -0
  1622. package/esm/utils/clock.mjs.map +1 -0
  1623. package/esm/utils/database-log.d.mts +1 -1
  1624. package/esm/utils/database-log.d.mts.map +1 -1
  1625. package/esm/utils/database-log.mjs +1 -1
  1626. package/esm/utils/database-log.mjs.map +1 -1
  1627. package/esm/utils/detect-environment-overrides.mjs +1 -1
  1628. package/esm/utils/detect-environment-overrides.mjs.map +1 -1
  1629. package/esm/utils/environment.d.mts +1 -1
  1630. package/esm/utils/environment.d.mts.map +1 -1
  1631. package/esm/utils/environment.mjs +1 -1
  1632. package/esm/utils/environment.mjs.map +1 -1
  1633. package/esm/utils/framework-vesion.mjs +2 -2
  1634. package/esm/utils/framework-vesion.mjs.map +1 -1
  1635. package/esm/utils/get-localized.d.mts +1 -1
  1636. package/esm/utils/get-localized.d.mts.map +1 -1
  1637. package/esm/utils/get-localized.mjs +1 -1
  1638. package/esm/utils/get-localized.mjs.map +1 -1
  1639. package/esm/utils/ids.d.mts +32 -0
  1640. package/esm/utils/ids.d.mts.map +1 -0
  1641. package/esm/utils/ids.mjs +33 -0
  1642. package/esm/utils/ids.mjs.map +1 -0
  1643. package/esm/utils/index.d.mts +3 -0
  1644. package/esm/utils/index.mjs +3 -0
  1645. package/esm/utils/is-test-file.mjs +1 -1
  1646. package/esm/utils/is-test-file.mjs.map +1 -1
  1647. package/esm/utils/load-environment.mjs +1 -1
  1648. package/esm/utils/load-environment.mjs.map +1 -1
  1649. package/esm/utils/normalized-path.d.mts +1 -1
  1650. package/esm/utils/normalized-path.d.mts.map +1 -1
  1651. package/esm/utils/normalized-path.mjs +1 -1
  1652. package/esm/utils/normalized-path.mjs.map +1 -1
  1653. package/esm/utils/npm-registry.d.mts +1 -1
  1654. package/esm/utils/npm-registry.d.mts.map +1 -1
  1655. package/esm/utils/npm-registry.mjs +1 -1
  1656. package/esm/utils/npm-registry.mjs.map +1 -1
  1657. package/esm/utils/paths.d.mts +1 -1
  1658. package/esm/utils/paths.d.mts.map +1 -1
  1659. package/esm/utils/paths.mjs +1 -1
  1660. package/esm/utils/paths.mjs.map +1 -1
  1661. package/esm/utils/promise-all-object.d.mts +1 -1
  1662. package/esm/utils/promise-all-object.d.mts.map +1 -1
  1663. package/esm/utils/promise-all-object.mjs +1 -1
  1664. package/esm/utils/promise-all-object.mjs.map +1 -1
  1665. package/esm/utils/queue.d.mts +1 -1
  1666. package/esm/utils/queue.d.mts.map +1 -1
  1667. package/esm/utils/queue.mjs +1 -1
  1668. package/esm/utils/queue.mjs.map +1 -1
  1669. package/esm/utils/recorded-environment-overrides.mjs +1 -1
  1670. package/esm/utils/recorded-environment-overrides.mjs.map +1 -1
  1671. package/esm/utils/report-environment-overrides.mjs +1 -1
  1672. package/esm/utils/report-environment-overrides.mjs.map +1 -1
  1673. package/esm/utils/runtime.d.mts +59 -0
  1674. package/esm/utils/runtime.d.mts.map +1 -0
  1675. package/esm/utils/runtime.mjs +85 -0
  1676. package/esm/utils/runtime.mjs.map +1 -0
  1677. package/esm/utils/sleep.d.mts +1 -1
  1678. package/esm/utils/sleep.d.mts.map +1 -1
  1679. package/esm/utils/sleep.mjs +1 -1
  1680. package/esm/utils/sleep.mjs.map +1 -1
  1681. package/esm/utils/sluggable.d.mts +1 -1
  1682. package/esm/utils/sluggable.d.mts.map +1 -1
  1683. package/esm/utils/sluggable.mjs +1 -1
  1684. package/esm/utils/sluggable.mjs.map +1 -1
  1685. package/esm/utils/to-json.d.mts +1 -1
  1686. package/esm/utils/to-json.d.mts.map +1 -1
  1687. package/esm/utils/to-json.mjs +1 -1
  1688. package/esm/utils/to-json.mjs.map +1 -1
  1689. package/esm/utils/types.d.mts +1 -1
  1690. package/esm/utils/types.d.mts.map +1 -1
  1691. package/esm/utils/urls.d.mts +1 -1
  1692. package/esm/utils/urls.d.mts.map +1 -1
  1693. package/esm/utils/urls.mjs +1 -1
  1694. package/esm/utils/urls.mjs.map +1 -1
  1695. package/esm/utils/version-compare.d.mts +1 -1
  1696. package/esm/utils/version-compare.d.mts.map +1 -1
  1697. package/esm/utils/version-compare.mjs +1 -1
  1698. package/esm/utils/version-compare.mjs.map +1 -1
  1699. package/esm/validation/database/exists-except-current-id.d.mts +1 -1
  1700. package/esm/validation/database/exists-except-current-id.d.mts.map +1 -1
  1701. package/esm/validation/database/exists-except-current-id.mjs +1 -1
  1702. package/esm/validation/database/exists-except-current-id.mjs.map +1 -1
  1703. package/esm/validation/database/exists-except-current-user.d.mts +1 -1
  1704. package/esm/validation/database/exists-except-current-user.d.mts.map +1 -1
  1705. package/esm/validation/database/exists-except-current-user.mjs +1 -1
  1706. package/esm/validation/database/exists-except-current-user.mjs.map +1 -1
  1707. package/esm/validation/database/types.d.mts +1 -1
  1708. package/esm/validation/database/types.d.mts.map +1 -1
  1709. package/esm/validation/database/unique-except-current-id.d.mts +1 -1
  1710. package/esm/validation/database/unique-except-current-id.d.mts.map +1 -1
  1711. package/esm/validation/database/unique-except-current-id.mjs +1 -1
  1712. package/esm/validation/database/unique-except-current-id.mjs.map +1 -1
  1713. package/esm/validation/database/unique-except-current-user.d.mts +1 -1
  1714. package/esm/validation/database/unique-except-current-user.d.mts.map +1 -1
  1715. package/esm/validation/database/unique-except-current-user.mjs +1 -1
  1716. package/esm/validation/database/unique-except-current-user.mjs.map +1 -1
  1717. package/esm/validation/file/file.d.mts +1 -1
  1718. package/esm/validation/file/file.d.mts.map +1 -1
  1719. package/esm/validation/file/file.mjs +1 -1
  1720. package/esm/validation/file/file.mjs.map +1 -1
  1721. package/esm/validation/index.d.mts +1 -1
  1722. package/esm/validation/init.mjs +1 -1
  1723. package/esm/validation/init.mjs.map +1 -1
  1724. package/esm/validation/plugins/database-plugin.mjs +1 -1
  1725. package/esm/validation/plugins/database-plugin.mjs.map +1 -1
  1726. package/esm/validation/plugins/file-plugin.mjs +1 -1
  1727. package/esm/validation/plugins/file-plugin.mjs.map +1 -1
  1728. package/esm/validation/plugins/localized-plugin.mjs +1 -1
  1729. package/esm/validation/plugins/localized-plugin.mjs.map +1 -1
  1730. package/esm/validation/types.d.mts +58 -3
  1731. package/esm/validation/types.d.mts.map +1 -1
  1732. package/esm/validation/validateAll.mjs +20 -3
  1733. package/esm/validation/validateAll.mjs.map +1 -1
  1734. package/esm/validation/validation-failure-status.mjs +15 -0
  1735. package/esm/validation/validation-failure-status.mjs.map +1 -0
  1736. package/esm/validation/validators/file-validator.d.mts +28 -41
  1737. package/esm/validation/validators/file-validator.d.mts.map +1 -1
  1738. package/esm/validation/validators/file-validator.mjs +4 -1
  1739. package/esm/validation/validators/file-validator.mjs.map +1 -1
  1740. package/esm/vite/lower-stage3-decorators.d.mts +1 -1
  1741. package/esm/vite/lower-stage3-decorators.d.mts.map +1 -1
  1742. package/esm/vite/lower-stage3-decorators.mjs +1 -1
  1743. package/esm/vite/lower-stage3-decorators.mjs.map +1 -1
  1744. package/esm/warlock-config/bundle-config.mjs +148 -0
  1745. package/esm/warlock-config/bundle-config.mjs.map +1 -0
  1746. package/esm/warlock-config/default-configurations.mjs +1 -1
  1747. package/esm/warlock-config/default-configurations.mjs.map +1 -1
  1748. package/esm/warlock-config/define-config.d.mts +1 -1
  1749. package/esm/warlock-config/define-config.d.mts.map +1 -1
  1750. package/esm/warlock-config/define-config.mjs +1 -1
  1751. package/esm/warlock-config/define-config.mjs.map +1 -1
  1752. package/esm/warlock-config/index.d.mts +1 -1
  1753. package/esm/warlock-config/index.mjs +1 -1
  1754. package/esm/warlock-config/normalize-build-config.mjs +1 -1
  1755. package/esm/warlock-config/normalize-build-config.mjs.map +1 -1
  1756. package/esm/warlock-config/types.d.mts +28 -4
  1757. package/esm/warlock-config/types.d.mts.map +1 -1
  1758. package/esm/warlock-config/warlock-config.manager.d.mts +32 -7
  1759. package/esm/warlock-config/warlock-config.manager.d.mts.map +1 -1
  1760. package/esm/warlock-config/warlock-config.manager.mjs +94 -18
  1761. package/esm/warlock-config/warlock-config.manager.mjs.map +1 -1
  1762. package/esm/warlock-config/warn-deprecated-config.mjs +1 -1
  1763. package/esm/warlock-config/warn-deprecated-config.mjs.map +1 -1
  1764. package/llms-full.txt +3271 -784
  1765. package/llms.txt +16 -6
  1766. package/package.json +51 -14
  1767. package/schemas/inspect-report.schema.json +554 -0
  1768. package/skills/README.md +9 -0
  1769. package/skills/add-connector/SKILL.md +26 -38
  1770. package/skills/benchmark-code/SKILL.md +30 -24
  1771. package/skills/build-restful/SKILL.md +14 -14
  1772. package/skills/build-url/SKILL.md +18 -18
  1773. package/skills/configure-app/SKILL.md +129 -14
  1774. package/skills/create-controller/SKILL.md +29 -12
  1775. package/skills/create-module/SKILL.md +3 -3
  1776. package/skills/define-resource/SKILL.md +32 -29
  1777. package/skills/encrypt-data/SKILL.md +21 -19
  1778. package/skills/generate-openapi/SKILL.md +50 -24
  1779. package/skills/hash-password/SKILL.md +2 -2
  1780. package/skills/health-checks/SKILL.md +26 -7
  1781. package/skills/index.md +9 -4
  1782. package/skills/lower-stage3-decorators/SKILL.md +4 -4
  1783. package/skills/make-endpoint/SKILL.md +110 -0
  1784. package/skills/model-factories/SKILL.md +92 -0
  1785. package/skills/process-image/SKILL.md +32 -30
  1786. package/skills/register-route/SKILL.md +119 -10
  1787. package/skills/request-memo/SKILL.md +1 -1
  1788. package/skills/request-tracing/SKILL.md +4 -1
  1789. package/skills/resolve-path/SKILL.md +45 -44
  1790. package/skills/retry-operation/SKILL.md +20 -11
  1791. package/skills/run-app/SKILL.md +111 -20
  1792. package/skills/send-response/SKILL.md +189 -16
  1793. package/skills/store-file/SKILL.md +97 -53
  1794. package/skills/test-fakes/SKILL.md +123 -0
  1795. package/skills/test-http/SKILL.md +125 -21
  1796. package/skills/test-service/SKILL.md +41 -1
  1797. package/skills/update-packages/SKILL.md +29 -18
  1798. package/skills/upgrade-from-5-29/SKILL.md +413 -0
  1799. package/skills/upload-file/SKILL.md +31 -33
  1800. package/skills/use-app-context/SKILL.md +38 -31
  1801. package/skills/use-middleware/SKILL.md +46 -26
  1802. package/skills/use-model-transformers/SKILL.md +37 -28
  1803. package/skills/use-repository/SKILL.md +2 -2
  1804. package/skills/validate-input/SKILL.md +73 -29
  1805. package/skills/warlock-agents-md/SKILL.md +96 -0
  1806. package/skills/warlock-board/SKILL.md +123 -0
  1807. package/skills/warlock-check/SKILL.md +132 -0
  1808. package/skills/warlock-conventions/SKILL.md +115 -0
  1809. package/skills/warlock-doctor/SKILL.md +55 -22
  1810. package/skills/warlock-inspect/SKILL.md +134 -0
  1811. package/skills/warlock-mcp/SKILL.md +120 -0
  1812. package/skills/warlock-routes/SKILL.md +18 -11
  1813. package/skills/warlock-trace/SKILL.md +81 -0
  1814. package/skills/wire-socket/SKILL.md +8 -8
  1815. package/skills/write-seeder/SKILL.md +46 -32
  1816. package/skills/write-use-case/SKILL.md +40 -27
  1817. package/esm/http/uploads/matches-if-none-match.mjs +0 -13
  1818. package/esm/http/uploads/matches-if-none-match.mjs.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import { ConnectorLifecyclePhase, ConnectorPriority } from "./types.mjs";
2
2
  import { BaseConnector } from "./base-connector.mjs";
3
3
 
4
- //#region ../core/src/connectors/mail-connector.d.ts
4
+ //#region ../../packages/core/src/connectors/mail-connector.d.ts
5
5
  /**
6
6
  * Mailer Connector
7
7
  * Manages mailer lifecycle and ensures graceful pool shutdown
@@ -1 +1 @@
1
- {"version":3,"file":"mail-connector.d.mts","names":[],"sources":["../../../../../../../core/src/connectors/mail-connector.ts"],"mappings":";;;;;;AASA;;cAAa,eAAA,SAAwB,aAAA;EAAA,SACnB,IAAA;EAAA,SACA,QAAA,GAAQ,iBAAA,CAAA,MAAA;EAAA,SACR,cAAA,GAAc,uBAAA,CAAA,KAAA;EA6BL;;;EAAA,mBAxBN,YAAA;EARgB;;;EAatB,KAAA,IAAS,OAAA;EAXE;;;EA8BX,QAAA,IAAY,OAAA;AAAA"}
1
+ {"version":3,"file":"mail-connector.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/connectors/mail-connector.ts"],"mappings":";;;;;;AASA;;cAAa,eAAA,SAAwB,aAAA;EAAA,SACnB,IAAA;EAAA,SACA,QAAA,GAAQ,iBAAA,CAAA,MAAA;EAAA,SACR,cAAA,GAAc,uBAAA,CAAA,KAAA;EA6BL;;;EAAA,mBAxBN,YAAA;EARgB;;;EAatB,KAAA,IAAS,OAAA;EAXE;;;EA8BX,QAAA,IAAY,OAAA;AAAA"}
@@ -5,7 +5,7 @@ import { closeAllMailers } from "../mail/mailer-pool.mjs";
5
5
  import "../mail/index.mjs";
6
6
  import config from "@mongez/config";
7
7
 
8
- //#region ../core/src/connectors/mail-connector.ts
8
+ //#region ../../packages/core/src/connectors/mail-connector.ts
9
9
  /**
10
10
  * Mailer Connector
11
11
  * Manages mailer lifecycle and ensures graceful pool shutdown
@@ -1 +1 @@
1
- {"version":3,"file":"mail-connector.mjs","names":[],"sources":["../../../../../../../core/src/connectors/mail-connector.ts"],"sourcesContent":["import config from \"@mongez/config\";\nimport { closeAllMailers, setMailConfigurations } from \"../mail\";\nimport { BaseConnector } from \"./base-connector\";\nimport { ConnectorLifecyclePhase, ConnectorPriority } from \"./types\";\n\n/**\n * Mailer Connector\n * Manages mailer lifecycle and ensures graceful pool shutdown\n */\nexport class MailerConnector extends BaseConnector {\n public readonly name = \"mailer\";\n public readonly priority = ConnectorPriority.MAILER;\n public readonly lifecyclePhase = ConnectorLifecyclePhase.Early;\n\n /**\n * Files that trigger mailer restart\n */\n protected readonly watchedFiles = [\".env\", \"src/config/mail.ts\", \"src/config/mail.tsx\"];\n\n /**\n * Initialize mailer configurations\n */\n public async start(): Promise<void> {\n const mailConfig = config.get(\"mail\");\n\n if (!mailConfig) {\n return;\n }\n\n try {\n setMailConfigurations(mailConfig);\n this.active = true;\n } catch (error) {\n console.error(\"Failed to initialize mailer:\", error);\n throw error;\n }\n }\n\n /**\n * Shutdown mailer pool\n */\n public async shutdown(): Promise<void> {\n if (!this.active) {\n return;\n }\n\n try {\n closeAllMailers();\n this.active = false;\n } catch (error) {\n console.error(\"Failed to close all mailers:\", error);\n throw error;\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;AASA,IAAa,kBAAb,cAAqC,cAAc;;;cAC1B;;;sBAOW;GAAC;GAAQ;GAAsB;EAAqB;;;;;CAKtF,MAAa,QAAuB;EAClC,MAAM,aAAa,OAAO,IAAI,MAAM;EAEpC,IAAI,CAAC,YACH;EAGF,IAAI;GACF,sBAAsB,UAAU;GAChC,KAAK,SAAS;EAChB,SAAS,OAAO;GACd,QAAQ,MAAM,gCAAgC,KAAK;GACnD,MAAM;EACR;CACF;;;;CAKA,MAAa,WAA0B;EACrC,IAAI,CAAC,KAAK,QACR;EAGF,IAAI;GACF,gBAAgB;GAChB,KAAK,SAAS;EAChB,SAAS,OAAO;GACd,QAAQ,MAAM,gCAAgC,KAAK;GACnD,MAAM;EACR;CACF;AACF"}
1
+ {"version":3,"file":"mail-connector.mjs","names":[],"sources":["../../../../../../../../packages/core/src/connectors/mail-connector.ts"],"sourcesContent":["import config from \"@mongez/config\";\nimport { closeAllMailers, setMailConfigurations } from \"../mail\";\nimport { BaseConnector } from \"./base-connector\";\nimport { ConnectorLifecyclePhase, ConnectorPriority } from \"./types\";\n\n/**\n * Mailer Connector\n * Manages mailer lifecycle and ensures graceful pool shutdown\n */\nexport class MailerConnector extends BaseConnector {\n public readonly name = \"mailer\";\n public readonly priority = ConnectorPriority.MAILER;\n public readonly lifecyclePhase = ConnectorLifecyclePhase.Early;\n\n /**\n * Files that trigger mailer restart\n */\n protected readonly watchedFiles = [\".env\", \"src/config/mail.ts\", \"src/config/mail.tsx\"];\n\n /**\n * Initialize mailer configurations\n */\n public async start(): Promise<void> {\n const mailConfig = config.get(\"mail\");\n\n if (!mailConfig) {\n return;\n }\n\n try {\n setMailConfigurations(mailConfig);\n this.active = true;\n } catch (error) {\n console.error(\"Failed to initialize mailer:\", error);\n throw error;\n }\n }\n\n /**\n * Shutdown mailer pool\n */\n public async shutdown(): Promise<void> {\n if (!this.active) {\n return;\n }\n\n try {\n closeAllMailers();\n this.active = false;\n } catch (error) {\n console.error(\"Failed to close all mailers:\", error);\n throw error;\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;AASA,IAAa,kBAAb,cAAqC,cAAc;;;cAC1B;;;sBAOW;GAAC;GAAQ;GAAsB;EAAqB;;;;;CAKtF,MAAa,QAAuB;EAClC,MAAM,aAAa,OAAO,IAAI,MAAM;EAEpC,IAAI,CAAC,YACH;EAGF,IAAI;GACF,sBAAsB,UAAU;GAChC,KAAK,SAAS;EAChB,SAAS,OAAO;GACd,QAAQ,MAAM,gCAAgC,KAAK;GACnD,MAAM;EACR;CACF;;;;CAKA,MAAa,WAA0B;EACrC,IAAI,CAAC,KAAK,QACR;EAGF,IAAI;GACF,gBAAgB;GAChB,KAAK,SAAS;EAChB,SAAS,OAAO;GACd,QAAQ,MAAM,gCAAgC,KAAK;GACnD,MAAM;EACR;CACF;AACF"}
@@ -1,7 +1,7 @@
1
1
  import { ConnectorLifecyclePhase, ConnectorPriority } from "./types.mjs";
2
2
  import { BaseConnector } from "./base-connector.mjs";
3
3
 
4
- //#region ../core/src/connectors/notifications-connector.d.ts
4
+ //#region ../../packages/core/src/connectors/notifications-connector.d.ts
5
5
  /**
6
6
  * Notifications Connector
7
7
  *
@@ -1 +1 @@
1
- {"version":3,"file":"notifications-connector.d.mts","names":[],"sources":["../../../../../../../core/src/connectors/notifications-connector.ts"],"mappings":";;;;;;AAiBA;;;;;;;;;;cAAa,sBAAA,SAA+B,aAAA;EAAA,SAC1B,IAAA;EAAA,SACA,QAAA,GAAQ,iBAAA,CAAA,aAAA;EAAA,SACR,cAAA,GAAc,uBAAA,CAAA,KAAA;EADN;;;EAAA,mBAML,YAAA;EAAA;;;EAKN,KAAA,IAAS,OAAA;EAoBG;;AAAO;;;EAAnB,QAAA,IAAY,OAAA;AAAA"}
1
+ {"version":3,"file":"notifications-connector.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/connectors/notifications-connector.ts"],"mappings":";;;;;;AAiBA;;;;;;;;;;cAAa,sBAAA,SAA+B,aAAA;EAAA,SAC1B,IAAA;EAAA,SACA,QAAA,GAAQ,iBAAA,CAAA,aAAA;EAAA,SACR,cAAA,GAAc,uBAAA,CAAA,KAAA;EADN;;;EAAA,mBAML,YAAA;EAAA;;;EAKN,KAAA,IAAS,OAAA;EAoBG;;AAAO;;;EAAnB,QAAA,IAAY,OAAA;AAAA"}
@@ -3,7 +3,7 @@ import { BaseConnector } from "./base-connector.mjs";
3
3
  import config from "@mongez/config";
4
4
  import { log } from "@warlock.js/logger";
5
5
 
6
- //#region ../core/src/connectors/notifications-connector.ts
6
+ //#region ../../packages/core/src/connectors/notifications-connector.ts
7
7
  /**
8
8
  * Notifications Connector
9
9
  *
@@ -1 +1 @@
1
- {"version":3,"file":"notifications-connector.mjs","names":[],"sources":["../../../../../../../core/src/connectors/notifications-connector.ts"],"sourcesContent":["import config from \"@mongez/config\";\nimport { log } from \"@warlock.js/logger\";\nimport { BaseConnector } from \"./base-connector\";\nimport { ConnectorLifecyclePhase, ConnectorPriority } from \"./types\";\n\n/**\n * Notifications Connector\n *\n * Wires `@warlock.js/notifications` from `src/config/notifications.ts` at boot:\n * reads the exported config object and hands it to the package's\n * `setNotificationConfig`. Config files stay declarative — they export the\n * config, the connector performs the side-effect.\n *\n * The package is lazy-imported (only when a notifications config is present),\n * so core carries no hard dependency on it — the same pattern as the herald\n * connector with `@warlock.js/herald`.\n */\nexport class NotificationsConnector extends BaseConnector {\n public readonly name = \"notifications\";\n public readonly priority = ConnectorPriority.NOTIFICATIONS;\n public readonly lifecyclePhase = ConnectorLifecyclePhase.Early;\n\n /**\n * Files that trigger a notifications restart\n */\n protected readonly watchedFiles = [\"src/config/notifications.ts\"];\n\n /**\n * Register the notifications configuration with the package.\n */\n public async start(): Promise<void> {\n const notificationsConfig = config.get(\"notifications\");\n\n if (!notificationsConfig) {\n return;\n }\n\n const { setNotificationConfig } = await import(\"@warlock.js/notifications\");\n\n setNotificationConfig(notificationsConfig);\n this.active = true;\n\n log.info(\"notifications\", \"configured\", \"Notifications wired from config/notifications.ts\");\n }\n\n /**\n * Nothing to tear down — the package holds no external connection of its own\n * (the optional queue worker + its broker own their lifecycle). Clear the\n * active flag so a dev restart re-registers from the (possibly changed) config.\n */\n public async shutdown(): Promise<void> {\n if (!this.active) {\n return;\n }\n\n this.active = false;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAiBA,IAAa,yBAAb,cAA4C,cAAc;;;cACjC;;;sBAOW,CAAC,6BAA6B;;;;;CAKhE,MAAa,QAAuB;EAClC,MAAM,sBAAsB,OAAO,IAAI,eAAe;EAEtD,IAAI,CAAC,qBACH;EAGF,MAAM,EAAE,0BAA0B,MAAM,OAAO;EAE/C,sBAAsB,mBAAmB;EACzC,KAAK,SAAS;EAEd,IAAI,KAAK,iBAAiB,cAAc,kDAAkD;CAC5F;;;;;;CAOA,MAAa,WAA0B;EACrC,IAAI,CAAC,KAAK,QACR;EAGF,KAAK,SAAS;CAChB;AACF"}
1
+ {"version":3,"file":"notifications-connector.mjs","names":[],"sources":["../../../../../../../../packages/core/src/connectors/notifications-connector.ts"],"sourcesContent":["import config from \"@mongez/config\";\nimport { log } from \"@warlock.js/logger\";\nimport { BaseConnector } from \"./base-connector\";\nimport { ConnectorLifecyclePhase, ConnectorPriority } from \"./types\";\n\n/**\n * Notifications Connector\n *\n * Wires `@warlock.js/notifications` from `src/config/notifications.ts` at boot:\n * reads the exported config object and hands it to the package's\n * `setNotificationConfig`. Config files stay declarative — they export the\n * config, the connector performs the side-effect.\n *\n * The package is lazy-imported (only when a notifications config is present),\n * so core carries no hard dependency on it — the same pattern as the herald\n * connector with `@warlock.js/herald`.\n */\nexport class NotificationsConnector extends BaseConnector {\n public readonly name = \"notifications\";\n public readonly priority = ConnectorPriority.NOTIFICATIONS;\n public readonly lifecyclePhase = ConnectorLifecyclePhase.Early;\n\n /**\n * Files that trigger a notifications restart\n */\n protected readonly watchedFiles = [\"src/config/notifications.ts\"];\n\n /**\n * Register the notifications configuration with the package.\n */\n public async start(): Promise<void> {\n const notificationsConfig = config.get(\"notifications\");\n\n if (!notificationsConfig) {\n return;\n }\n\n const { setNotificationConfig } = await import(\"@warlock.js/notifications\");\n\n setNotificationConfig(notificationsConfig);\n this.active = true;\n\n log.info(\"notifications\", \"configured\", \"Notifications wired from config/notifications.ts\");\n }\n\n /**\n * Nothing to tear down — the package holds no external connection of its own\n * (the optional queue worker + its broker own their lifecycle). Clear the\n * active flag so a dev restart re-registers from the (possibly changed) config.\n */\n public async shutdown(): Promise<void> {\n if (!this.active) {\n return;\n }\n\n this.active = false;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAiBA,IAAa,yBAAb,cAA4C,cAAc;;;cACjC;;;sBAOW,CAAC,6BAA6B;;;;;CAKhE,MAAa,QAAuB;EAClC,MAAM,sBAAsB,OAAO,IAAI,eAAe;EAEtD,IAAI,CAAC,qBACH;EAGF,MAAM,EAAE,0BAA0B,MAAM,OAAO;EAE/C,sBAAsB,mBAAmB;EACzC,KAAK,SAAS;EAEd,IAAI,KAAK,iBAAiB,cAAc,kDAAkD;CAC5F;;;;;;CAOA,MAAa,WAA0B;EACrC,IAAI,CAAC,KAAK,QACR;EAGF,KAAK,SAAS;CAChB;AACF"}
@@ -1,4 +1,4 @@
1
- //#region ../core/src/connectors/read-bound-port.ts
1
+ //#region ../../packages/core/src/connectors/read-bound-port.ts
2
2
  /**
3
3
  * The port actually bound, read back from the address `listen()` resolved
4
4
  * with — never the port that was asked for.
@@ -1 +1 @@
1
- {"version":3,"file":"read-bound-port.mjs","names":[],"sources":["../../../../../../../core/src/connectors/read-bound-port.ts"],"sourcesContent":["/**\n * The port actually bound, read back from the address `listen()` resolved\n * with — never the port that was asked for.\n *\n * `http.port: 0` is the case that makes the distinction load-bearing: it asks\n * the OS for any free port, so the CONFIGURED value stays `0` forever.\n * Publishing that produces the \"Server ready at a URL that gives connection\n * refused\" defect, and downstream `http://host:0`.\n *\n * `fallback` only fires if `boundAddress` turns out unparseable as a URL,\n * which does not happen in practice — Fastify's resolved address is always a\n * well-formed `http://host:port` (or `https://`) string with an explicit\n * port — but a best-effort read of a socket address must never throw.\n *\n * Lives in its own file so it can be exercised directly. It used to be a\n * module-private function inside `http-connector.ts`, where reaching it from a\n * test meant importing the whole connector graph, and the central claim of the\n * `port: 0` fix consequently had no test at all.\n */\nexport function readBoundPort(boundAddress: string, fallback: number): number {\n try {\n const port = new URL(boundAddress).port;\n\n return port ? Number(port) : fallback;\n } catch {\n return fallback;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAmBA,SAAgB,cAAc,cAAsB,UAA0B;CAC5E,IAAI;EACF,MAAM,OAAO,IAAI,IAAI,YAAY,CAAC,CAAC;EAEnC,OAAO,OAAO,OAAO,IAAI,IAAI;CAC/B,QAAQ;EACN,OAAO;CACT;AACF"}
1
+ {"version":3,"file":"read-bound-port.mjs","names":[],"sources":["../../../../../../../../packages/core/src/connectors/read-bound-port.ts"],"sourcesContent":["/**\n * The port actually bound, read back from the address `listen()` resolved\n * with — never the port that was asked for.\n *\n * `http.port: 0` is the case that makes the distinction load-bearing: it asks\n * the OS for any free port, so the CONFIGURED value stays `0` forever.\n * Publishing that produces the \"Server ready at a URL that gives connection\n * refused\" defect, and downstream `http://host:0`.\n *\n * `fallback` only fires if `boundAddress` turns out unparseable as a URL,\n * which does not happen in practice — Fastify's resolved address is always a\n * well-formed `http://host:port` (or `https://`) string with an explicit\n * port — but a best-effort read of a socket address must never throw.\n *\n * Lives in its own file so it can be exercised directly. It used to be a\n * module-private function inside `http-connector.ts`, where reaching it from a\n * test meant importing the whole connector graph, and the central claim of the\n * `port: 0` fix consequently had no test at all.\n */\nexport function readBoundPort(boundAddress: string, fallback: number): number {\n try {\n const port = new URL(boundAddress).port;\n\n return port ? Number(port) : fallback;\n } catch {\n return fallback;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAmBA,SAAgB,cAAc,cAAsB,UAA0B;CAC5E,IAAI;EACF,MAAM,OAAO,IAAI,IAAI,YAAY,CAAC,CAAC;EAEnC,OAAO,OAAO,OAAO,IAAI,IAAI;CAC/B,QAAQ;EACN,OAAO;CACT;AACF"}
@@ -1,6 +1,6 @@
1
1
  import { Connector } from "./types.mjs";
2
2
 
3
- //#region ../core/src/connectors/register-configured-connectors.d.ts
3
+ //#region ../../packages/core/src/connectors/register-configured-connectors.d.ts
4
4
  type RegisterConfiguredConnectorsOptions = {
5
5
  /**
6
6
  * The connector names, in order, that the build resolved. The generated
@@ -1 +1 @@
1
- {"version":3,"file":"register-configured-connectors.d.mts","names":[],"sources":["../../../../../../../core/src/connectors/register-configured-connectors.ts"],"mappings":";;;KAwCY,mCAAA;;AAAZ;;;EAKE,aAAa;AAAA;AAAA,iBAGC,4BAAA,CACd,UAAA,GAAa,SAAA,IACb,OAAA,GAAS,mCAAwC"}
1
+ {"version":3,"file":"register-configured-connectors.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/connectors/register-configured-connectors.ts"],"mappings":";;;KAwCY,mCAAA;;AAAZ;;;EAKE,aAAa;AAAA;AAAA,iBAGC,4BAAA,CACd,UAAA,GAAa,SAAA,IACb,OAAA,GAAS,mCAAwC"}
@@ -3,7 +3,7 @@ import { assertNoReservedConnectorNames } from "./assert-no-reserved-connector-n
3
3
  import { assertUniqueConnectorNames } from "./assert-unique-connector-names.mjs";
4
4
  import { warlockConfigManager } from "../warlock-config/warlock-config.manager.mjs";
5
5
 
6
- //#region ../core/src/connectors/register-configured-connectors.ts
6
+ //#region ../../packages/core/src/connectors/register-configured-connectors.ts
7
7
  /**
8
8
  * Registration half of the `connectors` config key.
9
9
  *
@@ -1 +1 @@
1
- {"version":3,"file":"register-configured-connectors.mjs","names":[],"sources":["../../../../../../../core/src/connectors/register-configured-connectors.ts"],"sourcesContent":["/**\n * Registration half of the `connectors` config key.\n *\n * ONE key drives both halves of a connector's life: `warlock build` reads the\n * same array to drain each connector's build contribution, and this function\n * registers that array with the connectors manager so the runtime boots it.\n * Reading them from one place is the whole point — a bundle \"built for\" web\n * that \"boots without\" web is a green build with a missing client bundle, and\n * the failure is silent. A second key would let the two drift; this cannot.\n *\n * Two callers, two ways in:\n *\n * - The generated production entry PASSES the array explicitly. Inside a\n * bundled artifact nothing ever loads `warlock.config.ts` — the build\n * imports it statically so esbuild bakes it into the bundle, then hands the\n * array straight here. No config manager, no runtime file read. It also\n * passes `expectedNames` — the list the build resolved — so a config that\n * resolves differently at startup is refused instead of booted.\n * - The dev preloader OMITS the array and lets this read the already-resolved\n * warlock config, which dev has loaded by then. It also omits\n * `expectedNames`, so dev gets NO drift check — deliberately. Drift is a\n * relationship between what a build baked and what a runtime registers, and\n * dev has no build: there is nothing to drift from, and inventing a second\n * source of truth to compare against would create the disagreement this\n * check exists to prevent. The absence of a check on this path is the\n * design, not an omission — do not harmonise it with the production path.\n * A conditional config that works in dev and is refused at production boot\n * is this working as intended, not a gap.\n *\n * Idempotent either way: a connector whose name an EARLIER CALL in the same\n * process already registered is skipped rather than stacked, since a duplicate\n * would boot and shut down twice. A built-in's name is not that case — it is\n * reserved, and an array claiming one is refused rather than skipped.\n */\nimport { warlockConfigManager } from \"../warlock-config/warlock-config.manager\";\nimport { assertNoReservedConnectorNames } from \"./assert-no-reserved-connector-names\";\nimport { assertUniqueConnectorNames } from \"./assert-unique-connector-names\";\nimport { connectorsManager } from \"./connectors-manager\";\nimport type { Connector } from \"./types\";\n\nexport type RegisterConfiguredConnectorsOptions = {\n /**\n * The connector names, in order, that the build resolved. The generated\n * production entry bakes this in; every other caller omits it.\n */\n expectedNames?: string[];\n};\n\nexport function registerConfiguredConnectors(\n connectors?: Connector[],\n options: RegisterConfiguredConnectorsOptions = {},\n): void {\n const registering = connectors ?? configuredConnectors();\n\n // First, and before the drift check: a name listed twice is registered once\n // here but was drained twice by the build, and the two lists the drift check\n // compares are identical in that case — so it would wave the array through\n // and the asymmetry would survive into the boot. Reported as the duplicate it\n // is, rather than as whatever the next check happens to make of it.\n assertUniqueConnectorNames(registering);\n\n // Then the names that were taken before this array was ever read. The skip\n // below treats an already-held name as idempotency, which is right for a name\n // an EARLIER CALL registered — the same array arriving twice in one process —\n // and wrong for a built-in: nothing the app configured put that name there, so\n // the skip would drop a connector the app asked for and the build already\n // prepared artifacts for. Same call the build makes, so neither half can be\n // reached with an array the other refuses.\n assertNoReservedConnectorNames(registering);\n\n // Before anything is registered: a half-registered manager is worse than a\n // refused boot, because the phases would start on top of it.\n if (options.expectedNames) {\n assertNoConnectorDrift(options.expectedNames, registering);\n }\n\n for (const connector of registering) {\n if (connectorsManager.has(connector.name)) continue;\n\n connectorsManager.register(connector);\n }\n}\n\n/**\n * Refuses a boot whose connector list is not the one the build was made from.\n *\n * `connectors` in warlock.config is a normal expression, so it may read the\n * environment — the build resolves it once, and the artifact re-evaluates the\n * same source at startup. Nothing forces the two results to agree, and when\n * they do not the failure is silent: the bundle carries what a connector\n * contributed at build time while the runtime never boots it, or boots one the\n * build never prepared for.\n *\n * Order counts as a difference. The build drains connector contributions\n * SEQUENTIALLY in config-array order — each one writing files and merging\n * esbuild options on top of what the previous ones left — so the same names in\n * another order describe an artifact produced by a drain sequence this build\n * never ran. Start order is NOT the reason: connectors start in PRIORITY order,\n * and the array's order only breaks ties between equal priorities.\n *\n * Names only — this compares WHICH connectors are present, never how any of\n * them is configured, so it cannot catch a connector pointed at the wrong\n * database. Saying so in the message is the point: a check that reads as\n * broader than it is buys false confidence.\n */\nfunction assertNoConnectorDrift(expectedNames: string[], connectors: Connector[]): void {\n const actualNames = connectors.map((connector) => connector.name);\n\n const matches =\n expectedNames.length === actualNames.length &&\n expectedNames.every((name, index) => name === actualNames[index]);\n\n if (matches) return;\n\n throw new Error(\n \"The connector list this server booted with does not match the list its build was made from.\\n\" +\n ` expected (resolved when the app was built): ${formatNames(expectedNames)}\\n` +\n ` actual (handed over at boot): ${formatNames(actualNames)}\\n` +\n \"This compares the set and order of connectors only, and says nothing about how any connector is configured. \" +\n \"It usually means `connectors` in warlock.config resolves differently here than it did at build time — \" +\n \"rebuild the app in the same configuration environment this server runs in, \" +\n \"or make the array resolve to the same connectors in both.\",\n );\n}\n\nfunction formatNames(names: string[]): string {\n return `[${names.map((name) => JSON.stringify(name)).join(\", \")}]`;\n}\n\n/**\n * The connectors the resolved warlock config declares.\n *\n * Reached only when the caller omitted the array. An unloaded config here is\n * not \"nothing to register\" — it is a caller asking this function to read a\n * source that does not exist yet, so it throws instead of returning empty.\n * Returning empty is how the production entry once registered NOTHING while\n * reporting success: the bundle booted none of the connectors it was built\n * for, and no line of output said so.\n */\nfunction configuredConnectors(): Connector[] {\n if (!warlockConfigManager.isLoaded) {\n throw new Error(\n \"registerConfiguredConnectors: warlock config is not loaded; pass the connectors array explicitly or load the config first\",\n );\n }\n\n return warlockConfigManager.get(\"connectors\") ?? [];\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDA,SAAgB,6BACd,YACA,UAA+C,CAAC,GAC1C;CACN,MAAM,cAAc,cAAc,qBAAqB;CAOvD,2BAA2B,WAAW;CAStC,+BAA+B,WAAW;CAI1C,IAAI,QAAQ,eACV,uBAAuB,QAAQ,eAAe,WAAW;CAG3D,KAAK,MAAM,aAAa,aAAa;EACnC,IAAI,kBAAkB,IAAI,UAAU,IAAI,GAAG;EAE3C,kBAAkB,SAAS,SAAS;CACtC;AACF;;;;;;;;;;;;;;;;;;;;;;;AAwBA,SAAS,uBAAuB,eAAyB,YAA+B;CACtF,MAAM,cAAc,WAAW,KAAK,cAAc,UAAU,IAAI;CAMhE,IAHE,cAAc,WAAW,YAAY,UACrC,cAAc,OAAO,MAAM,UAAU,SAAS,YAAY,MAAM,GAErD;CAEb,MAAM,IAAI,MACR;gDACmD,YAAY,aAAa,EAAE,oCACzC,YAAY,WAAW,EAAE,2VAKhE;AACF;AAEA,SAAS,YAAY,OAAyB;CAC5C,OAAO,IAAI,MAAM,KAAK,SAAS,KAAK,UAAU,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;AAClE;;;;;;;;;;;AAYA,SAAS,uBAAoC;CAC3C,IAAI,CAAC,qBAAqB,UACxB,MAAM,IAAI,MACR,2HACF;CAGF,OAAO,qBAAqB,IAAI,YAAY,KAAK,CAAC;AACpD"}
1
+ {"version":3,"file":"register-configured-connectors.mjs","names":[],"sources":["../../../../../../../../packages/core/src/connectors/register-configured-connectors.ts"],"sourcesContent":["/**\n * Registration half of the `connectors` config key.\n *\n * ONE key drives both halves of a connector's life: `warlock build` reads the\n * same array to drain each connector's build contribution, and this function\n * registers that array with the connectors manager so the runtime boots it.\n * Reading them from one place is the whole point — a bundle \"built for\" web\n * that \"boots without\" web is a green build with a missing client bundle, and\n * the failure is silent. A second key would let the two drift; this cannot.\n *\n * Two callers, two ways in:\n *\n * - The generated production entry PASSES the array explicitly. Inside a\n * bundled artifact nothing ever loads `warlock.config.ts` — the build\n * imports it statically so esbuild bakes it into the bundle, then hands the\n * array straight here. No config manager, no runtime file read. It also\n * passes `expectedNames` — the list the build resolved — so a config that\n * resolves differently at startup is refused instead of booted.\n * - The dev preloader OMITS the array and lets this read the already-resolved\n * warlock config, which dev has loaded by then. It also omits\n * `expectedNames`, so dev gets NO drift check — deliberately. Drift is a\n * relationship between what a build baked and what a runtime registers, and\n * dev has no build: there is nothing to drift from, and inventing a second\n * source of truth to compare against would create the disagreement this\n * check exists to prevent. The absence of a check on this path is the\n * design, not an omission — do not harmonise it with the production path.\n * A conditional config that works in dev and is refused at production boot\n * is this working as intended, not a gap.\n *\n * Idempotent either way: a connector whose name an EARLIER CALL in the same\n * process already registered is skipped rather than stacked, since a duplicate\n * would boot and shut down twice. A built-in's name is not that case — it is\n * reserved, and an array claiming one is refused rather than skipped.\n */\nimport { warlockConfigManager } from \"../warlock-config/warlock-config.manager\";\nimport { assertNoReservedConnectorNames } from \"./assert-no-reserved-connector-names\";\nimport { assertUniqueConnectorNames } from \"./assert-unique-connector-names\";\nimport { connectorsManager } from \"./connectors-manager\";\nimport type { Connector } from \"./types\";\n\nexport type RegisterConfiguredConnectorsOptions = {\n /**\n * The connector names, in order, that the build resolved. The generated\n * production entry bakes this in; every other caller omits it.\n */\n expectedNames?: string[];\n};\n\nexport function registerConfiguredConnectors(\n connectors?: Connector[],\n options: RegisterConfiguredConnectorsOptions = {},\n): void {\n const registering = connectors ?? configuredConnectors();\n\n // First, and before the drift check: a name listed twice is registered once\n // here but was drained twice by the build, and the two lists the drift check\n // compares are identical in that case — so it would wave the array through\n // and the asymmetry would survive into the boot. Reported as the duplicate it\n // is, rather than as whatever the next check happens to make of it.\n assertUniqueConnectorNames(registering);\n\n // Then the names that were taken before this array was ever read. The skip\n // below treats an already-held name as idempotency, which is right for a name\n // an EARLIER CALL registered — the same array arriving twice in one process —\n // and wrong for a built-in: nothing the app configured put that name there, so\n // the skip would drop a connector the app asked for and the build already\n // prepared artifacts for. Same call the build makes, so neither half can be\n // reached with an array the other refuses.\n assertNoReservedConnectorNames(registering);\n\n // Before anything is registered: a half-registered manager is worse than a\n // refused boot, because the phases would start on top of it.\n if (options.expectedNames) {\n assertNoConnectorDrift(options.expectedNames, registering);\n }\n\n for (const connector of registering) {\n if (connectorsManager.has(connector.name)) continue;\n\n connectorsManager.register(connector);\n }\n}\n\n/**\n * Refuses a boot whose connector list is not the one the build was made from.\n *\n * `connectors` in warlock.config is a normal expression, so it may read the\n * environment — the build resolves it once, and the artifact re-evaluates the\n * same source at startup. Nothing forces the two results to agree, and when\n * they do not the failure is silent: the bundle carries what a connector\n * contributed at build time while the runtime never boots it, or boots one the\n * build never prepared for.\n *\n * Order counts as a difference. The build drains connector contributions\n * SEQUENTIALLY in config-array order — each one writing files and merging\n * esbuild options on top of what the previous ones left — so the same names in\n * another order describe an artifact produced by a drain sequence this build\n * never ran. Start order is NOT the reason: connectors start in PRIORITY order,\n * and the array's order only breaks ties between equal priorities.\n *\n * Names only — this compares WHICH connectors are present, never how any of\n * them is configured, so it cannot catch a connector pointed at the wrong\n * database. Saying so in the message is the point: a check that reads as\n * broader than it is buys false confidence.\n */\nfunction assertNoConnectorDrift(expectedNames: string[], connectors: Connector[]): void {\n const actualNames = connectors.map((connector) => connector.name);\n\n const matches =\n expectedNames.length === actualNames.length &&\n expectedNames.every((name, index) => name === actualNames[index]);\n\n if (matches) return;\n\n throw new Error(\n \"The connector list this server booted with does not match the list its build was made from.\\n\" +\n ` expected (resolved when the app was built): ${formatNames(expectedNames)}\\n` +\n ` actual (handed over at boot): ${formatNames(actualNames)}\\n` +\n \"This compares the set and order of connectors only, and says nothing about how any connector is configured. \" +\n \"It usually means `connectors` in warlock.config resolves differently here than it did at build time — \" +\n \"rebuild the app in the same configuration environment this server runs in, \" +\n \"or make the array resolve to the same connectors in both.\",\n );\n}\n\nfunction formatNames(names: string[]): string {\n return `[${names.map((name) => JSON.stringify(name)).join(\", \")}]`;\n}\n\n/**\n * The connectors the resolved warlock config declares.\n *\n * Reached only when the caller omitted the array. An unloaded config here is\n * not \"nothing to register\" — it is a caller asking this function to read a\n * source that does not exist yet, so it throws instead of returning empty.\n * Returning empty is how the production entry once registered NOTHING while\n * reporting success: the bundle booted none of the connectors it was built\n * for, and no line of output said so.\n */\nfunction configuredConnectors(): Connector[] {\n if (!warlockConfigManager.isLoaded) {\n throw new Error(\n \"registerConfiguredConnectors: warlock config is not loaded; pass the connectors array explicitly or load the config first\",\n );\n }\n\n return warlockConfigManager.get(\"connectors\") ?? [];\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDA,SAAgB,6BACd,YACA,UAA+C,CAAC,GAC1C;CACN,MAAM,cAAc,cAAc,qBAAqB;CAOvD,2BAA2B,WAAW;CAStC,+BAA+B,WAAW;CAI1C,IAAI,QAAQ,eACV,uBAAuB,QAAQ,eAAe,WAAW;CAG3D,KAAK,MAAM,aAAa,aAAa;EACnC,IAAI,kBAAkB,IAAI,UAAU,IAAI,GAAG;EAE3C,kBAAkB,SAAS,SAAS;CACtC;AACF;;;;;;;;;;;;;;;;;;;;;;;AAwBA,SAAS,uBAAuB,eAAyB,YAA+B;CACtF,MAAM,cAAc,WAAW,KAAK,cAAc,UAAU,IAAI;CAMhE,IAHE,cAAc,WAAW,YAAY,UACrC,cAAc,OAAO,MAAM,UAAU,SAAS,YAAY,MAAM,GAErD;CAEb,MAAM,IAAI,MACR;gDACmD,YAAY,aAAa,EAAE,oCACzC,YAAY,WAAW,EAAE,2VAKhE;AACF;AAEA,SAAS,YAAY,OAAyB;CAC5C,OAAO,IAAI,MAAM,KAAK,SAAS,KAAK,UAAU,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;AAClE;;;;;;;;;;;AAYA,SAAS,uBAAoC;CAC3C,IAAI,CAAC,qBAAqB,UACxB,MAAM,IAAI,MACR,2HACF;CAGF,OAAO,qBAAqB,IAAI,YAAY,KAAK,CAAC;AACpD"}
@@ -1,4 +1,4 @@
1
- //#region ../core/src/connectors/single-server-warnings.ts
1
+ //#region ../../packages/core/src/connectors/single-server-warnings.ts
2
2
  const IN_PROCESS_CACHE_NAMES = [
3
3
  "memory",
4
4
  "memoryextended",
@@ -1 +1 @@
1
- {"version":3,"file":"single-server-warnings.mjs","names":[],"sources":["../../../../../../../core/src/connectors/single-server-warnings.ts"],"sourcesContent":["import type { Environment } from \"../utils/environment\";\n\nconst IN_PROCESS_CACHE_NAMES = [\"memory\", \"memoryextended\", \"lru\"];\nconst IN_PROCESS_CACHE_CLASSES = [\"memorycachedriver\", \"memoryextendedcachedriver\", \"lrumemorycachedriver\"];\n\n/**\n * Warning for a production app whose default cache driver keeps data in this\n * process only. Returns `undefined` when there is nothing to warn about.\n */\nexport function memoryCacheWarning(\n defaultDriverName: string | undefined,\n driverClassName: string | undefined,\n env: Environment,\n silenced = false,\n): string | undefined {\n if (env !== \"production\" || silenced || !defaultDriverName) return undefined;\n\n const byName = IN_PROCESS_CACHE_NAMES.includes(defaultDriverName.toLowerCase());\n const byClass =\n !!driverClassName && IN_PROCESS_CACHE_CLASSES.includes(driverClassName.toLowerCase());\n\n if (!byName && !byClass) return undefined;\n\n return (\n `cache: the default driver '${defaultDriverName}' keeps data in this process only. ` +\n \"With more than one server, repository cache clears, locks and counters don't reach the other servers. \" +\n \"Use the redis or pg cache driver in production, or set cache.silenceSingleServerWarning = true.\"\n );\n}\n\n/**\n * Warning for a production app whose default storage driver is the local disk.\n */\nexport function localStorageWarning(\n defaultDriverName: string | undefined,\n env: Environment,\n silenced = false,\n): string | undefined {\n if (env !== \"production\" || silenced || defaultDriverName !== \"local\") return undefined;\n\n return (\n \"storage: the default driver 'local' keeps files on this server's disk only. \" +\n \"With more than one server, uploads written on one server are missing on the others. \" +\n \"Use an S3 or R2 storage driver in production, or set storage.silenceSingleServerWarning = true.\"\n );\n}\n"],"mappings":";AAEA,MAAM,yBAAyB;CAAC;CAAU;CAAkB;AAAK;AACjE,MAAM,2BAA2B;CAAC;CAAqB;CAA6B;AAAsB;;;;;AAM1G,SAAgB,mBACd,mBACA,iBACA,KACA,WAAW,OACS;CACpB,IAAI,QAAQ,gBAAgB,YAAY,CAAC,mBAAmB,OAAO;CAEnE,MAAM,SAAS,uBAAuB,SAAS,kBAAkB,YAAY,CAAC;CAC9E,MAAM,UACJ,CAAC,CAAC,mBAAmB,yBAAyB,SAAS,gBAAgB,YAAY,CAAC;CAEtF,IAAI,CAAC,UAAU,CAAC,SAAS,OAAO;CAEhC,OACE,8BAA8B,kBAAkB;AAIpD;;;;AAKA,SAAgB,oBACd,mBACA,KACA,WAAW,OACS;CACpB,IAAI,QAAQ,gBAAgB,YAAY,sBAAsB,SAAS,OAAO;CAE9E,OACE;AAIJ"}
1
+ {"version":3,"file":"single-server-warnings.mjs","names":[],"sources":["../../../../../../../../packages/core/src/connectors/single-server-warnings.ts"],"sourcesContent":["import type { Environment } from \"../utils/environment\";\n\nconst IN_PROCESS_CACHE_NAMES = [\"memory\", \"memoryextended\", \"lru\"];\nconst IN_PROCESS_CACHE_CLASSES = [\n \"memorycachedriver\",\n \"memoryextendedcachedriver\",\n \"lrumemorycachedriver\",\n];\n\n/**\n * Warning for a production app whose default cache driver keeps data in this\n * process only. Returns `undefined` when there is nothing to warn about.\n */\nexport function memoryCacheWarning(\n defaultDriverName: string | undefined,\n driverClassName: string | undefined,\n env: Environment,\n silenced = false,\n): string | undefined {\n if (env !== \"production\" || silenced || !defaultDriverName) return undefined;\n\n const byName = IN_PROCESS_CACHE_NAMES.includes(defaultDriverName.toLowerCase());\n const byClass =\n !!driverClassName && IN_PROCESS_CACHE_CLASSES.includes(driverClassName.toLowerCase());\n\n if (!byName && !byClass) return undefined;\n\n return (\n `cache: the default driver '${defaultDriverName}' keeps data in this process only. ` +\n \"With more than one server, repository cache clears, locks and counters don't reach the other servers. \" +\n \"Use the redis or pg cache driver in production, or set cache.silenceSingleServerWarning = true.\"\n );\n}\n\n/**\n * Warning for a production app whose default storage driver is the local disk.\n */\nexport function localStorageWarning(\n defaultDriverName: string | undefined,\n env: Environment,\n silenced = false,\n): string | undefined {\n if (env !== \"production\" || silenced || defaultDriverName !== \"local\") return undefined;\n\n return (\n \"storage: the default driver 'local' keeps files on this server's disk only. \" +\n \"With more than one server, uploads written on one server are missing on the others. \" +\n \"Use an S3 or R2 storage driver in production, or set storage.silenceSingleServerWarning = true.\"\n );\n}\n"],"mappings":";AAEA,MAAM,yBAAyB;CAAC;CAAU;CAAkB;AAAK;AACjE,MAAM,2BAA2B;CAC/B;CACA;CACA;AACF;;;;;AAMA,SAAgB,mBACd,mBACA,iBACA,KACA,WAAW,OACS;CACpB,IAAI,QAAQ,gBAAgB,YAAY,CAAC,mBAAmB,OAAO;CAEnE,MAAM,SAAS,uBAAuB,SAAS,kBAAkB,YAAY,CAAC;CAC9E,MAAM,UACJ,CAAC,CAAC,mBAAmB,yBAAyB,SAAS,gBAAgB,YAAY,CAAC;CAEtF,IAAI,CAAC,UAAU,CAAC,SAAS,OAAO;CAEhC,OACE,8BAA8B,kBAAkB;AAIpD;;;;AAKA,SAAgB,oBACd,mBACA,KACA,WAAW,OACS;CACpB,IAAI,QAAQ,gBAAgB,YAAY,sBAAsB,SAAS,OAAO;CAE9E,OACE;AAIJ"}
@@ -2,7 +2,7 @@ import { ConnectorLifecyclePhase, ConnectorName, ConnectorPriority } from "./typ
2
2
  import { BaseConnector } from "./base-connector.mjs";
3
3
  import { Server } from "socket.io";
4
4
 
5
- //#region ../core/src/connectors/socket-connector.d.ts
5
+ //#region ../../packages/core/src/connectors/socket-connector.d.ts
6
6
  /**
7
7
  * Socket Connector
8
8
  * Manages Socket server (Socket.IO) lifecycle
@@ -1 +1 @@
1
- {"version":3,"file":"socket-connector.d.mts","names":[],"sources":["../../../../../../../core/src/connectors/socket-connector.ts"],"mappings":";;;;;;;AAkCA;;cAAa,eAAA,SAAwB,aAAA;EAAA,SACnB,IAAA,EAAM,aAAA;EAAA,SACN,QAAA,GAAQ,iBAAA,CAAA,MAAA;EAAA,SACR,cAAA,GAAc,uBAAA,CAAA,IAAA;EASX;;;;;EAAA,mBAFA,YAAA;EAAA,UAET,MAAA,GAAS,MAAA;EAZgB;;;;;;;;EAAA,UAsBzB,aAAA;EAnBM;;;EAAA,UAwBN,YAAA;EAfA;;;;;;EAAA,UAuBA,iBAAA;IACR,KAAA,EAAO,KAAA,cAAmB,IAAA;IAC1B,OAAA,EAAS,KAAA,cAAmB,IAAA;EAAA;EAAA;;;EAMjB,IAAA,IAAI,OAAA;EA2EK;;;EAAT,KAAA,IAAS,OAAA;EA+BG;;;;EAfZ,OAAA,IAAW,OAAA;EA4EA;;;;;;;;;EA7DX,QAAA,IAAY,OAAA;;;;UA8BjB,iBAAA;EAAA,QAUA,aAAA;;;;;UAqBA,gBAAA;AAAA"}
1
+ {"version":3,"file":"socket-connector.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/connectors/socket-connector.ts"],"mappings":";;;;;;;AAkCA;;cAAa,eAAA,SAAwB,aAAA;EAAA,SACnB,IAAA,EAAM,aAAA;EAAA,SACN,QAAA,GAAQ,iBAAA,CAAA,MAAA;EAAA,SACR,cAAA,GAAc,uBAAA,CAAA,IAAA;EASX;;;;;EAAA,mBAFA,YAAA;EAAA,UAET,MAAA,GAAS,MAAA;EAZgB;;;;;;;;EAAA,UAsBzB,aAAA;EAnBM;;;EAAA,UAwBN,YAAA;EAfA;;;;;;EAAA,UAuBA,iBAAA;IACR,KAAA,EAAO,KAAA,cAAmB,IAAA;IAC1B,OAAA,EAAS,KAAA,cAAmB,IAAA;EAAA;EAAA;;;EAMjB,IAAA,IAAI,OAAA;EA2EK;;;EAAT,KAAA,IAAS,OAAA;EA+BG;;;;EAfZ,OAAA,IAAW,OAAA;EA6EA;;;;;;;;;EA9DX,QAAA,IAAY,OAAA;;;;UA8BjB,iBAAA;EAAA,QAUA,aAAA;;;;;UAsBA,gBAAA;AAAA"}
@@ -7,7 +7,7 @@ import { log } from "@warlock.js/logger";
7
7
  import { createServer } from "http";
8
8
  import { createServer as createServer$1 } from "https";
9
9
 
10
- //#region ../core/src/connectors/socket-connector.ts
10
+ //#region ../../packages/core/src/connectors/socket-connector.ts
11
11
  /**
12
12
  * Shown when a project enables sockets (a `socket` config is present) but the
13
13
  * optional `socket.io` peer is not installed.
@@ -1 +1 @@
1
- {"version":3,"file":"socket-connector.mjs","names":["createHttpsServer","createHttpServer"],"sources":["../../../../../../../core/src/connectors/socket-connector.ts"],"sourcesContent":["import config from \"@mongez/config\";\nimport { log } from \"@warlock.js/logger\";\nimport { createServer as createHttpServer } from \"http\";\nimport { createServer as createHttpsServer } from \"https\";\nimport type { Server } from \"socket.io\";\nimport { container } from \"../container\";\nimport { environment } from \"../utils/environment\";\nimport { BaseConnector } from \"./base-connector\";\nimport { ConnectorLifecyclePhase, type ConnectorName, ConnectorPriority } from \"./types\";\n\n/**\n * Shown when a project enables sockets (a `socket` config is present) but the\n * optional `socket.io` peer is not installed.\n */\nconst SOCKET_INSTALL_INSTRUCTIONS = `\nRealtime socket server requires the socket.io package.\nInstall it with:\n\n warlock add socket\n\nOr manually:\n\n npm install socket.io\n pnpm add socket.io\n yarn add socket.io\n`.trim();\n\nconst SINGLE_SERVER_WARNING =\n \"socket: no adapter configured — broadcasts only reach clients connected to this server. Use @socket.io/redis-adapter (socket.adapter) behind a load balancer, with sticky sessions for the polling transport.\";\n\n/**\n * Socket Connector\n * Manages Socket server (Socket.IO) lifecycle\n */\nexport class SocketConnector extends BaseConnector {\n public readonly name: ConnectorName = \"socket\";\n public readonly priority = ConnectorPriority.SOCKET;\n public readonly lifecyclePhase = ConnectorLifecyclePhase.Late;\n\n /**\n * Files that trigger Socket server restart\n * Note: routes.ts changes will be handled by HMR with wildcard routing\n * Connectors receive config file paths directly (not .env) thanks to layer-executor\n */\n protected readonly watchedFiles = [\"src/config/socket.ts\"];\n\n protected socket?: Server;\n\n /**\n * Whether this connector created the underlying node HTTP(S) server.\n *\n * When `http` is present, socket binds onto the HTTP connector's shared\n * `fastify.server` and must NOT close it on shutdown — the HTTP connector\n * owns the graceful drain. Socket only closes the node server when it\n * created one itself (http absent). See {@link shutdown}.\n */\n protected ownsRawServer = false;\n\n /**\n * The shared server socket.io attached to, kept for the detach.\n */\n protected sharedServer?: any;\n\n /**\n * Listener changes socket.io/engine.io made on the shared server at attach:\n * the listeners they added, and the ones they removed (engine.io lifts the\n * existing `request` listeners into its own wrapper). Undone on detach so\n * repeated dev restarts don't stack engines on Fastify's server.\n */\n protected attachedListeners: {\n added: Array<[string, (...args: any[]) => void]>;\n removed: Array<[string, (...args: any[]) => void]>;\n } = { added: [], removed: [] };\n\n /**\n * Boot the connector\n */\n public async boot() {\n const socketConfig = config.get(\"socket\");\n\n if (!socketConfig) return;\n\n // socket.io is an optional peer — load it lazily so projects that don't use\n // realtime sockets never need it installed (mirrors the mail/storage drivers).\n let SocketServer: typeof import(\"socket.io\").Server;\n try {\n ({ Server: SocketServer } = await import(\"socket.io\"));\n } catch {\n throw new Error(SOCKET_INSTALL_INSTRUCTIONS);\n }\n\n log.info(\"socket\", \"connection\", \"Starting Socket.IO server\");\n\n // now we have two cases\n // 1. http is used, then use it (shared — the HTTP connector owns it)\n // 2. http is not used, then create a new server (we own it)\n let server;\n const fastify = container.tryGet(\"http.server\");\n if (fastify) {\n server = fastify.server;\n this.ownsRawServer = false;\n } else {\n server = socketConfig.ssl\n ? createHttpsServer({ key: socketConfig.ssl.key, cert: socketConfig.ssl.cert })\n : createHttpServer();\n // Without a handler, EADDRINUSE is an unhandled 'error' event that crashes\n // the process with no context.\n server.on(\"error\", (error: Error) => {\n log.error(\"socket\", \"connection\", error, { port: socketConfig.port });\n });\n server.listen(socketConfig.port);\n this.ownsRawServer = true;\n }\n\n container.set(\"socket.rawServer\", server);\n\n const before = this.snapshotListeners(server);\n\n this.socket = new SocketServer(server, {\n // The shared raw server may carry OTHER `upgrade` consumers — Vite's HMR\n // websocket does exactly that when `WebConnector` is registered\n // (`web/src/server/web-connector.ts`, `server.hmr.server = fastify.server`).\n // engine.io's default `destroyUpgrade: true` schedules a destroy for every\n // upgrade whose path is not `/socket.io`\n // (`engine.io/build/server.js:676-695`: `setTimeout(… socket.end(), 1000)`),\n // and the only thing saving a foreign websocket today is that it wrote its\n // handshake bytes synchronously and so trips the `bytesWritten <= 0` guard\n // before the 1s timer fires. That is an undocumented race, not a contract.\n // Turning the destroy off removes the coupling outright and makes the\n // shared server safe for any app-owned websocket route.\n // A project can still override it via `socket.options`.\n destroyUpgrade: false,\n ...socketConfig.options,\n });\n\n if (!this.ownsRawServer) {\n this.sharedServer = server;\n this.attachedListeners = this.diffListeners(before, this.snapshotListeners(server));\n }\n\n if (socketConfig.adapter) {\n this.socket.adapter((await socketConfig.adapter(this.socket)) as never);\n } else if (environment() === \"production\" && !socketConfig.silenceSingleServerWarning) {\n log.warn(\"socket\", \"adapter\", SINGLE_SERVER_WARNING);\n }\n\n container.set(\"socket\", this.socket);\n }\n\n /**\n * Initialize Socket server\n */\n public async start(): Promise<void> {\n const socketConfig = config.get(\"socket\");\n\n // `this.socket` is only set by boot() once a socket config is present —\n // use it (not a never-assigned field) to detect a successful boot.\n if (!socketConfig || !this.socket) return;\n\n log.success(\"socket\", \"connection\", \"Established Socket.IO server\");\n\n this.active = true;\n }\n\n /**\n * Restart re-boots too: the closed `io` must be replaced and the new\n * `socket` config read, otherwise a config edit in dev restarts nothing.\n */\n public async restart(): Promise<void> {\n await this.shutdown();\n await this.boot();\n await this.start();\n }\n\n /**\n * Shutdown Socket server\n *\n * Always closes the Socket.IO layer (and awaits the drain). The underlying\n * node HTTP(S) server is only closed here when this connector created it\n * ({@link ownsRawServer}); when `http` owns the shared server, we leave it\n * for the HTTP connector to drain and close, so the two connectors don't\n * race to `close()` the same socket.\n */\n public async shutdown(): Promise<void> {\n if (!this.active) {\n return;\n }\n\n const socket = container.tryGet(\"socket\");\n if (socket) {\n if (this.ownsRawServer) {\n // We own the raw server: `io.close()` closes it too, so it is the only\n // close needed (a second `rawServer.close()` always rejects with\n // ERR_SERVER_NOT_RUNNING).\n await new Promise<void>((resolve) => {\n socket.close(() => resolve());\n });\n } else {\n // Shared mode: `io.close()` calls `httpServer.close()`, which would close\n // Fastify's server from here and bypass its graceful drain. Detach\n // instead: disconnect the clients and close the engine only.\n socket.of(\"/\").disconnectSockets(true);\n socket.engine.close();\n this.restoreListeners();\n }\n }\n\n this.active = false;\n }\n\n /**\n * Current listeners of the events socket.io touches on a node server.\n */\n private snapshotListeners(server: any): Map<string, Array<(...args: any[]) => void>> {\n const snapshot = new Map<string, Array<(...args: any[]) => void>>();\n\n for (const event of [\"request\", \"upgrade\", \"close\", \"listening\"]) {\n snapshot.set(event, server?.listeners?.(event)?.slice() ?? []);\n }\n\n return snapshot;\n }\n\n private diffListeners(\n before: Map<string, Array<(...args: any[]) => void>>,\n after: Map<string, Array<(...args: any[]) => void>>,\n ) {\n const added: Array<[string, (...args: any[]) => void]> = [];\n const removed: Array<[string, (...args: any[]) => void]> = [];\n\n for (const [event, listeners] of before) {\n const now = after.get(event) ?? [];\n\n for (const listener of now) if (!listeners.includes(listener)) added.push([event, listener]);\n for (const listener of listeners) if (!now.includes(listener)) removed.push([event, listener]);\n }\n\n return { added, removed };\n }\n\n /**\n * Undo what attaching did to the shared server, leaving listeners other\n * consumers added since (e.g. Vite's HMR upgrade handler) untouched.\n */\n private restoreListeners(): void {\n const server = this.sharedServer;\n\n if (!server) return;\n\n const { added, removed } = this.attachedListeners;\n\n for (const [event, listener] of added) server.removeListener(event, listener);\n for (const [event, listener] of removed) server.on(event, listener);\n\n this.attachedListeners = { added: [], removed: [] };\n this.sharedServer = undefined;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAcA,MAAM,8BAA8B;;;;;;;;;;;EAWlC,KAAK;AAEP,MAAM,wBACJ;;;;;AAMF,IAAa,kBAAb,cAAqC,cAAc;;;cACX;;;sBASJ,CAAC,sBAAsB;uBAY/B;2BAgBtB;GAAE,OAAO,CAAC;GAAG,SAAS,CAAC;EAAE;;;;;CAK7B,MAAa,OAAO;EAClB,MAAM,eAAe,OAAO,IAAI,QAAQ;EAExC,IAAI,CAAC,cAAc;EAInB,IAAI;EACJ,IAAI;GACF,CAAC,CAAE,QAAQ,gBAAiB,MAAM,OAAO;EAC3C,QAAQ;GACN,MAAM,IAAI,MAAM,2BAA2B;EAC7C;EAEA,IAAI,KAAK,UAAU,cAAc,2BAA2B;EAK5D,IAAI;EACJ,MAAM,UAAU,UAAU,OAAO,aAAa;EAC9C,IAAI,SAAS;GACX,SAAS,QAAQ;GACjB,KAAK,gBAAgB;EACvB,OAAO;GACL,SAAS,aAAa,MAClBA,eAAkB;IAAE,KAAK,aAAa,IAAI;IAAK,MAAM,aAAa,IAAI;GAAK,CAAC,IAC5EC,aAAiB;GAGrB,OAAO,GAAG,UAAU,UAAiB;IACnC,IAAI,MAAM,UAAU,cAAc,OAAO,EAAE,MAAM,aAAa,KAAK,CAAC;GACtE,CAAC;GACD,OAAO,OAAO,aAAa,IAAI;GAC/B,KAAK,gBAAgB;EACvB;EAEA,UAAU,IAAI,oBAAoB,MAAM;EAExC,MAAM,SAAS,KAAK,kBAAkB,MAAM;EAE5C,KAAK,SAAS,IAAI,aAAa,QAAQ;GAarC,gBAAgB;GAChB,GAAG,aAAa;EAClB,CAAC;EAED,IAAI,CAAC,KAAK,eAAe;GACvB,KAAK,eAAe;GACpB,KAAK,oBAAoB,KAAK,cAAc,QAAQ,KAAK,kBAAkB,MAAM,CAAC;EACpF;EAEA,IAAI,aAAa,SACf,KAAK,OAAO,QAAS,MAAM,aAAa,QAAQ,KAAK,MAAM,CAAW;OACjE,IAAI,YAAY,MAAM,gBAAgB,CAAC,aAAa,4BACzD,IAAI,KAAK,UAAU,WAAW,qBAAqB;EAGrD,UAAU,IAAI,UAAU,KAAK,MAAM;CACrC;;;;CAKA,MAAa,QAAuB;EAKlC,IAAI,CAJiB,OAAO,IAAI,QAIhB,KAAK,CAAC,KAAK,QAAQ;EAEnC,IAAI,QAAQ,UAAU,cAAc,8BAA8B;EAElE,KAAK,SAAS;CAChB;;;;;CAMA,MAAa,UAAyB;EACpC,MAAM,KAAK,SAAS;EACpB,MAAM,KAAK,KAAK;EAChB,MAAM,KAAK,MAAM;CACnB;;;;;;;;;;CAWA,MAAa,WAA0B;EACrC,IAAI,CAAC,KAAK,QACR;EAGF,MAAM,SAAS,UAAU,OAAO,QAAQ;EACxC,IAAI,QACF,IAAI,KAAK,eAIP,MAAM,IAAI,SAAe,YAAY;GACnC,OAAO,YAAY,QAAQ,CAAC;EAC9B,CAAC;OACI;GAIL,OAAO,GAAG,GAAG,CAAC,CAAC,kBAAkB,IAAI;GACrC,OAAO,OAAO,MAAM;GACpB,KAAK,iBAAiB;EACxB;EAGF,KAAK,SAAS;CAChB;;;;CAKA,AAAQ,kBAAkB,QAA2D;EACnF,MAAM,2BAAW,IAAI,IAA6C;EAElE,KAAK,MAAM,SAAS;GAAC;GAAW;GAAW;GAAS;EAAW,GAC7D,SAAS,IAAI,OAAO,QAAQ,YAAY,KAAK,CAAC,EAAE,MAAM,KAAK,CAAC,CAAC;EAG/D,OAAO;CACT;CAEA,AAAQ,cACN,QACA,OACA;EACA,MAAM,QAAmD,CAAC;EAC1D,MAAM,UAAqD,CAAC;EAE5D,KAAK,MAAM,CAAC,OAAO,cAAc,QAAQ;GACvC,MAAM,MAAM,MAAM,IAAI,KAAK,KAAK,CAAC;GAEjC,KAAK,MAAM,YAAY,KAAK,IAAI,CAAC,UAAU,SAAS,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,QAAQ,CAAC;GAC3F,KAAK,MAAM,YAAY,WAAW,IAAI,CAAC,IAAI,SAAS,QAAQ,GAAG,QAAQ,KAAK,CAAC,OAAO,QAAQ,CAAC;EAC/F;EAEA,OAAO;GAAE;GAAO;EAAQ;CAC1B;;;;;CAMA,AAAQ,mBAAyB;EAC/B,MAAM,SAAS,KAAK;EAEpB,IAAI,CAAC,QAAQ;EAEb,MAAM,EAAE,OAAO,YAAY,KAAK;EAEhC,KAAK,MAAM,CAAC,OAAO,aAAa,OAAO,OAAO,eAAe,OAAO,QAAQ;EAC5E,KAAK,MAAM,CAAC,OAAO,aAAa,SAAS,OAAO,GAAG,OAAO,QAAQ;EAElE,KAAK,oBAAoB;GAAE,OAAO,CAAC;GAAG,SAAS,CAAC;EAAE;EAClD,KAAK,eAAe;CACtB;AACF"}
1
+ {"version":3,"file":"socket-connector.mjs","names":["createHttpsServer","createHttpServer"],"sources":["../../../../../../../../packages/core/src/connectors/socket-connector.ts"],"sourcesContent":["import config from \"@mongez/config\";\nimport { log } from \"@warlock.js/logger\";\nimport { createServer as createHttpServer } from \"http\";\nimport { createServer as createHttpsServer } from \"https\";\nimport type { Server } from \"socket.io\";\nimport { container } from \"../container\";\nimport { environment } from \"../utils/environment\";\nimport { BaseConnector } from \"./base-connector\";\nimport { ConnectorLifecyclePhase, type ConnectorName, ConnectorPriority } from \"./types\";\n\n/**\n * Shown when a project enables sockets (a `socket` config is present) but the\n * optional `socket.io` peer is not installed.\n */\nconst SOCKET_INSTALL_INSTRUCTIONS = `\nRealtime socket server requires the socket.io package.\nInstall it with:\n\n warlock add socket\n\nOr manually:\n\n npm install socket.io\n pnpm add socket.io\n yarn add socket.io\n`.trim();\n\nconst SINGLE_SERVER_WARNING =\n \"socket: no adapter configured — broadcasts only reach clients connected to this server. Use @socket.io/redis-adapter (socket.adapter) behind a load balancer, with sticky sessions for the polling transport.\";\n\n/**\n * Socket Connector\n * Manages Socket server (Socket.IO) lifecycle\n */\nexport class SocketConnector extends BaseConnector {\n public readonly name: ConnectorName = \"socket\";\n public readonly priority = ConnectorPriority.SOCKET;\n public readonly lifecyclePhase = ConnectorLifecyclePhase.Late;\n\n /**\n * Files that trigger Socket server restart\n * Note: routes.ts changes will be handled by HMR with wildcard routing\n * Connectors receive config file paths directly (not .env) thanks to layer-executor\n */\n protected readonly watchedFiles = [\"src/config/socket.ts\"];\n\n protected socket?: Server;\n\n /**\n * Whether this connector created the underlying node HTTP(S) server.\n *\n * When `http` is present, socket binds onto the HTTP connector's shared\n * `fastify.server` and must NOT close it on shutdown — the HTTP connector\n * owns the graceful drain. Socket only closes the node server when it\n * created one itself (http absent). See {@link shutdown}.\n */\n protected ownsRawServer = false;\n\n /**\n * The shared server socket.io attached to, kept for the detach.\n */\n protected sharedServer?: any;\n\n /**\n * Listener changes socket.io/engine.io made on the shared server at attach:\n * the listeners they added, and the ones they removed (engine.io lifts the\n * existing `request` listeners into its own wrapper). Undone on detach so\n * repeated dev restarts don't stack engines on Fastify's server.\n */\n protected attachedListeners: {\n added: Array<[string, (...args: any[]) => void]>;\n removed: Array<[string, (...args: any[]) => void]>;\n } = { added: [], removed: [] };\n\n /**\n * Boot the connector\n */\n public async boot() {\n const socketConfig = config.get(\"socket\");\n\n if (!socketConfig) return;\n\n // socket.io is an optional peer — load it lazily so projects that don't use\n // realtime sockets never need it installed (mirrors the mail/storage drivers).\n let SocketServer: typeof import(\"socket.io\").Server;\n try {\n ({ Server: SocketServer } = await import(\"socket.io\"));\n } catch {\n throw new Error(SOCKET_INSTALL_INSTRUCTIONS);\n }\n\n log.info(\"socket\", \"connection\", \"Starting Socket.IO server\");\n\n // now we have two cases\n // 1. http is used, then use it (shared — the HTTP connector owns it)\n // 2. http is not used, then create a new server (we own it)\n let server;\n const fastify = container.tryGet(\"http.server\");\n if (fastify) {\n server = fastify.server;\n this.ownsRawServer = false;\n } else {\n server = socketConfig.ssl\n ? createHttpsServer({ key: socketConfig.ssl.key, cert: socketConfig.ssl.cert })\n : createHttpServer();\n // Without a handler, EADDRINUSE is an unhandled 'error' event that crashes\n // the process with no context.\n server.on(\"error\", (error: Error) => {\n log.error(\"socket\", \"connection\", error, { port: socketConfig.port });\n });\n server.listen(socketConfig.port);\n this.ownsRawServer = true;\n }\n\n container.set(\"socket.rawServer\", server);\n\n const before = this.snapshotListeners(server);\n\n this.socket = new SocketServer(server, {\n // The shared raw server may carry OTHER `upgrade` consumers — Vite's HMR\n // websocket does exactly that when `WebConnector` is registered\n // (`web/src/server/web-connector.ts`, `server.hmr.server = fastify.server`).\n // engine.io's default `destroyUpgrade: true` schedules a destroy for every\n // upgrade whose path is not `/socket.io`\n // (`engine.io/build/server.js:676-695`: `setTimeout(… socket.end(), 1000)`),\n // and the only thing saving a foreign websocket today is that it wrote its\n // handshake bytes synchronously and so trips the `bytesWritten <= 0` guard\n // before the 1s timer fires. That is an undocumented race, not a contract.\n // Turning the destroy off removes the coupling outright and makes the\n // shared server safe for any app-owned websocket route.\n // A project can still override it via `socket.options`.\n destroyUpgrade: false,\n ...socketConfig.options,\n });\n\n if (!this.ownsRawServer) {\n this.sharedServer = server;\n this.attachedListeners = this.diffListeners(before, this.snapshotListeners(server));\n }\n\n if (socketConfig.adapter) {\n this.socket.adapter((await socketConfig.adapter(this.socket)) as never);\n } else if (environment() === \"production\" && !socketConfig.silenceSingleServerWarning) {\n log.warn(\"socket\", \"adapter\", SINGLE_SERVER_WARNING);\n }\n\n container.set(\"socket\", this.socket);\n }\n\n /**\n * Initialize Socket server\n */\n public async start(): Promise<void> {\n const socketConfig = config.get(\"socket\");\n\n // `this.socket` is only set by boot() once a socket config is present —\n // use it (not a never-assigned field) to detect a successful boot.\n if (!socketConfig || !this.socket) return;\n\n log.success(\"socket\", \"connection\", \"Established Socket.IO server\");\n\n this.active = true;\n }\n\n /**\n * Restart re-boots too: the closed `io` must be replaced and the new\n * `socket` config read, otherwise a config edit in dev restarts nothing.\n */\n public async restart(): Promise<void> {\n await this.shutdown();\n await this.boot();\n await this.start();\n }\n\n /**\n * Shutdown Socket server\n *\n * Always closes the Socket.IO layer (and awaits the drain). The underlying\n * node HTTP(S) server is only closed here when this connector created it\n * ({@link ownsRawServer}); when `http` owns the shared server, we leave it\n * for the HTTP connector to drain and close, so the two connectors don't\n * race to `close()` the same socket.\n */\n public async shutdown(): Promise<void> {\n if (!this.active) {\n return;\n }\n\n const socket = container.tryGet(\"socket\");\n if (socket) {\n if (this.ownsRawServer) {\n // We own the raw server: `io.close()` closes it too, so it is the only\n // close needed (a second `rawServer.close()` always rejects with\n // ERR_SERVER_NOT_RUNNING).\n await new Promise<void>((resolve) => {\n socket.close(() => resolve());\n });\n } else {\n // Shared mode: `io.close()` calls `httpServer.close()`, which would close\n // Fastify's server from here and bypass its graceful drain. Detach\n // instead: disconnect the clients and close the engine only.\n socket.of(\"/\").disconnectSockets(true);\n socket.engine.close();\n this.restoreListeners();\n }\n }\n\n this.active = false;\n }\n\n /**\n * Current listeners of the events socket.io touches on a node server.\n */\n private snapshotListeners(server: any): Map<string, Array<(...args: any[]) => void>> {\n const snapshot = new Map<string, Array<(...args: any[]) => void>>();\n\n for (const event of [\"request\", \"upgrade\", \"close\", \"listening\"]) {\n snapshot.set(event, server?.listeners?.(event)?.slice() ?? []);\n }\n\n return snapshot;\n }\n\n private diffListeners(\n before: Map<string, Array<(...args: any[]) => void>>,\n after: Map<string, Array<(...args: any[]) => void>>,\n ) {\n const added: Array<[string, (...args: any[]) => void]> = [];\n const removed: Array<[string, (...args: any[]) => void]> = [];\n\n for (const [event, listeners] of before) {\n const now = after.get(event) ?? [];\n\n for (const listener of now) if (!listeners.includes(listener)) added.push([event, listener]);\n for (const listener of listeners)\n if (!now.includes(listener)) removed.push([event, listener]);\n }\n\n return { added, removed };\n }\n\n /**\n * Undo what attaching did to the shared server, leaving listeners other\n * consumers added since (e.g. Vite's HMR upgrade handler) untouched.\n */\n private restoreListeners(): void {\n const server = this.sharedServer;\n\n if (!server) return;\n\n const { added, removed } = this.attachedListeners;\n\n for (const [event, listener] of added) server.removeListener(event, listener);\n for (const [event, listener] of removed) server.on(event, listener);\n\n this.attachedListeners = { added: [], removed: [] };\n this.sharedServer = undefined;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAcA,MAAM,8BAA8B;;;;;;;;;;;EAWlC,KAAK;AAEP,MAAM,wBACJ;;;;;AAMF,IAAa,kBAAb,cAAqC,cAAc;;;cACX;;;sBASJ,CAAC,sBAAsB;uBAY/B;2BAgBtB;GAAE,OAAO,CAAC;GAAG,SAAS,CAAC;EAAE;;;;;CAK7B,MAAa,OAAO;EAClB,MAAM,eAAe,OAAO,IAAI,QAAQ;EAExC,IAAI,CAAC,cAAc;EAInB,IAAI;EACJ,IAAI;GACF,CAAC,CAAE,QAAQ,gBAAiB,MAAM,OAAO;EAC3C,QAAQ;GACN,MAAM,IAAI,MAAM,2BAA2B;EAC7C;EAEA,IAAI,KAAK,UAAU,cAAc,2BAA2B;EAK5D,IAAI;EACJ,MAAM,UAAU,UAAU,OAAO,aAAa;EAC9C,IAAI,SAAS;GACX,SAAS,QAAQ;GACjB,KAAK,gBAAgB;EACvB,OAAO;GACL,SAAS,aAAa,MAClBA,eAAkB;IAAE,KAAK,aAAa,IAAI;IAAK,MAAM,aAAa,IAAI;GAAK,CAAC,IAC5EC,aAAiB;GAGrB,OAAO,GAAG,UAAU,UAAiB;IACnC,IAAI,MAAM,UAAU,cAAc,OAAO,EAAE,MAAM,aAAa,KAAK,CAAC;GACtE,CAAC;GACD,OAAO,OAAO,aAAa,IAAI;GAC/B,KAAK,gBAAgB;EACvB;EAEA,UAAU,IAAI,oBAAoB,MAAM;EAExC,MAAM,SAAS,KAAK,kBAAkB,MAAM;EAE5C,KAAK,SAAS,IAAI,aAAa,QAAQ;GAarC,gBAAgB;GAChB,GAAG,aAAa;EAClB,CAAC;EAED,IAAI,CAAC,KAAK,eAAe;GACvB,KAAK,eAAe;GACpB,KAAK,oBAAoB,KAAK,cAAc,QAAQ,KAAK,kBAAkB,MAAM,CAAC;EACpF;EAEA,IAAI,aAAa,SACf,KAAK,OAAO,QAAS,MAAM,aAAa,QAAQ,KAAK,MAAM,CAAW;OACjE,IAAI,YAAY,MAAM,gBAAgB,CAAC,aAAa,4BACzD,IAAI,KAAK,UAAU,WAAW,qBAAqB;EAGrD,UAAU,IAAI,UAAU,KAAK,MAAM;CACrC;;;;CAKA,MAAa,QAAuB;EAKlC,IAAI,CAJiB,OAAO,IAAI,QAIhB,KAAK,CAAC,KAAK,QAAQ;EAEnC,IAAI,QAAQ,UAAU,cAAc,8BAA8B;EAElE,KAAK,SAAS;CAChB;;;;;CAMA,MAAa,UAAyB;EACpC,MAAM,KAAK,SAAS;EACpB,MAAM,KAAK,KAAK;EAChB,MAAM,KAAK,MAAM;CACnB;;;;;;;;;;CAWA,MAAa,WAA0B;EACrC,IAAI,CAAC,KAAK,QACR;EAGF,MAAM,SAAS,UAAU,OAAO,QAAQ;EACxC,IAAI,QACF,IAAI,KAAK,eAIP,MAAM,IAAI,SAAe,YAAY;GACnC,OAAO,YAAY,QAAQ,CAAC;EAC9B,CAAC;OACI;GAIL,OAAO,GAAG,GAAG,CAAC,CAAC,kBAAkB,IAAI;GACrC,OAAO,OAAO,MAAM;GACpB,KAAK,iBAAiB;EACxB;EAGF,KAAK,SAAS;CAChB;;;;CAKA,AAAQ,kBAAkB,QAA2D;EACnF,MAAM,2BAAW,IAAI,IAA6C;EAElE,KAAK,MAAM,SAAS;GAAC;GAAW;GAAW;GAAS;EAAW,GAC7D,SAAS,IAAI,OAAO,QAAQ,YAAY,KAAK,CAAC,EAAE,MAAM,KAAK,CAAC,CAAC;EAG/D,OAAO;CACT;CAEA,AAAQ,cACN,QACA,OACA;EACA,MAAM,QAAmD,CAAC;EAC1D,MAAM,UAAqD,CAAC;EAE5D,KAAK,MAAM,CAAC,OAAO,cAAc,QAAQ;GACvC,MAAM,MAAM,MAAM,IAAI,KAAK,KAAK,CAAC;GAEjC,KAAK,MAAM,YAAY,KAAK,IAAI,CAAC,UAAU,SAAS,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,QAAQ,CAAC;GAC3F,KAAK,MAAM,YAAY,WACrB,IAAI,CAAC,IAAI,SAAS,QAAQ,GAAG,QAAQ,KAAK,CAAC,OAAO,QAAQ,CAAC;EAC/D;EAEA,OAAO;GAAE;GAAO;EAAQ;CAC1B;;;;;CAMA,AAAQ,mBAAyB;EAC/B,MAAM,SAAS,KAAK;EAEpB,IAAI,CAAC,QAAQ;EAEb,MAAM,EAAE,OAAO,YAAY,KAAK;EAEhC,KAAK,MAAM,CAAC,OAAO,aAAa,OAAO,OAAO,eAAe,OAAO,QAAQ;EAC5E,KAAK,MAAM,CAAC,OAAO,aAAa,SAAS,OAAO,GAAG,OAAO,QAAQ;EAElE,KAAK,oBAAoB;GAAE,OAAO,CAAC;GAAG,SAAS,CAAC;EAAE;EAClD,KAAK,eAAe;CACtB;AACF"}
@@ -1,7 +1,7 @@
1
1
  import { ConnectorLifecyclePhase, ConnectorPriority } from "./types.mjs";
2
2
  import { BaseConnector } from "./base-connector.mjs";
3
3
 
4
- //#region ../core/src/connectors/storage.connector.d.ts
4
+ //#region ../../packages/core/src/connectors/storage.connector.d.ts
5
5
  /**
6
6
  * Cache Connector
7
7
  * Manages cache engine connection lifecycle
@@ -1 +1 @@
1
- {"version":3,"file":"storage.connector.d.mts","names":[],"sources":["../../../../../../../core/src/connectors/storage.connector.ts"],"mappings":";;;;;;AAaA;;cAAa,gBAAA,SAAyB,aAAA;EAAA,SACpB,IAAA;EAAA,SACA,QAAA,GAAQ,iBAAA,CAAA,OAAA;EAAA,SACR,cAAA,GAAc,uBAAA,CAAA,KAAA;EAyCL;;;EAAA,mBApCN,YAAA;EARiB;;;;;;;;;;;;;;AA4CJ;;EAlBnB,KAAA,IAAS,OAAA;;;;EAkBT,QAAA,IAAY,OAAA;AAAA"}
1
+ {"version":3,"file":"storage.connector.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/connectors/storage.connector.ts"],"mappings":";;;;;;AAaA;;cAAa,gBAAA,SAAyB,aAAA;EAAA,SACpB,IAAA;EAAA,SACA,QAAA,GAAQ,iBAAA,CAAA,OAAA;EAAA,SACR,cAAA,GAAc,uBAAA,CAAA,KAAA;EAyCL;;;EAAA,mBApCN,YAAA;EARiB;;;;;;;;;;;;;;AA4CJ;;EAlBnB,KAAA,IAAS,OAAA;;;;EAkBT,QAAA,IAAY,OAAA;AAAA"}
@@ -8,7 +8,7 @@ import { localStorageWarning } from "./single-server-warnings.mjs";
8
8
  import config from "@mongez/config";
9
9
  import { log } from "@warlock.js/logger";
10
10
 
11
- //#region ../core/src/connectors/storage.connector.ts
11
+ //#region ../../packages/core/src/connectors/storage.connector.ts
12
12
  /**
13
13
  * Cache Connector
14
14
  * Manages cache engine connection lifecycle
@@ -1 +1 @@
1
- {"version":3,"file":"storage.connector.mjs","names":[],"sources":["../../../../../../../core/src/connectors/storage.connector.ts"],"sourcesContent":["import config from \"@mongez/config\";\nimport { log } from \"@warlock.js/logger\";\nimport { storage } from \"../storage\";\nimport { environment } from \"../utils/environment\";\nimport { localStorageWarning } from \"./single-server-warnings\";\nimport { loadS3 } from \"../storage/drivers/cloud-driver\";\nimport { BaseConnector } from \"./base-connector\";\nimport { ConnectorLifecyclePhase, ConnectorPriority } from \"./types\";\n\n/**\n * Cache Connector\n * Manages cache engine connection lifecycle\n */\nexport class StorageConnector extends BaseConnector {\n public readonly name = \"storage\";\n public readonly priority = ConnectorPriority.STORAGE;\n public readonly lifecyclePhase = ConnectorLifecyclePhase.Early;\n\n /**\n * Files that trigger cache restart\n */\n protected readonly watchedFiles = [\"src/config/storage.ts\", \"src/config/storage.tsx\"];\n\n /**\n * Initialize storage.\n *\n * Unlike its siblings (database, cache, herald), this connector does NOT\n * early-return when `config.get(\"storage\")` is absent. Storage is\n * intentionally always-on: `storage.init()` registers a built-in `local`\n * driver rooted at `uploadsPath()` before reading configured drivers, so file\n * storage works out of the box even when a project ships no\n * `src/config/storage.ts`. A config-presence guard here would break that.\n *\n * That fallback is real as of 4.11.0. Until then this comment described it\n * and nothing implemented it, so every app without `src/config/storage.ts`\n * died at boot with `Storage driver \"local\" is not configured` — a decision\n * to skip the guard, taken on the authority of behaviour nobody had written.\n * See `Storage.registerBuiltInLocalDriver`.\n */\n public async start(): Promise<void> {\n await loadS3();\n await storage.init();\n\n const warning = localStorageWarning(\n config.get(\"storage.default\", \"local\"),\n environment(),\n config.get(\"storage.silenceSingleServerWarning\") === true,\n );\n\n if (warning) log.warn(\"storage\", \"single-server\", warning);\n\n this.active = true;\n }\n\n /**\n * Shutdown cache connection\n */\n public async shutdown(): Promise<void> {\n if (!this.active) {\n return;\n }\n\n storage.reset();\n\n this.active = false;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAaA,IAAa,mBAAb,cAAsC,cAAc;;;cAC3B;;;sBAOW,CAAC,yBAAyB,wBAAwB;;;;;;;;;;;;;;;;;;CAkBpF,MAAa,QAAuB;EAClC,MAAM,OAAO;EACb,MAAM,QAAQ,KAAK;EAEnB,MAAM,UAAU,oBACd,OAAO,IAAI,mBAAmB,OAAO,GACrC,YAAY,GACZ,OAAO,IAAI,oCAAoC,MAAM,IACvD;EAEA,IAAI,SAAS,IAAI,KAAK,WAAW,iBAAiB,OAAO;EAEzD,KAAK,SAAS;CAChB;;;;CAKA,MAAa,WAA0B;EACrC,IAAI,CAAC,KAAK,QACR;EAGF,QAAQ,MAAM;EAEd,KAAK,SAAS;CAChB;AACF"}
1
+ {"version":3,"file":"storage.connector.mjs","names":[],"sources":["../../../../../../../../packages/core/src/connectors/storage.connector.ts"],"sourcesContent":["import config from \"@mongez/config\";\nimport { log } from \"@warlock.js/logger\";\nimport { storage } from \"../storage\";\nimport { environment } from \"../utils/environment\";\nimport { localStorageWarning } from \"./single-server-warnings\";\nimport { loadS3 } from \"../storage/drivers/cloud-driver\";\nimport { BaseConnector } from \"./base-connector\";\nimport { ConnectorLifecyclePhase, ConnectorPriority } from \"./types\";\n\n/**\n * Cache Connector\n * Manages cache engine connection lifecycle\n */\nexport class StorageConnector extends BaseConnector {\n public readonly name = \"storage\";\n public readonly priority = ConnectorPriority.STORAGE;\n public readonly lifecyclePhase = ConnectorLifecyclePhase.Early;\n\n /**\n * Files that trigger cache restart\n */\n protected readonly watchedFiles = [\"src/config/storage.ts\", \"src/config/storage.tsx\"];\n\n /**\n * Initialize storage.\n *\n * Unlike its siblings (database, cache, herald), this connector does NOT\n * early-return when `config.get(\"storage\")` is absent. Storage is\n * intentionally always-on: `storage.init()` registers a built-in `local`\n * driver rooted at `uploadsPath()` before reading configured drivers, so file\n * storage works out of the box even when a project ships no\n * `src/config/storage.ts`. A config-presence guard here would break that.\n *\n * That fallback is real as of 4.11.0. Until then this comment described it\n * and nothing implemented it, so every app without `src/config/storage.ts`\n * died at boot with `Storage driver \"local\" is not configured` — a decision\n * to skip the guard, taken on the authority of behaviour nobody had written.\n * See `Storage.registerBuiltInLocalDriver`.\n */\n public async start(): Promise<void> {\n await loadS3();\n await storage.init();\n\n const warning = localStorageWarning(\n config.get(\"storage.default\", \"local\"),\n environment(),\n config.get(\"storage.silenceSingleServerWarning\") === true,\n );\n\n if (warning) log.warn(\"storage\", \"single-server\", warning);\n\n this.active = true;\n }\n\n /**\n * Shutdown cache connection\n */\n public async shutdown(): Promise<void> {\n if (!this.active) {\n return;\n }\n\n storage.reset();\n\n this.active = false;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAaA,IAAa,mBAAb,cAAsC,cAAc;;;cAC3B;;;sBAOW,CAAC,yBAAyB,wBAAwB;;;;;;;;;;;;;;;;;;CAkBpF,MAAa,QAAuB;EAClC,MAAM,OAAO;EACb,MAAM,QAAQ,KAAK;EAEnB,MAAM,UAAU,oBACd,OAAO,IAAI,mBAAmB,OAAO,GACrC,YAAY,GACZ,OAAO,IAAI,oCAAoC,MAAM,IACvD;EAEA,IAAI,SAAS,IAAI,KAAK,WAAW,iBAAiB,OAAO;EAEzD,KAAK,SAAS;CAChB;;;;CAKA,MAAa,WAA0B;EACrC,IAAI,CAAC,KAAK,QACR;EAGF,QAAQ,MAAM;EAEd,KAAK,SAAS;CAChB;AACF"}
@@ -2,7 +2,7 @@ import { NamedApiRoute } from "../router/types.mjs";
2
2
  import { ResolvedBuildConfig } from "../production/resolve-build-config.mjs";
3
3
  import { BuildOptions } from "esbuild";
4
4
 
5
- //#region ../core/src/connectors/types.d.ts
5
+ //#region ../../packages/core/src/connectors/types.d.ts
6
6
  /**
7
7
  * Connector Interface
8
8
  * All service connectors (Database, HTTP, Cache, etc.) must implement this interface
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.mts","names":[],"sources":["../../../../../../../core/src/connectors/types.ts"],"mappings":";;;;;;;AAQA;;UAAiB,SAAA;EAIA;;;EAAA,SAAN,IAAA,EAAM,aAAA;EAmCJ;;;;EAAA,SA7BF,QAAA;EANA;;;;EAAA,SAYA,cAAA,EAAgB,uBAAA;EAKzB;;;EAAA,QAAA;EAYS;;;;EANT,IAAA,WAAe,OAAA;EAyBf;;;;EAnBA,KAAA,IAAS,OAAA;EA8BkC;AAO7C;;;EA/BE,OAAA,IAAW,OAAA;EAiCX;;;;EA3BA,QAAA,IAAY,OAAA;EAiCuB;;AAAa;AAalD;;EAvCE,aAAA,CAAc,YAAA;EAuCoB;AACtB;AAOd;;;;;;;EARoC,SA5BzB,KAAA,GAAQ,0BAAA;AAAA;AA+DnB;;;;AAAA,KAxDY,qBAAA;EAgEP,uEA9DH,aAAA,UAqEe;EAnEf,OAAA,UA4EkB;EA1ElB,OAAA,EAAS,mBAAA,EA0EwC;EAAA,SAxExC,cAAA,YAA0B,aAAa;AAAA;;;;;;;;;;;KAatC,qBAAA,GAAwB,IAAI,CACtC,YAAA;;;;KAOU,4BAAA;EAsDA;;;;AAAa;AAuBzB;;EArEE,YAAA,aAsEA;EApEA,OAAA,GAAU,qBAAqB;AAAA;;;;;;;;;;;;;;;KAiBrB,0BAAA;EAqER;;;;;EA/DF,QAAA,EACE,OAAA,EAAS,qBAAA,GACR,OAAA,CAAQ,4BAAA,WAAuC,4BAAA;;;;;;EAOlD,IAAA,EAAM,OAAA,EAAS,qBAAA,GAAwB,OAAA;;;;;;;;EASvC,OAAA,EAAS,OAAA,EAAS,qBAAA,GAAwB,OAAA;AAAA;AAAA,KAGhC,aAAA;;;;;;;;;;aAuBA,uBAAA;EACV,KAAA;EACA,IAAI;AAAA;;;;aAMM,iBAAA;EACV,MAAA;EACA,MAAA;EACA,QAAA;EACA,YAAA;EACA,KAAA;EACA,IAAA;EACA,OAAA;EACA,MAAA;EACA,aAAA;EACA,MAAA;EACA,EAAA;AAAA"}
1
+ {"version":3,"file":"types.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/connectors/types.ts"],"mappings":";;;;;;;AAQA;;UAAiB,SAAA;EAIA;;;EAAA,SAAN,IAAA,EAAM,aAAA;EAmCJ;;;;EAAA,SA7BF,QAAA;EANA;;;;EAAA,SAYA,cAAA,EAAgB,uBAAA;EAKzB;;;EAAA,QAAA;EAYS;;;;EANT,IAAA,WAAe,OAAA;EAyBf;;;;EAnBA,KAAA,IAAS,OAAA;EA8BkC;AAO7C;;;EA/BE,OAAA,IAAW,OAAA;EAiCX;;;;EA3BA,QAAA,IAAY,OAAA;EAiCuB;;AAAa;AAalD;;EAvCE,aAAA,CAAc,YAAA;EAuCoB;AACtB;AAOd;;;;;;;EARoC,SA5BzB,KAAA,GAAQ,0BAAA;AAAA;AA+DnB;;;;AAAA,KAxDY,qBAAA;EAgEP,uEA9DH,aAAA,UAqEe;EAnEf,OAAA,UA4EkB;EA1ElB,OAAA,EAAS,mBAAA,EA0EwC;EAAA,SAxExC,cAAA,YAA0B,aAAa;AAAA;;;;;;;;;;;KAatC,qBAAA,GAAwB,IAAI,CACtC,YAAA;;;;KAOU,4BAAA;EAsDA;;;;AAAa;AAuBzB;;EArEE,YAAA,aAsEA;EApEA,OAAA,GAAU,qBAAqB;AAAA;;;;;;;;;;;;;;;KAiBrB,0BAAA;EAqER;;;;;EA/DF,QAAA,EACE,OAAA,EAAS,qBAAA,GACR,OAAA,CAAQ,4BAAA,WAAuC,4BAAA;;;;;;EAOlD,IAAA,EAAM,OAAA,EAAS,qBAAA,GAAwB,OAAA;;;;;;;;EASvC,OAAA,EAAS,OAAA,EAAS,qBAAA,GAAwB,OAAA;AAAA;AAAA,KAGhC,aAAA;;;;;;;;;;aAuBA,uBAAA;EACV,KAAA;EACA,IAAI;AAAA;;;;aAMM,iBAAA;EACV,MAAA;EACA,MAAA;EACA,QAAA;EACA,YAAA;EACA,KAAA;EACA,IAAA;EACA,OAAA;EACA,MAAA;EACA,aAAA;EACA,MAAA;EACA,EAAA;AAAA"}
@@ -1,4 +1,4 @@
1
- //#region ../core/src/connectors/types.ts
1
+ //#region ../../packages/core/src/connectors/types.ts
2
2
  /**
3
3
  * When a connector boots relative to user code (main, routes, events).
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"types.mjs","names":[],"sources":["../../../../../../../core/src/connectors/types.ts"],"sourcesContent":["import type { BuildOptions } from \"esbuild\";\nimport type { NamedApiRoute } from \"../router/types\";\nimport type { ResolvedBuildConfig } from \"../production/resolve-build-config\";\n\n/**\n * Connector Interface\n * All service connectors (Database, HTTP, Cache, etc.) must implement this interface\n */\nexport interface Connector {\n /**\n * Unique name of the connector\n */\n readonly name: ConnectorName;\n\n /**\n * Priority for initialization order\n * Lower numbers initialize first (e.g., Database: 1, HTTP: 3)\n */\n readonly priority: number;\n\n /**\n * Phase the connector boots in, relative to user code.\n * See `ConnectorLifecyclePhase` for semantics.\n */\n readonly lifecyclePhase: ConnectorLifecyclePhase;\n\n /**\n * Whether the connector is currently active/connected\n */\n isActive(): boolean;\n\n /**\n * Boot the connector\n * Called during server startup before starting the connector\n */\n boot(): void | Promise<void>;\n\n /**\n * Initialize the connector\n * Called during server startup\n */\n start(): Promise<void>;\n\n /**\n * Restart the connector\n * Called when watched files change\n */\n restart(): Promise<void>;\n\n /**\n * Gracefully shutdown the connector\n * Called during server shutdown\n */\n shutdown(): Promise<void>;\n\n /**\n * Determine if this connector needs restart based on changed files\n * @param changedFiles Array of relative file paths that changed\n * @returns true if connector should restart\n */\n shouldRestart(changedFiles: string[]): boolean;\n\n /**\n * What this connector contributes to `warlock build`.\n *\n * Read STATICALLY from `warlock.config.ts > connectors` — `warlock build`\n * never calls `boot()`/`start()`, so nothing here may assume a running\n * connector. The same `connectors` key drives both halves of a connector's\n * life — build-time contribution and runtime boot; see\n * {@link ConnectorBuildContribution}.\n */\n readonly build?: ConnectorBuildContribution;\n}\n\n/**\n * What a build contribution is handed. Everything it needs to write files\n * and shape the bundle, and nothing that would let it reach the runtime.\n */\nexport type ConnectorBuildContext = {\n /** Absolute path to `.warlock/production` — deleted after the build */\n productionDir: string;\n /** Absolute path to the application root (where `package.json` lives) */\n appRoot: string;\n /** The build config after framework defaults and user overrides */\n options: ResolvedBuildConfig;\n /** Fresh registration-only snapshot, present only when the Web connector is configured. */\n readonly namedApiRoutes?: readonly NamedApiRoute[];\n};\n\n/**\n * The esbuild options a contributor may patch.\n *\n * Deliberately a narrow `Pick`, not `Partial<BuildOptions>`: `entryPoints`,\n * `tsconfig` and `tsconfigRaw` stay forbidden here for the same reason they\n * are forbidden in the user's `build` block — they re-compile every file in\n * the bundle, workspace packages included (see `ForbiddenBuildOptionError`).\n * A contributor reaching them would reintroduce the failure the user-level\n * guard exists to prevent.\n */\nexport type ConnectorEsbuildPatch = Pick<\n BuildOptions,\n \"jsx\" | \"jsxImportSource\" | \"define\" | \"external\" | \"loader\" | \"plugins\"\n>;\n\n/**\n * What `generate` may hand back to the builder.\n */\nexport type ConnectorBuildGenerateResult = {\n /**\n * Lines appended verbatim to section 4 of the generated entry, AFTER the\n * `./routes` import — page registration must see the routes app code\n * collected, mirroring dev's ordering.\n *\n * @example ['await import(\"./pages\");']\n */\n entryImports?: string[];\n /** Merged into the esbuild call: defaults < this patch < user `build` */\n esbuild?: ConnectorEsbuildPatch;\n};\n\n/**\n * A connector's build-time half: two hooks, both awaited, drained in\n * `connectors` array order. A hook that throws fails the build.\n *\n * **This type is closed on purpose**: exactly these two optional function properties and ZERO data-bearing\n * fields. There is deliberately no property where a Vite/babel plugin\n * instance, an alias map or a compiled pipeline could live, so\n * `build: { plugins: [...] }` is a type error rather than something a\n * reviewer has to catch. Anything heavy must be constructed INSIDE a hook,\n * after that hook dynamically imports it — that is what keeps a connector's\n * static import graph out of the runtime closure. The drain mirrors this at\n * read time by rejecting unknown enumerable keys (`assertClosedContribution`):\n * the type narrows, the runtime asserts.\n */\nexport type ConnectorBuildContribution = {\n /**\n * Write files into `ctx.productionDir` and/or patch the bundle.\n *\n * Runs after the generated-imports check and before esbuild bundles.\n */\n generate?(\n context: ConnectorBuildContext,\n ): Promise<ConnectorBuildGenerateResult | void> | ConnectorBuildGenerateResult | void;\n\n /**\n * Produce artifacts esbuild does not — e.g. a client bundle.\n *\n * Runs after esbuild and before `.warlock/production` is removed.\n */\n emit?(context: ConnectorBuildContext): Promise<void> | void;\n\n /**\n * Write the connector's generated `.d.ts` files under `.warlock/typings`.\n *\n * Runs from `warlock generate.typings` with the same context `generate`\n * receives (`productionDir` is not written to), so a clean checkout can\n * typecheck before any build has run.\n */\n typings?(context: ConnectorBuildContext): Promise<void> | void;\n};\n\nexport type ConnectorName =\n | \"logger\"\n | \"mailer\"\n | \"http\"\n | \"database\"\n | \"cache\"\n | \"storage\"\n | \"herald\"\n | \"socket\"\n | \"notifications\"\n | \"access\"\n | \"ai\"\n | (string & {});\n\n/**\n * When a connector boots relative to user code (main, routes, events).\n *\n * - `Early`: before user code is imported. For services user code\n * needs at import time (database, cache, logger, storage, mailer).\n * - `Late`: after user code is imported. For services that bind to\n * things user code registered (http scans the router; socket\n * depends on http's instance).\n */\nexport enum ConnectorLifecyclePhase {\n Early = \"early\",\n Late = \"late\",\n}\n\n/**\n * Connector priority constants\n */\nexport enum ConnectorPriority {\n LOGGER = 0,\n MAILER = 1,\n DATABASE = 2,\n COMMUNICATOR = 3,\n CACHE = 4,\n HTTP = 5,\n STORAGE = 6,\n SOCKET = 7,\n NOTIFICATIONS = 8,\n ACCESS = 9,\n AI = 10,\n}\n"],"mappings":";;;;;;;;;;AAwLA,IAAY,0BAAL;CACL;CACA;;AACF;;;;AAKA,IAAY,oBAAL;CACL;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;;AACF"}
1
+ {"version":3,"file":"types.mjs","names":[],"sources":["../../../../../../../../packages/core/src/connectors/types.ts"],"sourcesContent":["import type { BuildOptions } from \"esbuild\";\nimport type { NamedApiRoute } from \"../router/types\";\nimport type { ResolvedBuildConfig } from \"../production/resolve-build-config\";\n\n/**\n * Connector Interface\n * All service connectors (Database, HTTP, Cache, etc.) must implement this interface\n */\nexport interface Connector {\n /**\n * Unique name of the connector\n */\n readonly name: ConnectorName;\n\n /**\n * Priority for initialization order\n * Lower numbers initialize first (e.g., Database: 1, HTTP: 3)\n */\n readonly priority: number;\n\n /**\n * Phase the connector boots in, relative to user code.\n * See `ConnectorLifecyclePhase` for semantics.\n */\n readonly lifecyclePhase: ConnectorLifecyclePhase;\n\n /**\n * Whether the connector is currently active/connected\n */\n isActive(): boolean;\n\n /**\n * Boot the connector\n * Called during server startup before starting the connector\n */\n boot(): void | Promise<void>;\n\n /**\n * Initialize the connector\n * Called during server startup\n */\n start(): Promise<void>;\n\n /**\n * Restart the connector\n * Called when watched files change\n */\n restart(): Promise<void>;\n\n /**\n * Gracefully shutdown the connector\n * Called during server shutdown\n */\n shutdown(): Promise<void>;\n\n /**\n * Determine if this connector needs restart based on changed files\n * @param changedFiles Array of relative file paths that changed\n * @returns true if connector should restart\n */\n shouldRestart(changedFiles: string[]): boolean;\n\n /**\n * What this connector contributes to `warlock build`.\n *\n * Read STATICALLY from `warlock.config.ts > connectors` — `warlock build`\n * never calls `boot()`/`start()`, so nothing here may assume a running\n * connector. The same `connectors` key drives both halves of a connector's\n * life — build-time contribution and runtime boot; see\n * {@link ConnectorBuildContribution}.\n */\n readonly build?: ConnectorBuildContribution;\n}\n\n/**\n * What a build contribution is handed. Everything it needs to write files\n * and shape the bundle, and nothing that would let it reach the runtime.\n */\nexport type ConnectorBuildContext = {\n /** Absolute path to `.warlock/production` — deleted after the build */\n productionDir: string;\n /** Absolute path to the application root (where `package.json` lives) */\n appRoot: string;\n /** The build config after framework defaults and user overrides */\n options: ResolvedBuildConfig;\n /** Fresh registration-only snapshot, present only when the Web connector is configured. */\n readonly namedApiRoutes?: readonly NamedApiRoute[];\n};\n\n/**\n * The esbuild options a contributor may patch.\n *\n * Deliberately a narrow `Pick`, not `Partial<BuildOptions>`: `entryPoints`,\n * `tsconfig` and `tsconfigRaw` stay forbidden here for the same reason they\n * are forbidden in the user's `build` block — they re-compile every file in\n * the bundle, workspace packages included (see `ForbiddenBuildOptionError`).\n * A contributor reaching them would reintroduce the failure the user-level\n * guard exists to prevent.\n */\nexport type ConnectorEsbuildPatch = Pick<\n BuildOptions,\n \"jsx\" | \"jsxImportSource\" | \"define\" | \"external\" | \"loader\" | \"plugins\"\n>;\n\n/**\n * What `generate` may hand back to the builder.\n */\nexport type ConnectorBuildGenerateResult = {\n /**\n * Lines appended verbatim to section 4 of the generated entry, AFTER the\n * `./routes` import — page registration must see the routes app code\n * collected, mirroring dev's ordering.\n *\n * @example ['await import(\"./pages\");']\n */\n entryImports?: string[];\n /** Merged into the esbuild call: defaults < this patch < user `build` */\n esbuild?: ConnectorEsbuildPatch;\n};\n\n/**\n * A connector's build-time half: two hooks, both awaited, drained in\n * `connectors` array order. A hook that throws fails the build.\n *\n * **This type is closed on purpose**: exactly these two optional function properties and ZERO data-bearing\n * fields. There is deliberately no property where a Vite/babel plugin\n * instance, an alias map or a compiled pipeline could live, so\n * `build: { plugins: [...] }` is a type error rather than something a\n * reviewer has to catch. Anything heavy must be constructed INSIDE a hook,\n * after that hook dynamically imports it — that is what keeps a connector's\n * static import graph out of the runtime closure. The drain mirrors this at\n * read time by rejecting unknown enumerable keys (`assertClosedContribution`):\n * the type narrows, the runtime asserts.\n */\nexport type ConnectorBuildContribution = {\n /**\n * Write files into `ctx.productionDir` and/or patch the bundle.\n *\n * Runs after the generated-imports check and before esbuild bundles.\n */\n generate?(\n context: ConnectorBuildContext,\n ): Promise<ConnectorBuildGenerateResult | void> | ConnectorBuildGenerateResult | void;\n\n /**\n * Produce artifacts esbuild does not — e.g. a client bundle.\n *\n * Runs after esbuild and before `.warlock/production` is removed.\n */\n emit?(context: ConnectorBuildContext): Promise<void> | void;\n\n /**\n * Write the connector's generated `.d.ts` files under `.warlock/typings`.\n *\n * Runs from `warlock generate.typings` with the same context `generate`\n * receives (`productionDir` is not written to), so a clean checkout can\n * typecheck before any build has run.\n */\n typings?(context: ConnectorBuildContext): Promise<void> | void;\n};\n\nexport type ConnectorName =\n | \"logger\"\n | \"mailer\"\n | \"http\"\n | \"database\"\n | \"cache\"\n | \"storage\"\n | \"herald\"\n | \"socket\"\n | \"notifications\"\n | \"access\"\n | \"ai\"\n | (string & {});\n\n/**\n * When a connector boots relative to user code (main, routes, events).\n *\n * - `Early`: before user code is imported. For services user code\n * needs at import time (database, cache, logger, storage, mailer).\n * - `Late`: after user code is imported. For services that bind to\n * things user code registered (http scans the router; socket\n * depends on http's instance).\n */\nexport enum ConnectorLifecyclePhase {\n Early = \"early\",\n Late = \"late\",\n}\n\n/**\n * Connector priority constants\n */\nexport enum ConnectorPriority {\n LOGGER = 0,\n MAILER = 1,\n DATABASE = 2,\n COMMUNICATOR = 3,\n CACHE = 4,\n HTTP = 5,\n STORAGE = 6,\n SOCKET = 7,\n NOTIFICATIONS = 8,\n ACCESS = 9,\n AI = 10,\n}\n"],"mappings":";;;;;;;;;;AAwLA,IAAY,0BAAL;CACL;CACA;;AACF;;;;AAKA,IAAY,oBAAL;CACL;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;;AACF"}
@@ -1,4 +1,4 @@
1
- //#region ../core/src/container/container-instance-registry.ts
1
+ //#region ../../packages/core/src/container/container-instance-registry.ts
2
2
  /**
3
3
  * `globalThis` key the registry is stored under. A `Symbol.for` registry
4
4
  * key (not a module-scope variable) is required because the whole point of
@@ -1 +1 @@
1
- {"version":3,"file":"container-instance-registry.mjs","names":[],"sources":["../../../../../../../core/src/container/container-instance-registry.ts"],"sourcesContent":["/**\n * A single loaded copy of the container module, as seen by\n * {@link registerContainerInstance}.\n */\nexport type ContainerInstanceRecord = {\n /**\n * Generated once per module evaluation — never derived from anything a\n * duplicate evaluation could coincidentally share.\n */\n id: string;\n /**\n * `import.meta.url` of this evaluation, when the runtime exposes it\n * cheaply. Omitted rather than guessed when unavailable.\n */\n moduleUrl?: string;\n};\n\n/**\n * `globalThis` key the registry is stored under. A `Symbol.for` registry\n * key (not a module-scope variable) is required because the whole point of\n * this file is that it gets evaluated more than once per process — Vite's\n * SSR module runner and Node's ESM loader each hold their own copy of\n * `@warlock.js/core` in the monorepo dev path, and `globalThis` is the only\n * object both evaluations actually share.\n */\nconst registryKey = Symbol.for(\"warlock.js/core/container-instance-registry\");\n\ntype GlobalWithContainerRegistry = typeof globalThis & {\n [registryKey]?: ContainerInstanceRecord[];\n};\n\nfunction getRegistry(): ContainerInstanceRecord[] {\n const globalWithRegistry = globalThis as GlobalWithContainerRegistry;\n\n if (!globalWithRegistry[registryKey]) {\n globalWithRegistry[registryKey] = [];\n }\n\n return globalWithRegistry[registryKey];\n}\n\n/**\n * Registers this module evaluation as a live container instance.\n *\n * Called once at module load, and only ever appends — it never reads back\n * what it just wrote to decide anything, so it cannot itself judge whether\n * a duplicate exists. That judgment happens later, and only on the\n * container's miss/throw path (see `getRegisteredContainerInstanceCount`\n * usage in `index.ts`), specifically so re-evaluation under a test runner's\n * module reset is never mistaken for duplication at load time.\n */\nexport function registerContainerInstance(): void {\n const record: ContainerInstanceRecord = {\n id: `${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,\n };\n\n if (typeof import.meta !== \"undefined\" && import.meta.url) {\n record.moduleUrl = import.meta.url;\n }\n\n getRegistry().push(record);\n}\n\n/**\n * All container instances registered on this process/runtime so far.\n */\nexport function getRegisteredContainerInstances(): readonly ContainerInstanceRecord[] {\n return getRegistry();\n}\n\n/**\n * Clears the registry. Test-only: lets a spec simulate a second loaded\n * instance, or reset back to the innocent single-instance case, without\n * actually loading a second copy of the module.\n */\nexport function resetContainerInstanceRegistryForTests(): void {\n getRegistry().length = 0;\n}\n"],"mappings":";;;;;;;;;AAyBA,MAAM,cAAc,OAAO,IAAI,6CAA6C;AAM5E,SAAS,cAAyC;CAChD,MAAM,qBAAqB;CAE3B,IAAI,CAAC,mBAAmB,cACtB,mBAAmB,eAAe,CAAC;CAGrC,OAAO,mBAAmB;AAC5B;;;;;;;;;;;AAYA,SAAgB,4BAAkC;CAChD,MAAM,SAAkC,EACtC,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,IACtE;CAEA,IAAI,OAAO,OAAO,SAAS,eAAe,OAAO,KAAK,KACpD,OAAO,YAAY,OAAO,KAAK;CAGjC,YAAY,CAAC,CAAC,KAAK,MAAM;AAC3B;;;;AAKA,SAAgB,kCAAsE;CACpF,OAAO,YAAY;AACrB"}
1
+ {"version":3,"file":"container-instance-registry.mjs","names":[],"sources":["../../../../../../../../packages/core/src/container/container-instance-registry.ts"],"sourcesContent":["/**\n * A single loaded copy of the container module, as seen by\n * {@link registerContainerInstance}.\n */\nexport type ContainerInstanceRecord = {\n /**\n * Generated once per module evaluation — never derived from anything a\n * duplicate evaluation could coincidentally share.\n */\n id: string;\n /**\n * `import.meta.url` of this evaluation, when the runtime exposes it\n * cheaply. Omitted rather than guessed when unavailable.\n */\n moduleUrl?: string;\n};\n\n/**\n * `globalThis` key the registry is stored under. A `Symbol.for` registry\n * key (not a module-scope variable) is required because the whole point of\n * this file is that it gets evaluated more than once per process — Vite's\n * SSR module runner and Node's ESM loader each hold their own copy of\n * `@warlock.js/core` in the monorepo dev path, and `globalThis` is the only\n * object both evaluations actually share.\n */\nconst registryKey = Symbol.for(\"warlock.js/core/container-instance-registry\");\n\ntype GlobalWithContainerRegistry = typeof globalThis & {\n [registryKey]?: ContainerInstanceRecord[];\n};\n\nfunction getRegistry(): ContainerInstanceRecord[] {\n const globalWithRegistry = globalThis as GlobalWithContainerRegistry;\n\n if (!globalWithRegistry[registryKey]) {\n globalWithRegistry[registryKey] = [];\n }\n\n return globalWithRegistry[registryKey];\n}\n\n/**\n * Registers this module evaluation as a live container instance.\n *\n * Called once at module load, and only ever appends — it never reads back\n * what it just wrote to decide anything, so it cannot itself judge whether\n * a duplicate exists. That judgment happens later, and only on the\n * container's miss/throw path (see `getRegisteredContainerInstanceCount`\n * usage in `index.ts`), specifically so re-evaluation under a test runner's\n * module reset is never mistaken for duplication at load time.\n */\nexport function registerContainerInstance(): void {\n const record: ContainerInstanceRecord = {\n id: `${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,\n };\n\n if (typeof import.meta !== \"undefined\" && import.meta.url) {\n record.moduleUrl = import.meta.url;\n }\n\n getRegistry().push(record);\n}\n\n/**\n * All container instances registered on this process/runtime so far.\n */\nexport function getRegisteredContainerInstances(): readonly ContainerInstanceRecord[] {\n return getRegistry();\n}\n\n/**\n * Clears the registry. Test-only: lets a spec simulate a second loaded\n * instance, or reset back to the innocent single-instance case, without\n * actually loading a second copy of the module.\n */\nexport function resetContainerInstanceRegistryForTests(): void {\n getRegistry().length = 0;\n}\n"],"mappings":";;;;;;;;;AAyBA,MAAM,cAAc,OAAO,IAAI,6CAA6C;AAM5E,SAAS,cAAyC;CAChD,MAAM,qBAAqB;CAE3B,IAAI,CAAC,mBAAmB,cACtB,mBAAmB,eAAe,CAAC;CAGrC,OAAO,mBAAmB;AAC5B;;;;;;;;;;;AAYA,SAAgB,4BAAkC;CAChD,MAAM,SAAkC,EACtC,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,IACtE;CAEA,IAAI,OAAO,OAAO,SAAS,eAAe,OAAO,KAAK,KACpD,OAAO,YAAY,OAAO,KAAK;CAGjC,YAAY,CAAC,CAAC,KAAK,MAAM;AAC3B;;;;AAKA,SAAgB,kCAAsE;CACpF,OAAO,YAAY;AACrB"}
@@ -1,4 +1,4 @@
1
- //#region ../core/src/container/development-app-modules.d.ts
1
+ //#region ../../packages/core/src/container/development-app-modules.d.ts
2
2
  /**
3
3
  * A read-only view of the `src/` files the development server has re-versioned,
4
4
  * for adapters (the web connector's Vite SSR graph) that must import those
@@ -1 +1 @@
1
- {"version":3,"file":"development-app-modules.d.mts","names":[],"sources":["../../../../../../../core/src/container/development-app-modules.ts"],"mappings":";;AAUA;;;;;;;;AAYY;KAZA,yBAAA,GAA4B,QAAQ;EAef,+EAb/B,GAAA;EAiBqD;;;;;;;;;EAPrD,UAAA;AAAA;AAAA,KAGU,qBAAA;yEAEV,GAAA,CAAI,YAAA,WAAuB,yBAAA;EAE3B,SAAA,CAAU,QAAA,GAAW,KAAA,EAAO,yBAAyB;AAAA"}
1
+ {"version":3,"file":"development-app-modules.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/container/development-app-modules.ts"],"mappings":";;AAUA;;;;;;;;AAYY;KAZA,yBAAA,GAA4B,QAAQ;EAef,+EAb/B,GAAA;EAiBqD;;;;;;;;;EAPrD,UAAA;AAAA;AAAA,KAGU,qBAAA;yEAEV,GAAA,CAAI,YAAA,WAAuB,yBAAA;EAE3B,SAAA,CAAU,QAAA,GAAW,KAAA,EAAO,yBAAyB;AAAA"}
@@ -1,4 +1,4 @@
1
- //#region ../core/src/container/development-model-modules.d.ts
1
+ //#region ../../packages/core/src/container/development-model-modules.d.ts
2
2
  /**
3
3
  * A read-only view of development model modules for adapters that need to
4
4
  * bridge an already-loaded model into their own development module graph.
@@ -1 +1 @@
1
- {"version":3,"file":"development-model-modules.d.mts","names":[],"sources":["../../../../../../../core/src/container/development-model-modules.ts"],"mappings":";;AAOA;;;;AAAuC;AAEvC;KAFY,2BAAA;AAAA,KAEA,2BAAA,GAA8B,QAAQ;EAAA,gEAEhD,GAAA;EAEA,UAAA;EACA,UAAA;EACA,KAAA,EAAO,2BAAA;AAAA;AAAA,KAGG,uBAAA;EACV,GAAA,CAAI,YAAA,WAAuB,2BAAA;EAC3B,SAAA,CAAU,QAAA,GAAW,KAAA,EAAO,2BAA2B;AAAA"}
1
+ {"version":3,"file":"development-model-modules.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/container/development-model-modules.ts"],"mappings":";;AAOA;;;;AAAuC;AAEvC;KAFY,2BAAA;AAAA,KAEA,2BAAA,GAA8B,QAAQ;EAAA,gEAEhD,GAAA;EAEA,UAAA;EACA,UAAA;EACA,KAAA,EAAO,2BAAA;AAAA;AAAA,KAGG,uBAAA;EACV,GAAA,CAAI,YAAA,WAAuB,2BAAA;EAC3B,SAAA,CAAU,QAAA,GAAW,KAAA,EAAO,2BAA2B;AAAA"}
@@ -5,7 +5,7 @@ import { DataSource } from "@warlock.js/cascade";
5
5
  import { FastifyInstance } from "fastify";
6
6
  import { Server } from "socket.io";
7
7
 
8
- //#region ../core/src/container/index.d.ts
8
+ //#region ../../packages/core/src/container/index.d.ts
9
9
  /**
10
10
  * Known container types for better IDE support
11
11
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../../../../../../core/src/container/index.ts"],"mappings":";;;;;;;;;AA6BA;;KAAY,cAAA;EACV,MAAA,EAAQ,MAAA;EACR,aAAA,EAAe,eAAA;EACf,cAAA;EACA,MAAA,EAAQ,MAAA;EACR,iBAAA,EAAmB,UAAA;EACnB,0BAAA,EAA4B,uBAAA;EAC5B,wBAAA,EAA0B,qBAAA;AAAA;AAAA,KAGvB,aAAA,SAAsB,cAAc;AAAA,cAEnC,SAAA;EAVJ;;;EAcO,GAAA,iBAAoB,cAAA,EAAgB,GAAA,EAAK,CAAA,EAAG,KAAA,EAAO,cAAA,CAAe,CAAA;EAClE,GAAA,UAAa,GAAA,UAAa,KAAA,EAAO,CAAA;EAZxC;;;;;;;AAE+C;AAC/C;;;EAyBO,GAAA,iBAAoB,cAAA,EAAgB,GAAA,EAAK,CAAA,GAAI,cAAA,CAAe,CAAA;EAC5D,GAAA,UAAa,GAAA,WAAc,CAAA;EAtB9B;;;EAmCG,GAAA,CAAI,GAAA,EAAK,aAAA;EA/BgC;;;;;;;;;EA4CzC,MAAA,iBAAuB,cAAA,EAAgB,GAAA,EAAK,CAAA,GAAI,cAAA,CAAe,CAAA;EAC/D,MAAA,UAAgB,GAAA,WAAc,CAAA;EADc;;;EAS5C,SAAA,iBAA0B,cAAA,EAAgB,GAAA,EAAK,CAAA,GAAI,cAAA,CAAe,CAAA;EAClE,SAAA,UAAmB,GAAA,WAAc,CAAA;EADc;;;EAS/C,MAAA,CAAO,GAAA;AAAA;AAAA,cAKH,SAAA,EAAS,SAAkB"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/container/index.ts"],"mappings":";;;;;;;;;AA0BA;;KAAY,cAAA;EACV,MAAA,EAAQ,MAAA;EACR,aAAA,EAAe,eAAA;EACf,cAAA;EACA,MAAA,EAAQ,MAAA;EACR,iBAAA,EAAmB,UAAA;EACnB,0BAAA,EAA4B,uBAAA;EAC5B,wBAAA,EAA0B,qBAAA;AAAA;AAAA,KAGvB,aAAA,SAAsB,cAAc;AAAA,cAEnC,SAAA;EAVJ;;;EAcO,GAAA,iBAAoB,cAAA,EAAgB,GAAA,EAAK,CAAA,EAAG,KAAA,EAAO,cAAA,CAAe,CAAA;EAClE,GAAA,UAAa,GAAA,UAAa,KAAA,EAAO,CAAA;EAZxC;;;;;;;AAE+C;AAC/C;;;EAyBO,GAAA,iBAAoB,cAAA,EAAgB,GAAA,EAAK,CAAA,GAAI,cAAA,CAAe,CAAA;EAC5D,GAAA,UAAa,GAAA,WAAc,CAAA;EAtB9B;;;EAmCG,GAAA,CAAI,GAAA,EAAK,aAAA;EA/BgC;;;;;;;;;EA4CzC,MAAA,iBAAuB,cAAA,EAAgB,GAAA,EAAK,CAAA,GAAI,cAAA,CAAe,CAAA;EAC/D,MAAA,UAAgB,GAAA,WAAc,CAAA;EADc;;;EAS5C,SAAA,iBAA0B,cAAA,EAAgB,GAAA,EAAK,CAAA,GAAI,cAAA,CAAe,CAAA;EAClE,SAAA,UAAmB,GAAA,WAAc,CAAA;EADc;;;EAS/C,MAAA,CAAO,GAAA;AAAA;AAAA,cAKH,SAAA,EAAS,SAAkB"}
@@ -1,7 +1,7 @@
1
1
  import { ContainerKeyMissingError } from "../errors/container-key-missing-error.mjs";
2
2
  import { getRegisteredContainerInstances, registerContainerInstance } from "./container-instance-registry.mjs";
3
3
 
4
- //#region ../core/src/container/index.ts
4
+ //#region ../../packages/core/src/container/index.ts
5
5
  const containerMap = /* @__PURE__ */ new Map();
6
6
  registerContainerInstance();
7
7
  var Container = class {
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../../../../../../core/src/container/index.ts"],"sourcesContent":["import { type DataSource } from \"@warlock.js/cascade\";\nimport { type FastifyInstance } from \"fastify\";\nimport { type Server } from \"socket.io\";\nimport { ContainerKeyMissingError } from \"../errors/container-key-missing-error\";\nimport { type Router } from \"../router\";\nimport {\n getRegisteredContainerInstances,\n registerContainerInstance,\n} from \"./container-instance-registry\";\nimport type { DevelopmentAppModules } from \"./development-app-modules\";\nimport type { DevelopmentModelModules } from \"./development-model-modules\";\n\nexport type {\n DevelopmentAppModuleEntry,\n DevelopmentAppModules,\n} from \"./development-app-modules\";\nexport type {\n DevelopmentModelModuleEntry,\n DevelopmentModelModules,\n DevelopmentModelModuleState,\n} from \"./development-model-modules\";\n\nconst containerMap: Map<string, any> = new Map();\n\nregisterContainerInstance();\n\n/**\n * Known container types for better IDE support\n */\nexport type ContainerTypes = {\n router: Router;\n \"http.server\": FastifyInstance;\n \"http.baseUrl\": string;\n socket: Server;\n \"database.source\": DataSource;\n \"development.modelModules\": DevelopmentModelModules;\n \"development.appModules\": DevelopmentAppModules;\n};\n\ntype ContainerKeys = keyof ContainerTypes | (string & {});\n\nclass Container {\n /**\n * Set a value in the container\n */\n public set<K extends keyof ContainerTypes>(key: K, value: ContainerTypes[K]): void;\n public set<T = any>(key: string, value: T): void;\n public set(key: any, value: any) {\n containerMap.set(key, value);\n }\n\n /**\n * Get a value from the container, or throw if `key` is not registered.\n *\n * Behaves exactly like an ordinary \"not registered\" error when only one\n * copy of this module is loaded. When {@link getRegisteredContainerInstances}\n * shows more than one, the thrown error additionally names that count, so\n * a duplicate-instance dev-path miss is never indistinguishable from a\n * genuine missing registration.\n *\n * Use {@link tryGet} instead when the value is genuinely optional.\n */\n public get<K extends keyof ContainerTypes>(key: K): ContainerTypes[K];\n public get<T = any>(key: string): T;\n public get(key: any): any {\n if (!containerMap.has(key)) {\n const instanceCount = getRegisteredContainerInstances().length;\n throw new ContainerKeyMissingError(key, instanceCount, [...containerMap.keys()]);\n }\n\n return containerMap.get(key);\n }\n\n /**\n * Check if a key exists in the container\n */\n public has(key: ContainerKeys) {\n return containerMap.has(key);\n }\n\n /**\n * Get a value from the container, or `undefined` if `key` is not\n * registered.\n *\n * Use this only for genuinely optional dependencies — where the caller\n * has its own fallback for an absent value. For every other read, prefer\n * {@link get}: a hole in the container should fail loudly, not hand back\n * `undefined` typed as the real value.\n */\n public tryGet<K extends keyof ContainerTypes>(key: K): ContainerTypes[K] | undefined;\n public tryGet<T = any>(key: string): T | undefined;\n public tryGet(key: any): any {\n return containerMap.get(key);\n }\n\n /**\n * @deprecated `get` now throws for a missing key; use {@link get}.\n */\n public getOrFail<K extends keyof ContainerTypes>(key: K): ContainerTypes[K];\n public getOrFail<T = any>(key: string): T;\n public getOrFail(key: any): any {\n return this.get(key);\n }\n\n /**\n * Delete a key from the container\n */\n public delete(key: string) {\n containerMap.delete(key);\n }\n}\n\nexport const container = new Container();\n"],"mappings":";;;;AAsBA,MAAM,+BAAiC,IAAI,IAAI;AAE/C,0BAA0B;AAiB1B,IAAM,YAAN,MAAgB;CAMd,AAAO,IAAI,KAAU,OAAY;EAC/B,aAAa,IAAI,KAAK,KAAK;CAC7B;CAeA,AAAO,IAAI,KAAe;EACxB,IAAI,CAAC,aAAa,IAAI,GAAG,GAAG;GAC1B,MAAM,gBAAgB,gCAAgC,CAAC,CAAC;GACxD,MAAM,IAAI,yBAAyB,KAAK,eAAe,CAAC,GAAG,aAAa,KAAK,CAAC,CAAC;EACjF;EAEA,OAAO,aAAa,IAAI,GAAG;CAC7B;;;;CAKA,AAAO,IAAI,KAAoB;EAC7B,OAAO,aAAa,IAAI,GAAG;CAC7B;CAaA,AAAO,OAAO,KAAe;EAC3B,OAAO,aAAa,IAAI,GAAG;CAC7B;CAOA,AAAO,UAAU,KAAe;EAC9B,OAAO,KAAK,IAAI,GAAG;CACrB;;;;CAKA,AAAO,OAAO,KAAa;EACzB,aAAa,OAAO,GAAG;CACzB;AACF;AAEA,MAAa,YAAY,IAAI,UAAU"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../../../../../packages/core/src/container/index.ts"],"sourcesContent":["import { type DataSource } from \"@warlock.js/cascade\";\nimport { type FastifyInstance } from \"fastify\";\nimport { type Server } from \"socket.io\";\nimport { ContainerKeyMissingError } from \"../errors/container-key-missing-error\";\nimport { type Router } from \"../router\";\nimport {\n getRegisteredContainerInstances,\n registerContainerInstance,\n} from \"./container-instance-registry\";\nimport type { DevelopmentAppModules } from \"./development-app-modules\";\nimport type { DevelopmentModelModules } from \"./development-model-modules\";\n\nexport type { DevelopmentAppModuleEntry, DevelopmentAppModules } from \"./development-app-modules\";\nexport type {\n DevelopmentModelModuleEntry,\n DevelopmentModelModules,\n DevelopmentModelModuleState,\n} from \"./development-model-modules\";\n\nconst containerMap: Map<string, any> = new Map();\n\nregisterContainerInstance();\n\n/**\n * Known container types for better IDE support\n */\nexport type ContainerTypes = {\n router: Router;\n \"http.server\": FastifyInstance;\n \"http.baseUrl\": string;\n socket: Server;\n \"database.source\": DataSource;\n \"development.modelModules\": DevelopmentModelModules;\n \"development.appModules\": DevelopmentAppModules;\n};\n\ntype ContainerKeys = keyof ContainerTypes | (string & {});\n\nclass Container {\n /**\n * Set a value in the container\n */\n public set<K extends keyof ContainerTypes>(key: K, value: ContainerTypes[K]): void;\n public set<T = any>(key: string, value: T): void;\n public set(key: any, value: any) {\n containerMap.set(key, value);\n }\n\n /**\n * Get a value from the container, or throw if `key` is not registered.\n *\n * Behaves exactly like an ordinary \"not registered\" error when only one\n * copy of this module is loaded. When {@link getRegisteredContainerInstances}\n * shows more than one, the thrown error additionally names that count, so\n * a duplicate-instance dev-path miss is never indistinguishable from a\n * genuine missing registration.\n *\n * Use {@link tryGet} instead when the value is genuinely optional.\n */\n public get<K extends keyof ContainerTypes>(key: K): ContainerTypes[K];\n public get<T = any>(key: string): T;\n public get(key: any): any {\n if (!containerMap.has(key)) {\n const instanceCount = getRegisteredContainerInstances().length;\n throw new ContainerKeyMissingError(key, instanceCount, [...containerMap.keys()]);\n }\n\n return containerMap.get(key);\n }\n\n /**\n * Check if a key exists in the container\n */\n public has(key: ContainerKeys) {\n return containerMap.has(key);\n }\n\n /**\n * Get a value from the container, or `undefined` if `key` is not\n * registered.\n *\n * Use this only for genuinely optional dependencies — where the caller\n * has its own fallback for an absent value. For every other read, prefer\n * {@link get}: a hole in the container should fail loudly, not hand back\n * `undefined` typed as the real value.\n */\n public tryGet<K extends keyof ContainerTypes>(key: K): ContainerTypes[K] | undefined;\n public tryGet<T = any>(key: string): T | undefined;\n public tryGet(key: any): any {\n return containerMap.get(key);\n }\n\n /**\n * @deprecated `get` now throws for a missing key; use {@link get}.\n */\n public getOrFail<K extends keyof ContainerTypes>(key: K): ContainerTypes[K];\n public getOrFail<T = any>(key: string): T;\n public getOrFail(key: any): any {\n return this.get(key);\n }\n\n /**\n * Delete a key from the container\n */\n public delete(key: string) {\n containerMap.delete(key);\n }\n}\n\nexport const container = new Container();\n"],"mappings":";;;;AAmBA,MAAM,+BAAiC,IAAI,IAAI;AAE/C,0BAA0B;AAiB1B,IAAM,YAAN,MAAgB;CAMd,AAAO,IAAI,KAAU,OAAY;EAC/B,aAAa,IAAI,KAAK,KAAK;CAC7B;CAeA,AAAO,IAAI,KAAe;EACxB,IAAI,CAAC,aAAa,IAAI,GAAG,GAAG;GAC1B,MAAM,gBAAgB,gCAAgC,CAAC,CAAC;GACxD,MAAM,IAAI,yBAAyB,KAAK,eAAe,CAAC,GAAG,aAAa,KAAK,CAAC,CAAC;EACjF;EAEA,OAAO,aAAa,IAAI,GAAG;CAC7B;;;;CAKA,AAAO,IAAI,KAAoB;EAC7B,OAAO,aAAa,IAAI,GAAG;CAC7B;CAaA,AAAO,OAAO,KAAe;EAC3B,OAAO,aAAa,IAAI,GAAG;CAC7B;CAOA,AAAO,UAAU,KAAe;EAC9B,OAAO,KAAK,IAAI,GAAG;CACrB;;;;CAKA,AAAO,OAAO,KAAa;EACzB,aAAa,OAAO,GAAG;CACzB;AACF;AAEA,MAAa,YAAY,IAAI,UAAU"}
@@ -4,7 +4,7 @@ import { createDatabase } from "@warlock.js/cascade";
4
4
  import { log } from "@warlock.js/logger";
5
5
  import { colors } from "@mongez/copper";
6
6
 
7
- //#region ../core/src/database/create-database-action.ts
7
+ //#region ../../packages/core/src/database/create-database-action.ts
8
8
  async function createDatabaseAction(command) {
9
9
  const name = command.args[0];
10
10
  const { connection = "default" } = command.options;
@@ -1 +1 @@
1
- {"version":3,"file":"create-database-action.mjs","names":[],"sources":["../../../../../../../core/src/database/create-database-action.ts"],"sourcesContent":["import { colors } from \"@mongez/copper\";\nimport { createDatabase } from \"@warlock.js/cascade\";\nimport { log } from \"@warlock.js/logger\";\nimport type { CommandActionData } from \"../commands/types\";\nimport { config } from \"../config\";\n\nexport async function createDatabaseAction(command: CommandActionData) {\n const name = command.args[0];\n const { connection = \"default\" } = command.options;\n\n const connectionName =\n connection === \"default\" || connection === true ? undefined : String(connection);\n\n let databaseName = name;\n\n if (!databaseName) {\n if (connection === \"default\") {\n databaseName = config.get(\"database\")?.database;\n }\n }\n\n if (!databaseName) {\n log.error(\n \"database\",\n \"create\",\n \"Database name is required. Please provide a name or configure it in the database config.\",\n );\n return;\n }\n\n log.info(\"database\", \"create\", `Creating database ${colors.cyan(databaseName)}...`);\n\n try {\n const { created } = await createDatabase(databaseName, { connection: connectionName });\n\n if (created) {\n log.success(\n \"database\",\n \"create\",\n `Database ${colors.green(databaseName)} created successfully.`,\n );\n } else {\n log.warn(\"database\", \"create\", `Database ${colors.yellow(databaseName)} already exists.`);\n }\n } catch (error: any) {\n log.error(\n \"database\",\n \"create\",\n `Failed to create database ${colors.red(databaseName)}: ${error.message}`,\n );\n }\n}\n"],"mappings":";;;;;;;AAMA,eAAsB,qBAAqB,SAA4B;CACrE,MAAM,OAAO,QAAQ,KAAK;CAC1B,MAAM,EAAE,aAAa,cAAc,QAAQ;CAE3C,MAAM,iBACJ,eAAe,aAAa,eAAe,OAAO,SAAY,OAAO,UAAU;CAEjF,IAAI,eAAe;CAEnB,IAAI,CAAC,cACH;MAAI,eAAe,WACjB,eAAe,OAAO,IAAI,UAAU,CAAC,EAAE;CACzC;CAGF,IAAI,CAAC,cAAc;EACjB,IAAI,MACF,YACA,UACA,0FACF;EACA;CACF;CAEA,IAAI,KAAK,YAAY,UAAU,qBAAqB,OAAO,KAAK,YAAY,EAAE,IAAI;CAElF,IAAI;EACF,MAAM,EAAE,YAAY,MAAM,eAAe,cAAc,EAAE,YAAY,eAAe,CAAC;EAErF,IAAI,SACF,IAAI,QACF,YACA,UACA,YAAY,OAAO,MAAM,YAAY,EAAE,uBACzC;OAEA,IAAI,KAAK,YAAY,UAAU,YAAY,OAAO,OAAO,YAAY,EAAE,iBAAiB;CAE5F,SAAS,OAAY;EACnB,IAAI,MACF,YACA,UACA,6BAA6B,OAAO,IAAI,YAAY,EAAE,IAAI,MAAM,SAClE;CACF;AACF"}
1
+ {"version":3,"file":"create-database-action.mjs","names":[],"sources":["../../../../../../../../packages/core/src/database/create-database-action.ts"],"sourcesContent":["import { colors } from \"@mongez/copper\";\nimport { createDatabase } from \"@warlock.js/cascade\";\nimport { log } from \"@warlock.js/logger\";\nimport type { CommandActionData } from \"../commands/types\";\nimport { config } from \"../config\";\n\nexport async function createDatabaseAction(command: CommandActionData) {\n const name = command.args[0];\n const { connection = \"default\" } = command.options;\n\n const connectionName =\n connection === \"default\" || connection === true ? undefined : String(connection);\n\n let databaseName = name;\n\n if (!databaseName) {\n if (connection === \"default\") {\n databaseName = config.get(\"database\")?.database;\n }\n }\n\n if (!databaseName) {\n log.error(\n \"database\",\n \"create\",\n \"Database name is required. Please provide a name or configure it in the database config.\",\n );\n return;\n }\n\n log.info(\"database\", \"create\", `Creating database ${colors.cyan(databaseName)}...`);\n\n try {\n const { created } = await createDatabase(databaseName, { connection: connectionName });\n\n if (created) {\n log.success(\n \"database\",\n \"create\",\n `Database ${colors.green(databaseName)} created successfully.`,\n );\n } else {\n log.warn(\"database\", \"create\", `Database ${colors.yellow(databaseName)} already exists.`);\n }\n } catch (error: any) {\n log.error(\n \"database\",\n \"create\",\n `Failed to create database ${colors.red(databaseName)}: ${error.message}`,\n );\n }\n}\n"],"mappings":";;;;;;;AAMA,eAAsB,qBAAqB,SAA4B;CACrE,MAAM,OAAO,QAAQ,KAAK;CAC1B,MAAM,EAAE,aAAa,cAAc,QAAQ;CAE3C,MAAM,iBACJ,eAAe,aAAa,eAAe,OAAO,SAAY,OAAO,UAAU;CAEjF,IAAI,eAAe;CAEnB,IAAI,CAAC,cACH;MAAI,eAAe,WACjB,eAAe,OAAO,IAAI,UAAU,CAAC,EAAE;CACzC;CAGF,IAAI,CAAC,cAAc;EACjB,IAAI,MACF,YACA,UACA,0FACF;EACA;CACF;CAEA,IAAI,KAAK,YAAY,UAAU,qBAAqB,OAAO,KAAK,YAAY,EAAE,IAAI;CAElF,IAAI;EACF,MAAM,EAAE,YAAY,MAAM,eAAe,cAAc,EAAE,YAAY,eAAe,CAAC;EAErF,IAAI,SACF,IAAI,QACF,YACA,UACA,YAAY,OAAO,MAAM,YAAY,EAAE,uBACzC;OAEA,IAAI,KAAK,YAAY,UAAU,YAAY,OAAO,OAAO,YAAY,EAAE,iBAAiB;CAE5F,SAAS,OAAY;EACnB,IAAI,MACF,YACA,UACA,6BAA6B,OAAO,IAAI,YAAY,EAAE,IAAI,MAAM,SAClE;CACF;AACF"}
@@ -3,7 +3,7 @@ import { dataSourceRegistry, dropAllTables } from "@warlock.js/cascade";
3
3
  import { log } from "@warlock.js/logger";
4
4
  import { colors } from "@mongez/copper";
5
5
 
6
- //#region ../core/src/database/drop-tables-action.ts
6
+ //#region ../../packages/core/src/database/drop-tables-action.ts
7
7
  async function dropTablesAction(command) {
8
8
  const { force } = command.options;
9
9
  if (force) {
@@ -1 +1 @@
1
- {"version":3,"file":"drop-tables-action.mjs","names":[],"sources":["../../../../../../../core/src/database/drop-tables-action.ts"],"sourcesContent":["import { colors } from \"@mongez/copper\";\nimport { dataSourceRegistry, dropAllTables } from \"@warlock.js/cascade\";\nimport { log } from \"@warlock.js/logger\";\nimport { confirm } from \"../cli/commands/generate/utils/prompt\";\nimport type { CommandActionData } from \"../commands/types\";\n\nexport async function dropTablesAction(command: CommandActionData) {\n const { force } = command.options;\n\n if (force) {\n const { dropped } = await dropAllTables();\n log.success(\"database\", \"drop\", `Dropped ${colors.yellowBright(dropped)} tables successfully.`);\n return;\n }\n\n // Preview phase — we keep direct driver access so we can show per-table\n // row counts before asking for confirmation. The actual drop still goes\n // through the Cascade Operations API.\n const driver = dataSourceRegistry.get().driver;\n const tables = await driver.blueprint.listTables();\n\n if (tables.length === 0) {\n log.warn(\"database\", \"drop\", \"No tables found in the database.\");\n return;\n }\n\n log.info(\"database\", \"drop\", `Found ${colors.yellowBright(tables.length)} tables:`);\n\n for (const table of tables) {\n const count = await driver.queryBuilder(table).count();\n console.log(` - ${colors.cyan(table)}: ${colors.green(count)} rows`);\n }\n\n const confirmed = await confirm(\n `Are you sure you want to drop all ${colors.red(tables.length)} tables?`,\n );\n\n if (!confirmed) {\n log.info(\"database\", \"drop\", \"Operation cancelled.\");\n return;\n }\n\n const { dropped } = await dropAllTables();\n\n log.success(\"database\", \"drop\", `Dropped ${colors.yellowBright(dropped)} tables successfully.`);\n}\n"],"mappings":";;;;;;AAMA,eAAsB,iBAAiB,SAA4B;CACjE,MAAM,EAAE,UAAU,QAAQ;CAE1B,IAAI,OAAO;EACT,MAAM,EAAE,YAAY,MAAM,cAAc;EACxC,IAAI,QAAQ,YAAY,QAAQ,WAAW,OAAO,aAAa,OAAO,EAAE,sBAAsB;EAC9F;CACF;CAKA,MAAM,SAAS,mBAAmB,IAAI,CAAC,CAAC;CACxC,MAAM,SAAS,MAAM,OAAO,UAAU,WAAW;CAEjD,IAAI,OAAO,WAAW,GAAG;EACvB,IAAI,KAAK,YAAY,QAAQ,kCAAkC;EAC/D;CACF;CAEA,IAAI,KAAK,YAAY,QAAQ,SAAS,OAAO,aAAa,OAAO,MAAM,EAAE,SAAS;CAElF,KAAK,MAAM,SAAS,QAAQ;EAC1B,MAAM,QAAQ,MAAM,OAAO,aAAa,KAAK,CAAC,CAAC,MAAM;EACrD,QAAQ,IAAI,OAAO,OAAO,KAAK,KAAK,EAAE,IAAI,OAAO,MAAM,KAAK,EAAE,MAAM;CACtE;CAMA,IAAI,CAAC,MAJmB,QACtB,qCAAqC,OAAO,IAAI,OAAO,MAAM,EAAE,SACjE,GAEgB;EACd,IAAI,KAAK,YAAY,QAAQ,sBAAsB;EACnD;CACF;CAEA,MAAM,EAAE,YAAY,MAAM,cAAc;CAExC,IAAI,QAAQ,YAAY,QAAQ,WAAW,OAAO,aAAa,OAAO,EAAE,sBAAsB;AAChG"}
1
+ {"version":3,"file":"drop-tables-action.mjs","names":[],"sources":["../../../../../../../../packages/core/src/database/drop-tables-action.ts"],"sourcesContent":["import { colors } from \"@mongez/copper\";\nimport { dataSourceRegistry, dropAllTables } from \"@warlock.js/cascade\";\nimport { log } from \"@warlock.js/logger\";\nimport { confirm } from \"../cli/commands/generate/utils/prompt\";\nimport type { CommandActionData } from \"../commands/types\";\n\nexport async function dropTablesAction(command: CommandActionData) {\n const { force } = command.options;\n\n if (force) {\n const { dropped } = await dropAllTables();\n log.success(\"database\", \"drop\", `Dropped ${colors.yellowBright(dropped)} tables successfully.`);\n return;\n }\n\n // Preview phase — we keep direct driver access so we can show per-table\n // row counts before asking for confirmation. The actual drop still goes\n // through the Cascade Operations API.\n const driver = dataSourceRegistry.get().driver;\n const tables = await driver.blueprint.listTables();\n\n if (tables.length === 0) {\n log.warn(\"database\", \"drop\", \"No tables found in the database.\");\n return;\n }\n\n log.info(\"database\", \"drop\", `Found ${colors.yellowBright(tables.length)} tables:`);\n\n for (const table of tables) {\n const count = await driver.queryBuilder(table).count();\n console.log(` - ${colors.cyan(table)}: ${colors.green(count)} rows`);\n }\n\n const confirmed = await confirm(\n `Are you sure you want to drop all ${colors.red(tables.length)} tables?`,\n );\n\n if (!confirmed) {\n log.info(\"database\", \"drop\", \"Operation cancelled.\");\n return;\n }\n\n const { dropped } = await dropAllTables();\n\n log.success(\"database\", \"drop\", `Dropped ${colors.yellowBright(dropped)} tables successfully.`);\n}\n"],"mappings":";;;;;;AAMA,eAAsB,iBAAiB,SAA4B;CACjE,MAAM,EAAE,UAAU,QAAQ;CAE1B,IAAI,OAAO;EACT,MAAM,EAAE,YAAY,MAAM,cAAc;EACxC,IAAI,QAAQ,YAAY,QAAQ,WAAW,OAAO,aAAa,OAAO,EAAE,sBAAsB;EAC9F;CACF;CAKA,MAAM,SAAS,mBAAmB,IAAI,CAAC,CAAC;CACxC,MAAM,SAAS,MAAM,OAAO,UAAU,WAAW;CAEjD,IAAI,OAAO,WAAW,GAAG;EACvB,IAAI,KAAK,YAAY,QAAQ,kCAAkC;EAC/D;CACF;CAEA,IAAI,KAAK,YAAY,QAAQ,SAAS,OAAO,aAAa,OAAO,MAAM,EAAE,SAAS;CAElF,KAAK,MAAM,SAAS,QAAQ;EAC1B,MAAM,QAAQ,MAAM,OAAO,aAAa,KAAK,CAAC,CAAC,MAAM;EACrD,QAAQ,IAAI,OAAO,OAAO,KAAK,KAAK,EAAE,IAAI,OAAO,MAAM,KAAK,EAAE,MAAM;CACtE;CAMA,IAAI,CAAC,MAJmB,QACtB,qCAAqC,OAAO,IAAI,OAAO,MAAM,EAAE,SACjE,GAEgB;EACd,IAAI,KAAK,YAAY,QAAQ,sBAAsB;EACnD;CACF;CAEA,MAAM,EAAE,YAAY,MAAM,cAAc;CAExC,IAAI,QAAQ,YAAY,QAAQ,WAAW,OAAO,aAAa,OAAO,EAAE,sBAAsB;AAChG"}
@@ -12,7 +12,7 @@ import path from "path";
12
12
  import { colors } from "@mongez/copper";
13
13
  import dayjs from "dayjs";
14
14
 
15
- //#region ../core/src/database/migrate-action.ts
15
+ //#region ../../packages/core/src/database/migrate-action.ts
16
16
  /**
17
17
  * `--list` — print the migration state: what has run, then what will run next.
18
18
  *