@warlock.js/core 5.29.0 → 5.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1359) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/esm/application/app.d.mts +1 -1
  3. package/esm/application/app.d.mts.map +1 -1
  4. package/esm/application/app.mjs +1 -1
  5. package/esm/application/app.mjs.map +1 -1
  6. package/esm/application/application-config-types.d.mts +1 -1
  7. package/esm/application/application-config-types.d.mts.map +1 -1
  8. package/esm/application/application.d.mts +1 -1
  9. package/esm/application/application.d.mts.map +1 -1
  10. package/esm/application/application.mjs +1 -1
  11. package/esm/application/application.mjs.map +1 -1
  12. package/esm/application/boot-signal.d.mts +1 -1
  13. package/esm/application/boot-signal.d.mts.map +1 -1
  14. package/esm/application/boot-signal.mjs +1 -1
  15. package/esm/application/boot-signal.mjs.map +1 -1
  16. package/esm/application/public-url.d.mts +1 -1
  17. package/esm/application/public-url.d.mts.map +1 -1
  18. package/esm/application/public-url.mjs +1 -1
  19. package/esm/application/public-url.mjs.map +1 -1
  20. package/esm/application/roles.d.mts +1 -1
  21. package/esm/application/roles.d.mts.map +1 -1
  22. package/esm/application/roles.mjs +1 -1
  23. package/esm/application/roles.mjs.map +1 -1
  24. package/esm/benchmark/benchmark-snapshots.d.mts +1 -1
  25. package/esm/benchmark/benchmark-snapshots.d.mts.map +1 -1
  26. package/esm/benchmark/benchmark-snapshots.mjs +1 -1
  27. package/esm/benchmark/benchmark-snapshots.mjs.map +1 -1
  28. package/esm/benchmark/benchmark.d.mts +1 -1
  29. package/esm/benchmark/benchmark.d.mts.map +1 -1
  30. package/esm/benchmark/benchmark.mjs +1 -1
  31. package/esm/benchmark/benchmark.mjs.map +1 -1
  32. package/esm/benchmark/channels/console.channel.d.mts +1 -1
  33. package/esm/benchmark/channels/console.channel.d.mts.map +1 -1
  34. package/esm/benchmark/channels/console.channel.mjs +1 -1
  35. package/esm/benchmark/channels/console.channel.mjs.map +1 -1
  36. package/esm/benchmark/channels/noop.channel.d.mts +1 -1
  37. package/esm/benchmark/channels/noop.channel.d.mts.map +1 -1
  38. package/esm/benchmark/channels/noop.channel.mjs +1 -1
  39. package/esm/benchmark/channels/noop.channel.mjs.map +1 -1
  40. package/esm/benchmark/profiler.d.mts +1 -1
  41. package/esm/benchmark/profiler.d.mts.map +1 -1
  42. package/esm/benchmark/profiler.mjs +1 -1
  43. package/esm/benchmark/profiler.mjs.map +1 -1
  44. package/esm/benchmark/types.d.mts +1 -1
  45. package/esm/benchmark/types.d.mts.map +1 -1
  46. package/esm/bootstrap/setup.d.mts +1 -1
  47. package/esm/bootstrap/setup.d.mts.map +1 -1
  48. package/esm/bootstrap/setup.mjs +1 -1
  49. package/esm/bootstrap/setup.mjs.map +1 -1
  50. package/esm/bootstrap.d.mts +1 -1
  51. package/esm/bootstrap.d.mts.map +1 -1
  52. package/esm/bootstrap.mjs +1 -1
  53. package/esm/bootstrap.mjs.map +1 -1
  54. package/esm/cache/database-cache-driver.d.mts +1 -1
  55. package/esm/cache/database-cache-driver.d.mts.map +1 -1
  56. package/esm/cache/database-cache-driver.mjs +1 -1
  57. package/esm/cache/database-cache-driver.mjs.map +1 -1
  58. package/esm/cache/index.mjs +1 -1
  59. package/esm/cache/index.mjs.map +1 -1
  60. package/esm/cli/cli-commands.manager.mjs +1 -1
  61. package/esm/cli/cli-commands.manager.mjs.map +1 -1
  62. package/esm/cli/cli-commands.utils.mjs +1 -1
  63. package/esm/cli/cli-commands.utils.mjs.map +1 -1
  64. package/esm/cli/commands/add.command.mjs +1 -1
  65. package/esm/cli/commands/add.command.mjs.map +1 -1
  66. package/esm/cli/commands/build.command.mjs +1 -1
  67. package/esm/cli/commands/build.command.mjs.map +1 -1
  68. package/esm/cli/commands/create-database.command.mjs +1 -1
  69. package/esm/cli/commands/create-database.command.mjs.map +1 -1
  70. package/esm/cli/commands/dev-server.command.mjs +1 -1
  71. package/esm/cli/commands/dev-server.command.mjs.map +1 -1
  72. package/esm/cli/commands/doctor/boot-for-diagnostics.mjs +1 -1
  73. package/esm/cli/commands/doctor/boot-for-diagnostics.mjs.map +1 -1
  74. package/esm/cli/commands/doctor/checks/config.check.mjs +1 -1
  75. package/esm/cli/commands/doctor/checks/config.check.mjs.map +1 -1
  76. package/esm/cli/commands/doctor/checks/connectors.check.mjs +1 -1
  77. package/esm/cli/commands/doctor/checks/connectors.check.mjs.map +1 -1
  78. package/esm/cli/commands/doctor/checks/handler-signature.check.mjs +1 -1
  79. package/esm/cli/commands/doctor/checks/handler-signature.check.mjs.map +1 -1
  80. package/esm/cli/commands/doctor/checks/health.check.mjs +1 -1
  81. package/esm/cli/commands/doctor/checks/health.check.mjs.map +1 -1
  82. package/esm/cli/commands/doctor/checks/index.mjs +1 -1
  83. package/esm/cli/commands/doctor/checks/index.mjs.map +1 -1
  84. package/esm/cli/commands/doctor/checks/jwt-secret.check.mjs +1 -1
  85. package/esm/cli/commands/doctor/checks/jwt-secret.check.mjs.map +1 -1
  86. package/esm/cli/commands/doctor/checks/locales-ts-deprecated.check.mjs +1 -1
  87. package/esm/cli/commands/doctor/checks/locales-ts-deprecated.check.mjs.map +1 -1
  88. package/esm/cli/commands/doctor/checks/optional-peers.check.mjs +1 -1
  89. package/esm/cli/commands/doctor/checks/optional-peers.check.mjs.map +1 -1
  90. package/esm/cli/commands/doctor/checks/release-hygiene.check.mjs +1 -1
  91. package/esm/cli/commands/doctor/checks/release-hygiene.check.mjs.map +1 -1
  92. package/esm/cli/commands/doctor/checks/routes.check.mjs +1 -1
  93. package/esm/cli/commands/doctor/checks/routes.check.mjs.map +1 -1
  94. package/esm/cli/commands/doctor/doctor-command.action.mjs +1 -1
  95. package/esm/cli/commands/doctor/doctor-command.action.mjs.map +1 -1
  96. package/esm/cli/commands/doctor/format-report.mjs +1 -1
  97. package/esm/cli/commands/doctor/format-report.mjs.map +1 -1
  98. package/esm/cli/commands/doctor/run-checks.mjs +1 -1
  99. package/esm/cli/commands/doctor/run-checks.mjs.map +1 -1
  100. package/esm/cli/commands/doctor.command.mjs +1 -1
  101. package/esm/cli/commands/doctor.command.mjs.map +1 -1
  102. package/esm/cli/commands/drop-tables.command.mjs +1 -1
  103. package/esm/cli/commands/drop-tables.command.mjs.map +1 -1
  104. package/esm/cli/commands/generate/generate.command.mjs +1 -1
  105. package/esm/cli/commands/generate/generate.command.mjs.map +1 -1
  106. package/esm/cli/commands/generate/generators/column-dsl-parser.mjs +1 -1
  107. package/esm/cli/commands/generate/generators/column-dsl-parser.mjs.map +1 -1
  108. package/esm/cli/commands/generate/generators/controller.generator.mjs +1 -1
  109. package/esm/cli/commands/generate/generators/controller.generator.mjs.map +1 -1
  110. package/esm/cli/commands/generate/generators/migration.generator.mjs +1 -1
  111. package/esm/cli/commands/generate/generators/migration.generator.mjs.map +1 -1
  112. package/esm/cli/commands/generate/generators/model.generator.mjs +1 -1
  113. package/esm/cli/commands/generate/generators/model.generator.mjs.map +1 -1
  114. package/esm/cli/commands/generate/generators/module.generator.mjs +1 -1
  115. package/esm/cli/commands/generate/generators/module.generator.mjs.map +1 -1
  116. package/esm/cli/commands/generate/generators/repository.generator.mjs +1 -1
  117. package/esm/cli/commands/generate/generators/repository.generator.mjs.map +1 -1
  118. package/esm/cli/commands/generate/generators/resource.generator.mjs +1 -1
  119. package/esm/cli/commands/generate/generators/resource.generator.mjs.map +1 -1
  120. package/esm/cli/commands/generate/generators/service.generator.mjs +1 -1
  121. package/esm/cli/commands/generate/generators/service.generator.mjs.map +1 -1
  122. package/esm/cli/commands/generate/generators/use-case.generator.mjs +1 -1
  123. package/esm/cli/commands/generate/generators/use-case.generator.mjs.map +1 -1
  124. package/esm/cli/commands/generate/templates/stubs.mjs +1 -1
  125. package/esm/cli/commands/generate/templates/stubs.mjs.map +1 -1
  126. package/esm/cli/commands/generate/utils/name-parser.mjs +1 -1
  127. package/esm/cli/commands/generate/utils/name-parser.mjs.map +1 -1
  128. package/esm/cli/commands/generate/utils/path-resolver.mjs +1 -1
  129. package/esm/cli/commands/generate/utils/path-resolver.mjs.map +1 -1
  130. package/esm/cli/commands/generate/utils/prompt.mjs +1 -1
  131. package/esm/cli/commands/generate/utils/prompt.mjs.map +1 -1
  132. package/esm/cli/commands/generate/utils/writer.mjs +1 -1
  133. package/esm/cli/commands/generate/utils/writer.mjs.map +1 -1
  134. package/esm/cli/commands/migrate.command.mjs +1 -1
  135. package/esm/cli/commands/migrate.command.mjs.map +1 -1
  136. package/esm/cli/commands/openapi-generator.action.mjs +1 -1
  137. package/esm/cli/commands/openapi-generator.action.mjs.map +1 -1
  138. package/esm/cli/commands/openapi-generator.command.mjs +1 -1
  139. package/esm/cli/commands/openapi-generator.command.mjs.map +1 -1
  140. package/esm/cli/commands/postman-generator.action.mjs +1 -1
  141. package/esm/cli/commands/postman-generator.action.mjs.map +1 -1
  142. package/esm/cli/commands/postman-generator.command.mjs +1 -1
  143. package/esm/cli/commands/postman-generator.command.mjs.map +1 -1
  144. package/esm/cli/commands/routes/diff-page-routes.mjs +1 -1
  145. package/esm/cli/commands/routes/diff-page-routes.mjs.map +1 -1
  146. package/esm/cli/commands/routes/format-routes-table.mjs +1 -1
  147. package/esm/cli/commands/routes/format-routes-table.mjs.map +1 -1
  148. package/esm/cli/commands/routes/route-row.mjs +1 -1
  149. package/esm/cli/commands/routes/route-row.mjs.map +1 -1
  150. package/esm/cli/commands/routes/routes-command.action.mjs +1 -1
  151. package/esm/cli/commands/routes/routes-command.action.mjs.map +1 -1
  152. package/esm/cli/commands/routes/routes-diff.action.mjs +1 -1
  153. package/esm/cli/commands/routes/routes-diff.action.mjs.map +1 -1
  154. package/esm/cli/commands/routes/with-console-on-stderr.mjs +1 -1
  155. package/esm/cli/commands/routes/with-console-on-stderr.mjs.map +1 -1
  156. package/esm/cli/commands/routes.command.mjs +1 -1
  157. package/esm/cli/commands/routes.command.mjs.map +1 -1
  158. package/esm/cli/commands/seed.command.mjs +1 -1
  159. package/esm/cli/commands/seed.command.mjs.map +1 -1
  160. package/esm/cli/commands/start-production.command.mjs +1 -1
  161. package/esm/cli/commands/start-production.command.mjs.map +1 -1
  162. package/esm/cli/commands/storage-put.action.mjs +1 -1
  163. package/esm/cli/commands/storage-put.action.mjs.map +1 -1
  164. package/esm/cli/commands/storage-put.command.mjs +1 -1
  165. package/esm/cli/commands/storage-put.command.mjs.map +1 -1
  166. package/esm/cli/commands/typings-generator.command.mjs +1 -1
  167. package/esm/cli/commands/typings-generator.command.mjs.map +1 -1
  168. package/esm/cli/commands/update.command.mjs +1 -1
  169. package/esm/cli/commands/update.command.mjs.map +1 -1
  170. package/esm/cli/commands-loader.mjs +1 -1
  171. package/esm/cli/commands-loader.mjs.map +1 -1
  172. package/esm/cli/framework-cli-commands.mjs +1 -1
  173. package/esm/cli/framework-cli-commands.mjs.map +1 -1
  174. package/esm/cli/parse-cli-args.mjs +1 -1
  175. package/esm/cli/parse-cli-args.mjs.map +1 -1
  176. package/esm/cli/start.mjs +1 -1
  177. package/esm/cli/start.mjs.map +1 -1
  178. package/esm/cli/string-similarity.mjs +1 -1
  179. package/esm/cli/string-similarity.mjs.map +1 -1
  180. package/esm/commands/cli-command.d.mts +1 -1
  181. package/esm/commands/cli-command.d.mts.map +1 -1
  182. package/esm/commands/cli-command.mjs +1 -1
  183. package/esm/commands/cli-command.mjs.map +1 -1
  184. package/esm/commands/types.d.mts +1 -1
  185. package/esm/commands/types.d.mts.map +1 -1
  186. package/esm/config/config-getter.d.mts +1 -1
  187. package/esm/config/config-getter.d.mts.map +1 -1
  188. package/esm/config/config-getter.mjs +1 -1
  189. package/esm/config/config-getter.mjs.map +1 -1
  190. package/esm/config/config-handlers.d.mts +1 -1
  191. package/esm/config/config-handlers.d.mts.map +1 -1
  192. package/esm/config/config-handlers.mjs +1 -1
  193. package/esm/config/config-handlers.mjs.map +1 -1
  194. package/esm/config/config-key-from-path.mjs +1 -1
  195. package/esm/config/config-key-from-path.mjs.map +1 -1
  196. package/esm/config/config-loader.d.mts +1 -1
  197. package/esm/config/config-loader.d.mts.map +1 -1
  198. package/esm/config/config-loader.mjs +1 -1
  199. package/esm/config/config-loader.mjs.map +1 -1
  200. package/esm/config/config-manager.mjs +1 -1
  201. package/esm/config/config-manager.mjs.map +1 -1
  202. package/esm/config/config-setter.d.mts +1 -1
  203. package/esm/config/config-setter.d.mts.map +1 -1
  204. package/esm/config/config-setter.mjs +1 -1
  205. package/esm/config/config-setter.mjs.map +1 -1
  206. package/esm/config/config-special-handlers.d.mts +1 -1
  207. package/esm/config/config-special-handlers.d.mts.map +1 -1
  208. package/esm/config/config-special-handlers.mjs +1 -1
  209. package/esm/config/config-special-handlers.mjs.map +1 -1
  210. package/esm/config/load-config-files.mjs +1 -1
  211. package/esm/config/load-config-files.mjs.map +1 -1
  212. package/esm/config/locale-configuration.mjs +1 -1
  213. package/esm/config/locale-configuration.mjs.map +1 -1
  214. package/esm/config/types.d.mts +1 -1
  215. package/esm/config/types.d.mts.map +1 -1
  216. package/esm/connectors/access-connector.d.mts +1 -1
  217. package/esm/connectors/access-connector.d.mts.map +1 -1
  218. package/esm/connectors/access-connector.mjs +1 -1
  219. package/esm/connectors/access-connector.mjs.map +1 -1
  220. package/esm/connectors/ai-connector.d.mts +1 -1
  221. package/esm/connectors/ai-connector.d.mts.map +1 -1
  222. package/esm/connectors/ai-connector.mjs +1 -1
  223. package/esm/connectors/ai-connector.mjs.map +1 -1
  224. package/esm/connectors/assert-no-reserved-connector-names.d.mts +1 -1
  225. package/esm/connectors/assert-no-reserved-connector-names.d.mts.map +1 -1
  226. package/esm/connectors/assert-no-reserved-connector-names.mjs +1 -1
  227. package/esm/connectors/assert-no-reserved-connector-names.mjs.map +1 -1
  228. package/esm/connectors/assert-unique-connector-names.d.mts +1 -1
  229. package/esm/connectors/assert-unique-connector-names.d.mts.map +1 -1
  230. package/esm/connectors/assert-unique-connector-names.mjs +1 -1
  231. package/esm/connectors/assert-unique-connector-names.mjs.map +1 -1
  232. package/esm/connectors/base-connector.d.mts +1 -1
  233. package/esm/connectors/base-connector.d.mts.map +1 -1
  234. package/esm/connectors/base-connector.mjs +1 -1
  235. package/esm/connectors/base-connector.mjs.map +1 -1
  236. package/esm/connectors/cache-connector.d.mts +1 -1
  237. package/esm/connectors/cache-connector.d.mts.map +1 -1
  238. package/esm/connectors/cache-connector.mjs +1 -1
  239. package/esm/connectors/cache-connector.mjs.map +1 -1
  240. package/esm/connectors/connectors-manager.d.mts +1 -1
  241. package/esm/connectors/connectors-manager.d.mts.map +1 -1
  242. package/esm/connectors/connectors-manager.mjs +2 -2
  243. package/esm/connectors/connectors-manager.mjs.map +1 -1
  244. package/esm/connectors/database-connector.d.mts +1 -1
  245. package/esm/connectors/database-connector.d.mts.map +1 -1
  246. package/esm/connectors/database-connector.mjs +1 -1
  247. package/esm/connectors/database-connector.mjs.map +1 -1
  248. package/esm/connectors/describe-server-address.mjs +1 -1
  249. package/esm/connectors/describe-server-address.mjs.map +1 -1
  250. package/esm/connectors/herald-connector.d.mts +1 -1
  251. package/esm/connectors/herald-connector.d.mts.map +1 -1
  252. package/esm/connectors/herald-connector.mjs +1 -1
  253. package/esm/connectors/herald-connector.mjs.map +1 -1
  254. package/esm/connectors/http-connector.d.mts +1 -1
  255. package/esm/connectors/http-connector.d.mts.map +1 -1
  256. package/esm/connectors/http-connector.mjs +1 -1
  257. package/esm/connectors/http-connector.mjs.map +1 -1
  258. package/esm/connectors/logger-connector.d.mts +1 -1
  259. package/esm/connectors/logger-connector.d.mts.map +1 -1
  260. package/esm/connectors/logger-connector.mjs +1 -1
  261. package/esm/connectors/logger-connector.mjs.map +1 -1
  262. package/esm/connectors/mail-connector.d.mts +1 -1
  263. package/esm/connectors/mail-connector.d.mts.map +1 -1
  264. package/esm/connectors/mail-connector.mjs +1 -1
  265. package/esm/connectors/mail-connector.mjs.map +1 -1
  266. package/esm/connectors/notifications-connector.d.mts +1 -1
  267. package/esm/connectors/notifications-connector.d.mts.map +1 -1
  268. package/esm/connectors/notifications-connector.mjs +1 -1
  269. package/esm/connectors/notifications-connector.mjs.map +1 -1
  270. package/esm/connectors/read-bound-port.mjs +1 -1
  271. package/esm/connectors/read-bound-port.mjs.map +1 -1
  272. package/esm/connectors/register-configured-connectors.d.mts +1 -1
  273. package/esm/connectors/register-configured-connectors.d.mts.map +1 -1
  274. package/esm/connectors/register-configured-connectors.mjs +1 -1
  275. package/esm/connectors/register-configured-connectors.mjs.map +1 -1
  276. package/esm/connectors/single-server-warnings.mjs +1 -1
  277. package/esm/connectors/single-server-warnings.mjs.map +1 -1
  278. package/esm/connectors/socket-connector.d.mts +1 -1
  279. package/esm/connectors/socket-connector.d.mts.map +1 -1
  280. package/esm/connectors/socket-connector.mjs +1 -1
  281. package/esm/connectors/socket-connector.mjs.map +1 -1
  282. package/esm/connectors/storage.connector.d.mts +1 -1
  283. package/esm/connectors/storage.connector.d.mts.map +1 -1
  284. package/esm/connectors/storage.connector.mjs +1 -1
  285. package/esm/connectors/storage.connector.mjs.map +1 -1
  286. package/esm/connectors/types.d.mts +1 -1
  287. package/esm/connectors/types.d.mts.map +1 -1
  288. package/esm/connectors/types.mjs +1 -1
  289. package/esm/connectors/types.mjs.map +1 -1
  290. package/esm/container/container-instance-registry.mjs +1 -1
  291. package/esm/container/container-instance-registry.mjs.map +1 -1
  292. package/esm/container/development-app-modules.d.mts +1 -1
  293. package/esm/container/development-app-modules.d.mts.map +1 -1
  294. package/esm/container/development-model-modules.d.mts +1 -1
  295. package/esm/container/development-model-modules.d.mts.map +1 -1
  296. package/esm/container/index.d.mts +1 -1
  297. package/esm/container/index.d.mts.map +1 -1
  298. package/esm/container/index.mjs +1 -1
  299. package/esm/container/index.mjs.map +1 -1
  300. package/esm/database/create-database-action.mjs +1 -1
  301. package/esm/database/create-database-action.mjs.map +1 -1
  302. package/esm/database/drop-tables-action.mjs +1 -1
  303. package/esm/database/drop-tables-action.mjs.map +1 -1
  304. package/esm/database/migrate-action.mjs +1 -1
  305. package/esm/database/migrate-action.mjs.map +1 -1
  306. package/esm/database/models/database-log/database-log.d.mts +31 -39
  307. package/esm/database/models/database-log/database-log.d.mts.map +1 -1
  308. package/esm/database/models/database-log/database-log.mjs +1 -1
  309. package/esm/database/models/database-log/database-log.mjs.map +1 -1
  310. package/esm/database/pending-exit-code.mjs +1 -1
  311. package/esm/database/pending-exit-code.mjs.map +1 -1
  312. package/esm/database/resolve-pending-migrations.mjs +1 -1
  313. package/esm/database/resolve-pending-migrations.mjs.map +1 -1
  314. package/esm/database/seed-command-action.mjs +1 -1
  315. package/esm/database/seed-command-action.mjs.map +1 -1
  316. package/esm/database/seeds/seed-records-table-migration.mjs +1 -1
  317. package/esm/database/seeds/seed-records-table-migration.mjs.map +1 -1
  318. package/esm/database/seeds/seeder.d.mts +1 -1
  319. package/esm/database/seeds/seeder.d.mts.map +1 -1
  320. package/esm/database/seeds/seeder.errors.d.mts +1 -1
  321. package/esm/database/seeds/seeder.errors.d.mts.map +1 -1
  322. package/esm/database/seeds/seeder.errors.mjs +1 -1
  323. package/esm/database/seeds/seeder.errors.mjs.map +1 -1
  324. package/esm/database/seeds/seeder.mjs +1 -1
  325. package/esm/database/seeds/seeder.mjs.map +1 -1
  326. package/esm/database/seeds/seeders.manager.mjs +1 -1
  327. package/esm/database/seeds/seeders.manager.mjs.map +1 -1
  328. package/esm/database/seeds/seeds-table-migration.mjs +1 -1
  329. package/esm/database/seeds/seeds-table-migration.mjs.map +1 -1
  330. package/esm/database/seeds/types.d.mts +1 -1
  331. package/esm/database/seeds/types.d.mts.map +1 -1
  332. package/esm/database/seeds/utils.mjs +1 -1
  333. package/esm/database/seeds/utils.mjs.map +1 -1
  334. package/esm/database/utils.d.mts +1 -1
  335. package/esm/database/utils.d.mts.map +1 -1
  336. package/esm/database/utils.mjs +1 -1
  337. package/esm/database/utils.mjs.map +1 -1
  338. package/esm/dev-server/app-module-registry.mjs +1 -1
  339. package/esm/dev-server/app-module-registry.mjs.map +1 -1
  340. package/esm/dev-server/boot-precondition-error.mjs +1 -1
  341. package/esm/dev-server/boot-precondition-error.mjs.map +1 -1
  342. package/esm/dev-server/build-development-openapi-document.mjs +1 -1
  343. package/esm/dev-server/build-development-openapi-document.mjs.map +1 -1
  344. package/esm/dev-server/check-for-updates.mjs +1 -1
  345. package/esm/dev-server/check-for-updates.mjs.map +1 -1
  346. package/esm/dev-server/collect-development-api-routes.mjs +1 -1
  347. package/esm/dev-server/collect-development-api-routes.mjs.map +1 -1
  348. package/esm/dev-server/create-worker.mjs +1 -1
  349. package/esm/dev-server/create-worker.mjs.map +1 -1
  350. package/esm/dev-server/dependency-graph.d.mts +1 -1
  351. package/esm/dev-server/dependency-graph.d.mts.map +1 -1
  352. package/esm/dev-server/dependency-graph.mjs +1 -1
  353. package/esm/dev-server/dependency-graph.mjs.map +1 -1
  354. package/esm/dev-server/dev-logger.mjs +1 -1
  355. package/esm/dev-server/dev-logger.mjs.map +1 -1
  356. package/esm/dev-server/development-server.mjs +1 -1
  357. package/esm/dev-server/development-server.mjs.map +1 -1
  358. package/esm/dev-server/events.mjs +1 -1
  359. package/esm/dev-server/events.mjs.map +1 -1
  360. package/esm/dev-server/extract-translation-keys.mjs +1 -1
  361. package/esm/dev-server/extract-translation-keys.mjs.map +1 -1
  362. package/esm/dev-server/file-event-handler.mjs +1 -1
  363. package/esm/dev-server/file-event-handler.mjs.map +1 -1
  364. package/esm/dev-server/file-manager.d.mts +1 -1
  365. package/esm/dev-server/file-manager.d.mts.map +1 -1
  366. package/esm/dev-server/file-manager.mjs +1 -1
  367. package/esm/dev-server/file-manager.mjs.map +1 -1
  368. package/esm/dev-server/file-operations.d.mts +1 -1
  369. package/esm/dev-server/file-operations.d.mts.map +1 -1
  370. package/esm/dev-server/file-operations.mjs +1 -1
  371. package/esm/dev-server/file-operations.mjs.map +1 -1
  372. package/esm/dev-server/files-orchestrator.mjs +20 -17
  373. package/esm/dev-server/files-orchestrator.mjs.map +1 -1
  374. package/esm/dev-server/files-watcher.mjs +1 -1
  375. package/esm/dev-server/files-watcher.mjs.map +1 -1
  376. package/esm/dev-server/flags.mjs +1 -1
  377. package/esm/dev-server/flags.mjs.map +1 -1
  378. package/esm/dev-server/health-checker/checkers/base-health-checker.mjs +1 -1
  379. package/esm/dev-server/health-checker/checkers/base-health-checker.mjs.map +1 -1
  380. package/esm/dev-server/health-checker/checkers/eslint-health-checker.mjs +1 -1
  381. package/esm/dev-server/health-checker/checkers/eslint-health-checker.mjs.map +1 -1
  382. package/esm/dev-server/health-checker/checkers/typescript-health-checker.mjs +1 -1
  383. package/esm/dev-server/health-checker/checkers/typescript-health-checker.mjs.map +1 -1
  384. package/esm/dev-server/health-checker/file-health-checker.contract.d.mts +1 -1
  385. package/esm/dev-server/health-checker/file-health-checker.contract.d.mts.map +1 -1
  386. package/esm/dev-server/health-checker/file-health-result.d.mts +1 -1
  387. package/esm/dev-server/health-checker/file-health-result.d.mts.map +1 -1
  388. package/esm/dev-server/health-checker/file-health-result.mjs +1 -1
  389. package/esm/dev-server/health-checker/file-health-result.mjs.map +1 -1
  390. package/esm/dev-server/health-checker/files-healthcare.manager.mjs +1 -1
  391. package/esm/dev-server/health-checker/files-healthcare.manager.mjs.map +1 -1
  392. package/esm/dev-server/health-checker/workers/eslint-health.worker.mjs +1 -1
  393. package/esm/dev-server/health-checker/workers/eslint-health.worker.mjs.map +1 -1
  394. package/esm/dev-server/health-checker/workers/ts-health.worker.mjs +1 -1
  395. package/esm/dev-server/health-checker/workers/ts-health.worker.mjs.map +1 -1
  396. package/esm/dev-server/layer-executor.mjs +1 -1
  397. package/esm/dev-server/layer-executor.mjs.map +1 -1
  398. package/esm/dev-server/legacy-locales-warning.mjs +1 -1
  399. package/esm/dev-server/legacy-locales-warning.mjs.map +1 -1
  400. package/esm/dev-server/loader/build-transpile-init.mjs +1 -1
  401. package/esm/dev-server/loader/build-transpile-init.mjs.map +1 -1
  402. package/esm/dev-server/loader/hook-thread.d.mts +1 -1
  403. package/esm/dev-server/loader/hook-thread.d.mts.map +1 -1
  404. package/esm/dev-server/loader/hook-thread.mjs +1 -1
  405. package/esm/dev-server/loader/hook-thread.mjs.map +1 -1
  406. package/esm/dev-server/loader/load-hook.d.mts +1 -1
  407. package/esm/dev-server/loader/load-hook.d.mts.map +1 -1
  408. package/esm/dev-server/loader/load-hook.mjs +1 -1
  409. package/esm/dev-server/loader/load-hook.mjs.map +1 -1
  410. package/esm/dev-server/loader/loader-port-acks.mjs +34 -0
  411. package/esm/dev-server/loader/loader-port-acks.mjs.map +1 -0
  412. package/esm/dev-server/loader/own-resolver.mjs +1 -1
  413. package/esm/dev-server/loader/own-resolver.mjs.map +1 -1
  414. package/esm/dev-server/loader/register-loader.mjs +1 -1
  415. package/esm/dev-server/loader/register-loader.mjs.map +1 -1
  416. package/esm/dev-server/loader/resolve-capture.mjs +1 -1
  417. package/esm/dev-server/loader/resolve-capture.mjs.map +1 -1
  418. package/esm/dev-server/loader/resolve-hook.d.mts +1 -1
  419. package/esm/dev-server/loader/resolve-hook.d.mts.map +1 -1
  420. package/esm/dev-server/loader/resolve-hook.mjs +2 -2
  421. package/esm/dev-server/loader/resolve-hook.mjs.map +1 -1
  422. package/esm/dev-server/loader/source-slug.mjs +1 -1
  423. package/esm/dev-server/loader/source-slug.mjs.map +1 -1
  424. package/esm/dev-server/loader/transpile-cache.mjs +1 -1
  425. package/esm/dev-server/loader/transpile-cache.mjs.map +1 -1
  426. package/esm/dev-server/loader/version-registry.mjs +1 -1
  427. package/esm/dev-server/loader/version-registry.mjs.map +1 -1
  428. package/esm/dev-server/manifest-manager.d.mts +1 -1
  429. package/esm/dev-server/manifest-manager.d.mts.map +1 -1
  430. package/esm/dev-server/manifest-manager.mjs +1 -1
  431. package/esm/dev-server/manifest-manager.mjs.map +1 -1
  432. package/esm/dev-server/model-module-registry.mjs +1 -1
  433. package/esm/dev-server/model-module-registry.mjs.map +1 -1
  434. package/esm/dev-server/model-resource-typings.mjs +1 -1
  435. package/esm/dev-server/model-resource-typings.mjs.map +1 -1
  436. package/esm/dev-server/module-loader.mjs +1 -1
  437. package/esm/dev-server/module-loader.mjs.map +1 -1
  438. package/esm/dev-server/package-json-manager.mjs +1 -1
  439. package/esm/dev-server/package-json-manager.mjs.map +1 -1
  440. package/esm/dev-server/parse-imports.mjs +73 -6
  441. package/esm/dev-server/parse-imports.mjs.map +1 -1
  442. package/esm/dev-server/read-config-ast.mjs +1 -1
  443. package/esm/dev-server/read-config-ast.mjs.map +1 -1
  444. package/esm/dev-server/ready-block.mjs +1 -1
  445. package/esm/dev-server/ready-block.mjs.map +1 -1
  446. package/esm/dev-server/register-dev-shortcuts.mjs +1 -1
  447. package/esm/dev-server/register-dev-shortcuts.mjs.map +1 -1
  448. package/esm/dev-server/register-installed-devtools.mjs +1 -1
  449. package/esm/dev-server/register-installed-devtools.mjs.map +1 -1
  450. package/esm/dev-server/restart-dev-server.mjs +1 -1
  451. package/esm/dev-server/restart-dev-server.mjs.map +1 -1
  452. package/esm/dev-server/route-types-publisher.mjs +1 -1
  453. package/esm/dev-server/route-types-publisher.mjs.map +1 -1
  454. package/esm/dev-server/run-connector-typings.mjs +1 -1
  455. package/esm/dev-server/run-connector-typings.mjs.map +1 -1
  456. package/esm/dev-server/run-typings-generation.mjs +1 -1
  457. package/esm/dev-server/run-typings-generation.mjs.map +1 -1
  458. package/esm/dev-server/shortcuts.mjs +1 -1
  459. package/esm/dev-server/shortcuts.mjs.map +1 -1
  460. package/esm/dev-server/special-file-patterns.mjs +1 -1
  461. package/esm/dev-server/special-file-patterns.mjs.map +1 -1
  462. package/esm/dev-server/special-files-collector.d.mts +1 -1
  463. package/esm/dev-server/special-files-collector.d.mts.map +1 -1
  464. package/esm/dev-server/special-files-collector.mjs +1 -1
  465. package/esm/dev-server/special-files-collector.mjs.map +1 -1
  466. package/esm/dev-server/start-development-server.mjs +1 -1
  467. package/esm/dev-server/start-development-server.mjs.map +1 -1
  468. package/esm/dev-server/supervisor.mjs +1 -1
  469. package/esm/dev-server/supervisor.mjs.map +1 -1
  470. package/esm/dev-server/translation-keys-sources.mjs +1 -1
  471. package/esm/dev-server/translation-keys-sources.mjs.map +1 -1
  472. package/esm/dev-server/tsconfig-manager.mjs +1 -1
  473. package/esm/dev-server/tsconfig-manager.mjs.map +1 -1
  474. package/esm/dev-server/type-generator.mjs +32 -11
  475. package/esm/dev-server/type-generator.mjs.map +1 -1
  476. package/esm/dev-server/types.d.mts +1 -1
  477. package/esm/dev-server/types.d.mts.map +1 -1
  478. package/esm/dev-server/update-check-cache.mjs +1 -1
  479. package/esm/dev-server/update-check-cache.mjs.map +1 -1
  480. package/esm/dev-server/utils.mjs +1 -1
  481. package/esm/dev-server/utils.mjs.map +1 -1
  482. package/esm/encryption/encrypt.d.mts +1 -1
  483. package/esm/encryption/encrypt.d.mts.map +1 -1
  484. package/esm/encryption/encrypt.mjs +1 -1
  485. package/esm/encryption/encrypt.mjs.map +1 -1
  486. package/esm/encryption/hash.d.mts +1 -1
  487. package/esm/encryption/hash.d.mts.map +1 -1
  488. package/esm/encryption/hash.mjs +1 -1
  489. package/esm/encryption/hash.mjs.map +1 -1
  490. package/esm/encryption/password.d.mts +1 -1
  491. package/esm/encryption/password.d.mts.map +1 -1
  492. package/esm/encryption/password.mjs +1 -1
  493. package/esm/encryption/password.mjs.map +1 -1
  494. package/esm/encryption/types.d.mts +1 -1
  495. package/esm/encryption/types.d.mts.map +1 -1
  496. package/esm/errors/container-key-missing-error.mjs +1 -1
  497. package/esm/errors/container-key-missing-error.mjs.map +1 -1
  498. package/esm/errors/esbuild-binary-missing-error.mjs +1 -1
  499. package/esm/errors/esbuild-binary-missing-error.mjs.map +1 -1
  500. package/esm/errors/index.d.mts +2 -0
  501. package/esm/errors/index.mjs +3 -0
  502. package/esm/errors/unknown-locale-error.mjs +1 -1
  503. package/esm/errors/unknown-locale-error.mjs.map +1 -1
  504. package/esm/generations/add-command.action.mjs +29 -6
  505. package/esm/generations/add-command.action.mjs.map +1 -1
  506. package/esm/generations/features/access.feature.mjs +1 -1
  507. package/esm/generations/features/access.feature.mjs.map +1 -1
  508. package/esm/generations/features/ai-anthropic.feature.mjs +1 -1
  509. package/esm/generations/features/ai-anthropic.feature.mjs.map +1 -1
  510. package/esm/generations/features/ai-bedrock.feature.mjs +1 -1
  511. package/esm/generations/features/ai-bedrock.feature.mjs.map +1 -1
  512. package/esm/generations/features/ai-google.feature.mjs +1 -1
  513. package/esm/generations/features/ai-google.feature.mjs.map +1 -1
  514. package/esm/generations/features/ai-ollama.feature.mjs +1 -1
  515. package/esm/generations/features/ai-ollama.feature.mjs.map +1 -1
  516. package/esm/generations/features/ai-openai.feature.mjs +1 -1
  517. package/esm/generations/features/ai-openai.feature.mjs.map +1 -1
  518. package/esm/generations/features/ai-panoptic.feature.mjs +1 -1
  519. package/esm/generations/features/ai-panoptic.feature.mjs.map +1 -1
  520. package/esm/generations/features/ai-tools.feature.mjs +1 -1
  521. package/esm/generations/features/ai-tools.feature.mjs.map +1 -1
  522. package/esm/generations/features/ai-workspace.feature.mjs +1 -1
  523. package/esm/generations/features/ai-workspace.feature.mjs.map +1 -1
  524. package/esm/generations/features/ai.feature.mjs +1 -1
  525. package/esm/generations/features/ai.feature.mjs.map +1 -1
  526. package/esm/generations/features/auth-google.feature.mjs +1 -1
  527. package/esm/generations/features/auth-google.feature.mjs.map +1 -1
  528. package/esm/generations/features/auth-passkeys.feature.mjs +1 -1
  529. package/esm/generations/features/auth-passkeys.feature.mjs.map +1 -1
  530. package/esm/generations/features/bull-board.feature.mjs +1 -1
  531. package/esm/generations/features/bull-board.feature.mjs.map +1 -1
  532. package/esm/generations/features/devtools.feature.mjs +1 -1
  533. package/esm/generations/features/devtools.feature.mjs.map +1 -1
  534. package/esm/generations/features/herald.feature.mjs +1 -1
  535. package/esm/generations/features/herald.feature.mjs.map +1 -1
  536. package/esm/generations/features/image.feature.mjs +1 -1
  537. package/esm/generations/features/image.feature.mjs.map +1 -1
  538. package/esm/generations/features/index.mjs +1 -1
  539. package/esm/generations/features/index.mjs.map +1 -1
  540. package/esm/generations/features/mail.feature.mjs +1 -1
  541. package/esm/generations/features/mail.feature.mjs.map +1 -1
  542. package/esm/generations/features/mongodb.feature.mjs +1 -1
  543. package/esm/generations/features/mongodb.feature.mjs.map +1 -1
  544. package/esm/generations/features/mysql.feature.mjs +1 -1
  545. package/esm/generations/features/mysql.feature.mjs.map +1 -1
  546. package/esm/generations/features/notifications.feature.mjs +121 -17
  547. package/esm/generations/features/notifications.feature.mjs.map +1 -1
  548. package/esm/generations/features/postgres.feature.mjs +1 -1
  549. package/esm/generations/features/postgres.feature.mjs.map +1 -1
  550. package/esm/generations/features/queue.feature.mjs +1 -1
  551. package/esm/generations/features/queue.feature.mjs.map +1 -1
  552. package/esm/generations/features/react-email.feature.mjs +1 -1
  553. package/esm/generations/features/react-email.feature.mjs.map +1 -1
  554. package/esm/generations/features/react.feature.mjs +1 -1
  555. package/esm/generations/features/react.feature.mjs.map +1 -1
  556. package/esm/generations/features/redis.feature.mjs +1 -1
  557. package/esm/generations/features/redis.feature.mjs.map +1 -1
  558. package/esm/generations/features/s3.feature.mjs +1 -1
  559. package/esm/generations/features/s3.feature.mjs.map +1 -1
  560. package/esm/generations/features/scheduler.feature.mjs +1 -1
  561. package/esm/generations/features/scheduler.feature.mjs.map +1 -1
  562. package/esm/generations/features/ses.feature.mjs +1 -1
  563. package/esm/generations/features/ses.feature.mjs.map +1 -1
  564. package/esm/generations/features/shadcn.feature.mjs +1 -1
  565. package/esm/generations/features/shadcn.feature.mjs.map +1 -1
  566. package/esm/generations/features/shared/insert-connector-entry.mjs +1 -1
  567. package/esm/generations/features/shared/insert-connector-entry.mjs.map +1 -1
  568. package/esm/generations/features/shared/insert-queue-dashboard-block.mjs +1 -1
  569. package/esm/generations/features/shared/insert-queue-dashboard-block.mjs.map +1 -1
  570. package/esm/generations/features/shared/link-ai-package-import.mjs +1 -1
  571. package/esm/generations/features/shared/link-ai-package-import.mjs.map +1 -1
  572. package/esm/generations/features/shared/merge-web-sitemap-config.mjs +1 -1
  573. package/esm/generations/features/shared/merge-web-sitemap-config.mjs.map +1 -1
  574. package/esm/generations/features/shared/migration-timestamp.mjs +1 -1
  575. package/esm/generations/features/shared/migration-timestamp.mjs.map +1 -1
  576. package/esm/generations/features/shared/patch-tsconfig-include.mjs +1 -1
  577. package/esm/generations/features/shared/patch-tsconfig-include.mjs.map +1 -1
  578. package/esm/generations/features/shared/relocate-conflicting-home-route.mjs +1 -1
  579. package/esm/generations/features/shared/relocate-conflicting-home-route.mjs.map +1 -1
  580. package/esm/generations/features/shared/resolve-contact-scaffold.mjs +1 -1
  581. package/esm/generations/features/shared/resolve-contact-scaffold.mjs.map +1 -1
  582. package/esm/generations/features/sitemap.feature.mjs +1 -1
  583. package/esm/generations/features/sitemap.feature.mjs.map +1 -1
  584. package/esm/generations/features/socket.feature.mjs +1 -1
  585. package/esm/generations/features/socket.feature.mjs.map +1 -1
  586. package/esm/generations/features/tailwind.feature.mjs +1 -1
  587. package/esm/generations/features/tailwind.feature.mjs.map +1 -1
  588. package/esm/generations/features/test.feature.mjs +1 -1
  589. package/esm/generations/features/test.feature.mjs.map +1 -1
  590. package/esm/generations/features/types.mjs +1 -1
  591. package/esm/generations/features/types.mjs.map +1 -1
  592. package/esm/generations/features/web.feature.mjs +1 -1
  593. package/esm/generations/features/web.feature.mjs.map +1 -1
  594. package/esm/generations/pnpm-build-approvals.mjs +89 -3
  595. package/esm/generations/pnpm-build-approvals.mjs.map +1 -1
  596. package/esm/generations/stubs.mjs +184 -78
  597. package/esm/generations/stubs.mjs.map +1 -1
  598. package/esm/http/boot-port-preflight.d.mts +1 -1
  599. package/esm/http/boot-port-preflight.d.mts.map +1 -1
  600. package/esm/http/boot-port-preflight.mjs +1 -1
  601. package/esm/http/boot-port-preflight.mjs.map +1 -1
  602. package/esm/http/build-cors-options.mjs +1 -1
  603. package/esm/http/build-cors-options.mjs.map +1 -1
  604. package/esm/http/build-rate-limit-options.d.mts +22 -1
  605. package/esm/http/build-rate-limit-options.d.mts.map +1 -1
  606. package/esm/http/build-rate-limit-options.mjs +7 -1
  607. package/esm/http/build-rate-limit-options.mjs.map +1 -1
  608. package/esm/http/config.d.mts +1 -1
  609. package/esm/http/config.d.mts.map +1 -1
  610. package/esm/http/config.mjs +1 -1
  611. package/esm/http/config.mjs.map +1 -1
  612. package/esm/http/context/request-context.d.mts +1 -1
  613. package/esm/http/context/request-context.d.mts.map +1 -1
  614. package/esm/http/context/request-context.mjs +1 -1
  615. package/esm/http/context/request-context.mjs.map +1 -1
  616. package/esm/http/context/request-memo.d.mts +1 -1
  617. package/esm/http/context/request-memo.d.mts.map +1 -1
  618. package/esm/http/context/request-memo.mjs +1 -1
  619. package/esm/http/context/request-memo.mjs.map +1 -1
  620. package/esm/http/createHttpApplication.d.mts +1 -1
  621. package/esm/http/createHttpApplication.d.mts.map +1 -1
  622. package/esm/http/createHttpApplication.mjs +1 -1
  623. package/esm/http/createHttpApplication.mjs.map +1 -1
  624. package/esm/http/csp.d.mts +1 -1
  625. package/esm/http/csp.d.mts.map +1 -1
  626. package/esm/http/csp.mjs +1 -1
  627. package/esm/http/csp.mjs.map +1 -1
  628. package/esm/http/csrf-default-guard.d.mts +1 -1
  629. package/esm/http/csrf-default-guard.d.mts.map +1 -1
  630. package/esm/http/csrf-default-guard.mjs +1 -1
  631. package/esm/http/csrf-default-guard.mjs.map +1 -1
  632. package/esm/http/csrf-origin-policy.d.mts +1 -1
  633. package/esm/http/csrf-origin-policy.d.mts.map +1 -1
  634. package/esm/http/csrf-origin-policy.mjs +1 -1
  635. package/esm/http/csrf-origin-policy.mjs.map +1 -1
  636. package/esm/http/database/RequestLog.d.mts +63 -111
  637. package/esm/http/database/RequestLog.d.mts.map +1 -1
  638. package/esm/http/database/RequestLog.mjs +1 -1
  639. package/esm/http/database/RequestLog.mjs.map +1 -1
  640. package/esm/http/error-codes.d.mts +1 -1
  641. package/esm/http/error-codes.d.mts.map +1 -1
  642. package/esm/http/error-codes.mjs +1 -1
  643. package/esm/http/error-codes.mjs.map +1 -1
  644. package/esm/http/error-mapper.d.mts +48 -0
  645. package/esm/http/error-mapper.d.mts.map +1 -0
  646. package/esm/http/error-mapper.mjs +48 -0
  647. package/esm/http/error-mapper.mjs.map +1 -0
  648. package/esm/http/errors/errors.d.mts +1 -1
  649. package/esm/http/errors/errors.d.mts.map +1 -1
  650. package/esm/http/errors/errors.mjs +1 -1
  651. package/esm/http/errors/errors.mjs.map +1 -1
  652. package/esm/http/events.d.mts +1 -1
  653. package/esm/http/events.d.mts.map +1 -1
  654. package/esm/http/events.mjs +1 -1
  655. package/esm/http/events.mjs.map +1 -1
  656. package/esm/http/flush-pending-cookies.mjs +1 -1
  657. package/esm/http/flush-pending-cookies.mjs.map +1 -1
  658. package/esm/http/health.d.mts +1 -1
  659. package/esm/http/health.d.mts.map +1 -1
  660. package/esm/http/health.mjs +1 -1
  661. package/esm/http/health.mjs.map +1 -1
  662. package/esm/http/index.d.mts +10 -6
  663. package/esm/http/index.mjs +8 -5
  664. package/esm/http/middleware/cache-response-middleware.d.mts +1 -1
  665. package/esm/http/middleware/cache-response-middleware.d.mts.map +1 -1
  666. package/esm/http/middleware/cache-response-middleware.mjs +1 -1
  667. package/esm/http/middleware/cache-response-middleware.mjs.map +1 -1
  668. package/esm/http/middleware/concurrency-limit.middleware.d.mts +1 -1
  669. package/esm/http/middleware/concurrency-limit.middleware.d.mts.map +1 -1
  670. package/esm/http/middleware/concurrency-limit.middleware.mjs +1 -1
  671. package/esm/http/middleware/concurrency-limit.middleware.mjs.map +1 -1
  672. package/esm/http/middleware/idempotency.middleware.d.mts +1 -1
  673. package/esm/http/middleware/idempotency.middleware.d.mts.map +1 -1
  674. package/esm/http/middleware/idempotency.middleware.mjs +1 -1
  675. package/esm/http/middleware/idempotency.middleware.mjs.map +1 -1
  676. package/esm/http/middleware/inject-request-context.d.mts +1 -1
  677. package/esm/http/middleware/inject-request-context.d.mts.map +1 -1
  678. package/esm/http/middleware/inject-request-context.mjs +4 -2
  679. package/esm/http/middleware/inject-request-context.mjs.map +1 -1
  680. package/esm/http/middleware/ip-filter.middleware.d.mts +1 -1
  681. package/esm/http/middleware/ip-filter.middleware.d.mts.map +1 -1
  682. package/esm/http/middleware/ip-filter.middleware.mjs +1 -1
  683. package/esm/http/middleware/ip-filter.middleware.mjs.map +1 -1
  684. package/esm/http/middleware/maintenance.middleware.d.mts +1 -1
  685. package/esm/http/middleware/maintenance.middleware.d.mts.map +1 -1
  686. package/esm/http/middleware/maintenance.middleware.mjs +1 -1
  687. package/esm/http/middleware/maintenance.middleware.mjs.map +1 -1
  688. package/esm/http/middleware/max-body-size.middleware.d.mts +1 -1
  689. package/esm/http/middleware/max-body-size.middleware.d.mts.map +1 -1
  690. package/esm/http/middleware/max-body-size.middleware.mjs +1 -1
  691. package/esm/http/middleware/max-body-size.middleware.mjs.map +1 -1
  692. package/esm/http/middleware/middleware-list.d.mts +1 -1
  693. package/esm/http/middleware/middleware-list.d.mts.map +1 -1
  694. package/esm/http/middleware/middleware-list.mjs +1 -1
  695. package/esm/http/middleware/middleware-list.mjs.map +1 -1
  696. package/esm/http/middleware/rate-limit.middleware.d.mts +20 -5
  697. package/esm/http/middleware/rate-limit.middleware.d.mts.map +1 -1
  698. package/esm/http/middleware/rate-limit.middleware.mjs +34 -12
  699. package/esm/http/middleware/rate-limit.middleware.mjs.map +1 -1
  700. package/esm/http/middleware/utils/cidr-match.d.mts +1 -1
  701. package/esm/http/middleware/utils/cidr-match.d.mts.map +1 -1
  702. package/esm/http/middleware/utils/cidr-match.mjs +1 -1
  703. package/esm/http/middleware/utils/cidr-match.mjs.map +1 -1
  704. package/esm/http/middleware/utils/idempotency-key.d.mts +1 -1
  705. package/esm/http/middleware/utils/idempotency-key.d.mts.map +1 -1
  706. package/esm/http/middleware/utils/idempotency-key.mjs +1 -1
  707. package/esm/http/middleware/utils/idempotency-key.mjs.map +1 -1
  708. package/esm/http/middleware/utils/parse-size.d.mts +1 -1
  709. package/esm/http/middleware/utils/parse-size.d.mts.map +1 -1
  710. package/esm/http/middleware/utils/parse-size.mjs +1 -1
  711. package/esm/http/middleware/utils/parse-size.mjs.map +1 -1
  712. package/esm/http/parse-urlencoded-body.mjs +1 -1
  713. package/esm/http/parse-urlencoded-body.mjs.map +1 -1
  714. package/esm/http/plugins.d.mts +9 -2
  715. package/esm/http/plugins.d.mts.map +1 -1
  716. package/esm/http/plugins.mjs +18 -4
  717. package/esm/http/plugins.mjs.map +1 -1
  718. package/esm/http/port-preflight.d.mts +1 -1
  719. package/esm/http/port-preflight.d.mts.map +1 -1
  720. package/esm/http/port-preflight.mjs +1 -1
  721. package/esm/http/port-preflight.mjs.map +1 -1
  722. package/esm/http/rate-limit-cache-store.mjs +155 -0
  723. package/esm/http/rate-limit-cache-store.mjs.map +1 -0
  724. package/esm/http/ready-report.d.mts +1 -1
  725. package/esm/http/ready-report.d.mts.map +1 -1
  726. package/esm/http/ready-report.mjs +1 -1
  727. package/esm/http/ready-report.mjs.map +1 -1
  728. package/esm/http/request-controller.d.mts +1 -1
  729. package/esm/http/request-controller.d.mts.map +1 -1
  730. package/esm/http/request-controller.mjs +1 -1
  731. package/esm/http/request-controller.mjs.map +1 -1
  732. package/esm/http/request-log-snapshot.d.mts +123 -0
  733. package/esm/http/request-log-snapshot.d.mts.map +1 -0
  734. package/esm/http/request-log-snapshot.mjs +141 -0
  735. package/esm/http/request-log-snapshot.mjs.map +1 -0
  736. package/esm/http/request.d.mts +41 -2
  737. package/esm/http/request.d.mts.map +1 -1
  738. package/esm/http/request.mjs +65 -2
  739. package/esm/http/request.mjs.map +1 -1
  740. package/esm/http/resolve-bind-port.mjs +1 -1
  741. package/esm/http/resolve-bind-port.mjs.map +1 -1
  742. package/esm/http/response.d.mts +40 -8
  743. package/esm/http/response.d.mts.map +1 -1
  744. package/esm/http/response.mjs +173 -61
  745. package/esm/http/response.mjs.map +1 -1
  746. package/esm/http/serialized.d.mts +1 -1
  747. package/esm/http/serialized.d.mts.map +1 -1
  748. package/esm/http/server-rebuilt.d.mts +1 -1
  749. package/esm/http/server-rebuilt.d.mts.map +1 -1
  750. package/esm/http/server-rebuilt.mjs +1 -1
  751. package/esm/http/server-rebuilt.mjs.map +1 -1
  752. package/esm/http/server.d.mts +34 -6
  753. package/esm/http/server.d.mts.map +1 -1
  754. package/esm/http/server.mjs +70 -5
  755. package/esm/http/server.mjs.map +1 -1
  756. package/esm/http/stream-react-response.d.mts +1 -1
  757. package/esm/http/stream-react-response.d.mts.map +1 -1
  758. package/esm/http/stream-react-response.mjs +1 -1
  759. package/esm/http/stream-react-response.mjs.map +1 -1
  760. package/esm/http/stream-transport.mjs +75 -0
  761. package/esm/http/stream-transport.mjs.map +1 -0
  762. package/esm/http/tracing/trace-id.d.mts +1 -1
  763. package/esm/http/tracing/trace-id.d.mts.map +1 -1
  764. package/esm/http/tracing/trace-id.mjs +1 -1
  765. package/esm/http/tracing/trace-id.mjs.map +1 -1
  766. package/esm/http/tracing/tracing-dispatcher.d.mts +1 -1
  767. package/esm/http/tracing/tracing-dispatcher.d.mts.map +1 -1
  768. package/esm/http/tracing/tracing-dispatcher.mjs +1 -1
  769. package/esm/http/tracing/tracing-dispatcher.mjs.map +1 -1
  770. package/esm/http/tracing/tracing.type.d.mts +1 -1
  771. package/esm/http/tracing/tracing.type.d.mts.map +1 -1
  772. package/esm/http/types.d.mts +131 -6
  773. package/esm/http/types.d.mts.map +1 -1
  774. package/esm/http/uploaded-file.d.mts +2 -2
  775. package/esm/http/uploaded-file.d.mts.map +1 -1
  776. package/esm/http/uploaded-file.mjs +2 -2
  777. package/esm/http/uploaded-file.mjs.map +1 -1
  778. package/esm/http/uploads/detect-image-format.mjs +1 -1
  779. package/esm/http/uploads/detect-image-format.mjs.map +1 -1
  780. package/esm/http/uploads/generate-image-variant.mjs +1 -1
  781. package/esm/http/uploads/generate-image-variant.mjs.map +1 -1
  782. package/esm/http/uploads/generate-image-variants.d.mts +1 -1
  783. package/esm/http/uploads/generate-image-variants.d.mts.map +1 -1
  784. package/esm/http/uploads/generate-image-variants.mjs +15 -7
  785. package/esm/http/uploads/generate-image-variants.mjs.map +1 -1
  786. package/esm/http/uploads/image-variant-cache.mjs +143 -0
  787. package/esm/http/uploads/image-variant-cache.mjs.map +1 -0
  788. package/esm/http/uploads/image-variant-types.d.mts +1 -1
  789. package/esm/http/uploads/image-variant-types.d.mts.map +1 -1
  790. package/esm/http/uploads/image-variants-config-error.d.mts +1 -1
  791. package/esm/http/uploads/image-variants-config-error.d.mts.map +1 -1
  792. package/esm/http/uploads/image-variants-config-error.mjs +1 -1
  793. package/esm/http/uploads/image-variants-config-error.mjs.map +1 -1
  794. package/esm/http/uploads/index.d.mts +3 -1
  795. package/esm/http/uploads/index.mjs +3 -1
  796. package/esm/http/uploads/is-path-inside.mjs +1 -1
  797. package/esm/http/uploads/is-path-inside.mjs.map +1 -1
  798. package/esm/http/uploads/load-variant-source.mjs +1 -1
  799. package/esm/http/uploads/load-variant-source.mjs.map +1 -1
  800. package/esm/http/uploads/local-disk-root.mjs +24 -0
  801. package/esm/http/uploads/local-disk-root.mjs.map +1 -0
  802. package/esm/http/uploads/matches-if-none-match.mjs +1 -1
  803. package/esm/http/uploads/matches-if-none-match.mjs.map +1 -1
  804. package/esm/http/uploads/parse-uploaded-file-query.mjs +1 -1
  805. package/esm/http/uploads/parse-uploaded-file-query.mjs.map +1 -1
  806. package/esm/http/uploads/purge-image-variants.d.mts +32 -0
  807. package/esm/http/uploads/purge-image-variants.d.mts.map +1 -0
  808. package/esm/http/uploads/purge-image-variants.mjs +46 -0
  809. package/esm/http/uploads/purge-image-variants.mjs.map +1 -0
  810. package/esm/http/uploads/read-file-head.mjs +1 -1
  811. package/esm/http/uploads/read-file-head.mjs.map +1 -1
  812. package/esm/http/uploads/resolve-image-variant.d.mts +73 -0
  813. package/esm/http/uploads/resolve-image-variant.d.mts.map +1 -0
  814. package/esm/http/uploads/resolve-image-variant.mjs +107 -0
  815. package/esm/http/uploads/resolve-image-variant.mjs.map +1 -0
  816. package/esm/http/uploads/resolve-image-variants-config.mjs +1 -1
  817. package/esm/http/uploads/resolve-image-variants-config.mjs.map +1 -1
  818. package/esm/http/uploads/resolve-inline-image-content-type.mjs +1 -1
  819. package/esm/http/uploads/resolve-inline-image-content-type.mjs.map +1 -1
  820. package/esm/http/uploads/resolve-original-content-type.mjs +1 -1
  821. package/esm/http/uploads/resolve-original-content-type.mjs.map +1 -1
  822. package/esm/http/uploads/resolve-upload-path.mjs +3 -2
  823. package/esm/http/uploads/resolve-upload-path.mjs.map +1 -1
  824. package/esm/http/uploads/resolve-variant-candidate.mjs +1 -1
  825. package/esm/http/uploads/resolve-variant-candidate.mjs.map +1 -1
  826. package/esm/http/uploads/single-flight.mjs +1 -1
  827. package/esm/http/uploads/single-flight.mjs.map +1 -1
  828. package/esm/http/uploads/uploaded-file.controller.d.mts +24 -6
  829. package/esm/http/uploads/uploaded-file.controller.d.mts.map +1 -1
  830. package/esm/http/uploads/uploaded-file.controller.mjs +63 -91
  831. package/esm/http/uploads/uploaded-file.controller.mjs.map +1 -1
  832. package/esm/http/uploads/variant-cache-key.mjs +30 -5
  833. package/esm/http/uploads/variant-cache-key.mjs.map +1 -1
  834. package/esm/http/uploads/variant-generations.mjs +1 -1
  835. package/esm/http/uploads/variant-generations.mjs.map +1 -1
  836. package/esm/http/uploads-config.d.mts +1 -1
  837. package/esm/http/uploads-config.d.mts.map +1 -1
  838. package/esm/http/uploads-config.mjs +1 -1
  839. package/esm/http/uploads-config.mjs.map +1 -1
  840. package/esm/http/uploads-types.d.mts +1 -1
  841. package/esm/http/uploads-types.d.mts.map +1 -1
  842. package/esm/http/xmlable.d.mts +1 -1
  843. package/esm/http/xmlable.d.mts.map +1 -1
  844. package/esm/image/image.d.mts +1 -1
  845. package/esm/image/image.d.mts.map +1 -1
  846. package/esm/image/image.mjs +1 -1
  847. package/esm/image/image.mjs.map +1 -1
  848. package/esm/index.d.mts +13 -9
  849. package/esm/index.mjs +10 -7
  850. package/esm/loader/app-module-importer.d.mts +1 -1
  851. package/esm/loader/app-module-importer.d.mts.map +1 -1
  852. package/esm/loader/app-module-importer.mjs +1 -1
  853. package/esm/loader/app-module-importer.mjs.map +1 -1
  854. package/esm/localization/parse-locale-dictionary.d.mts +1 -1
  855. package/esm/localization/parse-locale-dictionary.d.mts.map +1 -1
  856. package/esm/localization/parse-locale-dictionary.mjs +1 -1
  857. package/esm/localization/parse-locale-dictionary.mjs.map +1 -1
  858. package/esm/localization/register-locale-dictionary.d.mts +1 -1
  859. package/esm/localization/register-locale-dictionary.d.mts.map +1 -1
  860. package/esm/localization/register-locale-dictionary.mjs +1 -1
  861. package/esm/localization/register-locale-dictionary.mjs.map +1 -1
  862. package/esm/logger/fatal-visibility.d.mts +1 -1
  863. package/esm/logger/fatal-visibility.d.mts.map +1 -1
  864. package/esm/logger/fatal-visibility.mjs +1 -1
  865. package/esm/logger/fatal-visibility.mjs.map +1 -1
  866. package/esm/logger/logger.d.mts +1 -1
  867. package/esm/logger/logger.d.mts.map +1 -1
  868. package/esm/logger/logger.mjs +1 -1
  869. package/esm/logger/logger.mjs.map +1 -1
  870. package/esm/logger/types.d.mts +1 -1
  871. package/esm/logger/types.d.mts.map +1 -1
  872. package/esm/mail/config.d.mts +1 -1
  873. package/esm/mail/config.d.mts.map +1 -1
  874. package/esm/mail/config.mjs +1 -1
  875. package/esm/mail/config.mjs.map +1 -1
  876. package/esm/mail/events.d.mts +1 -1
  877. package/esm/mail/events.d.mts.map +1 -1
  878. package/esm/mail/events.mjs +1 -1
  879. package/esm/mail/events.mjs.map +1 -1
  880. package/esm/mail/mail.d.mts +1 -1
  881. package/esm/mail/mail.d.mts.map +1 -1
  882. package/esm/mail/mail.mjs +1 -1
  883. package/esm/mail/mail.mjs.map +1 -1
  884. package/esm/mail/mailer-pool.d.mts +1 -1
  885. package/esm/mail/mailer-pool.d.mts.map +1 -1
  886. package/esm/mail/mailer-pool.mjs +1 -1
  887. package/esm/mail/mailer-pool.mjs.map +1 -1
  888. package/esm/mail/react-mail.d.mts +1 -1
  889. package/esm/mail/react-mail.d.mts.map +1 -1
  890. package/esm/mail/react-mail.mjs +1 -1
  891. package/esm/mail/react-mail.mjs.map +1 -1
  892. package/esm/mail/send-mail.d.mts +1 -1
  893. package/esm/mail/send-mail.d.mts.map +1 -1
  894. package/esm/mail/send-mail.mjs +7 -7
  895. package/esm/mail/send-mail.mjs.map +1 -1
  896. package/esm/mail/test-mailbox.d.mts +1 -1
  897. package/esm/mail/test-mailbox.d.mts.map +1 -1
  898. package/esm/mail/test-mailbox.mjs +1 -1
  899. package/esm/mail/test-mailbox.mjs.map +1 -1
  900. package/esm/mail/types.d.mts +1 -1
  901. package/esm/mail/types.d.mts.map +1 -1
  902. package/esm/mail/types.mjs +1 -1
  903. package/esm/mail/types.mjs.map +1 -1
  904. package/esm/manifest/manifest-manager.mjs +1 -1
  905. package/esm/manifest/manifest-manager.mjs.map +1 -1
  906. package/esm/openapi/build-openapi-document.d.mts +1 -1
  907. package/esm/openapi/build-openapi-document.d.mts.map +1 -1
  908. package/esm/openapi/build-openapi-document.mjs +1 -1
  909. package/esm/openapi/build-openapi-document.mjs.map +1 -1
  910. package/esm/openapi/cast-schema.mjs +1 -1
  911. package/esm/openapi/cast-schema.mjs.map +1 -1
  912. package/esm/openapi/collect-openapi-document.mjs +1 -1
  913. package/esm/openapi/collect-openapi-document.mjs.map +1 -1
  914. package/esm/openapi/development-openapi-provider.d.mts +1 -1
  915. package/esm/openapi/development-openapi-provider.d.mts.map +1 -1
  916. package/esm/openapi/development-openapi-provider.mjs +1 -1
  917. package/esm/openapi/development-openapi-provider.mjs.map +1 -1
  918. package/esm/openapi/error-responses.mjs +1 -1
  919. package/esm/openapi/error-responses.mjs.map +1 -1
  920. package/esm/openapi/openapi-child-output.mjs +1 -1
  921. package/esm/openapi/openapi-child-output.mjs.map +1 -1
  922. package/esm/openapi/openapi-protocol.mjs +1 -1
  923. package/esm/openapi/openapi-protocol.mjs.map +1 -1
  924. package/esm/openapi/paths.mjs +1 -1
  925. package/esm/openapi/paths.mjs.map +1 -1
  926. package/esm/openapi/postman/build-request-body.mjs +1 -1
  927. package/esm/openapi/postman/build-request-body.mjs.map +1 -1
  928. package/esm/openapi/postman/build-request-url.mjs +1 -1
  929. package/esm/openapi/postman/build-request-url.mjs.map +1 -1
  930. package/esm/openapi/postman/build-saved-responses.mjs +1 -1
  931. package/esm/openapi/postman/build-saved-responses.mjs.map +1 -1
  932. package/esm/openapi/postman/example-from-schema.d.mts +1 -1
  933. package/esm/openapi/postman/example-from-schema.d.mts.map +1 -1
  934. package/esm/openapi/postman/example-from-schema.mjs +1 -1
  935. package/esm/openapi/postman/example-from-schema.mjs.map +1 -1
  936. package/esm/openapi/postman/http-status-text.mjs +1 -1
  937. package/esm/openapi/postman/http-status-text.mjs.map +1 -1
  938. package/esm/openapi/postman/openapi-to-postman-collection.d.mts +1 -1
  939. package/esm/openapi/postman/openapi-to-postman-collection.d.mts.map +1 -1
  940. package/esm/openapi/postman/openapi-to-postman-collection.mjs +1 -1
  941. package/esm/openapi/postman/openapi-to-postman-collection.mjs.map +1 -1
  942. package/esm/openapi/postman/postman-types.d.mts +1 -1
  943. package/esm/openapi/postman/postman-types.d.mts.map +1 -1
  944. package/esm/openapi/postman/resolve-operation-auth.mjs +1 -1
  945. package/esm/openapi/postman/resolve-operation-auth.mjs.map +1 -1
  946. package/esm/openapi/postman/schema-refs.d.mts +1 -1
  947. package/esm/openapi/postman/schema-refs.d.mts.map +1 -1
  948. package/esm/openapi/postman/schema-refs.mjs +1 -1
  949. package/esm/openapi/postman/schema-refs.mjs.map +1 -1
  950. package/esm/openapi/postman/uuid-v5.mjs +1 -1
  951. package/esm/openapi/postman/uuid-v5.mjs.map +1 -1
  952. package/esm/openapi/request-schemas.mjs +1 -1
  953. package/esm/openapi/request-schemas.mjs.map +1 -1
  954. package/esm/openapi/response-schemas.mjs +1 -1
  955. package/esm/openapi/response-schemas.mjs.map +1 -1
  956. package/esm/openapi/schema-registry.mjs +1 -1
  957. package/esm/openapi/schema-registry.mjs.map +1 -1
  958. package/esm/openapi/security.mjs +1 -1
  959. package/esm/openapi/security.mjs.map +1 -1
  960. package/esm/openapi/types.d.mts +1 -1
  961. package/esm/openapi/types.d.mts.map +1 -1
  962. package/esm/production/assert-dist-ready-to-start.mjs +1 -1
  963. package/esm/production/assert-dist-ready-to-start.mjs.map +1 -1
  964. package/esm/production/assert-generated-imports.mjs +1 -1
  965. package/esm/production/assert-generated-imports.mjs.map +1 -1
  966. package/esm/production/build-app-production.mjs +1 -1
  967. package/esm/production/build-app-production.mjs.map +1 -1
  968. package/esm/production/build-contributions.mjs +1 -1
  969. package/esm/production/build-contributions.mjs.map +1 -1
  970. package/esm/production/bundle-framework-dependencies.mjs +1 -1
  971. package/esm/production/bundle-framework-dependencies.mjs.map +1 -1
  972. package/esm/production/dist-build-manifest.mjs +1 -1
  973. package/esm/production/dist-build-manifest.mjs.map +1 -1
  974. package/esm/production/esbuild-plugins.mjs +1 -1
  975. package/esm/production/esbuild-plugins.mjs.map +1 -1
  976. package/esm/production/esbuild-preflight.mjs +1 -1
  977. package/esm/production/esbuild-preflight.mjs.map +1 -1
  978. package/esm/production/production-builder.mjs +1 -1
  979. package/esm/production/production-builder.mjs.map +1 -1
  980. package/esm/production/production-supervisor.mjs +1 -1
  981. package/esm/production/production-supervisor.mjs.map +1 -1
  982. package/esm/production/promote-dist.mjs +1 -1
  983. package/esm/production/promote-dist.mjs.map +1 -1
  984. package/esm/production/registration-child-runner.mjs +1 -1
  985. package/esm/production/registration-child-runner.mjs.map +1 -1
  986. package/esm/production/resolve-build-config.d.mts +1 -1
  987. package/esm/production/resolve-build-config.d.mts.map +1 -1
  988. package/esm/production/resolve-build-config.mjs +1 -1
  989. package/esm/production/resolve-build-config.mjs.map +1 -1
  990. package/esm/production/route-registration-child.mjs +1 -1
  991. package/esm/production/route-registration-child.mjs.map +1 -1
  992. package/esm/production/route-registration-snapshot.mjs +1 -1
  993. package/esm/production/route-registration-snapshot.mjs.map +1 -1
  994. package/esm/production/tsconfig-path-aliases.mjs +1 -1
  995. package/esm/production/tsconfig-path-aliases.mjs.map +1 -1
  996. package/esm/react/index.d.mts +1 -1
  997. package/esm/react/index.d.mts.map +1 -1
  998. package/esm/react/index.mjs +1 -1
  999. package/esm/react/index.mjs.map +1 -1
  1000. package/esm/repositories/adapters/cascade/cascade-adapter.d.mts +1 -1
  1001. package/esm/repositories/adapters/cascade/cascade-adapter.d.mts.map +1 -1
  1002. package/esm/repositories/adapters/cascade/cascade-adapter.mjs +1 -1
  1003. package/esm/repositories/adapters/cascade/cascade-adapter.mjs.map +1 -1
  1004. package/esm/repositories/adapters/cascade/cascade-query-builder.d.mts +1 -1
  1005. package/esm/repositories/adapters/cascade/cascade-query-builder.d.mts.map +1 -1
  1006. package/esm/repositories/adapters/cascade/cascade-query-builder.mjs +1 -1
  1007. package/esm/repositories/adapters/cascade/cascade-query-builder.mjs.map +1 -1
  1008. package/esm/repositories/adapters/cascade/filter-applicator.mjs +1 -1
  1009. package/esm/repositories/adapters/cascade/filter-applicator.mjs.map +1 -1
  1010. package/esm/repositories/contracts/query-builder.contract.d.mts +1 -1
  1011. package/esm/repositories/contracts/query-builder.contract.d.mts.map +1 -1
  1012. package/esm/repositories/contracts/repository-adapter.contract.d.mts +1 -1
  1013. package/esm/repositories/contracts/repository-adapter.contract.d.mts.map +1 -1
  1014. package/esm/repositories/contracts/types.d.mts +1 -1
  1015. package/esm/repositories/contracts/types.d.mts.map +1 -1
  1016. package/esm/repositories/repository.manager.d.mts +1 -1
  1017. package/esm/repositories/repository.manager.d.mts.map +1 -1
  1018. package/esm/repositories/repository.manager.mjs +1 -1
  1019. package/esm/repositories/repository.manager.mjs.map +1 -1
  1020. package/esm/resource/define-resource.d.mts +1 -1
  1021. package/esm/resource/define-resource.d.mts.map +1 -1
  1022. package/esm/resource/define-resource.mjs +1 -1
  1023. package/esm/resource/define-resource.mjs.map +1 -1
  1024. package/esm/resource/nullable-resource.d.mts +1 -1
  1025. package/esm/resource/nullable-resource.d.mts.map +1 -1
  1026. package/esm/resource/nullable-resource.mjs +1 -1
  1027. package/esm/resource/nullable-resource.mjs.map +1 -1
  1028. package/esm/resource/register-resource.d.mts +1 -1
  1029. package/esm/resource/register-resource.d.mts.map +1 -1
  1030. package/esm/resource/register-resource.mjs +1 -1
  1031. package/esm/resource/register-resource.mjs.map +1 -1
  1032. package/esm/resource/resource-field-builder.d.mts +1 -1
  1033. package/esm/resource/resource-field-builder.d.mts.map +1 -1
  1034. package/esm/resource/resource-field-builder.mjs +1 -1
  1035. package/esm/resource/resource-field-builder.mjs.map +1 -1
  1036. package/esm/resource/resource.d.mts +1 -1
  1037. package/esm/resource/resource.d.mts.map +1 -1
  1038. package/esm/resource/resource.mjs +1 -1
  1039. package/esm/resource/resource.mjs.map +1 -1
  1040. package/esm/resource/types.d.mts +1 -1
  1041. package/esm/resource/types.d.mts.map +1 -1
  1042. package/esm/restful/restful.d.mts +1 -1
  1043. package/esm/restful/restful.d.mts.map +1 -1
  1044. package/esm/restful/restful.mjs +1 -1
  1045. package/esm/restful/restful.mjs.map +1 -1
  1046. package/esm/router/build-route-rate-limit.mjs +1 -1
  1047. package/esm/router/build-route-rate-limit.mjs.map +1 -1
  1048. package/esm/router/describe-route-for-log.mjs +1 -1
  1049. package/esm/router/describe-route-for-log.mjs.map +1 -1
  1050. package/esm/router/dev-dispatch.mjs +1 -1
  1051. package/esm/router/dev-dispatch.mjs.map +1 -1
  1052. package/esm/router/log-request-lifecycle.mjs +1 -1
  1053. package/esm/router/log-request-lifecycle.mjs.map +1 -1
  1054. package/esm/router/named-api-routes-with-responses.mjs +1 -1
  1055. package/esm/router/named-api-routes-with-responses.mjs.map +1 -1
  1056. package/esm/router/normalize-request-path.d.mts +1 -1
  1057. package/esm/router/normalize-request-path.d.mts.map +1 -1
  1058. package/esm/router/normalize-request-path.mjs +1 -1
  1059. package/esm/router/normalize-request-path.mjs.map +1 -1
  1060. package/esm/router/normalize-route-path.d.mts +1 -1
  1061. package/esm/router/normalize-route-path.d.mts.map +1 -1
  1062. package/esm/router/normalize-route-path.mjs +1 -1
  1063. package/esm/router/normalize-route-path.mjs.map +1 -1
  1064. package/esm/router/positional-handler-diagnostics.d.mts +1 -1
  1065. package/esm/router/positional-handler-diagnostics.d.mts.map +1 -1
  1066. package/esm/router/positional-handler-diagnostics.mjs +1 -1
  1067. package/esm/router/positional-handler-diagnostics.mjs.map +1 -1
  1068. package/esm/router/response-schema-types.mjs +1 -1
  1069. package/esm/router/response-schema-types.mjs.map +1 -1
  1070. package/esm/router/route-builder.d.mts +1 -1
  1071. package/esm/router/route-builder.d.mts.map +1 -1
  1072. package/esm/router/route-builder.mjs +1 -1
  1073. package/esm/router/route-builder.mjs.map +1 -1
  1074. package/esm/router/route-name-method-suffix.d.mts +1 -1
  1075. package/esm/router/route-name-method-suffix.d.mts.map +1 -1
  1076. package/esm/router/route-name-method-suffix.mjs +1 -1
  1077. package/esm/router/route-name-method-suffix.mjs.map +1 -1
  1078. package/esm/router/route-registry.d.mts +1 -1
  1079. package/esm/router/route-registry.d.mts.map +1 -1
  1080. package/esm/router/route-registry.mjs +1 -1
  1081. package/esm/router/route-registry.mjs.map +1 -1
  1082. package/esm/router/router.d.mts +8 -1
  1083. package/esm/router/router.d.mts.map +1 -1
  1084. package/esm/router/router.mjs +20 -15
  1085. package/esm/router/router.mjs.map +1 -1
  1086. package/esm/router/types.d.mts +13 -1
  1087. package/esm/router/types.d.mts.map +1 -1
  1088. package/esm/socket/types.d.mts +1 -1
  1089. package/esm/socket/types.d.mts.map +1 -1
  1090. package/esm/socket/utils.d.mts +1 -1
  1091. package/esm/socket/utils.d.mts.map +1 -1
  1092. package/esm/socket/utils.mjs +1 -1
  1093. package/esm/socket/utils.mjs.map +1 -1
  1094. package/esm/storage/config.d.mts +1 -1
  1095. package/esm/storage/config.d.mts.map +1 -1
  1096. package/esm/storage/config.mjs +1 -1
  1097. package/esm/storage/config.mjs.map +1 -1
  1098. package/esm/storage/context/storage-driver-context.d.mts +1 -1
  1099. package/esm/storage/context/storage-driver-context.d.mts.map +1 -1
  1100. package/esm/storage/context/storage-driver-context.mjs +1 -1
  1101. package/esm/storage/context/storage-driver-context.mjs.map +1 -1
  1102. package/esm/storage/drivers/cloud-driver.d.mts +1 -1
  1103. package/esm/storage/drivers/cloud-driver.d.mts.map +1 -1
  1104. package/esm/storage/drivers/cloud-driver.mjs +1 -1
  1105. package/esm/storage/drivers/cloud-driver.mjs.map +1 -1
  1106. package/esm/storage/drivers/do-spaces-driver.d.mts +1 -1
  1107. package/esm/storage/drivers/do-spaces-driver.d.mts.map +1 -1
  1108. package/esm/storage/drivers/do-spaces-driver.mjs +1 -1
  1109. package/esm/storage/drivers/do-spaces-driver.mjs.map +1 -1
  1110. package/esm/storage/drivers/local-driver.d.mts +12 -1
  1111. package/esm/storage/drivers/local-driver.d.mts.map +1 -1
  1112. package/esm/storage/drivers/local-driver.mjs +33 -1
  1113. package/esm/storage/drivers/local-driver.mjs.map +1 -1
  1114. package/esm/storage/drivers/r2-driver.d.mts +1 -1
  1115. package/esm/storage/drivers/r2-driver.d.mts.map +1 -1
  1116. package/esm/storage/drivers/r2-driver.mjs +1 -1
  1117. package/esm/storage/drivers/r2-driver.mjs.map +1 -1
  1118. package/esm/storage/drivers/s3-driver.d.mts +1 -1
  1119. package/esm/storage/drivers/s3-driver.d.mts.map +1 -1
  1120. package/esm/storage/drivers/s3-driver.mjs +1 -1
  1121. package/esm/storage/drivers/s3-driver.mjs.map +1 -1
  1122. package/esm/storage/index.d.mts +1 -1
  1123. package/esm/storage/scoped-storage.d.mts +1 -1
  1124. package/esm/storage/scoped-storage.d.mts.map +1 -1
  1125. package/esm/storage/scoped-storage.mjs +1 -1
  1126. package/esm/storage/scoped-storage.mjs.map +1 -1
  1127. package/esm/storage/storage-file.d.mts +1 -1
  1128. package/esm/storage/storage-file.d.mts.map +1 -1
  1129. package/esm/storage/storage-file.mjs +1 -1
  1130. package/esm/storage/storage-file.mjs.map +1 -1
  1131. package/esm/storage/storage.d.mts +3 -3
  1132. package/esm/storage/storage.d.mts.map +1 -1
  1133. package/esm/storage/storage.mjs +1 -1
  1134. package/esm/storage/storage.mjs.map +1 -1
  1135. package/esm/storage/types.d.mts +3 -2
  1136. package/esm/storage/types.d.mts.map +1 -1
  1137. package/esm/storage/utils/classify-ip-address.d.mts +1 -1
  1138. package/esm/storage/utils/classify-ip-address.d.mts.map +1 -1
  1139. package/esm/storage/utils/classify-ip-address.mjs +1 -1
  1140. package/esm/storage/utils/classify-ip-address.mjs.map +1 -1
  1141. package/esm/storage/utils/contain-path.d.mts +1 -1
  1142. package/esm/storage/utils/contain-path.d.mts.map +1 -1
  1143. package/esm/storage/utils/contain-path.mjs +1 -1
  1144. package/esm/storage/utils/contain-path.mjs.map +1 -1
  1145. package/esm/storage/utils/mime.d.mts +1 -1
  1146. package/esm/storage/utils/mime.d.mts.map +1 -1
  1147. package/esm/storage/utils/mime.mjs +1 -1
  1148. package/esm/storage/utils/mime.mjs.map +1 -1
  1149. package/esm/storage/utils/safe-fetch.d.mts +1 -1
  1150. package/esm/storage/utils/safe-fetch.d.mts.map +1 -1
  1151. package/esm/storage/utils/safe-fetch.mjs +1 -1
  1152. package/esm/storage/utils/safe-fetch.mjs.map +1 -1
  1153. package/esm/storage/utils/storage-capability-error.d.mts +1 -1
  1154. package/esm/storage/utils/storage-capability-error.d.mts.map +1 -1
  1155. package/esm/storage/utils/storage-capability-error.mjs +1 -1
  1156. package/esm/storage/utils/storage-capability-error.mjs.map +1 -1
  1157. package/esm/storage/utils/storage-error.d.mts +1 -1
  1158. package/esm/storage/utils/storage-error.d.mts.map +1 -1
  1159. package/esm/storage/utils/storage-error.mjs +1 -1
  1160. package/esm/storage/utils/storage-error.mjs.map +1 -1
  1161. package/esm/storage/utils/storage-not-initialized-error.d.mts +1 -1
  1162. package/esm/storage/utils/storage-not-initialized-error.d.mts.map +1 -1
  1163. package/esm/storage/utils/storage-not-initialized-error.mjs +1 -1
  1164. package/esm/storage/utils/storage-not-initialized-error.mjs.map +1 -1
  1165. package/esm/tests/start-http-development-server.d.mts +1 -1
  1166. package/esm/tests/start-http-development-server.d.mts.map +1 -1
  1167. package/esm/tests/start-http-development-server.mjs +1 -1
  1168. package/esm/tests/start-http-development-server.mjs.map +1 -1
  1169. package/esm/tests/test-connectors-selection.d.mts +1 -1
  1170. package/esm/tests/test-connectors-selection.d.mts.map +1 -1
  1171. package/esm/tests/test-connectors-selection.mjs +1 -1
  1172. package/esm/tests/test-connectors-selection.mjs.map +1 -1
  1173. package/esm/tests/test-helpers.d.mts +1 -1
  1174. package/esm/tests/test-helpers.d.mts.map +1 -1
  1175. package/esm/tests/test-helpers.mjs +1 -1
  1176. package/esm/tests/test-helpers.mjs.map +1 -1
  1177. package/esm/tests/test-lifecycle-state.mjs +1 -1
  1178. package/esm/tests/test-lifecycle-state.mjs.map +1 -1
  1179. package/esm/tests/test-server-port-channel.mjs +1 -1
  1180. package/esm/tests/test-server-port-channel.mjs.map +1 -1
  1181. package/esm/tests/test-setup-timeout.mjs +1 -1
  1182. package/esm/tests/test-setup-timeout.mjs.map +1 -1
  1183. package/esm/tests/vitest-setup.d.mts +1 -1
  1184. package/esm/tests/vitest-setup.d.mts.map +1 -1
  1185. package/esm/tests/vitest-setup.mjs +1 -1
  1186. package/esm/tests/vitest-setup.mjs.map +1 -1
  1187. package/esm/updater/package-manager.mjs +1 -1
  1188. package/esm/updater/package-manager.mjs.map +1 -1
  1189. package/esm/updater/update-warlock-packages.mjs +1 -1
  1190. package/esm/updater/update-warlock-packages.mjs.map +1 -1
  1191. package/esm/use-cases/types.d.mts +1 -1
  1192. package/esm/use-cases/types.d.mts.map +1 -1
  1193. package/esm/use-cases/use-case-broadcast.d.mts +1 -1
  1194. package/esm/use-cases/use-case-broadcast.d.mts.map +1 -1
  1195. package/esm/use-cases/use-case-broadcast.mjs +1 -1
  1196. package/esm/use-cases/use-case-broadcast.mjs.map +1 -1
  1197. package/esm/use-cases/use-case-events.d.mts +1 -1
  1198. package/esm/use-cases/use-case-events.d.mts.map +1 -1
  1199. package/esm/use-cases/use-case-events.mjs +1 -1
  1200. package/esm/use-cases/use-case-events.mjs.map +1 -1
  1201. package/esm/use-cases/use-case-pipeline.d.mts +1 -1
  1202. package/esm/use-cases/use-case-pipeline.d.mts.map +1 -1
  1203. package/esm/use-cases/use-case-pipeline.mjs +1 -1
  1204. package/esm/use-cases/use-case-pipeline.mjs.map +1 -1
  1205. package/esm/use-cases/use-case.d.mts +1 -1
  1206. package/esm/use-cases/use-case.d.mts.map +1 -1
  1207. package/esm/use-cases/use-case.errors.d.mts +1 -1
  1208. package/esm/use-cases/use-case.errors.d.mts.map +1 -1
  1209. package/esm/use-cases/use-case.errors.mjs +1 -1
  1210. package/esm/use-cases/use-case.errors.mjs.map +1 -1
  1211. package/esm/use-cases/use-case.mjs +1 -1
  1212. package/esm/use-cases/use-case.mjs.map +1 -1
  1213. package/esm/use-cases/use-cases-registry.d.mts +1 -1
  1214. package/esm/use-cases/use-cases-registry.d.mts.map +1 -1
  1215. package/esm/use-cases/use-cases-registry.mjs +1 -1
  1216. package/esm/use-cases/use-cases-registry.mjs.map +1 -1
  1217. package/esm/utils/app-log.d.mts +6 -6
  1218. package/esm/utils/app-log.d.mts.map +1 -1
  1219. package/esm/utils/app-log.mjs +1 -1
  1220. package/esm/utils/app-log.mjs.map +1 -1
  1221. package/esm/utils/database-log.d.mts +1 -1
  1222. package/esm/utils/database-log.d.mts.map +1 -1
  1223. package/esm/utils/database-log.mjs +1 -1
  1224. package/esm/utils/database-log.mjs.map +1 -1
  1225. package/esm/utils/detect-environment-overrides.mjs +1 -1
  1226. package/esm/utils/detect-environment-overrides.mjs.map +1 -1
  1227. package/esm/utils/environment.d.mts +1 -1
  1228. package/esm/utils/environment.d.mts.map +1 -1
  1229. package/esm/utils/environment.mjs +1 -1
  1230. package/esm/utils/environment.mjs.map +1 -1
  1231. package/esm/utils/framework-vesion.mjs +1 -1
  1232. package/esm/utils/framework-vesion.mjs.map +1 -1
  1233. package/esm/utils/get-localized.d.mts +1 -1
  1234. package/esm/utils/get-localized.d.mts.map +1 -1
  1235. package/esm/utils/get-localized.mjs +1 -1
  1236. package/esm/utils/get-localized.mjs.map +1 -1
  1237. package/esm/utils/is-test-file.mjs +1 -1
  1238. package/esm/utils/is-test-file.mjs.map +1 -1
  1239. package/esm/utils/load-environment.mjs +1 -1
  1240. package/esm/utils/load-environment.mjs.map +1 -1
  1241. package/esm/utils/normalized-path.d.mts +1 -1
  1242. package/esm/utils/normalized-path.d.mts.map +1 -1
  1243. package/esm/utils/normalized-path.mjs +1 -1
  1244. package/esm/utils/normalized-path.mjs.map +1 -1
  1245. package/esm/utils/npm-registry.d.mts +1 -1
  1246. package/esm/utils/npm-registry.d.mts.map +1 -1
  1247. package/esm/utils/npm-registry.mjs +1 -1
  1248. package/esm/utils/npm-registry.mjs.map +1 -1
  1249. package/esm/utils/paths.d.mts +1 -1
  1250. package/esm/utils/paths.d.mts.map +1 -1
  1251. package/esm/utils/paths.mjs +1 -1
  1252. package/esm/utils/paths.mjs.map +1 -1
  1253. package/esm/utils/promise-all-object.d.mts +1 -1
  1254. package/esm/utils/promise-all-object.d.mts.map +1 -1
  1255. package/esm/utils/promise-all-object.mjs +1 -1
  1256. package/esm/utils/promise-all-object.mjs.map +1 -1
  1257. package/esm/utils/queue.d.mts +1 -1
  1258. package/esm/utils/queue.d.mts.map +1 -1
  1259. package/esm/utils/queue.mjs +1 -1
  1260. package/esm/utils/queue.mjs.map +1 -1
  1261. package/esm/utils/recorded-environment-overrides.mjs +1 -1
  1262. package/esm/utils/recorded-environment-overrides.mjs.map +1 -1
  1263. package/esm/utils/report-environment-overrides.mjs +1 -1
  1264. package/esm/utils/report-environment-overrides.mjs.map +1 -1
  1265. package/esm/utils/sleep.d.mts +1 -1
  1266. package/esm/utils/sleep.d.mts.map +1 -1
  1267. package/esm/utils/sleep.mjs +1 -1
  1268. package/esm/utils/sleep.mjs.map +1 -1
  1269. package/esm/utils/sluggable.d.mts +1 -1
  1270. package/esm/utils/sluggable.d.mts.map +1 -1
  1271. package/esm/utils/sluggable.mjs +1 -1
  1272. package/esm/utils/sluggable.mjs.map +1 -1
  1273. package/esm/utils/to-json.d.mts +1 -1
  1274. package/esm/utils/to-json.d.mts.map +1 -1
  1275. package/esm/utils/to-json.mjs +1 -1
  1276. package/esm/utils/to-json.mjs.map +1 -1
  1277. package/esm/utils/types.d.mts +1 -1
  1278. package/esm/utils/types.d.mts.map +1 -1
  1279. package/esm/utils/urls.d.mts +1 -1
  1280. package/esm/utils/urls.d.mts.map +1 -1
  1281. package/esm/utils/urls.mjs +1 -1
  1282. package/esm/utils/urls.mjs.map +1 -1
  1283. package/esm/utils/version-compare.d.mts +1 -1
  1284. package/esm/utils/version-compare.d.mts.map +1 -1
  1285. package/esm/utils/version-compare.mjs +1 -1
  1286. package/esm/utils/version-compare.mjs.map +1 -1
  1287. package/esm/validation/database/exists-except-current-id.d.mts +1 -1
  1288. package/esm/validation/database/exists-except-current-id.d.mts.map +1 -1
  1289. package/esm/validation/database/exists-except-current-id.mjs +1 -1
  1290. package/esm/validation/database/exists-except-current-id.mjs.map +1 -1
  1291. package/esm/validation/database/exists-except-current-user.d.mts +1 -1
  1292. package/esm/validation/database/exists-except-current-user.d.mts.map +1 -1
  1293. package/esm/validation/database/exists-except-current-user.mjs +1 -1
  1294. package/esm/validation/database/exists-except-current-user.mjs.map +1 -1
  1295. package/esm/validation/database/types.d.mts +1 -1
  1296. package/esm/validation/database/types.d.mts.map +1 -1
  1297. package/esm/validation/database/unique-except-current-id.d.mts +1 -1
  1298. package/esm/validation/database/unique-except-current-id.d.mts.map +1 -1
  1299. package/esm/validation/database/unique-except-current-id.mjs +1 -1
  1300. package/esm/validation/database/unique-except-current-id.mjs.map +1 -1
  1301. package/esm/validation/database/unique-except-current-user.d.mts +1 -1
  1302. package/esm/validation/database/unique-except-current-user.d.mts.map +1 -1
  1303. package/esm/validation/database/unique-except-current-user.mjs +1 -1
  1304. package/esm/validation/database/unique-except-current-user.mjs.map +1 -1
  1305. package/esm/validation/file/file.d.mts +1 -1
  1306. package/esm/validation/file/file.d.mts.map +1 -1
  1307. package/esm/validation/file/file.mjs +1 -1
  1308. package/esm/validation/file/file.mjs.map +1 -1
  1309. package/esm/validation/init.mjs +1 -1
  1310. package/esm/validation/init.mjs.map +1 -1
  1311. package/esm/validation/plugins/database-plugin.mjs +1 -1
  1312. package/esm/validation/plugins/database-plugin.mjs.map +1 -1
  1313. package/esm/validation/plugins/file-plugin.mjs +1 -1
  1314. package/esm/validation/plugins/file-plugin.mjs.map +1 -1
  1315. package/esm/validation/plugins/localized-plugin.mjs +1 -1
  1316. package/esm/validation/plugins/localized-plugin.mjs.map +1 -1
  1317. package/esm/validation/types.d.mts +1 -1
  1318. package/esm/validation/types.d.mts.map +1 -1
  1319. package/esm/validation/validateAll.mjs +1 -1
  1320. package/esm/validation/validateAll.mjs.map +1 -1
  1321. package/esm/validation/validators/file-validator.d.mts +44 -41
  1322. package/esm/validation/validators/file-validator.d.mts.map +1 -1
  1323. package/esm/validation/validators/file-validator.mjs +4 -1
  1324. package/esm/validation/validators/file-validator.mjs.map +1 -1
  1325. package/esm/vite/lower-stage3-decorators.d.mts +1 -1
  1326. package/esm/vite/lower-stage3-decorators.d.mts.map +1 -1
  1327. package/esm/vite/lower-stage3-decorators.mjs +1 -1
  1328. package/esm/vite/lower-stage3-decorators.mjs.map +1 -1
  1329. package/esm/warlock-config/bundle-config.mjs +148 -0
  1330. package/esm/warlock-config/bundle-config.mjs.map +1 -0
  1331. package/esm/warlock-config/default-configurations.mjs +1 -1
  1332. package/esm/warlock-config/default-configurations.mjs.map +1 -1
  1333. package/esm/warlock-config/define-config.d.mts +1 -1
  1334. package/esm/warlock-config/define-config.d.mts.map +1 -1
  1335. package/esm/warlock-config/define-config.mjs +1 -1
  1336. package/esm/warlock-config/define-config.mjs.map +1 -1
  1337. package/esm/warlock-config/index.d.mts +1 -1
  1338. package/esm/warlock-config/index.mjs +1 -1
  1339. package/esm/warlock-config/normalize-build-config.mjs +1 -1
  1340. package/esm/warlock-config/normalize-build-config.mjs.map +1 -1
  1341. package/esm/warlock-config/types.d.mts +1 -1
  1342. package/esm/warlock-config/types.d.mts.map +1 -1
  1343. package/esm/warlock-config/warlock-config.manager.d.mts +32 -7
  1344. package/esm/warlock-config/warlock-config.manager.d.mts.map +1 -1
  1345. package/esm/warlock-config/warlock-config.manager.mjs +94 -18
  1346. package/esm/warlock-config/warlock-config.manager.mjs.map +1 -1
  1347. package/esm/warlock-config/warn-deprecated-config.mjs +1 -1
  1348. package/esm/warlock-config/warn-deprecated-config.mjs.map +1 -1
  1349. package/llms-full.txt +66 -9
  1350. package/package.json +20 -13
  1351. package/skills/configure-app/SKILL.md +23 -1
  1352. package/skills/create-controller/SKILL.md +4 -0
  1353. package/skills/health-checks/SKILL.md +2 -0
  1354. package/skills/register-route/SKILL.md +10 -0
  1355. package/skills/run-app/SKILL.md +9 -2
  1356. package/skills/send-response/SKILL.md +10 -2
  1357. package/skills/store-file/SKILL.md +5 -1
  1358. package/skills/use-middleware/SKILL.md +2 -2
  1359. package/skills/validate-input/SKILL.md +1 -1
