@shapio/cms 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (277) hide show
  1. package/dist/admin/assets/{AssetTile-C-Mu0BRF.js → AssetTile-zOf0K0nN.js} +2 -2
  2. package/dist/admin/assets/{AssetTile-C-Mu0BRF.js.map → AssetTile-zOf0K0nN.js.map} +1 -1
  3. package/dist/admin/assets/{AssistError-B-bnaHhJ.js → AssistError-D_vY2CO0.js} +2 -2
  4. package/dist/admin/assets/{AssistError-B-bnaHhJ.js.map → AssistError-D_vY2CO0.js.map} +1 -1
  5. package/dist/admin/assets/{BlockMenuItems-Dn9WULjL.js → BlockMenuItems-BEnSpClj.js} +2 -2
  6. package/dist/admin/assets/{BlockMenuItems-Dn9WULjL.js.map → BlockMenuItems-BEnSpClj.js.map} +1 -1
  7. package/dist/admin/assets/{Body-C0SwduLi.js → Body-B_IVN5wp.js} +2 -2
  8. package/dist/admin/assets/{Body-C0SwduLi.js.map → Body-B_IVN5wp.js.map} +1 -1
  9. package/dist/admin/assets/Builder-CnEtRudv.js +2 -0
  10. package/dist/admin/assets/Builder-CnEtRudv.js.map +1 -0
  11. package/dist/admin/assets/{ConfirmDialog-BfpN2MQx.js → ConfirmDialog-BW-l3Whg.js} +2 -2
  12. package/dist/admin/assets/{ConfirmDialog-BfpN2MQx.js.map → ConfirmDialog-BW-l3Whg.js.map} +1 -1
  13. package/dist/admin/assets/{CopyButton-Dxbzp7hC.js → CopyButton-CyoUMStc.js} +2 -2
  14. package/dist/admin/assets/{CopyButton-Dxbzp7hC.js.map → CopyButton-CyoUMStc.js.map} +1 -1
  15. package/dist/admin/assets/{CursorPager-DkZs6rPg.js → CursorPager-BW2Dl_hn.js} +2 -2
  16. package/dist/admin/assets/{CursorPager-DkZs6rPg.js.map → CursorPager-BW2Dl_hn.js.map} +1 -1
  17. package/dist/admin/assets/{ExternalLink-KdO72pTj.js → ExternalLink-BCI0q9ib.js} +2 -2
  18. package/dist/admin/assets/{ExternalLink-KdO72pTj.js.map → ExternalLink-BCI0q9ib.js.map} +1 -1
  19. package/dist/admin/assets/{FocalPoint-r1MG_y-r.js → FocalPoint-CxicvlJO.js} +2 -2
  20. package/dist/admin/assets/{FocalPoint-r1MG_y-r.js.map → FocalPoint-CxicvlJO.js.map} +1 -1
  21. package/dist/admin/assets/{Form-D8vp4Kd_.js → Form-DB03drS9.js} +2 -2
  22. package/dist/admin/assets/{Form-D8vp4Kd_.js.map → Form-DB03drS9.js.map} +1 -1
  23. package/dist/admin/assets/{FormCheckboxGroup-8ObPh9cH.js → FormCheckboxGroup-JP1xzReQ.js} +2 -2
  24. package/dist/admin/assets/{FormCheckboxGroup-8ObPh9cH.js.map → FormCheckboxGroup-JP1xzReQ.js.map} +1 -1
  25. package/dist/admin/assets/{FormRadioGroup-CAB3qzVS.js → FormRadioGroup-BvSC8SRm.js} +2 -2
  26. package/dist/admin/assets/{FormRadioGroup-CAB3qzVS.js.map → FormRadioGroup-BvSC8SRm.js.map} +1 -1
  27. package/dist/admin/assets/{FormSelectField-C7hE05Wq.js → FormSelectField-BDIVhZh6.js} +2 -2
  28. package/dist/admin/assets/{FormSelectField-C7hE05Wq.js.map → FormSelectField-BDIVhZh6.js.map} +1 -1
  29. package/dist/admin/assets/{FormSwitchField-7EEYkGOH.js → FormSwitchField-OM4F8ln4.js} +2 -2
  30. package/dist/admin/assets/{FormSwitchField-7EEYkGOH.js.map → FormSwitchField-OM4F8ln4.js.map} +1 -1
  31. package/dist/admin/assets/{FormTextareaField-BasuRoXW.js → FormTextareaField-Bw7EkC4H.js} +2 -2
  32. package/dist/admin/assets/{FormTextareaField-BasuRoXW.js.map → FormTextareaField-Bw7EkC4H.js.map} +1 -1
  33. package/dist/admin/assets/{HintedLabel-BDV81kIT.js → HintedLabel-BGidukgy.js} +2 -2
  34. package/dist/admin/assets/{HintedLabel-BDV81kIT.js.map → HintedLabel-BGidukgy.js.map} +1 -1
  35. package/dist/admin/assets/{InfoHint-DWn9kLf1.js → InfoHint-D3uwei-E.js} +2 -2
  36. package/dist/admin/assets/{InfoHint-DWn9kLf1.js.map → InfoHint-D3uwei-E.js.map} +1 -1
  37. package/dist/admin/assets/{InsertMenuItem-DhJk5BeH.js → InsertMenuItem-DAihGvbw.js} +2 -2
  38. package/dist/admin/assets/{InsertMenuItem-DhJk5BeH.js.map → InsertMenuItem-DAihGvbw.js.map} +1 -1
  39. package/dist/admin/assets/{LinkTabs-stM3j4aH.js → LinkTabs-DBXbfzME.js} +2 -2
  40. package/dist/admin/assets/{LinkTabs-stM3j4aH.js.map → LinkTabs-DBXbfzME.js.map} +1 -1
  41. package/dist/admin/assets/{Match-Zu4pwfCC.js → Match-CgfZTzqs.js} +2 -2
  42. package/dist/admin/assets/{Match-Zu4pwfCC.js.map → Match-CgfZTzqs.js.map} +1 -1
  43. package/dist/admin/assets/{Panel-ClY9b33D.js → Panel-DDky5_x9.js} +2 -2
  44. package/dist/admin/assets/{Panel-ClY9b33D.js.map → Panel-DDky5_x9.js.map} +1 -1
  45. package/dist/admin/assets/{QueryView-Cu-KPtQI.js → QueryView-C2d392ly.js} +2 -2
  46. package/dist/admin/assets/{QueryView-Cu-KPtQI.js.map → QueryView-C2d392ly.js.map} +1 -1
  47. package/dist/admin/assets/{RadioTile-Ci0LucKI.js → RadioTile-CcP78eb_.js} +2 -2
  48. package/dist/admin/assets/{RadioTile-Ci0LucKI.js.map → RadioTile-CcP78eb_.js.map} +1 -1
  49. package/dist/admin/assets/{RichTextField-BcYOFkeW.js → RichTextField-CeztaFET.js} +2 -2
  50. package/dist/admin/assets/{RichTextField-BcYOFkeW.js.map → RichTextField-CeztaFET.js.map} +1 -1
  51. package/dist/admin/assets/{RowTitle-BdDgA5Lb.js → RowTitle-mkKp4yfl.js} +2 -2
  52. package/dist/admin/assets/{RowTitle-BdDgA5Lb.js.map → RowTitle-mkKp4yfl.js.map} +1 -1
  53. package/dist/admin/assets/{SecretReveal-ai1uMW_b.js → SecretReveal-mYCzxF96.js} +2 -2
  54. package/dist/admin/assets/{SecretReveal-ai1uMW_b.js.map → SecretReveal-mYCzxF96.js.map} +1 -1
  55. package/dist/admin/assets/{SharedGlyph-y6ZsA_gz.js → SharedGlyph-CuDT7OUU.js} +2 -2
  56. package/dist/admin/assets/{SharedGlyph-y6ZsA_gz.js.map → SharedGlyph-CuDT7OUU.js.map} +1 -1
  57. package/dist/admin/assets/{StepList-xmD9CPZl.js → StepList-BDO0Q3Wc.js} +2 -2
  58. package/dist/admin/assets/{StepList-xmD9CPZl.js.map → StepList-BDO0Q3Wc.js.map} +1 -1
  59. package/dist/admin/assets/Structure-CL_0hVci.js +2 -0
  60. package/dist/admin/assets/{Structure-DGt-TDk5.js.map → Structure-CL_0hVci.js.map} +1 -1
  61. package/dist/admin/assets/{SubNavLink-YjjaDN40.js → SubNavLink-C4eSybWd.js} +2 -2
  62. package/dist/admin/assets/{SubNavLink-YjjaDN40.js.map → SubNavLink-C4eSybWd.js.map} +1 -1
  63. package/dist/admin/assets/{SuggestAltButton-D1-v_0wB.js → SuggestAltButton-CxYlhwyd.js} +2 -2
  64. package/dist/admin/assets/{SuggestAltButton-D1-v_0wB.js.map → SuggestAltButton-CxYlhwyd.js.map} +1 -1
  65. package/dist/admin/assets/{TextLink-DIqr5zkJ.js → TextLink-DzNaAft6.js} +2 -2
  66. package/dist/admin/assets/{TextLink-DIqr5zkJ.js.map → TextLink-DzNaAft6.js.map} +1 -1
  67. package/dist/admin/assets/{Thumbnail-cjA7fSWh.js → Thumbnail-DSPArZ9h.js} +2 -2
  68. package/dist/admin/assets/{Thumbnail-cjA7fSWh.js.map → Thumbnail-DSPArZ9h.js.map} +1 -1
  69. package/dist/admin/assets/{UnsavedChangesGuard-B57D0278.js → UnsavedChangesGuard-BPOCBD5T.js} +2 -2
  70. package/dist/admin/assets/{UnsavedChangesGuard-B57D0278.js.map → UnsavedChangesGuard-BPOCBD5T.js.map} +1 -1
  71. package/dist/admin/assets/{UserAvatar--pMv2i3c.js → UserAvatar-BHNWHDVb.js} +2 -2
  72. package/dist/admin/assets/{UserAvatar--pMv2i3c.js.map → UserAvatar-BHNWHDVb.js.map} +1 -1
  73. package/dist/admin/assets/{auth-YVfK3SxF.js → auth-BzCgJtgr.js} +2 -2
  74. package/dist/admin/assets/{auth-YVfK3SxF.js.map → auth-BzCgJtgr.js.map} +1 -1
  75. package/dist/admin/assets/{badge-C5oMRtwJ.js → badge-DBoaS0nQ.js} +2 -2
  76. package/dist/admin/assets/{badge-C5oMRtwJ.js.map → badge-DBoaS0nQ.js.map} +1 -1
  77. package/dist/admin/assets/{boxes-DRvd25_u.js → boxes-DhN0ctLo.js} +2 -2
  78. package/dist/admin/assets/{boxes-DRvd25_u.js.map → boxes-DhN0ctLo.js.map} +1 -1
  79. package/dist/admin/assets/{calendar-clock-VENf4s1R.js → calendar-clock-BEA3tG17.js} +2 -2
  80. package/dist/admin/assets/{calendar-clock-VENf4s1R.js.map → calendar-clock-BEA3tG17.js.map} +1 -1
  81. package/dist/admin/assets/{changeSets-CObZV8H2.js → changeSets-C54Ku-X9.js} +2 -2
  82. package/dist/admin/assets/{changeSets-CObZV8H2.js.map → changeSets-C54Ku-X9.js.map} +1 -1
  83. package/dist/admin/assets/chevron-left-BeJdUVAX.js +2 -0
  84. package/dist/admin/assets/{chevron-left-D2DnQyeV.js.map → chevron-left-BeJdUVAX.js.map} +1 -1
  85. package/dist/admin/assets/{circle-check-jmRQz1Jq.js → circle-check-ktACw37r.js} +2 -2
  86. package/dist/admin/assets/{circle-check-jmRQz1Jq.js.map → circle-check-ktACw37r.js.map} +1 -1
  87. package/dist/admin/assets/{clock-DrSTMGjp.js → clock-BKNNASKp.js} +2 -2
  88. package/dist/admin/assets/{clock-DrSTMGjp.js.map → clock-BKNNASKp.js.map} +1 -1
  89. package/dist/admin/assets/cn-h5ORT3LK.js +2 -0
  90. package/dist/admin/assets/cn-h5ORT3LK.js.map +1 -0
  91. package/dist/admin/assets/coerce-DDQ1vGLx.js +2 -0
  92. package/dist/admin/assets/{coerce-B4MJTGg1.js.map → coerce-DDQ1vGLx.js.map} +1 -1
  93. package/dist/admin/assets/{constants-DT4WPUvz.js → constants-DH7oqfO_.js} +2 -2
  94. package/dist/admin/assets/{constants-DT4WPUvz.js.map → constants-DH7oqfO_.js.map} +1 -1
  95. package/dist/admin/assets/content-BptqQO8c.js +3 -0
  96. package/dist/admin/assets/content-BptqQO8c.js.map +1 -0
  97. package/dist/admin/assets/{contentCounts-DzIvdeXR.js → contentCounts-BpGlmyeZ.js} +2 -2
  98. package/dist/admin/assets/{contentCounts-DzIvdeXR.js.map → contentCounts-BpGlmyeZ.js.map} +1 -1
  99. package/dist/admin/assets/{contentTypes-ArLEfM29.js → contentTypes-B_mAlIcH.js} +2 -2
  100. package/dist/admin/assets/{contentTypes-ArLEfM29.js.map → contentTypes-B_mAlIcH.js.map} +1 -1
  101. package/dist/admin/assets/{context-4Jl20mYc.js → context-DyyMW7Md.js} +2 -2
  102. package/dist/admin/assets/{context-4Jl20mYc.js.map → context-DyyMW7Md.js.map} +1 -1
  103. package/dist/admin/assets/{copy-t6kAFw-O.js → copy-DjzlFY9u.js} +2 -2
  104. package/dist/admin/assets/{copy-t6kAFw-O.js.map → copy-DjzlFY9u.js.map} +1 -1
  105. package/dist/admin/assets/{dateTimeLocal-IDUOKulz.js → dateTimeLocal-DFXY779D.js} +2 -2
  106. package/dist/admin/assets/{dateTimeLocal-IDUOKulz.js.map → dateTimeLocal-DFXY779D.js.map} +1 -1
  107. package/dist/admin/assets/{develop-DvKYqVeK.js → develop-DJap_z-1.js} +3 -3
  108. package/dist/admin/assets/{develop-DvKYqVeK.js.map → develop-DJap_z-1.js.map} +1 -1
  109. package/dist/admin/assets/{dropdown-menu-DPzDthV7.js → dropdown-menu-DGSMTf23.js} +2 -2
  110. package/dist/admin/assets/{dropdown-menu-DPzDthV7.js.map → dropdown-menu-DGSMTf23.js.map} +1 -1
  111. package/dist/admin/assets/{ellipsis-DEHUaCkn.js → ellipsis-BMP-j3yO.js} +2 -2
  112. package/dist/admin/assets/{ellipsis-DEHUaCkn.js.map → ellipsis-BMP-j3yO.js.map} +1 -1
  113. package/dist/admin/assets/{external-link-B8UFREQ_.js → external-link-DzOkt97S.js} +2 -2
  114. package/dist/admin/assets/{external-link-B8UFREQ_.js.map → external-link-DzOkt97S.js.map} +1 -1
  115. package/dist/admin/assets/{fileRoute-sJvv4Ipn.js → fileRoute-CG0Dufvt.js} +2 -2
  116. package/dist/admin/assets/{fileRoute-sJvv4Ipn.js.map → fileRoute-CG0Dufvt.js.map} +1 -1
  117. package/dist/admin/assets/{folder-plus-iDg1hhew.js → folder-plus-C-LhI4a2.js} +2 -2
  118. package/dist/admin/assets/{folder-plus-iDg1hhew.js.map → folder-plus-C-LhI4a2.js.map} +1 -1
  119. package/dist/admin/assets/{followPlural-tOh6gDgT.js → followPlural-D-8kzFOe.js} +2 -2
  120. package/dist/admin/assets/{followPlural-tOh6gDgT.js.map → followPlural-D-8kzFOe.js.map} +1 -1
  121. package/dist/admin/assets/{globe-TooNSp9V.js → globe-DOoGBy23.js} +2 -2
  122. package/dist/admin/assets/{globe-TooNSp9V.js.map → globe-DOoGBy23.js.map} +1 -1
  123. package/dist/admin/assets/{image-CXZXXH58.js → image-D9p_gGE2.js} +2 -2
  124. package/dist/admin/assets/{image-CXZXXH58.js.map → image-D9p_gGE2.js.map} +1 -1
  125. package/dist/admin/assets/{image-off-cxva5G-Y.js → image-off-G0M2Nh1I.js} +2 -2
  126. package/dist/admin/assets/{image-off-cxva5G-Y.js.map → image-off-G0M2Nh1I.js.map} +1 -1
  127. package/dist/admin/assets/{inbox-B8c9Kj_z.js → inbox-CMzYVMZo.js} +2 -2
  128. package/dist/admin/assets/{inbox-B8c9Kj_z.js.map → inbox-CMzYVMZo.js.map} +1 -1
  129. package/dist/admin/assets/{inbox-nfR2K7f6.js → inbox-XaM-nvsM.js} +2 -2
  130. package/dist/admin/assets/{inbox-nfR2K7f6.js.map → inbox-XaM-nvsM.js.map} +1 -1
  131. package/dist/admin/assets/index-6iVBpUhu.css +2 -0
  132. package/dist/admin/assets/index-DHmfMpqz.js +4 -0
  133. package/dist/admin/assets/index-DHmfMpqz.js.map +1 -0
  134. package/dist/admin/assets/{key-round-CFJ61iCd.js → key-round-HBvMrmMo.js} +2 -2
  135. package/dist/admin/assets/{key-round-CFJ61iCd.js.map → key-round-HBvMrmMo.js.map} +1 -1
  136. package/dist/admin/assets/{languages-eh7U4anI.js → languages-BOv0jYhe.js} +2 -2
  137. package/dist/admin/assets/{languages-eh7U4anI.js.map → languages-BOv0jYhe.js.map} +1 -1
  138. package/dist/admin/assets/{layers-mGfmMsKE.js → layers-CkZyCaeb.js} +2 -2
  139. package/dist/admin/assets/{layers-mGfmMsKE.js.map → layers-CkZyCaeb.js.map} +1 -1
  140. package/dist/admin/assets/{link-2-off-DbZzRN_w.js → link-2-off-UUkSmPIL.js} +2 -2
  141. package/dist/admin/assets/{link-2-off-DbZzRN_w.js.map → link-2-off-UUkSmPIL.js.map} +1 -1
  142. package/dist/admin/assets/{link-b2pFaN-A.js → link-Bvqcg7db.js} +2 -2
  143. package/dist/admin/assets/{link-b2pFaN-A.js.map → link-Bvqcg7db.js.map} +1 -1
  144. package/dist/admin/assets/{locales-oBD0q1pN.js → locales-DbrcdhZi.js} +2 -2
  145. package/dist/admin/assets/{locales-oBD0q1pN.js.map → locales-DbrcdhZi.js.map} +1 -1
  146. package/dist/admin/assets/{media-BzivlEh2.js → media-CO0HSS3b.js} +2 -2
  147. package/dist/admin/assets/{media-BzivlEh2.js.map → media-CO0HSS3b.js.map} +1 -1
  148. package/dist/admin/assets/{media-5ks_0Rre.js → media-ugEyLgwN.js} +2 -2
  149. package/dist/admin/assets/{media-5ks_0Rre.js.map → media-ugEyLgwN.js.map} +1 -1
  150. package/dist/admin/assets/{network-Cj04CpFi.js → network-BfDaUb7D.js} +2 -2
  151. package/dist/admin/assets/{network-Cj04CpFi.js.map → network-BfDaUb7D.js.map} +1 -1
  152. package/dist/admin/assets/{pencil-C7eD5mlZ.js → pencil-BLNGNJmL.js} +2 -2
  153. package/dist/admin/assets/{pencil-C7eD5mlZ.js.map → pencil-BLNGNJmL.js.map} +1 -1
  154. package/dist/admin/assets/{plus-BDZHQBlU.js → plus-BXMBYPoB.js} +2 -2
  155. package/dist/admin/assets/{plus-BDZHQBlU.js.map → plus-BXMBYPoB.js.map} +1 -1
  156. package/dist/admin/assets/{preload-helper-CJNJ4S3k.js → preload-helper-DEbJbZwX.js} +2 -2
  157. package/dist/admin/assets/{preload-helper-CJNJ4S3k.js.map → preload-helper-DEbJbZwX.js.map} +1 -1
  158. package/dist/admin/assets/{publishing-ChHkrwvr.js → publishing-DKrATBaj.js} +2 -2
  159. package/dist/admin/assets/{publishing-ChHkrwvr.js.map → publishing-DKrATBaj.js.map} +1 -1
  160. package/dist/admin/assets/{radio-group-DSK5LPaM.js → radio-group-BIhT_uEK.js} +2 -2
  161. package/dist/admin/assets/{radio-group-DSK5LPaM.js.map → radio-group-BIhT_uEK.js.map} +1 -1
  162. package/dist/admin/assets/{rotate-ccw-DCWwb4Ga.js → rotate-ccw-DqbffhiC.js} +2 -2
  163. package/dist/admin/assets/{rotate-ccw-DCWwb4Ga.js.map → rotate-ccw-DqbffhiC.js.map} +1 -1
  164. package/dist/admin/assets/{schedules-DXrBSypK.js → schedules-CETl2eLe.js} +2 -2
  165. package/dist/admin/assets/{schedules-DXrBSypK.js.map → schedules-CETl2eLe.js.map} +1 -1
  166. package/dist/admin/assets/{schema-B7L9OJrX.js → schema-CWHuez0q.js} +2 -2
  167. package/dist/admin/assets/{schema-B7L9OJrX.js.map → schema-CWHuez0q.js.map} +1 -1
  168. package/dist/admin/assets/{scroll-text-BLThe4Ki.js → scroll-text-DlcDEi2k.js} +2 -2
  169. package/dist/admin/assets/{scroll-text-BLThe4Ki.js.map → scroll-text-DlcDEi2k.js.map} +1 -1
  170. package/dist/admin/assets/{search-CcJQqtRw.js → search-Dy2dtwyR.js} +2 -2
  171. package/dist/admin/assets/{search-CcJQqtRw.js.map → search-Dy2dtwyR.js.map} +1 -1
  172. package/dist/admin/assets/{searchSchemas-BdwAFaVO.js → searchSchemas-Cz4P1iku.js} +2 -2
  173. package/dist/admin/assets/{searchSchemas-BdwAFaVO.js.map → searchSchemas-Cz4P1iku.js.map} +1 -1
  174. package/dist/admin/assets/{sections-iNOzo7pL.js → sections-BfG6DTFr.js} +2 -2
  175. package/dist/admin/assets/{sections-iNOzo7pL.js.map → sections-BfG6DTFr.js.map} +1 -1
  176. package/dist/admin/assets/{sections-TIN_Nl1b.js → sections-EgXyXN3-.js} +2 -2
  177. package/dist/admin/assets/{sections-TIN_Nl1b.js.map → sections-EgXyXN3-.js.map} +1 -1
  178. package/dist/admin/assets/{select-DyD7qIkJ.js → select--mePTdz8.js} +2 -2
  179. package/dist/admin/assets/{select-DyD7qIkJ.js.map → select--mePTdz8.js.map} +1 -1
  180. package/dist/admin/assets/{send-CbP0Rc9_.js → send-DVgq5Iwg.js} +2 -2
  181. package/dist/admin/assets/{send-CbP0Rc9_.js.map → send-DVgq5Iwg.js.map} +1 -1
  182. package/dist/admin/assets/{seo-uMm2fGPB.js → seo-Zhb62Ojz.js} +2 -2
  183. package/dist/admin/assets/{seo-uMm2fGPB.js.map → seo-Zhb62Ojz.js.map} +1 -1
  184. package/dist/admin/assets/{settings-CJVORrIV.js → settings-Mscp6tN5.js} +2 -2
  185. package/dist/admin/assets/{settings-CJVORrIV.js.map → settings-Mscp6tN5.js.map} +1 -1
  186. package/dist/admin/assets/{skeleton-B5GJgv7y.js → skeleton-DJVukcn6.js} +2 -2
  187. package/dist/admin/assets/skeleton-DJVukcn6.js.map +1 -0
  188. package/dist/admin/assets/{snapshots-DkyyrWX3.js → snapshots-BpLhILlt.js} +2 -2
  189. package/dist/admin/assets/{snapshots-DkyyrWX3.js.map → snapshots-BpLhILlt.js.map} +1 -1
  190. package/dist/admin/assets/{sparkles-D88gf3vX.js → sparkles-Dd6S_roX.js} +2 -2
  191. package/dist/admin/assets/{sparkles-D88gf3vX.js.map → sparkles-Dd6S_roX.js.map} +1 -1
  192. package/dist/admin/assets/src-Be3Ds5Dc.js +4 -0
  193. package/dist/admin/assets/src-Be3Ds5Dc.js.map +1 -0
  194. package/dist/admin/assets/{stableId-DlNKh3HM.js → stableId-DFVM13gJ.js} +2 -2
  195. package/dist/admin/assets/{stableId-DlNKh3HM.js.map → stableId-DFVM13gJ.js.map} +1 -1
  196. package/dist/admin/assets/{store-jUWyOXDG.js → store-BP-xStwU.js} +2 -2
  197. package/dist/admin/assets/{store-jUWyOXDG.js.map → store-BP-xStwU.js.map} +1 -1
  198. package/dist/admin/assets/{switch-DbIrjP3h.js → switch-skVypg5O.js} +2 -2
  199. package/dist/admin/assets/{switch-DbIrjP3h.js.map → switch-skVypg5O.js.map} +1 -1
  200. package/dist/admin/assets/{table-DQ5ILlSh.js → table-BMbbRUK9.js} +2 -2
  201. package/dist/admin/assets/{table-DQ5ILlSh.js.map → table-BMbbRUK9.js.map} +1 -1
  202. package/dist/admin/assets/tabs-C1lgOg1B.js +5 -0
  203. package/dist/admin/assets/tabs-C1lgOg1B.js.map +1 -0
  204. package/dist/admin/assets/{textarea-FwSvwmyT.js → textarea-CffBBxoQ.js} +2 -2
  205. package/dist/admin/assets/{textarea-FwSvwmyT.js.map → textarea-CffBBxoQ.js.map} +1 -1
  206. package/dist/admin/assets/{theme-C0Tv6M38.js → theme-RHTVnR9j.js} +2 -2
  207. package/dist/admin/assets/{theme-C0Tv6M38.js.map → theme-RHTVnR9j.js.map} +1 -1
  208. package/dist/admin/assets/{titles-uL13bpi8.js → titles-DWiPmNvn.js} +2 -2
  209. package/dist/admin/assets/{titles-uL13bpi8.js.map → titles-DWiPmNvn.js.map} +1 -1
  210. package/dist/admin/assets/{tokens-C-20gLAT.js → tokens-BqyeN1D-.js} +2 -2
  211. package/dist/admin/assets/{tokens-C-20gLAT.js.map → tokens-BqyeN1D-.js.map} +1 -1
  212. package/dist/admin/assets/{tooltip-BK5FqmJ0.js → tooltip-BfSF6EyR.js} +2 -2
  213. package/dist/admin/assets/{tooltip-BK5FqmJ0.js.map → tooltip-BfSF6EyR.js.map} +1 -1
  214. package/dist/admin/assets/{undo-2-CLy2zklL.js → undo-2-p4YlNhBp.js} +2 -2
  215. package/dist/admin/assets/{undo-2-CLy2zklL.js.map → undo-2-p4YlNhBp.js.map} +1 -1
  216. package/dist/admin/assets/{useAuditLabels-BJF7M5RY.js → useAuditLabels-DV5gcaaG.js} +2 -2
  217. package/dist/admin/assets/{useAuditLabels-BJF7M5RY.js.map → useAuditLabels-DV5gcaaG.js.map} +1 -1
  218. package/dist/admin/assets/{useConfirmTarget-BUvlrGSW.js → useConfirmTarget-DCvnxNVg.js} +2 -2
  219. package/dist/admin/assets/{useConfirmTarget-BUvlrGSW.js.map → useConfirmTarget-DCvnxNVg.js.map} +1 -1
  220. package/dist/admin/assets/{useContentSchema-BCdLYsKa.js → useContentSchema-z6tNif86.js} +2 -2
  221. package/dist/admin/assets/{useContentSchema-BCdLYsKa.js.map → useContentSchema-z6tNif86.js.map} +1 -1
  222. package/dist/admin/assets/{useCursorPager-CzB6NDOB.js → useCursorPager-CQGX41_L.js} +2 -2
  223. package/dist/admin/assets/{useCursorPager-CzB6NDOB.js.map → useCursorPager-CQGX41_L.js.map} +1 -1
  224. package/dist/admin/assets/{useDiscardGuard-CGFgC3xY.js → useDiscardGuard-Dhbif7VL.js} +2 -2
  225. package/dist/admin/assets/{useDiscardGuard-CGFgC3xY.js.map → useDiscardGuard-Dhbif7VL.js.map} +1 -1
  226. package/dist/admin/assets/{useMediaPickerDialog-BOkGEyG7.js → useMediaPickerDialog-D-5uKsMG.js} +2 -2
  227. package/dist/admin/assets/{useMediaPickerDialog-BOkGEyG7.js.map → useMediaPickerDialog-D-5uKsMG.js.map} +1 -1
  228. package/dist/admin/assets/{useMediaUploader-D1ouV8jc.js → useMediaUploader-BtLoimmQ.js} +2 -2
  229. package/dist/admin/assets/{useMediaUploader-D1ouV8jc.js.map → useMediaUploader-BtLoimmQ.js.map} +1 -1
  230. package/dist/admin/assets/usePaletteItems-D3PZsW0Q.js +2 -0
  231. package/dist/admin/assets/usePaletteItems-D3PZsW0Q.js.map +1 -0
  232. package/dist/admin/assets/{usePlaces-6iTN15Xy.js → usePlaces-Cj5PljTy.js} +2 -2
  233. package/dist/admin/assets/{usePlaces-6iTN15Xy.js.map → usePlaces-Cj5PljTy.js.map} +1 -1
  234. package/dist/admin/assets/{useQueries-CYfcxI0Q.js → useQueries-CeDzli4Z.js} +2 -2
  235. package/dist/admin/assets/{useQueries-CYfcxI0Q.js.map → useQueries-CeDzli4Z.js.map} +1 -1
  236. package/dist/admin/assets/{useResolvedScheme-D0moXjaP.js → useResolvedScheme-DHD-zisP.js} +2 -2
  237. package/dist/admin/assets/{useResolvedScheme-D0moXjaP.js.map → useResolvedScheme-DHD-zisP.js.map} +1 -1
  238. package/dist/admin/assets/{useSchemaScopeAccess-WQKmj8_3.js → useSchemaScopeAccess-BNeVslcv.js} +2 -2
  239. package/dist/admin/assets/{useSchemaScopeAccess-WQKmj8_3.js.map → useSchemaScopeAccess-BNeVslcv.js.map} +1 -1
  240. package/dist/admin/assets/{users-BgTNDPXx.js → users-BRefbzuS.js} +2 -2
  241. package/dist/admin/assets/{users-BgTNDPXx.js.map → users-BRefbzuS.js.map} +1 -1
  242. package/dist/admin/assets/{users-B01EH47o.js → users-CppI8ctO.js} +2 -2
  243. package/dist/admin/assets/{users-B01EH47o.js.map → users-CppI8ctO.js.map} +1 -1
  244. package/dist/admin/assets/{zod-CS0EvbwG.js → zod-Dcwk-m8X.js} +2 -2
  245. package/dist/admin/assets/{zod-CS0EvbwG.js.map → zod-Dcwk-m8X.js.map} +1 -1
  246. package/dist/admin/index.html +57 -57
  247. package/dist/cli.js +110 -18
  248. package/dist/cli.js.map +1 -1
  249. package/dist/config.d.ts +1 -1
  250. package/dist/index.d.ts +1 -1
  251. package/dist/index.js +1 -1
  252. package/dist/{public-BSbOGbK-.d.ts → public-DYR4mtVQ.d.ts} +3 -1
  253. package/dist/s3Adapter-C8AgFVYw.js +125 -0
  254. package/dist/s3Adapter-C8AgFVYw.js.map +1 -0
  255. package/dist/{worker-i1rY2TIZ.js → worker-jz_0yAmS.js} +691 -458
  256. package/dist/worker-jz_0yAmS.js.map +1 -0
  257. package/package.json +8 -5
  258. package/dist/admin/assets/Builder-C11yUgu9.js +0 -2
  259. package/dist/admin/assets/Builder-C11yUgu9.js.map +0 -1
  260. package/dist/admin/assets/Structure-DGt-TDk5.js +0 -2
  261. package/dist/admin/assets/chevron-left-D2DnQyeV.js +0 -2
  262. package/dist/admin/assets/cn-CL1YHRrS.js +0 -2
  263. package/dist/admin/assets/cn-CL1YHRrS.js.map +0 -1
  264. package/dist/admin/assets/coerce-B4MJTGg1.js +0 -2
  265. package/dist/admin/assets/content-HvisCB5m.js +0 -3
  266. package/dist/admin/assets/content-HvisCB5m.js.map +0 -1
  267. package/dist/admin/assets/index-Bbb2ER3l.css +0 -2
  268. package/dist/admin/assets/index-C6FrF34G.js +0 -4
  269. package/dist/admin/assets/index-C6FrF34G.js.map +0 -1
  270. package/dist/admin/assets/skeleton-B5GJgv7y.js.map +0 -1
  271. package/dist/admin/assets/src-B2qcqjNM.js +0 -4
  272. package/dist/admin/assets/src-B2qcqjNM.js.map +0 -1
  273. package/dist/admin/assets/tabs-BJhfL-lw.js +0 -5
  274. package/dist/admin/assets/tabs-BJhfL-lw.js.map +0 -1
  275. package/dist/admin/assets/usePaletteItems-neKzBlys.js +0 -2
  276. package/dist/admin/assets/usePaletteItems-neKzBlys.js.map +0 -1
  277. package/dist/worker-i1rY2TIZ.js.map +0 -1
