@warlock.js/core 5.2.0 → 5.2.2

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 (1014) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/esm/application/app.d.mts +1 -1
  3. package/esm/application/app.d.mts.map +1 -1
  4. package/esm/application/app.mjs +1 -1
  5. package/esm/application/app.mjs.map +1 -1
  6. package/esm/application/application-config-types.d.mts +1 -1
  7. package/esm/application/application-config-types.d.mts.map +1 -1
  8. package/esm/application/application.d.mts +1 -1
  9. package/esm/application/application.d.mts.map +1 -1
  10. package/esm/application/application.mjs +1 -1
  11. package/esm/application/application.mjs.map +1 -1
  12. package/esm/application/boot-signal.d.mts +1 -1
  13. package/esm/application/boot-signal.d.mts.map +1 -1
  14. package/esm/application/boot-signal.mjs +1 -1
  15. package/esm/application/boot-signal.mjs.map +1 -1
  16. package/esm/benchmark/benchmark-snapshots.d.mts +1 -1
  17. package/esm/benchmark/benchmark-snapshots.d.mts.map +1 -1
  18. package/esm/benchmark/benchmark-snapshots.mjs +1 -1
  19. package/esm/benchmark/benchmark-snapshots.mjs.map +1 -1
  20. package/esm/benchmark/benchmark.d.mts +1 -1
  21. package/esm/benchmark/benchmark.d.mts.map +1 -1
  22. package/esm/benchmark/benchmark.mjs +1 -1
  23. package/esm/benchmark/benchmark.mjs.map +1 -1
  24. package/esm/benchmark/channels/console.channel.d.mts +1 -1
  25. package/esm/benchmark/channels/console.channel.d.mts.map +1 -1
  26. package/esm/benchmark/channels/console.channel.mjs +1 -1
  27. package/esm/benchmark/channels/console.channel.mjs.map +1 -1
  28. package/esm/benchmark/channels/noop.channel.d.mts +1 -1
  29. package/esm/benchmark/channels/noop.channel.d.mts.map +1 -1
  30. package/esm/benchmark/channels/noop.channel.mjs +1 -1
  31. package/esm/benchmark/channels/noop.channel.mjs.map +1 -1
  32. package/esm/benchmark/profiler.d.mts +1 -1
  33. package/esm/benchmark/profiler.d.mts.map +1 -1
  34. package/esm/benchmark/profiler.mjs +1 -1
  35. package/esm/benchmark/profiler.mjs.map +1 -1
  36. package/esm/benchmark/types.d.mts +1 -1
  37. package/esm/benchmark/types.d.mts.map +1 -1
  38. package/esm/bootstrap/setup.d.mts +1 -1
  39. package/esm/bootstrap/setup.d.mts.map +1 -1
  40. package/esm/bootstrap/setup.mjs +1 -1
  41. package/esm/bootstrap/setup.mjs.map +1 -1
  42. package/esm/bootstrap.d.mts +1 -1
  43. package/esm/bootstrap.d.mts.map +1 -1
  44. package/esm/bootstrap.mjs +1 -1
  45. package/esm/bootstrap.mjs.map +1 -1
  46. package/esm/cache/database-cache-driver.d.mts +1 -1
  47. package/esm/cache/database-cache-driver.d.mts.map +1 -1
  48. package/esm/cache/database-cache-driver.mjs +1 -1
  49. package/esm/cache/database-cache-driver.mjs.map +1 -1
  50. package/esm/cache/index.mjs +1 -1
  51. package/esm/cache/index.mjs.map +1 -1
  52. package/esm/cli/cli-commands.manager.mjs +1 -1
  53. package/esm/cli/cli-commands.manager.mjs.map +1 -1
  54. package/esm/cli/cli-commands.utils.mjs +1 -1
  55. package/esm/cli/cli-commands.utils.mjs.map +1 -1
  56. package/esm/cli/commands/add.command.mjs +1 -1
  57. package/esm/cli/commands/add.command.mjs.map +1 -1
  58. package/esm/cli/commands/build.command.mjs +1 -1
  59. package/esm/cli/commands/build.command.mjs.map +1 -1
  60. package/esm/cli/commands/create-database.command.mjs +1 -1
  61. package/esm/cli/commands/create-database.command.mjs.map +1 -1
  62. package/esm/cli/commands/dev-server.command.mjs +1 -1
  63. package/esm/cli/commands/dev-server.command.mjs.map +1 -1
  64. package/esm/cli/commands/doctor/boot-for-diagnostics.mjs +1 -1
  65. package/esm/cli/commands/doctor/boot-for-diagnostics.mjs.map +1 -1
  66. package/esm/cli/commands/doctor/checks/config.check.mjs +1 -1
  67. package/esm/cli/commands/doctor/checks/config.check.mjs.map +1 -1
  68. package/esm/cli/commands/doctor/checks/connectors.check.mjs +1 -1
  69. package/esm/cli/commands/doctor/checks/connectors.check.mjs.map +1 -1
  70. package/esm/cli/commands/doctor/checks/handler-signature.check.mjs +1 -1
  71. package/esm/cli/commands/doctor/checks/handler-signature.check.mjs.map +1 -1
  72. package/esm/cli/commands/doctor/checks/health.check.mjs +1 -1
  73. package/esm/cli/commands/doctor/checks/health.check.mjs.map +1 -1
  74. package/esm/cli/commands/doctor/checks/index.mjs +1 -1
  75. package/esm/cli/commands/doctor/checks/index.mjs.map +1 -1
  76. package/esm/cli/commands/doctor/checks/optional-peers.check.mjs +1 -1
  77. package/esm/cli/commands/doctor/checks/optional-peers.check.mjs.map +1 -1
  78. package/esm/cli/commands/doctor/checks/release-hygiene.check.mjs +1 -1
  79. package/esm/cli/commands/doctor/checks/release-hygiene.check.mjs.map +1 -1
  80. package/esm/cli/commands/doctor/checks/routes.check.mjs +1 -1
  81. package/esm/cli/commands/doctor/checks/routes.check.mjs.map +1 -1
  82. package/esm/cli/commands/doctor/doctor-command.action.mjs +1 -1
  83. package/esm/cli/commands/doctor/doctor-command.action.mjs.map +1 -1
  84. package/esm/cli/commands/doctor/format-report.mjs +1 -1
  85. package/esm/cli/commands/doctor/format-report.mjs.map +1 -1
  86. package/esm/cli/commands/doctor/run-checks.mjs +1 -1
  87. package/esm/cli/commands/doctor/run-checks.mjs.map +1 -1
  88. package/esm/cli/commands/doctor.command.mjs +1 -1
  89. package/esm/cli/commands/doctor.command.mjs.map +1 -1
  90. package/esm/cli/commands/drop-tables.command.mjs +1 -1
  91. package/esm/cli/commands/drop-tables.command.mjs.map +1 -1
  92. package/esm/cli/commands/generate/generate.command.mjs +1 -1
  93. package/esm/cli/commands/generate/generate.command.mjs.map +1 -1
  94. package/esm/cli/commands/generate/generators/column-dsl-parser.mjs +1 -1
  95. package/esm/cli/commands/generate/generators/column-dsl-parser.mjs.map +1 -1
  96. package/esm/cli/commands/generate/generators/controller.generator.mjs +1 -1
  97. package/esm/cli/commands/generate/generators/controller.generator.mjs.map +1 -1
  98. package/esm/cli/commands/generate/generators/migration.generator.mjs +1 -1
  99. package/esm/cli/commands/generate/generators/migration.generator.mjs.map +1 -1
  100. package/esm/cli/commands/generate/generators/model.generator.mjs +1 -1
  101. package/esm/cli/commands/generate/generators/model.generator.mjs.map +1 -1
  102. package/esm/cli/commands/generate/generators/module.generator.mjs +1 -1
  103. package/esm/cli/commands/generate/generators/module.generator.mjs.map +1 -1
  104. package/esm/cli/commands/generate/generators/repository.generator.mjs +1 -1
  105. package/esm/cli/commands/generate/generators/repository.generator.mjs.map +1 -1
  106. package/esm/cli/commands/generate/generators/resource.generator.mjs +1 -1
  107. package/esm/cli/commands/generate/generators/resource.generator.mjs.map +1 -1
  108. package/esm/cli/commands/generate/generators/service.generator.mjs +1 -1
  109. package/esm/cli/commands/generate/generators/service.generator.mjs.map +1 -1
  110. package/esm/cli/commands/generate/templates/stubs.mjs +1 -1
  111. package/esm/cli/commands/generate/templates/stubs.mjs.map +1 -1
  112. package/esm/cli/commands/generate/utils/name-parser.mjs +1 -1
  113. package/esm/cli/commands/generate/utils/name-parser.mjs.map +1 -1
  114. package/esm/cli/commands/generate/utils/path-resolver.mjs +1 -1
  115. package/esm/cli/commands/generate/utils/path-resolver.mjs.map +1 -1
  116. package/esm/cli/commands/generate/utils/prompt.mjs +1 -1
  117. package/esm/cli/commands/generate/utils/prompt.mjs.map +1 -1
  118. package/esm/cli/commands/generate/utils/writer.mjs +1 -1
  119. package/esm/cli/commands/generate/utils/writer.mjs.map +1 -1
  120. package/esm/cli/commands/migrate.command.mjs +1 -1
  121. package/esm/cli/commands/migrate.command.mjs.map +1 -1
  122. package/esm/cli/commands/routes/diff-page-routes.mjs +1 -1
  123. package/esm/cli/commands/routes/diff-page-routes.mjs.map +1 -1
  124. package/esm/cli/commands/routes/format-routes-table.mjs +1 -1
  125. package/esm/cli/commands/routes/format-routes-table.mjs.map +1 -1
  126. package/esm/cli/commands/routes/route-row.mjs +1 -1
  127. package/esm/cli/commands/routes/route-row.mjs.map +1 -1
  128. package/esm/cli/commands/routes/routes-command.action.mjs +1 -1
  129. package/esm/cli/commands/routes/routes-command.action.mjs.map +1 -1
  130. package/esm/cli/commands/routes/routes-diff.action.mjs +1 -1
  131. package/esm/cli/commands/routes/routes-diff.action.mjs.map +1 -1
  132. package/esm/cli/commands/routes.command.mjs +1 -1
  133. package/esm/cli/commands/routes.command.mjs.map +1 -1
  134. package/esm/cli/commands/seed.command.mjs +1 -1
  135. package/esm/cli/commands/seed.command.mjs.map +1 -1
  136. package/esm/cli/commands/start-production.command.mjs +1 -1
  137. package/esm/cli/commands/start-production.command.mjs.map +1 -1
  138. package/esm/cli/commands/storage-put.action.mjs +1 -1
  139. package/esm/cli/commands/storage-put.action.mjs.map +1 -1
  140. package/esm/cli/commands/storage-put.command.mjs +1 -1
  141. package/esm/cli/commands/storage-put.command.mjs.map +1 -1
  142. package/esm/cli/commands/typings-generator.command.mjs +1 -1
  143. package/esm/cli/commands/typings-generator.command.mjs.map +1 -1
  144. package/esm/cli/commands/update.command.mjs +1 -1
  145. package/esm/cli/commands/update.command.mjs.map +1 -1
  146. package/esm/cli/commands-loader.mjs +1 -1
  147. package/esm/cli/commands-loader.mjs.map +1 -1
  148. package/esm/cli/framework-cli-commands.mjs +1 -1
  149. package/esm/cli/framework-cli-commands.mjs.map +1 -1
  150. package/esm/cli/parse-cli-args.mjs +1 -1
  151. package/esm/cli/parse-cli-args.mjs.map +1 -1
  152. package/esm/cli/start.mjs +1 -1
  153. package/esm/cli/start.mjs.map +1 -1
  154. package/esm/cli/string-similarity.mjs +1 -1
  155. package/esm/cli/string-similarity.mjs.map +1 -1
  156. package/esm/commands/cli-command.d.mts +1 -1
  157. package/esm/commands/cli-command.d.mts.map +1 -1
  158. package/esm/commands/cli-command.mjs +1 -1
  159. package/esm/commands/cli-command.mjs.map +1 -1
  160. package/esm/commands/types.d.mts +1 -1
  161. package/esm/commands/types.d.mts.map +1 -1
  162. package/esm/config/config-getter.d.mts +1 -1
  163. package/esm/config/config-getter.d.mts.map +1 -1
  164. package/esm/config/config-getter.mjs +1 -1
  165. package/esm/config/config-getter.mjs.map +1 -1
  166. package/esm/config/config-handlers.d.mts +1 -1
  167. package/esm/config/config-handlers.d.mts.map +1 -1
  168. package/esm/config/config-handlers.mjs +1 -1
  169. package/esm/config/config-handlers.mjs.map +1 -1
  170. package/esm/config/config-loader.d.mts +1 -1
  171. package/esm/config/config-loader.d.mts.map +1 -1
  172. package/esm/config/config-loader.mjs +1 -1
  173. package/esm/config/config-loader.mjs.map +1 -1
  174. package/esm/config/config-manager.mjs +1 -1
  175. package/esm/config/config-manager.mjs.map +1 -1
  176. package/esm/config/config-setter.d.mts +1 -1
  177. package/esm/config/config-setter.d.mts.map +1 -1
  178. package/esm/config/config-setter.mjs +1 -1
  179. package/esm/config/config-setter.mjs.map +1 -1
  180. package/esm/config/config-special-handlers.d.mts +1 -1
  181. package/esm/config/config-special-handlers.d.mts.map +1 -1
  182. package/esm/config/config-special-handlers.mjs +1 -1
  183. package/esm/config/config-special-handlers.mjs.map +1 -1
  184. package/esm/config/load-config-files.mjs +1 -1
  185. package/esm/config/load-config-files.mjs.map +1 -1
  186. package/esm/config/locale-configuration.mjs +1 -1
  187. package/esm/config/locale-configuration.mjs.map +1 -1
  188. package/esm/config/types.d.mts +1 -1
  189. package/esm/config/types.d.mts.map +1 -1
  190. package/esm/connectors/access-connector.d.mts +1 -1
  191. package/esm/connectors/access-connector.d.mts.map +1 -1
  192. package/esm/connectors/access-connector.mjs +1 -1
  193. package/esm/connectors/access-connector.mjs.map +1 -1
  194. package/esm/connectors/ai-connector.d.mts +1 -1
  195. package/esm/connectors/ai-connector.d.mts.map +1 -1
  196. package/esm/connectors/ai-connector.mjs +1 -1
  197. package/esm/connectors/ai-connector.mjs.map +1 -1
  198. package/esm/connectors/assert-no-reserved-connector-names.d.mts +1 -1
  199. package/esm/connectors/assert-no-reserved-connector-names.d.mts.map +1 -1
  200. package/esm/connectors/assert-no-reserved-connector-names.mjs +1 -1
  201. package/esm/connectors/assert-no-reserved-connector-names.mjs.map +1 -1
  202. package/esm/connectors/assert-unique-connector-names.d.mts +1 -1
  203. package/esm/connectors/assert-unique-connector-names.d.mts.map +1 -1
  204. package/esm/connectors/assert-unique-connector-names.mjs +1 -1
  205. package/esm/connectors/assert-unique-connector-names.mjs.map +1 -1
  206. package/esm/connectors/base-connector.d.mts +1 -1
  207. package/esm/connectors/base-connector.d.mts.map +1 -1
  208. package/esm/connectors/base-connector.mjs +1 -1
  209. package/esm/connectors/base-connector.mjs.map +1 -1
  210. package/esm/connectors/cache-connector.d.mts +1 -1
  211. package/esm/connectors/cache-connector.d.mts.map +1 -1
  212. package/esm/connectors/cache-connector.mjs +1 -1
  213. package/esm/connectors/cache-connector.mjs.map +1 -1
  214. package/esm/connectors/connectors-manager.d.mts +1 -1
  215. package/esm/connectors/connectors-manager.d.mts.map +1 -1
  216. package/esm/connectors/connectors-manager.mjs +1 -1
  217. package/esm/connectors/connectors-manager.mjs.map +1 -1
  218. package/esm/connectors/database-connector.d.mts +1 -1
  219. package/esm/connectors/database-connector.d.mts.map +1 -1
  220. package/esm/connectors/database-connector.mjs +1 -1
  221. package/esm/connectors/database-connector.mjs.map +1 -1
  222. package/esm/connectors/describe-server-address.mjs +1 -1
  223. package/esm/connectors/describe-server-address.mjs.map +1 -1
  224. package/esm/connectors/herald-connector.d.mts +1 -1
  225. package/esm/connectors/herald-connector.d.mts.map +1 -1
  226. package/esm/connectors/herald-connector.mjs +1 -1
  227. package/esm/connectors/herald-connector.mjs.map +1 -1
  228. package/esm/connectors/http-connector.d.mts +1 -1
  229. package/esm/connectors/http-connector.d.mts.map +1 -1
  230. package/esm/connectors/http-connector.mjs +1 -1
  231. package/esm/connectors/http-connector.mjs.map +1 -1
  232. package/esm/connectors/logger-connector.d.mts +1 -1
  233. package/esm/connectors/logger-connector.d.mts.map +1 -1
  234. package/esm/connectors/logger-connector.mjs +1 -1
  235. package/esm/connectors/logger-connector.mjs.map +1 -1
  236. package/esm/connectors/mail-connector.d.mts +1 -1
  237. package/esm/connectors/mail-connector.d.mts.map +1 -1
  238. package/esm/connectors/mail-connector.mjs +1 -1
  239. package/esm/connectors/mail-connector.mjs.map +1 -1
  240. package/esm/connectors/notifications-connector.d.mts +1 -1
  241. package/esm/connectors/notifications-connector.d.mts.map +1 -1
  242. package/esm/connectors/notifications-connector.mjs +1 -1
  243. package/esm/connectors/notifications-connector.mjs.map +1 -1
  244. package/esm/connectors/register-configured-connectors.d.mts +1 -1
  245. package/esm/connectors/register-configured-connectors.d.mts.map +1 -1
  246. package/esm/connectors/register-configured-connectors.mjs +1 -1
  247. package/esm/connectors/register-configured-connectors.mjs.map +1 -1
  248. package/esm/connectors/socket-connector.d.mts +1 -1
  249. package/esm/connectors/socket-connector.d.mts.map +1 -1
  250. package/esm/connectors/socket-connector.mjs +1 -1
  251. package/esm/connectors/socket-connector.mjs.map +1 -1
  252. package/esm/connectors/storage.connector.d.mts +1 -1
  253. package/esm/connectors/storage.connector.d.mts.map +1 -1
  254. package/esm/connectors/storage.connector.mjs +1 -1
  255. package/esm/connectors/storage.connector.mjs.map +1 -1
  256. package/esm/connectors/types.d.mts +1 -1
  257. package/esm/connectors/types.d.mts.map +1 -1
  258. package/esm/connectors/types.mjs +1 -1
  259. package/esm/connectors/types.mjs.map +1 -1
  260. package/esm/container/index.d.mts +1 -1
  261. package/esm/container/index.d.mts.map +1 -1
  262. package/esm/container/index.mjs +1 -1
  263. package/esm/container/index.mjs.map +1 -1
  264. package/esm/database/create-database-action.mjs +1 -1
  265. package/esm/database/create-database-action.mjs.map +1 -1
  266. package/esm/database/drop-tables-action.mjs +1 -1
  267. package/esm/database/drop-tables-action.mjs.map +1 -1
  268. package/esm/database/migrate-action.mjs +1 -1
  269. package/esm/database/migrate-action.mjs.map +1 -1
  270. package/esm/database/models/database-log/database-log.d.mts +1 -1
  271. package/esm/database/models/database-log/database-log.d.mts.map +1 -1
  272. package/esm/database/models/database-log/database-log.mjs +1 -1
  273. package/esm/database/models/database-log/database-log.mjs.map +1 -1
  274. package/esm/database/pending-exit-code.mjs +1 -1
  275. package/esm/database/pending-exit-code.mjs.map +1 -1
  276. package/esm/database/resolve-pending-migrations.mjs +1 -1
  277. package/esm/database/resolve-pending-migrations.mjs.map +1 -1
  278. package/esm/database/seed-command-action.mjs +1 -1
  279. package/esm/database/seed-command-action.mjs.map +1 -1
  280. package/esm/database/seeds/seed-records-table-migration.mjs +1 -1
  281. package/esm/database/seeds/seed-records-table-migration.mjs.map +1 -1
  282. package/esm/database/seeds/seeder.d.mts +1 -1
  283. package/esm/database/seeds/seeder.d.mts.map +1 -1
  284. package/esm/database/seeds/seeder.errors.d.mts +1 -1
  285. package/esm/database/seeds/seeder.errors.d.mts.map +1 -1
  286. package/esm/database/seeds/seeder.errors.mjs +1 -1
  287. package/esm/database/seeds/seeder.errors.mjs.map +1 -1
  288. package/esm/database/seeds/seeder.mjs +1 -1
  289. package/esm/database/seeds/seeder.mjs.map +1 -1
  290. package/esm/database/seeds/seeders.manager.mjs +1 -1
  291. package/esm/database/seeds/seeders.manager.mjs.map +1 -1
  292. package/esm/database/seeds/seeds-table-migration.mjs +1 -1
  293. package/esm/database/seeds/seeds-table-migration.mjs.map +1 -1
  294. package/esm/database/seeds/types.d.mts +1 -1
  295. package/esm/database/seeds/types.d.mts.map +1 -1
  296. package/esm/database/seeds/utils.mjs +1 -1
  297. package/esm/database/seeds/utils.mjs.map +1 -1
  298. package/esm/database/utils.d.mts +1 -1
  299. package/esm/database/utils.d.mts.map +1 -1
  300. package/esm/database/utils.mjs +1 -1
  301. package/esm/database/utils.mjs.map +1 -1
  302. package/esm/dev-server/check-for-updates.mjs +1 -1
  303. package/esm/dev-server/check-for-updates.mjs.map +1 -1
  304. package/esm/dev-server/create-worker.mjs +1 -1
  305. package/esm/dev-server/create-worker.mjs.map +1 -1
  306. package/esm/dev-server/dependency-graph.d.mts +1 -1
  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-logger.mjs +1 -1
  311. package/esm/dev-server/dev-logger.mjs.map +1 -1
  312. package/esm/dev-server/development-server.mjs +1 -1
  313. package/esm/dev-server/development-server.mjs.map +1 -1
  314. package/esm/dev-server/events.mjs +1 -1
  315. package/esm/dev-server/events.mjs.map +1 -1
  316. package/esm/dev-server/file-event-handler.mjs +1 -1
  317. package/esm/dev-server/file-event-handler.mjs.map +1 -1
  318. package/esm/dev-server/file-manager.d.mts +1 -1
  319. package/esm/dev-server/file-manager.d.mts.map +1 -1
  320. package/esm/dev-server/file-manager.mjs +1 -1
  321. package/esm/dev-server/file-manager.mjs.map +1 -1
  322. package/esm/dev-server/file-operations.d.mts +1 -1
  323. package/esm/dev-server/file-operations.d.mts.map +1 -1
  324. package/esm/dev-server/file-operations.mjs +1 -1
  325. package/esm/dev-server/file-operations.mjs.map +1 -1
  326. package/esm/dev-server/files-orchestrator.mjs +1 -1
  327. package/esm/dev-server/files-orchestrator.mjs.map +1 -1
  328. package/esm/dev-server/files-watcher.mjs +1 -1
  329. package/esm/dev-server/files-watcher.mjs.map +1 -1
  330. package/esm/dev-server/flags.mjs +1 -1
  331. package/esm/dev-server/flags.mjs.map +1 -1
  332. package/esm/dev-server/health-checker/checkers/base-health-checker.mjs +1 -1
  333. package/esm/dev-server/health-checker/checkers/base-health-checker.mjs.map +1 -1
  334. package/esm/dev-server/health-checker/checkers/eslint-health-checker.mjs +1 -1
  335. package/esm/dev-server/health-checker/checkers/eslint-health-checker.mjs.map +1 -1
  336. package/esm/dev-server/health-checker/checkers/typescript-health-checker.mjs +1 -1
  337. package/esm/dev-server/health-checker/checkers/typescript-health-checker.mjs.map +1 -1
  338. package/esm/dev-server/health-checker/file-health-checker.contract.d.mts +1 -1
  339. package/esm/dev-server/health-checker/file-health-checker.contract.d.mts.map +1 -1
  340. package/esm/dev-server/health-checker/file-health-result.d.mts +1 -1
  341. package/esm/dev-server/health-checker/file-health-result.d.mts.map +1 -1
  342. package/esm/dev-server/health-checker/file-health-result.mjs +1 -1
  343. package/esm/dev-server/health-checker/file-health-result.mjs.map +1 -1
  344. package/esm/dev-server/health-checker/files-healthcare.manager.mjs +1 -1
  345. package/esm/dev-server/health-checker/files-healthcare.manager.mjs.map +1 -1
  346. package/esm/dev-server/health-checker/workers/eslint-health.worker.mjs +1 -1
  347. package/esm/dev-server/health-checker/workers/eslint-health.worker.mjs.map +1 -1
  348. package/esm/dev-server/health-checker/workers/ts-health.worker.mjs +1 -1
  349. package/esm/dev-server/health-checker/workers/ts-health.worker.mjs.map +1 -1
  350. package/esm/dev-server/layer-executor.mjs +1 -1
  351. package/esm/dev-server/layer-executor.mjs.map +1 -1
  352. package/esm/dev-server/loader/build-transpile-init.mjs +1 -1
  353. package/esm/dev-server/loader/build-transpile-init.mjs.map +1 -1
  354. package/esm/dev-server/loader/hook-thread.d.mts +1 -1
  355. package/esm/dev-server/loader/hook-thread.d.mts.map +1 -1
  356. package/esm/dev-server/loader/hook-thread.mjs +1 -1
  357. package/esm/dev-server/loader/hook-thread.mjs.map +1 -1
  358. package/esm/dev-server/loader/load-hook.d.mts +1 -1
  359. package/esm/dev-server/loader/load-hook.d.mts.map +1 -1
  360. package/esm/dev-server/loader/load-hook.mjs +1 -1
  361. package/esm/dev-server/loader/load-hook.mjs.map +1 -1
  362. package/esm/dev-server/loader/own-resolver.mjs +1 -1
  363. package/esm/dev-server/loader/own-resolver.mjs.map +1 -1
  364. package/esm/dev-server/loader/register-loader.mjs +1 -1
  365. package/esm/dev-server/loader/register-loader.mjs.map +1 -1
  366. package/esm/dev-server/loader/resolve-capture.mjs +1 -1
  367. package/esm/dev-server/loader/resolve-capture.mjs.map +1 -1
  368. package/esm/dev-server/loader/resolve-hook.d.mts +1 -1
  369. package/esm/dev-server/loader/resolve-hook.d.mts.map +1 -1
  370. package/esm/dev-server/loader/resolve-hook.mjs +1 -1
  371. package/esm/dev-server/loader/resolve-hook.mjs.map +1 -1
  372. package/esm/dev-server/loader/source-slug.mjs +1 -1
  373. package/esm/dev-server/loader/source-slug.mjs.map +1 -1
  374. package/esm/dev-server/loader/transpile-cache.mjs +1 -1
  375. package/esm/dev-server/loader/transpile-cache.mjs.map +1 -1
  376. package/esm/dev-server/loader/version-registry.mjs +1 -1
  377. package/esm/dev-server/loader/version-registry.mjs.map +1 -1
  378. package/esm/dev-server/manifest-manager.d.mts +1 -1
  379. package/esm/dev-server/manifest-manager.d.mts.map +1 -1
  380. package/esm/dev-server/manifest-manager.mjs +1 -1
  381. package/esm/dev-server/manifest-manager.mjs.map +1 -1
  382. package/esm/dev-server/module-loader.mjs +1 -1
  383. package/esm/dev-server/module-loader.mjs.map +1 -1
  384. package/esm/dev-server/package-json-manager.mjs +1 -1
  385. package/esm/dev-server/package-json-manager.mjs.map +1 -1
  386. package/esm/dev-server/parse-imports.mjs +1 -1
  387. package/esm/dev-server/parse-imports.mjs.map +1 -1
  388. package/esm/dev-server/read-config-ast.mjs +1 -1
  389. package/esm/dev-server/read-config-ast.mjs.map +1 -1
  390. package/esm/dev-server/ready-block.mjs +1 -1
  391. package/esm/dev-server/ready-block.mjs.map +1 -1
  392. package/esm/dev-server/register-dev-shortcuts.mjs +1 -1
  393. package/esm/dev-server/register-dev-shortcuts.mjs.map +1 -1
  394. package/esm/dev-server/restart-dev-server.mjs +1 -1
  395. package/esm/dev-server/restart-dev-server.mjs.map +1 -1
  396. package/esm/dev-server/run-typings-generation.mjs +1 -1
  397. package/esm/dev-server/run-typings-generation.mjs.map +1 -1
  398. package/esm/dev-server/shortcuts.mjs +1 -1
  399. package/esm/dev-server/shortcuts.mjs.map +1 -1
  400. package/esm/dev-server/special-files-collector.d.mts +1 -1
  401. package/esm/dev-server/special-files-collector.d.mts.map +1 -1
  402. package/esm/dev-server/special-files-collector.mjs +1 -1
  403. package/esm/dev-server/special-files-collector.mjs.map +1 -1
  404. package/esm/dev-server/start-development-server.mjs +1 -1
  405. package/esm/dev-server/start-development-server.mjs.map +1 -1
  406. package/esm/dev-server/supervisor.mjs +1 -1
  407. package/esm/dev-server/supervisor.mjs.map +1 -1
  408. package/esm/dev-server/tsconfig-manager.mjs +1 -1
  409. package/esm/dev-server/tsconfig-manager.mjs.map +1 -1
  410. package/esm/dev-server/type-generator.mjs +1 -1
  411. package/esm/dev-server/type-generator.mjs.map +1 -1
  412. package/esm/dev-server/types.d.mts +1 -1
  413. package/esm/dev-server/types.d.mts.map +1 -1
  414. package/esm/dev-server/update-check-cache.mjs +1 -1
  415. package/esm/dev-server/update-check-cache.mjs.map +1 -1
  416. package/esm/dev-server/utils.mjs +1 -1
  417. package/esm/dev-server/utils.mjs.map +1 -1
  418. package/esm/encryption/encrypt.d.mts +1 -1
  419. package/esm/encryption/encrypt.d.mts.map +1 -1
  420. package/esm/encryption/encrypt.mjs +1 -1
  421. package/esm/encryption/encrypt.mjs.map +1 -1
  422. package/esm/encryption/hash.d.mts +1 -1
  423. package/esm/encryption/hash.d.mts.map +1 -1
  424. package/esm/encryption/hash.mjs +1 -1
  425. package/esm/encryption/hash.mjs.map +1 -1
  426. package/esm/encryption/password.d.mts +1 -1
  427. package/esm/encryption/password.d.mts.map +1 -1
  428. package/esm/encryption/password.mjs +1 -1
  429. package/esm/encryption/password.mjs.map +1 -1
  430. package/esm/encryption/types.d.mts +1 -1
  431. package/esm/encryption/types.d.mts.map +1 -1
  432. package/esm/generations/add-command.action.mjs +1 -1
  433. package/esm/generations/add-command.action.mjs.map +1 -1
  434. package/esm/generations/features/access.feature.mjs +1 -1
  435. package/esm/generations/features/access.feature.mjs.map +1 -1
  436. package/esm/generations/features/ai-anthropic.feature.mjs +1 -1
  437. package/esm/generations/features/ai-anthropic.feature.mjs.map +1 -1
  438. package/esm/generations/features/ai-bedrock.feature.mjs +1 -1
  439. package/esm/generations/features/ai-bedrock.feature.mjs.map +1 -1
  440. package/esm/generations/features/ai-google.feature.mjs +1 -1
  441. package/esm/generations/features/ai-google.feature.mjs.map +1 -1
  442. package/esm/generations/features/ai-ollama.feature.mjs +1 -1
  443. package/esm/generations/features/ai-ollama.feature.mjs.map +1 -1
  444. package/esm/generations/features/ai-openai.feature.mjs +1 -1
  445. package/esm/generations/features/ai-openai.feature.mjs.map +1 -1
  446. package/esm/generations/features/ai-panoptic.feature.mjs +1 -1
  447. package/esm/generations/features/ai-panoptic.feature.mjs.map +1 -1
  448. package/esm/generations/features/ai-tools.feature.mjs +1 -1
  449. package/esm/generations/features/ai-tools.feature.mjs.map +1 -1
  450. package/esm/generations/features/ai-workspace.feature.mjs +1 -1
  451. package/esm/generations/features/ai-workspace.feature.mjs.map +1 -1
  452. package/esm/generations/features/ai.feature.mjs +1 -1
  453. package/esm/generations/features/ai.feature.mjs.map +1 -1
  454. package/esm/generations/features/herald.feature.mjs +1 -1
  455. package/esm/generations/features/herald.feature.mjs.map +1 -1
  456. package/esm/generations/features/image.feature.mjs +1 -1
  457. package/esm/generations/features/image.feature.mjs.map +1 -1
  458. package/esm/generations/features/index.mjs +1 -1
  459. package/esm/generations/features/index.mjs.map +1 -1
  460. package/esm/generations/features/mail.feature.mjs +1 -1
  461. package/esm/generations/features/mail.feature.mjs.map +1 -1
  462. package/esm/generations/features/mongodb.feature.mjs +1 -1
  463. package/esm/generations/features/mongodb.feature.mjs.map +1 -1
  464. package/esm/generations/features/mysql.feature.mjs +1 -1
  465. package/esm/generations/features/mysql.feature.mjs.map +1 -1
  466. package/esm/generations/features/notifications.feature.mjs +1 -1
  467. package/esm/generations/features/notifications.feature.mjs.map +1 -1
  468. package/esm/generations/features/postgres.feature.mjs +1 -1
  469. package/esm/generations/features/postgres.feature.mjs.map +1 -1
  470. package/esm/generations/features/react-email.feature.mjs +1 -1
  471. package/esm/generations/features/react-email.feature.mjs.map +1 -1
  472. package/esm/generations/features/react.feature.mjs +1 -1
  473. package/esm/generations/features/react.feature.mjs.map +1 -1
  474. package/esm/generations/features/redis.feature.mjs +1 -1
  475. package/esm/generations/features/redis.feature.mjs.map +1 -1
  476. package/esm/generations/features/s3.feature.mjs +1 -1
  477. package/esm/generations/features/s3.feature.mjs.map +1 -1
  478. package/esm/generations/features/scheduler.feature.mjs +1 -1
  479. package/esm/generations/features/scheduler.feature.mjs.map +1 -1
  480. package/esm/generations/features/ses.feature.mjs +1 -1
  481. package/esm/generations/features/ses.feature.mjs.map +1 -1
  482. package/esm/generations/features/shadcn.feature.mjs +1 -1
  483. package/esm/generations/features/shadcn.feature.mjs.map +1 -1
  484. package/esm/generations/features/shared/link-ai-package-import.mjs +1 -1
  485. package/esm/generations/features/shared/link-ai-package-import.mjs.map +1 -1
  486. package/esm/generations/features/shared/migration-timestamp.mjs +1 -1
  487. package/esm/generations/features/shared/migration-timestamp.mjs.map +1 -1
  488. package/esm/generations/features/socket.feature.mjs +1 -1
  489. package/esm/generations/features/socket.feature.mjs.map +1 -1
  490. package/esm/generations/features/tailwind.feature.mjs +1 -1
  491. package/esm/generations/features/tailwind.feature.mjs.map +1 -1
  492. package/esm/generations/features/test.feature.mjs +1 -1
  493. package/esm/generations/features/test.feature.mjs.map +1 -1
  494. package/esm/generations/features/types.mjs +1 -1
  495. package/esm/generations/features/types.mjs.map +1 -1
  496. package/esm/generations/features/web.feature.mjs +1 -1
  497. package/esm/generations/features/web.feature.mjs.map +1 -1
  498. package/esm/generations/stubs.mjs +1 -1
  499. package/esm/generations/stubs.mjs.map +1 -1
  500. package/esm/http/boot-port-preflight.d.mts +1 -1
  501. package/esm/http/boot-port-preflight.d.mts.map +1 -1
  502. package/esm/http/boot-port-preflight.mjs +1 -1
  503. package/esm/http/boot-port-preflight.mjs.map +1 -1
  504. package/esm/http/build-cors-options.mjs +1 -1
  505. package/esm/http/build-cors-options.mjs.map +1 -1
  506. package/esm/http/config.d.mts +1 -1
  507. package/esm/http/config.d.mts.map +1 -1
  508. package/esm/http/config.mjs +1 -1
  509. package/esm/http/config.mjs.map +1 -1
  510. package/esm/http/context/request-context.d.mts +1 -1
  511. package/esm/http/context/request-context.d.mts.map +1 -1
  512. package/esm/http/context/request-context.mjs +1 -1
  513. package/esm/http/context/request-context.mjs.map +1 -1
  514. package/esm/http/context/request-memo.d.mts +1 -1
  515. package/esm/http/context/request-memo.d.mts.map +1 -1
  516. package/esm/http/context/request-memo.mjs +1 -1
  517. package/esm/http/context/request-memo.mjs.map +1 -1
  518. package/esm/http/createHttpApplication.d.mts +1 -1
  519. package/esm/http/createHttpApplication.d.mts.map +1 -1
  520. package/esm/http/createHttpApplication.mjs +1 -1
  521. package/esm/http/createHttpApplication.mjs.map +1 -1
  522. package/esm/http/database/RequestLog.d.mts +1 -1
  523. package/esm/http/database/RequestLog.d.mts.map +1 -1
  524. package/esm/http/database/RequestLog.mjs +1 -1
  525. package/esm/http/database/RequestLog.mjs.map +1 -1
  526. package/esm/http/error-codes.d.mts +1 -1
  527. package/esm/http/error-codes.d.mts.map +1 -1
  528. package/esm/http/error-codes.mjs +1 -1
  529. package/esm/http/error-codes.mjs.map +1 -1
  530. package/esm/http/errors/errors.d.mts +1 -1
  531. package/esm/http/errors/errors.d.mts.map +1 -1
  532. package/esm/http/errors/errors.mjs +1 -1
  533. package/esm/http/errors/errors.mjs.map +1 -1
  534. package/esm/http/events.d.mts +1 -1
  535. package/esm/http/events.d.mts.map +1 -1
  536. package/esm/http/events.mjs +1 -1
  537. package/esm/http/events.mjs.map +1 -1
  538. package/esm/http/health.d.mts +1 -1
  539. package/esm/http/health.d.mts.map +1 -1
  540. package/esm/http/health.mjs +1 -1
  541. package/esm/http/health.mjs.map +1 -1
  542. package/esm/http/middleware/cache-response-middleware.d.mts +1 -1
  543. package/esm/http/middleware/cache-response-middleware.d.mts.map +1 -1
  544. package/esm/http/middleware/cache-response-middleware.mjs +1 -1
  545. package/esm/http/middleware/cache-response-middleware.mjs.map +1 -1
  546. package/esm/http/middleware/concurrency-limit.middleware.d.mts +1 -1
  547. package/esm/http/middleware/concurrency-limit.middleware.d.mts.map +1 -1
  548. package/esm/http/middleware/concurrency-limit.middleware.mjs +1 -1
  549. package/esm/http/middleware/concurrency-limit.middleware.mjs.map +1 -1
  550. package/esm/http/middleware/idempotency.middleware.d.mts +1 -1
  551. package/esm/http/middleware/idempotency.middleware.d.mts.map +1 -1
  552. package/esm/http/middleware/idempotency.middleware.mjs +1 -1
  553. package/esm/http/middleware/idempotency.middleware.mjs.map +1 -1
  554. package/esm/http/middleware/inject-request-context.d.mts +1 -1
  555. package/esm/http/middleware/inject-request-context.d.mts.map +1 -1
  556. package/esm/http/middleware/inject-request-context.mjs +1 -1
  557. package/esm/http/middleware/inject-request-context.mjs.map +1 -1
  558. package/esm/http/middleware/ip-filter.middleware.d.mts +1 -1
  559. package/esm/http/middleware/ip-filter.middleware.d.mts.map +1 -1
  560. package/esm/http/middleware/ip-filter.middleware.mjs +1 -1
  561. package/esm/http/middleware/ip-filter.middleware.mjs.map +1 -1
  562. package/esm/http/middleware/maintenance.middleware.d.mts +1 -1
  563. package/esm/http/middleware/maintenance.middleware.d.mts.map +1 -1
  564. package/esm/http/middleware/maintenance.middleware.mjs +1 -1
  565. package/esm/http/middleware/maintenance.middleware.mjs.map +1 -1
  566. package/esm/http/middleware/max-body-size.middleware.d.mts +1 -1
  567. package/esm/http/middleware/max-body-size.middleware.d.mts.map +1 -1
  568. package/esm/http/middleware/max-body-size.middleware.mjs +1 -1
  569. package/esm/http/middleware/max-body-size.middleware.mjs.map +1 -1
  570. package/esm/http/middleware/middleware-list.d.mts +1 -1
  571. package/esm/http/middleware/middleware-list.d.mts.map +1 -1
  572. package/esm/http/middleware/middleware-list.mjs +1 -1
  573. package/esm/http/middleware/middleware-list.mjs.map +1 -1
  574. package/esm/http/middleware/rate-limit.middleware.d.mts +1 -1
  575. package/esm/http/middleware/rate-limit.middleware.d.mts.map +1 -1
  576. package/esm/http/middleware/rate-limit.middleware.mjs +1 -1
  577. package/esm/http/middleware/rate-limit.middleware.mjs.map +1 -1
  578. package/esm/http/middleware/utils/cidr-match.d.mts +1 -1
  579. package/esm/http/middleware/utils/cidr-match.d.mts.map +1 -1
  580. package/esm/http/middleware/utils/cidr-match.mjs +1 -1
  581. package/esm/http/middleware/utils/cidr-match.mjs.map +1 -1
  582. package/esm/http/middleware/utils/idempotency-key.d.mts +1 -1
  583. package/esm/http/middleware/utils/idempotency-key.d.mts.map +1 -1
  584. package/esm/http/middleware/utils/idempotency-key.mjs +1 -1
  585. package/esm/http/middleware/utils/idempotency-key.mjs.map +1 -1
  586. package/esm/http/middleware/utils/parse-size.d.mts +1 -1
  587. package/esm/http/middleware/utils/parse-size.d.mts.map +1 -1
  588. package/esm/http/middleware/utils/parse-size.mjs +1 -1
  589. package/esm/http/middleware/utils/parse-size.mjs.map +1 -1
  590. package/esm/http/plugins.d.mts +1 -1
  591. package/esm/http/plugins.d.mts.map +1 -1
  592. package/esm/http/plugins.mjs +1 -1
  593. package/esm/http/plugins.mjs.map +1 -1
  594. package/esm/http/port-preflight.d.mts +1 -1
  595. package/esm/http/port-preflight.d.mts.map +1 -1
  596. package/esm/http/port-preflight.mjs +1 -1
  597. package/esm/http/port-preflight.mjs.map +1 -1
  598. package/esm/http/ready-report.d.mts +1 -1
  599. package/esm/http/ready-report.d.mts.map +1 -1
  600. package/esm/http/ready-report.mjs +1 -1
  601. package/esm/http/ready-report.mjs.map +1 -1
  602. package/esm/http/request-controller.d.mts +1 -1
  603. package/esm/http/request-controller.d.mts.map +1 -1
  604. package/esm/http/request-controller.mjs +1 -1
  605. package/esm/http/request-controller.mjs.map +1 -1
  606. package/esm/http/request.d.mts +1 -1
  607. package/esm/http/request.d.mts.map +1 -1
  608. package/esm/http/request.mjs +1 -1
  609. package/esm/http/request.mjs.map +1 -1
  610. package/esm/http/response.d.mts +1 -1
  611. package/esm/http/response.d.mts.map +1 -1
  612. package/esm/http/response.mjs +1 -1
  613. package/esm/http/response.mjs.map +1 -1
  614. package/esm/http/server.d.mts +1 -1
  615. package/esm/http/server.d.mts.map +1 -1
  616. package/esm/http/server.mjs +1 -1
  617. package/esm/http/server.mjs.map +1 -1
  618. package/esm/http/types.d.mts +1 -1
  619. package/esm/http/types.d.mts.map +1 -1
  620. package/esm/http/uploaded-file.d.mts +1 -1
  621. package/esm/http/uploaded-file.d.mts.map +1 -1
  622. package/esm/http/uploaded-file.mjs +1 -1
  623. package/esm/http/uploaded-file.mjs.map +1 -1
  624. package/esm/http/uploads-config.d.mts +1 -1
  625. package/esm/http/uploads-config.d.mts.map +1 -1
  626. package/esm/http/uploads-config.mjs +1 -1
  627. package/esm/http/uploads-config.mjs.map +1 -1
  628. package/esm/http/uploads-types.d.mts +1 -1
  629. package/esm/http/uploads-types.d.mts.map +1 -1
  630. package/esm/image/image.d.mts +1 -1
  631. package/esm/image/image.d.mts.map +1 -1
  632. package/esm/image/image.mjs +1 -1
  633. package/esm/image/image.mjs.map +1 -1
  634. package/esm/logger/fatal-visibility.d.mts +1 -1
  635. package/esm/logger/fatal-visibility.d.mts.map +1 -1
  636. package/esm/logger/fatal-visibility.mjs +1 -1
  637. package/esm/logger/fatal-visibility.mjs.map +1 -1
  638. package/esm/logger/logger.d.mts +1 -1
  639. package/esm/logger/logger.d.mts.map +1 -1
  640. package/esm/logger/logger.mjs +1 -1
  641. package/esm/logger/logger.mjs.map +1 -1
  642. package/esm/logger/types.d.mts +1 -1
  643. package/esm/logger/types.d.mts.map +1 -1
  644. package/esm/mail/config.d.mts +1 -1
  645. package/esm/mail/config.d.mts.map +1 -1
  646. package/esm/mail/config.mjs +1 -1
  647. package/esm/mail/config.mjs.map +1 -1
  648. package/esm/mail/events.d.mts +1 -1
  649. package/esm/mail/events.d.mts.map +1 -1
  650. package/esm/mail/events.mjs +1 -1
  651. package/esm/mail/events.mjs.map +1 -1
  652. package/esm/mail/mail.d.mts +1 -1
  653. package/esm/mail/mail.d.mts.map +1 -1
  654. package/esm/mail/mail.mjs +1 -1
  655. package/esm/mail/mail.mjs.map +1 -1
  656. package/esm/mail/mailer-pool.d.mts +1 -1
  657. package/esm/mail/mailer-pool.d.mts.map +1 -1
  658. package/esm/mail/mailer-pool.mjs +1 -1
  659. package/esm/mail/mailer-pool.mjs.map +1 -1
  660. package/esm/mail/react-mail.d.mts +1 -1
  661. package/esm/mail/react-mail.d.mts.map +1 -1
  662. package/esm/mail/react-mail.mjs +1 -1
  663. package/esm/mail/react-mail.mjs.map +1 -1
  664. package/esm/mail/send-mail.d.mts +1 -1
  665. package/esm/mail/send-mail.d.mts.map +1 -1
  666. package/esm/mail/send-mail.mjs +1 -1
  667. package/esm/mail/send-mail.mjs.map +1 -1
  668. package/esm/mail/test-mailbox.d.mts +1 -1
  669. package/esm/mail/test-mailbox.d.mts.map +1 -1
  670. package/esm/mail/test-mailbox.mjs +1 -1
  671. package/esm/mail/test-mailbox.mjs.map +1 -1
  672. package/esm/mail/types.d.mts +1 -1
  673. package/esm/mail/types.d.mts.map +1 -1
  674. package/esm/mail/types.mjs +1 -1
  675. package/esm/mail/types.mjs.map +1 -1
  676. package/esm/manifest/manifest-manager.mjs +1 -1
  677. package/esm/manifest/manifest-manager.mjs.map +1 -1
  678. package/esm/production/assert-dist-ready-to-start.mjs +1 -1
  679. package/esm/production/assert-dist-ready-to-start.mjs.map +1 -1
  680. package/esm/production/assert-generated-imports.mjs +1 -1
  681. package/esm/production/assert-generated-imports.mjs.map +1 -1
  682. package/esm/production/build-app-production.mjs +1 -1
  683. package/esm/production/build-app-production.mjs.map +1 -1
  684. package/esm/production/build-contributions.mjs +1 -1
  685. package/esm/production/build-contributions.mjs.map +1 -1
  686. package/esm/production/dist-build-manifest.mjs +1 -1
  687. package/esm/production/dist-build-manifest.mjs.map +1 -1
  688. package/esm/production/esbuild-plugins.mjs +1 -1
  689. package/esm/production/esbuild-plugins.mjs.map +1 -1
  690. package/esm/production/production-builder.mjs +1 -1
  691. package/esm/production/production-builder.mjs.map +1 -1
  692. package/esm/production/production-supervisor.mjs +1 -1
  693. package/esm/production/production-supervisor.mjs.map +1 -1
  694. package/esm/production/promote-dist.mjs +1 -1
  695. package/esm/production/promote-dist.mjs.map +1 -1
  696. package/esm/production/resolve-build-config.d.mts +1 -1
  697. package/esm/production/resolve-build-config.d.mts.map +1 -1
  698. package/esm/production/resolve-build-config.mjs +1 -1
  699. package/esm/production/resolve-build-config.mjs.map +1 -1
  700. package/esm/react/index.d.mts +1 -1
  701. package/esm/react/index.d.mts.map +1 -1
  702. package/esm/react/index.mjs +1 -1
  703. package/esm/react/index.mjs.map +1 -1
  704. package/esm/repositories/adapters/cascade/cascade-adapter.d.mts +1 -1
  705. package/esm/repositories/adapters/cascade/cascade-adapter.d.mts.map +1 -1
  706. package/esm/repositories/adapters/cascade/cascade-adapter.mjs +1 -1
  707. package/esm/repositories/adapters/cascade/cascade-adapter.mjs.map +1 -1
  708. package/esm/repositories/adapters/cascade/cascade-query-builder.d.mts +1 -1
  709. package/esm/repositories/adapters/cascade/cascade-query-builder.d.mts.map +1 -1
  710. package/esm/repositories/adapters/cascade/cascade-query-builder.mjs +1 -1
  711. package/esm/repositories/adapters/cascade/cascade-query-builder.mjs.map +1 -1
  712. package/esm/repositories/adapters/cascade/filter-applicator.mjs +1 -1
  713. package/esm/repositories/adapters/cascade/filter-applicator.mjs.map +1 -1
  714. package/esm/repositories/contracts/query-builder.contract.d.mts +1 -1
  715. package/esm/repositories/contracts/query-builder.contract.d.mts.map +1 -1
  716. package/esm/repositories/contracts/repository-adapter.contract.d.mts +1 -1
  717. package/esm/repositories/contracts/repository-adapter.contract.d.mts.map +1 -1
  718. package/esm/repositories/contracts/types.d.mts +1 -1
  719. package/esm/repositories/contracts/types.d.mts.map +1 -1
  720. package/esm/repositories/repository.manager.d.mts +1 -1
  721. package/esm/repositories/repository.manager.d.mts.map +1 -1
  722. package/esm/repositories/repository.manager.mjs +1 -1
  723. package/esm/repositories/repository.manager.mjs.map +1 -1
  724. package/esm/resource/define-resource.d.mts +1 -1
  725. package/esm/resource/define-resource.d.mts.map +1 -1
  726. package/esm/resource/define-resource.mjs +1 -1
  727. package/esm/resource/define-resource.mjs.map +1 -1
  728. package/esm/resource/register-resource.d.mts +1 -1
  729. package/esm/resource/register-resource.d.mts.map +1 -1
  730. package/esm/resource/register-resource.mjs +1 -1
  731. package/esm/resource/register-resource.mjs.map +1 -1
  732. package/esm/resource/resource-field-builder.d.mts +1 -1
  733. package/esm/resource/resource-field-builder.d.mts.map +1 -1
  734. package/esm/resource/resource-field-builder.mjs +1 -1
  735. package/esm/resource/resource-field-builder.mjs.map +1 -1
  736. package/esm/resource/resource.d.mts +1 -1
  737. package/esm/resource/resource.d.mts.map +1 -1
  738. package/esm/resource/resource.mjs +1 -1
  739. package/esm/resource/resource.mjs.map +1 -1
  740. package/esm/resource/types.d.mts +1 -1
  741. package/esm/resource/types.d.mts.map +1 -1
  742. package/esm/restful/restful.d.mts +1 -1
  743. package/esm/restful/restful.d.mts.map +1 -1
  744. package/esm/restful/restful.mjs +1 -1
  745. package/esm/restful/restful.mjs.map +1 -1
  746. package/esm/router/describe-route-for-log.mjs +1 -1
  747. package/esm/router/describe-route-for-log.mjs.map +1 -1
  748. package/esm/router/log-request-lifecycle.mjs +1 -1
  749. package/esm/router/log-request-lifecycle.mjs.map +1 -1
  750. package/esm/router/normalize-request-path.d.mts +1 -1
  751. package/esm/router/normalize-request-path.d.mts.map +1 -1
  752. package/esm/router/normalize-request-path.mjs +1 -1
  753. package/esm/router/normalize-request-path.mjs.map +1 -1
  754. package/esm/router/normalize-route-path.d.mts +1 -1
  755. package/esm/router/normalize-route-path.d.mts.map +1 -1
  756. package/esm/router/normalize-route-path.mjs +1 -1
  757. package/esm/router/normalize-route-path.mjs.map +1 -1
  758. package/esm/router/positional-handler-diagnostics.d.mts +1 -1
  759. package/esm/router/positional-handler-diagnostics.d.mts.map +1 -1
  760. package/esm/router/positional-handler-diagnostics.mjs +1 -1
  761. package/esm/router/positional-handler-diagnostics.mjs.map +1 -1
  762. package/esm/router/route-builder.d.mts +1 -1
  763. package/esm/router/route-builder.d.mts.map +1 -1
  764. package/esm/router/route-builder.mjs +1 -1
  765. package/esm/router/route-builder.mjs.map +1 -1
  766. package/esm/router/route-name-method-suffix.d.mts +1 -1
  767. package/esm/router/route-name-method-suffix.d.mts.map +1 -1
  768. package/esm/router/route-name-method-suffix.mjs +1 -1
  769. package/esm/router/route-name-method-suffix.mjs.map +1 -1
  770. package/esm/router/route-registry.d.mts +1 -1
  771. package/esm/router/route-registry.d.mts.map +1 -1
  772. package/esm/router/route-registry.mjs +1 -1
  773. package/esm/router/route-registry.mjs.map +1 -1
  774. package/esm/router/router.d.mts +1 -1
  775. package/esm/router/router.d.mts.map +1 -1
  776. package/esm/router/router.mjs +1 -1
  777. package/esm/router/router.mjs.map +1 -1
  778. package/esm/router/types.d.mts +1 -1
  779. package/esm/router/types.d.mts.map +1 -1
  780. package/esm/socket/types.d.mts +1 -1
  781. package/esm/socket/types.d.mts.map +1 -1
  782. package/esm/socket/utils.d.mts +1 -1
  783. package/esm/socket/utils.d.mts.map +1 -1
  784. package/esm/socket/utils.mjs +1 -1
  785. package/esm/socket/utils.mjs.map +1 -1
  786. package/esm/storage/config.d.mts +1 -1
  787. package/esm/storage/config.d.mts.map +1 -1
  788. package/esm/storage/config.mjs +1 -1
  789. package/esm/storage/config.mjs.map +1 -1
  790. package/esm/storage/context/storage-driver-context.d.mts +1 -1
  791. package/esm/storage/context/storage-driver-context.d.mts.map +1 -1
  792. package/esm/storage/context/storage-driver-context.mjs +1 -1
  793. package/esm/storage/context/storage-driver-context.mjs.map +1 -1
  794. package/esm/storage/drivers/cloud-driver.d.mts +1 -1
  795. package/esm/storage/drivers/cloud-driver.d.mts.map +1 -1
  796. package/esm/storage/drivers/cloud-driver.mjs +1 -1
  797. package/esm/storage/drivers/cloud-driver.mjs.map +1 -1
  798. package/esm/storage/drivers/do-spaces-driver.d.mts +1 -1
  799. package/esm/storage/drivers/do-spaces-driver.d.mts.map +1 -1
  800. package/esm/storage/drivers/do-spaces-driver.mjs +1 -1
  801. package/esm/storage/drivers/do-spaces-driver.mjs.map +1 -1
  802. package/esm/storage/drivers/local-driver.d.mts +1 -1
  803. package/esm/storage/drivers/local-driver.d.mts.map +1 -1
  804. package/esm/storage/drivers/local-driver.mjs +1 -1
  805. package/esm/storage/drivers/local-driver.mjs.map +1 -1
  806. package/esm/storage/drivers/r2-driver.d.mts +1 -1
  807. package/esm/storage/drivers/r2-driver.d.mts.map +1 -1
  808. package/esm/storage/drivers/r2-driver.mjs +1 -1
  809. package/esm/storage/drivers/r2-driver.mjs.map +1 -1
  810. package/esm/storage/drivers/s3-driver.d.mts +1 -1
  811. package/esm/storage/drivers/s3-driver.d.mts.map +1 -1
  812. package/esm/storage/drivers/s3-driver.mjs +1 -1
  813. package/esm/storage/drivers/s3-driver.mjs.map +1 -1
  814. package/esm/storage/scoped-storage.d.mts +1 -1
  815. package/esm/storage/scoped-storage.d.mts.map +1 -1
  816. package/esm/storage/scoped-storage.mjs +1 -1
  817. package/esm/storage/scoped-storage.mjs.map +1 -1
  818. package/esm/storage/storage-file.d.mts +1 -1
  819. package/esm/storage/storage-file.d.mts.map +1 -1
  820. package/esm/storage/storage-file.mjs +1 -1
  821. package/esm/storage/storage-file.mjs.map +1 -1
  822. package/esm/storage/storage.d.mts +1 -1
  823. package/esm/storage/storage.d.mts.map +1 -1
  824. package/esm/storage/storage.mjs +1 -1
  825. package/esm/storage/storage.mjs.map +1 -1
  826. package/esm/storage/types.d.mts +1 -1
  827. package/esm/storage/types.d.mts.map +1 -1
  828. package/esm/storage/utils/contain-path.d.mts +1 -1
  829. package/esm/storage/utils/contain-path.d.mts.map +1 -1
  830. package/esm/storage/utils/contain-path.mjs +1 -1
  831. package/esm/storage/utils/contain-path.mjs.map +1 -1
  832. package/esm/storage/utils/mime.d.mts +1 -1
  833. package/esm/storage/utils/mime.d.mts.map +1 -1
  834. package/esm/storage/utils/mime.mjs +1 -1
  835. package/esm/storage/utils/mime.mjs.map +1 -1
  836. package/esm/storage/utils/safe-fetch.d.mts +1 -1
  837. package/esm/storage/utils/safe-fetch.d.mts.map +1 -1
  838. package/esm/storage/utils/safe-fetch.mjs +1 -1
  839. package/esm/storage/utils/safe-fetch.mjs.map +1 -1
  840. package/esm/storage/utils/storage-error.d.mts +1 -1
  841. package/esm/storage/utils/storage-error.d.mts.map +1 -1
  842. package/esm/storage/utils/storage-error.mjs +1 -1
  843. package/esm/storage/utils/storage-error.mjs.map +1 -1
  844. package/esm/tests/start-http-development-server.d.mts +1 -1
  845. package/esm/tests/start-http-development-server.d.mts.map +1 -1
  846. package/esm/tests/start-http-development-server.mjs +1 -1
  847. package/esm/tests/start-http-development-server.mjs.map +1 -1
  848. package/esm/tests/test-connectors-selection.d.mts +1 -1
  849. package/esm/tests/test-connectors-selection.d.mts.map +1 -1
  850. package/esm/tests/test-connectors-selection.mjs +1 -1
  851. package/esm/tests/test-connectors-selection.mjs.map +1 -1
  852. package/esm/tests/test-helpers.d.mts +1 -1
  853. package/esm/tests/test-helpers.d.mts.map +1 -1
  854. package/esm/tests/test-helpers.mjs +1 -1
  855. package/esm/tests/test-helpers.mjs.map +1 -1
  856. package/esm/tests/test-lifecycle-state.mjs +1 -1
  857. package/esm/tests/test-lifecycle-state.mjs.map +1 -1
  858. package/esm/tests/test-server-port-channel.mjs +1 -1
  859. package/esm/tests/test-server-port-channel.mjs.map +1 -1
  860. package/esm/tests/test-setup-timeout.mjs +1 -1
  861. package/esm/tests/test-setup-timeout.mjs.map +1 -1
  862. package/esm/tests/vitest-setup.d.mts +1 -1
  863. package/esm/tests/vitest-setup.d.mts.map +1 -1
  864. package/esm/tests/vitest-setup.mjs +1 -1
  865. package/esm/tests/vitest-setup.mjs.map +1 -1
  866. package/esm/updater/package-manager.mjs +1 -1
  867. package/esm/updater/package-manager.mjs.map +1 -1
  868. package/esm/updater/update-warlock-packages.mjs +1 -1
  869. package/esm/updater/update-warlock-packages.mjs.map +1 -1
  870. package/esm/use-cases/types.d.mts +1 -1
  871. package/esm/use-cases/types.d.mts.map +1 -1
  872. package/esm/use-cases/use-case-broadcast.d.mts +1 -1
  873. package/esm/use-cases/use-case-broadcast.d.mts.map +1 -1
  874. package/esm/use-cases/use-case-broadcast.mjs +1 -1
  875. package/esm/use-cases/use-case-broadcast.mjs.map +1 -1
  876. package/esm/use-cases/use-case-events.d.mts +1 -1
  877. package/esm/use-cases/use-case-events.d.mts.map +1 -1
  878. package/esm/use-cases/use-case-events.mjs +1 -1
  879. package/esm/use-cases/use-case-events.mjs.map +1 -1
  880. package/esm/use-cases/use-case-pipeline.d.mts +1 -1
  881. package/esm/use-cases/use-case-pipeline.d.mts.map +1 -1
  882. package/esm/use-cases/use-case-pipeline.mjs +1 -1
  883. package/esm/use-cases/use-case-pipeline.mjs.map +1 -1
  884. package/esm/use-cases/use-case.d.mts +1 -1
  885. package/esm/use-cases/use-case.d.mts.map +1 -1
  886. package/esm/use-cases/use-case.errors.d.mts +1 -1
  887. package/esm/use-cases/use-case.errors.d.mts.map +1 -1
  888. package/esm/use-cases/use-case.errors.mjs +1 -1
  889. package/esm/use-cases/use-case.errors.mjs.map +1 -1
  890. package/esm/use-cases/use-case.mjs +1 -1
  891. package/esm/use-cases/use-case.mjs.map +1 -1
  892. package/esm/use-cases/use-cases-registry.d.mts +1 -1
  893. package/esm/use-cases/use-cases-registry.d.mts.map +1 -1
  894. package/esm/use-cases/use-cases-registry.mjs +1 -1
  895. package/esm/use-cases/use-cases-registry.mjs.map +1 -1
  896. package/esm/utils/app-log.d.mts +1 -1
  897. package/esm/utils/app-log.d.mts.map +1 -1
  898. package/esm/utils/app-log.mjs +1 -1
  899. package/esm/utils/app-log.mjs.map +1 -1
  900. package/esm/utils/database-log.d.mts +1 -1
  901. package/esm/utils/database-log.d.mts.map +1 -1
  902. package/esm/utils/database-log.mjs +1 -1
  903. package/esm/utils/database-log.mjs.map +1 -1
  904. package/esm/utils/environment.d.mts +1 -1
  905. package/esm/utils/environment.d.mts.map +1 -1
  906. package/esm/utils/environment.mjs +1 -1
  907. package/esm/utils/environment.mjs.map +1 -1
  908. package/esm/utils/framework-vesion.mjs +1 -1
  909. package/esm/utils/framework-vesion.mjs.map +1 -1
  910. package/esm/utils/get-localized.d.mts +1 -1
  911. package/esm/utils/get-localized.d.mts.map +1 -1
  912. package/esm/utils/get-localized.mjs +1 -1
  913. package/esm/utils/get-localized.mjs.map +1 -1
  914. package/esm/utils/load-environment.mjs +1 -1
  915. package/esm/utils/load-environment.mjs.map +1 -1
  916. package/esm/utils/normalized-path.d.mts +1 -1
  917. package/esm/utils/normalized-path.d.mts.map +1 -1
  918. package/esm/utils/normalized-path.mjs +1 -1
  919. package/esm/utils/normalized-path.mjs.map +1 -1
  920. package/esm/utils/npm-registry.d.mts +1 -1
  921. package/esm/utils/npm-registry.d.mts.map +1 -1
  922. package/esm/utils/npm-registry.mjs +1 -1
  923. package/esm/utils/npm-registry.mjs.map +1 -1
  924. package/esm/utils/paths.d.mts +1 -1
  925. package/esm/utils/paths.d.mts.map +1 -1
  926. package/esm/utils/paths.mjs +1 -1
  927. package/esm/utils/paths.mjs.map +1 -1
  928. package/esm/utils/promise-all-object.d.mts +1 -1
  929. package/esm/utils/promise-all-object.d.mts.map +1 -1
  930. package/esm/utils/promise-all-object.mjs +1 -1
  931. package/esm/utils/promise-all-object.mjs.map +1 -1
  932. package/esm/utils/queue.d.mts +1 -1
  933. package/esm/utils/queue.d.mts.map +1 -1
  934. package/esm/utils/queue.mjs +1 -1
  935. package/esm/utils/queue.mjs.map +1 -1
  936. package/esm/utils/sleep.d.mts +1 -1
  937. package/esm/utils/sleep.d.mts.map +1 -1
  938. package/esm/utils/sleep.mjs +1 -1
  939. package/esm/utils/sleep.mjs.map +1 -1
  940. package/esm/utils/sluggable.d.mts +1 -1
  941. package/esm/utils/sluggable.d.mts.map +1 -1
  942. package/esm/utils/sluggable.mjs +1 -1
  943. package/esm/utils/sluggable.mjs.map +1 -1
  944. package/esm/utils/to-json.d.mts +1 -1
  945. package/esm/utils/to-json.d.mts.map +1 -1
  946. package/esm/utils/to-json.mjs +1 -1
  947. package/esm/utils/to-json.mjs.map +1 -1
  948. package/esm/utils/types.d.mts +1 -1
  949. package/esm/utils/types.d.mts.map +1 -1
  950. package/esm/utils/urls.d.mts +1 -1
  951. package/esm/utils/urls.d.mts.map +1 -1
  952. package/esm/utils/urls.mjs +1 -1
  953. package/esm/utils/urls.mjs.map +1 -1
  954. package/esm/utils/version-compare.d.mts +1 -1
  955. package/esm/utils/version-compare.d.mts.map +1 -1
  956. package/esm/utils/version-compare.mjs +1 -1
  957. package/esm/utils/version-compare.mjs.map +1 -1
  958. package/esm/validation/database/exists-except-current-id.d.mts +1 -1
  959. package/esm/validation/database/exists-except-current-id.d.mts.map +1 -1
  960. package/esm/validation/database/exists-except-current-id.mjs +1 -1
  961. package/esm/validation/database/exists-except-current-id.mjs.map +1 -1
  962. package/esm/validation/database/exists-except-current-user.d.mts +1 -1
  963. package/esm/validation/database/exists-except-current-user.d.mts.map +1 -1
  964. package/esm/validation/database/exists-except-current-user.mjs +1 -1
  965. package/esm/validation/database/exists-except-current-user.mjs.map +1 -1
  966. package/esm/validation/database/types.d.mts +1 -1
  967. package/esm/validation/database/types.d.mts.map +1 -1
  968. package/esm/validation/database/unique-except-current-id.d.mts +1 -1
  969. package/esm/validation/database/unique-except-current-id.d.mts.map +1 -1
  970. package/esm/validation/database/unique-except-current-id.mjs +1 -1
  971. package/esm/validation/database/unique-except-current-id.mjs.map +1 -1
  972. package/esm/validation/database/unique-except-current-user.d.mts +1 -1
  973. package/esm/validation/database/unique-except-current-user.d.mts.map +1 -1
  974. package/esm/validation/database/unique-except-current-user.mjs +1 -1
  975. package/esm/validation/database/unique-except-current-user.mjs.map +1 -1
  976. package/esm/validation/file/file.d.mts +1 -1
  977. package/esm/validation/file/file.d.mts.map +1 -1
  978. package/esm/validation/file/file.mjs +1 -1
  979. package/esm/validation/file/file.mjs.map +1 -1
  980. package/esm/validation/init.mjs +1 -1
  981. package/esm/validation/init.mjs.map +1 -1
  982. package/esm/validation/plugins/database-plugin.mjs +1 -1
  983. package/esm/validation/plugins/database-plugin.mjs.map +1 -1
  984. package/esm/validation/plugins/file-plugin.mjs +1 -1
  985. package/esm/validation/plugins/file-plugin.mjs.map +1 -1
  986. package/esm/validation/plugins/localized-plugin.mjs +1 -1
  987. package/esm/validation/plugins/localized-plugin.mjs.map +1 -1
  988. package/esm/validation/types.d.mts +1 -1
  989. package/esm/validation/types.d.mts.map +1 -1
  990. package/esm/validation/validateAll.mjs +1 -1
  991. package/esm/validation/validateAll.mjs.map +1 -1
  992. package/esm/validation/validators/file-validator.d.mts +1 -1
  993. package/esm/validation/validators/file-validator.d.mts.map +1 -1
  994. package/esm/validation/validators/file-validator.mjs +1 -1
  995. package/esm/validation/validators/file-validator.mjs.map +1 -1
  996. package/esm/vite/lower-stage3-decorators.d.mts +1 -1
  997. package/esm/vite/lower-stage3-decorators.d.mts.map +1 -1
  998. package/esm/vite/lower-stage3-decorators.mjs +1 -1
  999. package/esm/vite/lower-stage3-decorators.mjs.map +1 -1
  1000. package/esm/warlock-config/default-configurations.mjs +1 -1
  1001. package/esm/warlock-config/default-configurations.mjs.map +1 -1
  1002. package/esm/warlock-config/define-config.d.mts +1 -1
  1003. package/esm/warlock-config/define-config.d.mts.map +1 -1
  1004. package/esm/warlock-config/define-config.mjs +1 -1
  1005. package/esm/warlock-config/define-config.mjs.map +1 -1
  1006. package/esm/warlock-config/normalize-build-config.mjs +1 -1
  1007. package/esm/warlock-config/normalize-build-config.mjs.map +1 -1
  1008. package/esm/warlock-config/types.d.mts +1 -1
  1009. package/esm/warlock-config/types.d.mts.map +1 -1
  1010. package/esm/warlock-config/warlock-config.manager.d.mts +1 -1
  1011. package/esm/warlock-config/warlock-config.manager.d.mts.map +1 -1
  1012. package/esm/warlock-config/warlock-config.manager.mjs +1 -1
  1013. package/esm/warlock-config/warlock-config.manager.mjs.map +1 -1
  1014. package/package.json +12 -12
