squidcloudctl 1.1.0 → 1.1.2

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 (231) hide show
  1. package/dist/auth-revoke-I5FM6N2S.js +2 -0
  2. package/dist/{auth-revoke-OC67YCEQ.js.map → auth-revoke-I5FM6N2S.js.map} +1 -1
  3. package/dist/{auth-sessions-XIBWY6BL.js → auth-sessions-ALQEGBDS.js} +2 -2
  4. package/dist/{auth-sessions-XIBWY6BL.js.map → auth-sessions-ALQEGBDS.js.map} +1 -1
  5. package/dist/{auth-status-B5VLDH27.js → auth-status-4VVTCDII.js} +2 -2
  6. package/dist/{auth-status-B5VLDH27.js.map → auth-status-4VVTCDII.js.map} +1 -1
  7. package/dist/bin/squidcloud.js +2 -2
  8. package/dist/bin/squidcloud.js.map +1 -1
  9. package/dist/chunk-4NTVRCZM.js +2 -0
  10. package/dist/chunk-4NTVRCZM.js.map +1 -0
  11. package/dist/{chunk-RWWBBPEJ.js → chunk-BC2OVPRV.js} +2 -2
  12. package/dist/{chunk-RWWBBPEJ.js.map → chunk-BC2OVPRV.js.map} +1 -1
  13. package/dist/chunk-FYFPDKJM.js +3 -0
  14. package/dist/chunk-FYFPDKJM.js.map +1 -0
  15. package/dist/client-RFYERFWZ.js +2 -0
  16. package/dist/{client-FRNT7PEB.js.map → client-RFYERFWZ.js.map} +1 -1
  17. package/dist/{collab-activity-GQOGCECR.js → collab-activity-5RK36CJW.js} +2 -2
  18. package/dist/{collab-activity-GQOGCECR.js.map → collab-activity-5RK36CJW.js.map} +1 -1
  19. package/dist/collab-invite-HAMMPEAQ.js +2 -0
  20. package/dist/{collab-invite-HUSQYV23.js.map → collab-invite-HAMMPEAQ.js.map} +1 -1
  21. package/dist/collab-leave-MTCXHQ4T.js +2 -0
  22. package/dist/{collab-leave-W2ESTT5L.js.map → collab-leave-MTCXHQ4T.js.map} +1 -1
  23. package/dist/{collab-list-722OEBJQ.js → collab-list-JV4ZCWLB.js} +2 -2
  24. package/dist/{collab-list-722OEBJQ.js.map → collab-list-JV4ZCWLB.js.map} +1 -1
  25. package/dist/collab-remove-DO4BIA5R.js +2 -0
  26. package/dist/{collab-remove-ZMB22U2T.js.map → collab-remove-DO4BIA5R.js.map} +1 -1
  27. package/dist/collab-transfer-6CG5PHVC.js +2 -0
  28. package/dist/{collab-transfer-56MH4IT6.js.map → collab-transfer-6CG5PHVC.js.map} +1 -1
  29. package/dist/deploy-X5HX7V4J.js +3 -0
  30. package/dist/{deploy-WK3VAA7D.js.map → deploy-X5HX7V4J.js.map} +1 -1
  31. package/dist/{doctor-C7TZGTCO.js → doctor-RSKBJYUX.js} +2 -2
  32. package/dist/{doctor-C7TZGTCO.js.map → doctor-RSKBJYUX.js.map} +1 -1
  33. package/dist/forms-clear-UJ23UHUN.js +2 -0
  34. package/dist/{forms-clear-2ERBEAEY.js.map → forms-clear-UJ23UHUN.js.map} +1 -1
  35. package/dist/forms-create-CWC7MGOJ.js +2 -0
  36. package/dist/{forms-create-3ONGTRQZ.js.map → forms-create-CWC7MGOJ.js.map} +1 -1
  37. package/dist/forms-delete-TKHTM6L5.js +2 -0
  38. package/dist/{forms-delete-CKLGD52U.js.map → forms-delete-TKHTM6L5.js.map} +1 -1
  39. package/dist/{forms-embed-4S46VDP4.js → forms-embed-FF3VMR4M.js} +3 -3
  40. package/dist/{forms-embed-4S46VDP4.js.map → forms-embed-FF3VMR4M.js.map} +1 -1
  41. package/dist/forms-export-5ZNEL3V2.js +2 -0
  42. package/dist/{forms-export-WGHH5TBF.js.map → forms-export-5ZNEL3V2.js.map} +1 -1
  43. package/dist/{forms-info-OMXUOOBT.js → forms-info-SUST47TN.js} +2 -2
  44. package/dist/{forms-info-OMXUOOBT.js.map → forms-info-SUST47TN.js.map} +1 -1
  45. package/dist/{forms-list-ZRKQXGLM.js → forms-list-W2UUPFFD.js} +2 -2
  46. package/dist/{forms-list-ZRKQXGLM.js.map → forms-list-W2UUPFFD.js.map} +1 -1
  47. package/dist/{forms-submissions-K7W7XYPR.js → forms-submissions-UTLSYPWS.js} +2 -2
  48. package/dist/{forms-submissions-K7W7XYPR.js.map → forms-submissions-UTLSYPWS.js.map} +1 -1
  49. package/dist/login-SO6BZ4HE.js +2 -0
  50. package/dist/{login-JJ7YHQB5.js.map → login-SO6BZ4HE.js.map} +1 -1
  51. package/dist/logout-QERO6G6B.js +2 -0
  52. package/dist/{logout-PS2XK3GB.js.map → logout-QERO6G6B.js.map} +1 -1
  53. package/dist/logs-export-DYOPV2LT.js +2 -0
  54. package/dist/{logs-export-55G3COYK.js.map → logs-export-DYOPV2LT.js.map} +1 -1
  55. package/dist/{logs-search-5QCEBZ6W.js → logs-search-323KRPG4.js} +2 -2
  56. package/dist/{logs-search-5QCEBZ6W.js.map → logs-search-323KRPG4.js.map} +1 -1
  57. package/dist/{logs-tail-OYLJ5EOM.js → logs-tail-J64TCZG5.js} +3 -3
  58. package/dist/{logs-tail-OYLJ5EOM.js.map → logs-tail-J64TCZG5.js.map} +1 -1
  59. package/dist/{monitor-XUW4BMBQ.js → monitor-DKLGO5H7.js} +2 -2
  60. package/dist/{monitor-XUW4BMBQ.js.map → monitor-DKLGO5H7.js.map} +1 -1
  61. package/dist/{monitor-automations-TSO65I6U.js → monitor-automations-4XOOCRFY.js} +2 -2
  62. package/dist/{monitor-automations-TSO65I6U.js.map → monitor-automations-4XOOCRFY.js.map} +1 -1
  63. package/dist/{monitor-pipelines-OPCTGGRR.js → monitor-pipelines-EPL24J3S.js} +2 -2
  64. package/dist/{monitor-pipelines-OPCTGGRR.js.map → monitor-pipelines-EPL24J3S.js.map} +1 -1
  65. package/dist/{monitor-sites-OLSGE4V2.js → monitor-sites-QIVG5TPF.js} +2 -2
  66. package/dist/{monitor-sites-OLSGE4V2.js.map → monitor-sites-QIVG5TPF.js.map} +1 -1
  67. package/dist/{monitor-storage-CVFXC3ZS.js → monitor-storage-HBCC34K7.js} +2 -2
  68. package/dist/{monitor-storage-CVFXC3ZS.js.map → monitor-storage-HBCC34K7.js.map} +1 -1
  69. package/dist/scripts-cancel-JS3LL2AT.js +2 -0
  70. package/dist/{scripts-cancel-OR2UFFC3.js.map → scripts-cancel-JS3LL2AT.js.map} +1 -1
  71. package/dist/scripts-delete-274TW63X.js +2 -0
  72. package/dist/{scripts-delete-HMHBIL4G.js.map → scripts-delete-274TW63X.js.map} +1 -1
  73. package/dist/scripts-disable-JPATOVO4.js +2 -0
  74. package/dist/{scripts-disable-ABFUD34Y.js.map → scripts-disable-JPATOVO4.js.map} +1 -1
  75. package/dist/scripts-enable-JVAA6AMP.js +2 -0
  76. package/dist/{scripts-enable-VMRAPULS.js.map → scripts-enable-JVAA6AMP.js.map} +1 -1
  77. package/dist/{scripts-list-DV2QVLPX.js → scripts-list-YPFNLI3P.js} +2 -2
  78. package/dist/{scripts-list-DV2QVLPX.js.map → scripts-list-YPFNLI3P.js.map} +1 -1
  79. package/dist/scripts-logs-VISO5ONQ.js +2 -0
  80. package/dist/{scripts-logs-AHTMTQ6G.js.map → scripts-logs-VISO5ONQ.js.map} +1 -1
  81. package/dist/scripts-run-3NBYKEMQ.js +2 -0
  82. package/dist/{scripts-run-K2LFPFTH.js.map → scripts-run-3NBYKEMQ.js.map} +1 -1
  83. package/dist/scripts-status-45K3IL5L.js +2 -0
  84. package/dist/{scripts-status-XGI5SMWL.js.map → scripts-status-45K3IL5L.js.map} +1 -1
  85. package/dist/scripts-validate-JZPIIMIX.js +2 -0
  86. package/dist/{scripts-validate-7EZXPO3Q.js.map → scripts-validate-JZPIIMIX.js.map} +1 -1
  87. package/dist/{scripts-watch-HN23AZLJ.js → scripts-watch-XZ7MZIMK.js} +2 -2
  88. package/dist/{scripts-watch-HN23AZLJ.js.map → scripts-watch-XZ7MZIMK.js.map} +1 -1
  89. package/dist/{session-T3DZUXHP.js → session-AZGWAAQQ.js} +2 -2
  90. package/dist/{session-T3DZUXHP.js.map → session-AZGWAAQQ.js.map} +1 -1
  91. package/dist/sign-cancel-OUJM5UZT.js +2 -0
  92. package/dist/{sign-cancel-R7KQFEM3.js.map → sign-cancel-OUJM5UZT.js.map} +1 -1
  93. package/dist/sign-download-FS5G6J27.js +2 -0
  94. package/dist/{sign-download-EHPZ5FMF.js.map → sign-download-FS5G6J27.js.map} +1 -1
  95. package/dist/{sign-list-6N7G36EO.js → sign-list-FV7SQSWT.js} +2 -2
  96. package/dist/{sign-list-6N7G36EO.js.map → sign-list-FV7SQSWT.js.map} +1 -1
  97. package/dist/sign-request-VVFYWT3Y.js +2 -0
  98. package/dist/{sign-request-DW6BS67P.js.map → sign-request-VVFYWT3Y.js.map} +1 -1
  99. package/dist/sign-status-LKG5UFBX.js +2 -0
  100. package/dist/{sign-status-L4PNMSBI.js.map → sign-status-LKG5UFBX.js.map} +1 -1
  101. package/dist/sign-verify-CVTTJSDL.js +2 -0
  102. package/dist/{sign-verify-I6YPHFUW.js.map → sign-verify-CVTTJSDL.js.map} +1 -1
  103. package/dist/{sites-analytics-JMW6DAC3.js → sites-analytics-JK4UFMWX.js} +2 -2
  104. package/dist/{sites-analytics-JMW6DAC3.js.map → sites-analytics-JK4UFMWX.js.map} +1 -1
  105. package/dist/sites-delete-SUHEQDZQ.js +2 -0
  106. package/dist/{sites-delete-M4DJ3GXV.js.map → sites-delete-SUHEQDZQ.js.map} +1 -1
  107. package/dist/{sites-deploys-2HBSXQA4.js → sites-deploys-C4TVID2W.js} +2 -2
  108. package/dist/{sites-deploys-2HBSXQA4.js.map → sites-deploys-C4TVID2W.js.map} +1 -1
  109. package/dist/{sites-info-CIDGRZRJ.js → sites-info-BZUK57TH.js} +2 -2
  110. package/dist/{sites-info-CIDGRZRJ.js.map → sites-info-BZUK57TH.js.map} +1 -1
  111. package/dist/{sites-list-L56B32PU.js → sites-list-LLULSE5J.js} +2 -2
  112. package/dist/{sites-list-L56B32PU.js.map → sites-list-LLULSE5J.js.map} +1 -1
  113. package/dist/{sites-logs-NMNQXOKI.js → sites-logs-NILNXF4L.js} +3 -3
  114. package/dist/{sites-logs-NMNQXOKI.js.map → sites-logs-NILNXF4L.js.map} +1 -1
  115. package/dist/sites-open-R7A5EQWM.js +3 -0
  116. package/dist/{sites-open-JOJQ5PW2.js.map → sites-open-R7A5EQWM.js.map} +1 -1
  117. package/dist/sites-purge-VHERQRUB.js +2 -0
  118. package/dist/{sites-purge-IA2673H4.js.map → sites-purge-VHERQRUB.js.map} +1 -1
  119. package/dist/sites-rename-MOO6HVW3.js +2 -0
  120. package/dist/{sites-rename-WFSBG4ME.js.map → sites-rename-MOO6HVW3.js.map} +1 -1
  121. package/dist/sites-rollback-SPW2Z73L.js +2 -0
  122. package/dist/{sites-rollback-REUDH4TZ.js.map → sites-rollback-SPW2Z73L.js.map} +1 -1
  123. package/dist/sites-unpublish-6P7SQGIU.js +2 -0
  124. package/dist/{sites-unpublish-AS4D6N3M.js.map → sites-unpublish-6P7SQGIU.js.map} +1 -1
  125. package/dist/sites-visibility-R3AQJ76F.js +2 -0
  126. package/dist/{sites-visibility-S3TKH6XD.js.map → sites-visibility-R3AQJ76F.js.map} +1 -1
  127. package/dist/storage-cat-HXFOJJG5.js +2 -0
  128. package/dist/{storage-cat-LZ7LYZAY.js.map → storage-cat-HXFOJJG5.js.map} +1 -1
  129. package/dist/storage-clean-LEQEYWL6.js +2 -0
  130. package/dist/{storage-clean-S57ZHSGL.js.map → storage-clean-LEQEYWL6.js.map} +1 -1
  131. package/dist/storage-cp-JTPTXZRQ.js +2 -0
  132. package/dist/{storage-cp-M2BVRCIL.js.map → storage-cp-JTPTXZRQ.js.map} +1 -1
  133. package/dist/storage-diff-XURHVTPC.js +2 -0
  134. package/dist/{storage-diff-ZATBMPAM.js.map → storage-diff-XURHVTPC.js.map} +1 -1
  135. package/dist/storage-download-5OYCNXKL.js +3 -0
  136. package/dist/{storage-download-PZEEX2Z3.js.map → storage-download-5OYCNXKL.js.map} +1 -1
  137. package/dist/{storage-info-T62YZOPK.js → storage-info-WA74POPR.js} +2 -2
  138. package/dist/{storage-info-T62YZOPK.js.map → storage-info-WA74POPR.js.map} +1 -1
  139. package/dist/{storage-ls-DGOI7ZXX.js → storage-ls-7RZQ3AXR.js} +2 -2
  140. package/dist/{storage-ls-DGOI7ZXX.js.map → storage-ls-7RZQ3AXR.js.map} +1 -1
  141. package/dist/storage-mkdir-NWOHGAQI.js +2 -0
  142. package/dist/{storage-mkdir-J4BYV3QL.js.map → storage-mkdir-NWOHGAQI.js.map} +1 -1
  143. package/dist/storage-mv-XQ7EPX3M.js +2 -0
  144. package/dist/{storage-mv-R73IGYOM.js.map → storage-mv-XQ7EPX3M.js.map} +1 -1
  145. package/dist/storage-rm-LYO6UR3G.js +2 -0
  146. package/dist/{storage-rm-M3UODY5G.js.map → storage-rm-LYO6UR3G.js.map} +1 -1
  147. package/dist/{storage-search-H44Y6OKS.js → storage-search-RIT5ISCA.js} +2 -2
  148. package/dist/{storage-search-H44Y6OKS.js.map → storage-search-RIT5ISCA.js.map} +1 -1
  149. package/dist/storage-share-OURRQWZK.js +2 -0
  150. package/dist/{storage-share-VIJJIHBX.js.map → storage-share-OURRQWZK.js.map} +1 -1
  151. package/dist/storage-tag-NGJGUJSZ.js +2 -0
  152. package/dist/{storage-tag-PAVT6GBZ.js.map → storage-tag-NGJGUJSZ.js.map} +1 -1
  153. package/dist/storage-unshare-3DXEKHEH.js +2 -0
  154. package/dist/{storage-unshare-O3AAJZMT.js.map → storage-unshare-3DXEKHEH.js.map} +1 -1
  155. package/dist/storage-upload-5M6PBHOC.js +2 -0
  156. package/dist/{storage-upload-DRYGLH2O.js.map → storage-upload-5M6PBHOC.js.map} +1 -1
  157. package/dist/{time-list-CW2OOCPT.js → time-list-GMZYZAOU.js} +2 -2
  158. package/dist/{time-list-CW2OOCPT.js.map → time-list-GMZYZAOU.js.map} +1 -1
  159. package/dist/time-lock-2OLEVQPJ.js +2 -0
  160. package/dist/{time-lock-A2MZ3MP2.js.map → time-lock-2OLEVQPJ.js.map} +1 -1
  161. package/dist/time-proof-RUTDAEKP.js +2 -0
  162. package/dist/{time-proof-ZLRY6ZVZ.js.map → time-proof-RUTDAEKP.js.map} +1 -1
  163. package/dist/{time-status-XQLRCYF6.js → time-status-TVNJBFKC.js} +2 -2
  164. package/dist/{time-status-XQLRCYF6.js.map → time-status-TVNJBFKC.js.map} +1 -1
  165. package/dist/time-unlock-OO6QH5R6.js +2 -0
  166. package/dist/{time-unlock-KNMGQ3TK.js.map → time-unlock-OO6QH5R6.js.map} +1 -1
  167. package/dist/update-XJQSXSFU.js +2 -0
  168. package/dist/{update-IYMIV34T.js.map → update-XJQSXSFU.js.map} +1 -1
  169. package/dist/version-LHSDYI7Q.js +2 -0
  170. package/dist/version-LHSDYI7Q.js.map +1 -0
  171. package/dist/{whoami-WIHSRTUN.js → whoami-SAURQARO.js} +2 -2
  172. package/dist/{whoami-WIHSRTUN.js.map → whoami-SAURQARO.js.map} +1 -1
  173. package/package.json +1 -1
  174. package/dist/auth-revoke-OC67YCEQ.js +0 -2
  175. package/dist/chunk-6TS5Y27A.js +0 -6
  176. package/dist/chunk-6TS5Y27A.js.map +0 -1
  177. package/dist/chunk-C5KZCYJ4.js +0 -2
  178. package/dist/chunk-C5KZCYJ4.js.map +0 -1
  179. package/dist/chunk-ON3YIMVG.js +0 -2
  180. package/dist/chunk-ON3YIMVG.js.map +0 -1
  181. package/dist/client-FRNT7PEB.js +0 -2
  182. package/dist/collab-invite-HUSQYV23.js +0 -2
  183. package/dist/collab-leave-W2ESTT5L.js +0 -2
  184. package/dist/collab-remove-ZMB22U2T.js +0 -2
  185. package/dist/collab-transfer-56MH4IT6.js +0 -2
  186. package/dist/deploy-WK3VAA7D.js +0 -3
  187. package/dist/forms-clear-2ERBEAEY.js +0 -2
  188. package/dist/forms-create-3ONGTRQZ.js +0 -2
  189. package/dist/forms-delete-CKLGD52U.js +0 -2
  190. package/dist/forms-export-WGHH5TBF.js +0 -2
  191. package/dist/login-JJ7YHQB5.js +0 -2
  192. package/dist/logout-PS2XK3GB.js +0 -2
  193. package/dist/logs-export-55G3COYK.js +0 -2
  194. package/dist/scripts-cancel-OR2UFFC3.js +0 -2
  195. package/dist/scripts-delete-HMHBIL4G.js +0 -2
  196. package/dist/scripts-disable-ABFUD34Y.js +0 -2
  197. package/dist/scripts-enable-VMRAPULS.js +0 -2
  198. package/dist/scripts-logs-AHTMTQ6G.js +0 -2
  199. package/dist/scripts-run-K2LFPFTH.js +0 -2
  200. package/dist/scripts-status-XGI5SMWL.js +0 -2
  201. package/dist/scripts-validate-7EZXPO3Q.js +0 -2
  202. package/dist/sign-cancel-R7KQFEM3.js +0 -2
  203. package/dist/sign-download-EHPZ5FMF.js +0 -2
  204. package/dist/sign-request-DW6BS67P.js +0 -2
  205. package/dist/sign-status-L4PNMSBI.js +0 -2
  206. package/dist/sign-verify-I6YPHFUW.js +0 -2
  207. package/dist/sites-delete-M4DJ3GXV.js +0 -2
  208. package/dist/sites-open-JOJQ5PW2.js +0 -3
  209. package/dist/sites-purge-IA2673H4.js +0 -2
  210. package/dist/sites-rename-WFSBG4ME.js +0 -2
  211. package/dist/sites-rollback-REUDH4TZ.js +0 -2
  212. package/dist/sites-unpublish-AS4D6N3M.js +0 -2
  213. package/dist/sites-visibility-S3TKH6XD.js +0 -2
  214. package/dist/storage-cat-LZ7LYZAY.js +0 -2
  215. package/dist/storage-clean-S57ZHSGL.js +0 -2
  216. package/dist/storage-cp-M2BVRCIL.js +0 -2
  217. package/dist/storage-diff-ZATBMPAM.js +0 -2
  218. package/dist/storage-download-PZEEX2Z3.js +0 -3
  219. package/dist/storage-mkdir-J4BYV3QL.js +0 -2
  220. package/dist/storage-mv-R73IGYOM.js +0 -2
  221. package/dist/storage-rm-M3UODY5G.js +0 -2
  222. package/dist/storage-share-VIJJIHBX.js +0 -2
  223. package/dist/storage-tag-PAVT6GBZ.js +0 -2
  224. package/dist/storage-unshare-O3AAJZMT.js +0 -2
  225. package/dist/storage-upload-DRYGLH2O.js +0 -2
  226. package/dist/time-lock-A2MZ3MP2.js +0 -2
  227. package/dist/time-proof-ZLRY6ZVZ.js +0 -2
  228. package/dist/time-unlock-KNMGQ3TK.js +0 -2
  229. package/dist/update-IYMIV34T.js +0 -2
  230. package/dist/version-7IHVNLWY.js +0 -2
  231. package/dist/version-7IHVNLWY.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/lib/crypto/sanitize.ts","../src/lib/auth/ssp-handshake.ts","../src/commands/auth/login.ts"],"names":["zeroBuffer","buf","SERVER_PUB_KEY_HEX","clientEphemeralPriv","clientEphemeralPub","clientNonce","passwordProof","performSSPHandshake","email","password","pub","priv","generateKeypair","generateNonce","hashPassword","fingerprint","bytesToHex","blake3","os","timestamp","response","apiPost","serverNonce","hexToBytes","serverEphemeralPub","serverSignature","serverPubKey","signPayload","computeSignPayload","verifyServerSignature","cleanup","ecdhSecret","deriveSharedSecret","encryptionKey","deriveEncryptionKey","encryptedSession","sessionIv","sessionTag","session","decryptSession","saveSession","login","existing","loadSession","logInfo","force","inquirer","answers","v","spinner","createSpinner","renderMascot","logBrand","brand","logSuccess","err"],"mappings":"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","file":"login-JJ7YHQB5.js","sourcesContent":["const ANSI_PATTERN = /[\\u001b\\u009b][[\\]()#;?]*(?:(?:(?:;[0-9a-fA-F]{1,4})*(?:;[0-9a-fA-F]{0,4})?)?[0-9A-PRZcf-nq-uy=><~])/g\n\nexport function sanitizeForTerminal(input: string): string {\n return input.replace(ANSI_PATTERN, '')\n}\n\nexport function sanitizeFilename(input: string): string {\n return input.replace(/[<>:\"/\\\\|?*\\x00-\\x1f]/g, '_').trim()\n}\n\nexport function zeroBuffer(buf: Uint8Array): void {\n buf.fill(0)\n}\n\nexport function zeroString(str: string): void {\n if (typeof str === 'string') {\n const len = str.length\n ;(str as unknown as Record<string, unknown>).valueOf = () => ''\n for (let i = 0; i < len; i++) {\n str = str[i] === str[i].charAt(0) ? '' : ''\n }\n }\n}\n","import os from 'node:os'\nimport { generateKeypair, generateNonce, hashPassword, bytesToHex, hexToBytes, computeSignPayload, deriveSharedSecret, deriveEncryptionKey, decryptSession, verifyServerSignature, SquidSession, SSPResponse } from '../crypto/ssp.js'\nimport { blake3 } from '@noble/hashes/blake3'\nimport { saveSession } from './session.js'\nimport { apiPost } from '../api/client.js'\nimport { zeroBuffer } from '../crypto/sanitize.js'\n\nconst SERVER_PUB_KEY_HEX = process.env.SQUIDCLOUD_SERVER_PUB_KEY || ''\n\nlet clientEphemeralPriv: Uint8Array | null = null\nlet clientEphemeralPub: Uint8Array | null = null\nlet clientNonce: Uint8Array | null = null\nlet passwordProof: Uint8Array | null = null\n\nexport async function performSSPHandshake(email: string, password: string): Promise<SquidSession> {\n const { pub, priv } = generateKeypair()\n clientEphemeralPriv = priv\n clientEphemeralPub = pub\n clientNonce = generateNonce()\n passwordProof = hashPassword(password, email)\n\n const fingerprint = bytesToHex(blake3(os.hostname() + os.platform() + os.arch()))\n const timestamp = Date.now()\n\n const response = await apiPost<SSPResponse>('/api/auth/ssp/hello', {\n email,\n password_proof: bytesToHex(passwordProof),\n client_ephemeral_pub: bytesToHex(clientEphemeralPub),\n client_nonce: bytesToHex(clientNonce),\n device_fingerprint: fingerprint,\n timestamp,\n })\n\n const serverNonce = hexToBytes(response.server_nonce)\n const serverEphemeralPub = hexToBytes(response.server_ephemeral_pub)\n const serverSignature = hexToBytes(response.server_signature)\n\n const serverPubKey = hexToBytes(SERVER_PUB_KEY_HEX)\n if (serverPubKey.length > 0) {\n const signPayload = computeSignPayload(clientNonce, serverNonce, clientEphemeralPub, timestamp)\n const isValid = await verifyServerSignature(serverSignature, signPayload, serverPubKey)\n if (!isValid) {\n cleanup()\n throw new Error('Connection rejected — server identity could not be verified')\n }\n }\n\n const ecdhSecret = deriveSharedSecret(serverEphemeralPub, clientEphemeralPriv)\n const encryptionKey = deriveEncryptionKey(ecdhSecret, clientNonce, serverNonce)\n const encryptedSession = hexToBytes(response.encrypted_session)\n const sessionIv = hexToBytes(response.session_iv)\n const sessionTag = hexToBytes(response.session_tag)\n\n const session = decryptSession(encryptedSession, sessionIv, sessionTag, encryptionKey)\n session.device_fingerprint = fingerprint\n\n await saveSession(session)\n cleanup()\n\n return session\n}\n\nfunction cleanup(): void {\n if (clientEphemeralPriv) zeroBuffer(clientEphemeralPriv)\n if (clientEphemeralPub) zeroBuffer(clientEphemeralPub)\n if (clientNonce) zeroBuffer(clientNonce)\n if (passwordProof) zeroBuffer(passwordProof)\n clientEphemeralPriv = null\n clientEphemeralPub = null\n clientNonce = null\n passwordProof = null\n}\n","import inquirer from 'inquirer'\nimport { performSSPHandshake } from '../../lib/auth/ssp-handshake.js'\nimport { loadSession } from '../../lib/auth/session.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess, logInfo, logBrand } from '../../lib/output/logger.js'\nimport { renderMascot } from '../../lib/output/mascot.js'\nimport { brand } from '../../lib/output/brand.js'\nimport { isInteractive } from '../../lib/utils/ci-detect.js'\n\nexport default async function login(): Promise<void> {\n const existing = await loadSession()\n if (existing) {\n logInfo(`Already authenticated as ${existing.user.email}`)\n const { force } = await inquirer.prompt([{\n type: 'confirm',\n name: 'force',\n message: 'Re-authenticate?',\n default: false,\n }])\n if (!force) return\n }\n\n const answers = await inquirer.prompt([\n {\n type: 'input',\n name: 'email',\n message: 'Email:',\n validate: (v: string) => v.includes('@') ? true : 'Please enter a valid email',\n },\n {\n type: 'password',\n name: 'password',\n message: 'Password:',\n mask: '*',\n },\n ])\n\n const spinner = createSpinner('Authenticating with SquidCloud...')\n spinner.start()\n\n try {\n const session = await performSSPHandshake(answers.email, answers.password)\n spinner.succeed()\n console.log(renderMascot())\n logBrand(`Welcome to SquidCloud, ${brand(session.user.username)}!`)\n logSuccess(`Authenticated as ${session.user.email} (${session.user.plan})`)\n } catch (err) {\n spinner.fail()\n throw err\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/lib/crypto/sanitize.ts","../src/lib/auth/ssp-handshake.ts","../src/commands/auth/login.ts"],"names":["zeroBuffer","buf","SERVER_PUB_KEY_HEX","clientEphemeralPriv","clientEphemeralPub","clientNonce","passwordProof","performSSPHandshake","email","password","pub","priv","generateKeypair","generateNonce","hashPassword","fingerprint","bytesToHex","blake3","os","timestamp","response","apiPost","serverNonce","hexToBytes","serverEphemeralPub","serverSignature","serverPubKey","signPayload","computeSignPayload","verifyServerSignature","cleanup","ecdhSecret","deriveSharedSecret","encryptionKey","deriveEncryptionKey","encryptedSession","sessionIv","sessionTag","session","decryptSession","saveSession","login","existing","loadSession","logInfo","force","inquirer","answers","v","spinner","createSpinner","renderMascot","logBrand","brand","logSuccess","err"],"mappings":"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","file":"login-SO6BZ4HE.js","sourcesContent":["const ANSI_PATTERN = /[\\u001b\\u009b][[\\]()#;?]*(?:(?:(?:;[0-9a-fA-F]{1,4})*(?:;[0-9a-fA-F]{0,4})?)?[0-9A-PRZcf-nq-uy=><~])/g\n\nexport function sanitizeForTerminal(input: string): string {\n return input.replace(ANSI_PATTERN, '')\n}\n\nexport function sanitizeFilename(input: string): string {\n return input.replace(/[<>:\"/\\\\|?*\\x00-\\x1f]/g, '_').trim()\n}\n\nexport function zeroBuffer(buf: Uint8Array): void {\n buf.fill(0)\n}\n\nexport function zeroString(str: string): void {\n if (typeof str === 'string') {\n const len = str.length\n ;(str as unknown as Record<string, unknown>).valueOf = () => ''\n for (let i = 0; i < len; i++) {\n str = str[i] === str[i].charAt(0) ? '' : ''\n }\n }\n}\n","import os from 'node:os'\nimport { generateKeypair, generateNonce, hashPassword, bytesToHex, hexToBytes, computeSignPayload, deriveSharedSecret, deriveEncryptionKey, decryptSession, verifyServerSignature, SquidSession, SSPResponse } from '../crypto/ssp.js'\nimport { blake3 } from '@noble/hashes/blake3'\nimport { saveSession } from './session.js'\nimport { apiPost } from '../api/client.js'\nimport { zeroBuffer } from '../crypto/sanitize.js'\n\nconst SERVER_PUB_KEY_HEX = process.env.SQUIDCLOUD_SERVER_PUB_KEY || ''\n\nlet clientEphemeralPriv: Uint8Array | null = null\nlet clientEphemeralPub: Uint8Array | null = null\nlet clientNonce: Uint8Array | null = null\nlet passwordProof: Uint8Array | null = null\n\nexport async function performSSPHandshake(email: string, password: string): Promise<SquidSession> {\n const { pub, priv } = generateKeypair()\n clientEphemeralPriv = priv\n clientEphemeralPub = pub\n clientNonce = generateNonce()\n passwordProof = hashPassword(password, email)\n\n const fingerprint = bytesToHex(blake3(os.hostname() + os.platform() + os.arch()))\n const timestamp = Date.now()\n\n const response = await apiPost<SSPResponse>('/api/auth/ssp/hello', {\n email,\n password_proof: bytesToHex(passwordProof),\n client_ephemeral_pub: bytesToHex(clientEphemeralPub),\n client_nonce: bytesToHex(clientNonce),\n device_fingerprint: fingerprint,\n timestamp,\n })\n\n const serverNonce = hexToBytes(response.server_nonce)\n const serverEphemeralPub = hexToBytes(response.server_ephemeral_pub)\n const serverSignature = hexToBytes(response.server_signature)\n\n const serverPubKey = hexToBytes(SERVER_PUB_KEY_HEX)\n if (serverPubKey.length > 0) {\n const signPayload = computeSignPayload(clientNonce, serverNonce, clientEphemeralPub, timestamp)\n const isValid = await verifyServerSignature(serverSignature, signPayload, serverPubKey)\n if (!isValid) {\n cleanup()\n throw new Error('Connection rejected — server identity could not be verified')\n }\n }\n\n const ecdhSecret = deriveSharedSecret(serverEphemeralPub, clientEphemeralPriv)\n const encryptionKey = deriveEncryptionKey(ecdhSecret, clientNonce, serverNonce)\n const encryptedSession = hexToBytes(response.encrypted_session)\n const sessionIv = hexToBytes(response.session_iv)\n const sessionTag = hexToBytes(response.session_tag)\n\n const session = decryptSession(encryptedSession, sessionIv, sessionTag, encryptionKey)\n session.device_fingerprint = fingerprint\n\n await saveSession(session)\n cleanup()\n\n return session\n}\n\nfunction cleanup(): void {\n if (clientEphemeralPriv) zeroBuffer(clientEphemeralPriv)\n if (clientEphemeralPub) zeroBuffer(clientEphemeralPub)\n if (clientNonce) zeroBuffer(clientNonce)\n if (passwordProof) zeroBuffer(passwordProof)\n clientEphemeralPriv = null\n clientEphemeralPub = null\n clientNonce = null\n passwordProof = null\n}\n","import inquirer from 'inquirer'\nimport { performSSPHandshake } from '../../lib/auth/ssp-handshake.js'\nimport { loadSession } from '../../lib/auth/session.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess, logInfo, logBrand } from '../../lib/output/logger.js'\nimport { renderMascot } from '../../lib/output/mascot.js'\nimport { brand } from '../../lib/output/brand.js'\nimport { isInteractive } from '../../lib/utils/ci-detect.js'\n\nexport default async function login(): Promise<void> {\n const existing = await loadSession()\n if (existing) {\n logInfo(`Already authenticated as ${existing.user.email}`)\n const { force } = await inquirer.prompt([{\n type: 'confirm',\n name: 'force',\n message: 'Re-authenticate?',\n default: false,\n }])\n if (!force) return\n }\n\n const answers = await inquirer.prompt([\n {\n type: 'input',\n name: 'email',\n message: 'Email:',\n validate: (v: string) => v.includes('@') ? true : 'Please enter a valid email',\n },\n {\n type: 'password',\n name: 'password',\n message: 'Password:',\n mask: '*',\n },\n ])\n\n const spinner = createSpinner('Authenticating with SquidCloud...')\n spinner.start()\n\n try {\n const session = await performSSPHandshake(answers.email, answers.password)\n spinner.succeed()\n console.log(renderMascot())\n logBrand(`Welcome to SquidCloud, ${brand(session.user.username)}!`)\n logSuccess(`Authenticated as ${session.user.email} (${session.user.plan})`)\n } catch (err) {\n spinner.fail()\n throw err\n }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {b}from'./chunk-FYFPDKJM.js';import {e}from'./chunk-BC2OVPRV.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {g}from'./chunk-QT7R3AXE.js';import {o}from'./chunk-4NTVRCZM.js';async function i(){let o$1=b("Revoking session...");o$1.start();try{await e("/api/auth/ssp/revoke",{},{authenticated:!0});}catch{}await o(),o$1.succeed(),g("Logged out successfully");}export{i as default};//# sourceMappingURL=logout-QERO6G6B.js.map
2
+ //# sourceMappingURL=logout-QERO6G6B.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/auth/logout.ts"],"names":["logout","spinner","createSpinner","apiPost","clearSession","logSuccess"],"mappings":"oOAKA,eAAOA,CAAAA,EAA+C,CACpD,IAAMC,GAAAA,CAAUC,EAAc,qBAAqB,CAAA,CACnDD,GAAAA,CAAQ,KAAA,EAAM,CACd,GAAI,CACF,MAAME,EAAQ,sBAAA,CAAwB,EAAC,CAAG,CAAE,aAAA,CAAe,CAAA,CAAK,CAAC,EACnE,MAAQ,CAER,CACA,MAAMC,CAAAA,GACNH,GAAAA,CAAQ,OAAA,EAAQ,CAChBI,CAAAA,CAAW,yBAAyB,EACtC","file":"logout-PS2XK3GB.js","sourcesContent":["import { clearSession } from '../../lib/auth/session.js'\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 logout(): Promise<void> {\n const spinner = createSpinner('Revoking session...')\n spinner.start()\n try {\n await apiPost('/api/auth/ssp/revoke', {}, { authenticated: true })\n } catch {\n // Proceed with local cleanup regardless\n }\n await clearSession()\n spinner.succeed()\n logSuccess('Logged out successfully')\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/auth/logout.ts"],"names":["logout","spinner","createSpinner","apiPost","clearSession","logSuccess"],"mappings":"wMAKA,eAAOA,CAAAA,EAA+C,CACpD,IAAMC,GAAAA,CAAUC,EAAc,qBAAqB,CAAA,CACnDD,GAAAA,CAAQ,KAAA,EAAM,CACd,GAAI,CACF,MAAME,EAAQ,sBAAA,CAAwB,EAAC,CAAG,CAAE,aAAA,CAAe,CAAA,CAAK,CAAC,EACnE,MAAQ,CAER,CACA,MAAMC,CAAAA,GACNH,GAAAA,CAAQ,OAAA,EAAQ,CAChBI,CAAAA,CAAW,yBAAyB,EACtC","file":"logout-QERO6G6B.js","sourcesContent":["import { clearSession } from '../../lib/auth/session.js'\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 logout(): Promise<void> {\n const spinner = createSpinner('Revoking session...')\n spinner.start()\n try {\n await apiPost('/api/auth/ssp/revoke', {}, { authenticated: true })\n } catch {\n // Proceed with local cleanup regardless\n }\n await clearSession()\n spinner.succeed()\n logSuccess('Logged out successfully')\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {b}from'./chunk-FYFPDKJM.js';import {d}from'./chunk-BC2OVPRV.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {g}from'./chunk-QT7R3AXE.js';import'./chunk-4NTVRCZM.js';import n from'fs';import p from'path';async function a(){let o=b("Exporting logs...");o.start();let i=await d("/api/v1/logs/export",{authenticated:true});o.succeed();let t=p.join(process.cwd(),`squidcloud-logs-${Date.now()}.jsonl`);n.writeFileSync(t,i.jsonl,"utf-8"),g(`Exported to ${t}`);}export{a as default};//# sourceMappingURL=logs-export-DYOPV2LT.js.map
2
+ //# sourceMappingURL=logs-export-DYOPV2LT.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/logs/logs-export.ts"],"names":["logsExport","spinner","createSpinner","data","apiGet","filePath","path","fs","logSuccess"],"mappings":"yQAMA,eAAOA,CAAAA,EAAmD,CACxD,IAAMC,CAAAA,CAAUC,GAAAA,CAAc,mBAAmB,EACjDD,CAAAA,CAAQ,KAAA,EAAM,CACd,IAAME,CAAAA,CAAO,MAAMC,EAA0B,qBAAA,CAAuB,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAC3FH,EAAQ,OAAA,EAAQ,CAChB,IAAMI,CAAAA,CAAWC,CAAAA,CAAK,IAAA,CAAK,QAAQ,GAAA,EAAI,CAAG,CAAA,gBAAA,EAAmB,IAAA,CAAK,GAAA,EAAK,QAAQ,CAAA,CAC/EC,CAAAA,CAAG,aAAA,CAAcF,CAAAA,CAAUF,CAAAA,CAAK,KAAA,CAAO,OAAO,CAAA,CAC9CK,CAAAA,CAAW,CAAA,YAAA,EAAeH,CAAQ,CAAA,CAAE,EACtC","file":"logs-export-55G3COYK.js","sourcesContent":["import fs from 'node:fs'\nimport path from 'node:path'\nimport { apiGet } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess } from '../../lib/output/logger.js'\n\nexport default async function logsExport(): Promise<void> {\n const spinner = createSpinner('Exporting logs...')\n spinner.start()\n const data = await apiGet<{ jsonl: string }>('/api/v1/logs/export', { authenticated: true })\n spinner.succeed()\n const filePath = path.join(process.cwd(), `squidcloud-logs-${Date.now()}.jsonl`)\n fs.writeFileSync(filePath, data.jsonl, 'utf-8')\n logSuccess(`Exported to ${filePath}`)\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/logs/logs-export.ts"],"names":["logsExport","spinner","createSpinner","data","apiGet","filePath","path","fs","logSuccess"],"mappings":"sOAMA,eAAOA,CAAAA,EAAmD,CACxD,IAAMC,CAAAA,CAAUC,CAAAA,CAAc,mBAAmB,EACjDD,CAAAA,CAAQ,KAAA,EAAM,CACd,IAAME,CAAAA,CAAO,MAAMC,EAA0B,qBAAA,CAAuB,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAC3FH,EAAQ,OAAA,EAAQ,CAChB,IAAMI,CAAAA,CAAWC,CAAAA,CAAK,IAAA,CAAK,QAAQ,GAAA,EAAI,CAAG,CAAA,gBAAA,EAAmB,IAAA,CAAK,GAAA,EAAK,QAAQ,CAAA,CAC/EC,CAAAA,CAAG,aAAA,CAAcF,CAAAA,CAAUF,CAAAA,CAAK,KAAA,CAAO,OAAO,CAAA,CAC9CK,CAAAA,CAAW,CAAA,YAAA,EAAeH,CAAQ,CAAA,CAAE,EACtC","file":"logs-export-DYOPV2LT.js","sourcesContent":["import fs from 'node:fs'\nimport path from 'node:path'\nimport { apiGet } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess } from '../../lib/output/logger.js'\n\nexport default async function logsExport(): Promise<void> {\n const spinner = createSpinner('Exporting logs...')\n spinner.start()\n const data = await apiGet<{ jsonl: string }>('/api/v1/logs/export', { authenticated: true })\n spinner.succeed()\n const filePath = path.join(process.cwd(), `squidcloud-logs-${Date.now()}.jsonl`)\n fs.writeFileSync(filePath, data.jsonl, 'utf-8')\n logSuccess(`Exported to ${filePath}`)\n}\n"]}
@@ -1,2 +1,2 @@
1
- import {d}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import {a}from'./chunk-THMWE2I6.js';import {c}from'./chunk-G4JU7IUC.js';import'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.js';import r from'chalk';async function g(i,t){let a$1=new URLSearchParams({q:i});t?.from&&a$1.set("from",t.from),t?.to&&a$1.set("to",t.to);let l=((await d(`/api/v1/logs/search?${a$1}`,{authenticated:true})).logs||[]).map(e=>({ts:c(e.timestamp),level:e.level==="error"?r.red("\u25CF"):e.level==="warn"?r.yellow("\u25CF"):r.dim("\u25CF"),type:r.dim(e.type||"-"),message:e.message?.slice(0,80)||""}));console.log(a(l,[{key:"ts",label:"Time"},{key:"level",label:""},{key:"type",label:"Type"},{key:"message",label:"Message"}]));}export{g as default};//# sourceMappingURL=logs-search-5QCEBZ6W.js.map
2
- //# sourceMappingURL=logs-search-5QCEBZ6W.js.map
1
+ import {d}from'./chunk-BC2OVPRV.js';import'./chunk-NDB6KXYI.js';import {a}from'./chunk-THMWE2I6.js';import {c}from'./chunk-G4JU7IUC.js';import'./chunk-QT7R3AXE.js';import'./chunk-4NTVRCZM.js';import r from'chalk';async function g(i,t){let a$1=new URLSearchParams({q:i});t?.from&&a$1.set("from",t.from),t?.to&&a$1.set("to",t.to);let l=((await d(`/api/v1/logs/search?${a$1}`,{authenticated:true})).logs||[]).map(e=>({ts:c(e.timestamp),level:e.level==="error"?r.red("\u25CF"):e.level==="warn"?r.yellow("\u25CF"):r.dim("\u25CF"),type:r.dim(e.type||"-"),message:e.message?.slice(0,80)||""}));console.log(a(l,[{key:"ts",label:"Time"},{key:"level",label:""},{key:"type",label:"Type"},{key:"message",label:"Message"}]));}export{g as default};//# sourceMappingURL=logs-search-323KRPG4.js.map
2
+ //# sourceMappingURL=logs-search-323KRPG4.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/logs/logs-search.ts"],"names":["logsSearch","query","options","params","rows","apiGet","l","formatRelative","chalk","renderTable"],"mappings":"qNAaA,eAAOA,CAAAA,CAAkCC,CAAAA,CAAeC,CAAAA,CAAyD,CAC/G,IAAMC,GAAAA,CAAS,IAAI,eAAA,CAAgB,CAAE,CAAA,CAAGF,CAAM,CAAC,CAAA,CAC3CC,CAAAA,EAAS,IAAA,EAAMC,GAAAA,CAAO,GAAA,CAAI,MAAA,CAAQD,CAAAA,CAAQ,IAAI,CAAA,CAC9CA,CAAAA,EAAS,EAAA,EAAIC,GAAAA,CAAO,GAAA,CAAI,IAAA,CAAMD,CAAAA,CAAQ,EAAE,CAAA,CAG5C,IAAME,CAAAA,CAAAA,CAAAA,CADO,MAAMC,CAAAA,CAA6B,CAAA,oBAAA,EAAuBF,GAAM,CAAA,CAAA,CAAI,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,EACrF,IAAA,EAAQ,EAAC,EAAG,GAAA,CAAIG,CAAAA,GAAM,CACvC,EAAA,CAAIC,CAAAA,CAAeD,CAAAA,CAAE,SAAS,CAAA,CAC9B,KAAA,CAAOA,CAAAA,CAAE,KAAA,GAAU,OAAA,CAAUE,CAAAA,CAAM,GAAA,CAAI,QAAG,CAAA,CAAIF,CAAAA,CAAE,KAAA,GAAU,MAAA,CAASE,CAAAA,CAAM,MAAA,CAAO,QAAG,CAAA,CAAIA,CAAAA,CAAM,GAAA,CAAI,QAAG,CAAA,CACpG,IAAA,CAAMA,CAAAA,CAAM,GAAA,CAAIF,CAAAA,CAAE,IAAA,EAAQ,GAAG,CAAA,CAC7B,OAAA,CAASA,CAAAA,CAAE,OAAA,EAAS,KAAA,CAAM,CAAA,CAAG,EAAE,CAAA,EAAK,EACtC,CAAA,CAAE,CAAA,CACF,OAAA,CAAQ,GAAA,CAAIG,CAAAA,CAAYL,CAAAA,CAAM,CAC5B,CAAE,GAAA,CAAK,IAAA,CAAM,KAAA,CAAO,MAAO,CAAA,CAC3B,CAAE,GAAA,CAAK,OAAA,CAAS,KAAA,CAAO,EAAG,CAAA,CAC1B,CAAE,GAAA,CAAK,MAAA,CAAQ,KAAA,CAAO,MAAO,CAAA,CAC7B,CAAE,GAAA,CAAK,SAAA,CAAW,KAAA,CAAO,SAAU,CACrC,CAAC,CAAC,EACJ","file":"logs-search-5QCEBZ6W.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 LogEntry {\n id: string\n timestamp: string\n level: string\n type: string\n message: string\n}\n\nexport default async function logsSearch(query: string, options?: { from?: string; to?: string }): Promise<void> {\n const params = new URLSearchParams({ q: query })\n if (options?.from) params.set('from', options.from)\n if (options?.to) params.set('to', options.to)\n\n const data = await apiGet<{ logs: LogEntry[] }>(`/api/v1/logs/search?${params}`, { authenticated: true })\n const rows = (data.logs || []).map(l => ({\n ts: formatRelative(l.timestamp),\n level: l.level === 'error' ? chalk.red('●') : l.level === 'warn' ? chalk.yellow('●') : chalk.dim('●'),\n type: chalk.dim(l.type || '-'),\n message: l.message?.slice(0, 80) || '',\n }))\n console.log(renderTable(rows, [\n { key: 'ts', label: 'Time' },\n { key: 'level', label: '' },\n { key: 'type', label: 'Type' },\n { key: 'message', label: 'Message' },\n ]))\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/logs/logs-search.ts"],"names":["logsSearch","query","options","params","rows","apiGet","l","formatRelative","chalk","renderTable"],"mappings":"qNAaA,eAAOA,CAAAA,CAAkCC,CAAAA,CAAeC,CAAAA,CAAyD,CAC/G,IAAMC,GAAAA,CAAS,IAAI,eAAA,CAAgB,CAAE,CAAA,CAAGF,CAAM,CAAC,CAAA,CAC3CC,CAAAA,EAAS,IAAA,EAAMC,GAAAA,CAAO,GAAA,CAAI,MAAA,CAAQD,CAAAA,CAAQ,IAAI,CAAA,CAC9CA,CAAAA,EAAS,EAAA,EAAIC,GAAAA,CAAO,GAAA,CAAI,IAAA,CAAMD,CAAAA,CAAQ,EAAE,CAAA,CAG5C,IAAME,CAAAA,CAAAA,CAAAA,CADO,MAAMC,CAAAA,CAA6B,CAAA,oBAAA,EAAuBF,GAAM,CAAA,CAAA,CAAI,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,EACrF,IAAA,EAAQ,EAAC,EAAG,GAAA,CAAIG,CAAAA,GAAM,CACvC,EAAA,CAAIC,CAAAA,CAAeD,CAAAA,CAAE,SAAS,CAAA,CAC9B,KAAA,CAAOA,CAAAA,CAAE,KAAA,GAAU,OAAA,CAAUE,CAAAA,CAAM,GAAA,CAAI,QAAG,CAAA,CAAIF,CAAAA,CAAE,KAAA,GAAU,MAAA,CAASE,CAAAA,CAAM,MAAA,CAAO,QAAG,CAAA,CAAIA,CAAAA,CAAM,GAAA,CAAI,QAAG,CAAA,CACpG,IAAA,CAAMA,CAAAA,CAAM,GAAA,CAAIF,CAAAA,CAAE,IAAA,EAAQ,GAAG,CAAA,CAC7B,OAAA,CAASA,CAAAA,CAAE,OAAA,EAAS,KAAA,CAAM,CAAA,CAAG,EAAE,CAAA,EAAK,EACtC,CAAA,CAAE,CAAA,CACF,OAAA,CAAQ,GAAA,CAAIG,CAAAA,CAAYL,CAAAA,CAAM,CAC5B,CAAE,GAAA,CAAK,IAAA,CAAM,KAAA,CAAO,MAAO,CAAA,CAC3B,CAAE,GAAA,CAAK,OAAA,CAAS,KAAA,CAAO,EAAG,CAAA,CAC1B,CAAE,GAAA,CAAK,MAAA,CAAQ,KAAA,CAAO,MAAO,CAAA,CAC7B,CAAE,GAAA,CAAK,SAAA,CAAW,KAAA,CAAO,SAAU,CACrC,CAAC,CAAC,EACJ","file":"logs-search-323KRPG4.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 LogEntry {\n id: string\n timestamp: string\n level: string\n type: string\n message: string\n}\n\nexport default async function logsSearch(query: string, options?: { from?: string; to?: string }): Promise<void> {\n const params = new URLSearchParams({ q: query })\n if (options?.from) params.set('from', options.from)\n if (options?.to) params.set('to', options.to)\n\n const data = await apiGet<{ logs: LogEntry[] }>(`/api/v1/logs/search?${params}`, { authenticated: true })\n const rows = (data.logs || []).map(l => ({\n ts: formatRelative(l.timestamp),\n level: l.level === 'error' ? chalk.red('●') : l.level === 'warn' ? chalk.yellow('●') : chalk.dim('●'),\n type: chalk.dim(l.type || '-'),\n message: l.message?.slice(0, 80) || '',\n }))\n console.log(renderTable(rows, [\n { key: 'ts', label: 'Time' },\n { key: 'level', label: '' },\n { key: 'type', label: 'Type' },\n { key: 'message', label: 'Message' },\n ]))\n}\n"]}
@@ -1,3 +1,3 @@
1
- import {a}from'./chunk-NDB6KXYI.js';import {m}from'./chunk-C5KZCYJ4.js';import {WebSocket}from'ws';import e from'chalk';async function $(r){let l=await m();l||(console.error("Not authenticated"),process.exit(1));let c=a().replace(/^http/,"ws"),a$1=r?.filter?`?filter=${encodeURIComponent(r.filter)}`:"",t=new WebSocket(`${c}/api/v1/logs/tail${a$1}`,{headers:{Authorization:`Bearer ${l.access_token}`}});console.log(e.dim(`Streaming live logs...${r?.filter?` (filter: ${r.filter})`:""} (Ctrl+C to stop)`)),console.log(""),t.on("message",s=>{try{let o=JSON.parse(s.toString()),m=e.dim(new Date(o.timestamp).toLocaleTimeString()),f=o.level==="error"?e.red("error"):o.level==="warn"?e.yellow("warn"):o.level==="info"?e.hex("#4FC3F7")("info"):e.dim(o.level||"log"),g=o.type?e.dim(`[${o.type}]`):"",p=o.message||"";console.log(`${m} ${f} ${g} ${p}`);}catch{console.log(s.toString());}}),t.on("error",s=>{console.error(e.red(`WebSocket error: ${s.message}`)),process.exit(1);}),t.on("close",()=>{console.log(e.dim(`
2
- Connection closed`)),process.exit(0);}),process.on("SIGINT",()=>{t.close(),process.exit(0);});}export{$ as default};//# sourceMappingURL=logs-tail-OYLJ5EOM.js.map
3
- //# sourceMappingURL=logs-tail-OYLJ5EOM.js.map
1
+ import {a}from'./chunk-NDB6KXYI.js';import {m}from'./chunk-4NTVRCZM.js';import {WebSocket}from'ws';import e from'chalk';async function $(r){let l=await m();l||(console.error("Not authenticated"),process.exit(1));let c=a().replace(/^http/,"ws"),a$1=r?.filter?`?filter=${encodeURIComponent(r.filter)}`:"",t=new WebSocket(`${c}/api/v1/logs/tail${a$1}`,{headers:{Authorization:`Bearer ${l.access_token}`}});console.log(e.dim(`Streaming live logs...${r?.filter?` (filter: ${r.filter})`:""} (Ctrl+C to stop)`)),console.log(""),t.on("message",s=>{try{let o=JSON.parse(s.toString()),m=e.dim(new Date(o.timestamp).toLocaleTimeString()),f=o.level==="error"?e.red("error"):o.level==="warn"?e.yellow("warn"):o.level==="info"?e.hex("#4FC3F7")("info"):e.dim(o.level||"log"),g=o.type?e.dim(`[${o.type}]`):"",p=o.message||"";console.log(`${m} ${f} ${g} ${p}`);}catch{console.log(s.toString());}}),t.on("error",s=>{console.error(e.red(`WebSocket error: ${s.message}`)),process.exit(1);}),t.on("close",()=>{console.log(e.dim(`
2
+ Connection closed`)),process.exit(0);}),process.on("SIGINT",()=>{t.close(),process.exit(0);});}export{$ as default};//# sourceMappingURL=logs-tail-J64TCZG5.js.map
3
+ //# sourceMappingURL=logs-tail-J64TCZG5.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/logs/logs-tail.ts"],"names":["logsTail","options","session","loadSession","apiBase","getApiBase","filterParam","ws","WebSocket","chalk","data","e","ts","level","type","msg","err"],"mappings":"wHAKA,eAAOA,EAAgCC,CAAAA,CAA8C,CACnF,IAAMC,CAAAA,CAAU,MAAMC,GAAY,CAC7BD,CAAAA,GAAW,QAAQ,KAAA,CAAM,mBAAmB,CAAA,CAAG,OAAA,CAAQ,IAAA,CAAK,CAAC,GAElE,IAAME,CAAAA,CAAUC,GAAW,CAAE,OAAA,CAAQ,QAAS,IAAI,CAAA,CAC5CC,GAAAA,CAAcL,CAAAA,EAAS,MAAA,CAAS,CAAA,QAAA,EAAW,mBAAmBA,CAAAA,CAAQ,MAAM,CAAC,CAAA,CAAA,CAAK,EAAA,CAClFM,EAAK,IAAIC,SAAAA,CAAU,CAAA,EAAGJ,CAAO,CAAA,iBAAA,EAAoBE,GAAW,GAAI,CACpE,OAAA,CAAS,CAAE,aAAA,CAAe,CAAA,OAAA,EAAUJ,EAAQ,YAAY,CAAA,CAAG,CAC7D,CAAC,CAAA,CAED,OAAA,CAAQ,IAAIO,CAAAA,CAAM,GAAA,CAAI,yBAAyBR,CAAAA,EAAS,MAAA,CAAS,aAAaA,CAAAA,CAAQ,MAAM,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,iBAAA,CAAmB,CAAC,EACxH,OAAA,CAAQ,GAAA,CAAI,EAAE,CAAA,CAEdM,CAAAA,CAAG,GAAG,SAAA,CAAYG,CAAAA,EAAiB,CACjC,GAAI,CACF,IAAMC,EAAI,IAAA,CAAK,KAAA,CAAMD,EAAK,QAAA,EAAU,EAC9BE,CAAAA,CAAKH,CAAAA,CAAM,GAAA,CAAI,IAAI,IAAA,CAAKE,CAAAA,CAAE,SAAS,CAAA,CAAE,kBAAA,EAAoB,CAAA,CACzDE,CAAAA,CAAQF,EAAE,KAAA,GAAU,OAAA,CAAUF,CAAAA,CAAM,GAAA,CAAI,OAAO,CAAA,CACnDE,EAAE,KAAA,GAAU,MAAA,CAASF,EAAM,MAAA,CAAO,MAAM,EACxCE,CAAAA,CAAE,KAAA,GAAU,MAAA,CAASF,CAAAA,CAAM,GAAA,CAAI,SAAS,EAAE,MAAM,CAAA,CAAIA,EAAM,GAAA,CAAIE,CAAAA,CAAE,OAAS,KAAK,CAAA,CAC1EG,CAAAA,CAAOH,CAAAA,CAAE,IAAA,CAAOF,CAAAA,CAAM,IAAI,CAAA,CAAA,EAAIE,CAAAA,CAAE,IAAI,CAAA,CAAA,CAAG,CAAA,CAAI,GAC3CI,CAAAA,CAAMJ,CAAAA,CAAE,OAAA,EAAW,EAAA,CACzB,OAAA,CAAQ,GAAA,CAAI,GAAGC,CAAE,CAAA,CAAA,EAAIC,CAAK,CAAA,CAAA,EAAIC,CAAI,IAAIC,CAAG,CAAA,CAAE,EAC7C,CAAA,KAAQ,CACN,OAAA,CAAQ,IAAIL,CAAAA,CAAK,QAAA,EAAU,EAC7B,CACF,CAAC,CAAA,CAEDH,CAAAA,CAAG,EAAA,CAAG,OAAA,CAAUS,CAAAA,EAAe,CAC7B,QAAQ,KAAA,CAAMP,CAAAA,CAAM,IAAI,CAAA,iBAAA,EAAoBO,CAAAA,CAAI,OAAO,CAAA,CAAE,CAAC,CAAA,CAC1D,OAAA,CAAQ,IAAA,CAAK,CAAC,EAChB,CAAC,CAAA,CAEDT,EAAG,EAAA,CAAG,OAAA,CAAS,IAAM,CACnB,OAAA,CAAQ,GAAA,CAAIE,CAAAA,CAAM,GAAA,CAAI;AAAA,iBAAA,CAAqB,CAAC,EAC5C,OAAA,CAAQ,IAAA,CAAK,CAAC,EAChB,CAAC,EAED,OAAA,CAAQ,EAAA,CAAG,SAAU,IAAM,CACzBF,EAAG,KAAA,EAAM,CACT,QAAQ,IAAA,CAAK,CAAC,EAChB,CAAC,EACH","file":"logs-tail-OYLJ5EOM.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 logsTail(options?: { filter?: 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 filterParam = options?.filter ? `?filter=${encodeURIComponent(options.filter)}` : ''\n const ws = new WebSocket(`${apiBase}/api/v1/logs/tail${filterParam}`, {\n headers: { Authorization: `Bearer ${session.access_token}` },\n })\n\n console.log(chalk.dim(`Streaming live logs...${options?.filter ? ` (filter: ${options.filter})` : ''} (Ctrl+C to stop)`))\n console.log('')\n\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 level = e.level === 'error' ? chalk.red('error') :\n e.level === 'warn' ? chalk.yellow('warn') :\n e.level === 'info' ? chalk.hex('#4FC3F7')('info') : chalk.dim(e.level || 'log')\n const type = e.type ? chalk.dim(`[${e.type}]`) : ''\n const msg = e.message || ''\n console.log(`${ts} ${level} ${type} ${msg}`)\n } catch {\n console.log(data.toString())\n }\n })\n\n ws.on('error', (err: Error) => {\n console.error(chalk.red(`WebSocket error: ${err.message}`))\n process.exit(1)\n })\n\n ws.on('close', () => {\n console.log(chalk.dim('\\nConnection closed'))\n process.exit(0)\n })\n\n process.on('SIGINT', () => {\n ws.close()\n process.exit(0)\n })\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/logs/logs-tail.ts"],"names":["logsTail","options","session","loadSession","apiBase","getApiBase","filterParam","ws","WebSocket","chalk","data","e","ts","level","type","msg","err"],"mappings":"wHAKA,eAAOA,EAAgCC,CAAAA,CAA8C,CACnF,IAAMC,CAAAA,CAAU,MAAMC,GAAY,CAC7BD,CAAAA,GAAW,QAAQ,KAAA,CAAM,mBAAmB,CAAA,CAAG,OAAA,CAAQ,IAAA,CAAK,CAAC,GAElE,IAAME,CAAAA,CAAUC,GAAW,CAAE,OAAA,CAAQ,QAAS,IAAI,CAAA,CAC5CC,GAAAA,CAAcL,CAAAA,EAAS,MAAA,CAAS,CAAA,QAAA,EAAW,mBAAmBA,CAAAA,CAAQ,MAAM,CAAC,CAAA,CAAA,CAAK,EAAA,CAClFM,EAAK,IAAIC,SAAAA,CAAU,CAAA,EAAGJ,CAAO,CAAA,iBAAA,EAAoBE,GAAW,GAAI,CACpE,OAAA,CAAS,CAAE,aAAA,CAAe,CAAA,OAAA,EAAUJ,EAAQ,YAAY,CAAA,CAAG,CAC7D,CAAC,CAAA,CAED,OAAA,CAAQ,IAAIO,CAAAA,CAAM,GAAA,CAAI,yBAAyBR,CAAAA,EAAS,MAAA,CAAS,aAAaA,CAAAA,CAAQ,MAAM,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,iBAAA,CAAmB,CAAC,EACxH,OAAA,CAAQ,GAAA,CAAI,EAAE,CAAA,CAEdM,CAAAA,CAAG,GAAG,SAAA,CAAYG,CAAAA,EAAiB,CACjC,GAAI,CACF,IAAMC,EAAI,IAAA,CAAK,KAAA,CAAMD,EAAK,QAAA,EAAU,EAC9BE,CAAAA,CAAKH,CAAAA,CAAM,GAAA,CAAI,IAAI,IAAA,CAAKE,CAAAA,CAAE,SAAS,CAAA,CAAE,kBAAA,EAAoB,CAAA,CACzDE,CAAAA,CAAQF,EAAE,KAAA,GAAU,OAAA,CAAUF,CAAAA,CAAM,GAAA,CAAI,OAAO,CAAA,CACnDE,EAAE,KAAA,GAAU,MAAA,CAASF,EAAM,MAAA,CAAO,MAAM,EACxCE,CAAAA,CAAE,KAAA,GAAU,MAAA,CAASF,CAAAA,CAAM,GAAA,CAAI,SAAS,EAAE,MAAM,CAAA,CAAIA,EAAM,GAAA,CAAIE,CAAAA,CAAE,OAAS,KAAK,CAAA,CAC1EG,CAAAA,CAAOH,CAAAA,CAAE,IAAA,CAAOF,CAAAA,CAAM,IAAI,CAAA,CAAA,EAAIE,CAAAA,CAAE,IAAI,CAAA,CAAA,CAAG,CAAA,CAAI,GAC3CI,CAAAA,CAAMJ,CAAAA,CAAE,OAAA,EAAW,EAAA,CACzB,OAAA,CAAQ,GAAA,CAAI,GAAGC,CAAE,CAAA,CAAA,EAAIC,CAAK,CAAA,CAAA,EAAIC,CAAI,IAAIC,CAAG,CAAA,CAAE,EAC7C,CAAA,KAAQ,CACN,OAAA,CAAQ,IAAIL,CAAAA,CAAK,QAAA,EAAU,EAC7B,CACF,CAAC,CAAA,CAEDH,CAAAA,CAAG,EAAA,CAAG,OAAA,CAAUS,CAAAA,EAAe,CAC7B,QAAQ,KAAA,CAAMP,CAAAA,CAAM,IAAI,CAAA,iBAAA,EAAoBO,CAAAA,CAAI,OAAO,CAAA,CAAE,CAAC,CAAA,CAC1D,OAAA,CAAQ,IAAA,CAAK,CAAC,EAChB,CAAC,CAAA,CAEDT,EAAG,EAAA,CAAG,OAAA,CAAS,IAAM,CACnB,OAAA,CAAQ,GAAA,CAAIE,CAAAA,CAAM,GAAA,CAAI;AAAA,iBAAA,CAAqB,CAAC,EAC5C,OAAA,CAAQ,IAAA,CAAK,CAAC,EAChB,CAAC,EAED,OAAA,CAAQ,EAAA,CAAG,SAAU,IAAM,CACzBF,EAAG,KAAA,EAAM,CACT,QAAQ,IAAA,CAAK,CAAC,EAChB,CAAC,EACH","file":"logs-tail-J64TCZG5.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 logsTail(options?: { filter?: 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 filterParam = options?.filter ? `?filter=${encodeURIComponent(options.filter)}` : ''\n const ws = new WebSocket(`${apiBase}/api/v1/logs/tail${filterParam}`, {\n headers: { Authorization: `Bearer ${session.access_token}` },\n })\n\n console.log(chalk.dim(`Streaming live logs...${options?.filter ? ` (filter: ${options.filter})` : ''} (Ctrl+C to stop)`))\n console.log('')\n\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 level = e.level === 'error' ? chalk.red('error') :\n e.level === 'warn' ? chalk.yellow('warn') :\n e.level === 'info' ? chalk.hex('#4FC3F7')('info') : chalk.dim(e.level || 'log')\n const type = e.type ? chalk.dim(`[${e.type}]`) : ''\n const msg = e.message || ''\n console.log(`${ts} ${level} ${type} ${msg}`)\n } catch {\n console.log(data.toString())\n }\n })\n\n ws.on('error', (err: Error) => {\n console.error(chalk.red(`WebSocket error: ${err.message}`))\n process.exit(1)\n })\n\n ws.on('close', () => {\n console.log(chalk.dim('\\nConnection closed'))\n process.exit(0)\n })\n\n process.on('SIGINT', () => {\n ws.close()\n process.exit(0)\n })\n}\n"]}
@@ -1,2 +1,2 @@
1
- import {d}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import {l}from'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.js';import e from'chalk';async function o(){let t=(await d("/api/v1/monitor/dashboard",{authenticated:true})).dashboard;l(""),l(e.bold(" SquidCloud Monitor Dashboard")),l(e.dim(" \u2500\u2500\u2500".repeat(12))),l(""),l(` ${e.bold("Sites")}`),l(` ${t.sites.healthy}/${t.sites.total} healthy`),t.sites.degraded>0&&l(` ${e.yellow(` ${t.sites.degraded} degraded`)}`),l(""),l(` ${e.bold("Pipelines")}`),l(` ${t.pipelines.healthy}/${t.pipelines.total} healthy`),t.pipelines.failing>0&&l(` ${e.red(` ${t.pipelines.failing} failing`)}`),l(""),l(` ${e.bold("Storage")}`),l(` ${t.storage.total_files} files`),t.storage.warnings>0&&l(` ${e.yellow(` ${t.storage.warnings} warnings`)}`),l(""),l(` ${e.bold("Automations")}`),l(` ${t.automations.healthy}/${t.automations.total} healthy`),t.automations.failing>0&&l(` ${e.red(` ${t.automations.failing} failing`)}`),l("");}export{o as default};//# sourceMappingURL=monitor-XUW4BMBQ.js.map
2
- //# sourceMappingURL=monitor-XUW4BMBQ.js.map
1
+ import {d}from'./chunk-BC2OVPRV.js';import'./chunk-NDB6KXYI.js';import {l}from'./chunk-QT7R3AXE.js';import'./chunk-4NTVRCZM.js';import e from'chalk';async function o(){let t=(await d("/api/v1/monitor/dashboard",{authenticated:true})).dashboard;l(""),l(e.bold(" SquidCloud Monitor Dashboard")),l(e.dim(" \u2500\u2500\u2500".repeat(12))),l(""),l(` ${e.bold("Sites")}`),l(` ${t.sites.healthy}/${t.sites.total} healthy`),t.sites.degraded>0&&l(` ${e.yellow(` ${t.sites.degraded} degraded`)}`),l(""),l(` ${e.bold("Pipelines")}`),l(` ${t.pipelines.healthy}/${t.pipelines.total} healthy`),t.pipelines.failing>0&&l(` ${e.red(` ${t.pipelines.failing} failing`)}`),l(""),l(` ${e.bold("Storage")}`),l(` ${t.storage.total_files} files`),t.storage.warnings>0&&l(` ${e.yellow(` ${t.storage.warnings} warnings`)}`),l(""),l(` ${e.bold("Automations")}`),l(` ${t.automations.healthy}/${t.automations.total} healthy`),t.automations.failing>0&&l(` ${e.red(` ${t.automations.failing} failing`)}`),l("");}export{o as default};//# sourceMappingURL=monitor-DKLGO5H7.js.map
2
+ //# sourceMappingURL=monitor-DKLGO5H7.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/monitor/monitor.ts"],"names":["monitor","d","apiGet","logRaw","chalk"],"mappings":"qJAWA,eAAOA,GAAgD,CAErD,IAAMC,GADO,MAAMC,CAAAA,CAAqC,4BAA6B,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,EAC7F,UAEfC,CAAAA,CAAO,EAAE,EACTA,CAAAA,CAAOC,CAAAA,CAAM,KAAK,gCAAgC,CAAC,EACnDD,CAAAA,CAAOC,CAAAA,CAAM,IAAI,sBAAA,CAAQ,MAAA,CAAO,EAAE,CAAC,CAAC,EACpCD,CAAAA,CAAO,EAAE,EACTA,CAAAA,CAAO,CAAA,EAAA,EAAKC,EAAM,IAAA,CAAK,OAAO,CAAC,CAAA,CAAE,CAAA,CACjCD,CAAAA,CAAO,CAAA,IAAA,EAAOF,EAAE,KAAA,CAAM,OAAO,IAAIA,CAAAA,CAAE,KAAA,CAAM,KAAK,CAAA,QAAA,CAAU,CAAA,CACpDA,EAAE,KAAA,CAAM,QAAA,CAAW,GAAGE,CAAAA,CAAO,CAAA,IAAA,EAAOC,EAAM,MAAA,CAAO,CAAA,EAAA,EAAKH,EAAE,KAAA,CAAM,QAAQ,WAAW,CAAC,CAAA,CAAE,EACxFE,CAAAA,CAAO,EAAE,EACTA,CAAAA,CAAO,CAAA,EAAA,EAAKC,EAAM,IAAA,CAAK,WAAW,CAAC,CAAA,CAAE,CAAA,CACrCD,EAAO,CAAA,IAAA,EAAOF,CAAAA,CAAE,UAAU,OAAO,CAAA,CAAA,EAAIA,EAAE,SAAA,CAAU,KAAK,CAAA,QAAA,CAAU,CAAA,CAC5DA,EAAE,SAAA,CAAU,OAAA,CAAU,GAAGE,CAAAA,CAAO,CAAA,IAAA,EAAOC,EAAM,GAAA,CAAI,CAAA,EAAA,EAAKH,EAAE,SAAA,CAAU,OAAO,UAAU,CAAC,CAAA,CAAE,EAC1FE,CAAAA,CAAO,EAAE,EACTA,CAAAA,CAAO,CAAA,EAAA,EAAKC,EAAM,IAAA,CAAK,SAAS,CAAC,CAAA,CAAE,CAAA,CACnCD,EAAO,CAAA,IAAA,EAAOF,CAAAA,CAAE,QAAQ,WAAW,CAAA,MAAA,CAAQ,EACvCA,CAAAA,CAAE,OAAA,CAAQ,SAAW,CAAA,EAAGE,CAAAA,CAAO,OAAOC,CAAAA,CAAM,MAAA,CAAO,KAAKH,CAAAA,CAAE,OAAA,CAAQ,QAAQ,CAAA,SAAA,CAAW,CAAC,CAAA,CAAE,CAAA,CAC5FE,EAAO,EAAE,CAAA,CACTA,EAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,KAAK,aAAa,CAAC,EAAE,CAAA,CACvCD,CAAAA,CAAO,OAAOF,CAAAA,CAAE,WAAA,CAAY,OAAO,CAAA,CAAA,EAAIA,CAAAA,CAAE,YAAY,KAAK,CAAA,QAAA,CAAU,EAChEA,CAAAA,CAAE,WAAA,CAAY,QAAU,CAAA,EAAGE,CAAAA,CAAO,OAAOC,CAAAA,CAAM,GAAA,CAAI,KAAKH,CAAAA,CAAE,WAAA,CAAY,OAAO,CAAA,QAAA,CAAU,CAAC,EAAE,CAAA,CAC9FE,CAAAA,CAAO,EAAE,EACX","file":"monitor-XUW4BMBQ.js","sourcesContent":["import { apiGet } from '../../lib/api/client.js'\nimport { logRaw } from '../../lib/output/logger.js'\nimport chalk from 'chalk'\n\ninterface DashboardData {\n sites: { total: number; healthy: number; degraded: number }\n pipelines: { total: number; healthy: number; failing: number }\n storage: { total_files: number; total_size: number; warnings: number }\n automations: { total: number; healthy: number; failing: number }\n}\n\nexport default async function monitor(): Promise<void> {\n const data = await apiGet<{ dashboard: DashboardData }>('/api/v1/monitor/dashboard', { authenticated: true })\n const d = data.dashboard\n\n logRaw('')\n logRaw(chalk.bold(' SquidCloud Monitor Dashboard'))\n logRaw(chalk.dim(' ───'.repeat(12)))\n logRaw('')\n logRaw(` ${chalk.bold('Sites')}`)\n logRaw(` ${d.sites.healthy}/${d.sites.total} healthy`)\n if (d.sites.degraded > 0) logRaw(` ${chalk.yellow(` ${d.sites.degraded} degraded`)}`)\n logRaw('')\n logRaw(` ${chalk.bold('Pipelines')}`)\n logRaw(` ${d.pipelines.healthy}/${d.pipelines.total} healthy`)\n if (d.pipelines.failing > 0) logRaw(` ${chalk.red(` ${d.pipelines.failing} failing`)}`)\n logRaw('')\n logRaw(` ${chalk.bold('Storage')}`)\n logRaw(` ${d.storage.total_files} files`)\n if (d.storage.warnings > 0) logRaw(` ${chalk.yellow(` ${d.storage.warnings} warnings`)}`)\n logRaw('')\n logRaw(` ${chalk.bold('Automations')}`)\n logRaw(` ${d.automations.healthy}/${d.automations.total} healthy`)\n if (d.automations.failing > 0) logRaw(` ${chalk.red(` ${d.automations.failing} failing`)}`)\n logRaw('')\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/monitor/monitor.ts"],"names":["monitor","d","apiGet","logRaw","chalk"],"mappings":"qJAWA,eAAOA,GAAgD,CAErD,IAAMC,GADO,MAAMC,CAAAA,CAAqC,4BAA6B,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,EAC7F,UAEfC,CAAAA,CAAO,EAAE,EACTA,CAAAA,CAAOC,CAAAA,CAAM,KAAK,gCAAgC,CAAC,EACnDD,CAAAA,CAAOC,CAAAA,CAAM,IAAI,sBAAA,CAAQ,MAAA,CAAO,EAAE,CAAC,CAAC,EACpCD,CAAAA,CAAO,EAAE,EACTA,CAAAA,CAAO,CAAA,EAAA,EAAKC,EAAM,IAAA,CAAK,OAAO,CAAC,CAAA,CAAE,CAAA,CACjCD,CAAAA,CAAO,CAAA,IAAA,EAAOF,EAAE,KAAA,CAAM,OAAO,IAAIA,CAAAA,CAAE,KAAA,CAAM,KAAK,CAAA,QAAA,CAAU,CAAA,CACpDA,EAAE,KAAA,CAAM,QAAA,CAAW,GAAGE,CAAAA,CAAO,CAAA,IAAA,EAAOC,EAAM,MAAA,CAAO,CAAA,EAAA,EAAKH,EAAE,KAAA,CAAM,QAAQ,WAAW,CAAC,CAAA,CAAE,EACxFE,CAAAA,CAAO,EAAE,EACTA,CAAAA,CAAO,CAAA,EAAA,EAAKC,EAAM,IAAA,CAAK,WAAW,CAAC,CAAA,CAAE,CAAA,CACrCD,EAAO,CAAA,IAAA,EAAOF,CAAAA,CAAE,UAAU,OAAO,CAAA,CAAA,EAAIA,EAAE,SAAA,CAAU,KAAK,CAAA,QAAA,CAAU,CAAA,CAC5DA,EAAE,SAAA,CAAU,OAAA,CAAU,GAAGE,CAAAA,CAAO,CAAA,IAAA,EAAOC,EAAM,GAAA,CAAI,CAAA,EAAA,EAAKH,EAAE,SAAA,CAAU,OAAO,UAAU,CAAC,CAAA,CAAE,EAC1FE,CAAAA,CAAO,EAAE,EACTA,CAAAA,CAAO,CAAA,EAAA,EAAKC,EAAM,IAAA,CAAK,SAAS,CAAC,CAAA,CAAE,CAAA,CACnCD,EAAO,CAAA,IAAA,EAAOF,CAAAA,CAAE,QAAQ,WAAW,CAAA,MAAA,CAAQ,EACvCA,CAAAA,CAAE,OAAA,CAAQ,SAAW,CAAA,EAAGE,CAAAA,CAAO,OAAOC,CAAAA,CAAM,MAAA,CAAO,KAAKH,CAAAA,CAAE,OAAA,CAAQ,QAAQ,CAAA,SAAA,CAAW,CAAC,CAAA,CAAE,CAAA,CAC5FE,EAAO,EAAE,CAAA,CACTA,EAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,KAAK,aAAa,CAAC,EAAE,CAAA,CACvCD,CAAAA,CAAO,OAAOF,CAAAA,CAAE,WAAA,CAAY,OAAO,CAAA,CAAA,EAAIA,CAAAA,CAAE,YAAY,KAAK,CAAA,QAAA,CAAU,EAChEA,CAAAA,CAAE,WAAA,CAAY,QAAU,CAAA,EAAGE,CAAAA,CAAO,OAAOC,CAAAA,CAAM,GAAA,CAAI,KAAKH,CAAAA,CAAE,WAAA,CAAY,OAAO,CAAA,QAAA,CAAU,CAAC,EAAE,CAAA,CAC9FE,CAAAA,CAAO,EAAE,EACX","file":"monitor-DKLGO5H7.js","sourcesContent":["import { apiGet } from '../../lib/api/client.js'\nimport { logRaw } from '../../lib/output/logger.js'\nimport chalk from 'chalk'\n\ninterface DashboardData {\n sites: { total: number; healthy: number; degraded: number }\n pipelines: { total: number; healthy: number; failing: number }\n storage: { total_files: number; total_size: number; warnings: number }\n automations: { total: number; healthy: number; failing: number }\n}\n\nexport default async function monitor(): Promise<void> {\n const data = await apiGet<{ dashboard: DashboardData }>('/api/v1/monitor/dashboard', { authenticated: true })\n const d = data.dashboard\n\n logRaw('')\n logRaw(chalk.bold(' SquidCloud Monitor Dashboard'))\n logRaw(chalk.dim(' ───'.repeat(12)))\n logRaw('')\n logRaw(` ${chalk.bold('Sites')}`)\n logRaw(` ${d.sites.healthy}/${d.sites.total} healthy`)\n if (d.sites.degraded > 0) logRaw(` ${chalk.yellow(` ${d.sites.degraded} degraded`)}`)\n logRaw('')\n logRaw(` ${chalk.bold('Pipelines')}`)\n logRaw(` ${d.pipelines.healthy}/${d.pipelines.total} healthy`)\n if (d.pipelines.failing > 0) logRaw(` ${chalk.red(` ${d.pipelines.failing} failing`)}`)\n logRaw('')\n logRaw(` ${chalk.bold('Storage')}`)\n logRaw(` ${d.storage.total_files} files`)\n if (d.storage.warnings > 0) logRaw(` ${chalk.yellow(` ${d.storage.warnings} warnings`)}`)\n logRaw('')\n logRaw(` ${chalk.bold('Automations')}`)\n logRaw(` ${d.automations.healthy}/${d.automations.total} healthy`)\n if (d.automations.failing > 0) logRaw(` ${chalk.red(` ${d.automations.failing} failing`)}`)\n logRaw('')\n}\n"]}
@@ -1,2 +1,2 @@
1
- import {d}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import {a as a$1}from'./chunk-THMWE2I6.js';import {c}from'./chunk-G4JU7IUC.js';import'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.js';import a from'chalk';async function i(){let s=((await d("/api/v1/monitor/automations",{authenticated:true})).automations||[]).map(t=>({name:t.name,last:t.last_fired?c(t.last_fired):a.dim("never"),rate:`${(t.success_rate*100).toFixed(0)}%`,status:t.status==="healthy"?a.green("\u25CF"):t.status==="erroring"?a.red("\u25CF"):a.dim("\u25CB")}));console.log(a$1(s,[{key:"name",label:"Automation"},{key:"last",label:"Last Fired"},{key:"rate",label:"Success"},{key:"status",label:""}]));}export{i as default};//# sourceMappingURL=monitor-automations-TSO65I6U.js.map
2
- //# sourceMappingURL=monitor-automations-TSO65I6U.js.map
1
+ import {d}from'./chunk-BC2OVPRV.js';import'./chunk-NDB6KXYI.js';import {a as a$1}from'./chunk-THMWE2I6.js';import {c}from'./chunk-G4JU7IUC.js';import'./chunk-QT7R3AXE.js';import'./chunk-4NTVRCZM.js';import a from'chalk';async function i(){let s=((await d("/api/v1/monitor/automations",{authenticated:true})).automations||[]).map(t=>({name:t.name,last:t.last_fired?c(t.last_fired):a.dim("never"),rate:`${(t.success_rate*100).toFixed(0)}%`,status:t.status==="healthy"?a.green("\u25CF"):t.status==="erroring"?a.red("\u25CF"):a.dim("\u25CB")}));console.log(a$1(s,[{key:"name",label:"Automation"},{key:"last",label:"Last Fired"},{key:"rate",label:"Success"},{key:"status",label:""}]));}export{i as default};//# sourceMappingURL=monitor-automations-4XOOCRFY.js.map
2
+ //# sourceMappingURL=monitor-automations-4XOOCRFY.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/monitor/monitor-automations.ts"],"names":["monitorAutomations","rows","apiGet","a","formatRelative","chalk","renderTable"],"mappings":"4NAYA,eAAOA,CAAAA,EAA2D,CAEhE,IAAMC,CAAAA,CAAAA,CAAAA,CADO,MAAMC,CAAAA,CAA4C,6BAAA,CAA+B,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,EAClG,WAAA,EAAe,EAAC,EAAG,GAAA,CAAIC,CAAAA,GAAM,CAC9C,IAAA,CAAMA,CAAAA,CAAE,KACR,IAAA,CAAMA,CAAAA,CAAE,WAAaC,CAAAA,CAAeD,CAAAA,CAAE,UAAU,CAAA,CAAIE,CAAAA,CAAM,IAAI,OAAO,CAAA,CACrE,KAAM,CAAA,EAAA,CAAIF,CAAAA,CAAE,aAAe,GAAA,EAAK,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAA,CAAA,CAC1C,MAAA,CAAQA,CAAAA,CAAE,MAAA,GAAW,SAAA,CAAYE,EAAM,KAAA,CAAM,QAAG,EAAIF,CAAAA,CAAE,MAAA,GAAW,WAAaE,CAAAA,CAAM,GAAA,CAAI,QAAG,CAAA,CAAIA,CAAAA,CAAM,IAAI,QAAG,CAC9G,EAAE,CAAA,CACF,OAAA,CAAQ,IAAIC,GAAAA,CAAYL,CAAAA,CAAM,CAC5B,CAAE,GAAA,CAAK,MAAA,CAAQ,MAAO,YAAa,CAAA,CACnC,CAAE,GAAA,CAAK,MAAA,CAAQ,MAAO,YAAa,CAAA,CACnC,CAAE,GAAA,CAAK,MAAA,CAAQ,MAAO,SAAU,CAAA,CAChC,CAAE,GAAA,CAAK,QAAA,CAAU,MAAO,EAAG,CAC7B,CAAC,CAAC,EACJ","file":"monitor-automations-TSO65I6U.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 AutomationHealth {\n name: string\n status: 'healthy' | 'erroring' | 'dormant'\n last_fired: string | null\n success_rate: number\n}\n\nexport default async function monitorAutomations(): Promise<void> {\n const data = await apiGet<{ automations: AutomationHealth[] }>('/api/v1/monitor/automations', { authenticated: true })\n const rows = (data.automations || []).map(a => ({\n name: a.name,\n last: a.last_fired ? formatRelative(a.last_fired) : chalk.dim('never'),\n rate: `${(a.success_rate * 100).toFixed(0)}%`,\n status: a.status === 'healthy' ? chalk.green('●') : a.status === 'erroring' ? chalk.red('●') : chalk.dim('○'),\n }))\n console.log(renderTable(rows, [\n { key: 'name', label: 'Automation' },\n { key: 'last', label: 'Last Fired' },\n { key: 'rate', label: 'Success' },\n { key: 'status', label: '' },\n ]))\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/monitor/monitor-automations.ts"],"names":["monitorAutomations","rows","apiGet","a","formatRelative","chalk","renderTable"],"mappings":"4NAYA,eAAOA,CAAAA,EAA2D,CAEhE,IAAMC,CAAAA,CAAAA,CAAAA,CADO,MAAMC,CAAAA,CAA4C,6BAAA,CAA+B,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,EAClG,WAAA,EAAe,EAAC,EAAG,GAAA,CAAIC,CAAAA,GAAM,CAC9C,IAAA,CAAMA,CAAAA,CAAE,KACR,IAAA,CAAMA,CAAAA,CAAE,WAAaC,CAAAA,CAAeD,CAAAA,CAAE,UAAU,CAAA,CAAIE,CAAAA,CAAM,IAAI,OAAO,CAAA,CACrE,KAAM,CAAA,EAAA,CAAIF,CAAAA,CAAE,aAAe,GAAA,EAAK,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAA,CAAA,CAC1C,MAAA,CAAQA,CAAAA,CAAE,MAAA,GAAW,SAAA,CAAYE,EAAM,KAAA,CAAM,QAAG,EAAIF,CAAAA,CAAE,MAAA,GAAW,WAAaE,CAAAA,CAAM,GAAA,CAAI,QAAG,CAAA,CAAIA,CAAAA,CAAM,IAAI,QAAG,CAC9G,EAAE,CAAA,CACF,OAAA,CAAQ,IAAIC,GAAAA,CAAYL,CAAAA,CAAM,CAC5B,CAAE,GAAA,CAAK,MAAA,CAAQ,MAAO,YAAa,CAAA,CACnC,CAAE,GAAA,CAAK,MAAA,CAAQ,MAAO,YAAa,CAAA,CACnC,CAAE,GAAA,CAAK,MAAA,CAAQ,MAAO,SAAU,CAAA,CAChC,CAAE,GAAA,CAAK,QAAA,CAAU,MAAO,EAAG,CAC7B,CAAC,CAAC,EACJ","file":"monitor-automations-4XOOCRFY.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 AutomationHealth {\n name: string\n status: 'healthy' | 'erroring' | 'dormant'\n last_fired: string | null\n success_rate: number\n}\n\nexport default async function monitorAutomations(): Promise<void> {\n const data = await apiGet<{ automations: AutomationHealth[] }>('/api/v1/monitor/automations', { authenticated: true })\n const rows = (data.automations || []).map(a => ({\n name: a.name,\n last: a.last_fired ? formatRelative(a.last_fired) : chalk.dim('never'),\n rate: `${(a.success_rate * 100).toFixed(0)}%`,\n status: a.status === 'healthy' ? chalk.green('●') : a.status === 'erroring' ? chalk.red('●') : chalk.dim('○'),\n }))\n console.log(renderTable(rows, [\n { key: 'name', label: 'Automation' },\n { key: 'last', label: 'Last Fired' },\n { key: 'rate', label: 'Success' },\n { key: 'status', label: '' },\n ]))\n}\n"]}
@@ -1,2 +1,2 @@
1
- import {d}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import {a}from'./chunk-THMWE2I6.js';import {c}from'./chunk-G4JU7IUC.js';import'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.js';import t from'chalk';async function r(){let l=((await d("/api/v1/monitor/pipelines",{authenticated:true})).pipelines||[]).map(e=>({name:e.name,last:e.last_run?c(e.last_run):t.dim("never"),runs:String(e.runs_24h),status:e.status==="healthy"?t.green("\u25CF"):e.status==="degraded"?t.yellow("\u25CF"):t.red("\u25CF")}));console.log(a(l,[{key:"name",label:"Pipeline"},{key:"last",label:"Last Run"},{key:"runs",label:"24h Runs"},{key:"status",label:""}]));}export{r as default};//# sourceMappingURL=monitor-pipelines-OPCTGGRR.js.map
2
- //# sourceMappingURL=monitor-pipelines-OPCTGGRR.js.map
1
+ import {d}from'./chunk-BC2OVPRV.js';import'./chunk-NDB6KXYI.js';import {a}from'./chunk-THMWE2I6.js';import {c}from'./chunk-G4JU7IUC.js';import'./chunk-QT7R3AXE.js';import'./chunk-4NTVRCZM.js';import t from'chalk';async function r(){let l=((await d("/api/v1/monitor/pipelines",{authenticated:true})).pipelines||[]).map(e=>({name:e.name,last:e.last_run?c(e.last_run):t.dim("never"),runs:String(e.runs_24h),status:e.status==="healthy"?t.green("\u25CF"):e.status==="degraded"?t.yellow("\u25CF"):t.red("\u25CF")}));console.log(a(l,[{key:"name",label:"Pipeline"},{key:"last",label:"Last Run"},{key:"runs",label:"24h Runs"},{key:"status",label:""}]));}export{r as default};//# sourceMappingURL=monitor-pipelines-EPL24J3S.js.map
2
+ //# sourceMappingURL=monitor-pipelines-EPL24J3S.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/monitor/monitor-pipelines.ts"],"names":["monitorPipelines","rows","apiGet","p","formatRelative","chalk","renderTable"],"mappings":"qNAYA,eAAOA,CAAAA,EAAyD,CAE9D,IAAMC,CAAAA,CAAAA,CAAAA,CADO,MAAMC,CAAAA,CAAwC,2BAAA,CAA6B,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,EAC5F,SAAA,EAAa,EAAC,EAAG,GAAA,CAAIC,IAAM,CAC5C,IAAA,CAAMA,EAAE,IAAA,CACR,IAAA,CAAMA,EAAE,QAAA,CAAWC,CAAAA,CAAeD,EAAE,QAAQ,CAAA,CAAIE,EAAM,GAAA,CAAI,OAAO,EACjE,IAAA,CAAM,MAAA,CAAOF,EAAE,QAAQ,CAAA,CACvB,OAAQA,CAAAA,CAAE,MAAA,GAAW,UAAYE,CAAAA,CAAM,KAAA,CAAM,QAAG,CAAA,CAAIF,CAAAA,CAAE,SAAW,UAAA,CAAaE,CAAAA,CAAM,OAAO,QAAG,CAAA,CAAIA,EAAM,GAAA,CAAI,QAAG,CACjH,CAAA,CAAE,CAAA,CACF,QAAQ,GAAA,CAAIC,CAAAA,CAAYL,EAAM,CAC5B,CAAE,IAAK,MAAA,CAAQ,KAAA,CAAO,UAAW,CAAA,CACjC,CAAE,IAAK,MAAA,CAAQ,KAAA,CAAO,UAAW,CAAA,CACjC,CAAE,IAAK,MAAA,CAAQ,KAAA,CAAO,UAAW,CAAA,CACjC,CAAE,IAAK,QAAA,CAAU,KAAA,CAAO,EAAG,CAC7B,CAAC,CAAC,EACJ","file":"monitor-pipelines-OPCTGGRR.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 PipelineHealth {\n name: string\n status: 'healthy' | 'degraded' | 'failing'\n last_run: string | null\n runs_24h: number\n}\n\nexport default async function monitorPipelines(): Promise<void> {\n const data = await apiGet<{ pipelines: PipelineHealth[] }>('/api/v1/monitor/pipelines', { authenticated: true })\n const rows = (data.pipelines || []).map(p => ({\n name: p.name,\n last: p.last_run ? formatRelative(p.last_run) : chalk.dim('never'),\n runs: String(p.runs_24h),\n status: p.status === 'healthy' ? chalk.green('●') : p.status === 'degraded' ? chalk.yellow('●') : chalk.red('●'),\n }))\n console.log(renderTable(rows, [\n { key: 'name', label: 'Pipeline' },\n { key: 'last', label: 'Last Run' },\n { key: 'runs', label: '24h Runs' },\n { key: 'status', label: '' },\n ]))\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/monitor/monitor-pipelines.ts"],"names":["monitorPipelines","rows","apiGet","p","formatRelative","chalk","renderTable"],"mappings":"qNAYA,eAAOA,CAAAA,EAAyD,CAE9D,IAAMC,CAAAA,CAAAA,CAAAA,CADO,MAAMC,CAAAA,CAAwC,2BAAA,CAA6B,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,EAC5F,SAAA,EAAa,EAAC,EAAG,GAAA,CAAIC,IAAM,CAC5C,IAAA,CAAMA,EAAE,IAAA,CACR,IAAA,CAAMA,EAAE,QAAA,CAAWC,CAAAA,CAAeD,EAAE,QAAQ,CAAA,CAAIE,EAAM,GAAA,CAAI,OAAO,EACjE,IAAA,CAAM,MAAA,CAAOF,EAAE,QAAQ,CAAA,CACvB,OAAQA,CAAAA,CAAE,MAAA,GAAW,UAAYE,CAAAA,CAAM,KAAA,CAAM,QAAG,CAAA,CAAIF,CAAAA,CAAE,SAAW,UAAA,CAAaE,CAAAA,CAAM,OAAO,QAAG,CAAA,CAAIA,EAAM,GAAA,CAAI,QAAG,CACjH,CAAA,CAAE,CAAA,CACF,QAAQ,GAAA,CAAIC,CAAAA,CAAYL,EAAM,CAC5B,CAAE,IAAK,MAAA,CAAQ,KAAA,CAAO,UAAW,CAAA,CACjC,CAAE,IAAK,MAAA,CAAQ,KAAA,CAAO,UAAW,CAAA,CACjC,CAAE,IAAK,MAAA,CAAQ,KAAA,CAAO,UAAW,CAAA,CACjC,CAAE,IAAK,QAAA,CAAU,KAAA,CAAO,EAAG,CAC7B,CAAC,CAAC,EACJ","file":"monitor-pipelines-EPL24J3S.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 PipelineHealth {\n name: string\n status: 'healthy' | 'degraded' | 'failing'\n last_run: string | null\n runs_24h: number\n}\n\nexport default async function monitorPipelines(): Promise<void> {\n const data = await apiGet<{ pipelines: PipelineHealth[] }>('/api/v1/monitor/pipelines', { authenticated: true })\n const rows = (data.pipelines || []).map(p => ({\n name: p.name,\n last: p.last_run ? formatRelative(p.last_run) : chalk.dim('never'),\n runs: String(p.runs_24h),\n status: p.status === 'healthy' ? chalk.green('●') : p.status === 'degraded' ? chalk.yellow('●') : chalk.red('●'),\n }))\n console.log(renderTable(rows, [\n { key: 'name', label: 'Pipeline' },\n { key: 'last', label: 'Last Run' },\n { key: 'runs', label: '24h Runs' },\n { key: 'status', label: '' },\n ]))\n}\n"]}
@@ -1,2 +1,2 @@
1
- import {d}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import {a}from'./chunk-THMWE2I6.js';import'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.js';import t from'chalk';async function o(){let i=((await d("/api/v1/monitor/sites",{authenticated:true})).sites||[]).map(e=>({slug:e.slug,uptime:`${(e.uptime*100).toFixed(1)}%`,checked:e.last_check?new Date(e.last_check).toLocaleTimeString():"-",response:`${e.response_time_ms}ms`,status:e.status==="healthy"?t.green("\u25CF healthy"):e.status==="degraded"?t.yellow("\u25CF degraded"):t.red("\u25CF down")}));console.log(a(i,[{key:"slug",label:"Site"},{key:"uptime",label:"Uptime"},{key:"checked",label:"Last Check"},{key:"response",label:"Response"},{key:"status",label:"Status"}]));}export{o as default};//# sourceMappingURL=monitor-sites-OLSGE4V2.js.map
2
- //# sourceMappingURL=monitor-sites-OLSGE4V2.js.map
1
+ import {d}from'./chunk-BC2OVPRV.js';import'./chunk-NDB6KXYI.js';import {a}from'./chunk-THMWE2I6.js';import'./chunk-QT7R3AXE.js';import'./chunk-4NTVRCZM.js';import t from'chalk';async function o(){let i=((await d("/api/v1/monitor/sites",{authenticated:true})).sites||[]).map(e=>({slug:e.slug,uptime:`${(e.uptime*100).toFixed(1)}%`,checked:e.last_check?new Date(e.last_check).toLocaleTimeString():"-",response:`${e.response_time_ms}ms`,status:e.status==="healthy"?t.green("\u25CF healthy"):e.status==="degraded"?t.yellow("\u25CF degraded"):t.red("\u25CF down")}));console.log(a(i,[{key:"slug",label:"Site"},{key:"uptime",label:"Uptime"},{key:"checked",label:"Last Check"},{key:"response",label:"Response"},{key:"status",label:"Status"}]));}export{o as default};//# sourceMappingURL=monitor-sites-QIVG5TPF.js.map
2
+ //# sourceMappingURL=monitor-sites-QIVG5TPF.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/monitor/monitor-sites.ts"],"names":["monitorSites","rows","apiGet","s","chalk","renderTable"],"mappings":"iLAYA,eAAOA,CAAAA,EAAqD,CAE1D,IAAMC,CAAAA,CAAAA,CAAAA,CADO,MAAMC,CAAAA,CAAgC,uBAAA,CAAyB,CAAE,cAAe,IAAK,CAAC,CAAA,EAChF,KAAA,EAAS,EAAC,EAAG,IAAIC,CAAAA,GAAM,CACxC,IAAA,CAAMA,CAAAA,CAAE,IAAA,CACR,MAAA,CAAQ,IAAIA,CAAAA,CAAE,MAAA,CAAS,GAAA,EAAK,OAAA,CAAQ,CAAC,CAAC,IACtC,OAAA,CAASA,CAAAA,CAAE,UAAA,CAAa,IAAI,IAAA,CAAKA,CAAAA,CAAE,UAAU,CAAA,CAAE,kBAAA,EAAmB,CAAI,GAAA,CACtE,QAAA,CAAU,CAAA,EAAGA,EAAE,gBAAgB,CAAA,EAAA,CAAA,CAC/B,MAAA,CAAQA,CAAAA,CAAE,MAAA,GAAW,SAAA,CAAYC,EAAM,KAAA,CAAM,gBAAW,CAAA,CAAID,CAAAA,CAAE,MAAA,GAAW,UAAA,CAAaC,EAAM,MAAA,CAAO,iBAAY,CAAA,CAAIA,CAAAA,CAAM,GAAA,CAAI,aAAQ,CACvI,CAAA,CAAE,CAAA,CACF,OAAA,CAAQ,GAAA,CAAIC,CAAAA,CAAYJ,CAAAA,CAAM,CAC5B,CAAE,GAAA,CAAK,MAAA,CAAQ,KAAA,CAAO,MAAO,CAAA,CAC7B,CAAE,GAAA,CAAK,QAAA,CAAU,KAAA,CAAO,QAAS,CAAA,CACjC,CAAE,IAAK,SAAA,CAAW,KAAA,CAAO,YAAa,CAAA,CACtC,CAAE,GAAA,CAAK,WAAY,KAAA,CAAO,UAAW,CAAA,CACrC,CAAE,GAAA,CAAK,QAAA,CAAU,MAAO,QAAS,CACnC,CAAC,CAAC,EACJ","file":"monitor-sites-OLSGE4V2.js","sourcesContent":["import { apiGet } from '../../lib/api/client.js'\nimport { renderTable } from '../../lib/output/table.js'\nimport chalk from 'chalk'\n\ninterface SiteHealth {\n slug: string\n uptime: number\n last_check: string\n response_time_ms: number\n status: 'healthy' | 'degraded' | 'down'\n}\n\nexport default async function monitorSites(): Promise<void> {\n const data = await apiGet<{ sites: SiteHealth[] }>('/api/v1/monitor/sites', { authenticated: true })\n const rows = (data.sites || []).map(s => ({\n slug: s.slug,\n uptime: `${(s.uptime * 100).toFixed(1)}%`,\n checked: s.last_check ? new Date(s.last_check).toLocaleTimeString() : '-',\n response: `${s.response_time_ms}ms`,\n status: s.status === 'healthy' ? chalk.green('● healthy') : s.status === 'degraded' ? chalk.yellow('● degraded') : chalk.red('● down'),\n }))\n console.log(renderTable(rows, [\n { key: 'slug', label: 'Site' },\n { key: 'uptime', label: 'Uptime' },\n { key: 'checked', label: 'Last Check' },\n { key: 'response', label: 'Response' },\n { key: 'status', label: 'Status' },\n ]))\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/monitor/monitor-sites.ts"],"names":["monitorSites","rows","apiGet","s","chalk","renderTable"],"mappings":"iLAYA,eAAOA,CAAAA,EAAqD,CAE1D,IAAMC,CAAAA,CAAAA,CAAAA,CADO,MAAMC,CAAAA,CAAgC,uBAAA,CAAyB,CAAE,cAAe,IAAK,CAAC,CAAA,EAChF,KAAA,EAAS,EAAC,EAAG,IAAIC,CAAAA,GAAM,CACxC,IAAA,CAAMA,CAAAA,CAAE,IAAA,CACR,MAAA,CAAQ,IAAIA,CAAAA,CAAE,MAAA,CAAS,GAAA,EAAK,OAAA,CAAQ,CAAC,CAAC,IACtC,OAAA,CAASA,CAAAA,CAAE,UAAA,CAAa,IAAI,IAAA,CAAKA,CAAAA,CAAE,UAAU,CAAA,CAAE,kBAAA,EAAmB,CAAI,GAAA,CACtE,QAAA,CAAU,CAAA,EAAGA,EAAE,gBAAgB,CAAA,EAAA,CAAA,CAC/B,MAAA,CAAQA,CAAAA,CAAE,MAAA,GAAW,SAAA,CAAYC,EAAM,KAAA,CAAM,gBAAW,CAAA,CAAID,CAAAA,CAAE,MAAA,GAAW,UAAA,CAAaC,EAAM,MAAA,CAAO,iBAAY,CAAA,CAAIA,CAAAA,CAAM,GAAA,CAAI,aAAQ,CACvI,CAAA,CAAE,CAAA,CACF,OAAA,CAAQ,GAAA,CAAIC,CAAAA,CAAYJ,CAAAA,CAAM,CAC5B,CAAE,GAAA,CAAK,MAAA,CAAQ,KAAA,CAAO,MAAO,CAAA,CAC7B,CAAE,GAAA,CAAK,QAAA,CAAU,KAAA,CAAO,QAAS,CAAA,CACjC,CAAE,IAAK,SAAA,CAAW,KAAA,CAAO,YAAa,CAAA,CACtC,CAAE,GAAA,CAAK,WAAY,KAAA,CAAO,UAAW,CAAA,CACrC,CAAE,GAAA,CAAK,QAAA,CAAU,MAAO,QAAS,CACnC,CAAC,CAAC,EACJ","file":"monitor-sites-QIVG5TPF.js","sourcesContent":["import { apiGet } from '../../lib/api/client.js'\nimport { renderTable } from '../../lib/output/table.js'\nimport chalk from 'chalk'\n\ninterface SiteHealth {\n slug: string\n uptime: number\n last_check: string\n response_time_ms: number\n status: 'healthy' | 'degraded' | 'down'\n}\n\nexport default async function monitorSites(): Promise<void> {\n const data = await apiGet<{ sites: SiteHealth[] }>('/api/v1/monitor/sites', { authenticated: true })\n const rows = (data.sites || []).map(s => ({\n slug: s.slug,\n uptime: `${(s.uptime * 100).toFixed(1)}%`,\n checked: s.last_check ? new Date(s.last_check).toLocaleTimeString() : '-',\n response: `${s.response_time_ms}ms`,\n status: s.status === 'healthy' ? chalk.green('● healthy') : s.status === 'degraded' ? chalk.yellow('● degraded') : chalk.red('● down'),\n }))\n console.log(renderTable(rows, [\n { key: 'slug', label: 'Site' },\n { key: 'uptime', label: 'Uptime' },\n { key: 'checked', label: 'Last Check' },\n { key: 'response', label: 'Response' },\n { key: 'status', label: 'Status' },\n ]))\n}\n"]}
@@ -1,2 +1,2 @@
1
- import {d}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import {l}from'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.js';import e from'chalk';async function t(){let r=(await d("/api/v1/monitor/storage",{authenticated:true})).health;l(""),l(e.bold(" Storage Health Report")),l(e.dim(" \u2500\u2500\u2500".repeat(10))),l(` ${e.bold("Broken Shares:")} ${r.broken_shares>0?e.red(r.broken_shares):e.green("0")}`),l(` ${e.bold("Orphaned Files:")} ${r.orphaned_files>0?e.yellow(r.orphaned_files):e.green("0")}`),l(` ${e.bold("Corrupted:")} ${r.corrupted_uploads>0?e.red(r.corrupted_uploads):e.green("0")}`),l(` ${e.bold("Near Limit:")} ${r.near_limit_folders>0?e.yellow(r.near_limit_folders):e.green("0")}`),l(` ${e.bold("Stale (90d):")} ${r.stale_files_90d>0?e.yellow(r.stale_files_90d):e.green("0")}`),l("");}export{t as default};//# sourceMappingURL=monitor-storage-CVFXC3ZS.js.map
2
- //# sourceMappingURL=monitor-storage-CVFXC3ZS.js.map
1
+ import {d}from'./chunk-BC2OVPRV.js';import'./chunk-NDB6KXYI.js';import {l}from'./chunk-QT7R3AXE.js';import'./chunk-4NTVRCZM.js';import e from'chalk';async function t(){let r=(await d("/api/v1/monitor/storage",{authenticated:true})).health;l(""),l(e.bold(" Storage Health Report")),l(e.dim(" \u2500\u2500\u2500".repeat(10))),l(` ${e.bold("Broken Shares:")} ${r.broken_shares>0?e.red(r.broken_shares):e.green("0")}`),l(` ${e.bold("Orphaned Files:")} ${r.orphaned_files>0?e.yellow(r.orphaned_files):e.green("0")}`),l(` ${e.bold("Corrupted:")} ${r.corrupted_uploads>0?e.red(r.corrupted_uploads):e.green("0")}`),l(` ${e.bold("Near Limit:")} ${r.near_limit_folders>0?e.yellow(r.near_limit_folders):e.green("0")}`),l(` ${e.bold("Stale (90d):")} ${r.stale_files_90d>0?e.yellow(r.stale_files_90d):e.green("0")}`),l("");}export{t as default};//# sourceMappingURL=monitor-storage-HBCC34K7.js.map
2
+ //# sourceMappingURL=monitor-storage-HBCC34K7.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/monitor/monitor-storage.ts"],"names":["monitorStorage","h","apiGet","logRaw","chalk"],"mappings":"qJAYA,eAAOA,CAAAA,EAAuD,CAE5D,IAAMC,CAAAA,CAAAA,CADO,MAAMC,CAAAA,CAAkC,yBAAA,CAA2B,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,EACxF,MAAA,CAEfC,CAAAA,CAAO,EAAE,CAAA,CACTA,CAAAA,CAAOC,CAAAA,CAAM,IAAA,CAAK,yBAAyB,CAAC,CAAA,CAC5CD,CAAAA,CAAOC,CAAAA,CAAM,GAAA,CAAI,sBAAA,CAAQ,MAAA,CAAO,EAAE,CAAC,CAAC,CAAA,CACpCD,CAAAA,CAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,IAAA,CAAK,gBAAgB,CAAC,QAAQH,CAAAA,CAAE,aAAA,CAAgB,CAAA,CAAIG,CAAAA,CAAM,GAAA,CAAIH,CAAAA,CAAE,aAAa,CAAA,CAAIG,EAAM,KAAA,CAAM,GAAG,CAAC,CAAA,CAAE,CAAA,CACrHD,CAAAA,CAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,KAAK,iBAAiB,CAAC,CAAA,IAAA,EAAOH,CAAAA,CAAE,cAAA,CAAiB,CAAA,CAAIG,CAAAA,CAAM,MAAA,CAAOH,EAAE,cAAc,CAAA,CAAIG,CAAAA,CAAM,KAAA,CAAM,GAAG,CAAC,CAAA,CAAE,CAAA,CAC1HD,EAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,IAAA,CAAK,YAAY,CAAC,CAAA,SAAA,EAAYH,CAAAA,CAAE,iBAAA,CAAoB,EAAIG,CAAAA,CAAM,GAAA,CAAIH,CAAAA,CAAE,iBAAiB,CAAA,CAAIG,CAAAA,CAAM,KAAA,CAAM,GAAG,CAAC,CAAA,CAAE,CAAA,CAC7HD,CAAAA,CAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,IAAA,CAAK,aAAa,CAAC,WAAWH,CAAAA,CAAE,kBAAA,CAAqB,CAAA,CAAIG,CAAAA,CAAM,MAAA,CAAOH,CAAAA,CAAE,kBAAkB,CAAA,CAAIG,EAAM,KAAA,CAAM,GAAG,CAAC,CAAA,CAAE,CAAA,CAClID,CAAAA,CAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,KAAK,cAAc,CAAC,CAAA,OAAA,EAAUH,CAAAA,CAAE,eAAA,CAAkB,CAAA,CAAIG,CAAAA,CAAM,MAAA,CAAOH,EAAE,eAAe,CAAA,CAAIG,CAAAA,CAAM,KAAA,CAAM,GAAG,CAAC,CAAA,CAAE,CAAA,CAC5HD,CAAAA,CAAO,EAAE,EACX","file":"monitor-storage-CVFXC3ZS.js","sourcesContent":["import { apiGet } from '../../lib/api/client.js'\nimport { logRaw } from '../../lib/output/logger.js'\nimport chalk from 'chalk'\n\ninterface StorageHealth {\n broken_shares: number\n orphaned_files: number\n corrupted_uploads: number\n near_limit_folders: number\n stale_files_90d: number\n}\n\nexport default async function monitorStorage(): Promise<void> {\n const data = await apiGet<{ health: StorageHealth }>('/api/v1/monitor/storage', { authenticated: true })\n const h = data.health\n\n logRaw('')\n logRaw(chalk.bold(' Storage Health Report'))\n logRaw(chalk.dim(' ───'.repeat(10)))\n logRaw(` ${chalk.bold('Broken Shares:')} ${h.broken_shares > 0 ? chalk.red(h.broken_shares) : chalk.green('0')}`)\n logRaw(` ${chalk.bold('Orphaned Files:')} ${h.orphaned_files > 0 ? chalk.yellow(h.orphaned_files) : chalk.green('0')}`)\n logRaw(` ${chalk.bold('Corrupted:')} ${h.corrupted_uploads > 0 ? chalk.red(h.corrupted_uploads) : chalk.green('0')}`)\n logRaw(` ${chalk.bold('Near Limit:')} ${h.near_limit_folders > 0 ? chalk.yellow(h.near_limit_folders) : chalk.green('0')}`)\n logRaw(` ${chalk.bold('Stale (90d):')} ${h.stale_files_90d > 0 ? chalk.yellow(h.stale_files_90d) : chalk.green('0')}`)\n logRaw('')\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/monitor/monitor-storage.ts"],"names":["monitorStorage","h","apiGet","logRaw","chalk"],"mappings":"qJAYA,eAAOA,CAAAA,EAAuD,CAE5D,IAAMC,CAAAA,CAAAA,CADO,MAAMC,CAAAA,CAAkC,yBAAA,CAA2B,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,EACxF,MAAA,CAEfC,CAAAA,CAAO,EAAE,CAAA,CACTA,CAAAA,CAAOC,CAAAA,CAAM,IAAA,CAAK,yBAAyB,CAAC,CAAA,CAC5CD,CAAAA,CAAOC,CAAAA,CAAM,GAAA,CAAI,sBAAA,CAAQ,MAAA,CAAO,EAAE,CAAC,CAAC,CAAA,CACpCD,CAAAA,CAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,IAAA,CAAK,gBAAgB,CAAC,QAAQH,CAAAA,CAAE,aAAA,CAAgB,CAAA,CAAIG,CAAAA,CAAM,GAAA,CAAIH,CAAAA,CAAE,aAAa,CAAA,CAAIG,EAAM,KAAA,CAAM,GAAG,CAAC,CAAA,CAAE,CAAA,CACrHD,CAAAA,CAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,KAAK,iBAAiB,CAAC,CAAA,IAAA,EAAOH,CAAAA,CAAE,cAAA,CAAiB,CAAA,CAAIG,CAAAA,CAAM,MAAA,CAAOH,EAAE,cAAc,CAAA,CAAIG,CAAAA,CAAM,KAAA,CAAM,GAAG,CAAC,CAAA,CAAE,CAAA,CAC1HD,EAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,IAAA,CAAK,YAAY,CAAC,CAAA,SAAA,EAAYH,CAAAA,CAAE,iBAAA,CAAoB,EAAIG,CAAAA,CAAM,GAAA,CAAIH,CAAAA,CAAE,iBAAiB,CAAA,CAAIG,CAAAA,CAAM,KAAA,CAAM,GAAG,CAAC,CAAA,CAAE,CAAA,CAC7HD,CAAAA,CAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,IAAA,CAAK,aAAa,CAAC,WAAWH,CAAAA,CAAE,kBAAA,CAAqB,CAAA,CAAIG,CAAAA,CAAM,MAAA,CAAOH,CAAAA,CAAE,kBAAkB,CAAA,CAAIG,EAAM,KAAA,CAAM,GAAG,CAAC,CAAA,CAAE,CAAA,CAClID,CAAAA,CAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,KAAK,cAAc,CAAC,CAAA,OAAA,EAAUH,CAAAA,CAAE,eAAA,CAAkB,CAAA,CAAIG,CAAAA,CAAM,MAAA,CAAOH,EAAE,eAAe,CAAA,CAAIG,CAAAA,CAAM,KAAA,CAAM,GAAG,CAAC,CAAA,CAAE,CAAA,CAC5HD,CAAAA,CAAO,EAAE,EACX","file":"monitor-storage-HBCC34K7.js","sourcesContent":["import { apiGet } from '../../lib/api/client.js'\nimport { logRaw } from '../../lib/output/logger.js'\nimport chalk from 'chalk'\n\ninterface StorageHealth {\n broken_shares: number\n orphaned_files: number\n corrupted_uploads: number\n near_limit_folders: number\n stale_files_90d: number\n}\n\nexport default async function monitorStorage(): Promise<void> {\n const data = await apiGet<{ health: StorageHealth }>('/api/v1/monitor/storage', { authenticated: true })\n const h = data.health\n\n logRaw('')\n logRaw(chalk.bold(' Storage Health Report'))\n logRaw(chalk.dim(' ───'.repeat(10)))\n logRaw(` ${chalk.bold('Broken Shares:')} ${h.broken_shares > 0 ? chalk.red(h.broken_shares) : chalk.green('0')}`)\n logRaw(` ${chalk.bold('Orphaned Files:')} ${h.orphaned_files > 0 ? chalk.yellow(h.orphaned_files) : chalk.green('0')}`)\n logRaw(` ${chalk.bold('Corrupted:')} ${h.corrupted_uploads > 0 ? chalk.red(h.corrupted_uploads) : chalk.green('0')}`)\n logRaw(` ${chalk.bold('Near Limit:')} ${h.near_limit_folders > 0 ? chalk.yellow(h.near_limit_folders) : chalk.green('0')}`)\n logRaw(` ${chalk.bold('Stale (90d):')} ${h.stale_files_90d > 0 ? chalk.yellow(h.stale_files_90d) : chalk.green('0')}`)\n logRaw('')\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {b}from'./chunk-FYFPDKJM.js';import {e}from'./chunk-BC2OVPRV.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {g}from'./chunk-QT7R3AXE.js';import'./chunk-4NTVRCZM.js';async function n(e$1){let c=b(`Cancelling run ${e$1.slice(0,8)}...`);c.start(),await e(`/api/v1/scripts/runs/${e$1}/cancel`,{},{authenticated:true}),c.succeed(),g(`Run ${e$1.slice(0,8)} cancelled`);}export{n as default};//# sourceMappingURL=scripts-cancel-JS3LL2AT.js.map
2
+ //# sourceMappingURL=scripts-cancel-JS3LL2AT.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/scripts/scripts-cancel.ts"],"names":["scriptsCancel","runId","spinner","createSpinner","apiPost","logSuccess"],"mappings":"4NAIA,eAAOA,EAAqCC,GAAAA,CAA8B,CACxE,IAAMC,CAAAA,CAAUC,CAAAA,CAAc,kBAAkBF,GAAAA,CAAM,KAAA,CAAM,CAAA,CAAG,CAAC,CAAC,CAAA,GAAA,CAAK,CAAA,CACtEC,EAAQ,KAAA,EAAM,CACd,MAAME,CAAAA,CAAQ,CAAA,qBAAA,EAAwBH,GAAK,CAAA,OAAA,CAAA,CAAW,EAAC,CAAG,CAAE,cAAe,IAAK,CAAC,EACjFC,CAAAA,CAAQ,OAAA,EAAQ,CAChBG,CAAAA,CAAW,OAAOJ,GAAAA,CAAM,KAAA,CAAM,EAAG,CAAC,CAAC,YAAY,EACjD","file":"scripts-cancel-OR2UFFC3.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 scriptsCancel(runId: string): Promise<void> {\n const spinner = createSpinner(`Cancelling run ${runId.slice(0, 8)}...`)\n spinner.start()\n await apiPost(`/api/v1/scripts/runs/${runId}/cancel`, {}, { authenticated: true })\n spinner.succeed()\n logSuccess(`Run ${runId.slice(0, 8)} cancelled`)\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/scripts/scripts-cancel.ts"],"names":["scriptsCancel","runId","spinner","createSpinner","apiPost","logSuccess"],"mappings":"gMAIA,eAAOA,EAAqCC,GAAAA,CAA8B,CACxE,IAAMC,CAAAA,CAAUC,CAAAA,CAAc,kBAAkBF,GAAAA,CAAM,KAAA,CAAM,CAAA,CAAG,CAAC,CAAC,CAAA,GAAA,CAAK,CAAA,CACtEC,EAAQ,KAAA,EAAM,CACd,MAAME,CAAAA,CAAQ,CAAA,qBAAA,EAAwBH,GAAK,CAAA,OAAA,CAAA,CAAW,EAAC,CAAG,CAAE,cAAe,IAAK,CAAC,EACjFC,CAAAA,CAAQ,OAAA,EAAQ,CAChBG,CAAAA,CAAW,OAAOJ,GAAAA,CAAM,KAAA,CAAM,EAAG,CAAC,CAAC,YAAY,EACjD","file":"scripts-cancel-JS3LL2AT.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 scriptsCancel(runId: string): Promise<void> {\n const spinner = createSpinner(`Cancelling run ${runId.slice(0, 8)}...`)\n spinner.start()\n await apiPost(`/api/v1/scripts/runs/${runId}/cancel`, {}, { authenticated: true })\n spinner.succeed()\n logSuccess(`Run ${runId.slice(0, 8)} cancelled`)\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {b}from'./chunk-FYFPDKJM.js';import {g}from'./chunk-BC2OVPRV.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {g as g$1}from'./chunk-QT7R3AXE.js';import'./chunk-4NTVRCZM.js';import s from'inquirer';async function c(e){let{confirm:p}=await s.prompt([{type:"input",name:"confirm",message:`Type "${e}" to permanently delete this pipeline:`,validate:n=>n===e?true:"Type the exact name to confirm"}]);if(p!==e)return;let t=b(`Deleting "${e}"...`);t.start(),await g(`/api/v1/scripts/${e}`,{authenticated:true}),t.succeed(),g$1(`Pipeline "${e}" deleted`);}export{c as default};//# sourceMappingURL=scripts-delete-274TW63X.js.map
2
+ //# sourceMappingURL=scripts-delete-274TW63X.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/scripts/scripts-delete.ts"],"names":["scriptsDelete","name","confirm","inquirer","v","spinner","createSpinner","apiDelete","logSuccess"],"mappings":"2PAKA,eAAOA,CAAAA,CAAqCC,CAAAA,CAA6B,CACvE,GAAM,CAAE,OAAA,CAAAC,CAAQ,CAAA,CAAI,MAAMC,EAAS,MAAA,CAAO,CAAC,CACzC,IAAA,CAAM,OAAA,CACN,IAAA,CAAM,SAAA,CACN,OAAA,CAAS,CAAA,MAAA,EAASF,CAAI,CAAA,sCAAA,CAAA,CACtB,QAAA,CAAWG,CAAAA,EAAcA,CAAAA,GAAMH,CAAAA,CAAO,IAAA,CAAO,gCAC/C,CAAC,CAAC,CAAA,CACF,GAAIC,CAAAA,GAAYD,CAAAA,CAAM,OAEtB,IAAMI,CAAAA,CAAUC,CAAAA,CAAc,CAAA,UAAA,EAAaL,CAAI,CAAA,IAAA,CAAM,CAAA,CACrDI,CAAAA,CAAQ,KAAA,GACR,MAAME,CAAAA,CAAU,CAAA,gBAAA,EAAmBN,CAAI,CAAA,CAAA,CAAI,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAClEI,CAAAA,CAAQ,OAAA,EAAQ,CAChBG,GAAAA,CAAW,CAAA,UAAA,EAAaP,CAAI,WAAW,EACzC","file":"scripts-delete-HMHBIL4G.js","sourcesContent":["import inquirer from 'inquirer'\nimport { apiDelete } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess } from '../../lib/output/logger.js'\n\nexport default async function scriptsDelete(name: string): Promise<void> {\n const { confirm } = await inquirer.prompt([{\n type: 'input',\n name: 'confirm',\n message: `Type \"${name}\" to permanently delete this pipeline:`,\n validate: (v: string) => v === name ? true : 'Type the exact name to confirm',\n }])\n if (confirm !== name) return\n\n const spinner = createSpinner(`Deleting \"${name}\"...`)\n spinner.start()\n await apiDelete(`/api/v1/scripts/${name}`, { authenticated: true })\n spinner.succeed()\n logSuccess(`Pipeline \"${name}\" deleted`)\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/scripts/scripts-delete.ts"],"names":["scriptsDelete","name","confirm","inquirer","v","spinner","createSpinner","apiDelete","logSuccess"],"mappings":"+NAKA,eAAOA,CAAAA,CAAqCC,CAAAA,CAA6B,CACvE,GAAM,CAAE,OAAA,CAAAC,CAAQ,CAAA,CAAI,MAAMC,EAAS,MAAA,CAAO,CAAC,CACzC,IAAA,CAAM,OAAA,CACN,IAAA,CAAM,SAAA,CACN,OAAA,CAAS,CAAA,MAAA,EAASF,CAAI,CAAA,sCAAA,CAAA,CACtB,QAAA,CAAWG,CAAAA,EAAcA,CAAAA,GAAMH,CAAAA,CAAO,IAAA,CAAO,gCAC/C,CAAC,CAAC,CAAA,CACF,GAAIC,CAAAA,GAAYD,CAAAA,CAAM,OAEtB,IAAMI,CAAAA,CAAUC,CAAAA,CAAc,CAAA,UAAA,EAAaL,CAAI,CAAA,IAAA,CAAM,CAAA,CACrDI,CAAAA,CAAQ,KAAA,GACR,MAAME,CAAAA,CAAU,CAAA,gBAAA,EAAmBN,CAAI,CAAA,CAAA,CAAI,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAClEI,CAAAA,CAAQ,OAAA,EAAQ,CAChBG,GAAAA,CAAW,CAAA,UAAA,EAAaP,CAAI,WAAW,EACzC","file":"scripts-delete-274TW63X.js","sourcesContent":["import inquirer from 'inquirer'\nimport { apiDelete } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess } from '../../lib/output/logger.js'\n\nexport default async function scriptsDelete(name: string): Promise<void> {\n const { confirm } = await inquirer.prompt([{\n type: 'input',\n name: 'confirm',\n message: `Type \"${name}\" to permanently delete this pipeline:`,\n validate: (v: string) => v === name ? true : 'Type the exact name to confirm',\n }])\n if (confirm !== name) return\n\n const spinner = createSpinner(`Deleting \"${name}\"...`)\n spinner.start()\n await apiDelete(`/api/v1/scripts/${name}`, { authenticated: true })\n spinner.succeed()\n logSuccess(`Pipeline \"${name}\" deleted`)\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {b}from'./chunk-FYFPDKJM.js';import {e}from'./chunk-BC2OVPRV.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {g}from'./chunk-QT7R3AXE.js';import'./chunk-4NTVRCZM.js';async function o(i){let t=b(`Disabling "${i}"...`);t.start(),await e(`/api/v1/scripts/${i}/disable`,{},{authenticated:true}),t.succeed(),g(`Pipeline "${i}" disabled`);}export{o as default};//# sourceMappingURL=scripts-disable-JPATOVO4.js.map
2
+ //# sourceMappingURL=scripts-disable-JPATOVO4.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/scripts/scripts-disable.ts"],"names":["scriptsDisable","name","spinner","createSpinner","apiPost","logSuccess"],"mappings":"4NAIA,eAAOA,CAAAA,CAAsCC,CAAAA,CAA6B,CACxE,IAAMC,EAAUC,CAAAA,CAAc,CAAA,WAAA,EAAcF,CAAI,CAAA,IAAA,CAAM,CAAA,CACtDC,CAAAA,CAAQ,KAAA,EAAM,CACd,MAAME,CAAAA,CAAQ,CAAA,gBAAA,EAAmBH,CAAI,CAAA,QAAA,CAAA,CAAY,EAAC,CAAG,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAC5EC,CAAAA,CAAQ,OAAA,EAAQ,CAChBG,CAAAA,CAAW,CAAA,UAAA,EAAaJ,CAAI,YAAY,EAC1C","file":"scripts-disable-ABFUD34Y.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 scriptsDisable(name: string): Promise<void> {\n const spinner = createSpinner(`Disabling \"${name}\"...`)\n spinner.start()\n await apiPost(`/api/v1/scripts/${name}/disable`, {}, { authenticated: true })\n spinner.succeed()\n logSuccess(`Pipeline \"${name}\" disabled`)\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/scripts/scripts-disable.ts"],"names":["scriptsDisable","name","spinner","createSpinner","apiPost","logSuccess"],"mappings":"gMAIA,eAAOA,CAAAA,CAAsCC,CAAAA,CAA6B,CACxE,IAAMC,EAAUC,CAAAA,CAAc,CAAA,WAAA,EAAcF,CAAI,CAAA,IAAA,CAAM,CAAA,CACtDC,CAAAA,CAAQ,KAAA,EAAM,CACd,MAAME,CAAAA,CAAQ,CAAA,gBAAA,EAAmBH,CAAI,CAAA,QAAA,CAAA,CAAY,EAAC,CAAG,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAC5EC,CAAAA,CAAQ,OAAA,EAAQ,CAChBG,CAAAA,CAAW,CAAA,UAAA,EAAaJ,CAAI,YAAY,EAC1C","file":"scripts-disable-JPATOVO4.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 scriptsDisable(name: string): Promise<void> {\n const spinner = createSpinner(`Disabling \"${name}\"...`)\n spinner.start()\n await apiPost(`/api/v1/scripts/${name}/disable`, {}, { authenticated: true })\n spinner.succeed()\n logSuccess(`Pipeline \"${name}\" disabled`)\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {b}from'./chunk-FYFPDKJM.js';import {e}from'./chunk-BC2OVPRV.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {g}from'./chunk-QT7R3AXE.js';import'./chunk-4NTVRCZM.js';async function s(t){let e$1=b(`Enabling "${t}"...`);e$1.start(),await e(`/api/v1/scripts/${t}/enable`,{},{authenticated:true}),e$1.succeed(),g(`Pipeline "${t}" enabled`);}export{s as default};//# sourceMappingURL=scripts-enable-JVAA6AMP.js.map
2
+ //# sourceMappingURL=scripts-enable-JVAA6AMP.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/scripts/scripts-enable.ts"],"names":["scriptsEnable","name","spinner","createSpinner","apiPost","logSuccess"],"mappings":"4NAIA,eAAOA,CAAAA,CAAqCC,CAAAA,CAA6B,CACvE,IAAMC,IAAUC,CAAAA,CAAc,CAAA,UAAA,EAAaF,CAAI,CAAA,IAAA,CAAM,CAAA,CACrDC,GAAAA,CAAQ,KAAA,EAAM,CACd,MAAME,CAAAA,CAAQ,CAAA,gBAAA,EAAmBH,CAAI,CAAA,OAAA,CAAA,CAAW,EAAC,CAAG,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAC3EC,GAAAA,CAAQ,OAAA,EAAQ,CAChBG,CAAAA,CAAW,CAAA,UAAA,EAAaJ,CAAI,WAAW,EACzC","file":"scripts-enable-VMRAPULS.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 scriptsEnable(name: string): Promise<void> {\n const spinner = createSpinner(`Enabling \"${name}\"...`)\n spinner.start()\n await apiPost(`/api/v1/scripts/${name}/enable`, {}, { authenticated: true })\n spinner.succeed()\n logSuccess(`Pipeline \"${name}\" enabled`)\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/scripts/scripts-enable.ts"],"names":["scriptsEnable","name","spinner","createSpinner","apiPost","logSuccess"],"mappings":"gMAIA,eAAOA,CAAAA,CAAqCC,CAAAA,CAA6B,CACvE,IAAMC,IAAUC,CAAAA,CAAc,CAAA,UAAA,EAAaF,CAAI,CAAA,IAAA,CAAM,CAAA,CACrDC,GAAAA,CAAQ,KAAA,EAAM,CACd,MAAME,CAAAA,CAAQ,CAAA,gBAAA,EAAmBH,CAAI,CAAA,OAAA,CAAA,CAAW,EAAC,CAAG,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAC3EC,GAAAA,CAAQ,OAAA,EAAQ,CAChBG,CAAAA,CAAW,CAAA,UAAA,EAAaJ,CAAI,WAAW,EACzC","file":"scripts-enable-JVAA6AMP.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 scriptsEnable(name: string): Promise<void> {\n const spinner = createSpinner(`Enabling \"${name}\"...`)\n spinner.start()\n await apiPost(`/api/v1/scripts/${name}/enable`, {}, { authenticated: true })\n spinner.succeed()\n logSuccess(`Pipeline \"${name}\" enabled`)\n}\n"]}
@@ -1,2 +1,2 @@
1
- import {d}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import {a}from'./chunk-THMWE2I6.js';import {c}from'./chunk-G4JU7IUC.js';import'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.js';import e from'chalk';async function r(){let s=((await d("/api/v1/scripts",{authenticated:true})).scripts||[]).map(t=>({name:e.hex("#4FC3F7")(t.name),file:e.dim(t.file_path),last_run:t.last_run?c(t.last_run):e.dim("never"),status:t.last_status==="success"?e.green("\u2713"):t.last_status==="failed"?e.red("\u2717"):e.dim("-"),enabled:t.enabled?e.green("yes"):e.yellow("no")}));console.log(a(s,[{key:"name",label:"Name"},{key:"file",label:"File"},{key:"last_run",label:"Last Run"},{key:"status",label:"Status"},{key:"enabled",label:"Enabled"}]));}export{r as default};//# sourceMappingURL=scripts-list-DV2QVLPX.js.map
2
- //# sourceMappingURL=scripts-list-DV2QVLPX.js.map
1
+ import {d}from'./chunk-BC2OVPRV.js';import'./chunk-NDB6KXYI.js';import {a}from'./chunk-THMWE2I6.js';import {c}from'./chunk-G4JU7IUC.js';import'./chunk-QT7R3AXE.js';import'./chunk-4NTVRCZM.js';import e from'chalk';async function r(){let s=((await d("/api/v1/scripts",{authenticated:true})).scripts||[]).map(t=>({name:e.hex("#4FC3F7")(t.name),file:e.dim(t.file_path),last_run:t.last_run?c(t.last_run):e.dim("never"),status:t.last_status==="success"?e.green("\u2713"):t.last_status==="failed"?e.red("\u2717"):e.dim("-"),enabled:t.enabled?e.green("yes"):e.yellow("no")}));console.log(a(s,[{key:"name",label:"Name"},{key:"file",label:"File"},{key:"last_run",label:"Last Run"},{key:"status",label:"Status"},{key:"enabled",label:"Enabled"}]));}export{r as default};//# sourceMappingURL=scripts-list-YPFNLI3P.js.map
2
+ //# sourceMappingURL=scripts-list-YPFNLI3P.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/scripts/scripts-list.ts"],"names":["scriptsList","rows","apiGet","s","chalk","formatRelative","renderTable"],"mappings":"qNAaA,eAAOA,CAAAA,EAAoD,CAEzD,IAAMC,CAAAA,CAAAA,CAAAA,CADO,MAAMC,CAAAA,CAAkC,iBAAA,CAAmB,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,EAC5E,OAAA,EAAW,EAAC,EAAG,GAAA,CAAIC,CAAAA,GAAM,CAC1C,IAAA,CAAMC,CAAAA,CAAM,GAAA,CAAI,SAAS,CAAA,CAAED,CAAAA,CAAE,IAAI,CAAA,CACjC,IAAA,CAAMC,CAAAA,CAAM,GAAA,CAAID,CAAAA,CAAE,SAAS,CAAA,CAC3B,QAAA,CAAUA,CAAAA,CAAE,QAAA,CAAWE,CAAAA,CAAeF,CAAAA,CAAE,QAAQ,CAAA,CAAIC,EAAM,GAAA,CAAI,OAAO,CAAA,CACrE,MAAA,CAAQD,CAAAA,CAAE,WAAA,GAAgB,SAAA,CAAYC,CAAAA,CAAM,KAAA,CAAM,QAAG,CAAA,CAAID,CAAAA,CAAE,WAAA,GAAgB,QAAA,CAAWC,EAAM,GAAA,CAAI,QAAG,CAAA,CAAIA,CAAAA,CAAM,GAAA,CAAI,GAAG,CAAA,CACpH,OAAA,CAASD,CAAAA,CAAE,OAAA,CAAUC,CAAAA,CAAM,KAAA,CAAM,KAAK,CAAA,CAAIA,EAAM,MAAA,CAAO,IAAI,CAC7D,CAAA,CAAE,CAAA,CACF,OAAA,CAAQ,GAAA,CAAIE,CAAAA,CAAYL,CAAAA,CAAM,CAC5B,CAAE,GAAA,CAAK,MAAA,CAAQ,KAAA,CAAO,MAAO,CAAA,CAC7B,CAAE,GAAA,CAAK,MAAA,CAAQ,KAAA,CAAO,MAAO,CAAA,CAC7B,CAAE,GAAA,CAAK,UAAA,CAAY,KAAA,CAAO,UAAW,CAAA,CACrC,CAAE,IAAK,QAAA,CAAU,KAAA,CAAO,QAAS,CAAA,CACjC,CAAE,GAAA,CAAK,SAAA,CAAW,KAAA,CAAO,SAAU,CACrC,CAAC,CAAC,EACJ","file":"scripts-list-DV2QVLPX.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 ScriptInfo {\n name: string\n file_path: string\n last_run: string | null\n last_status: string | null\n enabled: boolean\n}\n\nexport default async function scriptsList(): Promise<void> {\n const data = await apiGet<{ scripts: ScriptInfo[] }>('/api/v1/scripts', { authenticated: true })\n const rows = (data.scripts || []).map(s => ({\n name: chalk.hex('#4FC3F7')(s.name),\n file: chalk.dim(s.file_path),\n last_run: s.last_run ? formatRelative(s.last_run) : chalk.dim('never'),\n status: s.last_status === 'success' ? chalk.green('✓') : s.last_status === 'failed' ? chalk.red('✗') : chalk.dim('-'),\n enabled: s.enabled ? chalk.green('yes') : chalk.yellow('no'),\n }))\n console.log(renderTable(rows, [\n { key: 'name', label: 'Name' },\n { key: 'file', label: 'File' },\n { key: 'last_run', label: 'Last Run' },\n { key: 'status', label: 'Status' },\n { key: 'enabled', label: 'Enabled' },\n ]))\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/scripts/scripts-list.ts"],"names":["scriptsList","rows","apiGet","s","chalk","formatRelative","renderTable"],"mappings":"qNAaA,eAAOA,CAAAA,EAAoD,CAEzD,IAAMC,CAAAA,CAAAA,CAAAA,CADO,MAAMC,CAAAA,CAAkC,iBAAA,CAAmB,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,EAC5E,OAAA,EAAW,EAAC,EAAG,GAAA,CAAIC,CAAAA,GAAM,CAC1C,IAAA,CAAMC,CAAAA,CAAM,GAAA,CAAI,SAAS,CAAA,CAAED,CAAAA,CAAE,IAAI,CAAA,CACjC,IAAA,CAAMC,CAAAA,CAAM,GAAA,CAAID,CAAAA,CAAE,SAAS,CAAA,CAC3B,QAAA,CAAUA,CAAAA,CAAE,QAAA,CAAWE,CAAAA,CAAeF,CAAAA,CAAE,QAAQ,CAAA,CAAIC,EAAM,GAAA,CAAI,OAAO,CAAA,CACrE,MAAA,CAAQD,CAAAA,CAAE,WAAA,GAAgB,SAAA,CAAYC,CAAAA,CAAM,KAAA,CAAM,QAAG,CAAA,CAAID,CAAAA,CAAE,WAAA,GAAgB,QAAA,CAAWC,EAAM,GAAA,CAAI,QAAG,CAAA,CAAIA,CAAAA,CAAM,GAAA,CAAI,GAAG,CAAA,CACpH,OAAA,CAASD,CAAAA,CAAE,OAAA,CAAUC,CAAAA,CAAM,KAAA,CAAM,KAAK,CAAA,CAAIA,EAAM,MAAA,CAAO,IAAI,CAC7D,CAAA,CAAE,CAAA,CACF,OAAA,CAAQ,GAAA,CAAIE,CAAAA,CAAYL,CAAAA,CAAM,CAC5B,CAAE,GAAA,CAAK,MAAA,CAAQ,KAAA,CAAO,MAAO,CAAA,CAC7B,CAAE,GAAA,CAAK,MAAA,CAAQ,KAAA,CAAO,MAAO,CAAA,CAC7B,CAAE,GAAA,CAAK,UAAA,CAAY,KAAA,CAAO,UAAW,CAAA,CACrC,CAAE,IAAK,QAAA,CAAU,KAAA,CAAO,QAAS,CAAA,CACjC,CAAE,GAAA,CAAK,SAAA,CAAW,KAAA,CAAO,SAAU,CACrC,CAAC,CAAC,EACJ","file":"scripts-list-YPFNLI3P.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 ScriptInfo {\n name: string\n file_path: string\n last_run: string | null\n last_status: string | null\n enabled: boolean\n}\n\nexport default async function scriptsList(): Promise<void> {\n const data = await apiGet<{ scripts: ScriptInfo[] }>('/api/v1/scripts', { authenticated: true })\n const rows = (data.scripts || []).map(s => ({\n name: chalk.hex('#4FC3F7')(s.name),\n file: chalk.dim(s.file_path),\n last_run: s.last_run ? formatRelative(s.last_run) : chalk.dim('never'),\n status: s.last_status === 'success' ? chalk.green('✓') : s.last_status === 'failed' ? chalk.red('✗') : chalk.dim('-'),\n enabled: s.enabled ? chalk.green('yes') : chalk.yellow('no'),\n }))\n console.log(renderTable(rows, [\n { key: 'name', label: 'Name' },\n { key: 'file', label: 'File' },\n { key: 'last_run', label: 'Last Run' },\n { key: 'status', label: 'Status' },\n { key: 'enabled', label: 'Enabled' },\n ]))\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {b}from'./chunk-FYFPDKJM.js';import {d}from'./chunk-BC2OVPRV.js';import {a}from'./chunk-NDB6KXYI.js';import {a as a$1}from'./chunk-THMWE2I6.js';import {c}from'./chunk-G4JU7IUC.js';import'./chunk-QT7R3AXE.js';import {m}from'./chunk-4NTVRCZM.js';import {WebSocket}from'ws';import s from'chalk';async function y(e,n,g){if(g?.live){let t=await m();t||(console.error("Not authenticated"),process.exit(1));let o=a().replace(/^http/,"ws"),r=new WebSocket(`${o}/api/v1/scripts/${e}/logs/live`,{headers:{Authorization:`Bearer ${t.access_token}`}});console.log(s.dim(`Streaming live logs for "${e}"... (Ctrl+C to stop)`)),r.on("message",i=>console.log(i.toString())),r.on("error",i=>{console.error(s.red(`Error: ${i.message}`)),process.exit(1);}),process.on("SIGINT",()=>{r.close(),process.exit(0);});return}if(n){let t=await d(`/api/v1/scripts/${e}/logs/${n}`,{authenticated:true});for(let o of t.logs||[])console.log(o);return}let l=b("Fetching run history...");l.start();let f=await d(`/api/v1/scripts/${e}/runs`,{authenticated:true});l.stop();let h=(f.runs||[]).map(t=>({id:s.dim(t.run_id.slice(0,8)),status:t.status==="success"?s.green("\u2713"):t.status==="failed"?s.red("\u2717"):s.yellow("\u25CB"),started:t.started_at?c(t.started_at):"-",duration:t.duration_ms?`${(t.duration_ms/1e3).toFixed(1)}s`:"-"}));console.log(a$1(h,[{key:"id",label:"Run"},{key:"status",label:""},{key:"started",label:"Started"},{key:"duration",label:"Duration"}]));}export{y as default};//# sourceMappingURL=scripts-logs-VISO5ONQ.js.map
2
+ //# sourceMappingURL=scripts-logs-VISO5ONQ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/scripts/scripts-logs.ts"],"names":["scriptsLogs","name","runId","options","session","loadSession","apiBase","getApiBase","ws","WebSocket","chalk","data","err","apiGet","line","spinner","createSpinner","rows","r","formatRelative","renderTable"],"mappings":"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","file":"scripts-logs-AHTMTQ6G.js","sourcesContent":["import { apiGet } from '../../lib/api/client.js'\nimport { WebSocket } from 'ws'\nimport { renderTable } from '../../lib/output/table.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { formatRelative } from '../../lib/utils/format.js'\nimport { loadSession } from '../../lib/auth/session.js'\nimport { getApiBase } from '../../lib/api/cert-pin.js'\nimport chalk from 'chalk'\n\ninterface RunEntry {\n run_id: string\n status: string\n started_at: string\n duration_ms: number\n}\n\nexport default async function scriptsLogs(name: string, runId?: string, options?: { live?: boolean }): Promise<void> {\n if (options?.live) {\n const session = await loadSession()\n if (!session) { console.error('Not authenticated'); process.exit(1) }\n const apiBase = getApiBase().replace(/^http/, 'ws')\n const ws = new WebSocket(`${apiBase}/api/v1/scripts/${name}/logs/live`, {\n headers: { Authorization: `Bearer ${session.access_token}` },\n })\n console.log(chalk.dim(`Streaming live logs for \"${name}\"... (Ctrl+C to stop)`))\n ws.on('message', (data: Buffer) => console.log(data.toString()))\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 return\n }\n\n if (runId) {\n const data = await apiGet<{ logs: string[] }>(`/api/v1/scripts/${name}/logs/${runId}`, { authenticated: true })\n for (const line of data.logs || []) {\n console.log(line)\n }\n return\n }\n\n const spinner = createSpinner('Fetching run history...')\n spinner.start()\n const data = await apiGet<{ runs: RunEntry[] }>(`/api/v1/scripts/${name}/runs`, { authenticated: true })\n spinner.stop()\n const rows = (data.runs || []).map(r => ({\n id: chalk.dim(r.run_id.slice(0, 8)),\n status: r.status === 'success' ? chalk.green('✓') : r.status === 'failed' ? chalk.red('✗') : chalk.yellow('○'),\n started: r.started_at ? formatRelative(r.started_at) : '-',\n duration: r.duration_ms ? `${(r.duration_ms / 1000).toFixed(1)}s` : '-',\n }))\n console.log(renderTable(rows, [\n { key: 'id', label: 'Run' },\n { key: 'status', label: '' },\n { key: 'started', label: 'Started' },\n { key: 'duration', label: 'Duration' },\n ]))\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/scripts/scripts-logs.ts"],"names":["scriptsLogs","name","runId","options","session","loadSession","apiBase","getApiBase","ws","WebSocket","chalk","data","err","apiGet","line","spinner","createSpinner","rows","r","formatRelative","renderTable"],"mappings":"2SAgBA,eAAOA,CAAAA,CAAmCC,CAAAA,CAAcC,CAAAA,CAAgBC,CAAAA,CAA6C,CACnH,GAAIA,CAAAA,EAAS,IAAA,CAAM,CACjB,IAAMC,CAAAA,CAAU,MAAMC,CAAAA,EAAY,CAC7BD,CAAAA,GAAW,OAAA,CAAQ,KAAA,CAAM,mBAAmB,CAAA,CAAG,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,CAAA,CAClE,IAAME,CAAAA,CAAUC,CAAAA,EAAW,CAAE,OAAA,CAAQ,OAAA,CAAS,IAAI,CAAA,CAC5CC,CAAAA,CAAK,IAAIC,SAAAA,CAAU,CAAA,EAAGH,CAAO,CAAA,gBAAA,EAAmBL,CAAI,CAAA,UAAA,CAAA,CAAc,CACtE,OAAA,CAAS,CAAE,aAAA,CAAe,CAAA,OAAA,EAAUG,CAAAA,CAAQ,YAAY,CAAA,CAAG,CAC7D,CAAC,CAAA,CACD,OAAA,CAAQ,GAAA,CAAIM,CAAAA,CAAM,IAAI,CAAA,yBAAA,EAA4BT,CAAI,CAAA,qBAAA,CAAuB,CAAC,CAAA,CAC9EO,CAAAA,CAAG,EAAA,CAAG,SAAA,CAAYG,CAAAA,EAAiB,OAAA,CAAQ,GAAA,CAAIA,CAAAA,CAAK,QAAA,EAAU,CAAC,CAAA,CAC/DH,CAAAA,CAAG,EAAA,CAAG,OAAA,CAAUI,CAAAA,EAAQ,CAAE,OAAA,CAAQ,KAAA,CAAMF,CAAAA,CAAM,GAAA,CAAI,CAAA,OAAA,EAAUE,CAAAA,CAAI,OAAO,CAAA,CAAE,CAAC,CAAA,CAAG,OAAA,CAAQ,IAAA,CAAK,CAAC,EAAE,CAAC,CAAA,CAC9F,OAAA,CAAQ,EAAA,CAAG,QAAA,CAAU,IAAM,CAAEJ,CAAAA,CAAG,KAAA,EAAM,CAAG,OAAA,CAAQ,IAAA,CAAK,CAAC,EAAE,CAAC,CAAA,CAC1D,MACF,CAEA,GAAIN,CAAAA,CAAO,CACT,IAAMS,CAAAA,CAAO,MAAME,CAAAA,CAA2B,CAAA,gBAAA,EAAmBZ,CAAI,CAAA,MAAA,EAASC,CAAK,GAAI,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAC9G,IAAA,IAAWY,CAAAA,IAAQH,CAAAA,CAAK,IAAA,EAAQ,EAAC,CAC/B,OAAA,CAAQ,GAAA,CAAIG,CAAI,CAAA,CAElB,MACF,CAEA,IAAMC,CAAAA,CAAUC,CAAAA,CAAc,yBAAyB,CAAA,CACvDD,CAAAA,CAAQ,KAAA,EAAM,CACd,IAAMJ,CAAAA,CAAO,MAAME,CAAAA,CAA6B,CAAA,gBAAA,EAAmBZ,CAAI,CAAA,KAAA,CAAA,CAAS,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CACvGc,CAAAA,CAAQ,IAAA,EAAK,CACb,IAAME,CAAAA,CAAAA,CAAQN,CAAAA,CAAK,IAAA,EAAQ,EAAC,EAAG,GAAA,CAAIO,CAAAA,GAAM,CACvC,EAAA,CAAIR,CAAAA,CAAM,GAAA,CAAIQ,CAAAA,CAAE,MAAA,CAAO,KAAA,CAAM,CAAA,CAAG,CAAC,CAAC,CAAA,CAClC,MAAA,CAAQA,CAAAA,CAAE,MAAA,GAAW,SAAA,CAAYR,CAAAA,CAAM,MAAM,QAAG,CAAA,CAAIQ,CAAAA,CAAE,MAAA,GAAW,QAAA,CAAWR,CAAAA,CAAM,GAAA,CAAI,QAAG,CAAA,CAAIA,CAAAA,CAAM,MAAA,CAAO,QAAG,CAAA,CAC7G,OAAA,CAASQ,CAAAA,CAAE,UAAA,CAAaC,CAAAA,CAAeD,CAAAA,CAAE,UAAU,CAAA,CAAI,GAAA,CACvD,QAAA,CAAUA,CAAAA,CAAE,WAAA,CAAc,CAAA,EAAA,CAAIA,CAAAA,CAAE,WAAA,CAAc,GAAA,EAAM,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAA,CAAA,CAAM,GACtE,CAAA,CAAE,CAAA,CACF,OAAA,CAAQ,GAAA,CAAIE,GAAAA,CAAYH,CAAAA,CAAM,CAC5B,CAAE,GAAA,CAAK,IAAA,CAAM,KAAA,CAAO,KAAM,CAAA,CAC1B,CAAE,GAAA,CAAK,QAAA,CAAU,KAAA,CAAO,EAAG,CAAA,CAC3B,CAAE,GAAA,CAAK,SAAA,CAAW,KAAA,CAAO,SAAU,CAAA,CACnC,CAAE,GAAA,CAAK,UAAA,CAAY,KAAA,CAAO,UAAW,CACvC,CAAC,CAAC,EACJ","file":"scripts-logs-VISO5ONQ.js","sourcesContent":["import { apiGet } from '../../lib/api/client.js'\nimport { WebSocket } from 'ws'\nimport { renderTable } from '../../lib/output/table.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { formatRelative } from '../../lib/utils/format.js'\nimport { loadSession } from '../../lib/auth/session.js'\nimport { getApiBase } from '../../lib/api/cert-pin.js'\nimport chalk from 'chalk'\n\ninterface RunEntry {\n run_id: string\n status: string\n started_at: string\n duration_ms: number\n}\n\nexport default async function scriptsLogs(name: string, runId?: string, options?: { live?: boolean }): Promise<void> {\n if (options?.live) {\n const session = await loadSession()\n if (!session) { console.error('Not authenticated'); process.exit(1) }\n const apiBase = getApiBase().replace(/^http/, 'ws')\n const ws = new WebSocket(`${apiBase}/api/v1/scripts/${name}/logs/live`, {\n headers: { Authorization: `Bearer ${session.access_token}` },\n })\n console.log(chalk.dim(`Streaming live logs for \"${name}\"... (Ctrl+C to stop)`))\n ws.on('message', (data: Buffer) => console.log(data.toString()))\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 return\n }\n\n if (runId) {\n const data = await apiGet<{ logs: string[] }>(`/api/v1/scripts/${name}/logs/${runId}`, { authenticated: true })\n for (const line of data.logs || []) {\n console.log(line)\n }\n return\n }\n\n const spinner = createSpinner('Fetching run history...')\n spinner.start()\n const data = await apiGet<{ runs: RunEntry[] }>(`/api/v1/scripts/${name}/runs`, { authenticated: true })\n spinner.stop()\n const rows = (data.runs || []).map(r => ({\n id: chalk.dim(r.run_id.slice(0, 8)),\n status: r.status === 'success' ? chalk.green('✓') : r.status === 'failed' ? chalk.red('✗') : chalk.yellow('○'),\n started: r.started_at ? formatRelative(r.started_at) : '-',\n duration: r.duration_ms ? `${(r.duration_ms / 1000).toFixed(1)}s` : '-',\n }))\n console.log(renderTable(rows, [\n { key: 'id', label: 'Run' },\n { key: 'status', label: '' },\n { key: 'started', label: 'Started' },\n { key: 'duration', label: 'Duration' },\n ]))\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {b}from'./chunk-FYFPDKJM.js';import {e}from'./chunk-BC2OVPRV.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {j,f,m,g}from'./chunk-QT7R3AXE.js';import'./chunk-4NTVRCZM.js';async function l(r,n){let t={};if(n?.env)for(let d of n.env){let[o,...a]=d.split("=");o&&(t[o]=a.join("="));}if(n?.dryRun){j(`[DRY-RUN] Would run script "${r}" with env: ${JSON.stringify(t)}`);return}let i=b(`Running script "${r}"...`);i.start();let s=await e("/api/v1/scripts/run",{name:r,env:t},{authenticated:true});if(i.succeed(),f()){m(s);return}g(`Script "${r}" triggered (run: ${s.run_id.slice(0,8)})`);}export{l as default};//# sourceMappingURL=scripts-run-3NBYKEMQ.js.map
2
+ //# sourceMappingURL=scripts-run-3NBYKEMQ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/scripts/scripts-run.ts"],"names":["scriptsRun","name","options","envVars","e","k","v","logInfo","spinner","createSpinner","result","apiPost","isJsonMode","logJSON","logSuccess"],"mappings":"kOAUA,eAAOA,CAAAA,CAAkCC,EAAcC,CAAAA,CAAqC,CAC1F,IAAMC,CAAAA,CAAkC,EAAC,CACzC,GAAID,CAAAA,EAAS,GAAA,CACX,QAAWE,CAAAA,IAAKF,CAAAA,CAAQ,IAAK,CAC3B,GAAM,CAACG,CAAAA,CAAG,GAAGC,CAAC,CAAA,CAAIF,CAAAA,CAAE,KAAA,CAAM,GAAG,CAAA,CACzBC,CAAAA,GAAGF,EAAQE,CAAC,CAAA,CAAIC,EAAE,IAAA,CAAK,GAAG,CAAA,EAChC,CAGF,GAAIJ,CAAAA,EAAS,OAAQ,CACnBK,CAAAA,CAAQ,+BAA+BN,CAAI,CAAA,YAAA,EAAe,KAAK,SAAA,CAAUE,CAAO,CAAC,CAAA,CAAE,CAAA,CACnF,MACF,CAEA,IAAMK,CAAAA,CAAUC,EAAc,CAAA,gBAAA,EAAmBR,CAAI,MAAM,CAAA,CAC3DO,CAAAA,CAAQ,KAAA,EAAM,CACd,IAAME,CAAAA,CAAS,MAAMC,CAAAA,CAA4C,qBAAA,CAAuB,CAAE,IAAA,CAAAV,CAAAA,CAAM,IAAKE,CAAQ,CAAA,CAAG,CAAE,aAAA,CAAe,IAAK,CAAC,EAGvI,GAFAK,CAAAA,CAAQ,SAAQ,CAEZI,CAAAA,GAAc,CAChBC,CAAAA,CAAQH,CAAM,CAAA,CACd,MACF,CACAI,EAAW,CAAA,QAAA,EAAWb,CAAI,qBAAqBS,CAAAA,CAAO,MAAA,CAAO,MAAM,CAAA,CAAG,CAAC,CAAC,CAAA,CAAA,CAAG,EAC7E","file":"scripts-run-K2LFPFTH.js","sourcesContent":["import { apiPost } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess, logJSON, logInfo } from '../../lib/output/logger.js'\nimport { isJsonMode } from '../../lib/output/logger.js'\n\ninterface RunOptions {\n env?: string[]\n dryRun?: boolean\n}\n\nexport default async function scriptsRun(name: string, options?: RunOptions): Promise<void> {\n const envVars: Record<string, string> = {}\n if (options?.env) {\n for (const e of options.env) {\n const [k, ...v] = e.split('=')\n if (k) envVars[k] = v.join('=')\n }\n }\n\n if (options?.dryRun) {\n logInfo(`[DRY-RUN] Would run script \"${name}\" with env: ${JSON.stringify(envVars)}`)\n return\n }\n\n const spinner = createSpinner(`Running script \"${name}\"...`)\n spinner.start()\n const result = await apiPost<{ run_id: string; status: string }>('/api/v1/scripts/run', { name, env: envVars }, { authenticated: true })\n spinner.succeed()\n\n if (isJsonMode()) {\n logJSON(result)\n return\n }\n logSuccess(`Script \"${name}\" triggered (run: ${result.run_id.slice(0, 8)})`)\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/scripts/scripts-run.ts"],"names":["scriptsRun","name","options","envVars","e","k","v","logInfo","spinner","createSpinner","result","apiPost","isJsonMode","logJSON","logSuccess"],"mappings":"sMAUA,eAAOA,CAAAA,CAAkCC,EAAcC,CAAAA,CAAqC,CAC1F,IAAMC,CAAAA,CAAkC,EAAC,CACzC,GAAID,CAAAA,EAAS,GAAA,CACX,QAAWE,CAAAA,IAAKF,CAAAA,CAAQ,IAAK,CAC3B,GAAM,CAACG,CAAAA,CAAG,GAAGC,CAAC,CAAA,CAAIF,CAAAA,CAAE,KAAA,CAAM,GAAG,CAAA,CACzBC,CAAAA,GAAGF,EAAQE,CAAC,CAAA,CAAIC,EAAE,IAAA,CAAK,GAAG,CAAA,EAChC,CAGF,GAAIJ,CAAAA,EAAS,OAAQ,CACnBK,CAAAA,CAAQ,+BAA+BN,CAAI,CAAA,YAAA,EAAe,KAAK,SAAA,CAAUE,CAAO,CAAC,CAAA,CAAE,CAAA,CACnF,MACF,CAEA,IAAMK,CAAAA,CAAUC,EAAc,CAAA,gBAAA,EAAmBR,CAAI,MAAM,CAAA,CAC3DO,CAAAA,CAAQ,KAAA,EAAM,CACd,IAAME,CAAAA,CAAS,MAAMC,CAAAA,CAA4C,qBAAA,CAAuB,CAAE,IAAA,CAAAV,CAAAA,CAAM,IAAKE,CAAQ,CAAA,CAAG,CAAE,aAAA,CAAe,IAAK,CAAC,EAGvI,GAFAK,CAAAA,CAAQ,SAAQ,CAEZI,CAAAA,GAAc,CAChBC,CAAAA,CAAQH,CAAM,CAAA,CACd,MACF,CACAI,EAAW,CAAA,QAAA,EAAWb,CAAI,qBAAqBS,CAAAA,CAAO,MAAA,CAAO,MAAM,CAAA,CAAG,CAAC,CAAC,CAAA,CAAA,CAAG,EAC7E","file":"scripts-run-3NBYKEMQ.js","sourcesContent":["import { apiPost } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess, logJSON, logInfo } from '../../lib/output/logger.js'\nimport { isJsonMode } from '../../lib/output/logger.js'\n\ninterface RunOptions {\n env?: string[]\n dryRun?: boolean\n}\n\nexport default async function scriptsRun(name: string, options?: RunOptions): Promise<void> {\n const envVars: Record<string, string> = {}\n if (options?.env) {\n for (const e of options.env) {\n const [k, ...v] = e.split('=')\n if (k) envVars[k] = v.join('=')\n }\n }\n\n if (options?.dryRun) {\n logInfo(`[DRY-RUN] Would run script \"${name}\" with env: ${JSON.stringify(envVars)}`)\n return\n }\n\n const spinner = createSpinner(`Running script \"${name}\"...`)\n spinner.start()\n const result = await apiPost<{ run_id: string; status: string }>('/api/v1/scripts/run', { name, env: envVars }, { authenticated: true })\n spinner.succeed()\n\n if (isJsonMode()) {\n logJSON(result)\n return\n }\n logSuccess(`Script \"${name}\" triggered (run: ${result.run_id.slice(0, 8)})`)\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {b}from'./chunk-FYFPDKJM.js';import {d}from'./chunk-BC2OVPRV.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {c}from'./chunk-G4JU7IUC.js';import {f,m,l}from'./chunk-QT7R3AXE.js';import'./chunk-4NTVRCZM.js';import t from'chalk';async function h(r){let n=b(`Checking status of "${r}"...`);n.start();let u=await d(`/api/v1/scripts/${r}/status`,{authenticated:true});n.stop();let e=u.status;if(f()){m(e);return}l(""),l(` ${t.bold(e.name)}`),l(t.dim(" \u2500\u2500\u2500".repeat(8)));let c$1=e.health==="healthy"?t.green:e.health==="degraded"?t.yellow:t.red;l(` ${t.bold("Health:")} ${c$1("\u25CF")} ${e.health}`),l(` ${t.bold("Enabled:")} ${e.enabled?t.green("yes"):t.red("no")}`),l(` ${t.bold("Running:")} ${e.running?t.yellow("yes"):t.green("no")}`),l(` ${t.bold("Last OK:")} ${e.last_success?c(e.last_success):t.dim("never")}`),l(` ${t.bold("Last Fail:")} ${e.last_failure?c(e.last_failure):t.dim("never")}`),l("");}export{h as default};//# sourceMappingURL=scripts-status-45K3IL5L.js.map
2
+ //# sourceMappingURL=scripts-status-45K3IL5L.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/scripts/scripts-status.ts"],"names":["scriptsStatus","name","spinner","createSpinner","data","apiGet","s","isJsonMode","logJSON","logRaw","chalk","healthColor","formatRelative"],"mappings":"yRAgBA,eAAOA,EAAqCC,CAAAA,CAA6B,CACvE,IAAMC,CAAAA,CAAUC,CAAAA,CAAc,CAAA,oBAAA,EAAuBF,CAAI,MAAM,CAAA,CAC/DC,CAAAA,CAAQ,OAAM,CACd,IAAME,EAAO,MAAMC,CAAAA,CAAiC,CAAA,gBAAA,EAAmBJ,CAAI,UAAW,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAC7GC,EAAQ,IAAA,EAAK,CACb,IAAMI,CAAAA,CAAIF,EAAK,MAAA,CAEf,GAAIG,GAAW,CAAG,CAChBC,EAAQF,CAAC,CAAA,CACT,MACF,CAEAG,EAAO,EAAE,CAAA,CACTA,EAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,KAAKJ,CAAAA,CAAE,IAAI,CAAC,CAAA,CAAE,EAChCG,CAAAA,CAAOC,CAAAA,CAAM,IAAI,sBAAA,CAAQ,MAAA,CAAO,CAAC,CAAC,CAAC,CAAA,CACnC,IAAMC,IAAcL,CAAAA,CAAE,MAAA,GAAW,UAAYI,CAAAA,CAAM,KAAA,CAAQJ,EAAE,MAAA,GAAW,UAAA,CAAaI,CAAAA,CAAM,MAAA,CAASA,EAAM,GAAA,CAC1GD,CAAAA,CAAO,KAAKC,CAAAA,CAAM,IAAA,CAAK,SAAS,CAAC,CAAA,GAAA,EAAMC,GAAAA,CAAY,QAAG,CAAC,CAAA,CAAA,EAAIL,CAAAA,CAAE,MAAM,CAAA,CAAE,CAAA,CACrEG,EAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,IAAA,CAAK,UAAU,CAAC,CAAA,EAAA,EAAKJ,CAAAA,CAAE,QAAUI,CAAAA,CAAM,KAAA,CAAM,KAAK,CAAA,CAAIA,CAAAA,CAAM,GAAA,CAAI,IAAI,CAAC,CAAA,CAAE,CAAA,CACzFD,EAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,KAAK,UAAU,CAAC,CAAA,EAAA,EAAKJ,CAAAA,CAAE,QAAUI,CAAAA,CAAM,MAAA,CAAO,KAAK,CAAA,CAAIA,CAAAA,CAAM,MAAM,IAAI,CAAC,CAAA,CAAE,CAAA,CAC5FD,EAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,KAAK,UAAU,CAAC,KAAKJ,CAAAA,CAAE,YAAA,CAAeM,CAAAA,CAAeN,CAAAA,CAAE,YAAY,CAAA,CAAII,CAAAA,CAAM,IAAI,OAAO,CAAC,EAAE,CAAA,CAC7GD,CAAAA,CAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,KAAK,YAAY,CAAC,IAAIJ,CAAAA,CAAE,YAAA,CAAeM,EAAeN,CAAAA,CAAE,YAAY,CAAA,CAAII,CAAAA,CAAM,IAAI,OAAO,CAAC,EAAE,CAAA,CAC9GD,CAAAA,CAAO,EAAE,EACX","file":"scripts-status-XGI5SMWL.js","sourcesContent":["import { apiGet } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logJSON, logRaw } from '../../lib/output/logger.js'\nimport { isJsonMode } from '../../lib/output/logger.js'\nimport { formatRelative } from '../../lib/utils/format.js'\nimport chalk from 'chalk'\n\ninterface ScriptStatus {\n name: string\n enabled: boolean\n running: boolean\n last_success: string | null\n last_failure: string | null\n health: 'healthy' | 'degraded' | 'failing'\n}\n\nexport default async function scriptsStatus(name: string): Promise<void> {\n const spinner = createSpinner(`Checking status of \"${name}\"...`)\n spinner.start()\n const data = await apiGet<{ status: ScriptStatus }>(`/api/v1/scripts/${name}/status`, { authenticated: true })\n spinner.stop()\n const s = data.status\n\n if (isJsonMode()) {\n logJSON(s)\n return\n }\n\n logRaw('')\n logRaw(` ${chalk.bold(s.name)}`)\n logRaw(chalk.dim(' ───'.repeat(8)))\n const healthColor = s.health === 'healthy' ? chalk.green : s.health === 'degraded' ? chalk.yellow : chalk.red\n logRaw(` ${chalk.bold('Health:')} ${healthColor('●')} ${s.health}`)\n logRaw(` ${chalk.bold('Enabled:')} ${s.enabled ? chalk.green('yes') : chalk.red('no')}`)\n logRaw(` ${chalk.bold('Running:')} ${s.running ? chalk.yellow('yes') : chalk.green('no')}`)\n logRaw(` ${chalk.bold('Last OK:')} ${s.last_success ? formatRelative(s.last_success) : chalk.dim('never')}`)\n logRaw(` ${chalk.bold('Last Fail:')} ${s.last_failure ? formatRelative(s.last_failure) : chalk.dim('never')}`)\n logRaw('')\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/scripts/scripts-status.ts"],"names":["scriptsStatus","name","spinner","createSpinner","data","apiGet","s","isJsonMode","logJSON","logRaw","chalk","healthColor","formatRelative"],"mappings":"6PAgBA,eAAOA,EAAqCC,CAAAA,CAA6B,CACvE,IAAMC,CAAAA,CAAUC,CAAAA,CAAc,CAAA,oBAAA,EAAuBF,CAAI,MAAM,CAAA,CAC/DC,CAAAA,CAAQ,OAAM,CACd,IAAME,EAAO,MAAMC,CAAAA,CAAiC,CAAA,gBAAA,EAAmBJ,CAAI,UAAW,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAC7GC,EAAQ,IAAA,EAAK,CACb,IAAMI,CAAAA,CAAIF,EAAK,MAAA,CAEf,GAAIG,GAAW,CAAG,CAChBC,EAAQF,CAAC,CAAA,CACT,MACF,CAEAG,EAAO,EAAE,CAAA,CACTA,EAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,KAAKJ,CAAAA,CAAE,IAAI,CAAC,CAAA,CAAE,EAChCG,CAAAA,CAAOC,CAAAA,CAAM,IAAI,sBAAA,CAAQ,MAAA,CAAO,CAAC,CAAC,CAAC,CAAA,CACnC,IAAMC,IAAcL,CAAAA,CAAE,MAAA,GAAW,UAAYI,CAAAA,CAAM,KAAA,CAAQJ,EAAE,MAAA,GAAW,UAAA,CAAaI,CAAAA,CAAM,MAAA,CAASA,EAAM,GAAA,CAC1GD,CAAAA,CAAO,KAAKC,CAAAA,CAAM,IAAA,CAAK,SAAS,CAAC,CAAA,GAAA,EAAMC,GAAAA,CAAY,QAAG,CAAC,CAAA,CAAA,EAAIL,CAAAA,CAAE,MAAM,CAAA,CAAE,CAAA,CACrEG,EAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,IAAA,CAAK,UAAU,CAAC,CAAA,EAAA,EAAKJ,CAAAA,CAAE,QAAUI,CAAAA,CAAM,KAAA,CAAM,KAAK,CAAA,CAAIA,CAAAA,CAAM,GAAA,CAAI,IAAI,CAAC,CAAA,CAAE,CAAA,CACzFD,EAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,KAAK,UAAU,CAAC,CAAA,EAAA,EAAKJ,CAAAA,CAAE,QAAUI,CAAAA,CAAM,MAAA,CAAO,KAAK,CAAA,CAAIA,CAAAA,CAAM,MAAM,IAAI,CAAC,CAAA,CAAE,CAAA,CAC5FD,EAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,KAAK,UAAU,CAAC,KAAKJ,CAAAA,CAAE,YAAA,CAAeM,CAAAA,CAAeN,CAAAA,CAAE,YAAY,CAAA,CAAII,CAAAA,CAAM,IAAI,OAAO,CAAC,EAAE,CAAA,CAC7GD,CAAAA,CAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,KAAK,YAAY,CAAC,IAAIJ,CAAAA,CAAE,YAAA,CAAeM,EAAeN,CAAAA,CAAE,YAAY,CAAA,CAAII,CAAAA,CAAM,IAAI,OAAO,CAAC,EAAE,CAAA,CAC9GD,CAAAA,CAAO,EAAE,EACX","file":"scripts-status-45K3IL5L.js","sourcesContent":["import { apiGet } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logJSON, logRaw } from '../../lib/output/logger.js'\nimport { isJsonMode } from '../../lib/output/logger.js'\nimport { formatRelative } from '../../lib/utils/format.js'\nimport chalk from 'chalk'\n\ninterface ScriptStatus {\n name: string\n enabled: boolean\n running: boolean\n last_success: string | null\n last_failure: string | null\n health: 'healthy' | 'degraded' | 'failing'\n}\n\nexport default async function scriptsStatus(name: string): Promise<void> {\n const spinner = createSpinner(`Checking status of \"${name}\"...`)\n spinner.start()\n const data = await apiGet<{ status: ScriptStatus }>(`/api/v1/scripts/${name}/status`, { authenticated: true })\n spinner.stop()\n const s = data.status\n\n if (isJsonMode()) {\n logJSON(s)\n return\n }\n\n logRaw('')\n logRaw(` ${chalk.bold(s.name)}`)\n logRaw(chalk.dim(' ───'.repeat(8)))\n const healthColor = s.health === 'healthy' ? chalk.green : s.health === 'degraded' ? chalk.yellow : chalk.red\n logRaw(` ${chalk.bold('Health:')} ${healthColor('●')} ${s.health}`)\n logRaw(` ${chalk.bold('Enabled:')} ${s.enabled ? chalk.green('yes') : chalk.red('no')}`)\n logRaw(` ${chalk.bold('Running:')} ${s.running ? chalk.yellow('yes') : chalk.green('no')}`)\n logRaw(` ${chalk.bold('Last OK:')} ${s.last_success ? formatRelative(s.last_success) : chalk.dim('never')}`)\n logRaw(` ${chalk.bold('Last Fail:')} ${s.last_failure ? formatRelative(s.last_failure) : chalk.dim('never')}`)\n logRaw('')\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {b}from'./chunk-FYFPDKJM.js';import {e as e$1}from'./chunk-BC2OVPRV.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {h,f,m,g as g$1}from'./chunk-QT7R3AXE.js';import'./chunk-4NTVRCZM.js';import d from'fs';import e from'path';async function g(n){let r=n?e.resolve(n):e.join(process.cwd(),".squid.yml");d.existsSync(r)||(h(`File not found: ${r}`),process.exit(1));let m$1=d.readFileSync(r,"utf-8"),i=b("Validating...");i.start();try{let o=await e$1("/api/v1/scripts/validate",{filename:e.basename(r),content:m$1});if(i.succeed(),f()){m(o);return}if(o.valid&&g$1("Valid SquidScript!"),o.warnings?.length)for(let t of o.warnings)console.log(` \u26A0 ${t}`);if(o.errors?.length)for(let t of o.errors)console.log(` \u2717 ${t}`);}catch{i.fail(),h("Validation failed"),process.exit(1);}}export{g as default};//# sourceMappingURL=scripts-validate-JZPIIMIX.js.map
2
+ //# sourceMappingURL=scripts-validate-JZPIIMIX.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/scripts/scripts-validate.ts"],"names":["scriptsValidate","filePath","targetPath","path","fs","logError","content","spinner","createSpinner","result","apiPost","isJsonMode","logJSON","logSuccess","w","e"],"mappings":"sRAOA,eAAOA,CAAAA,CAAuCC,CAAAA,CAAkC,CAC9E,IAAMC,CAAAA,CAAaD,CAAAA,CAAWE,CAAAA,CAAK,OAAA,CAAQF,CAAQ,CAAA,CAAIE,CAAAA,CAAK,IAAA,CAAK,OAAA,CAAQ,GAAA,EAAI,CAAG,YAAY,CAAA,CAEvFC,CAAAA,CAAG,UAAA,CAAWF,CAAU,CAAA,GAC3BG,CAAAA,CAAS,CAAA,gBAAA,EAAmBH,CAAU,CAAA,CAAE,CAAA,CACxC,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,CAAA,CAGhB,IAAMI,GAAAA,CAAUF,CAAAA,CAAG,YAAA,CAAaF,CAAAA,CAAY,OAAO,CAAA,CAE7CK,CAAAA,CAAUC,CAAAA,CAAc,eAAe,CAAA,CAC7CD,CAAAA,CAAQ,KAAA,EAAM,CACd,GAAI,CACF,IAAME,CAAAA,CAAS,MAAMC,GAAAA,CAAoE,0BAAA,CAA4B,CACnH,QAAA,CAAUP,CAAAA,CAAK,QAAA,CAASD,CAAU,CAAA,CAClC,OAAA,CAAAI,GACF,CAAC,CAAA,CAED,GADAC,CAAAA,CAAQ,OAAA,EAAQ,CACZI,CAAAA,EAAW,CAAG,CAChBC,CAAAA,CAAQH,CAAM,CAAA,CACd,MACF,CAIA,GAHIA,CAAAA,CAAO,KAAA,EACTI,GAAAA,CAAW,oBAAoB,CAAA,CAE7BJ,CAAAA,CAAO,QAAA,EAAU,MAAA,CACnB,IAAA,IAAWK,CAAAA,IAAKL,CAAAA,CAAO,QAAA,CACrB,OAAA,CAAQ,GAAA,CAAI,CAAA,SAAA,EAAOK,CAAC,CAAA,CAAE,CAAA,CAG1B,GAAIL,CAAAA,CAAO,MAAA,EAAQ,MAAA,CACjB,IAAA,IAAWM,CAAAA,IAAKN,CAAAA,CAAO,MAAA,CACrB,OAAA,CAAQ,GAAA,CAAI,CAAA,SAAA,EAAOM,CAAC,CAAA,CAAE,EAG5B,CAAA,KAAQ,CACNR,CAAAA,CAAQ,IAAA,EAAK,CACbF,CAAAA,CAAS,mBAAmB,CAAA,CAC5B,OAAA,CAAQ,IAAA,CAAK,CAAC,EAChB,CACF","file":"scripts-validate-7EZXPO3Q.js","sourcesContent":["import fs from 'node:fs'\nimport path from 'node:path'\nimport { apiPost } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess, logError, logJSON } from '../../lib/output/logger.js'\nimport { isJsonMode } from '../../lib/output/logger.js'\n\nexport default async function scriptsValidate(filePath?: string): Promise<void> {\n const targetPath = filePath ? path.resolve(filePath) : path.join(process.cwd(), '.squid.yml')\n\n if (!fs.existsSync(targetPath)) {\n logError(`File not found: ${targetPath}`)\n process.exit(1)\n }\n\n const content = fs.readFileSync(targetPath, 'utf-8')\n\n const spinner = createSpinner('Validating...')\n spinner.start()\n try {\n const result = await apiPost<{ valid: boolean; errors?: string[]; warnings?: string[] }>('/api/v1/scripts/validate', {\n filename: path.basename(targetPath),\n content,\n })\n spinner.succeed()\n if (isJsonMode()) {\n logJSON(result)\n return\n }\n if (result.valid) {\n logSuccess('Valid SquidScript!')\n }\n if (result.warnings?.length) {\n for (const w of result.warnings) {\n console.log(` ⚠ ${w}`)\n }\n }\n if (result.errors?.length) {\n for (const e of result.errors) {\n console.log(` ✗ ${e}`)\n }\n }\n } catch {\n spinner.fail()\n logError('Validation failed')\n process.exit(1)\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/scripts/scripts-validate.ts"],"names":["scriptsValidate","filePath","targetPath","path","fs","logError","content","spinner","createSpinner","result","apiPost","isJsonMode","logJSON","logSuccess","w","e"],"mappings":"0PAOA,eAAOA,CAAAA,CAAuCC,CAAAA,CAAkC,CAC9E,IAAMC,CAAAA,CAAaD,CAAAA,CAAWE,CAAAA,CAAK,OAAA,CAAQF,CAAQ,CAAA,CAAIE,CAAAA,CAAK,IAAA,CAAK,OAAA,CAAQ,GAAA,EAAI,CAAG,YAAY,CAAA,CAEvFC,CAAAA,CAAG,UAAA,CAAWF,CAAU,CAAA,GAC3BG,CAAAA,CAAS,CAAA,gBAAA,EAAmBH,CAAU,CAAA,CAAE,CAAA,CACxC,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,CAAA,CAGhB,IAAMI,GAAAA,CAAUF,CAAAA,CAAG,YAAA,CAAaF,CAAAA,CAAY,OAAO,CAAA,CAE7CK,CAAAA,CAAUC,CAAAA,CAAc,eAAe,CAAA,CAC7CD,CAAAA,CAAQ,KAAA,EAAM,CACd,GAAI,CACF,IAAME,CAAAA,CAAS,MAAMC,GAAAA,CAAoE,0BAAA,CAA4B,CACnH,QAAA,CAAUP,CAAAA,CAAK,QAAA,CAASD,CAAU,CAAA,CAClC,OAAA,CAAAI,GACF,CAAC,CAAA,CAED,GADAC,CAAAA,CAAQ,OAAA,EAAQ,CACZI,CAAAA,EAAW,CAAG,CAChBC,CAAAA,CAAQH,CAAM,CAAA,CACd,MACF,CAIA,GAHIA,CAAAA,CAAO,KAAA,EACTI,GAAAA,CAAW,oBAAoB,CAAA,CAE7BJ,CAAAA,CAAO,QAAA,EAAU,MAAA,CACnB,IAAA,IAAWK,CAAAA,IAAKL,CAAAA,CAAO,QAAA,CACrB,OAAA,CAAQ,GAAA,CAAI,CAAA,SAAA,EAAOK,CAAC,CAAA,CAAE,CAAA,CAG1B,GAAIL,CAAAA,CAAO,MAAA,EAAQ,MAAA,CACjB,IAAA,IAAWM,CAAAA,IAAKN,CAAAA,CAAO,MAAA,CACrB,OAAA,CAAQ,GAAA,CAAI,CAAA,SAAA,EAAOM,CAAC,CAAA,CAAE,EAG5B,CAAA,KAAQ,CACNR,CAAAA,CAAQ,IAAA,EAAK,CACbF,CAAAA,CAAS,mBAAmB,CAAA,CAC5B,OAAA,CAAQ,IAAA,CAAK,CAAC,EAChB,CACF","file":"scripts-validate-JZPIIMIX.js","sourcesContent":["import fs from 'node:fs'\nimport path from 'node:path'\nimport { apiPost } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess, logError, logJSON } from '../../lib/output/logger.js'\nimport { isJsonMode } from '../../lib/output/logger.js'\n\nexport default async function scriptsValidate(filePath?: string): Promise<void> {\n const targetPath = filePath ? path.resolve(filePath) : path.join(process.cwd(), '.squid.yml')\n\n if (!fs.existsSync(targetPath)) {\n logError(`File not found: ${targetPath}`)\n process.exit(1)\n }\n\n const content = fs.readFileSync(targetPath, 'utf-8')\n\n const spinner = createSpinner('Validating...')\n spinner.start()\n try {\n const result = await apiPost<{ valid: boolean; errors?: string[]; warnings?: string[] }>('/api/v1/scripts/validate', {\n filename: path.basename(targetPath),\n content,\n })\n spinner.succeed()\n if (isJsonMode()) {\n logJSON(result)\n return\n }\n if (result.valid) {\n logSuccess('Valid SquidScript!')\n }\n if (result.warnings?.length) {\n for (const w of result.warnings) {\n console.log(` ⚠ ${w}`)\n }\n }\n if (result.errors?.length) {\n for (const e of result.errors) {\n console.log(` ✗ ${e}`)\n }\n }\n } catch {\n spinner.fail()\n logError('Validation failed')\n process.exit(1)\n }\n}\n"]}
@@ -1,2 +1,2 @@
1
- import {e as e$1}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import {j,h}from'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.js';import g from'path';import p from'chokidar';import u from'fs';import e from'chalk';async function f(){let i=process.cwd();j(`Watching for .squid.yml changes in ${e.dim(i)}...`),console.log(e.dim("Press Ctrl+C to stop"));let s=p.watch("**/.squid.yml",{cwd:i,ignored:/node_modules/,persistent:true,ignoreInitial:false}),r=null;s.on("change",o=>{r&&clearTimeout(r),r=setTimeout(async()=>{let d=g.join(i,o);try{let t=u.readFileSync(d,"utf-8"),a=await e$1("/api/v1/scripts/validate",{filename:o,content:t}),c=e.dim(new Date().toLocaleTimeString());a.valid?console.log(`${c} ${e.green("\u2713")} ${o} \u2014 valid`):console.log(`${c} ${e.red("\u2717")} ${o} \u2014 ${a.errors?.join(", ")||"invalid"}`);}catch(t){h(`Failed to validate ${o}: ${t instanceof Error?t.message:String(t)}`);}},500);}),s.on("add",o=>{j(`Watching ${o}`);}),await new Promise(()=>{});}export{f as default};//# sourceMappingURL=scripts-watch-HN23AZLJ.js.map
2
- //# sourceMappingURL=scripts-watch-HN23AZLJ.js.map
1
+ import {e as e$1}from'./chunk-BC2OVPRV.js';import'./chunk-NDB6KXYI.js';import {j,h}from'./chunk-QT7R3AXE.js';import'./chunk-4NTVRCZM.js';import g from'path';import p from'chokidar';import u from'fs';import e from'chalk';async function f(){let i=process.cwd();j(`Watching for .squid.yml changes in ${e.dim(i)}...`),console.log(e.dim("Press Ctrl+C to stop"));let s=p.watch("**/.squid.yml",{cwd:i,ignored:/node_modules/,persistent:true,ignoreInitial:false}),r=null;s.on("change",o=>{r&&clearTimeout(r),r=setTimeout(async()=>{let d=g.join(i,o);try{let t=u.readFileSync(d,"utf-8"),a=await e$1("/api/v1/scripts/validate",{filename:o,content:t}),c=e.dim(new Date().toLocaleTimeString());a.valid?console.log(`${c} ${e.green("\u2713")} ${o} \u2014 valid`):console.log(`${c} ${e.red("\u2717")} ${o} \u2014 ${a.errors?.join(", ")||"invalid"}`);}catch(t){h(`Failed to validate ${o}: ${t instanceof Error?t.message:String(t)}`);}},500);}),s.on("add",o=>{j(`Watching ${o}`);}),await new Promise(()=>{});}export{f as default};//# sourceMappingURL=scripts-watch-XZ7MZIMK.js.map
2
+ //# sourceMappingURL=scripts-watch-XZ7MZIMK.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/scripts/scripts-watch.ts"],"names":["scriptsWatch","cwd","logInfo","chalk","watcher","chokidar","validationTimeout","filePath","absolutePath","path","content","fs","result","apiPost","timestamp","err","logError"],"mappings":"4NAOA,eAAOA,CAAAA,EAAqD,CAC1D,IAAMC,CAAAA,CAAM,OAAA,CAAQ,KAAI,CACxBC,CAAAA,CAAQ,CAAA,mCAAA,EAAsCC,CAAAA,CAAM,IAAIF,CAAG,CAAC,KAAK,CAAA,CACjE,OAAA,CAAQ,IAAIE,CAAAA,CAAM,GAAA,CAAI,sBAAsB,CAAC,CAAA,CAE7C,IAAMC,CAAAA,CAAUC,CAAAA,CAAS,MAAM,eAAA,CAAiB,CAC9C,IAAAJ,CAAAA,CACA,OAAA,CAAS,cAAA,CACT,UAAA,CAAY,KACZ,aAAA,CAAe,KACjB,CAAC,CAAA,CAEGK,CAAAA,CAA0D,KAE9DF,CAAAA,CAAQ,EAAA,CAAG,QAAA,CAAWG,CAAAA,EAAqB,CACrCD,CAAAA,EAAmB,YAAA,CAAaA,CAAiB,CAAA,CACrDA,CAAAA,CAAoB,WAAW,SAAY,CACzC,IAAME,CAAAA,CAAeC,EAAK,IAAA,CAAKR,CAAAA,CAAKM,CAAQ,CAAA,CAC5C,GAAI,CACF,IAAMG,CAAAA,CAAUC,EAAG,YAAA,CAAaH,CAAAA,CAAc,OAAO,CAAA,CAC/CI,CAAAA,CAAS,MAAMC,GAAAA,CAA+C,0BAAA,CAA4B,CAC9F,QAAA,CAAUN,CAAAA,CACV,OAAA,CAAAG,CACF,CAAC,CAAA,CACKI,CAAAA,CAAYX,EAAM,GAAA,CAAI,IAAI,MAAK,CAAE,kBAAA,EAAoB,CAAA,CACvDS,EAAO,KAAA,CACT,OAAA,CAAQ,IAAI,CAAA,EAAGE,CAAS,IAAIX,CAAAA,CAAM,KAAA,CAAM,QAAG,CAAC,IAAII,CAAQ,CAAA,aAAA,CAAU,EAElE,OAAA,CAAQ,GAAA,CAAI,GAAGO,CAAS,CAAA,CAAA,EAAIX,EAAM,GAAA,CAAI,QAAG,CAAC,CAAA,CAAA,EAAII,CAAQ,WAAMK,CAAAA,CAAO,MAAA,EAAQ,KAAK,IAAI,CAAA,EAAK,SAAS,CAAA,CAAE,EAExG,CAAA,MAASG,CAAAA,CAAK,CACZC,CAAAA,CAAS,CAAA,mBAAA,EAAsBT,CAAQ,CAAA,EAAA,EAAKQ,CAAAA,YAAe,KAAA,CAAQA,CAAAA,CAAI,QAAU,MAAA,CAAOA,CAAG,CAAC,CAAA,CAAE,EAChG,CACF,CAAA,CAAG,GAAG,EACR,CAAC,EAEDX,CAAAA,CAAQ,EAAA,CAAG,MAAQG,CAAAA,EAAqB,CACtCL,EAAQ,CAAA,SAAA,EAAYK,CAAQ,EAAE,EAChC,CAAC,EAED,MAAM,IAAI,QAAQ,IAAM,CAAC,CAAC,EAC5B","file":"scripts-watch-HN23AZLJ.js","sourcesContent":["import path from 'node:path'\nimport chokidar from 'chokidar'\nimport fs from 'node:fs'\nimport { apiPost } from '../../lib/api/client.js'\nimport chalk from 'chalk'\nimport { logError, logInfo } from '../../lib/output/logger.js'\n\nexport default async function scriptsWatch(): Promise<void> {\n const cwd = process.cwd()\n logInfo(`Watching for .squid.yml changes in ${chalk.dim(cwd)}...`)\n console.log(chalk.dim('Press Ctrl+C to stop'))\n\n const watcher = chokidar.watch('**/.squid.yml', {\n cwd,\n ignored: /node_modules/,\n persistent: true,\n ignoreInitial: false,\n })\n\n let validationTimeout: ReturnType<typeof setTimeout> | null = null\n\n watcher.on('change', (filePath: string) => {\n if (validationTimeout) clearTimeout(validationTimeout)\n validationTimeout = setTimeout(async () => {\n const absolutePath = path.join(cwd, filePath)\n try {\n const content = fs.readFileSync(absolutePath, 'utf-8')\n const result = await apiPost<{ valid: boolean; errors?: string[] }>('/api/v1/scripts/validate', {\n filename: filePath,\n content,\n })\n const timestamp = chalk.dim(new Date().toLocaleTimeString())\n if (result.valid) {\n console.log(`${timestamp} ${chalk.green('✓')} ${filePath} — valid`)\n } else {\n console.log(`${timestamp} ${chalk.red('✗')} ${filePath} — ${result.errors?.join(', ') || 'invalid'}`)\n }\n } catch (err) {\n logError(`Failed to validate ${filePath}: ${err instanceof Error ? err.message : String(err)}`)\n }\n }, 500)\n })\n\n watcher.on('add', (filePath: string) => {\n logInfo(`Watching ${filePath}`)\n })\n\n await new Promise(() => {})\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/scripts/scripts-watch.ts"],"names":["scriptsWatch","cwd","logInfo","chalk","watcher","chokidar","validationTimeout","filePath","absolutePath","path","content","fs","result","apiPost","timestamp","err","logError"],"mappings":"4NAOA,eAAOA,CAAAA,EAAqD,CAC1D,IAAMC,CAAAA,CAAM,OAAA,CAAQ,KAAI,CACxBC,CAAAA,CAAQ,CAAA,mCAAA,EAAsCC,CAAAA,CAAM,IAAIF,CAAG,CAAC,KAAK,CAAA,CACjE,OAAA,CAAQ,IAAIE,CAAAA,CAAM,GAAA,CAAI,sBAAsB,CAAC,CAAA,CAE7C,IAAMC,CAAAA,CAAUC,CAAAA,CAAS,MAAM,eAAA,CAAiB,CAC9C,IAAAJ,CAAAA,CACA,OAAA,CAAS,cAAA,CACT,UAAA,CAAY,KACZ,aAAA,CAAe,KACjB,CAAC,CAAA,CAEGK,CAAAA,CAA0D,KAE9DF,CAAAA,CAAQ,EAAA,CAAG,QAAA,CAAWG,CAAAA,EAAqB,CACrCD,CAAAA,EAAmB,YAAA,CAAaA,CAAiB,CAAA,CACrDA,CAAAA,CAAoB,WAAW,SAAY,CACzC,IAAME,CAAAA,CAAeC,EAAK,IAAA,CAAKR,CAAAA,CAAKM,CAAQ,CAAA,CAC5C,GAAI,CACF,IAAMG,CAAAA,CAAUC,EAAG,YAAA,CAAaH,CAAAA,CAAc,OAAO,CAAA,CAC/CI,CAAAA,CAAS,MAAMC,GAAAA,CAA+C,0BAAA,CAA4B,CAC9F,QAAA,CAAUN,CAAAA,CACV,OAAA,CAAAG,CACF,CAAC,CAAA,CACKI,CAAAA,CAAYX,EAAM,GAAA,CAAI,IAAI,MAAK,CAAE,kBAAA,EAAoB,CAAA,CACvDS,EAAO,KAAA,CACT,OAAA,CAAQ,IAAI,CAAA,EAAGE,CAAS,IAAIX,CAAAA,CAAM,KAAA,CAAM,QAAG,CAAC,IAAII,CAAQ,CAAA,aAAA,CAAU,EAElE,OAAA,CAAQ,GAAA,CAAI,GAAGO,CAAS,CAAA,CAAA,EAAIX,EAAM,GAAA,CAAI,QAAG,CAAC,CAAA,CAAA,EAAII,CAAQ,WAAMK,CAAAA,CAAO,MAAA,EAAQ,KAAK,IAAI,CAAA,EAAK,SAAS,CAAA,CAAE,EAExG,CAAA,MAASG,CAAAA,CAAK,CACZC,CAAAA,CAAS,CAAA,mBAAA,EAAsBT,CAAQ,CAAA,EAAA,EAAKQ,CAAAA,YAAe,KAAA,CAAQA,CAAAA,CAAI,QAAU,MAAA,CAAOA,CAAG,CAAC,CAAA,CAAE,EAChG,CACF,CAAA,CAAG,GAAG,EACR,CAAC,EAEDX,CAAAA,CAAQ,EAAA,CAAG,MAAQG,CAAAA,EAAqB,CACtCL,EAAQ,CAAA,SAAA,EAAYK,CAAQ,EAAE,EAChC,CAAC,EAED,MAAM,IAAI,QAAQ,IAAM,CAAC,CAAC,EAC5B","file":"scripts-watch-XZ7MZIMK.js","sourcesContent":["import path from 'node:path'\nimport chokidar from 'chokidar'\nimport fs from 'node:fs'\nimport { apiPost } from '../../lib/api/client.js'\nimport chalk from 'chalk'\nimport { logError, logInfo } from '../../lib/output/logger.js'\n\nexport default async function scriptsWatch(): Promise<void> {\n const cwd = process.cwd()\n logInfo(`Watching for .squid.yml changes in ${chalk.dim(cwd)}...`)\n console.log(chalk.dim('Press Ctrl+C to stop'))\n\n const watcher = chokidar.watch('**/.squid.yml', {\n cwd,\n ignored: /node_modules/,\n persistent: true,\n ignoreInitial: false,\n })\n\n let validationTimeout: ReturnType<typeof setTimeout> | null = null\n\n watcher.on('change', (filePath: string) => {\n if (validationTimeout) clearTimeout(validationTimeout)\n validationTimeout = setTimeout(async () => {\n const absolutePath = path.join(cwd, filePath)\n try {\n const content = fs.readFileSync(absolutePath, 'utf-8')\n const result = await apiPost<{ valid: boolean; errors?: string[] }>('/api/v1/scripts/validate', {\n filename: filePath,\n content,\n })\n const timestamp = chalk.dim(new Date().toLocaleTimeString())\n if (result.valid) {\n console.log(`${timestamp} ${chalk.green('✓')} ${filePath} — valid`)\n } else {\n console.log(`${timestamp} ${chalk.red('✗')} ${filePath} — ${result.errors?.join(', ') || 'invalid'}`)\n }\n } catch (err) {\n logError(`Failed to validate ${filePath}: ${err instanceof Error ? err.message : String(err)}`)\n }\n }, 500)\n })\n\n watcher.on('add', (filePath: string) => {\n logInfo(`Watching ${filePath}`)\n })\n\n await new Promise(() => {})\n}\n"]}
@@ -1,2 +1,2 @@
1
- export{o as clearSession,r as getTimeUntilExpiry,p as isSessionExpired,m as loadSession,n as saveSession,q as shouldRefreshToken}from'./chunk-C5KZCYJ4.js';//# sourceMappingURL=session-T3DZUXHP.js.map
2
- //# sourceMappingURL=session-T3DZUXHP.js.map
1
+ export{o as clearSession,r as getTimeUntilExpiry,p as isSessionExpired,m as loadSession,n as saveSession,q as shouldRefreshToken}from'./chunk-4NTVRCZM.js';//# sourceMappingURL=session-AZGWAAQQ.js.map
2
+ //# sourceMappingURL=session-AZGWAAQQ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"session-T3DZUXHP.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"session-AZGWAAQQ.js"}
@@ -0,0 +1,2 @@
1
+ import {b}from'./chunk-FYFPDKJM.js';import {e}from'./chunk-BC2OVPRV.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {g}from'./chunk-QT7R3AXE.js';import'./chunk-4NTVRCZM.js';async function a(e$1){let i=b(`Cancelling request ${e$1.slice(0,8)}...`);i.start(),await e(`/api/v1/sign/${e$1}/cancel`,{},{authenticated:true}),i.succeed(),g(`Signing request ${e$1.slice(0,8)} cancelled`);}export{a as default};//# sourceMappingURL=sign-cancel-OUJM5UZT.js.map
2
+ //# sourceMappingURL=sign-cancel-OUJM5UZT.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/sign/sign-cancel.ts"],"names":["signCancel","requestId","spinner","createSpinner","apiPost","logSuccess"],"mappings":"mOAIA,eAAOA,EAAkCC,GAAAA,CAAkC,CACzE,IAAMC,CAAAA,CAAUC,GAAAA,CAAc,sBAAsBF,GAAAA,CAAU,KAAA,CAAM,CAAA,CAAG,CAAC,CAAC,CAAA,GAAA,CAAK,CAAA,CAC9EC,EAAQ,KAAA,EAAM,CACd,MAAME,CAAAA,CAAQ,CAAA,aAAA,EAAgBH,GAAS,CAAA,OAAA,CAAA,CAAW,EAAC,CAAG,CAAE,cAAe,IAAK,CAAC,EAC7EC,CAAAA,CAAQ,OAAA,EAAQ,CAChBG,CAAAA,CAAW,mBAAmBJ,GAAAA,CAAU,KAAA,CAAM,EAAG,CAAC,CAAC,YAAY,EACjE","file":"sign-cancel-R7KQFEM3.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 signCancel(requestId: string): Promise<void> {\n const spinner = createSpinner(`Cancelling request ${requestId.slice(0, 8)}...`)\n spinner.start()\n await apiPost(`/api/v1/sign/${requestId}/cancel`, {}, { authenticated: true })\n spinner.succeed()\n logSuccess(`Signing request ${requestId.slice(0, 8)} cancelled`)\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/sign/sign-cancel.ts"],"names":["signCancel","requestId","spinner","createSpinner","apiPost","logSuccess"],"mappings":"gMAIA,eAAOA,EAAkCC,GAAAA,CAAkC,CACzE,IAAMC,CAAAA,CAAUC,CAAAA,CAAc,sBAAsBF,GAAAA,CAAU,KAAA,CAAM,CAAA,CAAG,CAAC,CAAC,CAAA,GAAA,CAAK,CAAA,CAC9EC,EAAQ,KAAA,EAAM,CACd,MAAME,CAAAA,CAAQ,CAAA,aAAA,EAAgBH,GAAS,CAAA,OAAA,CAAA,CAAW,EAAC,CAAG,CAAE,cAAe,IAAK,CAAC,EAC7EC,CAAAA,CAAQ,OAAA,EAAQ,CAChBG,CAAAA,CAAW,mBAAmBJ,GAAAA,CAAU,KAAA,CAAM,EAAG,CAAC,CAAC,YAAY,EACjE","file":"sign-cancel-OUJM5UZT.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 signCancel(requestId: string): Promise<void> {\n const spinner = createSpinner(`Cancelling request ${requestId.slice(0, 8)}...`)\n spinner.start()\n await apiPost(`/api/v1/sign/${requestId}/cancel`, {}, { authenticated: true })\n spinner.succeed()\n logSuccess(`Signing request ${requestId.slice(0, 8)} cancelled`)\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {b}from'./chunk-FYFPDKJM.js';import {d as d$1}from'./chunk-BC2OVPRV.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {g}from'./chunk-QT7R3AXE.js';import'./chunk-4NTVRCZM.js';import s from'fs';import c from'path';async function d(o){let n=b("Downloading signed document...");n.start();let t=await d$1(`/api/v1/sign/${o}/download`,{authenticated:true});n.succeed();let e=c.join(process.cwd(),`signed-${t.filename||`${o.slice(0,8)}.pdf`}`);s.writeFileSync(e,Buffer.from(t.content,"base64")),g(`Downloaded to ${e}`);}export{d as default};//# sourceMappingURL=sign-download-FS5G6J27.js.map
2
+ //# sourceMappingURL=sign-download-FS5G6J27.js.map