package/dist/config.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { A as ServiceFactoryContext, C as HookEvent, D as MediaUsage, E as MediaReferenceService, F as defineConfig, I as isHookError, M as ShapioServices, N as ThemeDefinition, O as ModelHooks, P as ThemeTokens, S as HookError, T as JobHandlerContext, _ as ExtensionRoute, a as BeforeHookContext, b as ExtensionSite, c as ContentReadOptions, d as EXTENSION_CONTRACT_VERSION, f as EnqueueOptions, g as ExtensionJobService, h as ExtensionJobHandler, i as BeforeHook, j as ShapioConfig, k as ServiceFactory, l as ContentReadService, m as ExtensionHostConfig, n as AfterHookContext, o as BeforeHookEvent, p as EntryData, r as AfterHookEvent, s as ContentReadEntry, t as AfterHook, u as CustomServices, v as ExtensionRouteOptions, w as HookModel, x as HookEntry, y as ExtensionServices } from "./public-BSbOGbK-.js";
1
+ import { A as ServiceFactoryContext, C as HookEvent, D as MediaUsage, E as MediaReferenceService, F as defineConfig, I as isHookError, M as ShapioServices, N as ThemeDefinition, O as ModelHooks, P as ThemeTokens, S as HookError, T as JobHandlerContext, _ as ExtensionRoute, a as BeforeHookContext, b as ExtensionSite, c as ContentReadOptions, d as EXTENSION_CONTRACT_VERSION, f as EnqueueOptions, g as ExtensionJobService, h as ExtensionJobHandler, i as BeforeHook, j as ShapioConfig, k as ServiceFactory, l as ContentReadService, m as ExtensionHostConfig, n as AfterHookContext, o as BeforeHookEvent, p as EntryData, r as AfterHookEvent, s as ContentReadEntry, t as AfterHook, u as CustomServices, v as ExtensionRouteOptions, w as HookModel, x as HookEntry, y as ExtensionServices } from "./public-DYR4mtVQ.js";
2
2
  export { AfterHook, AfterHookContext, AfterHookEvent, BeforeHook, BeforeHookContext, BeforeHookEvent, ContentReadEntry, ContentReadOptions, ContentReadService, CustomServices, EXTENSION_CONTRACT_VERSION, EnqueueOptions, EntryData, ExtensionHostConfig, ExtensionJobHandler, ExtensionJobService, ExtensionRoute, ExtensionRouteOptions, ExtensionServices, ExtensionSite, HookEntry, HookError, HookEvent, HookModel, JobHandlerContext, MediaReferenceService, MediaUsage, ModelHooks, ServiceFactory, ServiceFactoryContext, ShapioConfig, ShapioServices, ThemeDefinition, ThemeTokens, defineConfig, isHookError };
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { A as ServiceFactoryContext, B as Principal, C as HookEvent, D as MediaUsage, E as MediaReferenceService, F as defineConfig, G as ComponentDefinition, H as DB, I as isHookError, J as ModelDefinition, K as DataType, L as KnownVersions, M as ShapioServices, N as ThemeDefinition, O as ModelHooks, P as ThemeTokens, R as PermissionEvaluator, S as HookError, T as JobHandlerContext, U as OutboxEvents, V as Database, W as ContentData, Y as SchemaChange, _ as ExtensionRoute, a as BeforeHookContext, b as ExtensionSite, c as ContentReadOptions, d as EXTENSION_CONTRACT_VERSION, f as EnqueueOptions, g as ExtensionJobService, h as ExtensionJobHandler, i as BeforeHook, j as ShapioConfig, k as ServiceFactory, l as ContentReadService, m as ExtensionHostConfig, n as AfterHookContext, o as BeforeHookEvent, p as EntryData, q as JsonValue, r as AfterHookEvent, s as ContentReadEntry, t as AfterHook, u as CustomServices, v as ExtensionRouteOptions, w as HookModel, x as HookEntry, y as ExtensionServices, z as PermissionExecutor } from "./public-BSbOGbK-.js";
1
+ import { A as ServiceFactoryContext, B as Principal, C as HookEvent, D as MediaUsage, E as MediaReferenceService, F as defineConfig, G as ComponentDefinition, H as DB, I as isHookError, J as ModelDefinition, K as DataType, L as KnownVersions, M as ShapioServices, N as ThemeDefinition, O as ModelHooks, P as ThemeTokens, R as PermissionEvaluator, S as HookError, T as JobHandlerContext, U as OutboxEvents, V as Database, W as ContentData, Y as SchemaChange, _ as ExtensionRoute, a as BeforeHookContext, b as ExtensionSite, c as ContentReadOptions, d as EXTENSION_CONTRACT_VERSION, f as EnqueueOptions, g as ExtensionJobService, h as ExtensionJobHandler, i as BeforeHook, j as ShapioConfig, k as ServiceFactory, l as ContentReadService, m as ExtensionHostConfig, n as AfterHookContext, o as BeforeHookEvent, p as EntryData, q as JsonValue, r as AfterHookEvent, s as ContentReadEntry, t as AfterHook, u as CustomServices, v as ExtensionRouteOptions, w as HookModel, x as HookEntry, y as ExtensionServices, z as PermissionExecutor } from "./public-DYR4mtVQ.js";
2
2
  import { FastifyBaseLogger, FastifyInstance } from "fastify";
