@venizia/ignis 0.3.0 → 0.3.1

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 (629) hide show
  1. package/dist/base/applications/base.d.ts +0 -1
  2. package/dist/base/applications/base.js.map +1 -1
  3. package/dist/base/applications/boot-steps.d.ts +0 -1
  4. package/dist/base/applications/boot-steps.js.map +1 -1
  5. package/dist/base/applications/common/index.d.ts +0 -1
  6. package/dist/base/applications/common/index.js.map +1 -1
  7. package/dist/base/applications/common/types.d.ts +0 -1
  8. package/dist/base/applications/common/types.js.map +1 -1
  9. package/dist/base/applications/index.d.ts +0 -1
  10. package/dist/base/applications/index.js.map +1 -1
  11. package/dist/base/applications/server.d.ts +0 -1
  12. package/dist/base/applications/server.js.map +1 -1
  13. package/dist/base/controllers/grpc/abstract.d.ts +0 -1
  14. package/dist/base/controllers/grpc/abstract.js.map +1 -1
  15. package/dist/base/controllers/grpc/adapter.d.ts +0 -1
  16. package/dist/base/controllers/grpc/adapter.js.map +1 -1
  17. package/dist/base/controllers/grpc/base.d.ts +0 -1
  18. package/dist/base/controllers/grpc/base.js.map +1 -1
  19. package/dist/base/controllers/grpc/common/index.d.ts +0 -1
  20. package/dist/base/controllers/grpc/common/index.js.map +1 -1
  21. package/dist/base/controllers/grpc/common/types.d.ts +0 -1
  22. package/dist/base/controllers/grpc/common/types.js.map +1 -1
  23. package/dist/base/controllers/grpc/index.d.ts +0 -1
  24. package/dist/base/controllers/grpc/index.js.map +1 -1
  25. package/dist/base/controllers/index.d.ts +0 -1
  26. package/dist/base/controllers/index.js.map +1 -1
  27. package/dist/base/index.d.ts +0 -1
  28. package/dist/base/index.js.map +1 -1
  29. package/dist/base/metadata/index.d.ts +0 -1
  30. package/dist/base/metadata/index.js.map +1 -1
  31. package/dist/base/metadata/request-context.d.ts +0 -1
  32. package/dist/base/metadata/request-context.js.map +1 -1
  33. package/dist/base/middlewares/app-error/app-error.middleware.d.ts +0 -1
  34. package/dist/base/middlewares/app-error/app-error.middleware.js.map +1 -1
  35. package/dist/base/middlewares/app-error/index.d.ts +0 -1
  36. package/dist/base/middlewares/app-error/index.js.map +1 -1
  37. package/dist/base/middlewares/index.d.ts +0 -1
  38. package/dist/base/middlewares/index.js.map +1 -1
  39. package/dist/base/middlewares/request-spy/index.d.ts +0 -1
  40. package/dist/base/middlewares/request-spy/index.js.map +1 -1
  41. package/dist/base/middlewares/request-spy/request-spy.middleware.d.ts +0 -1
  42. package/dist/base/middlewares/request-spy/request-spy.middleware.js.map +1 -1
  43. package/dist/common/constants.d.ts +0 -1
  44. package/dist/common/constants.js.map +1 -1
  45. package/dist/common/environments.d.ts +0 -1
  46. package/dist/common/environments.js.map +1 -1
  47. package/dist/common/index.d.ts +0 -1
  48. package/dist/common/index.js.map +1 -1
  49. package/dist/components/api-reference/common/constants.d.ts +0 -1
  50. package/dist/components/api-reference/common/constants.js.map +1 -1
  51. package/dist/components/api-reference/common/index.d.ts +0 -1
  52. package/dist/components/api-reference/common/index.js.map +1 -1
  53. package/dist/components/api-reference/common/keys.d.ts +0 -1
  54. package/dist/components/api-reference/common/keys.js.map +1 -1
  55. package/dist/components/api-reference/common/types.d.ts +0 -1
  56. package/dist/components/api-reference/common/types.js.map +1 -1
  57. package/dist/components/api-reference/component.d.ts +0 -1
  58. package/dist/components/api-reference/component.js.map +1 -1
  59. package/dist/components/api-reference/index.d.ts +0 -1
  60. package/dist/components/api-reference/index.js.map +1 -1
  61. package/dist/components/api-reference/ui/factory.d.ts +0 -1
  62. package/dist/components/api-reference/ui/factory.js.map +1 -1
  63. package/dist/components/api-reference/ui/index.d.ts +0 -1
  64. package/dist/components/api-reference/ui/index.js.map +1 -1
  65. package/dist/components/api-reference/ui/scalar.d.ts +0 -1
  66. package/dist/components/api-reference/ui/scalar.js.map +1 -1
  67. package/dist/components/api-reference/ui/swagger.d.ts +0 -1
  68. package/dist/components/api-reference/ui/swagger.js.map +1 -1
  69. package/dist/components/auth/authenticate/component.d.ts +0 -1
  70. package/dist/components/auth/authenticate/component.js.map +1 -1
  71. package/dist/components/auth/authenticate/controllers/factory.d.ts +0 -1
  72. package/dist/components/auth/authenticate/controllers/factory.js.map +1 -1
  73. package/dist/components/auth/authenticate/controllers/index.d.ts +0 -1
  74. package/dist/components/auth/authenticate/controllers/index.js.map +1 -1
  75. package/dist/components/auth/authenticate/controllers/jwks/controller.d.ts +0 -1
  76. package/dist/components/auth/authenticate/controllers/jwks/controller.js.map +1 -1
  77. package/dist/components/auth/authenticate/controllers/jwks/definitions.d.ts +0 -1
  78. package/dist/components/auth/authenticate/controllers/jwks/definitions.js.map +1 -1
  79. package/dist/components/auth/authenticate/controllers/jwks/index.d.ts +0 -1
  80. package/dist/components/auth/authenticate/controllers/jwks/index.js.map +1 -1
  81. package/dist/components/auth/authenticate/controllers/service-certs/controller.d.ts +0 -1
  82. package/dist/components/auth/authenticate/controllers/service-certs/controller.js.map +1 -1
  83. package/dist/components/auth/authenticate/controllers/service-certs/definitions.d.ts +0 -1
  84. package/dist/components/auth/authenticate/controllers/service-certs/definitions.js.map +1 -1
  85. package/dist/components/auth/authenticate/controllers/service-certs/index.d.ts +0 -1
  86. package/dist/components/auth/authenticate/controllers/service-certs/index.js.map +1 -1
  87. package/dist/components/auth/authenticate/index.d.ts +0 -1
  88. package/dist/components/auth/authenticate/index.js.map +1 -1
  89. package/dist/components/auth/authenticate/services/basic/index.d.ts +0 -1
  90. package/dist/components/auth/authenticate/services/basic/index.js.map +1 -1
  91. package/dist/components/auth/authenticate/services/basic/service.d.ts +0 -1
  92. package/dist/components/auth/authenticate/services/basic/service.js.map +1 -1
  93. package/dist/components/auth/authenticate/services/bearer/abstract.service.d.ts +0 -1
  94. package/dist/components/auth/authenticate/services/bearer/abstract.service.js.map +1 -1
  95. package/dist/components/auth/authenticate/services/bearer/index.d.ts +0 -1
  96. package/dist/components/auth/authenticate/services/bearer/index.js.map +1 -1
  97. package/dist/components/auth/authenticate/services/bearer/jwks/abstract.service.d.ts +0 -1
  98. package/dist/components/auth/authenticate/services/bearer/jwks/abstract.service.js.map +1 -1
  99. package/dist/components/auth/authenticate/services/bearer/jwks/index.d.ts +0 -1
  100. package/dist/components/auth/authenticate/services/bearer/jwks/index.js.map +1 -1
  101. package/dist/components/auth/authenticate/services/bearer/jwks/issuer.service.d.ts +0 -1
  102. package/dist/components/auth/authenticate/services/bearer/jwks/issuer.service.js.map +1 -1
  103. package/dist/components/auth/authenticate/services/bearer/jwks/verifier.service.d.ts +0 -1
  104. package/dist/components/auth/authenticate/services/bearer/jwks/verifier.service.js.map +1 -1
  105. package/dist/components/auth/authenticate/services/bearer/jws.service.d.ts +0 -1
  106. package/dist/components/auth/authenticate/services/bearer/jws.service.js.map +1 -1
  107. package/dist/components/auth/authenticate/services/index.d.ts +0 -1
  108. package/dist/components/auth/authenticate/services/index.js.map +1 -1
  109. package/dist/components/auth/authenticate/services/jose-loader.d.ts +0 -1
  110. package/dist/components/auth/authenticate/services/jose-loader.js.map +1 -1
  111. package/dist/components/auth/authenticate/services/service/index.d.ts +0 -1
  112. package/dist/components/auth/authenticate/services/service/index.js.map +1 -1
  113. package/dist/components/auth/authenticate/services/service/signer.service.d.ts +0 -1
  114. package/dist/components/auth/authenticate/services/service/signer.service.js.map +1 -1
  115. package/dist/components/auth/authenticate/services/service/verifier.service.d.ts +0 -1
  116. package/dist/components/auth/authenticate/services/service/verifier.service.js.map +1 -1
  117. package/dist/components/auth/authenticate/strategies/basic.strategy.d.ts +0 -1
  118. package/dist/components/auth/authenticate/strategies/basic.strategy.js.map +1 -1
  119. package/dist/components/auth/authenticate/strategies/index.d.ts +0 -1
  120. package/dist/components/auth/authenticate/strategies/index.js.map +1 -1
  121. package/dist/components/auth/authenticate/strategies/jwks/index.d.ts +0 -1
  122. package/dist/components/auth/authenticate/strategies/jwks/index.js.map +1 -1
  123. package/dist/components/auth/authenticate/strategies/jwks/issuer.d.ts +0 -1
  124. package/dist/components/auth/authenticate/strategies/jwks/issuer.js.map +1 -1
  125. package/dist/components/auth/authenticate/strategies/jwks/verifier.d.ts +0 -1
  126. package/dist/components/auth/authenticate/strategies/jwks/verifier.js.map +1 -1
  127. package/dist/components/auth/authenticate/strategies/jws.strategy.d.ts +0 -1
  128. package/dist/components/auth/authenticate/strategies/jws.strategy.js.map +1 -1
  129. package/dist/components/auth/authenticate/strategies/service.strategy.d.ts +0 -1
  130. package/dist/components/auth/authenticate/strategies/service.strategy.js.map +1 -1
  131. package/dist/components/auth/authorize/adapters/base-filtered.d.ts +0 -1
  132. package/dist/components/auth/authorize/adapters/base-filtered.js.map +1 -1
  133. package/dist/components/auth/authorize/adapters/common/index.d.ts +0 -1
  134. package/dist/components/auth/authorize/adapters/common/index.js.map +1 -1
  135. package/dist/components/auth/authorize/adapters/common/types.d.ts +0 -1
  136. package/dist/components/auth/authorize/adapters/common/types.js.map +1 -1
  137. package/dist/components/auth/authorize/adapters/connector.d.ts +0 -1
  138. package/dist/components/auth/authorize/adapters/connector.js.map +1 -1
  139. package/dist/components/auth/authorize/adapters/custom-grant-expander.d.ts +0 -1
  140. package/dist/components/auth/authorize/adapters/custom-grant-expander.js.map +1 -1
  141. package/dist/components/auth/authorize/adapters/index.d.ts +0 -1
  142. package/dist/components/auth/authorize/adapters/index.js.map +1 -1
  143. package/dist/components/auth/authorize/adapters/scoped-casbin/adapter.d.ts +0 -1
  144. package/dist/components/auth/authorize/adapters/scoped-casbin/adapter.js.map +1 -1
  145. package/dist/components/auth/authorize/adapters/scoped-casbin/common/constants.d.ts +0 -1
  146. package/dist/components/auth/authorize/adapters/scoped-casbin/common/constants.js.map +1 -1
  147. package/dist/components/auth/authorize/adapters/scoped-casbin/common/index.d.ts +0 -1
  148. package/dist/components/auth/authorize/adapters/scoped-casbin/common/index.js.map +1 -1
  149. package/dist/components/auth/authorize/adapters/scoped-casbin/common/types.d.ts +0 -1
  150. package/dist/components/auth/authorize/adapters/scoped-casbin/common/types.js.map +1 -1
  151. package/dist/components/auth/authorize/adapters/scoped-casbin/index.d.ts +0 -1
  152. package/dist/components/auth/authorize/adapters/scoped-casbin/index.js.map +1 -1
  153. package/dist/components/auth/authorize/adapters/scoped-casbin/policy-edges.d.ts +0 -1
  154. package/dist/components/auth/authorize/adapters/scoped-casbin/policy-edges.js.map +1 -1
  155. package/dist/components/auth/authorize/component.d.ts +0 -1
  156. package/dist/components/auth/authorize/component.js.map +1 -1
  157. package/dist/components/auth/authorize/enforcers/casbin-module.d.ts +0 -1
  158. package/dist/components/auth/authorize/enforcers/casbin-module.js.map +1 -1
  159. package/dist/components/auth/authorize/enforcers/casbin.enforcer.d.ts +0 -1
  160. package/dist/components/auth/authorize/enforcers/casbin.enforcer.js.map +1 -1
  161. package/dist/components/auth/authorize/enforcers/index.d.ts +0 -1
  162. package/dist/components/auth/authorize/enforcers/index.js.map +1 -1
  163. package/dist/components/auth/authorize/enforcers/models/index.d.ts +0 -1
  164. package/dist/components/auth/authorize/enforcers/models/index.js.map +1 -1
  165. package/dist/components/auth/authorize/enforcers/models/rbac-domain.model.d.ts +0 -1
  166. package/dist/components/auth/authorize/enforcers/models/rbac-domain.model.js.map +1 -1
  167. package/dist/components/auth/authorize/enforcers/policy-line-codec.d.ts +0 -1
  168. package/dist/components/auth/authorize/enforcers/policy-line-codec.js.map +1 -1
  169. package/dist/components/auth/authorize/enforcers/user-policy-line-cache.d.ts +0 -1
  170. package/dist/components/auth/authorize/enforcers/user-policy-line-cache.js.map +1 -1
  171. package/dist/components/auth/authorize/index.d.ts +0 -1
  172. package/dist/components/auth/authorize/index.js.map +1 -1
  173. package/dist/components/auth/authorize/role-managers/base.d.ts +0 -1
  174. package/dist/components/auth/authorize/role-managers/base.js.map +1 -1
  175. package/dist/components/auth/authorize/role-managers/domain-hierarchy.d.ts +0 -1
  176. package/dist/components/auth/authorize/role-managers/domain-hierarchy.js.map +1 -1
  177. package/dist/components/auth/authorize/role-managers/index.d.ts +0 -1
  178. package/dist/components/auth/authorize/role-managers/index.js.map +1 -1
  179. package/dist/components/auth/authorize/role-managers/membership.d.ts +0 -1
  180. package/dist/components/auth/authorize/role-managers/membership.js.map +1 -1
  181. package/dist/components/auth/authorize/role-managers/resource.d.ts +0 -1
  182. package/dist/components/auth/authorize/role-managers/resource.js.map +1 -1
  183. package/dist/components/auth/index.d.ts +0 -1
  184. package/dist/components/auth/index.js.map +1 -1
  185. package/dist/components/auth/models/entities/index.d.ts +0 -1
  186. package/dist/components/auth/models/entities/index.js.map +1 -1
  187. package/dist/components/auth/models/entities/permission.model.d.ts +0 -1
  188. package/dist/components/auth/models/entities/permission.model.js.map +1 -1
  189. package/dist/components/auth/models/entities/policy-definition.model.d.ts +0 -1
  190. package/dist/components/auth/models/entities/policy-definition.model.js.map +1 -1
  191. package/dist/components/auth/models/entities/role.model.d.ts +0 -1
  192. package/dist/components/auth/models/entities/role.model.js.map +1 -1
  193. package/dist/components/auth/models/entities/user.model.d.ts +0 -1
  194. package/dist/components/auth/models/entities/user.model.js.map +1 -1
  195. package/dist/components/auth/models/index.d.ts +0 -1
  196. package/dist/components/auth/models/index.js.map +1 -1
  197. package/dist/components/controller/grpc/common/index.d.ts +0 -1
  198. package/dist/components/controller/grpc/common/index.js.map +1 -1
  199. package/dist/components/controller/grpc/common/types.d.ts +0 -1
  200. package/dist/components/controller/grpc/common/types.js.map +1 -1
  201. package/dist/components/controller/grpc/grpc.component.d.ts +0 -1
  202. package/dist/components/controller/grpc/grpc.component.js.map +1 -1
  203. package/dist/components/controller/grpc/index.d.ts +0 -1
  204. package/dist/components/controller/grpc/index.js.map +1 -1
  205. package/dist/components/controller/index.d.ts +0 -1
  206. package/dist/components/controller/index.js.map +1 -1
  207. package/dist/components/health-check/common/constants.d.ts +0 -1
  208. package/dist/components/health-check/common/constants.js.map +1 -1
  209. package/dist/components/health-check/common/index.d.ts +0 -1
  210. package/dist/components/health-check/common/index.js.map +1 -1
  211. package/dist/components/health-check/common/keys.d.ts +0 -1
  212. package/dist/components/health-check/common/keys.js.map +1 -1
  213. package/dist/components/health-check/common/rest-paths.d.ts +0 -1
  214. package/dist/components/health-check/common/rest-paths.js.map +1 -1
  215. package/dist/components/health-check/common/types.d.ts +0 -1
  216. package/dist/components/health-check/common/types.js.map +1 -1
  217. package/dist/components/health-check/component.d.ts +0 -1
  218. package/dist/components/health-check/component.js.map +1 -1
  219. package/dist/components/health-check/controller.d.ts +0 -1
  220. package/dist/components/health-check/controller.js.map +1 -1
  221. package/dist/components/health-check/index.d.ts +0 -1
  222. package/dist/components/health-check/index.js.map +1 -1
  223. package/dist/components/health-check/reporter.d.ts +0 -1
  224. package/dist/components/health-check/reporter.js.map +1 -1
  225. package/dist/components/index.d.ts +0 -1
  226. package/dist/components/index.js.map +1 -1
  227. package/dist/components/mail/common/constants.d.ts +0 -1
  228. package/dist/components/mail/common/constants.js.map +1 -1
  229. package/dist/components/mail/common/errors.d.ts +0 -1
  230. package/dist/components/mail/common/errors.js.map +1 -1
  231. package/dist/components/mail/common/index.d.ts +0 -1
  232. package/dist/components/mail/common/index.js.map +1 -1
  233. package/dist/components/mail/common/keys.d.ts +0 -1
  234. package/dist/components/mail/common/keys.js.map +1 -1
  235. package/dist/components/mail/common/types/index.d.ts +0 -1
  236. package/dist/components/mail/common/types/index.js.map +1 -1
  237. package/dist/components/mail/common/types/message.d.ts +0 -1
  238. package/dist/components/mail/common/types/message.js.map +1 -1
  239. package/dist/components/mail/common/types/options.d.ts +0 -1
  240. package/dist/components/mail/common/types/options.js.map +1 -1
  241. package/dist/components/mail/common/types/queue.d.ts +0 -1
  242. package/dist/components/mail/common/types/queue.js.map +1 -1
  243. package/dist/components/mail/common/types/template.d.ts +0 -1
  244. package/dist/components/mail/common/types/template.js.map +1 -1
  245. package/dist/components/mail/common/types/verification.d.ts +0 -1
  246. package/dist/components/mail/common/types/verification.js.map +1 -1
  247. package/dist/components/mail/component.d.ts +0 -1
  248. package/dist/components/mail/component.js.map +1 -1
  249. package/dist/components/mail/helpers/executors/bull-mq-executor.helper.d.ts +0 -1
  250. package/dist/components/mail/helpers/executors/bull-mq-executor.helper.js.map +1 -1
  251. package/dist/components/mail/helpers/executors/direct-executor.helper.d.ts +0 -1
  252. package/dist/components/mail/helpers/executors/direct-executor.helper.js.map +1 -1
  253. package/dist/components/mail/helpers/executors/index.d.ts +0 -1
  254. package/dist/components/mail/helpers/executors/index.js.map +1 -1
  255. package/dist/components/mail/helpers/executors/internal-queue-executor.helper.d.ts +0 -1
  256. package/dist/components/mail/helpers/executors/internal-queue-executor.helper.js.map +1 -1
  257. package/dist/components/mail/helpers/index.d.ts +0 -1
  258. package/dist/components/mail/helpers/index.js.map +1 -1
  259. package/dist/components/mail/helpers/transporters/amazon-ses-transporter.helper.d.ts +0 -1
  260. package/dist/components/mail/helpers/transporters/amazon-ses-transporter.helper.js.map +1 -1
  261. package/dist/components/mail/helpers/transporters/index.d.ts +0 -1
  262. package/dist/components/mail/helpers/transporters/index.js.map +1 -1
  263. package/dist/components/mail/helpers/transporters/mailgun-transporter.helper.d.ts +0 -1
  264. package/dist/components/mail/helpers/transporters/mailgun-transporter.helper.js.map +1 -1
  265. package/dist/components/mail/helpers/transporters/nodemail-transporter.helper.d.ts +0 -1
  266. package/dist/components/mail/helpers/transporters/nodemail-transporter.helper.js.map +1 -1
  267. package/dist/components/mail/index.d.ts +0 -1
  268. package/dist/components/mail/index.js.map +1 -1
  269. package/dist/components/mail/providers/index.d.ts +0 -1
  270. package/dist/components/mail/providers/index.js.map +1 -1
  271. package/dist/components/mail/providers/mail-queue-executor.provider.d.ts +0 -1
  272. package/dist/components/mail/providers/mail-queue-executor.provider.js.map +1 -1
  273. package/dist/components/mail/providers/mail-transporter.provider.d.ts +0 -1
  274. package/dist/components/mail/providers/mail-transporter.provider.js.map +1 -1
  275. package/dist/components/mail/services/generators/index.d.ts +0 -1
  276. package/dist/components/mail/services/generators/index.js.map +1 -1
  277. package/dist/components/mail/services/generators/numeric-code.d.ts +0 -1
  278. package/dist/components/mail/services/generators/numeric-code.js.map +1 -1
  279. package/dist/components/mail/services/generators/random-token.d.ts +0 -1
  280. package/dist/components/mail/services/generators/random-token.js.map +1 -1
  281. package/dist/components/mail/services/generators/verification-data.d.ts +0 -1
  282. package/dist/components/mail/services/generators/verification-data.js.map +1 -1
  283. package/dist/components/mail/services/index.d.ts +0 -1
  284. package/dist/components/mail/services/index.js.map +1 -1
  285. package/dist/components/mail/services/mail.service.d.ts +0 -1
  286. package/dist/components/mail/services/mail.service.js.map +1 -1
  287. package/dist/components/mail/services/template.service.d.ts +0 -1
  288. package/dist/components/mail/services/template.service.js.map +1 -1
  289. package/dist/components/mail/utilities/address.utility.d.ts +0 -1
  290. package/dist/components/mail/utilities/address.utility.js.map +1 -1
  291. package/dist/components/mail/utilities/attachment.utility.d.ts +0 -1
  292. package/dist/components/mail/utilities/attachment.utility.js.map +1 -1
  293. package/dist/components/mail/utilities/body.utility.d.ts +0 -1
  294. package/dist/components/mail/utilities/body.utility.js.map +1 -1
  295. package/dist/components/mail/utilities/index.d.ts +0 -1
  296. package/dist/components/mail/utilities/index.js.map +1 -1
  297. package/dist/components/mail/utilities/mime.utility.d.ts +0 -1
  298. package/dist/components/mail/utilities/mime.utility.js.map +1 -1
  299. package/dist/components/mail/utilities/type.utility.d.ts +0 -1
  300. package/dist/components/mail/utilities/type.utility.js.map +1 -1
  301. package/dist/components/mail/utilities/verification.utility.d.ts +0 -1
  302. package/dist/components/mail/utilities/verification.utility.js.map +1 -1
  303. package/dist/components/request-tracker/component.d.ts +0 -1
  304. package/dist/components/request-tracker/component.js.map +1 -1
  305. package/dist/components/request-tracker/index.d.ts +0 -1
  306. package/dist/components/request-tracker/index.js.map +1 -1
  307. package/dist/components/socket-io/common/index.d.ts +0 -1
  308. package/dist/components/socket-io/common/index.js.map +1 -1
  309. package/dist/components/socket-io/common/keys.d.ts +0 -1
  310. package/dist/components/socket-io/common/keys.js.map +1 -1
  311. package/dist/components/socket-io/common/types.d.ts +0 -1
  312. package/dist/components/socket-io/common/types.js.map +1 -1
  313. package/dist/components/socket-io/component.d.ts +0 -1
  314. package/dist/components/socket-io/component.js.map +1 -1
  315. package/dist/components/socket-io/handlers/bun.handler.d.ts +0 -1
  316. package/dist/components/socket-io/handlers/bun.handler.js.map +1 -1
  317. package/dist/components/socket-io/handlers/index.d.ts +0 -1
  318. package/dist/components/socket-io/handlers/index.js.map +1 -1
  319. package/dist/components/socket-io/handlers/node.handler.d.ts +0 -1
  320. package/dist/components/socket-io/handlers/node.handler.js.map +1 -1
  321. package/dist/components/socket-io/index.d.ts +0 -1
  322. package/dist/components/socket-io/index.js.map +1 -1
  323. package/dist/components/static-asset/common/commit-token.d.ts +0 -1
  324. package/dist/components/static-asset/common/commit-token.js.map +1 -1
  325. package/dist/components/static-asset/common/constants.d.ts +0 -1
  326. package/dist/components/static-asset/common/constants.js.map +1 -1
  327. package/dist/components/static-asset/common/errors.d.ts +0 -1
  328. package/dist/components/static-asset/common/errors.js.map +1 -1
  329. package/dist/components/static-asset/common/index.d.ts +0 -1
  330. package/dist/components/static-asset/common/index.js.map +1 -1
  331. package/dist/components/static-asset/common/keys.d.ts +0 -1
  332. package/dist/components/static-asset/common/keys.js.map +1 -1
  333. package/dist/components/static-asset/common/types.d.ts +0 -1
  334. package/dist/components/static-asset/common/types.js.map +1 -1
  335. package/dist/components/static-asset/component.d.ts +0 -1
  336. package/dist/components/static-asset/component.js.map +1 -1
  337. package/dist/components/static-asset/controller/base.definition.d.ts +0 -1
  338. package/dist/components/static-asset/controller/base.definition.js.map +1 -1
  339. package/dist/components/static-asset/controller/factory.d.ts +0 -1
  340. package/dist/components/static-asset/controller/factory.js.map +1 -1
  341. package/dist/components/static-asset/controller/index.d.ts +0 -1
  342. package/dist/components/static-asset/controller/index.js.map +1 -1
  343. package/dist/components/static-asset/controller/key-scope.d.ts +0 -1
  344. package/dist/components/static-asset/controller/key-scope.js.map +1 -1
  345. package/dist/components/static-asset/controller/meta-link.d.ts +0 -1
  346. package/dist/components/static-asset/controller/meta-link.js.map +1 -1
  347. package/dist/components/static-asset/controller/route-options.d.ts +0 -1
  348. package/dist/components/static-asset/controller/route-options.js.map +1 -1
  349. package/dist/components/static-asset/index.d.ts +0 -1
  350. package/dist/components/static-asset/index.js.map +1 -1
  351. package/dist/components/static-asset/ingest.d.ts +0 -1
  352. package/dist/components/static-asset/ingest.js.map +1 -1
  353. package/dist/components/static-asset/models/base.model.d.ts +0 -1
  354. package/dist/components/static-asset/models/base.model.js.map +1 -1
  355. package/dist/components/static-asset/models/index.d.ts +0 -1
  356. package/dist/components/static-asset/models/index.js.map +1 -1
  357. package/dist/components/static-asset/repositories/base.repository.d.ts +0 -1
  358. package/dist/components/static-asset/repositories/base.repository.js.map +1 -1
  359. package/dist/components/static-asset/repositories/index.d.ts +0 -1
  360. package/dist/components/static-asset/repositories/index.js.map +1 -1
  361. package/dist/components/websocket/common/index.d.ts +0 -1
  362. package/dist/components/websocket/common/index.js.map +1 -1
  363. package/dist/components/websocket/common/keys.d.ts +0 -1
  364. package/dist/components/websocket/common/keys.js.map +1 -1
  365. package/dist/components/websocket/common/types.d.ts +0 -1
  366. package/dist/components/websocket/common/types.js.map +1 -1
  367. package/dist/components/websocket/component.d.ts +0 -1
  368. package/dist/components/websocket/component.js.map +1 -1
  369. package/dist/components/websocket/handlers/bun.handler.d.ts +0 -1
  370. package/dist/components/websocket/handlers/bun.handler.js.map +1 -1
  371. package/dist/components/websocket/handlers/index.d.ts +0 -1
  372. package/dist/components/websocket/handlers/index.js.map +1 -1
  373. package/dist/components/websocket/index.d.ts +0 -1
  374. package/dist/components/websocket/index.js.map +1 -1
  375. package/dist/connectors/index.d.ts +0 -1
  376. package/dist/connectors/index.js.map +1 -1
  377. package/dist/connectors/meilisearch/index.d.ts +0 -1
  378. package/dist/connectors/meilisearch/index.js.map +1 -1
  379. package/dist/connectors/postgres/drivers/node-postgres.d.ts +0 -1
  380. package/dist/connectors/postgres/drivers/node-postgres.js.map +1 -1
  381. package/dist/connectors/postgres/drivers/pglite.d.ts +0 -1
  382. package/dist/connectors/postgres/drivers/pglite.js.map +1 -1
  383. package/dist/connectors/postgres/drivers/postgres-js.d.mts +0 -1
  384. package/dist/connectors/postgres/drivers/postgres-js.d.ts +0 -1
  385. package/dist/connectors/postgres/drivers/postgres-js.js.map +1 -1
  386. package/dist/connectors/postgres/drivers/postgres-js.mjs.map +1 -1
  387. package/dist/connectors/postgres/index.d.ts +0 -1
  388. package/dist/connectors/postgres/index.js.map +1 -1
  389. package/dist/connectors/postgres/supabase/index.d.ts +0 -1
  390. package/dist/connectors/postgres/supabase/index.js.map +1 -1
  391. package/dist/connectors/relational/index.d.ts +0 -1
  392. package/dist/connectors/relational/index.js.map +1 -1
  393. package/dist/connectors/search/controllers/index.d.ts +0 -1
  394. package/dist/connectors/search/controllers/index.js.map +1 -1
  395. package/dist/connectors/search/index.d.ts +0 -1
  396. package/dist/connectors/search/index.js.map +1 -1
  397. package/dist/connectors/sqlite/drivers/libsql.d.ts +0 -1
  398. package/dist/connectors/sqlite/drivers/libsql.js.map +1 -1
  399. package/dist/connectors/sqlite/index.d.ts +0 -1
  400. package/dist/connectors/sqlite/index.js.map +1 -1
  401. package/dist/connectors/typesense/controllers/index.d.ts +0 -1
  402. package/dist/connectors/typesense/controllers/index.js.map +1 -1
  403. package/dist/connectors/typesense/index.d.ts +0 -1
  404. package/dist/connectors/typesense/index.js.map +1 -1
  405. package/dist/helpers/base-helper.d.ts +0 -1
  406. package/dist/helpers/base-helper.js.map +1 -1
  407. package/dist/helpers/index.d.ts +0 -1
  408. package/dist/helpers/index.js.map +1 -1
  409. package/dist/index.d.ts +0 -1
  410. package/dist/index.js.map +1 -1
  411. package/dist/testing/index.d.ts +0 -1
  412. package/dist/testing/index.js.map +1 -1
  413. package/dist/utilities/drizzle-result.utility.d.ts +0 -1
  414. package/dist/utilities/drizzle-result.utility.js.map +1 -1
  415. package/dist/utilities/index.d.ts +0 -1
  416. package/dist/utilities/index.js.map +1 -1
  417. package/dist/utilities/network.utility.d.ts +0 -1
  418. package/dist/utilities/network.utility.js.map +1 -1
  419. package/dist/vulcan-preset/preset.json +7 -3
  420. package/package.json +7 -7
  421. package/dist/base/applications/base.d.ts.map +0 -1
  422. package/dist/base/applications/boot-steps.d.ts.map +0 -1
  423. package/dist/base/applications/common/index.d.ts.map +0 -1
  424. package/dist/base/applications/common/types.d.ts.map +0 -1
  425. package/dist/base/applications/index.d.ts.map +0 -1
  426. package/dist/base/applications/server.d.ts.map +0 -1
  427. package/dist/base/controllers/grpc/abstract.d.ts.map +0 -1
  428. package/dist/base/controllers/grpc/adapter.d.ts.map +0 -1
  429. package/dist/base/controllers/grpc/base.d.ts.map +0 -1
  430. package/dist/base/controllers/grpc/common/index.d.ts.map +0 -1
  431. package/dist/base/controllers/grpc/common/types.d.ts.map +0 -1
  432. package/dist/base/controllers/grpc/index.d.ts.map +0 -1
  433. package/dist/base/controllers/index.d.ts.map +0 -1
  434. package/dist/base/index.d.ts.map +0 -1
  435. package/dist/base/metadata/index.d.ts.map +0 -1
  436. package/dist/base/metadata/request-context.d.ts.map +0 -1
  437. package/dist/base/middlewares/app-error/app-error.middleware.d.ts.map +0 -1
  438. package/dist/base/middlewares/app-error/index.d.ts.map +0 -1
  439. package/dist/base/middlewares/index.d.ts.map +0 -1
  440. package/dist/base/middlewares/request-spy/index.d.ts.map +0 -1
  441. package/dist/base/middlewares/request-spy/request-spy.middleware.d.ts.map +0 -1
  442. package/dist/common/constants.d.ts.map +0 -1
  443. package/dist/common/environments.d.ts.map +0 -1
  444. package/dist/common/index.d.ts.map +0 -1
  445. package/dist/components/api-reference/common/constants.d.ts.map +0 -1
  446. package/dist/components/api-reference/common/index.d.ts.map +0 -1
  447. package/dist/components/api-reference/common/keys.d.ts.map +0 -1
  448. package/dist/components/api-reference/common/types.d.ts.map +0 -1
  449. package/dist/components/api-reference/component.d.ts.map +0 -1
  450. package/dist/components/api-reference/index.d.ts.map +0 -1
  451. package/dist/components/api-reference/ui/factory.d.ts.map +0 -1
  452. package/dist/components/api-reference/ui/index.d.ts.map +0 -1
  453. package/dist/components/api-reference/ui/scalar.d.ts.map +0 -1
  454. package/dist/components/api-reference/ui/swagger.d.ts.map +0 -1
  455. package/dist/components/auth/authenticate/component.d.ts.map +0 -1
  456. package/dist/components/auth/authenticate/controllers/factory.d.ts.map +0 -1
  457. package/dist/components/auth/authenticate/controllers/index.d.ts.map +0 -1
  458. package/dist/components/auth/authenticate/controllers/jwks/controller.d.ts.map +0 -1
  459. package/dist/components/auth/authenticate/controllers/jwks/definitions.d.ts.map +0 -1
  460. package/dist/components/auth/authenticate/controllers/jwks/index.d.ts.map +0 -1
  461. package/dist/components/auth/authenticate/controllers/service-certs/controller.d.ts.map +0 -1
  462. package/dist/components/auth/authenticate/controllers/service-certs/definitions.d.ts.map +0 -1
  463. package/dist/components/auth/authenticate/controllers/service-certs/index.d.ts.map +0 -1
  464. package/dist/components/auth/authenticate/index.d.ts.map +0 -1
  465. package/dist/components/auth/authenticate/services/basic/index.d.ts.map +0 -1
  466. package/dist/components/auth/authenticate/services/basic/service.d.ts.map +0 -1
  467. package/dist/components/auth/authenticate/services/bearer/abstract.service.d.ts.map +0 -1
  468. package/dist/components/auth/authenticate/services/bearer/index.d.ts.map +0 -1
  469. package/dist/components/auth/authenticate/services/bearer/jwks/abstract.service.d.ts.map +0 -1
  470. package/dist/components/auth/authenticate/services/bearer/jwks/index.d.ts.map +0 -1
  471. package/dist/components/auth/authenticate/services/bearer/jwks/issuer.service.d.ts.map +0 -1
  472. package/dist/components/auth/authenticate/services/bearer/jwks/verifier.service.d.ts.map +0 -1
  473. package/dist/components/auth/authenticate/services/bearer/jws.service.d.ts.map +0 -1
  474. package/dist/components/auth/authenticate/services/index.d.ts.map +0 -1
  475. package/dist/components/auth/authenticate/services/jose-loader.d.ts.map +0 -1
  476. package/dist/components/auth/authenticate/services/service/index.d.ts.map +0 -1
  477. package/dist/components/auth/authenticate/services/service/signer.service.d.ts.map +0 -1
  478. package/dist/components/auth/authenticate/services/service/verifier.service.d.ts.map +0 -1
  479. package/dist/components/auth/authenticate/strategies/basic.strategy.d.ts.map +0 -1
  480. package/dist/components/auth/authenticate/strategies/index.d.ts.map +0 -1
  481. package/dist/components/auth/authenticate/strategies/jwks/index.d.ts.map +0 -1
  482. package/dist/components/auth/authenticate/strategies/jwks/issuer.d.ts.map +0 -1
  483. package/dist/components/auth/authenticate/strategies/jwks/verifier.d.ts.map +0 -1
  484. package/dist/components/auth/authenticate/strategies/jws.strategy.d.ts.map +0 -1
  485. package/dist/components/auth/authenticate/strategies/service.strategy.d.ts.map +0 -1
  486. package/dist/components/auth/authorize/adapters/base-filtered.d.ts.map +0 -1
  487. package/dist/components/auth/authorize/adapters/common/index.d.ts.map +0 -1
  488. package/dist/components/auth/authorize/adapters/common/types.d.ts.map +0 -1
  489. package/dist/components/auth/authorize/adapters/connector.d.ts.map +0 -1
  490. package/dist/components/auth/authorize/adapters/custom-grant-expander.d.ts.map +0 -1
  491. package/dist/components/auth/authorize/adapters/index.d.ts.map +0 -1
  492. package/dist/components/auth/authorize/adapters/scoped-casbin/adapter.d.ts.map +0 -1
  493. package/dist/components/auth/authorize/adapters/scoped-casbin/common/constants.d.ts.map +0 -1
  494. package/dist/components/auth/authorize/adapters/scoped-casbin/common/index.d.ts.map +0 -1
  495. package/dist/components/auth/authorize/adapters/scoped-casbin/common/types.d.ts.map +0 -1
  496. package/dist/components/auth/authorize/adapters/scoped-casbin/index.d.ts.map +0 -1
  497. package/dist/components/auth/authorize/adapters/scoped-casbin/policy-edges.d.ts.map +0 -1
  498. package/dist/components/auth/authorize/component.d.ts.map +0 -1
  499. package/dist/components/auth/authorize/enforcers/casbin-module.d.ts.map +0 -1
  500. package/dist/components/auth/authorize/enforcers/casbin.enforcer.d.ts.map +0 -1
  501. package/dist/components/auth/authorize/enforcers/index.d.ts.map +0 -1
  502. package/dist/components/auth/authorize/enforcers/models/index.d.ts.map +0 -1
  503. package/dist/components/auth/authorize/enforcers/models/rbac-domain.model.d.ts.map +0 -1
  504. package/dist/components/auth/authorize/enforcers/policy-line-codec.d.ts.map +0 -1
  505. package/dist/components/auth/authorize/enforcers/user-policy-line-cache.d.ts.map +0 -1
  506. package/dist/components/auth/authorize/index.d.ts.map +0 -1
  507. package/dist/components/auth/authorize/role-managers/base.d.ts.map +0 -1
  508. package/dist/components/auth/authorize/role-managers/domain-hierarchy.d.ts.map +0 -1
  509. package/dist/components/auth/authorize/role-managers/index.d.ts.map +0 -1
  510. package/dist/components/auth/authorize/role-managers/membership.d.ts.map +0 -1
  511. package/dist/components/auth/authorize/role-managers/resource.d.ts.map +0 -1
  512. package/dist/components/auth/index.d.ts.map +0 -1
  513. package/dist/components/auth/models/entities/index.d.ts.map +0 -1
  514. package/dist/components/auth/models/entities/permission.model.d.ts.map +0 -1
  515. package/dist/components/auth/models/entities/policy-definition.model.d.ts.map +0 -1
  516. package/dist/components/auth/models/entities/role.model.d.ts.map +0 -1
  517. package/dist/components/auth/models/entities/user.model.d.ts.map +0 -1
  518. package/dist/components/auth/models/index.d.ts.map +0 -1
  519. package/dist/components/controller/grpc/common/index.d.ts.map +0 -1
  520. package/dist/components/controller/grpc/common/types.d.ts.map +0 -1
  521. package/dist/components/controller/grpc/grpc.component.d.ts.map +0 -1
  522. package/dist/components/controller/grpc/index.d.ts.map +0 -1
  523. package/dist/components/controller/index.d.ts.map +0 -1
  524. package/dist/components/health-check/common/constants.d.ts.map +0 -1
  525. package/dist/components/health-check/common/index.d.ts.map +0 -1
  526. package/dist/components/health-check/common/keys.d.ts.map +0 -1
  527. package/dist/components/health-check/common/rest-paths.d.ts.map +0 -1
  528. package/dist/components/health-check/common/types.d.ts.map +0 -1
  529. package/dist/components/health-check/component.d.ts.map +0 -1
  530. package/dist/components/health-check/controller.d.ts.map +0 -1
  531. package/dist/components/health-check/index.d.ts.map +0 -1
  532. package/dist/components/health-check/reporter.d.ts.map +0 -1
  533. package/dist/components/index.d.ts.map +0 -1
  534. package/dist/components/mail/common/constants.d.ts.map +0 -1
  535. package/dist/components/mail/common/errors.d.ts.map +0 -1
  536. package/dist/components/mail/common/index.d.ts.map +0 -1
  537. package/dist/components/mail/common/keys.d.ts.map +0 -1
  538. package/dist/components/mail/common/types/index.d.ts.map +0 -1
  539. package/dist/components/mail/common/types/message.d.ts.map +0 -1
  540. package/dist/components/mail/common/types/options.d.ts.map +0 -1
  541. package/dist/components/mail/common/types/queue.d.ts.map +0 -1
  542. package/dist/components/mail/common/types/template.d.ts.map +0 -1
  543. package/dist/components/mail/common/types/verification.d.ts.map +0 -1
  544. package/dist/components/mail/component.d.ts.map +0 -1
  545. package/dist/components/mail/helpers/executors/bull-mq-executor.helper.d.ts.map +0 -1
  546. package/dist/components/mail/helpers/executors/direct-executor.helper.d.ts.map +0 -1
  547. package/dist/components/mail/helpers/executors/index.d.ts.map +0 -1
  548. package/dist/components/mail/helpers/executors/internal-queue-executor.helper.d.ts.map +0 -1
  549. package/dist/components/mail/helpers/index.d.ts.map +0 -1
  550. package/dist/components/mail/helpers/transporters/amazon-ses-transporter.helper.d.ts.map +0 -1
  551. package/dist/components/mail/helpers/transporters/index.d.ts.map +0 -1
  552. package/dist/components/mail/helpers/transporters/mailgun-transporter.helper.d.ts.map +0 -1
  553. package/dist/components/mail/helpers/transporters/nodemail-transporter.helper.d.ts.map +0 -1
  554. package/dist/components/mail/index.d.ts.map +0 -1
  555. package/dist/components/mail/providers/index.d.ts.map +0 -1
  556. package/dist/components/mail/providers/mail-queue-executor.provider.d.ts.map +0 -1
  557. package/dist/components/mail/providers/mail-transporter.provider.d.ts.map +0 -1
  558. package/dist/components/mail/services/generators/index.d.ts.map +0 -1
  559. package/dist/components/mail/services/generators/numeric-code.d.ts.map +0 -1
  560. package/dist/components/mail/services/generators/random-token.d.ts.map +0 -1
  561. package/dist/components/mail/services/generators/verification-data.d.ts.map +0 -1
  562. package/dist/components/mail/services/index.d.ts.map +0 -1
  563. package/dist/components/mail/services/mail.service.d.ts.map +0 -1
  564. package/dist/components/mail/services/template.service.d.ts.map +0 -1
  565. package/dist/components/mail/utilities/address.utility.d.ts.map +0 -1
  566. package/dist/components/mail/utilities/attachment.utility.d.ts.map +0 -1
  567. package/dist/components/mail/utilities/body.utility.d.ts.map +0 -1
  568. package/dist/components/mail/utilities/index.d.ts.map +0 -1
  569. package/dist/components/mail/utilities/mime.utility.d.ts.map +0 -1
  570. package/dist/components/mail/utilities/type.utility.d.ts.map +0 -1
  571. package/dist/components/mail/utilities/verification.utility.d.ts.map +0 -1
  572. package/dist/components/request-tracker/component.d.ts.map +0 -1
  573. package/dist/components/request-tracker/index.d.ts.map +0 -1
  574. package/dist/components/socket-io/common/index.d.ts.map +0 -1
  575. package/dist/components/socket-io/common/keys.d.ts.map +0 -1
  576. package/dist/components/socket-io/common/types.d.ts.map +0 -1
  577. package/dist/components/socket-io/component.d.ts.map +0 -1
  578. package/dist/components/socket-io/handlers/bun.handler.d.ts.map +0 -1
  579. package/dist/components/socket-io/handlers/index.d.ts.map +0 -1
  580. package/dist/components/socket-io/handlers/node.handler.d.ts.map +0 -1
  581. package/dist/components/socket-io/index.d.ts.map +0 -1
  582. package/dist/components/static-asset/common/commit-token.d.ts.map +0 -1
  583. package/dist/components/static-asset/common/constants.d.ts.map +0 -1
  584. package/dist/components/static-asset/common/errors.d.ts.map +0 -1
  585. package/dist/components/static-asset/common/index.d.ts.map +0 -1
  586. package/dist/components/static-asset/common/keys.d.ts.map +0 -1
  587. package/dist/components/static-asset/common/types.d.ts.map +0 -1
  588. package/dist/components/static-asset/component.d.ts.map +0 -1
  589. package/dist/components/static-asset/controller/base.definition.d.ts.map +0 -1
  590. package/dist/components/static-asset/controller/factory.d.ts.map +0 -1
  591. package/dist/components/static-asset/controller/index.d.ts.map +0 -1
  592. package/dist/components/static-asset/controller/key-scope.d.ts.map +0 -1
  593. package/dist/components/static-asset/controller/meta-link.d.ts.map +0 -1
  594. package/dist/components/static-asset/controller/route-options.d.ts.map +0 -1
  595. package/dist/components/static-asset/index.d.ts.map +0 -1
  596. package/dist/components/static-asset/ingest.d.ts.map +0 -1
  597. package/dist/components/static-asset/models/base.model.d.ts.map +0 -1
  598. package/dist/components/static-asset/models/index.d.ts.map +0 -1
  599. package/dist/components/static-asset/repositories/base.repository.d.ts.map +0 -1
  600. package/dist/components/static-asset/repositories/index.d.ts.map +0 -1
  601. package/dist/components/websocket/common/index.d.ts.map +0 -1
  602. package/dist/components/websocket/common/keys.d.ts.map +0 -1
  603. package/dist/components/websocket/common/types.d.ts.map +0 -1
  604. package/dist/components/websocket/component.d.ts.map +0 -1
  605. package/dist/components/websocket/handlers/bun.handler.d.ts.map +0 -1
  606. package/dist/components/websocket/handlers/index.d.ts.map +0 -1
  607. package/dist/components/websocket/index.d.ts.map +0 -1
  608. package/dist/connectors/index.d.ts.map +0 -1
  609. package/dist/connectors/meilisearch/index.d.ts.map +0 -1
  610. package/dist/connectors/postgres/drivers/node-postgres.d.ts.map +0 -1
  611. package/dist/connectors/postgres/drivers/pglite.d.ts.map +0 -1
  612. package/dist/connectors/postgres/drivers/postgres-js.d.mts.map +0 -1
  613. package/dist/connectors/postgres/drivers/postgres-js.d.ts.map +0 -1
  614. package/dist/connectors/postgres/index.d.ts.map +0 -1
  615. package/dist/connectors/postgres/supabase/index.d.ts.map +0 -1
  616. package/dist/connectors/relational/index.d.ts.map +0 -1
  617. package/dist/connectors/search/controllers/index.d.ts.map +0 -1
  618. package/dist/connectors/search/index.d.ts.map +0 -1
  619. package/dist/connectors/sqlite/drivers/libsql.d.ts.map +0 -1
  620. package/dist/connectors/sqlite/index.d.ts.map +0 -1
  621. package/dist/connectors/typesense/controllers/index.d.ts.map +0 -1
  622. package/dist/connectors/typesense/index.d.ts.map +0 -1
  623. package/dist/helpers/base-helper.d.ts.map +0 -1
  624. package/dist/helpers/index.d.ts.map +0 -1
  625. package/dist/index.d.ts.map +0 -1
  626. package/dist/testing/index.d.ts.map +0 -1
  627. package/dist/utilities/drizzle-result.utility.d.ts.map +0 -1
  628. package/dist/utilities/index.d.ts.map +0 -1
  629. package/dist/utilities/network.utility.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../../src/components/static-asset/common/keys.ts"],"names":[],"mappings":";;;AAAA,MAAa,+BAA+B;IAC1C,oPAAoP;aACpO,mCAA8B,GAAG,qCAAqC,CAAC;;AAFzF,0EAGC"}
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../../src/components/static-asset/common/keys.ts"],"names":[],"mappings":";;;AAAA,MAAa,+BAA+B;IAC1C,oPAAoP;aACpO,mCAA8B,GAAG,qCAAqC,CAAC;;AAFzF,0EAGC","sourcesContent":["export class StaticAssetComponentBindingKeys {\n /** The options an application registers through `configs.artifacts` land here, because an artifact index carries classes and no options. `application.component(StaticAssetComponent, { options })` passes them directly and wins over this key. */\n static readonly STATIC_ASSET_COMPONENT_OPTIONS = '@app/static-asset-component/options';\n}\n"]}
@@ -161,4 +161,3 @@ export type TStaticAssetsComponentOptions<Schema extends TMetaLinkCompatibleSche
161
161
  metaLink: TMetaLinkConfig<Schema>;
