@marinoscar/platform-api 0.1.0-next.22 → 0.1.0-next.24

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 (170) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/core/data-access/access-reason.registry.d.ts +4 -1
  3. package/dist/core/data-access/access-reason.registry.d.ts.map +1 -1
  4. package/dist/core/data-access/access-reason.registry.js +5 -0
  5. package/dist/core/data-access/access-reason.registry.js.map +1 -1
  6. package/dist/core/testing/vocabulary-conformance.js +2 -2
  7. package/dist/core/testing/vocabulary-conformance.js.map +1 -1
  8. package/dist/notifications/channels/browser-notification.channel.d.ts +11 -0
  9. package/dist/notifications/channels/browser-notification.channel.d.ts.map +1 -1
  10. package/dist/notifications/channels/browser-notification.channel.js +71 -48
  11. package/dist/notifications/channels/browser-notification.channel.js.map +1 -1
  12. package/dist/notifications/data/notifications-db.d.ts +19 -0
  13. package/dist/notifications/data/notifications-db.d.ts.map +1 -1
  14. package/dist/notifications/dto/notification.dto.d.ts +4 -0
  15. package/dist/notifications/dto/notification.dto.d.ts.map +1 -1
  16. package/dist/notifications/index.d.ts +1 -1
  17. package/dist/notifications/index.d.ts.map +1 -1
  18. package/dist/notifications/index.js.map +1 -1
  19. package/dist/notifications/notification-inbox-writer.d.ts +112 -0
  20. package/dist/notifications/notification-inbox-writer.d.ts.map +1 -0
  21. package/dist/notifications/notification-inbox-writer.js +217 -0
  22. package/dist/notifications/notification-inbox-writer.js.map +1 -0
  23. package/dist/notifications/notification-store.service.d.ts +10 -0
  24. package/dist/notifications/notification-store.service.d.ts.map +1 -1
  25. package/dist/notifications/notification-store.service.js +55 -10
  26. package/dist/notifications/notification-store.service.js.map +1 -1
  27. package/dist/notifications/notification-stream.service.d.ts +8 -0
  28. package/dist/notifications/notification-stream.service.d.ts.map +1 -1
  29. package/dist/notifications/notification-stream.service.js.map +1 -1
  30. package/dist/notifications/notification.types.d.ts +74 -0
  31. package/dist/notifications/notification.types.d.ts.map +1 -1
  32. package/dist/notifications/notification.types.js.map +1 -1
  33. package/dist/notifications/notifications.controller.d.ts +1 -0
  34. package/dist/notifications/notifications.controller.d.ts.map +1 -1
  35. package/dist/notifications/notifications.controller.js +23 -0
  36. package/dist/notifications/notifications.controller.js.map +1 -1
  37. package/dist/notifications/notifications.service.d.ts +56 -1
  38. package/dist/notifications/notifications.service.d.ts.map +1 -1
  39. package/dist/notifications/notifications.service.js +122 -0
  40. package/dist/notifications/notifications.service.js.map +1 -1
  41. package/dist/notifications/registry/event.registry.d.ts +15 -0
  42. package/dist/notifications/registry/event.registry.d.ts.map +1 -1
  43. package/dist/notifications/registry/event.registry.js +3 -0
  44. package/dist/notifications/registry/event.registry.js.map +1 -1
  45. package/dist/notifications/retention/notification-inbox-purge.handler.d.ts.map +1 -1
  46. package/dist/notifications/retention/notification-inbox-purge.handler.js +16 -4
  47. package/dist/notifications/retention/notification-inbox-purge.handler.js.map +1 -1
  48. package/dist/notifications/testing/index.d.ts +2 -0
  49. package/dist/notifications/testing/index.d.ts.map +1 -1
  50. package/dist/notifications/testing/index.js +5 -1
  51. package/dist/notifications/testing/index.js.map +1 -1
  52. package/dist/sharing/events.d.ts +23 -0
  53. package/dist/sharing/events.d.ts.map +1 -1
  54. package/dist/sharing/events.js +1 -0
  55. package/dist/sharing/events.js.map +1 -1
  56. package/dist/sharing/groups/group-common.d.ts +1 -1
  57. package/dist/sharing/groups/group-common.d.ts.map +1 -1
  58. package/dist/sharing/groups/group-common.js.map +1 -1
  59. package/dist/sharing/groups/group-invites.service.d.ts +77 -2
  60. package/dist/sharing/groups/group-invites.service.d.ts.map +1 -1
  61. package/dist/sharing/groups/group-invites.service.js +181 -0
  62. package/dist/sharing/groups/group-invites.service.js.map +1 -1
  63. package/dist/sharing/groups/invite-auto-accept.listener.d.ts +37 -0
  64. package/dist/sharing/groups/invite-auto-accept.listener.d.ts.map +1 -0
  65. package/dist/sharing/groups/invite-auto-accept.listener.js +115 -0
  66. package/dist/sharing/groups/invite-auto-accept.listener.js.map +1 -0
  67. package/dist/sharing/index.d.ts +5 -3
  68. package/dist/sharing/index.d.ts.map +1 -1
  69. package/dist/sharing/index.js +6 -3
  70. package/dist/sharing/index.js.map +1 -1
  71. package/dist/sharing/metrics.d.ts +1 -1
  72. package/dist/sharing/metrics.d.ts.map +1 -1
  73. package/dist/sharing/metrics.js +1 -0
  74. package/dist/sharing/metrics.js.map +1 -1
  75. package/dist/sharing/ports.d.ts +3 -2
  76. package/dist/sharing/ports.d.ts.map +1 -1
  77. package/dist/sharing/ports.js.map +1 -1
  78. package/dist/sharing/sharing.module.d.ts.map +1 -1
  79. package/dist/sharing/sharing.module.js +3 -0
  80. package/dist/sharing/sharing.module.js.map +1 -1
  81. package/dist/sharing/sharing.options.d.ts +39 -5
  82. package/dist/sharing/sharing.options.d.ts.map +1 -1
  83. package/dist/sharing/sharing.options.js +17 -8
  84. package/dist/sharing/sharing.options.js.map +1 -1
  85. package/dist/storage/config/storage-config.service.d.ts +24 -0
  86. package/dist/storage/config/storage-config.service.d.ts.map +1 -1
  87. package/dist/storage/config/storage-config.service.js +31 -5
  88. package/dist/storage/config/storage-config.service.js.map +1 -1
  89. package/dist/storage/handlers/storage-cleanup.handler.d.ts +3 -1
  90. package/dist/storage/handlers/storage-cleanup.handler.d.ts.map +1 -1
  91. package/dist/storage/handlers/storage-cleanup.handler.js +10 -3
  92. package/dist/storage/handlers/storage-cleanup.handler.js.map +1 -1
  93. package/dist/storage/index.d.ts +5 -1
  94. package/dist/storage/index.d.ts.map +1 -1
  95. package/dist/storage/index.js +12 -3
  96. package/dist/storage/index.js.map +1 -1
  97. package/dist/storage/objects/dto/get-part-urls.dto.d.ts +26 -0
  98. package/dist/storage/objects/dto/get-part-urls.dto.d.ts.map +1 -0
  99. package/dist/storage/objects/dto/get-part-urls.dto.js +25 -0
  100. package/dist/storage/objects/dto/get-part-urls.dto.js.map +1 -0
  101. package/dist/storage/objects/dto/init-upload.dto.d.ts +2 -1
  102. package/dist/storage/objects/dto/init-upload.dto.d.ts.map +1 -1
  103. package/dist/storage/objects/objects.controller.d.ts +13 -1
  104. package/dist/storage/objects/objects.controller.d.ts.map +1 -1
  105. package/dist/storage/objects/objects.controller.js +88 -1
  106. package/dist/storage/objects/objects.controller.js.map +1 -1
  107. package/dist/storage/objects/objects.service.d.ts +46 -1
  108. package/dist/storage/objects/objects.service.d.ts.map +1 -1
  109. package/dist/storage/objects/objects.service.js +277 -23
  110. package/dist/storage/objects/objects.service.js.map +1 -1
  111. package/dist/storage/objects/part-body-parser.d.ts +30 -0
  112. package/dist/storage/objects/part-body-parser.d.ts.map +1 -0
  113. package/dist/storage/objects/part-body-parser.js +45 -0
  114. package/dist/storage/objects/part-body-parser.js.map +1 -0
  115. package/dist/storage/objects/part-body.d.ts +23 -0
  116. package/dist/storage/objects/part-body.d.ts.map +1 -0
  117. package/dist/storage/objects/part-body.js +48 -0
  118. package/dist/storage/objects/part-body.js.map +1 -0
  119. package/dist/storage/processing/object-processing.service.d.ts +4 -1
  120. package/dist/storage/processing/object-processing.service.d.ts.map +1 -1
  121. package/dist/storage/processing/object-processing.service.js +11 -3
  122. package/dist/storage/processing/object-processing.service.js.map +1 -1
  123. package/dist/storage/profile-image/avatar.service.d.ts +3 -1
  124. package/dist/storage/profile-image/avatar.service.d.ts.map +1 -1
  125. package/dist/storage/profile-image/avatar.service.js +8 -3
  126. package/dist/storage/profile-image/avatar.service.js.map +1 -1
  127. package/dist/storage/profile-image/profile-image.service.d.ts +4 -1
  128. package/dist/storage/profile-image/profile-image.service.d.ts.map +1 -1
  129. package/dist/storage/profile-image/profile-image.service.js +11 -5
  130. package/dist/storage/profile-image/profile-image.service.js.map +1 -1
  131. package/dist/storage/providers/index.d.ts +3 -1
  132. package/dist/storage/providers/index.d.ts.map +1 -1
  133. package/dist/storage/providers/index.js +8 -1
  134. package/dist/storage/providers/index.js.map +1 -1
  135. package/dist/storage/providers/resolving-storage.provider.d.ts +11 -0
  136. package/dist/storage/providers/resolving-storage.provider.d.ts.map +1 -1
  137. package/dist/storage/providers/resolving-storage.provider.js +13 -0
  138. package/dist/storage/providers/resolving-storage.provider.js.map +1 -1
  139. package/dist/storage/providers/s3/s3-storage.provider.d.ts +9 -1
  140. package/dist/storage/providers/s3/s3-storage.provider.d.ts.map +1 -1
  141. package/dist/storage/providers/s3/s3-storage.provider.js +37 -0
  142. package/dist/storage/providers/s3/s3-storage.provider.js.map +1 -1
  143. package/dist/storage/providers/storage-provider-router.d.ts +64 -0
  144. package/dist/storage/providers/storage-provider-router.d.ts.map +1 -0
  145. package/dist/storage/providers/storage-provider-router.js +161 -0
  146. package/dist/storage/providers/storage-provider-router.js.map +1 -0
  147. package/dist/storage/providers/storage-provider.interface.d.ts +34 -1
  148. package/dist/storage/providers/storage-provider.interface.d.ts.map +1 -1
  149. package/dist/storage/providers/storage-provider.interface.js.map +1 -1
  150. package/dist/storage/providers/storage-provider.types.d.ts +86 -0
  151. package/dist/storage/providers/storage-provider.types.d.ts.map +1 -1
  152. package/dist/storage/providers/storage-provider.types.js +78 -0
  153. package/dist/storage/providers/storage-provider.types.js.map +1 -1
  154. package/dist/storage/providers/storage-providers.module.d.ts.map +1 -1
  155. package/dist/storage/providers/storage-providers.module.js +3 -1
  156. package/dist/storage/providers/storage-providers.module.js.map +1 -1
  157. package/dist/storage/testing/conformance.d.ts +12 -0
  158. package/dist/storage/testing/conformance.d.ts.map +1 -1
  159. package/dist/storage/testing/conformance.js +112 -0
  160. package/dist/storage/testing/conformance.js.map +1 -1
  161. package/dist/storage/testing/driver-conformance.d.ts +13 -1
  162. package/dist/storage/testing/driver-conformance.d.ts.map +1 -1
  163. package/dist/storage/testing/driver-conformance.js +134 -0
  164. package/dist/storage/testing/driver-conformance.js.map +1 -1
  165. package/dist/storage/testing/index.d.ts +1 -1
  166. package/dist/storage/testing/index.d.ts.map +1 -1
  167. package/dist/storage/testing/index.js +2 -1
  168. package/dist/storage/testing/index.js.map +1 -1
  169. package/dist/telemetry/stack/dto/telemetry-stack.dto.d.ts +1 -1
  170. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"s3-storage.provider.js","sourceRoot":"","sources":["../../../../src/storage/providers/s3/s3-storage.provider.ts"],"names":[],"mappings":";;;AA4KA,kDAkDC;AA9ND,2CAAwC;AACxC,kDAa4B;AAC5B,sDAA8C;AAC9C,wEAA6D;AAa7D;;;;;;;;;GASG;AACU,QAAA,oBAAoB,GAAG,UAAU,CAAC;AAoE/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AACH,SAAgB,mBAAmB,CAAC,MAA+B;IACjE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;IAE5E,MAAM,YAAY,GAAmB;QACnC,MAAM;QACN,QAAQ;QACR,WAAW,EACT,WAAW,IAAI,eAAe;YAC5B,CAAC,CAAC;gBACE,WAAW;gBACX,eAAe;aAChB;YACH,CAAC,CAAC,SAAS;QACf,uEAAuE;QACvE,yEAAyE;QACzE,yEAAyE;QACzE,sEAAsE;QACtE,yEAAyE;QACzE,wCAAwC;QACxC,EAAE;QACF,wEAAwE;QACxE,wEAAwE;QACxE,yDAAyD;QACzD,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,QAAQ,KAAK,cAAc;KACrE,CAAC;IAEF,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,kEAAkE;QAClE,EAAE;QACF,2EAA2E;QAC3E,kEAAkE;QAClE,2EAA2E;QAC3E,4EAA4E;QAC5E,sEAAsE;QACtE,4EAA4E;QAC5E,oEAAoE;QACpE,2EAA2E;QAC3E,mBAAmB;QACnB,EAAE;QACF,2EAA2E;QAC3E,2EAA2E;QAC3E,yEAAyE;QACzE,sEAAsE;QACtE,yEAAyE;QACzE,yDAAyD;QACzD,YAAY,CAAC,0BAA0B,GAAG,eAAe,CAAC;QAC1D,YAAY,CAAC,0BAA0B,GAAG,eAAe,CAAC;IAC5D,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,gBAAgB,CAAC,MAAc,EAAE,GAAW;IACnD,OAAO,GAAG,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AACzE,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAa,iBAAiB;IACX,MAAM,GAAG,IAAI,eAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC5C,QAAQ,CAAW;IACnB,MAAM,CAAS;IACf,QAAQ,CAAS;IAElC;;;;;;OAMG;IACM,IAAI,CAAsB;IAEnC;;;;OAIG;IACH,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,YAAY,MAA+B;QACzC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QAE9C,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,4BAAoB,CAAC;QAExD,0EAA0E;QAC1E,2EAA2E;QAC3E,sEAAsE;QACtE,wEAAwE;QACxE,uEAAuE;QACvE,qDAAqD;QACrD,EAAE;QACF,2EAA2E;QAC3E,kEAAkE;QAClE,+BAA+B;QAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAQ,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;QAE1D,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,6CAA6C,QAAQ,aAAa,IAAI,CAAC,MAAM,aAAa,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,eAAe,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC/I,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,OAAO;QACL,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CACV,GAAW,EACX,MAAgB,EAChB,OAA6B;QAE7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,GAAG,EAAE,CAAC,CAAC;QAErD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,oBAAM,CAAC;gBACxB,MAAM,EAAE,IAAI,CAAC,QAAQ;gBACrB,MAAM,EAAE;oBACN,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,GAAG,EAAE,GAAG;oBACR,IAAI,EAAE,MAAM;oBACZ,WAAW,EAAE,OAAO,CAAC,QAAQ;oBAC7B,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE;oBAChC,aAAa,EAAE,OAAO,CAAC,aAAa;iBACrC;gBACD,2DAA2D;gBAC3D,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAEnC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAC;YAEpD,OAAO;gBACL,GAAG;gBACH,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,GAAG,IAAI,CAAC,MAAM,IAAI,GAAG,EAAE;gBACpD,IAAI,EAAE,MAAM,CAAC,IAAI;aAClB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,GAAG,KAAK,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;YACrE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CACvB,GAAW,EACX,OAA6B;QAE7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,GAAG,EAAE,CAAC,CAAC;QAEjE,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,wCAA4B,CAAC;gBAC/C,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,GAAG,EAAE,GAAG;gBACR,WAAW,EAAE,OAAO,CAAC,QAAQ;gBAC7B,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE;aACjC,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEjD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;YAChF,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,uCAAuC,GAAG,eAAe,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAE5F,OAAO;gBACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,GAAG;aACJ,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/D,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,+CAA+C,GAAG,KAAK,OAAO,EAAE,EAChE,KAAK,CACN,CAAC;YACF,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CACtB,GAAW,EACX,QAAgB,EAChB,UAAkB,EAClB,YAAoB,IAAI;QAExB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,yCAAyC,GAAG,WAAW,UAAU,EAAE,CACpE,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,6BAAiB,CAAC;gBACpC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,GAAG,EAAE,GAAG;gBACR,QAAQ,EAAE,QAAQ;gBAClB,UAAU,EAAE,UAAU;aACvB,CAAC,CAAC;YAEH,MAAM,SAAS,GAAG,MAAM,IAAA,mCAAY,EAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE;gBAC3D,SAAS;aACV,CAAC,CAAC;YAEH,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/D,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,gDAAgD,GAAG,UAAU,UAAU,KAAK,OAAO,EAAE,EACrF,KAAK,CACN,CAAC;YACF,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,uBAAuB,CAC3B,GAAW,EACX,QAAgB,EAChB,KAAmB;QAEnB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,wCAAwC,GAAG,KAAK,KAAK,CAAC,MAAM,QAAQ,CACrE,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,0CAA8B,CAAC;gBACjD,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,GAAG,EAAE,GAAG;gBACR,QAAQ,EAAE,QAAQ;gBAClB,eAAe,EAAE;oBACf,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;wBAC1B,UAAU,EAAE,IAAI,CAAC,UAAU;wBAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;qBAChB,CAAC,CAAC;iBACJ;aACF,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEjD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,uCAAuC,GAAG,EAAE,CAAC,CAAC;YAE9D,OAAO;gBACL,GAAG;gBACH,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,GAAG,IAAI,CAAC,MAAM,IAAI,GAAG,EAAE;gBACpD,IAAI,EAAE,MAAM,CAAC,IAAI;aAClB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/D,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,+CAA+C,GAAG,KAAK,OAAO,EAAE,EAChE,KAAK,CACN,CAAC;YACF,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,oBAAoB,CAAC,GAAW,EAAE,QAAgB;QACtD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,GAAG,EAAE,CAAC,CAAC;QAE/D,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,uCAA2B,CAAC;gBAC9C,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,GAAG,EAAE,GAAG;gBACR,QAAQ,EAAE,QAAQ;aACnB,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAElC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,qCAAqC,GAAG,EAAE,CAAC,CAAC;QAC9D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/D,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,4CAA4C,GAAG,KAAK,OAAO,EAAE,EAC7D,KAAK,CACN,CAAC;YACF,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,GAAW;QACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAC;QAEtD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,4BAAgB,CAAC;gBACnC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,GAAG,EAAE,GAAG;aACT,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEjD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAC9C,CAAC;YAED,+BAA+B;YAC/B,OAAO,MAAM,CAAC,IAAgB,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/D,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,mCAAmC,GAAG,KAAK,OAAO,EAAE,EACpD,KAAK,CACN,CAAC;YACF,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,oBAAoB,CACxB,GAAW,EACX,OAA0B;QAE1B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,GAAG,EAAE,CAAC,CAAC;QAEpE,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC;YAE7C,MAAM,OAAO,GAAG,IAAI,4BAAgB,CAAC;gBACnC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,GAAG,EAAE,GAAG;gBACR,0BAA0B,EAAE,OAAO,EAAE,0BAA0B;aAChE,CAAC,CAAC;YAEH,MAAM,SAAS,GAAG,MAAM,IAAA,mCAAY,EAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE;gBAC3D,SAAS;aACV,CAAC,CAAC;YAEH,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/D,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,kDAAkD,GAAG,KAAK,OAAO,EAAE,EACnE,KAAK,CACN,CAAC;YACF,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,eAAe,CACnB,GAAW,EACX,OAA6B;QAE7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,GAAG,EAAE,CAAC,CAAC;QAE/D,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC;YAE7C,MAAM,OAAO,GAAG,IAAI,4BAAgB,CAAC;gBACnC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,GAAG,EAAE,GAAG;gBACR,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACtE,CAAC,CAAC;YAEH,OAAO,MAAM,IAAA,mCAAY,EAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QACnE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/D,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,6CAA6C,GAAG,KAAK,OAAO,EAAE,EAC9D,KAAK,CACN,CAAC;YACF,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAC;QAEnD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,+BAAmB,CAAC;gBACtC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,GAAG,EAAE,GAAG;aACT,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAElC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,GAAG,EAAE,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/D,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,iCAAiC,GAAG,KAAK,OAAO,EAAE,EAClD,KAAK,CACN,CAAC;YACF,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,GAAW;QAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAC;QAEtD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,6BAAiB,CAAC;gBACpC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,GAAG,EAAE,GAAG;aACT,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEjD,OAAO,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,oBAAQ,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE,CAAC;gBACtH,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/D,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,kCAAkC,GAAG,KAAK,OAAO,EAAE,EACnD,KAAK,CACN,CAAC;YACF,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,WAAW,CACf,GAAW,EACX,QAAgC;QAEhC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAC;QAEtD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,6BAAiB,CAAC;gBACpC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,GAAG,EAAE,GAAG;gBACR,UAAU,EAAE,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC;gBAC9C,QAAQ,EAAE,QAAQ;gBAClB,iBAAiB,EAAE,SAAS;aAC7B,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAElC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/D,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,kCAAkC,GAAG,KAAK,OAAO,EAAE,EACnD,KAAK,CACN,CAAC;YACF,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,6BAAiB,CAAC;gBACpC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,GAAG,EAAE,GAAG;aACT,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,oBAAQ,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE,CAAC;gBACtH,OAAO,KAAK,CAAC;YACf,CAAC;YACD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/D,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,oCAAoC,GAAG,KAAK,OAAO,EAAE,EACrD,KAAK,CACN,CAAC;YACF,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AAzeD,8CAyeC"}
