@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
@@ -1 +1 @@
1
- {"version":3,"file":"use-cases-registry.mjs","names":[],"sources":["C:/Work/Warlock.js/core/src/use-cases/use-cases-registry.ts"],"sourcesContent":["import { cache } from \"@warlock.js/cache\";\nimport { log } from \"@warlock.js/logger\";\nimport { config } from \"../config\";\nimport { type RegisteredUseCase, type UseCaseConfigurations, type UseCaseResult } from \"./types\";\n\n/**\n * Store registered use cases\n */\nconst useCaseRegister = new Map<string, RegisteredUseCase>();\n\n/**\n * Register a use case\n */\nexport function $registerUseCase<Output, Input>(\n name: string,\n useCase: RegisteredUseCase<Output, Input>,\n) {\n if (useCaseRegister.has(name) && process.env.NODE_ENV !== \"production\") {\n log.warn(\n \"use-cases\",\n \"registering\",\n `Use case \"${name}\" is already registered. Overwriting.`,\n );\n }\n\n useCaseRegister.set(name, useCase);\n}\n\n/**\n * Unregister a use case.\n *\n * Dropping the history namespace is best-effort: `$cleanup` is synchronous, so the\n * async cache removal is fire-and-forget with a `.catch` guard — a rejecting cache\n * driver must never turn cleanup into an unhandled rejection.\n */\nexport function $unregisterUseCase(name: string) {\n useCaseRegister.delete(name);\n\n Promise.resolve(cache.removeNamespace(`use-case:history:${name}`)).catch((error) => {\n log.error(\"use-cases\", name, \"history namespace removal failed\", { error });\n });\n}\n\n/**\n * Get a use case.\n *\n * Returns the `RegisteredUseCase` shape — including the runtime `calls` counters\n * the registry actually stores — so consumers can read call stats without an\n * ad-hoc cast.\n */\nexport function getUseCase<Output, Input>(name: string) {\n return useCaseRegister.get(name) as RegisteredUseCase<Output, Input> | undefined;\n}\n\n/**\n * Get all use cases\n */\nexport function getUseCases() {\n return useCaseRegister;\n}\n\n/**\n * Increase use case success calls\n */\nexport function increaseUseCaseSuccessCalls(name: string): number {\n const useCase = useCaseRegister.get(name);\n if (useCase) {\n useCase.calls.success++;\n useCase.calls.total++;\n\n return useCase.calls.success;\n }\n\n return 0;\n}\n\n/**\n * Increase use case failed calls\n */\nexport function increaseUseCaseFailedCalls(name: string): number {\n const useCase = useCaseRegister.get(name);\n if (useCase) {\n useCase.calls.failed++;\n useCase.calls.total++;\n\n return useCase.calls.failed;\n }\n\n return 0;\n}\n\n/**\n * Resolve the history cache TTL (seconds) from config.\n * `false` means \"use the cache driver's default\", represented as `undefined`.\n */\nfunction resolveHistoryTtl(useCaseConfig?: UseCaseConfigurations): number | undefined {\n const ttlConfig = useCaseConfig?.history?.ttl ?? 3600; // 1 hour default\n\n return ttlConfig === false ? undefined : ttlConfig;\n}\n\n/**\n * Get use case history from cache.\n *\n * Prunes ids whose entries have expired so the list can't accumulate dead refs.\n */\nexport async function getUseCaseHistory(name: string): Promise<UseCaseResult<any>[]> {\n const listKey = `use-case:history:${name}:list`;\n const ids = (await cache.get<string[]>(listKey)) || [];\n\n const entries = await Promise.all(\n ids.map(async (id: string) => ({\n id,\n result: await cache.get<UseCaseResult<any>>(`use-case:history:${name}:${id}`),\n })),\n );\n\n const liveEntries = entries.filter((entry) => Boolean(entry.result));\n\n if (liveEntries.length !== ids.length) {\n const useCaseConfig = config.get<UseCaseConfigurations>(\"use-cases\");\n\n await cache.set(\n listKey,\n liveEntries.map((entry) => entry.id),\n resolveHistoryTtl(useCaseConfig),\n );\n }\n\n return liveEntries.map((entry) => entry.result) as UseCaseResult<any>[];\n}\n\n/**\n * Add use case history to cache, capping the per-use-case list so it can't grow\n * unbounded — oldest entries (and their ids) are evicted past MAX_HISTORY_ENTRIES.\n */\nexport async function addUseCaseHistory(name: string, result: UseCaseResult<any>) {\n const useCaseConfig = config.get<UseCaseConfigurations>(\"use-cases\");\n\n if (useCaseConfig?.history?.enabled === false) return;\n\n const ttl = resolveHistoryTtl(useCaseConfig);\n const maxEntries = useCaseConfig?.history?.maxEntries ?? 100;\n const key = `use-case:history:${name}:${result.id}`;\n const listKey = `use-case:history:${name}:list`;\n\n await cache.set(key, result, ttl);\n\n const list = (await cache.get<string[]>(listKey)) || [];\n\n list.push(result.id);\n\n while (list.length > maxEntries) {\n const evictedId = list.shift();\n\n if (evictedId) {\n await cache.remove(`use-case:history:${name}:${evictedId}`);\n }\n }\n\n await cache.set(listKey, list, ttl);\n}\n"],"mappings":";;;;;;;;;AAQA,MAAM,kCAAkB,IAAI,IAA+B;;;;AAK3D,SAAgB,iBACd,MACA,SACA;CACA,IAAI,gBAAgB,IAAI,IAAI,KAAK,QAAQ,IAAI,aAAa,cACxD,IAAI,KACF,aACA,eACA,aAAa,KAAK,sCACpB;CAGF,gBAAgB,IAAI,MAAM,OAAO;AACnC;;;;;;;;AASA,SAAgB,mBAAmB,MAAc;CAC/C,gBAAgB,OAAO,IAAI;CAE3B,QAAQ,QAAQ,MAAM,gBAAgB,oBAAoB,MAAM,CAAC,EAAE,OAAO,UAAU;EAClF,IAAI,MAAM,aAAa,MAAM,oCAAoC,EAAE,MAAM,CAAC;CAC5E,CAAC;AACH;;;;;;;;AASA,SAAgB,WAA0B,MAAc;CACtD,OAAO,gBAAgB,IAAI,IAAI;AACjC;;;;AAKA,SAAgB,cAAc;CAC5B,OAAO;AACT;;;;AAKA,SAAgB,4BAA4B,MAAsB;CAChE,MAAM,UAAU,gBAAgB,IAAI,IAAI;CACxC,IAAI,SAAS;EACX,QAAQ,MAAM;EACd,QAAQ,MAAM;EAEd,OAAO,QAAQ,MAAM;CACvB;CAEA,OAAO;AACT;;;;AAKA,SAAgB,2BAA2B,MAAsB;CAC/D,MAAM,UAAU,gBAAgB,IAAI,IAAI;CACxC,IAAI,SAAS;EACX,QAAQ,MAAM;EACd,QAAQ,MAAM;EAEd,OAAO,QAAQ,MAAM;CACvB;CAEA,OAAO;AACT;;;;;AAMA,SAAS,kBAAkB,eAA2D;CACpF,MAAM,YAAY,eAAe,SAAS,OAAO;CAEjD,OAAO,cAAc,QAAQ,SAAY;AAC3C;;;;;;AAOA,eAAsB,kBAAkB,MAA6C;CACnF,MAAM,UAAU,oBAAoB,KAAK;CACzC,MAAM,MAAO,MAAM,MAAM,IAAc,OAAO,KAAM,CAAC;CASrD,MAAM,eAAc,MAPE,QAAQ,IAC5B,IAAI,IAAI,OAAO,QAAgB;EAC7B;EACA,QAAQ,MAAM,MAAM,IAAwB,oBAAoB,KAAK,GAAG,IAAI;CAC9E,EAAE,CACJ,GAE4B,QAAQ,UAAU,QAAQ,MAAM,MAAM,CAAC;CAEnE,IAAI,YAAY,WAAW,IAAI,QAAQ;EACrC,MAAM,gBAAgB,OAAO,IAA2B,WAAW;EAEnE,MAAM,MAAM,IACV,SACA,YAAY,KAAK,UAAU,MAAM,EAAE,GACnC,kBAAkB,aAAa,CACjC;CACF;CAEA,OAAO,YAAY,KAAK,UAAU,MAAM,MAAM;AAChD;;;;;AAMA,eAAsB,kBAAkB,MAAc,QAA4B;CAChF,MAAM,gBAAgB,OAAO,IAA2B,WAAW;CAEnE,IAAI,eAAe,SAAS,YAAY,OAAO;CAE/C,MAAM,MAAM,kBAAkB,aAAa;CAC3C,MAAM,aAAa,eAAe,SAAS,cAAc;CACzD,MAAM,MAAM,oBAAoB,KAAK,GAAG,OAAO;CAC/C,MAAM,UAAU,oBAAoB,KAAK;CAEzC,MAAM,MAAM,IAAI,KAAK,QAAQ,GAAG;CAEhC,MAAM,OAAQ,MAAM,MAAM,IAAc,OAAO,KAAM,CAAC;CAEtD,KAAK,KAAK,OAAO,EAAE;CAEnB,OAAO,KAAK,SAAS,YAAY;EAC/B,MAAM,YAAY,KAAK,MAAM;EAE7B,IAAI,WACF,MAAM,MAAM,OAAO,oBAAoB,KAAK,GAAG,WAAW;CAE9D;CAEA,MAAM,MAAM,IAAI,SAAS,MAAM,GAAG;AACpC"}
1
+ {"version":3,"file":"use-cases-registry.mjs","names":[],"sources":["../../../../../../../core/src/use-cases/use-cases-registry.ts"],"sourcesContent":["import { cache } from \"@warlock.js/cache\";\nimport { log } from \"@warlock.js/logger\";\nimport { config } from \"../config\";\nimport { type RegisteredUseCase, type UseCaseConfigurations, type UseCaseResult } from \"./types\";\n\n/**\n * Store registered use cases\n */\nconst useCaseRegister = new Map<string, RegisteredUseCase>();\n\n/**\n * Register a use case\n */\nexport function $registerUseCase<Output, Input>(\n name: string,\n useCase: RegisteredUseCase<Output, Input>,\n) {\n if (useCaseRegister.has(name) && process.env.NODE_ENV !== \"production\") {\n log.warn(\n \"use-cases\",\n \"registering\",\n `Use case \"${name}\" is already registered. Overwriting.`,\n );\n }\n\n useCaseRegister.set(name, useCase);\n}\n\n/**\n * Unregister a use case.\n *\n * Dropping the history namespace is best-effort: `$cleanup` is synchronous, so the\n * async cache removal is fire-and-forget with a `.catch` guard — a rejecting cache\n * driver must never turn cleanup into an unhandled rejection.\n */\nexport function $unregisterUseCase(name: string) {\n useCaseRegister.delete(name);\n\n Promise.resolve(cache.removeNamespace(`use-case:history:${name}`)).catch((error) => {\n log.error(\"use-cases\", name, \"history namespace removal failed\", { error });\n });\n}\n\n/**\n * Get a use case.\n *\n * Returns the `RegisteredUseCase` shape — including the runtime `calls` counters\n * the registry actually stores — so consumers can read call stats without an\n * ad-hoc cast.\n */\nexport function getUseCase<Output, Input>(name: string) {\n return useCaseRegister.get(name) as RegisteredUseCase<Output, Input> | undefined;\n}\n\n/**\n * Get all use cases\n */\nexport function getUseCases() {\n return useCaseRegister;\n}\n\n/**\n * Increase use case success calls\n */\nexport function increaseUseCaseSuccessCalls(name: string): number {\n const useCase = useCaseRegister.get(name);\n if (useCase) {\n useCase.calls.success++;\n useCase.calls.total++;\n\n return useCase.calls.success;\n }\n\n return 0;\n}\n\n/**\n * Increase use case failed calls\n */\nexport function increaseUseCaseFailedCalls(name: string): number {\n const useCase = useCaseRegister.get(name);\n if (useCase) {\n useCase.calls.failed++;\n useCase.calls.total++;\n\n return useCase.calls.failed;\n }\n\n return 0;\n}\n\n/**\n * Resolve the history cache TTL (seconds) from config.\n * `false` means \"use the cache driver's default\", represented as `undefined`.\n */\nfunction resolveHistoryTtl(useCaseConfig?: UseCaseConfigurations): number | undefined {\n const ttlConfig = useCaseConfig?.history?.ttl ?? 3600; // 1 hour default\n\n return ttlConfig === false ? undefined : ttlConfig;\n}\n\n/**\n * Get use case history from cache.\n *\n * Prunes ids whose entries have expired so the list can't accumulate dead refs.\n */\nexport async function getUseCaseHistory(name: string): Promise<UseCaseResult<any>[]> {\n const listKey = `use-case:history:${name}:list`;\n const ids = (await cache.get<string[]>(listKey)) || [];\n\n const entries = await Promise.all(\n ids.map(async (id: string) => ({\n id,\n result: await cache.get<UseCaseResult<any>>(`use-case:history:${name}:${id}`),\n })),\n );\n\n const liveEntries = entries.filter((entry) => Boolean(entry.result));\n\n if (liveEntries.length !== ids.length) {\n const useCaseConfig = config.get<UseCaseConfigurations>(\"use-cases\");\n\n await cache.set(\n listKey,\n liveEntries.map((entry) => entry.id),\n resolveHistoryTtl(useCaseConfig),\n );\n }\n\n return liveEntries.map((entry) => entry.result) as UseCaseResult<any>[];\n}\n\n/**\n * Add use case history to cache, capping the per-use-case list so it can't grow\n * unbounded — oldest entries (and their ids) are evicted past MAX_HISTORY_ENTRIES.\n */\nexport async function addUseCaseHistory(name: string, result: UseCaseResult<any>) {\n const useCaseConfig = config.get<UseCaseConfigurations>(\"use-cases\");\n\n if (useCaseConfig?.history?.enabled === false) return;\n\n const ttl = resolveHistoryTtl(useCaseConfig);\n const maxEntries = useCaseConfig?.history?.maxEntries ?? 100;\n const key = `use-case:history:${name}:${result.id}`;\n const listKey = `use-case:history:${name}:list`;\n\n await cache.set(key, result, ttl);\n\n const list = (await cache.get<string[]>(listKey)) || [];\n\n list.push(result.id);\n\n while (list.length > maxEntries) {\n const evictedId = list.shift();\n\n if (evictedId) {\n await cache.remove(`use-case:history:${name}:${evictedId}`);\n }\n }\n\n await cache.set(listKey, list, ttl);\n}\n"],"mappings":";;;;;;;;;AAQA,MAAM,kCAAkB,IAAI,IAA+B;;;;AAK3D,SAAgB,iBACd,MACA,SACA;CACA,IAAI,gBAAgB,IAAI,IAAI,KAAK,QAAQ,IAAI,aAAa,cACxD,IAAI,KACF,aACA,eACA,aAAa,KAAK,sCACpB;CAGF,gBAAgB,IAAI,MAAM,OAAO;AACnC;;;;;;;;AASA,SAAgB,mBAAmB,MAAc;CAC/C,gBAAgB,OAAO,IAAI;CAE3B,QAAQ,QAAQ,MAAM,gBAAgB,oBAAoB,MAAM,CAAC,EAAE,OAAO,UAAU;EAClF,IAAI,MAAM,aAAa,MAAM,oCAAoC,EAAE,MAAM,CAAC;CAC5E,CAAC;AACH;;;;;;;;AASA,SAAgB,WAA0B,MAAc;CACtD,OAAO,gBAAgB,IAAI,IAAI;AACjC;;;;AAKA,SAAgB,cAAc;CAC5B,OAAO;AACT;;;;AAKA,SAAgB,4BAA4B,MAAsB;CAChE,MAAM,UAAU,gBAAgB,IAAI,IAAI;CACxC,IAAI,SAAS;EACX,QAAQ,MAAM;EACd,QAAQ,MAAM;EAEd,OAAO,QAAQ,MAAM;CACvB;CAEA,OAAO;AACT;;;;AAKA,SAAgB,2BAA2B,MAAsB;CAC/D,MAAM,UAAU,gBAAgB,IAAI,IAAI;CACxC,IAAI,SAAS;EACX,QAAQ,MAAM;EACd,QAAQ,MAAM;EAEd,OAAO,QAAQ,MAAM;CACvB;CAEA,OAAO;AACT;;;;;AAMA,SAAS,kBAAkB,eAA2D;CACpF,MAAM,YAAY,eAAe,SAAS,OAAO;CAEjD,OAAO,cAAc,QAAQ,SAAY;AAC3C;;;;;;AAOA,eAAsB,kBAAkB,MAA6C;CACnF,MAAM,UAAU,oBAAoB,KAAK;CACzC,MAAM,MAAO,MAAM,MAAM,IAAc,OAAO,KAAM,CAAC;CASrD,MAAM,eAAc,MAPE,QAAQ,IAC5B,IAAI,IAAI,OAAO,QAAgB;EAC7B;EACA,QAAQ,MAAM,MAAM,IAAwB,oBAAoB,KAAK,GAAG,IAAI;CAC9E,EAAE,CACJ,GAE4B,QAAQ,UAAU,QAAQ,MAAM,MAAM,CAAC;CAEnE,IAAI,YAAY,WAAW,IAAI,QAAQ;EACrC,MAAM,gBAAgB,OAAO,IAA2B,WAAW;EAEnE,MAAM,MAAM,IACV,SACA,YAAY,KAAK,UAAU,MAAM,EAAE,GACnC,kBAAkB,aAAa,CACjC;CACF;CAEA,OAAO,YAAY,KAAK,UAAU,MAAM,MAAM;AAChD;;;;;AAMA,eAAsB,kBAAkB,MAAc,QAA4B;CAChF,MAAM,gBAAgB,OAAO,IAA2B,WAAW;CAEnE,IAAI,eAAe,SAAS,YAAY,OAAO;CAE/C,MAAM,MAAM,kBAAkB,aAAa;CAC3C,MAAM,aAAa,eAAe,SAAS,cAAc;CACzD,MAAM,MAAM,oBAAoB,KAAK,GAAG,OAAO;CAC/C,MAAM,UAAU,oBAAoB,KAAK;CAEzC,MAAM,MAAM,IAAI,KAAK,QAAQ,GAAG;CAEhC,MAAM,OAAQ,MAAM,MAAM,IAAc,OAAO,KAAM,CAAC;CAEtD,KAAK,KAAK,OAAO,EAAE;CAEnB,OAAO,KAAK,SAAS,YAAY;EAC/B,MAAM,YAAY,KAAK,MAAM;EAE7B,IAAI,WACF,MAAM,MAAM,OAAO,oBAAoB,KAAK,GAAG,WAAW;CAE9D;CAEA,MAAM,MAAM,IAAI,SAAS,MAAM,GAAG;AACpC"}
@@ -1,4 +1,4 @@
1
- //#region core/src/utils/app-log.d.ts
1
+ //#region ../core/src/utils/app-log.d.ts
2
2
  declare const appLog: {
3
3
  info: (module: string, message: string) => Promise<import("@warlock.js/logger").Logger>;
4
4
  error: (module: string, message: string) => Promise<import("@warlock.js/logger").Logger>;
@@ -1 +1 @@
1
- {"version":3,"file":"app-log.d.mts","names":[],"sources":["C:/Work/Warlock.js/core/src/utils/app-log.ts"],"mappings":";cAEa,MAAA;yBACU,OAAA,aAAiB,OAAA,8BAAA,MAAA;0BAChB,OAAA,aAAiB,OAAA,8BAAA,MAAA;yBAClB,OAAA,aAAiB,OAAA,8BAAA,MAAA;0BAChB,OAAA,aAAiB,OAAA,8BAAA,MAAA;4BACf,OAAA,aAAiB,OAAA,8BAAA,MAAA;AAAA"}
1
+ {"version":3,"file":"app-log.d.mts","names":[],"sources":["../../../../../../../core/src/utils/app-log.ts"],"mappings":";cAEa,MAAA;yBACU,OAAA,aAAiB,OAAA,8BAAA,MAAA;0BAChB,OAAA,aAAiB,OAAA,8BAAA,MAAA;yBAClB,OAAA,aAAiB,OAAA,8BAAA,MAAA;0BAChB,OAAA,aAAiB,OAAA,8BAAA,MAAA;4BACf,OAAA,aAAiB,OAAA,8BAAA,MAAA;AAAA"}
@@ -1,6 +1,6 @@
1
1
  import { log } from "@warlock.js/logger";
2
2
 
3
- //#region core/src/utils/app-log.ts
3
+ //#region ../core/src/utils/app-log.ts
4
4
  const appLog = {
5
5
  info: (module, message) => log.info("app", module, message),
6
6
  error: (module, message) => log.error("app", module, message),
@@ -1 +1 @@
1
- {"version":3,"file":"app-log.mjs","names":[],"sources":["C:/Work/Warlock.js/core/src/utils/app-log.ts"],"sourcesContent":["import { log } from \"@warlock.js/logger\";\n\nexport const appLog = {\n info: (module: string, message: string) => log.info(\"app\", module, message),\n error: (module: string, message: string) => log.error(\"app\", module, message),\n warn: (module: string, message: string) => log.warn(\"app\", module, message),\n debug: (module: string, message: string) => log.debug(\"app\", module, message),\n success: (module: string, message: string) =>\n log.success(\"app\", module, message),\n};\n"],"mappings":";;;AAEA,MAAa,SAAS;CACpB,OAAO,QAAgB,YAAoB,IAAI,KAAK,OAAO,QAAQ,OAAO;CAC1E,QAAQ,QAAgB,YAAoB,IAAI,MAAM,OAAO,QAAQ,OAAO;CAC5E,OAAO,QAAgB,YAAoB,IAAI,KAAK,OAAO,QAAQ,OAAO;CAC1E,QAAQ,QAAgB,YAAoB,IAAI,MAAM,OAAO,QAAQ,OAAO;CAC5E,UAAU,QAAgB,YACxB,IAAI,QAAQ,OAAO,QAAQ,OAAO;AACtC"}
1
+ {"version":3,"file":"app-log.mjs","names":[],"sources":["../../../../../../../core/src/utils/app-log.ts"],"sourcesContent":["import { log } from \"@warlock.js/logger\";\n\nexport const appLog = {\n info: (module: string, message: string) => log.info(\"app\", module, message),\n error: (module: string, message: string) => log.error(\"app\", module, message),\n warn: (module: string, message: string) => log.warn(\"app\", module, message),\n debug: (module: string, message: string) => log.debug(\"app\", module, message),\n success: (module: string, message: string) =>\n log.success(\"app\", module, message),\n};\n"],"mappings":";;;AAEA,MAAa,SAAS;CACpB,OAAO,QAAgB,YAAoB,IAAI,KAAK,OAAO,QAAQ,OAAO;CAC1E,QAAQ,QAAgB,YAAoB,IAAI,MAAM,OAAO,QAAQ,OAAO;CAC5E,OAAO,QAAgB,YAAoB,IAAI,KAAK,OAAO,QAAQ,OAAO;CAC1E,QAAQ,QAAgB,YAAoB,IAAI,MAAM,OAAO,QAAQ,OAAO;CAC5E,UAAU,QAAgB,YACxB,IAAI,QAAQ,OAAO,QAAQ,OAAO;AACtC"}
@@ -2,7 +2,7 @@ import { DatabaseLogModel } from "../database/models/database-log/database-log.m
2
2
  import { ChildModel, Model } from "@warlock.js/cascade";
3
3
  import { BasicLogConfigurations, LogChannel, LogContract, LoggingData } from "@warlock.js/logger";
4
4
 
5
- //#region core/src/utils/database-log.d.ts
5
+ //#region ../core/src/utils/database-log.d.ts
6
6
  type DatabaseLogOptions = BasicLogConfigurations & {
7
7
  /**
8
8
  * Model to use for logging
@@ -1 +1 @@
1
- {"version":3,"file":"database-log.d.mts","names":[],"sources":["C:/Work/Warlock.js/core/src/utils/database-log.ts"],"mappings":";;;;;KAKY,kBAAA,GAAqB,sBAAA;;AAAjC;;EAIE,KAAA,UAAe,gBAAgB;AAAA;AAAA,cAGpB,WAAA,SAAoB,UAAA,CAAW,kBAAA,aAA+B,WAAA;EAHzE;;;EAOO,IAAA;EAJI;;;EAAA,IASA,KAAA,CAAA,GAAS,UAAA,CAAW,KAAA;EAAA;;;EAOlB,GAAA,CAAI,GAAA,EAAK,WAAA,GAAW,OAAA;AAAA"}
1
+ {"version":3,"file":"database-log.d.mts","names":[],"sources":["../../../../../../../core/src/utils/database-log.ts"],"mappings":";;;;;KAKY,kBAAA,GAAqB,sBAAA;;AAAjC;;EAIE,KAAA,UAAe,gBAAgB;AAAA;AAAA,cAGpB,WAAA,SAAoB,UAAA,CAAW,kBAAA,aAA+B,WAAA;EAHzE;;;EAOO,IAAA;EAJI;;;EAAA,IASA,KAAA,CAAA,GAAS,UAAA,CAAW,KAAA;EAAA;;;EAOlB,GAAA,CAAI,GAAA,EAAK,WAAA,GAAW,OAAA;AAAA"}
@@ -2,7 +2,7 @@ import { DatabaseLogModel } from "../database/models/database-log/database-log.m
2
2
  import "../database/models/database-log/index.mjs";
3
3
  import { LogChannel } from "@warlock.js/logger";
4
4
 
5
- //#region core/src/utils/database-log.ts
5
+ //#region ../core/src/utils/database-log.ts
6
6
  var DatabaseLog = class extends LogChannel {
7
7
  constructor(..._args) {
8
8
  super(..._args);
@@ -1 +1 @@
1
- {"version":3,"file":"database-log.mjs","names":[],"sources":["C:/Work/Warlock.js/core/src/utils/database-log.ts"],"sourcesContent":["import type { ChildModel, Model } from \"@warlock.js/cascade\";\nimport type { BasicLogConfigurations, LoggingData } from \"@warlock.js/logger\";\nimport { LogChannel, type LogContract, type LogMessage } from \"@warlock.js/logger\";\nimport { DatabaseLogModel } from \"../database/models/database-log\";\n\nexport type DatabaseLogOptions = BasicLogConfigurations & {\n /**\n * Model to use for logging\n */\n model?: typeof DatabaseLogModel;\n};\n\nexport class DatabaseLog extends LogChannel<DatabaseLogOptions> implements LogContract {\n /**\n * {@inheritdoc}\n */\n public name = \"database\";\n\n /**\n * Database model\n */\n public get model(): ChildModel<Model> {\n return this.config(\"model\") ?? DatabaseLogModel;\n }\n\n /**\n * {@inheritdoc}\n */\n public async log(log: LoggingData) {\n const { module, action, message, type: level } = log;\n\n if (!this.model.getDataSource().driver?.isConnected) return;\n\n if (!this.shouldBeLogged(log)) return;\n\n const data: LogMessage = {\n module,\n action,\n content: message,\n level,\n date: new Date().toISOString(),\n };\n\n if (message instanceof Error) {\n data.stack = message.stack;\n data.content = message.message;\n } else {\n data.content = message;\n data.stack = new Error().stack;\n }\n\n try {\n await this.model.create(data);\n } catch (error) {\n console.log(\"Error\", error);\n }\n }\n}\n"],"mappings":";;;;;AAYA,IAAa,cAAb,cAAiC,WAAsD;;;cAIvE;;;;;CAKd,IAAW,QAA2B;EACpC,OAAO,KAAK,OAAO,OAAO,KAAK;CACjC;;;;CAKA,MAAa,IAAI,KAAkB;EACjC,MAAM,EAAE,QAAQ,QAAQ,SAAS,MAAM,UAAU;EAEjD,IAAI,CAAC,KAAK,MAAM,cAAc,EAAE,QAAQ,aAAa;EAErD,IAAI,CAAC,KAAK,eAAe,GAAG,GAAG;EAE/B,MAAM,OAAmB;GACvB;GACA;GACA,SAAS;GACT;GACA,uBAAM,IAAI,KAAK,GAAE,YAAY;EAC/B;EAEA,IAAI,mBAAmB,OAAO;GAC5B,KAAK,QAAQ,QAAQ;GACrB,KAAK,UAAU,QAAQ;EACzB,OAAO;GACL,KAAK,UAAU;GACf,KAAK,yBAAQ,IAAI,MAAM,GAAE;EAC3B;EAEA,IAAI;GACF,MAAM,KAAK,MAAM,OAAO,IAAI;EAC9B,SAAS,OAAO;GACd,QAAQ,IAAI,SAAS,KAAK;EAC5B;CACF;AACF"}
1
+ {"version":3,"file":"database-log.mjs","names":[],"sources":["../../../../../../../core/src/utils/database-log.ts"],"sourcesContent":["import type { ChildModel, Model } from \"@warlock.js/cascade\";\nimport type { BasicLogConfigurations, LoggingData } from \"@warlock.js/logger\";\nimport { LogChannel, type LogContract, type LogMessage } from \"@warlock.js/logger\";\nimport { DatabaseLogModel } from \"../database/models/database-log\";\n\nexport type DatabaseLogOptions = BasicLogConfigurations & {\n /**\n * Model to use for logging\n */\n model?: typeof DatabaseLogModel;\n};\n\nexport class DatabaseLog extends LogChannel<DatabaseLogOptions> implements LogContract {\n /**\n * {@inheritdoc}\n */\n public name = \"database\";\n\n /**\n * Database model\n */\n public get model(): ChildModel<Model> {\n return this.config(\"model\") ?? DatabaseLogModel;\n }\n\n /**\n * {@inheritdoc}\n */\n public async log(log: LoggingData) {\n const { module, action, message, type: level } = log;\n\n if (!this.model.getDataSource().driver?.isConnected) return;\n\n if (!this.shouldBeLogged(log)) return;\n\n const data: LogMessage = {\n module,\n action,\n content: message,\n level,\n date: new Date().toISOString(),\n };\n\n if (message instanceof Error) {\n data.stack = message.stack;\n data.content = message.message;\n } else {\n data.content = message;\n data.stack = new Error().stack;\n }\n\n try {\n await this.model.create(data);\n } catch (error) {\n console.log(\"Error\", error);\n }\n }\n}\n"],"mappings":";;;;;AAYA,IAAa,cAAb,cAAiC,WAAsD;;;cAIvE;;;;;CAKd,IAAW,QAA2B;EACpC,OAAO,KAAK,OAAO,OAAO,KAAK;CACjC;;;;CAKA,MAAa,IAAI,KAAkB;EACjC,MAAM,EAAE,QAAQ,QAAQ,SAAS,MAAM,UAAU;EAEjD,IAAI,CAAC,KAAK,MAAM,cAAc,EAAE,QAAQ,aAAa;EAErD,IAAI,CAAC,KAAK,eAAe,GAAG,GAAG;EAE/B,MAAM,OAAmB;GACvB;GACA;GACA,SAAS;GACT;GACA,uBAAM,IAAI,KAAK,GAAE,YAAY;EAC/B;EAEA,IAAI,mBAAmB,OAAO;GAC5B,KAAK,QAAQ,QAAQ;GACrB,KAAK,UAAU,QAAQ;EACzB,OAAO;GACL,KAAK,UAAU;GACf,KAAK,yBAAQ,IAAI,MAAM,GAAE;EAC3B;EAEA,IAAI;GACF,MAAM,KAAK,MAAM,OAAO,IAAI;EAC9B,SAAS,OAAO;GACd,QAAQ,IAAI,SAAS,KAAK;EAC5B;CACF;AACF"}
@@ -1,4 +1,4 @@
1
- //#region core/src/utils/environment.d.ts
1
+ //#region ../core/src/utils/environment.d.ts
2
2
  type Environment = "development" | "production" | "test";
3
3
  /**
4
4
  * How the framework hosts your code — the dev server (watcher + HMR) or the
@@ -1 +1 @@
1
- {"version":3,"file":"environment.d.mts","names":[],"sources":["C:/Work/Warlock.js/core/src/utils/environment.ts"],"mappings":";KAAY,WAAA;AAAZ;;;;AAAA,KAMY,eAAA;AAAA,iBAEI,WAAA,CAAA,GAAe,WAAW;AAAA,iBAI1B,cAAA,CAAe,GAAgB,EAAX,WAAW"}
1
+ {"version":3,"file":"environment.d.mts","names":[],"sources":["../../../../../../../core/src/utils/environment.ts"],"mappings":";KAAY,WAAA;AAAZ;;;;AAAA,KAMY,eAAA;AAAA,iBAEI,WAAA,CAAA,GAAe,WAAW;AAAA,iBAI1B,cAAA,CAAe,GAAgB,EAAX,WAAW"}
@@ -1,4 +1,4 @@
1
- //#region core/src/utils/environment.ts
1
+ //#region ../core/src/utils/environment.ts
2
2
  function environment() {
3
3
  return process.env.NODE_ENV || "development";
4
4
  }
@@ -1 +1 @@
1
- {"version":3,"file":"environment.mjs","names":[],"sources":["C:/Work/Warlock.js/core/src/utils/environment.ts"],"sourcesContent":["export type Environment = \"development\" | \"production\" | \"test\";\n\n/**\n * How the framework hosts your code — the dev server (watcher + HMR) or the\n * bundled production output. A separate axis from {@link Environment}.\n */\nexport type RuntimeStrategy = \"production\" | \"development\";\n\nexport function environment(): Environment {\n return (process.env.NODE_ENV as Environment) || \"development\";\n}\n\nexport function setEnvironment(env: Environment) {\n process.env.NODE_ENV = env;\n}\n"],"mappings":";AAQA,SAAgB,cAA2B;CACzC,OAAQ,QAAQ,IAAI,YAA4B;AAClD;AAEA,SAAgB,eAAe,KAAkB;CAC/C,QAAQ,IAAI,WAAW;AACzB"}
1
+ {"version":3,"file":"environment.mjs","names":[],"sources":["../../../../../../../core/src/utils/environment.ts"],"sourcesContent":["export type Environment = \"development\" | \"production\" | \"test\";\n\n/**\n * How the framework hosts your code — the dev server (watcher + HMR) or the\n * bundled production output. A separate axis from {@link Environment}.\n */\nexport type RuntimeStrategy = \"production\" | \"development\";\n\nexport function environment(): Environment {\n return (process.env.NODE_ENV as Environment) || \"development\";\n}\n\nexport function setEnvironment(env: Environment) {\n process.env.NODE_ENV = env;\n}\n"],"mappings":";AAQA,SAAgB,cAA2B;CACzC,OAAQ,QAAQ,IAAI,YAA4B;AAClD;AAEA,SAAgB,eAAe,KAAkB;CAC/C,QAAQ,IAAI,WAAW;AACzB"}
@@ -1,7 +1,7 @@
1
1
  import path from "node:path";
