bloko 0.0.43 → 0.0.44
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.
- package/dist/cli/index.js +0 -0
- package/dist/cli/sql/schema.sql +21 -5
- package/dist/driver/crud/image-variants.d.ts +5 -1
- package/dist/driver/crud/image-variants.d.ts.map +1 -1
- package/dist/driver/crud/image-variants.js +50 -16
- package/dist/driver/crud/image-variants.js.map +1 -1
- package/dist/driver/crud/index.d.ts +1 -1
- package/dist/driver/s3/images.d.ts +5 -4
- package/dist/driver/s3/images.d.ts.map +1 -1
- package/dist/driver/s3/images.js +83 -26
- package/dist/driver/s3/images.js.map +1 -1
- package/dist/driver/types.d.ts +6 -3
- package/dist/driver/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/studio/client/_app/immutable/assets/0.qtyVX5Lk.css +0 -1
- package/dist/studio/client/_app/immutable/assets/0.qtyVX5Lk.css.br +0 -0
- package/dist/studio/client/_app/immutable/assets/0.qtyVX5Lk.css.gz +0 -0
- package/dist/studio/client/_app/immutable/assets/12.PImKdmsE.css +0 -1
- package/dist/studio/client/_app/immutable/assets/12.PImKdmsE.css.br +0 -0
- package/dist/studio/client/_app/immutable/assets/12.PImKdmsE.css.gz +0 -0
- package/dist/studio/client/_app/immutable/assets/14.lzVIHEtT.css +0 -1
- package/dist/studio/client/_app/immutable/assets/14.lzVIHEtT.css.br +0 -0
- package/dist/studio/client/_app/immutable/assets/14.lzVIHEtT.css.gz +0 -0
- package/dist/studio/client/_app/immutable/assets/15.BLRd8hLV.css +0 -1
- package/dist/studio/client/_app/immutable/assets/15.BLRd8hLV.css.br +0 -0
- package/dist/studio/client/_app/immutable/assets/15.BLRd8hLV.css.gz +0 -0
- package/dist/studio/client/_app/immutable/assets/18.CnH81ZvR.css +0 -1
- package/dist/studio/client/_app/immutable/assets/18.CnH81ZvR.css.br +0 -0
- package/dist/studio/client/_app/immutable/assets/18.CnH81ZvR.css.gz +0 -0
- package/dist/studio/client/_app/immutable/assets/19.D6wxTt7e.css +0 -1
- package/dist/studio/client/_app/immutable/assets/19.D6wxTt7e.css.br +0 -0
- package/dist/studio/client/_app/immutable/assets/19.D6wxTt7e.css.gz +0 -0
- package/dist/studio/client/_app/immutable/assets/21.BFvFiUwr.css +0 -1
- package/dist/studio/client/_app/immutable/assets/21.BFvFiUwr.css.br +0 -0
- package/dist/studio/client/_app/immutable/assets/21.BFvFiUwr.css.gz +0 -0
- package/dist/studio/client/_app/immutable/assets/23.lmy3jg5I.css +0 -1
- package/dist/studio/client/_app/immutable/assets/23.lmy3jg5I.css.br +0 -0
- package/dist/studio/client/_app/immutable/assets/23.lmy3jg5I.css.gz +0 -0
- package/dist/studio/client/_app/immutable/assets/24.BKqfVfTU.css +0 -1
- package/dist/studio/client/_app/immutable/assets/24.BKqfVfTU.css.br +0 -0
- package/dist/studio/client/_app/immutable/assets/24.BKqfVfTU.css.gz +0 -0
- package/dist/studio/client/_app/immutable/assets/25.CPsiW96l.css +0 -1
- package/dist/studio/client/_app/immutable/assets/25.CPsiW96l.css.br +0 -0
- package/dist/studio/client/_app/immutable/assets/25.CPsiW96l.css.gz +0 -0
- package/dist/studio/client/_app/immutable/assets/26.Duww4IEr.css +0 -1
- package/dist/studio/client/_app/immutable/assets/26.Duww4IEr.css.br +0 -0
- package/dist/studio/client/_app/immutable/assets/26.Duww4IEr.css.gz +0 -0
- package/dist/studio/client/_app/immutable/assets/27.Bto6SwzS.css +0 -1
- package/dist/studio/client/_app/immutable/assets/27.Bto6SwzS.css.br +0 -0
- package/dist/studio/client/_app/immutable/assets/27.Bto6SwzS.css.gz +0 -0
- package/dist/studio/client/_app/immutable/assets/28.Cbyl77s4.css +0 -1
- package/dist/studio/client/_app/immutable/assets/28.Cbyl77s4.css.br +0 -0
- package/dist/studio/client/_app/immutable/assets/28.Cbyl77s4.css.gz +0 -0
- package/dist/studio/client/_app/immutable/assets/29.Dbx5ypFb.css +0 -1
- package/dist/studio/client/_app/immutable/assets/29.Dbx5ypFb.css.br +0 -0
- package/dist/studio/client/_app/immutable/assets/29.Dbx5ypFb.css.gz +0 -0
- package/dist/studio/client/_app/immutable/assets/3.DlHp_E83.css +0 -1
- package/dist/studio/client/_app/immutable/assets/3.DlHp_E83.css.br +0 -0
- package/dist/studio/client/_app/immutable/assets/3.DlHp_E83.css.gz +0 -0
- package/dist/studio/client/_app/immutable/assets/30.CZyI5lvW.css +0 -1
- package/dist/studio/client/_app/immutable/assets/30.CZyI5lvW.css.br +0 -0
- package/dist/studio/client/_app/immutable/assets/30.CZyI5lvW.css.gz +0 -0
- package/dist/studio/client/_app/immutable/assets/31.DTyKTI60.css +0 -1
- package/dist/studio/client/_app/immutable/assets/31.DTyKTI60.css.br +0 -1
- package/dist/studio/client/_app/immutable/assets/31.DTyKTI60.css.gz +0 -0
- package/dist/studio/client/_app/immutable/assets/5.CleWk3al.css +0 -1
- package/dist/studio/client/_app/immutable/assets/5.CleWk3al.css.br +0 -0
- package/dist/studio/client/_app/immutable/assets/5.CleWk3al.css.gz +0 -0
- package/dist/studio/client/_app/immutable/assets/7.By_kndZ5.css +0 -1
- package/dist/studio/client/_app/immutable/assets/7.By_kndZ5.css.br +0 -0
- package/dist/studio/client/_app/immutable/assets/7.By_kndZ5.css.gz +0 -0
- package/dist/studio/client/_app/immutable/assets/9.r2JMdec9.css +0 -1
- package/dist/studio/client/_app/immutable/assets/9.r2JMdec9.css.br +0 -0
- package/dist/studio/client/_app/immutable/assets/9.r2JMdec9.css.gz +0 -0
- package/dist/studio/client/_app/immutable/assets/Checkbox.ByMxOWwb.css +0 -1
- package/dist/studio/client/_app/immutable/assets/Checkbox.ByMxOWwb.css.br +0 -0
- package/dist/studio/client/_app/immutable/assets/Checkbox.ByMxOWwb.css.gz +0 -0
- package/dist/studio/client/_app/immutable/assets/Notification.hbW3rpbK.css +0 -1
- package/dist/studio/client/_app/immutable/assets/Notification.hbW3rpbK.css.br +0 -0
- package/dist/studio/client/_app/immutable/assets/Notification.hbW3rpbK.css.gz +0 -0
- package/dist/studio/client/_app/immutable/assets/RootNodeForm.DAYhZjyS.css +0 -1
- package/dist/studio/client/_app/immutable/assets/RootNodeForm.DAYhZjyS.css.br +0 -1
- package/dist/studio/client/_app/immutable/assets/RootNodeForm.DAYhZjyS.css.gz +0 -0
- package/dist/studio/client/_app/immutable/assets/TextArrayInput.Civ0vOTG.css +0 -1
- package/dist/studio/client/_app/immutable/assets/TextArrayInput.Civ0vOTG.css.br +0 -0
- package/dist/studio/client/_app/immutable/assets/TextArrayInput.Civ0vOTG.css.gz +0 -0
- package/dist/studio/client/_app/immutable/assets/index.CgfvxpRj.css +0 -1
- package/dist/studio/client/_app/immutable/assets/index.CgfvxpRj.css.br +0 -0
- package/dist/studio/client/_app/immutable/assets/index.CgfvxpRj.css.gz +0 -0
- package/dist/studio/client/_app/immutable/chunks/1Yo7-Cpf.js +0 -1
- package/dist/studio/client/_app/immutable/chunks/1Yo7-Cpf.js.br +0 -0
- package/dist/studio/client/_app/immutable/chunks/1Yo7-Cpf.js.gz +0 -0
- package/dist/studio/client/_app/immutable/chunks/42wronYd.js +0 -1
- package/dist/studio/client/_app/immutable/chunks/42wronYd.js.br +0 -0
- package/dist/studio/client/_app/immutable/chunks/42wronYd.js.gz +0 -0
- package/dist/studio/client/_app/immutable/chunks/BFULvTz0.js +0 -1
- package/dist/studio/client/_app/immutable/chunks/BFULvTz0.js.br +0 -0
- package/dist/studio/client/_app/immutable/chunks/BFULvTz0.js.gz +0 -0
- package/dist/studio/client/_app/immutable/chunks/BIEVNxDN.js +0 -1
- package/dist/studio/client/_app/immutable/chunks/BIEVNxDN.js.br +0 -0
- package/dist/studio/client/_app/immutable/chunks/BIEVNxDN.js.gz +0 -0
- package/dist/studio/client/_app/immutable/chunks/BWSMI8WN.js +0 -1
- package/dist/studio/client/_app/immutable/chunks/BWSMI8WN.js.br +0 -0
- package/dist/studio/client/_app/immutable/chunks/BWSMI8WN.js.gz +0 -0
- package/dist/studio/client/_app/immutable/chunks/BX_Ef30S.js +0 -1
- package/dist/studio/client/_app/immutable/chunks/BX_Ef30S.js.br +0 -0
- package/dist/studio/client/_app/immutable/chunks/BX_Ef30S.js.gz +0 -0
- package/dist/studio/client/_app/immutable/chunks/BuYQBh-M.js +0 -1
- package/dist/studio/client/_app/immutable/chunks/BuYQBh-M.js.br +0 -0
- package/dist/studio/client/_app/immutable/chunks/BuYQBh-M.js.gz +0 -0
- package/dist/studio/client/_app/immutable/chunks/Byzp4TGB.js +0 -1
- package/dist/studio/client/_app/immutable/chunks/Byzp4TGB.js.br +0 -0
- package/dist/studio/client/_app/immutable/chunks/Byzp4TGB.js.gz +0 -0
- package/dist/studio/client/_app/immutable/chunks/CYKz3cIN.js +0 -1
- package/dist/studio/client/_app/immutable/chunks/CYKz3cIN.js.br +0 -0
- package/dist/studio/client/_app/immutable/chunks/CYKz3cIN.js.gz +0 -0
- package/dist/studio/client/_app/immutable/chunks/C_nuU7dh.js +0 -1
- package/dist/studio/client/_app/immutable/chunks/C_nuU7dh.js.br +0 -0
- package/dist/studio/client/_app/immutable/chunks/C_nuU7dh.js.gz +0 -0
- package/dist/studio/client/_app/immutable/chunks/Cgi6BMDu.js +0 -1
- package/dist/studio/client/_app/immutable/chunks/Cgi6BMDu.js.br +0 -0
- package/dist/studio/client/_app/immutable/chunks/Cgi6BMDu.js.gz +0 -0
- package/dist/studio/client/_app/immutable/chunks/CjiSjW7e.js +0 -1
- package/dist/studio/client/_app/immutable/chunks/CjiSjW7e.js.br +0 -2
- package/dist/studio/client/_app/immutable/chunks/CjiSjW7e.js.gz +0 -0
- package/dist/studio/client/_app/immutable/chunks/CpwXiAKF.js +0 -26
- package/dist/studio/client/_app/immutable/chunks/CpwXiAKF.js.br +0 -0
- package/dist/studio/client/_app/immutable/chunks/CpwXiAKF.js.gz +0 -0
- package/dist/studio/client/_app/immutable/chunks/D01FatMI.js +0 -1
- package/dist/studio/client/_app/immutable/chunks/D01FatMI.js.br +0 -0
- package/dist/studio/client/_app/immutable/chunks/D01FatMI.js.gz +0 -0
- package/dist/studio/client/_app/immutable/chunks/D0UIT4fc.js +0 -1
- package/dist/studio/client/_app/immutable/chunks/D0UIT4fc.js.br +0 -0
- package/dist/studio/client/_app/immutable/chunks/D0UIT4fc.js.gz +0 -0
- package/dist/studio/client/_app/immutable/chunks/D2jhfhJ8.js +0 -1
- package/dist/studio/client/_app/immutable/chunks/D2jhfhJ8.js.br +0 -0
- package/dist/studio/client/_app/immutable/chunks/D2jhfhJ8.js.gz +0 -0
- package/dist/studio/client/_app/immutable/chunks/DN42XkGt.js +0 -1
- package/dist/studio/client/_app/immutable/chunks/DN42XkGt.js.br +0 -2
- package/dist/studio/client/_app/immutable/chunks/DN42XkGt.js.gz +0 -0
- package/dist/studio/client/_app/immutable/chunks/DUIUcslG.js +0 -2
- package/dist/studio/client/_app/immutable/chunks/DUIUcslG.js.br +0 -0
- package/dist/studio/client/_app/immutable/chunks/DUIUcslG.js.gz +0 -0
- package/dist/studio/client/_app/immutable/chunks/DbcTT3jd.js +0 -1
- package/dist/studio/client/_app/immutable/chunks/DbcTT3jd.js.br +0 -0
- package/dist/studio/client/_app/immutable/chunks/DbcTT3jd.js.gz +0 -0
- package/dist/studio/client/_app/immutable/chunks/DhD1-ILI.js +0 -1
- package/dist/studio/client/_app/immutable/chunks/DhD1-ILI.js.br +0 -0
- package/dist/studio/client/_app/immutable/chunks/DhD1-ILI.js.gz +0 -0
- package/dist/studio/client/_app/immutable/chunks/DpluYK_2.js +0 -1
- package/dist/studio/client/_app/immutable/chunks/DpluYK_2.js.br +0 -0
- package/dist/studio/client/_app/immutable/chunks/DpluYK_2.js.gz +0 -0
- package/dist/studio/client/_app/immutable/chunks/DsnmJJEf.js +0 -1
- package/dist/studio/client/_app/immutable/chunks/DsnmJJEf.js.br +0 -2
- package/dist/studio/client/_app/immutable/chunks/DsnmJJEf.js.gz +0 -0
- package/dist/studio/client/_app/immutable/chunks/VaAefLho.js +0 -1
- package/dist/studio/client/_app/immutable/chunks/VaAefLho.js.br +0 -0
- package/dist/studio/client/_app/immutable/chunks/VaAefLho.js.gz +0 -0
- package/dist/studio/client/_app/immutable/chunks/oQFskgti.js +0 -4
- package/dist/studio/client/_app/immutable/chunks/oQFskgti.js.br +0 -0
- package/dist/studio/client/_app/immutable/chunks/oQFskgti.js.gz +0 -0
- package/dist/studio/client/_app/immutable/chunks/pOhLQ93H.js +0 -1
- package/dist/studio/client/_app/immutable/chunks/pOhLQ93H.js.br +0 -0
- package/dist/studio/client/_app/immutable/chunks/pOhLQ93H.js.gz +0 -0
- package/dist/studio/client/_app/immutable/chunks/suYCCfil.js +0 -4
- package/dist/studio/client/_app/immutable/chunks/suYCCfil.js.br +0 -0
- package/dist/studio/client/_app/immutable/chunks/suYCCfil.js.gz +0 -0
- package/dist/studio/client/_app/immutable/chunks/uAeMz6HQ.js +0 -1
- package/dist/studio/client/_app/immutable/chunks/uAeMz6HQ.js.br +0 -0
- package/dist/studio/client/_app/immutable/chunks/uAeMz6HQ.js.gz +0 -0
- package/dist/studio/client/_app/immutable/chunks/uo-oEijL.js +0 -1
- package/dist/studio/client/_app/immutable/chunks/uo-oEijL.js.br +0 -0
- package/dist/studio/client/_app/immutable/chunks/uo-oEijL.js.gz +0 -0
- package/dist/studio/client/_app/immutable/entry/app.pJmhj_1Y.js +0 -2
- package/dist/studio/client/_app/immutable/entry/app.pJmhj_1Y.js.br +0 -0
- package/dist/studio/client/_app/immutable/entry/app.pJmhj_1Y.js.gz +0 -0
- package/dist/studio/client/_app/immutable/entry/start.CBvZ9KTw.js +0 -1
- package/dist/studio/client/_app/immutable/entry/start.CBvZ9KTw.js.br +0 -0
- package/dist/studio/client/_app/immutable/entry/start.CBvZ9KTw.js.gz +0 -0
- package/dist/studio/client/_app/immutable/nodes/0.D1J7XjsR.js +0 -1
- package/dist/studio/client/_app/immutable/nodes/0.D1J7XjsR.js.br +0 -0
- package/dist/studio/client/_app/immutable/nodes/0.D1J7XjsR.js.gz +0 -0
- package/dist/studio/client/_app/immutable/nodes/1.DfSTSkyt.js +0 -1
- package/dist/studio/client/_app/immutable/nodes/1.DfSTSkyt.js.br +0 -0
- package/dist/studio/client/_app/immutable/nodes/1.DfSTSkyt.js.gz +0 -0
- package/dist/studio/client/_app/immutable/nodes/10.dChIEr_X.js +0 -1
- package/dist/studio/client/_app/immutable/nodes/10.dChIEr_X.js.br +0 -2
- package/dist/studio/client/_app/immutable/nodes/10.dChIEr_X.js.gz +0 -0
- package/dist/studio/client/_app/immutable/nodes/11.dChIEr_X.js +0 -1
- package/dist/studio/client/_app/immutable/nodes/11.dChIEr_X.js.br +0 -2
- package/dist/studio/client/_app/immutable/nodes/11.dChIEr_X.js.gz +0 -0
- package/dist/studio/client/_app/immutable/nodes/12.C5K3cfff.js +0 -1
- package/dist/studio/client/_app/immutable/nodes/12.C5K3cfff.js.br +0 -0
- package/dist/studio/client/_app/immutable/nodes/12.C5K3cfff.js.gz +0 -0
- package/dist/studio/client/_app/immutable/nodes/13.DHLm1o28.js +0 -1
- package/dist/studio/client/_app/immutable/nodes/13.DHLm1o28.js.br +0 -0
- package/dist/studio/client/_app/immutable/nodes/13.DHLm1o28.js.gz +0 -0
- package/dist/studio/client/_app/immutable/nodes/14.BViOerWJ.js +0 -1
- package/dist/studio/client/_app/immutable/nodes/14.BViOerWJ.js.br +0 -0
- package/dist/studio/client/_app/immutable/nodes/14.BViOerWJ.js.gz +0 -0
- package/dist/studio/client/_app/immutable/nodes/15.BeCZGLnH.js +0 -1
- package/dist/studio/client/_app/immutable/nodes/15.BeCZGLnH.js.br +0 -0
- package/dist/studio/client/_app/immutable/nodes/15.BeCZGLnH.js.gz +0 -0
- package/dist/studio/client/_app/immutable/nodes/17.DtfO4FIr.js +0 -1
- package/dist/studio/client/_app/immutable/nodes/17.DtfO4FIr.js.br +0 -0
- package/dist/studio/client/_app/immutable/nodes/17.DtfO4FIr.js.gz +0 -0
- package/dist/studio/client/_app/immutable/nodes/18.DAjiovL_.js +0 -1
- package/dist/studio/client/_app/immutable/nodes/18.DAjiovL_.js.br +0 -0
- package/dist/studio/client/_app/immutable/nodes/18.DAjiovL_.js.gz +0 -0
- package/dist/studio/client/_app/immutable/nodes/19.-AqS4IH0.js +0 -1
- package/dist/studio/client/_app/immutable/nodes/19.-AqS4IH0.js.br +0 -0
- package/dist/studio/client/_app/immutable/nodes/19.-AqS4IH0.js.gz +0 -0
- package/dist/studio/client/_app/immutable/nodes/2.dChIEr_X.js +0 -1
- package/dist/studio/client/_app/immutable/nodes/2.dChIEr_X.js.br +0 -2
- package/dist/studio/client/_app/immutable/nodes/2.dChIEr_X.js.gz +0 -0
- package/dist/studio/client/_app/immutable/nodes/20.CyixzT9d.js +0 -1
- package/dist/studio/client/_app/immutable/nodes/20.CyixzT9d.js.br +0 -0
- package/dist/studio/client/_app/immutable/nodes/20.CyixzT9d.js.gz +0 -0
- package/dist/studio/client/_app/immutable/nodes/21.CNQU7GaI.js +0 -1
- package/dist/studio/client/_app/immutable/nodes/21.CNQU7GaI.js.br +0 -0
- package/dist/studio/client/_app/immutable/nodes/21.CNQU7GaI.js.gz +0 -0
- package/dist/studio/client/_app/immutable/nodes/22.CyixzT9d.js +0 -1
- package/dist/studio/client/_app/immutable/nodes/22.CyixzT9d.js.br +0 -0
- package/dist/studio/client/_app/immutable/nodes/22.CyixzT9d.js.gz +0 -0
- package/dist/studio/client/_app/immutable/nodes/23.X_TTqNgF.js +0 -1
- package/dist/studio/client/_app/immutable/nodes/23.X_TTqNgF.js.br +0 -0
- package/dist/studio/client/_app/immutable/nodes/23.X_TTqNgF.js.gz +0 -0
- package/dist/studio/client/_app/immutable/nodes/24.Ce4vy4Y3.js +0 -1
- package/dist/studio/client/_app/immutable/nodes/24.Ce4vy4Y3.js.br +0 -0
- package/dist/studio/client/_app/immutable/nodes/24.Ce4vy4Y3.js.gz +0 -0
- package/dist/studio/client/_app/immutable/nodes/25.P6SB3t-r.js +0 -1
- package/dist/studio/client/_app/immutable/nodes/25.P6SB3t-r.js.br +0 -2
- package/dist/studio/client/_app/immutable/nodes/25.P6SB3t-r.js.gz +0 -0
- package/dist/studio/client/_app/immutable/nodes/26.B6yIsMAJ.js +0 -1
- package/dist/studio/client/_app/immutable/nodes/26.B6yIsMAJ.js.br +0 -0
- package/dist/studio/client/_app/immutable/nodes/26.B6yIsMAJ.js.gz +0 -0
- package/dist/studio/client/_app/immutable/nodes/27.Ck1fa1rl.js +0 -1
- package/dist/studio/client/_app/immutable/nodes/27.Ck1fa1rl.js.br +0 -0
- package/dist/studio/client/_app/immutable/nodes/27.Ck1fa1rl.js.gz +0 -0
- package/dist/studio/client/_app/immutable/nodes/28.4owv4d0F.js +0 -1
- package/dist/studio/client/_app/immutable/nodes/28.4owv4d0F.js.br +0 -0
- package/dist/studio/client/_app/immutable/nodes/28.4owv4d0F.js.gz +0 -0
- package/dist/studio/client/_app/immutable/nodes/29.YnueMC1b.js +0 -1
- package/dist/studio/client/_app/immutable/nodes/29.YnueMC1b.js.br +0 -0
- package/dist/studio/client/_app/immutable/nodes/29.YnueMC1b.js.gz +0 -0
- package/dist/studio/client/_app/immutable/nodes/3.DsQFhE6k.js +0 -1
- package/dist/studio/client/_app/immutable/nodes/3.DsQFhE6k.js.br +0 -0
- package/dist/studio/client/_app/immutable/nodes/3.DsQFhE6k.js.gz +0 -0
- package/dist/studio/client/_app/immutable/nodes/30.DR-CJy8W.js +0 -1
- package/dist/studio/client/_app/immutable/nodes/30.DR-CJy8W.js.br +0 -3
- package/dist/studio/client/_app/immutable/nodes/30.DR-CJy8W.js.gz +0 -0
- package/dist/studio/client/_app/immutable/nodes/31.ntZ-Qtnn.js +0 -1
- package/dist/studio/client/_app/immutable/nodes/31.ntZ-Qtnn.js.br +0 -0
- package/dist/studio/client/_app/immutable/nodes/31.ntZ-Qtnn.js.gz +0 -0
- package/dist/studio/client/_app/immutable/nodes/4.CfE-q9iY.js +0 -1
- package/dist/studio/client/_app/immutable/nodes/4.CfE-q9iY.js.br +0 -2
- package/dist/studio/client/_app/immutable/nodes/4.CfE-q9iY.js.gz +0 -0
- package/dist/studio/client/_app/immutable/nodes/5.DgrwGce_.js +0 -1
- package/dist/studio/client/_app/immutable/nodes/5.DgrwGce_.js.br +0 -0
- package/dist/studio/client/_app/immutable/nodes/5.DgrwGce_.js.gz +0 -0
- package/dist/studio/client/_app/immutable/nodes/6.dChIEr_X.js +0 -1
- package/dist/studio/client/_app/immutable/nodes/6.dChIEr_X.js.br +0 -2
- package/dist/studio/client/_app/immutable/nodes/6.dChIEr_X.js.gz +0 -0
- package/dist/studio/client/_app/immutable/nodes/7.C3aHYJnL.js +0 -1
- package/dist/studio/client/_app/immutable/nodes/7.C3aHYJnL.js.br +0 -0
- package/dist/studio/client/_app/immutable/nodes/7.C3aHYJnL.js.gz +0 -0
- package/dist/studio/client/_app/immutable/nodes/8.dChIEr_X.js +0 -1
- package/dist/studio/client/_app/immutable/nodes/8.dChIEr_X.js.br +0 -2
- package/dist/studio/client/_app/immutable/nodes/8.dChIEr_X.js.gz +0 -0
- package/dist/studio/client/_app/immutable/nodes/9.CU8mjBdN.js +0 -1
- package/dist/studio/client/_app/immutable/nodes/9.CU8mjBdN.js.br +0 -0
- package/dist/studio/client/_app/immutable/nodes/9.CU8mjBdN.js.gz +0 -0
- package/dist/studio/client/_app/version.json +0 -1
- package/dist/studio/client/_app/version.json.br +0 -0
- package/dist/studio/client/_app/version.json.gz +0 -0
- package/dist/studio/client/favicon.svg +0 -7
- package/dist/studio/client/favicon.svg.br +0 -0
- package/dist/studio/client/favicon.svg.gz +0 -0
- package/dist/studio/client/robots.txt +0 -3
- package/dist/studio/env.js +0 -45
- package/dist/studio/handler.js +0 -1390
- package/dist/studio/index.js +0 -334
- package/dist/studio/server/chunks/0-CftjoNNm.js +0 -17
- package/dist/studio/server/chunks/0-CftjoNNm.js.map +0 -1
- package/dist/studio/server/chunks/1-yUJb_jsL.js +0 -9
- package/dist/studio/server/chunks/1-yUJb_jsL.js.map +0 -1
- package/dist/studio/server/chunks/10-8TShL-5J.js +0 -58
- package/dist/studio/server/chunks/10-8TShL-5J.js.map +0 -1
- package/dist/studio/server/chunks/11-aLEpxkmr.js +0 -79
- package/dist/studio/server/chunks/11-aLEpxkmr.js.map +0 -1
- package/dist/studio/server/chunks/12-Cjdh5NeI.js +0 -44
- package/dist/studio/server/chunks/12-Cjdh5NeI.js.map +0 -1
- package/dist/studio/server/chunks/13-BaURphaz.js +0 -52
- package/dist/studio/server/chunks/13-BaURphaz.js.map +0 -1
- package/dist/studio/server/chunks/14-BCXeXqeQ.js +0 -44
- package/dist/studio/server/chunks/14-BCXeXqeQ.js.map +0 -1
- package/dist/studio/server/chunks/15-CFhNY-SO.js +0 -9
- package/dist/studio/server/chunks/15-CFhNY-SO.js.map +0 -1
- package/dist/studio/server/chunks/16-C6cpd4Aq.js +0 -20
- package/dist/studio/server/chunks/16-C6cpd4Aq.js.map +0 -1
- package/dist/studio/server/chunks/17-g1WN6ed6.js +0 -9
- package/dist/studio/server/chunks/17-g1WN6ed6.js.map +0 -1
- package/dist/studio/server/chunks/18-KFV-rOdk.js +0 -9
- package/dist/studio/server/chunks/18-KFV-rOdk.js.map +0 -1
- package/dist/studio/server/chunks/19-BAQ6gNXr.js +0 -9
- package/dist/studio/server/chunks/19-BAQ6gNXr.js.map +0 -1
- package/dist/studio/server/chunks/2-8xgJuRn0.js +0 -52
- package/dist/studio/server/chunks/2-8xgJuRn0.js.map +0 -1
- package/dist/studio/server/chunks/20-DRDPEcZS.js +0 -9
- package/dist/studio/server/chunks/20-DRDPEcZS.js.map +0 -1
- package/dist/studio/server/chunks/21-CCYQ763l.js +0 -9
- package/dist/studio/server/chunks/21-CCYQ763l.js.map +0 -1
- package/dist/studio/server/chunks/22-Jes7JIw3.js +0 -9
- package/dist/studio/server/chunks/22-Jes7JIw3.js.map +0 -1
- package/dist/studio/server/chunks/23-Ds_u5WR1.js +0 -9
- package/dist/studio/server/chunks/23-Ds_u5WR1.js.map +0 -1
- package/dist/studio/server/chunks/24-m3dPQOlx.js +0 -9
- package/dist/studio/server/chunks/24-m3dPQOlx.js.map +0 -1
- package/dist/studio/server/chunks/25-DSD98e0c.js +0 -9
- package/dist/studio/server/chunks/25-DSD98e0c.js.map +0 -1
- package/dist/studio/server/chunks/26-BOPmD_mH.js +0 -44
- package/dist/studio/server/chunks/26-BOPmD_mH.js.map +0 -1
- package/dist/studio/server/chunks/27-iWcGKxjD.js +0 -9
- package/dist/studio/server/chunks/27-iWcGKxjD.js.map +0 -1
- package/dist/studio/server/chunks/28-BLCBbMJ5.js +0 -46
- package/dist/studio/server/chunks/28-BLCBbMJ5.js.map +0 -1
- package/dist/studio/server/chunks/29-BArNBKwZ.js +0 -43
- package/dist/studio/server/chunks/29-BArNBKwZ.js.map +0 -1
- package/dist/studio/server/chunks/3-C0vK6tad.js +0 -46
- package/dist/studio/server/chunks/3-C0vK6tad.js.map +0 -1
- package/dist/studio/server/chunks/30-BKmygRSX.js +0 -9
- package/dist/studio/server/chunks/30-BKmygRSX.js.map +0 -1
- package/dist/studio/server/chunks/31-pCSNBfFA.js +0 -46
- package/dist/studio/server/chunks/31-pCSNBfFA.js.map +0 -1
- package/dist/studio/server/chunks/4-Ckrz8Pts.js +0 -96
- package/dist/studio/server/chunks/4-Ckrz8Pts.js.map +0 -1
- package/dist/studio/server/chunks/5-BOeIJLqn.js +0 -9
- package/dist/studio/server/chunks/5-BOeIJLqn.js.map +0 -1
- package/dist/studio/server/chunks/6-BJInGQmN.js +0 -80
- package/dist/studio/server/chunks/6-BJInGQmN.js.map +0 -1
- package/dist/studio/server/chunks/7-D1IRHEwH.js +0 -9
- package/dist/studio/server/chunks/7-D1IRHEwH.js.map +0 -1
- package/dist/studio/server/chunks/8-DPolW7fw.js +0 -58
- package/dist/studio/server/chunks/8-DPolW7fw.js.map +0 -1
- package/dist/studio/server/chunks/9-DssWNo7i.js +0 -9
- package/dist/studio/server/chunks/9-DssWNo7i.js.map +0 -1
- package/dist/studio/server/chunks/AwsRestJsonProtocol-DbtV_man.js +0 -534
- package/dist/studio/server/chunks/AwsRestJsonProtocol-DbtV_man.js.map +0 -1
- package/dist/studio/server/chunks/Dropdown-DSnc73QD.js +0 -63
- package/dist/studio/server/chunks/Dropdown-DSnc73QD.js.map +0 -1
- package/dist/studio/server/chunks/FormField-B_9VaKTy.js +0 -53
- package/dist/studio/server/chunks/FormField-B_9VaKTy.js.map +0 -1
- package/dist/studio/server/chunks/LabeledText-Df1tYT8Q.js +0 -19
- package/dist/studio/server/chunks/LabeledText-Df1tYT8Q.js.map +0 -1
- package/dist/studio/server/chunks/LanguageTabs-Dcn9kIIh.js +0 -28
- package/dist/studio/server/chunks/LanguageTabs-Dcn9kIIh.js.map +0 -1
- package/dist/studio/server/chunks/Notification-BdtRHNXP.js +0 -120
- package/dist/studio/server/chunks/Notification-BdtRHNXP.js.map +0 -1
- package/dist/studio/server/chunks/RootNodeForm-D75aY32s.js +0 -147
- package/dist/studio/server/chunks/RootNodeForm-D75aY32s.js.map +0 -1
- package/dist/studio/server/chunks/SelectableItem-CdQpjkDy.js +0 -34
- package/dist/studio/server/chunks/SelectableItem-CdQpjkDy.js.map +0 -1
- package/dist/studio/server/chunks/TextArrayInput.svelte_svelte_type_style_lang-BPAw2rLd.js +0 -489
- package/dist/studio/server/chunks/TextArrayInput.svelte_svelte_type_style_lang-BPAw2rLd.js.map +0 -1
- package/dist/studio/server/chunks/Textarea-Cg2FXNGr.js +0 -36
- package/dist/studio/server/chunks/Textarea-Cg2FXNGr.js.map +0 -1
- package/dist/studio/server/chunks/_layout.svelte-Be5YuP0u.js +0 -21
- package/dist/studio/server/chunks/_layout.svelte-Be5YuP0u.js.map +0 -1
- package/dist/studio/server/chunks/_layout.svelte-C0ZyMrYm.js +0 -194
- package/dist/studio/server/chunks/_layout.svelte-C0ZyMrYm.js.map +0 -1
- package/dist/studio/server/chunks/_layout.svelte-CcX3l86w.js +0 -120
- package/dist/studio/server/chunks/_layout.svelte-CcX3l86w.js.map +0 -1
- package/dist/studio/server/chunks/_layout.svelte-CsTs6Mj7.js +0 -107
- package/dist/studio/server/chunks/_layout.svelte-CsTs6Mj7.js.map +0 -1
- package/dist/studio/server/chunks/_layout.svelte-DOHLbT6G.js +0 -120
- package/dist/studio/server/chunks/_layout.svelte-DOHLbT6G.js.map +0 -1
- package/dist/studio/server/chunks/_layout.svelte-D_wzPsk8.js +0 -8
- package/dist/studio/server/chunks/_layout.svelte-D_wzPsk8.js.map +0 -1
- package/dist/studio/server/chunks/_layout.svelte-Gk-SrhDW.js +0 -137
- package/dist/studio/server/chunks/_layout.svelte-Gk-SrhDW.js.map +0 -1
- package/dist/studio/server/chunks/_layout.svelte-XWAIiqf7.js +0 -121
- package/dist/studio/server/chunks/_layout.svelte-XWAIiqf7.js.map +0 -1
- package/dist/studio/server/chunks/_layout.svelte-ZSdtL2Ov.js +0 -264
- package/dist/studio/server/chunks/_layout.svelte-ZSdtL2Ov.js.map +0 -1
- package/dist/studio/server/chunks/_page.svelte-5I4R2EtC.js +0 -194
- package/dist/studio/server/chunks/_page.svelte-5I4R2EtC.js.map +0 -1
- package/dist/studio/server/chunks/_page.svelte-B0fdJgIy.js +0 -6
- package/dist/studio/server/chunks/_page.svelte-B0fdJgIy.js.map +0 -1
- package/dist/studio/server/chunks/_page.svelte-BQSEkG4B.js +0 -50
- package/dist/studio/server/chunks/_page.svelte-BQSEkG4B.js.map +0 -1
- package/dist/studio/server/chunks/_page.svelte-BUvPmmfE.js +0 -72
- package/dist/studio/server/chunks/_page.svelte-BUvPmmfE.js.map +0 -1
- package/dist/studio/server/chunks/_page.svelte-C1pnrNYC.js +0 -1180
- package/dist/studio/server/chunks/_page.svelte-C1pnrNYC.js.map +0 -1
- package/dist/studio/server/chunks/_page.svelte-C5tuIA7M.js +0 -167
- package/dist/studio/server/chunks/_page.svelte-C5tuIA7M.js.map +0 -1
- package/dist/studio/server/chunks/_page.svelte-CF_q50BE.js +0 -7
- package/dist/studio/server/chunks/_page.svelte-CF_q50BE.js.map +0 -1
- package/dist/studio/server/chunks/_page.svelte-C_PbhPCC.js +0 -50
- package/dist/studio/server/chunks/_page.svelte-C_PbhPCC.js.map +0 -1
- package/dist/studio/server/chunks/_page.svelte-Cj5ZuteL.js +0 -6
- package/dist/studio/server/chunks/_page.svelte-Cj5ZuteL.js.map +0 -1
- package/dist/studio/server/chunks/_page.svelte-CmTVw6d1.js +0 -26
- package/dist/studio/server/chunks/_page.svelte-CmTVw6d1.js.map +0 -1
- package/dist/studio/server/chunks/_page.svelte-DCFrAMt0.js +0 -215
- package/dist/studio/server/chunks/_page.svelte-DCFrAMt0.js.map +0 -1
- package/dist/studio/server/chunks/_page.svelte-DLctg8L7.js +0 -12
- package/dist/studio/server/chunks/_page.svelte-DLctg8L7.js.map +0 -1
- package/dist/studio/server/chunks/_page.svelte-DSQHM23P.js +0 -245
- package/dist/studio/server/chunks/_page.svelte-DSQHM23P.js.map +0 -1
- package/dist/studio/server/chunks/_page.svelte-cXc32tdP.js +0 -210
- package/dist/studio/server/chunks/_page.svelte-cXc32tdP.js.map +0 -1
- package/dist/studio/server/chunks/_page.svelte-gagR2l4t.js +0 -101
- package/dist/studio/server/chunks/_page.svelte-gagR2l4t.js.map +0 -1
- package/dist/studio/server/chunks/_page.svelte-jSwVcx19.js +0 -7
- package/dist/studio/server/chunks/_page.svelte-jSwVcx19.js.map +0 -1
- package/dist/studio/server/chunks/_server-DjoKoFPH.js +0 -54
- package/dist/studio/server/chunks/_server-DjoKoFPH.js.map +0 -1
- package/dist/studio/server/chunks/_server-NkVSxoTW.js +0 -46
- package/dist/studio/server/chunks/_server-NkVSxoTW.js.map +0 -1
- package/dist/studio/server/chunks/bloko-Di3Yi1HX.js +0 -20538
- package/dist/studio/server/chunks/bloko-Di3Yi1HX.js.map +0 -1
- package/dist/studio/server/chunks/client-BpHYTz7B.js +0 -31
- package/dist/studio/server/chunks/client-BpHYTz7B.js.map +0 -1
- package/dist/studio/server/chunks/contents-DmyXIZ7q.js +0 -114
- package/dist/studio/server/chunks/contents-DmyXIZ7q.js.map +0 -1
- package/dist/studio/server/chunks/context-hRBz22cz.js +0 -57
- package/dist/studio/server/chunks/context-hRBz22cz.js.map +0 -1
- package/dist/studio/server/chunks/data.remote-BgcI_rzY.js +0 -180
- package/dist/studio/server/chunks/data.remote-BgcI_rzY.js.map +0 -1
- package/dist/studio/server/chunks/data.remote2-DiE6NrBW.js +0 -44
- package/dist/studio/server/chunks/data.remote2-DiE6NrBW.js.map +0 -1
- package/dist/studio/server/chunks/data.remote3-52tMxtf8.js +0 -37
- package/dist/studio/server/chunks/data.remote3-52tMxtf8.js.map +0 -1
- package/dist/studio/server/chunks/data.remote4-D15gkpNg.js +0 -23
- package/dist/studio/server/chunks/data.remote4-D15gkpNg.js.map +0 -1
- package/dist/studio/server/chunks/error.svelte-H9qc-Hoo.js +0 -17
- package/dist/studio/server/chunks/error.svelte-H9qc-Hoo.js.map +0 -1
- package/dist/studio/server/chunks/escaping-CqgfEcN3.js +0 -19
- package/dist/studio/server/chunks/escaping-CqgfEcN3.js.map +0 -1
- package/dist/studio/server/chunks/externalDataInterceptor-CmrWPcBh.js +0 -20
- package/dist/studio/server/chunks/externalDataInterceptor-CmrWPcBh.js.map +0 -1
- package/dist/studio/server/chunks/getSSOTokenFromFile-CkfcVyuX.js +0 -23
- package/dist/studio/server/chunks/getSSOTokenFromFile-CkfcVyuX.js.map +0 -1
- package/dist/studio/server/chunks/globals.svelte-DwdZJG2V.js +0 -16
- package/dist/studio/server/chunks/globals.svelte-DwdZJG2V.js.map +0 -1
- package/dist/studio/server/chunks/hooks.server-ZmWnLFqD.js +0 -17
- package/dist/studio/server/chunks/hooks.server-ZmWnLFqD.js.map +0 -1
- package/dist/studio/server/chunks/index-BHUH1vKZ.js +0 -184
- package/dist/studio/server/chunks/index-BHUH1vKZ.js.map +0 -1
- package/dist/studio/server/chunks/index-BJVNup87.js +0 -451
- package/dist/studio/server/chunks/index-BJVNup87.js.map +0 -1
- package/dist/studio/server/chunks/index-BQ1GAKvQ.js +0 -378
- package/dist/studio/server/chunks/index-BQ1GAKvQ.js.map +0 -1
- package/dist/studio/server/chunks/index-BWZU4zQ-.js +0 -589
- package/dist/studio/server/chunks/index-BWZU4zQ-.js.map +0 -1
- package/dist/studio/server/chunks/index-Bs104G6E.js +0 -59
- package/dist/studio/server/chunks/index-Bs104G6E.js.map +0 -1
- package/dist/studio/server/chunks/index-BubBMzaA.js +0 -9962
- package/dist/studio/server/chunks/index-BubBMzaA.js.map +0 -1
- package/dist/studio/server/chunks/index-CF9y57AA.js +0 -346
- package/dist/studio/server/chunks/index-CF9y57AA.js.map +0 -1
- package/dist/studio/server/chunks/index-CuYG-biY.js +0 -22
- package/dist/studio/server/chunks/index-CuYG-biY.js.map +0 -1
- package/dist/studio/server/chunks/index-D76-Vc_V.js +0 -79
- package/dist/studio/server/chunks/index-D76-Vc_V.js.map +0 -1
- package/dist/studio/server/chunks/index-DQX8s8iL.js +0 -99
- package/dist/studio/server/chunks/index-DQX8s8iL.js.map +0 -1
- package/dist/studio/server/chunks/index-Di74afjy.js +0 -1104
- package/dist/studio/server/chunks/index-Di74afjy.js.map +0 -1
- package/dist/studio/server/chunks/index-Djsj11qr.js +0 -214
- package/dist/studio/server/chunks/index-Djsj11qr.js.map +0 -1
- package/dist/studio/server/chunks/index-DkZaIGCe.js +0 -270
- package/dist/studio/server/chunks/index-DkZaIGCe.js.map +0 -1
- package/dist/studio/server/chunks/index-DrDr_Xqp.js +0 -518
- package/dist/studio/server/chunks/index-DrDr_Xqp.js.map +0 -1
- package/dist/studio/server/chunks/index2-BwU4Mw_N.js +0 -2409
- package/dist/studio/server/chunks/index2-BwU4Mw_N.js.map +0 -1
- package/dist/studio/server/chunks/index3-D3P_T2tv.js +0 -25
- package/dist/studio/server/chunks/index3-D3P_T2tv.js.map +0 -1
- package/dist/studio/server/chunks/index4-HT25OHj6.js +0 -117
- package/dist/studio/server/chunks/index4-HT25OHj6.js.map +0 -1
- package/dist/studio/server/chunks/layout.svelte-UxsTmhKc.js +0 -8
- package/dist/studio/server/chunks/layout.svelte-UxsTmhKc.js.map +0 -1
- package/dist/studio/server/chunks/loadSso-mSqBNz0L.js +0 -421
- package/dist/studio/server/chunks/loadSso-mSqBNz0L.js.map +0 -1
- package/dist/studio/server/chunks/noAuth-6BeJ9El-.js +0 -8
- package/dist/studio/server/chunks/noAuth-6BeJ9El-.js.map +0 -1
- package/dist/studio/server/chunks/package-DEozZCG8.js +0 -6
- package/dist/studio/server/chunks/package-DEozZCG8.js.map +0 -1
- package/dist/studio/server/chunks/parseKnownFiles-D9taN4Vr.js +0 -24
- package/dist/studio/server/chunks/parseKnownFiles-D9taN4Vr.js.map +0 -1
- package/dist/studio/server/chunks/query-Br86yIZh.js +0 -244
- package/dist/studio/server/chunks/query-Br86yIZh.js.map +0 -1
- package/dist/studio/server/chunks/remote-1k5k8mm-ybRbtNXT.js +0 -27
- package/dist/studio/server/chunks/remote-1k5k8mm-ybRbtNXT.js.map +0 -1
- package/dist/studio/server/chunks/remote-7g2nt7-Dsx8upgK.js +0 -28
- package/dist/studio/server/chunks/remote-7g2nt7-Dsx8upgK.js.map +0 -1
- package/dist/studio/server/chunks/remote-jdnfp7-D_zRSQIs.js +0 -27
- package/dist/studio/server/chunks/remote-jdnfp7-D_zRSQIs.js.map +0 -1
- package/dist/studio/server/chunks/remote-yje5b3-Pq_QOH76.js +0 -27
- package/dist/studio/server/chunks/remote-yje5b3-Pq_QOH76.js.map +0 -1
- package/dist/studio/server/chunks/shared-CAxGHzOK.js +0 -691
- package/dist/studio/server/chunks/shared-CAxGHzOK.js.map +0 -1
- package/dist/studio/server/chunks/state.svelte-DiB3TmIU.js +0 -10
- package/dist/studio/server/chunks/state.svelte-DiB3TmIU.js.map +0 -1
- package/dist/studio/server/chunks/stores-BMBseJnV.js +0 -29
- package/dist/studio/server/chunks/stores-BMBseJnV.js.map +0 -1
- package/dist/studio/server/chunks/utils-UnnCNxc8.js +0 -101
- package/dist/studio/server/chunks/utils-UnnCNxc8.js.map +0 -1
- package/dist/studio/server/chunks/utils2-2iR6NHZC.js +0 -187
- package/dist/studio/server/chunks/utils2-2iR6NHZC.js.map +0 -1
- package/dist/studio/server/index.js +0 -5897
- package/dist/studio/server/index.js.map +0 -1
- package/dist/studio/server/manifest.js +0 -197
- package/dist/studio/server/manifest.js.map +0 -1
- package/dist/studio/shims.js +0 -32
package/dist/cli/index.js
CHANGED
|
File without changes
|
package/dist/cli/sql/schema.sql
CHANGED
|
@@ -94,12 +94,19 @@ CREATE TABLE images (
|
|
|
94
94
|
CREATE TABLE image_variants (
|
|
95
95
|
id UUID PRIMARY KEY DEFAULT uuidv7(),
|
|
96
96
|
_image UUID NOT NULL REFERENCES images(id) ON DELETE CASCADE,
|
|
97
|
-
|
|
98
|
-
|
|
97
|
+
|
|
98
|
+
-- Request params (nullable means "auto" / use original)
|
|
99
|
+
req_width INTEGER,
|
|
100
|
+
req_height INTEGER,
|
|
101
|
+
format VARCHAR(10) NOT NULL DEFAULT 'webp',
|
|
102
|
+
quality INTEGER NOT NULL DEFAULT 80,
|
|
103
|
+
|
|
104
|
+
-- Actual output dimensions after resize/crop
|
|
105
|
+
actual_width INTEGER NOT NULL,
|
|
106
|
+
actual_height INTEGER NOT NULL,
|
|
107
|
+
|
|
99
108
|
s3_key VARCHAR(500) NOT NULL UNIQUE,
|
|
100
|
-
|
|
101
|
-
file_size INTEGER NOT NULL,
|
|
102
|
-
UNIQUE (_image, width, height, format)
|
|
109
|
+
file_size INTEGER NOT NULL
|
|
103
110
|
);
|
|
104
111
|
|
|
105
112
|
CREATE TABLE nodes (
|
|
@@ -160,6 +167,15 @@ CREATE INDEX idx_images_caption_gin ON images USING GIN (caption);
|
|
|
160
167
|
|
|
161
168
|
CREATE INDEX idx_image_variants_image ON image_variants(_image);
|
|
162
169
|
|
|
170
|
+
-- Unique constraint for variant lookup (COALESCE handles nullable req_width/req_height)
|
|
171
|
+
CREATE UNIQUE INDEX idx_image_variants_params ON image_variants (
|
|
172
|
+
_image,
|
|
173
|
+
COALESCE(req_width, 0),
|
|
174
|
+
COALESCE(req_height, 0),
|
|
175
|
+
format,
|
|
176
|
+
quality
|
|
177
|
+
);
|
|
178
|
+
|
|
163
179
|
CREATE INDEX idx_nodes_collection ON nodes(_collection);
|
|
164
180
|
CREATE INDEX idx_nodes_template ON nodes(_template);
|
|
165
181
|
CREATE INDEX idx_nodes_node_type ON nodes(_node_type);
|
|
@@ -5,7 +5,11 @@ export declare function imageVariants(db: DB): {
|
|
|
5
5
|
findById(id: string): Promise<ImageVariant | null>;
|
|
6
6
|
findByImage(imageId: string): Promise<ImageVariant[]>;
|
|
7
7
|
findByS3Key(s3Key: string): Promise<ImageVariant | null>;
|
|
8
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Find variant by request parameters.
|
|
10
|
+
* Uses COALESCE to match null values (which represent "auto" dimensions).
|
|
11
|
+
*/
|
|
12
|
+
findByParams(imageId: string, reqWidth: number | null, reqHeight: number | null, format: string, quality: number): Promise<ImageVariant | null>;
|
|
9
13
|
create(data: ImageVariantInsert): Promise<ImageVariant>;
|
|
10
14
|
update(id: string, data: ImageVariantUpdate): Promise<ImageVariant | null>;
|
|
11
15
|
delete(id: string): Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-variants.d.ts","sourceRoot":"","sources":["../../../src/driver/crud/image-variants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAExF,wBAAgB,aAAa,CAAC,EAAE,EAAE,EAAE;eAEf,OAAO,CAAC,YAAY,EAAE,CAAC;iBAKrB,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;yBAK7B,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;uBAQlC,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"image-variants.d.ts","sourceRoot":"","sources":["../../../src/driver/crud/image-variants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAExF,wBAAgB,aAAa,CAAC,EAAE,EAAE,EAAE;eAEf,OAAO,CAAC,YAAY,EAAE,CAAC;iBAKrB,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;yBAK7B,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;uBAQlC,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAQ9D;;;OAGG;0BAEQ,MAAM,YACL,MAAM,GAAG,IAAI,aACZ,MAAM,GAAG,IAAI,UAChB,MAAM,WACL,MAAM,GACd,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;iBAaZ,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;eAsB5C,MAAM,QAAQ,kBAAkB,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;eAoD/D,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;2BAKb,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;EAKxD"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export function imageVariants(db) {
|
|
2
2
|
return {
|
|
3
3
|
async findAll() {
|
|
4
|
-
const result = await db.query('SELECT * FROM image_variants ORDER BY
|
|
4
|
+
const result = await db.query('SELECT * FROM image_variants ORDER BY actual_width, actual_height');
|
|
5
5
|
return result.rows;
|
|
6
6
|
},
|
|
7
7
|
async findById(id) {
|
|
@@ -9,20 +9,42 @@ export function imageVariants(db) {
|
|
|
9
9
|
return result.rows[0] ?? null;
|
|
10
10
|
},
|
|
11
11
|
async findByImage(imageId) {
|
|
12
|
-
const result = await db.query('SELECT * FROM image_variants WHERE _image = $1 ORDER BY
|
|
12
|
+
const result = await db.query('SELECT * FROM image_variants WHERE _image = $1 ORDER BY actual_width, actual_height', [imageId]);
|
|
13
13
|
return result.rows;
|
|
14
14
|
},
|
|
15
15
|
async findByS3Key(s3Key) {
|
|
16
16
|
const result = await db.query('SELECT * FROM image_variants WHERE s3_key = $1', [s3Key]);
|
|
17
17
|
return result.rows[0] ?? null;
|
|
18
18
|
},
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
/**
|
|
20
|
+
* Find variant by request parameters.
|
|
21
|
+
* Uses COALESCE to match null values (which represent "auto" dimensions).
|
|
22
|
+
*/
|
|
23
|
+
async findByParams(imageId, reqWidth, reqHeight, format, quality) {
|
|
24
|
+
const result = await db.query(`SELECT * FROM image_variants
|
|
25
|
+
WHERE _image = $1
|
|
26
|
+
AND COALESCE(req_width, 0) = COALESCE($2, 0)
|
|
27
|
+
AND COALESCE(req_height, 0) = COALESCE($3, 0)
|
|
28
|
+
AND format = $4
|
|
29
|
+
AND quality = $5`, [imageId, reqWidth, reqHeight, format, quality]);
|
|
21
30
|
return result.rows[0] ?? null;
|
|
22
31
|
},
|
|
23
32
|
async create(data) {
|
|
24
|
-
const result = await db.query(`INSERT INTO image_variants (
|
|
25
|
-
|
|
33
|
+
const result = await db.query(`INSERT INTO image_variants (
|
|
34
|
+
_image, req_width, req_height, format, quality,
|
|
35
|
+
actual_width, actual_height, s3_key, file_size
|
|
36
|
+
)
|
|
37
|
+
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) RETURNING *`, [
|
|
38
|
+
data._image,
|
|
39
|
+
data.req_width,
|
|
40
|
+
data.req_height,
|
|
41
|
+
data.format,
|
|
42
|
+
data.quality,
|
|
43
|
+
data.actual_width,
|
|
44
|
+
data.actual_height,
|
|
45
|
+
data.s3_key,
|
|
46
|
+
data.file_size,
|
|
47
|
+
]);
|
|
26
48
|
return result.rows[0];
|
|
27
49
|
},
|
|
28
50
|
async update(id, data) {
|
|
@@ -33,22 +55,34 @@ export function imageVariants(db) {
|
|
|
33
55
|
fields.push(`_image = $${idx++}`);
|
|
34
56
|
values.push(data._image);
|
|
35
57
|
}
|
|
36
|
-
if (data.
|
|
37
|
-
fields.push(`
|
|
38
|
-
values.push(data.
|
|
58
|
+
if (data.req_width !== undefined) {
|
|
59
|
+
fields.push(`req_width = $${idx++}`);
|
|
60
|
+
values.push(data.req_width);
|
|
39
61
|
}
|
|
40
|
-
if (data.
|
|
41
|
-
fields.push(`
|
|
42
|
-
values.push(data.
|
|
43
|
-
}
|
|
44
|
-
if (data.s3_key !== undefined) {
|
|
45
|
-
fields.push(`s3_key = $${idx++}`);
|
|
46
|
-
values.push(data.s3_key);
|
|
62
|
+
if (data.req_height !== undefined) {
|
|
63
|
+
fields.push(`req_height = $${idx++}`);
|
|
64
|
+
values.push(data.req_height);
|
|
47
65
|
}
|
|
48
66
|
if (data.format !== undefined) {
|
|
49
67
|
fields.push(`format = $${idx++}`);
|
|
50
68
|
values.push(data.format);
|
|
51
69
|
}
|
|
70
|
+
if (data.quality !== undefined) {
|
|
71
|
+
fields.push(`quality = $${idx++}`);
|
|
72
|
+
values.push(data.quality);
|
|
73
|
+
}
|
|
74
|
+
if (data.actual_width !== undefined) {
|
|
75
|
+
fields.push(`actual_width = $${idx++}`);
|
|
76
|
+
values.push(data.actual_width);
|
|
77
|
+
}
|
|
78
|
+
if (data.actual_height !== undefined) {
|
|
79
|
+
fields.push(`actual_height = $${idx++}`);
|
|
80
|
+
values.push(data.actual_height);
|
|
81
|
+
}
|
|
82
|
+
if (data.s3_key !== undefined) {
|
|
83
|
+
fields.push(`s3_key = $${idx++}`);
|
|
84
|
+
values.push(data.s3_key);
|
|
85
|
+
}
|
|
52
86
|
if (data.file_size !== undefined) {
|
|
53
87
|
fields.push(`file_size = $${idx++}`);
|
|
54
88
|
values.push(data.file_size);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-variants.js","sourceRoot":"","sources":["../../../src/driver/crud/image-variants.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,aAAa,CAAC,EAAM;IAClC,OAAO;QACL,KAAK,CAAC,OAAO;YACX,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"image-variants.js","sourceRoot":"","sources":["../../../src/driver/crud/image-variants.ts"],"names":[],"mappings":"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"}
|
|
@@ -83,7 +83,7 @@ export declare function createCrud(db: DB): {
|
|
|
83
83
|
findById(id: string): Promise<import("../types.js").ImageVariant | null>;
|
|
84
84
|
findByImage(imageId: string): Promise<import("../types.js").ImageVariant[]>;
|
|
85
85
|
findByS3Key(s3Key: string): Promise<import("../types.js").ImageVariant | null>;
|
|
86
|
-
|
|
86
|
+
findByParams(imageId: string, reqWidth: number | null, reqHeight: number | null, format: string, quality: number): Promise<import("../types.js").ImageVariant | null>;
|
|
87
87
|
create(data: import("../types.js").ImageVariantInsert): Promise<import("../types.js").ImageVariant>;
|
|
88
88
|
update(id: string, data: import("../types.js").ImageVariantUpdate): Promise<import("../types.js").ImageVariant | null>;
|
|
89
89
|
delete(id: string): Promise<boolean>;
|
|
@@ -3,8 +3,8 @@ import type { S3Config } from './client.js';
|
|
|
3
3
|
import type { Crud } from '../crud/index.js';
|
|
4
4
|
import type { Image, ImageVariant } from '../types.js';
|
|
5
5
|
export interface VariantOptions {
|
|
6
|
-
width?: number;
|
|
7
|
-
height?: number;
|
|
6
|
+
width?: number | null;
|
|
7
|
+
height?: number | null;
|
|
8
8
|
format?: 'webp' | 'jpeg' | 'png';
|
|
9
9
|
quality?: number;
|
|
10
10
|
}
|
|
@@ -26,9 +26,10 @@ export declare function createImageService(s3: S3Client, config: S3Config, crud:
|
|
|
26
26
|
*/
|
|
27
27
|
getUrl(imageId: string, options?: VariantOptions): Promise<string>;
|
|
28
28
|
/**
|
|
29
|
-
* Generate a variant for an image
|
|
29
|
+
* Generate a variant for an image.
|
|
30
|
+
* Calculates optimal dimensions based on request and original image size.
|
|
30
31
|
*/
|
|
31
|
-
generateVariant(image: Image,
|
|
32
|
+
generateVariant(image: Image, reqWidth: number | null, reqHeight: number | null, format: "webp" | "jpeg" | "png", quality: number): Promise<ImageVariant>;
|
|
32
33
|
/**
|
|
33
34
|
* Delete an image and all its variants from S3
|
|
34
35
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../../../src/driver/s3/images.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAA2D,MAAM,oBAAoB,CAAC;AAQvG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEvD,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../../../src/driver/s3/images.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAA2D,MAAM,oBAAoB,CAAC;AAQvG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEvD,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,KAAK,CAAC;CACd;AAkED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI;IAwBzE;;OAEG;iBACgB,MAAM,YAAY,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAoCnE;;;;;;;OAOG;oBACmB,MAAM,YAAY,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAyDxE;;;OAGG;2BAEM,KAAK,YACF,MAAM,GAAG,IAAI,aACZ,MAAM,GAAG,IAAI,UAChB,MAAM,GAAG,MAAM,GAAG,KAAK,WACtB,MAAM,GACd,OAAO,CAAC,YAAY,CAAC;IA0DxB;;OAEG;oBACmB,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB5C;;OAEG;wBACiB,MAAM,GAAG,MAAM;EAItC;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
|
package/dist/driver/s3/images.js
CHANGED
|
@@ -5,13 +5,66 @@ async function getSharp() {
|
|
|
5
5
|
const sharp = await import('sharp');
|
|
6
6
|
return sharp.default;
|
|
7
7
|
}
|
|
8
|
+
/**
|
|
9
|
+
* Calculate output dimensions based on request and original image.
|
|
10
|
+
*
|
|
11
|
+
* Rules:
|
|
12
|
+
* - Both null: use original dimensions
|
|
13
|
+
* - Width only: scale proportionally, height auto
|
|
14
|
+
* - Height only: scale proportionally, width auto
|
|
15
|
+
* - Both specified: crop/cover to exact aspect ratio
|
|
16
|
+
* - No upscaling: clamp to largest possible within original
|
|
17
|
+
*/
|
|
18
|
+
function calculateDimensions(original, reqWidth, reqHeight) {
|
|
19
|
+
const origW = original.width;
|
|
20
|
+
const origH = original.height;
|
|
21
|
+
const origAspect = origW / origH;
|
|
22
|
+
// Both null: use original dimensions
|
|
23
|
+
if (reqWidth === null && reqHeight === null) {
|
|
24
|
+
return { width: origW, height: origH, fit: 'inside' };
|
|
25
|
+
}
|
|
26
|
+
// Width only: scale proportionally
|
|
27
|
+
if (reqWidth !== null && reqHeight === null) {
|
|
28
|
+
// Clamp width to original (no upscaling)
|
|
29
|
+
const w = Math.min(reqWidth, origW);
|
|
30
|
+
const h = Math.round(w / origAspect);
|
|
31
|
+
return { width: w, height: h, fit: 'inside' };
|
|
32
|
+
}
|
|
33
|
+
// Height only: scale proportionally
|
|
34
|
+
if (reqWidth === null && reqHeight !== null) {
|
|
35
|
+
// Clamp height to original (no upscaling)
|
|
36
|
+
const h = Math.min(reqHeight, origH);
|
|
37
|
+
const w = Math.round(h * origAspect);
|
|
38
|
+
return { width: w, height: h, fit: 'inside' };
|
|
39
|
+
}
|
|
40
|
+
// Both specified: crop/cover mode
|
|
41
|
+
// Find the largest crop of target aspect ratio that fits within original
|
|
42
|
+
const targetAspect = reqWidth / reqHeight;
|
|
43
|
+
let maxCropW;
|
|
44
|
+
let maxCropH;
|
|
45
|
+
if (targetAspect > origAspect) {
|
|
46
|
+
// Target is wider than original - width-limited
|
|
47
|
+
maxCropW = origW;
|
|
48
|
+
maxCropH = Math.round(origW / targetAspect);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
// Target is taller than original - height-limited
|
|
52
|
+
maxCropH = origH;
|
|
53
|
+
maxCropW = Math.round(origH * targetAspect);
|
|
54
|
+
}
|
|
55
|
+
// Clamp to requested size (no upscaling)
|
|
56
|
+
const finalW = Math.min(reqWidth, maxCropW);
|
|
57
|
+
const finalH = Math.min(reqHeight, maxCropH);
|
|
58
|
+
return { width: finalW, height: finalH, fit: 'cover' };
|
|
59
|
+
}
|
|
8
60
|
export function createImageService(s3, config, crud) {
|
|
9
61
|
/**
|
|
10
62
|
* Generate variant S3 key from options
|
|
11
63
|
*/
|
|
12
|
-
function getVariantKey(imageId,
|
|
13
|
-
const
|
|
14
|
-
|
|
64
|
+
function getVariantKey(imageId, reqWidth, reqHeight, format, quality) {
|
|
65
|
+
const w = reqWidth ?? 'auto';
|
|
66
|
+
const h = reqHeight ?? 'auto';
|
|
67
|
+
return `images/${imageId}/w${w}_h${h}_q${quality}.${format}`;
|
|
15
68
|
}
|
|
16
69
|
/**
|
|
17
70
|
* Get S3 URL for an S3 key
|
|
@@ -67,32 +120,32 @@ export function createImageService(s3, config, crud) {
|
|
|
67
120
|
if (!image) {
|
|
68
121
|
throw new Error(`Image not found: ${imageId}`);
|
|
69
122
|
}
|
|
70
|
-
//
|
|
71
|
-
|
|
123
|
+
// Apply defaults
|
|
124
|
+
const reqWidth = options?.width ?? null;
|
|
125
|
+
const reqHeight = options?.height ?? null;
|
|
126
|
+
const format = options?.format ?? 'webp';
|
|
127
|
+
const quality = options?.quality ?? 80;
|
|
128
|
+
// If no transformation needed (original format, full quality, no resize), return original
|
|
129
|
+
if (reqWidth === null &&
|
|
130
|
+
reqHeight === null &&
|
|
131
|
+
format === image.format &&
|
|
132
|
+
quality === 100) {
|
|
72
133
|
return getS3Url(image.s3_key);
|
|
73
134
|
}
|
|
74
|
-
//
|
|
75
|
-
const
|
|
76
|
-
width: options.width ?? image.width,
|
|
77
|
-
height: options.height ?? image.height,
|
|
78
|
-
format: options.format ?? image.format,
|
|
79
|
-
quality: options.quality ?? 80,
|
|
80
|
-
};
|
|
81
|
-
// Check if variant already exists in DB by s3_key (uses requested dimensions)
|
|
82
|
-
const variantKey = getVariantKey(imageId, fullOptions);
|
|
83
|
-
const existingVariant = await crud.imageVariants.findByS3Key(variantKey);
|
|
135
|
+
// Check if variant already exists in DB
|
|
136
|
+
const existingVariant = await crud.imageVariants.findByParams(imageId, reqWidth, reqHeight, format, quality);
|
|
84
137
|
if (existingVariant) {
|
|
85
138
|
return getS3Url(existingVariant.s3_key);
|
|
86
139
|
}
|
|
87
140
|
// Generate variant on-demand (with race condition handling)
|
|
88
141
|
try {
|
|
89
|
-
const variant = await this.generateVariant(image,
|
|
142
|
+
const variant = await this.generateVariant(image, reqWidth, reqHeight, format, quality);
|
|
90
143
|
return getS3Url(variant.s3_key);
|
|
91
144
|
}
|
|
92
145
|
catch (err) {
|
|
93
146
|
// Handle duplicate key error (race condition - another request created it)
|
|
94
147
|
if (err && typeof err === 'object' && 'code' in err && err.code === '23505') {
|
|
95
|
-
const variant = await crud.imageVariants.
|
|
148
|
+
const variant = await crud.imageVariants.findByParams(imageId, reqWidth, reqHeight, format, quality);
|
|
96
149
|
if (variant) {
|
|
97
150
|
return getS3Url(variant.s3_key);
|
|
98
151
|
}
|
|
@@ -101,11 +154,13 @@ export function createImageService(s3, config, crud) {
|
|
|
101
154
|
}
|
|
102
155
|
},
|
|
103
156
|
/**
|
|
104
|
-
* Generate a variant for an image
|
|
157
|
+
* Generate a variant for an image.
|
|
158
|
+
* Calculates optimal dimensions based on request and original image size.
|
|
105
159
|
*/
|
|
106
|
-
async generateVariant(image,
|
|
107
|
-
const { width, height, format, quality } = options;
|
|
160
|
+
async generateVariant(image, reqWidth, reqHeight, format, quality) {
|
|
108
161
|
const sharp = await getSharp();
|
|
162
|
+
// Calculate actual output dimensions
|
|
163
|
+
const { width: actualWidth, height: actualHeight, fit } = calculateDimensions({ width: image.width, height: image.height }, reqWidth, reqHeight);
|
|
109
164
|
// Fetch original from S3
|
|
110
165
|
const response = await s3.send(new GetObjectCommand({
|
|
111
166
|
Bucket: config.bucket,
|
|
@@ -113,7 +168,7 @@ export function createImageService(s3, config, crud) {
|
|
|
113
168
|
}));
|
|
114
169
|
const originalBuffer = Buffer.from(await response.Body.transformToByteArray());
|
|
115
170
|
// Generate variant
|
|
116
|
-
let transformer = sharp(originalBuffer).resize(
|
|
171
|
+
let transformer = sharp(originalBuffer).resize(actualWidth, actualHeight, { fit });
|
|
117
172
|
switch (format) {
|
|
118
173
|
case 'webp':
|
|
119
174
|
transformer = transformer.webp({ quality });
|
|
@@ -126,7 +181,7 @@ export function createImageService(s3, config, crud) {
|
|
|
126
181
|
break;
|
|
127
182
|
}
|
|
128
183
|
const variantBuffer = await transformer.toBuffer();
|
|
129
|
-
const variantKey = getVariantKey(image.id,
|
|
184
|
+
const variantKey = getVariantKey(image.id, reqWidth, reqHeight, format, quality);
|
|
130
185
|
// Upload variant to S3
|
|
131
186
|
await s3.send(new PutObjectCommand({
|
|
132
187
|
Bucket: config.bucket,
|
|
@@ -135,13 +190,15 @@ export function createImageService(s3, config, crud) {
|
|
|
135
190
|
ContentType: `image/${format}`,
|
|
136
191
|
}));
|
|
137
192
|
// Save variant record to DB
|
|
138
|
-
// Store REQUESTED dimensions (not actual output) to match s3_key and lookup
|
|
139
193
|
return crud.imageVariants.create({
|
|
140
194
|
_image: image.id,
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
s3_key: variantKey,
|
|
195
|
+
req_width: reqWidth,
|
|
196
|
+
req_height: reqHeight,
|
|
144
197
|
format,
|
|
198
|
+
quality,
|
|
199
|
+
actual_width: actualWidth,
|
|
200
|
+
actual_height: actualHeight,
|
|
201
|
+
s3_key: variantKey,
|
|
145
202
|
file_size: variantBuffer.length,
|
|
146
203
|
});
|
|
147
204
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"images.js","sourceRoot":"","sources":["../../../src/driver/s3/images.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,gBAAgB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACvG,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,6CAA6C;AAC7C,KAAK,UAAU,QAAQ;IACrB,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;IACpC,OAAO,KAAK,CAAC,OAAO,CAAC;AACvB,CAAC;AAgBD,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"images.js","sourceRoot":"","sources":["../../../src/driver/s3/images.ts"],"names":[],"mappings":"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"}
|
package/dist/driver/types.d.ts
CHANGED
|
@@ -78,10 +78,13 @@ export interface Image {
|
|
|
78
78
|
export interface ImageVariant {
|
|
79
79
|
id: string;
|
|
80
80
|
_image: string;
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
s3_key: string;
|
|
81
|
+
req_width: number | null;
|
|
82
|
+
req_height: number | null;
|
|
84
83
|
format: string;
|
|
84
|
+
quality: number;
|
|
85
|
+
actual_width: number;
|
|
86
|
+
actual_height: number;
|
|
87
|
+
s3_key: string;
|
|
85
88
|
file_size: number;
|
|
86
89
|
}
|
|
87
90
|
export interface NodeRelationType {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/driver/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/driver/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wdth,wght@0,75..100,100..700;1,75..100,100..700&display=swap";:root{--base0: #ffffff;--base50: #f2f2f3;--base100: #e6e4e7;--base200: #cdc9cf;--base300: #b4afb6;--base400: #9b949e;--base500: #827986;--base600: #68616b;--base700: #4e4950;--base800: #343036;--base900: #1a181b;--base1000: #000000;--action50: #E6F5FF;--action100: #cfe9fc;--action200: #9eccfa;--action300: #6ea7f7;--action400: #3d7af5;--action500: #0d46f2;--action600: #0a38c2;--action700: #082a91;--action800: #051c61;--action900: #030e30;--success50: hsl(138, 76%, 95%);--success100: hsl(141, 84%, 88%);--success200: hsl(141, 79%, 80%);--success300: hsl(142, 77%, 68%);--success400: hsl(142, 69%, 53%);--success500: hsl(142, 71%, 40%);--success600: hsl(142, 76%, 31%);--success700: hsl(142, 72%, 24%);--success800: hsl(143, 64%, 19%);--success900: hsl(144, 61%, 15%);--warning50: hsl(48, 100%, 96%);--warning100: hsl(48, 96%, 89%);--warning200: hsl(48, 97%, 77%);--warning300: hsl(46, 97%, 65%);--warning400: hsl(43, 96%, 56%);--warning500: hsl(38, 92%, 50%);--warning600: hsl(32, 95%, 44%);--warning700: hsl(26, 90%, 37%);--warning800: hsl(23, 83%, 31%);--warning900: hsl(22, 78%, 26%);--danger50: hsl(0, 90%, 95%);--danger100: hsl(0, 90%, 90%);--danger200: hsl(0, 90%, 80%);--danger300: hsl(0, 90%, 70%);--danger400: hsl(0, 90%, 60%);--danger500: hsl(0, 90%, 50%);--danger600: hsl(0, 90%, 40%);--danger700: hsl(0, 90%, 30%);--danger800: hsl(0, 90%, 20%);--danger900: hsl(0, 90%, 10%);--info50: hsl(204, 100%, 97%);--info100: hsl(204, 94%, 94%);--info200: hsl(201, 94%, 86%);--info300: hsl(199, 95%, 74%);--info400: hsl(198, 93%, 60%);--info500: hsl(199, 89%, 48%);--info600: hsl(200, 98%, 39%);--info700: hsl(201, 96%, 32%);--info800: hsl(201, 90%, 27%);--info900: hsl(202, 80%, 24%);--focus50: #FFFBE5;--focus100: #fff7cc;--focus200: #ffee99;--focus300: #ffe566;--focus400: #ffdd33;--focus500: #ffcc00;--focus600: #cc9900;--focus700: #996b00;--focus800: #664200;--focus900: #331f00;--accent50: hsl(25, 30%, 95%);--accent100: hsl(25, 30%, 90%);--accent150: hsl(25, 30%, 85%);--accent200: hsl(25, 30%, 80%);--accent300: hsl(25, 30%, 70%);--accent400: hsl(25, 30%, 60%);--accent500: hsl(25, 30%, 50%);--accent600: hsl(25, 30%, 40%);--accent700: hsl(25, 30%, 30%);--accent800: hsl(25, 30%, 20%);--accent900: hsl(25, 30%, 15%);--accent950: hsl(25, 30%, 10%)}*{box-sizing:border-box}html{font-family:IBM Plex Sans,sans-serif;font-optical-sizing:auto;font-weight:400;font-style:normal;font-variation-settings:"wdth" 100;color:var(--base1000)}body{margin:0;padding:0}button{font:inherit;background:none;border:none;padding:0;margin:0;cursor:pointer}input,textarea,select{font:inherit;color:inherit}*:focus-visible{outline:2px solid var(--action500);outline-offset:2px}.app-layout.svelte-12qhfyh{height:100vh;background:var(--base50);display:flex;flex-direction:column;overflow:hidden}.app-content.svelte-12qhfyh{width:100%;flex:1;overflow:auto;min-height:0}.right-controls.svelte-12qhfyh{display:flex;align-items:center;gap:12px}.detailed-mode-label.svelte-12qhfyh{display:flex;align-items:center;gap:4px;font-size:13px;font-weight:500;color:var(--base700);cursor:pointer;-webkit-user-select:none;user-select:none}
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.container.svelte-gnijxc{background-color:var(--base500);height:calc(100vh - 40px);display:flex;overflow:hidden;gap:1px}.leftArea.svelte-gnijxc{width:250px;background-color:var(--base200);height:100%;flex:0 0 auto;display:flex;flex-direction:column;gap:1px}.leftHeader.svelte-gnijxc{background-color:var(--base100);height:20px;padding:0 8px;display:flex;align-items:center;font-size:11px;font-weight:600;color:var(--base700);text-transform:uppercase}.leftContent.svelte-gnijxc{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:2px;background-color:var(--base0);padding:4px}.leftFooter.svelte-gnijxc{background-color:var(--base0);padding:4px}.empty.svelte-gnijxc{padding:8px 10px;color:var(--base600);font-size:13px}.createForm.svelte-gnijxc{display:flex}
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.container.svelte-1if1h51{background-color:var(--base500);height:calc(100vh - 40px);display:flex;overflow:hidden;gap:1px}.leftArea.svelte-1if1h51{width:250px;background-color:var(--base200);height:100%;flex:0 0 auto;display:flex;flex-direction:column;gap:1px}.leftHeader.svelte-1if1h51{background-color:var(--base100);height:20px;padding:0 8px;display:flex;align-items:center;font-size:11px;font-weight:600;color:var(--base700);text-transform:uppercase}.leftContent.svelte-1if1h51{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:2px;background-color:var(--base0);padding:4px}.leftFooter.svelte-1if1h51{background-color:var(--base0);padding:4px}.empty.svelte-1if1h51{padding:8px 10px;color:var(--base600);font-size:13px}.createForm.svelte-1if1h51{display:flex}
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.container.svelte-1uha8ag{padding:2rem;text-align:center;color:var(--base600)}
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.placeholder.svelte-hcdhn3{display:flex;align-items:center;justify-content:center;height:100%;padding:40px}.message.svelte-hcdhn3{color:var(--base600);font-size:14px;text-align:center;max-width:400px}
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.contentFormWrapper.svelte-17bp990{display:flex;gap:8px;align-items:flex-start;width:100%}.inputWrapper.svelte-17bp990{flex:1}.textListWrapper.svelte-17bp990{display:flex;flex-direction:column;gap:8px;width:100%}.listItemRow.svelte-17bp990{display:flex;gap:8px;align-items:center}.titledListWrapper.svelte-17bp990{display:flex;flex-direction:column;gap:12px;width:100%}.titledListItemCard.svelte-17bp990{border:1px solid var(--base200);border-radius:4px;padding:12px;background-color:var(--base50);display:flex;flex-direction:column;gap:8px}.titledListItemHeader.svelte-17bp990{display:flex;align-items:center;justify-content:space-between;gap:8px}.itemNumber.svelte-17bp990{font-size:14px;font-weight:600;color:var(--base500)}.titledListItemFields.svelte-17bp990{display:flex;flex-direction:column;gap:8px}.relationsWrapper.svelte-lcvot5{display:flex;flex-direction:column;gap:16px;width:100%}.sectionHeader.svelte-lcvot5{display:flex;align-items:center;justify-content:space-between;gap:16px}.sectionTitle.svelte-lcvot5{font-size:14px;font-weight:600;color:var(--base700)}.createRelationForm.svelte-lcvot5{display:flex;flex-direction:column;gap:12px;padding:16px;background-color:var(--base50);border:1px solid var(--base200);border-radius:4px}.previewText.svelte-lcvot5{padding:12px;background-color:var(--base100);border:1px solid var(--base300);border-radius:4px;font-size:14px;font-weight:600;color:var(--base700);text-align:center}.formRow.svelte-lcvot5{display:flex;gap:12px;align-items:flex-end}.formField.svelte-lcvot5{display:flex;flex-direction:column;gap:4px;flex:1}.label.svelte-lcvot5{font-size:12px;font-weight:500;color:var(--base600)}.formActions.svelte-lcvot5{display:flex;gap:8px;justify-content:flex-end}.relationsList.svelte-lcvot5{display:flex;flex-direction:column;gap:8px}.relationItem.svelte-lcvot5{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;background-color:var(--base50);border:1px solid var(--base200);border-radius:4px}.relationText.svelte-lcvot5{display:flex;align-items:center;gap:8px;font-size:14px}.nodeCode.svelte-lcvot5{font-weight:600;color:var(--base700)}.relationCode.svelte-lcvot5{color:var(--base500);font-style:italic}.emptyState.svelte-lcvot5{padding:16px;text-align:center;color:var(--base400);font-size:14px}.rightArea.svelte-15y8zm1{width:700px;background-color:var(--base100);flex:0 0 auto;display:flex;flex-direction:column;overflow-y:auto;gap:1px}.header.svelte-15y8zm1{display:flex;align-items:center;gap:16px;padding:16px 32px;background-color:var(--base0)}hr.svelte-15y8zm1{border:none;border-top:1px solid var(--base200);margin:16px 0}.title.svelte-15y8zm1{font-size:18px;font-weight:600;margin:0;color:var(--base900)}.editor.svelte-15y8zm1{display:grid;grid-template-columns:1fr;grid-auto-rows:max-content;gap:16px;padding:32px;background-color:var(--base0);flex:1}.row.svelte-15y8zm1{display:grid;grid-template-columns:1fr 1fr;gap:16px}.metaRow.svelte-15y8zm1{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:16px}.sectionHeader.svelte-15y8zm1{display:flex;align-items:center;justify-content:space-between;gap:16px}.sectionTitle.svelte-15y8zm1{font-size:18px;font-weight:600;color:var(--base900)}.blocksList.svelte-15y8zm1{display:flex;flex-direction:column;gap:8px}.nestedBlocks.svelte-15y8zm1{display:flex;flex-direction:column;gap:4px;width:100%}
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.rightArea.svelte-kxwh35{width:700px;background-color:var(--base100);flex:0 0 auto;display:flex;flex-direction:column;overflow-y:auto;gap:1px}.header.svelte-kxwh35{display:flex;align-items:center;gap:16px;padding:16px 32px;background-color:var(--base0)}.title.svelte-kxwh35{font-size:18px;font-weight:600;margin:0;color:var(--base900)}.editor.svelte-kxwh35{display:grid;grid-template-columns:1fr;grid-auto-rows:max-content;gap:16px;padding:32px;background-color:var(--base0);flex:1}hr.svelte-kxwh35{border:none;border-top:1px solid var(--base200);margin:8px 0}
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.rightArea.svelte-83jkmb{width:700px;background-color:var(--base100);flex:0 0 auto;display:flex;flex-direction:column;overflow-y:auto;gap:1px}.header.svelte-83jkmb{display:flex;align-items:center;gap:16px;padding:16px 32px;background-color:var(--base0)}.title.svelte-83jkmb{font-size:18px;font-weight:600;margin:0;color:var(--base900)}.editor.svelte-83jkmb{display:grid;grid-template-columns:1fr;grid-auto-rows:max-content;gap:16px;padding:32px;background-color:var(--base0);flex:1}.row.svelte-83jkmb{display:grid;grid-template-columns:1fr 1fr;gap:16px}hr.svelte-83jkmb{border:none;border-top:1px solid var(--base200);margin:8px 0}
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.rightArea.svelte-1d51g44{width:700px;background-color:var(--base100);flex:0 0 auto;display:flex;flex-direction:column;overflow-y:auto;gap:1px}.header.svelte-1d51g44{display:flex;align-items:center;gap:16px;padding:16px 32px;background-color:var(--base0)}hr.svelte-1d51g44{border:none;border-top:1px solid var(--base200);margin:16px 0}.title.svelte-1d51g44{font-size:18px;font-weight:600;margin:0;color:var(--base900)}.editor.svelte-1d51g44{display:grid;grid-template-columns:1fr;grid-auto-rows:max-content;gap:16px;padding:32px;background-color:var(--base0);flex:1}.row.svelte-1d51g44{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}.translationRow.svelte-1d51g44{display:grid;grid-template-columns:1fr 1fr;gap:16px}
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.mainContent.svelte-vbdj49{background-color:var(--base0);width:100%;padding:32px}.emptyMessage.svelte-vbdj49{color:var(--base600);font-size:14px}
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.mainContent.svelte-qb2uup{background-color:var(--base0);width:100%;padding:32px}.editor.svelte-qb2uup{max-width:520px;display:grid;grid-template-columns:1fr;gap:16px}.actions.svelte-qb2uup{display:flex;gap:8px}.error.svelte-qb2uup{color:var(--danger500);font-size:14px}hr.svelte-qb2uup{border:none;border-top:1px solid var(--base200);margin:8px 0}
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.container.svelte-1cswnon{height:calc(100vh - 40px);display:flex;flex-direction:column;background-color:var(--base0);overflow:hidden}.header.svelte-1cswnon{display:flex;justify-content:space-between;align-items:center;padding:24px 32px;border-bottom:1px solid var(--base200)}h1.svelte-1cswnon{font-size:24px;font-weight:600;color:var(--base900);margin:0}.tabContent.svelte-1cswnon{flex:1;display:flex;flex-direction:column;height:100%;margin:-24px}.uploadSection.svelte-1cswnon{padding:16px 32px;border-bottom:1px solid var(--base200);display:flex;gap:12px;align-items:center;flex-shrink:0}.uploadButton.svelte-1cswnon{padding:10px 20px;background-color:var(--action500);color:var(--base0);border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:background-color .2s}.uploadButton.svelte-1cswnon:hover:not(.uploading){background-color:var(--action600)}.uploadButton.uploading.svelte-1cswnon{opacity:.6;cursor:not-allowed}.emptyState.svelte-1cswnon{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--base600);gap:8px}.emptyState.svelte-1cswnon p:where(.svelte-1cswnon){margin:0;font-size:16px}.emptyState.svelte-1cswnon .hint:where(.svelte-1cswnon){font-size:14px;color:var(--base500)}.thumbnailGrid.svelte-1cswnon{flex:1;padding:24px 32px;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;align-content:start;min-height:0}.thumbnail.svelte-1cswnon{aspect-ratio:1;border:2px solid var(--base200);border-radius:8px;overflow:hidden;cursor:pointer;background-color:var(--base50);transition:all .2s;padding:0;display:flex;align-items:center;justify-content:center}.thumbnail.svelte-1cswnon:hover{border-color:var(--action400);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.thumbnail.selected.svelte-1cswnon{border-color:var(--action500);border-width:3px;box-shadow:0 0 0 3px var(--action100)}.thumbnail.svelte-1cswnon img:where(.svelte-1cswnon){width:100%;height:100%;object-fit:cover}.noPreview.svelte-1cswnon{color:var(--base400);font-size:13px}.presetsHeader.svelte-1cswnon{padding:0 8px 16px;border-bottom:1px solid var(--base200)}.presetsHeader.svelte-1cswnon h2:where(.svelte-1cswnon){margin:0 0 8px;font-size:18px;font-weight:600;color:var(--base900)}.description.svelte-1cswnon{margin:0;font-size:14px;color:var(--base600)}.presetsList.svelte-1cswnon{padding:16px 8px}table.svelte-1cswnon{width:100%;border-collapse:collapse}thead.svelte-1cswnon{background-color:var(--base50);position:sticky;top:0}th.svelte-1cswnon{text-align:left;padding:12px 16px;font-size:13px;font-weight:600;color:var(--base700);text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--base200)}td.svelte-1cswnon{padding:16px;border-bottom:1px solid var(--base100);font-size:14px;color:var(--base800)}tbody.svelte-1cswnon tr:where(.svelte-1cswnon):hover{background-color:var(--base50)}.badge.svelte-1cswnon{display:inline-block;padding:2px 8px;margin-left:8px;background-color:var(--action100);color:var(--action700);border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase}
|
|
Binary file
|
|
Binary file
|