@@ -1,6 +1,6 @@
1
1
  import { transform } from "esbuild";
2
2
 
3
- //#region ../core/src/vite/lower-stage3-decorators.ts
3
+ //#region ../../packages/core/src/vite/lower-stage3-decorators.ts
4
4
  /**
5
5
  * Vite/Vitest plugin that lowers TC39 Stage-3 (native) decorators to plain JS
6
6
  * **before** the rest of the transform pipeline runs.
@@ -1 +1 @@
1
- {"version":3,"file":"lower-stage3-decorators.mjs","names":[],"sources":["../../../../../../../core/src/vite/lower-stage3-decorators.ts"],"sourcesContent":["import { transform } from \"esbuild\";\n\n/**\n * The Vite/Vitest plugin object returned by {@link lowerStage3Decorators}.\n *\n * Declared structurally so `@warlock.js/core` needn't take a `vite` dependency\n * just for one type — the shape is assignable to Vite's `PluginOption` wherever\n * it's placed in a config's `plugins` array.\n */\nexport interface DecoratorLoweringPlugin {\n name: string;\n enforce: \"pre\";\n transform(code: string, id: string): Promise<{ code: string; map: string } | null>;\n}\n\n/**\n * Vite/Vitest plugin that lowers TC39 Stage-3 (native) decorators to plain JS\n * **before** the rest of the transform pipeline runs.\n *\n * Cascade models declare relations with native decorators (`@RegisterModel`,\n * `@BelongsTo`, `@HasMany`, …). Vitest's bundled rolldown-vite transforms `.ts`\n * with **oxc**, and Vite's SSR `moduleRunnerTransform` rewrites the decorator's\n * import reference into `@(0, __vite_ssr_import__.RegisterModel)()` — invalid\n * decorator syntax that throws \"SyntaxError: Invalid or unexpected token\" on\n * every model load. oxc can only lower *legacy* decorators, and legacy lowering\n * would mangle the Stage-3 `(value, context)` signature these decorators rely on\n * (they read `context.kind` / `context.metadata`).\n *\n * esbuild lowers Stage-3 decorators correctly while preserving their runtime\n * semantics — the same transform the production `tsx`/build path uses, so a file\n * lowered here behaves identically in dev, test, and prod. Running `enforce:\n * \"pre\"` hands oxc / the SSR rewrite already-lowered, decorator-free code. Files\n * with no decorator skip esbuild entirely, so the fast path is untouched.\n *\n * Keep it **first** in the `plugins` array so it runs ahead of `@mongez/vite`\n * and Vite's core transform.\n *\n * @example\n * ```ts\n * // vite.config.ts / vitest.config.ts\n * import { lowerStage3Decorators } from \"@warlock.js/core/vite\";\n * import { defineConfig } from \"vitest/config\";\n *\n * export default defineConfig({\n * plugins: [lowerStage3Decorators(), mongezVite()],\n * });\n * ```\n */\nexport function lowerStage3Decorators(): DecoratorLoweringPlugin {\n return {\n name: \"warlock:lower-stage3-decorators\",\n enforce: \"pre\",\n async transform(code, id) {\n const [filepath] = id.split(\"?\");\n\n // `split` always yields a first element, so this holds. Returning `null`\n // — the plugin's own \"not my file\" answer — rather than defaulting:\n // `?? \"\"` would fail the `.tsx?` test and reach the same outcome by\n // accident, and a transform plugin that guesses at a module id is how a\n // file silently skips decorator lowering and fails at runtime instead.\n if (filepath === undefined) return null;\n\n if (!/\\.tsx?$/.test(filepath) || filepath.includes(\"/node_modules/\")) {\n return null;\n }\n\n // Cheap gate: only files that actually carry a decorator pay esbuild's cost.\n if (!/(^|\\n)\\s*@[A-Za-z_$]/.test(code)) {\n return null;\n }\n\n const result = await transform(code, {\n loader: filepath.endsWith(\".tsx\") ? \"tsx\" : \"ts\",\n format: \"esm\",\n target: \"es2022\",\n sourcemap: true,\n sourcefile: filepath,\n // Force native (Stage-3) semantics regardless of any ambient tsconfig\n // esbuild might otherwise honor.\n tsconfigRaw: { compilerOptions: { experimentalDecorators: false } },\n });\n\n return { code: result.code, map: result.map };\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDA,SAAgB,wBAAiD;CAC/D,OAAO;EACL,MAAM;EACN,SAAS;EACT,MAAM,UAAU,MAAM,IAAI;GACxB,MAAM,CAAC,YAAY,GAAG,MAAM,GAAG;GAO/B,IAAI,aAAa,QAAW,OAAO;GAEnC,IAAI,CAAC,UAAU,KAAK,QAAQ,KAAK,SAAS,SAAS,gBAAgB,GACjE,OAAO;GAIT,IAAI,CAAC,uBAAuB,KAAK,IAAI,GACnC,OAAO;GAGT,MAAM,SAAS,MAAM,UAAU,MAAM;IACnC,QAAQ,SAAS,SAAS,MAAM,IAAI,QAAQ;IAC5C,QAAQ;IACR,QAAQ;IACR,WAAW;IACX,YAAY;IAGZ,aAAa,EAAE,iBAAiB,EAAE,wBAAwB,MAAM,EAAE;GACpE,CAAC;GAED,OAAO;IAAE,MAAM,OAAO;IAAM,KAAK,OAAO;GAAI;EAC9C;CACF;AACF"}
1
+ {"version":3,"file":"lower-stage3-decorators.mjs","names":[],"sources":["../../../../../../../../packages/core/src/vite/lower-stage3-decorators.ts"],"sourcesContent":["import { transform } from \"esbuild\";\n\n/**\n * The Vite/Vitest plugin object returned by {@link lowerStage3Decorators}.\n *\n * Declared structurally so `@warlock.js/core` needn't take a `vite` dependency\n * just for one type — the shape is assignable to Vite's `PluginOption` wherever\n * it's placed in a config's `plugins` array.\n */\nexport interface DecoratorLoweringPlugin {\n name: string;\n enforce: \"pre\";\n transform(code: string, id: string): Promise<{ code: string; map: string } | null>;\n}\n\n/**\n * Vite/Vitest plugin that lowers TC39 Stage-3 (native) decorators to plain JS\n * **before** the rest of the transform pipeline runs.\n *\n * Cascade models declare relations with native decorators (`@RegisterModel`,\n * `@BelongsTo`, `@HasMany`, …). Vitest's bundled rolldown-vite transforms `.ts`\n * with **oxc**, and Vite's SSR `moduleRunnerTransform` rewrites the decorator's\n * import reference into `@(0, __vite_ssr_import__.RegisterModel)()` — invalid\n * decorator syntax that throws \"SyntaxError: Invalid or unexpected token\" on\n * every model load. oxc can only lower *legacy* decorators, and legacy lowering\n * would mangle the Stage-3 `(value, context)` signature these decorators rely on\n * (they read `context.kind` / `context.metadata`).\n *\n * esbuild lowers Stage-3 decorators correctly while preserving their runtime\n * semantics — the same transform the production `tsx`/build path uses, so a file\n * lowered here behaves identically in dev, test, and prod. Running `enforce:\n * \"pre\"` hands oxc / the SSR rewrite already-lowered, decorator-free code. Files\n * with no decorator skip esbuild entirely, so the fast path is untouched.\n *\n * Keep it **first** in the `plugins` array so it runs ahead of `@mongez/vite`\n * and Vite's core transform.\n *\n * @example\n * ```ts\n * // vite.config.ts / vitest.config.ts\n * import { lowerStage3Decorators } from \"@warlock.js/core/vite\";\n * import { defineConfig } from \"vitest/config\";\n *\n * export default defineConfig({\n * plugins: [lowerStage3Decorators(), mongezVite()],\n * });\n * ```\n */\nexport function lowerStage3Decorators(): DecoratorLoweringPlugin {\n return {\n name: \"warlock:lower-stage3-decorators\",\n enforce: \"pre\",\n async transform(code, id) {\n const [filepath] = id.split(\"?\");\n\n // `split` always yields a first element, so this holds. Returning `null`\n // — the plugin's own \"not my file\" answer — rather than defaulting:\n // `?? \"\"` would fail the `.tsx?` test and reach the same outcome by\n // accident, and a transform plugin that guesses at a module id is how a\n // file silently skips decorator lowering and fails at runtime instead.\n if (filepath === undefined) return null;\n\n if (!/\\.tsx?$/.test(filepath) || filepath.includes(\"/node_modules/\")) {\n return null;\n }\n\n // Cheap gate: only files that actually carry a decorator pay esbuild's cost.\n if (!/(^|\\n)\\s*@[A-Za-z_$]/.test(code)) {\n return null;\n }\n\n const result = await transform(code, {\n loader: filepath.endsWith(\".tsx\") ? \"tsx\" : \"ts\",\n format: \"esm\",\n target: \"es2022\",\n sourcemap: true,\n sourcefile: filepath,\n // Force native (Stage-3) semantics regardless of any ambient tsconfig\n // esbuild might otherwise honor.\n tsconfigRaw: { compilerOptions: { experimentalDecorators: false } },\n });\n\n return { code: result.code, map: result.map };\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDA,SAAgB,wBAAiD;CAC/D,OAAO;EACL,MAAM;EACN,SAAS;EACT,MAAM,UAAU,MAAM,IAAI;GACxB,MAAM,CAAC,YAAY,GAAG,MAAM,GAAG;GAO/B,IAAI,aAAa,QAAW,OAAO;GAEnC,IAAI,CAAC,UAAU,KAAK,QAAQ,KAAK,SAAS,SAAS,gBAAgB,GACjE,OAAO;GAIT,IAAI,CAAC,uBAAuB,KAAK,IAAI,GACnC,OAAO;GAGT,MAAM,SAAS,MAAM,UAAU,MAAM;IACnC,QAAQ,SAAS,SAAS,MAAM,IAAI,QAAQ;IAC5C,QAAQ;IACR,QAAQ;IACR,WAAW;IACX,YAAY;IAGZ,aAAa,EAAE,iBAAiB,EAAE,wBAAwB,MAAM,EAAE;GACpE,CAAC;GAED,OAAO;IAAE,MAAM,OAAO;IAAM,KAAK,OAAO;GAAI;EAC9C;CACF;AACF"}
@@ -0,0 +1,148 @@
1
+ import path from "node:path";
2
+ import { readFile } from "node:fs/promises";
3
+ import { getTsconfig } from "get-tsconfig";
4
+ import { pathToFileURL } from "node:url";
5
+
6
+ //#region ../../packages/core/src/warlock-config/bundle-config.ts
7
+ /**
8
+ * Local source files the config bundle inlines. Everything else a config can
9
+ * import (JSON, assets) is left to esbuild's own loaders.
10
+ */
11
+ const LOCAL_SOURCE_FILTER = /\.(?:[cm]?[jt]sx?)$/;
12
+ /**
13
+ * Marks the nested `build.resolve()` the alias check makes, so the plugin's
14
+ * own resolver does not intercept it again.
15
+ */
16
+ const ALIAS_PROBE = Symbol("warlock-config-alias-probe");
17
+ /**
18
+ * Bundle `warlock.config.ts` and its LOCAL import graph into one ESM module.
19
+ *
20
+ * Used when the runtime cannot import the config as written: Node without
21
+ * native TypeScript, or native TypeScript meeting what only a TS toolchain
22
+ * resolves (an extensionless `./src/connectors/local` import, a tsconfig
23
+ * `paths` alias such as `app/*`).
24
+ *
25
+ * - Relative, absolute and tsconfig-`paths` imports are inlined, so the whole
26
+ * local graph is transpiled and resolved the way TypeScript sees it.
27
+ * - Every other bare specifier (`@warlock.js/*`, npm packages, `node:*`) stays
28
+ * an import, so the config shares the application's module instances:
29
+ * `BaseConnector`, the container and every registry keep one identity.
30
+ * - `import.meta.url` / `dirname` / `filename` in each inlined module are
31
+ * replaced with that module's ORIGINAL location, so assets resolved relative
32
+ * to a connector's own folder keep working after inlining. Only real
33
+ * `import.meta` expressions are replaced: text in strings and comments is
34
+ * left alone. `import.meta.resolve()` is not rewritten; resolve from
35
+ * `import.meta.url` instead (`new URL("./asset", import.meta.url)`).
36
+ * - A specifier that matches a tsconfig `paths` pattern is inlined only when it
37
+ * resolves to a file outside `node_modules`; a catch-all pattern such as
38
+ * `"*": ["./types/*"]` never pulls a package in.
39
+ *
40
+ * Returns the bundled source. The caller writes it beside the config (so the
41
+ * external imports resolve from the project's `node_modules`) and imports it.
42
+ */
43
+ async function bundleWarlockConfig(configPath) {
44
+ const { build } = await import("esbuild");
45
+ const projectRoot = path.dirname(configPath);
46
+ const tsconfig = getTsconfig(projectRoot);
47
+ const isPathAlias = createPathAliasMatcher(tsconfig?.config.compilerOptions?.paths);
48
+ const output = (await build({
49
+ entryPoints: [configPath],
50
+ absWorkingDir: projectRoot,
51
+ bundle: true,
52
+ write: false,
53
+ format: "esm",
54
+ platform: "node",
55
+ target: `node${process.versions.node.split(".")[0]}`,
56
+ tsconfig: tsconfig?.path,
57
+ logLevel: "silent",
58
+ plugins: [{
59
+ name: "warlock-config-local-graph",
60
+ setup(pluginBuild) {
61
+ pluginBuild.onResolve({ filter: /^[^./]/ }, async (args) => {
62
+ if (args.kind === "entry-point" || path.isAbsolute(args.path)) return void 0;
63
+ if (args.pluginData?.[ALIAS_PROBE]) return void 0;
64
+ if (!isPathAlias(args.path)) return {
65
+ path: args.path,
66
+ external: true
67
+ };
68
+ const resolved = await pluginBuild.resolve(args.path, {
69
+ kind: args.kind,
70
+ resolveDir: args.resolveDir,
71
+ importer: args.importer,
72
+ pluginData: { [ALIAS_PROBE]: true }
73
+ });
74
+ if (resolved.errors.length > 0 || resolved.external || isInNodeModules(resolved.path)) return {
75
+ path: args.path,
76
+ external: true
77
+ };
78
+ return { path: resolved.path };
79
+ });
80
+ pluginBuild.onLoad({ filter: LOCAL_SOURCE_FILTER }, async (args) => {
81
+ if (isInNodeModules(args.path)) return void 0;
82
+ const source = await readFile(args.path, "utf8");
83
+ const loader = loaderFor(args.path);
84
+ if (!source.includes("import.meta")) return {
85
+ contents: source,
86
+ loader,
87
+ resolveDir: path.dirname(args.path)
88
+ };
89
+ const { transform } = await import("esbuild");
90
+ return {
91
+ contents: (await transform(source, {
92
+ loader,
93
+ jsx: "preserve",
94
+ sourcefile: args.path,
95
+ tsconfigRaw: { compilerOptions: tsconfig?.config.compilerOptions },
96
+ define: {
97
+ "import.meta.url": JSON.stringify(pathToFileURL(args.path).href),
98
+ "import.meta.dirname": JSON.stringify(path.dirname(args.path)),
99
+ "import.meta.filename": JSON.stringify(args.path)
100
+ }
101
+ })).code,
102
+ loader: loader === "tsx" || loader === "jsx" ? "jsx" : "js",
103
+ resolveDir: path.dirname(args.path)
104
+ };
105
+ });
106
+ }
107
+ }]
108
+ })).outputFiles?.[0];
109
+ if (!output) throw new Error(`esbuild produced no output while bundling ${configPath}`);
110
+ return output.text;
111
+ }
112
+ /**
113
+ * True when a bare specifier matches one of the tsconfig `paths` patterns.
114
+ *
115
+ * Only explicit `paths` count. `baseUrl` alone makes TypeScript (and
116
+ * `get-tsconfig`'s `resolvePathAlias`) offer a candidate for EVERY bare
117
+ * specifier, which would inline packages such as `@warlock.js/core` into the
118
+ * bundle and split `BaseConnector` and the container into two identities.
119
+ */
120
+ function createPathAliasMatcher(paths) {
121
+ const patterns = Object.keys(paths ?? {});
122
+ return (specifier) => patterns.some((pattern) => {
123
+ const star = pattern.indexOf("*");
124
+ if (star === -1) return specifier === pattern;
125
+ const prefix = pattern.slice(0, star);
126
+ const suffix = pattern.slice(star + 1);
127
+ return specifier.length >= prefix.length + suffix.length && specifier.startsWith(prefix) && specifier.endsWith(suffix);
128
+ });
129
+ }
130
+ /**
131
+ * True when `filePath` lies inside a `node_modules` folder: a package, never
132
+ * inlined into the config bundle.
133
+ */
134
+ function isInNodeModules(filePath) {
135
+ return path.normalize(filePath).split(path.sep).includes("node_modules");
136
+ }
137
+ /**
138
+ * The esbuild loader for a local source file, by extension.
139
+ */
140
+ function loaderFor(filePath) {
141
+ const extension = path.extname(filePath).replace(/^\.[cm]?/, "");
142
+ if (extension === "tsx" || extension === "jsx" || extension === "ts") return extension;
143
+ return "js";
144
+ }
145
+
146
+ //#endregion
147
+ export { bundleWarlockConfig };
148
+ //# sourceMappingURL=bundle-config.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle-config.mjs","names":[],"sources":["../../../../../../../../packages/core/src/warlock-config/bundle-config.ts"],"sourcesContent":["import type { TsconfigRaw } from \"esbuild\";\nimport { getTsconfig } from \"get-tsconfig\";\nimport { readFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\n\n/**\n * Local source files the config bundle inlines. Everything else a config can\n * import (JSON, assets) is left to esbuild's own loaders.\n */\nconst LOCAL_SOURCE_FILTER = /\\.(?:[cm]?[jt]sx?)$/;\n\n/**\n * Marks the nested `build.resolve()` the alias check makes, so the plugin's\n * own resolver does not intercept it again.\n */\nconst ALIAS_PROBE = Symbol(\"warlock-config-alias-probe\");\n\n/**\n * Bundle `warlock.config.ts` and its LOCAL import graph into one ESM module.\n *\n * Used when the runtime cannot import the config as written: Node without\n * native TypeScript, or native TypeScript meeting what only a TS toolchain\n * resolves (an extensionless `./src/connectors/local` import, a tsconfig\n * `paths` alias such as `app/*`).\n *\n * - Relative, absolute and tsconfig-`paths` imports are inlined, so the whole\n * local graph is transpiled and resolved the way TypeScript sees it.\n * - Every other bare specifier (`@warlock.js/*`, npm packages, `node:*`) stays\n * an import, so the config shares the application's module instances:\n * `BaseConnector`, the container and every registry keep one identity.\n * - `import.meta.url` / `dirname` / `filename` in each inlined module are\n * replaced with that module's ORIGINAL location, so assets resolved relative\n * to a connector's own folder keep working after inlining. Only real\n * `import.meta` expressions are replaced: text in strings and comments is\n * left alone. `import.meta.resolve()` is not rewritten; resolve from\n * `import.meta.url` instead (`new URL(\"./asset\", import.meta.url)`).\n * - A specifier that matches a tsconfig `paths` pattern is inlined only when it\n * resolves to a file outside `node_modules`; a catch-all pattern such as\n * `\"*\": [\"./types/*\"]` never pulls a package in.\n *\n * Returns the bundled source. The caller writes it beside the config (so the\n * external imports resolve from the project's `node_modules`) and imports it.\n */\nexport async function bundleWarlockConfig(configPath: string): Promise<string> {\n const { build } = await import(\"esbuild\");\n const projectRoot = path.dirname(configPath);\n const tsconfig = getTsconfig(projectRoot);\n\n const isPathAlias = createPathAliasMatcher(tsconfig?.config.compilerOptions?.paths);\n\n const result = await build({\n entryPoints: [configPath],\n absWorkingDir: projectRoot,\n bundle: true,\n write: false,\n format: \"esm\",\n platform: \"node\",\n target: `node${process.versions.node.split(\".\")[0]}`,\n tsconfig: tsconfig?.path,\n logLevel: \"silent\",\n plugins: [\n {\n name: \"warlock-config-local-graph\",\n setup(pluginBuild) {\n // Keep packages external, but let tsconfig `paths` aliases through to\n // esbuild's resolver: `app/connectors/local` is local code, not a package.\n pluginBuild.onResolve({ filter: /^[^./]/ }, async (args) => {\n if (args.kind === \"entry-point\" || path.isAbsolute(args.path)) return undefined;\n\n if (args.pluginData?.[ALIAS_PROBE]) return undefined;\n\n if (!isPathAlias(args.path)) return { path: args.path, external: true };\n\n // A `paths` pattern can match package names too (a catch-all `\"*\"`\n // does). Resolve it the way TypeScript would and inline it only\n // when it lands on the project's own source.\n const resolved = await pluginBuild.resolve(args.path, {\n kind: args.kind,\n resolveDir: args.resolveDir,\n importer: args.importer,\n pluginData: { [ALIAS_PROBE]: true },\n });\n\n if (resolved.errors.length > 0 || resolved.external || isInNodeModules(resolved.path)) {\n return { path: args.path, external: true };\n }\n\n return { path: resolved.path };\n });\n\n pluginBuild.onLoad({ filter: LOCAL_SOURCE_FILTER }, async (args) => {\n if (isInNodeModules(args.path)) return undefined;\n\n const source = await readFile(args.path, \"utf8\");\n const loader = loaderFor(args.path);\n\n if (!source.includes(\"import.meta\")) {\n return { contents: source, loader, resolveDir: path.dirname(args.path) };\n }\n\n // `define` replaces only real `import.meta.*` expressions; text in\n // strings, templates and comments is untouched. JSX is preserved so\n // the bundle compiles it with the project's own JSX settings.\n const { transform } = await import(\"esbuild\");\n const transformed = await transform(source, {\n loader,\n jsx: \"preserve\",\n sourcefile: args.path,\n tsconfigRaw: {\n compilerOptions: tsconfig?.config.compilerOptions as TsconfigRaw[\"compilerOptions\"],\n },\n define: {\n \"import.meta.url\": JSON.stringify(pathToFileURL(args.path).href),\n \"import.meta.dirname\": JSON.stringify(path.dirname(args.path)),\n \"import.meta.filename\": JSON.stringify(args.path),\n },\n });\n\n return {\n contents: transformed.code,\n loader: loader === \"tsx\" || loader === \"jsx\" ? \"jsx\" : \"js\",\n resolveDir: path.dirname(args.path),\n };\n });\n },\n },\n ],\n });\n\n const output = result.outputFiles?.[0];\n\n if (!output) {\n throw new Error(`esbuild produced no output while bundling ${configPath}`);\n }\n\n return output.text;\n}\n\n/**\n * True when a bare specifier matches one of the tsconfig `paths` patterns.\n *\n * Only explicit `paths` count. `baseUrl` alone makes TypeScript (and\n * `get-tsconfig`'s `resolvePathAlias`) offer a candidate for EVERY bare\n * specifier, which would inline packages such as `@warlock.js/core` into the\n * bundle and split `BaseConnector` and the container into two identities.\n */\nfunction createPathAliasMatcher(paths: Record<string, string[]> | undefined) {\n const patterns = Object.keys(paths ?? {});\n\n return (specifier: string) =>\n patterns.some((pattern) => {\n const star = pattern.indexOf(\"*\");\n\n if (star === -1) return specifier === pattern;\n\n const prefix = pattern.slice(0, star);\n const suffix = pattern.slice(star + 1);\n\n return (\n specifier.length >= prefix.length + suffix.length &&\n specifier.startsWith(prefix) &&\n specifier.endsWith(suffix)\n );\n });\n}\n\n/**\n * True when `filePath` lies inside a `node_modules` folder: a package, never\n * inlined into the config bundle.\n */\nfunction isInNodeModules(filePath: string): boolean {\n return path.normalize(filePath).split(path.sep).includes(\"node_modules\");\n}\n\n/**\n * The esbuild loader for a local source file, by extension.\n */\nfunction loaderFor(filePath: string): \"ts\" | \"tsx\" | \"js\" | \"jsx\" {\n const extension = path.extname(filePath).replace(/^\\.[cm]?/, \"\");\n\n if (extension === \"tsx\" || extension === \"jsx\" || extension === \"ts\") return extension;\n\n return \"js\";\n}\n"],"mappings":";;;;;;;;;;AAUA,MAAM,sBAAsB;;;;;AAM5B,MAAM,cAAc,OAAO,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BvD,eAAsB,oBAAoB,YAAqC;CAC7E,MAAM,EAAE,UAAU,MAAM,OAAO;CAC/B,MAAM,cAAc,KAAK,QAAQ,UAAU;CAC3C,MAAM,WAAW,YAAY,WAAW;CAExC,MAAM,cAAc,uBAAuB,UAAU,OAAO,iBAAiB,KAAK;CAiFlF,MAAM,UAAS,MA/EM,MAAM;EACzB,aAAa,CAAC,UAAU;EACxB,eAAe;EACf,QAAQ;EACR,OAAO;EACP,QAAQ;EACR,UAAU;EACV,QAAQ,OAAO,QAAQ,SAAS,KAAK,MAAM,GAAG,CAAC,CAAC;EAChD,UAAU,UAAU;EACpB,UAAU;EACV,SAAS,CACP;GACE,MAAM;GACN,MAAM,aAAa;IAGjB,YAAY,UAAU,EAAE,QAAQ,SAAS,GAAG,OAAO,SAAS;KAC1D,IAAI,KAAK,SAAS,iBAAiB,KAAK,WAAW,KAAK,IAAI,GAAG,OAAO;KAEtE,IAAI,KAAK,aAAa,cAAc,OAAO;KAE3C,IAAI,CAAC,YAAY,KAAK,IAAI,GAAG,OAAO;MAAE,MAAM,KAAK;MAAM,UAAU;KAAK;KAKtE,MAAM,WAAW,MAAM,YAAY,QAAQ,KAAK,MAAM;MACpD,MAAM,KAAK;MACX,YAAY,KAAK;MACjB,UAAU,KAAK;MACf,YAAY,GAAG,cAAc,KAAK;KACpC,CAAC;KAED,IAAI,SAAS,OAAO,SAAS,KAAK,SAAS,YAAY,gBAAgB,SAAS,IAAI,GAClF,OAAO;MAAE,MAAM,KAAK;MAAM,UAAU;KAAK;KAG3C,OAAO,EAAE,MAAM,SAAS,KAAK;IAC/B,CAAC;IAED,YAAY,OAAO,EAAE,QAAQ,oBAAoB,GAAG,OAAO,SAAS;KAClE,IAAI,gBAAgB,KAAK,IAAI,GAAG,OAAO;KAEvC,MAAM,SAAS,MAAM,SAAS,KAAK,MAAM,MAAM;KAC/C,MAAM,SAAS,UAAU,KAAK,IAAI;KAElC,IAAI,CAAC,OAAO,SAAS,aAAa,GAChC,OAAO;MAAE,UAAU;MAAQ;MAAQ,YAAY,KAAK,QAAQ,KAAK,IAAI;KAAE;KAMzE,MAAM,EAAE,cAAc,MAAM,OAAO;KAenC,OAAO;MACL,WAAU,MAfc,UAAU,QAAQ;OAC1C;OACA,KAAK;OACL,YAAY,KAAK;OACjB,aAAa,EACX,iBAAiB,UAAU,OAAO,gBACpC;OACA,QAAQ;QACN,mBAAmB,KAAK,UAAU,cAAc,KAAK,IAAI,CAAC,CAAC,IAAI;QAC/D,uBAAuB,KAAK,UAAU,KAAK,QAAQ,KAAK,IAAI,CAAC;QAC7D,wBAAwB,KAAK,UAAU,KAAK,IAAI;OAClD;MACF,CAAC,EAGsB,CAAC;MACtB,QAAQ,WAAW,SAAS,WAAW,QAAQ,QAAQ;MACvD,YAAY,KAAK,QAAQ,KAAK,IAAI;KACpC;IACF,CAAC;GACH;EACF,CACF;CACF,CAAC,EAEoB,CAAC,cAAc;CAEpC,IAAI,CAAC,QACH,MAAM,IAAI,MAAM,6CAA6C,YAAY;CAG3E,OAAO,OAAO;AAChB;;;;;;;;;AAUA,SAAS,uBAAuB,OAA6C;CAC3E,MAAM,WAAW,OAAO,KAAK,SAAS,CAAC,CAAC;CAExC,QAAQ,cACN,SAAS,MAAM,YAAY;EACzB,MAAM,OAAO,QAAQ,QAAQ,GAAG;EAEhC,IAAI,SAAS,IAAI,OAAO,cAAc;EAEtC,MAAM,SAAS,QAAQ,MAAM,GAAG,IAAI;EACpC,MAAM,SAAS,QAAQ,MAAM,OAAO,CAAC;EAErC,OACE,UAAU,UAAU,OAAO,SAAS,OAAO,UAC3C,UAAU,WAAW,MAAM,KAC3B,UAAU,SAAS,MAAM;CAE7B,CAAC;AACL;;;;;AAMA,SAAS,gBAAgB,UAA2B;CAClD,OAAO,KAAK,UAAU,QAAQ,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,SAAS,cAAc;AACzE;;;;AAKA,SAAS,UAAU,UAA+C;CAChE,MAAM,YAAY,KAAK,QAAQ,QAAQ,CAAC,CAAC,QAAQ,YAAY,EAAE;CAE/D,IAAI,cAAc,SAAS,cAAc,SAAS,cAAc,MAAM,OAAO;CAE7E,OAAO;AACT"}
@@ -1,4 +1,4 @@
1
- //#region ../core/src/warlock-config/default-configurations.ts
1
+ //#region ../../packages/core/src/warlock-config/default-configurations.ts
2
2
  const defaultWarlockConfigurations = { build: {
3
3
  outdir: process.cwd() + "/dist",
4
4
  outFile: "app.js",
@@ -1 +1 @@
1
- {"version":3,"file":"default-configurations.mjs","names":[],"sources":["../../../../../../../core/src/warlock-config/default-configurations.ts"],"sourcesContent":["import { type WarlockConfig } from \"./types\";\n\nexport const defaultWarlockConfigurations: WarlockConfig = {\n build: {\n outdir: process.cwd() + \"/dist\",\n outFile: \"app.js\",\n routeRegistrationTimeoutMs: 30_000,\n sourcemap: true,\n minify: true,\n },\n};\n"],"mappings":";AAEA,MAAa,+BAA8C,EACzD,OAAO;CACL,QAAQ,QAAQ,IAAI,IAAI;CACxB,SAAS;CACT,4BAA4B;CAC5B,WAAW;CACX,QAAQ;AACV,EACF"}
1
+ {"version":3,"file":"default-configurations.mjs","names":[],"sources":["../../../../../../../../packages/core/src/warlock-config/default-configurations.ts"],"sourcesContent":["import { type WarlockConfig } from \"./types\";\n\nexport const defaultWarlockConfigurations: WarlockConfig = {\n build: {\n outdir: process.cwd() + \"/dist\",\n outFile: \"app.js\",\n routeRegistrationTimeoutMs: 30_000,\n sourcemap: true,\n minify: true,\n },\n};\n"],"mappings":";AAEA,MAAa,+BAA8C,EACzD,OAAO;CACL,QAAQ,QAAQ,IAAI,IAAI;CACxB,SAAS;CACT,4BAA4B;CAC5B,WAAW;CACX,QAAQ;AACV,EACF"}
@@ -1,6 +1,6 @@
1
1
  import { WarlockConfig } from "./types.mjs";
2
2
 
3
- //#region ../core/src/warlock-config/define-config.d.ts
3
+ //#region ../../packages/core/src/warlock-config/define-config.d.ts
4
4
  declare function defineConfig(options: WarlockConfig): WarlockConfig;
5
5
  //#endregion
6
6
  export { defineConfig };
@@ -1 +1 @@
1
- {"version":3,"file":"define-config.d.mts","names":[],"sources":["../../../../../../../core/src/warlock-config/define-config.ts"],"mappings":";;;iBAKgB,YAAA,CAAa,OAAA,EAAS,aAAA,GAQsB,aAAa"}
1
+ {"version":3,"file":"define-config.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/warlock-config/define-config.ts"],"mappings":";;;iBAKgB,YAAA,CAAa,OAAA,EAAS,aAAA,GAQsB,aAAa"}
@@ -2,7 +2,7 @@ import { defaultWarlockConfigurations } from "./default-configurations.mjs";
2
2
  import { normalizeBuildConfig } from "./normalize-build-config.mjs";
3
3
  import { merge } from "@mongez/reinforcements";
4
4
 
5
- //#region ../core/src/warlock-config/define-config.ts
5
+ //#region ../../packages/core/src/warlock-config/define-config.ts
6
6
  function defineConfig(options) {
7
7
  return merge(defaultWarlockConfigurations, options.build ? {
8
8
  ...options,
@@ -1 +1 @@
1
- {"version":3,"file":"define-config.mjs","names":[],"sources":["../../../../../../../core/src/warlock-config/define-config.ts"],"sourcesContent":["import { merge } from \"@mongez/reinforcements\";\nimport { defaultWarlockConfigurations } from \"./default-configurations\";\nimport { normalizeBuildConfig } from \"./normalize-build-config\";\nimport type { WarlockConfig } from \"./types\";\n\nexport function defineConfig(options: WarlockConfig) {\n // Fold `build.outDirectory` into `build.outdir` BEFORE merging. Afterwards\n // is too late: the defaults supply an `outdir`, so the alias could never\n // tell \"the user set outdir\" from \"the default did\" and would be dropped.\n const normalized: WarlockConfig = options.build\n ? { ...options, build: normalizeBuildConfig(options.build) }\n : options;\n\n return merge(defaultWarlockConfigurations, normalized) as WarlockConfig;\n}\n"],"mappings":";;;;;AAKA,SAAgB,aAAa,SAAwB;CAQnD,OAAO,MAAM,8BAJqB,QAAQ,QACtC;EAAE,GAAG;EAAS,OAAO,qBAAqB,QAAQ,KAAK;CAAE,IACzD,OAEiD;AACvD"}
1
+ {"version":3,"file":"define-config.mjs","names":[],"sources":["../../../../../../../../packages/core/src/warlock-config/define-config.ts"],"sourcesContent":["import { merge } from \"@mongez/reinforcements\";\nimport { defaultWarlockConfigurations } from \"./default-configurations\";\nimport { normalizeBuildConfig } from \"./normalize-build-config\";\nimport type { WarlockConfig } from \"./types\";\n\nexport function defineConfig(options: WarlockConfig) {\n // Fold `build.outDirectory` into `build.outdir` BEFORE merging. Afterwards\n // is too late: the defaults supply an `outdir`, so the alias could never\n // tell \"the user set outdir\" from \"the default did\" and would be dropped.\n const normalized: WarlockConfig = options.build\n ? { ...options, build: normalizeBuildConfig(options.build) }\n : options;\n\n return merge(defaultWarlockConfigurations, normalized) as WarlockConfig;\n}\n"],"mappings":";;;;;AAKA,SAAgB,aAAa,SAAwB;CAQnD,OAAO,MAAM,8BAJqB,QAAQ,QACtC;EAAE,GAAG;EAAS,OAAO,qBAAqB,QAAQ,KAAK;CAAE,IACzD,OAEiD;AACvD"}
@@ -1,3 +1,3 @@
1
1
  import { WarlockConfig } from "./types.mjs";
2
2
  import { defineConfig } from "./define-config.mjs";
3
- import { WarlockConfigManager, isUnknownTsExtensionError, warlockConfigManager } from "./warlock-config.manager.mjs";
3
+ import { WarlockConfigManager, isUnknownTsExtensionError, isUnresolvedConfigImportError, isUnsupportedTypeStrippingError, warlockConfigManager } from "./warlock-config.manager.mjs";
@@ -1,4 +1,4 @@
1
- import { WarlockConfigManager, isUnknownTsExtensionError, warlockConfigManager } from "./warlock-config.manager.mjs";
1
+ import { WarlockConfigManager, isUnknownTsExtensionError, isUnresolvedConfigImportError, isUnsupportedTypeStrippingError, warlockConfigManager } from "./warlock-config.manager.mjs";
2
2
  import { defineConfig } from "./define-config.mjs";
3
3
 
4
4
  export { };
@@ -1,4 +1,4 @@
1
- //#region ../core/src/warlock-config/normalize-build-config.ts
1
+ //#region ../../packages/core/src/warlock-config/normalize-build-config.ts
2
2
  /**
3
3
  * Fold the `outDirectory` alias into the canonical `outdir`.
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"normalize-build-config.mjs","names":[],"sources":["../../../../../../../core/src/warlock-config/normalize-build-config.ts"],"sourcesContent":["import type { WarlockConfig } from \"./types\";\n\ntype BuildConfig = NonNullable<WarlockConfig[\"build\"]>;\n\n/**\n * Fold the `outDirectory` alias into the canonical `outdir`.\n *\n * `outDirectory` is the name the documentation used for several releases\n * while the code only ever read `outdir`, so a config written from the docs\n * was silently ignored and the bundle still landed in `dist/`. Accepting both\n * keeps those configs working; `outdir` wins when both are set, since that is\n * the name esbuild uses and the one we tell people to prefer.\n *\n * Returns the input untouched when there is nothing to fold, so the common\n * case allocates nothing.\n */\nexport function normalizeBuildConfig<T extends BuildConfig>(\n build: T,\n): T & Pick<BuildConfig, \"outdir\"> {\n if (!build.outDirectory || build.outdir) {\n return build;\n }\n\n return { ...build, outdir: build.outDirectory };\n}\n"],"mappings":";;;;;;;;;;;;;AAgBA,SAAgB,qBACd,OACiC;CACjC,IAAI,CAAC,MAAM,gBAAgB,MAAM,QAC/B,OAAO;CAGT,OAAO;EAAE,GAAG;EAAO,QAAQ,MAAM;CAAa;AAChD"}
1
+ {"version":3,"file":"normalize-build-config.mjs","names":[],"sources":["../../../../../../../../packages/core/src/warlock-config/normalize-build-config.ts"],"sourcesContent":["import type { WarlockConfig } from \"./types\";\n\ntype BuildConfig = NonNullable<WarlockConfig[\"build\"]>;\n\n/**\n * Fold the `outDirectory` alias into the canonical `outdir`.\n *\n * `outDirectory` is the name the documentation used for several releases\n * while the code only ever read `outdir`, so a config written from the docs\n * was silently ignored and the bundle still landed in `dist/`. Accepting both\n * keeps those configs working; `outdir` wins when both are set, since that is\n * the name esbuild uses and the one we tell people to prefer.\n *\n * Returns the input untouched when there is nothing to fold, so the common\n * case allocates nothing.\n */\nexport function normalizeBuildConfig<T extends BuildConfig>(\n build: T,\n): T & Pick<BuildConfig, \"outdir\"> {\n if (!build.outDirectory || build.outdir) {\n return build;\n }\n\n return { ...build, outdir: build.outDirectory };\n}\n"],"mappings":";;;;;;;;;;;;;AAgBA,SAAgB,qBACd,OACiC;CACjC,IAAI,CAAC,MAAM,gBAAgB,MAAM,QAC/B,OAAO;CAGT,OAAO;EAAE,GAAG;EAAO,QAAQ,MAAM;CAAa;AAChD"}
@@ -4,7 +4,7 @@ import { CLICommand } from "../commands/cli-command.mjs";
4
4
  import { MigrationConstructor } from "@warlock.js/cascade";
5
5
  import { BuildOptions } from "esbuild";
6
6
 
7
- //#region ../core/src/warlock-config/types.d.ts
7
+ //#region ../../packages/core/src/warlock-config/types.d.ts
8
8
  /**
9
9
  * Resolved Warlock Configuration
10
10
  *
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.mts","names":[],"sources":["../../../../../../../core/src/warlock-config/types.ts"],"mappings":";;;;;;;;;AAWA;;;KAAY,aAAA;EA8BF;;;EA1BR,MAAA;IAsOqB;;;IAlOnB,IAAA;IAJF;;;IAQE,IAAA;IAkBF;;;IAdE,cAAA;EAAA;EAqCA;;;;;;;;;;;EAvBF,KAAA,GAAQ,IAAA,CAAK,YAAA;IAsHX;;;;;IAhHA,MAAA;IA+IA;;;;;;;;;;IApIA,YAAA;IAsNO;AAAA;;;;IAhNP,OAAA;;;;;;;IAOA,0BAAA;;;;;;;;;;;;;;;;;IAiBA,YAAA;;;;;;;;;;;;;;;;IAgBA,OAAA;;;;;;IAMA,MAAA;;;;;;IAMA,SAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;EA2BF,UAAA,GAAa,SAAA;;;;EAKb,GAAA;IACE,QAAA,GAAW,UAAA;EAAA;;;;EAMb,SAAA;;;;IAIE,KAAA;;;;;;MAME,OAAA;;;;;;MAMA,OAAA;IAAA;;;;IAKF,cAAA,GAAiB,yBAAA;;;;;IAKjB,eAAA;;;;;;;;;IASA,eAAA;;;;;;;;;IASA,qBAAA;;;;;;;;;;IAUA,mBAAA;;;;;;;;;;;;IAYA,OAAA;EAAA;;;;EAMF,QAAA;;;;;;;;;;;;;;;;;;IAkBE,UAAA,GAAa,KAAA,CAAM,oBAAA;EAAA;;;;;;;EASrB,OAAA;;;;;;;;;IASE,OAAA;;;;;;;;IASA,OAAA;EAAA;AAAA"}
1
+ {"version":3,"file":"types.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/warlock-config/types.ts"],"mappings":";;;;;;;;;AAWA;;;KAAY,aAAA;EA8BF;;;EA1BR,MAAA;IAsOqB;;;IAlOnB,IAAA;IAJF;;;IAQE,IAAA;IAkBF;;;IAdE,cAAA;EAAA;EAqCA;;;;;;;;;;;EAvBF,KAAA,GAAQ,IAAA,CAAK,YAAA;IAsHX;;;;;IAhHA,MAAA;IA+IA;;;;;;;;;;IApIA,YAAA;IAsNO;AAAA;;;;IAhNP,OAAA;;;;;;;IAOA,0BAAA;;;;;;;;;;;;;;;;;IAiBA,YAAA;;;;;;;;;;;;;;;;IAgBA,OAAA;;;;;;IAMA,MAAA;;;;;;IAMA,SAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;EA2BF,UAAA,GAAa,SAAA;;;;EAKb,GAAA;IACE,QAAA,GAAW,UAAA;EAAA;;;;EAMb,SAAA;;;;IAIE,KAAA;;;;;;MAME,OAAA;;;;;;MAMA,OAAA;IAAA;;;;IAKF,cAAA,GAAiB,yBAAA;;;;;IAKjB,eAAA;;;;;;;;;IASA,eAAA;;;;;;;;;IASA,qBAAA;;;;;;;;;;IAUA,mBAAA;;;;;;;;;;;;IAYA,OAAA;EAAA;;;;EAMF,QAAA;;;;;;;;;;;;;;;;;;IAkBE,UAAA,GAAa,KAAA,CAAM,oBAAA;EAAA;;;;;;;EASrB,OAAA;;;;;;;;;IASE,OAAA;;;;;;;;IASA,OAAA;EAAA;AAAA"}
@@ -1,6 +1,6 @@
1
1
  import { WarlockConfig } from "./types.mjs";
2
2
 
3
- //#region ../core/src/warlock-config/warlock-config.manager.d.ts
3
+ //#region ../../packages/core/src/warlock-config/warlock-config.manager.d.ts
4
4
  /**
5
5
  * True when `error` is Node's "this runtime can't import a `.ts` file" error.
6
6
  *
@@ -10,6 +10,27 @@ import { WarlockConfig } from "./types.mjs";
10
10
  * the signal to fall back to transpiling the config ourselves.
11
11
  */
12
12
  declare function isUnknownTsExtensionError(error: unknown): boolean;
13
+ /**
14
+ * True when `error` is Node failing to RESOLVE an import of the config's OWN
15
+ * graph: an extensionless relative import (`./src/connectors/local`), a
16
+ * directory import, or a tsconfig `paths` alias (`app/connectors`) — all of
17
+ * which only a TypeScript toolchain resolves. Native type stripping
18
+ * (Node ≥ 22.18) loads `warlock.config.ts` itself, then fails here.
19
+ *
20
+ * A package that is genuinely not installed is NOT a fallback case: the error
21
+ * names a bare specifier that matches no `paths` pattern, and it is rethrown
22
+ * as is. Neither is a missing module imported from inside `node_modules`.
23
+ *
24
+ * `pathAliases` are the tsconfig `paths` patterns (`app/*`). When the message
25
+ * cannot be parsed the error is treated as a graph error, as before.
26
+ */
27
+ declare function isUnresolvedConfigImportError(error: unknown, pathAliases?: readonly string[]): boolean;
28
+ /**
29
+ * True when `error` is native type stripping refusing TypeScript it cannot
30
+ * strip (an `enum`, a `namespace`, a parameter property) or a `.ts` file under
31
+ * `node_modules`. Both are raised while loading, before the graph runs.
32
+ */
33
+ declare function isUnsupportedTypeStrippingError(error: unknown): boolean;
13
34
  /**
14
35
  * Warlock Config Manager
15
36
  *
@@ -39,12 +60,16 @@ declare class WarlockConfigManager {
39
60
  */
40
61
  private doLoad;
41
62
  /**
42
- * Fallback config loader for runtimes without native TypeScript support.
63
+ * Fallback config loader for runtimes that cannot import the config as written.
43
64
  *
44
- * Transpiles `warlock.config.ts` with esbuild (already a core dependency),
45
- * writes the result as a sibling `.mjs` — so the config's own imports (bare
46
- * `@warlock.js/*` and any relative paths) resolve exactly as they would from
47
- * the original location — imports it, then removes the temp file.
65
+ * Bundles `warlock.config.ts` with its LOCAL import graph (relative imports,
66
+ * extensionless TS imports, tsconfig `paths` aliases) through esbuild, keeping
67
+ * every package external so `BaseConnector`, the container and other
68
+ * registries keep the application's identity (see `bundleWarlockConfig`).
69
+ * The bundle is written as a sibling `.mjs` — so its external imports resolve
70
+ * from the project exactly as they would from the original config — imported
71
+ * once, then removed whether it loaded or threw. An error thrown by the
72
+ * user's config propagates unchanged.
48
73
  */
49
74
  private loadViaEsbuild;
50
75
  /**
@@ -100,5 +125,5 @@ declare class WarlockConfigManager {
100
125
  */
101
126
  declare const warlockConfigManager: WarlockConfigManager;
102
127
  //#endregion
103
- export { WarlockConfigManager, isUnknownTsExtensionError, warlockConfigManager };
128
+ export { WarlockConfigManager, isUnknownTsExtensionError, isUnresolvedConfigImportError, isUnsupportedTypeStrippingError, warlockConfigManager };
104
129
  //# sourceMappingURL=warlock-config.manager.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"warlock-config.manager.d.mts","names":[],"sources":["../../../../../../../core/src/warlock-config/warlock-config.manager.ts"],"mappings":";;;;;AAgBA;;;;AAAwD;AAaxD;iBAbgB,yBAAA,CAA0B,KAAc;;;;;;;cAa3C,oBAAA;EAgIR;;;EAAA,QA5HK,MAAA;EAgJS;;;EAAA,QA3IT,OAAA;EA4IL;;;;;EArIU,IAAA,IAAQ,OAAA,CAAQ,aAAA;EAPrB;;;;;;EAAA,QAqCM,MAAA;EA+EH;;;;;;;;EAAA,QAtCG,cAAA;EA2DR;;;;;;;;;;;EArBC,GAAA,mBAAsB,aAAA,EAC3B,GAAA,EAAK,GAAA,EACL,YAAA,GAAe,aAAA,CAAc,GAAA,IAC5B,aAAA,CAAc,GAAA;EAsCV;;;;;AAWuB;AAoBhC;;;;EAnDQ,OAAA,mBAA0B,aAAA,EAC9B,GAAA,EAAK,GAAA,EACL,YAAA,GAAe,aAAA,CAAc,GAAA,IAC5B,OAAA,CAAQ,aAAA,CAAc,GAAA;;;;MAQd,QAAA;;;;;;EASJ,MAAA,IAAU,aAAA;;;;EAWJ,MAAA,IAAU,OAAA;AAAA;;;;;;;;;;;;;;cAoBZ,oBAAA,EAAoB,oBAA6B"}
1
+ {"version":3,"file":"warlock-config.manager.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/warlock-config/warlock-config.manager.ts"],"mappings":";;;;;AAyBA;;;;AAAwD;AAqBxD;iBArBgB,yBAAA,CAA0B,KAAc;;;AAuBnB;AA4BrC;;;;AAA8D;AA+B9D;;;;;;iBA7DgB,6BAAA,CACd,KAAA,WACA,WAAmC;;;;;;iBA4BrB,+BAAA,CAAgC,KAAc;;;;;;;cA+BjD,oBAAA;EA0LmB;;;EAAA,QAtLtB,MAAA;EAYK;;;EAAA,QAPL,OAAA;EA6FM;;;;;EAtFD,IAAA,IAAQ,OAAA,CAAQ,aAAA;EAwHZ;;;;;;EAAA,QA1FH,MAAA;EA6GkB;;;;;;;;;;;;EAAA,QArDlB,cAAA;EAoFS;;AAAO;AAwDhC;;;;AAA8D;;;;EA5GrD,GAAA,mBAAsB,aAAA,EAC3B,GAAA,EAAK,GAAA,EACL,YAAA,GAAe,aAAA,CAAc,GAAA,IAC5B,aAAA,CAAc,GAAA;;;;;;;;;;;EAkBX,OAAA,mBAA0B,aAAA,EAC9B,GAAA,EAAK,GAAA,EACL,YAAA,GAAe,aAAA,CAAc,GAAA,IAC5B,OAAA,CAAQ,aAAA,CAAc,GAAA;;;;MAQd,QAAA;;;;;;EASJ,MAAA,IAAU,aAAA;;;;EAWJ,MAAA,IAAU,OAAA;AAAA;;;;;;;;;;;;;;cAwDZ,oBAAA,EAAoB,oBAA6B"}
@@ -1,12 +1,20 @@
1
1
  import { rootPath } from "../utils/paths.mjs";
2
2
  import "../utils/index.mjs";
3
+ import { bundleWarlockConfig } from "./bundle-config.mjs";
3
4
  import { getDeprecatedConfigWarnings } from "./warn-deprecated-config.mjs";
5
+ import path from "node:path";
4
6
  import { get } from "@mongez/reinforcements";
5
7
  import { fileExistsAsync } from "@warlock.js/fs";
6
- import { readFile, unlink, writeFile } from "node:fs/promises";
8
+ import { unlink, writeFile } from "node:fs/promises";
9
+ import { getTsconfig } from "get-tsconfig";
7
10
  import { pathToFileURL } from "url";
8
11
 
9
- //#region ../core/src/warlock-config/warlock-config.manager.ts
12
+ //#region ../../packages/core/src/warlock-config/warlock-config.manager.ts
13
+ /**
14
+ * `Error` with the ES2022 `cause` option, typed for packages still compiled
15
+ * against an older lib (see `application.ts`).
16
+ */
17
+ const ErrorWithCause = Error;
10
18
  /**
11
19
  * True when `error` is Node's "this runtime can't import a `.ts` file" error.
12
20
  *
@@ -19,6 +27,52 @@ function isUnknownTsExtensionError(error) {
19
27
  return error?.code === "ERR_UNKNOWN_FILE_EXTENSION" || /Unknown file extension "\.tsx?"/.test(String(error?.message));
20
28
  }
21
29
  /**
30
+ * True when `error` is Node failing to RESOLVE an import of the config's OWN
31
+ * graph: an extensionless relative import (`./src/connectors/local`), a
32
+ * directory import, or a tsconfig `paths` alias (`app/connectors`) — all of
33
+ * which only a TypeScript toolchain resolves. Native type stripping
34
+ * (Node ≥ 22.18) loads `warlock.config.ts` itself, then fails here.
35
+ *
36
+ * A package that is genuinely not installed is NOT a fallback case: the error
37
+ * names a bare specifier that matches no `paths` pattern, and it is rethrown
38
+ * as is. Neither is a missing module imported from inside `node_modules`.
39
+ *
40
+ * `pathAliases` are the tsconfig `paths` patterns (`app/*`). When the message
41
+ * cannot be parsed the error is treated as a graph error, as before.
42
+ */
43
+ function isUnresolvedConfigImportError(error, pathAliases = []) {
44
+ const code = error?.code;
45
+ if (code === "ERR_UNSUPPORTED_DIR_IMPORT") return true;
46
+ if (code !== "ERR_MODULE_NOT_FOUND") return false;
47
+ const message = String(error?.message ?? "");
48
+ const match = /Cannot find (module|package) '([^']+)' imported from (.+)$/m.exec(message);
49
+ if (!match) return true;
50
+ const [, kind, specifier = "", importer = ""] = match;
51
+ if (/[\\/]node_modules[\\/]/.test(importer)) return false;
52
+ if (kind === "module") return true;
53
+ return pathAliases.some((pattern) => aliasCovers(pattern, specifier));
54
+ }
55
+ /**
56
+ * True when `error` is native type stripping refusing TypeScript it cannot
57
+ * strip (an `enum`, a `namespace`, a parameter property) or a `.ts` file under
58
+ * `node_modules`. Both are raised while loading, before the graph runs.
59
+ */
60
+ function isUnsupportedTypeStrippingError(error) {
61
+ const code = error?.code;
62
+ return code === "ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX" || code === "ERR_UNSUPPORTED_NODE_MODULES_TYPE_STRIPPING";
63
+ }
64
+ /**
65
+ * True when a tsconfig `paths` pattern can produce `packageName` as the first
66
+ * segment(s) of a specifier: `app/*` covers `app`, `@shared/*` covers
67
+ * `@shared`, a catch-all `*` covers anything.
68
+ */
69
+ function aliasCovers(pattern, packageName) {
70
+ const star = pattern.indexOf("*");
71
+ const prefix = star === -1 ? pattern : pattern.slice(0, star);
72
+ if (prefix === "") return true;
73
+ return prefix === packageName || prefix.startsWith(`${packageName}/`) || packageName.startsWith(prefix);
74
+ }
75
+ /**
22
76
  * Warlock Config Manager
23
77
  *
24
78
  * Manages lazy loading of the pre-compiled warlock.config.js file
@@ -54,30 +108,30 @@ var WarlockConfigManager = class {
54
108
  try {
55
109
  return (await import(pathToFileURL(configPath).href)).default;
56
110
  } catch (error) {
57
- if (isUnknownTsExtensionError(error)) return await this.loadViaEsbuild(configPath);
58
- throw new Error(`Failed to load warlock.config.ts: ${error}`);
111
+ if (isUnknownTsExtensionError(error) || isUnsupportedTypeStrippingError(error) || isUnresolvedConfigImportError(error, configPathAliases(configPath))) return await this.loadViaEsbuild(configPath);
112
+ throw new ErrorWithCause(`Failed to load warlock.config.ts: ${error}`, { cause: error });
59
113
  }
60
114
  }
61
115
  /**
62
- * Fallback config loader for runtimes without native TypeScript support.
116
+ * Fallback config loader for runtimes that cannot import the config as written.
63
117
  *
64
- * Transpiles `warlock.config.ts` with esbuild (already a core dependency),
65
- * writes the result as a sibling `.mjs` — so the config's own imports (bare
66
- * `@warlock.js/*` and any relative paths) resolve exactly as they would from
67
- * the original location — imports it, then removes the temp file.
118
+ * Bundles `warlock.config.ts` with its LOCAL import graph (relative imports,
119
+ * extensionless TS imports, tsconfig `paths` aliases) through esbuild, keeping
120
+ * every package external so `BaseConnector`, the container and other
121
+ * registries keep the application's identity (see `bundleWarlockConfig`).
122
+ * The bundle is written as a sibling `.mjs` — so its external imports resolve
123
+ * from the project exactly as they would from the original config — imported
124
+ * once, then removed whether it loaded or threw. An error thrown by the
125
+ * user's config propagates unchanged.
68
126
  */
