@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,1024 @@
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
+
8
+ // ../parsers/dist/compositionContract.js
9
+ var COMPOSITION_CONTRACT_VERSION = 1;
10
+ var COMPOSITION_ATTRIBUTES = Object.freeze({
11
+ start: "data-start",
12
+ duration: "data-duration",
13
+ trackIndex: "data-track-index",
14
+ derivedEnd: "data-end",
15
+ legacyTrack: "data-layer"
16
+ });
17
+ var CANONICAL_AUTHORED_TIMING_ATTRIBUTES = Object.freeze([
18
+ COMPOSITION_ATTRIBUTES.start,
19
+ COMPOSITION_ATTRIBUTES.duration,
20
+ COMPOSITION_ATTRIBUTES.trackIndex
21
+ ]);
22
+ var DERIVED_TIMING_ATTRIBUTES = Object.freeze([
23
+ COMPOSITION_ATTRIBUTES.derivedEnd
24
+ ]);
25
+ var LEGACY_TIMING_ATTRIBUTES = Object.freeze([
26
+ COMPOSITION_ATTRIBUTES.derivedEnd,
27
+ COMPOSITION_ATTRIBUTES.legacyTrack
28
+ ]);
29
+ var ClipTimingWriteError = class extends Error {
30
+ code;
31
+ constructor(code, message) {
32
+ super(message);
33
+ this.name = "ClipTimingWriteError";
34
+ this.code = code;
35
+ }
36
+ };
37
+ function parseNumeric(value) {
38
+ if (value == null || value.trim() === "") return null;
39
+ const parsed = Number(value);
40
+ return Number.isFinite(parsed) ? parsed : null;
41
+ }
42
+ var REFERENCE_ID_PATTERN = /^[A-Za-z0-9_.:-]+$/;
43
+ function isAsciiDigitAt(value, index) {
44
+ const code = value.charCodeAt(index);
45
+ return code >= 48 && code <= 57;
46
+ }
47
+ function skipDigitsLeft(value, start) {
48
+ let cursor = start;
49
+ while (cursor >= 0 && isAsciiDigitAt(value, cursor)) cursor--;
50
+ return cursor;
51
+ }
52
+ function skipWhitespaceLeft(value, start) {
53
+ let cursor = start;
54
+ while (cursor >= 0 && (value[cursor] ?? "").trim() === "") cursor--;
55
+ return cursor;
56
+ }
57
+ function findMagnitudeStart(value) {
58
+ const last = value.length - 1;
59
+ if (!isAsciiDigitAt(value, last)) return null;
60
+ let cursor = skipDigitsLeft(value, last);
61
+ if (value[cursor] === ".") cursor = skipDigitsLeft(value, cursor - 1);
62
+ return cursor + 1;
63
+ }
64
+ function parseReferenceOffset(value) {
65
+ const magnitudeStart = findMagnitudeStart(value);
66
+ if (magnitudeStart == null) return null;
67
+ const operatorIndex = skipWhitespaceLeft(value, magnitudeStart - 1);
68
+ const operator = value[operatorIndex];
69
+ if (operator !== "+" && operator !== "-") return null;
70
+ const refId = value.slice(0, operatorIndex).trim();
71
+ if (!REFERENCE_ID_PATTERN.test(refId)) return null;
72
+ const magnitude = Number(value.slice(magnitudeStart));
73
+ if (!Number.isFinite(magnitude)) return null;
74
+ return { refId, operator, magnitude };
75
+ }
76
+ function parseStartExpression(raw) {
77
+ const normalized = (raw ?? "").trim();
78
+ if (!normalized) return null;
79
+ const absolute = parseNumeric(normalized);
80
+ if (absolute != null) return { kind: "absolute", value: absolute };
81
+ if (REFERENCE_ID_PATTERN.test(normalized)) {
82
+ return { kind: "reference", refId: normalized, offset: 0 };
83
+ }
84
+ const reference = parseReferenceOffset(normalized);
85
+ if (!reference) return null;
86
+ return {
87
+ kind: "reference",
88
+ refId: reference.refId,
89
+ offset: reference.operator === "-" ? -reference.magnitude : reference.magnitude
90
+ };
91
+ }
92
+ function pushDiagnostic(diagnostics, code, attribute, value) {
93
+ diagnostics.push({ code, attribute, value });
94
+ }
95
+ function resolveStart(expression, rawStart, options, diagnostics) {
96
+ if (rawStart == null || rawStart.trim() === "") {
97
+ return options.defaultStart === void 0 ? 0 : options.defaultStart;
98
+ }
99
+ if (!expression) {
100
+ pushDiagnostic(diagnostics, "invalid-start", COMPOSITION_ATTRIBUTES.start, rawStart);
101
+ return null;
102
+ }
103
+ if (expression.kind === "absolute") return Math.max(0, expression.value);
104
+ const referencedEnd = options.resolveReferenceEnd?.(expression.refId);
105
+ if (referencedEnd == null || !Number.isFinite(referencedEnd)) {
106
+ pushDiagnostic(
107
+ diagnostics,
108
+ "unresolved-start-reference",
109
+ COMPOSITION_ATTRIBUTES.start,
110
+ rawStart
111
+ );
112
+ return null;
113
+ }
114
+ return Math.max(0, referencedEnd + expression.offset);
115
+ }
116
+ var DERIVED_END_EQUALITY_EPSILON_SECONDS = 1e-9;
117
+ function derivedEndsAreConsistent(parsedEnd, canonicalEnd) {
118
+ return Math.abs(parsedEnd - canonicalEnd) <= DERIVED_END_EQUALITY_EPSILON_SECONDS;
119
+ }
120
+ function diagnoseDerivedEnd(rawEnd, canonicalEnd, diagnostics) {
121
+ const parsedEnd = parseNumeric(rawEnd);
122
+ if (parsedEnd == null) {
123
+ pushDiagnostic(diagnostics, "deprecated-end", COMPOSITION_ATTRIBUTES.derivedEnd, rawEnd);
124
+ pushDiagnostic(diagnostics, "invalid-end", COMPOSITION_ATTRIBUTES.derivedEnd, rawEnd);
125
+ return;
126
+ }
127
+ if (canonicalEnd == null) {
128
+ pushDiagnostic(diagnostics, "deprecated-end", COMPOSITION_ATTRIBUTES.derivedEnd, rawEnd);
129
+ return;
130
+ }
131
+ if (derivedEndsAreConsistent(parsedEnd, canonicalEnd)) {
132
+ return;
133
+ }
134
+ pushDiagnostic(diagnostics, "deprecated-end", COMPOSITION_ATTRIBUTES.derivedEnd, rawEnd);
135
+ pushDiagnostic(diagnostics, "conflicting-end", COMPOSITION_ATTRIBUTES.derivedEnd, rawEnd);
136
+ }
137
+ function readCanonicalDuration(rawDuration, start, diagnostics) {
138
+ const duration = parseNumeric(rawDuration);
139
+ if (duration == null || duration < 0) {
140
+ pushDiagnostic(diagnostics, "invalid-duration", COMPOSITION_ATTRIBUTES.duration, rawDuration);
141
+ return { duration: null, end: null, durationSource: "invalid" };
142
+ }
143
+ return {
144
+ duration,
145
+ end: start == null ? null : start + duration,
146
+ durationSource: "duration"
147
+ };
148
+ }
149
+ function readLegacyEnd(rawEnd, start, diagnostics) {
150
+ pushDiagnostic(diagnostics, "deprecated-end", COMPOSITION_ATTRIBUTES.derivedEnd, rawEnd);
151
+ const end = parseNumeric(rawEnd);
152
+ if (end == null) {
153
+ pushDiagnostic(diagnostics, "invalid-end", COMPOSITION_ATTRIBUTES.derivedEnd, rawEnd);
154
+ return { duration: null, end: null, durationSource: "invalid" };
155
+ }
156
+ if (start == null) return { duration: null, end, durationSource: "legacy-end" };
157
+ if (end < start) {
158
+ pushDiagnostic(diagnostics, "end-before-start", COMPOSITION_ATTRIBUTES.derivedEnd, rawEnd);
159
+ return { duration: null, end: null, durationSource: "invalid" };
160
+ }
161
+ return { duration: end - start, end, durationSource: "legacy-end" };
162
+ }
163
+ function readDuration(attributes, start, diagnostics) {
164
+ const rawDuration = attributes.getAttribute(COMPOSITION_ATTRIBUTES.duration);
165
+ const rawEnd = attributes.getAttribute(COMPOSITION_ATTRIBUTES.derivedEnd);
166
+ if (rawDuration == null) {
167
+ return rawEnd == null ? { duration: null, end: null, durationSource: "missing" } : readLegacyEnd(rawEnd, start, diagnostics);
168
+ }
169
+ const canonical = readCanonicalDuration(rawDuration, start, diagnostics);
170
+ if (rawEnd != null) diagnoseDerivedEnd(rawEnd, canonical.end, diagnostics);
171
+ return canonical;
172
+ }
173
+ function readTrackValue(rawValue, attribute, source, diagnostics) {
174
+ const trackIndex = parseNumeric(rawValue);
175
+ if (trackIndex == null || !Number.isInteger(trackIndex)) {
176
+ pushDiagnostic(diagnostics, "invalid-track-index", attribute, rawValue);
177
+ return { trackIndex: 0, trackSource: "invalid" };
178
+ }
179
+ return { trackIndex, trackSource: source };
180
+ }
181
+ function readTrack(attributes, diagnostics) {
182
+ const rawTrack = attributes.getAttribute(COMPOSITION_ATTRIBUTES.trackIndex);
183
+ const rawLayer = attributes.getAttribute(COMPOSITION_ATTRIBUTES.legacyTrack);
184
+ if (rawTrack == null && rawLayer == null) return { trackIndex: 0, trackSource: "default" };
185
+ if (rawTrack == null && rawLayer != null) {
186
+ pushDiagnostic(diagnostics, "deprecated-layer", COMPOSITION_ATTRIBUTES.legacyTrack, rawLayer);
187
+ return readTrackValue(
188
+ rawLayer,
189
+ COMPOSITION_ATTRIBUTES.legacyTrack,
190
+ "legacy-layer",
191
+ diagnostics
192
+ );
193
+ }
194
+ const canonical = readTrackValue(
195
+ rawTrack ?? "",
196
+ COMPOSITION_ATTRIBUTES.trackIndex,
197
+ "track-index",
198
+ diagnostics
199
+ );
200
+ if (rawLayer == null) return canonical;
201
+ pushDiagnostic(diagnostics, "deprecated-layer", COMPOSITION_ATTRIBUTES.legacyTrack, rawLayer);
202
+ const parsedLayer = parseNumeric(rawLayer);
203
+ if (parsedLayer != null && parsedLayer !== canonical.trackIndex) {
204
+ pushDiagnostic(diagnostics, "conflicting-layer", COMPOSITION_ATTRIBUTES.legacyTrack, rawLayer);
205
+ }
206
+ return canonical;
207
+ }
208
+ function readClipTiming(attributes, options = {}) {
209
+ const diagnostics = [];
210
+ const rawStart = attributes.getAttribute(COMPOSITION_ATTRIBUTES.start);
211
+ const startExpression = parseStartExpression(rawStart);
212
+ const start = resolveStart(startExpression, rawStart, options, diagnostics);
213
+ const duration = readDuration(attributes, start, diagnostics);
214
+ const track = readTrack(attributes, diagnostics);
215
+ return { startExpression, start, ...duration, ...track, diagnostics };
216
+ }
217
+ function serializeStartNumber(start) {
218
+ if (!Number.isFinite(start)) {
219
+ throw new ClipTimingWriteError("invalid-start", "start must be finite");
220
+ }
221
+ return String(start);
222
+ }
223
+ function serializeStartReference(start) {
224
+ if (start.kind === "absolute") return serializeStartNumber(start.value);
225
+ if (!start.refId || !Number.isFinite(start.offset)) {
226
+ throw new ClipTimingWriteError(
227
+ "invalid-start",
228
+ "reference start must have an id and finite offset"
229
+ );
230
+ }
231
+ if (start.offset === 0) return start.refId;
232
+ return `${start.refId} ${start.offset < 0 ? "-" : "+"} ${Math.abs(start.offset)}`;
233
+ }
234
+ function serializeStart(start) {
235
+ if (typeof start === "number") return serializeStartNumber(start);
236
+ if (typeof start === "object" && start != null) return serializeStartReference(start);
237
+ if (typeof start === "string" && parseStartExpression(start)) return start.trim();
238
+ throw new ClipTimingWriteError("invalid-start", `invalid start expression: ${start ?? ""}`);
239
+ }
240
+ function writeDuration(attributes, duration, current) {
241
+ if (duration === null) {
242
+ attributes.removeAttribute(COMPOSITION_ATTRIBUTES.duration);
243
+ return;
244
+ }
245
+ if (duration === void 0) {
246
+ if (attributes.getAttribute(COMPOSITION_ATTRIBUTES.duration) == null && current.duration != null) {
247
+ attributes.setAttribute(COMPOSITION_ATTRIBUTES.duration, String(current.duration));
248
+ }
249
+ return;
250
+ }
251
+ if (!Number.isFinite(duration) || duration < 0) {
252
+ throw new ClipTimingWriteError(
253
+ "invalid-duration",
254
+ "duration must be a finite, non-negative number"
255
+ );
256
+ }
257
+ attributes.setAttribute(COMPOSITION_ATTRIBUTES.duration, String(duration));
258
+ }
259
+ function writeTrack(attributes, trackIndex, current) {
260
+ if (trackIndex === null) {
261
+ attributes.removeAttribute(COMPOSITION_ATTRIBUTES.trackIndex);
262
+ return;
263
+ }
264
+ if (trackIndex === void 0) {
265
+ if (attributes.getAttribute(COMPOSITION_ATTRIBUTES.trackIndex) == null && current.trackSource === "legacy-layer") {
266
+ attributes.setAttribute(COMPOSITION_ATTRIBUTES.trackIndex, String(current.trackIndex));
267
+ }
268
+ return;
269
+ }
270
+ if (!Number.isFinite(trackIndex) || !Number.isInteger(trackIndex)) {
271
+ throw new ClipTimingWriteError("invalid-track-index", "trackIndex must be a finite integer");
272
+ }
273
+ attributes.setAttribute(COMPOSITION_ATTRIBUTES.trackIndex, String(trackIndex));
274
+ }
275
+ function writeClipTiming(attributes, update) {
276
+ const current = readClipTiming(attributes);
277
+ if (update.start !== void 0) {
278
+ attributes.setAttribute(COMPOSITION_ATTRIBUTES.start, serializeStart(update.start));
279
+ }
280
+ writeDuration(attributes, update.duration, current);
281
+ writeTrack(attributes, update.trackIndex, current);
282
+ const preserveUnresolvedLegacyEnd = update.duration === void 0 && attributes.getAttribute(COMPOSITION_ATTRIBUTES.duration) == null && attributes.getAttribute(COMPOSITION_ATTRIBUTES.derivedEnd) != null && current.duration == null;
283
+ if (!preserveUnresolvedLegacyEnd) {
284
+ attributes.removeAttribute(COMPOSITION_ATTRIBUTES.derivedEnd);
285
+ }
286
+ attributes.removeAttribute(COMPOSITION_ATTRIBUTES.legacyTrack);
287
+ return readClipTiming(attributes);
288
+ }
289
+
290
+ // ../parsers/dist/mediaDuration.js
291
+ var COMPOSITION_ATTRIBUTES2 = Object.freeze({
292
+ start: "data-start",
293
+ duration: "data-duration",
294
+ trackIndex: "data-track-index",
295
+ derivedEnd: "data-end",
296
+ legacyTrack: "data-layer"
297
+ });
298
+ var CANONICAL_AUTHORED_TIMING_ATTRIBUTES2 = Object.freeze([
299
+ COMPOSITION_ATTRIBUTES2.start,
300
+ COMPOSITION_ATTRIBUTES2.duration,
301
+ COMPOSITION_ATTRIBUTES2.trackIndex
302
+ ]);
303
+ var DERIVED_TIMING_ATTRIBUTES2 = Object.freeze([
304
+ COMPOSITION_ATTRIBUTES2.derivedEnd
305
+ ]);
306
+ var LEGACY_TIMING_ATTRIBUTES2 = Object.freeze([
307
+ COMPOSITION_ATTRIBUTES2.derivedEnd,
308
+ COMPOSITION_ATTRIBUTES2.legacyTrack
309
+ ]);
310
+ function parseNumeric2(value) {
311
+ if (value == null || value.trim() === "") return null;
312
+ const parsed = Number(value);
313
+ return Number.isFinite(parsed) ? parsed : null;
314
+ }
315
+ var nonNegative = (raw) => {
316
+ const value = parseNumeric2(raw);
317
+ return value !== null && value >= 0 ? value : null;
318
+ };
319
+ function readMediaOffsetSeconds(getAttr) {
320
+ return nonNegative(getAttr("data-playback-start")) ?? nonNegative(getAttr("data-media-start")) ?? 0;
321
+ }
322
+ var MIN_PLAYBACK_RATE = 0.1;
323
+ var MAX_PLAYBACK_RATE = 10;
324
+ function clampPlaybackRate(raw) {
325
+ return Number.isFinite(raw) && raw > 0 ? Math.max(MIN_PLAYBACK_RATE, Math.min(MAX_PLAYBACK_RATE, raw)) : 1;
326
+ }
327
+ function readPlaybackRate(getAttr, fallback = 1) {
328
+ const authored = Number.parseFloat(getAttr("data-playback-rate") ?? "");
329
+ return clampPlaybackRate(Number.isFinite(authored) && authored > 0 ? authored : fallback);
330
+ }
331
+ function readDataDurationSeconds(getAttr) {
332
+ const duration = parseNumeric2(getAttr("data-duration"));
333
+ return duration !== null && duration > 0 ? duration : null;
334
+ }
335
+ function readAuthoredDurationSeconds(getAttr, startSeconds) {
336
+ const duration = readDataDurationSeconds(getAttr);
337
+ if (duration !== null) return duration;
338
+ const end = parseNumeric2(getAttr("data-end"));
339
+ return end !== null ? end - startSeconds : null;
340
+ }
341
+ var DEFAULT_IMAGE_TIMELINE_DURATION_SECONDS = 3;
342
+ function resolveNaturalDurationSeconds(sourceDurationSeconds, mediaStartSeconds, playbackRate) {
343
+ if (!Number.isFinite(sourceDurationSeconds)) return null;
344
+ const remaining = Math.max(0, sourceDurationSeconds - mediaStartSeconds);
345
+ return remaining / clampPlaybackRate(playbackRate);
346
+ }
347
+ function resolveMediaDuration(input) {
348
+ const { tag, authoredDurationSeconds, sourceDurationSeconds, mediaStartSeconds, playbackRate } = input;
349
+ if (authoredDurationSeconds !== null && authoredDurationSeconds > 0) {
350
+ return { seconds: authoredDurationSeconds, source: "authored" };
351
+ }
352
+ if (tag === "img") {
353
+ return { seconds: DEFAULT_IMAGE_TIMELINE_DURATION_SECONDS, source: "default" };
354
+ }
355
+ if (sourceDurationSeconds === null) {
356
+ return { seconds: null, source: "pending", reason: "source duration not yet probed" };
357
+ }
358
+ const seconds = resolveNaturalDurationSeconds(
359
+ sourceDurationSeconds,
360
+ mediaStartSeconds,
361
+ playbackRate
362
+ );
363
+ if (seconds === null) {
364
+ return { seconds: null, source: "pending", reason: "source reported a non-finite duration" };
365
+ }
366
+ return { seconds, source: "media" };
367
+ }
368
+
369
+ // ../parsers/dist/assets.js
370
+ import { isAbsolute, relative, resolve } from "path";
371
+ import { posix } from "path";
372
+ var CSS_URL_RE = /\burl\(\s*(["']?)([^)"'\s](?:[^)"']*[^)"'\s])?)\1\s*\)/g;
373
+ var PATH_ATTRS = ["src", "href"];
374
+ function isNonRelativeUrl(val) {
375
+ return !val || val.startsWith("http://") || val.startsWith("https://") || val.startsWith("//") || val.startsWith("data:") || val.startsWith("#") || val.startsWith("/");
376
+ }
377
+ function isPathInside(childPath, parentPath) {
378
+ const absChild = resolve(childPath);
379
+ const absParent = resolve(parentPath);
380
+ if (absChild === absParent) return true;
381
+ const rel = relative(absParent, absChild);
382
+ return rel !== "" && !rel.startsWith("..") && !isAbsolute(rel);
383
+ }
384
+ var { join, resolve: resolve2, dirname } = posix;
385
+ var isAbsoluteOrSpecial = isNonRelativeUrl;
386
+ function needsRewrite(val) {
387
+ return val.startsWith("../") || val === "..";
388
+ }
389
+ function splitPathSuffix(value) {
390
+ const marker = value.search(/[?#]/);
391
+ return marker === -1 ? [value, ""] : [value.slice(0, marker), value.slice(marker)];
392
+ }
393
+ function rewriteAssetPath(compSrcPath, relativePath, assetExists) {
394
+ if (isAbsoluteOrSpecial(relativePath)) return relativePath;
395
+ const compDir = dirname(compSrcPath);
396
+ if (!compDir || compDir === ".") return relativePath;
397
+ if (!needsRewrite(relativePath)) {
398
+ if (!assetExists) return relativePath;
399
+ const [filePart, suffix] = splitPathSuffix(relativePath);
400
+ if (!filePart) return relativePath;
401
+ const sibling = resolve2("/", join(compDir, filePart)).slice(1);
402
+ return assetExists(sibling) ? sibling + suffix : relativePath;
403
+ }
404
+ const resolved = join(compDir, relativePath);
405
+ const normalized = resolve2("/", resolved).slice(1);
406
+ return normalized;
407
+ }
408
+ function rewriteAssetPaths(elements, compSrcPath, getAttr, setAttr, assetExists) {
409
+ for (const el of elements) {
410
+ for (const attr of PATH_ATTRS) {
411
+ const val = (getAttr(el, attr) || "").trim();
412
+ const rewritten = rewriteAssetPath(compSrcPath, val, assetExists);
413
+ if (rewritten !== val) {
414
+ setAttr(el, attr, rewritten);
415
+ }
416
+ }
417
+ }
418
+ }
419
+ function rewriteInlineStyleAssetUrls(elements, compSrcPath, getStyle, setStyle, assetExists) {
420
+ const compDir = dirname(compSrcPath);
421
+ if (!compDir || compDir === ".") return;
422
+ for (const el of elements) {
423
+ const style = getStyle(el);
424
+ if (!style) continue;
425
+ const rewritten = rewriteCssAssetUrls(style, compSrcPath, assetExists);
426
+ if (rewritten !== style) {
427
+ setStyle(el, rewritten);
428
+ }
429
+ }
430
+ }
431
+ function rewriteCssAssetUrls(cssText, compSrcPath, assetExists) {
432
+ if (!cssText) return cssText;
433
+ return cssText.replace(CSS_URL_RE, (full, quote, rawUrl) => {
434
+ const urlValue = (rawUrl || "").trim();
435
+ const rewritten = rewriteAssetPath(compSrcPath, urlValue, assetExists);
436
+ if (rewritten === urlValue) return full;
437
+ return `url(${quote || ""}${rewritten}${quote || ""})`;
438
+ });
439
+ }
440
+
441
+ // ../parsers/dist/subCompositionValidity.js
442
+ function resolveSubCompositionContent(html, document) {
443
+ const template = document.querySelector("template");
444
+ if (template) return { contentHtml: template.innerHTML ?? "", hasTemplate: true };
445
+ const body = document.querySelector("body");
446
+ if (body) return { contentHtml: body.innerHTML ?? "", hasTemplate: false };
447
+ const contentHtml = document.querySelector("html") ? "" : html;
448
+ return { contentHtml, hasTemplate: false };
449
+ }
450
+ function checkSubCompositionUsability(html, parseHtml) {
451
+ if (html == null || !html.trim()) {
452
+ return {
453
+ ok: false,
454
+ reason: "empty",
455
+ detail: "the file is empty (0 bytes or whitespace-only)"
456
+ };
457
+ }
458
+ const compDoc = parseHtml(html);
459
+ if (!compDoc.documentElement) {
460
+ return {
461
+ ok: false,
462
+ reason: "unparsable",
463
+ detail: "the file's contents could not be parsed as HTML"
464
+ };
465
+ }
466
+ const { contentHtml } = resolveSubCompositionContent(html, compDoc);
467
+ if (!contentHtml.trim()) {
468
+ return {
469
+ ok: false,
470
+ reason: "no-content",
471
+ detail: "the file has no <template> or <body> content to render"
472
+ };
473
+ }
474
+ const contentDoc = parseHtml(contentHtml);
475
+ if (!contentDoc.documentElement) {
476
+ return {
477
+ ok: false,
478
+ reason: "unparsable",
479
+ detail: "the file's resolved contents could not be parsed as HTML"
480
+ };
481
+ }
482
+ if (!contentDoc.querySelector("[data-composition-id]")) {
483
+ return {
484
+ ok: false,
485
+ reason: "no-composition-root",
486
+ detail: "the file's resolved content has no element with a data-composition-id attribute"
487
+ };
488
+ }
489
+ return { ok: true };
490
+ }
491
+
492
+ // ../parsers/dist/colorGradingContract.js
493
+ var COLOR_GRADING_CONTRACT_VERSION = 2;
494
+ var COLOR_GRADING_COLOR_SPACE = "rec709";
495
+ var COLOR_GRADING_MAX_CURVE_POINTS = 16;
496
+ var COLOR_GRADING_MAX_SECONDARIES = 4;
497
+ var COLOR_GRADING_ADVANCED_LIMITS = {
498
+ hueDegrees: { min: 0, max: 360, inclusiveMax: false },
499
+ unit: { min: 0, max: 1 },
500
+ signedUnit: { min: -1, max: 1 },
501
+ secondaryHueRange: { min: 0, max: 180 },
502
+ secondaryHueSoftness: { min: 0, max: 180 },
503
+ secondaryHueCombinedMax: 180,
504
+ secondarySoftRangeSoftness: { min: 0, max: 0.5 },
505
+ secondaryHueShift: { min: -180, max: 180 },
506
+ effects: {
507
+ asciiStyle: { min: 0, max: 7 },
508
+ bloom: { min: 0, max: 3 },
509
+ bloomRadius: { min: 1, max: 100 },
510
+ monoScreenShape: { min: 0, max: 4 }
511
+ }
512
+ };
513
+ var COLOR_GRADING_TOP_LEVEL_KEYS = [
514
+ "enabled",
515
+ "preset",
516
+ "intensity",
517
+ "adjust",
518
+ "wheels",
519
+ "curves",
520
+ "hueCurves",
521
+ "secondaries",
522
+ "details",
523
+ "effects",
524
+ "palette",
525
+ "lut",
526
+ "colorSpace"
527
+ ];
528
+ var COLOR_GRADING_ADJUST_KEYS = [
529
+ "exposure",
530
+ "contrast",
531
+ "highlights",
532
+ "shadows",
533
+ "whites",
534
+ "blacks",
535
+ "temperature",
536
+ "tint",
537
+ "vibrance",
538
+ "saturation"
539
+ ];
540
+ var COLOR_GRADING_WHEEL_KEYS = ["shadows", "midtones", "highlights"];
541
+ var COLOR_GRADING_CURVE_KEYS = ["master", "red", "green", "blue"];
542
+ var COLOR_GRADING_HUE_CURVE_KEYS = ["hueVsHue", "hueVsSaturation", "hueVsLuma"];
543
+ var COLOR_GRADING_WHEEL_CONTROL_KEYS = ["hue", "amount", "level"];
544
+ var COLOR_GRADING_SECONDARY_KEYS = ["enabled", "key", "correction"];
545
+ var COLOR_GRADING_SECONDARY_KEY_KEYS = ["hue", "saturation", "luma"];
546
+ var COLOR_GRADING_HUE_RANGE_KEYS = ["center", "range", "softness"];
547
+ var COLOR_GRADING_SOFT_RANGE_KEYS = ["min", "max", "softness"];
548
+ var COLOR_GRADING_SECONDARY_CORRECTION_KEYS = [
549
+ "hueShift",
550
+ "saturation",
551
+ "luma",
552
+ "temperature",
553
+ "tint"
554
+ ];
555
+ var COLOR_GRADING_DETAIL_KEYS = [
556
+ "vignette",
557
+ "vignetteMidpoint",
558
+ "vignetteRoundness",
559
+ "vignetteFeather",
560
+ "grain",
561
+ "grainSize",
562
+ "grainRoughness"
563
+ ];
564
+ var COLOR_GRADING_EFFECT_KEYS = [
565
+ "blur",
566
+ "pixelate",
567
+ "chromaBleed",
568
+ "tapeDamage",
569
+ "tapeTracking",
570
+ "tapeNoise",
571
+ "tapeSpeed",
572
+ "filmArtifacts",
573
+ "halftone",
574
+ "halftoneSize",
575
+ "twoInkPrint",
576
+ "twoInkPrintSize",
577
+ "ascii",
578
+ "asciiSize",
579
+ "asciiInvert",
580
+ "asciiStyle",
581
+ "asciiColor",
582
+ "asciiRotation",
583
+ "dither",
584
+ "ditherSize",
585
+ "bloom",
586
+ "bloomRadius",
587
+ "monoScreen",
588
+ "monoScreenSize",
589
+ "monoScreenAngle",
590
+ "monoScreenSpread",
591
+ "monoScreenShape",
592
+ "monoScreenInvert",
593
+ "scanlines",
594
+ "scanlineCount",
595
+ "scanlineSoftness",
596
+ "chromaticAberration",
597
+ "chromaticAngle",
598
+ "crtCurvature",
599
+ "digitalGlitch",
600
+ "digitalGlitchColorSplit",
601
+ "digitalGlitchLineTear",
602
+ "digitalGlitchPixelate",
603
+ "digitalGlitchBlockAmount",
604
+ "digitalGlitchBlockDisplacement",
605
+ "digitalGlitchBlockOpacity",
606
+ "digitalGlitchSpeed",
607
+ "engraving",
608
+ "engravingSpacing",
609
+ "engravingMinThickness",
610
+ "engravingMaxThickness",
611
+ "engravingAngle",
612
+ "engravingContrast",
613
+ "engravingSharpness",
614
+ "engravingWave",
615
+ "engravingWaveFrequency",
616
+ "crosshatch",
617
+ "crosshatchSpacing",
618
+ "crosshatchThickness",
619
+ "crosshatchAngle",
620
+ "crosshatchContrast",
621
+ "crosshatchEdges",
622
+ "crosshatchLineWeight",
623
+ "crosshatchWave",
624
+ "crosshatchWaveFrequency",
625
+ "kuwahara",
626
+ "kuwaharaRadius",
627
+ "kuwaharaSharpness",
628
+ "kuwaharaSaturation"
629
+ ];
630
+ var COLOR_GRADING_LUT_KEYS = ["src", "intensity"];
631
+ var UNIT_LIMIT = COLOR_GRADING_ADVANCED_LIMITS.unit;
632
+ var SIGNED_UNIT_LIMIT = COLOR_GRADING_ADVANCED_LIMITS.signedUnit;
633
+ var EFFECT_LIMIT_OVERRIDES = COLOR_GRADING_ADVANCED_LIMITS.effects;
634
+ var VARIABLE_REF = /^\$(?:\{[A-Za-z0-9_.:-]+\}|[A-Za-z0-9_.:-]+)$/;
635
+ var PALETTE_COLOR = /^#[0-9a-f]{6}$/i;
636
+ var OBJECT_SECTIONS = [
637
+ ["adjust", COLOR_GRADING_ADJUST_KEYS],
638
+ ["details", COLOR_GRADING_DETAIL_KEYS],
639
+ ["effects", COLOR_GRADING_EFFECT_KEYS],
640
+ ["lut", COLOR_GRADING_LUT_KEYS]
641
+ ];
642
+ function isRecord(value) {
643
+ return typeof value === "object" && value !== null && !Array.isArray(value);
644
+ }
645
+ function isColorGradingVariableRef(value) {
646
+ return typeof value === "string" && VARIABLE_REF.test(value.trim());
647
+ }
648
+ function unknownKeysHint(path, unknown) {
649
+ if (path !== "grading") return `Correct or remove the unsupported "${path}" keys.`;
650
+ const sections = new Set(
651
+ unknown.flatMap(
652
+ (key) => OBJECT_SECTIONS.filter(([, keys]) => keys.includes(key)).map(
653
+ ([section]) => section
654
+ )
655
+ )
656
+ );
657
+ return sections.size === 1 ? `Move those controls under "${[...sections][0]}".` : "Use only the documented media-treatment keys at the top level.";
658
+ }
659
+ function validateObject(value, path, keys, issues) {
660
+ if (isColorGradingVariableRef(value)) return null;
661
+ if (!isRecord(value)) {
662
+ issues.push({ path, message: "must be an object or variable reference" });
663
+ return null;
664
+ }
665
+ const allowed = new Set(keys);
666
+ const unknown = Object.keys(value).filter((key) => !allowed.has(key));
667
+ if (unknown.length > 0) {
668
+ issues.push({
669
+ path,
670
+ message: `has unsupported key(s): ${unknown.join(", ")}`,
671
+ hint: unknownKeysHint(path, unknown)
672
+ });
673
+ }
674
+ return value;
675
+ }
676
+ function isNumberInRange(value, limit, inclusiveMax) {
677
+ if (typeof value !== "number" || !Number.isFinite(value) || value < limit.min) return false;
678
+ return inclusiveMax ? value <= limit.max : value < limit.max;
679
+ }
680
+ function validateNumericField(value, key, path, limit, issues, inclusiveMax = true) {
681
+ const candidate = value[key];
682
+ if (candidate === void 0 || isColorGradingVariableRef(candidate)) return;
683
+ if (isNumberInRange(candidate, limit, inclusiveMax)) return;
684
+ issues.push({
685
+ path: path ? `${path}.${key}` : key,
686
+ message: `must be a finite number from ${limit.min} ${inclusiveMax ? "through" : "up to"} ${limit.max}`
687
+ });
688
+ }
689
+ function isFiniteTuple(value) {
690
+ return Array.isArray(value) && value.length === 2 && value.every((coordinate) => typeof coordinate === "number" && Number.isFinite(coordinate));
691
+ }
692
+ function validateCurve(value, path, issues) {
693
+ if (isColorGradingVariableRef(value)) return;
694
+ if (!Array.isArray(value) || value.length < 2 || value.length > COLOR_GRADING_MAX_CURVE_POINTS) {
695
+ issues.push({
696
+ path,
697
+ message: `must contain 2 to ${COLOR_GRADING_MAX_CURVE_POINTS} [input, output] points`
698
+ });
699
+ return;
700
+ }
701
+ const inputs = /* @__PURE__ */ new Set();
702
+ value.forEach((point, index) => {
703
+ if (!isFiniteTuple(point)) {
704
+ issues.push({ path: `${path}[${index}]`, message: "must be a finite [input, output] tuple" });
705
+ return;
706
+ }
707
+ const [input, output] = point;
708
+ if (input < 0 || input > 1 || output < 0 || output > 1) {
709
+ issues.push({ path: `${path}[${index}]`, message: "coordinates must be between 0 and 1" });
710
+ }
711
+ if (inputs.has(input)) issues.push({ path, message: `contains duplicate input ${input}` });
712
+ inputs.add(input);
713
+ });
714
+ const inferredPointCount = value.length + (inputs.has(0) ? 0 : 1) + (inputs.has(1) ? 0 : 1);
715
+ if (inferredPointCount > COLOR_GRADING_MAX_CURVE_POINTS) {
716
+ issues.push({
717
+ path,
718
+ message: `must contain at most ${COLOR_GRADING_MAX_CURVE_POINTS} points including inferred 0 and 1 endpoints`
719
+ });
720
+ }
721
+ }
722
+ function validateHueCurve(value, path, outputMin, outputMax, issues) {
723
+ if (isColorGradingVariableRef(value)) return;
724
+ if (!Array.isArray(value) || value.length < 3 || value.length > COLOR_GRADING_MAX_CURVE_POINTS) {
725
+ issues.push({
726
+ path,
727
+ message: `must contain 3 to ${COLOR_GRADING_MAX_CURVE_POINTS} [hueDegrees, delta] points`
728
+ });
729
+ return;
730
+ }
731
+ const hues = /* @__PURE__ */ new Set();
732
+ value.forEach((point, index) => {
733
+ if (!isFiniteTuple(point)) {
734
+ issues.push({ path: `${path}[${index}]`, message: "must be a finite [hue, delta] tuple" });
735
+ return;
736
+ }
737
+ const [hue, delta] = point;
738
+ if (hue < 0 || hue >= 360) {
739
+ issues.push({ path: `${path}[${index}][0]`, message: "must be from 0 up to 360 degrees" });
740
+ }
741
+ if (delta < outputMin || delta > outputMax) {
742
+ issues.push({
743
+ path: `${path}[${index}][1]`,
744
+ message: `must be between ${outputMin} and ${outputMax}`
745
+ });
746
+ }
747
+ if (hues.has(hue)) issues.push({ path, message: `contains duplicate hue ${hue}` });
748
+ hues.add(hue);
749
+ });
750
+ }
751
+ function validateNumericSection(value, path, keys, limitFor, issues) {
752
+ for (const key of keys) validateNumericField(value, key, path, limitFor(key), issues);
753
+ }
754
+ function validatePalette(value, issues) {
755
+ if (value === void 0 || value === null || isColorGradingVariableRef(value)) return;
756
+ const hint = 'Use 2 to 6 colors in the intended mapping order, each written as exact "#RRGGBB", or use a project variable reference.';
757
+ if (!Array.isArray(value) || value.length < 2 || value.length > 6) {
758
+ issues.push({ path: "palette", message: "must contain 2 to 6 hex colors", hint });
759
+ return;
760
+ }
761
+ value.forEach((color, index) => {
762
+ if (typeof color !== "string" || !PALETTE_COLOR.test(color)) {
763
+ issues.push({
764
+ path: `palette[${index}]`,
765
+ message: "must be a six-digit hex color",
766
+ hint
767
+ });
768
+ }
769
+ });
770
+ }
771
+ function validateLut(value, object, issues) {
772
+ if (typeof value === "string") {
773
+ if (!value.trim()) issues.push({ path: "lut", message: "must not be empty" });
774
+ return;
775
+ }
776
+ if (!object) return;
777
+ if (!isColorGradingVariableRef(object.src) && (typeof object.src !== "string" || !object.src.trim())) {
778
+ issues.push({
779
+ path: "lut.src",
780
+ message: "must be a non-empty string or variable reference"
781
+ });
782
+ }
783
+ validateNumericField(object, "intensity", "lut", UNIT_LIMIT, issues);
784
+ }
785
+ function validateEnabled(grading, issues) {
786
+ if (grading.enabled !== void 0 && !isColorGradingVariableRef(grading.enabled) && typeof grading.enabled !== "boolean") {
787
+ issues.push({ path: "enabled", message: "must be a boolean or variable reference" });
788
+ }
789
+ }
790
+ function validatePreset(grading, issues) {
791
+ if (grading.preset !== void 0 && grading.preset !== null && !isColorGradingVariableRef(grading.preset) && (typeof grading.preset !== "string" || !grading.preset.trim())) {
792
+ issues.push({
793
+ path: "preset",
794
+ message: "must be a non-empty string, null, or variable reference"
795
+ });
796
+ }
797
+ }
798
+ function validateColorSpace(grading, issues) {
799
+ if (grading.colorSpace !== void 0 && !isColorGradingVariableRef(grading.colorSpace) && grading.colorSpace !== COLOR_GRADING_COLOR_SPACE) {
800
+ issues.push({
801
+ path: "colorSpace",
802
+ message: `must be "${COLOR_GRADING_COLOR_SPACE}" or a variable reference`
803
+ });
804
+ }
805
+ }
806
+ function validateTopLevel(grading, issues) {
807
+ validateEnabled(grading, issues);
808
+ validateNumericField(grading, "intensity", "", UNIT_LIMIT, issues);
809
+ validatePreset(grading, issues);
810
+ validateColorSpace(grading, issues);
811
+ }
812
+ function validateSection(grading, key, keys, issues) {
813
+ const section = grading[key];
814
+ if (section === void 0 || key === "lut" && section === null) return;
815
+ if (key === "lut" && typeof section === "string") {
816
+ validateLut(section, null, issues);
817
+ return;
818
+ }
819
+ const object = validateObject(section, key, keys, issues);
820
+ if (!object) return;
821
+ if (key === "lut") return validateLut(section, object, issues);
822
+ const limitFor = (control) => {
823
+ if (key === "adjust" && control === "exposure") return { min: -2, max: 2 };
824
+ if (key === "adjust" || key === "details" && control === "vignetteRoundness") {
825
+ return SIGNED_UNIT_LIMIT;
826
+ }
827
+ return key === "effects" ? EFFECT_LIMIT_OVERRIDES[control] ?? UNIT_LIMIT : UNIT_LIMIT;
828
+ };
829
+ validateNumericSection(object, key, keys, limitFor, issues);
830
+ }
831
+ function validateSections(grading, issues) {
832
+ for (const [key, keys] of OBJECT_SECTIONS) validateSection(grading, key, keys, issues);
833
+ }
834
+ function validateWheels(value, issues) {
835
+ if (value === void 0 || isColorGradingVariableRef(value)) return;
836
+ const wheels = validateObject(value, "wheels", COLOR_GRADING_WHEEL_KEYS, issues);
837
+ if (!wheels) return;
838
+ for (const wheel of COLOR_GRADING_WHEEL_KEYS) {
839
+ if (wheels[wheel] === void 0) continue;
840
+ const path = `wheels.${wheel}`;
841
+ const controls = validateObject(wheels[wheel], path, COLOR_GRADING_WHEEL_CONTROL_KEYS, issues);
842
+ if (!controls) continue;
843
+ validateNumericField(
844
+ controls,
845
+ "hue",
846
+ path,
847
+ COLOR_GRADING_ADVANCED_LIMITS.hueDegrees,
848
+ issues,
849
+ COLOR_GRADING_ADVANCED_LIMITS.hueDegrees.inclusiveMax
850
+ );
851
+ validateNumericField(controls, "amount", path, UNIT_LIMIT, issues);
852
+ validateNumericField(controls, "level", path, SIGNED_UNIT_LIMIT, issues);
853
+ }
854
+ }
855
+ function validateCurves(value, issues) {
856
+ if (value === void 0 || isColorGradingVariableRef(value)) return;
857
+ const curves = validateObject(value, "curves", COLOR_GRADING_CURVE_KEYS, issues);
858
+ if (!curves) return;
859
+ for (const key of COLOR_GRADING_CURVE_KEYS) {
860
+ if (curves[key] !== void 0) validateCurve(curves[key], `curves.${key}`, issues);
861
+ }
862
+ }
863
+ function validateHueCurves(value, issues) {
864
+ if (value === void 0 || isColorGradingVariableRef(value)) return;
865
+ const curves = validateObject(value, "hueCurves", COLOR_GRADING_HUE_CURVE_KEYS, issues);
866
+ if (!curves) return;
867
+ const limits = {
868
+ hueVsHue: [-180, 180],
869
+ hueVsSaturation: [-1, 1],
870
+ hueVsLuma: [-1, 1]
871
+ };
872
+ for (const key of COLOR_GRADING_HUE_CURVE_KEYS) {
873
+ if (curves[key] !== void 0) {
874
+ validateHueCurve(curves[key], `hueCurves.${key}`, limits[key][0], limits[key][1], issues);
875
+ }
876
+ }
877
+ }
878
+ function validateSoftRange(value, path, issues) {
879
+ const range = validateObject(value, path, COLOR_GRADING_SOFT_RANGE_KEYS, issues);
880
+ if (!range) return;
881
+ validateNumericField(range, "min", path, UNIT_LIMIT, issues);
882
+ validateNumericField(range, "max", path, UNIT_LIMIT, issues);
883
+ validateNumericField(
884
+ range,
885
+ "softness",
886
+ path,
887
+ COLOR_GRADING_ADVANCED_LIMITS.secondarySoftRangeSoftness,
888
+ issues
889
+ );
890
+ if (typeof range.min === "number" && typeof range.max === "number" && range.min >= range.max) {
891
+ issues.push({ path, message: "min must be smaller than max" });
892
+ }
893
+ }
894
+ function validateSecondaryHue(value, path, issues) {
895
+ const hue = validateObject(value, path, COLOR_GRADING_HUE_RANGE_KEYS, issues);
896
+ if (!hue) return;
897
+ validateNumericField(
898
+ hue,
899
+ "center",
900
+ path,
901
+ COLOR_GRADING_ADVANCED_LIMITS.hueDegrees,
902
+ issues,
903
+ COLOR_GRADING_ADVANCED_LIMITS.hueDegrees.inclusiveMax
904
+ );
905
+ validateNumericField(hue, "range", path, COLOR_GRADING_ADVANCED_LIMITS.secondaryHueRange, issues);
906
+ validateNumericField(
907
+ hue,
908
+ "softness",
909
+ path,
910
+ COLOR_GRADING_ADVANCED_LIMITS.secondaryHueSoftness,
911
+ issues
912
+ );
913
+ if (typeof hue.range === "number" && typeof hue.softness === "number" && hue.range + hue.softness > COLOR_GRADING_ADVANCED_LIMITS.secondaryHueCombinedMax) {
914
+ issues.push({
915
+ path,
916
+ message: `range plus softness must not exceed ${COLOR_GRADING_ADVANCED_LIMITS.secondaryHueCombinedMax} degrees`
917
+ });
918
+ }
919
+ }
920
+ function validateSecondaryKey(value, path, issues) {
921
+ const key = validateObject(value, path, COLOR_GRADING_SECONDARY_KEY_KEYS, issues);
922
+ if (!key) return;
923
+ if (key.hue !== void 0) validateSecondaryHue(key.hue, `${path}.hue`, issues);
924
+ if (key.saturation !== void 0) validateSoftRange(key.saturation, `${path}.saturation`, issues);
925
+ if (key.luma !== void 0) validateSoftRange(key.luma, `${path}.luma`, issues);
926
+ }
927
+ function validateSecondaryCorrection(value, path, issues) {
928
+ const correction = validateObject(value, path, COLOR_GRADING_SECONDARY_CORRECTION_KEYS, issues);
929
+ if (!correction) return;
930
+ validateNumericField(
931
+ correction,
932
+ "hueShift",
933
+ path,
934
+ COLOR_GRADING_ADVANCED_LIMITS.secondaryHueShift,
935
+ issues
936
+ );
937
+ for (const key of ["saturation", "luma", "temperature", "tint"]) {
938
+ validateNumericField(correction, key, path, SIGNED_UNIT_LIMIT, issues);
939
+ }
940
+ }
941
+ function validateSecondary(value, index, issues) {
942
+ const path = `secondaries[${index}]`;
943
+ const secondary = validateObject(value, path, COLOR_GRADING_SECONDARY_KEYS, issues);
944
+ if (!secondary) return;
945
+ if (secondary.enabled !== void 0 && typeof secondary.enabled !== "boolean" && !isColorGradingVariableRef(secondary.enabled)) {
946
+ issues.push({ path: `${path}.enabled`, message: "must be a boolean" });
947
+ }
948
+ validateSecondaryKey(secondary.key, `${path}.key`, issues);
949
+ validateSecondaryCorrection(secondary.correction, `${path}.correction`, issues);
950
+ }
951
+ function validateSecondaries(value, issues) {
952
+ if (value === void 0 || isColorGradingVariableRef(value)) return;
953
+ if (!Array.isArray(value) || value.length > COLOR_GRADING_MAX_SECONDARIES) {
954
+ issues.push({
955
+ path: "secondaries",
956
+ message: `must be an array of at most ${COLOR_GRADING_MAX_SECONDARIES} selections`
957
+ });
958
+ return;
959
+ }
960
+ value.forEach((secondary, index) => validateSecondary(secondary, index, issues));
961
+ }
962
+ function validateColorGradingContract(value) {
963
+ if (typeof value === "string") {
964
+ return value.trim() ? [] : [{ path: "grading", message: "is empty" }];
965
+ }
966
+ const issues = [];
967
+ const grading = validateObject(value, "grading", COLOR_GRADING_TOP_LEVEL_KEYS, issues);
968
+ if (!grading) return issues;
969
+ validateTopLevel(grading, issues);
970
+ validateSections(grading, issues);
971
+ validateWheels(grading.wheels, issues);
972
+ validateCurves(grading.curves, issues);
973
+ validateHueCurves(grading.hueCurves, issues);
974
+ validateSecondaries(grading.secondaries, issues);
975
+ validatePalette(grading.palette, issues);
976
+ return issues;
977
+ }
978
+
979
+ export {
980
+ COMPOSITION_CONTRACT_VERSION,
981
+ COMPOSITION_ATTRIBUTES,
982
+ CANONICAL_AUTHORED_TIMING_ATTRIBUTES,
983
+ DERIVED_TIMING_ATTRIBUTES,
984
+ LEGACY_TIMING_ATTRIBUTES,
985
+ ClipTimingWriteError,
986
+ parseNumeric,
987
+ parseStartExpression,
988
+ readClipTiming,
989
+ writeClipTiming,
990
+ readMediaOffsetSeconds,
991
+ MIN_PLAYBACK_RATE,
992
+ MAX_PLAYBACK_RATE,
993
+ clampPlaybackRate,
994
+ readPlaybackRate,
995
+ readDataDurationSeconds,
996
+ readAuthoredDurationSeconds,
997
+ resolveNaturalDurationSeconds,
998
+ resolveMediaDuration,
999
+ CSS_URL_RE,
1000
+ PATH_ATTRS,
1001
+ isNonRelativeUrl,
1002
+ isPathInside,
1003
+ rewriteAssetPath,
1004
+ rewriteAssetPaths,
1005
+ rewriteInlineStyleAssetUrls,
1006
+ rewriteCssAssetUrls,
1007
+ resolveSubCompositionContent,
1008
+ checkSubCompositionUsability,
1009
+ COLOR_GRADING_CONTRACT_VERSION,
1010
+ COLOR_GRADING_COLOR_SPACE,
1011
+ COLOR_GRADING_MAX_CURVE_POINTS,
1012
+ COLOR_GRADING_MAX_SECONDARIES,
1013
+ COLOR_GRADING_ADVANCED_LIMITS,
1014
+ COLOR_GRADING_TOP_LEVEL_KEYS,
1015
+ COLOR_GRADING_ADJUST_KEYS,
1016
+ COLOR_GRADING_WHEEL_KEYS,
1017
+ COLOR_GRADING_CURVE_KEYS,
1018
+ COLOR_GRADING_HUE_CURVE_KEYS,
1019
+ COLOR_GRADING_DETAIL_KEYS,
1020
+ COLOR_GRADING_EFFECT_KEYS,
1021
+ COLOR_GRADING_LUT_KEYS,
1022
+ isColorGradingVariableRef,
1023
+ validateColorGradingContract
1024
+ };