@warlock.js/core 5.30.0 → 5.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1374) hide show
  1. package/CHANGELOG.md +165 -36
  2. package/README.md +28 -23
  3. package/bin/source-load-hook.mjs +63 -0
  4. package/bin/warlock.js +102 -42
  5. package/esm/application/app.d.mts +3 -3
  6. package/esm/application/app.d.mts.map +1 -1
  7. package/esm/application/application-config-types.d.mts +1 -2
  8. package/esm/application/application-config-types.d.mts.map +1 -1
  9. package/esm/application/application.d.mts +5 -7
  10. package/esm/application/application.d.mts.map +1 -1
  11. package/esm/application/application.mjs +3 -1
  12. package/esm/application/application.mjs.map +1 -1
  13. package/esm/application/boot-signal.d.mts +14 -12
  14. package/esm/application/boot-signal.d.mts.map +1 -1
  15. package/esm/application/index.d.mts +2 -1
  16. package/esm/application/index.mjs +1 -1
  17. package/esm/application/public-url.d.mts +1 -2
  18. package/esm/application/public-url.d.mts.map +1 -1
  19. package/esm/application/roles.d.mts +10 -11
  20. package/esm/application/roles.d.mts.map +1 -1
  21. package/esm/benchmark/benchmark-snapshots.d.mts +1 -3
  22. package/esm/benchmark/benchmark-snapshots.d.mts.map +1 -1
  23. package/esm/benchmark/benchmark.d.mts +1 -3
  24. package/esm/benchmark/benchmark.d.mts.map +1 -1
  25. package/esm/benchmark/channels/console.channel.d.mts +1 -3
  26. package/esm/benchmark/channels/console.channel.d.mts.map +1 -1
  27. package/esm/benchmark/channels/noop.channel.d.mts +1 -3
  28. package/esm/benchmark/channels/noop.channel.d.mts.map +1 -1
  29. package/esm/benchmark/index.mjs +1 -1
  30. package/esm/benchmark/profiler.d.mts +1 -3
  31. package/esm/benchmark/profiler.d.mts.map +1 -1
  32. package/esm/benchmark/profiler.mjs +2 -1
  33. package/esm/benchmark/profiler.mjs.map +1 -1
  34. package/esm/benchmark/types.d.mts +22 -17
  35. package/esm/benchmark/types.d.mts.map +1 -1
  36. package/esm/bootstrap/setup.d.mts +1 -2
  37. package/esm/bootstrap/setup.d.mts.map +1 -1
  38. package/esm/bootstrap.d.mts +1 -2
  39. package/esm/bootstrap.d.mts.map +1 -1
  40. package/esm/cache/database-cache-driver.d.mts +3 -5
  41. package/esm/cache/database-cache-driver.d.mts.map +1 -1
  42. package/esm/cache/database-cache-driver.mjs +1 -1
  43. package/esm/cache/index.d.mts +2 -1
  44. package/esm/cache/index.mjs +1 -1
  45. package/esm/cli/cli-commands.manager.mjs +6 -3
  46. package/esm/cli/cli-commands.manager.mjs.map +1 -1
  47. package/esm/cli/commands/add.command.mjs +4 -2
  48. package/esm/cli/commands/add.command.mjs.map +1 -1
  49. package/esm/cli/commands/agents-md/agents-md-command.action.mjs +70 -0
  50. package/esm/cli/commands/agents-md/agents-md-command.action.mjs.map +1 -0
  51. package/esm/cli/commands/agents-md.command.mjs +38 -0
  52. package/esm/cli/commands/agents-md.command.mjs.map +1 -0
  53. package/esm/cli/commands/board/board-command.action.mjs +279 -0
  54. package/esm/cli/commands/board/board-command.action.mjs.map +1 -0
  55. package/esm/cli/commands/board.command.mjs +78 -0
  56. package/esm/cli/commands/board.command.mjs.map +1 -0
  57. package/esm/cli/commands/build.command.mjs +6 -1
  58. package/esm/cli/commands/build.command.mjs.map +1 -1
  59. package/esm/cli/commands/check/check-command.action.mjs +57 -0
  60. package/esm/cli/commands/check/check-command.action.mjs.map +1 -0
  61. package/esm/cli/commands/check/child-typecheck.mjs +66 -0
  62. package/esm/cli/commands/check/child-typecheck.mjs.map +1 -0
  63. package/esm/cli/commands/check/format-problems.mjs +43 -0
  64. package/esm/cli/commands/check/format-problems.mjs.map +1 -0
  65. package/esm/cli/commands/check/typecheck-command.action.mjs +61 -0
  66. package/esm/cli/commands/check/typecheck-command.action.mjs.map +1 -0
  67. package/esm/cli/commands/check.command.mjs +50 -0
  68. package/esm/cli/commands/check.command.mjs.map +1 -0
  69. package/esm/cli/commands/dev-server.command.mjs +12 -3
  70. package/esm/cli/commands/dev-server.command.mjs.map +1 -1
  71. package/esm/cli/commands/doctor/boot-for-diagnostics.mjs +8 -3
  72. package/esm/cli/commands/doctor/boot-for-diagnostics.mjs.map +1 -1
  73. package/esm/cli/commands/doctor/check.types.d.mts +89 -0
  74. package/esm/cli/commands/doctor/check.types.d.mts.map +1 -0
  75. package/esm/cli/commands/doctor/checks/config.check.mjs +1 -0
  76. package/esm/cli/commands/doctor/checks/config.check.mjs.map +1 -1
  77. package/esm/cli/commands/doctor/checks/connectors.check.mjs +2 -0
  78. package/esm/cli/commands/doctor/checks/connectors.check.mjs.map +1 -1
  79. package/esm/cli/commands/doctor/checks/handler-signature.check.mjs +1 -0
  80. package/esm/cli/commands/doctor/checks/handler-signature.check.mjs.map +1 -1
  81. package/esm/cli/commands/doctor/checks/health.check.mjs +3 -0
  82. package/esm/cli/commands/doctor/checks/health.check.mjs.map +1 -1
  83. package/esm/cli/commands/doctor/checks/jwt-secret.check.mjs +1 -0
  84. package/esm/cli/commands/doctor/checks/jwt-secret.check.mjs.map +1 -1
  85. package/esm/cli/commands/doctor/checks/locales-ts-deprecated.check.mjs +23 -27
  86. package/esm/cli/commands/doctor/checks/locales-ts-deprecated.check.mjs.map +1 -1
  87. package/esm/cli/commands/doctor/checks/optional-peers.check.mjs +1 -0
  88. package/esm/cli/commands/doctor/checks/optional-peers.check.mjs.map +1 -1
  89. package/esm/cli/commands/doctor/checks/release-hygiene.check.mjs +4 -0
  90. package/esm/cli/commands/doctor/checks/release-hygiene.check.mjs.map +1 -1
  91. package/esm/cli/commands/doctor/checks/routes.check.mjs +3 -0
  92. package/esm/cli/commands/doctor/checks/routes.check.mjs.map +1 -1
  93. package/esm/cli/commands/doctor/doctor-command.action.mjs +15 -6
  94. package/esm/cli/commands/doctor/doctor-command.action.mjs.map +1 -1
  95. package/esm/cli/commands/doctor/format-report.mjs +30 -2
  96. package/esm/cli/commands/doctor/format-report.mjs.map +1 -1
  97. package/esm/cli/commands/doctor.command.mjs +4 -0
  98. package/esm/cli/commands/doctor.command.mjs.map +1 -1
  99. package/esm/cli/commands/explain/explain-command.action.mjs +64 -0
  100. package/esm/cli/commands/explain/explain-command.action.mjs.map +1 -0
  101. package/esm/cli/commands/explain.command.mjs +23 -0
  102. package/esm/cli/commands/explain.command.mjs.map +1 -0
  103. package/esm/cli/commands/generate/generate.command.mjs +124 -124
  104. package/esm/cli/commands/generate/generate.command.mjs.map +1 -1
  105. package/esm/cli/commands/generate/generators/controller.generator.mjs +5 -2
  106. package/esm/cli/commands/generate/generators/controller.generator.mjs.map +1 -1
  107. package/esm/cli/commands/generate/generators/endpoint.generator.mjs +313 -0
  108. package/esm/cli/commands/generate/generators/endpoint.generator.mjs.map +1 -0
  109. package/esm/cli/commands/generate/generators/migration.generator.mjs +1 -1
  110. package/esm/cli/commands/generate/generators/migration.generator.mjs.map +1 -1
  111. package/esm/cli/commands/generate/generators/model.generator.mjs +4 -3
  112. package/esm/cli/commands/generate/generators/model.generator.mjs.map +1 -1
  113. package/esm/cli/commands/generate/generators/repository.generator.mjs +3 -1
  114. package/esm/cli/commands/generate/generators/repository.generator.mjs.map +1 -1
  115. package/esm/cli/commands/generate/generators/resource.generator.mjs +3 -1
  116. package/esm/cli/commands/generate/generators/resource.generator.mjs.map +1 -1
  117. package/esm/cli/commands/generate/generators/service.generator.mjs +3 -1
  118. package/esm/cli/commands/generate/generators/service.generator.mjs.map +1 -1
  119. package/esm/cli/commands/generate/templates/endpoint-stubs.mjs +341 -0
  120. package/esm/cli/commands/generate/templates/endpoint-stubs.mjs.map +1 -0
  121. package/esm/cli/commands/generate/templates/stubs.mjs +19 -6
  122. package/esm/cli/commands/generate/templates/stubs.mjs.map +1 -1
  123. package/esm/cli/commands/generate/utils/endpoint-schema.mjs +136 -0
  124. package/esm/cli/commands/generate/utils/endpoint-schema.mjs.map +1 -0
  125. package/esm/cli/commands/generate/utils/name-parser.mjs +2 -2
  126. package/esm/cli/commands/generate/utils/name-parser.mjs.map +1 -1
  127. package/esm/cli/commands/generate/utils/path-resolver.mjs +1 -1
  128. package/esm/cli/commands/generate/utils/prompt.mjs.map +1 -1
  129. package/esm/cli/commands/generate/utils/writer.mjs +38 -13
  130. package/esm/cli/commands/generate/utils/writer.mjs.map +1 -1
  131. package/esm/cli/commands/inspect/inspect-command.action.mjs +73 -0
  132. package/esm/cli/commands/inspect/inspect-command.action.mjs.map +1 -0
  133. package/esm/cli/commands/inspect.command.mjs +39 -0
  134. package/esm/cli/commands/inspect.command.mjs.map +1 -0
  135. package/esm/cli/commands/issue/collect-environment.mjs +187 -0
  136. package/esm/cli/commands/issue/collect-environment.mjs.map +1 -0
  137. package/esm/cli/commands/issue/issue-command.action.mjs +70 -0
  138. package/esm/cli/commands/issue/issue-command.action.mjs.map +1 -0
  139. package/esm/cli/commands/issue.command.mjs +31 -0
  140. package/esm/cli/commands/issue.command.mjs.map +1 -0
  141. package/esm/cli/commands/mcp/mcp-command.action.mjs +104 -0
  142. package/esm/cli/commands/mcp/mcp-command.action.mjs.map +1 -0
  143. package/esm/cli/commands/mcp.command.mjs +76 -0
  144. package/esm/cli/commands/mcp.command.mjs.map +1 -0
  145. package/esm/cli/commands/openapi-generator.action.mjs +1 -1
  146. package/esm/cli/commands/openapi-generator.action.mjs.map +1 -1
  147. package/esm/cli/commands/openapi-generator.command.mjs.map +1 -1
  148. package/esm/cli/commands/postman-generator.action.mjs +1 -1
  149. package/esm/cli/commands/postman-generator.action.mjs.map +1 -1
  150. package/esm/cli/commands/postman-generator.command.mjs.map +1 -1
  151. package/esm/cli/commands/routes/format-routes-table.mjs +1 -1
  152. package/esm/cli/commands/routes/route-row.mjs +1 -1
  153. package/esm/cli/commands/routes/routes-diff.action.mjs +3 -3
  154. package/esm/cli/commands/routes/routes-diff.action.mjs.map +1 -1
  155. package/esm/cli/commands/test.command.mjs +131 -0
  156. package/esm/cli/commands/test.command.mjs.map +1 -0
  157. package/esm/cli/commands/trace/trace-command.action.mjs +145 -0
  158. package/esm/cli/commands/trace/trace-command.action.mjs.map +1 -0
  159. package/esm/cli/commands/trace.command.mjs +60 -0
  160. package/esm/cli/commands/trace.command.mjs.map +1 -0
  161. package/esm/cli/commands/typecheck.command.mjs +40 -0
  162. package/esm/cli/commands/typecheck.command.mjs.map +1 -0
  163. package/esm/cli/commands/upgrade.command.mjs +46 -0
  164. package/esm/cli/commands/upgrade.command.mjs.map +1 -0
  165. package/esm/cli/commands-loader.mjs +1 -1
  166. package/esm/cli/flush-and-exit.mjs +34 -0
  167. package/esm/cli/flush-and-exit.mjs.map +1 -0
  168. package/esm/cli/framework-cli-commands.mjs +25 -1
  169. package/esm/cli/framework-cli-commands.mjs.map +1 -1
  170. package/esm/cli/parse-cli-args.mjs +3 -2
  171. package/esm/cli/parse-cli-args.mjs.map +1 -1
  172. package/esm/cli/start.d.mts +1 -1
  173. package/esm/cli/string-similarity.mjs +1 -1
  174. package/esm/commands/cli-command.d.mts +2 -4
  175. package/esm/commands/cli-command.d.mts.map +1 -1
  176. package/esm/commands/index.d.mts +2 -1
  177. package/esm/commands/index.mjs +1 -1
  178. package/esm/commands/types.d.mts +8 -8
  179. package/esm/commands/types.d.mts.map +1 -1
  180. package/esm/config/config-getter.d.mts +2 -3
  181. package/esm/config/config-getter.d.mts.map +1 -1
  182. package/esm/config/config-getter.mjs +5 -5
  183. package/esm/config/config-getter.mjs.map +1 -1
  184. package/esm/config/config-handlers.d.mts +1 -3
  185. package/esm/config/config-handlers.d.mts.map +1 -1
  186. package/esm/config/config-loader.d.mts +1 -2
  187. package/esm/config/config-loader.d.mts.map +1 -1
  188. package/esm/config/config-loader.mjs +35 -14
  189. package/esm/config/config-loader.mjs.map +1 -1
  190. package/esm/config/config-manager.mjs +1 -1
  191. package/esm/config/config-schema.d.mts +70 -0
  192. package/esm/config/config-schema.d.mts.map +1 -0
  193. package/esm/config/config-schema.mjs +77 -0
  194. package/esm/config/config-schema.mjs.map +1 -0
  195. package/esm/config/config-setter.d.mts +2 -4
  196. package/esm/config/config-setter.d.mts.map +1 -1
  197. package/esm/config/config-setter.mjs +2 -2
  198. package/esm/config/config-setter.mjs.map +1 -1
  199. package/esm/config/config-special-handlers.d.mts +2 -4
  200. package/esm/config/config-special-handlers.d.mts.map +1 -1
  201. package/esm/config/index.d.mts +7 -0
  202. package/esm/config/index.mjs +2 -1
  203. package/esm/config/types.d.mts +4 -5
  204. package/esm/config/types.d.mts.map +1 -1
  205. package/esm/connectors/access-connector.d.mts +1 -3
  206. package/esm/connectors/access-connector.d.mts.map +1 -1
  207. package/esm/connectors/access-connector.mjs +2 -2
  208. package/esm/connectors/access-connector.mjs.map +1 -1
  209. package/esm/connectors/ai-connector.d.mts +1 -3
  210. package/esm/connectors/ai-connector.d.mts.map +1 -1
  211. package/esm/connectors/ai-connector.mjs +2 -2
  212. package/esm/connectors/ai-connector.mjs.map +1 -1
  213. package/esm/connectors/assert-no-reserved-connector-names.d.mts +1 -3
  214. package/esm/connectors/assert-no-reserved-connector-names.d.mts.map +1 -1
  215. package/esm/connectors/assert-no-reserved-connector-names.mjs +2 -1
  216. package/esm/connectors/assert-no-reserved-connector-names.mjs.map +1 -1
  217. package/esm/connectors/assert-unique-connector-names.d.mts +1 -3
  218. package/esm/connectors/assert-unique-connector-names.d.mts.map +1 -1
  219. package/esm/connectors/assert-unique-connector-names.mjs +26 -1
  220. package/esm/connectors/assert-unique-connector-names.mjs.map +1 -1
  221. package/esm/connectors/base-connector.d.mts +1 -3
  222. package/esm/connectors/base-connector.d.mts.map +1 -1
  223. package/esm/connectors/cache-connector.d.mts +1 -3
  224. package/esm/connectors/cache-connector.d.mts.map +1 -1
  225. package/esm/connectors/cache-connector.mjs +3 -3
  226. package/esm/connectors/cache-connector.mjs.map +1 -1
  227. package/esm/connectors/connectors-manager.d.mts +2 -4
  228. package/esm/connectors/connectors-manager.d.mts.map +1 -1
  229. package/esm/connectors/connectors-manager.mjs +2 -2
  230. package/esm/connectors/connectors-manager.mjs.map +1 -1
  231. package/esm/connectors/database-connector.d.mts +1 -3
  232. package/esm/connectors/database-connector.d.mts.map +1 -1
  233. package/esm/connectors/database-connector.mjs +2 -2
  234. package/esm/connectors/database-connector.mjs.map +1 -1
  235. package/esm/connectors/describe-server-address.mjs +4 -4
  236. package/esm/connectors/describe-server-address.mjs.map +1 -1
  237. package/esm/connectors/herald-connector.d.mts +1 -3
  238. package/esm/connectors/herald-connector.d.mts.map +1 -1
  239. package/esm/connectors/herald-connector.mjs +2 -2
  240. package/esm/connectors/herald-connector.mjs.map +1 -1
  241. package/esm/connectors/http-connector.d.mts +1 -3
  242. package/esm/connectors/http-connector.d.mts.map +1 -1
  243. package/esm/connectors/http-connector.mjs +11 -9
  244. package/esm/connectors/http-connector.mjs.map +1 -1
  245. package/esm/connectors/index.d.mts +2 -1
  246. package/esm/connectors/index.mjs +1 -1
  247. package/esm/connectors/logger-connector.d.mts +1 -3
  248. package/esm/connectors/logger-connector.d.mts.map +1 -1
  249. package/esm/connectors/logger-connector.mjs +2 -2
  250. package/esm/connectors/logger-connector.mjs.map +1 -1
  251. package/esm/connectors/mail-connector.d.mts +1 -3
  252. package/esm/connectors/mail-connector.d.mts.map +1 -1
  253. package/esm/connectors/mail-connector.mjs +2 -2
  254. package/esm/connectors/mail-connector.mjs.map +1 -1
  255. package/esm/connectors/notifications-connector.d.mts +1 -3
  256. package/esm/connectors/notifications-connector.d.mts.map +1 -1
  257. package/esm/connectors/notifications-connector.mjs +2 -2
  258. package/esm/connectors/notifications-connector.mjs.map +1 -1
  259. package/esm/connectors/register-configured-connectors.d.mts +2 -4
  260. package/esm/connectors/register-configured-connectors.d.mts.map +1 -1
  261. package/esm/connectors/single-server-warnings.mjs.map +1 -1
  262. package/esm/connectors/socket-connector.d.mts +1 -3
  263. package/esm/connectors/socket-connector.d.mts.map +1 -1
  264. package/esm/connectors/socket-connector.mjs +12 -10
  265. package/esm/connectors/socket-connector.mjs.map +1 -1
  266. package/esm/connectors/storage.connector.d.mts +1 -3
  267. package/esm/connectors/storage.connector.d.mts.map +1 -1
  268. package/esm/connectors/storage.connector.mjs +2 -2
  269. package/esm/connectors/storage.connector.mjs.map +1 -1
  270. package/esm/connectors/types.d.mts +17 -14
  271. package/esm/connectors/types.d.mts.map +1 -1
  272. package/esm/container/container-instance-registry.mjs.map +1 -1
  273. package/esm/container/development-app-modules.d.mts +7 -5
  274. package/esm/container/development-app-modules.d.mts.map +1 -1
  275. package/esm/container/development-model-modules.d.mts +6 -5
  276. package/esm/container/development-model-modules.d.mts.map +1 -1
  277. package/esm/container/index.d.mts +4 -4
  278. package/esm/container/index.d.mts.map +1 -1
  279. package/esm/container/index.mjs.map +1 -1
  280. package/esm/database/index.d.mts +3 -1
  281. package/esm/database/index.mjs +1 -1
  282. package/esm/database/migrate-action.mjs +1 -1
  283. package/esm/database/migrate-action.mjs.map +1 -1
  284. package/esm/database/models/database-log/database-log.d.mts +2 -31
  285. package/esm/database/models/database-log/database-log.d.mts.map +1 -1
  286. package/esm/database/models/database-log/index.d.mts +2 -1
  287. package/esm/database/models/database-log/index.mjs +1 -1
  288. package/esm/database/seed-command-action.mjs +1 -1
  289. package/esm/database/seeds/seeder.d.mts +2 -4
  290. package/esm/database/seeds/seeder.d.mts.map +1 -1
  291. package/esm/database/seeds/seeder.errors.d.mts +6 -3
  292. package/esm/database/seeds/seeder.errors.d.mts.map +1 -1
  293. package/esm/database/seeds/seeder.errors.mjs +2 -0
  294. package/esm/database/seeds/seeder.errors.mjs.map +1 -1
  295. package/esm/database/seeds/seeders.manager.mjs +2 -1
  296. package/esm/database/seeds/seeders.manager.mjs.map +1 -1
  297. package/esm/database/seeds/types.d.mts +7 -8
  298. package/esm/database/seeds/types.d.mts.map +1 -1
  299. package/esm/database/utils.d.mts +4 -5
  300. package/esm/database/utils.d.mts.map +1 -1
  301. package/esm/dev-server/app-module-registry.mjs +1 -1
  302. package/esm/dev-server/boot-precondition-error.mjs +1 -0
  303. package/esm/dev-server/boot-precondition-error.mjs.map +1 -1
  304. package/esm/dev-server/create-worker.mjs +17 -9
  305. package/esm/dev-server/create-worker.mjs.map +1 -1
  306. package/esm/dev-server/dependency-graph.d.mts +1 -3
  307. package/esm/dev-server/dependency-graph.d.mts.map +1 -1
  308. package/esm/dev-server/dependency-graph.mjs +1 -1
  309. package/esm/dev-server/dependency-graph.mjs.map +1 -1
  310. package/esm/dev-server/dev-agent-tooling.mjs +135 -0
  311. package/esm/dev-server/dev-agent-tooling.mjs.map +1 -0
  312. package/esm/dev-server/dev-logger.mjs.map +1 -1
  313. package/esm/dev-server/development-server.mjs +8 -0
  314. package/esm/dev-server/development-server.mjs.map +1 -1
  315. package/esm/dev-server/extract-translation-keys.mjs +16 -17
  316. package/esm/dev-server/extract-translation-keys.mjs.map +1 -1
  317. package/esm/dev-server/file-manager.d.mts +3 -7
  318. package/esm/dev-server/file-manager.d.mts.map +1 -1
  319. package/esm/dev-server/file-operations.d.mts +1 -3
  320. package/esm/dev-server/file-operations.d.mts.map +1 -1
  321. package/esm/dev-server/files-orchestrator.mjs +4 -5
  322. package/esm/dev-server/files-orchestrator.mjs.map +1 -1
  323. package/esm/dev-server/files-watcher.mjs +12 -11
  324. package/esm/dev-server/files-watcher.mjs.map +1 -1
  325. package/esm/dev-server/health-checker/checkers/eslint-health-checker.mjs +2 -3
  326. package/esm/dev-server/health-checker/checkers/eslint-health-checker.mjs.map +1 -1
  327. package/esm/dev-server/health-checker/checkers/oxlint-health-checker.mjs +33 -0
  328. package/esm/dev-server/health-checker/checkers/oxlint-health-checker.mjs.map +1 -0
  329. package/esm/dev-server/health-checker/checkers/typescript-health-checker.mjs +36 -115
  330. package/esm/dev-server/health-checker/checkers/typescript-health-checker.mjs.map +1 -1
  331. package/esm/dev-server/health-checker/default-health-checkers.mjs +31 -0
  332. package/esm/dev-server/health-checker/default-health-checkers.mjs.map +1 -0
  333. package/esm/dev-server/health-checker/file-health-checker.contract.d.mts +12 -6
  334. package/esm/dev-server/health-checker/file-health-checker.contract.d.mts.map +1 -1
  335. package/esm/dev-server/health-checker/file-health-result.d.mts +2 -2
  336. package/esm/dev-server/health-checker/file-health-result.d.mts.map +1 -1
  337. package/esm/dev-server/health-checker/files-healthcare.manager.mjs +16 -4
  338. package/esm/dev-server/health-checker/files-healthcare.manager.mjs.map +1 -1
  339. package/esm/dev-server/health-checker/oxlint-runner.mjs +303 -0
  340. package/esm/dev-server/health-checker/oxlint-runner.mjs.map +1 -0
  341. package/esm/dev-server/health-checker/workers/eslint-health.worker.d.mts +1 -1
  342. package/esm/dev-server/health-checker/workers/oxlint-health.worker.d.mts +1 -0
  343. package/esm/dev-server/health-checker/workers/oxlint-health.worker.mjs +42 -0
  344. package/esm/dev-server/health-checker/workers/oxlint-health.worker.mjs.map +1 -0
  345. package/esm/dev-server/health-checker/workers/ts-health.worker.d.mts +1 -1
  346. package/esm/dev-server/health-checker/workers/ts-health.worker.mjs +40 -174
  347. package/esm/dev-server/health-checker/workers/ts-health.worker.mjs.map +1 -1
  348. package/esm/dev-server/loader/hook-thread.d.mts +4 -8
  349. package/esm/dev-server/loader/hook-thread.d.mts.map +1 -1
  350. package/esm/dev-server/loader/load-hook.d.mts +10 -6
  351. package/esm/dev-server/loader/load-hook.d.mts.map +1 -1
  352. package/esm/dev-server/loader/load-hook.mjs +4 -3
  353. package/esm/dev-server/loader/load-hook.mjs.map +1 -1
  354. package/esm/dev-server/loader/loader-port-acks.mjs +1 -1
  355. package/esm/dev-server/loader/loader-port-acks.mjs.map +1 -1
  356. package/esm/dev-server/loader/own-resolver.mjs +1 -1
  357. package/esm/dev-server/loader/register-loader.mjs +4 -3
  358. package/esm/dev-server/loader/register-loader.mjs.map +1 -1
  359. package/esm/dev-server/loader/resolve-hook.d.mts +2 -2
  360. package/esm/dev-server/loader/resolve-hook.d.mts.map +1 -1
  361. package/esm/dev-server/loader/resolve-hook.mjs +3 -2
  362. package/esm/dev-server/loader/resolve-hook.mjs.map +1 -1
  363. package/esm/dev-server/loader/transpile-cache.mjs +3 -2
  364. package/esm/dev-server/loader/transpile-cache.mjs.map +1 -1
  365. package/esm/dev-server/manifest-manager.d.mts +1 -3
  366. package/esm/dev-server/manifest-manager.d.mts.map +1 -1
  367. package/esm/dev-server/model-module-registry.mjs +3 -3
  368. package/esm/dev-server/model-module-registry.mjs.map +1 -1
  369. package/esm/dev-server/model-resource-typings.mjs +40 -47
  370. package/esm/dev-server/model-resource-typings.mjs.map +1 -1
  371. package/esm/dev-server/module-loader.mjs +3 -2
  372. package/esm/dev-server/module-loader.mjs.map +1 -1
  373. package/esm/dev-server/package-json-manager.mjs +1 -1
  374. package/esm/dev-server/parse-imports.mjs +7 -39
  375. package/esm/dev-server/parse-imports.mjs.map +1 -1
  376. package/esm/dev-server/read-config-ast.mjs +3 -33
  377. package/esm/dev-server/read-config-ast.mjs.map +1 -1
  378. package/esm/dev-server/ready-block.mjs +1 -1
  379. package/esm/dev-server/route-types-publisher.mjs +1 -1
  380. package/esm/dev-server/shortcuts.mjs +1 -1
  381. package/esm/dev-server/special-files-collector.d.mts +2 -4
  382. package/esm/dev-server/special-files-collector.d.mts.map +1 -1
  383. package/esm/dev-server/start-development-server.mjs.map +1 -1
  384. package/esm/dev-server/supervisor.mjs +1 -1
  385. package/esm/dev-server/translation-keys-sources.mjs +1 -1
  386. package/esm/dev-server/translation-keys-sources.mjs.map +1 -1
  387. package/esm/dev-server/tsconfig-manager.mjs +3 -3
  388. package/esm/dev-server/tsconfig-manager.mjs.map +1 -1
  389. package/esm/dev-server/type-generator.mjs +31 -38
  390. package/esm/dev-server/type-generator.mjs.map +1 -1
  391. package/esm/dev-server/types.d.mts +3 -4
  392. package/esm/dev-server/types.d.mts.map +1 -1
  393. package/esm/dev-server/update-check-cache.mjs +2 -2
  394. package/esm/dev-server/update-check-cache.mjs.map +1 -1
  395. package/esm/encryption/encrypt.d.mts +2 -3
  396. package/esm/encryption/encrypt.d.mts.map +1 -1
  397. package/esm/encryption/hash.d.mts +1 -2
  398. package/esm/encryption/hash.d.mts.map +1 -1
  399. package/esm/encryption/index.mjs +1 -1
  400. package/esm/encryption/password.d.mts +2 -3
  401. package/esm/encryption/password.d.mts.map +1 -1
  402. package/esm/encryption/types.d.mts +2 -3
  403. package/esm/encryption/types.d.mts.map +1 -1
  404. package/esm/errors/container-key-missing-error.mjs +1 -0
  405. package/esm/errors/container-key-missing-error.mjs.map +1 -1
  406. package/esm/errors/error-codes.d.mts +660 -0
  407. package/esm/errors/error-codes.d.mts.map +1 -0
  408. package/esm/errors/error-codes.mjs +634 -0
  409. package/esm/errors/error-codes.mjs.map +1 -0
  410. package/esm/errors/esbuild-binary-missing-error.mjs +1 -0
  411. package/esm/errors/esbuild-binary-missing-error.mjs.map +1 -1
  412. package/esm/errors/index.d.mts +3 -1
  413. package/esm/errors/index.mjs +3 -1
  414. package/esm/errors/unknown-locale-error.mjs +1 -0
  415. package/esm/errors/unknown-locale-error.mjs.map +1 -1
  416. package/esm/errors/warlock-error.d.mts +21 -0
  417. package/esm/errors/warlock-error.d.mts.map +1 -0
  418. package/esm/errors/warlock-error.mjs +22 -0
  419. package/esm/errors/warlock-error.mjs.map +1 -0
  420. package/esm/generations/add-command.action.mjs +22 -5
  421. package/esm/generations/add-command.action.mjs.map +1 -1
  422. package/esm/generations/features/access.feature.mjs +1 -1
  423. package/esm/generations/features/access.feature.mjs.map +1 -1
  424. package/esm/generations/features/bull-board.feature.mjs +3 -2
  425. package/esm/generations/features/bull-board.feature.mjs.map +1 -1
  426. package/esm/generations/features/mysql.feature.mjs.map +1 -1
  427. package/esm/generations/features/notifications.feature.mjs +7 -3
  428. package/esm/generations/features/notifications.feature.mjs.map +1 -1
  429. package/esm/generations/features/queue.feature.mjs +1 -1
  430. package/esm/generations/features/queue.feature.mjs.map +1 -1
  431. package/esm/generations/features/react-email.feature.mjs +1 -1
  432. package/esm/generations/features/react-email.feature.mjs.map +1 -1
  433. package/esm/generations/features/shadcn.feature.mjs +1 -1
  434. package/esm/generations/features/shadcn.feature.mjs.map +1 -1
  435. package/esm/generations/features/shared/link-ai-package-import.mjs +1 -1
  436. package/esm/generations/features/shared/link-ai-package-import.mjs.map +1 -1
  437. package/esm/generations/features/shared/merge-web-sitemap-config.mjs +16 -23
  438. package/esm/generations/features/shared/merge-web-sitemap-config.mjs.map +1 -1
  439. package/esm/generations/features/shared/patch-tsconfig-include.mjs +2 -2
  440. package/esm/generations/features/shared/patch-tsconfig-include.mjs.map +1 -1
  441. package/esm/generations/features/shared/relocate-conflicting-home-route.mjs +2 -2
  442. package/esm/generations/features/shared/relocate-conflicting-home-route.mjs.map +1 -1
  443. package/esm/generations/features/sitemap.feature.mjs +3 -2
  444. package/esm/generations/features/sitemap.feature.mjs.map +1 -1
  445. package/esm/generations/features/tailwind.feature.mjs +1 -1
  446. package/esm/generations/features/tailwind.feature.mjs.map +1 -1
  447. package/esm/generations/features/test.feature.mjs +11 -6
  448. package/esm/generations/features/test.feature.mjs.map +1 -1
  449. package/esm/generations/features/web.feature.mjs +1 -1
  450. package/esm/generations/features/web.feature.mjs.map +1 -1
  451. package/esm/generations/generation-fs.mjs +73 -0
  452. package/esm/generations/generation-fs.mjs.map +1 -0
  453. package/esm/generations/generation-run.mjs +185 -0
  454. package/esm/generations/generation-run.mjs.map +1 -0
  455. package/esm/generations/stubs.mjs +156 -14
  456. package/esm/generations/stubs.mjs.map +1 -1
  457. package/esm/http/boot-port-preflight.d.mts +4 -5
  458. package/esm/http/boot-port-preflight.d.mts.map +1 -1
  459. package/esm/http/boot-port-preflight.mjs +2 -2
  460. package/esm/http/boot-port-preflight.mjs.map +1 -1
  461. package/esm/http/bounded-stream-queue.d.mts +10 -0
  462. package/esm/http/bounded-stream-queue.d.mts.map +1 -0
  463. package/esm/http/bounded-stream-queue.mjs +97 -0
  464. package/esm/http/bounded-stream-queue.mjs.map +1 -0
  465. package/esm/http/build-cors-options.mjs +2 -2
  466. package/esm/http/build-cors-options.mjs.map +1 -1
  467. package/esm/http/build-rate-limit-options.d.mts +15 -3
  468. package/esm/http/build-rate-limit-options.d.mts.map +1 -1
  469. package/esm/http/build-rate-limit-options.mjs +1 -1
  470. package/esm/http/build-rate-limit-options.mjs.map +1 -1
  471. package/esm/http/conditional-request.d.mts +87 -0
  472. package/esm/http/conditional-request.d.mts.map +1 -0
  473. package/esm/http/conditional-request.mjs +121 -0
  474. package/esm/http/conditional-request.mjs.map +1 -0
  475. package/esm/http/config.d.mts +2 -4
  476. package/esm/http/config.d.mts.map +1 -1
  477. package/esm/http/config.mjs +2 -2
  478. package/esm/http/config.mjs.map +1 -1
  479. package/esm/http/context/request-context.d.mts +6 -7
  480. package/esm/http/context/request-context.d.mts.map +1 -1
  481. package/esm/http/context/request-memo.d.mts +1 -2
  482. package/esm/http/context/request-memo.d.mts.map +1 -1
  483. package/esm/http/createHttpApplication.d.mts +2 -3
  484. package/esm/http/createHttpApplication.d.mts.map +1 -1
  485. package/esm/http/createHttpApplication.mjs +2 -2
  486. package/esm/http/createHttpApplication.mjs.map +1 -1
  487. package/esm/http/csp.d.mts +12 -12
  488. package/esm/http/csp.d.mts.map +1 -1
  489. package/esm/http/csp.mjs +3 -2
  490. package/esm/http/csp.mjs.map +1 -1
  491. package/esm/http/csrf-default-guard.d.mts +2 -4
  492. package/esm/http/csrf-default-guard.d.mts.map +1 -1
  493. package/esm/http/csrf-default-guard.mjs +1 -1
  494. package/esm/http/csrf-default-guard.mjs.map +1 -1
  495. package/esm/http/csrf-origin-policy.d.mts +7 -9
  496. package/esm/http/csrf-origin-policy.d.mts.map +1 -1
  497. package/esm/http/csrf-origin-policy.mjs +2 -2
  498. package/esm/http/csrf-origin-policy.mjs.map +1 -1
  499. package/esm/http/database/RequestLog.d.mts +26 -87
  500. package/esm/http/database/RequestLog.d.mts.map +1 -1
  501. package/esm/http/error-codes.d.mts +1 -2
  502. package/esm/http/error-codes.d.mts.map +1 -1
  503. package/esm/http/error-mapper.d.mts +2 -4
  504. package/esm/http/error-mapper.d.mts.map +1 -1
  505. package/esm/http/error-mapper.mjs +2 -2
  506. package/esm/http/error-mapper.mjs.map +1 -1
  507. package/esm/http/errors/errors.d.mts +30 -29
  508. package/esm/http/errors/errors.d.mts.map +1 -1
  509. package/esm/http/errors/errors.mjs +1 -0
  510. package/esm/http/errors/errors.mjs.map +1 -1
  511. package/esm/http/escape-header-value.d.mts +17 -0
  512. package/esm/http/escape-header-value.d.mts.map +1 -0
  513. package/esm/http/escape-header-value.mjs +27 -0
  514. package/esm/http/escape-header-value.mjs.map +1 -0
  515. package/esm/http/events.d.mts +2 -4
  516. package/esm/http/events.d.mts.map +1 -1
  517. package/esm/http/flush-pending-cookies.mjs.map +1 -1
  518. package/esm/http/health.d.mts +4 -4
  519. package/esm/http/health.d.mts.map +1 -1
  520. package/esm/http/index.d.mts +9 -3
  521. package/esm/http/index.mjs +5 -2
  522. package/esm/http/lazy-static.mjs +194 -0
  523. package/esm/http/lazy-static.mjs.map +1 -0
  524. package/esm/http/middleware/cache-response-middleware.d.mts +2 -4
  525. package/esm/http/middleware/cache-response-middleware.d.mts.map +1 -1
  526. package/esm/http/middleware/concurrency-limit.middleware.d.mts +3 -3
  527. package/esm/http/middleware/concurrency-limit.middleware.d.mts.map +1 -1
  528. package/esm/http/middleware/idempotency.middleware.d.mts +3 -3
  529. package/esm/http/middleware/idempotency.middleware.d.mts.map +1 -1
  530. package/esm/http/middleware/idempotency.middleware.mjs +6 -6
  531. package/esm/http/middleware/idempotency.middleware.mjs.map +1 -1
  532. package/esm/http/middleware/index.d.mts +3 -1
  533. package/esm/http/middleware/index.mjs +1 -1
  534. package/esm/http/middleware/inject-request-context.d.mts +2 -4
  535. package/esm/http/middleware/inject-request-context.d.mts.map +1 -1
  536. package/esm/http/middleware/inject-request-context.mjs +3 -3
  537. package/esm/http/middleware/inject-request-context.mjs.map +1 -1
  538. package/esm/http/middleware/ip-filter.middleware.d.mts +3 -3
  539. package/esm/http/middleware/ip-filter.middleware.d.mts.map +1 -1
  540. package/esm/http/middleware/maintenance.middleware.d.mts +3 -3
  541. package/esm/http/middleware/maintenance.middleware.d.mts.map +1 -1
  542. package/esm/http/middleware/maintenance.middleware.mjs +4 -4
  543. package/esm/http/middleware/maintenance.middleware.mjs.map +1 -1
  544. package/esm/http/middleware/max-body-size.middleware.d.mts +2 -2
  545. package/esm/http/middleware/max-body-size.middleware.d.mts.map +1 -1
  546. package/esm/http/middleware/middleware-list.d.mts +1 -3
  547. package/esm/http/middleware/middleware-list.d.mts.map +1 -1
  548. package/esm/http/middleware/rate-limit.middleware.d.mts +3 -3
  549. package/esm/http/middleware/rate-limit.middleware.d.mts.map +1 -1
  550. package/esm/http/middleware/rate-limit.middleware.mjs +2 -2
  551. package/esm/http/middleware/rate-limit.middleware.mjs.map +1 -1
  552. package/esm/http/middleware/utils/cidr-match.d.mts +2 -3
  553. package/esm/http/middleware/utils/cidr-match.d.mts.map +1 -1
  554. package/esm/http/middleware/utils/idempotency-key.d.mts +3 -5
  555. package/esm/http/middleware/utils/idempotency-key.d.mts.map +1 -1
  556. package/esm/http/middleware/utils/index.d.mts +2 -1
  557. package/esm/http/middleware/utils/parse-size.d.mts +1 -2
  558. package/esm/http/middleware/utils/parse-size.d.mts.map +1 -1
  559. package/esm/http/middleware/utils/parse-size.mjs +2 -2
  560. package/esm/http/middleware/utils/parse-size.mjs.map +1 -1
  561. package/esm/http/plugins.d.mts +2 -4
  562. package/esm/http/plugins.d.mts.map +1 -1
  563. package/esm/http/plugins.mjs +17 -14
  564. package/esm/http/plugins.mjs.map +1 -1
  565. package/esm/http/port-preflight.d.mts +3 -4
  566. package/esm/http/port-preflight.d.mts.map +1 -1
  567. package/esm/http/rate-limit-cache-store.mjs +6 -4
  568. package/esm/http/rate-limit-cache-store.mjs.map +1 -1
  569. package/esm/http/ready-report.d.mts +15 -10
  570. package/esm/http/ready-report.d.mts.map +1 -1
  571. package/esm/http/request-controller.d.mts +1 -3
  572. package/esm/http/request-controller.d.mts.map +1 -1
  573. package/esm/http/request-log-snapshot.d.mts +26 -15
  574. package/esm/http/request-log-snapshot.d.mts.map +1 -1
  575. package/esm/http/request-log-snapshot.mjs +85 -6
  576. package/esm/http/request-log-snapshot.mjs.map +1 -1
  577. package/esm/http/request.d.mts +6 -5
  578. package/esm/http/request.d.mts.map +1 -1
  579. package/esm/http/request.mjs +13 -11
  580. package/esm/http/request.mjs.map +1 -1
  581. package/esm/http/response.d.mts +23 -12
  582. package/esm/http/response.d.mts.map +1 -1
  583. package/esm/http/response.mjs +169 -81
  584. package/esm/http/response.mjs.map +1 -1
  585. package/esm/http/safe-redirect.d.mts +50 -0
  586. package/esm/http/safe-redirect.d.mts.map +1 -0
  587. package/esm/http/safe-redirect.mjs +80 -0
  588. package/esm/http/safe-redirect.mjs.map +1 -0
  589. package/esm/http/serialized.d.mts +12 -13
  590. package/esm/http/serialized.d.mts.map +1 -1
  591. package/esm/http/server-rebuilt.d.mts +3 -5
  592. package/esm/http/server-rebuilt.d.mts.map +1 -1
  593. package/esm/http/server.d.mts +11 -9
  594. package/esm/http/server.d.mts.map +1 -1
  595. package/esm/http/server.mjs +17 -7
  596. package/esm/http/server.mjs.map +1 -1
  597. package/esm/http/stream-react-response.d.mts +7 -7
  598. package/esm/http/stream-react-response.d.mts.map +1 -1
  599. package/esm/http/stream-transport.mjs +4 -2
  600. package/esm/http/stream-transport.mjs.map +1 -1
  601. package/esm/http/tracing/index.mjs +1 -1
  602. package/esm/http/tracing/trace-id.d.mts +2 -3
  603. package/esm/http/tracing/trace-id.d.mts.map +1 -1
  604. package/esm/http/tracing/tracing-dispatcher.d.mts +10 -11
  605. package/esm/http/tracing/tracing-dispatcher.d.mts.map +1 -1
  606. package/esm/http/tracing/tracing-dispatcher.mjs +2 -2
  607. package/esm/http/tracing/tracing-dispatcher.mjs.map +1 -1
  608. package/esm/http/tracing/tracing.type.d.mts +11 -9
  609. package/esm/http/tracing/tracing.type.d.mts.map +1 -1
  610. package/esm/http/types.d.mts +78 -39
  611. package/esm/http/types.d.mts.map +1 -1
  612. package/esm/http/uploaded-file.d.mts +6 -5
  613. package/esm/http/uploaded-file.d.mts.map +1 -1
  614. package/esm/http/uploads/generate-image-variant.mjs +1 -1
  615. package/esm/http/uploads/generate-image-variants.d.mts +13 -10
  616. package/esm/http/uploads/generate-image-variants.d.mts.map +1 -1
  617. package/esm/http/uploads/generate-image-variants.mjs +62 -25
  618. package/esm/http/uploads/generate-image-variants.mjs.map +1 -1
  619. package/esm/http/uploads/image-variant-cache-entries.mjs +78 -0
  620. package/esm/http/uploads/image-variant-cache-entries.mjs.map +1 -0
  621. package/esm/http/uploads/image-variant-cache.mjs +72 -30
  622. package/esm/http/uploads/image-variant-cache.mjs.map +1 -1
  623. package/esm/http/uploads/image-variant-types.d.mts +9 -9
  624. package/esm/http/uploads/image-variant-types.d.mts.map +1 -1
  625. package/esm/http/uploads/image-variants-config-error.d.mts +4 -3
  626. package/esm/http/uploads/image-variants-config-error.d.mts.map +1 -1
  627. package/esm/http/uploads/image-variants-config-error.mjs +3 -2
  628. package/esm/http/uploads/image-variants-config-error.mjs.map +1 -1
  629. package/esm/http/uploads/index.d.mts +2 -1
  630. package/esm/http/uploads/index.mjs +1 -1
  631. package/esm/http/uploads/load-variant-source.mjs +1 -1
  632. package/esm/http/uploads/load-variant-source.mjs.map +1 -1
  633. package/esm/http/uploads/parse-uploaded-file-query.mjs +1 -1
  634. package/esm/http/uploads/parse-uploaded-file-query.mjs.map +1 -1
  635. package/esm/http/uploads/purge-image-variants.d.mts +9 -6
  636. package/esm/http/uploads/purge-image-variants.d.mts.map +1 -1
  637. package/esm/http/uploads/purge-image-variants.mjs +16 -16
  638. package/esm/http/uploads/purge-image-variants.mjs.map +1 -1
  639. package/esm/http/uploads/remote-variant-source.mjs +115 -0
  640. package/esm/http/uploads/remote-variant-source.mjs.map +1 -0
  641. package/esm/http/uploads/resolve-image-variant.d.mts +6 -9
  642. package/esm/http/uploads/resolve-image-variant.d.mts.map +1 -1
  643. package/esm/http/uploads/resolve-image-variant.mjs +10 -18
  644. package/esm/http/uploads/resolve-image-variant.mjs.map +1 -1
  645. package/esm/http/uploads/resolve-image-variants-config.mjs +7 -5
  646. package/esm/http/uploads/resolve-image-variants-config.mjs.map +1 -1
  647. package/esm/http/uploads/resolve-original-content-type.mjs +1 -1
  648. package/esm/http/uploads/resolve-original-content-type.mjs.map +1 -1
  649. package/esm/http/uploads/resolve-remote-image-variant.mjs +89 -0
  650. package/esm/http/uploads/resolve-remote-image-variant.mjs.map +1 -0
  651. package/esm/http/uploads/trim-image-variant-cache.mjs +193 -0
  652. package/esm/http/uploads/trim-image-variant-cache.mjs.map +1 -0
  653. package/esm/http/uploads/uploaded-file.controller.d.mts +9 -6
  654. package/esm/http/uploads/uploaded-file.controller.d.mts.map +1 -1
  655. package/esm/http/uploads/uploaded-file.controller.mjs +18 -9
  656. package/esm/http/uploads/uploaded-file.controller.mjs.map +1 -1
  657. package/esm/http/uploads/variant-cache-key.mjs +2 -2
  658. package/esm/http/uploads-config.d.mts +2 -4
  659. package/esm/http/uploads-config.d.mts.map +1 -1
  660. package/esm/http/uploads-types.d.mts +22 -16
  661. package/esm/http/uploads-types.d.mts.map +1 -1
  662. package/esm/http/xmlable.d.mts +1 -2
  663. package/esm/http/xmlable.d.mts.map +1 -1
  664. package/esm/image/image.d.mts +6 -7
  665. package/esm/image/image.d.mts.map +1 -1
  666. package/esm/image/image.mjs.map +1 -1
  667. package/esm/image/index.d.mts +2 -1
  668. package/esm/image/index.mjs +1 -1
  669. package/esm/index.d.mts +38 -6
  670. package/esm/index.mjs +14 -3
  671. package/esm/loader/app-module-importer.d.mts +1 -2
  672. package/esm/loader/app-module-importer.d.mts.map +1 -1
  673. package/esm/localization/index.mjs +1 -1
  674. package/esm/localization/parse-locale-dictionary.d.mts +6 -5
  675. package/esm/localization/parse-locale-dictionary.d.mts.map +1 -1
  676. package/esm/localization/parse-locale-dictionary.mjs +2 -1
  677. package/esm/localization/parse-locale-dictionary.mjs.map +1 -1
  678. package/esm/localization/register-locale-dictionary.d.mts +3 -4
  679. package/esm/localization/register-locale-dictionary.d.mts.map +1 -1
  680. package/esm/localization/register-locale-dictionary.mjs +2 -2
  681. package/esm/localization/register-locale-dictionary.mjs.map +1 -1
  682. package/esm/logger/fatal-visibility.d.mts +1 -2
  683. package/esm/logger/fatal-visibility.d.mts.map +1 -1
  684. package/esm/logger/index.d.mts +2 -1
  685. package/esm/logger/index.mjs +1 -1
  686. package/esm/logger/logger.d.mts +1 -3
  687. package/esm/logger/logger.d.mts.map +1 -1
  688. package/esm/logger/types.d.mts +2 -3
  689. package/esm/logger/types.d.mts.map +1 -1
  690. package/esm/mail/config.d.mts +21 -12
  691. package/esm/mail/config.d.mts.map +1 -1
  692. package/esm/mail/config.mjs +16 -1
  693. package/esm/mail/config.mjs.map +1 -1
  694. package/esm/mail/events.d.mts +4 -6
  695. package/esm/mail/events.d.mts.map +1 -1
  696. package/esm/mail/index.d.mts +3 -2
  697. package/esm/mail/index.mjs +2 -2
  698. package/esm/mail/mail.d.mts +1 -3
  699. package/esm/mail/mail.d.mts.map +1 -1
  700. package/esm/mail/mailer-pool.d.mts +5 -7
  701. package/esm/mail/mailer-pool.d.mts.map +1 -1
  702. package/esm/mail/react-mail.d.mts +1 -3
  703. package/esm/mail/react-mail.d.mts.map +1 -1
  704. package/esm/mail/send-mail.d.mts +1 -3
  705. package/esm/mail/send-mail.d.mts.map +1 -1
  706. package/esm/mail/send-mail.mjs +2 -1
  707. package/esm/mail/send-mail.mjs.map +1 -1
  708. package/esm/mail/test-mailbox.d.mts +11 -13
  709. package/esm/mail/test-mailbox.d.mts.map +1 -1
  710. package/esm/mail/types.d.mts +17 -18
  711. package/esm/mail/types.d.mts.map +1 -1
  712. package/esm/manifest/manifest-manager.mjs +1 -1
  713. package/esm/net/index.d.mts +2 -0
  714. package/esm/net/index.mjs +3 -0
  715. package/esm/openapi/build-openapi-document.d.mts +2 -4
  716. package/esm/openapi/build-openapi-document.d.mts.map +1 -1
  717. package/esm/openapi/build-openapi-document.mjs +8 -5
  718. package/esm/openapi/build-openapi-document.mjs.map +1 -1
  719. package/esm/openapi/cast-schema.mjs +1 -1
  720. package/esm/openapi/development-openapi-provider.d.mts +5 -6
  721. package/esm/openapi/development-openapi-provider.d.mts.map +1 -1
  722. package/esm/openapi/error-responses.mjs +28 -2
  723. package/esm/openapi/error-responses.mjs.map +1 -1
  724. package/esm/openapi/index.d.mts +3 -1
  725. package/esm/openapi/index.mjs +1 -1
  726. package/esm/openapi/openapi-child-output.mjs +2 -2
  727. package/esm/openapi/openapi-child-output.mjs.map +1 -1
  728. package/esm/openapi/postman/build-request-body.mjs.map +1 -1
  729. package/esm/openapi/postman/build-request-url.mjs +1 -1
  730. package/esm/openapi/postman/build-request-url.mjs.map +1 -1
  731. package/esm/openapi/postman/build-saved-responses.mjs.map +1 -1
  732. package/esm/openapi/postman/example-from-schema.d.mts +1 -3
  733. package/esm/openapi/postman/example-from-schema.d.mts.map +1 -1
  734. package/esm/openapi/postman/example-from-schema.mjs.map +1 -1
  735. package/esm/openapi/postman/index.d.mts +2 -1
  736. package/esm/openapi/postman/openapi-to-postman-collection.d.mts +3 -5
  737. package/esm/openapi/postman/openapi-to-postman-collection.d.mts.map +1 -1
  738. package/esm/openapi/postman/openapi-to-postman-collection.mjs.map +1 -1
  739. package/esm/openapi/postman/postman-types.d.mts +19 -18
  740. package/esm/openapi/postman/postman-types.d.mts.map +1 -1
  741. package/esm/openapi/postman/schema-refs.d.mts +1 -3
  742. package/esm/openapi/postman/schema-refs.d.mts.map +1 -1
  743. package/esm/openapi/postman/schema-refs.mjs.map +1 -1
  744. package/esm/openapi/postman/uuid-v5.mjs +1 -1
  745. package/esm/openapi/postman/uuid-v5.mjs.map +1 -1
  746. package/esm/openapi/request-schemas.mjs.map +1 -1
  747. package/esm/openapi/response-schemas.mjs.map +1 -1
  748. package/esm/openapi/schema-registry.d.mts +1 -0
  749. package/esm/openapi/schema-registry.mjs.map +1 -1
  750. package/esm/openapi/security.mjs +1 -1
  751. package/esm/openapi/security.mjs.map +1 -1
  752. package/esm/openapi/types.d.mts +23 -20
  753. package/esm/openapi/types.d.mts.map +1 -1
  754. package/esm/production/assert-generated-imports.mjs +2 -1
  755. package/esm/production/assert-generated-imports.mjs.map +1 -1
  756. package/esm/production/build-contributions.mjs +1 -1
  757. package/esm/production/bundle-framework-dependencies.mjs +1 -1
  758. package/esm/production/dist-build-manifest.mjs +1 -1
  759. package/esm/production/esbuild-plugins.mjs.map +1 -1
  760. package/esm/production/esbuild-preflight.mjs +1 -1
  761. package/esm/production/production-builder.mjs +14 -5
  762. package/esm/production/production-builder.mjs.map +1 -1
  763. package/esm/production/production-supervisor.mjs +1 -1
  764. package/esm/production/registration-child-runner.mjs +4 -3
  765. package/esm/production/registration-child-runner.mjs.map +1 -1
  766. package/esm/production/resolve-build-config.d.mts +4 -4
  767. package/esm/production/resolve-build-config.d.mts.map +1 -1
  768. package/esm/production/resolve-build-config.mjs +2 -1
  769. package/esm/production/resolve-build-config.mjs.map +1 -1
  770. package/esm/production/route-registration-child.d.mts +1 -1
  771. package/esm/production/route-registration-child.mjs +8 -7
  772. package/esm/production/route-registration-child.mjs.map +1 -1
  773. package/esm/production/route-registration-snapshot.mjs.map +1 -1
  774. package/esm/production/tsconfig-path-aliases.mjs +1 -1
  775. package/esm/react/index.d.mts +1 -3
  776. package/esm/react/index.d.mts.map +1 -1
  777. package/esm/react/index.mjs.map +1 -1
  778. package/esm/repositories/adapters/cascade/cascade-adapter.d.mts +3 -4
  779. package/esm/repositories/adapters/cascade/cascade-adapter.d.mts.map +1 -1
  780. package/esm/repositories/adapters/cascade/cascade-query-builder.d.mts +2 -3
  781. package/esm/repositories/adapters/cascade/cascade-query-builder.d.mts.map +1 -1
  782. package/esm/repositories/adapters/cascade/filter-applicator.mjs +10 -9
  783. package/esm/repositories/adapters/cascade/filter-applicator.mjs.map +1 -1
  784. package/esm/repositories/adapters/cascade/index.d.mts +2 -1
  785. package/esm/repositories/adapters/cascade/index.mjs +1 -1
  786. package/esm/repositories/contracts/index.d.mts +2 -1
  787. package/esm/repositories/contracts/query-builder.contract.d.mts +4 -6
  788. package/esm/repositories/contracts/query-builder.contract.d.mts.map +1 -1
  789. package/esm/repositories/contracts/repository-adapter.contract.d.mts +1 -3
  790. package/esm/repositories/contracts/repository-adapter.contract.d.mts.map +1 -1
  791. package/esm/repositories/contracts/types.d.mts +23 -25
  792. package/esm/repositories/contracts/types.d.mts.map +1 -1
  793. package/esm/repositories/index.d.mts +4 -1
  794. package/esm/repositories/index.mjs +1 -1
  795. package/esm/repositories/repository.manager.d.mts +2 -3
  796. package/esm/repositories/repository.manager.d.mts.map +1 -1
  797. package/esm/repositories/repository.manager.mjs +2 -2
  798. package/esm/repositories/repository.manager.mjs.map +1 -1
  799. package/esm/resource/define-resource.d.mts +3 -5
  800. package/esm/resource/define-resource.d.mts.map +1 -1
  801. package/esm/resource/index.d.mts +2 -1
  802. package/esm/resource/index.mjs +1 -1
  803. package/esm/resource/nullable-resource.d.mts +5 -7
  804. package/esm/resource/nullable-resource.d.mts.map +1 -1
  805. package/esm/resource/register-resource.d.mts +1 -3
  806. package/esm/resource/register-resource.d.mts.map +1 -1
  807. package/esm/resource/resource-field-builder.d.mts +1 -3
  808. package/esm/resource/resource-field-builder.d.mts.map +1 -1
  809. package/esm/resource/resource.d.mts +3 -5
  810. package/esm/resource/resource.d.mts.map +1 -1
  811. package/esm/resource/resource.mjs +4 -2
  812. package/esm/resource/resource.mjs.map +1 -1
  813. package/esm/resource/types.d.mts +21 -21
  814. package/esm/resource/types.d.mts.map +1 -1
  815. package/esm/restful/index.d.mts +2 -1
  816. package/esm/restful/index.mjs +1 -1
  817. package/esm/restful/restful.d.mts +11 -31
  818. package/esm/restful/restful.d.mts.map +1 -1
  819. package/esm/restful/restful.mjs.map +1 -1
  820. package/esm/router/build-route-rate-limit.mjs.map +1 -1
  821. package/esm/router/dev-dispatch.mjs +31 -12
  822. package/esm/router/dev-dispatch.mjs.map +1 -1
  823. package/esm/router/index.d.mts +5 -2
  824. package/esm/router/index.mjs +3 -1
  825. package/esm/router/log-request-lifecycle.mjs.map +1 -1
  826. package/esm/router/named-api-routes-with-responses.mjs +2 -1
  827. package/esm/router/named-api-routes-with-responses.mjs.map +1 -1
  828. package/esm/router/normalize-request-path.d.mts +1 -2
  829. package/esm/router/normalize-request-path.d.mts.map +1 -1
  830. package/esm/router/normalize-route-path.d.mts +1 -2
  831. package/esm/router/normalize-route-path.d.mts.map +1 -1
  832. package/esm/router/positional-handler-diagnostics.d.mts +15 -13
  833. package/esm/router/positional-handler-diagnostics.d.mts.map +1 -1
  834. package/esm/router/positional-handler-diagnostics.mjs.map +1 -1
  835. package/esm/router/resolve-route-rate-limit.mjs +47 -0
  836. package/esm/router/resolve-route-rate-limit.mjs.map +1 -0
  837. package/esm/router/resolve-route-validation.mjs +19 -0
  838. package/esm/router/resolve-route-validation.mjs.map +1 -0
  839. package/esm/router/route-builder.d.mts +1 -3
  840. package/esm/router/route-builder.d.mts.map +1 -1
  841. package/esm/router/route-guard-names.mjs +30 -0
  842. package/esm/router/route-guard-names.mjs.map +1 -0
  843. package/esm/router/route-name-method-suffix.d.mts +2 -3
  844. package/esm/router/route-name-method-suffix.d.mts.map +1 -1
  845. package/esm/router/route-name-taken-error.d.mts +12 -0
  846. package/esm/router/route-name-taken-error.d.mts.map +1 -0
  847. package/esm/router/route-name-taken-error.mjs +18 -0
  848. package/esm/router/route-name-taken-error.mjs.map +1 -0
  849. package/esm/router/route-registry.d.mts +1 -3
  850. package/esm/router/route-registry.d.mts.map +1 -1
  851. package/esm/router/router.d.mts +34 -17
  852. package/esm/router/router.d.mts.map +1 -1
  853. package/esm/router/router.mjs +74 -39
  854. package/esm/router/router.mjs.map +1 -1
  855. package/esm/router/types.d.mts +156 -37
  856. package/esm/router/types.d.mts.map +1 -1
  857. package/esm/router/unguarded-route-diagnostics.d.mts +38 -0
  858. package/esm/router/unguarded-route-diagnostics.d.mts.map +1 -0
  859. package/esm/router/unguarded-route-diagnostics.mjs +95 -0
  860. package/esm/router/unguarded-route-diagnostics.mjs.map +1 -0
  861. package/esm/socket/index.d.mts +2 -1
  862. package/esm/socket/index.mjs +1 -1
  863. package/esm/socket/types.d.mts +2 -4
  864. package/esm/socket/types.d.mts.map +1 -1
  865. package/esm/socket/utils.d.mts +1 -3
  866. package/esm/socket/utils.d.mts.map +1 -1
  867. package/esm/storage/config.d.mts +4 -6
  868. package/esm/storage/config.d.mts.map +1 -1
  869. package/esm/storage/context/storage-driver-context.d.mts +3 -4
  870. package/esm/storage/context/storage-driver-context.d.mts.map +1 -1
  871. package/esm/storage/drivers/cloud-driver.d.mts +2 -4
  872. package/esm/storage/drivers/cloud-driver.d.mts.map +1 -1
  873. package/esm/storage/drivers/cloud-driver.mjs.map +1 -1
  874. package/esm/storage/drivers/do-spaces-driver.d.mts +1 -3
  875. package/esm/storage/drivers/do-spaces-driver.d.mts.map +1 -1
  876. package/esm/storage/drivers/local-driver.d.mts +2 -3
  877. package/esm/storage/drivers/local-driver.d.mts.map +1 -1
  878. package/esm/storage/drivers/local-driver.mjs +8 -3
  879. package/esm/storage/drivers/local-driver.mjs.map +1 -1
  880. package/esm/storage/drivers/r2-driver.d.mts +1 -3
  881. package/esm/storage/drivers/r2-driver.d.mts.map +1 -1
  882. package/esm/storage/drivers/s3-driver.d.mts +1 -3
  883. package/esm/storage/drivers/s3-driver.d.mts.map +1 -1
  884. package/esm/storage/index.d.mts +2 -1
  885. package/esm/storage/index.mjs +1 -1
  886. package/esm/storage/local-disk-roots.mjs +24 -0
  887. package/esm/storage/local-disk-roots.mjs.map +1 -0
  888. package/esm/storage/scoped-storage.d.mts +2 -3
  889. package/esm/storage/scoped-storage.d.mts.map +1 -1
  890. package/esm/storage/storage-file.d.mts +1 -3
  891. package/esm/storage/storage-file.d.mts.map +1 -1
  892. package/esm/storage/storage.d.mts +17 -4
  893. package/esm/storage/storage.d.mts.map +1 -1
  894. package/esm/storage/storage.mjs +22 -0
  895. package/esm/storage/storage.mjs.map +1 -1
  896. package/esm/storage/types.d.mts +36 -36
  897. package/esm/storage/types.d.mts.map +1 -1
  898. package/esm/storage/utils/classify-ip-address.d.mts +1 -2
  899. package/esm/storage/utils/classify-ip-address.d.mts.map +1 -1
  900. package/esm/storage/utils/contain-path.d.mts +1 -2
  901. package/esm/storage/utils/contain-path.d.mts.map +1 -1
  902. package/esm/storage/utils/mime.d.mts +2 -3
  903. package/esm/storage/utils/mime.d.mts.map +1 -1
  904. package/esm/storage/utils/safe-fetch.d.mts +6 -6
  905. package/esm/storage/utils/safe-fetch.d.mts.map +1 -1
  906. package/esm/storage/utils/safe-fetch.mjs +3 -3
  907. package/esm/storage/utils/safe-fetch.mjs.map +1 -1
  908. package/esm/storage/utils/storage-capability-error.d.mts +1 -3
  909. package/esm/storage/utils/storage-capability-error.d.mts.map +1 -1
  910. package/esm/storage/utils/storage-error.d.mts +2 -3
  911. package/esm/storage/utils/storage-error.d.mts.map +1 -1
  912. package/esm/storage/utils/storage-not-initialized-error.d.mts +3 -2
  913. package/esm/storage/utils/storage-not-initialized-error.d.mts.map +1 -1
  914. package/esm/storage/utils/storage-not-initialized-error.mjs +1 -0
  915. package/esm/storage/utils/storage-not-initialized-error.mjs.map +1 -1
  916. package/esm/tests/authenticated-test-client.d.mts +31 -0
  917. package/esm/tests/authenticated-test-client.d.mts.map +1 -0
  918. package/esm/tests/authenticated-test-client.mjs +40 -0
  919. package/esm/tests/authenticated-test-client.mjs.map +1 -0
  920. package/esm/tests/factories.d.mts +74 -0
  921. package/esm/tests/factories.d.mts.map +1 -0
  922. package/esm/tests/factories.mjs +105 -0
  923. package/esm/tests/factories.mjs.map +1 -0
  924. package/esm/tests/fakes/cache-fake.d.mts +34 -0
  925. package/esm/tests/fakes/cache-fake.d.mts.map +1 -0
  926. package/esm/tests/fakes/cache-fake.mjs +79 -0
  927. package/esm/tests/fakes/cache-fake.mjs.map +1 -0
  928. package/esm/tests/fakes/clock-fake.d.mts +37 -0
  929. package/esm/tests/fakes/clock-fake.d.mts.map +1 -0
  930. package/esm/tests/fakes/clock-fake.mjs +69 -0
  931. package/esm/tests/fakes/clock-fake.mjs.map +1 -0
  932. package/esm/tests/fakes/fake-assertion-error.d.mts +12 -0
  933. package/esm/tests/fakes/fake-assertion-error.d.mts.map +1 -0
  934. package/esm/tests/fakes/fake-assertion-error.mjs +20 -0
  935. package/esm/tests/fakes/fake-assertion-error.mjs.map +1 -0
  936. package/esm/tests/fakes/ids-fake.d.mts +23 -0
  937. package/esm/tests/fakes/ids-fake.d.mts.map +1 -0
  938. package/esm/tests/fakes/ids-fake.mjs +57 -0
  939. package/esm/tests/fakes/ids-fake.mjs.map +1 -0
  940. package/esm/tests/fakes/index.d.mts +9 -0
  941. package/esm/tests/fakes/index.mjs +10 -0
  942. package/esm/tests/fakes/mail-fake.d.mts +49 -0
  943. package/esm/tests/fakes/mail-fake.d.mts.map +1 -0
  944. package/esm/tests/fakes/mail-fake.mjs +111 -0
  945. package/esm/tests/fakes/mail-fake.mjs.map +1 -0
  946. package/esm/tests/fakes/queue-fake.d.mts +56 -0
  947. package/esm/tests/fakes/queue-fake.d.mts.map +1 -0
  948. package/esm/tests/fakes/queue-fake.mjs +134 -0
  949. package/esm/tests/fakes/queue-fake.mjs.map +1 -0
  950. package/esm/tests/fakes/storage-fake.d.mts +35 -0
  951. package/esm/tests/fakes/storage-fake.d.mts.map +1 -0
  952. package/esm/tests/fakes/storage-fake.mjs +122 -0
  953. package/esm/tests/fakes/storage-fake.mjs.map +1 -0
  954. package/esm/tests/fakes/test-fakes.d.mts +38 -0
  955. package/esm/tests/fakes/test-fakes.d.mts.map +1 -0
  956. package/esm/tests/fakes/test-fakes.mjs +90 -0
  957. package/esm/tests/fakes/test-fakes.mjs.map +1 -0
  958. package/esm/tests/index.d.mts +15 -2
  959. package/esm/tests/index.mjs +15 -2
  960. package/esm/tests/snapshot-response.d.mts +33 -0
  961. package/esm/tests/snapshot-response.d.mts.map +1 -0
  962. package/esm/tests/snapshot-response.mjs +42 -0
  963. package/esm/tests/snapshot-response.mjs.map +1 -0
  964. package/esm/tests/start-http-development-server.d.mts +25 -5
  965. package/esm/tests/start-http-development-server.d.mts.map +1 -1
  966. package/esm/tests/start-http-development-server.mjs +41 -8
  967. package/esm/tests/start-http-development-server.mjs.map +1 -1
  968. package/esm/tests/test-connectors-selection.d.mts +2 -2
  969. package/esm/tests/test-connectors-selection.d.mts.map +1 -1
  970. package/esm/tests/test-connectors-selection.mjs +1 -1
  971. package/esm/tests/test-helpers.d.mts +28 -10
  972. package/esm/tests/test-helpers.d.mts.map +1 -1
  973. package/esm/tests/test-helpers.mjs +40 -27
  974. package/esm/tests/test-helpers.mjs.map +1 -1
  975. package/esm/tests/test-http-server.d.mts +66 -0
  976. package/esm/tests/test-http-server.d.mts.map +1 -0
  977. package/esm/tests/test-http-server.mjs +119 -0
  978. package/esm/tests/test-http-server.mjs.map +1 -0
  979. package/esm/tests/test-lifecycle-state.mjs +1 -1
  980. package/esm/tests/vitest-setup.d.mts +17 -7
  981. package/esm/tests/vitest-setup.d.mts.map +1 -1
  982. package/esm/tests/vitest-setup.mjs +12 -4
  983. package/esm/tests/vitest-setup.mjs.map +1 -1
  984. package/esm/tooling/agents-md/agents-md-markers.d.mts +26 -0
  985. package/esm/tooling/agents-md/agents-md-markers.d.mts.map +1 -0
  986. package/esm/tooling/agents-md/agents-md-markers.mjs +60 -0
  987. package/esm/tooling/agents-md/agents-md-markers.mjs.map +1 -0
  988. package/esm/tooling/agents-md/agents-md-refresher.d.mts +43 -0
  989. package/esm/tooling/agents-md/agents-md-refresher.d.mts.map +1 -0
  990. package/esm/tooling/agents-md/agents-md-refresher.mjs +72 -0
  991. package/esm/tooling/agents-md/agents-md-refresher.mjs.map +1 -0
  992. package/esm/tooling/agents-md/index.mjs +7 -0
  993. package/esm/tooling/agents-md/installed-skills.d.mts +34 -0
  994. package/esm/tooling/agents-md/installed-skills.d.mts.map +1 -0
  995. package/esm/tooling/agents-md/installed-skills.mjs +74 -0
  996. package/esm/tooling/agents-md/installed-skills.mjs.map +1 -0
  997. package/esm/tooling/agents-md/render-agents-md.d.mts +34 -0
  998. package/esm/tooling/agents-md/render-agents-md.d.mts.map +1 -0
  999. package/esm/tooling/agents-md/render-agents-md.mjs +195 -0
  1000. package/esm/tooling/agents-md/render-agents-md.mjs.map +1 -0
  1001. package/esm/tooling/agents-md/write-agents-md.d.mts +38 -0
  1002. package/esm/tooling/agents-md/write-agents-md.d.mts.map +1 -0
  1003. package/esm/tooling/agents-md/write-agents-md.mjs +49 -0
  1004. package/esm/tooling/agents-md/write-agents-md.mjs.map +1 -0
  1005. package/esm/tooling/board/board-message.d.mts +29 -0
  1006. package/esm/tooling/board/board-message.d.mts.map +1 -0
  1007. package/esm/tooling/board/board-message.mjs +86 -0
  1008. package/esm/tooling/board/board-message.mjs.map +1 -0
  1009. package/esm/tooling/board/board.d.mts +121 -0
  1010. package/esm/tooling/board/board.d.mts.map +1 -0
  1011. package/esm/tooling/board/board.mjs +407 -0
  1012. package/esm/tooling/board/board.mjs.map +1 -0
  1013. package/esm/tooling/board/board.types.d.mts +81 -0
  1014. package/esm/tooling/board/board.types.d.mts.map +1 -0
  1015. package/esm/tooling/board/board.types.mjs +54 -0
  1016. package/esm/tooling/board/board.types.mjs.map +1 -0
  1017. package/esm/tooling/check/changed-files.d.mts +31 -0
  1018. package/esm/tooling/check/changed-files.d.mts.map +1 -0
  1019. package/esm/tooling/check/changed-files.mjs +73 -0
  1020. package/esm/tooling/check/changed-files.mjs.map +1 -0
  1021. package/esm/tooling/check/check-report.types.d.mts +67 -0
  1022. package/esm/tooling/check/check-report.types.d.mts.map +1 -0
  1023. package/esm/tooling/check/check-report.types.mjs +37 -0
  1024. package/esm/tooling/check/check-report.types.mjs.map +1 -0
  1025. package/esm/tooling/check/code-style-conventions.mjs +106 -0
  1026. package/esm/tooling/check/code-style-conventions.mjs.map +1 -0
  1027. package/esm/tooling/check/conventions-step.d.mts +32 -0
  1028. package/esm/tooling/check/conventions-step.d.mts.map +1 -0
  1029. package/esm/tooling/check/conventions-step.mjs +173 -0
  1030. package/esm/tooling/check/conventions-step.mjs.map +1 -0
  1031. package/esm/tooling/check/environment-step.d.mts +16 -0
  1032. package/esm/tooling/check/environment-step.d.mts.map +1 -0
  1033. package/esm/tooling/check/environment-step.mjs +78 -0
  1034. package/esm/tooling/check/environment-step.mjs.map +1 -0
  1035. package/esm/tooling/check/index.mjs +10 -0
  1036. package/esm/tooling/check/lint-step.d.mts +18 -0
  1037. package/esm/tooling/check/lint-step.d.mts.map +1 -0
  1038. package/esm/tooling/check/lint-step.mjs +112 -0
  1039. package/esm/tooling/check/lint-step.mjs.map +1 -0
  1040. package/esm/tooling/check/request-input.mjs +132 -0
  1041. package/esm/tooling/check/request-input.mjs.map +1 -0
  1042. package/esm/tooling/check/run-check.d.mts +43 -0
  1043. package/esm/tooling/check/run-check.d.mts.map +1 -0
  1044. package/esm/tooling/check/run-check.mjs +192 -0
  1045. package/esm/tooling/check/run-check.mjs.map +1 -0
  1046. package/esm/tooling/check/run-tests.d.mts +55 -0
  1047. package/esm/tooling/check/run-tests.d.mts.map +1 -0
  1048. package/esm/tooling/check/run-tests.mjs +93 -0
  1049. package/esm/tooling/check/run-tests.mjs.map +1 -0
  1050. package/esm/tooling/check/security-conventions.mjs +650 -0
  1051. package/esm/tooling/check/security-conventions.mjs.map +1 -0
  1052. package/esm/tooling/check/source-ast.mjs +155 -0
  1053. package/esm/tooling/check/source-ast.mjs.map +1 -0
  1054. package/esm/tooling/check/source-files.mjs +27 -0
  1055. package/esm/tooling/check/source-files.mjs.map +1 -0
  1056. package/esm/tooling/check/tests-step.d.mts +33 -0
  1057. package/esm/tooling/check/tests-step.d.mts.map +1 -0
  1058. package/esm/tooling/check/tests-step.mjs +177 -0
  1059. package/esm/tooling/check/tests-step.mjs.map +1 -0
  1060. package/esm/tooling/dev-state/dev-server-state.d.mts +43 -0
  1061. package/esm/tooling/dev-state/dev-server-state.d.mts.map +1 -0
  1062. package/esm/tooling/dev-state/dev-server-state.mjs +67 -0
  1063. package/esm/tooling/dev-state/dev-server-state.mjs.map +1 -0
  1064. package/esm/tooling/devtools/devtools-client.d.mts +100 -0
  1065. package/esm/tooling/devtools/devtools-client.d.mts.map +1 -0
  1066. package/esm/tooling/devtools/devtools-client.mjs +155 -0
  1067. package/esm/tooling/devtools/devtools-client.mjs.map +1 -0
  1068. package/esm/tooling/generate/generation.d.mts +90 -0
  1069. package/esm/tooling/generate/generation.d.mts.map +1 -0
  1070. package/esm/tooling/generate/generation.mjs +127 -0
  1071. package/esm/tooling/generate/generation.mjs.map +1 -0
  1072. package/esm/tooling/generate/generator-spec.d.mts +57 -0
  1073. package/esm/tooling/generate/generator-spec.d.mts.map +1 -0
  1074. package/esm/tooling/generate/generator-spec.mjs +102 -0
  1075. package/esm/tooling/generate/generator-spec.mjs.map +1 -0
  1076. package/esm/tooling/generate/index.mjs +6 -0
  1077. package/esm/tooling/generate/project-files.mjs +121 -0
  1078. package/esm/tooling/generate/project-files.mjs.map +1 -0
  1079. package/esm/tooling/generate/run-cli.d.mts +43 -0
  1080. package/esm/tooling/generate/run-cli.d.mts.map +1 -0
  1081. package/esm/tooling/generate/run-cli.mjs +93 -0
  1082. package/esm/tooling/generate/run-cli.mjs.map +1 -0
  1083. package/esm/tooling/generate/unified-diff.d.mts +40 -0
  1084. package/esm/tooling/generate/unified-diff.d.mts.map +1 -0
  1085. package/esm/tooling/generate/unified-diff.mjs +161 -0
  1086. package/esm/tooling/generate/unified-diff.mjs.map +1 -0
  1087. package/esm/tooling/index.d.mts +42 -0
  1088. package/esm/tooling/index.mjs +45 -0
  1089. package/esm/tooling/inspect/boot-for-inspect.d.mts +23 -0
  1090. package/esm/tooling/inspect/boot-for-inspect.d.mts.map +1 -0
  1091. package/esm/tooling/inspect/boot-for-inspect.mjs +63 -0
  1092. package/esm/tooling/inspect/boot-for-inspect.mjs.map +1 -0
  1093. package/esm/tooling/inspect/collect-config.mjs +77 -0
  1094. package/esm/tooling/inspect/collect-config.mjs.map +1 -0
  1095. package/esm/tooling/inspect/collect-models.d.mts +10 -0
  1096. package/esm/tooling/inspect/collect-models.d.mts.map +1 -0
  1097. package/esm/tooling/inspect/collect-models.mjs +154 -0
  1098. package/esm/tooling/inspect/collect-models.mjs.map +1 -0
  1099. package/esm/tooling/inspect/collect-packages.d.mts +9 -0
  1100. package/esm/tooling/inspect/collect-packages.d.mts.map +1 -0
  1101. package/esm/tooling/inspect/collect-packages.mjs +157 -0
  1102. package/esm/tooling/inspect/collect-packages.mjs.map +1 -0
  1103. package/esm/tooling/inspect/collect-pages.mjs +108 -0
  1104. package/esm/tooling/inspect/collect-pages.mjs.map +1 -0
  1105. package/esm/tooling/inspect/collect-routes.mjs +168 -0
  1106. package/esm/tooling/inspect/collect-routes.mjs.map +1 -0
  1107. package/esm/tooling/inspect/event-recorder.d.mts +37 -0
  1108. package/esm/tooling/inspect/event-recorder.d.mts.map +1 -0
  1109. package/esm/tooling/inspect/event-recorder.mjs +91 -0
  1110. package/esm/tooling/inspect/event-recorder.mjs.map +1 -0
  1111. package/esm/tooling/inspect/index.d.mts +8 -0
  1112. package/esm/tooling/inspect/index.mjs +7 -0
  1113. package/esm/tooling/inspect/inspect-app.d.mts +62 -0
  1114. package/esm/tooling/inspect/inspect-app.d.mts.map +1 -0
  1115. package/esm/tooling/inspect/inspect-app.mjs +92 -0
  1116. package/esm/tooling/inspect/inspect-app.mjs.map +1 -0
  1117. package/esm/tooling/inspect/inspect-report.schema.d.mts +14 -0
  1118. package/esm/tooling/inspect/inspect-report.schema.d.mts.map +1 -0
  1119. package/esm/tooling/inspect/inspect-report.schema.mjs +463 -0
  1120. package/esm/tooling/inspect/inspect-report.schema.mjs.map +1 -0
  1121. package/esm/tooling/inspect/inspect-report.types.d.mts +228 -0
  1122. package/esm/tooling/inspect/inspect-report.types.d.mts.map +1 -0
  1123. package/esm/tooling/inspect/inspect-report.types.mjs +33 -0
  1124. package/esm/tooling/inspect/inspect-report.types.mjs.map +1 -0
  1125. package/esm/tooling/mcp/create-mcp-context.d.mts +29 -0
  1126. package/esm/tooling/mcp/create-mcp-context.d.mts.map +1 -0
  1127. package/esm/tooling/mcp/create-mcp-context.mjs +75 -0
  1128. package/esm/tooling/mcp/create-mcp-context.mjs.map +1 -0
  1129. package/esm/tooling/mcp/db-schema.d.mts +50 -0
  1130. package/esm/tooling/mcp/db-schema.d.mts.map +1 -0
  1131. package/esm/tooling/mcp/db-schema.mjs +56 -0
  1132. package/esm/tooling/mcp/db-schema.mjs.map +1 -0
  1133. package/esm/tooling/mcp/docs-search.d.mts +77 -0
  1134. package/esm/tooling/mcp/docs-search.d.mts.map +1 -0
  1135. package/esm/tooling/mcp/docs-search.mjs +178 -0
  1136. package/esm/tooling/mcp/docs-search.mjs.map +1 -0
  1137. package/esm/tooling/mcp/index.mjs +9 -0
  1138. package/esm/tooling/mcp/load-ai-tools.d.mts +61 -0
  1139. package/esm/tooling/mcp/load-ai-tools.d.mts.map +1 -0
  1140. package/esm/tooling/mcp/load-ai-tools.mjs +45 -0
  1141. package/esm/tooling/mcp/load-ai-tools.mjs.map +1 -0
  1142. package/esm/tooling/mcp/mcp-tools.d.mts +70 -0
  1143. package/esm/tooling/mcp/mcp-tools.d.mts.map +1 -0
  1144. package/esm/tooling/mcp/mcp-tools.mjs +514 -0
  1145. package/esm/tooling/mcp/mcp-tools.mjs.map +1 -0
  1146. package/esm/tooling/mcp/start-mcp-server.d.mts +63 -0
  1147. package/esm/tooling/mcp/start-mcp-server.d.mts.map +1 -0
  1148. package/esm/tooling/mcp/start-mcp-server.mjs +126 -0
  1149. package/esm/tooling/mcp/start-mcp-server.mjs.map +1 -0
  1150. package/esm/tooling/mcp/tool-input.d.mts +75 -0
  1151. package/esm/tooling/mcp/tool-input.d.mts.map +1 -0
  1152. package/esm/tooling/mcp/tool-input.mjs +72 -0
  1153. package/esm/tooling/mcp/tool-input.mjs.map +1 -0
  1154. package/esm/tooling/problem.d.mts +55 -0
  1155. package/esm/tooling/problem.d.mts.map +1 -0
  1156. package/esm/tooling/problem.mjs +28 -0
  1157. package/esm/tooling/problem.mjs.map +1 -0
  1158. package/esm/tooling/syntax/ast.mjs +230 -0
  1159. package/esm/tooling/syntax/ast.mjs.map +1 -0
  1160. package/esm/tooling/syntax/imports.mjs +34 -0
  1161. package/esm/tooling/syntax/imports.mjs.map +1 -0
  1162. package/esm/tooling/trace/trace-report.types.d.mts +85 -0
  1163. package/esm/tooling/trace/trace-report.types.d.mts.map +1 -0
  1164. package/esm/tooling/trace/trace-report.types.mjs +7 -0
  1165. package/esm/tooling/trace/trace-report.types.mjs.map +1 -0
  1166. package/esm/tooling/trace/trace-request.d.mts +90 -0
  1167. package/esm/tooling/trace/trace-request.d.mts.map +1 -0
  1168. package/esm/tooling/trace/trace-request.mjs +241 -0
  1169. package/esm/tooling/trace/trace-request.mjs.map +1 -0
  1170. package/esm/tooling/typecheck/index.mjs +3 -0
  1171. package/esm/tooling/typecheck/run-typecheck.d.mts +26 -0
  1172. package/esm/tooling/typecheck/run-typecheck.d.mts.map +1 -0
  1173. package/esm/tooling/typecheck/run-typecheck.mjs +90 -0
  1174. package/esm/tooling/typecheck/run-typecheck.mjs.map +1 -0
  1175. package/esm/tooling/typescript/compiler.d.mts +31 -0
  1176. package/esm/tooling/typescript/compiler.d.mts.map +1 -0
  1177. package/esm/tooling/typescript/compiler.mjs +120 -0
  1178. package/esm/tooling/typescript/compiler.mjs.map +1 -0
  1179. package/esm/updater/update-warlock-packages.mjs +3 -2
  1180. package/esm/updater/update-warlock-packages.mjs.map +1 -1
  1181. package/esm/upgrade/codemods/head-viewport.mjs +46 -0
  1182. package/esm/upgrade/codemods/head-viewport.mjs.map +1 -0
  1183. package/esm/upgrade/codemods/helpers.mjs +81 -0
  1184. package/esm/upgrade/codemods/helpers.mjs.map +1 -0
  1185. package/esm/upgrade/codemods/index.mjs +34 -0
  1186. package/esm/upgrade/codemods/index.mjs.map +1 -0
  1187. package/esm/upgrade/codemods/logger-sync-calls.mjs +57 -0
  1188. package/esm/upgrade/codemods/logger-sync-calls.mjs.map +1 -0
  1189. package/esm/upgrade/codemods/package-json.mjs +122 -0
  1190. package/esm/upgrade/codemods/package-json.mjs.map +1 -0
  1191. package/esm/upgrade/codemods/request-log-snapshot.mjs +82 -0
  1192. package/esm/upgrade/codemods/request-log-snapshot.mjs.map +1 -0
  1193. package/esm/upgrade/codemods/review-sites.mjs +262 -0
  1194. package/esm/upgrade/codemods/review-sites.mjs.map +1 -0
  1195. package/esm/upgrade/diff.mjs +119 -0
  1196. package/esm/upgrade/diff.mjs.map +1 -0
  1197. package/esm/upgrade/format-upgrade-report.mjs +32 -0
  1198. package/esm/upgrade/format-upgrade-report.mjs.map +1 -0
  1199. package/esm/upgrade/load-ts-morph.mjs +49 -0
  1200. package/esm/upgrade/load-ts-morph.mjs.map +1 -0
  1201. package/esm/upgrade/notes.mjs +16 -0
  1202. package/esm/upgrade/notes.mjs.map +1 -0
  1203. package/esm/upgrade/run-upgrade.mjs +246 -0
  1204. package/esm/upgrade/run-upgrade.mjs.map +1 -0
  1205. package/esm/upgrade/upgrade-command.action.mjs +37 -0
  1206. package/esm/upgrade/upgrade-command.action.mjs.map +1 -0
  1207. package/esm/upgrade/version.mjs +39 -0
  1208. package/esm/upgrade/version.mjs.map +1 -0
  1209. package/esm/use-cases/index.d.mts +2 -1
  1210. package/esm/use-cases/index.mjs +1 -1
  1211. package/esm/use-cases/types.d.mts +116 -63
  1212. package/esm/use-cases/types.d.mts.map +1 -1
  1213. package/esm/use-cases/use-case-broadcast.d.mts +1 -3
  1214. package/esm/use-cases/use-case-broadcast.d.mts.map +1 -1
  1215. package/esm/use-cases/use-case-events.d.mts +3 -5
  1216. package/esm/use-cases/use-case-events.d.mts.map +1 -1
  1217. package/esm/use-cases/use-case-pipeline.d.mts +6 -6
  1218. package/esm/use-cases/use-case-pipeline.d.mts.map +1 -1
  1219. package/esm/use-cases/use-case.d.mts +2 -4
  1220. package/esm/use-cases/use-case.d.mts.map +1 -1
  1221. package/esm/use-cases/use-case.errors.d.mts +1 -3
  1222. package/esm/use-cases/use-case.errors.d.mts.map +1 -1
  1223. package/esm/use-cases/use-cases-registry.d.mts +8 -10
  1224. package/esm/use-cases/use-cases-registry.d.mts.map +1 -1
  1225. package/esm/use-cases/use-cases-registry.mjs.map +1 -1
  1226. package/esm/utils/app-log.d.mts +1 -2
  1227. package/esm/utils/app-log.d.mts.map +1 -1
  1228. package/esm/utils/clock.d.mts +35 -0
  1229. package/esm/utils/clock.d.mts.map +1 -0
  1230. package/esm/utils/clock.mjs +27 -0
  1231. package/esm/utils/clock.mjs.map +1 -0
  1232. package/esm/utils/database-log.d.mts +3 -4
  1233. package/esm/utils/database-log.d.mts.map +1 -1
  1234. package/esm/utils/environment.d.mts +4 -5
  1235. package/esm/utils/environment.d.mts.map +1 -1
  1236. package/esm/utils/framework-vesion.mjs +1 -1
  1237. package/esm/utils/framework-vesion.mjs.map +1 -1
  1238. package/esm/utils/get-localized.d.mts +2 -3
  1239. package/esm/utils/get-localized.d.mts.map +1 -1
  1240. package/esm/utils/ids.d.mts +35 -0
  1241. package/esm/utils/ids.d.mts.map +1 -0
  1242. package/esm/utils/ids.mjs +33 -0
  1243. package/esm/utils/ids.mjs.map +1 -0
  1244. package/esm/utils/index.d.mts +5 -1
  1245. package/esm/utils/index.mjs +4 -1
  1246. package/esm/utils/normalized-path.d.mts +1 -2
  1247. package/esm/utils/normalized-path.d.mts.map +1 -1
  1248. package/esm/utils/npm-registry.d.mts +1 -2
  1249. package/esm/utils/npm-registry.d.mts.map +1 -1
  1250. package/esm/utils/paths.d.mts +13 -14
  1251. package/esm/utils/paths.d.mts.map +1 -1
  1252. package/esm/utils/paths.mjs +2 -2
  1253. package/esm/utils/paths.mjs.map +1 -1
  1254. package/esm/utils/promise-all-object.d.mts +1 -2
  1255. package/esm/utils/promise-all-object.d.mts.map +1 -1
  1256. package/esm/utils/queue.d.mts +1 -2
  1257. package/esm/utils/queue.d.mts.map +1 -1
  1258. package/esm/utils/runtime.d.mts +60 -0
  1259. package/esm/utils/runtime.d.mts.map +1 -0
  1260. package/esm/utils/runtime.mjs +85 -0
  1261. package/esm/utils/runtime.mjs.map +1 -0
  1262. package/esm/utils/sleep.d.mts +1 -2
  1263. package/esm/utils/sleep.d.mts.map +1 -1
  1264. package/esm/utils/sluggable.d.mts +1 -3
  1265. package/esm/utils/sluggable.d.mts.map +1 -1
  1266. package/esm/utils/to-json.d.mts +1 -2
  1267. package/esm/utils/to-json.d.mts.map +1 -1
  1268. package/esm/utils/types.d.mts +1 -2
  1269. package/esm/utils/types.d.mts.map +1 -1
  1270. package/esm/utils/urls.d.mts +5 -6
  1271. package/esm/utils/urls.d.mts.map +1 -1
  1272. package/esm/utils/version-compare.d.mts +1 -2
  1273. package/esm/utils/version-compare.d.mts.map +1 -1
  1274. package/esm/validation/database/exists-except-current-id.d.mts +2 -3
  1275. package/esm/validation/database/exists-except-current-id.d.mts.map +1 -1
  1276. package/esm/validation/database/exists-except-current-user.d.mts +2 -3
  1277. package/esm/validation/database/exists-except-current-user.d.mts.map +1 -1
  1278. package/esm/validation/database/index.d.mts +2 -1
  1279. package/esm/validation/database/index.mjs +1 -1
  1280. package/esm/validation/database/types.d.mts +14 -10
  1281. package/esm/validation/database/types.d.mts.map +1 -1
  1282. package/esm/validation/database/unique-except-current-id.d.mts +2 -3
  1283. package/esm/validation/database/unique-except-current-id.d.mts.map +1 -1
  1284. package/esm/validation/database/unique-except-current-user.d.mts +2 -3
  1285. package/esm/validation/database/unique-except-current-user.d.mts.map +1 -1
  1286. package/esm/validation/file/file.d.mts +4 -6
  1287. package/esm/validation/file/file.d.mts.map +1 -1
  1288. package/esm/validation/file/index.d.mts +2 -1
  1289. package/esm/validation/file/index.mjs +1 -1
  1290. package/esm/validation/index.d.mts +6 -2
  1291. package/esm/validation/index.mjs +1 -1
  1292. package/esm/validation/plugins/index.mjs +1 -1
  1293. package/esm/validation/types.d.mts +61 -4
  1294. package/esm/validation/types.d.mts.map +1 -1
  1295. package/esm/validation/validateAll.mjs +21 -4
  1296. package/esm/validation/validateAll.mjs.map +1 -1
  1297. package/esm/validation/validation-failure-status.mjs +15 -0
  1298. package/esm/validation/validation-failure-status.mjs.map +1 -0
  1299. package/esm/validation/validators/file-validator.d.mts +2 -20
  1300. package/esm/validation/validators/file-validator.d.mts.map +1 -1
  1301. package/esm/validation/validators/index.d.mts +2 -1
  1302. package/esm/validation/validators/index.mjs +1 -1
  1303. package/esm/vite/lower-stage3-decorators.d.mts +2 -3
  1304. package/esm/vite/lower-stage3-decorators.d.mts.map +1 -1
  1305. package/esm/warlock-config/bundle-config.mjs +1 -1
  1306. package/esm/warlock-config/define-config.d.mts +1 -3
  1307. package/esm/warlock-config/define-config.d.mts.map +1 -1
  1308. package/esm/warlock-config/define-config.mjs +3 -2
  1309. package/esm/warlock-config/define-config.mjs.map +1 -1
  1310. package/esm/warlock-config/index.d.mts +2 -1
  1311. package/esm/warlock-config/index.mjs +1 -1
  1312. package/esm/warlock-config/types.d.mts +31 -6
  1313. package/esm/warlock-config/types.d.mts.map +1 -1
  1314. package/esm/warlock-config/warlock-config.manager.d.mts +5 -7
  1315. package/esm/warlock-config/warlock-config.manager.d.mts.map +1 -1
  1316. package/esm/warlock-config/warlock-config.manager.mjs +2 -1
  1317. package/esm/warlock-config/warlock-config.manager.mjs.map +1 -1
  1318. package/esm/warlock-config/warn-deprecated-config.mjs +1 -1
  1319. package/llms-full.txt +3211 -731
  1320. package/llms.txt +16 -6
  1321. package/package.json +47 -15
  1322. package/schemas/inspect-report.schema.json +554 -0
  1323. package/skills/README.md +9 -0
  1324. package/skills/add-connector/SKILL.md +26 -38
  1325. package/skills/benchmark-code/SKILL.md +30 -24
  1326. package/skills/build-restful/SKILL.md +14 -14
  1327. package/skills/build-url/SKILL.md +18 -18
  1328. package/skills/configure-app/SKILL.md +107 -14
  1329. package/skills/create-controller/SKILL.md +25 -12
  1330. package/skills/create-module/SKILL.md +10 -3
  1331. package/skills/define-resource/SKILL.md +32 -29
  1332. package/skills/encrypt-data/SKILL.md +21 -19
  1333. package/skills/generate-openapi/SKILL.md +50 -24
  1334. package/skills/hash-password/SKILL.md +2 -2
  1335. package/skills/health-checks/SKILL.md +24 -7
  1336. package/skills/index.md +11 -4
  1337. package/skills/lower-stage3-decorators/SKILL.md +4 -4
  1338. package/skills/make-endpoint/SKILL.md +110 -0
  1339. package/skills/model-factories/SKILL.md +92 -0
  1340. package/skills/process-image/SKILL.md +32 -30
  1341. package/skills/register-route/SKILL.md +109 -10
  1342. package/skills/report-framework-issue.md +154 -0
  1343. package/skills/request-memo/SKILL.md +1 -1
  1344. package/skills/request-tracing/SKILL.md +4 -1
  1345. package/skills/resolve-path/SKILL.md +45 -44
  1346. package/skills/retry-operation/SKILL.md +20 -11
  1347. package/skills/run-app/SKILL.md +107 -22
  1348. package/skills/send-response/SKILL.md +179 -14
  1349. package/skills/store-file/SKILL.md +93 -53
  1350. package/skills/test-fakes/SKILL.md +123 -0
  1351. package/skills/test-http/SKILL.md +125 -21
  1352. package/skills/test-service/SKILL.md +41 -1
  1353. package/skills/update-packages/SKILL.md +29 -18
  1354. package/skills/upgrade-from-5-29/SKILL.md +454 -0
  1355. package/skills/upload-file/SKILL.md +31 -33
  1356. package/skills/use-app-context/SKILL.md +38 -31
  1357. package/skills/use-middleware/SKILL.md +45 -25
  1358. package/skills/use-model-transformers/SKILL.md +37 -28
  1359. package/skills/use-repository/SKILL.md +2 -2
  1360. package/skills/validate-input/SKILL.md +72 -28
  1361. package/skills/warlock-agents-md/SKILL.md +96 -0
  1362. package/skills/warlock-board/SKILL.md +123 -0
  1363. package/skills/warlock-check/SKILL.md +133 -0
  1364. package/skills/warlock-conventions/SKILL.md +115 -0
  1365. package/skills/warlock-doctor/SKILL.md +55 -22
  1366. package/skills/warlock-inspect/SKILL.md +134 -0
  1367. package/skills/warlock-mcp/SKILL.md +120 -0
  1368. package/skills/warlock-routes/SKILL.md +18 -11
  1369. package/skills/warlock-trace/SKILL.md +81 -0
  1370. package/skills/wire-socket/SKILL.md +8 -8
  1371. package/skills/write-seeder/SKILL.md +46 -32
  1372. package/skills/write-use-case/SKILL.md +40 -27
  1373. package/esm/http/uploads/matches-if-none-match.mjs +0 -13
  1374. package/esm/http/uploads/matches-if-none-match.mjs.map +0 -1