162
162
  });
163
163
  };
164
- //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/components/static-asset/common/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/components/static-asset/common/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { BaseRestController, IAuthRouteConfig, TRouteContext } from '@/base';\nimport type { IDuration } from '@venizia/ignis-helpers/common';\nimport type {\n BaseRelationalEntity,\n DefaultCRUDRepository,\n TTableObject,\n} from '@venizia/ignis-connectors/postgres';\nimport type {\n DiskHelper,\n IBucketRef,\n IFileStat,\n IObjectLocation,\n IObjectRef,\n IStorageHelper,\n IUploadResult,\n TUploadNaming,\n} from '@venizia/ignis-helpers';\nimport type { BunS3Helper } from '@venizia/ignis-helpers/bun-s3';\nimport type { AnyType, TValueOrAsyncResolver, ValueOrPromise } from '@venizia/ignis-helpers/common';\nimport type { MinioHelper } from '@venizia/ignis-helpers/minio';\nimport type { TMetaLinkCompatibleSchema, TMetaLinkSchema } from '../models';\nimport type { StaticAssetStorageTypes } from './constants';\n\nexport type TStaticAssetExtraOptions = {\n parseMultipartBody?: {\n storage?: 'memory' | 'disk';\n uploadDir?: string;\n };\n\n /** `folderPath` carries the upload query's target folder - dropping it flattens nested uploads. */\n normalizeNameFn?: (opts: { file: TUploadNaming }) => string;\n normalizeLinkFn?: (opts: IObjectLocation) => string;\n\n /** Maximum folder nesting depth allowed in object paths. Default: 2 */\n maxFolderDepth?: number;\n\n /** Largest file the UPLOAD route accepts. Absent means no ceiling. Checked against `content-length` before spooling, then per file after parsing. */\n maxBytes?: number;\n [key: string]: AnyType;\n};\n\n/** Decides the key one uploaded file is stored under. `defaultKey` is what IGNIS would have written. */\nexport type TObjectNameResolver = (opts: {\n bucket: IBucketRef;\n file: TUploadNaming;\n defaultKey: string;\n}) => string;\n\n/** Adds routes of the application's own to a generated asset controller. Runs after every built-in route, so a built-in route always wins a path collision. `basePath` is the mount path with exactly one leading slash. */\n/** Adds routes of the application's own. Registration order decides a path collision, so the same shape serves both the before and the after hook. */\nexport type TDefineExtraRoutes = (opts: {\n controller: BaseRestController;\n helper: IStorageHelper;\n basePath: string;\n}) => void;\n\n// Declared by hand rather than inferred: RouteHandler inference here is heavy.\nexport type TBucketParams = { bucketName: string };\nexport type TObjectParams = { bucketName: string; objectName: string };\nexport type TUploadQuery = {\n principalType?: string;\n principalId?: string;\n variant?: string;\n /** Display order within the principal. Caller-supplied: deriving it would be a non-atomic read of `max(sequence)` then a write of `max + 1`. */\n sequence?: number;\n folderPath?: string;\n};\nexport type TListQuery = { prefix?: string; recursive?: string; maxKeys?: string };\n\nexport type TDirectUploadOptions = {\n /** Who may ask for a policy. REQUIRED, not defaulted: this route hands out a write credential, and there is no safe default for that. */\n authorize: (opts: { context: TRouteContext }) => ValueOrPromise<boolean>;\n\n /** Signs the commit token. Keep it out of the repository and out of the client. */\n secretKey: string;\n\n /** The ceiling the policy carries as `content-length-range`. A signed PUT cannot express this at all, which is why this is a POST policy. */\n maxBytes: number;\n\n /** Where a policy may write. The final key is NEVER in a policy, so content cannot be replaced after the commit. Default: `pending/`. */\n pendingPrefix?: string;\n\n /** How long a policy and its commit token stay good. Default: the helper's POST default. */\n expiresIn?: IDuration;\n\n /** Runs BEFORE the copy to the final key, so a hook that throws leaves the object under the pending prefix for a lifecycle rule to collect, rather than stranding it at the final key. */\n onCommit?: (opts: {\n bucket: IBucketRef;\n pendingObject: IObjectRef;\n object: IObjectRef;\n }) => ValueOrPromise<void>;\n};\n\nexport type TUploadPolicyRequest = {\n files: Array<{ fileName: string; contentType?: string; size?: number }>;\n};\n\n/** The MetaLink table belongs to the application. `Schema` defaults to the table IGNIS ships, and widens to any table whose row carries the same fields. */\nexport type TMetaLinkConfig<Schema extends TMetaLinkCompatibleSchema = TMetaLinkSchema> = {\n model: TValueOrAsyncResolver<typeof BaseRelationalEntity<Schema>>;\n repository: TValueOrAsyncResolver<DefaultCRUDRepository<Schema>>;\n createMetaLink?: (opts: {\n uploadResult: IUploadResult;\n fileStat: IFileStat;\n /** The caller's labels. Named for where they used to travel - they arrive in the request BODY now, as form fields on an upload and beside the commit token on a direct one. */\n query: TUploadQuery;\n }) => ValueOrPromise<{ count: number; data: TTableObject<Schema> }>;\n};\n\n/** The part of a built-in route an application may change. */\nexport type TStaticAssetRouteConfig = Partial<\n Omit<IAuthRouteConfig, 'method' | 'request' | 'responses'>\n> & {\n /** Whether this route is registered. Defaults to true. */\n enabled?: boolean;\n};\n\nexport type TStaticAssetRoutes = {\n getBuckets?: TStaticAssetRouteConfig;\n getBucketByName?: TStaticAssetRouteConfig;\n createBucket?: TStaticAssetRouteConfig;\n deleteBucket?: TStaticAssetRouteConfig;\n\n upload?: TStaticAssetRouteConfig;\n listObjects?: TStaticAssetRouteConfig;\n deleteObject?: TStaticAssetRouteConfig;\n getObjectByName?: TStaticAssetRouteConfig;\n downloadObjectByName?: TStaticAssetRouteConfig;\n\n uploadPolicy?: TStaticAssetRouteConfig;\n uploadCommit?: TStaticAssetRouteConfig;\n\n recreateMetaLink?: TStaticAssetRouteConfig;\n};\n\nexport type TStaticAssetsComponentOptions<\n Schema extends TMetaLinkCompatibleSchema = TMetaLinkSchema,\n> = {\n [key: string]: {\n controller: {\n name: string;\n basePath: string;\n isStrict?: boolean;\n\n /** `true` serves a raw nested object path (`/objects/photos/2024/f.jpg`) - a URL shape change; a percent-encoded path keeps working either way. Default: `false`. */\n rawObjectPath?: boolean;\n\n /** The single bucket every object route uses. It leaves the URL (`/objects/{objectName}`) and the four bucket-management routes are not registered. The function form is read per request, so an environment variable can be read lazily. */\n bucket?: TValueOrAsyncResolver<string>;\n\n /**\n * The key scope this controller owns, e.g. `inventory/`. Every route refuses a key outside it\n * as a 404 without calling the storage, `listObjects` lists only inside it, and an upload key\n * must land inside it: the default name is placed there, a `resolveObjectName` or\n * `extra.normalizeNameFn` key outside it is refused. `maxFolderDepth` counts the folders below\n * it. Absent: every key in the bucket.\n */\n keyPrefix?: string;\n\n routes?: TStaticAssetRoutes;\n\n /** Direct upload: the browser posts the bytes to the storage and IGNIS only signs the permission. Absent leaves both routes unregistered. Requires `bucket` - a policy names one bucket, and a bucket in the URL is a bucket the caller chooses. */\n directUpload?: TDirectUploadOptions;\n };\n extra?: TStaticAssetExtraOptions;\n\n /** Decides the stored object name of each uploaded file; absent keeps the storage helper's own naming. */\n resolveObjectName?: TObjectNameResolver;\n\n /** Registers the application's own routes BEFORE every built-in one, so a literal path wins over the catch-all `rawObjectPath` produces. Hono matches in registration order. */\n defineRoutesBefore?: TDefineExtraRoutes;\n\n /** Registers the application's own routes on the generated controller, after every built-in one. */\n defineExtraRoutes?: TDefineExtraRoutes;\n } & (\n | { storage: typeof StaticAssetStorageTypes.BUN_S3; helper: BunS3Helper }\n | { storage: typeof StaticAssetStorageTypes.DISK; helper: DiskHelper }\n | { storage: typeof StaticAssetStorageTypes.MINIO; helper: MinioHelper }\n ) &\n (\n | { useMetaLink?: false | undefined }\n | { useMetaLink: true; metaLink: TMetaLinkConfig<Schema> }\n );\n};\n"]}
@@ -9,4 +9,3 @@ export declare class StaticAssetComponent<Schema extends TMetaLinkCompatibleSche
9
9
  constructor(application: BaseApplication);
