squidcloudctl 1.1.7 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. package/dist/{auth-revoke-UCNMKHTF.js → auth-revoke-DWV3OFW6.js} +2 -2
  2. package/dist/{auth-revoke-UCNMKHTF.js.map → auth-revoke-DWV3OFW6.js.map} +1 -1
  3. package/dist/auth-sessions-D4RWXFPE.js +2 -0
  4. package/dist/{auth-sessions-PIBWTIT5.js.map → auth-sessions-D4RWXFPE.js.map} +1 -1
  5. package/dist/auth-status-EPQU6F63.js +2 -0
  6. package/dist/{auth-status-RPJVTJ4S.js.map → auth-status-EPQU6F63.js.map} +1 -1
  7. package/dist/bin/squidcloud.js +2 -2
  8. package/dist/bin/squidcloud.js.map +1 -1
  9. package/dist/{chunk-6DKUVFZF.js → chunk-CHBVIZF5.js} +2 -2
  10. package/dist/{chunk-6DKUVFZF.js.map → chunk-CHBVIZF5.js.map} +1 -1
  11. package/dist/chunk-EMRHLWPD.js +3 -0
  12. package/dist/chunk-EMRHLWPD.js.map +1 -0
  13. package/dist/chunk-EPDVSZII.js +2 -0
  14. package/dist/chunk-EPDVSZII.js.map +1 -0
  15. package/dist/{chunk-THMWE2I6.js → chunk-FNCZD2QB.js} +2 -2
  16. package/dist/{chunk-THMWE2I6.js.map → chunk-FNCZD2QB.js.map} +1 -1
  17. package/dist/chunk-N3AD2QRA.js +2 -0
  18. package/dist/chunk-N3AD2QRA.js.map +1 -0
  19. package/dist/{chunk-2RMLR54M.js → chunk-Q3A4IBGC.js} +2 -2
  20. package/dist/chunk-Q3A4IBGC.js.map +1 -0
  21. package/dist/chunk-SCKQAF44.js +2 -0
  22. package/dist/{chunk-LWB2J3KU.js.map → chunk-SCKQAF44.js.map} +1 -1
  23. package/dist/{chunk-Z74H5ACJ.js → chunk-ULVQ53OO.js} +3 -3
  24. package/dist/{chunk-Z74H5ACJ.js.map → chunk-ULVQ53OO.js.map} +1 -1
  25. package/dist/{chunk-PSJQAIDB.js → chunk-UNA5CAPX.js} +2 -2
  26. package/dist/{chunk-PSJQAIDB.js.map → chunk-UNA5CAPX.js.map} +1 -1
  27. package/dist/client-IR7OHGEQ.js +2 -0
  28. package/dist/{client-MCQSJIGH.js.map → client-IR7OHGEQ.js.map} +1 -1
  29. package/dist/{collab-activity-ESSL2DUE.js → collab-activity-YOEJEJTQ.js} +2 -2
  30. package/dist/{collab-activity-ESSL2DUE.js.map → collab-activity-YOEJEJTQ.js.map} +1 -1
  31. package/dist/collab-invite-VDDBCLSH.js +2 -0
  32. package/dist/{collab-invite-H6KXMBJ5.js.map → collab-invite-VDDBCLSH.js.map} +1 -1
  33. package/dist/collab-leave-2AEIFR47.js +2 -0
  34. package/dist/{collab-leave-23J42V4P.js.map → collab-leave-2AEIFR47.js.map} +1 -1
  35. package/dist/collab-list-MTJYXE53.js +2 -0
  36. package/dist/{collab-list-6VNDTN7W.js.map → collab-list-MTJYXE53.js.map} +1 -1
  37. package/dist/collab-remove-I3FKGFOF.js +2 -0
  38. package/dist/{collab-remove-A76ARTWG.js.map → collab-remove-I3FKGFOF.js.map} +1 -1
  39. package/dist/collab-transfer-VVHH6B2J.js +2 -0
  40. package/dist/{collab-transfer-S5MECG6Y.js.map → collab-transfer-VVHH6B2J.js.map} +1 -1
  41. package/dist/config-PL34OPDL.js +2 -0
  42. package/dist/{config-7G24FXQJ.js.map → config-PL34OPDL.js.map} +1 -1
  43. package/dist/config-delete-4UN7BFBI.js +2 -0
  44. package/dist/{config-delete-VSIFFODZ.js.map → config-delete-4UN7BFBI.js.map} +1 -1
  45. package/dist/config-get-XOS7EWEQ.js +2 -0
  46. package/dist/{config-get-DDNSM5EH.js.map → config-get-XOS7EWEQ.js.map} +1 -1
  47. package/dist/config-reset-NIOGYFA5.js +2 -0
  48. package/dist/{config-reset-ZFMP4J5H.js.map → config-reset-NIOGYFA5.js.map} +1 -1
  49. package/dist/config-set-DRTRWWAA.js +2 -0
  50. package/dist/{config-set-O6JKOGGN.js.map → config-set-DRTRWWAA.js.map} +1 -1
  51. package/dist/deploy-UOPO2HHL.js +3 -0
  52. package/dist/{deploy-O7VVCVUR.js.map → deploy-UOPO2HHL.js.map} +1 -1
  53. package/dist/{doctor-GAUV36VS.js → doctor-B7RAWBD5.js} +2 -2
  54. package/dist/{doctor-GAUV36VS.js.map → doctor-B7RAWBD5.js.map} +1 -1
  55. package/dist/feedback-BEX6DRXB.js +3 -0
  56. package/dist/{feedback-QUGQAWZB.js.map → feedback-BEX6DRXB.js.map} +1 -1
  57. package/dist/forms-clear-VPH7SHJZ.js +2 -0
  58. package/dist/{forms-clear-TSQ4YFPW.js.map → forms-clear-VPH7SHJZ.js.map} +1 -1
  59. package/dist/forms-create-O5W7O2BI.js +2 -0
  60. package/dist/{forms-create-IJPDTTGR.js.map → forms-create-O5W7O2BI.js.map} +1 -1
  61. package/dist/forms-delete-H4RY6C64.js +2 -0
  62. package/dist/{forms-delete-5Q6JVOWZ.js.map → forms-delete-H4RY6C64.js.map} +1 -1
  63. package/dist/{forms-embed-RWJ4BAPQ.js → forms-embed-2WBFYFUO.js} +3 -3
  64. package/dist/{forms-embed-RWJ4BAPQ.js.map → forms-embed-2WBFYFUO.js.map} +1 -1
  65. package/dist/forms-export-MDWMZ7I7.js +2 -0
  66. package/dist/{forms-export-YGKJVRUD.js.map → forms-export-MDWMZ7I7.js.map} +1 -1
  67. package/dist/forms-info-VO4FK3CS.js +2 -0
  68. package/dist/{forms-info-NVNTIK45.js.map → forms-info-VO4FK3CS.js.map} +1 -1
  69. package/dist/forms-list-PDSDIJI7.js +2 -0
  70. package/dist/{forms-list-UDYVBNX5.js.map → forms-list-PDSDIJI7.js.map} +1 -1
  71. package/dist/forms-submissions-VJQWV7SI.js +2 -0
  72. package/dist/{forms-submissions-LFUTUDOW.js.map → forms-submissions-VJQWV7SI.js.map} +1 -1
  73. package/dist/login-PMDO43CL.js +3 -0
  74. package/dist/{login-PDECY435.js.map → login-PMDO43CL.js.map} +1 -1
  75. package/dist/logout-XIUWCA75.js +2 -0
  76. package/dist/{logout-D2GLIU2Y.js.map → logout-XIUWCA75.js.map} +1 -1
  77. package/dist/logs-export-AU4WZDLW.js +2 -0
  78. package/dist/{logs-export-76WAIPNB.js.map → logs-export-AU4WZDLW.js.map} +1 -1
  79. package/dist/logs-search-BHVB3BIH.js +2 -0
  80. package/dist/{logs-search-MA3AWP4B.js.map → logs-search-BHVB3BIH.js.map} +1 -1
  81. package/dist/{logs-tail-2OMASMCD.js → logs-tail-YVFZLSC2.js} +3 -3
  82. package/dist/{logs-tail-2OMASMCD.js.map → logs-tail-YVFZLSC2.js.map} +1 -1
  83. package/dist/monitor-KLJ762WM.js +2 -0
  84. package/dist/{monitor-LZ7R5C3D.js.map → monitor-KLJ762WM.js.map} +1 -1
  85. package/dist/monitor-automations-B2NRWSFH.js +2 -0
  86. package/dist/{monitor-automations-AR7MS2PL.js.map → monitor-automations-B2NRWSFH.js.map} +1 -1
  87. package/dist/monitor-pipelines-2PNBET3B.js +2 -0
  88. package/dist/{monitor-pipelines-EASQLIQA.js.map → monitor-pipelines-2PNBET3B.js.map} +1 -1
  89. package/dist/{monitor-sites-2QIM4XJ3.js → monitor-sites-QNMTCOSH.js} +2 -2
  90. package/dist/{monitor-sites-2QIM4XJ3.js.map → monitor-sites-QNMTCOSH.js.map} +1 -1
  91. package/dist/monitor-storage-Z53C4CI2.js +2 -0
  92. package/dist/{monitor-storage-SMB32J37.js.map → monitor-storage-Z53C4CI2.js.map} +1 -1
  93. package/dist/scripts-cancel-2HWDUPFM.js +2 -0
  94. package/dist/{scripts-cancel-CQVIDKVW.js.map → scripts-cancel-2HWDUPFM.js.map} +1 -1
  95. package/dist/scripts-delete-UI6YRWEN.js +2 -0
  96. package/dist/{scripts-delete-TV4SX5OJ.js.map → scripts-delete-UI6YRWEN.js.map} +1 -1
  97. package/dist/scripts-disable-7IXFGWWG.js +2 -0
  98. package/dist/{scripts-disable-IHPUGSTJ.js.map → scripts-disable-7IXFGWWG.js.map} +1 -1
  99. package/dist/scripts-enable-DNEVMHLS.js +2 -0
  100. package/dist/{scripts-enable-ULCXRU7W.js.map → scripts-enable-DNEVMHLS.js.map} +1 -1
  101. package/dist/{scripts-init-AU6WNMKB.js → scripts-init-BIIEMUXV.js} +3 -3
  102. package/dist/{scripts-init-AU6WNMKB.js.map → scripts-init-BIIEMUXV.js.map} +1 -1
  103. package/dist/scripts-list-LYDOWRTU.js +2 -0
  104. package/dist/{scripts-list-XWNT7242.js.map → scripts-list-LYDOWRTU.js.map} +1 -1
  105. package/dist/scripts-logs-32CWQEBA.js +2 -0
  106. package/dist/{scripts-logs-YBF6MTMQ.js.map → scripts-logs-32CWQEBA.js.map} +1 -1
  107. package/dist/scripts-run-6AJVHB4U.js +2 -0
  108. package/dist/{scripts-run-FQ7EOXOH.js.map → scripts-run-6AJVHB4U.js.map} +1 -1
  109. package/dist/scripts-status-KCILW363.js +2 -0
  110. package/dist/{scripts-status-XYGHYRZB.js.map → scripts-status-KCILW363.js.map} +1 -1
  111. package/dist/scripts-validate-MZP4MJZZ.js +2 -0
  112. package/dist/{scripts-validate-T7CGIPPE.js.map → scripts-validate-MZP4MJZZ.js.map} +1 -1
  113. package/dist/scripts-watch-3SFVPUAA.js +2 -0
  114. package/dist/{scripts-watch-A7HEOAOE.js.map → scripts-watch-3SFVPUAA.js.map} +1 -1
  115. package/dist/sign-cancel-KK745O7W.js +2 -0
  116. package/dist/{sign-cancel-4YYJ2BBY.js.map → sign-cancel-KK745O7W.js.map} +1 -1
  117. package/dist/sign-download-6V3ABZG2.js +2 -0
  118. package/dist/{sign-download-VOMT2C3C.js.map → sign-download-6V3ABZG2.js.map} +1 -1
  119. package/dist/sign-list-VCNJSS6F.js +2 -0
  120. package/dist/{sign-list-SACY7XF3.js.map → sign-list-VCNJSS6F.js.map} +1 -1
  121. package/dist/sign-request-LNRMPU2F.js +2 -0
  122. package/dist/{sign-request-PM7BZ56P.js.map → sign-request-LNRMPU2F.js.map} +1 -1
  123. package/dist/sign-status-PNAGMC7S.js +2 -0
  124. package/dist/{sign-status-LRQGO2UX.js.map → sign-status-PNAGMC7S.js.map} +1 -1
  125. package/dist/sign-verify-ZROVA7LH.js +2 -0
  126. package/dist/{sign-verify-PQ7HBHTY.js.map → sign-verify-ZROVA7LH.js.map} +1 -1
  127. package/dist/sites-analytics-L6KVTZNH.js +2 -0
  128. package/dist/{sites-analytics-J5BMYBO5.js.map → sites-analytics-L6KVTZNH.js.map} +1 -1
  129. package/dist/sites-delete-JCBOLOA7.js +2 -0
  130. package/dist/{sites-delete-BYUJAMSX.js.map → sites-delete-JCBOLOA7.js.map} +1 -1
  131. package/dist/sites-deploys-XJ3NY4RQ.js +2 -0
  132. package/dist/{sites-deploys-XJQHVTET.js.map → sites-deploys-XJ3NY4RQ.js.map} +1 -1
  133. package/dist/sites-info-V3R7YNPU.js +2 -0
  134. package/dist/{sites-info-JBM5C5FT.js.map → sites-info-V3R7YNPU.js.map} +1 -1
  135. package/dist/sites-list-ZQTXLHJ3.js +2 -0
  136. package/dist/{sites-list-4AIOO76P.js.map → sites-list-ZQTXLHJ3.js.map} +1 -1
  137. package/dist/{sites-logs-GZALCIBX.js → sites-logs-AYG43HQV.js} +3 -3
  138. package/dist/{sites-logs-GZALCIBX.js.map → sites-logs-AYG43HQV.js.map} +1 -1
  139. package/dist/sites-open-K2JWMIWD.js +3 -0
  140. package/dist/{sites-open-QJOKIMGM.js.map → sites-open-K2JWMIWD.js.map} +1 -1
  141. package/dist/sites-purge-5Y5AQWBY.js +2 -0
  142. package/dist/{sites-purge-GXD673E2.js.map → sites-purge-5Y5AQWBY.js.map} +1 -1
  143. package/dist/sites-rename-QH6YYXUE.js +2 -0
  144. package/dist/{sites-rename-BTQZRAVA.js.map → sites-rename-QH6YYXUE.js.map} +1 -1
  145. package/dist/sites-rollback-ZQ2IHERR.js +2 -0
  146. package/dist/{sites-rollback-LZUUU4ZU.js.map → sites-rollback-ZQ2IHERR.js.map} +1 -1
  147. package/dist/sites-unpublish-MDK4GP2C.js +2 -0
  148. package/dist/{sites-unpublish-IB7BTNJC.js.map → sites-unpublish-MDK4GP2C.js.map} +1 -1
  149. package/dist/sites-visibility-WKPIU5OK.js +2 -0
  150. package/dist/{sites-visibility-I7PIUX4B.js.map → sites-visibility-WKPIU5OK.js.map} +1 -1
  151. package/dist/storage-cat-OAUEF3EE.js +2 -0
  152. package/dist/{storage-cat-CFOIZEJS.js.map → storage-cat-OAUEF3EE.js.map} +1 -1
  153. package/dist/storage-clean-I7QZ5FR6.js +2 -0
  154. package/dist/{storage-clean-6EN2KMOC.js.map → storage-clean-I7QZ5FR6.js.map} +1 -1
  155. package/dist/storage-cp-H36Q2ER4.js +2 -0
  156. package/dist/{storage-cp-SCF3CFS2.js.map → storage-cp-H36Q2ER4.js.map} +1 -1
  157. package/dist/storage-diff-6KUEJ4DB.js +2 -0
  158. package/dist/{storage-diff-MYW5AM3C.js.map → storage-diff-6KUEJ4DB.js.map} +1 -1
  159. package/dist/storage-download-32EYGI47.js +3 -0
  160. package/dist/storage-download-32EYGI47.js.map +1 -0
  161. package/dist/storage-info-2JSV56KE.js +2 -0
  162. package/dist/{storage-info-BV7VXGTF.js.map → storage-info-2JSV56KE.js.map} +1 -1
  163. package/dist/storage-ls-G33T3LMU.js +3 -0
  164. package/dist/{storage-ls-HIVJWOV6.js.map → storage-ls-G33T3LMU.js.map} +1 -1
  165. package/dist/storage-mkdir-BDT3GX7A.js +2 -0
  166. package/dist/{storage-mkdir-GRKUOWAJ.js.map → storage-mkdir-BDT3GX7A.js.map} +1 -1
  167. package/dist/storage-mv-2QJZR2FL.js +2 -0
  168. package/dist/{storage-mv-RYW5TXAH.js.map → storage-mv-2QJZR2FL.js.map} +1 -1
  169. package/dist/storage-rm-NRRRFG36.js +2 -0
  170. package/dist/{storage-rm-PLBQC4ED.js.map → storage-rm-NRRRFG36.js.map} +1 -1
  171. package/dist/storage-search-E5BIXLSU.js +2 -0
  172. package/dist/{storage-search-EKYRVCY2.js.map → storage-search-E5BIXLSU.js.map} +1 -1
  173. package/dist/storage-share-EXSSZ6XL.js +2 -0
  174. package/dist/{storage-share-OENZM4QY.js.map → storage-share-EXSSZ6XL.js.map} +1 -1
  175. package/dist/storage-tag-YV5GUZDV.js +2 -0
  176. package/dist/{storage-tag-7XTICDCD.js.map → storage-tag-YV5GUZDV.js.map} +1 -1
  177. package/dist/storage-unshare-MF4V2NGC.js +2 -0
  178. package/dist/{storage-unshare-6G6YPRPN.js.map → storage-unshare-MF4V2NGC.js.map} +1 -1
  179. package/dist/storage-upload-DYWSZ6RO.js +9 -0
  180. package/dist/storage-upload-DYWSZ6RO.js.map +1 -0
  181. package/dist/time-list-4T3FJE2I.js +2 -0
  182. package/dist/{time-list-HUWDZZ27.js.map → time-list-4T3FJE2I.js.map} +1 -1
  183. package/dist/time-lock-O55XMYPX.js +2 -0
  184. package/dist/{time-lock-MZ6C6DMR.js.map → time-lock-O55XMYPX.js.map} +1 -1
  185. package/dist/time-proof-SDANSS3D.js +2 -0
  186. package/dist/{time-proof-G6IX5SMS.js.map → time-proof-SDANSS3D.js.map} +1 -1
  187. package/dist/time-status-JFJA3MYK.js +2 -0
  188. package/dist/{time-status-UJ3XY3R5.js.map → time-status-JFJA3MYK.js.map} +1 -1
  189. package/dist/time-unlock-F7NGQ2IE.js +2 -0
  190. package/dist/{time-unlock-3TUR2KVC.js.map → time-unlock-F7NGQ2IE.js.map} +1 -1
  191. package/dist/update-5PTOF5ZA.js +2 -0
  192. package/dist/{update-DOHW47PB.js.map → update-5PTOF5ZA.js.map} +1 -1
  193. package/dist/{version-XQNUJ474.js → version-Y2LWIEFC.js} +2 -2
  194. package/dist/{version-XQNUJ474.js.map → version-Y2LWIEFC.js.map} +1 -1
  195. package/dist/whoami-BGMVNESX.js +2 -0
  196. package/dist/{whoami-C4LPZU6R.js.map → whoami-BGMVNESX.js.map} +1 -1
  197. package/package.json +1 -1
  198. package/dist/auth-sessions-PIBWTIT5.js +0 -2
  199. package/dist/auth-status-RPJVTJ4S.js +0 -2
  200. package/dist/chunk-2RMLR54M.js.map +0 -1
  201. package/dist/chunk-FZKCZRJZ.js +0 -2
  202. package/dist/chunk-FZKCZRJZ.js.map +0 -1
  203. package/dist/chunk-LWB2J3KU.js +0 -2
  204. package/dist/chunk-QT7R3AXE.js +0 -3
  205. package/dist/chunk-QT7R3AXE.js.map +0 -1
  206. package/dist/client-MCQSJIGH.js +0 -2
  207. package/dist/collab-invite-H6KXMBJ5.js +0 -2
  208. package/dist/collab-leave-23J42V4P.js +0 -2
  209. package/dist/collab-list-6VNDTN7W.js +0 -2
  210. package/dist/collab-remove-A76ARTWG.js +0 -2
  211. package/dist/collab-transfer-S5MECG6Y.js +0 -2
  212. package/dist/config-7G24FXQJ.js +0 -2
  213. package/dist/config-delete-VSIFFODZ.js +0 -2
  214. package/dist/config-get-DDNSM5EH.js +0 -2
  215. package/dist/config-reset-ZFMP4J5H.js +0 -2
  216. package/dist/config-set-O6JKOGGN.js +0 -2
  217. package/dist/deploy-O7VVCVUR.js +0 -3
  218. package/dist/feedback-QUGQAWZB.js +0 -3
  219. package/dist/forms-clear-TSQ4YFPW.js +0 -2
  220. package/dist/forms-create-IJPDTTGR.js +0 -2
  221. package/dist/forms-delete-5Q6JVOWZ.js +0 -2
  222. package/dist/forms-export-YGKJVRUD.js +0 -2
  223. package/dist/forms-info-NVNTIK45.js +0 -2
  224. package/dist/forms-list-UDYVBNX5.js +0 -2
  225. package/dist/forms-submissions-LFUTUDOW.js +0 -2
  226. package/dist/login-PDECY435.js +0 -3
  227. package/dist/logout-D2GLIU2Y.js +0 -2
  228. package/dist/logs-export-76WAIPNB.js +0 -2
  229. package/dist/logs-search-MA3AWP4B.js +0 -2
  230. package/dist/monitor-LZ7R5C3D.js +0 -2
  231. package/dist/monitor-automations-AR7MS2PL.js +0 -2
  232. package/dist/monitor-pipelines-EASQLIQA.js +0 -2
  233. package/dist/monitor-storage-SMB32J37.js +0 -2
  234. package/dist/scripts-cancel-CQVIDKVW.js +0 -2
  235. package/dist/scripts-delete-TV4SX5OJ.js +0 -2
  236. package/dist/scripts-disable-IHPUGSTJ.js +0 -2
  237. package/dist/scripts-enable-ULCXRU7W.js +0 -2
  238. package/dist/scripts-list-XWNT7242.js +0 -2
  239. package/dist/scripts-logs-YBF6MTMQ.js +0 -2
  240. package/dist/scripts-run-FQ7EOXOH.js +0 -2
  241. package/dist/scripts-status-XYGHYRZB.js +0 -2
  242. package/dist/scripts-validate-T7CGIPPE.js +0 -2
  243. package/dist/scripts-watch-A7HEOAOE.js +0 -2
  244. package/dist/session-FBC5MGFA.js +0 -2
  245. package/dist/session-FBC5MGFA.js.map +0 -1
  246. package/dist/sign-cancel-4YYJ2BBY.js +0 -2
  247. package/dist/sign-download-VOMT2C3C.js +0 -2
  248. package/dist/sign-list-SACY7XF3.js +0 -2
  249. package/dist/sign-request-PM7BZ56P.js +0 -2
  250. package/dist/sign-status-LRQGO2UX.js +0 -2
  251. package/dist/sign-verify-PQ7HBHTY.js +0 -2
  252. package/dist/sites-analytics-J5BMYBO5.js +0 -2
  253. package/dist/sites-delete-BYUJAMSX.js +0 -2
  254. package/dist/sites-deploys-XJQHVTET.js +0 -2
  255. package/dist/sites-info-JBM5C5FT.js +0 -2
  256. package/dist/sites-list-4AIOO76P.js +0 -2
  257. package/dist/sites-open-QJOKIMGM.js +0 -3
  258. package/dist/sites-purge-GXD673E2.js +0 -2
  259. package/dist/sites-rename-BTQZRAVA.js +0 -2
  260. package/dist/sites-rollback-LZUUU4ZU.js +0 -2
  261. package/dist/sites-unpublish-IB7BTNJC.js +0 -2
  262. package/dist/sites-visibility-I7PIUX4B.js +0 -2
  263. package/dist/storage-cat-CFOIZEJS.js +0 -2
  264. package/dist/storage-clean-6EN2KMOC.js +0 -2
  265. package/dist/storage-cp-SCF3CFS2.js +0 -2
  266. package/dist/storage-diff-MYW5AM3C.js +0 -2
  267. package/dist/storage-download-6EQJJ7SO.js +0 -3
  268. package/dist/storage-download-6EQJJ7SO.js.map +0 -1
  269. package/dist/storage-info-BV7VXGTF.js +0 -2
  270. package/dist/storage-ls-HIVJWOV6.js +0 -3
  271. package/dist/storage-mkdir-GRKUOWAJ.js +0 -2
  272. package/dist/storage-mv-RYW5TXAH.js +0 -2
  273. package/dist/storage-rm-PLBQC4ED.js +0 -2
  274. package/dist/storage-search-EKYRVCY2.js +0 -2
  275. package/dist/storage-share-OENZM4QY.js +0 -2
  276. package/dist/storage-tag-7XTICDCD.js +0 -2
  277. package/dist/storage-unshare-6G6YPRPN.js +0 -2
  278. package/dist/storage-upload-HW4QAENK.js +0 -2
  279. package/dist/storage-upload-HW4QAENK.js.map +0 -1
  280. package/dist/time-list-HUWDZZ27.js +0 -2
  281. package/dist/time-lock-MZ6C6DMR.js +0 -2
  282. package/dist/time-proof-G6IX5SMS.js +0 -2
  283. package/dist/time-status-UJ3XY3R5.js +0 -2
  284. package/dist/time-unlock-3TUR2KVC.js +0 -2
  285. package/dist/update-DOHW47PB.js +0 -2
  286. 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-6DKUVFZF.js';import'./chunk-NDB6KXYI.js';import'./chunk-Z74H5ACJ.js';import'./chunk-THMWE2I6.js';import {g}from'./chunk-QT7R3AXE.js';import {d as d$1}from'./chunk-2RMLR54M.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-UCNMKHTF.js.map