@@ -0,0 +1,126 @@
1
+ import { WarlockError } from "../../errors/warlock-error.mjs";
2
+ import { loadAiToolsServe } from "./load-ai-tools.mjs";
3
+ import { toStandardSchema, validateToolInput } from "./tool-input.mjs";
4
+ import { createWarlockMcpTools, describeToolError } from "./mcp-tools.mjs";
5
+
6
+ //#region ../../packages/core/src/tooling/mcp/start-mcp-server.ts
7
+ const LOOPBACK_HOSTS = /* @__PURE__ */ new Set([
8
+ "127.0.0.1",
9
+ "::1",
10
+ "[::1]",
11
+ "localhost"
12
+ ]);
13
+ /** Whether a bind host is loopback-only. */
14
+ function isLoopbackHost(host) {
15
+ return LOOPBACK_HOSTS.has(host.trim().toLowerCase());
16
+ }
17
+ /** Resolve the transport, refusing a non-loopback bind without a token (`WL7004`). */
18
+ function resolveMcpTransport(transport = { type: "stdio" }) {
19
+ if (transport.type === "stdio") return { type: "stdio" };
20
+ const host = transport.host ?? "127.0.0.1";
21
+ const token = transport.token?.trim();
22
+ if (!isLoopbackHost(host) && !token) throw new WarlockError("WL7004", `warlock mcp --http refuses to listen on ${host} without a token: anything that can reach that address could call the tools. Pass --token or set WARLOCK_MCP_TOKEN.`);
23
+ return {
24
+ type: "http",
25
+ host,
26
+ port: transport.port ?? 0,
27
+ path: transport.path ?? "/mcp",
28
+ ...token ? { auth: { bearer: token } } : {}
29
+ };
30
+ }
31
+ const EMPTY_USAGE = {
32
+ input: 0,
33
+ output: 0,
34
+ total: 0
35
+ };
36
+ function report(name, status, startedAt) {
37
+ const endedAt = /* @__PURE__ */ new Date();
38
+ return {
39
+ runId: `warlock-mcp-${startedAt.getTime()}`,
40
+ name,
41
+ type: "tool",
42
+ status,
43
+ startedAt: startedAt.toISOString(),
44
+ endedAt: endedAt.toISOString(),
45
+ duration: endedAt.getTime() - startedAt.getTime(),
46
+ usage: EMPTY_USAGE,
47
+ children: []
48
+ };
49
+ }
50
+ function isRecord(value) {
51
+ return typeof value === "object" && value !== null && !Array.isArray(value);
52
+ }
53
+ /**
54
+ * Turn a Warlock tool into the contract `ai.mcp.serve` runs: arguments are
55
+ * prechecked (a write on a read-only server), validated against the advertised
56
+ * schema, then run; a failure becomes an `isError` result carrying the WL code
57
+ * and its fix, never a crashed server.
58
+ */
59
+ function toServeContract(tool) {
60
+ return {
61
+ name: tool.name,
62
+ description: tool.description,
63
+ input: toStandardSchema(tool.input),
64
+ execute: (input) => tool.run(input),
65
+ async invoke(raw) {
66
+ const startedAt = /* @__PURE__ */ new Date();
67
+ const input = isRecord(raw) ? raw : {};
68
+ const refusal = tool.precheck?.(input) ?? null;
69
+ const issues = refusal ? [refusal] : validateToolInput(tool.input, raw);
70
+ if (issues.length > 0) return {
71
+ error: /* @__PURE__ */ new Error(`Invalid arguments for ${tool.name}: ${issues.join("; ")}`),
72
+ usage: EMPTY_USAGE,
73
+ report: report(tool.name, "failed", startedAt)
74
+ };
75
+ try {
76
+ return {
77
+ data: await tool.run(input),
78
+ usage: EMPTY_USAGE,
79
+ report: report(tool.name, "completed", startedAt)
80
+ };
81
+ } catch (error) {
82
+ return {
83
+ error: new Error(describeToolError(error)),
84
+ usage: EMPTY_USAGE,
85
+ report: report(tool.name, "failed", startedAt)
86
+ };
87
+ }
88
+ }
89
+ };
90
+ }
91
+ /**
92
+ * Serve the app's tools over MCP — stdio by default, or Streamable HTTP
93
+ * through `@warlock.js/ai-tools` (loopback by default; a token is required off
94
+ * loopback). Read-only unless `context.allowWrites`.
95
+ *
96
+ * @example
97
+ * const server = await startWarlockMcpServer({
98
+ * context,
99
+ * transport: { type: "http", token: process.env.WARLOCK_MCP_TOKEN },
100
+ * });
101
+ * console.error(`MCP at ${server.url}`);
102
+ * await server.close();
103
+ */
104
+ async function startWarlockMcpServer(options) {
105
+ const transport = resolveMcpTransport(options.transport);
106
+ const module = await (options.loadServe ?? (() => loadAiToolsServe(options.context.cwd)))();
107
+ const tools = createWarlockMcpTools(options.context);
108
+ const server = module.serve(tools.map(toServeContract), {
109
+ name: options.name ?? "warlock",
110
+ version: options.version,
111
+ transport
112
+ });
113
+ const handle = await server.start();
114
+ return {
115
+ ...handle.url ? { url: handle.url } : {},
116
+ tools: tools.map((tool) => tool.name),
117
+ close: async () => {
118
+ await handle.close();
119
+ await server.stop();
120
+ }
121
+ };
122
+ }
123
+
124
+ //#endregion
125
+ export { isLoopbackHost, resolveMcpTransport, startWarlockMcpServer, toServeContract };
126
+ //# sourceMappingURL=start-mcp-server.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start-mcp-server.mjs","names":[],"sources":["../../../../../../../../../packages/core/src/tooling/mcp/start-mcp-server.ts"],"sourcesContent":["import { WarlockError } from \"../../errors/warlock-error\";\nimport {\n type AiToolsServeModule,\n loadAiToolsServe,\n type ServeToolContract,\n type ServeTransportOptions,\n} from \"./load-ai-tools\";\nimport {\n createWarlockMcpTools,\n describeToolError,\n type WarlockMcpContext,\n type WarlockMcpTool,\n} from \"./mcp-tools\";\nimport { toStandardSchema, validateToolInput } from \"./tool-input\";\n\n/** Where the server listens. */\nexport type WarlockMcpTransport =\n | { type: \"stdio\" }\n | {\n type: \"http\";\n /** Default `127.0.0.1`. Any other host requires `token`. */\n host?: string;\n /** Default `0` (a free port; read it from the returned `url`). */\n port?: number;\n /** Default `/mcp`. */\n path?: string;\n /** Bearer token clients must send (`Authorization: Bearer <token>`). */\n token?: string;\n };\n\n/** Options of {@link startWarlockMcpServer}. */\nexport type StartWarlockMcpServerOptions = {\n context: WarlockMcpContext;\n /** Default `{ type: \"stdio\" }`. */\n transport?: WarlockMcpTransport;\n /** Advertised in `initialize`. Default `\"warlock\"`. */\n name?: string;\n version?: string;\n /** How `@warlock.js/ai-tools` is loaded (tests inject it). */\n loadServe?: () => Promise<AiToolsServeModule>;\n};\n\n/** A running server. */\nexport type WarlockMcpServerHandle = {\n /** The endpoint (HTTP only), e.g. `http://127.0.0.1:53211/mcp`. */\n url?: string;\n /** The exposed tool names. */\n tools: string[];\n close(): Promise<void>;\n};\n\nconst LOOPBACK_HOSTS = new Set([\"127.0.0.1\", \"::1\", \"[::1]\", \"localhost\"]);\n\n/** Whether a bind host is loopback-only. */\nexport function isLoopbackHost(host: string): boolean {\n return LOOPBACK_HOSTS.has(host.trim().toLowerCase());\n}\n\n/** Resolve the transport, refusing a non-loopback bind without a token (`WL7004`). */\nexport function resolveMcpTransport(\n transport: WarlockMcpTransport = { type: \"stdio\" },\n): ServeTransportOptions {\n if (transport.type === \"stdio\") return { type: \"stdio\" };\n\n const host = transport.host ?? \"127.0.0.1\";\n const token = transport.token?.trim();\n\n if (!isLoopbackHost(host) && !token) {\n throw new WarlockError(\n \"WL7004\",\n `warlock mcp --http refuses to listen on ${host} without a token: anything that can reach that address could call the tools. Pass --token or set WARLOCK_MCP_TOKEN.`,\n );\n }\n\n return {\n type: \"http\",\n host,\n port: transport.port ?? 0,\n path: transport.path ?? \"/mcp\",\n ...(token ? { auth: { bearer: token } } : {}),\n };\n}\n\nconst EMPTY_USAGE = { input: 0, output: 0, total: 0 };\n\nfunction report(name: string, status: \"completed\" | \"failed\", startedAt: Date) {\n const endedAt = new Date();\n\n return {\n runId: `warlock-mcp-${startedAt.getTime()}`,\n name,\n type: \"tool\",\n status,\n startedAt: startedAt.toISOString(),\n endedAt: endedAt.toISOString(),\n duration: endedAt.getTime() - startedAt.getTime(),\n usage: EMPTY_USAGE,\n children: [],\n };\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\n/**\n * Turn a Warlock tool into the contract `ai.mcp.serve` runs: arguments are\n * prechecked (a write on a read-only server), validated against the advertised\n * schema, then run; a failure becomes an `isError` result carrying the WL code\n * and its fix, never a crashed server.\n */\nexport function toServeContract(tool: WarlockMcpTool): ServeToolContract {\n return {\n name: tool.name,\n description: tool.description,\n input: toStandardSchema(tool.input),\n execute: (input) => tool.run(input),\n async invoke(raw) {\n const startedAt = new Date();\n const input = isRecord(raw) ? raw : {};\n const refusal = tool.precheck?.(input) ?? null;\n const issues = refusal ? [refusal] : validateToolInput(tool.input, raw);\n\n if (issues.length > 0) {\n return {\n error: new Error(`Invalid arguments for ${tool.name}: ${issues.join(\"; \")}`),\n usage: EMPTY_USAGE,\n report: report(tool.name, \"failed\", startedAt),\n };\n }\n\n try {\n const data = await tool.run(input);\n\n return { data, usage: EMPTY_USAGE, report: report(tool.name, \"completed\", startedAt) };\n } catch (error) {\n return {\n error: new Error(describeToolError(error)),\n usage: EMPTY_USAGE,\n report: report(tool.name, \"failed\", startedAt),\n };\n }\n },\n };\n}\n\n/**\n * Serve the app's tools over MCP — stdio by default, or Streamable HTTP\n * through `@warlock.js/ai-tools` (loopback by default; a token is required off\n * loopback). Read-only unless `context.allowWrites`.\n *\n * @example\n * const server = await startWarlockMcpServer({\n * context,\n * transport: { type: \"http\", token: process.env.WARLOCK_MCP_TOKEN },\n * });\n * console.error(`MCP at ${server.url}`);\n * await server.close();\n */\nexport async function startWarlockMcpServer(\n options: StartWarlockMcpServerOptions,\n): Promise<WarlockMcpServerHandle> {\n const transport = resolveMcpTransport(options.transport);\n const module = await (options.loadServe ?? (() => loadAiToolsServe(options.context.cwd)))();\n const tools = createWarlockMcpTools(options.context);\n const server = module.serve(tools.map(toServeContract), {\n name: options.name ?? \"warlock\",\n version: options.version,\n transport,\n });\n const handle = await server.start();\n\n return {\n ...(handle.url ? { url: handle.url } : {}),\n tools: tools.map((tool) => tool.name),\n close: async () => {\n await handle.close();\n await server.stop();\n },\n };\n}\n"],"mappings":";;;;;;AAmDA,MAAM,iCAAiB,IAAI,IAAI;CAAC;CAAa;CAAO;CAAS;AAAW,CAAC;;AAGzE,SAAgB,eAAe,MAAuB;CACpD,OAAO,eAAe,IAAI,KAAK,KAAK,CAAC,CAAC,YAAY,CAAC;AACrD;;AAGA,SAAgB,oBACd,YAAiC,EAAE,MAAM,QAAQ,GAC1B;CACvB,IAAI,UAAU,SAAS,SAAS,OAAO,EAAE,MAAM,QAAQ;CAEvD,MAAM,OAAO,UAAU,QAAQ;CAC/B,MAAM,QAAQ,UAAU,OAAO,KAAK;CAEpC,IAAI,CAAC,eAAe,IAAI,KAAK,CAAC,OAC5B,MAAM,IAAI,aACR,UACA,2CAA2C,KAAK,oHAClD;CAGF,OAAO;EACL,MAAM;EACN;EACA,MAAM,UAAU,QAAQ;EACxB,MAAM,UAAU,QAAQ;EACxB,GAAI,QAAQ,EAAE,MAAM,EAAE,QAAQ,MAAM,EAAE,IAAI,CAAC;CAC7C;AACF;AAEA,MAAM,cAAc;CAAE,OAAO;CAAG,QAAQ;CAAG,OAAO;AAAE;AAEpD,SAAS,OAAO,MAAc,QAAgC,WAAiB;CAC7E,MAAM,0BAAU,IAAI,KAAK;CAEzB,OAAO;EACL,OAAO,eAAe,UAAU,QAAQ;EACxC;EACA,MAAM;EACN;EACA,WAAW,UAAU,YAAY;EACjC,SAAS,QAAQ,YAAY;EAC7B,UAAU,QAAQ,QAAQ,IAAI,UAAU,QAAQ;EAChD,OAAO;EACP,UAAU,CAAC;CACb;AACF;AAEA,SAAS,SAAS,OAAkD;CAClE,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAC5E;;;;;;;AAQA,SAAgB,gBAAgB,MAAyC;CACvE,OAAO;EACL,MAAM,KAAK;EACX,aAAa,KAAK;EAClB,OAAO,iBAAiB,KAAK,KAAK;EAClC,UAAU,UAAU,KAAK,IAAI,KAAK;EAClC,MAAM,OAAO,KAAK;GAChB,MAAM,4BAAY,IAAI,KAAK;GAC3B,MAAM,QAAQ,SAAS,GAAG,IAAI,MAAM,CAAC;GACrC,MAAM,UAAU,KAAK,WAAW,KAAK,KAAK;GAC1C,MAAM,SAAS,UAAU,CAAC,OAAO,IAAI,kBAAkB,KAAK,OAAO,GAAG;GAEtE,IAAI,OAAO,SAAS,GAClB,OAAO;IACL,uBAAO,IAAI,MAAM,yBAAyB,KAAK,KAAK,IAAI,OAAO,KAAK,IAAI,GAAG;IAC3E,OAAO;IACP,QAAQ,OAAO,KAAK,MAAM,UAAU,SAAS;GAC/C;GAGF,IAAI;IAGF,OAAO;KAAE,YAFU,KAAK,IAAI,KAAK;KAElB,OAAO;KAAa,QAAQ,OAAO,KAAK,MAAM,aAAa,SAAS;IAAE;GACvF,SAAS,OAAO;IACd,OAAO;KACL,OAAO,IAAI,MAAM,kBAAkB,KAAK,CAAC;KACzC,OAAO;KACP,QAAQ,OAAO,KAAK,MAAM,UAAU,SAAS;IAC/C;GACF;EACF;CACF;AACF;;;;;;;;;;;;;;AAeA,eAAsB,sBACpB,SACiC;CACjC,MAAM,YAAY,oBAAoB,QAAQ,SAAS;CACvD,MAAM,SAAS,OAAO,QAAQ,oBAAoB,iBAAiB,QAAQ,QAAQ,GAAG,GAAE,CAAE;CAC1F,MAAM,QAAQ,sBAAsB,QAAQ,OAAO;CACnD,MAAM,SAAS,OAAO,MAAM,MAAM,IAAI,eAAe,GAAG;EACtD,MAAM,QAAQ,QAAQ;EACtB,SAAS,QAAQ;EACjB;CACF,CAAC;CACD,MAAM,SAAS,MAAM,OAAO,MAAM;CAElC,OAAO;EACL,GAAI,OAAO,MAAM,EAAE,KAAK,OAAO,IAAI,IAAI,CAAC;EACxC,OAAO,MAAM,KAAK,SAAS,KAAK,IAAI;EACpC,OAAO,YAAY;GACjB,MAAM,OAAO,MAAM;GACnB,MAAM,OAAO,KAAK;EACpB;CACF;AACF"}
@@ -0,0 +1,75 @@
1
+ //#region ../../packages/core/src/tooling/mcp/tool-input.d.ts
2
+ /**
3
+ * The input schemas of the `warlock mcp` tools, and the small validator that
4
+ * checks arguments against them.
5
+ *
6
+ * The tools only take flat objects of strings, numbers, booleans, string
7
+ * enums and string arrays, so a JSON Schema subset is enough and core needs no
8
+ * validator dependency. The same object is what `tools/list` advertises.
9
+ */
10
+ /** One property of a tool input. */
11
+ export type McpInputProperty = {
12
+ type: "string";
13
+ description: string;
14
+ enum?: readonly string[];
15
+ } | {
16
+ type: "integer";
17
+ description: string;
18
+ minimum?: number;
19
+ maximum?: number;
20
+ } | {
21
+ type: "boolean";
22
+ description: string;
23
+ } | {
24
+ type: "array";
25
+ description: string;
26
+ items: {
27
+ type: "string";
28
+ enum?: readonly string[];
29
+ };
30
+ };
31
+ /** A tool's input schema: a closed object. */
32
+ export type McpInputSchema = {
33
+ type: "object";
34
+ properties: Record<string, McpInputProperty>;
35
+ required?: readonly string[];
36
+ additionalProperties: false;
37
+ };
38
+ /** Build an {@link McpInputSchema}. */
39
+ export declare function inputSchema(properties: Record<string, McpInputProperty>, required?: readonly string[]): McpInputSchema;
40
+ /**
41
+ * Check arguments against a schema. Returns the problems (empty when valid).
42
+ * `undefined` / `null` arguments are read as `{}`.
43
+ */
44
+ export declare function validateToolInput(schema: McpInputSchema, input: unknown): string[];
45
+ /** The Standard Schema result shape (spec v1). */
46
+ type StandardResult = {
47
+ value: Record<string, unknown>;
48
+ } | {
49
+ issues: {
50
+ message: string;
51
+ }[];
52
+ };
53
+ /**
54
+ * The input as a Standard Schema (v1) with the Standard JSON Schema extension,
55
+ * which is what `@warlock.js/ai` tools take: `~standard.validate` checks the
56
+ * arguments, `~standard.jsonSchema.input()` returns the schema `tools/list`
57
+ * advertises.
58
+ */
59
+ export type StandardInputSchema = {
60
+ "~standard": {
61
+ version: 1;
62
+ vendor: string;
63
+ validate(value: unknown): StandardResult;
64
+ jsonSchema: {
65
+ input(options?: {
66
+ target?: string;
67
+ }): McpInputSchema;
68
+ };
69
+ };
70
+ };
71
+ /** Wrap a schema as a {@link StandardInputSchema}. */
72
+ export declare function toStandardSchema(schema: McpInputSchema): StandardInputSchema;
73
+ //#endregion
74
+ export {};
75
+ //# sourceMappingURL=tool-input.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-input.d.mts","names":[],"sources":["../../../../../../../../../packages/core/src/tooling/mcp/tool-input.ts"],"mappings":";;;;;;;;;;YAUY;EACN;EAAgB;EAAqB;;EACrC;EAAiB;EAAqB;EAAkB;;EACxD;EAAiB;;EAEjB;EACA;EACA;IAAS;IAAgB;;;;YAInB;EACV;EACA,YAAY,eAAe;EAC3B;EACA;;;wBAIc,YACd,YAAY,eAAe,mBAC3B,+BACC;;;;;wBAqDa,kBAAkB,QAAQ,gBAAgB;;KA8BrD;EAAmB,OAAO;;EAA8B;IAAU;;;;;;;;;YAQ3D;EACV;IACE;IACA;IACA,SAAS,iBAAiB;IAC1B;MAAc,MAAM;QAAY;UAAoB;;;;;wBAKxC,iBAAiB,QAAQ,iBAAiB"}
@@ -0,0 +1,72 @@
1
+ //#region ../../packages/core/src/tooling/mcp/tool-input.ts
2
+ /** Build an {@link McpInputSchema}. */
3
+ function inputSchema(properties, required = []) {
4
+ return {
5
+ type: "object",
6
+ properties,
7
+ ...required.length > 0 ? { required } : {},
8
+ additionalProperties: false
9
+ };
10
+ }
11
+ function isRecord(value) {
12
+ return typeof value === "object" && value !== null && !Array.isArray(value);
13
+ }
14
+ function checkProperty(name, property, value) {
15
+ switch (property.type) {
16
+ case "string":
17
+ if (typeof value !== "string") return `"${name}" must be a string`;
18
+ if (property.enum && !property.enum.includes(value)) return `"${name}" must be one of: ${property.enum.join(", ")}`;
19
+ return null;
20
+ case "integer":
21
+ if (typeof value !== "number" || !Number.isInteger(value)) return `"${name}" must be an integer`;
22
+ if (property.minimum !== void 0 && value < property.minimum) return `"${name}" must be at least ${property.minimum}`;
23
+ if (property.maximum !== void 0 && value > property.maximum) return `"${name}" must be at most ${property.maximum}`;
24
+ return null;
25
+ case "boolean": return typeof value === "boolean" ? null : `"${name}" must be a boolean`;
26
+ case "array":
27
+ if (!Array.isArray(value)) return `"${name}" must be an array of strings`;
28
+ for (const item of value) {
29
+ if (typeof item !== "string") return `"${name}" must be an array of strings`;
30
+ if (property.items.enum && !property.items.enum.includes(item)) return `"${name}" items must be one of: ${property.items.enum.join(", ")}`;
31
+ }
32
+ return null;
33
+ }
34
+ }
35
+ /**
36
+ * Check arguments against a schema. Returns the problems (empty when valid).
37
+ * `undefined` / `null` arguments are read as `{}`.
38
+ */
39
+ function validateToolInput(schema, input) {
40
+ const value = input === void 0 || input === null ? {} : input;
41
+ if (!isRecord(value)) return ["arguments must be an object"];
42
+ const issues = [];
43
+ for (const name of schema.required ?? []) if (value[name] === void 0) issues.push(`"${name}" is required`);
44
+ for (const [name, item] of Object.entries(value)) {
45
+ const property = schema.properties[name];
46
+ if (!property) {
47
+ issues.push(`unknown argument "${name}"`);
48
+ continue;
49
+ }
50
+ if (item === void 0) continue;
51
+ const issue = checkProperty(name, property, item);
52
+ if (issue) issues.push(issue);
53
+ }
54
+ return issues;
55
+ }
56
+ /** Wrap a schema as a {@link StandardInputSchema}. */
57
+ function toStandardSchema(schema) {
58
+ return { "~standard": {
59
+ version: 1,
60
+ vendor: "warlock-mcp",
61
+ validate(value) {
62
+ const issues = validateToolInput(schema, value);
63
+ if (issues.length > 0) return { issues: issues.map((message) => ({ message })) };
64
+ return { value: isRecord(value) ? value : {} };
65
+ },
66
+ jsonSchema: { input: () => schema }
67
+ } };
68
+ }
69
+
70
+ //#endregion
71
+ export { inputSchema, toStandardSchema, validateToolInput };
72
+ //# sourceMappingURL=tool-input.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-input.mjs","names":[],"sources":["../../../../../../../../../packages/core/src/tooling/mcp/tool-input.ts"],"sourcesContent":["/**\n * The input schemas of the `warlock mcp` tools, and the small validator that\n * checks arguments against them.\n *\n * The tools only take flat objects of strings, numbers, booleans, string\n * enums and string arrays, so a JSON Schema subset is enough and core needs no\n * validator dependency. The same object is what `tools/list` advertises.\n */\n\n/** One property of a tool input. */\nexport type McpInputProperty =\n | { type: \"string\"; description: string; enum?: readonly string[] }\n | { type: \"integer\"; description: string; minimum?: number; maximum?: number }\n | { type: \"boolean\"; description: string }\n | {\n type: \"array\";\n description: string;\n items: { type: \"string\"; enum?: readonly string[] };\n };\n\n/** A tool's input schema: a closed object. */\nexport type McpInputSchema = {\n type: \"object\";\n properties: Record<string, McpInputProperty>;\n required?: readonly string[];\n additionalProperties: false;\n};\n\n/** Build an {@link McpInputSchema}. */\nexport function inputSchema(\n properties: Record<string, McpInputProperty>,\n required: readonly string[] = [],\n): McpInputSchema {\n return {\n type: \"object\",\n properties,\n ...(required.length > 0 ? { required } : {}),\n additionalProperties: false,\n };\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction checkProperty(name: string, property: McpInputProperty, value: unknown): string | null {\n switch (property.type) {\n case \"string\":\n if (typeof value !== \"string\") return `\"${name}\" must be a string`;\n if (property.enum && !property.enum.includes(value)) {\n return `\"${name}\" must be one of: ${property.enum.join(\", \")}`;\n }\n return null;\n case \"integer\":\n if (typeof value !== \"number\" || !Number.isInteger(value)) {\n return `\"${name}\" must be an integer`;\n }\n if (property.minimum !== undefined && value < property.minimum) {\n return `\"${name}\" must be at least ${property.minimum}`;\n }\n if (property.maximum !== undefined && value > property.maximum) {\n return `\"${name}\" must be at most ${property.maximum}`;\n }\n return null;\n case \"boolean\":\n return typeof value === \"boolean\" ? null : `\"${name}\" must be a boolean`;\n case \"array\": {\n if (!Array.isArray(value)) return `\"${name}\" must be an array of strings`;\n\n for (const item of value) {\n if (typeof item !== \"string\") return `\"${name}\" must be an array of strings`;\n if (property.items.enum && !property.items.enum.includes(item)) {\n return `\"${name}\" items must be one of: ${property.items.enum.join(\", \")}`;\n }\n }\n\n return null;\n }\n }\n}\n\n/**\n * Check arguments against a schema. Returns the problems (empty when valid).\n * `undefined` / `null` arguments are read as `{}`.\n */\nexport function validateToolInput(schema: McpInputSchema, input: unknown): string[] {\n const value = input === undefined || input === null ? {} : input;\n\n if (!isRecord(value)) return [\"arguments must be an object\"];\n\n const issues: string[] = [];\n\n for (const name of schema.required ?? []) {\n if (value[name] === undefined) issues.push(`\"${name}\" is required`);\n }\n\n for (const [name, item] of Object.entries(value)) {\n const property = schema.properties[name];\n\n if (!property) {\n issues.push(`unknown argument \"${name}\"`);\n continue;\n }\n\n if (item === undefined) continue;\n\n const issue = checkProperty(name, property, item);\n\n if (issue) issues.push(issue);\n }\n\n return issues;\n}\n\n/** The Standard Schema result shape (spec v1). */\ntype StandardResult = { value: Record<string, unknown> } | { issues: { message: string }[] };\n\n/**\n * The input as a Standard Schema (v1) with the Standard JSON Schema extension,\n * which is what `@warlock.js/ai` tools take: `~standard.validate` checks the\n * arguments, `~standard.jsonSchema.input()` returns the schema `tools/list`\n * advertises.\n */\nexport type StandardInputSchema = {\n \"~standard\": {\n version: 1;\n vendor: string;\n validate(value: unknown): StandardResult;\n jsonSchema: { input(options?: { target?: string }): McpInputSchema };\n };\n};\n\n/** Wrap a schema as a {@link StandardInputSchema}. */\nexport function toStandardSchema(schema: McpInputSchema): StandardInputSchema {\n return {\n \"~standard\": {\n version: 1,\n vendor: \"warlock-mcp\",\n validate(value) {\n const issues = validateToolInput(schema, value);\n\n if (issues.length > 0) return { issues: issues.map((message) => ({ message })) };\n\n return { value: isRecord(value) ? value : {} };\n },\n jsonSchema: { input: () => schema },\n },\n };\n}\n"],"mappings":";;AA6BA,SAAgB,YACd,YACA,WAA8B,CAAC,GACf;CAChB,OAAO;EACL,MAAM;EACN;EACA,GAAI,SAAS,SAAS,IAAI,EAAE,SAAS,IAAI,CAAC;EAC1C,sBAAsB;CACxB;AACF;AAEA,SAAS,SAAS,OAAkD;CAClE,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAC5E;AAEA,SAAS,cAAc,MAAc,UAA4B,OAA+B;CAC9F,QAAQ,SAAS,MAAjB;EACE,KAAK;GACH,IAAI,OAAO,UAAU,UAAU,OAAO,IAAI,KAAK;GAC/C,IAAI,SAAS,QAAQ,CAAC,SAAS,KAAK,SAAS,KAAK,GAChD,OAAO,IAAI,KAAK,oBAAoB,SAAS,KAAK,KAAK,IAAI;GAE7D,OAAO;EACT,KAAK;GACH,IAAI,OAAO,UAAU,YAAY,CAAC,OAAO,UAAU,KAAK,GACtD,OAAO,IAAI,KAAK;GAElB,IAAI,SAAS,YAAY,UAAa,QAAQ,SAAS,SACrD,OAAO,IAAI,KAAK,qBAAqB,SAAS;GAEhD,IAAI,SAAS,YAAY,UAAa,QAAQ,SAAS,SACrD,OAAO,IAAI,KAAK,oBAAoB,SAAS;GAE/C,OAAO;EACT,KAAK,WACH,OAAO,OAAO,UAAU,YAAY,OAAO,IAAI,KAAK;EACtD,KAAK;GACH,IAAI,CAAC,MAAM,QAAQ,KAAK,GAAG,OAAO,IAAI,KAAK;GAE3C,KAAK,MAAM,QAAQ,OAAO;IACxB,IAAI,OAAO,SAAS,UAAU,OAAO,IAAI,KAAK;IAC9C,IAAI,SAAS,MAAM,QAAQ,CAAC,SAAS,MAAM,KAAK,SAAS,IAAI,GAC3D,OAAO,IAAI,KAAK,0BAA0B,SAAS,MAAM,KAAK,KAAK,IAAI;GAE3E;GAEA,OAAO;CAEX;AACF;;;;;AAMA,SAAgB,kBAAkB,QAAwB,OAA0B;CAClF,MAAM,QAAQ,UAAU,UAAa,UAAU,OAAO,CAAC,IAAI;CAE3D,IAAI,CAAC,SAAS,KAAK,GAAG,OAAO,CAAC,6BAA6B;CAE3D,MAAM,SAAmB,CAAC;CAE1B,KAAK,MAAM,QAAQ,OAAO,YAAY,CAAC,GACrC,IAAI,MAAM,UAAU,QAAW,OAAO,KAAK,IAAI,KAAK,cAAc;CAGpE,KAAK,MAAM,CAAC,MAAM,SAAS,OAAO,QAAQ,KAAK,GAAG;EAChD,MAAM,WAAW,OAAO,WAAW;EAEnC,IAAI,CAAC,UAAU;GACb,OAAO,KAAK,qBAAqB,KAAK,EAAE;GACxC;EACF;EAEA,IAAI,SAAS,QAAW;EAExB,MAAM,QAAQ,cAAc,MAAM,UAAU,IAAI;EAEhD,IAAI,OAAO,OAAO,KAAK,KAAK;CAC9B;CAEA,OAAO;AACT;;AAqBA,SAAgB,iBAAiB,QAA6C;CAC5E,OAAO,EACL,aAAa;EACX,SAAS;EACT,QAAQ;EACR,SAAS,OAAO;GACd,MAAM,SAAS,kBAAkB,QAAQ,KAAK;GAE9C,IAAI,OAAO,SAAS,GAAG,OAAO,EAAE,QAAQ,OAAO,KAAK,aAAa,EAAE,QAAQ,EAAE,EAAE;GAE/E,OAAO,EAAE,OAAO,SAAS,KAAK,IAAI,QAAQ,CAAC,EAAE;EAC/C;EACA,YAAY,EAAE,aAAa,OAAO;CACpC,EACF;AACF"}
@@ -0,0 +1,55 @@
1
+ import { ErrorCodeCategory, WarlockErrorCode } from "../errors/error-codes.mjs";
2
+ //#region ../../packages/core/src/tooling/problem.d.ts
3
+ /** The tool that found a problem. */
4
+ export type ProblemSource = "typescript" | "eslint" | "oxlint" | "vitest" | "convention" | "environment" | "doctor";
5
+ /**
6
+ * One problem, in the shape every machine-readable command prints
7
+ * (`warlock check --json`, `warlock typecheck --json`, `warlock doctor --json`).
8
+ *
9
+ * Every key is always present, so a consumer never has to test for one:
10
+ * `file`, `line` and `column` are `null` when the problem has no position.
11
+ */
12
+ export type ToolingProblem = {
13
+ /** Stable Warlock error code; `warlock explain <code>` prints the fix. */
14
+ code: WarlockErrorCode;
15
+ /** `code` = fix the project; `environment` = fix this machine. */
16
+ category: ErrorCodeCategory;
17
+ /** `error` fails the run; `warning` is reported and does not. */
18
+ severity: "error" | "warning";
19
+ /** The tool that reported it. */
20
+ source: ProblemSource;
21
+ /** Project-relative POSIX path, or `null`. */
22
+ file: string | null;
23
+ /** 1-based line, or `null`. */
24
+ line: number | null;
25
+ /** 1-based column, or `null`. */
26
+ column: number | null;
27
+ /** What is wrong, in the reporting tool's words. */
28
+ message: string;
29
+ /** One line on what to do, from the code registry. */
30
+ hint: string;
31
+ /** Slug of the skill that explains the fix. */
32
+ skill: string;
33
+ /** Docs URL of the code. */
34
+ docs: string;
35
+ /** The tool's own rule or code (`TS2345`, `no-unused-vars`, a test name), or `null`. */
36
+ rule: string | null;
37
+ };
38
+ /** The fields a reporter supplies; the rest come from the registry. */
39
+ export type ProblemInput = {
40
+ code: WarlockErrorCode;
41
+ source: ProblemSource;
42
+ message: string;
43
+ severity?: "error" | "warning";
44
+ file?: string | null;
45
+ line?: number | null;
46
+ column?: number | null;
47
+ rule?: string | null;
48
+ };
49
+ /**
50
+ * Build a {@link ToolingProblem}, filling `category`, `hint`, `skill` and `docs`
51
+ * from the code registry so every reporter describes a code the same way.
52
+ */
53
+ export declare function createProblem(input: ProblemInput): ToolingProblem;
54
+ //#endregion
55
+ //# sourceMappingURL=problem.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"problem.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/tooling/problem.ts"],"mappings":";;;YAQY;;;;;;;;YAgBA;;EAEV,MAAM;;EAEN,UAAU;;EAEV;;EAEA,QAAQ;;EAER;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;;YAIU;EACV,MAAM;EACN,QAAQ;EACR;EACA;EACA;EACA;EACA;EACA;;;;;;wBAOc,cAAc,OAAO,eAAe"}
@@ -0,0 +1,28 @@
1
+ import { ERROR_CODES, errorCodeDocsUrl } from "../errors/error-codes.mjs";
2
+
3
+ //#region ../../packages/core/src/tooling/problem.ts
4
+ /**
5
+ * Build a {@link ToolingProblem}, filling `category`, `hint`, `skill` and `docs`
6
+ * from the code registry so every reporter describes a code the same way.
7
+ */
8
+ function createProblem(input) {
9
+ const definition = ERROR_CODES[input.code];
10
+ return {
11
+ code: input.code,
12
+ category: definition.category,
13
+ severity: input.severity ?? "error",
14
+ source: input.source,
15
+ file: input.file ?? null,
16
+ line: input.line ?? null,
17
+ column: input.column ?? null,
18
+ message: input.message,
19
+ hint: definition.fix,
20
+ skill: definition.skill,
21
+ docs: errorCodeDocsUrl(input.code),
22
+ rule: input.rule ?? null
23
+ };
24
+ }
25
+
26
+ //#endregion
27
+ export { createProblem };
28
+ //# sourceMappingURL=problem.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"problem.mjs","names":[],"sources":["../../../../../../../../packages/core/src/tooling/problem.ts"],"sourcesContent":["import {\n ERROR_CODES,\n errorCodeDocsUrl,\n type ErrorCodeCategory,\n type WarlockErrorCode,\n} from \"../errors/error-codes\";\n\n/** The tool that found a problem. */\nexport type ProblemSource =\n | \"typescript\"\n | \"eslint\"\n | \"oxlint\"\n | \"vitest\"\n | \"convention\"\n | \"environment\"\n | \"doctor\";\n\n/**\n * One problem, in the shape every machine-readable command prints\n * (`warlock check --json`, `warlock typecheck --json`, `warlock doctor --json`).\n *\n * Every key is always present, so a consumer never has to test for one:\n * `file`, `line` and `column` are `null` when the problem has no position.\n */\nexport type ToolingProblem = {\n /** Stable Warlock error code; `warlock explain <code>` prints the fix. */\n code: WarlockErrorCode;\n /** `code` = fix the project; `environment` = fix this machine. */\n category: ErrorCodeCategory;\n /** `error` fails the run; `warning` is reported and does not. */\n severity: \"error\" | \"warning\";\n /** The tool that reported it. */\n source: ProblemSource;\n /** Project-relative POSIX path, or `null`. */\n file: string | null;\n /** 1-based line, or `null`. */\n line: number | null;\n /** 1-based column, or `null`. */\n column: number | null;\n /** What is wrong, in the reporting tool's words. */\n message: string;\n /** One line on what to do, from the code registry. */\n hint: string;\n /** Slug of the skill that explains the fix. */\n skill: string;\n /** Docs URL of the code. */\n docs: string;\n /** The tool's own rule or code (`TS2345`, `no-unused-vars`, a test name), or `null`. */\n rule: string | null;\n};\n\n/** The fields a reporter supplies; the rest come from the registry. */\nexport type ProblemInput = {\n code: WarlockErrorCode;\n source: ProblemSource;\n message: string;\n severity?: \"error\" | \"warning\";\n file?: string | null;\n line?: number | null;\n column?: number | null;\n rule?: string | null;\n};\n\n/**\n * Build a {@link ToolingProblem}, filling `category`, `hint`, `skill` and `docs`\n * from the code registry so every reporter describes a code the same way.\n */\nexport function createProblem(input: ProblemInput): ToolingProblem {\n const definition = ERROR_CODES[input.code];\n\n return {\n code: input.code,\n category: definition.category,\n severity: input.severity ?? \"error\",\n source: input.source,\n file: input.file ?? null,\n line: input.line ?? null,\n column: input.column ?? null,\n message: input.message,\n hint: definition.fix,\n skill: definition.skill,\n docs: errorCodeDocsUrl(input.code),\n rule: input.rule ?? null,\n };\n}\n"],"mappings":";;;;;;;AAmEA,SAAgB,cAAc,OAAqC;CACjE,MAAM,aAAa,YAAY,MAAM;CAErC,OAAO;EACL,MAAM,MAAM;EACZ,UAAU,WAAW;EACrB,UAAU,MAAM,YAAY;EAC5B,QAAQ,MAAM;EACd,MAAM,MAAM,QAAQ;EACpB,MAAM,MAAM,QAAQ;EACpB,QAAQ,MAAM,UAAU;EACxB,SAAS,MAAM;EACf,MAAM,WAAW;EACjB,OAAO,WAAW;EAClB,MAAM,iBAAiB,MAAM,IAAI;EACjC,MAAM,MAAM,QAAQ;CACtB;AACF"}
@@ -0,0 +1,230 @@
1
+ import { parseSync, visitorKeys } from "oxc-parser";
2
+
3
+ //#region ../../packages/core/src/tooling/syntax/ast.ts
4
+ const parents = /* @__PURE__ */ new WeakMap();
5
+ const sources = /* @__PURE__ */ new WeakMap();
6
+ function forEachChild(node, visit) {
7
+ const record = node;
8
+ for (const key of visitorKeys[node.type] ?? []) {
9
+ const value = record[key];
10
+ for (const child of Array.isArray(value) ? value : [value]) if (child && typeof child === "object" && "type" in child) visit(child);
11
+ }
12
+ }
13
+ function parseSourceFile(fileName, text) {
14
+ const source = Object.assign(parseSync(fileName, text).program, {
15
+ fileName,
16
+ text
17
+ });
18
+ const attach = (node) => {
19
+ sources.set(node, source);
20
+ forEachChild(node, (child) => {
21
+ parents.set(child, node);
22
+ attach(child);
23
+ });
24
+ };
25
+ attach(source);
26
+ return source;
27
+ }
28
+ function parentOf(node) {
29
+ return parents.get(node);
30
+ }
31
+ function sourceOf(node) {
32
+ const source = sources.get(node);
33
+ if (!source) throw new Error("Node has no source file.");
34
+ return source;
35
+ }
36
+ function textOf(node) {
37
+ return node.type === "Identifier" ? node.name : sourceOf(node).text.slice(node.start, node.end);
38
+ }
39
+ function keyName(node) {
40
+ if (!node) return void 0;
41
+ const parent = parentOf(node);
42
+ if (parent && "computed" in parent && parent.computed) return void 0;
43
+ if (node.type === "Identifier" || node.type === "PrivateIdentifier") return node.name;
44
+ if (node.type === "JSXIdentifier") return node.name;
45
+ if (node.type === "Literal" && (typeof node.value === "string" || typeof node.value === "number")) return String(node.value);
46
+ if (node.type === "TemplateLiteral" && node.expressions.length === 0) return node.quasis[0]?.value.cooked ?? void 0;
47
+ }
48
+ function positionOf(source, node) {
49
+ const lines = source.text.slice(0, node.start).split("\n");
50
+ return {
51
+ line: lines.length,
52
+ column: (lines.at(-1)?.length ?? 0) + 1
53
+ };
54
+ }
55
+ function expressionOf(node) {
56
+ if (node.type === "CallExpression" || node.type === "NewExpression") return node.callee;
57
+ if (node.type === "MemberExpression") return node.object;
58
+ if (node.type === "AwaitExpression" || node.type === "SpreadElement") return node.argument;
59
+ if (node.type === "IfStatement") return node.test;
60
+ if ("expression" in node && node.expression && typeof node.expression === "object") return node.expression;
61
+ throw new Error(`No expression on ${node.type}.`);
62
+ }
63
+ function nameNode(node) {
64
+ if ("id" in node && node.id) return node.id;
65
+ if ("key" in node) return node.key;
66
+ if (node.type === "ImportSpecifier" || node.type === "ImportDefaultSpecifier" || node.type === "ImportNamespaceSpecifier") return node.local;
67
+ if (node.type === "JSXAttribute") return node.name;
68
+ throw new Error(`No name on ${node.type}.`);
69
+ }
70
+ function declarationName(node) {
71
+ return "id" in node && node.id?.type === "Identifier" ? node.id.name : void 0;
72
+ }
73
+ function valueText(node) {
74
+ return keyName(node) ?? (node.type === "Literal" ? node.raw ?? "" : textOf(node));
75
+ }
76
+ function isCallExpression(node) {
77
+ return node.type === "CallExpression";
78
+ }
79
+ function isNewExpression(node) {
80
+ return node.type === "NewExpression";
81
+ }
82
+ function isIdentifier(node) {
83
+ return node.type === "Identifier";
84
+ }
85
+ function isObjectLiteralExpression(node) {
86
+ return node.type === "ObjectExpression";
87
+ }
88
+ function isVariableDeclaration(node) {
89
+ return node.type === "VariableDeclarator";
90
+ }
91
+ function isVariableStatement(node) {
92
+ return node.type === "VariableDeclaration";
93
+ }
94
+ function isImportDeclaration(node) {
95
+ return node.type === "ImportDeclaration";
96
+ }
97
+ function isPropertyAssignment(node) {
98
+ return node.type === "Property" && !node.shorthand && !node.method && node.kind === "init";
99
+ }
100
+ function isShorthandPropertyAssignment(node) {
101
+ return node.type === "Property" && node.shorthand;
102
+ }
103
+ function isPropertyDeclaration(node) {
104
+ return node.type === "PropertyDefinition";
105
+ }
106
+ function isExportAssignment(node) {
107
+ return node.type === "ExportDefaultDeclaration";
108
+ }
109
+ function isExportDeclaration(node) {
110
+ return node.type === "ExportNamedDeclaration";
111
+ }
112
+ function isClassDeclaration(node) {
113
+ return node.type === "ClassDeclaration";
114
+ }
115
+ function isFunctionDeclaration(node) {
116
+ return node.type === "FunctionDeclaration";
117
+ }
118
+ function isFunctionExpression(node) {
119
+ return node.type === "FunctionExpression";
120
+ }
121
+ function isArrowFunction(node) {
122
+ return node.type === "ArrowFunctionExpression";
123
+ }
124
+ function isInterfaceDeclaration(node) {
125
+ return node.type === "TSInterfaceDeclaration";
126
+ }
127
+ function isTypeAliasDeclaration(node) {
128
+ return node.type === "TSTypeAliasDeclaration";
129
+ }
130
+ function isAwaitExpression(node) {
131
+ return node.type === "AwaitExpression";
132
+ }
133
+ function isArrayLiteralExpression(node) {
134
+ return node.type === "ArrayExpression";
135
+ }
136
+ function isSpreadElement(node) {
137
+ return node.type === "SpreadElement";
138
+ }
139
+ function isSpreadAssignment(node) {
140
+ return node.type === "SpreadElement";
141
+ }
142
+ function isAsExpression(node) {
143
+ return node.type === "TSAsExpression";
144
+ }
145
+ function isNonNullExpression(node) {
146
+ return node.type === "TSNonNullExpression";
147
+ }
148
+ function isSatisfiesExpression(node) {
149
+ return node.type === "TSSatisfiesExpression";
150
+ }
151
+ function isTypeAssertionExpression(node) {
152
+ return node.type === "TSTypeAssertion";
153
+ }
154
+ function isParenthesizedExpression(node) {
155
+ return node.type === "ParenthesizedExpression";
156
+ }
157
+ function isJsxAttribute(node) {
158
+ return node.type === "JSXAttribute";
159
+ }
160
+ function isJsxExpression(node) {
161
+ return node.type === "JSXExpressionContainer";
162
+ }
163
+ function isJsxOpeningElement(node) {
164
+ return node.type === "JSXOpeningElement";
165
+ }
166
+ function isJsxSelfClosingElement(node) {
167
+ return node.type === "JSXOpeningElement" && node.selfClosing;
168
+ }
169
+ function isIfStatement(node) {
170
+ return node.type === "IfStatement";
171
+ }
172
+ function isConditionalExpression(node) {
173
+ return node.type === "ConditionalExpression";
174
+ }
175
+ function isTemplateExpression(node) {
176
+ return node.type === "TemplateLiteral" && node.expressions.length > 0;
177
+ }
178
+ function isPropertySignature(node) {
179
+ return node.type === "TSPropertySignature";
180
+ }
181
+ function isUnionTypeNode(node) {
182
+ return node.type === "TSUnionType";
183
+ }
184
+ function isLiteralTypeNode(node) {
185
+ return node.type === "TSLiteralType";
186
+ }
187
+ function isExpressionStatement(node) {
188
+ return node.type === "ExpressionStatement";
189
+ }
190
+ function isStringLiteral(node) {
191
+ return node.type === "Literal" && typeof node.value === "string";
192
+ }
193
+ function isNumericLiteral(node) {
194
+ return node.type === "Literal" && typeof node.value === "number";
195
+ }
196
+ function isNoSubstitutionTemplateLiteral(node) {
197
+ return node.type === "TemplateLiteral" && node.expressions.length === 0;
198
+ }
199
+ function isBinaryExpression(node) {
200
+ return node.type === "BinaryExpression" || node.type === "LogicalExpression" || node.type === "AssignmentExpression";
201
+ }
202
+ function isRegularExpressionLiteral(node) {
203
+ return node.type === "Literal" && "regex" in node;
204
+ }
205
+ function isElementAccessExpression(node) {
206
+ return node.type === "MemberExpression" && node.computed;
207
+ }
208
+ function isComputedPropertyName(node) {
209
+ const parent = parentOf(node);
210
+ return !!parent && "computed" in parent && parent.computed;
211
+ }
212
+ function isOmittedExpression(node) {
213
+ return node === null;
214
+ }
215
+ function hasModifier(node, modifier) {
216
+ const parent = parentOf(node);
217
+ if (modifier === "export") return parent?.type === "ExportNamedDeclaration" || parent?.type === "ExportDefaultDeclaration";
218
+ if (modifier === "default") return parent?.type === "ExportDefaultDeclaration";
219
+ return modifier in node && Reflect.get(node, modifier) === true;
220
+ }
221
+ function topLevelDeclarations(source) {
222
+ return source.body.map((statement) => (statement.type === "ExportNamedDeclaration" || statement.type === "ExportDefaultDeclaration") && statement.declaration ? statement.declaration : statement);
223
+ }
224
+ function isEnumDeclaration(node) {
225
+ return node.type === "TSEnumDeclaration";
226
+ }
227
+
228
+ //#endregion
229
+ export { declarationName, expressionOf, forEachChild, hasModifier, isArrayLiteralExpression, isArrowFunction, isAsExpression, isAwaitExpression, isBinaryExpression, isCallExpression, isClassDeclaration, isComputedPropertyName, isConditionalExpression, isElementAccessExpression, isEnumDeclaration, isExportAssignment, isExportDeclaration, isExpressionStatement, isFunctionDeclaration, isFunctionExpression, isIdentifier, isIfStatement, isImportDeclaration, isInterfaceDeclaration, isJsxAttribute, isJsxExpression, isJsxOpeningElement, isJsxSelfClosingElement, isLiteralTypeNode, isNewExpression, isNoSubstitutionTemplateLiteral, isNonNullExpression, isNumericLiteral, isObjectLiteralExpression, isOmittedExpression, isParenthesizedExpression, isPropertyAssignment, isPropertyDeclaration, isPropertySignature, isRegularExpressionLiteral, isSatisfiesExpression, isShorthandPropertyAssignment, isSpreadAssignment, isSpreadElement, isStringLiteral, isTemplateExpression, isTypeAliasDeclaration, isTypeAssertionExpression, isUnionTypeNode, isVariableDeclaration, isVariableStatement, keyName, nameNode, parentOf, parseSourceFile, positionOf, sourceOf, textOf, topLevelDeclarations, valueText };
230
+ //# sourceMappingURL=ast.mjs.map