squidcloudctl 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/dist/auth-revoke-OC67YCEQ.js +2 -0
  2. package/dist/auth-revoke-OC67YCEQ.js.map +1 -0
  3. package/dist/auth-sessions-XIBWY6BL.js +2 -0
  4. package/dist/auth-sessions-XIBWY6BL.js.map +1 -0
  5. package/dist/auth-status-B5VLDH27.js +2 -0
  6. package/dist/auth-status-B5VLDH27.js.map +1 -0
  7. package/dist/bin/squidcloud.js +4 -0
  8. package/dist/bin/squidcloud.js.map +1 -0
  9. package/dist/chunk-6TS5Y27A.js +6 -0
  10. package/dist/chunk-6TS5Y27A.js.map +1 -0
  11. package/dist/chunk-C5KZCYJ4.js +2 -0
  12. package/dist/chunk-C5KZCYJ4.js.map +1 -0
  13. package/dist/chunk-G4JU7IUC.js +2 -0
  14. package/dist/chunk-G4JU7IUC.js.map +1 -0
  15. package/dist/chunk-LWB2J3KU.js +2 -0
  16. package/dist/chunk-LWB2J3KU.js.map +1 -0
  17. package/dist/chunk-MKRWNV2T.js +2 -0
  18. package/dist/chunk-MKRWNV2T.js.map +1 -0
  19. package/dist/chunk-NDB6KXYI.js +3 -0
  20. package/dist/chunk-NDB6KXYI.js.map +1 -0
  21. package/dist/chunk-ON3YIMVG.js +2 -0
  22. package/dist/chunk-ON3YIMVG.js.map +1 -0
  23. package/dist/chunk-QT7R3AXE.js +3 -0
  24. package/dist/chunk-QT7R3AXE.js.map +1 -0
  25. package/dist/chunk-RWWBBPEJ.js +2 -0
  26. package/dist/chunk-RWWBBPEJ.js.map +1 -0
  27. package/dist/chunk-THMWE2I6.js +2 -0
  28. package/dist/chunk-THMWE2I6.js.map +1 -0
  29. package/dist/client-FRNT7PEB.js +2 -0
  30. package/dist/client-FRNT7PEB.js.map +1 -0
  31. package/dist/collab-activity-GQOGCECR.js +2 -0
  32. package/dist/collab-activity-GQOGCECR.js.map +1 -0
  33. package/dist/collab-invite-HUSQYV23.js +2 -0
  34. package/dist/collab-invite-HUSQYV23.js.map +1 -0
  35. package/dist/collab-leave-W2ESTT5L.js +2 -0
  36. package/dist/collab-leave-W2ESTT5L.js.map +1 -0
  37. package/dist/collab-list-722OEBJQ.js +2 -0
  38. package/dist/collab-list-722OEBJQ.js.map +1 -0
  39. package/dist/collab-remove-ZMB22U2T.js +2 -0
  40. package/dist/collab-remove-ZMB22U2T.js.map +1 -0
  41. package/dist/collab-transfer-56MH4IT6.js +2 -0
  42. package/dist/collab-transfer-56MH4IT6.js.map +1 -0
  43. package/dist/completion-IF3NB7PB.js +44 -0
  44. package/dist/completion-IF3NB7PB.js.map +1 -0
  45. package/dist/config-7G24FXQJ.js +2 -0
  46. package/dist/config-7G24FXQJ.js.map +1 -0
  47. package/dist/config-delete-VSIFFODZ.js +2 -0
  48. package/dist/config-delete-VSIFFODZ.js.map +1 -0
  49. package/dist/config-get-DDNSM5EH.js +2 -0
  50. package/dist/config-get-DDNSM5EH.js.map +1 -0
  51. package/dist/config-reset-ZFMP4J5H.js +2 -0
  52. package/dist/config-reset-ZFMP4J5H.js.map +1 -0
  53. package/dist/config-set-O6JKOGGN.js +2 -0
  54. package/dist/config-set-O6JKOGGN.js.map +1 -0
  55. package/dist/deploy-WK3VAA7D.js +3 -0
  56. package/dist/deploy-WK3VAA7D.js.map +1 -0
  57. package/dist/doctor-C7TZGTCO.js +2 -0
  58. package/dist/doctor-C7TZGTCO.js.map +1 -0
  59. package/dist/feedback-QUGQAWZB.js +3 -0
  60. package/dist/feedback-QUGQAWZB.js.map +1 -0
  61. package/dist/forms-clear-2ERBEAEY.js +2 -0
  62. package/dist/forms-clear-2ERBEAEY.js.map +1 -0
  63. package/dist/forms-create-3ONGTRQZ.js +2 -0
  64. package/dist/forms-create-3ONGTRQZ.js.map +1 -0
  65. package/dist/forms-delete-CKLGD52U.js +2 -0
  66. package/dist/forms-delete-CKLGD52U.js.map +1 -0
  67. package/dist/forms-embed-4S46VDP4.js +3 -0
  68. package/dist/forms-embed-4S46VDP4.js.map +1 -0
  69. package/dist/forms-export-WGHH5TBF.js +2 -0
  70. package/dist/forms-export-WGHH5TBF.js.map +1 -0
  71. package/dist/forms-info-OMXUOOBT.js +2 -0
  72. package/dist/forms-info-OMXUOOBT.js.map +1 -0
  73. package/dist/forms-list-ZRKQXGLM.js +2 -0
  74. package/dist/forms-list-ZRKQXGLM.js.map +1 -0
  75. package/dist/forms-submissions-K7W7XYPR.js +2 -0
  76. package/dist/forms-submissions-K7W7XYPR.js.map +1 -0
  77. package/dist/login-JJ7YHQB5.js +2 -0
  78. package/dist/login-JJ7YHQB5.js.map +1 -0
  79. package/dist/logout-PS2XK3GB.js +2 -0
  80. package/dist/logout-PS2XK3GB.js.map +1 -0
  81. package/dist/logs-export-55G3COYK.js +2 -0
  82. package/dist/logs-export-55G3COYK.js.map +1 -0
  83. package/dist/logs-search-5QCEBZ6W.js +2 -0
  84. package/dist/logs-search-5QCEBZ6W.js.map +1 -0
  85. package/dist/logs-tail-OYLJ5EOM.js +3 -0
  86. package/dist/logs-tail-OYLJ5EOM.js.map +1 -0
  87. package/dist/monitor-XUW4BMBQ.js +2 -0
  88. package/dist/monitor-XUW4BMBQ.js.map +1 -0
  89. package/dist/monitor-automations-TSO65I6U.js +2 -0
  90. package/dist/monitor-automations-TSO65I6U.js.map +1 -0
  91. package/dist/monitor-pipelines-OPCTGGRR.js +2 -0
  92. package/dist/monitor-pipelines-OPCTGGRR.js.map +1 -0
  93. package/dist/monitor-sites-OLSGE4V2.js +2 -0
  94. package/dist/monitor-sites-OLSGE4V2.js.map +1 -0
  95. package/dist/monitor-storage-CVFXC3ZS.js +2 -0
  96. package/dist/monitor-storage-CVFXC3ZS.js.map +1 -0
  97. package/dist/scripts-cancel-OR2UFFC3.js +2 -0
  98. package/dist/scripts-cancel-OR2UFFC3.js.map +1 -0
  99. package/dist/scripts-delete-HMHBIL4G.js +2 -0
  100. package/dist/scripts-delete-HMHBIL4G.js.map +1 -0
  101. package/dist/scripts-disable-ABFUD34Y.js +2 -0
  102. package/dist/scripts-disable-ABFUD34Y.js.map +1 -0
  103. package/dist/scripts-enable-VMRAPULS.js +2 -0
  104. package/dist/scripts-enable-VMRAPULS.js.map +1 -0
  105. package/dist/scripts-init-AU6WNMKB.js +14 -0
  106. package/dist/scripts-init-AU6WNMKB.js.map +1 -0
  107. package/dist/scripts-list-DV2QVLPX.js +2 -0
  108. package/dist/scripts-list-DV2QVLPX.js.map +1 -0
  109. package/dist/scripts-logs-AHTMTQ6G.js +2 -0
  110. package/dist/scripts-logs-AHTMTQ6G.js.map +1 -0
  111. package/dist/scripts-run-K2LFPFTH.js +2 -0
  112. package/dist/scripts-run-K2LFPFTH.js.map +1 -0
  113. package/dist/scripts-status-XGI5SMWL.js +2 -0
  114. package/dist/scripts-status-XGI5SMWL.js.map +1 -0
  115. package/dist/scripts-validate-7EZXPO3Q.js +2 -0
  116. package/dist/scripts-validate-7EZXPO3Q.js.map +1 -0
  117. package/dist/scripts-watch-HN23AZLJ.js +2 -0
  118. package/dist/scripts-watch-HN23AZLJ.js.map +1 -0
  119. package/dist/session-T3DZUXHP.js +2 -0
  120. package/dist/session-T3DZUXHP.js.map +1 -0
  121. package/dist/sign-cancel-R7KQFEM3.js +2 -0
  122. package/dist/sign-cancel-R7KQFEM3.js.map +1 -0
  123. package/dist/sign-download-EHPZ5FMF.js +2 -0
  124. package/dist/sign-download-EHPZ5FMF.js.map +1 -0
  125. package/dist/sign-list-6N7G36EO.js +2 -0
  126. package/dist/sign-list-6N7G36EO.js.map +1 -0
  127. package/dist/sign-request-DW6BS67P.js +2 -0
  128. package/dist/sign-request-DW6BS67P.js.map +1 -0
  129. package/dist/sign-status-L4PNMSBI.js +2 -0
  130. package/dist/sign-status-L4PNMSBI.js.map +1 -0
  131. package/dist/sign-verify-I6YPHFUW.js +2 -0
  132. package/dist/sign-verify-I6YPHFUW.js.map +1 -0
  133. package/dist/sites-analytics-JMW6DAC3.js +2 -0
  134. package/dist/sites-analytics-JMW6DAC3.js.map +1 -0
  135. package/dist/sites-delete-M4DJ3GXV.js +2 -0
  136. package/dist/sites-delete-M4DJ3GXV.js.map +1 -0
  137. package/dist/sites-deploys-2HBSXQA4.js +2 -0
  138. package/dist/sites-deploys-2HBSXQA4.js.map +1 -0
  139. package/dist/sites-info-CIDGRZRJ.js +2 -0
  140. package/dist/sites-info-CIDGRZRJ.js.map +1 -0
  141. package/dist/sites-list-L56B32PU.js +2 -0
  142. package/dist/sites-list-L56B32PU.js.map +1 -0
  143. package/dist/sites-logs-NMNQXOKI.js +3 -0
  144. package/dist/sites-logs-NMNQXOKI.js.map +1 -0
  145. package/dist/sites-open-JOJQ5PW2.js +3 -0
  146. package/dist/sites-open-JOJQ5PW2.js.map +1 -0
  147. package/dist/sites-purge-IA2673H4.js +2 -0
  148. package/dist/sites-purge-IA2673H4.js.map +1 -0
  149. package/dist/sites-rename-WFSBG4ME.js +2 -0
  150. package/dist/sites-rename-WFSBG4ME.js.map +1 -0
  151. package/dist/sites-rollback-REUDH4TZ.js +2 -0
  152. package/dist/sites-rollback-REUDH4TZ.js.map +1 -0
  153. package/dist/sites-unpublish-AS4D6N3M.js +2 -0
  154. package/dist/sites-unpublish-AS4D6N3M.js.map +1 -0
  155. package/dist/sites-visibility-S3TKH6XD.js +2 -0
  156. package/dist/sites-visibility-S3TKH6XD.js.map +1 -0
  157. package/dist/storage-cat-LZ7LYZAY.js +2 -0
  158. package/dist/storage-cat-LZ7LYZAY.js.map +1 -0
  159. package/dist/storage-clean-S57ZHSGL.js +2 -0
  160. package/dist/storage-clean-S57ZHSGL.js.map +1 -0
  161. package/dist/storage-cp-M2BVRCIL.js +2 -0
  162. package/dist/storage-cp-M2BVRCIL.js.map +1 -0
  163. package/dist/storage-diff-ZATBMPAM.js +2 -0
  164. package/dist/storage-diff-ZATBMPAM.js.map +1 -0
  165. package/dist/storage-download-PZEEX2Z3.js +3 -0
  166. package/dist/storage-download-PZEEX2Z3.js.map +1 -0
  167. package/dist/storage-info-T62YZOPK.js +2 -0
  168. package/dist/storage-info-T62YZOPK.js.map +1 -0
  169. package/dist/storage-ls-DGOI7ZXX.js +2 -0
  170. package/dist/storage-ls-DGOI7ZXX.js.map +1 -0
  171. package/dist/storage-mkdir-J4BYV3QL.js +2 -0
  172. package/dist/storage-mkdir-J4BYV3QL.js.map +1 -0
  173. package/dist/storage-mv-R73IGYOM.js +2 -0
  174. package/dist/storage-mv-R73IGYOM.js.map +1 -0
  175. package/dist/storage-rm-M3UODY5G.js +2 -0
  176. package/dist/storage-rm-M3UODY5G.js.map +1 -0
  177. package/dist/storage-search-H44Y6OKS.js +2 -0
  178. package/dist/storage-search-H44Y6OKS.js.map +1 -0
  179. package/dist/storage-share-VIJJIHBX.js +2 -0
  180. package/dist/storage-share-VIJJIHBX.js.map +1 -0
  181. package/dist/storage-tag-PAVT6GBZ.js +2 -0
  182. package/dist/storage-tag-PAVT6GBZ.js.map +1 -0
  183. package/dist/storage-unshare-O3AAJZMT.js +2 -0
  184. package/dist/storage-unshare-O3AAJZMT.js.map +1 -0
  185. package/dist/storage-upload-DRYGLH2O.js +2 -0
  186. package/dist/storage-upload-DRYGLH2O.js.map +1 -0
  187. package/dist/time-list-CW2OOCPT.js +2 -0
  188. package/dist/time-list-CW2OOCPT.js.map +1 -0
  189. package/dist/time-lock-A2MZ3MP2.js +2 -0
  190. package/dist/time-lock-A2MZ3MP2.js.map +1 -0
  191. package/dist/time-proof-ZLRY6ZVZ.js +2 -0
  192. package/dist/time-proof-ZLRY6ZVZ.js.map +1 -0
  193. package/dist/time-status-XQLRCYF6.js +2 -0
  194. package/dist/time-status-XQLRCYF6.js.map +1 -0
  195. package/dist/time-unlock-KNMGQ3TK.js +2 -0
  196. package/dist/time-unlock-KNMGQ3TK.js.map +1 -0
  197. package/dist/update-IYMIV34T.js +2 -0
  198. package/dist/update-IYMIV34T.js.map +1 -0
  199. package/dist/version-7IHVNLWY.js +2 -0
  200. package/dist/version-7IHVNLWY.js.map +1 -0
  201. package/dist/whoami-WIHSRTUN.js +2 -0
  202. package/dist/whoami-WIHSRTUN.js.map +1 -0
  203. package/package.json +58 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/scripts/scripts-enable.ts"],"names":["scriptsEnable","name","spinner","createSpinner","apiPost","logSuccess"],"mappings":"4NAIA,eAAOA,CAAAA,CAAqCC,CAAAA,CAA6B,CACvE,IAAMC,IAAUC,CAAAA,CAAc,CAAA,UAAA,EAAaF,CAAI,CAAA,IAAA,CAAM,CAAA,CACrDC,GAAAA,CAAQ,KAAA,EAAM,CACd,MAAME,CAAAA,CAAQ,CAAA,gBAAA,EAAmBH,CAAI,CAAA,OAAA,CAAA,CAAW,EAAC,CAAG,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAC3EC,GAAAA,CAAQ,OAAA,EAAQ,CAChBG,CAAAA,CAAW,CAAA,UAAA,EAAaJ,CAAI,WAAW,EACzC","file":"scripts-enable-VMRAPULS.js","sourcesContent":["import { apiPost } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess } from '../../lib/output/logger.js'\n\nexport default async function scriptsEnable(name: string): Promise<void> {\n const spinner = createSpinner(`Enabling \"${name}\"...`)\n spinner.start()\n await apiPost(`/api/v1/scripts/${name}/enable`, {}, { authenticated: true })\n spinner.succeed()\n logSuccess(`Pipeline \"${name}\" enabled`)\n}\n"]}
