@shapio/cms 0.5.4 → 0.5.5

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 (291) hide show
  1. package/dist/admin/assets/{AssetTile-DWaHjfcU.js → AssetTile-CaYPqR_F.js} +2 -2
  2. package/dist/admin/assets/{AssetTile-DWaHjfcU.js.map → AssetTile-CaYPqR_F.js.map} +1 -1
  3. package/dist/admin/assets/{AssistError-CYV_H4uu.js → AssistError-drmpXSbS.js} +2 -2
  4. package/dist/admin/assets/{AssistError-CYV_H4uu.js.map → AssistError-drmpXSbS.js.map} +1 -1
  5. package/dist/admin/assets/{BlockMenuItems-BRKp5YAK.js → BlockMenuItems-D-jZ0oaU.js} +2 -2
  6. package/dist/admin/assets/{BlockMenuItems-BRKp5YAK.js.map → BlockMenuItems-D-jZ0oaU.js.map} +1 -1
  7. package/dist/admin/assets/{Body-CdlxJrnW.js → Body-Gn_z2KPN.js} +2 -2
  8. package/dist/admin/assets/{Body-CdlxJrnW.js.map → Body-Gn_z2KPN.js.map} +1 -1
  9. package/dist/admin/assets/Builder-DyCcikfS.js +2 -0
  10. package/dist/admin/assets/Builder-DyCcikfS.js.map +1 -0
  11. package/dist/admin/assets/{CodeEditor-h7SDbh8e.js → CodeEditor-CzRU6och.js} +2 -2
  12. package/dist/admin/assets/{CodeEditor-h7SDbh8e.js.map → CodeEditor-CzRU6och.js.map} +1 -1
  13. package/dist/admin/assets/{ConfirmDialog-Dq6IrmS9.js → ConfirmDialog-DZRJfdvH.js} +2 -2
  14. package/dist/admin/assets/{ConfirmDialog-Dq6IrmS9.js.map → ConfirmDialog-DZRJfdvH.js.map} +1 -1
  15. package/dist/admin/assets/{CopyButton-BiMHd8OL.js → CopyButton-h4HYhnYp.js} +2 -2
  16. package/dist/admin/assets/{CopyButton-BiMHd8OL.js.map → CopyButton-h4HYhnYp.js.map} +1 -1
  17. package/dist/admin/assets/{CursorPager-CXI-RhTJ.js → CursorPager-H4SpVYw7.js} +2 -2
  18. package/dist/admin/assets/{CursorPager-CXI-RhTJ.js.map → CursorPager-H4SpVYw7.js.map} +1 -1
  19. package/dist/admin/assets/{ExternalLink-xUrKyqHx.js → ExternalLink-BNq7nAYL.js} +2 -2
  20. package/dist/admin/assets/{ExternalLink-xUrKyqHx.js.map → ExternalLink-BNq7nAYL.js.map} +1 -1
  21. package/dist/admin/assets/{FocalPoint-D_Ccn0US.js → FocalPoint-CSeKI4Iw.js} +2 -2
  22. package/dist/admin/assets/{FocalPoint-D_Ccn0US.js.map → FocalPoint-CSeKI4Iw.js.map} +1 -1
  23. package/dist/admin/assets/Form-DF_YmR1G.js +2 -0
  24. package/dist/admin/assets/{Form-DKfQ6_lP.js.map → Form-DF_YmR1G.js.map} +1 -1
  25. package/dist/admin/assets/{FormCheckboxGroup-CNexUHvc.js → FormCheckboxGroup-V3IKrvzc.js} +2 -2
  26. package/dist/admin/assets/{FormCheckboxGroup-CNexUHvc.js.map → FormCheckboxGroup-V3IKrvzc.js.map} +1 -1
  27. package/dist/admin/assets/{FormRadioGroup-Bz09LqOn.js → FormRadioGroup-DIv-MYgn.js} +2 -2
  28. package/dist/admin/assets/{FormRadioGroup-Bz09LqOn.js.map → FormRadioGroup-DIv-MYgn.js.map} +1 -1
  29. package/dist/admin/assets/{FormSelectField-rX_rC7NA.js → FormSelectField-CUhaPIMY.js} +2 -2
  30. package/dist/admin/assets/{FormSelectField-rX_rC7NA.js.map → FormSelectField-CUhaPIMY.js.map} +1 -1
  31. package/dist/admin/assets/{FormSwitchField-B0wQTcF3.js → FormSwitchField-DW8ysyk_.js} +2 -2
  32. package/dist/admin/assets/{FormSwitchField-B0wQTcF3.js.map → FormSwitchField-DW8ysyk_.js.map} +1 -1
  33. package/dist/admin/assets/{FormTextareaField-CQ6wnIlF.js → FormTextareaField-DbqZ-MwI.js} +2 -2
  34. package/dist/admin/assets/{FormTextareaField-CQ6wnIlF.js.map → FormTextareaField-DbqZ-MwI.js.map} +1 -1
  35. package/dist/admin/assets/{HintedLabel-BPZ7Qd6n.js → HintedLabel-BlLtqVVz.js} +2 -2
  36. package/dist/admin/assets/{HintedLabel-BPZ7Qd6n.js.map → HintedLabel-BlLtqVVz.js.map} +1 -1
  37. package/dist/admin/assets/{InfoHint-2HZJCzwW.js → InfoHint-bYMd_t0J.js} +2 -2
  38. package/dist/admin/assets/{InfoHint-2HZJCzwW.js.map → InfoHint-bYMd_t0J.js.map} +1 -1
  39. package/dist/admin/assets/{InsertMenuItem-DBjeJAgk.js → InsertMenuItem-D2HGERzb.js} +2 -2
  40. package/dist/admin/assets/{InsertMenuItem-DBjeJAgk.js.map → InsertMenuItem-D2HGERzb.js.map} +1 -1
  41. package/dist/admin/assets/{LinkTabs-uqCcqqdx.js → LinkTabs-ByB2eCIr.js} +2 -2
  42. package/dist/admin/assets/{LinkTabs-uqCcqqdx.js.map → LinkTabs-ByB2eCIr.js.map} +1 -1
  43. package/dist/admin/assets/{Match-CH4OI7xo.js → Match-GDx_orOH.js} +2 -2
  44. package/dist/admin/assets/{Match-CH4OI7xo.js.map → Match-GDx_orOH.js.map} +1 -1
  45. package/dist/admin/assets/{QueryView-UMDuxj-g.js → QueryView-UBO-U5Wo.js} +2 -2
  46. package/dist/admin/assets/{QueryView-UMDuxj-g.js.map → QueryView-UBO-U5Wo.js.map} +1 -1
  47. package/dist/admin/assets/{RadioTile-D_mY8BQv.js → RadioTile-CJbIIV8t.js} +2 -2
  48. package/dist/admin/assets/{RadioTile-D_mY8BQv.js.map → RadioTile-CJbIIV8t.js.map} +1 -1
  49. package/dist/admin/assets/{RichTextField-jy6R2FE-.js → RichTextField-M7HyUhYF.js} +5 -5
  50. package/dist/admin/assets/{RichTextField-jy6R2FE-.js.map → RichTextField-M7HyUhYF.js.map} +1 -1
  51. package/dist/admin/assets/{RowTitle-DuN-jQxy.js → RowTitle-DoxDM1XL.js} +2 -2
  52. package/dist/admin/assets/{RowTitle-DuN-jQxy.js.map → RowTitle-DoxDM1XL.js.map} +1 -1
  53. package/dist/admin/assets/{SecretReveal-TM7VYAeY.js → SecretReveal-kCkLH5jg.js} +2 -2
  54. package/dist/admin/assets/{SecretReveal-TM7VYAeY.js.map → SecretReveal-kCkLH5jg.js.map} +1 -1
  55. package/dist/admin/assets/{SharedGlyph-DcbEGwSL.js → SharedGlyph-D1OMHXPf.js} +2 -2
  56. package/dist/admin/assets/{SharedGlyph-DcbEGwSL.js.map → SharedGlyph-D1OMHXPf.js.map} +1 -1
  57. package/dist/admin/assets/StepList-BIQjDaWQ.js +2 -0
  58. package/dist/admin/assets/{StepList-B4I59Yl_.js.map → StepList-BIQjDaWQ.js.map} +1 -1
  59. package/dist/admin/assets/Structure-CO4aJZVP.js +2 -0
  60. package/dist/admin/assets/{Structure-BYK71uPq.js.map → Structure-CO4aJZVP.js.map} +1 -1
  61. package/dist/admin/assets/{SubNavLink-Ccx9PJyM.js → SubNavLink-CPJFIt1j.js} +2 -2
  62. package/dist/admin/assets/{SubNavLink-Ccx9PJyM.js.map → SubNavLink-CPJFIt1j.js.map} +1 -1
  63. package/dist/admin/assets/{SuggestAltButton-Vvg9XEqL.js → SuggestAltButton-CbRUxD5s.js} +2 -2
  64. package/dist/admin/assets/{SuggestAltButton-Vvg9XEqL.js.map → SuggestAltButton-CbRUxD5s.js.map} +1 -1
  65. package/dist/admin/assets/{TextLink-_2c_cSwP.js → TextLink-DnrMaF2F.js} +2 -2
  66. package/dist/admin/assets/{TextLink-_2c_cSwP.js.map → TextLink-DnrMaF2F.js.map} +1 -1
  67. package/dist/admin/assets/{Thumbnail-B1iRlbxI.js → Thumbnail-D1XuDElk.js} +2 -2
  68. package/dist/admin/assets/{Thumbnail-B1iRlbxI.js.map → Thumbnail-D1XuDElk.js.map} +1 -1
  69. package/dist/admin/assets/{UnsavedChangesGuard-CrtHd2la.js → UnsavedChangesGuard-C1n7egF6.js} +2 -2
  70. package/dist/admin/assets/{UnsavedChangesGuard-CrtHd2la.js.map → UnsavedChangesGuard-C1n7egF6.js.map} +1 -1
  71. package/dist/admin/assets/{UserAvatar-C-_SZaBb.js → UserAvatar-Bl32IpG_.js} +2 -2
  72. package/dist/admin/assets/{UserAvatar-C-_SZaBb.js.map → UserAvatar-Bl32IpG_.js.map} +1 -1
  73. package/dist/admin/assets/auth-C4fHG9Iu.js +2 -0
  74. package/dist/admin/assets/{auth-kvLrpCst.js.map → auth-C4fHG9Iu.js.map} +1 -1
  75. package/dist/admin/assets/{badge-CB016qlm.js → badge-ydvfgE8a.js} +2 -2
  76. package/dist/admin/assets/{badge-CB016qlm.js.map → badge-ydvfgE8a.js.map} +1 -1
  77. package/dist/admin/assets/{boxes-CYCCewHl.js → boxes-D6Y4Cenx.js} +2 -2
  78. package/dist/admin/assets/{boxes-CYCCewHl.js.map → boxes-D6Y4Cenx.js.map} +1 -1
  79. package/dist/admin/assets/{calendar-clock-BJHRssUa.js → calendar-clock-DFUgXWXg.js} +2 -2
  80. package/dist/admin/assets/{calendar-clock-BJHRssUa.js.map → calendar-clock-DFUgXWXg.js.map} +1 -1
  81. package/dist/admin/assets/changeSets-DgfCKja3.js +2 -0
  82. package/dist/admin/assets/{changeSets-BjP6UzCi.js.map → changeSets-DgfCKja3.js.map} +1 -1
  83. package/dist/admin/assets/chevron-left-CZXrLV99.js +2 -0
  84. package/dist/admin/assets/{chevron-left-uCIwt51T.js.map → chevron-left-CZXrLV99.js.map} +1 -1
  85. package/dist/admin/assets/{circle-check-nVBFETQc.js → circle-check-De27poaB.js} +2 -2
  86. package/dist/admin/assets/{circle-check-nVBFETQc.js.map → circle-check-De27poaB.js.map} +1 -1
  87. package/dist/admin/assets/{clock-BJiK6mtP.js → clock-BGAXsuo4.js} +2 -2
  88. package/dist/admin/assets/{clock-BJiK6mtP.js.map → clock-BGAXsuo4.js.map} +1 -1
  89. package/dist/admin/assets/{constants-DgCYLdxl.js → constants-esJAnNTh.js} +2 -2
  90. package/dist/admin/assets/{constants-DgCYLdxl.js.map → constants-esJAnNTh.js.map} +1 -1
  91. package/dist/admin/assets/content-DsMSB6Wb.js +3 -0
  92. package/dist/admin/assets/content-DsMSB6Wb.js.map +1 -0
  93. package/dist/admin/assets/{contentCounts-K6UCGeqH.js → contentCounts-DknqJ4kh.js} +2 -2
  94. package/dist/admin/assets/{contentCounts-K6UCGeqH.js.map → contentCounts-DknqJ4kh.js.map} +1 -1
  95. package/dist/admin/assets/{contentTypes-DDb1tieq.js → contentTypes-C-AKiYu1.js} +2 -2
  96. package/dist/admin/assets/{contentTypes-DDb1tieq.js.map → contentTypes-C-AKiYu1.js.map} +1 -1
  97. package/dist/admin/assets/{context-BJ7ilMj9.js → context-fImO9k99.js} +2 -2
  98. package/dist/admin/assets/{context-BJ7ilMj9.js.map → context-fImO9k99.js.map} +1 -1
  99. package/dist/admin/assets/{copy-CWYrWaJy.js → copy-B5owk67M.js} +2 -2
  100. package/dist/admin/assets/{copy-CWYrWaJy.js.map → copy-B5owk67M.js.map} +1 -1
  101. package/dist/admin/assets/createLucideIcon-CqygG5K6.js +2 -0
  102. package/dist/admin/assets/createLucideIcon-CqygG5K6.js.map +1 -0
  103. package/dist/admin/assets/develop-DL-2W9jv.js +11 -0
  104. package/dist/admin/assets/develop-DL-2W9jv.js.map +1 -0
  105. package/dist/admin/assets/{dropdown-menu-jrFjkuhR.js → dropdown-menu-C53v9ioW.js} +2 -2
  106. package/dist/admin/assets/{dropdown-menu-jrFjkuhR.js.map → dropdown-menu-C53v9ioW.js.map} +1 -1
  107. package/dist/admin/assets/{ellipsis-D304Uu9C.js → ellipsis-BHtU4ov6.js} +2 -2
  108. package/dist/admin/assets/{ellipsis-D304Uu9C.js.map → ellipsis-BHtU4ov6.js.map} +1 -1
  109. package/dist/admin/assets/es2015-DrAA1N2V.js +42 -0
  110. package/dist/admin/assets/es2015-DrAA1N2V.js.map +1 -0
  111. package/dist/admin/assets/{external-link-s_y1Tlvw.js → external-link-nZp2VpKw.js} +2 -2
  112. package/dist/admin/assets/{external-link-s_y1Tlvw.js.map → external-link-nZp2VpKw.js.map} +1 -1
  113. package/dist/admin/assets/{field-DkUe0lrH.js → field-W1dB_h6d.js} +2 -2
  114. package/dist/admin/assets/{field-DkUe0lrH.js.map → field-W1dB_h6d.js.map} +1 -1
  115. package/dist/admin/assets/{file-stack-DV3BHV7A.js → file-stack-8rRouTJj.js} +2 -2
  116. package/dist/admin/assets/{file-stack-DV3BHV7A.js.map → file-stack-8rRouTJj.js.map} +1 -1
  117. package/dist/admin/assets/{fileRoute-BTxwuLEP.js → fileRoute-DzWMBrRx.js} +2 -2
  118. package/dist/admin/assets/{fileRoute-BTxwuLEP.js.map → fileRoute-DzWMBrRx.js.map} +1 -1
  119. package/dist/admin/assets/{folder-plus-AIA7s5Da.js → folder-plus-B3L3b389.js} +2 -2
  120. package/dist/admin/assets/{folder-plus-AIA7s5Da.js.map → folder-plus-B3L3b389.js.map} +1 -1
  121. package/dist/admin/assets/{followPlural-xUd57Rcj.js → followPlural-D-5ZJqJF.js} +2 -2
  122. package/dist/admin/assets/{followPlural-xUd57Rcj.js.map → followPlural-D-5ZJqJF.js.map} +1 -1
  123. package/dist/admin/assets/{globe-DXrE-_sR.js → globe-DKkjr9MZ.js} +2 -2
  124. package/dist/admin/assets/{globe-DXrE-_sR.js.map → globe-DKkjr9MZ.js.map} +1 -1
  125. package/dist/admin/assets/{image-BImUdARR.js → image-B6aL7hP8.js} +2 -2
  126. package/dist/admin/assets/{image-BImUdARR.js.map → image-B6aL7hP8.js.map} +1 -1
  127. package/dist/admin/assets/{image-off-CEBznyUC.js → image-off-TVxEyb74.js} +2 -2
  128. package/dist/admin/assets/{image-off-CEBznyUC.js.map → image-off-TVxEyb74.js.map} +1 -1
  129. package/dist/admin/assets/{inbox-BQ_HOjFd.js → inbox-BKqu1EfP.js} +2 -2
  130. package/dist/admin/assets/{inbox-BQ_HOjFd.js.map → inbox-BKqu1EfP.js.map} +1 -1
  131. package/dist/admin/assets/{inbox-BZGf97fS.js → inbox-DUqOrFEA.js} +2 -2
  132. package/dist/admin/assets/{inbox-BZGf97fS.js.map → inbox-DUqOrFEA.js.map} +1 -1
  133. package/dist/admin/assets/index-BEM45u2w.css +2 -0
  134. package/dist/admin/assets/index-D03RZB7e.js +4 -0
  135. package/dist/admin/assets/index-D03RZB7e.js.map +1 -0
  136. package/dist/admin/assets/{key-round-BJTVRy3_.js → key-round-Dmdr1vP5.js} +2 -2
  137. package/dist/admin/assets/{key-round-BJTVRy3_.js.map → key-round-Dmdr1vP5.js.map} +1 -1
  138. package/dist/admin/assets/{labels-S4ZMHvJW.js → labels-CHE0gg1n.js} +2 -2
  139. package/dist/admin/assets/{labels-S4ZMHvJW.js.map → labels-CHE0gg1n.js.map} +1 -1
  140. package/dist/admin/assets/{languages-L4cGzT6V.js → languages-BbfFIygP.js} +2 -2
  141. package/dist/admin/assets/{languages-L4cGzT6V.js.map → languages-BbfFIygP.js.map} +1 -1
  142. package/dist/admin/assets/{layers-BGHZayyB.js → layers-B0jT4rc4.js} +2 -2
  143. package/dist/admin/assets/{layers-BGHZayyB.js.map → layers-B0jT4rc4.js.map} +1 -1
  144. package/dist/admin/assets/{link-2-off-c1sYGivC.js → link-2-off-DC06jLDj.js} +2 -2
  145. package/dist/admin/assets/{link-2-off-c1sYGivC.js.map → link-2-off-DC06jLDj.js.map} +1 -1
  146. package/dist/admin/assets/{link-BGUl1m0y.js → link-B3O0VUVT.js} +2 -2
  147. package/dist/admin/assets/{link-BGUl1m0y.js.map → link-B3O0VUVT.js.map} +1 -1
  148. package/dist/admin/assets/{loader-circle-BaUsKfL8.js → loader-circle-C-9trZPI.js} +2 -2
  149. package/dist/admin/assets/{loader-circle-BaUsKfL8.js.map → loader-circle-C-9trZPI.js.map} +1 -1
  150. package/dist/admin/assets/{locales-CLqYl3dG.js → locales-e7B5t6id.js} +2 -2
  151. package/dist/admin/assets/{locales-CLqYl3dG.js.map → locales-e7B5t6id.js.map} +1 -1
  152. package/dist/admin/assets/{media-D6kY5Cj6.js → media-BUUEsWxd.js} +2 -2
  153. package/dist/admin/assets/{media-D6kY5Cj6.js.map → media-BUUEsWxd.js.map} +1 -1
  154. package/dist/admin/assets/{media-azW3_Am5.js → media-VCJUbYzJ.js} +2 -2
  155. package/dist/admin/assets/{media-azW3_Am5.js.map → media-VCJUbYzJ.js.map} +1 -1
  156. package/dist/admin/assets/network-Bolr2lmf.js +2 -0
  157. package/dist/admin/assets/{network-BbLrO3ZX.js.map → network-Bolr2lmf.js.map} +1 -1
  158. package/dist/admin/assets/{pencil-BQpwTTXw.js → pencil-BVSFlU14.js} +2 -2
  159. package/dist/admin/assets/{pencil-BQpwTTXw.js.map → pencil-BVSFlU14.js.map} +1 -1
  160. package/dist/admin/assets/{plus-BYBGXiDV.js → plus-WfYKHW7G.js} +2 -2
  161. package/dist/admin/assets/{plus-BYBGXiDV.js.map → plus-WfYKHW7G.js.map} +1 -1
  162. package/dist/admin/assets/publishing-ClNjPLQ9.js +2 -0
  163. package/dist/admin/assets/publishing-ClNjPLQ9.js.map +1 -0
  164. package/dist/admin/assets/{radio-group-szmd95N4.js → radio-group-rFxn7cz2.js} +2 -2
  165. package/dist/admin/assets/{radio-group-szmd95N4.js.map → radio-group-rFxn7cz2.js.map} +1 -1
  166. package/dist/admin/assets/{rotate-ccw-TD7gQ_S5.js → rotate-ccw-Cvc_uA58.js} +2 -2
  167. package/dist/admin/assets/{rotate-ccw-TD7gQ_S5.js.map → rotate-ccw-Cvc_uA58.js.map} +1 -1
  168. package/dist/admin/assets/{schedules-DdnCCx_b.js → schedules-CBGpjEg7.js} +2 -2
  169. package/dist/admin/assets/{schedules-DdnCCx_b.js.map → schedules-CBGpjEg7.js.map} +1 -1
  170. package/dist/admin/assets/{schema-BzJ3fK72.js → schema-D9BgCVzZ.js} +2 -2
  171. package/dist/admin/assets/{schema-BzJ3fK72.js.map → schema-D9BgCVzZ.js.map} +1 -1
  172. package/dist/admin/assets/{scroll-text-DdRRr86a.js → scroll-text-gKYBbibb.js} +2 -2
  173. package/dist/admin/assets/{scroll-text-DdRRr86a.js.map → scroll-text-gKYBbibb.js.map} +1 -1
  174. package/dist/admin/assets/{search-JRmBbB7P.js → search-CW3iBC4k.js} +2 -2
  175. package/dist/admin/assets/{search-JRmBbB7P.js.map → search-CW3iBC4k.js.map} +1 -1
  176. package/dist/admin/assets/{searchSchemas-VaNHAlfp.js → searchSchemas-C4qp-vCa.js} +2 -2
  177. package/dist/admin/assets/{searchSchemas-VaNHAlfp.js.map → searchSchemas-C4qp-vCa.js.map} +1 -1
  178. package/dist/admin/assets/{sections-CbJVJmgY.js → sections-C7Z6Xd8r.js} +2 -2
  179. package/dist/admin/assets/{sections-CbJVJmgY.js.map → sections-C7Z6Xd8r.js.map} +1 -1
  180. package/dist/admin/assets/{sections-BsLTv5pq.js → sections-CN5fIoAr.js} +2 -2
  181. package/dist/admin/assets/{sections-BsLTv5pq.js.map → sections-CN5fIoAr.js.map} +1 -1
  182. package/dist/admin/assets/{select-p7RjCHS1.js → select-DUhL27UN.js} +2 -2
  183. package/dist/admin/assets/{select-p7RjCHS1.js.map → select-DUhL27UN.js.map} +1 -1
  184. package/dist/admin/assets/{send-BcDsf__t.js → send-DRA-Pe46.js} +2 -2
  185. package/dist/admin/assets/{send-BcDsf__t.js.map → send-DRA-Pe46.js.map} +1 -1
  186. package/dist/admin/assets/{seo-C88lYd48.js → seo-l1ZORjtv.js} +2 -2
  187. package/dist/admin/assets/{seo-C88lYd48.js.map → seo-l1ZORjtv.js.map} +1 -1
  188. package/dist/admin/assets/settings-DgoG3H8C.js +2 -0
  189. package/dist/admin/assets/{settings-2YUiWx9J.js.map → settings-DgoG3H8C.js.map} +1 -1
  190. package/dist/admin/assets/shapes-BZ87ap5s.js +6 -0
  191. package/dist/admin/assets/shapes-BZ87ap5s.js.map +1 -0
  192. package/dist/admin/assets/{skeleton-BUvrrXQ7.js → skeleton-Dyi_b1wq.js} +2 -2
  193. package/dist/admin/assets/{skeleton-BUvrrXQ7.js.map → skeleton-Dyi_b1wq.js.map} +1 -1
  194. package/dist/admin/assets/{snapshots-IQxgEhwm.js → snapshots-CT-zs6Up.js} +2 -2
  195. package/dist/admin/assets/{snapshots-IQxgEhwm.js.map → snapshots-CT-zs6Up.js.map} +1 -1
  196. package/dist/admin/assets/{sparkles-DSj-egu-.js → sparkles-DCRAqbqD.js} +2 -2
  197. package/dist/admin/assets/{sparkles-DSj-egu-.js.map → sparkles-DCRAqbqD.js.map} +1 -1
  198. package/dist/admin/assets/src-BcLeD2-K.js +7 -0
  199. package/dist/admin/assets/src-BcLeD2-K.js.map +1 -0
  200. package/dist/admin/assets/{stableId-DQQ5viUn.js → stableId-iRkUbVIP.js} +2 -2
  201. package/dist/admin/assets/{stableId-DQQ5viUn.js.map → stableId-iRkUbVIP.js.map} +1 -1
  202. package/dist/admin/assets/{store-Rdj8W9EY.js → store-DknnssoQ.js} +2 -2
  203. package/dist/admin/assets/{store-Rdj8W9EY.js.map → store-DknnssoQ.js.map} +1 -1
  204. package/dist/admin/assets/{switch-Co2wfi3S.js → switch-C3dDDUIk.js} +2 -2
  205. package/dist/admin/assets/{switch-Co2wfi3S.js.map → switch-C3dDDUIk.js.map} +1 -1
  206. package/dist/admin/assets/{theme-xFjfWxsg.js → theme-DPe080iG.js} +2 -2
  207. package/dist/admin/assets/{theme-xFjfWxsg.js.map → theme-DPe080iG.js.map} +1 -1
  208. package/dist/admin/assets/{titles-BMPQZALy.js → titles-C5PaMgFJ.js} +2 -2
  209. package/dist/admin/assets/{titles-BMPQZALy.js.map → titles-C5PaMgFJ.js.map} +1 -1
  210. package/dist/admin/assets/{tokens-DB2OodVc.js → tokens-BlIDIMY9.js} +2 -2
  211. package/dist/admin/assets/{tokens-DB2OodVc.js.map → tokens-BlIDIMY9.js.map} +1 -1
  212. package/dist/admin/assets/{tooltip-B_8HZ1Wu.js → tooltip-BEaZkRPK.js} +2 -2
  213. package/dist/admin/assets/{tooltip-B_8HZ1Wu.js.map → tooltip-BEaZkRPK.js.map} +1 -1
  214. package/dist/admin/assets/{undo-2-CagAc44E.js → undo-2-Zd1OT6qk.js} +2 -2
  215. package/dist/admin/assets/{undo-2-CagAc44E.js.map → undo-2-Zd1OT6qk.js.map} +1 -1
  216. package/dist/admin/assets/{useAuditLabels-CT1QmcqM.js → useAuditLabels-DWBpLOTB.js} +2 -2
  217. package/dist/admin/assets/{useAuditLabels-CT1QmcqM.js.map → useAuditLabels-DWBpLOTB.js.map} +1 -1
  218. package/dist/admin/assets/useConfirmTarget-9JmfiY2X.js +2 -0
  219. package/dist/admin/assets/useConfirmTarget-9JmfiY2X.js.map +1 -0
  220. package/dist/admin/assets/{useContentSchema-Ca1tmrC5.js → useContentSchema-wLDa2L3f.js} +2 -2
  221. package/dist/admin/assets/{useContentSchema-Ca1tmrC5.js.map → useContentSchema-wLDa2L3f.js.map} +1 -1
  222. package/dist/admin/assets/useCursorPager-Dc-9B67j.js +2 -0
  223. package/dist/admin/assets/useCursorPager-Dc-9B67j.js.map +1 -0
  224. package/dist/admin/assets/{useDiscardGuard-B8dlCh6M.js → useDiscardGuard-WTUINqD5.js} +2 -2
  225. package/dist/admin/assets/{useDiscardGuard-B8dlCh6M.js.map → useDiscardGuard-WTUINqD5.js.map} +1 -1
  226. package/dist/admin/assets/{useMediaPickerDialog-Cr7frtLB.js → useMediaPickerDialog-CFN9ZKfe.js} +2 -2
  227. package/dist/admin/assets/{useMediaPickerDialog-Cr7frtLB.js.map → useMediaPickerDialog-CFN9ZKfe.js.map} +1 -1
  228. package/dist/admin/assets/{useMediaUploader-DjpdBcVv.js → useMediaUploader-B42H_CMG.js} +2 -2
  229. package/dist/admin/assets/{useMediaUploader-DjpdBcVv.js.map → useMediaUploader-B42H_CMG.js.map} +1 -1
  230. package/dist/admin/assets/useNetworkPermission-CegwqQXR.js +2 -0
  231. package/dist/admin/assets/useNetworkPermission-CegwqQXR.js.map +1 -0
  232. package/dist/admin/assets/{usePaletteItems-B3OEkGXv.js → usePaletteItems-B3y2t7Ly.js} +2 -2
  233. package/dist/admin/assets/{usePaletteItems-B3OEkGXv.js.map → usePaletteItems-B3y2t7Ly.js.map} +1 -1
  234. package/dist/admin/assets/{usePlaces-CdX6q9xt.js → usePlaces-CAXr-IO9.js} +2 -2
  235. package/dist/admin/assets/{usePlaces-CdX6q9xt.js.map → usePlaces-CAXr-IO9.js.map} +1 -1
  236. package/dist/admin/assets/{useQueries-P7D4677o.js → useQueries-CX6eFr24.js} +2 -2
  237. package/dist/admin/assets/{useQueries-P7D4677o.js.map → useQueries-CX6eFr24.js.map} +1 -1
  238. package/dist/admin/assets/{useResolvedScheme-O1g9lYxQ.js → useResolvedScheme-aV0QDPi3.js} +2 -2
  239. package/dist/admin/assets/{useResolvedScheme-O1g9lYxQ.js.map → useResolvedScheme-aV0QDPi3.js.map} +1 -1
  240. package/dist/admin/assets/{useSchemaScopeAccess-DJo7rYB7.js → useSchemaScopeAccess-DyfiZnzs.js} +2 -2
  241. package/dist/admin/assets/{useSchemaScopeAccess-DJo7rYB7.js.map → useSchemaScopeAccess-DyfiZnzs.js.map} +1 -1
  242. package/dist/admin/assets/{users-eCGpE8u4.js → users-CDoJRL24.js} +2 -2
  243. package/dist/admin/assets/{users-eCGpE8u4.js.map → users-CDoJRL24.js.map} +1 -1
  244. package/dist/admin/assets/{users-sDlmJ2ml.js → users-ohHZnBJW.js} +2 -2
  245. package/dist/admin/assets/{users-sDlmJ2ml.js.map → users-ohHZnBJW.js.map} +1 -1
  246. package/dist/admin/assets/{zod-DtMsJRUH.js → zod-C-k48Hnc.js} +2 -2
  247. package/dist/admin/assets/{zod-DtMsJRUH.js.map → zod-C-k48Hnc.js.map} +1 -1
  248. package/dist/admin/index.html +59 -58
  249. package/dist/cli.js +129 -4
  250. package/dist/cli.js.map +1 -1
  251. package/dist/config.d.ts +1 -1
  252. package/dist/index.d.ts +1 -1
  253. package/dist/index.js +1 -1
  254. package/dist/{public-rn-FEAIR.d.ts → public-BO_wneBL.d.ts} +18 -1
  255. package/dist/{s3Adapter-Bs5SUqE1.js → s3Adapter-sL1zP4Zl.js} +2 -2
  256. package/dist/{s3Adapter-Bs5SUqE1.js.map → s3Adapter-sL1zP4Zl.js.map} +1 -1
  257. package/dist/{worker-CFEk-WtR.js → worker-DMES6pqh.js} +486 -161
  258. package/dist/worker-DMES6pqh.js.map +1 -0
  259. package/package.json +5 -5
  260. package/dist/admin/assets/Builder-D8AVakt1.js +0 -2
  261. package/dist/admin/assets/Builder-D8AVakt1.js.map +0 -1
  262. package/dist/admin/assets/Form-DKfQ6_lP.js +0 -2
  263. package/dist/admin/assets/StepList-B4I59Yl_.js +0 -2
  264. package/dist/admin/assets/Structure-BYK71uPq.js +0 -2
  265. package/dist/admin/assets/auth-kvLrpCst.js +0 -2
  266. package/dist/admin/assets/changeSets-BjP6UzCi.js +0 -2
  267. package/dist/admin/assets/chevron-left-uCIwt51T.js +0 -2
  268. package/dist/admin/assets/content-DTKf5anG.js +0 -3
  269. package/dist/admin/assets/content-DTKf5anG.js.map +0 -1
  270. package/dist/admin/assets/createLucideIcon-CJwW5JJW.js +0 -2
  271. package/dist/admin/assets/createLucideIcon-CJwW5JJW.js.map +0 -1
  272. package/dist/admin/assets/develop-CXljZJGt.js +0 -11
  273. package/dist/admin/assets/develop-CXljZJGt.js.map +0 -1
  274. package/dist/admin/assets/es2015-DgNe6MPq.js +0 -42
  275. package/dist/admin/assets/es2015-DgNe6MPq.js.map +0 -1
  276. package/dist/admin/assets/index-BF63XIym.js +0 -4
  277. package/dist/admin/assets/index-BF63XIym.js.map +0 -1
  278. package/dist/admin/assets/index-DJe1l94K.css +0 -2
  279. package/dist/admin/assets/network-BbLrO3ZX.js +0 -2
  280. package/dist/admin/assets/publishing-sgYacQ-C.js +0 -2
  281. package/dist/admin/assets/publishing-sgYacQ-C.js.map +0 -1
  282. package/dist/admin/assets/settings-2YUiWx9J.js +0 -2
  283. package/dist/admin/assets/src-CeOxD_sk.js +0 -4
  284. package/dist/admin/assets/src-CeOxD_sk.js.map +0 -1
  285. package/dist/admin/assets/tabs-Dyd8Q_Ja.js +0 -6
  286. package/dist/admin/assets/tabs-Dyd8Q_Ja.js.map +0 -1
  287. package/dist/admin/assets/useConfirmTarget-D6FvyjDd.js +0 -2
  288. package/dist/admin/assets/useConfirmTarget-D6FvyjDd.js.map +0 -1
  289. package/dist/admin/assets/useCursorPager-DTe6uEBE.js +0 -2
  290. package/dist/admin/assets/useCursorPager-DTe6uEBE.js.map +0 -1
  291. package/dist/worker-CFEk-WtR.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-rn-FEAIR.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-BO_wneBL.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-rn-FEAIR.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-BO_wneBL.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, f as SHAPIO_VERSION, n as startServer, s as buildApp, t as startDedicatedWorker } from "./worker-CFEk-WtR.js";