10
10
  binding(): ValueOrPromise<void>;
11
11
  }
12
- //# sourceMappingURL=component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sourceRoot":"","sources":["../../../src/components/static-asset/component.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,wDAAsD;AACtD,8CAAyC;AACzC,wDAAqD;AACrD,wDAAgD;AAEhD,qCAA+F;AAE/F,6CAAuE;AAEvE,kQAAkQ;AAClQ,IAAa,oBAAoB,4BAAjC,MAAa,oBAEX,SAAQ,4BAAoD;IAC5D,YAC8D,WAA4B;QAExF,KAAK,CAAC;YACJ,KAAK,EAAE,sBAAoB,CAAC,IAAI;YAChC,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE;YACrD,QAAQ,EAAE;gBACR,CAAC,wCAA+B,CAAC,8BAA8B,CAAC,EAC9D,sBAAO,CAAC,IAAI,CAAgC;oBAC1C,GAAG,EAAE,wCAA+B,CAAC,8BAA8B;iBACpE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;aACjB;SACF,CAAC,CAAC;QAXyD,gBAAW,GAAX,WAAW,CAAiB;IAY1F,CAAC;IAEQ,OAAO;QACd,2FAA2F;QAC3F,8EAA8E;QAC9E,MAAM,gBAAgB,GACpB,IAAI,CAAC,OAAO;YACZ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAwC;gBAC1D,GAAG,EAAE,wCAA+B,CAAC,8BAA8B;aACpE,CAAC,CAAC;QAEL,MAAM,uBAAuB,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACjE,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,uBAAuB,EAAE,CAAC;YACjD,MAAM,EACJ,OAAO,EACP,UAAU,EACV,MAAM,EACN,KAAK,EACL,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,GAAG,GAAG,CAAC;YAER,IAAI,CAAC,WAAW,CAAC,UAAU,CACzB,mCAAsB,CAAC,qBAAqB,CAAC;gBAC3C,UAAU;gBACV,OAAO;gBACP,MAAM;gBACN,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,QAAQ,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;gBACpD,iBAAiB;gBACjB,kBAAkB;gBAClB,iBAAiB;gBACjB,OAAO,EAAE;oBACP,GAAG,KAAK;oBACR,eAAe,EACb,KAAK,EAAE,eAAe;wBACtB,2KAA2K;wBAC3K,CAAC,WAAW,CAAC,EAAE,CACb,IAAA,4BAAe,EAAC;4BACd,QAAQ,EAAE,UAAU,CAAC,QAAQ;4BAC7B,MAAM,EAAE,WAAW,CAAC,MAAM;4BAC1B,MAAM,EAAE,WAAW,CAAC,MAAM;4BAC1B,mBAAmB,EAAE,UAAU,CAAC,MAAM,KAAK,SAAS;4BACpD,aAAa,EAAE,UAAU,CAAC,aAAa;yBACxC,CAAC,CAAC;iBACR;aACF,CAAC,CACH,CAAC;YAEF,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAC1B,iFAAiF,EACjF,GAAG,EACH,OAAO,EACP,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CACzB,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAA;AA1EY,oDAAoB;+BAApB,oBAAoB;IAI5B,WAAA,IAAA,iBAAM,EAAC,EAAE,GAAG,EAAE,2BAAY,CAAC,oBAAoB,EAAE,CAAC,CAAA;;GAJ1C,oBAAoB,CA0EhC"}
1
+ {"version":3,"file":"component.js","sourceRoot":"","sources":["../../../src/components/static-asset/component.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,wDAAsD;AACtD,8CAAyC;AACzC,wDAAqD;AACrD,wDAAgD;AAEhD,qCAA+F;AAE/F,6CAAuE;AAEvE,kQAAkQ;AAClQ,IAAa,oBAAoB,4BAAjC,MAAa,oBAEX,SAAQ,4BAAoD;IAC5D,YAC8D,WAA4B;QAExF,KAAK,CAAC;YACJ,KAAK,EAAE,sBAAoB,CAAC,IAAI;YAChC,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE;YACrD,QAAQ,EAAE;gBACR,CAAC,wCAA+B,CAAC,8BAA8B,CAAC,EAC9D,sBAAO,CAAC,IAAI,CAAgC;oBAC1C,GAAG,EAAE,wCAA+B,CAAC,8BAA8B;iBACpE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;aACjB;SACF,CAAC,CAAC;QAXyD,gBAAW,GAAX,WAAW,CAAiB;IAY1F,CAAC;IAEQ,OAAO;QACd,2FAA2F;QAC3F,8EAA8E;QAC9E,MAAM,gBAAgB,GACpB,IAAI,CAAC,OAAO;YACZ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAwC;gBAC1D,GAAG,EAAE,wCAA+B,CAAC,8BAA8B;aACpE,CAAC,CAAC;QAEL,MAAM,uBAAuB,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACjE,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,uBAAuB,EAAE,CAAC;YACjD,MAAM,EACJ,OAAO,EACP,UAAU,EACV,MAAM,EACN,KAAK,EACL,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,GAAG,GAAG,CAAC;YAER,IAAI,CAAC,WAAW,CAAC,UAAU,CACzB,mCAAsB,CAAC,qBAAqB,CAAC;gBAC3C,UAAU;gBACV,OAAO;gBACP,MAAM;gBACN,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,QAAQ,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;gBACpD,iBAAiB;gBACjB,kBAAkB;gBAClB,iBAAiB;gBACjB,OAAO,EAAE;oBACP,GAAG,KAAK;oBACR,eAAe,EACb,KAAK,EAAE,eAAe;wBACtB,2KAA2K;wBAC3K,CAAC,WAAW,CAAC,EAAE,CACb,IAAA,4BAAe,EAAC;4BACd,QAAQ,EAAE,UAAU,CAAC,QAAQ;4BAC7B,MAAM,EAAE,WAAW,CAAC,MAAM;4BAC1B,MAAM,EAAE,WAAW,CAAC,MAAM;4BAC1B,mBAAmB,EAAE,UAAU,CAAC,MAAM,KAAK,SAAS;4BACpD,aAAa,EAAE,UAAU,CAAC,aAAa;yBACxC,CAAC,CAAC;iBACR;aACF,CAAC,CACH,CAAC;YAEF,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAC1B,iFAAiF,EACjF,GAAG,EACH,OAAO,EACP,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CACzB,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAA;AA1EY,oDAAoB;+BAApB,oBAAoB;IAI5B,WAAA,IAAA,iBAAM,EAAC,EAAE,GAAG,EAAE,2BAAY,CAAC,oBAAoB,EAAE,CAAC,CAAA;;GAJ1C,oBAAoB,CA0EhC","sourcesContent":["import { type BaseApplication } from '@/base/applications';\nimport { BaseComponent } from '@venizia/ignis-kernel';\nimport { inject } from '@/base/metadata';\nimport { CoreBindings } from '@venizia/ignis-kernel';\nimport { Binding } from '@venizia/ignis-kernel';\nimport { type ValueOrPromise } from '@venizia/ignis-helpers/common';\nimport { StaticAssetComponentBindingKeys, type TStaticAssetsComponentOptions } from './common';\nimport type { TMetaLinkCompatibleSchema, TMetaLinkSchema } from './models';\nimport { AssetControllerFactory, buildObjectLink } from './controller';\n\n/** `Schema` is the MetaLink table the application binds. It has to live on the CLASS, not only on the options: `component(Ctor, { options })` infers the options from the class, so a class pinned to the shipped table can only carry options for that table. */\nexport class StaticAssetComponent<\n Schema extends TMetaLinkCompatibleSchema = TMetaLinkSchema,\n> extends BaseComponent<TStaticAssetsComponentOptions<Schema>> {\n constructor(\n @inject({ key: CoreBindings.APPLICATION_INSTANCE }) private application: BaseApplication,\n ) {\n super({\n scope: StaticAssetComponent.name,\n initDefault: { enable: true, container: application },\n bindings: {\n [StaticAssetComponentBindingKeys.STATIC_ASSET_COMPONENT_OPTIONS]:\n Binding.bind<TStaticAssetsComponentOptions>({\n key: StaticAssetComponentBindingKeys.STATIC_ASSET_COMPONENT_OPTIONS,\n }).toValue({}),\n },\n });\n }\n\n override binding(): ValueOrPromise<void> {\n // Direct options win. The key is the path for an application that registers this component\n // through `configs.artifacts`, where an index carries classes and no options.\n const componentOptions =\n this.options ??\n this.application.get<TStaticAssetsComponentOptions<Schema>>({\n key: StaticAssetComponentBindingKeys.STATIC_ASSET_COMPONENT_OPTIONS,\n });\n\n const componentOptionsEntries = Object.entries(componentOptions);\n for (const [key, opt] of componentOptionsEntries) {\n const {\n storage,\n controller,\n helper,\n extra,\n resolveObjectName,\n defineRoutesBefore,\n defineExtraRoutes,\n } = opt;\n\n this.application.controller(\n AssetControllerFactory.defineAssetController({\n controller,\n storage,\n helper,\n useMetaLink: opt.useMetaLink,\n metaLink: opt.useMetaLink ? opt.metaLink : undefined,\n resolveObjectName,\n defineRoutesBefore,\n defineExtraRoutes,\n options: {\n ...extra,\n normalizeLinkFn:\n extra?.normalizeLinkFn ??\n // The link follows the URL shape the controller serves: `{objectName}` is one Hono path segment unless `rawObjectPath` widens it, and a configured bucket leaves the path.\n (linkOptions =>\n buildObjectLink({\n basePath: controller.basePath,\n bucket: linkOptions.bucket,\n object: linkOptions.object,\n hasConfiguredBucket: controller.bucket !== undefined,\n rawObjectPath: controller.rawObjectPath,\n })),\n },\n }),\n );\n\n this.application.logger.info(\n `[binding] Asset storage is bound | Key: %s | Storage type: %s | UseMetaLink: %s`,\n key,\n storage,\n Boolean(opt.useMetaLink),\n );\n }\n }\n}\n"]}
@@ -25,4 +25,3 @@ export declare const buildAssetDefinitions: (opts: {
25
25
  }) => IAssetDefinitions;
26
26
  /** The bucket-in-path shape, unchanged - every existing importer keeps working. */
27
27
  export declare const StaticAssetDefinitions: IAssetDefinitions;
28
- //# sourceMappingURL=base.definition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.definition.js","sourceRoot":"","sources":["../../../../src/components/static-asset/controller/base.definition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.definition.js","sourceRoot":"","sources":["../../../../src/components/static-asset/controller/base.definition.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IAuthRouteConfig } from '@/base';\nimport { errorResponses, jsonResponse } from '@venizia/ignis-kernel';\nimport { z } from '@hono/zod-openapi';\nimport { HTTP } from '@venizia/ignis-helpers/common';\nimport { MetaLinkRecreateActions } from '../common/constants';\n\ntype TRouteRequest = NonNullable<IAuthRouteConfig['request']>;\n\n/** The labels both upload paths take. They ride the BODY, not the URL - an identifier in a query string lands in every access log between the client and here. */\nconst uploadLabels = () => ({\n principalType: z.string().optional(),\n principalId: z.string().or(z.number()).optional(),\n variant: z.string().optional(),\n sequence: z.coerce.number().int().optional(),\n});\n\nconst MultipartBodySchema = z.object({\n files: z.union([z.instanceof(File), z.array(z.instanceof(File))]).openapi({\n type: 'array',\n items: {\n type: 'string',\n format: 'binary',\n },\n }),\n ...uploadLabels(),\n folderPath: z.string().optional().openapi({\n description: 'Target folder path for uploaded files (e.g., \"photos/2024\")',\n example: 'photos/2024',\n }),\n});\n\nconst bucketNameParam = () =>\n z.string().openapi({\n param: {\n name: 'bucketName',\n in: 'path',\n },\n example: 'images',\n });\n\nconst objectNameParam = () =>\n z.string().openapi({\n param: {\n name: 'objectName',\n in: 'path',\n description: 'Object name or path (e.g., \"photo.jpg\" or \"photos/2024/photo.jpg\")',\n },\n example: 'photos/2024/photo.jpg',\n });\n\nconst fileStreamResponses = (): IAuthRouteConfig['responses'] => ({\n [HTTP.ResultCodes.RS_2.Ok]: {\n description: 'File stream response',\n content: {\n 'application/octet-stream': {\n schema: {\n type: 'string',\n format: 'binary',\n },\n },\n },\n },\n ...errorResponses(),\n});\n\n/** The ten built-in asset routes. Only `path` and `request.params` differ between option combinations. */\nexport interface IAssetDefinitions {\n GET_BUCKETS: IAuthRouteConfig;\n GET_BUCKET_BY_NAME: IAuthRouteConfig;\n CREATE_BUCKET: IAuthRouteConfig;\n DELETE_BUCKET: IAuthRouteConfig;\n GET_OBJECT_BY_NAME: IAuthRouteConfig;\n DOWNLOAD_OBJECT_BY_NAME: IAuthRouteConfig;\n UPLOAD_POLICY: IAuthRouteConfig;\n UPLOAD_COMMIT: IAuthRouteConfig;\n UPLOAD: IAuthRouteConfig;\n DELETE_OBJECT: IAuthRouteConfig;\n LIST_OBJECTS: IAuthRouteConfig;\n RECREATE_METALINK: IAuthRouteConfig;\n}\n\n/**\n * Builds the route configs of one asset controller.\n * `hasConfiguredBucket` drops `/buckets/{bucketName}` and its param from every object route.\n * `rawObjectPath` appends the `{.+}` catch-all, the spelling `@hono/zod-openapi` translates.\n */\nexport const buildAssetDefinitions = (opts: {\n hasConfiguredBucket?: boolean;\n rawObjectPath?: boolean;\n}): IAssetDefinitions => {\n const { hasConfiguredBucket = false, rawObjectPath = false } = opts;\n\n const bucketPrefix = hasConfiguredBucket ? '' : '/buckets/{bucketName}';\n\n // `{objectName}` is ONE segment: a folder path travels percent-encoded (`photos%2F2024%2Ff.jpg`).\n // The catch-all also matches a RAW nested path; the encoded form keeps working either way.\n const objectSegment = rawObjectPath ? '{objectName}{.+}' : '{objectName}';\n\n // A configured bucket is never in the URL, so a route whose only param was `bucketName` carries none.\n const bucketRequest = (): Pick<TRouteRequest, 'params'> =>\n hasConfiguredBucket ? {} : { params: z.object({ bucketName: bucketNameParam() }) };\n\n const objectRequest = (): TRouteRequest => ({\n params: hasConfiguredBucket\n ? z.object({ objectName: objectNameParam() })\n : z.object({ bucketName: bucketNameParam(), objectName: objectNameParam() }),\n });\n\n return {\n GET_BUCKETS: {\n method: 'get',\n path: '/buckets',\n responses: jsonResponse({\n schema: z.array(\n z.object({\n name: z.string(),\n creationDate: z.iso.datetime(),\n }),\n ),\n }),\n },\n GET_BUCKET_BY_NAME: {\n method: 'get',\n path: bucketPrefix,\n request: {\n params: z.object({ bucketName: bucketNameParam() }),\n },\n responses: jsonResponse({\n schema: z\n .object({\n name: z.string(),\n creationDate: z.iso.datetime(),\n })\n .nullable(),\n }),\n },\n CREATE_BUCKET: {\n method: 'post',\n path: bucketPrefix,\n request: {\n params: z.object({ bucketName: bucketNameParam() }),\n },\n responses: jsonResponse({\n schema: z\n .object({\n name: z.string(),\n creationDate: z.iso.datetime(),\n })\n .nullable(),\n }),\n },\n DELETE_BUCKET: {\n method: 'delete',\n path: bucketPrefix,\n request: {\n params: z.object({ bucketName: bucketNameParam() }),\n },\n responses: jsonResponse({\n schema: z.object({\n isDeleted: z.boolean(),\n }),\n }),\n },\n GET_OBJECT_BY_NAME: {\n method: 'get',\n path: `${bucketPrefix}/objects/${objectSegment}`,\n request: objectRequest(),\n responses: fileStreamResponses(),\n },\n DOWNLOAD_OBJECT_BY_NAME: {\n method: 'get',\n path: `${bucketPrefix}/download/${objectSegment}`,\n request: objectRequest(),\n responses: fileStreamResponses(),\n },\n UPLOAD_POLICY: {\n method: 'post',\n path: `${bucketPrefix}/upload-policy`,\n request: {\n body: {\n content: {\n 'application/json': {\n schema: z.object({\n files: z.array(\n z.object({\n fileName: z.string().min(1),\n contentType: z.string().optional(),\n size: z.number().int().nonnegative().optional(),\n }),\n ),\n }),\n },\n },\n },\n },\n responses: jsonResponse({\n schema: z.array(\n z.object({\n postURL: z.string(),\n formData: z.record(z.string(), z.string()),\n objectName: z.string(),\n commitToken: z.string(),\n expiresAt: z.string(),\n }),\n ),\n description: 'One signed POST policy per file, plus the token its commit is claimed with',\n }),\n },\n UPLOAD_COMMIT: {\n method: 'post',\n path: `${bucketPrefix}/upload-commit`,\n request: {\n body: {\n content: {\n 'application/json': {\n // The labels sit beside the token, not inside it: the token is an HMAC over\n // { bucket, key, expiresAt } and deliberately carries no business fields.\n schema: z.object({ commitToken: z.string().min(1), ...uploadLabels() }),\n },\n },\n },\n },\n responses: jsonResponse({\n schema: z.object({\n bucket: z.object({ name: z.string() }),\n object: z.object({ key: z.string() }),\n link: z.string(),\n metaLink: z\n .union([z.object({ data: z.any() }), z.object({ error: z.string() })])\n .optional(),\n }),\n description: 'The object at its final key, copied out of the pending prefix',\n }),\n },\n UPLOAD: {\n method: 'post',\n path: `${bucketPrefix}/objects`,\n request: {\n ...bucketRequest(),\n body: {\n content: {\n 'multipart/form-data': {\n schema: MultipartBodySchema,\n },\n },\n },\n },\n responses: jsonResponse({\n schema: z.array(\n z.object({\n bucket: z.object({ name: z.string() }),\n object: z.object({\n key: z.string(),\n size: z.number(),\n contentType: z.string(),\n }),\n link: z.string(),\n metaLink: z\n .union([z.object({ data: z.any() }), z.object({ error: z.string() })])\n .optional(),\n }),\n ),\n }),\n },\n DELETE_OBJECT: {\n method: 'delete',\n path: `${bucketPrefix}/objects/${objectSegment}`,\n request: objectRequest(),\n responses: jsonResponse({\n schema: z.object({\n success: z.boolean(),\n }),\n }),\n },\n LIST_OBJECTS: {\n method: 'get',\n path: `${bucketPrefix}/objects`,\n request: {\n ...bucketRequest(),\n query: z.object({\n prefix: z\n .string()\n .optional()\n .openapi({\n param: {\n name: 'prefix',\n in: 'query',\n description: 'Filter objects by prefix',\n },\n example: 'folder/',\n }),\n recursive: z\n .string()\n .optional()\n .openapi({\n param: {\n name: 'recursive',\n in: 'query',\n description: 'Recursive listing',\n },\n example: 'true',\n }),\n maxKeys: z\n .string()\n .optional()\n .openapi({\n param: {\n name: 'maxKeys',\n in: 'query',\n description: 'Maximum number of objects to return',\n },\n example: '100',\n }),\n }),\n },\n responses: jsonResponse({\n schema: z.array(\n z.object({\n name: z.string().optional(),\n size: z.number().optional(),\n lastModified: z.iso.datetime().optional(),\n etag: z.string().optional(),\n prefix: z.string().optional(),\n }),\n ),\n }),\n },\n RECREATE_METALINK: {\n method: 'put',\n path: `${bucketPrefix}/meta-links/${objectSegment}`,\n request: objectRequest(),\n responses: jsonResponse({\n schema: z.object({\n success: z.boolean(),\n action: z\n .enum([MetaLinkRecreateActions.REFRESHED, MetaLinkRecreateActions.CREATED])\n .openapi({\n description: '`refreshed` when rows for the object existed, `created` when none did',\n example: 'refreshed',\n }),\n count: z.number().openapi({ description: 'Rows refreshed or created' }),\n metaLink: z.any().optional().openapi({ description: 'The first of `metaLinks`' }),\n metaLinks: z.array(z.any()),\n }),\n }),\n },\n };\n};\n\n/** The bucket-in-path shape, unchanged - every existing importer keeps working. */\nexport const StaticAssetDefinitions = buildAssetDefinitions({});\n"]}
@@ -200,4 +200,3 @@ export declare class AssetControllerFactory extends BaseHelper {
200
200
  };
201
201
  }
