@ignix-social/editor 0.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 (586) hide show
  1. package/LICENSE +190 -0
  2. package/NOTICE +54 -0
  3. package/README.md +23 -0
  4. package/bin/ignix-editor.mjs +8 -0
  5. package/package.json +53 -0
  6. package/patches/index.mjs +53 -0
  7. package/scripts/build-ffmpeg-macos.sh +35 -0
  8. package/scripts/build-whisper-macos.sh +21 -0
  9. package/scripts/vendor.mjs +41 -0
  10. package/skills/ignix-editor/SKILL.md +132 -0
  11. package/src/audio.mjs +31 -0
  12. package/src/binaries.json +46 -0
  13. package/src/binaries.mjs +83 -0
  14. package/src/cli.mjs +254 -0
  15. package/src/prepare.mjs +74 -0
  16. package/src/runtime/ignix-frame.js +92 -0
  17. package/src/transcribe.mjs +71 -0
  18. package/src/validate.mjs +71 -0
  19. package/templates/blank/index.html +41 -0
  20. package/vendor/hyperframes/README.md +181 -0
  21. package/vendor/hyperframes/UPSTREAM.json +12 -0
  22. package/vendor/hyperframes/bin/hyperframes-localize-fonts.mjs +12 -0
  23. package/vendor/hyperframes/bin/hyperframes.mjs +11 -0
  24. package/vendor/hyperframes/dist/add-LR3ZR2A5.js +79 -0
  25. package/vendor/hyperframes/dist/agentPromptGenerator-VIIPZCJ3.js +143 -0
  26. package/vendor/hyperframes/dist/animatedGifPrep-P2T6YM7Z.js +34 -0
  27. package/vendor/hyperframes/dist/asset-BE2DOV72.js +26 -0
  28. package/vendor/hyperframes/dist/assetCataloger-VBLPHX24.js +340 -0
  29. package/vendor/hyperframes/dist/auth-RCQB2ZT7.js +60 -0
  30. package/vendor/hyperframes/dist/autoUpdate-RJAX3DAZ.js +268 -0
  31. package/vendor/hyperframes/dist/backgroundChecks-H2LCUIMJ.js +61 -0
  32. package/vendor/hyperframes/dist/backgroundChecksWorker.js +26 -0
  33. package/vendor/hyperframes/dist/batchRender-FT7AP7XH.js +355 -0
  34. package/vendor/hyperframes/dist/beat-analyzer.global.js +338 -0
  35. package/vendor/hyperframes/dist/beats-Y2EOP72P.js +309 -0
  36. package/vendor/hyperframes/dist/benchmark-MZ7GY3JW.js +231 -0
  37. package/vendor/hyperframes/dist/browser-HUTAMRQE.js +237 -0
  38. package/vendor/hyperframes/dist/bundleWithLocalizedFonts-5QOPOB5D.js +52 -0
  39. package/vendor/hyperframes/dist/capture-RLZA6EMR.js +4079 -0
  40. package/vendor/hyperframes/dist/capture-SZZ4IYJK.js +290 -0
  41. package/vendor/hyperframes/dist/captureFile-LYOJOUIE.js +15 -0
  42. package/vendor/hyperframes/dist/captureTimeout-PA4FYWT5.js +27 -0
  43. package/vendor/hyperframes/dist/catalog-KYU55EWR.js +1001 -0
  44. package/vendor/hyperframes/dist/check-TCG4PXLR.js +1697 -0
  45. package/vendor/hyperframes/dist/checkBrowser-RPMO4OW5.js +1032 -0
  46. package/vendor/hyperframes/dist/chunk-2EAXUCCE.js +88 -0
  47. package/vendor/hyperframes/dist/chunk-2EGFTPWD.js +1077 -0
  48. package/vendor/hyperframes/dist/chunk-2PSPARWP.js +6058 -0
  49. package/vendor/hyperframes/dist/chunk-2YN64IN5.js +5747 -0
  50. package/vendor/hyperframes/dist/chunk-3GXQPCJC.js +682 -0
  51. package/vendor/hyperframes/dist/chunk-3ZP5DXE7.js +15 -0
  52. package/vendor/hyperframes/dist/chunk-4NWOGZZS.js +1990 -0
  53. package/vendor/hyperframes/dist/chunk-4PFZPP2N.js +587 -0
  54. package/vendor/hyperframes/dist/chunk-4THIAPBL.js +128 -0
  55. package/vendor/hyperframes/dist/chunk-4YYJOFKS.js +28 -0
  56. package/vendor/hyperframes/dist/chunk-54HJ63Q2.js +29 -0
  57. package/vendor/hyperframes/dist/chunk-5ETJX6WM.js +89 -0
  58. package/vendor/hyperframes/dist/chunk-5IAKAQA7.js +389 -0
  59. package/vendor/hyperframes/dist/chunk-5Z63TBTX.js +37 -0
  60. package/vendor/hyperframes/dist/chunk-6BEFEWFB.js +25 -0
  61. package/vendor/hyperframes/dist/chunk-6CSYCFQV.js +68 -0
  62. package/vendor/hyperframes/dist/chunk-6CTIGJY7.js +154 -0
  63. package/vendor/hyperframes/dist/chunk-7HG4BFIN.js +93 -0
  64. package/vendor/hyperframes/dist/chunk-7JZ4FXP2.js +118 -0
  65. package/vendor/hyperframes/dist/chunk-A2Z4Z4VL.js +2961 -0
  66. package/vendor/hyperframes/dist/chunk-AMKC3AXA.js +25 -0
  67. package/vendor/hyperframes/dist/chunk-AVUUN2XD.js +4847 -0
  68. package/vendor/hyperframes/dist/chunk-AWDFDFI3.js +46 -0
  69. package/vendor/hyperframes/dist/chunk-AWNBM3MZ.js +94 -0
  70. package/vendor/hyperframes/dist/chunk-BXCMXMJQ.js +73 -0
  71. package/vendor/hyperframes/dist/chunk-BZ56MTDX.js +6 -0
  72. package/vendor/hyperframes/dist/chunk-CFKU7HTK.js +171 -0
  73. package/vendor/hyperframes/dist/chunk-CWPVM2QV.js +308 -0
  74. package/vendor/hyperframes/dist/chunk-DPVXBVLL.js +31292 -0
  75. package/vendor/hyperframes/dist/chunk-DQBY7FRR.js +397 -0
  76. package/vendor/hyperframes/dist/chunk-E6RPWJVC.js +213 -0
  77. package/vendor/hyperframes/dist/chunk-EISRN4E6.js +294 -0
  78. package/vendor/hyperframes/dist/chunk-EOVYQ3IG.js +143 -0
  79. package/vendor/hyperframes/dist/chunk-F3WZGU7C.js +479 -0
  80. package/vendor/hyperframes/dist/chunk-FCSIGXXP.js +366 -0
  81. package/vendor/hyperframes/dist/chunk-FI4I7CME.js +56 -0
  82. package/vendor/hyperframes/dist/chunk-FLWXXDNS.js +15 -0
  83. package/vendor/hyperframes/dist/chunk-GK4AIFIH.js +11171 -0
  84. package/vendor/hyperframes/dist/chunk-GMECXFAN.js +57 -0
  85. package/vendor/hyperframes/dist/chunk-GULOKZLI.js +155 -0
  86. package/vendor/hyperframes/dist/chunk-H4YZZ2VQ.js +68 -0
  87. package/vendor/hyperframes/dist/chunk-H6QMKUYA.js +477 -0
  88. package/vendor/hyperframes/dist/chunk-HBBJFK6I.js +273 -0
  89. package/vendor/hyperframes/dist/chunk-HRUGC23L.js +212 -0
  90. package/vendor/hyperframes/dist/chunk-HVW7ABXD.js +19 -0
  91. package/vendor/hyperframes/dist/chunk-HW6OYASV.js +344 -0
  92. package/vendor/hyperframes/dist/chunk-HWKCIWQT.js +3578 -0
  93. package/vendor/hyperframes/dist/chunk-I465DBM6.js +1214 -0
  94. package/vendor/hyperframes/dist/chunk-IGLEPPTN.js +24 -0
  95. package/vendor/hyperframes/dist/chunk-IGNAAHS3.js +433 -0
  96. package/vendor/hyperframes/dist/chunk-IHFUKJOR.js +85 -0
  97. package/vendor/hyperframes/dist/chunk-IQ3OUQ5Z.js +213 -0
  98. package/vendor/hyperframes/dist/chunk-ISN5GRYI.js +20 -0
  99. package/vendor/hyperframes/dist/chunk-IUZFXWSV.js +446 -0
  100. package/vendor/hyperframes/dist/chunk-JH556Q42.js +647 -0
  101. package/vendor/hyperframes/dist/chunk-JTHMTOMQ.js +601 -0
  102. package/vendor/hyperframes/dist/chunk-K2EQN4VU.js +405 -0
  103. package/vendor/hyperframes/dist/chunk-K2FTXJYH.js +16044 -0
  104. package/vendor/hyperframes/dist/chunk-K4WIOZFP.js +32 -0
  105. package/vendor/hyperframes/dist/chunk-K4WKGXRC.js +18 -0
  106. package/vendor/hyperframes/dist/chunk-KBJUXVOJ.js +172 -0
  107. package/vendor/hyperframes/dist/chunk-KC5XXX3X.js +590 -0
  108. package/vendor/hyperframes/dist/chunk-KNU5COPB.js +29 -0
  109. package/vendor/hyperframes/dist/chunk-KZI44OPA.js +185 -0
  110. package/vendor/hyperframes/dist/chunk-L3YOGIPG.js +48 -0
  111. package/vendor/hyperframes/dist/chunk-LAOCA3MQ.js +189 -0
  112. package/vendor/hyperframes/dist/chunk-LCSMOLGX.js +312 -0
  113. package/vendor/hyperframes/dist/chunk-LFGJWOVA.js +61 -0
  114. package/vendor/hyperframes/dist/chunk-LHSR3M4M.js +498 -0
  115. package/vendor/hyperframes/dist/chunk-LYNI3FOL.js +123 -0
  116. package/vendor/hyperframes/dist/chunk-M2WBOQ2Q.js +54 -0
  117. package/vendor/hyperframes/dist/chunk-MRF4AMKD.js +104 -0
  118. package/vendor/hyperframes/dist/chunk-MWB3ZIFM.js +852 -0
  119. package/vendor/hyperframes/dist/chunk-NGKM64BP.js +39 -0
  120. package/vendor/hyperframes/dist/chunk-NXMYHJAL.js +43 -0
  121. package/vendor/hyperframes/dist/chunk-OAF4XJOW.js +192 -0
  122. package/vendor/hyperframes/dist/chunk-OFQWTKPW.js +117 -0
  123. package/vendor/hyperframes/dist/chunk-P6LJ4Y32.js +4662 -0
  124. package/vendor/hyperframes/dist/chunk-PBN6GBJE.js +108 -0
  125. package/vendor/hyperframes/dist/chunk-PDAMK4Q5.js +28 -0
  126. package/vendor/hyperframes/dist/chunk-PFCFR3KZ.js +20 -0
  127. package/vendor/hyperframes/dist/chunk-PJ3HDUCY.js +108 -0
  128. package/vendor/hyperframes/dist/chunk-PMRBLBUP.js +152 -0
  129. package/vendor/hyperframes/dist/chunk-PPQUYWTW.js +240 -0
  130. package/vendor/hyperframes/dist/chunk-Q5X2B5WT.js +29 -0
  131. package/vendor/hyperframes/dist/chunk-Q7IU7MOR.js +351 -0
  132. package/vendor/hyperframes/dist/chunk-QC4FJVLM.js +371 -0
  133. package/vendor/hyperframes/dist/chunk-QNYYOUU3.js +1318 -0
  134. package/vendor/hyperframes/dist/chunk-RDNNAKEP.js +161 -0
  135. package/vendor/hyperframes/dist/chunk-RMHUQGRK.js +657 -0
  136. package/vendor/hyperframes/dist/chunk-RQVDTPGD.js +6 -0
  137. package/vendor/hyperframes/dist/chunk-RVCWIIZ7.js +68 -0
  138. package/vendor/hyperframes/dist/chunk-S3D6GE5W.js +72 -0
  139. package/vendor/hyperframes/dist/chunk-S3S4TGEH.js +424 -0
  140. package/vendor/hyperframes/dist/chunk-S7NPLFWV.js +11395 -0
  141. package/vendor/hyperframes/dist/chunk-SHB5VDMH.js +51 -0
  142. package/vendor/hyperframes/dist/chunk-TCLGPL65.js +860 -0
  143. package/vendor/hyperframes/dist/chunk-THXFSPLV.js +40 -0
  144. package/vendor/hyperframes/dist/chunk-TJSTGSAW.js +354 -0
  145. package/vendor/hyperframes/dist/chunk-TQFG7HTI.js +1024 -0
  146. package/vendor/hyperframes/dist/chunk-TVCRUG2S.js +265 -0
  147. package/vendor/hyperframes/dist/chunk-TWWSYAKJ.js +24 -0
  148. package/vendor/hyperframes/dist/chunk-U7CZBDMV.js +27 -0
  149. package/vendor/hyperframes/dist/chunk-UEZXMWG3.js +139 -0
  150. package/vendor/hyperframes/dist/chunk-UYEZTK4U.js +61 -0
  151. package/vendor/hyperframes/dist/chunk-VC76R6W2.js +27 -0
  152. package/vendor/hyperframes/dist/chunk-VFCKXTBB.js +159 -0
  153. package/vendor/hyperframes/dist/chunk-VWG7OQKU.js +22 -0
  154. package/vendor/hyperframes/dist/chunk-VXVRPIJA.js +105 -0
  155. package/vendor/hyperframes/dist/chunk-WBLXWOYK.js +15 -0
  156. package/vendor/hyperframes/dist/chunk-WERLJGIC.js +20 -0
  157. package/vendor/hyperframes/dist/chunk-WMQNIQDJ.js +2057 -0
  158. package/vendor/hyperframes/dist/chunk-WPHMNO44.js +4528 -0
  159. package/vendor/hyperframes/dist/chunk-X5HWXQPU.js +113 -0
  160. package/vendor/hyperframes/dist/chunk-X7MTZ4T2.js +6 -0
  161. package/vendor/hyperframes/dist/chunk-XH4DSOS5.js +59 -0
  162. package/vendor/hyperframes/dist/chunk-XS4EJSKU.js +23 -0
  163. package/vendor/hyperframes/dist/chunk-XT5P4QMO.js +181 -0
  164. package/vendor/hyperframes/dist/chunk-XT7X6QCP.js +6 -0
  165. package/vendor/hyperframes/dist/chunk-XUHOIDKG.js +6 -0
  166. package/vendor/hyperframes/dist/chunk-XUXGIA7H.js +485 -0
  167. package/vendor/hyperframes/dist/chunk-XZABUQTX.js +113 -0
  168. package/vendor/hyperframes/dist/chunk-Y6W4DVPS.js +356 -0
  169. package/vendor/hyperframes/dist/chunk-YEIFI443.js +44 -0
  170. package/vendor/hyperframes/dist/chunk-YQZNILVH.js +375 -0
  171. package/vendor/hyperframes/dist/chunk-Z27A7NUB.js +65 -0
  172. package/vendor/hyperframes/dist/chunk-Z6B37SNM.js +3081 -0
  173. package/vendor/hyperframes/dist/chunk-ZJUKFZ2P.js +10954 -0
  174. package/vendor/hyperframes/dist/chunk-ZKDMAOFU.js +32 -0
  175. package/vendor/hyperframes/dist/chunk-ZMXUQLI2.js +17219 -0
  176. package/vendor/hyperframes/dist/chunk-ZTZ7NCJT.js +58 -0
  177. package/vendor/hyperframes/dist/chunk-ZTZA4UWZ.js +108 -0
  178. package/vendor/hyperframes/dist/clean-W57E5YQ3.js +293 -0
  179. package/vendor/hyperframes/dist/cli.js +495 -0
  180. package/vendor/hyperframes/dist/cloud-FFTJGZ24.js +70 -0
  181. package/vendor/hyperframes/dist/cloudrun-AJUTHUEA.js +763 -0
  182. package/vendor/hyperframes/dist/colors-HKWSZCGK.js +15 -0
  183. package/vendor/hyperframes/dist/commands/contrast-audit.browser.js +459 -0
  184. package/vendor/hyperframes/dist/commands/layout-audit.browser.js +2102 -0
  185. package/vendor/hyperframes/dist/commands/motion-sample.browser.js +74 -0
  186. package/vendor/hyperframes/dist/commands/motion-signature.browser.js +374 -0
  187. package/vendor/hyperframes/dist/compare-AYCTT55F.js +421 -0
  188. package/vendor/hyperframes/dist/compiler-QO36EXLS.js +121 -0
  189. package/vendor/hyperframes/dist/component-VFFR2O7T.js +176 -0
  190. package/vendor/hyperframes/dist/compositions-QTVN3U2A.js +228 -0
  191. package/vendor/hyperframes/dist/contactSheet-27SRU7A4.js +22 -0
  192. package/vendor/hyperframes/dist/delete-ZAKYCB7I.js +114 -0
  193. package/vendor/hyperframes/dist/deploy-MX76RZ36.js +101 -0
  194. package/vendor/hyperframes/dist/destroy-H2TZBYHH.js +42 -0
  195. package/vendor/hyperframes/dist/deterministicFonts-HAEMV4TM.js +50 -0
  196. package/vendor/hyperframes/dist/dist-EWXJGN63.js +129 -0
  197. package/vendor/hyperframes/dist/dist-FNNGCKFS.js +29 -0
  198. package/vendor/hyperframes/dist/dist-S3PJNPXQ.js +392 -0
  199. package/vendor/hyperframes/dist/docker/Dockerfile.render +65 -0
  200. package/vendor/hyperframes/dist/docs/compositions.md +67 -0
  201. package/vendor/hyperframes/dist/docs/data-attributes.md +27 -0
  202. package/vendor/hyperframes/dist/docs/examples.md +19 -0
  203. package/vendor/hyperframes/dist/docs/gsap.md +26 -0
  204. package/vendor/hyperframes/dist/docs/rendering.md +35 -0
  205. package/vendor/hyperframes/dist/docs/troubleshooting.md +29 -0
  206. package/vendor/hyperframes/dist/docs-QAPJEGLS.js +131 -0
  207. package/vendor/hyperframes/dist/doctor-AI7C3FON.js +67 -0
  208. package/vendor/hyperframes/dist/dom-IROKGVJI.js +14 -0
  209. package/vendor/hyperframes/dist/dotEnv-AECLXQSO.js +14 -0
  210. package/vendor/hyperframes/dist/events-7LALYNKZ.js +92 -0
  211. package/vendor/hyperframes/dist/events-FQY3HGKZ.js +88 -0
  212. package/vendor/hyperframes/dist/feedback-WCMDMSTK.js +472 -0
  213. package/vendor/hyperframes/dist/ffmpeg-QIUFEFTY.js +35 -0
  214. package/vendor/hyperframes/dist/figma-64WY462P.js +63 -0
  215. package/vendor/hyperframes/dist/fontData.generated-NXAOI4GH.js +13 -0
  216. package/vendor/hyperframes/dist/fontLocalizeCli.js +132 -0
  217. package/vendor/hyperframes/dist/get-FPOMJMZB.js +103 -0
  218. package/vendor/hyperframes/dist/gpuPolicy-2ZUZE5D6.js +38 -0
  219. package/vendor/hyperframes/dist/grade-compare-E2CKPST4.js +647 -0
  220. package/vendor/hyperframes/dist/gsapParser-DIYYX6JT.js +2846 -0
  221. package/vendor/hyperframes/dist/gsapParserAcorn-E3GEIRZB.js +28 -0
  222. package/vendor/hyperframes/dist/help-YRQIDDML.js +197 -0
  223. package/vendor/hyperframes/dist/history-PP5NDRV3.js +571 -0
  224. package/vendor/hyperframes/dist/hyperframe-runtime.js +1081 -0
  225. package/vendor/hyperframes/dist/hyperframe.manifest.json +22 -0
  226. package/vendor/hyperframes/dist/hyperframe.runtime.iife.js +1081 -0
  227. package/vendor/hyperframes/dist/hyperframes-player.global.js +474 -0
  228. package/vendor/hyperframes/dist/hyperframes-slideshow.global.js +149 -0
  229. package/vendor/hyperframes/dist/info-SEX3B7JL.js +153 -0
  230. package/vendor/hyperframes/dist/init-U3AKHO5B.js +1147 -0
  231. package/vendor/hyperframes/dist/inspect-Q3K6EDEK.js +97 -0
  232. package/vendor/hyperframes/dist/installer-K6O5WF44.js +37 -0
  233. package/vendor/hyperframes/dist/keyframes-DC64JCI3.js +2602 -0
  234. package/vendor/hyperframes/dist/lambda-D7UMN4DJ.js +451 -0
  235. package/vendor/hyperframes/dist/layout-XSPPDHOO.js +86 -0
  236. package/vendor/hyperframes/dist/lib-TPG2ZMAX.js +128 -0
  237. package/vendor/hyperframes/dist/lint-7DQZE7L3.js +164 -0
  238. package/vendor/hyperframes/dist/lintProject-OHBBM3DJ.js +27 -0
  239. package/vendor/hyperframes/dist/list-4K5MVDQX.js +162 -0
  240. package/vendor/hyperframes/dist/login-NTX4OWXL.js +377 -0
  241. package/vendor/hyperframes/dist/logout-Q654A3SI.js +100 -0
  242. package/vendor/hyperframes/dist/manager-67P2XFXQ.js +34 -0
  243. package/vendor/hyperframes/dist/manager-CT3D67CG.js +38 -0
  244. package/vendor/hyperframes/dist/manager-GFN75DM4.js +30 -0
  245. package/vendor/hyperframes/dist/media-treatment-5FYAOPNL.js +972 -0
  246. package/vendor/hyperframes/dist/media-use-4XXGABIL.js +113 -0
  247. package/vendor/hyperframes/dist/models-C4E4IWJD.js +137 -0
  248. package/vendor/hyperframes/dist/motionShot-S4MIGMT5.js +614 -0
  249. package/vendor/hyperframes/dist/normalize-O76AC4HE.js +333 -0
  250. package/vendor/hyperframes/dist/normalize-audio-CSFTXLXD.js +276 -0
  251. package/vendor/hyperframes/dist/open-2ZD6BHZG.js +115 -0
  252. package/vendor/hyperframes/dist/pipeline-TNGWUZQC.js +54 -0
  253. package/vendor/hyperframes/dist/play-CTMUXX6E.js +349 -0
  254. package/vendor/hyperframes/dist/policies-FSDZVS2E.js +292 -0
  255. package/vendor/hyperframes/dist/preflight-SMNV6RW2.js +45 -0
  256. package/vendor/hyperframes/dist/present-WQVHV5CR.js +350 -0
  257. package/vendor/hyperframes/dist/preview-JOJXTH75.js +1820 -0
  258. package/vendor/hyperframes/dist/producer-ECLEN5RP.js +13 -0
  259. package/vendor/hyperframes/dist/progress-FBIEEB7Y.js +73 -0
  260. package/vendor/hyperframes/dist/projectConfig-HYJMJ5BY.js +56 -0
  261. package/vendor/hyperframes/dist/publication-HQ5Y3KBM.js +29 -0
  262. package/vendor/hyperframes/dist/publish-VHDYQASC.js +430 -0
  263. package/vendor/hyperframes/dist/refresh-K24ETHMA.js +53 -0
  264. package/vendor/hyperframes/dist/remove-background-W2YX2NVH.js +253 -0
  265. package/vendor/hyperframes/dist/render-AO5VX3YI.js +177 -0
  266. package/vendor/hyperframes/dist/render-LNO62LEL.js +2367 -0
  267. package/vendor/hyperframes/dist/render-TTQI7TGN.js +796 -0
  268. package/vendor/hyperframes/dist/render-batch-YH7CTWNY.js +284 -0
  269. package/vendor/hyperframes/dist/renderCancellation-JPIHE47X.js +35 -0
  270. package/vendor/hyperframes/dist/renderSetupWorker.js +79 -0
  271. package/vendor/hyperframes/dist/resolver-IZ647GBZ.js +38 -0
  272. package/vendor/hyperframes/dist/runtimeVersion.js +18 -0
  273. package/vendor/hyperframes/dist/screenshotCapture-ECBTLCU6.js +179 -0
  274. package/vendor/hyperframes/dist/shaderTransitionWorker.js +44 -0
  275. package/vendor/hyperframes/dist/sherpa-KKLNW6U2.js +314 -0
  276. package/vendor/hyperframes/dist/sherpaWorker.js +77 -0
  277. package/vendor/hyperframes/dist/sites-TNVKZS73.js +52 -0
  278. package/vendor/hyperframes/dist/skill-ZHVLH7KX.js +15 -0
  279. package/vendor/hyperframes/dist/skills/hyperframes/SKILL.md +152 -0
  280. package/vendor/hyperframes/dist/skills/hyperframes/references/brief-contract.md +108 -0
  281. package/vendor/hyperframes/dist/skills/hyperframes/references/brief-format.md +72 -0
  282. package/vendor/hyperframes/dist/skills/hyperframes/references/capability-menu.md +47 -0
  283. package/vendor/hyperframes/dist/skills/hyperframes/references/frame-worker-core.md +80 -0
  284. package/vendor/hyperframes/dist/skills/hyperframes/references/intent-interview.md +73 -0
  285. package/vendor/hyperframes/dist/skills/hyperframes/references/pitch-round.md +40 -0
  286. package/vendor/hyperframes/dist/skills/hyperframes/references/plugin-installation.md +43 -0
  287. package/vendor/hyperframes/dist/skills/hyperframes/references/production-loop.md +26 -0
  288. package/vendor/hyperframes/dist/skills/hyperframes/references/review-loop.md +37 -0
  289. package/vendor/hyperframes/dist/skills/hyperframes/references/route-briefs.md +11 -0
  290. package/vendor/hyperframes/dist/skills/hyperframes/references/routes/embedded-captions.md +11 -0
  291. package/vendor/hyperframes/dist/skills/hyperframes/references/routes/faceless-explainer.md +12 -0
  292. package/vendor/hyperframes/dist/skills/hyperframes/references/routes/general-video.md +12 -0
  293. package/vendor/hyperframes/dist/skills/hyperframes/references/routes/motion-graphics.md +11 -0
  294. package/vendor/hyperframes/dist/skills/hyperframes/references/routes/music-to-video.md +12 -0
  295. package/vendor/hyperframes/dist/skills/hyperframes/references/routes/pr-to-video.md +28 -0
  296. package/vendor/hyperframes/dist/skills/hyperframes/references/routes/product-launch-video.md +13 -0
  297. package/vendor/hyperframes/dist/skills/hyperframes/references/routes/remotion-to-hyperframes.md +9 -0
  298. package/vendor/hyperframes/dist/skills/hyperframes/references/routes/slideshow.md +11 -0
  299. package/vendor/hyperframes/dist/skills/hyperframes/references/routes/talking-head-recut.md +11 -0
  300. package/vendor/hyperframes/dist/skills/hyperframes/references/script-format.md +52 -0
  301. package/vendor/hyperframes/dist/skills/hyperframes/references/skill-lifecycle.md +35 -0
  302. package/vendor/hyperframes/dist/skills/hyperframes/references/storyboard-format.md +99 -0
  303. package/vendor/hyperframes/dist/skills/hyperframes/references/subagent-dispatch.md +35 -0
  304. package/vendor/hyperframes/dist/skills/hyperframes/references/workflow-catalog.md +10 -0
  305. package/vendor/hyperframes/dist/skills/hyperframes/scripts/lib/frame-packets-core.mjs +194 -0
  306. package/vendor/hyperframes/dist/skills/hyperframes/scripts/plugin-cli.mjs +88 -0
  307. package/vendor/hyperframes/dist/skills/hyperframes/scripts/plugin-cli.test.mjs +117 -0
  308. package/vendor/hyperframes/dist/skills/hyperframes-cli/SKILL.md +189 -0
  309. package/vendor/hyperframes/dist/skills/hyperframes-cli/references/beats.md +19 -0
  310. package/vendor/hyperframes/dist/skills/hyperframes-cli/references/cloud.md +163 -0
  311. package/vendor/hyperframes/dist/skills/hyperframes-cli/references/cloudrun.md +62 -0
  312. package/vendor/hyperframes/dist/skills/hyperframes-cli/references/compare-and-batch.md +105 -0
  313. package/vendor/hyperframes/dist/skills/hyperframes-cli/references/doctor-browser.md +57 -0
  314. package/vendor/hyperframes/dist/skills/hyperframes-cli/references/init-and-scaffold.md +74 -0
  315. package/vendor/hyperframes/dist/skills/hyperframes-cli/references/lambda.md +185 -0
  316. package/vendor/hyperframes/dist/skills/hyperframes-cli/references/lint-validate-inspect.md +132 -0
  317. package/vendor/hyperframes/dist/skills/hyperframes-cli/references/preview-render.md +193 -0
  318. package/vendor/hyperframes/dist/skills/hyperframes-cli/references/upgrade-info-misc.md +134 -0
  319. package/vendor/hyperframes/dist/skills/media-use/SKILL.md +100 -0
  320. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/CREDITS.md +35 -0
  321. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/chime.mp3 +0 -0
  322. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/click-soft.mp3 +0 -0
  323. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/click.mp3 +0 -0
  324. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/error.mp3 +0 -0
  325. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/glitch-1.mp3 +0 -0
  326. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/glitch-2.mp3 +0 -0
  327. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/glitch-3.mp3 +0 -0
  328. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/impact-bass-1.mp3 +0 -0
  329. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/impact-bass-2.mp3 +0 -0
  330. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/key-press.mp3 +0 -0
  331. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/manifest.json +97 -0
  332. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/notification.mp3 +0 -0
  333. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/ping.mp3 +0 -0
  334. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/pop.mp3 +0 -0
  335. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/riser.mp3 +0 -0
  336. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/sparkle.mp3 +0 -0
  337. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/typing.mp3 +0 -0
  338. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/whoosh-cinematic.mp3 +0 -0
  339. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/whoosh-short.mp3 +0 -0
  340. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/whoosh.mp3 +0 -0
  341. package/vendor/hyperframes/dist/skills/media-use/audio/references/bgm.md +76 -0
  342. package/vendor/hyperframes/dist/skills/media-use/audio/references/captions/authoring.md +163 -0
  343. package/vendor/hyperframes/dist/skills/media-use/audio/references/captions/motion.md +87 -0
  344. package/vendor/hyperframes/dist/skills/media-use/audio/references/captions/transcript-handling.md +97 -0
  345. package/vendor/hyperframes/dist/skills/media-use/audio/references/remove-background.md +143 -0
  346. package/vendor/hyperframes/dist/skills/media-use/audio/references/requirements.md +29 -0
  347. package/vendor/hyperframes/dist/skills/media-use/audio/references/sfx.md +42 -0
  348. package/vendor/hyperframes/dist/skills/media-use/audio/references/transcribe.md +52 -0
  349. package/vendor/hyperframes/dist/skills/media-use/audio/references/tts-to-captions.md +35 -0
  350. package/vendor/hyperframes/dist/skills/media-use/audio/references/tts.md +260 -0
  351. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/audio.mjs +311 -0
  352. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/audio.test.mjs +159 -0
  353. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/gemini-pipeline.test.mjs +131 -0
  354. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/heygen-tts.mjs +122 -0
  355. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/heygen-tts.test.mjs +38 -0
  356. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/heygen-voice.mjs +98 -0
  357. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/heygen-voice.test.mjs +233 -0
  358. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/audio-meta.mjs +39 -0
  359. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/audio-meta.test.mjs +136 -0
  360. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/bgm-volume.mjs +4 -0
  361. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/bgm.mjs +257 -0
  362. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/bgm.test.mjs +74 -0
  363. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/concurrency.mjs +14 -0
  364. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/concurrency.test.mjs +41 -0
  365. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/gemini-auth.mjs +43 -0
  366. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/gemini-auth.py +52 -0
  367. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/gemini-auth.test.mjs +86 -0
  368. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/gemini-auth_test.py +90 -0
  369. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/gemini-tts.mjs +122 -0
  370. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/gemini-tts.test.mjs +243 -0
  371. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/heygen.mjs +197 -0
  372. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/heygen.test.mjs +185 -0
  373. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/media-record.mjs +114 -0
  374. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/media-record.test.mjs +205 -0
  375. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/python.mjs +77 -0
  376. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/python.test.mjs +136 -0
  377. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/sfx.mjs +165 -0
  378. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/sfx.test.mjs +121 -0
  379. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/tts.mjs +389 -0
  380. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/tts.spawn.test.mjs +158 -0
  381. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/tts.test.mjs +230 -0
  382. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lyria-recipe.py +136 -0
  383. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/wait-bgm.mjs +175 -0
  384. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/wait-bgm.test.mjs +108 -0
  385. package/vendor/hyperframes/dist/skills/media-use/luts/README.md +28 -0
  386. package/vendor/hyperframes/dist/skills/media-use/luts/index.json +57 -0
  387. package/vendor/hyperframes/dist/skills/media-use/references/audio.md +20 -0
  388. package/vendor/hyperframes/dist/skills/media-use/references/grading.md +160 -0
  389. package/vendor/hyperframes/dist/skills/media-use/references/media-treatment-recipes.md +929 -0
  390. package/vendor/hyperframes/dist/skills/media-use/references/media-treatments.md +202 -0
  391. package/vendor/hyperframes/dist/skills/media-use/references/memory.md +37 -0
  392. package/vendor/hyperframes/dist/skills/media-use/references/meta.md +61 -0
  393. package/vendor/hyperframes/dist/skills/media-use/references/operations.md +327 -0
  394. package/vendor/hyperframes/dist/skills/media-use/references/resolve.md +150 -0
  395. package/vendor/hyperframes/dist/skills/media-use/references/setup-providers.md +80 -0
  396. package/vendor/hyperframes/dist/skills/media-use/references/telemetry-dashboard.md +49 -0
  397. package/vendor/hyperframes/dist/skills/media-use/scripts/audio-duck.mjs +113 -0
  398. package/vendor/hyperframes/dist/skills/media-use/scripts/compatibility.test.mjs +96 -0
  399. package/vendor/hyperframes/dist/skills/media-use/scripts/dither.mjs +328 -0
  400. package/vendor/hyperframes/dist/skills/media-use/scripts/dither.test.mjs +176 -0
  401. package/vendor/hyperframes/dist/skills/media-use/scripts/eval.mjs +369 -0
  402. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/adopt.mjs +128 -0
  403. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/adopt.test.mjs +95 -0
  404. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/bgm-provider.mjs +20 -0
  405. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/brand-provider.mjs +59 -0
  406. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/bundled-sfx-provider.mjs +119 -0
  407. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/bundled-sfx-provider.test.mjs +139 -0
  408. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/cache.mjs +148 -0
  409. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/candidates.mjs +91 -0
  410. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/candidates.test.mjs +155 -0
  411. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/codex-provider.mjs +161 -0
  412. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/codex-provider.test.mjs +34 -0
  413. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/config-lock.d.mts +3 -0
  414. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/config-lock.mjs +45 -0
  415. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/config-lock.test.mjs +79 -0
  416. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/coverage.test.mjs +136 -0
  417. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/cube-build.mjs +181 -0
  418. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/cube-build.test.mjs +80 -0
  419. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/cube-validate.mjs +198 -0
  420. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/cube-validate.test.mjs +125 -0
  421. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/cutlist.mjs +184 -0
  422. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/cutlist.test.mjs +162 -0
  423. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/duck.mjs +95 -0
  424. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/duck.test.mjs +153 -0
  425. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/error-diffusion.mjs +230 -0
  426. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/error-diffusion.test.mjs +102 -0
  427. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/ff-binaries.mjs +37 -0
  428. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/freeze.mjs +72 -0
  429. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/freeze.test.mjs +138 -0
  430. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/grade-analyzer.mjs +265 -0
  431. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/grade-analyzer.test.mjs +285 -0
  432. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/heygen-cli.mjs +191 -0
  433. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/heygen-cli.test.mjs +301 -0
  434. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/heygen-search.mjs +45 -0
  435. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/heygen-search.test.mjs +49 -0
  436. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/heygen-video-provider.mjs +138 -0
  437. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/heygen-video-provider.test.mjs +435 -0
  438. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/image-provider.mjs +44 -0
  439. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/index-gen.mjs +63 -0
  440. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/local-media-search.mjs +32 -0
  441. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/local-models.mjs +318 -0
  442. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/local-models.test.mjs +220 -0
  443. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/local-run.mjs +78 -0
  444. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/local-run.test.mjs +121 -0
  445. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/logo-provider.mjs +244 -0
  446. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/logo-provider.test.mjs +298 -0
  447. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/ltx-video-provider.mjs +94 -0
  448. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/ltx-video-provider.test.mjs +316 -0
  449. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/lut-preset-provider.mjs +271 -0
  450. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/lut-preset-provider.test.mjs +199 -0
  451. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/manifest.d.mts +19 -0
  452. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/manifest.mjs +279 -0
  453. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/manifest.test.mjs +397 -0
  454. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/match.mjs +47 -0
  455. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/media-fetch.mjs +85 -0
  456. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/media-fetch.test.mjs +197 -0
  457. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/media-home.mjs +20 -0
  458. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/media-home.test.mjs +61 -0
  459. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/media-search.d.mts +9 -0
  460. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/media-search.mjs +107 -0
  461. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/mflux-provider.mjs +128 -0
  462. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/mflux-provider.test.mjs +174 -0
  463. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/misses.mjs +49 -0
  464. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/misses.test.mjs +89 -0
  465. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/npx-sync.mjs +31 -0
  466. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/npx-sync.test.mjs +50 -0
  467. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/parakeet-words.mjs +27 -0
  468. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/parakeet-words.test.mjs +44 -0
  469. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/prefs-store.mjs +180 -0
  470. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/prefs-store.test.mjs +189 -0
  471. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/probe.mjs +41 -0
  472. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/probe.test.mjs +148 -0
  473. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/providers.mjs +5 -0
  474. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/recipe-store.mjs +367 -0
  475. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/recipe-store.test.mjs +367 -0
  476. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/registry.mjs +212 -0
  477. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/registry.test.mjs +262 -0
  478. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/search.mjs +24 -0
  479. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/search.test.mjs +32 -0
  480. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/sfx-provider.mjs +23 -0
  481. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/specs.mjs +132 -0
  482. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/specs.test.mjs +157 -0
  483. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/stats.mjs +117 -0
  484. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/stats.test.mjs +165 -0
  485. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/svg-sanitize.mjs +21 -0
  486. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/telemetry.mjs +210 -0
  487. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/telemetry.test.mjs +437 -0
  488. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/test-home.test.mjs +10 -0
  489. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/transcriptCutFade.mjs +21 -0
  490. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/transcriptCutFade.test.mjs +33 -0
  491. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/tts-local-provider.mjs +94 -0
  492. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/tts-local-provider.test.mjs +72 -0
  493. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/usage.mjs +57 -0
  494. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/usage.test.mjs +54 -0
  495. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/voice-provider.mjs +57 -0
  496. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/voice-provider.test.mjs +46 -0
  497. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/words.mjs +18 -0
  498. package/vendor/hyperframes/dist/skills/media-use/scripts/prefs.mjs +70 -0
  499. package/vendor/hyperframes/dist/skills/media-use/scripts/recipe.mjs +103 -0
  500. package/vendor/hyperframes/dist/skills/media-use/scripts/resolve-plugin.test.mjs +62 -0
  501. package/vendor/hyperframes/dist/skills/media-use/scripts/resolve.mjs +1369 -0
  502. package/vendor/hyperframes/dist/skills/media-use/scripts/transcribe.mjs +194 -0
  503. package/vendor/hyperframes/dist/skills/media-use/scripts/transcribe.test.mjs +112 -0
  504. package/vendor/hyperframes/dist/skills/media-use/scripts/transcript-cut.mjs +270 -0
  505. package/vendor/hyperframes/dist/skills/media-use/scripts/transcript-cut.test.mjs +117 -0
  506. package/vendor/hyperframes/dist/skills-MJ2J4GEM.js +808 -0
  507. package/vendor/hyperframes/dist/skillsUpdateCheck-TKTYQN5R.js +26 -0
  508. package/vendor/hyperframes/dist/slideshow-EJ4IMY6P.js +24 -0
  509. package/vendor/hyperframes/dist/snapshot-KIVDUUMN.js +875 -0
  510. package/vendor/hyperframes/dist/src-6YQBJGWR.js +202 -0
  511. package/vendor/hyperframes/dist/src-PVYUYV3M.js +471 -0
  512. package/vendor/hyperframes/dist/state-KAXGHF77.js +26 -0
  513. package/vendor/hyperframes/dist/staticProjectServer-7EU666GS.js +49 -0
  514. package/vendor/hyperframes/dist/status-YM52BQ6S.js +311 -0
  515. package/vendor/hyperframes/dist/studio/assets/hyperframes-player-Cp8e_Zst.js +473 -0
  516. package/vendor/hyperframes/dist/studio/assets/index-BX3KHhGX.js +71 -0
  517. package/vendor/hyperframes/dist/studio/assets/index-CASEBNy2.js +1 -0
  518. package/vendor/hyperframes/dist/studio/assets/index-D11atkBt.css +1 -0
  519. package/vendor/hyperframes/dist/studio/assets/index-DMTt9nTf.js +531 -0
  520. package/vendor/hyperframes/dist/studio/assets/index-oE1pOdAy.js +399 -0
  521. package/vendor/hyperframes/dist/studio/chunk-5VSXRGIX.js +948 -0
  522. package/vendor/hyperframes/dist/studio/chunk-5VSXRGIX.js.map +1 -0
  523. package/vendor/hyperframes/dist/studio/chunk-7UQWVN52.js +938 -0
  524. package/vendor/hyperframes/dist/studio/chunk-7UQWVN52.js.map +1 -0
  525. package/vendor/hyperframes/dist/studio/chunk-EEXSYY5F.js +190 -0
  526. package/vendor/hyperframes/dist/studio/chunk-EEXSYY5F.js.map +1 -0
  527. package/vendor/hyperframes/dist/studio/chunk-FOEID72M.js +1441 -0
  528. package/vendor/hyperframes/dist/studio/chunk-FOEID72M.js.map +1 -0
  529. package/vendor/hyperframes/dist/studio/chunk-PZ5AY32C.js +10 -0
  530. package/vendor/hyperframes/dist/studio/chunk-PZ5AY32C.js.map +1 -0
  531. package/vendor/hyperframes/dist/studio/chunk-TDWGXBUT.js +1103 -0
  532. package/vendor/hyperframes/dist/studio/chunk-TDWGXBUT.js.map +1 -0
  533. package/vendor/hyperframes/dist/studio/domEditingLayers-IEVLO54Z.js +47 -0
  534. package/vendor/hyperframes/dist/studio/domEditingLayers-IEVLO54Z.js.map +1 -0
  535. package/vendor/hyperframes/dist/studio/favicon.svg +14 -0
  536. package/vendor/hyperframes/dist/studio/icons/timeline/audio.svg +7 -0
  537. package/vendor/hyperframes/dist/studio/icons/timeline/captions.svg +5 -0
  538. package/vendor/hyperframes/dist/studio/icons/timeline/composition.svg +12 -0
  539. package/vendor/hyperframes/dist/studio/icons/timeline/image.svg +18 -0
  540. package/vendor/hyperframes/dist/studio/icons/timeline/music.svg +10 -0
  541. package/vendor/hyperframes/dist/studio/icons/timeline/text.svg +3 -0
  542. package/vendor/hyperframes/dist/studio/index.css +165 -0
  543. package/vendor/hyperframes/dist/studio/index.css.map +1 -0
  544. package/vendor/hyperframes/dist/studio/index.d.ts +4296 -0
  545. package/vendor/hyperframes/dist/studio/index.html +23 -0
  546. package/vendor/hyperframes/dist/studio/index.js +99693 -0
  547. package/vendor/hyperframes/dist/studio/index.js.map +1 -0
  548. package/vendor/hyperframes/dist/studio/player.d.ts +30 -0
  549. package/vendor/hyperframes/dist/studio/player.js +10 -0
  550. package/vendor/hyperframes/dist/studio/player.js.map +1 -0
  551. package/vendor/hyperframes/dist/studio/styles/tailwind-preset.d.ts +39 -0
  552. package/vendor/hyperframes/dist/studio/styles/tailwind-preset.js +50 -0
  553. package/vendor/hyperframes/dist/studio/styles/tailwind-preset.js.map +1 -0
  554. package/vendor/hyperframes/dist/studio/styles.css +1 -0
  555. package/vendor/hyperframes/dist/studio/ui.d.ts +296 -0
  556. package/vendor/hyperframes/dist/studio/ui.js +66 -0
  557. package/vendor/hyperframes/dist/studio/ui.js.map +1 -0
  558. package/vendor/hyperframes/dist/studio-api-PNQZRPX5.js +136 -0
  559. package/vendor/hyperframes/dist/studioSelectionClient-IUUPKUHZ.js +25 -0
  560. package/vendor/hyperframes/dist/studioServer-UWRBPIOJ.js +1457 -0
  561. package/vendor/hyperframes/dist/synthesize-K62TIZWI.js +182 -0
  562. package/vendor/hyperframes/dist/system-EZYZNUFD.js +44 -0
  563. package/vendor/hyperframes/dist/telemetry-2YC4SGQU.js +144 -0
  564. package/vendor/hyperframes/dist/telemetry-QMYM4WME.js +95 -0
  565. package/vendor/hyperframes/dist/templates/_shared/AGENTS.md +107 -0
  566. package/vendor/hyperframes/dist/templates/_shared/CLAUDE.md +107 -0
  567. package/vendor/hyperframes/dist/templates/blank/index.html +55 -0
  568. package/vendor/hyperframes/dist/templates/from-file/index.html +75 -0
  569. package/vendor/hyperframes/dist/templates/warm-grain/compositions/captions.html +154 -0
  570. package/vendor/hyperframes/dist/templates/warm-grain/compositions/graphics.html +162 -0
  571. package/vendor/hyperframes/dist/templates/warm-grain/compositions/intro.html +87 -0
  572. package/vendor/hyperframes/dist/templates/warm-grain/index.html +264 -0
  573. package/vendor/hyperframes/dist/templates/warm-grain/registry-item.json +34 -0
  574. package/vendor/hyperframes/dist/timeline-77Z3BBQM.js +1377 -0
  575. package/vendor/hyperframes/dist/tokens-OBGTYE4Z.js +92 -0
  576. package/vendor/hyperframes/dist/transcribe-7NVFHCGA.js +387 -0
  577. package/vendor/hyperframes/dist/transcribe-BNSJRR4M.js +62 -0
  578. package/vendor/hyperframes/dist/tts-P3LIPIL5.js +234 -0
  579. package/vendor/hyperframes/dist/updateCheck-UDWIJ4ZQ.js +39 -0
  580. package/vendor/hyperframes/dist/upgrade-CT3CPO3E.js +231 -0
  581. package/vendor/hyperframes/dist/urlDownloader-H6WRI2UE.js +39 -0
  582. package/vendor/hyperframes/dist/usage-EC3KFUIJ.js +2139 -0
  583. package/vendor/hyperframes/dist/validate-65QDZJWZ.js +70 -0
  584. package/vendor/hyperframes/dist/video-FGSGKRSV.js +261 -0
  585. package/vendor/hyperframes/dist/workspaceBuildCheck-TOLGAI4T.js +133 -0
  586. package/vendor/hyperframes/package.json +80 -0
