@shapio/cms 0.5.4 → 0.5.6

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 (292) hide show
  1. package/dist/admin/assets/{AssetTile-DWaHjfcU.js → AssetTile-_qRYsivK.js} +2 -2
  2. package/dist/admin/assets/{AssetTile-DWaHjfcU.js.map → AssetTile-_qRYsivK.js.map} +1 -1
  3. package/dist/admin/assets/{AssistError-CYV_H4uu.js → AssistError-CMXQWiQo.js} +2 -2
  4. package/dist/admin/assets/{AssistError-CYV_H4uu.js.map → AssistError-CMXQWiQo.js.map} +1 -1
  5. package/dist/admin/assets/{BlockMenuItems-BRKp5YAK.js → BlockMenuItems-WIrbyv1a.js} +2 -2
  6. package/dist/admin/assets/{BlockMenuItems-BRKp5YAK.js.map → BlockMenuItems-WIrbyv1a.js.map} +1 -1
  7. package/dist/admin/assets/{Body-CdlxJrnW.js → Body-BYc1IVsQ.js} +2 -2
  8. package/dist/admin/assets/{Body-CdlxJrnW.js.map → Body-BYc1IVsQ.js.map} +1 -1
  9. package/dist/admin/assets/Builder-CwHpRhZN.js +2 -0
  10. package/dist/admin/assets/Builder-CwHpRhZN.js.map +1 -0
  11. package/dist/admin/assets/{CodeEditor-h7SDbh8e.js → CodeEditor-NMvrWgxT.js} +2 -2
  12. package/dist/admin/assets/{CodeEditor-h7SDbh8e.js.map → CodeEditor-NMvrWgxT.js.map} +1 -1
  13. package/dist/admin/assets/{ConfirmDialog-Dq6IrmS9.js → ConfirmDialog-Rd6WDt6q.js} +2 -2
  14. package/dist/admin/assets/{ConfirmDialog-Dq6IrmS9.js.map → ConfirmDialog-Rd6WDt6q.js.map} +1 -1
  15. package/dist/admin/assets/{CopyButton-BiMHd8OL.js → CopyButton-B0RuxynJ.js} +2 -2
  16. package/dist/admin/assets/{CopyButton-BiMHd8OL.js.map → CopyButton-B0RuxynJ.js.map} +1 -1
  17. package/dist/admin/assets/{CursorPager-CXI-RhTJ.js → CursorPager-CQZsKNxR.js} +2 -2
  18. package/dist/admin/assets/{CursorPager-CXI-RhTJ.js.map → CursorPager-CQZsKNxR.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-BYu2fOTb.js} +2 -2
  22. package/dist/admin/assets/{FocalPoint-D_Ccn0US.js.map → FocalPoint-BYu2fOTb.js.map} +1 -1
  23. package/dist/admin/assets/Form-CiZUsLPp.js +2 -0
  24. package/dist/admin/assets/{Form-DKfQ6_lP.js.map → Form-CiZUsLPp.js.map} +1 -1
  25. package/dist/admin/assets/{FormCheckboxGroup-CNexUHvc.js → FormCheckboxGroup-Bz8KERs1.js} +2 -2
  26. package/dist/admin/assets/{FormCheckboxGroup-CNexUHvc.js.map → FormCheckboxGroup-Bz8KERs1.js.map} +1 -1
  27. package/dist/admin/assets/{FormRadioGroup-Bz09LqOn.js → FormRadioGroup-c-wyx7dq.js} +2 -2
  28. package/dist/admin/assets/{FormRadioGroup-Bz09LqOn.js.map → FormRadioGroup-c-wyx7dq.js.map} +1 -1
  29. package/dist/admin/assets/{FormSelectField-rX_rC7NA.js → FormSelectField-ijG9qPpb.js} +2 -2
  30. package/dist/admin/assets/{FormSelectField-rX_rC7NA.js.map → FormSelectField-ijG9qPpb.js.map} +1 -1
  31. package/dist/admin/assets/{FormSwitchField-B0wQTcF3.js → FormSwitchField-Bp3hNpeP.js} +2 -2
  32. package/dist/admin/assets/{FormSwitchField-B0wQTcF3.js.map → FormSwitchField-Bp3hNpeP.js.map} +1 -1
  33. package/dist/admin/assets/{FormTextareaField-CQ6wnIlF.js → FormTextareaField-BSKMqHcW.js} +2 -2
  34. package/dist/admin/assets/{FormTextareaField-CQ6wnIlF.js.map → FormTextareaField-BSKMqHcW.js.map} +1 -1
  35. package/dist/admin/assets/{HintedLabel-BPZ7Qd6n.js → HintedLabel-BrLH4NQW.js} +2 -2
  36. package/dist/admin/assets/{HintedLabel-BPZ7Qd6n.js.map → HintedLabel-BrLH4NQW.js.map} +1 -1
  37. package/dist/admin/assets/{InfoHint-2HZJCzwW.js → InfoHint-Dyzyf59c.js} +2 -2
  38. package/dist/admin/assets/{InfoHint-2HZJCzwW.js.map → InfoHint-Dyzyf59c.js.map} +1 -1
  39. package/dist/admin/assets/{InsertMenuItem-DBjeJAgk.js → InsertMenuItem-BvRDuXtd.js} +2 -2
  40. package/dist/admin/assets/{InsertMenuItem-DBjeJAgk.js.map → InsertMenuItem-BvRDuXtd.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-Bixf1ygj.js} +2 -2
  44. package/dist/admin/assets/{Match-CH4OI7xo.js.map → Match-Bixf1ygj.js.map} +1 -1
  45. package/dist/admin/assets/{QueryView-UMDuxj-g.js → QueryView--_vvV7dC.js} +2 -2
  46. package/dist/admin/assets/{QueryView-UMDuxj-g.js.map → QueryView--_vvV7dC.js.map} +1 -1
  47. package/dist/admin/assets/{RadioTile-D_mY8BQv.js → RadioTile-BCp6auUz.js} +2 -2
  48. package/dist/admin/assets/{RadioTile-D_mY8BQv.js.map → RadioTile-BCp6auUz.js.map} +1 -1
  49. package/dist/admin/assets/{RichTextField-jy6R2FE-.js → RichTextField-fWNjndUc.js} +5 -5
  50. package/dist/admin/assets/{RichTextField-jy6R2FE-.js.map → RichTextField-fWNjndUc.js.map} +1 -1
  51. package/dist/admin/assets/{RowTitle-DuN-jQxy.js → RowTitle-B4CE8tt7.js} +2 -2
  52. package/dist/admin/assets/{RowTitle-DuN-jQxy.js.map → RowTitle-B4CE8tt7.js.map} +1 -1
  53. package/dist/admin/assets/{SecretReveal-TM7VYAeY.js → SecretReveal-BhSqdWqh.js} +2 -2
  54. package/dist/admin/assets/{SecretReveal-TM7VYAeY.js.map → SecretReveal-BhSqdWqh.js.map} +1 -1
  55. package/dist/admin/assets/{SharedGlyph-DcbEGwSL.js → SharedGlyph-71FTypoi.js} +2 -2
  56. package/dist/admin/assets/{SharedGlyph-DcbEGwSL.js.map → SharedGlyph-71FTypoi.js.map} +1 -1
  57. package/dist/admin/assets/StepList-CZJmwy9e.js +2 -0
  58. package/dist/admin/assets/StepList-CZJmwy9e.js.map +1 -0
  59. package/dist/admin/assets/Structure-Dk87778W.js +2 -0
  60. package/dist/admin/assets/{Structure-BYK71uPq.js.map → Structure-Dk87778W.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-CxS8IR6m.js} +2 -2
  64. package/dist/admin/assets/{SuggestAltButton-Vvg9XEqL.js.map → SuggestAltButton-CxS8IR6m.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-BwbCNpgQ.js} +2 -2
  68. package/dist/admin/assets/{Thumbnail-B1iRlbxI.js.map → Thumbnail-BwbCNpgQ.js.map} +1 -1
  69. package/dist/admin/assets/{UnsavedChangesGuard-CrtHd2la.js → UnsavedChangesGuard-C6nD55Fn.js} +2 -2
  70. package/dist/admin/assets/{UnsavedChangesGuard-CrtHd2la.js.map → UnsavedChangesGuard-C6nD55Fn.js.map} +1 -1
  71. package/dist/admin/assets/{UserAvatar-C-_SZaBb.js → UserAvatar-D7IbSpsP.js} +2 -2
  72. package/dist/admin/assets/{UserAvatar-C-_SZaBb.js.map → UserAvatar-D7IbSpsP.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-vLiQczOd.js} +2 -2
  76. package/dist/admin/assets/{badge-CB016qlm.js.map → badge-vLiQczOd.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-D5VevASj.js +2 -0
  82. package/dist/admin/assets/{changeSets-BjP6UzCi.js.map → changeSets-D5VevASj.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-CKGh8uwT.js} +2 -2
  90. package/dist/admin/assets/{constants-DgCYLdxl.js.map → constants-CKGh8uwT.js.map} +1 -1
  91. package/dist/admin/assets/content-Cbavyq0x.js +3 -0
  92. package/dist/admin/assets/content-Cbavyq0x.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-DzQ_0v36.js} +2 -2
  96. package/dist/admin/assets/{contentTypes-DDb1tieq.js.map → contentTypes-DzQ_0v36.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-BDqMOEql.js +11 -0
  104. package/dist/admin/assets/develop-BDqMOEql.js.map +1 -0
  105. package/dist/admin/assets/{dropdown-menu-jrFjkuhR.js → dropdown-menu-CVAnm22s.js} +2 -2
  106. package/dist/admin/assets/{dropdown-menu-jrFjkuhR.js.map → dropdown-menu-CVAnm22s.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-BKfbx3rz.js +42 -0
  110. package/dist/admin/assets/es2015-BKfbx3rz.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-Bg-JRgsB.js} +2 -2
  114. package/dist/admin/assets/{field-DkUe0lrH.js.map → field-Bg-JRgsB.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-DQCI1nMN.js} +2 -2
  118. package/dist/admin/assets/{fileRoute-BTxwuLEP.js.map → fileRoute-DQCI1nMN.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-D0bENI5E.js} +2 -2
  122. package/dist/admin/assets/{followPlural-xUd57Rcj.js.map → followPlural-D0bENI5E.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-Dfy4YBZ2.js} +2 -2
  132. package/dist/admin/assets/{inbox-BZGf97fS.js.map → inbox-Dfy4YBZ2.js.map} +1 -1
  133. package/dist/admin/assets/index-BEM45u2w.css +2 -0
  134. package/dist/admin/assets/index-M4TUI1dl.js +4 -0
  135. package/dist/admin/assets/index-M4TUI1dl.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-BrwwGWnv.js} +2 -2
  139. package/dist/admin/assets/{labels-S4ZMHvJW.js.map → labels-BrwwGWnv.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-DBdx-UmR.js} +2 -2
  153. package/dist/admin/assets/{media-D6kY5Cj6.js.map → media-DBdx-UmR.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-BpbMYp6D.js +2 -0
  157. package/dist/admin/assets/{network-BbLrO3ZX.js.map → network-BpbMYp6D.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-CpSDO3M7.js +2 -0
  163. package/dist/admin/assets/publishing-CpSDO3M7.js.map +1 -0
  164. package/dist/admin/assets/{radio-group-szmd95N4.js → radio-group-DQ3sC1ol.js} +2 -2
  165. package/dist/admin/assets/{radio-group-szmd95N4.js.map → radio-group-DQ3sC1ol.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-D4S2ceA0.js} +2 -2
  177. package/dist/admin/assets/{searchSchemas-VaNHAlfp.js.map → searchSchemas-D4S2ceA0.js.map} +1 -1
  178. package/dist/admin/assets/{sections-BsLTv5pq.js → sections-CN5fIoAr.js} +2 -2
  179. package/dist/admin/assets/{sections-BsLTv5pq.js.map → sections-CN5fIoAr.js.map} +1 -1
  180. package/dist/admin/assets/{sections-CbJVJmgY.js → sections-Cl1LrzqH.js} +2 -2
  181. package/dist/admin/assets/{sections-CbJVJmgY.js.map → sections-Cl1LrzqH.js.map} +1 -1
  182. package/dist/admin/assets/{select-p7RjCHS1.js → select-DjCAH45V.js} +2 -2
  183. package/dist/admin/assets/{select-p7RjCHS1.js.map → select-DjCAH45V.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-DJ4k3LtY.js} +2 -2
  187. package/dist/admin/assets/{seo-C88lYd48.js.map → seo-DJ4k3LtY.js.map} +1 -1
  188. package/dist/admin/assets/settings-DRZ33PTg.js +2 -0
  189. package/dist/admin/assets/{settings-2YUiWx9J.js.map → settings-DRZ33PTg.js.map} +1 -1
  190. package/dist/admin/assets/shapes-BJe3IMuj.js +6 -0
  191. package/dist/admin/assets/shapes-BJe3IMuj.js.map +1 -0
  192. package/dist/admin/assets/{skeleton-BUvrrXQ7.js → skeleton-D4eOLKLY.js} +2 -2
  193. package/dist/admin/assets/{skeleton-BUvrrXQ7.js.map → skeleton-D4eOLKLY.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-DUpL-qwG.js +7 -0
  199. package/dist/admin/assets/src-DUpL-qwG.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-B2R13aVU.js} +2 -2
  205. package/dist/admin/assets/{switch-Co2wfi3S.js.map → switch-B2R13aVU.js.map} +1 -1
  206. package/dist/admin/assets/{theme-xFjfWxsg.js → theme-X-qeg74W.js} +2 -2
  207. package/dist/admin/assets/{theme-xFjfWxsg.js.map → theme-X-qeg74W.js.map} +1 -1
  208. package/dist/admin/assets/{titles-BMPQZALy.js → titles-CLh5ftA2.js} +2 -2
  209. package/dist/admin/assets/{titles-BMPQZALy.js.map → titles-CLh5ftA2.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-u2epXfJF.js} +2 -2
  213. package/dist/admin/assets/{tooltip-B_8HZ1Wu.js.map → tooltip-u2epXfJF.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-DaQHlL19.js} +2 -2
  221. package/dist/admin/assets/{useContentSchema-Ca1tmrC5.js.map → useContentSchema-DaQHlL19.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-BVJGUCiH.js} +2 -2
  225. package/dist/admin/assets/{useDiscardGuard-B8dlCh6M.js.map → useDiscardGuard-BVJGUCiH.js.map} +1 -1
  226. package/dist/admin/assets/{useMediaPickerDialog-Cr7frtLB.js → useMediaPickerDialog-C23eOHQR.js} +2 -2
  227. package/dist/admin/assets/{useMediaPickerDialog-Cr7frtLB.js.map → useMediaPickerDialog-C23eOHQR.js.map} +1 -1
  228. package/dist/admin/assets/{useMediaUploader-DjpdBcVv.js → useMediaUploader-CTViR0LX.js} +2 -2
  229. package/dist/admin/assets/{useMediaUploader-DjpdBcVv.js.map → useMediaUploader-CTViR0LX.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-Cg8TdO85.js} +2 -2
  239. package/dist/admin/assets/{useResolvedScheme-O1g9lYxQ.js.map → useResolvedScheme-Cg8TdO85.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-D5i60ErJ.js} +2 -2
  247. package/dist/admin/assets/{zod-DtMsJRUH.js.map → zod-D5i60ErJ.js.map} +1 -1
  248. package/dist/admin/index.html +59 -58
  249. package/dist/cli.js +138 -6
  250. package/dist/cli.js.map +1 -1
  251. package/dist/config.d.ts +1 -1
  252. package/dist/index.d.ts +8 -3
  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-CtPzkzf0.js} +2 -2
  256. package/dist/{s3Adapter-Bs5SUqE1.js.map → s3Adapter-CtPzkzf0.js.map} +1 -1
  257. package/dist/{worker-CFEk-WtR.js → worker-DRCCGGjl.js} +4283 -3854
  258. package/dist/worker-DRCCGGjl.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/StepList-B4I59Yl_.js.map +0 -1
  265. package/dist/admin/assets/Structure-BYK71uPq.js +0 -2
  266. package/dist/admin/assets/auth-kvLrpCst.js +0 -2
  267. package/dist/admin/assets/changeSets-BjP6UzCi.js +0 -2
  268. package/dist/admin/assets/chevron-left-uCIwt51T.js +0 -2
  269. package/dist/admin/assets/content-DTKf5anG.js +0 -3
  270. package/dist/admin/assets/content-DTKf5anG.js.map +0 -1
  271. package/dist/admin/assets/createLucideIcon-CJwW5JJW.js +0 -2
  272. package/dist/admin/assets/createLucideIcon-CJwW5JJW.js.map +0 -1
  273. package/dist/admin/assets/develop-CXljZJGt.js +0 -11
  274. package/dist/admin/assets/develop-CXljZJGt.js.map +0 -1
  275. package/dist/admin/assets/es2015-DgNe6MPq.js +0 -42
  276. package/dist/admin/assets/es2015-DgNe6MPq.js.map +0 -1
  277. package/dist/admin/assets/index-BF63XIym.js +0 -4
  278. package/dist/admin/assets/index-BF63XIym.js.map +0 -1
  279. package/dist/admin/assets/index-DJe1l94K.css +0 -2
  280. package/dist/admin/assets/network-BbLrO3ZX.js +0 -2
  281. package/dist/admin/assets/publishing-sgYacQ-C.js +0 -2
  282. package/dist/admin/assets/publishing-sgYacQ-C.js.map +0 -1
  283. package/dist/admin/assets/settings-2YUiWx9J.js +0 -2
  284. package/dist/admin/assets/src-CeOxD_sk.js +0 -4
  285. package/dist/admin/assets/src-CeOxD_sk.js.map +0 -1
  286. package/dist/admin/assets/tabs-Dyd8Q_Ja.js +0 -6
  287. package/dist/admin/assets/tabs-Dyd8Q_Ja.js.map +0 -1
  288. package/dist/admin/assets/useConfirmTarget-D6FvyjDd.js +0 -2
  289. package/dist/admin/assets/useConfirmTarget-D6FvyjDd.js.map +0 -1
  290. package/dist/admin/assets/useCursorPager-DTe6uEBE.js +0 -2
  291. package/dist/admin/assets/useCursorPager-DTe6uEBE.js.map +0 -1
  292. 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";
@@ -734,12 +734,17 @@ type ContentMigrationPort = {
734
734
  type StepImpact = {
735
735
  affectedHeads: number;
736
736
  invalidHeads?: number;
737
+ /** A type change Shapio cannot convert: live entries holding a value it drops (absent inside components). */
738
+ droppedEntries?: number;
737
739
  };
738
740
  type ContentImpactSource = {
739
741
  /** Heads (every locale and state) of these models. */
740
742
  countHeads: (modelIds: readonly string[]) => Promise<number>;
741
- /** How many heads a step would touch and, where cheap to know, how many would fail it. */
742
- assess: (step: ContentStep) => Promise<StepImpact>;
743
+ /**
744
+ * How many heads a step would touch and, where cheap to know, how many would fail it or lose their value.
745
+ * `steps` are the plan's content steps (a check's outcome can depend on another step, e.g. a dropped value).
746
+ */
747
+ assess: (step: ContentStep, steps: readonly ContentStep[]) => Promise<StepImpact>;
743
748
  /** Heads stored in one locale (impact of deleting it). */
744
749
  countLocaleHeads: (code: string) => Promise<number>;
745
750
  };
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-DRCCGGjl.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-DRCCGGjl.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-CtPzkzf0.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":"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"}
1
+ {"version":3,"file":"s3Adapter-CtPzkzf0.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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"}