@warlock.js/core 5.20.0 → 5.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (295) hide show
  1. package/CHANGELOG.md +1124 -1086
  2. package/esm/benchmark/benchmark.mjs +34 -25
  3. package/esm/benchmark/benchmark.mjs.map +1 -1
  4. package/esm/benchmark/profiler.d.mts.map +1 -1
  5. package/esm/benchmark/profiler.mjs +8 -3
  6. package/esm/benchmark/profiler.mjs.map +1 -1
  7. package/esm/bootstrap.d.mts.map +1 -1
  8. package/esm/bootstrap.mjs +3 -0
  9. package/esm/bootstrap.mjs.map +1 -1
  10. package/esm/cache/database-cache-driver.d.mts +2 -2
  11. package/esm/cache/database-cache-driver.d.mts.map +1 -1
  12. package/esm/cache/database-cache-driver.mjs +3 -2
  13. package/esm/cache/database-cache-driver.mjs.map +1 -1
  14. package/esm/cli/cli-commands.manager.mjs +16 -14
  15. package/esm/cli/cli-commands.manager.mjs.map +1 -1
  16. package/esm/cli/commands/add.command.mjs +1 -1
  17. package/esm/cli/commands/add.command.mjs.map +1 -1
  18. package/esm/cli/commands/doctor/checks/optional-peers.check.mjs +3 -2
  19. package/esm/cli/commands/doctor/checks/optional-peers.check.mjs.map +1 -1
  20. package/esm/cli/commands/generate/generate.command.mjs +20 -0
  21. package/esm/cli/commands/generate/generate.command.mjs.map +1 -1
  22. package/esm/cli/commands/generate/generators/column-dsl-parser.mjs +4 -2
  23. package/esm/cli/commands/generate/generators/column-dsl-parser.mjs.map +1 -1
  24. package/esm/cli/commands/generate/generators/controller.generator.mjs +1 -1
  25. package/esm/cli/commands/generate/generators/controller.generator.mjs.map +1 -1
  26. package/esm/cli/commands/generate/generators/migration.generator.mjs +22 -6
  27. package/esm/cli/commands/generate/generators/migration.generator.mjs.map +1 -1
  28. package/esm/cli/commands/generate/generators/model.generator.mjs +22 -7
  29. package/esm/cli/commands/generate/generators/model.generator.mjs.map +1 -1
  30. package/esm/cli/commands/generate/generators/module.generator.mjs +8 -6
  31. package/esm/cli/commands/generate/generators/module.generator.mjs.map +1 -1
  32. package/esm/cli/commands/generate/generators/repository.generator.mjs +1 -1
  33. package/esm/cli/commands/generate/generators/repository.generator.mjs.map +1 -1
  34. package/esm/cli/commands/generate/generators/resource.generator.mjs +1 -1
  35. package/esm/cli/commands/generate/generators/resource.generator.mjs.map +1 -1
  36. package/esm/cli/commands/generate/generators/service.generator.mjs +1 -1
  37. package/esm/cli/commands/generate/generators/service.generator.mjs.map +1 -1
  38. package/esm/cli/commands/generate/templates/stubs.mjs +7 -7
  39. package/esm/cli/commands/generate/templates/stubs.mjs.map +1 -1
  40. package/esm/cli/commands/generate/utils/writer.mjs +25 -1
  41. package/esm/cli/commands/generate/utils/writer.mjs.map +1 -1
  42. package/esm/cli/commands/routes/routes-command.action.mjs +5 -1
  43. package/esm/cli/commands/routes/routes-command.action.mjs.map +1 -1
  44. package/esm/cli/commands/routes/with-console-on-stderr.mjs +24 -0
  45. package/esm/cli/commands/routes/with-console-on-stderr.mjs.map +1 -0
  46. package/esm/cli/commands/routes.command.mjs +3 -4
  47. package/esm/cli/commands/routes.command.mjs.map +1 -1
  48. package/esm/cli/commands/start-production.command.mjs +5 -5
  49. package/esm/cli/commands/start-production.command.mjs.map +1 -1
  50. package/esm/cli/commands/storage-put.action.mjs +2 -1
  51. package/esm/cli/commands/storage-put.action.mjs.map +1 -1
  52. package/esm/cli/commands/update.command.mjs +1 -0
  53. package/esm/cli/commands/update.command.mjs.map +1 -1
  54. package/esm/cli/parse-cli-args.mjs +13 -1
  55. package/esm/cli/parse-cli-args.mjs.map +1 -1
  56. package/esm/commands/cli-command.d.mts.map +1 -1
  57. package/esm/commands/cli-command.mjs +4 -2
  58. package/esm/commands/cli-command.mjs.map +1 -1
  59. package/esm/commands/index.mjs +3 -0
  60. package/esm/config/config-key-from-path.mjs +20 -0
  61. package/esm/config/config-key-from-path.mjs.map +1 -0
  62. package/esm/config/config-loader.d.mts.map +1 -1
  63. package/esm/config/config-loader.mjs +2 -3
  64. package/esm/config/config-loader.mjs.map +1 -1
  65. package/esm/connectors/connectors-manager.d.mts +4 -0
  66. package/esm/connectors/connectors-manager.d.mts.map +1 -1
  67. package/esm/connectors/connectors-manager.mjs +30 -2
  68. package/esm/connectors/connectors-manager.mjs.map +1 -1
  69. package/esm/connectors/socket-connector.d.mts +29 -0
  70. package/esm/connectors/socket-connector.d.mts.map +1 -1
  71. package/esm/connectors/socket-connector.mjs +73 -9
  72. package/esm/connectors/socket-connector.mjs.map +1 -1
  73. package/esm/connectors/types.d.mts +1 -1
  74. package/esm/connectors/types.mjs.map +1 -1
  75. package/esm/database/models/database-log/database-log.d.mts +47 -24
  76. package/esm/database/models/database-log/database-log.d.mts.map +1 -1
  77. package/esm/database/models/database-log/database-log.mjs +36 -4
  78. package/esm/database/models/database-log/database-log.mjs.map +1 -1
  79. package/esm/database/seed-command-action.mjs +10 -2
  80. package/esm/database/seed-command-action.mjs.map +1 -1
  81. package/esm/dev-server/development-server.mjs +11 -4
  82. package/esm/dev-server/development-server.mjs.map +1 -1
  83. package/esm/dev-server/file-event-handler.mjs +26 -6
  84. package/esm/dev-server/file-event-handler.mjs.map +1 -1
  85. package/esm/dev-server/file-manager.d.mts.map +1 -1
  86. package/esm/dev-server/file-manager.mjs +2 -2
  87. package/esm/dev-server/file-manager.mjs.map +1 -1
  88. package/esm/dev-server/files-orchestrator.mjs +3 -1
  89. package/esm/dev-server/files-orchestrator.mjs.map +1 -1
  90. package/esm/dev-server/files-watcher.mjs +64 -5
  91. package/esm/dev-server/files-watcher.mjs.map +1 -1
  92. package/esm/dev-server/health-checker/files-healthcare.manager.mjs +31 -9
  93. package/esm/dev-server/health-checker/files-healthcare.manager.mjs.map +1 -1
  94. package/esm/dev-server/health-checker/workers/eslint-health.worker.mjs +11 -7
  95. package/esm/dev-server/health-checker/workers/eslint-health.worker.mjs.map +1 -1
  96. package/esm/dev-server/loader/load-hook.mjs +1 -1
  97. package/esm/dev-server/loader/register-loader.mjs +1 -1
  98. package/esm/dev-server/manifest-manager.d.mts.map +1 -1
  99. package/esm/dev-server/manifest-manager.mjs +12 -6
  100. package/esm/dev-server/manifest-manager.mjs.map +1 -1
  101. package/esm/dev-server/parse-imports.mjs +9 -0
  102. package/esm/dev-server/parse-imports.mjs.map +1 -1
  103. package/esm/dev-server/register-dev-shortcuts.mjs +2 -1
  104. package/esm/dev-server/register-dev-shortcuts.mjs.map +1 -1
  105. package/esm/dev-server/shortcuts.mjs +2 -2
  106. package/esm/dev-server/shortcuts.mjs.map +1 -1
  107. package/esm/dev-server/special-file-patterns.mjs +18 -0
  108. package/esm/dev-server/special-file-patterns.mjs.map +1 -0
  109. package/esm/dev-server/special-files-collector.d.mts.map +1 -1
  110. package/esm/dev-server/special-files-collector.mjs +2 -5
  111. package/esm/dev-server/special-files-collector.mjs.map +1 -1
  112. package/esm/dev-server/start-development-server.mjs +1 -2
  113. package/esm/dev-server/start-development-server.mjs.map +1 -1
  114. package/esm/dev-server/supervisor.mjs +23 -3
  115. package/esm/dev-server/supervisor.mjs.map +1 -1
  116. package/esm/dev-server/tsconfig-manager.mjs +22 -12
  117. package/esm/dev-server/tsconfig-manager.mjs.map +1 -1
  118. package/esm/dev-server/type-generator.mjs +10 -9
  119. package/esm/dev-server/type-generator.mjs.map +1 -1
  120. package/esm/encryption/encrypt.d.mts.map +1 -1
  121. package/esm/encryption/encrypt.mjs +16 -5
  122. package/esm/encryption/encrypt.mjs.map +1 -1
  123. package/esm/encryption/hash.d.mts.map +1 -1
  124. package/esm/encryption/hash.mjs +2 -0
  125. package/esm/encryption/hash.mjs.map +1 -1
  126. package/esm/encryption/password.d.mts.map +1 -1
  127. package/esm/encryption/password.mjs +3 -1
  128. package/esm/encryption/password.mjs.map +1 -1
  129. package/esm/generations/features/index.mjs +1 -1
  130. package/esm/generations/features/mysql.feature.mjs +9 -2
  131. package/esm/generations/features/mysql.feature.mjs.map +1 -1
  132. package/esm/generations/features/test.feature.mjs +2 -1
  133. package/esm/generations/features/test.feature.mjs.map +1 -1
  134. package/esm/generations/features/web.feature.mjs +4 -2
  135. package/esm/generations/features/web.feature.mjs.map +1 -1
  136. package/esm/http/csrf-origin-policy.d.mts.map +1 -1
  137. package/esm/http/csrf-origin-policy.mjs +5 -2
  138. package/esm/http/csrf-origin-policy.mjs.map +1 -1
  139. package/esm/http/flush-pending-cookies.mjs +52 -0
  140. package/esm/http/flush-pending-cookies.mjs.map +1 -0
  141. package/esm/http/middleware/cache-response-middleware.d.mts.map +1 -1
  142. package/esm/http/middleware/cache-response-middleware.mjs +4 -2
  143. package/esm/http/middleware/cache-response-middleware.mjs.map +1 -1
  144. package/esm/http/middleware/inject-request-context.d.mts.map +1 -1
  145. package/esm/http/middleware/inject-request-context.mjs +14 -3
  146. package/esm/http/middleware/inject-request-context.mjs.map +1 -1
  147. package/esm/http/middleware/utils/cidr-match.d.mts +1 -1
  148. package/esm/http/middleware/utils/cidr-match.d.mts.map +1 -1
  149. package/esm/http/middleware/utils/cidr-match.mjs +11 -2
  150. package/esm/http/middleware/utils/cidr-match.mjs.map +1 -1
  151. package/esm/http/middleware/utils/idempotency-key.mjs +1 -1
  152. package/esm/http/middleware/utils/idempotency-key.mjs.map +1 -1
  153. package/esm/http/plugins.d.mts.map +1 -1
  154. package/esm/http/plugins.mjs +10 -1
  155. package/esm/http/plugins.mjs.map +1 -1
  156. package/esm/http/request.d.mts +12 -1
  157. package/esm/http/request.d.mts.map +1 -1
  158. package/esm/http/request.mjs +35 -7
  159. package/esm/http/request.mjs.map +1 -1
  160. package/esm/http/response.d.mts +16 -0
  161. package/esm/http/response.d.mts.map +1 -1
  162. package/esm/http/response.mjs +75 -37
  163. package/esm/http/response.mjs.map +1 -1
  164. package/esm/http/types.d.mts +24 -0
  165. package/esm/http/types.d.mts.map +1 -1
  166. package/esm/http/uploads/uploaded-file.controller.mjs +1 -1
  167. package/esm/http/uploads-config.mjs +2 -1
  168. package/esm/http/uploads-config.mjs.map +1 -1
  169. package/esm/http/uploads-types.d.mts +3 -3
  170. package/esm/image/image.d.mts +1 -1
  171. package/esm/image/image.d.mts.map +1 -1
  172. package/esm/image/image.mjs +25 -15
  173. package/esm/image/image.mjs.map +1 -1
  174. package/esm/index.d.mts +4 -3
  175. package/esm/index.mjs +5 -3
  176. package/esm/logger/logger.mjs +6 -1
  177. package/esm/logger/logger.mjs.map +1 -1
  178. package/esm/mail/config.d.mts.map +1 -1
  179. package/esm/mail/config.mjs +31 -21
  180. package/esm/mail/config.mjs.map +1 -1
  181. package/esm/mail/react-mail.mjs +6 -3
  182. package/esm/mail/react-mail.mjs.map +1 -1
  183. package/esm/mail/send-mail.d.mts.map +1 -1
  184. package/esm/mail/send-mail.mjs +40 -19
  185. package/esm/mail/send-mail.mjs.map +1 -1
  186. package/esm/production/build-contributions.mjs +3 -0
  187. package/esm/production/build-contributions.mjs.map +1 -1
  188. package/esm/production/esbuild-plugins.mjs +3 -2
  189. package/esm/production/esbuild-plugins.mjs.map +1 -1
  190. package/esm/production/production-builder.mjs +32 -36
  191. package/esm/production/production-builder.mjs.map +1 -1
  192. package/esm/production/production-supervisor.mjs +12 -5
  193. package/esm/production/production-supervisor.mjs.map +1 -1
  194. package/esm/repositories/adapters/cascade/cascade-adapter.d.mts +3 -1
  195. package/esm/repositories/adapters/cascade/cascade-adapter.d.mts.map +1 -1
  196. package/esm/repositories/adapters/cascade/cascade-adapter.mjs +17 -5
  197. package/esm/repositories/adapters/cascade/cascade-adapter.mjs.map +1 -1
  198. package/esm/repositories/adapters/cascade/cascade-query-builder.d.mts +3 -3
  199. package/esm/repositories/adapters/cascade/cascade-query-builder.mjs.map +1 -1
  200. package/esm/repositories/adapters/cascade/filter-applicator.mjs +88 -61
  201. package/esm/repositories/adapters/cascade/filter-applicator.mjs.map +1 -1
  202. package/esm/repositories/adapters/cascade/index.d.mts +1 -1
  203. package/esm/repositories/adapters/cascade/index.mjs +1 -1
  204. package/esm/repositories/contracts/query-builder.contract.d.mts +3 -3
  205. package/esm/repositories/contracts/types.d.mts +5 -0
  206. package/esm/repositories/contracts/types.d.mts.map +1 -1
  207. package/esm/repositories/index.d.mts +1 -1
  208. package/esm/repositories/index.mjs +1 -1
  209. package/esm/repositories/repository.manager.d.mts +65 -3
  210. package/esm/repositories/repository.manager.d.mts.map +1 -1
  211. package/esm/repositories/repository.manager.mjs +146 -57
  212. package/esm/repositories/repository.manager.mjs.map +1 -1
  213. package/esm/resource/resource-field-builder.d.mts.map +1 -1
  214. package/esm/resource/resource-field-builder.mjs +1 -0
  215. package/esm/resource/resource-field-builder.mjs.map +1 -1
  216. package/esm/resource/resource.d.mts +10 -3
  217. package/esm/resource/resource.d.mts.map +1 -1
  218. package/esm/resource/resource.mjs +19 -5
  219. package/esm/resource/resource.mjs.map +1 -1
  220. package/esm/restful/restful.d.mts +12 -5
  221. package/esm/restful/restful.d.mts.map +1 -1
  222. package/esm/restful/restful.mjs +47 -16
  223. package/esm/restful/restful.mjs.map +1 -1
  224. package/esm/router/build-route-rate-limit.mjs +22 -0
  225. package/esm/router/build-route-rate-limit.mjs.map +1 -0
  226. package/esm/router/dev-dispatch.mjs +60 -0
  227. package/esm/router/dev-dispatch.mjs.map +1 -0
  228. package/esm/router/route-builder.mjs +4 -1
  229. package/esm/router/route-builder.mjs.map +1 -1
  230. package/esm/router/route-registry.d.mts.map +1 -1
  231. package/esm/router/route-registry.mjs +2 -2
  232. package/esm/router/route-registry.mjs.map +1 -1
  233. package/esm/router/router.d.mts +1 -1
  234. package/esm/router/router.d.mts.map +1 -1
  235. package/esm/router/router.mjs +57 -39
  236. package/esm/router/router.mjs.map +1 -1
  237. package/esm/socket/types.d.mts +9 -2
  238. package/esm/socket/types.d.mts.map +1 -1
  239. package/esm/storage/drivers/cloud-driver.d.mts +17 -0
  240. package/esm/storage/drivers/cloud-driver.d.mts.map +1 -1
  241. package/esm/storage/drivers/cloud-driver.mjs +53 -17
  242. package/esm/storage/drivers/cloud-driver.mjs.map +1 -1
  243. package/esm/storage/drivers/local-driver.d.mts +7 -5
  244. package/esm/storage/drivers/local-driver.d.mts.map +1 -1
  245. package/esm/storage/drivers/local-driver.mjs +31 -26
  246. package/esm/storage/drivers/local-driver.mjs.map +1 -1
  247. package/esm/storage/index.d.mts +2 -1
  248. package/esm/storage/index.mjs +2 -1
  249. package/esm/storage/scoped-storage.d.mts +13 -1
  250. package/esm/storage/scoped-storage.d.mts.map +1 -1
  251. package/esm/storage/scoped-storage.mjs +18 -8
  252. package/esm/storage/scoped-storage.mjs.map +1 -1
  253. package/esm/storage/storage.d.mts +0 -5
  254. package/esm/storage/storage.d.mts.map +1 -1
  255. package/esm/storage/storage.mjs +7 -16
  256. package/esm/storage/storage.mjs.map +1 -1
  257. package/esm/storage/types.d.mts +22 -4
  258. package/esm/storage/types.d.mts.map +1 -1
  259. package/esm/storage/utils/classify-ip-address.d.mts +13 -0
  260. package/esm/storage/utils/classify-ip-address.d.mts.map +1 -0
  261. package/esm/storage/utils/classify-ip-address.mjs +98 -0
  262. package/esm/storage/utils/classify-ip-address.mjs.map +1 -0
  263. package/esm/storage/utils/safe-fetch.d.mts +3 -12
  264. package/esm/storage/utils/safe-fetch.d.mts.map +1 -1
  265. package/esm/storage/utils/safe-fetch.mjs +3 -48
  266. package/esm/storage/utils/safe-fetch.mjs.map +1 -1
  267. package/esm/updater/update-warlock-packages.mjs +11 -1
  268. package/esm/updater/update-warlock-packages.mjs.map +1 -1
  269. package/esm/use-cases/use-case-broadcast.mjs +7 -1
  270. package/esm/use-cases/use-case-broadcast.mjs.map +1 -1
  271. package/esm/use-cases/use-cases-registry.mjs +21 -2
  272. package/esm/use-cases/use-cases-registry.mjs.map +1 -1
  273. package/esm/utils/database-log.mjs +0 -3
  274. package/esm/utils/database-log.mjs.map +1 -1
  275. package/esm/utils/queue.d.mts +6 -4
  276. package/esm/utils/queue.d.mts.map +1 -1
  277. package/esm/utils/queue.mjs +20 -9
  278. package/esm/utils/queue.mjs.map +1 -1
  279. package/esm/validation/database/exists-except-current-id.mjs +6 -2
  280. package/esm/validation/database/exists-except-current-id.mjs.map +1 -1
  281. package/esm/validation/database/unique-except-current-id.mjs +6 -2
  282. package/esm/validation/database/unique-except-current-id.mjs.map +1 -1
  283. package/esm/validation/init.mjs +6 -2
  284. package/esm/validation/init.mjs.map +1 -1
  285. package/esm/validation/validateAll.mjs +3 -2
  286. package/esm/validation/validateAll.mjs.map +1 -1
  287. package/esm/warlock-config/types.d.mts +14 -1
  288. package/esm/warlock-config/types.d.mts.map +1 -1
  289. package/esm/warlock-config/warlock-config.manager.d.mts.map +1 -1
  290. package/esm/warlock-config/warlock-config.manager.mjs +3 -1
  291. package/esm/warlock-config/warlock-config.manager.mjs.map +1 -1
  292. package/esm/warlock-config/warn-deprecated-config.mjs +25 -0
  293. package/esm/warlock-config/warn-deprecated-config.mjs.map +1 -0
  294. package/package.json +11 -11
  295. package/esm/_virtual/_rolldown/runtime.mjs +0 -7