@@ -0,0 +1,14 @@
1
+ import {g,a}from'./chunk-QT7R3AXE.js';import n from'fs';import o from'path';import m from'inquirer';async function p(){let e=await m.prompt([{type:"input",name:"name",message:"Pipeline name:",validate:a=>a.length>0},{type:"input",name:"description",message:"Description:",default:""},{type:"list",name:"trigger",message:"Trigger type:",choices:["manual","schedule","file_change","webhook"],default:"manual"}]),r=`# ${e.name}
2
+ # ${e.description||"SquidScript pipeline"}
3
+
4
+ name: ${e.name}
5
+ description: ${e.description||""}
6
+ trigger: ${e.trigger}
7
+
8
+ steps:
9
+ - name: example-step
10
+ action: log
11
+ params:
12
+ message: "Hello from SquidScript!"
13
+ `,s=o.join(process.cwd(),".squid.yml");n.writeFileSync(s,r,"utf-8"),g(`Created ${a(".squid.yml")} \u2014 run \`squidcloud scripts validate\` to check it`);}export{p as default};//# sourceMappingURL=scripts-init-AU6WNMKB.js.map
14
+ //# sourceMappingURL=scripts-init-AU6WNMKB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/scripts/scripts-init.ts"],"names":["scriptsInit","answers","inquirer","v","yaml","filePath","path","fs","logSuccess","brand"],"mappings":"oGAMA,eAAOA,CAAAA,EAAoD,CACzD,IAAMC,CAAAA,CAAU,MAAMC,CAAAA,CAAS,MAAA,CAAO,CACpC,CAAE,IAAA,CAAM,OAAA,CAAS,IAAA,CAAM,MAAA,CAAQ,OAAA,CAAS,gBAAA,CAAkB,QAAA,CAAWC,CAAAA,EAAcA,CAAAA,CAAE,MAAA,CAAS,CAAE,CAAA,CAChG,CAAE,IAAA,CAAM,OAAA,CAAS,IAAA,CAAM,aAAA,CAAe,OAAA,CAAS,cAAA,CAAgB,OAAA,CAAS,EAAG,CAAA,CAC3E,CACE,IAAA,CAAM,MAAA,CACN,IAAA,CAAM,SAAA,CACN,OAAA,CAAS,eAAA,CACT,OAAA,CAAS,CAAC,QAAA,CAAU,UAAA,CAAY,aAAA,CAAe,SAAS,CAAA,CACxD,OAAA,CAAS,QACX,CACF,CAAC,CAAA,CAEKC,CAAAA,CAAO,CAAA,EAAA,EAAKH,EAAQ,IAAI;AAAA,EAAA,EAC5BA,CAAAA,CAAQ,aAAe,sBAAsB;;AAAA,MAAA,EAEzCA,EAAQ,IAAI;AAAA,aAAA,EACLA,CAAAA,CAAQ,aAAe,EAAE;AAAA,SAAA,EAC7BA,EAAQ,OAAO;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA,CASlBI,CAAAA,CAAWC,EAAK,IAAA,CAAK,OAAA,CAAQ,KAAI,CAAG,YAAY,EACtDC,CAAAA,CAAG,aAAA,CAAcF,EAAUD,CAAAA,CAAM,OAAO,EACxCI,CAAAA,CAAW,CAAA,QAAA,EAAWC,EAAM,YAAY,CAAC,yDAAoD,EAC/F","file":"scripts-init-AU6WNMKB.js","sourcesContent":["import fs from 'node:fs'\nimport path from 'node:path'\nimport inquirer from 'inquirer'\nimport { logSuccess } from '../../lib/output/logger.js'\nimport { brand } from '../../lib/output/brand.js'\n\nexport default async function scriptsInit(): Promise<void> {\n const answers = await inquirer.prompt([\n { type: 'input', name: 'name', message: 'Pipeline name:', validate: (v: string) => v.length > 0 },\n { type: 'input', name: 'description', message: 'Description:', default: '' },\n {\n type: 'list',\n name: 'trigger',\n message: 'Trigger type:',\n choices: ['manual', 'schedule', 'file_change', 'webhook'],\n default: 'manual',\n },\n ])\n\n const yaml = `# ${answers.name}\n# ${answers.description || 'SquidScript pipeline'}\n\nname: ${answers.name}\ndescription: ${answers.description || ''}\ntrigger: ${answers.trigger}\n\nsteps:\n - name: example-step\n action: log\n params:\n message: \"Hello from SquidScript!\"\n`\n\n const filePath = path.join(process.cwd(), '.squid.yml')\n fs.writeFileSync(filePath, yaml, 'utf-8')\n logSuccess(`Created ${brand('.squid.yml')} — run \\`squidcloud scripts validate\\` to check it`)\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {d}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import {a}from'./chunk-THMWE2I6.js';import {c}from'./chunk-G4JU7IUC.js';import'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.js';import e from'chalk';async function r(){let s=((await d("/api/v1/scripts",{authenticated:true})).scripts||[]).map(t=>({name:e.hex("#4FC3F7")(t.name),file:e.dim(t.file_path),last_run:t.last_run?c(t.last_run):e.dim("never"),status:t.last_status==="success"?e.green("\u2713"):t.last_status==="failed"?e.red("\u2717"):e.dim("-"),enabled:t.enabled?e.green("yes"):e.yellow("no")}));console.log(a(s,[{key:"name",label:"Name"},{key:"file",label:"File"},{key:"last_run",label:"Last Run"},{key:"status",label:"Status"},{key:"enabled",label:"Enabled"}]));}export{r as default};//# sourceMappingURL=scripts-list-DV2QVLPX.js.map
2
+ //# sourceMappingURL=scripts-list-DV2QVLPX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/scripts/scripts-list.ts"],"names":["scriptsList","rows","apiGet","s","chalk","formatRelative","renderTable"],"mappings":"qNAaA,eAAOA,CAAAA,EAAoD,CAEzD,IAAMC,CAAAA,CAAAA,CAAAA,CADO,MAAMC,CAAAA,CAAkC,iBAAA,CAAmB,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,EAC5E,OAAA,EAAW,EAAC,EAAG,GAAA,CAAIC,CAAAA,GAAM,CAC1C,IAAA,CAAMC,CAAAA,CAAM,GAAA,CAAI,SAAS,CAAA,CAAED,CAAAA,CAAE,IAAI,CAAA,CACjC,IAAA,CAAMC,CAAAA,CAAM,GAAA,CAAID,CAAAA,CAAE,SAAS,CAAA,CAC3B,QAAA,CAAUA,CAAAA,CAAE,QAAA,CAAWE,CAAAA,CAAeF,CAAAA,CAAE,QAAQ,CAAA,CAAIC,EAAM,GAAA,CAAI,OAAO,CAAA,CACrE,MAAA,CAAQD,CAAAA,CAAE,WAAA,GAAgB,SAAA,CAAYC,CAAAA,CAAM,KAAA,CAAM,QAAG,CAAA,CAAID,CAAAA,CAAE,WAAA,GAAgB,QAAA,CAAWC,EAAM,GAAA,CAAI,QAAG,CAAA,CAAIA,CAAAA,CAAM,GAAA,CAAI,GAAG,CAAA,CACpH,OAAA,CAASD,CAAAA,CAAE,OAAA,CAAUC,CAAAA,CAAM,KAAA,CAAM,KAAK,CAAA,CAAIA,EAAM,MAAA,CAAO,IAAI,CAC7D,CAAA,CAAE,CAAA,CACF,OAAA,CAAQ,GAAA,CAAIE,CAAAA,CAAYL,CAAAA,CAAM,CAC5B,CAAE,GAAA,CAAK,MAAA,CAAQ,KAAA,CAAO,MAAO,CAAA,CAC7B,CAAE,GAAA,CAAK,MAAA,CAAQ,KAAA,CAAO,MAAO,CAAA,CAC7B,CAAE,GAAA,CAAK,UAAA,CAAY,KAAA,CAAO,UAAW,CAAA,CACrC,CAAE,IAAK,QAAA,CAAU,KAAA,CAAO,QAAS,CAAA,CACjC,CAAE,GAAA,CAAK,SAAA,CAAW,KAAA,CAAO,SAAU,CACrC,CAAC,CAAC,EACJ","file":"scripts-list-DV2QVLPX.js","sourcesContent":["import { apiGet } from '../../lib/api/client.js'\nimport { renderTable } from '../../lib/output/table.js'\nimport { formatRelative } from '../../lib/utils/format.js'\nimport chalk from 'chalk'\n\ninterface ScriptInfo {\n name: string\n file_path: string\n last_run: string | null\n last_status: string | null\n enabled: boolean\n}\n\nexport default async function scriptsList(): Promise<void> {\n const data = await apiGet<{ scripts: ScriptInfo[] }>('/api/v1/scripts', { authenticated: true })\n const rows = (data.scripts || []).map(s => ({\n name: chalk.hex('#4FC3F7')(s.name),\n file: chalk.dim(s.file_path),\n last_run: s.last_run ? formatRelative(s.last_run) : chalk.dim('never'),\n status: s.last_status === 'success' ? chalk.green('✓') : s.last_status === 'failed' ? chalk.red('✗') : chalk.dim('-'),\n enabled: s.enabled ? chalk.green('yes') : chalk.yellow('no'),\n }))\n console.log(renderTable(rows, [\n { key: 'name', label: 'Name' },\n { key: 'file', label: 'File' },\n { key: 'last_run', label: 'Last Run' },\n { key: 'status', label: 'Status' },\n { key: 'enabled', label: 'Enabled' },\n ]))\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {a as a$1}from'./chunk-ON3YIMVG.js';import'./chunk-6TS5Y27A.js';import {d}from'./chunk-RWWBBPEJ.js';import {a}from'./chunk-NDB6KXYI.js';import {a as a$2}from'./chunk-THMWE2I6.js';import {c}from'./chunk-G4JU7IUC.js';import'./chunk-QT7R3AXE.js';import {m}from'./chunk-C5KZCYJ4.js';import {WebSocket}from'ws';import s from'chalk';async function y(e,n,g){if(g?.live){let t=await m();t||(console.error("Not authenticated"),process.exit(1));let o=a().replace(/^http/,"ws"),r=new WebSocket(`${o}/api/v1/scripts/${e}/logs/live`,{headers:{Authorization:`Bearer ${t.access_token}`}});console.log(s.dim(`Streaming live logs for "${e}"... (Ctrl+C to stop)`)),r.on("message",i=>console.log(i.toString())),r.on("error",i=>{console.error(s.red(`Error: ${i.message}`)),process.exit(1);}),process.on("SIGINT",()=>{r.close(),process.exit(0);});return}if(n){let t=await d(`/api/v1/scripts/${e}/logs/${n}`,{authenticated:true});for(let o of t.logs||[])console.log(o);return}let l=a$1("Fetching run history...");l.start();let f=await d(`/api/v1/scripts/${e}/runs`,{authenticated:true});l.stop();let h=(f.runs||[]).map(t=>({id:s.dim(t.run_id.slice(0,8)),status:t.status==="success"?s.green("\u2713"):t.status==="failed"?s.red("\u2717"):s.yellow("\u25CB"),started:t.started_at?c(t.started_at):"-",duration:t.duration_ms?`${(t.duration_ms/1e3).toFixed(1)}s`:"-"}));console.log(a$2(h,[{key:"id",label:"Run"},{key:"status",label:""},{key:"started",label:"Started"},{key:"duration",label:"Duration"}]));}export{y as default};//# sourceMappingURL=scripts-logs-AHTMTQ6G.js.map
2
+ //# sourceMappingURL=scripts-logs-AHTMTQ6G.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/scripts/scripts-logs.ts"],"names":["scriptsLogs","name","runId","options","session","loadSession","apiBase","getApiBase","ws","WebSocket","chalk","data","err","apiGet","line","spinner","createSpinner","rows","r","formatRelative","renderTable"],"mappings":"8UAgBA,eAAOA,CAAAA,CAAmCC,CAAAA,CAAcC,CAAAA,CAAgBC,CAAAA,CAA6C,CACnH,GAAIA,CAAAA,EAAS,IAAA,CAAM,CACjB,IAAMC,CAAAA,CAAU,MAAMC,CAAAA,EAAY,CAC7BD,CAAAA,GAAW,OAAA,CAAQ,KAAA,CAAM,mBAAmB,CAAA,CAAG,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,CAAA,CAClE,IAAME,CAAAA,CAAUC,CAAAA,EAAW,CAAE,OAAA,CAAQ,OAAA,CAAS,IAAI,CAAA,CAC5CC,CAAAA,CAAK,IAAIC,SAAAA,CAAU,CAAA,EAAGH,CAAO,CAAA,gBAAA,EAAmBL,CAAI,CAAA,UAAA,CAAA,CAAc,CACtE,OAAA,CAAS,CAAE,aAAA,CAAe,CAAA,OAAA,EAAUG,CAAAA,CAAQ,YAAY,CAAA,CAAG,CAC7D,CAAC,CAAA,CACD,OAAA,CAAQ,GAAA,CAAIM,CAAAA,CAAM,IAAI,CAAA,yBAAA,EAA4BT,CAAI,CAAA,qBAAA,CAAuB,CAAC,CAAA,CAC9EO,CAAAA,CAAG,EAAA,CAAG,SAAA,CAAYG,CAAAA,EAAiB,OAAA,CAAQ,GAAA,CAAIA,CAAAA,CAAK,QAAA,EAAU,CAAC,CAAA,CAC/DH,CAAAA,CAAG,EAAA,CAAG,OAAA,CAAUI,CAAAA,EAAQ,CAAE,OAAA,CAAQ,KAAA,CAAMF,CAAAA,CAAM,GAAA,CAAI,CAAA,OAAA,EAAUE,CAAAA,CAAI,OAAO,CAAA,CAAE,CAAC,CAAA,CAAG,OAAA,CAAQ,IAAA,CAAK,CAAC,EAAE,CAAC,CAAA,CAC9F,OAAA,CAAQ,EAAA,CAAG,QAAA,CAAU,IAAM,CAAEJ,CAAAA,CAAG,KAAA,EAAM,CAAG,OAAA,CAAQ,IAAA,CAAK,CAAC,EAAE,CAAC,CAAA,CAC1D,MACF,CAEA,GAAIN,CAAAA,CAAO,CACT,IAAMS,CAAAA,CAAO,MAAME,CAAAA,CAA2B,CAAA,gBAAA,EAAmBZ,CAAI,CAAA,MAAA,EAASC,CAAK,GAAI,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAC9G,IAAA,IAAWY,CAAAA,IAAQH,CAAAA,CAAK,IAAA,EAAQ,EAAC,CAC/B,OAAA,CAAQ,GAAA,CAAIG,CAAI,CAAA,CAElB,MACF,CAEA,IAAMC,CAAAA,CAAUC,GAAAA,CAAc,yBAAyB,CAAA,CACvDD,CAAAA,CAAQ,KAAA,EAAM,CACd,IAAMJ,CAAAA,CAAO,MAAME,CAAAA,CAA6B,CAAA,gBAAA,EAAmBZ,CAAI,CAAA,KAAA,CAAA,CAAS,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CACvGc,CAAAA,CAAQ,IAAA,EAAK,CACb,IAAME,CAAAA,CAAAA,CAAQN,CAAAA,CAAK,IAAA,EAAQ,EAAC,EAAG,GAAA,CAAIO,CAAAA,GAAM,CACvC,EAAA,CAAIR,CAAAA,CAAM,GAAA,CAAIQ,CAAAA,CAAE,MAAA,CAAO,KAAA,CAAM,CAAA,CAAG,CAAC,CAAC,CAAA,CAClC,MAAA,CAAQA,CAAAA,CAAE,MAAA,GAAW,SAAA,CAAYR,CAAAA,CAAM,MAAM,QAAG,CAAA,CAAIQ,CAAAA,CAAE,MAAA,GAAW,QAAA,CAAWR,CAAAA,CAAM,GAAA,CAAI,QAAG,CAAA,CAAIA,CAAAA,CAAM,MAAA,CAAO,QAAG,CAAA,CAC7G,OAAA,CAASQ,CAAAA,CAAE,UAAA,CAAaC,CAAAA,CAAeD,CAAAA,CAAE,UAAU,CAAA,CAAI,GAAA,CACvD,QAAA,CAAUA,CAAAA,CAAE,WAAA,CAAc,CAAA,EAAA,CAAIA,CAAAA,CAAE,WAAA,CAAc,GAAA,EAAM,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAA,CAAA,CAAM,GACtE,CAAA,CAAE,CAAA,CACF,OAAA,CAAQ,GAAA,CAAIE,GAAAA,CAAYH,CAAAA,CAAM,CAC5B,CAAE,GAAA,CAAK,IAAA,CAAM,KAAA,CAAO,KAAM,CAAA,CAC1B,CAAE,GAAA,CAAK,QAAA,CAAU,KAAA,CAAO,EAAG,CAAA,CAC3B,CAAE,GAAA,CAAK,SAAA,CAAW,KAAA,CAAO,SAAU,CAAA,CACnC,CAAE,GAAA,CAAK,UAAA,CAAY,KAAA,CAAO,UAAW,CACvC,CAAC,CAAC,EACJ","file":"scripts-logs-AHTMTQ6G.js","sourcesContent":["import { apiGet } from '../../lib/api/client.js'\nimport { WebSocket } from 'ws'\nimport { renderTable } from '../../lib/output/table.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { formatRelative } from '../../lib/utils/format.js'\nimport { loadSession } from '../../lib/auth/session.js'\nimport { getApiBase } from '../../lib/api/cert-pin.js'\nimport chalk from 'chalk'\n\ninterface RunEntry {\n run_id: string\n status: string\n started_at: string\n duration_ms: number\n}\n\nexport default async function scriptsLogs(name: string, runId?: string, options?: { live?: boolean }): Promise<void> {\n if (options?.live) {\n const session = await loadSession()\n if (!session) { console.error('Not authenticated'); process.exit(1) }\n const apiBase = getApiBase().replace(/^http/, 'ws')\n const ws = new WebSocket(`${apiBase}/api/v1/scripts/${name}/logs/live`, {\n headers: { Authorization: `Bearer ${session.access_token}` },\n })\n console.log(chalk.dim(`Streaming live logs for \"${name}\"... (Ctrl+C to stop)`))\n ws.on('message', (data: Buffer) => console.log(data.toString()))\n ws.on('error', (err) => { console.error(chalk.red(`Error: ${err.message}`)); process.exit(1) })\n process.on('SIGINT', () => { ws.close(); process.exit(0) })\n return\n }\n\n if (runId) {\n const data = await apiGet<{ logs: string[] }>(`/api/v1/scripts/${name}/logs/${runId}`, { authenticated: true })\n for (const line of data.logs || []) {\n console.log(line)\n }\n return\n }\n\n const spinner = createSpinner('Fetching run history...')\n spinner.start()\n const data = await apiGet<{ runs: RunEntry[] }>(`/api/v1/scripts/${name}/runs`, { authenticated: true })\n spinner.stop()\n const rows = (data.runs || []).map(r => ({\n id: chalk.dim(r.run_id.slice(0, 8)),\n status: r.status === 'success' ? chalk.green('✓') : r.status === 'failed' ? chalk.red('✗') : chalk.yellow('○'),\n started: r.started_at ? formatRelative(r.started_at) : '-',\n duration: r.duration_ms ? `${(r.duration_ms / 1000).toFixed(1)}s` : '-',\n }))\n console.log(renderTable(rows, [\n { key: 'id', label: 'Run' },\n { key: 'status', label: '' },\n { key: 'started', label: 'Started' },\n { key: 'duration', label: 'Duration' },\n ]))\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {a}from'./chunk-ON3YIMVG.js';import'./chunk-6TS5Y27A.js';import {e}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {j,f,m,g}from'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.js';async function l(r,n){let t={};if(n?.env)for(let d of n.env){let[o,...a]=d.split("=");o&&(t[o]=a.join("="));}if(n?.dryRun){j(`[DRY-RUN] Would run script "${r}" with env: ${JSON.stringify(t)}`);return}let i=a(`Running script "${r}"...`);i.start();let s=await e("/api/v1/scripts/run",{name:r,env:t},{authenticated:true});if(i.succeed(),f()){m(s);return}g(`Script "${r}" triggered (run: ${s.run_id.slice(0,8)})`);}export{l as default};//# sourceMappingURL=scripts-run-K2LFPFTH.js.map
2
+ //# sourceMappingURL=scripts-run-K2LFPFTH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/scripts/scripts-run.ts"],"names":["scriptsRun","name","options","envVars","e","k","v","logInfo","spinner","createSpinner","result","apiPost","isJsonMode","logJSON","logSuccess"],"mappings":"kOAUA,eAAOA,CAAAA,CAAkCC,EAAcC,CAAAA,CAAqC,CAC1F,IAAMC,CAAAA,CAAkC,EAAC,CACzC,GAAID,CAAAA,EAAS,GAAA,CACX,QAAWE,CAAAA,IAAKF,CAAAA,CAAQ,IAAK,CAC3B,GAAM,CAACG,CAAAA,CAAG,GAAGC,CAAC,CAAA,CAAIF,CAAAA,CAAE,KAAA,CAAM,GAAG,CAAA,CACzBC,CAAAA,GAAGF,EAAQE,CAAC,CAAA,CAAIC,EAAE,IAAA,CAAK,GAAG,CAAA,EAChC,CAGF,GAAIJ,CAAAA,EAAS,OAAQ,CACnBK,CAAAA,CAAQ,+BAA+BN,CAAI,CAAA,YAAA,EAAe,KAAK,SAAA,CAAUE,CAAO,CAAC,CAAA,CAAE,CAAA,CACnF,MACF,CAEA,IAAMK,CAAAA,CAAUC,EAAc,CAAA,gBAAA,EAAmBR,CAAI,MAAM,CAAA,CAC3DO,CAAAA,CAAQ,KAAA,EAAM,CACd,IAAME,CAAAA,CAAS,MAAMC,CAAAA,CAA4C,qBAAA,CAAuB,CAAE,IAAA,CAAAV,CAAAA,CAAM,IAAKE,CAAQ,CAAA,CAAG,CAAE,aAAA,CAAe,IAAK,CAAC,EAGvI,GAFAK,CAAAA,CAAQ,SAAQ,CAEZI,CAAAA,GAAc,CAChBC,CAAAA,CAAQH,CAAM,CAAA,CACd,MACF,CACAI,EAAW,CAAA,QAAA,EAAWb,CAAI,qBAAqBS,CAAAA,CAAO,MAAA,CAAO,MAAM,CAAA,CAAG,CAAC,CAAC,CAAA,CAAA,CAAG,EAC7E","file":"scripts-run-K2LFPFTH.js","sourcesContent":["import { apiPost } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess, logJSON, logInfo } from '../../lib/output/logger.js'\nimport { isJsonMode } from '../../lib/output/logger.js'\n\ninterface RunOptions {\n env?: string[]\n dryRun?: boolean\n}\n\nexport default async function scriptsRun(name: string, options?: RunOptions): Promise<void> {\n const envVars: Record<string, string> = {}\n if (options?.env) {\n for (const e of options.env) {\n const [k, ...v] = e.split('=')\n if (k) envVars[k] = v.join('=')\n }\n }\n\n if (options?.dryRun) {\n logInfo(`[DRY-RUN] Would run script \"${name}\" with env: ${JSON.stringify(envVars)}`)\n return\n }\n\n const spinner = createSpinner(`Running script \"${name}\"...`)\n spinner.start()\n const result = await apiPost<{ run_id: string; status: string }>('/api/v1/scripts/run', { name, env: envVars }, { authenticated: true })\n spinner.succeed()\n\n if (isJsonMode()) {\n logJSON(result)\n return\n }\n logSuccess(`Script \"${name}\" triggered (run: ${result.run_id.slice(0, 8)})`)\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {a}from'./chunk-ON3YIMVG.js';import'./chunk-6TS5Y27A.js';import {d}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {c}from'./chunk-G4JU7IUC.js';import {f,m,l}from'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.js';import t from'chalk';async function h(r){let n=a(`Checking status of "${r}"...`);n.start();let u=await d(`/api/v1/scripts/${r}/status`,{authenticated:true});n.stop();let e=u.status;if(f()){m(e);return}l(""),l(` ${t.bold(e.name)}`),l(t.dim(" \u2500\u2500\u2500".repeat(8)));let c$1=e.health==="healthy"?t.green:e.health==="degraded"?t.yellow:t.red;l(` ${t.bold("Health:")} ${c$1("\u25CF")} ${e.health}`),l(` ${t.bold("Enabled:")} ${e.enabled?t.green("yes"):t.red("no")}`),l(` ${t.bold("Running:")} ${e.running?t.yellow("yes"):t.green("no")}`),l(` ${t.bold("Last OK:")} ${e.last_success?c(e.last_success):t.dim("never")}`),l(` ${t.bold("Last Fail:")} ${e.last_failure?c(e.last_failure):t.dim("never")}`),l("");}export{h as default};//# sourceMappingURL=scripts-status-XGI5SMWL.js.map
2
+ //# sourceMappingURL=scripts-status-XGI5SMWL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/scripts/scripts-status.ts"],"names":["scriptsStatus","name","spinner","createSpinner","data","apiGet","s","isJsonMode","logJSON","logRaw","chalk","healthColor","formatRelative"],"mappings":"yRAgBA,eAAOA,EAAqCC,CAAAA,CAA6B,CACvE,IAAMC,CAAAA,CAAUC,CAAAA,CAAc,CAAA,oBAAA,EAAuBF,CAAI,MAAM,CAAA,CAC/DC,CAAAA,CAAQ,OAAM,CACd,IAAME,EAAO,MAAMC,CAAAA,CAAiC,CAAA,gBAAA,EAAmBJ,CAAI,UAAW,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAC7GC,EAAQ,IAAA,EAAK,CACb,IAAMI,CAAAA,CAAIF,EAAK,MAAA,CAEf,GAAIG,GAAW,CAAG,CAChBC,EAAQF,CAAC,CAAA,CACT,MACF,CAEAG,EAAO,EAAE,CAAA,CACTA,EAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,KAAKJ,CAAAA,CAAE,IAAI,CAAC,CAAA,CAAE,EAChCG,CAAAA,CAAOC,CAAAA,CAAM,IAAI,sBAAA,CAAQ,MAAA,CAAO,CAAC,CAAC,CAAC,CAAA,CACnC,IAAMC,IAAcL,CAAAA,CAAE,MAAA,GAAW,UAAYI,CAAAA,CAAM,KAAA,CAAQJ,EAAE,MAAA,GAAW,UAAA,CAAaI,CAAAA,CAAM,MAAA,CAASA,EAAM,GAAA,CAC1GD,CAAAA,CAAO,KAAKC,CAAAA,CAAM,IAAA,CAAK,SAAS,CAAC,CAAA,GAAA,EAAMC,GAAAA,CAAY,QAAG,CAAC,CAAA,CAAA,EAAIL,CAAAA,CAAE,MAAM,CAAA,CAAE,CAAA,CACrEG,EAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,IAAA,CAAK,UAAU,CAAC,CAAA,EAAA,EAAKJ,CAAAA,CAAE,QAAUI,CAAAA,CAAM,KAAA,CAAM,KAAK,CAAA,CAAIA,CAAAA,CAAM,GAAA,CAAI,IAAI,CAAC,CAAA,CAAE,CAAA,CACzFD,EAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,KAAK,UAAU,CAAC,CAAA,EAAA,EAAKJ,CAAAA,CAAE,QAAUI,CAAAA,CAAM,MAAA,CAAO,KAAK,CAAA,CAAIA,CAAAA,CAAM,MAAM,IAAI,CAAC,CAAA,CAAE,CAAA,CAC5FD,EAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,KAAK,UAAU,CAAC,KAAKJ,CAAAA,CAAE,YAAA,CAAeM,CAAAA,CAAeN,CAAAA,CAAE,YAAY,CAAA,CAAII,CAAAA,CAAM,IAAI,OAAO,CAAC,EAAE,CAAA,CAC7GD,CAAAA,CAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,KAAK,YAAY,CAAC,IAAIJ,CAAAA,CAAE,YAAA,CAAeM,EAAeN,CAAAA,CAAE,YAAY,CAAA,CAAII,CAAAA,CAAM,IAAI,OAAO,CAAC,EAAE,CAAA,CAC9GD,CAAAA,CAAO,EAAE,EACX","file":"scripts-status-XGI5SMWL.js","sourcesContent":["import { apiGet } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logJSON, logRaw } from '../../lib/output/logger.js'\nimport { isJsonMode } from '../../lib/output/logger.js'\nimport { formatRelative } from '../../lib/utils/format.js'\nimport chalk from 'chalk'\n\ninterface ScriptStatus {\n name: string\n enabled: boolean\n running: boolean\n last_success: string | null\n last_failure: string | null\n health: 'healthy' | 'degraded' | 'failing'\n}\n\nexport default async function scriptsStatus(name: string): Promise<void> {\n const spinner = createSpinner(`Checking status of \"${name}\"...`)\n spinner.start()\n const data = await apiGet<{ status: ScriptStatus }>(`/api/v1/scripts/${name}/status`, { authenticated: true })\n spinner.stop()\n const s = data.status\n\n if (isJsonMode()) {\n logJSON(s)\n return\n }\n\n logRaw('')\n logRaw(` ${chalk.bold(s.name)}`)\n logRaw(chalk.dim(' ───'.repeat(8)))\n const healthColor = s.health === 'healthy' ? chalk.green : s.health === 'degraded' ? chalk.yellow : chalk.red\n logRaw(` ${chalk.bold('Health:')} ${healthColor('●')} ${s.health}`)\n logRaw(` ${chalk.bold('Enabled:')} ${s.enabled ? chalk.green('yes') : chalk.red('no')}`)\n logRaw(` ${chalk.bold('Running:')} ${s.running ? chalk.yellow('yes') : chalk.green('no')}`)\n logRaw(` ${chalk.bold('Last OK:')} ${s.last_success ? formatRelative(s.last_success) : chalk.dim('never')}`)\n logRaw(` ${chalk.bold('Last Fail:')} ${s.last_failure ? formatRelative(s.last_failure) : chalk.dim('never')}`)\n logRaw('')\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {a}from'./chunk-ON3YIMVG.js';import'./chunk-6TS5Y27A.js';import {e as e$1}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {h,f,m,g as g$1}from'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.js';import d from'fs';import e from'path';async function g(n){let r=n?e.resolve(n):e.join(process.cwd(),".squid.yml");d.existsSync(r)||(h(`File not found: ${r}`),process.exit(1));let m$1=d.readFileSync(r,"utf-8"),i=a("Validating...");i.start();try{let o=await e$1("/api/v1/scripts/validate",{filename:e.basename(r),content:m$1});if(i.succeed(),f()){m(o);return}if(o.valid&&g$1("Valid SquidScript!"),o.warnings?.length)for(let t of o.warnings)console.log(` \u26A0 ${t}`);if(o.errors?.length)for(let t of o.errors)console.log(` \u2717 ${t}`);}catch{i.fail(),h("Validation failed"),process.exit(1);}}export{g as default};//# sourceMappingURL=scripts-validate-7EZXPO3Q.js.map
2
+ //# sourceMappingURL=scripts-validate-7EZXPO3Q.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/scripts/scripts-validate.ts"],"names":["scriptsValidate","filePath","targetPath","path","fs","logError","content","spinner","createSpinner","result","apiPost","isJsonMode","logJSON","logSuccess","w","e"],"mappings":"sRAOA,eAAOA,CAAAA,CAAuCC,CAAAA,CAAkC,CAC9E,IAAMC,CAAAA,CAAaD,CAAAA,CAAWE,CAAAA,CAAK,OAAA,CAAQF,CAAQ,CAAA,CAAIE,CAAAA,CAAK,IAAA,CAAK,OAAA,CAAQ,GAAA,EAAI,CAAG,YAAY,CAAA,CAEvFC,CAAAA,CAAG,UAAA,CAAWF,CAAU,CAAA,GAC3BG,CAAAA,CAAS,CAAA,gBAAA,EAAmBH,CAAU,CAAA,CAAE,CAAA,CACxC,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,CAAA,CAGhB,IAAMI,GAAAA,CAAUF,CAAAA,CAAG,YAAA,CAAaF,CAAAA,CAAY,OAAO,CAAA,CAE7CK,CAAAA,CAAUC,CAAAA,CAAc,eAAe,CAAA,CAC7CD,CAAAA,CAAQ,KAAA,EAAM,CACd,GAAI,CACF,IAAME,CAAAA,CAAS,MAAMC,GAAAA,CAAoE,0BAAA,CAA4B,CACnH,QAAA,CAAUP,CAAAA,CAAK,QAAA,CAASD,CAAU,CAAA,CAClC,OAAA,CAAAI,GACF,CAAC,CAAA,CAED,GADAC,CAAAA,CAAQ,OAAA,EAAQ,CACZI,CAAAA,EAAW,CAAG,CAChBC,CAAAA,CAAQH,CAAM,CAAA,CACd,MACF,CAIA,GAHIA,CAAAA,CAAO,KAAA,EACTI,GAAAA,CAAW,oBAAoB,CAAA,CAE7BJ,CAAAA,CAAO,QAAA,EAAU,MAAA,CACnB,IAAA,IAAWK,CAAAA,IAAKL,CAAAA,CAAO,QAAA,CACrB,OAAA,CAAQ,GAAA,CAAI,CAAA,SAAA,EAAOK,CAAC,CAAA,CAAE,CAAA,CAG1B,GAAIL,CAAAA,CAAO,MAAA,EAAQ,MAAA,CACjB,IAAA,IAAWM,CAAAA,IAAKN,CAAAA,CAAO,MAAA,CACrB,OAAA,CAAQ,GAAA,CAAI,CAAA,SAAA,EAAOM,CAAC,CAAA,CAAE,EAG5B,CAAA,KAAQ,CACNR,CAAAA,CAAQ,IAAA,EAAK,CACbF,CAAAA,CAAS,mBAAmB,CAAA,CAC5B,OAAA,CAAQ,IAAA,CAAK,CAAC,EAChB,CACF","file":"scripts-validate-7EZXPO3Q.js","sourcesContent":["import fs from 'node:fs'\nimport path from 'node:path'\nimport { apiPost } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess, logError, logJSON } from '../../lib/output/logger.js'\nimport { isJsonMode } from '../../lib/output/logger.js'\n\nexport default async function scriptsValidate(filePath?: string): Promise<void> {\n const targetPath = filePath ? path.resolve(filePath) : path.join(process.cwd(), '.squid.yml')\n\n if (!fs.existsSync(targetPath)) {\n logError(`File not found: ${targetPath}`)\n process.exit(1)\n }\n\n const content = fs.readFileSync(targetPath, 'utf-8')\n\n const spinner = createSpinner('Validating...')\n spinner.start()\n try {\n const result = await apiPost<{ valid: boolean; errors?: string[]; warnings?: string[] }>('/api/v1/scripts/validate', {\n filename: path.basename(targetPath),\n content,\n })\n spinner.succeed()\n if (isJsonMode()) {\n logJSON(result)\n return\n }\n if (result.valid) {\n logSuccess('Valid SquidScript!')\n }\n if (result.warnings?.length) {\n for (const w of result.warnings) {\n console.log(` ⚠ ${w}`)\n }\n }\n if (result.errors?.length) {\n for (const e of result.errors) {\n console.log(` ✗ ${e}`)\n }\n }\n } catch {\n spinner.fail()\n logError('Validation failed')\n process.exit(1)\n }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {e as e$1}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import {j,h}from'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.js';import g from'path';import p from'chokidar';import u from'fs';import e from'chalk';async function f(){let i=process.cwd();j(`Watching for .squid.yml changes in ${e.dim(i)}...`),console.log(e.dim("Press Ctrl+C to stop"));let s=p.watch("**/.squid.yml",{cwd:i,ignored:/node_modules/,persistent:true,ignoreInitial:false}),r=null;s.on("change",o=>{r&&clearTimeout(r),r=setTimeout(async()=>{let d=g.join(i,o);try{let t=u.readFileSync(d,"utf-8"),a=await e$1("/api/v1/scripts/validate",{filename:o,content:t}),c=e.dim(new Date().toLocaleTimeString());a.valid?console.log(`${c} ${e.green("\u2713")} ${o} \u2014 valid`):console.log(`${c} ${e.red("\u2717")} ${o} \u2014 ${a.errors?.join(", ")||"invalid"}`);}catch(t){h(`Failed to validate ${o}: ${t instanceof Error?t.message:String(t)}`);}},500);}),s.on("add",o=>{j(`Watching ${o}`);}),await new Promise(()=>{});}export{f as default};//# sourceMappingURL=scripts-watch-HN23AZLJ.js.map
2
+ //# sourceMappingURL=scripts-watch-HN23AZLJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/scripts/scripts-watch.ts"],"names":["scriptsWatch","cwd","logInfo","chalk","watcher","chokidar","validationTimeout","filePath","absolutePath","path","content","fs","result","apiPost","timestamp","err","logError"],"mappings":"4NAOA,eAAOA,CAAAA,EAAqD,CAC1D,IAAMC,CAAAA,CAAM,OAAA,CAAQ,KAAI,CACxBC,CAAAA,CAAQ,CAAA,mCAAA,EAAsCC,CAAAA,CAAM,IAAIF,CAAG,CAAC,KAAK,CAAA,CACjE,OAAA,CAAQ,IAAIE,CAAAA,CAAM,GAAA,CAAI,sBAAsB,CAAC,CAAA,CAE7C,IAAMC,CAAAA,CAAUC,CAAAA,CAAS,MAAM,eAAA,CAAiB,CAC9C,IAAAJ,CAAAA,CACA,OAAA,CAAS,cAAA,CACT,UAAA,CAAY,KACZ,aAAA,CAAe,KACjB,CAAC,CAAA,CAEGK,CAAAA,CAA0D,KAE9DF,CAAAA,CAAQ,EAAA,CAAG,QAAA,CAAWG,CAAAA,EAAqB,CACrCD,CAAAA,EAAmB,YAAA,CAAaA,CAAiB,CAAA,CACrDA,CAAAA,CAAoB,WAAW,SAAY,CACzC,IAAME,CAAAA,CAAeC,EAAK,IAAA,CAAKR,CAAAA,CAAKM,CAAQ,CAAA,CAC5C,GAAI,CACF,IAAMG,CAAAA,CAAUC,EAAG,YAAA,CAAaH,CAAAA,CAAc,OAAO,CAAA,CAC/CI,CAAAA,CAAS,MAAMC,GAAAA,CAA+C,0BAAA,CAA4B,CAC9F,QAAA,CAAUN,CAAAA,CACV,OAAA,CAAAG,CACF,CAAC,CAAA,CACKI,CAAAA,CAAYX,EAAM,GAAA,CAAI,IAAI,MAAK,CAAE,kBAAA,EAAoB,CAAA,CACvDS,EAAO,KAAA,CACT,OAAA,CAAQ,IAAI,CAAA,EAAGE,CAAS,IAAIX,CAAAA,CAAM,KAAA,CAAM,QAAG,CAAC,IAAII,CAAQ,CAAA,aAAA,CAAU,EAElE,OAAA,CAAQ,GAAA,CAAI,GAAGO,CAAS,CAAA,CAAA,EAAIX,EAAM,GAAA,CAAI,QAAG,CAAC,CAAA,CAAA,EAAII,CAAQ,WAAMK,CAAAA,CAAO,MAAA,EAAQ,KAAK,IAAI,CAAA,EAAK,SAAS,CAAA,CAAE,EAExG,CAAA,MAASG,CAAAA,CAAK,CACZC,CAAAA,CAAS,CAAA,mBAAA,EAAsBT,CAAQ,CAAA,EAAA,EAAKQ,CAAAA,YAAe,KAAA,CAAQA,CAAAA,CAAI,QAAU,MAAA,CAAOA,CAAG,CAAC,CAAA,CAAE,EAChG,CACF,CAAA,CAAG,GAAG,EACR,CAAC,EAEDX,CAAAA,CAAQ,EAAA,CAAG,MAAQG,CAAAA,EAAqB,CACtCL,EAAQ,CAAA,SAAA,EAAYK,CAAQ,EAAE,EAChC,CAAC,EAED,MAAM,IAAI,QAAQ,IAAM,CAAC,CAAC,EAC5B","file":"scripts-watch-HN23AZLJ.js","sourcesContent":["import path from 'node:path'\nimport chokidar from 'chokidar'\nimport fs from 'node:fs'\nimport { apiPost } from '../../lib/api/client.js'\nimport chalk from 'chalk'\nimport { logError, logInfo } from '../../lib/output/logger.js'\n\nexport default async function scriptsWatch(): Promise<void> {\n const cwd = process.cwd()\n logInfo(`Watching for .squid.yml changes in ${chalk.dim(cwd)}...`)\n console.log(chalk.dim('Press Ctrl+C to stop'))\n\n const watcher = chokidar.watch('**/.squid.yml', {\n cwd,\n ignored: /node_modules/,\n persistent: true,\n ignoreInitial: false,\n })\n\n let validationTimeout: ReturnType<typeof setTimeout> | null = null\n\n watcher.on('change', (filePath: string) => {\n if (validationTimeout) clearTimeout(validationTimeout)\n validationTimeout = setTimeout(async () => {\n const absolutePath = path.join(cwd, filePath)\n try {\n const content = fs.readFileSync(absolutePath, 'utf-8')\n const result = await apiPost<{ valid: boolean; errors?: string[] }>('/api/v1/scripts/validate', {\n filename: filePath,\n content,\n })\n const timestamp = chalk.dim(new Date().toLocaleTimeString())\n if (result.valid) {\n console.log(`${timestamp} ${chalk.green('✓')} ${filePath} — valid`)\n } else {\n console.log(`${timestamp} ${chalk.red('✗')} ${filePath} — ${result.errors?.join(', ') || 'invalid'}`)\n }\n } catch (err) {\n logError(`Failed to validate ${filePath}: ${err instanceof Error ? err.message : String(err)}`)\n }\n }, 500)\n })\n\n watcher.on('add', (filePath: string) => {\n logInfo(`Watching ${filePath}`)\n })\n\n await new Promise(() => {})\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export{o as clearSession,r as getTimeUntilExpiry,p as isSessionExpired,m as loadSession,n as saveSession,q as shouldRefreshToken}from'./chunk-C5KZCYJ4.js';//# sourceMappingURL=session-T3DZUXHP.js.map
2
+ //# sourceMappingURL=session-T3DZUXHP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"session-T3DZUXHP.js"}
@@ -0,0 +1,2 @@
1
+ import {a as a$1}from'./chunk-ON3YIMVG.js';import'./chunk-6TS5Y27A.js';import {e}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {g}from'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.js';async function a(e$1){let i=a$1(`Cancelling request ${e$1.slice(0,8)}...`);i.start(),await e(`/api/v1/sign/${e$1}/cancel`,{},{authenticated:true}),i.succeed(),g(`Signing request ${e$1.slice(0,8)} cancelled`);}export{a as default};//# sourceMappingURL=sign-cancel-R7KQFEM3.js.map
2
+ //# sourceMappingURL=sign-cancel-R7KQFEM3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/sign/sign-cancel.ts"],"names":["signCancel","requestId","spinner","createSpinner","apiPost","logSuccess"],"mappings":"mOAIA,eAAOA,EAAkCC,GAAAA,CAAkC,CACzE,IAAMC,CAAAA,CAAUC,GAAAA,CAAc,sBAAsBF,GAAAA,CAAU,KAAA,CAAM,CAAA,CAAG,CAAC,CAAC,CAAA,GAAA,CAAK,CAAA,CAC9EC,EAAQ,KAAA,EAAM,CACd,MAAME,CAAAA,CAAQ,CAAA,aAAA,EAAgBH,GAAS,CAAA,OAAA,CAAA,CAAW,EAAC,CAAG,CAAE,cAAe,IAAK,CAAC,EAC7EC,CAAAA,CAAQ,OAAA,EAAQ,CAChBG,CAAAA,CAAW,mBAAmBJ,GAAAA,CAAU,KAAA,CAAM,EAAG,CAAC,CAAC,YAAY,EACjE","file":"sign-cancel-R7KQFEM3.js","sourcesContent":["import { apiPost } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess } from '../../lib/output/logger.js'\n\nexport default async function signCancel(requestId: string): Promise<void> {\n const spinner = createSpinner(`Cancelling request ${requestId.slice(0, 8)}...`)\n spinner.start()\n await apiPost(`/api/v1/sign/${requestId}/cancel`, {}, { authenticated: true })\n spinner.succeed()\n logSuccess(`Signing request ${requestId.slice(0, 8)} cancelled`)\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {a}from'./chunk-ON3YIMVG.js';import'./chunk-6TS5Y27A.js';import {d as d$1}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {g}from'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.js';import s from'fs';import c from'path';async function d(o){let n=a("Downloading signed document...");n.start();let t=await d$1(`/api/v1/sign/${o}/download`,{authenticated:true});n.succeed();let e=c.join(process.cwd(),`signed-${t.filename||`${o.slice(0,8)}.pdf`}`);s.writeFileSync(e,Buffer.from(t.content,"base64")),g(`Downloaded to ${e}`);}export{d as default};//# sourceMappingURL=sign-download-EHPZ5FMF.js.map
2
+ //# sourceMappingURL=sign-download-EHPZ5FMF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/sign/sign-download.ts"],"names":["signDownload","requestId","spinner","createSpinner","data","apiGet","filePath","path","fs","logSuccess"],"mappings":"yQAMA,eAAOA,CAAAA,CAAoCC,CAAAA,CAAkC,CAC3E,IAAMC,CAAAA,CAAUC,CAAAA,CAAc,gCAAgC,CAAA,CAC9DD,CAAAA,CAAQ,KAAA,EAAM,CACd,IAAME,CAAAA,CAAO,MAAMC,GAAAA,CAA8C,CAAA,aAAA,EAAgBJ,CAAS,CAAA,SAAA,CAAA,CAAa,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAC9HC,EAAQ,OAAA,EAAQ,CAChB,IAAMI,CAAAA,CAAWC,CAAAA,CAAK,IAAA,CAAK,OAAA,CAAQ,GAAA,EAAI,CAAG,CAAA,OAAA,EAAUH,CAAAA,CAAK,QAAA,EAAY,CAAA,EAAGH,CAAAA,CAAU,KAAA,CAAM,CAAA,CAAG,CAAC,CAAC,CAAA,IAAA,CAAM,CAAA,CAAE,CAAA,CACrGO,CAAAA,CAAG,aAAA,CAAcF,CAAAA,CAAU,MAAA,CAAO,KAAKF,CAAAA,CAAK,OAAA,CAAS,QAAQ,CAAC,CAAA,CAC9DK,CAAAA,CAAW,CAAA,cAAA,EAAiBH,CAAQ,EAAE,EACxC","file":"sign-download-EHPZ5FMF.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 signDownload(requestId: string): Promise<void> {\n const spinner = createSpinner('Downloading signed document...')\n spinner.start()\n const data = await apiGet<{ content: string; filename: string }>(`/api/v1/sign/${requestId}/download`, { authenticated: true })\n spinner.succeed()\n const filePath = path.join(process.cwd(), `signed-${data.filename || `${requestId.slice(0, 8)}.pdf`}`)\n fs.writeFileSync(filePath, Buffer.from(data.content, 'base64'))\n logSuccess(`Downloaded to ${filePath}`)\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {d}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import {a}from'./chunk-THMWE2I6.js';import {b}from'./chunk-G4JU7IUC.js';import'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.js';import t from'chalk';async function o(){let n=((await d("/api/v1/sign/list",{authenticated:true})).requests||[]).map(e=>({id:t.dim(e.id.slice(0,8)),file:e.filename,status:e.status==="completed"?t.green("completed"):e.status==="pending"?t.yellow("pending"):t.dim(e.status),recipients:`${e.signed_count}/${e.recipient_count}`,created:b(e.created_at)}));console.log(a(n,[{key:"id",label:"Request"},{key:"file",label:"Document"},{key:"status",label:"Status"},{key:"recipients",label:"Signed"},{key:"created",label:"Created"}]));}export{o as default};//# sourceMappingURL=sign-list-6N7G36EO.js.map
2
+ //# sourceMappingURL=sign-list-6N7G36EO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/sign/sign-list.ts"],"names":["signList","rows","apiGet","r","chalk","formatDate","renderTable"],"mappings":"qNAcA,eAAOA,CAAAA,EAAiD,CAEtD,IAAMC,CAAAA,CAAAA,CAAAA,CADO,MAAMC,CAAAA,CAAoC,mBAAA,CAAqB,CAAE,cAAe,IAAK,CAAC,CAAA,EAChF,QAAA,EAAY,EAAC,EAAG,IAAIC,CAAAA,GAAM,CAC3C,EAAA,CAAIC,CAAAA,CAAM,GAAA,CAAID,CAAAA,CAAE,GAAG,KAAA,CAAM,CAAA,CAAG,CAAC,CAAC,CAAA,CAC9B,IAAA,CAAMA,EAAE,QAAA,CACR,MAAA,CAAQA,CAAAA,CAAE,MAAA,GAAW,WAAA,CAAcC,CAAAA,CAAM,MAAM,WAAW,CAAA,CAAID,CAAAA,CAAE,MAAA,GAAW,SAAA,CAAYC,CAAAA,CAAM,OAAO,SAAS,CAAA,CAAIA,CAAAA,CAAM,GAAA,CAAID,CAAAA,CAAE,MAAM,EACnI,UAAA,CAAY,CAAA,EAAGA,EAAE,YAAY,CAAA,CAAA,EAAIA,EAAE,eAAe,CAAA,CAAA,CAClD,OAAA,CAASE,CAAAA,CAAWF,CAAAA,CAAE,UAAU,CAClC,CAAA,CAAE,CAAA,CACF,OAAA,CAAQ,GAAA,CAAIG,CAAAA,CAAYL,CAAAA,CAAM,CAC5B,CAAE,GAAA,CAAK,IAAA,CAAM,KAAA,CAAO,SAAU,CAAA,CAC9B,CAAE,GAAA,CAAK,MAAA,CAAQ,KAAA,CAAO,UAAW,CAAA,CACjC,CAAE,IAAK,QAAA,CAAU,KAAA,CAAO,QAAS,CAAA,CACjC,CAAE,GAAA,CAAK,aAAc,KAAA,CAAO,QAAS,CAAA,CACrC,CAAE,GAAA,CAAK,SAAA,CAAW,MAAO,SAAU,CACrC,CAAC,CAAC,EACJ","file":"sign-list-6N7G36EO.js","sourcesContent":["import { apiGet } from '../../lib/api/client.js'\nimport { renderTable } from '../../lib/output/table.js'\nimport { formatDate } from '../../lib/utils/format.js'\nimport chalk from 'chalk'\n\ninterface SignRequest {\n id: string\n filename: string\n status: string\n recipient_count: number\n signed_count: number\n created_at: string\n}\n\nexport default async function signList(): Promise<void> {\n const data = await apiGet<{ requests: SignRequest[] }>('/api/v1/sign/list', { authenticated: true })\n const rows = (data.requests || []).map(r => ({\n id: chalk.dim(r.id.slice(0, 8)),\n file: r.filename,\n status: r.status === 'completed' ? chalk.green('completed') : r.status === 'pending' ? chalk.yellow('pending') : chalk.dim(r.status),\n recipients: `${r.signed_count}/${r.recipient_count}`,\n created: formatDate(r.created_at),\n }))\n console.log(renderTable(rows, [\n { key: 'id', label: 'Request' },\n { key: 'file', label: 'Document' },\n { key: 'status', label: 'Status' },\n { key: 'recipients', label: 'Signed' },\n { key: 'created', label: 'Created' },\n ]))\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {a}from'./chunk-ON3YIMVG.js';import'./chunk-6TS5Y27A.js';import {e}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {f as f$1,m as m$1,g}from'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.js';import f from'fs';import m from'path';async function l(u,e$1){let t=m.resolve(u);f.existsSync(t)||(console.error(`File not found: ${t}`),process.exit(1));let d=f.readFileSync(t),g$1=Array.isArray(e$1.to)?e$1.to:e$1.to?[e$1.to]:[],r=a("Sending signing request...");r.start();let o=await e("/api/v1/sign/request",{filename:m.basename(t),content:d.toString("base64"),recipients:g$1,ordered:e$1.order||false},{authenticated:true});if(r.succeed(),f$1()){m$1(o);return}g(`Signing request sent (${o.request_id.slice(0,8)})`);}export{l as default};//# sourceMappingURL=sign-request-DW6BS67P.js.map
2
+ //# sourceMappingURL=sign-request-DW6BS67P.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/sign/sign-request.ts"],"names":["signRequest","file","options","filePath","path","fs","content","to","spinner","createSpinner","result","apiPost","isJsonMode","logJSON","logSuccess"],"mappings":"oRAOA,eAAOA,CAAAA,CAAmCC,CAAAA,CAAcC,GAAAA,CAAqE,CAC3H,IAAMC,CAAAA,CAAWC,EAAK,OAAA,CAAQH,CAAI,CAAA,CAC7BI,CAAAA,CAAG,UAAA,CAAWF,CAAQ,IACzB,OAAA,CAAQ,KAAA,CAAM,CAAA,gBAAA,EAAmBA,CAAQ,CAAA,CAAE,CAAA,CAC3C,QAAQ,IAAA,CAAK,CAAC,CAAA,CAAA,CAGhB,IAAMG,CAAAA,CAAUD,CAAAA,CAAG,aAAaF,CAAQ,CAAA,CAClCI,GAAAA,CAAK,KAAA,CAAM,OAAA,CAAQL,GAAAA,CAAQ,EAAE,CAAA,CAAIA,GAAAA,CAAQ,EAAA,CAAKA,GAAAA,CAAQ,EAAA,CAAK,CAACA,IAAQ,EAAE,CAAA,CAAI,EAAC,CAE3EM,CAAAA,CAAUC,CAAAA,CAAc,4BAA4B,CAAA,CAC1DD,CAAAA,CAAQ,KAAA,EAAM,CAEd,IAAME,CAAAA,CAAS,MAAMC,CAAAA,CAAgC,sBAAA,CAAwB,CAC3E,QAAA,CAAUP,CAAAA,CAAK,QAAA,CAASD,CAAQ,CAAA,CAChC,OAAA,CAASG,CAAAA,CAAQ,QAAA,CAAS,QAAQ,CAAA,CAClC,WAAYC,GAAAA,CACZ,OAAA,CAASL,GAAAA,CAAQ,KAAA,EAAS,KAC5B,CAAA,CAAG,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAG1B,GADAM,CAAAA,CAAQ,SAAQ,CACZI,GAAAA,EAAW,CAAG,CAChBC,GAAAA,CAAQH,CAAM,EACd,MACF,CACAI,CAAAA,CAAW,CAAA,sBAAA,EAAyBJ,CAAAA,CAAO,UAAA,CAAW,MAAM,CAAA,CAAG,CAAC,CAAC,CAAA,CAAA,CAAG,EACtE","file":"sign-request-DW6BS67P.js","sourcesContent":["import fs from 'node:fs'\nimport path from 'node:path'\nimport { apiPost } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess, logJSON } from '../../lib/output/logger.js'\nimport { isJsonMode } from '../../lib/output/logger.js'\n\nexport default async function signRequest(file: string, options: { to?: string | string[]; order?: boolean }): Promise<void> {\n const filePath = path.resolve(file)\n if (!fs.existsSync(filePath)) {\n console.error(`File not found: ${filePath}`)\n process.exit(1)\n }\n\n const content = fs.readFileSync(filePath)\n const to = Array.isArray(options.to) ? options.to : options.to ? [options.to] : []\n\n const spinner = createSpinner('Sending signing request...')\n spinner.start()\n\n const result = await apiPost<{ request_id: string }>('/api/v1/sign/request', {\n filename: path.basename(filePath),\n content: content.toString('base64'),\n recipients: to,\n ordered: options.order || false,\n }, { authenticated: true })\n\n spinner.succeed()\n if (isJsonMode()) {\n logJSON(result)\n return\n }\n logSuccess(`Signing request sent (${result.request_id.slice(0, 8)})`)\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {a}from'./chunk-ON3YIMVG.js';import'./chunk-6TS5Y27A.js';import {d}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {b}from'./chunk-G4JU7IUC.js';import {f,m,l}from'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.js';import t from'chalk';async function u(m$1){let r=a("Checking status...");r.start();let c=await d(`/api/v1/sign/${m$1}`,{authenticated:true});r.stop();let i=c.request;if(f()){m(i);return}l(""),l(` ${t.bold(i.filename)}`),l(t.dim(" \u2500\u2500\u2500".repeat(8))),l(` ${t.bold("Status:")} ${i.status==="completed"?t.green("completed"):i.status==="pending"?t.yellow("pending"):t.dim(i.status)}`),l(` ${t.bold("Created:")} ${b(i.created_at)}`),l("");for(let n of i.recipients){let l$1=n.signed?t.green("\u2713"):t.yellow("\u25CB"),p=n.signed_at?b(n.signed_at):t.dim("pending");l(` ${l$1} ${n.email} \u2014 ${p}`);}l("");}export{u as default};//# sourceMappingURL=sign-status-L4PNMSBI.js.map
2
+ //# sourceMappingURL=sign-status-L4PNMSBI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/sign/sign-status.ts"],"names":["signStatus","requestId","spinner","createSpinner","data","apiGet","r","isJsonMode","logJSON","logRaw","chalk","formatDate","rec","icon","time"],"mappings":"yRAeA,eAAOA,CAAAA,CAAkCC,IAAkC,CACzE,IAAMC,CAAAA,CAAUC,CAAAA,CAAc,oBAAoB,CAAA,CAClDD,CAAAA,CAAQ,KAAA,EAAM,CACd,IAAME,CAAAA,CAAO,MAAMC,CAAAA,CAAgC,CAAA,aAAA,EAAgBJ,GAAS,CAAA,CAAA,CAAI,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CACvGC,CAAAA,CAAQ,IAAA,GACR,IAAMI,CAAAA,CAAIF,CAAAA,CAAK,OAAA,CAEf,GAAIG,CAAAA,EAAW,CAAG,CAChBC,CAAAA,CAAQF,CAAC,CAAA,CACT,MACF,CAEAG,EAAO,EAAE,CAAA,CACTA,CAAAA,CAAO,CAAA,EAAA,EAAKC,EAAM,IAAA,CAAKJ,CAAAA,CAAE,QAAQ,CAAC,EAAE,CAAA,CACpCG,CAAAA,CAAOC,CAAAA,CAAM,GAAA,CAAI,sBAAA,CAAQ,MAAA,CAAO,CAAC,CAAC,CAAC,CAAA,CACnCD,CAAAA,CAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,KAAK,SAAS,CAAC,CAAA,IAAA,EAAOJ,CAAAA,CAAE,SAAW,WAAA,CAAcI,CAAAA,CAAM,KAAA,CAAM,WAAW,CAAA,CAAIJ,CAAAA,CAAE,MAAA,GAAW,SAAA,CAAYI,EAAM,MAAA,CAAO,SAAS,CAAA,CAAIA,CAAAA,CAAM,IAAIJ,CAAAA,CAAE,MAAM,CAAC,CAAA,CAAE,EACtKG,CAAAA,CAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,IAAA,CAAK,UAAU,CAAC,CAAA,GAAA,EAAMC,CAAAA,CAAWL,EAAE,UAAU,CAAC,CAAA,CAAE,CAAA,CAClEG,EAAO,EAAE,CAAA,CACT,IAAA,IAAWG,CAAAA,IAAON,EAAE,UAAA,CAAY,CAC9B,IAAMO,GAAAA,CAAOD,CAAAA,CAAI,MAAA,CAASF,CAAAA,CAAM,KAAA,CAAM,QAAG,CAAA,CAAIA,CAAAA,CAAM,MAAA,CAAO,QAAG,EACvDI,CAAAA,CAAOF,CAAAA,CAAI,SAAA,CAAYD,CAAAA,CAAWC,EAAI,SAAS,CAAA,CAAIF,CAAAA,CAAM,GAAA,CAAI,SAAS,CAAA,CAC5ED,CAAAA,CAAO,CAAA,EAAA,EAAKI,GAAI,CAAA,CAAA,EAAID,CAAAA,CAAI,KAAK,CAAA,QAAA,EAAME,CAAI,CAAA,CAAE,EAC3C,CACAL,CAAAA,CAAO,EAAE,EACX","file":"sign-status-L4PNMSBI.js","sourcesContent":["import { apiGet } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logJSON, logRaw } from '../../lib/output/logger.js'\nimport { isJsonMode } from '../../lib/output/logger.js'\nimport { formatDate } from '../../lib/utils/format.js'\nimport chalk from 'chalk'\n\ninterface SignStatus {\n id: string\n filename: string\n status: string\n recipients: { email: string; signed: boolean; signed_at: string | null }[]\n created_at: string\n}\n\nexport default async function signStatus(requestId: string): Promise<void> {\n const spinner = createSpinner('Checking status...')\n spinner.start()\n const data = await apiGet<{ request: SignStatus }>(`/api/v1/sign/${requestId}`, { authenticated: true })\n spinner.stop()\n const r = data.request\n\n if (isJsonMode()) {\n logJSON(r)\n return\n }\n\n logRaw('')\n logRaw(` ${chalk.bold(r.filename)}`)\n logRaw(chalk.dim(' ───'.repeat(8)))\n logRaw(` ${chalk.bold('Status:')} ${r.status === 'completed' ? chalk.green('completed') : r.status === 'pending' ? chalk.yellow('pending') : chalk.dim(r.status)}`)\n logRaw(` ${chalk.bold('Created:')} ${formatDate(r.created_at)}`)\n logRaw('')\n for (const rec of r.recipients) {\n const icon = rec.signed ? chalk.green('✓') : chalk.yellow('○')\n const time = rec.signed_at ? formatDate(rec.signed_at) : chalk.dim('pending')\n logRaw(` ${icon} ${rec.email} — ${time}`)\n }\n logRaw('')\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {a}from'./chunk-ON3YIMVG.js';import'./chunk-6TS5Y27A.js';import {e}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {g as g$1,h}from'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.js';import c from'fs';import g from'path';import i from'chalk';async function p(f){let e$1=g.resolve(f);c.existsSync(e$1)||(console.error(`File not found: ${e$1}`),process.exit(1));let n=a("Verifying signatures...");n.start();let m=c.readFileSync(e$1),r=await e("/api/v1/sign/verify",{content:m.toString("base64"),filename:g.basename(e$1)});n.stop(),r.valid?g$1(i.green("All signatures valid \u2713")):h(i.red("Document has been modified or signatures are invalid"));for(let o of r.signatures||[]){let d=o.valid?i.green("\u2713"):i.red("\u2717");console.log(` ${d} ${o.email} \u2014 ${o.signed_at||"unknown"}`);}}export{p as default};//# sourceMappingURL=sign-verify-I6YPHFUW.js.map
2
+ //# sourceMappingURL=sign-verify-I6YPHFUW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/sign/sign-verify.ts"],"names":["signVerify","file","filePath","path","fs","spinner","createSpinner","content","result","apiPost","logSuccess","chalk","logError","sig","icon"],"mappings":"gSAOA,eAAOA,CAAAA,CAAkCC,CAAAA,CAA6B,CACpE,IAAMC,GAAAA,CAAWC,CAAAA,CAAK,OAAA,CAAQF,CAAI,CAAA,CAC7BG,CAAAA,CAAG,UAAA,CAAWF,GAAQ,CAAA,GACzB,OAAA,CAAQ,KAAA,CAAM,CAAA,gBAAA,EAAmBA,GAAQ,CAAA,CAAE,EAC3C,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,CAAA,CAGhB,IAAMG,CAAAA,CAAUC,EAAc,yBAAyB,CAAA,CACvDD,CAAAA,CAAQ,KAAA,EAAM,CAEd,IAAME,EAAUH,CAAAA,CAAG,YAAA,CAAaF,GAAQ,CAAA,CAClCM,CAAAA,CAAS,MAAMC,CAAAA,CACnB,qBAAA,CACA,CAAE,OAAA,CAASF,CAAAA,CAAQ,QAAA,CAAS,QAAQ,CAAA,CAAG,SAAUJ,CAAAA,CAAK,QAAA,CAASD,GAAQ,CAAE,CAC3E,CAAA,CAEAG,EAAQ,IAAA,EAAK,CACTG,CAAAA,CAAO,KAAA,CACTE,GAAAA,CAAWC,CAAAA,CAAM,MAAM,6BAAwB,CAAC,CAAA,CAEhDC,CAAAA,CAASD,CAAAA,CAAM,GAAA,CAAI,sDAAsD,CAAC,CAAA,CAG5E,IAAA,IAAWE,CAAAA,IAAOL,CAAAA,CAAO,UAAA,EAAc,GAAI,CACzC,IAAMM,CAAAA,CAAOD,CAAAA,CAAI,KAAA,CAAQF,CAAAA,CAAM,MAAM,QAAG,CAAA,CAAIA,CAAAA,CAAM,GAAA,CAAI,QAAG,CAAA,CACzD,QAAQ,GAAA,CAAI,CAAA,EAAA,EAAKG,CAAI,CAAA,CAAA,EAAID,CAAAA,CAAI,KAAK,CAAA,QAAA,EAAMA,CAAAA,CAAI,SAAA,EAAa,SAAS,CAAA,CAAE,EACtE,CACF","file":"sign-verify-I6YPHFUW.js","sourcesContent":["import fs from 'node:fs'\nimport path from 'node:path'\nimport { apiPost } from '../../lib/api/client.js'\nimport { createSpinner } from '../../lib/output/spinner.js'\nimport { logSuccess, logError, logJSON } from '../../lib/output/logger.js'\nimport chalk from 'chalk'\n\nexport default async function signVerify(file: string): Promise<void> {\n const filePath = path.resolve(file)\n if (!fs.existsSync(filePath)) {\n console.error(`File not found: ${filePath}`)\n process.exit(1)\n }\n\n const spinner = createSpinner('Verifying signatures...')\n spinner.start()\n\n const content = fs.readFileSync(filePath)\n const result = await apiPost<{ valid: boolean; signatures: { email: string; valid: boolean; signed_at: string }[] }>(\n '/api/v1/sign/verify',\n { content: content.toString('base64'), filename: path.basename(filePath) },\n )\n\n spinner.stop()\n if (result.valid) {\n logSuccess(chalk.green('All signatures valid ✓'))\n } else {\n logError(chalk.red('Document has been modified or signatures are invalid'))\n }\n\n for (const sig of result.signatures || []) {\n const icon = sig.valid ? chalk.green('✓') : chalk.red('✗')\n console.log(` ${icon} ${sig.email} — ${sig.signed_at || 'unknown'}`)\n }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {d}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import {b}from'./chunk-THMWE2I6.js';import {f,m,l}from'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.js';import r from'chalk';async function c(s){let t=(await d(`/api/v1/sites/${s}/analytics`,{authenticated:true})).analytics;if(f()){m(t);return}if(l(""),l(r.bold(` Traffic: ${s}`)),l(r.dim(" \u2500\u2500\u2500".repeat(10))),l(` ${r.bold("Total Views:")} ${t.total_views}`),l(` ${r.bold("Unique Visitors:")} ${t.unique_visitors}`),l(""),t.top_pages?.length){l(r.bold(" Top Pages")),l(r.dim(" \u2500\u2500\u2500".repeat(8)));let a=t.top_pages.map(i=>({path:i.path,views:String(i.views)}));l(b(a,[{key:"path",label:"Page"},{key:"views",label:"Views"}]));}if(t.top_referrers?.length){l(r.bold(" Top Referrers")),l(r.dim(" \u2500\u2500\u2500".repeat(8)));let a=t.top_referrers.map(i=>({referrer:i.referrer||"(direct)",count:String(i.count)}));l(b(a,[{key:"referrer",label:"Referrer"},{key:"count",label:"Visits"}]));}l("");}export{c as default};//# sourceMappingURL=sites-analytics-JMW6DAC3.js.map
2
+ //# sourceMappingURL=sites-analytics-JMW6DAC3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/sites/sites-analytics.ts"],"names":["sitesAnalytics","slug","a","apiGet","isJsonMode","logJSON","logRaw","chalk","rows","p","renderCompactTable","r"],"mappings":"6LAcA,eAAOA,CAAAA,CAAsCC,EAA6B,CAExE,IAAMC,GADO,MAAMC,CAAAA,CAAqC,iBAAiBF,CAAI,CAAA,UAAA,CAAA,CAAc,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,EACnG,SAAA,CAEf,GAAIG,CAAAA,EAAW,CAAG,CAChBC,CAAAA,CAAQH,CAAC,EACT,MACF,CASA,GAPAI,CAAAA,CAAO,EAAE,EACTA,CAAAA,CAAOC,CAAAA,CAAM,KAAK,CAAA,WAAA,EAAcN,CAAI,EAAE,CAAC,CAAA,CACvCK,EAAOC,CAAAA,CAAM,GAAA,CAAI,uBAAQ,MAAA,CAAO,EAAE,CAAC,CAAC,CAAA,CACpCD,EAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,KAAK,cAAc,CAAC,OAAOL,CAAAA,CAAE,WAAW,EAAE,CAAA,CAC5DI,CAAAA,CAAO,KAAKC,CAAAA,CAAM,IAAA,CAAK,kBAAkB,CAAC,CAAA,CAAA,EAAIL,EAAE,eAAe,CAAA,CAAE,EACjEI,CAAAA,CAAO,EAAE,EAELJ,CAAAA,CAAE,SAAA,EAAW,OAAQ,CACvBI,CAAAA,CAAOC,EAAM,IAAA,CAAK,aAAa,CAAC,CAAA,CAChCD,CAAAA,CAAOC,EAAM,GAAA,CAAI,sBAAA,CAAQ,OAAO,CAAC,CAAC,CAAC,CAAA,CACnC,IAAMC,CAAAA,CAAON,EAAE,SAAA,CAAU,GAAA,CAAIO,IAAM,CAAE,IAAA,CAAMA,EAAE,IAAA,CAAM,KAAA,CAAO,OAAOA,CAAAA,CAAE,KAAK,CAAE,CAAA,CAAE,CAAA,CAC5EH,EAAOI,CAAAA,CAAmBF,CAAAA,CAAM,CAC9B,CAAE,GAAA,CAAK,OAAQ,KAAA,CAAO,MAAO,EAC7B,CAAE,GAAA,CAAK,QAAS,KAAA,CAAO,OAAQ,CACjC,CAAC,CAAC,EACJ,CAEA,GAAIN,EAAE,aAAA,EAAe,MAAA,CAAQ,CAC3BI,CAAAA,CAAOC,CAAAA,CAAM,KAAK,iBAAiB,CAAC,EACpCD,CAAAA,CAAOC,CAAAA,CAAM,IAAI,sBAAA,CAAQ,MAAA,CAAO,CAAC,CAAC,CAAC,EACnC,IAAMC,CAAAA,CAAON,EAAE,aAAA,CAAc,GAAA,CAAIS,IAAM,CAAE,QAAA,CAAUA,EAAE,QAAA,EAAY,UAAA,CAAY,MAAO,MAAA,CAAOA,CAAAA,CAAE,KAAK,CAAE,CAAA,CAAE,EACtGL,CAAAA,CAAOI,CAAAA,CAAmBF,EAAM,CAC9B,CAAE,IAAK,UAAA,CAAY,KAAA,CAAO,UAAW,CAAA,CACrC,CAAE,IAAK,OAAA,CAAS,KAAA,CAAO,QAAS,CAClC,CAAC,CAAC,EACJ,CACAF,CAAAA,CAAO,EAAE,EACX","file":"sites-analytics-JMW6DAC3.js","sourcesContent":["import { apiGet } from '../../lib/api/client.js'\nimport { logRaw, logJSON } from '../../lib/output/logger.js'\nimport { isJsonMode } from '../../lib/output/logger.js'\nimport chalk from 'chalk'\nimport { renderCompactTable } from '../../lib/output/table.js'\n\ninterface SiteAnalytics {\n total_views: number\n unique_visitors: number\n top_pages: { path: string; views: number }[]\n top_referrers: { referrer: string; count: number }[]\n daily_breakdown: { date: string; views: number }[]\n}\n\nexport default async function sitesAnalytics(slug: string): Promise<void> {\n const data = await apiGet<{ analytics: SiteAnalytics }>(`/api/v1/sites/${slug}/analytics`, { authenticated: true })\n const a = data.analytics\n\n if (isJsonMode()) {\n logJSON(a)\n return\n }\n\n logRaw('')\n logRaw(chalk.bold(` Traffic: ${slug}`))\n logRaw(chalk.dim(' ───'.repeat(10)))\n logRaw(` ${chalk.bold('Total Views:')} ${a.total_views}`)\n logRaw(` ${chalk.bold('Unique Visitors:')} ${a.unique_visitors}`)\n logRaw('')\n\n if (a.top_pages?.length) {\n logRaw(chalk.bold(' Top Pages'))\n logRaw(chalk.dim(' ───'.repeat(8)))\n const rows = a.top_pages.map(p => ({ path: p.path, views: String(p.views) }))\n logRaw(renderCompactTable(rows, [\n { key: 'path', label: 'Page' },\n { key: 'views', label: 'Views' },\n ]))\n }\n\n if (a.top_referrers?.length) {\n logRaw(chalk.bold(' Top Referrers'))\n logRaw(chalk.dim(' ───'.repeat(8)))\n const rows = a.top_referrers.map(r => ({ referrer: r.referrer || '(direct)', count: String(r.count) }))\n logRaw(renderCompactTable(rows, [\n { key: 'referrer', label: 'Referrer' },\n { key: 'count', label: 'Visits' },\n ]))\n }\n logRaw('')\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {a}from'./chunk-ON3YIMVG.js';import'./chunk-6TS5Y27A.js';import {g}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {g as g$1}from'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.js';import m from'inquirer';async function s(e){let{confirm:a$1}=await m.prompt([{type:"input",name:"confirm",message:`Type "${e}" to permanently delete this site and all its files:`,validate:o=>o===e?true:"Type the exact slug to confirm"}]);if(a$1!==e)return;let t=a(`Permanently deleting ${e}...`);t.start(),await g(`/api/v1/sites/${e}`,{authenticated:true}),t.succeed(),g$1(`Site ${e} and all files permanently deleted`);}export{s as default};//# sourceMappingURL=sites-delete-M4DJ3GXV.js.map
2
+ //# sourceMappingURL=sites-delete-M4DJ3GXV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/sites/sites-delete.ts"],"names":["sitesDelete","slug","confirm","inquirer","v","spinner","createSpinner","apiDelete","logSuccess"],"mappings":"2PAKA,eAAOA,CAAAA,CAAmCC,CAAAA,CAA6B,CACrE,GAAM,CAAE,OAAA,CAAAC,GAAQ,CAAA,CAAI,MAAMC,EAAS,MAAA,CAAO,CAAC,CACzC,IAAA,CAAM,OAAA,CACN,IAAA,CAAM,SAAA,CACN,OAAA,CAAS,CAAA,MAAA,EAASF,CAAI,CAAA,oDAAA,CAAA,CACtB,QAAA,CAAWG,CAAAA,EAAcA,CAAAA,GAAMH,CAAAA,CAAO,IAAA,CAAO,gCAC/C,CAAC,CAAC,CAAA,CACF,GAAIC,GAAAA,GAAYD,CAAAA,CAAM,OAEtB,IAAMI,CAAAA,CAAUC,CAAAA,CAAc,CAAA,qBAAA,EAAwBL,CAAI,CAAA,GAAA,CAAK,CAAA,CAC/DI,CAAAA,CAAQ,KAAA,GACR,MAAME,CAAAA,CAAU,CAAA,cAAA,EAAiBN,CAAI,CAAA,CAAA,CAAI,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAChEI,CAAAA,CAAQ,OAAA,EAAQ,CAChBG,GAAAA,CAAW,CAAA,KAAA,EAAQP,CAAI,oCAAoC,EAC7D","file":"sites-delete-M4DJ3GXV.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 sitesDelete(slug: string): Promise<void> {\n const { confirm } = await inquirer.prompt([{\n type: 'input',\n name: 'confirm',\n message: `Type \"${slug}\" to permanently delete this site and all its files:`,\n validate: (v: string) => v === slug ? true : 'Type the exact slug to confirm',\n }])\n if (confirm !== slug) return\n\n const spinner = createSpinner(`Permanently deleting ${slug}...`)\n spinner.start()\n await apiDelete(`/api/v1/sites/${slug}`, { authenticated: true })\n spinner.succeed()\n logSuccess(`Site ${slug} and all files permanently deleted`)\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {d}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import {a as a$1}from'./chunk-THMWE2I6.js';import {a,b}from'./chunk-G4JU7IUC.js';import'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.js';import t from'chalk';async function y(l){let o=((await d(`/api/v1/sites/${l}/deploys`,{authenticated:true})).deploys||[]).map(e=>({id:t.dim(e.id.slice(0,8)),date:b(e.created_at),files:String(e.file_count),size:a(e.total_size),by:e.triggered_by,status:e.status==="success"?t.green("\u25CF"):e.status==="failed"?t.red("\u25CF"):t.yellow("\u25CB")}));console.log(a$1(o,[{key:"id",label:"Deploy"},{key:"date",label:"Date"},{key:"files",label:"Files"},{key:"size",label:"Size"},{key:"by",label:"Triggered By"},{key:"status",label:""}]));}export{y as default};//# sourceMappingURL=sites-deploys-2HBSXQA4.js.map
2
+ //# sourceMappingURL=sites-deploys-2HBSXQA4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/sites/sites-deploys.ts"],"names":["sitesDeploys","slug","rows","apiGet","d","chalk","formatDate","formatBytes","renderTable"],"mappings":"8NAcA,eAAOA,CAAAA,CAAoCC,CAAAA,CAA6B,CAEtE,IAAMC,CAAAA,CAAAA,CAAAA,CADO,MAAMC,CAAAA,CAAmC,CAAA,cAAA,EAAiBF,CAAI,CAAA,QAAA,CAAA,CAAY,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,EAC3F,OAAA,EAAW,EAAC,EAAG,GAAA,CAAIG,CAAAA,GAAM,CAC1C,EAAA,CAAIC,CAAAA,CAAM,GAAA,CAAID,CAAAA,CAAE,GAAG,KAAA,CAAM,CAAA,CAAG,CAAC,CAAC,CAAA,CAC9B,IAAA,CAAME,CAAAA,CAAWF,CAAAA,CAAE,UAAU,CAAA,CAC7B,KAAA,CAAO,MAAA,CAAOA,CAAAA,CAAE,UAAU,EAC1B,IAAA,CAAMG,CAAAA,CAAYH,CAAAA,CAAE,UAAU,CAAA,CAC9B,EAAA,CAAIA,CAAAA,CAAE,YAAA,CACN,MAAA,CAAQA,CAAAA,CAAE,MAAA,GAAW,SAAA,CAAYC,CAAAA,CAAM,KAAA,CAAM,QAAG,CAAA,CAAID,CAAAA,CAAE,MAAA,GAAW,QAAA,CAAWC,CAAAA,CAAM,GAAA,CAAI,QAAG,CAAA,CAAIA,CAAAA,CAAM,MAAA,CAAO,QAAG,CAC/G,CAAA,CAAE,CAAA,CACF,QAAQ,GAAA,CAAIG,GAAAA,CAAYN,CAAAA,CAAM,CAC5B,CAAE,GAAA,CAAK,IAAA,CAAM,KAAA,CAAO,QAAS,CAAA,CAC7B,CAAE,GAAA,CAAK,MAAA,CAAQ,KAAA,CAAO,MAAO,CAAA,CAC7B,CAAE,GAAA,CAAK,OAAA,CAAS,KAAA,CAAO,OAAQ,CAAA,CAC/B,CAAE,GAAA,CAAK,MAAA,CAAQ,KAAA,CAAO,MAAO,CAAA,CAC7B,CAAE,IAAK,IAAA,CAAM,KAAA,CAAO,cAAe,CAAA,CACnC,CAAE,GAAA,CAAK,QAAA,CAAU,KAAA,CAAO,EAAG,CAC7B,CAAC,CAAC,EACJ","file":"sites-deploys-2HBSXQA4.js","sourcesContent":["import { apiGet } from '../../lib/api/client.js'\nimport { renderTable } from '../../lib/output/table.js'\nimport { formatDate, formatBytes } 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 sitesDeploys(slug: string): Promise<void> {\n const data = await apiGet<{ deploys: DeployEntry[] }>(`/api/v1/sites/${slug}/deploys`, { authenticated: true })\n const rows = (data.deploys || []).map(d => ({\n id: chalk.dim(d.id.slice(0, 8)),\n date: formatDate(d.created_at),\n files: String(d.file_count),\n size: formatBytes(d.total_size),\n by: d.triggered_by,\n status: d.status === 'success' ? chalk.green('●') : d.status === 'failed' ? chalk.red('●') : chalk.yellow('○'),\n }))\n console.log(renderTable(rows, [\n { key: 'id', label: 'Deploy' },\n { key: 'date', label: 'Date' },\n { key: 'files', label: 'Files' },\n { key: 'size', label: 'Size' },\n { key: 'by', label: 'Triggered By' },\n { key: 'status', label: '' },\n ]))\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {d}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import {b,a}from'./chunk-G4JU7IUC.js';import {f,m,l}from'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.js';import t from'chalk';async function u(n){let i=(await d(`/api/v1/sites/${n}`,{authenticated:true})).site;if(f()){m(i);return}l(""),l(` ${t.bold(i.slug)}`),l(` ${t.dim(i.url)}`),l(`${t.dim(" \u2500\u2500\u2500".repeat(10))}`),l(` ${t.bold("Status:")} ${i.status==="active"?t.green("\u25CF active"):t.yellow("\u25CB "+i.status)}`),l(` ${t.bold("Visibility:")} ${i.visibility==="public"?t.green("public"):t.yellow("private")}`),l(` ${t.bold("Created:")} ${b(i.created_at)}`),l(` ${t.bold("Last Deploy:")} ${i.last_deploy?b(i.last_deploy):t.dim("never")}`),l(` ${t.bold("Deploys:")} ${i.deploy_count}`),l(` ${t.bold("Files:")} ${i.file_count} (${a(i.total_size)})`),l(` ${t.bold("Visitors:")} ${i.visitor_count}`),l("");}export{u as default};//# sourceMappingURL=sites-info-CIDGRZRJ.js.map
2
+ //# sourceMappingURL=sites-info-CIDGRZRJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/sites/sites-info.ts"],"names":["sitesInfo","slug","site","apiGet","isJsonMode","logJSON","logRaw","chalk","formatDate","formatBytes"],"mappings":"+LAmBA,eAAOA,EAAiCC,CAAAA,CAA6B,CAEnE,IAAMC,CAAAA,CAAAA,CADO,MAAMC,CAAAA,CAA6B,CAAA,cAAA,EAAiBF,CAAI,CAAA,CAAA,CAAI,CAAE,cAAe,IAAK,CAAC,GAC9E,IAAA,CAElB,GAAIG,CAAAA,EAAW,CAAG,CAChBC,CAAAA,CAAQH,CAAI,EACZ,MACF,CAEAI,EAAO,EAAE,CAAA,CACTA,CAAAA,CAAO,CAAA,EAAA,EAAKC,EAAM,IAAA,CAAKL,CAAAA,CAAK,IAAI,CAAC,CAAA,CAAE,EACnCI,CAAAA,CAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,GAAA,CAAIL,EAAK,GAAG,CAAC,EAAE,CAAA,CACjCI,CAAAA,CAAO,GAAGC,CAAAA,CAAM,GAAA,CAAI,sBAAA,CAAQ,MAAA,CAAO,EAAE,CAAC,CAAC,EAAE,CAAA,CACzCD,CAAAA,CAAO,KAAKC,CAAAA,CAAM,IAAA,CAAK,SAAS,CAAC,SAASL,CAAAA,CAAK,MAAA,GAAW,SAAWK,CAAAA,CAAM,KAAA,CAAM,eAAU,CAAA,CAAIA,CAAAA,CAAM,OAAO,SAAA,CAAOL,CAAAA,CAAK,MAAM,CAAC,CAAA,CAAE,EACjII,CAAAA,CAAO,CAAA,EAAA,EAAKC,EAAM,IAAA,CAAK,aAAa,CAAC,CAAA,GAAA,EAAML,EAAK,UAAA,GAAe,QAAA,CAAWK,EAAM,KAAA,CAAM,QAAQ,EAAIA,CAAAA,CAAM,MAAA,CAAO,SAAS,CAAC,EAAE,CAAA,CAC3HD,CAAAA,CAAO,KAAKC,CAAAA,CAAM,IAAA,CAAK,UAAU,CAAC,CAAA,MAAA,EAASC,CAAAA,CAAWN,CAAAA,CAAK,UAAU,CAAC,CAAA,CAAE,EACxEI,CAAAA,CAAO,CAAA,EAAA,EAAKC,EAAM,IAAA,CAAK,cAAc,CAAC,CAAA,EAAA,EAAKL,EAAK,WAAA,CAAcM,CAAAA,CAAWN,EAAK,WAAW,CAAA,CAAIK,EAAM,GAAA,CAAI,OAAO,CAAC,CAAA,CAAE,EACjHD,CAAAA,CAAO,CAAA,EAAA,EAAKC,EAAM,IAAA,CAAK,UAAU,CAAC,CAAA,MAAA,EAASL,CAAAA,CAAK,YAAY,CAAA,CAAE,EAC9DI,CAAAA,CAAO,CAAA,EAAA,EAAKC,EAAM,IAAA,CAAK,QAAQ,CAAC,CAAA,QAAA,EAAWL,CAAAA,CAAK,UAAU,CAAA,EAAA,EAAKO,EAAYP,CAAAA,CAAK,UAAU,CAAC,CAAA,CAAA,CAAG,CAAA,CAC9FI,EAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,KAAK,WAAW,CAAC,QAAQL,CAAAA,CAAK,aAAa,EAAE,CAAA,CAC/DI,CAAAA,CAAO,EAAE,EACX","file":"sites-info-CIDGRZRJ.js","sourcesContent":["import { apiGet } from '../../lib/api/client.js'\nimport { logJSON, logRaw } from '../../lib/output/logger.js'\nimport { isJsonMode } from '../../lib/output/logger.js'\nimport { formatBytes, formatDate } from '../../lib/utils/format.js'\nimport chalk from 'chalk'\n\ninterface SiteDetail {\n slug: string\n url: string\n visibility: 'public' | 'private'\n created_at: string\n last_deploy: string | null\n deploy_count: number\n file_count: number\n total_size: number\n visitor_count: number\n status: string\n}\n\nexport default async function sitesInfo(slug: string): Promise<void> {\n const data = await apiGet<{ site: SiteDetail }>(`/api/v1/sites/${slug}`, { authenticated: true })\n const site = data.site\n\n if (isJsonMode()) {\n logJSON(site)\n return\n }\n\n logRaw('')\n logRaw(` ${chalk.bold(site.slug)}`)\n logRaw(` ${chalk.dim(site.url)}`)\n logRaw(`${chalk.dim(' ───'.repeat(10))}`)\n logRaw(` ${chalk.bold('Status:')} ${site.status === 'active' ? chalk.green('● active') : chalk.yellow('○ ' + site.status)}`)\n logRaw(` ${chalk.bold('Visibility:')} ${site.visibility === 'public' ? chalk.green('public') : chalk.yellow('private')}`)\n logRaw(` ${chalk.bold('Created:')} ${formatDate(site.created_at)}`)\n logRaw(` ${chalk.bold('Last Deploy:')} ${site.last_deploy ? formatDate(site.last_deploy) : chalk.dim('never')}`)\n logRaw(` ${chalk.bold('Deploys:')} ${site.deploy_count}`)\n logRaw(` ${chalk.bold('Files:')} ${site.file_count} (${formatBytes(site.total_size)})`)\n logRaw(` ${chalk.bold('Visitors:')} ${site.visitor_count}`)\n logRaw('')\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {d}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import {a}from'./chunk-THMWE2I6.js';import {c}from'./chunk-G4JU7IUC.js';import'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.js';import e from'chalk';async function o(){let r=((await d("/api/v1/sites",{authenticated:true})).sites||[]).map(i=>({slug:e.hex("#4FC3F7")(i.slug),url:e.dim(i.url),visibility:i.visibility==="public"?e.green("public"):e.yellow("private"),deployed:i.last_deploy?c(i.last_deploy):e.dim("never"),files:String(i.file_count??"-"),visitors:String(i.visitors??"-")}));console.log(a(r,[{key:"slug",label:"Site"},{key:"url",label:"URL"},{key:"visibility",label:"Visibility"},{key:"deployed",label:"Last Deploy"},{key:"files",label:"Files"},{key:"visitors",label:"Visitors"}]));}export{o as default};//# sourceMappingURL=sites-list-L56B32PU.js.map
2
+ //# sourceMappingURL=sites-list-L56B32PU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/sites/sites-list.ts"],"names":["sitesList","rows","apiGet","s","chalk","formatRelative","renderTable"],"mappings":"qNAcA,eAAOA,CAAAA,EAAkD,CAEvD,IAAMC,CAAAA,CAAAA,CAAAA,CADO,MAAMC,CAAAA,CAA8B,eAAA,CAAiB,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,EACtE,KAAA,EAAS,EAAC,EAAG,GAAA,CAAIC,CAAAA,GAAM,CACxC,IAAA,CAAMC,CAAAA,CAAM,GAAA,CAAI,SAAS,CAAA,CAAED,CAAAA,CAAE,IAAI,CAAA,CACjC,GAAA,CAAKC,CAAAA,CAAM,GAAA,CAAID,CAAAA,CAAE,GAAG,CAAA,CACpB,UAAA,CAAYA,CAAAA,CAAE,UAAA,GAAe,QAAA,CAAWC,CAAAA,CAAM,KAAA,CAAM,QAAQ,EAAIA,CAAAA,CAAM,MAAA,CAAO,SAAS,CAAA,CACtF,QAAA,CAAUD,CAAAA,CAAE,WAAA,CAAcE,CAAAA,CAAeF,CAAAA,CAAE,WAAW,CAAA,CAAIC,CAAAA,CAAM,GAAA,CAAI,OAAO,EAC3E,KAAA,CAAO,MAAA,CAAOD,CAAAA,CAAE,UAAA,EAAc,GAAG,CAAA,CACjC,QAAA,CAAU,MAAA,CAAOA,CAAAA,CAAE,QAAA,EAAY,GAAG,CACpC,CAAA,CAAE,CAAA,CACF,QAAQ,GAAA,CAAIG,CAAAA,CAAYL,CAAAA,CAAM,CAC5B,CAAE,GAAA,CAAK,MAAA,CAAQ,KAAA,CAAO,MAAO,CAAA,CAC7B,CAAE,GAAA,CAAK,KAAA,CAAO,KAAA,CAAO,KAAM,CAAA,CAC3B,CAAE,GAAA,CAAK,YAAA,CAAc,KAAA,CAAO,YAAa,CAAA,CACzC,CAAE,GAAA,CAAK,UAAA,CAAY,KAAA,CAAO,aAAc,CAAA,CACxC,CAAE,IAAK,OAAA,CAAS,KAAA,CAAO,OAAQ,CAAA,CAC/B,CAAE,GAAA,CAAK,UAAA,CAAY,KAAA,CAAO,UAAW,CACvC,CAAC,CAAC,EACJ","file":"sites-list-L56B32PU.js","sourcesContent":["import { apiGet } from '../../lib/api/client.js'\nimport { renderTable } from '../../lib/output/table.js'\nimport { formatRelative } from '../../lib/utils/format.js'\nimport chalk from 'chalk'\n\ninterface SiteInfo {\n slug: string\n url: string\n visibility: 'public' | 'private'\n last_deploy: string\n file_count: number\n visitors: number\n}\n\nexport default async function sitesList(): Promise<void> {\n const data = await apiGet<{ sites: SiteInfo[] }>('/api/v1/sites', { authenticated: true })\n const rows = (data.sites || []).map(s => ({\n slug: chalk.hex('#4FC3F7')(s.slug),\n url: chalk.dim(s.url),\n visibility: s.visibility === 'public' ? chalk.green('public') : chalk.yellow('private'),\n deployed: s.last_deploy ? formatRelative(s.last_deploy) : chalk.dim('never'),\n files: String(s.file_count ?? '-'),\n visitors: String(s.visitors ?? '-'),\n }))\n console.log(renderTable(rows, [\n { key: 'slug', label: 'Site' },\n { key: 'url', label: 'URL' },\n { key: 'visibility', label: 'Visibility' },\n { key: 'deployed', label: 'Last Deploy' },\n { key: 'files', label: 'Files' },\n { key: 'visitors', label: 'Visitors' },\n ]))\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import {a}from'./chunk-NDB6KXYI.js';import {m}from'./chunk-C5KZCYJ4.js';import {WebSocket}from'ws';import o from'chalk';async function u(n){let i=await m();i||(console.error("Not authenticated"),process.exit(1));let m$1=a().replace(/^http/,"ws"),s=new WebSocket(`${m$1}/api/v1/sites/${n}/logs/stream`,{headers:{Authorization:`Bearer ${i.access_token}`}});console.log(o.dim(`Streaming live logs for ${n}... (Ctrl+C to stop)`)),console.log(""),s.on("message",t=>{try{let e=JSON.parse(t.toString()),l=o.dim(new Date(e.timestamp).toLocaleTimeString()),p=e.method?.padEnd(6)||"",r=e.status_code,d=r>=400?o.red:r>=300?o.yellow:o.green,g=e.path||"",$=o.dim(e.ip||""),f=e.duration_ms?o.dim(`${e.duration_ms}ms`):"";console.log(`${l} ${d(r)} ${p} ${g} ${$} ${f}`);}catch{console.log(t.toString());}}),s.on("error",t=>{console.error(o.red(`WebSocket error: ${t.message}`)),process.exit(1);}),s.on("close",()=>{console.log(o.dim(`
2
+ Connection closed`)),process.exit(0);}),process.on("SIGINT",()=>{s.close(),process.exit(0);});}export{u as default};//# sourceMappingURL=sites-logs-NMNQXOKI.js.map
3
+ //# sourceMappingURL=sites-logs-NMNQXOKI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/sites/sites-logs.ts"],"names":["sitesLogs","slug","session","loadSession","apiBase","getApiBase","ws","WebSocket","chalk","data","entry","timestamp","method","status","statusColor","path","ip","duration","err"],"mappings":"wHAKA,eAAOA,EAAiCC,CAAAA,CAA6B,CACnE,IAAMC,CAAAA,CAAU,MAAMC,GAAY,CAC7BD,CAAAA,GACH,QAAQ,KAAA,CAAM,mBAAmB,EACjC,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,CAAA,CAGhB,IAAME,IAAUC,CAAAA,EAAW,CAAE,QAAQ,OAAA,CAAS,IAAI,EAC5CC,CAAAA,CAAK,IAAIC,UAAU,CAAA,EAAGH,GAAO,iBAAiBH,CAAI,CAAA,YAAA,CAAA,CAAgB,CACtE,OAAA,CAAS,CACP,cAAe,CAAA,OAAA,EAAUC,CAAAA,CAAQ,YAAY,CAAA,CAC/C,CACF,CAAC,CAAA,CAED,OAAA,CAAQ,IAAIM,CAAAA,CAAM,GAAA,CAAI,2BAA2BP,CAAI,CAAA,oBAAA,CAAsB,CAAC,CAAA,CAC5E,OAAA,CAAQ,IAAI,EAAE,CAAA,CAEdK,EAAG,EAAA,CAAG,SAAA,CAAYG,GAAiB,CACjC,GAAI,CACF,IAAMC,CAAAA,CAAQ,KAAK,KAAA,CAAMD,CAAAA,CAAK,UAAU,CAAA,CAClCE,EAAYH,CAAAA,CAAM,GAAA,CAAI,IAAI,IAAA,CAAKE,CAAAA,CAAM,SAAS,CAAA,CAAE,kBAAA,EAAoB,CAAA,CACpEE,CAAAA,CAASF,CAAAA,CAAM,MAAA,EAAQ,MAAA,CAAO,CAAC,GAAK,EAAA,CACpCG,CAAAA,CAASH,EAAM,WAAA,CACfI,CAAAA,CAAcD,GAAU,GAAA,CAAML,CAAAA,CAAM,IAAMK,CAAAA,EAAU,GAAA,CAAML,EAAM,MAAA,CAASA,CAAAA,CAAM,MAC/EO,CAAAA,CAAOL,CAAAA,CAAM,MAAQ,EAAA,CACrBM,CAAAA,CAAKR,EAAM,GAAA,CAAIE,CAAAA,CAAM,IAAM,EAAE,CAAA,CAC7BO,EAAWP,CAAAA,CAAM,WAAA,CAAcF,EAAM,GAAA,CAAI,CAAA,EAAGE,EAAM,WAAW,CAAA,EAAA,CAAI,EAAI,EAAA,CAC3E,OAAA,CAAQ,IAAI,CAAA,EAAGC,CAAS,IAAIG,CAAAA,CAAYD,CAAM,CAAC,CAAA,CAAA,EAAID,CAAM,CAAA,CAAA,EAAIG,CAAI,CAAA,CAAA,EAAIC,CAAE,IAAIC,CAAQ,CAAA,CAAE,EACvF,CAAA,KAAQ,CACN,QAAQ,GAAA,CAAIR,CAAAA,CAAK,UAAU,EAC7B,CACF,CAAC,CAAA,CAEDH,EAAG,EAAA,CAAG,OAAA,CAAUY,GAAe,CAC7B,OAAA,CAAQ,MAAMV,CAAAA,CAAM,GAAA,CAAI,oBAAoBU,CAAAA,CAAI,OAAO,EAAE,CAAC,CAAA,CAC1D,QAAQ,IAAA,CAAK,CAAC,EAChB,CAAC,CAAA,CAEDZ,EAAG,EAAA,CAAG,OAAA,CAAS,IAAM,CACnB,OAAA,CAAQ,GAAA,CAAIE,CAAAA,CAAM,GAAA,CAAI;AAAA,iBAAA,CAAqB,CAAC,EAC5C,OAAA,CAAQ,IAAA,CAAK,CAAC,EAChB,CAAC,EAED,OAAA,CAAQ,EAAA,CAAG,SAAU,IAAM,CACzBF,EAAG,KAAA,EAAM,CACT,QAAQ,IAAA,CAAK,CAAC,EAChB,CAAC,EACH","file":"sites-logs-NMNQXOKI.js","sourcesContent":["import { WebSocket } from 'ws'\nimport chalk from 'chalk'\nimport { loadSession } from '../../lib/auth/session.js'\nimport { getApiBase } from '../../lib/api/cert-pin.js'\n\nexport default async function sitesLogs(slug: string): Promise<void> {\n const session = await loadSession()\n if (!session) {\n console.error('Not authenticated')\n process.exit(1)\n }\n\n const apiBase = getApiBase().replace(/^http/, 'ws')\n const ws = new WebSocket(`${apiBase}/api/v1/sites/${slug}/logs/stream`, {\n headers: {\n Authorization: `Bearer ${session.access_token}`,\n },\n })\n\n console.log(chalk.dim(`Streaming live logs for ${slug}... (Ctrl+C to stop)`))\n console.log('')\n\n ws.on('message', (data: Buffer) => {\n try {\n const entry = JSON.parse(data.toString())\n const timestamp = chalk.dim(new Date(entry.timestamp).toLocaleTimeString())\n const method = entry.method?.padEnd(6) || ''\n const status = entry.status_code\n const statusColor = status >= 400 ? chalk.red : status >= 300 ? chalk.yellow : chalk.green\n const path = entry.path || ''\n const ip = chalk.dim(entry.ip || '')\n const duration = entry.duration_ms ? chalk.dim(`${entry.duration_ms}ms`) : ''\n console.log(`${timestamp} ${statusColor(status)} ${method} ${path} ${ip} ${duration}`)\n } catch {\n console.log(data.toString())\n }\n })\n\n ws.on('error', (err: Error) => {\n console.error(chalk.red(`WebSocket error: ${err.message}`))\n process.exit(1)\n })\n\n ws.on('close', () => {\n console.log(chalk.dim('\\nConnection closed'))\n process.exit(0)\n })\n\n process.on('SIGINT', () => {\n ws.close()\n process.exit(0)\n })\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import {d}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import {j}from'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.js';import a from'open';async function r(t){let i=(await d(`/api/v1/sites/${t}`,{authenticated:true})).site.url||`https://squidcloud.vercel.app/sites/${t}`;j(`Opening ${i}...`),await a(i);}
2
+ export{r as default};//# sourceMappingURL=sites-open-JOJQ5PW2.js.map
3
+ //# sourceMappingURL=sites-open-JOJQ5PW2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/sites/sites-open.ts"],"names":["sitesOpen","slug","url","apiGet","logInfo","open"],"mappings":"oJAIA,eAAOA,CAAAA,CAAiCC,CAAAA,CAA6B,CAEnE,IAAMC,CAAAA,CAAAA,CADO,MAAMC,CAAAA,CAAkC,CAAA,cAAA,EAAiBF,CAAI,GAAI,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,EACpF,IAAA,CAAK,GAAA,EAAO,CAAA,oCAAA,EAAuCA,CAAI,CAAA,CAAA,CACxEG,CAAAA,CAAQ,CAAA,QAAA,EAAWF,CAAG,CAAA,GAAA,CAAK,CAAA,CAC3B,MAAMG,CAAAA,CAAKH,CAAG,EAChB","file":"sites-open-JOJQ5PW2.js","sourcesContent":["import open from 'open'\nimport { apiGet } from '../../lib/api/client.js'\nimport { logInfo } from '../../lib/output/logger.js'\n\nexport default async function sitesOpen(slug: string): Promise<void> {\n const data = await apiGet<{ site: { url: string } }>(`/api/v1/sites/${slug}`, { authenticated: true })\n const url = data.site.url || `https://squidcloud.vercel.app/sites/${slug}`\n logInfo(`Opening ${url}...`)\n await open(url)\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {a}from'./chunk-ON3YIMVG.js';import'./chunk-6TS5Y27A.js';import {e}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {g}from'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.js';async function c(e$1){let r=a(`Purging CDN cache for ${e$1}...`);r.start(),await e(`/api/v1/sites/${e$1}/purge`,{},{authenticated:true}),r.succeed(),g(`CDN cache purged for ${e$1}`);}export{c as default};//# sourceMappingURL=sites-purge-IA2673H4.js.map
2
+ //# sourceMappingURL=sites-purge-IA2673H4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/sites/sites-purge.ts"],"names":["sitesPurge","slug","spinner","createSpinner","apiPost","logSuccess"],"mappings":"4NAIA,eAAOA,CAAAA,CAAkCC,GAAAA,CAA6B,CACpE,IAAMC,EAAUC,CAAAA,CAAc,CAAA,sBAAA,EAAyBF,GAAI,CAAA,GAAA,CAAK,CAAA,CAChEC,CAAAA,CAAQ,KAAA,EAAM,CACd,MAAME,CAAAA,CAAQ,CAAA,cAAA,EAAiBH,GAAI,CAAA,MAAA,CAAA,CAAU,EAAC,CAAG,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CACxEC,CAAAA,CAAQ,OAAA,EAAQ,CAChBG,CAAAA,CAAW,CAAA,qBAAA,EAAwBJ,GAAI,EAAE,EAC3C","file":"sites-purge-IA2673H4.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 sitesPurge(slug: string): Promise<void> {\n const spinner = createSpinner(`Purging CDN cache for ${slug}...`)\n spinner.start()\n await apiPost(`/api/v1/sites/${slug}/purge`, {}, { authenticated: true })\n spinner.succeed()\n logSuccess(`CDN cache purged for ${slug}`)\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {a}from'./chunk-ON3YIMVG.js';import'./chunk-6TS5Y27A.js';import {e}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {g}from'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.js';import s from'inquirer';async function c(t,e$1){let{confirm:a$1}=await s.prompt([{type:"input",name:"confirm",message:`Type "${t}" to confirm renaming to "${e$1}":`,validate:m=>m===t?true:"Type the exact old slug to confirm"}]);if(a$1!==t)return;let r=a(`Renaming ${t} to ${e$1}...`);r.start(),await e(`/api/v1/sites/${t}/rename`,{new_slug:e$1},{authenticated:true}),r.succeed(),g(`Site renamed from ${t} to ${e$1}`);}export{c as default};//# sourceMappingURL=sites-rename-WFSBG4ME.js.map
2
+ //# sourceMappingURL=sites-rename-WFSBG4ME.js.map
@@ -0,0 +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-WFSBG4ME.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 {a}from'./chunk-ON3YIMVG.js';import'./chunk-6TS5Y27A.js';import {d,e}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {b}from'./chunk-G4JU7IUC.js';import {l,g as g$1}from'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.js';import b$1 from'inquirer';import g from'chalk';async function u(t,d$1){let s=a("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(o.created_at)} \u2014 ${o.file_count} files \u2014 ${o.triggered_by}`,value:o.id})),{selected:f}=await b$1.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$1=a(`Rolling back ${t} to ${e$1.slice(0,8)}...`);a$1.start(),await e(`/api/v1/sites/${t}/rollback`,{deploy_id:e$1},{authenticated:true}),a$1.succeed(),g$1(`Site ${t} rolled back to deployment ${e$1.slice(0,8)}`);}export{u as default};//# sourceMappingURL=sites-rollback-REUDH4TZ.js.map
2
+ //# sourceMappingURL=sites-rollback-REUDH4TZ.js.map
@@ -0,0 +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-REUDH4TZ.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 {a as a$1}from'./chunk-ON3YIMVG.js';import'./chunk-6TS5Y27A.js';import {e}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {g}from'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.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=a$1(`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-AS4D6N3M.js.map
2
+ //# sourceMappingURL=sites-unpublish-AS4D6N3M.js.map
@@ -0,0 +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-AS4D6N3M.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 {a}from'./chunk-ON3YIMVG.js';import'./chunk-6TS5Y27A.js';import {e}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {g}from'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.js';async function c(i,e$1){let t=e$1.public?"public":e$1.private?"private":"public",o=a(`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-S3TKH6XD.js.map
2
+ //# sourceMappingURL=sites-visibility-S3TKH6XD.js.map
@@ -0,0 +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-S3TKH6XD.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 {a}from'./chunk-ON3YIMVG.js';import'./chunk-6TS5Y27A.js';import {d}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {l}from'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.js';async function i(t){let o=a(`Fetching ${t}...`);o.start();let a$1=await d(`/api/v1/storage/cat?path=${encodeURIComponent(t)}`,{authenticated:true});o.stop(),l(a$1.content);}export{i as default};//# sourceMappingURL=storage-cat-LZ7LYZAY.js.map
2
+ //# sourceMappingURL=storage-cat-LZ7LYZAY.js.map
@@ -0,0 +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-LZ7LYZAY.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 {a}from'./chunk-ON3YIMVG.js';import'./chunk-6TS5Y27A.js';import {e}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {a as a$1}from'./chunk-G4JU7IUC.js';import {f,m as m$1,g}from'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.js';async function m(){let r=a("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$1(e$1.freed_bytes)})`);}export{m as default};//# sourceMappingURL=storage-clean-S57ZHSGL.js.map
2
+ //# sourceMappingURL=storage-clean-S57ZHSGL.js.map
@@ -0,0 +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-S57ZHSGL.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 {a}from'./chunk-ON3YIMVG.js';import'./chunk-6TS5Y27A.js';import {e as e$1}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {g}from'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.js';async function e(t,i){let o=a(`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-M2BVRCIL.js.map
2
+ //# sourceMappingURL=storage-cp-M2BVRCIL.js.map
@@ -0,0 +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-M2BVRCIL.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 {a}from'./chunk-ON3YIMVG.js';import'./chunk-6TS5Y27A.js';import {d}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {l}from'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.js';import y from'fs';import c from'path';import {createHash}from'crypto';import o from'chalk';async function S(v,w){let g=a("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-ZATBMPAM.js.map
2
+ //# sourceMappingURL=storage-diff-ZATBMPAM.js.map
@@ -0,0 +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":"uTASA,eAAOA,EAAmCC,CAAAA,CAAmBC,CAAAA,CAAmC,CAC9F,IAAMC,CAAAA,CAAUC,CAAAA,CAAc,mBAAmB,CAAA,CACjDD,EAAQ,KAAA,EAAM,CAEd,IAAME,CAAAA,CAAWC,CAAAA,CAAK,OAAA,CAAQL,CAAS,CAAA,CACjCM,IAAa,IAAI,GAAA,CAEvB,SAASC,CAAAA,CAAKC,CAAAA,CAAaC,CAAAA,CAAuB,CAChD,IAAMC,EAAUC,CAAAA,CAAG,WAAA,CAAYH,CAAAA,CAAK,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CAC3D,QAAWI,CAAAA,IAASF,CAAAA,CAAS,CAC3B,IAAMG,CAAAA,CAAWR,CAAAA,CAAK,IAAA,CAAKG,CAAAA,CAAKI,EAAM,IAAI,CAAA,CACpCE,CAAAA,CAAWT,CAAAA,CAAK,SAASI,CAAAA,CAASI,CAAQ,CAAA,CAChD,GAAI,EAAAD,CAAAA,CAAM,IAAA,CAAK,UAAA,CAAW,GAAG,CAAA,EAAKA,CAAAA,CAAM,IAAA,GAAS,cAAA,CAAA,CAAA,CACjD,GAAIA,CAAAA,CAAM,WAAA,EAAY,CACpBL,CAAAA,CAAKM,CAAAA,CAAUJ,CAAO,CAAA,CAAA,KAAA,GACbG,CAAAA,CAAM,QAAO,CAAG,CACzB,IAAMG,CAAAA,CAAOC,UAAAA,CAAW,QAAQ,CAAA,CAAE,MAAA,CAAOL,EAAG,YAAA,CAAaE,CAAQ,CAAC,CAAA,CAAE,MAAA,CAAO,KAAK,CAAA,CAChFP,GAAAA,CAAW,IAAIQ,CAAAA,CAAUC,CAAI,EAC/B,CAAA,CACF,CACF,CACAR,CAAAA,CAAKH,CAAAA,CAAUA,CAAQ,CAAA,CAEvB,IAAMa,CAAAA,CAAS,MAAMC,CAAAA,CAAoD,CAAA,kCAAA,EAAqC,kBAAA,CAAmBjB,CAAU,CAAC,CAAA,CAAA,CAAI,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,CACjKkB,CAAAA,CAAc,IAAI,KAAKF,CAAAA,CAAO,KAAA,EAAS,EAAC,EAAG,IAAIG,CAAAA,EAAK,CAACA,CAAAA,CAAE,IAAA,CAAMA,EAAE,IAAI,CAAC,CAAC,CAAA,CAE3ElB,CAAAA,CAAQ,IAAA,EAAK,CAEb,IAAMmB,EAAkB,EAAC,CACnBC,CAAAA,CAAoB,EAAC,CACrBC,CAAAA,CAAqB,EAAC,CAE5B,OAAW,CAACC,CAAAA,CAAKT,CAAI,CAAA,GAAKT,GAAAA,CACnBa,CAAAA,CAAY,GAAA,CAAIK,CAAG,EAEbL,CAAAA,CAAY,GAAA,CAAIK,CAAG,CAAA,GAAMT,CAAAA,EAClCQ,CAAAA,CAAS,IAAA,CAAKC,CAAG,EAFjBH,CAAAA,CAAM,IAAA,CAAKG,CAAG,CAAA,CAKlB,IAAA,IAAWA,CAAAA,IAAOL,CAAAA,CAAY,IAAA,GACvBb,GAAAA,CAAW,GAAA,CAAIkB,CAAG,CAAA,EACrBF,CAAAA,CAAQ,IAAA,CAAKE,CAAG,CAAA,CAIpBC,EAAO,EAAE,CAAA,CACLJ,CAAAA,CAAM,MAAA,GAAW,CAAA,EAAKC,CAAAA,CAAQ,MAAA,GAAW,CAAA,EAAKC,EAAS,MAAA,GAAW,CAAA,CACpEE,CAAAA,CAAO,CAAA,EAAA,EAAKC,EAAM,KAAA,CAAM,oCAA0B,CAAC,CAAA,CAAE,GAEjDL,CAAAA,CAAM,MAAA,CAAS,CAAA,GACjBI,CAAAA,CAAOC,CAAAA,CAAM,KAAA,CAAM,CAAA,IAAA,EAAOL,CAAAA,CAAM,MAAM,CAAA,UAAA,CAAY,CAAC,CAAA,CACnDA,CAAAA,CAAM,OAAA,CAAQD,CAAAA,EAAKK,CAAAA,CAAOC,CAAAA,CAAM,MAAM,CAAA,MAAA,EAASN,CAAC,CAAA,CAAE,CAAC,CAAC,CAAA,CAAA,CAElDG,CAAAA,CAAS,MAAA,CAAS,IACpBE,CAAAA,CAAOC,CAAAA,CAAM,MAAA,CAAO,CAAA,IAAA,EAAOH,EAAS,MAAM,CAAA,SAAA,CAAW,CAAC,CAAA,CACtDA,EAAS,OAAA,CAAQH,CAAAA,EAAKK,CAAAA,CAAOC,CAAAA,CAAM,MAAA,CAAO,CAAA,MAAA,EAASN,CAAC,CAAA,CAAE,CAAC,CAAC,CAAA,CAAA,CAEtDE,CAAAA,CAAQ,MAAA,CAAS,CAAA,GACnBG,CAAAA,CAAOC,CAAAA,CAAM,GAAA,CAAI,OAAOJ,CAAAA,CAAQ,MAAM,CAAA,UAAA,CAAY,CAAC,CAAA,CACnDA,CAAAA,CAAQ,OAAA,CAAQF,CAAAA,EAAKK,EAAOC,CAAAA,CAAM,GAAA,CAAI,CAAA,MAAA,EAASN,CAAC,EAAE,CAAC,CAAC,CAAA,CAAA,CAAA,CAGxDK,CAAAA,CAAO,EAAE,EACX","file":"storage-diff-ZATBMPAM.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 {a}from'./chunk-ON3YIMVG.js';import'./chunk-6TS5Y27A.js';import'./chunk-THMWE2I6.js';import {a as a$1}from'./chunk-G4JU7IUC.js';import {g}from'./chunk-QT7R3AXE.js';import d from'fs';import r from'path';import b from'cli-progress';import v from'chalk';async function C(a$2,l){let n=l?r.resolve(l):r.resolve(".",r.basename(a$2)),e=a(`Downloading ${a$2}...`);e.start();let o=await fetch(`https://squidcloud.vercel.app/api/v1/storage/download?path=${encodeURIComponent(a$2)}`,{headers:{Authorization:`Bearer ${(await import('./session-T3DZUXHP.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.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$1(s)})`);}
2
+ export{C as default};//# sourceMappingURL=storage-download-PZEEX2Z3.js.map
3
+ //# sourceMappingURL=storage-download-PZEEX2Z3.js.map
@@ -0,0 +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-PZEEX2Z3.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 {d}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import {a,b}from'./chunk-G4JU7IUC.js';import {f,m as m$1,l}from'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.js';import e from'chalk';async function m(r){let o=(await d(`/api/v1/storage/info?path=${encodeURIComponent(r)}`,{authenticated:true})).file;if(f()){m$1(o);return}l(""),l(` ${e.bold(o.name)}`),l(e.dim(" \u2500\u2500\u2500".repeat(10))),l(` ${e.bold("Size:")} ${a(o.size)}`),l(` ${e.bold("Type:")} ${o.mime_type}`),l(` ${e.bold("Hash:")} ${e.dim(o.content_hash?.slice(0,16)||"-")}`),l(` ${e.bold("Created:")} ${b(o.created_at)}`),l(` ${e.bold("Modified:")} ${b(o.updated_at)}`),l(` ${e.bold("Tags:")} ${o.tags?.length?o.tags.join(", "):e.dim("none")}`),l(` ${e.bold("Shared:")} ${o.shared?e.green("yes"):e.dim("no")}`),l(` ${e.bold("Published:")} ${o.published?e.green("yes"):e.dim("no")}`),l(` ${e.bold("Scan:")} ${o.scan_status||e.dim("pending")}`),l("");}export{m as default};//# sourceMappingURL=storage-info-T62YZOPK.js.map
2
+ //# sourceMappingURL=storage-info-T62YZOPK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/storage/storage-info.ts"],"names":["storageInfo","path","f","apiGet","isJsonMode","logJSON","logRaw","chalk","formatBytes","formatDate"],"mappings":"sMAmBA,eAAOA,CAAAA,CAAmCC,EAA6B,CAErE,IAAMC,GADO,MAAMC,CAAAA,CAA2B,6BAA6B,kBAAA,CAAmBF,CAAI,CAAC,CAAA,CAAA,CAAI,CAAE,cAAe,IAAK,CAAC,CAAA,EAC/G,IAAA,CAEf,GAAIG,CAAAA,GAAc,CAChBC,GAAAA,CAAQH,CAAC,CAAA,CACT,MACF,CAEAI,CAAAA,CAAO,EAAE,EACTA,CAAAA,CAAO,CAAA,EAAA,EAAKC,EAAM,IAAA,CAAKL,CAAAA,CAAE,IAAI,CAAC,CAAA,CAAE,EAChCI,CAAAA,CAAOC,CAAAA,CAAM,GAAA,CAAI,sBAAA,CAAQ,MAAA,CAAO,EAAE,CAAC,CAAC,CAAA,CACpCD,EAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,KAAK,OAAO,CAAC,YAAYC,CAAAA,CAAYN,CAAAA,CAAE,IAAI,CAAC,CAAA,CAAE,EAChEI,CAAAA,CAAO,CAAA,EAAA,EAAKC,EAAM,IAAA,CAAK,OAAO,CAAC,CAAA,SAAA,EAAYL,CAAAA,CAAE,SAAS,EAAE,CAAA,CACxDI,CAAAA,CAAO,KAAKC,CAAAA,CAAM,IAAA,CAAK,OAAO,CAAC,CAAA,SAAA,EAAYA,EAAM,GAAA,CAAIL,CAAAA,CAAE,cAAc,KAAA,CAAM,CAAA,CAAG,EAAE,CAAA,EAAK,GAAG,CAAC,CAAA,CAAE,CAAA,CAC3FI,CAAAA,CAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,IAAA,CAAK,UAAU,CAAC,CAAA,MAAA,EAASE,EAAWP,CAAAA,CAAE,UAAU,CAAC,CAAA,CAAE,CAAA,CACrEI,EAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,KAAK,WAAW,CAAC,QAAQE,CAAAA,CAAWP,CAAAA,CAAE,UAAU,CAAC,CAAA,CAAE,CAAA,CACrEI,CAAAA,CAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,KAAK,OAAO,CAAC,YAAYL,CAAAA,CAAE,IAAA,EAAM,OAASA,CAAAA,CAAE,IAAA,CAAK,KAAK,IAAI,CAAA,CAAIK,EAAM,GAAA,CAAI,MAAM,CAAC,CAAA,CAAE,CAAA,CACnGD,EAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,IAAA,CAAK,SAAS,CAAC,CAAA,OAAA,EAAUL,EAAE,MAAA,CAASK,CAAAA,CAAM,MAAM,KAAK,CAAA,CAAIA,EAAM,GAAA,CAAI,IAAI,CAAC,CAAA,CAAE,CAAA,CAC5FD,EAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,KAAK,YAAY,CAAC,OAAOL,CAAAA,CAAE,SAAA,CAAYK,CAAAA,CAAM,KAAA,CAAM,KAAK,CAAA,CAAIA,EAAM,GAAA,CAAI,IAAI,CAAC,CAAA,CAAE,CAAA,CAC/FD,EAAO,CAAA,EAAA,EAAKC,CAAAA,CAAM,KAAK,OAAO,CAAC,YAAYL,CAAAA,CAAE,WAAA,EAAeK,EAAM,GAAA,CAAI,SAAS,CAAC,CAAA,CAAE,CAAA,CAClFD,CAAAA,CAAO,EAAE,EACX","file":"storage-info-T62YZOPK.js","sourcesContent":["import { apiGet } from '../../lib/api/client.js'\nimport { logJSON, logRaw } from '../../lib/output/logger.js'\nimport { isJsonMode } from '../../lib/output/logger.js'\nimport { formatBytes, formatDate } from '../../lib/utils/format.js'\nimport chalk from 'chalk'\n\ninterface FileInfo {\n name: string\n size: number\n mime_type: string\n content_hash: string\n created_at: string\n updated_at: string\n tags: string[]\n shared: boolean\n published: boolean\n scan_status: string\n}\n\nexport default async function storageInfo(path: string): Promise<void> {\n const data = await apiGet<{ file: FileInfo }>(`/api/v1/storage/info?path=${encodeURIComponent(path)}`, { authenticated: true })\n const f = data.file\n\n if (isJsonMode()) {\n logJSON(f)\n return\n }\n\n logRaw('')\n logRaw(` ${chalk.bold(f.name)}`)\n logRaw(chalk.dim(' ───'.repeat(10)))\n logRaw(` ${chalk.bold('Size:')} ${formatBytes(f.size)}`)\n logRaw(` ${chalk.bold('Type:')} ${f.mime_type}`)\n logRaw(` ${chalk.bold('Hash:')} ${chalk.dim(f.content_hash?.slice(0, 16) || '-')}`)\n logRaw(` ${chalk.bold('Created:')} ${formatDate(f.created_at)}`)\n logRaw(` ${chalk.bold('Modified:')} ${formatDate(f.updated_at)}`)\n logRaw(` ${chalk.bold('Tags:')} ${f.tags?.length ? f.tags.join(', ') : chalk.dim('none')}`)\n logRaw(` ${chalk.bold('Shared:')} ${f.shared ? chalk.green('yes') : chalk.dim('no')}`)\n logRaw(` ${chalk.bold('Published:')} ${f.published ? chalk.green('yes') : chalk.dim('no')}`)\n logRaw(` ${chalk.bold('Scan:')} ${f.scan_status || chalk.dim('pending')}`)\n logRaw('')\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {d}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import {a as a$1}from'./chunk-THMWE2I6.js';import {c,a}from'./chunk-G4JU7IUC.js';import'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.js';import t from'chalk';async function m(s,a$2){let o=((await d(`/api/v1/storage/ls?path=${encodeURIComponent(s||"")}&long=${a$2?.long||false}&recursive=${a$2?.recursive||false}`,{authenticated:true})).entries||[]).map(e=>({name:e.type==="folder"?t.hex("#4FC3F7")(e.name+"/"):e.name,type:e.type==="folder"?t.dim("dir"):e.type,size:e.type==="file"?a(e.size):t.dim("-"),mime:e.type==="file"?t.dim(e.mime_type):"",modified:e.updated_at?c(e.updated_at):"",tags:e.tags?.length?t.dim(e.tags.join(",")):""}));if(a$2?.long)console.log(a$1(o,[{key:"name",label:"Name"},{key:"type",label:"Type"},{key:"size",label:"Size"},{key:"mime",label:"MIME"},{key:"modified",label:"Modified"},{key:"tags",label:"Tags"}]));else for(let e of o)console.log(e.name);}export{m as default};//# sourceMappingURL=storage-ls-DGOI7ZXX.js.map
2
+ //# sourceMappingURL=storage-ls-DGOI7ZXX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/storage/storage-ls.ts"],"names":["storageLs","path","options","rows","apiGet","chalk","formatBytes","formatRelative","renderTable","row"],"mappings":"8NAeA,eAAOA,CAAAA,CAAiCC,CAAAA,CAAeC,IAAkE,CAIvH,IAAMC,CAAAA,CAAAA,CAAAA,CAFO,MAAMC,EAAoC,CAAA,wBAAA,EAA2B,kBAAA,CADhEH,CAAAA,EAAQ,EACoF,CAAC,CAAA,MAAA,EAASC,GAAAA,EAAS,IAAA,EAAQ,KAAK,cAAcA,GAAAA,EAAS,SAAA,EAAa,KAAK,CAAA,CAAA,CAAI,CAAE,aAAA,CAAe,IAAK,CAAC,CAAA,EAE/L,SAAW,EAAC,EAAG,GAAA,CAAI,CAAA,GAAM,CAC1C,IAAA,CAAM,CAAA,CAAE,IAAA,GAAS,QAAA,CAAWG,EAAM,GAAA,CAAI,SAAS,CAAA,CAAE,CAAA,CAAE,KAAO,GAAG,CAAA,CAAI,CAAA,CAAE,IAAA,CACnE,KAAM,CAAA,CAAE,IAAA,GAAS,QAAA,CAAWA,CAAAA,CAAM,IAAI,KAAK,CAAA,CAAI,CAAA,CAAE,IAAA,CACjD,KAAM,CAAA,CAAE,IAAA,GAAS,MAAA,CAASC,CAAAA,CAAY,EAAE,IAAI,CAAA,CAAID,CAAAA,CAAM,GAAA,CAAI,GAAG,CAAA,CAC7D,IAAA,CAAM,EAAE,IAAA,GAAS,MAAA,CAASA,EAAM,GAAA,CAAI,CAAA,CAAE,SAAS,CAAA,CAAI,GACnD,QAAA,CAAU,CAAA,CAAE,UAAA,CAAaE,CAAAA,CAAe,EAAE,UAAU,CAAA,CAAI,EAAA,CACxD,IAAA,CAAM,EAAE,IAAA,EAAM,MAAA,CAASF,CAAAA,CAAM,GAAA,CAAI,EAAE,IAAA,CAAK,IAAA,CAAK,GAAG,CAAC,EAAI,EACvD,CAAA,CAAE,CAAA,CAEF,GAAIH,KAAS,IAAA,CACX,OAAA,CAAQ,GAAA,CAAIM,GAAAA,CAAYL,EAAM,CAC5B,CAAE,IAAK,MAAA,CAAQ,KAAA,CAAO,MAAO,CAAA,CAC7B,CAAE,GAAA,CAAK,MAAA,CAAQ,MAAO,MAAO,CAAA,CAC7B,CAAE,GAAA,CAAK,OAAQ,KAAA,CAAO,MAAO,CAAA,CAC7B,CAAE,IAAK,MAAA,CAAQ,KAAA,CAAO,MAAO,CAAA,CAC7B,CAAE,GAAA,CAAK,UAAA,CAAY,KAAA,CAAO,UAAW,EACrC,CAAE,GAAA,CAAK,MAAA,CAAQ,KAAA,CAAO,MAAO,CAC/B,CAAC,CAAC,CAAA,CAAA,aAESM,CAAAA,IAAON,CAAAA,CAChB,QAAQ,GAAA,CAAIM,CAAAA,CAAI,IAAI,EAG1B","file":"storage-ls-DGOI7ZXX.js","sourcesContent":["import { apiGet } from '../../lib/api/client.js'\nimport { renderTable } from '../../lib/output/table.js'\nimport { formatBytes, formatRelative } from '../../lib/utils/format.js'\nimport chalk from 'chalk'\n\ninterface StorageEntry {\n name: string\n type: 'file' | 'folder'\n size: number\n mime_type: string\n updated_at: string\n tags?: string[]\n shared?: boolean\n}\n\nexport default async function storageLs(path?: string, options?: { long?: boolean; recursive?: boolean }): Promise<void> {\n const queryPath = path || ''\n const data = await apiGet<{ entries: StorageEntry[] }>(`/api/v1/storage/ls?path=${encodeURIComponent(queryPath)}&long=${options?.long || false}&recursive=${options?.recursive || false}`, { authenticated: true })\n\n const rows = (data.entries || []).map(e => ({\n name: e.type === 'folder' ? chalk.hex('#4FC3F7')(e.name + '/') : e.name,\n type: e.type === 'folder' ? chalk.dim('dir') : e.type,\n size: e.type === 'file' ? formatBytes(e.size) : chalk.dim('-'),\n mime: e.type === 'file' ? chalk.dim(e.mime_type) : '',\n modified: e.updated_at ? formatRelative(e.updated_at) : '',\n tags: e.tags?.length ? chalk.dim(e.tags.join(',')) : '',\n }))\n\n if (options?.long) {\n console.log(renderTable(rows, [\n { key: 'name', label: 'Name' },\n { key: 'type', label: 'Type' },\n { key: 'size', label: 'Size' },\n { key: 'mime', label: 'MIME' },\n { key: 'modified', label: 'Modified' },\n { key: 'tags', label: 'Tags' },\n ]))\n } else {\n for (const row of rows) {\n console.log(row.name)\n }\n }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {a as a$1}from'./chunk-ON3YIMVG.js';import'./chunk-6TS5Y27A.js';import {e}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {g}from'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.js';async function a(r){let e$1=a$1(`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-J4BYV3QL.js.map
2
+ //# sourceMappingURL=storage-mkdir-J4BYV3QL.js.map
@@ -0,0 +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-J4BYV3QL.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 {a as a$1}from'./chunk-ON3YIMVG.js';import'./chunk-6TS5Y27A.js';import {e}from'./chunk-RWWBBPEJ.js';import'./chunk-NDB6KXYI.js';import'./chunk-THMWE2I6.js';import {g}from'./chunk-QT7R3AXE.js';import'./chunk-C5KZCYJ4.js';async function a(t,i){let o=a$1(`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-R73IGYOM.js.map
2
+ //# sourceMappingURL=storage-mv-R73IGYOM.js.map