2
2
  import { getJsonFileAsync } from "@warlock.js/fs";
3
3
 
4
- //#region core/src/utils/framework-vesion.ts
4
+ //#region ../core/src/utils/framework-vesion.ts
5
5
  /**
6
6
  * Cached version string
7
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"framework-vesion.mjs","names":[],"sources":["C:/Work/Warlock.js/core/src/utils/framework-vesion.ts"],"sourcesContent":["import { getJsonFileAsync } from \"@warlock.js/fs\";\r\nimport path from \"node:path\";\r\n\r\n/**\r\n * Cached version string\r\n */\r\nlet cachedVersion: string | null = null;\r\n\r\n/**\r\n * Get the framework version from package.json (cached)\r\n */\r\nexport async function getWarlockVersion(): Promise<string> {\r\n if (cachedVersion) return cachedVersion;\r\n\r\n const frameworkPackageJson = (await getJsonFileAsync(\r\n path.join(import.meta.dirname, \"./../../package.json\"),\r\n )) as { version: string };\r\n\r\n const version = frameworkPackageJson.version.replace(/\\^|\\~/g, \"\");\r\n cachedVersion = version;\r\n return version;\r\n}\r\n\r\nexport function getFrameworkVersion(): string | null {\r\n return cachedVersion;\r\n}\r\n"],"mappings":";;;;;;;AAMA,IAAI,gBAA+B;;;;AAKnC,eAAsB,oBAAqC;CACzD,IAAI,eAAe,OAAO;CAM1B,MAAM,WAAU,MAJoB,iBAClC,KAAK,KAAK,OAAO,KAAK,SAAS,sBAAsB,CACvD,GAEqC,QAAQ,QAAQ,UAAU,EAAE;CACjE,gBAAgB;CAChB,OAAO;AACT;AAEA,SAAgB,sBAAqC;CACnD,OAAO;AACT"}
1
+ {"version":3,"file":"framework-vesion.mjs","names":[],"sources":["../../../../../../../core/src/utils/framework-vesion.ts"],"sourcesContent":["import { getJsonFileAsync } from \"@warlock.js/fs\";\r\nimport path from \"node:path\";\r\n\r\n/**\r\n * Cached version string\r\n */\r\nlet cachedVersion: string | null = null;\r\n\r\n/**\r\n * Get the framework version from package.json (cached)\r\n */\r\nexport async function getWarlockVersion(): Promise<string> {\r\n if (cachedVersion) return cachedVersion;\r\n\r\n const frameworkPackageJson = (await getJsonFileAsync(\r\n path.join(import.meta.dirname, \"./../../package.json\"),\r\n )) as { version: string };\r\n\r\n const version = frameworkPackageJson.version.replace(/\\^|\\~/g, \"\");\r\n cachedVersion = version;\r\n return version;\r\n}\r\n\r\nexport function getFrameworkVersion(): string | null {\r\n return cachedVersion;\r\n}\r\n"],"mappings":";;;;;;;AAMA,IAAI,gBAA+B;;;;AAKnC,eAAsB,oBAAqC;CACzD,IAAI,eAAe,OAAO;CAM1B,MAAM,WAAU,MAJoB,iBAClC,KAAK,KAAK,OAAO,KAAK,SAAS,sBAAsB,CACvD,GAEqC,QAAQ,QAAQ,UAAU,EAAE;CACjE,gBAAgB;CAChB,OAAO;AACT;AAEA,SAAgB,sBAAqC;CACnD,OAAO;AACT"}
@@ -1,4 +1,4 @@
1
- //#region core/src/utils/get-localized.d.ts
1
+ //#region ../core/src/utils/get-localized.d.ts
2
2
  type LocalizedObject = {
3
3
  localeCode: string;
4
4
  value: any;
@@ -1 +1 @@
1
- {"version":3,"file":"get-localized.d.mts","names":[],"sources":["C:/Work/Warlock.js/core/src/utils/get-localized.ts"],"mappings":";KAEY,eAAA;EACV,UAAA;EACA,KAAK;AAAA;;AAAA;AAOP;;iBAAgB,YAAA,CAAa,MAAA,EAAQ,eAAe,IAAI,UAAA,WAAqB,GAAA"}
1
+ {"version":3,"file":"get-localized.d.mts","names":[],"sources":["../../../../../../../core/src/utils/get-localized.ts"],"mappings":";KAEY,eAAA;EACV,UAAA;EACA,KAAK;AAAA;;AAAA;AAOP;;iBAAgB,YAAA,CAAa,MAAA,EAAQ,eAAe,IAAI,UAAA,WAAqB,GAAA"}
@@ -1,6 +1,6 @@
1
1
  import { useRequestStore } from "../http/context/request-context.mjs";
2
2
 
3
- //#region core/src/utils/get-localized.ts
3
+ //#region ../core/src/utils/get-localized.ts
4
4
  /**
5
5
  * Get localized value based on the given locale code
6
6
  * If the locale code is not given and the function is called within a request context, it will get the current locale code
@@ -1 +1 @@
1
- {"version":3,"file":"get-localized.mjs","names":[],"sources":["C:/Work/Warlock.js/core/src/utils/get-localized.ts"],"sourcesContent":["import { useRequestStore } from \"../http/context/request-context\";\n\nexport type LocalizedObject = {\n localeCode: string;\n value: any;\n};\n\n/**\n * Get localized value based on the given locale code\n * If the locale code is not given and the function is called within a request context, it will get the current locale code\n */\nexport function getLocalized(values: LocalizedObject[], localeCode?: string, key = \"value\") {\n if (!values) return values;\n\n if (!localeCode) {\n localeCode = useRequestStore().request?.getLocaleCode();\n }\n\n if (Array.isArray(values)) {\n return values.find((value) => value.localeCode === localeCode)?.[key as keyof LocalizedObject];\n }\n\n return values;\n}\n"],"mappings":";;;;;;;AAWA,SAAgB,aAAa,QAA2B,YAAqB,MAAM,SAAS;CAC1F,IAAI,CAAC,QAAQ,OAAO;CAEpB,IAAI,CAAC,YACH,aAAa,gBAAgB,EAAE,SAAS,cAAc;CAGxD,IAAI,MAAM,QAAQ,MAAM,GACtB,OAAO,OAAO,MAAM,UAAU,MAAM,eAAe,UAAU,IAAI;CAGnE,OAAO;AACT"}
1
+ {"version":3,"file":"get-localized.mjs","names":[],"sources":["../../../../../../../core/src/utils/get-localized.ts"],"sourcesContent":["import { useRequestStore } from \"../http/context/request-context\";\n\nexport type LocalizedObject = {\n localeCode: string;\n value: any;\n};\n\n/**\n * Get localized value based on the given locale code\n * If the locale code is not given and the function is called within a request context, it will get the current locale code\n */\nexport function getLocalized(values: LocalizedObject[], localeCode?: string, key = \"value\") {\n if (!values) return values;\n\n if (!localeCode) {\n localeCode = useRequestStore().request?.getLocaleCode();\n }\n\n if (Array.isArray(values)) {\n return values.find((value) => value.localeCode === localeCode)?.[key as keyof LocalizedObject];\n }\n\n return values;\n}\n"],"mappings":";;;;;;;AAWA,SAAgB,aAAa,QAA2B,YAAqB,MAAM,SAAS;CAC1F,IAAI,CAAC,QAAQ,OAAO;CAEpB,IAAI,CAAC,YACH,aAAa,gBAAgB,EAAE,SAAS,cAAc;CAGxD,IAAI,MAAM,QAAQ,MAAM,GACtB,OAAO,OAAO,MAAM,UAAU,MAAM,eAAe,UAAU,IAAI;CAGnE,OAAO;AACT"}
@@ -2,7 +2,7 @@ import { loadEnv } from "@mongez/dotenv";
2
2
  import path from "node:path";
3
3
  import { existsSync } from "node:fs";
4
4
 
5
- //#region core/src/utils/load-environment.ts
5
+ //#region ../core/src/utils/load-environment.ts
6
6
  /**
7
7
  * Core's env precedence policy, in one place because two callers load env:
8
8
  * this module at boot, and the dev server when an `.env` file changes.
@@ -1 +1 @@
1
- {"version":3,"file":"load-environment.mjs","names":[],"sources":["C:/Work/Warlock.js/core/src/utils/load-environment.ts"],"sourcesContent":["import { loadEnv, type EnvLoaderOptions } from \"@mongez/dotenv\";\nimport { existsSync } from \"node:fs\";\nimport path from \"node:path\";\n\n/**\n * Core's env precedence policy, in one place because two callers load env:\n * this module at boot, and the dev server when an `.env` file changes.\n *\n * `@mongez/dotenv` defaults to `precedence: \"file-wins\"`, which is backwards.\n * The `.env` file is a checked-in DEFAULT; a variable already exported into\n * `process.env` is the deliberate, situational override — a second instance on\n * another port, CI pointed at another database, a container's configuration.\n * Under the default, `PORT=6060 warlock dev` produced a server on the `.env`\n * file's 3000 and said nothing. A default that silently beats an explicit\n * instruction is the wrong way round, so core opts into `process-wins`:\n * the file supplies only the keys the environment does not already carry.\n *\n * EMPTY STRING — `FOO=` in the environment counts as SET, and wins, so the\n * file's value is discarded and `env(\"FOO\")` returns `\"\"`. Chosen over\n * \"empty means absent\" because the loader cannot tell a deliberate blanking\n * from an accident, and only one of the two readings is expressible: an\n * operator who wants the file's value can unset the variable, whereas under\n * \"empty means absent\" an operator who wants a blank value has no way to ask\n * for one. It also matches POSIX (an exported empty variable is set), dotenv,\n * dotenv-flow and Vite. Note the consequence: a blank export beats the second\n * argument too, so `env(\"FOO\", \"fallback\")` yields `\"\"`, not the fallback.\n *\n * Keys this loader itself wrote are tracked by the library and are NOT treated\n * as process-provided, so editing `.env` during a dev session still takes\n * effect on reload rather than being pinned by the previous load's own writes.\n */\nexport const environmentLoaderOptions: EnvLoaderOptions = {\n precedence: \"process-wins\",\n};\n\n/**\n * The files `loadEnv()` will look for, in the order it considers them.\n *\n * Mirrors `@mongez/dotenv`'s own resolution — `.env.shared` first, then\n * `.env.<NODE_ENV>` if it exists, else plain `.env` — because the presence\n * check has to ask the same question the loader is about to ask.\n */\nfunction candidateEnvFiles(directory: string): string[] {\n const files = [path.join(directory, \".env\"), path.join(directory, \".env.shared\")];\n\n if (process.env.NODE_ENV) {\n files.push(path.join(directory, `.env.${process.env.NODE_ENV}`));\n }\n\n return files;\n}\n\n/**\n * Whether this process has already loaded its env files.\n *\n * Two callers reach here on a bootstrapping command — the CLI preload phase and\n * `bootstrap()` — and `loadEnv()` defaults to `override: true`, so a second pass\n * re-parses the same files and re-writes `process.env`. Anything set in between\n * (a `warlock.config.ts` module body, a config file, an orchestrator) would be\n * silently clobbered by the later load. Same shape as the defect where a\n * caller's test-server port was overwritten by a re-read of `.env`.\n *\n * A deliberate reload is still possible and still used: the dev server calls\n * `loadEnv()` directly when an `.env` file changes on disk, which is a reload\n * the user asked for rather than an accidental second pass.\n */\nlet environmentLoaded = false;\n\n/**\n * Load `.env` files when there are any, and do nothing when there are not.\n *\n * Loads at most **once per process** — see {@link environmentLoaded}.\n *\n * `@mongez/dotenv`'s `loadEnvFile` **throws** when the file is absent. That was\n * survivable while only `dev` loaded env; now that every command loads it —\n * because `warlock.config.ts` calls `env()` in its module body and had been\n * evaluated against an empty store under every command — an unguarded call\n * would turn \"this project has no .env\" from a non-event into a hard failure\n * of `warlock build`. A project without a `.env` is legitimate: config files\n * carry defaults, and containers inject their own variables.\n *\n * The guard lives here rather than waiting on a fix in `@mongez/dotenv`: core\n * decides its own env policy and must not depend on another package's release\n * schedule to avoid crashing a working build.\n */\nexport async function loadEnvironmentFiles(directory: string = process.cwd()): Promise<void> {\n if (environmentLoaded) {\n return;\n }\n\n const hasEnvFile = candidateEnvFiles(directory).some((file) => existsSync(file));\n\n if (!hasEnvFile) {\n // Not latched: a project may create its `.env` between a command's preload\n // and its bootstrap, and there is nothing to protect from a second override\n // when the first pass loaded nothing.\n return;\n }\n\n environmentLoaded = true;\n\n // `dir` has to be forwarded: `loadEnv()` defaults it to `process.cwd()`, so\n // without this the existence check above asks about `directory` while the\n // load itself reads somewhere else entirely. Identical in production, where\n // `directory` IS `process.cwd()`.\n await loadEnv(undefined, { ...environmentLoaderOptions, dir: directory });\n}\n\n/**\n * Forget that env has been loaded, so the next call loads again.\n *\n * @internal For tests, which run many boots inside one process.\n */\nexport function resetLoadedEnvironment(): void {\n environmentLoaded = false;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,MAAa,2BAA6C,EACxD,YAAY,eACd;;;;;;;;AASA,SAAS,kBAAkB,WAA6B;CACtD,MAAM,QAAQ,CAAC,KAAK,KAAK,WAAW,MAAM,GAAG,KAAK,KAAK,WAAW,aAAa,CAAC;CAEhF,IAAI,QAAQ,IAAI,UACd,MAAM,KAAK,KAAK,KAAK,WAAW,QAAQ,QAAQ,IAAI,UAAU,CAAC;CAGjE,OAAO;AACT;;;;;;;;;;;;;;;AAgBA,IAAI,oBAAoB;;;;;;;;;;;;;;;;;;AAmBxB,eAAsB,qBAAqB,YAAoB,QAAQ,IAAI,GAAkB;CAC3F,IAAI,mBACF;CAKF,IAAI,CAFe,kBAAkB,SAAS,EAAE,MAAM,SAAS,WAAW,IAAI,CAEhE,GAIZ;CAGF,oBAAoB;CAMpB,MAAM,QAAQ,QAAW;EAAE,GAAG;EAA0B,KAAK;CAAU,CAAC;AAC1E"}
1
+ {"version":3,"file":"load-environment.mjs","names":[],"sources":["../../../../../../../core/src/utils/load-environment.ts"],"sourcesContent":["import { loadEnv, type EnvLoaderOptions } from \"@mongez/dotenv\";\nimport { existsSync } from \"node:fs\";\nimport path from \"node:path\";\n\n/**\n * Core's env precedence policy, in one place because two callers load env:\n * this module at boot, and the dev server when an `.env` file changes.\n *\n * `@mongez/dotenv` defaults to `precedence: \"file-wins\"`, which is backwards.\n * The `.env` file is a checked-in DEFAULT; a variable already exported into\n * `process.env` is the deliberate, situational override — a second instance on\n * another port, CI pointed at another database, a container's configuration.\n * Under the default, `PORT=6060 warlock dev` produced a server on the `.env`\n * file's 3000 and said nothing. A default that silently beats an explicit\n * instruction is the wrong way round, so core opts into `process-wins`:\n * the file supplies only the keys the environment does not already carry.\n *\n * EMPTY STRING — `FOO=` in the environment counts as SET, and wins, so the\n * file's value is discarded and `env(\"FOO\")` returns `\"\"`. Chosen over\n * \"empty means absent\" because the loader cannot tell a deliberate blanking\n * from an accident, and only one of the two readings is expressible: an\n * operator who wants the file's value can unset the variable, whereas under\n * \"empty means absent\" an operator who wants a blank value has no way to ask\n * for one. It also matches POSIX (an exported empty variable is set), dotenv,\n * dotenv-flow and Vite. Note the consequence: a blank export beats the second\n * argument too, so `env(\"FOO\", \"fallback\")` yields `\"\"`, not the fallback.\n *\n * Keys this loader itself wrote are tracked by the library and are NOT treated\n * as process-provided, so editing `.env` during a dev session still takes\n * effect on reload rather than being pinned by the previous load's own writes.\n */\nexport const environmentLoaderOptions: EnvLoaderOptions = {\n precedence: \"process-wins\",\n};\n\n/**\n * The files `loadEnv()` will look for, in the order it considers them.\n *\n * Mirrors `@mongez/dotenv`'s own resolution — `.env.shared` first, then\n * `.env.<NODE_ENV>` if it exists, else plain `.env` — because the presence\n * check has to ask the same question the loader is about to ask.\n */\nfunction candidateEnvFiles(directory: string): string[] {\n const files = [path.join(directory, \".env\"), path.join(directory, \".env.shared\")];\n\n if (process.env.NODE_ENV) {\n files.push(path.join(directory, `.env.${process.env.NODE_ENV}`));\n }\n\n return files;\n}\n\n/**\n * Whether this process has already loaded its env files.\n *\n * Two callers reach here on a bootstrapping command — the CLI preload phase and\n * `bootstrap()` — and `loadEnv()` defaults to `override: true`, so a second pass\n * re-parses the same files and re-writes `process.env`. Anything set in between\n * (a `warlock.config.ts` module body, a config file, an orchestrator) would be\n * silently clobbered by the later load. Same shape as the defect where a\n * caller's test-server port was overwritten by a re-read of `.env`.\n *\n * A deliberate reload is still possible and still used: the dev server calls\n * `loadEnv()` directly when an `.env` file changes on disk, which is a reload\n * the user asked for rather than an accidental second pass.\n */\nlet environmentLoaded = false;\n\n/**\n * Load `.env` files when there are any, and do nothing when there are not.\n *\n * Loads at most **once per process** — see {@link environmentLoaded}.\n *\n * `@mongez/dotenv`'s `loadEnvFile` **throws** when the file is absent. That was\n * survivable while only `dev` loaded env; now that every command loads it —\n * because `warlock.config.ts` calls `env()` in its module body and had been\n * evaluated against an empty store under every command — an unguarded call\n * would turn \"this project has no .env\" from a non-event into a hard failure\n * of `warlock build`. A project without a `.env` is legitimate: config files\n * carry defaults, and containers inject their own variables.\n *\n * The guard lives here rather than waiting on a fix in `@mongez/dotenv`: core\n * decides its own env policy and must not depend on another package's release\n * schedule to avoid crashing a working build.\n */\nexport async function loadEnvironmentFiles(directory: string = process.cwd()): Promise<void> {\n if (environmentLoaded) {\n return;\n }\n\n const hasEnvFile = candidateEnvFiles(directory).some((file) => existsSync(file));\n\n if (!hasEnvFile) {\n // Not latched: a project may create its `.env` between a command's preload\n // and its bootstrap, and there is nothing to protect from a second override\n // when the first pass loaded nothing.\n return;\n }\n\n environmentLoaded = true;\n\n // `dir` has to be forwarded: `loadEnv()` defaults it to `process.cwd()`, so\n // without this the existence check above asks about `directory` while the\n // load itself reads somewhere else entirely. Identical in production, where\n // `directory` IS `process.cwd()`.\n await loadEnv(undefined, { ...environmentLoaderOptions, dir: directory });\n}\n\n/**\n * Forget that env has been loaded, so the next call loads again.\n *\n * @internal For tests, which run many boots inside one process.\n */\nexport function resetLoadedEnvironment(): void {\n environmentLoaded = false;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,MAAa,2BAA6C,EACxD,YAAY,eACd;;;;;;;;AASA,SAAS,kBAAkB,WAA6B;CACtD,MAAM,QAAQ,CAAC,KAAK,KAAK,WAAW,MAAM,GAAG,KAAK,KAAK,WAAW,aAAa,CAAC;CAEhF,IAAI,QAAQ,IAAI,UACd,MAAM,KAAK,KAAK,KAAK,WAAW,QAAQ,QAAQ,IAAI,UAAU,CAAC;CAGjE,OAAO;AACT;;;;;;;;;;;;;;;AAgBA,IAAI,oBAAoB;;;;;;;;;;;;;;;;;;AAmBxB,eAAsB,qBAAqB,YAAoB,QAAQ,IAAI,GAAkB;CAC3F,IAAI,mBACF;CAKF,IAAI,CAFe,kBAAkB,SAAS,EAAE,MAAM,SAAS,WAAW,IAAI,CAEhE,GAIZ;CAGF,oBAAoB;CAMpB,MAAM,QAAQ,QAAW;EAAE,GAAG;EAA0B,KAAK;CAAU,CAAC;AAC1E"}
@@ -1,4 +1,4 @@
1
- //#region core/src/utils/normalized-path.d.ts
1
+ //#region ../core/src/utils/normalized-path.d.ts
2
2
  /**
3
3
  * Path helpers that always hand back forward slashes.
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"normalized-path.d.mts","names":[],"sources":["C:/Work/Warlock.js/core/src/utils/normalized-path.ts"],"mappings":";;AAeA;;;;;;;;;;;;cAAa,IAAA;EAgCa;;;EAAA,OA5BV,UAAA,CAAW,YAAA;EA0CH;;;EAAA,OAnCR,QAAA,CAAS,YAAA;EAiDT;;;EAAA,OA1CA,oBAAA,CAAqB,YAAA;;;;SAOrB,UAAA,CAAW,YAAA;;;;SAOX,SAAA,CAAU,QAAA;;;;SAOV,IAAA,CAAA,GAAQ,KAAA;;;;SAOR,OAAA,CAAQ,QAAA;;;;SAOR,QAAA,CAAS,QAAA,UAAkB,GAAA;;;;SAO3B,OAAA,CAAQ,QAAA;AAAA"}
1
+ {"version":3,"file":"normalized-path.d.mts","names":[],"sources":["../../../../../../../core/src/utils/normalized-path.ts"],"mappings":";;AAeA;;;;;;;;;;;;cAAa,IAAA;EAgCa;;;EAAA,OA5BV,UAAA,CAAW,YAAA;EA0CH;;;EAAA,OAnCR,QAAA,CAAS,YAAA;EAiDT;;;EAAA,OA1CA,oBAAA,CAAqB,YAAA;;;;SAOrB,UAAA,CAAW,YAAA;;;;SAOX,SAAA,CAAU,QAAA;;;;SAOV,IAAA,CAAA,GAAQ,KAAA;;;;SAOR,OAAA,CAAQ,QAAA;;;;SAOR,QAAA,CAAS,QAAA,UAAkB,GAAA;;;;SAO3B,OAAA,CAAQ,QAAA;AAAA"}
@@ -1,6 +1,6 @@
1
1
  import path from "node:path";
2
2
 
3
- //#region core/src/utils/normalized-path.ts
3
+ //#region ../core/src/utils/normalized-path.ts
4
4
  /**
5
5
  * Path helpers that always hand back forward slashes.
6
6
  *
@@ -1 +1 @@
1
- {"version":3,"file":"normalized-path.mjs","names":[],"sources":["C:/Work/Warlock.js/core/src/utils/normalized-path.ts"],"sourcesContent":["import path from \"node:path\";\n\n/**\n * Path helpers that always hand back forward slashes.\n *\n * Node's `path` returns `\\` on Windows, and these values are compared against\n * module specifiers, glob results and map keys — all of which use `/`. A raw\n * `path.relative()` therefore produces a string that looks right in a log and\n * fails every lookup it is used for.\n *\n * This lived under `dev-server/` and was imported from there by production\n * modules (`connectors`, `database`, `config`), which put the whole dev-server\n * directory into the production module graph. The code was never dev-only —\n * only its location was.\n */\nexport class Path {\n /**\n * Convert the given absolute path to a relative path\n */\n public static toRelative(absolutePath: string) {\n return this.normalize(path.relative(process.cwd(), absolutePath));\n }\n\n /**\n * Get relative path of the given path\n */\n public static relative(relativePath: string) {\n return this.normalize(path.relative(process.cwd(), relativePath));\n }\n\n /**\n * Get normalized absolute path of the given path\n */\n public static toNormalizedAbsolute(relativePath: string) {\n return this.normalize(path.resolve(process.cwd(), relativePath));\n }\n\n /**\n * Get absolute path of the given path\n */\n public static toAbsolute(relativePath: string) {\n return this.normalize(path.resolve(process.cwd(), relativePath));\n }\n\n /**\n * Normalize the given path (convert backslashes to forward slashes)\n */\n public static normalize(filePath: string) {\n return filePath.replace(/\\\\/g, \"/\");\n }\n\n /**\n * Join paths and normalize\n */\n public static join(...paths: string[]) {\n return this.normalize(path.join(...paths));\n }\n\n /**\n * Get directory name of a path\n */\n public static dirname(filePath: string) {\n return this.normalize(path.dirname(filePath));\n }\n\n /**\n * Get base name of a path\n */\n public static basename(filePath: string, ext?: string) {\n return path.basename(filePath, ext);\n }\n\n /**\n * Get extension of a path\n */\n public static extname(filePath: string) {\n return path.extname(filePath);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAeA,IAAa,OAAb,MAAkB;;;;CAIhB,OAAc,WAAW,cAAsB;EAC7C,OAAO,KAAK,UAAU,KAAK,SAAS,QAAQ,IAAI,GAAG,YAAY,CAAC;CAClE;;;;CAKA,OAAc,SAAS,cAAsB;EAC3C,OAAO,KAAK,UAAU,KAAK,SAAS,QAAQ,IAAI,GAAG,YAAY,CAAC;CAClE;;;;CAKA,OAAc,qBAAqB,cAAsB;EACvD,OAAO,KAAK,UAAU,KAAK,QAAQ,QAAQ,IAAI,GAAG,YAAY,CAAC;CACjE;;;;CAKA,OAAc,WAAW,cAAsB;EAC7C,OAAO,KAAK,UAAU,KAAK,QAAQ,QAAQ,IAAI,GAAG,YAAY,CAAC;CACjE;;;;CAKA,OAAc,UAAU,UAAkB;EACxC,OAAO,SAAS,QAAQ,OAAO,GAAG;CACpC;;;;CAKA,OAAc,KAAK,GAAG,OAAiB;EACrC,OAAO,KAAK,UAAU,KAAK,KAAK,GAAG,KAAK,CAAC;CAC3C;;;;CAKA,OAAc,QAAQ,UAAkB;EACtC,OAAO,KAAK,UAAU,KAAK,QAAQ,QAAQ,CAAC;CAC9C;;;;CAKA,OAAc,SAAS,UAAkB,KAAc;EACrD,OAAO,KAAK,SAAS,UAAU,GAAG;CACpC;;;;CAKA,OAAc,QAAQ,UAAkB;EACtC,OAAO,KAAK,QAAQ,QAAQ;CAC9B;AACF"}
1
+ {"version":3,"file":"normalized-path.mjs","names":[],"sources":["../../../../../../../core/src/utils/normalized-path.ts"],"sourcesContent":["import path from \"node:path\";\n\n/**\n * Path helpers that always hand back forward slashes.\n *\n * Node's `path` returns `\\` on Windows, and these values are compared against\n * module specifiers, glob results and map keys — all of which use `/`. A raw\n * `path.relative()` therefore produces a string that looks right in a log and\n * fails every lookup it is used for.\n *\n * This lived under `dev-server/` and was imported from there by production\n * modules (`connectors`, `database`, `config`), which put the whole dev-server\n * directory into the production module graph. The code was never dev-only —\n * only its location was.\n */\nexport class Path {\n /**\n * Convert the given absolute path to a relative path\n */\n public static toRelative(absolutePath: string) {\n return this.normalize(path.relative(process.cwd(), absolutePath));\n }\n\n /**\n * Get relative path of the given path\n */\n public static relative(relativePath: string) {\n return this.normalize(path.relative(process.cwd(), relativePath));\n }\n\n /**\n * Get normalized absolute path of the given path\n */\n public static toNormalizedAbsolute(relativePath: string) {\n return this.normalize(path.resolve(process.cwd(), relativePath));\n }\n\n /**\n * Get absolute path of the given path\n */\n public static toAbsolute(relativePath: string) {\n return this.normalize(path.resolve(process.cwd(), relativePath));\n }\n\n /**\n * Normalize the given path (convert backslashes to forward slashes)\n */\n public static normalize(filePath: string) {\n return filePath.replace(/\\\\/g, \"/\");\n }\n\n /**\n * Join paths and normalize\n */\n public static join(...paths: string[]) {\n return this.normalize(path.join(...paths));\n }\n\n /**\n * Get directory name of a path\n */\n public static dirname(filePath: string) {\n return this.normalize(path.dirname(filePath));\n }\n\n /**\n * Get base name of a path\n */\n public static basename(filePath: string, ext?: string) {\n return path.basename(filePath, ext);\n }\n\n /**\n * Get extension of a path\n */\n public static extname(filePath: string) {\n return path.extname(filePath);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAeA,IAAa,OAAb,MAAkB;;;;CAIhB,OAAc,WAAW,cAAsB;EAC7C,OAAO,KAAK,UAAU,KAAK,SAAS,QAAQ,IAAI,GAAG,YAAY,CAAC;CAClE;;;;CAKA,OAAc,SAAS,cAAsB;EAC3C,OAAO,KAAK,UAAU,KAAK,SAAS,QAAQ,IAAI,GAAG,YAAY,CAAC;CAClE;;;;CAKA,OAAc,qBAAqB,cAAsB;EACvD,OAAO,KAAK,UAAU,KAAK,QAAQ,QAAQ,IAAI,GAAG,YAAY,CAAC;CACjE;;;;CAKA,OAAc,WAAW,cAAsB;EAC7C,OAAO,KAAK,UAAU,KAAK,QAAQ,QAAQ,IAAI,GAAG,YAAY,CAAC;CACjE;;;;CAKA,OAAc,UAAU,UAAkB;EACxC,OAAO,SAAS,QAAQ,OAAO,GAAG;CACpC;;;;CAKA,OAAc,KAAK,GAAG,OAAiB;EACrC,OAAO,KAAK,UAAU,KAAK,KAAK,GAAG,KAAK,CAAC;CAC3C;;;;CAKA,OAAc,QAAQ,UAAkB;EACtC,OAAO,KAAK,UAAU,KAAK,QAAQ,QAAQ,CAAC;CAC9C;;;;CAKA,OAAc,SAAS,UAAkB,KAAc;EACrD,OAAO,KAAK,SAAS,UAAU,GAAG;CACpC;;;;CAKA,OAAc,QAAQ,UAAkB;EACtC,OAAO,KAAK,QAAQ,QAAQ;CAC9B;AACF"}
@@ -1,4 +1,4 @@
1
- //#region core/src/utils/npm-registry.d.ts
1
+ //#region ../core/src/utils/npm-registry.d.ts
2
2
  /**
3
3
  * Minimal npm-registry access for the framework's self-update tooling
4
4
  * (the dev-server update notice + the `warlock update` command).
@@ -1 +1 @@
1
- {"version":3,"file":"npm-registry.d.mts","names":[],"sources":["C:/Work/Warlock.js/core/src/utils/npm-registry.ts"],"mappings":";;AAwBA;;;;;;;;AAGU;;;;;;;;;;iBAHY,kBAAA,CACpB,WAAA,UACA,SAAA,YACC,OAAO"}
1
+ {"version":3,"file":"npm-registry.d.mts","names":[],"sources":["../../../../../../../core/src/utils/npm-registry.ts"],"mappings":";;AAwBA;;;;;;;;AAGU;;;;;;;;;;iBAHY,kBAAA,CACpB,WAAA,UACA,SAAA,YACC,OAAO"}
@@ -1,4 +1,4 @@
1
- //#region core/src/utils/npm-registry.ts
1
+ //#region ../core/src/utils/npm-registry.ts
2
2
  /**
3
3
  * Minimal npm-registry access for the framework's self-update tooling
4
4
  * (the dev-server update notice + the `warlock update` command).
@@ -1 +1 @@
1
- {"version":3,"file":"npm-registry.mjs","names":[],"sources":["C:/Work/Warlock.js/core/src/utils/npm-registry.ts"],"sourcesContent":["/**\n * Minimal npm-registry access for the framework's self-update tooling\n * (the dev-server update notice + the `warlock update` command).\n *\n * No SDK and no caching layer — just the public registry over `fetch`.\n * Every lookup is best-effort: any failure resolves to `undefined` so a\n * registry hiccup can never break the dev server or the CLI.\n */\n\nconst REGISTRY_BASE_URL = \"https://registry.npmjs.org\";\n\nconst DEFAULT_TIMEOUT_MS = 30_000;\n\n/**\n * Fetch the latest published version of a package from the npm registry.\n *\n * Hits the abbreviated `/<package>/latest` endpoint, which returns only the\n * latest dist-tag manifest (not the full packument). Resolves to `undefined`\n * on any failure — offline, timeout, non-200 response, or malformed payload —\n * and never throws, so callers can stay fail-silent.\n *\n * @param packageName Fully-qualified npm name, e.g. `@warlock.js/core`.\n * @param timeoutMs Abort budget in milliseconds (defaults to 30_000 -> 30 seconds).\n */\nexport async function fetchLatestVersion(\n packageName: string,\n timeoutMs: number = DEFAULT_TIMEOUT_MS,\n): Promise<string | undefined> {\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), timeoutMs);\n\n try {\n const response = await fetch(`${REGISTRY_BASE_URL}/${packageName}/latest`, {\n signal: controller.signal,\n headers: { accept: \"application/json\" },\n });\n\n if (!response.ok) {\n return undefined;\n }\n\n const data = (await response.json()) as { version?: unknown };\n\n return typeof data.version === \"string\" ? data.version : undefined;\n } catch {\n // Best-effort: offline, DNS failure, abort/timeout, or bad JSON — all \"unknown\".\n return undefined;\n } finally {\n clearTimeout(timer);\n }\n}\n"],"mappings":";;;;;;;;;AASA,MAAM,oBAAoB;AAE1B,MAAM,qBAAqB;;;;;;;;;;;;AAa3B,eAAsB,mBACpB,aACA,YAAoB,oBACS;CAC7B,MAAM,aAAa,IAAI,gBAAgB;CACvC,MAAM,QAAQ,iBAAiB,WAAW,MAAM,GAAG,SAAS;CAE5D,IAAI;EACF,MAAM,WAAW,MAAM,MAAM,GAAG,kBAAkB,GAAG,YAAY,UAAU;GACzE,QAAQ,WAAW;GACnB,SAAS,EAAE,QAAQ,mBAAmB;EACxC,CAAC;EAED,IAAI,CAAC,SAAS,IACZ;EAGF,MAAM,OAAQ,MAAM,SAAS,KAAK;EAElC,OAAO,OAAO,KAAK,YAAY,WAAW,KAAK,UAAU;CAC3D,QAAQ;EAEN;CACF,UAAU;EACR,aAAa,KAAK;CACpB;AACF"}
1
+ {"version":3,"file":"npm-registry.mjs","names":[],"sources":["../../../../../../../core/src/utils/npm-registry.ts"],"sourcesContent":["/**\n * Minimal npm-registry access for the framework's self-update tooling\n * (the dev-server update notice + the `warlock update` command).\n *\n * No SDK and no caching layer — just the public registry over `fetch`.\n * Every lookup is best-effort: any failure resolves to `undefined` so a\n * registry hiccup can never break the dev server or the CLI.\n */\n\nconst REGISTRY_BASE_URL = \"https://registry.npmjs.org\";\n\nconst DEFAULT_TIMEOUT_MS = 30_000;\n\n/**\n * Fetch the latest published version of a package from the npm registry.\n *\n * Hits the abbreviated `/<package>/latest` endpoint, which returns only the\n * latest dist-tag manifest (not the full packument). Resolves to `undefined`\n * on any failure — offline, timeout, non-200 response, or malformed payload —\n * and never throws, so callers can stay fail-silent.\n *\n * @param packageName Fully-qualified npm name, e.g. `@warlock.js/core`.\n * @param timeoutMs Abort budget in milliseconds (defaults to 30_000 -> 30 seconds).\n */\nexport async function fetchLatestVersion(\n packageName: string,\n timeoutMs: number = DEFAULT_TIMEOUT_MS,\n): Promise<string | undefined> {\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), timeoutMs);\n\n try {\n const response = await fetch(`${REGISTRY_BASE_URL}/${packageName}/latest`, {\n signal: controller.signal,\n headers: { accept: \"application/json\" },\n });\n\n if (!response.ok) {\n return undefined;\n }\n\n const data = (await response.json()) as { version?: unknown };\n\n return typeof data.version === \"string\" ? data.version : undefined;\n } catch {\n // Best-effort: offline, DNS failure, abort/timeout, or bad JSON — all \"unknown\".\n return undefined;\n } finally {\n clearTimeout(timer);\n }\n}\n"],"mappings":";;;;;;;;;AASA,MAAM,oBAAoB;AAE1B,MAAM,qBAAqB;;;;;;;;;;;;AAa3B,eAAsB,mBACpB,aACA,YAAoB,oBACS;CAC7B,MAAM,aAAa,IAAI,gBAAgB;CACvC,MAAM,QAAQ,iBAAiB,WAAW,MAAM,GAAG,SAAS;CAE5D,IAAI;EACF,MAAM,WAAW,MAAM,MAAM,GAAG,kBAAkB,GAAG,YAAY,UAAU;GACzE,QAAQ,WAAW;GACnB,SAAS,EAAE,QAAQ,mBAAmB;EACxC,CAAC;EAED,IAAI,CAAC,SAAS,IACZ;EAGF,MAAM,OAAQ,MAAM,SAAS,KAAK;EAElC,OAAO,OAAO,KAAK,YAAY,WAAW,KAAK,UAAU;CAC3D,QAAQ;EAEN;CACF,UAAU;EACR,aAAa,KAAK;CACpB;AACF"}
@@ -1,4 +1,4 @@
1
- //#region core/src/utils/paths.d.ts
1
+ //#region ../core/src/utils/paths.d.ts
2
2
  /**
3
3
  * Get root path or join the given paths to the root path
4
4
  */
@@ -1 +1 @@
1
- {"version":3,"file":"paths.d.mts","names":[],"sources":["C:/Work/Warlock.js/core/src/utils/paths.ts"],"mappings":";;AAMA;;iBAAgB,QAAA,CAAA,GAAY,KAAK;;AAAA;AAOjC;iBAAgB,OAAA,CAAA,GAAW,KAAK;;;AAAA;AAShC;;iBAAgB,WAAA,CAAY,YAAiB;;AAAA;AAS7C;;;iBAAgB,WAAA,CAAY,YAAiB;AAAA;AAgB7C;;;;AAhB6C,iBAgB7B,UAAA,CAAW,YAAiB;AAS5C;;;;AAA2C;AAA3C,iBAAgB,SAAA,CAAU,YAAiB;;;;iBAO3B,OAAA,CAAQ,YAAiB;AAOzC;;;AAAA,iBAAgB,QAAA,CAAS,YAAiB;AAAA;AAO1C;;AAP0C,iBAO1B,QAAA,CAAS,YAAiB;AAAA,iBAS1B,YAAA,CAAa,QAAgB;AATH;AAS1C;;;AAT0C,iBAiB1B,WAAA,CAAA,GAAe,IAAI;AARU;AAQ7C;;AAR6C,iBAe7B,UAAA,CAAA,GAAc,IAAI;AAAA,cAIrB,KAAA"}
1
+ {"version":3,"file":"paths.d.mts","names":[],"sources":["../../../../../../../core/src/utils/paths.ts"],"mappings":";;AAMA;;iBAAgB,QAAA,CAAA,GAAY,KAAK;;AAAA;AAOjC;iBAAgB,OAAA,CAAA,GAAW,KAAK;;;AAAA;AAShC;;iBAAgB,WAAA,CAAY,YAAiB;;AAAA;AAS7C;;;iBAAgB,WAAA,CAAY,YAAiB;AAAA;AAgB7C;;;;AAhB6C,iBAgB7B,UAAA,CAAW,YAAiB;AAS5C;;;;AAA2C;AAA3C,iBAAgB,SAAA,CAAU,YAAiB;;;;iBAO3B,OAAA,CAAQ,YAAiB;AAOzC;;;AAAA,iBAAgB,QAAA,CAAS,YAAiB;AAAA;AAO1C;;AAP0C,iBAO1B,QAAA,CAAS,YAAiB;AAAA,iBAS1B,YAAA,CAAa,QAAgB;AATH;AAS1C;;;AAT0C,iBAiB1B,WAAA,CAAA,GAAe,IAAI;AARU;AAQ7C;;AAR6C,iBAe7B,UAAA,CAAA,GAAc,IAAI;AAAA,cAIrB,KAAA"}
@@ -1,7 +1,7 @@
1
1
  import config from "@mongez/config";
2
2
  import path from "path";
3
3
 
4
- //#region core/src/utils/paths.ts
4
+ //#region ../core/src/utils/paths.ts
5
5
  /**
6
6
  * Get root path or join the given paths to the root path
7
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"paths.mjs","names":[],"sources":["C:/Work/Warlock.js/core/src/utils/paths.ts"],"sourcesContent":["import config from \"@mongez/config\";\r\nimport path from \"path\";\r\n\r\n/**\r\n * Get root path or join the given paths to the root path\r\n */\r\nexport function rootPath(...paths: string[]) {\r\n return path.resolve(process.cwd(), ...paths);\r\n}\r\n\r\n/**\r\n * Get src directory path or join the given paths to the src directory path\r\n */\r\nexport function srcPath(...paths: string[]) {\r\n return rootPath(\"src\", ...paths);\r\n}\r\n\r\n/**\r\n * Get the absolute path to the storage folder to the given path\r\n *\r\n * If no path is given, it will return the absolute path to the storage folder\r\n */\r\nexport function storagePath(relativePath = \"\") {\r\n return rootPath(\"storage\", relativePath);\r\n}\r\n\r\n/**\r\n * Get the absolute path to the uploads folder to the given path\r\n *\r\n * If no path is given, it will return the absolute path to the uploads folder\r\n */\r\nexport function uploadsPath(relativePath = \"\") {\r\n const configPath = config.get(\"uploads.root\");\r\n if (!configPath) {\r\n return rootPath(\"storage\", \"uploads\", relativePath);\r\n }\r\n\r\n return typeof configPath === \"function\"\r\n ? configPath(relativePath)\r\n : path.resolve(configPath, relativePath);\r\n}\r\n\r\n/**\r\n * Get the absolute path to the public folder to the given path\r\n *\r\n * If no path is given, it will return the absolute path to the public folder\r\n */\r\nexport function publicPath(relativePath = \"\") {\r\n return rootPath(\"public\", relativePath);\r\n}\r\n\r\n/**\r\n * Get the absolute path to the cache folder to the given path\r\n *\r\n * If no path is given, it will return the absolute path to the cache folder\r\n */\r\nexport function cachePath(relativePath = \"\") {\r\n return rootPath(\"storage\", \"cache\", relativePath);\r\n}\r\n\r\n/**\r\n * App path\r\n */\r\nexport function appPath(relativePath = \"\") {\r\n return rootPath(\"src/app\", relativePath);\r\n}\r\n\r\n/**\r\n * Get logs directory path\r\n */\r\nexport function logsPath(relativePath = \"\") {\r\n return rootPath(\"storage/logs\", relativePath);\r\n}\r\n\r\n/**\r\n * Get a temp path\r\n */\r\nexport function tempPath(relativePath = \"\") {\r\n return rootPath(\"storage/tmp\", relativePath);\r\n}\r\n\r\n/**\r\n * Remove any invalid characters from the file path using regex\r\n * It should accept any language character, numbers, and the following characters: _ - .\r\n */\r\nconst invalidCharsRegex = /[<>:\"/\\\\|?*]/g; // Regex to match invalid characters\r\nexport function sanitizePath(filePath: string) {\r\n return filePath.replace(invalidCharsRegex, \"\"); // Replace invalid characters with an empty string\r\n}\r\n\r\n/**\r\n * Warlock path\r\n * PLEASE DO NOT add any files in this directory as it may be deleted\r\n */\r\nexport function warlockPath(...path: string[]) {\r\n return rootPath(\".warlock\", ...path);\r\n}\r\n\r\n/**\r\n * Get config directory path\r\n */\r\nexport function configPath(...path: string[]) {\r\n return rootPath(\"src/config\", ...path);\r\n}\r\n\r\nexport const paths = {\r\n root: rootPath,\r\n src: srcPath,\r\n storage: storagePath,\r\n logs: logsPath,\r\n uploads: uploadsPath,\r\n public: publicPath,\r\n cache: cachePath,\r\n app: appPath,\r\n temp: tempPath,\r\n warlock: warlockPath,\r\n config: configPath,\r\n sanitize: sanitizePath,\r\n};\r\n"],"mappings":";;;;;;;AAMA,SAAgB,SAAS,GAAG,OAAiB;CAC3C,OAAO,KAAK,QAAQ,QAAQ,IAAI,GAAG,GAAG,KAAK;AAC7C;;;;AAKA,SAAgB,QAAQ,GAAG,OAAiB;CAC1C,OAAO,SAAS,OAAO,GAAG,KAAK;AACjC;;;;;;AAOA,SAAgB,YAAY,eAAe,IAAI;CAC7C,OAAO,SAAS,WAAW,YAAY;AACzC;;;;;;AAOA,SAAgB,YAAY,eAAe,IAAI;CAC7C,MAAM,aAAa,OAAO,IAAI,cAAc;CAC5C,IAAI,CAAC,YACH,OAAO,SAAS,WAAW,WAAW,YAAY;CAGpD,OAAO,OAAO,eAAe,aACzB,WAAW,YAAY,IACvB,KAAK,QAAQ,YAAY,YAAY;AAC3C;;;;;;AAOA,SAAgB,WAAW,eAAe,IAAI;CAC5C,OAAO,SAAS,UAAU,YAAY;AACxC;;;;;;AAOA,SAAgB,UAAU,eAAe,IAAI;CAC3C,OAAO,SAAS,WAAW,SAAS,YAAY;AAClD;;;;AAKA,SAAgB,QAAQ,eAAe,IAAI;CACzC,OAAO,SAAS,WAAW,YAAY;AACzC;;;;AAKA,SAAgB,SAAS,eAAe,IAAI;CAC1C,OAAO,SAAS,gBAAgB,YAAY;AAC9C;;;;AAKA,SAAgB,SAAS,eAAe,IAAI;CAC1C,OAAO,SAAS,eAAe,YAAY;AAC7C;;;;;AAMA,MAAM,oBAAoB;AAC1B,SAAgB,aAAa,UAAkB;CAC7C,OAAO,SAAS,QAAQ,mBAAmB,EAAE;AAC/C;;;;;AAMA,SAAgB,YAAY,GAAG,MAAgB;CAC7C,OAAO,SAAS,YAAY,GAAG,IAAI;AACrC;;;;AAKA,SAAgB,WAAW,GAAG,MAAgB;CAC5C,OAAO,SAAS,cAAc,GAAG,IAAI;AACvC;AAEA,MAAa,QAAQ;CACnB,MAAM;CACN,KAAK;CACL,SAAS;CACT,MAAM;CACN,SAAS;CACT,QAAQ;CACR,OAAO;CACP,KAAK;CACL,MAAM;CACN,SAAS;CACT,QAAQ;CACR,UAAU;AACZ"}
1
+ {"version":3,"file":"paths.mjs","names":[],"sources":["../../../../../../../core/src/utils/paths.ts"],"sourcesContent":["import config from \"@mongez/config\";\r\nimport path from \"path\";\r\n\r\n/**\r\n * Get root path or join the given paths to the root path\r\n */\r\nexport function rootPath(...paths: string[]) {\r\n return path.resolve(process.cwd(), ...paths);\r\n}\r\n\r\n/**\r\n * Get src directory path or join the given paths to the src directory path\r\n */\r\nexport function srcPath(...paths: string[]) {\r\n return rootPath(\"src\", ...paths);\r\n}\r\n\r\n/**\r\n * Get the absolute path to the storage folder to the given path\r\n *\r\n * If no path is given, it will return the absolute path to the storage folder\r\n */\r\nexport function storagePath(relativePath = \"\") {\r\n return rootPath(\"storage\", relativePath);\r\n}\r\n\r\n/**\r\n * Get the absolute path to the uploads folder to the given path\r\n *\r\n * If no path is given, it will return the absolute path to the uploads folder\r\n */\r\nexport function uploadsPath(relativePath = \"\") {\r\n const configPath = config.get(\"uploads.root\");\r\n if (!configPath) {\r\n return rootPath(\"storage\", \"uploads\", relativePath);\r\n }\r\n\r\n return typeof configPath === \"function\"\r\n ? configPath(relativePath)\r\n : path.resolve(configPath, relativePath);\r\n}\r\n\r\n/**\r\n * Get the absolute path to the public folder to the given path\r\n *\r\n * If no path is given, it will return the absolute path to the public folder\r\n */\r\nexport function publicPath(relativePath = \"\") {\r\n return rootPath(\"public\", relativePath);\r\n}\r\n\r\n/**\r\n * Get the absolute path to the cache folder to the given path\r\n *\r\n * If no path is given, it will return the absolute path to the cache folder\r\n */\r\nexport function cachePath(relativePath = \"\") {\r\n return rootPath(\"storage\", \"cache\", relativePath);\r\n}\r\n\r\n/**\r\n * App path\r\n */\r\nexport function appPath(relativePath = \"\") {\r\n return rootPath(\"src/app\", relativePath);\r\n}\r\n\r\n/**\r\n * Get logs directory path\r\n */\r\nexport function logsPath(relativePath = \"\") {\r\n return rootPath(\"storage/logs\", relativePath);\r\n}\r\n\r\n/**\r\n * Get a temp path\r\n */\r\nexport function tempPath(relativePath = \"\") {\r\n return rootPath(\"storage/tmp\", relativePath);\r\n}\r\n\r\n/**\r\n * Remove any invalid characters from the file path using regex\r\n * It should accept any language character, numbers, and the following characters: _ - .\r\n */\r\nconst invalidCharsRegex = /[<>:\"/\\\\|?*]/g; // Regex to match invalid characters\r\nexport function sanitizePath(filePath: string) {\r\n return filePath.replace(invalidCharsRegex, \"\"); // Replace invalid characters with an empty string\r\n}\r\n\r\n/**\r\n * Warlock path\r\n * PLEASE DO NOT add any files in this directory as it may be deleted\r\n */\r\nexport function warlockPath(...path: string[]) {\r\n return rootPath(\".warlock\", ...path);\r\n}\r\n\r\n/**\r\n * Get config directory path\r\n */\r\nexport function configPath(...path: string[]) {\r\n return rootPath(\"src/config\", ...path);\r\n}\r\n\r\nexport const paths = {\r\n root: rootPath,\r\n src: srcPath,\r\n storage: storagePath,\r\n logs: logsPath,\r\n uploads: uploadsPath,\r\n public: publicPath,\r\n cache: cachePath,\r\n app: appPath,\r\n temp: tempPath,\r\n warlock: warlockPath,\r\n config: configPath,\r\n sanitize: sanitizePath,\r\n};\r\n"],"mappings":";;;;;;;AAMA,SAAgB,SAAS,GAAG,OAAiB;CAC3C,OAAO,KAAK,QAAQ,QAAQ,IAAI,GAAG,GAAG,KAAK;AAC7C;;;;AAKA,SAAgB,QAAQ,GAAG,OAAiB;CAC1C,OAAO,SAAS,OAAO,GAAG,KAAK;AACjC;;;;;;AAOA,SAAgB,YAAY,eAAe,IAAI;CAC7C,OAAO,SAAS,WAAW,YAAY;AACzC;;;;;;AAOA,SAAgB,YAAY,eAAe,IAAI;CAC7C,MAAM,aAAa,OAAO,IAAI,cAAc;CAC5C,IAAI,CAAC,YACH,OAAO,SAAS,WAAW,WAAW,YAAY;CAGpD,OAAO,OAAO,eAAe,aACzB,WAAW,YAAY,IACvB,KAAK,QAAQ,YAAY,YAAY;AAC3C;;;;;;AAOA,SAAgB,WAAW,eAAe,IAAI;CAC5C,OAAO,SAAS,UAAU,YAAY;AACxC;;;;;;AAOA,SAAgB,UAAU,eAAe,IAAI;CAC3C,OAAO,SAAS,WAAW,SAAS,YAAY;AAClD;;;;AAKA,SAAgB,QAAQ,eAAe,IAAI;CACzC,OAAO,SAAS,WAAW,YAAY;AACzC;;;;AAKA,SAAgB,SAAS,eAAe,IAAI;CAC1C,OAAO,SAAS,gBAAgB,YAAY;AAC9C;;;;AAKA,SAAgB,SAAS,eAAe,IAAI;CAC1C,OAAO,SAAS,eAAe,YAAY;AAC7C;;;;;AAMA,MAAM,oBAAoB;AAC1B,SAAgB,aAAa,UAAkB;CAC7C,OAAO,SAAS,QAAQ,mBAAmB,EAAE;AAC/C;;;;;AAMA,SAAgB,YAAY,GAAG,MAAgB;CAC7C,OAAO,SAAS,YAAY,GAAG,IAAI;AACrC;;;;AAKA,SAAgB,WAAW,GAAG,MAAgB;CAC5C,OAAO,SAAS,cAAc,GAAG,IAAI;AACvC;AAEA,MAAa,QAAQ;CACnB,MAAM;CACN,KAAK;CACL,SAAS;CACT,MAAM;CACN,SAAS;CACT,QAAQ;CACR,OAAO;CACP,KAAK;CACL,MAAM;CACN,SAAS;CACT,QAAQ;CACR,UAAU;AACZ"}
@@ -1,4 +1,4 @@
1
- //#region core/src/utils/promise-all-object.d.ts
1
+ //#region ../core/src/utils/promise-all-object.d.ts
2
2
  /**
3
3
  * Resolve all of the given promises in the object and return the results as an object.
4
4
  * This is more convenient than using `Promise.all` and then mapping the results back to the keys.
@@ -1 +1 @@
1
- {"version":3,"file":"promise-all-object.d.mts","names":[],"sources":["C:/Work/Warlock.js/core/src/utils/promise-all-object.ts"],"mappings":";;AAIA;;;iBAAsB,gBAAA,WAA2B,MAAA,SAAe,OAAA,OAAA,CAC9D,QAAA,EAAU,CAAA,GACT,OAAA,eAAsB,CAAA,GAAI,CAAA,CAAE,CAAA,UAAW,OAAA,YAAmB,CAAA"}
1
+ {"version":3,"file":"promise-all-object.d.mts","names":[],"sources":["../../../../../../../core/src/utils/promise-all-object.ts"],"mappings":";;AAIA;;;iBAAsB,gBAAA,WAA2B,MAAA,SAAe,OAAA,OAAA,CAC9D,QAAA,EAAU,CAAA,GACT,OAAA,eAAsB,CAAA,GAAI,CAAA,CAAE,CAAA,UAAW,OAAA,YAAmB,CAAA"}
@@ -1,4 +1,4 @@
1
- //#region core/src/utils/promise-all-object.ts
1
+ //#region ../core/src/utils/promise-all-object.ts
2
2
  /**
3
3
  * Resolve all of the given promises in the object and return the results as an object.
4
4
  * This is more convenient than using `Promise.all` and then mapping the results back to the keys.
@@ -1 +1 @@
1
- {"version":3,"file":"promise-all-object.mjs","names":[],"sources":["C:/Work/Warlock.js/core/src/utils/promise-all-object.ts"],"sourcesContent":["/**\n * Resolve all of the given promises in the object and return the results as an object.\n * This is more convenient than using `Promise.all` and then mapping the results back to the keys.\n */\nexport async function promiseAllObject<T extends Record<string, Promise<any>>>(\n promises: T,\n): Promise<{ [K in keyof T]: T[K] extends Promise<infer U> ? U : never }> {\n const results = await Promise.all(Object.values(promises));\n const keys = Object.keys(promises);\n\n return keys.reduce(\n (result, key, index) => {\n (result as any)[key] = results[index];\n return result;\n },\n {} as { [K in keyof T]: T[K] extends Promise<infer U> ? U : never },\n );\n}\n"],"mappings":";;;;;AAIA,eAAsB,iBACpB,UACwE;CACxE,MAAM,UAAU,MAAM,QAAQ,IAAI,OAAO,OAAO,QAAQ,CAAC;CAGzD,OAFa,OAAO,KAAK,QAEf,EAAE,QACT,QAAQ,KAAK,UAAU;EACtB,AAAC,OAAe,OAAO,QAAQ;EAC/B,OAAO;CACT,GACA,CAAC,CACH;AACF"}
1
+ {"version":3,"file":"promise-all-object.mjs","names":[],"sources":["../../../../../../../core/src/utils/promise-all-object.ts"],"sourcesContent":["/**\n * Resolve all of the given promises in the object and return the results as an object.\n * This is more convenient than using `Promise.all` and then mapping the results back to the keys.\n */\nexport async function promiseAllObject<T extends Record<string, Promise<any>>>(\n promises: T,\n): Promise<{ [K in keyof T]: T[K] extends Promise<infer U> ? U : never }> {\n const results = await Promise.all(Object.values(promises));\n const keys = Object.keys(promises);\n\n return keys.reduce(\n (result, key, index) => {\n (result as any)[key] = results[index];\n return result;\n },\n {} as { [K in keyof T]: T[K] extends Promise<infer U> ? U : never },\n );\n}\n"],"mappings":";;;;;AAIA,eAAsB,iBACpB,UACwE;CACxE,MAAM,UAAU,MAAM,QAAQ,IAAI,OAAO,OAAO,QAAQ,CAAC;CAGzD,OAFa,OAAO,KAAK,QAEf,EAAE,QACT,QAAQ,KAAK,UAAU;EACtB,AAAC,OAAe,OAAO,QAAQ;EAC/B,OAAO;CACT,GACA,CAAC,CACH;AACF"}
@@ -1,4 +1,4 @@
1
- //#region core/src/utils/queue.d.ts
1
+ //#region ../core/src/utils/queue.d.ts
2
2
  /**
3
3
  * A utility class for managing a queue of operations.
4
4
  * Allows enqueuing values and executing a function when the queue reaches a certain size or after a specified interval.
@@ -1 +1 @@
1
- {"version":3,"file":"queue.d.mts","names":[],"sources":["C:/Work/Warlock.js/core/src/utils/queue.ts"],"mappings":";;AAKA;;;;cAAa,KAAA;EAqDU;EAAA,QAnDb,KAAA;EAmDc;EAAA,iBAhDL,OAAA;EAHT;EAAA,iBAMS,QAAA;EAAA;EAAA,iBAGA,SAAA;EAGT;EAAA,QAAA,KAAA;EAMS;EAAA,iBAHA,iBAAA;;mBAGA,SAAA;EAcH;EAAA,QAXN,WAAA;EAWN;;;;;;;;cAAA,SAAA,GAAY,KAAA,EAAO,CAAA,OAAQ,OAAA,QAC3B,iBAAA,uBACA,YAAA,sBACA,SAAA,UACA,OAAA;EAyCY;;AAAO;;;;EA1Bd,OAAA,CAAQ,IAAA,EAAM,CAAA;;;;UAcb,UAAA;;;;;UAYM,OAAA;AAAA"}
1
+ {"version":3,"file":"queue.d.mts","names":[],"sources":["../../../../../../../core/src/utils/queue.ts"],"mappings":";;AAKA;;;;cAAa,KAAA;EAqDU;EAAA,QAnDb,KAAA;EAmDc;EAAA,iBAhDL,OAAA;EAHT;EAAA,iBAMS,QAAA;EAAA;EAAA,iBAGA,SAAA;EAGT;EAAA,QAAA,KAAA;EAMS;EAAA,iBAHA,iBAAA;;mBAGA,SAAA;EAcH;EAAA,QAXN,WAAA;EAWN;;;;;;;;cAAA,SAAA,GAAY,KAAA,EAAO,CAAA,OAAQ,OAAA,QAC3B,iBAAA,uBACA,YAAA,sBACA,SAAA,UACA,OAAA;EAyCY;;AAAO;;;;EA1Bd,OAAA,CAAQ,IAAA,EAAM,CAAA;;;;UAcb,UAAA;;;;;UAYM,OAAA;AAAA"}
@@ -1,4 +1,4 @@
1
- //#region core/src/utils/queue.ts
1
+ //#region ../core/src/utils/queue.ts
2
2
  /**
3
3
  * A utility class for managing a queue of operations.
4
4
  * Allows enqueuing values and executing a function when the queue reaches a certain size or after a specified interval.
@@ -1 +1 @@
1
- {"version":3,"file":"queue.mjs","names":[],"sources":["C:/Work/Warlock.js/core/src/utils/queue.ts"],"sourcesContent":["/**\n * A utility class for managing a queue of operations.\n * Allows enqueuing values and executing a function when the queue reaches a certain size or after a specified interval.\n * Supports both parallel and sequential execution of the queued operations.\n */\nexport class Queue<T> {\n /** The items currently in the queue. */\n private items: T[] = [];\n\n /** The maximum size of the queue before triggering execution. */\n private readonly maxSize?: number;\n\n /** The interval in milliseconds after which the queue will be executed if not already triggered by size. */\n private readonly interval: number;\n\n /** The function to execute with the items in the queue. */\n private readonly executeFn: (items: T[]) => Promise<void>;\n\n /** Timer for managing the interval-based execution. */\n private timer: NodeJS.Timeout | null = null;\n\n /** Flag to determine if execution should be parallel or sequential. */\n private readonly executeInParallel: boolean;\n\n /** The batch size for processing items. */\n private readonly batchSize: number;\n\n /** Whether the current queue is busy executing */\n private isExecuting = false;\n\n /**\n * Constructs a new Queue instance.\n * @param executeFn - The function to execute with the items in the queue.\n * @param maxSize - The maximum number of items before the queue is executed.\n * @param executeEvery - The time in milliseconds after which the queue is executed if not already triggered.\n * @param executeInParallel - Whether to execute the function in parallel or sequentially.\n * @param batchSize - The number of items to process in each batch.\n */\n public constructor(\n executeFn: (items: T[]) => Promise<void>,\n executeInParallel: boolean = true,\n executeEvery: number = 5000,\n batchSize: number,\n maxSize?: number,\n ) {\n this.executeFn = executeFn;\n this.maxSize = maxSize;\n this.interval = executeEvery;\n this.executeInParallel = executeInParallel;\n this.batchSize = batchSize;\n }\n\n /**\n * Adds an item to the queue.\n * Triggers execution if the queue reaches the maximum size.\n * Starts a timer if not already running.\n * @param item - The item to add to the queue.\n */\n public enqueue(item: T): void {\n this.items.push(item);\n if (this.maxSize && this.items.length >= this.maxSize) {\n this.execute();\n }\n\n if (!this.timer) {\n this.startTimer();\n }\n }\n\n /**\n * Starts a timer to execute the queue after the specified interval.\n */\n private startTimer(): void {\n this.timer = setInterval(() => {\n if (this.items.length > 0) {\n this.execute();\n }\n }, this.interval);\n }\n\n /**\n * Executes the function with the current items in the queue.\n * Processes items in batches and resets the timer.\n */\n private async execute(): Promise<void> {\n if (this.timer) {\n clearInterval(this.timer);\n this.timer = null;\n }\n\n this.isExecuting = true;\n\n // Now there are couple scenarios:\n // 1. Batch size has value, we need to check if its going to be executed in parallel or sequentially\n // 2. Batch size is not provided, we will execute all items in a single call\n if (this.batchSize) {\n const itemsToProcess = this.items.splice(0, this.batchSize);\n if (this.executeInParallel) {\n await Promise.all(itemsToProcess.map(item => this.executeFn([item])));\n } else {\n for (const item of itemsToProcess) {\n await this.executeFn([item]);\n }\n }\n }\n\n this.isExecuting = false;\n }\n}\n"],"mappings":";;;;;;AAKA,IAAa,QAAb,MAAsB;;;;;;;;;CAiCpB,AAAO,YACL,WACA,oBAA6B,MAC7B,eAAuB,KACvB,WACA,SACA;eArCmB,CAAC;eAYiB;qBASjB;EAiBpB,KAAK,YAAY;EACjB,KAAK,UAAU;EACf,KAAK,WAAW;EAChB,KAAK,oBAAoB;EACzB,KAAK,YAAY;CACnB;;;;;;;CAQA,AAAO,QAAQ,MAAe;EAC5B,KAAK,MAAM,KAAK,IAAI;EACpB,IAAI,KAAK,WAAW,KAAK,MAAM,UAAU,KAAK,SAC5C,KAAK,QAAQ;EAGf,IAAI,CAAC,KAAK,OACR,KAAK,WAAW;CAEpB;;;;CAKA,AAAQ,aAAmB;EACzB,KAAK,QAAQ,kBAAkB;GAC7B,IAAI,KAAK,MAAM,SAAS,GACtB,KAAK,QAAQ;EAEjB,GAAG,KAAK,QAAQ;CAClB;;;;;CAMA,MAAc,UAAyB;EACrC,IAAI,KAAK,OAAO;GACd,cAAc,KAAK,KAAK;GACxB,KAAK,QAAQ;EACf;EAEA,KAAK,cAAc;EAKnB,IAAI,KAAK,WAAW;GAClB,MAAM,iBAAiB,KAAK,MAAM,OAAO,GAAG,KAAK,SAAS;GAC1D,IAAI,KAAK,mBACP,MAAM,QAAQ,IAAI,eAAe,KAAI,SAAQ,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAEpE,KAAK,MAAM,QAAQ,gBACjB,MAAM,KAAK,UAAU,CAAC,IAAI,CAAC;EAGjC;EAEA,KAAK,cAAc;CACrB;AACF"}
1
+ {"version":3,"file":"queue.mjs","names":[],"sources":["../../../../../../../core/src/utils/queue.ts"],"sourcesContent":["/**\n * A utility class for managing a queue of operations.\n * Allows enqueuing values and executing a function when the queue reaches a certain size or after a specified interval.\n * Supports both parallel and sequential execution of the queued operations.\n */\nexport class Queue<T> {\n /** The items currently in the queue. */\n private items: T[] = [];\n\n /** The maximum size of the queue before triggering execution. */\n private readonly maxSize?: number;\n\n /** The interval in milliseconds after which the queue will be executed if not already triggered by size. */\n private readonly interval: number;\n\n /** The function to execute with the items in the queue. */\n private readonly executeFn: (items: T[]) => Promise<void>;\n\n /** Timer for managing the interval-based execution. */\n private timer: NodeJS.Timeout | null = null;\n\n /** Flag to determine if execution should be parallel or sequential. */\n private readonly executeInParallel: boolean;\n\n /** The batch size for processing items. */\n private readonly batchSize: number;\n\n /** Whether the current queue is busy executing */\n private isExecuting = false;\n\n /**\n * Constructs a new Queue instance.\n * @param executeFn - The function to execute with the items in the queue.\n * @param maxSize - The maximum number of items before the queue is executed.\n * @param executeEvery - The time in milliseconds after which the queue is executed if not already triggered.\n * @param executeInParallel - Whether to execute the function in parallel or sequentially.\n * @param batchSize - The number of items to process in each batch.\n */\n public constructor(\n executeFn: (items: T[]) => Promise<void>,\n executeInParallel: boolean = true,\n executeEvery: number = 5000,\n batchSize: number,\n maxSize?: number,\n ) {\n this.executeFn = executeFn;\n this.maxSize = maxSize;\n this.interval = executeEvery;\n this.executeInParallel = executeInParallel;\n this.batchSize = batchSize;\n }\n\n /**\n * Adds an item to the queue.\n * Triggers execution if the queue reaches the maximum size.\n * Starts a timer if not already running.\n * @param item - The item to add to the queue.\n */\n public enqueue(item: T): void {\n this.items.push(item);\n if (this.maxSize && this.items.length >= this.maxSize) {\n this.execute();\n }\n\n if (!this.timer) {\n this.startTimer();\n }\n }\n\n /**\n * Starts a timer to execute the queue after the specified interval.\n */\n private startTimer(): void {\n this.timer = setInterval(() => {\n if (this.items.length > 0) {\n this.execute();\n }\n }, this.interval);\n }\n\n /**\n * Executes the function with the current items in the queue.\n * Processes items in batches and resets the timer.\n */\n private async execute(): Promise<void> {\n if (this.timer) {\n clearInterval(this.timer);\n this.timer = null;\n }\n\n this.isExecuting = true;\n\n // Now there are couple scenarios:\n // 1. Batch size has value, we need to check if its going to be executed in parallel or sequentially\n // 2. Batch size is not provided, we will execute all items in a single call\n if (this.batchSize) {\n const itemsToProcess = this.items.splice(0, this.batchSize);\n if (this.executeInParallel) {\n await Promise.all(itemsToProcess.map(item => this.executeFn([item])));\n } else {\n for (const item of itemsToProcess) {\n await this.executeFn([item]);\n }\n }\n }\n\n this.isExecuting = false;\n }\n}\n"],"mappings":";;;;;;AAKA,IAAa,QAAb,MAAsB;;;;;;;;;CAiCpB,AAAO,YACL,WACA,oBAA6B,MAC7B,eAAuB,KACvB,WACA,SACA;eArCmB,CAAC;eAYiB;qBASjB;EAiBpB,KAAK,YAAY;EACjB,KAAK,UAAU;EACf,KAAK,WAAW;EAChB,KAAK,oBAAoB;EACzB,KAAK,YAAY;CACnB;;;;;;;CAQA,AAAO,QAAQ,MAAe;EAC5B,KAAK,MAAM,KAAK,IAAI;EACpB,IAAI,KAAK,WAAW,KAAK,MAAM,UAAU,KAAK,SAC5C,KAAK,QAAQ;EAGf,IAAI,CAAC,KAAK,OACR,KAAK,WAAW;CAEpB;;;;CAKA,AAAQ,aAAmB;EACzB,KAAK,QAAQ,kBAAkB;GAC7B,IAAI,KAAK,MAAM,SAAS,GACtB,KAAK,QAAQ;EAEjB,GAAG,KAAK,QAAQ;CAClB;;;;;CAMA,MAAc,UAAyB;EACrC,IAAI,KAAK,OAAO;GACd,cAAc,KAAK,KAAK;GACxB,KAAK,QAAQ;EACf;EAEA,KAAK,cAAc;EAKnB,IAAI,KAAK,WAAW;GAClB,MAAM,iBAAiB,KAAK,MAAM,OAAO,GAAG,KAAK,SAAS;GAC1D,IAAI,KAAK,mBACP,MAAM,QAAQ,IAAI,eAAe,KAAI,SAAQ,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAEpE,KAAK,MAAM,QAAQ,gBACjB,MAAM,KAAK,UAAU,CAAC,IAAI,CAAC;EAGjC;EAEA,KAAK,cAAc;CACrB;AACF"}
@@ -1,4 +1,4 @@
1
- //#region core/src/utils/sleep.d.ts
1
+ //#region ../core/src/utils/sleep.d.ts
2
2
  declare function sleep(ms: number): Promise<unknown>;
3
3
  //#endregion
4
4
  export { sleep };
@@ -1 +1 @@
1
- {"version":3,"file":"sleep.d.mts","names":[],"sources":["C:/Work/Warlock.js/core/src/utils/sleep.ts"],"mappings":";iBAAgB,KAAA,CAAM,EAAA,WAAU,OAAA"}
1
+ {"version":3,"file":"sleep.d.mts","names":[],"sources":["../../../../../../../core/src/utils/sleep.ts"],"mappings":";iBAAgB,KAAA,CAAM,EAAA,WAAU,OAAA"}
@@ -1,4 +1,4 @@
1
- //#region core/src/utils/sleep.ts
1
+ //#region ../core/src/utils/sleep.ts
2
2
  function sleep(ms) {
3
3
  return new Promise((resolve) => setTimeout(resolve, ms));
4
4
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sleep.mjs","names":[],"sources":["C:/Work/Warlock.js/core/src/utils/sleep.ts"],"sourcesContent":["export function sleep(ms: number) {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n"],"mappings":";AAAA,SAAgB,MAAM,IAAY;CAChC,OAAO,IAAI,SAAQ,YAAW,WAAW,SAAS,EAAE,CAAC;AACvD"}
1
+ {"version":3,"file":"sleep.mjs","names":[],"sources":["../../../../../../../core/src/utils/sleep.ts"],"sourcesContent":["export function sleep(ms: number) {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n"],"mappings":";AAAA,SAAgB,MAAM,IAAY;CAChC,OAAO,IAAI,SAAQ,YAAW,WAAW,SAAS,EAAE,CAAC;AACvD"}
@@ -1,6 +1,6 @@
1
1
  import { Model } from "@warlock.js/cascade";
2
2
 
3
- //#region core/src/utils/sluggable.d.ts
3
+ //#region ../core/src/utils/sluggable.d.ts
4
4
  /**
5
5
  * Used for model castings
6
6
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sluggable.d.mts","names":[],"sources":["C:/Work/Warlock.js/core/src/utils/sluggable.ts"],"mappings":";;;;;AAMA;iBAAgB,SAAA,CAAU,YAAA,UAAsB,cAAA,aACtC,KAAA,EAAO,KAAK"}
1
+ {"version":3,"file":"sluggable.d.mts","names":[],"sources":["../../../../../../../core/src/utils/sluggable.ts"],"mappings":";;;;;AAMA;iBAAgB,SAAA,CAAU,YAAA,UAAsB,cAAA,aACtC,KAAA,EAAO,KAAK"}
@@ -1,6 +1,6 @@
1
1
  import slug from "@mongez/slug";
2
2
 
3
- //#region core/src/utils/sluggable.ts
3
+ //#region ../core/src/utils/sluggable.ts
4
4
  /**
5
5
  * Used for model castings
6
6
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sluggable.mjs","names":[],"sources":["C:/Work/Warlock.js/core/src/utils/sluggable.ts"],"sourcesContent":["import slug from \"@mongez/slug\";\nimport type { Model } from \"@warlock.js/cascade\";\n\n/**\n * Used for model castings\n */\nexport function sluggable(generateFrom: string, slugLocaleCode = \"en\") {\n return (model: Model) => {\n let value = model.get(generateFrom);\n\n if (!value) return \"\";\n\n if (Array.isArray(value)) {\n value = (value as any[]).find((value) => value.localeCode === slugLocaleCode)?.value;\n }\n\n const slugFunction = (slug as any).default || slug;\n\n return slugFunction(String(value));\n };\n}\n"],"mappings":";;;;;;AAMA,SAAgB,UAAU,cAAsB,iBAAiB,MAAM;CACrE,QAAQ,UAAiB;EACvB,IAAI,QAAQ,MAAM,IAAI,YAAY;EAElC,IAAI,CAAC,OAAO,OAAO;EAEnB,IAAI,MAAM,QAAQ,KAAK,GACrB,QAAS,MAAgB,MAAM,UAAU,MAAM,eAAe,cAAc,GAAG;EAKjF,QAFsB,KAAa,WAAW,MAE1B,OAAO,KAAK,CAAC;CACnC;AACF"}
1
+ {"version":3,"file":"sluggable.mjs","names":[],"sources":["../../../../../../../core/src/utils/sluggable.ts"],"sourcesContent":["import slug from \"@mongez/slug\";\nimport type { Model } from \"@warlock.js/cascade\";\n\n/**\n * Used for model castings\n */\nexport function sluggable(generateFrom: string, slugLocaleCode = \"en\") {\n return (model: Model) => {\n let value = model.get(generateFrom);\n\n if (!value) return \"\";\n\n if (Array.isArray(value)) {\n value = (value as any[]).find((value) => value.localeCode === slugLocaleCode)?.value;\n }\n\n const slugFunction = (slug as any).default || slug;\n\n return slugFunction(String(value));\n };\n}\n"],"mappings":";;;;;;AAMA,SAAgB,UAAU,cAAsB,iBAAiB,MAAM;CACrE,QAAQ,UAAiB;EACvB,IAAI,QAAQ,MAAM,IAAI,YAAY;EAElC,IAAI,CAAC,OAAO,OAAO;EAEnB,IAAI,MAAM,QAAQ,KAAK,GACrB,QAAS,MAAgB,MAAM,UAAU,MAAM,eAAe,cAAc,GAAG;EAKjF,QAFsB,KAAa,WAAW,MAE1B,OAAO,KAAK,CAAC;CACnC;AACF"}
@@ -1,4 +1,4 @@
1
- //#region core/src/utils/to-json.d.ts
1
+ //#region ../core/src/utils/to-json.d.ts
2
2
  declare function toJson(value: any): Promise<any>;
3
3
  //#endregion
4
4
  export { toJson };
@@ -1 +1 @@
1
- {"version":3,"file":"to-json.d.mts","names":[],"sources":["C:/Work/Warlock.js/core/src/utils/to-json.ts"],"mappings":";iBAEsB,MAAA,CAAO,KAAA,QAAa,OAAO"}
1
+ {"version":3,"file":"to-json.d.mts","names":[],"sources":["../../../../../../../core/src/utils/to-json.ts"],"mappings":";iBAEsB,MAAA,CAAO,KAAA,QAAa,OAAO"}
@@ -1,6 +1,6 @@
1
1
  import { isIterable, isPlainObject, isScalar } from "@mongez/supportive-is";
2
2
 
3
- //#region core/src/utils/to-json.ts
3
+ //#region ../core/src/utils/to-json.ts
4
4
  async function toJson(value) {
5
5
  if (!value || isScalar(value)) return value;
6
6
  if (value.toJSON) return await value.toJSON();
@@ -1 +1 @@
1
- {"version":3,"file":"to-json.mjs","names":[],"sources":["C:/Work/Warlock.js/core/src/utils/to-json.ts"],"sourcesContent":["import { isIterable, isPlainObject, isScalar } from \"@mongez/supportive-is\";\n\nexport async function toJson(value: any): Promise<any> {\n // if it is a falsy value, return it\n if (!value || isScalar(value)) return value;\n\n // if it has a `toJSON` method, call it and await the result then return it\n if (value.toJSON) {\n return await value.toJSON();\n }\n\n // if it is iterable, an array or array-like object then parse each item\n if (isIterable(value)) {\n const values = Array.from(value);\n\n return Promise.all(\n values.map(async (item: any) => {\n return await toJson(item);\n }),\n );\n }\n\n // if not plain object, then return it\n if (!isPlainObject(value)) {\n return value;\n }\n\n // loop over the object and check if the value and call `parse` on it\n for (const key in value) {\n const subValue = value[key];\n\n value[key] = await toJson(subValue);\n }\n\n return value;\n}\n"],"mappings":";;;AAEA,eAAsB,OAAO,OAA0B;CAErD,IAAI,CAAC,SAAS,SAAS,KAAK,GAAG,OAAO;CAGtC,IAAI,MAAM,QACR,OAAO,MAAM,MAAM,OAAO;CAI5B,IAAI,WAAW,KAAK,GAAG;EACrB,MAAM,SAAS,MAAM,KAAK,KAAK;EAE/B,OAAO,QAAQ,IACb,OAAO,IAAI,OAAO,SAAc;GAC9B,OAAO,MAAM,OAAO,IAAI;EAC1B,CAAC,CACH;CACF;CAGA,IAAI,CAAC,cAAc,KAAK,GACtB,OAAO;CAIT,KAAK,MAAM,OAAO,OAAO;EACvB,MAAM,WAAW,MAAM;EAEvB,MAAM,OAAO,MAAM,OAAO,QAAQ;CACpC;CAEA,OAAO;AACT"}
1
+ {"version":3,"file":"to-json.mjs","names":[],"sources":["../../../../../../../core/src/utils/to-json.ts"],"sourcesContent":["import { isIterable, isPlainObject, isScalar } from \"@mongez/supportive-is\";\n\nexport async function toJson(value: any): Promise<any> {\n // if it is a falsy value, return it\n if (!value || isScalar(value)) return value;\n\n // if it has a `toJSON` method, call it and await the result then return it\n if (value.toJSON) {\n return await value.toJSON();\n }\n\n // if it is iterable, an array or array-like object then parse each item\n if (isIterable(value)) {\n const values = Array.from(value);\n\n return Promise.all(\n values.map(async (item: any) => {\n return await toJson(item);\n }),\n );\n }\n\n // if not plain object, then return it\n if (!isPlainObject(value)) {\n return value;\n }\n\n // loop over the object and check if the value and call `parse` on it\n for (const key in value) {\n const subValue = value[key];\n\n value[key] = await toJson(subValue);\n }\n\n return value;\n}\n"],"mappings":";;;AAEA,eAAsB,OAAO,OAA0B;CAErD,IAAI,CAAC,SAAS,SAAS,KAAK,GAAG,OAAO;CAGtC,IAAI,MAAM,QACR,OAAO,MAAM,MAAM,OAAO;CAI5B,IAAI,WAAW,KAAK,GAAG;EACrB,MAAM,SAAS,MAAM,KAAK,KAAK;EAE/B,OAAO,QAAQ,IACb,OAAO,IAAI,OAAO,SAAc;GAC9B,OAAO,MAAM,OAAO,IAAI;EAC1B,CAAC,CACH;CACF;CAGA,IAAI,CAAC,cAAc,KAAK,GACtB,OAAO;CAIT,KAAK,MAAM,OAAO,OAAO;EACvB,MAAM,WAAW,MAAM;EAEvB,MAAM,OAAO,MAAM,OAAO,QAAQ;CACpC;CAEA,OAAO;AACT"}
@@ -1,4 +1,4 @@
1
- //#region core/src/utils/types.d.ts
1
+ //#region ../core/src/utils/types.d.ts
2
2
  type AppConfigurations = {
3
3
  /**
4
4
  * Set default timezone
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.mts","names":[],"sources":["C:/Work/Warlock.js/core/src/utils/types.ts"],"mappings":";KAAY,iBAAA;EAAA;;;EAIV,QAAA;EAAA;;;EAIA,OAAA;EAcA;;AAAO;;;EARP,UAAA;;;;EAIA,WAAA;;;;EAIA,OAAA;AAAA"}
1
+ {"version":3,"file":"types.d.mts","names":[],"sources":["../../../../../../../core/src/utils/types.ts"],"mappings":";KAAY,iBAAA;EAAA;;;EAIV,QAAA;EAAA;;;EAIA,OAAA;EAcA;;AAAO;;;EARP,UAAA;;;;EAIA,WAAA;;;;EAIA,OAAA;AAAA"}
@@ -1,4 +1,4 @@
1
- //#region core/src/utils/urls.d.ts
1
+ //#region ../core/src/utils/urls.d.ts
2
2
  /**
3
3
  * Set base url
4
4
  */
@@ -1 +1 @@
1
- {"version":3,"file":"urls.d.mts","names":[],"sources":["C:/Work/Warlock.js/core/src/utils/urls.ts"],"mappings":";;AAOA;;iBAAgB,UAAA,CAAW,GAAW;;AAAA;AAOtC;iBAAgB,GAAA,CAAI,IAAS;;;AAAA;iBAOb,UAAA,CAAW,IAAS;;;;iBAOpB,SAAA,CAAU,IAAS;AAAnC;;;AAAA,iBAOgB,SAAA,CAAU,IAAS"}
1
+ {"version":3,"file":"urls.d.mts","names":[],"sources":["../../../../../../../core/src/utils/urls.ts"],"mappings":";;AAOA;;iBAAgB,UAAA,CAAW,GAAW;;AAAA;AAOtC;iBAAgB,GAAA,CAAI,IAAS;;;AAAA;iBAOb,UAAA,CAAW,IAAS;;;;iBAOpB,SAAA,CAAU,IAAS;AAAnC;;;AAAA,iBAOgB,SAAA,CAAU,IAAS"}
@@ -1,6 +1,6 @@
1
1
  import { ltrim, rtrim } from "@mongez/reinforcements";
2
2
 
3
- //#region core/src/utils/urls.ts
3
+ //#region ../core/src/utils/urls.ts
4
4
  let baseUrl = "";
5
5
  /**
6
6
  * Set base url
@@ -1 +1 @@
1
- {"version":3,"file":"urls.mjs","names":[],"sources":["C:/Work/Warlock.js/core/src/utils/urls.ts"],"sourcesContent":["import { ltrim, rtrim } from \"@mongez/reinforcements\";\n\nlet baseUrl = \"\";\n\n/**\n * Set base url\n */\nexport function setBaseUrl(url: string) {\n baseUrl = url;\n}\n\n/**\n * Get full path for the given path\n */\nexport function url(path = \"\") {\n return rtrim(baseUrl, \"/\") + \"/\" + ltrim(path, \"/\");\n}\n\n/**\n * Get uploads url\n */\nexport function uploadsUrl(path = \"\") {\n return url(\"/uploads/\" + ltrim(path, \"/\"));\n}\n\n/**\n * Get full path for the given path related to public route\n */\nexport function publicUrl(path = \"\") {\n return url(\"/public/\" + ltrim(path, \"/\"));\n}\n\n/**\n * Assets url\n */\nexport function assetsUrl(path = \"\") {\n return publicUrl(\"/assets/\" + ltrim(path, \"/\"));\n}\n"],"mappings":";;;AAEA,IAAI,UAAU;;;;AAKd,SAAgB,WAAW,KAAa;CACtC,UAAU;AACZ;;;;AAKA,SAAgB,IAAI,OAAO,IAAI;CAC7B,OAAO,MAAM,SAAS,GAAG,IAAI,MAAM,MAAM,MAAM,GAAG;AACpD;;;;AAKA,SAAgB,WAAW,OAAO,IAAI;CACpC,OAAO,IAAI,cAAc,MAAM,MAAM,GAAG,CAAC;AAC3C;;;;AAKA,SAAgB,UAAU,OAAO,IAAI;CACnC,OAAO,IAAI,aAAa,MAAM,MAAM,GAAG,CAAC;AAC1C;;;;AAKA,SAAgB,UAAU,OAAO,IAAI;CACnC,OAAO,UAAU,aAAa,MAAM,MAAM,GAAG,CAAC;AAChD"}
1
+ {"version":3,"file":"urls.mjs","names":[],"sources":["../../../../../../../core/src/utils/urls.ts"],"sourcesContent":["import { ltrim, rtrim } from \"@mongez/reinforcements\";\n\nlet baseUrl = \"\";\n\n/**\n * Set base url\n */\nexport function setBaseUrl(url: string) {\n baseUrl = url;\n}\n\n/**\n * Get full path for the given path\n */\nexport function url(path = \"\") {\n return rtrim(baseUrl, \"/\") + \"/\" + ltrim(path, \"/\");\n}\n\n/**\n * Get uploads url\n */\nexport function uploadsUrl(path = \"\") {\n return url(\"/uploads/\" + ltrim(path, \"/\"));\n}\n\n/**\n * Get full path for the given path related to public route\n */\nexport function publicUrl(path = \"\") {\n return url(\"/public/\" + ltrim(path, \"/\"));\n}\n\n/**\n * Assets url\n */\nexport function assetsUrl(path = \"\") {\n return publicUrl(\"/assets/\" + ltrim(path, \"/\"));\n}\n"],"mappings":";;;AAEA,IAAI,UAAU;;;;AAKd,SAAgB,WAAW,KAAa;CACtC,UAAU;AACZ;;;;AAKA,SAAgB,IAAI,OAAO,IAAI;CAC7B,OAAO,MAAM,SAAS,GAAG,IAAI,MAAM,MAAM,MAAM,GAAG;AACpD;;;;AAKA,SAAgB,WAAW,OAAO,IAAI;CACpC,OAAO,IAAI,cAAc,MAAM,MAAM,GAAG,CAAC;AAC3C;;;;AAKA,SAAgB,UAAU,OAAO,IAAI;CACnC,OAAO,IAAI,aAAa,MAAM,MAAM,GAAG,CAAC;AAC1C;;;;AAKA,SAAgB,UAAU,OAAO,IAAI;CACnC,OAAO,UAAU,aAAa,MAAM,MAAM,GAAG,CAAC;AAChD"}
@@ -1,4 +1,4 @@
1
- //#region core/src/utils/version-compare.d.ts
1
+ //#region ../core/src/utils/version-compare.d.ts
2
2
  /**
3
3
  * Zero-dependency semver comparison — just enough for the framework's
4
4
  * self-update tooling (the dev-server update notice + the `warlock update`
@@ -1 +1 @@
1
- {"version":3,"file":"version-compare.d.mts","names":[],"sources":["C:/Work/Warlock.js/core/src/utils/version-compare.ts"],"mappings":";;AAkGA;;;;AAA8D;;;;;;;;;;iBAA9C,cAAA,CAAe,MAAA,UAAgB,OAAe"}
1
+ {"version":3,"file":"version-compare.d.mts","names":[],"sources":["../../../../../../../core/src/utils/version-compare.ts"],"mappings":";;AAkGA;;;;AAA8D;;;;;;;;;;iBAA9C,cAAA,CAAe,MAAA,UAAgB,OAAe"}