squidcloudctl 1.1.1 → 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 (157) hide show
  1. package/dist/auth-revoke-I5FM6N2S.js +2 -0
  2. package/dist/{auth-revoke-HLVWIF5D.js.map → auth-revoke-I5FM6N2S.js.map} +1 -1
  3. package/dist/bin/squidcloud.js +2 -2
  4. package/dist/bin/squidcloud.js.map +1 -1
  5. package/dist/chunk-FYFPDKJM.js +3 -0
  6. package/dist/chunk-FYFPDKJM.js.map +1 -0
  7. package/dist/collab-invite-HAMMPEAQ.js +2 -0
  8. package/dist/{collab-invite-OYD63R6K.js.map → collab-invite-HAMMPEAQ.js.map} +1 -1
  9. package/dist/collab-leave-MTCXHQ4T.js +2 -0
  10. package/dist/{collab-leave-ZGMFXTNZ.js.map → collab-leave-MTCXHQ4T.js.map} +1 -1
  11. package/dist/collab-remove-DO4BIA5R.js +2 -0
  12. package/dist/{collab-remove-SGBXHV6I.js.map → collab-remove-DO4BIA5R.js.map} +1 -1
  13. package/dist/collab-transfer-6CG5PHVC.js +2 -0
  14. package/dist/{collab-transfer-QBRVUOBP.js.map → collab-transfer-6CG5PHVC.js.map} +1 -1
  15. package/dist/deploy-X5HX7V4J.js +3 -0
  16. package/dist/{deploy-MHRZLVMJ.js.map → deploy-X5HX7V4J.js.map} +1 -1
  17. package/dist/forms-clear-UJ23UHUN.js +2 -0
  18. package/dist/{forms-clear-6WHRCNPC.js.map → forms-clear-UJ23UHUN.js.map} +1 -1
  19. package/dist/forms-create-CWC7MGOJ.js +2 -0
  20. package/dist/{forms-create-XRPPYHZO.js.map → forms-create-CWC7MGOJ.js.map} +1 -1
  21. package/dist/forms-delete-TKHTM6L5.js +2 -0
  22. package/dist/{forms-delete-A2BUAQO2.js.map → forms-delete-TKHTM6L5.js.map} +1 -1
  23. package/dist/forms-export-5ZNEL3V2.js +2 -0
  24. package/dist/{forms-export-4MHCOTS6.js.map → forms-export-5ZNEL3V2.js.map} +1 -1
  25. package/dist/login-SO6BZ4HE.js +2 -0
  26. package/dist/{login-GCEZPBFD.js.map → login-SO6BZ4HE.js.map} +1 -1
  27. package/dist/logout-QERO6G6B.js +2 -0
  28. package/dist/{logout-GJEJPKYX.js.map → logout-QERO6G6B.js.map} +1 -1
  29. package/dist/logs-export-DYOPV2LT.js +2 -0
  30. package/dist/{logs-export-FXA6DZEO.js.map → logs-export-DYOPV2LT.js.map} +1 -1
  31. package/dist/scripts-cancel-JS3LL2AT.js +2 -0
  32. package/dist/{scripts-cancel-JKTVOSXG.js.map → scripts-cancel-JS3LL2AT.js.map} +1 -1
  33. package/dist/scripts-delete-274TW63X.js +2 -0
  34. package/dist/{scripts-delete-6YNN6RF6.js.map → scripts-delete-274TW63X.js.map} +1 -1
  35. package/dist/scripts-disable-JPATOVO4.js +2 -0
  36. package/dist/{scripts-disable-2FYBEM24.js.map → scripts-disable-JPATOVO4.js.map} +1 -1
  37. package/dist/scripts-enable-JVAA6AMP.js +2 -0
  38. package/dist/{scripts-enable-2HSUEYEM.js.map → scripts-enable-JVAA6AMP.js.map} +1 -1
  39. package/dist/scripts-logs-VISO5ONQ.js +2 -0
  40. package/dist/{scripts-logs-K5MJAH3Z.js.map → scripts-logs-VISO5ONQ.js.map} +1 -1
  41. package/dist/scripts-run-3NBYKEMQ.js +2 -0
  42. package/dist/{scripts-run-AWP7H6UI.js.map → scripts-run-3NBYKEMQ.js.map} +1 -1
  43. package/dist/scripts-status-45K3IL5L.js +2 -0
  44. package/dist/{scripts-status-7IJPY6QO.js.map → scripts-status-45K3IL5L.js.map} +1 -1
  45. package/dist/scripts-validate-JZPIIMIX.js +2 -0
  46. package/dist/{scripts-validate-JHR2DJ32.js.map → scripts-validate-JZPIIMIX.js.map} +1 -1
  47. package/dist/sign-cancel-OUJM5UZT.js +2 -0
  48. package/dist/{sign-cancel-22HQBKO6.js.map → sign-cancel-OUJM5UZT.js.map} +1 -1
  49. package/dist/sign-download-FS5G6J27.js +2 -0
  50. package/dist/{sign-download-RZZHSB4G.js.map → sign-download-FS5G6J27.js.map} +1 -1
  51. package/dist/sign-request-VVFYWT3Y.js +2 -0
  52. package/dist/{sign-request-ZZ56TFWA.js.map → sign-request-VVFYWT3Y.js.map} +1 -1
  53. package/dist/sign-status-LKG5UFBX.js +2 -0
  54. package/dist/{sign-status-MTI7RHMA.js.map → sign-status-LKG5UFBX.js.map} +1 -1
  55. package/dist/sign-verify-CVTTJSDL.js +2 -0
  56. package/dist/{sign-verify-SBNMGCHK.js.map → sign-verify-CVTTJSDL.js.map} +1 -1
  57. package/dist/sites-delete-SUHEQDZQ.js +2 -0
  58. package/dist/{sites-delete-S7CXJJCT.js.map → sites-delete-SUHEQDZQ.js.map} +1 -1
  59. package/dist/sites-purge-VHERQRUB.js +2 -0
  60. package/dist/{sites-purge-4QCZZVJV.js.map → sites-purge-VHERQRUB.js.map} +1 -1
  61. package/dist/sites-rename-MOO6HVW3.js +2 -0
  62. package/dist/{sites-rename-LIXOOMUC.js.map → sites-rename-MOO6HVW3.js.map} +1 -1
  63. package/dist/sites-rollback-SPW2Z73L.js +2 -0
  64. package/dist/{sites-rollback-SQ3E7LSP.js.map → sites-rollback-SPW2Z73L.js.map} +1 -1
  65. package/dist/sites-unpublish-6P7SQGIU.js +2 -0
  66. package/dist/{sites-unpublish-UA2XWIF7.js.map → sites-unpublish-6P7SQGIU.js.map} +1 -1
  67. package/dist/sites-visibility-R3AQJ76F.js +2 -0
  68. package/dist/{sites-visibility-X7PYVHRW.js.map → sites-visibility-R3AQJ76F.js.map} +1 -1
  69. package/dist/storage-cat-HXFOJJG5.js +2 -0
  70. package/dist/{storage-cat-EHO2BMPK.js.map → storage-cat-HXFOJJG5.js.map} +1 -1
  71. package/dist/storage-clean-LEQEYWL6.js +2 -0
  72. package/dist/{storage-clean-7KB4IA23.js.map → storage-clean-LEQEYWL6.js.map} +1 -1
  73. package/dist/storage-cp-JTPTXZRQ.js +2 -0
  74. package/dist/{storage-cp-H6NP57DI.js.map → storage-cp-JTPTXZRQ.js.map} +1 -1
  75. package/dist/storage-diff-XURHVTPC.js +2 -0
  76. package/dist/{storage-diff-ZGYG6KTC.js.map → storage-diff-XURHVTPC.js.map} +1 -1
  77. package/dist/storage-download-5OYCNXKL.js +3 -0
  78. package/dist/{storage-download-33DJ3N6Q.js.map → storage-download-5OYCNXKL.js.map} +1 -1
  79. package/dist/storage-mkdir-NWOHGAQI.js +2 -0
  80. package/dist/{storage-mkdir-FGUEME4R.js.map → storage-mkdir-NWOHGAQI.js.map} +1 -1
  81. package/dist/storage-mv-XQ7EPX3M.js +2 -0
  82. package/dist/{storage-mv-WW6GNDH4.js.map → storage-mv-XQ7EPX3M.js.map} +1 -1
  83. package/dist/storage-rm-LYO6UR3G.js +2 -0
  84. package/dist/{storage-rm-IGU66LQK.js.map → storage-rm-LYO6UR3G.js.map} +1 -1
  85. package/dist/storage-share-OURRQWZK.js +2 -0
  86. package/dist/{storage-share-VB47GSYV.js.map → storage-share-OURRQWZK.js.map} +1 -1
  87. package/dist/storage-tag-NGJGUJSZ.js +2 -0
  88. package/dist/{storage-tag-Q4TX5KKI.js.map → storage-tag-NGJGUJSZ.js.map} +1 -1
  89. package/dist/storage-unshare-3DXEKHEH.js +2 -0
  90. package/dist/{storage-unshare-R7LPIUEA.js.map → storage-unshare-3DXEKHEH.js.map} +1 -1
  91. package/dist/storage-upload-5M6PBHOC.js +2 -0
  92. package/dist/{storage-upload-KGMLZLWU.js.map → storage-upload-5M6PBHOC.js.map} +1 -1
  93. package/dist/time-lock-2OLEVQPJ.js +2 -0
  94. package/dist/{time-lock-GK7D7RKH.js.map → time-lock-2OLEVQPJ.js.map} +1 -1
  95. package/dist/time-proof-RUTDAEKP.js +2 -0
  96. package/dist/{time-proof-PT44FO2Q.js.map → time-proof-RUTDAEKP.js.map} +1 -1
  97. package/dist/time-unlock-OO6QH5R6.js +2 -0
  98. package/dist/{time-unlock-UARQCXPS.js.map → time-unlock-OO6QH5R6.js.map} +1 -1
  99. package/dist/update-XJQSXSFU.js +2 -0
  100. package/dist/{update-IYMIV34T.js.map → update-XJQSXSFU.js.map} +1 -1
  101. package/dist/version-LHSDYI7Q.js +2 -0
  102. package/dist/version-LHSDYI7Q.js.map +1 -0
  103. package/package.json +1 -1
  104. package/dist/auth-revoke-HLVWIF5D.js +0 -2
  105. package/dist/chunk-6TS5Y27A.js +0 -6
  106. package/dist/chunk-6TS5Y27A.js.map +0 -1
  107. package/dist/chunk-ON3YIMVG.js +0 -2
  108. package/dist/chunk-ON3YIMVG.js.map +0 -1
  109. package/dist/collab-invite-OYD63R6K.js +0 -2
  110. package/dist/collab-leave-ZGMFXTNZ.js +0 -2
  111. package/dist/collab-remove-SGBXHV6I.js +0 -2
  112. package/dist/collab-transfer-QBRVUOBP.js +0 -2
  113. package/dist/deploy-MHRZLVMJ.js +0 -3
  114. package/dist/forms-clear-6WHRCNPC.js +0 -2
  115. package/dist/forms-create-XRPPYHZO.js +0 -2
  116. package/dist/forms-delete-A2BUAQO2.js +0 -2
  117. package/dist/forms-export-4MHCOTS6.js +0 -2
  118. package/dist/login-GCEZPBFD.js +0 -2
  119. package/dist/logout-GJEJPKYX.js +0 -2
  120. package/dist/logs-export-FXA6DZEO.js +0 -2
  121. package/dist/scripts-cancel-JKTVOSXG.js +0 -2
  122. package/dist/scripts-delete-6YNN6RF6.js +0 -2
  123. package/dist/scripts-disable-2FYBEM24.js +0 -2
  124. package/dist/scripts-enable-2HSUEYEM.js +0 -2
  125. package/dist/scripts-logs-K5MJAH3Z.js +0 -2
  126. package/dist/scripts-run-AWP7H6UI.js +0 -2
  127. package/dist/scripts-status-7IJPY6QO.js +0 -2
  128. package/dist/scripts-validate-JHR2DJ32.js +0 -2
  129. package/dist/sign-cancel-22HQBKO6.js +0 -2
  130. package/dist/sign-download-RZZHSB4G.js +0 -2
  131. package/dist/sign-request-ZZ56TFWA.js +0 -2
  132. package/dist/sign-status-MTI7RHMA.js +0 -2
  133. package/dist/sign-verify-SBNMGCHK.js +0 -2
  134. package/dist/sites-delete-S7CXJJCT.js +0 -2
  135. package/dist/sites-purge-4QCZZVJV.js +0 -2
  136. package/dist/sites-rename-LIXOOMUC.js +0 -2
  137. package/dist/sites-rollback-SQ3E7LSP.js +0 -2
  138. package/dist/sites-unpublish-UA2XWIF7.js +0 -2
  139. package/dist/sites-visibility-X7PYVHRW.js +0 -2
  140. package/dist/storage-cat-EHO2BMPK.js +0 -2
  141. package/dist/storage-clean-7KB4IA23.js +0 -2
  142. package/dist/storage-cp-H6NP57DI.js +0 -2
  143. package/dist/storage-diff-ZGYG6KTC.js +0 -2
  144. package/dist/storage-download-33DJ3N6Q.js +0 -3
  145. package/dist/storage-mkdir-FGUEME4R.js +0 -2
  146. package/dist/storage-mv-WW6GNDH4.js +0 -2
  147. package/dist/storage-rm-IGU66LQK.js +0 -2
  148. package/dist/storage-share-VB47GSYV.js +0 -2
  149. package/dist/storage-tag-Q4TX5KKI.js +0 -2
  150. package/dist/storage-unshare-R7LPIUEA.js +0 -2
  151. package/dist/storage-upload-KGMLZLWU.js +0 -2
  152. package/dist/time-lock-GK7D7RKH.js +0 -2
  153. package/dist/time-proof-PT44FO2Q.js +0 -2
  154. package/dist/time-unlock-UARQCXPS.js +0 -2
  155. package/dist/update-IYMIV34T.js +0 -2
  156. package/dist/version-7IHVNLWY.js +0 -2
  157. package/dist/version-7IHVNLWY.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/sites/sites-rename.ts"],"names":["sitesRename","slug","newSlug","confirm","inquirer","v","spinner","createSpinner","apiPost","logSuccess"],"mappings":"oPAKA,eAAOA,CAAAA,CAAmCC,EAAcC,GAAAA,CAAgC,CACtF,GAAM,CAAE,QAAAC,GAAQ,CAAA,CAAI,MAAMC,CAAAA,CAAS,OAAO,CAAC,CACzC,IAAA,CAAM,OAAA,CACN,KAAM,SAAA,CACN,OAAA,CAAS,CAAA,MAAA,EAASH,CAAI,6BAA6BC,GAAO,CAAA,EAAA,CAAA,CAC1D,QAAA,CAAWG,CAAAA,EAAcA,IAAMJ,CAAAA,CAAO,IAAA,CAAO,oCAC/C,CAAC,CAAC,CAAA,CACF,GAAIE,GAAAA,GAAYF,CAAAA,CAAM,OAEtB,IAAMK,CAAAA,CAAUC,CAAAA,CAAc,CAAA,SAAA,EAAYN,CAAI,CAAA,IAAA,EAAOC,GAAO,CAAA,GAAA,CAAK,CAAA,CACjEI,EAAQ,KAAA,EAAM,CACd,MAAME,CAAAA,CAAQ,iBAAiBP,CAAI,CAAA,OAAA,CAAA,CAAW,CAAE,QAAA,CAAUC,GAAQ,CAAA,CAAG,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAC5FI,CAAAA,CAAQ,OAAA,EAAQ,CAChBG,EAAW,CAAA,kBAAA,EAAqBR,CAAI,CAAA,IAAA,EAAOC,GAAO,EAAE,EACtD","file":"sites-rename-LIXOOMUC.js","sourcesContent":["import inquirer from 'inquirer'\nimport { apiPost } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess } from '../../lib/output/logger.js'\n\nexport default async function sitesRename(slug: string, newSlug: string): Promise<void> {\n const { confirm } = await inquirer.prompt([{\n type: 'input',\n name: 'confirm',\n message: `Type \"${slug}\" to confirm renaming to \"${newSlug}\":`,\n validate: (v: string) => v === slug ? true : 'Type the exact old slug to confirm',\n }])\n if (confirm !== slug) return\n\n const spinner = createSpinner(`Renaming ${slug} to ${newSlug}...`)\n spinner.start()\n await apiPost(`/api/v1/sites/${slug}/rename`, { new_slug: newSlug }, { authenticated: true })\n spinner.succeed()\n logSuccess(`Site renamed from ${slug} to ${newSlug}`)\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/sites/sites-rename.ts"],"names":["sitesRename","slug","newSlug","confirm","inquirer","v","spinner","createSpinner","apiPost","logSuccess"],"mappings":"wNAKA,eAAOA,CAAAA,CAAmCC,EAAcC,GAAAA,CAAgC,CACtF,GAAM,CAAE,QAAAC,CAAQ,CAAA,CAAI,MAAMC,CAAAA,CAAS,OAAO,CAAC,CACzC,IAAA,CAAM,OAAA,CACN,KAAM,SAAA,CACN,OAAA,CAAS,CAAA,MAAA,EAASH,CAAI,6BAA6BC,GAAO,CAAA,EAAA,CAAA,CAC1D,QAAA,CAAWG,CAAAA,EAAcA,IAAMJ,CAAAA,CAAO,IAAA,CAAO,oCAC/C,CAAC,CAAC,CAAA,CACF,GAAIE,CAAAA,GAAYF,CAAAA,CAAM,OAEtB,IAAMK,CAAAA,CAAUC,CAAAA,CAAc,CAAA,SAAA,EAAYN,CAAI,CAAA,IAAA,EAAOC,GAAO,CAAA,GAAA,CAAK,CAAA,CACjEI,EAAQ,KAAA,EAAM,CACd,MAAME,CAAAA,CAAQ,iBAAiBP,CAAI,CAAA,OAAA,CAAA,CAAW,CAAE,QAAA,CAAUC,GAAQ,CAAA,CAAG,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAC5FI,CAAAA,CAAQ,OAAA,EAAQ,CAChBG,EAAW,CAAA,kBAAA,EAAqBR,CAAI,CAAA,IAAA,EAAOC,GAAO,EAAE,EACtD","file":"sites-rename-MOO6HVW3.js","sourcesContent":["import inquirer from 'inquirer'\nimport { apiPost } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess } from '../../lib/output/logger.js'\n\nexport default async function sitesRename(slug: string, newSlug: string): Promise<void> {\n const { confirm } = await inquirer.prompt([{\n type: 'input',\n name: 'confirm',\n message: `Type \"${slug}\" to confirm renaming to \"${newSlug}\":`,\n validate: (v: string) => v === slug ? true : 'Type the exact old slug to confirm',\n }])\n if (confirm !== slug) return\n\n const spinner = createSpinner(`Renaming ${slug} to ${newSlug}...`)\n spinner.start()\n await apiPost(`/api/v1/sites/${slug}/rename`, { new_slug: newSlug }, { authenticated: true })\n spinner.succeed()\n logSuccess(`Site renamed from ${slug} to ${newSlug}`)\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {b}from'./chunk-FYFPDKJM.js';import {d,e}from'./chunk-BC2OVPRV.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {b as b$1}from'./chunk-G4JU7IUC.js';import {l,g as g$1}from'./chunk-QT7R3AXE.js';import'./chunk-4NTVRCZM.js';import b$2 from'inquirer';import g from'chalk';async function u(t,d$1){let s=b("Fetching deploy history...");s.start();let m=await d(`/api/v1/sites/${t}/deploys`,{authenticated:true});s.stop();let e$1=d$1?.to;if(!e$1){l(""),l(g.bold(` Select a deployment to roll back to for ${t}:`)),l("");let y=m.deploys.slice(0,10).map(o=>({name:`${b$1(o.created_at)} \u2014 ${o.file_count} files \u2014 ${o.triggered_by}`,value:o.id})),{selected:f}=await b$2.prompt([{type:"list",name:"selected",message:"Choose deployment:",choices:y}]);e$1=f;}e$1||(console.error("No deployment selected"),process.exit(1));let a=b(`Rolling back ${t} to ${e$1.slice(0,8)}...`);a.start(),await e(`/api/v1/sites/${t}/rollback`,{deploy_id:e$1},{authenticated:true}),a.succeed(),g$1(`Site ${t} rolled back to deployment ${e$1.slice(0,8)}`);}export{u as default};//# sourceMappingURL=sites-rollback-SPW2Z73L.js.map
2
+ //# sourceMappingURL=sites-rollback-SPW2Z73L.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/sites/sites-rollback.ts"],"names":["sitesRollback","slug","options","spinner","createSpinner","data","apiGet","deployId","logRaw","chalk","choices","d","formatDate","selected","inquirer","rollbackSpinner","apiPost","logSuccess"],"mappings":"0TAgBA,eAAOA,CAAAA,CAAqCC,CAAAA,CAAcC,GAAAA,CAA0C,CAClG,IAAMC,CAAAA,CAAUC,CAAAA,CAAc,4BAA4B,CAAA,CAC1DD,EAAQ,KAAA,EAAM,CAEd,IAAME,CAAAA,CAAO,MAAMC,CAAAA,CAAmC,CAAA,cAAA,EAAiBL,CAAI,CAAA,QAAA,CAAA,CAAY,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAC9GE,EAAQ,IAAA,EAAK,CAEb,IAAII,GAAAA,CAAWL,KAAS,EAAA,CAExB,GAAI,CAACK,GAAAA,CAAU,CACbC,CAAAA,CAAO,EAAE,CAAA,CACTA,CAAAA,CAAOC,EAAM,IAAA,CAAK,CAAA,0CAAA,EAA6CR,CAAI,CAAA,CAAA,CAAG,CAAC,CAAA,CACvEO,CAAAA,CAAO,EAAE,CAAA,CACT,IAAME,CAAAA,CAAUL,CAAAA,CAAK,OAAA,CAAQ,KAAA,CAAM,EAAG,EAAE,CAAA,CAAE,GAAA,CAAIM,CAAAA,GAAM,CAClD,IAAA,CAAM,CAAA,EAAGC,CAAAA,CAAWD,CAAAA,CAAE,UAAU,CAAC,CAAA,QAAA,EAAMA,EAAE,UAAU,CAAA,cAAA,EAAYA,EAAE,YAAY,CAAA,CAAA,CAC7E,KAAA,CAAOA,CAAAA,CAAE,EACX,CAAA,CAAE,CAAA,CACI,CAAE,QAAA,CAAAE,CAAS,CAAA,CAAI,MAAMC,GAAAA,CAAS,MAAA,CAAO,CAAC,CAC1C,IAAA,CAAM,MAAA,CACN,IAAA,CAAM,WACN,OAAA,CAAS,oBAAA,CACT,OAAA,CAAAJ,CACF,CAAC,CAAC,CAAA,CACFH,GAAAA,CAAWM,EACb,CAEKN,GAAAA,GACH,OAAA,CAAQ,KAAA,CAAM,wBAAwB,EACtC,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,CAAA,CAGhB,IAAMQ,IAAkBX,CAAAA,CAAc,CAAA,aAAA,EAAgBH,CAAI,CAAA,IAAA,EAAOM,IAAS,KAAA,CAAM,CAAA,CAAG,CAAC,CAAC,KAAK,CAAA,CAC1FQ,GAAAA,CAAgB,KAAA,EAAM,CACtB,MAAMC,CAAAA,CAAQ,CAAA,cAAA,EAAiBf,CAAI,CAAA,SAAA,CAAA,CAAa,CAAE,SAAA,CAAWM,GAAS,CAAA,CAAG,CAAE,cAAe,IAAK,CAAC,CAAA,CAChGQ,GAAAA,CAAgB,SAAQ,CACxBE,GAAAA,CAAW,CAAA,KAAA,EAAQhB,CAAI,8BAA8BM,GAAAA,CAAS,KAAA,CAAM,EAAG,CAAC,CAAC,EAAE,EAC7E","file":"sites-rollback-SQ3E7LSP.js","sourcesContent":["import inquirer from 'inquirer'\nimport { apiGet, apiPost } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess, logRaw } from '../../lib/output/logger.js'\nimport { formatDate } from '../../lib/utils/format.js'\nimport chalk from 'chalk'\n\ninterface DeployEntry {\n id: string\n created_at: string\n file_count: number\n total_size: number\n triggered_by: string\n status: string\n}\n\nexport default async function sitesRollback(slug: string, options?: { to?: string }): Promise<void> {\n const spinner = createSpinner('Fetching deploy history...')\n spinner.start()\n\n const data = await apiGet<{ deploys: DeployEntry[] }>(`/api/v1/sites/${slug}/deploys`, { authenticated: true })\n spinner.stop()\n\n let deployId = options?.to\n\n if (!deployId) {\n logRaw('')\n logRaw(chalk.bold(` Select a deployment to roll back to for ${slug}:`))\n logRaw('')\n const choices = data.deploys.slice(0, 10).map(d => ({\n name: `${formatDate(d.created_at)} — ${d.file_count} files — ${d.triggered_by}`,\n value: d.id,\n }))\n const { selected } = await inquirer.prompt([{\n type: 'list',\n name: 'selected',\n message: 'Choose deployment:',\n choices,\n }])\n deployId = selected\n }\n\n if (!deployId) {\n console.error('No deployment selected')\n process.exit(1)\n }\n\n const rollbackSpinner = createSpinner(`Rolling back ${slug} to ${deployId.slice(0, 8)}...`)\n rollbackSpinner.start()\n await apiPost(`/api/v1/sites/${slug}/rollback`, { deploy_id: deployId }, { authenticated: true })\n rollbackSpinner.succeed()\n logSuccess(`Site ${slug} rolled back to deployment ${deployId.slice(0, 8)}`)\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/sites/sites-rollback.ts"],"names":["sitesRollback","slug","options","spinner","createSpinner","data","apiGet","deployId","logRaw","chalk","choices","d","formatDate","selected","inquirer","rollbackSpinner","apiPost","logSuccess"],"mappings":"qSAgBA,eAAOA,CAAAA,CAAqCC,CAAAA,CAAcC,GAAAA,CAA0C,CAClG,IAAMC,CAAAA,CAAUC,CAAAA,CAAc,4BAA4B,CAAA,CAC1DD,EAAQ,KAAA,EAAM,CAEd,IAAME,CAAAA,CAAO,MAAMC,CAAAA,CAAmC,CAAA,cAAA,EAAiBL,CAAI,CAAA,QAAA,CAAA,CAAY,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAC9GE,EAAQ,IAAA,EAAK,CAEb,IAAII,GAAAA,CAAWL,KAAS,EAAA,CAExB,GAAI,CAACK,GAAAA,CAAU,CACbC,CAAAA,CAAO,EAAE,CAAA,CACTA,CAAAA,CAAOC,EAAM,IAAA,CAAK,CAAA,0CAAA,EAA6CR,CAAI,CAAA,CAAA,CAAG,CAAC,CAAA,CACvEO,CAAAA,CAAO,EAAE,CAAA,CACT,IAAME,CAAAA,CAAUL,CAAAA,CAAK,OAAA,CAAQ,KAAA,CAAM,EAAG,EAAE,CAAA,CAAE,GAAA,CAAIM,CAAAA,GAAM,CAClD,IAAA,CAAM,CAAA,EAAGC,GAAAA,CAAWD,CAAAA,CAAE,UAAU,CAAC,CAAA,QAAA,EAAMA,EAAE,UAAU,CAAA,cAAA,EAAYA,EAAE,YAAY,CAAA,CAAA,CAC7E,KAAA,CAAOA,CAAAA,CAAE,EACX,CAAA,CAAE,CAAA,CACI,CAAE,QAAA,CAAAE,CAAS,CAAA,CAAI,MAAMC,GAAAA,CAAS,MAAA,CAAO,CAAC,CAC1C,IAAA,CAAM,MAAA,CACN,IAAA,CAAM,WACN,OAAA,CAAS,oBAAA,CACT,OAAA,CAAAJ,CACF,CAAC,CAAC,CAAA,CACFH,GAAAA,CAAWM,EACb,CAEKN,GAAAA,GACH,OAAA,CAAQ,KAAA,CAAM,wBAAwB,EACtC,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,CAAA,CAGhB,IAAMQ,EAAkBX,CAAAA,CAAc,CAAA,aAAA,EAAgBH,CAAI,CAAA,IAAA,EAAOM,IAAS,KAAA,CAAM,CAAA,CAAG,CAAC,CAAC,KAAK,CAAA,CAC1FQ,CAAAA,CAAgB,KAAA,EAAM,CACtB,MAAMC,CAAAA,CAAQ,CAAA,cAAA,EAAiBf,CAAI,CAAA,SAAA,CAAA,CAAa,CAAE,SAAA,CAAWM,GAAS,CAAA,CAAG,CAAE,cAAe,IAAK,CAAC,CAAA,CAChGQ,CAAAA,CAAgB,SAAQ,CACxBE,GAAAA,CAAW,CAAA,KAAA,EAAQhB,CAAI,8BAA8BM,GAAAA,CAAS,KAAA,CAAM,EAAG,CAAC,CAAC,EAAE,EAC7E","file":"sites-rollback-SPW2Z73L.js","sourcesContent":["import inquirer from 'inquirer'\nimport { apiGet, apiPost } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess, logRaw } from '../../lib/output/logger.js'\nimport { formatDate } from '../../lib/utils/format.js'\nimport chalk from 'chalk'\n\ninterface DeployEntry {\n id: string\n created_at: string\n file_count: number\n total_size: number\n triggered_by: string\n status: string\n}\n\nexport default async function sitesRollback(slug: string, options?: { to?: string }): Promise<void> {\n const spinner = createSpinner('Fetching deploy history...')\n spinner.start()\n\n const data = await apiGet<{ deploys: DeployEntry[] }>(`/api/v1/sites/${slug}/deploys`, { authenticated: true })\n spinner.stop()\n\n let deployId = options?.to\n\n if (!deployId) {\n logRaw('')\n logRaw(chalk.bold(` Select a deployment to roll back to for ${slug}:`))\n logRaw('')\n const choices = data.deploys.slice(0, 10).map(d => ({\n name: `${formatDate(d.created_at)} — ${d.file_count} files — ${d.triggered_by}`,\n value: d.id,\n }))\n const { selected } = await inquirer.prompt([{\n type: 'list',\n name: 'selected',\n message: 'Choose deployment:',\n choices,\n }])\n deployId = selected\n }\n\n if (!deployId) {\n console.error('No deployment selected')\n process.exit(1)\n }\n\n const rollbackSpinner = createSpinner(`Rolling back ${slug} to ${deployId.slice(0, 8)}...`)\n rollbackSpinner.start()\n await apiPost(`/api/v1/sites/${slug}/rollback`, { deploy_id: deployId }, { authenticated: true })\n rollbackSpinner.succeed()\n logSuccess(`Site ${slug} rolled back to deployment ${deployId.slice(0, 8)}`)\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';import p from'inquirer';async function a(t){let{confirm:o}=await p.prompt([{type:"input",name:"confirm",message:`Type "${t}" to unpublish this site:`,validate:s=>s===t?true:"Type the exact slug to confirm"}]);if(o!==t)return;let i=b(`Unpublishing ${t}...`);i.start(),await e(`/api/v1/sites/${t}/unpublish`,{},{authenticated:true}),i.succeed(),g(`Site ${t} unpublished \u2014 URL now returns 404`);}export{a as default};//# sourceMappingURL=sites-unpublish-6P7SQGIU.js.map
2
+ //# sourceMappingURL=sites-unpublish-6P7SQGIU.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/sites/sites-unpublish.ts"],"names":["sitesUnpublish","slug","confirm","inquirer","v","spinner","createSpinner","apiPost","logSuccess"],"mappings":"2PAKA,eAAOA,CAAAA,CAAsCC,CAAAA,CAA6B,CACxE,GAAM,CAAE,OAAA,CAAAC,CAAQ,CAAA,CAAI,MAAMC,EAAS,MAAA,CAAO,CAAC,CACzC,IAAA,CAAM,OAAA,CACN,IAAA,CAAM,SAAA,CACN,OAAA,CAAS,SAASF,CAAI,CAAA,yBAAA,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,GAAAA,CAAc,CAAA,aAAA,EAAgBL,CAAI,CAAA,GAAA,CAAK,CAAA,CACvDI,CAAAA,CAAQ,KAAA,EAAM,CACd,MAAME,CAAAA,CAAQ,CAAA,cAAA,EAAiBN,CAAI,CAAA,UAAA,CAAA,CAAc,EAAC,CAAG,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAC5EI,CAAAA,CAAQ,OAAA,EAAQ,CAChBG,CAAAA,CAAW,CAAA,KAAA,EAAQP,CAAI,yCAAoC,EAC7D","file":"sites-unpublish-UA2XWIF7.js","sourcesContent":["import inquirer from 'inquirer'\nimport { apiPost } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess } from '../../lib/output/logger.js'\n\nexport default async function sitesUnpublish(slug: string): Promise<void> {\n const { confirm } = await inquirer.prompt([{\n type: 'input',\n name: 'confirm',\n message: `Type \"${slug}\" to unpublish this site:`,\n validate: (v: string) => v === slug ? true : 'Type the exact slug to confirm',\n }])\n if (confirm !== slug) return\n\n const spinner = createSpinner(`Unpublishing ${slug}...`)\n spinner.start()\n await apiPost(`/api/v1/sites/${slug}/unpublish`, {}, { authenticated: true })\n spinner.succeed()\n logSuccess(`Site ${slug} unpublished — URL now returns 404`)\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/sites/sites-unpublish.ts"],"names":["sitesUnpublish","slug","confirm","inquirer","v","spinner","createSpinner","apiPost","logSuccess"],"mappings":"wNAKA,eAAOA,CAAAA,CAAsCC,CAAAA,CAA6B,CACxE,GAAM,CAAE,OAAA,CAAAC,CAAQ,CAAA,CAAI,MAAMC,EAAS,MAAA,CAAO,CAAC,CACzC,IAAA,CAAM,OAAA,CACN,IAAA,CAAM,SAAA,CACN,OAAA,CAAS,SAASF,CAAI,CAAA,yBAAA,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,aAAA,EAAgBL,CAAI,CAAA,GAAA,CAAK,CAAA,CACvDI,CAAAA,CAAQ,KAAA,EAAM,CACd,MAAME,CAAAA,CAAQ,CAAA,cAAA,EAAiBN,CAAI,CAAA,UAAA,CAAA,CAAc,EAAC,CAAG,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAC5EI,CAAAA,CAAQ,OAAA,EAAQ,CAChBG,CAAAA,CAAW,CAAA,KAAA,EAAQP,CAAI,yCAAoC,EAC7D","file":"sites-unpublish-6P7SQGIU.js","sourcesContent":["import inquirer from 'inquirer'\nimport { apiPost } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess } from '../../lib/output/logger.js'\n\nexport default async function sitesUnpublish(slug: string): Promise<void> {\n const { confirm } = await inquirer.prompt([{\n type: 'input',\n name: 'confirm',\n message: `Type \"${slug}\" to unpublish this site:`,\n validate: (v: string) => v === slug ? true : 'Type the exact slug to confirm',\n }])\n if (confirm !== slug) return\n\n const spinner = createSpinner(`Unpublishing ${slug}...`)\n spinner.start()\n await apiPost(`/api/v1/sites/${slug}/unpublish`, {}, { authenticated: true })\n spinner.succeed()\n logSuccess(`Site ${slug} unpublished — URL now returns 404`)\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 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 +1 @@
1
- {"version":3,"sources":["../src/commands/sites/sites-visibility.ts"],"names":["sitesVisibility","slug","options","visibility","spinner","createSpinner","apiPost","logSuccess"],"mappings":"4NAIA,eAAOA,CAAAA,CAAuCC,EAAcC,GAAAA,CAAiE,CAC3H,IAAMC,CAAAA,CAAaD,GAAAA,CAAQ,OAAS,QAAA,CAAWA,GAAAA,CAAQ,QAAU,SAAA,CAAY,QAAA,CACvEE,EAAUC,CAAAA,CAAc,CAAA,QAAA,EAAWJ,CAAI,CAAA,eAAA,EAAkBE,CAAU,CAAA,GAAA,CAAK,CAAA,CAC9EC,CAAAA,CAAQ,KAAA,GACR,MAAME,CAAAA,CAAQ,iBAAiBL,CAAI,CAAA,WAAA,CAAA,CAAe,CAAE,UAAA,CAAAE,CAAW,CAAA,CAAG,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CACzFC,CAAAA,CAAQ,SAAQ,CAChBG,CAAAA,CAAW,QAAQN,CAAI,CAAA,QAAA,EAAWE,CAAU,CAAA,CAAE,EAChD","file":"sites-visibility-X7PYVHRW.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 sitesVisibility(slug: string, options: { public?: boolean; private?: boolean }): Promise<void> {\n const visibility = options.public ? 'public' : options.private ? 'private' : 'public'\n const spinner = createSpinner(`Setting ${slug} visibility to ${visibility}...`)\n spinner.start()\n await apiPost(`/api/v1/sites/${slug}/visibility`, { visibility }, { authenticated: true })\n spinner.succeed()\n logSuccess(`Site ${slug} is now ${visibility}`)\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/sites/sites-visibility.ts"],"names":["sitesVisibility","slug","options","visibility","spinner","createSpinner","apiPost","logSuccess"],"mappings":"gMAIA,eAAOA,CAAAA,CAAuCC,EAAcC,GAAAA,CAAiE,CAC3H,IAAMC,CAAAA,CAAaD,GAAAA,CAAQ,OAAS,QAAA,CAAWA,GAAAA,CAAQ,QAAU,SAAA,CAAY,QAAA,CACvEE,EAAUC,CAAAA,CAAc,CAAA,QAAA,EAAWJ,CAAI,CAAA,eAAA,EAAkBE,CAAU,CAAA,GAAA,CAAK,CAAA,CAC9EC,CAAAA,CAAQ,KAAA,GACR,MAAME,CAAAA,CAAQ,iBAAiBL,CAAI,CAAA,WAAA,CAAA,CAAe,CAAE,UAAA,CAAAE,CAAW,CAAA,CAAG,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CACzFC,CAAAA,CAAQ,SAAQ,CAChBG,CAAAA,CAAW,QAAQN,CAAI,CAAA,QAAA,EAAWE,CAAU,CAAA,CAAE,EAChD","file":"sites-visibility-R3AQJ76F.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 sitesVisibility(slug: string, options: { public?: boolean; private?: boolean }): Promise<void> {\n const visibility = options.public ? 'public' : options.private ? 'private' : 'public'\n const spinner = createSpinner(`Setting ${slug} visibility to ${visibility}...`)\n spinner.start()\n await apiPost(`/api/v1/sites/${slug}/visibility`, { visibility }, { authenticated: true })\n spinner.succeed()\n logSuccess(`Site ${slug} is now ${visibility}`)\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 {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 +1 @@
1
- {"version":3,"sources":["../src/commands/storage/storage-cat.ts"],"names":["storageCat","path","spinner","createSpinner","data","apiGet","logRaw"],"mappings":"4NAKA,eAAOA,CAAAA,CAAkCC,CAAAA,CAA6B,CACpE,IAAMC,EAAUC,CAAAA,CAAc,CAAA,SAAA,EAAYF,CAAI,CAAA,GAAA,CAAK,CAAA,CACnDC,CAAAA,CAAQ,KAAA,EAAM,CACd,IAAME,GAAAA,CAAO,MAAMC,CAAAA,CAA4B,CAAA,yBAAA,EAA4B,kBAAA,CAAmBJ,CAAI,CAAC,CAAA,CAAA,CAAI,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAC9HC,EAAQ,IAAA,EAAK,CACbI,CAAAA,CAAOF,GAAAA,CAAK,OAAO,EACrB","file":"storage-cat-EHO2BMPK.js","sourcesContent":["import chalk from 'chalk'\nimport { apiGet } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logRaw } from '../../lib/output/logger.js'\n\nexport default async function storageCat(path: string): Promise<void> {\n const spinner = createSpinner(`Fetching ${path}...`)\n spinner.start()\n const data = await apiGet<{ content: string }>(`/api/v1/storage/cat?path=${encodeURIComponent(path)}`, { authenticated: true })\n spinner.stop()\n logRaw(data.content)\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/storage/storage-cat.ts"],"names":["storageCat","path","spinner","createSpinner","data","apiGet","logRaw"],"mappings":"gMAKA,eAAOA,CAAAA,CAAkCC,CAAAA,CAA6B,CACpE,IAAMC,EAAUC,CAAAA,CAAc,CAAA,SAAA,EAAYF,CAAI,CAAA,GAAA,CAAK,CAAA,CACnDC,CAAAA,CAAQ,KAAA,EAAM,CACd,IAAME,CAAAA,CAAO,MAAMC,CAAAA,CAA4B,CAAA,yBAAA,EAA4B,kBAAA,CAAmBJ,CAAI,CAAC,CAAA,CAAA,CAAI,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAC9HC,EAAQ,IAAA,EAAK,CACbI,CAAAA,CAAOF,CAAAA,CAAK,OAAO,EACrB","file":"storage-cat-HXFOJJG5.js","sourcesContent":["import chalk from 'chalk'\nimport { apiGet } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logRaw } from '../../lib/output/logger.js'\n\nexport default async function storageCat(path: string): Promise<void> {\n const spinner = createSpinner(`Fetching ${path}...`)\n spinner.start()\n const data = await apiGet<{ content: string }>(`/api/v1/storage/cat?path=${encodeURIComponent(path)}`, { authenticated: true })\n spinner.stop()\n logRaw(data.content)\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 {a}from'./chunk-G4JU7IUC.js';import {f,m as m$1,g}from'./chunk-QT7R3AXE.js';import'./chunk-4NTVRCZM.js';async function m(){let r=b("Scanning for orphaned files...");r.start();let e$1=await e("/api/v1/storage/clean",{orphaned:true},{authenticated:true});if(r.succeed(),f()){m$1(e$1);return}g(`Cleaned ${e$1.deleted} orphaned files (${a(e$1.freed_bytes)})`);}export{m as default};//# sourceMappingURL=storage-clean-LEQEYWL6.js.map
2
+ //# sourceMappingURL=storage-clean-LEQEYWL6.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/storage/storage-clean.ts"],"names":["storageClean","spinner","createSpinner","result","apiPost","isJsonMode","logJSON","logSuccess","formatBytes"],"mappings":"kRAOA,eAAOA,CAAAA,EAAqD,CAC1D,IAAMC,CAAAA,CAAUC,EAAc,gCAAgC,CAAA,CAC9DD,EAAQ,KAAA,EAAM,CACd,IAAME,GAAAA,CAAS,MAAMC,EAAkD,uBAAA,CAAyB,CAAE,SAAU,IAAK,CAAA,CAAG,CAAE,aAAA,CAAe,IAAK,CAAC,EAE3I,GADAH,CAAAA,CAAQ,SAAQ,CACZI,CAAAA,GAAc,CAChBC,GAAAA,CAAQH,GAAM,CAAA,CACd,MACF,CACAI,CAAAA,CAAW,CAAA,QAAA,EAAWJ,IAAO,OAAO,CAAA,iBAAA,EAAoBK,IAAYL,GAAAA,CAAO,WAAW,CAAC,CAAA,CAAA,CAAG,EAC5F","file":"storage-clean-7KB4IA23.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'\nimport chalk from 'chalk'\nimport { formatBytes } from '../../lib/utils/format.js'\n\nexport default async function storageClean(): Promise<void> {\n const spinner = createSpinner('Scanning for orphaned files...')\n spinner.start()\n const result = await apiPost<{ deleted: number; freed_bytes: number }>('/api/v1/storage/clean', { orphaned: true }, { authenticated: true })\n spinner.succeed()\n if (isJsonMode()) {\n logJSON(result)\n return\n }\n logSuccess(`Cleaned ${result.deleted} orphaned files (${formatBytes(result.freed_bytes)})`)\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/storage/storage-clean.ts"],"names":["storageClean","spinner","createSpinner","result","apiPost","isJsonMode","logJSON","logSuccess","formatBytes"],"mappings":"+OAOA,eAAOA,CAAAA,EAAqD,CAC1D,IAAMC,CAAAA,CAAUC,EAAc,gCAAgC,CAAA,CAC9DD,EAAQ,KAAA,EAAM,CACd,IAAME,GAAAA,CAAS,MAAMC,EAAkD,uBAAA,CAAyB,CAAE,SAAU,IAAK,CAAA,CAAG,CAAE,aAAA,CAAe,IAAK,CAAC,EAE3I,GADAH,CAAAA,CAAQ,SAAQ,CACZI,CAAAA,GAAc,CAChBC,GAAAA,CAAQH,GAAM,CAAA,CACd,MACF,CACAI,CAAAA,CAAW,CAAA,QAAA,EAAWJ,IAAO,OAAO,CAAA,iBAAA,EAAoBK,EAAYL,GAAAA,CAAO,WAAW,CAAC,CAAA,CAAA,CAAG,EAC5F","file":"storage-clean-LEQEYWL6.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'\nimport chalk from 'chalk'\nimport { formatBytes } from '../../lib/utils/format.js'\n\nexport default async function storageClean(): Promise<void> {\n const spinner = createSpinner('Scanning for orphaned files...')\n spinner.start()\n const result = await apiPost<{ deleted: number; freed_bytes: number }>('/api/v1/storage/clean', { orphaned: true }, { authenticated: true })\n spinner.succeed()\n if (isJsonMode()) {\n logJSON(result)\n return\n }\n logSuccess(`Cleaned ${result.deleted} orphaned files (${formatBytes(result.freed_bytes)})`)\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 {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 +1 @@
1
- {"version":3,"sources":["../src/commands/storage/storage-cp.ts"],"names":["storageCp","source","dest","spinner","createSpinner","apiPost","logSuccess"],"mappings":"mOAIA,eAAOA,EAAiCC,CAAAA,CAAgBC,CAAAA,CAA6B,CACnF,IAAMC,EAAUC,CAAAA,CAAc,CAAA,QAAA,EAAWH,CAAM,CAAA,QAAA,EAAMC,CAAI,CAAA,GAAA,CAAK,CAAA,CAC9DC,EAAQ,KAAA,EAAM,CACd,MAAME,GAAAA,CAAQ,sBAAA,CAAwB,CAAE,MAAA,CAAAJ,EAAQ,WAAA,CAAaC,CAAK,EAAG,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAC5FC,CAAAA,CAAQ,OAAA,GACRG,CAAAA,CAAW,CAAA,OAAA,EAAUL,CAAM,CAAA,QAAA,EAAMC,CAAI,EAAE,EACzC","file":"storage-cp-H6NP57DI.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 storageCp(source: string, dest: string): Promise<void> {\n const spinner = createSpinner(`Copying ${source} → ${dest}...`)\n spinner.start()\n await apiPost('/api/v1/storage/copy', { source, destination: dest }, { authenticated: true })\n spinner.succeed()\n logSuccess(`Copied ${source} → ${dest}`)\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/storage/storage-cp.ts"],"names":["storageCp","source","dest","spinner","createSpinner","apiPost","logSuccess"],"mappings":"uMAIA,eAAOA,EAAiCC,CAAAA,CAAgBC,CAAAA,CAA6B,CACnF,IAAMC,EAAUC,CAAAA,CAAc,CAAA,QAAA,EAAWH,CAAM,CAAA,QAAA,EAAMC,CAAI,CAAA,GAAA,CAAK,CAAA,CAC9DC,EAAQ,KAAA,EAAM,CACd,MAAME,GAAAA,CAAQ,sBAAA,CAAwB,CAAE,MAAA,CAAAJ,EAAQ,WAAA,CAAaC,CAAK,EAAG,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAC5FC,CAAAA,CAAQ,OAAA,GACRG,CAAAA,CAAW,CAAA,OAAA,EAAUL,CAAM,CAAA,QAAA,EAAMC,CAAI,EAAE,EACzC","file":"storage-cp-JTPTXZRQ.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 storageCp(source: string, dest: string): Promise<void> {\n const spinner = createSpinner(`Copying ${source} → ${dest}...`)\n spinner.start()\n await apiPost('/api/v1/storage/copy', { source, destination: dest }, { authenticated: true })\n spinner.succeed()\n logSuccess(`Copied ${source} → ${dest}`)\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 {l}from'./chunk-QT7R3AXE.js';import'./chunk-4NTVRCZM.js';import y from'fs';import c from'path';import {createHash}from'crypto';import o from'chalk';async function S(v,w){let g=b("Computing diff...");g.start();let m=c.resolve(v),l$1=new Map;function p(e,a){let F=y.readdirSync(e,{withFileTypes:true});for(let s of F){let h=c.join(e,s.name),k=c.relative(a,h);if(!(s.name.startsWith(".")||s.name==="node_modules")){if(s.isDirectory())p(h,a);else if(s.isFile()){let C=createHash("sha256").update(y.readFileSync(h)).digest("hex");l$1.set(k,C);}}}}p(m,m);let $=await d(`/api/v1/storage/ls-recursive?path=${encodeURIComponent(w)}`,{authenticated:true}),f=new Map(($.files||[]).map(e=>[e.path,e.hash]));g.stop();let n=[],r=[],i=[];for(let[e,a]of l$1)f.has(e)?f.get(e)!==a&&i.push(e):n.push(e);for(let e of f.keys())l$1.has(e)||r.push(e);l(""),n.length===0&&r.length===0&&i.length===0?l(` ${o.green("\u2713 Identical \u2014 no changes")}`):(n.length>0&&(l(o.green(` + ${n.length} to upload`)),n.forEach(e=>l(o.green(` + ${e}`)))),i.length>0&&(l(o.yellow(` ~ ${i.length} modified`)),i.forEach(e=>l(o.yellow(` ~ ${e}`)))),r.length>0&&(l(o.red(` - ${r.length} to delete`)),r.forEach(e=>l(o.red(` - ${e}`))))),l("");}export{S as default};//# sourceMappingURL=storage-diff-XURHVTPC.js.map
2
+ //# sourceMappingURL=storage-diff-XURHVTPC.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/storage/storage-diff.ts"],"names":["storageDiff","localPath","remotePath","spinner","createSpinner","localDir","path","localFiles","walk","dir","baseDir","entries","fs","entry","fullPath","relative","hash","createHash","remote","apiGet","remoteFiles","f","added","removed","modified","rel","logRaw","chalk"],"mappings":"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","file":"storage-diff-ZGYG6KTC.js","sourcesContent":["import fs from 'node:fs'\nimport path from 'node:path'\nimport { createHash } from 'node:crypto'\nimport { apiGet } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logRaw } from '../../lib/output/logger.js'\nimport chalk from 'chalk'\nimport { renderCompactTable } from '../../lib/output/table.js'\n\nexport default async function storageDiff(localPath: string, remotePath: string): Promise<void> {\n const spinner = createSpinner('Computing diff...')\n spinner.start()\n\n const localDir = path.resolve(localPath)\n const localFiles = new Map<string, string>()\n\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 (entry.name.startsWith('.') || entry.name === 'node_modules') continue\n if (entry.isDirectory()) {\n walk(fullPath, baseDir)\n } else if (entry.isFile()) {\n const hash = createHash('sha256').update(fs.readFileSync(fullPath)).digest('hex')\n localFiles.set(relative, hash)\n }\n }\n }\n walk(localDir, localDir)\n\n const remote = await apiGet<{ files: { path: string; hash: string }[] }>(`/api/v1/storage/ls-recursive?path=${encodeURIComponent(remotePath)}`, { authenticated: true })\n const remoteFiles = new Map((remote.files || []).map(f => [f.path, f.hash]))\n\n spinner.stop()\n\n const added: string[] = []\n const removed: string[] = []\n const modified: string[] = []\n\n for (const [rel, hash] of localFiles) {\n if (!remoteFiles.has(rel)) {\n added.push(rel)\n } else if (remoteFiles.get(rel) !== hash) {\n modified.push(rel)\n }\n }\n for (const rel of remoteFiles.keys()) {\n if (!localFiles.has(rel)) {\n removed.push(rel)\n }\n }\n\n logRaw('')\n if (added.length === 0 && removed.length === 0 && modified.length === 0) {\n logRaw(` ${chalk.green('✓ Identical — no changes')}`)\n } else {\n if (added.length > 0) {\n logRaw(chalk.green(` + ${added.length} to upload`))\n added.forEach(f => logRaw(chalk.green(` + ${f}`)))\n }\n if (modified.length > 0) {\n logRaw(chalk.yellow(` ~ ${modified.length} modified`))\n modified.forEach(f => logRaw(chalk.yellow(` ~ ${f}`)))\n }\n if (removed.length > 0) {\n logRaw(chalk.red(` - ${removed.length} to delete`))\n removed.forEach(f => logRaw(chalk.red(` - ${f}`)))\n }\n }\n logRaw('')\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/storage/storage-diff.ts"],"names":["storageDiff","localPath","remotePath","spinner","createSpinner","localDir","path","localFiles","walk","dir","baseDir","entries","fs","entry","fullPath","relative","hash","createHash","remote","apiGet","remoteFiles","f","added","removed","modified","rel","logRaw","chalk"],"mappings":"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","file":"storage-diff-XURHVTPC.js","sourcesContent":["import fs from 'node:fs'\nimport path from 'node:path'\nimport { createHash } from 'node:crypto'\nimport { apiGet } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logRaw } from '../../lib/output/logger.js'\nimport chalk from 'chalk'\nimport { renderCompactTable } from '../../lib/output/table.js'\n\nexport default async function storageDiff(localPath: string, remotePath: string): Promise<void> {\n const spinner = createSpinner('Computing diff...')\n spinner.start()\n\n const localDir = path.resolve(localPath)\n const localFiles = new Map<string, string>()\n\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 (entry.name.startsWith('.') || entry.name === 'node_modules') continue\n if (entry.isDirectory()) {\n walk(fullPath, baseDir)\n } else if (entry.isFile()) {\n const hash = createHash('sha256').update(fs.readFileSync(fullPath)).digest('hex')\n localFiles.set(relative, hash)\n }\n }\n }\n walk(localDir, localDir)\n\n const remote = await apiGet<{ files: { path: string; hash: string }[] }>(`/api/v1/storage/ls-recursive?path=${encodeURIComponent(remotePath)}`, { authenticated: true })\n const remoteFiles = new Map((remote.files || []).map(f => [f.path, f.hash]))\n\n spinner.stop()\n\n const added: string[] = []\n const removed: string[] = []\n const modified: string[] = []\n\n for (const [rel, hash] of localFiles) {\n if (!remoteFiles.has(rel)) {\n added.push(rel)\n } else if (remoteFiles.get(rel) !== hash) {\n modified.push(rel)\n }\n }\n for (const rel of remoteFiles.keys()) {\n if (!localFiles.has(rel)) {\n removed.push(rel)\n }\n }\n\n logRaw('')\n if (added.length === 0 && removed.length === 0 && modified.length === 0) {\n logRaw(` ${chalk.green('✓ Identical — no changes')}`)\n } else {\n if (added.length > 0) {\n logRaw(chalk.green(` + ${added.length} to upload`))\n added.forEach(f => logRaw(chalk.green(` + ${f}`)))\n }\n if (modified.length > 0) {\n logRaw(chalk.yellow(` ~ ${modified.length} modified`))\n modified.forEach(f => logRaw(chalk.yellow(` ~ ${f}`)))\n }\n if (removed.length > 0) {\n logRaw(chalk.red(` - ${removed.length} to delete`))\n removed.forEach(f => logRaw(chalk.red(` - ${f}`)))\n }\n }\n logRaw('')\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import {b}from'./chunk-FYFPDKJM.js';import'./chunk-THMWE2I6.js';import {a}from'./chunk-G4JU7IUC.js';import {g}from'./chunk-QT7R3AXE.js';import d from'fs';import r from'path';import b$1 from'cli-progress';import v from'chalk';async function C(a$1,l){let n=l?r.resolve(l):r.resolve(".",r.basename(a$1)),e=b(`Downloading ${a$1}...`);e.start();let o=await fetch(`https://squidcloud.vercel.app/api/v1/storage/download?path=${encodeURIComponent(a$1)}`,{headers:{Authorization:`Bearer ${(await import('./session-AZGWAAQQ.js')).loadSession().then(c=>c?.access_token||"")}`}}),p=o.headers.get("content-length"),t=p?parseInt(p,10):0;(!o.ok||!o.body)&&(e.fail(),console.error("Download failed"),process.exit(1));let m=r.dirname(n);d.existsSync(m)||d.mkdirSync(m,{recursive:true});let f=d.createWriteStream(n),S=o.body.getReader(),s=0,i=new b$1.SingleBar({format:`${v.hex("#7C4DFF")("\u25B8")} Downloading |${v.hex("#7C4DFF")("{bar}")}| {percentage}% | {value}/{total}`,barCompleteChar:"\u2588",barIncompleteChar:"\u2591",hideCursor:true});for(t>0?i.start(t,0):e.stop();;){let{done:c,value:h}=await S.read();if(c)break;f.write(Buffer.from(h)),s+=h.length,t>0&&i.update(s);}f.end(),t>0?i.stop():e.succeed(),g(`Downloaded to ${n} (${a(s)})`);}
2
+ export{C as default};//# sourceMappingURL=storage-download-5OYCNXKL.js.map
3
+ //# sourceMappingURL=storage-download-5OYCNXKL.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/storage/storage-download.ts"],"names":["storageDownload","remote","local","localPath","path","spinner","createSpinner","response","s","contentLength","total","dir","fs","writer","reader","downloaded","progressBar","cliProgress","chalk","done","value","logSuccess","formatBytes"],"mappings":"kQAUA,eAAOA,EAAuCC,GAAAA,CAAgBC,CAAAA,CAA+B,CAC3F,IAAMC,CAAAA,CAAYD,CAAAA,CAAQE,EAAK,OAAA,CAAQF,CAAK,CAAA,CAAIE,CAAAA,CAAK,OAAA,CAAQ,GAAA,CAAKA,EAAK,QAAA,CAASH,GAAM,CAAC,CAAA,CAEjFI,CAAAA,CAAUC,CAAAA,CAAc,eAAeL,GAAM,CAAA,GAAA,CAAK,CAAA,CACxDI,CAAAA,CAAQ,KAAA,EAAM,CAEd,IAAME,CAAAA,CAAW,MAAM,KAAA,CACrB,CAAA,2DAAA,EAA8D,kBAAA,CAAmBN,GAAM,CAAC,CAAA,CAAA,CACxF,CACE,OAAA,CAAS,CAAE,aAAA,CAAe,CAAA,OAAA,EAAA,CAAW,MAAM,OAAO,uBAA2B,CAAA,EAAG,WAAA,EAAY,CAAE,IAAA,CAAKO,GAAKA,CAAAA,EAAG,YAAA,EAAgB,EAAE,CAAC,CAAA,CAAG,CACnI,CACF,CAAA,CACMC,CAAAA,CAAgBF,CAAAA,CAAS,OAAA,CAAQ,GAAA,CAAI,gBAAgB,EACrDG,CAAAA,CAAQD,CAAAA,CAAgB,QAAA,CAASA,CAAAA,CAAe,EAAE,CAAA,CAAI,GAExD,CAACF,CAAAA,CAAS,EAAA,EAAM,CAACA,CAAAA,CAAS,IAAA,IAC5BF,EAAQ,IAAA,EAAK,CACb,OAAA,CAAQ,KAAA,CAAM,iBAAiB,CAAA,CAC/B,QAAQ,IAAA,CAAK,CAAC,CAAA,CAAA,CAGhB,IAAMM,CAAAA,CAAMP,CAAAA,CAAK,OAAA,CAAQD,CAAS,CAAA,CAC7BS,CAAAA,CAAG,UAAA,CAAWD,CAAG,CAAA,EACpBC,CAAAA,CAAG,UAAUD,CAAAA,CAAK,CAAE,SAAA,CAAW,IAAK,CAAC,CAAA,CAGvC,IAAME,CAAAA,CAASD,CAAAA,CAAG,iBAAA,CAAkBT,CAAS,CAAA,CACvCW,CAAAA,CAASP,EAAS,IAAA,CAAK,SAAA,EAAU,CACnCQ,CAAAA,CAAa,CAAA,CAEXC,CAAAA,CAAc,IAAIC,CAAAA,CAAY,SAAA,CAAU,CAC5C,MAAA,CAAQ,CAAA,EAAGC,CAAAA,CAAM,IAAI,SAAS,CAAA,CAAE,QAAG,CAAC,CAAA,cAAA,EAAiBA,CAAAA,CAAM,IAAI,SAAS,CAAA,CAAE,OAAO,CAAC,CAAA,iCAAA,CAAA,CAClF,eAAA,CAAiB,SACjB,iBAAA,CAAmB,QAAA,CACnB,UAAA,CAAY,IACd,CAAC,CAAA,CAQD,IANIR,CAAAA,CAAQ,CAAA,CACVM,CAAAA,CAAY,KAAA,CAAMN,CAAAA,CAAO,CAAC,EAE1BL,CAAAA,CAAQ,IAAA,EAAK,GAGF,CACX,GAAM,CAAE,KAAAc,CAAAA,CAAM,KAAA,CAAAC,CAAM,CAAA,CAAI,MAAMN,CAAAA,CAAO,MAAK,CAC1C,GAAIK,CAAAA,CAAM,MACVN,CAAAA,CAAO,KAAA,CAAM,OAAO,IAAA,CAAKO,CAAK,CAAC,CAAA,CAC/BL,CAAAA,EAAcK,CAAAA,CAAM,OAChBV,CAAAA,CAAQ,CAAA,EACVM,CAAAA,CAAY,MAAA,CAAOD,CAAU,EAEjC,CAEAF,CAAAA,CAAO,GAAA,EAAI,CACPH,CAAAA,CAAQ,CAAA,CAAGM,CAAAA,CAAY,MAAK,CAC3BX,CAAAA,CAAQ,OAAA,EAAQ,CAErBgB,CAAAA,CAAW,CAAA,cAAA,EAAiBlB,CAAS,CAAA,EAAA,EAAKmB,GAAAA,CAAYP,CAAU,CAAC,CAAA,CAAA,CAAG,EACtE","file":"storage-download-33DJ3N6Q.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, logJSON, logInfo } from '../../lib/output/logger.js'\nimport { isJsonMode } from '../../lib/output/logger.js'\nimport { formatBytes } from '../../lib/utils/format.js'\nimport cliProgress from 'cli-progress'\nimport chalk from 'chalk'\n\nexport default async function storageDownload(remote: string, local?: string): Promise<void> {\n const localPath = local ? path.resolve(local) : path.resolve('.', path.basename(remote))\n\n const spinner = createSpinner(`Downloading ${remote}...`)\n spinner.start()\n\n const response = await fetch(\n `https://squidcloud.vercel.app/api/v1/storage/download?path=${encodeURIComponent(remote)}`,\n {\n headers: { Authorization: `Bearer ${(await import('../../lib/auth/session.js')).loadSession().then(s => s?.access_token || '')}` },\n }\n )\n const contentLength = response.headers.get('content-length')\n const total = contentLength ? parseInt(contentLength, 10) : 0\n\n if (!response.ok || !response.body) {\n spinner.fail()\n console.error('Download failed')\n process.exit(1)\n }\n\n const dir = path.dirname(localPath)\n if (!fs.existsSync(dir)) {\n fs.mkdirSync(dir, { recursive: true })\n }\n\n const writer = fs.createWriteStream(localPath)\n const reader = response.body.getReader()\n let downloaded = 0\n\n const progressBar = new cliProgress.SingleBar({\n format: `${chalk.hex('#7C4DFF')('▸')} Downloading |${chalk.hex('#7C4DFF')('{bar}')}| {percentage}% | {value}/{total}`,\n barCompleteChar: '█',\n barIncompleteChar: '░',\n hideCursor: true,\n })\n\n if (total > 0) {\n progressBar.start(total, 0)\n } else {\n spinner.stop()\n }\n\n while (true) {\n const { done, value } = await reader.read()\n if (done) break\n writer.write(Buffer.from(value))\n downloaded += value.length\n if (total > 0) {\n progressBar.update(downloaded)\n }\n }\n\n writer.end()\n if (total > 0) progressBar.stop()\n else spinner.succeed()\n\n logSuccess(`Downloaded to ${localPath} (${formatBytes(downloaded)})`)\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/storage/storage-download.ts"],"names":["storageDownload","remote","local","localPath","path","spinner","createSpinner","response","s","contentLength","total","dir","fs","writer","reader","downloaded","progressBar","cliProgress","chalk","done","value","logSuccess","formatBytes"],"mappings":"iOAUA,eAAOA,EAAuCC,GAAAA,CAAgBC,CAAAA,CAA+B,CAC3F,IAAMC,CAAAA,CAAYD,CAAAA,CAAQE,EAAK,OAAA,CAAQF,CAAK,CAAA,CAAIE,CAAAA,CAAK,OAAA,CAAQ,GAAA,CAAKA,EAAK,QAAA,CAASH,GAAM,CAAC,CAAA,CAEjFI,CAAAA,CAAUC,CAAAA,CAAc,eAAeL,GAAM,CAAA,GAAA,CAAK,CAAA,CACxDI,CAAAA,CAAQ,KAAA,EAAM,CAEd,IAAME,CAAAA,CAAW,MAAM,KAAA,CACrB,CAAA,2DAAA,EAA8D,kBAAA,CAAmBN,GAAM,CAAC,CAAA,CAAA,CACxF,CACE,OAAA,CAAS,CAAE,aAAA,CAAe,CAAA,OAAA,EAAA,CAAW,MAAM,OAAO,uBAA2B,CAAA,EAAG,WAAA,EAAY,CAAE,IAAA,CAAKO,GAAKA,CAAAA,EAAG,YAAA,EAAgB,EAAE,CAAC,CAAA,CAAG,CACnI,CACF,CAAA,CACMC,CAAAA,CAAgBF,CAAAA,CAAS,OAAA,CAAQ,GAAA,CAAI,gBAAgB,EACrDG,CAAAA,CAAQD,CAAAA,CAAgB,QAAA,CAASA,CAAAA,CAAe,EAAE,CAAA,CAAI,GAExD,CAACF,CAAAA,CAAS,EAAA,EAAM,CAACA,CAAAA,CAAS,IAAA,IAC5BF,EAAQ,IAAA,EAAK,CACb,OAAA,CAAQ,KAAA,CAAM,iBAAiB,CAAA,CAC/B,QAAQ,IAAA,CAAK,CAAC,CAAA,CAAA,CAGhB,IAAMM,CAAAA,CAAMP,CAAAA,CAAK,OAAA,CAAQD,CAAS,CAAA,CAC7BS,CAAAA,CAAG,UAAA,CAAWD,CAAG,CAAA,EACpBC,CAAAA,CAAG,UAAUD,CAAAA,CAAK,CAAE,SAAA,CAAW,IAAK,CAAC,CAAA,CAGvC,IAAME,CAAAA,CAASD,CAAAA,CAAG,iBAAA,CAAkBT,CAAS,CAAA,CACvCW,CAAAA,CAASP,EAAS,IAAA,CAAK,SAAA,EAAU,CACnCQ,CAAAA,CAAa,CAAA,CAEXC,CAAAA,CAAc,IAAIC,GAAAA,CAAY,SAAA,CAAU,CAC5C,MAAA,CAAQ,CAAA,EAAGC,CAAAA,CAAM,IAAI,SAAS,CAAA,CAAE,QAAG,CAAC,CAAA,cAAA,EAAiBA,CAAAA,CAAM,IAAI,SAAS,CAAA,CAAE,OAAO,CAAC,CAAA,iCAAA,CAAA,CAClF,eAAA,CAAiB,SACjB,iBAAA,CAAmB,QAAA,CACnB,UAAA,CAAY,IACd,CAAC,CAAA,CAQD,IANIR,CAAAA,CAAQ,CAAA,CACVM,CAAAA,CAAY,KAAA,CAAMN,CAAAA,CAAO,CAAC,EAE1BL,CAAAA,CAAQ,IAAA,EAAK,GAGF,CACX,GAAM,CAAE,KAAAc,CAAAA,CAAM,KAAA,CAAAC,CAAM,CAAA,CAAI,MAAMN,CAAAA,CAAO,MAAK,CAC1C,GAAIK,CAAAA,CAAM,MACVN,CAAAA,CAAO,KAAA,CAAM,OAAO,IAAA,CAAKO,CAAK,CAAC,CAAA,CAC/BL,CAAAA,EAAcK,CAAAA,CAAM,OAChBV,CAAAA,CAAQ,CAAA,EACVM,CAAAA,CAAY,MAAA,CAAOD,CAAU,EAEjC,CAEAF,CAAAA,CAAO,GAAA,EAAI,CACPH,CAAAA,CAAQ,CAAA,CAAGM,CAAAA,CAAY,MAAK,CAC3BX,CAAAA,CAAQ,OAAA,EAAQ,CAErBgB,CAAAA,CAAW,CAAA,cAAA,EAAiBlB,CAAS,CAAA,EAAA,EAAKmB,CAAAA,CAAYP,CAAU,CAAC,CAAA,CAAA,CAAG,EACtE","file":"storage-download-5OYCNXKL.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, logJSON, logInfo } from '../../lib/output/logger.js'\nimport { isJsonMode } from '../../lib/output/logger.js'\nimport { formatBytes } from '../../lib/utils/format.js'\nimport cliProgress from 'cli-progress'\nimport chalk from 'chalk'\n\nexport default async function storageDownload(remote: string, local?: string): Promise<void> {\n const localPath = local ? path.resolve(local) : path.resolve('.', path.basename(remote))\n\n const spinner = createSpinner(`Downloading ${remote}...`)\n spinner.start()\n\n const response = await fetch(\n `https://squidcloud.vercel.app/api/v1/storage/download?path=${encodeURIComponent(remote)}`,\n {\n headers: { Authorization: `Bearer ${(await import('../../lib/auth/session.js')).loadSession().then(s => s?.access_token || '')}` },\n }\n )\n const contentLength = response.headers.get('content-length')\n const total = contentLength ? parseInt(contentLength, 10) : 0\n\n if (!response.ok || !response.body) {\n spinner.fail()\n console.error('Download failed')\n process.exit(1)\n }\n\n const dir = path.dirname(localPath)\n if (!fs.existsSync(dir)) {\n fs.mkdirSync(dir, { recursive: true })\n }\n\n const writer = fs.createWriteStream(localPath)\n const reader = response.body.getReader()\n let downloaded = 0\n\n const progressBar = new cliProgress.SingleBar({\n format: `${chalk.hex('#7C4DFF')('▸')} Downloading |${chalk.hex('#7C4DFF')('{bar}')}| {percentage}% | {value}/{total}`,\n barCompleteChar: '█',\n barIncompleteChar: '░',\n hideCursor: true,\n })\n\n if (total > 0) {\n progressBar.start(total, 0)\n } else {\n spinner.stop()\n }\n\n while (true) {\n const { done, value } = await reader.read()\n if (done) break\n writer.write(Buffer.from(value))\n downloaded += value.length\n if (total > 0) {\n progressBar.update(downloaded)\n }\n }\n\n writer.end()\n if (total > 0) progressBar.stop()\n else spinner.succeed()\n\n logSuccess(`Downloaded to ${localPath} (${formatBytes(downloaded)})`)\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 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 +1 @@
1
- {"version":3,"sources":["../src/commands/storage/storage-mkdir.ts"],"names":["storageMkdir","path","spinner","createSpinner","apiPost","logSuccess"],"mappings":"mOAIA,eAAOA,CAAAA,CAAoCC,CAAAA,CAA6B,CACtE,IAAMC,IAAUC,GAAAA,CAAc,CAAA,gBAAA,EAAmBF,CAAI,CAAA,GAAA,CAAK,CAAA,CAC1DC,GAAAA,CAAQ,KAAA,EAAM,CACd,MAAME,CAAAA,CAAQ,uBAAA,CAAyB,CAAE,IAAA,CAAAH,CAAK,CAAA,CAAG,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CACxEC,GAAAA,CAAQ,OAAA,EAAQ,CAChBG,CAAAA,CAAW,CAAA,eAAA,EAAkBJ,CAAI,EAAE,EACrC","file":"storage-mkdir-FGUEME4R.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 storageMkdir(path: string): Promise<void> {\n const spinner = createSpinner(`Creating folder ${path}...`)\n spinner.start()\n await apiPost('/api/v1/storage/mkdir', { path }, { authenticated: true })\n spinner.succeed()\n logSuccess(`Created folder ${path}`)\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/storage/storage-mkdir.ts"],"names":["storageMkdir","path","spinner","createSpinner","apiPost","logSuccess"],"mappings":"gMAIA,eAAOA,CAAAA,CAAoCC,CAAAA,CAA6B,CACtE,IAAMC,IAAUC,CAAAA,CAAc,CAAA,gBAAA,EAAmBF,CAAI,CAAA,GAAA,CAAK,CAAA,CAC1DC,GAAAA,CAAQ,KAAA,EAAM,CACd,MAAME,CAAAA,CAAQ,uBAAA,CAAyB,CAAE,IAAA,CAAAH,CAAK,CAAA,CAAG,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CACxEC,GAAAA,CAAQ,OAAA,EAAQ,CAChBG,CAAAA,CAAW,CAAA,eAAA,EAAkBJ,CAAI,EAAE,EACrC","file":"storage-mkdir-NWOHGAQI.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 storageMkdir(path: string): Promise<void> {\n const spinner = createSpinner(`Creating folder ${path}...`)\n spinner.start()\n await apiPost('/api/v1/storage/mkdir', { path }, { authenticated: true })\n spinner.succeed()\n logSuccess(`Created folder ${path}`)\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 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 +1 @@
1
- {"version":3,"sources":["../src/commands/storage/storage-mv.ts"],"names":["storageMv","source","dest","spinner","createSpinner","apiPost","logSuccess"],"mappings":"mOAIA,eAAOA,EAAiCC,CAAAA,CAAgBC,CAAAA,CAA6B,CACnF,IAAMC,EAAUC,GAAAA,CAAc,CAAA,OAAA,EAAUH,CAAM,CAAA,QAAA,EAAMC,CAAI,CAAA,GAAA,CAAK,CAAA,CAC7DC,EAAQ,KAAA,EAAM,CACd,MAAME,CAAAA,CAAQ,sBAAA,CAAwB,CAAE,MAAA,CAAAJ,EAAQ,WAAA,CAAaC,CAAK,EAAG,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAC5FC,CAAAA,CAAQ,OAAA,GACRG,CAAAA,CAAW,CAAA,MAAA,EAASL,CAAM,CAAA,QAAA,EAAMC,CAAI,EAAE,EACxC","file":"storage-mv-WW6GNDH4.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 storageMv(source: string, dest: string): Promise<void> {\n const spinner = createSpinner(`Moving ${source} → ${dest}...`)\n spinner.start()\n await apiPost('/api/v1/storage/move', { source, destination: dest }, { authenticated: true })\n spinner.succeed()\n logSuccess(`Moved ${source} → ${dest}`)\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/storage/storage-mv.ts"],"names":["storageMv","source","dest","spinner","createSpinner","apiPost","logSuccess"],"mappings":"gMAIA,eAAOA,EAAiCC,CAAAA,CAAgBC,CAAAA,CAA6B,CACnF,IAAMC,EAAUC,CAAAA,CAAc,CAAA,OAAA,EAAUH,CAAM,CAAA,QAAA,EAAMC,CAAI,CAAA,GAAA,CAAK,CAAA,CAC7DC,EAAQ,KAAA,EAAM,CACd,MAAME,CAAAA,CAAQ,sBAAA,CAAwB,CAAE,MAAA,CAAAJ,EAAQ,WAAA,CAAaC,CAAK,EAAG,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAC5FC,CAAAA,CAAQ,OAAA,GACRG,CAAAA,CAAW,CAAA,MAAA,EAASL,CAAM,CAAA,QAAA,EAAMC,CAAI,EAAE,EACxC","file":"storage-mv-XQ7EPX3M.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 storageMv(source: string, dest: string): Promise<void> {\n const spinner = createSpinner(`Moving ${source} → ${dest}...`)\n spinner.start()\n await apiPost('/api/v1/storage/move', { source, destination: dest }, { authenticated: true })\n spinner.succeed()\n logSuccess(`Moved ${source} → ${dest}`)\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,r){if(r?.recursive){let{confirm:a}=await s.prompt([{type:"confirm",name:"confirm",message:`Delete entire folder "${e}" and all contents?`,default:false}]);if(!a)return}let t=b(`Deleting ${e}...`);t.start(),await g(`/api/v1/storage/rm?path=${encodeURIComponent(e)}&recursive=${r?.recursive||false}`,{authenticated:true}),t.succeed(),g$1(`Deleted ${e}`);}export{c as default};//# sourceMappingURL=storage-rm-LYO6UR3G.js.map
2
+ //# sourceMappingURL=storage-rm-LYO6UR3G.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/storage/storage-rm.ts"],"names":["storageRm","path","options","confirm","inquirer","spinner","createSpinner","apiDelete","logSuccess"],"mappings":"2PAKA,eAAOA,CAAAA,CAAiCC,EAAcC,CAAAA,CAAkD,CACtG,GAAIA,CAAAA,EAAS,UAAW,CACtB,GAAM,CAAE,OAAA,CAAAC,CAAQ,CAAA,CAAI,MAAMC,CAAAA,CAAS,MAAA,CAAO,CAAC,CACzC,IAAA,CAAM,SAAA,CACN,KAAM,SAAA,CACN,OAAA,CAAS,CAAA,sBAAA,EAAyBH,CAAI,sBACtC,OAAA,CAAS,KACX,CAAC,CAAC,EACF,GAAI,CAACE,CAAAA,CAAS,MAChB,CACA,IAAME,CAAAA,CAAUC,CAAAA,CAAc,YAAYL,CAAI,CAAA,GAAA,CAAK,CAAA,CACnDI,CAAAA,CAAQ,OAAM,CACd,MAAME,CAAAA,CAAU,CAAA,wBAAA,EAA2B,mBAAmBN,CAAI,CAAC,CAAA,WAAA,EAAcC,CAAAA,EAAS,SAAA,EAAa,KAAK,CAAA,CAAA,CAAI,CAAE,cAAe,IAAK,CAAC,CAAA,CACvIG,CAAAA,CAAQ,SAAQ,CAChBG,GAAAA,CAAW,CAAA,QAAA,EAAWP,CAAI,EAAE,EAC9B","file":"storage-rm-IGU66LQK.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 storageRm(path: string, options?: { recursive?: boolean }): Promise<void> {\n if (options?.recursive) {\n const { confirm } = await inquirer.prompt([{\n type: 'confirm',\n name: 'confirm',\n message: `Delete entire folder \"${path}\" and all contents?`,\n default: false,\n }])\n if (!confirm) return\n }\n const spinner = createSpinner(`Deleting ${path}...`)\n spinner.start()\n await apiDelete(`/api/v1/storage/rm?path=${encodeURIComponent(path)}&recursive=${options?.recursive || false}`, { authenticated: true })\n spinner.succeed()\n logSuccess(`Deleted ${path}`)\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/storage/storage-rm.ts"],"names":["storageRm","path","options","confirm","inquirer","spinner","createSpinner","apiDelete","logSuccess"],"mappings":"+NAKA,eAAOA,CAAAA,CAAiCC,EAAcC,CAAAA,CAAkD,CACtG,GAAIA,CAAAA,EAAS,UAAW,CACtB,GAAM,CAAE,OAAA,CAAAC,CAAQ,CAAA,CAAI,MAAMC,CAAAA,CAAS,MAAA,CAAO,CAAC,CACzC,IAAA,CAAM,SAAA,CACN,KAAM,SAAA,CACN,OAAA,CAAS,CAAA,sBAAA,EAAyBH,CAAI,sBACtC,OAAA,CAAS,KACX,CAAC,CAAC,EACF,GAAI,CAACE,CAAAA,CAAS,MAChB,CACA,IAAME,CAAAA,CAAUC,CAAAA,CAAc,YAAYL,CAAI,CAAA,GAAA,CAAK,CAAA,CACnDI,CAAAA,CAAQ,OAAM,CACd,MAAME,CAAAA,CAAU,CAAA,wBAAA,EAA2B,mBAAmBN,CAAI,CAAC,CAAA,WAAA,EAAcC,CAAAA,EAAS,SAAA,EAAa,KAAK,CAAA,CAAA,CAAI,CAAE,cAAe,IAAK,CAAC,CAAA,CACvIG,CAAAA,CAAQ,SAAQ,CAChBG,GAAAA,CAAW,CAAA,QAAA,EAAWP,CAAI,EAAE,EAC9B","file":"storage-rm-LYO6UR3G.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 storageRm(path: string, options?: { recursive?: boolean }): Promise<void> {\n if (options?.recursive) {\n const { confirm } = await inquirer.prompt([{\n type: 'confirm',\n name: 'confirm',\n message: `Delete entire folder \"${path}\" and all contents?`,\n default: false,\n }])\n if (!confirm) return\n }\n const spinner = createSpinner(`Deleting ${path}...`)\n spinner.start()\n await apiDelete(`/api/v1/storage/rm?path=${encodeURIComponent(path)}&recursive=${options?.recursive || false}`, { authenticated: true })\n spinner.succeed()\n logSuccess(`Deleted ${path}`)\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 {f,m,g,c as c$1}from'./chunk-QT7R3AXE.js';import'./chunk-4NTVRCZM.js';import c from'clipboardy';import l from'chalk';async function u(i,r){let t=b(`Creating share link for ${i}...`);t.start();let e$1=await e("/api/v1/storage/share",{path:i,expires_in:r?.expires,password:r?.password,max_views:r?.views,burn_after_reading:r?.burn},{authenticated:true});t.stop();try{await c.write(e$1.url);}catch{}if(f()){m(e$1);return}g("Share link created!"),console.log(` ${l.hex("#4FC3F7")(e$1.url)} ${c$1("")}`);}export{u as default};//# sourceMappingURL=storage-share-OURRQWZK.js.map
2
+ //# sourceMappingURL=storage-share-OURRQWZK.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/storage/storage-share.ts"],"names":["storageShare","path","options","spinner","createSpinner","result","apiPost","clipboard","isJsonMode","logJSON","logSuccess","chalk","copied"],"mappings":"wRAQA,eAAOA,EAAoCC,CAAAA,CAAcC,CAAAA,CAAkG,CACzJ,IAAMC,EAAUC,CAAAA,CAAc,CAAA,wBAAA,EAA2BH,CAAI,CAAA,GAAA,CAAK,CAAA,CAClEE,EAAQ,KAAA,EAAM,CACd,IAAME,GAAAA,CAAS,MAAMC,CAAAA,CAA2C,uBAAA,CAAyB,CACvF,IAAA,CAAAL,CAAAA,CACA,WAAYC,CAAAA,EAAS,OAAA,CACrB,SAAUA,CAAAA,EAAS,QAAA,CACnB,UAAWA,CAAAA,EAAS,KAAA,CACpB,mBAAoBA,CAAAA,EAAS,IAC/B,EAAG,CAAE,aAAA,CAAe,IAAK,CAAC,EAC1BC,CAAAA,CAAQ,IAAA,GAER,GAAI,CACF,MAAMI,CAAAA,CAAU,KAAA,CAAMF,IAAO,GAAG,EAClC,MAAQ,CAER,CAEA,GAAIG,CAAAA,EAAW,CAAG,CAChBC,CAAAA,CAAQJ,GAAM,CAAA,CACd,MACF,CAEAK,CAAAA,CAAW,qBAAqB,EAChC,OAAA,CAAQ,GAAA,CAAI,KAAKC,CAAAA,CAAM,GAAA,CAAI,SAAS,CAAA,CAAEN,GAAAA,CAAO,GAAG,CAAC,CAAA,CAAA,EAAIO,IAAO,EAAE,CAAC,EAAE,EACnE","file":"storage-share-VB47GSYV.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'\nimport clipboard from 'clipboardy'\nimport chalk from 'chalk'\nimport { copied } from '../../lib/output/brand.js'\n\nexport default async function storageShare(path: string, options?: { expires?: string; password?: string; views?: number; burn?: boolean }): Promise<void> {\n const spinner = createSpinner(`Creating share link for ${path}...`)\n spinner.start()\n const result = await apiPost<{ url: string; share_id: string }>('/api/v1/storage/share', {\n path,\n expires_in: options?.expires,\n password: options?.password,\n max_views: options?.views,\n burn_after_reading: options?.burn,\n }, { authenticated: true })\n spinner.stop()\n\n try {\n await clipboard.write(result.url)\n } catch {\n // ignore\n }\n\n if (isJsonMode()) {\n logJSON(result)\n return\n }\n\n logSuccess(`Share link created!`)\n console.log(` ${chalk.hex('#4FC3F7')(result.url)} ${copied('')}`)\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/storage/storage-share.ts"],"names":["storageShare","path","options","spinner","createSpinner","result","apiPost","clipboard","isJsonMode","logJSON","logSuccess","chalk","copied"],"mappings":"4PAQA,eAAOA,EAAoCC,CAAAA,CAAcC,CAAAA,CAAkG,CACzJ,IAAMC,EAAUC,CAAAA,CAAc,CAAA,wBAAA,EAA2BH,CAAI,CAAA,GAAA,CAAK,CAAA,CAClEE,EAAQ,KAAA,EAAM,CACd,IAAME,GAAAA,CAAS,MAAMC,CAAAA,CAA2C,uBAAA,CAAyB,CACvF,IAAA,CAAAL,CAAAA,CACA,WAAYC,CAAAA,EAAS,OAAA,CACrB,SAAUA,CAAAA,EAAS,QAAA,CACnB,UAAWA,CAAAA,EAAS,KAAA,CACpB,mBAAoBA,CAAAA,EAAS,IAC/B,EAAG,CAAE,aAAA,CAAe,IAAK,CAAC,EAC1BC,CAAAA,CAAQ,IAAA,GAER,GAAI,CACF,MAAMI,CAAAA,CAAU,KAAA,CAAMF,IAAO,GAAG,EAClC,MAAQ,CAER,CAEA,GAAIG,CAAAA,EAAW,CAAG,CAChBC,CAAAA,CAAQJ,GAAM,CAAA,CACd,MACF,CAEAK,CAAAA,CAAW,qBAAqB,EAChC,OAAA,CAAQ,GAAA,CAAI,KAAKC,CAAAA,CAAM,GAAA,CAAI,SAAS,CAAA,CAAEN,GAAAA,CAAO,GAAG,CAAC,CAAA,CAAA,EAAIO,IAAO,EAAE,CAAC,EAAE,EACnE","file":"storage-share-OURRQWZK.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'\nimport clipboard from 'clipboardy'\nimport chalk from 'chalk'\nimport { copied } from '../../lib/output/brand.js'\n\nexport default async function storageShare(path: string, options?: { expires?: string; password?: string; views?: number; burn?: boolean }): Promise<void> {\n const spinner = createSpinner(`Creating share link for ${path}...`)\n spinner.start()\n const result = await apiPost<{ url: string; share_id: string }>('/api/v1/storage/share', {\n path,\n expires_in: options?.expires,\n password: options?.password,\n max_views: options?.views,\n burn_after_reading: options?.burn,\n }, { authenticated: true })\n spinner.stop()\n\n try {\n await clipboard.write(result.url)\n } catch {\n // ignore\n }\n\n if (isJsonMode()) {\n logJSON(result)\n return\n }\n\n logSuccess(`Share link created!`)\n console.log(` ${chalk.hex('#4FC3F7')(result.url)} ${copied('')}`)\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 as g$1}from'./chunk-QT7R3AXE.js';import'./chunk-4NTVRCZM.js';async function g(a,e$1){if(e$1.add){let r=b(`Adding tag "${e$1.add}" to ${a}...`);r.start(),await e("/api/v1/storage/tags",{path:a,tag:e$1.add,action:"add"},{authenticated:true}),r.succeed(),g$1(`Tag "${e$1.add}" added to ${a}`);}if(e$1.remove){let r=b(`Removing tag "${e$1.remove}" from ${a}...`);r.start(),await e("/api/v1/storage/tags",{path:a,tag:e$1.remove,action:"remove"},{authenticated:true}),r.succeed(),g$1(`Tag "${e$1.remove}" removed from ${a}`);}}export{g as default};//# sourceMappingURL=storage-tag-NGJGUJSZ.js.map
2
+ //# sourceMappingURL=storage-tag-NGJGUJSZ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/storage/storage-tag.ts"],"names":["storageTag","path","options","spinner","createSpinner","apiPost","logSuccess"],"mappings":"mOAIA,eAAOA,CAAAA,CAAkCC,IAAcC,GAAAA,CAA2D,CAChH,GAAIA,GAAAA,CAAQ,GAAA,CAAK,CACf,IAAMC,CAAAA,CAAUC,EAAc,CAAA,YAAA,EAAeF,GAAAA,CAAQ,GAAG,CAAA,KAAA,EAAQD,GAAI,KAAK,CAAA,CACzEE,CAAAA,CAAQ,OAAM,CACd,MAAME,EAAQ,sBAAA,CAAwB,CAAE,KAAAJ,GAAAA,CAAM,GAAA,CAAKC,IAAQ,GAAA,CAAK,MAAA,CAAQ,KAAM,CAAA,CAAG,CAAE,cAAe,IAAK,CAAC,EACxGC,CAAAA,CAAQ,OAAA,GACRG,GAAAA,CAAW,CAAA,KAAA,EAAQJ,GAAAA,CAAQ,GAAG,CAAA,WAAA,EAAcD,GAAI,EAAE,EACpD,CACA,GAAIC,GAAAA,CAAQ,MAAA,CAAQ,CAClB,IAAMC,CAAAA,CAAUC,EAAc,CAAA,cAAA,EAAiBF,GAAAA,CAAQ,MAAM,CAAA,OAAA,EAAUD,GAAI,KAAK,CAAA,CAChFE,CAAAA,CAAQ,OAAM,CACd,MAAME,CAAAA,CAAQ,sBAAA,CAAwB,CAAE,IAAA,CAAAJ,IAAM,GAAA,CAAKC,GAAAA,CAAQ,OAAQ,MAAA,CAAQ,QAAS,EAAG,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAC9GC,EAAQ,OAAA,EAAQ,CAChBG,IAAW,CAAA,KAAA,EAAQJ,GAAAA,CAAQ,MAAM,CAAA,eAAA,EAAkBD,GAAI,CAAA,CAAE,EAC3D,CACF","file":"storage-tag-Q4TX5KKI.js","sourcesContent":["import { apiPost, 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 storageTag(path: string, options: { add?: string; remove?: string }): Promise<void> {\n if (options.add) {\n const spinner = createSpinner(`Adding tag \"${options.add}\" to ${path}...`)\n spinner.start()\n await apiPost('/api/v1/storage/tags', { path, tag: options.add, action: 'add' }, { authenticated: true })\n spinner.succeed()\n logSuccess(`Tag \"${options.add}\" added to ${path}`)\n }\n if (options.remove) {\n const spinner = createSpinner(`Removing tag \"${options.remove}\" from ${path}...`)\n spinner.start()\n await apiPost('/api/v1/storage/tags', { path, tag: options.remove, action: 'remove' }, { authenticated: true })\n spinner.succeed()\n logSuccess(`Tag \"${options.remove}\" removed from ${path}`)\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/storage/storage-tag.ts"],"names":["storageTag","path","options","spinner","createSpinner","apiPost","logSuccess"],"mappings":"uMAIA,eAAOA,CAAAA,CAAkCC,EAAcC,GAAAA,CAA2D,CAChH,GAAIA,GAAAA,CAAQ,GAAA,CAAK,CACf,IAAMC,CAAAA,CAAUC,EAAc,CAAA,YAAA,EAAeF,GAAAA,CAAQ,GAAG,CAAA,KAAA,EAAQD,CAAI,KAAK,CAAA,CACzEE,CAAAA,CAAQ,OAAM,CACd,MAAME,EAAQ,sBAAA,CAAwB,CAAE,KAAAJ,CAAAA,CAAM,GAAA,CAAKC,IAAQ,GAAA,CAAK,MAAA,CAAQ,KAAM,CAAA,CAAG,CAAE,cAAe,IAAK,CAAC,EACxGC,CAAAA,CAAQ,OAAA,GACRG,GAAAA,CAAW,CAAA,KAAA,EAAQJ,GAAAA,CAAQ,GAAG,CAAA,WAAA,EAAcD,CAAI,EAAE,EACpD,CACA,GAAIC,GAAAA,CAAQ,MAAA,CAAQ,CAClB,IAAMC,CAAAA,CAAUC,EAAc,CAAA,cAAA,EAAiBF,GAAAA,CAAQ,MAAM,CAAA,OAAA,EAAUD,CAAI,KAAK,CAAA,CAChFE,CAAAA,CAAQ,OAAM,CACd,MAAME,CAAAA,CAAQ,sBAAA,CAAwB,CAAE,IAAA,CAAAJ,EAAM,GAAA,CAAKC,GAAAA,CAAQ,OAAQ,MAAA,CAAQ,QAAS,EAAG,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAC9GC,EAAQ,OAAA,EAAQ,CAChBG,IAAW,CAAA,KAAA,EAAQJ,GAAAA,CAAQ,MAAM,CAAA,eAAA,EAAkBD,CAAI,CAAA,CAAE,EAC3D,CACF","file":"storage-tag-NGJGUJSZ.js","sourcesContent":["import { apiPost, 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 storageTag(path: string, options: { add?: string; remove?: string }): Promise<void> {\n if (options.add) {\n const spinner = createSpinner(`Adding tag \"${options.add}\" to ${path}...`)\n spinner.start()\n await apiPost('/api/v1/storage/tags', { path, tag: options.add, action: 'add' }, { authenticated: true })\n spinner.succeed()\n logSuccess(`Tag \"${options.add}\" added to ${path}`)\n }\n if (options.remove) {\n const spinner = createSpinner(`Removing tag \"${options.remove}\" from ${path}...`)\n spinner.start()\n await apiPost('/api/v1/storage/tags', { path, tag: options.remove, action: 'remove' }, { authenticated: true })\n spinner.succeed()\n logSuccess(`Tag \"${options.remove}\" removed from ${path}`)\n }\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';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 +1 @@
1
- {"version":3,"sources":["../src/commands/storage/storage-unshare.ts"],"names":["storageUnshare","path","spinner","createSpinner","apiDelete","logSuccess"],"mappings":"mOAIA,eAAOA,CAAAA,CAAsCC,CAAAA,CAA6B,CACxE,IAAMC,EAAUC,CAAAA,CAAc,CAAA,yBAAA,EAA4BF,CAAI,CAAA,GAAA,CAAK,CAAA,CACnEC,CAAAA,CAAQ,KAAA,EAAM,CACd,MAAME,CAAAA,CAAU,CAAA,2BAAA,EAA8B,kBAAA,CAAmBH,CAAI,CAAC,CAAA,CAAA,CAAI,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CACjGC,CAAAA,CAAQ,OAAA,EAAQ,CAChBG,GAAAA,CAAW,CAAA,4BAAA,EAA+BJ,CAAI,EAAE,EAClD","file":"storage-unshare-R7LPIUEA.js","sourcesContent":["import { 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 storageUnshare(path: string): Promise<void> {\n const spinner = createSpinner(`Revoking share links for ${path}...`)\n spinner.start()\n await apiDelete(`/api/v1/storage/share?path=${encodeURIComponent(path)}`, { authenticated: true })\n spinner.succeed()\n logSuccess(`All share links revoked for ${path}`)\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/storage/storage-unshare.ts"],"names":["storageUnshare","path","spinner","createSpinner","apiDelete","logSuccess"],"mappings":"uMAIA,eAAOA,CAAAA,CAAsCC,CAAAA,CAA6B,CACxE,IAAMC,EAAUC,CAAAA,CAAc,CAAA,yBAAA,EAA4BF,CAAI,CAAA,GAAA,CAAK,CAAA,CACnEC,CAAAA,CAAQ,KAAA,EAAM,CACd,MAAME,CAAAA,CAAU,CAAA,2BAAA,EAA8B,kBAAA,CAAmBH,CAAI,CAAC,CAAA,CAAA,CAAI,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CACjGC,CAAAA,CAAQ,OAAA,EAAQ,CAChBG,GAAAA,CAAW,CAAA,4BAAA,EAA+BJ,CAAI,EAAE,EAClD","file":"storage-unshare-3DXEKHEH.js","sourcesContent":["import { 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 storageUnshare(path: string): Promise<void> {\n const spinner = createSpinner(`Revoking share links for ${path}...`)\n spinner.start()\n await apiDelete(`/api/v1/storage/share?path=${encodeURIComponent(path)}`, { authenticated: true })\n spinner.succeed()\n logSuccess(`All share links revoked for ${path}`)\n}\n"]}
@@ -0,0 +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 +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-KGMLZLWU.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-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"]}
@@ -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 {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
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/time/time-lock.ts"],"names":["timeLock","path","options","spinner","createSpinner","result","apiPost","isJsonMode","logJSON","logSuccess"],"mappings":"gOAKA,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-GK7D7RKH.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-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"]}
@@ -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 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 +1 @@
1
- {"version":3,"sources":["../src/commands/time/time-proof.ts"],"names":["timeProof","filePath","spinner","createSpinner","data","apiGet","proofPath","path","fs","logSuccess"],"mappings":"kQAMA,eAAOA,CAAAA,CAAiCC,CAAAA,CAAiC,CACvE,IAAMC,CAAAA,CAAUC,CAAAA,CAAc,qBAAqB,CAAA,CACnDD,EAAQ,KAAA,EAAM,CACd,IAAME,GAAAA,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,GAAAA,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-PT44FO2Q.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-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"]}
@@ -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,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 +1 @@
1
- {"version":3,"sources":["../src/commands/time/time-unlock.ts"],"names":["timeUnlock","path","spinner","createSpinner","apiPost","logSuccess","logError"],"mappings":"8NAIA,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-UARQCXPS.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-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"]}
@@ -0,0 +1,2 @@
1
+ import {b}from'./chunk-FYFPDKJM.js';import'./chunk-THMWE2I6.js';import {j,g,h}from'./chunk-QT7R3AXE.js';import {execSync}from'child_process';async function d(){let o=b("Checking for updates...");o.start();try{let e=execSync("npm view @squidcloud/cli version",{encoding:"utf-8"}).trim(),r={version:"1.0.0"};if(o.succeed(),e>r.version){j(`New version available: ${e} (current: ${r.version})`);let n=b("Updating...");n.start(),execSync("npm install -g @squidcloud/cli",{stdio:"pipe"}),n.succeed(),g(`Updated to v${e}`);}else g(`Already up to date (v${r.version})`);}catch{o.fail(),h("Failed to check for updates");}}export{d as default};//# sourceMappingURL=update-XJQSXSFU.js.map
2
+ //# sourceMappingURL=update-XJQSXSFU.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/util/update.ts"],"names":["update","spinner","createSpinner","result","execSync","pkg","logInfo","installSpinner","logSuccess","logError"],"mappings":"yKAIA,eAAOA,CAAAA,EAA+C,CACpD,IAAMC,CAAAA,CAAUC,CAAAA,CAAc,yBAAyB,CAAA,CACvDD,EAAQ,KAAA,EAAM,CACd,GAAI,CACF,IAAME,EAASC,QAAAA,CAAS,kCAAA,CAAoC,CAAE,QAAA,CAAU,OAAQ,CAAC,CAAA,CAAE,MAAK,CAClFC,CAAAA,CAAM,CAAE,OAAA,CAAS,OAAQ,EAE/B,GADAJ,CAAAA,CAAQ,SAAQ,CACZE,CAAAA,CAASE,EAAI,OAAA,CAAS,CACxBC,EAAQ,CAAA,uBAAA,EAA0BH,CAAM,CAAA,WAAA,EAAcE,CAAAA,CAAI,OAAO,CAAA,CAAA,CAAG,CAAA,CACpE,IAAME,CAAAA,CAAiBL,CAAAA,CAAc,aAAa,CAAA,CAClDK,CAAAA,CAAe,KAAA,EAAM,CACrBH,SAAS,gCAAA,CAAkC,CAAE,MAAO,MAAO,CAAC,EAC5DG,CAAAA,CAAe,OAAA,EAAQ,CACvBC,CAAAA,CAAW,eAAeL,CAAM,CAAA,CAAE,EACpC,CAAA,KACEK,CAAAA,CAAW,wBAAwBH,CAAAA,CAAI,OAAO,GAAG,EAErD,CAAA,KAAc,CACZJ,CAAAA,CAAQ,IAAA,GACRQ,CAAAA,CAAS,6BAA6B,EACxC,CACF","file":"update-IYMIV34T.js","sourcesContent":["import { execSync } from 'node:child_process'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess, logError, logInfo } from '../../lib/output/logger.js'\n\nexport default async function update(): Promise<void> {\n const spinner = createSpinner('Checking for updates...')\n spinner.start()\n try {\n const result = execSync('npm view @squidcloud/cli version', { encoding: 'utf-8' }).trim()\n const pkg = { version: '1.0.0' }\n spinner.succeed()\n if (result > pkg.version) {\n logInfo(`New version available: ${result} (current: ${pkg.version})`)\n const installSpinner = createSpinner('Updating...')\n installSpinner.start()\n execSync('npm install -g @squidcloud/cli', { stdio: 'pipe' })\n installSpinner.succeed()\n logSuccess(`Updated to v${result}`)\n } else {\n logSuccess(`Already up to date (v${pkg.version})`)\n }\n } catch (err) {\n spinner.fail()\n logError('Failed to check for updates')\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/commands/util/update.ts"],"names":["update","spinner","createSpinner","result","execSync","pkg","logInfo","installSpinner","logSuccess","logError"],"mappings":"6IAIA,eAAOA,CAAAA,EAA+C,CACpD,IAAMC,CAAAA,CAAUC,CAAAA,CAAc,yBAAyB,CAAA,CACvDD,EAAQ,KAAA,EAAM,CACd,GAAI,CACF,IAAME,EAASC,QAAAA,CAAS,kCAAA,CAAoC,CAAE,QAAA,CAAU,OAAQ,CAAC,CAAA,CAAE,MAAK,CAClFC,CAAAA,CAAM,CAAE,OAAA,CAAS,OAAQ,EAE/B,GADAJ,CAAAA,CAAQ,SAAQ,CACZE,CAAAA,CAASE,EAAI,OAAA,CAAS,CACxBC,EAAQ,CAAA,uBAAA,EAA0BH,CAAM,CAAA,WAAA,EAAcE,CAAAA,CAAI,OAAO,CAAA,CAAA,CAAG,CAAA,CACpE,IAAME,CAAAA,CAAiBL,CAAAA,CAAc,aAAa,CAAA,CAClDK,CAAAA,CAAe,KAAA,EAAM,CACrBH,SAAS,gCAAA,CAAkC,CAAE,MAAO,MAAO,CAAC,EAC5DG,CAAAA,CAAe,OAAA,EAAQ,CACvBC,CAAAA,CAAW,eAAeL,CAAM,CAAA,CAAE,EACpC,CAAA,KACEK,CAAAA,CAAW,wBAAwBH,CAAAA,CAAI,OAAO,GAAG,EAErD,CAAA,KAAc,CACZJ,CAAAA,CAAQ,IAAA,GACRQ,CAAAA,CAAS,6BAA6B,EACxC,CACF","file":"update-XJQSXSFU.js","sourcesContent":["import { execSync } from 'node:child_process'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess, logError, logInfo } from '../../lib/output/logger.js'\n\nexport default async function update(): Promise<void> {\n const spinner = createSpinner('Checking for updates...')\n spinner.start()\n try {\n const result = execSync('npm view @squidcloud/cli version', { encoding: 'utf-8' }).trim()\n const pkg = { version: '1.0.0' }\n spinner.succeed()\n if (result > pkg.version) {\n logInfo(`New version available: ${result} (current: ${pkg.version})`)\n const installSpinner = createSpinner('Updating...')\n installSpinner.start()\n execSync('npm install -g @squidcloud/cli', { stdio: 'pipe' })\n installSpinner.succeed()\n logSuccess(`Updated to v${result}`)\n } else {\n logSuccess(`Already up to date (v${pkg.version})`)\n }\n } catch (err) {\n spinner.fail()\n logError('Failed to check for updates')\n }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {f,m}from'./chunk-QT7R3AXE.js';import o from'chalk';var r={version:"1.0.0"};async function s(){if(f()){m({version:r.version,name:"@squidcloud/cli"});return}console.log(o.hex("#4FC3F7")("squidcloud.vercel.app")+o.dim(" CLI ")+o.dim("v"+r.version));}var d=s;export{d as default,s as showVersion};//# sourceMappingURL=version-LHSDYI7Q.js.map
2
+ //# sourceMappingURL=version-LHSDYI7Q.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/util/version.ts"],"names":["pkg","showVersion","isJsonMode","logJSON","chalk","version_default"],"mappings":"2DAGA,IAAMA,CAAAA,CAAM,CAAE,OAAA,CAAS,OAAQ,EAE/B,eAAsBC,CAAAA,EAA6B,CACjD,GAAIC,CAAAA,GAAc,CAChBC,CAAAA,CAAQ,CAAE,OAAA,CAASH,CAAAA,CAAI,OAAA,CAAS,IAAA,CAAM,iBAAkB,CAAC,EACzD,MACF,CACA,QAAQ,GAAA,CAAII,CAAAA,CAAM,IAAI,SAAS,CAAA,CAAE,uBAAuB,CAAA,CAAIA,CAAAA,CAAM,GAAA,CAAI,OAAO,CAAA,CAAIA,CAAAA,CAAM,IAAI,GAAA,CAAMJ,CAAAA,CAAI,OAAO,CAAC,EAC/G,CAEA,IAAOK,CAAAA,CAAQJ","file":"version-LHSDYI7Q.js","sourcesContent":["import chalk from 'chalk'\nimport { isJsonMode, logJSON } from '../../lib/output/logger.js'\n\nconst pkg = { version: '1.0.0' }\n\nexport async function showVersion(): Promise<void> {\n if (isJsonMode()) {\n logJSON({ version: pkg.version, name: '@squidcloud/cli' })\n return\n }\n console.log(chalk.hex('#4FC3F7')('squidcloud.vercel.app') + chalk.dim(' CLI ') + chalk.dim('v' + pkg.version))\n}\n\nexport default showVersion\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "squidcloudctl",
3
- "version": "1.1.1",
3
+ "version": "1.1.2",
4
4
  "description": "SquidCloud CLI — deploy, storage, sites, pipelines, and more",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,2 +0,0 @@
1
- import {a as a$1}from'./chunk-ON3YIMVG.js';import'./chunk-6TS5Y27A.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';import a from'inquirer';async function c(e$1){if(e$1.all){let{confirm:s}=await a.prompt([{type:"confirm",name:"confirm",message:"Revoke ALL active sessions? This will log out every device.",default:false}]);if(!s)return;let t=a$1("Revoking all sessions...");t.start(),await e("/api/auth/ssp/revoke-all",{},{authenticated:true}),await o(),t.succeed(),g("All sessions revoked");return}if(e$1.session){let s=a$1(`Revoking session ${e$1.session}...`);s.start(),await e("/api/auth/ssp/revoke",{session_id:e$1.session},{authenticated:true}),s.succeed(),g(`Session ${e$1.session} revoked`);return}console.error("Specify --session <id> or --all"),process.exit(1);}export{c as default};//# sourceMappingURL=auth-revoke-HLVWIF5D.js.map
2
- //# sourceMappingURL=auth-revoke-HLVWIF5D.js.map
@@ -1,6 +0,0 @@
1
- import n from'chalk';var F="#0A0E1A",r="#4FC3F7",s="#7C4DFF",c="#FFFFFF",l=[" \u2554\u2550\u2550\u2550\u2557 "," \u2554\u255D\u2588 \u2588\u255A\u2557 "," \u2551 \u25C9 \u2551 "," \u255A\u2557 \u2554\u255D "," \u2551 \u2566 \u2551 "," \u2554\u255D \u2551 \u255A\u2557 "," \u2551 \u2551 \u2551 "," \u255A\u2557 \u2551 \u2554\u255D "," \u255A\u2550\u2550\u2550\u255D "];function p(){return l.map((e,o)=>{let i=e.replace(/█/g,n.hex(s)("\u2588")).replace(/◉/g,n.hex(r)("\u25C9")).replace(/[╔╗╚╝═║╦]/g,a=>n.hex(c)(a));return n.bgHex(F)(i)}).join(`
2
- `)}function g(){let t=p(),e=n.hex(r)("SQUID")+n.hex(s)("CLOUD"),o=n.hex(c).dim("static sites \xB7 storage \xB7 pipelines");return `${t}
3
-
4
- ${e} ${o}
5
- `}export{p as a,g as b};//# sourceMappingURL=chunk-6TS5Y27A.js.map
6
- //# sourceMappingURL=chunk-6TS5Y27A.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/lib/output/mascot.ts"],"names":["NAVY","BLUE","VIOLET","WHITE","SQUID_ART","renderMascot","line","i","colored","chalk","m","renderBrandedMascot","mascot","brand","tagline"],"mappings":"qBAEA,IAAMA,CAAAA,CAAO,UACPC,CAAAA,CAAO,SAAA,CACPC,CAAAA,CAAS,SAAA,CACTC,EAAQ,SAAA,CAERC,CAAAA,CAAY,CAChB,oCAAA,CACA,0CACA,0BAAA,CACA,+BAAA,CACA,0BAAA,CACA,oCAAA,CACA,0BAAA,CACA,oCAAA,CACA,oCACF,CAAA,CAEO,SAASC,CAAAA,EAAuB,CAOrC,OANcD,CAAAA,CAAU,IAAI,CAACE,CAAAA,CAAMC,CAAAA,GAAM,CACvC,IAAMC,CAAAA,CAAUF,CAAAA,CAAK,OAAA,CAAQ,IAAA,CAAMG,CAAAA,CAAM,GAAA,CAAIP,CAAM,CAAA,CAAE,QAAG,CAAC,CAAA,CACtD,OAAA,CAAQ,IAAA,CAAMO,EAAM,GAAA,CAAIR,CAAI,CAAA,CAAE,QAAG,CAAC,CAAA,CAClC,OAAA,CAAQ,YAAA,CAAeS,CAAAA,EAAMD,EAAM,GAAA,CAAIN,CAAK,CAAA,CAAEO,CAAC,CAAC,CAAA,CACnD,OAAOD,CAAAA,CAAM,KAAA,CAAMT,CAAI,CAAA,CAAEQ,CAAO,CAClC,CAAC,EACY,IAAA,CAAK;AAAA,CAAI,CACxB,CAEO,SAASG,CAAAA,EAA8B,CAC5C,IAAMC,CAAAA,CAASP,CAAAA,EAAa,CACtBQ,CAAAA,CAAQJ,CAAAA,CAAM,GAAA,CAAIR,CAAI,EAAE,OAAO,CAAA,CAAIQ,CAAAA,CAAM,GAAA,CAAIP,CAAM,CAAA,CAAE,OAAO,CAAA,CAC5DY,EAAUL,CAAAA,CAAM,GAAA,CAAIN,CAAK,CAAA,CAAE,GAAA,CAAI,0CAAoC,CAAA,CACzE,OAAO,GAAGS,CAAM;;AAAA,EAAA,EAASC,CAAK,KAAKC,CAAO;AAAA,CAC5C","file":"chunk-6TS5Y27A.js","sourcesContent":["import chalk from 'chalk'\n\nconst NAVY = '#0A0E1A'\nconst BLUE = '#4FC3F7'\nconst VIOLET = '#7C4DFF'\nconst WHITE = '#FFFFFF'\n\nconst SQUID_ART = [\n ' ╔═══╗ ',\n ' ╔╝█ █╚╗ ',\n ' ║ ◉ ║ ',\n ' ╚╗ ╔╝ ',\n ' ║ ╦ ║ ',\n ' ╔╝ ║ ╚╗ ',\n ' ║ ║ ║ ',\n ' ╚╗ ║ ╔╝ ',\n ' ╚═══╝ ',\n]\n\nexport function renderMascot(): string {\n const lines = SQUID_ART.map((line, i) => {\n const colored = line.replace(/█/g, chalk.hex(VIOLET)('█'))\n .replace(/◉/g, chalk.hex(BLUE)('◉'))\n .replace(/[╔╗╚╝═║╦]/g, (m) => chalk.hex(WHITE)(m))\n return chalk.bgHex(NAVY)(colored)\n })\n return lines.join('\\n')\n}\n\nexport function renderBrandedMascot(): string {\n const mascot = renderMascot()\n const brand = chalk.hex(BLUE)('SQUID') + chalk.hex(VIOLET)('CLOUD')\n const tagline = chalk.hex(WHITE).dim('static sites · storage · pipelines')\n return `${mascot}\\n\\n ${brand} ${tagline}\\n`\n}\n"]}
@@ -1,2 +0,0 @@
1
- import {f}from'./chunk-QT7R3AXE.js';import i from'ora';import n from'chalk';function e(){return !!(process.env.CI||process.env.GITHUB_ACTIONS||process.env.GITLAB_CI||process.env.CIRCLECI)}var c={dots:{spinner:"dots"},moon:{spinner:"moon"},arc:{spinner:"arc"},bounce:{spinner:"bounce"},shark:{spinner:{interval:120,frames:["\u25B8 ","\u25B8\u25B8 ","\u25B8\u25B8\u25B8 ","\u25B8\u25B8\u25B8\u25B8"," \u25B8\u25B8\u25B8\u25B8"," \u25B8\u25B8\u25B8"," \u25B8\u25B8"," \u25B8"]}}};function t(o,a="shark"){if(e()||f()){let r={...i({text:o,spinner:"dots"}),start:()=>(e()||console.log(o),r),stop:()=>(e()||console.log(),r),succeed:()=>(e()||console.log(`${n.green("\u2713")} ${o}`),r),fail:()=>(e()||console.log(`${n.red("\u2717")} ${o}`),r),warn:()=>(e()||console.log(`${n.hex("#FF9800")("\u26A0")} ${o}`),r),info:()=>(e()||console.log(`${n.hex("#4FC3F7")("\u2139")} ${o}`),r),stopAndPersist:()=>(e()||console.log(`${o}`),r),clear:()=>r,render:()=>r,frame:()=>" ",text:o,isSpinning:false,indent:0,color:"cyan",prefixText:"",spinner:{interval:100,frames:[""]}};return r}return i({text:o,...c[a]}).start()}export{t as a};//# sourceMappingURL=chunk-ON3YIMVG.js.map
2
- //# sourceMappingURL=chunk-ON3YIMVG.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/lib/output/index.ts","../src/lib/output/spinner.ts"],"names":["isCI","SPINNER_FRAMES","createSpinner","text","style","isJsonMode","silent","ora","chalk"],"mappings":"4EAMO,SAASA,CAAAA,EAAgB,CAC9B,OAAO,CAAC,EACN,OAAA,CAAQ,IAAI,EAAA,EACZ,OAAA,CAAQ,GAAA,CAAI,cAAA,EACZ,OAAA,CAAQ,GAAA,CAAI,SAAA,EACZ,OAAA,CAAQ,GAAA,CAAI,QAAA,CAEhB,CCTA,IAAMC,CAAAA,CAA8C,CAClD,KAAM,CAAE,OAAA,CAAS,MAAO,CAAA,CACxB,IAAA,CAAM,CAAE,QAAS,MAAO,CAAA,CACxB,GAAA,CAAK,CAAE,OAAA,CAAS,KAAM,EACtB,MAAA,CAAQ,CAAE,OAAA,CAAS,QAAS,CAAA,CAC5B,KAAA,CAAO,CAAE,OAAA,CAAS,CAAE,QAAA,CAAU,GAAA,CAAK,MAAA,CAAQ,CAAC,WAAA,CAAQ,iBAAQ,qBAAA,CAAQ,0BAAA,CAAQ,2BAAA,CAAS,sBAAA,CAAS,iBAAA,CAAS,YAAO,CAAE,CAAE,CACpH,CAAA,CAEO,SAASC,CAAAA,CAAcC,CAAAA,CAAcC,EAAqC,OAAA,CAAc,CAC7F,GAAIJ,CAAAA,EAAK,EAAKK,CAAAA,EAAW,CAAG,CAC1B,IAAMC,CAAAA,CAAc,CAClB,GAAGC,CAAAA,CAAI,CAAE,KAAAJ,CAAAA,CAAM,OAAA,CAAS,MAAO,CAAC,CAAA,CAChC,KAAA,CAAO,KAAaH,CAAAA,EAAK,EAAG,OAAA,CAAQ,GAAA,CAAIG,CAAI,CAAA,CAAUG,CAAAA,CAAAA,CACtD,KAAM,KAAaN,CAAAA,EAAK,EAAG,OAAA,CAAQ,GAAA,EAAI,CAAUM,CAAAA,CAAAA,CACjD,OAAA,CAAS,KAAaN,CAAAA,EAAK,EAAG,OAAA,CAAQ,GAAA,CAAI,CAAA,EAAGQ,EAAM,KAAA,CAAM,QAAG,CAAC,CAAA,CAAA,EAAIL,CAAI,CAAA,CAAE,EAAUG,CAAAA,CAAAA,CACjF,IAAA,CAAM,KAAaN,CAAAA,EAAK,EAAG,OAAA,CAAQ,IAAI,CAAA,EAAGQ,CAAAA,CAAM,GAAA,CAAI,QAAG,CAAC,CAAA,CAAA,EAAIL,CAAI,CAAA,CAAE,CAAA,CAAUG,CAAAA,CAAAA,CAC5E,IAAA,CAAM,KAAaN,CAAAA,EAAK,EAAG,QAAQ,GAAA,CAAI,CAAA,EAAGQ,CAAAA,CAAM,GAAA,CAAI,SAAS,CAAA,CAAE,QAAG,CAAC,CAAA,CAAA,EAAIL,CAAI,CAAA,CAAE,CAAA,CAAUG,CAAAA,CAAAA,CACvF,IAAA,CAAM,KAAaN,CAAAA,EAAK,EAAG,OAAA,CAAQ,GAAA,CAAI,CAAA,EAAGQ,CAAAA,CAAM,GAAA,CAAI,SAAS,CAAA,CAAE,QAAG,CAAC,CAAA,CAAA,EAAIL,CAAI,CAAA,CAAE,EAAUG,CAAAA,CAAAA,CACvF,cAAA,CAAgB,KAAaN,CAAAA,EAAK,EAAG,OAAA,CAAQ,IAAI,CAAA,EAAGG,CAAI,CAAA,CAAE,CAAA,CAAUG,CAAAA,CAAAA,CACpE,KAAA,CAAO,IAAeA,CAAAA,CACtB,MAAA,CAAQ,IAAeA,CAAAA,CACvB,KAAA,CAAO,IAAM,GAAA,CACb,IAAA,CAAAH,CAAAA,CACA,UAAA,CAAY,KAAA,CACZ,MAAA,CAAQ,CAAA,CACR,KAAA,CAAO,OACP,UAAA,CAAY,EAAA,CACZ,OAAA,CAAS,CAAE,QAAA,CAAU,GAAA,CAAK,MAAA,CAAQ,CAAC,EAAE,CAAE,CACzC,CAAA,CACA,OAAOG,CACT,CACA,OAAOC,CAAAA,CAAI,CAAE,IAAA,CAAAJ,CAAAA,CAAM,GAAGF,CAAAA,CAAeG,CAAK,CAAE,CAAC,CAAA,CAAE,KAAA,EACjD","file":"chunk-ON3YIMVG.js","sourcesContent":["export { renderMascot, renderBrandedMascot } from './mascot.js'\nexport { brand, brandDim, brandLine, success, error, warn, info, muted, copied, BRAND_MARKER, SUCCESS_MARK, ERROR_MARK, WARN_MARK, INFO_MARK, PROGRESS_MARK } from './brand.js'\nexport { setJsonMode, isJsonMode, log, logSuccess, logError, logWarn, logInfo, logBrand, logRaw, logJSON, logErrorJSON, writeAudit } from './logger.js'\nexport { createSpinner } from './spinner.js'\nexport { createTable, renderTable, renderCompactTable } from './table.js'\n\nexport function isCI(): boolean {\n return !!(\n process.env.CI ||\n process.env.GITHUB_ACTIONS ||\n process.env.GITLAB_CI ||\n process.env.CIRCLECI\n )\n}\n","import ora, { Ora } from 'ora'\nimport chalk from 'chalk'\nimport { isCI, isJsonMode } from './index.js'\n\nconst SPINNER_FRAMES: Record<string, ora.Options> = {\n dots: { spinner: 'dots' },\n moon: { spinner: 'moon' },\n arc: { spinner: 'arc' },\n bounce: { spinner: 'bounce' },\n shark: { spinner: { interval: 120, frames: ['▸ ', '▸▸ ', '▸▸▸ ', '▸▸▸▸', ' ▸▸▸▸', ' ▸▸▸', ' ▸▸', ' ▸'] } },\n}\n\nexport function createSpinner(text: string, style: keyof typeof SPINNER_FRAMES = 'shark'): Ora {\n if (isCI() || isJsonMode()) {\n const silent: Ora = {\n ...ora({ text, spinner: 'dots' }),\n start: () => { if (!isCI()) console.log(text); return silent },\n stop: () => { if (!isCI()) console.log(); return silent },\n succeed: () => { if (!isCI()) console.log(`${chalk.green('✓')} ${text}`); return silent },\n fail: () => { if (!isCI()) console.log(`${chalk.red('✗')} ${text}`); return silent },\n warn: () => { if (!isCI()) console.log(`${chalk.hex('#FF9800')('⚠')} ${text}`); return silent },\n info: () => { if (!isCI()) console.log(`${chalk.hex('#4FC3F7')('ℹ')} ${text}`); return silent },\n stopAndPersist: () => { if (!isCI()) console.log(`${text}`); return silent },\n clear: () => { return silent },\n render: () => { return silent },\n frame: () => ' ',\n text,\n isSpinning: false,\n indent: 0,\n color: 'cyan',\n prefixText: '',\n spinner: { interval: 100, frames: [''] },\n } as unknown as Ora\n return silent\n }\n return ora({ text, ...SPINNER_FRAMES[style] }).start()\n}\n"]}
@@ -1,2 +0,0 @@
1
- import {a}from'./chunk-ON3YIMVG.js';import'./chunk-6TS5Y27A.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=a(`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-OYD63R6K.js.map
2
- //# sourceMappingURL=collab-invite-OYD63R6K.js.map
@@ -1,2 +0,0 @@
1
- import {a}from'./chunk-ON3YIMVG.js';import'./chunk-6TS5Y27A.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';import n from'inquirer';async function m(e$1){let{confirm:a$1}=await n.prompt([{type:"confirm",name:"confirm",message:`Remove yourself from "${e$1}"?`,default:false}]);if(!a$1)return;let t=a(`Leaving "${e$1}"...`);t.start(),await e("/api/v1/collab/leave",{folder:e$1},{authenticated:true}),t.succeed(),g(`You left "${e$1}"`);}export{m as default};//# sourceMappingURL=collab-leave-ZGMFXTNZ.js.map
2
- //# sourceMappingURL=collab-leave-ZGMFXTNZ.js.map
@@ -1,2 +0,0 @@
1
- import {a}from'./chunk-ON3YIMVG.js';import'./chunk-6TS5Y27A.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=a(`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-SGBXHV6I.js.map
2
- //# sourceMappingURL=collab-remove-SGBXHV6I.js.map
@@ -1,2 +0,0 @@
1
- import {a}from'./chunk-ON3YIMVG.js';import'./chunk-6TS5Y27A.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';import c from'inquirer';async function m(r,t){let{confirm:a$1}=await c.prompt([{type:"input",name:"confirm",message:`Type "${r}" to confirm ownership transfer to ${t.to}:`,validate:s=>s===r?true:"Type the exact folder name to confirm"}]);if(a$1!==r)return;let e$1=a(`Transferring ownership of "${r}" to ${t.to}...`);e$1.start(),await e("/api/v1/collab/transfer",{folder:r,new_owner:t.to},{authenticated:true}),e$1.succeed(),g(`Ownership of "${r}" transferred to ${t.to}`);}export{m as default};//# sourceMappingURL=collab-transfer-QBRVUOBP.js.map
2
- //# sourceMappingURL=collab-transfer-QBRVUOBP.js.map
@@ -1,3 +0,0 @@
1
- import {a as a$1}from'./chunk-MKRWNV2T.js';import {a}from'./chunk-ON3YIMVG.js';import'./chunk-6TS5Y27A.js';import {e}from'./chunk-BC2OVPRV.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {h as h$1,i,f,m,g,c,b}from'./chunk-QT7R3AXE.js';import'./chunk-4NTVRCZM.js';import h from'path';import P from'fs';import A from'clipboardy';import v from'chalk';import B from'cli-progress';async function F(d){let e=h.resolve(d),a=P.statSync(e);if(a.isFile())return h.extname(e).toLowerCase()===".html"?{type:"single-file",rootPath:e,hasIndexHtml:true,htmlFiles:[e],totalFiles:1}:{type:"invalid",rootPath:e,hasIndexHtml:false,htmlFiles:[],totalFiles:0};if(a.isDirectory()){let m=function(i){let u=P.readdirSync(i,{withFileTypes:true});for(let n of u){let c=h.join(i,n.name);n.isDirectory()?!n.name.startsWith(".")&&n.name!=="node_modules"&&m(c):n.isFile()&&(l++,n.name.endsWith(".html")&&t.push(c));}};let t=[],l=0;if(m(e),t.length===0)return {type:"invalid",rootPath:e,hasIndexHtml:false,htmlFiles:[],totalFiles:l};let o=t.some(i=>h.basename(i).toLowerCase()==="index.html");return {type:"codebase",rootPath:e,hasIndexHtml:o,htmlFiles:t,totalFiles:l}}return {type:"invalid",rootPath:e,hasIndexHtml:false,htmlFiles:[],totalFiles:0}}async function L(d,e$1){let a$2=d?h.resolve(d):process.cwd(),r=a("Analyzing project...");r.start();let t=await F(a$2);t.type==="invalid"&&(r.fail(),h$1(`No deployable content found at ${a$2}. Provide an HTML file or folder containing HTML files.`),process.exit(1)),t.type==="codebase"&&!t.hasIndexHtml&&(r.warn(),i("No index.html found at root. Scanning one level deep for entry point...")),r.text="Uploading files...";let l={source:a$2,type:t.type,slug:e$1?.name,environment:e$1?.env||(e$1?.preview?"preview":"production"),force:e$1?.force||false};if(t.type==="codebase"){let n=function(p){let y=P.readdirSync(p,{withFileTypes:true});for(let s of y){let f=h.join(p,s.name);s.isDirectory()?!s.name.startsWith(".")&&s.name!=="node_modules"&&n(f):s.isFile()&&(a$1(s.name)?i.push(f):u.push(f));}};let i=[],u=[];n(t.rootPath),!e$1?.force&&t.type==="codebase"&&(r.text="Computing diff...");let c=new B.SingleBar({format:`${v.hex("#7C4DFF")("\u25B8")} Uploading |${v.hex("#7C4DFF")("{bar}")}| {percentage}% | {value}/{total} files | {speed}`,barCompleteChar:"\u2588",barIncompleteChar:"\u2591",hideCursor:true});c.start(i.length,0);let w=new FormData,b=0;for(let p of i){let y=h.relative(t.rootPath,p),s=P.readFileSync(p),f=new Blob([s]);w.append("files",f,y),b++,c.update(b);}c.stop(),r.stop(),l.files=w;}if(t.type==="single-file"){let o=P.readFileSync(t.rootPath,"utf-8");l.htmlContent=o;}r.text="Deploying to SquidCloud...",r.start();try{let o=await e("/api/v1/deploy",l,{authenticated:!0});r.succeed();let i=o.url||`https://squidcloud.vercel.app/sites/${e$1?.name||o.deploy_id}`;try{await A.write(i);}catch{}if(f()){m(o);return}g("Deployed successfully!"),console.log(` ${v.hex("#4FC3F7")(i)} ${c("")}`),o.file_count&&console.log(` ${b(`${o.file_count} files \xB7 ${o.deploy_time_ms}ms`)}`);}catch(o){throw r.fail(),o}}
2
- export{L as default};//# sourceMappingURL=deploy-MHRZLVMJ.js.map
3
- //# sourceMappingURL=deploy-MHRZLVMJ.js.map
@@ -1,2 +0,0 @@
1
- import {a}from'./chunk-ON3YIMVG.js';import'./chunk-6TS5Y27A.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=a("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-6WHRCNPC.js.map
2
- //# sourceMappingURL=forms-clear-6WHRCNPC.js.map
@@ -1,2 +0,0 @@
1
- import {a as a$1}from'./chunk-ON3YIMVG.js';import'./chunk-6TS5Y27A.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=a$1(`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-XRPPYHZO.js.map
2
- //# sourceMappingURL=forms-create-XRPPYHZO.js.map
@@ -1,2 +0,0 @@
1
- import {a}from'./chunk-ON3YIMVG.js';import'./chunk-6TS5Y27A.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 p(t){let e=(await(await import('./client-RFYERFWZ.js')).apiGet(`/api/v1/forms/${t}`,{authenticated:true})).form.name,{confirm:o}=await s.prompt([{type:"input",name:"confirm",message:`Type "${e}" to permanently delete this file request and all submissions:`,validate:m=>m===e?true:"Type the exact name to confirm"}]);if(o!==e)return;let r=a("Deleting file request...");r.start(),await g(`/api/v1/forms/${t}`,{authenticated:true}),r.succeed(),g$1(`File request "${e}" deleted`);}export{p as default};//# sourceMappingURL=forms-delete-A2BUAQO2.js.map
2
- //# sourceMappingURL=forms-delete-A2BUAQO2.js.map
@@ -1,2 +0,0 @@
1
- import {a}from'./chunk-ON3YIMVG.js';import'./chunk-6TS5Y27A.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 m(t){let o=a("Exporting submissions...");o.start();let c=await d(`/api/v1/forms/${t}/export`,{authenticated:true});o.succeed();let s=p.join(process.cwd(),`filereq-${t.slice(0,8)}-submissions.csv`);n.writeFileSync(s,c.csv,"utf-8"),g(`Exported to ${s}`);}export{m as default};//# sourceMappingURL=forms-export-4MHCOTS6.js.map
2
- //# sourceMappingURL=forms-export-4MHCOTS6.js.map
@@ -1,2 +0,0 @@
1
- import {a}from'./chunk-ON3YIMVG.js';import {a as a$1}from'./chunk-6TS5Y27A.js';import {e}from'./chunk-BC2OVPRV.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {j,k,a as a$2,g}from'./chunk-QT7R3AXE.js';import {m,a as a$3,b,c as c$1,j as j$1,k as k$1,d,h,e as e$1,f as f$1,g as g$1,n}from'./chunk-4NTVRCZM.js';import C from'inquirer';import f from'os';import {blake3}from'@noble/hashes/blake3';function c(r){r.fill(0);}var M=process.env.SQUIDCLOUD_SERVER_PUB_KEY||"",l=null,i=null,t=null,p=null;async function N(r,u){let{pub:s,priv:e$2}=a$3();l=e$2,i=s,t=b(),p=c$1(u,r);let d$1=j$1(blake3(f.hostname()+f.platform()+f.arch())),g=Date.now(),o=await e("/api/auth/ssp/hello",{email:r,password_proof:j$1(p),client_ephemeral_pub:j$1(i),client_nonce:j$1(t),device_fingerprint:d$1,timestamp:g}),S=k$1(o.server_nonce),F=k$1(o.server_ephemeral_pub),H=k$1(o.server_signature),v=k$1(M);if(v.length>0){let j=d(t,S,i,g);if(!await h(H,j,v))throw I(),new Error("Connection rejected \u2014 server identity could not be verified")}let V=e$1(F,l),$=f$1(V,t,S),D=k$1(o.encrypted_session),O=k$1(o.session_iv),Y=k$1(o.session_tag),m=g$1(D,O,Y,$);return m.device_fingerprint=d$1,await n(m),I(),m}function I(){l&&c(l),i&&c(i),t&&c(t),p&&c(p),l=null,i=null,t=null,p=null;}async function Q(){let r=await m();if(r){j(`Already authenticated as ${r.user.email}`);let{force:e}=await C.prompt([{type:"confirm",name:"force",message:"Re-authenticate?",default:false}]);if(!e)return}let u=await C.prompt([{type:"input",name:"email",message:"Email:",validate:e=>e.includes("@")?true:"Please enter a valid email"},{type:"password",name:"password",message:"Password:",mask:"*"}]),s=a("Authenticating with SquidCloud...");s.start();try{let e=await N(u.email,u.password);s.succeed(),console.log(a$1()),k(`Welcome to SquidCloud, ${a$2(e.user.username)}!`),g(`Authenticated as ${e.user.email} (${e.user.plan})`);}catch(e){throw s.fail(),e}}export{Q as default};//# sourceMappingURL=login-GCEZPBFD.js.map
2
- //# sourceMappingURL=login-GCEZPBFD.js.map