3
3
  import { Kysely, Selectable, Transaction } from "kysely";
4
4
  import { Static, Type } from "typebox";
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- import { a as loadConfig, n as startServer, s as buildApp, t as startDedicatedWorker, u as SHAPIO_VERSION } from "./worker-i1rY2TIZ.js";
1
+ import { a as loadConfig, f as SHAPIO_VERSION, n as startServer, s as buildApp, t as startDedicatedWorker } from "./worker-jz_0yAmS.js";
2
2
  import { EXTENSION_CONTRACT_VERSION, HookError, defineConfig, isHookError } from "./config.js";
3
3
  export { EXTENSION_CONTRACT_VERSION, HookError, SHAPIO_VERSION, buildApp, defineConfig, isHookError, loadConfig, startDedicatedWorker, startServer };
@@ -585,6 +585,7 @@ interface EntryHeads {
585
585
  change_seq: Generated<Int8>;
586
586
  created_at: Generated<Timestamp>;
587
587
  data: ContentData;
588
+ entry_created_at: Timestamp | null;
588
589
  entry_id: string;
589
590
  locale: string;
590
591
  model_id: string;
@@ -905,6 +906,7 @@ interface SystemSettings {
905
906
  interface SystemVersions {
906
907
  id: Generated<boolean>;
907
908
  permissions_version: Generated<number>;
909
+ release: string | null;
908
910
  schema_version: Generated<number>;
909
911
  updated_at: Generated<Timestamp>;
910
912
  }
@@ -1444,4 +1446,4 @@ declare class HookError extends Error {
1444
1446
  declare const isHookError: (error: unknown) => error is HookError;
1445
1447
  //#endregion
1446
1448
  export { ServiceFactoryContext as A, Principal as B, HookEvent as C, MediaUsage as D, MediaReferenceService as E, defineConfig as F, ComponentDefinition as G, DB as H, isHookError as I, ModelDefinition as J, DataType as K, KnownVersions as L, ShapioServices as M, ThemeDefinition as N, ModelHooks as O, ThemeTokens as P, PermissionEvaluator as R, HookError as S, JobHandlerContext as T, OutboxEvents as U, Database as V, ContentData as W, SchemaChange as Y, ExtensionRoute as _, BeforeHookContext as a, ExtensionSite as b, ContentReadOptions as c, EXTENSION_CONTRACT_VERSION as d, EnqueueOptions as f, ExtensionJobService as g, ExtensionJobHandler as h, BeforeHook as i, ShapioConfig as j, ServiceFactory as k, ContentReadService as l, ExtensionHostConfig as m, AfterHookContext as n, BeforeHookEvent as o, EntryData as p, JsonValue$1 as q, AfterHookEvent as r, ContentReadEntry as s, AfterHook as t, CustomServices as u, ExtensionRouteOptions as v, HookModel as w, HookEntry as x, ExtensionServices as y, PermissionExecutor as z };
1447
- //# sourceMappingURL=public-BSbOGbK-.d.ts.map
1449
+ //# sourceMappingURL=public-DYR4mtVQ.d.ts.map
@@ -0,0 +1,125 @@
1
+ import { M as isValidStorageKey, c as bucketContentDisposition, h as ObjectNotFoundError, j as encodeKeyPath, l as contentDisposition, m as InvalidStorageKeyError } from "./worker-jz_0yAmS.js";
2
+ import { DeleteObjectCommand, GetObjectCommand, HeadObjectCommand, PutObjectCommand, S3Client, S3ServiceException } from "@aws-sdk/client-s3";
3
+ import { createPresignedPost } from "@aws-sdk/s3-presigned-post";
4
+ import { getSignedUrl } from "@aws-sdk/s3-request-presigner";
5
+ //#region src/media/s3Adapter.ts
6
+ /** R2 accepts any region name ("auto" by convention); AWS needs the bucket's real region. */
7
+ const DEFAULT_REGION = "us-east-1";
8
+ const isNotFound = (error) => error instanceof S3ServiceException && (error.$metadata.httpStatusCode === 404 || error.name === "NotFound" || error.name === "NoSuchKey");
9
+ const createS3Client = (config) => new S3Client({
10
+ region: config.region ?? DEFAULT_REGION,
11
+ ...config.endpoint ? { endpoint: config.endpoint } : {},
12
+ forcePathStyle: config.forcePathStyle,
13
+ ...config.accessKeyId && config.secretAccessKey ? { credentials: {
14
+ accessKeyId: config.accessKeyId,
15
+ secretAccessKey: config.secretAccessKey
16
+ } } : {},
17
+ requestChecksumCalculation: "WHEN_REQUIRED",
18
+ responseChecksumValidation: "WHEN_REQUIRED"
19
+ });
20
+ /**
21
+ * Any S3-compatible service (AWS S3, Cloudflare R2, B2, Spaces, Wasabi, versitygw). Private objects are read
22
+ * through presigned GET URLs; browsers upload straight to the bucket with a presigned POST whose policy
23
+ * limits size and content type, so Shapio never streams upload bytes.
24
+ */
25
+ const createS3Adapter = ({ config, publicBaseUrl, client }) => {
26
+ const s3 = client ?? createS3Client(config);
27
+ const Bucket = config.bucket;
28
+ const checkKey = (key) => {
29
+ if (!isValidStorageKey(key)) throw new InvalidStorageKeyError(key);
30
+ return key;
31
+ };
32
+ const head = async (key) => {
33
+ try {
34
+ const result = await s3.send(new HeadObjectCommand({
35
+ Bucket,
36
+ Key: checkKey(key)
37
+ }));
38
+ return {
39
+ size: result.ContentLength ?? 0,
40
+ contentType: result.ContentType
41
+ };
42
+ } catch (error) {
43
+ if (isNotFound(error)) return;
44
+ throw error;
45
+ }
46
+ };
47
+ return {
48
+ driver: "s3",
49
+ put: async (key, body, { contentType, contentLength }) => {
50
+ await s3.send(new PutObjectCommand({
51
+ Bucket,
52
+ Key: checkKey(key),
53
+ Body: body,
54
+ ContentType: contentType,
55
+ ContentLength: Buffer.isBuffer(body) ? body.length : contentLength,
56
+ ContentDisposition: bucketContentDisposition(contentType)
57
+ }));
58
+ },
59
+ getStream: async (key, range) => {
60
+ try {
61
+ const result = await s3.send(new GetObjectCommand({
62
+ Bucket,
63
+ Key: checkKey(key),
64
+ ...range ? { Range: `bytes=${range.start}-${range.end}` } : {}
65
+ }));
66
+ if (!result.Body) throw new ObjectNotFoundError(key);
67
+ return result.Body;
68
+ } catch (error) {
69
+ throw isNotFound(error) ? new ObjectNotFoundError(key, { cause: error }) : error;
70
+ }
71
+ },
72
+ head,
73
+ exists: async (key) => await head(key) !== void 0,
74
+ delete: async (key) => {
75
+ await s3.send(new DeleteObjectCommand({
76
+ Bucket,
77
+ Key: checkKey(key)
78
+ }));
79
+ },
80
+ signedGetUrl: async (key, { expiresInSeconds, filename, contentType }) => getSignedUrl(s3, new GetObjectCommand({
81
+ Bucket,
82
+ Key: checkKey(key),
83
+ ResponseContentType: contentType,
84
+ ResponseContentDisposition: contentDisposition(filename)
85
+ }), { expiresIn: expiresInSeconds }),
86
+ publicUrl: (key) => publicBaseUrl ? `${publicBaseUrl}/${encodeKeyPath(checkKey(key))}` : void 0,
87
+ presignedUpload: async ({ key, contentType, maxSizeBytes, expiresInSeconds }) => {
88
+ const disposition = bucketContentDisposition(contentType);
89
+ const { url, fields } = await createPresignedPost(s3, {
90
+ Bucket,
91
+ Key: checkKey(key),
92
+ Conditions: [
93
+ [
94
+ "content-length-range",
95
+ 1,
96
+ maxSizeBytes
97
+ ],
98
+ [
99
+ "eq",
100
+ "$Content-Type",
101
+ contentType
102
+ ],
103
+ ...disposition ? [[
104
+ "eq",
105
+ "$Content-Disposition",
106
+ disposition
107
+ ]] : []
108
+ ],
109
+ Fields: {
110
+ "Content-Type": contentType,
111
+ ...disposition ? { "Content-Disposition": disposition } : {}
112
+ },
113
+ Expires: expiresInSeconds
114
+ });
115
+ return {
116
+ url,
117
+ fields
118
+ };
119
+ }
120
+ };
121
+ };
122
+ //#endregion
123
+ export { createS3Adapter };
124
+
125
+ //# sourceMappingURL=s3Adapter-C8AgFVYw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"s3Adapter-C8AgFVYw.js","names":[],"sources":["../src/media/s3Adapter.ts"],"sourcesContent":["import type { Readable } from 'node:stream';\nimport {\n DeleteObjectCommand,\n GetObjectCommand,\n HeadObjectCommand,\n PutObjectCommand,\n S3Client,\n S3ServiceException,\n} from '@aws-sdk/client-s3';\nimport { createPresignedPost } from '@aws-sdk/s3-presigned-post';\nimport { getSignedUrl } from '@aws-sdk/s3-request-presigner';\nimport type { S3StorageConfig } from '../config/index.js';\nimport { bucketContentDisposition, contentDisposition } from './contentDisposition.js';\nimport { InvalidStorageKeyError, ObjectNotFoundError } from './errors.js';\nimport { encodeKeyPath, isValidStorageKey } from './keys.js';\nimport type { StorageAdapter } from './types.js';\n\n/** R2 accepts any region name (\"auto\" by convention); AWS needs the bucket's real region. */\nconst DEFAULT_REGION = 'us-east-1';\n\nconst isNotFound = (error: unknown): boolean =>\n error instanceof S3ServiceException &&\n (error.$metadata.httpStatusCode === 404 || error.name === 'NotFound' || error.name === 'NoSuchKey');\n\nexport const createS3Client = (config: S3StorageConfig): S3Client =>\n new S3Client({\n region: config.region ?? DEFAULT_REGION,\n ...(config.endpoint ? { endpoint: config.endpoint } : {}),\n forcePathStyle: config.forcePathStyle,\n ...(config.accessKeyId && config.secretAccessKey\n ? { credentials: { accessKeyId: config.accessKeyId, secretAccessKey: config.secretAccessKey } }\n : {}),\n // Only send/validate checksums when an operation requires them: several S3-compatible services\n // (R2, B2 and other gateways) reject the SDK's default streaming CRC32 trailers.\n requestChecksumCalculation: 'WHEN_REQUIRED',\n responseChecksumValidation: 'WHEN_REQUIRED',\n });\n\nexport type S3AdapterOptions = {\n config: S3StorageConfig;\n publicBaseUrl: string | undefined;\n /** Injected in tests; created from `config` otherwise. */\n client?: S3Client;\n};\n\n/**\n * Any S3-compatible service (AWS S3, Cloudflare R2, B2, Spaces, Wasabi, versitygw). Private objects are read\n * through presigned GET URLs; browsers upload straight to the bucket with a presigned POST whose policy\n * limits size and content type, so Shapio never streams upload bytes.\n */\nexport const createS3Adapter = ({ config, publicBaseUrl, client }: S3AdapterOptions): StorageAdapter => {\n const s3 = client ?? createS3Client(config);\n const Bucket = config.bucket;\n const checkKey = (key: string) => {\n if (!isValidStorageKey(key)) {\n throw new InvalidStorageKeyError(key);\n }\n return key;\n };\n\n const head = async (key: string) => {\n try {\n const result = await s3.send(new HeadObjectCommand({ Bucket, Key: checkKey(key) }));\n return { size: result.ContentLength ?? 0, contentType: result.ContentType };\n } catch (error) {\n if (isNotFound(error)) {\n return undefined;\n }\n throw error;\n }\n };\n\n return {\n driver: 's3',\n put: async (key, body, { contentType, contentLength }) => {\n await s3.send(\n new PutObjectCommand({\n Bucket,\n Key: checkKey(key),\n Body: body,\n ContentType: contentType,\n ContentLength: Buffer.isBuffer(body) ? body.length : contentLength,\n ContentDisposition: bucketContentDisposition(contentType),\n }),\n );\n },\n getStream: async (key, range) => {\n try {\n const result = await s3.send(\n new GetObjectCommand({\n Bucket,\n Key: checkKey(key),\n ...(range ? { Range: `bytes=${range.start}-${range.end}` } : {}),\n }),\n );\n if (!result.Body) {\n throw new ObjectNotFoundError(key);\n }\n return result.Body as Readable;\n } catch (error) {\n throw isNotFound(error) ? new ObjectNotFoundError(key, { cause: error }) : error;\n }\n },\n head,\n exists: async (key) => (await head(key)) !== undefined,\n delete: async (key) => {\n await s3.send(new DeleteObjectCommand({ Bucket, Key: checkKey(key) }));\n },\n signedGetUrl: async (key, { expiresInSeconds, filename, contentType }) =>\n getSignedUrl(\n s3,\n new GetObjectCommand({\n Bucket,\n Key: checkKey(key),\n ResponseContentType: contentType,\n ResponseContentDisposition: contentDisposition(filename),\n }),\n { expiresIn: expiresInSeconds },\n ),\n publicUrl: (key) => (publicBaseUrl ? `${publicBaseUrl}/${encodeKeyPath(checkKey(key))}` : undefined),\n presignedUpload: async ({ key, contentType, maxSizeBytes, expiresInSeconds }) => {\n const disposition = bucketContentDisposition(contentType);\n const { url, fields } = await createPresignedPost(s3, {\n Bucket,\n Key: checkKey(key),\n Conditions: [\n ['content-length-range', 1, maxSizeBytes],\n ['eq', '$Content-Type', contentType],\n ...(disposition ? [['eq', '$Content-Disposition', disposition] as ['eq', string, string]] : []),\n ],\n Fields: {\n 'Content-Type': contentType,\n ...(disposition ? { 'Content-Disposition': disposition } : {}),\n },\n Expires: expiresInSeconds,\n });\n return { url, fields };\n },\n };\n};\n"],"mappings":"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"}