squidcloudctl 1.1.8 → 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 (250) hide show
  1. package/dist/{auth-revoke-6YX7LBWB.js → auth-revoke-DWV3OFW6.js} +2 -2
  2. package/dist/{auth-revoke-6YX7LBWB.js.map → auth-revoke-DWV3OFW6.js.map} +1 -1
  3. package/dist/{auth-sessions-2A63NMIW.js → auth-sessions-D4RWXFPE.js} +2 -2
  4. package/dist/{auth-sessions-2A63NMIW.js.map → auth-sessions-D4RWXFPE.js.map} +1 -1
  5. package/dist/auth-status-EPQU6F63.js +2 -0
  6. package/dist/{auth-status-AOV7GJLX.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-EMRHLWPD.js +3 -0
  10. package/dist/chunk-EMRHLWPD.js.map +1 -0
  11. package/dist/chunk-EPDVSZII.js +2 -0
  12. package/dist/chunk-EPDVSZII.js.map +1 -0
  13. package/dist/{chunk-THMWE2I6.js → chunk-FNCZD2QB.js} +2 -2
  14. package/dist/{chunk-THMWE2I6.js.map → chunk-FNCZD2QB.js.map} +1 -1
  15. package/dist/chunk-N3AD2QRA.js +2 -0
  16. package/dist/chunk-N3AD2QRA.js.map +1 -0
  17. package/dist/chunk-SCKQAF44.js +2 -0
  18. package/dist/{chunk-LWB2J3KU.js.map → chunk-SCKQAF44.js.map} +1 -1
  19. package/dist/{chunk-PSJQAIDB.js → chunk-UNA5CAPX.js} +2 -2
  20. package/dist/{chunk-PSJQAIDB.js.map → chunk-UNA5CAPX.js.map} +1 -1
  21. package/dist/{collab-invite-6TN62APL.js → collab-invite-VDDBCLSH.js} +2 -2
  22. package/dist/{collab-invite-6TN62APL.js.map → collab-invite-VDDBCLSH.js.map} +1 -1
  23. package/dist/{collab-leave-RY2ULFWC.js → collab-leave-2AEIFR47.js} +2 -2
  24. package/dist/{collab-leave-RY2ULFWC.js.map → collab-leave-2AEIFR47.js.map} +1 -1
  25. package/dist/collab-list-MTJYXE53.js +2 -0
  26. package/dist/{collab-list-M4T5NTDC.js.map → collab-list-MTJYXE53.js.map} +1 -1
  27. package/dist/collab-remove-I3FKGFOF.js +2 -0
  28. package/dist/{collab-remove-BUD6VVD5.js.map → collab-remove-I3FKGFOF.js.map} +1 -1
  29. package/dist/{collab-transfer-R5IDVZAX.js → collab-transfer-VVHH6B2J.js} +2 -2
  30. package/dist/{collab-transfer-R5IDVZAX.js.map → collab-transfer-VVHH6B2J.js.map} +1 -1
  31. package/dist/config-PL34OPDL.js +2 -0
  32. package/dist/{config-7G24FXQJ.js.map → config-PL34OPDL.js.map} +1 -1
  33. package/dist/config-delete-4UN7BFBI.js +2 -0
  34. package/dist/{config-delete-VSIFFODZ.js.map → config-delete-4UN7BFBI.js.map} +1 -1
  35. package/dist/config-get-XOS7EWEQ.js +2 -0
  36. package/dist/{config-get-DDNSM5EH.js.map → config-get-XOS7EWEQ.js.map} +1 -1
  37. package/dist/config-reset-NIOGYFA5.js +2 -0
  38. package/dist/{config-reset-ZFMP4J5H.js.map → config-reset-NIOGYFA5.js.map} +1 -1
  39. package/dist/config-set-DRTRWWAA.js +2 -0
  40. package/dist/{config-set-O6JKOGGN.js.map → config-set-DRTRWWAA.js.map} +1 -1
  41. package/dist/deploy-UOPO2HHL.js +3 -0
  42. package/dist/{deploy-QKTIRD5U.js.map → deploy-UOPO2HHL.js.map} +1 -1
  43. package/dist/{doctor-2BGIPUMM.js → doctor-B7RAWBD5.js} +2 -2
  44. package/dist/{doctor-2BGIPUMM.js.map → doctor-B7RAWBD5.js.map} +1 -1
  45. package/dist/feedback-BEX6DRXB.js +3 -0
  46. package/dist/{feedback-QUGQAWZB.js.map → feedback-BEX6DRXB.js.map} +1 -1
  47. package/dist/{forms-clear-VTF3BEG4.js → forms-clear-VPH7SHJZ.js} +2 -2
  48. package/dist/{forms-clear-VTF3BEG4.js.map → forms-clear-VPH7SHJZ.js.map} +1 -1
  49. package/dist/forms-create-O5W7O2BI.js +2 -0
  50. package/dist/{forms-create-EGWXMYTW.js.map → forms-create-O5W7O2BI.js.map} +1 -1
  51. package/dist/{forms-delete-V7SEUFPO.js → forms-delete-H4RY6C64.js} +2 -2
  52. package/dist/{forms-delete-V7SEUFPO.js.map → forms-delete-H4RY6C64.js.map} +1 -1
  53. package/dist/{forms-export-DTHYLUF3.js → forms-export-MDWMZ7I7.js} +2 -2
  54. package/dist/{forms-export-DTHYLUF3.js.map → forms-export-MDWMZ7I7.js.map} +1 -1
  55. package/dist/forms-info-VO4FK3CS.js +2 -0
  56. package/dist/{forms-info-KAMWLIOA.js.map → forms-info-VO4FK3CS.js.map} +1 -1
  57. package/dist/forms-list-PDSDIJI7.js +2 -0
  58. package/dist/{forms-list-5JU4JWVU.js.map → forms-list-PDSDIJI7.js.map} +1 -1
  59. package/dist/forms-submissions-VJQWV7SI.js +2 -0
  60. package/dist/{forms-submissions-U3YD6CC7.js.map → forms-submissions-VJQWV7SI.js.map} +1 -1
  61. package/dist/login-PMDO43CL.js +3 -0
  62. package/dist/{login-ANJQFQDO.js.map → login-PMDO43CL.js.map} +1 -1
  63. package/dist/logout-XIUWCA75.js +2 -0
  64. package/dist/{logout-STTU7NNX.js.map → logout-XIUWCA75.js.map} +1 -1
  65. package/dist/logs-export-AU4WZDLW.js +2 -0
  66. package/dist/{logs-export-62O4KT7A.js.map → logs-export-AU4WZDLW.js.map} +1 -1
  67. package/dist/logs-search-BHVB3BIH.js +2 -0
  68. package/dist/{logs-search-UP5IEJMG.js.map → logs-search-BHVB3BIH.js.map} +1 -1
  69. package/dist/monitor-KLJ762WM.js +2 -0
  70. package/dist/{monitor-37VPIJX6.js.map → monitor-KLJ762WM.js.map} +1 -1
  71. package/dist/monitor-automations-B2NRWSFH.js +2 -0
  72. package/dist/{monitor-automations-YKA4DME5.js.map → monitor-automations-B2NRWSFH.js.map} +1 -1
  73. package/dist/monitor-pipelines-2PNBET3B.js +2 -0
  74. package/dist/{monitor-pipelines-7IS4K4ZV.js.map → monitor-pipelines-2PNBET3B.js.map} +1 -1
  75. package/dist/{monitor-sites-KUC3NCAF.js → monitor-sites-QNMTCOSH.js} +2 -2
  76. package/dist/{monitor-sites-KUC3NCAF.js.map → monitor-sites-QNMTCOSH.js.map} +1 -1
  77. package/dist/monitor-storage-Z53C4CI2.js +2 -0
  78. package/dist/{monitor-storage-5UFFXOK7.js.map → monitor-storage-Z53C4CI2.js.map} +1 -1
  79. package/dist/scripts-cancel-2HWDUPFM.js +2 -0
  80. package/dist/{scripts-cancel-VX7VJ6J2.js.map → scripts-cancel-2HWDUPFM.js.map} +1 -1
  81. package/dist/{scripts-delete-TZ7CJXF6.js → scripts-delete-UI6YRWEN.js} +2 -2
  82. package/dist/{scripts-delete-TZ7CJXF6.js.map → scripts-delete-UI6YRWEN.js.map} +1 -1
  83. package/dist/scripts-disable-7IXFGWWG.js +2 -0
  84. package/dist/{scripts-disable-WJ7OIHFN.js.map → scripts-disable-7IXFGWWG.js.map} +1 -1
  85. package/dist/scripts-enable-DNEVMHLS.js +2 -0
  86. package/dist/{scripts-enable-D73CR33U.js.map → scripts-enable-DNEVMHLS.js.map} +1 -1
  87. package/dist/{scripts-init-AU6WNMKB.js → scripts-init-BIIEMUXV.js} +3 -3
  88. package/dist/{scripts-init-AU6WNMKB.js.map → scripts-init-BIIEMUXV.js.map} +1 -1
  89. package/dist/scripts-list-LYDOWRTU.js +2 -0
  90. package/dist/{scripts-list-X4MIW736.js.map → scripts-list-LYDOWRTU.js.map} +1 -1
  91. package/dist/scripts-logs-32CWQEBA.js +2 -0
  92. package/dist/{scripts-logs-AC5M3ZBH.js.map → scripts-logs-32CWQEBA.js.map} +1 -1
  93. package/dist/scripts-run-6AJVHB4U.js +2 -0
  94. package/dist/{scripts-run-PYGSKLVZ.js.map → scripts-run-6AJVHB4U.js.map} +1 -1
  95. package/dist/scripts-status-KCILW363.js +2 -0
  96. package/dist/{scripts-status-T4N57JWV.js.map → scripts-status-KCILW363.js.map} +1 -1
  97. package/dist/scripts-validate-MZP4MJZZ.js +2 -0
  98. package/dist/{scripts-validate-V7BWQMBO.js.map → scripts-validate-MZP4MJZZ.js.map} +1 -1
  99. package/dist/scripts-watch-3SFVPUAA.js +2 -0
  100. package/dist/{scripts-watch-TZHTIL6Y.js.map → scripts-watch-3SFVPUAA.js.map} +1 -1
  101. package/dist/sign-cancel-KK745O7W.js +2 -0
  102. package/dist/{sign-cancel-5W54A3T2.js.map → sign-cancel-KK745O7W.js.map} +1 -1
  103. package/dist/{sign-download-Z2BRNOBQ.js → sign-download-6V3ABZG2.js} +2 -2
  104. package/dist/{sign-download-Z2BRNOBQ.js.map → sign-download-6V3ABZG2.js.map} +1 -1
  105. package/dist/sign-list-VCNJSS6F.js +2 -0
  106. package/dist/{sign-list-VDF5JFKH.js.map → sign-list-VCNJSS6F.js.map} +1 -1
  107. package/dist/sign-request-LNRMPU2F.js +2 -0
  108. package/dist/{sign-request-NXOZSE5A.js.map → sign-request-LNRMPU2F.js.map} +1 -1
  109. package/dist/sign-status-PNAGMC7S.js +2 -0
  110. package/dist/{sign-status-E5UWZ4Y3.js.map → sign-status-PNAGMC7S.js.map} +1 -1
  111. package/dist/{sign-verify-2OKPTOPN.js → sign-verify-ZROVA7LH.js} +2 -2
  112. package/dist/{sign-verify-2OKPTOPN.js.map → sign-verify-ZROVA7LH.js.map} +1 -1
  113. package/dist/sites-analytics-L6KVTZNH.js +2 -0
  114. package/dist/{sites-analytics-2YAYY6GY.js.map → sites-analytics-L6KVTZNH.js.map} +1 -1
  115. package/dist/{sites-delete-BH7KKL54.js → sites-delete-JCBOLOA7.js} +2 -2
  116. package/dist/{sites-delete-BH7KKL54.js.map → sites-delete-JCBOLOA7.js.map} +1 -1
  117. package/dist/sites-deploys-XJ3NY4RQ.js +2 -0
  118. package/dist/{sites-deploys-4HEJWQON.js.map → sites-deploys-XJ3NY4RQ.js.map} +1 -1
  119. package/dist/sites-info-V3R7YNPU.js +2 -0
  120. package/dist/{sites-info-6HE2B6TF.js.map → sites-info-V3R7YNPU.js.map} +1 -1
  121. package/dist/sites-list-ZQTXLHJ3.js +2 -0
  122. package/dist/{sites-list-5GJPVLM3.js.map → sites-list-ZQTXLHJ3.js.map} +1 -1
  123. package/dist/sites-open-K2JWMIWD.js +3 -0
  124. package/dist/{sites-open-L6AHCXLV.js.map → sites-open-K2JWMIWD.js.map} +1 -1
  125. package/dist/sites-purge-5Y5AQWBY.js +2 -0
  126. package/dist/{sites-purge-MGNYRQC2.js.map → sites-purge-5Y5AQWBY.js.map} +1 -1
  127. package/dist/{sites-rename-PH4X5WUY.js → sites-rename-QH6YYXUE.js} +2 -2
  128. package/dist/{sites-rename-PH4X5WUY.js.map → sites-rename-QH6YYXUE.js.map} +1 -1
  129. package/dist/sites-rollback-ZQ2IHERR.js +2 -0
  130. package/dist/{sites-rollback-XORREI4B.js.map → sites-rollback-ZQ2IHERR.js.map} +1 -1
  131. package/dist/{sites-unpublish-G22P2RRZ.js → sites-unpublish-MDK4GP2C.js} +2 -2
  132. package/dist/{sites-unpublish-G22P2RRZ.js.map → sites-unpublish-MDK4GP2C.js.map} +1 -1
  133. package/dist/{sites-visibility-XPWHUOEB.js → sites-visibility-WKPIU5OK.js} +2 -2
  134. package/dist/{sites-visibility-XPWHUOEB.js.map → sites-visibility-WKPIU5OK.js.map} +1 -1
  135. package/dist/storage-cat-OAUEF3EE.js +2 -0
  136. package/dist/{storage-cat-TC65RHNH.js.map → storage-cat-OAUEF3EE.js.map} +1 -1
  137. package/dist/storage-clean-I7QZ5FR6.js +2 -0
  138. package/dist/{storage-clean-Z2GKXPJV.js.map → storage-clean-I7QZ5FR6.js.map} +1 -1
  139. package/dist/storage-cp-H36Q2ER4.js +2 -0
  140. package/dist/{storage-cp-2EMEFPZ3.js.map → storage-cp-H36Q2ER4.js.map} +1 -1
  141. package/dist/storage-diff-6KUEJ4DB.js +2 -0
  142. package/dist/{storage-diff-RK2BH2QH.js.map → storage-diff-6KUEJ4DB.js.map} +1 -1
  143. package/dist/storage-download-32EYGI47.js +3 -0
  144. package/dist/storage-download-32EYGI47.js.map +1 -0
  145. package/dist/storage-info-2JSV56KE.js +2 -0
  146. package/dist/{storage-info-RHCOIHFS.js.map → storage-info-2JSV56KE.js.map} +1 -1
  147. package/dist/storage-ls-G33T3LMU.js +3 -0
  148. package/dist/{storage-ls-IWYZFGA7.js.map → storage-ls-G33T3LMU.js.map} +1 -1
  149. package/dist/storage-mkdir-BDT3GX7A.js +2 -0
  150. package/dist/{storage-mkdir-5SJHSGKB.js.map → storage-mkdir-BDT3GX7A.js.map} +1 -1
  151. package/dist/storage-mv-2QJZR2FL.js +2 -0
  152. package/dist/{storage-mv-W6YIOF6S.js.map → storage-mv-2QJZR2FL.js.map} +1 -1
  153. package/dist/{storage-rm-JQ4U4Y6S.js → storage-rm-NRRRFG36.js} +2 -2
  154. package/dist/{storage-rm-JQ4U4Y6S.js.map → storage-rm-NRRRFG36.js.map} +1 -1
  155. package/dist/storage-search-E5BIXLSU.js +2 -0
  156. package/dist/{storage-search-H5INCBEX.js.map → storage-search-E5BIXLSU.js.map} +1 -1
  157. package/dist/storage-share-EXSSZ6XL.js +2 -0
  158. package/dist/{storage-share-SG7QWBGU.js.map → storage-share-EXSSZ6XL.js.map} +1 -1
  159. package/dist/storage-tag-YV5GUZDV.js +2 -0
  160. package/dist/{storage-tag-XDJKEOTG.js.map → storage-tag-YV5GUZDV.js.map} +1 -1
  161. package/dist/storage-unshare-MF4V2NGC.js +2 -0
  162. package/dist/{storage-unshare-THU4SI5I.js.map → storage-unshare-MF4V2NGC.js.map} +1 -1
  163. package/dist/storage-upload-DYWSZ6RO.js +9 -0
  164. package/dist/storage-upload-DYWSZ6RO.js.map +1 -0
  165. package/dist/time-list-4T3FJE2I.js +2 -0
  166. package/dist/{time-list-FLBMQONU.js.map → time-list-4T3FJE2I.js.map} +1 -1
  167. package/dist/time-lock-O55XMYPX.js +2 -0
  168. package/dist/{time-lock-JAQUWZMQ.js.map → time-lock-O55XMYPX.js.map} +1 -1
  169. package/dist/{time-proof-UXZS3V7L.js → time-proof-SDANSS3D.js} +2 -2
  170. package/dist/{time-proof-UXZS3V7L.js.map → time-proof-SDANSS3D.js.map} +1 -1
  171. package/dist/time-status-JFJA3MYK.js +2 -0
  172. package/dist/{time-status-HXSTJXP3.js.map → time-status-JFJA3MYK.js.map} +1 -1
  173. package/dist/time-unlock-F7NGQ2IE.js +2 -0
  174. package/dist/{time-unlock-RJIN5EII.js.map → time-unlock-F7NGQ2IE.js.map} +1 -1
  175. package/dist/update-5PTOF5ZA.js +2 -0
  176. package/dist/{update-DOHW47PB.js.map → update-5PTOF5ZA.js.map} +1 -1
  177. package/dist/{version-XQNUJ474.js → version-Y2LWIEFC.js} +2 -2
  178. package/dist/{version-XQNUJ474.js.map → version-Y2LWIEFC.js.map} +1 -1
  179. package/dist/whoami-BGMVNESX.js +2 -0
  180. package/dist/{whoami-AIXW6EHW.js.map → whoami-BGMVNESX.js.map} +1 -1
  181. package/package.json +1 -1
  182. package/dist/auth-status-AOV7GJLX.js +0 -2
  183. package/dist/chunk-FZKCZRJZ.js +0 -2
  184. package/dist/chunk-FZKCZRJZ.js.map +0 -1
  185. package/dist/chunk-LWB2J3KU.js +0 -2
  186. package/dist/chunk-QT7R3AXE.js +0 -3
  187. package/dist/chunk-QT7R3AXE.js.map +0 -1
  188. package/dist/collab-list-M4T5NTDC.js +0 -2
  189. package/dist/collab-remove-BUD6VVD5.js +0 -2
  190. package/dist/config-7G24FXQJ.js +0 -2
  191. package/dist/config-delete-VSIFFODZ.js +0 -2
  192. package/dist/config-get-DDNSM5EH.js +0 -2
  193. package/dist/config-reset-ZFMP4J5H.js +0 -2
  194. package/dist/config-set-O6JKOGGN.js +0 -2
  195. package/dist/deploy-QKTIRD5U.js +0 -3
  196. package/dist/feedback-QUGQAWZB.js +0 -3
  197. package/dist/forms-create-EGWXMYTW.js +0 -2
  198. package/dist/forms-info-KAMWLIOA.js +0 -2
  199. package/dist/forms-list-5JU4JWVU.js +0 -2
  200. package/dist/forms-submissions-U3YD6CC7.js +0 -2
  201. package/dist/login-ANJQFQDO.js +0 -3
  202. package/dist/logout-STTU7NNX.js +0 -2
  203. package/dist/logs-export-62O4KT7A.js +0 -2
  204. package/dist/logs-search-UP5IEJMG.js +0 -2
  205. package/dist/monitor-37VPIJX6.js +0 -2
  206. package/dist/monitor-automations-YKA4DME5.js +0 -2
  207. package/dist/monitor-pipelines-7IS4K4ZV.js +0 -2
  208. package/dist/monitor-storage-5UFFXOK7.js +0 -2
  209. package/dist/scripts-cancel-VX7VJ6J2.js +0 -2
  210. package/dist/scripts-disable-WJ7OIHFN.js +0 -2
  211. package/dist/scripts-enable-D73CR33U.js +0 -2
  212. package/dist/scripts-list-X4MIW736.js +0 -2
  213. package/dist/scripts-logs-AC5M3ZBH.js +0 -2
  214. package/dist/scripts-run-PYGSKLVZ.js +0 -2
  215. package/dist/scripts-status-T4N57JWV.js +0 -2
  216. package/dist/scripts-validate-V7BWQMBO.js +0 -2
  217. package/dist/scripts-watch-TZHTIL6Y.js +0 -2
  218. package/dist/sign-cancel-5W54A3T2.js +0 -2
  219. package/dist/sign-list-VDF5JFKH.js +0 -2
  220. package/dist/sign-request-NXOZSE5A.js +0 -2
  221. package/dist/sign-status-E5UWZ4Y3.js +0 -2
  222. package/dist/sites-analytics-2YAYY6GY.js +0 -2
  223. package/dist/sites-deploys-4HEJWQON.js +0 -2
  224. package/dist/sites-info-6HE2B6TF.js +0 -2
  225. package/dist/sites-list-5GJPVLM3.js +0 -2
  226. package/dist/sites-open-L6AHCXLV.js +0 -3
  227. package/dist/sites-purge-MGNYRQC2.js +0 -2
  228. package/dist/sites-rollback-XORREI4B.js +0 -2
  229. package/dist/storage-cat-TC65RHNH.js +0 -2
  230. package/dist/storage-clean-Z2GKXPJV.js +0 -2
  231. package/dist/storage-cp-2EMEFPZ3.js +0 -2
  232. package/dist/storage-diff-RK2BH2QH.js +0 -2
  233. package/dist/storage-download-N7TOVRLD.js +0 -3
  234. package/dist/storage-download-N7TOVRLD.js.map +0 -1
  235. package/dist/storage-info-RHCOIHFS.js +0 -2
  236. package/dist/storage-ls-IWYZFGA7.js +0 -3
  237. package/dist/storage-mkdir-5SJHSGKB.js +0 -2
  238. package/dist/storage-mv-W6YIOF6S.js +0 -2
  239. package/dist/storage-search-H5INCBEX.js +0 -2
  240. package/dist/storage-share-SG7QWBGU.js +0 -2
  241. package/dist/storage-tag-XDJKEOTG.js +0 -2
  242. package/dist/storage-unshare-THU4SI5I.js +0 -2
  243. package/dist/storage-upload-PPP7UCAW.js +0 -2
  244. package/dist/storage-upload-PPP7UCAW.js.map +0 -1
  245. package/dist/time-list-FLBMQONU.js +0 -2
  246. package/dist/time-lock-JAQUWZMQ.js +0 -2
  247. package/dist/time-status-HXSTJXP3.js +0 -2
  248. package/dist/time-unlock-RJIN5EII.js +0 -2
  249. package/dist/update-DOHW47PB.js +0 -2
  250. package/dist/whoami-AIXW6EHW.js +0 -2
@@ -1,2 +1,2 @@
1
- import {a as a$1}from'./chunk-PSJQAIDB.js';import {d}from'./chunk-CHBVIZF5.js';import'./chunk-NDB6KXYI.js';import'./chunk-ULVQ53OO.js';import'./chunk-THMWE2I6.js';import {g}from'./chunk-QT7R3AXE.js';import {d as d$1}from'./chunk-Q3A4IBGC.js';import a from'inquirer';async function c(e){if(e.all){let{confirm:s}=await a.prompt([{type:"confirm",name:"confirm",message:"Revoke ALL active sessions? This will log out every device.",default:false}]);if(!s)return;let t=a$1("Revoking all sessions...");t.start(),await d("/api/auth/ssp/revoke-all",{},{authenticated:true}),await d$1(),t.succeed(),g("All sessions revoked");return}if(e.session){let s=a$1(`Revoking session ${e.session}...`);s.start(),await d("/api/auth/ssp/revoke",{session_id:e.session},{authenticated:true}),s.succeed(),g(`Session ${e.session} revoked`);return}console.error("Specify --session <id> or --all"),process.exit(1);}export{c as default};//# sourceMappingURL=auth-revoke-6YX7LBWB.js.map
2
- //# sourceMappingURL=auth-revoke-6YX7LBWB.js.map
1
+ 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-6YX7LBWB.js","sourcesContent":["import { Command } from 'commander'\nimport { apiPost } from '../../lib/api/client.js'\nimport { clearSession } from '../../lib/auth/session.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess } from '../../lib/output/logger.js'\nimport inquirer from 'inquirer'\n\nexport default async function authRevoke(options: { session?: string; all?: boolean }): Promise<void> {\n if (options.all) {\n const { confirm } = await inquirer.prompt([{\n type: 'confirm',\n name: 'confirm',\n message: 'Revoke ALL active sessions? This will log out every device.',\n default: false,\n }])\n if (!confirm) return\n const spinner = createSpinner('Revoking all sessions...')\n spinner.start()\n await apiPost('/api/auth/ssp/revoke-all', {}, { authenticated: true })\n await clearSession()\n spinner.succeed()\n logSuccess('All sessions revoked')\n return\n }\n\n if (options.session) {\n const spinner = createSpinner(`Revoking session ${options.session}...`)\n spinner.start()\n await apiPost('/api/auth/ssp/revoke', { session_id: options.session }, { authenticated: true })\n spinner.succeed()\n logSuccess(`Session ${options.session} revoked`)\n return\n }\n\n console.error('Specify --session <id> or --all')\n process.exit(1)\n}\n"]}
1
+ {"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"]}
@@ -1,2 +1,2 @@
1
- import {b,c as c$1}from'./chunk-FZKCZRJZ.js';import {c}from'./chunk-CHBVIZF5.js';import'./chunk-NDB6KXYI.js';import'./chunk-ULVQ53OO.js';import {a}from'./chunk-THMWE2I6.js';import'./chunk-QT7R3AXE.js';import'./chunk-Q3A4IBGC.js';async function s(){let i=((await c("/api/auth/ssp/sessions",{authenticated:true})).sessions||[]).map(e=>({id:e.id.slice(0,8)+"...",device:e.device_fingerprint.slice(0,12),platform:e.platform||"unknown",last_seen:c$1(e.last_seen),created:b(e.created_at),current:e.current?"\u25CF":""}));console.log(a(i,[{key:"id",label:"Session ID"},{key:"device",label:"Fingerprint"},{key:"platform",label:"Platform"},{key:"last_seen",label:"Last Seen"},{key:"created",label:"Created"},{key:"current",label:""}]));}export{s as default};//# sourceMappingURL=auth-sessions-2A63NMIW.js.map
2
- //# sourceMappingURL=auth-sessions-2A63NMIW.js.map
1
+ 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-2A63NMIW.js","sourcesContent":["import { apiGet } from '../../lib/api/client.js'\nimport { renderTable } from '../../lib/output/table.js'\nimport { formatDate, formatRelative } from '../../lib/utils/format.js'\n\ninterface SessionInfo {\n id: string\n device_fingerprint: string\n platform: string\n last_seen: string\n created_at: string\n current: boolean\n}\n\nexport default async function authSessions(): Promise<void> {\n const data = await apiGet<{ sessions: SessionInfo[] }>('/api/auth/ssp/sessions', { authenticated: true })\n const rows = (data.sessions || []).map(s => ({\n id: s.id.slice(0, 8) + '...',\n device: s.device_fingerprint.slice(0, 12),\n platform: s.platform || 'unknown',\n last_seen: formatRelative(s.last_seen),\n created: formatDate(s.created_at),\n current: s.current ? '●' : '',\n }))\n console.log(renderTable(rows, [\n { key: 'id', label: 'Session ID' },\n { key: 'device', label: 'Fingerprint' },\n { key: 'platform', label: 'Platform' },\n { key: 'last_seen', label: 'Last Seen' },\n { key: 'created', label: 'Created' },\n { key: 'current', label: '' },\n ]))\n}\n"]}
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":"kJAOA,eAAOA,GAAmD,CACxD,IAAMC,EAAU,MAAMC,CAAAA,GACjBD,CAAAA,GACHE,CAAAA,CAAS,mBAAmB,CAAA,CAC5B,OAAA,CAAQ,KAAK,CAAC,CAAA,CAAA,CAGhB,IAAMC,GAAAA,CAAqBC,CAAAA,EAAyB,CAC9CC,CAAAA,CAAmBL,EAAQ,kBAAA,GAAuBG,GAAAA,CAClDG,EAAWC,CAAAA,CAAmBP,CAAO,EACrCQ,CAAAA,CAAeF,CAAAA,EAAY,IAAS,GAAA,CAE1C,GAAIG,KAAW,CAAG,CAChBC,EAAQ,CACN,aAAA,CAAe,KACf,UAAA,CAAYV,CAAAA,CAAQ,UAAA,CACpB,aAAA,CAAeM,EACf,iBAAA,CAAmBD,CAAAA,CACnB,cAAeG,CAAAA,CACf,IAAA,CAAMR,EAAQ,IAChB,CAAC,EACD,MACF,CAEAW,EAAO,EAAE,CAAA,CACTA,EAAO,CAAA,EAAGC,CAAAA,CAAM,KAAK,gBAAgB,CAAC,EAAE,CAAA,CACxCD,CAAAA,CAAO,GAAGC,CAAAA,CAAM,GAAA,CAAI,qBAAM,MAAA,CAAO,EAAE,CAAC,CAAC,CAAA,CAAE,EACvCD,CAAAA,CAAO,CAAA,EAAA,EAAKC,EAAM,IAAA,CAAK,aAAa,CAAC,CAAA,IAAA,EAAOA,CAAAA,CAAM,IAAIZ,CAAAA,CAAQ,UAAU,CAAC,CAAA,CAAE,EAC3EW,CAAAA,CAAO,CAAA,EAAA,EAAKC,EAAM,IAAA,CAAK,OAAO,CAAC,CAAA,UAAA,EAAaZ,CAAAA,CAAQ,KAAK,KAAK,CAAA,EAAA,EAAKA,EAAQ,IAAA,CAAK,QAAQ,GAAG,CAAA,CAC3FW,CAAAA,CAAO,KAAKC,CAAAA,CAAM,IAAA,CAAK,OAAO,CAAC,CAAA,UAAA,EAAaA,EAAM,GAAA,CAAI,SAAS,EAAEZ,CAAAA,CAAQ,IAAA,CAAK,IAAI,CAAC,CAAA,CAAE,EACrFW,CAAAA,CAAO,CAAA,EAAA,EAAKC,EAAM,IAAA,CAAK,UAAU,CAAC,CAAA,OAAA,EAAUN,CAAAA,CAAW,EAAIO,CAAAA,CAAgBP,CAAQ,CAAA,CAAIM,CAAAA,CAAM,IAAI,SAAS,CAAC,EAAE,CAAA,CAC7GD,CAAAA,CAAO,KAAKC,CAAAA,CAAM,IAAA,CAAK,cAAc,CAAC,CAAA,GAAA,EAAMP,EAAmBO,CAAAA,CAAM,KAAA,CAAM,cAAS,CAAA,CAAIA,CAAAA,CAAM,IAAI,iBAAY,CAAC,EAAE,CAAA,CACjHD,CAAAA,CAAO,KAAKC,CAAAA,CAAM,IAAA,CAAK,UAAU,CAAC,CAAA,OAAA,EAAUJ,EAAeI,CAAAA,CAAM,MAAA,CAAO,aAAa,CAAA,CAAIA,CAAAA,CAAM,MAAM,IAAI,CAAC,EAAE,CAAA,CAC5GD,CAAAA,CAAO,EAAE,EACX","file":"auth-status-AOV7GJLX.js","sourcesContent":["import { loadSession, getTimeUntilExpiry } from '../../lib/auth/session.js'\nimport { computeDeviceFingerprint } from '../../lib/auth/fingerprint.js'\nimport { logError, logJSON, logRaw } from '../../lib/output/logger.js'\nimport { isJsonMode } from '../../lib/output/logger.js'\nimport chalk from 'chalk'\nimport { formatCountdown } from '../../lib/utils/format.js'\n\nexport default async function authStatus(): Promise<void> {\n const session = await loadSession()\n if (!session) {\n logError('Not authenticated')\n process.exit(1)\n }\n\n const currentFingerprint = computeDeviceFingerprint()\n const fingerprintMatch = session.device_fingerprint === currentFingerprint\n const timeLeft = getTimeUntilExpiry(session)\n const needsRefresh = timeLeft <= 2 * 60 * 1000\n\n if (isJsonMode()) {\n logJSON({\n authenticated: true,\n session_id: session.session_id,\n expires_in_ms: timeLeft,\n fingerprint_match: fingerprintMatch,\n needs_refresh: needsRefresh,\n user: session.user,\n })\n return\n }\n\n logRaw('')\n logRaw(`${chalk.bold('Session Health')}`)\n logRaw(`${chalk.dim('───'.repeat(15))}`)\n logRaw(` ${chalk.bold('Session ID:')} ${chalk.dim(session.session_id)}`)\n logRaw(` ${chalk.bold('User:')} ${session.user.email} (${session.user.username})`)\n logRaw(` ${chalk.bold('Plan:')} ${chalk.hex('#7C4DFF')(session.user.plan)}`)\n logRaw(` ${chalk.bold('Expires:')} ${timeLeft > 0 ? formatCountdown(timeLeft) : chalk.red('expired')}`)\n logRaw(` ${chalk.bold('Fingerprint:')} ${fingerprintMatch ? chalk.green('✓ match') : chalk.red('✗ mismatch')}`)\n logRaw(` ${chalk.bold('Refresh:')} ${needsRefresh ? chalk.yellow('needed soon') : chalk.green('ok')}`)\n logRaw('')\n}\n"]}
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-ULVQ53OO.js';import'../chunk-THMWE2I6.js';import {e,d,h,n}from'../chunk-QT7R3AXE.js';import {b,e as e$1}from'../chunk-Q3A4IBGC.js';import {readFileSync}from'fs';import {dirname,resolve}from'path';import {fileURLToPath}from'url';import {Command}from'commander';var L=[{name:"login",aliases:[],description:"Authenticate with SquidCloud",requiresAuth:false,requiresProject:false,ciSafe:false,jsonSupport:false,dangerLevel:"safe",category:"auth",handler:()=>import('../login-ANJQFQDO.js')},{name:"logout",aliases:[],description:"End current CLI session and clear credentials",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:false,dangerLevel:"safe",category:"auth",handler:()=>import('../logout-STTU7NNX.js')},{name:"whoami",aliases:["auth whoami"],description:"Show current authenticated account info",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"auth",handler:()=>import('../whoami-AIXW6EHW.js')},{name:"auth status",aliases:[],description:"Detailed session health check",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"auth",handler:()=>import('../auth-status-AOV7GJLX.js')},{name:"auth sessions",aliases:[],description:"List all active CLI sessions",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"auth",handler:()=>import('../auth-sessions-2A63NMIW.js')},{name:"auth revoke",aliases:[],description:"Revoke a session or all sessions",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:false,dangerLevel:"destructive",category:"auth",handler:()=>import('../auth-revoke-6YX7LBWB.js')},{name:"storage ls",aliases:["storage list"],description:"List files and folders in storage",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"storage",handler:()=>import('../storage-ls-IWYZFGA7.js')},{name:"storage upload",aliases:["storage up"],description:"Upload files or folders to storage",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"storage",handler:()=>import('../storage-upload-PPP7UCAW.js')},{name:"storage download",aliases:["storage dl"],description:"Download files or folders from storage",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"storage",handler:()=>import('../storage-download-N7TOVRLD.js')},{name:"storage cp",aliases:[],description:"Copy files within storage",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"storage",handler:()=>import('../storage-cp-2EMEFPZ3.js')},{name:"storage mv",aliases:[],description:"Move/rename files within storage",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"storage",handler:()=>import('../storage-mv-W6YIOF6S.js')},{name:"storage rm",aliases:[],description:"Delete files from storage",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"destructive",category:"storage",handler:()=>import('../storage-rm-JQ4U4Y6S.js')},{name:"storage mkdir",aliases:[],description:"Create a folder in storage",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"storage",handler:()=>import('../storage-mkdir-5SJHSGKB.js')},{name:"storage cat",aliases:[],description:"Print file contents to terminal",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:false,dangerLevel:"safe",category:"storage",handler:()=>import('../storage-cat-TC65RHNH.js')},{name:"storage info",aliases:[],description:"Show file metadata",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"storage",handler:()=>import('../storage-info-RHCOIHFS.js')},{name:"storage share",aliases:[],description:"Generate a share link for a file",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"storage",handler:()=>import('../storage-share-SG7QWBGU.js')},{name:"storage unshare",aliases:[],description:"Revoke all share links for a file",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"storage",handler:()=>import('../storage-unshare-THU4SI5I.js')},{name:"storage tag",aliases:[],description:"Add or remove file tags",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"storage",handler:()=>import('../storage-tag-XDJKEOTG.js')},{name:"storage search",aliases:[],description:"Search storage by filename",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"storage",handler:()=>import('../storage-search-H5INCBEX.js')},{name:"storage diff",aliases:[],description:"Compare local and remote storage",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"storage",handler:()=>import('../storage-diff-RK2BH2QH.js')},{name:"storage clean",aliases:[],description:"Clean orphaned files from storage",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"storage",handler:()=>import('../storage-clean-Z2GKXPJV.js')},{name:"deploy",aliases:["squidsite deploy"],description:"Deploy a static website to SquidCloud Sites",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"deploy",handler:()=>import('../deploy-QKTIRD5U.js')},{name:"sites list",aliases:["sites ls"],description:"List all published sites",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"sites",handler:()=>import('../sites-list-5GJPVLM3.js')},{name:"sites info",aliases:[],description:"Show site details",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"sites",handler:()=>import('../sites-info-6HE2B6TF.js')},{name:"sites open",aliases:[],description:"Open site in browser",requiresAuth:true,requiresProject:false,ciSafe:false,jsonSupport:false,dangerLevel:"safe",category:"sites",handler:()=>import('../sites-open-L6AHCXLV.js')},{name:"sites unpublish",aliases:[],description:"Take a site offline",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"destructive",category:"sites",handler:()=>import('../sites-unpublish-G22P2RRZ.js')},{name:"sites delete",aliases:[],description:"Permanently delete a site",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"destructive",category:"sites",handler:()=>import('../sites-delete-BH7KKL54.js')},{name:"sites visibility",aliases:[],description:"Change site visibility (public/private)",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"sites",handler:()=>import('../sites-visibility-XPWHUOEB.js')},{name:"sites rename",aliases:[],description:"Rename a site slug",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"destructive",category:"sites",handler:()=>import('../sites-rename-PH4X5WUY.js')},{name:"sites rollback",aliases:[],description:"Rollback to a previous deployment",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"sites",handler:()=>import('../sites-rollback-XORREI4B.js')},{name:"sites deploys",aliases:[],description:"Show deployment history",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"sites",handler:()=>import('../sites-deploys-4HEJWQON.js')},{name:"sites logs",aliases:[],description:"Stream live site access logs",requiresAuth:true,requiresProject:false,ciSafe:false,jsonSupport:false,dangerLevel:"safe",category:"sites",handler:()=>import('../sites-logs-AYG43HQV.js')},{name:"sites analytics",aliases:[],description:"Show site traffic analytics",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"sites",handler:()=>import('../sites-analytics-2YAYY6GY.js')},{name:"sites purge",aliases:[],description:"Purge CDN cache for a site",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"sites",handler:()=>import('../sites-purge-MGNYRQC2.js')},{name:"scripts list",aliases:[],description:"List registered SquidScripts",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"scripts",handler:()=>import('../scripts-list-X4MIW736.js')},{name:"scripts run",aliases:[],description:"Run a SquidScript pipeline",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"scripts",handler:()=>import('../scripts-run-PYGSKLVZ.js')},{name:"scripts logs",aliases:[],description:"View pipeline run logs",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"scripts",handler:()=>import('../scripts-logs-AC5M3ZBH.js')},{name:"scripts validate",aliases:[],description:"Validate a .squid.yml file",requiresAuth:false,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"scripts",handler:()=>import('../scripts-validate-V7BWQMBO.js')},{name:"scripts init",aliases:[],description:"Create a new pipeline interactively",requiresAuth:true,requiresProject:false,ciSafe:false,jsonSupport:false,dangerLevel:"safe",category:"scripts",handler:()=>import('../scripts-init-AU6WNMKB.js')},{name:"scripts enable",aliases:[],description:"Enable a disabled pipeline",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"scripts",handler:()=>import('../scripts-enable-D73CR33U.js')},{name:"scripts disable",aliases:[],description:"Disable a pipeline",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"scripts",handler:()=>import('../scripts-disable-WJ7OIHFN.js')},{name:"scripts delete",aliases:[],description:"Delete a pipeline",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"destructive",category:"scripts",handler:()=>import('../scripts-delete-TZ7CJXF6.js')},{name:"scripts status",aliases:[],description:"Show pipeline status",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"scripts",handler:()=>import('../scripts-status-T4N57JWV.js')},{name:"scripts cancel",aliases:[],description:"Cancel a running pipeline",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"scripts",handler:()=>import('../scripts-cancel-VX7VJ6J2.js')},{name:"scripts watch",aliases:[],description:"Watch .squid.yml for changes",requiresAuth:false,requiresProject:false,ciSafe:false,jsonSupport:false,dangerLevel:"safe",category:"scripts",handler:()=>import('../scripts-watch-TZHTIL6Y.js')},{name:"filereq list",aliases:["forms list","filereq ls"],description:"List file requests",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"forms",handler:()=>import('../forms-list-5JU4JWVU.js')},{name:"filereq create",aliases:["forms create"],description:"Create a file request",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"forms",handler:()=>import('../forms-create-EGWXMYTW.js')},{name:"filereq info",aliases:["forms info"],description:"View file request details",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"forms",handler:()=>import('../forms-info-KAMWLIOA.js')},{name:"filereq submissions",aliases:["forms submissions"],description:"View file request submissions",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"forms",handler:()=>import('../forms-submissions-U3YD6CC7.js')},{name:"filereq export",aliases:["forms export"],description:"Export submissions as CSV",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:false,dangerLevel:"safe",category:"forms",handler:()=>import('../forms-export-DTHYLUF3.js')},{name:"filereq clear",aliases:["forms clear"],description:"Clear all submissions",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"destructive",category:"forms",handler:()=>import('../forms-clear-VTF3BEG4.js')},{name:"filereq delete",aliases:["forms delete"],description:"Delete a file request",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"destructive",category:"forms",handler:()=>import('../forms-delete-V7SEUFPO.js')},{name:"filereq embed",aliases:["forms embed"],description:"Get HTML embed snippet",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:false,dangerLevel:"safe",category:"forms",handler:()=>import('../forms-embed-2WBFYFUO.js')},{name:"time lock",aliases:[],description:"Time-lock a file or folder",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"time",handler:()=>import('../time-lock-JAQUWZMQ.js')},{name:"time unlock",aliases:[],description:"Unlock a time-locked file",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"time",handler:()=>import('../time-unlock-RJIN5EII.js')},{name:"time status",aliases:[],description:"Check time-lock status",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"time",handler:()=>import('../time-status-HXSTJXP3.js')},{name:"time list",aliases:[],description:"List all time-locked files",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"time",handler:()=>import('../time-list-FLBMQONU.js')},{name:"time proof",aliases:[],description:"Export cryptographic existence proof",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"time",handler:()=>import('../time-proof-UXZS3V7L.js')},{name:"collab invite",aliases:[],description:"Invite a collaborator to a folder",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"collab",handler:()=>import('../collab-invite-6TN62APL.js')},{name:"collab list",aliases:[],description:"List folder collaborators",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"collab",handler:()=>import('../collab-list-M4T5NTDC.js')},{name:"collab remove",aliases:[],description:"Remove a collaborator",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"collab",handler:()=>import('../collab-remove-BUD6VVD5.js')},{name:"collab activity",aliases:[],description:"View collaborator activity feed",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"collab",handler:()=>import('../collab-activity-YOEJEJTQ.js')},{name:"collab leave",aliases:[],description:"Leave a shared folder",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"collab",handler:()=>import('../collab-leave-RY2ULFWC.js')},{name:"collab transfer",aliases:[],description:"Transfer folder ownership",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"destructive",category:"collab",handler:()=>import('../collab-transfer-R5IDVZAX.js')},{name:"sign request",aliases:[],description:"Request a digital signature",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"sign",handler:()=>import('../sign-request-NXOZSE5A.js')},{name:"sign status",aliases:[],description:"Check signing request status",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"sign",handler:()=>import('../sign-status-E5UWZ4Y3.js')},{name:"sign list",aliases:[],description:"List signing requests",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"sign",handler:()=>import('../sign-list-VDF5JFKH.js')},{name:"sign cancel",aliases:[],description:"Cancel a signing request",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"caution",category:"sign",handler:()=>import('../sign-cancel-5W54A3T2.js')},{name:"sign verify",aliases:[],description:"Verify a signed document",requiresAuth:false,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"sign",handler:()=>import('../sign-verify-2OKPTOPN.js')},{name:"sign download",aliases:[],description:"Download signed document",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"sign",handler:()=>import('../sign-download-Z2BRNOBQ.js')},{name:"monitor",aliases:[],description:"At-a-glance SquidCloud health dashboard",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"monitor",handler:()=>import('../monitor-37VPIJX6.js')},{name:"monitor sites",aliases:[],description:"Site health overview",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"monitor",handler:()=>import('../monitor-sites-KUC3NCAF.js')},{name:"monitor pipelines",aliases:[],description:"Pipeline health overview",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"monitor",handler:()=>import('../monitor-pipelines-7IS4K4ZV.js')},{name:"monitor storage",aliases:[],description:"Storage health report",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"monitor",handler:()=>import('../monitor-storage-5UFFXOK7.js')},{name:"monitor automations",aliases:[],description:"Automation health overview",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"monitor",handler:()=>import('../monitor-automations-YKA4DME5.js')},{name:"logs tail",aliases:[],description:"Stream live logs",requiresAuth:true,requiresProject:false,ciSafe:false,jsonSupport:false,dangerLevel:"safe",category:"logs",handler:()=>import('../logs-tail-YVFZLSC2.js')},{name:"logs search",aliases:[],description:"Search historical logs",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"logs",handler:()=>import('../logs-search-UP5IEJMG.js')},{name:"logs export",aliases:[],description:"Export logs as JSONL or CSV",requiresAuth:true,requiresProject:false,ciSafe:true,jsonSupport:false,dangerLevel:"safe",category:"logs",handler:()=>import('../logs-export-62O4KT7A.js')},{name:"doctor",aliases:[],description:"Run system diagnostics",requiresAuth:false,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"utility",handler:()=>import('../doctor-2BGIPUMM.js')},{name:"version",aliases:["--version","-v"],description:"Show CLI version",requiresAuth:false,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"utility",handler:()=>import('../version-XQNUJ474.js')},{name:"config list",aliases:["config ls"],description:"List CLI configuration",requiresAuth:false,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"utility",handler:()=>import('../config-7G24FXQJ.js')},{name:"config set",aliases:[],description:"Set a config value",requiresAuth:false,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"utility",handler:()=>import('../config-set-O6JKOGGN.js')},{name:"config get",aliases:[],description:"Get a config value",requiresAuth:false,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"utility",handler:()=>import('../config-get-DDNSM5EH.js')},{name:"config delete",aliases:[],description:"Delete a config value",requiresAuth:false,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"utility",handler:()=>import('../config-delete-VSIFFODZ.js')},{name:"config reset",aliases:[],description:"Reset all configuration",requiresAuth:false,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"destructive",category:"utility",handler:()=>import('../config-reset-ZFMP4J5H.js')},{name:"completion",aliases:[],description:"Generate shell completion scripts",requiresAuth:false,requiresProject:false,ciSafe:true,jsonSupport:false,dangerLevel:"safe",category:"utility",handler:()=>import('../completion-IF3NB7PB.js')},{name:"feedback",aliases:[],description:"Submit feedback or report a bug",requiresAuth:false,requiresProject:false,ciSafe:false,jsonSupport:false,dangerLevel:"safe",category:"utility",handler:()=>import('../feedback-QUGQAWZB.js')},{name:"update",aliases:[],description:"Update the CLI to latest version",requiresAuth:false,requiresProject:false,ciSafe:true,jsonSupport:true,dangerLevel:"safe",category:"utility",handler:()=>import('../update-DOHW47PB.js')}];function v(){return [...L]}var x=dirname(fileURLToPath(import.meta.url)),y=JSON.parse(readFileSync(resolve(x,"../../package.json"),"utf-8")),f=new Command;f.name("squidcloud").description(y.description).version(y.version,"-v, --version","Display CLI version").option("--output <format>","Output format (json)","text").hook("preAction",async e$1=>{e$1.optsWithGlobals().output==="json"&&e(true),d()&&e(false);});async function A(e){if(!e.requiresAuth)return;let a$1=await b();a$1||(h("Not authenticated. Run `squidcloud login` first."),process.exit(1)),e$1(a$1)&&(await a()||(h("Session expired. Please run `squidcloud login` again."),process.exit(1)));}function D(e){let a=new Map;for(let r of e){let l=r.name.split(" ");if(l.length===1)a.set(r.name,new Map);else if(l.length===2){let[t,i]=l;a.has(t)||a.set(t,new Map),a.get(t).set(i,r);}}for(let[r,l]of a)if(l.size===0){let t=e.find(o=>o.name===r),i=f.command(r);i.description(t.description),i.arguments("[args...]"),t.aliases.length>0&&i.aliases(t.aliases),i.action(async(...o)=>{try{await A(t);let n$1=await t.handler();if(typeof n$1.default=="function"){let s=o.slice(0,-2);s.length===1&&Array.isArray(s[0])&&(s=s[0]),await n$1.default(...s);}n(t.name,process.argv.slice(2).join(" "),0);}catch(n$1){let s=n$1 instanceof Error?n$1.message:String(n$1);h(s),n(t.name,process.argv.slice(2).join(" "),1),process.exit(1);}});}else {let t=f.command(r);t.description(`SquidCloud ${r} commands`);for(let[i,o]of l){let n$1=`${r} ${i}`,s=t.command(i);s.description(o.description),s.arguments("[args...]"),o.aliases.length>0&&s.aliases(o.aliases.map(m=>m.replace(`${r} `,""))),s.action(async(...m)=>{try{await A(o);let c=await o.handler();if(typeof c.default=="function"){let u=m.slice(0,-2);u.length===1&&Array.isArray(u[0])&&(u=u[0]),await c.default(...u);}n(n$1,process.argv.slice(2).join(" "),0);}catch(c){let u=c instanceof Error?c.message:String(c);h(u),n(n$1,process.argv.slice(2).join(" "),1),process.exit(1);}});}}}async function R(){let e=process.argv.slice(2);if(e.includes("--version")||e.includes("-v")){let{showVersion:r}=await import('../version-XQNUJ474.js');await r();return}if(e.length===0&&!e.includes("--help")&&!e.includes("-h")){let{showVersion:r}=await import('../version-XQNUJ474.js');await r(),console.log(""),f.outputHelp();return}let a=v();D(a),f.addHelpText("beforeAll",`
3
- `),await f.parseAsync(process.argv);}R().catch(e=>{h(e instanceof Error?e.message:String(e)),process.exit(1);});//# sourceMappingURL=squidcloud.js.map
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 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
+ {"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"]}
@@ -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
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/output/brand.ts","../src/lib/utils/ci-detect.ts","../src/lib/output/logger.ts"],"names":["squidGradient","gradient","BRAND_MARKER","SUCCESS_MARK","chalk","ERROR_MARK","WARN_MARK","INFO_MARK","PROGRESS_MARK","brand","text","muted","copied","isCI","jsonMode","setJsonMode","mode","isJsonMode","timestamp","logSuccess","message","logError","logWarn","logInfo","logBrand","logRaw","logJSON","data","writeAudit","command","args","exitCode","auditDir","path","os","auditFile","entry","fs"],"mappings":"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","file":"chunk-EMRHLWPD.js","sourcesContent":["import chalk from 'chalk'\nimport gradient from 'gradient-string'\n\nconst squidGradient = gradient(['#4FC3F7', '#7C4DFF'])\nconst dimGradient = gradient(['#1a5276', '#4a148c'])\n\nexport const BRAND_MARKER = squidGradient('◆')\nexport const SUCCESS_MARK = chalk.hex('#4CAF50')('✓')\nexport const ERROR_MARK = chalk.hex('#F44336')('✗')\nexport const WARN_MARK = chalk.hex('#FF9800')('⚠')\nexport const INFO_MARK = chalk.hex('#4FC3F7')('ℹ')\nexport const PROGRESS_MARK = chalk.hex('#7C4DFF')('▸')\n\nexport function brand(text: string): string {\n return squidGradient(text)\n}\n\nexport function brandDim(text: string): string {\n return dimGradient(text)\n}\n\nexport function brandLine(text: string): string {\n return `${BRAND_MARKER} ${brand(text)}`\n}\n\nexport function success(text: string): string {\n return `${SUCCESS_MARK} ${chalk.green(text)}`\n}\n\nexport function error(text: string): string {\n return `${ERROR_MARK} ${chalk.red(text)}`\n}\n\nexport function warn(text: string): string {\n return `${WARN_MARK} ${chalk.hex('#FF9800')(text)}`\n}\n\nexport function info(text: string): string {\n return `${INFO_MARK} ${chalk.hex('#4FC3F7')(text)}`\n}\n\nexport function muted(text: string): string {\n return chalk.dim(text)\n}\n\nexport function copied(text: string): string {\n return muted(`(copied to clipboard)`)\n}\n","export function isCI(): boolean {\n return !!(\n process.env.CI ||\n process.env.GITHUB_ACTIONS ||\n process.env.GITLAB_CI ||\n process.env.CIRCLECI ||\n process.env.TRAVIS ||\n process.env.JENKINS_HOME\n )\n}\n\nexport function isInteractive(): boolean {\n if (isCI()) return false\n return process.stdout.isTTY && process.stdin.isTTY\n}\n\nexport function getCIProvider(): string | null {\n if (process.env.GITHUB_ACTIONS) return 'github-actions'\n if (process.env.GITLAB_CI) return 'gitlab-ci'\n if (process.env.CIRCLECI) return 'circleci'\n if (process.env.TRAVIS) return 'travis'\n if (process.env.JENKINS_HOME) return 'jenkins'\n if (process.env.CI) return 'unknown-ci'\n return null\n}\n","import chalk from 'chalk'\nimport os from 'node:os'\nimport fs from 'node:fs'\nimport path from 'node:path'\nimport { isCI } from '../utils/ci-detect.js'\nimport { BRAND_MARKER, SUCCESS_MARK, ERROR_MARK, WARN_MARK, INFO_MARK, muted } from './brand.js'\n\nlet jsonMode = false\n\nexport function setJsonMode(mode: boolean): void {\n jsonMode = mode\n}\n\nexport function isJsonMode(): boolean {\n return jsonMode\n}\n\ninterface LogOptions {\n prefix?: string\n}\n\nfunction timestamp(): string {\n return chalk.dim(`[${new Date().toISOString()}]`)\n}\n\nexport function log(message: string, options?: LogOptions): void {\n if (jsonMode) return\n const prefix = options?.prefix ? `${options.prefix} ` : ''\n if (isCI()) {\n console.log(`${timestamp()} ${prefix}${message}`)\n } else {\n console.log(`${prefix}${message}`)\n }\n}\n\nexport function logSuccess(message: string): void {\n if (jsonMode) {\n console.log(JSON.stringify({ level: 'success', message }))\n return\n }\n if (isCI()) {\n console.log(`${timestamp()} ${SUCCESS_MARK} ${message}`)\n } else {\n console.log(`${SUCCESS_MARK} ${chalk.green(message)}`)\n }\n}\n\nexport function logError(message: string): void {\n if (jsonMode) {\n console.error(JSON.stringify({ error: { message } }))\n return\n }\n if (isCI()) {\n console.error(`${timestamp()} ${ERROR_MARK} ${chalk.red(message)}`)\n } else {\n console.error(`${ERROR_MARK} ${chalk.red(message)}`)\n }\n}\n\nexport function logWarn(message: string): void {\n if (jsonMode) return\n if (isCI()) {\n console.warn(`${timestamp()} ${WARN_MARK} ${chalk.hex('#FF9800')(message)}`)\n } else {\n console.warn(`${WARN_MARK} ${chalk.hex('#FF9800')(message)}`)\n }\n}\n\nexport function logInfo(message: string): void {\n if (jsonMode) return\n if (isCI()) {\n console.log(`${timestamp()} ${INFO_MARK} ${chalk.hex('#4FC3F7')(message)}`)\n } else {\n console.log(`${INFO_MARK} ${chalk.hex('#4FC3F7')(message)}`)\n }\n}\n\nexport function logBrand(message: string): void {\n if (jsonMode) return\n console.log(`${BRAND_MARKER} ${message}`)\n}\n\nexport function logRaw(message: string): void {\n if (jsonMode) return\n console.log(message)\n}\n\nexport function logJSON(data: unknown): void {\n if (!jsonMode) return\n console.log(JSON.stringify(data))\n}\n\nexport function logErrorJSON(data: { message: string; code?: string }): void {\n if (!jsonMode) {\n logError(data.message)\n return\n }\n console.error(JSON.stringify({ error: data }))\n}\n\nexport function writeAudit(command: string, args: string, exitCode: number): void {\n const auditDir = path.join(os.homedir(), '.squidcloud')\n const auditFile = path.join(auditDir, 'audit.log')\n const entry = JSON.stringify({\n timestamp: new Date().toISOString(),\n command,\n args,\n exitCode,\n pid: process.pid,\n }) + '\\n'\n try {\n if (!fs.existsSync(auditDir)) {\n fs.mkdirSync(auditDir, { recursive: true, mode: 0o700 })\n }\n fs.appendFileSync(auditFile, entry, { encoding: 'utf-8' })\n } catch {\n // Silently fail — audit should never crash the CLI\n }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {a as a$1,b}from'./chunk-N3AD2QRA.js';import {a}from'./chunk-EMRHLWPD.js';import g from'cli-progress';import n from'chalk';function h(){let e=Date.now();return {startTime:e,lastBytes:0,lastTime:e,speed:0}}function $(e,r){let t=Date.now(),o=(t-e.lastTime)/1e3;o>=.3&&(e.speed=(r-e.lastBytes)/o,e.lastBytes=r,e.lastTime=t);}function F(e,r){let t=h(),o=new g.SingleBar({format:(i,a$2,b$1)=>{let p=a$2.percentage??0,m=a$2.value??0,d=a$2.barsize??20,l=Math.round(d*p/100),T=n.hex("#7C4DFF")(i.barCompleteChar.repeat(l)+i.barIncompleteChar.repeat(d-l)),S=b$1?.filename??e,c=t.speed,C=c>0?(r-m)/c:0;return [`${a} ${n.bold(S)}`,T,n.white(`${p.toFixed(0)}%`),n.dim(`${a$1(m)} / ${a$1(r)}`),n.hex("#4FC3F7")(`${a$1(c)}/s`),n.dim(`ETA ${b(C*1e3)}`)].join(" ")},barCompleteChar:"\u2588",barIncompleteChar:"\u2591",hideCursor:true,clearOnComplete:false,stopOnComplete:true});return o.start(r,0,{filename:e}),{bar:o,tracker:t}}function P(e,r,t){$(r,t),e.update(t);}export{F as a,P as b};//# sourceMappingURL=chunk-EPDVSZII.js.map
2
+ //# sourceMappingURL=chunk-EPDVSZII.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/output/progress.ts"],"names":["createSpeedTracker","now","updateSpeed","t","bytes","dt","createProgressBar","filename","total","tracker","bar","cliProgress","options","params","payload","percent","val","barSize","completeLen","barStr","chalk","name","speed","eta","PROGRESS_MARK","formatBytes","formatDuration","updateProgress"],"mappings":"kIAaO,SAASA,CAAAA,EAAmC,CACjD,IAAMC,CAAAA,CAAM,IAAA,CAAK,GAAA,GACjB,OAAO,CAAE,SAAA,CAAWA,CAAAA,CAAK,SAAA,CAAW,CAAA,CAAG,SAAUA,CAAAA,CAAK,KAAA,CAAO,CAAE,CACjE,CAEO,SAASC,EAAYC,CAAAA,CAAiBC,CAAAA,CAAqB,CAChE,IAAMH,CAAAA,CAAM,IAAA,CAAK,KAAI,CACfI,CAAAA,CAAAA,CAAMJ,CAAAA,CAAME,CAAAA,CAAE,QAAA,EAAY,GAAA,CAC5BE,GAAM,EAAA,GACRF,CAAAA,CAAE,KAAA,CAAA,CAASC,CAAAA,CAAQD,CAAAA,CAAE,SAAA,EAAaE,CAAAA,CAClCF,CAAAA,CAAE,SAAA,CAAYC,CAAAA,CACdD,CAAAA,CAAE,QAAA,CAAWF,CAAAA,EAEjB,CASO,SAASK,CAAAA,CAAkBC,CAAAA,CAAkBC,CAAAA,CAAsE,CACxH,IAAMC,CAAAA,CAAUT,GAAmB,CAE7BU,CAAAA,CAAM,IAAIC,CAAAA,CAAY,SAAA,CAAU,CACpC,OAAQ,CAACC,CAAAA,CAASC,GAAAA,CAAQC,GAAAA,GAAY,CACpC,IAAMC,EAAUF,GAAAA,CAAO,UAAA,EAAc,CAAA,CAC/BG,CAAAA,CAAMH,GAAAA,CAAO,KAAA,EAAS,EACtBI,CAAAA,CAAUJ,GAAAA,CAAO,OAAA,EAAW,EAAA,CAC5BK,CAAAA,CAAc,IAAA,CAAK,MAAMD,CAAAA,CAAUF,CAAAA,CAAU,GAAG,CAAA,CAChDI,CAAAA,CAASC,CAAAA,CAAM,IAAI,SAAS,CAAA,CAChCR,CAAAA,CAAQ,eAAA,CAAiB,MAAA,CAAOM,CAAW,CAAA,CAC3CN,CAAAA,CAAQ,iBAAA,CAAmB,MAAA,CAAOK,CAAAA,CAAUC,CAAW,CACzD,CAAA,CACMG,EAAQP,GAAAA,EAAmC,QAAA,EAAYP,CAAAA,CACvDe,CAAAA,CAAQb,CAAAA,CAAQ,KAAA,CAChBc,EAAMD,CAAAA,CAAQ,CAAA,CAAA,CAAMd,CAAAA,CAAQQ,CAAAA,EAAOM,CAAAA,CAAS,CAAA,CAClD,OAAO,CACL,CAAA,EAAGE,CAAa,CAAA,CAAA,EAAIJ,CAAAA,CAAM,IAAA,CAAKC,CAAI,CAAC,CAAA,CAAA,CACpCF,CAAAA,CACAC,CAAAA,CAAM,KAAA,CAAM,CAAA,EAAGL,EAAQ,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAA,CAAG,CAAA,CACpCK,CAAAA,CAAM,IAAI,CAAA,EAAGK,GAAAA,CAAYT,CAAG,CAAC,CAAA,GAAA,EAAMS,GAAAA,CAAYjB,CAAK,CAAC,CAAA,CAAE,CAAA,CACvDY,CAAAA,CAAM,GAAA,CAAI,SAAS,CAAA,CAAE,CAAA,EAAGK,GAAAA,CAAYH,CAAK,CAAC,CAAA,EAAA,CAAI,CAAA,CAC9CF,CAAAA,CAAM,IAAI,CAAA,IAAA,EAAOM,CAAAA,CAAeH,CAAAA,CAAM,GAAI,CAAC,CAAA,CAAE,CAC/C,CAAA,CAAE,IAAA,CAAK,GAAG,CACZ,CAAA,CACA,eAAA,CAAiB,SACjB,iBAAA,CAAmB,QAAA,CACnB,UAAA,CAAY,IAAA,CACZ,eAAA,CAAiB,KAAA,CACjB,eAAgB,IAClB,CAAC,CAAA,CAED,OAAAb,CAAAA,CAAI,KAAA,CAAMF,EAAO,CAAA,CAAG,CAAE,QAAA,CAAAD,CAAS,CAAC,CAAA,CACzB,CAAE,GAAA,CAAAG,CAAAA,CAAK,OAAA,CAAAD,CAAQ,CACxB,CAEO,SAASkB,CAAAA,CAAejB,CAAAA,CAA4BD,CAAAA,CAAuBL,CAAAA,CAAqB,CACrGF,CAAAA,CAAYO,CAAAA,CAASL,CAAK,CAAA,CAC1BM,CAAAA,CAAI,MAAA,CAAON,CAAK,EAClB","file":"chunk-EPDVSZII.js","sourcesContent":["import cliProgress from 'cli-progress'\nimport chalk from 'chalk'\nimport { formatBytes, formatDuration } from '../utils/format.js'\nimport { isCI, isJsonMode } from './index.js'\nimport { PROGRESS_MARK } from './brand.js'\n\ninterface SpeedTracker {\n startTime: number\n lastBytes: number\n lastTime: number\n speed: number\n}\n\nexport function createSpeedTracker(): SpeedTracker {\n const now = Date.now()\n return { startTime: now, lastBytes: 0, lastTime: now, speed: 0 }\n}\n\nexport function updateSpeed(t: SpeedTracker, bytes: number): void {\n const now = Date.now()\n const dt = (now - t.lastTime) / 1000\n if (dt >= 0.3) {\n t.speed = (bytes - t.lastBytes) / dt\n t.lastBytes = bytes\n t.lastTime = now\n }\n}\n\nexport function speedInfo(t: SpeedTracker, total: number): string {\n const speed = t.speed\n const elapsed = (Date.now() - t.startTime) / 1000\n const eta = speed > 0 ? ((total - t.lastBytes) / speed) : 0\n return `${chalk.hex('#4FC3F7')(`${formatBytes(speed)}/s`)} ${chalk.dim(`· ETA ${formatDuration(eta * 1000)}`)}`\n}\n\nexport function createProgressBar(filename: string, total: number): { bar: cliProgress.SingleBar; tracker: SpeedTracker } {\n const tracker = createSpeedTracker()\n\n const bar = new cliProgress.SingleBar({\n format: (options, params, payload) => {\n const percent = params.percentage ?? 0\n const val = params.value ?? 0\n const barSize = params.barsize ?? 20\n const completeLen = Math.round(barSize * percent / 100)\n const barStr = chalk.hex('#7C4DFF')(\n options.barCompleteChar!.repeat(completeLen) +\n options.barIncompleteChar!.repeat(barSize - completeLen)\n )\n const name = (payload as { filename?: string })?.filename ?? filename\n const speed = tracker.speed\n const eta = speed > 0 ? ((total - val) / speed) : 0\n return [\n `${PROGRESS_MARK} ${chalk.bold(name)}`,\n barStr,\n chalk.white(`${percent.toFixed(0)}%`),\n chalk.dim(`${formatBytes(val)} / ${formatBytes(total)}`),\n chalk.hex('#4FC3F7')(`${formatBytes(speed)}/s`),\n chalk.dim(`ETA ${formatDuration(eta * 1000)}`),\n ].join(' ')\n },\n barCompleteChar: '█',\n barIncompleteChar: '░',\n hideCursor: true,\n clearOnComplete: false,\n stopOnComplete: true,\n })\n\n bar.start(total, 0, { filename })\n return { bar, tracker }\n}\n\nexport function updateProgress(bar: cliProgress.SingleBar, tracker: SpeedTracker, bytes: number): void {\n updateSpeed(tracker, bytes)\n bar.update(bytes)\n}\n"]}
@@ -1,2 +1,2 @@
1
- import {f,m}from'./chunk-QT7R3AXE.js';import g from'cli-table3';import f$1 from'chalk';function a(r,t={}){return new g({head:r.map(e=>f$1.bold(e)),colAligns:t.colAligns,style:{head:[],border:[],"padding-left":1,"padding-right":1,...t.style},chars:{top:"\u2500","top-mid":"\u252C","top-left":"\u250C","top-right":"\u2510",bottom:"\u2500","bottom-mid":"\u2534","bottom-left":"\u2514","bottom-right":"\u2518",left:"\u2502","left-mid":"\u251C",mid:"\u2500","mid-mid":"\u253C",right:"\u2502","right-mid":"\u2524",middle:"\u2502"},...t.compact?{chars:{top:"","top-mid":"","top-left":"","top-right":"",bottom:"","bottom-mid":"","bottom-left":"","bottom-right":"",left:"","left-mid":"",mid:"","mid-mid":"",right:"","right-mid":"",middle:""},style:{"padding-left":0,"padding-right":2}}:{}})}function b(r,t){if(f())return m(r),"";let e=a(t.map(o=>o.label),{colAligns:t.map(o=>o.align??"left")});for(let o of r)e.push(t.map(i=>{let n=o[i.key];return i.format?i.format(n):String(n??"")}));return e.toString()}function c(r,t){if(f())return m(r),"";let e=a(t.map(o=>o.label),{colAligns:t.map(o=>o.align??"left"),compact:true});for(let o of r)e.push(t.map(i=>{let n=o[i.key];return i.format?i.format(n):String(n??"")}));return e.toString()}export{b as a,c as b};//# sourceMappingURL=chunk-THMWE2I6.js.map
2
- //# sourceMappingURL=chunk-THMWE2I6.js.map
1
+ import {g,n}from'./chunk-EMRHLWPD.js';import g$1 from'cli-table3';import f from'chalk';function a(r,t={}){return new g$1({head:r.map(e=>f.bold(e)),colAligns:t.colAligns,style:{head:[],border:[],"padding-left":1,"padding-right":1,...t.style},chars:{top:"\u2500","top-mid":"\u252C","top-left":"\u250C","top-right":"\u2510",bottom:"\u2500","bottom-mid":"\u2534","bottom-left":"\u2514","bottom-right":"\u2518",left:"\u2502","left-mid":"\u251C",mid:"\u2500","mid-mid":"\u253C",right:"\u2502","right-mid":"\u2524",middle:"\u2502"},...t.compact?{chars:{top:"","top-mid":"","top-left":"","top-right":"",bottom:"","bottom-mid":"","bottom-left":"","bottom-right":"",left:"","left-mid":"",mid:"","mid-mid":"",right:"","right-mid":"",middle:""},style:{"padding-left":0,"padding-right":2}}:{}})}function b(r,t){if(g())return n(r),"";let e=a(t.map(o=>o.label),{colAligns:t.map(o=>o.align??"left")});for(let o of r)e.push(t.map(i=>{let n=o[i.key];return i.format?i.format(n):String(n??"")}));return e.toString()}function c(r,t){if(g())return n(r),"";let e=a(t.map(o=>o.label),{colAligns:t.map(o=>o.align??"left"),compact:true});for(let o of r)e.push(t.map(i=>{let n=o[i.key];return i.format?i.format(n):String(n??"")}));return e.toString()}export{b as a,c as b};//# sourceMappingURL=chunk-FNCZD2QB.js.map
2
+ //# sourceMappingURL=chunk-FNCZD2QB.js.map