stratal 0.0.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 (867) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +50 -0
  3. package/dist/application.d.ts +118 -0
  4. package/dist/application.d.ts.map +1 -0
  5. package/dist/application.js +247 -0
  6. package/dist/application.js.map +1 -0
  7. package/dist/cache/cache.module.d.ts +14 -0
  8. package/dist/cache/cache.module.d.ts.map +1 -0
  9. package/dist/cache/cache.module.js +32 -0
  10. package/dist/cache/cache.module.js.map +1 -0
  11. package/dist/cache/cache.tokens.d.ts +5 -0
  12. package/dist/cache/cache.tokens.d.ts.map +1 -0
  13. package/dist/cache/cache.tokens.js +4 -0
  14. package/dist/cache/cache.tokens.js.map +1 -0
  15. package/dist/cache/errors/cache-delete.error.d.ts +11 -0
  16. package/dist/cache/errors/cache-delete.error.d.ts.map +1 -0
  17. package/dist/cache/errors/cache-delete.error.js +14 -0
  18. package/dist/cache/errors/cache-delete.error.js.map +1 -0
  19. package/dist/cache/errors/cache-get.error.d.ts +11 -0
  20. package/dist/cache/errors/cache-get.error.d.ts.map +1 -0
  21. package/dist/cache/errors/cache-get.error.js +14 -0
  22. package/dist/cache/errors/cache-get.error.js.map +1 -0
  23. package/dist/cache/errors/cache-list.error.d.ts +10 -0
  24. package/dist/cache/errors/cache-list.error.d.ts.map +1 -0
  25. package/dist/cache/errors/cache-list.error.js +13 -0
  26. package/dist/cache/errors/cache-list.error.js.map +1 -0
  27. package/dist/cache/errors/cache-put.error.d.ts +11 -0
  28. package/dist/cache/errors/cache-put.error.d.ts.map +1 -0
  29. package/dist/cache/errors/cache-put.error.js +14 -0
  30. package/dist/cache/errors/cache-put.error.js.map +1 -0
  31. package/dist/cache/errors/index.d.ts +5 -0
  32. package/dist/cache/errors/index.d.ts.map +1 -0
  33. package/dist/cache/errors/index.js +5 -0
  34. package/dist/cache/errors/index.js.map +1 -0
  35. package/dist/cache/index.d.ts +5 -0
  36. package/dist/cache/index.d.ts.map +1 -0
  37. package/dist/cache/index.js +5 -0
  38. package/dist/cache/index.js.map +1 -0
  39. package/dist/cache/services/cache.service.d.ts +152 -0
  40. package/dist/cache/services/cache.service.d.ts.map +1 -0
  41. package/dist/cache/services/cache.service.js +223 -0
  42. package/dist/cache/services/cache.service.js.map +1 -0
  43. package/dist/cache/services/index.d.ts +2 -0
  44. package/dist/cache/services/index.d.ts.map +1 -0
  45. package/dist/cache/services/index.js +2 -0
  46. package/dist/cache/services/index.js.map +1 -0
  47. package/dist/config/config.module.d.ts +79 -0
  48. package/dist/config/config.module.d.ts.map +1 -0
  49. package/dist/config/config.module.js +120 -0
  50. package/dist/config/config.module.js.map +1 -0
  51. package/dist/config/config.tokens.d.ts +4 -0
  52. package/dist/config/config.tokens.d.ts.map +1 -0
  53. package/dist/config/config.tokens.js +4 -0
  54. package/dist/config/config.tokens.js.map +1 -0
  55. package/dist/config/config.types.d.ts +68 -0
  56. package/dist/config/config.types.d.ts.map +1 -0
  57. package/dist/config/config.types.js +9 -0
  58. package/dist/config/config.types.js.map +1 -0
  59. package/dist/config/errors/config-not-initialized.error.d.ts +12 -0
  60. package/dist/config/errors/config-not-initialized.error.d.ts.map +1 -0
  61. package/dist/config/errors/config-not-initialized.error.js +15 -0
  62. package/dist/config/errors/config-not-initialized.error.js.map +1 -0
  63. package/dist/config/errors/index.d.ts +2 -0
  64. package/dist/config/errors/index.d.ts.map +1 -0
  65. package/dist/config/errors/index.js +2 -0
  66. package/dist/config/errors/index.js.map +1 -0
  67. package/dist/config/index.d.ts +7 -0
  68. package/dist/config/index.d.ts.map +1 -0
  69. package/dist/config/index.js +9 -0
  70. package/dist/config/index.js.map +1 -0
  71. package/dist/config/register-as.d.ts +62 -0
  72. package/dist/config/register-as.d.ts.map +1 -0
  73. package/dist/config/register-as.js +48 -0
  74. package/dist/config/register-as.js.map +1 -0
  75. package/dist/config/services/config.service.d.ts +58 -0
  76. package/dist/config/services/config.service.d.ts.map +1 -0
  77. package/dist/config/services/config.service.js +123 -0
  78. package/dist/config/services/config.service.js.map +1 -0
  79. package/dist/cron/cron-job.d.ts +55 -0
  80. package/dist/cron/cron-job.d.ts.map +1 -0
  81. package/dist/cron/cron-job.js +2 -0
  82. package/dist/cron/cron-job.js.map +1 -0
  83. package/dist/cron/cron-manager.d.ts +60 -0
  84. package/dist/cron/cron-manager.d.ts.map +1 -0
  85. package/dist/cron/cron-manager.js +120 -0
  86. package/dist/cron/cron-manager.js.map +1 -0
  87. package/dist/cron/errors/cron-execution.error.d.ts +10 -0
  88. package/dist/cron/errors/cron-execution.error.d.ts.map +1 -0
  89. package/dist/cron/errors/cron-execution.error.js +17 -0
  90. package/dist/cron/errors/cron-execution.error.js.map +1 -0
  91. package/dist/cron/index.d.ts +4 -0
  92. package/dist/cron/index.d.ts.map +1 -0
  93. package/dist/cron/index.js +3 -0
  94. package/dist/cron/index.js.map +1 -0
  95. package/dist/di/conditional-binding-builder.d.ts +93 -0
  96. package/dist/di/conditional-binding-builder.d.ts.map +1 -0
  97. package/dist/di/conditional-binding-builder.js +115 -0
  98. package/dist/di/conditional-binding-builder.js.map +1 -0
  99. package/dist/di/container.d.ts +399 -0
  100. package/dist/di/container.d.ts.map +1 -0
  101. package/dist/di/container.js +466 -0
  102. package/dist/di/container.js.map +1 -0
  103. package/dist/di/decorators/inject-param.decorator.d.ts +67 -0
  104. package/dist/di/decorators/inject-param.decorator.d.ts.map +1 -0
  105. package/dist/di/decorators/inject-param.decorator.js +53 -0
  106. package/dist/di/decorators/inject-param.decorator.js.map +1 -0
  107. package/dist/di/decorators.d.ts +57 -0
  108. package/dist/di/decorators.d.ts.map +1 -0
  109. package/dist/di/decorators.js +74 -0
  110. package/dist/di/decorators.js.map +1 -0
  111. package/dist/di/errors/conditional-binding-fallback.error.d.ts +16 -0
  112. package/dist/di/errors/conditional-binding-fallback.error.d.ts.map +1 -0
  113. package/dist/di/errors/conditional-binding-fallback.error.js +19 -0
  114. package/dist/di/errors/conditional-binding-fallback.error.js.map +1 -0
  115. package/dist/di/errors/index.d.ts +3 -0
  116. package/dist/di/errors/index.d.ts.map +1 -0
  117. package/dist/di/errors/index.js +3 -0
  118. package/dist/di/errors/index.js.map +1 -0
  119. package/dist/di/errors/request-scope-operation-not-allowed.error.d.ts +12 -0
  120. package/dist/di/errors/request-scope-operation-not-allowed.error.d.ts.map +1 -0
  121. package/dist/di/errors/request-scope-operation-not-allowed.error.js +15 -0
  122. package/dist/di/errors/request-scope-operation-not-allowed.error.js.map +1 -0
  123. package/dist/di/index.d.ts +13 -0
  124. package/dist/di/index.d.ts.map +1 -0
  125. package/dist/di/index.js +11 -0
  126. package/dist/di/index.js.map +1 -0
  127. package/dist/di/request-context-store.d.ts +122 -0
  128. package/dist/di/request-context-store.d.ts.map +1 -0
  129. package/dist/di/request-context-store.js +135 -0
  130. package/dist/di/request-context-store.js.map +1 -0
  131. package/dist/di/tokens.d.ts +25 -0
  132. package/dist/di/tokens.d.ts.map +1 -0
  133. package/dist/di/tokens.js +27 -0
  134. package/dist/di/tokens.js.map +1 -0
  135. package/dist/di/types.d.ts +56 -0
  136. package/dist/di/types.d.ts.map +1 -0
  137. package/dist/di/types.js +34 -0
  138. package/dist/di/types.js.map +1 -0
  139. package/dist/email/consumers/email.consumer.d.ts +43 -0
  140. package/dist/email/consumers/email.consumer.d.ts.map +1 -0
  141. package/dist/email/consumers/email.consumer.js +133 -0
  142. package/dist/email/consumers/email.consumer.js.map +1 -0
  143. package/dist/email/consumers/index.d.ts +2 -0
  144. package/dist/email/consumers/index.d.ts.map +1 -0
  145. package/dist/email/consumers/index.js +2 -0
  146. package/dist/email/consumers/index.js.map +1 -0
  147. package/dist/email/contracts/email-attachment.d.ts +61 -0
  148. package/dist/email/contracts/email-attachment.d.ts.map +1 -0
  149. package/dist/email/contracts/email-attachment.js +58 -0
  150. package/dist/email/contracts/email-attachment.js.map +1 -0
  151. package/dist/email/contracts/email-message.contract.d.ts +58 -0
  152. package/dist/email/contracts/email-message.contract.d.ts.map +1 -0
  153. package/dist/email/contracts/email-message.contract.js +62 -0
  154. package/dist/email/contracts/email-message.contract.js.map +1 -0
  155. package/dist/email/contracts/index.d.ts +4 -0
  156. package/dist/email/contracts/index.d.ts.map +1 -0
  157. package/dist/email/contracts/index.js +4 -0
  158. package/dist/email/contracts/index.js.map +1 -0
  159. package/dist/email/contracts/send-email.input.d.ts +72 -0
  160. package/dist/email/contracts/send-email.input.d.ts.map +1 -0
  161. package/dist/email/contracts/send-email.input.js +28 -0
  162. package/dist/email/contracts/send-email.input.js.map +1 -0
  163. package/dist/email/email.module.d.ts +122 -0
  164. package/dist/email/email.module.d.ts.map +1 -0
  165. package/dist/email/email.module.js +129 -0
  166. package/dist/email/email.module.js.map +1 -0
  167. package/dist/email/email.tokens.d.ts +33 -0
  168. package/dist/email/email.tokens.d.ts.map +1 -0
  169. package/dist/email/email.tokens.js +33 -0
  170. package/dist/email/email.tokens.js.map +1 -0
  171. package/dist/email/errors/email-provider-not-supported.error.d.ts +13 -0
  172. package/dist/email/errors/email-provider-not-supported.error.d.ts.map +1 -0
  173. package/dist/email/errors/email-provider-not-supported.error.js +15 -0
  174. package/dist/email/errors/email-provider-not-supported.error.js.map +1 -0
  175. package/dist/email/errors/email-resend-api-failed.error.d.ts +13 -0
  176. package/dist/email/errors/email-resend-api-failed.error.d.ts.map +1 -0
  177. package/dist/email/errors/email-resend-api-failed.error.js +15 -0
  178. package/dist/email/errors/email-resend-api-failed.error.js.map +1 -0
  179. package/dist/email/errors/email-smtp-connection-failed.error.d.ts +13 -0
  180. package/dist/email/errors/email-smtp-connection-failed.error.d.ts.map +1 -0
  181. package/dist/email/errors/email-smtp-connection-failed.error.js +15 -0
  182. package/dist/email/errors/email-smtp-connection-failed.error.js.map +1 -0
  183. package/dist/email/errors/index.d.ts +7 -0
  184. package/dist/email/errors/index.d.ts.map +1 -0
  185. package/dist/email/errors/index.js +7 -0
  186. package/dist/email/errors/index.js.map +1 -0
  187. package/dist/email/errors/resend-api-key-missing.error.d.ts +13 -0
  188. package/dist/email/errors/resend-api-key-missing.error.d.ts.map +1 -0
  189. package/dist/email/errors/resend-api-key-missing.error.js +15 -0
  190. package/dist/email/errors/resend-api-key-missing.error.js.map +1 -0
  191. package/dist/email/errors/smtp-configuration-missing.error.d.ts +13 -0
  192. package/dist/email/errors/smtp-configuration-missing.error.d.ts.map +1 -0
  193. package/dist/email/errors/smtp-configuration-missing.error.js +15 -0
  194. package/dist/email/errors/smtp-configuration-missing.error.js.map +1 -0
  195. package/dist/email/errors/smtp-host-missing.error.d.ts +13 -0
  196. package/dist/email/errors/smtp-host-missing.error.d.ts.map +1 -0
  197. package/dist/email/errors/smtp-host-missing.error.js +15 -0
  198. package/dist/email/errors/smtp-host-missing.error.js.map +1 -0
  199. package/dist/email/index.d.ts +6 -0
  200. package/dist/email/index.d.ts.map +1 -0
  201. package/dist/email/index.js +8 -0
  202. package/dist/email/index.js.map +1 -0
  203. package/dist/email/providers/base-email.provider.d.ts +22 -0
  204. package/dist/email/providers/base-email.provider.d.ts.map +1 -0
  205. package/dist/email/providers/base-email.provider.js +43 -0
  206. package/dist/email/providers/base-email.provider.js.map +1 -0
  207. package/dist/email/providers/email-provider.interface.d.ts +66 -0
  208. package/dist/email/providers/email-provider.interface.d.ts.map +1 -0
  209. package/dist/email/providers/email-provider.interface.js +2 -0
  210. package/dist/email/providers/email-provider.interface.js.map +1 -0
  211. package/dist/email/providers/index.d.ts +5 -0
  212. package/dist/email/providers/index.d.ts.map +1 -0
  213. package/dist/email/providers/index.js +5 -0
  214. package/dist/email/providers/index.js.map +1 -0
  215. package/dist/email/providers/resend.provider.d.ts +26 -0
  216. package/dist/email/providers/resend.provider.d.ts.map +1 -0
  217. package/dist/email/providers/resend.provider.js +84 -0
  218. package/dist/email/providers/resend.provider.js.map +1 -0
  219. package/dist/email/providers/smtp.provider.d.ts +25 -0
  220. package/dist/email/providers/smtp.provider.d.ts.map +1 -0
  221. package/dist/email/providers/smtp.provider.js +86 -0
  222. package/dist/email/providers/smtp.provider.js.map +1 -0
  223. package/dist/email/services/email-provider-factory.d.ts +24 -0
  224. package/dist/email/services/email-provider-factory.d.ts.map +1 -0
  225. package/dist/email/services/email-provider-factory.js +59 -0
  226. package/dist/email/services/email-provider-factory.js.map +1 -0
  227. package/dist/email/services/email.service.d.ts +51 -0
  228. package/dist/email/services/email.service.d.ts.map +1 -0
  229. package/dist/email/services/email.service.js +75 -0
  230. package/dist/email/services/email.service.js.map +1 -0
  231. package/dist/email/services/index.d.ts +3 -0
  232. package/dist/email/services/index.d.ts.map +1 -0
  233. package/dist/email/services/index.js +3 -0
  234. package/dist/email/services/index.js.map +1 -0
  235. package/dist/env.d.ts +21 -0
  236. package/dist/env.d.ts.map +1 -0
  237. package/dist/env.js +2 -0
  238. package/dist/env.js.map +1 -0
  239. package/dist/errors/application-error.d.ts +80 -0
  240. package/dist/errors/application-error.d.ts.map +1 -0
  241. package/dist/errors/application-error.js +118 -0
  242. package/dist/errors/application-error.js.map +1 -0
  243. package/dist/errors/error-codes.d.ts +198 -0
  244. package/dist/errors/error-codes.d.ts.map +1 -0
  245. package/dist/errors/error-codes.js +180 -0
  246. package/dist/errors/error-codes.js.map +1 -0
  247. package/dist/errors/get-http-status.d.ts +12 -0
  248. package/dist/errors/get-http-status.d.ts.map +1 -0
  249. package/dist/errors/get-http-status.js +62 -0
  250. package/dist/errors/get-http-status.js.map +1 -0
  251. package/dist/errors/index.d.ts +5 -0
  252. package/dist/errors/index.d.ts.map +1 -0
  253. package/dist/errors/index.js +5 -0
  254. package/dist/errors/index.js.map +1 -0
  255. package/dist/errors/is-application-error.d.ts +9 -0
  256. package/dist/errors/is-application-error.d.ts.map +1 -0
  257. package/dist/errors/is-application-error.js +11 -0
  258. package/dist/errors/is-application-error.js.map +1 -0
  259. package/dist/guards/guard-execution.service.d.ts +37 -0
  260. package/dist/guards/guard-execution.service.d.ts.map +1 -0
  261. package/dist/guards/guard-execution.service.js +74 -0
  262. package/dist/guards/guard-execution.service.js.map +1 -0
  263. package/dist/guards/index.d.ts +12 -0
  264. package/dist/guards/index.d.ts.map +1 -0
  265. package/dist/guards/index.js +12 -0
  266. package/dist/guards/index.js.map +1 -0
  267. package/dist/guards/types.d.ts +60 -0
  268. package/dist/guards/types.d.ts.map +1 -0
  269. package/dist/guards/types.js +5 -0
  270. package/dist/guards/types.js.map +1 -0
  271. package/dist/guards/use-guards.decorator.d.ts +73 -0
  272. package/dist/guards/use-guards.decorator.d.ts.map +1 -0
  273. package/dist/guards/use-guards.decorator.js +89 -0
  274. package/dist/guards/use-guards.decorator.js.map +1 -0
  275. package/dist/i18n/errors/index.d.ts +6 -0
  276. package/dist/i18n/errors/index.d.ts.map +1 -0
  277. package/dist/i18n/errors/index.js +6 -0
  278. package/dist/i18n/errors/index.js.map +1 -0
  279. package/dist/i18n/errors/locale-not-supported.error.d.ts +12 -0
  280. package/dist/i18n/errors/locale-not-supported.error.d.ts.map +1 -0
  281. package/dist/i18n/errors/locale-not-supported.error.js +15 -0
  282. package/dist/i18n/errors/locale-not-supported.error.js.map +1 -0
  283. package/dist/i18n/errors/translation-missing.error.d.ts +12 -0
  284. package/dist/i18n/errors/translation-missing.error.d.ts.map +1 -0
  285. package/dist/i18n/errors/translation-missing.error.js +15 -0
  286. package/dist/i18n/errors/translation-missing.error.js.map +1 -0
  287. package/dist/i18n/i18n.module.d.ts +60 -0
  288. package/dist/i18n/i18n.module.d.ts.map +1 -0
  289. package/dist/i18n/i18n.module.js +103 -0
  290. package/dist/i18n/i18n.module.js.map +1 -0
  291. package/dist/i18n/i18n.options.d.ts +60 -0
  292. package/dist/i18n/i18n.options.d.ts.map +1 -0
  293. package/dist/i18n/i18n.options.js +18 -0
  294. package/dist/i18n/i18n.options.js.map +1 -0
  295. package/dist/i18n/i18n.tokens.d.ts +13 -0
  296. package/dist/i18n/i18n.tokens.d.ts.map +1 -0
  297. package/dist/i18n/i18n.tokens.js +13 -0
  298. package/dist/i18n/i18n.tokens.js.map +1 -0
  299. package/dist/i18n/i18n.types.d.ts +78 -0
  300. package/dist/i18n/i18n.types.d.ts.map +1 -0
  301. package/dist/i18n/i18n.types.js +8 -0
  302. package/dist/i18n/i18n.types.js.map +1 -0
  303. package/dist/i18n/index.d.ts +12 -0
  304. package/dist/i18n/index.d.ts.map +1 -0
  305. package/dist/i18n/index.js +12 -0
  306. package/dist/i18n/index.js.map +1 -0
  307. package/dist/i18n/messages/en/common.d.ts +23 -0
  308. package/dist/i18n/messages/en/common.d.ts.map +1 -0
  309. package/dist/i18n/messages/en/common.js +23 -0
  310. package/dist/i18n/messages/en/common.js.map +1 -0
  311. package/dist/i18n/messages/en/emails.d.ts +12 -0
  312. package/dist/i18n/messages/en/emails.d.ts.map +1 -0
  313. package/dist/i18n/messages/en/emails.js +12 -0
  314. package/dist/i18n/messages/en/emails.js.map +1 -0
  315. package/dist/i18n/messages/en/errors.d.ts +115 -0
  316. package/dist/i18n/messages/en/errors.d.ts.map +1 -0
  317. package/dist/i18n/messages/en/errors.js +132 -0
  318. package/dist/i18n/messages/en/errors.js.map +1 -0
  319. package/dist/i18n/messages/en/index.d.ts +13 -0
  320. package/dist/i18n/messages/en/index.d.ts.map +1 -0
  321. package/dist/i18n/messages/en/index.js +13 -0
  322. package/dist/i18n/messages/en/index.js.map +1 -0
  323. package/dist/i18n/messages/en/validation.d.ts +38 -0
  324. package/dist/i18n/messages/en/validation.d.ts.map +1 -0
  325. package/dist/i18n/messages/en/validation.js +38 -0
  326. package/dist/i18n/messages/en/validation.js.map +1 -0
  327. package/dist/i18n/messages/en/zod.d.ts +125 -0
  328. package/dist/i18n/messages/en/zod.d.ts.map +1 -0
  329. package/dist/i18n/messages/en/zod.js +132 -0
  330. package/dist/i18n/messages/en/zod.js.map +1 -0
  331. package/dist/i18n/messages/index.d.ts +27 -0
  332. package/dist/i18n/messages/index.d.ts.map +1 -0
  333. package/dist/i18n/messages/index.js +25 -0
  334. package/dist/i18n/messages/index.js.map +1 -0
  335. package/dist/i18n/middleware/i18n-context.middleware.d.ts +15 -0
  336. package/dist/i18n/middleware/i18n-context.middleware.d.ts.map +1 -0
  337. package/dist/i18n/middleware/i18n-context.middleware.js +42 -0
  338. package/dist/i18n/middleware/i18n-context.middleware.js.map +1 -0
  339. package/dist/i18n/middleware/index.d.ts +6 -0
  340. package/dist/i18n/middleware/index.d.ts.map +1 -0
  341. package/dist/i18n/middleware/index.js +6 -0
  342. package/dist/i18n/middleware/index.js.map +1 -0
  343. package/dist/i18n/middleware/locale-extraction.middleware.d.ts +19 -0
  344. package/dist/i18n/middleware/locale-extraction.middleware.d.ts.map +1 -0
  345. package/dist/i18n/middleware/locale-extraction.middleware.js +49 -0
  346. package/dist/i18n/middleware/locale-extraction.middleware.js.map +1 -0
  347. package/dist/i18n/services/i18n.service.d.ts +62 -0
  348. package/dist/i18n/services/i18n.service.d.ts.map +1 -0
  349. package/dist/i18n/services/i18n.service.js +118 -0
  350. package/dist/i18n/services/i18n.service.js.map +1 -0
  351. package/dist/i18n/services/message-loader.service.d.ts +47 -0
  352. package/dist/i18n/services/message-loader.service.d.ts.map +1 -0
  353. package/dist/i18n/services/message-loader.service.js +121 -0
  354. package/dist/i18n/services/message-loader.service.js.map +1 -0
  355. package/dist/i18n/setup.d.ts +27 -0
  356. package/dist/i18n/setup.d.ts.map +1 -0
  357. package/dist/i18n/setup.js +40 -0
  358. package/dist/i18n/setup.js.map +1 -0
  359. package/dist/i18n/validation/index.d.ts +9 -0
  360. package/dist/i18n/validation/index.d.ts.map +1 -0
  361. package/dist/i18n/validation/index.js +10 -0
  362. package/dist/i18n/validation/index.js.map +1 -0
  363. package/dist/i18n/validation/validation.context.d.ts +34 -0
  364. package/dist/i18n/validation/validation.context.d.ts.map +1 -0
  365. package/dist/i18n/validation/validation.context.js +42 -0
  366. package/dist/i18n/validation/validation.context.js.map +1 -0
  367. package/dist/i18n/validation/validation.error-map.d.ts +8 -0
  368. package/dist/i18n/validation/validation.error-map.d.ts.map +1 -0
  369. package/dist/i18n/validation/validation.error-map.js +158 -0
  370. package/dist/i18n/validation/validation.error-map.js.map +1 -0
  371. package/dist/i18n/validation/validation.types.d.ts +44 -0
  372. package/dist/i18n/validation/validation.types.d.ts.map +1 -0
  373. package/dist/i18n/validation/validation.types.js +2 -0
  374. package/dist/i18n/validation/validation.types.js.map +1 -0
  375. package/dist/i18n/validation/with-i18n.d.ts +29 -0
  376. package/dist/i18n/validation/with-i18n.d.ts.map +1 -0
  377. package/dist/i18n/validation/with-i18n.js +40 -0
  378. package/dist/i18n/validation/with-i18n.js.map +1 -0
  379. package/dist/index.d.ts +22 -0
  380. package/dist/index.d.ts.map +1 -0
  381. package/dist/index.js +23 -0
  382. package/dist/index.js.map +1 -0
  383. package/dist/infrastructure/error-handler/error-response.d.ts +32 -0
  384. package/dist/infrastructure/error-handler/error-response.d.ts.map +1 -0
  385. package/dist/infrastructure/error-handler/error-response.js +14 -0
  386. package/dist/infrastructure/error-handler/error-response.js.map +1 -0
  387. package/dist/infrastructure/error-handler/global-error-handler.d.ts +81 -0
  388. package/dist/infrastructure/error-handler/global-error-handler.d.ts.map +1 -0
  389. package/dist/infrastructure/error-handler/global-error-handler.js +178 -0
  390. package/dist/infrastructure/error-handler/global-error-handler.js.map +1 -0
  391. package/dist/infrastructure/error-handler/index.d.ts +6 -0
  392. package/dist/infrastructure/error-handler/index.d.ts.map +1 -0
  393. package/dist/infrastructure/error-handler/index.js +5 -0
  394. package/dist/infrastructure/error-handler/index.js.map +1 -0
  395. package/dist/infrastructure/error-handler/internal-error.d.ts +16 -0
  396. package/dist/infrastructure/error-handler/internal-error.d.ts.map +1 -0
  397. package/dist/infrastructure/error-handler/internal-error.js +19 -0
  398. package/dist/infrastructure/error-handler/internal-error.js.map +1 -0
  399. package/dist/infrastructure/errors/index.d.ts +2 -0
  400. package/dist/infrastructure/errors/index.d.ts.map +1 -0
  401. package/dist/infrastructure/errors/index.js +2 -0
  402. package/dist/infrastructure/errors/index.js.map +1 -0
  403. package/dist/infrastructure/errors/request-container-not-initialized.error.d.ts +12 -0
  404. package/dist/infrastructure/errors/request-container-not-initialized.error.d.ts.map +1 -0
  405. package/dist/infrastructure/errors/request-container-not-initialized.error.js +15 -0
  406. package/dist/infrastructure/errors/request-container-not-initialized.error.js.map +1 -0
  407. package/dist/infrastructure/index.d.ts +3 -0
  408. package/dist/infrastructure/index.d.ts.map +1 -0
  409. package/dist/infrastructure/index.js +3 -0
  410. package/dist/infrastructure/index.js.map +1 -0
  411. package/dist/logger/contracts/index.d.ts +4 -0
  412. package/dist/logger/contracts/index.d.ts.map +1 -0
  413. package/dist/logger/contracts/index.js +4 -0
  414. package/dist/logger/contracts/index.js.map +1 -0
  415. package/dist/logger/contracts/log-context.d.ts +16 -0
  416. package/dist/logger/contracts/log-context.d.ts.map +1 -0
  417. package/dist/logger/contracts/log-context.js +2 -0
  418. package/dist/logger/contracts/log-context.js.map +1 -0
  419. package/dist/logger/contracts/log-entry.d.ts +17 -0
  420. package/dist/logger/contracts/log-entry.d.ts.map +1 -0
  421. package/dist/logger/contracts/log-entry.js +2 -0
  422. package/dist/logger/contracts/log-entry.js.map +1 -0
  423. package/dist/logger/contracts/log-level.d.ts +16 -0
  424. package/dist/logger/contracts/log-level.d.ts.map +1 -0
  425. package/dist/logger/contracts/log-level.js +22 -0
  426. package/dist/logger/contracts/log-level.js.map +1 -0
  427. package/dist/logger/formatters/formatter.interface.d.ts +14 -0
  428. package/dist/logger/formatters/formatter.interface.d.ts.map +1 -0
  429. package/dist/logger/formatters/formatter.interface.js +2 -0
  430. package/dist/logger/formatters/formatter.interface.js.map +1 -0
  431. package/dist/logger/formatters/index.d.ts +4 -0
  432. package/dist/logger/formatters/index.d.ts.map +1 -0
  433. package/dist/logger/formatters/index.js +4 -0
  434. package/dist/logger/formatters/index.js.map +1 -0
  435. package/dist/logger/formatters/json-formatter.d.ts +22 -0
  436. package/dist/logger/formatters/json-formatter.d.ts.map +1 -0
  437. package/dist/logger/formatters/json-formatter.js +28 -0
  438. package/dist/logger/formatters/json-formatter.js.map +1 -0
  439. package/dist/logger/formatters/pretty-formatter.d.ts +19 -0
  440. package/dist/logger/formatters/pretty-formatter.d.ts.map +1 -0
  441. package/dist/logger/formatters/pretty-formatter.js +42 -0
  442. package/dist/logger/formatters/pretty-formatter.js.map +1 -0
  443. package/dist/logger/index.d.ts +7 -0
  444. package/dist/logger/index.d.ts.map +1 -0
  445. package/dist/logger/index.js +10 -0
  446. package/dist/logger/index.js.map +1 -0
  447. package/dist/logger/logger.tokens.d.ts +29 -0
  448. package/dist/logger/logger.tokens.d.ts.map +1 -0
  449. package/dist/logger/logger.tokens.js +29 -0
  450. package/dist/logger/logger.tokens.js.map +1 -0
  451. package/dist/logger/services/index.d.ts +2 -0
  452. package/dist/logger/services/index.d.ts.map +1 -0
  453. package/dist/logger/services/index.js +2 -0
  454. package/dist/logger/services/index.js.map +1 -0
  455. package/dist/logger/services/logger.service.d.ts +86 -0
  456. package/dist/logger/services/logger.service.d.ts.map +1 -0
  457. package/dist/logger/services/logger.service.js +161 -0
  458. package/dist/logger/services/logger.service.js.map +1 -0
  459. package/dist/logger/transports/base-transport.d.ts +24 -0
  460. package/dist/logger/transports/base-transport.d.ts.map +1 -0
  461. package/dist/logger/transports/base-transport.js +23 -0
  462. package/dist/logger/transports/base-transport.js.map +1 -0
  463. package/dist/logger/transports/console-transport.d.ts +19 -0
  464. package/dist/logger/transports/console-transport.d.ts.map +1 -0
  465. package/dist/logger/transports/console-transport.js +53 -0
  466. package/dist/logger/transports/console-transport.js.map +1 -0
  467. package/dist/logger/transports/index.d.ts +4 -0
  468. package/dist/logger/transports/index.d.ts.map +1 -0
  469. package/dist/logger/transports/index.js +4 -0
  470. package/dist/logger/transports/index.js.map +1 -0
  471. package/dist/logger/transports/transport.interface.d.ts +21 -0
  472. package/dist/logger/transports/transport.interface.d.ts.map +1 -0
  473. package/dist/logger/transports/transport.interface.js +2 -0
  474. package/dist/logger/transports/transport.interface.js.map +1 -0
  475. package/dist/middleware/index.d.ts +24 -0
  476. package/dist/middleware/index.d.ts.map +1 -0
  477. package/dist/middleware/index.js +23 -0
  478. package/dist/middleware/index.js.map +1 -0
  479. package/dist/middleware/middleware-configuration.service.d.ts +64 -0
  480. package/dist/middleware/middleware-configuration.service.d.ts.map +1 -0
  481. package/dist/middleware/middleware-configuration.service.js +210 -0
  482. package/dist/middleware/middleware-configuration.service.js.map +1 -0
  483. package/dist/middleware/middleware-consumer.d.ts +57 -0
  484. package/dist/middleware/middleware-consumer.d.ts.map +1 -0
  485. package/dist/middleware/middleware-consumer.js +130 -0
  486. package/dist/middleware/middleware-consumer.js.map +1 -0
  487. package/dist/middleware/types.d.ts +94 -0
  488. package/dist/middleware/types.d.ts.map +1 -0
  489. package/dist/middleware/types.js +2 -0
  490. package/dist/middleware/types.js.map +1 -0
  491. package/dist/module/errors/index.d.ts +5 -0
  492. package/dist/module/errors/index.d.ts.map +1 -0
  493. package/dist/module/errors/index.js +5 -0
  494. package/dist/module/errors/index.js.map +1 -0
  495. package/dist/module/errors/invalid-module-provider.error.d.ts +11 -0
  496. package/dist/module/errors/invalid-module-provider.error.d.ts.map +1 -0
  497. package/dist/module/errors/invalid-module-provider.error.js +14 -0
  498. package/dist/module/errors/invalid-module-provider.error.js.map +1 -0
  499. package/dist/module/errors/module-already-registered.error.d.ts +11 -0
  500. package/dist/module/errors/module-already-registered.error.d.ts.map +1 -0
  501. package/dist/module/errors/module-already-registered.error.js +14 -0
  502. package/dist/module/errors/module-already-registered.error.js.map +1 -0
  503. package/dist/module/errors/module-circular-dependency.error.d.ts +11 -0
  504. package/dist/module/errors/module-circular-dependency.error.d.ts.map +1 -0
  505. package/dist/module/errors/module-circular-dependency.error.js +15 -0
  506. package/dist/module/errors/module-circular-dependency.error.js.map +1 -0
  507. package/dist/module/errors/module-dependency-not-found.error.d.ts +11 -0
  508. package/dist/module/errors/module-dependency-not-found.error.d.ts.map +1 -0
  509. package/dist/module/errors/module-dependency-not-found.error.js +14 -0
  510. package/dist/module/errors/module-dependency-not-found.error.js.map +1 -0
  511. package/dist/module/index.d.ts +4 -0
  512. package/dist/module/index.d.ts.map +1 -0
  513. package/dist/module/index.js +7 -0
  514. package/dist/module/index.js.map +1 -0
  515. package/dist/module/module-registry.d.ts +101 -0
  516. package/dist/module/module-registry.d.ts.map +1 -0
  517. package/dist/module/module-registry.js +278 -0
  518. package/dist/module/module-registry.js.map +1 -0
  519. package/dist/module/module.decorator.d.ts +34 -0
  520. package/dist/module/module.decorator.d.ts.map +1 -0
  521. package/dist/module/module.decorator.js +107 -0
  522. package/dist/module/module.decorator.js.map +1 -0
  523. package/dist/module/types.d.ts +240 -0
  524. package/dist/module/types.d.ts.map +1 -0
  525. package/dist/module/types.js +8 -0
  526. package/dist/module/types.js.map +1 -0
  527. package/dist/openapi/index.d.ts +5 -0
  528. package/dist/openapi/index.d.ts.map +1 -0
  529. package/dist/openapi/index.js +7 -0
  530. package/dist/openapi/index.js.map +1 -0
  531. package/dist/openapi/openapi.module.d.ts +52 -0
  532. package/dist/openapi/openapi.module.d.ts.map +1 -0
  533. package/dist/openapi/openapi.module.js +110 -0
  534. package/dist/openapi/openapi.module.js.map +1 -0
  535. package/dist/openapi/openapi.tokens.d.ts +12 -0
  536. package/dist/openapi/openapi.tokens.d.ts.map +1 -0
  537. package/dist/openapi/openapi.tokens.js +12 -0
  538. package/dist/openapi/openapi.tokens.js.map +1 -0
  539. package/dist/openapi/services/index.d.ts +3 -0
  540. package/dist/openapi/services/index.d.ts.map +1 -0
  541. package/dist/openapi/services/index.js +3 -0
  542. package/dist/openapi/services/index.js.map +1 -0
  543. package/dist/openapi/services/openapi-config.service.d.ts +43 -0
  544. package/dist/openapi/services/openapi-config.service.d.ts.map +1 -0
  545. package/dist/openapi/services/openapi-config.service.js +98 -0
  546. package/dist/openapi/services/openapi-config.service.js.map +1 -0
  547. package/dist/openapi/services/openapi.service.d.ts +52 -0
  548. package/dist/openapi/services/openapi.service.d.ts.map +1 -0
  549. package/dist/openapi/services/openapi.service.js +228 -0
  550. package/dist/openapi/services/openapi.service.js.map +1 -0
  551. package/dist/openapi/types.d.ts +61 -0
  552. package/dist/openapi/types.d.ts.map +1 -0
  553. package/dist/openapi/types.js +2 -0
  554. package/dist/openapi/types.js.map +1 -0
  555. package/dist/polyfills/dom.polyfill.d.ts +2 -0
  556. package/dist/polyfills/dom.polyfill.d.ts.map +1 -0
  557. package/dist/polyfills/dom.polyfill.js +30 -0
  558. package/dist/polyfills/dom.polyfill.js.map +1 -0
  559. package/dist/polyfills/index.d.ts +8 -0
  560. package/dist/polyfills/index.d.ts.map +1 -0
  561. package/dist/polyfills/index.js +8 -0
  562. package/dist/polyfills/index.js.map +1 -0
  563. package/dist/queue/consumer-registry.d.ts +77 -0
  564. package/dist/queue/consumer-registry.d.ts.map +1 -0
  565. package/dist/queue/consumer-registry.js +110 -0
  566. package/dist/queue/consumer-registry.js.map +1 -0
  567. package/dist/queue/decorators/index.d.ts +2 -0
  568. package/dist/queue/decorators/index.d.ts.map +1 -0
  569. package/dist/queue/decorators/index.js +2 -0
  570. package/dist/queue/decorators/index.js.map +1 -0
  571. package/dist/queue/decorators/inject-queue.decorator.d.ts +31 -0
  572. package/dist/queue/decorators/inject-queue.decorator.d.ts.map +1 -0
  573. package/dist/queue/decorators/inject-queue.decorator.js +33 -0
  574. package/dist/queue/decorators/inject-queue.decorator.js.map +1 -0
  575. package/dist/queue/errors/index.d.ts +3 -0
  576. package/dist/queue/errors/index.d.ts.map +1 -0
  577. package/dist/queue/errors/index.js +3 -0
  578. package/dist/queue/errors/index.js.map +1 -0
  579. package/dist/queue/errors/queue-binding-not-found.error.d.ts +12 -0
  580. package/dist/queue/errors/queue-binding-not-found.error.d.ts.map +1 -0
  581. package/dist/queue/errors/queue-binding-not-found.error.js +15 -0
  582. package/dist/queue/errors/queue-binding-not-found.error.js.map +1 -0
  583. package/dist/queue/errors/queue-provider-not-supported.error.d.ts +13 -0
  584. package/dist/queue/errors/queue-provider-not-supported.error.d.ts.map +1 -0
  585. package/dist/queue/errors/queue-provider-not-supported.error.js +16 -0
  586. package/dist/queue/errors/queue-provider-not-supported.error.js.map +1 -0
  587. package/dist/queue/index.d.ts +14 -0
  588. package/dist/queue/index.d.ts.map +1 -0
  589. package/dist/queue/index.js +21 -0
  590. package/dist/queue/index.js.map +1 -0
  591. package/dist/queue/providers/cloudflare-queue.provider.d.ts +42 -0
  592. package/dist/queue/providers/cloudflare-queue.provider.d.ts.map +1 -0
  593. package/dist/queue/providers/cloudflare-queue.provider.js +73 -0
  594. package/dist/queue/providers/cloudflare-queue.provider.js.map +1 -0
  595. package/dist/queue/providers/index.d.ts +4 -0
  596. package/dist/queue/providers/index.d.ts.map +1 -0
  597. package/dist/queue/providers/index.js +4 -0
  598. package/dist/queue/providers/index.js.map +1 -0
  599. package/dist/queue/providers/queue-provider.interface.d.ts +34 -0
  600. package/dist/queue/providers/queue-provider.interface.d.ts.map +1 -0
  601. package/dist/queue/providers/queue-provider.interface.js +2 -0
  602. package/dist/queue/providers/queue-provider.interface.js.map +1 -0
  603. package/dist/queue/providers/sync-queue.provider.d.ts +48 -0
  604. package/dist/queue/providers/sync-queue.provider.d.ts.map +1 -0
  605. package/dist/queue/providers/sync-queue.provider.js +89 -0
  606. package/dist/queue/providers/sync-queue.provider.js.map +1 -0
  607. package/dist/queue/queue-consumer.d.ts +64 -0
  608. package/dist/queue/queue-consumer.d.ts.map +1 -0
  609. package/dist/queue/queue-consumer.js +2 -0
  610. package/dist/queue/queue-consumer.js.map +1 -0
  611. package/dist/queue/queue-manager.d.ts +36 -0
  612. package/dist/queue/queue-manager.d.ts.map +1 -0
  613. package/dist/queue/queue-manager.js +80 -0
  614. package/dist/queue/queue-manager.js.map +1 -0
  615. package/dist/queue/queue-name.d.ts +50 -0
  616. package/dist/queue/queue-name.d.ts.map +1 -0
  617. package/dist/queue/queue-name.js +21 -0
  618. package/dist/queue/queue-name.js.map +1 -0
  619. package/dist/queue/queue-registry.d.ts +46 -0
  620. package/dist/queue/queue-registry.d.ts.map +1 -0
  621. package/dist/queue/queue-registry.js +78 -0
  622. package/dist/queue/queue-registry.js.map +1 -0
  623. package/dist/queue/queue-sender.d.ts +38 -0
  624. package/dist/queue/queue-sender.d.ts.map +1 -0
  625. package/dist/queue/queue-sender.interface.d.ts +46 -0
  626. package/dist/queue/queue-sender.interface.d.ts.map +1 -0
  627. package/dist/queue/queue-sender.interface.js +2 -0
  628. package/dist/queue/queue-sender.interface.js.map +1 -0
  629. package/dist/queue/queue-sender.js +54 -0
  630. package/dist/queue/queue-sender.js.map +1 -0
  631. package/dist/queue/queue.module.d.ts +80 -0
  632. package/dist/queue/queue.module.d.ts.map +1 -0
  633. package/dist/queue/queue.module.js +113 -0
  634. package/dist/queue/queue.module.js.map +1 -0
  635. package/dist/queue/queue.tokens.d.ts +7 -0
  636. package/dist/queue/queue.tokens.d.ts.map +1 -0
  637. package/dist/queue/queue.tokens.js +6 -0
  638. package/dist/queue/queue.tokens.js.map +1 -0
  639. package/dist/queue/services/index.d.ts +2 -0
  640. package/dist/queue/services/index.d.ts.map +1 -0
  641. package/dist/queue/services/index.js +2 -0
  642. package/dist/queue/services/index.js.map +1 -0
  643. package/dist/queue/services/queue-provider-factory.d.ts +41 -0
  644. package/dist/queue/services/queue-provider-factory.d.ts.map +1 -0
  645. package/dist/queue/services/queue-provider-factory.js +78 -0
  646. package/dist/queue/services/queue-provider-factory.js.map +1 -0
  647. package/dist/router/constants.d.ts +72 -0
  648. package/dist/router/constants.d.ts.map +1 -0
  649. package/dist/router/constants.js +54 -0
  650. package/dist/router/constants.js.map +1 -0
  651. package/dist/router/controller.d.ts +56 -0
  652. package/dist/router/controller.d.ts.map +1 -0
  653. package/dist/router/controller.js +2 -0
  654. package/dist/router/controller.js.map +1 -0
  655. package/dist/router/decorators/controller.decorator.d.ts +55 -0
  656. package/dist/router/decorators/controller.decorator.d.ts.map +1 -0
  657. package/dist/router/decorators/controller.decorator.js +76 -0
  658. package/dist/router/decorators/controller.decorator.js.map +1 -0
  659. package/dist/router/decorators/index.d.ts +3 -0
  660. package/dist/router/decorators/index.d.ts.map +1 -0
  661. package/dist/router/decorators/index.js +7 -0
  662. package/dist/router/decorators/index.js.map +1 -0
  663. package/dist/router/decorators/route.decorator.d.ts +87 -0
  664. package/dist/router/decorators/route.decorator.d.ts.map +1 -0
  665. package/dist/router/decorators/route.decorator.js +99 -0
  666. package/dist/router/decorators/route.decorator.js.map +1 -0
  667. package/dist/router/errors/controller-method-not-found.error.d.ts +11 -0
  668. package/dist/router/errors/controller-method-not-found.error.d.ts.map +1 -0
  669. package/dist/router/errors/controller-method-not-found.error.js +14 -0
  670. package/dist/router/errors/controller-method-not-found.error.js.map +1 -0
  671. package/dist/router/errors/controller-registration.error.d.ts +15 -0
  672. package/dist/router/errors/controller-registration.error.d.ts.map +1 -0
  673. package/dist/router/errors/controller-registration.error.js +21 -0
  674. package/dist/router/errors/controller-registration.error.js.map +1 -0
  675. package/dist/router/errors/index.d.ts +9 -0
  676. package/dist/router/errors/index.d.ts.map +1 -0
  677. package/dist/router/errors/index.js +11 -0
  678. package/dist/router/errors/index.js.map +1 -0
  679. package/dist/router/errors/openapi-route-registration.error.d.ts +17 -0
  680. package/dist/router/errors/openapi-route-registration.error.d.ts.map +1 -0
  681. package/dist/router/errors/openapi-route-registration.error.js +20 -0
  682. package/dist/router/errors/openapi-route-registration.error.js.map +1 -0
  683. package/dist/router/errors/openapi-validation.error.d.ts +19 -0
  684. package/dist/router/errors/openapi-validation.error.d.ts.map +1 -0
  685. package/dist/router/errors/openapi-validation.error.js +22 -0
  686. package/dist/router/errors/openapi-validation.error.js.map +1 -0
  687. package/dist/router/errors/route-not-found.error.d.ts +11 -0
  688. package/dist/router/errors/route-not-found.error.d.ts.map +1 -0
  689. package/dist/router/errors/route-not-found.error.js +14 -0
  690. package/dist/router/errors/route-not-found.error.js.map +1 -0
  691. package/dist/router/errors/router-already-configured.error.d.ts +5 -0
  692. package/dist/router/errors/router-already-configured.error.d.ts.map +1 -0
  693. package/dist/router/errors/router-already-configured.error.js +8 -0
  694. package/dist/router/errors/router-already-configured.error.js.map +1 -0
  695. package/dist/router/errors/router-not-configured.error.d.ts +5 -0
  696. package/dist/router/errors/router-not-configured.error.d.ts.map +1 -0
  697. package/dist/router/errors/router-not-configured.error.js +8 -0
  698. package/dist/router/errors/router-not-configured.error.js.map +1 -0
  699. package/dist/router/errors/schema-validation.error.d.ts +11 -0
  700. package/dist/router/errors/schema-validation.error.d.ts.map +1 -0
  701. package/dist/router/errors/schema-validation.error.js +18 -0
  702. package/dist/router/errors/schema-validation.error.js.map +1 -0
  703. package/dist/router/index.d.ts +13 -0
  704. package/dist/router/index.d.ts.map +1 -0
  705. package/dist/router/index.js +18 -0
  706. package/dist/router/index.js.map +1 -0
  707. package/dist/router/middleware/index.d.ts +2 -0
  708. package/dist/router/middleware/index.d.ts.map +1 -0
  709. package/dist/router/middleware/index.js +4 -0
  710. package/dist/router/middleware/index.js.map +1 -0
  711. package/dist/router/middleware/logger.middleware.d.ts +19 -0
  712. package/dist/router/middleware/logger.middleware.d.ts.map +1 -0
  713. package/dist/router/middleware/logger.middleware.js +32 -0
  714. package/dist/router/middleware/logger.middleware.js.map +1 -0
  715. package/dist/router/middleware.interface.d.ts +38 -0
  716. package/dist/router/middleware.interface.d.ts.map +1 -0
  717. package/dist/router/middleware.interface.js +2 -0
  718. package/dist/router/middleware.interface.js.map +1 -0
  719. package/dist/router/router-context.d.ts +117 -0
  720. package/dist/router/router-context.d.ts.map +1 -0
  721. package/dist/router/router-context.js +145 -0
  722. package/dist/router/router-context.js.map +1 -0
  723. package/dist/router/router.service.d.ts +62 -0
  724. package/dist/router/router.service.d.ts.map +1 -0
  725. package/dist/router/router.service.js +166 -0
  726. package/dist/router/router.service.js.map +1 -0
  727. package/dist/router/router.tokens.d.ts +39 -0
  728. package/dist/router/router.tokens.d.ts.map +1 -0
  729. package/dist/router/router.tokens.js +39 -0
  730. package/dist/router/router.tokens.js.map +1 -0
  731. package/dist/router/schemas/common.schemas.d.ts +148 -0
  732. package/dist/router/schemas/common.schemas.d.ts.map +1 -0
  733. package/dist/router/schemas/common.schemas.js +88 -0
  734. package/dist/router/schemas/common.schemas.js.map +1 -0
  735. package/dist/router/schemas/index.d.ts +2 -0
  736. package/dist/router/schemas/index.d.ts.map +1 -0
  737. package/dist/router/schemas/index.js +2 -0
  738. package/dist/router/schemas/index.js.map +1 -0
  739. package/dist/router/services/index.d.ts +7 -0
  740. package/dist/router/services/index.d.ts.map +1 -0
  741. package/dist/router/services/index.js +7 -0
  742. package/dist/router/services/index.js.map +1 -0
  743. package/dist/router/services/request-scope.service.d.ts +44 -0
  744. package/dist/router/services/request-scope.service.d.ts.map +1 -0
  745. package/dist/router/services/request-scope.service.js +78 -0
  746. package/dist/router/services/request-scope.service.js.map +1 -0
  747. package/dist/router/services/route-registration.service.d.ts +94 -0
  748. package/dist/router/services/route-registration.service.d.ts.map +1 -0
  749. package/dist/router/services/route-registration.service.js +451 -0
  750. package/dist/router/services/route-registration.service.js.map +1 -0
  751. package/dist/router/types.d.ts +130 -0
  752. package/dist/router/types.d.ts.map +1 -0
  753. package/dist/router/types.js +2 -0
  754. package/dist/router/types.js.map +1 -0
  755. package/dist/storage/contracts/delete-file.input.d.ts +7 -0
  756. package/dist/storage/contracts/delete-file.input.d.ts.map +1 -0
  757. package/dist/storage/contracts/delete-file.input.js +6 -0
  758. package/dist/storage/contracts/delete-file.input.js.map +1 -0
  759. package/dist/storage/contracts/download-result.d.ts +28 -0
  760. package/dist/storage/contracts/download-result.d.ts.map +1 -0
  761. package/dist/storage/contracts/download-result.js +2 -0
  762. package/dist/storage/contracts/download-result.js.map +1 -0
  763. package/dist/storage/contracts/file-exists.input.d.ts +7 -0
  764. package/dist/storage/contracts/file-exists.input.d.ts.map +1 -0
  765. package/dist/storage/contracts/file-exists.input.js +6 -0
  766. package/dist/storage/contracts/file-exists.input.js.map +1 -0
  767. package/dist/storage/contracts/get-presigned-url.input.d.ts +26 -0
  768. package/dist/storage/contracts/get-presigned-url.input.d.ts.map +1 -0
  769. package/dist/storage/contracts/get-presigned-url.input.js +14 -0
  770. package/dist/storage/contracts/get-presigned-url.input.js.map +1 -0
  771. package/dist/storage/contracts/index.d.ts +6 -0
  772. package/dist/storage/contracts/index.d.ts.map +1 -0
  773. package/dist/storage/contracts/index.js +6 -0
  774. package/dist/storage/contracts/index.js.map +1 -0
  775. package/dist/storage/contracts/upload-file.input.d.ts +34 -0
  776. package/dist/storage/contracts/upload-file.input.d.ts.map +1 -0
  777. package/dist/storage/contracts/upload-file.input.js +10 -0
  778. package/dist/storage/contracts/upload-file.input.js.map +1 -0
  779. package/dist/storage/errors/disk-not-configured.error.d.ts +5 -0
  780. package/dist/storage/errors/disk-not-configured.error.d.ts.map +1 -0
  781. package/dist/storage/errors/disk-not-configured.error.js +7 -0
  782. package/dist/storage/errors/disk-not-configured.error.js.map +1 -0
  783. package/dist/storage/errors/file-not-found.error.d.ts +5 -0
  784. package/dist/storage/errors/file-not-found.error.d.ts.map +1 -0
  785. package/dist/storage/errors/file-not-found.error.js +8 -0
  786. package/dist/storage/errors/file-not-found.error.js.map +1 -0
  787. package/dist/storage/errors/file-too-large.error.d.ts +5 -0
  788. package/dist/storage/errors/file-too-large.error.d.ts.map +1 -0
  789. package/dist/storage/errors/file-too-large.error.js +11 -0
  790. package/dist/storage/errors/file-too-large.error.js.map +1 -0
  791. package/dist/storage/errors/index.d.ts +9 -0
  792. package/dist/storage/errors/index.d.ts.map +1 -0
  793. package/dist/storage/errors/index.js +9 -0
  794. package/dist/storage/errors/index.js.map +1 -0
  795. package/dist/storage/errors/invalid-disk.error.d.ts +5 -0
  796. package/dist/storage/errors/invalid-disk.error.d.ts.map +1 -0
  797. package/dist/storage/errors/invalid-disk.error.js +8 -0
  798. package/dist/storage/errors/invalid-disk.error.js.map +1 -0
  799. package/dist/storage/errors/invalid-file-type.error.d.ts +5 -0
  800. package/dist/storage/errors/invalid-file-type.error.d.ts.map +1 -0
  801. package/dist/storage/errors/invalid-file-type.error.js +10 -0
  802. package/dist/storage/errors/invalid-file-type.error.js.map +1 -0
  803. package/dist/storage/errors/presigned-url-invalid-expiry.error.d.ts +5 -0
  804. package/dist/storage/errors/presigned-url-invalid-expiry.error.d.ts.map +1 -0
  805. package/dist/storage/errors/presigned-url-invalid-expiry.error.js +12 -0
  806. package/dist/storage/errors/presigned-url-invalid-expiry.error.js.map +1 -0
  807. package/dist/storage/errors/storage-provider-not-supported.error.d.ts +5 -0
  808. package/dist/storage/errors/storage-provider-not-supported.error.d.ts.map +1 -0
  809. package/dist/storage/errors/storage-provider-not-supported.error.js +8 -0
  810. package/dist/storage/errors/storage-provider-not-supported.error.js.map +1 -0
  811. package/dist/storage/errors/storage-response-body-missing.error.d.ts +5 -0
  812. package/dist/storage/errors/storage-response-body-missing.error.d.ts.map +1 -0
  813. package/dist/storage/errors/storage-response-body-missing.error.js +8 -0
  814. package/dist/storage/errors/storage-response-body-missing.error.js.map +1 -0
  815. package/dist/storage/index.d.ts +15 -0
  816. package/dist/storage/index.d.ts.map +1 -0
  817. package/dist/storage/index.js +18 -0
  818. package/dist/storage/index.js.map +1 -0
  819. package/dist/storage/providers/s3-multipart-provider.interface.d.ts +194 -0
  820. package/dist/storage/providers/s3-multipart-provider.interface.d.ts.map +1 -0
  821. package/dist/storage/providers/s3-multipart-provider.interface.js +2 -0
  822. package/dist/storage/providers/s3-multipart-provider.interface.js.map +1 -0
  823. package/dist/storage/providers/s3-storage.provider.d.ts +77 -0
  824. package/dist/storage/providers/s3-storage.provider.d.ts.map +1 -0
  825. package/dist/storage/providers/s3-storage.provider.js +310 -0
  826. package/dist/storage/providers/s3-storage.provider.js.map +1 -0
  827. package/dist/storage/providers/storage-provider.interface.d.ts +58 -0
  828. package/dist/storage/providers/storage-provider.interface.d.ts.map +1 -0
  829. package/dist/storage/providers/storage-provider.interface.js +2 -0
  830. package/dist/storage/providers/storage-provider.interface.js.map +1 -0
  831. package/dist/storage/services/storage-manager.service.d.ts +48 -0
  832. package/dist/storage/services/storage-manager.service.d.ts.map +1 -0
  833. package/dist/storage/services/storage-manager.service.js +111 -0
  834. package/dist/storage/services/storage-manager.service.js.map +1 -0
  835. package/dist/storage/services/storage.service.d.ts +140 -0
  836. package/dist/storage/services/storage.service.d.ts.map +1 -0
  837. package/dist/storage/services/storage.service.js +232 -0
  838. package/dist/storage/services/storage.service.js.map +1 -0
  839. package/dist/storage/storage.module.d.ts +52 -0
  840. package/dist/storage/storage.module.d.ts.map +1 -0
  841. package/dist/storage/storage.module.js +81 -0
  842. package/dist/storage/storage.module.js.map +1 -0
  843. package/dist/storage/storage.tokens.d.ts +10 -0
  844. package/dist/storage/storage.tokens.d.ts.map +1 -0
  845. package/dist/storage/storage.tokens.js +10 -0
  846. package/dist/storage/storage.tokens.js.map +1 -0
  847. package/dist/storage/types.d.ts +31 -0
  848. package/dist/storage/types.d.ts.map +1 -0
  849. package/dist/storage/types.js +2 -0
  850. package/dist/storage/types.js.map +1 -0
  851. package/dist/types.d.ts +16 -0
  852. package/dist/types.d.ts.map +1 -0
  853. package/dist/types.js +2 -0
  854. package/dist/types.js.map +1 -0
  855. package/dist/worker/index.d.ts +2 -0
  856. package/dist/worker/index.d.ts.map +1 -0
  857. package/dist/worker/index.js +2 -0
  858. package/dist/worker/index.js.map +1 -0
  859. package/dist/worker/module-worker.d.ts +48 -0
  860. package/dist/worker/module-worker.d.ts.map +1 -0
  861. package/dist/worker/module-worker.js +88 -0
  862. package/dist/worker/module-worker.js.map +1 -0
  863. package/dist/worker/stratal-worker.d.ts +48 -0
  864. package/dist/worker/stratal-worker.d.ts.map +1 -0
  865. package/dist/worker/stratal-worker.js +88 -0
  866. package/dist/worker/stratal-worker.js.map +1 -0
  867. package/package.json +148 -0