@@ -286,21 +286,21 @@ interface QueryBuilderContract<T> {
286
286
  * @example
287
287
  * await query.where("status", "paid").avg("total")
288
288
  */
289
- avg(field: string): Promise<number>;
289
+ avg(field: string): Promise<number | null>;
290
290
  /**
291
291
  * Minimum value of a field across all matching records.
292
292
  *
293
293
  * @param field - Field name
294
294
  * @returns Promise resolving to the minimum value (0 when no records match)
295
295
  */
296
- min(field: string): Promise<number>;
296
+ min(field: string): Promise<number | null>;
297
297
  /**
298
298
  * Maximum value of a field across all matching records.
299
299
  *
300
300
  * @param field - Field name
301
301
  * @returns Promise resolving to the maximum value (0 when no records match)
302
302
  */
303
- max(field: string): Promise<number>;
303
+ max(field: string): Promise<number | null>;
304
304
  /**
305
305
  * Group matching records by one or more fields and compute aggregates.
306
306
  *
@@ -155,6 +155,11 @@ type PaginationMode = "pages" | "cursor";
155
155
  * Repository list options
156
156
  */
157
157
  type RepositoryOptions = {
158
+ /**
159
+ * Explicit cache key for `listCached()`. Required to cache a call whose
160
+ * options contain callback filters, which cannot be keyed safely.
161
+ */
162
+ cacheKey?: string;
158
163
  /**
159
164
  * Pagination mode - "pages" for traditional pagination, "cursor" for cursor-based
160
165
  * @default "pages"
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.mts","names":[],"sources":["../../../../../../../../core/src/repositories/contracts/types.ts"],"mappings":"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"}
1
+ {"version":3,"file":"types.d.mts","names":[],"sources":["../../../../../../../../core/src/repositories/contracts/types.ts"],"mappings":"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"}
@@ -2,5 +2,5 @@ import { RepositoryManager } from "./repository.manager.mjs";
2
2
  import { RepositoryAdapterContract } from "./contracts/repository-adapter.contract.mjs";
3
3
  import { AllRepositoryOptions, CachedRepositoryOptions, ChunkCallback, CursorPaginationOptions, CursorPaginationResult, FilterFunction, FilterOperator, FilterOptions, FilterRule, FilterRules, PaginationMode, PaginationResult, RepositoryConfigurations, RepositoryEvent, RepositoryOptions, RepositoryOptionsWithCursor, RepositoryOptionsWithPages, SaveMode, TypedAllRepositoryOptions, TypedRepositoryOptions, TypedRepositoryOptionsWithCursor, TypedRepositoryOptionsWithPages, WhereOperator } from "./contracts/types.mjs";
4
4
  import { AggregateExpressionInput, AggregateExpressions, GroupByFields, QueryBuilderContract } from "./contracts/query-builder.contract.mjs";
5
- import { CascadeAdapter } from "./adapters/cascade/cascade-adapter.mjs";
5
+ import { CascadeAdapter, UPDATE_MANY_BATCH_SIZE } from "./adapters/cascade/cascade-adapter.mjs";
6
6
  import { CascadeQueryBuilder } from "./adapters/cascade/cascade-query-builder.mjs";
@@ -1,5 +1,5 @@
1
1
  import { CascadeQueryBuilder } from "./adapters/cascade/cascade-query-builder.mjs";
2
- import { CascadeAdapter } from "./adapters/cascade/cascade-adapter.mjs";
2
+ import { CascadeAdapter, UPDATE_MANY_BATCH_SIZE } from "./adapters/cascade/cascade-adapter.mjs";
3
3
  import "./adapters/cascade/index.mjs";
4
4
  import { RepositoryManager } from "./repository.manager.mjs";
5
5
 
@@ -40,6 +40,25 @@ declare class RepositoryManager<T = unknown, F = Record<string, any>> {
40
40
  * @protected
41
41
  */
42
42
  protected filterBy: FilterRules;
43
+ /**
44
+ * Columns a client may sort by (`orderBy` / `sortBy` / `cursorColumn`) when the
45
+ * options come from a request. `id` and the declared `filterBy` keys are always
46
+ * allowed; anything else is ignored.
47
+ * @protected
48
+ */
49
+ protected sortable: string[];
50
+ /**
51
+ * Columns a client may request through `select`. Empty by default: a client
52
+ * `select` is ignored unless the repository whitelists the columns here.
53
+ * @protected
54
+ */
55
+ protected selectable: string[];
56
+ /**
57
+ * Hard cap on `limit` / `perPage` for every list, all and cursor query.
58
+ * @default 100
59
+ * @protected
60
+ */
61
+ protected maxPerPage: number;
43
62
  /**
44
63
  * Get adapter instance (lazy-loaded)
45
64
  * Resolution order:
@@ -150,6 +169,14 @@ declare class RepositoryManager<T = unknown, F = Record<string, any>> {
150
169
  protected getIsActiveFilter(): {
151
170
  [x: string]: any;
152
171
  };
172
+ /**
173
+ * Attach the active scope to the options. It travels under its own key (after
174
+ * the caller's options, so it can't be overridden) and is applied as a real
175
+ * `where` by `applyOptionsToQuery`, independent of `filterBy`.
176
+ */
177
+ protected withActive<O extends object>(options?: O): O & {
178
+ activeScope: Record<string, any>;
179
+ };
153
180
  /**
154
181
  * Find a record by ID
155
182
  * @param id - Record ID or model instance
@@ -358,6 +385,33 @@ declare class RepositoryManager<T = unknown, F = Record<string, any>> {
358
385
  */
359
386
  protected asTyped(opts: RepositoryOptions): TypedRepositoryOptions<F>;
360
387
  protected asTypedAll(opts: AllRepositoryOptions): TypedAllRepositoryOptions<F>;
388
+ /**
389
+ * Option keys that control the query rather than filter it.
390
+ */
391
+ private static readonly controlKeys;
392
+ /**
393
+ * Columns `orderBy` / `sortBy` / `cursorColumn` may target.
394
+ */
395
+ protected getSortableColumns(): Set<string>;
396
+ /**
397
+ * Split client-controllable control options from filters: `limit` is capped by
398
+ * `maxPerPage`, sort / cursor columns must be whitelisted (`sortable`, `filterBy`
399
+ * keys or `id`) and `select` must be within `selectable`. Anything else is
400
+ * dropped, so `list({ ...request.all() })` cannot steer the query.
401
+ */
402
+ protected sanitizeControls(options: RepositoryOptions): RepositoryOptions;
403
+ /**
404
+ * Read the active scope only when it is exactly what `getIsActiveFilter()`
405
+ * produces, so a client can't smuggle an arbitrary `where` through it.
406
+ */
407
+ protected readActiveScope(options: RepositoryOptions): Record<string, any> | undefined;
408
+ /**
409
+ * Apply plain `{ column: scalar }` lookups that are not declared in `filterBy`
410
+ * as equality wheres. Used by `first` (and so `exists`, `findOrCreate`,
411
+ * `updateOrCreate`) so an undeclared key is never silently dropped and can't
412
+ * match the wrong row.
413
+ */
414
+ protected applyLookupFilters(query: QueryBuilderContract<T>, options: RepositoryOptions): void;
361
415
  /**
362
416
  * Apply repository options to query
363
417
  * @param query - Query builder instance
@@ -583,7 +637,7 @@ declare class RepositoryManager<T = unknown, F = Record<string, any>> {
583
637
  * @returns Promise resolving to the filtered numeric average
584
638
  * @public
585
639
  */
586
- avg(field: string, options?: TypedRepositoryOptions<F>): Promise<number>;
640
+ avg(field: string, options?: TypedRepositoryOptions<F>): Promise<number | null>;
587
641
  /**
588
642
  * Minimum value of a field across records matching options.
589
643
  *
@@ -595,7 +649,7 @@ declare class RepositoryManager<T = unknown, F = Record<string, any>> {
595
649
  * @returns Promise resolving to the filtered minimum value
596
650
  * @public
597
651
  */
598
- min(field: string, options?: TypedRepositoryOptions<F>): Promise<number>;
652
+ min(field: string, options?: TypedRepositoryOptions<F>): Promise<number | null>;
599
653
  /**
600
654
  * Maximum value of a field across records matching options.
601
655
  *
@@ -607,7 +661,7 @@ declare class RepositoryManager<T = unknown, F = Record<string, any>> {
607
661
  * @returns Promise resolving to the filtered maximum value
608
662
  * @public
609
663
  */
610
- max(field: string, options?: TypedRepositoryOptions<F>): Promise<number>;
664
+ max(field: string, options?: TypedRepositoryOptions<F>): Promise<number | null>;
611
665
  /**
612
666
  * Group records by one or more fields and compute aggregates.
613
667
  *
@@ -674,6 +728,10 @@ declare class RepositoryManager<T = unknown, F = Record<string, any>> {
674
728
  * @protected
675
729
  */
676
730
  protected cacheKey(key: string | Record<string, any>, moreOptions?: Record<string, any>): string;
731
+ /**
732
+ * Whether a value holds a function at any depth (cycle-safe).
733
+ */
734
+ protected containsFunction(value: any, seen?: WeakSet<object>): boolean;
677
735
  /**
678
736
  * Deterministically serialize a value for use in a cache key.
679
737
  *
@@ -768,6 +826,10 @@ declare class RepositoryManager<T = unknown, F = Record<string, any>> {
768
826
  * export const cleanup = usersRepository.cleanup.bind(usersRepository);
769
827
  */
770
828
  $cleanup(): Promise<void>;
829
+ /**
830
+ * Cache read that treats a driver failure (e.g. Redis down) as a miss.
831
+ */
832
+ private safeCacheGet;
771
833
  /**
772
834
  * Clear all cache for this repository
773
835
  * @public
@@ -1 +1 @@
1
- {"version":3,"file":"repository.manager.d.mts","names":[],"sources":["../../../../../../../core/src/repositories/repository.manager.ts"],"mappings":"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"}
1
+ {"version":3,"file":"repository.manager.d.mts","names":[],"sources":["../../../../../../../core/src/repositories/repository.manager.ts"],"mappings":"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"}
@@ -23,7 +23,7 @@ import { cache } from "@warlock.js/cache";
23
23
  * // Direct instantiation with adapter
24
24
  * const userRepo = new RepositoryManager<User>(new PrismaAdapter(prisma.user));
25
25
  */
26
- var RepositoryManager = class {
26
+ var RepositoryManager = class RepositoryManager {
27
27
  /**
28
28
  * Get adapter instance (lazy-loaded)
29
29
  * Resolution order:
@@ -47,6 +47,9 @@ var RepositoryManager = class {
47
47
  */
48
48
  constructor(adapter) {
49
49
  this.filterBy = {};
50
+ this.sortable = [];
51
+ this.selectable = [];
52
+ this.maxPerPage = 100;
50
53
  this.defaultOptions = config.get("repository.defaultOptions") || {};
51
54
  this.simpleSelectColumns = [];
52
55
  this.isCacheable = config.get("repository.isCacheable") ?? true;
@@ -63,7 +66,9 @@ var RepositoryManager = class {
63
66
  registerEvents() {
64
67
  try {
65
68
  this.eventsCallbacks.push(...this.adapter.registerEvents((source) => {
66
- this.clearCache();
69
+ this.clearCache().catch((error) => {
70
+ console.error("[Repository] cache invalidation failed", error);
71
+ });
67
72
  }));
68
73
  } catch (error) {
69
74
  console.error(`[Repository] Failed to register events:`, error);
@@ -139,6 +144,17 @@ var RepositoryManager = class {
139
144
  return { [this.getIsActiveColumn()]: this.getIsActiveValue() };
140
145
  }
141
146
  /**
147
+ * Attach the active scope to the options. It travels under its own key (after
148
+ * the caller's options, so it can't be overridden) and is applied as a real
149
+ * `where` by `applyOptionsToQuery`, independent of `filterBy`.
150
+ */
151
+ withActive(options) {
152
+ return {
153
+ ...options,
154
+ activeScope: this.getIsActiveFilter()
155
+ };
156
+ }
157
+ /**
142
158
  * Find a record by ID
143
159
  * @param id - Record ID or model instance
144
160
  * @returns Promise resolving to record or null
@@ -192,6 +208,7 @@ var RepositoryManager = class {
192
208
  const query = this.newQuery();
193
209
  const opts = this.prepareOptions(options);
194
210
  this.applyOptionsToQuery(query, opts);
211
+ this.applyLookupFilters(query, opts);
195
212
  return query.limit(1).first();
196
213
  }
197
214
  /**
@@ -258,10 +275,7 @@ var RepositoryManager = class {
258
275
  * @public
259
276
  */
260
277
  async firstActive(options) {
261
- return this.first({
262
- ...this.getIsActiveFilter(),
263
- ...options
264
- });
278
+ return this.first({ ...this.withActive(options) });
265
279
  }
266
280
  /**
267
281
  * Get first active cached record
@@ -270,10 +284,7 @@ var RepositoryManager = class {
270
284
  * @public
271
285
  */
272
286
  async firstActiveCached(options) {
273
- return this.firstCached({
274
- ...this.getIsActiveFilter(),
275
- ...options
276
- });
287
+ return this.firstCached({ ...this.withActive(options) });
277
288
  }
278
289
  /**
279
290
  * Get last record matching options
@@ -304,10 +315,7 @@ var RepositoryManager = class {
304
315
  * @public
305
316
  */
306
317
  async lastActive(options) {
307
- return this.last({
308
- ...this.getIsActiveFilter(),
309
- ...options
310
- });
318
+ return this.last({ ...this.withActive(options) });
311
319
  }
312
320
  /**
313
321
  * Get last active cached record
@@ -316,10 +324,7 @@ var RepositoryManager = class {
316
324
  * @public
317
325
  */
318
326
  async lastActiveCached(options) {
319
- return this.lastCached({
320
- ...this.getIsActiveFilter(),
321
- ...options
322
- });
327
+ return this.lastCached({ ...this.withActive(options) });
323
328
  }
324
329
  async list(options) {
325
330
  return this._listImpl(options);
@@ -332,8 +337,9 @@ var RepositoryManager = class {
332
337
  */
333
338
  async _listImpl(options) {
334
339
  const query = this.newQuery();
335
- const opts = this.prepareOptions(options);
340
+ const opts = this.sanitizeControls(this.prepareOptions(options));
336
341
  const paginationMode = opts.paginationMode || "pages";
342
+ if (opts.paginate === false) return { data: await this.all(opts) };
337
343
  this.applyOptionsToQuery(query, opts);
338
344
  if (paginationMode === "cursor") return query.cursorPaginate({
339
345
  limit: opts.limit || opts.defaultLimit || 15,
@@ -359,10 +365,7 @@ var RepositoryManager = class {
359
365
  return query.get();
360
366
  }
361
367
  async listActive(options) {
362
- return this._listImpl({
363
- ...this.getIsActiveFilter(),
364
- ...options
365
- });
368
+ return this._listImpl({ ...this.withActive(options) });
366
369
  }
367
370
  /**
368
371
  * List all active records without pagination
@@ -371,10 +374,7 @@ var RepositoryManager = class {
371
374
  * @public
372
375
  */
373
376
  async allActive(options) {
374
- return this.all(this.asTypedAll({
375
- ...this.getIsActiveFilter(),
376
- ...options
377
- }));
377
+ return this.all(this.asTypedAll(this.withActive(options)));
378
378
  }
379
379
  /**
380
380
  * Check if record exists matching filter
@@ -419,6 +419,7 @@ var RepositoryManager = class {
419
419
  */
420
420
  prepareOptions(options) {
421
421
  return {
422
+ ...config.get("repository.defaultOptions") || {},
422
423
  ...this.defaultOptions || {},
423
424
  ...options || {}
424
425
  };
@@ -434,6 +435,89 @@ var RepositoryManager = class {
434
435
  asTypedAll(opts) {
435
436
  return opts;
436
437
  }
438
+ static {
439
+ this.controlKeys = new Set([
440
+ "paginationMode",
441
+ "paginate",
442
+ "page",
443
+ "limit",
444
+ "perPage",
445
+ "defaultLimit",
446
+ "select",
447
+ "simpleSelect",
448
+ "deselect",
449
+ "orderBy",
450
+ "sortBy",
451
+ "sortDirection",
452
+ "cursor",
453
+ "direction",
454
+ "cursorColumn",
455
+ "purgeCache",
456
+ "perform",
457
+ "activeScope"
458
+ ]);
459
+ }
460
+ /**
461
+ * Columns `orderBy` / `sortBy` / `cursorColumn` may target.
462
+ */
463
+ getSortableColumns() {
464
+ return new Set([
465
+ "id",
466
+ ...this.sortable,
467
+ ...Object.keys(this.filterBy || {})
468
+ ]);
469
+ }
470
+ /**
471
+ * Split client-controllable control options from filters: `limit` is capped by
472
+ * `maxPerPage`, sort / cursor columns must be whitelisted (`sortable`, `filterBy`
473
+ * keys or `id`) and `select` must be within `selectable`. Anything else is
474
+ * dropped, so `list({ ...request.all() })` cannot steer the query.
475
+ */
476
+ sanitizeControls(options) {
477
+ const safe = { ...options };
478
+ const raw = safe;
479
+ const allowed = this.getSortableColumns();
480
+ const requested = Number(raw.limit ?? raw.perPage);
481
+ delete raw.perPage;
482
+ if (Number.isFinite(requested) && requested > 0) safe.limit = Math.min(Math.floor(requested), this.maxPerPage);
483
+ else delete raw.limit;
484
+ if (safe.defaultLimit) safe.defaultLimit = Math.min(safe.defaultLimit, this.maxPerPage);
485
+ if (safe.cursorColumn !== void 0 && !allowed.has(safe.cursorColumn)) delete raw.cursorColumn;
486
+ if (safe.sortBy !== void 0 && !allowed.has(safe.sortBy)) delete raw.sortBy;
487
+ if (safe.orderBy && safe.orderBy !== "random") {
488
+ if ((Array.isArray(safe.orderBy) ? [safe.orderBy[0]] : typeof safe.orderBy === "object" ? Object.keys(safe.orderBy) : []).some((column) => !allowed.has(column))) delete raw.orderBy;
489
+ }
490
+ if (safe.select) {
491
+ const selectable = new Set(this.selectable);
492
+ const columns = (Array.isArray(safe.select) ? safe.select : []).filter((column) => selectable.has(column));
493
+ if (columns.length > 0) safe.select = columns;
494
+ else delete raw.select;
495
+ }
496
+ return safe;
497
+ }
498
+ /**
499
+ * Read the active scope only when it is exactly what `getIsActiveFilter()`
500
+ * produces, so a client can't smuggle an arbitrary `where` through it.
501
+ */
502
+ readActiveScope(options) {
503
+ const scope = options.activeScope;
504
+ if (!scope || typeof scope !== "object") return void 0;
505
+ const expected = this.getIsActiveFilter();
506
+ return JSON.stringify(scope) === JSON.stringify(expected) ? expected : void 0;
507
+ }
508
+ /**
509
+ * Apply plain `{ column: scalar }` lookups that are not declared in `filterBy`
510
+ * as equality wheres. Used by `first` (and so `exists`, `findOrCreate`,
511
+ * `updateOrCreate`) so an undeclared key is never silently dropped and can't
512
+ * match the wrong row.
513
+ */
514
+ applyLookupFilters(query, options) {
515
+ for (const [key, value] of Object.entries(options)) {
516
+ if (RepositoryManager.controlKeys.has(key) || key in (this.filterBy || {}) || value === void 0) continue;
517
+ if (value !== null && typeof value === "object") throw new Error(`[Repository] Lookup "${key}" must be a scalar value.`);
518
+ query.where(key, value);
519
+ }
520
+ }
437
521
  /**
438
522
  * Apply repository options to query
439
523
  * @param query - Query builder instance
@@ -444,7 +528,7 @@ var RepositoryManager = class {
444
528
  if (options.paginationMode === "cursor") {
445
529
  const cursorColumn = options.cursorColumn ?? "id";
446
530
  const direction = options.direction ?? "next";
447
- if (options.cursor) query.where(cursorColumn, direction === "next" ? ">" : "<", options.cursor);
531
+ if (options.cursor) query.where(cursorColumn, direction === "next" ? ">" : "<", typeof options.cursor === "string" && /^-?\d+(\.\d+)?$/.test(options.cursor.trim()) ? Number(options.cursor) : options.cursor);
448
532
  query.orderBy(cursorColumn, direction === "next" ? "asc" : "desc");
449
533
  if (options.orderBy) {
450
534
  if ((Array.isArray(options.orderBy) ? [options.orderBy[0]] : typeof options.orderBy === "object" ? Object.keys(options.orderBy) : []).includes(cursorColumn)) {
@@ -460,6 +544,8 @@ var RepositoryManager = class {
460
544
  dateFormat: "DD-MM-YYYY",
461
545
  dateTimeFormat: "DD-MM-YYYY HH:mm:ss"
462
546
  });
547
+ const activeScope = this.readActiveScope(options);
548
+ if (activeScope) for (const [column, value] of Object.entries(activeScope)) query.where(column, value);
463
549
  if (options.select) query.select(options.select);
464
550
  if (options.deselect) query.deselect(options.deselect);
465
551
  if (options.simpleSelect && this.simpleSelectColumns.length > 0) query.select(this.simpleSelectColumns);
@@ -554,10 +640,7 @@ var RepositoryManager = class {
554
640
  * @public
555
641
  */
556
642
  async chunkActive(size, callback, options) {
557
- return this.chunk(size, callback, this.asTyped({
558
- ...this.getIsActiveFilter(),
559
- ...options
560
- }));
643
+ return this.chunk(size, callback, this.asTyped(this.withActive(options)));
561
644
  }
562
645
  async latest(options) {
563
646
  return this._listImpl({
@@ -574,15 +657,13 @@ var RepositoryManager = class {
574
657
  async latestActive(options) {
575
658
  return this._listImpl({
576
659
  orderBy: ["id", "desc"],
577
- ...this.getIsActiveFilter(),
578
- ...options
660
+ ...this.withActive(options)
579
661
  });
580
662
  }
581
663
  async oldestActive(options) {
582
664
  return this._listImpl({
583
665
  orderBy: ["id", "asc"],
584
- ...this.getIsActiveFilter(),
585
- ...options
666
+ ...this.withActive(options)
586
667
  });
587
668
  }
588
669
  /**
@@ -671,10 +752,7 @@ var RepositoryManager = class {
671
752
  * @public
672
753
  */
673
754
  async countActive(options) {
674
- return await this.count(this.asTyped({
675
- ...this.getIsActiveFilter(),
676
- ...options
677
- }));
755
+ return await this.count(this.asTyped(this.withActive(options)));
678
756
  }
679
757
  /**
680
758
  * Count records with caching
@@ -687,7 +765,7 @@ var RepositoryManager = class {
687
765
  const opts = this.prepareOptions(options);
688
766
  const cacheKey = this.cacheKey("count", opts);
689
767
  if (!opts.purgeCache) {
690
- const cachedCount = await this.cacheDriver.get(cacheKey);
768
+ const cachedCount = await this.safeCacheGet(cacheKey);
691
769
  if (cachedCount !== null && cachedCount !== void 0) return cachedCount;
692
770
  }
693
771
  const count = await this.count(options);
@@ -701,10 +779,7 @@ var RepositoryManager = class {
701
779
  * @public
702
780
  */
703
781
  async countActiveCached(options) {
704
- return await this.countCached(this.asTyped({
705
- ...this.getIsActiveFilter(),
706
- ...options
707
- }));
782
+ return await this.countCached(this.asTyped(this.withActive(options)));
708
783
  }
709
784
  /**
710
785
  * Sum a numeric field across records matching options.
@@ -869,6 +944,15 @@ var RepositoryManager = class {
869
944
  return cacheKey;
870
945
  }
871
946
  /**
947
+ * Whether a value holds a function at any depth (cycle-safe).
948
+ */
949
+ containsFunction(value, seen = /* @__PURE__ */ new WeakSet()) {
950
+ if (typeof value === "function") return true;
951
+ if (value === null || typeof value !== "object" || seen.has(value)) return false;
952
+ seen.add(value);
953
+ return Object.values(value).some((item) => this.containsFunction(item, seen));
954
+ }
955
+ /**
872
956
  * Deterministically serialize a value for use in a cache key.
873
957
  *
874
958
  * Unlike raw `JSON.stringify`, object keys are recursively sorted so that
@@ -931,7 +1015,7 @@ var RepositoryManager = class {
931
1015
  async getCachedBy(column, value, cacheKeyOptions) {
932
1016
  if (!this.isCacheable || !this.cacheDriver) return await this.findBy(column, value);
933
1017
  const cacheKey = this.cacheKey(`${column}.${value}`, cacheKeyOptions);
934
- const cachedData = await this.cacheDriver.get(cacheKey);
1018
+ const cachedData = await this.safeCacheGet(cacheKey);
935
1019
  if (cachedData) return this.adapter.deserializeModel(cachedData);
936
1020
  const model = await this.findBy(column, value);
937
1021
  if (!model) return null;
@@ -949,7 +1033,7 @@ var RepositoryManager = class {
949
1033
  const opts = this.prepareOptions(options);
950
1034
  const cacheKey = this.cacheKey("all", opts);
951
1035
  if (!opts.purgeCache) {
952
- const cachedData = await this.cacheDriver.get(cacheKey);
1036
+ const cachedData = await this.safeCacheGet(cacheKey);
953
1037
  if (cachedData) return cachedData.map((record) => this.adapter.deserializeModel(record));
954
1038
  }
955
1039
  const records = await this.all(options);
@@ -963,10 +1047,7 @@ var RepositoryManager = class {
963
1047
  * @public
964
1048
  */
965
1049
  async allActiveCached(options) {
966
- return await this.allCached(this.asTypedAll({
967
- ...this.getIsActiveFilter(),
968
- ...options
969
- }));
1050
+ return await this.allCached(this.asTypedAll(this.withActive(options)));
970
1051
  }
971
1052
  /**
972
1053
  * List cached records with pagination
@@ -977,9 +1058,10 @@ var RepositoryManager = class {
977
1058
  async listCached(options) {
978
1059
  if (!this.isCacheable || !this.cacheDriver) return await this._listImpl(options);
979
1060
  const opts = this.prepareOptions(options);
1061
+ if (!opts.cacheKey && this.containsFunction(opts)) return await this._listImpl(options);
980
1062
  const cacheKey = this.cacheKey("list", opts);
981
1063
  if (!opts.purgeCache) {
982
- const cachedData = await this.cacheDriver.get(cacheKey);
1064
+ const cachedData = await this.safeCacheGet(cacheKey);
983
1065
  if (cachedData) return {
984
1066
  data: (cachedData?.data || []).map((record) => this.adapter.deserializeModel(record)),
985
1067
  pagination: cachedData.pagination
@@ -999,10 +1081,7 @@ var RepositoryManager = class {
999
1081
  * @public
1000
1082
  */
1001
1083
  async listActiveCached(options) {
1002
- return await this.listCached(this.asTyped({
1003
- ...this.getIsActiveFilter(),
1004
- ...options
1005
- }));
1084
+ return await this.listCached(this.asTyped(this.withActive(options)));
1006
1085
  }
1007
1086
  /**
1008
1087
  * Get active cached record by ID
@@ -1049,7 +1128,17 @@ var RepositoryManager = class {
1049
1128
  async $cleanup() {
1050
1129
  await this.clearCache();
1051
1130
  this.cleanuEvents();
1052
- if (this.cacheDriver) await this.cacheDriver.flush();
1131
+ }
1132
+ /**
1133
+ * Cache read that treats a driver failure (e.g. Redis down) as a miss.
1134
+ */
1135
+ async safeCacheGet(key) {
1136
+ try {
1137
+ return await this.cacheDriver.get(key);
1138
+ } catch (error) {
1139
+ console.error("[Repository] cache read failed, treating as miss", error);
1140
+ return null;
1141
+ }
1053
1142
  }
1054
1143
  /**
1055
1144
  * Clear all cache for this repository