69
127
  async loadViaEsbuild(configPath) {
70
- const { transformSync } = await import("esbuild");
71
- const { code } = transformSync(await readFile(configPath, "utf8"), {
72
- loader: "ts",
73
- format: "esm",
74
- target: `node${process.versions.node.split(".")[0]}`,
75
- sourcefile: configPath
76
- });
77
- const compiledPath = configPath.replace(/warlock\.config\.ts$/, `.warlock.config.${process.pid}.mjs`);
128
+ const code = await bundleWarlockConfig(configPath);
129
+ const compiledPath = configPath.replace(/warlock\.config\.ts$/, `.warlock.config.${process.pid}.${Date.now()}.mjs`);
78
130
  await writeFile(compiledPath, code, "utf8");
79
131
  try {
80
132
  return (await import(pathToFileURL(compiledPath).href)).default;
133
+ } catch (error) {
134
+ throw nameOriginalConfig(error, compiledPath, configPath);
81
135
  } finally {
82
136
  await unlink(compiledPath).catch(() => {});
83
137
  }
@@ -136,6 +190,28 @@ var WarlockConfigManager = class {
136
190
  }
137
191
  };
138
192
  /**
193
+ * The tsconfig `paths` patterns of the project holding `configPath`.
194
+ */
195
+ function configPathAliases(configPath) {
196
+ try {
197
+ return Object.keys(getTsconfig(path.dirname(configPath))?.config.compilerOptions?.paths ?? {});
198
+ } catch {
199
+ return [];
200
+ }
201
+ }
202
+ /**
203
+ * A loader error raised by the bundled config names the temporary `.mjs`
204
+ * module. Rewrite it to name `warlock.config.ts`, keeping the original as the
205
+ * cause. An error thrown by the user's own config is returned unchanged.
206
+ */
207
+ function nameOriginalConfig(error, compiledPath, configPath) {
208
+ const code = error?.code;
209
+ if (typeof code !== "string" || !code.startsWith("ERR_")) return error;
210
+ const wrapped = new ErrorWithCause(`Failed to load warlock.config.ts: ${String(error.message ?? error).split(pathToFileURL(compiledPath).href).join(pathToFileURL(configPath).href).split(compiledPath).join(configPath)}`, { cause: error });
211
+ wrapped.code = code;
212
+ return wrapped;
213
+ }
214
+ /**
139
215
  * Exported singleton instance
140
216
  *
141
217
  * @example
@@ -151,5 +227,5 @@ var WarlockConfigManager = class {
151
227
  const warlockConfigManager = new WarlockConfigManager();
152
228
 
153
229
  //#endregion
154
- export { WarlockConfigManager, isUnknownTsExtensionError, warlockConfigManager };
230
+ export { WarlockConfigManager, isUnknownTsExtensionError, isUnresolvedConfigImportError, isUnsupportedTypeStrippingError, warlockConfigManager };
155
231
  //# sourceMappingURL=warlock-config.manager.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"warlock-config.manager.mjs","names":[],"sources":["../../../../../../../core/src/warlock-config/warlock-config.manager.ts"],"sourcesContent":["import { fileExistsAsync } from \"@warlock.js/fs\";\nimport { get } from \"@mongez/reinforcements\";\nimport { readFile, unlink, writeFile } from \"node:fs/promises\";\nimport { pathToFileURL } from \"url\";\nimport { rootPath } from \"../utils\";\nimport { type WarlockConfig } from \"./types\";\nimport { getDeprecatedConfigWarnings } from \"./warn-deprecated-config\";\n\n/**\n * True when `error` is Node's \"this runtime can't import a `.ts` file\" error.\n *\n * Node only executes TypeScript natively from v22.18 / v23.6 onward (earlier\n * 22.x needs `--experimental-strip-types`). On older runtimes a bare\n * `import(\"warlock.config.ts\")` throws `ERR_UNKNOWN_FILE_EXTENSION` — which is\n * the signal to fall back to transpiling the config ourselves.\n */\nexport function isUnknownTsExtensionError(error: unknown): boolean {\n return (\n (error as { code?: string })?.code === \"ERR_UNKNOWN_FILE_EXTENSION\" ||\n /Unknown file extension \"\\.tsx?\"/.test(String((error as Error)?.message))\n );\n}\n\n/**\n * Warlock Config Manager\n *\n * Manages lazy loading of the pre-compiled warlock.config.js file\n * from the .warlock/cache directory.\n */\nexport class WarlockConfigManager {\n /**\n * Cached config instance\n */\n private config?: WarlockConfig;\n\n /**\n * Loading promise to prevent duplicate loads\n */\n private loading?: Promise<WarlockConfig | undefined>;\n\n /**\n * Load warlock.config.js (cached after first load)\n *\n * @returns The resolved Warlock configuration\n */\n public async load(): Promise<WarlockConfig | undefined> {\n // Already loaded\n if (this.config) {\n return this.config;\n }\n\n // Currently loading (prevent duplicate loads)\n if (this.loading) {\n return this.loading;\n }\n\n // Start loading\n this.loading = this.doLoad();\n this.config = await this.loading;\n this.loading = undefined;\n\n // Console, not the logger: this runs before any log channel exists.\n for (const warning of getDeprecatedConfigWarnings(this.config)) {\n console.warn(warning);\n }\n\n return this.config;\n }\n\n /**\n * Internal load implementation\n *\n * The ESM loader hook transpiles `warlock.config.ts` on import — no\n * separate compile-to-disk step is needed.\n */\n private async doLoad(): Promise<WarlockConfig | undefined> {\n const configPath = rootPath(\"warlock.config.ts\");\n\n if (!(await fileExistsAsync(configPath))) {\n // Written straight to the console, NOT through `@warlock.js/logger`.\n // This runs during CLI bootstrap, before `LoggerConnector.start()` has\n // configured a single channel, so a logger call here reaches nobody in\n // any application — the warning would be silently dropped exactly when\n // the user most needs it.\n console.warn(\n \"warlock.config.ts is missing — create it at the project root (see https://warlock.js.org/docs for the config reference)\",\n );\n return;\n }\n\n try {\n const configModule = await import(pathToFileURL(configPath).href);\n return configModule.default;\n } catch (error) {\n // `dev` registers a TS loader hook, and Node ≥ 22.18 / 23.6 strips types\n // natively — in both cases the direct import above works. But `build` /\n // `start` register no hook, so on an older Node the import throws\n // ERR_UNKNOWN_FILE_EXTENSION. Transpile the config with esbuild ourselves\n // so config loading is Node-version-independent rather than relying on an\n // experimental runtime feature.\n if (isUnknownTsExtensionError(error)) {\n return await this.loadViaEsbuild(configPath);\n }\n\n throw new Error(`Failed to load warlock.config.ts: ${error}`);\n }\n }\n\n /**\n * Fallback config loader for runtimes without native TypeScript support.\n *\n * Transpiles `warlock.config.ts` with esbuild (already a core dependency),\n * writes the result as a sibling `.mjs` — so the config's own imports (bare\n * `@warlock.js/*` and any relative paths) resolve exactly as they would from\n * the original location — imports it, then removes the temp file.\n */\n private async loadViaEsbuild(configPath: string): Promise<WarlockConfig | undefined> {\n const { transformSync } = await import(\"esbuild\");\n const source = await readFile(configPath, \"utf8\");\n\n const { code } = transformSync(source, {\n loader: \"ts\",\n format: \"esm\",\n target: `node${process.versions.node.split(\".\")[0]}`,\n sourcefile: configPath,\n });\n\n // Unique sibling name so concurrent processes never clobber each other.\n const compiledPath = configPath.replace(\n /warlock\\.config\\.ts$/,\n `.warlock.config.${process.pid}.mjs`,\n );\n\n await writeFile(compiledPath, code, \"utf8\");\n\n try {\n const configModule = await import(pathToFileURL(compiledPath).href);\n return configModule.default;\n } finally {\n await unlink(compiledPath).catch(() => {});\n }\n }\n\n /**\n * Get config value by key (dot notation supported)\n *\n * @example\n * config.get(\"server.port\") // Returns 3000\n * config.get(\"cli.commands\") // Returns array of commands\n *\n * @param key - Config key (supports dot notation), autocompletes for first level only\n * @returns The config value\n * @throws Error if config is not loaded\n */\n public get<Key extends keyof WarlockConfig>(\n key: Key,\n defaultValue?: WarlockConfig[Key],\n ): WarlockConfig[Key] {\n if (!this.config) {\n throw new Error(\"WarlockConfig not loaded. Call load() first or use lazyGet().\");\n }\n\n return get(this.config, key as string, defaultValue);\n }\n\n /**\n * Lazy get - loads config if not already loaded\n *\n * @example\n * const port = await config.lazyGet(\"server\");\n *\n * @param key - Config key (supports dot notation), autocompletes for first level only\n * @param defaultValue - Default value if config key is undefined\n * @returns The config value\n */\n async lazyGet<Key extends keyof WarlockConfig>(\n key: Key,\n defaultValue?: WarlockConfig[Key],\n ): Promise<WarlockConfig[Key]> {\n await this.load();\n return this.get(key, defaultValue);\n }\n\n /**\n * Check if config is loaded\n */\n public get isLoaded(): boolean {\n return this.config !== undefined;\n }\n\n /**\n * Get the entire config object\n *\n * @throws Error if config is not loaded\n */\n public getAll(): WarlockConfig {\n if (!this.config) {\n throw new Error(\"WarlockConfig not loaded. Call load() first or use lazyGet().\");\n }\n\n return this.config;\n }\n\n /**\n * Reload config (useful for HMR/development)\n */\n public async reload(): Promise<void> {\n this.config = undefined;\n this.loading = undefined;\n await this.load();\n }\n}\n\n/**\n * Exported singleton instance\n *\n * @example\n * import { warlockConfig } from \"@warlock.js/core\";\n *\n * // Lazy load and get value\n * const port = await warlockConfig.lazyGet(\"server.port\");\n *\n * // Or load first, then get\n * await warlockConfig.load();\n * const commands = warlockConfig.get(\"cli.commands\");\n */\nexport const warlockConfigManager = new WarlockConfigManager();\n"],"mappings":";;;;;;;;;;;;;;;;;AAgBA,SAAgB,0BAA0B,OAAyB;CACjE,OACG,OAA6B,SAAS,gCACvC,kCAAkC,KAAK,OAAQ,OAAiB,OAAO,CAAC;AAE5E;;;;;;;AAQA,IAAa,uBAAb,MAAkC;;;;;;CAgBhC,MAAa,OAA2C;EAEtD,IAAI,KAAK,QACP,OAAO,KAAK;EAId,IAAI,KAAK,SACP,OAAO,KAAK;EAId,KAAK,UAAU,KAAK,OAAO;EAC3B,KAAK,SAAS,MAAM,KAAK;EACzB,KAAK,UAAU;EAGf,KAAK,MAAM,WAAW,4BAA4B,KAAK,MAAM,GAC3D,QAAQ,KAAK,OAAO;EAGtB,OAAO,KAAK;CACd;;;;;;;CAQA,MAAc,SAA6C;EACzD,MAAM,aAAa,SAAS,mBAAmB;EAE/C,IAAI,CAAE,MAAM,gBAAgB,UAAU,GAAI;GAMxC,QAAQ,KACN,yHACF;GACA;EACF;EAEA,IAAI;GAEF,QAAO,MADoB,OAAO,cAAc,UAAU,CAAC,CAAC,MACzC,CAAC;EACtB,SAAS,OAAO;GAOd,IAAI,0BAA0B,KAAK,GACjC,OAAO,MAAM,KAAK,eAAe,UAAU;GAG7C,MAAM,IAAI,MAAM,qCAAqC,OAAO;EAC9D;CACF;;;;;;;;;CAUA,MAAc,eAAe,YAAwD;EACnF,MAAM,EAAE,kBAAkB,MAAM,OAAO;EAGvC,MAAM,EAAE,SAAS,cAAc,MAFV,SAAS,YAAY,MAAM,GAET;GACrC,QAAQ;GACR,QAAQ;GACR,QAAQ,OAAO,QAAQ,SAAS,KAAK,MAAM,GAAG,CAAC,CAAC;GAChD,YAAY;EACd,CAAC;EAGD,MAAM,eAAe,WAAW,QAC9B,wBACA,mBAAmB,QAAQ,IAAI,KACjC;EAEA,MAAM,UAAU,cAAc,MAAM,MAAM;EAE1C,IAAI;GAEF,QAAO,MADoB,OAAO,cAAc,YAAY,CAAC,CAAC,MAC3C,CAAC;EACtB,UAAU;GACR,MAAM,OAAO,YAAY,CAAC,CAAC,YAAY,CAAC,CAAC;EAC3C;CACF;;;;;;;;;;;;CAaA,AAAO,IACL,KACA,cACoB;EACpB,IAAI,CAAC,KAAK,QACR,MAAM,IAAI,MAAM,+DAA+D;EAGjF,OAAO,IAAI,KAAK,QAAQ,KAAe,YAAY;CACrD;;;;;;;;;;;CAYA,MAAM,QACJ,KACA,cAC6B;EAC7B,MAAM,KAAK,KAAK;EAChB,OAAO,KAAK,IAAI,KAAK,YAAY;CACnC;;;;CAKA,IAAW,WAAoB;EAC7B,OAAO,KAAK,WAAW;CACzB;;;;;;CAOA,AAAO,SAAwB;EAC7B,IAAI,CAAC,KAAK,QACR,MAAM,IAAI,MAAM,+DAA+D;EAGjF,OAAO,KAAK;CACd;;;;CAKA,MAAa,SAAwB;EACnC,KAAK,SAAS;EACd,KAAK,UAAU;EACf,MAAM,KAAK,KAAK;CAClB;AACF;;;;;;;;;;;;;;AAeA,MAAa,uBAAuB,IAAI,qBAAqB"}