@@ -0,0 +1,194 @@
1
+ import type { IStorageProvider } from './storage-provider.interface';
2
+ /**
3
+ * Options for creating a multipart upload
4
+ */
5
+ export interface CreateMultipartOptions {
6
+ /** Content type (MIME type) */
7
+ contentType?: string;
8
+ /** Cache control header */
9
+ cacheControl?: string;
10
+ /** Custom S3 metadata */
11
+ metadata?: Record<string, string>;
12
+ /** S3 object tagging (key=value format) */
13
+ tagging?: string;
14
+ }
15
+ /**
16
+ * Result of creating a multipart upload
17
+ */
18
+ export interface CreateMultipartResult {
19
+ /** S3 upload ID for subsequent part uploads */
20
+ uploadId: string;
21
+ /** Object key */
22
+ key: string;
23
+ }
24
+ /**
25
+ * Result of uploading a part
26
+ */
27
+ export interface UploadPartResult {
28
+ /** ETag returned by S3 */
29
+ etag: string;
30
+ /** Part number */
31
+ partNumber: number;
32
+ }
33
+ /**
34
+ * Part info for completing multipart upload
35
+ */
36
+ export interface CompletedPart {
37
+ /** ETag from uploadPart */
38
+ etag: string;
39
+ /** Part number */
40
+ partNumber: number;
41
+ }
42
+ /**
43
+ * Result of completing a multipart upload
44
+ */
45
+ export interface CompleteMultipartResult {
46
+ /** S3 location URL */
47
+ location?: string;
48
+ /** Object key */
49
+ key: string;
50
+ }
51
+ /**
52
+ * Individual part info from listParts
53
+ */
54
+ export interface PartInfo {
55
+ /** Part number */
56
+ partNumber: number;
57
+ /** ETag */
58
+ etag: string;
59
+ /** Part size in bytes */
60
+ size: number;
61
+ }
62
+ /**
63
+ * Result of listing parts
64
+ */
65
+ export interface ListPartsResult {
66
+ /** List of uploaded parts */
67
+ parts: PartInfo[];
68
+ /** Whether there are more parts */
69
+ isTruncated: boolean;
70
+ /** Marker for next page */
71
+ nextPartNumberMarker?: string;
72
+ }
73
+ /**
74
+ * Individual upload info from listMultipartUploads
75
+ */
76
+ export interface MultipartUploadInfo {
77
+ /** Object key */
78
+ key: string;
79
+ /** Upload ID */
80
+ uploadId: string;
81
+ /** When the upload was initiated */
82
+ initiated?: Date;
83
+ }
84
+ /**
85
+ * Result of listing multipart uploads
86
+ */
87
+ export interface ListMultipartUploadsResult {
88
+ /** List of in-progress uploads */
89
+ uploads: MultipartUploadInfo[];
90
+ /** Whether there are more uploads */
91
+ isTruncated: boolean;
92
+ /** Marker for next page (key) */
93
+ nextKeyMarker?: string;
94
+ /** Marker for next page (uploadId) */
95
+ nextUploadIdMarker?: string;
96
+ }
97
+ /**
98
+ * Result of headObject
99
+ */
100
+ export interface HeadObjectResult {
101
+ /** Object size in bytes */
102
+ size: number;
103
+ /** Content type */
104
+ contentType?: string;
105
+ /** Custom metadata */
106
+ metadata?: Record<string, string>;
107
+ }
108
+ /**
109
+ * Result of batch delete
110
+ */
111
+ export interface DeleteObjectsResult {
112
+ /** Number of objects deleted */
113
+ deleted: number;
114
+ /** Errors that occurred */
115
+ errors: {
116
+ key: string;
117
+ code: string;
118
+ message: string;
119
+ }[];
120
+ }
121
+ /**
122
+ * S3-specific storage provider interface with multipart upload support
123
+ *
124
+ * Extends the generic IStorageProvider with S3 multipart upload operations.
125
+ * This interface is S3-specific - other providers (GCS, local) would have
126
+ * their own resumable upload interfaces if needed.
127
+ */
128
+ export interface IS3MultipartProvider extends IStorageProvider {
129
+ /**
130
+ * Create a multipart upload
131
+ * @param key - Object key
132
+ * @param options - Upload options
133
+ * @returns Upload ID and key
134
+ */
135
+ createMultipartUpload(key: string, options?: CreateMultipartOptions): Promise<CreateMultipartResult>;
136
+ /**
137
+ * Upload a part to an existing multipart upload
138
+ * @param key - Object key
139
+ * @param uploadId - Upload ID from createMultipartUpload
140
+ * @param partNumber - Part number (1-10000)
141
+ * @param body - Part data
142
+ * @returns ETag and part number
143
+ */
144
+ uploadPart(key: string, uploadId: string, partNumber: number, body: Uint8Array): Promise<UploadPartResult>;
145
+ /**
146
+ * Complete a multipart upload
147
+ * @param key - Object key
148
+ * @param uploadId - Upload ID
149
+ * @param parts - List of completed parts with ETags
150
+ * @returns Location and key
151
+ */
152
+ completeMultipartUpload(key: string, uploadId: string, parts: CompletedPart[]): Promise<CompleteMultipartResult>;
153
+ /**
154
+ * Abort a multipart upload
155
+ * @param key - Object key
156
+ * @param uploadId - Upload ID
157
+ */
158
+ abortMultipartUpload(key: string, uploadId: string): Promise<void>;
159
+ /**
160
+ * List parts of a multipart upload
161
+ * @param key - Object key
162
+ * @param uploadId - Upload ID
163
+ * @param partNumberMarker - Optional marker for pagination
164
+ * @returns List of parts
165
+ */
166
+ listParts(key: string, uploadId: string, partNumberMarker?: string): Promise<ListPartsResult>;
167
+ /**
168
+ * List all in-progress multipart uploads
169
+ * @param keyMarker - Optional key marker for pagination
170
+ * @param uploadIdMarker - Optional upload ID marker for pagination
171
+ * @returns List of uploads
172
+ */
173
+ listMultipartUploads(keyMarker?: string, uploadIdMarker?: string): Promise<ListMultipartUploadsResult>;
174
+ /**
175
+ * Get object metadata without downloading the body
176
+ * Unlike exists() which returns boolean, this returns actual metadata
177
+ * @param key - Object key
178
+ * @returns Object metadata or null if not found
179
+ */
180
+ headObject(key: string): Promise<HeadObjectResult | null>;
181
+ /**
182
+ * Delete multiple objects in a single request
183
+ * More efficient than individual delete() calls
184
+ * @param keys - Array of object keys
185
+ * @returns Delete results
186
+ */
187
+ deleteObjects(keys: string[]): Promise<DeleteObjectsResult>;
188
+ /**
189
+ * Get the bucket name
190
+ * @returns Bucket name from configuration
191
+ */
192
+ getBucket(): string;
193
+ }
194
+ //# sourceMappingURL=s3-multipart-provider.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"s3-multipart-provider.interface.d.ts","sourceRoot":"","sources":["../../../src/storage/providers/s3-multipart-provider.interface.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=s3-multipart-provider.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"s3-multipart-provider.interface.js","sourceRoot":"","sources":["../../../src/storage/providers/s3-multipart-provider.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,77 @@
1
+ import type { StorageEntry } from 'stratal';
2
+ import type { DownloadResult, PresignedUrlResult, UploadOptions, UploadResult } from '../contracts';
3
+ import type { CompletedPart, CompleteMultipartResult, CreateMultipartOptions, CreateMultipartResult, DeleteObjectsResult, HeadObjectResult, IS3MultipartProvider, ListMultipartUploadsResult, ListPartsResult, UploadPartResult } from './s3-multipart-provider.interface';
4
+ import type { StreamingBlobPayloadInputTypes } from './storage-provider.interface';
5
+ /**
6
+ * S3 Storage Provider
7
+ * Implements storage operations using AWS SDK for S3-compatible storage
8
+ * Works with AWS S3, Cloudflare R2, MinIO, and other S3-compatible services
9
+ *
10
+ * Implements IS3MultipartProvider for multipart upload support needed by TUS
11
+ */
12
+ export declare class S3StorageProvider implements IS3MultipartProvider {
13
+ private readonly client;
14
+ private readonly bucket;
15
+ private readonly disk;
16
+ constructor(config: StorageEntry);
17
+ upload(body: StreamingBlobPayloadInputTypes, path: string, options: UploadOptions): Promise<UploadResult>;
18
+ download(path: string): Promise<DownloadResult>;
19
+ delete(path: string): Promise<void>;
20
+ exists(path: string): Promise<boolean>;
21
+ getPresignedUrl(path: string, method: 'GET' | 'PUT' | 'DELETE' | 'HEAD', expiresIn: number): Promise<PresignedUrlResult>;
22
+ /**
23
+ * Chunked upload for streaming data without known size
24
+ * Uses @aws-sdk/lib-storage for multipart upload handling
25
+ *
26
+ * Benefits:
27
+ * - Handles unknown Content-Length automatically
28
+ * - Automatic retry on transient failures
29
+ * - Cleanup of partial uploads on error
30
+ * - Works with S3-compatible storage (R2, MinIO, RustFS)
31
+ *
32
+ * @param body - Content to upload (stream or buffer)
33
+ * @param path - Full path including disk root
34
+ * @param options - Upload options (mimeType required, size optional)
35
+ * @returns Upload result with metadata
36
+ */
37
+ chunkedUpload(body: StreamingBlobPayloadInputTypes, path: string, options: Omit<UploadOptions, 'size'> & {
38
+ size?: number;
39
+ }): Promise<UploadResult>;
40
+ /**
41
+ * Get the bucket name
42
+ */
43
+ getBucket(): string;
44
+ /**
45
+ * Get object metadata without downloading the body
46
+ */
47
+ headObject(key: string): Promise<HeadObjectResult | null>;
48
+ /**
49
+ * Delete multiple objects in a single request
50
+ */
51
+ deleteObjects(keys: string[]): Promise<DeleteObjectsResult>;
52
+ /**
53
+ * Create a multipart upload
54
+ */
55
+ createMultipartUpload(key: string, options?: CreateMultipartOptions): Promise<CreateMultipartResult>;
56
+ /**
57
+ * Upload a part to an existing multipart upload
58
+ */
59
+ uploadPart(key: string, uploadId: string, partNumber: number, body: Uint8Array): Promise<UploadPartResult>;
60
+ /**
61
+ * Complete a multipart upload
62
+ */
63
+ completeMultipartUpload(key: string, uploadId: string, parts: CompletedPart[]): Promise<CompleteMultipartResult>;
64
+ /**
65
+ * Abort a multipart upload
66
+ */
67
+ abortMultipartUpload(key: string, uploadId: string): Promise<void>;
68
+ /**
69
+ * List parts of a multipart upload
70
+ */
71
+ listParts(key: string, uploadId: string, partNumberMarker?: string): Promise<ListPartsResult>;
72
+ /**
73
+ * List all in-progress multipart uploads
74
+ */
75
+ listMultipartUploads(keyMarker?: string, uploadIdMarker?: string): Promise<ListMultipartUploadsResult>;
76
+ }
77
+ //# sourceMappingURL=s3-storage.provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"s3-storage.provider.d.ts","sourceRoot":"","sources":["../../../src/storage/providers/s3-storage.provider.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAEnG,OAAO,KAAK,EACV,aAAa,EACb,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,0BAA0B,EAC1B,eAAe,EACf,gBAAgB,EACjB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAA;AAElF;;;;;;GAMG;AACH,qBAAa,iBAAkB,YAAW,oBAAoB;IAC5D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;gBAEjB,MAAM,EAAE,YAAY;IAgB1B,MAAM,CACV,IAAI,EAAE,8BAA8B,EACpC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,YAAY,CAAC;IAuBlB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAsB/C,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASnC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAetC,eAAe,CACnB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,EACzC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,kBAAkB,CAAC;IA4B9B;;;;;;;;;;;;;;OAcG;IACG,aAAa,CACjB,IAAI,EAAE,8BAA8B,EACpC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GACvD,OAAO,CAAC,YAAY,CAAC;IAyCxB;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACG,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAc/D;;OAEG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAwBjE;;OAEG;IACG,qBAAqB,CACzB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,qBAAqB,CAAC;IAkBjC;;OAEG;IACG,UAAU,CACd,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,gBAAgB,CAAC;IAkB5B;;OAEG;IACG,uBAAuB,CAC3B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,aAAa,EAAE,GACrB,OAAO,CAAC,uBAAuB,CAAC;IAqBnC;;OAEG;IACG,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUxE;;OAEG;IACG,SAAS,CACb,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,eAAe,CAAC;IAqB3B;;OAEG;IACG,oBAAoB,CACxB,SAAS,CAAC,EAAE,MAAM,EAClB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,0BAA0B,CAAC;CAoBvC"}
@@ -0,0 +1,310 @@
1
+ import { AbortMultipartUploadCommand, CompleteMultipartUploadCommand, CreateMultipartUploadCommand, DeleteObjectCommand, DeleteObjectsCommand, GetObjectCommand, HeadObjectCommand, ListMultipartUploadsCommand, ListPartsCommand, PutObjectCommand, S3Client, UploadPartCommand } from '@aws-sdk/client-s3';
2
+ import { Upload } from '@aws-sdk/lib-storage';
3
+ import { getSignedUrl } from '@aws-sdk/s3-request-presigner';
4
+ import { StorageResponseBodyMissingError } from '../errors';
5
+ /**
6
+ * S3 Storage Provider
7
+ * Implements storage operations using AWS SDK for S3-compatible storage
8
+ * Works with AWS S3, Cloudflare R2, MinIO, and other S3-compatible services
9
+ *
10
+ * Implements IS3MultipartProvider for multipart upload support needed by TUS
11
+ */
12
+ export class S3StorageProvider {
13
+ client;
14
+ bucket;
15
+ disk;
16
+ constructor(config) {
17
+ // Configure S3Client for S3-compatible storage
18
+ this.client = new S3Client({
19
+ region: config.region || 'auto',
20
+ endpoint: config.endpoint,
21
+ credentials: {
22
+ accessKeyId: config.accessKeyId,
23
+ secretAccessKey: config.secretAccessKey,
24
+ },
25
+ forcePathStyle: true,
26
+ });
27
+ this.bucket = config.bucket;
28
+ this.disk = config.disk;
29
+ }
30
+ async upload(body, path, options) {
31
+ const command = new PutObjectCommand({
32
+ Bucket: this.bucket,
33
+ Key: path,
34
+ Body: body,
35
+ ContentType: options.mimeType,
36
+ ContentLength: options.size,
37
+ Metadata: options.metadata,
38
+ Tagging: options.tagging,
39
+ });
40
+ await this.client.send(command);
41
+ return {
42
+ path,
43
+ disk: this.disk,
44
+ fullPath: `${this.bucket}/${path}`,
45
+ size: options.size,
46
+ mimeType: options.mimeType ?? 'application/octet-stream',
47
+ uploadedAt: new Date(),
48
+ };
49
+ }
50
+ async download(path) {
51
+ const command = new GetObjectCommand({
52
+ Bucket: this.bucket,
53
+ Key: path,
54
+ });
55
+ const response = await this.client.send(command);
56
+ if (!response.Body) {
57
+ throw new StorageResponseBodyMissingError(path);
58
+ }
59
+ return {
60
+ toStream: () => response.Body?.transformToWebStream(),
61
+ contentType: response.ContentType ?? 'application/octet-stream',
62
+ size: response.ContentLength ?? 0,
63
+ metadata: response.Metadata,
64
+ toString: () => response.Body?.transformToString(),
65
+ toArrayBuffer: () => response.Body?.transformToByteArray(),
66
+ };
67
+ }
68
+ async delete(path) {
69
+ const command = new DeleteObjectCommand({
70
+ Bucket: this.bucket,
71
+ Key: path,
72
+ });
73
+ await this.client.send(command);
74
+ }
75
+ async exists(path) {
76
+ try {
77
+ const command = new HeadObjectCommand({
78
+ Bucket: this.bucket,
79
+ Key: path,
80
+ });
81
+ await this.client.send(command);
82
+ return true;
83
+ }
84
+ catch {
85
+ // HeadObject throws error if file doesn't exist
86
+ return false;
87
+ }
88
+ }
89
+ async getPresignedUrl(path, method, expiresIn) {
90
+ // Select appropriate command based on method
91
+ let command;
92
+ switch (method) {
93
+ case 'GET':
94
+ command = new GetObjectCommand({ Bucket: this.bucket, Key: path });
95
+ break;
96
+ case 'PUT':
97
+ command = new PutObjectCommand({ Bucket: this.bucket, Key: path });
98
+ break;
99
+ case 'DELETE':
100
+ command = new DeleteObjectCommand({ Bucket: this.bucket, Key: path });
101
+ break;
102
+ case 'HEAD':
103
+ command = new HeadObjectCommand({ Bucket: this.bucket, Key: path });
104
+ break;
105
+ }
106
+ const url = await getSignedUrl(this.client, command, { expiresIn });
107
+ return {
108
+ url,
109
+ expiresIn,
110
+ expiresAt: new Date(Date.now() + expiresIn * 1000),
111
+ method,
112
+ };
113
+ }
114
+ /**
115
+ * Chunked upload for streaming data without known size
116
+ * Uses @aws-sdk/lib-storage for multipart upload handling
117
+ *
118
+ * Benefits:
119
+ * - Handles unknown Content-Length automatically
120
+ * - Automatic retry on transient failures
121
+ * - Cleanup of partial uploads on error
122
+ * - Works with S3-compatible storage (R2, MinIO, RustFS)
123
+ *
124
+ * @param body - Content to upload (stream or buffer)
125
+ * @param path - Full path including disk root
126
+ * @param options - Upload options (mimeType required, size optional)
127
+ * @returns Upload result with metadata
128
+ */
129
+ async chunkedUpload(body, path, options) {
130
+ const upload = new Upload({
131
+ client: this.client,
132
+ params: {
133
+ Bucket: this.bucket,
134
+ Key: path,
135
+ Body: body,
136
+ ContentType: options.mimeType,
137
+ },
138
+ // Concurrency configuration
139
+ queueSize: 4,
140
+ // Part size: 5MB minimum for S3
141
+ partSize: 5 * 1024 * 1024,
142
+ // Don't leave orphaned parts on error
143
+ leavePartsOnError: false,
144
+ });
145
+ await upload.done();
146
+ // Get the actual uploaded size via HeadObject
147
+ const headResponse = await this.client.send(new HeadObjectCommand({
148
+ Bucket: this.bucket,
149
+ Key: path,
150
+ }));
151
+ return {
152
+ path,
153
+ disk: this.disk,
154
+ fullPath: `${this.bucket}/${path}`,
155
+ size: headResponse.ContentLength ?? options.size ?? 0,
156
+ mimeType: options.mimeType ?? 'application/octet-stream',
157
+ uploadedAt: new Date(),
158
+ };
159
+ }
160
+ // ============================================
161
+ // IS3MultipartProvider - Multipart upload methods
162
+ // ============================================
163
+ /**
164
+ * Get the bucket name
165
+ */
166
+ getBucket() {
167
+ return this.bucket;
168
+ }
169
+ /**
170
+ * Get object metadata without downloading the body
171
+ */
172
+ async headObject(key) {
173
+ const response = await this.client.send(new HeadObjectCommand({
174
+ Bucket: this.bucket,
175
+ Key: key,
176
+ }));
177
+ return {
178
+ size: response.ContentLength ?? 0,
179
+ contentType: response.ContentType,
180
+ metadata: response.Metadata,
181
+ };
182
+ }
183
+ /**
184
+ * Delete multiple objects in a single request
185
+ */
186
+ async deleteObjects(keys) {
187
+ if (keys.length === 0) {
188
+ return { deleted: 0, errors: [] };
189
+ }
190
+ const response = await this.client.send(new DeleteObjectsCommand({
191
+ Bucket: this.bucket,
192
+ Delete: {
193
+ Objects: keys.map((key) => ({ Key: key })),
194
+ },
195
+ }));
196
+ return {
197
+ deleted: response.Deleted?.length ?? 0,
198
+ errors: (response.Errors ?? []).map((e) => ({
199
+ key: e.Key ?? '',
200
+ code: e.Code ?? 'Unknown',
201
+ message: e.Message ?? 'Unknown error',
202
+ })),
203
+ };
204
+ }
205
+ /**
206
+ * Create a multipart upload
207
+ */
208
+ async createMultipartUpload(key, options) {
209
+ const response = await this.client.send(new CreateMultipartUploadCommand({
210
+ Bucket: this.bucket,
211
+ Key: key,
212
+ ContentType: options?.contentType,
213
+ CacheControl: options?.cacheControl,
214
+ Metadata: options?.metadata,
215
+ Tagging: options?.tagging,
216
+ }));
217
+ return {
218
+ uploadId: response.UploadId ?? '',
219
+ key: response.Key ?? '',
220
+ };
221
+ }
222
+ /**
223
+ * Upload a part to an existing multipart upload
224
+ */
225
+ async uploadPart(key, uploadId, partNumber, body) {
226
+ const response = await this.client.send(new UploadPartCommand({
227
+ Bucket: this.bucket,
228
+ Key: key,
229
+ UploadId: uploadId,
230
+ PartNumber: partNumber,
231
+ Body: body,
232
+ ContentLength: body.length,
233
+ }));
234
+ return {
235
+ etag: response.ETag ?? '',
236
+ partNumber,
237
+ };
238
+ }
239
+ /**
240
+ * Complete a multipart upload
241
+ */
242
+ async completeMultipartUpload(key, uploadId, parts) {
243
+ const response = await this.client.send(new CompleteMultipartUploadCommand({
244
+ Bucket: this.bucket,
245
+ Key: key,
246
+ UploadId: uploadId,
247
+ MultipartUpload: {
248
+ Parts: parts.map((p) => ({
249
+ ETag: p.etag,
250
+ PartNumber: p.partNumber,
251
+ })),
252
+ },
253
+ }));
254
+ return {
255
+ location: response.Location,
256
+ key: response.Key ?? '',
257
+ };
258
+ }
259
+ /**
260
+ * Abort a multipart upload
261
+ */
262
+ async abortMultipartUpload(key, uploadId) {
263
+ await this.client.send(new AbortMultipartUploadCommand({
264
+ Bucket: this.bucket,
265
+ Key: key,
266
+ UploadId: uploadId,
267
+ }));
268
+ }
269
+ /**
270
+ * List parts of a multipart upload
271
+ */
272
+ async listParts(key, uploadId, partNumberMarker) {
273
+ const response = await this.client.send(new ListPartsCommand({
274
+ Bucket: this.bucket,
275
+ Key: key,
276
+ UploadId: uploadId,
277
+ PartNumberMarker: partNumberMarker,
278
+ }));
279
+ return {
280
+ parts: (response.Parts ?? []).map((p) => ({
281
+ partNumber: p.PartNumber ?? 0,
282
+ etag: p.ETag ?? '',
283
+ size: p.Size ?? 0,
284
+ })),
285
+ isTruncated: response.IsTruncated ?? false,
286
+ nextPartNumberMarker: response.NextPartNumberMarker?.toString(),
287
+ };
288
+ }
289
+ /**
290
+ * List all in-progress multipart uploads
291
+ */
292
+ async listMultipartUploads(keyMarker, uploadIdMarker) {
293
+ const response = await this.client.send(new ListMultipartUploadsCommand({
294
+ Bucket: this.bucket,
295
+ KeyMarker: keyMarker,
296
+ UploadIdMarker: uploadIdMarker,
297
+ }));
298
+ return {
299
+ uploads: (response.Uploads ?? []).map((u) => ({
300
+ key: u.Key ?? '',
301
+ uploadId: u.UploadId ?? '',
302
+ initiated: u.Initiated,
303
+ })),
304
+ isTruncated: response.IsTruncated ?? false,
305
+ nextKeyMarker: response.NextKeyMarker,
306
+ nextUploadIdMarker: response.NextUploadIdMarker,
307
+ };
308
+ }
309
+ }
310
+ //# sourceMappingURL=s3-storage.provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"s3-storage.provider.js","sourceRoot":"","sources":["../../../src/storage/providers/s3-storage.provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import type { PutObjectCommandInput } from '@aws-sdk/client-s3';
2
+ import type { DownloadResult, PresignedUrlResult, UploadOptions, UploadResult } from '../contracts';
3
+ /**
4
+ * Streaming blob payload input types from AWS SDK
5
+ * Represents the types that can be used as the Body of a PutObjectCommand
6
+ */
7
+ export type StreamingBlobPayloadInputTypes = PutObjectCommandInput['Body'];
8
+ /**
9
+ * Storage provider interface
10
+ * Defines the contract for storage implementations (R2, S3, GCS, etc.)
11
+ */
12
+ export interface IStorageProvider {
13
+ /**
14
+ * Upload content to storage
15
+ * @param body - Content to upload (stream, buffer, or string)
16
+ * @param path - Full path including disk root
17
+ * @param options - Upload options including size and mime type
18
+ * @returns Upload result with metadata
19
+ */
20
+ upload(body: StreamingBlobPayloadInputTypes, path: string, options: UploadOptions): Promise<UploadResult>;
21
+ /**
22
+ * Download a file from storage
23
+ * @param path - Full path to the file
24
+ * @returns Download result with stream and metadata
25
+ */
26
+ download(path: string): Promise<DownloadResult>;
27
+ /**
28
+ * Delete a file from storage
29
+ * @param path - Full path to the file
30
+ */
31
+ delete(path: string): Promise<void>;
32
+ /**
33
+ * Check if a file exists in storage
34
+ * @param path - Full path to the file
35
+ * @returns True if file exists, false otherwise
36
+ */
37
+ exists(path: string): Promise<boolean>;
38
+ /**
39
+ * Generate a presigned URL for temporary access
40
+ * @param path - Full path to the file
41
+ * @param method - HTTP method (GET, PUT, DELETE, HEAD)
42
+ * @param expiresIn - Expiry time in seconds (1-604800)
43
+ * @returns Presigned URL result
44
+ */
45
+ getPresignedUrl(path: string, method: 'GET' | 'PUT' | 'DELETE' | 'HEAD', expiresIn: number): Promise<PresignedUrlResult>;
46
+ /**
47
+ * Chunked upload for streaming data without known size
48
+ * Uses multipart upload under the hood for reliability
49
+ * @param body - Content to upload (stream or buffer)
50
+ * @param path - Full path including disk root
51
+ * @param options - Upload options (mimeType required, size optional)
52
+ * @returns Upload result with metadata
53
+ */
54
+ chunkedUpload(body: StreamingBlobPayloadInputTypes, path: string, options: Omit<UploadOptions, 'size'> & {
55
+ size?: number;
56
+ }): Promise<UploadResult>;
57
+ }
58
+ //# sourceMappingURL=storage-provider.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-provider.interface.d.ts","sourceRoot":"","sources":["../../../src/storage/providers/storage-provider.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAEnG;;;GAGG;AACH,MAAM,MAAM,8BAA8B,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAA;AAE1E;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,EAAE,8BAA8B,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IAEzG;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;IAE/C;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEnC;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAEtC;;;;;;OAMG;IACH,eAAe,CACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,EACzC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,kBAAkB,CAAC,CAAA;IAE9B;;;;;;;OAOG;IACH,aAAa,CACX,IAAI,EAAE,8BAA8B,EACpC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GACvD,OAAO,CAAC,YAAY,CAAC,CAAA;CACzB"}