squidcloudctl 1.3.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +72 -0
- package/dist/auth-revoke-LTTGYMMO.js +2 -0
- package/dist/auth-revoke-LTTGYMMO.js.map +1 -0
- package/dist/auth-sessions-ZVZIABS6.js +2 -0
- package/dist/auth-sessions-ZVZIABS6.js.map +1 -0
- package/dist/auth-status-X4HCOXHF.js +2 -0
- package/dist/auth-status-X4HCOXHF.js.map +1 -0
- package/dist/bin/squidcloud.js +189 -3
- package/dist/bin/squidcloud.js.map +1 -1
- package/dist/chunk-2RAH2YAY.js +6 -0
- package/dist/chunk-2RAH2YAY.js.map +1 -0
- package/dist/chunk-3E23ZFCV.js +2 -0
- package/dist/chunk-3E23ZFCV.js.map +1 -0
- package/dist/chunk-3JD6INFN.js +2 -0
- package/dist/chunk-3JD6INFN.js.map +1 -0
- package/dist/chunk-3XXAN3BP.js +2 -0
- package/dist/chunk-3XXAN3BP.js.map +1 -0
- package/dist/chunk-43FK57CR.js +2 -0
- package/dist/chunk-43FK57CR.js.map +1 -0
- package/dist/chunk-4625KLCT.js +2 -0
- package/dist/chunk-4625KLCT.js.map +1 -0
- package/dist/chunk-4EBJSKII.js +2 -0
- package/dist/chunk-4EBJSKII.js.map +1 -0
- package/dist/chunk-4FZZ3I76.js +3 -0
- package/dist/chunk-4FZZ3I76.js.map +1 -0
- package/dist/chunk-4GV6L47P.js +2 -0
- package/dist/chunk-4GV6L47P.js.map +1 -0
- package/dist/chunk-4VH6P4GC.js +2 -0
- package/dist/chunk-4VH6P4GC.js.map +1 -0
- package/dist/chunk-4VMT6FXR.js +2 -0
- package/dist/chunk-4VMT6FXR.js.map +1 -0
- package/dist/chunk-5JWZKMAI.js +2 -0
- package/dist/chunk-5JWZKMAI.js.map +1 -0
- package/dist/chunk-5TYVWTHC.js +2 -0
- package/dist/chunk-5TYVWTHC.js.map +1 -0
- package/dist/chunk-5XSOEZ7F.js +2 -0
- package/dist/chunk-5XSOEZ7F.js.map +1 -0
- package/dist/chunk-632C2FZM.js +2 -0
- package/dist/chunk-632C2FZM.js.map +1 -0
- package/dist/chunk-6IXURJIU.js +2 -0
- package/dist/chunk-6IXURJIU.js.map +1 -0
- package/dist/chunk-6LLJ6P3U.js +2 -0
- package/dist/chunk-6LLJ6P3U.js.map +1 -0
- package/dist/chunk-7JVXW7C4.js +2 -0
- package/dist/chunk-7JVXW7C4.js.map +1 -0
- package/dist/chunk-7TMB3QXF.js +2 -0
- package/dist/chunk-7TMB3QXF.js.map +1 -0
- package/dist/chunk-ADVALEDT.js +2 -0
- package/dist/chunk-ADVALEDT.js.map +1 -0
- package/dist/chunk-AN6SA3TI.js +2 -0
- package/dist/chunk-AN6SA3TI.js.map +1 -0
- package/dist/chunk-AZ4774YQ.js +2 -0
- package/dist/chunk-AZ4774YQ.js.map +1 -0
- package/dist/chunk-BDRSOUY3.js +2 -0
- package/dist/chunk-BDRSOUY3.js.map +1 -0
- package/dist/chunk-BDUD2TSS.js +2 -0
- package/dist/chunk-BDUD2TSS.js.map +1 -0
- package/dist/chunk-BGOM6C6D.js +2 -0
- package/dist/chunk-BGOM6C6D.js.map +1 -0
- package/dist/chunk-BUG4O26P.js +2 -0
- package/dist/chunk-BUG4O26P.js.map +1 -0
- package/dist/chunk-BUKRJMQ5.js +2 -0
- package/dist/chunk-BUKRJMQ5.js.map +1 -0
- package/dist/chunk-C7M6KZGB.js +2 -0
- package/dist/chunk-C7M6KZGB.js.map +1 -0
- package/dist/chunk-CRT5ANG2.js +2 -0
- package/dist/chunk-CRT5ANG2.js.map +1 -0
- package/dist/chunk-E26CRSCS.js +2 -0
- package/dist/chunk-E26CRSCS.js.map +1 -0
- package/dist/chunk-E5PJTTE5.js +2 -0
- package/dist/chunk-E5PJTTE5.js.map +1 -0
- package/dist/chunk-E6UJ45WU.js +2 -0
- package/dist/chunk-E6UJ45WU.js.map +1 -0
- package/dist/chunk-EDD2NCQT.js +2 -0
- package/dist/chunk-EDD2NCQT.js.map +1 -0
- package/dist/chunk-FJ5D3ELC.js +2 -0
- package/dist/chunk-FJ5D3ELC.js.map +1 -0
- package/dist/chunk-GFTSNOCG.js +5 -0
- package/dist/chunk-GFTSNOCG.js.map +1 -0
- package/dist/chunk-GMKCZ2PB.js +2 -0
- package/dist/chunk-GMKCZ2PB.js.map +1 -0
- package/dist/chunk-GRZ7FAK4.js +2 -0
- package/dist/chunk-GRZ7FAK4.js.map +1 -0
- package/dist/chunk-GVYPGCEO.js +2 -0
- package/dist/chunk-GVYPGCEO.js.map +1 -0
- package/dist/chunk-H3FD4YYC.js +2 -0
- package/dist/chunk-H3FD4YYC.js.map +1 -0
- package/dist/chunk-I3DVKNFK.js +2 -0
- package/dist/chunk-I3DVKNFK.js.map +1 -0
- package/dist/chunk-IER3WJEG.js +2 -0
- package/dist/chunk-IER3WJEG.js.map +1 -0
- package/dist/chunk-J5MM66CO.js +2 -0
- package/dist/chunk-J5MM66CO.js.map +1 -0
- package/dist/chunk-K4UZNQFC.js +2 -0
- package/dist/chunk-K4UZNQFC.js.map +1 -0
- package/dist/chunk-KJIMUYAU.js +2 -0
- package/dist/chunk-KJIMUYAU.js.map +1 -0
- package/dist/chunk-KLPKNHXU.js +2 -0
- package/dist/chunk-KLPKNHXU.js.map +1 -0
- package/dist/chunk-KQE3YLI3.js +2 -0
- package/dist/chunk-KQE3YLI3.js.map +1 -0
- package/dist/chunk-KZ7RBLQY.js +2 -0
- package/dist/chunk-KZ7RBLQY.js.map +1 -0
- package/dist/chunk-LDYPQMLZ.js +2 -0
- package/dist/chunk-LDYPQMLZ.js.map +1 -0
- package/dist/chunk-LFPHETWG.js +2 -0
- package/dist/chunk-LFPHETWG.js.map +1 -0
- package/dist/chunk-M6RN7Y3S.js +2 -0
- package/dist/chunk-M6RN7Y3S.js.map +1 -0
- package/dist/chunk-N6QOCJDY.js +2 -0
- package/dist/chunk-N6QOCJDY.js.map +1 -0
- package/dist/chunk-NB4OO3VK.js +2 -0
- package/dist/chunk-NB4OO3VK.js.map +1 -0
- package/dist/chunk-NJC4W2S6.js +2 -0
- package/dist/chunk-NJC4W2S6.js.map +1 -0
- package/dist/chunk-NJCALUUB.js +2 -0
- package/dist/chunk-NJCALUUB.js.map +1 -0
- package/dist/chunk-NS5IBNC2.js +2 -0
- package/dist/chunk-NS5IBNC2.js.map +1 -0
- package/dist/chunk-OCDE2G25.js +2 -0
- package/dist/chunk-OCDE2G25.js.map +1 -0
- package/dist/chunk-OEURGJIH.js +2 -0
- package/dist/chunk-OEURGJIH.js.map +1 -0
- package/dist/chunk-OPZJKTOV.js +2 -0
- package/dist/chunk-OPZJKTOV.js.map +1 -0
- package/dist/chunk-OXJ6DOWC.js +2 -0
- package/dist/chunk-OXJ6DOWC.js.map +1 -0
- package/dist/chunk-P42LDK4T.js +2 -0
- package/dist/chunk-P42LDK4T.js.map +1 -0
- package/dist/chunk-PGDN5F2F.js +2 -0
- package/dist/chunk-PGDN5F2F.js.map +1 -0
- package/dist/chunk-PVZ4PRGM.js +2 -0
- package/dist/chunk-PVZ4PRGM.js.map +1 -0
- package/dist/chunk-QCDCTQU5.js +2 -0
- package/dist/chunk-QCDCTQU5.js.map +1 -0
- package/dist/chunk-QEG6LP5X.js +2 -0
- package/dist/chunk-QEG6LP5X.js.map +1 -0
- package/dist/chunk-QF3NWEHO.js +2 -0
- package/dist/chunk-QF3NWEHO.js.map +1 -0
- package/dist/chunk-QLLHU2RS.js +2 -0
- package/dist/chunk-QLLHU2RS.js.map +1 -0
- package/dist/chunk-R2PV6TY4.js +2 -0
- package/dist/chunk-R2PV6TY4.js.map +1 -0
- package/dist/chunk-RREABTVT.js +2 -0
- package/dist/chunk-RREABTVT.js.map +1 -0
- package/dist/chunk-RRGGKRRS.js +2 -0
- package/dist/chunk-RRGGKRRS.js.map +1 -0
- package/dist/chunk-RYEKRFP5.js +2 -0
- package/dist/chunk-RYEKRFP5.js.map +1 -0
- package/dist/chunk-SBNM6EQO.js +2 -0
- package/dist/chunk-SBNM6EQO.js.map +1 -0
- package/dist/chunk-T6VFW2SW.js +2 -0
- package/dist/chunk-T6VFW2SW.js.map +1 -0
- package/dist/chunk-TAS2JGNI.js +2 -0
- package/dist/chunk-TAS2JGNI.js.map +1 -0
- package/dist/chunk-UO2SSIIZ.js +3 -0
- package/dist/chunk-UO2SSIIZ.js.map +1 -0
- package/dist/chunk-UYERZEPM.js +2 -0
- package/dist/chunk-UYERZEPM.js.map +1 -0
- package/dist/chunk-V3UZYH25.js +2 -0
- package/dist/chunk-V3UZYH25.js.map +1 -0
- package/dist/chunk-VBOLWWMB.js +2 -0
- package/dist/chunk-VBOLWWMB.js.map +1 -0
- package/dist/chunk-VDWSP3BD.js +3 -0
- package/dist/chunk-VDWSP3BD.js.map +1 -0
- package/dist/chunk-VPEATOB2.js +2 -0
- package/dist/chunk-VPEATOB2.js.map +1 -0
- package/dist/chunk-VXPI52BF.js +2 -0
- package/dist/chunk-VXPI52BF.js.map +1 -0
- package/dist/chunk-WOMYFCVM.js +2 -0
- package/dist/chunk-WOMYFCVM.js.map +1 -0
- package/dist/chunk-WVCLY4PF.js +2 -0
- package/dist/chunk-WVCLY4PF.js.map +1 -0
- package/dist/chunk-WVS5JOCE.js +2 -0
- package/dist/chunk-WVS5JOCE.js.map +1 -0
- package/dist/chunk-X33BC54Z.js +2 -0
- package/dist/chunk-X33BC54Z.js.map +1 -0
- package/dist/chunk-XHGWAAJS.js +2 -0
- package/dist/chunk-XHGWAAJS.js.map +1 -0
- package/dist/chunk-XJTNICPE.js +2 -0
- package/dist/chunk-XJTNICPE.js.map +1 -0
- package/dist/chunk-YBKX6Q3Q.js +2 -0
- package/dist/chunk-YBKX6Q3Q.js.map +1 -0
- package/dist/chunk-YE2FF227.js +2 -0
- package/dist/chunk-YE2FF227.js.map +1 -0
- package/dist/chunk-YMTB3NHI.js +2 -0
- package/dist/chunk-YMTB3NHI.js.map +1 -0
- package/dist/chunk-YQQMT67S.js +2 -0
- package/dist/chunk-YQQMT67S.js.map +1 -0
- package/dist/chunk-YRSMMECJ.js +2 -0
- package/dist/chunk-YRSMMECJ.js.map +1 -0
- package/dist/chunk-Z4BTW3UI.js +2 -0
- package/dist/chunk-Z4BTW3UI.js.map +1 -0
- package/dist/chunk-ZGBTOZ7M.js +2 -0
- package/dist/chunk-ZGBTOZ7M.js.map +1 -0
- package/dist/chunk-ZQ2OIVG3.js +2 -0
- package/dist/chunk-ZQ2OIVG3.js.map +1 -0
- package/dist/chunk-ZXNTK3KX.js +2 -0
- package/dist/chunk-ZXNTK3KX.js.map +1 -0
- package/dist/chunk-ZY4RVPTF.js +2 -0
- package/dist/chunk-ZY4RVPTF.js.map +1 -0
- package/dist/chunk-ZZSRCXWK.js +2 -0
- package/dist/chunk-ZZSRCXWK.js.map +1 -0
- package/dist/collab-activity-R6AYISVI.js +2 -0
- package/dist/collab-activity-R6AYISVI.js.map +1 -0
- package/dist/collab-invite-TUWJGMNS.js +2 -0
- package/dist/collab-invite-TUWJGMNS.js.map +1 -0
- package/dist/collab-leave-GRSWXTOP.js +2 -0
- package/dist/collab-leave-GRSWXTOP.js.map +1 -0
- package/dist/collab-list-ZKZTNIGX.js +2 -0
- package/dist/collab-list-ZKZTNIGX.js.map +1 -0
- package/dist/collab-remove-2HYNLLLX.js +2 -0
- package/dist/collab-remove-2HYNLLLX.js.map +1 -0
- package/dist/collab-transfer-HC5KHBV5.js +2 -0
- package/dist/collab-transfer-HC5KHBV5.js.map +1 -0
- package/dist/commands/auth/auth-status.js +29 -0
- package/dist/commands/auth/index.js +1 -1
- package/dist/commands/auth/login-device.js +70 -0
- package/dist/commands/auth/login-oauth.js +81 -0
- package/dist/commands/auth/logout.js +23 -0
- package/dist/commands/auth/whoami.js +21 -0
- package/dist/commands/collab/index.js +1 -1
- package/dist/commands/deploy/index.js +1 -2
- package/dist/commands/deploy/index.js.map +1 -1
- package/dist/commands/filereq/client.js +37 -0
- package/dist/commands/filereq/create.js +36 -0
- package/dist/commands/filereq/delete.js +18 -0
- package/dist/commands/filereq/list.js +17 -0
- package/dist/commands/filereq/submissions.js +29 -0
- package/dist/commands/files/download.js +23 -0
- package/dist/commands/files/list.js +33 -0
- package/dist/commands/files/upload.js +57 -0
- package/dist/commands/forms/index.js +1 -1
- package/dist/commands/fs/binary.js +110 -0
- package/dist/commands/fs/mount.js +46 -0
- package/dist/commands/fs/status.js +18 -0
- package/dist/commands/fs/stop.js +19 -0
- package/dist/commands/fs/webdav.js +1 -0
- package/dist/commands/health.js +20 -0
- package/dist/commands/host/api.js +186 -0
- package/dist/commands/host/keys.js +63 -0
- package/dist/commands/host/status.js +15 -0
- package/dist/commands/host/stop.js +19 -0
- package/dist/commands/logs/index.js +1 -1
- package/dist/commands/monitor/index.js +1 -1
- package/dist/commands/scripts/index.js +1 -1
- package/dist/commands/secrets/list.js +14 -0
- package/dist/commands/secrets/secrets-create.js +28 -0
- package/dist/commands/secrets/secrets-delete.js +9 -0
- package/dist/commands/secrets/secrets-list.js +1 -0
- package/dist/commands/secrets/secrets-rename.js +9 -0
- package/dist/commands/secrets/secrets-verify.js +16 -0
- package/dist/commands/share/create.js +34 -0
- package/dist/commands/sign/index.js +1 -1
- package/dist/commands/sites/client.js +20 -0
- package/dist/commands/sites/index.js +1 -1
- package/dist/commands/sites/list.js +18 -0
- package/dist/commands/sites/open.js +12 -0
- package/dist/commands/sites/unpublish.js +32 -0
- package/dist/commands/sites/visibility.js +16 -0
- package/dist/commands/storage/commands.js +114 -0
- package/dist/commands/storage/folders-create.js +15 -0
- package/dist/commands/storage/folders-helpers.js +8 -0
- package/dist/commands/storage/folders-list.js +14 -0
- package/dist/commands/storage/index.js +1 -1
- package/dist/commands/storage/storage-cp.js +1 -0
- package/dist/commands/storage/storage-download.js +1 -0
- package/dist/commands/storage/storage-info.js +1 -0
- package/dist/commands/storage/storage-ls.js +1 -0
- package/dist/commands/storage/storage-mkdir.js +15 -0
- package/dist/commands/storage/storage-mv.js +1 -0
- package/dist/commands/storage/storage-rm.js +1 -0
- package/dist/commands/storage/storage-search.js +1 -0
- package/dist/commands/storage/storage-upload.js +1 -0
- package/dist/commands/time/index.js +1 -1
- package/dist/commands/util/index.js +1 -1
- package/dist/commands/util/version.js +16 -0
- package/dist/completion-DY4JRFCG.js +2 -0
- package/dist/completion-DY4JRFCG.js.map +1 -0
- package/dist/config-GGD4POJI.js +2 -0
- package/dist/config-GGD4POJI.js.map +1 -0
- package/dist/config-delete-K42TE5KR.js +2 -0
- package/dist/config-delete-K42TE5KR.js.map +1 -0
- package/dist/config-get-7BFP6F4Q.js +2 -0
- package/dist/config-get-7BFP6F4Q.js.map +1 -0
- package/dist/config-reset-BIGP2K2H.js +2 -0
- package/dist/config-reset-BIGP2K2H.js.map +1 -0
- package/dist/config-set-C6PZ3J6Q.js +2 -0
- package/dist/config-set-C6PZ3J6Q.js.map +1 -0
- package/dist/create-G6YH4DLB.js +2 -0
- package/dist/create-G6YH4DLB.js.map +1 -0
- package/dist/create-GMSJQNJC.js +2 -0
- package/dist/create-GMSJQNJC.js.map +1 -0
- package/dist/credits-6PQPN6AJ.js +2 -0
- package/dist/credits-6PQPN6AJ.js.map +1 -0
- package/dist/doctor-WVBOVEGI.js +2 -0
- package/dist/doctor-WVBOVEGI.js.map +1 -0
- package/dist/download-C3JFSCQ4.js +2 -0
- package/dist/download-C3JFSCQ4.js.map +1 -0
- package/dist/feedback-A522XU46.js +2 -0
- package/dist/feedback-A522XU46.js.map +1 -0
- package/dist/forms-clear-OVSVO22O.js +2 -0
- package/dist/forms-clear-OVSVO22O.js.map +1 -0
- package/dist/forms-create-BLNCFEXX.js +2 -0
- package/dist/forms-create-BLNCFEXX.js.map +1 -0
- package/dist/forms-delete-DS2YSDUQ.js +2 -0
- package/dist/forms-delete-DS2YSDUQ.js.map +1 -0
- package/dist/forms-embed-WIFFAJZZ.js +2 -0
- package/dist/forms-embed-WIFFAJZZ.js.map +1 -0
- package/dist/forms-export-FQQI7SV2.js +2 -0
- package/dist/forms-export-FQQI7SV2.js.map +1 -0
- package/dist/forms-info-QXGLAQBN.js +2 -0
- package/dist/forms-info-QXGLAQBN.js.map +1 -0
- package/dist/forms-list-2CNVSPKA.js +2 -0
- package/dist/forms-list-2CNVSPKA.js.map +1 -0
- package/dist/forms-submissions-Q3FV3AC3.js +2 -0
- package/dist/forms-submissions-Q3FV3AC3.js.map +1 -0
- package/dist/health-Q5OYY2QY.js +2 -0
- package/dist/health-Q5OYY2QY.js.map +1 -0
- package/dist/lib/api/cert-pin.js +28 -0
- package/dist/lib/api/client.js +132 -0
- package/dist/lib/api/index.js +1 -2
- package/dist/lib/api/upload-res54.js +104 -0
- package/dist/lib/auth/constants.js +6 -0
- package/dist/lib/auth/fingerprint.js +39 -0
- package/dist/lib/auth/index.js +5 -2
- package/dist/lib/auth/index.js.map +1 -1
- package/dist/lib/auth/keychain.js +56 -0
- package/dist/lib/auth/oauth-session.js +89 -0
- package/dist/lib/auth/refresh.js +93 -0
- package/dist/lib/auth/session.js +34 -0
- package/dist/lib/auth/ssp-handshake.js +72 -0
- package/dist/lib/crypto/encrypt-file.js +64 -0
- package/dist/lib/crypto/index.js +2 -2
- package/dist/lib/crypto/sanitize.js +19 -0
- package/dist/lib/crypto/ssp.js +80 -0
- package/dist/lib/deploy/allowlist.js +16 -0
- package/dist/lib/deploy/detector.js +53 -0
- package/dist/lib/deploy/index.js +2 -2
- package/dist/lib/deploy/index.js.map +1 -1
- package/dist/lib/forms/index.js +1 -0
- package/dist/lib/host/microredis.js +191 -0
- package/dist/lib/host/security.js +142 -0
- package/dist/lib/host/server.js +240 -0
- package/dist/lib/output/banner.js +36 -0
- package/dist/lib/output/brand.js +37 -0
- package/dist/lib/output/index.js +11 -2
- package/dist/lib/output/logger.js +114 -0
- package/dist/lib/output/mascot.js +31 -0
- package/dist/lib/output/spinner.js +44 -0
- package/dist/lib/output/table.js +81 -0
- package/dist/lib/picker.js +71 -0
- package/dist/lib/refs-types.js +1 -0
- package/dist/lib/refs.js +81 -0
- package/dist/lib/transfer.js +168 -0
- package/dist/lib/upload/index.js +1 -2
- package/dist/lib/utils/ci-detect.js +28 -0
- package/dist/lib/utils/format.js +70 -0
- package/dist/lib/utils/index.js +2 -2
- package/dist/lib/utils/open.js +16 -0
- package/dist/list-3P3SIMDW.js +2 -0
- package/dist/list-3P3SIMDW.js.map +1 -0
- package/dist/list-BK2B4CQI.js +4 -0
- package/dist/list-BK2B4CQI.js.map +1 -0
- package/dist/list-PVSQ7A54.js +4 -0
- package/dist/list-PVSQ7A54.js.map +1 -0
- package/dist/login-device-ATMWTABG.js +2 -0
- package/dist/login-device-ATMWTABG.js.map +1 -0
- package/dist/login-oauth-CDU3A5QB.js +2 -0
- package/dist/login-oauth-CDU3A5QB.js.map +1 -0
- package/dist/logout-AV7RCXWJ.js +2 -0
- package/dist/logout-AV7RCXWJ.js.map +1 -0
- package/dist/logs-export-M2FQFCNI.js +2 -0
- package/dist/logs-export-M2FQFCNI.js.map +1 -0
- package/dist/logs-search-JSCT3K5O.js +2 -0
- package/dist/logs-search-JSCT3K5O.js.map +1 -0
- package/dist/logs-tail-W5YO2QRG.js +2 -0
- package/dist/logs-tail-W5YO2QRG.js.map +1 -0
- package/dist/monitor-5AKUYIKP.js +2 -0
- package/dist/monitor-5AKUYIKP.js.map +1 -0
- package/dist/monitor-automations-YAAS7N6L.js +2 -0
- package/dist/monitor-automations-YAAS7N6L.js.map +1 -0
- package/dist/monitor-pipelines-JO4DQ6T4.js +2 -0
- package/dist/monitor-pipelines-JO4DQ6T4.js.map +1 -0
- package/dist/monitor-sites-5IEY3Y2F.js +2 -0
- package/dist/monitor-sites-5IEY3Y2F.js.map +1 -0
- package/dist/monitor-storage-6HG6URCV.js +2 -0
- package/dist/monitor-storage-6HG6URCV.js.map +1 -0
- package/dist/oauth-session-KBMWAOVL.js +2 -0
- package/dist/oauth-session-KBMWAOVL.js.map +1 -0
- package/dist/registry/index.js +61 -2
- package/dist/scripts-cancel-2XO47DN7.js +2 -0
- package/dist/scripts-cancel-2XO47DN7.js.map +1 -0
- package/dist/scripts-delete-A6TXCHNO.js +2 -0
- package/dist/scripts-delete-A6TXCHNO.js.map +1 -0
- package/dist/scripts-disable-7GIY3YOK.js +2 -0
- package/dist/scripts-disable-7GIY3YOK.js.map +1 -0
- package/dist/scripts-enable-NGIS5VDP.js +2 -0
- package/dist/scripts-enable-NGIS5VDP.js.map +1 -0
- package/dist/scripts-init-J37ZGUDW.js +2 -0
- package/dist/scripts-init-J37ZGUDW.js.map +1 -0
- package/dist/scripts-list-ECFFKNOI.js +2 -0
- package/dist/scripts-list-ECFFKNOI.js.map +1 -0
- package/dist/scripts-logs-4DMITGNX.js +2 -0
- package/dist/scripts-logs-4DMITGNX.js.map +1 -0
- package/dist/scripts-run-CHHP53KW.js +2 -0
- package/dist/scripts-run-CHHP53KW.js.map +1 -0
- package/dist/scripts-status-YZTKCLMU.js +2 -0
- package/dist/scripts-status-YZTKCLMU.js.map +1 -0
- package/dist/scripts-validate-LGMQVRTC.js +2 -0
- package/dist/scripts-validate-LGMQVRTC.js.map +1 -0
- package/dist/scripts-watch-W2C4CBZZ.js +2 -0
- package/dist/scripts-watch-W2C4CBZZ.js.map +1 -0
- package/dist/secrets-audit-SZZ2RG77.js +2 -0
- package/dist/secrets-audit-SZZ2RG77.js.map +1 -0
- package/dist/secrets-create-QLUNM3JL.js +3 -0
- package/dist/secrets-create-QLUNM3JL.js.map +1 -0
- package/dist/secrets-delete-ISNVSZVL.js +2 -0
- package/dist/secrets-delete-ISNVSZVL.js.map +1 -0
- package/dist/secrets-export-R7VPKQCW.js +3 -0
- package/dist/secrets-export-R7VPKQCW.js.map +1 -0
- package/dist/secrets-init-TKIIJKCB.js +13 -0
- package/dist/secrets-init-TKIIJKCB.js.map +1 -0
- package/dist/secrets-list-YPMO7PWR.js +2 -0
- package/dist/secrets-list-YPMO7PWR.js.map +1 -0
- package/dist/secrets-rename-X7Q6PLPI.js +2 -0
- package/dist/secrets-rename-X7Q6PLPI.js.map +1 -0
- package/dist/secrets-verify-GZCFB6RI.js +2 -0
- package/dist/secrets-verify-GZCFB6RI.js.map +1 -0
- package/dist/sign-cancel-H34SAG56.js +2 -0
- package/dist/sign-cancel-H34SAG56.js.map +1 -0
- package/dist/sign-download-3MAWJ2XB.js +2 -0
- package/dist/sign-download-3MAWJ2XB.js.map +1 -0
- package/dist/sign-list-NW5WYD4V.js +2 -0
- package/dist/sign-list-NW5WYD4V.js.map +1 -0
- package/dist/sign-request-HFI3KJ2L.js +2 -0
- package/dist/sign-request-HFI3KJ2L.js.map +1 -0
- package/dist/sign-status-BD7S2FEA.js +2 -0
- package/dist/sign-status-BD7S2FEA.js.map +1 -0
- package/dist/sign-verify-OCYA4RI3.js +2 -0
- package/dist/sign-verify-OCYA4RI3.js.map +1 -0
- package/dist/sites-analytics-AJIFXZEM.js +2 -0
- package/dist/sites-analytics-AJIFXZEM.js.map +1 -0
- package/dist/sites-delete-SDBENOY6.js +2 -0
- package/dist/sites-delete-SDBENOY6.js.map +1 -0
- package/dist/sites-deploys-WHLZTAYW.js +2 -0
- package/dist/sites-deploys-WHLZTAYW.js.map +1 -0
- package/dist/sites-info-RZJNVFFP.js +2 -0
- package/dist/sites-info-RZJNVFFP.js.map +1 -0
- package/dist/sites-list-DKZWNHLM.js +2 -0
- package/dist/sites-list-DKZWNHLM.js.map +1 -0
- package/dist/sites-logs-O35RH2CT.js +2 -0
- package/dist/sites-logs-O35RH2CT.js.map +1 -0
- package/dist/sites-open-QE6RD5JB.js +2 -0
- package/dist/sites-open-QE6RD5JB.js.map +1 -0
- package/dist/sites-purge-KROBLAUK.js +2 -0
- package/dist/sites-purge-KROBLAUK.js.map +1 -0
- package/dist/sites-rename-YMZQ5C37.js +2 -0
- package/dist/sites-rename-YMZQ5C37.js.map +1 -0
- package/dist/sites-rollback-OQXR2V5A.js +2 -0
- package/dist/sites-rollback-OQXR2V5A.js.map +1 -0
- package/dist/sites-unpublish-VKEPVVOB.js +2 -0
- package/dist/sites-unpublish-VKEPVVOB.js.map +1 -0
- package/dist/sites-visibility-Q2WXPRFB.js +2 -0
- package/dist/sites-visibility-Q2WXPRFB.js.map +1 -0
- package/dist/storage-cat-Z42FIYKB.js +2 -0
- package/dist/storage-cat-Z42FIYKB.js.map +1 -0
- package/dist/storage-clean-E3ZU5JVL.js +2 -0
- package/dist/storage-clean-E3ZU5JVL.js.map +1 -0
- package/dist/storage-cp-IBCATT2F.js +2 -0
- package/dist/storage-cp-IBCATT2F.js.map +1 -0
- package/dist/storage-diff-FX4QVDH7.js +2 -0
- package/dist/storage-diff-FX4QVDH7.js.map +1 -0
- package/dist/storage-download-ULJS52LJ.js +2 -0
- package/dist/storage-download-ULJS52LJ.js.map +1 -0
- package/dist/storage-info-HRE7ORAJ.js +2 -0
- package/dist/storage-info-HRE7ORAJ.js.map +1 -0
- package/dist/storage-ls-Z555BXZI.js +2 -0
- package/dist/storage-ls-Z555BXZI.js.map +1 -0
- package/dist/storage-mkdir-PODYCT7K.js +2 -0
- package/dist/storage-mkdir-PODYCT7K.js.map +1 -0
- package/dist/storage-mv-KHOZW76V.js +2 -0
- package/dist/storage-mv-KHOZW76V.js.map +1 -0
- package/dist/storage-rm-XJME2PBW.js +2 -0
- package/dist/storage-rm-XJME2PBW.js.map +1 -0
- package/dist/storage-search-2M3QMF4E.js +2 -0
- package/dist/storage-search-2M3QMF4E.js.map +1 -0
- package/dist/storage-share-6DANEN4S.js +2 -0
- package/dist/storage-share-6DANEN4S.js.map +1 -0
- package/dist/storage-tag-QGPV7RX3.js +2 -0
- package/dist/storage-tag-QGPV7RX3.js.map +1 -0
- package/dist/storage-unshare-DJCEMHE3.js +2 -0
- package/dist/storage-unshare-DJCEMHE3.js.map +1 -0
- package/dist/storage-upload-UKQYASCU.js +2 -0
- package/dist/storage-upload-UKQYASCU.js.map +1 -0
- package/dist/time-list-32LQSLS3.js +2 -0
- package/dist/time-list-32LQSLS3.js.map +1 -0
- package/dist/time-lock-5RHHTCYW.js +2 -0
- package/dist/time-lock-5RHHTCYW.js.map +1 -0
- package/dist/time-proof-7F7MGTC7.js +2 -0
- package/dist/time-proof-7F7MGTC7.js.map +1 -0
- package/dist/time-status-OC5Y5DI5.js +2 -0
- package/dist/time-status-OC5Y5DI5.js.map +1 -0
- package/dist/time-unlock-23PW3U3H.js +2 -0
- package/dist/time-unlock-23PW3U3H.js.map +1 -0
- package/dist/update-VAIGKTAJ.js +2 -0
- package/dist/update-VAIGKTAJ.js.map +1 -0
- package/dist/upload-ME5JGLCS.js +2 -0
- package/dist/upload-ME5JGLCS.js.map +1 -0
- package/dist/usage-HWFCDFQQ.js +2 -0
- package/dist/usage-HWFCDFQQ.js.map +1 -0
- package/dist/version-TFYCABEC.js +2 -0
- package/dist/version-TFYCABEC.js.map +1 -0
- package/dist/whoami-A65QZCK3.js +2 -0
- package/dist/whoami-A65QZCK3.js.map +1 -0
- package/package.json +30 -46
- package/dist/auth-revoke-NEWOUC3A.js +0 -2
- package/dist/auth-revoke-NEWOUC3A.js.map +0 -1
- package/dist/auth-sessions-JOC7PEUT.js +0 -2
- package/dist/auth-sessions-JOC7PEUT.js.map +0 -1
- package/dist/auth-status-FUO72AA4.js +0 -2
- package/dist/auth-status-FUO72AA4.js.map +0 -1
- package/dist/chunk-23ZOP633.js +0 -2
- package/dist/chunk-23ZOP633.js.map +0 -1
- package/dist/chunk-2MWPBWUD.js +0 -3
- package/dist/chunk-2MWPBWUD.js.map +0 -1
- package/dist/chunk-3OYNZIJC.js +0 -2
- package/dist/chunk-3OYNZIJC.js.map +0 -1
- package/dist/chunk-3OZ4O4NE.js +0 -2
- package/dist/chunk-3OZ4O4NE.js.map +0 -1
- package/dist/chunk-3YAAQAPA.js +0 -2
- package/dist/chunk-3YAAQAPA.js.map +0 -1
- package/dist/chunk-4MW5J5VT.js +0 -2
- package/dist/chunk-4MW5J5VT.js.map +0 -1
- package/dist/chunk-4N7AHGIY.js +0 -2
- package/dist/chunk-4N7AHGIY.js.map +0 -1
- package/dist/chunk-4USNCNOY.js +0 -2
- package/dist/chunk-4USNCNOY.js.map +0 -1
- package/dist/chunk-4VJET5IM.js +0 -2
- package/dist/chunk-4VJET5IM.js.map +0 -1
- package/dist/chunk-52WHEL73.js +0 -2
- package/dist/chunk-52WHEL73.js.map +0 -1
- package/dist/chunk-54BNCBLD.js +0 -2
- package/dist/chunk-54BNCBLD.js.map +0 -1
- package/dist/chunk-54MZLE2R.js +0 -2
- package/dist/chunk-54MZLE2R.js.map +0 -1
- package/dist/chunk-57X5IOZ5.js +0 -2
- package/dist/chunk-57X5IOZ5.js.map +0 -1
- package/dist/chunk-5DXTXML2.js +0 -2
- package/dist/chunk-5DXTXML2.js.map +0 -1
- package/dist/chunk-5JPIAFB2.js +0 -2
- package/dist/chunk-5JPIAFB2.js.map +0 -1
- package/dist/chunk-5TMR6Y7L.js +0 -2
- package/dist/chunk-5TMR6Y7L.js.map +0 -1
- package/dist/chunk-5Z3A46OK.js +0 -2
- package/dist/chunk-5Z3A46OK.js.map +0 -1
- package/dist/chunk-6CK2UBNM.js +0 -2
- package/dist/chunk-6CK2UBNM.js.map +0 -1
- package/dist/chunk-6RI4Z6IY.js +0 -2
- package/dist/chunk-6RI4Z6IY.js.map +0 -1
- package/dist/chunk-6VDGYAGT.js +0 -2
- package/dist/chunk-6VDGYAGT.js.map +0 -1
- package/dist/chunk-74TMDLBA.js +0 -2
- package/dist/chunk-74TMDLBA.js.map +0 -1
- package/dist/chunk-7DPXZUZY.js +0 -2
- package/dist/chunk-7DPXZUZY.js.map +0 -1
- package/dist/chunk-7VVZS6US.js +0 -2
- package/dist/chunk-7VVZS6US.js.map +0 -1
- package/dist/chunk-A6WS3TOF.js +0 -2
- package/dist/chunk-A6WS3TOF.js.map +0 -1
- package/dist/chunk-ADOHZ74F.js +0 -2
- package/dist/chunk-ADOHZ74F.js.map +0 -1
- package/dist/chunk-BC3STHFS.js +0 -3
- package/dist/chunk-BC3STHFS.js.map +0 -1
- package/dist/chunk-BQGHHBGH.js +0 -2
- package/dist/chunk-BQGHHBGH.js.map +0 -1
- package/dist/chunk-CJYNYLZF.js +0 -2
- package/dist/chunk-CJYNYLZF.js.map +0 -1
- package/dist/chunk-CQAXMUFB.js +0 -3
- package/dist/chunk-CQAXMUFB.js.map +0 -1
- package/dist/chunk-DNCVZK7V.js +0 -44
- package/dist/chunk-DNCVZK7V.js.map +0 -1
- package/dist/chunk-E2QGSNDB.js +0 -2
- package/dist/chunk-E2QGSNDB.js.map +0 -1
- package/dist/chunk-EGVPYRIE.js +0 -2
- package/dist/chunk-EGVPYRIE.js.map +0 -1
- package/dist/chunk-EUJ26UNW.js +0 -2
- package/dist/chunk-EUJ26UNW.js.map +0 -1
- package/dist/chunk-EWFYKNK7.js +0 -2
- package/dist/chunk-EWFYKNK7.js.map +0 -1
- package/dist/chunk-F6IK5BFP.js +0 -2
- package/dist/chunk-F6IK5BFP.js.map +0 -1
- package/dist/chunk-F6Z2OAHW.js +0 -2
- package/dist/chunk-F6Z2OAHW.js.map +0 -1
- package/dist/chunk-FBSVAPQ6.js +0 -3
- package/dist/chunk-FBSVAPQ6.js.map +0 -1
- package/dist/chunk-FJZYWFE2.js +0 -2
- package/dist/chunk-FJZYWFE2.js.map +0 -1
- package/dist/chunk-FMJZFIA2.js +0 -3
- package/dist/chunk-FMJZFIA2.js.map +0 -1
- package/dist/chunk-GAP2HHZR.js +0 -2
- package/dist/chunk-GAP2HHZR.js.map +0 -1
- package/dist/chunk-GIADGCQF.js +0 -9
- package/dist/chunk-GIADGCQF.js.map +0 -1
- package/dist/chunk-H2WQ3ECX.js +0 -2
- package/dist/chunk-H2WQ3ECX.js.map +0 -1
- package/dist/chunk-HJWONDZI.js +0 -2
- package/dist/chunk-HJWONDZI.js.map +0 -1
- package/dist/chunk-HMBPN7ID.js +0 -2
- package/dist/chunk-HMBPN7ID.js.map +0 -1
- package/dist/chunk-HTDV42AD.js +0 -2
- package/dist/chunk-HTDV42AD.js.map +0 -1
- package/dist/chunk-IBYIEHIZ.js +0 -2
- package/dist/chunk-IBYIEHIZ.js.map +0 -1
- package/dist/chunk-IJ3JNWT6.js +0 -3
- package/dist/chunk-IJ3JNWT6.js.map +0 -1
- package/dist/chunk-JCZENRYY.js +0 -2
- package/dist/chunk-JCZENRYY.js.map +0 -1
- package/dist/chunk-JLC5WGYQ.js +0 -2
- package/dist/chunk-JLC5WGYQ.js.map +0 -1
- package/dist/chunk-JSYPWAKP.js +0 -2
- package/dist/chunk-JSYPWAKP.js.map +0 -1
- package/dist/chunk-JTIGFOL5.js +0 -2
- package/dist/chunk-JTIGFOL5.js.map +0 -1
- package/dist/chunk-JTMKKTKL.js +0 -2
- package/dist/chunk-JTMKKTKL.js.map +0 -1
- package/dist/chunk-KO2JCGEV.js +0 -2
- package/dist/chunk-KO2JCGEV.js.map +0 -1
- package/dist/chunk-KQMBXJUL.js +0 -2
- package/dist/chunk-KQMBXJUL.js.map +0 -1
- package/dist/chunk-LSYYM7EZ.js +0 -2
- package/dist/chunk-LSYYM7EZ.js.map +0 -1
- package/dist/chunk-LW4AQT2F.js +0 -2
- package/dist/chunk-LW4AQT2F.js.map +0 -1
- package/dist/chunk-MCJLSHUC.js +0 -2
- package/dist/chunk-MCJLSHUC.js.map +0 -1
- package/dist/chunk-MNSBJ6HR.js +0 -2
- package/dist/chunk-MNSBJ6HR.js.map +0 -1
- package/dist/chunk-N52M225G.js +0 -2
- package/dist/chunk-N52M225G.js.map +0 -1
- package/dist/chunk-NCD7PEEP.js +0 -2
- package/dist/chunk-NCD7PEEP.js.map +0 -1
- package/dist/chunk-NDB6KXYI.js +0 -3
- package/dist/chunk-NDB6KXYI.js.map +0 -1
- package/dist/chunk-NDG5MZ2E.js +0 -2
- package/dist/chunk-NDG5MZ2E.js.map +0 -1
- package/dist/chunk-NKEQVDH2.js +0 -2
- package/dist/chunk-NKEQVDH2.js.map +0 -1
- package/dist/chunk-NKPRDJXY.js +0 -2
- package/dist/chunk-NKPRDJXY.js.map +0 -1
- package/dist/chunk-NLUUDXEF.js +0 -3
- package/dist/chunk-NLUUDXEF.js.map +0 -1
- package/dist/chunk-NQAQKZPN.js +0 -14
- package/dist/chunk-NQAQKZPN.js.map +0 -1
- package/dist/chunk-O45EVN3E.js +0 -3
- package/dist/chunk-O45EVN3E.js.map +0 -1
- package/dist/chunk-OFJLZCDA.js +0 -2
- package/dist/chunk-OFJLZCDA.js.map +0 -1
- package/dist/chunk-OWUWBBTM.js +0 -2
- package/dist/chunk-OWUWBBTM.js.map +0 -1
- package/dist/chunk-P6UN7Y3F.js +0 -2
- package/dist/chunk-P6UN7Y3F.js.map +0 -1
- package/dist/chunk-PMRLA27Q.js +0 -2
- package/dist/chunk-PMRLA27Q.js.map +0 -1
- package/dist/chunk-Q25B7YZU.js +0 -2
- package/dist/chunk-Q25B7YZU.js.map +0 -1
- package/dist/chunk-RN4IKWVM.js +0 -2
- package/dist/chunk-RN4IKWVM.js.map +0 -1
- package/dist/chunk-RNCPG3CD.js +0 -2
- package/dist/chunk-RNCPG3CD.js.map +0 -1
- package/dist/chunk-SA36QQCL.js +0 -2
- package/dist/chunk-SA36QQCL.js.map +0 -1
- package/dist/chunk-SAE75K6H.js +0 -3
- package/dist/chunk-SAE75K6H.js.map +0 -1
- package/dist/chunk-SB7XE246.js +0 -2
- package/dist/chunk-SB7XE246.js.map +0 -1
- package/dist/chunk-T23UIAGN.js +0 -2
- package/dist/chunk-T23UIAGN.js.map +0 -1
- package/dist/chunk-TE7L3ICT.js +0 -2
- package/dist/chunk-TE7L3ICT.js.map +0 -1
- package/dist/chunk-UEZJYSCK.js +0 -2
- package/dist/chunk-UEZJYSCK.js.map +0 -1
- package/dist/chunk-UPZC233Y.js +0 -2
- package/dist/chunk-UPZC233Y.js.map +0 -1
- package/dist/chunk-VJNDCFHN.js +0 -2
- package/dist/chunk-VJNDCFHN.js.map +0 -1
- package/dist/chunk-W74CXS6L.js +0 -2
- package/dist/chunk-W74CXS6L.js.map +0 -1
- package/dist/chunk-WNB2L5T6.js +0 -2
- package/dist/chunk-WNB2L5T6.js.map +0 -1
- package/dist/chunk-WRKYGGYI.js +0 -2
- package/dist/chunk-WRKYGGYI.js.map +0 -1
- package/dist/chunk-XBUJYUM3.js +0 -2
- package/dist/chunk-XBUJYUM3.js.map +0 -1
- package/dist/chunk-XFLWSNBM.js +0 -2
- package/dist/chunk-XFLWSNBM.js.map +0 -1
- package/dist/chunk-XM4MU7IT.js +0 -2
- package/dist/chunk-XM4MU7IT.js.map +0 -1
- package/dist/chunk-XTV6ABCU.js +0 -2
- package/dist/chunk-XTV6ABCU.js.map +0 -1
- package/dist/chunk-XWVREJPG.js +0 -2
- package/dist/chunk-XWVREJPG.js.map +0 -1
- package/dist/chunk-Y4LKANAN.js +0 -2
- package/dist/chunk-Y4LKANAN.js.map +0 -1
- package/dist/chunk-YAN3ZX5N.js +0 -2
- package/dist/chunk-YAN3ZX5N.js.map +0 -1
- package/dist/chunk-YMVR2Y7T.js +0 -2
- package/dist/chunk-YMVR2Y7T.js.map +0 -1
- package/dist/chunk-YRA3NRLD.js +0 -2
- package/dist/chunk-YRA3NRLD.js.map +0 -1
- package/dist/chunk-YZWZNR6K.js +0 -6
- package/dist/chunk-YZWZNR6K.js.map +0 -1
- package/dist/chunk-Z6CJWDEP.js +0 -2
- package/dist/chunk-Z6CJWDEP.js.map +0 -1
- package/dist/chunk-ZBT5KBPZ.js +0 -2
- package/dist/chunk-ZBT5KBPZ.js.map +0 -1
- package/dist/chunk-ZJ7BKNXN.js +0 -3
- package/dist/chunk-ZJ7BKNXN.js.map +0 -1
- package/dist/chunk-ZP2A2JZ2.js +0 -2
- package/dist/chunk-ZP2A2JZ2.js.map +0 -1
- package/dist/chunk-ZX2YDSZP.js +0 -2
- package/dist/chunk-ZX2YDSZP.js.map +0 -1
- package/dist/client-LLUV4KQV.js +0 -2
- package/dist/client-LLUV4KQV.js.map +0 -1
- package/dist/collab-activity-HHMCCSM6.js +0 -2
- package/dist/collab-activity-HHMCCSM6.js.map +0 -1
- package/dist/collab-invite-CGTTTC5E.js +0 -2
- package/dist/collab-invite-CGTTTC5E.js.map +0 -1
- package/dist/collab-leave-XQ4TYSSV.js +0 -2
- package/dist/collab-leave-XQ4TYSSV.js.map +0 -1
- package/dist/collab-list-QHZLDEQY.js +0 -2
- package/dist/collab-list-QHZLDEQY.js.map +0 -1
- package/dist/collab-remove-WEOMPRY4.js +0 -2
- package/dist/collab-remove-WEOMPRY4.js.map +0 -1
- package/dist/collab-transfer-4UAT62Q6.js +0 -2
- package/dist/collab-transfer-4UAT62Q6.js.map +0 -1
- package/dist/completion-I2ARGA2U.js +0 -2
- package/dist/completion-I2ARGA2U.js.map +0 -1
- package/dist/config-B5FDVP6Q.js +0 -2
- package/dist/config-B5FDVP6Q.js.map +0 -1
- package/dist/config-delete-3GEWPGA3.js +0 -2
- package/dist/config-delete-3GEWPGA3.js.map +0 -1
- package/dist/config-get-4YKTVBHW.js +0 -2
- package/dist/config-get-4YKTVBHW.js.map +0 -1
- package/dist/config-reset-GCTQD5ZJ.js +0 -2
- package/dist/config-reset-GCTQD5ZJ.js.map +0 -1
- package/dist/config-set-VHEQM2RQ.js +0 -2
- package/dist/config-set-VHEQM2RQ.js.map +0 -1
- package/dist/doctor-ZYU3JBJF.js +0 -2
- package/dist/doctor-ZYU3JBJF.js.map +0 -1
- package/dist/feedback-N5EBJ566.js +0 -2
- package/dist/feedback-N5EBJ566.js.map +0 -1
- package/dist/forms-clear-RXJVD57O.js +0 -2
- package/dist/forms-clear-RXJVD57O.js.map +0 -1
- package/dist/forms-create-ADMTRYCJ.js +0 -2
- package/dist/forms-create-ADMTRYCJ.js.map +0 -1
- package/dist/forms-delete-RFXRQFH6.js +0 -2
- package/dist/forms-delete-RFXRQFH6.js.map +0 -1
- package/dist/forms-embed-CGKIBURZ.js +0 -2
- package/dist/forms-embed-CGKIBURZ.js.map +0 -1
- package/dist/forms-export-34JBMXAM.js +0 -2
- package/dist/forms-export-34JBMXAM.js.map +0 -1
- package/dist/forms-info-LQ5S4I24.js +0 -2
- package/dist/forms-info-LQ5S4I24.js.map +0 -1
- package/dist/forms-list-7JIQCCVQ.js +0 -2
- package/dist/forms-list-7JIQCCVQ.js.map +0 -1
- package/dist/forms-submissions-EMJNSTYT.js +0 -2
- package/dist/forms-submissions-EMJNSTYT.js.map +0 -1
- package/dist/login-I53VTO6L.js +0 -2
- package/dist/login-I53VTO6L.js.map +0 -1
- package/dist/logout-OJV7AZZO.js +0 -2
- package/dist/logout-OJV7AZZO.js.map +0 -1
- package/dist/logs-export-TX3TDMAL.js +0 -2
- package/dist/logs-export-TX3TDMAL.js.map +0 -1
- package/dist/logs-search-N6HWWLHZ.js +0 -2
- package/dist/logs-search-N6HWWLHZ.js.map +0 -1
- package/dist/logs-tail-SQ4XQW2A.js +0 -2
- package/dist/logs-tail-SQ4XQW2A.js.map +0 -1
- package/dist/monitor-D3LZU55W.js +0 -2
- package/dist/monitor-D3LZU55W.js.map +0 -1
- package/dist/monitor-automations-GFDMFRBU.js +0 -2
- package/dist/monitor-automations-GFDMFRBU.js.map +0 -1
- package/dist/monitor-pipelines-FRVVYKME.js +0 -2
- package/dist/monitor-pipelines-FRVVYKME.js.map +0 -1
- package/dist/monitor-sites-ATWU7HOA.js +0 -2
- package/dist/monitor-sites-ATWU7HOA.js.map +0 -1
- package/dist/monitor-storage-TGFNTOHB.js +0 -2
- package/dist/monitor-storage-TGFNTOHB.js.map +0 -1
- package/dist/scripts-cancel-R7NRYLVG.js +0 -2
- package/dist/scripts-cancel-R7NRYLVG.js.map +0 -1
- package/dist/scripts-delete-CFRV2B2G.js +0 -2
- package/dist/scripts-delete-CFRV2B2G.js.map +0 -1
- package/dist/scripts-disable-WQJAP6EW.js +0 -2
- package/dist/scripts-disable-WQJAP6EW.js.map +0 -1
- package/dist/scripts-enable-GJTRHEJG.js +0 -2
- package/dist/scripts-enable-GJTRHEJG.js.map +0 -1
- package/dist/scripts-init-XYDUEPHE.js +0 -2
- package/dist/scripts-init-XYDUEPHE.js.map +0 -1
- package/dist/scripts-list-I42J3TKN.js +0 -2
- package/dist/scripts-list-I42J3TKN.js.map +0 -1
- package/dist/scripts-logs-T2DBR47F.js +0 -2
- package/dist/scripts-logs-T2DBR47F.js.map +0 -1
- package/dist/scripts-run-A4V25Q5I.js +0 -2
- package/dist/scripts-run-A4V25Q5I.js.map +0 -1
- package/dist/scripts-status-5Q5Q76LC.js +0 -2
- package/dist/scripts-status-5Q5Q76LC.js.map +0 -1
- package/dist/scripts-validate-7525CAVN.js +0 -2
- package/dist/scripts-validate-7525CAVN.js.map +0 -1
- package/dist/scripts-watch-SB52KWBL.js +0 -2
- package/dist/scripts-watch-SB52KWBL.js.map +0 -1
- package/dist/sign-cancel-XKIUANS3.js +0 -2
- package/dist/sign-cancel-XKIUANS3.js.map +0 -1
- package/dist/sign-download-JLV45D2P.js +0 -2
- package/dist/sign-download-JLV45D2P.js.map +0 -1
- package/dist/sign-list-XW7YYI4K.js +0 -2
- package/dist/sign-list-XW7YYI4K.js.map +0 -1
- package/dist/sign-request-IDZFPWHL.js +0 -2
- package/dist/sign-request-IDZFPWHL.js.map +0 -1
- package/dist/sign-status-WMFCBO2Y.js +0 -2
- package/dist/sign-status-WMFCBO2Y.js.map +0 -1
- package/dist/sign-verify-MQDGGYPL.js +0 -2
- package/dist/sign-verify-MQDGGYPL.js.map +0 -1
- package/dist/sites-analytics-AU54PJC4.js +0 -2
- package/dist/sites-analytics-AU54PJC4.js.map +0 -1
- package/dist/sites-delete-ROETL6S7.js +0 -2
- package/dist/sites-delete-ROETL6S7.js.map +0 -1
- package/dist/sites-deploys-IKKCJFGI.js +0 -2
- package/dist/sites-deploys-IKKCJFGI.js.map +0 -1
- package/dist/sites-info-M7WDLFTW.js +0 -2
- package/dist/sites-info-M7WDLFTW.js.map +0 -1
- package/dist/sites-list-DQANT2J6.js +0 -2
- package/dist/sites-list-DQANT2J6.js.map +0 -1
- package/dist/sites-logs-NAOTBP7I.js +0 -2
- package/dist/sites-logs-NAOTBP7I.js.map +0 -1
- package/dist/sites-open-LYLLIXUE.js +0 -2
- package/dist/sites-open-LYLLIXUE.js.map +0 -1
- package/dist/sites-purge-TC26HZI3.js +0 -2
- package/dist/sites-purge-TC26HZI3.js.map +0 -1
- package/dist/sites-rename-UQNCLOFG.js +0 -2
- package/dist/sites-rename-UQNCLOFG.js.map +0 -1
- package/dist/sites-rollback-SQ5ITDAM.js +0 -2
- package/dist/sites-rollback-SQ5ITDAM.js.map +0 -1
- package/dist/sites-unpublish-UWBN253C.js +0 -2
- package/dist/sites-unpublish-UWBN253C.js.map +0 -1
- package/dist/sites-visibility-K4ECNWQ6.js +0 -2
- package/dist/sites-visibility-K4ECNWQ6.js.map +0 -1
- package/dist/storage-cat-FHO4FOCH.js +0 -2
- package/dist/storage-cat-FHO4FOCH.js.map +0 -1
- package/dist/storage-clean-PVEBOPCZ.js +0 -2
- package/dist/storage-clean-PVEBOPCZ.js.map +0 -1
- package/dist/storage-cp-432CZ24Q.js +0 -2
- package/dist/storage-cp-432CZ24Q.js.map +0 -1
- package/dist/storage-diff-3HUM7APQ.js +0 -2
- package/dist/storage-diff-3HUM7APQ.js.map +0 -1
- package/dist/storage-download-MEUZI6VE.js +0 -2
- package/dist/storage-download-MEUZI6VE.js.map +0 -1
- package/dist/storage-info-TXDUGMAZ.js +0 -2
- package/dist/storage-info-TXDUGMAZ.js.map +0 -1
- package/dist/storage-ls-UKF6RNFK.js +0 -2
- package/dist/storage-ls-UKF6RNFK.js.map +0 -1
- package/dist/storage-mkdir-DUCBLMFF.js +0 -2
- package/dist/storage-mkdir-DUCBLMFF.js.map +0 -1
- package/dist/storage-mv-TBFY3KYG.js +0 -2
- package/dist/storage-mv-TBFY3KYG.js.map +0 -1
- package/dist/storage-rm-5GL4JECX.js +0 -2
- package/dist/storage-rm-5GL4JECX.js.map +0 -1
- package/dist/storage-search-LOPWXFNT.js +0 -2
- package/dist/storage-search-LOPWXFNT.js.map +0 -1
- package/dist/storage-share-RAJJY3I5.js +0 -2
- package/dist/storage-share-RAJJY3I5.js.map +0 -1
- package/dist/storage-tag-WM33N7XA.js +0 -2
- package/dist/storage-tag-WM33N7XA.js.map +0 -1
- package/dist/storage-unshare-H5UBXLAT.js +0 -2
- package/dist/storage-unshare-H5UBXLAT.js.map +0 -1
- package/dist/storage-upload-XY2GN3VU.js +0 -2
- package/dist/storage-upload-XY2GN3VU.js.map +0 -1
- package/dist/time-list-WSRWMUGP.js +0 -2
- package/dist/time-list-WSRWMUGP.js.map +0 -1
- package/dist/time-lock-GOKLWQZ6.js +0 -2
- package/dist/time-lock-GOKLWQZ6.js.map +0 -1
- package/dist/time-proof-J7GT4M5G.js +0 -2
- package/dist/time-proof-J7GT4M5G.js.map +0 -1
- package/dist/time-status-SV3OA35J.js +0 -2
- package/dist/time-status-SV3OA35J.js.map +0 -1
- package/dist/time-unlock-6OF5VTV4.js +0 -2
- package/dist/time-unlock-6OF5VTV4.js.map +0 -1
- package/dist/update-M3RJEWWA.js +0 -2
- package/dist/update-M3RJEWWA.js.map +0 -1
- package/dist/version-QA4ZYKDW.js +0 -2
- package/dist/version-QA4ZYKDW.js.map +0 -1
- package/dist/whoami-BQMXFSCR.js +0 -2
- package/dist/whoami-BQMXFSCR.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/auth/whoami.ts"],"names":["whoami","session","loadSession","logError","isJsonMode","logJSON","timeLeft","getTimeUntilExpiry","rows","chalk","formatCountdown","renderCompactTable"],"mappings":"2KAOA,eAAOA,CAAAA,EAA+C,CACpD,IAAMC,GAAAA,CAAU,MAAMC,CAAAA,EAAY,CAMlC,GALKD,GAAAA,GACHE,EAAS,mBAAmB,CAAA,CAC5B,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,CAAA,CAGZC,CAAAA,EAAW,CAAG,CAChBC,CAAAA,CAAQ,CACN,aAAA,CAAe,IAAA,CACf,IAAA,CAAMJ,IAAQ,IAAA,CACd,UAAA,CAAYA,GAAAA,CAAQ,UAAA,CACpB,UAAA,CAAYA,GAAAA,CAAQ,UACtB,CAAC,CAAA,CACD,MACF,CAEA,IAAMK,CAAAA,CAAWC,CAAAA,CAAmBN,GAAO,CAAA,CACrCO,CAAAA,CAAO,CACX,CAAE,GAAA,CAAKC,CAAAA,CAAM,IAAA,CAAK,OAAO,CAAA,CAAG,KAAA,CAAOR,GAAAA,CAAQ,IAAA,CAAK,KAAM,CAAA,CACtD,CAAE,GAAA,CAAKQ,CAAAA,CAAM,IAAA,CAAK,UAAU,CAAA,CAAG,KAAA,CAAOR,GAAAA,CAAQ,IAAA,CAAK,QAAS,CAAA,CAC5D,CAAE,GAAA,CAAKQ,CAAAA,CAAM,IAAA,CAAK,MAAM,CAAA,CAAG,KAAA,CAAOA,CAAAA,CAAM,GAAA,CAAI,SAAS,CAAA,CAAER,GAAAA,CAAQ,IAAA,CAAK,IAAI,CAAE,CAAA,CAC1E,CAAE,GAAA,CAAKQ,CAAAA,CAAM,KAAK,iBAAiB,CAAA,CAAG,KAAA,CAAOC,CAAAA,CAAgBJ,CAAQ,CAAE,CACzE,CAAA,CAEA,OAAA,CAAQ,GAAA,CAAIK,CAAAA,CAAmBH,CAAAA,CAAM,CACnC,CAAE,IAAK,KAAA,CAAO,KAAA,CAAO,WAAY,CAAA,CACjC,CAAE,GAAA,CAAK,OAAA,CAAS,KAAA,CAAO,OAAQ,CACjC,CAAC,CAAC,EACJ","file":"chunk-6CK2UBNM.js","sourcesContent":["import { loadSession, getTimeUntilExpiry } from '../../lib/auth/session.js'\nimport { logError, logJSON } from '../../lib/output/logger.js'\nimport { isJsonMode } from '../../lib/output/logger.js'\nimport { formatCountdown } from '../../lib/utils/format.js'\nimport chalk from 'chalk'\nimport { renderCompactTable } from '../../lib/output/table.js'\n\nexport default async function whoami(): Promise<void> {\n const session = await loadSession()\n if (!session) {\n logError('Not authenticated')\n process.exit(1)\n }\n\n if (isJsonMode()) {\n logJSON({\n authenticated: true,\n user: session.user,\n session_id: session.session_id,\n expires_at: session.expires_at,\n })\n return\n }\n\n const timeLeft = getTimeUntilExpiry(session)\n const rows = [\n { key: chalk.bold('Email'), value: session.user.email },\n { key: chalk.bold('Username'), value: session.user.username },\n { key: chalk.bold('Plan'), value: chalk.hex('#7C4DFF')(session.user.plan) },\n { key: chalk.bold('Session Expires'), value: formatCountdown(timeLeft) },\n ]\n\n console.log(renderCompactTable(rows, [\n { key: 'key', label: 'Attribute' },\n { key: 'value', label: 'Value' },\n ]))\n}\n"]}
|
package/dist/chunk-6RI4Z6IY.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {f}from'./chunk-BC3STHFS.js';import {a,b}from'./chunk-OSI5H2T5.js';import g from'cli-progress';import n from'chalk';function h(){let e=Date.now();return {startTime:e,lastBytes:0,lastTime:e,speed:0}}function $(e,r){let t=Date.now(),o=(t-e.lastTime)/1e3;o>=.3&&(e.speed=(r-e.lastBytes)/o,e.lastBytes=r,e.lastTime=t);}function F(e,r){let t=h(),o=new g.SingleBar({format:(i,a$1,b$1)=>{let p=a$1.percentage??0,m=a$1.value??0,d=a$1.barsize??20,l=Math.round(d*p/100),T=n.hex("#7C4DFF")(i.barCompleteChar.repeat(l)+i.barIncompleteChar.repeat(d-l)),S=b$1?.filename??e,c=t.speed,C=c>0?(r-m)/c:0;return [`${f} ${n.bold(S)}`,T,n.white(`${p.toFixed(0)}%`),n.dim(`${a(m)} / ${a(r)}`),n.hex("#4FC3F7")(`${a(c)}/s`),n.dim(`ETA ${b(C*1e3)}`)].join(" ")},barCompleteChar:"\u2588",barIncompleteChar:"\u2591",hideCursor:true,clearOnComplete:false,stopOnComplete:true});return o.start(r,0,{filename:e}),{bar:o,tracker:t}}function P(e,r,t){$(r,t),e.update(t);}export{F as a,P as b};//# sourceMappingURL=chunk-6RI4Z6IY.js.map
|
|
2
|
-
//# sourceMappingURL=chunk-6RI4Z6IY.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/output/progress.ts"],"names":["createSpeedTracker","now","updateSpeed","t","bytes","dt","createProgressBar","filename","total","tracker","bar","cliProgress","options","params","payload","percent","val","barSize","completeLen","barStr","chalk","name","speed","eta","PROGRESS_MARK","formatBytes","formatDuration","updateProgress"],"mappings":"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","file":"chunk-6RI4Z6IY.js","sourcesContent":["import cliProgress from 'cli-progress'\nimport chalk from 'chalk'\nimport { formatBytes, formatDuration } from '../utils/format.js'\nimport { isCI, isJsonMode } from './index.js'\nimport { PROGRESS_MARK } from './brand.js'\n\ninterface SpeedTracker {\n startTime: number\n lastBytes: number\n lastTime: number\n speed: number\n}\n\nexport function createSpeedTracker(): SpeedTracker {\n const now = Date.now()\n return { startTime: now, lastBytes: 0, lastTime: now, speed: 0 }\n}\n\nexport function updateSpeed(t: SpeedTracker, bytes: number): void {\n const now = Date.now()\n const dt = (now - t.lastTime) / 1000\n if (dt >= 0.3) {\n t.speed = (bytes - t.lastBytes) / dt\n t.lastBytes = bytes\n t.lastTime = now\n }\n}\n\nexport function speedInfo(t: SpeedTracker, total: number): string {\n const speed = t.speed\n const elapsed = (Date.now() - t.startTime) / 1000\n const eta = speed > 0 ? ((total - t.lastBytes) / speed) : 0\n return `${chalk.hex('#4FC3F7')(`${formatBytes(speed)}/s`)} ${chalk.dim(`· ETA ${formatDuration(eta * 1000)}`)}`\n}\n\nexport function createProgressBar(filename: string, total: number): { bar: cliProgress.SingleBar; tracker: SpeedTracker } {\n const tracker = createSpeedTracker()\n\n const bar = new cliProgress.SingleBar({\n format: (options, params, payload) => {\n const percent = params.percentage ?? 0\n const val = params.value ?? 0\n const barSize = params.barsize ?? 20\n const completeLen = Math.round(barSize * percent / 100)\n const barStr = chalk.hex('#7C4DFF')(\n options.barCompleteChar!.repeat(completeLen) +\n options.barIncompleteChar!.repeat(barSize - completeLen)\n )\n const name = (payload as { filename?: string })?.filename ?? filename\n const speed = tracker.speed\n const eta = speed > 0 ? ((total - val) / speed) : 0\n return [\n `${PROGRESS_MARK} ${chalk.bold(name)}`,\n barStr,\n chalk.white(`${percent.toFixed(0)}%`),\n chalk.dim(`${formatBytes(val)} / ${formatBytes(total)}`),\n chalk.hex('#4FC3F7')(`${formatBytes(speed)}/s`),\n chalk.dim(`ETA ${formatDuration(eta * 1000)}`),\n ].join(' ')\n },\n barCompleteChar: '█',\n barIncompleteChar: '░',\n hideCursor: true,\n clearOnComplete: false,\n stopOnComplete: true,\n })\n\n bar.start(total, 0, { filename })\n return { bar, tracker }\n}\n\nexport function updateProgress(bar: cliProgress.SingleBar, tracker: SpeedTracker, bytes: number): void {\n updateSpeed(tracker, bytes)\n bar.update(bytes)\n}\n"]}
|
package/dist/chunk-6VDGYAGT.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {etc,utils,getPublicKey,verify,sign}from'@noble/ed25519';import {x25519}from'@noble/curves/ed25519.js';import {sha256}from'@noble/hashes/sha256';import {sha512}from'@noble/hashes/sha512';import {hmac}from'@noble/hashes/hmac';import {hkdf}from'@noble/hashes/hkdf';import {blake3}from'@noble/hashes/blake3';import {concatBytes,randomBytes}from'@noble/hashes/utils';import {gcm}from'@noble/ciphers/aes';import {pbkdf2Sync}from'crypto';import {hostname,platform,arch}from'os';etc.sha512Sync=(...r)=>sha512(concatBytes(...r));var w="squidcloud-session-v1";function I(){let r=utils.randomPrivateKey();return {pub:getPublicKey(r),priv:r}}function J(){return randomBytes(32)}function C(r,t){let n=Buffer.from(t.slice(0,32).padEnd(32,"\0"));return pbkdf2Sync(r,n,1e5,32,"sha512")}function M(r){let t=`${r}:${hostname()}:${platform()}:${arch()}`;return Buffer.from(blake3(t)).toString("hex")}function R(r,t,n,i){let e=new Uint8Array(r.length+t.length+n.length+8);e.set(r,0),e.set(t,r.length),e.set(n,r.length+t.length);let s=new Uint8Array(8);return new DataView(s.buffer).setBigUint64(0,BigInt(i),false),e.set(s,r.length+t.length+n.length),blake3(e)}function V(r,t){return x25519.getSharedSecret(t,r)}function j(r,t,n){let i=new Uint8Array(t.length+n.length);return i.set(t,0),i.set(n,t.length),hkdf(sha256,r,i,w,32)}function z(r,t){let n=randomBytes(12),i=new TextEncoder().encode(JSON.stringify(r)),s=gcm(t,n).encrypt(i),o=s.slice(0,-16),u=s.slice(-16);return {ciphertext:o,iv:n,tag:u}}function G(r,t,n,i){let e=new Uint8Array(r.length+n.length);e.set(r,0),e.set(n,r.length);let o=gcm(i,t).decrypt(e);return JSON.parse(new TextDecoder().decode(o))}function L(r,t,n){return verify(r,t,n)}function Q(r,t){return sign(t,r)}function W(r,t){return Buffer.from(hmac(sha256,r,t)).toString("hex")}function X(r){return Buffer.from(r).toString("hex")}function Y(r){return new Uint8Array(Buffer.from(r,"hex"))}export{I as a,J as b,C as c,M as d,R as e,V as f,j as g,z as h,G as i,L as j,Q as k,W as l,X as m,Y as n};//# sourceMappingURL=chunk-6VDGYAGT.js.map
|
|
2
|
-
//# sourceMappingURL=chunk-6VDGYAGT.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/crypto/ssp.ts"],"names":["etc","msgs","sha512","concatBytes","HKDF_INFO","generateKeypair","priv","edUtils","getPublicKey","generateNonce","randomBytes","hashPassword","password","email","salt","pbkdf2Sync","computeDeviceFingerprint","machineId","data","hostname","platform","arch","blake3","computeSignPayload","clientNonce","serverNonce","clientPub","timestamp","payload","tsBuf","deriveSharedSecret","pub","x25519","deriveEncryptionKey","ecdhSecret","hkdf","sha256","encryptSession","session","key","iv","plaintext","encrypted","gcm","ciphertext","tag","decryptSession","combined","verifyServerSignature","signature","serverPub","verify","signPayload","sign","computeHMAC","hmac","bytesToHex","buf","hexToBytes","hex"],"mappings":"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","file":"chunk-6VDGYAGT.js","sourcesContent":["import { getPublicKey, sign, verify, etc, utils as edUtils } from '@noble/ed25519'\nimport { x25519 } from '@noble/curves/ed25519.js'\nimport { sha256 } from '@noble/hashes/sha256'\nimport { sha512 } from '@noble/hashes/sha512'\nimport { hmac } from '@noble/hashes/hmac'\nimport { hkdf } from '@noble/hashes/hkdf'\nimport { blake3 } from '@noble/hashes/blake3'\nimport { randomBytes, concatBytes } from '@noble/hashes/utils'\nimport { gcm } from '@noble/ciphers/aes'\nimport { pbkdf2Sync } from 'node:crypto'\nimport { hostname, platform, arch } from 'node:os'\n\netc.sha512Sync = (...msgs: Uint8Array[]) => sha512(concatBytes(...msgs))\n\nconst HKDF_INFO = 'squidcloud-session-v1'\n\nexport interface SSPHello {\n email: string\n password_proof: string\n client_ephemeral_pub: string\n client_nonce: string\n device_fingerprint: string\n timestamp: number\n}\n\nexport interface SSPResponse {\n server_nonce: string\n server_ephemeral_pub: string\n server_signature: string\n encrypted_session: string\n session_iv: string\n session_tag: string\n}\n\nexport interface SquidSession {\n session_id: string\n access_token: string\n refresh_token: string\n refresh_token_id: string\n device_fingerprint: string\n issued_at: number\n expires_at: number\n user: {\n id: string\n email: string\n username: string\n plan: 'free' | 'pro' | 'team'\n }\n api_key?: string\n}\n\nexport function generateKeypair(): { pub: Uint8Array; priv: Uint8Array } {\n const priv = edUtils.randomPrivateKey()\n const pub = getPublicKey(priv)\n return { pub, priv }\n}\n\nexport function generateNonce(): Uint8Array {\n return randomBytes(32)\n}\n\nexport function hashPassword(password: string, email: string): Buffer {\n const salt = Buffer.from(email.slice(0, 32).padEnd(32, '\\x00'))\n return pbkdf2Sync(password, salt, 100000, 32, 'sha512')\n}\n\nexport function computeDeviceFingerprint(machineId: string): string {\n const data = `${machineId}:${hostname()}:${platform()}:${arch()}`\n return Buffer.from(blake3(data)).toString('hex')\n}\n\nexport function computeSignPayload(clientNonce: Uint8Array, serverNonce: Uint8Array, clientPub: Uint8Array, timestamp: number): Uint8Array {\n const payload = new Uint8Array(clientNonce.length + serverNonce.length + clientPub.length + 8)\n payload.set(clientNonce, 0)\n payload.set(serverNonce, clientNonce.length)\n payload.set(clientPub, clientNonce.length + serverNonce.length)\n const tsBuf = new Uint8Array(8)\n new DataView(tsBuf.buffer).setBigUint64(0, BigInt(timestamp), false)\n payload.set(tsBuf, clientNonce.length + serverNonce.length + clientPub.length)\n return blake3(payload)\n}\n\nexport function deriveSharedSecret(pub: Uint8Array, priv: Uint8Array): Uint8Array {\n return x25519.getSharedSecret(priv, pub)\n}\n\nexport function deriveEncryptionKey(ecdhSecret: Uint8Array, clientNonce: Uint8Array, serverNonce: Uint8Array): Uint8Array {\n const salt = new Uint8Array(clientNonce.length + serverNonce.length)\n salt.set(clientNonce, 0)\n salt.set(serverNonce, clientNonce.length)\n return hkdf(sha256, ecdhSecret, salt, HKDF_INFO, 32)\n}\n\nexport function encryptSession(session: SquidSession, key: Uint8Array): { ciphertext: Uint8Array; iv: Uint8Array; tag: Uint8Array } {\n const iv = randomBytes(12)\n const plaintext = new TextEncoder().encode(JSON.stringify(session))\n const aes = gcm(key, iv)\n const encrypted = aes.encrypt(plaintext)\n const ciphertext = encrypted.slice(0, -16)\n const tag = encrypted.slice(-16)\n return { ciphertext, iv, tag }\n}\n\nexport function decryptSession(encrypted: Uint8Array, iv: Uint8Array, tag: Uint8Array, key: Uint8Array): SquidSession {\n const combined = new Uint8Array(encrypted.length + tag.length)\n combined.set(encrypted, 0)\n combined.set(tag, encrypted.length)\n const aes = gcm(key, iv)\n const plaintext = aes.decrypt(combined)\n return JSON.parse(new TextDecoder().decode(plaintext)) as SquidSession\n}\n\nexport function verifyServerSignature(signature: Uint8Array, payload: Uint8Array, serverPub: Uint8Array): Promise<boolean> {\n return verify(signature, payload, serverPub)\n}\n\nexport function signPayload(priv: Uint8Array, payload: Uint8Array): Promise<Uint8Array> {\n return sign(payload, priv)\n}\n\nexport function computeHMAC(key: Uint8Array, data: string): string {\n return Buffer.from(hmac(sha256, key, data)).toString('hex')\n}\n\nexport function bytesToHex(buf: Uint8Array): string {\n return Buffer.from(buf).toString('hex')\n}\n\nexport function hexToBytes(hex: string): Uint8Array {\n return new Uint8Array(Buffer.from(hex, 'hex'))\n}\n"]}
|
package/dist/chunk-74TMDLBA.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {q,y,x}from'./chunk-BC3STHFS.js';import {a,c as c$1}from'./chunk-OSI5H2T5.js';import {c}from'./chunk-5TMR6Y7L.js';import e from'chalk';async function m(r){let o=(await c(`/api/v1/storage/info?path=${encodeURIComponent(r)}`,{authenticated:true})).file;if(q()){y(o);return}x(""),x(` ${e.bold(o.name)}`),x(e.dim(" \u2500\u2500\u2500".repeat(10))),x(` ${e.bold("Size:")} ${a(o.size)}`),x(` ${e.bold("Type:")} ${o.mime_type}`),x(` ${e.bold("Hash:")} ${e.dim(o.content_hash?.slice(0,16)||"-")}`),x(` ${e.bold("Created:")} ${c$1(o.created_at)}`),x(` ${e.bold("Modified:")} ${c$1(o.updated_at)}`),x(` ${e.bold("Tags:")} ${o.tags?.length?o.tags.join(", "):e.dim("none")}`),x(` ${e.bold("Shared:")} ${o.shared?e.green("yes"):e.dim("no")}`),x(` ${e.bold("Published:")} ${o.published?e.green("yes"):e.dim("no")}`),x(` ${e.bold("Scan:")} ${o.scan_status||e.dim("pending")}`),x("");}export{m as a};//# sourceMappingURL=chunk-74TMDLBA.js.map
|
|
2
|
-
//# sourceMappingURL=chunk-74TMDLBA.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/storage/storage-info.ts"],"names":["storageInfo","path","f","apiGet","isJsonMode","logJSON","logRaw","chalk","formatBytes","formatDate"],"mappings":"8IAmBA,eAAOA,CAAAA,CAAmCC,EAA6B,CAErE,IAAMC,GADO,MAAMC,CAAAA,CAA2B,6BAA6B,kBAAA,CAAmBF,CAAI,CAAC,CAAA,CAAA,CAAI,CAAE,cAAe,IAAK,CAAC,CAAA,EAC/G,IAAA,CAEf,GAAIG,CAAAA,GAAc,CAChBC,CAAAA,CAAQH,CAAC,CAAA,CACT,MACF,CAEAI,CAAAA,CAAO,EAAE,EACTA,CAAAA,CAAO,CAAA,EAAA,EAAKC,EAAM,IAAA,CAAKL,CAAAA,CAAE,IAAI,CAAC,CAAA,CAAE,EAChCI,CAAAA,CAAOC,CAAAA,CAAM,GAAA,CAAI,sBAAA,CAAQ,MAAA,CAAO,EAAE,CAAC,CAAC,CAAA,CACpCD,EAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,KAAK,OAAO,CAAC,YAAYC,CAAAA,CAAYN,CAAAA,CAAE,IAAI,CAAC,CAAA,CAAE,EAChEI,CAAAA,CAAO,CAAA,EAAA,EAAKC,EAAM,IAAA,CAAK,OAAO,CAAC,CAAA,SAAA,EAAYL,CAAAA,CAAE,SAAS,EAAE,CAAA,CACxDI,CAAAA,CAAO,KAAKC,CAAAA,CAAM,IAAA,CAAK,OAAO,CAAC,CAAA,SAAA,EAAYA,EAAM,GAAA,CAAIL,CAAAA,CAAE,cAAc,KAAA,CAAM,CAAA,CAAG,EAAE,CAAA,EAAK,GAAG,CAAC,CAAA,CAAE,CAAA,CAC3FI,CAAAA,CAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,IAAA,CAAK,UAAU,CAAC,CAAA,MAAA,EAASE,IAAWP,CAAAA,CAAE,UAAU,CAAC,CAAA,CAAE,CAAA,CACrEI,EAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,KAAK,WAAW,CAAC,QAAQE,GAAAA,CAAWP,CAAAA,CAAE,UAAU,CAAC,CAAA,CAAE,CAAA,CACrEI,CAAAA,CAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,KAAK,OAAO,CAAC,YAAYL,CAAAA,CAAE,IAAA,EAAM,OAASA,CAAAA,CAAE,IAAA,CAAK,KAAK,IAAI,CAAA,CAAIK,EAAM,GAAA,CAAI,MAAM,CAAC,CAAA,CAAE,CAAA,CACnGD,EAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,IAAA,CAAK,SAAS,CAAC,CAAA,OAAA,EAAUL,EAAE,MAAA,CAASK,CAAAA,CAAM,MAAM,KAAK,CAAA,CAAIA,EAAM,GAAA,CAAI,IAAI,CAAC,CAAA,CAAE,CAAA,CAC5FD,EAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,KAAK,YAAY,CAAC,OAAOL,CAAAA,CAAE,SAAA,CAAYK,CAAAA,CAAM,KAAA,CAAM,KAAK,CAAA,CAAIA,EAAM,GAAA,CAAI,IAAI,CAAC,CAAA,CAAE,CAAA,CAC/FD,EAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,KAAK,OAAO,CAAC,YAAYL,CAAAA,CAAE,WAAA,EAAeK,EAAM,GAAA,CAAI,SAAS,CAAC,CAAA,CAAE,CAAA,CAClFD,CAAAA,CAAO,EAAE,EACX","file":"chunk-74TMDLBA.js","sourcesContent":["import { apiGet } from '../../lib/api/client.js'\nimport { logJSON, logRaw } from '../../lib/output/logger.js'\nimport { isJsonMode } from '../../lib/output/logger.js'\nimport { formatBytes, formatDate } from '../../lib/utils/format.js'\nimport chalk from 'chalk'\n\ninterface FileInfo {\n name: string\n size: number\n mime_type: string\n content_hash: string\n created_at: string\n updated_at: string\n tags: string[]\n shared: boolean\n published: boolean\n scan_status: string\n}\n\nexport default async function storageInfo(path: string): Promise<void> {\n const data = await apiGet<{ file: FileInfo }>(`/api/v1/storage/info?path=${encodeURIComponent(path)}`, { authenticated: true })\n const f = data.file\n\n if (isJsonMode()) {\n logJSON(f)\n return\n }\n\n logRaw('')\n logRaw(` ${chalk.bold(f.name)}`)\n logRaw(chalk.dim(' ───'.repeat(10)))\n logRaw(` ${chalk.bold('Size:')} ${formatBytes(f.size)}`)\n logRaw(` ${chalk.bold('Type:')} ${f.mime_type}`)\n logRaw(` ${chalk.bold('Hash:')} ${chalk.dim(f.content_hash?.slice(0, 16) || '-')}`)\n logRaw(` ${chalk.bold('Created:')} ${formatDate(f.created_at)}`)\n logRaw(` ${chalk.bold('Modified:')} ${formatDate(f.updated_at)}`)\n logRaw(` ${chalk.bold('Tags:')} ${f.tags?.length ? f.tags.join(', ') : chalk.dim('none')}`)\n logRaw(` ${chalk.bold('Shared:')} ${f.shared ? chalk.green('yes') : chalk.dim('no')}`)\n logRaw(` ${chalk.bold('Published:')} ${f.published ? chalk.green('yes') : chalk.dim('no')}`)\n logRaw(` ${chalk.bold('Scan:')} ${f.scan_status || chalk.dim('pending')}`)\n logRaw('')\n}\n"]}
|
package/dist/chunk-7DPXZUZY.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {c}from'./chunk-YZWZNR6K.js';import {x}from'./chunk-BC3STHFS.js';import {c as c$2}from'./chunk-5TMR6Y7L.js';import y from'fs';import c$1 from'path';import {createHash}from'crypto';import o from'chalk';async function S(v,w){let g=c("Computing diff...");g.start();let m=c$1.resolve(v),l=new Map;function p(e,a){let F=y.readdirSync(e,{withFileTypes:true});for(let s of F){let h=c$1.join(e,s.name),k=c$1.relative(a,h);if(!(s.name.startsWith(".")||s.name==="node_modules")){if(s.isDirectory())p(h,a);else if(s.isFile()){let C=createHash("sha256").update(y.readFileSync(h)).digest("hex");l.set(k,C);}}}}p(m,m);let $=await c$2(`/api/v1/storage/ls-recursive?path=${encodeURIComponent(w)}`,{authenticated:true}),f=new Map(($.files||[]).map(e=>[e.path,e.hash]));g.stop();let n=[],r=[],i=[];for(let[e,a]of l)f.has(e)?f.get(e)!==a&&i.push(e):n.push(e);for(let e of f.keys())l.has(e)||r.push(e);x(""),n.length===0&&r.length===0&&i.length===0?x(` ${o.green("\u2713 Identical \u2014 no changes")}`):(n.length>0&&(x(o.green(` + ${n.length} to upload`)),n.forEach(e=>x(o.green(` + ${e}`)))),i.length>0&&(x(o.yellow(` ~ ${i.length} modified`)),i.forEach(e=>x(o.yellow(` ~ ${e}`)))),r.length>0&&(x(o.red(` - ${r.length} to delete`)),r.forEach(e=>x(o.red(` - ${e}`))))),x("");}export{S as a};//# sourceMappingURL=chunk-7DPXZUZY.js.map
|
|
2
|
-
//# sourceMappingURL=chunk-7DPXZUZY.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/storage/storage-diff.ts"],"names":["storageDiff","localPath","remotePath","spinner","createSpinner","localDir","path","localFiles","walk","dir","baseDir","entries","fs","entry","fullPath","relative","hash","createHash","remote","apiGet","remoteFiles","f","added","removed","modified","rel","logRaw","chalk"],"mappings":"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","file":"chunk-7DPXZUZY.js","sourcesContent":["import fs from 'node:fs'\nimport path from 'node:path'\nimport { createHash } from 'node:crypto'\nimport { apiGet } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logRaw } from '../../lib/output/logger.js'\nimport chalk from 'chalk'\nimport { renderCompactTable } from '../../lib/output/table.js'\n\nexport default async function storageDiff(localPath: string, remotePath: string): Promise<void> {\n const spinner = createSpinner('Computing diff...')\n spinner.start()\n\n const localDir = path.resolve(localPath)\n const localFiles = new Map<string, string>()\n\n function walk(dir: string, baseDir: string): void {\n const entries = fs.readdirSync(dir, { withFileTypes: true })\n for (const entry of entries) {\n const fullPath = path.join(dir, entry.name)\n const relative = path.relative(baseDir, fullPath)\n if (entry.name.startsWith('.') || entry.name === 'node_modules') continue\n if (entry.isDirectory()) {\n walk(fullPath, baseDir)\n } else if (entry.isFile()) {\n const hash = createHash('sha256').update(fs.readFileSync(fullPath)).digest('hex')\n localFiles.set(relative, hash)\n }\n }\n }\n walk(localDir, localDir)\n\n const remote = await apiGet<{ files: { path: string; hash: string }[] }>(`/api/v1/storage/ls-recursive?path=${encodeURIComponent(remotePath)}`, { authenticated: true })\n const remoteFiles = new Map((remote.files || []).map(f => [f.path, f.hash]))\n\n spinner.stop()\n\n const added: string[] = []\n const removed: string[] = []\n const modified: string[] = []\n\n for (const [rel, hash] of localFiles) {\n if (!remoteFiles.has(rel)) {\n added.push(rel)\n } else if (remoteFiles.get(rel) !== hash) {\n modified.push(rel)\n }\n }\n for (const rel of remoteFiles.keys()) {\n if (!localFiles.has(rel)) {\n removed.push(rel)\n }\n }\n\n logRaw('')\n if (added.length === 0 && removed.length === 0 && modified.length === 0) {\n logRaw(` ${chalk.green('✓ Identical — no changes')}`)\n } else {\n if (added.length > 0) {\n logRaw(chalk.green(` + ${added.length} to upload`))\n added.forEach(f => logRaw(chalk.green(` + ${f}`)))\n }\n if (modified.length > 0) {\n logRaw(chalk.yellow(` ~ ${modified.length} modified`))\n modified.forEach(f => logRaw(chalk.yellow(` ~ ${f}`)))\n }\n if (removed.length > 0) {\n logRaw(chalk.red(` - ${removed.length} to delete`))\n removed.forEach(f => logRaw(chalk.red(` - ${f}`)))\n }\n }\n logRaw('')\n}\n"]}
|
package/dist/chunk-7VVZS6US.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {c as c$1}from'./chunk-YZWZNR6K.js';import {s}from'./chunk-BC3STHFS.js';import {d}from'./chunk-5TMR6Y7L.js';import {h}from'./chunk-BQGHHBGH.js';import a from'inquirer';async function c(e){if(e.all){let{confirm:s$1}=await a.prompt([{type:"confirm",name:"confirm",message:"Revoke ALL active sessions? This will log out every device.",default:false}]);if(!s$1)return;let t=c$1("Revoking all sessions...");t.start(),await d("/api/auth/ssp/revoke-all",{},{authenticated:true}),await h(),t.succeed(),s("All sessions revoked");return}if(e.session){let s$1=c$1(`Revoking session ${e.session}...`);s$1.start(),await d("/api/auth/ssp/revoke",{session_id:e.session},{authenticated:true}),s$1.succeed(),s(`Session ${e.session} revoked`);return}console.error("Specify --session <id> or --all"),process.exit(1);}export{c as a};//# sourceMappingURL=chunk-7VVZS6US.js.map
|
|
2
|
-
//# sourceMappingURL=chunk-7VVZS6US.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/auth/auth-revoke.ts"],"names":["authRevoke","options","confirm","inquirer","spinner","createSpinner","apiPost","clearSession","logSuccess"],"mappings":"+KAOA,eAAOA,CAAAA,CAAkCC,CAAAA,CAA6D,CACpG,GAAIA,CAAAA,CAAQ,GAAA,CAAK,CACf,GAAM,CAAE,QAAAC,GAAQ,CAAA,CAAI,MAAMC,CAAAA,CAAS,MAAA,CAAO,CAAC,CACzC,IAAA,CAAM,SAAA,CACN,IAAA,CAAM,SAAA,CACN,OAAA,CAAS,6DAAA,CACT,QAAS,KACX,CAAC,CAAC,CAAA,CACF,GAAI,CAACD,IAAS,OACd,IAAME,CAAAA,CAAUC,GAAAA,CAAc,0BAA0B,CAAA,CACxDD,EAAQ,KAAA,EAAM,CACd,MAAME,CAAAA,CAAQ,0BAAA,CAA4B,EAAC,CAAG,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CACrE,MAAMC,CAAAA,GACNH,CAAAA,CAAQ,OAAA,EAAQ,CAChBI,CAAAA,CAAW,sBAAsB,CAAA,CACjC,MACF,CAEA,GAAIP,CAAAA,CAAQ,OAAA,CAAS,CACnB,IAAMG,IAAUC,GAAAA,CAAc,CAAA,iBAAA,EAAoBJ,CAAAA,CAAQ,OAAO,CAAA,GAAA,CAAK,CAAA,CACtEG,IAAQ,KAAA,EAAM,CACd,MAAME,CAAAA,CAAQ,sBAAA,CAAwB,CAAE,WAAYL,CAAAA,CAAQ,OAAQ,CAAA,CAAG,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAC9FG,GAAAA,CAAQ,OAAA,EAAQ,CAChBI,CAAAA,CAAW,CAAA,QAAA,EAAWP,EAAQ,OAAO,CAAA,QAAA,CAAU,CAAA,CAC/C,MACF,CAEA,OAAA,CAAQ,KAAA,CAAM,iCAAiC,CAAA,CAC/C,OAAA,CAAQ,IAAA,CAAK,CAAC,EAChB","file":"chunk-7VVZS6US.js","sourcesContent":["import { Command } from 'commander'\nimport { apiPost } from '../../lib/api/client.js'\nimport { clearSession } from '../../lib/auth/session.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess } from '../../lib/output/logger.js'\nimport inquirer from 'inquirer'\n\nexport default async function authRevoke(options: { session?: string; all?: boolean }): Promise<void> {\n if (options.all) {\n const { confirm } = await inquirer.prompt([{\n type: 'confirm',\n name: 'confirm',\n message: 'Revoke ALL active sessions? This will log out every device.',\n default: false,\n }])\n if (!confirm) return\n const spinner = createSpinner('Revoking all sessions...')\n spinner.start()\n await apiPost('/api/auth/ssp/revoke-all', {}, { authenticated: true })\n await clearSession()\n spinner.succeed()\n logSuccess('All sessions revoked')\n return\n }\n\n if (options.session) {\n const spinner = createSpinner(`Revoking session ${options.session}...`)\n spinner.start()\n await apiPost('/api/auth/ssp/revoke', { session_id: options.session }, { authenticated: true })\n spinner.succeed()\n logSuccess(`Session ${options.session} revoked`)\n return\n }\n\n console.error('Specify --session <id> or --all')\n process.exit(1)\n}\n"]}
|
package/dist/chunk-A6WS3TOF.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {c}from'./chunk-YZWZNR6K.js';import {q,y,s}from'./chunk-BC3STHFS.js';import {d}from'./chunk-5TMR6Y7L.js';import f from'fs';import m from'path';async function l(u,e){let t=m.resolve(u);f.existsSync(t)||(console.error(`File not found: ${t}`),process.exit(1));let d$1=f.readFileSync(t),g=Array.isArray(e.to)?e.to:e.to?[e.to]:[],r=c("Sending signing request...");r.start();let o=await d("/api/v1/sign/request",{filename:m.basename(t),content:d$1.toString("base64"),recipients:g,ordered:e.order||false},{authenticated:true});if(r.succeed(),q()){y(o);return}s(`Signing request sent (${o.request_id.slice(0,8)})`);}export{l as a};//# sourceMappingURL=chunk-A6WS3TOF.js.map
|
|
2
|
-
//# sourceMappingURL=chunk-A6WS3TOF.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/sign/sign-request.ts"],"names":["signRequest","file","options","filePath","path","fs","content","to","spinner","createSpinner","result","apiPost","isJsonMode","logJSON","logSuccess"],"mappings":"sJAOA,eAAOA,CAAAA,CAAmCC,CAAAA,CAAcC,CAAAA,CAAqE,CAC3H,IAAMC,CAAAA,CAAWC,EAAK,OAAA,CAAQH,CAAI,CAAA,CAC7BI,CAAAA,CAAG,UAAA,CAAWF,CAAQ,IACzB,OAAA,CAAQ,KAAA,CAAM,CAAA,gBAAA,EAAmBA,CAAQ,CAAA,CAAE,CAAA,CAC3C,QAAQ,IAAA,CAAK,CAAC,CAAA,CAAA,CAGhB,IAAMG,GAAAA,CAAUD,CAAAA,CAAG,aAAaF,CAAQ,CAAA,CAClCI,CAAAA,CAAK,KAAA,CAAM,OAAA,CAAQL,CAAAA,CAAQ,EAAE,CAAA,CAAIA,CAAAA,CAAQ,EAAA,CAAKA,CAAAA,CAAQ,EAAA,CAAK,CAACA,EAAQ,EAAE,CAAA,CAAI,EAAC,CAE3EM,CAAAA,CAAUC,CAAAA,CAAc,4BAA4B,CAAA,CAC1DD,CAAAA,CAAQ,KAAA,EAAM,CAEd,IAAME,CAAAA,CAAS,MAAMC,CAAAA,CAAgC,sBAAA,CAAwB,CAC3E,QAAA,CAAUP,CAAAA,CAAK,QAAA,CAASD,CAAQ,CAAA,CAChC,OAAA,CAASG,GAAAA,CAAQ,QAAA,CAAS,QAAQ,CAAA,CAClC,WAAYC,CAAAA,CACZ,OAAA,CAASL,CAAAA,CAAQ,KAAA,EAAS,KAC5B,CAAA,CAAG,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAG1B,GADAM,CAAAA,CAAQ,SAAQ,CACZI,CAAAA,EAAW,CAAG,CAChBC,CAAAA,CAAQH,CAAM,EACd,MACF,CACAI,CAAAA,CAAW,CAAA,sBAAA,EAAyBJ,CAAAA,CAAO,UAAA,CAAW,MAAM,CAAA,CAAG,CAAC,CAAC,CAAA,CAAA,CAAG,EACtE","file":"chunk-A6WS3TOF.js","sourcesContent":["import fs from 'node:fs'\nimport path from 'node:path'\nimport { apiPost } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess, logJSON } from '../../lib/output/logger.js'\nimport { isJsonMode } from '../../lib/output/logger.js'\n\nexport default async function signRequest(file: string, options: { to?: string | string[]; order?: boolean }): Promise<void> {\n const filePath = path.resolve(file)\n if (!fs.existsSync(filePath)) {\n console.error(`File not found: ${filePath}`)\n process.exit(1)\n }\n\n const content = fs.readFileSync(filePath)\n const to = Array.isArray(options.to) ? options.to : options.to ? [options.to] : []\n\n const spinner = createSpinner('Sending signing request...')\n spinner.start()\n\n const result = await apiPost<{ request_id: string }>('/api/v1/sign/request', {\n filename: path.basename(filePath),\n content: content.toString('base64'),\n recipients: to,\n ordered: options.order || false,\n }, { authenticated: true })\n\n spinner.succeed()\n if (isJsonMode()) {\n logJSON(result)\n return\n }\n logSuccess(`Signing request sent (${result.request_id.slice(0, 8)})`)\n}\n"]}
|
package/dist/chunk-ADOHZ74F.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {t,q,y,x}from'./chunk-BC3STHFS.js';import {e as e$1}from'./chunk-OSI5H2T5.js';import {f,a,k}from'./chunk-BQGHHBGH.js';import e from'chalk';async function u(){let i=await f();i||(t("Not authenticated"),process.exit(1));let f$1=a(),t$1=i.device_fingerprint===f$1,o=k(i),s=o<=120*1e3;if(q()){y({authenticated:true,session_id:i.session_id,expires_in_ms:o,fingerprint_match:t$1,needs_refresh:s,user:i.user});return}x(""),x(`${e.bold("Session Health")}`),x(`${e.dim("\u2500\u2500\u2500".repeat(15))}`),x(` ${e.bold("Session ID:")} ${e.dim(i.session_id)}`),x(` ${e.bold("User:")} ${i.user.email} (${i.user.username})`),x(` ${e.bold("Plan:")} ${e.hex("#7C4DFF")(i.user.plan)}`),x(` ${e.bold("Expires:")} ${o>0?e$1(o):e.red("expired")}`),x(` ${e.bold("Fingerprint:")} ${t$1?e.green("\u2713 match"):e.red("\u2717 mismatch")}`),x(` ${e.bold("Refresh:")} ${s?e.yellow("needed soon"):e.green("ok")}`),x("");}export{u as a};//# sourceMappingURL=chunk-ADOHZ74F.js.map
|
|
2
|
-
//# sourceMappingURL=chunk-ADOHZ74F.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/auth/auth-status.ts"],"names":["authStatus","session","loadSession","logError","currentFingerprint","computeDeviceFingerprint","fingerprintMatch","timeLeft","getTimeUntilExpiry","needsRefresh","isJsonMode","logJSON","logRaw","chalk","formatCountdown"],"mappings":"kJAOA,eAAOA,GAAmD,CACxD,IAAMC,EAAU,MAAMC,CAAAA,GACjBD,CAAAA,GACHE,CAAAA,CAAS,mBAAmB,CAAA,CAC5B,OAAA,CAAQ,KAAK,CAAC,CAAA,CAAA,CAGhB,IAAMC,GAAAA,CAAqBC,CAAAA,EAAyB,CAC9CC,GAAAA,CAAmBL,EAAQ,kBAAA,GAAuBG,GAAAA,CAClDG,EAAWC,CAAAA,CAAmBP,CAAO,EACrCQ,CAAAA,CAAeF,CAAAA,EAAY,IAAS,GAAA,CAE1C,GAAIG,GAAW,CAAG,CAChBC,EAAQ,CACN,aAAA,CAAe,KACf,UAAA,CAAYV,CAAAA,CAAQ,UAAA,CACpB,aAAA,CAAeM,EACf,iBAAA,CAAmBD,GAAAA,CACnB,cAAeG,CAAAA,CACf,IAAA,CAAMR,EAAQ,IAChB,CAAC,EACD,MACF,CAEAW,EAAO,EAAE,CAAA,CACTA,EAAO,CAAA,EAAGC,CAAAA,CAAM,KAAK,gBAAgB,CAAC,EAAE,CAAA,CACxCD,CAAAA,CAAO,GAAGC,CAAAA,CAAM,GAAA,CAAI,qBAAM,MAAA,CAAO,EAAE,CAAC,CAAC,CAAA,CAAE,EACvCD,CAAAA,CAAO,CAAA,EAAA,EAAKC,EAAM,IAAA,CAAK,aAAa,CAAC,CAAA,IAAA,EAAOA,CAAAA,CAAM,IAAIZ,CAAAA,CAAQ,UAAU,CAAC,CAAA,CAAE,EAC3EW,CAAAA,CAAO,CAAA,EAAA,EAAKC,EAAM,IAAA,CAAK,OAAO,CAAC,CAAA,UAAA,EAAaZ,CAAAA,CAAQ,KAAK,KAAK,CAAA,EAAA,EAAKA,EAAQ,IAAA,CAAK,QAAQ,GAAG,CAAA,CAC3FW,CAAAA,CAAO,KAAKC,CAAAA,CAAM,IAAA,CAAK,OAAO,CAAC,CAAA,UAAA,EAAaA,EAAM,GAAA,CAAI,SAAS,EAAEZ,CAAAA,CAAQ,IAAA,CAAK,IAAI,CAAC,CAAA,CAAE,EACrFW,CAAAA,CAAO,CAAA,EAAA,EAAKC,EAAM,IAAA,CAAK,UAAU,CAAC,CAAA,OAAA,EAAUN,CAAAA,CAAW,EAAIO,GAAAA,CAAgBP,CAAQ,CAAA,CAAIM,CAAAA,CAAM,IAAI,SAAS,CAAC,EAAE,CAAA,CAC7GD,CAAAA,CAAO,KAAKC,CAAAA,CAAM,IAAA,CAAK,cAAc,CAAC,CAAA,GAAA,EAAMP,IAAmBO,CAAAA,CAAM,KAAA,CAAM,cAAS,CAAA,CAAIA,CAAAA,CAAM,IAAI,iBAAY,CAAC,EAAE,CAAA,CACjHD,CAAAA,CAAO,KAAKC,CAAAA,CAAM,IAAA,CAAK,UAAU,CAAC,CAAA,OAAA,EAAUJ,EAAeI,CAAAA,CAAM,MAAA,CAAO,aAAa,CAAA,CAAIA,CAAAA,CAAM,MAAM,IAAI,CAAC,EAAE,CAAA,CAC5GD,CAAAA,CAAO,EAAE,EACX","file":"chunk-ADOHZ74F.js","sourcesContent":["import { loadSession, getTimeUntilExpiry } from '../../lib/auth/session.js'\nimport { computeDeviceFingerprint } from '../../lib/auth/fingerprint.js'\nimport { logError, logJSON, logRaw } from '../../lib/output/logger.js'\nimport { isJsonMode } from '../../lib/output/logger.js'\nimport chalk from 'chalk'\nimport { formatCountdown } from '../../lib/utils/format.js'\n\nexport default async function authStatus(): Promise<void> {\n const session = await loadSession()\n if (!session) {\n logError('Not authenticated')\n process.exit(1)\n }\n\n const currentFingerprint = computeDeviceFingerprint()\n const fingerprintMatch = session.device_fingerprint === currentFingerprint\n const timeLeft = getTimeUntilExpiry(session)\n const needsRefresh = timeLeft <= 2 * 60 * 1000\n\n if (isJsonMode()) {\n logJSON({\n authenticated: true,\n session_id: session.session_id,\n expires_in_ms: timeLeft,\n fingerprint_match: fingerprintMatch,\n needs_refresh: needsRefresh,\n user: session.user,\n })\n return\n }\n\n logRaw('')\n logRaw(`${chalk.bold('Session Health')}`)\n logRaw(`${chalk.dim('───'.repeat(15))}`)\n logRaw(` ${chalk.bold('Session ID:')} ${chalk.dim(session.session_id)}`)\n logRaw(` ${chalk.bold('User:')} ${session.user.email} (${session.user.username})`)\n logRaw(` ${chalk.bold('Plan:')} ${chalk.hex('#7C4DFF')(session.user.plan)}`)\n logRaw(` ${chalk.bold('Expires:')} ${timeLeft > 0 ? formatCountdown(timeLeft) : chalk.red('expired')}`)\n logRaw(` ${chalk.bold('Fingerprint:')} ${fingerprintMatch ? chalk.green('✓ match') : chalk.red('✗ mismatch')}`)\n logRaw(` ${chalk.bold('Refresh:')} ${needsRefresh ? chalk.yellow('needed soon') : chalk.green('ok')}`)\n logRaw('')\n}\n"]}
|
package/dist/chunk-BC3STHFS.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import {a}from'./chunk-CFZZRV3Z.js';import n from'chalk';import $ from'gradient-string';import O from'os';import x from'fs';import R from'path';var F=$(["#4FC3F7","#7C4DFF"]),S=$(["#1a5276","#4a148c"]),d=F("\u25C6"),f=n.hex("#4CAF50")("\u2713"),g=n.hex("#F44336")("\u2717"),u=n.hex("#FF9800")("\u26A0"),l=n.hex("#4FC3F7")("\u2139"),N=n.hex("#7C4DFF")("\u25B8");function A(r){return F(r)}function K(r){return S(r)}function _(r){return `${d} ${A(r)}`}function y(r){return `${f} ${n.green(r)}`}function E(r){return `${g} ${n.red(r)}`}function J(r){return `${u} ${n.hex("#FF9800")(r)}`}function w(r){return `${l} ${n.hex("#4FC3F7")(r)}`}function h(r){return n.dim(r)}function D(r){return h("(copied to clipboard)")}var o=false;function q(r){o=r;}function U(){return o}function e(){return n.dim(`[${new Date().toISOString()}]`)}function P(r,s){if(o)return;let c=s?.prefix?`${s.prefix} `:"";a()?console.log(`${e()} ${c}${r}`):console.log(`${c}${r}`);}function z(r){if(o){console.log(JSON.stringify({level:"success",message:r}));return}a()?console.log(`${e()} ${f} ${r}`):console.log(`${f} ${n.green(r)}`);}function M(r){if(o){console.error(JSON.stringify({error:{message:r}}));return}a()?console.error(`${e()} ${g} ${n.red(r)}`):console.error(`${g} ${n.red(r)}`);}function H(r){o||(a()?console.warn(`${e()} ${u} ${n.hex("#FF9800")(r)}`):console.warn(`${u} ${n.hex("#FF9800")(r)}`));}function Q(r){o||(a()?console.log(`${e()} ${l} ${n.hex("#4FC3F7")(r)}`):console.log(`${l} ${n.hex("#4FC3F7")(r)}`));}function T(r){o||console.log(`${d} ${r}`);}function V(r){o||console.log(r);}function X(r){o&&console.log(JSON.stringify(r));}function Y(r){if(!o){M(r.message);return}console.error(JSON.stringify({error:r}));}function Z(r,s,c){let p=R.join(O.homedir(),".squidcloud"),m=R.join(p,"audit.log"),a=JSON.stringify({timestamp:new Date().toISOString(),command:r,args:s,exitCode:c,pid:process.pid})+`
|
|
2
|
-
`;try{x.existsSync(p)||x.mkdirSync(p,{recursive:!0,mode:448}),x.appendFileSync(m,a,{encoding:"utf-8"});}catch{}}export{Z as A,d as a,f as b,g as c,u as d,l as e,N as f,A as g,K as h,_ as i,y as j,E as k,J as l,w as m,h as n,D as o,q as p,U as q,P as r,z as s,M as t,H as u,Q as v,T as w,V as x,X as y,Y as z};//# sourceMappingURL=chunk-BC3STHFS.js.map
|
|
3
|
-
//# sourceMappingURL=chunk-BC3STHFS.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/output/brand.ts","../src/lib/output/logger.ts"],"names":["squidGradient","gradient","dimGradient","BRAND_MARKER","SUCCESS_MARK","chalk","ERROR_MARK","WARN_MARK","INFO_MARK","PROGRESS_MARK","brand","text","brandDim","brandLine","success","error","warn","info","muted","copied","jsonMode","setJsonMode","mode","isJsonMode","timestamp","log","message","options","prefix","isCI","logSuccess","logError","logWarn","logInfo","logBrand","logRaw","logJSON","data","logErrorJSON","writeAudit","command","args","exitCode","auditDir","path","os","auditFile","entry","fs"],"mappings":"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","file":"chunk-BC3STHFS.js","sourcesContent":["import chalk from 'chalk'\nimport gradient from 'gradient-string'\n\nconst squidGradient = gradient(['#4FC3F7', '#7C4DFF'])\nconst dimGradient = gradient(['#1a5276', '#4a148c'])\n\nexport const BRAND_MARKER = squidGradient('◆')\nexport const SUCCESS_MARK = chalk.hex('#4CAF50')('✓')\nexport const ERROR_MARK = chalk.hex('#F44336')('✗')\nexport const WARN_MARK = chalk.hex('#FF9800')('⚠')\nexport const INFO_MARK = chalk.hex('#4FC3F7')('ℹ')\nexport const PROGRESS_MARK = chalk.hex('#7C4DFF')('▸')\n\nexport function brand(text: string): string {\n return squidGradient(text)\n}\n\nexport function brandDim(text: string): string {\n return dimGradient(text)\n}\n\nexport function brandLine(text: string): string {\n return `${BRAND_MARKER} ${brand(text)}`\n}\n\nexport function success(text: string): string {\n return `${SUCCESS_MARK} ${chalk.green(text)}`\n}\n\nexport function error(text: string): string {\n return `${ERROR_MARK} ${chalk.red(text)}`\n}\n\nexport function warn(text: string): string {\n return `${WARN_MARK} ${chalk.hex('#FF9800')(text)}`\n}\n\nexport function info(text: string): string {\n return `${INFO_MARK} ${chalk.hex('#4FC3F7')(text)}`\n}\n\nexport function muted(text: string): string {\n return chalk.dim(text)\n}\n\nexport function copied(text: string): string {\n return muted(`(copied to clipboard)`)\n}\n","import chalk from 'chalk'\nimport os from 'node:os'\nimport fs from 'node:fs'\nimport path from 'node:path'\nimport { isCI } from '../utils/ci-detect.js'\nimport { BRAND_MARKER, SUCCESS_MARK, ERROR_MARK, WARN_MARK, INFO_MARK, muted } from './brand.js'\n\nlet jsonMode = false\n\nexport function setJsonMode(mode: boolean): void {\n jsonMode = mode\n}\n\nexport function isJsonMode(): boolean {\n return jsonMode\n}\n\ninterface LogOptions {\n prefix?: string\n}\n\nfunction timestamp(): string {\n return chalk.dim(`[${new Date().toISOString()}]`)\n}\n\nexport function log(message: string, options?: LogOptions): void {\n if (jsonMode) return\n const prefix = options?.prefix ? `${options.prefix} ` : ''\n if (isCI()) {\n console.log(`${timestamp()} ${prefix}${message}`)\n } else {\n console.log(`${prefix}${message}`)\n }\n}\n\nexport function logSuccess(message: string): void {\n if (jsonMode) {\n console.log(JSON.stringify({ level: 'success', message }))\n return\n }\n if (isCI()) {\n console.log(`${timestamp()} ${SUCCESS_MARK} ${message}`)\n } else {\n console.log(`${SUCCESS_MARK} ${chalk.green(message)}`)\n }\n}\n\nexport function logError(message: string): void {\n if (jsonMode) {\n console.error(JSON.stringify({ error: { message } }))\n return\n }\n if (isCI()) {\n console.error(`${timestamp()} ${ERROR_MARK} ${chalk.red(message)}`)\n } else {\n console.error(`${ERROR_MARK} ${chalk.red(message)}`)\n }\n}\n\nexport function logWarn(message: string): void {\n if (jsonMode) return\n if (isCI()) {\n console.warn(`${timestamp()} ${WARN_MARK} ${chalk.hex('#FF9800')(message)}`)\n } else {\n console.warn(`${WARN_MARK} ${chalk.hex('#FF9800')(message)}`)\n }\n}\n\nexport function logInfo(message: string): void {\n if (jsonMode) return\n if (isCI()) {\n console.log(`${timestamp()} ${INFO_MARK} ${chalk.hex('#4FC3F7')(message)}`)\n } else {\n console.log(`${INFO_MARK} ${chalk.hex('#4FC3F7')(message)}`)\n }\n}\n\nexport function logBrand(message: string): void {\n if (jsonMode) return\n console.log(`${BRAND_MARKER} ${message}`)\n}\n\nexport function logRaw(message: string): void {\n if (jsonMode) return\n console.log(message)\n}\n\nexport function logJSON(data: unknown): void {\n if (!jsonMode) return\n console.log(JSON.stringify(data))\n}\n\nexport function logErrorJSON(data: { message: string; code?: string }): void {\n if (!jsonMode) {\n logError(data.message)\n return\n }\n console.error(JSON.stringify({ error: data }))\n}\n\nexport function writeAudit(command: string, args: string, exitCode: number): void {\n const auditDir = path.join(os.homedir(), '.squidcloud')\n const auditFile = path.join(auditDir, 'audit.log')\n const entry = JSON.stringify({\n timestamp: new Date().toISOString(),\n command,\n args,\n exitCode,\n pid: process.pid,\n }) + '\\n'\n try {\n if (!fs.existsSync(auditDir)) {\n fs.mkdirSync(auditDir, { recursive: true, mode: 0o700 })\n }\n fs.appendFileSync(auditFile, entry, { encoding: 'utf-8' })\n } catch {\n // Silently fail — audit should never crash the CLI\n }\n}\n"]}
|
package/dist/chunk-BQGHHBGH.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {m,n as n$1}from'./chunk-6VDGYAGT.js';import {randomBytes,createHash}from'crypto';import n from'os';import o,{existsSync,readFileSync}from'fs';import {blake3}from'@noble/hashes/blake3';import f from'path';import {randomBytes as randomBytes$1}from'@noble/hashes/utils';import {sha256}from'@noble/hashes/sha256';import {hkdf}from'@noble/hashes/hkdf';import {gcm}from'@noble/ciphers/aes';var D=["/etc/machine-id","/var/lib/dbus/machine-id","/etc/hostid"];function F(){for(let t of D)try{if(existsSync(t))return readFileSync(t,"utf-8").trim()}catch{continue}return createHash("sha256").update(n.hostname()+n.arch()+n.platform()).digest("hex")}function p(){let i=[F(),n.hostname(),n.platform(),n.arch(),n.release()].join(":");return m(blake3(i))}function N(){return randomBytes(32).toString("hex")}var d=f.join(n.homedir(),".squidcloud"),s=f.join(d,".session");function S(){let e=p(),t=new TextEncoder().encode(e);return hkdf(sha256,t,new Uint8Array(32),"squidcloud-fallback-v1",32)}async function y(e){let t=S(),i=randomBytes$1(12),a=new TextEncoder().encode(e),m$1=gcm(t,i).encrypt(a);o.existsSync(d)||o.mkdirSync(d,{recursive:true,mode:448});let g={iv:m(i),data:m(m$1)};o.writeFileSync(s,JSON.stringify(g),{mode:384,encoding:"utf-8"});}async function x(){try{if(!o.existsSync(s))return null;let e=o.readFileSync(s,"utf-8"),{iv:t,data:i}=JSON.parse(e),a=S(),m=gcm(a,n$1(t)).decrypt(n$1(i));return new TextDecoder().decode(m)}catch{return null}}async function c(){try{o.existsSync(s)&&o.unlinkSync(s);}catch{}}async function W(){try{let e=await x();if(!e)return null;let t=JSON.parse(e);return !t.session_id||!t.access_token?(await c(),null):t}catch{return await c(),null}}async function X(e){await y(JSON.stringify(e));}async function Y(){await c();}function Z(e){return Date.now()>=e.expires_at}function $(e){return e.expires_at-Date.now()<=12e4}function ee(e){return e.expires_at-Date.now()}export{p as a,N as b,y as c,x as d,c as e,W as f,X as g,Y as h,Z as i,$ as j,ee as k};//# sourceMappingURL=chunk-BQGHHBGH.js.map
|
|
2
|
-
//# sourceMappingURL=chunk-BQGHHBGH.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/auth/fingerprint.ts","../src/lib/auth/keychain.ts","../src/lib/auth/session.ts"],"names":["MACHINE_ID_PATHS","getMachineId","p","existsSync","readFileSync","createHash","os","computeDeviceFingerprint","data","bytesToHex","blake3","generateDeviceId","randomBytes","FALLBACK_DIR","path","FALLBACK_FILE","getFallbackKey","fingerprint","ikm","hkdf","sha256","storeSession","sessionJson","key","iv","plaintext","encrypted","gcm","fs","payload","getSession","raw","decrypted","hexToBytes","deleteSession","loadSession","session","saveSession","clearSession","isSessionExpired","shouldRefreshToken","getTimeUntilExpiry"],"mappings":"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","file":"chunk-BQGHHBGH.js","sourcesContent":["import { createHash, randomBytes } from 'node:crypto'\nimport os from 'node:os'\nimport { readFileSync, existsSync } from 'node:fs'\nimport { blake3 } from '@noble/hashes/blake3'\nimport { bytesToHex } from '../crypto/ssp.js'\n\nconst MACHINE_ID_PATHS = [\n '/etc/machine-id',\n '/var/lib/dbus/machine-id',\n '/etc/hostid',\n]\n\nfunction getMachineId(): string {\n for (const p of MACHINE_ID_PATHS) {\n try {\n if (existsSync(p)) {\n return readFileSync(p, 'utf-8').trim()\n }\n } catch {\n continue\n }\n }\n const h = createHash('sha256').update(os.hostname() + os.arch() + os.platform()).digest('hex')\n return h\n}\n\nexport function computeDeviceFingerprint(): string {\n const machineId = getMachineId()\n const components = [\n machineId,\n os.hostname(),\n os.platform(),\n os.arch(),\n os.release(),\n ]\n const data = components.join(':')\n return bytesToHex(blake3(data))\n}\n\nexport function generateDeviceId(): string {\n return randomBytes(32).toString('hex')\n}\n","import os from 'node:os'\nimport path from 'node:path'\nimport fs from 'node:fs'\nimport { randomBytes } from '@noble/hashes/utils'\nimport { sha256 } from '@noble/hashes/sha256'\nimport { hkdf } from '@noble/hashes/hkdf'\nimport { blake3 } from '@noble/hashes/blake3'\nimport { gcm } from '@noble/ciphers/aes'\nimport { bytesToHex, hexToBytes } from '../crypto/ssp.js'\nimport { computeDeviceFingerprint } from './fingerprint.js'\n\nconst FALLBACK_DIR = path.join(os.homedir(), '.squidcloud')\nconst FALLBACK_FILE = path.join(FALLBACK_DIR, '.session')\n\nfunction getFallbackKey(): Uint8Array {\n const fingerprint = computeDeviceFingerprint()\n const ikm = new TextEncoder().encode(fingerprint)\n return hkdf(sha256, ikm, new Uint8Array(32), 'squidcloud-fallback-v1', 32)\n}\n\nexport async function storeSession(sessionJson: string): Promise<void> {\n const key = getFallbackKey()\n const iv = randomBytes(12)\n const plaintext = new TextEncoder().encode(sessionJson)\n const aes = gcm(key, iv)\n const encrypted = aes.encrypt(plaintext)\n if (!fs.existsSync(FALLBACK_DIR)) {\n fs.mkdirSync(FALLBACK_DIR, { recursive: true, mode: 0o700 })\n }\n const payload = {\n iv: bytesToHex(iv),\n data: bytesToHex(encrypted),\n }\n fs.writeFileSync(FALLBACK_FILE, JSON.stringify(payload), { mode: 0o600, encoding: 'utf-8' })\n}\n\nexport async function getSession(): Promise<string | null> {\n try {\n if (!fs.existsSync(FALLBACK_FILE)) return null\n const raw = fs.readFileSync(FALLBACK_FILE, 'utf-8')\n const { iv, data } = JSON.parse(raw) as { iv: string; data: string }\n const key = getFallbackKey()\n const aes = gcm(key, hexToBytes(iv))\n const decrypted = aes.decrypt(hexToBytes(data))\n return new TextDecoder().decode(decrypted)\n } catch {\n return null\n }\n}\n\nexport async function deleteSession(): Promise<void> {\n try {\n if (fs.existsSync(FALLBACK_FILE)) {\n fs.unlinkSync(FALLBACK_FILE)\n }\n } catch {\n // ignore\n }\n}\n","import { SquidSession } from '../crypto/ssp.js'\nimport { storeSession, getSession, deleteSession } from './keychain.js'\n\nexport async function loadSession(): Promise<SquidSession | null> {\n try {\n const raw = await getSession()\n if (!raw) return null\n const session = JSON.parse(raw) as SquidSession\n if (!session.session_id || !session.access_token) {\n await deleteSession()\n return null\n }\n return session\n } catch {\n await deleteSession()\n return null\n }\n}\n\nexport async function saveSession(session: SquidSession): Promise<void> {\n await storeSession(JSON.stringify(session))\n}\n\nexport async function clearSession(): Promise<void> {\n await deleteSession()\n}\n\nexport function isSessionExpired(session: SquidSession): boolean {\n return Date.now() >= session.expires_at\n}\n\nexport function shouldRefreshToken(session: SquidSession): boolean {\n const twoMinutes = 2 * 60 * 1000\n return (session.expires_at - Date.now()) <= twoMinutes\n}\n\nexport function getTimeUntilExpiry(session: SquidSession): number {\n return session.expires_at - Date.now()\n}\n"]}
|
package/dist/chunk-CJYNYLZF.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {b}from'./chunk-52WHEL73.js';import {a,c as c$1}from'./chunk-OSI5H2T5.js';import {c}from'./chunk-5TMR6Y7L.js';import t from'chalk';async function y(l){let o=((await c(`/api/v1/sites/${l}/deploys`,{authenticated:true})).deploys||[]).map(e=>({id:t.dim(e.id.slice(0,8)),date:c$1(e.created_at),files:String(e.file_count),size:a(e.total_size),by:e.triggered_by,status:e.status==="success"?t.green("\u25CF"):e.status==="failed"?t.red("\u25CF"):t.yellow("\u25CB")}));console.log(b(o,[{key:"id",label:"Deploy"},{key:"date",label:"Date"},{key:"files",label:"Files"},{key:"size",label:"Size"},{key:"by",label:"Triggered By"},{key:"status",label:""}]));}export{y as a};//# sourceMappingURL=chunk-CJYNYLZF.js.map
|
|
2
|
-
//# sourceMappingURL=chunk-CJYNYLZF.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/sites/sites-deploys.ts"],"names":["sitesDeploys","slug","rows","apiGet","d","chalk","formatDate","formatBytes","renderTable"],"mappings":"0IAcA,eAAOA,CAAAA,CAAoCC,CAAAA,CAA6B,CAEtE,IAAMC,CAAAA,CAAAA,CAAAA,CADO,MAAMC,CAAAA,CAAmC,CAAA,cAAA,EAAiBF,CAAI,CAAA,QAAA,CAAA,CAAY,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,EAC3F,OAAA,EAAW,EAAC,EAAG,GAAA,CAAIG,CAAAA,GAAM,CAC1C,EAAA,CAAIC,CAAAA,CAAM,GAAA,CAAID,CAAAA,CAAE,GAAG,KAAA,CAAM,CAAA,CAAG,CAAC,CAAC,CAAA,CAC9B,IAAA,CAAME,GAAAA,CAAWF,CAAAA,CAAE,UAAU,CAAA,CAC7B,KAAA,CAAO,MAAA,CAAOA,CAAAA,CAAE,UAAU,EAC1B,IAAA,CAAMG,CAAAA,CAAYH,CAAAA,CAAE,UAAU,CAAA,CAC9B,EAAA,CAAIA,CAAAA,CAAE,YAAA,CACN,MAAA,CAAQA,CAAAA,CAAE,MAAA,GAAW,SAAA,CAAYC,CAAAA,CAAM,KAAA,CAAM,QAAG,CAAA,CAAID,CAAAA,CAAE,MAAA,GAAW,QAAA,CAAWC,CAAAA,CAAM,GAAA,CAAI,QAAG,CAAA,CAAIA,CAAAA,CAAM,MAAA,CAAO,QAAG,CAC/G,CAAA,CAAE,CAAA,CACF,QAAQ,GAAA,CAAIG,CAAAA,CAAYN,CAAAA,CAAM,CAC5B,CAAE,GAAA,CAAK,IAAA,CAAM,KAAA,CAAO,QAAS,CAAA,CAC7B,CAAE,GAAA,CAAK,MAAA,CAAQ,KAAA,CAAO,MAAO,CAAA,CAC7B,CAAE,GAAA,CAAK,OAAA,CAAS,KAAA,CAAO,OAAQ,CAAA,CAC/B,CAAE,GAAA,CAAK,MAAA,CAAQ,KAAA,CAAO,MAAO,CAAA,CAC7B,CAAE,IAAK,IAAA,CAAM,KAAA,CAAO,cAAe,CAAA,CACnC,CAAE,GAAA,CAAK,QAAA,CAAU,KAAA,CAAO,EAAG,CAC7B,CAAC,CAAC,EACJ","file":"chunk-CJYNYLZF.js","sourcesContent":["import { apiGet } from '../../lib/api/client.js'\nimport { renderTable } from '../../lib/output/table.js'\nimport { formatDate, formatBytes } from '../../lib/utils/format.js'\nimport chalk from 'chalk'\n\ninterface DeployEntry {\n id: string\n created_at: string\n file_count: number\n total_size: number\n triggered_by: string\n status: string\n}\n\nexport default async function sitesDeploys(slug: string): Promise<void> {\n const data = await apiGet<{ deploys: DeployEntry[] }>(`/api/v1/sites/${slug}/deploys`, { authenticated: true })\n const rows = (data.deploys || []).map(d => ({\n id: chalk.dim(d.id.slice(0, 8)),\n date: formatDate(d.created_at),\n files: String(d.file_count),\n size: formatBytes(d.total_size),\n by: d.triggered_by,\n status: d.status === 'success' ? chalk.green('●') : d.status === 'failed' ? chalk.red('●') : chalk.yellow('○'),\n }))\n console.log(renderTable(rows, [\n { key: 'id', label: 'Deploy' },\n { key: 'date', label: 'Date' },\n { key: 'files', label: 'Files' },\n { key: 'size', label: 'Size' },\n { key: 'by', label: 'Triggered By' },\n { key: 'status', label: '' },\n ]))\n}\n"]}
|
package/dist/chunk-CQAXMUFB.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import {a,g}from'./chunk-BQGHHBGH.js';import {randomBytes,createHash}from'crypto';var d="https://aouqcwbdoyrccjcrhzzi.supabase.co",f="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImFvdXFjd2Jkb3lyY2NqY3JoenppIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NDI5NjAyMTEsImV4cCI6MjA1ODUzNjIxMX0.b_VHC6uP3Efw3o_yibCoZKmsCIVZgOJ4FUF1NK-nd7U";function l(){return "sqc_"+randomBytes(32).toString("hex")}function k(t){let i=randomBytes(16).toString("base64"),s=Buffer.from(i,"base64"),e=Buffer.concat([s,Buffer.from(t)]);return {hash:createHash("sha256").update(e).digest("hex"),prefix:t.slice(0,8),salt:i}}async function x(t,i){let s=await fetch(`${d}/auth/v1/token?grant_type=password`,{method:"POST",headers:{"Content-Type":"application/json",apikey:f},body:JSON.stringify({email:t,password:i})});if(!s.ok){let r=await s.text();throw new Error(r||`Authentication failed (HTTP ${s.status})`)}let e=await s.json(),n=a(),a$1=l(),{hash:m,prefix:_,salt:y}=k(a$1),o=await fetch(`${d}/rest/v1/api_keys`,{method:"POST",headers:{"Content-Type":"application/json",apikey:f,Authorization:`Bearer ${e.access_token}`,Prefer:"return=minimal"},body:JSON.stringify({user_id:e.user.id,name:"squidcloud-cli",key_hash:m,key_prefix:_,key_salt:y,scopes:["all"],is_active:true})});if(!o.ok){let r=await o.text();console.error("API key creation failed:",r);}let c={session_id:e.user.id+"-"+Date.now(),access_token:e.access_token,refresh_token:e.refresh_token,refresh_token_id:"",device_fingerprint:n,issued_at:Date.now(),expires_at:e.expires_at*1e3,user:{id:e.user.id,email:e.user.email,username:e.user.user_metadata?.username||e.user.email.split("@")[0]||"user",plan:"free"},api_key:a$1};return await g(c),c}
|
|
2
|
-
export{x as a};//# sourceMappingURL=chunk-CQAXMUFB.js.map
|
|
3
|
-
//# sourceMappingURL=chunk-CQAXMUFB.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/auth/ssp-handshake.ts"],"names":["SUPABASE_URL","ANON_KEY","generateApiKey","randomBytes","hashApiKey","key","salt","saltBytes","combined","createHash","performSSPHandshake","email","password","response","text","data","fingerprint","computeDeviceFingerprint","apiKey","hash","prefix","createKeyResponse","session","saveSession"],"mappings":"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","file":"chunk-CQAXMUFB.js","sourcesContent":["import { createHash, randomBytes } from 'node:crypto'\nimport { SquidSession } from '../crypto/ssp.js'\nimport { saveSession } from './session.js'\nimport { computeDeviceFingerprint } from './fingerprint.js'\n\nconst SUPABASE_URL = 'https://aouqcwbdoyrccjcrhzzi.supabase.co'\nconst ANON_KEY = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImFvdXFjd2Jkb3lyY2NqY3JoenppIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NDI5NjAyMTEsImV4cCI6MjA1ODUzNjIxMX0.b_VHC6uP3Efw3o_yibCoZKmsCIVZgOJ4FUF1NK-nd7U'\n\ninterface SupabaseAuthResponse {\n access_token: string\n token_type: string\n expires_in: number\n expires_at: number\n refresh_token: string\n user: {\n id: string\n email: string\n user_metadata: Record<string, unknown>\n aud: string\n }\n}\n\nfunction generateApiKey(): string {\n return 'sqc_' + randomBytes(32).toString('hex')\n}\n\nfunction hashApiKey(key: string): { hash: string; prefix: string; salt: string } {\n const salt = randomBytes(16).toString('base64')\n const saltBytes = Buffer.from(salt, 'base64')\n const combined = Buffer.concat([saltBytes, Buffer.from(key)])\n const hash = createHash('sha256').update(combined).digest('hex')\n return { hash, prefix: key.slice(0, 8), salt }\n}\n\nexport async function performSSPHandshake(email: string, password: string): Promise<SquidSession> {\n const response = await fetch(`${SUPABASE_URL}/auth/v1/token?grant_type=password`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'apikey': ANON_KEY,\n },\n body: JSON.stringify({ email, password }),\n })\n\n if (!response.ok) {\n const text = await response.text()\n throw new Error(text || `Authentication failed (HTTP ${response.status})`)\n }\n\n const data: SupabaseAuthResponse = await response.json()\n const fingerprint = computeDeviceFingerprint()\n\n const apiKey = generateApiKey()\n const { hash, prefix, salt } = hashApiKey(apiKey)\n\n const createKeyResponse = await fetch(`${SUPABASE_URL}/rest/v1/api_keys`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'apikey': ANON_KEY,\n 'Authorization': `Bearer ${data.access_token}`,\n 'Prefer': 'return=minimal',\n },\n body: JSON.stringify({\n user_id: data.user.id,\n name: 'squidcloud-cli',\n key_hash: hash,\n key_prefix: prefix,\n key_salt: salt,\n scopes: ['all'],\n is_active: true,\n }),\n })\n\n if (!createKeyResponse.ok) {\n const text = await createKeyResponse.text()\n console.error('API key creation failed:', text)\n }\n\n const session: SquidSession = {\n session_id: data.user.id + '-' + Date.now(),\n access_token: data.access_token,\n refresh_token: data.refresh_token,\n refresh_token_id: '',\n device_fingerprint: fingerprint,\n issued_at: Date.now(),\n expires_at: data.expires_at * 1000,\n user: {\n id: data.user.id,\n email: data.user.email,\n username: (data.user.user_metadata?.username as string) || data.user.email.split('@')[0] || 'user',\n plan: 'free',\n },\n api_key: apiKey,\n }\n\n await saveSession(session)\n return session\n}\n"]}
|
package/dist/chunk-DNCVZK7V.js
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
async function e(o){switch(o){case "bash":console.log("# Generate bash completion with: squidcloud completion bash > /etc/bash_completion.d/squidcloud"),console.log(`
|
|
2
|
-
_squidcloud_completions() {
|
|
3
|
-
local cur prev opts
|
|
4
|
-
COMPREPLY=()
|
|
5
|
-
cur="\${COMP_WORDS[COMP_CWORD]}"
|
|
6
|
-
prev="\${COMP_WORDS[COMP_CWORD-1]}"
|
|
7
|
-
opts="login logout whoami auth storage deploy sites scripts filereq time collab sign monitor logs doctor version config completion feedback update"
|
|
8
|
-
COMPREPLY=( $(compgen -W "\${opts}" -- \${cur}) )
|
|
9
|
-
return 0
|
|
10
|
-
}
|
|
11
|
-
complete -F _squidcloud_completions squidcloud
|
|
12
|
-
`);break;case "zsh":console.log("#compdef squidcloud"),console.log(`
|
|
13
|
-
_squidcloud() {
|
|
14
|
-
local line
|
|
15
|
-
_arguments -C \\
|
|
16
|
-
"-v[Show version]" \\
|
|
17
|
-
"--version[Show version]" \\
|
|
18
|
-
"--output[Output format]:format:(text json)" \\
|
|
19
|
-
"1: :(login logout whoami auth storage deploy sites scripts filereq time collab sign monitor logs doctor version config completion feedback update)" \\
|
|
20
|
-
"*::arg:->args"
|
|
21
|
-
case $line[1] in
|
|
22
|
-
auth) _arguments "2: :(status sessions revoke)" ;;
|
|
23
|
-
storage) _arguments "2: :(ls upload download cp mv rm mkdir cat info share unshare tag search diff clean)" ;;
|
|
24
|
-
sites) _arguments "2: :(list info open unpublish delete visibility rename rollback deploys logs analytics purge)" ;;
|
|
25
|
-
scripts) _arguments "2: :(list run logs validate init enable disable delete status cancel watch)" ;;
|
|
26
|
-
filereq) _arguments "2: :(list create info submissions export clear delete embed)" ;;
|
|
27
|
-
time) _arguments "2: :(lock unlock status list proof)" ;;
|
|
28
|
-
collab) _arguments "2: :(invite list remove activity leave transfer)" ;;
|
|
29
|
-
sign) _arguments "2: :(request status list cancel verify download)" ;;
|
|
30
|
-
monitor) _arguments "2: :(sites pipelines storage automations)" ;;
|
|
31
|
-
logs) _arguments "2: :(tail search export)" ;;
|
|
32
|
-
config) _arguments "2: :(list set get delete reset)" ;;
|
|
33
|
-
esac
|
|
34
|
-
}
|
|
35
|
-
compdef _squidcloud squidcloud
|
|
36
|
-
`);break;case "fish":console.log("complete -c squidcloud -f"),console.log('complete -c squidcloud -l output -r -f -a "text json"'),console.log('complete -c squidcloud -n "__fish_use_subcommand" -a "login logout whoami auth"'),console.log('complete -c squidcloud -n "__fish_use_subcommand" -a "storage deploy sites scripts filereq"'),console.log('complete -c squidcloud -n "__fish_use_subcommand" -a "time collab sign monitor logs"'),console.log('complete -c squidcloud -n "__fish_use_subcommand" -a "doctor version config completion feedback update"');break;case "powershell":console.log(`
|
|
37
|
-
Register-ArgumentCompleter -Native -CommandName 'squidcloud' -ScriptBlock {
|
|
38
|
-
param($wordToComplete, $commandAst, $cursorPosition)
|
|
39
|
-
$commands = @('login', 'logout', 'whoami', 'auth', 'storage', 'deploy', 'sites', 'scripts', 'filereq', 'time', 'collab', 'sign', 'monitor', 'logs', 'doctor', 'version', 'config', 'completion', 'feedback', 'update')
|
|
40
|
-
$commandAst.CommandElements | Select-Object -Skip 1 | ForEach-Object { $wordToComplete = $_ }
|
|
41
|
-
$commands | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object { [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_) }
|
|
42
|
-
}
|
|
43
|
-
`);break;default:console.error(`Unknown shell: ${o}. Supported: bash, zsh, fish, powershell`),process.exit(1);}}export{e as a};//# sourceMappingURL=chunk-DNCVZK7V.js.map
|
|
44
|
-
//# sourceMappingURL=chunk-DNCVZK7V.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/util/completion.ts"],"names":["completion","shell"],"mappings":"AAGA,eAAOA,CAAAA,CAAkCC,CAAAA,CAA8B,CACrE,OAAQA,CAAAA,EACN,KAAK,MAAA,CACH,OAAA,CAAQ,GAAA,CAAI,iGAAiG,CAAA,CAC7G,QAAQ,GAAA,CAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAWjB,CAAA,CACK,MACF,KAAK,KAAA,CACH,QAAQ,GAAA,CAAI,qBAAqB,CAAA,CACjC,OAAA,CAAQ,GAAA,CAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAwBjB,CAAA,CACK,MACF,KAAK,MAAA,CACH,QAAQ,GAAA,CAAI,2BAA2B,CAAA,CACvC,OAAA,CAAQ,GAAA,CAAI,uDAAuD,CAAA,CACnE,OAAA,CAAQ,IAAI,iFAAiF,CAAA,CAC7F,OAAA,CAAQ,GAAA,CAAI,6FAA6F,CAAA,CACzG,OAAA,CAAQ,GAAA,CAAI,sFAAsF,CAAA,CAClG,OAAA,CAAQ,GAAA,CAAI,yGAAyG,CAAA,CACrH,MACF,KAAK,YAAA,CACH,QAAQ,GAAA,CAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAOjB,CAAA,CACK,MACF,QACE,OAAA,CAAQ,KAAA,CAAM,CAAA,eAAA,EAAkBA,CAAK,CAAA,wCAAA,CAA0C,CAAA,CAC/E,OAAA,CAAQ,IAAA,CAAK,CAAC,EAClB,CACF","file":"chunk-DNCVZK7V.js","sourcesContent":["import { program } from 'commander'\nimport { logRaw } from '../../lib/output/logger.js'\n\nexport default async function completion(shell: string): Promise<void> {\n switch (shell) {\n case 'bash':\n console.log('# Generate bash completion with: squidcloud completion bash > /etc/bash_completion.d/squidcloud')\n console.log(`\n_squidcloud_completions() {\n local cur prev opts\n COMPREPLY=()\n cur=\"\\${COMP_WORDS[COMP_CWORD]}\"\n prev=\"\\${COMP_WORDS[COMP_CWORD-1]}\"\n opts=\"login logout whoami auth storage deploy sites scripts filereq time collab sign monitor logs doctor version config completion feedback update\"\n COMPREPLY=( $(compgen -W \"\\${opts}\" -- \\${cur}) )\n return 0\n}\ncomplete -F _squidcloud_completions squidcloud\n`)\n break\n case 'zsh':\n console.log('#compdef squidcloud')\n console.log(`\n_squidcloud() {\n local line\n _arguments -C \\\\\n \"-v[Show version]\" \\\\\n \"--version[Show version]\" \\\\\n \"--output[Output format]:format:(text json)\" \\\\\n \"1: :(login logout whoami auth storage deploy sites scripts filereq time collab sign monitor logs doctor version config completion feedback update)\" \\\\\n \"*::arg:->args\"\n case $line[1] in\n auth) _arguments \"2: :(status sessions revoke)\" ;;\n storage) _arguments \"2: :(ls upload download cp mv rm mkdir cat info share unshare tag search diff clean)\" ;;\n sites) _arguments \"2: :(list info open unpublish delete visibility rename rollback deploys logs analytics purge)\" ;;\n scripts) _arguments \"2: :(list run logs validate init enable disable delete status cancel watch)\" ;;\n filereq) _arguments \"2: :(list create info submissions export clear delete embed)\" ;;\n time) _arguments \"2: :(lock unlock status list proof)\" ;;\n collab) _arguments \"2: :(invite list remove activity leave transfer)\" ;;\n sign) _arguments \"2: :(request status list cancel verify download)\" ;;\n monitor) _arguments \"2: :(sites pipelines storage automations)\" ;;\n logs) _arguments \"2: :(tail search export)\" ;;\n config) _arguments \"2: :(list set get delete reset)\" ;;\n esac\n}\ncompdef _squidcloud squidcloud\n`)\n break\n case 'fish':\n console.log('complete -c squidcloud -f')\n console.log('complete -c squidcloud -l output -r -f -a \"text json\"')\n console.log('complete -c squidcloud -n \"__fish_use_subcommand\" -a \"login logout whoami auth\"')\n console.log('complete -c squidcloud -n \"__fish_use_subcommand\" -a \"storage deploy sites scripts filereq\"')\n console.log('complete -c squidcloud -n \"__fish_use_subcommand\" -a \"time collab sign monitor logs\"')\n console.log('complete -c squidcloud -n \"__fish_use_subcommand\" -a \"doctor version config completion feedback update\"')\n break\n case 'powershell':\n console.log(`\nRegister-ArgumentCompleter -Native -CommandName 'squidcloud' -ScriptBlock {\n param($wordToComplete, $commandAst, $cursorPosition)\n $commands = @('login', 'logout', 'whoami', 'auth', 'storage', 'deploy', 'sites', 'scripts', 'filereq', 'time', 'collab', 'sign', 'monitor', 'logs', 'doctor', 'version', 'config', 'completion', 'feedback', 'update')\n $commandAst.CommandElements | Select-Object -Skip 1 | ForEach-Object { $wordToComplete = $_ }\n $commands | Where-Object { $_ -like \"$wordToComplete*\" } | ForEach-Object { [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_) }\n}\n`)\n break\n default:\n console.error(`Unknown shell: ${shell}. Supported: bash, zsh, fish, powershell`)\n process.exit(1)\n }\n}\n"]}
|
package/dist/chunk-E2QGSNDB.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {c}from'./chunk-YZWZNR6K.js';import {v,q,y,s}from'./chunk-BC3STHFS.js';import {d}from'./chunk-5TMR6Y7L.js';async function l(r,n){let t={};if(n?.env)for(let d of n.env){let[o,...a]=d.split("=");o&&(t[o]=a.join("="));}if(n?.dryRun){v(`[DRY-RUN] Would run script "${r}" with env: ${JSON.stringify(t)}`);return}let i=c(`Running script "${r}"...`);i.start();let s$1=await d("/api/v1/scripts/run",{name:r,env:t},{authenticated:true});if(i.succeed(),q()){y(s$1);return}s(`Script "${r}" triggered (run: ${s$1.run_id.slice(0,8)})`);}export{l as a};//# sourceMappingURL=chunk-E2QGSNDB.js.map
|
|
2
|
-
//# sourceMappingURL=chunk-E2QGSNDB.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/scripts/scripts-run.ts"],"names":["scriptsRun","name","options","envVars","e","k","v","logInfo","spinner","createSpinner","result","apiPost","isJsonMode","logJSON","logSuccess"],"mappings":"kHAUA,eAAOA,CAAAA,CAAkCC,EAAcC,CAAAA,CAAqC,CAC1F,IAAMC,CAAAA,CAAkC,EAAC,CACzC,GAAID,CAAAA,EAAS,GAAA,CACX,QAAWE,CAAAA,IAAKF,CAAAA,CAAQ,IAAK,CAC3B,GAAM,CAACG,CAAAA,CAAG,GAAGC,CAAC,CAAA,CAAIF,CAAAA,CAAE,KAAA,CAAM,GAAG,CAAA,CACzBC,CAAAA,GAAGF,EAAQE,CAAC,CAAA,CAAIC,EAAE,IAAA,CAAK,GAAG,CAAA,EAChC,CAGF,GAAIJ,CAAAA,EAAS,OAAQ,CACnBK,CAAAA,CAAQ,+BAA+BN,CAAI,CAAA,YAAA,EAAe,KAAK,SAAA,CAAUE,CAAO,CAAC,CAAA,CAAE,CAAA,CACnF,MACF,CAEA,IAAMK,CAAAA,CAAUC,EAAc,CAAA,gBAAA,EAAmBR,CAAI,MAAM,CAAA,CAC3DO,CAAAA,CAAQ,KAAA,EAAM,CACd,IAAME,GAAAA,CAAS,MAAMC,CAAAA,CAA4C,qBAAA,CAAuB,CAAE,IAAA,CAAAV,CAAAA,CAAM,IAAKE,CAAQ,CAAA,CAAG,CAAE,aAAA,CAAe,IAAK,CAAC,EAGvI,GAFAK,CAAAA,CAAQ,SAAQ,CAEZI,CAAAA,GAAc,CAChBC,CAAAA,CAAQH,GAAM,CAAA,CACd,MACF,CACAI,EAAW,CAAA,QAAA,EAAWb,CAAI,qBAAqBS,GAAAA,CAAO,MAAA,CAAO,MAAM,CAAA,CAAG,CAAC,CAAC,CAAA,CAAA,CAAG,EAC7E","file":"chunk-E2QGSNDB.js","sourcesContent":["import { apiPost } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess, logJSON, logInfo } from '../../lib/output/logger.js'\nimport { isJsonMode } from '../../lib/output/logger.js'\n\ninterface RunOptions {\n env?: string[]\n dryRun?: boolean\n}\n\nexport default async function scriptsRun(name: string, options?: RunOptions): Promise<void> {\n const envVars: Record<string, string> = {}\n if (options?.env) {\n for (const e of options.env) {\n const [k, ...v] = e.split('=')\n if (k) envVars[k] = v.join('=')\n }\n }\n\n if (options?.dryRun) {\n logInfo(`[DRY-RUN] Would run script \"${name}\" with env: ${JSON.stringify(envVars)}`)\n return\n }\n\n const spinner = createSpinner(`Running script \"${name}\"...`)\n spinner.start()\n const result = await apiPost<{ run_id: string; status: string }>('/api/v1/scripts/run', { name, env: envVars }, { authenticated: true })\n spinner.succeed()\n\n if (isJsonMode()) {\n logJSON(result)\n return\n }\n logSuccess(`Script \"${name}\" triggered (run: ${result.run_id.slice(0, 8)})`)\n}\n"]}
|
package/dist/chunk-EGVPYRIE.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {c}from'./chunk-YZWZNR6K.js';import {q,y,s,o}from'./chunk-BC3STHFS.js';import {d}from'./chunk-5TMR6Y7L.js';import c$1 from'clipboardy';import l from'chalk';async function u(i,r){let t=c(`Creating share link for ${i}...`);t.start();let e=await d("/api/v1/storage/share",{path:i,expires_in:r?.expires,password:r?.password,max_views:r?.views,burn_after_reading:r?.burn},{authenticated:true});t.stop();try{await c$1.write(e.url);}catch{}if(q()){y(e);return}s("Share link created!"),console.log(` ${l.hex("#4FC3F7")(e.url)} ${o("")}`);}export{u as a};//# sourceMappingURL=chunk-EGVPYRIE.js.map
|
|
2
|
-
//# sourceMappingURL=chunk-EGVPYRIE.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/storage/storage-share.ts"],"names":["storageShare","path","options","spinner","createSpinner","result","apiPost","clipboard","isJsonMode","logJSON","logSuccess","chalk","copied"],"mappings":"mKAQA,eAAOA,EAAoCC,CAAAA,CAAcC,CAAAA,CAAkG,CACzJ,IAAMC,EAAUC,CAAAA,CAAc,CAAA,wBAAA,EAA2BH,CAAI,CAAA,GAAA,CAAK,CAAA,CAClEE,EAAQ,KAAA,EAAM,CACd,IAAME,CAAAA,CAAS,MAAMC,CAAAA,CAA2C,uBAAA,CAAyB,CACvF,IAAA,CAAAL,CAAAA,CACA,WAAYC,CAAAA,EAAS,OAAA,CACrB,SAAUA,CAAAA,EAAS,QAAA,CACnB,UAAWA,CAAAA,EAAS,KAAA,CACpB,mBAAoBA,CAAAA,EAAS,IAC/B,EAAG,CAAE,aAAA,CAAe,IAAK,CAAC,EAC1BC,CAAAA,CAAQ,IAAA,GAER,GAAI,CACF,MAAMI,GAAAA,CAAU,KAAA,CAAMF,EAAO,GAAG,EAClC,MAAQ,CAER,CAEA,GAAIG,CAAAA,EAAW,CAAG,CAChBC,CAAAA,CAAQJ,CAAM,CAAA,CACd,MACF,CAEAK,CAAAA,CAAW,qBAAqB,EAChC,OAAA,CAAQ,GAAA,CAAI,KAAKC,CAAAA,CAAM,GAAA,CAAI,SAAS,CAAA,CAAEN,CAAAA,CAAO,GAAG,CAAC,CAAA,CAAA,EAAIO,EAAO,EAAE,CAAC,EAAE,EACnE","file":"chunk-EGVPYRIE.js","sourcesContent":["import { apiPost } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess, logJSON } from '../../lib/output/logger.js'\nimport { isJsonMode } from '../../lib/output/logger.js'\nimport clipboard from 'clipboardy'\nimport chalk from 'chalk'\nimport { copied } from '../../lib/output/brand.js'\n\nexport default async function storageShare(path: string, options?: { expires?: string; password?: string; views?: number; burn?: boolean }): Promise<void> {\n const spinner = createSpinner(`Creating share link for ${path}...`)\n spinner.start()\n const result = await apiPost<{ url: string; share_id: string }>('/api/v1/storage/share', {\n path,\n expires_in: options?.expires,\n password: options?.password,\n max_views: options?.views,\n burn_after_reading: options?.burn,\n }, { authenticated: true })\n spinner.stop()\n\n try {\n await clipboard.write(result.url)\n } catch {\n // ignore\n }\n\n if (isJsonMode()) {\n logJSON(result)\n return\n }\n\n logSuccess(`Share link created!`)\n console.log(` ${chalk.hex('#4FC3F7')(result.url)} ${copied('')}`)\n}\n"]}
|
package/dist/chunk-EUJ26UNW.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {c}from'./chunk-YZWZNR6K.js';import {x}from'./chunk-BC3STHFS.js';import {c as c$1}from'./chunk-5TMR6Y7L.js';async function i(t){let o=c(`Fetching ${t}...`);o.start();let a=await c$1(`/api/v1/storage/cat?path=${encodeURIComponent(t)}`,{authenticated:true});o.stop(),x(a.content);}export{i as a};//# sourceMappingURL=chunk-EUJ26UNW.js.map
|
|
2
|
-
//# sourceMappingURL=chunk-EUJ26UNW.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/storage/storage-cat.ts"],"names":["storageCat","path","spinner","createSpinner","data","apiGet","logRaw"],"mappings":"mHAKA,eAAOA,CAAAA,CAAkCC,CAAAA,CAA6B,CACpE,IAAMC,EAAUC,CAAAA,CAAc,CAAA,SAAA,EAAYF,CAAI,CAAA,GAAA,CAAK,CAAA,CACnDC,CAAAA,CAAQ,KAAA,EAAM,CACd,IAAME,CAAAA,CAAO,MAAMC,GAAAA,CAA4B,CAAA,yBAAA,EAA4B,kBAAA,CAAmBJ,CAAI,CAAC,CAAA,CAAA,CAAI,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAC9HC,EAAQ,IAAA,EAAK,CACbI,CAAAA,CAAOF,CAAAA,CAAK,OAAO,EACrB","file":"chunk-EUJ26UNW.js","sourcesContent":["import chalk from 'chalk'\nimport { apiGet } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logRaw } from '../../lib/output/logger.js'\n\nexport default async function storageCat(path: string): Promise<void> {\n const spinner = createSpinner(`Fetching ${path}...`)\n spinner.start()\n const data = await apiGet<{ content: string }>(`/api/v1/storage/cat?path=${encodeURIComponent(path)}`, { authenticated: true })\n spinner.stop()\n logRaw(data.content)\n}\n"]}
|
package/dist/chunk-EWFYKNK7.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {b}from'./chunk-52WHEL73.js';import {d}from'./chunk-OSI5H2T5.js';import {c}from'./chunk-5TMR6Y7L.js';import t from'chalk';async function n(r){let i=((await c(`/api/v1/collab/list?folder=${encodeURIComponent(r)}`,{authenticated:true})).collaborators||[]).map(e=>({email:e.email,user:e.username,role:t.hex("#7C4DFF")(e.role),joined:d(e.joined_at),active:e.last_active?d(e.last_active):t.dim("never")}));console.log(b(i,[{key:"email",label:"Email"},{key:"user",label:"User"},{key:"role",label:"Role"},{key:"joined",label:"Joined"},{key:"active",label:"Last Active"}]));}export{n as a};//# sourceMappingURL=chunk-EWFYKNK7.js.map
|
|
2
|
-
//# sourceMappingURL=chunk-EWFYKNK7.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/collab/collab-list.ts"],"names":["collabList","folder","rows","apiGet","c","chalk","formatRelative","renderTable"],"mappings":"iIAaA,eAAOA,CAAAA,CAAkCC,EAA+B,CAEtE,IAAMC,IADO,MAAMC,CAAAA,CAA0C,8BAA8B,kBAAA,CAAmBF,CAAM,CAAC,CAAA,CAAA,CAAI,CAAE,cAAe,IAAK,CAAC,GAC7H,aAAA,EAAiB,IAAI,GAAA,CAAIG,CAAAA,GAAM,CAChD,KAAA,CAAOA,CAAAA,CAAE,MACT,IAAA,CAAMA,CAAAA,CAAE,SACR,IAAA,CAAMC,CAAAA,CAAM,IAAI,SAAS,CAAA,CAAED,EAAE,IAAI,CAAA,CACjC,OAAQE,CAAAA,CAAeF,CAAAA,CAAE,SAAS,CAAA,CAClC,MAAA,CAAQA,CAAAA,CAAE,YAAcE,CAAAA,CAAeF,CAAAA,CAAE,WAAW,CAAA,CAAIC,CAAAA,CAAM,IAAI,OAAO,CAC3E,EAAE,CAAA,CACF,OAAA,CAAQ,IAAIE,CAAAA,CAAYL,CAAAA,CAAM,CAC5B,CAAE,GAAA,CAAK,QAAS,KAAA,CAAO,OAAQ,CAAA,CAC/B,CAAE,GAAA,CAAK,MAAA,CAAQ,MAAO,MAAO,CAAA,CAC7B,CAAE,GAAA,CAAK,MAAA,CAAQ,MAAO,MAAO,CAAA,CAC7B,CAAE,GAAA,CAAK,QAAA,CAAU,MAAO,QAAS,CAAA,CACjC,CAAE,GAAA,CAAK,QAAA,CAAU,MAAO,aAAc,CACxC,CAAC,CAAC,EACJ","file":"chunk-EWFYKNK7.js","sourcesContent":["import { apiGet } from '../../lib/api/client.js'\nimport { renderTable } from '../../lib/output/table.js'\nimport { formatRelative } from '../../lib/utils/format.js'\nimport chalk from 'chalk'\n\ninterface Collaborator {\n email: string\n username: string\n role: string\n joined_at: string\n last_active: string | null\n}\n\nexport default async function collabList(folder: string): Promise<void> {\n const data = await apiGet<{ collaborators: Collaborator[] }>(`/api/v1/collab/list?folder=${encodeURIComponent(folder)}`, { authenticated: true })\n const rows = (data.collaborators || []).map(c => ({\n email: c.email,\n user: c.username,\n role: chalk.hex('#7C4DFF')(c.role),\n joined: formatRelative(c.joined_at),\n active: c.last_active ? formatRelative(c.last_active) : chalk.dim('never'),\n }))\n console.log(renderTable(rows, [\n { key: 'email', label: 'Email' },\n { key: 'user', label: 'User' },\n { key: 'role', label: 'Role' },\n { key: 'joined', label: 'Joined' },\n { key: 'active', label: 'Last Active' },\n ]))\n}\n"]}
|
package/dist/chunk-F6IK5BFP.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {c}from'./chunk-YZWZNR6K.js';import {q,y,s}from'./chunk-BC3STHFS.js';import {a}from'./chunk-OSI5H2T5.js';import {d}from'./chunk-5TMR6Y7L.js';async function m(){let r=c("Scanning for orphaned files...");r.start();let e=await d("/api/v1/storage/clean",{orphaned:true},{authenticated:true});if(r.succeed(),q()){y(e);return}s(`Cleaned ${e.deleted} orphaned files (${a(e.freed_bytes)})`);}export{m as a};//# sourceMappingURL=chunk-F6IK5BFP.js.map
|
|
2
|
-
//# sourceMappingURL=chunk-F6IK5BFP.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/storage/storage-clean.ts"],"names":["storageClean","spinner","createSpinner","result","apiPost","isJsonMode","logJSON","logSuccess","formatBytes"],"mappings":"oJAOA,eAAOA,CAAAA,EAAqD,CAC1D,IAAMC,CAAAA,CAAUC,EAAc,gCAAgC,CAAA,CAC9DD,EAAQ,KAAA,EAAM,CACd,IAAME,CAAAA,CAAS,MAAMC,EAAkD,uBAAA,CAAyB,CAAE,SAAU,IAAK,CAAA,CAAG,CAAE,aAAA,CAAe,IAAK,CAAC,EAE3I,GADAH,CAAAA,CAAQ,SAAQ,CACZI,CAAAA,GAAc,CAChBC,CAAAA,CAAQH,CAAM,CAAA,CACd,MACF,CACAI,CAAAA,CAAW,CAAA,QAAA,EAAWJ,EAAO,OAAO,CAAA,iBAAA,EAAoBK,EAAYL,CAAAA,CAAO,WAAW,CAAC,CAAA,CAAA,CAAG,EAC5F","file":"chunk-F6IK5BFP.js","sourcesContent":["import { apiPost } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess, logJSON } from '../../lib/output/logger.js'\nimport { isJsonMode } from '../../lib/output/logger.js'\nimport chalk from 'chalk'\nimport { formatBytes } from '../../lib/utils/format.js'\n\nexport default async function storageClean(): Promise<void> {\n const spinner = createSpinner('Scanning for orphaned files...')\n spinner.start()\n const result = await apiPost<{ deleted: number; freed_bytes: number }>('/api/v1/storage/clean', { orphaned: true }, { authenticated: true })\n spinner.succeed()\n if (isJsonMode()) {\n logJSON(result)\n return\n }\n logSuccess(`Cleaned ${result.deleted} orphaned files (${formatBytes(result.freed_bytes)})`)\n}\n"]}
|
package/dist/chunk-F6Z2OAHW.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var o=new Set([".html",".css",".js",".mjs",".json",".svg",".png",".jpg",".jpeg",".gif",".webp",".avif",".ico",".woff",".woff2",".ttf",".otf",".eot",".mp4",".webm",".ogg",".mp3",".wav",".pdf",".txt",".xml",".map"]);function n(t){let e=t.toLowerCase().slice(t.lastIndexOf("."));return e?o.has(e):false}function s(){return [...o]}export{n as a,s as b};//# sourceMappingURL=chunk-F6Z2OAHW.js.map
|
|
2
|
-
//# sourceMappingURL=chunk-F6Z2OAHW.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/deploy/allowlist.ts"],"names":["ALLOWED_EXTENSIONS","isAllowedFile","filePath","ext","getAllowedExtensions"],"mappings":"AAAA,IAAMA,CAAAA,CAAqB,IAAI,GAAA,CAAI,CACjC,OAAA,CAAS,MAAA,CAAQ,KAAA,CAAO,MAAA,CAAQ,OAAA,CAAS,MAAA,CACzC,MAAA,CAAQ,MAAA,CAAQ,OAAA,CAAS,MAAA,CAAQ,OAAA,CAAS,OAAA,CAAS,MAAA,CACnD,OAAA,CAAS,QAAA,CAAU,MAAA,CAAQ,MAAA,CAAQ,MAAA,CACnC,MAAA,CAAQ,OAAA,CAAS,MAAA,CAAQ,MAAA,CAAQ,MAAA,CACjC,MAAA,CAAQ,OAAQ,MAAA,CAAQ,MAC1B,CAAC,CAAA,CAEM,SAASC,CAAAA,CAAcC,CAAAA,CAA2B,CACvD,IAAMC,CAAAA,CAAMD,CAAAA,CAAS,WAAA,EAAY,CAAE,KAAA,CAAMA,CAAAA,CAAS,WAAA,CAAY,GAAG,CAAC,CAAA,CAClE,OAAKC,CAAAA,CACEH,CAAAA,CAAmB,GAAA,CAAIG,CAAG,CAAA,CADhB,KAEnB,CAEO,SAASC,CAAAA,EAAiC,CAC/C,OAAO,CAAC,GAAGJ,CAAkB,CAC/B","file":"chunk-F6Z2OAHW.js","sourcesContent":["const ALLOWED_EXTENSIONS = new Set([\n '.html', '.css', '.js', '.mjs', '.json', '.svg',\n '.png', '.jpg', '.jpeg', '.gif', '.webp', '.avif', '.ico',\n '.woff', '.woff2', '.ttf', '.otf', '.eot',\n '.mp4', '.webm', '.ogg', '.mp3', '.wav',\n '.pdf', '.txt', '.xml', '.map',\n])\n\nexport function isAllowedFile(filePath: string): boolean {\n const ext = filePath.toLowerCase().slice(filePath.lastIndexOf('.'))\n if (!ext) return false\n return ALLOWED_EXTENSIONS.has(ext)\n}\n\nexport function getAllowedExtensions(): string[] {\n return [...ALLOWED_EXTENSIONS]\n}\n"]}
|
package/dist/chunk-FBSVAPQ6.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import {v}from'./chunk-BC3STHFS.js';import {c}from'./chunk-5TMR6Y7L.js';import a from'open';async function r(t){let i=(await c(`/api/v1/sites/${t}`,{authenticated:true})).site.url||`https://squidcloud.vercel.app/sites/${t}`;v(`Opening ${i}...`),await a(i);}
|
|
2
|
-
export{r as a};//# sourceMappingURL=chunk-FBSVAPQ6.js.map
|
|
3
|
-
//# sourceMappingURL=chunk-FBSVAPQ6.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/sites/sites-open.ts"],"names":["sitesOpen","slug","url","apiGet","logInfo","open"],"mappings":"4FAIA,eAAOA,CAAAA,CAAiCC,CAAAA,CAA6B,CAEnE,IAAMC,CAAAA,CAAAA,CADO,MAAMC,CAAAA,CAAkC,CAAA,cAAA,EAAiBF,CAAI,GAAI,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,EACpF,IAAA,CAAK,GAAA,EAAO,CAAA,oCAAA,EAAuCA,CAAI,CAAA,CAAA,CACxEG,CAAAA,CAAQ,CAAA,QAAA,EAAWF,CAAG,CAAA,GAAA,CAAK,CAAA,CAC3B,MAAMG,CAAAA,CAAKH,CAAG,EAChB","file":"chunk-FBSVAPQ6.js","sourcesContent":["import open from 'open'\nimport { apiGet } from '../../lib/api/client.js'\nimport { logInfo } from '../../lib/output/logger.js'\n\nexport default async function sitesOpen(slug: string): Promise<void> {\n const data = await apiGet<{ site: { url: string } }>(`/api/v1/sites/${slug}`, { authenticated: true })\n const url = data.site.url || `https://squidcloud.vercel.app/sites/${slug}`\n logInfo(`Opening ${url}...`)\n await open(url)\n}\n"]}
|
package/dist/chunk-FJZYWFE2.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {c}from'./chunk-YZWZNR6K.js';import {s}from'./chunk-BC3STHFS.js';import {d}from'./chunk-5TMR6Y7L.js';async function g(a,e){if(e.add){let r=c(`Adding tag "${e.add}" to ${a}...`);r.start(),await d("/api/v1/storage/tags",{path:a,tag:e.add,action:"add"},{authenticated:true}),r.succeed(),s(`Tag "${e.add}" added to ${a}`);}if(e.remove){let r=c(`Removing tag "${e.remove}" from ${a}...`);r.start(),await d("/api/v1/storage/tags",{path:a,tag:e.remove,action:"remove"},{authenticated:true}),r.succeed(),s(`Tag "${e.remove}" removed from ${a}`);}}export{g as a};//# sourceMappingURL=chunk-FJZYWFE2.js.map
|
|
2
|
-
//# sourceMappingURL=chunk-FJZYWFE2.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/storage/storage-tag.ts"],"names":["storageTag","path","options","spinner","createSpinner","apiPost","logSuccess"],"mappings":"4GAIA,eAAOA,CAAAA,CAAkCC,EAAcC,CAAAA,CAA2D,CAChH,GAAIA,CAAAA,CAAQ,GAAA,CAAK,CACf,IAAMC,CAAAA,CAAUC,EAAc,CAAA,YAAA,EAAeF,CAAAA,CAAQ,GAAG,CAAA,KAAA,EAAQD,CAAI,KAAK,CAAA,CACzEE,CAAAA,CAAQ,OAAM,CACd,MAAME,EAAQ,sBAAA,CAAwB,CAAE,KAAAJ,CAAAA,CAAM,GAAA,CAAKC,EAAQ,GAAA,CAAK,MAAA,CAAQ,KAAM,CAAA,CAAG,CAAE,cAAe,IAAK,CAAC,EACxGC,CAAAA,CAAQ,OAAA,GACRG,CAAAA,CAAW,CAAA,KAAA,EAAQJ,CAAAA,CAAQ,GAAG,CAAA,WAAA,EAAcD,CAAI,EAAE,EACpD,CACA,GAAIC,CAAAA,CAAQ,MAAA,CAAQ,CAClB,IAAMC,CAAAA,CAAUC,EAAc,CAAA,cAAA,EAAiBF,CAAAA,CAAQ,MAAM,CAAA,OAAA,EAAUD,CAAI,KAAK,CAAA,CAChFE,CAAAA,CAAQ,OAAM,CACd,MAAME,CAAAA,CAAQ,sBAAA,CAAwB,CAAE,IAAA,CAAAJ,EAAM,GAAA,CAAKC,CAAAA,CAAQ,OAAQ,MAAA,CAAQ,QAAS,EAAG,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAC9GC,EAAQ,OAAA,EAAQ,CAChBG,EAAW,CAAA,KAAA,EAAQJ,CAAAA,CAAQ,MAAM,CAAA,eAAA,EAAkBD,CAAI,CAAA,CAAE,EAC3D,CACF","file":"chunk-FJZYWFE2.js","sourcesContent":["import { apiPost, apiDelete } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess } from '../../lib/output/logger.js'\n\nexport default async function storageTag(path: string, options: { add?: string; remove?: string }): Promise<void> {\n if (options.add) {\n const spinner = createSpinner(`Adding tag \"${options.add}\" to ${path}...`)\n spinner.start()\n await apiPost('/api/v1/storage/tags', { path, tag: options.add, action: 'add' }, { authenticated: true })\n spinner.succeed()\n logSuccess(`Tag \"${options.add}\" added to ${path}`)\n }\n if (options.remove) {\n const spinner = createSpinner(`Removing tag \"${options.remove}\" from ${path}...`)\n spinner.start()\n await apiPost('/api/v1/storage/tags', { path, tag: options.remove, action: 'remove' }, { authenticated: true })\n spinner.succeed()\n logSuccess(`Tag \"${options.remove}\" removed from ${path}`)\n }\n}\n"]}
|
package/dist/chunk-FMJZFIA2.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import {v}from'./chunk-BC3STHFS.js';import r from'open';async function i(){let o="https://squidcloud.vercel.app/feedback";v(`Opening ${o} in your browser...`),await r(o);}
|
|
2
|
-
export{i as a};//# sourceMappingURL=chunk-FMJZFIA2.js.map
|
|
3
|
-
//# sourceMappingURL=chunk-FMJZFIA2.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/util/feedback.ts"],"names":["feedback","url","logInfo","open"],"mappings":"wDAGA,eAAOA,CAAAA,EAAiD,CACtD,IAAMC,CAAAA,CAAM,wCAAA,CACZC,CAAAA,CAAQ,CAAA,QAAA,EAAWD,CAAG,CAAA,mBAAA,CAAqB,CAAA,CAC3C,MAAME,CAAAA,CAAKF,CAAG,EAChB","file":"chunk-FMJZFIA2.js","sourcesContent":["import open from 'open'\nimport { logInfo } from '../../lib/output/logger.js'\n\nexport default async function feedback(): Promise<void> {\n const url = 'https://squidcloud.vercel.app/feedback'\n logInfo(`Opening ${url} in your browser...`)\n await open(url)\n}\n"]}
|
package/dist/chunk-GAP2HHZR.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {q,y,x}from'./chunk-BC3STHFS.js';import {c}from'./chunk-5TMR6Y7L.js';import o from'chalk';async function a(m){let i=(await c(`/api/v1/forms/${m}`,{authenticated:true})).form;if(q()){y(i);return}x(""),x(` ${o.bold(i.name)}`),x(o.dim(" \u2500\u2500\u2500".repeat(8))),x(` ${o.bold("ID:")} ${i.id}`),x(` ${o.bold("Folder:")} ${i.folder||o.dim("none")}`),x(` ${o.bold("Submissions:")} ${i.submission_count}`),x(` ${o.bold("Spam Protection:")} ${i.spam_protection?o.green("on"):o.dim("off")}`),x(` ${o.bold("Active:")} ${i.is_active?o.green("yes"):o.yellow("no")}`),x(` ${o.bold("Embed:")} ${o.dim(i.embed_url)}`),x("");}export{a};//# sourceMappingURL=chunk-GAP2HHZR.js.map
|
|
2
|
-
//# sourceMappingURL=chunk-GAP2HHZR.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/forms/forms-info.ts"],"names":["formsInfo","id","f","apiGet","isJsonMode","logJSON","logRaw","chalk"],"mappings":"iGAeA,eAAOA,CAAAA,CAAiCC,EAA2B,CAEjE,IAAMC,CAAAA,CAAAA,CADO,MAAMC,CAAAA,CAA6B,CAAA,cAAA,EAAiBF,CAAE,CAAA,CAAA,CAAI,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,EAC/E,IAAA,CAEf,GAAIG,CAAAA,EAAW,CAAG,CAChBC,CAAAA,CAAQH,CAAC,CAAA,CACT,MACF,CAEAI,CAAAA,CAAO,EAAE,CAAA,CACTA,EAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,IAAA,CAAKL,CAAAA,CAAE,IAAI,CAAC,CAAA,CAAE,CAAA,CAChCI,EAAOC,CAAAA,CAAM,GAAA,CAAI,sBAAA,CAAQ,MAAA,CAAO,CAAC,CAAC,CAAC,CAAA,CACnCD,EAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,IAAA,CAAK,KAAK,CAAC,CAAA,cAAA,EAAiBL,CAAAA,CAAE,EAAE,EAAE,CAAA,CACpDI,CAAAA,CAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,IAAA,CAAK,SAAS,CAAC,CAAA,UAAA,EAAaL,EAAE,MAAA,EAAUK,CAAAA,CAAM,GAAA,CAAI,MAAM,CAAC,CAAA,CAAE,CAAA,CAC7ED,CAAAA,CAAO,KAAKC,CAAAA,CAAM,IAAA,CAAK,cAAc,CAAC,CAAA,KAAA,EAAQL,CAAAA,CAAE,gBAAgB,CAAA,CAAE,EAClEI,CAAAA,CAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,IAAA,CAAK,kBAAkB,CAAC,CAAA,CAAA,EAAIL,CAAAA,CAAE,gBAAkBK,CAAAA,CAAM,KAAA,CAAM,IAAI,CAAA,CAAIA,CAAAA,CAAM,GAAA,CAAI,KAAK,CAAC,EAAE,CAAA,CACxGD,CAAAA,CAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,IAAA,CAAK,SAAS,CAAC,CAAA,UAAA,EAAaL,EAAE,SAAA,CAAYK,CAAAA,CAAM,KAAA,CAAM,KAAK,CAAA,CAAIA,CAAAA,CAAM,MAAA,CAAO,IAAI,CAAC,CAAA,CAAE,CAAA,CACrGD,CAAAA,CAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,IAAA,CAAK,QAAQ,CAAC,cAAcA,CAAAA,CAAM,GAAA,CAAIL,CAAAA,CAAE,SAAS,CAAC,CAAA,CAAE,CAAA,CACtEI,CAAAA,CAAO,EAAE,EACX","file":"chunk-GAP2HHZR.js","sourcesContent":["import { apiGet } from '../../lib/api/client.js'\nimport { logJSON, logRaw } from '../../lib/output/logger.js'\nimport { isJsonMode } from '../../lib/output/logger.js'\nimport chalk from 'chalk'\n\ninterface FormDetail {\n id: string\n name: string\n folder: string | null\n submission_count: number\n spam_protection: boolean\n is_active: boolean\n embed_url: string\n}\n\nexport default async function formsInfo(id: string): Promise<void> {\n const data = await apiGet<{ form: FormDetail }>(`/api/v1/forms/${id}`, { authenticated: true })\n const f = data.form\n\n if (isJsonMode()) {\n logJSON(f)\n return\n }\n\n logRaw('')\n logRaw(` ${chalk.bold(f.name)}`)\n logRaw(chalk.dim(' ───'.repeat(8)))\n logRaw(` ${chalk.bold('ID:')} ${f.id}`)\n logRaw(` ${chalk.bold('Folder:')} ${f.folder || chalk.dim('none')}`)\n logRaw(` ${chalk.bold('Submissions:')} ${f.submission_count}`)\n logRaw(` ${chalk.bold('Spam Protection:')} ${f.spam_protection ? chalk.green('on') : chalk.dim('off')}`)\n logRaw(` ${chalk.bold('Active:')} ${f.is_active ? chalk.green('yes') : chalk.yellow('no')}`)\n logRaw(` ${chalk.bold('Embed:')} ${chalk.dim(f.embed_url)}`)\n logRaw('')\n}\n"]}
|
package/dist/chunk-GIADGCQF.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import {a,b}from'./chunk-6RI4Z6IY.js';import {v,q,y,s,u}from'./chunk-BC3STHFS.js';import {a as a$1}from'./chunk-OSI5H2T5.js';import {f}from'./chunk-BQGHHBGH.js';import {m}from'./chunk-6VDGYAGT.js';import {a as a$2}from'./chunk-F6Z2OAHW.js';import C from'fs';import R from'path';import {gcm}from'@noble/ciphers/aes';import {randomBytes}from'@noble/hashes/utils';import {sha256}from'@noble/hashes/sha256';import te from'https';import ne from'http';import U from'chalk';import oe from'cli-progress';import ie from'ignore';function H(t){return new TextEncoder().encode(t.slice(0,32).padEnd(32,"0"))}function Z(t){return Buffer.from(t).toString("base64")}function L(){return Buffer.from(randomBytes(32)).toString("hex")}var Y=1.5*1024*1024,G=2*1024*1024,V=2.5*1024*1024;function W(t){return t>100*1024*1024?V:t>10*1024*1024?G:Y}function M(t,c,i,e){let n=L(),o=H(n),f=W(t.length),r=Math.ceil(t.length/f),u=[],g=Date.now();for(let m$1=0;m$1<r;m$1++){let b=m$1*f,h=Math.min(b+f,t.length),s=t.subarray(b,h),l=randomBytes(12),a=new TextEncoder().encode(`res54-v2-${g}`),w=gcm(o,l,a).encrypt(s),d=new Uint8Array(4+a.length+l.length+w.length);new DataView(d.buffer,0,4).setUint32(0,a.length,true),d.set(a,4),d.set(l,4+a.length),d.set(w,4+a.length+l.length),u.push({index:m$1,totalChunks:r,size:s.length,offset:b,sha256:m(sha256(s)),encryptedBase64:Z(d)});}return {encryptionKey:n,fileName:c,fileType:i,fileSize:t.length,chunks:u}}var X="https://aouqcwbdoyrccjcrhzzi.supabase.co",Q="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImFvdXFjd2Jkb3lyY2NqY3JoenppIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NDI5NjAyMTEsImV4cCI6MjA1ODUzNjIxMX0.b_VHC6uP3Efw3o_yibCoZKmsCIVZgOJ4FUF1NK-nd7U";async function E(t,c,i){let e=await f();if(!e?.access_token)throw new Error("Not logged in");let n=await fetch(`${X}${c}`,{method:t,headers:{"Content-Type":"application/json",Authorization:`Bearer ${e.access_token}`,apikey:Q},body:i?JSON.stringify(i):void 0});if(!n.ok){let o=await n.text();throw new Error(`Supabase API error (${n.status}): ${o.slice(0,500)}`)}if(n.status!==204)return n.json()}function ee(t,c,i){let e=`res54_${Date.now().toString(36)}_${Math.random().toString(36).substring(2,9)}_${c}`;return `${t}/${e}.json`}async function J(t,c,i,e){let n=await f();if(!n?.access_token)throw new Error("Not logged in. Run `squidcloud auth login` first.");let o=n.user.id,f$1=await E("GET",`/rest/v1/repositories?select=repo_name&user_id=eq.${o}`);if(!f$1||f$1.length===0)throw new Error("No storage vault found. Create one on the dashboard first.");e?.(0,1,"Encrypting");let r=M(t,c,i),u=r.chunks.length,g=[];e?.(0,u,"Uploading");for(let s=0;s<u;s++){let l=r.chunks[s],a=f$1[s%f$1.length],p=ee(o,l.index),w={version:"3.0",chunkIndex:l.index,totalChunks:l.totalChunks,fileName:r.fileName,fileType:r.fileType,fileSize:r.fileSize,chunkData:l.encryptedBase64,chunkSize:l.encryptedBase64.length,checksum:l.sha256,repo:a.repo_name,path:p},d=await E("POST","/functions/v1/github-storage",{action:"upload",fileName:p.split("/").pop(),fileType:"application/json",data:JSON.stringify(w),userId:o,path:p,repo:a.repo_name});if(!d.success)throw new Error(`Failed to upload chunk ${s}`);g.push({index:s,repo:a.repo_name,path:p,sha:d.sha}),e?.(s+1,u,"Uploading");}e?.(u,u,"Finalizing");let m={fileName:r.fileName,fileType:r.fileType,fileSize:r.fileSize,chunks:r.chunks.map((s,l)=>({...s,repo:g[l].repo,path:g[l].path})),encryptionKey:r.encryptionKey,created:new Date().toISOString(),previewAvailable:false},h=(await E("POST","/rest/v1/rpc/create_file_record",{p_name:r.fileName,p_type:r.fileType,p_size:r.fileSize,p_storage_path:"res54_distributed",p_user_id:o,p_encrypted:true,p_encryption_key:r.encryptionKey,p_metadata:JSON.stringify(m),p_workspace_id:null}))?.id;if(!h)throw new Error("Failed to create file record: no id returned");return e?.(u,u,"Complete"),{id:h}}function re(t,c,i){let e=Buffer.from(`--${i}\r
|
|
2
|
-
Content-Disposition: form-data; name="file"; filename="${c}"\r
|
|
3
|
-
Content-Type: application/octet-stream\r
|
|
4
|
-
\r
|
|
5
|
-
`),n=Buffer.from(`\r
|
|
6
|
-
--${i}--\r
|
|
7
|
-
`);return Buffer.concat([e,t,n])}function K(t,c,i,e,n){return new Promise((o,f)=>{let r=`----FormBoundary${Math.random().toString(36).slice(2,12)}`,u=re(c,i,r),g=u.length,m=new URL(t),b=m.protocol==="https:",h=b?te:ne,s={"Content-Type":`multipart/form-data; boundary=${r}`,"Content-Length":String(g),...e},l={hostname:m.hostname,port:m.port||(b?443:80),path:m.pathname+m.search,method:"POST",headers:s},a=h.request(l,y=>{let $=[];y.on("data",S=>$.push(S)),y.on("end",()=>{let S=Buffer.concat($),P=new Response(S,{status:y.statusCode??200,statusText:y.statusMessage??"OK",headers:new Headers(y.headers)});o(P);});});a.on("error",y=>f(y));let p=0,w=65536,d=0;function k(){if(d>=g){a.end();return}let y=Math.min(d+w,g),$=u.subarray(d,y),S=a.write($);p=y,n(p),S?(d=y,k()):a.once("drain",()=>{d=y,k();});}k();})}var se="https://squidcloud.vercel.app";async function ae(t,c,i){let e=R.resolve(t),n=c||R.basename(e);C.existsSync(e)||(console.error(`File not found: ${e}`),process.exit(1));let o=C.statSync(e);if(o.isFile()){if(i?.dryRun){v(`[DRY-RUN] Would upload: ${e} \u2192 ${n}`);return}await ce(e,n);return}if(o.isDirectory()){if(i?.dryRun){v(`[DRY-RUN] Would upload directory: ${e} \u2192 ${n}`);return}await le(e,n,i?.ignore);}}async function ce(t,c){let i=C.readFileSync(t),e=i.length,n=R.basename(t),{bar:o,tracker:f}=a(n,e);o.update(0,{filename:n});try{let r=await J(new Uint8Array(i),c,"application/octet-stream",(u,g)=>{b(o,f,Math.round(u/g*e));});o.stop(),q()?y(r):s(`Uploaded ${n} (${a$1(e)})`);}catch(r){throw o.stop(),r}}async function le(t,c,i){let e=await f();if(!e)throw new Error("Not logged in. Run `squidcloud auth login` first.");let n=ie();i&&n.add(i),n.add(".DS_Store"),n.add("node_modules"),n.add(".git");let o=[];function f$1(h,s){let l=C.readdirSync(h,{withFileTypes:true});for(let a of l){let p=R.join(h,a.name),w=R.relative(s,p);n.ignores(w)||(a.isDirectory()?f$1(p,s):a.isFile()&&a$2(a.name)&&o.push({relative:w,absolute:p}));}}if(f$1(t,t),o.length===0){u("No allowed files found to upload");return}let r=new oe.MultiBar({clearOnComplete:false,hideCursor:true,format:` ${U.hex("#7C4DFF")("\u25B8")} {filename}`,barCompleteChar:"\u2588",barIncompleteChar:"\u2591",stopOnComplete:true}),u$1=r.create(o.length,0,{filename:U.bold(`Uploading ${o.length} files...`)}),g=r.create(100,0,{filename:""}),m={};e.api_key&&(m["x-squidcloud-key"]=e.api_key);let b=0;for(let h of o){g.update(0,{filename:U.dim(h.relative)});let s=C.readFileSync(h.absolute),l=c?`${c}/${h.relative}`:h.relative,a=`${se}/api/v1/storage/upload?path=${encodeURIComponent(l)}`;await K(a,s,h.relative,m,w=>{let y=s.length>0?w/s.length*100:0;g.update(y);}),b++,u$1.update(b,{filename:U.bold(`Uploaded ${b}/${o.length} files`)});}r.stop(),q()?y({uploaded:o.length,path:c}):s(`Uploaded ${o.length} files to ${c}`);}
|
|
8
|
-
export{ae as a};//# sourceMappingURL=chunk-GIADGCQF.js.map
|
|
9
|
-
//# sourceMappingURL=chunk-GIADGCQF.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/crypto/encrypt-file.ts","../src/lib/api/upload-res54.ts","../src/lib/api/upload-progress.ts","../src/commands/storage/storage-upload.ts"],"names":["deriveRawKey","key","uint8ArrayToBase64","bytes","generateEncryptionKey","randomBytes","CHUNK_SIZE_SMALL","CHUNK_SIZE_MEDIUM","CHUNK_SIZE_LARGE","determineChunkSize","fileSize","encryptFile","data","fileName","fileType","encryptionKey","keyBytes","chunkSize","totalChunks","chunks","timestamp","i","offset","end","plaintext","iv","ad","encrypted","gcm","combined","bytesToHex","sha256","SUPABASE_URL","ANON_KEY","supabaseFetch","method","path","body","session","loadSession","response","text","getRepoPath","userId","chunkIndex","id","uploadFileRes54","onProgress","repos","result","chunkResults","chunk","repo","chunkData","uploadResponse","metadata","c","idx","fileId","buildMultipart","fileContent","filename","boundary","header","footer","uploadFileWithProgress","url","headers","resolve","reject","total","urlObj","isHttps","mod","https","http","reqHeaders","options","req","res","resp","err","uploaded","writeNext","canContinue","API_BASE","storageUpload","local","remote","localPath","remotePath","fs","stat","logInfo","uploadFile","uploadDirectory","content","bar","tracker","createProgressBar","current","updateProgress","isJsonMode","logJSON","logSuccess","formatBytes","ignorePattern","ig","ignore","files","walk","dir","baseDir","entries","entry","fullPath","relative","isAllowedFile","logWarn","multibar","cliProgress","chalk","overallBar","fileBar","uploadedCount","f","fileRemote","pct"],"mappings":"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","file":"chunk-GIADGCQF.js","sourcesContent":["import { gcm } from '@noble/ciphers/aes'\nimport { randomBytes } from '@noble/hashes/utils'\nimport { sha256 } from '@noble/hashes/sha256'\nimport { bytesToHex } from './ssp.js'\n\nfunction deriveRawKey(key: string): Uint8Array {\n return new TextEncoder().encode(key.slice(0, 32).padEnd(32, '0'))\n}\n\nfunction uint8ArrayToBase64(bytes: Uint8Array): string {\n return Buffer.from(bytes).toString('base64')\n}\n\nfunction base64ToUint8Array(b64: string): Uint8Array {\n return new Uint8Array(Buffer.from(b64, 'base64'))\n}\n\nfunction generateEncryptionKey(): string {\n return Buffer.from(randomBytes(32)).toString('hex')\n}\n\nexport interface EncryptedChunkResult {\n index: number\n totalChunks: number\n size: number\n offset: number\n sha256: string\n encryptedBase64: string\n}\n\nexport interface FileEncryptionResult {\n encryptionKey: string\n fileName: string\n fileType: string\n fileSize: number\n chunks: EncryptedChunkResult[]\n}\n\nconst CHUNK_SIZE_SMALL = 1.5 * 1024 * 1024\nconst CHUNK_SIZE_MEDIUM = 2 * 1024 * 1024\nconst CHUNK_SIZE_LARGE = 2.5 * 1024 * 1024\n\nfunction determineChunkSize(fileSize: number): number {\n if (fileSize > 100 * 1024 * 1024) return CHUNK_SIZE_LARGE\n if (fileSize > 10 * 1024 * 1024) return CHUNK_SIZE_MEDIUM\n return CHUNK_SIZE_SMALL\n}\n\nexport function encryptFile(data: Uint8Array, fileName: string, fileType: string, encryptionKey?: string): FileEncryptionResult {\n const key = encryptionKey || generateEncryptionKey()\n const keyBytes = deriveRawKey(key)\n const chunkSize = determineChunkSize(data.length)\n const totalChunks = Math.ceil(data.length / chunkSize)\n\n const chunks: EncryptedChunkResult[] = []\n const timestamp = Date.now()\n\n for (let i = 0; i < totalChunks; i++) {\n const offset = i * chunkSize\n const end = Math.min(offset + chunkSize, data.length)\n const plaintext = data.subarray(offset, end)\n\n const iv = randomBytes(12)\n const ad = new TextEncoder().encode(`res54-v2-${timestamp}`)\n\n const aes = gcm(keyBytes, iv, ad)\n const encrypted = aes.encrypt(plaintext)\n\n const combined = new Uint8Array(4 + ad.length + iv.length + encrypted.length)\n const view = new DataView(combined.buffer, 0, 4)\n view.setUint32(0, ad.length, true)\n combined.set(ad, 4)\n combined.set(iv, 4 + ad.length)\n combined.set(encrypted, 4 + ad.length + iv.length)\n\n chunks.push({\n index: i,\n totalChunks,\n size: plaintext.length,\n offset,\n sha256: bytesToHex(sha256(plaintext)),\n encryptedBase64: uint8ArrayToBase64(combined),\n })\n }\n\n return {\n encryptionKey: key,\n fileName,\n fileType,\n fileSize: data.length,\n chunks,\n }\n}\n","import { loadSession } from '../auth/session.js'\nimport { encryptFile, type FileEncryptionResult } from '../crypto/encrypt-file.js'\n\nconst SUPABASE_URL = 'https://aouqcwbdoyrccjcrhzzi.supabase.co'\nconst ANON_KEY = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImFvdXFjd2Jkb3lyY2NqY3JoenppIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NDI5NjAyMTEsImV4cCI6MjA1ODUzNjIxMX0.b_VHC6uP3Efw3o_yibCoZKmsCIVZgOJ4FUF1NK-nd7U'\n\ninterface GitHubRepo {\n repo_name: string\n}\n\ninterface ChunkUploadResult {\n index: number\n repo: string\n path: string\n sha?: string\n}\n\nasync function supabaseFetch<T>(method: string, path: string, body?: unknown): Promise<T> {\n const session = await loadSession()\n if (!session?.access_token) throw new Error('Not logged in')\n\n const response = await fetch(`${SUPABASE_URL}${path}`, {\n method,\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${session.access_token}`,\n 'apikey': ANON_KEY,\n },\n body: body ? JSON.stringify(body) : undefined,\n })\n\n if (!response.ok) {\n const text = await response.text()\n throw new Error(`Supabase API error (${response.status}): ${text.slice(0, 500)}`)\n }\n\n if (response.status === 204) return undefined as T\n return response.json() as Promise<T>\n}\n\nfunction getRepoPath(userId: string, chunkIndex: number, totalChunks: number): string {\n const id = `res54_${Date.now().toString(36)}_${Math.random().toString(36).substring(2, 9)}_${chunkIndex}`\n return `${userId}/${id}.json`\n}\n\nexport async function uploadFileRes54(\n data: Uint8Array,\n fileName: string,\n fileType: string,\n onProgress?: (current: number, total: number, stage: string) => void,\n): Promise<{ id: string }> {\n const session = await loadSession()\n if (!session?.access_token) throw new Error('Not logged in. Run `squidcloud auth login` first.')\n const userId = session.user.id\n\n const repos = await supabaseFetch<GitHubRepo[]>('GET', `/rest/v1/repositories?select=repo_name&user_id=eq.${userId}`)\n if (!repos || repos.length === 0) throw new Error('No storage vault found. Create one on the dashboard first.')\n\n onProgress?.(0, 1, 'Encrypting')\n\n const result = encryptFile(data, fileName, fileType)\n const totalChunks = result.chunks.length\n\n const chunkResults: ChunkUploadResult[] = []\n\n onProgress?.(0, totalChunks, 'Uploading')\n\n for (let i = 0; i < totalChunks; i++) {\n const chunk = result.chunks[i]\n const repo = repos[i % repos.length]\n const path = getRepoPath(userId, chunk.index, totalChunks)\n\n const chunkData = {\n version: '3.0',\n chunkIndex: chunk.index,\n totalChunks: chunk.totalChunks,\n fileName: result.fileName,\n fileType: result.fileType,\n fileSize: result.fileSize,\n chunkData: chunk.encryptedBase64,\n chunkSize: chunk.encryptedBase64.length,\n checksum: chunk.sha256,\n repo: repo.repo_name,\n path,\n }\n\n const uploadResponse = await supabaseFetch<{ success: boolean; sha?: string }>('POST', '/functions/v1/github-storage', {\n action: 'upload',\n fileName: path.split('/').pop(),\n fileType: 'application/json',\n data: JSON.stringify(chunkData),\n userId,\n path,\n repo: repo.repo_name,\n })\n\n if (!uploadResponse.success) {\n throw new Error(`Failed to upload chunk ${i}`)\n }\n\n chunkResults.push({ index: i, repo: repo.repo_name, path, sha: uploadResponse.sha })\n onProgress?.(i + 1, totalChunks, 'Uploading')\n }\n\n onProgress?.(totalChunks, totalChunks, 'Finalizing')\n\n const metadata = {\n fileName: result.fileName,\n fileType: result.fileType,\n fileSize: result.fileSize,\n chunks: result.chunks.map((c, idx) => ({\n ...c,\n repo: chunkResults[idx].repo,\n path: chunkResults[idx].path,\n })),\n encryptionKey: result.encryptionKey,\n created: new Date().toISOString(),\n previewAvailable: false,\n }\n\n const rpcResult = await supabaseFetch<{ id: string }>('POST', '/rest/v1/rpc/create_file_record', {\n p_name: result.fileName,\n p_type: result.fileType || 'application/octet-stream',\n p_size: result.fileSize,\n p_storage_path: 'res54_distributed',\n p_user_id: userId,\n p_encrypted: true,\n p_encryption_key: result.encryptionKey,\n p_metadata: JSON.stringify(metadata),\n p_workspace_id: null as string | null,\n })\n\n const fileId = (rpcResult as any)?.id\n if (!fileId) throw new Error('Failed to create file record: no id returned')\n\n onProgress?.(totalChunks, totalChunks, 'Complete')\n\n return { id: fileId }\n}\n","import https from 'node:https'\nimport http from 'node:http'\n\nfunction buildMultipart(fileContent: Buffer, filename: string, boundary: string): Buffer {\n const header = Buffer.from(\n `--${boundary}\\r\\n` +\n `Content-Disposition: form-data; name=\"file\"; filename=\"${filename}\"\\r\\n` +\n `Content-Type: application/octet-stream\\r\\n\\r\\n`\n )\n const footer = Buffer.from(`\\r\\n--${boundary}--\\r\\n`)\n return Buffer.concat([header, fileContent, footer])\n}\n\nexport function uploadFileWithProgress(\n url: string,\n fileContent: Buffer,\n filename: string,\n headers: Record<string, string>,\n onProgress: (bytes: number) => void,\n): Promise<Response> {\n return new Promise((resolve, reject) => {\n const boundary = `----FormBoundary${Math.random().toString(36).slice(2, 12)}`\n const body = buildMultipart(fileContent, filename, boundary)\n const total = body.length\n\n const urlObj = new URL(url)\n const isHttps = urlObj.protocol === 'https:'\n const mod = isHttps ? https : http\n\n const reqHeaders: Record<string, string> = {\n 'Content-Type': `multipart/form-data; boundary=${boundary}`,\n 'Content-Length': String(total),\n ...headers,\n }\n\n const options: http.RequestOptions = {\n hostname: urlObj.hostname,\n port: urlObj.port || (isHttps ? 443 : 80),\n path: urlObj.pathname + urlObj.search,\n method: 'POST',\n headers: reqHeaders,\n }\n\n const req = mod.request(options, (res) => {\n const chunks: Buffer[] = []\n res.on('data', (chunk: Buffer) => chunks.push(chunk))\n res.on('end', () => {\n const body = Buffer.concat(chunks)\n const resp = new Response(body, {\n status: res.statusCode ?? 200,\n statusText: res.statusMessage ?? 'OK',\n headers: new Headers(res.headers as Record<string, string>),\n })\n resolve(resp)\n })\n })\n\n req.on('error', (err) => reject(err))\n\n let uploaded = 0\n const chunkSize = 65536\n let offset = 0\n\n function writeNext(): void {\n if (offset >= total) {\n req.end()\n return\n }\n const end = Math.min(offset + chunkSize, total)\n const chunk = body.subarray(offset, end)\n const canContinue = req.write(chunk)\n uploaded = end\n onProgress(uploaded)\n if (canContinue) {\n offset = end\n writeNext()\n } else {\n req.once('drain', () => {\n offset = end\n writeNext()\n })\n }\n }\n\n writeNext()\n })\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\nimport { isAllowedFile } from '../../lib/deploy/allowlist.js'\nimport { logSuccess, logWarn, logJSON, logInfo } from '../../lib/output/logger.js'\nimport { isJsonMode } from '../../lib/output/logger.js'\nimport { formatBytes } from '../../lib/utils/format.js'\nimport { uploadFileRes54 } from '../../lib/api/upload-res54.js'\nimport { uploadFileWithProgress } from '../../lib/api/upload-progress.js'\nimport { loadSession } from '../../lib/auth/session.js'\nimport { createProgressBar, updateProgress } from '../../lib/output/progress.js'\nimport chalk from 'chalk'\nimport cliProgress from 'cli-progress'\nimport ignore from 'ignore'\n\nconst API_BASE = 'https://squidcloud.vercel.app'\n\nexport default async function storageUpload(local: string, remote?: string, options?: { ignore?: string; dryRun?: boolean }): Promise<void> {\n const localPath = path.resolve(local)\n const remotePath = remote || path.basename(localPath)\n\n if (!fs.existsSync(localPath)) {\n console.error(`File not found: ${localPath}`)\n process.exit(1)\n }\n\n const stat = fs.statSync(localPath)\n\n if (stat.isFile()) {\n if (options?.dryRun) {\n logInfo(`[DRY-RUN] Would upload: ${localPath} → ${remotePath}`)\n return\n }\n await uploadFile(localPath, remotePath)\n return\n }\n\n if (stat.isDirectory()) {\n if (options?.dryRun) {\n logInfo(`[DRY-RUN] Would upload directory: ${localPath} → ${remotePath}`)\n return\n }\n await uploadDirectory(localPath, remotePath, options?.ignore)\n }\n}\n\nasync function uploadFile(localPath: string, remotePath: string): Promise<void> {\n const content = fs.readFileSync(localPath)\n const total = content.length\n const fileName = path.basename(localPath)\n\n const { bar, tracker } = createProgressBar(fileName, total)\n bar.update(0, { filename: fileName })\n\n try {\n const result = await uploadFileRes54(\n new Uint8Array(content),\n remotePath,\n 'application/octet-stream',\n (current, totalChunks) => {\n updateProgress(bar, tracker, Math.round((current / totalChunks) * total))\n },\n )\n\n bar.stop()\n\n if (isJsonMode()) logJSON(result)\n else logSuccess(`Uploaded ${fileName} (${formatBytes(total)})`)\n } catch (err) {\n bar.stop()\n throw err\n }\n}\n\nasync function uploadDirectory(localPath: string, remotePath: string, ignorePattern?: string): Promise<void> {\n const session = await loadSession()\n if (!session) throw new Error('Not logged in. Run `squidcloud auth login` first.')\n\n const ig = ignore()\n if (ignorePattern) ig.add(ignorePattern)\n ig.add('.DS_Store')\n ig.add('node_modules')\n ig.add('.git')\n\n const files: { relative: string; absolute: string }[] = []\n function walk(dir: string, baseDir: string): void {\n const entries = fs.readdirSync(dir, { withFileTypes: true })\n for (const entry of entries) {\n const fullPath = path.join(dir, entry.name)\n const relative = path.relative(baseDir, fullPath)\n if (ig.ignores(relative)) continue\n if (entry.isDirectory()) {\n walk(fullPath, baseDir)\n } else if (entry.isFile() && isAllowedFile(entry.name)) {\n files.push({ relative, absolute: fullPath })\n }\n }\n }\n walk(localPath, localPath)\n\n if (files.length === 0) {\n logWarn('No allowed files found to upload')\n return\n }\n\n const multibar = new cliProgress.MultiBar({\n clearOnComplete: false,\n hideCursor: true,\n format: ` ${chalk.hex('#7C4DFF')('▸')} {filename}`,\n barCompleteChar: '█',\n barIncompleteChar: '░',\n stopOnComplete: true,\n })\n\n const overallBar = multibar.create(files.length, 0, { filename: chalk.bold(`Uploading ${files.length} files...`) })\n const fileBar = multibar.create(100, 0, { filename: '' })\n\n const headers: Record<string, string> = {}\n if (session.api_key) headers['x-squidcloud-key'] = session.api_key\n\n let uploadedCount = 0\n\n for (const f of files) {\n fileBar.update(0, { filename: chalk.dim(f.relative) })\n\n const content = fs.readFileSync(f.absolute)\n const fileRemote = remotePath ? `${remotePath}/${f.relative}` : f.relative\n\n const url = `${API_BASE}/api/v1/storage/upload?path=${encodeURIComponent(fileRemote)}`\n\n const tracker = { startTime: Date.now(), lastBytes: 0, lastTime: Date.now(), speed: 0 }\n\n await uploadFileWithProgress(url, content, f.relative, headers, (bytes) => {\n const now = Date.now()\n const dt = (now - tracker.lastTime) / 1000\n if (dt >= 0.3) {\n tracker.speed = (bytes - tracker.lastBytes) / dt\n tracker.lastBytes = bytes\n tracker.lastTime = now\n }\n const pct = content.length > 0 ? (bytes / content.length) * 100 : 0\n fileBar.update(pct)\n })\n\n uploadedCount++\n overallBar.update(uploadedCount, { filename: chalk.bold(`Uploaded ${uploadedCount}/${files.length} files`) })\n }\n\n multibar.stop()\n\n if (isJsonMode()) logJSON({ uploaded: files.length, path: remotePath })\n else logSuccess(`Uploaded ${files.length} files to ${remotePath}`)\n}\n"]}
|
package/dist/chunk-H2WQ3ECX.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {c as c$1}from'./chunk-YZWZNR6K.js';import {s}from'./chunk-BC3STHFS.js';import {d}from'./chunk-5TMR6Y7L.js';async function c(i,e){let t=e.public?"public":e.private?"private":"public",o=c$1(`Setting ${i} visibility to ${t}...`);o.start(),await d(`/api/v1/sites/${i}/visibility`,{visibility:t},{authenticated:true}),o.succeed(),s(`Site ${i} is now ${t}`);}export{c as a};//# sourceMappingURL=chunk-H2WQ3ECX.js.map
|
|
2
|
-
//# sourceMappingURL=chunk-H2WQ3ECX.js.map
|