1
+ {"version":3,"file":"s3-storage.provider.js","sourceRoot":"","sources":["../../../../src/storage/providers/s3/s3-storage.provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import { ConfigService } from '@nestjs/config';
2
+ import { StorageConfigService } from '../config/storage-config.service';
3
+ import { type StorageProvider } from './storage-provider.interface';
4
+ /**
5
+ * Where an object's bytes are recorded to live: the `storage_provider` and
6
+ * `bucket` columns of `storage_objects`.
7
+ *
8
+ * @stability experimental
9
+ */
10
+ export interface StorageLocation {
11
+ /** The storage driver id the object was written through (`s3`, `r2`, `local`, ...). */
12
+ provider: string;
13
+ /** The bucket, container or root the object was written to. Empty means "the driver's current one". */
14
+ bucket: string;
15
+ }
16
+ /**
17
+ * Resolves the storage provider of an object's recorded location, so downloads, deletes, existence checks, processing reads and the calls of an in-flight multipart upload keep working after the active driver changes.
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * const provider = await this.router.forObject(row);
22
+ * const url = await provider.getSignedDownloadUrl(row.storageKey);
23
+ * ```
24
+ *
25
+ * @extensionPoint token
26
+ * @stability experimental
27
+ */
28
+ export declare class StorageProviderRouter {
29
+ private readonly active;
30
+ private readonly storageConfig?;
31
+ private readonly configService?;
32
+ private readonly logger;
33
+ private clients;
34
+ constructor(active: StorageProvider, storageConfig?: StorageConfigService | undefined, configService?: ConfigService | undefined);
35
+ /**
36
+ * The provider for a recorded location.
37
+ *
38
+ * @param location - the `(storage_provider, bucket)` pair a row recorded, or `null`/empty for a legacy row.
39
+ * @returns the active provider's client for a null or active location, otherwise a client for the recorded driver.
40
+ * @throws StorageNotConfiguredError (503) when no provider is configured at all (the active one included).
41
+ */
42
+ forLocation(location: StorageLocation | null): Promise<StorageProvider>;
43
+ /**
44
+ * The provider for a row.
45
+ *
46
+ * @param object - anything carrying the row's `storageProvider` and `bucket`.
47
+ * @returns see {@link StorageProviderRouter.forLocation}.
48
+ */
49
+ forObject(object: {
50
+ storageProvider: string | null;
51
+ bucket: string | null;
52
+ }): Promise<StorageProvider>;
53
+ /**
54
+ * The row's bucket wins over the driver's current one when they differ and the
55
+ * driver's settings carry a `bucket`: the bytes are where the row says, whatever
56
+ * an administrator has typed since. A driver without a `bucket` setting (a local
57
+ * root) is built as configured.
58
+ */
59
+ private withRecordedBucket;
60
+ private readonly warned;
61
+ private warnOnce;
62
+ private clientFor;
63
+ }
64
+ //# sourceMappingURL=storage-provider-router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-provider-router.d.ts","sourceRoot":"","sources":["../../../src/storage/providers/storage-provider-router.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAI/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAGxE,OAAO,EAAoB,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAC;AA2CtF;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,uFAAuF;IACvF,QAAQ,EAAE,MAAM,CAAC;IACjB,uGAAuG;IACvG,MAAM,EAAE,MAAM,CAAC;CAChB;AAwBD;;;;;;;;;;;GAWG;AACH,qBACa,qBAAqB;IAMJ,OAAO,CAAC,QAAQ,CAAC,MAAM;IACrC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IAP7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0C;IAEjE,OAAO,CAAC,OAAO,CAAsB;gBAGQ,MAAM,EAAE,eAAe,EACrC,aAAa,CAAC,EAAE,oBAAoB,YAAA,EACpC,aAAa,CAAC,EAAE,aAAa,YAAA;IAG5D;;;;;;OAMG;IACG,WAAW,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC;IAkC7E;;;;;OAKG;IACG,SAAS,CAAC,MAAM,EAAE;QAAE,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAM5G;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAE5C,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,SAAS;CAiDlB"}
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var StorageProviderRouter_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.StorageProviderRouter = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ const config_1 = require("@nestjs/config");
19
+ const storage_config_1 = require("../config/storage-config");
20
+ const storage_driver_context_1 = require("../config/storage-driver-context");
21
+ const storage_config_service_1 = require("../config/storage-config.service");
22
+ const storage_driver_1 = require("../drivers/storage-driver");
23
+ const storage_provider_interface_1 = require("./storage-provider.interface");
24
+ /**
25
+ * How many non-active clients are kept. A rotation window over the handful of
26
+ * providers a deployment has ever used, not a per-tenant cache; the least
27
+ * recently used one is released first.
28
+ */
29
+ const ROUTER_CACHE_LIMIT = 8;
30
+ function resolvesCurrent(provider) {
31
+ return typeof provider.resolveCurrent === 'function';
32
+ }
33
+ /**
34
+ * Resolves the storage provider of an object's recorded location, so downloads, deletes, existence checks, processing reads and the calls of an in-flight multipart upload keep working after the active driver changes.
35
+ *
36
+ * @example
37
+ * ```ts
38
+ * const provider = await this.router.forObject(row);
39
+ * const url = await provider.getSignedDownloadUrl(row.storageKey);
40
+ * ```
41
+ *
42
+ * @extensionPoint token
43
+ * @stability experimental
44
+ */
45
+ let StorageProviderRouter = StorageProviderRouter_1 = class StorageProviderRouter {
46
+ active;
47
+ storageConfig;
48
+ configService;
49
+ logger = new common_1.Logger(StorageProviderRouter_1.name);
50
+ clients = [];
51
+ constructor(active, storageConfig, configService) {
52
+ this.active = active;
53
+ this.storageConfig = storageConfig;
54
+ this.configService = configService;
55
+ }
56
+ /**
57
+ * The provider for a recorded location.
58
+ *
59
+ * @param location - the `(storage_provider, bucket)` pair a row recorded, or `null`/empty for a legacy row.
60
+ * @returns the active provider's client for a null or active location, otherwise a client for the recorded driver.
61
+ * @throws StorageNotConfiguredError (503) when no provider is configured at all (the active one included).
62
+ */
63
+ async forLocation(location) {
64
+ const active = this.active;
65
+ // An app-bound provider routes itself.
66
+ if (!resolvesCurrent(active) || !this.storageConfig) {
67
+ return active;
68
+ }
69
+ if (!location || !location.provider) {
70
+ return active.resolveCurrent();
71
+ }
72
+ const resolution = await this.storageConfig.resolveDriver(location.provider);
73
+ if (!resolution.configured) {
74
+ // The recorded driver cannot be built (removed, or never configured here):
75
+ // use the one in force, exactly as before routing existed. This is what
76
+ // keeps rows written before #373 working, which recorded `s3` whatever
77
+ // provider took the bytes. If the bytes really are elsewhere the backend's
78
+ // own not-found says so; a 503 here would lock those rows out for nothing.
79
+ this.warnOnce(location.provider, resolution.missing);
80
+ return active.resolveCurrent();
81
+ }
82
+ const config = this.withRecordedBucket(resolution.config, location.bucket);
83
+ const activeId = await this.storageConfig.activeProvider();
84
+ if (location.provider === activeId && config === resolution.config) {
85
+ return active.resolveCurrent();
86
+ }
87
+ return this.clientFor(config);
88
+ }
89
+ /**
90
+ * The provider for a row.
91
+ *
92
+ * @param object - anything carrying the row's `storageProvider` and `bucket`.
93
+ * @returns see {@link StorageProviderRouter.forLocation}.
94
+ */
95
+ async forObject(object) {
96
+ return this.forLocation(object.storageProvider ? { provider: object.storageProvider, bucket: object.bucket ?? '' } : null);
97
+ }
98
+ /**
99
+ * The row's bucket wins over the driver's current one when they differ and the
100
+ * driver's settings carry a `bucket`: the bytes are where the row says, whatever
101
+ * an administrator has typed since. A driver without a `bucket` setting (a local
102
+ * root) is built as configured.
103
+ */
104
+ withRecordedBucket(config, recorded) {
105
+ if (!recorded || typeof config.settings.bucket !== 'string' || config.settings.bucket === recorded) {
106
+ return config;
107
+ }
108
+ return { ...config, bucket: recorded, settings: { ...config.settings, bucket: recorded } };
109
+ }
110
+ warned = new Set();
111
+ warnOnce(provider, missing) {
112
+ if (this.warned.has(provider))
113
+ return;
114
+ this.warned.add(provider);
115
+ this.logger.warn(`Rows recorded on storage driver "${provider}" are served by the active provider: "${provider}" is not usable here (missing ${missing.join(', ') || 'configuration'}).`);
116
+ }
117
+ clientFor(config) {
118
+ const fingerprint = (0, storage_config_1.fingerprintStorageConfig)(config);
119
+ const index = this.clients.findIndex((entry) => entry.fingerprint === fingerprint);
120
+ if (index >= 0) {
121
+ const [hit] = this.clients.splice(index, 1);
122
+ this.clients.unshift(hit);
123
+ return hit.provider;
124
+ }
125
+ const label = (0, storage_config_1.describeStorageConfig)(config);
126
+ this.logger.log(`Building routed storage client: ${label}`);
127
+ const driver = (0, storage_driver_1.requireStorageDriver)(config.provider);
128
+ const provider = Promise.resolve(driver.build((0, storage_driver_context_1.storageDriverContext)({
129
+ settings: config.settings,
130
+ secret: async (name) => config.secrets[name] ?? null,
131
+ logger: this.logger,
132
+ config: this.configService ?? { get: (_key, fallback) => fallback },
133
+ })));
134
+ const entry = { fingerprint, provider, label };
135
+ this.clients.unshift(entry);
136
+ // A failed build must not be cached: the next call tries again.
137
+ provider.catch(() => {
138
+ this.clients = this.clients.filter((candidate) => candidate !== entry);
139
+ });
140
+ while (this.clients.length > ROUTER_CACHE_LIMIT) {
141
+ const evicted = this.clients.pop();
142
+ if (!evicted)
143
+ break;
144
+ this.logger.log(`Releasing routed storage client: ${evicted.label}`);
145
+ void evicted.provider
146
+ .then((built) => built.destroy?.())
147
+ .catch((error) => this.logger.warn(`Failed to release a routed storage client: ${error instanceof Error ? error.message : String(error)}`));
148
+ }
149
+ return provider;
150
+ }
151
+ };
152
+ exports.StorageProviderRouter = StorageProviderRouter;
153
+ exports.StorageProviderRouter = StorageProviderRouter = StorageProviderRouter_1 = __decorate([
154
+ (0, common_1.Injectable)(),
155
+ __param(0, (0, common_1.Inject)(storage_provider_interface_1.STORAGE_PROVIDER)),
156
+ __param(1, (0, common_1.Optional)()),
157
+ __param(2, (0, common_1.Optional)()),
158
+ __metadata("design:paramtypes", [Object, storage_config_service_1.StorageConfigService,
159
+ config_1.ConfigService])
160
+ ], StorageProviderRouter);
161
+ //# sourceMappingURL=storage-provider-router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-provider-router.js","sourceRoot":"","sources":["../../../src/storage/providers/storage-provider-router.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Readable } from 'node:stream';
2
- import { StorageUploadOptions, StorageUploadResult, MultipartUploadInit, UploadPart, SignedUrlOptions, SignedPutUrlOptions } from './storage-provider.types';
2
+ import { StorageUploadOptions, StorageUploadResult, MultipartUploadInit, UploadPart, SignedUrlOptions, SignedPutUrlOptions, StoragePartUploadMode, StoredPart, UploadedPart } from './storage-provider.types';
3
3
  /**
4
4
  * Injection token of the object store every storage consumer injects.
5
5
  *
@@ -160,5 +160,38 @@ export interface StorageProvider {
160
160
  * @returns Bucket name
161
161
  */
162
162
  getBucket(): string;
163
+ /**
164
+ * How a client uploads part N. Absent or `'presigned'` means
165
+ * {@link StorageProvider.getSignedUploadUrl} (today's behaviour);
166
+ * `'proxied'` means the API's own part route and {@link StorageProvider.uploadPart}.
167
+ */
168
+ readonly partUploadMode?: StoragePartUploadMode;
169
+ /**
170
+ * The parts the BACKEND holds for an in-flight upload, so `GET :id/upload/status`
171
+ * reflects what really arrived: a client that uploads parts straight to S3
172
+ * never reports each one to the API, and a crashed client would otherwise see
173
+ * an empty list and re-send everything. Absent means status falls back to the
174
+ * recorded chunk rows.
175
+ *
176
+ * @throws MultipartSessionNotFoundError when the backend does not know the upload.
177
+ */
178
+ listUploadedParts?(key: string, uploadId: string): Promise<UploadedPart[]>;
179
+ /**
180
+ * Stores one part streamed through the API; required when `partUploadMode` is
181
+ * `'proxied'`. MUST NOT BUFFER `body`: write it to the backend as it arrives
182
+ * (the platform already bounds it to `size` bytes and errors the stream when
183
+ * the body is short or long, so a failed write must discard the part and
184
+ * keep none of it). Re-sending a part replaces it.
185
+ *
186
+ * @param key - the object key.
187
+ * @param uploadId - the id `initMultipartUpload` returned.
188
+ * @param partNumber - 1-based part number.
189
+ * @param body - the part's bytes, as a stream.
190
+ * @param size - the exact byte length the part must have.
191
+ * @returns the part's ETag (an MD5 digest, quoted or not).
192
+ * @throws PartSizeMismatchError when the stream does not carry `size` bytes.
193
+ * @throws MultipartSessionNotFoundError when the backend does not know the upload.
194
+ */
195
+ uploadPart?(key: string, uploadId: string, partNumber: number, body: Readable, size: number): Promise<StoredPart>;
163
196
  }
164
197
  //# sourceMappingURL=storage-provider.interface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage-provider.interface.d.ts","sourceRoot":"","sources":["../../../src/storage/providers/storage-provider.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,UAAU,EACV,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAElC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,gBAAgB,EAAE,OAAO,MAAoE,CAAC;AAE3G;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;;;;;;OAQG;IACH,MAAM,CACJ,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEhC;;;;;;OAMG;IACH,mBAAmB,CACjB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEhC;;;;;;;;;OASG;IACH,kBAAkB,CAChB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnB;;;;;;;OAOG;IACH,uBAAuB,CACrB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,UAAU,EAAE,GAClB,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEhC;;;;;OAKG;IACH,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnE;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEzC;;;;;;;OAOG;IACH,oBAAoB,CAClB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,MAAM,CAAC,CAAC;IAqDnB;;;;;;;;;;;;;;;;OAgBG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE7E;;;;OAIG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnC;;;;;OAKG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;IAEjE;;;;;OAKG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1E;;;;;OAKG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEtC;;;;OAIG;IACH,SAAS,IAAI,MAAM,CAAC;CACrB"}
1
+ {"version":3,"file":"storage-provider.interface.d.ts","sourceRoot":"","sources":["../../../src/storage/providers/storage-provider.interface.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"storage-provider.interface.js","sourceRoot":"","sources":["../../../src/storage/providers/storage-provider.interface.ts"],"names":[],"mappings":";;;AAUA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACU,QAAA,gBAAgB,GAAkB,MAAM,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC"}
1
+ {"version":3,"file":"storage-provider.interface.js","sourceRoot":"","sources":["../../../src/storage/providers/storage-provider.interface.ts"],"names":[],"mappings":";;;AAaA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACU,QAAA,gBAAgB,GAAkB,MAAM,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC"}
@@ -87,4 +87,90 @@ export interface MultipartUploadInit {
87
87
  /** The object key. */
88
88
  key: string;
89
89
  }
90
+ /**
91
+ * One part of an in-flight multipart upload as the storage backend holds it.
92
+ *
93
+ * @stability experimental
94
+ */
95
+ export interface UploadedPart {
96
+ /** The part number (1-10000). */
97
+ partNumber: number;
98
+ /** The part's size in bytes, as the backend stores it. */
99
+ size: number;
100
+ /** The part's ETag, quoted or not exactly as the backend reports it; compare with {@link normalizeEtag}. */
101
+ eTag: string;
102
+ }
103
+ /**
104
+ * The result of storing one part through the API.
105
+ *
106
+ * @stability experimental
107
+ */
108
+ export interface StoredPart {
109
+ /** The part's ETag (an MD5 digest, quoted or not). */
110
+ eTag: string;
111
+ }
112
+ /**
113
+ * How a client gets a part to the backend (see `StorageProvider.partUploadMode`).
114
+ *
115
+ * - `presigned`: the provider signs a URL the client PUTs to directly.
116
+ * - `proxied`: the provider has no signed URLs; the bytes go through the API's
117
+ * part route into `StorageProvider.uploadPart`.
118
+ *
119
+ * @stability experimental
120
+ */
121
+ export type StoragePartUploadMode = 'presigned' | 'proxied';
122
+ /**
123
+ * A part body did not have the size the upload requires. Throw it from
124
+ * `StorageProvider.uploadPart` when the stream ends short or runs long; the
125
+ * objects API answers 400 `PART_SIZE_MISMATCH`.
126
+ *
127
+ * @stability experimental
128
+ */
129
+ export declare class PartSizeMismatchError extends Error {
130
+ readonly partNumber: number;
131
+ readonly expectedSize: number;
132
+ readonly receivedSize: number;
133
+ readonly exceeded: boolean;
134
+ /**
135
+ * @param partNumber - the part.
136
+ * @param expectedSize - the exact byte count the part must have.
137
+ * @param receivedSize - the bytes seen before the mismatch was detected.
138
+ * @param exceeded - true when the body was cut off for running past `expectedSize`.
139
+ */
140
+ constructor(partNumber: number, expectedSize: number, receivedSize: number, exceeded: boolean);
141
+ }
142
+ /**
143
+ * The backend no longer knows the multipart session (completed, aborted or
144
+ * garbage-collected). Throw it from `listUploadedParts` / `uploadPart` /
145
+ * `completeMultipartUpload`; the objects API answers 409 `UPLOAD_SESSION_INVALID`.
146
+ *
147
+ * @stability experimental
148
+ */
149
+ export declare class MultipartSessionNotFoundError extends Error {
150
+ readonly uploadId: string;
151
+ /** @param uploadId - the unknown session. */
152
+ constructor(uploadId: string);
153
+ }
154
+ /**
155
+ * `completeMultipartUpload` found parts missing or whose bytes do not match the
156
+ * ETag the client sent. Nothing is written; the objects API answers 409
157
+ * `UPLOAD_PARTS_MISSING` with the numbers so the client re-sends only those.
158
+ *
159
+ * @stability experimental
160
+ */
161
+ export declare class MultipartPartsMissingError extends Error {
162
+ readonly partNumbers: number[];
163
+ /** @param partNumbers - the missing or mismatching parts. */
164
+ constructor(partNumbers: number[]);
165
+ }
166
+ /**
167
+ * An ETag without its surrounding quotes, so a client's `"abc"` and a backend's
168
+ * `abc` compare equal.
169
+ *
170
+ * @param eTag - an ETag, quoted or not.
171
+ * @returns the bare value.
172
+ *
173
+ * @stability experimental
174
+ */
175
+ export declare function normalizeEtag(eTag: string): string;
90
176
  //# sourceMappingURL=storage-provider.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage-provider.types.d.ts","sourceRoot":"","sources":["../../../src/storage/providers/storage-provider.types.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,sBAAsB;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,mCAAmC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,sBAAsB;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,kBAAkB;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,2BAA2B;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,0BAA0B,CAAC,EAAE,MAAM,CAAC;CACrC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,mBAAmB;IAClC,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,sBAAsB;IACtB,GAAG,EAAE,MAAM,CAAC;CACb"}
1
+ {"version":3,"file":"storage-provider.types.d.ts","sourceRoot":"","sources":["../../../src/storage/providers/storage-provider.types.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,sBAAsB;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,mCAAmC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,sBAAsB;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,kBAAkB;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,2BAA2B;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,0BAA0B,CAAC,EAAE,MAAM,CAAC;CACrC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,mBAAmB;IAClC,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,sBAAsB;IACtB,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,4GAA4G;IAC5G,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,qBAAqB,GAAG,WAAW,GAAG,SAAS,CAAC;AAE5D;;;;;;GAMG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IAQ5C,QAAQ,CAAC,UAAU,EAAE,MAAM;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM;IAC7B,QAAQ,CAAC,QAAQ,EAAE,OAAO;IAV5B;;;;;OAKG;gBAEQ,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,OAAO;CAS7B;AAED;;;;;;GAMG;AACH,qBAAa,6BAA8B,SAAQ,KAAK;IAE1C,QAAQ,CAAC,QAAQ,EAAE,MAAM;IADrC,6CAA6C;gBACxB,QAAQ,EAAE,MAAM;CAItC;AAED;;;;;;GAMG;AACH,qBAAa,0BAA2B,SAAQ,KAAK;IAEvC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE;IAD1C,6DAA6D;gBACxC,WAAW,EAAE,MAAM,EAAE;CAI3C;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD"}
@@ -1,3 +1,81 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MultipartPartsMissingError = exports.MultipartSessionNotFoundError = exports.PartSizeMismatchError = void 0;
4
+ exports.normalizeEtag = normalizeEtag;
5
+ /**
6
+ * A part body did not have the size the upload requires. Throw it from
7
+ * `StorageProvider.uploadPart` when the stream ends short or runs long; the
8
+ * objects API answers 400 `PART_SIZE_MISMATCH`.
9
+ *
10
+ * @stability experimental
11
+ */
12
+ class PartSizeMismatchError extends Error {
13
+ partNumber;
14
+ expectedSize;
15
+ receivedSize;
16
+ exceeded;
17
+ /**
18
+ * @param partNumber - the part.
19
+ * @param expectedSize - the exact byte count the part must have.
20
+ * @param receivedSize - the bytes seen before the mismatch was detected.
21
+ * @param exceeded - true when the body was cut off for running past `expectedSize`.
22
+ */
23
+ constructor(partNumber, expectedSize, receivedSize, exceeded) {
24
+ super(exceeded
25
+ ? `Part ${partNumber} is larger than the expected ${expectedSize} bytes`
26
+ : `Part ${partNumber} has ${receivedSize} bytes, expected ${expectedSize}`);
27
+ this.partNumber = partNumber;
28
+ this.expectedSize = expectedSize;
29
+ this.receivedSize = receivedSize;
30
+ this.exceeded = exceeded;
31
+ this.name = 'PartSizeMismatchError';
32
+ }
33
+ }
34
+ exports.PartSizeMismatchError = PartSizeMismatchError;
35
+ /**
36
+ * The backend no longer knows the multipart session (completed, aborted or
37
+ * garbage-collected). Throw it from `listUploadedParts` / `uploadPart` /
38
+ * `completeMultipartUpload`; the objects API answers 409 `UPLOAD_SESSION_INVALID`.
39
+ *
40
+ * @stability experimental
41
+ */
42
+ class MultipartSessionNotFoundError extends Error {
43
+ uploadId;
44
+ /** @param uploadId - the unknown session. */
45
+ constructor(uploadId) {
46
+ super(`Multipart upload ${uploadId} does not exist`);
47
+ this.uploadId = uploadId;
48
+ this.name = 'MultipartSessionNotFoundError';
49
+ }
50
+ }
51
+ exports.MultipartSessionNotFoundError = MultipartSessionNotFoundError;
52
+ /**
53
+ * `completeMultipartUpload` found parts missing or whose bytes do not match the
54
+ * ETag the client sent. Nothing is written; the objects API answers 409
55
+ * `UPLOAD_PARTS_MISSING` with the numbers so the client re-sends only those.
56
+ *
57
+ * @stability experimental
58
+ */
59
+ class MultipartPartsMissingError extends Error {
60
+ partNumbers;
61
+ /** @param partNumbers - the missing or mismatching parts. */
62
+ constructor(partNumbers) {
63
+ super(`Multipart upload is missing or has corrupt part(s): ${partNumbers.join(', ')}`);
64
+ this.partNumbers = partNumbers;
65
+ this.name = 'MultipartPartsMissingError';
66
+ }
67
+ }
68
+ exports.MultipartPartsMissingError = MultipartPartsMissingError;
69
+ /**
70
+ * An ETag without its surrounding quotes, so a client's `"abc"` and a backend's
71
+ * `abc` compare equal.
72
+ *
73
+ * @param eTag - an ETag, quoted or not.
74
+ * @returns the bare value.
75
+ *
76
+ * @stability experimental
77
+ */
78
+ function normalizeEtag(eTag) {
79
+ return eTag.replace(/^"+|"+$/g, '');
80
+ }
3
81
  //# sourceMappingURL=storage-provider.types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage-provider.types.js","sourceRoot":"","sources":["../../../src/storage/providers/storage-provider.types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"storage-provider.types.js","sourceRoot":"","sources":["../../../src/storage/providers/storage-provider.types.ts"],"names":[],"mappings":";;;AAyMA,sCAEC;AAtED;;;;;;GAMG;AACH,MAAa,qBAAsB,SAAQ,KAAK;IAQnC;IACA;IACA;IACA;IAVX;;;;;OAKG;IACH,YACW,UAAkB,EAClB,YAAoB,EACpB,YAAoB,EACpB,QAAiB;QAE1B,KAAK,CACH,QAAQ;YACN,CAAC,CAAC,QAAQ,UAAU,gCAAgC,YAAY,QAAQ;YACxE,CAAC,CAAC,QAAQ,UAAU,QAAQ,YAAY,oBAAoB,YAAY,EAAE,CAC7E,CAAC;QATO,eAAU,GAAV,UAAU,CAAQ;QAClB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,aAAQ,GAAR,QAAQ,CAAS;QAO1B,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AApBD,sDAoBC;AAED;;;;;;GAMG;AACH,MAAa,6BAA8B,SAAQ,KAAK;IAEjC;IADrB,6CAA6C;IAC7C,YAAqB,QAAgB;QACnC,KAAK,CAAC,oBAAoB,QAAQ,iBAAiB,CAAC,CAAC;QADlC,aAAQ,GAAR,QAAQ,CAAQ;QAEnC,IAAI,CAAC,IAAI,GAAG,+BAA+B,CAAC;IAC9C,CAAC;CACF;AAND,sEAMC;AAED;;;;;;GAMG;AACH,MAAa,0BAA2B,SAAQ,KAAK;IAE9B;IADrB,6DAA6D;IAC7D,YAAqB,WAAqB;QACxC,KAAK,CAAC,uDAAuD,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QADpE,gBAAW,GAAX,WAAW,CAAU;QAExC,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF;AAND,gEAMC;AAED;;;;;;;;GAQG;AACH,SAAgB,aAAa,CAAC,IAAY;IACxC,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"storage-providers.module.d.ts","sourceRoot":"","sources":["../../../src/storage/providers/storage-providers.module.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH;;;;;;;;;GASG;AACH,qBAca,sBAAsB;CAAG"}
1
+ {"version":3,"file":"storage-providers.module.d.ts","sourceRoot":"","sources":["../../../src/storage/providers/storage-providers.module.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH;;;;;;;;;GASG;AACH,qBAea,sBAAsB;CAAG"}
@@ -11,6 +11,7 @@ const common_1 = require("@nestjs/common");
11
11
  const index_1 = require("../../credentials/index");
12
12
  const storage_config_service_1 = require("../config/storage-config.service");
13
13
  const resolving_storage_provider_1 = require("./resolving-storage.provider");
14
+ const storage_provider_router_1 = require("./storage-provider-router");
14
15
  const storage_provider_binding_1 = require("./storage-provider.binding");
15
16
  const storage_provider_interface_1 = require("./storage-provider.interface");
16
17
  /**
@@ -82,13 +83,14 @@ exports.StorageProvidersModule = StorageProvidersModule = __decorate([
82
83
  providers: [
83
84
  storage_config_service_1.StorageConfigService,
84
85
  resolving_storage_provider_1.ResolvingStorageProvider,
86
+ storage_provider_router_1.StorageProviderRouter,
85
87
  {
86
88
  provide: storage_provider_interface_1.STORAGE_PROVIDER,
87
89
  useFactory: (binding, resolving) => binding ?? resolving,
88
90
  inject: [{ token: storage_provider_binding_1.STORAGE_PROVIDER_BINDING, optional: true }, resolving_storage_provider_1.ResolvingStorageProvider],
89
91
  },
90
92
  ],
91
- exports: [storage_provider_interface_1.STORAGE_PROVIDER, storage_config_service_1.StorageConfigService],
93
+ exports: [storage_provider_interface_1.STORAGE_PROVIDER, storage_config_service_1.StorageConfigService, storage_provider_router_1.StorageProviderRouter],
92
94
  })
93
95
  ], StorageProvidersModule);
94
96
  //# sourceMappingURL=storage-providers.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage-providers.module.js","sourceRoot":"","sources":["../../../src/storage/providers/storage-providers.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AAExC,mDAA4D;AAC5D,6EAAwE;AACxE,6EAAwE;AACxE,yEAAsE;AACtE,6EAAsF;AAEtF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH;;;;;;;;;GASG;AAeI,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;CAAG,CAAA;AAAzB,wDAAsB;iCAAtB,sBAAsB;IAdlC,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,yBAAiB,CAAC;QAC5B,SAAS,EAAE;YACT,6CAAoB;YACpB,qDAAwB;YACxB;gBACE,OAAO,EAAE,6CAAgB;gBACzB,UAAU,EAAE,CAAC,OAAoC,EAAE,SAAmC,EAAmB,EAAE,CACzG,OAAO,IAAI,SAAS;gBACtB,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,mDAAwB,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,qDAAwB,CAAC;aACxF;SACF;QACD,OAAO,EAAE,CAAC,6CAAgB,EAAE,6CAAoB,CAAC;KAClD,CAAC;GACW,sBAAsB,CAAG"}
1
+ {"version":3,"file":"storage-providers.module.js","sourceRoot":"","sources":["../../../src/storage/providers/storage-providers.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AAExC,mDAA4D;AAC5D,6EAAwE;AACxE,6EAAwE;AACxE,uEAAkE;AAClE,yEAAsE;AACtE,6EAAsF;AAEtF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH;;;;;;;;;GASG;AAgBI,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;CAAG,CAAA;AAAzB,wDAAsB;iCAAtB,sBAAsB;IAflC,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,yBAAiB,CAAC;QAC5B,SAAS,EAAE;YACT,6CAAoB;YACpB,qDAAwB;YACxB,+CAAqB;YACrB;gBACE,OAAO,EAAE,6CAAgB;gBACzB,UAAU,EAAE,CAAC,OAAoC,EAAE,SAAmC,EAAmB,EAAE,CACzG,OAAO,IAAI,SAAS;gBACtB,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,mDAAwB,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,qDAAwB,CAAC;aACxF;SACF;QACD,OAAO,EAAE,CAAC,6CAAgB,EAAE,6CAAoB,EAAE,+CAAqB,CAAC;KACzE,CAAC;GACW,sBAAsB,CAAG"}
@@ -1,5 +1,6 @@
1
1
  import type { ConformanceFinding, ConformanceSuite } from '../../testing/index';
2
2
  import { type StorageKeyPrefixDef } from '../storage-key-prefix.registry';
3
+ import '../drivers/builtin-storage-drivers';
3
4
  declare module '../../testing/index' {
4
5
  interface PlatformConformanceSuiteOptions {
5
6
  /** The storage slice's suite: its options, or `false` to opt out. Registered by importing `@marinoscar/platform-api/storage/testing`. */
@@ -44,6 +45,17 @@ export declare function checkOrgScopedKeys(defs: readonly StorageKeyPrefixDef[])
44
45
  * @stability experimental
45
46
  */
46
47
  export declare function checkStorageSettingsSchemas(): ConformanceFinding[];
48
+ /**
49
+ * Check 4: per-row routing. Two built-in drivers are configured (offline: a
50
+ * presigned URL is computed locally, nothing is fetched); the active one is
51
+ * flipped from A to B and back, and an object recorded on A must keep signing
52
+ * against A's bucket and host each time.
53
+ *
54
+ * @returns one finding per violated rule.
55
+ *
56
+ * @stability experimental
57
+ */
58
+ export declare function checkStorageRouting(): Promise<ConformanceFinding[]>;
47
59
  /**
48
60
  * The `storage` conformance suite. Registered when
49
61
  * `@marinoscar/platform-api/storage/testing` is imported.
@@ -1 +1 @@
1
- {"version":3,"file":"conformance.d.ts","sourceRoot":"","sources":["../../../src/storage/testing/conformance.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAmB,kBAAkB,EAAqB,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACpH,OAAO,EAKL,KAAK,mBAAmB,EACzB,MAAM,gCAAgC,CAAC;AAGxC,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,+BAA+B;QACvC,yIAAyI;QACzI,OAAO,CAAC,EAAE,yBAAyB,GAAG,KAAK,CAAC;KAC7C;CACF;AAED;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,iGAAiG;IACjG,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAChD;AASD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,SAAS,mBAAmB,EAAE,EACpC,WAAW,EAAE,SAAS,MAAM,EAAE,GAC7B,kBAAkB,EAAE,CAiBtB;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,mBAAmB,EAAE,GAAG,kBAAkB,EAAE,CAe7F;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,IAAI,kBAAkB,EAAE,CAWlE;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,uBAAuB,EAAE,gBAAgB,CAAC,yBAAyB,CA2C/E,CAAC"}
1
+ {"version":3,"file":"conformance.d.ts","sourceRoot":"","sources":["../../../src/storage/testing/conformance.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAmB,kBAAkB,EAAqB,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACpH,OAAO,EAKL,KAAK,mBAAmB,EACzB,MAAM,gCAAgC,CAAC;AAOxC,OAAO,oCAAoC,CAAC;AAE5C,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,+BAA+B;QACvC,yIAAyI;QACzI,OAAO,CAAC,EAAE,yBAAyB,GAAG,KAAK,CAAC;KAC7C;CACF;AAED;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,iGAAiG;IACjG,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAChD;AAUD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,SAAS,mBAAmB,EAAE,EACpC,WAAW,EAAE,SAAS,MAAM,EAAE,GAC7B,kBAAkB,EAAE,CAiBtB;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,mBAAmB,EAAE,GAAG,kBAAkB,EAAE,CAe7F;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,IAAI,kBAAkB,EAAE,CAWlE;AAED;;;;;;;;;GASG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAyFzE;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,uBAAuB,EAAE,gBAAgB,CAAC,yBAAyB,CAiD/E,CAAC"}