package/CHANGELOG.md CHANGED
@@ -6,6 +6,23 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
6
6
 
7
7
  > ⚠ **Versioning: `@warlock.js/*` does not follow SemVer strictly — breaking changes may ship in a minor.** This is a deliberate decision, not an oversight: the framework is pre-adoption and the cost of a major per behaviour fix currently outweighs the benefit. **Pin an exact version or a tilde range (`~4.13.0`) if you need to opt into changes rather than receive them.** Every breaking change is marked **BREAKING** in its entry and summarised in an *Upgrading* section at the top of the release. **This policy will change once the framework has consumers beyond its author.**
8
8
 
9
+ ## 5.2.2
10
+
11
+ ### Fixed
12
+
13
+ - Restored exact 5.2.2 pins across the complete Warlock family. The partial
14
+ 5.2.0 and 5.2.1 releases could not satisfy the family's reciprocal exact
15
+ peer requirements in a clean install.
16
+
17
+ ## 5.2.1
18
+
19
+ ### Fixed
20
+
21
+ - Rebuilt the published package with the complete Warlock family registry and
22
+ installable npm ranges for every internal dependency. The 5.2.0 registry
23
+ manifest leaked six `workspace:` dependency specifications and could not be
24
+ installed outside the monorepo.
25
+
9
26
  ## 5.2.0