202
202
  export {};
203
- //# sourceMappingURL=factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../../src/components/static-asset/controller/factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../../src/components/static-asset/controller/factory.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseRestController, type TRouteContext } from '@/base/controllers';\nimport { controller as controllerDecorator } from '@/base/metadata';\nimport {\n BaseStorageHelper,\n createContentDispositionHeader,\n type IObjectLocation,\n type IObjectMetadata,\n type IObjectRef,\n isNotFoundError,\n type IStorageHelper,\n type IUploadFile,\n type IPostPolicy,\n type IUploadResult,\n parseMultipartBody,\n type TUploadNaming,\n} from '@venizia/ignis-helpers';\nimport { HTTP, resolveValueAsync, type ValueOrPromise } from '@venizia/ignis-helpers/common';\nimport type { AnyType, TValueOrAsyncResolver } from '@venizia/ignis-helpers/common';\nimport { BaseHelper, getError, UuidHelper } from '@venizia/ignis-helpers/core';\nimport { type Env } from 'hono';\nimport { readFileSync, rmSync } from 'node:fs';\nimport {\n RENDERABLE_CONTENT_TYPES,\n StaticAssetErrors,\n type TBucketParams,\n type TDefineExtraRoutes,\n type TListQuery,\n type TMetaLinkConfig,\n DEFAULT_PENDING_PREFIX,\n META_LINK_CREATE_FAILED,\n type TObjectParams,\n type TUploadPolicyRequest,\n type TObjectNameResolver,\n type TStaticAssetExtraOptions,\n type TStaticAssetsComponentOptions,\n type TStaticAssetStorageType,\n type TUploadQuery,\n WHITELIST_HEADERS,\n} from '../common';\nimport { buildCommitToken, MetaLinkRecreateActions, readCommitToken } from '../common';\nimport { buildAssetDefinitions } from './base.definition';\nimport {\n assertKeyInScope,\n isKeyInScope,\n normalizeKeyPrefix,\n resolveScopedListPrefix,\n} from './key-scope';\nimport { buildStoredUploadResult, createMetaLinkRow, refreshMetaLinkRows } from './meta-link';\nimport { appendDeclaredLengthGuard, readRouteOverride } from './route-options';\n\nexport interface IAssetControllerOptions {\n controller: TStaticAssetsComponentOptions[string]['controller'];\n storage: TStaticAssetStorageType;\n helper: IStorageHelper;\n useMetaLink?: boolean;\n /** The table is erased at this seam on purpose. The public option types carry the real `Schema` and check it; inside the controller every read and write is on MetaLink COLUMNS, and threading a table type nobody here constrains through 700 lines of handler buys nothing. */\n metaLink?: TMetaLinkConfig<AnyType>;\n options?: TStaticAssetExtraOptions;\n\n /** Decides the stored object name of each uploaded file. Absent leaves the storage helper's own naming untouched. */\n resolveObjectName?: TObjectNameResolver;\n\n /** Registers the application's own routes on the generated controller, after every built-in one. */\n /** Registers the application's own routes BEFORE every built-in one, so a literal path wins over the catch-all `rawObjectPath` produces. */\n defineRoutesBefore?: TDefineExtraRoutes;\n defineExtraRoutes?: TDefineExtraRoutes;\n}\n\n/** Hono ALREADY percent-decodes path params - a second decodeURIComponent throws on `report_100%.pdf` and turns `a%2Fb.png` into a DIFFERENT object; `isValidName`/`isValidPath` still run on this value, so traversal is still rejected. */\n/** The upload labels, read off the multipart form. Every value arrives as text, so `sequence` is the one that needs converting. */\n/** One list: the reader below and the stale-caller warning must agree. */\nconst UPLOAD_LABEL_NAMES = [\n 'principalType',\n 'principalId',\n 'variant',\n 'sequence',\n 'folderPath',\n] as const;\n\n/** Names any label a caller put in the query - where the upload routes refuse it. */\nexport const findLabelsInQuery = (opts: {\n query: Record<string, string>;\n names?: ReadonlyArray<(typeof UPLOAD_LABEL_NAMES)[number]>;\n}): string[] => (opts.names ?? UPLOAD_LABEL_NAMES).filter(name => opts.query[name] !== undefined);\n\n/** Refused before the body is read: a route that ignored them would store an unlabelled row. */\nconst refuseLabelsInQuery = (opts: {\n query: Record<string, string>;\n names?: ReadonlyArray<(typeof UPLOAD_LABEL_NAMES)[number]>;\n reason?: string;\n}): void => {\n const names = findLabelsInQuery(opts);\n if (names.length > 0) {\n throw getError({\n error: StaticAssetErrors.LABELS_IN_QUERY,\n message: `${opts.reason ?? 'Upload labels belong in the request body, not the query'} | names: ${names.join(', ')}`,\n });\n }\n};\n\n/** The commit body carries four of the five: the object key - and so `folderPath` - was fixed when the policy was issued. */\nconst COMMIT_LABEL_NAMES = UPLOAD_LABEL_NAMES.filter(name => name !== 'folderPath');\n\n// A multipart form hands strings; a JSON commit body may hand `sequence` as a number.\nconst readUploadLabels = (opts: {\n fields: Partial<Record<(typeof UPLOAD_LABEL_NAMES)[number], string | number>>;\n}): TUploadQuery => {\n const { fields } = opts;\n const read = (name: (typeof UPLOAD_LABEL_NAMES)[number]) => {\n const value = fields[name];\n return value === undefined || value === '' ? undefined : String(value);\n };\n\n const sequence = read('sequence');\n\n return {\n principalType: read('principalType'),\n principalId: read('principalId'),\n variant: read('variant'),\n sequence: sequence === undefined ? undefined : Number(sequence),\n folderPath: read('folderPath'),\n };\n};\n\nconst readObjectName: (rawObjectName: string) => string = rawObjectName => rawObjectName;\n\n/** Encodes an object path into a SINGLE url segment: `{objectName}` matches one segment only, so `/` must be percent-encoded too (Hono decodes it back before the handler reads the param). */\nconst encodeObjectPath: (objectPath: string) => string = objectPath => {\n return encodeURIComponent(objectPath);\n};\n\n/** The bucket one request works on: a configured value wins - called on every request, so an application may read an environment variable lazily - else the path param, which is only registered when there is no configured bucket. */\nconst resolveBucket = async (opts: {\n configured?: TValueOrAsyncResolver<string>;\n param?: string;\n}): Promise<string> => {\n const { configured, param } = opts;\n\n if (configured === undefined) {\n return param ?? '';\n }\n\n return resolveValueAsync({ value: configured });\n};\n\n/** The URL of one object, in the shape its controller serves: no `/buckets/<name>` with a configured bucket, and a raw path with `rawObjectPath`. */\nexport const buildObjectLink = (\n opts: IObjectLocation & {\n basePath: string;\n hasConfiguredBucket?: boolean;\n rawObjectPath?: boolean;\n },\n): string => {\n const { basePath, bucket, object } = opts;\n const { hasConfiguredBucket = false, rawObjectPath = false } = opts;\n\n const bucketSegment = hasConfiguredBucket ? '' : `/buckets/${bucket.name}`;\n const objectSegment = rawObjectPath ? object.key : encodeObjectPath(object.key);\n\n return `${basePath}${bucketSegment}/objects/${objectSegment}`;\n};\n\n/** Mirrors `BaseStorageHelper.normalizeObjectName`, which is protected: `resolveObjectName` is offered the very name the helper would otherwise have written. */\nconst defaultObjectName: (opts: { file: TUploadNaming }) => string = ({ file }) => {\n const { originalName, folderPath } = file;\n const normalizedFileName = originalName.toLowerCase().replace(/ /g, '_');\n\n if (!folderPath) {\n return normalizedFileName;\n }\n\n return `${folderPath.toLowerCase().replace(/ /g, '_')}/${normalizedFileName}`;\n};\n\n/**\n * The served type comes from the object NAME, never the backend or the uploader: a renderable type on\n * the API origin is stored XSS. Exported so a hand-written route makes the same decision - the\n * backend's own content-type is dropped by `WHITELIST_HEADERS`.\n */\nexport const resolveServedContentType = (opts: {\n helper: IStorageHelper;\n object: IObjectRef;\n}): { contentType: string; isRenderable: boolean } => {\n const { helper, object } = opts;\n const candidate = helper.getMimeType({ filename: object.key }).toLowerCase().split(';')[0].trim();\n\n if (!RENDERABLE_CONTENT_TYPES.has(candidate)) {\n return { contentType: HTTP.HeaderValues.APPLICATION_OCTET_STREAM, isRenderable: false };\n }\n\n return { contentType: candidate, isRenderable: true };\n};\n\n/**\n * Reads one `Range` header. Only a single byte range is honoured - multipart ranges need a multipart\n * body no browser asks for here. An unsatisfiable or malformed range returns `null`, and the caller\n * serves the whole object, which is what RFC 9110 allows.\n */\nconst readByteRange = (opts: {\n header: string | undefined;\n size: number;\n}): { start: number; end: number } | null => {\n const { header, size } = opts;\n\n if (!header || size <= 0) {\n return null;\n }\n\n const match = /^bytes=(\\d*)-(\\d*)$/.exec(header.trim());\n if (!match) {\n return null;\n }\n\n const [, rawStart, rawEnd] = match;\n\n // `bytes=-500` means the LAST 500 bytes, not \"from 0 to 500\".\n if (!rawStart) {\n const suffixLength = Number(rawEnd);\n if (!Number.isInteger(suffixLength) || suffixLength <= 0) {\n return null;\n }\n\n return { start: Math.max(size - suffixLength, 0), end: size - 1 };\n }\n\n const start = Number(rawStart);\n const end = rawEnd ? Number(rawEnd) : size - 1;\n\n if (!Number.isInteger(start) || !Number.isInteger(end) || start > end || start >= size) {\n return null;\n }\n\n return { start, end: Math.min(end, size - 1) };\n};\n\n/** Sets whitelisted metadata headers on the response context. `content-type` is not among them. */\nconst applyMetadataHeaders: (opts: {\n ctx: TRouteContext<Env>;\n metadata: IObjectMetadata;\n}) => void = ({ ctx, metadata }) => {\n Object.entries(metadata).forEach(([key, value]) => {\n if (!WHITELIST_HEADERS.includes(key.toLowerCase() as (typeof WHITELIST_HEADERS)[number])) {\n return;\n }\n ctx.header(key.toLowerCase(), String(value).replace(/[\\r\\n]/g, ''));\n });\n};\n\nexport class AssetControllerFactory extends BaseHelper {\n constructor() {\n super({ scope: AssetControllerFactory.name });\n }\n\n static defineAssetController(opts: IAssetControllerOptions) {\n const { controller, helper, options, useMetaLink, metaLink, storage } = opts;\n const { resolveObjectName, defineRoutesBefore, defineExtraRoutes } = opts;\n const { directUpload } = controller;\n const { name, basePath, routes, isStrict = true, bucket, rawObjectPath = false } = controller;\n const maxFolderDepth = options?.maxFolderDepth ?? BaseStorageHelper.DEFAULT_MAX_FOLDER_DEPTH;\n const maxBytes = options?.maxBytes;\n\n const hasConfiguredBucket = bucket !== undefined;\n\n // With the bucket in the URL, the bucket routes stay unscoped and the scope spans every bucket.\n if (controller.keyPrefix !== undefined && !hasConfiguredBucket) {\n throw getError({\n message: `[${name}] keyPrefix needs controller.bucket | a bucket in the URL is a bucket the caller chooses, and the bucket routes cannot be scoped`,\n });\n }\n\n const scope =\n controller.keyPrefix === undefined\n ? undefined\n : normalizeKeyPrefix({ keyPrefix: controller.keyPrefix, helper, scope: name });\n const keyPrefix = scope?.keyPrefix;\n // `maxFolderDepth` counts the caller's folders; the scope's own are configuration, not input.\n const objectKeyMaxDepth = maxFolderDepth + (scope?.depth ?? 0);\n // The component's own name under a scope: the original name must stay one segment, as without one.\n const isScopedDefaultNaming =\n keyPrefix !== undefined && !resolveObjectName && !options?.normalizeNameFn;\n const definitions = buildAssetDefinitions({ hasConfiguredBucket, rawObjectPath });\n\n // The mount path may be declared with or without a leading slash; a link must carry exactly one.\n const normalizedBasePath = basePath.startsWith('/') ? basePath : `/${basePath}`;\n\n /** Only when the URL shape deviates: with neither option the storage helper's own link is left untouched. */\n const shapedLinkFn =\n hasConfiguredBucket || rawObjectPath\n ? (linkOptions: IObjectLocation) =>\n buildObjectLink({\n basePath: normalizedBasePath,\n bucket: linkOptions.bucket,\n object: linkOptions.object,\n hasConfiguredBucket,\n rawObjectPath,\n })\n : undefined;\n const normalizeLinkFn = options?.normalizeLinkFn ?? shapedLinkFn;\n\n @controllerDecorator({ path: basePath })\n class GeneratedStaticAssetController extends BaseRestController {\n constructor() {\n super({\n scope: name,\n path: basePath,\n isStrict,\n });\n }\n\n /** Clears the multipart spool files written by `parseMultipartBody({ storage: 'disk' })`. */\n removeSpoolFiles(spoolOptions: { paths: string[] }): void {\n for (const filePath of spoolOptions.paths) {\n try {\n rmSync(filePath, { force: true });\n } catch (error) {\n this.logger\n .for('UPLOAD')\n .error('Failed to remove spool file | path: %s | Error: %s', filePath, error);\n }\n }\n }\n\n override binding(): ValueOrPromise<void> {\n // First, so a literal path can win over the built-in catch-all `rawObjectPath` registers.\n defineRoutesBefore?.({ controller: this, helper, basePath: normalizedBasePath });\n\n // A single-bucket application has no reason to expose bucket creation or deletion, so the\n // four bucket-management routes are not registered once `bucket` is configured.\n if (!hasConfiguredBucket) {\n const getBucketsRoute = readRouteOverride({ route: routes?.getBuckets });\n if (getBucketsRoute.isEnabled) {\n this.bindRoute({\n configs: { ...definitions.GET_BUCKETS, ...getBucketsRoute.override },\n }).to({\n handler: async ctx => {\n const buckets = await helper.getBuckets();\n return ctx.json(buckets, HTTP.ResultCodes.RS_2.Ok);\n },\n });\n }\n\n const getBucketByNameRoute = readRouteOverride({ route: routes?.getBucketByName });\n if (getBucketByNameRoute.isEnabled) {\n this.bindRoute({\n configs: { ...definitions.GET_BUCKET_BY_NAME, ...getBucketByNameRoute.override },\n }).to({\n handler: async ctx => {\n const params = ctx.req.valid<TBucketParams>('param');\n const bucketName = await resolveBucket({\n configured: bucket,\n param: params.bucketName,\n });\n\n if (!helper.isValidBucketName({ bucket: { name: bucketName } })) {\n throw getError({ error: StaticAssetErrors.BUCKET_NAME_INVALID });\n }\n\n const found = await helper.getBucket({ bucket: { name: bucketName } });\n return ctx.json(found, HTTP.ResultCodes.RS_2.Ok);\n },\n });\n }\n\n const createBucketRoute = readRouteOverride({ route: routes?.createBucket });\n if (createBucketRoute.isEnabled) {\n this.bindRoute({\n configs: { ...definitions.CREATE_BUCKET, ...createBucketRoute.override },\n }).to({\n handler: async ctx => {\n const params = ctx.req.valid<TBucketParams>('param');\n const bucketName = await resolveBucket({\n configured: bucket,\n param: params.bucketName,\n });\n\n if (!helper.isValidBucketName({ bucket: { name: bucketName } })) {\n throw getError({ error: StaticAssetErrors.BUCKET_NAME_INVALID });\n }\n\n const createdBucket = await helper.createBucket({ bucket: { name: bucketName } });\n return ctx.json(createdBucket, HTTP.ResultCodes.RS_2.Ok);\n },\n });\n }\n\n const deleteBucketRoute = readRouteOverride({ route: routes?.deleteBucket });\n if (deleteBucketRoute.isEnabled) {\n this.bindRoute({\n configs: { ...definitions.DELETE_BUCKET, ...deleteBucketRoute.override },\n }).to({\n handler: async ctx => {\n const params = ctx.req.valid<TBucketParams>('param');\n const bucketName = await resolveBucket({\n configured: bucket,\n param: params.bucketName,\n });\n\n if (!helper.isValidBucketName({ bucket: { name: bucketName } })) {\n throw getError({ error: StaticAssetErrors.BUCKET_NAME_INVALID });\n }\n\n const isRemovedBucket = await helper.removeBucket({\n bucket: { name: bucketName },\n });\n return ctx.json({ isDeleted: isRemovedBucket }, HTTP.ResultCodes.RS_2.Ok);\n },\n });\n }\n }\n\n const getObjectByNameRoute = readRouteOverride({ route: routes?.getObjectByName });\n if (getObjectByNameRoute.isEnabled) {\n this.bindRoute({\n configs: { ...definitions.GET_OBJECT_BY_NAME, ...getObjectByNameRoute.override },\n }).to({\n handler: async ctx => {\n const params = ctx.req.valid<TObjectParams>('param');\n const bucketName = await resolveBucket({\n configured: bucket,\n param: params.bucketName,\n });\n const objectName = readObjectName(params.objectName);\n\n if (!helper.isValidBucketName({ bucket: { name: bucketName } })) {\n throw getError({ error: StaticAssetErrors.BUCKET_NAME_INVALID });\n }\n\n if (\n !helper.isValidObjectKey({\n object: { key: objectName },\n maxDepth: objectKeyMaxDepth,\n })\n ) {\n throw getError({ error: StaticAssetErrors.OBJECT_NAME_INVALID });\n }\n\n // Before any storage call: a key outside the scope must not even be probed.\n assertKeyInScope({ key: objectName, keyPrefix });\n\n const fileStat = await helper.getStat({\n bucket: { name: bucketName },\n object: { key: objectName },\n });\n const { size, metadata } = fileStat;\n applyMetadataHeaders({ ctx, metadata });\n\n const served = resolveServedContentType({ helper, object: { key: objectName } });\n ctx.header(HTTP.Headers.CONTENT_TYPE, served.contentType);\n ctx.header('x-content-type-options', 'nosniff');\n // Sandboxed even when renderable, so an unforeseen renderable type cannot reach this origin.\n ctx.header(HTTP.Headers.CONTENT_SECURITY_POLICY, 'sandbox');\n // Advertised unconditionally: a player only offers seeking once it sees this.\n ctx.header('accept-ranges', 'bytes');\n\n // A type outside the allow-list downloads instead of rendering; that is the XSS boundary.\n if (!served.isRenderable) {\n const inlineName = objectName.split('/').pop() ?? objectName;\n ctx.header(\n HTTP.Headers.CONTENT_DISPOSITION,\n createContentDispositionHeader({ filename: inlineName, type: 'attachment' }),\n );\n }\n\n const range = readByteRange({ header: ctx.req.header('range'), size });\n\n if (range) {\n ctx.header(HTTP.Headers.CONTENT_LENGTH, String(range.end - range.start + 1));\n ctx.header(HTTP.Headers.CONTENT_RANGE, `bytes ${range.start}-${range.end}/${size}`);\n } else {\n ctx.header(HTTP.Headers.CONTENT_LENGTH, size.toString());\n }\n\n // The web stream is what a Response body wants, so no Node Readable sits in between.\n const stream = await helper.getObjectStream({\n bucket: { name: bucketName },\n object: { key: objectName },\n ...(range ? { range } : {}),\n });\n\n return new Response(stream, {\n headers: ctx.res.headers,\n status: range ? HTTP.ResultCodes.RS_2.PartialContent : HTTP.ResultCodes.RS_2.Ok,\n });\n },\n });\n }\n\n const downloadObjectByNameRoute = readRouteOverride({\n route: routes?.downloadObjectByName,\n });\n if (downloadObjectByNameRoute.isEnabled) {\n this.bindRoute({\n configs: {\n ...definitions.DOWNLOAD_OBJECT_BY_NAME,\n ...downloadObjectByNameRoute.override,\n },\n }).to({\n handler: async ctx => {\n const params = ctx.req.valid<TObjectParams>('param');\n const bucketName = await resolveBucket({\n configured: bucket,\n param: params.bucketName,\n });\n const objectName = readObjectName(params.objectName);\n\n if (!helper.isValidBucketName({ bucket: { name: bucketName } })) {\n throw getError({ error: StaticAssetErrors.BUCKET_NAME_INVALID });\n }\n\n if (\n !helper.isValidObjectKey({\n object: { key: objectName },\n maxDepth: objectKeyMaxDepth,\n })\n ) {\n throw getError({ error: StaticAssetErrors.OBJECT_NAME_INVALID });\n }\n\n // Before any storage call: a key outside the scope must not even be probed.\n assertKeyInScope({ key: objectName, keyPrefix });\n\n const fileStat = await helper.getStat({\n bucket: { name: bucketName },\n object: { key: objectName },\n });\n const { size, metadata } = fileStat;\n applyMetadataHeaders({ ctx, metadata });\n\n // Download always attaches, so the served type only has to be honest, never renderable.\n const served = resolveServedContentType({ helper, object: { key: objectName } });\n ctx.header(HTTP.Headers.CONTENT_TYPE, served.contentType);\n ctx.header(HTTP.Headers.CONTENT_LENGTH, size.toString());\n\n const fileName = objectName.split('/').pop() ?? objectName;\n ctx.header(\n HTTP.Headers.CONTENT_DISPOSITION,\n createContentDispositionHeader({ filename: fileName, type: 'attachment' }),\n );\n ctx.header('x-content-type-options', 'nosniff');\n ctx.header(HTTP.Headers.CONTENT_SECURITY_POLICY, 'sandbox');\n\n const stream = await helper.getObjectStream({\n bucket: { name: bucketName },\n object: { key: objectName },\n });\n return new Response(stream, {\n headers: ctx.res.headers,\n status: HTTP.ResultCodes.RS_2.Ok,\n });\n },\n });\n }\n\n const uploadRoute = readRouteOverride({ route: routes?.upload });\n if (uploadRoute.isEnabled) {\n const uploadMiddleware =\n maxBytes === undefined\n ? uploadRoute.override.middleware\n : appendDeclaredLengthGuard({\n middleware: uploadRoute.override.middleware,\n maxBytes,\n });\n\n this.bindRoute({\n configs: {\n ...definitions.UPLOAD,\n ...uploadRoute.override,\n middleware: uploadMiddleware,\n },\n }).to({\n handler: async ctx => {\n // A configured bucket drops `params` from this route entirely, so it is read only when it exists.\n const bucketParam = hasConfiguredBucket\n ? undefined\n : ctx.req.valid<TBucketParams>('param').bucketName;\n const bucketName = await resolveBucket({ configured: bucket, param: bucketParam });\n\n if (!helper.isValidBucketName({ bucket: { name: bucketName } })) {\n throw getError({ error: StaticAssetErrors.BUCKET_NAME_INVALID });\n }\n\n const validateFolderPath = (folderPath: string) => {\n const normalizedFolder = folderPath.replace(/^\\/+|\\/+$/g, '');\n if (!normalizedFolder) {\n throw getError({ error: StaticAssetErrors.FOLDER_PATH_INVALID });\n }\n // maxFolderDepth excludes the filename, so it is compared directly against segment count.\n const folderSegments = normalizedFolder.split('/');\n if (folderSegments.length > maxFolderDepth) {\n throw getError({\n error: StaticAssetErrors.FOLDER_DEPTH_EXCEEDED,\n message: `Folder path exceeds max depth of ${maxFolderDepth}`,\n });\n }\n const invalidSegmentIndex = folderSegments.findIndex(\n segment => !helper.isValidSegment({ segment }),\n );\n if (invalidSegmentIndex !== -1) {\n throw getError({\n error: StaticAssetErrors.FOLDER_SEGMENT_INVALID,\n message: `Invalid folder path segment: ${folderSegments[invalidSegmentIndex]}`,\n });\n }\n };\n\n refuseLabelsInQuery({ query: ctx.req.query() });\n\n const { files: filesArray, fields } = await parseMultipartBody({\n context: ctx,\n storage: options?.parseMultipartBody?.storage,\n uploadDir: options?.parseMultipartBody?.uploadDir,\n });\n\n // Labels travel with the payload, not the URL, so the folder check waits for the parse.\n const query = readUploadLabels({ fields });\n\n const folderPath = query.folderPath;\n if (folderPath) {\n validateFolderPath(folderPath);\n }\n\n const spoolPaths = filesArray\n .map(file => file.path)\n .filter((filePath): filePath is string => Boolean(filePath));\n\n let uploaded: IUploadResult[];\n try {\n // `storage: 'disk'` spools the payload to `uploadDir` and returns `path` instead of `buffer`; the storage helpers only ever write `buffer`, so it must be read back.\n const modifiedFiles: IUploadFile[] = filesArray.map(file => {\n const buffer = file.buffer ?? (file.path ? readFileSync(file.path) : undefined);\n\n if (!buffer?.length) {\n throw getError({\n error: StaticAssetErrors.FILE_EMPTY,\n message: `Empty file content | name: ${file.originalname}`,\n });\n }\n\n // Authoritative: `buffer.length`, not the client-declared `size`.\n if (maxBytes !== undefined && buffer.length > maxBytes) {\n throw getError({\n error: StaticAssetErrors.UPLOAD_TOO_LARGE,\n message: `File ${file.originalname} of ${buffer.length} bytes exceeds the maximum of ${maxBytes}`,\n });\n }\n\n return {\n originalName: file.originalname,\n mimetype: file.mimetype,\n buffer,\n size: file.size,\n encoding: file.encoding,\n folderPath: folderPath ?? undefined,\n };\n });\n\n // Built per request: the hook is offered the bucket, which only the route knows. With\n // neither hook nor scope, `normalizeNameFn` stays exactly as configured. Under a scope,\n // the component's own default is placed inside it; an application hook's key is\n // checked, never rewritten, because the application may record that key elsewhere.\n const normalizeNameFn =\n resolveObjectName || keyPrefix !== undefined\n ? (naming: { file: TUploadNaming }) => {\n if (\n isScopedDefaultNaming &&\n !helper.isValidSegment({ segment: naming.file.originalName })\n ) {\n throw getError({ message: '[upload] Invalid original file name' });\n }\n\n const defaultKey = options?.normalizeNameFn\n ? options.normalizeNameFn(naming)\n : `${keyPrefix ?? ''}${defaultObjectName(naming)}`;\n\n const key = resolveObjectName\n ? resolveObjectName({\n bucket: { name: bucketName },\n file: naming.file,\n defaultKey,\n })\n : defaultKey;\n\n if (!isKeyInScope({ key, keyPrefix })) {\n throw getError({\n error: StaticAssetErrors.OBJECT_KEY_OUT_OF_SCOPE,\n message: `Object key is outside the key prefix of this controller | key: ${key} | keyPrefix: ${keyPrefix}`,\n });\n }\n\n return key;\n }\n : options?.normalizeNameFn;\n\n uploaded = await helper.upload({\n bucket: { name: bucketName },\n files: modifiedFiles,\n normalizeNameFn,\n normalizeLinkFn,\n // Without this the helper re-validates against its own hard default of 2, so an app configured for a deeper tree spools the body and only then fails inside the helper.\n maxFolderDepth: objectKeyMaxDepth,\n });\n } finally {\n this.removeSpoolFiles({ paths: spoolPaths });\n }\n\n if (!useMetaLink || !metaLink) {\n return ctx.json(uploaded, HTTP.ResultCodes.RS_2.Ok);\n }\n\n const results: IUploadResult[] = [];\n for (const uploadResult of uploaded) {\n try {\n const fileStat = await helper.getStat({\n bucket: uploadResult.bucket,\n object: uploadResult.object,\n });\n\n const createdMetaLink = await createMetaLinkRow({\n metaLink,\n helper,\n storage,\n uploadResult,\n fileStat,\n query,\n });\n\n results.push({ ...uploadResult, metaLink: { data: createdMetaLink } });\n } catch (error) {\n this.logger\n .for('UPLOAD')\n .error(\n 'Failed to create MetaLink | objectName: %s | Error: %s',\n uploadResult.object.key,\n error,\n );\n results.push({\n ...uploadResult,\n // A CODE, never the driver text. This handler returns 200, so it bypasses the\n // error middleware and `database.handler` - the two places that strip\n // `detail`/`table`/`constraint` - and shipped raw constraint names to the client.\n // The real error is already logged in full immediately above.\n metaLink: { error: META_LINK_CREATE_FAILED },\n });\n }\n }\n return ctx.json(results, HTTP.ResultCodes.RS_2.Ok);\n },\n });\n }\n\n const deleteObjectRoute = readRouteOverride({ route: routes?.deleteObject });\n if (deleteObjectRoute.isEnabled) {\n this.bindRoute({\n configs: { ...definitions.DELETE_OBJECT, ...deleteObjectRoute.override },\n }).to({\n handler: async ctx => {\n const params = ctx.req.valid<TObjectParams>('param');\n const bucketName = await resolveBucket({\n configured: bucket,\n param: params.bucketName,\n });\n const objectName = readObjectName(params.objectName);\n\n if (!helper.isValidBucketName({ bucket: { name: bucketName } })) {\n throw getError({ error: StaticAssetErrors.BUCKET_NAME_INVALID });\n }\n\n if (\n !helper.isValidObjectKey({\n object: { key: objectName },\n maxDepth: objectKeyMaxDepth,\n })\n ) {\n throw getError({ error: StaticAssetErrors.OBJECT_NAME_INVALID });\n }\n\n // Before any storage call: a key outside the scope must not even be probed.\n assertKeyInScope({ key: objectName, keyPrefix });\n\n // Deliberately idempotent: S3 answers 200 for a key that was never there, and consumers\n // already depend on it. `disk` throws instead, so the two are reconciled here, not below.\n try {\n await helper.removeObject({\n bucket: { name: bucketName },\n object: { key: objectName },\n });\n } catch (error) {\n if (!isNotFoundError({ error })) {\n throw error;\n }\n }\n\n if (!useMetaLink || !metaLink) {\n return ctx.json({ success: true }, HTTP.ResultCodes.RS_2.Ok);\n }\n\n const deleteRepository = await resolveValueAsync({ value: metaLink.repository });\n deleteRepository\n .deleteAll({\n where: {\n bucketName,\n objectName,\n },\n })\n .then(() => {\n this.logger\n .for('DELETE_OBJECT')\n .info('Successfully to delete MetaLink for %s/%s', bucketName, objectName);\n })\n .catch(error => {\n this.logger\n .for('DELETE_OBJECT')\n .error(\n 'Failed to delete MetaLink | bucket: %s | objectName: %s | Error: %s',\n bucketName,\n objectName,\n error,\n );\n });\n\n return ctx.json({ success: true }, HTTP.ResultCodes.RS_2.Ok);\n },\n });\n }\n\n const listObjectsRoute = readRouteOverride({ route: routes?.listObjects });\n if (listObjectsRoute.isEnabled) {\n this.bindRoute({\n configs: { ...definitions.LIST_OBJECTS, ...listObjectsRoute.override },\n }).to({\n handler: async ctx => {\n // A configured bucket drops `params` from this route entirely, so it is read only when it exists.\n const bucketParam = hasConfiguredBucket\n ? undefined\n : ctx.req.valid<TBucketParams>('param').bucketName;\n const bucketName = await resolveBucket({ configured: bucket, param: bucketParam });\n const { prefix, recursive, maxKeys } = ctx.req.valid<TListQuery>('query');\n\n if (!helper.isValidBucketName({ bucket: { name: bucketName } })) {\n throw getError({ error: StaticAssetErrors.BUCKET_NAME_INVALID });\n }\n\n // A NaN or 0 maxKeys is silently treated as \"unlimited\" by the storage backends, so an unparsable value must be rejected instead of forwarded.\n let resolvedMaxKeys: number | undefined;\n if (maxKeys !== undefined) {\n resolvedMaxKeys = Number(maxKeys);\n\n if (!Number.isInteger(resolvedMaxKeys) || resolvedMaxKeys < 1) {\n throw getError({\n error: StaticAssetErrors.MAX_KEYS_INVALID,\n message: `Invalid maxKeys | Expected a positive integer | value: ${maxKeys}`,\n });\n }\n }\n\n const scoped = resolveScopedListPrefix({ prefix, keyPrefix });\n if (scoped.isOutOfScope) {\n return ctx.json([], HTTP.ResultCodes.RS_2.Ok);\n }\n\n const objects = await helper.listObjects({\n bucket: { name: bucketName },\n prefix: scoped.prefix,\n useRecursive: recursive === 'true',\n maxKeys: resolvedMaxKeys,\n });\n\n return ctx.json(objects, HTTP.ResultCodes.RS_2.Ok);\n },\n });\n }\n\n if (directUpload) {\n if (!hasConfiguredBucket) {\n throw getError({\n message: `[${name}] directUpload needs controller.bucket | a policy names one bucket, and a bucket in the URL is a bucket the caller chooses`,\n });\n }\n\n const pendingPrefix = directUpload.pendingPrefix ?? DEFAULT_PENDING_PREFIX;\n // The scope rides inside the pending key, so the commit, which strips `pendingPrefix`, lands inside it.\n const policyKeyPrefix = `${pendingPrefix}${keyPrefix ?? ''}`;\n\n const uploadPolicyRoute = readRouteOverride({ route: routes?.uploadPolicy });\n if (uploadPolicyRoute.isEnabled) {\n this.bindRoute({\n configs: { ...definitions.UPLOAD_POLICY, ...uploadPolicyRoute.override },\n }).to({\n handler: async ctx => {\n if (!(await directUpload.authorize({ context: ctx }))) {\n throw getError({ error: StaticAssetErrors.UPLOAD_NOT_AUTHORIZED });\n }\n\n const { files } = ctx.req.valid<TUploadPolicyRequest>('json');\n const bucketName = await resolveBucket({ configured: bucket });\n\n const policies: Array<IPostPolicy & { objectName: string; commitToken: string }> =\n [];\n for (const file of files) {\n if (file.size !== undefined && file.size > directUpload.maxBytes) {\n throw getError({\n error: StaticAssetErrors.UPLOAD_TOO_LARGE,\n message: `File '${file.fileName}' is ${file.size} bytes, over the ${directUpload.maxBytes} the policy allows`,\n });\n }\n\n // Generated, never taken from the caller: a key the caller picks is a key the caller\n // can collide with, and the pending object is the one thing a policy authorizes.\n const objectName = `${policyKeyPrefix}${UuidHelper.getInstance().v4()}/${file.fileName}`;\n const policy = await helper.presignPost({\n bucket: { name: bucketName },\n keyPrefix: policyKeyPrefix,\n maxBytes: directUpload.maxBytes,\n contentType: file.contentType,\n expiresIn: directUpload.expiresIn,\n });\n\n policies.push({\n ...policy,\n objectName,\n commitToken: buildCommitToken({\n payload: {\n bucket: bucketName,\n key: objectName,\n expiresAt: new Date(policy.expiresAt).getTime(),\n },\n secretKey: directUpload.secretKey,\n }),\n });\n }\n\n return ctx.json(policies, HTTP.ResultCodes.RS_2.Ok);\n },\n });\n }\n\n const uploadCommitRoute = readRouteOverride({ route: routes?.uploadCommit });\n if (uploadCommitRoute.isEnabled) {\n this.bindRoute({\n configs: { ...definitions.UPLOAD_COMMIT, ...uploadCommitRoute.override },\n }).to({\n handler: async ctx => {\n const commitQuery = ctx.req.query();\n refuseLabelsInQuery({ query: commitQuery, names: COMMIT_LABEL_NAMES });\n refuseLabelsInQuery({\n query: commitQuery,\n names: ['folderPath'],\n reason:\n 'folderPath was decided when the upload policy was issued; the commit route cannot move the object',\n });\n\n const { commitToken, ...labels } = ctx.req.valid<\n { commitToken: string } & TUploadQuery\n >('json');\n\n // Verified BEFORE any storage call. That is what keeps this route from being a name\n // prober: a forged token fails without a round trip, so timing says nothing.\n const payload = readCommitToken({\n token: commitToken,\n secretKey: directUpload.secretKey,\n });\n\n // Labels, not authorization - the token deliberately carries no business fields, so\n // they travel beside it rather than inside it.\n const query = readUploadLabels({ fields: labels });\n\n const bucketRef = { name: payload.bucket };\n const pendingObject = { key: payload.key };\n const object = { key: payload.key.slice(pendingPrefix.length) };\n\n // A token another controller signed with the same secret must not land outside this scope.\n assertKeyInScope({ key: object.key, keyPrefix });\n\n // Before the copy, so a hook that throws leaves the object under the pending prefix\n // for a lifecycle rule, rather than stranding it at the final key.\n await directUpload.onCommit?.({ bucket: bucketRef, pendingObject, object });\n\n await helper.copyObject({\n bucket: bucketRef,\n source: pendingObject,\n destination: object,\n });\n // The copy IS the commit; removing the temporary object is cleanup. A failure here\n // leaves one object for the lifecycle rule, and failing the request would tell the\n // caller their upload did not work when it did.\n await helper\n .removeObject({ bucket: bucketRef, object: pendingObject })\n .catch(error => {\n this.logger\n .for('UPLOAD_COMMIT')\n .warn(\n 'Committed, but the pending object remains | key: %s | error: %s',\n pendingObject.key,\n error,\n );\n });\n\n const link = buildObjectLink({\n basePath: normalizedBasePath,\n bucket: bucketRef,\n object,\n hasConfiguredBucket,\n rawObjectPath,\n });\n\n // The two paths have to agree: without this a client reading `metaLink` off the\n // response renders an empty state with no error - the failure nobody reports.\n let metaLinkResult: IUploadResult['metaLink'];\n if (useMetaLink && metaLink) {\n try {\n const fileStat = await helper.getStat({ bucket: bucketRef, object });\n const data = await createMetaLinkRow({\n metaLink,\n helper,\n storage,\n uploadResult: buildStoredUploadResult({\n helper,\n bucket: bucketRef,\n object,\n link,\n fileStat,\n }),\n fileStat,\n query,\n });\n\n metaLinkResult = { data };\n } catch (error) {\n // The object IS committed by now. A 500 would send the caller back with a token\n // whose source no longer exists, so this rides the body as a code, like UPLOAD.\n this.logger\n .for('UPLOAD_COMMIT')\n .error(\n 'Failed to create MetaLink | objectName: %s | Error: %s',\n object.key,\n error,\n );\n metaLinkResult = { error: META_LINK_CREATE_FAILED };\n }\n }\n\n return ctx.json(\n {\n bucket: bucketRef,\n object,\n link,\n ...(metaLinkResult === undefined ? {} : { metaLink: metaLinkResult }),\n },\n HTTP.ResultCodes.RS_2.Ok,\n );\n },\n });\n }\n }\n\n if (useMetaLink && metaLink) {\n const recreateMetaLinkRoute = readRouteOverride({ route: routes?.recreateMetaLink });\n if (recreateMetaLinkRoute.isEnabled) {\n this.bindRoute({\n configs: { ...definitions.RECREATE_METALINK, ...recreateMetaLinkRoute.override },\n }).to({\n handler: async ctx => {\n // This route takes no labels anywhere: one in the query would land an unlabelled row.\n refuseLabelsInQuery({\n query: ctx.req.query(),\n reason:\n 'This route recreates a MetaLink for an existing object and takes no labels',\n });\n\n const params = ctx.req.valid<TObjectParams>('param');\n const bucketName = await resolveBucket({\n configured: bucket,\n param: params.bucketName,\n });\n const objectName = readObjectName(params.objectName);\n\n if (!helper.isValidBucketName({ bucket: { name: bucketName } })) {\n throw getError({ error: StaticAssetErrors.BUCKET_NAME_INVALID });\n }\n\n if (\n !helper.isValidObjectKey({\n object: { key: objectName },\n maxDepth: objectKeyMaxDepth,\n })\n ) {\n throw getError({ error: StaticAssetErrors.OBJECT_NAME_INVALID });\n }\n\n // Before any storage call: a key outside the scope must not even be probed.\n assertKeyInScope({ key: objectName, keyPrefix });\n\n const bucketRef = { name: bucketName };\n const object = { key: objectName };\n const fileStat = await helper.getStat({ bucket: bucketRef, object });\n\n const link = options?.normalizeLinkFn\n ? options.normalizeLinkFn({ bucket: bucketRef, object })\n : buildObjectLink({\n basePath: normalizedBasePath,\n bucket: bucketRef,\n object,\n hasConfiguredBucket,\n rawObjectPath,\n });\n\n const refreshed = await refreshMetaLinkRows({\n metaLink,\n helper,\n bucket: bucketRef,\n object,\n link,\n fileStat,\n });\n\n if (refreshed.count > 0) {\n return ctx.json(\n {\n success: true,\n action: MetaLinkRecreateActions.REFRESHED,\n count: refreshed.count,\n metaLink: refreshed.data[0],\n metaLinks: refreshed.data,\n },\n HTTP.ResultCodes.RS_2.Ok,\n );\n }\n\n // Not atomic with the refresh above: two concurrent calls may both create, which the\n // table allows - rows per pair are deliberately not unique.\n const created = await createMetaLinkRow({\n metaLink,\n helper,\n storage,\n uploadResult: buildStoredUploadResult({\n helper,\n bucket: bucketRef,\n object,\n link,\n fileStat,\n }),\n fileStat,\n query: {},\n });\n\n return ctx.json(\n {\n success: true,\n action: MetaLinkRecreateActions.CREATED,\n count: 1,\n metaLink: created,\n metaLinks: [created],\n },\n HTTP.ResultCodes.RS_2.Ok,\n );\n },\n });\n }\n }\n\n // Last, so a built-in route always wins a path collision with an application's own.\n defineExtraRoutes?.({ controller: this, helper, basePath: normalizedBasePath });\n }\n }\n\n Object.defineProperty(GeneratedStaticAssetController, 'name', {\n value: name,\n configurable: true,\n });\n return GeneratedStaticAssetController;\n }\n}\n"]}
@@ -1,2 +1 @@
1
1
  export * from './factory';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/static-asset/controller/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/static-asset/controller/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B","sourcesContent":["export * from './factory';\n"]}
