squidcloudctl 1.1.2 → 1.1.3

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 (188) hide show
  1. package/dist/{auth-revoke-I5FM6N2S.js → auth-revoke-B2JBJB36.js} +2 -2
  2. package/dist/{auth-revoke-I5FM6N2S.js.map → auth-revoke-B2JBJB36.js.map} +1 -1
  3. package/dist/{auth-sessions-ALQEGBDS.js → auth-sessions-ZPMHJBIJ.js} +2 -2
  4. package/dist/{auth-sessions-ALQEGBDS.js.map → auth-sessions-ZPMHJBIJ.js.map} +1 -1
  5. package/dist/{auth-status-4VVTCDII.js → auth-status-BZGX7ZXN.js} +2 -2
  6. package/dist/{auth-status-4VVTCDII.js.map → auth-status-BZGX7ZXN.js.map} +1 -1
  7. package/dist/bin/squidcloud.js +1 -1
  8. package/dist/chunk-E2I4VVR5.js +2 -0
  9. package/dist/chunk-E2I4VVR5.js.map +1 -0
  10. package/dist/{chunk-BC2OVPRV.js → chunk-RXARHDCW.js} +2 -2
  11. package/dist/{chunk-BC2OVPRV.js.map → chunk-RXARHDCW.js.map} +1 -1
  12. package/dist/client-RBFTHJQ4.js +2 -0
  13. package/dist/{client-RFYERFWZ.js.map → client-RBFTHJQ4.js.map} +1 -1
  14. package/dist/{collab-activity-5RK36CJW.js → collab-activity-LEPWGNXB.js} +2 -2
  15. package/dist/{collab-activity-5RK36CJW.js.map → collab-activity-LEPWGNXB.js.map} +1 -1
  16. package/dist/collab-invite-6QGPY7SO.js +2 -0
  17. package/dist/{collab-invite-HAMMPEAQ.js.map → collab-invite-6QGPY7SO.js.map} +1 -1
  18. package/dist/{collab-leave-MTCXHQ4T.js → collab-leave-YMTEY2CZ.js} +2 -2
  19. package/dist/{collab-leave-MTCXHQ4T.js.map → collab-leave-YMTEY2CZ.js.map} +1 -1
  20. package/dist/{collab-list-JV4ZCWLB.js → collab-list-AQUFYKGI.js} +2 -2
  21. package/dist/{collab-list-JV4ZCWLB.js.map → collab-list-AQUFYKGI.js.map} +1 -1
  22. package/dist/collab-remove-CJSQYEUI.js +2 -0
  23. package/dist/{collab-remove-DO4BIA5R.js.map → collab-remove-CJSQYEUI.js.map} +1 -1
  24. package/dist/{collab-transfer-6CG5PHVC.js → collab-transfer-I6O6T3AC.js} +2 -2
  25. package/dist/{collab-transfer-6CG5PHVC.js.map → collab-transfer-I6O6T3AC.js.map} +1 -1
  26. package/dist/{deploy-X5HX7V4J.js → deploy-3AMFZQ7I.js} +3 -3
  27. package/dist/{deploy-X5HX7V4J.js.map → deploy-3AMFZQ7I.js.map} +1 -1
  28. package/dist/{doctor-RSKBJYUX.js → doctor-DAYHBLCK.js} +2 -2
  29. package/dist/{doctor-RSKBJYUX.js.map → doctor-DAYHBLCK.js.map} +1 -1
  30. package/dist/forms-clear-BFDMRIWW.js +2 -0
  31. package/dist/{forms-clear-UJ23UHUN.js.map → forms-clear-BFDMRIWW.js.map} +1 -1
  32. package/dist/forms-create-EWU47AIO.js +2 -0
  33. package/dist/{forms-create-CWC7MGOJ.js.map → forms-create-EWU47AIO.js.map} +1 -1
  34. package/dist/{forms-delete-TKHTM6L5.js → forms-delete-HJISSH4G.js} +2 -2
  35. package/dist/{forms-delete-TKHTM6L5.js.map → forms-delete-HJISSH4G.js.map} +1 -1
  36. package/dist/{forms-embed-FF3VMR4M.js → forms-embed-GSIGC4V7.js} +3 -3
  37. package/dist/{forms-embed-FF3VMR4M.js.map → forms-embed-GSIGC4V7.js.map} +1 -1
  38. package/dist/{forms-export-5ZNEL3V2.js → forms-export-KLFI4NJ7.js} +2 -2
  39. package/dist/{forms-export-5ZNEL3V2.js.map → forms-export-KLFI4NJ7.js.map} +1 -1
  40. package/dist/{forms-info-SUST47TN.js → forms-info-BRG5D5D7.js} +2 -2
  41. package/dist/{forms-info-SUST47TN.js.map → forms-info-BRG5D5D7.js.map} +1 -1
  42. package/dist/{forms-list-W2UUPFFD.js → forms-list-GYBKM5YD.js} +2 -2
  43. package/dist/{forms-list-W2UUPFFD.js.map → forms-list-GYBKM5YD.js.map} +1 -1
  44. package/dist/{forms-submissions-UTLSYPWS.js → forms-submissions-RKNVL2FS.js} +2 -2
  45. package/dist/{forms-submissions-UTLSYPWS.js.map → forms-submissions-RKNVL2FS.js.map} +1 -1
  46. package/dist/{login-SO6BZ4HE.js → login-CG7LSZMB.js} +2 -2
  47. package/dist/{login-SO6BZ4HE.js.map → login-CG7LSZMB.js.map} +1 -1
  48. package/dist/logout-HGLROFNP.js +2 -0
  49. package/dist/{logout-QERO6G6B.js.map → logout-HGLROFNP.js.map} +1 -1
  50. package/dist/{logs-export-DYOPV2LT.js → logs-export-547MGHOL.js} +2 -2
  51. package/dist/{logs-export-DYOPV2LT.js.map → logs-export-547MGHOL.js.map} +1 -1
  52. package/dist/{logs-search-323KRPG4.js → logs-search-P52C7PUZ.js} +2 -2
  53. package/dist/{logs-search-323KRPG4.js.map → logs-search-P52C7PUZ.js.map} +1 -1
  54. package/dist/{logs-tail-J64TCZG5.js → logs-tail-K4CWSSGP.js} +3 -3
  55. package/dist/{logs-tail-J64TCZG5.js.map → logs-tail-K4CWSSGP.js.map} +1 -1
  56. package/dist/{monitor-DKLGO5H7.js → monitor-IEQ4UD2H.js} +2 -2
  57. package/dist/{monitor-DKLGO5H7.js.map → monitor-IEQ4UD2H.js.map} +1 -1
  58. package/dist/{monitor-automations-4XOOCRFY.js → monitor-automations-4UNPGIZG.js} +2 -2
  59. package/dist/{monitor-automations-4XOOCRFY.js.map → monitor-automations-4UNPGIZG.js.map} +1 -1
  60. package/dist/{monitor-pipelines-EPL24J3S.js → monitor-pipelines-FVASSAV4.js} +2 -2
  61. package/dist/{monitor-pipelines-EPL24J3S.js.map → monitor-pipelines-FVASSAV4.js.map} +1 -1
  62. package/dist/{monitor-sites-QIVG5TPF.js → monitor-sites-GN2CSO6K.js} +2 -2
  63. package/dist/{monitor-sites-QIVG5TPF.js.map → monitor-sites-GN2CSO6K.js.map} +1 -1
  64. package/dist/{monitor-storage-HBCC34K7.js → monitor-storage-XBPKQTPJ.js} +2 -2
  65. package/dist/{monitor-storage-HBCC34K7.js.map → monitor-storage-XBPKQTPJ.js.map} +1 -1
  66. package/dist/scripts-cancel-NOVNOP4C.js +2 -0
  67. package/dist/{scripts-cancel-JS3LL2AT.js.map → scripts-cancel-NOVNOP4C.js.map} +1 -1
  68. package/dist/scripts-delete-GDPLFXWI.js +2 -0
  69. package/dist/{scripts-delete-274TW63X.js.map → scripts-delete-GDPLFXWI.js.map} +1 -1
  70. package/dist/scripts-disable-GQCO7Z2O.js +2 -0
  71. package/dist/{scripts-disable-JPATOVO4.js.map → scripts-disable-GQCO7Z2O.js.map} +1 -1
  72. package/dist/scripts-enable-MEC2YFAZ.js +2 -0
  73. package/dist/{scripts-enable-JVAA6AMP.js.map → scripts-enable-MEC2YFAZ.js.map} +1 -1
  74. package/dist/{scripts-list-YPFNLI3P.js → scripts-list-CWCKTE6G.js} +2 -2
  75. package/dist/{scripts-list-YPFNLI3P.js.map → scripts-list-CWCKTE6G.js.map} +1 -1
  76. package/dist/{scripts-logs-VISO5ONQ.js → scripts-logs-BFI7ZBMA.js} +2 -2
  77. package/dist/{scripts-logs-VISO5ONQ.js.map → scripts-logs-BFI7ZBMA.js.map} +1 -1
  78. package/dist/{scripts-run-3NBYKEMQ.js → scripts-run-D5WQF7CD.js} +2 -2
  79. package/dist/{scripts-run-3NBYKEMQ.js.map → scripts-run-D5WQF7CD.js.map} +1 -1
  80. package/dist/{scripts-status-45K3IL5L.js → scripts-status-H3DZSNGH.js} +2 -2
  81. package/dist/{scripts-status-45K3IL5L.js.map → scripts-status-H3DZSNGH.js.map} +1 -1
  82. package/dist/{scripts-validate-JZPIIMIX.js → scripts-validate-GFEEMXGM.js} +2 -2
  83. package/dist/{scripts-validate-JZPIIMIX.js.map → scripts-validate-GFEEMXGM.js.map} +1 -1
  84. package/dist/{scripts-watch-XZ7MZIMK.js → scripts-watch-YNPV5J7L.js} +2 -2
  85. package/dist/{scripts-watch-XZ7MZIMK.js.map → scripts-watch-YNPV5J7L.js.map} +1 -1
  86. package/dist/{session-AZGWAAQQ.js → session-TQAYXXL4.js} +2 -2
  87. package/dist/{session-AZGWAAQQ.js.map → session-TQAYXXL4.js.map} +1 -1
  88. package/dist/sign-cancel-65ENAT3A.js +2 -0
  89. package/dist/{sign-cancel-OUJM5UZT.js.map → sign-cancel-65ENAT3A.js.map} +1 -1
  90. package/dist/{sign-download-FS5G6J27.js → sign-download-DRG6AEW7.js} +2 -2
  91. package/dist/{sign-download-FS5G6J27.js.map → sign-download-DRG6AEW7.js.map} +1 -1
  92. package/dist/{sign-list-FV7SQSWT.js → sign-list-G5SAZIGV.js} +2 -2
  93. package/dist/{sign-list-FV7SQSWT.js.map → sign-list-G5SAZIGV.js.map} +1 -1
  94. package/dist/{sign-request-VVFYWT3Y.js → sign-request-KDWRY6NM.js} +2 -2
  95. package/dist/{sign-request-VVFYWT3Y.js.map → sign-request-KDWRY6NM.js.map} +1 -1
  96. package/dist/{sign-status-LKG5UFBX.js → sign-status-IHMHFX4R.js} +2 -2
  97. package/dist/{sign-status-LKG5UFBX.js.map → sign-status-IHMHFX4R.js.map} +1 -1
  98. package/dist/{sign-verify-CVTTJSDL.js → sign-verify-6GZYRRYD.js} +2 -2
  99. package/dist/{sign-verify-CVTTJSDL.js.map → sign-verify-6GZYRRYD.js.map} +1 -1
  100. package/dist/{sites-analytics-JK4UFMWX.js → sites-analytics-5U7LPRGD.js} +2 -2
  101. package/dist/{sites-analytics-JK4UFMWX.js.map → sites-analytics-5U7LPRGD.js.map} +1 -1
  102. package/dist/{sites-delete-SUHEQDZQ.js → sites-delete-T5H6QHHE.js} +2 -2
  103. package/dist/{sites-delete-SUHEQDZQ.js.map → sites-delete-T5H6QHHE.js.map} +1 -1
  104. package/dist/{sites-deploys-C4TVID2W.js → sites-deploys-AGHGIVLV.js} +2 -2
  105. package/dist/{sites-deploys-C4TVID2W.js.map → sites-deploys-AGHGIVLV.js.map} +1 -1
  106. package/dist/{sites-info-BZUK57TH.js → sites-info-55Y5G46C.js} +2 -2
  107. package/dist/{sites-info-BZUK57TH.js.map → sites-info-55Y5G46C.js.map} +1 -1
  108. package/dist/{sites-list-LLULSE5J.js → sites-list-AESG52QR.js} +2 -2
  109. package/dist/{sites-list-LLULSE5J.js.map → sites-list-AESG52QR.js.map} +1 -1
  110. package/dist/{sites-logs-NILNXF4L.js → sites-logs-CLJ35QZF.js} +3 -3
  111. package/dist/{sites-logs-NILNXF4L.js.map → sites-logs-CLJ35QZF.js.map} +1 -1
  112. package/dist/sites-open-6FLQLGDU.js +3 -0
  113. package/dist/{sites-open-R7A5EQWM.js.map → sites-open-6FLQLGDU.js.map} +1 -1
  114. package/dist/sites-purge-3EE6M54Y.js +2 -0
  115. package/dist/{sites-purge-VHERQRUB.js.map → sites-purge-3EE6M54Y.js.map} +1 -1
  116. package/dist/{sites-rename-MOO6HVW3.js → sites-rename-JJPIKOEV.js} +2 -2
  117. package/dist/{sites-rename-MOO6HVW3.js.map → sites-rename-JJPIKOEV.js.map} +1 -1
  118. package/dist/{sites-rollback-SPW2Z73L.js → sites-rollback-LG76J5XE.js} +2 -2
  119. package/dist/{sites-rollback-SPW2Z73L.js.map → sites-rollback-LG76J5XE.js.map} +1 -1
  120. package/dist/{sites-unpublish-6P7SQGIU.js → sites-unpublish-77EWOZI6.js} +2 -2
  121. package/dist/{sites-unpublish-6P7SQGIU.js.map → sites-unpublish-77EWOZI6.js.map} +1 -1
  122. package/dist/sites-visibility-E6MDL2R5.js +2 -0
  123. package/dist/{sites-visibility-R3AQJ76F.js.map → sites-visibility-E6MDL2R5.js.map} +1 -1
  124. package/dist/storage-cat-NMDWAEM4.js +2 -0
  125. package/dist/{storage-cat-HXFOJJG5.js.map → storage-cat-NMDWAEM4.js.map} +1 -1
  126. package/dist/{storage-clean-LEQEYWL6.js → storage-clean-6S5GP2AR.js} +2 -2
  127. package/dist/{storage-clean-LEQEYWL6.js.map → storage-clean-6S5GP2AR.js.map} +1 -1
  128. package/dist/storage-cp-XM6KPPDU.js +2 -0
  129. package/dist/{storage-cp-JTPTXZRQ.js.map → storage-cp-XM6KPPDU.js.map} +1 -1
  130. package/dist/{storage-diff-XURHVTPC.js → storage-diff-2UTHBORN.js} +2 -2
  131. package/dist/{storage-diff-XURHVTPC.js.map → storage-diff-2UTHBORN.js.map} +1 -1
  132. package/dist/{storage-download-5OYCNXKL.js → storage-download-6OZCB7M4.js} +3 -3
  133. package/dist/{storage-download-5OYCNXKL.js.map → storage-download-6OZCB7M4.js.map} +1 -1
  134. package/dist/{storage-info-WA74POPR.js → storage-info-ZD6LDRFG.js} +2 -2
  135. package/dist/{storage-info-WA74POPR.js.map → storage-info-ZD6LDRFG.js.map} +1 -1
  136. package/dist/{storage-ls-7RZQ3AXR.js → storage-ls-KE7UDC3I.js} +2 -2
  137. package/dist/{storage-ls-7RZQ3AXR.js.map → storage-ls-KE7UDC3I.js.map} +1 -1
  138. package/dist/storage-mkdir-YR6DI3T6.js +2 -0
  139. package/dist/{storage-mkdir-NWOHGAQI.js.map → storage-mkdir-YR6DI3T6.js.map} +1 -1
  140. package/dist/storage-mv-3NQNRFPE.js +2 -0
  141. package/dist/{storage-mv-XQ7EPX3M.js.map → storage-mv-3NQNRFPE.js.map} +1 -1
  142. package/dist/{storage-rm-LYO6UR3G.js → storage-rm-EF36YTVT.js} +2 -2
  143. package/dist/{storage-rm-LYO6UR3G.js.map → storage-rm-EF36YTVT.js.map} +1 -1
  144. package/dist/{storage-search-RIT5ISCA.js → storage-search-73OT4DNB.js} +2 -2
  145. package/dist/{storage-search-RIT5ISCA.js.map → storage-search-73OT4DNB.js.map} +1 -1
  146. package/dist/{storage-share-OURRQWZK.js → storage-share-VK5Z3IRP.js} +2 -2
  147. package/dist/{storage-share-OURRQWZK.js.map → storage-share-VK5Z3IRP.js.map} +1 -1
  148. package/dist/{storage-tag-NGJGUJSZ.js → storage-tag-VMF6QLSU.js} +2 -2
  149. package/dist/{storage-tag-NGJGUJSZ.js.map → storage-tag-VMF6QLSU.js.map} +1 -1
  150. package/dist/storage-unshare-NAVNQCKH.js +2 -0
  151. package/dist/{storage-unshare-3DXEKHEH.js.map → storage-unshare-NAVNQCKH.js.map} +1 -1
  152. package/dist/{storage-upload-5M6PBHOC.js → storage-upload-LA2VFTEN.js} +2 -2
  153. package/dist/{storage-upload-5M6PBHOC.js.map → storage-upload-LA2VFTEN.js.map} +1 -1
  154. package/dist/{time-list-GMZYZAOU.js → time-list-4FAFRADD.js} +2 -2
  155. package/dist/{time-list-GMZYZAOU.js.map → time-list-4FAFRADD.js.map} +1 -1
  156. package/dist/time-lock-L4PL43SC.js +2 -0
  157. package/dist/{time-lock-2OLEVQPJ.js.map → time-lock-L4PL43SC.js.map} +1 -1
  158. package/dist/{time-proof-RUTDAEKP.js → time-proof-ZOOUFIKS.js} +2 -2
  159. package/dist/{time-proof-RUTDAEKP.js.map → time-proof-ZOOUFIKS.js.map} +1 -1
  160. package/dist/{time-status-TVNJBFKC.js → time-status-M4QX6GTM.js} +2 -2
  161. package/dist/{time-status-TVNJBFKC.js.map → time-status-M4QX6GTM.js.map} +1 -1
  162. package/dist/{time-unlock-OO6QH5R6.js → time-unlock-UPHP5V74.js} +2 -2
  163. package/dist/{time-unlock-OO6QH5R6.js.map → time-unlock-UPHP5V74.js.map} +1 -1
  164. package/dist/{whoami-SAURQARO.js → whoami-2ABU6JQD.js} +2 -2
  165. package/dist/{whoami-SAURQARO.js.map → whoami-2ABU6JQD.js.map} +1 -1
  166. package/package.json +1 -1
  167. package/dist/chunk-4NTVRCZM.js +0 -2
  168. package/dist/chunk-4NTVRCZM.js.map +0 -1
  169. package/dist/client-RFYERFWZ.js +0 -2
  170. package/dist/collab-invite-HAMMPEAQ.js +0 -2
  171. package/dist/collab-remove-DO4BIA5R.js +0 -2
  172. package/dist/forms-clear-UJ23UHUN.js +0 -2
  173. package/dist/forms-create-CWC7MGOJ.js +0 -2
  174. package/dist/logout-QERO6G6B.js +0 -2
  175. package/dist/scripts-cancel-JS3LL2AT.js +0 -2
  176. package/dist/scripts-delete-274TW63X.js +0 -2
  177. package/dist/scripts-disable-JPATOVO4.js +0 -2
  178. package/dist/scripts-enable-JVAA6AMP.js +0 -2
  179. package/dist/sign-cancel-OUJM5UZT.js +0 -2
  180. package/dist/sites-open-R7A5EQWM.js +0 -3
  181. package/dist/sites-purge-VHERQRUB.js +0 -2
  182. package/dist/sites-visibility-R3AQJ76F.js +0 -2
  183. package/dist/storage-cat-HXFOJJG5.js +0 -2
  184. package/dist/storage-cp-JTPTXZRQ.js +0 -2
  185. package/dist/storage-mkdir-NWOHGAQI.js +0 -2
  186. package/dist/storage-mv-XQ7EPX3M.js +0 -2
  187. package/dist/storage-unshare-3DXEKHEH.js +0 -2
  188. package/dist/time-lock-2OLEVQPJ.js +0 -2