2
- //# sourceMappingURL=auth-revoke-UCNMKHTF.js.map
1
+ import {a as a$1}from'./chunk-UNA5CAPX.js';import {d}from'./chunk-CHBVIZF5.js';import'./chunk-NDB6KXYI.js';import'./chunk-ULVQ53OO.js';import'./chunk-FNCZD2QB.js';import {h}from'./chunk-EMRHLWPD.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(),h("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(),h(`Session ${e.session} revoked`);return}console.error("Specify --session <id> or --all"),process.exit(1);}export{c as default};//# sourceMappingURL=auth-revoke-DWV3OFW6.js.map
2
+ //# sourceMappingURL=auth-revoke-DWV3OFW6.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-UCNMKHTF.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
+ {"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-DWV3OFW6.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"]}
@@ -0,0 +1,2 @@
1
+ import {c as c$1,d}from'./chunk-N3AD2QRA.js';import {c}from'./chunk-CHBVIZF5.js';import'./chunk-NDB6KXYI.js';import'./chunk-ULVQ53OO.js';import {a}from'./chunk-FNCZD2QB.js';import'./chunk-EMRHLWPD.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:d(e.last_seen),created:c$1(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-D4RWXFPE.js.map
2
+ //# sourceMappingURL=auth-sessions-D4RWXFPE.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-PIBWTIT5.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"]}
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,EAAeD,CAAAA,CAAE,SAAS,EACrC,OAAA,CAASE,GAAAA,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-D4RWXFPE.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 {e as e$1}from'./chunk-N3AD2QRA.js';import {i,g,n,m}from'./chunk-EMRHLWPD.js';import {b,a,f}from'./chunk-Q3A4IBGC.js';import e from'chalk';async function u(){let i$1=await b();i$1||(i("Not authenticated"),process.exit(1));let f$1=a(),t=i$1.device_fingerprint===f$1,o=f(i$1),s=o<=120*1e3;if(g()){n({authenticated:true,session_id:i$1.session_id,expires_in_ms:o,fingerprint_match:t,needs_refresh:s,user:i$1.user});return}m(""),m(`${e.bold("Session Health")}`),m(`${e.dim("\u2500\u2500\u2500".repeat(15))}`),m(` ${e.bold("Session ID:")} ${e.dim(i$1.session_id)}`),m(` ${e.bold("User:")} ${i$1.user.email} (${i$1.user.username})`),m(` ${e.bold("Plan:")} ${e.hex("#7C4DFF")(i$1.user.plan)}`),m(` ${e.bold("Expires:")} ${o>0?e$1(o):e.red("expired")}`),m(` ${e.bold("Fingerprint:")} ${t?e.green("\u2713 match"):e.red("\u2717 mismatch")}`),m(` ${e.bold("Refresh:")} ${s?e.yellow("needed soon"):e.green("ok")}`),m("");}export{u as default};//# sourceMappingURL=auth-status-EPQU6F63.js.map
2
+ //# sourceMappingURL=auth-status-EPQU6F63.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":"2IAOA,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,GAAW,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-RPJVTJ4S.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"]}
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,IAAU,MAAMC,CAAAA,GACjBD,GAAAA,GACHE,CAAAA,CAAS,mBAAmB,CAAA,CAC5B,OAAA,CAAQ,KAAK,CAAC,CAAA,CAAA,CAGhB,IAAMC,GAAAA,CAAqBC,CAAAA,EAAyB,CAC9CC,CAAAA,CAAmBL,IAAQ,kBAAA,GAAuBG,GAAAA,CAClDG,EAAWC,CAAAA,CAAmBP,GAAO,EACrCQ,CAAAA,CAAeF,CAAAA,EAAY,IAAS,GAAA,CAE1C,GAAIG,GAAW,CAAG,CAChBC,EAAQ,CACN,aAAA,CAAe,KACf,UAAA,CAAYV,GAAAA,CAAQ,UAAA,CACpB,aAAA,CAAeM,EACf,iBAAA,CAAmBD,CAAAA,CACnB,cAAeG,CAAAA,CACf,IAAA,CAAMR,IAAQ,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,GAAAA,CAAQ,UAAU,CAAC,CAAA,CAAE,EAC3EW,CAAAA,CAAO,CAAA,EAAA,EAAKC,EAAM,IAAA,CAAK,OAAO,CAAC,CAAA,UAAA,EAAaZ,GAAAA,CAAQ,KAAK,KAAK,CAAA,EAAA,EAAKA,IAAQ,IAAA,CAAK,QAAQ,GAAG,CAAA,CAC3FW,CAAAA,CAAO,KAAKC,CAAAA,CAAM,IAAA,CAAK,OAAO,CAAC,CAAA,UAAA,EAAaA,EAAM,GAAA,CAAI,SAAS,EAAEZ,GAAAA,CAAQ,IAAA,CAAK,IAAI,CAAC,CAAA,CAAE,EACrFW,CAAAA,CAAO,CAAA,EAAA,EAAKC,EAAM,IAAA,CAAK,UAAU,CAAC,CAAA,OAAA,EAAUN,CAAAA,CAAW,EAAIO,GAAAA,CAAgBP,CAAQ,CAAA,CAAIM,CAAAA,CAAM,IAAI,SAAS,CAAC,EAAE,CAAA,CAC7GD,CAAAA,CAAO,KAAKC,CAAAA,CAAM,IAAA,CAAK,cAAc,CAAC,CAAA,GAAA,EAAMP,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-EPQU6F63.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"]}
@@ -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,f}from'../chunk-2RMLR54M.js';import {readFileSync}from'fs';import {dirname,resolve}from'path';import {fileURLToPath}from'url';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-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 [...A]}var x=dirname(fileURLToPath(import.meta.url)),y=JSON.parse(readFileSync(resolve(x,"../../package.json"),"utf-8")),p=new Command;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();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 D(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 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(""),p.outputHelp();return}let s=v();D(s),p.addHelpText("beforeAll",`
3
- `),await p.parseAsync(process.argv);}R().catch(e=>{h(e instanceof Error?e.message:String(e)),process.exit(1);});//# sourceMappingURL=squidcloud.js.map
2
+ import'../chunk-UNA5CAPX.js';import {a}from'../chunk-ULVQ53OO.js';import'../chunk-FNCZD2QB.js';import {f as f$1,e,i,o}from'../chunk-EMRHLWPD.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-PMDO43CL.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-XIUWCA75.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-BGMVNESX.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-EPQU6F63.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-D4RWXFPE.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-DWV3OFW6.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-G33T3LMU.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-DYWSZ6RO.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-32EYGI47.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-H36Q2ER4.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-2QJZR2FL.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-NRRRFG36.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-BDT3GX7A.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-OAUEF3EE.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-2JSV56KE.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-EXSSZ6XL.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-MF4V2NGC.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-YV5GUZDV.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-E5BIXLSU.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-6KUEJ4DB.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-I7QZ5FR6.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-UOPO2HHL.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-ZQTXLHJ3.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-V3R7YNPU.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-K2JWMIWD.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-MDK4GP2C.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-JCBOLOA7.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-WKPIU5OK.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-QH6YYXUE.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-ZQ2IHERR.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-XJ3NY4RQ.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-L6KVTZNH.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-5Y5AQWBY.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-LYDOWRTU.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-6AJVHB4U.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-32CWQEBA.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-MZP4MJZZ.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-BIIEMUXV.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-DNEVMHLS.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-7IXFGWWG.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-UI6YRWEN.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-KCILW363.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-2HWDUPFM.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-3SFVPUAA.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-PDSDIJI7.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-O5W7O2BI.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-VO4FK3CS.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-VJQWV7SI.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-MDWMZ7I7.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-VPH7SHJZ.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-H4RY6C64.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-O55XMYPX.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-F7NGQ2IE.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-JFJA3MYK.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-4T3FJE2I.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-SDANSS3D.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-VDDBCLSH.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-MTJYXE53.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-I3FKGFOF.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-2AEIFR47.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-VVHH6B2J.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-LNRMPU2F.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-PNAGMC7S.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-VCNJSS6F.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-KK745O7W.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-ZROVA7LH.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-6V3ABZG2.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-KLJ762WM.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-QNMTCOSH.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-2PNBET3B.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-Z53C4CI2.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-B2NRWSFH.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-BHVB3BIH.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-AU4WZDLW.js')},{name:"doctor",aliases:[],description:"Run system diagnostics",requiresAuth:false,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"utility",handler:()=>import('../doctor-B7RAWBD5.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-Y2LWIEFC.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-PL34OPDL.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-DRTRWWAA.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-XOS7EWEQ.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-4UN7BFBI.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-NIOGYFA5.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-BEX6DRXB.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-5PTOF5ZA.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"&&f$1(true),e()&&f$1(false);});async function A(e){if(!e.requiresAuth)return;let a$1=await b();a$1||(i("Not authenticated. Run `squidcloud login` first."),process.exit(1)),e$1(a$1)&&(await a()||(i("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$1=f.command(r);i$1.description(t.description),i$1.arguments("[args...]"),t.aliases.length>0&&i$1.aliases(t.aliases),i$1.action(async(...o$1)=>{try{await A(t);let n=await t.handler();if(typeof n.default=="function"){let s=o$1.slice(0,-2);s.length===1&&Array.isArray(s[0])&&(s=s[0]),await n.default(...s);}o(t.name,process.argv.slice(2).join(" "),0);}catch(n){let s=n instanceof Error?n.message:String(n);i(s),o(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$1,o$1]of l){let n=`${r} ${i$1}`,s=t.command(i$1);s.description(o$1.description),s.arguments("[args...]"),o$1.aliases.length>0&&s.aliases(o$1.aliases.map(m=>m.replace(`${r} `,""))),s.action(async(...m)=>{try{await A(o$1);let c=await o$1.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);}o(n,process.argv.slice(2).join(" "),0);}catch(c){let u=c instanceof Error?c.message:String(c);i(u),o(n,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-Y2LWIEFC.js');await r();return}if(e.length===0&&!e.includes("--help")&&!e.includes("-h")){let{showVersion:r}=await import('../version-Y2LWIEFC.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=>{i(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","__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 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-Z74H5ACJ.js';import {b}from'./chunk-2RMLR54M.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-6DKUVFZF.js.map
2
- //# sourceMappingURL=chunk-6DKUVFZF.js.map
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-6DKUVFZF.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
+ {"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"]}
@@ -0,0 +1,3 @@
1
+ import o from'chalk';import l from'gradient-string';import C from'os';import g from'fs';import $ from'path';var d=l(["#4FC3F7","#7C4DFF"]);l(["#1a5276","#4a148c"]);var x=d("\u25C6"),c=o.hex("#4CAF50")("\u2713"),u=o.hex("#F44336")("\u2717"),f=o.hex("#FF9800")("\u26A0"),p=o.hex("#4FC3F7")("\u2139"),O=o.hex("#7C4DFF")("\u25B8");function N(r){return d(r)}function F(r){return o.dim(r)}function h(r){return F("(copied to clipboard)")}function t(){return !!(process.env.CI||process.env.GITHUB_ACTIONS||process.env.GITLAB_CI||process.env.CIRCLECI||process.env.TRAVIS||process.env.JENKINS_HOME)}var n=false;function D(r){n=r;}function B(){return n}function i(){return o.dim(`[${new Date().toISOString()}]`)}function G(r){if(n){console.log(JSON.stringify({level:"success",message:r}));return}t()?console.log(`${i()} ${c} ${r}`):console.log(`${c} ${o.green(r)}`);}function L(r){if(n){console.error(JSON.stringify({error:{message:r}}));return}t()?console.error(`${i()} ${u} ${o.red(r)}`):console.error(`${u} ${o.red(r)}`);}function k(r){n||(t()?console.warn(`${i()} ${f} ${o.hex("#FF9800")(r)}`):console.warn(`${f} ${o.hex("#FF9800")(r)}`));}function j(r){n||(t()?console.log(`${i()} ${p} ${o.hex("#4FC3F7")(r)}`):console.log(`${p} ${o.hex("#4FC3F7")(r)}`));}function H(r){n||console.log(`${x} ${r}`);}function U(r){n||console.log(r);}function W(r){n&&console.log(JSON.stringify(r));}function q(r,a,R){let s=$.join(C.homedir(),".squidcloud"),S=$.join(s,"audit.log"),v=JSON.stringify({timestamp:new Date().toISOString(),command:r,args:a,exitCode:R,pid:process.pid})+`
2
+ `;try{g.existsSync(s)||g.mkdirSync(s,{recursive:!0,mode:448}),g.appendFileSync(S,v,{encoding:"utf-8"});}catch{}}export{O as a,N as b,F as c,h as d,t as e,D as f,B as g,G as h,L as i,k as j,j as k,H as l,U as m,W as n,q as o};//# sourceMappingURL=chunk-EMRHLWPD.js.map
3
+ //# sourceMappingURL=chunk-EMRHLWPD.js.map