@@ -25,4 +25,3 @@ export declare const resolveScopedListPrefix: (opts: {
25
25
  prefix?: string;
26
26
  isOutOfScope: boolean;
27
27
  };
28
- //# sourceMappingURL=key-scope.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"key-scope.js","sourceRoot":"","sources":["../../../../src/components/static-asset/controller/key-scope.ts"],"names":[],"mappings":";;;AAAA,0DAA4E;AAC5E,sDAAuD;AAEvD,iIAAiI;AAC1H,MAAM,kBAAkB,GAAG,CAAC,IAIlC,EAAwC,EAAE;IACzC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAC1C,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEnD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC;QAC3F,MAAM,IAAA,eAAQ,EAAC;YACb,OAAO,EAAE,IAAI,KAAK,0EAA0E,SAAS,EAAE;SACxG,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,GAAG,OAAO,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;AAC9D,CAAC,CAAC;AAhBW,QAAA,kBAAkB,sBAgB7B;AAEK,MAAM,YAAY,GAAG,CAAC,IAAyC,EAAW,EAAE,CACjF,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AADzD,QAAA,YAAY,gBAC6C;AAEtE,uHAAuH;AAChH,MAAM,gBAAgB,GAAG,CAAC,IAAyC,EAAQ,EAAE;IAClF,IAAI,IAAA,oBAAY,EAAC,IAAI,CAAC,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IAED,MAAM,IAAA,eAAQ,EAAC;QACb,KAAK,EAAE,6BAAa,CAAC,gBAAgB;QACrC,OAAO,EAAE,2BAA2B,IAAI,CAAC,GAAG,EAAE;KAC/C,CAAC,CAAC;AACL,CAAC,CAAC;AATW,QAAA,gBAAgB,oBAS3B;AAEF,mGAAmG;AAC5F,MAAM,uBAAuB,GAAG,CAAC,IAGvC,EAA8C,EAAE;IAC/C,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAEnC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;IACzC,CAAC;IAED,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5C,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;IACpD,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;AACjE,CAAC,CAAC;AAfW,QAAA,uBAAuB,2BAelC"}
1
+ {"version":3,"file":"key-scope.js","sourceRoot":"","sources":["../../../../src/components/static-asset/controller/key-scope.ts"],"names":[],"mappings":";;;AAAA,0DAA4E;AAC5E,sDAAuD;AAEvD,iIAAiI;AAC1H,MAAM,kBAAkB,GAAG,CAAC,IAIlC,EAAwC,EAAE;IACzC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAC1C,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEnD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC;QAC3F,MAAM,IAAA,eAAQ,EAAC;YACb,OAAO,EAAE,IAAI,KAAK,0EAA0E,SAAS,EAAE;SACxG,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,GAAG,OAAO,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;AAC9D,CAAC,CAAC;AAhBW,QAAA,kBAAkB,sBAgB7B;AAEK,MAAM,YAAY,GAAG,CAAC,IAAyC,EAAW,EAAE,CACjF,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AADzD,QAAA,YAAY,gBAC6C;AAEtE,uHAAuH;AAChH,MAAM,gBAAgB,GAAG,CAAC,IAAyC,EAAQ,EAAE;IAClF,IAAI,IAAA,oBAAY,EAAC,IAAI,CAAC,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IAED,MAAM,IAAA,eAAQ,EAAC;QACb,KAAK,EAAE,6BAAa,CAAC,gBAAgB;QACrC,OAAO,EAAE,2BAA2B,IAAI,CAAC,GAAG,EAAE;KAC/C,CAAC,CAAC;AACL,CAAC,CAAC;AATW,QAAA,gBAAgB,oBAS3B;AAEF,mGAAmG;AAC5F,MAAM,uBAAuB,GAAG,CAAC,IAGvC,EAA8C,EAAE;IAC/C,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAEnC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;IACzC,CAAC;IAED,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5C,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;IACpD,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;AACjE,CAAC,CAAC;AAfW,QAAA,uBAAuB,2BAelC","sourcesContent":["import { StorageErrors, type IStorageHelper } from '@venizia/ignis-helpers';\nimport { getError } from '@venizia/ignis-helpers/core';\n\n/** `tenant-a`, `/tenant-a` and `tenant-a/` all become `tenant-a/`: without the slash, `tenant-a` would also own `tenant-ab/`. */\nexport const normalizeKeyPrefix = (opts: {\n keyPrefix: string;\n helper: IStorageHelper;\n scope: string;\n}): { keyPrefix: string; depth: number } => {\n const { keyPrefix, helper, scope } = opts;\n const trimmed = keyPrefix.replace(/^\\/+|\\/+$/g, '');\n const segments = trimmed ? trimmed.split('/') : [];\n\n if (segments.length === 0 || segments.some(segment => !helper.isValidSegment({ segment }))) {\n throw getError({\n message: `[${scope}] controller.keyPrefix must be one or more valid key segments | value: ${keyPrefix}`,\n });\n }\n\n return { keyPrefix: `${trimmed}/`, depth: segments.length };\n};\n\nexport const isKeyInScope = (opts: { key: string; keyPrefix?: string }): boolean =>\n opts.keyPrefix === undefined || opts.key.startsWith(opts.keyPrefix);\n\n/** A key outside the scope answers as a missing object does, so a caller learns nothing about keys it does not own. */\nexport const assertKeyInScope = (opts: { key: string; keyPrefix?: string }): void => {\n if (isKeyInScope(opts)) {\n return;\n }\n\n throw getError({\n error: StorageErrors.OBJECT_NOT_FOUND,\n message: `Object not found | key: ${opts.key}`,\n });\n};\n\n/** A caller prefix wider than the scope is narrowed to it; one wholly outside it lists nothing. */\nexport const resolveScopedListPrefix = (opts: {\n prefix?: string;\n keyPrefix?: string;\n}): { prefix?: string; isOutOfScope: boolean } => {\n const { prefix, keyPrefix } = opts;\n\n if (keyPrefix === undefined) {\n return { prefix, isOutOfScope: false };\n }\n\n if (!prefix || keyPrefix.startsWith(prefix)) {\n return { prefix: keyPrefix, isOutOfScope: false };\n }\n\n return { prefix, isOutOfScope: !prefix.startsWith(keyPrefix) };\n};\n"]}
@@ -34,4 +34,3 @@ export declare const refreshMetaLinkRows: (opts: {
34
34
  count: number;
35
35
  data: AnyType[];
36
36
  }>;
37
- //# sourceMappingURL=meta-link.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"meta-link.js","sourceRoot":"","sources":["../../../../src/components/static-asset/controller/meta-link.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"meta-link.js","sourceRoot":"","sources":["../../../../src/components/static-asset/controller/meta-link.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n IBucketRef,\n IFileStat,\n IObjectRef,\n IStorageHelper,\n IUploadResult,\n} from '@venizia/ignis-helpers';\nimport { resolveValueAsync } from '@venizia/ignis-helpers/common';\nimport type { AnyType } from '@venizia/ignis-helpers/common';\nimport type { TMetaLinkConfig, TStaticAssetStorageType, TUploadQuery } from '../common';\n\n/** What a stat says about one stored object: the columns a refresh rewrites and a new row starts from. */\nconst buildStoredObjectFacts = (opts: {\n helper: IStorageHelper;\n object: IObjectRef;\n link: string;\n fileStat: IFileStat;\n}) => {\n const { helper, object, link, fileStat } = opts;\n\n return {\n link,\n // The column is NOT NULL and a backend may report nothing.\n mimetype: fileStat.metadata?.mimetype ?? helper.getMimeType({ filename: object.key }),\n size: fileStat.size,\n etag: fileStat.etag,\n metadata: fileStat.metadata,\n isSynced: true,\n };\n};\n\n/** The upload result of an object already in storage, so a commit or a recreate writes its row the way an upload does. */\nexport const buildStoredUploadResult = (opts: {\n helper: IStorageHelper;\n bucket: IBucketRef;\n object: IObjectRef;\n link: string;\n fileStat: IFileStat;\n}): IUploadResult => {\n const { helper, bucket, object, link, fileStat } = opts;\n\n return {\n bucket,\n object: {\n key: object.key,\n size: fileStat.size,\n contentType: fileStat.metadata?.mimetype ?? helper.getMimeType({ filename: object.key }),\n },\n link,\n };\n};\n\n/** The MetaLink row for one stored object. Every path that creates a row goes through here, so each lands exactly the row an ordinary upload does. */\nexport const createMetaLinkRow = async (opts: {\n metaLink: TMetaLinkConfig<AnyType>;\n helper: IStorageHelper;\n storage: TStaticAssetStorageType;\n uploadResult: IUploadResult;\n fileStat: IFileStat;\n query: TUploadQuery;\n}): Promise<AnyType> => {\n const { metaLink, helper, storage, uploadResult, fileStat, query } = opts;\n\n if (metaLink.createMetaLink) {\n const created = await metaLink.createMetaLink({ uploadResult, fileStat, query });\n return created.data;\n }\n\n // Resolved per call so an application that swaps the repository is not pinned to the first one.\n const repository = await resolveValueAsync({ value: metaLink.repository });\n const created = await repository.create({\n data: {\n bucketName: uploadResult.bucket.name,\n objectName: uploadResult.object.key,\n ...buildStoredObjectFacts({\n helper,\n object: uploadResult.object,\n link: uploadResult.link,\n fileStat,\n }),\n storageType: storage,\n principalId: query.principalId ? String(query.principalId) : undefined,\n principalType: query.principalType ? String(query.principalType) : undefined,\n variant: query.variant ? String(query.variant) : undefined,\n // Absent leaves the column default rather than writing 0, so a row the caller never\n // ordered is indistinguishable from a legacy one.\n sequence: query.sequence === undefined ? undefined : Number(query.sequence),\n },\n });\n\n return created.data;\n};\n\n/**\n * Rewrites the stored-object facts on every row of the pair. Rows per pair are deliberately not\n * unique, and each keeps its own labels and storage type. A `createMetaLink` hook owns `link` and\n * `metadata`, so with one only the stat columns change; without one, `metadata` is merged per row.\n */\nexport const refreshMetaLinkRows = async (opts: {\n metaLink: TMetaLinkConfig<AnyType>;\n helper: IStorageHelper;\n bucket: IBucketRef;\n object: IObjectRef;\n link: string;\n fileStat: IFileStat;\n}): Promise<{ count: number; data: AnyType[] }> => {\n const { metaLink, helper, bucket, object, link, fileStat } = opts;\n\n const repository = await resolveValueAsync({ value: metaLink.repository });\n const { mimetype, size, etag, isSynced } = buildStoredObjectFacts({\n helper,\n object,\n link,\n fileStat,\n });\n const statColumns = { mimetype, size, etag, isSynced };\n\n const updated = await repository.updateAll({\n data: metaLink.createMetaLink ? statColumns : { ...statColumns, link },\n where: { bucketName: bucket.name, objectName: object.key },\n });\n const rows = updated.data ?? [];\n\n if (metaLink.createMetaLink || !fileStat.metadata) {\n return { count: updated.count, data: rows };\n }\n\n // One UPDATE per row: each merge starts from that row's own keys, which the statement above\n // returned untouched and which no single engine-neutral statement over the pair can express.\n const merged = await Promise.all(\n rows.map(row =>\n repository.updateById({\n id: row.id,\n data: { metadata: { ...row.metadata, ...fileStat.metadata } },\n }),\n ),\n );\n\n return { count: updated.count, data: merged.map(result => result.data) };\n};\n"]}
@@ -15,4 +15,3 @@ export declare const appendDeclaredLengthGuard: (opts: {
15
15
  middleware: TStaticAssetRouteConfig["middleware"];
16
16
  maxBytes: number;
17
17
  }) => NonNullable<TStaticAssetRouteConfig["middleware"]>;
18
- //# sourceMappingURL=route-options.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"route-options.js","sourceRoot":"","sources":["../../../../src/components/static-asset/controller/route-options.ts"],"names":[],"mappings":";;;AAAA,0DAAqD;AACrD,sDAAuD;AAEvD,sCAA4E;AAE5E,wGAAwG;AACjG,MAAM,iBAAiB,GAAG,CAAC,IAEjC,EAA8E,EAAE;IAC/E,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IAClD,OAAO,EAAE,SAAS,EAAE,OAAO,KAAK,KAAK,EAAE,QAAQ,EAAE,CAAC;AACpD,CAAC,CAAC;AALW,QAAA,iBAAiB,qBAK5B;AAEF;;;;GAIG;AACI,MAAM,yBAAyB,GAAG,CAAC,IAGzC,EAAsD,EAAE;IACvD,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAEtC,MAAM,KAAK,GAAsB,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACvD,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,aAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;QAE/E,kHAAkH;QAClH,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,cAAc,GAAG,QAAQ,EAAE,CAAC;YACjE,MAAM,IAAA,eAAQ,EAAC;gBACb,KAAK,EAAE,0BAAiB,CAAC,gBAAgB;gBACzC,OAAO,EAAE,mBAAmB,cAAc,iCAAiC,QAAQ,EAAE;aACtF,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,EAAE,CAAC;IACf,CAAC,CAAC;IAEF,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AAClF,CAAC,CAAC;AAzBW,QAAA,yBAAyB,6BAyBpC"}
1
+ {"version":3,"file":"route-options.js","sourceRoot":"","sources":["../../../../src/components/static-asset/controller/route-options.ts"],"names":[],"mappings":";;;AAAA,0DAAqD;AACrD,sDAAuD;AAEvD,sCAA4E;AAE5E,wGAAwG;AACjG,MAAM,iBAAiB,GAAG,CAAC,IAEjC,EAA8E,EAAE;IAC/E,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IAClD,OAAO,EAAE,SAAS,EAAE,OAAO,KAAK,KAAK,EAAE,QAAQ,EAAE,CAAC;AACpD,CAAC,CAAC;AALW,QAAA,iBAAiB,qBAK5B;AAEF;;;;GAIG;AACI,MAAM,yBAAyB,GAAG,CAAC,IAGzC,EAAsD,EAAE;IACvD,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAEtC,MAAM,KAAK,GAAsB,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACvD,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,aAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;QAE/E,kHAAkH;QAClH,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,cAAc,GAAG,QAAQ,EAAE,CAAC;YACjE,MAAM,IAAA,eAAQ,EAAC;gBACb,KAAK,EAAE,0BAAiB,CAAC,gBAAgB;gBACzC,OAAO,EAAE,mBAAmB,cAAc,iCAAiC,QAAQ,EAAE;aACtF,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,EAAE,CAAC;IACf,CAAC,CAAC;IAEF,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AAClF,CAAC,CAAC;AAzBW,QAAA,yBAAyB,6BAyBpC","sourcesContent":["import { HTTP } from '@venizia/ignis-helpers/common';\nimport { getError } from '@venizia/ignis-helpers/core';\nimport type { MiddlewareHandler } from 'hono';\nimport { StaticAssetErrors, type TStaticAssetRouteConfig } from '../common';\n\n/** Splits the `enabled` switch off the route config: it is this component's field, never a Hono one. */\nexport const readRouteOverride = (opts: {\n route?: TStaticAssetRouteConfig;\n}): { isEnabled: boolean; override: Omit<TStaticAssetRouteConfig, 'enabled'> } => {\n const { enabled, ...override } = opts.route ?? {};\n return { isEnabled: enabled !== false, override };\n};\n\n/**\n * The route's body validator reads the whole multipart body, so a declared length checked in the\n * handler arrives too late to save any memory. Appended after the application's own middleware, so\n * a check of its own still answers first.\n */\nexport const appendDeclaredLengthGuard = (opts: {\n middleware: TStaticAssetRouteConfig['middleware'];\n maxBytes: number;\n}): NonNullable<TStaticAssetRouteConfig['middleware']> => {\n const { middleware, maxBytes } = opts;\n\n const guard: MiddlewareHandler = async (context, next) => {\n const declaredLength = Number(context.req.header(HTTP.Headers.CONTENT_LENGTH));\n\n // Not authoritative: a multipart envelope is larger than its files, so the per-file check in the handler decides.\n if (Number.isFinite(declaredLength) && declaredLength > maxBytes) {\n throw getError({\n error: StaticAssetErrors.UPLOAD_TOO_LARGE,\n message: `Request body of ${declaredLength} bytes exceeds the maximum of ${maxBytes}`,\n });\n }\n\n await next();\n };\n\n if (!middleware) {\n return [guard];\n }\n\n return Array.isArray(middleware) ? [...middleware, guard] : [middleware, guard];\n};\n"]}
@@ -4,4 +4,3 @@ export * from './controller';
4
4
  export * from './models';
5
5
  export * from './repositories';
6
6
  export * from './ingest';
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/static-asset/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,8CAA4B;AAC5B,+CAA6B;AAC7B,2CAAyB;AACzB,iDAA+B;AAC/B,2CAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/static-asset/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,8CAA4B;AAC5B,+CAA6B;AAC7B,2CAAyB;AACzB,iDAA+B;AAC/B,2CAAyB","sourcesContent":["export * from './common';\nexport * from './component';\nexport * from './controller';\nexport * from './models';\nexport * from './repositories';\nexport * from './ingest';\n"]}
@@ -55,4 +55,3 @@ export declare class AssetIngest {
55
55
  */
56
56
  static fromUrl(opts: IIngestFromUrlOptions): Promise<IIngestFromUrlResult>;
57
57
  }
58
- //# sourceMappingURL=ingest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ingest.js","sourceRoot":"","sources":["../../../src/components/static-asset/ingest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ingest.js","sourceRoot":"","sources":["../../../src/components/static-asset/ingest.ts"],"names":[],"mappings":"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","sourcesContent":["import { getError } from '@venizia/ignis-helpers/core';\nimport {\n UrlIngest,\n UrlSafetyDefaults,\n UrlSafetyErrors,\n type IBucketRef,\n type IObjectRef,\n type IFileStat,\n type IStorageHelper,\n type IUploadResult,\n type IUrlSafetyPolicy,\n} from '@venizia/ignis-helpers';\n\n/**\n * What was stored, and what the backend reports about it. The stat is returned because `getStat`\n * already ran to size the result - a caller writing its own row would otherwise pay for it twice.\n *\n * This does NOT write a meta link. The columns an application attaches to an object - a principal,\n * a variant - come from its own domain, not from the object, so the row stays the caller's.\n */\nexport interface IIngestFromUrlResult {\n upload: IUploadResult;\n stat: IFileStat;\n}\n\n/** Where a fetched object lands, and what it is attached to. */\nexport interface IIngestFromUrlOptions {\n helper: IStorageHelper;\n url: string;\n bucket: IBucketRef;\n\n /**\n * Decides the stored key.\n *\n * **Absent, the key comes from the remote url's last path segment - which on an untrusted url is\n * named by whoever supplied it.** Pass `resolveKey` whenever the url is not your own; the\n * validation below bounds what it can do, but it does not make the remote name yours.\n */\n resolveKey?: (opts: { url: URL; contentType: string }) => string;\n folderPath?: string;\n\n /** Absent leaves IGNIS's own default: https only, no private address, 3 hops, 10s, 10 MB. */\n policy?: IUrlSafetyPolicy;\n\n /** Folder nesting the key may carry. Absent uses `BaseStorageHelper.DEFAULT_MAX_FOLDER_DEPTH`. */\n maxFolderDepth?: number;\n\n /**\n * Where the object is served from. **Required**: an absent hook used to yield an empty link, which\n * is exactly the value that satisfies a NOT NULL column and points nowhere.\n */\n normalizeLinkFn: (opts: { bucket: IBucketRef; object: IObjectRef }) => string;\n}\n\nconst readKeyFromUrl = (opts: { url: URL; folderPath?: string }): string => {\n const { url, folderPath } = opts;\n const lastSegment = url.pathname.split('/').filter(Boolean).pop() ?? 'object';\n const normalized = lastSegment.toLowerCase().replace(/ /g, '_');\n\n return folderPath ? `${folderPath}/${normalized}` : normalized;\n};\n\n/** Storing an object that came from somewhere else. */\nexport class AssetIngest {\n /**\n * Fetches an untrusted url and stores what comes back, without the bytes passing through this\n * process: the guarded body is capped and handed to `writeStream` as a stream.\n *\n * The url is guarded by `UrlIngest.fetchGuarded` - scheme allow-list, every resolved address\n * checked, redirects walked by hand with a per-hop re-check, and a timeout. A rebinding window\n * remains open between the check and the connect; see `UrlIngest.assertPublicHost`.\n *\n * The served content type is decided from the stored KEY, never from what the remote host\n * claimed - the same rule the asset routes apply, and for the same reason.\n */\n static async fromUrl(opts: IIngestFromUrlOptions): Promise<IIngestFromUrlResult> {\n const { helper, url, bucket, folderPath, policy, resolveKey, normalizeLinkFn } = opts;\n\n const response = await UrlIngest.fetchGuarded({ url, policy });\n const remoteType = response.headers.get('content-type')?.split(';')[0]?.trim() ?? '';\n const parsed = new URL(url);\n\n const key = resolveKey\n ? resolveKey({ url: parsed, contentType: remoteType })\n : readKeyFromUrl({ url: parsed, folderPath });\n\n // The helper's own default, not an unbounded one: an object arriving through ingest must obey\n // the same depth rule as one arriving through the upload route.\n if (!helper.isValidObjectKey({ object: { key }, maxDepth: opts.maxFolderDepth })) {\n await response.body?.cancel();\n throw getError({ message: `[AssetIngest.fromUrl] Invalid object key | key: ${key}` });\n }\n\n // Refused BEFORE the write starts, so a body that declares its size never opens a multipart\n // upload at all. A body that lies or omits the header is caught mid-flight by `capStream`, and\n // Bun's client answers that with `AbortMultipartUpload` - measured against a recording endpoint,\n // not assumed - so no orphaned parts are left behind either way.\n const declaredLength = Number(response.headers.get('content-length') ?? 0);\n const maxBytes = policy?.maxBytes ?? UrlSafetyDefaults.MAX_BYTES;\n\n if (declaredLength > maxBytes) {\n await response.body?.cancel();\n throw getError({\n error: UrlSafetyErrors.URL_REFUSED,\n message: `[AssetIngest.fromUrl] Body exceeds the cap | declared: ${declaredLength} | max: ${maxBytes}`,\n });\n }\n\n if (!response.body) {\n throw getError({ message: `[AssetIngest.fromUrl] Response carried no body | url: ${url}` });\n }\n\n const object: IObjectRef = { key };\n const contentType = helper.getMimeType({ filename: key });\n\n await helper.writeStream({\n bucket,\n object,\n source: UrlIngest.capStream({ source: response.body, policy }),\n contentType,\n maxFolderDepth: opts.maxFolderDepth,\n });\n\n const stat = await helper.getStat({ bucket, object });\n const link = normalizeLinkFn({ bucket, object });\n\n if (!link) {\n throw getError({\n message: `[AssetIngest.fromUrl] normalizeLinkFn returned an empty link | key: ${key}`,\n });\n }\n\n return {\n upload: {\n bucket: { name: bucket.name },\n object: { key, size: stat.size, contentType },\n link,\n },\n stat,\n };\n }\n}\n"]}
@@ -573,4 +573,3 @@ export type TMetaLink = TTableObject<TMetaLinkSchema>;
573
573
  export type TMetaLinkCompatibleSchema = TTableSchemaWithId & {
574
574
  $inferSelect: TMetaLink;
575
575
  };
576
- //# sourceMappingURL=base.model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.model.js","sourceRoot":"","sources":["../../../../src/components/static-asset/models/base.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA,8CAAwC;AACxC,iEAM4C;AAC5C,iDAAoF;AAEpF,mNAAmN;AAE5M,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,+BAAqD;aAC1E,WAAM,GAAG,IAAA,iBAAO,EAC9B,UAAU,EACV;QACE,GAAG,IAAA,+BAAoB,EAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC;QACvD,GAAG,IAAA,+BAAoB,GAAE;QACzB,UAAU,EAAE,IAAA,cAAI,EAAC,aAAa,CAAC,CAAC,OAAO,EAAE;QACzC,UAAU,EAAE,IAAA,cAAI,EAAC,aAAa,CAAC,CAAC,OAAO,EAAE;QACzC,IAAI,EAAE,IAAA,cAAI,GAAE,CAAC,OAAO,EAAE;QACtB,QAAQ,EAAE,IAAA,cAAI,GAAE,CAAC,OAAO,EAAE;QAC1B,IAAI,EAAE,IAAA,iBAAO,GAAE,CAAC,OAAO,EAAE;QACzB,IAAI,EAAE,IAAA,cAAI,GAAE;QACZ,QAAQ,EAAE,IAAA,eAAK,GAAE,CAAC,KAAK,EAAuB;QAC9C,WAAW,EAAE,IAAA,cAAI,EAAC,cAAc,CAAC,CAAC,OAAO,EAAE;QAC3C,QAAQ,EAAE,IAAA,iBAAO,EAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;QAEvD,+IAA+I;QAC/I,OAAO,EAAE,IAAA,cAAI,GAAE;QAEf,qJAAqJ;QACrJ,QAAQ,EAAE,IAAA,iBAAO,GAAE,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAExC,uKAAuK;QACvK,aAAa,EAAE,IAAA,cAAI,EAAC,gBAAgB,CAAC;QACrC,WAAW,EAAE,IAAA,cAAI,EAAC,cAAc,CAAC;KAClC,EACD,GAAG,CAAC,EAAE,CAAC;QACL,IAAA,eAAK,EAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC;QACnD,IAAA,eAAK,EAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC;QACnD,IAAA,eAAK,EAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC;QACrD,IAAA,eAAK,EAAC,uBAAuB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC/C,8FAA8F;QAC9F,IAAA,eAAK,EAAC,iCAAiC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,QAAQ,CAAC;KAC9F,CACF,AAjCqB,CAiCpB;aAEc,cAAS,GAAG,GAAG,EAAE,CAAC,EAAE,AAAX,CAAY;;AApC1B,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,gBAAK,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;GAChC,iBAAiB,CAqC7B"}
1
+ {"version":3,"file":"base.model.js","sourceRoot":"","sources":["../../../../src/components/static-asset/models/base.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA,8CAAwC;AACxC,iEAM4C;AAC5C,iDAAoF;AAEpF,mNAAmN;AAE5M,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,+BAAqD;aAC1E,WAAM,GAAG,IAAA,iBAAO,EAC9B,UAAU,EACV;QACE,GAAG,IAAA,+BAAoB,EAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC;QACvD,GAAG,IAAA,+BAAoB,GAAE;QACzB,UAAU,EAAE,IAAA,cAAI,EAAC,aAAa,CAAC,CAAC,OAAO,EAAE;QACzC,UAAU,EAAE,IAAA,cAAI,EAAC,aAAa,CAAC,CAAC,OAAO,EAAE;QACzC,IAAI,EAAE,IAAA,cAAI,GAAE,CAAC,OAAO,EAAE;QACtB,QAAQ,EAAE,IAAA,cAAI,GAAE,CAAC,OAAO,EAAE;QAC1B,IAAI,EAAE,IAAA,iBAAO,GAAE,CAAC,OAAO,EAAE;QACzB,IAAI,EAAE,IAAA,cAAI,GAAE;QACZ,QAAQ,EAAE,IAAA,eAAK,GAAE,CAAC,KAAK,EAAuB;QAC9C,WAAW,EAAE,IAAA,cAAI,EAAC,cAAc,CAAC,CAAC,OAAO,EAAE;QAC3C,QAAQ,EAAE,IAAA,iBAAO,EAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;QAEvD,+IAA+I;QAC/I,OAAO,EAAE,IAAA,cAAI,GAAE;QAEf,qJAAqJ;QACrJ,QAAQ,EAAE,IAAA,iBAAO,GAAE,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAExC,uKAAuK;QACvK,aAAa,EAAE,IAAA,cAAI,EAAC,gBAAgB,CAAC;QACrC,WAAW,EAAE,IAAA,cAAI,EAAC,cAAc,CAAC;KAClC,EACD,GAAG,CAAC,EAAE,CAAC;QACL,IAAA,eAAK,EAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC;QACnD,IAAA,eAAK,EAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC;QACnD,IAAA,eAAK,EAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC;QACrD,IAAA,eAAK,EAAC,uBAAuB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC/C,8FAA8F;QAC9F,IAAA,eAAK,EAAC,iCAAiC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,QAAQ,CAAC;KAC9F,CACF,AAjCqB,CAiCpB;aAEc,cAAS,GAAG,GAAG,EAAE,CAAC,EAAE,AAAX,CAAY;;AApC1B,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,gBAAK,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;GAChC,iBAAiB,CAqC7B","sourcesContent":["import { model } from '@/base/metadata';\nimport {\n BaseRelationalEntity,\n generateIdColumnDefs,\n generateTzColumnDefs,\n type TTableObject,\n type TTableSchemaWithId,\n} from '@venizia/ignis-connectors/postgres';\nimport { boolean, index, integer, jsonb, pgTable, text } from 'drizzle-orm/pg-core';\n\n/** One row per (object, owner) pairing, NOT per object: one product image attached to the product and to each variant is the common case, so `(bucketName, objectName)` is indexed and deliberately NOT unique. */\n@model({ type: 'entity', skipMigrate: true })\nexport class BaseMetaLinkModel extends BaseRelationalEntity<typeof BaseMetaLinkModel.schema> {\n static override schema = pgTable(\n 'MetaLink',\n {\n ...generateIdColumnDefs({ id: { dataType: 'string' } }),\n ...generateTzColumnDefs(),\n bucketName: text('bucket_name').notNull(),\n objectName: text('object_name').notNull(),\n link: text().notNull(),\n mimetype: text().notNull(),\n size: integer().notNull(),\n etag: text(),\n metadata: jsonb().$type<Record<string, any>>(),\n storageType: text('storage_type').notNull(),\n isSynced: boolean('is_synced').notNull().default(false),\n\n /** An opaque label the caller chooses - a size, a role, a rendition name. The component stores and returns it and reads no meaning into it. */\n variant: text(),\n\n /** Display order within ONE principal. Defaults to 0 so legacy rows tie and `ORDER BY sequence, createdAt` reproduces the order they already had. */\n sequence: integer().notNull().default(0),\n\n /** A polymorphic owner: the type names the table, the id the row. Both nullable - an object may belong to nothing yet, which is how `recreate-metalink` writes one. */\n principalType: text('principal_type'),\n principalId: text('principal_id'),\n },\n def => [\n index(`IDX_MetaLink_bucketName`).on(def.bucketName),\n index(`IDX_MetaLink_objectName`).on(def.objectName),\n index(`IDX_MetaLink_storageType`).on(def.storageType),\n index(`IDX_MetaLink_isSynced`).on(def.isSynced),\n // Ordering runs inside a principal filter, so filter columns lead and the sort column trails.\n index(`IDX_MetaLink_principal_sequence`).on(def.principalType, def.principalId, def.sequence),\n ],\n );\n\n static override relations = () => [];\n}\n\nexport type TMetaLinkSchema = typeof BaseMetaLinkModel.schema;\nexport type TMetaLink = TTableObject<TMetaLinkSchema>;\n\n/** Any table whose row carries the MetaLink fields. The component reads and writes the ROW, so the table is free to carry another name or to live in another Postgres schema. */\nexport type TMetaLinkCompatibleSchema = TTableSchemaWithId & { $inferSelect: TMetaLink };\n"]}