squidcloudctl 1.2.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (735) hide show
  1. package/README.md +72 -0
  2. package/dist/auth-revoke-LTTGYMMO.js +2 -0
  3. package/dist/auth-revoke-LTTGYMMO.js.map +1 -0
  4. package/dist/auth-sessions-ZVZIABS6.js +2 -0
  5. package/dist/auth-sessions-ZVZIABS6.js.map +1 -0
  6. package/dist/auth-status-X4HCOXHF.js +2 -0
  7. package/dist/auth-status-X4HCOXHF.js.map +1 -0
  8. package/dist/bin/squidcloud.js +189 -3
  9. package/dist/bin/squidcloud.js.map +1 -1
  10. package/dist/chunk-2RAH2YAY.js +6 -0
  11. package/dist/chunk-2RAH2YAY.js.map +1 -0
  12. package/dist/chunk-3E23ZFCV.js +2 -0
  13. package/dist/chunk-3E23ZFCV.js.map +1 -0
  14. package/dist/chunk-3JD6INFN.js +2 -0
  15. package/dist/chunk-3JD6INFN.js.map +1 -0
  16. package/dist/chunk-3XXAN3BP.js +2 -0
  17. package/dist/chunk-3XXAN3BP.js.map +1 -0
  18. package/dist/chunk-43FK57CR.js +2 -0
  19. package/dist/chunk-43FK57CR.js.map +1 -0
  20. package/dist/chunk-4625KLCT.js +2 -0
  21. package/dist/chunk-4625KLCT.js.map +1 -0
  22. package/dist/chunk-4EBJSKII.js +2 -0
  23. package/dist/chunk-4EBJSKII.js.map +1 -0
  24. package/dist/chunk-4FZZ3I76.js +3 -0
  25. package/dist/chunk-4FZZ3I76.js.map +1 -0
  26. package/dist/chunk-4GV6L47P.js +2 -0
  27. package/dist/chunk-4GV6L47P.js.map +1 -0
  28. package/dist/chunk-4VH6P4GC.js +2 -0
  29. package/dist/chunk-4VH6P4GC.js.map +1 -0
  30. package/dist/chunk-4VMT6FXR.js +2 -0
  31. package/dist/chunk-4VMT6FXR.js.map +1 -0
  32. package/dist/chunk-5JWZKMAI.js +2 -0
  33. package/dist/chunk-5JWZKMAI.js.map +1 -0
  34. package/dist/chunk-5TYVWTHC.js +2 -0
  35. package/dist/chunk-5TYVWTHC.js.map +1 -0
  36. package/dist/chunk-5XSOEZ7F.js +2 -0
  37. package/dist/chunk-5XSOEZ7F.js.map +1 -0
  38. package/dist/chunk-632C2FZM.js +2 -0
  39. package/dist/chunk-632C2FZM.js.map +1 -0
  40. package/dist/chunk-6IXURJIU.js +2 -0
  41. package/dist/chunk-6IXURJIU.js.map +1 -0
  42. package/dist/chunk-6LLJ6P3U.js +2 -0
  43. package/dist/chunk-6LLJ6P3U.js.map +1 -0
  44. package/dist/chunk-7JVXW7C4.js +2 -0
  45. package/dist/chunk-7JVXW7C4.js.map +1 -0
  46. package/dist/chunk-7TMB3QXF.js +2 -0
  47. package/dist/chunk-7TMB3QXF.js.map +1 -0
  48. package/dist/chunk-ADVALEDT.js +2 -0
  49. package/dist/chunk-ADVALEDT.js.map +1 -0
  50. package/dist/chunk-AN6SA3TI.js +2 -0
  51. package/dist/chunk-AN6SA3TI.js.map +1 -0
  52. package/dist/chunk-AZ4774YQ.js +2 -0
  53. package/dist/chunk-AZ4774YQ.js.map +1 -0
  54. package/dist/chunk-BDRSOUY3.js +2 -0
  55. package/dist/chunk-BDRSOUY3.js.map +1 -0
  56. package/dist/chunk-BDUD2TSS.js +2 -0
  57. package/dist/chunk-BDUD2TSS.js.map +1 -0
  58. package/dist/chunk-BGOM6C6D.js +2 -0
  59. package/dist/chunk-BGOM6C6D.js.map +1 -0
  60. package/dist/chunk-BUG4O26P.js +2 -0
  61. package/dist/chunk-BUG4O26P.js.map +1 -0
  62. package/dist/chunk-BUKRJMQ5.js +2 -0
  63. package/dist/chunk-BUKRJMQ5.js.map +1 -0
  64. package/dist/chunk-C7M6KZGB.js +2 -0
  65. package/dist/chunk-C7M6KZGB.js.map +1 -0
  66. package/dist/chunk-CFZZRV3Z.js +2 -0
  67. package/dist/chunk-CFZZRV3Z.js.map +1 -0
  68. package/dist/chunk-CRT5ANG2.js +2 -0
  69. package/dist/chunk-CRT5ANG2.js.map +1 -0
  70. package/dist/chunk-E26CRSCS.js +2 -0
  71. package/dist/chunk-E26CRSCS.js.map +1 -0
  72. package/dist/chunk-E5PJTTE5.js +2 -0
  73. package/dist/chunk-E5PJTTE5.js.map +1 -0
  74. package/dist/chunk-E6UJ45WU.js +2 -0
  75. package/dist/chunk-E6UJ45WU.js.map +1 -0
  76. package/dist/chunk-EDD2NCQT.js +2 -0
  77. package/dist/chunk-EDD2NCQT.js.map +1 -0
  78. package/dist/chunk-FJ5D3ELC.js +2 -0
  79. package/dist/chunk-FJ5D3ELC.js.map +1 -0
  80. package/dist/chunk-GFTSNOCG.js +5 -0
  81. package/dist/chunk-GFTSNOCG.js.map +1 -0
  82. package/dist/chunk-GMKCZ2PB.js +2 -0
  83. package/dist/chunk-GMKCZ2PB.js.map +1 -0
  84. package/dist/chunk-GRZ7FAK4.js +2 -0
  85. package/dist/chunk-GRZ7FAK4.js.map +1 -0
  86. package/dist/chunk-GVYPGCEO.js +2 -0
  87. package/dist/chunk-GVYPGCEO.js.map +1 -0
  88. package/dist/chunk-H3FD4YYC.js +2 -0
  89. package/dist/chunk-H3FD4YYC.js.map +1 -0
  90. package/dist/chunk-I3DVKNFK.js +2 -0
  91. package/dist/chunk-I3DVKNFK.js.map +1 -0
  92. package/dist/chunk-IER3WJEG.js +2 -0
  93. package/dist/chunk-IER3WJEG.js.map +1 -0
  94. package/dist/chunk-J5MM66CO.js +2 -0
  95. package/dist/chunk-J5MM66CO.js.map +1 -0
  96. package/dist/chunk-K4UZNQFC.js +2 -0
  97. package/dist/chunk-K4UZNQFC.js.map +1 -0
  98. package/dist/chunk-KJIMUYAU.js +2 -0
  99. package/dist/chunk-KJIMUYAU.js.map +1 -0
  100. package/dist/chunk-KLPKNHXU.js +2 -0
  101. package/dist/chunk-KLPKNHXU.js.map +1 -0
  102. package/dist/chunk-KQE3YLI3.js +2 -0
  103. package/dist/chunk-KQE3YLI3.js.map +1 -0
  104. package/dist/chunk-KZ7RBLQY.js +2 -0
  105. package/dist/chunk-KZ7RBLQY.js.map +1 -0
  106. package/dist/chunk-LDYPQMLZ.js +2 -0
  107. package/dist/chunk-LDYPQMLZ.js.map +1 -0
  108. package/dist/chunk-LFPHETWG.js +2 -0
  109. package/dist/chunk-LFPHETWG.js.map +1 -0
  110. package/dist/chunk-M6RN7Y3S.js +2 -0
  111. package/dist/chunk-M6RN7Y3S.js.map +1 -0
  112. package/dist/chunk-N6QOCJDY.js +2 -0
  113. package/dist/chunk-N6QOCJDY.js.map +1 -0
  114. package/dist/chunk-NB4OO3VK.js +2 -0
  115. package/dist/chunk-NB4OO3VK.js.map +1 -0
  116. package/dist/chunk-NJC4W2S6.js +2 -0
  117. package/dist/chunk-NJC4W2S6.js.map +1 -0
  118. package/dist/chunk-NJCALUUB.js +2 -0
  119. package/dist/chunk-NJCALUUB.js.map +1 -0
  120. package/dist/chunk-NS5IBNC2.js +2 -0
  121. package/dist/chunk-NS5IBNC2.js.map +1 -0
  122. package/dist/chunk-OCDE2G25.js +2 -0
  123. package/dist/chunk-OCDE2G25.js.map +1 -0
  124. package/dist/chunk-OEURGJIH.js +2 -0
  125. package/dist/chunk-OEURGJIH.js.map +1 -0
  126. package/dist/chunk-OPZJKTOV.js +2 -0
  127. package/dist/chunk-OPZJKTOV.js.map +1 -0
  128. package/dist/{chunk-N3AD2QRA.js → chunk-OSI5H2T5.js} +2 -2
  129. package/dist/chunk-OSI5H2T5.js.map +1 -0
  130. package/dist/chunk-OXJ6DOWC.js +2 -0
  131. package/dist/chunk-OXJ6DOWC.js.map +1 -0
  132. package/dist/chunk-P42LDK4T.js +2 -0
  133. package/dist/chunk-P42LDK4T.js.map +1 -0
  134. package/dist/chunk-PGDN5F2F.js +2 -0
  135. package/dist/chunk-PGDN5F2F.js.map +1 -0
  136. package/dist/chunk-PVZ4PRGM.js +2 -0
  137. package/dist/chunk-PVZ4PRGM.js.map +1 -0
  138. package/dist/chunk-QCDCTQU5.js +2 -0
  139. package/dist/chunk-QCDCTQU5.js.map +1 -0
  140. package/dist/chunk-QEG6LP5X.js +2 -0
  141. package/dist/chunk-QEG6LP5X.js.map +1 -0
  142. package/dist/chunk-QF3NWEHO.js +2 -0
  143. package/dist/chunk-QF3NWEHO.js.map +1 -0
  144. package/dist/chunk-QLLHU2RS.js +2 -0
  145. package/dist/chunk-QLLHU2RS.js.map +1 -0
  146. package/dist/chunk-R2PV6TY4.js +2 -0
  147. package/dist/chunk-R2PV6TY4.js.map +1 -0
  148. package/dist/chunk-RREABTVT.js +2 -0
  149. package/dist/chunk-RREABTVT.js.map +1 -0
  150. package/dist/chunk-RRGGKRRS.js +2 -0
  151. package/dist/chunk-RRGGKRRS.js.map +1 -0
  152. package/dist/chunk-RYEKRFP5.js +2 -0
  153. package/dist/chunk-RYEKRFP5.js.map +1 -0
  154. package/dist/chunk-SBNM6EQO.js +2 -0
  155. package/dist/chunk-SBNM6EQO.js.map +1 -0
  156. package/dist/chunk-T6VFW2SW.js +2 -0
  157. package/dist/chunk-T6VFW2SW.js.map +1 -0
  158. package/dist/chunk-TAS2JGNI.js +2 -0
  159. package/dist/chunk-TAS2JGNI.js.map +1 -0
  160. package/dist/chunk-UO2SSIIZ.js +3 -0
  161. package/dist/chunk-UO2SSIIZ.js.map +1 -0
  162. package/dist/chunk-UYERZEPM.js +2 -0
  163. package/dist/chunk-UYERZEPM.js.map +1 -0
  164. package/dist/chunk-V3UZYH25.js +2 -0
  165. package/dist/chunk-V3UZYH25.js.map +1 -0
  166. package/dist/chunk-VBOLWWMB.js +2 -0
  167. package/dist/chunk-VBOLWWMB.js.map +1 -0
  168. package/dist/chunk-VDWSP3BD.js +3 -0
  169. package/dist/chunk-VDWSP3BD.js.map +1 -0
  170. package/dist/chunk-VPEATOB2.js +2 -0
  171. package/dist/chunk-VPEATOB2.js.map +1 -0
  172. package/dist/chunk-VXPI52BF.js +2 -0
  173. package/dist/chunk-VXPI52BF.js.map +1 -0
  174. package/dist/chunk-WOMYFCVM.js +2 -0
  175. package/dist/chunk-WOMYFCVM.js.map +1 -0
  176. package/dist/chunk-WVCLY4PF.js +2 -0
  177. package/dist/chunk-WVCLY4PF.js.map +1 -0
  178. package/dist/chunk-WVS5JOCE.js +2 -0
  179. package/dist/chunk-WVS5JOCE.js.map +1 -0
  180. package/dist/chunk-X33BC54Z.js +2 -0
  181. package/dist/chunk-X33BC54Z.js.map +1 -0
  182. package/dist/chunk-XHGWAAJS.js +2 -0
  183. package/dist/chunk-XHGWAAJS.js.map +1 -0
  184. package/dist/chunk-XJTNICPE.js +2 -0
  185. package/dist/chunk-XJTNICPE.js.map +1 -0
  186. package/dist/chunk-YBKX6Q3Q.js +2 -0
  187. package/dist/chunk-YBKX6Q3Q.js.map +1 -0
  188. package/dist/chunk-YE2FF227.js +2 -0
  189. package/dist/chunk-YE2FF227.js.map +1 -0
  190. package/dist/chunk-YMTB3NHI.js +2 -0
  191. package/dist/chunk-YMTB3NHI.js.map +1 -0
  192. package/dist/chunk-YQQMT67S.js +2 -0
  193. package/dist/chunk-YQQMT67S.js.map +1 -0
  194. package/dist/chunk-YRSMMECJ.js +2 -0
  195. package/dist/chunk-YRSMMECJ.js.map +1 -0
  196. package/dist/chunk-Z4BTW3UI.js +2 -0
  197. package/dist/chunk-Z4BTW3UI.js.map +1 -0
  198. package/dist/chunk-ZGBTOZ7M.js +2 -0
  199. package/dist/chunk-ZGBTOZ7M.js.map +1 -0
  200. package/dist/chunk-ZQ2OIVG3.js +2 -0
  201. package/dist/chunk-ZQ2OIVG3.js.map +1 -0
  202. package/dist/chunk-ZXNTK3KX.js +2 -0
  203. package/dist/chunk-ZXNTK3KX.js.map +1 -0
  204. package/dist/chunk-ZY4RVPTF.js +2 -0
  205. package/dist/chunk-ZY4RVPTF.js.map +1 -0
  206. package/dist/chunk-ZZSRCXWK.js +2 -0
  207. package/dist/chunk-ZZSRCXWK.js.map +1 -0
  208. package/dist/collab-activity-R6AYISVI.js +2 -0
  209. package/dist/collab-activity-R6AYISVI.js.map +1 -0
  210. package/dist/collab-invite-TUWJGMNS.js +2 -0
  211. package/dist/collab-invite-TUWJGMNS.js.map +1 -0
  212. package/dist/collab-leave-GRSWXTOP.js +2 -0
  213. package/dist/collab-leave-GRSWXTOP.js.map +1 -0
  214. package/dist/collab-list-ZKZTNIGX.js +2 -0
  215. package/dist/collab-list-ZKZTNIGX.js.map +1 -0
  216. package/dist/collab-remove-2HYNLLLX.js +2 -0
  217. package/dist/collab-remove-2HYNLLLX.js.map +1 -0
  218. package/dist/collab-transfer-HC5KHBV5.js +2 -0
  219. package/dist/collab-transfer-HC5KHBV5.js.map +1 -0
  220. package/dist/commands/auth/auth-status.js +29 -0
  221. package/dist/commands/auth/index.js +2 -0
  222. package/dist/commands/auth/index.js.map +1 -0
  223. package/dist/commands/auth/login-device.js +70 -0
  224. package/dist/commands/auth/login-oauth.js +81 -0
  225. package/dist/commands/auth/logout.js +23 -0
  226. package/dist/commands/auth/whoami.js +21 -0
  227. package/dist/commands/collab/index.js +2 -0
  228. package/dist/commands/collab/index.js.map +1 -0
  229. package/dist/commands/deploy/index.js +2 -0
  230. package/dist/commands/deploy/index.js.map +1 -0
  231. package/dist/commands/filereq/client.js +37 -0
  232. package/dist/commands/filereq/create.js +36 -0
  233. package/dist/commands/filereq/delete.js +18 -0
  234. package/dist/commands/filereq/list.js +17 -0
  235. package/dist/commands/filereq/submissions.js +29 -0
  236. package/dist/commands/files/download.js +23 -0
  237. package/dist/commands/files/list.js +33 -0
  238. package/dist/commands/files/upload.js +57 -0
  239. package/dist/commands/forms/index.js +2 -0
  240. package/dist/commands/forms/index.js.map +1 -0
  241. package/dist/commands/fs/binary.js +110 -0
  242. package/dist/commands/fs/mount.js +46 -0
  243. package/dist/commands/fs/status.js +18 -0
  244. package/dist/commands/fs/stop.js +19 -0
  245. package/dist/commands/fs/webdav.js +1 -0
  246. package/dist/commands/health.js +20 -0
  247. package/dist/commands/host/api.js +186 -0
  248. package/dist/commands/host/keys.js +63 -0
  249. package/dist/commands/host/status.js +15 -0
  250. package/dist/commands/host/stop.js +19 -0
  251. package/dist/commands/logs/index.js +2 -0
  252. package/dist/commands/logs/index.js.map +1 -0
  253. package/dist/commands/monitor/index.js +2 -0
  254. package/dist/commands/monitor/index.js.map +1 -0
  255. package/dist/commands/scripts/index.js +2 -0
  256. package/dist/commands/scripts/index.js.map +1 -0
  257. package/dist/commands/secrets/list.js +14 -0
  258. package/dist/commands/secrets/secrets-create.js +28 -0
  259. package/dist/commands/secrets/secrets-delete.js +9 -0
  260. package/dist/commands/secrets/secrets-list.js +1 -0
  261. package/dist/commands/secrets/secrets-rename.js +9 -0
  262. package/dist/commands/secrets/secrets-verify.js +16 -0
  263. package/dist/commands/share/create.js +34 -0
  264. package/dist/commands/sign/index.js +2 -0
  265. package/dist/commands/sign/index.js.map +1 -0
  266. package/dist/commands/sites/client.js +20 -0
  267. package/dist/commands/sites/index.js +2 -0
  268. package/dist/commands/sites/index.js.map +1 -0
  269. package/dist/commands/sites/list.js +18 -0
  270. package/dist/commands/sites/open.js +12 -0
  271. package/dist/commands/sites/unpublish.js +32 -0
  272. package/dist/commands/sites/visibility.js +16 -0
  273. package/dist/commands/storage/commands.js +114 -0
  274. package/dist/commands/storage/folders-create.js +15 -0
  275. package/dist/commands/storage/folders-helpers.js +8 -0
  276. package/dist/commands/storage/folders-list.js +14 -0
  277. package/dist/commands/storage/index.js +2 -0
  278. package/dist/commands/storage/index.js.map +1 -0
  279. package/dist/commands/storage/storage-cp.js +1 -0
  280. package/dist/commands/storage/storage-download.js +1 -0
  281. package/dist/commands/storage/storage-info.js +1 -0
  282. package/dist/commands/storage/storage-ls.js +1 -0
  283. package/dist/commands/storage/storage-mkdir.js +15 -0
  284. package/dist/commands/storage/storage-mv.js +1 -0
  285. package/dist/commands/storage/storage-rm.js +1 -0
  286. package/dist/commands/storage/storage-search.js +1 -0
  287. package/dist/commands/storage/storage-upload.js +1 -0
  288. package/dist/commands/time/index.js +2 -0
  289. package/dist/commands/time/index.js.map +1 -0
  290. package/dist/commands/util/index.js +2 -0
  291. package/dist/commands/util/index.js.map +1 -0
  292. package/dist/commands/util/version.js +16 -0
  293. package/dist/completion-DY4JRFCG.js +2 -0
  294. package/dist/completion-DY4JRFCG.js.map +1 -0
  295. package/dist/config-GGD4POJI.js +2 -0
  296. package/dist/{config-PL34OPDL.js.map → config-GGD4POJI.js.map} +1 -1
  297. package/dist/config-delete-K42TE5KR.js +2 -0
  298. package/dist/config-delete-K42TE5KR.js.map +1 -0
  299. package/dist/config-get-7BFP6F4Q.js +2 -0
  300. package/dist/config-get-7BFP6F4Q.js.map +1 -0
  301. package/dist/config-reset-BIGP2K2H.js +2 -0
  302. package/dist/config-reset-BIGP2K2H.js.map +1 -0
  303. package/dist/config-set-C6PZ3J6Q.js +2 -0
  304. package/dist/config-set-C6PZ3J6Q.js.map +1 -0
  305. package/dist/create-G6YH4DLB.js +2 -0
  306. package/dist/create-G6YH4DLB.js.map +1 -0
  307. package/dist/create-GMSJQNJC.js +2 -0
  308. package/dist/create-GMSJQNJC.js.map +1 -0
  309. package/dist/credits-6PQPN6AJ.js +2 -0
  310. package/dist/credits-6PQPN6AJ.js.map +1 -0
  311. package/dist/doctor-WVBOVEGI.js +2 -0
  312. package/dist/doctor-WVBOVEGI.js.map +1 -0
  313. package/dist/download-C3JFSCQ4.js +2 -0
  314. package/dist/download-C3JFSCQ4.js.map +1 -0
  315. package/dist/feedback-A522XU46.js +2 -0
  316. package/dist/feedback-A522XU46.js.map +1 -0
  317. package/dist/forms-clear-OVSVO22O.js +2 -0
  318. package/dist/forms-clear-OVSVO22O.js.map +1 -0
  319. package/dist/forms-create-BLNCFEXX.js +2 -0
  320. package/dist/forms-create-BLNCFEXX.js.map +1 -0
  321. package/dist/forms-delete-DS2YSDUQ.js +2 -0
  322. package/dist/forms-delete-DS2YSDUQ.js.map +1 -0
  323. package/dist/forms-embed-WIFFAJZZ.js +2 -0
  324. package/dist/forms-embed-WIFFAJZZ.js.map +1 -0
  325. package/dist/forms-export-FQQI7SV2.js +2 -0
  326. package/dist/forms-export-FQQI7SV2.js.map +1 -0
  327. package/dist/forms-info-QXGLAQBN.js +2 -0
  328. package/dist/forms-info-QXGLAQBN.js.map +1 -0
  329. package/dist/forms-list-2CNVSPKA.js +2 -0
  330. package/dist/forms-list-2CNVSPKA.js.map +1 -0
  331. package/dist/forms-submissions-Q3FV3AC3.js +2 -0
  332. package/dist/forms-submissions-Q3FV3AC3.js.map +1 -0
  333. package/dist/health-Q5OYY2QY.js +2 -0
  334. package/dist/health-Q5OYY2QY.js.map +1 -0
  335. package/dist/lib/api/cert-pin.js +28 -0
  336. package/dist/lib/api/client.js +132 -0
  337. package/dist/lib/api/index.js +1 -0
  338. package/dist/lib/api/index.js.map +1 -0
  339. package/dist/lib/api/upload-res54.js +104 -0
  340. package/dist/lib/auth/constants.js +6 -0
  341. package/dist/lib/auth/fingerprint.js +39 -0
  342. package/dist/lib/auth/index.js +5 -0
  343. package/dist/lib/auth/index.js.map +1 -0
  344. package/dist/lib/auth/keychain.js +56 -0
  345. package/dist/lib/auth/oauth-session.js +89 -0
  346. package/dist/lib/auth/refresh.js +93 -0
  347. package/dist/lib/auth/session.js +34 -0
  348. package/dist/lib/auth/ssp-handshake.js +72 -0
  349. package/dist/lib/crypto/encrypt-file.js +64 -0
  350. package/dist/lib/crypto/index.js +2 -0
  351. package/dist/lib/crypto/index.js.map +1 -0
  352. package/dist/lib/crypto/sanitize.js +19 -0
  353. package/dist/lib/crypto/ssp.js +80 -0
  354. package/dist/lib/deploy/allowlist.js +16 -0
  355. package/dist/lib/deploy/detector.js +53 -0
  356. package/dist/lib/deploy/index.js +2 -0
  357. package/dist/lib/deploy/index.js.map +1 -0
  358. package/dist/lib/forms/index.js +1 -0
  359. package/dist/lib/host/microredis.js +191 -0
  360. package/dist/lib/host/security.js +142 -0
  361. package/dist/lib/host/server.js +240 -0
  362. package/dist/lib/output/banner.js +36 -0
  363. package/dist/lib/output/brand.js +37 -0
  364. package/dist/lib/output/index.js +11 -0
  365. package/dist/lib/output/index.js.map +1 -0
  366. package/dist/lib/output/logger.js +114 -0
  367. package/dist/lib/output/mascot.js +31 -0
  368. package/dist/lib/output/spinner.js +44 -0
  369. package/dist/lib/output/table.js +81 -0
  370. package/dist/lib/picker.js +71 -0
  371. package/dist/lib/refs-types.js +1 -0
  372. package/dist/lib/refs.js +81 -0
  373. package/dist/lib/transfer.js +168 -0
  374. package/dist/lib/upload/index.js +1 -0
  375. package/dist/lib/upload/index.js.map +1 -0
  376. package/dist/lib/utils/ci-detect.js +28 -0
  377. package/dist/lib/utils/format.js +70 -0
  378. package/dist/lib/utils/index.js +2 -0
  379. package/dist/lib/utils/index.js.map +1 -0
  380. package/dist/lib/utils/open.js +16 -0
  381. package/dist/list-3P3SIMDW.js +2 -0
  382. package/dist/list-3P3SIMDW.js.map +1 -0
  383. package/dist/list-BK2B4CQI.js +4 -0
  384. package/dist/list-BK2B4CQI.js.map +1 -0
  385. package/dist/list-PVSQ7A54.js +4 -0
  386. package/dist/list-PVSQ7A54.js.map +1 -0
  387. package/dist/login-device-ATMWTABG.js +2 -0
  388. package/dist/login-device-ATMWTABG.js.map +1 -0
  389. package/dist/login-oauth-CDU3A5QB.js +2 -0
  390. package/dist/login-oauth-CDU3A5QB.js.map +1 -0
  391. package/dist/logout-AV7RCXWJ.js +2 -0
  392. package/dist/logout-AV7RCXWJ.js.map +1 -0
  393. package/dist/logs-export-M2FQFCNI.js +2 -0
  394. package/dist/logs-export-M2FQFCNI.js.map +1 -0
  395. package/dist/logs-search-JSCT3K5O.js +2 -0
  396. package/dist/logs-search-JSCT3K5O.js.map +1 -0
  397. package/dist/logs-tail-W5YO2QRG.js +2 -0
  398. package/dist/logs-tail-W5YO2QRG.js.map +1 -0
  399. package/dist/monitor-5AKUYIKP.js +2 -0
  400. package/dist/monitor-5AKUYIKP.js.map +1 -0
  401. package/dist/monitor-automations-YAAS7N6L.js +2 -0
  402. package/dist/monitor-automations-YAAS7N6L.js.map +1 -0
  403. package/dist/monitor-pipelines-JO4DQ6T4.js +2 -0
  404. package/dist/monitor-pipelines-JO4DQ6T4.js.map +1 -0
  405. package/dist/monitor-sites-5IEY3Y2F.js +2 -0
  406. package/dist/monitor-sites-5IEY3Y2F.js.map +1 -0
  407. package/dist/monitor-storage-6HG6URCV.js +2 -0
  408. package/dist/monitor-storage-6HG6URCV.js.map +1 -0
  409. package/dist/oauth-session-KBMWAOVL.js +2 -0
  410. package/dist/oauth-session-KBMWAOVL.js.map +1 -0
  411. package/dist/registry/index.js +61 -0
  412. package/dist/registry/index.js.map +1 -0
  413. package/dist/scripts-cancel-2XO47DN7.js +2 -0
  414. package/dist/scripts-cancel-2XO47DN7.js.map +1 -0
  415. package/dist/scripts-delete-A6TXCHNO.js +2 -0
  416. package/dist/scripts-delete-A6TXCHNO.js.map +1 -0
  417. package/dist/scripts-disable-7GIY3YOK.js +2 -0
  418. package/dist/scripts-disable-7GIY3YOK.js.map +1 -0
  419. package/dist/scripts-enable-NGIS5VDP.js +2 -0
  420. package/dist/scripts-enable-NGIS5VDP.js.map +1 -0
  421. package/dist/scripts-init-J37ZGUDW.js +2 -0
  422. package/dist/scripts-init-J37ZGUDW.js.map +1 -0
  423. package/dist/scripts-list-ECFFKNOI.js +2 -0
  424. package/dist/scripts-list-ECFFKNOI.js.map +1 -0
  425. package/dist/scripts-logs-4DMITGNX.js +2 -0
  426. package/dist/scripts-logs-4DMITGNX.js.map +1 -0
  427. package/dist/scripts-run-CHHP53KW.js +2 -0
  428. package/dist/scripts-run-CHHP53KW.js.map +1 -0
  429. package/dist/scripts-status-YZTKCLMU.js +2 -0
  430. package/dist/scripts-status-YZTKCLMU.js.map +1 -0
  431. package/dist/scripts-validate-LGMQVRTC.js +2 -0
  432. package/dist/scripts-validate-LGMQVRTC.js.map +1 -0
  433. package/dist/scripts-watch-W2C4CBZZ.js +2 -0
  434. package/dist/scripts-watch-W2C4CBZZ.js.map +1 -0
  435. package/dist/secrets-audit-SZZ2RG77.js +2 -0
  436. package/dist/secrets-audit-SZZ2RG77.js.map +1 -0
  437. package/dist/secrets-create-QLUNM3JL.js +3 -0
  438. package/dist/secrets-create-QLUNM3JL.js.map +1 -0
  439. package/dist/secrets-delete-ISNVSZVL.js +2 -0
  440. package/dist/secrets-delete-ISNVSZVL.js.map +1 -0
  441. package/dist/secrets-export-R7VPKQCW.js +3 -0
  442. package/dist/secrets-export-R7VPKQCW.js.map +1 -0
  443. package/dist/secrets-init-TKIIJKCB.js +13 -0
  444. package/dist/secrets-init-TKIIJKCB.js.map +1 -0
  445. package/dist/secrets-list-YPMO7PWR.js +2 -0
  446. package/dist/secrets-list-YPMO7PWR.js.map +1 -0
  447. package/dist/secrets-rename-X7Q6PLPI.js +2 -0
  448. package/dist/secrets-rename-X7Q6PLPI.js.map +1 -0
  449. package/dist/secrets-verify-GZCFB6RI.js +2 -0
  450. package/dist/secrets-verify-GZCFB6RI.js.map +1 -0
  451. package/dist/sign-cancel-H34SAG56.js +2 -0
  452. package/dist/sign-cancel-H34SAG56.js.map +1 -0
  453. package/dist/sign-download-3MAWJ2XB.js +2 -0
  454. package/dist/sign-download-3MAWJ2XB.js.map +1 -0
  455. package/dist/sign-list-NW5WYD4V.js +2 -0
  456. package/dist/sign-list-NW5WYD4V.js.map +1 -0
  457. package/dist/sign-request-HFI3KJ2L.js +2 -0
  458. package/dist/sign-request-HFI3KJ2L.js.map +1 -0
  459. package/dist/sign-status-BD7S2FEA.js +2 -0
  460. package/dist/sign-status-BD7S2FEA.js.map +1 -0
  461. package/dist/sign-verify-OCYA4RI3.js +2 -0
  462. package/dist/sign-verify-OCYA4RI3.js.map +1 -0
  463. package/dist/sites-analytics-AJIFXZEM.js +2 -0
  464. package/dist/sites-analytics-AJIFXZEM.js.map +1 -0
  465. package/dist/sites-delete-SDBENOY6.js +2 -0
  466. package/dist/sites-delete-SDBENOY6.js.map +1 -0
  467. package/dist/sites-deploys-WHLZTAYW.js +2 -0
  468. package/dist/sites-deploys-WHLZTAYW.js.map +1 -0
  469. package/dist/sites-info-RZJNVFFP.js +2 -0
  470. package/dist/sites-info-RZJNVFFP.js.map +1 -0
  471. package/dist/sites-list-DKZWNHLM.js +2 -0
  472. package/dist/sites-list-DKZWNHLM.js.map +1 -0
  473. package/dist/sites-logs-O35RH2CT.js +2 -0
  474. package/dist/sites-logs-O35RH2CT.js.map +1 -0
  475. package/dist/sites-open-QE6RD5JB.js +2 -0
  476. package/dist/sites-open-QE6RD5JB.js.map +1 -0
  477. package/dist/sites-purge-KROBLAUK.js +2 -0
  478. package/dist/sites-purge-KROBLAUK.js.map +1 -0
  479. package/dist/sites-rename-YMZQ5C37.js +2 -0
  480. package/dist/sites-rename-YMZQ5C37.js.map +1 -0
  481. package/dist/sites-rollback-OQXR2V5A.js +2 -0
  482. package/dist/sites-rollback-OQXR2V5A.js.map +1 -0
  483. package/dist/sites-unpublish-VKEPVVOB.js +2 -0
  484. package/dist/sites-unpublish-VKEPVVOB.js.map +1 -0
  485. package/dist/sites-visibility-Q2WXPRFB.js +2 -0
  486. package/dist/sites-visibility-Q2WXPRFB.js.map +1 -0
  487. package/dist/storage-cat-Z42FIYKB.js +2 -0
  488. package/dist/storage-cat-Z42FIYKB.js.map +1 -0
  489. package/dist/storage-clean-E3ZU5JVL.js +2 -0
  490. package/dist/storage-clean-E3ZU5JVL.js.map +1 -0
  491. package/dist/storage-cp-IBCATT2F.js +2 -0
  492. package/dist/storage-cp-IBCATT2F.js.map +1 -0
  493. package/dist/storage-diff-FX4QVDH7.js +2 -0
  494. package/dist/storage-diff-FX4QVDH7.js.map +1 -0
  495. package/dist/storage-download-ULJS52LJ.js +2 -0
  496. package/dist/storage-download-ULJS52LJ.js.map +1 -0
  497. package/dist/storage-info-HRE7ORAJ.js +2 -0
  498. package/dist/storage-info-HRE7ORAJ.js.map +1 -0
  499. package/dist/storage-ls-Z555BXZI.js +2 -0
  500. package/dist/storage-ls-Z555BXZI.js.map +1 -0
  501. package/dist/storage-mkdir-PODYCT7K.js +2 -0
  502. package/dist/storage-mkdir-PODYCT7K.js.map +1 -0
  503. package/dist/storage-mv-KHOZW76V.js +2 -0
  504. package/dist/storage-mv-KHOZW76V.js.map +1 -0
  505. package/dist/storage-rm-XJME2PBW.js +2 -0
  506. package/dist/storage-rm-XJME2PBW.js.map +1 -0
  507. package/dist/storage-search-2M3QMF4E.js +2 -0
  508. package/dist/storage-search-2M3QMF4E.js.map +1 -0
  509. package/dist/storage-share-6DANEN4S.js +2 -0
  510. package/dist/storage-share-6DANEN4S.js.map +1 -0
  511. package/dist/storage-tag-QGPV7RX3.js +2 -0
  512. package/dist/storage-tag-QGPV7RX3.js.map +1 -0
  513. package/dist/storage-unshare-DJCEMHE3.js +2 -0
  514. package/dist/storage-unshare-DJCEMHE3.js.map +1 -0
  515. package/dist/storage-upload-UKQYASCU.js +2 -0
  516. package/dist/storage-upload-UKQYASCU.js.map +1 -0
  517. package/dist/time-list-32LQSLS3.js +2 -0
  518. package/dist/time-list-32LQSLS3.js.map +1 -0
  519. package/dist/time-lock-5RHHTCYW.js +2 -0
  520. package/dist/time-lock-5RHHTCYW.js.map +1 -0
  521. package/dist/time-proof-7F7MGTC7.js +2 -0
  522. package/dist/time-proof-7F7MGTC7.js.map +1 -0
  523. package/dist/time-status-OC5Y5DI5.js +2 -0
  524. package/dist/time-status-OC5Y5DI5.js.map +1 -0
  525. package/dist/time-unlock-23PW3U3H.js +2 -0
  526. package/dist/time-unlock-23PW3U3H.js.map +1 -0
  527. package/dist/update-VAIGKTAJ.js +2 -0
  528. package/dist/update-VAIGKTAJ.js.map +1 -0
  529. package/dist/upload-ME5JGLCS.js +2 -0
  530. package/dist/upload-ME5JGLCS.js.map +1 -0
  531. package/dist/usage-HWFCDFQQ.js +2 -0
  532. package/dist/usage-HWFCDFQQ.js.map +1 -0
  533. package/dist/version-TFYCABEC.js +2 -0
  534. package/dist/version-TFYCABEC.js.map +1 -0
  535. package/dist/whoami-A65QZCK3.js +2 -0
  536. package/dist/whoami-A65QZCK3.js.map +1 -0
  537. package/package.json +30 -43
  538. package/dist/auth-revoke-DWV3OFW6.js +0 -2
  539. package/dist/auth-revoke-DWV3OFW6.js.map +0 -1
  540. package/dist/auth-sessions-D4RWXFPE.js +0 -2
  541. package/dist/auth-sessions-D4RWXFPE.js.map +0 -1
  542. package/dist/auth-status-EPQU6F63.js +0 -2
  543. package/dist/auth-status-EPQU6F63.js.map +0 -1
  544. package/dist/chunk-CHBVIZF5.js +0 -2
  545. package/dist/chunk-CHBVIZF5.js.map +0 -1
  546. package/dist/chunk-EMRHLWPD.js +0 -3
  547. package/dist/chunk-EMRHLWPD.js.map +0 -1
  548. package/dist/chunk-EPDVSZII.js +0 -2
  549. package/dist/chunk-EPDVSZII.js.map +0 -1
  550. package/dist/chunk-FNCZD2QB.js +0 -2
  551. package/dist/chunk-FNCZD2QB.js.map +0 -1
  552. package/dist/chunk-MKRWNV2T.js +0 -2
  553. package/dist/chunk-MKRWNV2T.js.map +0 -1
  554. package/dist/chunk-N3AD2QRA.js.map +0 -1
  555. package/dist/chunk-NDB6KXYI.js +0 -3
  556. package/dist/chunk-NDB6KXYI.js.map +0 -1
  557. package/dist/chunk-Q3A4IBGC.js +0 -2
  558. package/dist/chunk-Q3A4IBGC.js.map +0 -1
  559. package/dist/chunk-SCKQAF44.js +0 -2
  560. package/dist/chunk-SCKQAF44.js.map +0 -1
  561. package/dist/chunk-ULVQ53OO.js +0 -3
  562. package/dist/chunk-ULVQ53OO.js.map +0 -1
  563. package/dist/chunk-UNA5CAPX.js +0 -2
  564. package/dist/chunk-UNA5CAPX.js.map +0 -1
  565. package/dist/client-IR7OHGEQ.js +0 -2
  566. package/dist/client-IR7OHGEQ.js.map +0 -1
  567. package/dist/collab-activity-YOEJEJTQ.js +0 -2
  568. package/dist/collab-activity-YOEJEJTQ.js.map +0 -1
  569. package/dist/collab-invite-VDDBCLSH.js +0 -2
  570. package/dist/collab-invite-VDDBCLSH.js.map +0 -1
  571. package/dist/collab-leave-2AEIFR47.js +0 -2
  572. package/dist/collab-leave-2AEIFR47.js.map +0 -1
  573. package/dist/collab-list-MTJYXE53.js +0 -2
  574. package/dist/collab-list-MTJYXE53.js.map +0 -1
  575. package/dist/collab-remove-I3FKGFOF.js +0 -2
  576. package/dist/collab-remove-I3FKGFOF.js.map +0 -1
  577. package/dist/collab-transfer-VVHH6B2J.js +0 -2
  578. package/dist/collab-transfer-VVHH6B2J.js.map +0 -1
  579. package/dist/completion-IF3NB7PB.js +0 -44
  580. package/dist/completion-IF3NB7PB.js.map +0 -1
  581. package/dist/config-PL34OPDL.js +0 -2
  582. package/dist/config-delete-4UN7BFBI.js +0 -2
  583. package/dist/config-delete-4UN7BFBI.js.map +0 -1
  584. package/dist/config-get-XOS7EWEQ.js +0 -2
  585. package/dist/config-get-XOS7EWEQ.js.map +0 -1
  586. package/dist/config-reset-NIOGYFA5.js +0 -2
  587. package/dist/config-reset-NIOGYFA5.js.map +0 -1
  588. package/dist/config-set-DRTRWWAA.js +0 -2
  589. package/dist/config-set-DRTRWWAA.js.map +0 -1
  590. package/dist/deploy-UOPO2HHL.js +0 -3
  591. package/dist/deploy-UOPO2HHL.js.map +0 -1
  592. package/dist/doctor-B7RAWBD5.js +0 -2
  593. package/dist/doctor-B7RAWBD5.js.map +0 -1
  594. package/dist/feedback-BEX6DRXB.js +0 -3
  595. package/dist/feedback-BEX6DRXB.js.map +0 -1
  596. package/dist/forms-clear-VPH7SHJZ.js +0 -2
  597. package/dist/forms-clear-VPH7SHJZ.js.map +0 -1
  598. package/dist/forms-create-O5W7O2BI.js +0 -2
  599. package/dist/forms-create-O5W7O2BI.js.map +0 -1
  600. package/dist/forms-delete-H4RY6C64.js +0 -2
  601. package/dist/forms-delete-H4RY6C64.js.map +0 -1
  602. package/dist/forms-embed-2WBFYFUO.js +0 -3
  603. package/dist/forms-embed-2WBFYFUO.js.map +0 -1
  604. package/dist/forms-export-MDWMZ7I7.js +0 -2
  605. package/dist/forms-export-MDWMZ7I7.js.map +0 -1
  606. package/dist/forms-info-VO4FK3CS.js +0 -2
  607. package/dist/forms-info-VO4FK3CS.js.map +0 -1
  608. package/dist/forms-list-PDSDIJI7.js +0 -2
  609. package/dist/forms-list-PDSDIJI7.js.map +0 -1
  610. package/dist/forms-submissions-VJQWV7SI.js +0 -2
  611. package/dist/forms-submissions-VJQWV7SI.js.map +0 -1
  612. package/dist/login-PMDO43CL.js +0 -3
  613. package/dist/login-PMDO43CL.js.map +0 -1
  614. package/dist/logout-XIUWCA75.js +0 -2
  615. package/dist/logout-XIUWCA75.js.map +0 -1
  616. package/dist/logs-export-AU4WZDLW.js +0 -2
  617. package/dist/logs-export-AU4WZDLW.js.map +0 -1
  618. package/dist/logs-search-BHVB3BIH.js +0 -2
  619. package/dist/logs-search-BHVB3BIH.js.map +0 -1
  620. package/dist/logs-tail-YVFZLSC2.js +0 -3
  621. package/dist/logs-tail-YVFZLSC2.js.map +0 -1
  622. package/dist/monitor-KLJ762WM.js +0 -2
  623. package/dist/monitor-KLJ762WM.js.map +0 -1
  624. package/dist/monitor-automations-B2NRWSFH.js +0 -2
  625. package/dist/monitor-automations-B2NRWSFH.js.map +0 -1
  626. package/dist/monitor-pipelines-2PNBET3B.js +0 -2
  627. package/dist/monitor-pipelines-2PNBET3B.js.map +0 -1
  628. package/dist/monitor-sites-QNMTCOSH.js +0 -2
  629. package/dist/monitor-sites-QNMTCOSH.js.map +0 -1
  630. package/dist/monitor-storage-Z53C4CI2.js +0 -2
  631. package/dist/monitor-storage-Z53C4CI2.js.map +0 -1
  632. package/dist/scripts-cancel-2HWDUPFM.js +0 -2
  633. package/dist/scripts-cancel-2HWDUPFM.js.map +0 -1
  634. package/dist/scripts-delete-UI6YRWEN.js +0 -2
  635. package/dist/scripts-delete-UI6YRWEN.js.map +0 -1
  636. package/dist/scripts-disable-7IXFGWWG.js +0 -2
  637. package/dist/scripts-disable-7IXFGWWG.js.map +0 -1
  638. package/dist/scripts-enable-DNEVMHLS.js +0 -2
  639. package/dist/scripts-enable-DNEVMHLS.js.map +0 -1
  640. package/dist/scripts-init-BIIEMUXV.js +0 -14
  641. package/dist/scripts-init-BIIEMUXV.js.map +0 -1
  642. package/dist/scripts-list-LYDOWRTU.js +0 -2
  643. package/dist/scripts-list-LYDOWRTU.js.map +0 -1
  644. package/dist/scripts-logs-32CWQEBA.js +0 -2
  645. package/dist/scripts-logs-32CWQEBA.js.map +0 -1
  646. package/dist/scripts-run-6AJVHB4U.js +0 -2
  647. package/dist/scripts-run-6AJVHB4U.js.map +0 -1
  648. package/dist/scripts-status-KCILW363.js +0 -2
  649. package/dist/scripts-status-KCILW363.js.map +0 -1
  650. package/dist/scripts-validate-MZP4MJZZ.js +0 -2
  651. package/dist/scripts-validate-MZP4MJZZ.js.map +0 -1
  652. package/dist/scripts-watch-3SFVPUAA.js +0 -2
  653. package/dist/scripts-watch-3SFVPUAA.js.map +0 -1
  654. package/dist/sign-cancel-KK745O7W.js +0 -2
  655. package/dist/sign-cancel-KK745O7W.js.map +0 -1
  656. package/dist/sign-download-6V3ABZG2.js +0 -2
  657. package/dist/sign-download-6V3ABZG2.js.map +0 -1
  658. package/dist/sign-list-VCNJSS6F.js +0 -2
  659. package/dist/sign-list-VCNJSS6F.js.map +0 -1
  660. package/dist/sign-request-LNRMPU2F.js +0 -2
  661. package/dist/sign-request-LNRMPU2F.js.map +0 -1
  662. package/dist/sign-status-PNAGMC7S.js +0 -2
  663. package/dist/sign-status-PNAGMC7S.js.map +0 -1
  664. package/dist/sign-verify-ZROVA7LH.js +0 -2
  665. package/dist/sign-verify-ZROVA7LH.js.map +0 -1
  666. package/dist/sites-analytics-L6KVTZNH.js +0 -2
  667. package/dist/sites-analytics-L6KVTZNH.js.map +0 -1
  668. package/dist/sites-delete-JCBOLOA7.js +0 -2
  669. package/dist/sites-delete-JCBOLOA7.js.map +0 -1
  670. package/dist/sites-deploys-XJ3NY4RQ.js +0 -2
  671. package/dist/sites-deploys-XJ3NY4RQ.js.map +0 -1
  672. package/dist/sites-info-V3R7YNPU.js +0 -2
  673. package/dist/sites-info-V3R7YNPU.js.map +0 -1
  674. package/dist/sites-list-ZQTXLHJ3.js +0 -2
  675. package/dist/sites-list-ZQTXLHJ3.js.map +0 -1
  676. package/dist/sites-logs-AYG43HQV.js +0 -3
  677. package/dist/sites-logs-AYG43HQV.js.map +0 -1
  678. package/dist/sites-open-K2JWMIWD.js +0 -3
  679. package/dist/sites-open-K2JWMIWD.js.map +0 -1
  680. package/dist/sites-purge-5Y5AQWBY.js +0 -2
  681. package/dist/sites-purge-5Y5AQWBY.js.map +0 -1
  682. package/dist/sites-rename-QH6YYXUE.js +0 -2
  683. package/dist/sites-rename-QH6YYXUE.js.map +0 -1
  684. package/dist/sites-rollback-ZQ2IHERR.js +0 -2
  685. package/dist/sites-rollback-ZQ2IHERR.js.map +0 -1
  686. package/dist/sites-unpublish-MDK4GP2C.js +0 -2
  687. package/dist/sites-unpublish-MDK4GP2C.js.map +0 -1
  688. package/dist/sites-visibility-WKPIU5OK.js +0 -2
  689. package/dist/sites-visibility-WKPIU5OK.js.map +0 -1
  690. package/dist/storage-cat-OAUEF3EE.js +0 -2
  691. package/dist/storage-cat-OAUEF3EE.js.map +0 -1
  692. package/dist/storage-clean-I7QZ5FR6.js +0 -2
  693. package/dist/storage-clean-I7QZ5FR6.js.map +0 -1
  694. package/dist/storage-cp-H36Q2ER4.js +0 -2
  695. package/dist/storage-cp-H36Q2ER4.js.map +0 -1
  696. package/dist/storage-diff-6KUEJ4DB.js +0 -2
  697. package/dist/storage-diff-6KUEJ4DB.js.map +0 -1
  698. package/dist/storage-download-32EYGI47.js +0 -3
  699. package/dist/storage-download-32EYGI47.js.map +0 -1
  700. package/dist/storage-info-2JSV56KE.js +0 -2
  701. package/dist/storage-info-2JSV56KE.js.map +0 -1
  702. package/dist/storage-ls-G33T3LMU.js +0 -3
  703. package/dist/storage-ls-G33T3LMU.js.map +0 -1
  704. package/dist/storage-mkdir-BDT3GX7A.js +0 -2
  705. package/dist/storage-mkdir-BDT3GX7A.js.map +0 -1
  706. package/dist/storage-mv-2QJZR2FL.js +0 -2
  707. package/dist/storage-mv-2QJZR2FL.js.map +0 -1
  708. package/dist/storage-rm-NRRRFG36.js +0 -2
  709. package/dist/storage-rm-NRRRFG36.js.map +0 -1
  710. package/dist/storage-search-E5BIXLSU.js +0 -2
  711. package/dist/storage-search-E5BIXLSU.js.map +0 -1
  712. package/dist/storage-share-EXSSZ6XL.js +0 -2
  713. package/dist/storage-share-EXSSZ6XL.js.map +0 -1
  714. package/dist/storage-tag-YV5GUZDV.js +0 -2
  715. package/dist/storage-tag-YV5GUZDV.js.map +0 -1
  716. package/dist/storage-unshare-MF4V2NGC.js +0 -2
  717. package/dist/storage-unshare-MF4V2NGC.js.map +0 -1
  718. package/dist/storage-upload-DYWSZ6RO.js +0 -9
  719. package/dist/storage-upload-DYWSZ6RO.js.map +0 -1
  720. package/dist/time-list-4T3FJE2I.js +0 -2
  721. package/dist/time-list-4T3FJE2I.js.map +0 -1
  722. package/dist/time-lock-O55XMYPX.js +0 -2
  723. package/dist/time-lock-O55XMYPX.js.map +0 -1
  724. package/dist/time-proof-SDANSS3D.js +0 -2
  725. package/dist/time-proof-SDANSS3D.js.map +0 -1
  726. package/dist/time-status-JFJA3MYK.js +0 -2
  727. package/dist/time-status-JFJA3MYK.js.map +0 -1
  728. package/dist/time-unlock-F7NGQ2IE.js +0 -2
  729. package/dist/time-unlock-F7NGQ2IE.js.map +0 -1
  730. package/dist/update-5PTOF5ZA.js +0 -2
  731. package/dist/update-5PTOF5ZA.js.map +0 -1
  732. package/dist/version-Y2LWIEFC.js +0 -2
  733. package/dist/version-Y2LWIEFC.js.map +0 -1
  734. package/dist/whoami-BGMVNESX.js +0 -2
  735. package/dist/whoami-BGMVNESX.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/stats/usage.ts"],"names":["statsUsage","data","apiClient","total","used","pct","m","err"],"mappings":"oJASA,eAAOA,GAAmD,CACxD,GAAI,CACF,IAAMC,CAAAA,CAAO,MAAMC,CAAAA,CAAU,OAAA,CAAuB,eAAgB,CAClE,MAAA,CAAQ,MACR,aAAA,CAAe,CAAA,CACjB,CAAC,CAAA,CAEKC,CAAAA,CAAQF,EAAK,aAAA,EAAiB,CAAA,CAC9BG,CAAAA,CAAOH,CAAAA,CAAK,cAAgB,CAAA,CAC5BI,CAAAA,CAAMF,EAAQ,CAAA,CAAA,CAAMC,CAAAA,CAAOD,EAAS,GAAA,EAAK,OAAA,CAAQ,CAAC,CAAA,CAAI,KAAA,CAK5D,GAHA,OAAA,CAAQ,GAAA,CAAI,iBAAiBC,CAAI,CAAA,GAAA,EAAMD,CAAK,CAAA,EAAA,EAAKE,CAAG,CAAA,EAAA,CAAI,CAAA,CACxD,QAAQ,GAAA,CAAI,EAAE,EAEVJ,CAAAA,CAAK,aAAA,EAAiBA,EAAK,aAAA,CAAc,MAAA,CAAS,EAAG,CACvD,OAAA,CAAQ,IAAI,oBAAoB,CAAA,CAChC,QAAWK,CAAAA,IAAKL,CAAAA,CAAK,cACnB,OAAA,CAAQ,GAAA,CAAI,KAAKK,CAAAA,CAAE,KAAK,KAAKA,CAAAA,CAAE,OAAO,UAAU,EAEpD,CACF,OAASC,CAAAA,CAAU,CACjB,QAAQ,KAAA,CAAM,6BAAA,CAA+BA,EAAI,OAAO,CAAA,CACxD,QAAQ,IAAA,CAAK,CAAC,EAChB,CACF","file":"usage-HWFCDFQQ.js","sourcesContent":["import { apiClient } from '../../lib/api/client.js'\n\ninterface UsageResponse {\n success: boolean\n used_credits: number\n total_credits: number\n monthly_usage: Array<{ month: string; credits: number }>\n}\n\nexport default async function statsUsage(): Promise<void> {\n try {\n const data = await apiClient.request<UsageResponse>('/stats/usage', {\n method: 'GET',\n authenticated: true,\n });\n\n const total = data.total_credits || 0;\n const used = data.used_credits || 0;\n const pct = total > 0 ? ((used / total) * 100).toFixed(1) : '0.0';\n\n console.log(`Credit usage: ${used} / ${total} (${pct}%)`);\n console.log('');\n\n if (data.monthly_usage && data.monthly_usage.length > 0) {\n console.log('Monthly breakdown:');\n for (const m of data.monthly_usage) {\n console.log(` ${m.month}: ${m.credits} credits`);\n }\n }\n } catch (err: any) {\n console.error('Error fetching usage stats:', err.message);\n process.exit(1);\n }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export{b as default,a as showVersion}from'./chunk-4GV6L47P.js';//# sourceMappingURL=version-TFYCABEC.js.map
2
+ //# sourceMappingURL=version-TFYCABEC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"version-TFYCABEC.js"}
@@ -0,0 +1,2 @@
1
+ export{a as default}from'./chunk-43FK57CR.js';//# sourceMappingURL=whoami-A65QZCK3.js.map
2
+ //# sourceMappingURL=whoami-A65QZCK3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"whoami-A65QZCK3.js"}
package/package.json CHANGED
@@ -1,56 +1,43 @@
1
1
  {
2
2
  "name": "squidcloudctl",
3
- "version": "1.2.0",
4
- "description": "SquidCloud CLI deploy, storage, sites, pipelines, and more",
5
- "type": "module",
3
+ "version": "3.0.0",
4
+ "description": "SquidCloud CLI (squidcloudctl) \u2014 encrypted storage, shares and secrets from your terminal",
5
+ "main": "dist/bin/squidcloud.js",
6
6
  "bin": {
7
+ "squidcloudctl": "dist/bin/squidcloud.js",
7
8
  "squidcloud": "dist/bin/squidcloud.js"
8
9
  },
9
- "exports": {
10
- ".": "./dist/index.js",
11
- "./*": "./dist/*.js"
12
- },
10
+ "type": "module",
13
11
  "files": [
14
- "dist"
12
+ "dist",
13
+ "README.md"
15
14
  ],
16
15
  "scripts": {
17
- "build": "tsup",
18
- "dev": "tsup --watch",
19
- "typecheck": "tsc --noEmit",
20
- "prepublishOnly": "npm run build"
16
+ "build": "tsc -p tsconfig.build.json && node ./scripts/fix-shebang.mjs",
17
+ "postbuild": "node ./scripts/fix-shebang.mjs",
18
+ "test": "node dist/bin/squidcloud.js --version"
19
+ },
20
+ "keywords": [
21
+ "squidcloud",
22
+ "squidveil",
23
+ "secrets",
24
+ "cli",
25
+ "encrypted-storage"
26
+ ],
27
+ "license": "MIT",
28
+ "devDependencies": {
29
+ "tsup": "^8.5.1",
30
+ "typescript": "^7.0.2"
21
31
  },
22
32
  "dependencies": {
23
- "@noble/ciphers": "^1.2.1",
24
- "@noble/curves": "^2.2.0",
25
- "@noble/ed25519": "^2.2.3",
26
- "@noble/hashes": "^1.7.1",
27
- "chalk": "^5.4.1",
28
- "chokidar": "^4.0.3",
29
- "cli-progress": "^3.12.0",
33
+ "@noble/ciphers": "^2.3.0",
34
+ "@noble/curves": "^2.3.0",
35
+ "@noble/ed25519": "^2.3.0",
36
+ "@noble/hashes": "^2.3.0",
37
+ "chalk": "^6.0.0",
30
38
  "cli-table3": "^0.6.5",
31
- "clipboardy": "^4.0.0",
32
- "commander": "^13.1.0",
33
- "conf": "^13.1.0",
34
- "figlet": "^1.8.0",
39
+ "commander": "^15.0.0",
35
40
  "gradient-string": "^3.0.0",
36
- "ignore": "^7.0.3",
37
- "inquirer": "^12.4.0",
38
- "nanoid": "^5.1.0",
39
- "open": "^10.1.0",
40
- "ora": "^8.2.0",
41
- "ws": "^8.18.1",
42
- "yaml": "^2.7.0",
43
- "zod": "^3.24.2"
44
- },
45
- "devDependencies": {
46
- "@types/node": "^22.13.0",
47
- "tsup": "^8.3.6",
48
- "typescript": "^5.7.3"
49
- },
50
- "engines": {
51
- "node": ">=20"
52
- },
53
- "publishConfig": {
54
- "access": "public"
41
+ "ora": "^9.4.1"
55
42
  }
56
- }
43
+ }
@@ -1,2 +0,0 @@
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 +0,0 @@
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 +0,0 @@
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 +0,0 @@
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"]}
@@ -1,2 +0,0 @@
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 +0,0 @@
1
- {"version":3,"sources":["../src/commands/auth/auth-status.ts"],"names":["authStatus","session","loadSession","logError","currentFingerprint","computeDeviceFingerprint","fingerprintMatch","timeLeft","getTimeUntilExpiry","needsRefresh","isJsonMode","logJSON","logRaw","chalk","formatCountdown"],"mappings":"kJAOA,eAAOA,GAAmD,CACxD,IAAMC,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,2 +0,0 @@
1
- import {a}from'./chunk-NDB6KXYI.js';import {a as a$1}from'./chunk-ULVQ53OO.js';import {b}from'./chunk-Q3A4IBGC.js';var q=3,x=1e3,h=1e3,R=a(),g=0;async function O(){let e=Date.now()-g;e<h&&await new Promise(n=>setTimeout(n,h-e)),g=Date.now();}async function T(t,e={}){let{method:n="GET",headers:s={},body:r,authenticated:p=false,retries:a=q}=e;await O();let c={"Content-Type":"application/json",...s};if(p){let o=await b();if(o?.api_key)c["x-squidcloud-key"]=o.api_key;else if(o?.access_token){let i=await a$1();i?.api_key&&(c["x-squidcloud-key"]=i.api_key);}}let f=`${R}${t}`,u={method:n,headers:c};r&&n!=="GET"&&(u.body=JSON.stringify(r));let l=null;for(let o=0;o<=a;o++)try{let i=await fetch(f,u);return k(i)}catch(i){if(l=i instanceof Error?i:new Error(String(i)),o<a){let E=x*Math.pow(2,o)*(.5+Math.random()*.5);await new Promise(P=>setTimeout(P,E));}}throw l||new Error(`Request failed: ${t}`)}async function k(t){if(t.status===204)return;if((t.headers.get("content-type")||"").includes("application/json")){let s=await t.json();if(!t.ok){let r=s?.error?.message||s?.message||`HTTP ${t.status}`;throw new d(r,t.status,s?.error)}return s}if(!t.ok){let s=await t.text();throw new d(s||`HTTP ${t.status}`,t.status)}return await t.text()}var d=class extends Error{constructor(n,s,r){super(n);this.status=s;this.details=r;this.name="ApiError";}status;details};async function A(t,e){return T(t,{...e,method:"GET"})}async function D(t,e,n){return T(t,{...n,method:"POST",body:e})}async function $(t,e,n){return T(t,{...n,method:"PUT",body:e})}async function I(t,e){return T(t,{...e,method:"DELETE"})}async function G(t,e,n){let{method:s="POST",headers:r={},authenticated:p=false}=n||{},a={...r};if(p){let u=await b();u?.api_key&&(a["x-squidcloud-key"]=u.api_key);}let c=`${R}${t}`,f=await fetch(c,{method:s,headers:a,body:e});return k(f)}export{T as a,d as b,A as c,D as d,$ as e,I as f,G as g};//# sourceMappingURL=chunk-CHBVIZF5.js.map
2
- //# sourceMappingURL=chunk-CHBVIZF5.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/lib/api/client.ts"],"names":["MAX_RETRIES","BASE_DELAY","RATE_LIMIT_WINDOW","API_BASE","getApiBase","lastRequestTime","rateLimit","elapsed","r","apiRequest","path","options","method","headers","body","authenticated","retries","reqHeaders","session","loadSession","newSession","refreshAccessToken","url","fetchOptions","lastError","attempt","response","handleResponse","err","delay","data","message","ApiError","text","status","details","apiGet","apiPost","apiPut","apiDelete","apiUpload","formData"],"mappings":"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","file":"chunk-CHBVIZF5.js","sourcesContent":["import { loadSession } from '../auth/session.js'\nimport { refreshAccessToken } from '../auth/refresh.js'\nimport { getApiBase } from './cert-pin.js'\n\nconst MAX_RETRIES = 3\nconst BASE_DELAY = 1000\nconst RATE_LIMIT_WINDOW = 1000\nconst API_BASE = getApiBase()\n\ninterface RequestOptions {\n method?: string\n headers?: Record<string, string>\n body?: unknown\n authenticated?: boolean\n retries?: number\n}\n\nlet lastRequestTime = 0\n\nasync function rateLimit(): Promise<void> {\n const now = Date.now()\n const elapsed = now - lastRequestTime\n if (elapsed < RATE_LIMIT_WINDOW) {\n await new Promise(r => setTimeout(r, RATE_LIMIT_WINDOW - elapsed))\n }\n lastRequestTime = Date.now()\n}\n\nexport async function apiRequest<T>(path: string, options: RequestOptions = {}): Promise<T> {\n const { method = 'GET', headers = {}, body, authenticated = false, retries = MAX_RETRIES } = options\n\n await rateLimit()\n\n const reqHeaders: Record<string, string> = {\n 'Content-Type': 'application/json',\n ...headers,\n }\n\n if (authenticated) {\n const session = await loadSession()\n if (session?.api_key) {\n reqHeaders['x-squidcloud-key'] = session.api_key\n } else if (session?.access_token) {\n const newSession = await refreshAccessToken()\n if (newSession?.api_key) {\n reqHeaders['x-squidcloud-key'] = newSession.api_key\n }\n }\n }\n\n const url = `${API_BASE}${path}`\n const fetchOptions: RequestInit = {\n method,\n headers: reqHeaders,\n }\n\n if (body && method !== 'GET') {\n fetchOptions.body = JSON.stringify(body)\n }\n\n let lastError: Error | null = null\n for (let attempt = 0; attempt <= retries; attempt++) {\n try {\n const response = await fetch(url, fetchOptions)\n return handleResponse<T>(response)\n } catch (err) {\n lastError = err instanceof Error ? err : new Error(String(err))\n if (attempt < retries) {\n const delay = BASE_DELAY * Math.pow(2, attempt) * (0.5 + Math.random() * 0.5)\n await new Promise(r => setTimeout(r, delay))\n }\n }\n }\n\n throw lastError || new Error(`Request failed: ${path}`)\n}\n\nasync function handleResponse<T>(response: Response): Promise<T> {\n if (response.status === 204) {\n return undefined as T\n }\n const contentType = response.headers.get('content-type') || ''\n if (contentType.includes('application/json')) {\n const data = await response.json()\n if (!response.ok) {\n const message = data?.error?.message || data?.message || `HTTP ${response.status}`\n throw new ApiError(message, response.status, data?.error)\n }\n return data as T\n }\n if (!response.ok) {\n const text = await response.text()\n throw new ApiError(text || `HTTP ${response.status}`, response.status)\n }\n const text = await response.text()\n return text as unknown as T\n}\n\nexport class ApiError extends Error {\n constructor(\n message: string,\n public status: number,\n public details?: unknown,\n ) {\n super(message)\n this.name = 'ApiError'\n }\n}\n\nexport async function apiGet<T>(path: string, options?: RequestOptions): Promise<T> {\n return apiRequest<T>(path, { ...options, method: 'GET' })\n}\n\nexport async function apiPost<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T> {\n return apiRequest<T>(path, { ...options, method: 'POST', body })\n}\n\nexport async function apiPut<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T> {\n return apiRequest<T>(path, { ...options, method: 'PUT', body })\n}\n\nexport async function apiDelete<T>(path: string, options?: RequestOptions): Promise<T> {\n return apiRequest<T>(path, { ...options, method: 'DELETE' })\n}\n\nexport async function apiUpload<T>(path: string, formData: FormData, options?: RequestOptions): Promise<T> {\n const { method = 'POST', headers = {}, authenticated = false } = options || {}\n\n const reqHeaders: Record<string, string> = {\n ...headers,\n }\n\n if (authenticated) {\n const session = await loadSession()\n if (session?.api_key) {\n reqHeaders['x-squidcloud-key'] = session.api_key\n }\n }\n\n const url = `${API_BASE}${path}`\n const response = await fetch(url, {\n method,\n headers: reqHeaders,\n body: formData,\n })\n\n return handleResponse<T>(response)\n}\n"]}
@@ -1,3 +0,0 @@
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
@@ -1 +0,0 @@
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"]}
@@ -1,2 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/lib/output/progress.ts"],"names":["createSpeedTracker","now","updateSpeed","t","bytes","dt","createProgressBar","filename","total","tracker","bar","cliProgress","options","params","payload","percent","val","barSize","completeLen","barStr","chalk","name","speed","eta","PROGRESS_MARK","formatBytes","formatDuration","updateProgress"],"mappings":"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","file":"chunk-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 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/lib/output/table.ts"],"names":["createTable","headers","options","Table","h","chalk","renderTable","data","columns","isJsonMode","logJSON","table","c","row","val","renderCompactTable"],"mappings":"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","file":"chunk-FNCZD2QB.js","sourcesContent":["import Table from 'cli-table3'\nimport chalk from 'chalk'\nimport { isCI } from '../utils/ci-detect.js'\nimport { isJsonMode, logJSON } from './logger.js'\n\ninterface ColumnDef {\n key: string\n label: string\n align?: 'left' | 'center' | 'right'\n format?: (value: unknown) => string\n}\n\ninterface TableOptions {\n head?: string[]\n colAligns?: ('left' | 'center' | 'right')[]\n style?: Record<string, unknown>\n compact?: boolean\n}\n\nexport function createTable(headers: string[], options: TableOptions = {}): Table.Table {\n return new Table({\n head: headers.map(h => chalk.bold(h)),\n colAligns: options.colAligns,\n style: {\n head: [],\n border: [],\n 'padding-left': 1,\n 'padding-right': 1,\n ...options.style,\n },\n chars: {\n top: '─',\n 'top-mid': '┬',\n 'top-left': '┌',\n 'top-right': '┐',\n bottom: '─',\n 'bottom-mid': '┴',\n 'bottom-left': '└',\n 'bottom-right': '┘',\n left: '│',\n 'left-mid': '├',\n mid: '─',\n 'mid-mid': '┼',\n right: '│',\n 'right-mid': '┤',\n middle: '│',\n },\n ...options.compact ? {\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n middle: '',\n },\n style: { 'padding-left': 0, 'padding-right': 2 },\n } : {},\n })\n}\n\nexport function renderTable(data: Record<string, unknown>[], columns: ColumnDef[]): string {\n if (isJsonMode()) {\n logJSON(data)\n return ''\n }\n const table = createTable(\n columns.map(c => c.label),\n { colAligns: columns.map(c => c.align ?? 'left') }\n )\n for (const row of data) {\n table.push(\n columns.map(c => {\n const val = row[c.key]\n return c.format ? c.format(val) : String(val ?? '')\n })\n )\n }\n return table.toString()\n}\n\nexport function renderCompactTable(data: Record<string, unknown>[], columns: ColumnDef[]): string {\n if (isJsonMode()) {\n logJSON(data)\n return ''\n }\n const table = createTable(\n columns.map(c => c.label),\n { colAligns: columns.map(c => c.align ?? 'left'), compact: true }\n )\n for (const row of data) {\n table.push(\n columns.map(c => {\n const val = row[c.key]\n return c.format ? c.format(val) : String(val ?? '')\n })\n )\n }\n return table.toString()\n}\n"]}
@@ -1,2 +0,0 @@
1
- var o=new Set([".html",".css",".js",".mjs",".json",".svg",".png",".jpg",".jpeg",".gif",".webp",".avif",".ico",".woff",".woff2",".ttf",".otf",".eot",".mp4",".webm",".ogg",".mp3",".wav",".pdf",".txt",".xml",".map"]);function n(t){let e=t.toLowerCase().slice(t.lastIndexOf("."));return e?o.has(e):false}export{n as a};//# sourceMappingURL=chunk-MKRWNV2T.js.map
2
- //# sourceMappingURL=chunk-MKRWNV2T.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/lib/deploy/allowlist.ts"],"names":["ALLOWED_EXTENSIONS","isAllowedFile","filePath","ext"],"mappings":"AAAA,IAAMA,CAAAA,CAAqB,IAAI,GAAA,CAAI,CACjC,OAAA,CAAS,OAAQ,KAAA,CAAO,MAAA,CAAQ,OAAA,CAAS,MAAA,CACzC,MAAA,CAAQ,MAAA,CAAQ,QAAS,MAAA,CAAQ,OAAA,CAAS,OAAA,CAAS,MAAA,CACnD,OAAA,CAAS,QAAA,CAAU,MAAA,CAAQ,MAAA,CAAQ,MAAA,CACnC,MAAA,CAAQ,OAAA,CAAS,MAAA,CAAQ,MAAA,CAAQ,MAAA,CACjC,OAAQ,MAAA,CAAQ,MAAA,CAAQ,MAC1B,CAAC,CAAA,CAEM,SAASC,EAAcC,CAAAA,CAA2B,CACvD,IAAMC,CAAAA,CAAMD,CAAAA,CAAS,WAAA,GAAc,KAAA,CAAMA,CAAAA,CAAS,WAAA,CAAY,GAAG,CAAC,CAAA,CAClE,OAAKC,CAAAA,CACEH,CAAAA,CAAmB,GAAA,CAAIG,CAAG,CAAA,CADhB,KAEnB","file":"chunk-MKRWNV2T.js","sourcesContent":["const ALLOWED_EXTENSIONS = new Set([\n '.html', '.css', '.js', '.mjs', '.json', '.svg',\n '.png', '.jpg', '.jpeg', '.gif', '.webp', '.avif', '.ico',\n '.woff', '.woff2', '.ttf', '.otf', '.eot',\n '.mp4', '.webm', '.ogg', '.mp3', '.wav',\n '.pdf', '.txt', '.xml', '.map',\n])\n\nexport function isAllowedFile(filePath: string): boolean {\n const ext = filePath.toLowerCase().slice(filePath.lastIndexOf('.'))\n if (!ext) return false\n return ALLOWED_EXTENSIONS.has(ext)\n}\n\nexport function getAllowedExtensions(): string[] {\n return [...ALLOWED_EXTENSIONS]\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/lib/utils/format.ts"],"names":["MONTHS","pad","n","formatBytes","bytes","units","k","i","formatDuration","ms","minutes","seconds","formatDate","date","d","formatRelative","now","diff","abs","suffix","formatCountdown","chalk","hours"],"mappings":"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","file":"chunk-N3AD2QRA.js","sourcesContent":["import chalk from 'chalk'\n\nconst MONTHS = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']\n\nfunction pad(n: number): string {\n return n < 10 ? '0' + n : String(n)\n}\n\nexport function formatBytes(bytes: number): string {\n if (bytes === 0) return '0 B'\n const units = ['B', 'KB', 'MB', 'GB', 'TB']\n const k = 1024\n const i = Math.floor(Math.log(bytes) / Math.log(k))\n const value = bytes / Math.pow(k, i)\n return `${value.toFixed(i > 0 ? 1 : 0)} ${units[i]}`\n}\n\nexport function formatDuration(ms: number): string {\n if (ms < 1000) return `${ms}ms`\n if (ms < 60000) return `${(ms / 1000).toFixed(1)}s`\n const minutes = Math.floor(ms / 60000)\n const seconds = Math.round((ms % 60000) / 1000)\n return `${minutes}m ${seconds}s`\n}\n\nexport function formatDate(date: string | Date): string {\n const d = typeof date === 'string' ? new Date(date) : date\n return `${MONTHS[d.getMonth()]} ${d.getDate()}, ${d.getFullYear()} ${pad(d.getHours())}:${pad(d.getMinutes())}`\n}\n\nexport function formatRelative(date: string | Date): string {\n const d = typeof date === 'string' ? new Date(date) : date\n const now = Date.now()\n const diff = d.getTime() - now\n const abs = Math.abs(diff)\n const suffix = diff < 0 ? 'ago' : 'from now'\n\n if (abs < 60000) return `${Math.round(abs / 1000)}s ${suffix}`\n if (abs < 3600000) return `${Math.round(abs / 60000)}m ${suffix}`\n if (abs < 86400000) return `${Math.round(abs / 3600000)}h ${suffix}`\n if (abs < 2592000000) return `${Math.round(abs / 86400000)}d ${suffix}`\n return `${Math.round(abs / 2592000000)}mo ${suffix}`\n}\n\nexport function formatCountdown(ms: number): string {\n if (ms <= 0) return chalk.red('expired')\n const hours = Math.floor(ms / 3600000)\n const minutes = Math.floor((ms % 3600000) / 60000)\n const seconds = Math.floor((ms % 60000) / 1000)\n if (hours > 0) return `${hours}h ${minutes}m ${seconds}s`\n if (minutes > 0) return `${minutes}m ${seconds}s`\n return `${seconds}s`\n}\n\nexport function truncate(str: string, max: number): string {\n if (str.length <= max) return str\n return str.slice(0, max - 3) + '...'\n}\n\nexport function pluralize(n: number, singular: string, plural?: string): string {\n return n === 1 ? `${n} ${singular}` : `${n} ${plural ?? singular + 's'}`\n}\n\nexport function maskEmail(email: string): string {\n const [name, domain] = email.split('@')\n if (!name || !domain) return email\n const masked = name[0] + '***' + name[name.length - 1]\n return `${masked}@${domain}`\n}\n"]}
@@ -1,3 +0,0 @@
1
- import'crypto';var e=process.env.SQUIDCLOUD_API_BASE||"https://squidcloud.vercel.app";function r(){return e}
2
- export{r as a};//# sourceMappingURL=chunk-NDB6KXYI.js.map
3
- //# sourceMappingURL=chunk-NDB6KXYI.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/lib/api/cert-pin.ts"],"names":["API_BASE","getApiBase"],"mappings":"eAOA,IAAMA,CAAAA,CAAW,OAAA,CAAQ,GAAA,CAAI,mBAAA,EAAuB,+BAAA,CAoB7C,SAASC,CAAAA,EAAqB,CACnC,OAAOD,CACT","file":"chunk-NDB6KXYI.js","sourcesContent":["import { createHash } from 'node:crypto'\n\nconst PINNED_PUB_KEY_HASHES: string[] = [\n // SquidCloud Vercel deployment — update as needed\n // SHA-256 hash of the expected server public key\n]\n\nconst API_BASE = process.env.SQUIDCLOUD_API_BASE || 'https://squidcloud.vercel.app'\n\nexport function addPinnedKeyHash(hash: string): void {\n PINNED_PUB_KEY_HASHES.push(hash.toLowerCase())\n}\n\nfunction getExpectedSPKI(): string | null {\n return process.env.SQUIDCLOUD_CERT_PIN || null\n}\n\nexport function validateCertPin(peerCertificate: { raw: Buffer }): boolean {\n if (PINNED_PUB_KEY_HASHES.length === 0 && !getExpectedSPKI()) return true\n const der = peerCertificate.raw\n const sha256 = createHash('sha256').update(der).digest('base64')\n const expectedPin = getExpectedSPKI()\n if (expectedPin && sha256 === expectedPin) return true\n if (PINNED_PUB_KEY_HASHES.includes(sha256)) return true\n return false\n}\n\nexport function getApiBase(): string {\n return API_BASE\n}\n"]}
@@ -1,2 +0,0 @@
1
- import {createHash}from'crypto';import e from'os';import n,{existsSync,readFileSync}from'fs';import {blake3}from'@noble/hashes/blake3';import {etc}from'@noble/ed25519';import'@noble/curves/ed25519.js';import {sha256}from'@noble/hashes/sha256';import {sha512}from'@noble/hashes/sha512';import'@noble/hashes/hmac';import {hkdf}from'@noble/hashes/hkdf';import {concatBytes,randomBytes}from'@noble/hashes/utils';import {gcm}from'@noble/ciphers/aes';import y from'path';etc.sha512Sync=(...t)=>sha512(concatBytes(...t));function o(t){return Buffer.from(t).toString("hex")}function p(t){return new Uint8Array(Buffer.from(t,"hex"))}var B=["/etc/machine-id","/var/lib/dbus/machine-id","/etc/hostid"];function q(){for(let r of B)try{if(existsSync(r))return readFileSync(r,"utf-8").trim()}catch{continue}return createHash("sha256").update(e.hostname()+e.arch()+e.platform()).digest("hex")}function f(){let i=[q(),e.hostname(),e.platform(),e.arch(),e.release()].join(":");return o(blake3(i))}var m=y.join(e.homedir(),".squidcloud"),s=y.join(m,".session");function g(){let t=f(),r=new TextEncoder().encode(t);return hkdf(sha256,r,new Uint8Array(32),"squidcloud-fallback-v1",32)}async function l(t){let r=g(),i=randomBytes(12),c=new TextEncoder().encode(t),u=gcm(r,i).encrypt(c);n.existsSync(m)||n.mkdirSync(m,{recursive:true,mode:448});let x={iv:o(i),data:o(u)};n.writeFileSync(s,JSON.stringify(x),{mode:384,encoding:"utf-8"});}async function S(){try{if(!n.existsSync(s))return null;let t=n.readFileSync(s,"utf-8"),{iv:r,data:i}=JSON.parse(t),c=g(),u=gcm(c,p(r)).decrypt(p(i));return new TextDecoder().decode(u)}catch{return null}}async function a(){try{n.existsSync(s)&&n.unlinkSync(s);}catch{}}async function wt(){try{let t=await S();if(!t)return null;let r=JSON.parse(t);return !r.session_id||!r.access_token?(await a(),null):r}catch{return await a(),null}}async function bt(t){await l(JSON.stringify(t));}async function kt(){await a();}function Bt(t){return t.expires_at-Date.now()<=12e4}function qt(t){return t.expires_at-Date.now()}export{f as a,wt as b,bt as c,kt as d,Bt as e,qt as f};//# sourceMappingURL=chunk-Q3A4IBGC.js.map
2
- //# sourceMappingURL=chunk-Q3A4IBGC.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/lib/crypto/ssp.ts","../src/lib/auth/fingerprint.ts","../src/lib/auth/keychain.ts","../src/lib/auth/session.ts"],"names":["etc","msgs","sha512","concatBytes","bytesToHex","buf","hexToBytes","hex","MACHINE_ID_PATHS","getMachineId","p","existsSync","readFileSync","createHash","os","computeDeviceFingerprint","data","blake3","FALLBACK_DIR","path","FALLBACK_FILE","getFallbackKey","fingerprint","ikm","hkdf","sha256","storeSession","sessionJson","key","iv","randomBytes","plaintext","encrypted","gcm","fs","payload","getSession","raw","decrypted","deleteSession","loadSession","session","saveSession","clearSession","shouldRefreshToken","getTimeUntilExpiry"],"mappings":"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","file":"chunk-Q3A4IBGC.js","sourcesContent":["import { getPublicKey, sign, verify, etc, utils as edUtils } from '@noble/ed25519'\nimport { x25519 } from '@noble/curves/ed25519.js'\nimport { sha256 } from '@noble/hashes/sha256'\nimport { sha512 } from '@noble/hashes/sha512'\nimport { hmac } from '@noble/hashes/hmac'\nimport { hkdf } from '@noble/hashes/hkdf'\nimport { blake3 } from '@noble/hashes/blake3'\nimport { randomBytes, concatBytes } from '@noble/hashes/utils'\nimport { gcm } from '@noble/ciphers/aes'\nimport { pbkdf2Sync } from 'node:crypto'\nimport { hostname, platform, arch } from 'node:os'\n\netc.sha512Sync = (...msgs: Uint8Array[]) => sha512(concatBytes(...msgs))\n\nconst HKDF_INFO = 'squidcloud-session-v1'\n\nexport interface SSPHello {\n email: string\n password_proof: string\n client_ephemeral_pub: string\n client_nonce: string\n device_fingerprint: string\n timestamp: number\n}\n\nexport interface SSPResponse {\n server_nonce: string\n server_ephemeral_pub: string\n server_signature: string\n encrypted_session: string\n session_iv: string\n session_tag: string\n}\n\nexport interface SquidSession {\n session_id: string\n access_token: string\n refresh_token: string\n refresh_token_id: string\n device_fingerprint: string\n issued_at: number\n expires_at: number\n user: {\n id: string\n email: string\n username: string\n plan: 'free' | 'pro' | 'team'\n }\n api_key?: string\n}\n\nexport function generateKeypair(): { pub: Uint8Array; priv: Uint8Array } {\n const priv = edUtils.randomPrivateKey()\n const pub = getPublicKey(priv)\n return { pub, priv }\n}\n\nexport function generateNonce(): Uint8Array {\n return randomBytes(32)\n}\n\nexport function hashPassword(password: string, email: string): Buffer {\n const salt = Buffer.from(email.slice(0, 32).padEnd(32, '\\x00'))\n return pbkdf2Sync(password, salt, 100000, 32, 'sha512')\n}\n\nexport function computeDeviceFingerprint(machineId: string): string {\n const data = `${machineId}:${hostname()}:${platform()}:${arch()}`\n return Buffer.from(blake3(data)).toString('hex')\n}\n\nexport function computeSignPayload(clientNonce: Uint8Array, serverNonce: Uint8Array, clientPub: Uint8Array, timestamp: number): Uint8Array {\n const payload = new Uint8Array(clientNonce.length + serverNonce.length + clientPub.length + 8)\n payload.set(clientNonce, 0)\n payload.set(serverNonce, clientNonce.length)\n payload.set(clientPub, clientNonce.length + serverNonce.length)\n const tsBuf = new Uint8Array(8)\n new DataView(tsBuf.buffer).setBigUint64(0, BigInt(timestamp), false)\n payload.set(tsBuf, clientNonce.length + serverNonce.length + clientPub.length)\n return blake3(payload)\n}\n\nexport function deriveSharedSecret(pub: Uint8Array, priv: Uint8Array): Uint8Array {\n return x25519.getSharedSecret(priv, pub)\n}\n\nexport function deriveEncryptionKey(ecdhSecret: Uint8Array, clientNonce: Uint8Array, serverNonce: Uint8Array): Uint8Array {\n const salt = new Uint8Array(clientNonce.length + serverNonce.length)\n salt.set(clientNonce, 0)\n salt.set(serverNonce, clientNonce.length)\n return hkdf(sha256, ecdhSecret, salt, HKDF_INFO, 32)\n}\n\nexport function encryptSession(session: SquidSession, key: Uint8Array): { ciphertext: Uint8Array; iv: Uint8Array; tag: Uint8Array } {\n const iv = randomBytes(12)\n const plaintext = new TextEncoder().encode(JSON.stringify(session))\n const aes = gcm(key, iv)\n const encrypted = aes.encrypt(plaintext)\n const ciphertext = encrypted.slice(0, -16)\n const tag = encrypted.slice(-16)\n return { ciphertext, iv, tag }\n}\n\nexport function decryptSession(encrypted: Uint8Array, iv: Uint8Array, tag: Uint8Array, key: Uint8Array): SquidSession {\n const combined = new Uint8Array(encrypted.length + tag.length)\n combined.set(encrypted, 0)\n combined.set(tag, encrypted.length)\n const aes = gcm(key, iv)\n const plaintext = aes.decrypt(combined)\n return JSON.parse(new TextDecoder().decode(plaintext)) as SquidSession\n}\n\nexport function verifyServerSignature(signature: Uint8Array, payload: Uint8Array, serverPub: Uint8Array): Promise<boolean> {\n return verify(signature, payload, serverPub)\n}\n\nexport function signPayload(priv: Uint8Array, payload: Uint8Array): Promise<Uint8Array> {\n return sign(payload, priv)\n}\n\nexport function computeHMAC(key: Uint8Array, data: string): string {\n return Buffer.from(hmac(sha256, key, data)).toString('hex')\n}\n\nexport function bytesToHex(buf: Uint8Array): string {\n return Buffer.from(buf).toString('hex')\n}\n\nexport function hexToBytes(hex: string): Uint8Array {\n return new Uint8Array(Buffer.from(hex, 'hex'))\n}\n","import { createHash, randomBytes } from 'node:crypto'\nimport os from 'node:os'\nimport { readFileSync, existsSync } from 'node:fs'\nimport { blake3 } from '@noble/hashes/blake3'\nimport { bytesToHex } from '../crypto/ssp.js'\n\nconst MACHINE_ID_PATHS = [\n '/etc/machine-id',\n '/var/lib/dbus/machine-id',\n '/etc/hostid',\n]\n\nfunction getMachineId(): string {\n for (const p of MACHINE_ID_PATHS) {\n try {\n if (existsSync(p)) {\n return readFileSync(p, 'utf-8').trim()\n }\n } catch {\n continue\n }\n }\n const h = createHash('sha256').update(os.hostname() + os.arch() + os.platform()).digest('hex')\n return h\n}\n\nexport function computeDeviceFingerprint(): string {\n const machineId = getMachineId()\n const components = [\n machineId,\n os.hostname(),\n os.platform(),\n os.arch(),\n os.release(),\n ]\n const data = components.join(':')\n return bytesToHex(blake3(data))\n}\n\nexport function generateDeviceId(): string {\n return randomBytes(32).toString('hex')\n}\n","import os from 'node:os'\nimport path from 'node:path'\nimport fs from 'node:fs'\nimport { randomBytes } from '@noble/hashes/utils'\nimport { sha256 } from '@noble/hashes/sha256'\nimport { hkdf } from '@noble/hashes/hkdf'\nimport { blake3 } from '@noble/hashes/blake3'\nimport { gcm } from '@noble/ciphers/aes'\nimport { bytesToHex, hexToBytes } from '../crypto/ssp.js'\nimport { computeDeviceFingerprint } from './fingerprint.js'\n\nconst FALLBACK_DIR = path.join(os.homedir(), '.squidcloud')\nconst FALLBACK_FILE = path.join(FALLBACK_DIR, '.session')\n\nfunction getFallbackKey(): Uint8Array {\n const fingerprint = computeDeviceFingerprint()\n const ikm = new TextEncoder().encode(fingerprint)\n return hkdf(sha256, ikm, new Uint8Array(32), 'squidcloud-fallback-v1', 32)\n}\n\nexport async function storeSession(sessionJson: string): Promise<void> {\n const key = getFallbackKey()\n const iv = randomBytes(12)\n const plaintext = new TextEncoder().encode(sessionJson)\n const aes = gcm(key, iv)\n const encrypted = aes.encrypt(plaintext)\n if (!fs.existsSync(FALLBACK_DIR)) {\n fs.mkdirSync(FALLBACK_DIR, { recursive: true, mode: 0o700 })\n }\n const payload = {\n iv: bytesToHex(iv),\n data: bytesToHex(encrypted),\n }\n fs.writeFileSync(FALLBACK_FILE, JSON.stringify(payload), { mode: 0o600, encoding: 'utf-8' })\n}\n\nexport async function getSession(): Promise<string | null> {\n try {\n if (!fs.existsSync(FALLBACK_FILE)) return null\n const raw = fs.readFileSync(FALLBACK_FILE, 'utf-8')\n const { iv, data } = JSON.parse(raw) as { iv: string; data: string }\n const key = getFallbackKey()\n const aes = gcm(key, hexToBytes(iv))\n const decrypted = aes.decrypt(hexToBytes(data))\n return new TextDecoder().decode(decrypted)\n } catch {\n return null\n }\n}\n\nexport async function deleteSession(): Promise<void> {\n try {\n if (fs.existsSync(FALLBACK_FILE)) {\n fs.unlinkSync(FALLBACK_FILE)\n }\n } catch {\n // ignore\n }\n}\n","import { SquidSession } from '../crypto/ssp.js'\nimport { storeSession, getSession, deleteSession } from './keychain.js'\n\nexport async function loadSession(): Promise<SquidSession | null> {\n try {\n const raw = await getSession()\n if (!raw) return null\n const session = JSON.parse(raw) as SquidSession\n if (!session.session_id || !session.access_token) {\n await deleteSession()\n return null\n }\n return session\n } catch {\n await deleteSession()\n return null\n }\n}\n\nexport async function saveSession(session: SquidSession): Promise<void> {\n await storeSession(JSON.stringify(session))\n}\n\nexport async function clearSession(): Promise<void> {\n await deleteSession()\n}\n\nexport function isSessionExpired(session: SquidSession): boolean {\n return Date.now() >= session.expires_at\n}\n\nexport function shouldRefreshToken(session: SquidSession): boolean {\n const twoMinutes = 2 * 60 * 1000\n return (session.expires_at - Date.now()) <= twoMinutes\n}\n\nexport function getTimeUntilExpiry(session: SquidSession): number {\n return session.expires_at - Date.now()\n}\n"]}
@@ -1,2 +0,0 @@
1
- import {a as a$1}from'./chunk-FNCZD2QB.js';import {g,n as n$1}from'./chunk-EMRHLWPD.js';import a from'conf';var n=new a({projectName:"squidcloud",defaults:{defaultEnvironment:"production",autoCopyUrl:true,outputFormat:"text",checkUpdates:true}});function d(){return n}async function c(){let o=Object.entries(n.store);if(g()){n$1(Object.fromEntries(o));return}let i=o.map(([s,u])=>({key:s,value:String(u)}));console.log(a$1(i,[{key:"key",label:"Key"},{key:"value",label:"Value"}]));}export{n as a,d as b,c};//# sourceMappingURL=chunk-SCKQAF44.js.map
2
- //# sourceMappingURL=chunk-SCKQAF44.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/commands/util/config.ts"],"names":["config","Conf","getConfig","configList","entries","isJsonMode","logJSON","rows","key","value","renderTable"],"mappings":"4GAKA,IAAMA,EAAS,IAAIC,CAAAA,CAAK,CACtB,WAAA,CAAa,YAAA,CACb,QAAA,CAAU,CACR,mBAAoB,YAAA,CACpB,WAAA,CAAa,KACb,YAAA,CAAc,MAAA,CACd,aAAc,IAChB,CACF,CAAC,EAEM,SAASC,CAAAA,EAAkB,CAChC,OAAOF,CACT,CAEA,eAAOG,CAAAA,EAAmD,CACxD,IAAMC,CAAAA,CAAU,MAAA,CAAO,QAAQJ,CAAAA,CAAO,KAAK,EAC3C,GAAIK,CAAAA,GAAc,CAChBC,GAAAA,CAAQ,MAAA,CAAO,WAAA,CAAYF,CAAO,CAAC,CAAA,CACnC,MACF,CACA,IAAMG,EAAOH,CAAAA,CAAQ,GAAA,CAAI,CAAC,CAACI,CAAAA,CAAKC,CAAK,CAAA,IAAO,CAC1C,IAAAD,CAAAA,CACA,KAAA,CAAO,OAAOC,CAAK,CACrB,CAAA,CAAE,CAAA,CACF,QAAQ,GAAA,CAAIC,GAAAA,CAAYH,EAAM,CAC5B,CAAE,IAAK,KAAA,CAAO,KAAA,CAAO,KAAM,CAAA,CAC3B,CAAE,IAAK,OAAA,CAAS,KAAA,CAAO,OAAQ,CACjC,CAAC,CAAC,EACJ","file":"chunk-SCKQAF44.js","sourcesContent":["import Conf from 'conf'\nimport { renderTable } from '../../lib/output/table.js'\nimport { logJSON } from '../../lib/output/logger.js'\nimport { isJsonMode } from '../../lib/output/logger.js'\n\nconst config = new Conf({\n projectName: 'squidcloud',\n defaults: {\n defaultEnvironment: 'production',\n autoCopyUrl: true,\n outputFormat: 'text',\n checkUpdates: true,\n },\n})\n\nexport function getConfig(): Conf {\n return config\n}\n\nexport default async function configList(): Promise<void> {\n const entries = Object.entries(config.store) as [string, unknown][]\n if (isJsonMode()) {\n logJSON(Object.fromEntries(entries))\n return\n }\n const rows = entries.map(([key, value]) => ({\n key,\n value: String(value),\n }))\n console.log(renderTable(rows, [\n { key: 'key', label: 'Key' },\n { key: 'value', label: 'Value' },\n ]))\n}\n\nexport { config }\n"]}
@@ -1,3 +0,0 @@
1
- import {b as b$1,a,d as d$1,c}from'./chunk-Q3A4IBGC.js';import s from'fs';import f from'path';import d from'os';var l="https://aouqcwbdoyrccjcrhzzi.supabase.co",y="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImFvdXFjd2Jkb3lyY2NqY3JoenppIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NDI5NjAyMTEsImV4cCI6MjA1ODUzNjIxMX0.b_VHC6uP3Efw3o_yibCoZKmsCIVZgOJ4FUF1NK-nd7U",r=f.join(d.homedir(),".squidcloud",".refresh.lock");function S(){let n=f.dirname(r);s.existsSync(n)||s.mkdirSync(n,{recursive:true,mode:448});}async function h(){S();let n=false,t=0;for(;!n&&t<50;)try{let i=s.openSync(r,"wx");s.writeSync(i,String(process.pid)),s.closeSync(i),n=!0;}catch{let i=s.statSync(r);if(Date.now()-i.mtimeMs>1e4)try{s.unlinkSync(r);}catch{}await new Promise(e=>setTimeout(e,100)),t++;}return ()=>{try{s.unlinkSync(r);}catch{}}}async function b(){let n=await h();try{let t=await b$1();if(!t)return null;let i=a();if(t.device_fingerprint!==i)return await d$1(),null;let a$1=await fetch(`${l}/auth/v1/token?grant_type=refresh_token`,{method:"POST",headers:{"Content-Type":"application/json",apikey:y},body:JSON.stringify({refresh_token:t.refresh_token})});if(!a$1.ok)return await d$1(),null;let e=await a$1.json(),c$1={...t,access_token:e.access_token,refresh_token:e.refresh_token,expires_at:e.expires_at*1e3,issued_at:Date.now(),device_fingerprint:i,user:{id:e.user.id,email:e.user.email,username:e.user.user_metadata?.username||e.user.email.split("@")[0]||"user",plan:"free"}};return await c(c$1),c$1}catch{return await d$1(),null}finally{n();}}
2
- export{b as a};//# sourceMappingURL=chunk-ULVQ53OO.js.map
3
- //# sourceMappingURL=chunk-ULVQ53OO.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/lib/auth/refresh.ts"],"names":["SUPABASE_URL","ANON_KEY","LOCK_FILE","path","os","ensureLockDir","dir","fs","acquireLock","acquired","attempts","fd","stat","r","refreshAccessToken","release","session","loadSession","fingerprint","computeDeviceFingerprint","clearSession","response","data","newSession","saveSession"],"mappings":"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","file":"chunk-ULVQ53OO.js","sourcesContent":["import fs from 'node:fs'\nimport path from 'node:path'\nimport os from 'node:os'\nimport { SquidSession } from '../crypto/ssp.js'\nimport { computeDeviceFingerprint } from './fingerprint.js'\nimport { loadSession, saveSession, clearSession } from './session.js'\n\nconst SUPABASE_URL = 'https://aouqcwbdoyrccjcrhzzi.supabase.co'\nconst ANON_KEY = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImFvdXFjd2Jkb3lyY2NqY3JoenppIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NDI5NjAyMTEsImV4cCI6MjA1ODUzNjIxMX0.b_VHC6uP3Efw3o_yibCoZKmsCIVZgOJ4FUF1NK-nd7U'\n\nconst LOCK_FILE = path.join(os.homedir(), '.squidcloud', '.refresh.lock')\n\nfunction ensureLockDir(): void {\n const dir = path.dirname(LOCK_FILE)\n if (!fs.existsSync(dir)) {\n fs.mkdirSync(dir, { recursive: true, mode: 0o700 })\n }\n}\n\nasync function acquireLock(): Promise<() => void> {\n ensureLockDir()\n let acquired = false\n let attempts = 0\n while (!acquired && attempts < 50) {\n try {\n const fd = fs.openSync(LOCK_FILE, 'wx')\n fs.writeSync(fd, String(process.pid))\n fs.closeSync(fd)\n acquired = true\n } catch {\n const stat = fs.statSync(LOCK_FILE)\n const age = Date.now() - stat.mtimeMs\n if (age > 10000) {\n try { fs.unlinkSync(LOCK_FILE) } catch {}\n }\n await new Promise(r => setTimeout(r, 100))\n attempts++\n }\n }\n return () => {\n try { fs.unlinkSync(LOCK_FILE) } catch {}\n }\n}\n\ninterface SupabaseRefreshResponse {\n access_token: string\n token_type: string\n expires_in: number\n expires_at: number\n refresh_token: string\n user: {\n id: string\n email: string\n user_metadata: Record<string, unknown>\n }\n}\n\nexport async function refreshAccessToken(): Promise<SquidSession | null> {\n const release = await acquireLock()\n try {\n const session = await loadSession()\n if (!session) return null\n\n const fingerprint = computeDeviceFingerprint()\n if (session.device_fingerprint !== fingerprint) {\n await clearSession()\n return null\n }\n\n const response = await fetch(`${SUPABASE_URL}/auth/v1/token?grant_type=refresh_token`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'apikey': ANON_KEY,\n },\n body: JSON.stringify({ refresh_token: session.refresh_token }),\n })\n\n if (!response.ok) {\n await clearSession()\n return null\n }\n\n const data: SupabaseRefreshResponse = await response.json()\n\n const newSession: SquidSession = {\n ...session,\n access_token: data.access_token,\n refresh_token: data.refresh_token,\n expires_at: data.expires_at * 1000,\n issued_at: Date.now(),\n device_fingerprint: fingerprint,\n user: {\n id: data.user.id,\n email: data.user.email,\n username: (data.user.user_metadata?.username as string) || data.user.email.split('@')[0] || 'user',\n plan: 'free',\n },\n }\n await saveSession(newSession)\n return newSession\n } catch {\n await clearSession()\n return null\n } finally {\n release()\n }\n}\n"]}
@@ -1,2 +0,0 @@
1
- import {g}from'./chunk-EMRHLWPD.js';import t from'ora';import o from'chalk';function n(){return !!(process.env.CI||process.env.GITHUB_ACTIONS||process.env.GITLAB_CI||process.env.CIRCLECI)}var a={dots:{spinner:"dots"},moon:{spinner:"moon"},arc:{spinner:"arc"},bounce:{spinner:"bounce"},shark:{spinner:{interval:120,frames:["\u25B8 ","\u25B8\u25B8 ","\u25B8\u25B8\u25B8 ","\u25B8\u25B8\u25B8\u25B8"," \u25B8\u25B8\u25B8\u25B8"," \u25B8\u25B8\u25B8"," \u25B8\u25B8"," \u25B8"]}}};function c(e,i="shark"){if(n()||g()){let r={...t({text:e,spinner:"dots"}),start:()=>(n()||console.log(e),r),stop:()=>(n()||console.log(),r),succeed:()=>(n()||console.log(`${o.green("\u2713")} ${e}`),r),fail:()=>(n()||console.log(`${o.red("\u2717")} ${e}`),r),warn:()=>(n()||console.log(`${o.hex("#FF9800")("\u26A0")} ${e}`),r),info:()=>(n()||console.log(`${o.hex("#4FC3F7")("\u2139")} ${e}`),r),stopAndPersist:()=>(n()||console.log(`${e}`),r),clear:()=>r,render:()=>r,frame:()=>" ",text:e,isSpinning:false,indent:0,color:"cyan",prefixText:"",spinner:{interval:100,frames:[""]}};return r}return t({text:e,...a[i]}).start()}export{c as a};//# sourceMappingURL=chunk-UNA5CAPX.js.map
2
- //# sourceMappingURL=chunk-UNA5CAPX.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/lib/output/index.ts","../src/lib/output/spinner.ts"],"names":["isCI","SPINNER_FRAMES","createSpinner","text","style","isJsonMode","silent","ora","chalk"],"mappings":"4EAMO,SAASA,CAAAA,EAAgB,CAC9B,OAAO,CAAC,EACN,OAAA,CAAQ,GAAA,CAAI,EAAA,EACZ,OAAA,CAAQ,GAAA,CAAI,cAAA,EACZ,OAAA,CAAQ,GAAA,CAAI,SAAA,EACZ,OAAA,CAAQ,GAAA,CAAI,QAAA,CAEhB,CCTA,IAAMC,CAAAA,CAA8C,CAClD,IAAA,CAAM,CAAE,OAAA,CAAS,MAAO,CAAA,CACxB,IAAA,CAAM,CAAE,OAAA,CAAS,MAAO,CAAA,CACxB,GAAA,CAAK,CAAE,QAAS,KAAM,CAAA,CACtB,MAAA,CAAQ,CAAE,OAAA,CAAS,QAAS,CAAA,CAC5B,KAAA,CAAO,CAAE,OAAA,CAAS,CAAE,QAAA,CAAU,GAAA,CAAK,MAAA,CAAQ,CAAC,WAAA,CAAQ,gBAAA,CAAQ,qBAAA,CAAQ,0BAAA,CAAQ,2BAAA,CAAS,sBAAA,CAAS,iBAAA,CAAS,YAAO,CAAE,CAAE,CACpH,CAAA,CAEO,SAASC,CAAAA,CAAcC,EAAcC,CAAAA,CAAqC,OAAA,CAAc,CAC7F,GAAIJ,CAAAA,EAAK,EAAKK,CAAAA,EAAW,CAAG,CAC1B,IAAMC,CAAAA,CAAc,CAClB,GAAGC,CAAAA,CAAI,CAAE,IAAA,CAAAJ,CAAAA,CAAM,OAAA,CAAS,MAAO,CAAC,CAAA,CAChC,KAAA,CAAO,KAAaH,CAAAA,EAAK,EAAG,OAAA,CAAQ,GAAA,CAAIG,CAAI,CAAA,CAAUG,GACtD,IAAA,CAAM,KAAaN,CAAAA,EAAK,EAAG,OAAA,CAAQ,GAAA,EAAI,CAAUM,CAAAA,CAAAA,CACjD,OAAA,CAAS,KAAaN,CAAAA,EAAK,EAAG,OAAA,CAAQ,GAAA,CAAI,GAAGQ,CAAAA,CAAM,KAAA,CAAM,QAAG,CAAC,CAAA,CAAA,EAAIL,CAAI,EAAE,CAAA,CAAUG,CAAAA,CAAAA,CACjF,IAAA,CAAM,KAAaN,CAAAA,EAAK,EAAG,QAAQ,GAAA,CAAI,CAAA,EAAGQ,CAAAA,CAAM,GAAA,CAAI,QAAG,CAAC,CAAA,CAAA,EAAIL,CAAI,CAAA,CAAE,CAAA,CAAUG,CAAAA,CAAAA,CAC5E,IAAA,CAAM,KAAaN,CAAAA,IAAQ,OAAA,CAAQ,GAAA,CAAI,CAAA,EAAGQ,CAAAA,CAAM,GAAA,CAAI,SAAS,CAAA,CAAE,QAAG,CAAC,CAAA,CAAA,EAAIL,CAAI,CAAA,CAAE,CAAA,CAAUG,CAAAA,CAAAA,CACvF,KAAM,KAAaN,CAAAA,EAAK,EAAG,OAAA,CAAQ,GAAA,CAAI,CAAA,EAAGQ,CAAAA,CAAM,GAAA,CAAI,SAAS,CAAA,CAAE,QAAG,CAAC,CAAA,CAAA,EAAIL,CAAI,EAAE,CAAA,CAAUG,CAAAA,CAAAA,CACvF,cAAA,CAAgB,KAAaN,CAAAA,EAAK,EAAG,OAAA,CAAQ,GAAA,CAAI,CAAA,EAAGG,CAAI,CAAA,CAAE,CAAA,CAAUG,CAAAA,CAAAA,CACpE,KAAA,CAAO,IAAeA,CAAAA,CACtB,MAAA,CAAQ,IAAeA,CAAAA,CACvB,KAAA,CAAO,IAAM,GAAA,CACb,IAAA,CAAAH,CAAAA,CACA,UAAA,CAAY,KAAA,CACZ,MAAA,CAAQ,CAAA,CACR,KAAA,CAAO,OACP,UAAA,CAAY,EAAA,CACZ,OAAA,CAAS,CAAE,QAAA,CAAU,GAAA,CAAK,MAAA,CAAQ,CAAC,EAAE,CAAE,CACzC,CAAA,CACA,OAAOG,CACT,CACA,OAAOC,CAAAA,CAAI,CAAE,IAAA,CAAAJ,CAAAA,CAAM,GAAGF,CAAAA,CAAeG,CAAK,CAAE,CAAC,CAAA,CAAE,KAAA,EACjD","file":"chunk-UNA5CAPX.js","sourcesContent":["export { renderMascot, renderBrandedMascot } from './mascot.js'\nexport { brand, brandDim, brandLine, success, error, warn, info, muted, copied, BRAND_MARKER, SUCCESS_MARK, ERROR_MARK, WARN_MARK, INFO_MARK, PROGRESS_MARK } from './brand.js'\nexport { setJsonMode, isJsonMode, log, logSuccess, logError, logWarn, logInfo, logBrand, logRaw, logJSON, logErrorJSON, writeAudit } from './logger.js'\nexport { createSpinner } from './spinner.js'\nexport { createTable, renderTable, renderCompactTable } from './table.js'\n\nexport function isCI(): boolean {\n return !!(\n process.env.CI ||\n process.env.GITHUB_ACTIONS ||\n process.env.GITLAB_CI ||\n process.env.CIRCLECI\n )\n}\n","import ora, { Ora } from 'ora'\nimport chalk from 'chalk'\nimport { isCI, isJsonMode } from './index.js'\n\nconst SPINNER_FRAMES: Record<string, ora.Options> = {\n dots: { spinner: 'dots' },\n moon: { spinner: 'moon' },\n arc: { spinner: 'arc' },\n bounce: { spinner: 'bounce' },\n shark: { spinner: { interval: 120, frames: ['▸ ', '▸▸ ', '▸▸▸ ', '▸▸▸▸', ' ▸▸▸▸', ' ▸▸▸', ' ▸▸', ' ▸'] } },\n}\n\nexport function createSpinner(text: string, style: keyof typeof SPINNER_FRAMES = 'shark'): Ora {\n if (isCI() || isJsonMode()) {\n const silent: Ora = {\n ...ora({ text, spinner: 'dots' }),\n start: () => { if (!isCI()) console.log(text); return silent },\n stop: () => { if (!isCI()) console.log(); return silent },\n succeed: () => { if (!isCI()) console.log(`${chalk.green('✓')} ${text}`); return silent },\n fail: () => { if (!isCI()) console.log(`${chalk.red('✗')} ${text}`); return silent },\n warn: () => { if (!isCI()) console.log(`${chalk.hex('#FF9800')('⚠')} ${text}`); return silent },\n info: () => { if (!isCI()) console.log(`${chalk.hex('#4FC3F7')('ℹ')} ${text}`); return silent },\n stopAndPersist: () => { if (!isCI()) console.log(`${text}`); return silent },\n clear: () => { return silent },\n render: () => { return silent },\n frame: () => ' ',\n text,\n isSpinning: false,\n indent: 0,\n color: 'cyan',\n prefixText: '',\n spinner: { interval: 100, frames: [''] },\n } as unknown as Ora\n return silent\n }\n return ora({ text, ...SPINNER_FRAMES[style] }).start()\n}\n"]}
@@ -1,2 +0,0 @@
1
- export{b as ApiError,f as apiDelete,c as apiGet,d as apiPost,e as apiPut,a as apiRequest,g as apiUpload}from'./chunk-CHBVIZF5.js';import'./chunk-NDB6KXYI.js';import'./chunk-ULVQ53OO.js';import'./chunk-Q3A4IBGC.js';//# sourceMappingURL=client-IR7OHGEQ.js.map
2
- //# sourceMappingURL=client-IR7OHGEQ.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"client-IR7OHGEQ.js"}
@@ -1,2 +0,0 @@
1
- import {a}from'./chunk-NDB6KXYI.js';import {b}from'./chunk-Q3A4IBGC.js';import {WebSocket}from'ws';import e from'chalk';async function f(r){let i=await b();i||(console.error("Not authenticated"),process.exit(1));let a$1=a().replace(/^http/,"ws"),s=new WebSocket(`${a$1}/api/v1/collab/${encodeURIComponent(r)}/activity`,{headers:{Authorization:`Bearer ${i.access_token}`}});console.log(e.dim(`Streaming activity for "${r}"... (Ctrl+C to stop)`)),s.on("message",t=>{try{let o=JSON.parse(t.toString()),l=e.dim(new Date(o.timestamp).toLocaleTimeString()),p=e.hex("#4FC3F7")(o.user||"unknown"),m=o.action==="upload"?e.green("uploaded"):o.action==="delete"?e.red("deleted"):o.action==="edit"?e.yellow("edited"):o.action,d=o.file||o.path||"";console.log(`${l} ${p} ${m} ${d}`);}catch{console.log(t.toString());}}),s.on("error",t=>{console.error(e.red(`Error: ${t.message}`)),process.exit(1);}),process.on("SIGINT",()=>{s.close(),process.exit(0);});}export{f as default};//# sourceMappingURL=collab-activity-YOEJEJTQ.js.map
2
- //# sourceMappingURL=collab-activity-YOEJEJTQ.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/commands/collab/collab-activity.ts"],"names":["collabActivity","folder","session","loadSession","apiBase","getApiBase","ws","WebSocket","chalk","data","e","ts","user","action","file","err"],"mappings":"wHAKA,eAAOA,CAAAA,CAAsCC,CAAAA,CAA+B,CAC1E,IAAMC,CAAAA,CAAU,MAAMC,CAAAA,EAAY,CAC7BD,IAAW,OAAA,CAAQ,KAAA,CAAM,mBAAmB,CAAA,CAAG,OAAA,CAAQ,KAAK,CAAC,CAAA,CAAA,CAElE,IAAME,GAAAA,CAAUC,CAAAA,GAAa,OAAA,CAAQ,OAAA,CAAS,IAAI,CAAA,CAC5CC,CAAAA,CAAK,IAAIC,SAAAA,CAAU,CAAA,EAAGH,GAAO,CAAA,eAAA,EAAkB,kBAAA,CAAmBH,CAAM,CAAC,CAAA,SAAA,CAAA,CAAa,CAC1F,OAAA,CAAS,CAAE,aAAA,CAAe,CAAA,OAAA,EAAUC,EAAQ,YAAY,CAAA,CAAG,CAC7D,CAAC,CAAA,CAED,QAAQ,GAAA,CAAIM,CAAAA,CAAM,IAAI,CAAA,wBAAA,EAA2BP,CAAM,uBAAuB,CAAC,CAAA,CAC/EK,EAAG,EAAA,CAAG,SAAA,CAAYG,GAAiB,CACjC,GAAI,CACF,IAAMC,CAAAA,CAAI,KAAK,KAAA,CAAMD,CAAAA,CAAK,UAAU,CAAA,CAC9BE,EAAKH,CAAAA,CAAM,GAAA,CAAI,IAAI,IAAA,CAAKE,CAAAA,CAAE,SAAS,CAAA,CAAE,kBAAA,EAAoB,CAAA,CACzDE,CAAAA,CAAOJ,EAAM,GAAA,CAAI,SAAS,CAAA,CAAEE,CAAAA,CAAE,MAAQ,SAAS,CAAA,CAC/CG,EAASH,CAAAA,CAAE,MAAA,GAAW,SAAWF,CAAAA,CAAM,KAAA,CAAM,UAAU,CAAA,CAC3DE,CAAAA,CAAE,SAAW,QAAA,CAAWF,CAAAA,CAAM,IAAI,SAAS,CAAA,CAC3CE,EAAE,MAAA,GAAW,MAAA,CAASF,EAAM,MAAA,CAAO,QAAQ,EAAIE,CAAAA,CAAE,MAAA,CAC7CI,EAAOJ,CAAAA,CAAE,IAAA,EAAQA,EAAE,IAAA,EAAQ,EAAA,CACjC,QAAQ,GAAA,CAAI,CAAA,EAAGC,CAAE,CAAA,CAAA,EAAIC,CAAI,IAAIC,CAAM,CAAA,CAAA,EAAIC,CAAI,CAAA,CAAE,EAC/C,CAAA,KAAQ,CACN,QAAQ,GAAA,CAAIL,CAAAA,CAAK,UAAU,EAC7B,CACF,CAAC,CAAA,CACDH,EAAG,EAAA,CAAG,OAAA,CAAUS,GAAQ,CAAE,OAAA,CAAQ,MAAMP,CAAAA,CAAM,GAAA,CAAI,UAAUO,CAAAA,CAAI,OAAO,EAAE,CAAC,CAAA,CAAG,QAAQ,IAAA,CAAK,CAAC,EAAE,CAAC,CAAA,CAC9F,QAAQ,EAAA,CAAG,QAAA,CAAU,IAAM,CAAET,CAAAA,CAAG,OAAM,CAAG,OAAA,CAAQ,KAAK,CAAC,EAAE,CAAC,EAC5D","file":"collab-activity-YOEJEJTQ.js","sourcesContent":["import { WebSocket } from 'ws'\nimport chalk from 'chalk'\nimport { loadSession } from '../../lib/auth/session.js'\nimport { getApiBase } from '../../lib/api/cert-pin.js'\n\nexport default async function collabActivity(folder: string): Promise<void> {\n const session = await loadSession()\n if (!session) { console.error('Not authenticated'); process.exit(1) }\n\n const apiBase = getApiBase().replace(/^http/, 'ws')\n const ws = new WebSocket(`${apiBase}/api/v1/collab/${encodeURIComponent(folder)}/activity`, {\n headers: { Authorization: `Bearer ${session.access_token}` },\n })\n\n console.log(chalk.dim(`Streaming activity for \"${folder}\"... (Ctrl+C to stop)`))\n ws.on('message', (data: Buffer) => {\n try {\n const e = JSON.parse(data.toString())\n const ts = chalk.dim(new Date(e.timestamp).toLocaleTimeString())\n const user = chalk.hex('#4FC3F7')(e.user || 'unknown')\n const action = e.action === 'upload' ? chalk.green('uploaded') :\n e.action === 'delete' ? chalk.red('deleted') :\n e.action === 'edit' ? chalk.yellow('edited') : e.action\n const file = e.file || e.path || ''\n console.log(`${ts} ${user} ${action} ${file}`)\n } catch {\n console.log(data.toString())\n }\n })\n ws.on('error', (err) => { console.error(chalk.red(`Error: ${err.message}`)); process.exit(1) })\n process.on('SIGINT', () => { ws.close(); process.exit(0) })\n}\n"]}
@@ -1,2 +0,0 @@
1
- import {a}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'./chunk-Q3A4IBGC.js';async function m(i,e){let t=a(`Inviting ${e.email} to "${i}" as ${e.role}...`);t.start(),await d("/api/v1/collab/invite",{folder:i,email:e.email,role:e.role},{authenticated:true}),t.succeed(),h(`Invited ${e.email} to "${i}" as ${e.role}`);}export{m as default};//# sourceMappingURL=collab-invite-VDDBCLSH.js.map
2
- //# sourceMappingURL=collab-invite-VDDBCLSH.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/commands/collab/collab-invite.ts"],"names":["collabInvite","folder","options","spinner","createSpinner","apiPost","logSuccess"],"mappings":"4NAIA,eAAOA,CAAAA,CAAoCC,EAAgBC,CAAAA,CAAyD,CAClH,IAAMC,CAAAA,CAAUC,CAAAA,CAAc,CAAA,SAAA,EAAYF,CAAAA,CAAQ,KAAK,CAAA,KAAA,EAAQD,CAAM,CAAA,KAAA,EAAQC,CAAAA,CAAQ,IAAI,CAAA,GAAA,CAAK,CAAA,CAC9FC,CAAAA,CAAQ,OAAM,CACd,MAAME,CAAAA,CAAQ,uBAAA,CAAyB,CACrC,MAAA,CAAAJ,EACA,KAAA,CAAOC,CAAAA,CAAQ,KAAA,CACf,IAAA,CAAMA,CAAAA,CAAQ,IAChB,EAAG,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAC1BC,CAAAA,CAAQ,SAAQ,CAChBG,CAAAA,CAAW,CAAA,QAAA,EAAWJ,CAAAA,CAAQ,KAAK,CAAA,KAAA,EAAQD,CAAM,CAAA,KAAA,EAAQC,CAAAA,CAAQ,IAAI,CAAA,CAAE,EACzE","file":"collab-invite-VDDBCLSH.js","sourcesContent":["import { apiPost } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess } from '../../lib/output/logger.js'\n\nexport default async function collabInvite(folder: string, options: { email: string; role: string }): Promise<void> {\n const spinner = createSpinner(`Inviting ${options.email} to \"${folder}\" as ${options.role}...`)\n spinner.start()\n await apiPost('/api/v1/collab/invite', {\n folder,\n email: options.email,\n role: options.role,\n }, { authenticated: true })\n spinner.succeed()\n logSuccess(`Invited ${options.email} to \"${folder}\" as ${options.role}`)\n}\n"]}
@@ -1,2 +0,0 @@
1
- import {a}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'./chunk-Q3A4IBGC.js';import n from'inquirer';async function m(e){let{confirm:a$1}=await n.prompt([{type:"confirm",name:"confirm",message:`Remove yourself from "${e}"?`,default:false}]);if(!a$1)return;let t=a(`Leaving "${e}"...`);t.start(),await d("/api/v1/collab/leave",{folder:e},{authenticated:true}),t.succeed(),h(`You left "${e}"`);}export{m as default};//# sourceMappingURL=collab-leave-2AEIFR47.js.map
2
- //# sourceMappingURL=collab-leave-2AEIFR47.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/commands/collab/collab-leave.ts"],"names":["collabLeave","folder","confirm","inquirer","spinner","createSpinner","apiPost","logSuccess"],"mappings":"oPAKA,eAAOA,CAAAA,CAAmCC,CAAAA,CAA+B,CACvE,GAAM,CAAE,OAAA,CAAAC,GAAQ,CAAA,CAAI,MAAMC,CAAAA,CAAS,MAAA,CAAO,CAAC,CACzC,IAAA,CAAM,SAAA,CACN,IAAA,CAAM,SAAA,CACN,OAAA,CAAS,CAAA,sBAAA,EAAyBF,CAAM,CAAA,EAAA,CAAA,CACxC,OAAA,CAAS,KACX,CAAC,CAAC,EACF,GAAI,CAACC,GAAAA,CAAS,OACd,IAAME,CAAAA,CAAUC,CAAAA,CAAc,CAAA,SAAA,EAAYJ,CAAM,CAAA,IAAA,CAAM,CAAA,CACtDG,CAAAA,CAAQ,KAAA,EAAM,CACd,MAAME,CAAAA,CAAQ,sBAAA,CAAwB,CAAE,MAAA,CAAAL,CAAO,CAAA,CAAG,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CACzEG,CAAAA,CAAQ,OAAA,EAAQ,CAChBG,CAAAA,CAAW,CAAA,UAAA,EAAaN,CAAM,GAAG,EACnC","file":"collab-leave-2AEIFR47.js","sourcesContent":["import inquirer from 'inquirer'\nimport { apiPost } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess } from '../../lib/output/logger.js'\n\nexport default async function collabLeave(folder: string): Promise<void> {\n const { confirm } = await inquirer.prompt([{\n type: 'confirm',\n name: 'confirm',\n message: `Remove yourself from \"${folder}\"?`,\n default: false,\n }])\n if (!confirm) return\n const spinner = createSpinner(`Leaving \"${folder}\"...`)\n spinner.start()\n await apiPost('/api/v1/collab/leave', { folder }, { authenticated: true })\n spinner.succeed()\n logSuccess(`You left \"${folder}\"`)\n}\n"]}
@@ -1,2 +0,0 @@
1
- import {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';import t from'chalk';async function n(r){let i=((await c(`/api/v1/collab/list?folder=${encodeURIComponent(r)}`,{authenticated:true})).collaborators||[]).map(e=>({email:e.email,user:e.username,role:t.hex("#7C4DFF")(e.role),joined:d(e.joined_at),active:e.last_active?d(e.last_active):t.dim("never")}));console.log(a(i,[{key:"email",label:"Email"},{key:"user",label:"User"},{key:"role",label:"Role"},{key:"joined",label:"Joined"},{key:"active",label:"Last Active"}]));}export{n as default};//# sourceMappingURL=collab-list-MTJYXE53.js.map
2
- //# sourceMappingURL=collab-list-MTJYXE53.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/commands/collab/collab-list.ts"],"names":["collabList","folder","rows","apiGet","c","chalk","formatRelative","renderTable"],"mappings":"iPAaA,eAAOA,CAAAA,CAAkCC,EAA+B,CAEtE,IAAMC,IADO,MAAMC,CAAAA,CAA0C,8BAA8B,kBAAA,CAAmBF,CAAM,CAAC,CAAA,CAAA,CAAI,CAAE,cAAe,IAAK,CAAC,GAC7H,aAAA,EAAiB,IAAI,GAAA,CAAIG,CAAAA,GAAM,CAChD,KAAA,CAAOA,CAAAA,CAAE,MACT,IAAA,CAAMA,CAAAA,CAAE,SACR,IAAA,CAAMC,CAAAA,CAAM,IAAI,SAAS,CAAA,CAAED,EAAE,IAAI,CAAA,CACjC,OAAQE,CAAAA,CAAeF,CAAAA,CAAE,SAAS,CAAA,CAClC,MAAA,CAAQA,CAAAA,CAAE,YAAcE,CAAAA,CAAeF,CAAAA,CAAE,WAAW,CAAA,CAAIC,CAAAA,CAAM,IAAI,OAAO,CAC3E,EAAE,CAAA,CACF,OAAA,CAAQ,IAAIE,CAAAA,CAAYL,CAAAA,CAAM,CAC5B,CAAE,GAAA,CAAK,QAAS,KAAA,CAAO,OAAQ,CAAA,CAC/B,CAAE,GAAA,CAAK,MAAA,CAAQ,MAAO,MAAO,CAAA,CAC7B,CAAE,GAAA,CAAK,MAAA,CAAQ,MAAO,MAAO,CAAA,CAC7B,CAAE,GAAA,CAAK,QAAA,CAAU,MAAO,QAAS,CAAA,CACjC,CAAE,GAAA,CAAK,QAAA,CAAU,MAAO,aAAc,CACxC,CAAC,CAAC,EACJ","file":"collab-list-MTJYXE53.js","sourcesContent":["import { apiGet } from '../../lib/api/client.js'\nimport { renderTable } from '../../lib/output/table.js'\nimport { formatRelative } from '../../lib/utils/format.js'\nimport chalk from 'chalk'\n\ninterface Collaborator {\n email: string\n username: string\n role: string\n joined_at: string\n last_active: string | null\n}\n\nexport default async function collabList(folder: string): Promise<void> {\n const data = await apiGet<{ collaborators: Collaborator[] }>(`/api/v1/collab/list?folder=${encodeURIComponent(folder)}`, { authenticated: true })\n const rows = (data.collaborators || []).map(c => ({\n email: c.email,\n user: c.username,\n role: chalk.hex('#7C4DFF')(c.role),\n joined: formatRelative(c.joined_at),\n active: c.last_active ? formatRelative(c.last_active) : chalk.dim('never'),\n }))\n console.log(renderTable(rows, [\n { key: 'email', label: 'Email' },\n { key: 'user', label: 'User' },\n { key: 'role', label: 'Role' },\n { key: 'joined', label: 'Joined' },\n { key: 'active', label: 'Last Active' },\n ]))\n}\n"]}
@@ -1,2 +0,0 @@
1
- import {a}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'./chunk-Q3A4IBGC.js';async function o(e,i){let m=a(`Removing ${i.email} from "${e}"...`);m.start(),await d("/api/v1/collab/remove",{folder:e,email:i.email},{authenticated:true}),m.succeed(),h(`Removed ${i.email} from "${e}"`);}export{o as default};//# sourceMappingURL=collab-remove-I3FKGFOF.js.map
2
- //# sourceMappingURL=collab-remove-I3FKGFOF.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/commands/collab/collab-remove.ts"],"names":["collabRemove","folder","options","spinner","createSpinner","apiPost","logSuccess"],"mappings":"4NAIA,eAAOA,EAAoCC,CAAAA,CAAgBC,CAAAA,CAA2C,CACpG,IAAMC,CAAAA,CAAUC,EAAc,CAAA,SAAA,EAAYF,CAAAA,CAAQ,KAAK,CAAA,OAAA,EAAUD,CAAM,MAAM,CAAA,CAC7EE,CAAAA,CAAQ,OAAM,CACd,MAAME,EAAQ,uBAAA,CAAyB,CAAE,MAAA,CAAAJ,CAAAA,CAAQ,MAAOC,CAAAA,CAAQ,KAAM,EAAG,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAChGC,EAAQ,OAAA,EAAQ,CAChBG,EAAW,CAAA,QAAA,EAAWJ,CAAAA,CAAQ,KAAK,CAAA,OAAA,EAAUD,CAAM,GAAG,EACxD","file":"collab-remove-I3FKGFOF.js","sourcesContent":["import { apiPost } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess } from '../../lib/output/logger.js'\n\nexport default async function collabRemove(folder: string, options: { email: string }): Promise<void> {\n const spinner = createSpinner(`Removing ${options.email} from \"${folder}\"...`)\n spinner.start()\n await apiPost('/api/v1/collab/remove', { folder, email: options.email }, { authenticated: true })\n spinner.succeed()\n logSuccess(`Removed ${options.email} from \"${folder}\"`)\n}\n"]}
@@ -1,2 +0,0 @@
1
- import {a}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'./chunk-Q3A4IBGC.js';import c from'inquirer';async function m(r,t){let{confirm:a$1}=await c.prompt([{type:"input",name:"confirm",message:`Type "${r}" to confirm ownership transfer to ${t.to}:`,validate:s=>s===r?true:"Type the exact folder name to confirm"}]);if(a$1!==r)return;let e=a(`Transferring ownership of "${r}" to ${t.to}...`);e.start(),await d("/api/v1/collab/transfer",{folder:r,new_owner:t.to},{authenticated:true}),e.succeed(),h(`Ownership of "${r}" transferred to ${t.to}`);}export{m as default};//# sourceMappingURL=collab-transfer-VVHH6B2J.js.map
2
- //# sourceMappingURL=collab-transfer-VVHH6B2J.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/commands/collab/collab-transfer.ts"],"names":["collabTransfer","folder","options","confirm","inquirer","v","spinner","createSpinner","apiPost","logSuccess"],"mappings":"oPAKA,eAAOA,CAAAA,CAAsCC,CAAAA,CAAgBC,EAAwC,CACnG,GAAM,CAAE,OAAA,CAAAC,GAAQ,CAAA,CAAI,MAAMC,CAAAA,CAAS,MAAA,CAAO,CAAC,CACzC,IAAA,CAAM,OAAA,CACN,IAAA,CAAM,UACN,OAAA,CAAS,CAAA,MAAA,EAASH,CAAM,CAAA,mCAAA,EAAsCC,EAAQ,EAAE,CAAA,CAAA,CAAA,CACxE,QAAA,CAAWG,CAAAA,EAAcA,IAAMJ,CAAAA,CAAS,IAAA,CAAO,uCACjD,CAAC,CAAC,EACF,GAAIE,GAAAA,GAAYF,CAAAA,CAAQ,OAExB,IAAMK,CAAAA,CAAUC,CAAAA,CAAc,CAAA,2BAAA,EAA8BN,CAAM,QAAQC,CAAAA,CAAQ,EAAE,CAAA,GAAA,CAAK,CAAA,CACzFI,EAAQ,KAAA,EAAM,CACd,MAAME,CAAAA,CAAQ,yBAAA,CAA2B,CAAE,MAAA,CAAAP,CAAAA,CAAQ,SAAA,CAAWC,CAAAA,CAAQ,EAAG,CAAA,CAAG,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CACnGI,CAAAA,CAAQ,OAAA,EAAQ,CAChBG,EAAW,CAAA,cAAA,EAAiBR,CAAM,oBAAoBC,CAAAA,CAAQ,EAAE,EAAE,EACpE","file":"collab-transfer-VVHH6B2J.js","sourcesContent":["import inquirer from 'inquirer'\nimport { apiPost } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess } from '../../lib/output/logger.js'\n\nexport default async function collabTransfer(folder: string, options: { to: string }): Promise<void> {\n const { confirm } = await inquirer.prompt([{\n type: 'input',\n name: 'confirm',\n message: `Type \"${folder}\" to confirm ownership transfer to ${options.to}:`,\n validate: (v: string) => v === folder ? true : 'Type the exact folder name to confirm',\n }])\n if (confirm !== folder) return\n\n const spinner = createSpinner(`Transferring ownership of \"${folder}\" to ${options.to}...`)\n spinner.start()\n await apiPost('/api/v1/collab/transfer', { folder, new_owner: options.to }, { authenticated: true })\n spinner.succeed()\n logSuccess(`Ownership of \"${folder}\" transferred to ${options.to}`)\n}\n"]}
@@ -1,44 +0,0 @@
1
- async function e(o){switch(o){case "bash":console.log("# Generate bash completion with: squidcloud completion bash > /etc/bash_completion.d/squidcloud"),console.log(`
2
- _squidcloud_completions() {
3
- local cur prev opts
4
- COMPREPLY=()
5
- cur="\${COMP_WORDS[COMP_CWORD]}"
6
- prev="\${COMP_WORDS[COMP_CWORD-1]}"
7
- opts="login logout whoami auth storage deploy sites scripts filereq time collab sign monitor logs doctor version config completion feedback update"
8
- COMPREPLY=( $(compgen -W "\${opts}" -- \${cur}) )
9
- return 0
10
- }
11
- complete -F _squidcloud_completions squidcloud
12
- `);break;case "zsh":console.log("#compdef squidcloud"),console.log(`
13
- _squidcloud() {
14
- local line
15
- _arguments -C \\
16
- "-v[Show version]" \\
17
- "--version[Show version]" \\
18
- "--output[Output format]:format:(text json)" \\
19
- "1: :(login logout whoami auth storage deploy sites scripts filereq time collab sign monitor logs doctor version config completion feedback update)" \\
20
- "*::arg:->args"
21
- case $line[1] in
22
- auth) _arguments "2: :(status sessions revoke)" ;;
23
- storage) _arguments "2: :(ls upload download cp mv rm mkdir cat info share unshare tag search diff clean)" ;;
24
- sites) _arguments "2: :(list info open unpublish delete visibility rename rollback deploys logs analytics purge)" ;;
25
- scripts) _arguments "2: :(list run logs validate init enable disable delete status cancel watch)" ;;
26
- filereq) _arguments "2: :(list create info submissions export clear delete embed)" ;;
27
- time) _arguments "2: :(lock unlock status list proof)" ;;
28
- collab) _arguments "2: :(invite list remove activity leave transfer)" ;;
29
- sign) _arguments "2: :(request status list cancel verify download)" ;;
30
- monitor) _arguments "2: :(sites pipelines storage automations)" ;;
31
- logs) _arguments "2: :(tail search export)" ;;
32
- config) _arguments "2: :(list set get delete reset)" ;;
33
- esac
34
- }
35
- compdef _squidcloud squidcloud
36
- `);break;case "fish":console.log("complete -c squidcloud -f"),console.log('complete -c squidcloud -l output -r -f -a "text json"'),console.log('complete -c squidcloud -n "__fish_use_subcommand" -a "login logout whoami auth"'),console.log('complete -c squidcloud -n "__fish_use_subcommand" -a "storage deploy sites scripts filereq"'),console.log('complete -c squidcloud -n "__fish_use_subcommand" -a "time collab sign monitor logs"'),console.log('complete -c squidcloud -n "__fish_use_subcommand" -a "doctor version config completion feedback update"');break;case "powershell":console.log(`
37
- Register-ArgumentCompleter -Native -CommandName 'squidcloud' -ScriptBlock {
38
- param($wordToComplete, $commandAst, $cursorPosition)
39
- $commands = @('login', 'logout', 'whoami', 'auth', 'storage', 'deploy', 'sites', 'scripts', 'filereq', 'time', 'collab', 'sign', 'monitor', 'logs', 'doctor', 'version', 'config', 'completion', 'feedback', 'update')
40
- $commandAst.CommandElements | Select-Object -Skip 1 | ForEach-Object { $wordToComplete = $_ }
41
- $commands | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object { [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_) }
42
- }
43
- `);break;default:console.error(`Unknown shell: ${o}. Supported: bash, zsh, fish, powershell`),process.exit(1);}}export{e as default};//# sourceMappingURL=completion-IF3NB7PB.js.map
44
- //# sourceMappingURL=completion-IF3NB7PB.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/commands/util/completion.ts"],"names":["completion","shell"],"mappings":"AAGA,eAAOA,CAAAA,CAAkCC,CAAAA,CAA8B,CACrE,OAAQA,CAAAA,EACN,KAAK,MAAA,CACH,OAAA,CAAQ,GAAA,CAAI,iGAAiG,CAAA,CAC7G,QAAQ,GAAA,CAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAWjB,CAAA,CACK,MACF,KAAK,KAAA,CACH,QAAQ,GAAA,CAAI,qBAAqB,CAAA,CACjC,OAAA,CAAQ,GAAA,CAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAwBjB,CAAA,CACK,MACF,KAAK,MAAA,CACH,QAAQ,GAAA,CAAI,2BAA2B,CAAA,CACvC,OAAA,CAAQ,GAAA,CAAI,uDAAuD,CAAA,CACnE,OAAA,CAAQ,IAAI,iFAAiF,CAAA,CAC7F,OAAA,CAAQ,GAAA,CAAI,6FAA6F,CAAA,CACzG,OAAA,CAAQ,GAAA,CAAI,sFAAsF,CAAA,CAClG,OAAA,CAAQ,GAAA,CAAI,yGAAyG,CAAA,CACrH,MACF,KAAK,YAAA,CACH,QAAQ,GAAA,CAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAOjB,CAAA,CACK,MACF,QACE,OAAA,CAAQ,KAAA,CAAM,CAAA,eAAA,EAAkBA,CAAK,CAAA,wCAAA,CAA0C,CAAA,CAC/E,OAAA,CAAQ,IAAA,CAAK,CAAC,EAClB,CACF","file":"completion-IF3NB7PB.js","sourcesContent":["import { program } from 'commander'\nimport { logRaw } from '../../lib/output/logger.js'\n\nexport default async function completion(shell: string): Promise<void> {\n switch (shell) {\n case 'bash':\n console.log('# Generate bash completion with: squidcloud completion bash > /etc/bash_completion.d/squidcloud')\n console.log(`\n_squidcloud_completions() {\n local cur prev opts\n COMPREPLY=()\n cur=\"\\${COMP_WORDS[COMP_CWORD]}\"\n prev=\"\\${COMP_WORDS[COMP_CWORD-1]}\"\n opts=\"login logout whoami auth storage deploy sites scripts filereq time collab sign monitor logs doctor version config completion feedback update\"\n COMPREPLY=( $(compgen -W \"\\${opts}\" -- \\${cur}) )\n return 0\n}\ncomplete -F _squidcloud_completions squidcloud\n`)\n break\n case 'zsh':\n console.log('#compdef squidcloud')\n console.log(`\n_squidcloud() {\n local line\n _arguments -C \\\\\n \"-v[Show version]\" \\\\\n \"--version[Show version]\" \\\\\n \"--output[Output format]:format:(text json)\" \\\\\n \"1: :(login logout whoami auth storage deploy sites scripts filereq time collab sign monitor logs doctor version config completion feedback update)\" \\\\\n \"*::arg:->args\"\n case $line[1] in\n auth) _arguments \"2: :(status sessions revoke)\" ;;\n storage) _arguments \"2: :(ls upload download cp mv rm mkdir cat info share unshare tag search diff clean)\" ;;\n sites) _arguments \"2: :(list info open unpublish delete visibility rename rollback deploys logs analytics purge)\" ;;\n scripts) _arguments \"2: :(list run logs validate init enable disable delete status cancel watch)\" ;;\n filereq) _arguments \"2: :(list create info submissions export clear delete embed)\" ;;\n time) _arguments \"2: :(lock unlock status list proof)\" ;;\n collab) _arguments \"2: :(invite list remove activity leave transfer)\" ;;\n sign) _arguments \"2: :(request status list cancel verify download)\" ;;\n monitor) _arguments \"2: :(sites pipelines storage automations)\" ;;\n logs) _arguments \"2: :(tail search export)\" ;;\n config) _arguments \"2: :(list set get delete reset)\" ;;\n esac\n}\ncompdef _squidcloud squidcloud\n`)\n break\n case 'fish':\n console.log('complete -c squidcloud -f')\n console.log('complete -c squidcloud -l output -r -f -a \"text json\"')\n console.log('complete -c squidcloud -n \"__fish_use_subcommand\" -a \"login logout whoami auth\"')\n console.log('complete -c squidcloud -n \"__fish_use_subcommand\" -a \"storage deploy sites scripts filereq\"')\n console.log('complete -c squidcloud -n \"__fish_use_subcommand\" -a \"time collab sign monitor logs\"')\n console.log('complete -c squidcloud -n \"__fish_use_subcommand\" -a \"doctor version config completion feedback update\"')\n break\n case 'powershell':\n console.log(`\nRegister-ArgumentCompleter -Native -CommandName 'squidcloud' -ScriptBlock {\n param($wordToComplete, $commandAst, $cursorPosition)\n $commands = @('login', 'logout', 'whoami', 'auth', 'storage', 'deploy', 'sites', 'scripts', 'filereq', 'time', 'collab', 'sign', 'monitor', 'logs', 'doctor', 'version', 'config', 'completion', 'feedback', 'update')\n $commandAst.CommandElements | Select-Object -Skip 1 | ForEach-Object { $wordToComplete = $_ }\n $commands | Where-Object { $_ -like \"$wordToComplete*\" } | ForEach-Object { [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_) }\n}\n`)\n break\n default:\n console.error(`Unknown shell: ${shell}. Supported: bash, zsh, fish, powershell`)\n process.exit(1)\n }\n}\n"]}
@@ -1,2 +0,0 @@
1
- export{a as config,c as default,b as getConfig}from'./chunk-SCKQAF44.js';import'./chunk-FNCZD2QB.js';import'./chunk-EMRHLWPD.js';//# sourceMappingURL=config-PL34OPDL.js.map
2
- //# sourceMappingURL=config-PL34OPDL.js.map