1
+ {"version":3,"file":"warlock-config.manager.mjs","names":[],"sources":["../../../../../../../../packages/core/src/warlock-config/warlock-config.manager.ts"],"sourcesContent":["import { fileExistsAsync } from \"@warlock.js/fs\";\nimport { get } from \"@mongez/reinforcements\";\nimport { getTsconfig } from \"get-tsconfig\";\nimport { unlink, writeFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { pathToFileURL } from \"url\";\nimport { rootPath } from \"../utils\";\nimport { bundleWarlockConfig } from \"./bundle-config\";\nimport { type WarlockConfig } from \"./types\";\nimport { getDeprecatedConfigWarnings } from \"./warn-deprecated-config\";\n\n/**\n * `Error` with the ES2022 `cause` option, typed for packages still compiled\n * against an older lib (see `application.ts`).\n */\nconst ErrorWithCause = Error as new (message: string, options: { cause: unknown }) => Error;\n\n/**\n * True when `error` is Node's \"this runtime can't import a `.ts` file\" error.\n *\n * Node only executes TypeScript natively from v22.18 / v23.6 onward (earlier\n * 22.x needs `--experimental-strip-types`). On older runtimes a bare\n * `import(\"warlock.config.ts\")` throws `ERR_UNKNOWN_FILE_EXTENSION` — which is\n * the signal to fall back to transpiling the config ourselves.\n */\nexport function isUnknownTsExtensionError(error: unknown): boolean {\n return (\n (error as { code?: string })?.code === \"ERR_UNKNOWN_FILE_EXTENSION\" ||\n /Unknown file extension \"\\.tsx?\"/.test(String((error as Error)?.message))\n );\n}\n\n/**\n * True when `error` is Node failing to RESOLVE an import of the config's OWN\n * graph: an extensionless relative import (`./src/connectors/local`), a\n * directory import, or a tsconfig `paths` alias (`app/connectors`) — all of\n * which only a TypeScript toolchain resolves. Native type stripping\n * (Node ≥ 22.18) loads `warlock.config.ts` itself, then fails here.\n *\n * A package that is genuinely not installed is NOT a fallback case: the error\n * names a bare specifier that matches no `paths` pattern, and it is rethrown\n * as is. Neither is a missing module imported from inside `node_modules`.\n *\n * `pathAliases` are the tsconfig `paths` patterns (`app/*`). When the message\n * cannot be parsed the error is treated as a graph error, as before.\n */\nexport function isUnresolvedConfigImportError(\n error: unknown,\n pathAliases: readonly string[] = [],\n): boolean {\n const code = (error as { code?: string })?.code;\n\n if (code === \"ERR_UNSUPPORTED_DIR_IMPORT\") return true;\n if (code !== \"ERR_MODULE_NOT_FOUND\") return false;\n\n const message = String((error as Error)?.message ?? \"\");\n const match = /Cannot find (module|package) '([^']+)' imported from (.+)$/m.exec(message);\n\n if (!match) return true;\n\n const [, kind, specifier = \"\", importer = \"\"] = match;\n\n if (/[\\\\/]node_modules[\\\\/]/.test(importer)) return false;\n\n // An unresolved relative or absolute path: an extensionless TS import.\n if (kind === \"module\") return true;\n\n // A bare name: only a tsconfig alias is the config graph's own code.\n return pathAliases.some((pattern) => aliasCovers(pattern, specifier));\n}\n\n/**\n * True when `error` is native type stripping refusing TypeScript it cannot\n * strip (an `enum`, a `namespace`, a parameter property) or a `.ts` file under\n * `node_modules`. Both are raised while loading, before the graph runs.\n */\nexport function isUnsupportedTypeStrippingError(error: unknown): boolean {\n const code = (error as { code?: string })?.code;\n\n return (\n code === \"ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX\" ||\n code === \"ERR_UNSUPPORTED_NODE_MODULES_TYPE_STRIPPING\"\n );\n}\n\n/**\n * True when a tsconfig `paths` pattern can produce `packageName` as the first\n * segment(s) of a specifier: `app/*` covers `app`, `@shared/*` covers\n * `@shared`, a catch-all `*` covers anything.\n */\nfunction aliasCovers(pattern: string, packageName: string): boolean {\n const star = pattern.indexOf(\"*\");\n const prefix = star === -1 ? pattern : pattern.slice(0, star);\n\n if (prefix === \"\") return true;\n\n return (\n prefix === packageName || prefix.startsWith(`${packageName}/`) || packageName.startsWith(prefix)\n );\n}\n\n/**\n * Warlock Config Manager\n *\n * Manages lazy loading of the pre-compiled warlock.config.js file\n * from the .warlock/cache directory.\n */\nexport class WarlockConfigManager {\n /**\n * Cached config instance\n */\n private config?: WarlockConfig;\n\n /**\n * Loading promise to prevent duplicate loads\n */\n private loading?: Promise<WarlockConfig | undefined>;\n\n /**\n * Load warlock.config.js (cached after first load)\n *\n * @returns The resolved Warlock configuration\n */\n public async load(): Promise<WarlockConfig | undefined> {\n // Already loaded\n if (this.config) {\n return this.config;\n }\n\n // Currently loading (prevent duplicate loads)\n if (this.loading) {\n return this.loading;\n }\n\n // Start loading\n this.loading = this.doLoad();\n this.config = await this.loading;\n this.loading = undefined;\n\n // Console, not the logger: this runs before any log channel exists.\n for (const warning of getDeprecatedConfigWarnings(this.config)) {\n console.warn(warning);\n }\n\n return this.config;\n }\n\n /**\n * Internal load implementation\n *\n * The ESM loader hook transpiles `warlock.config.ts` on import — no\n * separate compile-to-disk step is needed.\n */\n private async doLoad(): Promise<WarlockConfig | undefined> {\n const configPath = rootPath(\"warlock.config.ts\");\n\n if (!(await fileExistsAsync(configPath))) {\n // Written straight to the console, NOT through `@warlock.js/logger`.\n // This runs during CLI bootstrap, before `LoggerConnector.start()` has\n // configured a single channel, so a logger call here reaches nobody in\n // any application — the warning would be silently dropped exactly when\n // the user most needs it.\n console.warn(\n \"warlock.config.ts is missing — create it at the project root (see https://warlock.js.org/docs for the config reference)\",\n );\n return;\n }\n\n try {\n const configModule = await import(pathToFileURL(configPath).href);\n return configModule.default;\n } catch (error) {\n // `dev` registers a TS loader hook, and Node ≥ 22.18 / 23.6 strips types\n // natively — in both cases the direct import above works for a\n // self-contained config. But `build` / `start` register no hook, so on an\n // older Node the import throws ERR_UNKNOWN_FILE_EXTENSION; native\n // stripping cannot resolve extensionless or tsconfig-aliased local\n // imports, nor strip an `enum` or a parameter property. Bundle the\n // config's local graph with esbuild ourselves so config loading is\n // Node-version-independent.\n //\n // These errors are raised while resolving and loading the STATIC graph,\n // before any of it runs. An unresolved import reached later — a dynamic\n // `import()` while the config runs — is indistinguishable by code, so the\n // fallback is limited to the config's own relative and aliased imports.\n if (\n isUnknownTsExtensionError(error) ||\n isUnsupportedTypeStrippingError(error) ||\n isUnresolvedConfigImportError(error, configPathAliases(configPath))\n ) {\n return await this.loadViaEsbuild(configPath);\n }\n\n throw new ErrorWithCause(`Failed to load warlock.config.ts: ${error}`, { cause: error });\n }\n }\n\n /**\n * Fallback config loader for runtimes that cannot import the config as written.\n *\n * Bundles `warlock.config.ts` with its LOCAL import graph (relative imports,\n * extensionless TS imports, tsconfig `paths` aliases) through esbuild, keeping\n * every package external so `BaseConnector`, the container and other\n * registries keep the application's identity (see `bundleWarlockConfig`).\n * The bundle is written as a sibling `.mjs` — so its external imports resolve\n * from the project exactly as they would from the original config — imported\n * once, then removed whether it loaded or threw. An error thrown by the\n * user's config propagates unchanged.\n */\n private async loadViaEsbuild(configPath: string): Promise<WarlockConfig | undefined> {\n const code = await bundleWarlockConfig(configPath);\n\n // Unique sibling name so concurrent processes never clobber each other.\n const compiledPath = configPath.replace(\n /warlock\\.config\\.ts$/,\n `.warlock.config.${process.pid}.${Date.now()}.mjs`,\n );\n\n await writeFile(compiledPath, code, \"utf8\");\n\n try {\n const configModule = await import(pathToFileURL(compiledPath).href);\n return configModule.default;\n } catch (error) {\n throw nameOriginalConfig(error, compiledPath, configPath);\n } finally {\n await unlink(compiledPath).catch(() => {});\n }\n }\n\n /**\n * Get config value by key (dot notation supported)\n *\n * @example\n * config.get(\"server.port\") // Returns 3000\n * config.get(\"cli.commands\") // Returns array of commands\n *\n * @param key - Config key (supports dot notation), autocompletes for first level only\n * @returns The config value\n * @throws Error if config is not loaded\n */\n public get<Key extends keyof WarlockConfig>(\n key: Key,\n defaultValue?: WarlockConfig[Key],\n ): WarlockConfig[Key] {\n if (!this.config) {\n throw new Error(\"WarlockConfig not loaded. Call load() first or use lazyGet().\");\n }\n\n return get(this.config, key as string, defaultValue);\n }\n\n /**\n * Lazy get - loads config if not already loaded\n *\n * @example\n * const port = await config.lazyGet(\"server\");\n *\n * @param key - Config key (supports dot notation), autocompletes for first level only\n * @param defaultValue - Default value if config key is undefined\n * @returns The config value\n */\n async lazyGet<Key extends keyof WarlockConfig>(\n key: Key,\n defaultValue?: WarlockConfig[Key],\n ): Promise<WarlockConfig[Key]> {\n await this.load();\n return this.get(key, defaultValue);\n }\n\n /**\n * Check if config is loaded\n */\n public get isLoaded(): boolean {\n return this.config !== undefined;\n }\n\n /**\n * Get the entire config object\n *\n * @throws Error if config is not loaded\n */\n public getAll(): WarlockConfig {\n if (!this.config) {\n throw new Error(\"WarlockConfig not loaded. Call load() first or use lazyGet().\");\n }\n\n return this.config;\n }\n\n /**\n * Reload config (useful for HMR/development)\n */\n public async reload(): Promise<void> {\n this.config = undefined;\n this.loading = undefined;\n await this.load();\n }\n}\n\n/**\n * The tsconfig `paths` patterns of the project holding `configPath`.\n */\nfunction configPathAliases(configPath: string): string[] {\n try {\n return Object.keys(getTsconfig(path.dirname(configPath))?.config.compilerOptions?.paths ?? {});\n } catch {\n return [];\n }\n}\n\n/**\n * A loader error raised by the bundled config names the temporary `.mjs`\n * module. Rewrite it to name `warlock.config.ts`, keeping the original as the\n * cause. An error thrown by the user's own config is returned unchanged.\n */\nfunction nameOriginalConfig(error: unknown, compiledPath: string, configPath: string): unknown {\n const code = (error as { code?: string })?.code;\n\n if (typeof code !== \"string\" || !code.startsWith(\"ERR_\")) return error;\n\n const message = String((error as Error).message ?? error)\n .split(pathToFileURL(compiledPath).href)\n .join(pathToFileURL(configPath).href)\n .split(compiledPath)\n .join(configPath);\n\n const wrapped = new ErrorWithCause(`Failed to load warlock.config.ts: ${message}`, {\n cause: error,\n });\n\n (wrapped as Error & { code?: string }).code = code;\n\n return wrapped;\n}\n\n/**\n * Exported singleton instance\n *\n * @example\n * import { warlockConfig } from \"@warlock.js/core\";\n *\n * // Lazy load and get value\n * const port = await warlockConfig.lazyGet(\"server.port\");\n *\n * // Or load first, then get\n * await warlockConfig.load();\n * const commands = warlockConfig.get(\"cli.commands\");\n */\nexport const warlockConfigManager = new WarlockConfigManager();\n"],"mappings":";;;;;;;;;;;;;;;;AAeA,MAAM,iBAAiB;;;;;;;;;AAUvB,SAAgB,0BAA0B,OAAyB;CACjE,OACG,OAA6B,SAAS,gCACvC,kCAAkC,KAAK,OAAQ,OAAiB,OAAO,CAAC;AAE5E;;;;;;;;;;;;;;;AAgBA,SAAgB,8BACd,OACA,cAAiC,CAAC,GACzB;CACT,MAAM,OAAQ,OAA6B;CAE3C,IAAI,SAAS,8BAA8B,OAAO;CAClD,IAAI,SAAS,wBAAwB,OAAO;CAE5C,MAAM,UAAU,OAAQ,OAAiB,WAAW,EAAE;CACtD,MAAM,QAAQ,8DAA8D,KAAK,OAAO;CAExF,IAAI,CAAC,OAAO,OAAO;CAEnB,MAAM,GAAG,MAAM,YAAY,IAAI,WAAW,MAAM;CAEhD,IAAI,yBAAyB,KAAK,QAAQ,GAAG,OAAO;CAGpD,IAAI,SAAS,UAAU,OAAO;CAG9B,OAAO,YAAY,MAAM,YAAY,YAAY,SAAS,SAAS,CAAC;AACtE;;;;;;AAOA,SAAgB,gCAAgC,OAAyB;CACvE,MAAM,OAAQ,OAA6B;CAE3C,OACE,SAAS,uCACT,SAAS;AAEb;;;;;;AAOA,SAAS,YAAY,SAAiB,aAA8B;CAClE,MAAM,OAAO,QAAQ,QAAQ,GAAG;CAChC,MAAM,SAAS,SAAS,KAAK,UAAU,QAAQ,MAAM,GAAG,IAAI;CAE5D,IAAI,WAAW,IAAI,OAAO;CAE1B,OACE,WAAW,eAAe,OAAO,WAAW,GAAG,YAAY,EAAE,KAAK,YAAY,WAAW,MAAM;AAEnG;;;;;;;AAQA,IAAa,uBAAb,MAAkC;;;;;;CAgBhC,MAAa,OAA2C;EAEtD,IAAI,KAAK,QACP,OAAO,KAAK;EAId,IAAI,KAAK,SACP,OAAO,KAAK;EAId,KAAK,UAAU,KAAK,OAAO;EAC3B,KAAK,SAAS,MAAM,KAAK;EACzB,KAAK,UAAU;EAGf,KAAK,MAAM,WAAW,4BAA4B,KAAK,MAAM,GAC3D,QAAQ,KAAK,OAAO;EAGtB,OAAO,KAAK;CACd;;;;;;;CAQA,MAAc,SAA6C;EACzD,MAAM,aAAa,SAAS,mBAAmB;EAE/C,IAAI,CAAE,MAAM,gBAAgB,UAAU,GAAI;GAMxC,QAAQ,KACN,yHACF;GACA;EACF;EAEA,IAAI;GAEF,QAAO,MADoB,OAAO,cAAc,UAAU,CAAC,CAAC,MACzC,CAAC;EACtB,SAAS,OAAO;GAcd,IACE,0BAA0B,KAAK,KAC/B,gCAAgC,KAAK,KACrC,8BAA8B,OAAO,kBAAkB,UAAU,CAAC,GAElE,OAAO,MAAM,KAAK,eAAe,UAAU;GAG7C,MAAM,IAAI,eAAe,qCAAqC,SAAS,EAAE,OAAO,MAAM,CAAC;EACzF;CACF;;;;;;;;;;;;;CAcA,MAAc,eAAe,YAAwD;EACnF,MAAM,OAAO,MAAM,oBAAoB,UAAU;EAGjD,MAAM,eAAe,WAAW,QAC9B,wBACA,mBAAmB,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,KAC/C;EAEA,MAAM,UAAU,cAAc,MAAM,MAAM;EAE1C,IAAI;GAEF,QAAO,MADoB,OAAO,cAAc,YAAY,CAAC,CAAC,MAC3C,CAAC;EACtB,SAAS,OAAO;GACd,MAAM,mBAAmB,OAAO,cAAc,UAAU;EAC1D,UAAU;GACR,MAAM,OAAO,YAAY,CAAC,CAAC,YAAY,CAAC,CAAC;EAC3C;CACF;;;;;;;;;;;;CAaA,AAAO,IACL,KACA,cACoB;EACpB,IAAI,CAAC,KAAK,QACR,MAAM,IAAI,MAAM,+DAA+D;EAGjF,OAAO,IAAI,KAAK,QAAQ,KAAe,YAAY;CACrD;;;;;;;;;;;CAYA,MAAM,QACJ,KACA,cAC6B;EAC7B,MAAM,KAAK,KAAK;EAChB,OAAO,KAAK,IAAI,KAAK,YAAY;CACnC;;;;CAKA,IAAW,WAAoB;EAC7B,OAAO,KAAK,WAAW;CACzB;;;;;;CAOA,AAAO,SAAwB;EAC7B,IAAI,CAAC,KAAK,QACR,MAAM,IAAI,MAAM,+DAA+D;EAGjF,OAAO,KAAK;CACd;;;;CAKA,MAAa,SAAwB;EACnC,KAAK,SAAS;EACd,KAAK,UAAU;EACf,MAAM,KAAK,KAAK;CAClB;AACF;;;;AAKA,SAAS,kBAAkB,YAA8B;CACvD,IAAI;EACF,OAAO,OAAO,KAAK,YAAY,KAAK,QAAQ,UAAU,CAAC,CAAC,EAAE,OAAO,iBAAiB,SAAS,CAAC,CAAC;CAC/F,QAAQ;EACN,OAAO,CAAC;CACV;AACF;;;;;;AAOA,SAAS,mBAAmB,OAAgB,cAAsB,YAA6B;CAC7F,MAAM,OAAQ,OAA6B;CAE3C,IAAI,OAAO,SAAS,YAAY,CAAC,KAAK,WAAW,MAAM,GAAG,OAAO;CAQjE,MAAM,UAAU,IAAI,eAAe,qCANnB,OAAQ,MAAgB,WAAW,KAAK,CAAC,CACtD,MAAM,cAAc,YAAY,CAAC,CAAC,IAAI,CAAC,CACvC,KAAK,cAAc,UAAU,CAAC,CAAC,IAAI,CAAC,CACpC,MAAM,YAAY,CAAC,CACnB,KAAK,UAEsE,KAAK,EACjF,OAAO,MACT,CAAC;CAED,AAAC,QAAsC,OAAO;CAE9C,OAAO;AACT;;;;;;;;;;;;;;AAeA,MAAa,uBAAuB,IAAI,qBAAqB"}
@@ -1,6 +1,6 @@
1
1
  import { get } from "@mongez/reinforcements";