@@ -1,2 +1,2 @@
1
- import {a as a$1}from'./chunk-MKRWNV2T.js';import {b}from'./chunk-FYFPDKJM.js';import {h}from'./chunk-BC2OVPRV.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {a}from'./chunk-G4JU7IUC.js';import {j,f,m,g,i}from'./chunk-QT7R3AXE.js';import'./chunk-4NTVRCZM.js';import s from'fs';import n from'path';import F from'chalk';import B from'cli-progress';import I from'ignore';async function N(C,P,l){let e=n.resolve(C),c=P||n.basename(e);s.existsSync(e)||(console.error(`File not found: ${e}`),process.exit(1));let v=s.statSync(e);if(v.isFile()){if(l?.dryRun){j(`[DRY-RUN] Would upload: ${e} \u2192 ${c}`);return}let t=b(`Uploading ${n.basename(e)}...`);t.start();let o=s.readFileSync(e),a$1=new FormData,i=new Blob([o]);a$1.append("file",i,n.basename(e));let f$1=await h(`/api/v1/storage/upload?path=${encodeURIComponent(c)}`,a$1,{authenticated:true});t.succeed(),f()?m(f$1):g(`Uploaded ${n.basename(e)} (${a(o.length)})`);return}if(v.isDirectory()){let a=function(r,d){let m=s.readdirSync(r,{withFileTypes:true});for(let p of m){let u=n.join(r,p.name),S=n.relative(d,u);t.ignores(S)||(p.isDirectory()?a(u,d):p.isFile()&&a$1(p.name)&&o.push({relative:S,absolute:u}));}};let t=I();l?.ignore&&t.add(l.ignore),t.add(".DS_Store"),t.add("node_modules"),t.add(".git");let o=[];if(a(e,e),o.length===0){i("No allowed files found to upload");return}if(l?.dryRun){j(`[DRY-RUN] Would upload ${o.length} files:`);for(let r of o)console.log(F.dim(` ${r.relative}`));return}let i$1=new B.SingleBar({format:`${F.hex("#7C4DFF")("\u25B8")} Uploading |${F.hex("#7C4DFF")("{bar}")}| {percentage}% | {value}/{total} files`,barCompleteChar:"\u2588",barIncompleteChar:"\u2591",hideCursor:true});i$1.start(o.length,0);let f$1=new FormData;for(let r of o){let d=s.readFileSync(r.absolute),m=new Blob([d]);f$1.append("files",m,r.relative);}let x=await h(`/api/v1/storage/upload?path=${encodeURIComponent(c)}`,f$1,{authenticated:true});i$1.update(o.length),i$1.stop(),f()?m(x):g(`Uploaded ${o.length} files to ${c}`);}}export{N as default};//# sourceMappingURL=storage-upload-5M6PBHOC.js.map
2
- //# sourceMappingURL=storage-upload-5M6PBHOC.js.map
1
+ import {a as a$1}from'./chunk-MKRWNV2T.js';import {b}from'./chunk-FYFPDKJM.js';import {h}from'./chunk-RXARHDCW.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {a}from'./chunk-G4JU7IUC.js';import {j,f,m,g,i}from'./chunk-QT7R3AXE.js';import'./chunk-E2I4VVR5.js';import s from'fs';import n from'path';import F from'chalk';import B from'cli-progress';import I from'ignore';async function N(C,P,l){let e=n.resolve(C),c=P||n.basename(e);s.existsSync(e)||(console.error(`File not found: ${e}`),process.exit(1));let v=s.statSync(e);if(v.isFile()){if(l?.dryRun){j(`[DRY-RUN] Would upload: ${e} \u2192 ${c}`);return}let t=b(`Uploading ${n.basename(e)}...`);t.start();let o=s.readFileSync(e),a$1=new FormData,i=new Blob([o]);a$1.append("file",i,n.basename(e));let f$1=await h(`/api/v1/storage/upload?path=${encodeURIComponent(c)}`,a$1,{authenticated:true});t.succeed(),f()?m(f$1):g(`Uploaded ${n.basename(e)} (${a(o.length)})`);return}if(v.isDirectory()){let a=function(r,d){let m=s.readdirSync(r,{withFileTypes:true});for(let p of m){let u=n.join(r,p.name),S=n.relative(d,u);t.ignores(S)||(p.isDirectory()?a(u,d):p.isFile()&&a$1(p.name)&&o.push({relative:S,absolute:u}));}};let t=I();l?.ignore&&t.add(l.ignore),t.add(".DS_Store"),t.add("node_modules"),t.add(".git");let o=[];if(a(e,e),o.length===0){i("No allowed files found to upload");return}if(l?.dryRun){j(`[DRY-RUN] Would upload ${o.length} files:`);for(let r of o)console.log(F.dim(` ${r.relative}`));return}let i$1=new B.SingleBar({format:`${F.hex("#7C4DFF")("\u25B8")} Uploading |${F.hex("#7C4DFF")("{bar}")}| {percentage}% | {value}/{total} files`,barCompleteChar:"\u2588",barIncompleteChar:"\u2591",hideCursor:true});i$1.start(o.length,0);let f$1=new FormData;for(let r of o){let d=s.readFileSync(r.absolute),m=new Blob([d]);f$1.append("files",m,r.relative);}let x=await h(`/api/v1/storage/upload?path=${encodeURIComponent(c)}`,f$1,{authenticated:true});i$1.update(o.length),i$1.stop(),f()?m(x):g(`Uploaded ${o.length} files to ${c}`);}}export{N as default};//# sourceMappingURL=storage-upload-LA2VFTEN.js.map
2
+ //# sourceMappingURL=storage-upload-LA2VFTEN.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/storage/storage-upload.ts"],"names":["storageUpload","local","remote","options","localPath","path","remotePath","fs","stat","logInfo","spinner","createSpinner","content","formData","blob","result","apiUpload","isJsonMode","logJSON","logSuccess","formatBytes","walk","dir","baseDir","entries","entry","fullPath","relative","ig","isAllowedFile","files","ignore","logWarn","f","chalk","progressBar","cliProgress"],"mappings":"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","file":"storage-upload-5M6PBHOC.js","sourcesContent":["import fs from 'node:fs'\nimport path from 'node:path'\nimport { apiPost, apiUpload } from '../../lib/api/client.js'\nimport { isAllowedFile } from '../../lib/deploy/allowlist.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess, logWarn, logJSON, logInfo } from '../../lib/output/logger.js'\nimport { isJsonMode } from '../../lib/output/logger.js'\nimport { formatBytes } from '../../lib/utils/format.js'\nimport chalk from 'chalk'\nimport cliProgress from 'cli-progress'\nimport ignore from 'ignore'\n\nexport default async function storageUpload(local: string, remote?: string, options?: { ignore?: string; dryRun?: boolean }): Promise<void> {\n const localPath = path.resolve(local)\n const remotePath = remote || path.basename(localPath)\n\n if (!fs.existsSync(localPath)) {\n console.error(`File not found: ${localPath}`)\n process.exit(1)\n }\n\n const stat = fs.statSync(localPath)\n\n if (stat.isFile()) {\n if (options?.dryRun) {\n logInfo(`[DRY-RUN] Would upload: ${localPath} → ${remotePath}`)\n return\n }\n const spinner = createSpinner(`Uploading ${path.basename(localPath)}...`)\n spinner.start()\n const content = fs.readFileSync(localPath)\n const formData = new FormData()\n const blob = new Blob([content])\n formData.append('file', blob, path.basename(localPath))\n const result = await apiUpload(`/api/v1/storage/upload?path=${encodeURIComponent(remotePath)}`, formData, { authenticated: true })\n spinner.succeed()\n if (isJsonMode()) logJSON(result)\n else logSuccess(`Uploaded ${path.basename(localPath)} (${formatBytes(content.length)})`)\n return\n }\n\n if (stat.isDirectory()) {\n const ig = ignore()\n if (options?.ignore) {\n ig.add(options.ignore)\n }\n ig.add('.DS_Store')\n ig.add('node_modules')\n ig.add('.git')\n\n const files: { relative: string; absolute: string }[] = []\n function walk(dir: string, baseDir: string): void {\n const entries = fs.readdirSync(dir, { withFileTypes: true })\n for (const entry of entries) {\n const fullPath = path.join(dir, entry.name)\n const relative = path.relative(baseDir, fullPath)\n if (ig.ignores(relative)) continue\n if (entry.isDirectory()) {\n walk(fullPath, baseDir)\n } else if (entry.isFile() && isAllowedFile(entry.name)) {\n files.push({ relative, absolute: fullPath })\n }\n }\n }\n walk(localPath, localPath)\n\n if (files.length === 0) {\n logWarn('No allowed files found to upload')\n return\n }\n\n if (options?.dryRun) {\n logInfo(`[DRY-RUN] Would upload ${files.length} files:`)\n for (const f of files) {\n console.log(chalk.dim(` ${f.relative}`))\n }\n return\n }\n\n const progressBar = new cliProgress.SingleBar({\n format: `${chalk.hex('#7C4DFF')('▸')} Uploading |${chalk.hex('#7C4DFF')('{bar}')}| {percentage}% | {value}/{total} files`,\n barCompleteChar: '█',\n barIncompleteChar: '░',\n hideCursor: true,\n })\n progressBar.start(files.length, 0)\n\n const formData = new FormData()\n for (const f of files) {\n const content = fs.readFileSync(f.absolute)\n const blob = new Blob([content])\n formData.append('files', blob, f.relative)\n }\n\n const result = await apiUpload(`/api/v1/storage/upload?path=${encodeURIComponent(remotePath)}`, formData, { authenticated: true })\n progressBar.update(files.length)\n progressBar.stop()\n\n if (isJsonMode()) logJSON(result)\n else logSuccess(`Uploaded ${files.length} files to ${remotePath}`)\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/storage/storage-upload.ts"],"names":["storageUpload","local","remote","options","localPath","path","remotePath","fs","stat","logInfo","spinner","createSpinner","content","formData","blob","result","apiUpload","isJsonMode","logJSON","logSuccess","formatBytes","walk","dir","baseDir","entries","entry","fullPath","relative","ig","isAllowedFile","files","ignore","logWarn","f","chalk","progressBar","cliProgress"],"mappings":"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","file":"storage-upload-LA2VFTEN.js","sourcesContent":["import fs from 'node:fs'\nimport path from 'node:path'\nimport { apiPost, apiUpload } from '../../lib/api/client.js'\nimport { isAllowedFile } from '../../lib/deploy/allowlist.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess, logWarn, logJSON, logInfo } from '../../lib/output/logger.js'\nimport { isJsonMode } from '../../lib/output/logger.js'\nimport { formatBytes } from '../../lib/utils/format.js'\nimport chalk from 'chalk'\nimport cliProgress from 'cli-progress'\nimport ignore from 'ignore'\n\nexport default async function storageUpload(local: string, remote?: string, options?: { ignore?: string; dryRun?: boolean }): Promise<void> {\n const localPath = path.resolve(local)\n const remotePath = remote || path.basename(localPath)\n\n if (!fs.existsSync(localPath)) {\n console.error(`File not found: ${localPath}`)\n process.exit(1)\n }\n\n const stat = fs.statSync(localPath)\n\n if (stat.isFile()) {\n if (options?.dryRun) {\n logInfo(`[DRY-RUN] Would upload: ${localPath} → ${remotePath}`)\n return\n }\n const spinner = createSpinner(`Uploading ${path.basename(localPath)}...`)\n spinner.start()\n const content = fs.readFileSync(localPath)\n const formData = new FormData()\n const blob = new Blob([content])\n formData.append('file', blob, path.basename(localPath))\n const result = await apiUpload(`/api/v1/storage/upload?path=${encodeURIComponent(remotePath)}`, formData, { authenticated: true })\n spinner.succeed()\n if (isJsonMode()) logJSON(result)\n else logSuccess(`Uploaded ${path.basename(localPath)} (${formatBytes(content.length)})`)\n return\n }\n\n if (stat.isDirectory()) {\n const ig = ignore()\n if (options?.ignore) {\n ig.add(options.ignore)\n }\n ig.add('.DS_Store')\n ig.add('node_modules')\n ig.add('.git')\n\n const files: { relative: string; absolute: string }[] = []\n function walk(dir: string, baseDir: string): void {\n const entries = fs.readdirSync(dir, { withFileTypes: true })\n for (const entry of entries) {\n const fullPath = path.join(dir, entry.name)\n const relative = path.relative(baseDir, fullPath)\n if (ig.ignores(relative)) continue\n if (entry.isDirectory()) {\n walk(fullPath, baseDir)\n } else if (entry.isFile() && isAllowedFile(entry.name)) {\n files.push({ relative, absolute: fullPath })\n }\n }\n }\n walk(localPath, localPath)\n\n if (files.length === 0) {\n logWarn('No allowed files found to upload')\n return\n }\n\n if (options?.dryRun) {\n logInfo(`[DRY-RUN] Would upload ${files.length} files:`)\n for (const f of files) {\n console.log(chalk.dim(` ${f.relative}`))\n }\n return\n }\n\n const progressBar = new cliProgress.SingleBar({\n format: `${chalk.hex('#7C4DFF')('▸')} Uploading |${chalk.hex('#7C4DFF')('{bar}')}| {percentage}% | {value}/{total} files`,\n barCompleteChar: '█',\n barIncompleteChar: '░',\n hideCursor: true,\n })\n progressBar.start(files.length, 0)\n\n const formData = new FormData()\n for (const f of files) {\n const content = fs.readFileSync(f.absolute)\n const blob = new Blob([content])\n formData.append('files', blob, f.relative)\n }\n\n const result = await apiUpload(`/api/v1/storage/upload?path=${encodeURIComponent(remotePath)}`, formData, { authenticated: true })\n progressBar.update(files.length)\n progressBar.stop()\n\n if (isJsonMode()) logJSON(result)\n else logSuccess(`Uploaded ${files.length} files to ${remotePath}`)\n }\n}\n"]}
@@ -1,2 +1,2 @@
1
- import {d}from'./chunk-BC2OVPRV.js';import'./chunk-NDB6KXYI.js';import {a}from'./chunk-THMWE2I6.js';import {d as d$1,b}from'./chunk-G4JU7IUC.js';import'./chunk-QT7R3AXE.js';import'./chunk-4NTVRCZM.js';import m from'chalk';async function r(){let o=((await d("/api/v1/time/list",{authenticated:true})).locked||[]).map(e=>({path:e.path,unlocks:b(e.unlock_at),remaining:e.time_remaining_ms>0?d$1(e.time_remaining_ms):m.green("unlocked")}));console.log(a(o,[{key:"path",label:"File"},{key:"unlocks",label:"Unlocks"},{key:"remaining",label:"Time Remaining"}]));}export{r as default};//# sourceMappingURL=time-list-GMZYZAOU.js.map
2
- //# sourceMappingURL=time-list-GMZYZAOU.js.map
1
+ import {d}from'./chunk-RXARHDCW.js';import'./chunk-NDB6KXYI.js';import {a}from'./chunk-THMWE2I6.js';import {d as d$1,b}from'./chunk-G4JU7IUC.js';import'./chunk-QT7R3AXE.js';import'./chunk-E2I4VVR5.js';import m from'chalk';async function r(){let o=((await d("/api/v1/time/list",{authenticated:true})).locked||[]).map(e=>({path:e.path,unlocks:b(e.unlock_at),remaining:e.time_remaining_ms>0?d$1(e.time_remaining_ms):m.green("unlocked")}));console.log(a(o,[{key:"path",label:"File"},{key:"unlocks",label:"Unlocks"},{key:"remaining",label:"Time Remaining"}]));}export{r as default};//# sourceMappingURL=time-list-4FAFRADD.js.map
2
+ //# sourceMappingURL=time-list-4FAFRADD.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/time/time-list.ts"],"names":["timeList","rows","apiGet","l","formatDate","formatCountdown","chalk","renderTable"],"mappings":"8NAWA,eAAOA,CAAAA,EAAiD,CAEtD,IAAMC,CAAAA,CAAAA,CAAAA,CADO,MAAMC,CAAAA,CAAiC,mBAAA,CAAqB,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,EAC7E,MAAA,EAAU,EAAC,EAAG,GAAA,CAAIC,CAAAA,GAAM,CACzC,IAAA,CAAMA,EAAE,IAAA,CACR,OAAA,CAASC,CAAAA,CAAWD,CAAAA,CAAE,SAAS,CAAA,CAC/B,SAAA,CAAWA,CAAAA,CAAE,kBAAoB,CAAA,CAAIE,GAAAA,CAAgBF,CAAAA,CAAE,iBAAiB,CAAA,CAAIG,CAAAA,CAAM,KAAA,CAAM,UAAU,CACpG,CAAA,CAAE,CAAA,CACF,OAAA,CAAQ,GAAA,CAAIC,CAAAA,CAAYN,CAAAA,CAAM,CAC5B,CAAE,IAAK,MAAA,CAAQ,KAAA,CAAO,MAAO,CAAA,CAC7B,CAAE,GAAA,CAAK,SAAA,CAAW,KAAA,CAAO,SAAU,CAAA,CACnC,CAAE,GAAA,CAAK,WAAA,CAAa,KAAA,CAAO,gBAAiB,CAC9C,CAAC,CAAC,EACJ","file":"time-list-GMZYZAOU.js","sourcesContent":["import { apiGet } from '../../lib/api/client.js'\nimport { renderTable } from '../../lib/output/table.js'\nimport { formatDate, formatCountdown } from '../../lib/utils/format.js'\nimport chalk from 'chalk'\n\ninterface LockedFile {\n path: string\n unlock_at: string\n time_remaining_ms: number\n}\n\nexport default async function timeList(): Promise<void> {\n const data = await apiGet<{ locked: LockedFile[] }>('/api/v1/time/list', { authenticated: true })\n const rows = (data.locked || []).map(l => ({\n path: l.path,\n unlocks: formatDate(l.unlock_at),\n remaining: l.time_remaining_ms > 0 ? formatCountdown(l.time_remaining_ms) : chalk.green('unlocked'),\n }))\n console.log(renderTable(rows, [\n { key: 'path', label: 'File' },\n { key: 'unlocks', label: 'Unlocks' },\n { key: 'remaining', label: 'Time Remaining' },\n ]))\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/time/time-list.ts"],"names":["timeList","rows","apiGet","l","formatDate","formatCountdown","chalk","renderTable"],"mappings":"8NAWA,eAAOA,CAAAA,EAAiD,CAEtD,IAAMC,CAAAA,CAAAA,CAAAA,CADO,MAAMC,CAAAA,CAAiC,mBAAA,CAAqB,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,EAC7E,MAAA,EAAU,EAAC,EAAG,GAAA,CAAIC,CAAAA,GAAM,CACzC,IAAA,CAAMA,EAAE,IAAA,CACR,OAAA,CAASC,CAAAA,CAAWD,CAAAA,CAAE,SAAS,CAAA,CAC/B,SAAA,CAAWA,CAAAA,CAAE,kBAAoB,CAAA,CAAIE,GAAAA,CAAgBF,CAAAA,CAAE,iBAAiB,CAAA,CAAIG,CAAAA,CAAM,KAAA,CAAM,UAAU,CACpG,CAAA,CAAE,CAAA,CACF,OAAA,CAAQ,GAAA,CAAIC,CAAAA,CAAYN,CAAAA,CAAM,CAC5B,CAAE,IAAK,MAAA,CAAQ,KAAA,CAAO,MAAO,CAAA,CAC7B,CAAE,GAAA,CAAK,SAAA,CAAW,KAAA,CAAO,SAAU,CAAA,CACnC,CAAE,GAAA,CAAK,WAAA,CAAa,KAAA,CAAO,gBAAiB,CAC9C,CAAC,CAAC,EACJ","file":"time-list-4FAFRADD.js","sourcesContent":["import { apiGet } from '../../lib/api/client.js'\nimport { renderTable } from '../../lib/output/table.js'\nimport { formatDate, formatCountdown } from '../../lib/utils/format.js'\nimport chalk from 'chalk'\n\ninterface LockedFile {\n path: string\n unlock_at: string\n time_remaining_ms: number\n}\n\nexport default async function timeList(): Promise<void> {\n const data = await apiGet<{ locked: LockedFile[] }>('/api/v1/time/list', { authenticated: true })\n const rows = (data.locked || []).map(l => ({\n path: l.path,\n unlocks: formatDate(l.unlock_at),\n remaining: l.time_remaining_ms > 0 ? formatCountdown(l.time_remaining_ms) : chalk.green('unlocked'),\n }))\n console.log(renderTable(rows, [\n { key: 'path', label: 'File' },\n { key: 'unlocks', label: 'Unlocks' },\n { key: 'remaining', label: 'Time Remaining' },\n ]))\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {b}from'./chunk-FYFPDKJM.js';import {e}from'./chunk-RXARHDCW.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {f,m,g}from'./chunk-QT7R3AXE.js';import'./chunk-E2I4VVR5.js';async function s(i,t){let n=b(`Time-locking ${i} until ${t.until}...`);n.start();let u=await e("/api/v1/time/lock",{path:i,unlock_at:t.until},{authenticated:true});if(n.succeed(),f()){m(u);return}g(`Time-locked until ${t.until}`);}export{s as default};//# sourceMappingURL=time-lock-L4PL43SC.js.map
2
+ //# sourceMappingURL=time-lock-L4PL43SC.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/time/time-lock.ts"],"names":["timeLock","path","options","spinner","createSpinner","result","apiPost","isJsonMode","logJSON","logSuccess"],"mappings":"oMAKA,eAAOA,CAAAA,CAAgCC,EAAcC,CAAAA,CAA2C,CAC9F,IAAMC,CAAAA,CAAUC,CAAAA,CAAc,CAAA,aAAA,EAAgBH,CAAI,CAAA,OAAA,EAAUC,CAAAA,CAAQ,KAAK,CAAA,GAAA,CAAK,CAAA,CAC9EC,CAAAA,CAAQ,KAAA,EAAM,CACd,IAAME,EAAS,MAAMC,CAAAA,CAAgD,mBAAA,CAAqB,CACxF,IAAA,CAAAL,CAAAA,CACA,UAAWC,CAAAA,CAAQ,KACrB,CAAA,CAAG,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAE1B,GADAC,CAAAA,CAAQ,OAAA,EAAQ,CACZI,CAAAA,GAAc,CAChBC,CAAAA,CAAQH,CAAM,CAAA,CACd,MACF,CACAI,EAAW,CAAA,kBAAA,EAAqBP,CAAAA,CAAQ,KAAK,CAAA,CAAE,EACjD","file":"time-lock-2OLEVQPJ.js","sourcesContent":["import { apiPost } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess, logJSON } from '../../lib/output/logger.js'\nimport { isJsonMode } from '../../lib/output/logger.js'\n\nexport default async function timeLock(path: string, options: { until: string }): Promise<void> {\n const spinner = createSpinner(`Time-locking ${path} until ${options.until}...`)\n spinner.start()\n const result = await apiPost<{ lock_id: string; unlock_at: string }>('/api/v1/time/lock', {\n path,\n unlock_at: options.until,\n }, { authenticated: true })\n spinner.succeed()\n if (isJsonMode()) {\n logJSON(result)\n return\n }\n logSuccess(`Time-locked until ${options.until}`)\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/time/time-lock.ts"],"names":["timeLock","path","options","spinner","createSpinner","result","apiPost","isJsonMode","logJSON","logSuccess"],"mappings":"oMAKA,eAAOA,CAAAA,CAAgCC,EAAcC,CAAAA,CAA2C,CAC9F,IAAMC,CAAAA,CAAUC,CAAAA,CAAc,CAAA,aAAA,EAAgBH,CAAI,CAAA,OAAA,EAAUC,CAAAA,CAAQ,KAAK,CAAA,GAAA,CAAK,CAAA,CAC9EC,CAAAA,CAAQ,KAAA,EAAM,CACd,IAAME,EAAS,MAAMC,CAAAA,CAAgD,mBAAA,CAAqB,CACxF,IAAA,CAAAL,CAAAA,CACA,UAAWC,CAAAA,CAAQ,KACrB,CAAA,CAAG,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAE1B,GADAC,CAAAA,CAAQ,OAAA,EAAQ,CACZI,CAAAA,GAAc,CAChBC,CAAAA,CAAQH,CAAM,CAAA,CACd,MACF,CACAI,EAAW,CAAA,kBAAA,EAAqBP,CAAAA,CAAQ,KAAK,CAAA,CAAE,EACjD","file":"time-lock-L4PL43SC.js","sourcesContent":["import { apiPost } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess, logJSON } from '../../lib/output/logger.js'\nimport { isJsonMode } from '../../lib/output/logger.js'\n\nexport default async function timeLock(path: string, options: { until: string }): Promise<void> {\n const spinner = createSpinner(`Time-locking ${path} until ${options.until}...`)\n spinner.start()\n const result = await apiPost<{ lock_id: string; unlock_at: string }>('/api/v1/time/lock', {\n path,\n unlock_at: options.until,\n }, { authenticated: true })\n spinner.succeed()\n if (isJsonMode()) {\n logJSON(result)\n return\n }\n logSuccess(`Time-locked until ${options.until}`)\n}\n"]}
@@ -1,2 +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 s from'fs';import p from'path';async function f(o){let t=b("Generating proof...");t.start();let a=await d(`/api/v1/time/proof?path=${encodeURIComponent(o)}`,{authenticated:true});t.succeed();let e=p.join(process.cwd(),`${p.basename(o)}.timeproof.json`);s.writeFileSync(e,JSON.stringify({proof:a.proof,generated_at:new Date().toISOString()},null,2)),g(`Existence proof saved to ${e}`);}export{f as default};//# sourceMappingURL=time-proof-RUTDAEKP.js.map
2
- //# sourceMappingURL=time-proof-RUTDAEKP.js.map
1
+ import {b}from'./chunk-FYFPDKJM.js';import {d}from'./chunk-RXARHDCW.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {g}from'./chunk-QT7R3AXE.js';import'./chunk-E2I4VVR5.js';import s from'fs';import p from'path';async function f(o){let t=b("Generating proof...");t.start();let a=await d(`/api/v1/time/proof?path=${encodeURIComponent(o)}`,{authenticated:true});t.succeed();let e=p.join(process.cwd(),`${p.basename(o)}.timeproof.json`);s.writeFileSync(e,JSON.stringify({proof:a.proof,generated_at:new Date().toISOString()},null,2)),g(`Existence proof saved to ${e}`);}export{f as default};//# sourceMappingURL=time-proof-ZOOUFIKS.js.map
2
+ //# sourceMappingURL=time-proof-ZOOUFIKS.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/time/time-proof.ts"],"names":["timeProof","filePath","spinner","createSpinner","data","apiGet","proofPath","path","fs","logSuccess"],"mappings":"sOAMA,eAAOA,CAAAA,CAAiCC,CAAAA,CAAiC,CACvE,IAAMC,CAAAA,CAAUC,CAAAA,CAAc,qBAAqB,CAAA,CACnDD,EAAQ,KAAA,EAAM,CACd,IAAME,CAAAA,CAAO,MAAMC,CAAAA,CAA0B,CAAA,wBAAA,EAA2B,kBAAA,CAAmBJ,CAAQ,CAAC,CAAA,CAAA,CAAI,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAC/HC,CAAAA,CAAQ,OAAA,GACR,IAAMI,CAAAA,CAAYC,CAAAA,CAAK,IAAA,CAAK,OAAA,CAAQ,GAAA,EAAI,CAAG,CAAA,EAAGA,EAAK,QAAA,CAASN,CAAQ,CAAC,CAAA,eAAA,CAAiB,EACtFO,CAAAA,CAAG,aAAA,CAAcF,CAAAA,CAAW,IAAA,CAAK,UAAU,CAAE,KAAA,CAAOF,CAAAA,CAAK,KAAA,CAAO,YAAA,CAAc,IAAI,IAAA,EAAK,CAAE,aAAc,CAAA,CAAG,IAAA,CAAM,CAAC,CAAC,CAAA,CAClHK,CAAAA,CAAW,CAAA,yBAAA,EAA4BH,CAAS,EAAE,EACpD","file":"time-proof-RUTDAEKP.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 timeProof(filePath: string): Promise<void> {\n const spinner = createSpinner('Generating proof...')\n spinner.start()\n const data = await apiGet<{ proof: string }>(`/api/v1/time/proof?path=${encodeURIComponent(filePath)}`, { authenticated: true })\n spinner.succeed()\n const proofPath = path.join(process.cwd(), `${path.basename(filePath)}.timeproof.json`)\n fs.writeFileSync(proofPath, JSON.stringify({ proof: data.proof, generated_at: new Date().toISOString() }, null, 2))\n logSuccess(`Existence proof saved to ${proofPath}`)\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/time/time-proof.ts"],"names":["timeProof","filePath","spinner","createSpinner","data","apiGet","proofPath","path","fs","logSuccess"],"mappings":"sOAMA,eAAOA,CAAAA,CAAiCC,CAAAA,CAAiC,CACvE,IAAMC,CAAAA,CAAUC,CAAAA,CAAc,qBAAqB,CAAA,CACnDD,EAAQ,KAAA,EAAM,CACd,IAAME,CAAAA,CAAO,MAAMC,CAAAA,CAA0B,CAAA,wBAAA,EAA2B,kBAAA,CAAmBJ,CAAQ,CAAC,CAAA,CAAA,CAAI,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAC/HC,CAAAA,CAAQ,OAAA,GACR,IAAMI,CAAAA,CAAYC,CAAAA,CAAK,IAAA,CAAK,OAAA,CAAQ,GAAA,EAAI,CAAG,CAAA,EAAGA,EAAK,QAAA,CAASN,CAAQ,CAAC,CAAA,eAAA,CAAiB,EACtFO,CAAAA,CAAG,aAAA,CAAcF,CAAAA,CAAW,IAAA,CAAK,UAAU,CAAE,KAAA,CAAOF,CAAAA,CAAK,KAAA,CAAO,YAAA,CAAc,IAAI,IAAA,EAAK,CAAE,aAAc,CAAA,CAAG,IAAA,CAAM,CAAC,CAAC,CAAA,CAClHK,CAAAA,CAAW,CAAA,yBAAA,EAA4BH,CAAS,EAAE,EACpD","file":"time-proof-ZOOUFIKS.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 timeProof(filePath: string): Promise<void> {\n const spinner = createSpinner('Generating proof...')\n spinner.start()\n const data = await apiGet<{ proof: string }>(`/api/v1/time/proof?path=${encodeURIComponent(filePath)}`, { authenticated: true })\n spinner.succeed()\n const proofPath = path.join(process.cwd(), `${path.basename(filePath)}.timeproof.json`)\n fs.writeFileSync(proofPath, JSON.stringify({ proof: data.proof, generated_at: new Date().toISOString() }, null, 2))\n logSuccess(`Existence proof saved to ${proofPath}`)\n}\n"]}
@@ -1,2 +1,2 @@
1
- import {d}from'./chunk-BC2OVPRV.js';import'./chunk-NDB6KXYI.js';import {d as d$1}from'./chunk-G4JU7IUC.js';import {f,m,l}from'./chunk-QT7R3AXE.js';import'./chunk-4NTVRCZM.js';import t from'chalk';async function s(e){let i=(await d(`/api/v1/time/status?path=${encodeURIComponent(e)}`,{authenticated:true})).status;if(f()){m(i);return}l(""),l(` ${t.bold(e)}`),l(t.dim(" \u2500\u2500\u2500".repeat(8))),l(` ${t.bold("Locked:")} ${i.locked?t.yellow("yes"):t.green("no")}`),i.unlock_at&&l(` ${t.bold("Unlocks:")} ${i.unlock_at}`),i.time_remaining_ms!==null&&i.time_remaining_ms>0&&l(` ${t.bold("Remaining:")} ${d$1(i.time_remaining_ms)}`),l(` ${t.bold("Proof:")} ${t.dim(i.proof_hash?.slice(0,16)||"-")}`),l("");}export{s as default};//# sourceMappingURL=time-status-TVNJBFKC.js.map
2
- //# sourceMappingURL=time-status-TVNJBFKC.js.map
1
+ import {d}from'./chunk-RXARHDCW.js';import'./chunk-NDB6KXYI.js';import {d as d$1}from'./chunk-G4JU7IUC.js';import {f,m,l}from'./chunk-QT7R3AXE.js';import'./chunk-E2I4VVR5.js';import t from'chalk';async function s(e){let i=(await d(`/api/v1/time/status?path=${encodeURIComponent(e)}`,{authenticated:true})).status;if(f()){m(i);return}l(""),l(` ${t.bold(e)}`),l(t.dim(" \u2500\u2500\u2500".repeat(8))),l(` ${t.bold("Locked:")} ${i.locked?t.yellow("yes"):t.green("no")}`),i.unlock_at&&l(` ${t.bold("Unlocks:")} ${i.unlock_at}`),i.time_remaining_ms!==null&&i.time_remaining_ms>0&&l(` ${t.bold("Remaining:")} ${d$1(i.time_remaining_ms)}`),l(` ${t.bold("Proof:")} ${t.dim(i.proof_hash?.slice(0,16)||"-")}`),l("");}export{s as default};//# sourceMappingURL=time-status-M4QX6GTM.js.map
2
+ //# sourceMappingURL=time-status-M4QX6GTM.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/time/time-status.ts"],"names":["timeStatus","path","s","apiGet","isJsonMode","logJSON","logRaw","chalk","formatCountdown"],"mappings":"oMAaA,eAAOA,CAAAA,CAAkCC,CAAAA,CAA6B,CAEpE,IAAMC,CAAAA,CAAAA,CADO,MAAMC,CAAAA,CAAmC,CAAA,yBAAA,EAA4B,kBAAA,CAAmBF,CAAI,CAAC,CAAA,CAAA,CAAI,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,EACtH,MAAA,CAEf,GAAIG,CAAAA,EAAW,CAAG,CAChBC,CAAAA,CAAQH,CAAC,CAAA,CACT,MACF,CAEAI,CAAAA,CAAO,EAAE,CAAA,CACTA,CAAAA,CAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,IAAA,CAAKN,CAAI,CAAC,CAAA,CAAE,CAAA,CAC9BK,CAAAA,CAAOC,CAAAA,CAAM,GAAA,CAAI,sBAAA,CAAQ,MAAA,CAAO,CAAC,CAAC,CAAC,CAAA,CACnCD,CAAAA,CAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,IAAA,CAAK,SAAS,CAAC,CAAA,EAAA,EAAKL,CAAAA,CAAE,MAAA,CAASK,CAAAA,CAAM,MAAA,CAAO,KAAK,CAAA,CAAIA,CAAAA,CAAM,KAAA,CAAM,IAAI,CAAC,CAAA,CAAE,CAAA,CACtFL,CAAAA,CAAE,SAAA,EACJI,CAAAA,CAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,IAAA,CAAK,UAAU,CAAC,CAAA,CAAA,EAAIL,CAAAA,CAAE,SAAS,CAAA,CAAE,CAAA,CAEjDA,CAAAA,CAAE,iBAAA,GAAsB,IAAA,EAAQA,CAAAA,CAAE,iBAAA,CAAoB,CAAA,EACxDI,CAAAA,CAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,IAAA,CAAK,YAAY,CAAC,CAAA,CAAA,EAAIC,GAAAA,CAAgBN,CAAAA,CAAE,iBAAiB,CAAC,CAAA,CAAE,CAAA,CAEhFI,CAAAA,CAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,IAAA,CAAK,QAAQ,CAAC,CAAA,GAAA,EAAMA,CAAAA,CAAM,GAAA,CAAIL,CAAAA,CAAE,UAAA,EAAY,KAAA,CAAM,CAAA,CAAG,EAAE,CAAA,EAAK,GAAG,CAAC,CAAA,CAAE,CAAA,CACpFI,CAAAA,CAAO,EAAE,EACX","file":"time-status-TVNJBFKC.js","sourcesContent":["import { apiGet } from '../../lib/api/client.js'\nimport { logJSON, logRaw } from '../../lib/output/logger.js'\nimport { isJsonMode } from '../../lib/output/logger.js'\nimport { formatCountdown } from '../../lib/utils/format.js'\nimport chalk from 'chalk'\n\ninterface TimeLockStatus {\n locked: boolean\n unlock_at: string | null\n time_remaining_ms: number | null\n proof_hash: string\n}\n\nexport default async function timeStatus(path: string): Promise<void> {\n const data = await apiGet<{ status: TimeLockStatus }>(`/api/v1/time/status?path=${encodeURIComponent(path)}`, { authenticated: true })\n const s = data.status\n\n if (isJsonMode()) {\n logJSON(s)\n return\n }\n\n logRaw('')\n logRaw(` ${chalk.bold(path)}`)\n logRaw(chalk.dim(' ───'.repeat(8)))\n logRaw(` ${chalk.bold('Locked:')} ${s.locked ? chalk.yellow('yes') : chalk.green('no')}`)\n if (s.unlock_at) {\n logRaw(` ${chalk.bold('Unlocks:')} ${s.unlock_at}`)\n }\n if (s.time_remaining_ms !== null && s.time_remaining_ms > 0) {\n logRaw(` ${chalk.bold('Remaining:')} ${formatCountdown(s.time_remaining_ms)}`)\n }\n logRaw(` ${chalk.bold('Proof:')} ${chalk.dim(s.proof_hash?.slice(0, 16) || '-')}`)\n logRaw('')\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/time/time-status.ts"],"names":["timeStatus","path","s","apiGet","isJsonMode","logJSON","logRaw","chalk","formatCountdown"],"mappings":"oMAaA,eAAOA,CAAAA,CAAkCC,CAAAA,CAA6B,CAEpE,IAAMC,CAAAA,CAAAA,CADO,MAAMC,CAAAA,CAAmC,CAAA,yBAAA,EAA4B,kBAAA,CAAmBF,CAAI,CAAC,CAAA,CAAA,CAAI,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,EACtH,MAAA,CAEf,GAAIG,CAAAA,EAAW,CAAG,CAChBC,CAAAA,CAAQH,CAAC,CAAA,CACT,MACF,CAEAI,CAAAA,CAAO,EAAE,CAAA,CACTA,CAAAA,CAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,IAAA,CAAKN,CAAI,CAAC,CAAA,CAAE,CAAA,CAC9BK,CAAAA,CAAOC,CAAAA,CAAM,GAAA,CAAI,sBAAA,CAAQ,MAAA,CAAO,CAAC,CAAC,CAAC,CAAA,CACnCD,CAAAA,CAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,IAAA,CAAK,SAAS,CAAC,CAAA,EAAA,EAAKL,CAAAA,CAAE,MAAA,CAASK,CAAAA,CAAM,MAAA,CAAO,KAAK,CAAA,CAAIA,CAAAA,CAAM,KAAA,CAAM,IAAI,CAAC,CAAA,CAAE,CAAA,CACtFL,CAAAA,CAAE,SAAA,EACJI,CAAAA,CAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,IAAA,CAAK,UAAU,CAAC,CAAA,CAAA,EAAIL,CAAAA,CAAE,SAAS,CAAA,CAAE,CAAA,CAEjDA,CAAAA,CAAE,iBAAA,GAAsB,IAAA,EAAQA,CAAAA,CAAE,iBAAA,CAAoB,CAAA,EACxDI,CAAAA,CAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,IAAA,CAAK,YAAY,CAAC,CAAA,CAAA,EAAIC,GAAAA,CAAgBN,CAAAA,CAAE,iBAAiB,CAAC,CAAA,CAAE,CAAA,CAEhFI,CAAAA,CAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,IAAA,CAAK,QAAQ,CAAC,CAAA,GAAA,EAAMA,CAAAA,CAAM,GAAA,CAAIL,CAAAA,CAAE,UAAA,EAAY,KAAA,CAAM,CAAA,CAAG,EAAE,CAAA,EAAK,GAAG,CAAC,CAAA,CAAE,CAAA,CACpFI,CAAAA,CAAO,EAAE,EACX","file":"time-status-M4QX6GTM.js","sourcesContent":["import { apiGet } from '../../lib/api/client.js'\nimport { logJSON, logRaw } from '../../lib/output/logger.js'\nimport { isJsonMode } from '../../lib/output/logger.js'\nimport { formatCountdown } from '../../lib/utils/format.js'\nimport chalk from 'chalk'\n\ninterface TimeLockStatus {\n locked: boolean\n unlock_at: string | null\n time_remaining_ms: number | null\n proof_hash: string\n}\n\nexport default async function timeStatus(path: string): Promise<void> {\n const data = await apiGet<{ status: TimeLockStatus }>(`/api/v1/time/status?path=${encodeURIComponent(path)}`, { authenticated: true })\n const s = data.status\n\n if (isJsonMode()) {\n logJSON(s)\n return\n }\n\n logRaw('')\n logRaw(` ${chalk.bold(path)}`)\n logRaw(chalk.dim(' ───'.repeat(8)))\n logRaw(` ${chalk.bold('Locked:')} ${s.locked ? chalk.yellow('yes') : chalk.green('no')}`)\n if (s.unlock_at) {\n logRaw(` ${chalk.bold('Unlocks:')} ${s.unlock_at}`)\n }\n if (s.time_remaining_ms !== null && s.time_remaining_ms > 0) {\n logRaw(` ${chalk.bold('Remaining:')} ${formatCountdown(s.time_remaining_ms)}`)\n }\n logRaw(` ${chalk.bold('Proof:')} ${chalk.dim(s.proof_hash?.slice(0, 16) || '-')}`)\n logRaw('')\n}\n"]}
@@ -1,2 +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,h}from'./chunk-QT7R3AXE.js';import'./chunk-4NTVRCZM.js';async function i(t){let o=b(`Attempting to unlock ${t}...`);o.start();try{(await e("/api/v1/time/unlock",{path:t},{authenticated:!0})).unlocked?(o.succeed(),g(`Unlocked ${t}`)):(o.fail(),h("Cannot unlock yet \u2014 lock time has not passed"),process.exit(1));}catch{throw o.fail(),new Error("Cannot unlock yet \u2014 lock time has not passed")}}export{i as default};//# sourceMappingURL=time-unlock-OO6QH5R6.js.map
2
- //# sourceMappingURL=time-unlock-OO6QH5R6.js.map
1
+ import {b}from'./chunk-FYFPDKJM.js';import {e}from'./chunk-RXARHDCW.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {g,h}from'./chunk-QT7R3AXE.js';import'./chunk-E2I4VVR5.js';async function i(t){let o=b(`Attempting to unlock ${t}...`);o.start();try{(await e("/api/v1/time/unlock",{path:t},{authenticated:!0})).unlocked?(o.succeed(),g(`Unlocked ${t}`)):(o.fail(),h("Cannot unlock yet \u2014 lock time has not passed"),process.exit(1));}catch{throw o.fail(),new Error("Cannot unlock yet \u2014 lock time has not passed")}}export{i as default};//# sourceMappingURL=time-unlock-UPHP5V74.js.map
2
+ //# sourceMappingURL=time-unlock-UPHP5V74.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/time/time-unlock.ts"],"names":["timeUnlock","path","spinner","createSpinner","apiPost","logSuccess","logError"],"mappings":"kMAIA,eAAOA,CAAAA,CAAkCC,CAAAA,CAA6B,CACpE,IAAMC,CAAAA,CAAUC,CAAAA,CAAc,CAAA,qBAAA,EAAwBF,CAAI,CAAA,GAAA,CAAK,CAAA,CAC/DC,CAAAA,CAAQ,KAAA,EAAM,CACd,GAAI,CAAA,CACa,MAAME,CAAAA,CAA+B,qBAAA,CAAuB,CAAE,IAAA,CAAAH,CAAK,CAAA,CAAG,CAAE,aAAA,CAAe,CAAA,CAAK,CAAC,CAAA,EACjG,QAAA,EACTC,EAAQ,OAAA,EAAQ,CAChBG,CAAAA,CAAW,CAAA,SAAA,EAAYJ,CAAI,CAAA,CAAE,CAAA,GAE7BC,CAAAA,CAAQ,IAAA,EAAK,CACbI,CAAAA,CAAS,mDAA8C,CAAA,CACvD,OAAA,CAAQ,KAAK,CAAC,CAAA,EAElB,CAAA,KAAQ,CACN,MAAAJ,CAAAA,CAAQ,IAAA,EAAK,CACP,IAAI,KAAA,CAAM,mDAA8C,CAChE,CACF","file":"time-unlock-OO6QH5R6.js","sourcesContent":["import { apiPost } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess, logError } from '../../lib/output/logger.js'\n\nexport default async function timeUnlock(path: string): Promise<void> {\n const spinner = createSpinner(`Attempting to unlock ${path}...`)\n spinner.start()\n try {\n const result = await apiPost<{ unlocked: boolean }>('/api/v1/time/unlock', { path }, { authenticated: true })\n if (result.unlocked) {\n spinner.succeed()\n logSuccess(`Unlocked ${path}`)\n } else {\n spinner.fail()\n logError('Cannot unlock yet — lock time has not passed')\n process.exit(1)\n }\n } catch {\n spinner.fail()\n throw new Error('Cannot unlock yet — lock time has not passed')\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/time/time-unlock.ts"],"names":["timeUnlock","path","spinner","createSpinner","apiPost","logSuccess","logError"],"mappings":"kMAIA,eAAOA,CAAAA,CAAkCC,CAAAA,CAA6B,CACpE,IAAMC,CAAAA,CAAUC,CAAAA,CAAc,CAAA,qBAAA,EAAwBF,CAAI,CAAA,GAAA,CAAK,CAAA,CAC/DC,CAAAA,CAAQ,KAAA,EAAM,CACd,GAAI,CAAA,CACa,MAAME,CAAAA,CAA+B,qBAAA,CAAuB,CAAE,IAAA,CAAAH,CAAK,CAAA,CAAG,CAAE,aAAA,CAAe,CAAA,CAAK,CAAC,CAAA,EACjG,QAAA,EACTC,EAAQ,OAAA,EAAQ,CAChBG,CAAAA,CAAW,CAAA,SAAA,EAAYJ,CAAI,CAAA,CAAE,CAAA,GAE7BC,CAAAA,CAAQ,IAAA,EAAK,CACbI,CAAAA,CAAS,mDAA8C,CAAA,CACvD,OAAA,CAAQ,KAAK,CAAC,CAAA,EAElB,CAAA,KAAQ,CACN,MAAAJ,CAAAA,CAAQ,IAAA,EAAK,CACP,IAAI,KAAA,CAAM,mDAA8C,CAChE,CACF","file":"time-unlock-UPHP5V74.js","sourcesContent":["import { apiPost } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess, logError } from '../../lib/output/logger.js'\n\nexport default async function timeUnlock(path: string): Promise<void> {\n const spinner = createSpinner(`Attempting to unlock ${path}...`)\n spinner.start()\n try {\n const result = await apiPost<{ unlocked: boolean }>('/api/v1/time/unlock', { path }, { authenticated: true })\n if (result.unlocked) {\n spinner.succeed()\n logSuccess(`Unlocked ${path}`)\n } else {\n spinner.fail()\n logError('Cannot unlock yet — lock time has not passed')\n process.exit(1)\n }\n } catch {\n spinner.fail()\n throw new Error('Cannot unlock yet — lock time has not passed')\n }\n}\n"]}
@@ -1,2 +1,2 @@
1
- import {b}from'./chunk-THMWE2I6.js';import {d as d$1}from'./chunk-G4JU7IUC.js';import {h,f,m as m$1}from'./chunk-QT7R3AXE.js';import {m,r}from'./chunk-4NTVRCZM.js';import o from'chalk';async function d(){let e=await m();if(e||(h("Not authenticated"),process.exit(1)),f()){m$1({authenticated:true,user:e.user,session_id:e.session_id,expires_at:e.expires_at});return}let m$2=r(e),u=[{key:o.bold("Email"),value:e.user.email},{key:o.bold("Username"),value:e.user.username},{key:o.bold("Plan"),value:o.hex("#7C4DFF")(e.user.plan)},{key:o.bold("Session Expires"),value:d$1(m$2)}];console.log(b(u,[{key:"key",label:"Attribute"},{key:"value",label:"Value"}]));}export{d as default};//# sourceMappingURL=whoami-SAURQARO.js.map
2
- //# sourceMappingURL=whoami-SAURQARO.js.map
1
+ import {b}from'./chunk-THMWE2I6.js';import {d as d$1}from'./chunk-G4JU7IUC.js';import {h,f,m as m$1}from'./chunk-QT7R3AXE.js';import {m,r}from'./chunk-E2I4VVR5.js';import o from'chalk';async function d(){let e=await m();if(e||(h("Not authenticated"),process.exit(1)),f()){m$1({authenticated:true,user:e.user,session_id:e.session_id,expires_at:e.expires_at});return}let m$2=r(e),u=[{key:o.bold("Email"),value:e.user.email},{key:o.bold("Username"),value:e.user.username},{key:o.bold("Plan"),value:o.hex("#7C4DFF")(e.user.plan)},{key:o.bold("Session Expires"),value:d$1(m$2)}];console.log(b(u,[{key:"key",label:"Attribute"},{key:"value",label:"Value"}]));}export{d as default};//# sourceMappingURL=whoami-2ABU6JQD.js.map
2
+ //# sourceMappingURL=whoami-2ABU6JQD.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/auth/whoami.ts"],"names":["whoami","session","loadSession","logError","isJsonMode","logJSON","timeLeft","getTimeUntilExpiry","rows","chalk","formatCountdown","renderCompactTable"],"mappings":"yLAOA,eAAOA,CAAAA,EAA+C,CACpD,IAAMC,CAAAA,CAAU,MAAMC,CAAAA,EAAY,CAMlC,GALKD,CAAAA,GACHE,EAAS,mBAAmB,CAAA,CAC5B,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,CAAA,CAGZC,CAAAA,EAAW,CAAG,CAChBC,GAAAA,CAAQ,CACN,aAAA,CAAe,IAAA,CACf,IAAA,CAAMJ,EAAQ,IAAA,CACd,UAAA,CAAYA,CAAAA,CAAQ,UAAA,CACpB,UAAA,CAAYA,CAAAA,CAAQ,UACtB,CAAC,CAAA,CACD,MACF,CAEA,IAAMK,GAAAA,CAAWC,CAAAA,CAAmBN,CAAO,CAAA,CACrCO,CAAAA,CAAO,CACX,CAAE,GAAA,CAAKC,CAAAA,CAAM,IAAA,CAAK,OAAO,CAAA,CAAG,KAAA,CAAOR,CAAAA,CAAQ,IAAA,CAAK,KAAM,CAAA,CACtD,CAAE,GAAA,CAAKQ,CAAAA,CAAM,IAAA,CAAK,UAAU,CAAA,CAAG,KAAA,CAAOR,CAAAA,CAAQ,IAAA,CAAK,QAAS,CAAA,CAC5D,CAAE,GAAA,CAAKQ,CAAAA,CAAM,IAAA,CAAK,MAAM,CAAA,CAAG,KAAA,CAAOA,CAAAA,CAAM,GAAA,CAAI,SAAS,CAAA,CAAER,CAAAA,CAAQ,IAAA,CAAK,IAAI,CAAE,CAAA,CAC1E,CAAE,GAAA,CAAKQ,CAAAA,CAAM,KAAK,iBAAiB,CAAA,CAAG,KAAA,CAAOC,GAAAA,CAAgBJ,GAAQ,CAAE,CACzE,CAAA,CAEA,OAAA,CAAQ,GAAA,CAAIK,CAAAA,CAAmBH,CAAAA,CAAM,CACnC,CAAE,IAAK,KAAA,CAAO,KAAA,CAAO,WAAY,CAAA,CACjC,CAAE,GAAA,CAAK,OAAA,CAAS,KAAA,CAAO,OAAQ,CACjC,CAAC,CAAC,EACJ","file":"whoami-SAURQARO.js","sourcesContent":["import { loadSession, getTimeUntilExpiry } from '../../lib/auth/session.js'\nimport { logError, logJSON } from '../../lib/output/logger.js'\nimport { isJsonMode } from '../../lib/output/logger.js'\nimport { formatCountdown } from '../../lib/utils/format.js'\nimport chalk from 'chalk'\nimport { renderCompactTable } from '../../lib/output/table.js'\n\nexport default async function whoami(): Promise<void> {\n const session = await loadSession()\n if (!session) {\n logError('Not authenticated')\n process.exit(1)\n }\n\n if (isJsonMode()) {\n logJSON({\n authenticated: true,\n user: session.user,\n session_id: session.session_id,\n expires_at: session.expires_at,\n })\n return\n }\n\n const timeLeft = getTimeUntilExpiry(session)\n const rows = [\n { key: chalk.bold('Email'), value: session.user.email },\n { key: chalk.bold('Username'), value: session.user.username },\n { key: chalk.bold('Plan'), value: chalk.hex('#7C4DFF')(session.user.plan) },\n { key: chalk.bold('Session Expires'), value: formatCountdown(timeLeft) },\n ]\n\n console.log(renderCompactTable(rows, [\n { key: 'key', label: 'Attribute' },\n { key: 'value', label: 'Value' },\n ]))\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/auth/whoami.ts"],"names":["whoami","session","loadSession","logError","isJsonMode","logJSON","timeLeft","getTimeUntilExpiry","rows","chalk","formatCountdown","renderCompactTable"],"mappings":"yLAOA,eAAOA,CAAAA,EAA+C,CACpD,IAAMC,CAAAA,CAAU,MAAMC,CAAAA,EAAY,CAMlC,GALKD,CAAAA,GACHE,EAAS,mBAAmB,CAAA,CAC5B,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,CAAA,CAGZC,CAAAA,EAAW,CAAG,CAChBC,GAAAA,CAAQ,CACN,aAAA,CAAe,IAAA,CACf,IAAA,CAAMJ,EAAQ,IAAA,CACd,UAAA,CAAYA,CAAAA,CAAQ,UAAA,CACpB,UAAA,CAAYA,CAAAA,CAAQ,UACtB,CAAC,CAAA,CACD,MACF,CAEA,IAAMK,GAAAA,CAAWC,CAAAA,CAAmBN,CAAO,CAAA,CACrCO,CAAAA,CAAO,CACX,CAAE,GAAA,CAAKC,CAAAA,CAAM,IAAA,CAAK,OAAO,CAAA,CAAG,KAAA,CAAOR,CAAAA,CAAQ,IAAA,CAAK,KAAM,CAAA,CACtD,CAAE,GAAA,CAAKQ,CAAAA,CAAM,IAAA,CAAK,UAAU,CAAA,CAAG,KAAA,CAAOR,CAAAA,CAAQ,IAAA,CAAK,QAAS,CAAA,CAC5D,CAAE,GAAA,CAAKQ,CAAAA,CAAM,IAAA,CAAK,MAAM,CAAA,CAAG,KAAA,CAAOA,CAAAA,CAAM,GAAA,CAAI,SAAS,CAAA,CAAER,CAAAA,CAAQ,IAAA,CAAK,IAAI,CAAE,CAAA,CAC1E,CAAE,GAAA,CAAKQ,CAAAA,CAAM,KAAK,iBAAiB,CAAA,CAAG,KAAA,CAAOC,GAAAA,CAAgBJ,GAAQ,CAAE,CACzE,CAAA,CAEA,OAAA,CAAQ,GAAA,CAAIK,CAAAA,CAAmBH,CAAAA,CAAM,CACnC,CAAE,IAAK,KAAA,CAAO,KAAA,CAAO,WAAY,CAAA,CACjC,CAAE,GAAA,CAAK,OAAA,CAAS,KAAA,CAAO,OAAQ,CACjC,CAAC,CAAC,EACJ","file":"whoami-2ABU6JQD.js","sourcesContent":["import { loadSession, getTimeUntilExpiry } from '../../lib/auth/session.js'\nimport { logError, logJSON } from '../../lib/output/logger.js'\nimport { isJsonMode } from '../../lib/output/logger.js'\nimport { formatCountdown } from '../../lib/utils/format.js'\nimport chalk from 'chalk'\nimport { renderCompactTable } from '../../lib/output/table.js'\n\nexport default async function whoami(): Promise<void> {\n const session = await loadSession()\n if (!session) {\n logError('Not authenticated')\n process.exit(1)\n }\n\n if (isJsonMode()) {\n logJSON({\n authenticated: true,\n user: session.user,\n session_id: session.session_id,\n expires_at: session.expires_at,\n })\n return\n }\n\n const timeLeft = getTimeUntilExpiry(session)\n const rows = [\n { key: chalk.bold('Email'), value: session.user.email },\n { key: chalk.bold('Username'), value: session.user.username },\n { key: chalk.bold('Plan'), value: chalk.hex('#7C4DFF')(session.user.plan) },\n { key: chalk.bold('Session Expires'), value: formatCountdown(timeLeft) },\n ]\n\n console.log(renderCompactTable(rows, [\n { key: 'key', label: 'Attribute' },\n { key: 'value', label: 'Value' },\n ]))\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "squidcloudctl",
3
- "version": "1.1.2",
3
+ "version": "1.1.3",
4
4
  "description": "SquidCloud CLI — deploy, storage, sites, pipelines, and more",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,2 +0,0 @@