@@ -0,0 +1,647 @@
1
+ import { createRequire as __hf_createRequire } from "node:module";
2
+ import { fileURLToPath as __hf_fileURLToPath } from "node:url";
3
+ import { dirname as __hf_dirname } from "node:path";
4
+ var require = __hf_createRequire(import.meta.url);
5
+ var __filename = __hf_fileURLToPath(import.meta.url);
6
+ var __dirname = __hf_dirname(__filename);
7
+ import {
8
+ refreshIfNeeded
9
+ } from "./chunk-SHB5VDMH.js";
10
+ import {
11
+ buildAuthHeaders,
12
+ isAuthError,
13
+ isTokenExpired,
14
+ tryResolveCredential
15
+ } from "./chunk-I465DBM6.js";
16
+ import {
17
+ CSS_URL_RE,
18
+ isNonRelativeUrl,
19
+ isPathInside
20
+ } from "./chunk-TQFG7HTI.js";
21
+ import {
22
+ parseHTML
23
+ } from "./chunk-GK4AIFIH.js";
24
+
25
+ // src/utils/projectLink.ts
26
+ import { randomUUID } from "crypto";
27
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
28
+ import { homedir } from "os";
29
+ import { join, resolve } from "path";
30
+ var CONFIG_DIR = join(homedir(), ".hyperframes");
31
+ var PROJECTS_FILE = join(CONFIG_DIR, "projects.json");
32
+ function readJsonRecord(path) {
33
+ try {
34
+ if (!existsSync(path)) return null;
35
+ const parsed = JSON.parse(readFileSync(path, "utf-8"));
36
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) return null;
37
+ return parsed;
38
+ } catch {
39
+ return null;
40
+ }
41
+ }
42
+ function isProjectLink(value) {
43
+ if (typeof value !== "object" || value === null || Array.isArray(value)) return false;
44
+ const link = value;
45
+ return typeof link.projectId === "string" && link.projectId.length > 0 && typeof link.url === "string";
46
+ }
47
+ function readProjectLinks() {
48
+ const record = readJsonRecord(PROJECTS_FILE);
49
+ if (!record) return {};
50
+ const links = {};
51
+ for (const [path, value] of Object.entries(record)) {
52
+ if (isProjectLink(value)) {
53
+ links[path] = { projectId: value.projectId, url: value.url };
54
+ }
55
+ }
56
+ return links;
57
+ }
58
+ function writeProjectLinks(links) {
59
+ try {
60
+ mkdirSync(CONFIG_DIR, { recursive: true, mode: 448 });
61
+ writeFileSync(PROJECTS_FILE, `${JSON.stringify(links, null, 2)}
62
+ `, { mode: 384 });
63
+ } catch {
64
+ }
65
+ }
66
+ function readProjectLink(absDir) {
67
+ return readProjectLinks()[resolve(absDir)] ?? null;
68
+ }
69
+ function writeProjectLink(absDir, link) {
70
+ const links = readProjectLinks();
71
+ links[resolve(absDir)] = { projectId: link.projectId, url: link.url };
72
+ writeProjectLinks(links);
73
+ }
74
+ function ensureProjectId(absDir) {
75
+ const links = readProjectLinks();
76
+ const path = resolve(absDir);
77
+ const existing = links[path];
78
+ if (existing) return existing.projectId;
79
+ const projectId = randomUUID();
80
+ links[path] = { projectId, url: "" };
81
+ writeProjectLinks(links);
82
+ return projectId;
83
+ }
84
+ var TEAM_PROJECT_DIR = ".hyperframes";
85
+ var TEAM_PROJECT_FILE = "project.json";
86
+ function teamProjectPath(projectDir) {
87
+ return join(resolve(projectDir), TEAM_PROJECT_DIR, TEAM_PROJECT_FILE);
88
+ }
89
+ function readTeamProject(projectDir) {
90
+ const record = readJsonRecord(teamProjectPath(projectDir));
91
+ if (!record || typeof record.projectId !== "string" || record.projectId.length === 0) return null;
92
+ const spaceId = typeof record.spaceId === "string" && record.spaceId.length > 0 ? record.spaceId : void 0;
93
+ return { projectId: record.projectId, ...spaceId ? { spaceId } : {} };
94
+ }
95
+ function writeTeamProject(projectDir, team) {
96
+ const file = teamProjectPath(projectDir);
97
+ const body = {
98
+ projectId: team.projectId,
99
+ ...team.spaceId ? { spaceId: team.spaceId } : {}
100
+ };
101
+ mkdirSync(join(resolve(projectDir), TEAM_PROJECT_DIR), { recursive: true });
102
+ writeFileSync(file, `${JSON.stringify(body, null, 2)}
103
+ `);
104
+ return file;
105
+ }
106
+
107
+ // src/utils/publishProject.ts
108
+ import { basename, dirname, join as join2, posix, relative, resolve as resolve2 } from "path";
109
+ import { existsSync as existsSync2, readdirSync, readFileSync as readFileSync2, statSync } from "fs";
110
+ import AdmZip from "adm-zip";
111
+ import ignore from "ignore";
112
+ var IGNORED_DIRS = /* @__PURE__ */ new Set([".git", "node_modules", "dist", ".next", "coverage"]);
113
+ var IGNORED_FILES = /* @__PURE__ */ new Set([".DS_Store", "Thumbs.db"]);
114
+ var HYPERFRAMES_IGNORE_FILE = ".hyperframesignore";
115
+ var DEFAULT_PROJECT_IGNORE = ["/renders/", "/snapshots/", ".*"];
116
+ var PUBLISH_CONTENT_TYPE = "application/zip";
117
+ var PUBLISH_METADATA_TIMEOUT_MS = 3e4;
118
+ var PUBLISH_UPLOAD_MIN_TIMEOUT_MS = 12e4;
119
+ var PUBLISH_TRANSPORT_ATTEMPTS = 2;
120
+ var PUBLISH_RETRY_DELAY_MS = 200;
121
+ var PUBLISH_UPLOAD_BYTES_PER_SECOND = 5e5;
122
+ function isRecord(value) {
123
+ return typeof value === "object" && value !== null && !Array.isArray(value);
124
+ }
125
+ function dataRecord(payload) {
126
+ if (!isRecord(payload) || !isRecord(payload["data"])) return null;
127
+ return payload["data"];
128
+ }
129
+ function stringField(record, key) {
130
+ const value = record[key];
131
+ return typeof value === "string" ? value : null;
132
+ }
133
+ function parsePublishedProjectResponse(payload) {
134
+ const data = dataRecord(payload);
135
+ if (!data) return null;
136
+ const projectId = stringField(data, "project_id");
137
+ const title = stringField(data, "title");
138
+ const url = stringField(data, "url");
139
+ const claimToken = stringField(data, "claim_token") ?? "";
140
+ const claimed = data["claimed"] === true;
141
+ const fileCount = data["file_count"];
142
+ if (!projectId || !title || !url || typeof fileCount !== "number") {
143
+ return null;
144
+ }
145
+ if (!claimed && !claimToken) {
146
+ return null;
147
+ }
148
+ return {
149
+ projectId,
150
+ title,
151
+ fileCount,
152
+ url,
153
+ claimToken,
154
+ claimed
155
+ };
156
+ }
157
+ function parseStagedUploadResponse(payload, archiveByteLength) {
158
+ const data = dataRecord(payload);
159
+ if (!data) return null;
160
+ const uploadUrl = stringField(data, "upload_url");
161
+ const uploadKey = stringField(data, "upload_key");
162
+ const contentType = stringField(data, "content_type") || PUBLISH_CONTENT_TYPE;
163
+ if (!uploadUrl || !uploadKey) return null;
164
+ const rawExpires = data["expires_in_seconds"];
165
+ const expiresInSeconds = typeof rawExpires === "number" && rawExpires > 0 ? rawExpires : 1800;
166
+ return {
167
+ uploadUrl,
168
+ uploadKey,
169
+ contentType,
170
+ uploadHeaders: getUploadHeaders(data, uploadUrl, contentType, archiveByteLength),
171
+ expiresInSeconds
172
+ };
173
+ }
174
+ function getUploadHeaders(data, uploadUrl, contentType, archiveByteLength) {
175
+ const headers = {};
176
+ const uploadHeaders = data["upload_headers"];
177
+ if (isRecord(uploadHeaders)) {
178
+ for (const [key, value] of Object.entries(uploadHeaders)) {
179
+ if (typeof value === "string" && key.trim()) {
180
+ headers[key] = value;
181
+ }
182
+ }
183
+ }
184
+ if (!Object.keys(headers).some((key) => key.toLowerCase() === "content-type")) {
185
+ headers["content-type"] = contentType;
186
+ }
187
+ const signedHeaders = new URL(uploadUrl).searchParams.get("X-Amz-SignedHeaders");
188
+ if (signedHeaders?.split(";").includes("x-amz-server-side-encryption") && !Object.keys(headers).some((key) => key.toLowerCase() === "x-amz-server-side-encryption")) {
189
+ headers["x-amz-server-side-encryption"] = "AES256";
190
+ }
191
+ if (signedHeaders?.split(";").includes("content-length") && !Object.keys(headers).some((key) => key.toLowerCase() === "content-length")) {
192
+ headers["content-length"] = String(archiveByteLength);
193
+ }
194
+ return headers;
195
+ }
196
+ async function readJson(response) {
197
+ return response.clone().json().catch(() => null);
198
+ }
199
+ var CredentialRejectedError = class extends Error {
200
+ };
201
+ async function metadataRequestError(response, fallback) {
202
+ const message = await readErrorMessage(response, fallback);
203
+ return response.status === 401 ? new CredentialRejectedError(message) : new Error(message);
204
+ }
205
+ var LOGIN_EXPIRED = "Your login expired. Run hyperframes auth login, then publish again.";
206
+ var LOGIN_CHANGED = "Your login changed during publish. Run publish again.";
207
+ var API_KEY_ENV_VAR = { env: "HEYGEN_API_KEY", env_alias: "HYPERFRAMES_API_KEY" };
208
+ function rejectedCredentialMessage(credential) {
209
+ if (credential.type === "api_key" && (credential.source === "env" || credential.source === "env_alias")) {
210
+ return `${API_KEY_ENV_VAR[credential.source]} was rejected. Fix or unset it, then publish again.`;
211
+ }
212
+ return LOGIN_EXPIRED;
213
+ }
214
+ async function resolvePublishCredential(checked) {
215
+ try {
216
+ const credential = checked === void 0 ? await tryResolveCredential() : checked;
217
+ if (!credential) return null;
218
+ const expired = credential.type === "oauth" && isTokenExpired(credential.expires_at, /* @__PURE__ */ new Date());
219
+ if (expired && !credential.refresh_token) throw new Error(LOGIN_EXPIRED);
220
+ return await refreshIfNeeded(expired ? { ...credential, refreshable: true } : credential);
221
+ } catch (error) {
222
+ if (isAuthError(error) && (error.code === "REFRESH_FAILED" || error.code === "LOGIN_EXPIRED")) {
223
+ throw new Error(LOGIN_EXPIRED);
224
+ }
225
+ if (isAuthError(error) && error.code === "LOGIN_CHANGED") throw new Error(LOGIN_CHANGED);
226
+ throw error;
227
+ }
228
+ }
229
+ async function readErrorMessage(response, fallback) {
230
+ const contentType = response.headers.get("content-type") || "";
231
+ if (contentType.includes("application/json")) {
232
+ const payload = await readJson(response);
233
+ if (isRecord(payload) && typeof payload["message"] === "string") {
234
+ return payload["message"];
235
+ }
236
+ }
237
+ if (response.status === 403 && response.headers.get("cf-mitigated") === "challenge") {
238
+ return "Publish upload was blocked before reaching HyperFrames. Please retry after staged uploads are available.";
239
+ }
240
+ const text = await response.text().catch(() => "");
241
+ return text.trim() ? `${fallback}: ${text.trim().slice(0, 180)}` : fallback;
242
+ }
243
+ function systemErrorMetadata(value) {
244
+ if (!isRecord(value)) return [];
245
+ const metadata = [];
246
+ if (typeof value["code"] === "string") metadata.push(value["code"]);
247
+ if (typeof value["syscall"] === "string") metadata.push(`syscall=${value["syscall"]}`);
248
+ if (typeof value["errno"] === "string" || typeof value["errno"] === "number") {
249
+ metadata.push(`errno=${value["errno"]}`);
250
+ }
251
+ return metadata;
252
+ }
253
+ function redactUrlQuery(message) {
254
+ return message.replace(/(https?:\/\/[^\s?]+)\?[^\s]+/gu, "$1?[redacted]");
255
+ }
256
+ function proxySupportHint() {
257
+ const proxyConfigured = ["HTTPS_PROXY", "HTTP_PROXY", "https_proxy", "http_proxy"].some(
258
+ (key) => Boolean(process.env[key]?.trim())
259
+ );
260
+ const proxyEnabled = process.env["NODE_USE_ENV_PROXY"] === "1" || process.execArgv.includes("--use-env-proxy") || process.env["NODE_OPTIONS"]?.split(/\s+/u).includes("--use-env-proxy") === true;
261
+ if (!proxyConfigured || proxyEnabled) return "";
262
+ return ". Proxy variables are set but ignored by Node fetch; if this network requires them, retry with NODE_USE_ENV_PROXY=1 (Node 22.21+)";
263
+ }
264
+ function describeFetchFailure(error) {
265
+ const message = error instanceof Error ? error.message : String(error);
266
+ const cause = error instanceof Error ? error.cause : void 0;
267
+ const causeMessage = cause instanceof Error ? cause.message : "";
268
+ const metadata = [...systemErrorMetadata(cause), ...systemErrorMetadata(error)].filter(
269
+ (value, index, all) => all.indexOf(value) === index
270
+ );
271
+ const distinctCauseMessage = causeMessage && causeMessage !== message ? causeMessage : "";
272
+ const detail = [metadata.join(", "), distinctCauseMessage].filter(Boolean).join(": ");
273
+ return `${redactUrlQuery(message)}${detail ? ` (${redactUrlQuery(detail)})` : ""}${proxySupportHint()}`;
274
+ }
275
+ function isRequestTimeout(error) {
276
+ return error instanceof DOMException && (error.name === "TimeoutError" || error.name === "AbortError");
277
+ }
278
+ function waitBeforePublishRetry() {
279
+ return new Promise((resolve3) => setTimeout(resolve3, PUBLISH_RETRY_DELAY_MS));
280
+ }
281
+ async function fetchForPublish(input, createInit, failureStage, attempts = 1) {
282
+ if (attempts < 1) throw new RangeError("Publish fetch attempts must be at least 1");
283
+ let lastError;
284
+ let attemptsMade = 0;
285
+ for (let attempt = 1; attempt <= attempts; attempt += 1) {
286
+ attemptsMade = attempt;
287
+ try {
288
+ return await fetch(input, createInit());
289
+ } catch (error) {
290
+ lastError = error;
291
+ if (isRequestTimeout(error) || attempt === attempts) break;
292
+ await waitBeforePublishRetry();
293
+ }
294
+ }
295
+ const attemptDetail = attemptsMade > 1 ? ` after ${attemptsMade} attempts` : "";
296
+ throw new Error(`${failureStage}${attemptDetail}: ${describeFetchFailure(lastError)}`, {
297
+ cause: lastError instanceof Error ? lastError : void 0
298
+ });
299
+ }
300
+ function uploadTimeoutMs(byteLength) {
301
+ return Math.max(
302
+ PUBLISH_UPLOAD_MIN_TIMEOUT_MS,
303
+ Math.ceil(byteLength / PUBLISH_UPLOAD_BYTES_PER_SECOND * 1e3)
304
+ );
305
+ }
306
+ function shouldIgnoreSegment(segment) {
307
+ return IGNORED_DIRS.has(segment) || IGNORED_FILES.has(segment);
308
+ }
309
+ function createProjectIgnore(rootDir) {
310
+ const matcher = ignore().add(DEFAULT_PROJECT_IGNORE);
311
+ const ignorePath = join2(rootDir, HYPERFRAMES_IGNORE_FILE);
312
+ if (existsSync2(ignorePath)) {
313
+ matcher.add(readFileSync2(ignorePath, "utf-8"));
314
+ }
315
+ return matcher;
316
+ }
317
+ function collectProjectFiles(rootDir, currentDir, paths, matcher) {
318
+ for (const entry of readdirSync(currentDir, { withFileTypes: true })) {
319
+ if (shouldIgnoreSegment(entry.name)) continue;
320
+ const absolutePath = join2(currentDir, entry.name);
321
+ const relativePath = relative(rootDir, absolutePath).replaceAll("\\", "/");
322
+ if (!relativePath) continue;
323
+ if (entry.isDirectory()) {
324
+ if (matcher.ignores(`${relativePath}/`)) continue;
325
+ collectProjectFiles(rootDir, absolutePath, paths, matcher);
326
+ continue;
327
+ }
328
+ if (!statSync(absolutePath).isFile()) continue;
329
+ if (matcher.ignores(relativePath)) continue;
330
+ paths.push(relativePath);
331
+ }
332
+ }
333
+ var EXT_ASSETS_PREFIX = "_ext";
334
+ function addExternalAsset(ctx, absPath) {
335
+ const existing = ctx.externalMap.get(absPath);
336
+ if (existing) return existing;
337
+ const rel = relative(ctx.absProjectDir, absPath).replaceAll("\\", "/");
338
+ const stripped = rel.replace(/^(?:\.\.\/)+/, "");
339
+ let archivePath = `${EXT_ASSETS_PREFIX}/${stripped}`;
340
+ if (ctx.usedArchivePaths.has(archivePath)) {
341
+ const ext = posix.extname(archivePath);
342
+ const base = archivePath.slice(0, archivePath.length - ext.length);
343
+ let i = 2;
344
+ while (ctx.usedArchivePaths.has(`${base}_${i}${ext}`)) i++;
345
+ archivePath = `${base}_${i}${ext}`;
346
+ }
347
+ ctx.fileContents.set(archivePath, readFileSync2(absPath));
348
+ ctx.externalMap.set(absPath, archivePath);
349
+ ctx.usedArchivePaths.add(archivePath);
350
+ return archivePath;
351
+ }
352
+ function tryResolveExternal(ctx, rawPath, referrerAbsDir) {
353
+ if (isNonRelativeUrl(rawPath)) return null;
354
+ const absPath = resolve2(referrerAbsDir, rawPath);
355
+ if (isPathInside(absPath, ctx.absProjectDir)) return null;
356
+ try {
357
+ if (!existsSync2(absPath) || !statSync(absPath).isFile()) return null;
358
+ } catch {
359
+ return null;
360
+ }
361
+ return addExternalAsset(ctx, absPath);
362
+ }
363
+ function rewriteCssUrls(ctx, css, referrerAbsDir, entryPath) {
364
+ let modified = false;
365
+ const rewritten = css.replace(CSS_URL_RE, (full, quote, rawUrl) => {
366
+ const archivePath = tryResolveExternal(ctx, (rawUrl || "").trim(), referrerAbsDir);
367
+ if (!archivePath) return full;
368
+ modified = true;
369
+ return `url(${quote || ""}${posix.relative(posix.dirname(entryPath), archivePath)}${quote || ""})`;
370
+ });
371
+ return { css: rewritten, modified };
372
+ }
373
+ function rewriteHtmlAttributes(document, referrerAbsDir, entryPath, resolveTarget, options = {}) {
374
+ const attrs = options.attrs ?? ["src", "href"];
375
+ const selector = options.selector ?? attrs.map((attr) => `[${attr}]`).join(", ");
376
+ let modified = false;
377
+ for (const el of document.querySelectorAll(selector)) {
378
+ for (const attr of attrs) {
379
+ const val = (el.getAttribute(attr) || "").trim();
380
+ if (!val) continue;
381
+ const archivePath = resolveTarget(val, referrerAbsDir);
382
+ if (!archivePath) continue;
383
+ el.setAttribute(attr, posix.relative(posix.dirname(entryPath), archivePath));
384
+ modified = true;
385
+ }
386
+ }
387
+ return modified;
388
+ }
389
+ function rewriteStyleBlocks(ctx, document, referrerAbsDir, entryPath) {
390
+ let modified = false;
391
+ for (const styleEl of document.querySelectorAll("style")) {
392
+ const css = styleEl.textContent || "";
393
+ if (!css.includes("url(")) continue;
394
+ const result = rewriteCssUrls(ctx, css, referrerAbsDir, entryPath);
395
+ if (result.modified) {
396
+ styleEl.textContent = result.css;
397
+ modified = true;
398
+ }
399
+ }
400
+ for (const el of document.querySelectorAll("[style]")) {
401
+ const style = el.getAttribute("style") || "";
402
+ if (!style.includes("url(")) continue;
403
+ const result = rewriteCssUrls(ctx, style, referrerAbsDir, entryPath);
404
+ if (result.modified) {
405
+ el.setAttribute("style", result.css);
406
+ modified = true;
407
+ }
408
+ }
409
+ return modified;
410
+ }
411
+ function localizeHtmlEntry(ctx, entryPath, content) {
412
+ const referrerAbsDir = resolve2(ctx.absProjectDir, dirname(entryPath));
413
+ const { document } = parseHTML(content.toString("utf-8"));
414
+ const attrsChanged = rewriteHtmlAttributes(
415
+ document,
416
+ referrerAbsDir,
417
+ entryPath,
418
+ (val, dir) => tryResolveExternal(ctx, val, dir)
419
+ );
420
+ const stylesChanged = rewriteStyleBlocks(ctx, document, referrerAbsDir, entryPath);
421
+ if (attrsChanged || stylesChanged) {
422
+ ctx.fileContents.set(entryPath, Buffer.from(document.toString(), "utf-8"));
423
+ }
424
+ }
425
+ function localizeCssEntry(ctx, entryPath, content) {
426
+ const referrerAbsDir = resolve2(ctx.absProjectDir, dirname(entryPath));
427
+ const css = content.toString("utf-8");
428
+ if (!css.includes("url(")) return;
429
+ const result = rewriteCssUrls(ctx, css, referrerAbsDir, entryPath);
430
+ if (result.modified) {
431
+ ctx.fileContents.set(entryPath, Buffer.from(result.css, "utf-8"));
432
+ }
433
+ }
434
+ function localizeExternalAssets(absProjectDir, fileContents) {
435
+ const ctx = {
436
+ absProjectDir,
437
+ fileContents,
438
+ externalMap: /* @__PURE__ */ new Map(),
439
+ usedArchivePaths: /* @__PURE__ */ new Set()
440
+ };
441
+ for (const [entryPath, content] of [...fileContents.entries()]) {
442
+ if (entryPath.startsWith(EXT_ASSETS_PREFIX + "/")) continue;
443
+ if (entryPath.endsWith(".html") || entryPath.endsWith(".htm")) {
444
+ localizeHtmlEntry(ctx, entryPath, content);
445
+ } else if (entryPath.endsWith(".css")) {
446
+ localizeCssEntry(ctx, entryPath, content);
447
+ }
448
+ }
449
+ return ctx.externalMap.size;
450
+ }
451
+ function buildPublishFileMap(projectDir) {
452
+ const absProjectDir = resolve2(projectDir);
453
+ const filePaths = [];
454
+ collectProjectFiles(absProjectDir, absProjectDir, filePaths, createProjectIgnore(absProjectDir));
455
+ if (!filePaths.includes("index.html")) {
456
+ throw new Error(
457
+ "Project archive must include index.html at the root. Check that .hyperframesignore does not exclude it."
458
+ );
459
+ }
460
+ const fileContents = /* @__PURE__ */ new Map();
461
+ for (const filePath of filePaths) {
462
+ fileContents.set(filePath, readFileSync2(join2(absProjectDir, filePath)));
463
+ }
464
+ localizeExternalAssets(absProjectDir, fileContents);
465
+ return fileContents;
466
+ }
467
+ var ARCHIVE_ENTRY_TIME = new Date(1980, 0, 1, 0, 0, 0, 0);
468
+ function zipPublishFileMap(fileContents) {
469
+ const archive = new AdmZip();
470
+ for (const [filePath, content] of fileContents) {
471
+ archive.addFile(filePath, content);
472
+ }
473
+ for (const entry of archive.getEntries()) {
474
+ entry.header.time = ARCHIVE_ENTRY_TIME;
475
+ }
476
+ return {
477
+ buffer: archive.toBuffer(),
478
+ fileCount: fileContents.size
479
+ };
480
+ }
481
+ function createPublishArchive(projectDir) {
482
+ return zipPublishFileMap(buildPublishFileMap(projectDir));
483
+ }
484
+ function getPublishApiBaseUrl() {
485
+ return (process.env["HYPERFRAMES_PUBLISHED_PROJECTS_API_URL"] || process.env["HEYGEN_API_URL"] || "https://api2.heygen.com").replace(/\/$/, "");
486
+ }
487
+ function archiveArrayBuffer(archive) {
488
+ const arrayBuffer = new ArrayBuffer(archive.buffer.byteLength);
489
+ new Uint8Array(arrayBuffer).set(archive.buffer);
490
+ return arrayBuffer;
491
+ }
492
+ async function publishProjectArchiveDirect(apiBaseUrl, title, archive, isPublic, authHeaders, projectId) {
493
+ const body = new FormData();
494
+ body.set("title", title);
495
+ if (isPublic) body.set("is_public", "true");
496
+ if (projectId) body.set("project_id", projectId);
497
+ body.set(
498
+ "file",
499
+ new File([archiveArrayBuffer(archive)], `${title}.zip`, { type: PUBLISH_CONTENT_TYPE })
500
+ );
501
+ const headers = { ...authHeaders };
502
+ const response = await fetchForPublish(
503
+ `${apiBaseUrl}/v1/hyperframes/projects/publish`,
504
+ () => ({
505
+ method: "POST",
506
+ body,
507
+ headers,
508
+ signal: AbortSignal.timeout(uploadTimeoutMs(archive.buffer.byteLength))
509
+ }),
510
+ "Failed to publish project"
511
+ );
512
+ const payload = await readJson(response);
513
+ const publishedProject = parsePublishedProjectResponse(payload);
514
+ if (!response.ok || !publishedProject) {
515
+ throw await metadataRequestError(response, "Failed to publish project");
516
+ }
517
+ return publishedProject;
518
+ }
519
+ async function uploadArchiveToPresignedUrl(stagedUpload, archive) {
520
+ const presignedUrlTtlMs = stagedUpload.expiresInSeconds * 1e3 - PUBLISH_METADATA_TIMEOUT_MS;
521
+ const s3Response = await fetchForPublish(
522
+ stagedUpload.uploadUrl,
523
+ () => ({
524
+ method: "PUT",
525
+ body: new Blob([archiveArrayBuffer(archive)], { type: stagedUpload.contentType }),
526
+ headers: stagedUpload.uploadHeaders,
527
+ signal: AbortSignal.timeout(
528
+ Math.min(uploadTimeoutMs(archive.buffer.byteLength), presignedUrlTtlMs)
529
+ )
530
+ }),
531
+ "Failed to upload project archive",
532
+ PUBLISH_TRANSPORT_ATTEMPTS
533
+ );
534
+ if (!s3Response.ok) {
535
+ throw new Error(await readErrorMessage(s3Response, "Failed to upload project archive"));
536
+ }
537
+ }
538
+ async function publishProjectArchiveStaged(apiBaseUrl, title, archive, isPublic, authHeaders, projectId) {
539
+ const fileName = `${title}.zip`;
540
+ const uploadResponse = await fetchForPublish(
541
+ `${apiBaseUrl}/v1/hyperframes/projects/publish/upload`,
542
+ () => ({
543
+ method: "POST",
544
+ body: JSON.stringify({
545
+ file_name: fileName,
546
+ content_type: PUBLISH_CONTENT_TYPE,
547
+ content_length: archive.buffer.byteLength
548
+ }),
549
+ headers: {
550
+ ...authHeaders,
551
+ "content-type": "application/json"
552
+ },
553
+ signal: AbortSignal.timeout(PUBLISH_METADATA_TIMEOUT_MS)
554
+ }),
555
+ "Failed to prepare project upload",
556
+ PUBLISH_TRANSPORT_ATTEMPTS
557
+ );
558
+ if (uploadResponse.status === 404 || uploadResponse.status === 405) {
559
+ return null;
560
+ }
561
+ const uploadPayload = await readJson(uploadResponse);
562
+ const stagedUpload = parseStagedUploadResponse(uploadPayload, archive.buffer.byteLength);
563
+ if (!uploadResponse.ok || !stagedUpload) {
564
+ throw await metadataRequestError(uploadResponse, "Failed to prepare project upload");
565
+ }
566
+ await uploadArchiveToPresignedUrl(stagedUpload, archive);
567
+ const completeResponse = await fetchForPublish(
568
+ `${apiBaseUrl}/v1/hyperframes/projects/publish/complete`,
569
+ () => ({
570
+ method: "POST",
571
+ body: JSON.stringify({
572
+ upload_key: stagedUpload.uploadKey,
573
+ file_name: fileName,
574
+ title,
575
+ ...isPublic ? { is_public: true } : {},
576
+ ...projectId ? { project_id: projectId } : {}
577
+ }),
578
+ headers: {
579
+ ...authHeaders,
580
+ "content-type": "application/json"
581
+ },
582
+ signal: AbortSignal.timeout(uploadTimeoutMs(archive.buffer.byteLength))
583
+ }),
584
+ "Failed to finalize project publish"
585
+ );
586
+ const completePayload = await readJson(completeResponse);
587
+ const publishedProject = parsePublishedProjectResponse(completePayload);
588
+ if (!completeResponse.ok || !publishedProject) {
589
+ throw await metadataRequestError(completeResponse, "Failed to publish project");
590
+ }
591
+ return publishedProject;
592
+ }
593
+ async function publishProjectArchive(projectDir, opts = {}) {
594
+ const isPublic = opts.public === true;
595
+ const title = basename(projectDir);
596
+ const archive = opts.archive ?? createPublishArchive(projectDir);
597
+ const apiBaseUrl = getPublishApiBaseUrl();
598
+ const credential = await resolvePublishCredential(opts.credential);
599
+ const authHeaders = credential ? buildAuthHeaders(credential) : {};
600
+ const projectId = credential ? opts.projectId : void 0;
601
+ const spaceId = credential ? opts.spaceId : void 0;
602
+ const metadataHeaders = spaceId ? { ...authHeaders, "x-space-id": spaceId } : authHeaders;
603
+ let result;
604
+ try {
605
+ result = await publishProjectArchiveStaged(
606
+ apiBaseUrl,
607
+ title,
608
+ archive,
609
+ isPublic,
610
+ metadataHeaders,
611
+ projectId
612
+ ) ?? await publishProjectArchiveDirect(
613
+ apiBaseUrl,
614
+ title,
615
+ archive,
616
+ isPublic,
617
+ metadataHeaders,
618
+ projectId
619
+ );
620
+ if (credential?.type === "oauth" && !result.claimed) {
621
+ throw new CredentialRejectedError("unclaimed publish");
622
+ }
623
+ } catch (error) {
624
+ if (error instanceof CredentialRejectedError && credential) {
625
+ throw new Error(rejectedCredentialMessage(credential));
626
+ }
627
+ throw error;
628
+ }
629
+ if (result.claimed) {
630
+ writeProjectLink(projectDir, { projectId: result.projectId, url: result.url });
631
+ }
632
+ return result;
633
+ }
634
+
635
+ export {
636
+ readProjectLink,
637
+ ensureProjectId,
638
+ readTeamProject,
639
+ writeTeamProject,
640
+ API_KEY_ENV_VAR,
641
+ resolvePublishCredential,
642
+ rewriteHtmlAttributes,
643
+ buildPublishFileMap,
644
+ zipPublishFileMap,
645
+ getPublishApiBaseUrl,
646
+ publishProjectArchive
647
+ };