10
27
 
11
28
  ### Added
@@ -3,7 +3,7 @@ import { DataSource } from "@warlock.js/cascade";
3
3
  import { FastifyInstance } from "fastify";
4
4
  import { Server } from "socket.io";
5
5
 
6
- //#region core/src/application/app.d.ts
6
+ //#region ../core/src/application/app.d.ts
7
7
  type RuntimeApplication = {
8
8
  socket: Server;
9
9
  http: FastifyInstance;
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.mts","names":[],"sources":["C:/Work/Warlock.js/core/src/application/app.ts"],"mappings":";;;;;;KAMK,kBAAA;EACH,MAAA,EAAQ,MAAA;EACR,IAAA,EAAM,eAAA;EACN,MAAA,EAAQ,MAAA;EACR,QAAA,EAAU,UAAA;AAAA;AAAA,cAGC,GAAA,EAAK,kBA4BjB"}
1
+ {"version":3,"file":"app.d.mts","names":[],"sources":["../../../../../../../core/src/application/app.ts"],"mappings":";;;;;;KAMK,kBAAA;EACH,MAAA,EAAQ,MAAA;EACR,IAAA,EAAM,eAAA;EACN,MAAA,EAAQ,MAAA;EACR,QAAA,EAAU,UAAA;AAAA;AAAA,cAGC,GAAA,EAAK,kBA4BjB"}
@@ -1,6 +1,6 @@
1
1
  import { container } from "../container/index.mjs";
2
2
 
3
- //#region core/src/application/app.ts
3
+ //#region ../core/src/application/app.ts
4
4
  const app = {
5
5
  /**
6
6
  * Socket Io Instance
@@ -1 +1 @@
1
- {"version":3,"file":"app.mjs","names":[],"sources":["C:/Work/Warlock.js/core/src/application/app.ts"],"sourcesContent":["import { type DataSource } from \"@warlock.js/cascade\";\nimport { type FastifyInstance } from \"fastify\";\nimport { type Server } from \"socket.io\";\nimport { type Router } from \"../router\";\nimport { container } from \"./../container\";\n\ntype RuntimeApplication = {\n socket: Server;\n http: FastifyInstance;\n router: Router;\n database: DataSource;\n};\n\nexport const app: RuntimeApplication = {\n /**\n * Socket Io Instance\n * Available only if socket.io config file exists\n */\n get socket() {\n return container.get(\"socket\");\n },\n /**\n * HTTP Server Instance\n * Available only if http config file exists\n */\n get http() {\n return container.get(\"http.server\");\n },\n /**\n * Router Instance\n */\n get router() {\n return container.get(\"router\");\n },\n /**\n * Database Instance\n * Available only if database config file exists\n */\n get database() {\n return container.get(\"database.source\");\n },\n};\n"],"mappings":";;;AAaA,MAAa,MAA0B;;;;;CAKrC,IAAI,SAAS;EACX,OAAO,UAAU,IAAI,QAAQ;CAC/B;;;;;CAKA,IAAI,OAAO;EACT,OAAO,UAAU,IAAI,aAAa;CACpC;;;;CAIA,IAAI,SAAS;EACX,OAAO,UAAU,IAAI,QAAQ;CAC/B;;;;;CAKA,IAAI,WAAW;EACb,OAAO,UAAU,IAAI,iBAAiB;CACxC;AACF"}
1
+ {"version":3,"file":"app.mjs","names":[],"sources":["../../../../../../../core/src/application/app.ts"],"sourcesContent":["import { type DataSource } from \"@warlock.js/cascade\";\nimport { type FastifyInstance } from \"fastify\";\nimport { type Server } from \"socket.io\";\nimport { type Router } from \"../router\";\nimport { container } from \"./../container\";\n\ntype RuntimeApplication = {\n socket: Server;\n http: FastifyInstance;\n router: Router;\n database: DataSource;\n};\n\nexport const app: RuntimeApplication = {\n /**\n * Socket Io Instance\n * Available only if socket.io config file exists\n */\n get socket() {\n return container.get(\"socket\");\n },\n /**\n * HTTP Server Instance\n * Available only if http config file exists\n */\n get http() {\n return container.get(\"http.server\");\n },\n /**\n * Router Instance\n */\n get router() {\n return container.get(\"router\");\n },\n /**\n * Database Instance\n * Available only if database config file exists\n */\n get database() {\n return container.get(\"database.source\");\n },\n};\n"],"mappings":";;;AAaA,MAAa,MAA0B;;;;;CAKrC,IAAI,SAAS;EACX,OAAO,UAAU,IAAI,QAAQ;CAC/B;;;;;CAKA,IAAI,OAAO;EACT,OAAO,UAAU,IAAI,aAAa;CACpC;;;;CAIA,IAAI,SAAS;EACX,OAAO,UAAU,IAAI,QAAQ;CAC/B;;;;;CAKA,IAAI,WAAW;EACb,OAAO,UAAU,IAAI,iBAAiB;CACxC;AACF"}
@@ -1,4 +1,4 @@
1
- //#region core/src/application/application-config-types.d.ts
1
+ //#region ../core/src/application/application-config-types.d.ts
2
2
  type AppConfigurations = {
3
3
  /**
4
4
  * App name
@@ -1 +1 @@
1
- {"version":3,"file":"application-config-types.d.mts","names":[],"sources":["C:/Work/Warlock.js/core/src/application/application-config-types.ts"],"mappings":";KAAY,iBAAA;EAAA;;;EAIV,OAAA;EAAA;;;;;EAMA,UAAA;EAcW;;;;;EARX,OAAA;;;;EAIA,QAAA;;;;EAIA,WAAA;AAAA"}
1
+ {"version":3,"file":"application-config-types.d.mts","names":[],"sources":["../../../../../../../core/src/application/application-config-types.ts"],"mappings":";KAAY,iBAAA;EAAA;;;EAIV,OAAA;EAAA;;;;;EAMA,UAAA;EAcW;;;;;EARX,OAAA;;;;EAIA,QAAA;;;;EAIA,WAAA;AAAA"}
@@ -1,6 +1,6 @@
1
1
  import { Environment, RuntimeStrategy } from "../utils/environment.mjs";
2
2
 
3
- //#region core/src/application/application.d.ts
3
+ //#region ../core/src/application/application.d.ts
4
4
  /**
5
5
  * Snapshot of the global facts known the moment the application finished
6
6
  * booting: every connector (early + late) is active and all app files
@@ -1 +1 @@
1
- {"version":3,"file":"application.d.mts","names":[],"sources":["C:/Work/Warlock.js/core/src/application/application.ts"],"mappings":";;;;;AAiBA;;;;KAAY,WAAA;EACV,WAAA,EAAa,WAAA;EACb,eAAA,EAAiB,eAAe;EAAf;;;AAKH;EAAd,cAAA;AAAA;;;;;;KAQU,YAAA,IAAgB,OAAA,EAAS,WAAA,YAAuB,OAAO;AAAA;AAYnE;;;;AAAgD;AAkBhD;;;;AA9BmE,KAYvD,aAAA,gBAA6B,OAAO;AAoBhD;;;;;AAAA,KAFY,gBAAA,gBAAgC,OAAO;AAAA,cAEtC,WAAA;EAwHyB;;;EAAA,gBApHb,SAAA,EAAS,IAAA;EA2OY;;;EAAA,OAtO9B,eAAA,EAAiB,eAAA;EAoVG;;;EAAA,eA/UnB,MAAA;EAViB;;;EAAA,eAejB,WAAA;EAAA;;;;EAAA,eAMA,aAAA;EA2BA;;;;;EAAA,eApBA,SAAA;EA8CG;;;;EAAA,eAxCH,cAAA;EAmEU;;;;;;EAAA,eA3DV,UAAA;EAiIM;;;;EAAA,eA3HN,YAAA;EA2L6B;;;EAAA,eAtL7B,iBAAA;EAqOU;;;EAAA,WAhOP,OAAA,CAAA;EAiRA;;;EAAA,OA1QJ,kBAAA,CAAmB,QAAA,EAAU,eAAA;EAwRT;;;;;EAAA,WA/QhB,QAAA,CAAA;EAkTA;;;;;EAAA,OAzSJ,aAAA,CAAc,IAAA;EAqUA;;;;;;;;;;;;;;EAAA,OAnTd,UAAA,CAAW,QAAA,EAAU,YAAA;;;;;SAerB,UAAA,CAAA,GAAc,OAAA,CAAQ,WAAA;;;;;;;;;;;;;;;SAwBtB,UAAA,CAAW,OAAA,EAAS,WAAA;;;;;iBA+Bb,eAAA;;;;;;;;;;;;;;;;;;;;;;;;SAkCP,cAAA,CAAe,SAAA,EAAW,aAAA;;;;;;;;;;;;;;;;;;SA8BpB,oBAAA,CAAA,GAAwB,OAAA;;;;;;aAgC1B,cAAA,CAAA;;;;;;;;;;;;SAeJ,UAAA,CAAW,QAAA,EAAU,gBAAA;;;;;;;;;;SAmBf,gBAAA,CAAA,GAAoB,OAAA;;;;;iBAmBnB,mBAAA;;;;aAWH,MAAA,CAAA;;;;aAOA,WAAA,CAAA,GAAe,WAAA;;;;SAOnB,cAAA,CAAe,GAAA,EAAK,WAAA;;;;aAOhB,YAAA,CAAA;;;;aAOA,aAAA,CAAA;;;;aAOA,MAAA,CAAA;;;;aAOA,QAAA,CAAA;;;;aAOA,OAAA,CAAA;;;;aAOA,OAAA,CAAA;;;;aAOA,WAAA,CAAA;;;;aAOA,WAAA,CAAA;;;;aAOA,UAAA,CAAA;AAAA"}
1
+ {"version":3,"file":"application.d.mts","names":[],"sources":["../../../../../../../core/src/application/application.ts"],"mappings":";;;;;AAiBA;;;;KAAY,WAAA;EACV,WAAA,EAAa,WAAA;EACb,eAAA,EAAiB,eAAe;EAAf;;;AAKH;EAAd,cAAA;AAAA;;;;;;KAQU,YAAA,IAAgB,OAAA,EAAS,WAAA,YAAuB,OAAO;AAAA;AAYnE;;;;AAAgD;AAkBhD;;;;AA9BmE,KAYvD,aAAA,gBAA6B,OAAO;AAoBhD;;;;;AAAA,KAFY,gBAAA,gBAAgC,OAAO;AAAA,cAEtC,WAAA;EAwHyB;;;EAAA,gBApHb,SAAA,EAAS,IAAA;EA2OY;;;EAAA,OAtO9B,eAAA,EAAiB,eAAA;EAoVG;;;EAAA,eA/UnB,MAAA;EAViB;;;EAAA,eAejB,WAAA;EAAA;;;;EAAA,eAMA,aAAA;EA2BA;;;;;EAAA,eApBA,SAAA;EA8CG;;;;EAAA,eAxCH,cAAA;EAmEU;;;;;;EAAA,eA3DV,UAAA;EAiIM;;;;EAAA,eA3HN,YAAA;EA2L6B;;;EAAA,eAtL7B,iBAAA;EAqOU;;;EAAA,WAhOP,OAAA,CAAA;EAiRA;;;EAAA,OA1QJ,kBAAA,CAAmB,QAAA,EAAU,eAAA;EAwRT;;;;;EAAA,WA/QhB,QAAA,CAAA;EAkTA;;;;;EAAA,OAzSJ,aAAA,CAAc,IAAA;EAqUA;;;;;;;;;;;;;;EAAA,OAnTd,UAAA,CAAW,QAAA,EAAU,YAAA;;;;;SAerB,UAAA,CAAA,GAAc,OAAA,CAAQ,WAAA;;;;;;;;;;;;;;;SAwBtB,UAAA,CAAW,OAAA,EAAS,WAAA;;;;;iBA+Bb,eAAA;;;;;;;;;;;;;;;;;;;;;;;;SAkCP,cAAA,CAAe,SAAA,EAAW,aAAA;;;;;;;;;;;;;;;;;;SA8BpB,oBAAA,CAAA,GAAwB,OAAA;;;;;;aAgC1B,cAAA,CAAA;;;;;;;;;;;;SAeJ,UAAA,CAAW,QAAA,EAAU,gBAAA;;;;;;;;;;SAmBf,gBAAA,CAAA,GAAoB,OAAA;;;;;iBAmBnB,mBAAA;;;;aAWH,MAAA,CAAA;;;;aAOA,WAAA,CAAA,GAAe,WAAA;;;;SAOnB,cAAA,CAAe,GAAA,EAAK,WAAA;;;;aAOhB,YAAA,CAAA;;;;aAOA,aAAA,CAAA;;;;aAOA,MAAA,CAAA;;;;aAOA,QAAA,CAAA;;;;aAOA,OAAA,CAAA;;;;aAOA,OAAA,CAAA;;;;aAOA,WAAA,CAAA;;;;aAOA,WAAA,CAAA;;;;aAOA,UAAA,CAAA;AAAA"}
@@ -4,7 +4,7 @@ import { BOOT_SIGNAL_VERSION, sendBootSignal } from "./boot-signal.mjs";
4
4
  import { getFrameworkVersion } from "../utils/framework-vesion.mjs";
5
5
  import { log } from "@warlock.js/logger";
6
6
 
7
- //#region core/src/application/application.ts
7
+ //#region ../core/src/application/application.ts
8
8
  const ErrorWithCause = Error;
9
9
  var Application = class {
10
10
  static {
@@ -1 +1 @@
1
- {"version":3,"file":"application.mjs","names":[],"sources":["C:/Work/Warlock.js/core/src/application/application.ts"],"sourcesContent":["import { log } from \"@warlock.js/logger\";\nimport { BOOT_SIGNAL_VERSION, sendBootSignal } from \"./boot-signal\";\nimport {\n environment,\n setEnvironment,\n type Environment,\n type RuntimeStrategy,\n} from \"../utils/environment\";\nimport { getFrameworkVersion } from \"../utils/framework-vesion\";\nimport { appPath, publicPath, rootPath, srcPath, storagePath, uploadsPath } from \"../utils/paths\";\n\n/**\n * Snapshot of the global facts known the moment the application finished\n * booting: every connector (early + late) is active and all app files\n * (locales, events, main, routes) are loaded. Passed to every\n * `Application.onceBooted` listener and resolved from `Application.whenBooted`.\n */\nexport type BootContext = {\n environment: Environment;\n runtimeStrategy: RuntimeStrategy;\n /**\n * Wall-clock milliseconds the boot took. The dev server measures it; the\n * production entry omits it.\n */\n bootDurationMs?: number;\n};\n\n/**\n * A callback registered through `Application.onceBooted`. May be async — its\n * rejection is caught and logged so a single listener can never break boot or\n * the other listeners.\n */\nexport type BootListener = (context: BootContext) => void | Promise<void>;\n\n/**\n * A callback registered through `Application.onValidateBoot`. May be async —\n * unlike {@link BootListener}, its rejection is NOT caught: it aborts boot.\n *\n * Use this for configuration that makes the application WRONG rather than\n * degraded when missing (a signing secret, a required integration key) — the\n * kind of check that must fail closed. Use `onceBooted` for everything else;\n * that contract stays fire-and-forget on purpose (it is the right behaviour\n * for plugins reacting to boot, not for gating it).\n */\nexport type BootValidator = () => void | Promise<void>;\n\n/**\n * `new Error(message, { cause })` is ES2022, and this package still compiles\n * against the ES2020 lib, where `Error` is typed as taking a message only.\n * Node has supported the option since v16, so this is the type layer\n * catching up with the runtime, not a change in what the code does. Same\n * workaround as `image.ts` (see #16).\n */\ntype ErrorWithCauseConstructor = new (message: string, options: { cause: unknown }) => Error;\n\nconst ErrorWithCause = Error as ErrorWithCauseConstructor;\n\n/**\n * A callback registered through `Application.onShutdown`. Runs once, while the\n * connectors (db, cache, http) are still up, so it can release app-owned\n * resources cleanly. May be async — its rejection is caught and logged.\n */\nexport type ShutdownListener = () => void | Promise<void>;\n\nexport class Application {\n /**\n * Project start time regarding the process start time\n */\n public static readonly startedAt = new Date(Date.now() - process.uptime() * 1000);\n\n /**\n * Runtime strategy\n */\n public static runtimeStrategy: RuntimeStrategy;\n\n /**\n * Whether the application has finished booting. Flipped once by `markBooted`.\n */\n private static booted = false;\n\n /**\n * The boot context, set once booted so it can be replayed to late subscribers.\n */\n private static bootContext: BootContext | undefined;\n\n /**\n * Listeners queued before boot completed, drained in registration order by\n * `markBooted`.\n */\n private static bootListeners: BootListener[] = [];\n\n /**\n * Whether `runStartupValidators` has already run. Flipped once, so a\n * validator registered afterwards is refused instead of silently skipped\n * or run too late to matter.\n */\n private static validated = false;\n\n /**\n * Startup validators queued before `runStartupValidators` ran, drained in\n * registration order.\n */\n private static bootValidators: BootValidator[] = [];\n\n /**\n * The http port this process actually bound, once it has. Reported in the\n * readiness signal so a supervisor knows where to send its health check\n * instead of re-deriving it from config it may not be able to read.\n * Undefined for an app with no http connector — a queue worker still boots.\n */\n private static servedPort: number | undefined;\n\n /**\n * Whether the application has begun (or finished) shutting down. Flipped once\n * by `runShutdownHooks`.\n */\n private static shuttingDown = false;\n\n /**\n * Teardown callbacks, run once when shutdown begins.\n */\n private static shutdownListeners: ShutdownListener[] = [];\n\n /**\n * Get framework version\n */\n public static get version() {\n return getFrameworkVersion();\n }\n\n /**\n * Set the runtime strategy\n */\n public static setRuntimeStrategy(strategy: RuntimeStrategy) {\n this.runtimeStrategy = strategy;\n }\n\n /**\n * Whether the application has finished booting — every connector in both\n * the early and late phases is active and all app files (locales, events,\n * main, routes) have been loaded.\n */\n public static get isBooted(): boolean {\n return this.booted;\n }\n\n /**\n * Record the http port this process bound.\n *\n * @internal The http connector calls this after a successful `listen`.\n */\n public static setServedPort(port: number): void {\n this.servedPort = port;\n }\n\n /**\n * Run a callback once the application is fully booted.\n *\n * App files (`main` / `events` / `routes` / locales) are imported BEFORE the\n * late-phase connectors (http, socket) start, so a listener registered at\n * import time waits for the whole sequence to finish before it runs. If the\n * application is already booted, the callback runs on the next microtask —\n * so a late subscriber never silently misses the event.\n *\n * @example\n * Application.onceBooted(({ environment }) => {\n * log.info(\"app\", \"booted\", `ready in ${environment}`);\n * });\n */\n public static onceBooted(listener: BootListener): void {\n if (this.booted && this.bootContext) {\n const context = this.bootContext;\n void this.runBootListener(listener, context);\n\n return;\n }\n\n this.bootListeners.push(listener);\n }\n\n /**\n * Promise form of {@link onceBooted} — resolves with the boot context once\n * the application is booted, or immediately if it already is.\n */\n public static whenBooted(): Promise<BootContext> {\n if (this.booted && this.bootContext) {\n return Promise.resolve(this.bootContext);\n }\n\n return new Promise<BootContext>((resolve) => {\n this.onceBooted((context) => resolve(context));\n });\n }\n\n /**\n * Flip the boot latch and drain every queued listener. The dev server and\n * the production entry call this once, right after the late phase starts. It\n * is idempotent — a second call is a no-op, so a double-invoke can never\n * double-fire listeners.\n *\n * Also reports readiness to a supervising parent process — this is the one\n * moment in the lifecycle where \"the application is serving\" is true, so it\n * is the only honest source for `warlock start`'s success banner. Sent before\n * the listeners run: a slow or hanging `onceBooted` listener must not delay\n * the parent's view of a server that is already accepting requests.\n *\n * @internal Framework entry points call this; application code must not.\n */\n public static markBooted(context: BootContext): void {\n if (this.booted) {\n return;\n }\n\n this.booted = true;\n this.bootContext = context;\n\n sendBootSignal({\n type: \"warlock:ready\",\n version: BOOT_SIGNAL_VERSION,\n pid: process.pid,\n at: new Date().toISOString(),\n environment: context.environment,\n runtimeStrategy: context.runtimeStrategy,\n bootDurationMs: context.bootDurationMs,\n port: this.servedPort,\n });\n\n const listeners = this.bootListeners;\n this.bootListeners = [];\n\n for (const listener of listeners) {\n void this.runBootListener(listener, context);\n }\n }\n\n /**\n * Invoke a single boot listener, isolating its failure so neither boot nor\n * the remaining listeners are affected.\n */\n private static async runBootListener(\n listener: BootListener,\n context: BootContext,\n ): Promise<void> {\n try {\n await listener(context);\n } catch (error) {\n log.error(\"application\", \"booted-listener\", error as Error);\n }\n }\n\n /**\n * Register a startup validator — distinct from {@link onceBooted}. A\n * rejecting validator aborts boot instead of being caught and logged, so\n * this is where configuration that must fail closed belongs (a signing\n * secret, a required integration key), not `onceBooted`.\n *\n * Must be registered before the framework calls `runStartupValidators` —\n * typically at module scope in `src/app/main.ts`, the same place a\n * `BootListener` would be registered. Registering one after validation has\n * already run throws: by then a rejection could no longer stop the app\n * from serving, so running it late would silently defeat the guarantee\n * this hook exists to give.\n *\n * @example\n * Application.onValidateBoot(() => {\n * if (!env(\"JWT_SECRET\")) {\n * throw new Error(\n * \"JWT_SECRET is not set. Sessions cannot be signed without it. \" +\n * \"Generate one with `yarn jwt` and put it in .env.\",\n * );\n * }\n * });\n */\n public static onValidateBoot(validator: BootValidator): void {\n if (this.validated) {\n throw new Error(\n \"Application.onValidateBoot(): startup validators already ran — \" +\n \"this validator was registered too late to block boot. Register it \" +\n \"before the framework calls Application.runStartupValidators(), \" +\n \"typically at module scope in `src/app/main.ts`.\",\n );\n }\n\n this.bootValidators.push(validator);\n }\n\n /**\n * Run every registered startup validator, in registration order, and abort\n * on the first rejection. Idempotent — a second call is a no-op.\n *\n * Distinct from `runBootListener`: a listener's failure is isolated so it\n * can never break boot; a validator's failure IS the boot failing — that is\n * the entire point of registering one instead of the other. The thrown\n * error names the failing validator and the original cause, so whatever\n * catches it (the dev server's boot try/catch, the production entry's\n * top-level await) reports which check failed and why, not a bare\n * rejection.\n *\n * @internal Framework entry points call this once app code (main.ts et al)\n * has loaded and BEFORE late-phase connectors (http, socket) start, so a\n * failing validator runs before anything can bind a port or accept a\n * request. Application code must not call this directly.\n */\n public static async runStartupValidators(): Promise<void> {\n if (this.validated) {\n return;\n }\n\n this.validated = true;\n\n const validators = this.bootValidators;\n this.bootValidators = [];\n\n for (const validator of validators) {\n try {\n await validator();\n } catch (error) {\n const name = validator.name || \"<anonymous>\";\n const cause = error instanceof Error ? error.message : String(error);\n\n throw new ErrorWithCause(\n `Startup validator \"${name}\" rejected boot: ${cause}. ` +\n `Fix the condition it checks, or remove the validator if it no ` +\n `longer applies — boot cannot proceed while it fails.`,\n { cause: error },\n );\n }\n }\n }\n\n /**\n * Whether the application has begun shutting down. Once true, readiness\n * checks report not-ready so a load balancer drains this instance before the\n * HTTP server stops accepting requests.\n */\n public static get isShuttingDown(): boolean {\n return this.shuttingDown;\n }\n\n /**\n * Register a teardown callback, run once when the application shuts down —\n * before the connectors (db, cache, http) are torn down, so it can still use\n * them. The natural place to close an app-owned resource opened in\n * `onceBooted`. If shutdown has already begun, the callback runs immediately.\n *\n * @example\n * Application.onShutdown(async () => {\n * await myQueueConsumer.stop();\n * });\n */\n public static onShutdown(listener: ShutdownListener): void {\n if (this.shuttingDown) {\n void this.runShutdownListener(listener);\n\n return;\n }\n\n this.shutdownListeners.push(listener);\n }\n\n /**\n * Flip the shutdown latch and run every teardown callback. The connectors\n * manager calls this at the start of shutdown — before any connector is torn\n * down. Idempotent and error-isolated: each callback is awaited, a thrown one\n * is logged and does not stop the rest. Listeners run LIFO (reverse of\n * registration), mirroring resource-unwind order.\n *\n * @internal Framework entry points call this; application code must not.\n */\n public static async runShutdownHooks(): Promise<void> {\n if (this.shuttingDown) {\n return;\n }\n\n this.shuttingDown = true;\n\n const listeners = this.shutdownListeners.reverse();\n this.shutdownListeners = [];\n\n for (const listener of listeners) {\n await this.runShutdownListener(listener);\n }\n }\n\n /**\n * Invoke a single teardown callback, isolating its failure so the rest still\n * run and shutdown is never blocked by one bad hook.\n */\n private static async runShutdownListener(listener: ShutdownListener): Promise<void> {\n try {\n await listener();\n } catch (error) {\n log.error(\"application\", \"shutdown-listener\", error as Error);\n }\n }\n\n /**\n * Get project uptime in milliseconds\n */\n public static get uptime(): number {\n return process.uptime() * 1000;\n }\n\n /**\n * Get the current environment\n */\n public static get environment(): Environment {\n return environment();\n }\n\n /**\n * Set the current environment\n */\n public static setEnvironment(env: Environment) {\n setEnvironment(env);\n }\n\n /**\n * Check if the application is running in production environment\n */\n public static get isProduction(): boolean {\n return this.environment === \"production\";\n }\n\n /**\n * Check if the application is running in development environment\n */\n public static get isDevelopment(): boolean {\n return this.environment === \"development\";\n }\n\n /**\n * Check if the application is running in test environment\n */\n public static get isTest(): boolean {\n return this.environment === \"test\";\n }\n\n /**\n * Get the root path\n */\n public static get rootPath(): string {\n return rootPath();\n }\n\n /**\n * Get the src path\n */\n public static get srcPath(): string {\n return srcPath();\n }\n\n /**\n * Get the app path\n */\n public static get appPath(): string {\n return appPath();\n }\n\n /**\n * Get the storage path\n */\n public static get storagePath(): string {\n return storagePath();\n }\n\n /**\n * Get the uploads path\n */\n public static get uploadsPath(): string {\n return uploadsPath();\n }\n\n /**\n * Get the public path\n */\n public static get publicPath(): string {\n return publicPath();\n }\n}\n"],"mappings":";;;;;;;AAuDA,MAAM,iBAAiB;AASvB,IAAa,cAAb,MAAyB;;mCAIY,IAAI,KAAK,KAAK,IAAI,IAAI,QAAQ,OAAO,IAAI,GAAI;;;gBAUxD;;;uBAWuB,CAAC;;;mBAOrB;;;wBAMsB,CAAC;;;sBAcpB;;;2BAKyB,CAAC;;;;;CAKxD,WAAkB,UAAU;EAC1B,OAAO,oBAAoB;CAC7B;;;;CAKA,OAAc,mBAAmB,UAA2B;EAC1D,KAAK,kBAAkB;CACzB;;;;;;CAOA,WAAkB,WAAoB;EACpC,OAAO,KAAK;CACd;;;;;;CAOA,OAAc,cAAc,MAAoB;EAC9C,KAAK,aAAa;CACpB;;;;;;;;;;;;;;;CAgBA,OAAc,WAAW,UAA8B;EACrD,IAAI,KAAK,UAAU,KAAK,aAAa;GACnC,MAAM,UAAU,KAAK;GACrB,AAAK,KAAK,gBAAgB,UAAU,OAAO;GAE3C;EACF;EAEA,KAAK,cAAc,KAAK,QAAQ;CAClC;;;;;CAMA,OAAc,aAAmC;EAC/C,IAAI,KAAK,UAAU,KAAK,aACtB,OAAO,QAAQ,QAAQ,KAAK,WAAW;EAGzC,OAAO,IAAI,SAAsB,YAAY;GAC3C,KAAK,YAAY,YAAY,QAAQ,OAAO,CAAC;EAC/C,CAAC;CACH;;;;;;;;;;;;;;;CAgBA,OAAc,WAAW,SAA4B;EACnD,IAAI,KAAK,QACP;EAGF,KAAK,SAAS;EACd,KAAK,cAAc;EAEnB,eAAe;GACb,MAAM;GACN;GACA,KAAK,QAAQ;GACb,qBAAI,IAAI,KAAK,GAAE,YAAY;GAC3B,aAAa,QAAQ;GACrB,iBAAiB,QAAQ;GACzB,gBAAgB,QAAQ;GACxB,MAAM,KAAK;EACb,CAAC;EAED,MAAM,YAAY,KAAK;EACvB,KAAK,gBAAgB,CAAC;EAEtB,KAAK,MAAM,YAAY,WACrB,AAAK,KAAK,gBAAgB,UAAU,OAAO;CAE/C;;;;;CAMA,aAAqB,gBACnB,UACA,SACe;EACf,IAAI;GACF,MAAM,SAAS,OAAO;EACxB,SAAS,OAAO;GACd,IAAI,MAAM,eAAe,mBAAmB,KAAc;EAC5D;CACF;;;;;;;;;;;;;;;;;;;;;;;;CAyBA,OAAc,eAAe,WAAgC;EAC3D,IAAI,KAAK,WACP,MAAM,IAAI,MACR,iPAIF;EAGF,KAAK,eAAe,KAAK,SAAS;CACpC;;;;;;;;;;;;;;;;;;CAmBA,aAAoB,uBAAsC;EACxD,IAAI,KAAK,WACP;EAGF,KAAK,YAAY;EAEjB,MAAM,aAAa,KAAK;EACxB,KAAK,iBAAiB,CAAC;EAEvB,KAAK,MAAM,aAAa,YACtB,IAAI;GACF,MAAM,UAAU;EAClB,SAAS,OAAO;GAId,MAAM,IAAI,eACR,sBAJW,UAAU,QAAQ,cAIF,mBAHf,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,EAGb,uHAGpD,EAAE,OAAO,MAAM,CACjB;EACF;CAEJ;;;;;;CAOA,WAAkB,iBAA0B;EAC1C,OAAO,KAAK;CACd;;;;;;;;;;;;CAaA,OAAc,WAAW,UAAkC;EACzD,IAAI,KAAK,cAAc;GACrB,AAAK,KAAK,oBAAoB,QAAQ;GAEtC;EACF;EAEA,KAAK,kBAAkB,KAAK,QAAQ;CACtC;;;;;;;;;;CAWA,aAAoB,mBAAkC;EACpD,IAAI,KAAK,cACP;EAGF,KAAK,eAAe;EAEpB,MAAM,YAAY,KAAK,kBAAkB,QAAQ;EACjD,KAAK,oBAAoB,CAAC;EAE1B,KAAK,MAAM,YAAY,WACrB,MAAM,KAAK,oBAAoB,QAAQ;CAE3C;;;;;CAMA,aAAqB,oBAAoB,UAA2C;EAClF,IAAI;GACF,MAAM,SAAS;EACjB,SAAS,OAAO;GACd,IAAI,MAAM,eAAe,qBAAqB,KAAc;EAC9D;CACF;;;;CAKA,WAAkB,SAAiB;EACjC,OAAO,QAAQ,OAAO,IAAI;CAC5B;;;;CAKA,WAAkB,cAA2B;EAC3C,OAAO,YAAY;CACrB;;;;CAKA,OAAc,eAAe,KAAkB;EAC7C,eAAe,GAAG;CACpB;;;;CAKA,WAAkB,eAAwB;EACxC,OAAO,KAAK,gBAAgB;CAC9B;;;;CAKA,WAAkB,gBAAyB;EACzC,OAAO,KAAK,gBAAgB;CAC9B;;;;CAKA,WAAkB,SAAkB;EAClC,OAAO,KAAK,gBAAgB;CAC9B;;;;CAKA,WAAkB,WAAmB;EACnC,OAAO,SAAS;CAClB;;;;CAKA,WAAkB,UAAkB;EAClC,OAAO,QAAQ;CACjB;;;;CAKA,WAAkB,UAAkB;EAClC,OAAO,QAAQ;CACjB;;;;CAKA,WAAkB,cAAsB;EACtC,OAAO,YAAY;CACrB;;;;CAKA,WAAkB,cAAsB;EACtC,OAAO,YAAY;CACrB;;;;CAKA,WAAkB,aAAqB;EACrC,OAAO,WAAW;CACpB;AACF"}
1
+ {"version":3,"file":"application.mjs","names":[],"sources":["../../../../../../../core/src/application/application.ts"],"sourcesContent":["import { log } from \"@warlock.js/logger\";\nimport { BOOT_SIGNAL_VERSION, sendBootSignal } from \"./boot-signal\";\nimport {\n environment,\n setEnvironment,\n type Environment,\n type RuntimeStrategy,\n} from \"../utils/environment\";\nimport { getFrameworkVersion } from \"../utils/framework-vesion\";\nimport { appPath, publicPath, rootPath, srcPath, storagePath, uploadsPath } from \"../utils/paths\";\n\n/**\n * Snapshot of the global facts known the moment the application finished\n * booting: every connector (early + late) is active and all app files\n * (locales, events, main, routes) are loaded. Passed to every\n * `Application.onceBooted` listener and resolved from `Application.whenBooted`.\n */\nexport type BootContext = {\n environment: Environment;\n runtimeStrategy: RuntimeStrategy;\n /**\n * Wall-clock milliseconds the boot took. The dev server measures it; the\n * production entry omits it.\n */\n bootDurationMs?: number;\n};\n\n/**\n * A callback registered through `Application.onceBooted`. May be async — its\n * rejection is caught and logged so a single listener can never break boot or\n * the other listeners.\n */\nexport type BootListener = (context: BootContext) => void | Promise<void>;\n\n/**\n * A callback registered through `Application.onValidateBoot`. May be async —\n * unlike {@link BootListener}, its rejection is NOT caught: it aborts boot.\n *\n * Use this for configuration that makes the application WRONG rather than\n * degraded when missing (a signing secret, a required integration key) — the\n * kind of check that must fail closed. Use `onceBooted` for everything else;\n * that contract stays fire-and-forget on purpose (it is the right behaviour\n * for plugins reacting to boot, not for gating it).\n */\nexport type BootValidator = () => void | Promise<void>;\n\n/**\n * `new Error(message, { cause })` is ES2022, and this package still compiles\n * against the ES2020 lib, where `Error` is typed as taking a message only.\n * Node has supported the option since v16, so this is the type layer\n * catching up with the runtime, not a change in what the code does. Same\n * workaround as `image.ts` (see #16).\n */\ntype ErrorWithCauseConstructor = new (message: string, options: { cause: unknown }) => Error;\n\nconst ErrorWithCause = Error as ErrorWithCauseConstructor;\n\n/**\n * A callback registered through `Application.onShutdown`. Runs once, while the\n * connectors (db, cache, http) are still up, so it can release app-owned\n * resources cleanly. May be async — its rejection is caught and logged.\n */\nexport type ShutdownListener = () => void | Promise<void>;\n\nexport class Application {\n /**\n * Project start time regarding the process start time\n */\n public static readonly startedAt = new Date(Date.now() - process.uptime() * 1000);\n\n /**\n * Runtime strategy\n */\n public static runtimeStrategy: RuntimeStrategy;\n\n /**\n * Whether the application has finished booting. Flipped once by `markBooted`.\n */\n private static booted = false;\n\n /**\n * The boot context, set once booted so it can be replayed to late subscribers.\n */\n private static bootContext: BootContext | undefined;\n\n /**\n * Listeners queued before boot completed, drained in registration order by\n * `markBooted`.\n */\n private static bootListeners: BootListener[] = [];\n\n /**\n * Whether `runStartupValidators` has already run. Flipped once, so a\n * validator registered afterwards is refused instead of silently skipped\n * or run too late to matter.\n */\n private static validated = false;\n\n /**\n * Startup validators queued before `runStartupValidators` ran, drained in\n * registration order.\n */\n private static bootValidators: BootValidator[] = [];\n\n /**\n * The http port this process actually bound, once it has. Reported in the\n * readiness signal so a supervisor knows where to send its health check\n * instead of re-deriving it from config it may not be able to read.\n * Undefined for an app with no http connector — a queue worker still boots.\n */\n private static servedPort: number | undefined;\n\n /**\n * Whether the application has begun (or finished) shutting down. Flipped once\n * by `runShutdownHooks`.\n */\n private static shuttingDown = false;\n\n /**\n * Teardown callbacks, run once when shutdown begins.\n */\n private static shutdownListeners: ShutdownListener[] = [];\n\n /**\n * Get framework version\n */\n public static get version() {\n return getFrameworkVersion();\n }\n\n /**\n * Set the runtime strategy\n */\n public static setRuntimeStrategy(strategy: RuntimeStrategy) {\n this.runtimeStrategy = strategy;\n }\n\n /**\n * Whether the application has finished booting — every connector in both\n * the early and late phases is active and all app files (locales, events,\n * main, routes) have been loaded.\n */\n public static get isBooted(): boolean {\n return this.booted;\n }\n\n /**\n * Record the http port this process bound.\n *\n * @internal The http connector calls this after a successful `listen`.\n */\n public static setServedPort(port: number): void {\n this.servedPort = port;\n }\n\n /**\n * Run a callback once the application is fully booted.\n *\n * App files (`main` / `events` / `routes` / locales) are imported BEFORE the\n * late-phase connectors (http, socket) start, so a listener registered at\n * import time waits for the whole sequence to finish before it runs. If the\n * application is already booted, the callback runs on the next microtask —\n * so a late subscriber never silently misses the event.\n *\n * @example\n * Application.onceBooted(({ environment }) => {\n * log.info(\"app\", \"booted\", `ready in ${environment}`);\n * });\n */\n public static onceBooted(listener: BootListener): void {\n if (this.booted && this.bootContext) {\n const context = this.bootContext;\n void this.runBootListener(listener, context);\n\n return;\n }\n\n this.bootListeners.push(listener);\n }\n\n /**\n * Promise form of {@link onceBooted} — resolves with the boot context once\n * the application is booted, or immediately if it already is.\n */\n public static whenBooted(): Promise<BootContext> {\n if (this.booted && this.bootContext) {\n return Promise.resolve(this.bootContext);\n }\n\n return new Promise<BootContext>((resolve) => {\n this.onceBooted((context) => resolve(context));\n });\n }\n\n /**\n * Flip the boot latch and drain every queued listener. The dev server and\n * the production entry call this once, right after the late phase starts. It\n * is idempotent — a second call is a no-op, so a double-invoke can never\n * double-fire listeners.\n *\n * Also reports readiness to a supervising parent process — this is the one\n * moment in the lifecycle where \"the application is serving\" is true, so it\n * is the only honest source for `warlock start`'s success banner. Sent before\n * the listeners run: a slow or hanging `onceBooted` listener must not delay\n * the parent's view of a server that is already accepting requests.\n *\n * @internal Framework entry points call this; application code must not.\n */\n public static markBooted(context: BootContext): void {\n if (this.booted) {\n return;\n }\n\n this.booted = true;\n this.bootContext = context;\n\n sendBootSignal({\n type: \"warlock:ready\",\n version: BOOT_SIGNAL_VERSION,\n pid: process.pid,\n at: new Date().toISOString(),\n environment: context.environment,\n runtimeStrategy: context.runtimeStrategy,\n bootDurationMs: context.bootDurationMs,\n port: this.servedPort,\n });\n\n const listeners = this.bootListeners;\n this.bootListeners = [];\n\n for (const listener of listeners) {\n void this.runBootListener(listener, context);\n }\n }\n\n /**\n * Invoke a single boot listener, isolating its failure so neither boot nor\n * the remaining listeners are affected.\n */\n private static async runBootListener(\n listener: BootListener,\n context: BootContext,\n ): Promise<void> {\n try {\n await listener(context);\n } catch (error) {\n log.error(\"application\", \"booted-listener\", error as Error);\n }\n }\n\n /**\n * Register a startup validator — distinct from {@link onceBooted}. A\n * rejecting validator aborts boot instead of being caught and logged, so\n * this is where configuration that must fail closed belongs (a signing\n * secret, a required integration key), not `onceBooted`.\n *\n * Must be registered before the framework calls `runStartupValidators` —\n * typically at module scope in `src/app/main.ts`, the same place a\n * `BootListener` would be registered. Registering one after validation has\n * already run throws: by then a rejection could no longer stop the app\n * from serving, so running it late would silently defeat the guarantee\n * this hook exists to give.\n *\n * @example\n * Application.onValidateBoot(() => {\n * if (!env(\"JWT_SECRET\")) {\n * throw new Error(\n * \"JWT_SECRET is not set. Sessions cannot be signed without it. \" +\n * \"Generate one with `yarn jwt` and put it in .env.\",\n * );\n * }\n * });\n */\n public static onValidateBoot(validator: BootValidator): void {\n if (this.validated) {\n throw new Error(\n \"Application.onValidateBoot(): startup validators already ran — \" +\n \"this validator was registered too late to block boot. Register it \" +\n \"before the framework calls Application.runStartupValidators(), \" +\n \"typically at module scope in `src/app/main.ts`.\",\n );\n }\n\n this.bootValidators.push(validator);\n }\n\n /**\n * Run every registered startup validator, in registration order, and abort\n * on the first rejection. Idempotent — a second call is a no-op.\n *\n * Distinct from `runBootListener`: a listener's failure is isolated so it\n * can never break boot; a validator's failure IS the boot failing — that is\n * the entire point of registering one instead of the other. The thrown\n * error names the failing validator and the original cause, so whatever\n * catches it (the dev server's boot try/catch, the production entry's\n * top-level await) reports which check failed and why, not a bare\n * rejection.\n *\n * @internal Framework entry points call this once app code (main.ts et al)\n * has loaded and BEFORE late-phase connectors (http, socket) start, so a\n * failing validator runs before anything can bind a port or accept a\n * request. Application code must not call this directly.\n */\n public static async runStartupValidators(): Promise<void> {\n if (this.validated) {\n return;\n }\n\n this.validated = true;\n\n const validators = this.bootValidators;\n this.bootValidators = [];\n\n for (const validator of validators) {\n try {\n await validator();\n } catch (error) {\n const name = validator.name || \"<anonymous>\";\n const cause = error instanceof Error ? error.message : String(error);\n\n throw new ErrorWithCause(\n `Startup validator \"${name}\" rejected boot: ${cause}. ` +\n `Fix the condition it checks, or remove the validator if it no ` +\n `longer applies — boot cannot proceed while it fails.`,\n { cause: error },\n );\n }\n }\n }\n\n /**\n * Whether the application has begun shutting down. Once true, readiness\n * checks report not-ready so a load balancer drains this instance before the\n * HTTP server stops accepting requests.\n */\n public static get isShuttingDown(): boolean {\n return this.shuttingDown;\n }\n\n /**\n * Register a teardown callback, run once when the application shuts down —\n * before the connectors (db, cache, http) are torn down, so it can still use\n * them. The natural place to close an app-owned resource opened in\n * `onceBooted`. If shutdown has already begun, the callback runs immediately.\n *\n * @example\n * Application.onShutdown(async () => {\n * await myQueueConsumer.stop();\n * });\n */\n public static onShutdown(listener: ShutdownListener): void {\n if (this.shuttingDown) {\n void this.runShutdownListener(listener);\n\n return;\n }\n\n this.shutdownListeners.push(listener);\n }\n\n /**\n * Flip the shutdown latch and run every teardown callback. The connectors\n * manager calls this at the start of shutdown — before any connector is torn\n * down. Idempotent and error-isolated: each callback is awaited, a thrown one\n * is logged and does not stop the rest. Listeners run LIFO (reverse of\n * registration), mirroring resource-unwind order.\n *\n * @internal Framework entry points call this; application code must not.\n */\n public static async runShutdownHooks(): Promise<void> {\n if (this.shuttingDown) {\n return;\n }\n\n this.shuttingDown = true;\n\n const listeners = this.shutdownListeners.reverse();\n this.shutdownListeners = [];\n\n for (const listener of listeners) {\n await this.runShutdownListener(listener);\n }\n }\n\n /**\n * Invoke a single teardown callback, isolating its failure so the rest still\n * run and shutdown is never blocked by one bad hook.\n */\n private static async runShutdownListener(listener: ShutdownListener): Promise<void> {\n try {\n await listener();\n } catch (error) {\n log.error(\"application\", \"shutdown-listener\", error as Error);\n }\n }\n\n /**\n * Get project uptime in milliseconds\n */\n public static get uptime(): number {\n return process.uptime() * 1000;\n }\n\n /**\n * Get the current environment\n */\n public static get environment(): Environment {\n return environment();\n }\n\n /**\n * Set the current environment\n */\n public static setEnvironment(env: Environment) {\n setEnvironment(env);\n }\n\n /**\n * Check if the application is running in production environment\n */\n public static get isProduction(): boolean {\n return this.environment === \"production\";\n }\n\n /**\n * Check if the application is running in development environment\n */\n public static get isDevelopment(): boolean {\n return this.environment === \"development\";\n }\n\n /**\n * Check if the application is running in test environment\n */\n public static get isTest(): boolean {\n return this.environment === \"test\";\n }\n\n /**\n * Get the root path\n */\n public static get rootPath(): string {\n return rootPath();\n }\n\n /**\n * Get the src path\n */\n public static get srcPath(): string {\n return srcPath();\n }\n\n /**\n * Get the app path\n */\n public static get appPath(): string {\n return appPath();\n }\n\n /**\n * Get the storage path\n */\n public static get storagePath(): string {\n return storagePath();\n }\n\n /**\n * Get the uploads path\n */\n public static get uploadsPath(): string {\n return uploadsPath();\n }\n\n /**\n * Get the public path\n */\n public static get publicPath(): string {\n return publicPath();\n }\n}\n"],"mappings":";;;;;;;AAuDA,MAAM,iBAAiB;AASvB,IAAa,cAAb,MAAyB;;mCAIY,IAAI,KAAK,KAAK,IAAI,IAAI,QAAQ,OAAO,IAAI,GAAI;;;gBAUxD;;;uBAWuB,CAAC;;;mBAOrB;;;wBAMsB,CAAC;;;sBAcpB;;;2BAKyB,CAAC;;;;;CAKxD,WAAkB,UAAU;EAC1B,OAAO,oBAAoB;CAC7B;;;;CAKA,OAAc,mBAAmB,UAA2B;EAC1D,KAAK,kBAAkB;CACzB;;;;;;CAOA,WAAkB,WAAoB;EACpC,OAAO,KAAK;CACd;;;;;;CAOA,OAAc,cAAc,MAAoB;EAC9C,KAAK,aAAa;CACpB;;;;;;;;;;;;;;;CAgBA,OAAc,WAAW,UAA8B;EACrD,IAAI,KAAK,UAAU,KAAK,aAAa;GACnC,MAAM,UAAU,KAAK;GACrB,AAAK,KAAK,gBAAgB,UAAU,OAAO;GAE3C;EACF;EAEA,KAAK,cAAc,KAAK,QAAQ;CAClC;;;;;CAMA,OAAc,aAAmC;EAC/C,IAAI,KAAK,UAAU,KAAK,aACtB,OAAO,QAAQ,QAAQ,KAAK,WAAW;EAGzC,OAAO,IAAI,SAAsB,YAAY;GAC3C,KAAK,YAAY,YAAY,QAAQ,OAAO,CAAC;EAC/C,CAAC;CACH;;;;;;;;;;;;;;;CAgBA,OAAc,WAAW,SAA4B;EACnD,IAAI,KAAK,QACP;EAGF,KAAK,SAAS;EACd,KAAK,cAAc;EAEnB,eAAe;GACb,MAAM;GACN;GACA,KAAK,QAAQ;GACb,qBAAI,IAAI,KAAK,GAAE,YAAY;GAC3B,aAAa,QAAQ;GACrB,iBAAiB,QAAQ;GACzB,gBAAgB,QAAQ;GACxB,MAAM,KAAK;EACb,CAAC;EAED,MAAM,YAAY,KAAK;EACvB,KAAK,gBAAgB,CAAC;EAEtB,KAAK,MAAM,YAAY,WACrB,AAAK,KAAK,gBAAgB,UAAU,OAAO;CAE/C;;;;;CAMA,aAAqB,gBACnB,UACA,SACe;EACf,IAAI;GACF,MAAM,SAAS,OAAO;EACxB,SAAS,OAAO;GACd,IAAI,MAAM,eAAe,mBAAmB,KAAc;EAC5D;CACF;;;;;;;;;;;;;;;;;;;;;;;;CAyBA,OAAc,eAAe,WAAgC;EAC3D,IAAI,KAAK,WACP,MAAM,IAAI,MACR,iPAIF;EAGF,KAAK,eAAe,KAAK,SAAS;CACpC;;;;;;;;;;;;;;;;;;CAmBA,aAAoB,uBAAsC;EACxD,IAAI,KAAK,WACP;EAGF,KAAK,YAAY;EAEjB,MAAM,aAAa,KAAK;EACxB,KAAK,iBAAiB,CAAC;EAEvB,KAAK,MAAM,aAAa,YACtB,IAAI;GACF,MAAM,UAAU;EAClB,SAAS,OAAO;GAId,MAAM,IAAI,eACR,sBAJW,UAAU,QAAQ,cAIF,mBAHf,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,EAGb,uHAGpD,EAAE,OAAO,MAAM,CACjB;EACF;CAEJ;;;;;;CAOA,WAAkB,iBAA0B;EAC1C,OAAO,KAAK;CACd;;;;;;;;;;;;CAaA,OAAc,WAAW,UAAkC;EACzD,IAAI,KAAK,cAAc;GACrB,AAAK,KAAK,oBAAoB,QAAQ;GAEtC;EACF;EAEA,KAAK,kBAAkB,KAAK,QAAQ;CACtC;;;;;;;;;;CAWA,aAAoB,mBAAkC;EACpD,IAAI,KAAK,cACP;EAGF,KAAK,eAAe;EAEpB,MAAM,YAAY,KAAK,kBAAkB,QAAQ;EACjD,KAAK,oBAAoB,CAAC;EAE1B,KAAK,MAAM,YAAY,WACrB,MAAM,KAAK,oBAAoB,QAAQ;CAE3C;;;;;CAMA,aAAqB,oBAAoB,UAA2C;EAClF,IAAI;GACF,MAAM,SAAS;EACjB,SAAS,OAAO;GACd,IAAI,MAAM,eAAe,qBAAqB,KAAc;EAC9D;CACF;;;;CAKA,WAAkB,SAAiB;EACjC,OAAO,QAAQ,OAAO,IAAI;CAC5B;;;;CAKA,WAAkB,cAA2B;EAC3C,OAAO,YAAY;CACrB;;;;CAKA,OAAc,eAAe,KAAkB;EAC7C,eAAe,GAAG;CACpB;;;;CAKA,WAAkB,eAAwB;EACxC,OAAO,KAAK,gBAAgB;CAC9B;;;;CAKA,WAAkB,gBAAyB;EACzC,OAAO,KAAK,gBAAgB;CAC9B;;;;CAKA,WAAkB,SAAkB;EAClC,OAAO,KAAK,gBAAgB;CAC9B;;;;CAKA,WAAkB,WAAmB;EACnC,OAAO,SAAS;CAClB;;;;CAKA,WAAkB,UAAkB;EAClC,OAAO,QAAQ;CACjB;;;;CAKA,WAAkB,UAAkB;EAClC,OAAO,QAAQ;CACjB;;;;CAKA,WAAkB,cAAsB;EACtC,OAAO,YAAY;CACrB;;;;CAKA,WAAkB,cAAsB;EACtC,OAAO,YAAY;CACrB;;;;CAKA,WAAkB,aAAqB;EACrC,OAAO,WAAW;CACpB;AACF"}
@@ -1,6 +1,6 @@
1
1
  import { Environment, RuntimeStrategy } from "../utils/environment.mjs";
2
2
 
3
- //#region core/src/application/boot-signal.d.ts
3
+ //#region ../core/src/application/boot-signal.d.ts
4
4
  /**
5
5
  * The only message type the boot channel carries today. Named rather than
6
6
  * inlined because both the sender (`sendBootSignal`) and the receiver
@@ -1 +1 @@
1
- {"version":3,"file":"boot-signal.d.mts","names":[],"sources":["C:/Work/Warlock.js/core/src/application/boot-signal.ts"],"mappings":";;;;;AAOA;;;KAAY,cAAA;AAAc;AAS1B;;;;AAAgC;AAUhC;AAnB0B,cASb,mBAAA;;;;;;;;;KAUD,UAAA;EACV,IAAA,EAAM,cAAA;EACN,OAAA,UAKA;EAHA,GAAA,UAIA;EAFA,EAAA;EACA,WAAA,EAAa,WAAA;EACb,eAAA,EAAiB,eAAA;EACjB,cAAA,WAEI;EAAJ,IAAA;AAAA;;;AAY8B;AAoBhC;;;;AAAiD;AA4BjD;cAhDa,mBAAA;;;;;;;AAgDwD;;;;;;;;;;;;iBA5BrD,cAAA,CAAe,MAAkB,EAAV,UAAU;;;;;;;;;;iBA4BjC,YAAA,CAAa,OAAA,YAAmB,OAAA,IAAW,UAAU"}
1
+ {"version":3,"file":"boot-signal.d.mts","names":[],"sources":["../../../../../../../core/src/application/boot-signal.ts"],"mappings":";;;;;AAOA;;;KAAY,cAAA;AAAc;AAS1B;;;;AAAgC;AAUhC;AAnB0B,cASb,mBAAA;;;;;;;;;KAUD,UAAA;EACV,IAAA,EAAM,cAAA;EACN,OAAA,UAKA;EAHA,GAAA,UAIA;EAFA,EAAA;EACA,WAAA,EAAa,WAAA;EACb,eAAA,EAAiB,eAAA;EACjB,cAAA,WAEI;EAAJ,IAAA;AAAA;;;AAY8B;AAoBhC;;;;AAAiD;AA4BjD;cAhDa,mBAAA;;;;;;;AAgDwD;;;;;;;;;;;;iBA5BrD,cAAA,CAAe,MAAkB,EAAV,UAAU;;;;;;;;;;iBA4BjC,YAAA,CAAa,OAAA,YAAmB,OAAA,IAAW,UAAU"}
@@ -1,4 +1,4 @@
1
- //#region core/src/application/boot-signal.ts
1
+ //#region ../core/src/application/boot-signal.ts
2
2
  /**
3
3
  * Schema version of {@link BootSignal}.
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"boot-signal.mjs","names":[],"sources":["C:/Work/Warlock.js/core/src/application/boot-signal.ts"],"sourcesContent":["import type { Environment, RuntimeStrategy } from \"../utils/environment\";\n\n/**\n * The only message type the boot channel carries today. Named rather than\n * inlined because both the sender (`sendBootSignal`) and the receiver\n * (`warlock start`) must agree on the exact literal.\n */\nexport type BootSignalType = \"warlock:ready\";\n\n/**\n * Schema version of {@link BootSignal}.\n *\n * Present from the first release on purpose: a version field cannot be added to\n * a shipped wire format without a flag day, and this one has to be able to\n * evolve while older CLIs are still supervising newer bundles.\n */\nexport const BOOT_SIGNAL_VERSION = 1;\n\n/**\n * What a booted child process tells its supervising parent over the IPC\n * channel `warlock start` opens for it.\n *\n * This is a wire contract, not an internal detail: `warlock start` prints its\n * success banner **only** when this arrives, so anything watching that banner\n * (a CI gate, a process supervisor) transitively depends on it.\n */\nexport type BootSignal = {\n type: BootSignalType;\n version: number;\n /** The application process, so a supervisor can address it directly. */\n pid: number;\n /** When the boot completed, ISO-8601. */\n at: string;\n environment: Environment;\n runtimeStrategy: RuntimeStrategy;\n bootDurationMs?: number;\n /** The bound http port, absent for an app with no http connector. */\n port?: number;\n};\n\n/**\n * Environment flag `warlock start` sets on the process it supervises.\n *\n * An IPC channel alone is NOT proof that the parent speaks this protocol —\n * pm2, a vitest worker fork, and any custom supervisor all hand their child a\n * channel they use for their own messages. Writing to one of those, and then\n * closing it, corrupts someone else's protocol and can kill the process. The\n * flag is the handshake: only a parent that set it gets signalled.\n */\nexport const BOOT_SIGNAL_ENV_KEY = \"WARLOCK_BOOT_SIGNAL\";\n\n/**\n * Report a completed boot to the parent process, if one is supervising.\n *\n * Two conditions must both hold: the process was spawned with an `ipc` stdio\n * channel (`process.send` exists), and the parent identified itself with\n * {@link BOOT_SIGNAL_ENV_KEY}. A bundle run directly (`node app.mjs`, a Docker\n * `CMD`) or under a foreign supervisor is a no-op, so the signal never changes\n * how a standalone process behaves and never touches a channel we don't own.\n *\n * The channel is closed as soon as the message is flushed. An open IPC channel\n * holds a `ref` on the child's event loop, which would keep a finished or\n * wedged process alive and indistinguishable from a healthy server — the exact\n * confusion this signal exists to remove. One message, then disconnect.\n *\n * Failure to send is deliberately swallowed: the parent may have already\n * detached or died, and a supervisor going away must never take down a\n * healthy application.\n */\nexport function sendBootSignal(signal: BootSignal): void {\n if (typeof process.send !== \"function\" || process.env[BOOT_SIGNAL_ENV_KEY] !== \"1\") {\n return;\n }\n\n // Consumed here so it cannot be inherited by anything this app itself spawns\n // and make a grandchild report readiness on a channel meant for someone else.\n delete process.env[BOOT_SIGNAL_ENV_KEY];\n\n try {\n process.send(signal, undefined, undefined, () => {\n process.disconnect?.();\n });\n } catch {\n // The channel closed between the check and the write — the app is up\n // regardless, and there is no longer anyone to tell.\n }\n}\n\n/**\n * Narrow an arbitrary IPC payload to a {@link BootSignal}.\n *\n * The parent receives whatever the child chooses to send, so the message is\n * untrusted input and is validated before it is allowed to flip the parent's\n * \"the server is up\" state. A *newer* version than this CLI knows is still\n * accepted — readiness is readiness, and refusing it would make an old\n * supervisor report a healthy app as failed.\n */\nexport function isBootSignal(message: unknown): message is BootSignal {\n if (typeof message !== \"object\" || message === null) {\n return false;\n }\n\n const candidate = message as { type?: unknown; version?: unknown };\n\n return candidate.type === \"warlock:ready\" && typeof candidate.version === \"number\";\n}\n"],"mappings":";;;;;;;;AAgBA,MAAa,sBAAsB;;;;;;;;;;AAiCnC,MAAa,sBAAsB;;;;;;;;;;;;;;;;;;;AAoBnC,SAAgB,eAAe,QAA0B;CACvD,IAAI,OAAO,QAAQ,SAAS,cAAc,QAAQ,+BAA6B,KAC7E;CAKF,OAAO,QAAQ,IAAI;CAEnB,IAAI;EACF,QAAQ,KAAK,QAAQ,QAAW,cAAiB;GAC/C,QAAQ,aAAa;EACvB,CAAC;CACH,QAAQ,CAGR;AACF;;;;;;;;;;AAWA,SAAgB,aAAa,SAAyC;CACpE,IAAI,OAAO,YAAY,YAAY,YAAY,MAC7C,OAAO;CAGT,MAAM,YAAY;CAElB,OAAO,UAAU,SAAS,mBAAmB,OAAO,UAAU,YAAY;AAC5E"}
1
+ {"version":3,"file":"boot-signal.mjs","names":[],"sources":["../../../../../../../core/src/application/boot-signal.ts"],"sourcesContent":["import type { Environment, RuntimeStrategy } from \"../utils/environment\";\n\n/**\n * The only message type the boot channel carries today. Named rather than\n * inlined because both the sender (`sendBootSignal`) and the receiver\n * (`warlock start`) must agree on the exact literal.\n */\nexport type BootSignalType = \"warlock:ready\";\n\n/**\n * Schema version of {@link BootSignal}.\n *\n * Present from the first release on purpose: a version field cannot be added to\n * a shipped wire format without a flag day, and this one has to be able to\n * evolve while older CLIs are still supervising newer bundles.\n */\nexport const BOOT_SIGNAL_VERSION = 1;\n\n/**\n * What a booted child process tells its supervising parent over the IPC\n * channel `warlock start` opens for it.\n *\n * This is a wire contract, not an internal detail: `warlock start` prints its\n * success banner **only** when this arrives, so anything watching that banner\n * (a CI gate, a process supervisor) transitively depends on it.\n */\nexport type BootSignal = {\n type: BootSignalType;\n version: number;\n /** The application process, so a supervisor can address it directly. */\n pid: number;\n /** When the boot completed, ISO-8601. */\n at: string;\n environment: Environment;\n runtimeStrategy: RuntimeStrategy;\n bootDurationMs?: number;\n /** The bound http port, absent for an app with no http connector. */\n port?: number;\n};\n\n/**\n * Environment flag `warlock start` sets on the process it supervises.\n *\n * An IPC channel alone is NOT proof that the parent speaks this protocol —\n * pm2, a vitest worker fork, and any custom supervisor all hand their child a\n * channel they use for their own messages. Writing to one of those, and then\n * closing it, corrupts someone else's protocol and can kill the process. The\n * flag is the handshake: only a parent that set it gets signalled.\n */\nexport const BOOT_SIGNAL_ENV_KEY = \"WARLOCK_BOOT_SIGNAL\";\n\n/**\n * Report a completed boot to the parent process, if one is supervising.\n *\n * Two conditions must both hold: the process was spawned with an `ipc` stdio\n * channel (`process.send` exists), and the parent identified itself with\n * {@link BOOT_SIGNAL_ENV_KEY}. A bundle run directly (`node app.mjs`, a Docker\n * `CMD`) or under a foreign supervisor is a no-op, so the signal never changes\n * how a standalone process behaves and never touches a channel we don't own.\n *\n * The channel is closed as soon as the message is flushed. An open IPC channel\n * holds a `ref` on the child's event loop, which would keep a finished or\n * wedged process alive and indistinguishable from a healthy server — the exact\n * confusion this signal exists to remove. One message, then disconnect.\n *\n * Failure to send is deliberately swallowed: the parent may have already\n * detached or died, and a supervisor going away must never take down a\n * healthy application.\n */\nexport function sendBootSignal(signal: BootSignal): void {\n if (typeof process.send !== \"function\" || process.env[BOOT_SIGNAL_ENV_KEY] !== \"1\") {\n return;\n }\n\n // Consumed here so it cannot be inherited by anything this app itself spawns\n // and make a grandchild report readiness on a channel meant for someone else.\n delete process.env[BOOT_SIGNAL_ENV_KEY];\n\n try {\n process.send(signal, undefined, undefined, () => {\n process.disconnect?.();\n });\n } catch {\n // The channel closed between the check and the write — the app is up\n // regardless, and there is no longer anyone to tell.\n }\n}\n\n/**\n * Narrow an arbitrary IPC payload to a {@link BootSignal}.\n *\n * The parent receives whatever the child chooses to send, so the message is\n * untrusted input and is validated before it is allowed to flip the parent's\n * \"the server is up\" state. A *newer* version than this CLI knows is still\n * accepted — readiness is readiness, and refusing it would make an old\n * supervisor report a healthy app as failed.\n */\nexport function isBootSignal(message: unknown): message is BootSignal {\n if (typeof message !== \"object\" || message === null) {\n return false;\n }\n\n const candidate = message as { type?: unknown; version?: unknown };\n\n return candidate.type === \"warlock:ready\" && typeof candidate.version === \"number\";\n}\n"],"mappings":";;;;;;;;AAgBA,MAAa,sBAAsB;;;;;;;;;;AAiCnC,MAAa,sBAAsB;;;;;;;;;;;;;;;;;;;AAoBnC,SAAgB,eAAe,QAA0B;CACvD,IAAI,OAAO,QAAQ,SAAS,cAAc,QAAQ,+BAA6B,KAC7E;CAKF,OAAO,QAAQ,IAAI;CAEnB,IAAI;EACF,QAAQ,KAAK,QAAQ,QAAW,cAAiB;GAC/C,QAAQ,aAAa;EACvB,CAAC;CACH,QAAQ,CAGR;AACF;;;;;;;;;;AAWA,SAAgB,aAAa,SAAyC;CACpE,IAAI,OAAO,YAAY,YAAY,YAAY,MAC7C,OAAO;CAGT,MAAM,YAAY;CAElB,OAAO,UAAU,SAAS,mBAAmB,OAAO,UAAU,YAAY;AAC5E"}
@@ -1,6 +1,6 @@
1
1
  import { BenchmarkErrorResult, BenchmarkSnapshotsOptions, BenchmarkSuccessResult } from "./types.mjs";
2
2
 
3
- //#region core/src/benchmark/benchmark-snapshots.d.ts
3
+ //#region ../core/src/benchmark/benchmark-snapshots.d.ts
4
4
  declare class BenchmarkSnapshots {
5
5
  private readonly maxSnapshots;
6
6
  private readonly capture;
@@ -1 +1 @@
1
- {"version":3,"file":"benchmark-snapshots.d.mts","names":[],"sources":["C:/Work/Warlock.js/core/src/benchmark/benchmark-snapshots.ts"],"mappings":";;;cAMa,kBAAA;EAAA,iBACM,YAAA;EAAA,iBACA,OAAA;EAAA,iBACA,SAAA;cAKE,OAAA,GAAU,yBAAA;EAAA;;;;;;;;;EActB,MAAA,CAAO,MAAA,EAAQ,sBAAA,YAAkC,oBAAA;EArBvC;;;;;;;;;EAgDV,YAAA,CAAa,IAAA,YAAgB,sBAAA,YAAkC,oBAAA;EAA/D;;;;;;;;EAYA,YAAA,CAAA,GAAgB,MAAA,UAEpB,sBAAA,YAAkC,oBAAA;EAoBxB;;AAAa;;;;;;;EAAnB,KAAA,CAAM,IAAA;AAAA"}
1
+ {"version":3,"file":"benchmark-snapshots.d.mts","names":[],"sources":["../../../../../../../core/src/benchmark/benchmark-snapshots.ts"],"mappings":";;;cAMa,kBAAA;EAAA,iBACM,YAAA;EAAA,iBACA,OAAA;EAAA,iBACA,SAAA;cAKE,OAAA,GAAU,yBAAA;EAAA;;;;;;;;;EActB,MAAA,CAAO,MAAA,EAAQ,sBAAA,YAAkC,oBAAA;EArBvC;;;;;;;;;EAgDV,YAAA,CAAa,IAAA,YAAgB,sBAAA,YAAkC,oBAAA;EAA/D;;;;;;;;EAYA,YAAA,CAAA,GAAgB,MAAA,UAEpB,sBAAA,YAAkC,oBAAA;EAoBxB;;AAAa;;;;;;;EAAnB,KAAA,CAAM,IAAA;AAAA"}
@@ -1,4 +1,4 @@
1
- //#region core/src/benchmark/benchmark-snapshots.ts
1
+ //#region ../core/src/benchmark/benchmark-snapshots.ts
2
2
  var BenchmarkSnapshots = class {
3
3
  constructor(options) {
4
4
  this.snapshots = /* @__PURE__ */ new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"benchmark-snapshots.mjs","names":[],"sources":["C:/Work/Warlock.js/core/src/benchmark/benchmark-snapshots.ts"],"sourcesContent":["import type {\n BenchmarkErrorResult,\n BenchmarkSnapshotsOptions,\n BenchmarkSuccessResult,\n} from \"./types\";\n\nexport class BenchmarkSnapshots {\n private readonly maxSnapshots: number;\n private readonly capture: \"error\" | \"value\" | \"all\";\n private readonly snapshots = new Map<\n string,\n (BenchmarkSuccessResult<unknown> | BenchmarkErrorResult)[]\n >();\n\n public constructor(options?: BenchmarkSnapshotsOptions) {\n this.maxSnapshots = options?.maxSnapshots ?? 100;\n this.capture = options?.capture ?? \"error\";\n }\n\n /**\n * Record a raw result. Called automatically by measure() when a snapshotContainer is set.\n * Respects the `capture` setting — ignores results that don't match.\n *\n * @param result - The success or error result to record.\n *\n * @example\n * snapshots.record(result);\n */\n public record(result: BenchmarkSuccessResult<unknown> | BenchmarkErrorResult): void {\n if (this.capture === \"error\" && result.success) return;\n if (this.capture === \"value\" && !result.success) return;\n\n let list = this.snapshots.get(result.name);\n\n if (!list) {\n list = [];\n this.snapshots.set(result.name, list);\n }\n\n if (list.length >= this.maxSnapshots && this.maxSnapshots > 0) {\n list.shift(); // Evict oldest\n }\n\n list.push(result);\n }\n\n /**\n * Get all snapshots for one operation name.\n *\n * @param name - The operation name.\n * @returns Array of snapshots for the operation.\n *\n * @example\n * snapshots.getSnapshots(\"db-query\");\n */\n public getSnapshots(name: string): (BenchmarkSuccessResult<unknown> | BenchmarkErrorResult)[] {\n return this.snapshots.get(name) ?? [];\n }\n\n /**\n * Get all snapshots for all tracked operations.\n *\n * @returns A mapping of operation names to their snapshots array.\n *\n * @example\n * snapshots.allSnapshots();\n */\n public allSnapshots(): Record<\n string,\n (BenchmarkSuccessResult<unknown> | BenchmarkErrorResult)[]\n > {\n const all: Record<string, (BenchmarkSuccessResult<unknown> | BenchmarkErrorResult)[]> = {};\n\n for (const [name, list] of this.snapshots.entries()) {\n all[name] = [...list];\n }\n\n return all;\n }\n\n /**\n * Clear snapshots for one or all operations.\n *\n * @param name - Optional operation name. If omitted, clears all snapshots.\n *\n * @example\n * snapshots.reset(\"db-query\");\n * snapshots.reset();\n */\n public reset(name?: string): void {\n if (name) {\n this.snapshots.delete(name);\n } else {\n this.snapshots.clear();\n }\n }\n}\n"],"mappings":";AAMA,IAAa,qBAAb,MAAgC;CAQ9B,AAAO,YAAY,SAAqC;mCAL3B,IAAI,IAG/B;EAGA,KAAK,eAAe,SAAS,gBAAgB;EAC7C,KAAK,UAAU,SAAS,WAAW;CACrC;;;;;;;;;;CAWA,AAAO,OAAO,QAAsE;EAClF,IAAI,KAAK,YAAY,WAAW,OAAO,SAAS;EAChD,IAAI,KAAK,YAAY,WAAW,CAAC,OAAO,SAAS;EAEjD,IAAI,OAAO,KAAK,UAAU,IAAI,OAAO,IAAI;EAEzC,IAAI,CAAC,MAAM;GACT,OAAO,CAAC;GACR,KAAK,UAAU,IAAI,OAAO,MAAM,IAAI;EACtC;EAEA,IAAI,KAAK,UAAU,KAAK,gBAAgB,KAAK,eAAe,GAC1D,KAAK,MAAM;EAGb,KAAK,KAAK,MAAM;CAClB;;;;;;;;;;CAWA,AAAO,aAAa,MAA0E;EAC5F,OAAO,KAAK,UAAU,IAAI,IAAI,KAAK,CAAC;CACtC;;;;;;;;;CAUA,AAAO,eAGL;EACA,MAAM,MAAkF,CAAC;EAEzF,KAAK,MAAM,CAAC,MAAM,SAAS,KAAK,UAAU,QAAQ,GAChD,IAAI,QAAQ,CAAC,GAAG,IAAI;EAGtB,OAAO;CACT;;;;;;;;;;CAWA,AAAO,MAAM,MAAqB;EAChC,IAAI,MACF,KAAK,UAAU,OAAO,IAAI;OAE1B,KAAK,UAAU,MAAM;CAEzB;AACF"}
1
+ {"version":3,"file":"benchmark-snapshots.mjs","names":[],"sources":["../../../../../../../core/src/benchmark/benchmark-snapshots.ts"],"sourcesContent":["import type {\n BenchmarkErrorResult,\n BenchmarkSnapshotsOptions,\n BenchmarkSuccessResult,\n} from \"./types\";\n\nexport class BenchmarkSnapshots {\n private readonly maxSnapshots: number;\n private readonly capture: \"error\" | \"value\" | \"all\";\n private readonly snapshots = new Map<\n string,\n (BenchmarkSuccessResult<unknown> | BenchmarkErrorResult)[]\n >();\n\n public constructor(options?: BenchmarkSnapshotsOptions) {\n this.maxSnapshots = options?.maxSnapshots ?? 100;\n this.capture = options?.capture ?? \"error\";\n }\n\n /**\n * Record a raw result. Called automatically by measure() when a snapshotContainer is set.\n * Respects the `capture` setting — ignores results that don't match.\n *\n * @param result - The success or error result to record.\n *\n * @example\n * snapshots.record(result);\n */\n public record(result: BenchmarkSuccessResult<unknown> | BenchmarkErrorResult): void {\n if (this.capture === \"error\" && result.success) return;\n if (this.capture === \"value\" && !result.success) return;\n\n let list = this.snapshots.get(result.name);\n\n if (!list) {\n list = [];\n this.snapshots.set(result.name, list);\n }\n\n if (list.length >= this.maxSnapshots && this.maxSnapshots > 0) {\n list.shift(); // Evict oldest\n }\n\n list.push(result);\n }\n\n /**\n * Get all snapshots for one operation name.\n *\n * @param name - The operation name.\n * @returns Array of snapshots for the operation.\n *\n * @example\n * snapshots.getSnapshots(\"db-query\");\n */\n public getSnapshots(name: string): (BenchmarkSuccessResult<unknown> | BenchmarkErrorResult)[] {\n return this.snapshots.get(name) ?? [];\n }\n\n /**\n * Get all snapshots for all tracked operations.\n *\n * @returns A mapping of operation names to their snapshots array.\n *\n * @example\n * snapshots.allSnapshots();\n */\n public allSnapshots(): Record<\n string,\n (BenchmarkSuccessResult<unknown> | BenchmarkErrorResult)[]\n > {\n const all: Record<string, (BenchmarkSuccessResult<unknown> | BenchmarkErrorResult)[]> = {};\n\n for (const [name, list] of this.snapshots.entries()) {\n all[name] = [...list];\n }\n\n return all;\n }\n\n /**\n * Clear snapshots for one or all operations.\n *\n * @param name - Optional operation name. If omitted, clears all snapshots.\n *\n * @example\n * snapshots.reset(\"db-query\");\n * snapshots.reset();\n */\n public reset(name?: string): void {\n if (name) {\n this.snapshots.delete(name);\n } else {\n this.snapshots.clear();\n }\n }\n}\n"],"mappings":";AAMA,IAAa,qBAAb,MAAgC;CAQ9B,AAAO,YAAY,SAAqC;mCAL3B,IAAI,IAG/B;EAGA,KAAK,eAAe,SAAS,gBAAgB;EAC7C,KAAK,UAAU,SAAS,WAAW;CACrC;;;;;;;;;;CAWA,AAAO,OAAO,QAAsE;EAClF,IAAI,KAAK,YAAY,WAAW,OAAO,SAAS;EAChD,IAAI,KAAK,YAAY,WAAW,CAAC,OAAO,SAAS;EAEjD,IAAI,OAAO,KAAK,UAAU,IAAI,OAAO,IAAI;EAEzC,IAAI,CAAC,MAAM;GACT,OAAO,CAAC;GACR,KAAK,UAAU,IAAI,OAAO,MAAM,IAAI;EACtC;EAEA,IAAI,KAAK,UAAU,KAAK,gBAAgB,KAAK,eAAe,GAC1D,KAAK,MAAM;EAGb,KAAK,KAAK,MAAM;CAClB;;;;;;;;;;CAWA,AAAO,aAAa,MAA0E;EAC5F,OAAO,KAAK,UAAU,IAAI,IAAI,KAAK,CAAC;CACtC;;;;;;;;;CAUA,AAAO,eAGL;EACA,MAAM,MAAkF,CAAC;EAEzF,KAAK,MAAM,CAAC,MAAM,SAAS,KAAK,UAAU,QAAQ,GAChD,IAAI,QAAQ,CAAC,GAAG,IAAI;EAGtB,OAAO;CACT;;;;;;;;;;CAWA,AAAO,MAAM,MAAqB;EAChC,IAAI,MACF,KAAK,UAAU,OAAO,IAAI;OAE1B,KAAK,UAAU,MAAM;CAEzB;AACF"}
@@ -1,6 +1,6 @@
1
1
  import { BenchmarkErrorResult, BenchmarkOptions, BenchmarkSuccessResult } from "./types.mjs";
2
2
 
3
- //#region core/src/benchmark/benchmark.d.ts
3
+ //#region ../core/src/benchmark/benchmark.d.ts
4
4
  /**
5
5
  * Measure the execution time of a function and classify its performance.
6
6
  *
@@ -1 +1 @@
1
- {"version":3,"file":"benchmark.d.mts","names":[],"sources":["C:/Work/Warlock.js/core/src/benchmark/benchmark.ts"],"mappings":";;;;;AA+CA;;;;;;;;;;;;;;;;;;;;iBAAsB,OAAA,GAAA,CACpB,IAAA,UACA,EAAA,QAAU,CAAA,GAAI,OAAA,CAAQ,CAAA,GACtB,OAAA,GAAU,gBAAA,CAAiB,CAAA,IAC1B,OAAA,CAAQ,sBAAA,CAAuB,CAAA,IAAK,oBAAA"}
1
+ {"version":3,"file":"benchmark.d.mts","names":[],"sources":["../../../../../../../core/src/benchmark/benchmark.ts"],"mappings":";;;;;AA+CA;;;;;;;;;;;;;;;;;;;;iBAAsB,OAAA,GAAA,CACpB,IAAA,UACA,EAAA,QAAU,CAAA,GAAI,OAAA,CAAQ,CAAA,GACtB,OAAA,GAAU,gBAAA,CAAiB,CAAA,IAC1B,OAAA,CAAQ,sBAAA,CAAuB,CAAA,IAAK,oBAAA"}
@@ -1,7 +1,7 @@
1
1
  import { config } from "../config/config-getter.mjs";
2
2
  import "../config/index.mjs";
3
3
 
4
- //#region core/src/benchmark/benchmark.ts
4
+ //#region ../core/src/benchmark/benchmark.ts
5
5
  /**
6
6
  * Classifies latency into "excellent", "good", or "poor" based on thresholds.
7
7
  *
@@ -1 +1 @@
1
- {"version":3,"file":"benchmark.mjs","names":[],"sources":["C:/Work/Warlock.js/core/src/benchmark/benchmark.ts"],"sourcesContent":["import { config } from \"../config\";\nimport type {\n BenchmarkConfigurations,\n BenchmarkErrorResult,\n BenchmarkOptions,\n BenchmarkSuccessResult,\n} from \"./types\";\n\n/**\n * Classifies latency into \"excellent\", \"good\", or \"poor\" based on thresholds.\n *\n * @example\n * latencyState(80, { excellent: 100, poor: 500 }) // \"excellent\"\n * latencyState(300, { excellent: 100, poor: 500 }) // \"good\"\n * latencyState(600, { excellent: 100, poor: 500 }) // \"poor\"\n */\nfunction latencyState(\n latency: number,\n range: { excellent: number; poor: number },\n): \"excellent\" | \"good\" | \"poor\" {\n if (latency <= range.excellent) return \"excellent\";\n if (latency >= range.poor) return \"poor\";\n return \"good\";\n}\n\n/**\n * Measure the execution time of a function and classify its performance.\n *\n * When `enabled` is false, fn() is still called but no timing runs and no hooks fire.\n * A zeroed SuccessResult is returned to keep the return type stable for all callers.\n *\n * @example\n * ```ts\n * const result = await measure(\"db-query\", () => db.query(\"SELECT 1\"), {\n * latencyRange: { excellent: 100, poor: 500 },\n * onComplete: (r) => metrics.record(r.latency),\n * onError: (r) => logger.error(\"query failed\", r.error),\n * onFinish: (r) => logger.info(`${r.name} took ${r.latency}ms`),\n * });\n *\n * if (result.success) {\n * console.log(result.value);\n * } else {\n * console.error(result.error);\n * }\n * ```\n */\nexport async function measure<T>(\n name: string,\n fn: () => T | Promise<T>,\n options?: BenchmarkOptions<T>,\n): Promise<BenchmarkSuccessResult<T> | BenchmarkErrorResult> {\n // Fast path: disabled — call fn() and return a zeroed success wrapper.\n // No timing, no hooks. Re-throws if fn() throws.\n if (options?.enabled === false) {\n const value = await fn();\n return {\n name,\n success: true,\n value,\n latency: 0,\n state: \"excellent\",\n tags: options.tags,\n startedAt: new Date(),\n endedAt: new Date(),\n };\n }\n\n // Resolve latency range from inline options or global config\n const benchmarkConfig = config.get<BenchmarkConfigurations>(\"benchmark\");\n const latencyRange = options?.latencyRange ?? benchmarkConfig?.latencyRange;\n\n const startedAt = new Date();\n const startTime = performance.now();\n const profiler = options?.profiler ?? benchmarkConfig?.profiler;\n const snapshotContainer = options?.snapshotContainer ?? benchmarkConfig?.snapshotContainer;\n\n try {\n const value = await fn();\n\n const endTime = performance.now();\n const latency = Math.round(endTime - startTime);\n const state = latencyRange ? latencyState(latency, latencyRange) : \"good\";\n\n const result: BenchmarkSuccessResult<T> = {\n name,\n success: true,\n value,\n latency,\n state,\n tags: options?.tags,\n startedAt,\n endedAt: new Date(),\n };\n\n if (profiler) {\n profiler.record(result);\n }\n\n if (snapshotContainer) {\n snapshotContainer.record(result);\n }\n\n options?.onComplete?.(result);\n options?.onFinish?.(result);\n\n return result;\n } catch (thrown) {\n // Decide whether to benchmark this error or just re-throw immediately\n const shouldBenchmark = options?.shouldBenchmarkError\n ? options.shouldBenchmarkError(thrown)\n : true;\n\n if (!shouldBenchmark) {\n throw thrown;\n }\n\n // Capture timing even on failure — a 30s timeout is very different from a 2ms crash\n const endTime = performance.now();\n const latency = Math.round(endTime - startTime);\n const state = latencyRange ? latencyState(latency, latencyRange) : \"poor\";\n\n // Normalize thrown value to something consistent\n const error = thrown instanceof Error ? thrown : new Error(String(thrown));\n\n const result: BenchmarkErrorResult = {\n name,\n success: false,\n error,\n latency,\n state,\n tags: options?.tags,\n startedAt,\n endedAt: new Date(),\n };\n\n if (profiler) {\n profiler.record(result);\n }\n\n if (snapshotContainer) {\n snapshotContainer.record(result);\n }\n\n options?.onError?.(result);\n options?.onFinish?.(result);\n\n return result;\n }\n}\n"],"mappings":";;;;;;;;;;;;AAgBA,SAAS,aACP,SACA,OAC+B;CAC/B,IAAI,WAAW,MAAM,WAAW,OAAO;CACvC,IAAI,WAAW,MAAM,MAAM,OAAO;CAClC,OAAO;AACT;;;;;;;;;;;;;;;;;;;;;;;AAwBA,eAAsB,QACpB,MACA,IACA,SAC2D;CAG3D,IAAI,SAAS,YAAY,OAEvB,OAAO;EACL;EACA,SAAS;EACT,aAJkB,GAAG;EAKrB,SAAS;EACT,OAAO;EACP,MAAM,QAAQ;EACd,2BAAW,IAAI,KAAK;EACpB,yBAAS,IAAI,KAAK;CACpB;CAIF,MAAM,kBAAkB,OAAO,IAA6B,WAAW;CACvE,MAAM,eAAe,SAAS,gBAAgB,iBAAiB;CAE/D,MAAM,4BAAY,IAAI,KAAK;CAC3B,MAAM,YAAY,YAAY,IAAI;CAClC,MAAM,WAAW,SAAS,YAAY,iBAAiB;CACvD,MAAM,oBAAoB,SAAS,qBAAqB,iBAAiB;CAEzE,IAAI;EACF,MAAM,QAAQ,MAAM,GAAG;EAEvB,MAAM,UAAU,YAAY,IAAI;EAChC,MAAM,UAAU,KAAK,MAAM,UAAU,SAAS;EAG9C,MAAM,SAAoC;GACxC;GACA,SAAS;GACT;GACA;GACA,OAPY,eAAe,aAAa,SAAS,YAAY,IAAI;GAQjE,MAAM,SAAS;GACf;GACA,yBAAS,IAAI,KAAK;EACpB;EAEA,IAAI,UACF,SAAS,OAAO,MAAM;EAGxB,IAAI,mBACF,kBAAkB,OAAO,MAAM;EAGjC,SAAS,aAAa,MAAM;EAC5B,SAAS,WAAW,MAAM;EAE1B,OAAO;CACT,SAAS,QAAQ;EAMf,IAAI,EAJoB,SAAS,uBAC7B,QAAQ,qBAAqB,MAAM,IACnC,OAGF,MAAM;EAIR,MAAM,UAAU,YAAY,IAAI;EAChC,MAAM,UAAU,KAAK,MAAM,UAAU,SAAS;EAC9C,MAAM,QAAQ,eAAe,aAAa,SAAS,YAAY,IAAI;EAKnE,MAAM,SAA+B;GACnC;GACA,SAAS;GACT,OALY,kBAAkB,QAAQ,SAAS,IAAI,MAAM,OAAO,MAAM,CAAC;GAMvE;GACA;GACA,MAAM,SAAS;GACf;GACA,yBAAS,IAAI,KAAK;EACpB;EAEA,IAAI,UACF,SAAS,OAAO,MAAM;EAGxB,IAAI,mBACF,kBAAkB,OAAO,MAAM;EAGjC,SAAS,UAAU,MAAM;EACzB,SAAS,WAAW,MAAM;EAE1B,OAAO;CACT;AACF"}
1
+ {"version":3,"file":"benchmark.mjs","names":[],"sources":["../../../../../../../core/src/benchmark/benchmark.ts"],"sourcesContent":["import { config } from \"../config\";\nimport type {\n BenchmarkConfigurations,\n BenchmarkErrorResult,\n BenchmarkOptions,\n BenchmarkSuccessResult,\n} from \"./types\";\n\n/**\n * Classifies latency into \"excellent\", \"good\", or \"poor\" based on thresholds.\n *\n * @example\n * latencyState(80, { excellent: 100, poor: 500 }) // \"excellent\"\n * latencyState(300, { excellent: 100, poor: 500 }) // \"good\"\n * latencyState(600, { excellent: 100, poor: 500 }) // \"poor\"\n */\nfunction latencyState(\n latency: number,\n range: { excellent: number; poor: number },\n): \"excellent\" | \"good\" | \"poor\" {\n if (latency <= range.excellent) return \"excellent\";\n if (latency >= range.poor) return \"poor\";\n return \"good\";\n}\n\n/**\n * Measure the execution time of a function and classify its performance.\n *\n * When `enabled` is false, fn() is still called but no timing runs and no hooks fire.\n * A zeroed SuccessResult is returned to keep the return type stable for all callers.\n *\n * @example\n * ```ts\n * const result = await measure(\"db-query\", () => db.query(\"SELECT 1\"), {\n * latencyRange: { excellent: 100, poor: 500 },\n * onComplete: (r) => metrics.record(r.latency),\n * onError: (r) => logger.error(\"query failed\", r.error),\n * onFinish: (r) => logger.info(`${r.name} took ${r.latency}ms`),\n * });\n *\n * if (result.success) {\n * console.log(result.value);\n * } else {\n * console.error(result.error);\n * }\n * ```\n */\nexport async function measure<T>(\n name: string,\n fn: () => T | Promise<T>,\n options?: BenchmarkOptions<T>,\n): Promise<BenchmarkSuccessResult<T> | BenchmarkErrorResult> {\n // Fast path: disabled — call fn() and return a zeroed success wrapper.\n // No timing, no hooks. Re-throws if fn() throws.\n if (options?.enabled === false) {\n const value = await fn();\n return {\n name,\n success: true,\n value,\n latency: 0,\n state: \"excellent\",\n tags: options.tags,\n startedAt: new Date(),\n endedAt: new Date(),\n };\n }\n\n // Resolve latency range from inline options or global config\n const benchmarkConfig = config.get<BenchmarkConfigurations>(\"benchmark\");\n const latencyRange = options?.latencyRange ?? benchmarkConfig?.latencyRange;\n\n const startedAt = new Date();\n const startTime = performance.now();\n const profiler = options?.profiler ?? benchmarkConfig?.profiler;\n const snapshotContainer = options?.snapshotContainer ?? benchmarkConfig?.snapshotContainer;\n\n try {\n const value = await fn();\n\n const endTime = performance.now();\n const latency = Math.round(endTime - startTime);\n const state = latencyRange ? latencyState(latency, latencyRange) : \"good\";\n\n const result: BenchmarkSuccessResult<T> = {\n name,\n success: true,\n value,\n latency,\n state,\n tags: options?.tags,\n startedAt,\n endedAt: new Date(),\n };\n\n if (profiler) {\n profiler.record(result);\n }\n\n if (snapshotContainer) {\n snapshotContainer.record(result);\n }\n\n options?.onComplete?.(result);\n options?.onFinish?.(result);\n\n return result;\n } catch (thrown) {\n // Decide whether to benchmark this error or just re-throw immediately\n const shouldBenchmark = options?.shouldBenchmarkError\n ? options.shouldBenchmarkError(thrown)\n : true;\n\n if (!shouldBenchmark) {\n throw thrown;\n }\n\n // Capture timing even on failure — a 30s timeout is very different from a 2ms crash\n const endTime = performance.now();\n const latency = Math.round(endTime - startTime);\n const state = latencyRange ? latencyState(latency, latencyRange) : \"poor\";\n\n // Normalize thrown value to something consistent\n const error = thrown instanceof Error ? thrown : new Error(String(thrown));\n\n const result: BenchmarkErrorResult = {\n name,\n success: false,\n error,\n latency,\n state,\n tags: options?.tags,\n startedAt,\n endedAt: new Date(),\n };\n\n if (profiler) {\n profiler.record(result);\n }\n\n if (snapshotContainer) {\n snapshotContainer.record(result);\n }\n\n options?.onError?.(result);\n options?.onFinish?.(result);\n\n return result;\n }\n}\n"],"mappings":";;;;;;;;;;;;AAgBA,SAAS,aACP,SACA,OAC+B;CAC/B,IAAI,WAAW,MAAM,WAAW,OAAO;CACvC,IAAI,WAAW,MAAM,MAAM,OAAO;CAClC,OAAO;AACT;;;;;;;;;;;;;;;;;;;;;;;AAwBA,eAAsB,QACpB,MACA,IACA,SAC2D;CAG3D,IAAI,SAAS,YAAY,OAEvB,OAAO;EACL;EACA,SAAS;EACT,aAJkB,GAAG;EAKrB,SAAS;EACT,OAAO;EACP,MAAM,QAAQ;EACd,2BAAW,IAAI,KAAK;EACpB,yBAAS,IAAI,KAAK;CACpB;CAIF,MAAM,kBAAkB,OAAO,IAA6B,WAAW;CACvE,MAAM,eAAe,SAAS,gBAAgB,iBAAiB;CAE/D,MAAM,4BAAY,IAAI,KAAK;CAC3B,MAAM,YAAY,YAAY,IAAI;CAClC,MAAM,WAAW,SAAS,YAAY,iBAAiB;CACvD,MAAM,oBAAoB,SAAS,qBAAqB,iBAAiB;CAEzE,IAAI;EACF,MAAM,QAAQ,MAAM,GAAG;EAEvB,MAAM,UAAU,YAAY,IAAI;EAChC,MAAM,UAAU,KAAK,MAAM,UAAU,SAAS;EAG9C,MAAM,SAAoC;GACxC;GACA,SAAS;GACT;GACA;GACA,OAPY,eAAe,aAAa,SAAS,YAAY,IAAI;GAQjE,MAAM,SAAS;GACf;GACA,yBAAS,IAAI,KAAK;EACpB;EAEA,IAAI,UACF,SAAS,OAAO,MAAM;EAGxB,IAAI,mBACF,kBAAkB,OAAO,MAAM;EAGjC,SAAS,aAAa,MAAM;EAC5B,SAAS,WAAW,MAAM;EAE1B,OAAO;CACT,SAAS,QAAQ;EAMf,IAAI,EAJoB,SAAS,uBAC7B,QAAQ,qBAAqB,MAAM,IACnC,OAGF,MAAM;EAIR,MAAM,UAAU,YAAY,IAAI;EAChC,MAAM,UAAU,KAAK,MAAM,UAAU,SAAS;EAC9C,MAAM,QAAQ,eAAe,aAAa,SAAS,YAAY,IAAI;EAKnE,MAAM,SAA+B;GACnC;GACA,SAAS;GACT,OALY,kBAAkB,QAAQ,SAAS,IAAI,MAAM,OAAO,MAAM,CAAC;GAMvE;GACA;GACA,MAAM,SAAS;GACf;GACA,yBAAS,IAAI,KAAK;EACpB;EAEA,IAAI,UACF,SAAS,OAAO,MAAM;EAGxB,IAAI,mBACF,kBAAkB,OAAO,MAAM;EAGjC,SAAS,UAAU,MAAM;EACzB,SAAS,WAAW,MAAM;EAE1B,OAAO;CACT;AACF"}
@@ -1,6 +1,6 @@
1
1
  import { BenchmarkChannel, BenchmarkStats } from "../types.mjs";
2
2
 
3
- //#region core/src/benchmark/channels/console.channel.d.ts
3
+ //#region ../core/src/benchmark/channels/console.channel.d.ts
4
4
  declare class ConsoleChannel implements BenchmarkChannel {
5
5
  /**
6
6
  * Pretty-prints a stats table per operation on onFlush().
@@ -1 +1 @@
1
- {"version":3,"file":"console.channel.d.mts","names":[],"sources":["C:/Work/Warlock.js/core/src/benchmark/channels/console.channel.ts"],"mappings":";;;cAEa,cAAA,YAA0B,gBAAA;;AAAvC;;;;;;;;EAUS,OAAA,CAAQ,KAAA,EAAO,MAAA,SAAe,cAAA;AAAA"}
1
+ {"version":3,"file":"console.channel.d.mts","names":[],"sources":["../../../../../../../../core/src/benchmark/channels/console.channel.ts"],"mappings":";;;cAEa,cAAA,YAA0B,gBAAA;;AAAvC;;;;;;;;EAUS,OAAA,CAAQ,KAAA,EAAO,MAAA,SAAe,cAAA;AAAA"}
@@ -1,4 +1,4 @@
1
- //#region core/src/benchmark/channels/console.channel.ts
1
+ //#region ../core/src/benchmark/channels/console.channel.ts
2
2
  var ConsoleChannel = class {
3
3
  /**
4
4
  * Pretty-prints a stats table per operation on onFlush().
@@ -1 +1 @@
1
- {"version":3,"file":"console.channel.mjs","names":[],"sources":["C:/Work/Warlock.js/core/src/benchmark/channels/console.channel.ts"],"sourcesContent":["import type { BenchmarkChannel, BenchmarkStats } from \"../types\";\n\nexport class ConsoleChannel implements BenchmarkChannel {\n /**\n * Pretty-prints a stats table per operation on onFlush().\n *\n * @param stats - Aggregated stats for all tracked operations.\n *\n * @example\n * const channel = new ConsoleChannel();\n * channel.onFlush({ \"db-query\": { p50: 10, count: 100, ... } });\n */\n public onFlush(stats: Record<string, BenchmarkStats>): void {\n const tableData: Record<string, any> = {};\n\n for (const [name, operationStats] of Object.entries(stats)) {\n tableData[name] = {\n \"p50 (ms)\": operationStats.p50,\n \"p90 (ms)\": operationStats.p90,\n \"p95 (ms)\": operationStats.p95,\n \"p99 (ms)\": operationStats.p99,\n \"Avg (ms)\": operationStats.avg,\n \"Min (ms)\": operationStats.min,\n \"Max (ms)\": operationStats.max,\n \"Error Rate\": `${(operationStats.errorRate * 100).toFixed(2)}%`,\n Errors: operationStats.errors,\n Count: operationStats.count,\n };\n }\n\n console.table(tableData);\n }\n}\n"],"mappings":";AAEA,IAAa,iBAAb,MAAwD;;;;;;;;;;CAUtD,AAAO,QAAQ,OAA6C;EAC1D,MAAM,YAAiC,CAAC;EAExC,KAAK,MAAM,CAAC,MAAM,mBAAmB,OAAO,QAAQ,KAAK,GACvD,UAAU,QAAQ;GAChB,YAAY,eAAe;GAC3B,YAAY,eAAe;GAC3B,YAAY,eAAe;GAC3B,YAAY,eAAe;GAC3B,YAAY,eAAe;GAC3B,YAAY,eAAe;GAC3B,YAAY,eAAe;GAC3B,cAAc,IAAI,eAAe,YAAY,KAAK,QAAQ,CAAC,EAAE;GAC7D,QAAQ,eAAe;GACvB,OAAO,eAAe;EACxB;EAGF,QAAQ,MAAM,SAAS;CACzB;AACF"}
1
+ {"version":3,"file":"console.channel.mjs","names":[],"sources":["../../../../../../../../core/src/benchmark/channels/console.channel.ts"],"sourcesContent":["import type { BenchmarkChannel, BenchmarkStats } from \"../types\";\n\nexport class ConsoleChannel implements BenchmarkChannel {\n /**\n * Pretty-prints a stats table per operation on onFlush().\n *\n * @param stats - Aggregated stats for all tracked operations.\n *\n * @example\n * const channel = new ConsoleChannel();\n * channel.onFlush({ \"db-query\": { p50: 10, count: 100, ... } });\n */\n public onFlush(stats: Record<string, BenchmarkStats>): void {\n const tableData: Record<string, any> = {};\n\n for (const [name, operationStats] of Object.entries(stats)) {\n tableData[name] = {\n \"p50 (ms)\": operationStats.p50,\n \"p90 (ms)\": operationStats.p90,\n \"p95 (ms)\": operationStats.p95,\n \"p99 (ms)\": operationStats.p99,\n \"Avg (ms)\": operationStats.avg,\n \"Min (ms)\": operationStats.min,\n \"Max (ms)\": operationStats.max,\n \"Error Rate\": `${(operationStats.errorRate * 100).toFixed(2)}%`,\n Errors: operationStats.errors,\n Count: operationStats.count,\n };\n }\n\n console.table(tableData);\n }\n}\n"],"mappings":";AAEA,IAAa,iBAAb,MAAwD;;;;;;;;;;CAUtD,AAAO,QAAQ,OAA6C;EAC1D,MAAM,YAAiC,CAAC;EAExC,KAAK,MAAM,CAAC,MAAM,mBAAmB,OAAO,QAAQ,KAAK,GACvD,UAAU,QAAQ;GAChB,YAAY,eAAe;GAC3B,YAAY,eAAe;GAC3B,YAAY,eAAe;GAC3B,YAAY,eAAe;GAC3B,YAAY,eAAe;GAC3B,YAAY,eAAe;GAC3B,YAAY,eAAe;GAC3B,cAAc,IAAI,eAAe,YAAY,KAAK,QAAQ,CAAC,EAAE;GAC7D,QAAQ,eAAe;GACvB,OAAO,eAAe;EACxB;EAGF,QAAQ,MAAM,SAAS;CACzB;AACF"}
@@ -1,6 +1,6 @@
1
1
  import { BenchmarkChannel } from "../types.mjs";
2
2
 
3
- //#region core/src/benchmark/channels/noop.channel.d.ts
3
+ //#region ../core/src/benchmark/channels/noop.channel.d.ts
4
4
  declare class NoopChannel implements BenchmarkChannel {
5
5
  onFlush(): void;
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"noop.channel.d.mts","names":[],"sources":["C:/Work/Warlock.js/core/src/benchmark/channels/noop.channel.ts"],"mappings":";;;cAEa,WAAA,YAAuB,gBAAgB;EAC3C,OAAO,CAAA;AAAA"}
1
+ {"version":3,"file":"noop.channel.d.mts","names":[],"sources":["../../../../../../../../core/src/benchmark/channels/noop.channel.ts"],"mappings":";;;cAEa,WAAA,YAAuB,gBAAgB;EAC3C,OAAO,CAAA;AAAA"}
@@ -1,4 +1,4 @@
1
- //#region core/src/benchmark/channels/noop.channel.ts
1
+ //#region ../core/src/benchmark/channels/noop.channel.ts
2
2
  var NoopChannel = class {
3
3
  onFlush() {}
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"noop.channel.mjs","names":[],"sources":["C:/Work/Warlock.js/core/src/benchmark/channels/noop.channel.ts"],"sourcesContent":["import type { BenchmarkChannel } from \"../types\";\n\nexport class NoopChannel implements BenchmarkChannel {\n public onFlush(): void {}\n}\n"],"mappings":";AAEA,IAAa,cAAb,MAAqD;CACnD,AAAO,UAAgB,CAAC;AAC1B"}
1
+ {"version":3,"file":"noop.channel.mjs","names":[],"sources":["../../../../../../../../core/src/benchmark/channels/noop.channel.ts"],"sourcesContent":["import type { BenchmarkChannel } from \"../types\";\n\nexport class NoopChannel implements BenchmarkChannel {\n public onFlush(): void {}\n}\n"],"mappings":";AAEA,IAAa,cAAb,MAAqD;CACnD,AAAO,UAAgB,CAAC;AAC1B"}
@@ -1,6 +1,6 @@
1
1
  import { BenchmarkErrorResult, BenchmarkProfilerOptions, BenchmarkStats, BenchmarkSuccessResult } from "./types.mjs";
2
2
 
3
- //#region core/src/benchmark/profiler.d.ts
3
+ //#region ../core/src/benchmark/profiler.d.ts
4
4
  declare class BenchmarkProfiler {
5
5
  private readonly maxSamples;
6
6
  private readonly channels;
@@ -1 +1 @@
1
- {"version":3,"file":"profiler.d.mts","names":[],"sources":["C:/Work/Warlock.js/core/src/benchmark/profiler.ts"],"mappings":";;;cAkBa,iBAAA;EAAA,iBACM,UAAA;EAAA,iBACA,QAAA;EAAA,iBACA,OAAA;EAAA,QACT,QAAA;cAEW,OAAA,GAAU,wBAAA;EAoBP;;;;;;;;EAAf,MAAA,CAAO,MAAA,EAAQ,sBAAA,YAAkC,oBAAA;EAxBvC;;;;;;;;;;EAqEV,KAAA,CAAM,IAAA,WAAe,cAAA;EAAf;;;;;;;;EAoCN,QAAA,CAAA,GAAY,MAAA,SAAe,cAAA;EAyD3B;;AAAO;;;;EAxCD,KAAA,CAAA,GAAS,OAAA;;;;;;;;;;;EAmBf,KAAA,CAAM,IAAA;;;;;;;EAqBN,OAAA,CAAA;AAAA"}
1
+ {"version":3,"file":"profiler.d.mts","names":[],"sources":["../../../../../../../core/src/benchmark/profiler.ts"],"mappings":";;;cAkBa,iBAAA;EAAA,iBACM,UAAA;EAAA,iBACA,QAAA;EAAA,iBACA,OAAA;EAAA,QACT,QAAA;cAEW,OAAA,GAAU,wBAAA;EAoBP;;;;;;;;EAAf,MAAA,CAAO,MAAA,EAAQ,sBAAA,YAAkC,oBAAA;EAxBvC;;;;;;;;;;EAqEV,KAAA,CAAM,IAAA,WAAe,cAAA;EAAf;;;;;;;;EAoCN,QAAA,CAAA,GAAY,MAAA,SAAe,cAAA;EAyD3B;;AAAO;;;;EAxCD,KAAA,CAAA,GAAS,OAAA;;;;;;;;;;;EAmBf,KAAA,CAAM,IAAA;;;;;;;EAqBN,OAAA,CAAA;AAAA"}
@@ -1,6 +1,6 @@
1
1
  import { NoopChannel } from "./channels/noop.channel.mjs";
2
2
 
3
- //#region core/src/benchmark/profiler.ts
3
+ //#region ../core/src/benchmark/profiler.ts
4
4
  var BenchmarkProfiler = class {
5
5
  constructor(options) {
6
6
  this.entries = /* @__PURE__ */ new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"profiler.mjs","names":[],"sources":["C:/Work/Warlock.js/core/src/benchmark/profiler.ts"],"sourcesContent":["import { NoopChannel } from \"./channels/noop.channel\";\nimport type {\n BenchmarkChannel,\n BenchmarkErrorResult,\n BenchmarkProfilerOptions,\n BenchmarkStats,\n BenchmarkSuccessResult,\n} from \"./types\";\n\ntype BenchmarkEntry = {\n latencies: number[];\n sum: number;\n total: number;\n errors: number;\n firstSeenAt: Date;\n lastSeenAt: Date;\n};\n\nexport class BenchmarkProfiler {\n private readonly maxSamples: number;\n private readonly channels: BenchmarkChannel[];\n private readonly entries = new Map<string, BenchmarkEntry>();\n private interval?: ReturnType<typeof setInterval>;\n\n public constructor(options?: BenchmarkProfilerOptions) {\n this.maxSamples = options?.maxSamples ?? 1000;\n this.channels = options?.channels ?? [new NoopChannel()];\n\n if (options?.flushEvery) {\n this.interval = setInterval(() => {\n // We use void to explicitly ignore the promise, as this is a background interval\n void this.flush();\n }, options.flushEvery);\n }\n }\n\n /**\n * Record one measurement result. Called automatically by measure() when a profiler is set.\n *\n * @param result - The success or error result from measure()\n *\n * @example\n * profiler.record(result);\n */\n public record(result: BenchmarkSuccessResult<unknown> | BenchmarkErrorResult): void {\n let entry = this.entries.get(result.name);\n\n if (!entry) {\n entry = {\n latencies: [],\n sum: 0,\n total: 0,\n errors: 0,\n firstSeenAt: result.startedAt,\n lastSeenAt: result.endedAt,\n };\n\n this.entries.set(result.name, entry);\n }\n\n entry.latencies.push(result.latency);\n entry.sum += result.latency;\n\n if (entry.latencies.length > this.maxSamples) {\n const removed = entry.latencies.shift();\n if (removed !== undefined) {\n entry.sum -= removed;\n }\n }\n\n entry.total += 1;\n\n if (!result.success) {\n entry.errors += 1;\n }\n\n entry.lastSeenAt = result.endedAt;\n }\n\n /**\n * Get aggregated stats for one operation name.\n * Computes p50/p95/p99 by sorting the ring buffer on demand.\n *\n * @param name - The operation name to get stats for.\n * @returns Stats object or undefined if no data yet.\n *\n * @example\n * const stats = profiler.stats(\"db-query\");\n */\n public stats(name: string): BenchmarkStats | undefined {\n const entry = this.entries.get(name);\n if (!entry || entry.latencies.length === 0) return undefined;\n\n const latencies = [...entry.latencies].sort((a, b) => a - b);\n const count = latencies.length;\n\n const getP = (percentile: number) => {\n const index = Math.min(count - 1, Math.floor(count * percentile));\n return latencies[index];\n };\n\n return {\n p50: getP(0.5),\n p90: getP(0.9),\n p95: getP(0.95),\n p99: getP(0.99),\n avg: Math.round((entry.sum / count) * 100) / 100,\n min: latencies[0],\n max: latencies[count - 1],\n count: entry.total,\n errors: entry.errors,\n errorRate: Math.round((entry.errors / entry.total) * 100) / 100,\n firstSeenAt: entry.firstSeenAt,\n lastSeenAt: entry.lastSeenAt,\n };\n }\n\n /**\n * Get stats for all tracked operations.\n *\n * @returns A record mapping operation names to their stats.\n *\n * @example\n * const all = profiler.allStats();\n */\n public allStats(): Record<string, BenchmarkStats> {\n const all: Record<string, BenchmarkStats> = {};\n for (const name of this.entries.keys()) {\n const operationStats = this.stats(name);\n if (operationStats) {\n all[name] = operationStats;\n }\n }\n return all;\n }\n\n /**\n * Send allStats() to all registered channels.\n *\n * @example\n * await profiler.flush();\n */\n public async flush(): Promise<void> {\n const stats = this.allStats();\n if (Object.keys(stats).length === 0) return;\n\n for (const channel of this.channels) {\n await channel.onFlush(stats);\n }\n }\n\n /**\n * Clear ring buffer for one or all operations.\n * Does NOT reset unbounded total/error counters.\n *\n * @param name - Optional operation name. If omitted, clears all ring buffers.\n *\n * @example\n * profiler.reset(\"db-query\");\n * profiler.reset();\n */\n public reset(name?: string): void {\n if (name) {\n const entry = this.entries.get(name);\n if (entry) {\n entry.latencies = [];\n entry.sum = 0;\n }\n } else {\n for (const entry of this.entries.values()) {\n entry.latencies = [];\n entry.sum = 0;\n }\n }\n }\n\n /**\n * Dispose the profiler, clearing its auto-flush interval.\n *\n * @example\n * profiler.dispose();\n */\n public dispose(): void {\n if (this.interval) {\n clearInterval(this.interval);\n this.interval = undefined;\n }\n }\n}\n"],"mappings":";;;AAkBA,IAAa,oBAAb,MAA+B;CAM7B,AAAO,YAAY,SAAoC;iCAH5B,IAAI,IAA4B;EAIzD,KAAK,aAAa,SAAS,cAAc;EACzC,KAAK,WAAW,SAAS,YAAY,CAAC,IAAI,YAAY,CAAC;EAEvD,IAAI,SAAS,YACX,KAAK,WAAW,kBAAkB;GAEhC,AAAK,KAAK,MAAM;EAClB,GAAG,QAAQ,UAAU;CAEzB;;;;;;;;;CAUA,AAAO,OAAO,QAAsE;EAClF,IAAI,QAAQ,KAAK,QAAQ,IAAI,OAAO,IAAI;EAExC,IAAI,CAAC,OAAO;GACV,QAAQ;IACN,WAAW,CAAC;IACZ,KAAK;IACL,OAAO;IACP,QAAQ;IACR,aAAa,OAAO;IACpB,YAAY,OAAO;GACrB;GAEA,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK;EACrC;EAEA,MAAM,UAAU,KAAK,OAAO,OAAO;EACnC,MAAM,OAAO,OAAO;EAEpB,IAAI,MAAM,UAAU,SAAS,KAAK,YAAY;GAC5C,MAAM,UAAU,MAAM,UAAU,MAAM;GACtC,IAAI,YAAY,QACd,MAAM,OAAO;EAEjB;EAEA,MAAM,SAAS;EAEf,IAAI,CAAC,OAAO,SACV,MAAM,UAAU;EAGlB,MAAM,aAAa,OAAO;CAC5B;;;;;;;;;;;CAYA,AAAO,MAAM,MAA0C;EACrD,MAAM,QAAQ,KAAK,QAAQ,IAAI,IAAI;EACnC,IAAI,CAAC,SAAS,MAAM,UAAU,WAAW,GAAG,OAAO;EAEnD,MAAM,YAAY,CAAC,GAAG,MAAM,SAAS,EAAE,MAAM,GAAG,MAAM,IAAI,CAAC;EAC3D,MAAM,QAAQ,UAAU;EAExB,MAAM,QAAQ,eAAuB;GAEnC,OAAO,UADO,KAAK,IAAI,QAAQ,GAAG,KAAK,MAAM,QAAQ,UAAU,CAC1C;EACvB;EAEA,OAAO;GACL,KAAK,KAAK,EAAG;GACb,KAAK,KAAK,EAAG;GACb,KAAK,KAAK,GAAI;GACd,KAAK,KAAK,GAAI;GACd,KAAK,KAAK,MAAO,MAAM,MAAM,QAAS,GAAG,IAAI;GAC7C,KAAK,UAAU;GACf,KAAK,UAAU,QAAQ;GACvB,OAAO,MAAM;GACb,QAAQ,MAAM;GACd,WAAW,KAAK,MAAO,MAAM,SAAS,MAAM,QAAS,GAAG,IAAI;GAC5D,aAAa,MAAM;GACnB,YAAY,MAAM;EACpB;CACF;;;;;;;;;CAUA,AAAO,WAA2C;EAChD,MAAM,MAAsC,CAAC;EAC7C,KAAK,MAAM,QAAQ,KAAK,QAAQ,KAAK,GAAG;GACtC,MAAM,iBAAiB,KAAK,MAAM,IAAI;GACtC,IAAI,gBACF,IAAI,QAAQ;EAEhB;EACA,OAAO;CACT;;;;;;;CAQA,MAAa,QAAuB;EAClC,MAAM,QAAQ,KAAK,SAAS;EAC5B,IAAI,OAAO,KAAK,KAAK,EAAE,WAAW,GAAG;EAErC,KAAK,MAAM,WAAW,KAAK,UACzB,MAAM,QAAQ,QAAQ,KAAK;CAE/B;;;;;;;;;;;CAYA,AAAO,MAAM,MAAqB;EAChC,IAAI,MAAM;GACR,MAAM,QAAQ,KAAK,QAAQ,IAAI,IAAI;GACnC,IAAI,OAAO;IACT,MAAM,YAAY,CAAC;IACnB,MAAM,MAAM;GACd;EACF,OACE,KAAK,MAAM,SAAS,KAAK,QAAQ,OAAO,GAAG;GACzC,MAAM,YAAY,CAAC;GACnB,MAAM,MAAM;EACd;CAEJ;;;;;;;CAQA,AAAO,UAAgB;EACrB,IAAI,KAAK,UAAU;GACjB,cAAc,KAAK,QAAQ;GAC3B,KAAK,WAAW;EAClB;CACF;AACF"}
1
+ {"version":3,"file":"profiler.mjs","names":[],"sources":["../../../../../../../core/src/benchmark/profiler.ts"],"sourcesContent":["import { NoopChannel } from \"./channels/noop.channel\";\nimport type {\n BenchmarkChannel,\n BenchmarkErrorResult,\n BenchmarkProfilerOptions,\n BenchmarkStats,\n BenchmarkSuccessResult,\n} from \"./types\";\n\ntype BenchmarkEntry = {\n latencies: number[];\n sum: number;\n total: number;\n errors: number;\n firstSeenAt: Date;\n lastSeenAt: Date;\n};\n\nexport class BenchmarkProfiler {\n private readonly maxSamples: number;\n private readonly channels: BenchmarkChannel[];\n private readonly entries = new Map<string, BenchmarkEntry>();\n private interval?: ReturnType<typeof setInterval>;\n\n public constructor(options?: BenchmarkProfilerOptions) {\n this.maxSamples = options?.maxSamples ?? 1000;\n this.channels = options?.channels ?? [new NoopChannel()];\n\n if (options?.flushEvery) {\n this.interval = setInterval(() => {\n // We use void to explicitly ignore the promise, as this is a background interval\n void this.flush();\n }, options.flushEvery);\n }\n }\n\n /**\n * Record one measurement result. Called automatically by measure() when a profiler is set.\n *\n * @param result - The success or error result from measure()\n *\n * @example\n * profiler.record(result);\n */\n public record(result: BenchmarkSuccessResult<unknown> | BenchmarkErrorResult): void {\n let entry = this.entries.get(result.name);\n\n if (!entry) {\n entry = {\n latencies: [],\n sum: 0,\n total: 0,\n errors: 0,\n firstSeenAt: result.startedAt,\n lastSeenAt: result.endedAt,\n };\n\n this.entries.set(result.name, entry);\n }\n\n entry.latencies.push(result.latency);\n entry.sum += result.latency;\n\n if (entry.latencies.length > this.maxSamples) {\n const removed = entry.latencies.shift();\n if (removed !== undefined) {\n entry.sum -= removed;\n }\n }\n\n entry.total += 1;\n\n if (!result.success) {\n entry.errors += 1;\n }\n\n entry.lastSeenAt = result.endedAt;\n }\n\n /**\n * Get aggregated stats for one operation name.\n * Computes p50/p95/p99 by sorting the ring buffer on demand.\n *\n * @param name - The operation name to get stats for.\n * @returns Stats object or undefined if no data yet.\n *\n * @example\n * const stats = profiler.stats(\"db-query\");\n */\n public stats(name: string): BenchmarkStats | undefined {\n const entry = this.entries.get(name);\n if (!entry || entry.latencies.length === 0) return undefined;\n\n const latencies = [...entry.latencies].sort((a, b) => a - b);\n const count = latencies.length;\n\n const getP = (percentile: number) => {\n const index = Math.min(count - 1, Math.floor(count * percentile));\n return latencies[index];\n };\n\n return {\n p50: getP(0.5),\n p90: getP(0.9),\n p95: getP(0.95),\n p99: getP(0.99),\n avg: Math.round((entry.sum / count) * 100) / 100,\n min: latencies[0],\n max: latencies[count - 1],\n count: entry.total,\n errors: entry.errors,\n errorRate: Math.round((entry.errors / entry.total) * 100) / 100,\n firstSeenAt: entry.firstSeenAt,\n lastSeenAt: entry.lastSeenAt,\n };\n }\n\n /**\n * Get stats for all tracked operations.\n *\n * @returns A record mapping operation names to their stats.\n *\n * @example\n * const all = profiler.allStats();\n */\n public allStats(): Record<string, BenchmarkStats> {\n const all: Record<string, BenchmarkStats> = {};\n for (const name of this.entries.keys()) {\n const operationStats = this.stats(name);\n if (operationStats) {\n all[name] = operationStats;\n }\n }\n return all;\n }\n\n /**\n * Send allStats() to all registered channels.\n *\n * @example\n * await profiler.flush();\n */\n public async flush(): Promise<void> {\n const stats = this.allStats();\n if (Object.keys(stats).length === 0) return;\n\n for (const channel of this.channels) {\n await channel.onFlush(stats);\n }\n }\n\n /**\n * Clear ring buffer for one or all operations.\n * Does NOT reset unbounded total/error counters.\n *\n * @param name - Optional operation name. If omitted, clears all ring buffers.\n *\n * @example\n * profiler.reset(\"db-query\");\n * profiler.reset();\n */\n public reset(name?: string): void {\n if (name) {\n const entry = this.entries.get(name);\n if (entry) {\n entry.latencies = [];\n entry.sum = 0;\n }\n } else {\n for (const entry of this.entries.values()) {\n entry.latencies = [];\n entry.sum = 0;\n }\n }\n }\n\n /**\n * Dispose the profiler, clearing its auto-flush interval.\n *\n * @example\n * profiler.dispose();\n */\n public dispose(): void {\n if (this.interval) {\n clearInterval(this.interval);\n this.interval = undefined;\n }\n }\n}\n"],"mappings":";;;AAkBA,IAAa,oBAAb,MAA+B;CAM7B,AAAO,YAAY,SAAoC;iCAH5B,IAAI,IAA4B;EAIzD,KAAK,aAAa,SAAS,cAAc;EACzC,KAAK,WAAW,SAAS,YAAY,CAAC,IAAI,YAAY,CAAC;EAEvD,IAAI,SAAS,YACX,KAAK,WAAW,kBAAkB;GAEhC,AAAK,KAAK,MAAM;EAClB,GAAG,QAAQ,UAAU;CAEzB;;;;;;;;;CAUA,AAAO,OAAO,QAAsE;EAClF,IAAI,QAAQ,KAAK,QAAQ,IAAI,OAAO,IAAI;EAExC,IAAI,CAAC,OAAO;GACV,QAAQ;IACN,WAAW,CAAC;IACZ,KAAK;IACL,OAAO;IACP,QAAQ;IACR,aAAa,OAAO;IACpB,YAAY,OAAO;GACrB;GAEA,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK;EACrC;EAEA,MAAM,UAAU,KAAK,OAAO,OAAO;EACnC,MAAM,OAAO,OAAO;EAEpB,IAAI,MAAM,UAAU,SAAS,KAAK,YAAY;GAC5C,MAAM,UAAU,MAAM,UAAU,MAAM;GACtC,IAAI,YAAY,QACd,MAAM,OAAO;EAEjB;EAEA,MAAM,SAAS;EAEf,IAAI,CAAC,OAAO,SACV,MAAM,UAAU;EAGlB,MAAM,aAAa,OAAO;CAC5B;;;;;;;;;;;CAYA,AAAO,MAAM,MAA0C;EACrD,MAAM,QAAQ,KAAK,QAAQ,IAAI,IAAI;EACnC,IAAI,CAAC,SAAS,MAAM,UAAU,WAAW,GAAG,OAAO;EAEnD,MAAM,YAAY,CAAC,GAAG,MAAM,SAAS,EAAE,MAAM,GAAG,MAAM,IAAI,CAAC;EAC3D,MAAM,QAAQ,UAAU;EAExB,MAAM,QAAQ,eAAuB;GAEnC,OAAO,UADO,KAAK,IAAI,QAAQ,GAAG,KAAK,MAAM,QAAQ,UAAU,CAC1C;EACvB;EAEA,OAAO;GACL,KAAK,KAAK,EAAG;GACb,KAAK,KAAK,EAAG;GACb,KAAK,KAAK,GAAI;GACd,KAAK,KAAK,GAAI;GACd,KAAK,KAAK,MAAO,MAAM,MAAM,QAAS,GAAG,IAAI;GAC7C,KAAK,UAAU;GACf,KAAK,UAAU,QAAQ;GACvB,OAAO,MAAM;GACb,QAAQ,MAAM;GACd,WAAW,KAAK,MAAO,MAAM,SAAS,MAAM,QAAS,GAAG,IAAI;GAC5D,aAAa,MAAM;GACnB,YAAY,MAAM;EACpB;CACF;;;;;;;;;CAUA,AAAO,WAA2C;EAChD,MAAM,MAAsC,CAAC;EAC7C,KAAK,MAAM,QAAQ,KAAK,QAAQ,KAAK,GAAG;GACtC,MAAM,iBAAiB,KAAK,MAAM,IAAI;GACtC,IAAI,gBACF,IAAI,QAAQ;EAEhB;EACA,OAAO;CACT;;;;;;;CAQA,MAAa,QAAuB;EAClC,MAAM,QAAQ,KAAK,SAAS;EAC5B,IAAI,OAAO,KAAK,KAAK,EAAE,WAAW,GAAG;EAErC,KAAK,MAAM,WAAW,KAAK,UACzB,MAAM,QAAQ,QAAQ,KAAK;CAE/B;;;;;;;;;;;CAYA,AAAO,MAAM,MAAqB;EAChC,IAAI,MAAM;GACR,MAAM,QAAQ,KAAK,QAAQ,IAAI,IAAI;GACnC,IAAI,OAAO;IACT,MAAM,YAAY,CAAC;IACnB,MAAM,MAAM;GACd;EACF,OACE,KAAK,MAAM,SAAS,KAAK,QAAQ,OAAO,GAAG;GACzC,MAAM,YAAY,CAAC;GACnB,MAAM,MAAM;EACd;CAEJ;;;;;;;CAQA,AAAO,UAAgB;EACrB,IAAI,KAAK,UAAU;GACjB,cAAc,KAAK,QAAQ;GAC3B,KAAK,WAAW;EAClB;CACF;AACF"}
@@ -1,7 +1,7 @@
1
1
  import { BenchmarkSnapshots } from "./benchmark-snapshots.mjs";
2
2
  import { BenchmarkProfiler } from "./profiler.mjs";
3
3
 
4
- //#region core/src/benchmark/types.d.ts
4
+ //#region ../core/src/benchmark/types.d.ts
5
5
  /**
6
6
  * Global benchmark configuration (set via config.get("benchmark"))
7
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.mts","names":[],"sources":["C:/Work/Warlock.js/core/src/benchmark/types.ts"],"mappings":";;;;;;AAMA;KAAY,uBAAA;EACV,OAAA;EACA,YAAA;IAAiB,SAAA;IAAmB,IAAA;EAAA;EACpC,QAAA,GAAW,iBAAA;EACX,iBAAA,GAAoB,kBAAkB;AAAA;AAAA,KAG5B,gBAAA;EAHU;;AAAkB;AAGxC;EAKE,OAAA;EAL0B;;;;;;;;;EAe1B,YAAA;IAkDsC;;;IA9CpC,SAAA;IAJF;;;IAQE,IAAA;EAAA;EAK2C;;;EAA7C,UAAA,IAAc,MAAA,EAAQ,sBAAA,CAAuB,CAAA;EAIlC;;;EAAX,OAAA,IAAW,MAAA,EAAQ,oBAAA;EAK6B;;;;EAAhD,QAAA,IAAY,MAAA,EAAQ,sBAAA,CAAuB,CAAA,IAAK,oBAAA;EAcxB;;;;;EARxB,IAAA,GAAO,MAAA;EAsB+B;AAGxC;;;;;;EAjBE,oBAAA,IAAwB,KAAA;EAyCX;;;;;;EAlCb,QAAA,GAAW,iBAAA;EA8BA;;;;AAIE;AAMf;EAjCE,iBAAA,GAAoB,kBAAA;AAAA;AAAA,KAGV,eAAA;EA8BuB;;;EA1BjC,IAAA;EA4BO;;AAAC;EAxBR,OAAA;EA8B8B;;;EA1B9B,KAAA;EA2BA;;;EAvBA,IAAA,GAAO,MAAA;EA2BQ;;;EAvBf,SAAA,EAAW,IAAA;EA2BI;;;EAvBf,OAAA,EAAS,IAAA;AAAA;;;;KAMC,sBAAA,MAA4B,eAAA;EACtC,OAAA;EACA,KAAA,EAAO,CAAC;AAAA;;;;KAME,oBAAA,GAAuB,eAAe;EAChD,OAAA;EACA,KAAA;AAAA;AAAA,UAGe,gBAAA;EAaf;;;EATA,OAAA,CAAQ,KAAA,EAAO,MAAA,SAAe,cAAA,WAAyB,OAAA;AAAA;AAAA,KAG7C,cAAA;EACV,GAAA;EACA,GAAA;EACA,GAAA;EACA,GAAA;EACA,GAAA;EACA,GAAA;EACA,GAAA;EAEA,KAAA,UAWA;EATA,MAAA,UAWW;EATX,SAAA;EACA,WAAA,EAAa,IAAA;EACb,UAAA,EAAY,IAAI;AAAA;AAAA,KAGN,wBAAA;sEAEV,UAAA,WAmBO;EAjBP,QAAA,GAAW,gBAAgB;EAE3B,UAAA;AAAA;AAAA,KAGU,yBAAA;+DAEV,YAAA;;;;;;;;;;EAUA,OAAO;AAAA"}
1
+ {"version":3,"file":"types.d.mts","names":[],"sources":["../../../../../../../core/src/benchmark/types.ts"],"mappings":";;;;;;AAMA;KAAY,uBAAA;EACV,OAAA;EACA,YAAA;IAAiB,SAAA;IAAmB,IAAA;EAAA;EACpC,QAAA,GAAW,iBAAA;EACX,iBAAA,GAAoB,kBAAkB;AAAA;AAAA,KAG5B,gBAAA;EAHU;;AAAkB;AAGxC;EAKE,OAAA;EAL0B;;;;;;;;;EAe1B,YAAA;IAkDsC;;;IA9CpC,SAAA;IAJF;;;IAQE,IAAA;EAAA;EAK2C;;;EAA7C,UAAA,IAAc,MAAA,EAAQ,sBAAA,CAAuB,CAAA;EAIlC;;;EAAX,OAAA,IAAW,MAAA,EAAQ,oBAAA;EAK6B;;;;EAAhD,QAAA,IAAY,MAAA,EAAQ,sBAAA,CAAuB,CAAA,IAAK,oBAAA;EAcxB;;;;;EARxB,IAAA,GAAO,MAAA;EAsB+B;AAGxC;;;;;;EAjBE,oBAAA,IAAwB,KAAA;EAyCX;;;;;;EAlCb,QAAA,GAAW,iBAAA;EA8BA;;;;AAIE;AAMf;EAjCE,iBAAA,GAAoB,kBAAA;AAAA;AAAA,KAGV,eAAA;EA8BuB;;;EA1BjC,IAAA;EA4BO;;AAAC;EAxBR,OAAA;EA8B8B;;;EA1B9B,KAAA;EA2BA;;;EAvBA,IAAA,GAAO,MAAA;EA2BQ;;;EAvBf,SAAA,EAAW,IAAA;EA2BI;;;EAvBf,OAAA,EAAS,IAAA;AAAA;;;;KAMC,sBAAA,MAA4B,eAAA;EACtC,OAAA;EACA,KAAA,EAAO,CAAC;AAAA;;;;KAME,oBAAA,GAAuB,eAAe;EAChD,OAAA;EACA,KAAA;AAAA;AAAA,UAGe,gBAAA;EAaf;;;EATA,OAAA,CAAQ,KAAA,EAAO,MAAA,SAAe,cAAA,WAAyB,OAAA;AAAA;AAAA,KAG7C,cAAA;EACV,GAAA;EACA,GAAA;EACA,GAAA;EACA,GAAA;EACA,GAAA;EACA,GAAA;EACA,GAAA;EAEA,KAAA,UAWA;EATA,MAAA,UAWW;EATX,SAAA;EACA,WAAA,EAAa,IAAA;EACb,UAAA,EAAY,IAAI;AAAA;AAAA,KAGN,wBAAA;sEAEV,UAAA,WAmBO;EAjBP,QAAA,GAAW,gBAAgB;EAE3B,UAAA;AAAA;AAAA,KAGU,yBAAA;+DAEV,YAAA;;;;;;;;;;EAUA,OAAO;AAAA"}
@@ -1,4 +1,4 @@
1
- //#region core/src/bootstrap/setup.d.ts
1
+ //#region ../core/src/bootstrap/setup.d.ts
2
2
  declare function displayEnvironmentMode(): void;
3
3
  //#endregion
4
4
  export { displayEnvironmentMode };
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.mts","names":[],"sources":["C:/Work/Warlock.js/core/src/bootstrap/setup.ts"],"mappings":";iBAGgB,sBAAA,CAAA"}
1
+ {"version":3,"file":"setup.d.mts","names":[],"sources":["../../../../../../../core/src/bootstrap/setup.ts"],"mappings":";iBAGgB,sBAAA,CAAA"}
@@ -2,7 +2,7 @@ import { environment } from "../utils/environment.mjs";
2
2
  import "../utils/index.mjs";
3
3
  import { colors } from "@mongez/copper";
4
4
 
5
- //#region core/src/bootstrap/setup.ts
5
+ //#region ../core/src/bootstrap/setup.ts
6
6
  function displayEnvironmentMode() {
7
7
  const env = environment();
8
8
  const envColor = (env) => {
@@ -1 +1 @@
1
- {"version":3,"file":"setup.mjs","names":[],"sources":["C:/Work/Warlock.js/core/src/bootstrap/setup.ts"],"sourcesContent":["import { colors } from \"@mongez/copper\";\nimport { environment } from \"../utils\";\n\nexport function displayEnvironmentMode() {\n const env = environment();\n\n const envColor = (env: string) => {\n switch (env) {\n case \"development\":\n return colors.yellow(env);\n case \"production\":\n return colors.green(env);\n case \"test\":\n return colors.magentaBright(env);\n }\n };\n\n console.log(\n colors.blueBright(\"ℹ\"),\n colors.yellow(`(${new Date().toISOString()})`),\n colors.orange(\"[warlock]\"),\n colors.magenta(`bootstrap`),\n colors.blueBright(`Starting application in ${envColor(env)} mode`),\n );\n}\n"],"mappings":";;;;;AAGA,SAAgB,yBAAyB;CACvC,MAAM,MAAM,YAAY;CAExB,MAAM,YAAY,QAAgB;EAChC,QAAQ,KAAR;GACE,KAAK,eACH,OAAO,OAAO,OAAO,GAAG;GAC1B,KAAK,cACH,OAAO,OAAO,MAAM,GAAG;GACzB,KAAK,QACH,OAAO,OAAO,cAAc,GAAG;EACnC;CACF;CAEA,QAAQ,IACN,OAAO,WAAW,GAAG,GACrB,OAAO,OAAO,qBAAI,IAAI,KAAK,GAAE,YAAY,EAAE,EAAE,GAC7C,OAAO,OAAO,WAAW,GACzB,OAAO,QAAQ,WAAW,GAC1B,OAAO,WAAW,2BAA2B,SAAS,GAAG,EAAE,MAAM,CACnE;AACF"}
1
+ {"version":3,"file":"setup.mjs","names":[],"sources":["../../../../../../../core/src/bootstrap/setup.ts"],"sourcesContent":["import { colors } from \"@mongez/copper\";\nimport { environment } from \"../utils\";\n\nexport function displayEnvironmentMode() {\n const env = environment();\n\n const envColor = (env: string) => {\n switch (env) {\n case \"development\":\n return colors.yellow(env);\n case \"production\":\n return colors.green(env);\n case \"test\":\n return colors.magentaBright(env);\n }\n };\n\n console.log(\n colors.blueBright(\"ℹ\"),\n colors.yellow(`(${new Date().toISOString()})`),\n colors.orange(\"[warlock]\"),\n colors.magenta(`bootstrap`),\n colors.blueBright(`Starting application in ${envColor(env)} mode`),\n );\n}\n"],"mappings":";;;;;AAGA,SAAgB,yBAAyB;CACvC,MAAM,MAAM,YAAY;CAExB,MAAM,YAAY,QAAgB;EAChC,QAAQ,KAAR;GACE,KAAK,eACH,OAAO,OAAO,OAAO,GAAG;GAC1B,KAAK,cACH,OAAO,OAAO,MAAM,GAAG;GACzB,KAAK,QACH,OAAO,OAAO,cAAc,GAAG;EACnC;CACF;CAEA,QAAQ,IACN,OAAO,WAAW,GAAG,GACrB,OAAO,OAAO,qBAAI,IAAI,KAAK,GAAE,YAAY,EAAE,EAAE,GAC7C,OAAO,OAAO,WAAW,GACzB,OAAO,QAAQ,WAAW,GAC1B,OAAO,WAAW,2BAA2B,SAAS,GAAG,EAAE,MAAM,CACnE;AACF"}
@@ -1,4 +1,4 @@
1
- //#region core/src/bootstrap.d.ts
1
+ //#region ../core/src/bootstrap.d.ts
2
2
  declare function bootstrap(): Promise<void>;
3
3
  //#endregion
4
4
  export { bootstrap };
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.d.mts","names":[],"sources":["C:/Work/Warlock.js/core/src/bootstrap.ts"],"mappings":";iBAKsB,SAAA,CAAA,GAAS,OAAA"}
1
+ {"version":3,"file":"bootstrap.d.mts","names":[],"sources":["../../../../../../core/src/bootstrap.ts"],"mappings":";iBAKsB,SAAA,CAAA,GAAS,OAAA"}
package/esm/bootstrap.mjs CHANGED
@@ -4,7 +4,7 @@ import { loadEnvironmentFiles } from "./utils/load-environment.mjs";
4
4
  import { captureAnyUnhandledRejection } from "@warlock.js/logger";
5
5
  import { initializeDayjs } from "@mongez/time-wizard";
6
6
 
7
- //#region core/src/bootstrap.ts
7
+ //#region ../core/src/bootstrap.ts
8
8
  async function bootstrap() {
9
9
  await loadEnvironmentFiles();
10
10
  initializeDayjs();
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.mjs","names":[],"sources":["C:/Work/Warlock.js/core/src/bootstrap.ts"],"sourcesContent":["import { initializeDayjs } from \"@mongez/time-wizard\";\nimport { captureAnyUnhandledRejection } from \"@warlock.js/logger\";\nimport { Application } from \"./application\";\nimport { loadEnvironmentFiles } from \"./utils/load-environment\";\n\nexport async function bootstrap() {\n // Guarded: a project with no `.env` is legitimate, and a raw `loadEnv()`\n // throws on one. See `loadEnvironmentFiles`.\n await loadEnvironmentFiles();\n\n initializeDayjs();\n\n // In production a fatal `uncaughtException` must take the process down loudly\n // (Node's own default) so supervisors restart and `warlock start` surfaces\n // the failure instead of exiting 0 in silence. In development the dev server\n // intentionally survives runtime errors so HMR can recover, so we only log.\n captureAnyUnhandledRejection({ exitOnUncaughtException: Application.isProduction });\n}\n"],"mappings":";;;;;;;AAKA,eAAsB,YAAY;CAGhC,MAAM,qBAAqB;CAE3B,gBAAgB;CAMhB,6BAA6B,EAAE,yBAAyB,YAAY,aAAa,CAAC;AACpF"}
1
+ {"version":3,"file":"bootstrap.mjs","names":[],"sources":["../../../../../../core/src/bootstrap.ts"],"sourcesContent":["import { initializeDayjs } from \"@mongez/time-wizard\";\nimport { captureAnyUnhandledRejection } from \"@warlock.js/logger\";\nimport { Application } from \"./application\";\nimport { loadEnvironmentFiles } from \"./utils/load-environment\";\n\nexport async function bootstrap() {\n // Guarded: a project with no `.env` is legitimate, and a raw `loadEnv()`\n // throws on one. See `loadEnvironmentFiles`.\n await loadEnvironmentFiles();\n\n initializeDayjs();\n\n // In production a fatal `uncaughtException` must take the process down loudly\n // (Node's own default) so supervisors restart and `warlock start` surfaces\n // the failure instead of exiting 0 in silence. In development the dev server\n // intentionally survives runtime errors so HMR can recover, so we only log.\n captureAnyUnhandledRejection({ exitOnUncaughtException: Application.isProduction });\n}\n"],"mappings":";;;;;;;AAKA,eAAsB,YAAY;CAGhC,MAAM,qBAAqB;CAE3B,gBAAgB;CAMhB,6BAA6B,EAAE,yBAAyB,YAAY,aAAa,CAAC;AACpF"}
@@ -1,7 +1,7 @@
1
1
  import { Model } from "@warlock.js/cascade";
2
2
  import { BaseCacheDriver, CacheDriver, CacheKey } from "@warlock.js/cache";
3
3
 
4
- //#region core/src/cache/database-cache-driver.d.ts
4
+ //#region ../core/src/cache/database-cache-driver.d.ts
5
5
  type DatabaseCacheOptions = {
6
6
  /**
7
7
  * Database model class
@@ -1 +1 @@
1
- {"version":3,"file":"database-cache-driver.d.mts","names":[],"sources":["C:/Work/Warlock.js/core/src/cache/database-cache-driver.ts"],"mappings":";;;;KAQY,oBAAA;;AAAZ;;EAIE,KAAA,UAAe,UAAU;EAAA;;;EAIzB,YAAA;EAMA;;AAAG;AAGL;;EAHE,GAAA;AAAA;AAAA,cAGW,UAAA,SAAmB,KAAK;EAAA,OACrB,KAAK;AAAA;AAAA,cAGR,mBAAA,SACH,eAAA,CAAgB,mBAAA,EAAqB,oBAAA,aAClC,WAAA,CAAY,mBAAA,EAAqB,oBAAA;EADpB;;;EAMjB,IAAA;EAKe;;;EAAf,KAAA,SAAe,UAAA;EAiCkC;;;EA5BjD,UAAA,CAAW,OAAA,EAAS,oBAAA;EAgGM;;;EArFpB,eAAA,CAAgB,SAAA,WAAiB,OAAA;EA1BxB;;;EA2CT,GAAA,CAAI,GAAA,EAAK,QAAA,EAAU,KAAA,OAAY,GAAA,YAAY,OAAA;EA5CX;;;EAsFhC,GAAA,CAAI,GAAA,EAAK,QAAA,GAAQ,OAAA;EAhFvB;;;EA0GM,MAAA,CAAO,GAAA,EAAK,QAAA,GAAQ,OAAA;EAhGN;;;EA+Gd,KAAA,CAAA,GAAK,OAAA;AAAA"}
1
+ {"version":3,"file":"database-cache-driver.d.mts","names":[],"sources":["../../../../../../../core/src/cache/database-cache-driver.ts"],"mappings":";;;;KAQY,oBAAA;;AAAZ;;EAIE,KAAA,UAAe,UAAU;EAAA;;;EAIzB,YAAA;EAMA;;AAAG;AAGL;;EAHE,GAAA;AAAA;AAAA,cAGW,UAAA,SAAmB,KAAK;EAAA,OACrB,KAAK;AAAA;AAAA,cAGR,mBAAA,SACH,eAAA,CAAgB,mBAAA,EAAqB,oBAAA,aAClC,WAAA,CAAY,mBAAA,EAAqB,oBAAA;EADpB;;;EAMjB,IAAA;EAKe;;;EAAf,KAAA,SAAe,UAAA;EAiCkC;;;EA5BjD,UAAA,CAAW,OAAA,EAAS,oBAAA;EAgGM;;;EArFpB,eAAA,CAAgB,SAAA,WAAiB,OAAA;EA1BxB;;;EA2CT,GAAA,CAAI,GAAA,EAAK,QAAA,EAAU,KAAA,OAAY,GAAA,YAAY,OAAA;EA5CX;;;EAsFhC,GAAA,CAAI,GAAA,EAAK,QAAA,GAAQ,OAAA;EAhFvB;;;EA0GM,MAAA,CAAO,GAAA,EAAK,QAAA,GAAQ,OAAA;EAhGN;;;EA+Gd,KAAA,CAAA,GAAK,OAAA;AAAA"}
@@ -1,7 +1,7 @@
1
1
  import { Model } from "@warlock.js/cascade";
2
2
  import { BaseCacheDriver } from "@warlock.js/cache";
3
3
 
4
- //#region core/src/cache/database-cache-driver.ts
4
+ //#region ../core/src/cache/database-cache-driver.ts
5
5
  var CacheModel = class extends Model {
6
6
  static {
7
7
  this.table = "cache";