2
2
 
3
- //#region ../core/src/warlock-config/warn-deprecated-config.ts
3
+ //#region ../../packages/core/src/warlock-config/warn-deprecated-config.ts
4
4
  /**
5
5
  * Keys of `warlock.config.ts` that are declared but never read, and where the
6
6
  * setting lives instead.
@@ -1 +1 @@
1
- {"version":3,"file":"warn-deprecated-config.mjs","names":[],"sources":["../../../../../../../core/src/warlock-config/warn-deprecated-config.ts"],"sourcesContent":["import { get } from \"@mongez/reinforcements\";\nimport type { WarlockConfig } from \"./types\";\n\n/**\n * Keys of `warlock.config.ts` that are declared but never read, and where the\n * setting lives instead.\n */\nexport const deprecatedConfigKeys: Record<string, string> = {\n \"server.port\": \"set the HTTP port in `config/http.ts` (`port`)\",\n \"server.host\": \"set the HTTP host in `config/http.ts` (`host`)\",\n \"server.retryOtherPort\": \"port fallback is not implemented, remove it\",\n \"tests.include\": \"configure test discovery in `config/tests.ts`\",\n \"tests.exclude\": \"configure test discovery in `config/tests.ts`\",\n};\n\n/**\n * Build one warning per deprecated key the app actually sets.\n */\nexport function getDeprecatedConfigWarnings(config: WarlockConfig | undefined): string[] {\n if (!config) return [];\n\n return Object.entries(deprecatedConfigKeys)\n .filter(([key]) => get(config, key) !== undefined)\n .map(\n ([key, instead]) =>\n `warlock.config.ts: \\`${key}\\` is deprecated and ignored by the framework; ${instead}.`,\n );\n}\n"],"mappings":";;;;;;;AAOA,MAAa,uBAA+C;CAC1D,eAAe;CACf,eAAe;CACf,yBAAyB;CACzB,iBAAiB;CACjB,iBAAiB;AACnB;;;;AAKA,SAAgB,4BAA4B,QAA6C;CACvF,IAAI,CAAC,QAAQ,OAAO,CAAC;CAErB,OAAO,OAAO,QAAQ,oBAAoB,CAAC,CACxC,QAAQ,CAAC,SAAS,IAAI,QAAQ,GAAG,MAAM,MAAS,CAAC,CACjD,KACE,CAAC,KAAK,aACL,wBAAwB,IAAI,iDAAiD,QAAQ,EACzF;AACJ"}
1
+ {"version":3,"file":"warn-deprecated-config.mjs","names":[],"sources":["../../../../../../../../packages/core/src/warlock-config/warn-deprecated-config.ts"],"sourcesContent":["import { get } from \"@mongez/reinforcements\";\nimport type { WarlockConfig } from \"./types\";\n\n/**\n * Keys of `warlock.config.ts` that are declared but never read, and where the\n * setting lives instead.\n */\nexport const deprecatedConfigKeys: Record<string, string> = {\n \"server.port\": \"set the HTTP port in `config/http.ts` (`port`)\",\n \"server.host\": \"set the HTTP host in `config/http.ts` (`host`)\",\n \"server.retryOtherPort\": \"port fallback is not implemented, remove it\",\n \"tests.include\": \"configure test discovery in `config/tests.ts`\",\n \"tests.exclude\": \"configure test discovery in `config/tests.ts`\",\n};\n\n/**\n * Build one warning per deprecated key the app actually sets.\n */\nexport function getDeprecatedConfigWarnings(config: WarlockConfig | undefined): string[] {\n if (!config) return [];\n\n return Object.entries(deprecatedConfigKeys)\n .filter(([key]) => get(config, key) !== undefined)\n .map(\n ([key, instead]) =>\n `warlock.config.ts: \\`${key}\\` is deprecated and ignored by the framework; ${instead}.`,\n );\n}\n"],"mappings":";;;;;;;AAOA,MAAa,uBAA+C;CAC1D,eAAe;CACf,eAAe;CACf,yBAAyB;CACzB,iBAAiB;CACjB,iBAAiB;AACnB;;;;AAKA,SAAgB,4BAA4B,QAA6C;CACvF,IAAI,CAAC,QAAQ,OAAO,CAAC;CAErB,OAAO,OAAO,QAAQ,oBAAoB,CAAC,CACxC,QAAQ,CAAC,SAAS,IAAI,QAAQ,GAAG,MAAM,MAAS,CAAC,CACjD,KACE,CAAC,KAAK,aACL,wBAAwB,IAAI,iDAAiD,QAAQ,EACzF;AACJ"}