squidcloudctl 1.1.6 → 1.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{auth-revoke-UCNMKHTF.js → auth-revoke-6YX7LBWB.js} +2 -2
- package/dist/{auth-revoke-UCNMKHTF.js.map → auth-revoke-6YX7LBWB.js.map} +1 -1
- package/dist/{auth-sessions-PIBWTIT5.js → auth-sessions-2A63NMIW.js} +2 -2
- package/dist/{auth-sessions-PIBWTIT5.js.map → auth-sessions-2A63NMIW.js.map} +1 -1
- package/dist/auth-status-AOV7GJLX.js +2 -0
- package/dist/{auth-status-RPJVTJ4S.js.map → auth-status-AOV7GJLX.js.map} +1 -1
- package/dist/bin/squidcloud.js +2 -2
- package/dist/bin/squidcloud.js.map +1 -1
- package/dist/{chunk-6DKUVFZF.js → chunk-CHBVIZF5.js} +2 -2
- package/dist/{chunk-6DKUVFZF.js.map → chunk-CHBVIZF5.js.map} +1 -1
- package/dist/{chunk-2RMLR54M.js → chunk-Q3A4IBGC.js} +2 -2
- package/dist/chunk-Q3A4IBGC.js.map +1 -0
- package/dist/{chunk-Z74H5ACJ.js → chunk-ULVQ53OO.js} +3 -3
- package/dist/{chunk-Z74H5ACJ.js.map → chunk-ULVQ53OO.js.map} +1 -1
- package/dist/client-IR7OHGEQ.js +2 -0
- package/dist/{client-MCQSJIGH.js.map → client-IR7OHGEQ.js.map} +1 -1
- package/dist/{collab-activity-ESSL2DUE.js → collab-activity-YOEJEJTQ.js} +2 -2
- package/dist/{collab-activity-ESSL2DUE.js.map → collab-activity-YOEJEJTQ.js.map} +1 -1
- package/dist/{collab-invite-H6KXMBJ5.js → collab-invite-6TN62APL.js} +2 -2
- package/dist/{collab-invite-H6KXMBJ5.js.map → collab-invite-6TN62APL.js.map} +1 -1
- package/dist/{collab-leave-23J42V4P.js → collab-leave-RY2ULFWC.js} +2 -2
- package/dist/{collab-leave-23J42V4P.js.map → collab-leave-RY2ULFWC.js.map} +1 -1
- package/dist/{collab-list-6VNDTN7W.js → collab-list-M4T5NTDC.js} +2 -2
- package/dist/{collab-list-6VNDTN7W.js.map → collab-list-M4T5NTDC.js.map} +1 -1
- package/dist/collab-remove-BUD6VVD5.js +2 -0
- package/dist/{collab-remove-A76ARTWG.js.map → collab-remove-BUD6VVD5.js.map} +1 -1
- package/dist/{collab-transfer-S5MECG6Y.js → collab-transfer-R5IDVZAX.js} +2 -2
- package/dist/{collab-transfer-S5MECG6Y.js.map → collab-transfer-R5IDVZAX.js.map} +1 -1
- package/dist/{deploy-O7VVCVUR.js → deploy-QKTIRD5U.js} +3 -3
- package/dist/{deploy-O7VVCVUR.js.map → deploy-QKTIRD5U.js.map} +1 -1
- package/dist/{doctor-GAUV36VS.js → doctor-2BGIPUMM.js} +2 -2
- package/dist/{doctor-GAUV36VS.js.map → doctor-2BGIPUMM.js.map} +1 -1
- package/dist/{forms-clear-TSQ4YFPW.js → forms-clear-VTF3BEG4.js} +2 -2
- package/dist/{forms-clear-TSQ4YFPW.js.map → forms-clear-VTF3BEG4.js.map} +1 -1
- package/dist/{forms-create-IJPDTTGR.js → forms-create-EGWXMYTW.js} +2 -2
- package/dist/{forms-create-IJPDTTGR.js.map → forms-create-EGWXMYTW.js.map} +1 -1
- package/dist/{forms-delete-5Q6JVOWZ.js → forms-delete-V7SEUFPO.js} +2 -2
- package/dist/{forms-delete-5Q6JVOWZ.js.map → forms-delete-V7SEUFPO.js.map} +1 -1
- package/dist/{forms-embed-RWJ4BAPQ.js → forms-embed-2WBFYFUO.js} +3 -3
- package/dist/{forms-embed-RWJ4BAPQ.js.map → forms-embed-2WBFYFUO.js.map} +1 -1
- package/dist/{forms-export-YGKJVRUD.js → forms-export-DTHYLUF3.js} +2 -2
- package/dist/{forms-export-YGKJVRUD.js.map → forms-export-DTHYLUF3.js.map} +1 -1
- package/dist/{forms-info-NVNTIK45.js → forms-info-KAMWLIOA.js} +2 -2
- package/dist/{forms-info-NVNTIK45.js.map → forms-info-KAMWLIOA.js.map} +1 -1
- package/dist/{forms-list-UDYVBNX5.js → forms-list-5JU4JWVU.js} +2 -2
- package/dist/{forms-list-UDYVBNX5.js.map → forms-list-5JU4JWVU.js.map} +1 -1
- package/dist/{forms-submissions-LFUTUDOW.js → forms-submissions-U3YD6CC7.js} +2 -2
- package/dist/{forms-submissions-LFUTUDOW.js.map → forms-submissions-U3YD6CC7.js.map} +1 -1
- package/dist/{login-PDECY435.js → login-ANJQFQDO.js} +3 -3
- package/dist/{login-PDECY435.js.map → login-ANJQFQDO.js.map} +1 -1
- package/dist/logout-STTU7NNX.js +2 -0
- package/dist/{logout-D2GLIU2Y.js.map → logout-STTU7NNX.js.map} +1 -1
- package/dist/{logs-export-76WAIPNB.js → logs-export-62O4KT7A.js} +2 -2
- package/dist/{logs-export-76WAIPNB.js.map → logs-export-62O4KT7A.js.map} +1 -1
- package/dist/{logs-search-MA3AWP4B.js → logs-search-UP5IEJMG.js} +2 -2
- package/dist/{logs-search-MA3AWP4B.js.map → logs-search-UP5IEJMG.js.map} +1 -1
- package/dist/{logs-tail-2OMASMCD.js → logs-tail-YVFZLSC2.js} +3 -3
- package/dist/{logs-tail-2OMASMCD.js.map → logs-tail-YVFZLSC2.js.map} +1 -1
- package/dist/{monitor-LZ7R5C3D.js → monitor-37VPIJX6.js} +2 -2
- package/dist/{monitor-LZ7R5C3D.js.map → monitor-37VPIJX6.js.map} +1 -1
- package/dist/{monitor-automations-AR7MS2PL.js → monitor-automations-YKA4DME5.js} +2 -2
- package/dist/{monitor-automations-AR7MS2PL.js.map → monitor-automations-YKA4DME5.js.map} +1 -1
- package/dist/{monitor-pipelines-EASQLIQA.js → monitor-pipelines-7IS4K4ZV.js} +2 -2
- package/dist/{monitor-pipelines-EASQLIQA.js.map → monitor-pipelines-7IS4K4ZV.js.map} +1 -1
- package/dist/{monitor-sites-2QIM4XJ3.js → monitor-sites-KUC3NCAF.js} +2 -2
- package/dist/{monitor-sites-2QIM4XJ3.js.map → monitor-sites-KUC3NCAF.js.map} +1 -1
- package/dist/{monitor-storage-SMB32J37.js → monitor-storage-5UFFXOK7.js} +2 -2
- package/dist/{monitor-storage-SMB32J37.js.map → monitor-storage-5UFFXOK7.js.map} +1 -1
- package/dist/scripts-cancel-VX7VJ6J2.js +2 -0
- package/dist/{scripts-cancel-CQVIDKVW.js.map → scripts-cancel-VX7VJ6J2.js.map} +1 -1
- package/dist/{scripts-delete-TV4SX5OJ.js → scripts-delete-TZ7CJXF6.js} +2 -2
- package/dist/{scripts-delete-TV4SX5OJ.js.map → scripts-delete-TZ7CJXF6.js.map} +1 -1
- package/dist/scripts-disable-WJ7OIHFN.js +2 -0
- package/dist/{scripts-disable-IHPUGSTJ.js.map → scripts-disable-WJ7OIHFN.js.map} +1 -1
- package/dist/scripts-enable-D73CR33U.js +2 -0
- package/dist/{scripts-enable-ULCXRU7W.js.map → scripts-enable-D73CR33U.js.map} +1 -1
- package/dist/{scripts-list-XWNT7242.js → scripts-list-X4MIW736.js} +2 -2
- package/dist/{scripts-list-XWNT7242.js.map → scripts-list-X4MIW736.js.map} +1 -1
- package/dist/{scripts-logs-YBF6MTMQ.js → scripts-logs-AC5M3ZBH.js} +2 -2
- package/dist/{scripts-logs-YBF6MTMQ.js.map → scripts-logs-AC5M3ZBH.js.map} +1 -1
- package/dist/{scripts-run-FQ7EOXOH.js → scripts-run-PYGSKLVZ.js} +2 -2
- package/dist/{scripts-run-FQ7EOXOH.js.map → scripts-run-PYGSKLVZ.js.map} +1 -1
- package/dist/{scripts-status-XYGHYRZB.js → scripts-status-T4N57JWV.js} +2 -2
- package/dist/{scripts-status-XYGHYRZB.js.map → scripts-status-T4N57JWV.js.map} +1 -1
- package/dist/{scripts-validate-T7CGIPPE.js → scripts-validate-V7BWQMBO.js} +2 -2
- package/dist/{scripts-validate-T7CGIPPE.js.map → scripts-validate-V7BWQMBO.js.map} +1 -1
- package/dist/{scripts-watch-A7HEOAOE.js → scripts-watch-TZHTIL6Y.js} +2 -2
- package/dist/{scripts-watch-A7HEOAOE.js.map → scripts-watch-TZHTIL6Y.js.map} +1 -1
- package/dist/sign-cancel-5W54A3T2.js +2 -0
- package/dist/{sign-cancel-4YYJ2BBY.js.map → sign-cancel-5W54A3T2.js.map} +1 -1
- package/dist/{sign-download-VOMT2C3C.js → sign-download-Z2BRNOBQ.js} +2 -2
- package/dist/{sign-download-VOMT2C3C.js.map → sign-download-Z2BRNOBQ.js.map} +1 -1
- package/dist/{sign-list-SACY7XF3.js → sign-list-VDF5JFKH.js} +2 -2
- package/dist/{sign-list-SACY7XF3.js.map → sign-list-VDF5JFKH.js.map} +1 -1
- package/dist/{sign-request-PM7BZ56P.js → sign-request-NXOZSE5A.js} +2 -2
- package/dist/{sign-request-PM7BZ56P.js.map → sign-request-NXOZSE5A.js.map} +1 -1
- package/dist/{sign-status-LRQGO2UX.js → sign-status-E5UWZ4Y3.js} +2 -2
- package/dist/{sign-status-LRQGO2UX.js.map → sign-status-E5UWZ4Y3.js.map} +1 -1
- package/dist/{sign-verify-PQ7HBHTY.js → sign-verify-2OKPTOPN.js} +2 -2
- package/dist/{sign-verify-PQ7HBHTY.js.map → sign-verify-2OKPTOPN.js.map} +1 -1
- package/dist/{sites-analytics-J5BMYBO5.js → sites-analytics-2YAYY6GY.js} +2 -2
- package/dist/{sites-analytics-J5BMYBO5.js.map → sites-analytics-2YAYY6GY.js.map} +1 -1
- package/dist/{sites-delete-BYUJAMSX.js → sites-delete-BH7KKL54.js} +2 -2
- package/dist/{sites-delete-BYUJAMSX.js.map → sites-delete-BH7KKL54.js.map} +1 -1
- package/dist/{sites-deploys-XJQHVTET.js → sites-deploys-4HEJWQON.js} +2 -2
- package/dist/{sites-deploys-XJQHVTET.js.map → sites-deploys-4HEJWQON.js.map} +1 -1
- package/dist/{sites-info-JBM5C5FT.js → sites-info-6HE2B6TF.js} +2 -2
- package/dist/{sites-info-JBM5C5FT.js.map → sites-info-6HE2B6TF.js.map} +1 -1
- package/dist/{sites-list-4AIOO76P.js → sites-list-5GJPVLM3.js} +2 -2
- package/dist/{sites-list-4AIOO76P.js.map → sites-list-5GJPVLM3.js.map} +1 -1
- package/dist/{sites-logs-GZALCIBX.js → sites-logs-AYG43HQV.js} +3 -3
- package/dist/{sites-logs-GZALCIBX.js.map → sites-logs-AYG43HQV.js.map} +1 -1
- package/dist/sites-open-L6AHCXLV.js +3 -0
- package/dist/{sites-open-QJOKIMGM.js.map → sites-open-L6AHCXLV.js.map} +1 -1
- package/dist/sites-purge-MGNYRQC2.js +2 -0
- package/dist/{sites-purge-GXD673E2.js.map → sites-purge-MGNYRQC2.js.map} +1 -1
- package/dist/{sites-rename-BTQZRAVA.js → sites-rename-PH4X5WUY.js} +2 -2
- package/dist/{sites-rename-BTQZRAVA.js.map → sites-rename-PH4X5WUY.js.map} +1 -1
- package/dist/{sites-rollback-LZUUU4ZU.js → sites-rollback-XORREI4B.js} +2 -2
- package/dist/{sites-rollback-LZUUU4ZU.js.map → sites-rollback-XORREI4B.js.map} +1 -1
- package/dist/{sites-unpublish-IB7BTNJC.js → sites-unpublish-G22P2RRZ.js} +2 -2
- package/dist/{sites-unpublish-IB7BTNJC.js.map → sites-unpublish-G22P2RRZ.js.map} +1 -1
- package/dist/{sites-visibility-I7PIUX4B.js → sites-visibility-XPWHUOEB.js} +2 -2
- package/dist/{sites-visibility-I7PIUX4B.js.map → sites-visibility-XPWHUOEB.js.map} +1 -1
- package/dist/storage-cat-TC65RHNH.js +2 -0
- package/dist/{storage-cat-CFOIZEJS.js.map → storage-cat-TC65RHNH.js.map} +1 -1
- package/dist/storage-clean-Z2GKXPJV.js +2 -0
- package/dist/{storage-clean-6EN2KMOC.js.map → storage-clean-Z2GKXPJV.js.map} +1 -1
- package/dist/storage-cp-2EMEFPZ3.js +2 -0
- package/dist/{storage-cp-SCF3CFS2.js.map → storage-cp-2EMEFPZ3.js.map} +1 -1
- package/dist/{storage-diff-MYW5AM3C.js → storage-diff-RK2BH2QH.js} +2 -2
- package/dist/{storage-diff-MYW5AM3C.js.map → storage-diff-RK2BH2QH.js.map} +1 -1
- package/dist/storage-download-N7TOVRLD.js +3 -0
- package/dist/storage-download-N7TOVRLD.js.map +1 -0
- package/dist/{storage-info-BV7VXGTF.js → storage-info-RHCOIHFS.js} +2 -2
- package/dist/{storage-info-BV7VXGTF.js.map → storage-info-RHCOIHFS.js.map} +1 -1
- package/dist/{storage-ls-HIVJWOV6.js → storage-ls-IWYZFGA7.js} +3 -3
- package/dist/{storage-ls-HIVJWOV6.js.map → storage-ls-IWYZFGA7.js.map} +1 -1
- package/dist/storage-mkdir-5SJHSGKB.js +2 -0
- package/dist/{storage-mkdir-GRKUOWAJ.js.map → storage-mkdir-5SJHSGKB.js.map} +1 -1
- package/dist/storage-mv-W6YIOF6S.js +2 -0
- package/dist/{storage-mv-RYW5TXAH.js.map → storage-mv-W6YIOF6S.js.map} +1 -1
- package/dist/{storage-rm-PLBQC4ED.js → storage-rm-JQ4U4Y6S.js} +2 -2
- package/dist/{storage-rm-PLBQC4ED.js.map → storage-rm-JQ4U4Y6S.js.map} +1 -1
- package/dist/{storage-search-EKYRVCY2.js → storage-search-H5INCBEX.js} +2 -2
- package/dist/{storage-search-EKYRVCY2.js.map → storage-search-H5INCBEX.js.map} +1 -1
- package/dist/{storage-share-OENZM4QY.js → storage-share-SG7QWBGU.js} +2 -2
- package/dist/{storage-share-OENZM4QY.js.map → storage-share-SG7QWBGU.js.map} +1 -1
- package/dist/{storage-tag-7XTICDCD.js → storage-tag-XDJKEOTG.js} +2 -2
- package/dist/{storage-tag-7XTICDCD.js.map → storage-tag-XDJKEOTG.js.map} +1 -1
- package/dist/storage-unshare-THU4SI5I.js +2 -0
- package/dist/{storage-unshare-6G6YPRPN.js.map → storage-unshare-THU4SI5I.js.map} +1 -1
- package/dist/{storage-upload-HW4QAENK.js → storage-upload-PPP7UCAW.js} +2 -2
- package/dist/{storage-upload-HW4QAENK.js.map → storage-upload-PPP7UCAW.js.map} +1 -1
- package/dist/time-list-FLBMQONU.js +2 -0
- package/dist/{time-list-HUWDZZ27.js.map → time-list-FLBMQONU.js.map} +1 -1
- package/dist/time-lock-JAQUWZMQ.js +2 -0
- package/dist/{time-lock-MZ6C6DMR.js.map → time-lock-JAQUWZMQ.js.map} +1 -1
- package/dist/{time-proof-G6IX5SMS.js → time-proof-UXZS3V7L.js} +2 -2
- package/dist/{time-proof-G6IX5SMS.js.map → time-proof-UXZS3V7L.js.map} +1 -1
- package/dist/{time-status-UJ3XY3R5.js → time-status-HXSTJXP3.js} +2 -2
- package/dist/{time-status-UJ3XY3R5.js.map → time-status-HXSTJXP3.js.map} +1 -1
- package/dist/{time-unlock-3TUR2KVC.js → time-unlock-RJIN5EII.js} +2 -2
- package/dist/{time-unlock-3TUR2KVC.js.map → time-unlock-RJIN5EII.js.map} +1 -1
- package/dist/version-XQNUJ474.js +2 -0
- package/dist/version-XQNUJ474.js.map +1 -0
- package/dist/whoami-AIXW6EHW.js +2 -0
- package/dist/{whoami-C4LPZU6R.js.map → whoami-AIXW6EHW.js.map} +1 -1
- package/package.json +1 -1
- package/dist/auth-status-RPJVTJ4S.js +0 -2
- package/dist/chunk-2RMLR54M.js.map +0 -1
- package/dist/client-MCQSJIGH.js +0 -2
- package/dist/collab-remove-A76ARTWG.js +0 -2
- package/dist/logout-D2GLIU2Y.js +0 -2
- package/dist/scripts-cancel-CQVIDKVW.js +0 -2
- package/dist/scripts-disable-IHPUGSTJ.js +0 -2
- package/dist/scripts-enable-ULCXRU7W.js +0 -2
- package/dist/session-FBC5MGFA.js +0 -2
- package/dist/session-FBC5MGFA.js.map +0 -1
- package/dist/sign-cancel-4YYJ2BBY.js +0 -2
- package/dist/sites-open-QJOKIMGM.js +0 -3
- package/dist/sites-purge-GXD673E2.js +0 -2
- package/dist/storage-cat-CFOIZEJS.js +0 -2
- package/dist/storage-clean-6EN2KMOC.js +0 -2
- package/dist/storage-cp-SCF3CFS2.js +0 -2
- package/dist/storage-download-6EQJJ7SO.js +0 -3
- package/dist/storage-download-6EQJJ7SO.js.map +0 -1
- package/dist/storage-mkdir-GRKUOWAJ.js +0 -2
- package/dist/storage-mv-RYW5TXAH.js +0 -2
- package/dist/storage-unshare-6G6YPRPN.js +0 -2
- package/dist/time-list-HUWDZZ27.js +0 -2
- package/dist/time-lock-MZ6C6DMR.js +0 -2
- package/dist/version-LHSDYI7Q.js +0 -2
- package/dist/version-LHSDYI7Q.js.map +0 -1
- package/dist/whoami-C4LPZU6R.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a as a$1}from'./chunk-PSJQAIDB.js';import {d}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=auth-revoke-
|
|
1
|
+
import {a as a$1}from'./chunk-PSJQAIDB.js';import {d}from'./chunk-CHBVIZF5.js';import'./chunk-NDB6KXYI.js';import'./chunk-ULVQ53OO.js';import'./chunk-THMWE2I6.js';import {g}from'./chunk-QT7R3AXE.js';import {d as d$1}from'./chunk-Q3A4IBGC.js';import a from'inquirer';async function c(e){if(e.all){let{confirm:s}=await a.prompt([{type:"confirm",name:"confirm",message:"Revoke ALL active sessions? This will log out every device.",default:false}]);if(!s)return;let t=a$1("Revoking all sessions...");t.start(),await d("/api/auth/ssp/revoke-all",{},{authenticated:true}),await d$1(),t.succeed(),g("All sessions revoked");return}if(e.session){let s=a$1(`Revoking session ${e.session}...`);s.start(),await d("/api/auth/ssp/revoke",{session_id:e.session},{authenticated:true}),s.succeed(),g(`Session ${e.session} revoked`);return}console.error("Specify --session <id> or --all"),process.exit(1);}export{c as default};//# sourceMappingURL=auth-revoke-6YX7LBWB.js.map
|
|
2
|
+
//# sourceMappingURL=auth-revoke-6YX7LBWB.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/auth/auth-revoke.ts"],"names":["authRevoke","options","confirm","inquirer","spinner","createSpinner","apiPost","clearSession","logSuccess"],"mappings":"0QAOA,eAAOA,CAAAA,CAAkCC,CAAAA,CAA6D,CACpG,GAAIA,CAAAA,CAAQ,GAAA,CAAK,CACf,GAAM,CAAE,QAAAC,CAAQ,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,EAAS,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,GAAAA,GACNH,CAAAA,CAAQ,OAAA,EAAQ,CAChBI,CAAAA,CAAW,sBAAsB,CAAA,CACjC,MACF,CAEA,GAAIP,CAAAA,CAAQ,OAAA,CAAS,CACnB,IAAMG,EAAUC,GAAAA,CAAc,CAAA,iBAAA,EAAoBJ,CAAAA,CAAQ,OAAO,CAAA,GAAA,CAAK,CAAA,CACtEG,EAAQ,KAAA,EAAM,CACd,MAAME,CAAAA,CAAQ,sBAAA,CAAwB,CAAE,WAAYL,CAAAA,CAAQ,OAAQ,CAAA,CAAG,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAC9FG,CAAAA,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":"auth-revoke-
|
|
1
|
+
{"version":3,"sources":["../src/commands/auth/auth-revoke.ts"],"names":["authRevoke","options","confirm","inquirer","spinner","createSpinner","apiPost","clearSession","logSuccess"],"mappings":"0QAOA,eAAOA,CAAAA,CAAkCC,CAAAA,CAA6D,CACpG,GAAIA,CAAAA,CAAQ,GAAA,CAAK,CACf,GAAM,CAAE,QAAAC,CAAQ,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,EAAS,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,GAAAA,GACNH,CAAAA,CAAQ,OAAA,EAAQ,CAChBI,CAAAA,CAAW,sBAAsB,CAAA,CACjC,MACF,CAEA,GAAIP,CAAAA,CAAQ,OAAA,CAAS,CACnB,IAAMG,EAAUC,GAAAA,CAAc,CAAA,iBAAA,EAAoBJ,CAAAA,CAAQ,OAAO,CAAA,GAAA,CAAK,CAAA,CACtEG,EAAQ,KAAA,EAAM,CACd,MAAME,CAAAA,CAAQ,sBAAA,CAAwB,CAAE,WAAYL,CAAAA,CAAQ,OAAQ,CAAA,CAAG,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAC9FG,CAAAA,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":"auth-revoke-6YX7LBWB.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"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {c}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=auth-sessions-
|
|
1
|
+
import {b,c as c$1}from'./chunk-FZKCZRJZ.js';import {c}from'./chunk-CHBVIZF5.js';import'./chunk-NDB6KXYI.js';import'./chunk-ULVQ53OO.js';import {a}from'./chunk-THMWE2I6.js';import'./chunk-QT7R3AXE.js';import'./chunk-Q3A4IBGC.js';async function s(){let i=((await c("/api/auth/ssp/sessions",{authenticated:true})).sessions||[]).map(e=>({id:e.id.slice(0,8)+"...",device:e.device_fingerprint.slice(0,12),platform:e.platform||"unknown",last_seen:c$1(e.last_seen),created:b(e.created_at),current:e.current?"\u25CF":""}));console.log(a(i,[{key:"id",label:"Session ID"},{key:"device",label:"Fingerprint"},{key:"platform",label:"Platform"},{key:"last_seen",label:"Last Seen"},{key:"created",label:"Created"},{key:"current",label:""}]));}export{s as default};//# sourceMappingURL=auth-sessions-2A63NMIW.js.map
|
|
2
|
+
//# sourceMappingURL=auth-sessions-2A63NMIW.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/auth/auth-sessions.ts"],"names":["authSessions","rows","apiGet","s","formatRelative","formatDate","renderTable"],"mappings":"qOAaA,eAAOA,CAAAA,EAAqD,CAE1D,IAAMC,CAAAA,CAAAA,CAAAA,CADO,MAAMC,CAAAA,CAAoC,wBAAA,CAA0B,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,EACrF,QAAA,EAAY,EAAC,EAAG,GAAA,CAAIC,IAAM,CAC3C,EAAA,CAAIA,CAAAA,CAAE,EAAA,CAAG,KAAA,CAAM,CAAA,CAAG,CAAC,CAAA,CAAI,KAAA,CACvB,OAAQA,CAAAA,CAAE,kBAAA,CAAmB,MAAM,CAAA,CAAG,EAAE,EACxC,QAAA,CAAUA,CAAAA,CAAE,UAAY,SAAA,CACxB,SAAA,CAAWC,IAAeD,CAAAA,CAAE,SAAS,EACrC,OAAA,CAASE,CAAAA,CAAWF,CAAAA,CAAE,UAAU,CAAA,CAChC,OAAA,CAASA,EAAE,OAAA,CAAU,QAAA,CAAM,EAC7B,CAAA,CAAE,CAAA,CACF,QAAQ,GAAA,CAAIG,CAAAA,CAAYL,EAAM,CAC5B,CAAE,IAAK,IAAA,CAAM,KAAA,CAAO,YAAa,CAAA,CACjC,CAAE,IAAK,QAAA,CAAU,KAAA,CAAO,aAAc,CAAA,CACtC,CAAE,GAAA,CAAK,WAAY,KAAA,CAAO,UAAW,EACrC,CAAE,GAAA,CAAK,YAAa,KAAA,CAAO,WAAY,CAAA,CACvC,CAAE,GAAA,CAAK,SAAA,CAAW,MAAO,SAAU,CAAA,CACnC,CAAE,GAAA,CAAK,SAAA,CAAW,MAAO,EAAG,CAC9B,CAAC,CAAC,EACJ","file":"auth-sessions-
|
|
1
|
+
{"version":3,"sources":["../src/commands/auth/auth-sessions.ts"],"names":["authSessions","rows","apiGet","s","formatRelative","formatDate","renderTable"],"mappings":"qOAaA,eAAOA,CAAAA,EAAqD,CAE1D,IAAMC,CAAAA,CAAAA,CAAAA,CADO,MAAMC,CAAAA,CAAoC,wBAAA,CAA0B,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,EACrF,QAAA,EAAY,EAAC,EAAG,GAAA,CAAIC,IAAM,CAC3C,EAAA,CAAIA,CAAAA,CAAE,EAAA,CAAG,KAAA,CAAM,CAAA,CAAG,CAAC,CAAA,CAAI,KAAA,CACvB,OAAQA,CAAAA,CAAE,kBAAA,CAAmB,MAAM,CAAA,CAAG,EAAE,EACxC,QAAA,CAAUA,CAAAA,CAAE,UAAY,SAAA,CACxB,SAAA,CAAWC,IAAeD,CAAAA,CAAE,SAAS,EACrC,OAAA,CAASE,CAAAA,CAAWF,CAAAA,CAAE,UAAU,CAAA,CAChC,OAAA,CAASA,EAAE,OAAA,CAAU,QAAA,CAAM,EAC7B,CAAA,CAAE,CAAA,CACF,QAAQ,GAAA,CAAIG,CAAAA,CAAYL,EAAM,CAC5B,CAAE,IAAK,IAAA,CAAM,KAAA,CAAO,YAAa,CAAA,CACjC,CAAE,IAAK,QAAA,CAAU,KAAA,CAAO,aAAc,CAAA,CACtC,CAAE,GAAA,CAAK,WAAY,KAAA,CAAO,UAAW,EACrC,CAAE,GAAA,CAAK,YAAa,KAAA,CAAO,WAAY,CAAA,CACvC,CAAE,GAAA,CAAK,SAAA,CAAW,MAAO,SAAU,CAAA,CACnC,CAAE,GAAA,CAAK,SAAA,CAAW,MAAO,EAAG,CAC9B,CAAC,CAAC,EACJ","file":"auth-sessions-2A63NMIW.js","sourcesContent":["import { apiGet } from '../../lib/api/client.js'\nimport { renderTable } from '../../lib/output/table.js'\nimport { formatDate, formatRelative } from '../../lib/utils/format.js'\n\ninterface SessionInfo {\n id: string\n device_fingerprint: string\n platform: string\n last_seen: string\n created_at: string\n current: boolean\n}\n\nexport default async function authSessions(): Promise<void> {\n const data = await apiGet<{ sessions: SessionInfo[] }>('/api/auth/ssp/sessions', { authenticated: true })\n const rows = (data.sessions || []).map(s => ({\n id: s.id.slice(0, 8) + '...',\n device: s.device_fingerprint.slice(0, 12),\n platform: s.platform || 'unknown',\n last_seen: formatRelative(s.last_seen),\n created: formatDate(s.created_at),\n current: s.current ? '●' : '',\n }))\n console.log(renderTable(rows, [\n { key: 'id', label: 'Session ID' },\n { key: 'device', label: 'Fingerprint' },\n { key: 'platform', label: 'Platform' },\n { key: 'last_seen', label: 'Last Seen' },\n { key: 'created', label: 'Created' },\n { key: 'current', label: '' },\n ]))\n}\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {d}from'./chunk-FZKCZRJZ.js';import {h,f as f$1,m,l}from'./chunk-QT7R3AXE.js';import {b,a,f}from'./chunk-Q3A4IBGC.js';import e from'chalk';async function u(){let i=await b();i||(h("Not authenticated"),process.exit(1));let f$2=a(),t=i.device_fingerprint===f$2,o=f(i),s=o<=120*1e3;if(f$1()){m({authenticated:true,session_id:i.session_id,expires_in_ms:o,fingerprint_match:t,needs_refresh:s,user:i.user});return}l(""),l(`${e.bold("Session Health")}`),l(`${e.dim("\u2500\u2500\u2500".repeat(15))}`),l(` ${e.bold("Session ID:")} ${e.dim(i.session_id)}`),l(` ${e.bold("User:")} ${i.user.email} (${i.user.username})`),l(` ${e.bold("Plan:")} ${e.hex("#7C4DFF")(i.user.plan)}`),l(` ${e.bold("Expires:")} ${o>0?d(o):e.red("expired")}`),l(` ${e.bold("Fingerprint:")} ${t?e.green("\u2713 match"):e.red("\u2717 mismatch")}`),l(` ${e.bold("Refresh:")} ${s?e.yellow("needed soon"):e.green("ok")}`),l("");}export{u as default};//# sourceMappingURL=auth-status-AOV7GJLX.js.map
|
|
2
|
+
//# sourceMappingURL=auth-status-AOV7GJLX.js.map
|
|
@@ -1 +1 @@
|
|
|
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":"
|
|
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,CAAAA,CAAmBL,EAAQ,kBAAA,GAAuBG,GAAAA,CAClDG,EAAWC,CAAAA,CAAmBP,CAAO,EACrCQ,CAAAA,CAAeF,CAAAA,EAAY,IAAS,GAAA,CAE1C,GAAIG,KAAW,CAAG,CAChBC,EAAQ,CACN,aAAA,CAAe,KACf,UAAA,CAAYV,CAAAA,CAAQ,UAAA,CACpB,aAAA,CAAeM,EACf,iBAAA,CAAmBD,CAAAA,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,CAAAA,CAAgBP,CAAQ,CAAA,CAAIM,CAAAA,CAAM,IAAI,SAAS,CAAC,EAAE,CAAA,CAC7GD,CAAAA,CAAO,KAAKC,CAAAA,CAAM,IAAA,CAAK,cAAc,CAAC,CAAA,GAAA,EAAMP,EAAmBO,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":"auth-status-AOV7GJLX.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/bin/squidcloud.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import'../chunk-PSJQAIDB.js';import {a}from'../chunk-Z74H5ACJ.js';import'../chunk-THMWE2I6.js';import {e,d,h,n}from'../chunk-QT7R3AXE.js';import {b as b$1,f}from'../chunk-2RMLR54M.js';import {Command}from'commander';var A=[{name:"login",aliases:[],description:"Authenticate with SquidCloud",requiresAuth:false,requiresProject:false,ciSafe:false,jsonSupport:false,dangerLevel:"safe",category:"auth",handler:()=>import('../login-PDECY435.js')},{name:"logout",aliases:[],description:"End current CLI session and clear credentials",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:false,dangerLevel:"safe",category:"auth",handler:()=>import('../logout-D2GLIU2Y.js')},{name:"whoami",aliases:["auth whoami"],description:"Show current authenticated account info",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"auth",handler:()=>import('../whoami-C4LPZU6R.js')},{name:"auth status",aliases:[],description:"Detailed session health check",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"auth",handler:()=>import('../auth-status-RPJVTJ4S.js')},{name:"auth sessions",aliases:[],description:"List all active CLI sessions",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"auth",handler:()=>import('../auth-sessions-PIBWTIT5.js')},{name:"auth revoke",aliases:[],description:"Revoke a session or all sessions",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:false,dangerLevel:"destructive",category:"auth",handler:()=>import('../auth-revoke-UCNMKHTF.js')},{name:"storage ls",aliases:["storage list"],description:"List files and folders in storage",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"storage",handler:()=>import('../storage-ls-HIVJWOV6.js')},{name:"storage upload",aliases:["storage up"],description:"Upload files or folders to storage",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"storage",handler:()=>import('../storage-upload-HW4QAENK.js')},{name:"storage download",aliases:["storage dl"],description:"Download files or folders from storage",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"storage",handler:()=>import('../storage-download-6EQJJ7SO.js')},{name:"storage cp",aliases:[],description:"Copy files within storage",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"storage",handler:()=>import('../storage-cp-SCF3CFS2.js')},{name:"storage mv",aliases:[],description:"Move/rename files within storage",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"storage",handler:()=>import('../storage-mv-RYW5TXAH.js')},{name:"storage rm",aliases:[],description:"Delete files from storage",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"destructive",category:"storage",handler:()=>import('../storage-rm-PLBQC4ED.js')},{name:"storage mkdir",aliases:[],description:"Create a folder in storage",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"storage",handler:()=>import('../storage-mkdir-GRKUOWAJ.js')},{name:"storage cat",aliases:[],description:"Print file contents to terminal",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:false,dangerLevel:"safe",category:"storage",handler:()=>import('../storage-cat-CFOIZEJS.js')},{name:"storage info",aliases:[],description:"Show file metadata",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"storage",handler:()=>import('../storage-info-BV7VXGTF.js')},{name:"storage share",aliases:[],description:"Generate a share link for a file",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"storage",handler:()=>import('../storage-share-OENZM4QY.js')},{name:"storage unshare",aliases:[],description:"Revoke all share links for a file",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"storage",handler:()=>import('../storage-unshare-6G6YPRPN.js')},{name:"storage tag",aliases:[],description:"Add or remove file tags",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"storage",handler:()=>import('../storage-tag-7XTICDCD.js')},{name:"storage search",aliases:[],description:"Search storage by filename",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"storage",handler:()=>import('../storage-search-EKYRVCY2.js')},{name:"storage diff",aliases:[],description:"Compare local and remote storage",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"storage",handler:()=>import('../storage-diff-MYW5AM3C.js')},{name:"storage clean",aliases:[],description:"Clean orphaned files from storage",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"storage",handler:()=>import('../storage-clean-6EN2KMOC.js')},{name:"deploy",aliases:["squidsite deploy"],description:"Deploy a static website to SquidCloud Sites",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"deploy",handler:()=>import('../deploy-O7VVCVUR.js')},{name:"sites list",aliases:["sites ls"],description:"List all published sites",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"sites",handler:()=>import('../sites-list-4AIOO76P.js')},{name:"sites info",aliases:[],description:"Show site details",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"sites",handler:()=>import('../sites-info-JBM5C5FT.js')},{name:"sites open",aliases:[],description:"Open site in browser",requiresAuth:true,requiresProject:false,ciSafe:false,jsonSupport:false,dangerLevel:"safe",category:"sites",handler:()=>import('../sites-open-QJOKIMGM.js')},{name:"sites unpublish",aliases:[],description:"Take a site offline",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"destructive",category:"sites",handler:()=>import('../sites-unpublish-IB7BTNJC.js')},{name:"sites delete",aliases:[],description:"Permanently delete a site",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"destructive",category:"sites",handler:()=>import('../sites-delete-BYUJAMSX.js')},{name:"sites visibility",aliases:[],description:"Change site visibility (public/private)",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"sites",handler:()=>import('../sites-visibility-I7PIUX4B.js')},{name:"sites rename",aliases:[],description:"Rename a site slug",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"destructive",category:"sites",handler:()=>import('../sites-rename-BTQZRAVA.js')},{name:"sites rollback",aliases:[],description:"Rollback to a previous deployment",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"sites",handler:()=>import('../sites-rollback-LZUUU4ZU.js')},{name:"sites deploys",aliases:[],description:"Show deployment history",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"sites",handler:()=>import('../sites-deploys-XJQHVTET.js')},{name:"sites logs",aliases:[],description:"Stream live site access logs",requiresAuth:true,requiresProject:false,ciSafe:false,jsonSupport:false,dangerLevel:"safe",category:"sites",handler:()=>import('../sites-logs-GZALCIBX.js')},{name:"sites analytics",aliases:[],description:"Show site traffic analytics",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"sites",handler:()=>import('../sites-analytics-J5BMYBO5.js')},{name:"sites purge",aliases:[],description:"Purge CDN cache for a site",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"sites",handler:()=>import('../sites-purge-GXD673E2.js')},{name:"scripts list",aliases:[],description:"List registered SquidScripts",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"scripts",handler:()=>import('../scripts-list-XWNT7242.js')},{name:"scripts run",aliases:[],description:"Run a SquidScript pipeline",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"scripts",handler:()=>import('../scripts-run-FQ7EOXOH.js')},{name:"scripts logs",aliases:[],description:"View pipeline run logs",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"scripts",handler:()=>import('../scripts-logs-YBF6MTMQ.js')},{name:"scripts validate",aliases:[],description:"Validate a .squid.yml file",requiresAuth:false,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"scripts",handler:()=>import('../scripts-validate-T7CGIPPE.js')},{name:"scripts init",aliases:[],description:"Create a new pipeline interactively",requiresAuth:true,requiresProject:false,ciSafe:false,jsonSupport:false,dangerLevel:"safe",category:"scripts",handler:()=>import('../scripts-init-AU6WNMKB.js')},{name:"scripts enable",aliases:[],description:"Enable a disabled pipeline",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"scripts",handler:()=>import('../scripts-enable-ULCXRU7W.js')},{name:"scripts disable",aliases:[],description:"Disable a pipeline",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"scripts",handler:()=>import('../scripts-disable-IHPUGSTJ.js')},{name:"scripts delete",aliases:[],description:"Delete a pipeline",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"destructive",category:"scripts",handler:()=>import('../scripts-delete-TV4SX5OJ.js')},{name:"scripts status",aliases:[],description:"Show pipeline status",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"scripts",handler:()=>import('../scripts-status-XYGHYRZB.js')},{name:"scripts cancel",aliases:[],description:"Cancel a running pipeline",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"scripts",handler:()=>import('../scripts-cancel-CQVIDKVW.js')},{name:"scripts watch",aliases:[],description:"Watch .squid.yml for changes",requiresAuth:false,requiresProject:false,ciSafe:false,jsonSupport:false,dangerLevel:"safe",category:"scripts",handler:()=>import('../scripts-watch-A7HEOAOE.js')},{name:"filereq list",aliases:["forms list","filereq ls"],description:"List file requests",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"forms",handler:()=>import('../forms-list-UDYVBNX5.js')},{name:"filereq create",aliases:["forms create"],description:"Create a file request",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"forms",handler:()=>import('../forms-create-IJPDTTGR.js')},{name:"filereq info",aliases:["forms info"],description:"View file request details",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"forms",handler:()=>import('../forms-info-NVNTIK45.js')},{name:"filereq submissions",aliases:["forms submissions"],description:"View file request submissions",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"forms",handler:()=>import('../forms-submissions-LFUTUDOW.js')},{name:"filereq export",aliases:["forms export"],description:"Export submissions as CSV",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:false,dangerLevel:"safe",category:"forms",handler:()=>import('../forms-export-YGKJVRUD.js')},{name:"filereq clear",aliases:["forms clear"],description:"Clear all submissions",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"destructive",category:"forms",handler:()=>import('../forms-clear-TSQ4YFPW.js')},{name:"filereq delete",aliases:["forms delete"],description:"Delete a file request",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"destructive",category:"forms",handler:()=>import('../forms-delete-5Q6JVOWZ.js')},{name:"filereq embed",aliases:["forms embed"],description:"Get HTML embed snippet",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:false,dangerLevel:"safe",category:"forms",handler:()=>import('../forms-embed-RWJ4BAPQ.js')},{name:"time lock",aliases:[],description:"Time-lock a file or folder",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"time",handler:()=>import('../time-lock-MZ6C6DMR.js')},{name:"time unlock",aliases:[],description:"Unlock a time-locked file",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"time",handler:()=>import('../time-unlock-3TUR2KVC.js')},{name:"time status",aliases:[],description:"Check time-lock status",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"time",handler:()=>import('../time-status-UJ3XY3R5.js')},{name:"time list",aliases:[],description:"List all time-locked files",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"time",handler:()=>import('../time-list-HUWDZZ27.js')},{name:"time proof",aliases:[],description:"Export cryptographic existence proof",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"time",handler:()=>import('../time-proof-G6IX5SMS.js')},{name:"collab invite",aliases:[],description:"Invite a collaborator to a folder",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"collab",handler:()=>import('../collab-invite-H6KXMBJ5.js')},{name:"collab list",aliases:[],description:"List folder collaborators",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"collab",handler:()=>import('../collab-list-6VNDTN7W.js')},{name:"collab remove",aliases:[],description:"Remove a collaborator",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"collab",handler:()=>import('../collab-remove-A76ARTWG.js')},{name:"collab activity",aliases:[],description:"View collaborator activity feed",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"collab",handler:()=>import('../collab-activity-ESSL2DUE.js')},{name:"collab leave",aliases:[],description:"Leave a shared folder",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"collab",handler:()=>import('../collab-leave-23J42V4P.js')},{name:"collab transfer",aliases:[],description:"Transfer folder ownership",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"destructive",category:"collab",handler:()=>import('../collab-transfer-S5MECG6Y.js')},{name:"sign request",aliases:[],description:"Request a digital signature",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"sign",handler:()=>import('../sign-request-PM7BZ56P.js')},{name:"sign status",aliases:[],description:"Check signing request status",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"sign",handler:()=>import('../sign-status-LRQGO2UX.js')},{name:"sign list",aliases:[],description:"List signing requests",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"sign",handler:()=>import('../sign-list-SACY7XF3.js')},{name:"sign cancel",aliases:[],description:"Cancel a signing request",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"sign",handler:()=>import('../sign-cancel-4YYJ2BBY.js')},{name:"sign verify",aliases:[],description:"Verify a signed document",requiresAuth:false,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"sign",handler:()=>import('../sign-verify-PQ7HBHTY.js')},{name:"sign download",aliases:[],description:"Download signed document",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"sign",handler:()=>import('../sign-download-VOMT2C3C.js')},{name:"monitor",aliases:[],description:"At-a-glance SquidCloud health dashboard",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"monitor",handler:()=>import('../monitor-LZ7R5C3D.js')},{name:"monitor sites",aliases:[],description:"Site health overview",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"monitor",handler:()=>import('../monitor-sites-2QIM4XJ3.js')},{name:"monitor pipelines",aliases:[],description:"Pipeline health overview",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"monitor",handler:()=>import('../monitor-pipelines-EASQLIQA.js')},{name:"monitor storage",aliases:[],description:"Storage health report",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"monitor",handler:()=>import('../monitor-storage-SMB32J37.js')},{name:"monitor automations",aliases:[],description:"Automation health overview",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"monitor",handler:()=>import('../monitor-automations-AR7MS2PL.js')},{name:"logs tail",aliases:[],description:"Stream live logs",requiresAuth:true,requiresProject:false,ciSafe:false,jsonSupport:false,dangerLevel:"safe",category:"logs",handler:()=>import('../logs-tail-2OMASMCD.js')},{name:"logs search",aliases:[],description:"Search historical logs",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"logs",handler:()=>import('../logs-search-MA3AWP4B.js')},{name:"logs export",aliases:[],description:"Export logs as JSONL or CSV",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:false,dangerLevel:"safe",category:"logs",handler:()=>import('../logs-export-76WAIPNB.js')},{name:"doctor",aliases:[],description:"Run system diagnostics",requiresAuth:false,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"utility",handler:()=>import('../doctor-GAUV36VS.js')},{name:"version",aliases:["--version","-v"],description:"Show CLI version",requiresAuth:false,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"utility",handler:()=>import('../version-LHSDYI7Q.js')},{name:"config list",aliases:["config ls"],description:"List CLI configuration",requiresAuth:false,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"utility",handler:()=>import('../config-7G24FXQJ.js')},{name:"config set",aliases:[],description:"Set a config value",requiresAuth:false,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"utility",handler:()=>import('../config-set-O6JKOGGN.js')},{name:"config get",aliases:[],description:"Get a config value",requiresAuth:false,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"utility",handler:()=>import('../config-get-DDNSM5EH.js')},{name:"config delete",aliases:[],description:"Delete a config value",requiresAuth:false,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"utility",handler:()=>import('../config-delete-VSIFFODZ.js')},{name:"config reset",aliases:[],description:"Reset all configuration",requiresAuth:false,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"destructive",category:"utility",handler:()=>import('../config-reset-ZFMP4J5H.js')},{name:"completion",aliases:[],description:"Generate shell completion scripts",requiresAuth:false,requiresProject:false,ciSafe:true,jsonSupport:false,dangerLevel:"safe",category:"utility",handler:()=>import('../completion-IF3NB7PB.js')},{name:"feedback",aliases:[],description:"Submit feedback or report a bug",requiresAuth:false,requiresProject:false,ciSafe:false,jsonSupport:false,dangerLevel:"safe",category:"utility",handler:()=>import('../feedback-QUGQAWZB.js')},{name:"update",aliases:[],description:"Update the CLI to latest version",requiresAuth:false,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"utility",handler:()=>import('../update-DOHW47PB.js')}];function v(){return [...A]}var p=new Command,y={version:"1.0.0",description:"SquidCloud CLI \u2014 static sites, storage, pipelines, and more."};p.name("squidcloud").description(y.description).version(y.version,"-v, --version","Display CLI version").option("--output <format>","Output format (json)","text").hook("preAction",async e$1=>{e$1.optsWithGlobals().output==="json"&&e(true),d()&&e(false);});async function L(e){if(!e.requiresAuth)return;let s=await b$1();s||(h("Not authenticated. Run `squidcloud login` first."),process.exit(1)),f(s)&&(await a()||(h("Session expired. Please run `squidcloud login` again."),process.exit(1)));}function C(e){let s=new Map;for(let r of e){let u=r.name.split(" ");if(u.length===1)s.set(r.name,new Map);else if(u.length===2){let[t,o]=u;s.has(t)||s.set(t,new Map),s.get(t).set(o,r);}}for(let[r,u]of s)if(u.size===0){let t=e.find(a=>a.name===r),o=p.command(r);o.description(t.description),t.aliases.length>0&&o.aliases(t.aliases),o.action(async(...a)=>{try{await L(t);let i=await t.handler();if(typeof i.default=="function"){let n=a.slice(0,-2);await i.default(...n);}n(t.name,process.argv.slice(2).join(" "),0);}catch(i){let n$1=i instanceof Error?i.message:String(i);h(n$1),n(t.name,process.argv.slice(2).join(" "),1),process.exit(1);}});}else {let t=p.command(r);t.description(`SquidCloud ${r} commands`);for(let[o,a]of u){let i=`${r} ${o}`,n$1=t.command(o);n$1.description(a.description),a.aliases.length>0&&n$1.aliases(a.aliases.map(f=>f.replace(`${r} `,""))),n$1.action(async(...f)=>{try{await L(a);let l=await a.handler();if(typeof l.default=="function"){let m=f.slice(0,-2);await l.default(...m);}n(i,process.argv.slice(2).join(" "),0);}catch(l){let m=l instanceof Error?l.message:String(l);h(m),n(i,process.argv.slice(2).join(" "),1),process.exit(1);}});}}}async function b(){let e=process.argv.slice(2);if(e.includes("--version")||e.includes("-v")){let{showVersion:r}=await import('../version-LHSDYI7Q.js');await r();return}if(e.length===0&&!e.includes("--help")&&!e.includes("-h")){let{showVersion:r}=await import('../version-LHSDYI7Q.js');await r(),console.log(""),p.outputHelp();return}let s=v();C(s),p.addHelpText("beforeAll",`
|
|
3
|
-
`),await
|
|
2
|
+
import'../chunk-PSJQAIDB.js';import {a}from'../chunk-ULVQ53OO.js';import'../chunk-THMWE2I6.js';import {e,d,h,n}from'../chunk-QT7R3AXE.js';import {b,e as e$1}from'../chunk-Q3A4IBGC.js';import {readFileSync}from'fs';import {dirname,resolve}from'path';import {fileURLToPath}from'url';import {Command}from'commander';var L=[{name:"login",aliases:[],description:"Authenticate with SquidCloud",requiresAuth:false,requiresProject:false,ciSafe:false,jsonSupport:false,dangerLevel:"safe",category:"auth",handler:()=>import('../login-ANJQFQDO.js')},{name:"logout",aliases:[],description:"End current CLI session and clear credentials",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:false,dangerLevel:"safe",category:"auth",handler:()=>import('../logout-STTU7NNX.js')},{name:"whoami",aliases:["auth whoami"],description:"Show current authenticated account info",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"auth",handler:()=>import('../whoami-AIXW6EHW.js')},{name:"auth status",aliases:[],description:"Detailed session health check",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"auth",handler:()=>import('../auth-status-AOV7GJLX.js')},{name:"auth sessions",aliases:[],description:"List all active CLI sessions",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"auth",handler:()=>import('../auth-sessions-2A63NMIW.js')},{name:"auth revoke",aliases:[],description:"Revoke a session or all sessions",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:false,dangerLevel:"destructive",category:"auth",handler:()=>import('../auth-revoke-6YX7LBWB.js')},{name:"storage ls",aliases:["storage list"],description:"List files and folders in storage",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"storage",handler:()=>import('../storage-ls-IWYZFGA7.js')},{name:"storage upload",aliases:["storage up"],description:"Upload files or folders to storage",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"storage",handler:()=>import('../storage-upload-PPP7UCAW.js')},{name:"storage download",aliases:["storage dl"],description:"Download files or folders from storage",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"storage",handler:()=>import('../storage-download-N7TOVRLD.js')},{name:"storage cp",aliases:[],description:"Copy files within storage",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"storage",handler:()=>import('../storage-cp-2EMEFPZ3.js')},{name:"storage mv",aliases:[],description:"Move/rename files within storage",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"storage",handler:()=>import('../storage-mv-W6YIOF6S.js')},{name:"storage rm",aliases:[],description:"Delete files from storage",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"destructive",category:"storage",handler:()=>import('../storage-rm-JQ4U4Y6S.js')},{name:"storage mkdir",aliases:[],description:"Create a folder in storage",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"storage",handler:()=>import('../storage-mkdir-5SJHSGKB.js')},{name:"storage cat",aliases:[],description:"Print file contents to terminal",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:false,dangerLevel:"safe",category:"storage",handler:()=>import('../storage-cat-TC65RHNH.js')},{name:"storage info",aliases:[],description:"Show file metadata",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"storage",handler:()=>import('../storage-info-RHCOIHFS.js')},{name:"storage share",aliases:[],description:"Generate a share link for a file",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"storage",handler:()=>import('../storage-share-SG7QWBGU.js')},{name:"storage unshare",aliases:[],description:"Revoke all share links for a file",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"storage",handler:()=>import('../storage-unshare-THU4SI5I.js')},{name:"storage tag",aliases:[],description:"Add or remove file tags",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"storage",handler:()=>import('../storage-tag-XDJKEOTG.js')},{name:"storage search",aliases:[],description:"Search storage by filename",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"storage",handler:()=>import('../storage-search-H5INCBEX.js')},{name:"storage diff",aliases:[],description:"Compare local and remote storage",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"storage",handler:()=>import('../storage-diff-RK2BH2QH.js')},{name:"storage clean",aliases:[],description:"Clean orphaned files from storage",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"storage",handler:()=>import('../storage-clean-Z2GKXPJV.js')},{name:"deploy",aliases:["squidsite deploy"],description:"Deploy a static website to SquidCloud Sites",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"deploy",handler:()=>import('../deploy-QKTIRD5U.js')},{name:"sites list",aliases:["sites ls"],description:"List all published sites",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"sites",handler:()=>import('../sites-list-5GJPVLM3.js')},{name:"sites info",aliases:[],description:"Show site details",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"sites",handler:()=>import('../sites-info-6HE2B6TF.js')},{name:"sites open",aliases:[],description:"Open site in browser",requiresAuth:true,requiresProject:false,ciSafe:false,jsonSupport:false,dangerLevel:"safe",category:"sites",handler:()=>import('../sites-open-L6AHCXLV.js')},{name:"sites unpublish",aliases:[],description:"Take a site offline",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"destructive",category:"sites",handler:()=>import('../sites-unpublish-G22P2RRZ.js')},{name:"sites delete",aliases:[],description:"Permanently delete a site",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"destructive",category:"sites",handler:()=>import('../sites-delete-BH7KKL54.js')},{name:"sites visibility",aliases:[],description:"Change site visibility (public/private)",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"sites",handler:()=>import('../sites-visibility-XPWHUOEB.js')},{name:"sites rename",aliases:[],description:"Rename a site slug",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"destructive",category:"sites",handler:()=>import('../sites-rename-PH4X5WUY.js')},{name:"sites rollback",aliases:[],description:"Rollback to a previous deployment",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"sites",handler:()=>import('../sites-rollback-XORREI4B.js')},{name:"sites deploys",aliases:[],description:"Show deployment history",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"sites",handler:()=>import('../sites-deploys-4HEJWQON.js')},{name:"sites logs",aliases:[],description:"Stream live site access logs",requiresAuth:true,requiresProject:false,ciSafe:false,jsonSupport:false,dangerLevel:"safe",category:"sites",handler:()=>import('../sites-logs-AYG43HQV.js')},{name:"sites analytics",aliases:[],description:"Show site traffic analytics",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"sites",handler:()=>import('../sites-analytics-2YAYY6GY.js')},{name:"sites purge",aliases:[],description:"Purge CDN cache for a site",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"sites",handler:()=>import('../sites-purge-MGNYRQC2.js')},{name:"scripts list",aliases:[],description:"List registered SquidScripts",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"scripts",handler:()=>import('../scripts-list-X4MIW736.js')},{name:"scripts run",aliases:[],description:"Run a SquidScript pipeline",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"scripts",handler:()=>import('../scripts-run-PYGSKLVZ.js')},{name:"scripts logs",aliases:[],description:"View pipeline run logs",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"scripts",handler:()=>import('../scripts-logs-AC5M3ZBH.js')},{name:"scripts validate",aliases:[],description:"Validate a .squid.yml file",requiresAuth:false,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"scripts",handler:()=>import('../scripts-validate-V7BWQMBO.js')},{name:"scripts init",aliases:[],description:"Create a new pipeline interactively",requiresAuth:true,requiresProject:false,ciSafe:false,jsonSupport:false,dangerLevel:"safe",category:"scripts",handler:()=>import('../scripts-init-AU6WNMKB.js')},{name:"scripts enable",aliases:[],description:"Enable a disabled pipeline",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"scripts",handler:()=>import('../scripts-enable-D73CR33U.js')},{name:"scripts disable",aliases:[],description:"Disable a pipeline",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"scripts",handler:()=>import('../scripts-disable-WJ7OIHFN.js')},{name:"scripts delete",aliases:[],description:"Delete a pipeline",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"destructive",category:"scripts",handler:()=>import('../scripts-delete-TZ7CJXF6.js')},{name:"scripts status",aliases:[],description:"Show pipeline status",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"scripts",handler:()=>import('../scripts-status-T4N57JWV.js')},{name:"scripts cancel",aliases:[],description:"Cancel a running pipeline",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"scripts",handler:()=>import('../scripts-cancel-VX7VJ6J2.js')},{name:"scripts watch",aliases:[],description:"Watch .squid.yml for changes",requiresAuth:false,requiresProject:false,ciSafe:false,jsonSupport:false,dangerLevel:"safe",category:"scripts",handler:()=>import('../scripts-watch-TZHTIL6Y.js')},{name:"filereq list",aliases:["forms list","filereq ls"],description:"List file requests",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"forms",handler:()=>import('../forms-list-5JU4JWVU.js')},{name:"filereq create",aliases:["forms create"],description:"Create a file request",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"forms",handler:()=>import('../forms-create-EGWXMYTW.js')},{name:"filereq info",aliases:["forms info"],description:"View file request details",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"forms",handler:()=>import('../forms-info-KAMWLIOA.js')},{name:"filereq submissions",aliases:["forms submissions"],description:"View file request submissions",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"forms",handler:()=>import('../forms-submissions-U3YD6CC7.js')},{name:"filereq export",aliases:["forms export"],description:"Export submissions as CSV",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:false,dangerLevel:"safe",category:"forms",handler:()=>import('../forms-export-DTHYLUF3.js')},{name:"filereq clear",aliases:["forms clear"],description:"Clear all submissions",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"destructive",category:"forms",handler:()=>import('../forms-clear-VTF3BEG4.js')},{name:"filereq delete",aliases:["forms delete"],description:"Delete a file request",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"destructive",category:"forms",handler:()=>import('../forms-delete-V7SEUFPO.js')},{name:"filereq embed",aliases:["forms embed"],description:"Get HTML embed snippet",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:false,dangerLevel:"safe",category:"forms",handler:()=>import('../forms-embed-2WBFYFUO.js')},{name:"time lock",aliases:[],description:"Time-lock a file or folder",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"time",handler:()=>import('../time-lock-JAQUWZMQ.js')},{name:"time unlock",aliases:[],description:"Unlock a time-locked file",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"time",handler:()=>import('../time-unlock-RJIN5EII.js')},{name:"time status",aliases:[],description:"Check time-lock status",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"time",handler:()=>import('../time-status-HXSTJXP3.js')},{name:"time list",aliases:[],description:"List all time-locked files",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"time",handler:()=>import('../time-list-FLBMQONU.js')},{name:"time proof",aliases:[],description:"Export cryptographic existence proof",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"time",handler:()=>import('../time-proof-UXZS3V7L.js')},{name:"collab invite",aliases:[],description:"Invite a collaborator to a folder",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"collab",handler:()=>import('../collab-invite-6TN62APL.js')},{name:"collab list",aliases:[],description:"List folder collaborators",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"collab",handler:()=>import('../collab-list-M4T5NTDC.js')},{name:"collab remove",aliases:[],description:"Remove a collaborator",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"collab",handler:()=>import('../collab-remove-BUD6VVD5.js')},{name:"collab activity",aliases:[],description:"View collaborator activity feed",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"collab",handler:()=>import('../collab-activity-YOEJEJTQ.js')},{name:"collab leave",aliases:[],description:"Leave a shared folder",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"collab",handler:()=>import('../collab-leave-RY2ULFWC.js')},{name:"collab transfer",aliases:[],description:"Transfer folder ownership",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"destructive",category:"collab",handler:()=>import('../collab-transfer-R5IDVZAX.js')},{name:"sign request",aliases:[],description:"Request a digital signature",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"sign",handler:()=>import('../sign-request-NXOZSE5A.js')},{name:"sign status",aliases:[],description:"Check signing request status",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"sign",handler:()=>import('../sign-status-E5UWZ4Y3.js')},{name:"sign list",aliases:[],description:"List signing requests",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"sign",handler:()=>import('../sign-list-VDF5JFKH.js')},{name:"sign cancel",aliases:[],description:"Cancel a signing request",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"sign",handler:()=>import('../sign-cancel-5W54A3T2.js')},{name:"sign verify",aliases:[],description:"Verify a signed document",requiresAuth:false,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"sign",handler:()=>import('../sign-verify-2OKPTOPN.js')},{name:"sign download",aliases:[],description:"Download signed document",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"sign",handler:()=>import('../sign-download-Z2BRNOBQ.js')},{name:"monitor",aliases:[],description:"At-a-glance SquidCloud health dashboard",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"monitor",handler:()=>import('../monitor-37VPIJX6.js')},{name:"monitor sites",aliases:[],description:"Site health overview",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"monitor",handler:()=>import('../monitor-sites-KUC3NCAF.js')},{name:"monitor pipelines",aliases:[],description:"Pipeline health overview",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"monitor",handler:()=>import('../monitor-pipelines-7IS4K4ZV.js')},{name:"monitor storage",aliases:[],description:"Storage health report",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"monitor",handler:()=>import('../monitor-storage-5UFFXOK7.js')},{name:"monitor automations",aliases:[],description:"Automation health overview",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"monitor",handler:()=>import('../monitor-automations-YKA4DME5.js')},{name:"logs tail",aliases:[],description:"Stream live logs",requiresAuth:true,requiresProject:false,ciSafe:false,jsonSupport:false,dangerLevel:"safe",category:"logs",handler:()=>import('../logs-tail-YVFZLSC2.js')},{name:"logs search",aliases:[],description:"Search historical logs",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"logs",handler:()=>import('../logs-search-UP5IEJMG.js')},{name:"logs export",aliases:[],description:"Export logs as JSONL or CSV",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:false,dangerLevel:"safe",category:"logs",handler:()=>import('../logs-export-62O4KT7A.js')},{name:"doctor",aliases:[],description:"Run system diagnostics",requiresAuth:false,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"utility",handler:()=>import('../doctor-2BGIPUMM.js')},{name:"version",aliases:["--version","-v"],description:"Show CLI version",requiresAuth:false,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"utility",handler:()=>import('../version-XQNUJ474.js')},{name:"config list",aliases:["config ls"],description:"List CLI configuration",requiresAuth:false,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"utility",handler:()=>import('../config-7G24FXQJ.js')},{name:"config set",aliases:[],description:"Set a config value",requiresAuth:false,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"utility",handler:()=>import('../config-set-O6JKOGGN.js')},{name:"config get",aliases:[],description:"Get a config value",requiresAuth:false,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"utility",handler:()=>import('../config-get-DDNSM5EH.js')},{name:"config delete",aliases:[],description:"Delete a config value",requiresAuth:false,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"utility",handler:()=>import('../config-delete-VSIFFODZ.js')},{name:"config reset",aliases:[],description:"Reset all configuration",requiresAuth:false,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"destructive",category:"utility",handler:()=>import('../config-reset-ZFMP4J5H.js')},{name:"completion",aliases:[],description:"Generate shell completion scripts",requiresAuth:false,requiresProject:false,ciSafe:true,jsonSupport:false,dangerLevel:"safe",category:"utility",handler:()=>import('../completion-IF3NB7PB.js')},{name:"feedback",aliases:[],description:"Submit feedback or report a bug",requiresAuth:false,requiresProject:false,ciSafe:false,jsonSupport:false,dangerLevel:"safe",category:"utility",handler:()=>import('../feedback-QUGQAWZB.js')},{name:"update",aliases:[],description:"Update the CLI to latest version",requiresAuth:false,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"utility",handler:()=>import('../update-DOHW47PB.js')}];function v(){return [...L]}var x=dirname(fileURLToPath(import.meta.url)),y=JSON.parse(readFileSync(resolve(x,"../../package.json"),"utf-8")),f=new Command;f.name("squidcloud").description(y.description).version(y.version,"-v, --version","Display CLI version").option("--output <format>","Output format (json)","text").hook("preAction",async e$1=>{e$1.optsWithGlobals().output==="json"&&e(true),d()&&e(false);});async function A(e){if(!e.requiresAuth)return;let a$1=await b();a$1||(h("Not authenticated. Run `squidcloud login` first."),process.exit(1)),e$1(a$1)&&(await a()||(h("Session expired. Please run `squidcloud login` again."),process.exit(1)));}function D(e){let a=new Map;for(let r of e){let l=r.name.split(" ");if(l.length===1)a.set(r.name,new Map);else if(l.length===2){let[t,i]=l;a.has(t)||a.set(t,new Map),a.get(t).set(i,r);}}for(let[r,l]of a)if(l.size===0){let t=e.find(o=>o.name===r),i=f.command(r);i.description(t.description),i.arguments("[args...]"),t.aliases.length>0&&i.aliases(t.aliases),i.action(async(...o)=>{try{await A(t);let n$1=await t.handler();if(typeof n$1.default=="function"){let s=o.slice(0,-2);s.length===1&&Array.isArray(s[0])&&(s=s[0]),await n$1.default(...s);}n(t.name,process.argv.slice(2).join(" "),0);}catch(n$1){let s=n$1 instanceof Error?n$1.message:String(n$1);h(s),n(t.name,process.argv.slice(2).join(" "),1),process.exit(1);}});}else {let t=f.command(r);t.description(`SquidCloud ${r} commands`);for(let[i,o]of l){let n$1=`${r} ${i}`,s=t.command(i);s.description(o.description),s.arguments("[args...]"),o.aliases.length>0&&s.aliases(o.aliases.map(m=>m.replace(`${r} `,""))),s.action(async(...m)=>{try{await A(o);let c=await o.handler();if(typeof c.default=="function"){let u=m.slice(0,-2);u.length===1&&Array.isArray(u[0])&&(u=u[0]),await c.default(...u);}n(n$1,process.argv.slice(2).join(" "),0);}catch(c){let u=c instanceof Error?c.message:String(c);h(u),n(n$1,process.argv.slice(2).join(" "),1),process.exit(1);}});}}}async function R(){let e=process.argv.slice(2);if(e.includes("--version")||e.includes("-v")){let{showVersion:r}=await import('../version-XQNUJ474.js');await r();return}if(e.length===0&&!e.includes("--help")&&!e.includes("-h")){let{showVersion:r}=await import('../version-XQNUJ474.js');await r(),console.log(""),f.outputHelp();return}let a=v();D(a),f.addHelpText("beforeAll",`
|
|
3
|
+
`),await f.parseAsync(process.argv);}R().catch(e=>{h(e instanceof Error?e.message:String(e)),process.exit(1);});//# sourceMappingURL=squidcloud.js.map
|
|
4
4
|
//# sourceMappingURL=squidcloud.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/registry/index.ts","../../src/bin/squidcloud.ts"],"names":["REGISTRY","getAllCommands","program","Command","pkg","thisCommand","setJsonMode","isCI","ensureAuth","descriptor","session","loadSession","logError","shouldRefreshToken","refreshAccessToken","buildCommandTree","commands","tree","cmd","parts","parent","child","name","children","c","args","mod","actionArgs","writeAudit","err","message","parentCmd","childName","childCmd","fullName","a","main","showVersion"],"mappings":"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","file":"squidcloud.js","sourcesContent":["export type CommandCategory =\n | 'auth'\n | 'storage'\n | 'deploy'\n | 'sites'\n | 'scripts'\n | 'automations'\n | 'forms'\n | 'sign'\n | 'time'\n | 'monitor'\n | 'logs'\n | 'collab'\n | 'tunnel'\n | 'id'\n | 'project'\n | 'utility'\n\nexport interface CommandDescriptor {\n name: string\n aliases: string[]\n description: string\n requiresAuth: boolean\n requiresProject: boolean\n ciSafe: boolean\n jsonSupport: boolean\n dangerLevel: 'safe' | 'caution' | 'destructive'\n category: CommandCategory\n handler: () => Promise<{ default: (...args: unknown[]) => void | Promise<void> }>\n}\n\nconst REGISTRY: CommandDescriptor[] = [\n // AUTH\n { name: 'login', aliases: [], description: 'Authenticate with SquidCloud', requiresAuth: false, requiresProject: false, ciSafe: false, jsonSupport: false, dangerLevel: 'safe', category: 'auth', handler: () => import('../commands/auth/login.js') },\n { name: 'logout', aliases: [], description: 'End current CLI session and clear credentials', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: false, dangerLevel: 'safe', category: 'auth', handler: () => import('../commands/auth/logout.js') },\n { name: 'whoami', aliases: ['auth whoami'], description: 'Show current authenticated account info', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'auth', handler: () => import('../commands/auth/whoami.js') },\n { name: 'auth status', aliases: [], description: 'Detailed session health check', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'auth', handler: () => import('../commands/auth/auth-status.js') },\n { name: 'auth sessions', aliases: [], description: 'List all active CLI sessions', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'auth', handler: () => import('../commands/auth/auth-sessions.js') },\n { name: 'auth revoke', aliases: [], description: 'Revoke a session or all sessions', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: false, dangerLevel: 'destructive', category: 'auth', handler: () => import('../commands/auth/auth-revoke.js') },\n\n // STORAGE\n { name: 'storage ls', aliases: ['storage list'], description: 'List files and folders in storage', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'storage', handler: () => import('../commands/storage/storage-ls.js') },\n { name: 'storage upload', aliases: ['storage up'], description: 'Upload files or folders to storage', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'storage', handler: () => import('../commands/storage/storage-upload.js') },\n { name: 'storage download', aliases: ['storage dl'], description: 'Download files or folders from storage', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'storage', handler: () => import('../commands/storage/storage-download.js') },\n { name: 'storage cp', aliases: [], description: 'Copy files within storage', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'storage', handler: () => import('../commands/storage/storage-cp.js') },\n { name: 'storage mv', aliases: [], description: 'Move/rename files within storage', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'caution', category: 'storage', handler: () => import('../commands/storage/storage-mv.js') },\n { name: 'storage rm', aliases: [], description: 'Delete files from storage', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'destructive', category: 'storage', handler: () => import('../commands/storage/storage-rm.js') },\n { name: 'storage mkdir', aliases: [], description: 'Create a folder in storage', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'storage', handler: () => import('../commands/storage/storage-mkdir.js') },\n { name: 'storage cat', aliases: [], description: 'Print file contents to terminal', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: false, dangerLevel: 'safe', category: 'storage', handler: () => import('../commands/storage/storage-cat.js') },\n { name: 'storage info', aliases: [], description: 'Show file metadata', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'storage', handler: () => import('../commands/storage/storage-info.js') },\n { name: 'storage share', aliases: [], description: 'Generate a share link for a file', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'storage', handler: () => import('../commands/storage/storage-share.js') },\n { name: 'storage unshare', aliases: [], description: 'Revoke all share links for a file', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'caution', category: 'storage', handler: () => import('../commands/storage/storage-unshare.js') },\n { name: 'storage tag', aliases: [], description: 'Add or remove file tags', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'storage', handler: () => import('../commands/storage/storage-tag.js') },\n { name: 'storage search', aliases: [], description: 'Search storage by filename', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'storage', handler: () => import('../commands/storage/storage-search.js') },\n { name: 'storage diff', aliases: [], description: 'Compare local and remote storage', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'storage', handler: () => import('../commands/storage/storage-diff.js') },\n { name: 'storage clean', aliases: [], description: 'Clean orphaned files from storage', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'caution', category: 'storage', handler: () => import('../commands/storage/storage-clean.js') },\n\n // DEPLOY\n { name: 'deploy', aliases: ['squidsite deploy'], description: 'Deploy a static website to SquidCloud Sites', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'deploy', handler: () => import('../commands/deploy/index.js') },\n\n // SITES\n { name: 'sites list', aliases: ['sites ls'], description: 'List all published sites', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'sites', handler: () => import('../commands/sites/sites-list.js') },\n { name: 'sites info', aliases: [], description: 'Show site details', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'sites', handler: () => import('../commands/sites/sites-info.js') },\n { name: 'sites open', aliases: [], description: 'Open site in browser', requiresAuth: true, requiresProject: false, ciSafe: false, jsonSupport: false, dangerLevel: 'safe', category: 'sites', handler: () => import('../commands/sites/sites-open.js') },\n { name: 'sites unpublish', aliases: [], description: 'Take a site offline', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'destructive', category: 'sites', handler: () => import('../commands/sites/sites-unpublish.js') },\n { name: 'sites delete', aliases: [], description: 'Permanently delete a site', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'destructive', category: 'sites', handler: () => import('../commands/sites/sites-delete.js') },\n { name: 'sites visibility', aliases: [], description: 'Change site visibility (public/private)', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'caution', category: 'sites', handler: () => import('../commands/sites/sites-visibility.js') },\n { name: 'sites rename', aliases: [], description: 'Rename a site slug', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'destructive', category: 'sites', handler: () => import('../commands/sites/sites-rename.js') },\n { name: 'sites rollback', aliases: [], description: 'Rollback to a previous deployment', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'caution', category: 'sites', handler: () => import('../commands/sites/sites-rollback.js') },\n { name: 'sites deploys', aliases: [], description: 'Show deployment history', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'sites', handler: () => import('../commands/sites/sites-deploys.js') },\n { name: 'sites logs', aliases: [], description: 'Stream live site access logs', requiresAuth: true, requiresProject: false, ciSafe: false, jsonSupport: false, dangerLevel: 'safe', category: 'sites', handler: () => import('../commands/sites/sites-logs.js') },\n { name: 'sites analytics', aliases: [], description: 'Show site traffic analytics', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'sites', handler: () => import('../commands/sites/sites-analytics.js') },\n { name: 'sites purge', aliases: [], description: 'Purge CDN cache for a site', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'caution', category: 'sites', handler: () => import('../commands/sites/sites-purge.js') },\n\n // SCRIPTS (Pipelines)\n { name: 'scripts list', aliases: [], description: 'List registered SquidScripts', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'scripts', handler: () => import('../commands/scripts/scripts-list.js') },\n { name: 'scripts run', aliases: [], description: 'Run a SquidScript pipeline', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'scripts', handler: () => import('../commands/scripts/scripts-run.js') },\n { name: 'scripts logs', aliases: [], description: 'View pipeline run logs', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'scripts', handler: () => import('../commands/scripts/scripts-logs.js') },\n { name: 'scripts validate', aliases: [], description: 'Validate a .squid.yml file', requiresAuth: false, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'scripts', handler: () => import('../commands/scripts/scripts-validate.js') },\n { name: 'scripts init', aliases: [], description: 'Create a new pipeline interactively', requiresAuth: true, requiresProject: false, ciSafe: false, jsonSupport: false, dangerLevel: 'safe', category: 'scripts', handler: () => import('../commands/scripts/scripts-init.js') },\n { name: 'scripts enable', aliases: [], description: 'Enable a disabled pipeline', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'scripts', handler: () => import('../commands/scripts/scripts-enable.js') },\n { name: 'scripts disable', aliases: [], description: 'Disable a pipeline', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'caution', category: 'scripts', handler: () => import('../commands/scripts/scripts-disable.js') },\n { name: 'scripts delete', aliases: [], description: 'Delete a pipeline', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'destructive', category: 'scripts', handler: () => import('../commands/scripts/scripts-delete.js') },\n { name: 'scripts status', aliases: [], description: 'Show pipeline status', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'scripts', handler: () => import('../commands/scripts/scripts-status.js') },\n { name: 'scripts cancel', aliases: [], description: 'Cancel a running pipeline', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'caution', category: 'scripts', handler: () => import('../commands/scripts/scripts-cancel.js') },\n { name: 'scripts watch', aliases: [], description: 'Watch .squid.yml for changes', requiresAuth: false, requiresProject: false, ciSafe: false, jsonSupport: false, dangerLevel: 'safe', category: 'scripts', handler: () => import('../commands/scripts/scripts-watch.js') },\n\n // FORMS (File Requests)\n { name: 'filereq list', aliases: ['forms list', 'filereq ls'], description: 'List file requests', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'forms', handler: () => import('../commands/forms/forms-list.js') },\n { name: 'filereq create', aliases: ['forms create'], description: 'Create a file request', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'forms', handler: () => import('../commands/forms/forms-create.js') },\n { name: 'filereq info', aliases: ['forms info'], description: 'View file request details', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'forms', handler: () => import('../commands/forms/forms-info.js') },\n { name: 'filereq submissions', aliases: ['forms submissions'], description: 'View file request submissions', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'forms', handler: () => import('../commands/forms/forms-submissions.js') },\n { name: 'filereq export', aliases: ['forms export'], description: 'Export submissions as CSV', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: false, dangerLevel: 'safe', category: 'forms', handler: () => import('../commands/forms/forms-export.js') },\n { name: 'filereq clear', aliases: ['forms clear'], description: 'Clear all submissions', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'destructive', category: 'forms', handler: () => import('../commands/forms/forms-clear.js') },\n { name: 'filereq delete', aliases: ['forms delete'], description: 'Delete a file request', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'destructive', category: 'forms', handler: () => import('../commands/forms/forms-delete.js') },\n { name: 'filereq embed', aliases: ['forms embed'], description: 'Get HTML embed snippet', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: false, dangerLevel: 'safe', category: 'forms', handler: () => import('../commands/forms/forms-embed.js') },\n\n // SQUIDTIME\n { name: 'time lock', aliases: [], description: 'Time-lock a file or folder', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'caution', category: 'time', handler: () => import('../commands/time/time-lock.js') },\n { name: 'time unlock', aliases: [], description: 'Unlock a time-locked file', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'time', handler: () => import('../commands/time/time-unlock.js') },\n { name: 'time status', aliases: [], description: 'Check time-lock status', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'time', handler: () => import('../commands/time/time-status.js') },\n { name: 'time list', aliases: [], description: 'List all time-locked files', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'time', handler: () => import('../commands/time/time-list.js') },\n { name: 'time proof', aliases: [], description: 'Export cryptographic existence proof', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'time', handler: () => import('../commands/time/time-proof.js') },\n\n // COLLAB\n { name: 'collab invite', aliases: [], description: 'Invite a collaborator to a folder', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'caution', category: 'collab', handler: () => import('../commands/collab/collab-invite.js') },\n { name: 'collab list', aliases: [], description: 'List folder collaborators', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'collab', handler: () => import('../commands/collab/collab-list.js') },\n { name: 'collab remove', aliases: [], description: 'Remove a collaborator', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'caution', category: 'collab', handler: () => import('../commands/collab/collab-remove.js') },\n { name: 'collab activity', aliases: [], description: 'View collaborator activity feed', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'collab', handler: () => import('../commands/collab/collab-activity.js') },\n { name: 'collab leave', aliases: [], description: 'Leave a shared folder', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'caution', category: 'collab', handler: () => import('../commands/collab/collab-leave.js') },\n { name: 'collab transfer', aliases: [], description: 'Transfer folder ownership', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'destructive', category: 'collab', handler: () => import('../commands/collab/collab-transfer.js') },\n\n // SQUIDSIGN\n { name: 'sign request', aliases: [], description: 'Request a digital signature', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'sign', handler: () => import('../commands/sign/sign-request.js') },\n { name: 'sign status', aliases: [], description: 'Check signing request status', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'sign', handler: () => import('../commands/sign/sign-status.js') },\n { name: 'sign list', aliases: [], description: 'List signing requests', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'sign', handler: () => import('../commands/sign/sign-list.js') },\n { name: 'sign cancel', aliases: [], description: 'Cancel a signing request', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'caution', category: 'sign', handler: () => import('../commands/sign/sign-cancel.js') },\n { name: 'sign verify', aliases: [], description: 'Verify a signed document', requiresAuth: false, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'sign', handler: () => import('../commands/sign/sign-verify.js') },\n { name: 'sign download', aliases: [], description: 'Download signed document', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'sign', handler: () => import('../commands/sign/sign-download.js') },\n\n // MONITOR\n { name: 'monitor', aliases: [], description: 'At-a-glance SquidCloud health dashboard', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'monitor', handler: () => import('../commands/monitor/monitor.js') },\n { name: 'monitor sites', aliases: [], description: 'Site health overview', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'monitor', handler: () => import('../commands/monitor/monitor-sites.js') },\n { name: 'monitor pipelines', aliases: [], description: 'Pipeline health overview', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'monitor', handler: () => import('../commands/monitor/monitor-pipelines.js') },\n { name: 'monitor storage', aliases: [], description: 'Storage health report', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'monitor', handler: () => import('../commands/monitor/monitor-storage.js') },\n { name: 'monitor automations', aliases: [], description: 'Automation health overview', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'monitor', handler: () => import('../commands/monitor/monitor-automations.js') },\n\n // LOGS\n { name: 'logs tail', aliases: [], description: 'Stream live logs', requiresAuth: true, requiresProject: false, ciSafe: false, jsonSupport: false, dangerLevel: 'safe', category: 'logs', handler: () => import('../commands/logs/logs-tail.js') },\n { name: 'logs search', aliases: [], description: 'Search historical logs', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'logs', handler: () => import('../commands/logs/logs-search.js') },\n { name: 'logs export', aliases: [], description: 'Export logs as JSONL or CSV', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: false, dangerLevel: 'safe', category: 'logs', handler: () => import('../commands/logs/logs-export.js') },\n\n // UTILITY\n { name: 'doctor', aliases: [], description: 'Run system diagnostics', requiresAuth: false, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'utility', handler: () => import('../commands/util/doctor.js') },\n { name: 'version', aliases: ['--version', '-v'], description: 'Show CLI version', requiresAuth: false, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'utility', handler: () => import('../commands/util/version.js') },\n { name: 'config list', aliases: ['config ls'], description: 'List CLI configuration', requiresAuth: false, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'utility', handler: () => import('../commands/util/config.js') },\n { name: 'config set', aliases: [], description: 'Set a config value', requiresAuth: false, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'utility', handler: () => import('../commands/util/config-set.js') },\n { name: 'config get', aliases: [], description: 'Get a config value', requiresAuth: false, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'utility', handler: () => import('../commands/util/config-get.js') },\n { name: 'config delete', aliases: [], description: 'Delete a config value', requiresAuth: false, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'utility', handler: () => import('../commands/util/config-delete.js') },\n { name: 'config reset', aliases: [], description: 'Reset all configuration', requiresAuth: false, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'destructive', category: 'utility', handler: () => import('../commands/util/config-reset.js') },\n { name: 'completion', aliases: [], description: 'Generate shell completion scripts', requiresAuth: false, requiresProject: false, ciSafe: true, jsonSupport: false, dangerLevel: 'safe', category: 'utility', handler: () => import('../commands/util/completion.js') },\n { name: 'feedback', aliases: [], description: 'Submit feedback or report a bug', requiresAuth: false, requiresProject: false, ciSafe: false, jsonSupport: false, dangerLevel: 'safe', category: 'utility', handler: () => import('../commands/util/feedback.js') },\n { name: 'update', aliases: [], description: 'Update the CLI to latest version', requiresAuth: false, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'utility', handler: () => import('../commands/util/update.js') },\n]\n\nexport function getCommand(name: string): CommandDescriptor | undefined {\n const parts = name.trim().toLowerCase().split(/\\s+/)\n return REGISTRY.find(cmd => {\n const cmdParts = cmd.name.split(/\\s+/)\n if (parts.join(' ') === cmd.name) return true\n for (const alias of cmd.aliases) {\n const aliasParts = alias.split(/\\s+/)\n const expandedAlias = (aliasParts[0] === cmdParts[0] && aliasParts.length > 1) ? alias : null\n if (parts.join(' ') === alias) return true\n }\n return false\n })\n}\n\nexport function getCategory(cat: CommandCategory): CommandDescriptor[] {\n return REGISTRY.filter(cmd => cmd.category === cat)\n}\n\nexport function getAllCommands(): CommandDescriptor[] {\n return [...REGISTRY]\n}\n\nexport function getCISafeCommands(): CommandDescriptor[] {\n return REGISTRY.filter(cmd => cmd.ciSafe)\n}\n","#!/usr/bin/env node\nimport { Command } from 'commander'\nimport { setJsonMode, logError, writeAudit } from '../lib/output/index.js'\nimport { isCI } from '../lib/utils/ci-detect.js'\nimport { getAllCommands, CommandDescriptor } from '../registry/index.js'\nimport { loadSession, shouldRefreshToken } from '../lib/auth/session.js'\nimport { refreshAccessToken } from '../lib/auth/refresh.js'\n\nconst program = new Command()\nconst pkg = { version: '1.0.0', name: '@squidcloud/cli', description: 'SquidCloud CLI — static sites, storage, pipelines, and more.' }\n\nprogram\n .name('squidcloud')\n .description(pkg.description)\n .version(pkg.version, '-v, --version', 'Display CLI version')\n .option('--output <format>', 'Output format (json)', 'text')\n .hook('preAction', async (thisCommand) => {\n const opts = thisCommand.optsWithGlobals()\n if (opts.output === 'json') {\n setJsonMode(true)\n }\n if (isCI()) {\n setJsonMode(false)\n }\n })\n\nasync function ensureAuth(descriptor: CommandDescriptor): Promise<void> {\n if (!descriptor.requiresAuth) return\n const session = await loadSession()\n if (!session) {\n logError('Not authenticated. Run `squidcloud login` first.')\n process.exit(1)\n }\n if (shouldRefreshToken(session)) {\n const refreshed = await refreshAccessToken()\n if (!refreshed) {\n logError('Session expired. Please run `squidcloud login` again.')\n process.exit(1)\n }\n }\n}\n\nfunction buildCommandTree(commands: CommandDescriptor[]): void {\n const tree = new Map<string, Map<string, CommandDescriptor>>()\n\n for (const cmd of commands) {\n const parts = cmd.name.split(' ')\n if (parts.length === 1) {\n tree.set(cmd.name, new Map())\n } else if (parts.length === 2) {\n const [parent, child] = parts\n if (!tree.has(parent!)) {\n tree.set(parent!, new Map())\n }\n tree.get(parent!)!.set(child!, cmd)\n }\n }\n\n for (const [name, children] of tree) {\n if (children.size === 0) {\n const cmd = commands.find(c => c.name === name)!\n const c = program.command(name)\n c.description(cmd.description)\n if (cmd.aliases.length > 0) {\n c.aliases(cmd.aliases)\n }\n c.action(async (...args: unknown[]) => {\n try {\n await ensureAuth(cmd)\n const mod = await cmd.handler()\n if (typeof mod.default === 'function') {\n const actionArgs = args.slice(0, -2)\n await mod.default(...actionArgs)\n }\n writeAudit(cmd.name, process.argv.slice(2).join(' '), 0)\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err)\n logError(message)\n writeAudit(cmd.name, process.argv.slice(2).join(' '), 1)\n process.exit(1)\n }\n })\n } else {\n const parentCmd = program.command(name)\n parentCmd.description(`SquidCloud ${name} commands`)\n for (const [childName, childCmd] of children) {\n const fullName = `${name} ${childName}`\n const c = parentCmd.command(childName)\n c.description(childCmd.description)\n if (childCmd.aliases.length > 0) {\n c.aliases(childCmd.aliases.map(a => a.replace(`${name} `, '')))\n }\n c.action(async (...args: unknown[]) => {\n try {\n await ensureAuth(childCmd)\n const mod = await childCmd.handler()\n if (typeof mod.default === 'function') {\n const actionArgs = args.slice(0, -2)\n await mod.default(...actionArgs)\n }\n writeAudit(fullName, process.argv.slice(2).join(' '), 0)\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err)\n logError(message)\n writeAudit(fullName, process.argv.slice(2).join(' '), 1)\n process.exit(1)\n }\n })\n }\n }\n }\n}\n\nasync function main(): Promise<void> {\n const args = process.argv.slice(2)\n\n if (args.includes('--version') || args.includes('-v')) {\n const { showVersion } = await import('../commands/util/version.js')\n await showVersion()\n return\n }\n\n if (args.length === 0 && !args.includes('--help') && !args.includes('-h')) {\n const { showVersion } = await import('../commands/util/version.js')\n await showVersion()\n console.log('')\n program.outputHelp()\n return\n }\n\n const commands = getAllCommands()\n buildCommandTree(commands)\n\n program.addHelpText('beforeAll', '\\n')\n\n await program.parseAsync(process.argv)\n}\n\nmain().catch((err) => {\n logError(err instanceof Error ? err.message : String(err))\n process.exit(1)\n})\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/registry/index.ts","../../src/bin/squidcloud.ts"],"names":["REGISTRY","getAllCommands","__dirname","dirname","fileURLToPath","pkg","readFileSync","resolve","program","Command","thisCommand","setJsonMode","isCI","ensureAuth","descriptor","session","loadSession","logError","shouldRefreshToken","refreshAccessToken","buildCommandTree","commands","tree","cmd","parts","parent","child","name","children","c","args","mod","actionArgs","writeAudit","err","message","parentCmd","childName","childCmd","fullName","a","main","showVersion"],"mappings":"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","file":"squidcloud.js","sourcesContent":["export type CommandCategory =\n | 'auth'\n | 'storage'\n | 'deploy'\n | 'sites'\n | 'scripts'\n | 'automations'\n | 'forms'\n | 'sign'\n | 'time'\n | 'monitor'\n | 'logs'\n | 'collab'\n | 'tunnel'\n | 'id'\n | 'project'\n | 'utility'\n\nexport interface CommandDescriptor {\n name: string\n aliases: string[]\n description: string\n requiresAuth: boolean\n requiresProject: boolean\n ciSafe: boolean\n jsonSupport: boolean\n dangerLevel: 'safe' | 'caution' | 'destructive'\n category: CommandCategory\n handler: () => Promise<{ default: (...args: unknown[]) => void | Promise<void> }>\n}\n\nconst REGISTRY: CommandDescriptor[] = [\n // AUTH\n { name: 'login', aliases: [], description: 'Authenticate with SquidCloud', requiresAuth: false, requiresProject: false, ciSafe: false, jsonSupport: false, dangerLevel: 'safe', category: 'auth', handler: () => import('../commands/auth/login.js') },\n { name: 'logout', aliases: [], description: 'End current CLI session and clear credentials', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: false, dangerLevel: 'safe', category: 'auth', handler: () => import('../commands/auth/logout.js') },\n { name: 'whoami', aliases: ['auth whoami'], description: 'Show current authenticated account info', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'auth', handler: () => import('../commands/auth/whoami.js') },\n { name: 'auth status', aliases: [], description: 'Detailed session health check', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'auth', handler: () => import('../commands/auth/auth-status.js') },\n { name: 'auth sessions', aliases: [], description: 'List all active CLI sessions', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'auth', handler: () => import('../commands/auth/auth-sessions.js') },\n { name: 'auth revoke', aliases: [], description: 'Revoke a session or all sessions', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: false, dangerLevel: 'destructive', category: 'auth', handler: () => import('../commands/auth/auth-revoke.js') },\n\n // STORAGE\n { name: 'storage ls', aliases: ['storage list'], description: 'List files and folders in storage', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'storage', handler: () => import('../commands/storage/storage-ls.js') },\n { name: 'storage upload', aliases: ['storage up'], description: 'Upload files or folders to storage', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'storage', handler: () => import('../commands/storage/storage-upload.js') },\n { name: 'storage download', aliases: ['storage dl'], description: 'Download files or folders from storage', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'storage', handler: () => import('../commands/storage/storage-download.js') },\n { name: 'storage cp', aliases: [], description: 'Copy files within storage', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'storage', handler: () => import('../commands/storage/storage-cp.js') },\n { name: 'storage mv', aliases: [], description: 'Move/rename files within storage', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'caution', category: 'storage', handler: () => import('../commands/storage/storage-mv.js') },\n { name: 'storage rm', aliases: [], description: 'Delete files from storage', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'destructive', category: 'storage', handler: () => import('../commands/storage/storage-rm.js') },\n { name: 'storage mkdir', aliases: [], description: 'Create a folder in storage', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'storage', handler: () => import('../commands/storage/storage-mkdir.js') },\n { name: 'storage cat', aliases: [], description: 'Print file contents to terminal', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: false, dangerLevel: 'safe', category: 'storage', handler: () => import('../commands/storage/storage-cat.js') },\n { name: 'storage info', aliases: [], description: 'Show file metadata', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'storage', handler: () => import('../commands/storage/storage-info.js') },\n { name: 'storage share', aliases: [], description: 'Generate a share link for a file', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'storage', handler: () => import('../commands/storage/storage-share.js') },\n { name: 'storage unshare', aliases: [], description: 'Revoke all share links for a file', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'caution', category: 'storage', handler: () => import('../commands/storage/storage-unshare.js') },\n { name: 'storage tag', aliases: [], description: 'Add or remove file tags', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'storage', handler: () => import('../commands/storage/storage-tag.js') },\n { name: 'storage search', aliases: [], description: 'Search storage by filename', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'storage', handler: () => import('../commands/storage/storage-search.js') },\n { name: 'storage diff', aliases: [], description: 'Compare local and remote storage', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'storage', handler: () => import('../commands/storage/storage-diff.js') },\n { name: 'storage clean', aliases: [], description: 'Clean orphaned files from storage', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'caution', category: 'storage', handler: () => import('../commands/storage/storage-clean.js') },\n\n // DEPLOY\n { name: 'deploy', aliases: ['squidsite deploy'], description: 'Deploy a static website to SquidCloud Sites', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'deploy', handler: () => import('../commands/deploy/index.js') },\n\n // SITES\n { name: 'sites list', aliases: ['sites ls'], description: 'List all published sites', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'sites', handler: () => import('../commands/sites/sites-list.js') },\n { name: 'sites info', aliases: [], description: 'Show site details', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'sites', handler: () => import('../commands/sites/sites-info.js') },\n { name: 'sites open', aliases: [], description: 'Open site in browser', requiresAuth: true, requiresProject: false, ciSafe: false, jsonSupport: false, dangerLevel: 'safe', category: 'sites', handler: () => import('../commands/sites/sites-open.js') },\n { name: 'sites unpublish', aliases: [], description: 'Take a site offline', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'destructive', category: 'sites', handler: () => import('../commands/sites/sites-unpublish.js') },\n { name: 'sites delete', aliases: [], description: 'Permanently delete a site', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'destructive', category: 'sites', handler: () => import('../commands/sites/sites-delete.js') },\n { name: 'sites visibility', aliases: [], description: 'Change site visibility (public/private)', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'caution', category: 'sites', handler: () => import('../commands/sites/sites-visibility.js') },\n { name: 'sites rename', aliases: [], description: 'Rename a site slug', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'destructive', category: 'sites', handler: () => import('../commands/sites/sites-rename.js') },\n { name: 'sites rollback', aliases: [], description: 'Rollback to a previous deployment', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'caution', category: 'sites', handler: () => import('../commands/sites/sites-rollback.js') },\n { name: 'sites deploys', aliases: [], description: 'Show deployment history', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'sites', handler: () => import('../commands/sites/sites-deploys.js') },\n { name: 'sites logs', aliases: [], description: 'Stream live site access logs', requiresAuth: true, requiresProject: false, ciSafe: false, jsonSupport: false, dangerLevel: 'safe', category: 'sites', handler: () => import('../commands/sites/sites-logs.js') },\n { name: 'sites analytics', aliases: [], description: 'Show site traffic analytics', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'sites', handler: () => import('../commands/sites/sites-analytics.js') },\n { name: 'sites purge', aliases: [], description: 'Purge CDN cache for a site', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'caution', category: 'sites', handler: () => import('../commands/sites/sites-purge.js') },\n\n // SCRIPTS (Pipelines)\n { name: 'scripts list', aliases: [], description: 'List registered SquidScripts', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'scripts', handler: () => import('../commands/scripts/scripts-list.js') },\n { name: 'scripts run', aliases: [], description: 'Run a SquidScript pipeline', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'scripts', handler: () => import('../commands/scripts/scripts-run.js') },\n { name: 'scripts logs', aliases: [], description: 'View pipeline run logs', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'scripts', handler: () => import('../commands/scripts/scripts-logs.js') },\n { name: 'scripts validate', aliases: [], description: 'Validate a .squid.yml file', requiresAuth: false, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'scripts', handler: () => import('../commands/scripts/scripts-validate.js') },\n { name: 'scripts init', aliases: [], description: 'Create a new pipeline interactively', requiresAuth: true, requiresProject: false, ciSafe: false, jsonSupport: false, dangerLevel: 'safe', category: 'scripts', handler: () => import('../commands/scripts/scripts-init.js') },\n { name: 'scripts enable', aliases: [], description: 'Enable a disabled pipeline', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'scripts', handler: () => import('../commands/scripts/scripts-enable.js') },\n { name: 'scripts disable', aliases: [], description: 'Disable a pipeline', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'caution', category: 'scripts', handler: () => import('../commands/scripts/scripts-disable.js') },\n { name: 'scripts delete', aliases: [], description: 'Delete a pipeline', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'destructive', category: 'scripts', handler: () => import('../commands/scripts/scripts-delete.js') },\n { name: 'scripts status', aliases: [], description: 'Show pipeline status', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'scripts', handler: () => import('../commands/scripts/scripts-status.js') },\n { name: 'scripts cancel', aliases: [], description: 'Cancel a running pipeline', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'caution', category: 'scripts', handler: () => import('../commands/scripts/scripts-cancel.js') },\n { name: 'scripts watch', aliases: [], description: 'Watch .squid.yml for changes', requiresAuth: false, requiresProject: false, ciSafe: false, jsonSupport: false, dangerLevel: 'safe', category: 'scripts', handler: () => import('../commands/scripts/scripts-watch.js') },\n\n // FORMS (File Requests)\n { name: 'filereq list', aliases: ['forms list', 'filereq ls'], description: 'List file requests', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'forms', handler: () => import('../commands/forms/forms-list.js') },\n { name: 'filereq create', aliases: ['forms create'], description: 'Create a file request', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'forms', handler: () => import('../commands/forms/forms-create.js') },\n { name: 'filereq info', aliases: ['forms info'], description: 'View file request details', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'forms', handler: () => import('../commands/forms/forms-info.js') },\n { name: 'filereq submissions', aliases: ['forms submissions'], description: 'View file request submissions', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'forms', handler: () => import('../commands/forms/forms-submissions.js') },\n { name: 'filereq export', aliases: ['forms export'], description: 'Export submissions as CSV', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: false, dangerLevel: 'safe', category: 'forms', handler: () => import('../commands/forms/forms-export.js') },\n { name: 'filereq clear', aliases: ['forms clear'], description: 'Clear all submissions', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'destructive', category: 'forms', handler: () => import('../commands/forms/forms-clear.js') },\n { name: 'filereq delete', aliases: ['forms delete'], description: 'Delete a file request', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'destructive', category: 'forms', handler: () => import('../commands/forms/forms-delete.js') },\n { name: 'filereq embed', aliases: ['forms embed'], description: 'Get HTML embed snippet', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: false, dangerLevel: 'safe', category: 'forms', handler: () => import('../commands/forms/forms-embed.js') },\n\n // SQUIDTIME\n { name: 'time lock', aliases: [], description: 'Time-lock a file or folder', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'caution', category: 'time', handler: () => import('../commands/time/time-lock.js') },\n { name: 'time unlock', aliases: [], description: 'Unlock a time-locked file', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'time', handler: () => import('../commands/time/time-unlock.js') },\n { name: 'time status', aliases: [], description: 'Check time-lock status', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'time', handler: () => import('../commands/time/time-status.js') },\n { name: 'time list', aliases: [], description: 'List all time-locked files', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'time', handler: () => import('../commands/time/time-list.js') },\n { name: 'time proof', aliases: [], description: 'Export cryptographic existence proof', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'time', handler: () => import('../commands/time/time-proof.js') },\n\n // COLLAB\n { name: 'collab invite', aliases: [], description: 'Invite a collaborator to a folder', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'caution', category: 'collab', handler: () => import('../commands/collab/collab-invite.js') },\n { name: 'collab list', aliases: [], description: 'List folder collaborators', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'collab', handler: () => import('../commands/collab/collab-list.js') },\n { name: 'collab remove', aliases: [], description: 'Remove a collaborator', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'caution', category: 'collab', handler: () => import('../commands/collab/collab-remove.js') },\n { name: 'collab activity', aliases: [], description: 'View collaborator activity feed', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'collab', handler: () => import('../commands/collab/collab-activity.js') },\n { name: 'collab leave', aliases: [], description: 'Leave a shared folder', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'caution', category: 'collab', handler: () => import('../commands/collab/collab-leave.js') },\n { name: 'collab transfer', aliases: [], description: 'Transfer folder ownership', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'destructive', category: 'collab', handler: () => import('../commands/collab/collab-transfer.js') },\n\n // SQUIDSIGN\n { name: 'sign request', aliases: [], description: 'Request a digital signature', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'sign', handler: () => import('../commands/sign/sign-request.js') },\n { name: 'sign status', aliases: [], description: 'Check signing request status', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'sign', handler: () => import('../commands/sign/sign-status.js') },\n { name: 'sign list', aliases: [], description: 'List signing requests', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'sign', handler: () => import('../commands/sign/sign-list.js') },\n { name: 'sign cancel', aliases: [], description: 'Cancel a signing request', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'caution', category: 'sign', handler: () => import('../commands/sign/sign-cancel.js') },\n { name: 'sign verify', aliases: [], description: 'Verify a signed document', requiresAuth: false, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'sign', handler: () => import('../commands/sign/sign-verify.js') },\n { name: 'sign download', aliases: [], description: 'Download signed document', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'sign', handler: () => import('../commands/sign/sign-download.js') },\n\n // MONITOR\n { name: 'monitor', aliases: [], description: 'At-a-glance SquidCloud health dashboard', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'monitor', handler: () => import('../commands/monitor/monitor.js') },\n { name: 'monitor sites', aliases: [], description: 'Site health overview', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'monitor', handler: () => import('../commands/monitor/monitor-sites.js') },\n { name: 'monitor pipelines', aliases: [], description: 'Pipeline health overview', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'monitor', handler: () => import('../commands/monitor/monitor-pipelines.js') },\n { name: 'monitor storage', aliases: [], description: 'Storage health report', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'monitor', handler: () => import('../commands/monitor/monitor-storage.js') },\n { name: 'monitor automations', aliases: [], description: 'Automation health overview', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'monitor', handler: () => import('../commands/monitor/monitor-automations.js') },\n\n // LOGS\n { name: 'logs tail', aliases: [], description: 'Stream live logs', requiresAuth: true, requiresProject: false, ciSafe: false, jsonSupport: false, dangerLevel: 'safe', category: 'logs', handler: () => import('../commands/logs/logs-tail.js') },\n { name: 'logs search', aliases: [], description: 'Search historical logs', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'logs', handler: () => import('../commands/logs/logs-search.js') },\n { name: 'logs export', aliases: [], description: 'Export logs as JSONL or CSV', requiresAuth: true, requiresProject: false, ciSafe: true, jsonSupport: false, dangerLevel: 'safe', category: 'logs', handler: () => import('../commands/logs/logs-export.js') },\n\n // UTILITY\n { name: 'doctor', aliases: [], description: 'Run system diagnostics', requiresAuth: false, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'utility', handler: () => import('../commands/util/doctor.js') },\n { name: 'version', aliases: ['--version', '-v'], description: 'Show CLI version', requiresAuth: false, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'utility', handler: () => import('../commands/util/version.js') },\n { name: 'config list', aliases: ['config ls'], description: 'List CLI configuration', requiresAuth: false, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'utility', handler: () => import('../commands/util/config.js') },\n { name: 'config set', aliases: [], description: 'Set a config value', requiresAuth: false, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'utility', handler: () => import('../commands/util/config-set.js') },\n { name: 'config get', aliases: [], description: 'Get a config value', requiresAuth: false, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'utility', handler: () => import('../commands/util/config-get.js') },\n { name: 'config delete', aliases: [], description: 'Delete a config value', requiresAuth: false, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'utility', handler: () => import('../commands/util/config-delete.js') },\n { name: 'config reset', aliases: [], description: 'Reset all configuration', requiresAuth: false, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'destructive', category: 'utility', handler: () => import('../commands/util/config-reset.js') },\n { name: 'completion', aliases: [], description: 'Generate shell completion scripts', requiresAuth: false, requiresProject: false, ciSafe: true, jsonSupport: false, dangerLevel: 'safe', category: 'utility', handler: () => import('../commands/util/completion.js') },\n { name: 'feedback', aliases: [], description: 'Submit feedback or report a bug', requiresAuth: false, requiresProject: false, ciSafe: false, jsonSupport: false, dangerLevel: 'safe', category: 'utility', handler: () => import('../commands/util/feedback.js') },\n { name: 'update', aliases: [], description: 'Update the CLI to latest version', requiresAuth: false, requiresProject: false, ciSafe: true, jsonSupport: true, dangerLevel: 'safe', category: 'utility', handler: () => import('../commands/util/update.js') },\n]\n\nexport function getCommand(name: string): CommandDescriptor | undefined {\n const parts = name.trim().toLowerCase().split(/\\s+/)\n return REGISTRY.find(cmd => {\n const cmdParts = cmd.name.split(/\\s+/)\n if (parts.join(' ') === cmd.name) return true\n for (const alias of cmd.aliases) {\n const aliasParts = alias.split(/\\s+/)\n const expandedAlias = (aliasParts[0] === cmdParts[0] && aliasParts.length > 1) ? alias : null\n if (parts.join(' ') === alias) return true\n }\n return false\n })\n}\n\nexport function getCategory(cat: CommandCategory): CommandDescriptor[] {\n return REGISTRY.filter(cmd => cmd.category === cat)\n}\n\nexport function getAllCommands(): CommandDescriptor[] {\n return [...REGISTRY]\n}\n\nexport function getCISafeCommands(): CommandDescriptor[] {\n return REGISTRY.filter(cmd => cmd.ciSafe)\n}\n","#!/usr/bin/env node\nimport { readFileSync } from 'node:fs'\nimport { dirname, resolve } from 'node:path'\nimport { fileURLToPath } from 'node:url'\nimport { Command } from 'commander'\nimport { setJsonMode, logError, writeAudit } from '../lib/output/index.js'\nimport { isCI } from '../lib/utils/ci-detect.js'\nimport { getAllCommands, CommandDescriptor } from '../registry/index.js'\nimport { loadSession, shouldRefreshToken } from '../lib/auth/session.js'\nimport { refreshAccessToken } from '../lib/auth/refresh.js'\n\nconst __dirname = dirname(fileURLToPath(import.meta.url))\nconst pkg = JSON.parse(readFileSync(resolve(__dirname, '../../package.json'), 'utf-8')) as { version: string; name: string; description: string }\n\nconst program = new Command()\n\nprogram\n .name('squidcloud')\n .description(pkg.description)\n .version(pkg.version, '-v, --version', 'Display CLI version')\n .option('--output <format>', 'Output format (json)', 'text')\n .hook('preAction', async (thisCommand) => {\n const opts = thisCommand.optsWithGlobals()\n if (opts.output === 'json') {\n setJsonMode(true)\n }\n if (isCI()) {\n setJsonMode(false)\n }\n })\n\nasync function ensureAuth(descriptor: CommandDescriptor): Promise<void> {\n if (!descriptor.requiresAuth) return\n const session = await loadSession()\n if (!session) {\n logError('Not authenticated. Run `squidcloud login` first.')\n process.exit(1)\n }\n if (shouldRefreshToken(session)) {\n const refreshed = await refreshAccessToken()\n if (!refreshed) {\n logError('Session expired. Please run `squidcloud login` again.')\n process.exit(1)\n }\n }\n}\n\nfunction buildCommandTree(commands: CommandDescriptor[]): void {\n const tree = new Map<string, Map<string, CommandDescriptor>>()\n\n for (const cmd of commands) {\n const parts = cmd.name.split(' ')\n if (parts.length === 1) {\n tree.set(cmd.name, new Map())\n } else if (parts.length === 2) {\n const [parent, child] = parts\n if (!tree.has(parent!)) {\n tree.set(parent!, new Map())\n }\n tree.get(parent!)!.set(child!, cmd)\n }\n }\n\n for (const [name, children] of tree) {\n if (children.size === 0) {\n const cmd = commands.find(c => c.name === name)!\n const c = program.command(name)\n c.description(cmd.description)\n c.arguments('[args...]')\n if (cmd.aliases.length > 0) {\n c.aliases(cmd.aliases)\n }\n c.action(async (...args: unknown[]) => {\n try {\n await ensureAuth(cmd)\n const mod = await cmd.handler()\n if (typeof mod.default === 'function') {\n let actionArgs = args.slice(0, -2)\n if (actionArgs.length === 1 && Array.isArray(actionArgs[0])) {\n actionArgs = actionArgs[0]\n }\n await mod.default(...actionArgs)\n }\n writeAudit(cmd.name, process.argv.slice(2).join(' '), 0)\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err)\n logError(message)\n writeAudit(cmd.name, process.argv.slice(2).join(' '), 1)\n process.exit(1)\n }\n })\n } else {\n const parentCmd = program.command(name)\n parentCmd.description(`SquidCloud ${name} commands`)\n for (const [childName, childCmd] of children) {\n const fullName = `${name} ${childName}`\n const c = parentCmd.command(childName)\n c.description(childCmd.description)\n c.arguments('[args...]')\n if (childCmd.aliases.length > 0) {\n c.aliases(childCmd.aliases.map(a => a.replace(`${name} `, '')))\n }\n c.action(async (...args: unknown[]) => {\n try {\n await ensureAuth(childCmd)\n const mod = await childCmd.handler()\n if (typeof mod.default === 'function') {\n let actionArgs = args.slice(0, -2)\n if (actionArgs.length === 1 && Array.isArray(actionArgs[0])) {\n actionArgs = actionArgs[0]\n }\n await mod.default(...actionArgs)\n }\n writeAudit(fullName, process.argv.slice(2).join(' '), 0)\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err)\n logError(message)\n writeAudit(fullName, process.argv.slice(2).join(' '), 1)\n process.exit(1)\n }\n })\n }\n }\n }\n}\n\nasync function main(): Promise<void> {\n const args = process.argv.slice(2)\n\n if (args.includes('--version') || args.includes('-v')) {\n const { showVersion } = await import('../commands/util/version.js')\n await showVersion()\n return\n }\n\n if (args.length === 0 && !args.includes('--help') && !args.includes('-h')) {\n const { showVersion } = await import('../commands/util/version.js')\n await showVersion()\n console.log('')\n program.outputHelp()\n return\n }\n\n const commands = getAllCommands()\n buildCommandTree(commands)\n\n program.addHelpText('beforeAll', '\\n')\n\n await program.parseAsync(process.argv)\n}\n\nmain().catch((err) => {\n logError(err instanceof Error ? err.message : String(err))\n process.exit(1)\n})\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a}from'./chunk-NDB6KXYI.js';import {a as a$1}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {a}from'./chunk-NDB6KXYI.js';import {a as a$1}from'./chunk-ULVQ53OO.js';import {b}from'./chunk-Q3A4IBGC.js';var q=3,x=1e3,h=1e3,R=a(),g=0;async function O(){let e=Date.now()-g;e<h&&await new Promise(n=>setTimeout(n,h-e)),g=Date.now();}async function T(t,e={}){let{method:n="GET",headers:s={},body:r,authenticated:p=false,retries:a=q}=e;await O();let c={"Content-Type":"application/json",...s};if(p){let o=await b();if(o?.api_key)c["x-squidcloud-key"]=o.api_key;else if(o?.access_token){let i=await a$1();i?.api_key&&(c["x-squidcloud-key"]=i.api_key);}}let f=`${R}${t}`,u={method:n,headers:c};r&&n!=="GET"&&(u.body=JSON.stringify(r));let l=null;for(let o=0;o<=a;o++)try{let i=await fetch(f,u);return k(i)}catch(i){if(l=i instanceof Error?i:new Error(String(i)),o<a){let E=x*Math.pow(2,o)*(.5+Math.random()*.5);await new Promise(P=>setTimeout(P,E));}}throw l||new Error(`Request failed: ${t}`)}async function k(t){if(t.status===204)return;if((t.headers.get("content-type")||"").includes("application/json")){let s=await t.json();if(!t.ok){let r=s?.error?.message||s?.message||`HTTP ${t.status}`;throw new d(r,t.status,s?.error)}return s}if(!t.ok){let s=await t.text();throw new d(s||`HTTP ${t.status}`,t.status)}return await t.text()}var d=class extends Error{constructor(n,s,r){super(n);this.status=s;this.details=r;this.name="ApiError";}status;details};async function A(t,e){return T(t,{...e,method:"GET"})}async function D(t,e,n){return T(t,{...n,method:"POST",body:e})}async function $(t,e,n){return T(t,{...n,method:"PUT",body:e})}async function I(t,e){return T(t,{...e,method:"DELETE"})}async function G(t,e,n){let{method:s="POST",headers:r={},authenticated:p=false}=n||{},a={...r};if(p){let u=await b();u?.api_key&&(a["x-squidcloud-key"]=u.api_key);}let c=`${R}${t}`,f=await fetch(c,{method:s,headers:a,body:e});return k(f)}export{T as a,d as b,A as c,D as d,$ as e,I as f,G as g};//# sourceMappingURL=chunk-CHBVIZF5.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-CHBVIZF5.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/api/client.ts"],"names":["MAX_RETRIES","BASE_DELAY","RATE_LIMIT_WINDOW","API_BASE","getApiBase","lastRequestTime","rateLimit","elapsed","r","apiRequest","path","options","method","headers","body","authenticated","retries","reqHeaders","session","loadSession","newSession","refreshAccessToken","url","fetchOptions","lastError","attempt","response","handleResponse","err","delay","data","message","ApiError","text","status","details","apiGet","apiPost","apiPut","apiDelete","apiUpload","formData"],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/lib/api/client.ts"],"names":["MAX_RETRIES","BASE_DELAY","RATE_LIMIT_WINDOW","API_BASE","getApiBase","lastRequestTime","rateLimit","elapsed","r","apiRequest","path","options","method","headers","body","authenticated","retries","reqHeaders","session","loadSession","newSession","refreshAccessToken","url","fetchOptions","lastError","attempt","response","handleResponse","err","delay","data","message","ApiError","text","status","details","apiGet","apiPost","apiPut","apiDelete","apiUpload","formData"],"mappings":"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","file":"chunk-CHBVIZF5.js","sourcesContent":["import { loadSession } from '../auth/session.js'\nimport { refreshAccessToken } from '../auth/refresh.js'\nimport { getApiBase } from './cert-pin.js'\n\nconst MAX_RETRIES = 3\nconst BASE_DELAY = 1000\nconst RATE_LIMIT_WINDOW = 1000\nconst API_BASE = getApiBase()\n\ninterface RequestOptions {\n method?: string\n headers?: Record<string, string>\n body?: unknown\n authenticated?: boolean\n retries?: number\n}\n\nlet lastRequestTime = 0\n\nasync function rateLimit(): Promise<void> {\n const now = Date.now()\n const elapsed = now - lastRequestTime\n if (elapsed < RATE_LIMIT_WINDOW) {\n await new Promise(r => setTimeout(r, RATE_LIMIT_WINDOW - elapsed))\n }\n lastRequestTime = Date.now()\n}\n\nexport async function apiRequest<T>(path: string, options: RequestOptions = {}): Promise<T> {\n const { method = 'GET', headers = {}, body, authenticated = false, retries = MAX_RETRIES } = options\n\n await rateLimit()\n\n const reqHeaders: Record<string, string> = {\n 'Content-Type': 'application/json',\n ...headers,\n }\n\n if (authenticated) {\n const session = await loadSession()\n if (session?.api_key) {\n reqHeaders['x-squidcloud-key'] = session.api_key\n } else if (session?.access_token) {\n const newSession = await refreshAccessToken()\n if (newSession?.api_key) {\n reqHeaders['x-squidcloud-key'] = newSession.api_key\n }\n }\n }\n\n const url = `${API_BASE}${path}`\n const fetchOptions: RequestInit = {\n method,\n headers: reqHeaders,\n }\n\n if (body && method !== 'GET') {\n fetchOptions.body = JSON.stringify(body)\n }\n\n let lastError: Error | null = null\n for (let attempt = 0; attempt <= retries; attempt++) {\n try {\n const response = await fetch(url, fetchOptions)\n return handleResponse<T>(response)\n } catch (err) {\n lastError = err instanceof Error ? err : new Error(String(err))\n if (attempt < retries) {\n const delay = BASE_DELAY * Math.pow(2, attempt) * (0.5 + Math.random() * 0.5)\n await new Promise(r => setTimeout(r, delay))\n }\n }\n }\n\n throw lastError || new Error(`Request failed: ${path}`)\n}\n\nasync function handleResponse<T>(response: Response): Promise<T> {\n if (response.status === 204) {\n return undefined as T\n }\n const contentType = response.headers.get('content-type') || ''\n if (contentType.includes('application/json')) {\n const data = await response.json()\n if (!response.ok) {\n const message = data?.error?.message || data?.message || `HTTP ${response.status}`\n throw new ApiError(message, response.status, data?.error)\n }\n return data as T\n }\n if (!response.ok) {\n const text = await response.text()\n throw new ApiError(text || `HTTP ${response.status}`, response.status)\n }\n const text = await response.text()\n return text as unknown as T\n}\n\nexport class ApiError extends Error {\n constructor(\n message: string,\n public status: number,\n public details?: unknown,\n ) {\n super(message)\n this.name = 'ApiError'\n }\n}\n\nexport async function apiGet<T>(path: string, options?: RequestOptions): Promise<T> {\n return apiRequest<T>(path, { ...options, method: 'GET' })\n}\n\nexport async function apiPost<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T> {\n return apiRequest<T>(path, { ...options, method: 'POST', body })\n}\n\nexport async function apiPut<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T> {\n return apiRequest<T>(path, { ...options, method: 'PUT', body })\n}\n\nexport async function apiDelete<T>(path: string, options?: RequestOptions): Promise<T> {\n return apiRequest<T>(path, { ...options, method: 'DELETE' })\n}\n\nexport async function apiUpload<T>(path: string, formData: FormData, options?: RequestOptions): Promise<T> {\n const { method = 'POST', headers = {}, authenticated = false } = options || {}\n\n const reqHeaders: Record<string, string> = {\n ...headers,\n }\n\n if (authenticated) {\n const session = await loadSession()\n if (session?.api_key) {\n reqHeaders['x-squidcloud-key'] = session.api_key\n }\n }\n\n const url = `${API_BASE}${path}`\n const response = await fetch(url, {\n method,\n headers: reqHeaders,\n body: formData,\n })\n\n return handleResponse<T>(response)\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {createHash}from'crypto';import e from'os';import n,{existsSync,readFileSync}from'fs';import {blake3}from'@noble/hashes/blake3';import {etc}from'@noble/ed25519';import'@noble/curves/ed25519.js';import {sha256}from'@noble/hashes/sha256';import {sha512}from'@noble/hashes/sha512';import'@noble/hashes/hmac';import {hkdf}from'@noble/hashes/hkdf';import {concatBytes,randomBytes}from'@noble/hashes/utils';import {gcm}from'@noble/ciphers/aes';import y from'path';etc.sha512Sync=(...t)=>sha512(concatBytes(...t));function o(t){return Buffer.from(t).toString("hex")}function p(t){return new Uint8Array(Buffer.from(t,"hex"))}var B=["/etc/machine-id","/var/lib/dbus/machine-id","/etc/hostid"];function q(){for(let r of B)try{if(existsSync(r))return readFileSync(r,"utf-8").trim()}catch{continue}return createHash("sha256").update(e.hostname()+e.arch()+e.platform()).digest("hex")}function f(){let i=[q(),e.hostname(),e.platform(),e.arch(),e.release()].join(":");return o(blake3(i))}var m=y.join(e.homedir(),".squidcloud"),s=y.join(m,".session");function g(){let t=f(),r=new TextEncoder().encode(t);return hkdf(sha256,r,new Uint8Array(32),"squidcloud-fallback-v1",32)}async function l(t){let r=g(),i=randomBytes(12),c=new TextEncoder().encode(t),u=gcm(r,i).encrypt(c);n.existsSync(m)||n.mkdirSync(m,{recursive:true,mode:448});let x={iv:o(i),data:o(u)};n.writeFileSync(s,JSON.stringify(x),{mode:384,encoding:"utf-8"});}async function S(){try{if(!n.existsSync(s))return null;let t=n.readFileSync(s,"utf-8"),{iv:r,data:i}=JSON.parse(t),c=g(),u=gcm(c,p(r)).decrypt(p(i));return new TextDecoder().decode(u)}catch{return null}}async function a(){try{n.existsSync(s)&&n.unlinkSync(s);}catch{}}async function wt(){try{let t=await S();if(!t)return null;let r=JSON.parse(t);return !r.session_id||!r.access_token?(await a(),null):r}catch{return await a(),null}}async function bt(t){await l(JSON.stringify(t));}async function kt(){await a();}function Bt(t){return t.expires_at-Date.now()<=12e4}function qt(t){return t.expires_at-Date.now()}export{f as a,wt as b,bt as c,kt as d,Bt as e,qt as f};//# sourceMappingURL=chunk-Q3A4IBGC.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-Q3A4IBGC.js.map
|