1
+ import { a as loadConfig, f as SHAPIO_VERSION, n as startServer, s as buildApp, t as startDedicatedWorker } from "./worker-DMES6pqh.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 };
@@ -140,6 +140,19 @@ declare const MODEL_KINDS: readonly ["collection", "singleton"];
140
140
  type ModelKind = (typeof MODEL_KINDS)[number];
141
141
  declare const SORT_DIRECTIONS: readonly ["asc", "desc"];
142
142
  type SortDirection = (typeof SORT_DIRECTIONS)[number];
143
+ /**
144
+ * How an entry of a model opens: `document` (title typed into the page, blocks in a canvas, properties in
145
+ * the strip and the settings drawer) or `form` (every field inline at its `width`, sections from
146
+ * `display.groups`). Unset means `document`; normalizing drops an explicit `document`.
147
+ */
148
+ declare const ENTRY_LAYOUTS: readonly ["document", "form"];
149
+ type EntryLayout = (typeof ENTRY_LAYOUTS)[number];
150
+ /**
151
+ * A field's width in a form-layout entry, as a share of the row: rows fill in field order and wrap. Unset
152
+ * means `full`; normalizing drops an explicit `full`.
153
+ */
154
+ declare const FIELD_WIDTHS: readonly ["full", "two-thirds", "half", "third"];
155
+ type FieldWidth = (typeof FIELD_WIDTHS)[number];
143
156
  type EditorChoice = {
144
157
  id: string;
145
158
  options: Record<string, JsonValue$1>;
@@ -158,6 +171,8 @@ type FieldBase = {
158
171
  deprecated: boolean;
159
172
  defaultValue?: JsonValue$1;
160
173
  editor: EditorChoice;
174
+ /** Width in a form-layout entry; absent means `full`. */
175
+ width?: FieldWidth;
161
176
  };
162
177
  /** A normalized field. Narrow on `type` to get typed `settings`. */
163
178
  type FieldDefinition<T extends DataType = DataType> = { [K in T]: FieldBase & {
@@ -170,6 +185,8 @@ type FieldGroup = {
170
185
  fieldIds: string[];
171
186
  };
172
187
  type ModelDisplay = {
188
+ /** Absent means `document`. */
189
+ layout?: EntryLayout;
173
190
  titleFieldId?: string;
174
191
  listFieldIds?: string[];
175
192
  defaultSort?: {
@@ -1469,4 +1486,4 @@ declare class HookError extends Error {
1469
1486
  declare const isHookError: (error: unknown) => error is HookError;
1470
1487
  //#endregion
1471
1488
  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 };
1472
- //# sourceMappingURL=public-rn-FEAIR.d.ts.map
1489
+ //# sourceMappingURL=public-BO_wneBL.d.ts.map
@@ -1,4 +1,4 @@
1
- import { M as isValidStorageKey, c as bucketContentDisposition, h as ObjectNotFoundError, j as encodeKeyPath, l as contentDisposition, m as InvalidStorageKeyError } from "./worker-CFEk-WtR.js";
1
+ import { M as isValidStorageKey, c as bucketContentDisposition, h as ObjectNotFoundError, j as encodeKeyPath, l as contentDisposition, m as InvalidStorageKeyError } from "./worker-DMES6pqh.js";
2
2
  import { DeleteObjectCommand, GetObjectCommand, HeadObjectCommand, PutObjectCommand, S3Client, S3ServiceException } from "@aws-sdk/client-s3";
3
3
  import { createPresignedPost } from "@aws-sdk/s3-presigned-post";
4
4
  import { getSignedUrl } from "@aws-sdk/s3-request-presigner";
@@ -122,4 +122,4 @@ const createS3Adapter = ({ config, publicBaseUrl, client }) => {
122
122
  //#endregion
123
123
  export { createS3Adapter };
124
124
 
125
- //# sourceMappingURL=s3Adapter-Bs5SUqE1.js.map
125
+ //# sourceMappingURL=s3Adapter-sL1zP4Zl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"s3Adapter-Bs5SUqE1.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":";;;;;;AAkBA,MAAM,iBAAiB;AAEvB,MAAM,cAAc,UAClB,iBAAiB,uBAChB,MAAM,UAAU,mBAAmB,OAAO,MAAM,SAAS,cAAc,MAAM,SAAS;AAEzF,MAAa,kBAAkB,WAC7B,IAAI,SAAS;CACX,QAAQ,OAAO,UAAU;CACzB,GAAI,OAAO,WAAW,EAAE,UAAU,OAAO,SAAS,IAAI,CAAC;CACvD,gBAAgB,OAAO;CACvB,GAAI,OAAO,eAAe,OAAO,kBAC7B,EAAE,aAAa;EAAE,aAAa,OAAO;EAAa,iBAAiB,OAAO;CAAgB,EAAE,IAC5F,CAAC;CAGL,4BAA4B;CAC5B,4BAA4B;AAC9B,CAAC;;;;;;AAcH,MAAa,mBAAmB,EAAE,QAAQ,eAAe,aAA+C;CACtG,MAAM,KAAK,UAAU,eAAe,MAAM;CAC1C,MAAM,SAAS,OAAO;CACtB,MAAM,YAAY,QAAgB;EAChC,IAAI,CAAC,kBAAkB,GAAG,GACxB,MAAM,IAAI,uBAAuB,GAAG;EAEtC,OAAO;CACT;CAEA,MAAM,OAAO,OAAO,QAAgB;EAClC,IAAI;GACF,MAAM,SAAS,MAAM,GAAG,KAAK,IAAI,kBAAkB;IAAE;IAAQ,KAAK,SAAS,GAAG;GAAE,CAAC,CAAC;GAClF,OAAO;IAAE,MAAM,OAAO,iBAAiB;IAAG,aAAa,OAAO;GAAY;EAC5E,SAAS,OAAO;GACd,IAAI,WAAW,KAAK,GAClB;GAEF,MAAM;EACR;CACF;CAEA,OAAO;EACL,QAAQ;EACR,KAAK,OAAO,KAAK,MAAM,EAAE,aAAa,oBAAoB;GACxD,MAAM,GAAG,KACP,IAAI,iBAAiB;IACnB;IACA,KAAK,SAAS,GAAG;IACjB,MAAM;IACN,aAAa;IACb,eAAe,OAAO,SAAS,IAAI,IAAI,KAAK,SAAS;IACrD,oBAAoB,yBAAyB,WAAW;GAC1D,CAAC,CACH;EACF;EACA,WAAW,OAAO,KAAK,UAAU;GAC/B,IAAI;IACF,MAAM,SAAS,MAAM,GAAG,KACtB,IAAI,iBAAiB;KACnB;KACA,KAAK,SAAS,GAAG;KACjB,GAAI,QAAQ,EAAE,OAAO,SAAS,MAAM,MAAM,GAAG,MAAM,MAAM,IAAI,CAAC;IAChE,CAAC,CACH;IACA,IAAI,CAAC,OAAO,MACV,MAAM,IAAI,oBAAoB,GAAG;IAEnC,OAAO,OAAO;GAChB,SAAS,OAAO;IACd,MAAM,WAAW,KAAK,IAAI,IAAI,oBAAoB,KAAK,EAAE,OAAO,MAAM,CAAC,IAAI;GAC7E;EACF;EACA;EACA,QAAQ,OAAO,QAAS,MAAM,KAAK,GAAG,MAAO,KAAA;EAC7C,QAAQ,OAAO,QAAQ;GACrB,MAAM,GAAG,KAAK,IAAI,oBAAoB;IAAE;IAAQ,KAAK,SAAS,GAAG;GAAE,CAAC,CAAC;EACvE;EACA,cAAc,OAAO,KAAK,EAAE,kBAAkB,UAAU,kBACtD,aACE,IACA,IAAI,iBAAiB;GACnB;GACA,KAAK,SAAS,GAAG;GACjB,qBAAqB;GACrB,4BAA4B,mBAAmB,QAAQ;EACzD,CAAC,GACD,EAAE,WAAW,iBAAiB,CAChC;EACF,YAAY,QAAS,gBAAgB,GAAG,cAAc,GAAG,cAAc,SAAS,GAAG,CAAC,MAAM,KAAA;EAC1F,iBAAiB,OAAO,EAAE,KAAK,aAAa,cAAc,uBAAuB;GAC/E,MAAM,cAAc,yBAAyB,WAAW;GACxD,MAAM,EAAE,KAAK,WAAW,MAAM,oBAAoB,IAAI;IACpD;IACA,KAAK,SAAS,GAAG;IACjB,YAAY;KACV;MAAC;MAAwB;MAAG;KAAY;KACxC;MAAC;MAAM;MAAiB;KAAW;KACnC,GAAI,cAAc,CAAC;MAAC;MAAM;MAAwB;KAAW,CAA2B,IAAI,CAAC;IAC/F;IACA,QAAQ;KACN,gBAAgB;KAChB,GAAI,cAAc,EAAE,uBAAuB,YAAY,IAAI,CAAC;IAC9D;IACA,SAAS;GACX,CAAC;GACD,OAAO;IAAE;IAAK;GAAO;EACvB;CACF;AACF"}
1
+ {"version":3,"file":"s3Adapter-sL1zP4Zl.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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"}