1
- import s from'os';import S from'path';import a,{existsSync,readFileSync}from'fs';import {randomBytes}from'@noble/hashes/utils';import {sha256}from'@noble/hashes/sha256';import {hkdf}from'@noble/hashes/hkdf';import {gcm}from'@noble/ciphers/aes';import {utils,getPublicKey,verify}from'@noble/ed25519';import {x25519}from'@noble/curves/ed25519.js';import {sha512}from'@noble/hashes/sha512';import {hmac}from'@noble/hashes/hmac';import {blake3}from'@noble/hashes/blake3';import {pbkdf2Sync,createHash}from'crypto';utils.sha512Sync=sha512;var F="squidcloud-session-v1";function it(){let t=utils.randomPrivateKey();return {pub:getPublicKey(t),priv:t}}function ot(){return randomBytes(32)}function st(t,r){let e=Buffer.from(r.slice(0,32).padEnd(32,"\0"));return pbkdf2Sync(t,e,1e5,32,"sha512")}function at(t,r,e,n){let i=new Uint8Array(t.length+r.length+e.length+8);i.set(t,0),i.set(r,t.length),i.set(e,t.length+r.length);let o=new Uint8Array(8);return new DataView(o.buffer).setBigUint64(0,BigInt(n),false),i.set(o,t.length+r.length+e.length),blake3(i)}function ct(t,r){return x25519.getSharedSecret(r,t)}function ut(t,r,e){let n=new Uint8Array(r.length+e.length);return n.set(r,0),n.set(e,r.length),hkdf(sha256,t,n,F,32)}function pt(t,r,e,n){let i=new Uint8Array(t.length+e.length);i.set(t,0),i.set(e,t.length);let m=gcm(n,r).decrypt(i);return JSON.parse(new TextDecoder().decode(m))}function mt(t,r,e){return verify(t,r,e)}function ft(t,r){return Buffer.from(hmac(sha256,t,r)).toString("hex")}function c(t){return Buffer.from(t).toString("hex")}function f(t){return new Uint8Array(Buffer.from(t,"hex"))}var O=["/etc/machine-id","/var/lib/dbus/machine-id","/etc/hostid"];function J(){for(let r of O)try{if(existsSync(r))return readFileSync(r,"utf-8").trim()}catch{continue}return createHash("sha256").update(s.hostname()+s.arch()+s.platform()).digest("hex")}function l(){let e=[J(),s.hostname(),s.platform(),s.arch(),s.release()].join(":");return c(blake3(e))}var d=S.join(s.homedir(),".squidcloud"),u=S.join(d,".session");function x(){let t=l(),r=new TextEncoder().encode(t);return hkdf(sha256,r,new Uint8Array(32),"squidcloud-fallback-v1",32)}async function A(t){let r=x(),e=randomBytes(12),n=new TextEncoder().encode(t),o=gcm(r,e).encrypt(n);a.existsSync(d)||a.mkdirSync(d,{recursive:true,mode:448});let m={iv:c(e),data:c(o)};a.writeFileSync(u,JSON.stringify(m),{mode:384,encoding:"utf-8"});}async function U(){try{if(!a.existsSync(u))return null;let t=a.readFileSync(u,"utf-8"),{iv:r,data:e}=JSON.parse(t),n=x(),o=gcm(n,f(r)).decrypt(f(e));return new TextDecoder().decode(o)}catch{return null}}async function p(){try{a.existsSync(u)&&a.unlinkSync(u);}catch{}}async function Ft(){try{let t=await U();if(!t)return null;let r=JSON.parse(t);return !r.session_id||!r.access_token?(await p(),null):r}catch{return await p(),null}}async function It(t){await A(JSON.stringify(t));}async function Et(){await p();}function Ht(t){return Date.now()>=t.expires_at}function Kt(t){return t.expires_at-Date.now()<=12e4}function Ot(t){return t.expires_at-Date.now()}export{it as a,ot as b,st as c,at as d,ct as e,ut as f,pt as g,mt as h,ft as i,c as j,f as k,l,Ft as m,It as n,Et as o,Ht as p,Kt as q,Ot as r};//# sourceMappingURL=chunk-4NTVRCZM.js.map
2
- //# sourceMappingURL=chunk-4NTVRCZM.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/lib/crypto/ssp.ts","../src/lib/auth/fingerprint.ts","../src/lib/auth/keychain.ts","../src/lib/auth/session.ts"],"names":["edUtils","sha512","HKDF_INFO","generateKeypair","priv","getPublicKey","generateNonce","randomBytes","hashPassword","password","email","salt","pbkdf2Sync","computeSignPayload","clientNonce","serverNonce","clientPub","timestamp","payload","tsBuf","blake3","deriveSharedSecret","pub","x25519","deriveEncryptionKey","ecdhSecret","hkdf","sha256","decryptSession","encrypted","iv","tag","key","combined","plaintext","gcm","verifyServerSignature","signature","serverPub","verify","computeHMAC","data","hmac","bytesToHex","buf","hexToBytes","hex","MACHINE_ID_PATHS","getMachineId","p","existsSync","readFileSync","createHash","os","computeDeviceFingerprint","FALLBACK_DIR","path","FALLBACK_FILE","getFallbackKey","fingerprint","ikm","storeSession","sessionJson","fs","getSession","raw","decrypted","deleteSession","loadSession","session","saveSession","clearSession","isSessionExpired","shouldRefreshToken","getTimeUntilExpiry"],"mappings":"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","file":"chunk-4NTVRCZM.js","sourcesContent":["import { getPublicKey, sign, verify, utils as edUtils } from '@noble/ed25519'\nimport { x25519 } from '@noble/curves/ed25519.js'\nimport { sha256 } from '@noble/hashes/sha256'\nimport { sha512 } from '@noble/hashes/sha512'\nimport { hmac } from '@noble/hashes/hmac'\nimport { hkdf } from '@noble/hashes/hkdf'\nimport { blake3 } from '@noble/hashes/blake3'\nimport { randomBytes } from '@noble/hashes/utils'\nimport { gcm } from '@noble/ciphers/aes'\nimport { pbkdf2Sync } from 'node:crypto'\nimport { hostname, platform, arch } from 'node:os'\n\nedUtils.sha512Sync = sha512\n\nconst HKDF_INFO = 'squidcloud-session-v1'\n\nexport interface SSPHello {\n email: string\n password_proof: string\n client_ephemeral_pub: string\n client_nonce: string\n device_fingerprint: string\n timestamp: number\n}\n\nexport interface SSPResponse {\n server_nonce: string\n server_ephemeral_pub: string\n server_signature: string\n encrypted_session: string\n session_iv: string\n session_tag: string\n}\n\nexport interface SquidSession {\n session_id: string\n access_token: string\n refresh_token: string\n refresh_token_id: string\n device_fingerprint: string\n issued_at: number\n expires_at: number\n user: {\n id: string\n email: string\n username: string\n plan: 'free' | 'pro' | 'team'\n }\n}\n\nexport function generateKeypair(): { pub: Uint8Array; priv: Uint8Array } {\n const priv = edUtils.randomPrivateKey()\n const pub = getPublicKey(priv)\n return { pub, priv }\n}\n\nexport function generateNonce(): Uint8Array {\n return randomBytes(32)\n}\n\nexport function hashPassword(password: string, email: string): Buffer {\n const salt = Buffer.from(email.slice(0, 32).padEnd(32, '\\x00'))\n return pbkdf2Sync(password, salt, 100000, 32, 'sha512')\n}\n\nexport function computeDeviceFingerprint(machineId: string): string {\n const data = `${machineId}:${hostname()}:${platform()}:${arch()}`\n return Buffer.from(blake3(data)).toString('hex')\n}\n\nexport function computeSignPayload(clientNonce: Uint8Array, serverNonce: Uint8Array, clientPub: Uint8Array, timestamp: number): Uint8Array {\n const payload = new Uint8Array(clientNonce.length + serverNonce.length + clientPub.length + 8)\n payload.set(clientNonce, 0)\n payload.set(serverNonce, clientNonce.length)\n payload.set(clientPub, clientNonce.length + serverNonce.length)\n const tsBuf = new Uint8Array(8)\n new DataView(tsBuf.buffer).setBigUint64(0, BigInt(timestamp), false)\n payload.set(tsBuf, clientNonce.length + serverNonce.length + clientPub.length)\n return blake3(payload)\n}\n\nexport function deriveSharedSecret(pub: Uint8Array, priv: Uint8Array): Uint8Array {\n return x25519.getSharedSecret(priv, pub)\n}\n\nexport function deriveEncryptionKey(ecdhSecret: Uint8Array, clientNonce: Uint8Array, serverNonce: Uint8Array): Uint8Array {\n const salt = new Uint8Array(clientNonce.length + serverNonce.length)\n salt.set(clientNonce, 0)\n salt.set(serverNonce, clientNonce.length)\n return hkdf(sha256, ecdhSecret, salt, HKDF_INFO, 32)\n}\n\nexport function encryptSession(session: SquidSession, key: Uint8Array): { ciphertext: Uint8Array; iv: Uint8Array; tag: Uint8Array } {\n const iv = randomBytes(12)\n const plaintext = new TextEncoder().encode(JSON.stringify(session))\n const aes = gcm(key, iv)\n const encrypted = aes.encrypt(plaintext)\n const ciphertext = encrypted.slice(0, -16)\n const tag = encrypted.slice(-16)\n return { ciphertext, iv, tag }\n}\n\nexport function decryptSession(encrypted: Uint8Array, iv: Uint8Array, tag: Uint8Array, key: Uint8Array): SquidSession {\n const combined = new Uint8Array(encrypted.length + tag.length)\n combined.set(encrypted, 0)\n combined.set(tag, encrypted.length)\n const aes = gcm(key, iv)\n const plaintext = aes.decrypt(combined)\n return JSON.parse(new TextDecoder().decode(plaintext)) as SquidSession\n}\n\nexport function verifyServerSignature(signature: Uint8Array, payload: Uint8Array, serverPub: Uint8Array): Promise<boolean> {\n return verify(signature, payload, serverPub)\n}\n\nexport function signPayload(priv: Uint8Array, payload: Uint8Array): Promise<Uint8Array> {\n return sign(payload, priv)\n}\n\nexport function computeHMAC(key: Uint8Array, data: string): string {\n return Buffer.from(hmac(sha256, key, data)).toString('hex')\n}\n\nexport function bytesToHex(buf: Uint8Array): string {\n return Buffer.from(buf).toString('hex')\n}\n\nexport function hexToBytes(hex: string): Uint8Array {\n return new Uint8Array(Buffer.from(hex, 'hex'))\n}\n","import { createHash, randomBytes } from 'node:crypto'\nimport os from 'node:os'\nimport { readFileSync, existsSync } from 'node:fs'\nimport { blake3 } from '@noble/hashes/blake3'\nimport { bytesToHex } from '../crypto/ssp.js'\n\nconst MACHINE_ID_PATHS = [\n '/etc/machine-id',\n '/var/lib/dbus/machine-id',\n '/etc/hostid',\n]\n\nfunction getMachineId(): string {\n for (const p of MACHINE_ID_PATHS) {\n try {\n if (existsSync(p)) {\n return readFileSync(p, 'utf-8').trim()\n }\n } catch {\n continue\n }\n }\n const h = createHash('sha256').update(os.hostname() + os.arch() + os.platform()).digest('hex')\n return h\n}\n\nexport function computeDeviceFingerprint(): string {\n const machineId = getMachineId()\n const components = [\n machineId,\n os.hostname(),\n os.platform(),\n os.arch(),\n os.release(),\n ]\n const data = components.join(':')\n return bytesToHex(blake3(data))\n}\n\nexport function generateDeviceId(): string {\n return randomBytes(32).toString('hex')\n}\n","import os from 'node:os'\nimport path from 'node:path'\nimport fs from 'node:fs'\nimport { randomBytes } from '@noble/hashes/utils'\nimport { sha256 } from '@noble/hashes/sha256'\nimport { hkdf } from '@noble/hashes/hkdf'\nimport { blake3 } from '@noble/hashes/blake3'\nimport { gcm } from '@noble/ciphers/aes'\nimport { bytesToHex, hexToBytes } from '../crypto/ssp.js'\nimport { computeDeviceFingerprint } from './fingerprint.js'\n\nconst FALLBACK_DIR = path.join(os.homedir(), '.squidcloud')\nconst FALLBACK_FILE = path.join(FALLBACK_DIR, '.session')\n\nfunction getFallbackKey(): Uint8Array {\n const fingerprint = computeDeviceFingerprint()\n const ikm = new TextEncoder().encode(fingerprint)\n return hkdf(sha256, ikm, new Uint8Array(32), 'squidcloud-fallback-v1', 32)\n}\n\nexport async function storeSession(sessionJson: string): Promise<void> {\n const key = getFallbackKey()\n const iv = randomBytes(12)\n const plaintext = new TextEncoder().encode(sessionJson)\n const aes = gcm(key, iv)\n const encrypted = aes.encrypt(plaintext)\n if (!fs.existsSync(FALLBACK_DIR)) {\n fs.mkdirSync(FALLBACK_DIR, { recursive: true, mode: 0o700 })\n }\n const payload = {\n iv: bytesToHex(iv),\n data: bytesToHex(encrypted),\n }\n fs.writeFileSync(FALLBACK_FILE, JSON.stringify(payload), { mode: 0o600, encoding: 'utf-8' })\n}\n\nexport async function getSession(): Promise<string | null> {\n try {\n if (!fs.existsSync(FALLBACK_FILE)) return null\n const raw = fs.readFileSync(FALLBACK_FILE, 'utf-8')\n const { iv, data } = JSON.parse(raw) as { iv: string; data: string }\n const key = getFallbackKey()\n const aes = gcm(key, hexToBytes(iv))\n const decrypted = aes.decrypt(hexToBytes(data))\n return new TextDecoder().decode(decrypted)\n } catch {\n return null\n }\n}\n\nexport async function deleteSession(): Promise<void> {\n try {\n if (fs.existsSync(FALLBACK_FILE)) {\n fs.unlinkSync(FALLBACK_FILE)\n }\n } catch {\n // ignore\n }\n}\n","import { SquidSession } from '../crypto/ssp.js'\nimport { storeSession, getSession, deleteSession } from './keychain.js'\n\nexport async function loadSession(): Promise<SquidSession | null> {\n try {\n const raw = await getSession()\n if (!raw) return null\n const session = JSON.parse(raw) as SquidSession\n if (!session.session_id || !session.access_token) {\n await deleteSession()\n return null\n }\n return session\n } catch {\n await deleteSession()\n return null\n }\n}\n\nexport async function saveSession(session: SquidSession): Promise<void> {\n await storeSession(JSON.stringify(session))\n}\n\nexport async function clearSession(): Promise<void> {\n await deleteSession()\n}\n\nexport function isSessionExpired(session: SquidSession): boolean {\n return Date.now() >= session.expires_at\n}\n\nexport function shouldRefreshToken(session: SquidSession): boolean {\n const twoMinutes = 2 * 60 * 1000\n return (session.expires_at - Date.now()) <= twoMinutes\n}\n\nexport function getTimeUntilExpiry(session: SquidSession): number {\n return session.expires_at - Date.now()\n}\n"]}
@@ -1,2 +0,0 @@
1
- export{c as ApiError,g as apiDelete,d as apiGet,e as apiPost,f as apiPut,b as apiRequest,h as apiUpload}from'./chunk-BC2OVPRV.js';import'./chunk-NDB6KXYI.js';import'./chunk-4NTVRCZM.js';//# sourceMappingURL=client-RFYERFWZ.js.map
2
- //# sourceMappingURL=client-RFYERFWZ.js.map
@@ -1,2 +0,0 @@
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 m(i,e$1){let t=b(`Inviting ${e$1.email} to "${i}" as ${e$1.role}...`);t.start(),await e("/api/v1/collab/invite",{folder:i,email:e$1.email,role:e$1.role},{authenticated:true}),t.succeed(),g(`Invited ${e$1.email} to "${i}" as ${e$1.role}`);}export{m as default};//# sourceMappingURL=collab-invite-HAMMPEAQ.js.map
2
- //# sourceMappingURL=collab-invite-HAMMPEAQ.js.map
@@ -1,2 +0,0 @@
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(e$1,i){let m=b(`Removing ${i.email} from "${e$1}"...`);m.start(),await e("/api/v1/collab/remove",{folder:e$1,email:i.email},{authenticated:true}),m.succeed(),g(`Removed ${i.email} from "${e$1}"`);}export{o as default};//# sourceMappingURL=collab-remove-DO4BIA5R.js.map
2
- //# sourceMappingURL=collab-remove-DO4BIA5R.js.map
@@ -1,2 +0,0 @@
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 n from'inquirer';async function m(o){let{confirm:t}=await n.prompt([{type:"confirm",name:"confirm",message:"Delete ALL submissions for this file request? This cannot be undone.",default:false}]);if(!t)return;let e=b("Clearing submissions...");e.start(),await g(`/api/v1/forms/${o}/submissions`,{authenticated:true}),e.succeed(),g$1("All submissions cleared");}export{m as default};//# sourceMappingURL=forms-clear-UJ23UHUN.js.map
2
- //# sourceMappingURL=forms-clear-UJ23UHUN.js.map
@@ -1,2 +0,0 @@
1
- import {b}from'./chunk-FYFPDKJM.js';import {e}from'./chunk-BC2OVPRV.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {f,m,g}from'./chunk-QT7R3AXE.js';import'./chunk-4NTVRCZM.js';async function a(r,c){let e$1=b(`Creating file request "${r}"...`);e$1.start();let t=await e("/api/v1/forms",{name:r,folder:c?.folder},{authenticated:true});if(e$1.succeed(),f()){m(t);return}g(`File request "${r}" created (${t.id.slice(0,8)})`);}export{a as default};//# sourceMappingURL=forms-create-CWC7MGOJ.js.map
2
- //# sourceMappingURL=forms-create-CWC7MGOJ.js.map
@@ -1,2 +0,0 @@
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,2 +0,0 @@
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,2 +0,0 @@
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,2 +0,0 @@
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,2 +0,0 @@
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,2 +0,0 @@
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,3 +0,0 @@
1
- import {d}from'./chunk-BC2OVPRV.js';import'./chunk-NDB6KXYI.js';import {j}from'./chunk-QT7R3AXE.js';import'./chunk-4NTVRCZM.js';import a from'open';async function r(t){let i=(await d(`/api/v1/sites/${t}`,{authenticated:true})).site.url||`https://squidcloud.vercel.app/sites/${t}`;j(`Opening ${i}...`),await a(i);}
2
- export{r as default};//# sourceMappingURL=sites-open-R7A5EQWM.js.map
3
- //# sourceMappingURL=sites-open-R7A5EQWM.js.map
@@ -1,2 +0,0 @@
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 c(e$1){let r=b(`Purging CDN cache for ${e$1}...`);r.start(),await e(`/api/v1/sites/${e$1}/purge`,{},{authenticated:true}),r.succeed(),g(`CDN cache purged for ${e$1}`);}export{c as default};//# sourceMappingURL=sites-purge-VHERQRUB.js.map
2
- //# sourceMappingURL=sites-purge-VHERQRUB.js.map
@@ -1,2 +0,0 @@
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 c(i,e$1){let t=e$1.public?"public":e$1.private?"private":"public",o=b(`Setting ${i} visibility to ${t}...`);o.start(),await e(`/api/v1/sites/${i}/visibility`,{visibility:t},{authenticated:true}),o.succeed(),g(`Site ${i} is now ${t}`);}export{c as default};//# sourceMappingURL=sites-visibility-R3AQJ76F.js.map
2
- //# sourceMappingURL=sites-visibility-R3AQJ76F.js.map
@@ -1,2 +0,0 @@
1
- import {b}from'./chunk-FYFPDKJM.js';import {d}from'./chunk-BC2OVPRV.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {l}from'./chunk-QT7R3AXE.js';import'./chunk-4NTVRCZM.js';async function i(t){let o=b(`Fetching ${t}...`);o.start();let a=await d(`/api/v1/storage/cat?path=${encodeURIComponent(t)}`,{authenticated:true});o.stop(),l(a.content);}export{i as default};//# sourceMappingURL=storage-cat-HXFOJJG5.js.map
2
- //# sourceMappingURL=storage-cat-HXFOJJG5.js.map
@@ -1,2 +0,0 @@
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 {g}from'./chunk-QT7R3AXE.js';import'./chunk-4NTVRCZM.js';async function e(t,i){let o=b(`Copying ${t} \u2192 ${i}...`);o.start(),await e$1("/api/v1/storage/copy",{source:t,destination:i},{authenticated:true}),o.succeed(),g(`Copied ${t} \u2192 ${i}`);}export{e as default};//# sourceMappingURL=storage-cp-JTPTXZRQ.js.map
2
- //# sourceMappingURL=storage-cp-JTPTXZRQ.js.map
@@ -1,2 +0,0 @@
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(r){let e$1=b(`Creating folder ${r}...`);e$1.start(),await e("/api/v1/storage/mkdir",{path:r},{authenticated:true}),e$1.succeed(),g(`Created folder ${r}`);}export{a as default};//# sourceMappingURL=storage-mkdir-NWOHGAQI.js.map
2
- //# sourceMappingURL=storage-mkdir-NWOHGAQI.js.map
@@ -1,2 +0,0 @@
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(t,i){let o=b(`Moving ${t} \u2192 ${i}...`);o.start(),await e("/api/v1/storage/move",{source:t,destination:i},{authenticated:true}),o.succeed(),g(`Moved ${t} \u2192 ${i}`);}export{a as default};//# sourceMappingURL=storage-mv-XQ7EPX3M.js.map
2
- //# sourceMappingURL=storage-mv-XQ7EPX3M.js.map
@@ -1,2 +0,0 @@
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';async function s(e){let r=b(`Revoking share links for ${e}...`);r.start(),await g(`/api/v1/storage/share?path=${encodeURIComponent(e)}`,{authenticated:true}),r.succeed(),g$1(`All share links revoked for ${e}`);}export{s as default};//# sourceMappingURL=storage-unshare-3DXEKHEH.js.map
2
- //# sourceMappingURL=storage-unshare-3DXEKHEH.js.map
@@ -1,2 +0,0 @@
1
- import {b}from'./chunk-FYFPDKJM.js';import {e}from'./chunk-BC2OVPRV.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {f,m,g}from'./chunk-QT7R3AXE.js';import'./chunk-4NTVRCZM.js';async function s(i,t){let n=b(`Time-locking ${i} until ${t.until}...`);n.start();let u=await e("/api/v1/time/lock",{path:i,unlock_at:t.until},{authenticated:true});if(n.succeed(),f()){m(u);return}g(`Time-locked until ${t.until}`);}export{s as default};//# sourceMappingURL=time-lock-2OLEVQPJ.js.map
2
- //# sourceMappingURL=time-lock-2OLEVQPJ.js.map