@venizia/ignis-kernel 0.3.0 → 0.3.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 (423) hide show
  1. package/dist/cjs/base/applications/abstract.js.map +1 -1
  2. package/dist/cjs/base/applications/artifact-group.js.map +1 -1
  3. package/dist/cjs/base/applications/artifact-index.js.map +1 -1
  4. package/dist/cjs/base/applications/boot-sequence.js.map +1 -1
  5. package/dist/cjs/base/applications/common/constants.js.map +1 -1
  6. package/dist/cjs/base/applications/common/index.js.map +1 -1
  7. package/dist/cjs/base/applications/common/types/application.js.map +1 -1
  8. package/dist/cjs/base/applications/common/types/artifacts.js.map +1 -1
  9. package/dist/cjs/base/applications/common/types/index.js.map +1 -1
  10. package/dist/cjs/base/applications/common/types/middlewares.js.map +1 -1
  11. package/dist/cjs/base/applications/index.js.map +1 -1
  12. package/dist/cjs/base/applications/rest.js.map +1 -1
  13. package/dist/cjs/base/auth/authenticate/common/codecs.js.map +1 -1
  14. package/dist/cjs/base/auth/authenticate/common/constants/authentication.js.map +1 -1
  15. package/dist/cjs/base/auth/authenticate/common/constants/index.js.map +1 -1
  16. package/dist/cjs/base/auth/authenticate/common/constants/jose.js.map +1 -1
  17. package/dist/cjs/base/auth/authenticate/common/constants/service-assertion.js.map +1 -1
  18. package/dist/cjs/base/auth/authenticate/common/errors.js.map +1 -1
  19. package/dist/cjs/base/auth/authenticate/common/index.js.map +1 -1
  20. package/dist/cjs/base/auth/authenticate/common/keys.js.map +1 -1
  21. package/dist/cjs/base/auth/authenticate/common/types/basic.js.map +1 -1
  22. package/dist/cjs/base/auth/authenticate/common/types/index.js.map +1 -1
  23. package/dist/cjs/base/auth/authenticate/common/types/jwt.js.map +1 -1
  24. package/dist/cjs/base/auth/authenticate/common/types/options.js.map +1 -1
  25. package/dist/cjs/base/auth/authenticate/common/types/rest.js.map +1 -1
  26. package/dist/cjs/base/auth/authenticate/common/types/service.js.map +1 -1
  27. package/dist/cjs/base/auth/authenticate/common/types/strategy.js.map +1 -1
  28. package/dist/cjs/base/auth/authenticate/index.js.map +1 -1
  29. package/dist/cjs/base/auth/authenticate/middlewares/authenticate.middleware.js.map +1 -1
  30. package/dist/cjs/base/auth/authenticate/middlewares/index.js.map +1 -1
  31. package/dist/cjs/base/auth/authenticate/providers/authentication.provider.js.map +1 -1
  32. package/dist/cjs/base/auth/authenticate/providers/index.js.map +1 -1
  33. package/dist/cjs/base/auth/authenticate/strategies/index.js.map +1 -1
  34. package/dist/cjs/base/auth/authenticate/strategies/strategy-registry.js.map +1 -1
  35. package/dist/cjs/base/auth/authorize/builders/grant.builder.js.map +1 -1
  36. package/dist/cjs/base/auth/authorize/builders/index.js.map +1 -1
  37. package/dist/cjs/base/auth/authorize/builders/permission.builder.js.map +1 -1
  38. package/dist/cjs/base/auth/authorize/builders/policy.builder.js.map +1 -1
  39. package/dist/cjs/base/auth/authorize/common/constants/authorization.js.map +1 -1
  40. package/dist/cjs/base/auth/authorize/common/constants/binding-keys.js.map +1 -1
  41. package/dist/cjs/base/auth/authorize/common/constants/enforcer.js.map +1 -1
  42. package/dist/cjs/base/auth/authorize/common/constants/index.js.map +1 -1
  43. package/dist/cjs/base/auth/authorize/common/errors.js.map +1 -1
  44. package/dist/cjs/base/auth/authorize/common/index.js.map +1 -1
  45. package/dist/cjs/base/auth/authorize/common/types/enforcer.js.map +1 -1
  46. package/dist/cjs/base/auth/authorize/common/types/grant.js.map +1 -1
  47. package/dist/cjs/base/auth/authorize/common/types/index.js.map +1 -1
  48. package/dist/cjs/base/auth/authorize/common/types/request.js.map +1 -1
  49. package/dist/cjs/base/auth/authorize/enforcers/enforcer-registry.js.map +1 -1
  50. package/dist/cjs/base/auth/authorize/enforcers/index.js.map +1 -1
  51. package/dist/cjs/base/auth/authorize/index.js.map +1 -1
  52. package/dist/cjs/base/auth/authorize/middlewares/authorize.middleware.js.map +1 -1
  53. package/dist/cjs/base/auth/authorize/middlewares/index.js.map +1 -1
  54. package/dist/cjs/base/auth/authorize/models/authorization-role.model.js.map +1 -1
  55. package/dist/cjs/base/auth/authorize/models/index.js.map +1 -1
  56. package/dist/cjs/base/auth/authorize/providers/authorization.provider.js.map +1 -1
  57. package/dist/cjs/base/auth/authorize/providers/index.js.map +1 -1
  58. package/dist/cjs/base/auth/authorize/providers/request-domain.js.map +1 -1
  59. package/dist/cjs/base/auth/base/abstract-auth-registry.js.map +1 -1
  60. package/dist/cjs/base/auth/base/index.js.map +1 -1
  61. package/dist/cjs/base/auth/context-variables.js.map +1 -1
  62. package/dist/cjs/base/auth/index.js.map +1 -1
  63. package/dist/cjs/base/auth/models/index.js.map +1 -1
  64. package/dist/cjs/base/auth/models/requests/change-password.schema.js.map +1 -1
  65. package/dist/cjs/base/auth/models/requests/index.js.map +1 -1
  66. package/dist/cjs/base/auth/models/requests/sign-in.schema.js.map +1 -1
  67. package/dist/cjs/base/auth/models/requests/sign-up.schema.js.map +1 -1
  68. package/dist/cjs/base/components/base.js.map +1 -1
  69. package/dist/cjs/base/components/controller/index.js.map +1 -1
  70. package/dist/cjs/base/components/controller/rest/common/index.js.map +1 -1
  71. package/dist/cjs/base/components/controller/rest/common/types.js.map +1 -1
  72. package/dist/cjs/base/components/controller/rest/index.js.map +1 -1
  73. package/dist/cjs/base/components/controller/rest/rest.component.js.map +1 -1
  74. package/dist/cjs/base/components/index.js.map +1 -1
  75. package/dist/cjs/base/configurations/base.js.map +1 -1
  76. package/dist/cjs/base/configurations/common/index.js.map +1 -1
  77. package/dist/cjs/base/configurations/common/types.js.map +1 -1
  78. package/dist/cjs/base/configurations/index.js.map +1 -1
  79. package/dist/cjs/base/controllers/common/constants.js.map +1 -1
  80. package/dist/cjs/base/controllers/common/html-response.js.map +1 -1
  81. package/dist/cjs/base/controllers/common/index.js.map +1 -1
  82. package/dist/cjs/base/controllers/common/schema-builders.js.map +1 -1
  83. package/dist/cjs/base/controllers/common/schemas.js.map +1 -1
  84. package/dist/cjs/base/controllers/common/types/context.js.map +1 -1
  85. package/dist/cjs/base/controllers/common/types/controller.js.map +1 -1
  86. package/dist/cjs/base/controllers/common/types/index.js.map +1 -1
  87. package/dist/cjs/base/controllers/common/types/route.js.map +1 -1
  88. package/dist/cjs/base/controllers/context.js.map +1 -1
  89. package/dist/cjs/base/controllers/factory/controller.js.map +1 -1
  90. package/dist/cjs/base/controllers/factory/crud/abstract.js.map +1 -1
  91. package/dist/cjs/base/controllers/factory/crud/index.js.map +1 -1
  92. package/dist/cjs/base/controllers/factory/crud/persistable.js.map +1 -1
  93. package/dist/cjs/base/controllers/factory/crud/readable.js.map +1 -1
  94. package/dist/cjs/base/controllers/factory/definition.js.map +1 -1
  95. package/dist/cjs/base/controllers/factory/helper.js.map +1 -1
  96. package/dist/cjs/base/controllers/factory/index.js.map +1 -1
  97. package/dist/cjs/base/controllers/factory/repository-injection.js.map +1 -1
  98. package/dist/cjs/base/controllers/index.js.map +1 -1
  99. package/dist/cjs/base/controllers/rest/abstract.js.map +1 -1
  100. package/dist/cjs/base/controllers/rest/base.js.map +1 -1
  101. package/dist/cjs/base/controllers/rest/extras.js.map +1 -1
  102. package/dist/cjs/base/controllers/rest/index.js.map +1 -1
  103. package/dist/cjs/base/datasources/abstract.js.map +1 -1
  104. package/dist/cjs/base/datasources/common/index.js.map +1 -1
  105. package/dist/cjs/base/datasources/common/types.js.map +1 -1
  106. package/dist/cjs/base/datasources/index.js.map +1 -1
  107. package/dist/cjs/base/events/common/constants.js.map +1 -1
  108. package/dist/cjs/base/events/common/index.js.map +1 -1
  109. package/dist/cjs/base/events/common/types.js.map +1 -1
  110. package/dist/cjs/base/events/event-bus.js.map +1 -1
  111. package/dist/cjs/base/events/index.js.map +1 -1
  112. package/dist/cjs/base/index.js.map +1 -1
  113. package/dist/cjs/base/metadata/artifact-keys.js.map +1 -1
  114. package/dist/cjs/base/metadata/index.js.map +1 -1
  115. package/dist/cjs/base/metadata/injectable.js.map +1 -1
  116. package/dist/cjs/base/metadata/injectors.js.map +1 -1
  117. package/dist/cjs/base/metadata/persistents.js.map +1 -1
  118. package/dist/cjs/base/metadata/routes/common.js.map +1 -1
  119. package/dist/cjs/base/metadata/routes/controller.js.map +1 -1
  120. package/dist/cjs/base/metadata/routes/index.js.map +1 -1
  121. package/dist/cjs/base/metadata/routes/rest.js.map +1 -1
  122. package/dist/cjs/base/metadata/routes/rpc.js.map +1 -1
  123. package/dist/cjs/base/middlewares/app-error/app-error.middleware.js.map +1 -1
  124. package/dist/cjs/base/middlewares/app-error/common/index.js.map +1 -1
  125. package/dist/cjs/base/middlewares/app-error/common/types.js.map +1 -1
  126. package/dist/cjs/base/middlewares/app-error/database.handler.js.map +1 -1
  127. package/dist/cjs/base/middlewares/app-error/definition.js.map +1 -1
  128. package/dist/cjs/base/middlewares/app-error/index.js.map +1 -1
  129. package/dist/cjs/base/middlewares/app-error/zod.handler.js.map +1 -1
  130. package/dist/cjs/base/middlewares/common/constants.js.map +1 -1
  131. package/dist/cjs/base/middlewares/common/errors.js.map +1 -1
  132. package/dist/cjs/base/middlewares/common/index.js.map +1 -1
  133. package/dist/cjs/base/middlewares/emoji-favicon/emoji-favicon.middleware.js.map +1 -1
  134. package/dist/cjs/base/middlewares/emoji-favicon/index.js.map +1 -1
  135. package/dist/cjs/base/middlewares/form-body/form-body.middleware.js.map +1 -1
  136. package/dist/cjs/base/middlewares/index.js.map +1 -1
  137. package/dist/cjs/base/middlewares/not-found/index.js.map +1 -1
  138. package/dist/cjs/base/middlewares/not-found/not-found.middleware.js.map +1 -1
  139. package/dist/cjs/base/mixins/common/index.js.map +1 -1
  140. package/dist/cjs/base/mixins/common/types.js.map +1 -1
  141. package/dist/cjs/base/mixins/index.js.map +1 -1
  142. package/dist/cjs/base/models/base.js.map +1 -1
  143. package/dist/cjs/base/models/common/constants.js.map +1 -1
  144. package/dist/cjs/base/models/common/index.js.map +1 -1
  145. package/dist/cjs/base/models/common/schemas.js.map +1 -1
  146. package/dist/cjs/base/models/common/types/id.js.map +1 -1
  147. package/dist/cjs/base/models/common/types/index.js.map +1 -1
  148. package/dist/cjs/base/models/common/utilities.js.map +1 -1
  149. package/dist/cjs/base/models/index.js.map +1 -1
  150. package/dist/cjs/base/providers/base.js.map +1 -1
  151. package/dist/cjs/base/providers/index.js.map +1 -1
  152. package/dist/cjs/base/repositories/common/constants.js.map +1 -1
  153. package/dist/cjs/base/repositories/common/errors.js.map +1 -1
  154. package/dist/cjs/base/repositories/common/extra-request.js.map +1 -1
  155. package/dist/cjs/base/repositories/common/index.js.map +1 -1
  156. package/dist/cjs/base/repositories/common/response-reader.js.map +1 -1
  157. package/dist/cjs/base/repositories/common/types/contracts.js.map +1 -1
  158. package/dist/cjs/base/repositories/common/types/index.js.map +1 -1
  159. package/dist/cjs/base/repositories/common/types/options.js.map +1 -1
  160. package/dist/cjs/base/repositories/common/types/query.js.map +1 -1
  161. package/dist/cjs/base/repositories/common/types/result-schemas.js.map +1 -1
  162. package/dist/cjs/base/repositories/common/types/results.js.map +1 -1
  163. package/dist/cjs/base/repositories/core/abstract.js.map +1 -1
  164. package/dist/cjs/base/repositories/core/index.js.map +1 -1
  165. package/dist/cjs/base/repositories/index.js.map +1 -1
  166. package/dist/cjs/base/repositories/query-schemas/index.js.map +1 -1
  167. package/dist/cjs/base/request-context/common/index.js.map +1 -1
  168. package/dist/cjs/base/request-context/common/types.js.map +1 -1
  169. package/dist/cjs/base/request-context/index.js.map +1 -1
  170. package/dist/cjs/base/request-context/registry.js.map +1 -1
  171. package/dist/cjs/base/services/base.js.map +1 -1
  172. package/dist/cjs/base/services/common/index.js.map +1 -1
  173. package/dist/cjs/base/services/common/types.js.map +1 -1
  174. package/dist/cjs/base/services/index.js.map +1 -1
  175. package/dist/cjs/common/bindings.js.map +1 -1
  176. package/dist/cjs/common/error-codes.js.map +1 -1
  177. package/dist/cjs/common/index.js.map +1 -1
  178. package/dist/cjs/common/statuses/common.js.map +1 -1
  179. package/dist/cjs/common/statuses/index.js.map +1 -1
  180. package/dist/cjs/common/statuses/migration.js.map +1 -1
  181. package/dist/cjs/common/statuses/role.js.map +1 -1
  182. package/dist/cjs/common/statuses/user.js.map +1 -1
  183. package/dist/cjs/helpers/index.js.map +1 -1
  184. package/dist/cjs/helpers/inversion/common/constants.js.map +1 -1
  185. package/dist/cjs/helpers/inversion/common/index.js.map +1 -1
  186. package/dist/cjs/helpers/inversion/common/keys.js.map +1 -1
  187. package/dist/cjs/helpers/inversion/common/relation-builder.js.map +1 -1
  188. package/dist/cjs/helpers/inversion/common/types/artifact.js.map +1 -1
  189. package/dist/cjs/helpers/inversion/common/types/controller.js.map +1 -1
  190. package/dist/cjs/helpers/inversion/common/types/index.js.map +1 -1
  191. package/dist/cjs/helpers/inversion/common/types/injection.js.map +1 -1
  192. package/dist/cjs/helpers/inversion/common/types/model.js.map +1 -1
  193. package/dist/cjs/helpers/inversion/common/types/persistence.js.map +1 -1
  194. package/dist/cjs/helpers/inversion/container.js.map +1 -1
  195. package/dist/cjs/helpers/inversion/index.js.map +1 -1
  196. package/dist/cjs/helpers/inversion/mixins/artifact.mixin.js.map +1 -1
  197. package/dist/cjs/helpers/inversion/mixins/controllers/controller.js.map +1 -1
  198. package/dist/cjs/helpers/inversion/mixins/controllers/grpc.js.map +1 -1
  199. package/dist/cjs/helpers/inversion/mixins/controllers/index.js.map +1 -1
  200. package/dist/cjs/helpers/inversion/mixins/controllers/rest.js.map +1 -1
  201. package/dist/cjs/helpers/inversion/mixins/datasource.mixin.js.map +1 -1
  202. package/dist/cjs/helpers/inversion/mixins/index.js.map +1 -1
  203. package/dist/cjs/helpers/inversion/mixins/model.mixin.js.map +1 -1
  204. package/dist/cjs/helpers/inversion/mixins/repository.mixin.js.map +1 -1
  205. package/dist/cjs/helpers/inversion/registry.js.map +1 -1
  206. package/dist/cjs/helpers/singleton-realm.js.map +1 -1
  207. package/dist/cjs/index.js.map +1 -1
  208. package/dist/cjs/metadata.js.map +1 -1
  209. package/dist/cjs/repository.js.map +1 -1
  210. package/dist/cjs/utilities/error.utility.js.map +1 -1
  211. package/dist/cjs/utilities/index.js.map +1 -1
  212. package/dist/esm/base/applications/abstract.js.map +1 -1
  213. package/dist/esm/base/applications/artifact-group.js.map +1 -1
  214. package/dist/esm/base/applications/artifact-index.js.map +1 -1
  215. package/dist/esm/base/applications/boot-sequence.js.map +1 -1
  216. package/dist/esm/base/applications/common/constants.js.map +1 -1
  217. package/dist/esm/base/applications/common/index.js.map +1 -1
  218. package/dist/esm/base/applications/common/types/application.js.map +1 -1
  219. package/dist/esm/base/applications/common/types/artifacts.js.map +1 -1
  220. package/dist/esm/base/applications/common/types/index.js.map +1 -1
  221. package/dist/esm/base/applications/common/types/middlewares.js.map +1 -1
  222. package/dist/esm/base/applications/index.js.map +1 -1
  223. package/dist/esm/base/applications/rest.js.map +1 -1
  224. package/dist/esm/base/auth/authenticate/common/codecs.js.map +1 -1
  225. package/dist/esm/base/auth/authenticate/common/constants/authentication.js.map +1 -1
  226. package/dist/esm/base/auth/authenticate/common/constants/index.js.map +1 -1
  227. package/dist/esm/base/auth/authenticate/common/constants/jose.js.map +1 -1
  228. package/dist/esm/base/auth/authenticate/common/constants/service-assertion.js.map +1 -1
  229. package/dist/esm/base/auth/authenticate/common/errors.js.map +1 -1
  230. package/dist/esm/base/auth/authenticate/common/index.js.map +1 -1
  231. package/dist/esm/base/auth/authenticate/common/keys.js.map +1 -1
  232. package/dist/esm/base/auth/authenticate/common/types/basic.js.map +1 -1
  233. package/dist/esm/base/auth/authenticate/common/types/index.js.map +1 -1
  234. package/dist/esm/base/auth/authenticate/common/types/jwt.js.map +1 -1
  235. package/dist/esm/base/auth/authenticate/common/types/options.js.map +1 -1
  236. package/dist/esm/base/auth/authenticate/common/types/rest.js.map +1 -1
  237. package/dist/esm/base/auth/authenticate/common/types/service.js.map +1 -1
  238. package/dist/esm/base/auth/authenticate/common/types/strategy.js.map +1 -1
  239. package/dist/esm/base/auth/authenticate/index.js.map +1 -1
  240. package/dist/esm/base/auth/authenticate/middlewares/authenticate.middleware.js.map +1 -1
  241. package/dist/esm/base/auth/authenticate/middlewares/index.js.map +1 -1
  242. package/dist/esm/base/auth/authenticate/providers/authentication.provider.js.map +1 -1
  243. package/dist/esm/base/auth/authenticate/providers/index.js.map +1 -1
  244. package/dist/esm/base/auth/authenticate/strategies/index.js.map +1 -1
  245. package/dist/esm/base/auth/authenticate/strategies/strategy-registry.js.map +1 -1
  246. package/dist/esm/base/auth/authorize/builders/grant.builder.js.map +1 -1
  247. package/dist/esm/base/auth/authorize/builders/index.js.map +1 -1
  248. package/dist/esm/base/auth/authorize/builders/permission.builder.js.map +1 -1
  249. package/dist/esm/base/auth/authorize/builders/policy.builder.js.map +1 -1
  250. package/dist/esm/base/auth/authorize/common/constants/authorization.js.map +1 -1
  251. package/dist/esm/base/auth/authorize/common/constants/binding-keys.js.map +1 -1
  252. package/dist/esm/base/auth/authorize/common/constants/enforcer.js.map +1 -1
  253. package/dist/esm/base/auth/authorize/common/constants/index.js.map +1 -1
  254. package/dist/esm/base/auth/authorize/common/errors.js.map +1 -1
  255. package/dist/esm/base/auth/authorize/common/index.js.map +1 -1
  256. package/dist/esm/base/auth/authorize/common/types/enforcer.js.map +1 -1
  257. package/dist/esm/base/auth/authorize/common/types/grant.js.map +1 -1
  258. package/dist/esm/base/auth/authorize/common/types/index.js.map +1 -1
  259. package/dist/esm/base/auth/authorize/common/types/request.js.map +1 -1
  260. package/dist/esm/base/auth/authorize/enforcers/enforcer-registry.js.map +1 -1
  261. package/dist/esm/base/auth/authorize/enforcers/index.js.map +1 -1
  262. package/dist/esm/base/auth/authorize/index.js.map +1 -1
  263. package/dist/esm/base/auth/authorize/middlewares/authorize.middleware.js.map +1 -1
  264. package/dist/esm/base/auth/authorize/middlewares/index.js.map +1 -1
  265. package/dist/esm/base/auth/authorize/models/authorization-role.model.js.map +1 -1
  266. package/dist/esm/base/auth/authorize/models/index.js.map +1 -1
  267. package/dist/esm/base/auth/authorize/providers/authorization.provider.js.map +1 -1
  268. package/dist/esm/base/auth/authorize/providers/index.js.map +1 -1
  269. package/dist/esm/base/auth/authorize/providers/request-domain.js.map +1 -1
  270. package/dist/esm/base/auth/base/abstract-auth-registry.js.map +1 -1
  271. package/dist/esm/base/auth/base/index.js.map +1 -1
  272. package/dist/esm/base/auth/context-variables.js.map +1 -1
  273. package/dist/esm/base/auth/index.js.map +1 -1
  274. package/dist/esm/base/auth/models/index.js.map +1 -1
  275. package/dist/esm/base/auth/models/requests/change-password.schema.js.map +1 -1
  276. package/dist/esm/base/auth/models/requests/index.js.map +1 -1
  277. package/dist/esm/base/auth/models/requests/sign-in.schema.js.map +1 -1
  278. package/dist/esm/base/auth/models/requests/sign-up.schema.js.map +1 -1
  279. package/dist/esm/base/components/base.js.map +1 -1
  280. package/dist/esm/base/components/controller/index.js.map +1 -1
  281. package/dist/esm/base/components/controller/rest/common/index.js.map +1 -1
  282. package/dist/esm/base/components/controller/rest/common/types.js.map +1 -1
  283. package/dist/esm/base/components/controller/rest/index.js.map +1 -1
  284. package/dist/esm/base/components/controller/rest/rest.component.js.map +1 -1
  285. package/dist/esm/base/components/index.js.map +1 -1
  286. package/dist/esm/base/configurations/base.js.map +1 -1
  287. package/dist/esm/base/configurations/common/index.js.map +1 -1
  288. package/dist/esm/base/configurations/common/types.js.map +1 -1
  289. package/dist/esm/base/configurations/index.js.map +1 -1
  290. package/dist/esm/base/controllers/common/constants.js.map +1 -1
  291. package/dist/esm/base/controllers/common/html-response.js.map +1 -1
  292. package/dist/esm/base/controllers/common/index.js.map +1 -1
  293. package/dist/esm/base/controllers/common/schema-builders.js.map +1 -1
  294. package/dist/esm/base/controllers/common/schemas.js.map +1 -1
  295. package/dist/esm/base/controllers/common/types/context.js.map +1 -1
  296. package/dist/esm/base/controllers/common/types/controller.js.map +1 -1
  297. package/dist/esm/base/controllers/common/types/index.js.map +1 -1
  298. package/dist/esm/base/controllers/common/types/route.js.map +1 -1
  299. package/dist/esm/base/controllers/context.js.map +1 -1
  300. package/dist/esm/base/controllers/factory/controller.js.map +1 -1
  301. package/dist/esm/base/controllers/factory/crud/abstract.js.map +1 -1
  302. package/dist/esm/base/controllers/factory/crud/index.js.map +1 -1
  303. package/dist/esm/base/controllers/factory/crud/persistable.js.map +1 -1
  304. package/dist/esm/base/controllers/factory/crud/readable.js.map +1 -1
  305. package/dist/esm/base/controllers/factory/definition.js.map +1 -1
  306. package/dist/esm/base/controllers/factory/helper.js.map +1 -1
  307. package/dist/esm/base/controllers/factory/index.js.map +1 -1
  308. package/dist/esm/base/controllers/factory/repository-injection.js.map +1 -1
  309. package/dist/esm/base/controllers/index.js.map +1 -1
  310. package/dist/esm/base/controllers/rest/abstract.js.map +1 -1
  311. package/dist/esm/base/controllers/rest/base.js.map +1 -1
  312. package/dist/esm/base/controllers/rest/extras.js.map +1 -1
  313. package/dist/esm/base/controllers/rest/index.js.map +1 -1
  314. package/dist/esm/base/datasources/abstract.js.map +1 -1
  315. package/dist/esm/base/datasources/common/index.js.map +1 -1
  316. package/dist/esm/base/datasources/common/types.js.map +1 -1
  317. package/dist/esm/base/datasources/index.js.map +1 -1
  318. package/dist/esm/base/events/common/constants.js.map +1 -1
  319. package/dist/esm/base/events/common/index.js.map +1 -1
  320. package/dist/esm/base/events/common/types.js.map +1 -1
  321. package/dist/esm/base/events/event-bus.js.map +1 -1
  322. package/dist/esm/base/events/index.js.map +1 -1
  323. package/dist/esm/base/index.js.map +1 -1
  324. package/dist/esm/base/metadata/artifact-keys.js.map +1 -1
  325. package/dist/esm/base/metadata/index.js.map +1 -1
  326. package/dist/esm/base/metadata/injectable.js.map +1 -1
  327. package/dist/esm/base/metadata/injectors.js.map +1 -1
  328. package/dist/esm/base/metadata/persistents.js.map +1 -1
  329. package/dist/esm/base/metadata/routes/common.js.map +1 -1
  330. package/dist/esm/base/metadata/routes/controller.js.map +1 -1
  331. package/dist/esm/base/metadata/routes/index.js.map +1 -1
  332. package/dist/esm/base/metadata/routes/rest.js.map +1 -1
  333. package/dist/esm/base/metadata/routes/rpc.js.map +1 -1
  334. package/dist/esm/base/middlewares/app-error/app-error.middleware.js.map +1 -1
  335. package/dist/esm/base/middlewares/app-error/common/index.js.map +1 -1
  336. package/dist/esm/base/middlewares/app-error/common/types.js.map +1 -1
  337. package/dist/esm/base/middlewares/app-error/database.handler.js.map +1 -1
  338. package/dist/esm/base/middlewares/app-error/definition.js.map +1 -1
  339. package/dist/esm/base/middlewares/app-error/index.js.map +1 -1
  340. package/dist/esm/base/middlewares/app-error/zod.handler.js.map +1 -1
  341. package/dist/esm/base/middlewares/common/constants.js.map +1 -1
  342. package/dist/esm/base/middlewares/common/errors.js.map +1 -1
  343. package/dist/esm/base/middlewares/common/index.js.map +1 -1
  344. package/dist/esm/base/middlewares/emoji-favicon/emoji-favicon.middleware.js.map +1 -1
  345. package/dist/esm/base/middlewares/emoji-favicon/index.js.map +1 -1
  346. package/dist/esm/base/middlewares/form-body/form-body.middleware.js.map +1 -1
  347. package/dist/esm/base/middlewares/index.js.map +1 -1
  348. package/dist/esm/base/middlewares/not-found/index.js.map +1 -1
  349. package/dist/esm/base/middlewares/not-found/not-found.middleware.js.map +1 -1
  350. package/dist/esm/base/mixins/common/index.js.map +1 -1
  351. package/dist/esm/base/mixins/common/types.js.map +1 -1
  352. package/dist/esm/base/mixins/index.js.map +1 -1
  353. package/dist/esm/base/models/base.js.map +1 -1
  354. package/dist/esm/base/models/common/constants.js.map +1 -1
  355. package/dist/esm/base/models/common/index.js.map +1 -1
  356. package/dist/esm/base/models/common/schemas.js.map +1 -1
  357. package/dist/esm/base/models/common/types/id.js.map +1 -1
  358. package/dist/esm/base/models/common/types/index.js.map +1 -1
  359. package/dist/esm/base/models/common/utilities.js.map +1 -1
  360. package/dist/esm/base/models/index.js.map +1 -1
  361. package/dist/esm/base/providers/base.js.map +1 -1
  362. package/dist/esm/base/providers/index.js.map +1 -1
  363. package/dist/esm/base/repositories/common/constants.js.map +1 -1
  364. package/dist/esm/base/repositories/common/errors.js.map +1 -1
  365. package/dist/esm/base/repositories/common/extra-request.js.map +1 -1
  366. package/dist/esm/base/repositories/common/index.js.map +1 -1
  367. package/dist/esm/base/repositories/common/response-reader.js.map +1 -1
  368. package/dist/esm/base/repositories/common/types/contracts.js.map +1 -1
  369. package/dist/esm/base/repositories/common/types/index.js.map +1 -1
  370. package/dist/esm/base/repositories/common/types/options.js.map +1 -1
  371. package/dist/esm/base/repositories/common/types/query.js.map +1 -1
  372. package/dist/esm/base/repositories/common/types/result-schemas.js.map +1 -1
  373. package/dist/esm/base/repositories/common/types/results.js.map +1 -1
  374. package/dist/esm/base/repositories/core/abstract.js.map +1 -1
  375. package/dist/esm/base/repositories/core/index.js.map +1 -1
  376. package/dist/esm/base/repositories/index.js.map +1 -1
  377. package/dist/esm/base/repositories/query-schemas/index.js.map +1 -1
  378. package/dist/esm/base/request-context/common/index.js.map +1 -1
  379. package/dist/esm/base/request-context/common/types.js.map +1 -1
  380. package/dist/esm/base/request-context/index.js.map +1 -1
  381. package/dist/esm/base/request-context/registry.js.map +1 -1
  382. package/dist/esm/base/services/base.js.map +1 -1
  383. package/dist/esm/base/services/common/index.js.map +1 -1
  384. package/dist/esm/base/services/common/types.js.map +1 -1
  385. package/dist/esm/base/services/index.js.map +1 -1
  386. package/dist/esm/common/bindings.js.map +1 -1
  387. package/dist/esm/common/error-codes.js.map +1 -1
  388. package/dist/esm/common/index.js.map +1 -1
  389. package/dist/esm/common/statuses/common.js.map +1 -1
  390. package/dist/esm/common/statuses/index.js.map +1 -1
  391. package/dist/esm/common/statuses/migration.js.map +1 -1
  392. package/dist/esm/common/statuses/role.js.map +1 -1
  393. package/dist/esm/common/statuses/user.js.map +1 -1
  394. package/dist/esm/helpers/index.js.map +1 -1
  395. package/dist/esm/helpers/inversion/common/constants.js.map +1 -1
  396. package/dist/esm/helpers/inversion/common/index.js.map +1 -1
  397. package/dist/esm/helpers/inversion/common/keys.js.map +1 -1
  398. package/dist/esm/helpers/inversion/common/relation-builder.js.map +1 -1
  399. package/dist/esm/helpers/inversion/common/types/artifact.js.map +1 -1
  400. package/dist/esm/helpers/inversion/common/types/controller.js.map +1 -1
  401. package/dist/esm/helpers/inversion/common/types/index.js.map +1 -1
  402. package/dist/esm/helpers/inversion/common/types/injection.js.map +1 -1
  403. package/dist/esm/helpers/inversion/common/types/model.js.map +1 -1
  404. package/dist/esm/helpers/inversion/common/types/persistence.js.map +1 -1
  405. package/dist/esm/helpers/inversion/container.js.map +1 -1
  406. package/dist/esm/helpers/inversion/index.js.map +1 -1
  407. package/dist/esm/helpers/inversion/mixins/artifact.mixin.js.map +1 -1
  408. package/dist/esm/helpers/inversion/mixins/controllers/controller.js.map +1 -1
  409. package/dist/esm/helpers/inversion/mixins/controllers/grpc.js.map +1 -1
  410. package/dist/esm/helpers/inversion/mixins/controllers/index.js.map +1 -1
  411. package/dist/esm/helpers/inversion/mixins/controllers/rest.js.map +1 -1
  412. package/dist/esm/helpers/inversion/mixins/datasource.mixin.js.map +1 -1
  413. package/dist/esm/helpers/inversion/mixins/index.js.map +1 -1
  414. package/dist/esm/helpers/inversion/mixins/model.mixin.js.map +1 -1
  415. package/dist/esm/helpers/inversion/mixins/repository.mixin.js.map +1 -1
  416. package/dist/esm/helpers/inversion/registry.js.map +1 -1
  417. package/dist/esm/helpers/singleton-realm.js.map +1 -1
  418. package/dist/esm/index.js.map +1 -1
  419. package/dist/esm/metadata.js.map +1 -1
  420. package/dist/esm/repository.js.map +1 -1
  421. package/dist/esm/utilities/error.utility.js.map +1 -1
  422. package/dist/esm/utilities/index.js.map +1 -1
  423. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"app-error.middleware.js","sourceRoot":"","sources":["../../../../../src/base/middlewares/app-error/app-error.middleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app-error.middleware.js","sourceRoot":"","sources":["../../../../../src/base/middlewares/app-error/app-error.middleware.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ILogger, TLogLevel } from '@venizia/ignis-helpers/core';\nimport type { TNullable } from '@venizia/ignis-helpers/common';\nimport {\n BaseHelper,\n EnvironmentNames,\n LogLevels,\n MessageCode,\n MessageTemplate,\n} from '@venizia/ignis-helpers/core';\nimport { HTTP, toJsonSafe } from '@venizia/ignis-helpers/common';\nimport type { IProvider } from '@venizia/ignis-inversion';\nimport type { Context } from 'hono';\nimport type { ErrorHandler, HTTPResponseError } from 'hono/types';\nimport { REQUEST_ID_KEY } from '../common';\nimport { isDatabaseClientError, isRetryableDatabaseError } from './database.handler';\nimport {\n ApplicationErrorTypes,\n DATABASE_RETRYABLE_ERROR_CODE,\n DATABASE_RETRYABLE_ERROR_MESSAGE,\n} from './definition';\nimport type { IResolvedApplicationError, TApplicationErrorType } from './common';\nimport { formatZodError } from './zod.handler';\n\nconst DEFAULT_INTERNAL_ERROR_MESSAGE = 'Internal Server Error';\n\n/** An intentional error's throw site is still worth naming; its caller chain is framework plumbing, so it gets a smaller budget than an unexpected one. */\nconst DEFAULT_INTENTIONAL_STACK_FRAMES = 5;\nconst DEFAULT_UNEXPECTED_STACK_FRAMES = 10;\n\n/** How a thrown error is rendered into the log line. Must never throw - a throw inside the error handler turns a handled failure into an unhandled one. */\nexport type TErrorLogFormatter = (opts: {\n error: unknown;\n messageCode?: string;\n extra?: Record<string, unknown>;\n includeStack?: boolean;\n maxStackFrames?: number;\n}) => string;\n\ntype TThrown = Error | HTTPResponseError;\ntype TDatabaseClientError = ReturnType<typeof isDatabaseClientError>;\n\n/**\n * Renders a value into one log-safe fragment.\n *\n * Redaction is not optional here. This runs on `extra`, which is whatever a throw site chose to\n * attach - `getError({ extra: { apiKey } })` is a shape applications write - and in a Worker this\n * fragment lands in the browser console. `toJsonSafe` masks secret-shaped keys; a hand-rolled\n * `JSON.stringify` does not, and the server path has always redacted.\n *\n * The BigInt replacer stays: `toJsonSafe` leaves BigInt intact and `JSON.stringify` refuses it, so\n * without this a single BigInt would collapse the whole fragment to the marker below. Anything else\n * it refuses yields that marker rather than a throw - this is the last-resort error handler, where a\n * throw turns a handled failure into an unhandled one.\n */\nconst renderValue = (opts: { value: unknown }): string => {\n const { value } = opts;\n\n if (typeof value === 'string') {\n return value;\n }\n\n const safe = toJsonSafe({ value });\n\n try {\n return JSON.stringify(safe) ?? String(value);\n } catch {\n // A replacer is 6x the cost of plain stringify and deopts every key, so it is installed only\n // once BigInt has actually thrown - the case it exists for, and the rare one.\n try {\n const rendered = JSON.stringify(safe, (_key, entry: unknown) =>\n typeof entry === 'bigint' ? entry.toString() : entry,\n );\n\n return rendered ?? String(value);\n } catch {\n // Not a swallowed failure: this marker IS the report, and it lands in the log line the caller\n // is building.\n return '[unrenderable]';\n }\n }\n};\n\n/**\n * Hono `onError`: ZodError -> 422, DB client error -> 400, retryable conflict -> 409, `getError` ->\n * its own status, else 500. Browser-pure: the two reads that need a host - the ambient environment\n * name and the error formatter - are constructor OPTIONS, not methods to subclass.\n *\n * They were hooks once, and three subclasses existed to answer them and nothing else. A class seam\n * is also unreachable from application code, so the browser example had to fake the environment with\n * a Hono middleware assigning `context.env`. `@venizia/ignis`'s `AppErrorMiddleware` now just\n * supplies `process.env.NODE_ENV` and `ErrorPrettier` as options.\n */\nexport class BaseAppErrorMiddleware extends BaseHelper implements IProvider<ErrorHandler> {\n private rootKey: TNullable<string>;\n private intentionalStackFrames: number;\n private unexpectedStackFrames: number;\n\n /**\n * How this host reads its ambient environment name, and the ONE option that says whether it has\n * one at all: absent means it does not (a browser), so an unresolved name is by design; present\n * but returning `undefined` means a host that should have one is misconfigured. Either way\n * {@link isProduction} fails closed.\n *\n * A function, not a string: `process.env.NODE_ENV` has to be read per request, since a test - and\n * a `--env-file` reload - can change it after the middleware is built.\n */\n private readonly environment?: () => string | undefined;\n\n /** Replaces {@link renderErrorForLog} - `@venizia/ignis` passes `ErrorPrettier`, which reaches `node:util` and so cannot live here. */\n private readonly formatErrorOverride?: TErrorLogFormatter;\n\n constructor(opts?: {\n logger?: ILogger;\n rootKey?: string;\n intentionalStackFrames?: number;\n unexpectedStackFrames?: number;\n environment?: () => string | undefined;\n formatError?: TErrorLogFormatter;\n }) {\n // `new.target`, not a literal: a subclass logs under its own name, so `@venizia/ignis`'s\n // `AppErrorMiddleware` keeps the scope it has always logged under.\n super({ scope: new.target.name });\n\n this.rootKey = opts?.rootKey;\n this.intentionalStackFrames = opts?.intentionalStackFrames ?? DEFAULT_INTENTIONAL_STACK_FRAMES;\n this.unexpectedStackFrames = opts?.unexpectedStackFrames ?? DEFAULT_UNEXPECTED_STACK_FRAMES;\n this.environment = opts?.environment;\n this.formatErrorOverride = opts?.formatError;\n\n if (opts?.logger) {\n this.logger = opts.logger;\n }\n }\n\n /** Renders a thrown error for the log, through the `formatError` option when one was given. */\n protected formatError(opts: {\n error: unknown;\n messageCode?: string;\n extra?: Record<string, unknown>;\n includeStack?: boolean;\n maxStackFrames?: number;\n }): string {\n return (this.formatErrorOverride ?? (o => this.renderErrorForLog(o)))(opts);\n }\n\n /**\n * The default log rendering: pure and deliberately small, so the whole middleware stays\n * browser-pure.\n *\n * Must never throw, cycles included: a throw inside the error handler turns a handled failure\n * into an unhandled one.\n */\n private renderErrorForLog(opts: {\n error: unknown;\n messageCode?: string;\n extra?: Record<string, unknown>;\n includeStack?: boolean;\n maxStackFrames?: number;\n }): string {\n const { error, messageCode, extra, includeStack = true, maxStackFrames } = opts;\n const thrown = error as Partial<Error> | null | undefined;\n const lines: Array<string> = [];\n\n if (typeof thrown?.name === 'string') {\n lines.push(`name: ${thrown.name}`);\n }\n\n lines.push(\n `message: ${typeof thrown?.message === 'string' ? thrown.message : renderValue({ value: error })}`,\n );\n\n if (messageCode) {\n lines.push(`code: ${messageCode}`);\n }\n\n if (extra && Object.keys(extra).length > 0) {\n lines.push(`extra: ${renderValue({ value: extra })}`);\n }\n\n if (includeStack && typeof thrown?.stack === 'string') {\n const frames = thrown.stack.split('\\n').filter(line => line.trimStart().startsWith('at '));\n const capped = maxStackFrames === undefined ? frames : frames.slice(0, maxStackFrames);\n\n if (capped.length > 0) {\n lines.push(`stack:\\n${capped.join('\\n')}`);\n }\n }\n\n return lines.map(line => `- ${line}`).join('\\n');\n }\n\n private withRootKey(payload: object) {\n return this.rootKey ? { [this.rootKey]: payload } : payload;\n }\n\n /** Fail-closed: an unset or unrecognized env is production. */\n private isProduction(opts: { context: Context; error: TThrown; requestId: string }): boolean {\n const { context, error, requestId } = opts;\n const env = [context.env?.NODE_ENV, this.environment?.()].find(Boolean);\n\n if (!env) {\n // Only a host that HAS an ambient environment can be misconfigured about it. In a browser the\n // absence is by design, and shouting it at error level on every request buries the error the\n // reader is actually looking at. Both paths still sanitize.\n if (this.environment) {\n this.logger.error(\n '[%s] INVALID ENV IDENTIFIER | env: %s | path: %s | method: %s | url: %s\\n%s',\n requestId,\n env,\n context.req.path,\n context.req.method,\n context.req.url,\n this.formatError({ error }),\n );\n } else {\n this.logger.debug(\n '[%s] No ambient environment - sanitizing as production | path: %s | set NODE_ENV on the Hono env binding to opt out',\n requestId,\n context.req.path,\n );\n }\n\n return true;\n }\n\n return !EnvironmentNames.DEVELOPMENT_ENVS.has(env.toLowerCase());\n }\n\n private classify(opts: { error: TThrown; dbError: TDatabaseClientError }): TApplicationErrorType {\n const { error, dbError } = opts;\n\n if (dbError.isClientError) {\n return ApplicationErrorTypes.DATABASE_CLIENT;\n }\n\n if (isRetryableDatabaseError({ error })) {\n return ApplicationErrorTypes.DATABASE_RETRYABLE;\n }\n\n if ('statusCode' in error || this.readClientErrorStatus({ error }) !== undefined) {\n return ApplicationErrorTypes.INTENTIONAL;\n }\n\n return ApplicationErrorTypes.UNEXPECTED;\n }\n\n /** Hono's `HTTPException` carries `status`, not `statusCode`. Only a 4xx is the caller's fault; a 5xx stays unexpected, so its message is sanitized. */\n private readClientErrorStatus(opts: { error: TThrown }): number | undefined {\n const { error } = opts;\n\n if (!('getResponse' in error) || !('status' in error) || typeof error.status !== 'number') {\n return undefined;\n }\n\n const isClientError =\n error.status >= HTTP.ResultCodes.RS_4.BadRequest &&\n error.status < HTTP.ResultCodes.RS_5.InternalServerError;\n\n return isClientError ? error.status : undefined;\n }\n\n /** `getError` sets `statusCode`, and it wins when a foreign error carries both. Neither usable is a 500. */\n private readIntentionalStatus(opts: { error: TThrown }): number {\n const { error } = opts;\n\n if ('statusCode' in error && typeof error.statusCode === 'number') {\n return error.statusCode;\n }\n\n return this.readClientErrorStatus({ error }) ?? HTTP.ResultCodes.RS_5.InternalServerError;\n }\n\n /** An ApplicationError's `normalized` is authoritative - a `transform` may have reworded `text`. */\n private build(opts: {\n error: TThrown;\n statusCode: number;\n message: string;\n type: TApplicationErrorType;\n messageCode?: string;\n }): IResolvedApplicationError {\n const { error, statusCode, message, type, messageCode } = opts;\n\n // Fallback for a FOREIGN error that sets its own code; an ApplicationError reports via `normalized`.\n const code =\n messageCode ??\n MessageCode.resolve('messageCode' in error ? (error.messageCode as string) : undefined);\n\n const normalized =\n 'normalized' in error\n ? (error.normalized as IResolvedApplicationError['normalized'])\n : { text: message, code, args: {} };\n\n return { statusCode, message, normalized, type };\n }\n\n private resolve(opts: { error: TThrown; isProduction: boolean }): IResolvedApplicationError {\n const { error, isProduction } = opts;\n const dbError = isDatabaseClientError({ error, isProduction });\n const type = this.classify({ error, dbError });\n\n switch (type) {\n case ApplicationErrorTypes.DATABASE_CLIENT: {\n return this.build({\n error,\n type,\n statusCode: HTTP.ResultCodes.RS_4.BadRequest,\n // The fallback is unreachable today; it keeps the driver's raw text from ever surfacing.\n message: dbError.message ?? DEFAULT_INTERNAL_ERROR_MESSAGE,\n });\n }\n\n case ApplicationErrorTypes.DATABASE_RETRYABLE: {\n return this.build({\n error,\n type,\n statusCode: HTTP.ResultCodes.RS_4.Conflict,\n message: DATABASE_RETRYABLE_ERROR_MESSAGE,\n messageCode: DATABASE_RETRYABLE_ERROR_CODE,\n });\n }\n\n case ApplicationErrorTypes.INTENTIONAL: {\n return this.build({\n error,\n type,\n statusCode: this.readIntentionalStatus({ error }),\n message: error.message,\n });\n }\n\n default: {\n return this.build({\n error,\n type: ApplicationErrorTypes.UNEXPECTED,\n statusCode: HTTP.ResultCodes.RS_5.InternalServerError,\n // Never leak a raw message - it may carry SQL, schema names or connection details.\n message: isProduction ? DEFAULT_INTERNAL_ERROR_MESSAGE : error.message,\n });\n }\n }\n }\n\n /** A throw site may set `logLevel` via `getError`; anything unset or malformed logs at `error`. */\n private resolveLogLevel(opts: { error: TThrown }): TLogLevel {\n const candidate = (opts.error as { logLevel?: unknown }).logLevel;\n\n if (typeof candidate === 'string' && LogLevels.isValid(candidate)) {\n return candidate as TLogLevel;\n }\n\n return LogLevels.ERROR;\n }\n\n /** The one place a thrown error reaches the log - called once the status is known, so it carries it. */\n private logError(opts: {\n error: TThrown;\n context: Context;\n requestId: string;\n statusCode: number;\n messageCode: string;\n type?: TApplicationErrorType;\n }) {\n const { error, context, requestId, statusCode, messageCode, type } = opts;\n\n this.logger.log(\n this.resolveLogLevel({ error }),\n '[%s] REQUEST ERROR | %s | %s %s\\n%s',\n requestId,\n statusCode,\n context.req.method,\n context.req.url,\n this.formatError({\n error,\n // The default code means \"no code\" - logging it on every error would be a noise line.\n messageCode: messageCode === MessageCode.DEFAULT ? undefined : messageCode,\n extra: 'extra' in error ? (error.extra as Record<string, unknown>) : undefined,\n includeStack: true,\n // An intentional error still needs its throw site; it just does not need the caller chain behind it.\n maxStackFrames:\n type === ApplicationErrorTypes.UNEXPECTED\n ? this.unexpectedStackFrames\n : this.intentionalStackFrames,\n }),\n );\n }\n\n /** Only an intentional error's message is a catalog template; every other branch writes its own text, so it passes through as is. */\n private renderMessage(opts: {\n resolved: IResolvedApplicationError;\n isProduction: boolean;\n requestId: string;\n }): string {\n const { resolved, isProduction, requestId } = opts;\n\n if (resolved.type !== ApplicationErrorTypes.INTENTIONAL) {\n return resolved.message;\n }\n\n const { text, missing } = MessageTemplate.render({\n text: resolved.message,\n args: resolved.normalized.args,\n });\n\n // Production stays silent and renders what it can; anywhere else a missing arg is a throw site to fix.\n if (missing.length > 0 && !isProduction) {\n this.logger.warn(\n '[%s] MESSAGE PLACEHOLDER WITHOUT ARG | code: %s | keys: %s',\n requestId,\n resolved.normalized.code,\n missing.join(', '),\n );\n }\n\n return text;\n }\n\n value(): ErrorHandler {\n return async (error, context) => {\n const requestId = context.get(REQUEST_ID_KEY);\n const isProduction = this.isProduction({ context, error, requestId });\n\n if (error.name === 'ZodError') {\n const rs = formatZodError({\n isProduction,\n requestId,\n url: context.req.url,\n path: context.req.path,\n error,\n });\n\n this.logError({\n error,\n context,\n requestId,\n statusCode: rs.statusCode,\n messageCode: rs.response.normalized.code,\n });\n\n return context.json(\n this.withRootKey(rs.response),\n rs.statusCode as Parameters<typeof context.json>[1],\n );\n }\n\n const resolved = this.resolve({ error, isProduction });\n const { statusCode, normalized, type } = resolved;\n\n this.logError({ error, context, requestId, statusCode, messageCode: normalized.code, type });\n\n const rs = {\n message: this.renderMessage({ resolved, isProduction, requestId }),\n statusCode,\n normalized,\n requestId,\n extra: 'extra' in error ? error?.extra : undefined,\n details: {\n url: context.req.url,\n path: context.req.path,\n stack: !isProduction ? error.stack : undefined,\n cause: !isProduction ? error.cause : undefined,\n },\n };\n\n return context.json(this.withRootKey(rs), statusCode as Parameters<typeof context.json>[1]);\n };\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/base/middlewares/app-error/common/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/base/middlewares/app-error/common/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB","sourcesContent":["export * from './types';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../src/base/middlewares/app-error/common/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../src/base/middlewares/app-error/common/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { TConstValue } from '@venizia/ignis-helpers/common';\nimport type { ApplicationErrorTypes } from '../definition';\n\nexport interface IDatabaseError extends Error {\n code?: string;\n cause?: {\n code?: string;\n detail?: string;\n table?: string;\n constraint?: string;\n };\n}\n\nexport interface IZodIssueLike {\n path: Array<string | number>;\n message: string;\n code?: string;\n params?: Record<string, unknown>;\n expected?: unknown;\n received?: unknown;\n}\n\nexport type TApplicationErrorType = TConstValue<typeof ApplicationErrorTypes>;\n\nexport interface IResolvedApplicationError {\n statusCode: number;\n message: string;\n normalized: { text: string; code: string; args: Record<string, unknown> };\n /** Drives whether the log carries a stack - only an UNEXPECTED failure needs one. */\n type: TApplicationErrorType;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"database.handler.js","sourceRoot":"","sources":["../../../../../src/base/middlewares/app-error/database.handler.ts"],"names":[],"mappings":";;;AAAA,6CAKsB;AAGtB,wMAAwM;AACjM,MAAM,qBAAqB,GAAG,CAAC,IAGrC,EAAgD,EAAE;IACjD,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IACrC,MAAM,OAAO,GAAG,KAAuB,CAAC;IACxC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC5B,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEvD,8KAA8K;IAC9K,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,0CAA6B,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;IAClC,CAAC;IAED,MAAM,WAAW,GACf,2CAA8B,CAAC,IAAI,CAAC,IAAI,mDAAsC,CAAC;IAEjF,qIAAqI;IACrI,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;IACvD,CAAC;IAED,mEAAmE;IACnE,MAAM,KAAK,GAAG,CAAC,WAAW,CAAC,CAAC;IAC5B,IAAI,KAAK,EAAE,MAAM,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,KAAK,EAAE,KAAK,EAAE,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,KAAK,EAAE,UAAU,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,OAAO;QACL,aAAa,EAAE,IAAI;QACnB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;KAC1B,CAAC;AACJ,CAAC,CAAC;AAxCW,QAAA,qBAAqB,yBAwChC;AAEF,2KAA2K;AACpK,MAAM,wBAAwB,GAAG,CAAC,IAAsB,EAAW,EAAE;IAC1E,MAAM,OAAO,GAAG,IAAI,CAAC,KAAuB,CAAC;IAC7C,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/D,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,2CAA8B,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnF,CAAC,CAAC;AAJW,QAAA,wBAAwB,4BAInC"}
1
+ {"version":3,"file":"database.handler.js","sourceRoot":"","sources":["../../../../../src/base/middlewares/app-error/database.handler.ts"],"names":[],"mappings":";;;AAAA,6CAKsB;AAGtB,wMAAwM;AACjM,MAAM,qBAAqB,GAAG,CAAC,IAGrC,EAAgD,EAAE;IACjD,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IACrC,MAAM,OAAO,GAAG,KAAuB,CAAC;IACxC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC5B,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEvD,8KAA8K;IAC9K,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,0CAA6B,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;IAClC,CAAC;IAED,MAAM,WAAW,GACf,2CAA8B,CAAC,IAAI,CAAC,IAAI,mDAAsC,CAAC;IAEjF,qIAAqI;IACrI,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;IACvD,CAAC;IAED,mEAAmE;IACnE,MAAM,KAAK,GAAG,CAAC,WAAW,CAAC,CAAC;IAC5B,IAAI,KAAK,EAAE,MAAM,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,KAAK,EAAE,KAAK,EAAE,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,KAAK,EAAE,UAAU,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,OAAO;QACL,aAAa,EAAE,IAAI;QACnB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;KAC1B,CAAC;AACJ,CAAC,CAAC;AAxCW,QAAA,qBAAqB,yBAwChC;AAEF,2KAA2K;AACpK,MAAM,wBAAwB,GAAG,CAAC,IAAsB,EAAW,EAAE;IAC1E,MAAM,OAAO,GAAG,IAAI,CAAC,KAAuB,CAAC;IAC7C,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/D,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,2CAA8B,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnF,CAAC,CAAC;AAJW,QAAA,wBAAwB,4BAInC","sourcesContent":["import {\n DATABASE_CLIENT_ERROR_FALLBACK_MESSAGE,\n DATABASE_CLIENT_ERROR_MESSAGES,\n POSTGRES_CLIENT_ERROR_CLASSES,\n POSTGRES_RETRYABLE_ERROR_CODES,\n} from './definition';\nimport type { IDatabaseError } from './common';\n\n/** True for a database error caused by the request (SQLSTATE class 22/23/44) -> HTTP 400; in production the detail/table/constraint context is suppressed so no row values or schema internals leak. */\nexport const isDatabaseClientError = (opts: {\n error: Error;\n isProduction: boolean;\n}): { isClientError: boolean; message?: string } => {\n const { error, isProduction } = opts;\n const dbError = error as IDatabaseError;\n const cause = dbError.cause;\n const code = [dbError.code, cause?.code].find(Boolean);\n\n // Only request-caused SQLSTATE classes are client errors; a missing or non-string code (e.g. a gRPC numeric one) is non-client and must never crash this last-resort handler.\n if (typeof code !== 'string' || !POSTGRES_CLIENT_ERROR_CLASSES.includes(code.slice(0, 2))) {\n return { isClientError: false };\n }\n\n const baseMessage =\n DATABASE_CLIENT_ERROR_MESSAGES[code] ?? DATABASE_CLIENT_ERROR_FALLBACK_MESSAGE;\n\n // In production expose ONLY the generic base message: `detail` can echo row values and `table`/`constraint` reveal schema internals.\n if (isProduction) {\n return { isClientError: true, message: baseMessage };\n }\n\n // Non-production: append driver-provided context to aid debugging.\n const lines = [baseMessage];\n if (cause?.detail) {\n lines.push(`Detail: ${cause.detail}`);\n }\n\n if (cause?.table) {\n lines.push(`Table: ${cause.table}`);\n }\n\n if (cause?.constraint) {\n lines.push(`Constraint: ${cause.constraint}`);\n }\n\n return {\n isClientError: true,\n message: lines.join('\\n'),\n };\n};\n\n/** True for a transient, retryable transaction conflict (serialization failure / deadlock - SQLSTATE 40001 / 40P01) -> HTTP 409: the client can retry the same request. */\nexport const isRetryableDatabaseError = (opts: { error: Error }): boolean => {\n const dbError = opts.error as IDatabaseError;\n const code = [dbError.code, dbError.cause?.code].find(Boolean);\n return typeof code === 'string' && POSTGRES_RETRYABLE_ERROR_CODES.includes(code);\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../../src/base/middlewares/app-error/definition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../../src/base/middlewares/app-error/definition.ts"],"names":[],"mappings":"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","sourcesContent":["import { CoreErrorCodes } from '@/common/error-codes';\n/** PostgreSQL SQLSTATE codes representing a CLIENT error (HTTP 400) - caused by the request/data, not a server fault. @see https://www.postgresql.org/docs/current/errcodes-appendix.html */\nexport const PostgresErrorCodes = {\n // Class 22 - Data Exception (malformed / out-of-range values)\n DATA_EXCEPTION: '22000',\n STRING_DATA_TOO_LONG: '22001',\n NUMERIC_VALUE_OUT_OF_RANGE: '22003',\n NULL_VALUE_NOT_ALLOWED: '22004',\n INVALID_DATETIME_FORMAT: '22007',\n DATETIME_FIELD_OVERFLOW: '22008',\n INVALID_TIME_ZONE_DISPLACEMENT_VALUE: '22009',\n SUBSTRING_ERROR: '22011',\n DIVISION_BY_ZERO: '22012',\n INVALID_PARAMETER_VALUE: '22023',\n INVALID_ESCAPE_SEQUENCE: '22025',\n STRING_DATA_LENGTH_MISMATCH: '22026',\n DUPLICATE_JSON_OBJECT_KEY_VALUE: '22030',\n INVALID_JSON_TEXT: '22032',\n FLOATING_POINT_EXCEPTION: '22P01',\n INVALID_TEXT_REPRESENTATION: '22P02',\n INVALID_BINARY_REPRESENTATION: '22P03',\n UNTRANSLATABLE_CHARACTER: '22P05',\n // Class 23 - Integrity Constraint Violation\n INTEGRITY_CONSTRAINT_VIOLATION: '23000',\n RESTRICT_VIOLATION: '23001',\n NOT_NULL_VIOLATION: '23502',\n FOREIGN_KEY_VIOLATION: '23503',\n UNIQUE_VIOLATION: '23505',\n CHECK_VIOLATION: '23514',\n EXCLUSION_VIOLATION: '23P01',\n // Class 44 - WITH CHECK OPTION Violation (row written through an updatable view fails its CHECK)\n WITH_CHECK_OPTION_VIOLATION: '44000',\n} as const;\n\n/** SQLSTATE classes (first two chars) mapped to HTTP 400; codes without a specific message use {@link DATABASE_CLIENT_ERROR_FALLBACK_MESSAGE}. Deliberately excluded (stay 500): 42, 53, 0A, 25, 28, 21, 54; class 40 is transient/retryable, NOT a 400. */\nexport const POSTGRES_CLIENT_ERROR_CLASSES: readonly string[] = ['22', '23', '44'];\n\n/** Human-readable message per specific SQLSTATE code. */\nexport const DATABASE_CLIENT_ERROR_MESSAGES: Record<string, string> = {\n // Class 22 - Data Exception\n [PostgresErrorCodes.DATA_EXCEPTION]: 'Invalid data value',\n [PostgresErrorCodes.STRING_DATA_TOO_LONG]: 'String data too long',\n [PostgresErrorCodes.NUMERIC_VALUE_OUT_OF_RANGE]: 'Numeric value out of range',\n [PostgresErrorCodes.NULL_VALUE_NOT_ALLOWED]: 'Null value not allowed',\n [PostgresErrorCodes.INVALID_DATETIME_FORMAT]: 'Invalid date/time format',\n [PostgresErrorCodes.DATETIME_FIELD_OVERFLOW]: 'Date/time field value out of range',\n [PostgresErrorCodes.INVALID_TIME_ZONE_DISPLACEMENT_VALUE]: 'Invalid time zone displacement value',\n [PostgresErrorCodes.SUBSTRING_ERROR]: 'Substring error',\n [PostgresErrorCodes.DIVISION_BY_ZERO]: 'Division by zero',\n [PostgresErrorCodes.INVALID_PARAMETER_VALUE]: 'Invalid parameter value',\n [PostgresErrorCodes.INVALID_ESCAPE_SEQUENCE]: 'Invalid escape sequence',\n [PostgresErrorCodes.STRING_DATA_LENGTH_MISMATCH]: 'String data length mismatch',\n [PostgresErrorCodes.DUPLICATE_JSON_OBJECT_KEY_VALUE]: 'Duplicate JSON object key',\n [PostgresErrorCodes.INVALID_JSON_TEXT]: 'Invalid JSON text',\n [PostgresErrorCodes.FLOATING_POINT_EXCEPTION]: 'Floating point exception',\n [PostgresErrorCodes.INVALID_TEXT_REPRESENTATION]: 'Invalid text representation',\n [PostgresErrorCodes.INVALID_BINARY_REPRESENTATION]: 'Invalid binary representation',\n [PostgresErrorCodes.UNTRANSLATABLE_CHARACTER]: 'Untranslatable character',\n // Class 23 - Integrity Constraint Violation\n [PostgresErrorCodes.INTEGRITY_CONSTRAINT_VIOLATION]: 'Integrity constraint violation',\n [PostgresErrorCodes.RESTRICT_VIOLATION]: 'Restrict constraint violation',\n [PostgresErrorCodes.NOT_NULL_VIOLATION]: 'Not null constraint violation',\n [PostgresErrorCodes.FOREIGN_KEY_VIOLATION]: 'Foreign key constraint violation',\n [PostgresErrorCodes.UNIQUE_VIOLATION]: 'Unique constraint violation',\n [PostgresErrorCodes.CHECK_VIOLATION]: 'Check constraint violation',\n [PostgresErrorCodes.EXCLUSION_VIOLATION]: 'Exclusion constraint violation',\n // Class 44 - WITH CHECK OPTION Violation\n [PostgresErrorCodes.WITH_CHECK_OPTION_VIOLATION]: 'View check option violation',\n};\n\n/** Fallback message for a client-class (22/23/44) error that has no specific message above. */\nexport const DATABASE_CLIENT_ERROR_FALLBACK_MESSAGE = 'Invalid database request';\n\n/** SQLSTATE codes for transient, retryable transaction conflicts (-> HTTP 409) - the transaction lost a concurrency race, not bad input (400) and not a server bug (500). */\nexport const POSTGRES_RETRYABLE_ERROR_CODES: readonly string[] = [\n '40001', // serialization_failure\n '40P01', // deadlock_detected\n];\n\n/** Safe, generic message + stable code for a retryable DB conflict (never leaks internals). */\nexport const DATABASE_RETRYABLE_ERROR_MESSAGE =\n 'The request conflicted with a concurrent operation; please retry.';\nexport const DATABASE_RETRYABLE_ERROR_CODE = CoreErrorCodes.DATABASE_CONFLICT;\n\n/** The branch a thrown value takes through the handler. */\nexport class ApplicationErrorTypes {\n static readonly DATABASE_CLIENT = 'database-client';\n static readonly DATABASE_RETRYABLE = 'database-retryable';\n static readonly INTENTIONAL = 'intentional';\n static readonly UNEXPECTED = 'unexpected';\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/base/middlewares/app-error/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAuC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/base/middlewares/app-error/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAuC","sourcesContent":["export * from './app-error.middleware';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"zod.handler.js","sourceRoot":"","sources":["../../../../../src/base/middlewares/app-error/zod.handler.ts"],"names":[],"mappings":";;;AAAA,sDAA0D;AAC1D,0DAAqD;AAIrD,MAAM,0BAA0B,GAAG,iBAAiB,CAAC;AAErD,iGAAiG;AACjG,MAAM,gBAAgB,GAAG,CAAC,IAA8B,EAAE,EAAE;IAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC;IAE5C,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,2DAA2D;AACpD,MAAM,cAAc,GAAG,CAAC,IAM9B,EAAE,EAAE;IACH,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAC3D,MAAM,UAAU,GAAG,aAAI,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC;IAE7D,IAAI,gBAAyB,CAAC;IAC9B,IAAI,CAAC;QACH,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,gBAAgB,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAE,gBAAoC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE9F,6EAA6E;IAC7E,IAAI,WAA+B,CAAC;IACpC,IAAI,OAAO,GAAG,0BAA0B,CAAC;IAEzC,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,YAAY,GAChB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,SAAS,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/E,WAAW,GAAG,gBAAgB,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC;QAC7E,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;IACjC,CAAC;IAED,4KAA4K;IAC5K,MAAM,mBAAmB,GAAG,kBAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAE7D,OAAO;QACL,UAAU;QACV,QAAQ,EAAE;YACR,OAAO;YACP,UAAU;YACV,yGAAyG;YACzG,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,EAAE,EAAE;YAClE,SAAS;YACT,OAAO,EAAE;gBACP,GAAG;gBACH,IAAI;gBACJ,KAAK,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;gBAC9C,KAAK,EAAE,MAAM;oBACX,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;wBAChB,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM;wBACjC,OAAO,EAAE,EAAE,CAAC,OAAO;wBACnB,IAAI,EAAE,EAAE,CAAC,IAAI;wBACb,QAAQ,EAAE,EAAE,CAAC,QAAQ;wBACrB,QAAQ,EAAE,EAAE,CAAC,QAAQ;qBACtB,CAAC,CAAC;oBACL,CAAC,CAAC,gBAAgB;aACrB;SACF;KACF,CAAC;AACJ,CAAC,CAAC;AAzDW,QAAA,cAAc,kBAyDzB"}
1
+ {"version":3,"file":"zod.handler.js","sourceRoot":"","sources":["../../../../../src/base/middlewares/app-error/zod.handler.ts"],"names":[],"mappings":";;;AAAA,sDAA0D;AAC1D,0DAAqD;AAIrD,MAAM,0BAA0B,GAAG,iBAAiB,CAAC;AAErD,iGAAiG;AACjG,MAAM,gBAAgB,GAAG,CAAC,IAA8B,EAAE,EAAE;IAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC;IAE5C,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,2DAA2D;AACpD,MAAM,cAAc,GAAG,CAAC,IAM9B,EAAE,EAAE;IACH,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAC3D,MAAM,UAAU,GAAG,aAAI,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC;IAE7D,IAAI,gBAAyB,CAAC;IAC9B,IAAI,CAAC;QACH,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,gBAAgB,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAE,gBAAoC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE9F,6EAA6E;IAC7E,IAAI,WAA+B,CAAC;IACpC,IAAI,OAAO,GAAG,0BAA0B,CAAC;IAEzC,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,YAAY,GAChB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,SAAS,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/E,WAAW,GAAG,gBAAgB,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC;QAC7E,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;IACjC,CAAC;IAED,4KAA4K;IAC5K,MAAM,mBAAmB,GAAG,kBAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAE7D,OAAO;QACL,UAAU;QACV,QAAQ,EAAE;YACR,OAAO;YACP,UAAU;YACV,yGAAyG;YACzG,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,EAAE,EAAE;YAClE,SAAS;YACT,OAAO,EAAE;gBACP,GAAG;gBACH,IAAI;gBACJ,KAAK,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;gBAC9C,KAAK,EAAE,MAAM;oBACX,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;wBAChB,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM;wBACjC,OAAO,EAAE,EAAE,CAAC,OAAO;wBACnB,IAAI,EAAE,EAAE,CAAC,IAAI;wBACb,QAAQ,EAAE,EAAE,CAAC,QAAQ;wBACrB,QAAQ,EAAE,EAAE,CAAC,QAAQ;qBACtB,CAAC,CAAC;oBACL,CAAC,CAAC,gBAAgB;aACrB;SACF;KACF,CAAC;AACJ,CAAC,CAAC;AAzDW,QAAA,cAAc,kBAyDzB","sourcesContent":["import { MessageCode } from '@venizia/ignis-helpers/core';\nimport { HTTP } from '@venizia/ignis-helpers/common';\nimport type { HTTPResponseError } from 'hono/types';\nimport type { IZodIssueLike } from './common';\n\nconst DEFAULT_VALIDATION_MESSAGE = 'ValidationError';\n\n/** Returns a schema-author-supplied code (`issue.params.code`) when it is a non-empty string. */\nconst extractIssueCode = (opts: { issue: IZodIssueLike }) => {\n const paramsCode = opts.issue?.params?.code;\n\n if (typeof paramsCode === 'string' && paramsCode.length > 0) {\n return paramsCode;\n }\n\n return undefined;\n};\n\n/** Formats a ZodError into the 422 validation response. */\nexport const formatZodError = (opts: {\n isProduction: boolean;\n requestId: string;\n url: string;\n path: string;\n error: Error | HTTPResponseError;\n}) => {\n const { isProduction, requestId, url, path, error } = opts;\n const statusCode = HTTP.ResultCodes.RS_4.UnprocessableEntity;\n\n let validationErrors: unknown;\n try {\n validationErrors = JSON.parse(error.message);\n } catch {\n validationErrors = error;\n }\n\n const issues = Array.isArray(validationErrors) ? (validationErrors as IZodIssueLike[]) : null;\n\n // Prefer the first issue with a custom `params.code`, else its raw Zod code.\n let messageCode: string | undefined;\n let message = DEFAULT_VALIDATION_MESSAGE;\n\n if (issues && issues.length > 0) {\n const primaryIssue =\n issues.find(issue => extractIssueCode({ issue }) !== undefined) ?? issues[0];\n messageCode = extractIssueCode({ issue: primaryIssue }) ?? primaryIssue.code;\n message = primaryIssue.message;\n }\n\n // A ZodError we could not parse into issues yields no code of its own; the response still carries one, so no error response is ever missing the field a client branches on.\n const resolvedMessageCode = MessageCode.resolve(messageCode);\n\n return {\n statusCode,\n response: {\n message,\n statusCode,\n // `args` is empty: a Zod issue carries no interpolation values - per-field detail is in `details.cause`.\n normalized: { text: message, code: resolvedMessageCode, args: {} },\n requestId,\n details: {\n url,\n path,\n stack: !isProduction ? error.stack : undefined,\n cause: issues\n ? issues.map(el => ({\n path: el.path.join('.') || 'root',\n message: el.message,\n code: el.code,\n expected: el.expected,\n received: el.received,\n }))\n : validationErrors,\n },\n },\n };\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/base/middlewares/common/constants.ts"],"names":[],"mappings":";;;AAcA,wIAAwI;AAC3H,QAAA,cAAc,GAAG,WAAW,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/base/middlewares/common/constants.ts"],"names":[],"mappings":";;;AAcA,wIAAwI;AAC3H,QAAA,cAAc,GAAG,WAAW,CAAC","sourcesContent":["/**\n * Restates `hono/request-id`'s own augmentation so it reaches every consumer of this package.\n *\n * The augmentation only applies where `hono/request-id` is in the program, and since the middleware\n * moved into `RestApplication.registerDefaultMiddlewares()` no consumer imports it any more - which\n * silently untypes `context.get(REQUEST_ID_KEY)` for them. Identical member, so it merges rather\n * than conflicts wherever both are loaded.\n */\ndeclare module 'hono' {\n interface ContextVariableMap {\n requestId: string;\n }\n}\n\n/** Hono context key the request id is stamped under; not-found and app-error read the same key so all three agree on one identifier. */\nexport const REQUEST_ID_KEY = 'requestId';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../../src/base/middlewares/common/errors.ts"],"names":[],"mappings":";;;AACA,sDAA6E;AAC7E,0DAAqD;AAErD,wJAAwJ;AAC3I,QAAA,aAAa,GAAG;IAC3B,4FAA4F;IAC5F,cAAc,EAAE,wBAAiB,CAAC,cAAc;IAChD,cAAc,EAAE;QACd,OAAO,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,IAAI,EAAE,6BAA6B,EAAE;QACnF,UAAU,EAAE,aAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe;QACjD,QAAQ,EAAE,kBAAW,CAAC,UAAU;KACjC;IACD,iBAAiB,EAAE;QACjB,OAAO,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,gCAAgC,EAAE;QAC9E,UAAU,EAAE,aAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU;QAC5C,QAAQ,EAAE,kBAAW,CAAC,UAAU;KACjC;CACkD,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../../src/base/middlewares/common/errors.ts"],"names":[],"mappings":";;;AACA,sDAA6E;AAC7E,0DAAqD;AAErD,wJAAwJ;AAC3I,QAAA,aAAa,GAAG;IAC3B,4FAA4F;IAC5F,cAAc,EAAE,wBAAiB,CAAC,cAAc;IAChD,cAAc,EAAE;QACd,OAAO,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,IAAI,EAAE,6BAA6B,EAAE;QACnF,UAAU,EAAE,aAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe;QACjD,QAAQ,EAAE,kBAAW,CAAC,UAAU;KACjC;IACD,iBAAiB,EAAE;QACjB,OAAO,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,gCAAgC,EAAE;QAC9E,UAAU,EAAE,aAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU;QAC5C,QAAQ,EAAE,kBAAW,CAAC,UAAU;KACjC;CACkD,CAAC","sourcesContent":["import type { TErrorDefinition, TRegisterErrors } from '@venizia/ignis-helpers/core';\nimport { ErrorScopes, RequestBodyErrors } from '@venizia/ignis-helpers/core';\nimport { HTTP } from '@venizia/ignis-helpers/common';\n\n/** Codes a client branches on for a request refused before any repository ran - by the middleware layer, or by a handler reading the validated body. */\nexport const RequestErrors = {\n // Defined in helpers, whose `readFormBody` throws it: one definition for every body parser.\n BODY_MALFORMED: RequestBodyErrors.BODY_MALFORMED,\n BODY_TOO_LARGE: {\n message: { text: 'Request body is too large', code: 'core.request.body_too_large' },\n statusCode: HTTP.ResultCodes.RS_4.ContentTooLarge,\n category: ErrorScopes.VALIDATION,\n },\n NOTHING_TO_UPDATE: {\n message: { text: 'Nothing to update', code: 'core.request.nothing_to_update' },\n statusCode: HTTP.ResultCodes.RS_4.BadRequest,\n category: ErrorScopes.VALIDATION,\n },\n} as const satisfies Record<string, TErrorDefinition>;\n\n/** Registers these codes with the shared key registry so a consumer gets autocomplete on `messageCode`. Augments the `/core` subpath, not the root barrel - kernel never imports the bare package, so nothing else in this program would make the root specifier resolvable for the merge. */\ndeclare module '@venizia/ignis-helpers/core' {\n interface IErrorKeyRegistry extends TRegisterErrors<typeof RequestErrors> {}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/base/middlewares/common/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,2CAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/base/middlewares/common/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,2CAAyB","sourcesContent":["export * from './constants';\nexport * from './errors';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"emoji-favicon.middleware.js","sourceRoot":"","sources":["../../../../../src/base/middlewares/emoji-favicon/emoji-favicon.middleware.ts"],"names":[],"mappings":";;;AACA,0CAAgD;AAEhD,yDAAyD;AAClD,MAAM,YAAY,GAAG,CAAC,IAAsB,EAAqB,EAAE;IACxE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAEtB,MAAM,EAAE,GAAG,IAAA,0BAAgB,EAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAClD,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACxC,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;QACzD,OAAO,OAAO,CAAC,IAAI,CACjB,0GAA0G,IAAI,eAAe,CAC9H,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAfW,QAAA,YAAY,gBAevB"}
1
+ {"version":3,"file":"emoji-favicon.middleware.js","sourceRoot":"","sources":["../../../../../src/base/middlewares/emoji-favicon/emoji-favicon.middleware.ts"],"names":[],"mappings":";;;AACA,0CAAgD;AAEhD,yDAAyD;AAClD,MAAM,YAAY,GAAG,CAAC,IAAsB,EAAqB,EAAE;IACxE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAEtB,MAAM,EAAE,GAAG,IAAA,0BAAgB,EAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAClD,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACxC,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;QACzD,OAAO,OAAO,CAAC,IAAI,CACjB,0GAA0G,IAAI,eAAe,CAC9H,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAfW,QAAA,YAAY,gBAevB","sourcesContent":["import type { MiddlewareHandler } from 'hono';\nimport { createMiddleware } from 'hono/factory';\n\n/** Serves an emoji as an SVG favicon on /favicon.ico. */\nexport const emojiFavicon = (opts: { icon: string }): MiddlewareHandler => {\n const { icon } = opts;\n\n const mw = createMiddleware(async (context, next) => {\n if (context.req.path !== '/favicon.ico') {\n return next();\n }\n\n context.res.headers.set('content-type', 'image/svg+xml');\n return context.body(\n `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"><text y=\".9em\" x=\"-0.1em\" font-size=\"90\">${icon}</text></svg>`,\n );\n });\n\n return mw;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/base/middlewares/emoji-favicon/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/base/middlewares/emoji-favicon/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C","sourcesContent":["export * from './emoji-favicon.middleware';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"form-body.middleware.js","sourceRoot":"","sources":["../../../../../src/base/middlewares/form-body/form-body.middleware.ts"],"names":[],"mappings":";;;AAAA,0DAAqD;AACrD,sDAA2D;AAG3D,MAAM,kBAAkB,GAAG;IACzB,aAAI,CAAC,YAAY,CAAC,mBAAmB;IACrC,aAAI,CAAC,YAAY,CAAC,2BAA2B;CAC9C,CAAC;AAEF,6EAA6E;AACtE,MAAM,WAAW,GAAG,CAAC,IAA2C,EAAW,EAAE;IAClF,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACzB,OAAO,OAAO,KAAK,SAAS,IAAI,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,IAAI,OAAO,CAAC,CAAC;AACjG,CAAC,CAAC;AAHW,QAAA,WAAW,eAGtB;AAEF;;;;GAIG;AACI,MAAM,cAAc,GAAsB,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACvE,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,aAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAExE,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QACxE,MAAM,IAAA,mBAAY,EAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,IAAI,EAAE,CAAC;AACf,CAAC,CAAC;AARW,QAAA,cAAc,kBAQzB"}
1
+ {"version":3,"file":"form-body.middleware.js","sourceRoot":"","sources":["../../../../../src/base/middlewares/form-body/form-body.middleware.ts"],"names":[],"mappings":";;;AAAA,0DAAqD;AACrD,sDAA2D;AAG3D,MAAM,kBAAkB,GAAG;IACzB,aAAI,CAAC,YAAY,CAAC,mBAAmB;IACrC,aAAI,CAAC,YAAY,CAAC,2BAA2B;CAC9C,CAAC;AAEF,6EAA6E;AACtE,MAAM,WAAW,GAAG,CAAC,IAA2C,EAAW,EAAE;IAClF,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACzB,OAAO,OAAO,KAAK,SAAS,IAAI,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,IAAI,OAAO,CAAC,CAAC;AACjG,CAAC,CAAC;AAHW,QAAA,WAAW,eAGtB;AAEF;;;;GAIG;AACI,MAAM,cAAc,GAAsB,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACvE,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,aAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAExE,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QACxE,MAAM,IAAA,mBAAY,EAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,IAAI,EAAE,CAAC;AACf,CAAC,CAAC;AARW,QAAA,cAAc,kBAQzB","sourcesContent":["import { HTTP } from '@venizia/ignis-helpers/common';\nimport { readFormBody } from '@venizia/ignis-helpers/core';\nimport type { MiddlewareHandler } from 'hono/types';\n\nconst FORM_CONTENT_TYPES = [\n HTTP.HeaderValues.MULTIPART_FORM_DATA,\n HTTP.HeaderValues.APPLICATION_FORM_URLENCODED,\n];\n\n/** Whether a route declares a form body, so its validator will parse one. */\nexport const hasFormBody = (opts: { content?: Record<string, unknown> }): boolean => {\n const { content } = opts;\n return content !== undefined && FORM_CONTENT_TYPES.some(contentType => contentType in content);\n};\n\n/**\n * Parses a declared form body just ahead of the route's validator, which reads the cached result.\n * Left to the validator, a malformed body is a bare `HTTPException(400)` carrying the parser's own\n * text and no code; read here, it is `core.request.body_malformed`.\n */\nexport const formBodyReader: MiddlewareHandler = async (context, next) => {\n const contentType = context.req.header(HTTP.Headers.CONTENT_TYPE) ?? '';\n\n if (FORM_CONTENT_TYPES.some(formType => contentType.includes(formType))) {\n await readFormBody({ req: context.req });\n }\n\n await next();\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/base/middlewares/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,2CAAyB;AACzB,kDAAgC;AAChC,8CAA4B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/base/middlewares/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,2CAAyB;AACzB,kDAAgC;AAChC,8CAA4B","sourcesContent":["export * from './app-error';\nexport * from './common';\nexport * from './emoji-favicon';\nexport * from './not-found';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/base/middlewares/not-found/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAuC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/base/middlewares/not-found/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAuC","sourcesContent":["export * from './not-found.middleware';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"not-found.middleware.js","sourceRoot":"","sources":["../../../../../src/base/middlewares/not-found/not-found.middleware.ts"],"names":[],"mappings":";;;AACA,0DAAqD;AAErD,sCAA2C;AAEpC,MAAM,eAAe,GAAG,CAAC,IAA0B,EAAE,EAAE;IAC5D,MAAM,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,IAAI,CAAC;IAElC,MAAM,EAAE,GAAoB,KAAK,EAAC,OAAO,EAAC,EAAE;QAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAc,CAAC,CAAC;QAE9C,6FAA6F;QAC7F,+FAA+F;QAC/F,6FAA6F;QAC7F,MAAM,CAAC,IAAI,CACT,yCAAyC,EACzC,SAAS,EACT,OAAO,CAAC,GAAG,CAAC,IAAI,EAChB,OAAO,CAAC,GAAG,CAAC,GAAG,CAChB,CAAC;QAEF,OAAO,OAAO,CAAC,IAAI,CACjB;YACE,OAAO,EAAE,eAAe;YACxB,UAAU,EAAE,aAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ;YAC1C,SAAS;YACT,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI;YACtB,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG;SACrB,EACD,aAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAC/B,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AA7BW,QAAA,eAAe,mBA6B1B"}
1
+ {"version":3,"file":"not-found.middleware.js","sourceRoot":"","sources":["../../../../../src/base/middlewares/not-found/not-found.middleware.ts"],"names":[],"mappings":";;;AACA,0DAAqD;AAErD,sCAA2C;AAEpC,MAAM,eAAe,GAAG,CAAC,IAA0B,EAAE,EAAE;IAC5D,MAAM,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,IAAI,CAAC;IAElC,MAAM,EAAE,GAAoB,KAAK,EAAC,OAAO,EAAC,EAAE;QAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAc,CAAC,CAAC;QAE9C,6FAA6F;QAC7F,+FAA+F;QAC/F,6FAA6F;QAC7F,MAAM,CAAC,IAAI,CACT,yCAAyC,EACzC,SAAS,EACT,OAAO,CAAC,GAAG,CAAC,IAAI,EAChB,OAAO,CAAC,GAAG,CAAC,GAAG,CAChB,CAAC;QAEF,OAAO,OAAO,CAAC,IAAI,CACjB;YACE,OAAO,EAAE,eAAe;YACxB,UAAU,EAAE,aAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ;YAC1C,SAAS;YACT,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI;YACtB,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG;SACrB,EACD,aAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAC/B,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AA7BW,QAAA,eAAe,mBA6B1B","sourcesContent":["import type { ILogger } from '@venizia/ignis-helpers/core';\nimport { HTTP } from '@venizia/ignis-helpers/common';\nimport type { NotFoundHandler } from 'hono/types';\nimport { REQUEST_ID_KEY } from '../common';\n\nexport const notFoundHandler = (opts: { logger?: ILogger }) => {\n const { logger = console } = opts;\n\n const mw: NotFoundHandler = async context => {\n const requestId = context.get(REQUEST_ID_KEY);\n\n // WARN, not ERROR: an unrouted path is the callers mistake, and this middleware is installed\n // unconditionally - so scanner traffic filled the dedicated error log and tripped error-volume\n // alerting. The same reasoning is already applied to an expired token elsewhere in the tree.\n logger.warn(\n '[%s] URL NOT FOUND | path: %s | url: %s',\n requestId,\n context.req.path,\n context.req.url,\n );\n\n return context.json(\n {\n message: 'URL NOT FOUND',\n statusCode: HTTP.ResultCodes.RS_4.NotFound,\n requestId,\n path: context.req.path,\n url: context.req.url,\n },\n HTTP.ResultCodes.RS_4.NotFound,\n );\n };\n\n return mw;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/base/mixins/common/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/base/mixins/common/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB","sourcesContent":["export * from './types';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/base/mixins/common/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/base/mixins/common/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Binding } from '@/helpers/inversion';\nimport type { TClass, ValueOrPromise } from '@venizia/ignis-helpers/common';\nimport type { IApplication, TArtifactIndexInput } from '../../applications';\nimport type { BaseComponent } from '../../components';\nimport type { BaseConfiguration } from '../../configurations';\nimport type { IDataSource } from '../../datasources';\nimport type { IRepository } from '../../repositories';\nimport type { IService } from '../../services';\n/** Options of the registration itself, never of the artifact - what the artifact needs goes on its class. */\nexport type TMixinOpts<Options extends object = {}> = {\n binding?: { namespace: string; key: string };\n /** Default true, matching `bind()`'s overwrite behavior; false makes a same-key re-registration throw. */\n allowOverride?: boolean;\n /** Options passed directly to `instance.configure(options)` during initialization. */\n options?: Options;\n};\n\nexport interface IConfigurationMixin {\n configuration<Base extends BaseConfiguration<Options>, Options extends object = {}>(\n target: TClass<Base>,\n opts?: TMixinOpts<Options>,\n ): Binding<Base>;\n registerConfigurations(): ValueOrPromise<void>;\n}\n\nexport interface IComponentMixin {\n component<Base extends BaseComponent<Options>, Options extends object = {}>(\n target: TClass<Base>,\n opts?: TMixinOpts<Options>,\n ): Binding<Base>;\n registerComponents(): ValueOrPromise<void>;\n}\n\nexport interface IServerConfigMixin {\n staticConfigure(): ValueOrPromise<void>;\n preConfigure(): ValueOrPromise<void>;\n postConfigure(): ValueOrPromise<void>;\n getApplicationVersion(): ValueOrPromise<string>;\n}\n\nexport interface IControllerMixin {\n controller<Base>(target: TClass<Base>, opts?: TMixinOpts): Binding<Base>;\n registerControllers(): ValueOrPromise<void>;\n}\n\nexport interface IRepositoryMixin {\n dataSource<Base extends IDataSource<Options>, Options extends object = {}>(\n target: TClass<Base>,\n opts?: TMixinOpts<Options>,\n ): Binding<Base>;\n repository<Base extends IRepository>(target: TClass<Base>, opts?: TMixinOpts): Binding<Base>;\n}\nexport interface IServiceMixin {\n service<Base extends IService>(target: TClass<Base>, opts?: TMixinOpts): Binding<Base>;\n}\n\nexport interface IArtifactRegistrationMixin {\n registerArtifacts(index: TArtifactIndexInput): Promise<void>;\n}\n\nexport interface IStaticServeMixin {\n static(opts: { restPath?: string; folderPath: string }): IApplication;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/base/mixins/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/base/mixins/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB","sourcesContent":["export * from './common';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/base/models/base.ts"],"names":[],"mappings":";;;AAAA,sDAAyD;AAGzD,4EAA4E;AAC5E,MAAsB,cAAiC,SAAQ,iBAAU;IAGvE,YAAY,IAAsB;QAChC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAID,2GAA2G;IAC3G,SAAS;QACP,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,2GAA2G;IAC3G,oBAAoB;QAClB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,QAAQ;QACN,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;IACrB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;CACF;AA3BD,wCA2BC"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/base/models/base.ts"],"names":[],"mappings":";;;AAAA,sDAAyD;AAGzD,4EAA4E;AAC5E,MAAsB,cAAiC,SAAQ,iBAAU;IAGvE,YAAY,IAAsB;QAChC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAID,2GAA2G;IAC3G,SAAS;QACP,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,2GAA2G;IAC3G,oBAAoB;QAClB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,QAAQ;QACN,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;IACrB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;CACF;AA3BD,wCA2BC","sourcesContent":["import { BaseHelper } from '@venizia/ignis-helpers/core';\nimport type { TIdSchemaType, TSchemaType } from './common';\n\n/** Engine-neutral entity root: named, scoped-logged, zod-schema-capable. */\nexport abstract class AbstractEntity<Schema = unknown> extends BaseHelper {\n name: string;\n\n constructor(opts: { name: string }) {\n super({ scope: opts.name });\n this.name = opts.name;\n }\n\n abstract getSchema<T = Schema>(opts: { type: TSchemaType }): T;\n\n /** Path-param id shape for this entity - default 'string' (every document-family id, e.g. Typesense's). */\n getIdType(): TIdSchemaType {\n return 'string';\n }\n\n /** Keys the server fills on every write, which a generated create or update body leaves out. None here. */\n getServerStampedKeys(): string[] {\n return [];\n }\n\n toObject() {\n return { ...this };\n }\n\n toJSON() {\n return this.toObject();\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/base/models/common/constants.ts"],"names":[],"mappings":";;;AAEA,MAAa,WAAW;aACN,WAAM,GAAG,QAAQ,CAAC;aAClB,WAAM,GAAG,QAAQ,CAAC;aAClB,WAAM,GAAG,QAAQ,CAAC;aAClB,YAAO,GAAG,SAAS,CAAC;aAEpB,eAAU,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAE5F,MAAM,CAAC,OAAO,CAAC,KAAa;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;;AAVH,kCAWC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/base/models/common/constants.ts"],"names":[],"mappings":";;;AAEA,MAAa,WAAW;aACN,WAAM,GAAG,QAAQ,CAAC;aAClB,WAAM,GAAG,QAAQ,CAAC;aAClB,WAAM,GAAG,QAAQ,CAAC;aAClB,YAAO,GAAG,SAAS,CAAC;aAEpB,eAAU,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAE5F,MAAM,CAAC,OAAO,CAAC,KAAa;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;;AAVH,kCAWC","sourcesContent":["import type { TConstValue } from '@venizia/ignis-helpers/common';\n\nexport class SchemaTypes {\n static readonly SELECT = 'select';\n static readonly UPDATE = 'update';\n static readonly CREATE = 'create';\n static readonly EXECUTE = 'execute';\n\n static readonly SCHEME_SET = new Set([this.SELECT, this.UPDATE, this.CREATE, this.EXECUTE]);\n\n static isValid(input: string): input is TSchemaType {\n return this.SCHEME_SET.has(input);\n }\n}\n\nexport type TSchemaType = TConstValue<typeof SchemaTypes>;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/base/models/common/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,4CAA0B;AAC1B,0CAAwB;AACxB,8CAA4B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/base/models/common/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,4CAA0B;AAC1B,0CAAwB;AACxB,8CAA4B","sourcesContent":["export * from './constants';\nexport * from './schemas';\nexport * from './types';\nexport * from './utilities';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../../../src/base/models/common/schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../../../src/base/models/common/schemas.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from '@hono/zod-openapi';\nimport { HTTP } from '@venizia/ignis-helpers/common';\nimport { getError } from '@venizia/ignis-helpers/core';\nimport type { TIdSchemaType } from './types';\n\n/**\n * The error RESPONSE for OpenAPI docs - here, beside the REST layer that already needs `@hono/zod-openapi`.\n * Named, so every route's `4XX` and `5XX` reference one `ErrorResponse` component.\n */\nexport const ErrorSchema = z\n .object({\n statusCode: z.number().optional(),\n message: z.string(),\n normalized: z\n .object({\n text: z.string(),\n code: z.string(),\n args: z.record(z.string(), z.any()),\n })\n .optional(),\n extra: z.record(z.string(), z.any()).optional(),\n requestId: z.string().optional(),\n details: z.record(z.string(), z.any()).optional(),\n })\n .openapi('ErrorResponse', {\n description: 'Error Schema',\n example: {\n statusCode: HTTP.ResultCodes.RS_4.Conflict,\n message: 'A category named %{name} already exists.',\n normalized: {\n text: 'A category named %{name} already exists.',\n code: 'server.commerce.category.create.duplicate_name',\n args: { name: 'Ticket' },\n },\n extra: { categoryId: 42 },\n requestId: 'abc-123-def',\n details: { url: 'http://localhost:3000/categories', path: '/categories' },\n },\n });\n\nexport type TErrorResponse = z.infer<typeof ErrorSchema>;\n\nexport const idParamsSchema = (opts?: { idType: TIdSchemaType }) => {\n const { idType = 'number' } = opts ?? {};\n\n switch (idType) {\n case 'number': {\n return z.object({\n id: z.number().openapi({\n param: {\n name: 'id',\n in: 'path',\n description: 'The unique id of the resource',\n },\n examples: [1, 2, 3],\n }),\n });\n }\n case 'string': {\n return z.object({\n id: z.string().openapi({\n param: {\n name: 'id',\n in: 'path',\n description: 'The unique id of the resource',\n },\n examples: ['4651e634-a530-4484-9b09-9616a28f35e3', 'some_unique_id'],\n }),\n });\n }\n default: {\n throw getError({\n message: `[idParamsSchema] Invalid input idType | valid: [string | number] | idType: ${idType}`,\n });\n }\n }\n};\n\nexport const jsonContent = <T extends z.ZodType>(opts: {\n schema: T;\n description: string;\n required?: boolean;\n}) => {\n return {\n description: opts.description,\n content: { 'application/json': { schema: opts.schema } },\n required: opts.required,\n };\n};\n\n/** The JSON error body of a route, under `4XX` and `5XX` - the range keys OpenAPI accepts. */\nexport const errorResponses = () => {\n const errorResponse = jsonContent({ description: 'Error Response', schema: ErrorSchema });\n\n return { '4XX': errorResponse, '5XX': errorResponse };\n};\n\n/** OpenAPI Header Object format */\ntype THeaderObject = {\n description?: string;\n schema: { type: string; examples?: Array<string> };\n};\n\n/** Map of header names to Header Objects */\ntype TResponseHeaders = Record<string, THeaderObject>;\n\ntype TJsonResponseOpts<T extends z.ZodType, H extends TResponseHeaders | undefined> = {\n schema: T;\n description?: string;\n required?: boolean;\n headers?: H;\n};\n\nexport const jsonResponse = <\n ContentSchema extends z.ZodType,\n HeaderSchema extends TResponseHeaders | undefined = undefined,\n>(\n opts: TJsonResponseOpts<ContentSchema, HeaderSchema>,\n) => {\n const baseResponse = jsonContent({\n required: opts.required,\n description: opts.description ?? 'Success Response',\n schema: opts.schema,\n });\n\n const successResponse = opts.headers ? { ...baseResponse, headers: opts.headers } : baseResponse;\n\n return {\n [HTTP.ResultCodes.RS_2.Ok]: successResponse,\n ...errorResponses(),\n };\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"id.js","sourceRoot":"","sources":["../../../../../../src/base/models/common/types/id.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"id.js","sourceRoot":"","sources":["../../../../../../src/base/models/common/types/id.ts"],"names":[],"mappings":"","sourcesContent":["export type NumberIdType = number;\nexport type StringIdType = string;\nexport type BigIntIdType = bigint;\nexport type IdType = NumberIdType | StringIdType | BigIntIdType;\n\ndeclare const entityIdBrand: unique symbol;\n\n/**\n * A string id a plain `string` cannot be assigned to, so passing a name, code or email where an id\n * belongs is a compile error. Opt a column in with `.$type<TEntityId>()`.\n *\n * IT VALIDATES NOTHING. `toEntityId` is a cast with a non-empty check; the value is making the\n * laundering VISIBLE at each boundary, not proving the string is a real id.\n *\n * The cost is not optional: Drizzle derives `$inferInsert` and `$inferSelect` from the same field,\n * so a branded column rejects every literal - `create({ data: { merchantId: 'M1' } })`, seeds,\n * fixtures, path params - until each converts. A union with `string` would restore those but makes\n * a plain `string` assignable again, which erases the whole guarantee. Measured, not assumed.\n */\nexport type TEntityId = string & { readonly [entityIdBrand]: never };\n\n/** Path-param id shape every entity family resolves to (`AbstractEntity.getIdType()`). */\nexport type TIdSchemaType = 'number' | 'string';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/base/models/common/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uCAAqB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/base/models/common/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uCAAqB","sourcesContent":["export * from './id';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"utilities.js","sourceRoot":"","sources":["../../../../../src/base/models/common/utilities.ts"],"names":[],"mappings":";;;AAAA,mDAAsC;AACtC,sDAA6E;AAG7E,uHAAuH;AAChH,MAAM,UAAU,GAAG,CAAC,IAAuB,EAAa,EAAE;IAC/D,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAA,eAAQ,EAAC,EAAE,OAAO,EAAE,uDAAuD,EAAE,CAAC,CAAC;IACvF,CAAC;IAED,OAAO,IAAI,CAAC,KAAkB,CAAC;AACjC,CAAC,CAAC;AANW,QAAA,UAAU,cAMrB;AAYK,MAAM,YAAY,GAAG,CAA0B,KAAQ,EAAE,EAAE;IAChE,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CACnC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACzC,OAAO,CAAC,IAAA,cAAO,EAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC,CAAC,CACkB,CAAC;IAEvB,OAAO,eAAC;SACL,MAAM,CAAC,KAAK,CAAC;SACb,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAA,kBAAW,EAAC,IAAI,CAAC,CAAC;SACpC,IAAI,CAAC,eAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AAChC,CAAC,CAAC;AAXW,QAAA,YAAY,gBAWvB"}
1
+ {"version":3,"file":"utilities.js","sourceRoot":"","sources":["../../../../../src/base/models/common/utilities.ts"],"names":[],"mappings":";;;AAAA,mDAAsC;AACtC,sDAA6E;AAG7E,uHAAuH;AAChH,MAAM,UAAU,GAAG,CAAC,IAAuB,EAAa,EAAE;IAC/D,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAA,eAAQ,EAAC,EAAE,OAAO,EAAE,uDAAuD,EAAE,CAAC,CAAC;IACvF,CAAC;IAED,OAAO,IAAI,CAAC,KAAkB,CAAC;AACjC,CAAC,CAAC;AANW,QAAA,UAAU,cAMrB;AAYK,MAAM,YAAY,GAAG,CAA0B,KAAQ,EAAE,EAAE;IAChE,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CACnC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACzC,OAAO,CAAC,IAAA,cAAO,EAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC,CAAC,CACkB,CAAC;IAEvB,OAAO,eAAC;SACL,MAAM,CAAC,KAAK,CAAC;SACb,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAA,kBAAW,EAAC,IAAI,CAAC,CAAC;SACpC,IAAI,CAAC,eAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AAChC,CAAC,CAAC;AAXW,QAAA,YAAY,gBAWvB","sourcesContent":["import { z } from '@hono/zod-openapi';\nimport { getError, keysToCamel, toCamel } from '@venizia/ignis-helpers/core';\nimport type { TEntityId } from './types';\n\n/** The only way into `TEntityId`. Rejects an empty string - an id that is `''` collapses a `where` to no condition. */\nexport const toEntityId = (opts: { value: string }): TEntityId => {\n if (opts.value.length === 0) {\n throw getError({ message: '[toEntityId] Refusing an empty string as an entity id' });\n }\n\n return opts.value as TEntityId;\n};\n\ntype TSnakeToCamelCase<S extends string> = S extends `${infer T}_${infer U}`\n ? `${T}${Capitalize<TSnakeToCamelCase<U>>}`\n : S;\n\ntype TCamelCaseKeys<T extends z.ZodRawShape> = {\n [K in keyof T as K extends string ? TSnakeToCamelCase<K> : K]: T[K] extends z.ZodType<infer U>\n ? z.ZodType<U>\n : T[K];\n};\n\nexport const snakeToCamel = <T extends z.ZodRawShape>(shape: T) => {\n const camelShape = Object.fromEntries(\n Object.entries(shape).map(([key, value]) => {\n return [toCamel(key), value];\n }),\n ) as TCamelCaseKeys<T>;\n\n return z\n .object(shape)\n .transform(data => keysToCamel(data))\n .pipe(z.object(camelShape));\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/base/models/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,2CAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/base/models/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,2CAAyB","sourcesContent":["export * from './base';\nexport * from './common';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/base/providers/base.ts"],"names":[],"mappings":";;;AACA,sDAAyD;AAGzD,MAAsB,YAAgB,SAAQ,iBAAU;CAEvD;AAFD,oCAEC"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/base/providers/base.ts"],"names":[],"mappings":";;;AACA,sDAAyD;AAGzD,MAAsB,YAAgB,SAAQ,iBAAU;CAEvD;AAFD,oCAEC","sourcesContent":["import type { Container } from '@/helpers/inversion';\nimport { BaseHelper } from '@venizia/ignis-helpers/core';\nimport type { IProvider } from '@venizia/ignis-inversion';\n\nexport abstract class BaseProvider<T> extends BaseHelper implements IProvider<T> {\n abstract value(container: Container): T;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/base/providers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/base/providers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB","sourcesContent":["export * from './base';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/base/repositories/common/constants.ts"],"names":[],"mappings":";;;AACA,sDAA0D;AAE1D,uDAAuD;AAC1C,QAAA,aAAa,GAAG,EAAE,CAAC;AAEhC;;;;;;;;;;GAUG;AACU,QAAA,iBAAiB,GAAG,IAAI,CAAC;AAEtC,gGAAgG;AAChG,MAAa,yBAAyB;aACpB,cAAS,GAAG,WAAW,CAAC;aACxB,eAAU,GAAG,YAAY,CAAC;aAC1B,eAAU,GAAG,YAAY,CAAC;aAC1B,eAAU,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAEzF,MAAM,CAAC,OAAO,CAAC,OAAe;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;;AARH,8DASC;AAKD,kJAAkJ;AAClJ,MAAa,eAAe;aACV,UAAK,GAAG,OAAO,CAAC;aAChB,WAAM,GAAG,QAAQ,CAAC;aAClB,eAAU,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAEhE,MAAM,CAAC,OAAO,CAAC,KAAa;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;;AAPH,0CAQC;AAKD,4GAA4G;AAC5G,MAAa,2BAA2B;IACtC,+FAA+F;aAC/E,SAAI,GAAG,MAAM,CAAC;IAC9B,gHAAgH;aAChG,UAAK,GAAG,OAAO,CAAC;aAChB,eAAU,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAE9D,MAAM,CAAC,OAAO,CAAC,QAAgB;QAC7B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;;AATH,kEAUC;AAKD;;;;;GAKG;AACH,MAAa,YAAY;IACvB;;;;;OAKG;aACa,iBAAY,GAAG,MAAM,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;;AAP/F,oCAQC;AAED,kMAAkM;AAClM,MAAa,oBAAoB;IAC/B,qGAAqG;aACrF,0BAAqB,GAAG,kBAAW,CAAC,KAAK,CAAC;QACxD,KAAK,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,uBAAuB,CAAC;KACvD,CAAC,CAAC;;AAJL,oDAKC;AAKD,mEAAmE;AACnE,MAAa,aAAa;aACR,QAAG,GAAG,KAAK,CAAC;aACZ,SAAI,GAAG,MAAM,CAAC;aACd,eAAU,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAE5D,MAAM,CAAC,OAAO,CAAC,OAAe;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;;AAPH,sCAQC;AAKD,yEAAyE;AACzE,MAAa,aAAa;aACR,WAAM,GAAG,QAAQ,CAAC;aAClB,kBAAa,GAAG,eAAe,CAAC;aAChC,UAAK,GAAG,OAAO,CAAC;aAChB,cAAS,GAAG,WAAW,CAAC;aACxB,eAAU,GAAG,IAAI,GAAG,CAAC;QACnC,IAAI,CAAC,MAAM;QACX,IAAI,CAAC,aAAa;QAClB,IAAI,CAAC,KAAK;QACV,IAAI,CAAC,SAAS;KACf,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC,QAAgB;QAC7B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;;AAdH,sCAeC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/base/repositories/common/constants.ts"],"names":[],"mappings":";;;AACA,sDAA0D;AAE1D,uDAAuD;AAC1C,QAAA,aAAa,GAAG,EAAE,CAAC;AAEhC;;;;;;;;;;GAUG;AACU,QAAA,iBAAiB,GAAG,IAAI,CAAC;AAEtC,gGAAgG;AAChG,MAAa,yBAAyB;aACpB,cAAS,GAAG,WAAW,CAAC;aACxB,eAAU,GAAG,YAAY,CAAC;aAC1B,eAAU,GAAG,YAAY,CAAC;aAC1B,eAAU,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAEzF,MAAM,CAAC,OAAO,CAAC,OAAe;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;;AARH,8DASC;AAKD,kJAAkJ;AAClJ,MAAa,eAAe;aACV,UAAK,GAAG,OAAO,CAAC;aAChB,WAAM,GAAG,QAAQ,CAAC;aAClB,eAAU,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAEhE,MAAM,CAAC,OAAO,CAAC,KAAa;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;;AAPH,0CAQC;AAKD,4GAA4G;AAC5G,MAAa,2BAA2B;IACtC,+FAA+F;aAC/E,SAAI,GAAG,MAAM,CAAC;IAC9B,gHAAgH;aAChG,UAAK,GAAG,OAAO,CAAC;aAChB,eAAU,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAE9D,MAAM,CAAC,OAAO,CAAC,QAAgB;QAC7B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;;AATH,kEAUC;AAKD;;;;;GAKG;AACH,MAAa,YAAY;IACvB;;;;;OAKG;aACa,iBAAY,GAAG,MAAM,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;;AAP/F,oCAQC;AAED,kMAAkM;AAClM,MAAa,oBAAoB;IAC/B,qGAAqG;aACrF,0BAAqB,GAAG,kBAAW,CAAC,KAAK,CAAC;QACxD,KAAK,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,uBAAuB,CAAC;KACvD,CAAC,CAAC;;AAJL,oDAKC;AAKD,mEAAmE;AACnE,MAAa,aAAa;aACR,QAAG,GAAG,KAAK,CAAC;aACZ,SAAI,GAAG,MAAM,CAAC;aACd,eAAU,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAE5D,MAAM,CAAC,OAAO,CAAC,OAAe;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;;AAPH,sCAQC;AAKD,yEAAyE;AACzE,MAAa,aAAa;aACR,WAAM,GAAG,QAAQ,CAAC;aAClB,kBAAa,GAAG,eAAe,CAAC;aAChC,UAAK,GAAG,OAAO,CAAC;aAChB,cAAS,GAAG,WAAW,CAAC;aACxB,eAAU,GAAG,IAAI,GAAG,CAAC;QACnC,IAAI,CAAC,MAAM;QACX,IAAI,CAAC,aAAa;QAClB,IAAI,CAAC,KAAK;QACV,IAAI,CAAC,SAAS;KACf,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC,QAAgB;QAC7B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;;AAdH,sCAeC","sourcesContent":["import type { TConstValue } from '@venizia/ignis-helpers/common';\nimport { MessageCode } from '@venizia/ignis-helpers/core';\n\n/** Default pagination limit for repository queries. */\nexport const DEFAULT_LIMIT = 10;\n\n/**\n * Largest `limit` a caller may ask for when a model declares no `maxLimit`.\n *\n * POLICY, not capacity - it sits far below what an engine can physically serve. It exists because\n * removing an accidental guardrail without replacing it would leave the framework less safe than\n * before: a search engine refused a page over 250 hits, so `limit: 5000` failed fast and cheap.\n * Once that page is served, something has to decide when a page is unreasonable.\n *\n * 1000 sits above any list screen and well below the physical ceiling, so reaching it means the\n * caller is doing something unusual - and a model raises it by saying so explicitly.\n */\nexport const DEFAULT_MAX_LIMIT = 1000;\n\n/** Defines the operation scope for repository instances (READ_ONLY, WRITE_ONLY, READ_WRITE). */\nexport class RepositoryOperationScopes {\n static readonly READ_ONLY = 'READ_ONLY';\n static readonly WRITE_ONLY = 'WRITE_ONLY';\n static readonly READ_WRITE = 'READ_WRITE';\n static readonly SCHEME_SET = new Set([this.READ_ONLY, this.WRITE_ONLY, this.READ_WRITE]);\n\n static isValid(orgType: string): boolean {\n return this.SCHEME_SET.has(orgType);\n }\n}\n\n/** Valid repository operation scope values. */\nexport type TRepositoryOperationScope = TConstValue<typeof RepositoryOperationScopes>;\n\n/** What `@repository` binds: MODEL, a model this application declares (the default); REMOTE, data behind another service's API, with no model. */\nexport class RepositoryTypes {\n static readonly MODEL = 'model';\n static readonly REMOTE = 'remote';\n static readonly SCHEME_SET = new Set([this.MODEL, this.REMOTE]);\n\n static isValid(value: string): boolean {\n return this.SCHEME_SET.has(value);\n }\n}\n\n/** Valid repository type values. */\nexport type TRepositoryType = TConstValue<typeof RepositoryTypes>;\n\n/** What a row-scope filter (`@model` settings.scopeFilter) does when `resolve()` returns null/undefined. */\nexport class ScopeFilterMissingBehaviors {\n /** An unresolved scope matches ZERO rows - the safe reading of \"caller's scope is unknown\". */\n static readonly DENY = 'deny';\n /** Explicit opt-out: no scope is applied. For migrations and background jobs, never inferred from a request. */\n static readonly ALLOW = 'allow';\n static readonly SCHEME_SET = new Set([this.DENY, this.ALLOW]);\n\n static isValid(behavior: string): boolean {\n return this.SCHEME_SET.has(behavior);\n }\n}\n\n/** Valid scope-filter missing-behavior values. */\nexport type TScopeFilterMissingBehavior = TConstValue<typeof ScopeFilterMissingBehaviors>;\n\n/**\n * The third `resolve()` state, beside a `where` and `deny`-by-default null/undefined: unrestricted\n * for THIS call. `onMissing: 'allow'` cannot express it - `onMissing` lives on the model's static\n * settings, so using it for a per-user bypass (an internal operator) would also unscope every\n * ordinary user whose `resolve()` happens to return nothing.\n */\nexport class ScopeFilters {\n /**\n * Return from `resolve()` to apply NO scope for this request - a caller the application has\n * decided sees everything. Deliberately a symbol: forgetting to return must land in deny, and no\n * JSON body, query string, or header can ever produce this value. `Symbol.for` so two installed\n * copies of this package agree on identity, same as `DATA_SOURCE_BRAND`.\n */\n static readonly UNRESTRICTED = Symbol.for('@venizia/ignis-kernel:scope-filter-unrestricted');\n}\n\n/** Machine-readable codes for repository-level failures, in the dotted namespace core already uses (`core.not_supported`, `core.search_engine.*`) - a client maps the code, never the message. */\nexport class RepositoryErrorCodes {\n /** A verb the repository's `operationScope` does not permit (e.g. `create()` on a READ_ONLY one). */\n static readonly OPERATION_NOT_ALLOWED = MessageCode.build({\n parts: ['core', 'repository', 'operation_not_allowed'],\n });\n}\n\n/** Valid repository error code values. */\nexport type TRepositoryErrorCode = TConstValue<typeof RepositoryErrorCodes>;\n\n/** Entity relation types (one-to-one/many-to-one, one-to-many). */\nexport class RelationTypes {\n static readonly ONE = 'one';\n static readonly MANY = 'many';\n static readonly SCHEME_SET = new Set([this.ONE, this.MANY]);\n\n static isValid(orgType: string): boolean {\n return this.SCHEME_SET.has(orgType);\n }\n}\n\n/** Valid relation type values. */\nexport type TRelationType = TConstValue<typeof RelationTypes>;\n\n/** PostgreSQL row-level lock strengths for SELECT ... FOR <strength>. */\nexport class LockStrengths {\n static readonly UPDATE = 'update';\n static readonly NO_KEY_UPDATE = 'no key update';\n static readonly SHARE = 'share';\n static readonly KEY_SHARE = 'key share';\n static readonly SCHEME_SET = new Set([\n this.UPDATE,\n this.NO_KEY_UPDATE,\n this.SHARE,\n this.KEY_SHARE,\n ]);\n\n static isValid(strength: string): boolean {\n return this.SCHEME_SET.has(strength);\n }\n}\n\n/** Valid lock strength values. */\nexport type TLockStrength = TConstValue<typeof LockStrengths>;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../../src/base/repositories/common/errors.ts"],"names":[],"mappings":";;;AACA,sDAA0D;AAC1D,0DAAqD;AAErD,8GAA8G;AACjG,QAAA,gBAAgB,GAAG;IAC9B,gBAAgB,EAAE;QAChB,OAAO,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,kCAAkC,EAAE;QAC/E,UAAU,EAAE,aAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ;QAC1C,QAAQ,EAAE,kBAAW,CAAC,QAAQ;KAC/B;CACkD,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../../src/base/repositories/common/errors.ts"],"names":[],"mappings":";;;AACA,sDAA0D;AAC1D,0DAAqD;AAErD,8GAA8G;AACjG,QAAA,gBAAgB,GAAG;IAC9B,gBAAgB,EAAE;QAChB,OAAO,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,kCAAkC,EAAE;QAC/E,UAAU,EAAE,aAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ;QAC1C,QAAQ,EAAE,kBAAW,CAAC,QAAQ;KAC/B;CACkD,CAAC","sourcesContent":["import type { TErrorDefinition, TRegisterErrors } from '@venizia/ignis-helpers/core';\nimport { ErrorScopes } from '@venizia/ignis-helpers/core';\nimport { HTTP } from '@venizia/ignis-helpers/common';\n\n/** Codes a client branches on for a repository-level failure that is the caller's fault, not the server's. */\nexport const RepositoryErrors = {\n ENTITY_NOT_FOUND: {\n message: { text: 'Entity not found', code: 'core.repository.entity_not_found' },\n statusCode: HTTP.ResultCodes.RS_4.NotFound,\n category: ErrorScopes.BUSINESS,\n },\n} as const satisfies Record<string, TErrorDefinition>;\n\n/** Registers these codes with the shared key registry so a consumer gets autocomplete on `messageCode`. Augments the `/core` subpath, not the root barrel - kernel never imports the bare package, so nothing else in this program would make the root specifier resolvable for the merge. */\ndeclare module '@venizia/ignis-helpers/core' {\n interface IErrorKeyRegistry extends TRegisterErrors<typeof RepositoryErrors> {}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"extra-request.js","sourceRoot":"","sources":["../../../../../src/base/repositories/common/extra-request.ts"],"names":[],"mappings":";;;AAAA,0DAAqD;AAoBrD,mFAAmF;AACnF,MAAa,gBAAgB;IAC3B;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,IAGf;QACC,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,iBAAiB,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;QAEvD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAC1D,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CACrF,CAAC;QACF,MAAM,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAEhE,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1D,CAAC;IAED,8DAA8D;aAC9C,WAAM,GAAG,aAAI,CAAC,OAAO,CAAC,aAAa,CAAC;;AApBtD,4CAqBC"}
1
+ {"version":3,"file":"extra-request.js","sourceRoot":"","sources":["../../../../../src/base/repositories/common/extra-request.ts"],"names":[],"mappings":";;;AAAA,0DAAqD;AAoBrD,mFAAmF;AACnF,MAAa,gBAAgB;IAC3B;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,IAGf;QACC,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,iBAAiB,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;QAEvD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAC1D,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CACrF,CAAC;QACF,MAAM,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAEhE,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1D,CAAC;IAED,8DAA8D;aAC9C,WAAM,GAAG,aAAI,CAAC,OAAO,CAAC,aAAa,CAAC;;AApBtD,4CAqBC","sourcesContent":["import { HTTP } from '@venizia/ignis-helpers/common';\n\n/**\n * The extras a client asks for, by name: `true` asks for a plain extra, a list of keys asks for a\n * group (`facets: ['status', 'tag']`), `false` switches a default off.\n */\nexport type TExtraRequest = Record<string, boolean | ReadonlyArray<string>>;\n\n/**\n * What may come back for `Extra`: a group keyed by the keys asked for. Every entry is optional - a\n * route that offers no extras, or an older server, answers none - and the route may add defaults.\n */\nexport type TExtraResult<Extra extends TExtraRequest> = {\n [K in keyof Extra as Extra[K] extends false ? never : K]?: Extra[K] extends ReadonlyArray<\n infer Key extends string\n >\n ? Record<Key, unknown>\n : unknown;\n} & Record<string, unknown>;\n\n/** The client half of the list-extras contract: what goes in `x-request-extra`. */\nexport class HttpExtraRequest {\n /**\n * The header value for what a call asks for - `name`, `-name`, `name(key,key)` - led by `-*` when\n * the call wants the rows alone, every default off. `undefined` when it asks for nothing.\n */\n static toHeader(opts: {\n extra?: TExtraRequest;\n isEveryDefaultOff?: boolean;\n }): string | undefined {\n const { extra = {}, isEveryDefaultOff = false } = opts;\n\n const entries = Object.entries(extra).map(([name, value]) =>\n value === true ? name : value === false ? `-${name}` : `${name}(${value.join(',')})`,\n );\n const tokens = isEveryDefaultOff ? ['-*', ...entries] : entries;\n\n return tokens.length > 0 ? tokens.join(',') : undefined;\n }\n\n /** The header name, for a client that sets headers itself. */\n static readonly HEADER = HTTP.Headers.REQUEST_EXTRA;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/base/repositories/common/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2OAA2O;AAC3O,wDAAsC;AAEtC,2CAAyB;AACzB,mDAAiC;AACjC,8CAA4B;AAC5B,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/base/repositories/common/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2OAA2O;AAC3O,wDAAsC;AAEtC,2CAAyB;AACzB,mDAAiC;AACjC,8CAA4B;AAC5B,0CAAwB","sourcesContent":["/** The filter vocabulary (operators, sorts, the `TFilter` shape) lives in `@venizia/ignis-filter` so a browser data layer can speak the same language; re-exported here so every existing `@venizia/ignis-core` import keeps resolving. */\nexport * from '@venizia/ignis-filter';\n\nexport * from './errors';\nexport * from '../query-schemas';\nexport * from './constants';\nexport * from './types';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"response-reader.js","sourceRoot":"","sources":["../../../../../src/base/repositories/common/response-reader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"response-reader.js","sourceRoot":"","sources":["../../../../../src/base/repositories/common/response-reader.ts"],"names":[],"mappings":"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","sourcesContent":["import { HTTP } from '@venizia/ignis-helpers/common';\nimport { getError } from '@venizia/ignis-helpers/core';\nimport type { ApplicationError, TResponsedError } from '@venizia/ignis-helpers/core';\n\n/**\n * What an IGNIS server answers - `Content-Range`, the error envelope - read once, here, for every\n * client of that server: the http connector, and a client that reads it without the connector.\n */\nexport class HttpResponseReader {\n static isPlainObject(value: unknown): value is Record<string, unknown> {\n return (\n !!value && typeof value === 'object' && Object.getPrototypeOf(value) === Object.prototype\n );\n }\n\n /** An empty string reads as absent, so a fallback still applies. */\n static toText(value: unknown): string | undefined {\n return typeof value === 'string' && value !== '' ? value : undefined;\n }\n\n /**\n * A `Content-Range` header as the IGNIS server writes it: `records 0-24/137` -> skip 0, total 137;\n * an empty page, `records *\\/137` -> total 137. Anything else, including an absent header or an\n * unknown total, is `undefined`.\n */\n static parseContentRange(opts: {\n header?: string | null;\n }): { skip?: number; total: number } | undefined {\n const { header } = opts;\n\n if (!header) {\n return undefined;\n }\n\n const range = header.match(/(\\d+)\\s*-\\s*(\\d+)\\s*\\/\\s*(\\d+)/);\n if (range) {\n return { skip: Number(range[1]), total: Number(range[3]) };\n }\n\n const unsatisfied = header.match(/\\*\\s*\\/\\s*(\\d+)/);\n if (unsatisfied) {\n return { total: Number(unsatisfied[1]) };\n }\n\n return undefined;\n }\n\n /**\n * The IGNIS error envelope - `{ message, statusCode, normalized: { text, code, args }, requestId,\n * extra, details }` - read off a parsed response body. A server configured with `error.rootKey`\n * wraps it under that key; pass the same `rootKey` to unwrap it. A body without that key, or with a\n * non-object under it (a proxy's `{ error: 'Bad Gateway' }`), is read as it stands.\n *\n * A body that is not a plain object yields `{}`; any other body yields its known fields, each\n * `undefined` when absent or mistyped. An empty string reads as absent.\n */\n static readErrorEnvelope(opts: { body: unknown; rootKey?: string }): TResponsedError {\n const { body, rootKey } = opts;\n\n const wrapped = rootKey && HttpResponseReader.isPlainObject(body) ? body[rootKey] : undefined;\n const envelope = HttpResponseReader.isPlainObject(wrapped) ? wrapped : body;\n\n if (!HttpResponseReader.isPlainObject(envelope)) {\n return {};\n }\n\n const { message, statusCode, normalized, requestId, extra, details } = envelope;\n const normalizedRecord = HttpResponseReader.isPlainObject(normalized) ? normalized : {};\n const { text, code, args } = normalizedRecord;\n\n return {\n message: HttpResponseReader.toText(message),\n statusCode: typeof statusCode === 'number' ? statusCode : undefined,\n normalized: {\n text: HttpResponseReader.toText(text),\n code: HttpResponseReader.toText(code),\n args: HttpResponseReader.isPlainObject(args) ? { ...args } : undefined,\n },\n requestId: HttpResponseReader.toText(requestId),\n extra: HttpResponseReader.isPlainObject(extra) ? { ...extra } : undefined,\n details: HttpResponseReader.isPlainObject(details) ? { ...details } : undefined,\n };\n }\n\n /** A failed response's envelope. A body that is not JSON yields `{}`, and the status alone still describes it. */\n static async readError(opts: { response: Response; rootKey?: string }): Promise<TResponsedError> {\n const text = await opts.response.text().catch(() => '');\n\n let body: unknown;\n try {\n body = text ? JSON.parse(text) : undefined;\n } catch {\n return {};\n }\n\n return HttpResponseReader.readErrorEnvelope({ body, rootKey: opts.rootKey });\n }\n\n /**\n * A failed response as the error the server threw: its status, code, args and text, and its\n * `extra` with the `requestId` added. `message` is `context` plus the server's text, for logs;\n * `normalized.text` stays the server's, for display - `HTTP <status>` when the server sent none.\n * `cause` is the server's `details.cause` - a 422's per-field issues, `{ path, message, code }`.\n *\n * `requestId` names the request this client made. A relaying server's `extra` carries the id of\n * the request it made upstream: it joins `upstreamRequestIds`, nearest first, at every hop.\n */\n static async toApplicationError(opts: {\n response: Response;\n /** Where it failed, for logs - e.g. `[HttpDataSource][read] 404 | /tickets`. */\n context: string;\n rootKey?: string;\n }): Promise<ApplicationError> {\n const { response, context, rootKey } = opts;\n const server = await HttpResponseReader.readError({ response, rootKey });\n const serverText = server.normalized?.text ?? server.message;\n const displayText = serverText ?? `HTTP ${response.status}`;\n\n const extra: Record<string, unknown> = { ...server.extra };\n if (server.requestId) {\n const upstreamRequestId = extra.requestId;\n extra.requestId = server.requestId;\n\n if (upstreamRequestId !== undefined && upstreamRequestId !== server.requestId) {\n const known = Array.isArray(extra.upstreamRequestIds) ? extra.upstreamRequestIds : [];\n extra.upstreamRequestIds = [upstreamRequestId, ...known];\n }\n }\n\n return getError({\n statusCode: response.status,\n message: serverText ? `${context} | ${serverText}` : context,\n messageCode: server.normalized?.code,\n messageArgs: server.normalized?.args,\n extra: Object.keys(extra).length > 0 ? extra : undefined,\n cause: server.details?.cause,\n transform: ({ message }) => ({ ...message, text: displayText }),\n });\n }\n\n /**\n * A body the server marked with `x-response-extra` carries `extra` beside its rows. `body` is what\n * the route answers without extras: the `{ count, data }` envelope when the count was asked for in\n * the body, the rows otherwise. Any other body is returned as it stands - an unmarked object is\n * never unwrapped, so a row that has `data` and `extra` columns of its own is never misread.\n */\n static readExtra(opts: { body: unknown; headers: Pick<Headers, 'has'> }): {\n body: unknown;\n extra?: Record<string, unknown>;\n } {\n const { body, headers } = opts;\n const isMarked = headers.has(HTTP.Headers.RESPONSE_EXTRA);\n\n if (\n !isMarked ||\n !HttpResponseReader.isPlainObject(body) ||\n !HttpResponseReader.isPlainObject(body.extra)\n ) {\n return { body };\n }\n\n const { extra, ...envelope } = body;\n return { body: 'count' in envelope ? envelope : envelope.data, extra: { ...extra } };\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../../../../src/base/repositories/common/types/contracts.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../../../../src/base/repositories/common/types/contracts.ts"],"names":[],"mappings":"","sourcesContent":["import type { AbstractDataSource } from '@/base/datasources';\nimport type { AbstractEntity, IdType } from '@/base/models';\nimport type { TFilter, TWhere } from '@venizia/ignis-filter';\nimport type { TNullable } from '@venizia/ignis-helpers/common';\nimport type { IExtraOptions, TFindOneOptions, TFindOptions, TFindRangeOptions } from './options';\nimport type { TCount, TDataWithRange } from './results';\n\n/**\n * Base repository interface shared by every engine - engine-specific accessors (postgres's\n * `getEntitySchema()`/`getConnector()`) stay on the connector's own repository tier.\n */\nexport interface IRepository {\n dataSource: AbstractDataSource;\n entity: AbstractEntity;\n getEntity(): AbstractEntity;\n}\n\n/** Interface for read-only repository operations. `TDataObject` is the row/document shape itself. */\nexport interface IReadableRepository<\n TDataObject extends object = object,\n ExtraOptions extends IExtraOptions = IExtraOptions,\n> extends IRepository {\n count(opts: { where: TWhere<TDataObject>; options?: ExtraOptions }): Promise<TCount>;\n existsWith(opts: { where: TWhere<TDataObject>; options?: ExtraOptions }): Promise<boolean>;\n\n find<R = TDataObject>(opts: {\n filter: TFilter<TDataObject>;\n options: TFindRangeOptions<ExtraOptions, R>;\n }): Promise<TDataWithRange<R>>;\n\n find<R = TDataObject>(opts: {\n filter: TFilter<TDataObject>;\n options?: TFindOptions<ExtraOptions, R>;\n }): Promise<Array<R>>;\n\n findOne<R = TDataObject>(opts: {\n filter: TFilter<TDataObject>;\n options?: TFindOneOptions<ExtraOptions, R>;\n }): Promise<TNullable<R>>;\n\n findById<R = TDataObject>(opts: {\n id: IdType;\n filter?: Omit<TFilter<TDataObject>, 'where'>;\n options?: TFindOneOptions<ExtraOptions, R>;\n }): Promise<TNullable<R>>;\n}\n\n/** Interface for create operations. */\nexport interface ICreatableRepository<\n TDataObject extends object = object,\n TPersistObject extends object = TDataObject,\n ExtraOptions extends IExtraOptions = IExtraOptions,\n> extends IRepository {\n create(opts: {\n data: TPersistObject;\n options: ExtraOptions & { shouldReturn: false };\n }): Promise<TCount & { data: undefined | null }>;\n\n create<R = TDataObject>(opts: {\n data: TPersistObject;\n options?: ExtraOptions & { shouldReturn?: true };\n }): Promise<TCount & { data: R }>;\n\n createAll(opts: {\n data: Array<TPersistObject>;\n options: ExtraOptions & { shouldReturn: false };\n }): Promise<TCount & { data: undefined | null }>;\n\n createAll<R = TDataObject>(opts: {\n data: Array<TPersistObject>;\n options?: ExtraOptions & { shouldReturn?: true };\n }): Promise<TCount & { data: Array<R> }>;\n}\n\n/** Interface for update operations. */\nexport interface IUpdatableRepository<\n TDataObject extends object = object,\n TPersistObject extends object = TDataObject,\n ExtraOptions extends IExtraOptions = IExtraOptions,\n> extends IRepository {\n updateById(opts: {\n id: IdType;\n data: Partial<TPersistObject>;\n options: ExtraOptions & { shouldReturn: false };\n }): Promise<TCount & { data: undefined | null }>;\n\n updateById<R = TDataObject>(opts: {\n id: IdType;\n data: Partial<TPersistObject>;\n options?: ExtraOptions & { shouldReturn?: true };\n }): Promise<TCount & { data: R }>;\n\n updateAll(opts: {\n data: Partial<TPersistObject>;\n where: TWhere<TDataObject>;\n options: ExtraOptions & { shouldReturn: false; force?: boolean };\n }): Promise<TCount & { data: undefined | null }>;\n\n updateAll<R = TDataObject>(opts: {\n data: Partial<TPersistObject>;\n where: TWhere<TDataObject>;\n options?: ExtraOptions & { shouldReturn?: true; force?: boolean };\n }): Promise<TCount & { data: Array<R> | null }>;\n\n /** Alias for updateAll. */\n updateBy(opts: {\n data: Partial<TPersistObject>;\n where: TWhere<TDataObject>;\n options: ExtraOptions & { shouldReturn: false; force?: boolean };\n }): Promise<TCount & { data: undefined | null }>;\n\n /** Alias for updateAll. */\n updateBy<R = TDataObject>(opts: {\n data: Partial<TPersistObject>;\n where: TWhere<TDataObject>;\n options?: ExtraOptions & { shouldReturn?: true; force?: boolean };\n }): Promise<TCount & { data: Array<R> | null }>;\n}\n\n/** Interface for delete operations. */\nexport interface IDeletableRepository<\n TDataObject extends object = object,\n ExtraOptions extends IExtraOptions = IExtraOptions,\n> extends IRepository {\n deleteById(opts: {\n id: IdType;\n options: ExtraOptions & { shouldReturn: false };\n }): Promise<TCount & { data: undefined | null }>;\n\n deleteById<R = TDataObject>(opts: {\n id: IdType;\n options?: ExtraOptions & { shouldReturn?: true };\n }): Promise<TCount & { data: R }>;\n\n deleteAll(opts: {\n where?: TWhere<TDataObject>;\n options: ExtraOptions & { shouldReturn: false; force?: boolean };\n }): Promise<TCount & { data: undefined | null }>;\n\n deleteAll<R = TDataObject>(opts: {\n where?: TWhere<TDataObject>;\n options?: ExtraOptions & { shouldReturn?: true; force?: boolean };\n }): Promise<TCount & { data: Array<R> | null }>;\n\n /** Alias for deleteAll. */\n deleteBy(opts: {\n where?: TWhere<TDataObject>;\n options: ExtraOptions & { shouldReturn: false; force?: boolean };\n }): Promise<TCount & { data: undefined | null }>;\n\n /** Alias for deleteAll. */\n deleteBy<R = TDataObject>(opts: {\n where?: TWhere<TDataObject>;\n options?: ExtraOptions & { shouldReturn?: true; force?: boolean };\n }): Promise<TCount & { data: Array<R> | null }>;\n}\n\n/** Interface for full CRUD repository operations - reads plus create, update, and delete. */\nexport interface IPersistableRepository<\n TDataObject extends object = object,\n TPersistObject extends object = TDataObject,\n ExtraOptions extends IExtraOptions = IExtraOptions,\n>\n extends\n IReadableRepository<TDataObject, ExtraOptions>,\n ICreatableRepository<TDataObject, TPersistObject, ExtraOptions>,\n IUpdatableRepository<TDataObject, TPersistObject, ExtraOptions>,\n IDeletableRepository<TDataObject, ExtraOptions> {}\n\n/**\n * Alias for IPersistableRepository - the name both DefaultRelationalRepository and\n * DefaultSearchRepository satisfy.\n */\nexport interface ICrudRepository<\n TDataObject extends object = object,\n TPersistObject extends object = TDataObject,\n ExtraOptions extends IExtraOptions = IExtraOptions,\n> extends IPersistableRepository<TDataObject, TPersistObject, ExtraOptions> {}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/base/repositories/common/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,4CAA0B;AAC1B,0CAAwB;AACxB,4CAA0B;AAC1B,sGAAsG;AACtG,mDAAiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/base/repositories/common/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,4CAA0B;AAC1B,0CAAwB;AACxB,4CAA0B;AAC1B,sGAAsG;AACtG,mDAAiC","sourcesContent":["export * from './contracts';\nexport * from './options';\nexport * from './query';\nexport * from './results';\n// Carries zod. Kept out of `results.ts` so the repository types stay reachable from a browser bundle.\nexport * from './result-schemas';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../../../../../src/base/repositories/common/types/options.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../../../../../src/base/repositories/common/types/options.ts"],"names":[],"mappings":"","sourcesContent":["import type { ITransaction } from '@/base/datasources';\nimport type { IRetryBackoffOptions, TLogLevel } from '@venizia/ignis-helpers/core';\nimport type { TNullable } from '@venizia/ignis-helpers/common';\nimport type { SQL } from 'drizzle-orm';\nimport type { TLockStrength } from '../constants';\nimport type { TDataWithRange } from './results';\n\n/** Update data supporting both regular fields and JSON path updates via dot notation. */\nexport type TUpdateData<T = any> = Partial<T> & {\n [jsonPath: string]: any;\n};\n\n/** Options for Drizzle ORM query building, used internally by FilterBuilder. */\nexport type TDrizzleQueryOptions = Partial<{\n limit: number;\n offset: number;\n orderBy: SQL[];\n where: SQL;\n with: Record<string, true | TDrizzleQueryOptions>;\n columns: Record<string, boolean>;\n}>;\n\n/** Configuration for repository operation logging. */\nexport type TRepositoryLogOptions = {\n use: boolean;\n level?: TLogLevel;\n};\n\n/** Configuration for row-level lock wait behavior. Mutually exclusive: use noWait OR skipLocked. */\nexport type TLockConfig =\n | { noWait: true; skipLocked?: undefined }\n | { noWait?: undefined; skipLocked: true }\n | { noWait?: undefined; skipLocked?: undefined };\n\n/** Row-level locking options for read operations. */\nexport type TLockOptions = {\n strength: TLockStrength;\n config?: TLockConfig;\n};\n\n/** Neutral transaction association - postgres narrows to its own `IDatabaseTransaction` (via `isDatabaseTransaction`) where it needs `.connector`. */\nexport interface IWithTransaction {\n transaction?: ITransaction;\n}\n\n/** Extended options for repository operations with transaction, logging, and default filter bypass. */\nexport interface IExtraOptions extends IWithTransaction {\n log?: TRepositoryLogOptions;\n\n /** If true, bypass the default filter configured in model settings (e.g., soft delete). */\n shouldSkipDefaultFilter?: boolean;\n\n /** Row-level locking. Requires transaction. Incompatible with include/fields (Query API). */\n lock?: TLockOptions;\n}\n\n/**\n * Read-after-write retry for read verbs behind a replicated pool. The read re-executes while\n * `until(result)` returns false; on exhaustion the last result is returned as-is.\n */\nexport interface IReadRetryOptions<TResult> {\n /** Default 3. */\n maxAttempts?: number;\n\n /** Total budget across attempts AND sleeps. Default: unlimited. */\n maxTotalMs?: number;\n\n /**\n * Aborts between attempts and during backoff sleeps - pass the request signal so a cancelled\n * request stops retrying.\n */\n signal?: AbortSignal;\n\n /** Default: EXPONENTIAL from 50ms, capped at 500ms, EQUAL jitter - tuned for replica lag. */\n backoff?: IRetryBackoffOptions;\n\n /** Retry while false. Default per verb: findOne/findById non-null, find non-empty. */\n until?: (result: TResult) => boolean;\n}\n\n/**\n * Intersected into READ verb signatures only - a write verb's options type has no `retry`, so an\n * inline `{ retry }` fails to compile and a pre-built object carrying it is inert.\n */\nexport interface IWithReadRetry<TResult> {\n retry?: IReadRetryOptions<TResult>;\n}\n\n/** Options for `find` returning a plain array - the retry predicate sees `Array<R>`. */\nexport type TFindOptions<TOptions extends IExtraOptions, R> = TOptions & {\n shouldQueryRange?: false;\n} & IWithReadRetry<Array<R>>;\n\n/** Options for `find` with the range envelope - the retry predicate sees `{ data, range }`. */\nexport type TFindRangeOptions<TOptions extends IExtraOptions, R> = TOptions & {\n shouldQueryRange: true;\n} & IWithReadRetry<TDataWithRange<R>>;\n\n/** Options for `findOne`/`findById` - the retry predicate sees `TNullable<R>`. */\nexport type TFindOneOptions<TOptions extends IExtraOptions, R> = TOptions &\n IWithReadRetry<TNullable<R>>;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../../../../../../src/base/repositories/common/types/query.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../../../../../src/base/repositories/common/types/query.ts"],"names":[],"mappings":"","sourcesContent":["import type { AnyType } from '@venizia/ignis-helpers/common';\nimport type { Column, SQL } from 'drizzle-orm';\n\n/** Options passed to query operator handler functions. */\nexport interface IQueryHandlerOptions<T = any> {\n column: Column;\n value: T;\n}\n\n/**\n * Operator-name to SQL-handler table a relational dialect translates with, so a second SQL engine\n * swaps the whole table without touching the walk that reaches it. `column` is wider than\n * `IQueryHandlerOptions` names it: the JSON-path branch hands handlers a raw `#>>` extraction\n * expression, not a `Column`.\n */\nexport type TQueryOperatorHandlers = Record<\n string,\n (opts: { column: AnyType; value: AnyType }) => SQL | undefined\n>;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"result-schemas.js","sourceRoot":"","sources":["../../../../../../src/base/repositories/common/types/result-schemas.ts"],"names":[],"mappings":";;;AAAA,mDAAsC;AAEtC;;;;GAIG;AACU,QAAA,WAAW,GAAG,eAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,eAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC;IAC5E,WAAW,EAAE,6CAA6C;IAC1D,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;CACxC,CAAC,CAAC"}
1
+ {"version":3,"file":"result-schemas.js","sourceRoot":"","sources":["../../../../../../src/base/repositories/common/types/result-schemas.ts"],"names":[],"mappings":";;;AAAA,mDAAsC;AAEtC;;;;GAIG;AACU,QAAA,WAAW,GAAG,eAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,eAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC;IAC5E,WAAW,EAAE,6CAA6C;IAC1D,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;CACxC,CAAC,CAAC","sourcesContent":["import { z } from '@hono/zod-openapi';\n\n/**\n * The zod-backed result schema, kept apart from `results.ts` ON PURPOSE. `z.object()` runs at module\n * load, so any bundle reaching this file carries the whole of zod - and `results.ts` is on\n * `AbstractRepository`'s path, which a consumer that never serves HTTP still needs.\n */\nexport const CountSchema = z.object({ count: z.number().default(0) }).openapi({\n description: 'Total count of items matching the criteria.',\n examples: [{ count: 0 }, { count: 10 }],\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"results.js","sourceRoot":"","sources":["../../../../../../src/base/repositories/common/types/results.ts"],"names":[],"mappings":";;;AAUA,mGAAmG;AAC5F,MAAM,cAAc,GAAG,CAAC,IAK9B,EAAc,EAAE;IACf,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IACjD,MAAM,KAAK,GAAG,IAAI,IAAI,MAAM,IAAI,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC5D,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AAC/B,CAAC,CAAC;AAVW,QAAA,cAAc,kBAUzB"}
1
+ {"version":3,"file":"results.js","sourceRoot":"","sources":["../../../../../../src/base/repositories/common/types/results.ts"],"names":[],"mappings":";;;AAUA,mGAAmG;AAC5F,MAAM,cAAc,GAAG,CAAC,IAK9B,EAAc,EAAE;IACf,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IACjD,MAAM,KAAK,GAAG,IAAI,IAAI,MAAM,IAAI,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC5D,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AAC/B,CAAC,CAAC;AAVW,QAAA,cAAc,kBAUzB","sourcesContent":["/** The count envelope. Spelled out rather than inferred from `CountSchema`, which lives in `result-schemas.ts` - inferring it here would put zod on every path that needs the TYPE. */\nexport type TCount = { count: number };\n\n/** Data range information for paginated queries. Follows HTTP Content-Range standard. */\nexport type TDataRange = {\n start: number;\n end: number;\n total: number;\n};\n\n/** Content-Range envelope with an inclusive `end` - an empty page collapses `end` onto `start`. */\nexport const buildDataRange = (opts: {\n skip?: number;\n offset?: number;\n dataLength: number;\n total: number;\n}): TDataRange => {\n const { skip, offset, dataLength, total } = opts;\n const start = skip ?? offset ?? 0;\n const end = dataLength > 0 ? start + dataLength - 1 : start;\n return { start, end, total };\n};\n\n/** The `shouldQueryRange: true` result envelope; `extra` carries what a list answered beside its rows - see `x-request-extra`. */\nexport type TDataWithRange<R> = {\n data: Array<R>;\n range: TDataRange;\n extra?: Record<string, unknown>;\n};\n"]}