From 940d1720ac217a7964124f05512289de9fdda03e Mon Sep 17 00:00:00 2001 From: Toil <62353659+ilyhalight@users.noreply.github.com> Date: Wed, 6 Nov 2024 01:00:42 +0300 Subject: [PATCH 1/2] update vot.js to 1.3.9 --- bun.lockb | Bin 410486 -> 251946 bytes changelog.md | 4 + dist/vot-min.user.js | 40 +- dist/vot.user.js | 84 +- package-lock.json | 3379 +++++++--------- package.json | 2 +- ...h => vot.js+1.3.9+002+added-general.patch} | 16 +- yarn.lock | 3527 ----------------- 8 files changed, 1473 insertions(+), 5579 deletions(-) rename patches/{vot.js+1.3.8+002+added-general.patch => vot.js+1.3.9+002+added-general.patch} (88%) delete mode 100644 yarn.lock diff --git a/bun.lockb b/bun.lockb index a1b2d3b46b7a8fbc1974b22187d747dc0b5ef0c7..b6ec02330365156a9ddd098afef57389c9bcc7ac 100644 GIT binary patch delta 48820 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%0AN^LNnnZt_XyZx`_Ni=X zPmO9g-7Z%>L*ccm*Qtk}&5+tlwW`k6G{w(mFm*qqI$2xjXQQUH@kH literal 410486 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 +# 1.x [WIP] + +- Исправлена некорректная генерация Sec-{Vsubs|Vtrans}-Token заголовков ([vot.js#36](https://github.com/FOSWLY/vot.js/issues/36)) + # 1.7.1 - Добавлена поддержка Coursetrain (coursetrain.net) (#706) diff --git a/dist/vot-min.user.js b/dist/vot-min.user.js index f8c7e6cb..f2260263 100644 --- a/dist/vot-min.user.js +++ b/dist/vot-min.user.js @@ -175,13 +175,13 @@ // ==/UserScript== /*! For license information please see vot-min.user.js.LICENSE.txt */ -(()=>{var t={"./src/styles/main.scss":()=>{GM_addStyle('.vot-button{--vot-helper-theme:var(--vot-theme-rgb,var(--vot-primary-rgb,33,150,243));--vot-helper-ontheme:var(--vot-ontheme-rgb,var(--vot-onprimary-rgb,255,255,255));box-sizing:border-box;vertical-align:middle;text-align:center;text-overflow:ellipsis;min-width:64px;height:36px;color:rgb(var(--vot-helper-ontheme));background-color:rgb(var(--vot-helper-theme));font-family:var(--vot-font-family,"Roboto","Segoe UI",BlinkMacSystemFont,system-ui,-apple-system);cursor:pointer;border:none;border-radius:4px;outline:none;padding:0 16px;font-size:14px;font-weight:500;line-height:36px;transition:box-shadow .2s;display:inline-block;position:relative;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.vot-button[hidden]{display:none!important}.vot-button::-moz-focus-inner{border:none}.vot-button:before,.vot-button:after{content:"";border-radius:inherit;opacity:0;position:absolute;top:0;bottom:0;left:0;right:0}.vot-button:before{background-color:rgb(var(--vot-helper-ontheme));transition:opacity .2s}.vot-button:after{background:radial-gradient(circle,currentColor 1%,#0000 1%) 50%/10000% 10000% no-repeat;transition:opacity 1s,background-size .5s}.vot-button:hover{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.vot-button:hover:before{opacity:.08}.vot-button:active{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.vot-button:active:after{opacity:.32;background-size:100% 100%;transition:background-size}.vot-button[disabled=true]{background-color:rgba(var(--vot-onsurface-rgb,0,0,0),.12);color:rgba(var(--vot-onsurface-rgb,0,0,0),.38);box-shadow:none;cursor:initial}.vot-button[disabled=true]:before,.vot-button[disabled=true]:after{opacity:0}.vot-outlined-button{--vot-helper-theme:var(--vot-theme-rgb,var(--vot-primary-rgb,33,150,243));box-sizing:border-box;border:1px solid;border-color:rgba(var(--vot-onsurface-rgb,0,0,0),.24);vertical-align:middle;text-align:center;text-overflow:ellipsis;min-width:64px;height:36px;color:rgb(var(--vot-helper-theme));font-family:var(--vot-font-family,"Roboto","Segoe UI",BlinkMacSystemFont,system-ui,-apple-system);cursor:pointer;background-color:#0000;border-radius:4px;outline:none;margin:0;padding:0 16px;font-size:14px;font-weight:500;line-height:34px;display:inline-block;position:relative}.vot-outlined-button[hidden]{display:none!important}.vot-outlined-button::-moz-focus-inner{border:none}.vot-outlined-button:before,.vot-outlined-button:after{content:"";opacity:0;border-radius:3px;position:absolute;top:0;bottom:0;left:0;right:0}.vot-outlined-button:before{background-color:rgb(var(--vot-helper-theme));transition:opacity .2s}.vot-outlined-button:after{background:radial-gradient(circle,currentColor 1%,#0000 1%) 50%/10000% 10000% no-repeat;transition:opacity 1s,background-size .5s}.vot-outlined-button:hover:before{opacity:.04}.vot-outlined-button:active:after{opacity:.16;background-size:100% 100%;transition:background-size}.vot-outlined-button[disabled=true]{color:rgba(var(--vot-onsurface-rgb,0,0,0),.38);cursor:initial;background-color:#0000}.vot-outlined-button[disabled=true]:before,.vot-outlined-button[disabled=true]:after{opacity:0}.vot-text-button{--vot-helper-theme:var(--vot-theme-rgb,var(--vot-primary-rgb,33,150,243));box-sizing:border-box;vertical-align:middle;text-align:center;text-overflow:ellipsis;min-width:64px;height:36px;color:rgb(var(--vot-helper-theme));font-family:var(--vot-font-family,"Roboto","Segoe UI",BlinkMacSystemFont,system-ui,-apple-system);cursor:pointer;background-color:#0000;border:none;border-radius:4px;outline:none;margin:0;padding:0 8px;font-size:14px;font-weight:500;line-height:36px;display:inline-block;position:relative}.vot-text-button[hidden]{display:none!important}.vot-text-button::-moz-focus-inner{border:none}.vot-text-button:before,.vot-text-button:after{content:"";border-radius:inherit;opacity:0;position:absolute;top:0;bottom:0;left:0;right:0}.vot-text-button:before{background-color:rgb(var(--vot-helper-theme));transition:opacity .2s}.vot-text-button:after{background:radial-gradient(circle,currentColor 1%,#0000 1%) 50%/10000% 10000% no-repeat;transition:opacity 1s,background-size .5s}.vot-text-button:hover:before{opacity:.04}.vot-text-button:active:after{opacity:.16;background-size:100% 100%;transition:background-size}.vot-text-button[disabled=true]{color:rgba(var(--vot-onsurface-rgb,0,0,0),.38);cursor:initial;background-color:#0000}.vot-text-button[disabled=true]:before,.vot-text-button[disabled=true]:after{opacity:0}.vot-icon-button{--vot-helper-onsurface:rgba(var(--vot-onsurface-rgb,0,0,0),.87);box-sizing:border-box;vertical-align:middle;text-align:center;text-overflow:ellipsis;width:36px;height:36px;fill:var(--vot-helper-onsurface);color:var(--vot-helper-onsurface);font-family:var(--vot-font-family,"Roboto","Segoe UI",BlinkMacSystemFont,system-ui,-apple-system);cursor:pointer;background-color:#0000;border:none;border-radius:50%;outline:none;margin:0;padding:0;font-size:14px;font-weight:500;line-height:36px;display:inline-block;position:relative}.vot-icon-button[hidden]{display:none!important}.vot-icon-button::-moz-focus-inner{border:none}.vot-icon-button:before,.vot-icon-button:after{content:"";border-radius:inherit;opacity:0;position:absolute;top:0;bottom:0;left:0;right:0}.vot-icon-button:before{background-color:var(--vot-helper-onsurface);transition:opacity .2s}.vot-icon-button:after{background:radial-gradient(circle,currentColor 1%,#0000 1%) 50%/10000% 10000% no-repeat;transition:opacity .3s,background-size .4s}.vot-icon-button:hover:before{opacity:.04}.vot-icon-button:active:after{opacity:.32;background-size:100% 100%;transition:background-size,opacity}.vot-icon-button[disabled=true]{color:rgba(var(--vot-onsurface-rgb,0,0,0),.38);fill:rgba(var(--vot-onsurface-rgb,0,0,0),.38);cursor:initial;background-color:#0000}.vot-icon-button[disabled=true]:before,.vot-icon-button[disabled=true]:after{opacity:0}.vot-textfield{display:inline-block;--vot-helper-theme:rgb(var(--vot-theme-rgb,var(--vot-primary-rgb,33,150,243)))!important;--vot-helper-safari1:rgba(var(--vot-onsurface-rgb,0,0,0),.38)!important;--vot-helper-safari2:rgba(var(--vot-onsurface-rgb,0,0,0),.6)!important;--vot-helper-safari3:rgba(var(--vot-onsurface-rgb,0,0,0),.87)!important;font-family:var(--vot-font-family,"Roboto","Segoe UI",BlinkMacSystemFont,system-ui,-apple-system)!important;text-align:start!important;padding-top:6px!important;font-size:16px!important;line-height:1.5!important;position:relative!important}.vot-textfield[hidden]{display:none!important}.vot-textfield>input,.vot-textfield>textarea{box-sizing:border-box!important;border-style:solid!important;border-width:1px!important;border-color:transparent var(--vot-helper-safari2)var(--vot-helper-safari2)!important;width:100%!important;height:inherit!important;color:rgba(var(--vot-onsurface-rgb,0,0,0),.87)!important;-webkit-text-fill-color:currentColor!important;font-family:inherit!important;font-size:inherit!important;line-height:inherit!important;caret-color:var(--vot-helper-theme)!important;background-color:#0000!important;border-radius:4px!important;margin:0!important;padding:15px 13px!important;transition:border .2s,box-shadow .2s!important;box-shadow:inset 1px 0 #0000,inset -1px 0 #0000,inset 0 -1px #0000!important}.vot-textfield>input:not(:focus):not(.vot-show-placeholer)::-moz-placeholder{color:#0000!important}.vot-textfield>textarea:not(:focus):not(.vot-show-placeholer)::-moz-placeholder{color:#0000!important}.vot-textfield>input:not(:focus):not(.vot-show-placeholer)::-moz-placeholder{color:#0000!important}.vot-textfield>textarea:not(:focus):not(.vot-show-placeholer)::-moz-placeholder{color:#0000!important}.vot-textfield>input:not(:focus):not(.vot-show-placeholer)::-webkit-input-placeholder{color:#0000!important}.vot-textfield>textarea:not(:focus):not(.vot-show-placeholer)::-webkit-input-placeholder{color:#0000!important}.vot-textfield>input:not(:focus):placeholder-shown,.vot-textfield>textarea:not(:focus):placeholder-shown{border-top-color:var(--vot-helper-safari2)!important}.vot-textfield>input+span,.vot-textfield>textarea+span{width:100%!important;max-height:100%!important;color:rgba(var(--vot-onsurface-rgb,0,0,0),.6)!important;cursor:text!important;pointer-events:none!important;font-size:75%!important;line-height:15px!important;transition:color .2s,font-size .2s,line-height .2s!important;display:flex!important;position:absolute!important;top:0!important;left:0!important}.vot-textfield>input:not(:focus):placeholder-shown+span,.vot-textfield>textarea:not(:focus):placeholder-shown+span{font-size:inherit!important;line-height:68px!important}.vot-textfield>input+span:before,.vot-textfield>input+span:after,.vot-textfield>textarea+span:before,.vot-textfield>textarea+span:after{content:""!important;box-sizing:border-box!important;border-top:solid 1px var(--vot-helper-safari2)!important;pointer-events:none!important;min-width:10px!important;height:8px!important;margin-top:6px!important;transition:border .2s,box-shadow .2s!important;display:block!important;box-shadow:inset 0 1px #0000!important}.vot-textfield>input+span:before,.vot-textfield>textarea+span:before{border-left:1px solid #0000!important;border-radius:4px 0!important;margin-right:4px!important}.vot-textfield>input+span:after,.vot-textfield>textarea+span:after{border-right:1px solid #0000!important;border-radius:0 4px!important;flex-grow:1!important;margin-left:4px!important}.vot-textfield>input.vot-show-placeholer+span:before,.vot-textfield>textarea.vot-show-placeholer+span:before{margin-right:0!important}.vot-textfield>input.vot-show-placeholer+span:after,.vot-textfield>textarea.vot-show-placeholer+span:after{margin-left:0!important}.vot-textfield>input:not(:focus):placeholder-shown+span:before,.vot-textfield>input:not(:focus):placeholder-shown+span:after,.vot-textfield>textarea:not(:focus):placeholder-shown+span:before,.vot-textfield>textarea:not(:focus):placeholder-shown+span:after{border-top-color:#0000!important}.vot-textfield:hover>input:not(:disabled),.vot-textfield:hover>textarea:not(:disabled){border-color:transparent var(--vot-helper-safari3)var(--vot-helper-safari3)!important}.vot-textfield:hover>input:not(:disabled)+span:before,.vot-textfield:hover>input:not(:disabled)+span:after,.vot-textfield:hover>textarea:not(:disabled)+span:before,.vot-textfield:hover>textarea:not(:disabled)+span:after{border-top-color:var(--vot-helper-safari3)!important}.vot-textfield:hover>input:not(:disabled):not(:focus):placeholder-shown,.vot-textfield:hover>textarea:not(:disabled):not(:focus):placeholder-shown{border-color:var(--vot-helper-safari3)!important}.vot-textfield>input:focus,.vot-textfield>textarea:focus{border-color:transparent var(--vot-helper-theme)var(--vot-helper-theme)!important;box-shadow:inset 1px 0 var(--vot-helper-theme),inset -1px 0 var(--vot-helper-theme),inset 0 -1px var(--vot-helper-theme)!important;outline:none!important}.vot-textfield>input:focus+span,.vot-textfield>textarea:focus+span{color:var(--vot-helper-theme)!important}.vot-textfield>input:focus+span:before,.vot-textfield>input:focus+span:after,.vot-textfield>textarea:focus+span:before,.vot-textfield>textarea:focus+span:after{border-top-color:var(--vot-helper-theme)!important;box-shadow:inset 0 1px var(--vot-helper-theme)!important}.vot-textfield>input:disabled,.vot-textfield>input:disabled+span,.vot-textfield>textarea:disabled,.vot-textfield>textarea:disabled+span{border-color:transparent var(--vot-helper-safari1)var(--vot-helper-safari1)!important;color:rgba(var(--vot-onsurface-rgb,0,0,0),.38)!important;pointer-events:none!important}.vot-textfield>input:disabled+span:before,.vot-textfield>input:disabled+span:after,.vot-textfield>textarea:disabled+span:before,.vot-textfield>textarea:disabled+span:after,.vot-textfield>input:disabled:placeholder-shown,.vot-textfield>input:disabled:placeholder-shown+span,.vot-textfield>textarea:disabled:placeholder-shown,.vot-textfield>textarea:disabled:placeholder-shown+span{border-top-color:var(--vot-helper-safari1)!important}.vot-textfield>input:disabled:placeholder-shown+span:before,.vot-textfield>input:disabled:placeholder-shown+span:after,.vot-textfield>textarea:disabled:placeholder-shown+span:before,.vot-textfield>textarea:disabled:placeholder-shown+span:after{border-top-color:#0000!important}@media not all and (-webkit-min-device-pixel-ratio:.0000264583),not all and (min-resolution:.001dpcm){@supports ((-webkit-appearance:none)){.vot-textfield>input,.vot-textfield>input+span,.vot-textfield>textarea,.vot-textfield>textarea+span,.vot-textfield>input+span:before,.vot-textfield>input+span:after,.vot-textfield>textarea+span:before,.vot-textfield>textarea+span:after{transition-duration:.1s!important}}}.vot-checkbox{--vot-helper-theme:var(--vot-theme-rgb,var(--vot-primary-rgb,33,150,243));--vot-helper-ontheme:var(--vot-ontheme-rgb,var(--vot-onprimary-rgb,255,255,255));z-index:0;color:rgba(var(--vot-onsurface-rgb,0,0,0),.87);font-family:var(--vot-font-family,"Roboto","Segoe UI",BlinkMacSystemFont,system-ui,-apple-system);text-align:start;font-size:16px;line-height:1.5;display:inline-block;position:relative}.vot-checkbox-sub{padding-left:16px}.vot-checkbox[hidden]{display:none!important}.vot-checkbox>input{-webkit-appearance:none;appearance:none;z-index:10000;box-sizing:border-box;border:2px solid;border-color:rgba(var(--vot-onsurface-rgb,0,0,0),.6);cursor:pointer;background:0 0;border-radius:2px;outline:none;width:18px;height:18px;margin:3px 1px;padding:0;transition:border-color .2s,background-color .2s;display:block;position:absolute}.vot-checkbox>input+span{box-sizing:border-box;width:inherit;cursor:pointer;padding-left:30px;font-weight:400;display:inline-block;position:relative}.vot-checkbox>input+span:before{content:"";background-color:rgb(var(--vot-onsurface-rgb,0,0,0));opacity:0;pointer-events:none;border-radius:50%;width:40px;height:40px;transition:opacity .3s,transform .2s;display:block;position:absolute;top:-8px;left:-10px;transform:scale(1)}.vot-checkbox>input+span:after{content:"";z-index:10000;pointer-events:none;border:0 solid #0000;border-width:0 0 2px 2px;width:10px;height:5px;transition:border-color .2s;display:block;position:absolute;top:3px;left:1px;transform:translate(3px,4px)rotate(-45deg);box-sizing:content-box!important}.vot-checkbox>input:checked,.vot-checkbox>input:indeterminate{border-color:rgb(var(--vot-helper-theme));background-color:rgb(var(--vot-helper-theme))}.vot-checkbox>input:checked+span:before,.vot-checkbox>input:indeterminate+span:before{background-color:rgb(var(--vot-helper-theme))}.vot-checkbox>input:checked+span:after,.vot-checkbox>input:indeterminate+span:after{border-color:rgb(var(--vot-helper-ontheme,255,255,255))}.vot-checkbox>input:indeterminate+span:after{border-left-width:0;transform:translate(4px,3px)}.vot-checkbox:hover>input+span:before{opacity:.04}.vot-checkbox:active>input,.vot-checkbox:active:hover>input:not(:disabled){border-color:rgb(var(--vot-helper-theme))}.vot-checkbox:active>input:checked{background-color:rgba(var(--vot-onsurface-rgb,0,0,0),.6);border-color:#0000}.vot-checkbox:active>input+span:before{opacity:1;transition:transform,opacity;transform:scale(0)}.vot-checkbox>input:disabled{border-color:rgba(var(--vot-onsurface-rgb,0,0,0),.38);cursor:initial}.vot-checkbox>input:disabled:checked,.vot-checkbox>input:disabled:indeterminate{background-color:rgba(var(--vot-onsurface-rgb,0,0,0),.38);border-color:#0000}.vot-checkbox>input:disabled+span{color:rgba(var(--vot-onsurface-rgb,0,0,0),.38);cursor:initial}.vot-checkbox>input:disabled+span:before{opacity:0;transform:scale(0)}.vot-slider{display:inline-block;--vot-safari-helper1:rgba(var(--vot-primary-rgb,33,150,243),.04)!important;--vot-safari-helper2:rgba(var(--vot-primary-rgb,33,150,243),.12)!important;--vot-safari-helper3:rgba(var(--vot-primary-rgb,33,150,243),.16)!important;--vot-safari-helper4:rgba(var(--vot-primary-rgb,33,150,243),.24)!important;width:100%!important;color:rgba(var(--vot-onsurface-rgb,0,0,0),.87)!important;font-family:var(--vot-font,"Roboto","Segoe UI",BlinkMacSystemFont,system-ui,-apple-system)!important;text-align:start!important;font-size:16px!important;line-height:1.5!important}.vot-slider[hidden]{display:none!important}.vot-slider>input{-webkit-appearance:none!important;appearance:none!important;cursor:pointer!important;background-color:#0000!important;border:none!important;width:100%!important;height:36px!important;margin:0 0 -36px!important;padding:0!important;display:block!important;position:relative!important;top:24px!important}.vot-slider>input:last-child{margin:0!important;position:static!important}.vot-slider>input:before{content:""!important;width:calc(100%*var(--vot-progress,0))!important;background:rgb(var(--vot-primary-rgb,33,150,243))!important;height:2px!important;display:block!important;position:absolute!important;top:calc(50% - 1px)!important}.vot-slider>input:disabled{cursor:default!important;opacity:.38!important}.vot-slider>input:disabled+span{color:rgba(var(--vot-onsurface-rgb,0,0,0),.38)!important}.vot-slider>input:disabled::-webkit-slider-runnable-track{background-color:rgba(var(--vot-onsurface-rgb,0,0,0),.38)!important}.vot-slider>input:disabled::-moz-range-track{background-color:rgba(var(--vot-onsurface-rgb,0,0,0),.38)!important}.vot-slider>input:disabled::-ms-fill-lower{background-color:rgba(var(--vot-onsurface-rgb,0,0,0),.38)!important}.vot-slider>input:disabled::-ms-fill-upper{background-color:rgba(var(--vot-onsurface-rgb,0,0,0),.38)!important}.vot-slider>input:disabled::-moz-range-thumb{background-color:rgb(var(--vot-onsurface-rgb,0,0,0))!important;box-shadow:0 0 0 1px rgb(var(--vot-surface-rgb,255,255,255))!important;transform:scale(4)!important}.vot-slider>input:disabled::-ms-thumb{background-color:rgb(var(--vot-onsurface-rgb,0,0,0))!important;box-shadow:0 0 0 1px rgb(var(--vot-surface-rgb,255,255,255))!important;transform:scale(4)!important}.vot-slider>input:disabled::-webkit-slider-thumb{background-color:rgb(var(--vot-onsurface-rgb,0,0,0))!important;box-shadow:0 0 0 1px rgb(var(--vot-surface-rgb,255,255,255))!important;transform:scale(4)!important}.vot-slider>input:disabled::-ms-fill-upper{opacity:.38!important}.vot-slider>input:disabled::-moz-range-progress{background-color:rgba(var(--vot-onsurface-rgb,0,0,0),.87)!important}.vot-slider>input:disabled:-webkit-slider-thumb{color:rgb(var(--vot-surface-rgb,255,255,255))!important}.vot-slider>input:active::-webkit-slider-thumb{box-shadow:0 0 0 2px var(--vot-safari-helper4)!important}.vot-slider>input:active::-moz-range-thumb{box-shadow:0 0 0 2px rgba(var(--vot-primary-rgb,33,150,243),.24)!important}.vot-slider>input:active::-ms-thumb{box-shadow:0 0 0 2px rgba(var(--vot-primary-rgb,33,150,243),.24)!important}.vot-slider>input:focus{outline:none!important}.vot-slider>input::-webkit-slider-runnable-track{background-color:rgba(var(--vot-primary-rgb,33,150,243),.24)!important;border-radius:1px!important;width:100%!important;height:2px!important;margin:17px 0!important}.vot-slider>input::-moz-range-track{background-color:rgba(var(--vot-primary-rgb,33,150,243),.24)!important;border-radius:1px!important;width:100%!important;height:2px!important;margin:17px 0!important}.vot-slider>input::-ms-track{box-sizing:border-box!important;background-color:#0000!important;border:none!important;border-radius:1px!important;width:100%!important;height:2px!important;margin:17px 0!important;padding:0 17px!important}.vot-slider>input::-webkit-slider-thumb{-webkit-appearance:none!important;appearance:none!important;background-color:rgb(var(--vot-primary-rgb,33,150,243))!important;border:none!important;border-radius:50%!important;width:2px!important;height:2px!important;transition:box-shadow .2s!important;transform:scale(6)!important}.vot-slider>input::-moz-range-thumb{-webkit-appearance:none!important;appearance:none!important;background-color:rgb(var(--vot-primary-rgb,33,150,243))!important;border:none!important;border-radius:50%!important;width:2px!important;height:2px!important;transition:box-shadow .2s!important;transform:scale(6)!important}.vot-slider>input::-ms-thumb{-webkit-appearance:none!important;appearance:none!important;background-color:rgb(var(--vot-primary-rgb,33,150,243))!important;border:none!important;border-radius:50%!important;width:2px!important;height:2px!important;transition:box-shadow .2s!important;transform:scale(6)!important}.vot-slider>input::-webkit-slider-thumb{-webkit-appearance:none!important;margin:0!important}.vot-slider>input::-moz-range-thumb{-moz-appearance:none!important}.vot-slider>input::-ms-thumb{margin:0 17px!important}.vot-slider>input::-moz-range-progress{background-color:rgb(var(--vot-primary-rgb,33,150,243))!important;border-radius:1px!important;height:2px!important}.vot-slider>input::-ms-fill-lower{background-color:rgb(var(--vot-primary-rgb,33,150,243))!important;border-radius:1px!important;height:2px!important}.vot-slider>input::-ms-fill-upper{background-color:rgb(var(--vot-primary-rgb,33,150,243))!important;border-radius:1px!important;height:2px!important}.vot-slider>input::-moz-focus-outer{border:none!important}.vot-slider>span{margin-bottom:36px!important;display:inline-block!important}.vot-slider:hover>input::-webkit-slider-thumb{box-shadow:0 0 0 2px var(--vot-safari-helper1)!important}.vot-slider:hover>input::-ms-thumb{box-shadow:0 0 0 2px rgba(var(--vot-primary-rgb,33,150,243),.04)!important}.vot-slider:hover>input:hover::-moz-range-thumb{box-shadow:0 0 0 2px rgba(var(--vot-primary-rgb,33,150,243),.04)!important}.vot-select{font-family:var(--vot-font-family,"Roboto","Segoe UI",BlinkMacSystemFont,system-ui,-apple-system);text-align:start;color:var(--vot-helper-theme);fill:var(--vot-helper-theme);justify-content:space-between;align-items:center;font-size:14px;font-weight:400;line-height:1.5;display:flex;--vot-helper-theme-rgb:var(--vot-onsurface-rgb,0,0,0)!important;--vot-helper-theme:rgba(var(--vot-helper-theme-rgb),.87)!important;--vot-helper-safari1:rgba(var(--vot-onsurface-rgb,0,0,0),.6)!important;--vot-helper-safari2:rgba(var(--vot-onsurface-rgb,0,0,0),.87)!important}.vot-select[hidden]{display:none!important}.vot-select-label{font-size:16px}.vot-select-outer{cursor:pointer;justify-content:space-between;align-items:center;width:120px;max-width:120px;padding:0 5px;display:flex;border-style:solid!important;border-width:1px!important;border-color:var(--vot-helper-safari1)!important;border-radius:4px!important;transition:border .2s!important}.vot-select-outer:hover{border-color:var(--vot-helper-safari2)!important}.vot-select-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.vot-select-arrow-icon{justify-content:center;align-items:center;width:20px;height:32px;display:flex}.vot-select-content-list{flex-direction:column;display:flex}.vot-select-content-list .vot-select-content-item{cursor:pointer;border-radius:8px;padding:5px 10px}.vot-select-content-list .vot-select-content-item:not([inert]):hover{background-color:#2a2c31}.vot-select-content-list .vot-select-content-item[data-vot-selected=true]{color:rgb(var(--vot-primary-rgb,33,150,243));background-color:rgba(var(--vot-primary-rgb,33,150,243),.2)}.vot-select-content-list .vot-select-content-item[data-vot-selected=true]:hover{background-color:rgba(var(--vot-primary-rgb,33,150,243),.1)!important}.vot-select-content-list .vot-select-content-item[data-vot-disabled=true]{cursor:default}.vot-select-content-list .vot-select-content-item[hidden]{display:none!important}.vot-header{color:rgba(var(--vot-helper-onsurface-rgb),.87);font-family:var(--vot-font-family,"Roboto","Segoe UI",BlinkMacSystemFont,system-ui,-apple-system);text-align:start;font-weight:700;line-height:1.5}.vot-header[hidden]{display:none!important}.vot-header:not(:first-child){padding-top:8px}.vot-header-level-1{font-size:2em}.vot-header-level-2{font-size:1.5em}.vot-header-level-3{font-size:1.17em}.vot-header-level-4{font-size:1em}.vot-header-level-5{font-size:.83em}.vot-header-level-6{font-size:.67em}.vot-info{color:rgba(var(--vot-helper-onsurface-rgb),.87);font-family:var(--vot-font-family,"Roboto","Segoe UI",BlinkMacSystemFont,system-ui,-apple-system);text-align:start;-webkit-user-select:text;user-select:text;font-size:16px;line-height:1.5;display:flex}.vot-info[hidden]{display:none!important}.vot-info>:not(:first-child){color:rgba(var(--vot-helper-onsurface-rgb),.5);flex:1;margin-left:8px}.vot-details{color:rgba(var(--vot-helper-onsurface-rgb),.87);font-family:var(--vot-font-family,"Roboto","Segoe UI",BlinkMacSystemFont,system-ui,-apple-system);text-align:start;cursor:pointer;border-radius:.5em;justify-content:space-between;align-items:center;margin:0 -.5em;padding:.5em;font-size:16px;line-height:1.5;transition:background .5s;display:flex}.vot-details[hidden]{display:none!important}.vot-details-arrow-icon{width:20px;height:32px;fill:rgba(var(--vot-helper-onsurface-rgb),.87);justify-content:center;align-items:center;display:flex;transform:scale(1.25)rotate(-90deg)}.vot-details:hover{background:rgba(var(--vot-onsurface-rgb,0,0,0),.04)}.vot-lang-select{--vot-helper-theme-rgb:var(--vot-onsurface-rgb,0,0,0);--vot-helper-theme:rgba(var(--vot-helper-theme-rgb),.87);color:var(--vot-helper-theme);fill:var(--vot-helper-theme);justify-content:space-between;align-items:center;display:flex}.vot-lang-select[hidden]{display:none!important}.vot-lang-select-icon{justify-content:center;align-items:center;width:32px;height:32px;display:flex}.vot-segmented-button{--vot-helper-theme-rgb:var(--vot-onsurface-rgb,0,0,0);--vot-helper-theme:rgba(var(--vot-helper-theme-rgb),.87);-webkit-user-select:none;user-select:none;background:rgb(var(--vot-surface-rgb,255,255,255));max-width:100vw;height:32px;color:var(--vot-helper-theme);fill:var(--vot-helper-theme);font-family:var(--vot-font-family,"Roboto","Segoe UI",BlinkMacSystemFont,system-ui,-apple-system);cursor:default;z-index:2147483647;border-radius:4px;align-items:center;font-size:16px;line-height:1.5;transition:opacity .5s;display:flex;position:absolute;top:5rem;left:50%;overflow:hidden;transform:translate(-50%)}.vot-segmented-button[hidden]{display:none!important}.vot-segmented-button *{box-sizing:border-box!important}.vot-segmented-button .vot-separator{background:rgba(var(--vot-helper-theme-rgb),.1);width:1px;height:50%}.vot-segmented-button .vot-separator[hidden]{display:none!important}.vot-segmented-button .vot-segment,.vot-segmented-button .vot-segment-only-icon{height:100%;color:inherit;background-color:#0000;border:none;justify-content:center;align-items:center;padding:0 8px;transition:background-color .1s ease-in-out;display:flex;position:relative;overflow:hidden}.vot-segmented-button .vot-segment[hidden],.vot-segmented-button [hidden].vot-segment-only-icon{display:none!important}.vot-segmented-button .vot-segment:before,.vot-segmented-button .vot-segment-only-icon:before,.vot-segmented-button .vot-segment:after,.vot-segmented-button .vot-segment-only-icon:after{content:"";border-radius:inherit;opacity:0;position:absolute;top:0;bottom:0;left:0;right:0}.vot-segmented-button .vot-segment:before,.vot-segmented-button .vot-segment-only-icon:before{background-color:rgb(var(--vot-helper-theme-rgb));transition:opacity .2s}.vot-segmented-button .vot-segment:after,.vot-segmented-button .vot-segment-only-icon:after{background:radial-gradient(circle,currentColor 1%,#0000 1%) 50%/10000% 10000% no-repeat;transition:opacity 1s,background-size .5s}.vot-segmented-button .vot-segment:hover:before,.vot-segmented-button .vot-segment-only-icon:hover:before{opacity:.04}.vot-segmented-button .vot-segment:active:after,.vot-segmented-button .vot-segment-only-icon:active:after{opacity:.16;background-size:100% 100%;transition:background-size}.vot-segmented-button .vot-segment-only-icon{min-width:32px;padding:0}.vot-segmented-button .vot-segment-label{white-space:nowrap;color:inherit;margin-left:8px;font-weight:400}.vot-segmented-button[data-status=success] .vot-translate-button{color:rgb(var(--vot-primary-rgb,33,150,243));fill:rgb(var(--vot-primary-rgb,33,150,243))}.vot-segmented-button[data-status=error] .vot-translate-button{color:#f28b82;fill:#f28b82}.vot-segmented-button[data-loading=true] #vot-loading-icon{display:block!important}.vot-segmented-button[data-loading=true] #vot-translate-icon{display:none!important}.vot-segmented-button[data-direction=column]{flex-direction:column;height:fit-content}.vot-segmented-button[data-direction=column] .vot-segment-label{display:none}.vot-segmented-button[data-direction=column]>.vot-segment-only-icon,.vot-segmented-button[data-direction=column]>.vot-segment{padding:8px}.vot-segmented-button[data-direction=column] .vot-separator{width:50%;height:1px}.vot-segmented-button[data-position=left]{top:12.5vh;left:50px}.vot-segmented-button[data-position=right]{top:12.5vh;left:auto;right:0}.vot-segmented-button svg{width:24px}.vot-menu{--vot-helper-surface-rgb:var(--vot-surface-rgb,255,255,255);--vot-helper-surface:rgb(var(--vot-helper-surface-rgb));--vot-helper-onsurface-rgb:var(--vot-onsurface-rgb,0,0,0);--vot-helper-onsurface:rgba(var(--vot-helper-onsurface-rgb),.87);-webkit-user-select:none;user-select:none;background-color:var(--vot-helper-surface);color:var(--vot-helper-onsurface);font-family:var(--vot-font-family,"Roboto","Segoe UI",BlinkMacSystemFont,system-ui,-apple-system);cursor:default;z-index:2147483647;visibility:visible;opacity:1;transform-origin:top;border-radius:8px;min-width:300px;font-size:16px;line-height:1.5;transition:opacity .3s,transform .1s;position:absolute;top:calc(5rem + 48px);left:50%;overflow:hidden;transform:translate(-50%)scale(1)}.vot-menu *{box-sizing:border-box!important}.vot-menu[hidden]{pointer-events:none;visibility:hidden;opacity:0;transform:translate(-50%)scale(0);display:block!important}.vot-menu-content-wrapper{min-height:100px;max-height:calc(var(--vot-container-height,75vh) - (5rem + 32px + 16px)*2);flex-direction:column;display:flex;overflow:auto}.vot-menu-header-container{flex-shrink:0;align-items:flex-start;min-height:31px;display:flex}.vot-menu-header-container:empty{padding:0 0 16px}.vot-menu-header-container>.vot-icon-button{margin-inline-end:4px;margin-top:4px}.vot-menu-title-container{font-size:inherit;font-weight:inherit;text-align:start;outline:0;flex:1;margin:0;display:flex}.vot-menu-title{padding-bottom:16px;padding-inline-start:16px;padding-inline-end:16px;flex:1;padding-top:16px;font-size:16px;font-weight:400;line-height:1}.vot-menu-body-container{box-sizing:border-box;overscroll-behavior:contain;flex-direction:column;gap:8px;min-height:1.375rem;padding:0 16px;display:flex;overflow:auto;scrollbar-color:rgba(var(--vot-helper-onsurface-rgb),.1)var(--vot-helper-surface)!important}.vot-menu-body-container::-webkit-scrollbar{background:var(--vot-helper-surface)!important;width:12px!important;height:12px!important}.vot-menu-body-container::-webkit-scrollbar-track{background:var(--vot-helper-surface)!important;width:12px!important;height:12px!important}.vot-menu-body-container::-webkit-scrollbar-thumb{background:rgba(var(--vot-helper-onsurface-rgb),.1)!important;border:5px solid var(--vot-helper-surface)!important;-webkit-border-radius:1ex!important}.vot-menu-body-container::-webkit-scrollbar-thumb:hover{border:3px solid var(--vot-helper-surface)!important}.vot-menu-body-container::-webkit-scrollbar-corner{background:var(--vot-helper-surface)!important}.vot-menu-footer-container{padding-bottom:16px;padding-inline-start:16px;padding-inline-end:16px;flex-shrink:0;justify-content:flex-end;padding-top:16px;display:flex}.vot-menu-footer-container:empty{padding:16px 0 0}.vot-menu[data-position=left]{top:12.5vh;left:240px}.vot-menu[data-position=right]{top:12.5vh;left:auto;right:-80px}.vot-dialog{--vot-helper-surface-rgb:var(--vot-surface-rgb,255,255,255);--vot-helper-surface:rgb(var(--vot-helper-surface-rgb));--vot-helper-onsurface-rgb:var(--vot-onsurface-rgb,0,0,0);--vot-helper-onsurface:rgba(var(--vot-helper-onsurface-rgb),.87);max-width:initial;max-height:initial;width:min(var(--vot-dialog-width,512px),100%);top:50%;bottom:50%;background-color:var(--vot-helper-surface);height:fit-content;color:var(--vot-helper-onsurface);font-family:var(--vot-font-family,"Roboto","Segoe UI",BlinkMacSystemFont,system-ui,-apple-system);-webkit-user-select:none;user-select:none;visibility:visible;opacity:1;transform-origin:50%;border-radius:8px;margin:auto;padding:0;font-size:16px;line-height:1.5;transition:opacity .3s,transform .1s;display:block;position:fixed;top:0;bottom:0;left:0;right:0;overflow-x:auto;overflow-y:hidden;transform:scale(1);box-shadow:0 0 16px #0000001f,0 16px 16px #0000003d}[hidden]>.vot-dialog{pointer-events:none;opacity:0;transition:opacity .1s,transform .2s;transform:scale(.5)}.vot-dialog-container{visibility:visible;z-index:2147483647;position:absolute}.vot-dialog-container[hidden]{pointer-events:none;visibility:hidden;display:block!important}.vot-dialog-container *{box-sizing:border-box!important}.vot-dialog-backdrop{opacity:1;background-color:#0009;transition:opacity .3s;position:fixed;top:0;bottom:0;left:0;right:0}[hidden]>.vot-dialog-backdrop{pointer-events:none;opacity:0}.vot-dialog-content-wrapper{flex-direction:column;max-height:75vh;display:flex;overflow:auto}.vot-dialog-header-container{flex-shrink:0;align-items:flex-start;min-height:31px;display:flex}.vot-dialog-header-container:empty{padding:0 0 20px}.vot-dialog-header-container>.vot-icon-button{margin-inline-end:4px;margin-top:4px}.vot-dialog-title-container{font-size:inherit;font-weight:inherit;outline:0;flex:1;margin:0;display:flex}.vot-dialog-title{padding-bottom:16px;padding-inline-start:20px;padding-inline-end:20px;flex:1;padding-top:20px;font-size:115.385%;font-weight:700;line-height:1}.vot-dialog-body-container{box-sizing:border-box;overscroll-behavior:contain;flex-direction:column;gap:16px;min-height:1.375rem;padding:0 20px;display:flex;overflow:auto;scrollbar-color:rgba(var(--vot-helper-onsurface-rgb),.1)var(--vot-helper-surface)!important}.vot-dialog-body-container::-webkit-scrollbar{background:var(--vot-helper-surface)!important;width:12px!important;height:12px!important}.vot-dialog-body-container::-webkit-scrollbar-track{background:var(--vot-helper-surface)!important;width:12px!important;height:12px!important}.vot-dialog-body-container::-webkit-scrollbar-thumb{background:rgba(var(--vot-helper-onsurface-rgb),.1)!important;border:5px solid var(--vot-helper-surface)!important;-webkit-border-radius:1ex!important}.vot-dialog-body-container::-webkit-scrollbar-thumb:hover{border:3px solid var(--vot-helper-surface)!important}.vot-dialog-body-container::-webkit-scrollbar-corner{background:var(--vot-helper-surface)!important}.vot-dialog-footer-container{padding-bottom:16px;padding-inline-start:16px;padding-inline-end:16px;flex-shrink:0;justify-content:flex-end;padding-top:16px;display:flex}.vot-dialog-footer-container:empty{padding:20px 0 0}.vot-subtitles-widget{z-index:2147483647;pointer-events:none;justify-content:center;align-items:center;width:50%;min-height:20%;max-height:100%;display:flex;position:absolute;top:75%;left:25%}.vot-subtitles{--vot-subtitles-background:rgba(var(--vot-surface-rgb,46,47,52),var(--vot-subtitles-opacity,.8));background:var(--vot-subtitles-background,#2e2f34cc);width:max-content;max-width:100%;max-height:100%;color:var(--vot-subtitles-color,#e3e3e3);pointer-events:all;box-sizing:border-box;-webkit-user-select:none;user-select:none;border-radius:.5em;padding:.5em;font-size:20px;line-height:normal;position:relative}.vot-subtitles span{-webkit-user-select:text;user-select:text;font-size:inherit!important;line-height:normal!important}.vot-subtitles .passed{color:var(--vot-subtitles-passed-color,#2196f3)}:root{--vot-font-family:"Roboto","Segoe UI",BlinkMacSystemFont,system-ui,-apple-system;--vot-primary-rgb:139,180,245;--vot-onprimary-rgb:32,33,36;--vot-surface-rgb:32,33,36;--vot-onsurface-rgb:227,227,227;--vot-subtitles-color:rgb(var(--vot-onsurface-rgb,227,227,227));--vot-subtitles-passed-color:rgb(var(--vot-primary-rgb,33,150,243))}vot-block{display:block;visibility:visible!important}')},"./node_modules/bowser/es5.js":function(t){t.exports=function(t){var e={};function o(i){if(e[i])return e[i].exports;var a=e[i]={i,l:!1,exports:{}};return t[i].call(a.exports,a,a.exports,o),a.l=!0,a.exports}return o.m=t,o.c=e,o.d=function(t,e,i){o.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},o.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},o.t=function(t,e){if(1&e&&(t=o(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(o.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var a in t)o.d(i,a,function(e){return t[e]}.bind(null,a));return i},o.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return o.d(e,"a",e),e},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o.p="",o(o.s=90)}({17:function(t,e,o){"use strict";e.__esModule=!0,e.default=void 0;var i=o(18),a=function(){function t(){}return t.getFirstMatch=function(t,e){var o=e.match(t);return o&&o.length>0&&o[1]||""},t.getSecondMatch=function(t,e){var o=e.match(t);return o&&o.length>1&&o[2]||""},t.matchAndReturnConst=function(t,e,o){if(t.test(e))return o},t.getWindowsVersionName=function(t){switch(t){case"NT":return"NT";case"XP":case"NT 5.1":return"XP";case"NT 5.0":return"2000";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}},t.getMacOSVersionName=function(t){var e=t.split(".").splice(0,2).map((function(t){return parseInt(t,10)||0}));if(e.push(0),10===e[0])switch(e[1]){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return}},t.getAndroidVersionName=function(t){var e=t.split(".").splice(0,2).map((function(t){return parseInt(t,10)||0}));if(e.push(0),!(1===e[0]&&e[1]<5))return 1===e[0]&&e[1]<6?"Cupcake":1===e[0]&&e[1]>=6?"Donut":2===e[0]&&e[1]<2?"Eclair":2===e[0]&&2===e[1]?"Froyo":2===e[0]&&e[1]>2?"Gingerbread":3===e[0]?"Honeycomb":4===e[0]&&e[1]<1?"Ice Cream Sandwich":4===e[0]&&e[1]<4?"Jelly Bean":4===e[0]&&e[1]>=4?"KitKat":5===e[0]?"Lollipop":6===e[0]?"Marshmallow":7===e[0]?"Nougat":8===e[0]?"Oreo":9===e[0]?"Pie":void 0},t.getVersionPrecision=function(t){return t.split(".").length},t.compareVersions=function(e,o,i){void 0===i&&(i=!1);var a=t.getVersionPrecision(e),n=t.getVersionPrecision(o),r=Math.max(a,n),s=0,l=t.map([e,o],(function(e){var o=r-t.getVersionPrecision(e),i=e+new Array(o+1).join(".0");return t.map(i.split("."),(function(t){return new Array(20-t.length).join("0")+t})).reverse()}));for(i&&(s=r-Math.min(a,n)),r-=1;r>=s;){if(l[0][r]>l[1][r])return 1;if(l[0][r]===l[1][r]){if(r===s)return 0;r-=1}else if(l[0][r]1?a-1:0),r=1;r0){var r=Object.keys(o),l=s.default.find(r,(function(t){return e.isOS(t)}));if(l){var d=this.satisfies(o[l]);if(void 0!==d)return d}var u=s.default.find(r,(function(t){return e.isPlatform(t)}));if(u){var c=this.satisfies(o[u]);if(void 0!==c)return c}}if(n>0){var h=Object.keys(a),p=s.default.find(h,(function(t){return e.isBrowser(t,!0)}));if(void 0!==p)return this.compareVersion(a[p])}},e.isBrowser=function(t,e){void 0===e&&(e=!1);var o=this.getBrowserName().toLowerCase(),i=t.toLowerCase(),a=s.default.getBrowserTypeByAlias(i);return e&&a&&(i=a.toLowerCase()),i===o},e.compareVersion=function(t){var e=[0],o=t,i=!1,a=this.getBrowserVersion();if("string"==typeof a)return">"===t[0]||"<"===t[0]?(o=t.substr(1),"="===t[1]?(i=!0,o=t.substr(2)):e=[],">"===t[0]?e.push(1):e.push(-1)):"="===t[0]?o=t.substr(1):"~"===t[0]&&(i=!0,o=t.substr(1)),e.indexOf(s.default.compareVersions(a,o,i))>-1},e.isOS=function(t){return this.getOSName(!0)===String(t).toLowerCase()},e.isPlatform=function(t){return this.getPlatformType(!0)===String(t).toLowerCase()},e.isEngine=function(t){return this.getEngineName(!0)===String(t).toLowerCase()},e.is=function(t,e){return void 0===e&&(e=!1),this.isBrowser(t,e)||this.isOS(t)||this.isPlatform(t)},e.some=function(t){var e=this;return void 0===t&&(t=[]),t.some((function(t){return e.is(t)}))},t}();e.default=d,t.exports=e.default},92:function(t,e,o){"use strict";e.__esModule=!0,e.default=void 0;var i,a=(i=o(17))&&i.__esModule?i:{default:i},n=/version\/(\d+(\.?_?\d+)+)/i,r=[{test:[/googlebot/i],describe:function(t){var e={name:"Googlebot"},o=a.default.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,t)||a.default.getFirstMatch(n,t);return o&&(e.version=o),e}},{test:[/opera/i],describe:function(t){var e={name:"Opera"},o=a.default.getFirstMatch(n,t)||a.default.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/opr\/|opios/i],describe:function(t){var e={name:"Opera"},o=a.default.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,t)||a.default.getFirstMatch(n,t);return o&&(e.version=o),e}},{test:[/SamsungBrowser/i],describe:function(t){var e={name:"Samsung Internet for Android"},o=a.default.getFirstMatch(n,t)||a.default.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/Whale/i],describe:function(t){var e={name:"NAVER Whale Browser"},o=a.default.getFirstMatch(n,t)||a.default.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/MZBrowser/i],describe:function(t){var e={name:"MZ Browser"},o=a.default.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,t)||a.default.getFirstMatch(n,t);return o&&(e.version=o),e}},{test:[/focus/i],describe:function(t){var e={name:"Focus"},o=a.default.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,t)||a.default.getFirstMatch(n,t);return o&&(e.version=o),e}},{test:[/swing/i],describe:function(t){var e={name:"Swing"},o=a.default.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,t)||a.default.getFirstMatch(n,t);return o&&(e.version=o),e}},{test:[/coast/i],describe:function(t){var e={name:"Opera Coast"},o=a.default.getFirstMatch(n,t)||a.default.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/opt\/\d+(?:.?_?\d+)+/i],describe:function(t){var e={name:"Opera Touch"},o=a.default.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,t)||a.default.getFirstMatch(n,t);return o&&(e.version=o),e}},{test:[/yabrowser/i],describe:function(t){var e={name:"Yandex Browser"},o=a.default.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,t)||a.default.getFirstMatch(n,t);return o&&(e.version=o),e}},{test:[/ucbrowser/i],describe:function(t){var e={name:"UC Browser"},o=a.default.getFirstMatch(n,t)||a.default.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/Maxthon|mxios/i],describe:function(t){var e={name:"Maxthon"},o=a.default.getFirstMatch(n,t)||a.default.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/epiphany/i],describe:function(t){var e={name:"Epiphany"},o=a.default.getFirstMatch(n,t)||a.default.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/puffin/i],describe:function(t){var e={name:"Puffin"},o=a.default.getFirstMatch(n,t)||a.default.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/sleipnir/i],describe:function(t){var e={name:"Sleipnir"},o=a.default.getFirstMatch(n,t)||a.default.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/k-meleon/i],describe:function(t){var e={name:"K-Meleon"},o=a.default.getFirstMatch(n,t)||a.default.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/micromessenger/i],describe:function(t){var e={name:"WeChat"},o=a.default.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,t)||a.default.getFirstMatch(n,t);return o&&(e.version=o),e}},{test:[/qqbrowser/i],describe:function(t){var e={name:/qqbrowserlite/i.test(t)?"QQ Browser Lite":"QQ Browser"},o=a.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,t)||a.default.getFirstMatch(n,t);return o&&(e.version=o),e}},{test:[/msie|trident/i],describe:function(t){var e={name:"Internet Explorer"},o=a.default.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/\sedg\//i],describe:function(t){var e={name:"Microsoft Edge"},o=a.default.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/edg([ea]|ios)/i],describe:function(t){var e={name:"Microsoft Edge"},o=a.default.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/vivaldi/i],describe:function(t){var e={name:"Vivaldi"},o=a.default.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/seamonkey/i],describe:function(t){var e={name:"SeaMonkey"},o=a.default.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/sailfish/i],describe:function(t){var e={name:"Sailfish"},o=a.default.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i,t);return o&&(e.version=o),e}},{test:[/silk/i],describe:function(t){var e={name:"Amazon Silk"},o=a.default.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/phantom/i],describe:function(t){var e={name:"PhantomJS"},o=a.default.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/slimerjs/i],describe:function(t){var e={name:"SlimerJS"},o=a.default.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(t){var e={name:"BlackBerry"},o=a.default.getFirstMatch(n,t)||a.default.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/(web|hpw)[o0]s/i],describe:function(t){var e={name:"WebOS Browser"},o=a.default.getFirstMatch(n,t)||a.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/bada/i],describe:function(t){var e={name:"Bada"},o=a.default.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/tizen/i],describe:function(t){var e={name:"Tizen"},o=a.default.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,t)||a.default.getFirstMatch(n,t);return o&&(e.version=o),e}},{test:[/qupzilla/i],describe:function(t){var e={name:"QupZilla"},o=a.default.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,t)||a.default.getFirstMatch(n,t);return o&&(e.version=o),e}},{test:[/firefox|iceweasel|fxios/i],describe:function(t){var e={name:"Firefox"},o=a.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/electron/i],describe:function(t){var e={name:"Electron"},o=a.default.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/MiuiBrowser/i],describe:function(t){var e={name:"Miui"},o=a.default.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/chromium/i],describe:function(t){var e={name:"Chromium"},o=a.default.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,t)||a.default.getFirstMatch(n,t);return o&&(e.version=o),e}},{test:[/chrome|crios|crmo/i],describe:function(t){var e={name:"Chrome"},o=a.default.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/GSA/i],describe:function(t){var e={name:"Google Search"},o=a.default.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:function(t){var e=!t.test(/like android/i),o=t.test(/android/i);return e&&o},describe:function(t){var e={name:"Android Browser"},o=a.default.getFirstMatch(n,t);return o&&(e.version=o),e}},{test:[/playstation 4/i],describe:function(t){var e={name:"PlayStation 4"},o=a.default.getFirstMatch(n,t);return o&&(e.version=o),e}},{test:[/safari|applewebkit/i],describe:function(t){var e={name:"Safari"},o=a.default.getFirstMatch(n,t);return o&&(e.version=o),e}},{test:[/.*/i],describe:function(t){var e=-1!==t.search("\\(")?/^(.*)\/(.*)[ \t]\((.*)/:/^(.*)\/(.*) /;return{name:a.default.getFirstMatch(e,t),version:a.default.getSecondMatch(e,t)}}}];e.default=r,t.exports=e.default},93:function(t,e,o){"use strict";e.__esModule=!0,e.default=void 0;var i,a=(i=o(17))&&i.__esModule?i:{default:i},n=o(18),r=[{test:[/Roku\/DVP/],describe:function(t){var e=a.default.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,t);return{name:n.OS_MAP.Roku,version:e}}},{test:[/windows phone/i],describe:function(t){var e=a.default.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,t);return{name:n.OS_MAP.WindowsPhone,version:e}}},{test:[/windows /i],describe:function(t){var e=a.default.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,t),o=a.default.getWindowsVersionName(e);return{name:n.OS_MAP.Windows,version:e,versionName:o}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(t){var e={name:n.OS_MAP.iOS},o=a.default.getSecondMatch(/(Version\/)(\d[\d.]+)/,t);return o&&(e.version=o),e}},{test:[/macintosh/i],describe:function(t){var e=a.default.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,t).replace(/[_\s]/g,"."),o=a.default.getMacOSVersionName(e),i={name:n.OS_MAP.MacOS,version:e};return o&&(i.versionName=o),i}},{test:[/(ipod|iphone|ipad)/i],describe:function(t){var e=a.default.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,t).replace(/[_\s]/g,".");return{name:n.OS_MAP.iOS,version:e}}},{test:function(t){var e=!t.test(/like android/i),o=t.test(/android/i);return e&&o},describe:function(t){var e=a.default.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,t),o=a.default.getAndroidVersionName(e),i={name:n.OS_MAP.Android,version:e};return o&&(i.versionName=o),i}},{test:[/(web|hpw)[o0]s/i],describe:function(t){var e=a.default.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,t),o={name:n.OS_MAP.WebOS};return e&&e.length&&(o.version=e),o}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(t){var e=a.default.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,t)||a.default.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,t)||a.default.getFirstMatch(/\bbb(\d+)/i,t);return{name:n.OS_MAP.BlackBerry,version:e}}},{test:[/bada/i],describe:function(t){var e=a.default.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,t);return{name:n.OS_MAP.Bada,version:e}}},{test:[/tizen/i],describe:function(t){var e=a.default.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,t);return{name:n.OS_MAP.Tizen,version:e}}},{test:[/linux/i],describe:function(){return{name:n.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:n.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(t){var e=a.default.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,t);return{name:n.OS_MAP.PlayStation4,version:e}}}];e.default=r,t.exports=e.default},94:function(t,e,o){"use strict";e.__esModule=!0,e.default=void 0;var i,a=(i=o(17))&&i.__esModule?i:{default:i},n=o(18),r=[{test:[/googlebot/i],describe:function(){return{type:"bot",vendor:"Google"}}},{test:[/huawei/i],describe:function(t){var e=a.default.getFirstMatch(/(can-l01)/i,t)&&"Nova",o={type:n.PLATFORMS_MAP.mobile,vendor:"Huawei"};return e&&(o.model=e),o}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe:function(){return{type:n.PLATFORMS_MAP.tablet,vendor:"Nexus"}}},{test:[/ipad/i],describe:function(){return{type:n.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(){return{type:n.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/kftt build/i],describe:function(){return{type:n.PLATFORMS_MAP.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"}}},{test:[/silk/i],describe:function(){return{type:n.PLATFORMS_MAP.tablet,vendor:"Amazon"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:n.PLATFORMS_MAP.tablet}}},{test:function(t){var e=t.test(/ipod|iphone/i),o=t.test(/like (ipod|iphone)/i);return e&&!o},describe:function(t){var e=a.default.getFirstMatch(/(ipod|iphone)/i,t);return{type:n.PLATFORMS_MAP.mobile,vendor:"Apple",model:e}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:n.PLATFORMS_MAP.mobile,vendor:"Nexus"}}},{test:[/[^-]mobi/i],describe:function(){return{type:n.PLATFORMS_MAP.mobile}}},{test:function(t){return"blackberry"===t.getBrowserName(!0)},describe:function(){return{type:n.PLATFORMS_MAP.mobile,vendor:"BlackBerry"}}},{test:function(t){return"bada"===t.getBrowserName(!0)},describe:function(){return{type:n.PLATFORMS_MAP.mobile}}},{test:function(t){return"windows phone"===t.getBrowserName()},describe:function(){return{type:n.PLATFORMS_MAP.mobile,vendor:"Microsoft"}}},{test:function(t){var e=Number(String(t.getOSVersion()).split(".")[0]);return"android"===t.getOSName(!0)&&e>=3},describe:function(){return{type:n.PLATFORMS_MAP.tablet}}},{test:function(t){return"android"===t.getOSName(!0)},describe:function(){return{type:n.PLATFORMS_MAP.mobile}}},{test:function(t){return"macos"===t.getOSName(!0)},describe:function(){return{type:n.PLATFORMS_MAP.desktop,vendor:"Apple"}}},{test:function(t){return"windows"===t.getOSName(!0)},describe:function(){return{type:n.PLATFORMS_MAP.desktop}}},{test:function(t){return"linux"===t.getOSName(!0)},describe:function(){return{type:n.PLATFORMS_MAP.desktop}}},{test:function(t){return"playstation 4"===t.getOSName(!0)},describe:function(){return{type:n.PLATFORMS_MAP.tv}}},{test:function(t){return"roku"===t.getOSName(!0)},describe:function(){return{type:n.PLATFORMS_MAP.tv}}}];e.default=r,t.exports=e.default},95:function(t,e,o){"use strict";e.__esModule=!0,e.default=void 0;var i,a=(i=o(17))&&i.__esModule?i:{default:i},n=o(18),r=[{test:function(t){return"microsoft edge"===t.getBrowserName(!0)},describe:function(t){if(/\sedg\//i.test(t))return{name:n.ENGINE_MAP.Blink};var e=a.default.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,t);return{name:n.ENGINE_MAP.EdgeHTML,version:e}}},{test:[/trident/i],describe:function(t){var e={name:n.ENGINE_MAP.Trident},o=a.default.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:function(t){return t.test(/presto/i)},describe:function(t){var e={name:n.ENGINE_MAP.Presto},o=a.default.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:function(t){var e=t.test(/gecko/i),o=t.test(/like gecko/i);return e&&!o},describe:function(t){var e={name:n.ENGINE_MAP.Gecko},o=a.default.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/(apple)?webkit\/537\.36/i],describe:function(){return{name:n.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(t){var e={name:n.ENGINE_MAP.WebKit},o=a.default.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}}];e.default=r,t.exports=e.default}})},"./node_modules/requestidlecallback-polyfill/index.js":()=>{window.requestIdleCallback=window.requestIdleCallback||function(t){var e=Date.now();return setTimeout((function(){t({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-e))}})}),1)},window.cancelIdleCallback=window.cancelIdleCallback||function(t){clearTimeout(t)}}},e={};function o(i){var a=e[i];if(void 0!==a)return a.exports;var n=e[i]={exports:{}};return t[i].call(n.exports,n,n.exports,o),n.exports}(()=>{"use strict";var t=o("./node_modules/bowser/es5.js");const e=protobuf;var i;function a(t){switch(t){case 0:case"NO_CONNECTION":return i.NO_CONNECTION;case 10:case"TRANSLATING":return i.TRANSLATING;case 20:case"STREAMING":return i.STREAMING;default:return i.UNRECOGNIZED}}!function(t){t[t.NO_CONNECTION=0]="NO_CONNECTION",t[t.TRANSLATING=10]="TRANSLATING",t[t.STREAMING=20]="STREAMING",t[t.UNRECOGNIZED=-1]="UNRECOGNIZED"}(i||(i={}));const n={encode:(t,o=e.Writer.create())=>(""!==t.target&&o.uint32(10).string(t.target),""!==t.targetUrl&&o.uint32(18).string(t.targetUrl),o),decode(t,o){const i=t instanceof e.Reader?t:e.Reader.create(t);let a=void 0===o?i.len:i.pos+o;const n={target:"",targetUrl:""};for(;i.pos>>3){case 1:if(10!==t)break;n.target=i.string();continue;case 2:if(18!==t)break;n.targetUrl=i.string();continue}if(4==(7&t)||0===t)break;i.skipType(7&t)}return n},fromJSON:t=>({target:x(t.target)?globalThis.String(t.target):"",targetUrl:x(t.targetUrl)?globalThis.String(t.targetUrl):""}),toJSON(t){const e={};return""!==t.target&&(e.target=t.target),""!==t.targetUrl&&(e.targetUrl=t.targetUrl),e},create:t=>n.fromPartial(t??{}),fromPartial(t){const e={target:"",targetUrl:""};return e.target=t.target??"",e.targetUrl=t.targetUrl??"",e}};const r={encode(t,o=e.Writer.create()){""!==t.url&&o.uint32(26).string(t.url),void 0!==t.deviceId&&o.uint32(34).string(t.deviceId),!1!==t.firstRequest&&o.uint32(40).bool(t.firstRequest),0!==t.duration&&o.uint32(49).double(t.duration),0!==t.unknown0&&o.uint32(56).int32(t.unknown0),""!==t.language&&o.uint32(66).string(t.language),!1!==t.forceSourceLang&&o.uint32(72).bool(t.forceSourceLang),0!==t.unknown1&&o.uint32(80).int32(t.unknown1);for(const e of t.translationHelp)n.encode(e,o.uint32(90).fork()).ldelim();return""!==t.responseLanguage&&o.uint32(114).string(t.responseLanguage),0!==t.unknown2&&o.uint32(120).int32(t.unknown2),0!==t.unknown3&&o.uint32(128).int32(t.unknown3),!1!==t.bypassCache&&o.uint32(136).bool(t.bypassCache),0!==t.unknown4&&o.uint32(144).int32(t.unknown4),o},decode(t,o){const i=t instanceof e.Reader?t:e.Reader.create(t);let a=void 0===o?i.len:i.pos+o;const r={url:"",deviceId:void 0,firstRequest:!1,duration:0,unknown0:0,language:"",forceSourceLang:!1,unknown1:0,translationHelp:[],responseLanguage:"",unknown2:0,unknown3:0,bypassCache:!1,unknown4:0};for(;i.pos>>3){case 3:if(26!==t)break;r.url=i.string();continue;case 4:if(34!==t)break;r.deviceId=i.string();continue;case 5:if(40!==t)break;r.firstRequest=i.bool();continue;case 6:if(49!==t)break;r.duration=i.double();continue;case 7:if(56!==t)break;r.unknown0=i.int32();continue;case 8:if(66!==t)break;r.language=i.string();continue;case 9:if(72!==t)break;r.forceSourceLang=i.bool();continue;case 10:if(80!==t)break;r.unknown1=i.int32();continue;case 11:if(90!==t)break;r.translationHelp.push(n.decode(i,i.uint32()));continue;case 14:if(114!==t)break;r.responseLanguage=i.string();continue;case 15:if(120!==t)break;r.unknown2=i.int32();continue;case 16:if(128!==t)break;r.unknown3=i.int32();continue;case 17:if(136!==t)break;r.bypassCache=i.bool();continue;case 18:if(144!==t)break;r.unknown4=i.int32();continue}if(4==(7&t)||0===t)break;i.skipType(7&t)}return r},fromJSON:t=>({url:x(t.url)?globalThis.String(t.url):"",deviceId:x(t.deviceId)?globalThis.String(t.deviceId):void 0,firstRequest:!!x(t.firstRequest)&&globalThis.Boolean(t.firstRequest),duration:x(t.duration)?globalThis.Number(t.duration):0,unknown0:x(t.unknown0)?globalThis.Number(t.unknown0):0,language:x(t.language)?globalThis.String(t.language):"",forceSourceLang:!!x(t.forceSourceLang)&&globalThis.Boolean(t.forceSourceLang),unknown1:x(t.unknown1)?globalThis.Number(t.unknown1):0,translationHelp:globalThis.Array.isArray(t?.translationHelp)?t.translationHelp.map((t=>n.fromJSON(t))):[],responseLanguage:x(t.responseLanguage)?globalThis.String(t.responseLanguage):"",unknown2:x(t.unknown2)?globalThis.Number(t.unknown2):0,unknown3:x(t.unknown3)?globalThis.Number(t.unknown3):0,bypassCache:!!x(t.bypassCache)&&globalThis.Boolean(t.bypassCache),unknown4:x(t.unknown4)?globalThis.Number(t.unknown4):0}),toJSON(t){const e={};return""!==t.url&&(e.url=t.url),void 0!==t.deviceId&&(e.deviceId=t.deviceId),!1!==t.firstRequest&&(e.firstRequest=t.firstRequest),0!==t.duration&&(e.duration=t.duration),0!==t.unknown0&&(e.unknown0=Math.round(t.unknown0)),""!==t.language&&(e.language=t.language),!1!==t.forceSourceLang&&(e.forceSourceLang=t.forceSourceLang),0!==t.unknown1&&(e.unknown1=Math.round(t.unknown1)),t.translationHelp?.length&&(e.translationHelp=t.translationHelp.map((t=>n.toJSON(t)))),""!==t.responseLanguage&&(e.responseLanguage=t.responseLanguage),0!==t.unknown2&&(e.unknown2=Math.round(t.unknown2)),0!==t.unknown3&&(e.unknown3=Math.round(t.unknown3)),!1!==t.bypassCache&&(e.bypassCache=t.bypassCache),0!==t.unknown4&&(e.unknown4=Math.round(t.unknown4)),e},create:t=>r.fromPartial(t??{}),fromPartial(t){const e={url:"",deviceId:void 0,firstRequest:!1,duration:0,unknown0:0,language:"",forceSourceLang:!1,unknown1:0,translationHelp:[],responseLanguage:"",unknown2:0,unknown3:0,bypassCache:!1,unknown4:0};return e.url=t.url??"",e.deviceId=t.deviceId??void 0,e.firstRequest=t.firstRequest??!1,e.duration=t.duration??0,e.unknown0=t.unknown0??0,e.language=t.language??"",e.forceSourceLang=t.forceSourceLang??!1,e.unknown1=t.unknown1??0,e.translationHelp=t.translationHelp?.map((t=>n.fromPartial(t)))||[],e.responseLanguage=t.responseLanguage??"",e.unknown2=t.unknown2??0,e.unknown3=t.unknown3??0,e.bypassCache=t.bypassCache??!1,e.unknown4=t.unknown4??0,e}};const s={encode:(t,o=e.Writer.create())=>(void 0!==t.url&&o.uint32(10).string(t.url),void 0!==t.duration&&o.uint32(17).double(t.duration),0!==t.status&&o.uint32(32).int32(t.status),void 0!==t.remainingTime&&o.uint32(40).int32(t.remainingTime),void 0!==t.unknown0&&o.uint32(48).int32(t.unknown0),""!==t.translationId&&o.uint32(58).string(t.translationId),void 0!==t.language&&o.uint32(66).string(t.language),void 0!==t.message&&o.uint32(74).string(t.message),o),decode(t,o){const i=t instanceof e.Reader?t:e.Reader.create(t);let a=void 0===o?i.len:i.pos+o;const n={url:void 0,duration:void 0,status:0,remainingTime:void 0,unknown0:void 0,translationId:"",language:void 0,message:void 0};for(;i.pos>>3){case 1:if(10!==t)break;n.url=i.string();continue;case 2:if(17!==t)break;n.duration=i.double();continue;case 4:if(32!==t)break;n.status=i.int32();continue;case 5:if(40!==t)break;n.remainingTime=i.int32();continue;case 6:if(48!==t)break;n.unknown0=i.int32();continue;case 7:if(58!==t)break;n.translationId=i.string();continue;case 8:if(66!==t)break;n.language=i.string();continue;case 9:if(74!==t)break;n.message=i.string();continue}if(4==(7&t)||0===t)break;i.skipType(7&t)}return n},fromJSON:t=>({url:x(t.url)?globalThis.String(t.url):void 0,duration:x(t.duration)?globalThis.Number(t.duration):void 0,status:x(t.status)?globalThis.Number(t.status):0,remainingTime:x(t.remainingTime)?globalThis.Number(t.remainingTime):void 0,unknown0:x(t.unknown0)?globalThis.Number(t.unknown0):void 0,translationId:x(t.translationId)?globalThis.String(t.translationId):"",language:x(t.language)?globalThis.String(t.language):void 0,message:x(t.message)?globalThis.String(t.message):void 0}),toJSON(t){const e={};return void 0!==t.url&&(e.url=t.url),void 0!==t.duration&&(e.duration=t.duration),0!==t.status&&(e.status=Math.round(t.status)),void 0!==t.remainingTime&&(e.remainingTime=Math.round(t.remainingTime)),void 0!==t.unknown0&&(e.unknown0=Math.round(t.unknown0)),""!==t.translationId&&(e.translationId=t.translationId),void 0!==t.language&&(e.language=t.language),void 0!==t.message&&(e.message=t.message),e},create:t=>s.fromPartial(t??{}),fromPartial(t){const e={url:void 0,duration:void 0,status:0,remainingTime:void 0,unknown0:void 0,translationId:"",language:void 0,message:void 0};return e.url=t.url??void 0,e.duration=t.duration??void 0,e.status=t.status??0,e.remainingTime=t.remainingTime??void 0,e.unknown0=t.unknown0??void 0,e.translationId=t.translationId??"",e.language=t.language??void 0,e.message=t.message??void 0,e}};function l(){return{audioFile:new Uint8Array(0),message:""}}const d={encode:(t,o=e.Writer.create())=>(0!==t.audioFile.length&&o.uint32(18).bytes(t.audioFile),""!==t.message&&o.uint32(10).string(t.message),o),decode(t,o){const i=t instanceof e.Reader?t:e.Reader.create(t);let a=void 0===o?i.len:i.pos+o;const n=l();for(;i.pos>>3){case 2:if(18!==t)break;n.audioFile=i.bytes();continue;case 1:if(10!==t)break;n.message=i.string();continue}if(4==(7&t)||0===t)break;i.skipType(7&t)}return n},fromJSON:t=>({audioFile:x(t.audioFile)?w(t.audioFile):new Uint8Array(0),message:x(t.message)?globalThis.String(t.message):""}),toJSON(t){const e={};return 0!==t.audioFile.length&&(e.audioFile=function(t){if(globalThis.Buffer)return globalThis.Buffer.from(t).toString("base64");{const e=[];return t.forEach((t=>{e.push(globalThis.String.fromCharCode(t))})),globalThis.btoa(e.join(""))}}(t.audioFile)),""!==t.message&&(e.message=t.message),e},create:t=>d.fromPartial(t??{}),fromPartial(t){const e=l();return e.audioFile=t.audioFile??new Uint8Array(0),e.message=t.message??"",e}};const u={encode:(t,o=e.Writer.create())=>(""!==t.translationId&&o.uint32(10).string(t.translationId),""!==t.url&&o.uint32(18).string(t.url),void 0!==t.audioInfo&&d.encode(t.audioInfo,o.uint32(50).fork()).ldelim(),o),decode(t,o){const i=t instanceof e.Reader?t:e.Reader.create(t);let a=void 0===o?i.len:i.pos+o;const n={translationId:"",url:"",audioInfo:void 0};for(;i.pos>>3){case 1:if(10!==t)break;n.translationId=i.string();continue;case 2:if(18!==t)break;n.url=i.string();continue;case 6:if(50!==t)break;n.audioInfo=d.decode(i,i.uint32());continue}if(4==(7&t)||0===t)break;i.skipType(7&t)}return n},fromJSON:t=>({translationId:x(t.translationId)?globalThis.String(t.translationId):"",url:x(t.url)?globalThis.String(t.url):"",audioInfo:x(t.audioInfo)?d.fromJSON(t.audioInfo):void 0}),toJSON(t){const e={};return""!==t.translationId&&(e.translationId=t.translationId),""!==t.url&&(e.url=t.url),void 0!==t.audioInfo&&(e.audioInfo=d.toJSON(t.audioInfo)),e},create:t=>u.fromPartial(t??{}),fromPartial(t){const e={translationId:"",url:"",audioInfo:void 0};return e.translationId=t.translationId??"",e.url=t.url??"",e.audioInfo=void 0!==t.audioInfo&&null!==t.audioInfo?d.fromPartial(t.audioInfo):void 0,e}};const c={encode:(t,o=e.Writer.create())=>(""!==t.language&&o.uint32(10).string(t.language),""!==t.url&&o.uint32(18).string(t.url),0!==t.unknown0&&o.uint32(24).int32(t.unknown0),""!==t.translatedLanguage&&o.uint32(34).string(t.translatedLanguage),""!==t.translatedUrl&&o.uint32(42).string(t.translatedUrl),0!==t.unknown1&&o.uint32(48).int32(t.unknown1),0!==t.unknown2&&o.uint32(56).int32(t.unknown2),o),decode(t,o){const i=t instanceof e.Reader?t:e.Reader.create(t);let a=void 0===o?i.len:i.pos+o;const n={language:"",url:"",unknown0:0,translatedLanguage:"",translatedUrl:"",unknown1:0,unknown2:0};for(;i.pos>>3){case 1:if(10!==t)break;n.language=i.string();continue;case 2:if(18!==t)break;n.url=i.string();continue;case 3:if(24!==t)break;n.unknown0=i.int32();continue;case 4:if(34!==t)break;n.translatedLanguage=i.string();continue;case 5:if(42!==t)break;n.translatedUrl=i.string();continue;case 6:if(48!==t)break;n.unknown1=i.int32();continue;case 7:if(56!==t)break;n.unknown2=i.int32();continue}if(4==(7&t)||0===t)break;i.skipType(7&t)}return n},fromJSON:t=>({language:x(t.language)?globalThis.String(t.language):"",url:x(t.url)?globalThis.String(t.url):"",unknown0:x(t.unknown0)?globalThis.Number(t.unknown0):0,translatedLanguage:x(t.translatedLanguage)?globalThis.String(t.translatedLanguage):"",translatedUrl:x(t.translatedUrl)?globalThis.String(t.translatedUrl):"",unknown1:x(t.unknown1)?globalThis.Number(t.unknown1):0,unknown2:x(t.unknown2)?globalThis.Number(t.unknown2):0}),toJSON(t){const e={};return""!==t.language&&(e.language=t.language),""!==t.url&&(e.url=t.url),0!==t.unknown0&&(e.unknown0=Math.round(t.unknown0)),""!==t.translatedLanguage&&(e.translatedLanguage=t.translatedLanguage),""!==t.translatedUrl&&(e.translatedUrl=t.translatedUrl),0!==t.unknown1&&(e.unknown1=Math.round(t.unknown1)),0!==t.unknown2&&(e.unknown2=Math.round(t.unknown2)),e},create:t=>c.fromPartial(t??{}),fromPartial(t){const e={language:"",url:"",unknown0:0,translatedLanguage:"",translatedUrl:"",unknown1:0,unknown2:0};return e.language=t.language??"",e.url=t.url??"",e.unknown0=t.unknown0??0,e.translatedLanguage=t.translatedLanguage??"",e.translatedUrl=t.translatedUrl??"",e.unknown1=t.unknown1??0,e.unknown2=t.unknown2??0,e}};const h={encode:(t,o=e.Writer.create())=>(""!==t.url&&o.uint32(10).string(t.url),""!==t.language&&o.uint32(18).string(t.language),o),decode(t,o){const i=t instanceof e.Reader?t:e.Reader.create(t);let a=void 0===o?i.len:i.pos+o;const n={url:"",language:""};for(;i.pos>>3){case 1:if(10!==t)break;n.url=i.string();continue;case 2:if(18!==t)break;n.language=i.string();continue}if(4==(7&t)||0===t)break;i.skipType(7&t)}return n},fromJSON:t=>({url:x(t.url)?globalThis.String(t.url):"",language:x(t.language)?globalThis.String(t.language):""}),toJSON(t){const e={};return""!==t.url&&(e.url=t.url),""!==t.language&&(e.language=t.language),e},create:t=>h.fromPartial(t??{}),fromPartial(t){const e={url:"",language:""};return e.url=t.url??"",e.language=t.language??"",e}};const p={encode(t,o=e.Writer.create()){!1!==t.waiting&&o.uint32(8).bool(t.waiting);for(const e of t.subtitles)c.encode(e,o.uint32(18).fork()).ldelim();return o},decode(t,o){const i=t instanceof e.Reader?t:e.Reader.create(t);let a=void 0===o?i.len:i.pos+o;const n={waiting:!1,subtitles:[]};for(;i.pos>>3){case 1:if(8!==t)break;n.waiting=i.bool();continue;case 2:if(18!==t)break;n.subtitles.push(c.decode(i,i.uint32()));continue}if(4==(7&t)||0===t)break;i.skipType(7&t)}return n},fromJSON:t=>({waiting:!!x(t.waiting)&&globalThis.Boolean(t.waiting),subtitles:globalThis.Array.isArray(t?.subtitles)?t.subtitles.map((t=>c.fromJSON(t))):[]}),toJSON(t){const e={};return!1!==t.waiting&&(e.waiting=t.waiting),t.subtitles?.length&&(e.subtitles=t.subtitles.map((t=>c.toJSON(t)))),e},create:t=>p.fromPartial(t??{}),fromPartial(t){const e={waiting:!1,subtitles:[]};return e.waiting=t.waiting??!1,e.subtitles=t.subtitles?.map((t=>c.fromPartial(t)))||[],e}};const g={encode:(t,o=e.Writer.create())=>(""!==t.url&&o.uint32(10).string(t.url),""!==t.timestamp&&o.uint32(18).string(t.timestamp),o),decode(t,o){const i=t instanceof e.Reader?t:e.Reader.create(t);let a=void 0===o?i.len:i.pos+o;const n={url:"",timestamp:""};for(;i.pos>>3){case 1:if(10!==t)break;n.url=i.string();continue;case 2:if(18!==t)break;n.timestamp=i.string();continue}if(4==(7&t)||0===t)break;i.skipType(7&t)}return n},fromJSON:t=>({url:x(t.url)?globalThis.String(t.url):"",timestamp:x(t.timestamp)?globalThis.String(t.timestamp):""}),toJSON(t){const e={};return""!==t.url&&(e.url=t.url),""!==t.timestamp&&(e.timestamp=t.timestamp),e},create:t=>g.fromPartial(t??{}),fromPartial(t){const e={url:"",timestamp:""};return e.url=t.url??"",e.timestamp=t.timestamp??"",e}};const m={encode:(t,o=e.Writer.create())=>(""!==t.url&&o.uint32(10).string(t.url),""!==t.language&&o.uint32(18).string(t.language),""!==t.responseLanguage&&o.uint32(26).string(t.responseLanguage),o),decode(t,o){const i=t instanceof e.Reader?t:e.Reader.create(t);let a=void 0===o?i.len:i.pos+o;const n={url:"",language:"",responseLanguage:""};for(;i.pos>>3){case 1:if(10!==t)break;n.url=i.string();continue;case 2:if(18!==t)break;n.language=i.string();continue;case 3:if(26!==t)break;n.responseLanguage=i.string();continue}if(4==(7&t)||0===t)break;i.skipType(7&t)}return n},fromJSON:t=>({url:x(t.url)?globalThis.String(t.url):"",language:x(t.language)?globalThis.String(t.language):"",responseLanguage:x(t.responseLanguage)?globalThis.String(t.responseLanguage):""}),toJSON(t){const e={};return""!==t.url&&(e.url=t.url),""!==t.language&&(e.language=t.language),""!==t.responseLanguage&&(e.responseLanguage=t.responseLanguage),e},create:t=>m.fromPartial(t??{}),fromPartial(t){const e={url:"",language:"",responseLanguage:""};return e.url=t.url??"",e.language=t.language??"",e.responseLanguage=t.responseLanguage??"",e}};const v={encode:(t,o=e.Writer.create())=>(0!==t.interval&&o.uint32(8).int32(t.interval),void 0!==t.translatedInfo&&g.encode(t.translatedInfo,o.uint32(18).fork()).ldelim(),void 0!==t.pingId&&o.uint32(24).int32(t.pingId),o),decode(t,o){const i=t instanceof e.Reader?t:e.Reader.create(t);let a=void 0===o?i.len:i.pos+o;const n={interval:0,translatedInfo:void 0,pingId:void 0};for(;i.pos>>3){case 1:if(8!==t)break;n.interval=i.int32();continue;case 2:if(18!==t)break;n.translatedInfo=g.decode(i,i.uint32());continue;case 3:if(24!==t)break;n.pingId=i.int32();continue}if(4==(7&t)||0===t)break;i.skipType(7&t)}return n},fromJSON:t=>({interval:x(t.interval)?a(t.interval):0,translatedInfo:x(t.translatedInfo)?g.fromJSON(t.translatedInfo):void 0,pingId:x(t.pingId)?globalThis.Number(t.pingId):void 0}),toJSON(t){const e={};return 0!==t.interval&&(e.interval=function(t){switch(t){case i.NO_CONNECTION:return"NO_CONNECTION";case i.TRANSLATING:return"TRANSLATING";case i.STREAMING:return"STREAMING";case i.UNRECOGNIZED:default:return"UNRECOGNIZED"}}(t.interval)),void 0!==t.translatedInfo&&(e.translatedInfo=g.toJSON(t.translatedInfo)),void 0!==t.pingId&&(e.pingId=Math.round(t.pingId)),e},create:t=>v.fromPartial(t??{}),fromPartial(t){const e={interval:0,translatedInfo:void 0,pingId:void 0};return e.interval=t.interval??0,e.translatedInfo=void 0!==t.translatedInfo&&null!==t.translatedInfo?g.fromPartial(t.translatedInfo):void 0,e.pingId=t.pingId??void 0,e}};const f={encode:(t,o=e.Writer.create())=>(0!==t.pingId&&o.uint32(8).int32(t.pingId),o),decode(t,o){const i=t instanceof e.Reader?t:e.Reader.create(t);let a=void 0===o?i.len:i.pos+o;const n={pingId:0};for(;i.pos>>3){case 1:if(8!==t)break;n.pingId=i.int32();continue}if(4==(7&t)||0===t)break;i.skipType(7&t)}return n},fromJSON:t=>({pingId:x(t.pingId)?globalThis.Number(t.pingId):0}),toJSON(t){const e={};return 0!==t.pingId&&(e.pingId=Math.round(t.pingId)),e},create:t=>f.fromPartial(t??{}),fromPartial(t){const e={pingId:0};return e.pingId=t.pingId??0,e}};const b={encode:(t,o=e.Writer.create())=>(""!==t.uuid&&o.uint32(10).string(t.uuid),""!==t.module&&o.uint32(18).string(t.module),o),decode(t,o){const i=t instanceof e.Reader?t:e.Reader.create(t);let a=void 0===o?i.len:i.pos+o;const n={uuid:"",module:""};for(;i.pos>>3){case 1:if(10!==t)break;n.uuid=i.string();continue;case 2:if(18!==t)break;n.module=i.string();continue}if(4==(7&t)||0===t)break;i.skipType(7&t)}return n},fromJSON:t=>({uuid:x(t.uuid)?globalThis.String(t.uuid):"",module:x(t.module)?globalThis.String(t.module):""}),toJSON(t){const e={};return""!==t.uuid&&(e.uuid=t.uuid),""!==t.module&&(e.module=t.module),e},create:t=>b.fromPartial(t??{}),fromPartial(t){const e={uuid:"",module:""};return e.uuid=t.uuid??"",e.module=t.module??"",e}};const y={encode:(t,o=e.Writer.create())=>(""!==t.secretKey&&o.uint32(10).string(t.secretKey),0!==t.expires&&o.uint32(16).int32(t.expires),o),decode(t,o){const i=t instanceof e.Reader?t:e.Reader.create(t);let a=void 0===o?i.len:i.pos+o;const n={secretKey:"",expires:0};for(;i.pos>>3){case 1:if(10!==t)break;n.secretKey=i.string();continue;case 2:if(16!==t)break;n.expires=i.int32();continue}if(4==(7&t)||0===t)break;i.skipType(7&t)}return n},fromJSON:t=>({secretKey:x(t.secretKey)?globalThis.String(t.secretKey):"",expires:x(t.expires)?globalThis.Number(t.expires):0}),toJSON(t){const e={};return""!==t.secretKey&&(e.secretKey=t.secretKey),0!==t.expires&&(e.expires=Math.round(t.expires)),e},create:t=>y.fromPartial(t??{}),fromPartial(t){const e={secretKey:"",expires:0};return e.secretKey=t.secretKey??"",e.expires=t.expires??0,e}};function w(t){if(globalThis.Buffer)return Uint8Array.from(globalThis.Buffer.from(t,"base64"));{const e=globalThis.atob(t),o=new Uint8Array(e.length);for(let t=0;tr.encode({url:t,firstRequest:!0,duration:e,unknown0:1,language:o,forceSourceLang:!1,unknown1:0,translationHelp:a||[],responseLanguage:i,unknown2:0,unknown3:1,bypassCache:!1,unknown4:1}).finish(),decodeTranslationResponse:t=>s.decode(new Uint8Array(t)),encodeTranslationAudioRequest:(t,e)=>u.encode({url:t,translationId:e,audioInfo:{audioFile:new Uint8Array(0),message:T.WEB_API_GET_ALL_GENERATING_URLS_DATA_FROM_IFRAME}}).finish(),decodeTranslationAudioResponse:t=>s.decode(new Uint8Array(t)),encodeSubtitlesRequest:(t,e)=>h.encode({url:t,language:e}).finish(),decodeSubtitlesResponse:t=>p.decode(new Uint8Array(t)),encodeStreamPingRequest:t=>f.encode({pingId:t}).finish(),encodeStreamRequest:(t,e,o)=>m.encode({url:t,language:e,responseLanguage:o}).finish(),decodeStreamResponse:t=>v.decode(new Uint8Array(t)),encodeYandexSessionRequest:(t,e)=>b.encode({uuid:t,module:e}).finish(),decodeYandexSessionResponse:t=>y.decode(new Uint8Array(t))},P={host:"api.browser.yandex.ru",hostVOT:"vot-api.toil.cc/v1",mediaProxy:"media-proxy.toil.cc",userAgent:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 YaBrowser/24.10.0.0 Safari/537.36",componentVersion:"24.10.1.598",hmac:"bt8xH3VOlb4mqf0nqAibnDOoiPlXsisf",defaultDuration:343,loggerLevel:1,version:"1.3.8"};var L;!function(t){t[t.DEBUG=0]="DEBUG",t[t.INFO=1]="INFO",t[t.WARN=2]="WARN",t[t.ERROR=3]="ERROR",t[t.SILENCE=4]="SILENCE"}(L||(L={}));class A{static prefix=`[vot.js v${P.version}]`;static canLog(t){return P.loggerLevel<=t}static log(...t){A.canLog(L.DEBUG)&&console.log(A.prefix,...t)}static info(...t){A.canLog(L.INFO)&&console.info(A.prefix,...t)}static warn(...t){A.canLog(L.WARN)&&console.warn(A.prefix,...t)}static error(...t){A.canLog(L.ERROR)&&console.error(A.prefix,...t)}}const I=new TextEncoder;async function _(t,e,o){const i=await crypto.subtle.importKey("raw",I.encode(e),{name:"HMAC",hash:{name:t}},!1,["sign","verify"]);return await crypto.subtle.sign("HMAC",i,o)}async function V(t){const e=await _("SHA-256",P.hmac,t);return new Uint8Array(e).reduce(((t,e)=>t+e.toString(16).padStart(2,"0")),"")}const O={afr:"af",aka:"ak",alb:"sq",amh:"am",ara:"ar",arm:"hy",asm:"as",aym:"ay",aze:"az",baq:"eu",bel:"be",ben:"bn",bos:"bs",bul:"bg",bur:"my",cat:"ca",chi:"zh",cos:"co",cze:"cs",dan:"da",div:"dv",dut:"nl",eng:"en",epo:"eo",est:"et",ewe:"ee",fin:"fi",fre:"fr",fry:"fy",geo:"ka",ger:"de",gla:"gd",gle:"ga",glg:"gl",gre:"el",grn:"gn",guj:"gu",hat:"ht",hau:"ha",hin:"hi",hrv:"hr",hun:"hu",ibo:"ig",ice:"is",ind:"id",ita:"it",jav:"jv",jpn:"ja",kan:"kn",kaz:"kk",khm:"km",kin:"rw",kir:"ky",kor:"ko",kur:"ku",lao:"lo",lat:"la",lav:"lv",lin:"ln",lit:"lt",ltz:"lb",lug:"lg",mac:"mk",mal:"ml",mao:"mi",mar:"mr",may:"ms",mlg:"mg",mlt:"mt",mon:"mn",nep:"ne",nor:"no",nya:"ny",ori:"or",orm:"om",pan:"pa",per:"fa",pol:"pl",por:"pt",pus:"ps",que:"qu",rum:"ro",rus:"ru",san:"sa",sin:"si",slo:"sk",slv:"sl",smo:"sm",sna:"sn",snd:"sd",som:"so",sot:"st",spa:"es",srp:"sr",sun:"su",swa:"sw",swe:"sv",tam:"ta",tat:"tt",tel:"te",tgk:"tg",tha:"th",tir:"ti",tso:"ts",tuk:"tk",tur:"tr",uig:"ug",ukr:"uk",urd:"ur",uzb:"uz",vie:"vi",wel:"cy",xho:"xh",yid:"yi",yor:"yo",zul:"zu"};async function M(t,e={headers:{"User-Agent":P.userAgent}}){const{timeout:o=3e3,...i}=e,a=new AbortController,n=setTimeout((()=>a.abort()),o),r=await fetch(t,{signal:a.signal,...i});return clearTimeout(n),r}function E(t){return 3===t.length?O[t]:t.toLowerCase().split(/[_;-]/)[0].trim()}function B(t,e="mp4"){return`https://${P.mediaProxy}/v1/proxy/video.${e}?url=${encodeURIComponent(t.href)}&origin=${t.origin}&referer=${t.origin}`}const N=[{additionalData:"mobile",host:S.youtube,url:"https://youtu.be/",match:/^m.youtube.com$/,selector:"shorts-video #player"},{additionalData:"mobile",host:S.youtube,url:"https://youtu.be/",match:/^m.youtube.com$/,selector:".player-container"},{host:S.youtube,url:"https://youtu.be/",match:/^(www.)?youtube(-nocookie|kids)?.com$/,selector:".html5-video-container:not(#inline-player *)"},{host:S.invidious,url:"https://youtu.be/",match:["yewtu.be","yt.artemislena.eu","invidious.flokinet.to","iv.melmac.space","inv.nadeko.net","inv.tux.pizza","invidious.private.coffee","yt.drgnz.club","vid.puffyan.us","invidious.dhusch.de"],selector:"#player",needBypassCSP:!0},{host:S.piped,url:"https://youtu.be/",match:["piped.video","piped.tokhmi.xyz","piped.moomoo.me","piped.syncpundit.io","piped.mha.fi","watch.whatever.social","piped.garudalinux.org","efy.piped.pages.dev","watch.leptons.xyz","piped.lunar.icu","yt.dc09.ru","piped.mint.lgbt","il.ax","piped.privacy.com.de","piped.esmailelbob.xyz","piped.projectsegfau.lt","piped.in.projectsegfau.lt","piped.us.projectsegfau.lt","piped.privacydev.net","piped.palveluntarjoaja.eu","piped.smnz.de","piped.adminforge.de","piped.qdi.fi","piped.hostux.net","piped.chauvet.pro","piped.jotoma.de","piped.pfcd.me","piped.frontendfriendly.xyz"],selector:".shaka-video-container",needBypassCSP:!0},{host:S.poketube,url:"https://youtu.be/",match:["poketube.fun","pt.sudovanilla.org","poke.ggtyler.dev","poke.uk2.littlekai.co.uk","poke.blahai.gay"],selector:".video-player-container"},{host:S.ricktube,url:"https://youtu.be/",match:["ricktube.ru"],selector:"#oframeplayer > pjsdiv:has(video)"},{additionalData:"mobile",host:S.vk,url:"https://vk.com/video?z=",match:/^m.vk.(com|ru)$/,selector:"vk-video-player",shadowRoot:!0},{additionalData:"clips",host:S.vk,url:"https://vk.com/video?z=",match:/^(www.|m.)?vk.(com|ru)$/,selector:'div[data-testid="clipcontainer-video"]'},{host:S.vk,url:"https://vk.com/video?z=",match:/^(www.|m.)?vk.(com|ru)$/,selector:".videoplayer_media"},{host:S.nine_gag,url:"https://9gag.com/gag/",match:/^9gag.com$/,selector:".video-post"},{host:S.twitch,url:"https://twitch.tv/",match:[/^m.twitch.tv$/,/^(www.)?twitch.tv$/,/^clips.twitch.tv$/,/^player.twitch.tv$/],selector:".video-ref, main > div > section > div > div > div"},{host:S.proxitok,url:"https://www.tiktok.com/",match:["proxitok.pabloferreiro.es","proxitok.pussthecat.org","tok.habedieeh.re","proxitok.esmailelbob.xyz","proxitok.privacydev.net","tok.artemislena.eu","tok.adminforge.de","tt.vern.cc","cringe.whatever.social","proxitok.lunar.icu","proxitok.privacy.com.de"],selector:".column.has-text-centered"},{host:S.tiktok,url:"https://www.tiktok.com/",match:/^(www.)?tiktok.com$/,selector:null},{host:S.vimeo,url:"https://vimeo.com/",match:/^vimeo.com$/,needExtraData:!0,selector:".player"},{host:S.vimeo,url:"https://player.vimeo.com/",match:/^player.vimeo.com$/,additionalData:"embed",needExtraData:!0,needBypassCSP:!0,selector:".player"},{host:S.xvideos,url:"https://www.xvideos.com/",match:/^(www.)?(xvideos|xv-ru).com$/,selector:".video-bg-pic",needBypassCSP:!0},{host:S.pornhub,url:"https://rt.pornhub.com/view_video.php?viewkey=",match:/^[a-z]+.pornhub.com$/,selector:".mainPlayerDiv > .video-element-wrapper-js > div",eventSelector:".mgp_eventCatcher"},{additionalData:"embed",host:S.pornhub,url:"https://rt.pornhub.com/view_video.php?viewkey=",match:t=>t.host.includes("pornhub.com")&&t.pathname.startsWith("/embed/"),selector:"#player"},{host:S.twitter,url:"https://twitter.com/i/status/",match:/^(twitter|x).com$/,selector:'div[data-testid="videoComponent"] > div:nth-child(1) > div',eventSelector:'div[data-testid="videoPlayer"]',needBypassCSP:!0},{host:S.rumble,url:"https://rumble.com/",match:/^rumble.com$/,selector:"#videoPlayer > .videoPlayer-Rumble-cls > div"},{host:S.facebook,url:"https://facebook.com/",match:t=>t.host.includes("facebook.com")&&t.pathname.includes("/videos/"),selector:'div[role="main"] div[data-pagelet$="video" i]',needBypassCSP:!0},{additionalData:"reels",host:S.facebook,url:"https://facebook.com/",match:t=>t.host.includes("facebook.com")&&t.pathname.includes("/reel/"),selector:'div[role="main"]',needBypassCSP:!0},{host:S.rutube,url:"https://rutube.ru/video/",match:/^rutube.ru$/,selector:".video-player > div > div > div:nth-child(2)"},{additionalData:"embed",host:S.rutube,url:"https://rutube.ru/video/",match:/^rutube.ru$/,selector:"#app > div > div"},{host:S.bilibili,url:"https://www.bilibili.com/",match:/^(www|m|player).bilibili.com$/,selector:".bpx-player-video-wrap"},{additionalData:"old",host:S.bilibili,url:"https://www.bilibili.com/",match:/^(www|m).bilibili.com$/,selector:null},{host:S.mailru,url:"https://my.mail.ru/",match:/^my.mail.ru$/,selector:"#b-video-wrapper"},{host:S.bitchute,url:"https://www.bitchute.com/video/",match:/^(www.)?bitchute.com$/,selector:".video-js"},{host:S.eporner,url:"https://www.eporner.com/",match:/^(www.)?eporner.com$/,selector:".vjs-v7"},{host:S.peertube,url:"stub",match:["peertube.1312.media","tube.shanti.cafe","bee-tube.fr","video.sadmin.io","dalek.zone","review.peertube.biz","peervideo.club","tube.la-dina.net","peertube.tmp.rcp.tf","peertube.su","video.blender.org","videos.viorsan.com","tube-sciences-technologies.apps.education.fr","tube-numerique-educatif.apps.education.fr","tube-arts-lettres-sciences-humaines.apps.education.fr","beetoons.tv","comics.peertube.biz","makertube.net"],selector:".vjs-v7"},{host:S.dailymotion,url:"https://dai.ly/",match:/^geo([\d]+)?.dailymotion.com$/,selector:".player"},{host:S.trovo,url:"https://trovo.live/s/",match:/^trovo.live$/,selector:".player-video"},{host:S.yandexdisk,url:"https://yadi.sk/",match:/^disk.yandex.ru$/,selector:".video-player__player > div:nth-child(1)",eventSelector:".video-player__player",needBypassCSP:!0,needExtraData:!0},{host:S.okru,url:"https://ok.ru/video/",match:/^ok.ru$/,selector:".html5-vpl_vid"},{host:S.googledrive,url:"https://drive.google.com/file/d/",match:/^youtube.googleapis.com$/,selector:".html5-video-container"},{host:S.bannedvideo,url:"https://madmaxworld.tv/watch?id=",match:/^(www.)?banned.video|madmaxworld.tv$/,selector:".vjs-v7",needExtraData:!0},{host:S.weverse,url:"https://weverse.io/",match:/^weverse.io$/,selector:".webplayer-internal-source-wrapper",needExtraData:!0},{host:S.newgrounds,url:"https://www.newgrounds.com/",match:/^(www.)?newgrounds.com$/,selector:".ng-video-player"},{host:S.egghead,url:"https://egghead.io/",match:/^egghead.io$/,selector:".cueplayer-react-video-holder"},{host:S.youku,url:"https://v.youku.com/",match:/^v.youku.com$/,selector:"#ykPlayer"},{host:S.archive,url:"https://archive.org/details/",match:/^archive.org$/,selector:".jw-media"},{host:S.kodik,url:"stub",match:/^kodik.(info|biz|cc)$/,selector:".fp-player",needExtraData:!0},{host:S.patreon,url:"stub",match:/^(www.)?patreon.com$/,selector:'div[data-tag="post-card"] div[elevation="subtle"] > div > div > div > div',needExtraData:!0},{host:S.reddit,url:"stub",match:/^(www.|new.|old.)?reddit.com$/,selector:".reddit-video-player-root",needExtraData:!0,needBypassCSP:!0},{host:S.kick,url:"https://kick.com/",match:/^kick.com$/,selector:"#injected-embedded-channel-player-video > div",needExtraData:!0},{host:S.appledeveloper,url:"https://developer.apple.com/",match:/^developer.apple.com$/,selector:".developer-video-player",needExtraData:!0,needBypassCSP:!0},{host:S.epicgames,url:"https://dev.epicgames.com/community/learning/",match:/^dev.epicgames.com$/,selector:".vjs-v7",needExtraData:!0},{host:S.nineanimetv,url:"https://9animetv.to/watch/",match:/^rapid-cloud.co$/,selector:".jw-media",needExtraData:!0},{host:S.odysee,url:"stub",match:/^odysee.com$/,selector:".vjs-v7",needExtraData:!0},{host:S.coursehunterLike,url:"stub",match:["coursehunter.net","coursetrain.net"],selector:"#oframeplayer > pjsdiv:has(video)",needExtraData:!0},{host:S.sap,url:"https://learning.sap.com/courses/",match:/^learning.sap.com$/,selector:".playkit-container",eventSelector:".playkit-player",needExtraData:!0,needBypassCSP:!0},{host:S.udemy,url:"https://www.udemy.com/",match:/udemy.com$/,selector:'div[data-purpose="curriculum-item-viewer-content"] > section > div > div > div > div:nth-of-type(2)',needExtraData:!0},{host:S.coursera,url:"https://www.coursera.org/",match:/coursera.org$/,selector:".vjs-v8",needExtraData:!0},{host:S.watchpornto,url:"https://watchporn.to/",match:/^watchporn.to$/,selector:".fp-player"},{host:S.linkedin,url:"https://www.linkedin.com/learning/",match:/^(www.)?linkedin.com$/,selector:".vjs-v7",needExtraData:!0,needBypassCSP:!0},{host:S.incestflix,url:"https://www.incestflix.net/watch/",match:/^(www.)?incestflix.(net|to|com)$/,selector:"#incflix-stream",needExtraData:!0},{host:S.porntn,url:"https://porntn.com/videos/",match:/^porntn.com$/,selector:null,needExtraData:!0},{host:S.custom,url:"stub",match:t=>/([^.]+).(mp4|webm)/.test(t.pathname),rawResult:!0}],R=JSON.parse('{"__version__":5,"recommended":"recommended","translateVideo":"Translate video","disableTranslate":"Turn off","translationSettings":"Translation settings","subtitlesSettings":"Subtitles settings","about":"About extension","resetSettings":"Reset settings","videoBeingTranslated":"The video is being translated","videoLanguage":"Video language","translationLanguage":"Translation language","translationTake":"The translation will take","translationTakeMoreThanHour":"The translation will take more than an hour","translationTakeAboutMinute":"The translation will take about a minute","translationTakeFewMinutes":"The translation will take a few minutes","translationTakeApproximatelyMinutes":"The translation will take approximately {0} minutes","translationTakeApproximatelyMinute":"The translation will take approximately {0} minutes","unSupportedExtensionError":"Error! {0} is not supported by this version of the extension!\\n\\nPlease use the cloudflare version of the VOT extension.","requestTranslationFailed":"Failed to request video translation","audioNotReceived":"Audio link not received","grantPermissionToAutoPlay":"Grant permission to autoplay","audioFormatNotSupported":"The audio format is not supported","VOTAutoTranslate":"Translate on open","VOTDontTranslateYourLang":"Do not translate from my language","VOTVolume":"Video volume","VOTVolumeTranslation":"Translation Volume","VOTAutoSetVolume":"Reduce video volume to ","VOTShowVideoSlider":"Video volume slider","VOTSyncVolume":"Link translation and video volume","VOTAudioProxy":"Proxy received audio","VOTDisableFromYourLang":"You have disabled the translation of the video in your language","VOTLiveNotSupported":"Translation of live streams is not supported","VOTPremiere":"Wait for the premiere to end before translating","VOTVideoIsTooLong":"Video is too long","VOTNoVideoIDFound":"No video ID found","VOTSubtitles":"Subtitles","VOTSubtitlesDisabled":"Disabled","VOTSubtitlesMaxLength":"Subtitles max length","VOTHighlightWords":"Highlight words","VOTTranslatedFrom":"translated from","VOTAutogenerated":"autogenerated","VOTSettings":"VOT Settings","VOTMenuLanguage":"Menu language","VOTAuthors":"Authors","VOTVersion":"Version","VOTLoader":"Loader","VOTBrowser":"Browser","VOTShowPiPButton":"Show PiP button","langs":{"auto":"Auto","af":"Afrikaans","ak":"Akan","sq":"Albanian","am":"Amharic","ar":"Arabic","hy":"Armenian","as":"Assamese","ay":"Aymara","az":"Azerbaijani","bn":"Bangla","eu":"Basque","be":"Belarusian","bho":"Bhojpuri","bs":"Bosnian","bg":"Bulgarian","my":"Burmese","ca":"Catalan","ceb":"Cebuano","zh":"Chinese","zh-Hans":"Chinese (Simplified)","zh-Hant":"Chinese (Traditional)","co":"Corsican","hr":"Croatian","cs":"Czech","da":"Danish","dv":"Divehi","nl":"Dutch","en":"English","eo":"Esperanto","et":"Estonian","ee":"Ewe","fil":"Filipino","fi":"Finnish","fr":"French","gl":"Galician","lg":"Ganda","ka":"Georgian","de":"German","el":"Greek","gn":"Guarani","gu":"Gujarati","ht":"Haitian Creole","ha":"Hausa","haw":"Hawaiian","iw":"Hebrew","hi":"Hindi","hmn":"Hmong","hu":"Hungarian","is":"Icelandic","ig":"Igbo","id":"Indonesian","ga":"Irish","it":"Italian","ja":"Japanese","jv":"Javanese","kn":"Kannada","kk":"Kazakh","km":"Khmer","rw":"Kinyarwanda","ko":"Korean","kri":"Krio","ku":"Kurdish","ky":"Kyrgyz","lo":"Lao","la":"Latin","lv":"Latvian","ln":"Lingala","lt":"Lithuanian","lb":"Luxembourgish","mk":"Macedonian","mg":"Malagasy","ms":"Malay","ml":"Malayalam","mt":"Maltese","mi":"Māori","mr":"Marathi","mn":"Mongolian","ne":"Nepali","nso":"Northern Sotho","no":"Norwegian","ny":"Nyanja","or":"Odia","om":"Oromo","ps":"Pashto","fa":"Persian","pl":"Polish","pt":"Portuguese","pa":"Punjabi","qu":"Quechua","ro":"Romanian","ru":"Russian","sm":"Samoan","sa":"Sanskrit","gd":"Scottish Gaelic","sr":"Serbian","sn":"Shona","sd":"Sindhi","si":"Sinhala","sk":"Slovak","sl":"Slovenian","so":"Somali","st":"Southern Sotho","es":"Spanish","su":"Sundanese","sw":"Swahili","sv":"Swedish","tg":"Tajik","ta":"Tamil","tt":"Tatar","te":"Telugu","th":"Thai","ti":"Tigrinya","ts":"Tsonga","tr":"Turkish","tk":"Turkmen","uk":"Ukrainian","ur":"Urdu","ug":"Uyghur","uz":"Uzbek","vi":"Vietnamese","cy":"Welsh","fy":"Western Frisian","xh":"Xhosa","yi":"Yiddish","yo":"Yoruba","zu":"Zulu"},"udemyModuleArgsNotFound":"Could not get udemy module data due to the fact that ModuleArgs was not found","VOTTranslationHelpNull":"Could not get the data required for the translate","streamNoConnectionToServer":"There is no connection to the server","searchField":"Search...","VOTTranslateAPIErrors":"Translate errors from the API","VOTTranslationService":"Translation Service","VOTDetectService":"Detect Service","VOTTranslatingError":"Translating the error","VOTProxyWorkerHost":"Enter the proxy worker address","VOTM3u8ProxyHost":"Enter the address of the m3u8 proxy worker","proxySettings":"Proxy Settings","translationTakeApproximatelyMinute2":"The translation will take approximately {0} minutes","VOTAudioBooster":"Extended translation volume increase","VOTSubtitlesDesign":"Subtitles design","VOTSubtitlesFontSize":"Font size of subtitles","VOTSubtitlesOpacity":"Transparency of the subtitle background","VOTPressNewHotkey":"Press the new hotkey...","VOTCreateTranslationHotkey":"Create Hotkey for Translation","VOTChangeHotkeyWithCurrent":"Change Hotkey (Current: {0})","VOTSubtitlesDownloadFormat":"The format for downloading subtitles","VOTDownloadWithName":"Download files with the video name","VOTUpdateLocaleFiles":"Update localization files","VOTLocaleHash":"Locale hash","VOTUpdatedAt":"Updated at","VOTNeedWebAudioAPI":"To enable this, you must have a Web Audio API","VOTMediaCSPEnabledOnSite":"Media CSP is enabled on this site","VOTOnlyBypassMediaCSP":"Use it only for bypassing Media CSP","VOTNewAudioPlayer":"Use the new audio player"}'),$={log:(...t)=>{}},D="media-proxy.toil.cc/v1/proxy/m3u8",F="vot-worker.toil.cc",q="https://vot.toil.cc/v1",U=.15,H="yandex",z="yandex",W={yandex:"https://translate.toil.cc/detect",rustServer:"https://rust-server-531j.onrender.com/detect"},j={yandex:"https://translate.toil.cc/translate",deepl:"https://translate-deepl.toil.cc/translate"},G=["Violentmonkey","FireMonkey","Greasemonkey","AdGuard","OrangeMonkey"],Y=new class{constructor(){this.gmSupport="function"==typeof GM_getValue,$.log(`GM Storage Status: ${this.gmSupport}`)}syncGet(t,e=void 0){if(this.gmSupport)return GM_getValue(t,e);const o="number"==typeof e;const i=window.localStorage.getItem(t)??e;return o?Number(i):i}async get(t,e=void 0){if(this.gmSupport)return await GM_getValue(t,e);const o="number"==typeof e;return Promise.resolve(this.syncGet(t,e,o))}syncSet(t,e){return this.gmSupport?GM_setValue(t,e):window.localStorage.setItem(t,e)}async set(t,e){return this.gmSupport?await GM_setValue(t,e):Promise.resolve(this.syncSet(t,e))}syncDelete(t){return this.gmSupport?GM_deleteValue(t):window.localStorage.removeItem(t)}async delete(t){return this.gmSupport?await GM_deleteValue(t):Promise.resolve(this.syncDelete(t))}syncList(){return this.gmSupport?GM_listValues():["autoTranslate","dontTranslateLanguage","dontTranslateYourLang","autoSetVolumeYandexStyle","autoVolume","buttonPos","showVideoSlider","syncVolume","subtitlesMaxLength","highlightWords","responseLanguage","defaultVolume","audioProxy","showPiPButton","translateAPIErrors","translationService","detectService","m3u8ProxyHost","translateProxyEnabled","hotkeyButton","proxyWorkerHost","audioBooster","locale-version","locale-lang","locale-phrases"]}async list(){return this.gmSupport?await GM_listValues():Promise.resolve(this.syncList())}},J="https://raw.githubusercontent.com/ilyhalight/voice-over-translation/master/src/localization",K=["auto","en","ru","af","am","ar","az","bg","bn","bs","ca","cs","cy","da","de","el","es","et","eu","fa","fi","fr","gl","hi","hr","hu","hy","id","it","ja","jv","kk","km","kn","ko","lo","mk","ml","mn","ms","mt","my","ne","nl","pa","pl","pt","ro","si","sk","sl","sq","sr","su","sv","sw","tr","uk","ur","uz","vi","zh","zu"],Z=new class{lang="en";locale={};gmValues=["locale-phrases","locale-lang","locale-hash","locale-updated-at","locale-lang-override"];constructor(){const t=Y.syncGet("locale-lang-override","auto");this.lang=t&&"auto"!==t?t:(navigator.language||navigator.userLanguage)?.substr(0,2)?.toLowerCase()??"en",this.setLocaleFromJsonString(Y.syncGet("locale-phrases",""))}reset(){for(let t=0;ti&&o===this.lang)return;const a=await this.checkUpdates();if(await Y.set("locale-updated-at",i),a){$.log("Updating locale...");try{const t=await nt(`${J}/locales/${this.lang}.json`);if(200!==t.status)throw t.status;const e=await t.text();await Y.set("locale-phrases",e),this.setLocaleFromJsonString(e),await Y.set("locale-hash",a),await Y.set("locale-lang",this.lang)}catch(t){console.error("[VOT] [localizationProvider] Failed to get locale, cause:",t),this.setLocaleFromJsonString(await Y.get("locale-phrases",""))}}}setLocaleFromJsonString(t){try{this.locale=JSON.parse(t)??{}}catch(t){console.error("[VOT] [localizationProvider]",t),this.locale={}}}getFromLocale(t,e){const o=e.split(".").reduce(((t,e)=>{if("object"==typeof t&&t)return t[e]}),t);return void 0===o&&console.warn("[VOT] [localizationProvider] locale",t,"doesn't contain key",e),o}getDefault(t){return this.getFromLocale(R,t)??t}get(t){return this.getFromLocale(this.locale,t)??this.getFromLocale(R,t)??t}},X=navigator.language||navigator.userLanguage,Q=X?.substr(0,2)?.toLowerCase()??"en";function tt(){return"pictureInPictureEnabled"in document&&document.pictureInPictureEnabled}function et(){return"undefined"!=typeof Hls&&Hls?.isSupported()?new Hls({debug:!1,lowLatencyMode:!0,backBufferLength:90}):void 0}const ot=new RegExp([/(?:https?|ftp):\/\/\S+/g,/https?:\/\/\S+|www\.\S+/gm,/\b\S+\.\S+/gm,/#[^\s#]+/g,/Auto-generated by YouTube/g,/Provided to YouTube by/g,/Released on/g,/0x[a-fA-F0-9]{40}/g,/[13][a-km-zA-HJ-NP-Z1-9]{25,34}/g,/4[0-9AB][1-9A-HJ-NP-Za-km-z]{93}/g,/Paypal/g].map((t=>t.source)).join("|"));function it(t,e){const o=URL.createObjectURL(t),i=document.createElement("a");i.href=o,i.download=e,i.click(),URL.revokeObjectURL(o)}function at(t){return 0===t.trim().length?(new Date).toLocaleDateString("en-us").replaceAll("/","-"):t.replace(/[\\/:*?"'<>|]/g,"")}async function nt(t,e={}){const{timeout:o=15e3,...i}=e,a=new AbortController,n=setTimeout((()=>a.abort()),o);try{if(t.includes("api.browser.yandex.ru"))throw new Error("Preventing yandex cors");const e=await fetch(t,{signal:a.signal,...i});return clearTimeout(n),e}catch(e){return $.log("GM_fetch preventing cors by GM_xmlhttpRequest",e.message),new Promise(((e,a)=>{clearTimeout(n),GM_xmlhttpRequest({method:i.method||"GET",url:t,responseType:"blob",...i,data:i.body,timeout:o,onload:t=>{const o=Object.fromEntries(t.responseHeaders.trim().split(/\r?\n/).map((t=>t.split(/: (.+)/))).filter((([t])=>t&&/^[\w-]+$/.test(t))));e(new Response(t.response,{status:t.status,headers:o}))},ontimeout:()=>a(new Error("Timeout")),onerror:t=>a(t),onabort:()=>a(new Error("AbortError"))})}))}}function rt(){return Math.floor(Date.now()/1e3)}class st extends Error{constructor(t){super(t),this.name="VideoHelper",this.message=t}}class lt{API_ORIGIN=window.location.origin;fetch;extraInfo;referer;origin;service;constructor({fetchFn:t=nt,extraInfo:e=!0,referer:o=document.referrer??window.location.origin+"/",origin:i=window.location.origin,service:a}={}){this.fetch=t,this.extraInfo=e,this.referer=o,this.origin=/^(http(s)?):\/\//.test(String(i))?i:window.location.origin,this.service=a}async getVideoData(t){}async getVideoId(t){}returnBaseData(t){if(this.service)return{url:this.service.url+t,videoId:t,host:this.service.host,duration:void 0}}}const dt=["auto","ru","en","zh","ko","lt","lv","ar","fr","it","es","de","ja"],ut=["ru","en","kk"],ct=["srt","vtt","json"];class ht extends Error{constructor(t){super(Z.getDefault(t)),this.name="VOTLocalizedError",this.unlocalizedMessage=t,this.localizedMessage=Z.get(t)}}const pt={[S.mailru]:class extends lt{API_ORIGIN="https://my.mail.ru";async getVideoMeta(t){try{const e=await this.fetch(`${this.API_ORIGIN}/+/video/meta/${t}?xemail=&ajax_call=1&func_name=&mna=&mnb=&ext=1&_=${(new Date).getTime()}`);return await e.json()}catch(t){return void A.error("Failed to get mail.ru video data",t.message)}}async getVideoId(t){const e=t.pathname;if(/\/(v|mail|bk|inbox)\//.exec(e))return e.slice(1);const o=/video\/embed\/([^/]+)/.exec(e)?.[1];if(!o)return;const i=await this.getVideoMeta(o);return i?i.meta.url.replace("//my.mail.ru/",""):void 0}},[S.weverse]:class extends lt{API_ORIGIN="https://global.apis.naver.com/weverse/wevweb";API_APP_ID="be4d79eb8fc7bd008ee82c8ec4ff6fd4";API_HMAC_KEY="1b9cb6378d959b45714bec49971ade22e6e24e42";HEADERS={Accept:"application/json, text/plain, */*",Origin:"https://weverse.io",Referer:"https://weverse.io/"};getURLData(){return{appId:this.API_APP_ID,language:"en",os:"WEB",platform:"WEB",wpf:"pc"}}async createHash(t){const e=Date.now(),o=t.substring(0,Math.min(255,t.length))+e,i=await async function(t,e){try{const o=I.encode(e),i=await _("SHA-1",t,o);return btoa(String.fromCharCode(...new Uint8Array(i)))}catch(t){return A.error(t),!1}}(this.API_HMAC_KEY,o);if(!i)throw new st("Failed to get weverse HMAC signature");return{wmsgpad:e.toString(),wmd:i}}async getHashURLParams(t){const e=await this.createHash(t);return new URLSearchParams(e).toString()}async getPostPreview(t){const e=`/post/v1.0/post-${t}/preview?`+new URLSearchParams({fieldSet:"postForPreview",...this.getURLData()}).toString();try{const t=await this.getHashURLParams(e),o=await this.fetch(this.API_ORIGIN+e+"&"+t,{headers:this.HEADERS});return await o.json()}catch(e){return A.error(`Failed to get weverse post preview by postId: ${t}`,e.message),!1}}async getVideoInKey(t){const e=`/video/v1.1/vod/${t}/inKey?`+new URLSearchParams({gcc:"RU",...this.getURLData()}).toString();try{const t=await this.getHashURLParams(e),o=await this.fetch(this.API_ORIGIN+e+"&"+t,{method:"POST",headers:this.HEADERS});return await o.json()}catch(e){return A.error(`Failed to get weverse InKey by videoId: ${t}`,e.message),!1}}async getVideoInfo(t,e,o){const i=Date.now();try{const a=new URLSearchParams({key:e,sid:o,nonce:i.toString(),devt:"html5_pc",prv:"N",aup:"N",stpb:"N",cpl:"en",env:"prod",lc:"en",adi:JSON.stringify([{adSystem:null}]),adu:"/"}).toString(),n=await this.fetch(`https://global.apis.naver.com/rmcnmv/rmcnmv/vod/play/v2.0/${t}?`+a,{headers:this.HEADERS});return await n.json()}catch(i){return A.error(`Failed to get weverse video info (infraVideoId: ${t}, inkey: ${e}, serviceId: ${o}`,i.message),!1}}extractVideoInfo(t){return t.find((t=>!1===t.useP2P&&t.source.includes(".mp4")))}async getVideoData(t){const e=await this.getPostPreview(t);if(!e)return;const{videoId:o,serviceId:i,infraVideoId:a}=e.extension.video;if(!(o&&i&&a))return;const n=await this.getVideoInKey(o);if(!n)return;const r=await this.getVideoInfo(a,n.inKey,i);if(!r)return;const s=this.extractVideoInfo(r.videos.list);return s?{url:s.source,duration:s.duration}:void 0}async getVideoId(t){return/([^/]+)\/(live|media)\/([^/]+)/.exec(t.pathname)?.[3]}},[S.kodik]:class extends lt{API_ORIGIN=window.location.origin;async getSecureData(t){try{const e=await this.fetch(`${this.API_ORIGIN}${t}`,{headers:{"User-Agent":P.userAgent,Origin:this.API_ORIGIN,Referer:this.API_ORIGIN}}),o=await e.text(),[i,a,n]=t.split("/").filter((t=>t)),r=(new DOMParser).parseFromString(o,"text/html"),s=Array.from(r.getElementsByTagName("script")).filter((t=>t.innerHTML.includes(`videoId = "${a}"`)));if(!s.length)throw new st("Failed to find secure script");const l=/'{[^']+}'/.exec(s[0].textContent.trim())?.[0];if(!l)throw new st("Secure json wasn't found in secure script");const d=JSON.parse(l.replaceAll("'",""));return{videoType:i,videoId:a,hash:n,...d}}catch(e){return A.error(`Failed to get kodik secure data by videoPath: ${t}.`,e.message),!1}}async getFtor(t){const{videoType:e,videoId:o,hash:i,d:a,d_sign:n,pd:r,pd_sign:s,ref:l,ref_sign:d}=t;try{const t=await this.fetch(this.API_ORIGIN+"/ftor",{method:"POST",headers:{"User-Agent":P.userAgent,Origin:this.API_ORIGIN,Referer:`${this.API_ORIGIN}/${e}/${o}/${i}/360p`},body:new URLSearchParams({d:a,d_sign:n,pd:r,pd_sign:s,ref:decodeURIComponent(l),ref_sign:d,bad_user:"false",cdn_is_working:"true",info:"{}",type:e,hash:i,id:o})});return await t.json()}catch(t){return A.error(`Failed to get kodik video data (type: ${e}, id: ${o}, hash: ${i})`,t.message),!1}}decryptUrl(t){const e=atob(t.replace(/[a-zA-Z]/g,(function(t){const e=t.charCodeAt(0)+13,o=t<="Z"?90:122;return String.fromCharCode(o>=e?e:e-26)})));return"https:"+e}async getVideoData(t){const e=await this.getSecureData(t);if(!e)return;const o=await this.getFtor(e);if(!o)return;const i=Object.entries(o.links[o.default.toString()]),a=i.find((([t,e])=>"application/x-mpegURL"===e.type))?.[1];return a?{url:this.decryptUrl(a.src)}:void 0}async getVideoId(t){return/\/(seria|video)\/([^/]+)\/([^/]+)\/([\d]+)p/.exec(t.pathname)?.[0]}},[S.patreon]:class extends lt{API_ORIGIN="https://www.patreon.com/api";async getPosts(t){try{const e=await this.fetch(`${this.API_ORIGIN}/posts/${t}?json-api-use-default-includes=false`);return await e.json()}catch(e){return A.error(`Failed to get patreon posts by postId: ${t}.`,e.message),!1}}async getVideoData(t){const e=await this.getPosts(t);if(!e)return;const o=e.data.attributes.post_file.url;return o?{url:o}:void 0}async getVideoId(t){const e=/posts\/([^/]+)/.exec(t.pathname)?.[1];if(e)return e.replace(/[^\d.]/g,"")}},[S.reddit]:class extends lt{API_ORIGIN="https://www.reddit.com";async getVideoData(t){try{const t=document.querySelector("[data-hls-url]")?.dataset.hlsUrl.replaceAll("&","&");if(!t)throw new st("Failed to find content url");return{url:decodeURIComponent(t)}}catch(e){return void A.error(`Failed to get reddit video data by video ID: ${t}`,e.message)}}async getVideoId(t){return/\/r\/(([^/]+)\/([^/]+)\/([^/]+)\/([^/]+))/.exec(t.pathname)?.[1]}},[S.bannedvideo]:class extends lt{API_ORIGIN="https://api.banned.video";async getVideoInfo(t){try{const e=await this.fetch(`${this.API_ORIGIN}/graphql`,{method:"POST",body:JSON.stringify({operationName:"GetVideo",query:"query GetVideo($id: String!) {\n getVideo(id: $id) {\n title\n description: summary\n duration: videoDuration\n videoUrl: directUrl\n isStream: live\n }\n }",variables:{id:t}}),headers:{"User-Agent":"bannedVideoFrontEnd","apollographql-client-name":"banned-web","apollographql-client-version":"1.3","content-type":"application/json"}});return await e.json()}catch(e){return console.error(`Failed to get bannedvideo video info by videoId: ${t}.`,e.message),!1}}async getVideoData(t){const e=await this.getVideoInfo(t);if(!e)return;const{videoUrl:o,duration:i,isStream:a,description:n,title:r}=e.data.getVideo;return{url:o,duration:i,isStream:a,title:r,description:n}}async getVideoId(t){return t.searchParams.get("id")??void 0}},[S.kick]:class extends lt{API_ORIGIN="https://kick.com/api";async getClipInfo(t){try{const e=await this.fetch(`${this.API_ORIGIN}/v2/clips/${t}`),o=await e.json(),{clip_url:i,duration:a,title:n}=o.clip;return{url:i,duration:a,title:n}}catch(e){return void A.error(`Failed to get kick clip info by clipId: ${t}.`,e.message)}}async getVideoInfo(t){try{const e=await this.fetch(`${this.API_ORIGIN}/v1/video/${t}`),o=await e.json(),{source:i,livestream:a}=o,{session_title:n,duration:r}=a;return{url:i,duration:Math.round(r/1e3),title:n}}catch(e){return void A.error(`Failed to get kick video info by videoId: ${t}.`,e.message)}}async getVideoData(t){return t.startsWith("videos")?await this.getVideoInfo(t.replace("videos/","")):await this.getClipInfo(t.replace("clips/",""))}async getVideoId(t){return/([^/]+)\/((videos|clips)\/([^/]+))/.exec(t.pathname)?.[2]}},[S.appledeveloper]:class extends lt{API_ORIGIN="https://developer.apple.com";async getVideoData(t){try{const t=document.querySelector("meta[property='og:video']")?.content;if(!t)throw new st("Failed to find content url");return{url:t}}catch(e){return void A.error(`Failed to get apple developer video data by video ID: ${t}`,e.message)}}async getVideoId(t){return/videos\/play\/([^/]+)\/([\d]+)/.exec(t.pathname)?.[0]}},[S.epicgames]:class extends lt{API_ORIGIN="https://dev.epicgames.com/community/api/learning";async getPostInfo(t){try{const e=await this.fetch(`${this.API_ORIGIN}/post.json?hash_id=${t}`);return await e.json()}catch(e){return A.error(`Failed to get epicgames post info by videoId: ${t}.`,e.message),!1}}async getVideoData(t){const e=await this.getPostInfo(t);if(!e)return;const o=e.blocks.find((t=>"video"===t.type)),i=o?.video_url?.replace("qsep://","https://");if(!i)return;const{title:a,description:n}=e,r=o?.video_captions?.map((t=>({language:E(t.locale),format:"vtt",url:t.signed_url})));return{url:i,title:a,description:n,subtitles:r}}async getVideoId(t){return/\/(\w{3,5})\/[^/]+$/.exec(t.pathname)?.[1]}},[S.nineanimetv]:class extends lt{API_ORIGIN="https://9animetv.to/ajax/episode";RAPID_CLOUD_ORIGIN="https://rapid-cloud.co/ajax/embed-6-v2";async getSourceId(t){try{const e=await this.fetch(`${this.API_ORIGIN}/servers?episodeId=${t}`),o=await e.json();return!!o.html&&/data-id="(\d+)"/.exec(o.html)?.[1]}catch(e){return A.error(`Failed to get 9animetv servers info by episodeId: ${t}.`,e.message),!1}}async getPlayerLink(t){try{const e=await this.fetch(`${this.API_ORIGIN}/sources?id=${t}`),o=await e.json();return!!o.link.includes("rapid-cloud.co")&&o.link}catch(e){return A.error(`Failed to get player link by sourceId: ${t}.`,e.message),!1}}async getRapidCloudData(t){try{const e=await this.fetch(`${this.RAPID_CLOUD_ORIGIN}/getSources?id=${t}`),o=await e.json();return o.encrypted?(A.warn("Encrypted RapidCloud data found. Let us know about it",o),!1):o}catch(e){return A.error(`Failed to get rapid cloud data by rapidId: ${t}.`,e.message),!1}}async getVideoData(t){const e=t.split("?ep=")[1],o=await this.getSourceId(e);if(!o)return;const i=await this.getPlayerLink(o);if(!i)return;const a=/\/([^/?]+)\?/.exec(i)?.[1];if(!a)return;const n=await this.getRapidCloudData(a);if(!n)return;const r=n.sources.find((t=>"hls"===t.type))?.file;if(!r)return;const s=n.tracks.reduce(((t,e)=>{const o=/([\w+]+)(-\d)?\.vtt/.exec(e.file)?.[1];if(!o)return t;const i=E(3===o.length?o:e.label);return t.find((t=>t.language===i))||t.push({language:i,format:"vtt",url:e.file}),t}),[]);return{url:r,subtitles:s}}async getVideoId(t){return new Promise((t=>{const e="https://9animetv.to";window.addEventListener("message",(o=>{o.origin===e&&o.data?.startsWith("getVideoId:")&&t(o.data.replace("getVideoId:",""))})),window.top.postMessage("getVideoId",e)}))}},[S.odysee]:class extends lt{API_ORIGIN="https://odysee.com";async getVideoData(t){try{const e=await this.fetch(`${this.API_ORIGIN}/${t}`),o=await e.text(),i=/"contentUrl":(\s)?"([^"]+)"/.exec(o)?.[2];if(!i)throw new Error("Odysee url doesn't parsed");return{url:i}}catch(e){return void A.error(`Failed to get odysee video data by video ID: ${t}`,e.message)}}async getVideoId(t){return t.pathname.slice(1)}},[S.coursehunterLike]:class extends lt{API_ORIGIN=this.origin??"https://coursehunter.net";async getCourseId(t){try{const e=await this.fetch(`${this.API_ORIGIN}/${t}`),o=await e.text();return/course_id(\s)?=(\s)?([\d]+)/.exec(o)?.[3]}catch(e){return A.error(`Failed to get CoursehunterLike courseId by videoId: ${t}, because ${e.message}`),!1}}async getLessonsData(t){try{const e=await this.fetch(`${this.API_ORIGIN}/api/v1/course/${t}/lessons`);return await e.json()}catch(e){return A.error(`Failed to get CoursehunterLike lessons data by courseId: ${t}, because ${e.message}`),!1}}async getVideoData(t){const e=await this.getCourseId(t);if(!e)return;const o=await this.getLessonsData(e);if(!o)return;const i=+(t.split("?lesson=")?.[1]??1),a=o?.[i-1],{file:n,duration:r,title:s}=a;return n?{url:n,duration:r,title:s}:void 0}async getVideoId(t){const e=/course\/([^/]+)/.exec(t.pathname)?.[0];return e?e+t.search:void 0}},[S.twitch]:class extends lt{API_ORIGIN="https://clips.twitch.tv";async getClipLink(t,e){const o=document.querySelector("script[type='application/ld+json']"),i=t.slice(1);if(o){const t=JSON.parse(o.innerText),e=t["@graph"].find((t=>"VideoObject"===t["@type"]))?.creator.url;return`${e.replace("https://www.twitch.tv/","")}/clip/${i}`}const a="embed"===i,n=document.querySelector(a?".tw-link[data-test-selector='stream-info-card-component__stream-avatar-link']":".clips-player a:not([class])");if(!n)return;return`${n.href.replace("https://www.twitch.tv/","")}/clip/${a?e:i}`}async getVideoId(t){const e=t.pathname;if(/^m\.twitch\.tv$/.test(e))return/videos\/([^/]+)/.exec(t.href)?.[0]??e.slice(1);if(/^player\.twitch\.tv$/.test(t.hostname))return`videos/${t.searchParams.get("video")}`;const o=/([^/]+)\/(?:clip)\/([^/]+)/.exec(e);if(o)return o[0];return/^clips\.twitch\.tv$/.test(t.hostname)?await this.getClipLink(e,t.searchParams.get("clip")):/(?:videos)\/([^/]+)/.exec(e)?.[0]}},[S.sap]:class extends lt{API_ORIGIN="https://learning.sap.com/";async requestKaltura(t,e,o){try{const i=await this.fetch(`https://${t}/api_v3/service/multirequest`,{method:"POST",body:JSON.stringify({1:{service:"session",action:"startWidgetSession",widgetId:`_${e}`},2:{service:"baseEntry",action:"list",ks:"{1:result:ks}",filter:{redirectFromEntryId:o},responseProfile:{type:1,fields:"id,referenceId,name,description,dataUrl,duration,flavorParamsIds,type,dvrStatus,externalSourceType,createdAt,updatedAt,endDate,plays,views,downloadUrl,creatorId"}},3:{service:"baseEntry",action:"getPlaybackContext",entryId:"{2:result:objects:0:id}",ks:"{1:result:ks}",contextDataParams:{objectType:"KalturaContextDataParams",flavorTags:"all"}},apiVersion:"3.3.0",format:1,ks:"",clientTag:"html5:v3.17.22",partnerId:e}),headers:{"Content-Type":"application/json"}});return await i.json()}catch(t){return void A.error("Failed to request kaltura data",t.message)}}async getKalturaData(t){try{const e=/https:\/\/([^"]+)\/p\/([^"]+)\/embedPlaykitJs\/uiconf_id\/([^"]+)/.exec(document.querySelector('script[data-nscript="beforeInteractive"]')?.src);if(!e)throw new st(`Failed to get sap data for videoId: ${t}`);const[,o,i]=e;let a=document.querySelector("#shadow")?.firstChild?.getAttribute("id");if(a||(a=/"sourceId":\s?"([^"]+)"/.exec(document.querySelector("#__NEXT_DATA__")?.innerText)?.[1]),!o||Number.isNaN(+i)||!a)throw new st(`One of the necessary parameters for getting a link to a sap video in wasn't found for ${t}. Params: kalturaDomain = ${o}, partnerId = ${i}, entryId = ${a}`);return await this.requestKaltura(o,i,a)}catch(t){return void A.error("Failed to get kaltura data",t.message)}}async getVideoData(t){const e=await this.getKalturaData(t);if(!e)return;const[,o,i]=e,{duration:a}=o.objects[0],n=i.sources.find((t=>"url"===t.format&&"http,https"===t.protocols&&t.url.includes(".mp4")))?.url;if(!n)return;return{url:n,subtitles:i.playbackCaptions.map((t=>({language:E(t.languageCode),format:"vtt",url:t.webVttUrl,isAutoGenerated:t.label.includes("auto-generated")}))),duration:a}}async getVideoId(t){return/((courses|learning-journeys)\/([^/]+)(\/[^/]+)?)/.exec(t.pathname)?.[1]}},[S.udemy]:class extends lt{API_ORIGIN="https://www.udemy.com/api-2.0";getModuleData(){const t=document.querySelector(".ud-app-loader[data-module-id='course-taking']")?.dataset?.moduleArgs;return t?JSON.parse(t):(console.error(Z.get("udemyModuleArgsNotFound")),{})}getLectureId(){return/learn\/lecture\/([^/]+)/.exec(window.location.pathname)?.[1]}async getLectureData(t,e){const o=await this.fetch(`${this.API_ORIGIN}/users/me/subscribed-courses/${t}/lectures/${e}/?`+new URLSearchParams({"fields[lecture]":"title,description,asset","fields[asset]":"length,media_sources,captions"}));return await o.json()}async getCourseLang(t){const e=await this.fetch(`${this.API_ORIGIN}/users/me/subscribed-courses/${t}?`+new URLSearchParams({"fields[course]":"locale"}));return await e.json()}findVideoUrl(t){return t?.find((t=>"video/mp4"===t.type))?.src}findSubtitleUrl(t,e){let o=t?.find((t=>E(t.locale_id)===e));return o||(o=t?.find((t=>"en"===E(t.locale_id)))??t?.[0]),o?.url}async getVideoData(t){const{courseId:e}=this.getModuleData();if(!e)return;const o=this.getLectureId();if($.log(`[Udemy] courseId: ${e}, lectureId: ${o}`),!o)return;const{title:i,description:a,asset:n}=await this.getLectureData(e,o),{length:r,media_sources:s,captions:l}=n,d=this.findVideoUrl(s);if(!d)return void console.log("Failed to find .mp4 video file in media_sources",s);const u=await this.getCourseLang(e);let{locale:{locale:c}}=u;c=c?E(c):"en",dt.includes(c)||(c="en");const h=this.findSubtitleUrl(l,c);return h||console.log("Failed to find subtitle file in captions",l),{...h?{url:this.service?.url+t,translationHelp:[{target:"subtitles_file_url",targetUrl:h},{target:"video_file_url",targetUrl:d}],detectedLanguage:c}:{url:d,translationHelp:null},duration:r,title:i,description:a}}async getVideoId(t){return t.pathname.slice(1)}},[S.coursera]:class extends lt{API_ORIGIN="https://www.coursera.org/api";async getCourseData(t){const e=await this.fetch(`${this.API_ORIGIN}/onDemandCourses.v1/${t}`),o=await e.json();return o?.elements?.[0]}getPlayer(){return document.querySelector(".vjs-v8")}getPlayerData(){return this.getPlayer()?.player}findVideoUrl(t){return t?.find((t=>"video/mp4"===t.type))?.src}findSubtitleUrl(t,e){let o=t?.find((t=>E(t.srclang)===e));return o||(o=t?.find((t=>"en"===E(t.srclang)))||t?.[0]),o?.src}async getVideoData(t){const e=this.getPlayerData(),{duration:o}=e?.cache_||{},{courseId:i,tracks:a,sources:n}=e?.options_||{},r=this.findVideoUrl(n);if(!r)return void console.log("Failed to find .mp4 video file in sources",n);const{primaryLanguageCodes:s}=await this.getCourseData(i);let l=s?.[0];l=l?E(l):"en",dt.includes(l)||(l="en");const d=this.findSubtitleUrl(a,l);return d||console.log("Failed to find subtitle file in tracks",a),{...d?{url:this.service?.url+t,translationHelp:[{target:"subtitles_file_url",targetUrl:d},{target:"video_file_url",targetUrl:r}]}:{url:r,translationHelp:null},detectedLanguage:l,duration:o}}async getVideoId(t){return/learn\/([^/]+)\/lecture\/([^/]+)/.exec(t.pathname)?.[0]}},[S.linkedin]:class extends lt{API_ORIGIN="https://www.linkedin.com/learning";async getVideoData(t){try{const e=document.querySelector(".video-js");if(!e)throw new st(`Failed to find video element for videoID ${t}`);const o=(e.getAttribute("data-sources")??"[]").replaceAll(""",'"').replaceAll("&","&"),i=JSON.parse(o).find((t=>t.src.includes(".mp4")));if(!i)throw new Error(`Failed to find video url for videoID ${t}`);const a=new URL(i.src),n=e.getAttribute("data-captions-url"),r=n?[{language:"en",format:"vtt",url:n}]:void 0;return{url:B(a),subtitles:r}}catch(t){return void A.error("Failed to get linkedin video data",t.message)}}async getVideoId(t){return/\/learning\/(([^/]+)\/([^/]+))/.exec(t.pathname)?.[1]}},[S.vimeo]:class extends lt{API_KEY="";DEFAULT_SITE_ORIGIN="https://vimeo.com";SITE_ORIGIN=this.isPrivatePlayer()?this.service?.url?.slice(0,-1)??this.DEFAULT_SITE_ORIGIN:this.DEFAULT_SITE_ORIGIN;isErrorData(t){return Object.hasOwn(t,"error")}isPrivatePlayer(){return this.referer&&!this.referer.includes("vimeo.com")}async getViewerData(){try{const t=await this.fetch("https://vimeo.com/_next/viewer"),e=await t.json(),{apiUrl:o,jwt:i}=e;return this.API_ORIGIN=`https://${o}`,this.API_KEY=`jwt ${i}`,e}catch(t){return A.error("Failed to get default viewer data.",t.message),!1}}async getVideoInfo(t){try{const e=new URLSearchParams({fields:"name,link,description,duration"}).toString(),o=await this.fetch(`${this.API_ORIGIN}/videos/${t}?${e}`,{headers:{Authorization:this.API_KEY}}),i=await o.json();if(this.isErrorData(i))throw new Error(i.developer_message??i.error);return i}catch(e){return A.error(`Failed to get video info by video ID: ${t}`,e.message),!1}}async getPrivateVideoSource(t){try{const{default_cdn:e,cdns:o}=t.dash,i=o[e].url,a=await this.fetch(i);if(200!==a.status)throw new st(await a.text());const n=await a.json(),r=new URL(i),s=Array.from(n.base_url.matchAll(/\.\.\//g)).length+1,l=r.pathname.split("/");let d=n.base_url.replaceAll("../","");d=d&&!d.startsWith("/")?`/${d}`:d,r.pathname=l.slice(0,l.length-s).join("/")+d,r.pathname.endsWith("/")||(r.pathname+="/");const u=n.audio.find((t=>"audio/mp4"===t.mime_type&&"dash"===t.format));if(!u)throw new st("Failed to find video data");const c=u.segments?.[0]?.url;if(!c)throw new st("Failed to find first segment url");const[h,p]=c.split("?",2),g=new URLSearchParams(p);return g.delete("range"),r.pathname+=`${u.base_url}${h}`,r.href=r.href.split("?")[0]+"?"+g.toString(),r.href}catch(t){return A.error("Failed to get private video source",t.message),!1}}async getPrivateVideoInfo(t){try{const e=await this.getPrivateVideoSource(playerConfig.request.files);if(!e)throw new st("Failed to get private video source");const{title:o,duration:i}=playerConfig.video,{text_tracks:a}=playerConfig.request;return{url:`${this.SITE_ORIGIN}/${t}`,video_url:e,title:o,duration:i,subs:a}}catch(e){return A.error(`Failed to get private video info by video ID: ${t}`,e.message),!1}}async getSubsInfo(t){try{const e=new URLSearchParams({per_page:"100",fields:"language,type,link"}).toString(),o=await this.fetch(`${this.API_ORIGIN}/videos/${t}/texttracks?${e}`,{headers:{Authorization:this.API_KEY}}),i=await o.json();if(this.isErrorData(i))throw new Error(i.developer_message??i.error);return i}catch(e){return A.error(`Failed to get subtitles info by video ID: ${t}`,e.message),!1}}async getVideoData(t){const e=this.isPrivatePlayer();if(!this.extraInfo)return this.returnBaseData(t);if(e){const e=await this.getPrivateVideoInfo(t);if(!e)return;const{url:o,subs:i,video_url:a,title:n,duration:r}=e,s=i.map((t=>({language:E(t.lang),format:"vtt",url:this.SITE_ORIGIN+t.url,isAutoGenerated:t.lang.includes("autogenerated")}))),l=s.length?[{target:"video_file_url",targetUrl:a},{target:"subtitles_file_url",targetUrl:s[0].url}]:null;return{...l?{url:o,translationHelp:l}:{url:a},subtitles:s,title:n,duration:r}}t.startsWith("video/")&&(t=t.replace("video/","")),t.includes("/")&&(t=t.replace("/",":"));if(!await this.getViewerData())return this.returnBaseData(t);const o=await this.getVideoInfo(t);if(!o)return this.returnBaseData(t);const i=await this.getSubsInfo(t),a=i?i.data.map((t=>({language:E(t.language),format:"vtt",url:t.link,isAutoGenerated:t.language.includes("autogen")}))):[],{link:n,duration:r,name:s,description:l}=o;return{url:n,title:s,description:l,subtitles:a,duration:r}}async getVideoId(t){const e=/[^/]+\/[^/]+$/.exec(t.pathname)?.[0];return this.isPrivatePlayer()?e:e?.startsWith("video/")?e.replace("video/",""):e??/[^/]+$/.exec(t.pathname)?.[0]}},[S.yandexdisk]:class extends lt{API_ORIGIN="https://disk.yandex.ru";CLIENT_PREFIX="/client/disk";async getVideoData(t){if(!t.startsWith(this.CLIENT_PREFIX))return{url:this.service.url+t};const e=new URL(window.location).searchParams.get("idDialog");if(!e)return;const o=document.querySelector("#preloaded-data");if(o)try{const t=JSON.parse(o.innerText),{idClient:i,sk:a}=t.config,n=await this.fetch(this.API_ORIGIN+"/models/?_m=resource",{method:"POST",body:new URLSearchParams({idClient:i,sk:a,"_model.0":"resource","id.0":e.replaceAll(" ","+")}).toString().replaceAll(/%2B/g,"+"),headers:{"Content-Type":"application/x-www-form-urlencoded; charset=UTF-8"}}),r=await n.json();if(!r.models)throw new st("Failed to get resource info");const s=r.models[0].data;if(Object.hasOwn(s,"error"))throw new st(s.error?.message);const{meta:l,name:d}=s,{short_url:u,video_info:c}=l;if(!c)throw new st("There's no video open right now");if(!u)throw new st("VOTLimitedVideoAccess");return{url:u,title:d.replace(/(\.[^.]+)$/,""),duration:c.duration}}catch(e){if(e.message?.startsWith("VOT"))throw new ht(e.message);return void console.error(`Failed to get yandex disk video data by video ID: ${t}`,e.message)}}async getVideoId(t){const e=/\/i\/([^/]+)/.exec(t.pathname)?.[1];return e||(t.pathname.startsWith(this.CLIENT_PREFIX)?t.pathname+t.search:void 0)}},[S.vk]:class extends lt{async getVideoId(t){const e=/^\/(video|clip)-?\d{8,9}_\d{9}$/.exec(t.pathname);if(e)return e[0].slice(1);const o=t.searchParams.get("z");if(o)return o.split("/")[0];const i=t.searchParams.get("oid"),a=t.searchParams.get("id");return i&&a?`video-${Math.abs(parseInt(i))}_${a}`:void 0}},[S.trovo]:class extends lt{async getVideoId(t){const e=t.searchParams.get("vid"),o=/([^/]+)\/([\d]+)/.exec(t.pathname)?.[0];if(e&&o)return`${o}?vid=${e}`}},[S.incestflix]:class extends lt{async getVideoData(t){try{const t=document.querySelector("#incflix-stream source:first-of-type");if(!t)throw new st("Failed to find source element");const e=t.getAttribute("src"),o=new URL(e.startsWith("//")?`https:${e}`:e);return o.searchParams.append("media-proxy","video.mp4"),{url:B(o)}}catch(e){return void A.error(`Failed to get Incestflix data by videoId: ${t}`,e.message)}}async getVideoId(t){return/\/watch\/([^/]+)/.exec(t.pathname)?.[1]}},[S.porntn]:class extends lt{async getVideoData(t){try{const t=document.body.innerHTML,e=/var flashvars\s=\s/,o=document.getElementsByTagName("script").find((t=>e.exec(t.textContent)));if(!o)throw new st("Failed to find data script");const i=o.textContent.split(e)?.[1]?.split(";\n",1)[0].replace(/(\t|\n)/g,"");A.log(i);const a=/video_url: 'function\/0\/([^']+)'/.exec(t)?.[1],n=/rnd: '([^']+)'/.exec(t)?.[1];if(!a||!n)throw new st("Failed to find video source or rnd");const r=/video_title: '([^']+)'/.exec(t)?.[1],s=new URL(a);return s.searchParams.append("rnd",n),A.log(s.href),{url:B(s),title:r}}catch(e){return void A.error(`Failed to get PornTN data by videoId: ${t}`,e.message)}}async getVideoId(t){return/\/videos\/(([^/]+)\/([^/]+))/.exec(t.pathname)?.[1]}}};class gt{helpersData;constructor(t={}){this.helpersData=t}getHelper(t){return new pt[t](this.helpersData)}}class mt extends Error{constructor(t){super(t),this.name="VideoDataError",this.message=t}}async function vt(t,e,o={}){const i=new URL(window.location.href),a=t.host;if(Object.keys(pt).includes(a)){const t=new gt(o).getHelper(a);return await t.getVideoId(i)}switch(a){case S.custom:return i.href;case S.piped:case S.poketube:case S.invidious:case S.ricktube:case S.youtube:return"youtu.be"===i.hostname&&(i.search=`?v=${i.pathname.replace("/","")}`,i.pathname="/watch"),/(?:watch|embed|shorts|live)\/([^/]+)/.exec(i.pathname)?.[1]??i.searchParams.get("v");case S.nine_gag:case S.gag:return/gag\/([^/]+)/.exec(i.pathname)?.[1];case S.proxitok:case S.tiktok:return/([^/]+)\/video\/([^/]+)/.exec(i.pathname)?.[0];case S.xvideos:return/[^/]+\/[^/]+$/.exec(i.pathname)?.[0];case S.pornhub:return i.searchParams.get("viewkey")??/embed\/([^/]+)/.exec(i.pathname)?.[1];case S.twitter:return/status\/([^/]+)/.exec(i.pathname)?.[1];case S.rumble:case S.facebook:return i.pathname.slice(1);case S.rutube:return/(?:video|embed)\/([^/]+)/.exec(i.pathname)?.[1];case S.bilibili:{const t=/bangumi\/play\/([^/]+)/.exec(i.pathname)?.[0];if(t)return t;const e=i.searchParams.get("bvid");if(e)return`video/${e}`;let o=/video\/([^/]+)/.exec(i.pathname)?.[0];return o&&null!==i.searchParams.get("p")&&(o+=`/?p=${i.searchParams.get("p")}`),o}case S.bitchute:return/(video|embed)\/([^/]+)/.exec(i.pathname)?.[2];case S.eporner:return/video-([^/]+)\/([^/]+)/.exec(i.pathname)?.[0];case S.peertube:return/\/w\/([^/]+)/.exec(i.pathname)?.[0];case S.dailymotion:{const t=Array.from(document.querySelectorAll("*")).filter((t=>t.innerHTML.trim().includes(".m3u8")));let e=t?.[1]?.lastChild?.src;if(!e)return;return/\/video\/(\w+)\.m3u8/.exec(e)?.[1]}case S.okru:return/\/video\/(\d+)/.exec(i.pathname)?.[1];case S.googledrive:return i.searchParams.get("docid");case S.newgrounds:return/([^/]+)\/(view)\/([^/]+)/.exec(i.pathname)?.[0];case S.egghead:return i.pathname.slice(1);case S.youku:return/v_show\/id_[\w=]+/.exec(i.pathname)?.[0];case S.archive:return/(details|embed)\/([^/]+)/.exec(i.pathname)?.[2];case S.watchpornto:return/(video|embed)\/(\d+)(\/[^/]+\/)?/.exec(i.pathname)?.[0];default:return}}async function ft(t,e,o={}){const i=await vt(t,0,o);if(!i)throw new mt(`Entered unsupported link: "${t.host}"`);const a=window.location.origin;if([S.peertube,S.coursehunterLike].includes(t.host)&&(t.url=a),t.rawResult)return{url:i,videoId:i,host:t.host,duration:void 0};if(!t.needExtraData)return{url:t.url+i,videoId:i,host:t.host,duration:void 0};const n=new gt({...o,service:t,origin:a}).getHelper(t.host),r=await n.getVideoData(i);if(!r)throw new mt(`Failed to get video raw url for ${t.host}`);return{...r,videoId:i,host:t.host}}class bt extends Error{data;constructor(t,e=void 0){super(t),this.data=e,this.name="VOTJSError",this.message=t}}class yt{host;hostVOT;schema;schemaVOT;fetch;fetchOpts;getVideoDataFn;sessions={};requestLang;responseLang;userAgent=P.userAgent;componentVersion=P.componentVersion;paths={videoTranslation:"/video-translation/translate",videoTranslationFailAudio:"/video-translation/fail-audio-js",videoTranslationAudio:"/video-translation/audio",videoSubtitles:"/video-subtitles/get-subtitles",streamPing:"/stream-translation/ping-stream",streamTranslation:"/stream-translation/translate-stream",createSession:"/session/create"};isCustomLink(t){return!!(/\.(m3u8|m4(a|v)|mpd)/.exec(t)??/^https:\/\/cdn\.qstv\.on\.epicgames\.com/.exec(t))}headers={"User-Agent":this.userAgent,Accept:"application/x-protobuf","Accept-Language":"en","Content-Type":"application/x-protobuf",Pragma:"no-cache","Cache-Control":"no-cache","Sec-Fetch-Mode":"no-cors"};headersVOT={"User-Agent":`vot.js/${P.version}`,"Content-Type":"application/json",Pragma:"no-cache","Cache-Control":"no-cache"};constructor({host:t=P.host,hostVOT:e=P.hostVOT,fetchFn:o=M,fetchOpts:i={},getVideoDataFn:a=ft,requestLang:n="en",responseLang:r="ru",headers:s={}}={}){const l=/(http(s)?):\/\//,d=l.exec(t)?.[1];this.host=d?t.replace(`${d}://`,""):t,this.schema=d??"https";const u=l.exec(e)?.[1];this.hostVOT=u?e.replace(`${u}://`,""):e,this.schemaVOT=u??"https",this.fetch=o,this.fetchOpts=i,this.getVideoDataFn=a,this.requestLang=n,this.responseLang=r,this.headers={...this.headers,...s}}getOpts(t,e={},o="POST"){return{method:o,headers:{...this.headers,...e},body:t,...this.fetchOpts}}async request(t,e,o={},i="POST"){const a=this.getOpts(new Blob([e]),o,i);try{const e=await this.fetch(`${this.schema}://${this.host}${t}`,a),o=await e.arrayBuffer();return{success:200===e.status,data:o}}catch(t){return{success:!1,data:t?.message}}}async requestJSON(t,e=null,o={},i="POST"){const a=this.getOpts(e,{"Content-Type":"application/json",...o},i);try{const e=await this.fetch(`${this.schema}://${this.host}${t}`,a),o=await e.json();return{success:200===e.status,data:o}}catch(t){return{success:!1,data:t?.message}}}async requestVOT(t,e,o={}){const i=this.getOpts(JSON.stringify(e),{...this.headersVOT,...o});try{const e=await this.fetch(`${this.schemaVOT}://${this.hostVOT}${t}`,i),o=await e.json();return{success:200===e.status,data:o}}catch(t){return{success:!1,data:t?.message}}}async getSession(t){const e=Math.floor(Date.now()/1e3),o=this.sessions[t];if(o&&o.timestamp+o.expires>e)return o;const{secretKey:i,expires:a,uuid:n}=await this.createSession(t);return this.sessions[t]={secretKey:i,expires:a,timestamp:e,uuid:n},this.sessions[t]}async translateVideoYAImpl({videoData:t,requestLang:e=this.requestLang,responseLang:o=this.responseLang,translationHelp:i=null,headers:a={},shouldSendFailedAudio:n=!0}){const{url:r,duration:s=P.defaultDuration}=t,{secretKey:l,uuid:d}=await this.getSession("video-translation"),u=C.encodeTranslationRequest(r,s,e,o,i),c=await V(u),h=await this.request(this.paths.videoTranslation,u,{"Vtrans-Signature":c,"Sec-Vtrans-Sk":l,"Sec-Vtrans-Token":`${c}:${d}:${this.paths.videoTranslation}:${this.componentVersion}`,...a});if(!h.success)throw new ht("requestTranslationFailed");const p=C.decodeTranslationResponse(h.data);switch($.log("requestTranslation",p),p.status){case k.FAILED:throw p?.message?new bt("Yandex couldn't translate video",p):new ht("requestTranslationFailed");case k.FINISHED:case k.PART_CONTENT:if(!p.url)throw new ht("audioNotReceived");return{translated:!0,url:p.url,remainingTime:p.remainingTime??-1};case k.WAITING:return{translated:!1,remainingTime:p.remainingTime};case k.LONG_WAITING:case k.LONG_WAITING_2:return r.startsWith("https://youtu.be/")&&n?(await this.requestVtransFailAudio(r),await this.requestVtransAudio(r,p.translationId),await this.translateVideoYAImpl({videoData:t,requestLang:e,responseLang:o,translationHelp:i,headers:a,shouldSendFailedAudio:!1})):{translated:!1,remainingTime:p.remainingTime??-1};default:throw A.error("Unknown response",p),new bt("Unknown response from Yandex",p)}}async translateVideoVOTImpl({url:t,videoId:e,service:o,requestLang:i=this.requestLang,responseLang:a=this.responseLang,headers:n={}}){const r=function(t,e,o){return t===S.patreon?{service:"mux",videoId:new URL(o).pathname.slice(1)}:{service:t,videoId:e}}(o,e,t),s=await this.requestVOT(this.paths.videoTranslation,{provider:"yandex",service:r.service,videoId:r.videoId,fromLang:i,toLang:a,rawVideo:t},n);if(!s.success)throw new ht("requestTranslationFailed",s);const l=s.data;switch(l.status){case"failed":throw new bt("Yandex couldn't translate video",l);case"success":if(!l.translatedUrl)throw new ht("audioNotReceived");return{translated:!0,url:l.translatedUrl,remainingTime:-1};case"waiting":return{translated:!1,remainingTime:l.remainingTime,message:l.message}}}async requestVtransFailAudio(t){const e=await this.requestJSON(this.paths.videoTranslationFailAudio,JSON.stringify({video_url:t}),void 0,"PUT");if(!e.data||"string"==typeof e.data||1!==e.data.status)throw new bt("Failed to request to fake video translation fail audio js",e);return e}async requestVtransAudio(t,e,o={}){const{secretKey:i,uuid:a}=await this.getSession("video-translation"),n=C.encodeTranslationAudioRequest(t,e),r=await V(n),s=await this.request(this.paths.videoTranslationAudio,n,{"Vtrans-Signature":r,"Sec-Vtrans-Sk":i,"Sec-Vtrans-Token":`${r}:${a}:${this.paths.videoTranslationAudio}:${this.componentVersion}`,...o},"PUT");if(!s.success)throw new bt("Failed to request video translation audio",s);return C.decodeTranslationAudioResponse(s.data)}async translateVideo({videoData:t,requestLang:e=this.requestLang,responseLang:o=this.responseLang,translationHelp:i=null,headers:a={}}){const{url:n,videoId:r,host:s}=t;return this.isCustomLink(n)?await this.translateVideoVOTImpl({url:n,videoId:r,service:s,requestLang:e,responseLang:o,headers:a}):await this.translateVideoYAImpl({videoData:t,requestLang:e,responseLang:o,translationHelp:i,headers:a})}async getSubtitles({videoData:t,requestLang:e=this.requestLang,headers:o={}}){const{url:i}=t;if(this.isCustomLink(i))return{waiting:!1,subtitles:[]};const{secretKey:a,uuid:n}=await this.getSession("video-translation"),r=C.encodeSubtitlesRequest(i,e),s=await V(r),l=await this.request(this.paths.videoSubtitles,r,{"Vsubs-Signature":await V(r),"Sec-Vsubs-Sk":a,"Sec-Vsubs-Token":`${s}:${n}:${this.paths.videoSubtitles}:${this.componentVersion}`,...o});if(!l.success)throw new bt("Failed to request video subtitles",l);return C.decodeSubtitlesResponse(l.data)}async pingStream({pingId:t,headers:e={}}){const{secretKey:o,uuid:i}=await this.getSession("video-translation"),a=C.encodeStreamPingRequest(t),n=await V(a),r=await this.request(this.paths.streamPing,a,{"Vtrans-Signature":await V(a),"Sec-Vtrans-Sk":o,"Sec-Vtrans-Token":`${n}:${i}:${this.paths.streamPing}:${this.componentVersion}`,...e});if(!r.success)throw new bt("Failed to request stream ping",r);return!0}async translateStream({videoData:t,requestLang:e=this.requestLang,responseLang:o=this.responseLang,headers:a={}}){const{url:n}=t;if(this.isCustomLink(n))throw new ht("VOTStreamNotSupportedUrl");const{secretKey:r,uuid:s}=await this.getSession("video-translation"),l=C.encodeStreamRequest(n,e,o),d=await V(l),u=await this.request(this.paths.streamTranslation,l,{"Vtrans-Signature":await V(l),"Sec-Vtrans-Sk":r,"Sec-Vtrans-Token":`${d}:${s}:${this.paths.streamTranslation}:${this.componentVersion}`,...a});if(!u.success)throw new bt("Failed to request stream translation",u);const c=C.decodeStreamResponse(u.data),h=c.interval;switch(h){case i.NO_CONNECTION:case i.TRANSLATING:return{translated:!1,interval:h,message:h===i.NO_CONNECTION?"streamNoConnectionToServer":"translationTakeFewMinutes"};case i.STREAMING:return{translated:!0,interval:h,pingId:c.pingId,result:c.translatedInfo};default:throw A.error("Unknown response",c),new bt("Unknown response from Yandex",c)}}async createSession(t){const e=function(){let t="";for(let e=0;e<32;e++)t+="0123456789ABCDEF"[Math.floor(16*Math.random())];return t}(),o=C.encodeYandexSessionRequest(e,t),i=await this.request(this.paths.createSession,o,{"Vtrans-Signature":await V(o)});if(!i.success)throw new bt("Failed to request create session",i);return{...C.decodeYandexSessionResponse(i.data),uuid:e}}}class wt extends yt{async request(t,e,o={},i="POST"){const a=this.getOpts(JSON.stringify({headers:{...this.headers,...o},body:Array.from(e)}),{"Content-Type":"application/json"},i);try{const e=await this.fetch(`${this.schema}://${this.host}${t}`,a),o=await e.arrayBuffer();return{success:200===e.status,data:o}}catch(t){return{success:!1,data:t?.message}}}async requestJSON(t,e=null,o={},i="POST"){const a=this.getOpts(JSON.stringify({headers:{...this.headers,"Content-Type":"application/json",Accept:"application/json",...o},body:e}),{Accept:"application/json","Content-Type":"application/json"},i);try{const e=await this.fetch(`${this.schema}://${this.host}${t}`,a),o=await e.json();return{success:200===e.status,data:o}}catch(t){return{success:!1,data:t?.message}}}}var xt;function St(t,e=","){const o=t/1e3,i=Math.floor(o/3600),a=Math.floor(o%3600/60),n=Math.floor(o%60),r=Math.floor(t%1e3);return`${i.toString().padStart(2,"0")}:${a.toString().padStart(2,"0")}:${n.toString().padStart(2,"0")}${e}${r.toString().padStart(3,"0")}`}function kt(t){const e=t.split(" ")?.[0]?.split(":");e.length<3&&e.unshift("00");const[o,i,a]=e;return 36e5*+o+6e4*+i+ +a.replace(/[,.]/,"")}function Tt(t,e="srt"){const o="vtt"===e,i=o?".":",",a=t.subtitles.map(((t,e)=>(o?"":`${e+1}\n`)+`${St(t.startMs,i)} --\x3e ${St(t.startMs+t.durationMs,i)}\n${t.text}\n\n`)).join("").trim();return o?`WEBVTT\n\n${a}`:a}function Ct(t,e="srt"){const o=function(t){return"string"!=typeof t?"json":/(WEBVTT)(\r?\n\r?\n)/.exec(t)?"vtt":"srt"}(t);return o===e?t:"json"===o?Tt(t,e):(t=function(t,e="srt"){const o=t.split(/\r?\n\r?\n/g);"vtt"===e&&o.shift();const i=+("srt"===e);return{containsTokens:!1,subtitles:o.reduce(((t,e)=>{const o=e.trim().split("\n"),a=o[i],n=o.slice(i+1).join("\n");if(!(2===o.length&&e.includes(" --\x3e ")||a?.includes(" --\x3e ")))return 0===t.length||(t[t.length-1].text+=`\n\n${o.join("\n")}`),t;const[r,s]=a.split(" --\x3e "),l=kt(r),d=kt(s)-l;return t.push({text:n,startMs:l,durationMs:d,speakerId:"0"}),t}),[])}}(t,o),"json"===e?t:Tt(t,e))}!function(t){t.Channel="Channel",t.Video="Video"}(xt||(xt={}));const Pt=globalThis,Lt=Pt.trustedTypes,At=Lt?Lt.createPolicy("lit-html",{createHTML:t=>t}):void 0,It="$lit$",_t=`lit$${Math.random().toFixed(9).slice(2)}$`,Vt="?"+_t,Ot=`<${Vt}>`,Mt=document,Et=()=>Mt.createComment(""),Bt=t=>null===t||"object"!=typeof t&&"function"!=typeof t,Nt=Array.isArray,Rt=t=>Nt(t)||"function"==typeof t?.[Symbol.iterator],$t="[ \t\n\f\r]",Dt=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Ft=/-->/g,qt=/>/g,Ut=RegExp(`>|${$t}(?:([^\\s"'>=/]+)(${$t}*=${$t}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),Ht=/'/g,zt=/"/g,Wt=/^(?:script|style|textarea|title)$/i,jt=t=>(e,...o)=>({_$litType$:t,strings:e,values:o}),Gt=jt(1),Yt=jt(2),Jt=(jt(3),Symbol.for("lit-noChange")),Kt=Symbol.for("lit-nothing"),Zt=new WeakMap,Xt=Mt.createTreeWalker(Mt,129);function Qt(t,e){if(!Nt(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==At?At.createHTML(e):e}const te=(t,e)=>{const o=t.length-1,i=[];let a,n=2===e?"":3===e?"":"",r=Dt;for(let e=0;e"===l[0]?(r=a??Dt,d=-1):void 0===l[1]?d=-2:(d=r.lastIndex-l[2].length,s=l[1],r=void 0===l[3]?Ut:'"'===l[3]?zt:Ht):r===zt||r===Ht?r=Ut:r===Ft||r===qt?r=Dt:(r=Ut,a=void 0);const c=r===Ut&&t[e+1].startsWith("/>")?" ":"";n+=r===Dt?o+Ot:d>=0?(i.push(s),o.slice(0,d)+It+o.slice(d)+_t+c):o+_t+(-2===d?e:c)}return[Qt(t,n+(t[o]||"")+(2===e?"":3===e?"":"")),i]};class ee{constructor({strings:t,_$litType$:e},o){let i;this.parts=[];let a=0,n=0;const r=t.length-1,s=this.parts,[l,d]=te(t,e);if(this.el=ee.createElement(l,o),Xt.currentNode=this.el.content,2===e||3===e){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(i=Xt.nextNode())&&s.length0){i.textContent=Lt?Lt.emptyScript:"";for(let o=0;o2||""!==o[0]||""!==o[1]?(this._$AH=Array(o.length-1).fill(new String),this.strings=o):this._$AH=Kt}_$AI(t,e=this,o,i){const a=this.strings;let n=!1;if(void 0===a)t=oe(this,t,e,0),n=!Bt(t)||t!==this._$AH&&t!==Jt,n&&(this._$AH=t);else{const i=t;let r,s;for(t=a[0],r=0;r{const i=o?.renderBefore??e;let a=i._$litPart$;if(void 0===a){const t=o?.renderBefore??null;i._$litPart$=a=new ae(e.insertBefore(Et(),t),t,void 0,o??{})}return a._$AI(t),a};function he(t){return String(t).split("").map((t=>t.charCodeAt(0)))}function pe(t){return new Uint8Array(he(t))}function ge(t){const e=new ArrayBuffer(2*t.length),o=new Uint8Array(e);return new Uint16Array(e).set(he(t)),o}function me(t){const e=255;return[t>>>24&e,t>>>16&e,t>>>8&e,t&e]}function ve(t){return 11+t}function fe(t,e,o,i){return 11+e+1+1+(i?2+2*(o+1):o+1)+t}function be(t){let e=0;return t.forEach((t=>{e+=2+2*t[0].length+2+2+2*t[1].length+2})),11+e}function ye(t,e){const o=2*e;let i=0;return t.forEach((t=>{i+=2+2*t[0].length+2+4})),18+o+2+i}class we{_setIntegerFrame(t,e){const o=parseInt(e,10);this.frames.push({name:t,value:o,size:ve(o.toString().length)})}_setStringFrame(t,e){const o=e.toString();let i=13+2*o.length;"TDAT"===t&&(i=ve(o.length)),this.frames.push({name:t,value:o,size:i})}_setPictureFrame(t,e,o,i){const a=function(t){if(!t||!t.length)return null;if(255===t[0]&&216===t[1]&&255===t[2])return"image/jpeg";if(137===t[0]&&80===t[1]&&78===t[2]&&71===t[3])return"image/png";if(71===t[0]&&73===t[1]&&70===t[2])return"image/gif";if(87===t[8]&&69===t[9]&&66===t[10]&&80===t[11])return"image/webp";const e=73===t[0]&&73===t[1]&&42===t[2]&&0===t[3],o=77===t[0]&&77===t[1]&&0===t[2]&&42===t[3];return e||o?"image/tiff":66===t[0]&&77===t[1]?"image/bmp":0===t[0]&&0===t[1]&&1===t[2]&&0===t[3]?"image/x-icon":null}(new Uint8Array(e)),n=o.toString();if(!a)throw new Error("Unknown picture MIME type");o||(i=!1),this.frames.push({name:"APIC",value:e,pictureType:t,mimeType:a,useUnicodeEncoding:i,description:n,size:fe(e.byteLength,a.length,n.length,i)})}_setLyricsFrame(t,e,o){const i=t.split("").map((t=>t.charCodeAt(0))),a=e.toString(),n=o.toString();var r,s;this.frames.push({name:"USLT",value:n,language:i,description:a,size:(r=a.length,s=n.length,16+2*r+2+2+2*s)})}_setCommentFrame(t,e,o){const i=t.split("").map((t=>t.charCodeAt(0))),a=e.toString(),n=o.toString();var r,s;this.frames.push({name:"COMM",value:n,language:i,description:a,size:(r=a.length,s=n.length,16+2*r+2+2+2*s)})}_setPrivateFrame(t,e){const o=t.toString();var i,a;this.frames.push({name:"PRIV",value:e,id:o,size:(i=o.length,a=e.byteLength,10+i+1+a)})}_setUserStringFrame(t,e){const o=t.toString(),i=e.toString();var a,n;this.frames.push({name:"TXXX",description:o,value:i,size:(a=o.length,n=i.length,13+2*a+2+2+2*n)})}_setUrlLinkFrame(t,e){const o=e.toString();var i;this.frames.push({name:t,value:o,size:(i=o.length,10+i)})}_setPairedTextFrame(t,e){this.frames.push({name:t,value:e,size:be(e)})}_setSynchronisedLyricsFrame(t,e,o,i,a){const n=a.toString(),r=i.split("").map((t=>t.charCodeAt(0)));this.frames.push({name:"SYLT",value:e,language:r,description:n,type:t,timestampFormat:o,size:ye(e,n.length)})}constructor(t){if(!t||"object"!=typeof t||!("byteLength"in t))throw new Error("First argument should be an instance of ArrayBuffer or Buffer");this.arrayBuffer=t,this.padding=4096,this.frames=[],this.url=""}setFrame(t,e){switch(t){case"TPE1":case"TCOM":case"TCON":{if(!Array.isArray(e))throw new Error(`${t} frame value should be an array of strings`);const o="TCON"===t?";":"/",i=e.join(o);this._setStringFrame(t,i);break}case"TLAN":case"TIT1":case"TIT2":case"TIT3":case"TALB":case"TPE2":case"TPE3":case"TPE4":case"TRCK":case"TPOS":case"TMED":case"TPUB":case"TCOP":case"TKEY":case"TEXT":case"TDAT":case"TSRC":this._setStringFrame(t,e);break;case"TBPM":case"TLEN":case"TYER":this._setIntegerFrame(t,e);break;case"USLT":if(e.language=e.language||"eng","object"!=typeof e||!("description"in e)||!("lyrics"in e))throw new Error("USLT frame value should be an object with keys description and lyrics");if(e.language&&!e.language.match(/[a-z]{3}/i))throw new Error("Language must be coded following the ISO 639-2 standards");this._setLyricsFrame(e.language,e.description,e.lyrics);break;case"APIC":if("object"!=typeof e||!("type"in e)||!("data"in e)||!("description"in e))throw new Error("APIC frame value should be an object with keys type, data and description");if(e.type<0||e.type>20)throw new Error("Incorrect APIC frame picture type");this._setPictureFrame(e.type,e.data,e.description,!!e.useUnicodeEncoding);break;case"TXXX":if("object"!=typeof e||!("description"in e)||!("value"in e))throw new Error("TXXX frame value should be an object with keys description and value");this._setUserStringFrame(e.description,e.value);break;case"WCOM":case"WCOP":case"WOAF":case"WOAR":case"WOAS":case"WORS":case"WPAY":case"WPUB":this._setUrlLinkFrame(t,e);break;case"COMM":if(e.language=e.language||"eng","object"!=typeof e||!("description"in e)||!("text"in e))throw new Error("COMM frame value should be an object with keys description and text");if(e.language&&!e.language.match(/[a-z]{3}/i))throw new Error("Language must be coded following the ISO 639-2 standards");this._setCommentFrame(e.language,e.description,e.text);break;case"PRIV":if("object"!=typeof e||!("id"in e)||!("data"in e))throw new Error("PRIV frame value should be an object with keys id and data");this._setPrivateFrame(e.id,e.data);break;case"IPLS":if(!Array.isArray(e)||!Array.isArray(e[0]))throw new Error("IPLS frame value should be an array of pairs");this._setPairedTextFrame(t,e);break;case"SYLT":if("object"!=typeof e||!("type"in e)||!("text"in e)||!("timestampFormat"in e))throw new Error("SYLT frame value should be an object with keys type, text and timestampFormat");if(!Array.isArray(e.text)||!Array.isArray(e.text[0]))throw new Error("SYLT frame text value should be an array of pairs");if(e.type<0||e.type>6)throw new Error("Incorrect SYLT frame content type");if(e.timestampFormat<1||e.timestampFormat>2)throw new Error("Incorrect SYLT frame time stamp format");e.language=e.language||"eng",e.description=e.description||"",this._setSynchronisedLyricsFrame(e.type,e.text,e.timestampFormat,e.language,e.description);break;default:throw new Error(`Unsupported frame ${t}`)}return this}removeTag(){if(this.arrayBuffer.byteLength<10)return;const t=new Uint8Array(this.arrayBuffer),e=t[3],o=((i=[t[6],t[7],t[8],t[9]])[0]<<21)+(i[1]<<14)+(i[2]<<7)+i[3]+10;var i,a;73!==(a=t)[0]||68!==a[1]||51!==a[2]||e<2||e>4||(this.arrayBuffer=new Uint8Array(t.subarray(o)).buffer)}addTag(){this.removeTag();const t=[255,254],e=10+this.frames.reduce(((t,e)=>t+e.size),0)+this.padding,o=new ArrayBuffer(this.arrayBuffer.byteLength+e),i=new Uint8Array(o);let a=0,n=[];return n=[73,68,51,3],i.set(n,a),a+=n.length,a++,a++,n=function(t){const e=127;return[t>>>21&e,t>>>14&e,t>>>7&e,t&e]}(e-10),i.set(n,a),a+=n.length,this.frames.forEach((e=>{switch(n=pe(e.name),i.set(n,a),a+=n.length,n=me(e.size-10),i.set(n,a),a+=n.length,a+=2,e.name){case"WCOM":case"WCOP":case"WOAF":case"WOAR":case"WOAS":case"WORS":case"WPAY":case"WPUB":n=pe(e.value),i.set(n,a),a+=n.length;break;case"TPE1":case"TCOM":case"TCON":case"TLAN":case"TIT1":case"TIT2":case"TIT3":case"TALB":case"TPE2":case"TPE3":case"TPE4":case"TRCK":case"TPOS":case"TKEY":case"TMED":case"TPUB":case"TCOP":case"TEXT":case"TSRC":n=[1].concat(t),i.set(n,a),a+=n.length,n=ge(e.value),i.set(n,a),a+=n.length;break;case"TXXX":case"USLT":case"COMM":n=[1],"USLT"!==e.name&&"COMM"!==e.name||(n=n.concat(e.language)),n=n.concat(t),i.set(n,a),a+=n.length,n=ge(e.description),i.set(n,a),a+=n.length,n=[0,0].concat(t),i.set(n,a),a+=n.length,n=ge(e.value),i.set(n,a),a+=n.length;break;case"TBPM":case"TLEN":case"TDAT":case"TYER":a++,n=pe(e.value),i.set(n,a),a+=n.length;break;case"PRIV":n=pe(e.id),i.set(n,a),a+=n.length,a++,i.set(new Uint8Array(e.value),a),a+=e.value.byteLength;break;case"APIC":n=[e.useUnicodeEncoding?1:0],i.set(n,a),a+=n.length,n=pe(e.mimeType),i.set(n,a),a+=n.length,n=[0,e.pictureType],i.set(n,a),a+=n.length,e.useUnicodeEncoding?(n=[].concat(t),i.set(n,a),a+=n.length,n=ge(e.description),i.set(n,a),a+=n.length,a+=2):(n=pe(e.description),i.set(n,a),a+=n.length,a++),i.set(new Uint8Array(e.value),a),a+=e.value.byteLength;break;case"IPLS":n=[1],i.set(n,a),a+=n.length,e.value.forEach((e=>{n=[].concat(t),i.set(n,a),a+=n.length,n=ge(e[0].toString()),i.set(n,a),a+=n.length,n=[0,0].concat(t),i.set(n,a),a+=n.length,n=ge(e[1].toString()),i.set(n,a),a+=n.length,n=[0,0],i.set(n,a),a+=n.length}));break;case"SYLT":n=[1].concat(e.language).concat(e.timestampFormat).concat(e.type),i.set(n,a),a+=n.length,n=[].concat(t),i.set(n,a),a+=n.length,n=ge(e.description),i.set(n,a),a+=n.length,a+=2,e.value.forEach((e=>{n=[].concat(t),i.set(n,a),a+=n.length,n=ge(e[0].toString()),i.set(n,a),a+=n.length,n=[0,0],i.set(n,a),a+=n.length,n=me(e[1]),i.set(n,a),a+=n.length}))}})),a+=this.padding,i.set(new Uint8Array(this.arrayBuffer),a),this.arrayBuffer=o,o}getBlob(){return new Blob([this.arrayBuffer],{type:"audio/mpeg"})}getURL(){return this.url||(this.url=URL.createObjectURL(this.getBlob())),this.url}revokeURL(){URL.revokeObjectURL(this.url)}}const xe={async translate(t,e){try{const o=await nt(`${j.yandex}?${new URLSearchParams({text:t,lang:e})}`,{timeout:3e3});if(o instanceof Error)throw o;const i=await o.json();if(200!==i.code)throw i.message;return i.text[0]}catch(e){return console.error("Error translating text:",e),t}},async detect(t){try{const e=await nt(`${W.yandex}?${new URLSearchParams({text:t})}`,{timeout:3e3});if(e instanceof Error)throw e;const o=await e.json();if(200!==o.code)throw o.message;return o.lang??"en"}catch(t){return console.error("Error getting lang from text:",t),"en"}}},Se={async detect(t){try{const e=await nt(W.rustServer,{method:"POST",body:t});if(e instanceof Error)throw e;return await e.text()}catch(t){return console.error("Error getting lang from text:",t),"en"}}},ke={async translate(t,e="auto",o="ru"){try{const i=await nt(j.deepl,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded"},body:new URLSearchParams({text:t,source_lang:e,target_lang:o})});if(i instanceof Error)throw i;const a=await i.json();if(200!==a.code)throw a.message;return a.data}catch(e){return console.error("Error translating text:",e),t}}};const Te=Object.keys(j),Ce=Object.keys(W).map((t=>"rustServer"===t?"rust-server":t));async function Pe(t,e,o,i){if(!window.location.hostname.includes("m.youtube.com")&&t?.getAudioTrack){const e=t.getAudioTrack(),o=e?.getLanguageInfo();if("und"!==o?.id)return E(o.id.split(".")[0])}const a=e?.captions?.playerCaptionsTracklistRenderer?.captionTracks;if(a?.length){const t=a.find((t=>"asr"===t.kind));if(t&&t.languageCode)return E(t.languageCode)}const n=function(t,e){return`${t} ${e?e.split("\n").filter((t=>!ot.test(t))).join(" "):""}`.slice(0,450).replace(/[^\p{L}\s]+|\s+/gu," ").trim()}(o,i);return $.log(`Detecting language text: ${n}`),async function(t){switch(await Y.get("detectService",z)){case"yandex":return await xe.detect(t);case"rust-server":return await Se.detect(t);default:return"en"}}(n)}function Le(){return/^m\.youtube\.com$/.test(window.location.hostname)}function Ae(){return window.location.pathname.startsWith("/shorts/")&&!Le()?document.querySelector("#shorts-player"):document.querySelector("#movie_player")}function Ie(){const t=Ae();return t?.getPlayerResponse?t?.getPlayerResponse?.call()??null:t?.data?.playerResponse??null}function _e(){const t=Ae();return t?.getVideoData?t?.getVideoData?.call()??null:t?.data?.playerResponse?.videoDetails??null}const Ve={isMobile:Le,getPlayer:Ae,getPlayerResponse:Ie,getPlayerData:_e,getVideoVolume:function(){const t=Ae();return t?.getVolume?t.getVolume.call()/100:1},getSubtitles:function(){const t=Ie(),e=t?.captions?.playerCaptionsTracklistRenderer;if(!e)return[];let o=e.captionTracks??[];const i=e.translationLanguages??[],a=Z.lang,n=i.find((t=>t.languageCode===a)),r=o.find((t=>"asr"===t?.kind))?.languageCode??"en";return o=o.reduce(((t,e)=>{if(!("languageCode"in e))return t;const o=e.languageCode?E(e.languageCode):void 0,i=e?.url||e?.baseUrl;if(!o||!i)return t;const s=`${i.startsWith("http")?i:`${window.location.origin}/${i}`}&fmt=json3`;return t.push({source:"youtube",language:o,isAutoGenerated:"asr"===e?.kind,url:s}),n&&e.isTranslatable&&e.languageCode===r&&a!==o&&t.push({source:"youtube",language:a,isAutoGenerated:"asr"===e?.kind,translatedFromLanguage:o,url:`${s}&tlang=${a}`}),t}),[]),$.log("youtube subtitles:",o),o},getVideoData:async function(){const t=Ae(),e=Ie(),o=_e(),{title:i}=o??{},{shortDescription:a,isLive:n,title:r}=e?.videoDetails??{};let s=r?await Pe(t,e,r,a):"en";s=dt.includes(s)?s:"en";const l={isLive:!!n,title:r,localizedTitle:i,description:a,detectedLanguage:s};return $.log("youtube video data:",l),console.log("[VOT] Detected language: ",l.detectedLanguage),l},setVideoVolume:function(t){const e=Ae();if(e?.setVolume)return e.setVolume(Math.round(100*t)),!0},videoSeek:function(t,e){$.log("videoSeek",e);const o=(Ae()?.getProgressState()?.seekableEnd||t.currentTime)-e;t.currentTime=o},isMuted:function(){const t=Ae();return!!t?.isMuted&&t.isMuted.call()},isMusic:function(){const t=_e().author,e=_e().title.toUpperCase(),o=e.match(/\w+/g),i=document.body.querySelector("ytd-watch-flexy")?.playerData;return[e,document.URL,t,i?.microformat?.playerMicroformatRenderer.category,i?.title].some((t=>t?.toUpperCase().includes("MUSIC")))||document.body.querySelector("#upload-info #channel-name .badge-style-type-verified-artist")||t&&/(VEVO|Topic|Records|RECORDS|Recordings|AMV)$/.test(t)||t&&/(MUSIC|ROCK|SOUNDS|SONGS)/.test(t.toUpperCase())||o?.length&&["🎵","♫","SONG","SONGS","SOUNDTRACK","LYRIC","LYRICS","AMBIENT","MIX","VEVO","CLIP","KARAOKE","OPENING","COVER","COVERED","VOCAL","INSTRUMENTAL","ORCHESTRAL","DUBSTEP","DJ","DNB","BASS","BEAT","ALBUM","PLAYLIST","DUBSTEP","CHILL","RELAX","CLASSIC","CINEMATIC"].some((t=>o.includes(t)))||["OFFICIAL VIDEO","OFFICIAL AUDIO","FEAT.","FT.","LIVE RADIO","DANCE VER","HIP HOP","ROCK N ROLL","HOUR VER","HOURS VER","INTRO THEME"].some((t=>e.includes(t)))||o?.length&&["OP","ED","MV","OST","NCS","BGM","EDM","GMV","AMV","MMD","MAD"].some((t=>o.includes(t)))}};function Oe(t){const e=t.startMs+t.durationMs;return t.tokens.reduce(((o,i,a)=>{const n=t.tokens[a+1];let r;o.length>0&&(r=o[o.length-1]);const s=r?.alignRange?.end??0,l=s+i.text.length;if(i.alignRange={start:s,end:l},o.push(i),n){const t=i.startMs+i.durationMs,a=n.startMs?n.startMs-t:e-t;o.push({text:" ",startMs:t,durationMs:a,alignRange:{start:l,end:l+1}})}return o}),[])}function Me(t,e){const o=t.text.split(/([\n \t])/).reduce(((t,o)=>{if(o.length){const i=t[t.length-1]??e,a=i?.alignRange?.end??0,n=a+o.length;t.push({text:o,alignRange:{start:a,end:n}})}return t}),[]),i=Math.floor(t.durationMs/o.length),a=t.startMs+t.durationMs;return o.map(((e,n)=>{const r=n===o.length-1,s=t.startMs+i*n;return{...e,startMs:s,durationMs:r?a-s:i}}))}async function Ee(t){const{source:e,isAutoGenerated:o,format:i,url:a}=t,n=(async()=>{try{const t=await nt(a,{timeout:5e3});if(["vtt","srt"].includes(i)){return Ct(await t.text(),"json")}return await t.json()}catch(t){return console.error("[VOT] Failed to fetch subtitles.",t),{containsTokens:!1,subtitles:[]}}})();let r=await n;return"youtube"===e&&(r=function(t,e=!1){const o={containsTokens:e,subtitles:[]};if("object"!=typeof t||!Array.isArray(t.events))return console.error("[VOT] Failed to format youtube subtitles",t),o;for(let i=0;it.events[i+1].tStartMs&&(n=t.events[i+1].tStartMs-a.tStartMs);const r=[];let s=n;for(let t=0;tt.text)).join(" ");l&&o.subtitles.push({text:l,startMs:a.tStartMs,durationMs:n,...e?{tokens:r}:{},speakerId:"0"})}return o}(r,o)),r.subtitles=function(t,e){const o=[];let i;const{source:a,isAutoGenerated:n}=e;for(let e=0;esetTimeout((()=>e(new Error("Timeout"))),5e3)));try{const e=await Promise.race([t.getSubtitles({videoData:{host:o,url:i,videoId:n,duration:r},requestLang:a}),d]);console.log("[VOT] Subtitles response: ",e),e.waiting&&console.error("[VOT] Failed to get yandex subtitles");let s=e.subtitles??[];return s=s.reduce(((t,e)=>(e.language&&!t.find((t=>"yandex"===t.source&&t.language===e.language&&!t.translatedFromLanguage))&&t.push({source:"yandex",language:e.language,url:e.url}),e.translatedLanguage&&t.push({source:"yandex",language:e.translatedLanguage,translatedFromLanguage:e.language,url:e.translatedUrl}),t)),[]),[...s,...l].sort(((t,e)=>{if(t.source!==e.source)return"yandex"===t.source?-1:1;if(t.language!==e.language&&(t.language===Q||e.language===Q))return t.language===Q?-1:1;if("yandex"===t.source){if(t.translatedFromLanguage!==e.translatedFromLanguage)return t.translatedFromLanguage&&e.translatedFromLanguage?t.translatedFromLanguage===a?-1:1:t.language===e.language?t.translatedFromLanguage?1:-1:t.translatedFromLanguage?-1:1;if(!t.translatedFromLanguage)return t.language===a?-1:1}return"yandex"!==t.source&&t.isAutoGenerated!==e.isAutoGenerated?t.isAutoGenerated?1:-1:0}))}catch(t){throw"Timeout"===t.message?console.error("[VOT] Failed to get yandex subtitles. Reason: timeout"):console.error("[VOT] Error in getSubtitles function",t),t}}class Ne{constructor(t,e,o){this.video=t,this.container="youtube"===o.host&&"mobile"!==o.additionalData?e.parentElement:e,this.site=o,this.subtitlesContainer=this.createSubtitlesContainer(),this.position={left:25,top:75},this.dragging={active:!1,offset:{x:0,y:0}},this.subtitles=null,this.lastContent=null,this.highlightWords=!1,this.fontSize=20,this.opacity=.2,this.maxLength=300,this.maxLengthRegexp=/.{1,300}(?:\s|$)/g,this.bindEvents(),this.updateContainerRect()}createSubtitlesContainer(){const t=document.createElement("vot-block");return t.classList.add("vot-subtitles-widget"),this.container.appendChild(t),t}bindEvents(){this.onMouseDownBound=t=>this.onMouseDown(t),this.onMouseUpBound=()=>this.onMouseUp(),this.onMouseMoveBound=t=>this.onMouseMove(t),this.onTimeUpdateBound=this.debounce((()=>this.update()),100),document.addEventListener("mousedown",this.onMouseDownBound),document.addEventListener("mouseup",this.onMouseUpBound),document.addEventListener("mousemove",this.onMouseMoveBound),this.video?.addEventListener("timeupdate",this.onTimeUpdateBound),this.resizeObserver=new ResizeObserver((()=>this.onResize())),this.resizeObserver.observe(this.container)}onMouseDown(t){if(this.subtitlesContainer.contains(t.target)){const e=this.subtitlesContainer.getBoundingClientRect(),o=this.container.getBoundingClientRect();this.dragging={active:!0,offset:{x:t.clientX-e.left,y:t.clientY-e.top},containerOffset:{x:o.left,y:o.top}}}}onMouseUp(){this.dragging.active=!1}onMouseMove(t){if(this.dragging.active){t.preventDefault();const{width:e,height:o}=this.container.getBoundingClientRect(),i=this.dragging.containerOffset;this.position={left:(t.clientX-this.dragging.offset.x-i.x)/e*100,top:(t.clientY-this.dragging.offset.y-i.y)/o*100},this.applySubtitlePosition()}}onResize(){this.updateContainerRect()}updateContainerRect(){this.containerRect=this.container.getBoundingClientRect(),this.applySubtitlePosition()}applySubtitlePosition(){const{width:t,height:e}=this.containerRect,{offsetWidth:o,offsetHeight:i}=this.subtitlesContainer,a=(t-o)/t*100,n=(e-i)/e*100;this.position.left=Math.max(0,Math.min(this.position.left,a)),this.position.top=Math.max(0,Math.min(this.position.top,n)),this.subtitlesContainer.style.left=`${this.position.left}%`,this.subtitlesContainer.style.top=`${this.position.top}%`}setContent(t){t&&this.video?(this.subtitles=t,this.update()):(this.subtitles=null,ce(null,this.subtitlesContainer))}setMaxLength(t){"number"==typeof t&&t&&(this.maxLength=t,this.maxLengthRegexp=new RegExp(`.{1,${t}}(?:\\s|$)`,"g"),this.update())}setHighlightWords(t){this.highlightWords=Boolean(t),this.update()}setFontSize(t){this.fontSize=t;const e=this.subtitlesContainer?.querySelector(".vot-subtitles");e&&(e.style.fontSize=`${this.fontSize}px`)}setOpacity(t){this.opacity=((100-+t)/100).toFixed(2);const e=this.subtitlesContainer?.querySelector(".vot-subtitles");e&&e.style.setProperty("--vot-subtitles-opacity",this.opacity)}update(){if(!this.video||!this.subtitles)return;const t=1e3*this.video.currentTime,e=this.subtitles.subtitles?.findLast((e=>e.startMs{var t={"./src/styles/main.scss":()=>{GM_addStyle('.vot-button{--vot-helper-theme:var(--vot-theme-rgb,var(--vot-primary-rgb,33,150,243));--vot-helper-ontheme:var(--vot-ontheme-rgb,var(--vot-onprimary-rgb,255,255,255));box-sizing:border-box;vertical-align:middle;text-align:center;text-overflow:ellipsis;min-width:64px;height:36px;color:rgb(var(--vot-helper-ontheme));background-color:rgb(var(--vot-helper-theme));font-family:var(--vot-font-family,"Roboto","Segoe UI",BlinkMacSystemFont,system-ui,-apple-system);cursor:pointer;border:none;border-radius:4px;outline:none;padding:0 16px;font-size:14px;font-weight:500;line-height:36px;transition:box-shadow .2s;display:inline-block;position:relative;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.vot-button[hidden]{display:none!important}.vot-button::-moz-focus-inner{border:none}.vot-button:before,.vot-button:after{content:"";border-radius:inherit;opacity:0;position:absolute;top:0;bottom:0;left:0;right:0}.vot-button:before{background-color:rgb(var(--vot-helper-ontheme));transition:opacity .2s}.vot-button:after{background:radial-gradient(circle,currentColor 1%,#0000 1%) 50%/10000% 10000% no-repeat;transition:opacity 1s,background-size .5s}.vot-button:hover{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.vot-button:hover:before{opacity:.08}.vot-button:active{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.vot-button:active:after{opacity:.32;background-size:100% 100%;transition:background-size}.vot-button[disabled=true]{background-color:rgba(var(--vot-onsurface-rgb,0,0,0),.12);color:rgba(var(--vot-onsurface-rgb,0,0,0),.38);box-shadow:none;cursor:initial}.vot-button[disabled=true]:before,.vot-button[disabled=true]:after{opacity:0}.vot-outlined-button{--vot-helper-theme:var(--vot-theme-rgb,var(--vot-primary-rgb,33,150,243));box-sizing:border-box;border:1px solid;border-color:rgba(var(--vot-onsurface-rgb,0,0,0),.24);vertical-align:middle;text-align:center;text-overflow:ellipsis;min-width:64px;height:36px;color:rgb(var(--vot-helper-theme));font-family:var(--vot-font-family,"Roboto","Segoe UI",BlinkMacSystemFont,system-ui,-apple-system);cursor:pointer;background-color:#0000;border-radius:4px;outline:none;margin:0;padding:0 16px;font-size:14px;font-weight:500;line-height:34px;display:inline-block;position:relative}.vot-outlined-button[hidden]{display:none!important}.vot-outlined-button::-moz-focus-inner{border:none}.vot-outlined-button:before,.vot-outlined-button:after{content:"";opacity:0;border-radius:3px;position:absolute;top:0;bottom:0;left:0;right:0}.vot-outlined-button:before{background-color:rgb(var(--vot-helper-theme));transition:opacity .2s}.vot-outlined-button:after{background:radial-gradient(circle,currentColor 1%,#0000 1%) 50%/10000% 10000% no-repeat;transition:opacity 1s,background-size .5s}.vot-outlined-button:hover:before{opacity:.04}.vot-outlined-button:active:after{opacity:.16;background-size:100% 100%;transition:background-size}.vot-outlined-button[disabled=true]{color:rgba(var(--vot-onsurface-rgb,0,0,0),.38);cursor:initial;background-color:#0000}.vot-outlined-button[disabled=true]:before,.vot-outlined-button[disabled=true]:after{opacity:0}.vot-text-button{--vot-helper-theme:var(--vot-theme-rgb,var(--vot-primary-rgb,33,150,243));box-sizing:border-box;vertical-align:middle;text-align:center;text-overflow:ellipsis;min-width:64px;height:36px;color:rgb(var(--vot-helper-theme));font-family:var(--vot-font-family,"Roboto","Segoe UI",BlinkMacSystemFont,system-ui,-apple-system);cursor:pointer;background-color:#0000;border:none;border-radius:4px;outline:none;margin:0;padding:0 8px;font-size:14px;font-weight:500;line-height:36px;display:inline-block;position:relative}.vot-text-button[hidden]{display:none!important}.vot-text-button::-moz-focus-inner{border:none}.vot-text-button:before,.vot-text-button:after{content:"";border-radius:inherit;opacity:0;position:absolute;top:0;bottom:0;left:0;right:0}.vot-text-button:before{background-color:rgb(var(--vot-helper-theme));transition:opacity .2s}.vot-text-button:after{background:radial-gradient(circle,currentColor 1%,#0000 1%) 50%/10000% 10000% no-repeat;transition:opacity 1s,background-size .5s}.vot-text-button:hover:before{opacity:.04}.vot-text-button:active:after{opacity:.16;background-size:100% 100%;transition:background-size}.vot-text-button[disabled=true]{color:rgba(var(--vot-onsurface-rgb,0,0,0),.38);cursor:initial;background-color:#0000}.vot-text-button[disabled=true]:before,.vot-text-button[disabled=true]:after{opacity:0}.vot-icon-button{--vot-helper-onsurface:rgba(var(--vot-onsurface-rgb,0,0,0),.87);box-sizing:border-box;vertical-align:middle;text-align:center;text-overflow:ellipsis;width:36px;height:36px;fill:var(--vot-helper-onsurface);color:var(--vot-helper-onsurface);font-family:var(--vot-font-family,"Roboto","Segoe UI",BlinkMacSystemFont,system-ui,-apple-system);cursor:pointer;background-color:#0000;border:none;border-radius:50%;outline:none;margin:0;padding:0;font-size:14px;font-weight:500;line-height:36px;display:inline-block;position:relative}.vot-icon-button[hidden]{display:none!important}.vot-icon-button::-moz-focus-inner{border:none}.vot-icon-button:before,.vot-icon-button:after{content:"";border-radius:inherit;opacity:0;position:absolute;top:0;bottom:0;left:0;right:0}.vot-icon-button:before{background-color:var(--vot-helper-onsurface);transition:opacity .2s}.vot-icon-button:after{background:radial-gradient(circle,currentColor 1%,#0000 1%) 50%/10000% 10000% no-repeat;transition:opacity .3s,background-size .4s}.vot-icon-button:hover:before{opacity:.04}.vot-icon-button:active:after{opacity:.32;background-size:100% 100%;transition:background-size,opacity}.vot-icon-button[disabled=true]{color:rgba(var(--vot-onsurface-rgb,0,0,0),.38);fill:rgba(var(--vot-onsurface-rgb,0,0,0),.38);cursor:initial;background-color:#0000}.vot-icon-button[disabled=true]:before,.vot-icon-button[disabled=true]:after{opacity:0}.vot-textfield{display:inline-block;--vot-helper-theme:rgb(var(--vot-theme-rgb,var(--vot-primary-rgb,33,150,243)))!important;--vot-helper-safari1:rgba(var(--vot-onsurface-rgb,0,0,0),.38)!important;--vot-helper-safari2:rgba(var(--vot-onsurface-rgb,0,0,0),.6)!important;--vot-helper-safari3:rgba(var(--vot-onsurface-rgb,0,0,0),.87)!important;font-family:var(--vot-font-family,"Roboto","Segoe UI",BlinkMacSystemFont,system-ui,-apple-system)!important;text-align:start!important;padding-top:6px!important;font-size:16px!important;line-height:1.5!important;position:relative!important}.vot-textfield[hidden]{display:none!important}.vot-textfield>input,.vot-textfield>textarea{box-sizing:border-box!important;border-style:solid!important;border-width:1px!important;border-color:transparent var(--vot-helper-safari2)var(--vot-helper-safari2)!important;width:100%!important;height:inherit!important;color:rgba(var(--vot-onsurface-rgb,0,0,0),.87)!important;-webkit-text-fill-color:currentColor!important;font-family:inherit!important;font-size:inherit!important;line-height:inherit!important;caret-color:var(--vot-helper-theme)!important;background-color:#0000!important;border-radius:4px!important;margin:0!important;padding:15px 13px!important;transition:border .2s,box-shadow .2s!important;box-shadow:inset 1px 0 #0000,inset -1px 0 #0000,inset 0 -1px #0000!important}.vot-textfield>input:not(:focus):not(.vot-show-placeholer)::-moz-placeholder{color:#0000!important}.vot-textfield>textarea:not(:focus):not(.vot-show-placeholer)::-moz-placeholder{color:#0000!important}.vot-textfield>input:not(:focus):not(.vot-show-placeholer)::-moz-placeholder{color:#0000!important}.vot-textfield>textarea:not(:focus):not(.vot-show-placeholer)::-moz-placeholder{color:#0000!important}.vot-textfield>input:not(:focus):not(.vot-show-placeholer)::-webkit-input-placeholder{color:#0000!important}.vot-textfield>textarea:not(:focus):not(.vot-show-placeholer)::-webkit-input-placeholder{color:#0000!important}.vot-textfield>input:not(:focus):placeholder-shown,.vot-textfield>textarea:not(:focus):placeholder-shown{border-top-color:var(--vot-helper-safari2)!important}.vot-textfield>input+span,.vot-textfield>textarea+span{width:100%!important;max-height:100%!important;color:rgba(var(--vot-onsurface-rgb,0,0,0),.6)!important;cursor:text!important;pointer-events:none!important;font-size:75%!important;line-height:15px!important;transition:color .2s,font-size .2s,line-height .2s!important;display:flex!important;position:absolute!important;top:0!important;left:0!important}.vot-textfield>input:not(:focus):placeholder-shown+span,.vot-textfield>textarea:not(:focus):placeholder-shown+span{font-size:inherit!important;line-height:68px!important}.vot-textfield>input+span:before,.vot-textfield>input+span:after,.vot-textfield>textarea+span:before,.vot-textfield>textarea+span:after{content:""!important;box-sizing:border-box!important;border-top:solid 1px var(--vot-helper-safari2)!important;pointer-events:none!important;min-width:10px!important;height:8px!important;margin-top:6px!important;transition:border .2s,box-shadow .2s!important;display:block!important;box-shadow:inset 0 1px #0000!important}.vot-textfield>input+span:before,.vot-textfield>textarea+span:before{border-left:1px solid #0000!important;border-radius:4px 0!important;margin-right:4px!important}.vot-textfield>input+span:after,.vot-textfield>textarea+span:after{border-right:1px solid #0000!important;border-radius:0 4px!important;flex-grow:1!important;margin-left:4px!important}.vot-textfield>input.vot-show-placeholer+span:before,.vot-textfield>textarea.vot-show-placeholer+span:before{margin-right:0!important}.vot-textfield>input.vot-show-placeholer+span:after,.vot-textfield>textarea.vot-show-placeholer+span:after{margin-left:0!important}.vot-textfield>input:not(:focus):placeholder-shown+span:before,.vot-textfield>input:not(:focus):placeholder-shown+span:after,.vot-textfield>textarea:not(:focus):placeholder-shown+span:before,.vot-textfield>textarea:not(:focus):placeholder-shown+span:after{border-top-color:#0000!important}.vot-textfield:hover>input:not(:disabled),.vot-textfield:hover>textarea:not(:disabled){border-color:transparent var(--vot-helper-safari3)var(--vot-helper-safari3)!important}.vot-textfield:hover>input:not(:disabled)+span:before,.vot-textfield:hover>input:not(:disabled)+span:after,.vot-textfield:hover>textarea:not(:disabled)+span:before,.vot-textfield:hover>textarea:not(:disabled)+span:after{border-top-color:var(--vot-helper-safari3)!important}.vot-textfield:hover>input:not(:disabled):not(:focus):placeholder-shown,.vot-textfield:hover>textarea:not(:disabled):not(:focus):placeholder-shown{border-color:var(--vot-helper-safari3)!important}.vot-textfield>input:focus,.vot-textfield>textarea:focus{border-color:transparent var(--vot-helper-theme)var(--vot-helper-theme)!important;box-shadow:inset 1px 0 var(--vot-helper-theme),inset -1px 0 var(--vot-helper-theme),inset 0 -1px var(--vot-helper-theme)!important;outline:none!important}.vot-textfield>input:focus+span,.vot-textfield>textarea:focus+span{color:var(--vot-helper-theme)!important}.vot-textfield>input:focus+span:before,.vot-textfield>input:focus+span:after,.vot-textfield>textarea:focus+span:before,.vot-textfield>textarea:focus+span:after{border-top-color:var(--vot-helper-theme)!important;box-shadow:inset 0 1px var(--vot-helper-theme)!important}.vot-textfield>input:disabled,.vot-textfield>input:disabled+span,.vot-textfield>textarea:disabled,.vot-textfield>textarea:disabled+span{border-color:transparent var(--vot-helper-safari1)var(--vot-helper-safari1)!important;color:rgba(var(--vot-onsurface-rgb,0,0,0),.38)!important;pointer-events:none!important}.vot-textfield>input:disabled+span:before,.vot-textfield>input:disabled+span:after,.vot-textfield>textarea:disabled+span:before,.vot-textfield>textarea:disabled+span:after,.vot-textfield>input:disabled:placeholder-shown,.vot-textfield>input:disabled:placeholder-shown+span,.vot-textfield>textarea:disabled:placeholder-shown,.vot-textfield>textarea:disabled:placeholder-shown+span{border-top-color:var(--vot-helper-safari1)!important}.vot-textfield>input:disabled:placeholder-shown+span:before,.vot-textfield>input:disabled:placeholder-shown+span:after,.vot-textfield>textarea:disabled:placeholder-shown+span:before,.vot-textfield>textarea:disabled:placeholder-shown+span:after{border-top-color:#0000!important}@media not all and (-webkit-min-device-pixel-ratio:.0000264583),not all and (min-resolution:.001dpcm){@supports ((-webkit-appearance:none)){.vot-textfield>input,.vot-textfield>input+span,.vot-textfield>textarea,.vot-textfield>textarea+span,.vot-textfield>input+span:before,.vot-textfield>input+span:after,.vot-textfield>textarea+span:before,.vot-textfield>textarea+span:after{transition-duration:.1s!important}}}.vot-checkbox{--vot-helper-theme:var(--vot-theme-rgb,var(--vot-primary-rgb,33,150,243));--vot-helper-ontheme:var(--vot-ontheme-rgb,var(--vot-onprimary-rgb,255,255,255));z-index:0;color:rgba(var(--vot-onsurface-rgb,0,0,0),.87);font-family:var(--vot-font-family,"Roboto","Segoe UI",BlinkMacSystemFont,system-ui,-apple-system);text-align:start;font-size:16px;line-height:1.5;display:inline-block;position:relative}.vot-checkbox-sub{padding-left:16px}.vot-checkbox[hidden]{display:none!important}.vot-checkbox>input{-webkit-appearance:none;appearance:none;z-index:10000;box-sizing:border-box;border:2px solid;border-color:rgba(var(--vot-onsurface-rgb,0,0,0),.6);cursor:pointer;background:0 0;border-radius:2px;outline:none;width:18px;height:18px;margin:3px 1px;padding:0;transition:border-color .2s,background-color .2s;display:block;position:absolute}.vot-checkbox>input+span{box-sizing:border-box;width:inherit;cursor:pointer;padding-left:30px;font-weight:400;display:inline-block;position:relative}.vot-checkbox>input+span:before{content:"";background-color:rgb(var(--vot-onsurface-rgb,0,0,0));opacity:0;pointer-events:none;border-radius:50%;width:40px;height:40px;transition:opacity .3s,transform .2s;display:block;position:absolute;top:-8px;left:-10px;transform:scale(1)}.vot-checkbox>input+span:after{content:"";z-index:10000;pointer-events:none;border:0 solid #0000;border-width:0 0 2px 2px;width:10px;height:5px;transition:border-color .2s;display:block;position:absolute;top:3px;left:1px;transform:translate(3px,4px)rotate(-45deg);box-sizing:content-box!important}.vot-checkbox>input:checked,.vot-checkbox>input:indeterminate{border-color:rgb(var(--vot-helper-theme));background-color:rgb(var(--vot-helper-theme))}.vot-checkbox>input:checked+span:before,.vot-checkbox>input:indeterminate+span:before{background-color:rgb(var(--vot-helper-theme))}.vot-checkbox>input:checked+span:after,.vot-checkbox>input:indeterminate+span:after{border-color:rgb(var(--vot-helper-ontheme,255,255,255))}.vot-checkbox>input:indeterminate+span:after{border-left-width:0;transform:translate(4px,3px)}.vot-checkbox:hover>input+span:before{opacity:.04}.vot-checkbox:active>input,.vot-checkbox:active:hover>input:not(:disabled){border-color:rgb(var(--vot-helper-theme))}.vot-checkbox:active>input:checked{background-color:rgba(var(--vot-onsurface-rgb,0,0,0),.6);border-color:#0000}.vot-checkbox:active>input+span:before{opacity:1;transition:transform,opacity;transform:scale(0)}.vot-checkbox>input:disabled{border-color:rgba(var(--vot-onsurface-rgb,0,0,0),.38);cursor:initial}.vot-checkbox>input:disabled:checked,.vot-checkbox>input:disabled:indeterminate{background-color:rgba(var(--vot-onsurface-rgb,0,0,0),.38);border-color:#0000}.vot-checkbox>input:disabled+span{color:rgba(var(--vot-onsurface-rgb,0,0,0),.38);cursor:initial}.vot-checkbox>input:disabled+span:before{opacity:0;transform:scale(0)}.vot-slider{display:inline-block;--vot-safari-helper1:rgba(var(--vot-primary-rgb,33,150,243),.04)!important;--vot-safari-helper2:rgba(var(--vot-primary-rgb,33,150,243),.12)!important;--vot-safari-helper3:rgba(var(--vot-primary-rgb,33,150,243),.16)!important;--vot-safari-helper4:rgba(var(--vot-primary-rgb,33,150,243),.24)!important;width:100%!important;color:rgba(var(--vot-onsurface-rgb,0,0,0),.87)!important;font-family:var(--vot-font,"Roboto","Segoe UI",BlinkMacSystemFont,system-ui,-apple-system)!important;text-align:start!important;font-size:16px!important;line-height:1.5!important}.vot-slider[hidden]{display:none!important}.vot-slider>input{-webkit-appearance:none!important;appearance:none!important;cursor:pointer!important;background-color:#0000!important;border:none!important;width:100%!important;height:36px!important;margin:0 0 -36px!important;padding:0!important;display:block!important;position:relative!important;top:24px!important}.vot-slider>input:last-child{margin:0!important;position:static!important}.vot-slider>input:before{content:""!important;width:calc(100%*var(--vot-progress,0))!important;background:rgb(var(--vot-primary-rgb,33,150,243))!important;height:2px!important;display:block!important;position:absolute!important;top:calc(50% - 1px)!important}.vot-slider>input:disabled{cursor:default!important;opacity:.38!important}.vot-slider>input:disabled+span{color:rgba(var(--vot-onsurface-rgb,0,0,0),.38)!important}.vot-slider>input:disabled::-webkit-slider-runnable-track{background-color:rgba(var(--vot-onsurface-rgb,0,0,0),.38)!important}.vot-slider>input:disabled::-moz-range-track{background-color:rgba(var(--vot-onsurface-rgb,0,0,0),.38)!important}.vot-slider>input:disabled::-ms-fill-lower{background-color:rgba(var(--vot-onsurface-rgb,0,0,0),.38)!important}.vot-slider>input:disabled::-ms-fill-upper{background-color:rgba(var(--vot-onsurface-rgb,0,0,0),.38)!important}.vot-slider>input:disabled::-moz-range-thumb{background-color:rgb(var(--vot-onsurface-rgb,0,0,0))!important;box-shadow:0 0 0 1px rgb(var(--vot-surface-rgb,255,255,255))!important;transform:scale(4)!important}.vot-slider>input:disabled::-ms-thumb{background-color:rgb(var(--vot-onsurface-rgb,0,0,0))!important;box-shadow:0 0 0 1px rgb(var(--vot-surface-rgb,255,255,255))!important;transform:scale(4)!important}.vot-slider>input:disabled::-webkit-slider-thumb{background-color:rgb(var(--vot-onsurface-rgb,0,0,0))!important;box-shadow:0 0 0 1px rgb(var(--vot-surface-rgb,255,255,255))!important;transform:scale(4)!important}.vot-slider>input:disabled::-ms-fill-upper{opacity:.38!important}.vot-slider>input:disabled::-moz-range-progress{background-color:rgba(var(--vot-onsurface-rgb,0,0,0),.87)!important}.vot-slider>input:disabled:-webkit-slider-thumb{color:rgb(var(--vot-surface-rgb,255,255,255))!important}.vot-slider>input:active::-webkit-slider-thumb{box-shadow:0 0 0 2px var(--vot-safari-helper4)!important}.vot-slider>input:active::-moz-range-thumb{box-shadow:0 0 0 2px rgba(var(--vot-primary-rgb,33,150,243),.24)!important}.vot-slider>input:active::-ms-thumb{box-shadow:0 0 0 2px rgba(var(--vot-primary-rgb,33,150,243),.24)!important}.vot-slider>input:focus{outline:none!important}.vot-slider>input::-webkit-slider-runnable-track{background-color:rgba(var(--vot-primary-rgb,33,150,243),.24)!important;border-radius:1px!important;width:100%!important;height:2px!important;margin:17px 0!important}.vot-slider>input::-moz-range-track{background-color:rgba(var(--vot-primary-rgb,33,150,243),.24)!important;border-radius:1px!important;width:100%!important;height:2px!important;margin:17px 0!important}.vot-slider>input::-ms-track{box-sizing:border-box!important;background-color:#0000!important;border:none!important;border-radius:1px!important;width:100%!important;height:2px!important;margin:17px 0!important;padding:0 17px!important}.vot-slider>input::-webkit-slider-thumb{-webkit-appearance:none!important;appearance:none!important;background-color:rgb(var(--vot-primary-rgb,33,150,243))!important;border:none!important;border-radius:50%!important;width:2px!important;height:2px!important;transition:box-shadow .2s!important;transform:scale(6)!important}.vot-slider>input::-moz-range-thumb{-webkit-appearance:none!important;appearance:none!important;background-color:rgb(var(--vot-primary-rgb,33,150,243))!important;border:none!important;border-radius:50%!important;width:2px!important;height:2px!important;transition:box-shadow .2s!important;transform:scale(6)!important}.vot-slider>input::-ms-thumb{-webkit-appearance:none!important;appearance:none!important;background-color:rgb(var(--vot-primary-rgb,33,150,243))!important;border:none!important;border-radius:50%!important;width:2px!important;height:2px!important;transition:box-shadow .2s!important;transform:scale(6)!important}.vot-slider>input::-webkit-slider-thumb{-webkit-appearance:none!important;margin:0!important}.vot-slider>input::-moz-range-thumb{-moz-appearance:none!important}.vot-slider>input::-ms-thumb{margin:0 17px!important}.vot-slider>input::-moz-range-progress{background-color:rgb(var(--vot-primary-rgb,33,150,243))!important;border-radius:1px!important;height:2px!important}.vot-slider>input::-ms-fill-lower{background-color:rgb(var(--vot-primary-rgb,33,150,243))!important;border-radius:1px!important;height:2px!important}.vot-slider>input::-ms-fill-upper{background-color:rgb(var(--vot-primary-rgb,33,150,243))!important;border-radius:1px!important;height:2px!important}.vot-slider>input::-moz-focus-outer{border:none!important}.vot-slider>span{margin-bottom:36px!important;display:inline-block!important}.vot-slider:hover>input::-webkit-slider-thumb{box-shadow:0 0 0 2px var(--vot-safari-helper1)!important}.vot-slider:hover>input::-ms-thumb{box-shadow:0 0 0 2px rgba(var(--vot-primary-rgb,33,150,243),.04)!important}.vot-slider:hover>input:hover::-moz-range-thumb{box-shadow:0 0 0 2px rgba(var(--vot-primary-rgb,33,150,243),.04)!important}.vot-select{font-family:var(--vot-font-family,"Roboto","Segoe UI",BlinkMacSystemFont,system-ui,-apple-system);text-align:start;color:var(--vot-helper-theme);fill:var(--vot-helper-theme);justify-content:space-between;align-items:center;font-size:14px;font-weight:400;line-height:1.5;display:flex;--vot-helper-theme-rgb:var(--vot-onsurface-rgb,0,0,0)!important;--vot-helper-theme:rgba(var(--vot-helper-theme-rgb),.87)!important;--vot-helper-safari1:rgba(var(--vot-onsurface-rgb,0,0,0),.6)!important;--vot-helper-safari2:rgba(var(--vot-onsurface-rgb,0,0,0),.87)!important}.vot-select[hidden]{display:none!important}.vot-select-label{font-size:16px}.vot-select-outer{cursor:pointer;justify-content:space-between;align-items:center;width:120px;max-width:120px;padding:0 5px;display:flex;border-style:solid!important;border-width:1px!important;border-color:var(--vot-helper-safari1)!important;border-radius:4px!important;transition:border .2s!important}.vot-select-outer:hover{border-color:var(--vot-helper-safari2)!important}.vot-select-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.vot-select-arrow-icon{justify-content:center;align-items:center;width:20px;height:32px;display:flex}.vot-select-content-list{flex-direction:column;display:flex}.vot-select-content-list .vot-select-content-item{cursor:pointer;border-radius:8px;padding:5px 10px}.vot-select-content-list .vot-select-content-item:not([inert]):hover{background-color:#2a2c31}.vot-select-content-list .vot-select-content-item[data-vot-selected=true]{color:rgb(var(--vot-primary-rgb,33,150,243));background-color:rgba(var(--vot-primary-rgb,33,150,243),.2)}.vot-select-content-list .vot-select-content-item[data-vot-selected=true]:hover{background-color:rgba(var(--vot-primary-rgb,33,150,243),.1)!important}.vot-select-content-list .vot-select-content-item[data-vot-disabled=true]{cursor:default}.vot-select-content-list .vot-select-content-item[hidden]{display:none!important}.vot-header{color:rgba(var(--vot-helper-onsurface-rgb),.87);font-family:var(--vot-font-family,"Roboto","Segoe UI",BlinkMacSystemFont,system-ui,-apple-system);text-align:start;font-weight:700;line-height:1.5}.vot-header[hidden]{display:none!important}.vot-header:not(:first-child){padding-top:8px}.vot-header-level-1{font-size:2em}.vot-header-level-2{font-size:1.5em}.vot-header-level-3{font-size:1.17em}.vot-header-level-4{font-size:1em}.vot-header-level-5{font-size:.83em}.vot-header-level-6{font-size:.67em}.vot-info{color:rgba(var(--vot-helper-onsurface-rgb),.87);font-family:var(--vot-font-family,"Roboto","Segoe UI",BlinkMacSystemFont,system-ui,-apple-system);text-align:start;-webkit-user-select:text;user-select:text;font-size:16px;line-height:1.5;display:flex}.vot-info[hidden]{display:none!important}.vot-info>:not(:first-child){color:rgba(var(--vot-helper-onsurface-rgb),.5);flex:1;margin-left:8px}.vot-details{color:rgba(var(--vot-helper-onsurface-rgb),.87);font-family:var(--vot-font-family,"Roboto","Segoe UI",BlinkMacSystemFont,system-ui,-apple-system);text-align:start;cursor:pointer;border-radius:.5em;justify-content:space-between;align-items:center;margin:0 -.5em;padding:.5em;font-size:16px;line-height:1.5;transition:background .5s;display:flex}.vot-details[hidden]{display:none!important}.vot-details-arrow-icon{width:20px;height:32px;fill:rgba(var(--vot-helper-onsurface-rgb),.87);justify-content:center;align-items:center;display:flex;transform:scale(1.25)rotate(-90deg)}.vot-details:hover{background:rgba(var(--vot-onsurface-rgb,0,0,0),.04)}.vot-lang-select{--vot-helper-theme-rgb:var(--vot-onsurface-rgb,0,0,0);--vot-helper-theme:rgba(var(--vot-helper-theme-rgb),.87);color:var(--vot-helper-theme);fill:var(--vot-helper-theme);justify-content:space-between;align-items:center;display:flex}.vot-lang-select[hidden]{display:none!important}.vot-lang-select-icon{justify-content:center;align-items:center;width:32px;height:32px;display:flex}.vot-segmented-button{--vot-helper-theme-rgb:var(--vot-onsurface-rgb,0,0,0);--vot-helper-theme:rgba(var(--vot-helper-theme-rgb),.87);-webkit-user-select:none;user-select:none;background:rgb(var(--vot-surface-rgb,255,255,255));max-width:100vw;height:32px;color:var(--vot-helper-theme);fill:var(--vot-helper-theme);font-family:var(--vot-font-family,"Roboto","Segoe UI",BlinkMacSystemFont,system-ui,-apple-system);cursor:default;z-index:2147483647;border-radius:4px;align-items:center;font-size:16px;line-height:1.5;transition:opacity .5s;display:flex;position:absolute;top:5rem;left:50%;overflow:hidden;transform:translate(-50%)}.vot-segmented-button[hidden]{display:none!important}.vot-segmented-button *{box-sizing:border-box!important}.vot-segmented-button .vot-separator{background:rgba(var(--vot-helper-theme-rgb),.1);width:1px;height:50%}.vot-segmented-button .vot-separator[hidden]{display:none!important}.vot-segmented-button .vot-segment,.vot-segmented-button .vot-segment-only-icon{height:100%;color:inherit;background-color:#0000;border:none;justify-content:center;align-items:center;padding:0 8px;transition:background-color .1s ease-in-out;display:flex;position:relative;overflow:hidden}.vot-segmented-button .vot-segment[hidden],.vot-segmented-button [hidden].vot-segment-only-icon{display:none!important}.vot-segmented-button .vot-segment:before,.vot-segmented-button .vot-segment-only-icon:before,.vot-segmented-button .vot-segment:after,.vot-segmented-button .vot-segment-only-icon:after{content:"";border-radius:inherit;opacity:0;position:absolute;top:0;bottom:0;left:0;right:0}.vot-segmented-button .vot-segment:before,.vot-segmented-button .vot-segment-only-icon:before{background-color:rgb(var(--vot-helper-theme-rgb));transition:opacity .2s}.vot-segmented-button .vot-segment:after,.vot-segmented-button .vot-segment-only-icon:after{background:radial-gradient(circle,currentColor 1%,#0000 1%) 50%/10000% 10000% no-repeat;transition:opacity 1s,background-size .5s}.vot-segmented-button .vot-segment:hover:before,.vot-segmented-button .vot-segment-only-icon:hover:before{opacity:.04}.vot-segmented-button .vot-segment:active:after,.vot-segmented-button .vot-segment-only-icon:active:after{opacity:.16;background-size:100% 100%;transition:background-size}.vot-segmented-button .vot-segment-only-icon{min-width:32px;padding:0}.vot-segmented-button .vot-segment-label{white-space:nowrap;color:inherit;margin-left:8px;font-weight:400}.vot-segmented-button[data-status=success] .vot-translate-button{color:rgb(var(--vot-primary-rgb,33,150,243));fill:rgb(var(--vot-primary-rgb,33,150,243))}.vot-segmented-button[data-status=error] .vot-translate-button{color:#f28b82;fill:#f28b82}.vot-segmented-button[data-loading=true] #vot-loading-icon{display:block!important}.vot-segmented-button[data-loading=true] #vot-translate-icon{display:none!important}.vot-segmented-button[data-direction=column]{flex-direction:column;height:fit-content}.vot-segmented-button[data-direction=column] .vot-segment-label{display:none}.vot-segmented-button[data-direction=column]>.vot-segment-only-icon,.vot-segmented-button[data-direction=column]>.vot-segment{padding:8px}.vot-segmented-button[data-direction=column] .vot-separator{width:50%;height:1px}.vot-segmented-button[data-position=left]{top:12.5vh;left:50px}.vot-segmented-button[data-position=right]{top:12.5vh;left:auto;right:0}.vot-segmented-button svg{width:24px}.vot-menu{--vot-helper-surface-rgb:var(--vot-surface-rgb,255,255,255);--vot-helper-surface:rgb(var(--vot-helper-surface-rgb));--vot-helper-onsurface-rgb:var(--vot-onsurface-rgb,0,0,0);--vot-helper-onsurface:rgba(var(--vot-helper-onsurface-rgb),.87);-webkit-user-select:none;user-select:none;background-color:var(--vot-helper-surface);color:var(--vot-helper-onsurface);font-family:var(--vot-font-family,"Roboto","Segoe UI",BlinkMacSystemFont,system-ui,-apple-system);cursor:default;z-index:2147483647;visibility:visible;opacity:1;transform-origin:top;border-radius:8px;min-width:300px;font-size:16px;line-height:1.5;transition:opacity .3s,transform .1s;position:absolute;top:calc(5rem + 48px);left:50%;overflow:hidden;transform:translate(-50%)scale(1)}.vot-menu *{box-sizing:border-box!important}.vot-menu[hidden]{pointer-events:none;visibility:hidden;opacity:0;transform:translate(-50%)scale(0);display:block!important}.vot-menu-content-wrapper{min-height:100px;max-height:calc(var(--vot-container-height,75vh) - (5rem + 32px + 16px)*2);flex-direction:column;display:flex;overflow:auto}.vot-menu-header-container{flex-shrink:0;align-items:flex-start;min-height:31px;display:flex}.vot-menu-header-container:empty{padding:0 0 16px}.vot-menu-header-container>.vot-icon-button{margin-inline-end:4px;margin-top:4px}.vot-menu-title-container{font-size:inherit;font-weight:inherit;text-align:start;outline:0;flex:1;margin:0;display:flex}.vot-menu-title{padding-bottom:16px;padding-inline-start:16px;padding-inline-end:16px;flex:1;padding-top:16px;font-size:16px;font-weight:400;line-height:1}.vot-menu-body-container{box-sizing:border-box;overscroll-behavior:contain;flex-direction:column;gap:8px;min-height:1.375rem;padding:0 16px;display:flex;overflow:auto;scrollbar-color:rgba(var(--vot-helper-onsurface-rgb),.1)var(--vot-helper-surface)!important}.vot-menu-body-container::-webkit-scrollbar{background:var(--vot-helper-surface)!important;width:12px!important;height:12px!important}.vot-menu-body-container::-webkit-scrollbar-track{background:var(--vot-helper-surface)!important;width:12px!important;height:12px!important}.vot-menu-body-container::-webkit-scrollbar-thumb{background:rgba(var(--vot-helper-onsurface-rgb),.1)!important;border:5px solid var(--vot-helper-surface)!important;-webkit-border-radius:1ex!important}.vot-menu-body-container::-webkit-scrollbar-thumb:hover{border:3px solid var(--vot-helper-surface)!important}.vot-menu-body-container::-webkit-scrollbar-corner{background:var(--vot-helper-surface)!important}.vot-menu-footer-container{padding-bottom:16px;padding-inline-start:16px;padding-inline-end:16px;flex-shrink:0;justify-content:flex-end;padding-top:16px;display:flex}.vot-menu-footer-container:empty{padding:16px 0 0}.vot-menu[data-position=left]{top:12.5vh;left:240px}.vot-menu[data-position=right]{top:12.5vh;left:auto;right:-80px}.vot-dialog{--vot-helper-surface-rgb:var(--vot-surface-rgb,255,255,255);--vot-helper-surface:rgb(var(--vot-helper-surface-rgb));--vot-helper-onsurface-rgb:var(--vot-onsurface-rgb,0,0,0);--vot-helper-onsurface:rgba(var(--vot-helper-onsurface-rgb),.87);max-width:initial;max-height:initial;width:min(var(--vot-dialog-width,512px),100%);top:50%;bottom:50%;background-color:var(--vot-helper-surface);height:fit-content;color:var(--vot-helper-onsurface);font-family:var(--vot-font-family,"Roboto","Segoe UI",BlinkMacSystemFont,system-ui,-apple-system);-webkit-user-select:none;user-select:none;visibility:visible;opacity:1;transform-origin:50%;border-radius:8px;margin:auto;padding:0;font-size:16px;line-height:1.5;transition:opacity .3s,transform .1s;display:block;position:fixed;top:0;bottom:0;left:0;right:0;overflow-x:auto;overflow-y:hidden;transform:scale(1);box-shadow:0 0 16px #0000001f,0 16px 16px #0000003d}[hidden]>.vot-dialog{pointer-events:none;opacity:0;transition:opacity .1s,transform .2s;transform:scale(.5)}.vot-dialog-container{visibility:visible;z-index:2147483647;position:absolute}.vot-dialog-container[hidden]{pointer-events:none;visibility:hidden;display:block!important}.vot-dialog-container *{box-sizing:border-box!important}.vot-dialog-backdrop{opacity:1;background-color:#0009;transition:opacity .3s;position:fixed;top:0;bottom:0;left:0;right:0}[hidden]>.vot-dialog-backdrop{pointer-events:none;opacity:0}.vot-dialog-content-wrapper{flex-direction:column;max-height:75vh;display:flex;overflow:auto}.vot-dialog-header-container{flex-shrink:0;align-items:flex-start;min-height:31px;display:flex}.vot-dialog-header-container:empty{padding:0 0 20px}.vot-dialog-header-container>.vot-icon-button{margin-inline-end:4px;margin-top:4px}.vot-dialog-title-container{font-size:inherit;font-weight:inherit;outline:0;flex:1;margin:0;display:flex}.vot-dialog-title{padding-bottom:16px;padding-inline-start:20px;padding-inline-end:20px;flex:1;padding-top:20px;font-size:115.385%;font-weight:700;line-height:1}.vot-dialog-body-container{box-sizing:border-box;overscroll-behavior:contain;flex-direction:column;gap:16px;min-height:1.375rem;padding:0 20px;display:flex;overflow:auto;scrollbar-color:rgba(var(--vot-helper-onsurface-rgb),.1)var(--vot-helper-surface)!important}.vot-dialog-body-container::-webkit-scrollbar{background:var(--vot-helper-surface)!important;width:12px!important;height:12px!important}.vot-dialog-body-container::-webkit-scrollbar-track{background:var(--vot-helper-surface)!important;width:12px!important;height:12px!important}.vot-dialog-body-container::-webkit-scrollbar-thumb{background:rgba(var(--vot-helper-onsurface-rgb),.1)!important;border:5px solid var(--vot-helper-surface)!important;-webkit-border-radius:1ex!important}.vot-dialog-body-container::-webkit-scrollbar-thumb:hover{border:3px solid var(--vot-helper-surface)!important}.vot-dialog-body-container::-webkit-scrollbar-corner{background:var(--vot-helper-surface)!important}.vot-dialog-footer-container{padding-bottom:16px;padding-inline-start:16px;padding-inline-end:16px;flex-shrink:0;justify-content:flex-end;padding-top:16px;display:flex}.vot-dialog-footer-container:empty{padding:20px 0 0}.vot-subtitles-widget{z-index:2147483647;pointer-events:none;justify-content:center;align-items:center;width:50%;min-height:20%;max-height:100%;display:flex;position:absolute;top:75%;left:25%}.vot-subtitles{--vot-subtitles-background:rgba(var(--vot-surface-rgb,46,47,52),var(--vot-subtitles-opacity,.8));background:var(--vot-subtitles-background,#2e2f34cc);width:max-content;max-width:100%;max-height:100%;color:var(--vot-subtitles-color,#e3e3e3);pointer-events:all;box-sizing:border-box;-webkit-user-select:none;user-select:none;border-radius:.5em;padding:.5em;font-size:20px;line-height:normal;position:relative}.vot-subtitles span{-webkit-user-select:text;user-select:text;font-size:inherit!important;line-height:normal!important}.vot-subtitles .passed{color:var(--vot-subtitles-passed-color,#2196f3)}:root{--vot-font-family:"Roboto","Segoe UI",BlinkMacSystemFont,system-ui,-apple-system;--vot-primary-rgb:139,180,245;--vot-onprimary-rgb:32,33,36;--vot-surface-rgb:32,33,36;--vot-onsurface-rgb:227,227,227;--vot-subtitles-color:rgb(var(--vot-onsurface-rgb,227,227,227));--vot-subtitles-passed-color:rgb(var(--vot-primary-rgb,33,150,243))}vot-block{display:block;visibility:visible!important}')},"./node_modules/bowser/es5.js":function(t){t.exports=function(t){var e={};function o(i){if(e[i])return e[i].exports;var a=e[i]={i,l:!1,exports:{}};return t[i].call(a.exports,a,a.exports,o),a.l=!0,a.exports}return o.m=t,o.c=e,o.d=function(t,e,i){o.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},o.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},o.t=function(t,e){if(1&e&&(t=o(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(o.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var a in t)o.d(i,a,function(e){return t[e]}.bind(null,a));return i},o.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return o.d(e,"a",e),e},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o.p="",o(o.s=90)}({17:function(t,e,o){"use strict";e.__esModule=!0,e.default=void 0;var i=o(18),a=function(){function t(){}return t.getFirstMatch=function(t,e){var o=e.match(t);return o&&o.length>0&&o[1]||""},t.getSecondMatch=function(t,e){var o=e.match(t);return o&&o.length>1&&o[2]||""},t.matchAndReturnConst=function(t,e,o){if(t.test(e))return o},t.getWindowsVersionName=function(t){switch(t){case"NT":return"NT";case"XP":case"NT 5.1":return"XP";case"NT 5.0":return"2000";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}},t.getMacOSVersionName=function(t){var e=t.split(".").splice(0,2).map((function(t){return parseInt(t,10)||0}));if(e.push(0),10===e[0])switch(e[1]){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return}},t.getAndroidVersionName=function(t){var e=t.split(".").splice(0,2).map((function(t){return parseInt(t,10)||0}));if(e.push(0),!(1===e[0]&&e[1]<5))return 1===e[0]&&e[1]<6?"Cupcake":1===e[0]&&e[1]>=6?"Donut":2===e[0]&&e[1]<2?"Eclair":2===e[0]&&2===e[1]?"Froyo":2===e[0]&&e[1]>2?"Gingerbread":3===e[0]?"Honeycomb":4===e[0]&&e[1]<1?"Ice Cream Sandwich":4===e[0]&&e[1]<4?"Jelly Bean":4===e[0]&&e[1]>=4?"KitKat":5===e[0]?"Lollipop":6===e[0]?"Marshmallow":7===e[0]?"Nougat":8===e[0]?"Oreo":9===e[0]?"Pie":void 0},t.getVersionPrecision=function(t){return t.split(".").length},t.compareVersions=function(e,o,i){void 0===i&&(i=!1);var a=t.getVersionPrecision(e),n=t.getVersionPrecision(o),r=Math.max(a,n),s=0,l=t.map([e,o],(function(e){var o=r-t.getVersionPrecision(e),i=e+new Array(o+1).join(".0");return t.map(i.split("."),(function(t){return new Array(20-t.length).join("0")+t})).reverse()}));for(i&&(s=r-Math.min(a,n)),r-=1;r>=s;){if(l[0][r]>l[1][r])return 1;if(l[0][r]===l[1][r]){if(r===s)return 0;r-=1}else if(l[0][r]1?a-1:0),r=1;r0){var r=Object.keys(o),l=s.default.find(r,(function(t){return e.isOS(t)}));if(l){var d=this.satisfies(o[l]);if(void 0!==d)return d}var u=s.default.find(r,(function(t){return e.isPlatform(t)}));if(u){var c=this.satisfies(o[u]);if(void 0!==c)return c}}if(n>0){var h=Object.keys(a),p=s.default.find(h,(function(t){return e.isBrowser(t,!0)}));if(void 0!==p)return this.compareVersion(a[p])}},e.isBrowser=function(t,e){void 0===e&&(e=!1);var o=this.getBrowserName().toLowerCase(),i=t.toLowerCase(),a=s.default.getBrowserTypeByAlias(i);return e&&a&&(i=a.toLowerCase()),i===o},e.compareVersion=function(t){var e=[0],o=t,i=!1,a=this.getBrowserVersion();if("string"==typeof a)return">"===t[0]||"<"===t[0]?(o=t.substr(1),"="===t[1]?(i=!0,o=t.substr(2)):e=[],">"===t[0]?e.push(1):e.push(-1)):"="===t[0]?o=t.substr(1):"~"===t[0]&&(i=!0,o=t.substr(1)),e.indexOf(s.default.compareVersions(a,o,i))>-1},e.isOS=function(t){return this.getOSName(!0)===String(t).toLowerCase()},e.isPlatform=function(t){return this.getPlatformType(!0)===String(t).toLowerCase()},e.isEngine=function(t){return this.getEngineName(!0)===String(t).toLowerCase()},e.is=function(t,e){return void 0===e&&(e=!1),this.isBrowser(t,e)||this.isOS(t)||this.isPlatform(t)},e.some=function(t){var e=this;return void 0===t&&(t=[]),t.some((function(t){return e.is(t)}))},t}();e.default=d,t.exports=e.default},92:function(t,e,o){"use strict";e.__esModule=!0,e.default=void 0;var i,a=(i=o(17))&&i.__esModule?i:{default:i},n=/version\/(\d+(\.?_?\d+)+)/i,r=[{test:[/googlebot/i],describe:function(t){var e={name:"Googlebot"},o=a.default.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,t)||a.default.getFirstMatch(n,t);return o&&(e.version=o),e}},{test:[/opera/i],describe:function(t){var e={name:"Opera"},o=a.default.getFirstMatch(n,t)||a.default.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/opr\/|opios/i],describe:function(t){var e={name:"Opera"},o=a.default.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,t)||a.default.getFirstMatch(n,t);return o&&(e.version=o),e}},{test:[/SamsungBrowser/i],describe:function(t){var e={name:"Samsung Internet for Android"},o=a.default.getFirstMatch(n,t)||a.default.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/Whale/i],describe:function(t){var e={name:"NAVER Whale Browser"},o=a.default.getFirstMatch(n,t)||a.default.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/MZBrowser/i],describe:function(t){var e={name:"MZ Browser"},o=a.default.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,t)||a.default.getFirstMatch(n,t);return o&&(e.version=o),e}},{test:[/focus/i],describe:function(t){var e={name:"Focus"},o=a.default.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,t)||a.default.getFirstMatch(n,t);return o&&(e.version=o),e}},{test:[/swing/i],describe:function(t){var e={name:"Swing"},o=a.default.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,t)||a.default.getFirstMatch(n,t);return o&&(e.version=o),e}},{test:[/coast/i],describe:function(t){var e={name:"Opera Coast"},o=a.default.getFirstMatch(n,t)||a.default.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/opt\/\d+(?:.?_?\d+)+/i],describe:function(t){var e={name:"Opera Touch"},o=a.default.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,t)||a.default.getFirstMatch(n,t);return o&&(e.version=o),e}},{test:[/yabrowser/i],describe:function(t){var e={name:"Yandex Browser"},o=a.default.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,t)||a.default.getFirstMatch(n,t);return o&&(e.version=o),e}},{test:[/ucbrowser/i],describe:function(t){var e={name:"UC Browser"},o=a.default.getFirstMatch(n,t)||a.default.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/Maxthon|mxios/i],describe:function(t){var e={name:"Maxthon"},o=a.default.getFirstMatch(n,t)||a.default.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/epiphany/i],describe:function(t){var e={name:"Epiphany"},o=a.default.getFirstMatch(n,t)||a.default.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/puffin/i],describe:function(t){var e={name:"Puffin"},o=a.default.getFirstMatch(n,t)||a.default.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/sleipnir/i],describe:function(t){var e={name:"Sleipnir"},o=a.default.getFirstMatch(n,t)||a.default.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/k-meleon/i],describe:function(t){var e={name:"K-Meleon"},o=a.default.getFirstMatch(n,t)||a.default.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/micromessenger/i],describe:function(t){var e={name:"WeChat"},o=a.default.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,t)||a.default.getFirstMatch(n,t);return o&&(e.version=o),e}},{test:[/qqbrowser/i],describe:function(t){var e={name:/qqbrowserlite/i.test(t)?"QQ Browser Lite":"QQ Browser"},o=a.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,t)||a.default.getFirstMatch(n,t);return o&&(e.version=o),e}},{test:[/msie|trident/i],describe:function(t){var e={name:"Internet Explorer"},o=a.default.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/\sedg\//i],describe:function(t){var e={name:"Microsoft Edge"},o=a.default.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/edg([ea]|ios)/i],describe:function(t){var e={name:"Microsoft Edge"},o=a.default.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/vivaldi/i],describe:function(t){var e={name:"Vivaldi"},o=a.default.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/seamonkey/i],describe:function(t){var e={name:"SeaMonkey"},o=a.default.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/sailfish/i],describe:function(t){var e={name:"Sailfish"},o=a.default.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i,t);return o&&(e.version=o),e}},{test:[/silk/i],describe:function(t){var e={name:"Amazon Silk"},o=a.default.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/phantom/i],describe:function(t){var e={name:"PhantomJS"},o=a.default.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/slimerjs/i],describe:function(t){var e={name:"SlimerJS"},o=a.default.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(t){var e={name:"BlackBerry"},o=a.default.getFirstMatch(n,t)||a.default.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/(web|hpw)[o0]s/i],describe:function(t){var e={name:"WebOS Browser"},o=a.default.getFirstMatch(n,t)||a.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/bada/i],describe:function(t){var e={name:"Bada"},o=a.default.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/tizen/i],describe:function(t){var e={name:"Tizen"},o=a.default.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,t)||a.default.getFirstMatch(n,t);return o&&(e.version=o),e}},{test:[/qupzilla/i],describe:function(t){var e={name:"QupZilla"},o=a.default.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,t)||a.default.getFirstMatch(n,t);return o&&(e.version=o),e}},{test:[/firefox|iceweasel|fxios/i],describe:function(t){var e={name:"Firefox"},o=a.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/electron/i],describe:function(t){var e={name:"Electron"},o=a.default.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/MiuiBrowser/i],describe:function(t){var e={name:"Miui"},o=a.default.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/chromium/i],describe:function(t){var e={name:"Chromium"},o=a.default.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,t)||a.default.getFirstMatch(n,t);return o&&(e.version=o),e}},{test:[/chrome|crios|crmo/i],describe:function(t){var e={name:"Chrome"},o=a.default.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/GSA/i],describe:function(t){var e={name:"Google Search"},o=a.default.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:function(t){var e=!t.test(/like android/i),o=t.test(/android/i);return e&&o},describe:function(t){var e={name:"Android Browser"},o=a.default.getFirstMatch(n,t);return o&&(e.version=o),e}},{test:[/playstation 4/i],describe:function(t){var e={name:"PlayStation 4"},o=a.default.getFirstMatch(n,t);return o&&(e.version=o),e}},{test:[/safari|applewebkit/i],describe:function(t){var e={name:"Safari"},o=a.default.getFirstMatch(n,t);return o&&(e.version=o),e}},{test:[/.*/i],describe:function(t){var e=-1!==t.search("\\(")?/^(.*)\/(.*)[ \t]\((.*)/:/^(.*)\/(.*) /;return{name:a.default.getFirstMatch(e,t),version:a.default.getSecondMatch(e,t)}}}];e.default=r,t.exports=e.default},93:function(t,e,o){"use strict";e.__esModule=!0,e.default=void 0;var i,a=(i=o(17))&&i.__esModule?i:{default:i},n=o(18),r=[{test:[/Roku\/DVP/],describe:function(t){var e=a.default.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,t);return{name:n.OS_MAP.Roku,version:e}}},{test:[/windows phone/i],describe:function(t){var e=a.default.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,t);return{name:n.OS_MAP.WindowsPhone,version:e}}},{test:[/windows /i],describe:function(t){var e=a.default.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,t),o=a.default.getWindowsVersionName(e);return{name:n.OS_MAP.Windows,version:e,versionName:o}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(t){var e={name:n.OS_MAP.iOS},o=a.default.getSecondMatch(/(Version\/)(\d[\d.]+)/,t);return o&&(e.version=o),e}},{test:[/macintosh/i],describe:function(t){var e=a.default.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,t).replace(/[_\s]/g,"."),o=a.default.getMacOSVersionName(e),i={name:n.OS_MAP.MacOS,version:e};return o&&(i.versionName=o),i}},{test:[/(ipod|iphone|ipad)/i],describe:function(t){var e=a.default.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,t).replace(/[_\s]/g,".");return{name:n.OS_MAP.iOS,version:e}}},{test:function(t){var e=!t.test(/like android/i),o=t.test(/android/i);return e&&o},describe:function(t){var e=a.default.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,t),o=a.default.getAndroidVersionName(e),i={name:n.OS_MAP.Android,version:e};return o&&(i.versionName=o),i}},{test:[/(web|hpw)[o0]s/i],describe:function(t){var e=a.default.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,t),o={name:n.OS_MAP.WebOS};return e&&e.length&&(o.version=e),o}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(t){var e=a.default.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,t)||a.default.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,t)||a.default.getFirstMatch(/\bbb(\d+)/i,t);return{name:n.OS_MAP.BlackBerry,version:e}}},{test:[/bada/i],describe:function(t){var e=a.default.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,t);return{name:n.OS_MAP.Bada,version:e}}},{test:[/tizen/i],describe:function(t){var e=a.default.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,t);return{name:n.OS_MAP.Tizen,version:e}}},{test:[/linux/i],describe:function(){return{name:n.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:n.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(t){var e=a.default.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,t);return{name:n.OS_MAP.PlayStation4,version:e}}}];e.default=r,t.exports=e.default},94:function(t,e,o){"use strict";e.__esModule=!0,e.default=void 0;var i,a=(i=o(17))&&i.__esModule?i:{default:i},n=o(18),r=[{test:[/googlebot/i],describe:function(){return{type:"bot",vendor:"Google"}}},{test:[/huawei/i],describe:function(t){var e=a.default.getFirstMatch(/(can-l01)/i,t)&&"Nova",o={type:n.PLATFORMS_MAP.mobile,vendor:"Huawei"};return e&&(o.model=e),o}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe:function(){return{type:n.PLATFORMS_MAP.tablet,vendor:"Nexus"}}},{test:[/ipad/i],describe:function(){return{type:n.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(){return{type:n.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/kftt build/i],describe:function(){return{type:n.PLATFORMS_MAP.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"}}},{test:[/silk/i],describe:function(){return{type:n.PLATFORMS_MAP.tablet,vendor:"Amazon"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:n.PLATFORMS_MAP.tablet}}},{test:function(t){var e=t.test(/ipod|iphone/i),o=t.test(/like (ipod|iphone)/i);return e&&!o},describe:function(t){var e=a.default.getFirstMatch(/(ipod|iphone)/i,t);return{type:n.PLATFORMS_MAP.mobile,vendor:"Apple",model:e}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:n.PLATFORMS_MAP.mobile,vendor:"Nexus"}}},{test:[/[^-]mobi/i],describe:function(){return{type:n.PLATFORMS_MAP.mobile}}},{test:function(t){return"blackberry"===t.getBrowserName(!0)},describe:function(){return{type:n.PLATFORMS_MAP.mobile,vendor:"BlackBerry"}}},{test:function(t){return"bada"===t.getBrowserName(!0)},describe:function(){return{type:n.PLATFORMS_MAP.mobile}}},{test:function(t){return"windows phone"===t.getBrowserName()},describe:function(){return{type:n.PLATFORMS_MAP.mobile,vendor:"Microsoft"}}},{test:function(t){var e=Number(String(t.getOSVersion()).split(".")[0]);return"android"===t.getOSName(!0)&&e>=3},describe:function(){return{type:n.PLATFORMS_MAP.tablet}}},{test:function(t){return"android"===t.getOSName(!0)},describe:function(){return{type:n.PLATFORMS_MAP.mobile}}},{test:function(t){return"macos"===t.getOSName(!0)},describe:function(){return{type:n.PLATFORMS_MAP.desktop,vendor:"Apple"}}},{test:function(t){return"windows"===t.getOSName(!0)},describe:function(){return{type:n.PLATFORMS_MAP.desktop}}},{test:function(t){return"linux"===t.getOSName(!0)},describe:function(){return{type:n.PLATFORMS_MAP.desktop}}},{test:function(t){return"playstation 4"===t.getOSName(!0)},describe:function(){return{type:n.PLATFORMS_MAP.tv}}},{test:function(t){return"roku"===t.getOSName(!0)},describe:function(){return{type:n.PLATFORMS_MAP.tv}}}];e.default=r,t.exports=e.default},95:function(t,e,o){"use strict";e.__esModule=!0,e.default=void 0;var i,a=(i=o(17))&&i.__esModule?i:{default:i},n=o(18),r=[{test:function(t){return"microsoft edge"===t.getBrowserName(!0)},describe:function(t){if(/\sedg\//i.test(t))return{name:n.ENGINE_MAP.Blink};var e=a.default.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,t);return{name:n.ENGINE_MAP.EdgeHTML,version:e}}},{test:[/trident/i],describe:function(t){var e={name:n.ENGINE_MAP.Trident},o=a.default.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:function(t){return t.test(/presto/i)},describe:function(t){var e={name:n.ENGINE_MAP.Presto},o=a.default.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:function(t){var e=t.test(/gecko/i),o=t.test(/like gecko/i);return e&&!o},describe:function(t){var e={name:n.ENGINE_MAP.Gecko},o=a.default.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}},{test:[/(apple)?webkit\/537\.36/i],describe:function(){return{name:n.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(t){var e={name:n.ENGINE_MAP.WebKit},o=a.default.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,t);return o&&(e.version=o),e}}];e.default=r,t.exports=e.default}})},"./node_modules/requestidlecallback-polyfill/index.js":()=>{window.requestIdleCallback=window.requestIdleCallback||function(t){var e=Date.now();return setTimeout((function(){t({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-e))}})}),1)},window.cancelIdleCallback=window.cancelIdleCallback||function(t){clearTimeout(t)}}},e={};function o(i){var a=e[i];if(void 0!==a)return a.exports;var n=e[i]={exports:{}};return t[i].call(n.exports,n,n.exports,o),n.exports}(()=>{"use strict";var t=o("./node_modules/bowser/es5.js");const e=protobuf;var i;function a(t){switch(t){case 0:case"NO_CONNECTION":return i.NO_CONNECTION;case 10:case"TRANSLATING":return i.TRANSLATING;case 20:case"STREAMING":return i.STREAMING;default:return i.UNRECOGNIZED}}!function(t){t[t.NO_CONNECTION=0]="NO_CONNECTION",t[t.TRANSLATING=10]="TRANSLATING",t[t.STREAMING=20]="STREAMING",t[t.UNRECOGNIZED=-1]="UNRECOGNIZED"}(i||(i={}));const n={encode:(t,o=e.Writer.create())=>(""!==t.target&&o.uint32(10).string(t.target),""!==t.targetUrl&&o.uint32(18).string(t.targetUrl),o),decode(t,o){const i=t instanceof e.Reader?t:e.Reader.create(t);let a=void 0===o?i.len:i.pos+o;const n={target:"",targetUrl:""};for(;i.pos>>3){case 1:if(10!==t)break;n.target=i.string();continue;case 2:if(18!==t)break;n.targetUrl=i.string();continue}if(4==(7&t)||0===t)break;i.skipType(7&t)}return n},fromJSON:t=>({target:x(t.target)?globalThis.String(t.target):"",targetUrl:x(t.targetUrl)?globalThis.String(t.targetUrl):""}),toJSON(t){const e={};return""!==t.target&&(e.target=t.target),""!==t.targetUrl&&(e.targetUrl=t.targetUrl),e},create:t=>n.fromPartial(t??{}),fromPartial(t){const e={target:"",targetUrl:""};return e.target=t.target??"",e.targetUrl=t.targetUrl??"",e}};const r={encode(t,o=e.Writer.create()){""!==t.url&&o.uint32(26).string(t.url),void 0!==t.deviceId&&o.uint32(34).string(t.deviceId),!1!==t.firstRequest&&o.uint32(40).bool(t.firstRequest),0!==t.duration&&o.uint32(49).double(t.duration),0!==t.unknown0&&o.uint32(56).int32(t.unknown0),""!==t.language&&o.uint32(66).string(t.language),!1!==t.forceSourceLang&&o.uint32(72).bool(t.forceSourceLang),0!==t.unknown1&&o.uint32(80).int32(t.unknown1);for(const e of t.translationHelp)n.encode(e,o.uint32(90).fork()).ldelim();return""!==t.responseLanguage&&o.uint32(114).string(t.responseLanguage),0!==t.unknown2&&o.uint32(120).int32(t.unknown2),0!==t.unknown3&&o.uint32(128).int32(t.unknown3),!1!==t.bypassCache&&o.uint32(136).bool(t.bypassCache),0!==t.unknown4&&o.uint32(144).int32(t.unknown4),o},decode(t,o){const i=t instanceof e.Reader?t:e.Reader.create(t);let a=void 0===o?i.len:i.pos+o;const r={url:"",deviceId:void 0,firstRequest:!1,duration:0,unknown0:0,language:"",forceSourceLang:!1,unknown1:0,translationHelp:[],responseLanguage:"",unknown2:0,unknown3:0,bypassCache:!1,unknown4:0};for(;i.pos>>3){case 3:if(26!==t)break;r.url=i.string();continue;case 4:if(34!==t)break;r.deviceId=i.string();continue;case 5:if(40!==t)break;r.firstRequest=i.bool();continue;case 6:if(49!==t)break;r.duration=i.double();continue;case 7:if(56!==t)break;r.unknown0=i.int32();continue;case 8:if(66!==t)break;r.language=i.string();continue;case 9:if(72!==t)break;r.forceSourceLang=i.bool();continue;case 10:if(80!==t)break;r.unknown1=i.int32();continue;case 11:if(90!==t)break;r.translationHelp.push(n.decode(i,i.uint32()));continue;case 14:if(114!==t)break;r.responseLanguage=i.string();continue;case 15:if(120!==t)break;r.unknown2=i.int32();continue;case 16:if(128!==t)break;r.unknown3=i.int32();continue;case 17:if(136!==t)break;r.bypassCache=i.bool();continue;case 18:if(144!==t)break;r.unknown4=i.int32();continue}if(4==(7&t)||0===t)break;i.skipType(7&t)}return r},fromJSON:t=>({url:x(t.url)?globalThis.String(t.url):"",deviceId:x(t.deviceId)?globalThis.String(t.deviceId):void 0,firstRequest:!!x(t.firstRequest)&&globalThis.Boolean(t.firstRequest),duration:x(t.duration)?globalThis.Number(t.duration):0,unknown0:x(t.unknown0)?globalThis.Number(t.unknown0):0,language:x(t.language)?globalThis.String(t.language):"",forceSourceLang:!!x(t.forceSourceLang)&&globalThis.Boolean(t.forceSourceLang),unknown1:x(t.unknown1)?globalThis.Number(t.unknown1):0,translationHelp:globalThis.Array.isArray(t?.translationHelp)?t.translationHelp.map((t=>n.fromJSON(t))):[],responseLanguage:x(t.responseLanguage)?globalThis.String(t.responseLanguage):"",unknown2:x(t.unknown2)?globalThis.Number(t.unknown2):0,unknown3:x(t.unknown3)?globalThis.Number(t.unknown3):0,bypassCache:!!x(t.bypassCache)&&globalThis.Boolean(t.bypassCache),unknown4:x(t.unknown4)?globalThis.Number(t.unknown4):0}),toJSON(t){const e={};return""!==t.url&&(e.url=t.url),void 0!==t.deviceId&&(e.deviceId=t.deviceId),!1!==t.firstRequest&&(e.firstRequest=t.firstRequest),0!==t.duration&&(e.duration=t.duration),0!==t.unknown0&&(e.unknown0=Math.round(t.unknown0)),""!==t.language&&(e.language=t.language),!1!==t.forceSourceLang&&(e.forceSourceLang=t.forceSourceLang),0!==t.unknown1&&(e.unknown1=Math.round(t.unknown1)),t.translationHelp?.length&&(e.translationHelp=t.translationHelp.map((t=>n.toJSON(t)))),""!==t.responseLanguage&&(e.responseLanguage=t.responseLanguage),0!==t.unknown2&&(e.unknown2=Math.round(t.unknown2)),0!==t.unknown3&&(e.unknown3=Math.round(t.unknown3)),!1!==t.bypassCache&&(e.bypassCache=t.bypassCache),0!==t.unknown4&&(e.unknown4=Math.round(t.unknown4)),e},create:t=>r.fromPartial(t??{}),fromPartial(t){const e={url:"",deviceId:void 0,firstRequest:!1,duration:0,unknown0:0,language:"",forceSourceLang:!1,unknown1:0,translationHelp:[],responseLanguage:"",unknown2:0,unknown3:0,bypassCache:!1,unknown4:0};return e.url=t.url??"",e.deviceId=t.deviceId??void 0,e.firstRequest=t.firstRequest??!1,e.duration=t.duration??0,e.unknown0=t.unknown0??0,e.language=t.language??"",e.forceSourceLang=t.forceSourceLang??!1,e.unknown1=t.unknown1??0,e.translationHelp=t.translationHelp?.map((t=>n.fromPartial(t)))||[],e.responseLanguage=t.responseLanguage??"",e.unknown2=t.unknown2??0,e.unknown3=t.unknown3??0,e.bypassCache=t.bypassCache??!1,e.unknown4=t.unknown4??0,e}};const s={encode:(t,o=e.Writer.create())=>(void 0!==t.url&&o.uint32(10).string(t.url),void 0!==t.duration&&o.uint32(17).double(t.duration),0!==t.status&&o.uint32(32).int32(t.status),void 0!==t.remainingTime&&o.uint32(40).int32(t.remainingTime),void 0!==t.unknown0&&o.uint32(48).int32(t.unknown0),""!==t.translationId&&o.uint32(58).string(t.translationId),void 0!==t.language&&o.uint32(66).string(t.language),void 0!==t.message&&o.uint32(74).string(t.message),o),decode(t,o){const i=t instanceof e.Reader?t:e.Reader.create(t);let a=void 0===o?i.len:i.pos+o;const n={url:void 0,duration:void 0,status:0,remainingTime:void 0,unknown0:void 0,translationId:"",language:void 0,message:void 0};for(;i.pos>>3){case 1:if(10!==t)break;n.url=i.string();continue;case 2:if(17!==t)break;n.duration=i.double();continue;case 4:if(32!==t)break;n.status=i.int32();continue;case 5:if(40!==t)break;n.remainingTime=i.int32();continue;case 6:if(48!==t)break;n.unknown0=i.int32();continue;case 7:if(58!==t)break;n.translationId=i.string();continue;case 8:if(66!==t)break;n.language=i.string();continue;case 9:if(74!==t)break;n.message=i.string();continue}if(4==(7&t)||0===t)break;i.skipType(7&t)}return n},fromJSON:t=>({url:x(t.url)?globalThis.String(t.url):void 0,duration:x(t.duration)?globalThis.Number(t.duration):void 0,status:x(t.status)?globalThis.Number(t.status):0,remainingTime:x(t.remainingTime)?globalThis.Number(t.remainingTime):void 0,unknown0:x(t.unknown0)?globalThis.Number(t.unknown0):void 0,translationId:x(t.translationId)?globalThis.String(t.translationId):"",language:x(t.language)?globalThis.String(t.language):void 0,message:x(t.message)?globalThis.String(t.message):void 0}),toJSON(t){const e={};return void 0!==t.url&&(e.url=t.url),void 0!==t.duration&&(e.duration=t.duration),0!==t.status&&(e.status=Math.round(t.status)),void 0!==t.remainingTime&&(e.remainingTime=Math.round(t.remainingTime)),void 0!==t.unknown0&&(e.unknown0=Math.round(t.unknown0)),""!==t.translationId&&(e.translationId=t.translationId),void 0!==t.language&&(e.language=t.language),void 0!==t.message&&(e.message=t.message),e},create:t=>s.fromPartial(t??{}),fromPartial(t){const e={url:void 0,duration:void 0,status:0,remainingTime:void 0,unknown0:void 0,translationId:"",language:void 0,message:void 0};return e.url=t.url??void 0,e.duration=t.duration??void 0,e.status=t.status??0,e.remainingTime=t.remainingTime??void 0,e.unknown0=t.unknown0??void 0,e.translationId=t.translationId??"",e.language=t.language??void 0,e.message=t.message??void 0,e}};function l(){return{audioFile:new Uint8Array(0),message:""}}const d={encode:(t,o=e.Writer.create())=>(0!==t.audioFile.length&&o.uint32(18).bytes(t.audioFile),""!==t.message&&o.uint32(10).string(t.message),o),decode(t,o){const i=t instanceof e.Reader?t:e.Reader.create(t);let a=void 0===o?i.len:i.pos+o;const n=l();for(;i.pos>>3){case 2:if(18!==t)break;n.audioFile=i.bytes();continue;case 1:if(10!==t)break;n.message=i.string();continue}if(4==(7&t)||0===t)break;i.skipType(7&t)}return n},fromJSON:t=>({audioFile:x(t.audioFile)?w(t.audioFile):new Uint8Array(0),message:x(t.message)?globalThis.String(t.message):""}),toJSON(t){const e={};return 0!==t.audioFile.length&&(e.audioFile=function(t){if(globalThis.Buffer)return globalThis.Buffer.from(t).toString("base64");{const e=[];return t.forEach((t=>{e.push(globalThis.String.fromCharCode(t))})),globalThis.btoa(e.join(""))}}(t.audioFile)),""!==t.message&&(e.message=t.message),e},create:t=>d.fromPartial(t??{}),fromPartial(t){const e=l();return e.audioFile=t.audioFile??new Uint8Array(0),e.message=t.message??"",e}};const u={encode:(t,o=e.Writer.create())=>(""!==t.translationId&&o.uint32(10).string(t.translationId),""!==t.url&&o.uint32(18).string(t.url),void 0!==t.audioInfo&&d.encode(t.audioInfo,o.uint32(50).fork()).ldelim(),o),decode(t,o){const i=t instanceof e.Reader?t:e.Reader.create(t);let a=void 0===o?i.len:i.pos+o;const n={translationId:"",url:"",audioInfo:void 0};for(;i.pos>>3){case 1:if(10!==t)break;n.translationId=i.string();continue;case 2:if(18!==t)break;n.url=i.string();continue;case 6:if(50!==t)break;n.audioInfo=d.decode(i,i.uint32());continue}if(4==(7&t)||0===t)break;i.skipType(7&t)}return n},fromJSON:t=>({translationId:x(t.translationId)?globalThis.String(t.translationId):"",url:x(t.url)?globalThis.String(t.url):"",audioInfo:x(t.audioInfo)?d.fromJSON(t.audioInfo):void 0}),toJSON(t){const e={};return""!==t.translationId&&(e.translationId=t.translationId),""!==t.url&&(e.url=t.url),void 0!==t.audioInfo&&(e.audioInfo=d.toJSON(t.audioInfo)),e},create:t=>u.fromPartial(t??{}),fromPartial(t){const e={translationId:"",url:"",audioInfo:void 0};return e.translationId=t.translationId??"",e.url=t.url??"",e.audioInfo=void 0!==t.audioInfo&&null!==t.audioInfo?d.fromPartial(t.audioInfo):void 0,e}};const c={encode:(t,o=e.Writer.create())=>(""!==t.language&&o.uint32(10).string(t.language),""!==t.url&&o.uint32(18).string(t.url),0!==t.unknown0&&o.uint32(24).int32(t.unknown0),""!==t.translatedLanguage&&o.uint32(34).string(t.translatedLanguage),""!==t.translatedUrl&&o.uint32(42).string(t.translatedUrl),0!==t.unknown1&&o.uint32(48).int32(t.unknown1),0!==t.unknown2&&o.uint32(56).int32(t.unknown2),o),decode(t,o){const i=t instanceof e.Reader?t:e.Reader.create(t);let a=void 0===o?i.len:i.pos+o;const n={language:"",url:"",unknown0:0,translatedLanguage:"",translatedUrl:"",unknown1:0,unknown2:0};for(;i.pos>>3){case 1:if(10!==t)break;n.language=i.string();continue;case 2:if(18!==t)break;n.url=i.string();continue;case 3:if(24!==t)break;n.unknown0=i.int32();continue;case 4:if(34!==t)break;n.translatedLanguage=i.string();continue;case 5:if(42!==t)break;n.translatedUrl=i.string();continue;case 6:if(48!==t)break;n.unknown1=i.int32();continue;case 7:if(56!==t)break;n.unknown2=i.int32();continue}if(4==(7&t)||0===t)break;i.skipType(7&t)}return n},fromJSON:t=>({language:x(t.language)?globalThis.String(t.language):"",url:x(t.url)?globalThis.String(t.url):"",unknown0:x(t.unknown0)?globalThis.Number(t.unknown0):0,translatedLanguage:x(t.translatedLanguage)?globalThis.String(t.translatedLanguage):"",translatedUrl:x(t.translatedUrl)?globalThis.String(t.translatedUrl):"",unknown1:x(t.unknown1)?globalThis.Number(t.unknown1):0,unknown2:x(t.unknown2)?globalThis.Number(t.unknown2):0}),toJSON(t){const e={};return""!==t.language&&(e.language=t.language),""!==t.url&&(e.url=t.url),0!==t.unknown0&&(e.unknown0=Math.round(t.unknown0)),""!==t.translatedLanguage&&(e.translatedLanguage=t.translatedLanguage),""!==t.translatedUrl&&(e.translatedUrl=t.translatedUrl),0!==t.unknown1&&(e.unknown1=Math.round(t.unknown1)),0!==t.unknown2&&(e.unknown2=Math.round(t.unknown2)),e},create:t=>c.fromPartial(t??{}),fromPartial(t){const e={language:"",url:"",unknown0:0,translatedLanguage:"",translatedUrl:"",unknown1:0,unknown2:0};return e.language=t.language??"",e.url=t.url??"",e.unknown0=t.unknown0??0,e.translatedLanguage=t.translatedLanguage??"",e.translatedUrl=t.translatedUrl??"",e.unknown1=t.unknown1??0,e.unknown2=t.unknown2??0,e}};const h={encode:(t,o=e.Writer.create())=>(""!==t.url&&o.uint32(10).string(t.url),""!==t.language&&o.uint32(18).string(t.language),o),decode(t,o){const i=t instanceof e.Reader?t:e.Reader.create(t);let a=void 0===o?i.len:i.pos+o;const n={url:"",language:""};for(;i.pos>>3){case 1:if(10!==t)break;n.url=i.string();continue;case 2:if(18!==t)break;n.language=i.string();continue}if(4==(7&t)||0===t)break;i.skipType(7&t)}return n},fromJSON:t=>({url:x(t.url)?globalThis.String(t.url):"",language:x(t.language)?globalThis.String(t.language):""}),toJSON(t){const e={};return""!==t.url&&(e.url=t.url),""!==t.language&&(e.language=t.language),e},create:t=>h.fromPartial(t??{}),fromPartial(t){const e={url:"",language:""};return e.url=t.url??"",e.language=t.language??"",e}};const p={encode(t,o=e.Writer.create()){!1!==t.waiting&&o.uint32(8).bool(t.waiting);for(const e of t.subtitles)c.encode(e,o.uint32(18).fork()).ldelim();return o},decode(t,o){const i=t instanceof e.Reader?t:e.Reader.create(t);let a=void 0===o?i.len:i.pos+o;const n={waiting:!1,subtitles:[]};for(;i.pos>>3){case 1:if(8!==t)break;n.waiting=i.bool();continue;case 2:if(18!==t)break;n.subtitles.push(c.decode(i,i.uint32()));continue}if(4==(7&t)||0===t)break;i.skipType(7&t)}return n},fromJSON:t=>({waiting:!!x(t.waiting)&&globalThis.Boolean(t.waiting),subtitles:globalThis.Array.isArray(t?.subtitles)?t.subtitles.map((t=>c.fromJSON(t))):[]}),toJSON(t){const e={};return!1!==t.waiting&&(e.waiting=t.waiting),t.subtitles?.length&&(e.subtitles=t.subtitles.map((t=>c.toJSON(t)))),e},create:t=>p.fromPartial(t??{}),fromPartial(t){const e={waiting:!1,subtitles:[]};return e.waiting=t.waiting??!1,e.subtitles=t.subtitles?.map((t=>c.fromPartial(t)))||[],e}};const g={encode:(t,o=e.Writer.create())=>(""!==t.url&&o.uint32(10).string(t.url),""!==t.timestamp&&o.uint32(18).string(t.timestamp),o),decode(t,o){const i=t instanceof e.Reader?t:e.Reader.create(t);let a=void 0===o?i.len:i.pos+o;const n={url:"",timestamp:""};for(;i.pos>>3){case 1:if(10!==t)break;n.url=i.string();continue;case 2:if(18!==t)break;n.timestamp=i.string();continue}if(4==(7&t)||0===t)break;i.skipType(7&t)}return n},fromJSON:t=>({url:x(t.url)?globalThis.String(t.url):"",timestamp:x(t.timestamp)?globalThis.String(t.timestamp):""}),toJSON(t){const e={};return""!==t.url&&(e.url=t.url),""!==t.timestamp&&(e.timestamp=t.timestamp),e},create:t=>g.fromPartial(t??{}),fromPartial(t){const e={url:"",timestamp:""};return e.url=t.url??"",e.timestamp=t.timestamp??"",e}};const m={encode:(t,o=e.Writer.create())=>(""!==t.url&&o.uint32(10).string(t.url),""!==t.language&&o.uint32(18).string(t.language),""!==t.responseLanguage&&o.uint32(26).string(t.responseLanguage),o),decode(t,o){const i=t instanceof e.Reader?t:e.Reader.create(t);let a=void 0===o?i.len:i.pos+o;const n={url:"",language:"",responseLanguage:""};for(;i.pos>>3){case 1:if(10!==t)break;n.url=i.string();continue;case 2:if(18!==t)break;n.language=i.string();continue;case 3:if(26!==t)break;n.responseLanguage=i.string();continue}if(4==(7&t)||0===t)break;i.skipType(7&t)}return n},fromJSON:t=>({url:x(t.url)?globalThis.String(t.url):"",language:x(t.language)?globalThis.String(t.language):"",responseLanguage:x(t.responseLanguage)?globalThis.String(t.responseLanguage):""}),toJSON(t){const e={};return""!==t.url&&(e.url=t.url),""!==t.language&&(e.language=t.language),""!==t.responseLanguage&&(e.responseLanguage=t.responseLanguage),e},create:t=>m.fromPartial(t??{}),fromPartial(t){const e={url:"",language:"",responseLanguage:""};return e.url=t.url??"",e.language=t.language??"",e.responseLanguage=t.responseLanguage??"",e}};const v={encode:(t,o=e.Writer.create())=>(0!==t.interval&&o.uint32(8).int32(t.interval),void 0!==t.translatedInfo&&g.encode(t.translatedInfo,o.uint32(18).fork()).ldelim(),void 0!==t.pingId&&o.uint32(24).int32(t.pingId),o),decode(t,o){const i=t instanceof e.Reader?t:e.Reader.create(t);let a=void 0===o?i.len:i.pos+o;const n={interval:0,translatedInfo:void 0,pingId:void 0};for(;i.pos>>3){case 1:if(8!==t)break;n.interval=i.int32();continue;case 2:if(18!==t)break;n.translatedInfo=g.decode(i,i.uint32());continue;case 3:if(24!==t)break;n.pingId=i.int32();continue}if(4==(7&t)||0===t)break;i.skipType(7&t)}return n},fromJSON:t=>({interval:x(t.interval)?a(t.interval):0,translatedInfo:x(t.translatedInfo)?g.fromJSON(t.translatedInfo):void 0,pingId:x(t.pingId)?globalThis.Number(t.pingId):void 0}),toJSON(t){const e={};return 0!==t.interval&&(e.interval=function(t){switch(t){case i.NO_CONNECTION:return"NO_CONNECTION";case i.TRANSLATING:return"TRANSLATING";case i.STREAMING:return"STREAMING";case i.UNRECOGNIZED:default:return"UNRECOGNIZED"}}(t.interval)),void 0!==t.translatedInfo&&(e.translatedInfo=g.toJSON(t.translatedInfo)),void 0!==t.pingId&&(e.pingId=Math.round(t.pingId)),e},create:t=>v.fromPartial(t??{}),fromPartial(t){const e={interval:0,translatedInfo:void 0,pingId:void 0};return e.interval=t.interval??0,e.translatedInfo=void 0!==t.translatedInfo&&null!==t.translatedInfo?g.fromPartial(t.translatedInfo):void 0,e.pingId=t.pingId??void 0,e}};const f={encode:(t,o=e.Writer.create())=>(0!==t.pingId&&o.uint32(8).int32(t.pingId),o),decode(t,o){const i=t instanceof e.Reader?t:e.Reader.create(t);let a=void 0===o?i.len:i.pos+o;const n={pingId:0};for(;i.pos>>3){case 1:if(8!==t)break;n.pingId=i.int32();continue}if(4==(7&t)||0===t)break;i.skipType(7&t)}return n},fromJSON:t=>({pingId:x(t.pingId)?globalThis.Number(t.pingId):0}),toJSON(t){const e={};return 0!==t.pingId&&(e.pingId=Math.round(t.pingId)),e},create:t=>f.fromPartial(t??{}),fromPartial(t){const e={pingId:0};return e.pingId=t.pingId??0,e}};const b={encode:(t,o=e.Writer.create())=>(""!==t.uuid&&o.uint32(10).string(t.uuid),""!==t.module&&o.uint32(18).string(t.module),o),decode(t,o){const i=t instanceof e.Reader?t:e.Reader.create(t);let a=void 0===o?i.len:i.pos+o;const n={uuid:"",module:""};for(;i.pos>>3){case 1:if(10!==t)break;n.uuid=i.string();continue;case 2:if(18!==t)break;n.module=i.string();continue}if(4==(7&t)||0===t)break;i.skipType(7&t)}return n},fromJSON:t=>({uuid:x(t.uuid)?globalThis.String(t.uuid):"",module:x(t.module)?globalThis.String(t.module):""}),toJSON(t){const e={};return""!==t.uuid&&(e.uuid=t.uuid),""!==t.module&&(e.module=t.module),e},create:t=>b.fromPartial(t??{}),fromPartial(t){const e={uuid:"",module:""};return e.uuid=t.uuid??"",e.module=t.module??"",e}};const y={encode:(t,o=e.Writer.create())=>(""!==t.secretKey&&o.uint32(10).string(t.secretKey),0!==t.expires&&o.uint32(16).int32(t.expires),o),decode(t,o){const i=t instanceof e.Reader?t:e.Reader.create(t);let a=void 0===o?i.len:i.pos+o;const n={secretKey:"",expires:0};for(;i.pos>>3){case 1:if(10!==t)break;n.secretKey=i.string();continue;case 2:if(16!==t)break;n.expires=i.int32();continue}if(4==(7&t)||0===t)break;i.skipType(7&t)}return n},fromJSON:t=>({secretKey:x(t.secretKey)?globalThis.String(t.secretKey):"",expires:x(t.expires)?globalThis.Number(t.expires):0}),toJSON(t){const e={};return""!==t.secretKey&&(e.secretKey=t.secretKey),0!==t.expires&&(e.expires=Math.round(t.expires)),e},create:t=>y.fromPartial(t??{}),fromPartial(t){const e={secretKey:"",expires:0};return e.secretKey=t.secretKey??"",e.expires=t.expires??0,e}};function w(t){if(globalThis.Buffer)return Uint8Array.from(globalThis.Buffer.from(t,"base64"));{const e=globalThis.atob(t),o=new Uint8Array(e.length);for(let t=0;tr.encode({url:t,firstRequest:!0,duration:e,unknown0:1,language:o,forceSourceLang:!1,unknown1:0,translationHelp:a||[],responseLanguage:i,unknown2:0,unknown3:1,bypassCache:!1,unknown4:1}).finish(),decodeTranslationResponse:t=>s.decode(new Uint8Array(t)),encodeTranslationAudioRequest:(t,e)=>u.encode({url:t,translationId:e,audioInfo:{audioFile:new Uint8Array(0),message:T.WEB_API_GET_ALL_GENERATING_URLS_DATA_FROM_IFRAME}}).finish(),decodeTranslationAudioResponse:t=>s.decode(new Uint8Array(t)),encodeSubtitlesRequest:(t,e)=>h.encode({url:t,language:e}).finish(),decodeSubtitlesResponse:t=>p.decode(new Uint8Array(t)),encodeStreamPingRequest:t=>f.encode({pingId:t}).finish(),encodeStreamRequest:(t,e,o)=>m.encode({url:t,language:e,responseLanguage:o}).finish(),decodeStreamResponse:t=>v.decode(new Uint8Array(t)),encodeYandexSessionRequest:(t,e)=>b.encode({uuid:t,module:e}).finish(),decodeYandexSessionResponse:t=>y.decode(new Uint8Array(t))},P={host:"api.browser.yandex.ru",hostVOT:"vot-api.toil.cc/v1",mediaProxy:"media-proxy.toil.cc",userAgent:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 YaBrowser/24.10.0.0 Safari/537.36",componentVersion:"24.10.1.598",hmac:"bt8xH3VOlb4mqf0nqAibnDOoiPlXsisf",defaultDuration:343,loggerLevel:1,version:"1.3.9"};var L;!function(t){t[t.DEBUG=0]="DEBUG",t[t.INFO=1]="INFO",t[t.WARN=2]="WARN",t[t.ERROR=3]="ERROR",t[t.SILENCE=4]="SILENCE"}(L||(L={}));class A{static prefix=`[vot.js v${P.version}]`;static canLog(t){return P.loggerLevel<=t}static log(...t){A.canLog(L.DEBUG)&&console.log(A.prefix,...t)}static info(...t){A.canLog(L.INFO)&&console.info(A.prefix,...t)}static warn(...t){A.canLog(L.WARN)&&console.warn(A.prefix,...t)}static error(...t){A.canLog(L.ERROR)&&console.error(A.prefix,...t)}}const I=new TextEncoder;async function _(t,e,o){const i=await crypto.subtle.importKey("raw",I.encode(e),{name:"HMAC",hash:{name:t}},!1,["sign","verify"]);return await crypto.subtle.sign("HMAC",i,o)}async function O(t){const e=await _("SHA-256",P.hmac,t);return new Uint8Array(e).reduce(((t,e)=>t+e.toString(16).padStart(2,"0")),"")}async function V(t,e,o,i){const{secretKey:a,uuid:n}=e,r=await O(o),s=`${n}:${i}:${P.componentVersion}`,l=I.encode(s);return{[`${t}-Signature`]:r,[`Sec-${t}-Sk`]:a,[`Sec-${t}-Token`]:`${await O(l)}:${s}`}}const M={afr:"af",aka:"ak",alb:"sq",amh:"am",ara:"ar",arm:"hy",asm:"as",aym:"ay",aze:"az",baq:"eu",bel:"be",ben:"bn",bos:"bs",bul:"bg",bur:"my",cat:"ca",chi:"zh",cos:"co",cze:"cs",dan:"da",div:"dv",dut:"nl",eng:"en",epo:"eo",est:"et",ewe:"ee",fin:"fi",fre:"fr",fry:"fy",geo:"ka",ger:"de",gla:"gd",gle:"ga",glg:"gl",gre:"el",grn:"gn",guj:"gu",hat:"ht",hau:"ha",hin:"hi",hrv:"hr",hun:"hu",ibo:"ig",ice:"is",ind:"id",ita:"it",jav:"jv",jpn:"ja",kan:"kn",kaz:"kk",khm:"km",kin:"rw",kir:"ky",kor:"ko",kur:"ku",lao:"lo",lat:"la",lav:"lv",lin:"ln",lit:"lt",ltz:"lb",lug:"lg",mac:"mk",mal:"ml",mao:"mi",mar:"mr",may:"ms",mlg:"mg",mlt:"mt",mon:"mn",nep:"ne",nor:"no",nya:"ny",ori:"or",orm:"om",pan:"pa",per:"fa",pol:"pl",por:"pt",pus:"ps",que:"qu",rum:"ro",rus:"ru",san:"sa",sin:"si",slo:"sk",slv:"sl",smo:"sm",sna:"sn",snd:"sd",som:"so",sot:"st",spa:"es",srp:"sr",sun:"su",swa:"sw",swe:"sv",tam:"ta",tat:"tt",tel:"te",tgk:"tg",tha:"th",tir:"ti",tso:"ts",tuk:"tk",tur:"tr",uig:"ug",ukr:"uk",urd:"ur",uzb:"uz",vie:"vi",wel:"cy",xho:"xh",yid:"yi",yor:"yo",zul:"zu"};async function E(t,e={headers:{"User-Agent":P.userAgent}}){const{timeout:o=3e3,...i}=e,a=new AbortController,n=setTimeout((()=>a.abort()),o),r=await fetch(t,{signal:a.signal,...i});return clearTimeout(n),r}function B(t){return 3===t.length?M[t]:t.toLowerCase().split(/[_;-]/)[0].trim()}function N(t,e="mp4"){return`https://${P.mediaProxy}/v1/proxy/video.${e}?url=${encodeURIComponent(t.href)}&origin=${t.origin}&referer=${t.origin}`}const R=[{additionalData:"mobile",host:S.youtube,url:"https://youtu.be/",match:/^m.youtube.com$/,selector:"shorts-video #player"},{additionalData:"mobile",host:S.youtube,url:"https://youtu.be/",match:/^m.youtube.com$/,selector:".player-container"},{host:S.youtube,url:"https://youtu.be/",match:/^(www.)?youtube(-nocookie|kids)?.com$/,selector:".html5-video-container:not(#inline-player *)"},{host:S.invidious,url:"https://youtu.be/",match:["yewtu.be","yt.artemislena.eu","invidious.flokinet.to","iv.melmac.space","inv.nadeko.net","inv.tux.pizza","invidious.private.coffee","yt.drgnz.club","vid.puffyan.us","invidious.dhusch.de"],selector:"#player",needBypassCSP:!0},{host:S.piped,url:"https://youtu.be/",match:["piped.video","piped.tokhmi.xyz","piped.moomoo.me","piped.syncpundit.io","piped.mha.fi","watch.whatever.social","piped.garudalinux.org","efy.piped.pages.dev","watch.leptons.xyz","piped.lunar.icu","yt.dc09.ru","piped.mint.lgbt","il.ax","piped.privacy.com.de","piped.esmailelbob.xyz","piped.projectsegfau.lt","piped.in.projectsegfau.lt","piped.us.projectsegfau.lt","piped.privacydev.net","piped.palveluntarjoaja.eu","piped.smnz.de","piped.adminforge.de","piped.qdi.fi","piped.hostux.net","piped.chauvet.pro","piped.jotoma.de","piped.pfcd.me","piped.frontendfriendly.xyz"],selector:".shaka-video-container",needBypassCSP:!0},{host:S.poketube,url:"https://youtu.be/",match:["poketube.fun","pt.sudovanilla.org","poke.ggtyler.dev","poke.uk2.littlekai.co.uk","poke.blahai.gay"],selector:".video-player-container"},{host:S.ricktube,url:"https://youtu.be/",match:["ricktube.ru"],selector:"#oframeplayer > pjsdiv:has(video)"},{additionalData:"mobile",host:S.vk,url:"https://vk.com/video?z=",match:/^m.vk.(com|ru)$/,selector:"vk-video-player",shadowRoot:!0},{additionalData:"clips",host:S.vk,url:"https://vk.com/video?z=",match:/^(www.|m.)?vk.(com|ru)$/,selector:'div[data-testid="clipcontainer-video"]'},{host:S.vk,url:"https://vk.com/video?z=",match:/^(www.|m.)?vk.(com|ru)$/,selector:".videoplayer_media"},{host:S.nine_gag,url:"https://9gag.com/gag/",match:/^9gag.com$/,selector:".video-post"},{host:S.twitch,url:"https://twitch.tv/",match:[/^m.twitch.tv$/,/^(www.)?twitch.tv$/,/^clips.twitch.tv$/,/^player.twitch.tv$/],selector:".video-ref, main > div > section > div > div > div"},{host:S.proxitok,url:"https://www.tiktok.com/",match:["proxitok.pabloferreiro.es","proxitok.pussthecat.org","tok.habedieeh.re","proxitok.esmailelbob.xyz","proxitok.privacydev.net","tok.artemislena.eu","tok.adminforge.de","tt.vern.cc","cringe.whatever.social","proxitok.lunar.icu","proxitok.privacy.com.de"],selector:".column.has-text-centered"},{host:S.tiktok,url:"https://www.tiktok.com/",match:/^(www.)?tiktok.com$/,selector:null},{host:S.vimeo,url:"https://vimeo.com/",match:/^vimeo.com$/,needExtraData:!0,selector:".player"},{host:S.vimeo,url:"https://player.vimeo.com/",match:/^player.vimeo.com$/,additionalData:"embed",needExtraData:!0,needBypassCSP:!0,selector:".player"},{host:S.xvideos,url:"https://www.xvideos.com/",match:/^(www.)?(xvideos|xv-ru).com$/,selector:".video-bg-pic",needBypassCSP:!0},{host:S.pornhub,url:"https://rt.pornhub.com/view_video.php?viewkey=",match:/^[a-z]+.pornhub.com$/,selector:".mainPlayerDiv > .video-element-wrapper-js > div",eventSelector:".mgp_eventCatcher"},{additionalData:"embed",host:S.pornhub,url:"https://rt.pornhub.com/view_video.php?viewkey=",match:t=>t.host.includes("pornhub.com")&&t.pathname.startsWith("/embed/"),selector:"#player"},{host:S.twitter,url:"https://twitter.com/i/status/",match:/^(twitter|x).com$/,selector:'div[data-testid="videoComponent"] > div:nth-child(1) > div',eventSelector:'div[data-testid="videoPlayer"]',needBypassCSP:!0},{host:S.rumble,url:"https://rumble.com/",match:/^rumble.com$/,selector:"#videoPlayer > .videoPlayer-Rumble-cls > div"},{host:S.facebook,url:"https://facebook.com/",match:t=>t.host.includes("facebook.com")&&t.pathname.includes("/videos/"),selector:'div[role="main"] div[data-pagelet$="video" i]',needBypassCSP:!0},{additionalData:"reels",host:S.facebook,url:"https://facebook.com/",match:t=>t.host.includes("facebook.com")&&t.pathname.includes("/reel/"),selector:'div[role="main"]',needBypassCSP:!0},{host:S.rutube,url:"https://rutube.ru/video/",match:/^rutube.ru$/,selector:".video-player > div > div > div:nth-child(2)"},{additionalData:"embed",host:S.rutube,url:"https://rutube.ru/video/",match:/^rutube.ru$/,selector:"#app > div > div"},{host:S.bilibili,url:"https://www.bilibili.com/",match:/^(www|m|player).bilibili.com$/,selector:".bpx-player-video-wrap"},{additionalData:"old",host:S.bilibili,url:"https://www.bilibili.com/",match:/^(www|m).bilibili.com$/,selector:null},{host:S.mailru,url:"https://my.mail.ru/",match:/^my.mail.ru$/,selector:"#b-video-wrapper"},{host:S.bitchute,url:"https://www.bitchute.com/video/",match:/^(www.)?bitchute.com$/,selector:".video-js"},{host:S.eporner,url:"https://www.eporner.com/",match:/^(www.)?eporner.com$/,selector:".vjs-v7"},{host:S.peertube,url:"stub",match:["peertube.1312.media","tube.shanti.cafe","bee-tube.fr","video.sadmin.io","dalek.zone","review.peertube.biz","peervideo.club","tube.la-dina.net","peertube.tmp.rcp.tf","peertube.su","video.blender.org","videos.viorsan.com","tube-sciences-technologies.apps.education.fr","tube-numerique-educatif.apps.education.fr","tube-arts-lettres-sciences-humaines.apps.education.fr","beetoons.tv","comics.peertube.biz","makertube.net"],selector:".vjs-v7"},{host:S.dailymotion,url:"https://dai.ly/",match:/^geo([\d]+)?.dailymotion.com$/,selector:".player"},{host:S.trovo,url:"https://trovo.live/s/",match:/^trovo.live$/,selector:".player-video"},{host:S.yandexdisk,url:"https://yadi.sk/",match:/^disk.yandex.ru$/,selector:".video-player__player > div:nth-child(1)",eventSelector:".video-player__player",needBypassCSP:!0,needExtraData:!0},{host:S.okru,url:"https://ok.ru/video/",match:/^ok.ru$/,selector:".html5-vpl_vid"},{host:S.googledrive,url:"https://drive.google.com/file/d/",match:/^youtube.googleapis.com$/,selector:".html5-video-container"},{host:S.bannedvideo,url:"https://madmaxworld.tv/watch?id=",match:/^(www.)?banned.video|madmaxworld.tv$/,selector:".vjs-v7",needExtraData:!0},{host:S.weverse,url:"https://weverse.io/",match:/^weverse.io$/,selector:".webplayer-internal-source-wrapper",needExtraData:!0},{host:S.newgrounds,url:"https://www.newgrounds.com/",match:/^(www.)?newgrounds.com$/,selector:".ng-video-player"},{host:S.egghead,url:"https://egghead.io/",match:/^egghead.io$/,selector:".cueplayer-react-video-holder"},{host:S.youku,url:"https://v.youku.com/",match:/^v.youku.com$/,selector:"#ykPlayer"},{host:S.archive,url:"https://archive.org/details/",match:/^archive.org$/,selector:".jw-media"},{host:S.kodik,url:"stub",match:/^kodik.(info|biz|cc)$/,selector:".fp-player",needExtraData:!0},{host:S.patreon,url:"stub",match:/^(www.)?patreon.com$/,selector:'div[data-tag="post-card"] div[elevation="subtle"] > div > div > div > div',needExtraData:!0},{host:S.reddit,url:"stub",match:/^(www.|new.|old.)?reddit.com$/,selector:".reddit-video-player-root",needExtraData:!0,needBypassCSP:!0},{host:S.kick,url:"https://kick.com/",match:/^kick.com$/,selector:"#injected-embedded-channel-player-video > div",needExtraData:!0},{host:S.appledeveloper,url:"https://developer.apple.com/",match:/^developer.apple.com$/,selector:".developer-video-player",needExtraData:!0,needBypassCSP:!0},{host:S.epicgames,url:"https://dev.epicgames.com/community/learning/",match:/^dev.epicgames.com$/,selector:".vjs-v7",needExtraData:!0},{host:S.nineanimetv,url:"https://9animetv.to/watch/",match:/^rapid-cloud.co$/,selector:".jw-media",needExtraData:!0},{host:S.odysee,url:"stub",match:/^odysee.com$/,selector:".vjs-v7",needExtraData:!0},{host:S.coursehunterLike,url:"stub",match:["coursehunter.net","coursetrain.net"],selector:"#oframeplayer > pjsdiv:has(video)",needExtraData:!0},{host:S.sap,url:"https://learning.sap.com/courses/",match:/^learning.sap.com$/,selector:".playkit-container",eventSelector:".playkit-player",needExtraData:!0,needBypassCSP:!0},{host:S.udemy,url:"https://www.udemy.com/",match:/udemy.com$/,selector:'div[data-purpose="curriculum-item-viewer-content"] > section > div > div > div > div:nth-of-type(2)',needExtraData:!0},{host:S.coursera,url:"https://www.coursera.org/",match:/coursera.org$/,selector:".vjs-v8",needExtraData:!0},{host:S.watchpornto,url:"https://watchporn.to/",match:/^watchporn.to$/,selector:".fp-player"},{host:S.linkedin,url:"https://www.linkedin.com/learning/",match:/^(www.)?linkedin.com$/,selector:".vjs-v7",needExtraData:!0,needBypassCSP:!0},{host:S.incestflix,url:"https://www.incestflix.net/watch/",match:/^(www.)?incestflix.(net|to|com)$/,selector:"#incflix-stream",needExtraData:!0},{host:S.porntn,url:"https://porntn.com/videos/",match:/^porntn.com$/,selector:null,needExtraData:!0},{host:S.custom,url:"stub",match:t=>/([^.]+).(mp4|webm)/.test(t.pathname),rawResult:!0}],$=JSON.parse('{"__version__":5,"recommended":"recommended","translateVideo":"Translate video","disableTranslate":"Turn off","translationSettings":"Translation settings","subtitlesSettings":"Subtitles settings","about":"About extension","resetSettings":"Reset settings","videoBeingTranslated":"The video is being translated","videoLanguage":"Video language","translationLanguage":"Translation language","translationTake":"The translation will take","translationTakeMoreThanHour":"The translation will take more than an hour","translationTakeAboutMinute":"The translation will take about a minute","translationTakeFewMinutes":"The translation will take a few minutes","translationTakeApproximatelyMinutes":"The translation will take approximately {0} minutes","translationTakeApproximatelyMinute":"The translation will take approximately {0} minutes","unSupportedExtensionError":"Error! {0} is not supported by this version of the extension!\\n\\nPlease use the cloudflare version of the VOT extension.","requestTranslationFailed":"Failed to request video translation","audioNotReceived":"Audio link not received","grantPermissionToAutoPlay":"Grant permission to autoplay","audioFormatNotSupported":"The audio format is not supported","VOTAutoTranslate":"Translate on open","VOTDontTranslateYourLang":"Do not translate from my language","VOTVolume":"Video volume","VOTVolumeTranslation":"Translation Volume","VOTAutoSetVolume":"Reduce video volume to ","VOTShowVideoSlider":"Video volume slider","VOTSyncVolume":"Link translation and video volume","VOTAudioProxy":"Proxy received audio","VOTDisableFromYourLang":"You have disabled the translation of the video in your language","VOTLiveNotSupported":"Translation of live streams is not supported","VOTPremiere":"Wait for the premiere to end before translating","VOTVideoIsTooLong":"Video is too long","VOTNoVideoIDFound":"No video ID found","VOTSubtitles":"Subtitles","VOTSubtitlesDisabled":"Disabled","VOTSubtitlesMaxLength":"Subtitles max length","VOTHighlightWords":"Highlight words","VOTTranslatedFrom":"translated from","VOTAutogenerated":"autogenerated","VOTSettings":"VOT Settings","VOTMenuLanguage":"Menu language","VOTAuthors":"Authors","VOTVersion":"Version","VOTLoader":"Loader","VOTBrowser":"Browser","VOTShowPiPButton":"Show PiP button","langs":{"auto":"Auto","af":"Afrikaans","ak":"Akan","sq":"Albanian","am":"Amharic","ar":"Arabic","hy":"Armenian","as":"Assamese","ay":"Aymara","az":"Azerbaijani","bn":"Bangla","eu":"Basque","be":"Belarusian","bho":"Bhojpuri","bs":"Bosnian","bg":"Bulgarian","my":"Burmese","ca":"Catalan","ceb":"Cebuano","zh":"Chinese","zh-Hans":"Chinese (Simplified)","zh-Hant":"Chinese (Traditional)","co":"Corsican","hr":"Croatian","cs":"Czech","da":"Danish","dv":"Divehi","nl":"Dutch","en":"English","eo":"Esperanto","et":"Estonian","ee":"Ewe","fil":"Filipino","fi":"Finnish","fr":"French","gl":"Galician","lg":"Ganda","ka":"Georgian","de":"German","el":"Greek","gn":"Guarani","gu":"Gujarati","ht":"Haitian Creole","ha":"Hausa","haw":"Hawaiian","iw":"Hebrew","hi":"Hindi","hmn":"Hmong","hu":"Hungarian","is":"Icelandic","ig":"Igbo","id":"Indonesian","ga":"Irish","it":"Italian","ja":"Japanese","jv":"Javanese","kn":"Kannada","kk":"Kazakh","km":"Khmer","rw":"Kinyarwanda","ko":"Korean","kri":"Krio","ku":"Kurdish","ky":"Kyrgyz","lo":"Lao","la":"Latin","lv":"Latvian","ln":"Lingala","lt":"Lithuanian","lb":"Luxembourgish","mk":"Macedonian","mg":"Malagasy","ms":"Malay","ml":"Malayalam","mt":"Maltese","mi":"Māori","mr":"Marathi","mn":"Mongolian","ne":"Nepali","nso":"Northern Sotho","no":"Norwegian","ny":"Nyanja","or":"Odia","om":"Oromo","ps":"Pashto","fa":"Persian","pl":"Polish","pt":"Portuguese","pa":"Punjabi","qu":"Quechua","ro":"Romanian","ru":"Russian","sm":"Samoan","sa":"Sanskrit","gd":"Scottish Gaelic","sr":"Serbian","sn":"Shona","sd":"Sindhi","si":"Sinhala","sk":"Slovak","sl":"Slovenian","so":"Somali","st":"Southern Sotho","es":"Spanish","su":"Sundanese","sw":"Swahili","sv":"Swedish","tg":"Tajik","ta":"Tamil","tt":"Tatar","te":"Telugu","th":"Thai","ti":"Tigrinya","ts":"Tsonga","tr":"Turkish","tk":"Turkmen","uk":"Ukrainian","ur":"Urdu","ug":"Uyghur","uz":"Uzbek","vi":"Vietnamese","cy":"Welsh","fy":"Western Frisian","xh":"Xhosa","yi":"Yiddish","yo":"Yoruba","zu":"Zulu"},"udemyModuleArgsNotFound":"Could not get udemy module data due to the fact that ModuleArgs was not found","VOTTranslationHelpNull":"Could not get the data required for the translate","streamNoConnectionToServer":"There is no connection to the server","searchField":"Search...","VOTTranslateAPIErrors":"Translate errors from the API","VOTTranslationService":"Translation Service","VOTDetectService":"Detect Service","VOTTranslatingError":"Translating the error","VOTProxyWorkerHost":"Enter the proxy worker address","VOTM3u8ProxyHost":"Enter the address of the m3u8 proxy worker","proxySettings":"Proxy Settings","translationTakeApproximatelyMinute2":"The translation will take approximately {0} minutes","VOTAudioBooster":"Extended translation volume increase","VOTSubtitlesDesign":"Subtitles design","VOTSubtitlesFontSize":"Font size of subtitles","VOTSubtitlesOpacity":"Transparency of the subtitle background","VOTPressNewHotkey":"Press the new hotkey...","VOTCreateTranslationHotkey":"Create Hotkey for Translation","VOTChangeHotkeyWithCurrent":"Change Hotkey (Current: {0})","VOTSubtitlesDownloadFormat":"The format for downloading subtitles","VOTDownloadWithName":"Download files with the video name","VOTUpdateLocaleFiles":"Update localization files","VOTLocaleHash":"Locale hash","VOTUpdatedAt":"Updated at","VOTNeedWebAudioAPI":"To enable this, you must have a Web Audio API","VOTMediaCSPEnabledOnSite":"Media CSP is enabled on this site","VOTOnlyBypassMediaCSP":"Use it only for bypassing Media CSP","VOTNewAudioPlayer":"Use the new audio player"}'),D={log:(...t)=>{}},F="media-proxy.toil.cc/v1/proxy/m3u8",q="vot-worker.toil.cc",U="https://vot.toil.cc/v1",H=.15,z="yandex",W="yandex",j={yandex:"https://translate.toil.cc/detect",rustServer:"https://rust-server-531j.onrender.com/detect"},G={yandex:"https://translate.toil.cc/translate",deepl:"https://translate-deepl.toil.cc/translate"},Y=["Violentmonkey","FireMonkey","Greasemonkey","AdGuard","OrangeMonkey"],J=new class{constructor(){this.gmSupport="function"==typeof GM_getValue,D.log(`GM Storage Status: ${this.gmSupport}`)}syncGet(t,e=void 0){if(this.gmSupport)return GM_getValue(t,e);const o="number"==typeof e;const i=window.localStorage.getItem(t)??e;return o?Number(i):i}async get(t,e=void 0){if(this.gmSupport)return await GM_getValue(t,e);const o="number"==typeof e;return Promise.resolve(this.syncGet(t,e,o))}syncSet(t,e){return this.gmSupport?GM_setValue(t,e):window.localStorage.setItem(t,e)}async set(t,e){return this.gmSupport?await GM_setValue(t,e):Promise.resolve(this.syncSet(t,e))}syncDelete(t){return this.gmSupport?GM_deleteValue(t):window.localStorage.removeItem(t)}async delete(t){return this.gmSupport?await GM_deleteValue(t):Promise.resolve(this.syncDelete(t))}syncList(){return this.gmSupport?GM_listValues():["autoTranslate","dontTranslateLanguage","dontTranslateYourLang","autoSetVolumeYandexStyle","autoVolume","buttonPos","showVideoSlider","syncVolume","subtitlesMaxLength","highlightWords","responseLanguage","defaultVolume","audioProxy","showPiPButton","translateAPIErrors","translationService","detectService","m3u8ProxyHost","translateProxyEnabled","hotkeyButton","proxyWorkerHost","audioBooster","locale-version","locale-lang","locale-phrases"]}async list(){return this.gmSupport?await GM_listValues():Promise.resolve(this.syncList())}},K="https://raw.githubusercontent.com/ilyhalight/voice-over-translation/master/src/localization",Z=["auto","en","ru","af","am","ar","az","bg","bn","bs","ca","cs","cy","da","de","el","es","et","eu","fa","fi","fr","gl","hi","hr","hu","hy","id","it","ja","jv","kk","km","kn","ko","lo","mk","ml","mn","ms","mt","my","ne","nl","pa","pl","pt","ro","si","sk","sl","sq","sr","su","sv","sw","tr","uk","ur","uz","vi","zh","zu"],X=new class{lang="en";locale={};gmValues=["locale-phrases","locale-lang","locale-hash","locale-updated-at","locale-lang-override"];constructor(){const t=J.syncGet("locale-lang-override","auto");this.lang=t&&"auto"!==t?t:(navigator.language||navigator.userLanguage)?.substr(0,2)?.toLowerCase()??"en",this.setLocaleFromJsonString(J.syncGet("locale-phrases",""))}reset(){for(let t=0;ti&&o===this.lang)return;const a=await this.checkUpdates();if(await J.set("locale-updated-at",i),a){D.log("Updating locale...");try{const t=await rt(`${K}/locales/${this.lang}.json`);if(200!==t.status)throw t.status;const e=await t.text();await J.set("locale-phrases",e),this.setLocaleFromJsonString(e),await J.set("locale-hash",a),await J.set("locale-lang",this.lang)}catch(t){console.error("[VOT] [localizationProvider] Failed to get locale, cause:",t),this.setLocaleFromJsonString(await J.get("locale-phrases",""))}}}setLocaleFromJsonString(t){try{this.locale=JSON.parse(t)??{}}catch(t){console.error("[VOT] [localizationProvider]",t),this.locale={}}}getFromLocale(t,e){const o=e.split(".").reduce(((t,e)=>{if("object"==typeof t&&t)return t[e]}),t);return void 0===o&&console.warn("[VOT] [localizationProvider] locale",t,"doesn't contain key",e),o}getDefault(t){return this.getFromLocale($,t)??t}get(t){return this.getFromLocale(this.locale,t)??this.getFromLocale($,t)??t}},Q=navigator.language||navigator.userLanguage,tt=Q?.substr(0,2)?.toLowerCase()??"en";function et(){return"pictureInPictureEnabled"in document&&document.pictureInPictureEnabled}function ot(){return"undefined"!=typeof Hls&&Hls?.isSupported()?new Hls({debug:!1,lowLatencyMode:!0,backBufferLength:90}):void 0}const it=new RegExp([/(?:https?|ftp):\/\/\S+/g,/https?:\/\/\S+|www\.\S+/gm,/\b\S+\.\S+/gm,/#[^\s#]+/g,/Auto-generated by YouTube/g,/Provided to YouTube by/g,/Released on/g,/0x[a-fA-F0-9]{40}/g,/[13][a-km-zA-HJ-NP-Z1-9]{25,34}/g,/4[0-9AB][1-9A-HJ-NP-Za-km-z]{93}/g,/Paypal/g].map((t=>t.source)).join("|"));function at(t,e){const o=URL.createObjectURL(t),i=document.createElement("a");i.href=o,i.download=e,i.click(),URL.revokeObjectURL(o)}function nt(t){return 0===t.trim().length?(new Date).toLocaleDateString("en-us").replaceAll("/","-"):t.replace(/[\\/:*?"'<>|]/g,"")}async function rt(t,e={}){const{timeout:o=15e3,...i}=e,a=new AbortController,n=setTimeout((()=>a.abort()),o);try{if(t.includes("api.browser.yandex.ru"))throw new Error("Preventing yandex cors");const e=await fetch(t,{signal:a.signal,...i});return clearTimeout(n),e}catch(e){return D.log("GM_fetch preventing cors by GM_xmlhttpRequest",e.message),new Promise(((e,a)=>{clearTimeout(n),GM_xmlhttpRequest({method:i.method||"GET",url:t,responseType:"blob",...i,data:i.body,timeout:o,onload:t=>{const o=Object.fromEntries(t.responseHeaders.trim().split(/\r?\n/).map((t=>t.split(/: (.+)/))).filter((([t])=>t&&/^[\w-]+$/.test(t))));e(new Response(t.response,{status:t.status,headers:o}))},ontimeout:()=>a(new Error("Timeout")),onerror:t=>a(t),onabort:()=>a(new Error("AbortError"))})}))}}function st(){return Math.floor(Date.now()/1e3)}class lt extends Error{constructor(t){super(t),this.name="VideoHelper",this.message=t}}class dt{API_ORIGIN=window.location.origin;fetch;extraInfo;referer;origin;service;constructor({fetchFn:t=rt,extraInfo:e=!0,referer:o=document.referrer??window.location.origin+"/",origin:i=window.location.origin,service:a}={}){this.fetch=t,this.extraInfo=e,this.referer=o,this.origin=/^(http(s)?):\/\//.test(String(i))?i:window.location.origin,this.service=a}async getVideoData(t){}async getVideoId(t){}returnBaseData(t){if(this.service)return{url:this.service.url+t,videoId:t,host:this.service.host,duration:void 0}}}const ut=["auto","ru","en","zh","ko","lt","lv","ar","fr","it","es","de","ja"],ct=["ru","en","kk"],ht=["srt","vtt","json"];class pt extends Error{constructor(t){super(X.getDefault(t)),this.name="VOTLocalizedError",this.unlocalizedMessage=t,this.localizedMessage=X.get(t)}}const gt={[S.mailru]:class extends dt{API_ORIGIN="https://my.mail.ru";async getVideoMeta(t){try{const e=await this.fetch(`${this.API_ORIGIN}/+/video/meta/${t}?xemail=&ajax_call=1&func_name=&mna=&mnb=&ext=1&_=${(new Date).getTime()}`);return await e.json()}catch(t){return void A.error("Failed to get mail.ru video data",t.message)}}async getVideoId(t){const e=t.pathname;if(/\/(v|mail|bk|inbox)\//.exec(e))return e.slice(1);const o=/video\/embed\/([^/]+)/.exec(e)?.[1];if(!o)return;const i=await this.getVideoMeta(o);return i?i.meta.url.replace("//my.mail.ru/",""):void 0}},[S.weverse]:class extends dt{API_ORIGIN="https://global.apis.naver.com/weverse/wevweb";API_APP_ID="be4d79eb8fc7bd008ee82c8ec4ff6fd4";API_HMAC_KEY="1b9cb6378d959b45714bec49971ade22e6e24e42";HEADERS={Accept:"application/json, text/plain, */*",Origin:"https://weverse.io",Referer:"https://weverse.io/"};getURLData(){return{appId:this.API_APP_ID,language:"en",os:"WEB",platform:"WEB",wpf:"pc"}}async createHash(t){const e=Date.now(),o=t.substring(0,Math.min(255,t.length))+e,i=await async function(t,e){try{const o=I.encode(e),i=await _("SHA-1",t,o);return btoa(String.fromCharCode(...new Uint8Array(i)))}catch(t){return A.error(t),!1}}(this.API_HMAC_KEY,o);if(!i)throw new lt("Failed to get weverse HMAC signature");return{wmsgpad:e.toString(),wmd:i}}async getHashURLParams(t){const e=await this.createHash(t);return new URLSearchParams(e).toString()}async getPostPreview(t){const e=`/post/v1.0/post-${t}/preview?`+new URLSearchParams({fieldSet:"postForPreview",...this.getURLData()}).toString();try{const t=await this.getHashURLParams(e),o=await this.fetch(this.API_ORIGIN+e+"&"+t,{headers:this.HEADERS});return await o.json()}catch(e){return A.error(`Failed to get weverse post preview by postId: ${t}`,e.message),!1}}async getVideoInKey(t){const e=`/video/v1.1/vod/${t}/inKey?`+new URLSearchParams({gcc:"RU",...this.getURLData()}).toString();try{const t=await this.getHashURLParams(e),o=await this.fetch(this.API_ORIGIN+e+"&"+t,{method:"POST",headers:this.HEADERS});return await o.json()}catch(e){return A.error(`Failed to get weverse InKey by videoId: ${t}`,e.message),!1}}async getVideoInfo(t,e,o){const i=Date.now();try{const a=new URLSearchParams({key:e,sid:o,nonce:i.toString(),devt:"html5_pc",prv:"N",aup:"N",stpb:"N",cpl:"en",env:"prod",lc:"en",adi:JSON.stringify([{adSystem:null}]),adu:"/"}).toString(),n=await this.fetch(`https://global.apis.naver.com/rmcnmv/rmcnmv/vod/play/v2.0/${t}?`+a,{headers:this.HEADERS});return await n.json()}catch(i){return A.error(`Failed to get weverse video info (infraVideoId: ${t}, inkey: ${e}, serviceId: ${o}`,i.message),!1}}extractVideoInfo(t){return t.find((t=>!1===t.useP2P&&t.source.includes(".mp4")))}async getVideoData(t){const e=await this.getPostPreview(t);if(!e)return;const{videoId:o,serviceId:i,infraVideoId:a}=e.extension.video;if(!(o&&i&&a))return;const n=await this.getVideoInKey(o);if(!n)return;const r=await this.getVideoInfo(a,n.inKey,i);if(!r)return;const s=this.extractVideoInfo(r.videos.list);return s?{url:s.source,duration:s.duration}:void 0}async getVideoId(t){return/([^/]+)\/(live|media)\/([^/]+)/.exec(t.pathname)?.[3]}},[S.kodik]:class extends dt{API_ORIGIN=window.location.origin;async getSecureData(t){try{const e=await this.fetch(`${this.API_ORIGIN}${t}`,{headers:{"User-Agent":P.userAgent,Origin:this.API_ORIGIN,Referer:this.API_ORIGIN}}),o=await e.text(),[i,a,n]=t.split("/").filter((t=>t)),r=(new DOMParser).parseFromString(o,"text/html"),s=Array.from(r.getElementsByTagName("script")).filter((t=>t.innerHTML.includes(`videoId = "${a}"`)));if(!s.length)throw new lt("Failed to find secure script");const l=/'{[^']+}'/.exec(s[0].textContent.trim())?.[0];if(!l)throw new lt("Secure json wasn't found in secure script");const d=JSON.parse(l.replaceAll("'",""));return{videoType:i,videoId:a,hash:n,...d}}catch(e){return A.error(`Failed to get kodik secure data by videoPath: ${t}.`,e.message),!1}}async getFtor(t){const{videoType:e,videoId:o,hash:i,d:a,d_sign:n,pd:r,pd_sign:s,ref:l,ref_sign:d}=t;try{const t=await this.fetch(this.API_ORIGIN+"/ftor",{method:"POST",headers:{"User-Agent":P.userAgent,Origin:this.API_ORIGIN,Referer:`${this.API_ORIGIN}/${e}/${o}/${i}/360p`},body:new URLSearchParams({d:a,d_sign:n,pd:r,pd_sign:s,ref:decodeURIComponent(l),ref_sign:d,bad_user:"false",cdn_is_working:"true",info:"{}",type:e,hash:i,id:o})});return await t.json()}catch(t){return A.error(`Failed to get kodik video data (type: ${e}, id: ${o}, hash: ${i})`,t.message),!1}}decryptUrl(t){const e=atob(t.replace(/[a-zA-Z]/g,(function(t){const e=t.charCodeAt(0)+13,o=t<="Z"?90:122;return String.fromCharCode(o>=e?e:e-26)})));return"https:"+e}async getVideoData(t){const e=await this.getSecureData(t);if(!e)return;const o=await this.getFtor(e);if(!o)return;const i=Object.entries(o.links[o.default.toString()]),a=i.find((([t,e])=>"application/x-mpegURL"===e.type))?.[1];return a?{url:this.decryptUrl(a.src)}:void 0}async getVideoId(t){return/\/(seria|video)\/([^/]+)\/([^/]+)\/([\d]+)p/.exec(t.pathname)?.[0]}},[S.patreon]:class extends dt{API_ORIGIN="https://www.patreon.com/api";async getPosts(t){try{const e=await this.fetch(`${this.API_ORIGIN}/posts/${t}?json-api-use-default-includes=false`);return await e.json()}catch(e){return A.error(`Failed to get patreon posts by postId: ${t}.`,e.message),!1}}async getVideoData(t){const e=await this.getPosts(t);if(!e)return;const o=e.data.attributes.post_file.url;return o?{url:o}:void 0}async getVideoId(t){const e=/posts\/([^/]+)/.exec(t.pathname)?.[1];if(e)return e.replace(/[^\d.]/g,"")}},[S.reddit]:class extends dt{API_ORIGIN="https://www.reddit.com";async getVideoData(t){try{const t=document.querySelector("[data-hls-url]")?.dataset.hlsUrl.replaceAll("&","&");if(!t)throw new lt("Failed to find content url");return{url:decodeURIComponent(t)}}catch(e){return void A.error(`Failed to get reddit video data by video ID: ${t}`,e.message)}}async getVideoId(t){return/\/r\/(([^/]+)\/([^/]+)\/([^/]+)\/([^/]+))/.exec(t.pathname)?.[1]}},[S.bannedvideo]:class extends dt{API_ORIGIN="https://api.banned.video";async getVideoInfo(t){try{const e=await this.fetch(`${this.API_ORIGIN}/graphql`,{method:"POST",body:JSON.stringify({operationName:"GetVideo",query:"query GetVideo($id: String!) {\n getVideo(id: $id) {\n title\n description: summary\n duration: videoDuration\n videoUrl: directUrl\n isStream: live\n }\n }",variables:{id:t}}),headers:{"User-Agent":"bannedVideoFrontEnd","apollographql-client-name":"banned-web","apollographql-client-version":"1.3","content-type":"application/json"}});return await e.json()}catch(e){return console.error(`Failed to get bannedvideo video info by videoId: ${t}.`,e.message),!1}}async getVideoData(t){const e=await this.getVideoInfo(t);if(!e)return;const{videoUrl:o,duration:i,isStream:a,description:n,title:r}=e.data.getVideo;return{url:o,duration:i,isStream:a,title:r,description:n}}async getVideoId(t){return t.searchParams.get("id")??void 0}},[S.kick]:class extends dt{API_ORIGIN="https://kick.com/api";async getClipInfo(t){try{const e=await this.fetch(`${this.API_ORIGIN}/v2/clips/${t}`),o=await e.json(),{clip_url:i,duration:a,title:n}=o.clip;return{url:i,duration:a,title:n}}catch(e){return void A.error(`Failed to get kick clip info by clipId: ${t}.`,e.message)}}async getVideoInfo(t){try{const e=await this.fetch(`${this.API_ORIGIN}/v1/video/${t}`),o=await e.json(),{source:i,livestream:a}=o,{session_title:n,duration:r}=a;return{url:i,duration:Math.round(r/1e3),title:n}}catch(e){return void A.error(`Failed to get kick video info by videoId: ${t}.`,e.message)}}async getVideoData(t){return t.startsWith("videos")?await this.getVideoInfo(t.replace("videos/","")):await this.getClipInfo(t.replace("clips/",""))}async getVideoId(t){return/([^/]+)\/((videos|clips)\/([^/]+))/.exec(t.pathname)?.[2]}},[S.appledeveloper]:class extends dt{API_ORIGIN="https://developer.apple.com";async getVideoData(t){try{const t=document.querySelector("meta[property='og:video']")?.content;if(!t)throw new lt("Failed to find content url");return{url:t}}catch(e){return void A.error(`Failed to get apple developer video data by video ID: ${t}`,e.message)}}async getVideoId(t){return/videos\/play\/([^/]+)\/([\d]+)/.exec(t.pathname)?.[0]}},[S.epicgames]:class extends dt{API_ORIGIN="https://dev.epicgames.com/community/api/learning";async getPostInfo(t){try{const e=await this.fetch(`${this.API_ORIGIN}/post.json?hash_id=${t}`);return await e.json()}catch(e){return A.error(`Failed to get epicgames post info by videoId: ${t}.`,e.message),!1}}async getVideoData(t){const e=await this.getPostInfo(t);if(!e)return;const o=e.blocks.find((t=>"video"===t.type)),i=o?.video_url?.replace("qsep://","https://");if(!i)return;const{title:a,description:n}=e,r=o?.video_captions?.map((t=>({language:B(t.locale),format:"vtt",url:t.signed_url})));return{url:i,title:a,description:n,subtitles:r}}async getVideoId(t){return/\/(\w{3,5})\/[^/]+$/.exec(t.pathname)?.[1]}},[S.nineanimetv]:class extends dt{API_ORIGIN="https://9animetv.to/ajax/episode";RAPID_CLOUD_ORIGIN="https://rapid-cloud.co/ajax/embed-6-v2";async getSourceId(t){try{const e=await this.fetch(`${this.API_ORIGIN}/servers?episodeId=${t}`),o=await e.json();return!!o.html&&/data-id="(\d+)"/.exec(o.html)?.[1]}catch(e){return A.error(`Failed to get 9animetv servers info by episodeId: ${t}.`,e.message),!1}}async getPlayerLink(t){try{const e=await this.fetch(`${this.API_ORIGIN}/sources?id=${t}`),o=await e.json();return!!o.link.includes("rapid-cloud.co")&&o.link}catch(e){return A.error(`Failed to get player link by sourceId: ${t}.`,e.message),!1}}async getRapidCloudData(t){try{const e=await this.fetch(`${this.RAPID_CLOUD_ORIGIN}/getSources?id=${t}`),o=await e.json();return o.encrypted?(A.warn("Encrypted RapidCloud data found. Let us know about it",o),!1):o}catch(e){return A.error(`Failed to get rapid cloud data by rapidId: ${t}.`,e.message),!1}}async getVideoData(t){const e=t.split("?ep=")[1],o=await this.getSourceId(e);if(!o)return;const i=await this.getPlayerLink(o);if(!i)return;const a=/\/([^/?]+)\?/.exec(i)?.[1];if(!a)return;const n=await this.getRapidCloudData(a);if(!n)return;const r=n.sources.find((t=>"hls"===t.type))?.file;if(!r)return;const s=n.tracks.reduce(((t,e)=>{const o=/([\w+]+)(-\d)?\.vtt/.exec(e.file)?.[1];if(!o)return t;const i=B(3===o.length?o:e.label);return t.find((t=>t.language===i))||t.push({language:i,format:"vtt",url:e.file}),t}),[]);return{url:r,subtitles:s}}async getVideoId(t){return new Promise((t=>{const e="https://9animetv.to";window.addEventListener("message",(o=>{o.origin===e&&o.data?.startsWith("getVideoId:")&&t(o.data.replace("getVideoId:",""))})),window.top.postMessage("getVideoId",e)}))}},[S.odysee]:class extends dt{API_ORIGIN="https://odysee.com";async getVideoData(t){try{const e=await this.fetch(`${this.API_ORIGIN}/${t}`),o=await e.text(),i=/"contentUrl":(\s)?"([^"]+)"/.exec(o)?.[2];if(!i)throw new Error("Odysee url doesn't parsed");return{url:i}}catch(e){return void A.error(`Failed to get odysee video data by video ID: ${t}`,e.message)}}async getVideoId(t){return t.pathname.slice(1)}},[S.coursehunterLike]:class extends dt{API_ORIGIN=this.origin??"https://coursehunter.net";async getCourseId(t){try{const e=await this.fetch(`${this.API_ORIGIN}/${t}`),o=await e.text();return/course_id(\s)?=(\s)?([\d]+)/.exec(o)?.[3]}catch(e){return A.error(`Failed to get CoursehunterLike courseId by videoId: ${t}, because ${e.message}`),!1}}async getLessonsData(t){try{const e=await this.fetch(`${this.API_ORIGIN}/api/v1/course/${t}/lessons`);return await e.json()}catch(e){return A.error(`Failed to get CoursehunterLike lessons data by courseId: ${t}, because ${e.message}`),!1}}async getVideoData(t){const e=await this.getCourseId(t);if(!e)return;const o=await this.getLessonsData(e);if(!o)return;const i=+(t.split("?lesson=")?.[1]??1),a=o?.[i-1],{file:n,duration:r,title:s}=a;return n?{url:n,duration:r,title:s}:void 0}async getVideoId(t){const e=/course\/([^/]+)/.exec(t.pathname)?.[0];return e?e+t.search:void 0}},[S.twitch]:class extends dt{API_ORIGIN="https://clips.twitch.tv";async getClipLink(t,e){const o=document.querySelector("script[type='application/ld+json']"),i=t.slice(1);if(o){const t=JSON.parse(o.innerText),e=t["@graph"].find((t=>"VideoObject"===t["@type"]))?.creator.url;return`${e.replace("https://www.twitch.tv/","")}/clip/${i}`}const a="embed"===i,n=document.querySelector(a?".tw-link[data-test-selector='stream-info-card-component__stream-avatar-link']":".clips-player a:not([class])");if(!n)return;return`${n.href.replace("https://www.twitch.tv/","")}/clip/${a?e:i}`}async getVideoId(t){const e=t.pathname;if(/^m\.twitch\.tv$/.test(e))return/videos\/([^/]+)/.exec(t.href)?.[0]??e.slice(1);if(/^player\.twitch\.tv$/.test(t.hostname))return`videos/${t.searchParams.get("video")}`;const o=/([^/]+)\/(?:clip)\/([^/]+)/.exec(e);if(o)return o[0];return/^clips\.twitch\.tv$/.test(t.hostname)?await this.getClipLink(e,t.searchParams.get("clip")):/(?:videos)\/([^/]+)/.exec(e)?.[0]}},[S.sap]:class extends dt{API_ORIGIN="https://learning.sap.com/";async requestKaltura(t,e,o){try{const i=await this.fetch(`https://${t}/api_v3/service/multirequest`,{method:"POST",body:JSON.stringify({1:{service:"session",action:"startWidgetSession",widgetId:`_${e}`},2:{service:"baseEntry",action:"list",ks:"{1:result:ks}",filter:{redirectFromEntryId:o},responseProfile:{type:1,fields:"id,referenceId,name,description,dataUrl,duration,flavorParamsIds,type,dvrStatus,externalSourceType,createdAt,updatedAt,endDate,plays,views,downloadUrl,creatorId"}},3:{service:"baseEntry",action:"getPlaybackContext",entryId:"{2:result:objects:0:id}",ks:"{1:result:ks}",contextDataParams:{objectType:"KalturaContextDataParams",flavorTags:"all"}},apiVersion:"3.3.0",format:1,ks:"",clientTag:"html5:v3.17.22",partnerId:e}),headers:{"Content-Type":"application/json"}});return await i.json()}catch(t){return void A.error("Failed to request kaltura data",t.message)}}async getKalturaData(t){try{const e=/https:\/\/([^"]+)\/p\/([^"]+)\/embedPlaykitJs\/uiconf_id\/([^"]+)/.exec(document.querySelector('script[data-nscript="beforeInteractive"]')?.src);if(!e)throw new lt(`Failed to get sap data for videoId: ${t}`);const[,o,i]=e;let a=document.querySelector("#shadow")?.firstChild?.getAttribute("id");if(a||(a=/"sourceId":\s?"([^"]+)"/.exec(document.querySelector("#__NEXT_DATA__")?.innerText)?.[1]),!o||Number.isNaN(+i)||!a)throw new lt(`One of the necessary parameters for getting a link to a sap video in wasn't found for ${t}. Params: kalturaDomain = ${o}, partnerId = ${i}, entryId = ${a}`);return await this.requestKaltura(o,i,a)}catch(t){return void A.error("Failed to get kaltura data",t.message)}}async getVideoData(t){const e=await this.getKalturaData(t);if(!e)return;const[,o,i]=e,{duration:a}=o.objects[0],n=i.sources.find((t=>"url"===t.format&&"http,https"===t.protocols&&t.url.includes(".mp4")))?.url;if(!n)return;return{url:n,subtitles:i.playbackCaptions.map((t=>({language:B(t.languageCode),format:"vtt",url:t.webVttUrl,isAutoGenerated:t.label.includes("auto-generated")}))),duration:a}}async getVideoId(t){return/((courses|learning-journeys)\/([^/]+)(\/[^/]+)?)/.exec(t.pathname)?.[1]}},[S.udemy]:class extends dt{API_ORIGIN="https://www.udemy.com/api-2.0";getModuleData(){const t=document.querySelector(".ud-app-loader[data-module-id='course-taking']")?.dataset?.moduleArgs;return t?JSON.parse(t):(console.error(X.get("udemyModuleArgsNotFound")),{})}getLectureId(){return/learn\/lecture\/([^/]+)/.exec(window.location.pathname)?.[1]}async getLectureData(t,e){const o=await this.fetch(`${this.API_ORIGIN}/users/me/subscribed-courses/${t}/lectures/${e}/?`+new URLSearchParams({"fields[lecture]":"title,description,asset","fields[asset]":"length,media_sources,captions"}));return await o.json()}async getCourseLang(t){const e=await this.fetch(`${this.API_ORIGIN}/users/me/subscribed-courses/${t}?`+new URLSearchParams({"fields[course]":"locale"}));return await e.json()}findVideoUrl(t){return t?.find((t=>"video/mp4"===t.type))?.src}findSubtitleUrl(t,e){let o=t?.find((t=>B(t.locale_id)===e));return o||(o=t?.find((t=>"en"===B(t.locale_id)))??t?.[0]),o?.url}async getVideoData(t){const{courseId:e}=this.getModuleData();if(!e)return;const o=this.getLectureId();if(D.log(`[Udemy] courseId: ${e}, lectureId: ${o}`),!o)return;const{title:i,description:a,asset:n}=await this.getLectureData(e,o),{length:r,media_sources:s,captions:l}=n,d=this.findVideoUrl(s);if(!d)return void console.log("Failed to find .mp4 video file in media_sources",s);const u=await this.getCourseLang(e);let{locale:{locale:c}}=u;c=c?B(c):"en",ut.includes(c)||(c="en");const h=this.findSubtitleUrl(l,c);return h||console.log("Failed to find subtitle file in captions",l),{...h?{url:this.service?.url+t,translationHelp:[{target:"subtitles_file_url",targetUrl:h},{target:"video_file_url",targetUrl:d}],detectedLanguage:c}:{url:d,translationHelp:null},duration:r,title:i,description:a}}async getVideoId(t){return t.pathname.slice(1)}},[S.coursera]:class extends dt{API_ORIGIN="https://www.coursera.org/api";async getCourseData(t){const e=await this.fetch(`${this.API_ORIGIN}/onDemandCourses.v1/${t}`),o=await e.json();return o?.elements?.[0]}getPlayer(){return document.querySelector(".vjs-v8")}getPlayerData(){return this.getPlayer()?.player}findVideoUrl(t){return t?.find((t=>"video/mp4"===t.type))?.src}findSubtitleUrl(t,e){let o=t?.find((t=>B(t.srclang)===e));return o||(o=t?.find((t=>"en"===B(t.srclang)))||t?.[0]),o?.src}async getVideoData(t){const e=this.getPlayerData(),{duration:o}=e?.cache_||{},{courseId:i,tracks:a,sources:n}=e?.options_||{},r=this.findVideoUrl(n);if(!r)return void console.log("Failed to find .mp4 video file in sources",n);const{primaryLanguageCodes:s}=await this.getCourseData(i);let l=s?.[0];l=l?B(l):"en",ut.includes(l)||(l="en");const d=this.findSubtitleUrl(a,l);return d||console.log("Failed to find subtitle file in tracks",a),{...d?{url:this.service?.url+t,translationHelp:[{target:"subtitles_file_url",targetUrl:d},{target:"video_file_url",targetUrl:r}]}:{url:r,translationHelp:null},detectedLanguage:l,duration:o}}async getVideoId(t){return/learn\/([^/]+)\/lecture\/([^/]+)/.exec(t.pathname)?.[0]}},[S.linkedin]:class extends dt{API_ORIGIN="https://www.linkedin.com/learning";async getVideoData(t){try{const e=document.querySelector(".video-js");if(!e)throw new lt(`Failed to find video element for videoID ${t}`);const o=(e.getAttribute("data-sources")??"[]").replaceAll(""",'"').replaceAll("&","&"),i=JSON.parse(o).find((t=>t.src.includes(".mp4")));if(!i)throw new Error(`Failed to find video url for videoID ${t}`);const a=new URL(i.src),n=e.getAttribute("data-captions-url"),r=n?[{language:"en",format:"vtt",url:n}]:void 0;return{url:N(a),subtitles:r}}catch(t){return void A.error("Failed to get linkedin video data",t.message)}}async getVideoId(t){return/\/learning\/(([^/]+)\/([^/]+))/.exec(t.pathname)?.[1]}},[S.vimeo]:class extends dt{API_KEY="";DEFAULT_SITE_ORIGIN="https://vimeo.com";SITE_ORIGIN=this.isPrivatePlayer()?this.service?.url?.slice(0,-1)??this.DEFAULT_SITE_ORIGIN:this.DEFAULT_SITE_ORIGIN;isErrorData(t){return Object.hasOwn(t,"error")}isPrivatePlayer(){return this.referer&&!this.referer.includes("vimeo.com")}async getViewerData(){try{const t=await this.fetch("https://vimeo.com/_next/viewer"),e=await t.json(),{apiUrl:o,jwt:i}=e;return this.API_ORIGIN=`https://${o}`,this.API_KEY=`jwt ${i}`,e}catch(t){return A.error("Failed to get default viewer data.",t.message),!1}}async getVideoInfo(t){try{const e=new URLSearchParams({fields:"name,link,description,duration"}).toString(),o=await this.fetch(`${this.API_ORIGIN}/videos/${t}?${e}`,{headers:{Authorization:this.API_KEY}}),i=await o.json();if(this.isErrorData(i))throw new Error(i.developer_message??i.error);return i}catch(e){return A.error(`Failed to get video info by video ID: ${t}`,e.message),!1}}async getPrivateVideoSource(t){try{const{default_cdn:e,cdns:o}=t.dash,i=o[e].url,a=await this.fetch(i);if(200!==a.status)throw new lt(await a.text());const n=await a.json(),r=new URL(i),s=Array.from(n.base_url.matchAll(/\.\.\//g)).length+1,l=r.pathname.split("/");let d=n.base_url.replaceAll("../","");d=d&&!d.startsWith("/")?`/${d}`:d,r.pathname=l.slice(0,l.length-s).join("/")+d,r.pathname.endsWith("/")||(r.pathname+="/");const u=n.audio.find((t=>"audio/mp4"===t.mime_type&&"dash"===t.format));if(!u)throw new lt("Failed to find video data");const c=u.segments?.[0]?.url;if(!c)throw new lt("Failed to find first segment url");const[h,p]=c.split("?",2),g=new URLSearchParams(p);return g.delete("range"),r.pathname+=`${u.base_url}${h}`,r.href=r.href.split("?")[0]+"?"+g.toString(),r.href}catch(t){return A.error("Failed to get private video source",t.message),!1}}async getPrivateVideoInfo(t){try{const e=await this.getPrivateVideoSource(playerConfig.request.files);if(!e)throw new lt("Failed to get private video source");const{title:o,duration:i}=playerConfig.video,{text_tracks:a}=playerConfig.request;return{url:`${this.SITE_ORIGIN}/${t}`,video_url:e,title:o,duration:i,subs:a}}catch(e){return A.error(`Failed to get private video info by video ID: ${t}`,e.message),!1}}async getSubsInfo(t){try{const e=new URLSearchParams({per_page:"100",fields:"language,type,link"}).toString(),o=await this.fetch(`${this.API_ORIGIN}/videos/${t}/texttracks?${e}`,{headers:{Authorization:this.API_KEY}}),i=await o.json();if(this.isErrorData(i))throw new Error(i.developer_message??i.error);return i}catch(e){return A.error(`Failed to get subtitles info by video ID: ${t}`,e.message),!1}}async getVideoData(t){const e=this.isPrivatePlayer();if(!this.extraInfo)return this.returnBaseData(t);if(e){const e=await this.getPrivateVideoInfo(t);if(!e)return;const{url:o,subs:i,video_url:a,title:n,duration:r}=e,s=i.map((t=>({language:B(t.lang),format:"vtt",url:this.SITE_ORIGIN+t.url,isAutoGenerated:t.lang.includes("autogenerated")}))),l=s.length?[{target:"video_file_url",targetUrl:a},{target:"subtitles_file_url",targetUrl:s[0].url}]:null;return{...l?{url:o,translationHelp:l}:{url:a},subtitles:s,title:n,duration:r}}t.startsWith("video/")&&(t=t.replace("video/","")),t.includes("/")&&(t=t.replace("/",":"));if(!await this.getViewerData())return this.returnBaseData(t);const o=await this.getVideoInfo(t);if(!o)return this.returnBaseData(t);const i=await this.getSubsInfo(t),a=i?i.data.map((t=>({language:B(t.language),format:"vtt",url:t.link,isAutoGenerated:t.language.includes("autogen")}))):[],{link:n,duration:r,name:s,description:l}=o;return{url:n,title:s,description:l,subtitles:a,duration:r}}async getVideoId(t){const e=/[^/]+\/[^/]+$/.exec(t.pathname)?.[0];return this.isPrivatePlayer()?e:e?.startsWith("video/")?e.replace("video/",""):e??/[^/]+$/.exec(t.pathname)?.[0]}},[S.yandexdisk]:class extends dt{API_ORIGIN="https://disk.yandex.ru";CLIENT_PREFIX="/client/disk";async getVideoData(t){if(!t.startsWith(this.CLIENT_PREFIX))return{url:this.service.url+t};const e=new URL(window.location).searchParams.get("idDialog");if(!e)return;const o=document.querySelector("#preloaded-data");if(o)try{const t=JSON.parse(o.innerText),{idClient:i,sk:a}=t.config,n=await this.fetch(this.API_ORIGIN+"/models/?_m=resource",{method:"POST",body:new URLSearchParams({idClient:i,sk:a,"_model.0":"resource","id.0":e.replaceAll(" ","+")}).toString().replaceAll(/%2B/g,"+"),headers:{"Content-Type":"application/x-www-form-urlencoded; charset=UTF-8"}}),r=await n.json();if(!r.models)throw new lt("Failed to get resource info");const s=r.models[0].data;if(Object.hasOwn(s,"error"))throw new lt(s.error?.message);const{meta:l,name:d}=s,{short_url:u,video_info:c}=l;if(!c)throw new lt("There's no video open right now");if(!u)throw new lt("VOTLimitedVideoAccess");return{url:u,title:d.replace(/(\.[^.]+)$/,""),duration:c.duration}}catch(e){if(e.message?.startsWith("VOT"))throw new pt(e.message);return void console.error(`Failed to get yandex disk video data by video ID: ${t}`,e.message)}}async getVideoId(t){const e=/\/i\/([^/]+)/.exec(t.pathname)?.[1];return e||(t.pathname.startsWith(this.CLIENT_PREFIX)?t.pathname+t.search:void 0)}},[S.vk]:class extends dt{async getVideoId(t){const e=/^\/(video|clip)-?\d{8,9}_\d{9}$/.exec(t.pathname);if(e)return e[0].slice(1);const o=t.searchParams.get("z");if(o)return o.split("/")[0];const i=t.searchParams.get("oid"),a=t.searchParams.get("id");return i&&a?`video-${Math.abs(parseInt(i))}_${a}`:void 0}},[S.trovo]:class extends dt{async getVideoId(t){const e=t.searchParams.get("vid"),o=/([^/]+)\/([\d]+)/.exec(t.pathname)?.[0];if(e&&o)return`${o}?vid=${e}`}},[S.incestflix]:class extends dt{async getVideoData(t){try{const t=document.querySelector("#incflix-stream source:first-of-type");if(!t)throw new lt("Failed to find source element");const e=t.getAttribute("src"),o=new URL(e.startsWith("//")?`https:${e}`:e);return o.searchParams.append("media-proxy","video.mp4"),{url:N(o)}}catch(e){return void A.error(`Failed to get Incestflix data by videoId: ${t}`,e.message)}}async getVideoId(t){return/\/watch\/([^/]+)/.exec(t.pathname)?.[1]}},[S.porntn]:class extends dt{async getVideoData(t){try{const t=document.body.innerHTML,e=/var flashvars\s=\s/,o=document.getElementsByTagName("script").find((t=>e.exec(t.textContent)));if(!o)throw new lt("Failed to find data script");const i=o.textContent.split(e)?.[1]?.split(";\n",1)[0].replace(/(\t|\n)/g,"");A.log(i);const a=/video_url: 'function\/0\/([^']+)'/.exec(t)?.[1],n=/rnd: '([^']+)'/.exec(t)?.[1];if(!a||!n)throw new lt("Failed to find video source or rnd");const r=/video_title: '([^']+)'/.exec(t)?.[1],s=new URL(a);return s.searchParams.append("rnd",n),A.log(s.href),{url:N(s),title:r}}catch(e){return void A.error(`Failed to get PornTN data by videoId: ${t}`,e.message)}}async getVideoId(t){return/\/videos\/(([^/]+)\/([^/]+))/.exec(t.pathname)?.[1]}}};class mt{helpersData;constructor(t={}){this.helpersData=t}getHelper(t){return new gt[t](this.helpersData)}}class vt extends Error{constructor(t){super(t),this.name="VideoDataError",this.message=t}}async function ft(t,e,o={}){const i=new URL(window.location.href),a=t.host;if(Object.keys(gt).includes(a)){const t=new mt(o).getHelper(a);return await t.getVideoId(i)}switch(a){case S.custom:return i.href;case S.piped:case S.poketube:case S.invidious:case S.ricktube:case S.youtube:return"youtu.be"===i.hostname&&(i.search=`?v=${i.pathname.replace("/","")}`,i.pathname="/watch"),/(?:watch|embed|shorts|live)\/([^/]+)/.exec(i.pathname)?.[1]??i.searchParams.get("v");case S.nine_gag:case S.gag:return/gag\/([^/]+)/.exec(i.pathname)?.[1];case S.proxitok:case S.tiktok:return/([^/]+)\/video\/([^/]+)/.exec(i.pathname)?.[0];case S.xvideos:return/[^/]+\/[^/]+$/.exec(i.pathname)?.[0];case S.pornhub:return i.searchParams.get("viewkey")??/embed\/([^/]+)/.exec(i.pathname)?.[1];case S.twitter:return/status\/([^/]+)/.exec(i.pathname)?.[1];case S.rumble:case S.facebook:return i.pathname.slice(1);case S.rutube:return/(?:video|embed)\/([^/]+)/.exec(i.pathname)?.[1];case S.bilibili:{const t=/bangumi\/play\/([^/]+)/.exec(i.pathname)?.[0];if(t)return t;const e=i.searchParams.get("bvid");if(e)return`video/${e}`;let o=/video\/([^/]+)/.exec(i.pathname)?.[0];return o&&null!==i.searchParams.get("p")&&(o+=`/?p=${i.searchParams.get("p")}`),o}case S.bitchute:return/(video|embed)\/([^/]+)/.exec(i.pathname)?.[2];case S.eporner:return/video-([^/]+)\/([^/]+)/.exec(i.pathname)?.[0];case S.peertube:return/\/w\/([^/]+)/.exec(i.pathname)?.[0];case S.dailymotion:{const t=Array.from(document.querySelectorAll("*")).filter((t=>t.innerHTML.trim().includes(".m3u8")));let e=t?.[1]?.lastChild?.src;if(!e)return;return/\/video\/(\w+)\.m3u8/.exec(e)?.[1]}case S.okru:return/\/video\/(\d+)/.exec(i.pathname)?.[1];case S.googledrive:return i.searchParams.get("docid");case S.newgrounds:return/([^/]+)\/(view)\/([^/]+)/.exec(i.pathname)?.[0];case S.egghead:return i.pathname.slice(1);case S.youku:return/v_show\/id_[\w=]+/.exec(i.pathname)?.[0];case S.archive:return/(details|embed)\/([^/]+)/.exec(i.pathname)?.[2];case S.watchpornto:return/(video|embed)\/(\d+)(\/[^/]+\/)?/.exec(i.pathname)?.[0];default:return}}async function bt(t,e,o={}){const i=await ft(t,0,o);if(!i)throw new vt(`Entered unsupported link: "${t.host}"`);const a=window.location.origin;if([S.peertube,S.coursehunterLike].includes(t.host)&&(t.url=a),t.rawResult)return{url:i,videoId:i,host:t.host,duration:void 0};if(!t.needExtraData)return{url:t.url+i,videoId:i,host:t.host,duration:void 0};const n=new mt({...o,service:t,origin:a}).getHelper(t.host),r=await n.getVideoData(i);if(!r)throw new vt(`Failed to get video raw url for ${t.host}`);return{...r,videoId:i,host:t.host}}class yt extends Error{data;constructor(t,e=void 0){super(t),this.data=e,this.name="VOTJSError",this.message=t}}class wt{host;hostVOT;schema;schemaVOT;fetch;fetchOpts;getVideoDataFn;sessions={};requestLang;responseLang;userAgent=P.userAgent;paths={videoTranslation:"/video-translation/translate",videoTranslationFailAudio:"/video-translation/fail-audio-js",videoTranslationAudio:"/video-translation/audio",videoSubtitles:"/video-subtitles/get-subtitles",streamPing:"/stream-translation/ping-stream",streamTranslation:"/stream-translation/translate-stream",createSession:"/session/create"};isCustomLink(t){return!!(/\.(m3u8|m4(a|v)|mpd)/.exec(t)??/^https:\/\/cdn\.qstv\.on\.epicgames\.com/.exec(t))}headers={"User-Agent":this.userAgent,Accept:"application/x-protobuf","Accept-Language":"en","Content-Type":"application/x-protobuf",Pragma:"no-cache","Cache-Control":"no-cache","Sec-Fetch-Mode":"no-cors"};headersVOT={"User-Agent":`vot.js/${P.version}`,"Content-Type":"application/json",Pragma:"no-cache","Cache-Control":"no-cache"};constructor({host:t=P.host,hostVOT:e=P.hostVOT,fetchFn:o=E,fetchOpts:i={},getVideoDataFn:a=bt,requestLang:n="en",responseLang:r="ru",headers:s={}}={}){const l=/(http(s)?):\/\//,d=l.exec(t)?.[1];this.host=d?t.replace(`${d}://`,""):t,this.schema=d??"https";const u=l.exec(e)?.[1];this.hostVOT=u?e.replace(`${u}://`,""):e,this.schemaVOT=u??"https",this.fetch=o,this.fetchOpts=i,this.getVideoDataFn=a,this.requestLang=n,this.responseLang=r,this.headers={...this.headers,...s}}getOpts(t,e={},o="POST"){return{method:o,headers:{...this.headers,...e},body:t,...this.fetchOpts}}async request(t,e,o={},i="POST"){const a=this.getOpts(new Blob([e]),o,i);try{const e=await this.fetch(`${this.schema}://${this.host}${t}`,a),o=await e.arrayBuffer();return{success:200===e.status,data:o}}catch(t){return{success:!1,data:t?.message}}}async requestJSON(t,e=null,o={},i="POST"){const a=this.getOpts(e,{"Content-Type":"application/json",...o},i);try{const e=await this.fetch(`${this.schema}://${this.host}${t}`,a),o=await e.json();return{success:200===e.status,data:o}}catch(t){return{success:!1,data:t?.message}}}async requestVOT(t,e,o={}){const i=this.getOpts(JSON.stringify(e),{...this.headersVOT,...o});try{const e=await this.fetch(`${this.schemaVOT}://${this.hostVOT}${t}`,i),o=await e.json();return{success:200===e.status,data:o}}catch(t){return{success:!1,data:t?.message}}}async getSession(t){const e=Math.floor(Date.now()/1e3),o=this.sessions[t];if(o&&o.timestamp+o.expires>e)return o;const{secretKey:i,expires:a,uuid:n}=await this.createSession(t);return this.sessions[t]={secretKey:i,expires:a,timestamp:e,uuid:n},this.sessions[t]}async translateVideoYAImpl({videoData:t,requestLang:e=this.requestLang,responseLang:o=this.responseLang,translationHelp:i=null,headers:a={},shouldSendFailedAudio:n=!0}){const{url:r,duration:s=P.defaultDuration}=t,l=await this.getSession("video-translation"),d=C.encodeTranslationRequest(r,s,e,o,i),u=this.paths.videoTranslation,c=await V("Vtrans",l,d,u),h=await this.request(u,d,{...c,...a});if(!h.success)throw new pt("requestTranslationFailed");const p=C.decodeTranslationResponse(h.data);switch(D.log("requestTranslation",p),p.status){case k.FAILED:throw p?.message?new yt("Yandex couldn't translate video",p):new pt("requestTranslationFailed");case k.FINISHED:case k.PART_CONTENT:if(!p.url)throw new pt("audioNotReceived");return{translated:!0,url:p.url,remainingTime:p.remainingTime??-1};case k.WAITING:return{translated:!1,remainingTime:p.remainingTime};case k.LONG_WAITING:case k.LONG_WAITING_2:return r.startsWith("https://youtu.be/")&&n?(await this.requestVtransFailAudio(r),await this.requestVtransAudio(r,p.translationId),await this.translateVideoYAImpl({videoData:t,requestLang:e,responseLang:o,translationHelp:i,headers:a,shouldSendFailedAudio:!1})):{translated:!1,remainingTime:p.remainingTime??-1};default:throw A.error("Unknown response",p),new yt("Unknown response from Yandex",p)}}async translateVideoVOTImpl({url:t,videoId:e,service:o,requestLang:i=this.requestLang,responseLang:a=this.responseLang,headers:n={}}){const r=function(t,e,o){return t===S.patreon?{service:"mux",videoId:new URL(o).pathname.slice(1)}:{service:t,videoId:e}}(o,e,t),s=await this.requestVOT(this.paths.videoTranslation,{provider:"yandex",service:r.service,videoId:r.videoId,fromLang:i,toLang:a,rawVideo:t},n);if(!s.success)throw new pt("requestTranslationFailed",s);const l=s.data;switch(l.status){case"failed":throw new yt("Yandex couldn't translate video",l);case"success":if(!l.translatedUrl)throw new pt("audioNotReceived");return{translated:!0,url:l.translatedUrl,remainingTime:-1};case"waiting":return{translated:!1,remainingTime:l.remainingTime,message:l.message}}}async requestVtransFailAudio(t){const e=await this.requestJSON(this.paths.videoTranslationFailAudio,JSON.stringify({video_url:t}),void 0,"PUT");if(!e.data||"string"==typeof e.data||1!==e.data.status)throw new yt("Failed to request to fake video translation fail audio js",e);return e}async requestVtransAudio(t,e,o={}){const i=await this.getSession("video-translation"),a=C.encodeTranslationAudioRequest(t,e),n=this.paths.videoTranslationAudio,r=await V("Vtrans",i,a,n),s=await this.request(n,a,{...r,...o},"PUT");if(!s.success)throw new yt("Failed to request video translation audio",s);return C.decodeTranslationAudioResponse(s.data)}async translateVideo({videoData:t,requestLang:e=this.requestLang,responseLang:o=this.responseLang,translationHelp:i=null,headers:a={}}){const{url:n,videoId:r,host:s}=t;return this.isCustomLink(n)?await this.translateVideoVOTImpl({url:n,videoId:r,service:s,requestLang:e,responseLang:o,headers:a}):await this.translateVideoYAImpl({videoData:t,requestLang:e,responseLang:o,translationHelp:i,headers:a})}async getSubtitles({videoData:t,requestLang:e=this.requestLang,headers:o={}}){const{url:i}=t;if(this.isCustomLink(i))return{waiting:!1,subtitles:[]};const a=await this.getSession("video-translation"),n=C.encodeSubtitlesRequest(i,e),r=this.paths.videoSubtitles,s=await V("Vsubs",a,n,r),l=await this.request(r,n,{...s,...o});if(!l.success)throw new yt("Failed to request video subtitles",l);return C.decodeSubtitlesResponse(l.data)}async pingStream({pingId:t,headers:e={}}){const o=await this.getSession("video-translation"),i=C.encodeStreamPingRequest(t),a=this.paths.streamPing,n=await V("Vtrans",o,i,a),r=await this.request(a,i,{...n,...e});if(!r.success)throw new yt("Failed to request stream ping",r);return!0}async translateStream({videoData:t,requestLang:e=this.requestLang,responseLang:o=this.responseLang,headers:a={}}){const{url:n}=t;if(this.isCustomLink(n))throw new pt("VOTStreamNotSupportedUrl");const r=await this.getSession("video-translation"),s=C.encodeStreamRequest(n,e,o),l=this.paths.streamTranslation,d=await V("Vtrans",r,s,l),u=await this.request(l,s,{...d,...a});if(!u.success)throw new yt("Failed to request stream translation",u);const c=C.decodeStreamResponse(u.data),h=c.interval;switch(h){case i.NO_CONNECTION:case i.TRANSLATING:return{translated:!1,interval:h,message:h===i.NO_CONNECTION?"streamNoConnectionToServer":"translationTakeFewMinutes"};case i.STREAMING:return{translated:!0,interval:h,pingId:c.pingId,result:c.translatedInfo};default:throw A.error("Unknown response",c),new yt("Unknown response from Yandex",c)}}async createSession(t){const e=function(){let t="";for(let e=0;e<32;e++)t+="0123456789ABCDEF"[Math.floor(16*Math.random())];return t}(),o=C.encodeYandexSessionRequest(e,t),i=await this.request(this.paths.createSession,o,{"Vtrans-Signature":await O(o)});if(!i.success)throw new yt("Failed to request create session",i);return{...C.decodeYandexSessionResponse(i.data),uuid:e}}}class xt extends wt{async request(t,e,o={},i="POST"){const a=this.getOpts(JSON.stringify({headers:{...this.headers,...o},body:Array.from(e)}),{"Content-Type":"application/json"},i);try{const e=await this.fetch(`${this.schema}://${this.host}${t}`,a),o=await e.arrayBuffer();return{success:200===e.status,data:o}}catch(t){return{success:!1,data:t?.message}}}async requestJSON(t,e=null,o={},i="POST"){const a=this.getOpts(JSON.stringify({headers:{...this.headers,"Content-Type":"application/json",Accept:"application/json",...o},body:e}),{Accept:"application/json","Content-Type":"application/json"},i);try{const e=await this.fetch(`${this.schema}://${this.host}${t}`,a),o=await e.json();return{success:200===e.status,data:o}}catch(t){return{success:!1,data:t?.message}}}}var St;function kt(t,e=","){const o=t/1e3,i=Math.floor(o/3600),a=Math.floor(o%3600/60),n=Math.floor(o%60),r=Math.floor(t%1e3);return`${i.toString().padStart(2,"0")}:${a.toString().padStart(2,"0")}:${n.toString().padStart(2,"0")}${e}${r.toString().padStart(3,"0")}`}function Tt(t){const e=t.split(" ")?.[0]?.split(":");e.length<3&&e.unshift("00");const[o,i,a]=e;return 36e5*+o+6e4*+i+ +a.replace(/[,.]/,"")}function Ct(t,e="srt"){const o="vtt"===e,i=o?".":",",a=t.subtitles.map(((t,e)=>(o?"":`${e+1}\n`)+`${kt(t.startMs,i)} --\x3e ${kt(t.startMs+t.durationMs,i)}\n${t.text}\n\n`)).join("").trim();return o?`WEBVTT\n\n${a}`:a}function Pt(t,e="srt"){const o=function(t){return"string"!=typeof t?"json":/(WEBVTT)(\r?\n\r?\n)/.exec(t)?"vtt":"srt"}(t);return o===e?t:"json"===o?Ct(t,e):(t=function(t,e="srt"){const o=t.split(/\r?\n\r?\n/g);"vtt"===e&&o.shift();const i=+("srt"===e);return{containsTokens:!1,subtitles:o.reduce(((t,e)=>{const o=e.trim().split("\n"),a=o[i],n=o.slice(i+1).join("\n");if(!(2===o.length&&e.includes(" --\x3e ")||a?.includes(" --\x3e ")))return 0===t.length||(t[t.length-1].text+=`\n\n${o.join("\n")}`),t;const[r,s]=a.split(" --\x3e "),l=Tt(r),d=Tt(s)-l;return t.push({text:n,startMs:l,durationMs:d,speakerId:"0"}),t}),[])}}(t,o),"json"===e?t:Ct(t,e))}!function(t){t.Channel="Channel",t.Video="Video"}(St||(St={}));const Lt=globalThis,At=Lt.trustedTypes,It=At?At.createPolicy("lit-html",{createHTML:t=>t}):void 0,_t="$lit$",Ot=`lit$${Math.random().toFixed(9).slice(2)}$`,Vt="?"+Ot,Mt=`<${Vt}>`,Et=document,Bt=()=>Et.createComment(""),Nt=t=>null===t||"object"!=typeof t&&"function"!=typeof t,Rt=Array.isArray,$t=t=>Rt(t)||"function"==typeof t?.[Symbol.iterator],Dt="[ \t\n\f\r]",Ft=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,qt=/-->/g,Ut=/>/g,Ht=RegExp(`>|${Dt}(?:([^\\s"'>=/]+)(${Dt}*=${Dt}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),zt=/'/g,Wt=/"/g,jt=/^(?:script|style|textarea|title)$/i,Gt=t=>(e,...o)=>({_$litType$:t,strings:e,values:o}),Yt=Gt(1),Jt=Gt(2),Kt=(Gt(3),Symbol.for("lit-noChange")),Zt=Symbol.for("lit-nothing"),Xt=new WeakMap,Qt=Et.createTreeWalker(Et,129);function te(t,e){if(!Rt(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==It?It.createHTML(e):e}const ee=(t,e)=>{const o=t.length-1,i=[];let a,n=2===e?"":3===e?"":"",r=Ft;for(let e=0;e"===l[0]?(r=a??Ft,d=-1):void 0===l[1]?d=-2:(d=r.lastIndex-l[2].length,s=l[1],r=void 0===l[3]?Ht:'"'===l[3]?Wt:zt):r===Wt||r===zt?r=Ht:r===qt||r===Ut?r=Ft:(r=Ht,a=void 0);const c=r===Ht&&t[e+1].startsWith("/>")?" ":"";n+=r===Ft?o+Mt:d>=0?(i.push(s),o.slice(0,d)+_t+o.slice(d)+Ot+c):o+Ot+(-2===d?e:c)}return[te(t,n+(t[o]||"")+(2===e?"":3===e?"":"")),i]};class oe{constructor({strings:t,_$litType$:e},o){let i;this.parts=[];let a=0,n=0;const r=t.length-1,s=this.parts,[l,d]=ee(t,e);if(this.el=oe.createElement(l,o),Qt.currentNode=this.el.content,2===e||3===e){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(i=Qt.nextNode())&&s.length0){i.textContent=At?At.emptyScript:"";for(let o=0;o2||""!==o[0]||""!==o[1]?(this._$AH=Array(o.length-1).fill(new String),this.strings=o):this._$AH=Zt}_$AI(t,e=this,o,i){const a=this.strings;let n=!1;if(void 0===a)t=ie(this,t,e,0),n=!Nt(t)||t!==this._$AH&&t!==Kt,n&&(this._$AH=t);else{const i=t;let r,s;for(t=a[0],r=0;r{const i=o?.renderBefore??e;let a=i._$litPart$;if(void 0===a){const t=o?.renderBefore??null;i._$litPart$=a=new ne(e.insertBefore(Bt(),t),t,void 0,o??{})}return a._$AI(t),a};function pe(t){return String(t).split("").map((t=>t.charCodeAt(0)))}function ge(t){return new Uint8Array(pe(t))}function me(t){const e=new ArrayBuffer(2*t.length),o=new Uint8Array(e);return new Uint16Array(e).set(pe(t)),o}function ve(t){const e=255;return[t>>>24&e,t>>>16&e,t>>>8&e,t&e]}function fe(t){return 11+t}function be(t,e,o,i){return 11+e+1+1+(i?2+2*(o+1):o+1)+t}function ye(t){let e=0;return t.forEach((t=>{e+=2+2*t[0].length+2+2+2*t[1].length+2})),11+e}function we(t,e){const o=2*e;let i=0;return t.forEach((t=>{i+=2+2*t[0].length+2+4})),18+o+2+i}class xe{_setIntegerFrame(t,e){const o=parseInt(e,10);this.frames.push({name:t,value:o,size:fe(o.toString().length)})}_setStringFrame(t,e){const o=e.toString();let i=13+2*o.length;"TDAT"===t&&(i=fe(o.length)),this.frames.push({name:t,value:o,size:i})}_setPictureFrame(t,e,o,i){const a=function(t){if(!t||!t.length)return null;if(255===t[0]&&216===t[1]&&255===t[2])return"image/jpeg";if(137===t[0]&&80===t[1]&&78===t[2]&&71===t[3])return"image/png";if(71===t[0]&&73===t[1]&&70===t[2])return"image/gif";if(87===t[8]&&69===t[9]&&66===t[10]&&80===t[11])return"image/webp";const e=73===t[0]&&73===t[1]&&42===t[2]&&0===t[3],o=77===t[0]&&77===t[1]&&0===t[2]&&42===t[3];return e||o?"image/tiff":66===t[0]&&77===t[1]?"image/bmp":0===t[0]&&0===t[1]&&1===t[2]&&0===t[3]?"image/x-icon":null}(new Uint8Array(e)),n=o.toString();if(!a)throw new Error("Unknown picture MIME type");o||(i=!1),this.frames.push({name:"APIC",value:e,pictureType:t,mimeType:a,useUnicodeEncoding:i,description:n,size:be(e.byteLength,a.length,n.length,i)})}_setLyricsFrame(t,e,o){const i=t.split("").map((t=>t.charCodeAt(0))),a=e.toString(),n=o.toString();var r,s;this.frames.push({name:"USLT",value:n,language:i,description:a,size:(r=a.length,s=n.length,16+2*r+2+2+2*s)})}_setCommentFrame(t,e,o){const i=t.split("").map((t=>t.charCodeAt(0))),a=e.toString(),n=o.toString();var r,s;this.frames.push({name:"COMM",value:n,language:i,description:a,size:(r=a.length,s=n.length,16+2*r+2+2+2*s)})}_setPrivateFrame(t,e){const o=t.toString();var i,a;this.frames.push({name:"PRIV",value:e,id:o,size:(i=o.length,a=e.byteLength,10+i+1+a)})}_setUserStringFrame(t,e){const o=t.toString(),i=e.toString();var a,n;this.frames.push({name:"TXXX",description:o,value:i,size:(a=o.length,n=i.length,13+2*a+2+2+2*n)})}_setUrlLinkFrame(t,e){const o=e.toString();var i;this.frames.push({name:t,value:o,size:(i=o.length,10+i)})}_setPairedTextFrame(t,e){this.frames.push({name:t,value:e,size:ye(e)})}_setSynchronisedLyricsFrame(t,e,o,i,a){const n=a.toString(),r=i.split("").map((t=>t.charCodeAt(0)));this.frames.push({name:"SYLT",value:e,language:r,description:n,type:t,timestampFormat:o,size:we(e,n.length)})}constructor(t){if(!t||"object"!=typeof t||!("byteLength"in t))throw new Error("First argument should be an instance of ArrayBuffer or Buffer");this.arrayBuffer=t,this.padding=4096,this.frames=[],this.url=""}setFrame(t,e){switch(t){case"TPE1":case"TCOM":case"TCON":{if(!Array.isArray(e))throw new Error(`${t} frame value should be an array of strings`);const o="TCON"===t?";":"/",i=e.join(o);this._setStringFrame(t,i);break}case"TLAN":case"TIT1":case"TIT2":case"TIT3":case"TALB":case"TPE2":case"TPE3":case"TPE4":case"TRCK":case"TPOS":case"TMED":case"TPUB":case"TCOP":case"TKEY":case"TEXT":case"TDAT":case"TSRC":this._setStringFrame(t,e);break;case"TBPM":case"TLEN":case"TYER":this._setIntegerFrame(t,e);break;case"USLT":if(e.language=e.language||"eng","object"!=typeof e||!("description"in e)||!("lyrics"in e))throw new Error("USLT frame value should be an object with keys description and lyrics");if(e.language&&!e.language.match(/[a-z]{3}/i))throw new Error("Language must be coded following the ISO 639-2 standards");this._setLyricsFrame(e.language,e.description,e.lyrics);break;case"APIC":if("object"!=typeof e||!("type"in e)||!("data"in e)||!("description"in e))throw new Error("APIC frame value should be an object with keys type, data and description");if(e.type<0||e.type>20)throw new Error("Incorrect APIC frame picture type");this._setPictureFrame(e.type,e.data,e.description,!!e.useUnicodeEncoding);break;case"TXXX":if("object"!=typeof e||!("description"in e)||!("value"in e))throw new Error("TXXX frame value should be an object with keys description and value");this._setUserStringFrame(e.description,e.value);break;case"WCOM":case"WCOP":case"WOAF":case"WOAR":case"WOAS":case"WORS":case"WPAY":case"WPUB":this._setUrlLinkFrame(t,e);break;case"COMM":if(e.language=e.language||"eng","object"!=typeof e||!("description"in e)||!("text"in e))throw new Error("COMM frame value should be an object with keys description and text");if(e.language&&!e.language.match(/[a-z]{3}/i))throw new Error("Language must be coded following the ISO 639-2 standards");this._setCommentFrame(e.language,e.description,e.text);break;case"PRIV":if("object"!=typeof e||!("id"in e)||!("data"in e))throw new Error("PRIV frame value should be an object with keys id and data");this._setPrivateFrame(e.id,e.data);break;case"IPLS":if(!Array.isArray(e)||!Array.isArray(e[0]))throw new Error("IPLS frame value should be an array of pairs");this._setPairedTextFrame(t,e);break;case"SYLT":if("object"!=typeof e||!("type"in e)||!("text"in e)||!("timestampFormat"in e))throw new Error("SYLT frame value should be an object with keys type, text and timestampFormat");if(!Array.isArray(e.text)||!Array.isArray(e.text[0]))throw new Error("SYLT frame text value should be an array of pairs");if(e.type<0||e.type>6)throw new Error("Incorrect SYLT frame content type");if(e.timestampFormat<1||e.timestampFormat>2)throw new Error("Incorrect SYLT frame time stamp format");e.language=e.language||"eng",e.description=e.description||"",this._setSynchronisedLyricsFrame(e.type,e.text,e.timestampFormat,e.language,e.description);break;default:throw new Error(`Unsupported frame ${t}`)}return this}removeTag(){if(this.arrayBuffer.byteLength<10)return;const t=new Uint8Array(this.arrayBuffer),e=t[3],o=((i=[t[6],t[7],t[8],t[9]])[0]<<21)+(i[1]<<14)+(i[2]<<7)+i[3]+10;var i,a;73!==(a=t)[0]||68!==a[1]||51!==a[2]||e<2||e>4||(this.arrayBuffer=new Uint8Array(t.subarray(o)).buffer)}addTag(){this.removeTag();const t=[255,254],e=10+this.frames.reduce(((t,e)=>t+e.size),0)+this.padding,o=new ArrayBuffer(this.arrayBuffer.byteLength+e),i=new Uint8Array(o);let a=0,n=[];return n=[73,68,51,3],i.set(n,a),a+=n.length,a++,a++,n=function(t){const e=127;return[t>>>21&e,t>>>14&e,t>>>7&e,t&e]}(e-10),i.set(n,a),a+=n.length,this.frames.forEach((e=>{switch(n=ge(e.name),i.set(n,a),a+=n.length,n=ve(e.size-10),i.set(n,a),a+=n.length,a+=2,e.name){case"WCOM":case"WCOP":case"WOAF":case"WOAR":case"WOAS":case"WORS":case"WPAY":case"WPUB":n=ge(e.value),i.set(n,a),a+=n.length;break;case"TPE1":case"TCOM":case"TCON":case"TLAN":case"TIT1":case"TIT2":case"TIT3":case"TALB":case"TPE2":case"TPE3":case"TPE4":case"TRCK":case"TPOS":case"TKEY":case"TMED":case"TPUB":case"TCOP":case"TEXT":case"TSRC":n=[1].concat(t),i.set(n,a),a+=n.length,n=me(e.value),i.set(n,a),a+=n.length;break;case"TXXX":case"USLT":case"COMM":n=[1],"USLT"!==e.name&&"COMM"!==e.name||(n=n.concat(e.language)),n=n.concat(t),i.set(n,a),a+=n.length,n=me(e.description),i.set(n,a),a+=n.length,n=[0,0].concat(t),i.set(n,a),a+=n.length,n=me(e.value),i.set(n,a),a+=n.length;break;case"TBPM":case"TLEN":case"TDAT":case"TYER":a++,n=ge(e.value),i.set(n,a),a+=n.length;break;case"PRIV":n=ge(e.id),i.set(n,a),a+=n.length,a++,i.set(new Uint8Array(e.value),a),a+=e.value.byteLength;break;case"APIC":n=[e.useUnicodeEncoding?1:0],i.set(n,a),a+=n.length,n=ge(e.mimeType),i.set(n,a),a+=n.length,n=[0,e.pictureType],i.set(n,a),a+=n.length,e.useUnicodeEncoding?(n=[].concat(t),i.set(n,a),a+=n.length,n=me(e.description),i.set(n,a),a+=n.length,a+=2):(n=ge(e.description),i.set(n,a),a+=n.length,a++),i.set(new Uint8Array(e.value),a),a+=e.value.byteLength;break;case"IPLS":n=[1],i.set(n,a),a+=n.length,e.value.forEach((e=>{n=[].concat(t),i.set(n,a),a+=n.length,n=me(e[0].toString()),i.set(n,a),a+=n.length,n=[0,0].concat(t),i.set(n,a),a+=n.length,n=me(e[1].toString()),i.set(n,a),a+=n.length,n=[0,0],i.set(n,a),a+=n.length}));break;case"SYLT":n=[1].concat(e.language).concat(e.timestampFormat).concat(e.type),i.set(n,a),a+=n.length,n=[].concat(t),i.set(n,a),a+=n.length,n=me(e.description),i.set(n,a),a+=n.length,a+=2,e.value.forEach((e=>{n=[].concat(t),i.set(n,a),a+=n.length,n=me(e[0].toString()),i.set(n,a),a+=n.length,n=[0,0],i.set(n,a),a+=n.length,n=ve(e[1]),i.set(n,a),a+=n.length}))}})),a+=this.padding,i.set(new Uint8Array(this.arrayBuffer),a),this.arrayBuffer=o,o}getBlob(){return new Blob([this.arrayBuffer],{type:"audio/mpeg"})}getURL(){return this.url||(this.url=URL.createObjectURL(this.getBlob())),this.url}revokeURL(){URL.revokeObjectURL(this.url)}}const Se={async translate(t,e){try{const o=await rt(`${G.yandex}?${new URLSearchParams({text:t,lang:e})}`,{timeout:3e3});if(o instanceof Error)throw o;const i=await o.json();if(200!==i.code)throw i.message;return i.text[0]}catch(e){return console.error("Error translating text:",e),t}},async detect(t){try{const e=await rt(`${j.yandex}?${new URLSearchParams({text:t})}`,{timeout:3e3});if(e instanceof Error)throw e;const o=await e.json();if(200!==o.code)throw o.message;return o.lang??"en"}catch(t){return console.error("Error getting lang from text:",t),"en"}}},ke={async detect(t){try{const e=await rt(j.rustServer,{method:"POST",body:t});if(e instanceof Error)throw e;return await e.text()}catch(t){return console.error("Error getting lang from text:",t),"en"}}},Te={async translate(t,e="auto",o="ru"){try{const i=await rt(G.deepl,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded"},body:new URLSearchParams({text:t,source_lang:e,target_lang:o})});if(i instanceof Error)throw i;const a=await i.json();if(200!==a.code)throw a.message;return a.data}catch(e){return console.error("Error translating text:",e),t}}};const Ce=Object.keys(G),Pe=Object.keys(j).map((t=>"rustServer"===t?"rust-server":t));async function Le(t,e,o,i){if(!window.location.hostname.includes("m.youtube.com")&&t?.getAudioTrack){const e=t.getAudioTrack(),o=e?.getLanguageInfo();if("und"!==o?.id)return B(o.id.split(".")[0])}const a=e?.captions?.playerCaptionsTracklistRenderer?.captionTracks;if(a?.length){const t=a.find((t=>"asr"===t.kind));if(t&&t.languageCode)return B(t.languageCode)}const n=function(t,e){return`${t} ${e?e.split("\n").filter((t=>!it.test(t))).join(" "):""}`.slice(0,450).replace(/[^\p{L}\s]+|\s+/gu," ").trim()}(o,i);return D.log(`Detecting language text: ${n}`),async function(t){switch(await J.get("detectService",W)){case"yandex":return await Se.detect(t);case"rust-server":return await ke.detect(t);default:return"en"}}(n)}function Ae(){return/^m\.youtube\.com$/.test(window.location.hostname)}function Ie(){return window.location.pathname.startsWith("/shorts/")&&!Ae()?document.querySelector("#shorts-player"):document.querySelector("#movie_player")}function _e(){const t=Ie();return t?.getPlayerResponse?t?.getPlayerResponse?.call()??null:t?.data?.playerResponse??null}function Oe(){const t=Ie();return t?.getVideoData?t?.getVideoData?.call()??null:t?.data?.playerResponse?.videoDetails??null}const Ve={isMobile:Ae,getPlayer:Ie,getPlayerResponse:_e,getPlayerData:Oe,getVideoVolume:function(){const t=Ie();return t?.getVolume?t.getVolume.call()/100:1},getSubtitles:function(){const t=_e(),e=t?.captions?.playerCaptionsTracklistRenderer;if(!e)return[];let o=e.captionTracks??[];const i=e.translationLanguages??[],a=X.lang,n=i.find((t=>t.languageCode===a)),r=o.find((t=>"asr"===t?.kind))?.languageCode??"en";return o=o.reduce(((t,e)=>{if(!("languageCode"in e))return t;const o=e.languageCode?B(e.languageCode):void 0,i=e?.url||e?.baseUrl;if(!o||!i)return t;const s=`${i.startsWith("http")?i:`${window.location.origin}/${i}`}&fmt=json3`;return t.push({source:"youtube",language:o,isAutoGenerated:"asr"===e?.kind,url:s}),n&&e.isTranslatable&&e.languageCode===r&&a!==o&&t.push({source:"youtube",language:a,isAutoGenerated:"asr"===e?.kind,translatedFromLanguage:o,url:`${s}&tlang=${a}`}),t}),[]),D.log("youtube subtitles:",o),o},getVideoData:async function(){const t=Ie(),e=_e(),o=Oe(),{title:i}=o??{},{shortDescription:a,isLive:n,title:r}=e?.videoDetails??{};let s=r?await Le(t,e,r,a):"en";s=ut.includes(s)?s:"en";const l={isLive:!!n,title:r,localizedTitle:i,description:a,detectedLanguage:s};return D.log("youtube video data:",l),console.log("[VOT] Detected language: ",l.detectedLanguage),l},setVideoVolume:function(t){const e=Ie();if(e?.setVolume)return e.setVolume(Math.round(100*t)),!0},videoSeek:function(t,e){D.log("videoSeek",e);const o=(Ie()?.getProgressState()?.seekableEnd||t.currentTime)-e;t.currentTime=o},isMuted:function(){const t=Ie();return!!t?.isMuted&&t.isMuted.call()},isMusic:function(){const t=Oe().author,e=Oe().title.toUpperCase(),o=e.match(/\w+/g),i=document.body.querySelector("ytd-watch-flexy")?.playerData;return[e,document.URL,t,i?.microformat?.playerMicroformatRenderer.category,i?.title].some((t=>t?.toUpperCase().includes("MUSIC")))||document.body.querySelector("#upload-info #channel-name .badge-style-type-verified-artist")||t&&/(VEVO|Topic|Records|RECORDS|Recordings|AMV)$/.test(t)||t&&/(MUSIC|ROCK|SOUNDS|SONGS)/.test(t.toUpperCase())||o?.length&&["🎵","♫","SONG","SONGS","SOUNDTRACK","LYRIC","LYRICS","AMBIENT","MIX","VEVO","CLIP","KARAOKE","OPENING","COVER","COVERED","VOCAL","INSTRUMENTAL","ORCHESTRAL","DUBSTEP","DJ","DNB","BASS","BEAT","ALBUM","PLAYLIST","DUBSTEP","CHILL","RELAX","CLASSIC","CINEMATIC"].some((t=>o.includes(t)))||["OFFICIAL VIDEO","OFFICIAL AUDIO","FEAT.","FT.","LIVE RADIO","DANCE VER","HIP HOP","ROCK N ROLL","HOUR VER","HOURS VER","INTRO THEME"].some((t=>e.includes(t)))||o?.length&&["OP","ED","MV","OST","NCS","BGM","EDM","GMV","AMV","MMD","MAD"].some((t=>o.includes(t)))}};function Me(t){const e=t.startMs+t.durationMs;return t.tokens.reduce(((o,i,a)=>{const n=t.tokens[a+1];let r;o.length>0&&(r=o[o.length-1]);const s=r?.alignRange?.end??0,l=s+i.text.length;if(i.alignRange={start:s,end:l},o.push(i),n){const t=i.startMs+i.durationMs,a=n.startMs?n.startMs-t:e-t;o.push({text:" ",startMs:t,durationMs:a,alignRange:{start:l,end:l+1}})}return o}),[])}function Ee(t,e){const o=t.text.split(/([\n \t])/).reduce(((t,o)=>{if(o.length){const i=t[t.length-1]??e,a=i?.alignRange?.end??0,n=a+o.length;t.push({text:o,alignRange:{start:a,end:n}})}return t}),[]),i=Math.floor(t.durationMs/o.length),a=t.startMs+t.durationMs;return o.map(((e,n)=>{const r=n===o.length-1,s=t.startMs+i*n;return{...e,startMs:s,durationMs:r?a-s:i}}))}async function Be(t){const{source:e,isAutoGenerated:o,format:i,url:a}=t,n=(async()=>{try{const t=await rt(a,{timeout:5e3});if(["vtt","srt"].includes(i)){return Pt(await t.text(),"json")}return await t.json()}catch(t){return console.error("[VOT] Failed to fetch subtitles.",t),{containsTokens:!1,subtitles:[]}}})();let r=await n;return"youtube"===e&&(r=function(t,e=!1){const o={containsTokens:e,subtitles:[]};if("object"!=typeof t||!Array.isArray(t.events))return console.error("[VOT] Failed to format youtube subtitles",t),o;for(let i=0;it.events[i+1].tStartMs&&(n=t.events[i+1].tStartMs-a.tStartMs);const r=[];let s=n;for(let t=0;tt.text)).join(" ");l&&o.subtitles.push({text:l,startMs:a.tStartMs,durationMs:n,...e?{tokens:r}:{},speakerId:"0"})}return o}(r,o)),r.subtitles=function(t,e){const o=[];let i;const{source:a,isAutoGenerated:n}=e;for(let e=0;esetTimeout((()=>e(new Error("Timeout"))),5e3)));try{const e=await Promise.race([t.getSubtitles({videoData:{host:o,url:i,videoId:n,duration:r},requestLang:a}),d]);console.log("[VOT] Subtitles response: ",e),e.waiting&&console.error("[VOT] Failed to get yandex subtitles");let s=e.subtitles??[];return s=s.reduce(((t,e)=>(e.language&&!t.find((t=>"yandex"===t.source&&t.language===e.language&&!t.translatedFromLanguage))&&t.push({source:"yandex",language:e.language,url:e.url}),e.translatedLanguage&&t.push({source:"yandex",language:e.translatedLanguage,translatedFromLanguage:e.language,url:e.translatedUrl}),t)),[]),[...s,...l].sort(((t,e)=>{if(t.source!==e.source)return"yandex"===t.source?-1:1;if(t.language!==e.language&&(t.language===tt||e.language===tt))return t.language===tt?-1:1;if("yandex"===t.source){if(t.translatedFromLanguage!==e.translatedFromLanguage)return t.translatedFromLanguage&&e.translatedFromLanguage?t.translatedFromLanguage===a?-1:1:t.language===e.language?t.translatedFromLanguage?1:-1:t.translatedFromLanguage?-1:1;if(!t.translatedFromLanguage)return t.language===a?-1:1}return"yandex"!==t.source&&t.isAutoGenerated!==e.isAutoGenerated?t.isAutoGenerated?1:-1:0}))}catch(t){throw"Timeout"===t.message?console.error("[VOT] Failed to get yandex subtitles. Reason: timeout"):console.error("[VOT] Error in getSubtitles function",t),t}}class Re{constructor(t,e,o){this.video=t,this.container="youtube"===o.host&&"mobile"!==o.additionalData?e.parentElement:e,this.site=o,this.subtitlesContainer=this.createSubtitlesContainer(),this.position={left:25,top:75},this.dragging={active:!1,offset:{x:0,y:0}},this.subtitles=null,this.lastContent=null,this.highlightWords=!1,this.fontSize=20,this.opacity=.2,this.maxLength=300,this.maxLengthRegexp=/.{1,300}(?:\s|$)/g,this.bindEvents(),this.updateContainerRect()}createSubtitlesContainer(){const t=document.createElement("vot-block");return t.classList.add("vot-subtitles-widget"),this.container.appendChild(t),t}bindEvents(){this.onMouseDownBound=t=>this.onMouseDown(t),this.onMouseUpBound=()=>this.onMouseUp(),this.onMouseMoveBound=t=>this.onMouseMove(t),this.onTimeUpdateBound=this.debounce((()=>this.update()),100),document.addEventListener("mousedown",this.onMouseDownBound),document.addEventListener("mouseup",this.onMouseUpBound),document.addEventListener("mousemove",this.onMouseMoveBound),this.video?.addEventListener("timeupdate",this.onTimeUpdateBound),this.resizeObserver=new ResizeObserver((()=>this.onResize())),this.resizeObserver.observe(this.container)}onMouseDown(t){if(this.subtitlesContainer.contains(t.target)){const e=this.subtitlesContainer.getBoundingClientRect(),o=this.container.getBoundingClientRect();this.dragging={active:!0,offset:{x:t.clientX-e.left,y:t.clientY-e.top},containerOffset:{x:o.left,y:o.top}}}}onMouseUp(){this.dragging.active=!1}onMouseMove(t){if(this.dragging.active){t.preventDefault();const{width:e,height:o}=this.container.getBoundingClientRect(),i=this.dragging.containerOffset;this.position={left:(t.clientX-this.dragging.offset.x-i.x)/e*100,top:(t.clientY-this.dragging.offset.y-i.y)/o*100},this.applySubtitlePosition()}}onResize(){this.updateContainerRect()}updateContainerRect(){this.containerRect=this.container.getBoundingClientRect(),this.applySubtitlePosition()}applySubtitlePosition(){const{width:t,height:e}=this.containerRect,{offsetWidth:o,offsetHeight:i}=this.subtitlesContainer,a=(t-o)/t*100,n=(e-i)/e*100;this.position.left=Math.max(0,Math.min(this.position.left,a)),this.position.top=Math.max(0,Math.min(this.position.top,n)),this.subtitlesContainer.style.left=`${this.position.left}%`,this.subtitlesContainer.style.top=`${this.position.top}%`}setContent(t){t&&this.video?(this.subtitles=t,this.update()):(this.subtitles=null,he(null,this.subtitlesContainer))}setMaxLength(t){"number"==typeof t&&t&&(this.maxLength=t,this.maxLengthRegexp=new RegExp(`.{1,${t}}(?:\\s|$)`,"g"),this.update())}setHighlightWords(t){this.highlightWords=Boolean(t),this.update()}setFontSize(t){this.fontSize=t;const e=this.subtitlesContainer?.querySelector(".vot-subtitles");e&&(e.style.fontSize=`${this.fontSize}px`)}setOpacity(t){this.opacity=((100-+t)/100).toFixed(2);const e=this.subtitlesContainer?.querySelector(".vot-subtitles");e&&e.style.setProperty("--vot-subtitles-opacity",this.opacity)}update(){if(!this.video||!this.subtitles)return;const t=1e3*this.video.currentTime,e=this.subtitles.subtitles?.findLast((e=>e.startMs${i}`,this.subtitlesContainer))}processTokens(t){if(t.at(-1).alignRange.end<=this.maxLength)return t;let e=[],o=[],i=0;for(const a of t)i+=a.text.length,o.push(a),i>this.maxLength&&(e.push(this.trimChunk(o)),o=[],i=0);o.length&&e.push(this.trimChunk(o));const a=1e3*this.video.currentTime;return e.find((t=>t[0].startMs{const o=this.highlightWords&&(e>t.startMs+t.durationMs/2||e>t.startMs-100&&t.startMs+t.durationMs/2-e<275);return Gt``,this.subtitlesContainer))}processTokens(t){if(t.at(-1).alignRange.end<=this.maxLength)return t;let e=[],o=[],i=0;for(const a of t)i+=a.text.length,o.push(a),i>this.maxLength&&(e.push(this.trimChunk(o)),o=[],i=0);o.length&&e.push(this.trimChunk(o));const a=1e3*this.video.currentTime;return e.find((t=>t[0].startMs{const o=this.highlightWords&&(e>t.startMs+t.durationMs/2||e>t.startMs-100&&t.startMs+t.durationMs/2-e<275);return Yt`${t.text.replace("\\n","
")}
`}))}debounce(t,e){let o;return(...i)=>{clearTimeout(o),o=setTimeout((()=>t.apply(this,i)),e)}}release(){document.removeEventListener("mousedown",this.onMouseDownBound),document.removeEventListener("mouseup",this.onMouseUpBound),document.removeEventListener("mousemove",this.onMouseMoveBound),this.video?.removeEventListener("timeupdate",this.onTimeUpdateBound),this.resizeObserver.disconnect(),this.subtitlesContainer.remove()}}o("./src/styles/main.scss");const Re="#UNDEFINED",$e=Yt``}))}debounce(t,e){let o;return(...i)=>{clearTimeout(o),o=setTimeout((()=>t.apply(this,i)),e)}}release(){document.removeEventListener("mousedown",this.onMouseDownBound),document.removeEventListener("mouseup",this.onMouseUpBound),document.removeEventListener("mousemove",this.onMouseMoveBound),this.video?.removeEventListener("timeupdate",this.onTimeUpdateBound),this.resizeObserver.disconnect(),this.subtitlesContainer.remove()}}o("./src/styles/main.scss");const $e="#UNDEFINED",De=Jt` -`,De={easing:"linear",delay:function(t,e){return 200*e}};function Fe(t){const e=document.createElement("vot-block");return e.classList.add("vot-icon-button"),ce(t,e),e}function qe(t){const e=+t.value,o=+t.min,i=(e-o)/(+t.max-o);t.parentElement.setAttribute("style",`--vot-progress: ${i}`)}function Ue(t,e="",o=" ",i=!1){const a=document.createElement("vot-block");a.classList.add("vot-textfield");const n=document.createElement(i?"textarea":"input");n.placeholder=o,n.value=e,t||n.classList.add("vot-show-placeholer");const r=document.createElement("span");return r.append(t),a.append(n,r),{container:a,input:n,label:r}}function He(t){const e=document.createElement("vot-block");e.classList.add("vot-dialog-container"),e.hidden=!0;const o=document.createElement("vot-block");o.classList.add("vot-dialog-backdrop");const i=document.createElement("vot-block");i.classList.add("vot-dialog");const a=document.createElement("vot-block");a.classList.add("vot-dialog-content-wrapper");const n=document.createElement("vot-block");n.classList.add("vot-dialog-header-container");const r=document.createElement("vot-block");r.classList.add("vot-dialog-body-container");const s=document.createElement("vot-block");s.classList.add("vot-dialog-footer-container");const l=document.createElement("vot-block");l.classList.add("vot-dialog-title-container");const d=Fe(Yt``,Fe={easing:"linear",delay:function(t,e){return 200*e}};function qe(t){const e=document.createElement("vot-block");return e.classList.add("vot-icon-button"),he(t,e),e}function Ue(t){const e=+t.value,o=+t.min,i=(e-o)/(+t.max-o);t.parentElement.setAttribute("style",`--vot-progress: ${i}`)}function He(t,e="",o=" ",i=!1){const a=document.createElement("vot-block");a.classList.add("vot-textfield");const n=document.createElement(i?"textarea":"input");n.placeholder=o,n.value=e,t||n.classList.add("vot-show-placeholer");const r=document.createElement("span");return r.append(t),a.append(n,r),{container:a,input:n,label:r}}function ze(t){const e=document.createElement("vot-block");e.classList.add("vot-dialog-container"),e.hidden=!0;const o=document.createElement("vot-block");o.classList.add("vot-dialog-backdrop");const i=document.createElement("vot-block");i.classList.add("vot-dialog");const a=document.createElement("vot-block");a.classList.add("vot-dialog-content-wrapper");const n=document.createElement("vot-block");n.classList.add("vot-dialog-header-container");const r=document.createElement("vot-block");r.classList.add("vot-dialog-body-container");const s=document.createElement("vot-block");s.classList.add("vot-dialog-footer-container");const l=document.createElement("vot-block");l.classList.add("vot-dialog-title-container");const d=qe(Jt` - `);d.classList.add("vot-dialog-close-button"),o.onclick=d.onclick=()=>{e.hidden=!0};const u=document.createElement("vot-block");return u.classList.add("vot-dialog-title"),u.append(t),e.append(o,i),i.append(a),a.append(n,r,s),n.append(l,d),l.append(u),{container:e,backdrop:o,dialog:i,contentWrapper:a,headerContainer:n,bodyContainer:r,footerContainer:s,titleContainer:l,closeButton:d,title:u}}function ze(t,e,o,i={}){const{onSelectCb:a=function(){},labelElement:n=""}=i;let r=[];const s=document.createElement("vot-block");s.classList.add("vot-select"),n&&s.append(n);const l=document.createElement("vot-block");l.classList.add("vot-select-outer");const d=document.createElement("span");d.classList.add("vot-select-title"),d.textContent=t,void 0===t&&(d.textContent=o.find((t=>!0===t.selected))?.label);const u=document.createElement("vot-block");u.classList.add("vot-select-arrow-icon"),ce($e,u),l.append(d,u),l.onclick=()=>{const t=He(e);t.container.classList.add("vot-dialog-temp"),t.container.hidden=!1,document.documentElement.appendChild(t.container);const i=document.createElement("vot-block");i.classList.add("vot-select-content-list");for(const t of o){const e=document.createElement("vot-block");e.classList.add("vot-select-content-item"),e.textContent=t.label,e.dataset.votSelected=t.selected,e.dataset.votValue=t.value,t.disabled&&(e.inert=!0),e.onclick=async n=>{if(n.target.inert)return;const r=i.childNodes;for(let t of r)t.dataset.votSelected=!1;for(let e of o)e.selected=e.value===t.value;e.dataset.votSelected=!0,d.textContent=t.label,await a(n)},i.appendChild(e)}const n=Ue(Z.get("searchField"));n.input.oninput=t=>{const e=t.target.value.toLowerCase();for(let t=0;t{t.container.remove(),r=[]}},s.append(l);return{container:s,title:d,arrowIcon:u,labelElement:n,setTitle:t=>{d.textContent=t},setSelected:t=>{const e=Array.from(r).filter((t=>!t.inert));for(let o=0;o{o=t}}}const We={createHeader:function(t,e=4){const o=document.createElement("vot-block");return o.classList.add("vot-header",`vot-header-level-${e}`),o.append(t),o},createInformation:function(t,e){const o=document.createElement("vot-block");o.classList.add("vot-info");const i=document.createElement("vot-block");ce(t,i);const a=document.createElement("vot-block");return ce(e,a),o.append(i,a),{container:o,header:i,value:a}},createButton:function(t){const e=document.createElement("vot-block");return e.classList.add("vot-button"),e.append(t),e},createTextButton:function(t){const e=document.createElement("vot-block");return e.classList.add("vot-text-button"),e.append(t),e},createOutlinedButton:function(t){const e=document.createElement("vot-block");return e.classList.add("vot-outlined-button"),e.append(t),e},createIconButton:Fe,createCheckbox:function(t,e=!1){const o=document.createElement("label");o.classList.add("vot-checkbox");const i=document.createElement("input");i.type="checkbox",i.checked=Boolean(e);const a=document.createElement("span");return a.append(t),o.append(i,a),{container:o,input:i,label:a}},createSlider:function(t,e=50,o=0,i=100){const a=document.createElement("vot-block");a.classList.add("vot-slider");const n=document.createElement("input");n.type="range",n.min=o,n.max=i,n.value=e;const r=document.createElement("span");return ce(t,r),a.append(n,r),n.addEventListener("input",(t=>qe(t.target))),qe(n),{container:a,input:n,label:r}},createTextfield:Ue,createDialog:He,createVOTButton:function(t){const e=document.createElement("vot-block");e.classList.add("vot-segmented-button");const o=document.createElement("vot-block");o.classList.add("vot-segment"),o.classList.add("vot-translate-button"),ce(Yt``);d.classList.add("vot-dialog-close-button"),o.onclick=d.onclick=()=>{e.hidden=!0};const u=document.createElement("vot-block");return u.classList.add("vot-dialog-title"),u.append(t),e.append(o,i),i.append(a),a.append(n,r,s),n.append(l,d),l.append(u),{container:e,backdrop:o,dialog:i,contentWrapper:a,headerContainer:n,bodyContainer:r,footerContainer:s,titleContainer:l,closeButton:d,title:u}}function We(t,e,o,i={}){const{onSelectCb:a=function(){},labelElement:n=""}=i;let r=[];const s=document.createElement("vot-block");s.classList.add("vot-select"),n&&s.append(n);const l=document.createElement("vot-block");l.classList.add("vot-select-outer");const d=document.createElement("span");d.classList.add("vot-select-title"),d.textContent=t,void 0===t&&(d.textContent=o.find((t=>!0===t.selected))?.label);const u=document.createElement("vot-block");u.classList.add("vot-select-arrow-icon"),he(De,u),l.append(d,u),l.onclick=()=>{const t=ze(e);t.container.classList.add("vot-dialog-temp"),t.container.hidden=!1,document.documentElement.appendChild(t.container);const i=document.createElement("vot-block");i.classList.add("vot-select-content-list");for(const t of o){const e=document.createElement("vot-block");e.classList.add("vot-select-content-item"),e.textContent=t.label,e.dataset.votSelected=t.selected,e.dataset.votValue=t.value,t.disabled&&(e.inert=!0),e.onclick=async n=>{if(n.target.inert)return;const r=i.childNodes;for(let t of r)t.dataset.votSelected=!1;for(let e of o)e.selected=e.value===t.value;e.dataset.votSelected=!0,d.textContent=t.label,await a(n)},i.appendChild(e)}const n=He(X.get("searchField"));n.input.oninput=t=>{const e=t.target.value.toLowerCase();for(let t=0;t{t.container.remove(),r=[]}},s.append(l);return{container:s,title:d,arrowIcon:u,labelElement:n,setTitle:t=>{d.textContent=t},setSelected:t=>{const e=Array.from(r).filter((t=>!t.inert));for(let o=0;o{o=t}}}const je={createHeader:function(t,e=4){const o=document.createElement("vot-block");return o.classList.add("vot-header",`vot-header-level-${e}`),o.append(t),o},createInformation:function(t,e){const o=document.createElement("vot-block");o.classList.add("vot-info");const i=document.createElement("vot-block");he(t,i);const a=document.createElement("vot-block");return he(e,a),o.append(i,a),{container:o,header:i,value:a}},createButton:function(t){const e=document.createElement("vot-block");return e.classList.add("vot-button"),e.append(t),e},createTextButton:function(t){const e=document.createElement("vot-block");return e.classList.add("vot-text-button"),e.append(t),e},createOutlinedButton:function(t){const e=document.createElement("vot-block");return e.classList.add("vot-outlined-button"),e.append(t),e},createIconButton:qe,createCheckbox:function(t,e=!1){const o=document.createElement("label");o.classList.add("vot-checkbox");const i=document.createElement("input");i.type="checkbox",i.checked=Boolean(e);const a=document.createElement("span");return a.append(t),o.append(i,a),{container:o,input:i,label:a}},createSlider:function(t,e=50,o=0,i=100){const a=document.createElement("vot-block");a.classList.add("vot-slider");const n=document.createElement("input");n.type="range",n.min=o,n.max=i,n.value=e;const r=document.createElement("span");return he(t,r),a.append(n,r),n.addEventListener("input",(t=>Ue(t.target))),Ue(n),{container:a,input:n,label:r}},createTextfield:He,createDialog:ze,createVOTButton:function(t){const e=document.createElement("vot-block");e.classList.add("vot-segmented-button");const o=document.createElement("vot-block");o.classList.add("vot-segment"),o.classList.add("vot-translate-button"),he(Jt` - `,o);const i=document.createElement("vot-block");i.classList.add("vot-separator");const a=document.createElement("vot-block");a.classList.add("vot-segment-only-icon"),ce(Yt``,o);const i=document.createElement("vot-block");i.classList.add("vot-separator");const a=document.createElement("vot-block");a.classList.add("vot-segment-only-icon"),he(Jt` - `,a);const n=document.createElement("vot-block");n.classList.add("vot-separator");const r=document.createElement("vot-block");r.classList.add("vot-segment-only-icon"),ce(Yt``,a);const n=document.createElement("vot-block");n.classList.add("vot-separator");const r=document.createElement("vot-block");r.classList.add("vot-segment-only-icon"),he(Jt` - `,r);const s=document.createElement("span");return s.classList.add("vot-segment-label"),s.append(t),e.append(o,i,a,n,r),o.append(s),{container:e,translateButton:o,separator:i,pipButton:a,separator2:n,menuButton:r,label:s}},createVOTMenu:function(t){const e=document.createElement("vot-block");e.classList.add("vot-menu"),e.hidden=!0;const o=document.createElement("vot-block");o.classList.add("vot-menu-content-wrapper");const i=document.createElement("vot-block");i.classList.add("vot-menu-header-container");const a=document.createElement("vot-block");a.classList.add("vot-menu-body-container");const n=document.createElement("vot-block");n.classList.add("vot-menu-footer-container");const r=document.createElement("vot-block");r.classList.add("vot-menu-title-container");const s=document.createElement("vot-block");return s.classList.add("vot-menu-title"),s.append(t),e.append(o),o.append(i,a,n),i.append(r),r.append(s),{container:e,contentWrapper:o,headerContainer:i,bodyContainer:a,footerContainer:n,titleContainer:r,title:s}},createVOTSelectLabel:function(t){const e=document.createElement("span");return e.classList.add("vot-select-label"),e.textContent=t,e},createVOTSelect:ze,createVOTLanguageSelect:function(t){const{fromTitle:e=Re,fromDialogTitle:o=Re,fromItems:i=[],fromOnSelectCB:a=null,toTitle:n=Re,toDialogTitle:r=Re,toItems:s=[],toOnSelectCB:l=null}=t,d=document.createElement("vot-block");d.classList.add("vot-lang-select");const u=ze(e,o,i,{onSelectCb:a}),c=document.createElement("vot-block");c.classList.add("vot-lang-select-icon"),ce(Yt``,r);const s=document.createElement("span");return s.classList.add("vot-segment-label"),s.append(t),e.append(o,i,a,n,r),o.append(s),{container:e,translateButton:o,separator:i,pipButton:a,separator2:n,menuButton:r,label:s}},createVOTMenu:function(t){const e=document.createElement("vot-block");e.classList.add("vot-menu"),e.hidden=!0;const o=document.createElement("vot-block");o.classList.add("vot-menu-content-wrapper");const i=document.createElement("vot-block");i.classList.add("vot-menu-header-container");const a=document.createElement("vot-block");a.classList.add("vot-menu-body-container");const n=document.createElement("vot-block");n.classList.add("vot-menu-footer-container");const r=document.createElement("vot-block");r.classList.add("vot-menu-title-container");const s=document.createElement("vot-block");return s.classList.add("vot-menu-title"),s.append(t),e.append(o),o.append(i,a,n),i.append(r),r.append(s),{container:e,contentWrapper:o,headerContainer:i,bodyContainer:a,footerContainer:n,titleContainer:r,title:s}},createVOTSelectLabel:function(t){const e=document.createElement("span");return e.classList.add("vot-select-label"),e.textContent=t,e},createVOTSelect:We,createVOTLanguageSelect:function(t){const{fromTitle:e=$e,fromDialogTitle:o=$e,fromItems:i=[],fromOnSelectCB:a=null,toTitle:n=$e,toDialogTitle:r=$e,toItems:s=[],toOnSelectCB:l=null}=t,d=document.createElement("vot-block");d.classList.add("vot-lang-select");const u=We(e,o,i,{onSelectCb:a}),c=document.createElement("vot-block");c.classList.add("vot-lang-select-icon"),he(Jt` - `,c);const h=ze(n,r,s,{onSelectCb:l});return d.append(u.container,c,h.container),{container:d,fromSelect:u,icon:c,toSelect:h}},updateSlider:qe,animateLoader:function(t,e="139, 180, 245"){const o=t.querySelector(".vot-loader-helper"),i=t.querySelector(".vot-loader-main");anime.timeline({...De,targets:[o,i],duration:250}).add({"fill-opacity":0,"stroke-width":2,d:"M 12 1.5 C 17.799 1.5 22.5 6.201 22.5 12 C 22.5 17.799 17.799 22.5 12 22.5 C 6.201 22.5 1.5 17.799 1.5 12 C 1.5 6.201 6.201 1.5 12 1.5 Z",duration:0}).add({targets:o,stroke:`rgb(${e})`,"stroke-opacity":0,duration:0},0).add({targets:i,stroke:"#888888","stroke-opacity":.25},0);const a=anime.timeline({targets:o,easing:"easeInOutSine",duration:1e3,autoplay:!1}).add({strokeOpacity:1,duration:0},0).add({strokeDashoffset:[anime.setDashoffset,0]},0);return t=>{a.seek(a.duration*(t/100))}},afterAnimateLoader:function(t,e="139, 180, 245"){const o=t.querySelector(".vot-loader-helper"),i=t.querySelector(".vot-loader-main");anime.timeline({...De,targets:i,duration:600}).add({d:"M 9.0596 14.8571 L 9.7667 15.5642 L 10.4738 14.8571 L 17.0071 8.3238 C 17.0457 8.2852 17.0937 8.25 17.2333 8.25 C 17.373 8.25 17.421 8.2852 17.4596 8.3238 C 17.4981 8.3624 17.5333 8.4104 17.5333 8.55 C 17.5333 8.6896 17.4981 8.7376 17.4596 8.7762 L 9.9929 16.2429 C 9.9011 16.3346 9.8397 16.35 9.7667 16.35 C 9.6937 16.35 9.6322 16.3346 9.5404 16.2429 L 6.0738 12.7762 C 6.0352 12.7376 6 12.6897 6 12.55 C 6 12.4103 6.0352 12.3624 6.0738 12.3238 C 6.1124 12.2852 6.1603 12.25 6.3 12.25 C 6.4397 12.25 6.4876 12.2852 6.5262 12.3238 L 9.0596 14.8571 Z",duration:0}).add({strokeDashoffset:[anime.setDashoffset,0],stroke:`rgb(${e})`,"stroke-opacity":1}),setTimeout((()=>{anime.timeline({...De,targets:i,duration:600}).add({d:"M12 15.575C11.8667 15.575 11.7417 15.5542 11.625 15.5125C11.5083 15.4708 11.4 15.4 11.3 15.3L7.7 11.7C7.5 11.5 7.40417 11.2667 7.4125 11C7.42083 10.7333 7.51667 10.5 7.7 10.3C7.9 10.1 8.1375 9.99583 8.4125 9.9875C8.6875 9.97917 8.925 10.075 9.125 10.275L11 12.15V5C11 4.71667 11.0958 4.47917 11.2875 4.2875C11.4792 4.09583 11.7167 4 12 4C12.2833 4 12.5208 4.09583 12.7125 4.2875C12.9042 4.47917 13 4.71667 13 5V12.15L14.875 10.275C15.075 10.075 15.3125 9.97917 15.5875 9.9875C15.8625 9.99583 16.1 10.1 16.3 10.3C16.4833 10.5 16.5792 10.7333 16.5875 11C16.5958 11.2667 16.5 11.5 16.3 11.7L12.7 15.3C12.6 15.4 12.4917 15.4708 12.375 15.5125C12.2583 15.5542 12.1333 15.575 12 15.575ZM6 20C5.45 20 4.97917 19.8042 4.5875 19.4125C4.19583 19.0208 4 18.55 4 18V16C4 15.7167 4.09583 15.4792 4.2875 15.2875C4.47917 15.0958 4.71667 15 5 15C5.28333 15 5.52083 15.0958 5.7125 15.2875C5.90417 15.4792 6 15.7167 6 16V18H18V16C18 15.7167 18.0958 15.4792 18.2875 15.2875C18.4792 15.0958 18.7167 15 19 15C19.2833 15 19.5208 15.0958 19.7125 15.2875C19.9042 15.4792 20 15.7167 20 16V18C20 18.55 19.8042 19.0208 19.4125 19.4125C19.0208 19.8042 18.55 20 18 20H6Z",duration:100}).add({targets:o,d:"",duration:200},0).add({targets:i,"stroke-width":"0",stroke:`rgba(${e}), 0)`,"fill-opacity":"1","stroke-dasharray":"0","stroke-dashoffset":"0",duration:0})}),2e3)},createDetails:function(t){const e=document.createElement("vot-block");e.classList.add("vot-details");const o=document.createElement("vot-block");o.append(t);const i=document.createElement("vot-block");return i.classList.add("vot-details-arrow-icon"),ce($e,i),e.append(o,i),{container:e,header:o,arrowIcon:i}}};o("./node_modules/requestidlecallback-polyfill/index.js");class je{constructor(){this.listeners=new Set}hasListener(t){return this.listeners.has(t)}dispatchToListener(t,...e){try{t(...e)}catch(t){console.error("[VOT]",t)}}addListener(t){if(this.hasListener(t))throw new Error("[VOT] The listener has already been added.");this.listeners.add(t)}removeListener(t){if(!this.hasListener(t))throw new Error("[VOT] The listener has not been added yet.");this.listeners.delete(t)}dispatch(...t){for(const e of Array.from(this.listeners))this.dispatchToListener(e,...t)}}const Ge=new Set(["advertise","promo","sponsor","banner","commercial","preroll","midroll","postroll","ad-container","sponsored"]),Ye=(()=>{const t=Array.from(Ge).join("|");return new RegExp(t,"i")})(),Je=t=>{const e=[];for(let o=0;o=0||(o=(t.length-i)/2);const a=2*o;this.ensureCapacity(o+this._frameCount);const n=this.endIndex;this.vector.set(t.subarray(i,i+a),n),this._frameCount+=o}putBuffer(t,e,o=0){e=e||0,o>=0||(o=t.frameCount-e),this.putSamples(t.vector,t.position+e,o)}receive(t){t>=0&&!(t>this._frameCount)||(t=this.frameCount),this._frameCount-=t,this._position+=t}receiveSamples(t,e=0){const o=2*e,i=this.startIndex;t.set(this._vector.subarray(i,i+o)),this.receive(e)}extract(t,e=0,o=0){const i=this.startIndex+2*e,a=2*o;t.set(this._vector.subarray(i,i+a))}ensureCapacity(t=0){const e=parseInt(2*t);if(this._vector.length0&&(this._vector.set(this._vector.subarray(this.startIndex,this.endIndex)),this._position=0)}}class Xe{constructor(t){t?(this._inputBuffer=new Ze,this._outputBuffer=new Ze):this._inputBuffer=this._outputBuffer=null}get inputBuffer(){return this._inputBuffer}set inputBuffer(t){this._inputBuffer=t}get outputBuffer(){return this._outputBuffer}set outputBuffer(t){this._outputBuffer=t}clear(){this._inputBuffer.clear(),this._outputBuffer.clear()}}class Qe extends Xe{constructor(t){super(t),this.reset(),this._rate=1}set rate(t){this._rate=t}reset(){this.slopeCount=0,this.prevSampleL=0,this.prevSampleR=0}clone(){const t=new Qe;return t.rate=this._rate,t}process(){const t=this._inputBuffer.frameCount;this._outputBuffer.ensureAdditionalCapacity(t/this._rate+1);const e=this.transpose(t);this._inputBuffer.receive(),this._outputBuffer.put(e)}transpose(t=0){if(0===t)return 0;const e=this._inputBuffer.vector,o=this._inputBuffer.startIndex,i=this._outputBuffer.vector,a=this._outputBuffer.endIndex;let n=0,r=0;for(;this.slopeCount<1;)i[a+2*r]=(1-this.slopeCount)*this.prevSampleL+this.slopeCount*e[o],i[a+2*r+1]=(1-this.slopeCount)*this.prevSampleR+this.slopeCount*e[o+1],r+=1,this.slopeCount+=this._rate;if(this.slopeCount-=1,1!==t)t:for(;;){for(;this.slopeCount>1;)if(this.slopeCount-=1,n+=1,n>=t-1)break t;const s=o+2*n;i[a+2*r]=(1-this.slopeCount)*e[s]+this.slopeCount*e[s+2],i[a+2*r+1]=(1-this.slopeCount)*e[s+1]+this.slopeCount*e[s+3],r+=1,this.slopeCount+=this._rate}return this.prevSampleL=e[o+2*t-2],this.prevSampleR=e[o+2*t-1],r}}class to{constructor(t){this._pipe=t}get pipe(){return this._pipe}get inputBuffer(){return this._pipe.inputBuffer}get outputBuffer(){return this._pipe.outputBuffer}fillInputBuffer(){throw new Error("fillInputBuffer() not overridden")}fillOutputBuffer(t=0){for(;this.outputBuffer.frameCountthis._position)throw new RangeError("New position may not be greater than current position");const e=this.outputBufferPosition-(this._position-t);if(e<0)throw new RangeError("New position falls outside of history buffer");this.outputBufferPosition=e,this._position=t}get sourcePosition(){return this._sourcePosition}set sourcePosition(t){this.clear(),this._sourcePosition=t}onEnd(){this.callback()}fillInputBuffer(t=0){const e=new Float32Array(2*t),o=this.sourceSound.extract(e,t,this._sourcePosition);this._sourcePosition+=o,this.inputBuffer.putSamples(e,0,o)}extract(t,e=0){this.fillOutputBuffer(this.outputBufferPosition+e);const o=Math.min(e,this.outputBuffer.frameCount-this.outputBufferPosition);this.outputBuffer.extract(t,this.outputBufferPosition,o);const i=this.outputBufferPosition+o;return this.outputBufferPosition=Math.min(this.historyBufferSize,i),this.outputBuffer.receive(Math.max(i-this.historyBufferSize,0)),this._position+=o,o}handleSampleData(t){this.extract(t.data,4096)}clear(){super.clear(),this.outputBufferPosition=0}}const io=[[124,186,248,310,372,434,496,558,620,682,744,806,868,930,992,1054,1116,1178,1240,1302,1364,1426,1488,0],[-100,-75,-50,-25,25,50,75,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[-20,-15,-10,-5,5,10,15,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[-4,-3,-2,-1,1,2,3,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],ao=-10/1.5;class no extends Xe{constructor(t){super(t),this._quickSeek=!0,this.midBufferDirty=!1,this.midBuffer=null,this.overlapLength=0,this.autoSeqSetting=!0,this.autoSeekSetting=!0,this._tempo=1,this.setParameters(44100,0,0,8)}clear(){super.clear(),this.clearMidBuffer()}clearMidBuffer(){this.midBufferDirty&&(this.midBufferDirty=!1,this.midBuffer=null)}setParameters(t,e,o,i){t>0&&(this.sampleRate=t),i>0&&(this.overlapMs=i),e>0?(this.sequenceMs=e,this.autoSeqSetting=!1):this.autoSeqSetting=!0,o>0?(this.seekWindowMs=o,this.autoSeekSetting=!1):this.autoSeekSetting=!0,this.calculateSequenceParameters(),this.calculateOverlapLength(this.overlapMs),this.tempo=this._tempo}set tempo(t){let e;this._tempo=t,this.calculateSequenceParameters(),this.nominalSkip=this._tempo*(this.seekWindowLength-this.overlapLength),this.skipFract=0,e=Math.floor(this.nominalSkip+.5),this.sampleReq=Math.max(e+this.overlapLength,this.seekWindowLength)+this.seekLength}get tempo(){return this._tempo}get inputChunkSize(){return this.sampleReq}get outputChunkSize(){return this.overlapLength+Math.max(0,this.seekWindowLength-2*this.overlapLength)}calculateOverlapLength(t=0){let e;e=this.sampleRate*t/1e3,e=e<16?16:e,e-=e%8,this.overlapLength=e,this.refMidBuffer=new Float32Array(2*this.overlapLength),this.midBuffer=new Float32Array(2*this.overlapLength)}checkLimits(t,e,o){return to?o:t}calculateSequenceParameters(){let t,e;this.autoSeqSetting&&(t=150+-50*this._tempo,t=this.checkLimits(t,50,125),this.sequenceMs=Math.floor(t+.5)),this.autoSeekSetting&&(e=28.333333333333332+ao*this._tempo,e=this.checkLimits(e,15,25),this.seekWindowMs=Math.floor(e+.5)),this.seekWindowLength=Math.floor(this.sampleRate*this.sequenceMs/1e3),this.seekLength=Math.floor(this.sampleRate*this.seekWindowMs/1e3)}set quickSeek(t){this._quickSeek=t}clone(){const t=new no;return t.tempo=this._tempo,t.setParameters(this.sampleRate,this.sequenceMs,this.seekWindowMs,this.overlapMs),t}seekBestOverlapPosition(){return this._quickSeek?this.seekBestOverlapPositionStereoQuick():this.seekBestOverlapPositionStereo()}seekBestOverlapPositionStereo(){let t,e,o,i=0;for(this.preCalculateCorrelationReferenceStereo(),t=0,e=Number.MIN_VALUE;ie&&(e=o,t=i);return t}seekBestOverlapPositionStereoQuick(){let t,e,o,i,a,n=0;for(this.preCalculateCorrelationReferenceStereo(),e=Number.MIN_VALUE,t=0,i=0,a=0;n<4;n+=1){let r=0;for(;io[n][r]&&(a=i+io[n][r],!(a>=this.seekLength));)o=this.calculateCrossCorrelationStereo(2*a,this.refMidBuffer),o>e&&(e=o,t=a),r+=1;i=t}return t}preCalculateCorrelationReferenceStereo(){let t,e,o=0;for(;o=this.sampleReq;){t=this.seekBestOverlapPosition(),this._outputBuffer.ensureAdditionalCapacity(this.overlapLength),this.overlap(Math.floor(t)),this._outputBuffer.put(this.overlapLength),e=this.seekWindowLength-2*this.overlapLength,e>0&&this._outputBuffer.putBuffer(this._inputBuffer,t+this.overlapLength,e);const i=this._inputBuffer.startIndex+2*(t+this.seekWindowLength-this.overlapLength);this.midBuffer.set(this._inputBuffer.vector.subarray(i,i+2*this.overlapLength)),this.skipFract+=this.nominalSkip,o=Math.floor(this.skipFract),this.skipFract-=o,this._inputBuffer.receive(o)}}}const ro=function(t,e){return(t>e?t-e:e-t)>1e-10};class so{constructor(){this.transposer=new Qe(!1),this.stretch=new no(!1),this._inputBuffer=new Ze,this._intermediateBuffer=new Ze,this._outputBuffer=new Ze,this._rate=0,this._tempo=0,this.virtualPitch=1,this.virtualRate=1,this.virtualTempo=1,this.calculateEffectiveRateAndTempo()}clear(){this.transposer.clear(),this.stretch.clear()}clone(){const t=new so;return t.rate=this.rate,t.tempo=this.tempo,t}get rate(){return this._rate}set rate(t){this.virtualRate=t,this.calculateEffectiveRateAndTempo()}set rateChange(t){this._rate=1+.01*t}get tempo(){return this._tempo}set tempo(t){this.virtualTempo=t,this.calculateEffectiveRateAndTempo()}set tempoChange(t){this.tempo=1+.01*t}set pitch(t){this.virtualPitch=t,this.calculateEffectiveRateAndTempo()}set pitchOctaves(t){this.pitch=Math.exp(.69314718056*t),this.calculateEffectiveRateAndTempo()}set pitchSemitones(t){this.pitchOctaves=t/12}get inputBuffer(){return this._inputBuffer}get outputBuffer(){return this._outputBuffer}calculateEffectiveRateAndTempo(){const t=this._tempo,e=this._rate;this._tempo=this.virtualTempo/this.virtualPitch,this._rate=this.virtualRate*this.virtualPitch,ro(this._tempo,t)&&(this.stretch.tempo=this._tempo),ro(this._rate,e)&&(this.transposer.rate=this._rate),this._rate>1?this._outputBuffer!=this.transposer.outputBuffer&&(this.stretch.inputBuffer=this._inputBuffer,this.stretch.outputBuffer=this._intermediateBuffer,this.transposer.inputBuffer=this._intermediateBuffer,this.transposer.outputBuffer=this._outputBuffer):this._outputBuffer!=this.stretch.outputBuffer&&(this.transposer.inputBuffer=this._inputBuffer,this.transposer.outputBuffer=this._intermediateBuffer,this.stretch.inputBuffer=this._intermediateBuffer,this.stretch.outputBuffer=this._outputBuffer)}process(){this._rate>1?(this.stretch.process(),this.transposer.process()):(this.transposer.process(),this.stretch.process())}}class lo{constructor(t){this.buffer=t,this._position=0}get dualChannel(){return this.buffer.numberOfChannels>1}get position(){return this._position}set position(t){this._position=t}extract(t,e=0,o=0){this.position=o;let i=this.buffer.getChannelData(0),a=this.dualChannel?this.buffer.getChannelData(1):this.buffer.getChannelData(0),n=0;for(;n=e?t:new Array(e-t.length+1).join(o)+t}(parseInt(t-60*e),2)}`},co=function(t){const e=this.timePlayed,o=this.sampleRate;if(this.sourcePosition=t,this.timePlayed=t/o,e!==this.timePlayed){const t=new CustomEvent("play",{detail:{timePlayed:this.timePlayed,formattedTimePlayed:this.formattedTimePlayed,percentagePlayed:this.percentagePlayed}});this._node.dispatchEvent(t)}};class ho{constructor(t,e,o,i=eo){this._soundtouch=new so;const a=new lo(e);this.timePlayed=0,this.sourcePosition=0,this._filter=new oo(a,this._soundtouch,i),this._node=function(t,e,o=eo,i=4096){const a=t.createScriptProcessor(i,2,2),n=new Float32Array(2*i);return a.onaudioprocess=t=>{let a=t.outputBuffer.getChannelData(0),r=t.outputBuffer.getChannelData(1),s=e.extract(n,i);o(e.sourcePosition),0===s&&e.onEnd();let l=0;for(;lco.call(this,t)),o),this.tempo=1,this.rate=1,this.duration=e.duration,this.sampleRate=t.sampleRate,this.listeners=[]}get formattedDuration(){return uo(this.duration)}get formattedTimePlayed(){return uo(this.timePlayed)}get percentagePlayed(){return 100*this._filter.sourcePosition/(this.duration*this.sampleRate)}set percentagePlayed(t){this._filter.sourcePosition=parseInt(t*this.duration*this.sampleRate),this.sourcePosition=this._filter.sourcePosition,this.timePlayed=this.sourcePosition/this.sampleRate}get node(){return this._node}set pitch(t){this._soundtouch.pitch=t}set pitchSemitones(t){this._soundtouch.pitchSemitones=t}set rate(t){this._soundtouch.rate=t}set tempo(t){this._soundtouch.tempo=t}connect(t){this._node.connect(t)}disconnect(){this._node.disconnect()}on(t,e){this.listeners.push({name:t,cb:e}),this._node.addEventListener(t,(t=>e(t.detail)))}off(t=null){let e=this.listeners;t&&(e=e.filter((e=>e.name===t))),e.forEach((t=>{this._node.removeEventListener(t.name,(e=>t.cb(e.detail)))}))}}const po=(...t)=>{if(Ke.debug)return console.log(`%c✦ chaimu.js v${Ke.version} ✦`,"background: #000; color: #fff; padding: 0 8px",...t)},go=["playing","ratechange","play","waiting","pause","seeked"];function mo(){const t=window.AudioContext||window.webkitAudioContext;return t?new t:void 0}class vo{static name="BasePlayer";chaimu;_src;fetch;constructor(t,e){this.chaimu=t,this._src=e,this.fetch=Ke.fetchFn}async init(){return new Promise((t=>t(this)))}clear(){return new Promise((t=>t(this)))}lipSync(t=!1){return this}handleVideoEvent=t=>(po(`handle video ${t.type}`),this.lipSync(t.type),this);removeVideoEvents(){for(const t of go)this.chaimu.video.removeEventListener(t,this.handleVideoEvent);return this}addVideoEvents(){for(const t of go)this.chaimu.video.addEventListener(t,this.handleVideoEvent);return this}async play(){return new Promise((t=>t(this)))}async pause(){return new Promise((t=>t(this)))}get name(){return this.constructor.name}set src(t){this._src=t}get src(){return this._src}get currentSrc(){return this._src}set volume(t){}get volume(){return 0}get playbackRate(){return 0}set playbackRate(t){}get currentTime(){return 0}}class fo extends vo{static name="AudioPlayer";audio;gainNode;audioSource;constructor(t,e){super(t,e),this.audio=new Audio(e),this.audio.crossOrigin="anonymous"}initAudioBooster(){return this.chaimu.audioContext?(this.gainNode&&this.audioSource&&(this.audioSource.disconnect(this.gainNode),this.gainNode.disconnect()),this.gainNode=this.chaimu.audioContext.createGain(),this.gainNode.connect(this.chaimu.audioContext.destination),this.audioSource=this.chaimu.audioContext.createMediaElementSource(this.audio),this.audioSource.connect(this.gainNode),this):this}async init(){return new Promise((t=>(this.initAudioBooster(),t(this))))}audioErrorHandle=t=>{console.error("[AudioPlayer]",t)};lipSync(t=!1){if(po("[AudioPlayer] lipsync video",this.chaimu.video),!this.chaimu.video)return this;if(this.audio.currentTime=this.chaimu.video.currentTime,this.audio.playbackRate=this.chaimu.video.playbackRate,!t)return po("[AudioPlayer] lipsync mode isn't set"),this;switch(po(`[AudioPlayer] lipsync mode is ${t}`),t){case"play":case"playing":case"seeked":return this.chaimu.video.paused||this.syncPlay(),this;case"pause":case"waiting":return this.pause(),this;default:return this}}async clear(){return new Promise((t=>(this.audio.pause(),this.audio.src="",this.audio.removeAttribute("src"),t(this))))}syncPlay(){return po("[AudioPlayer] sync play called"),this.audio.play().catch(this.audioErrorHandle),this}async play(){return po("[AudioPlayer] play called"),await this.audio.play().catch(this.audioErrorHandle),this}async pause(){return new Promise((t=>(po("[AudioPlayer] pause called"),this.audio.pause(),t(this))))}set src(t){this._src=t,t?this.audio.src=t:this.clear()}get src(){return this._src}get currentSrc(){return this.audio.currentSrc}set volume(t){this.gainNode?this.gainNode.gain.value=t:this.audio.volume=t}get volume(){return this.gainNode?this.gainNode.gain.value:this.audio.volume}get playbackRate(){return this.audio.playbackRate}set playbackRate(t){this.audio.playbackRate=t}get currentTime(){return this.audio.currentTime}}class bo extends vo{static name="ChaimuPlayer";audioBuffer;sourceNode;gainNode;audioShifter;cleanerRunned=!1;async fetchAudio(){if(!this._src)throw new Error("No audio source provided");if(!this.chaimu.audioContext)throw new Error("No audio context available");po(`[ChaimuPlayer] Fetching audio from ${this._src}...`);try{const t=await this.fetch(this._src);po("[ChaimuPlayer] Decoding fetched audio...");const e=await t.arrayBuffer();this.audioBuffer=await this.chaimu.audioContext.decodeAudioData(e)}catch(t){throw new Error(`Failed to fetch audio file, because ${t.message}`)}return this}initAudioBooster(){return this.chaimu.audioContext?(this.gainNode&&this.gainNode.disconnect(),this.gainNode=this.chaimu.audioContext.createGain(),this):this}async init(){return await this.fetchAudio(),this.initAudioBooster(),this}lipSync(t=!1){if(po("[ChaimuPlayer] lipsync video",this.chaimu.video,this),!this.chaimu.video)return this;if(!t)return po("[ChaimuPlayer] lipsync mode isn't set"),this;switch(po(`[ChaimuPlayer] lipsync mode is ${t}`),t){case"play":case"playing":case"ratechange":case"seeked":return this.chaimu.video.paused||this.start(),this;case"pause":case"waiting":return this.pause(),this;default:return this}}async reopenCtx(){if(!this.chaimu.audioContext)throw new Error("No audio context available");try{await this.chaimu.audioContext.close()}catch{}return this}async clear(){if(!this.chaimu.audioContext)throw new Error("No audio context available");if(po("clear audio context"),this.cleanerRunned=!0,await this.pause(),!this.gainNode)return this.cleanerRunned=!1,this;this.sourceNode&&(this.sourceNode.stop(),this.sourceNode.disconnect(this.gainNode),this.sourceNode=void 0),this.audioShifter&&(this.audioShifter._node.disconnect(this.gainNode),this.audioShifter=void 0),this.gainNode.disconnect();const t=this.volume;return this.gainNode=void 0,await this.reopenCtx(),this.chaimu.audioContext=mo(),this.initAudioBooster(),this.volume=t,this.cleanerRunned=!1,this}async start(){if(!this.chaimu.audioContext)throw new Error("No audio context available");if(!this.audioBuffer)throw new Error("The player isn't initialized");return!this.gainNode||this.audioShifter&&this.audioShifter.duration({label:Z.get("langs")[t]??t.toUpperCase(),value:t,selected:e===t})))}const So=t=>t?Z.get("VOTChangeHotkeyWithCurrent").replace("{0}",t.replace("Key","")):Z.get("VOTCreateTranslationHotkey");class ko{translateFromLang="en";translateToLang=Q;timer;videoData="";firstPlay=!0;audioContext=mo();hls=et();votClient;audioPlayer;videoTranslations=[];videoTranslationTTL=7200;cachedTranslation;downloadTranslationUrl=null;autoRetry;streamPing;votOpts;volumeOnStart;tempOriginalVolume;tempVolume;firstSyncVolume=!0;subtitlesList=[];subtitlesListVideoId=null;dragging;constructor(t,e,o){$.log("[VideoHandler] add video:",t,"container:",e,this),this.video=t,this.container=e,this.site=o,this.init()}async translateVideoImpl(t,e,o,i=null){if(clearTimeout(this.autoRetry),$.log(t,`Translate video (requestLang: ${e}, responseLang: ${o})`),await vt(this.site,this.video)!==t.videoId)return null;try{const a=await this.votClient.translateVideo({videoData:t,requestLang:e,responseLang:o,translationHelp:i});if($.log("Translate video result",a),a.translated&&a.remainingTime<1)return $.log("Video translation finished with this data: ",a),a;await this.updateTranslationErrorMsg(a.remainingTime>0?function(t){let e=Math.floor(t/60),o=Math.floor(t%60);return o/60>=.66&&(e+=1,o=0),e>=60?Z.get("translationTakeMoreThanHour"):1===e||0===e&&o>0?Z.get("translationTakeAboutMinute"):11!==e&&e%10==1?Z.get("translationTakeApproximatelyMinute2").replace("{0}",e):![12,13,14].includes(e)&&[2,3,4].includes(e%10)?Z.get("translationTakeApproximatelyMinute").replace("{0}",e):Z.get("translationTakeApproximatelyMinutes").replace("{0}",e)}(a.remainingTime):a.message??Z.get("translationTakeFewMinutes"))}catch(t){return console.error("[VOT] Failed to translate video",t),await this.updateTranslationErrorMsg(t.data?.message??t),null}return new Promise((a=>{const n=this.subtitlesList.some((t=>"yandex"===t.source))?2e4:3e4;this.autoRetry=setTimeout((async()=>{const n=await this.translateVideoImpl(t,e,o,i);(!n||n.translated&&n.remainingTime<1)&&a(n)}),n)}))}async translateStreamImpl(t,e,o){if(clearTimeout(this.autoRetry),$.log(t,`Translate stream (requestLang: ${e}, responseLang: ${o})`),await vt(this.site,this.video)!==t.videoId)return null;try{const i=await this.votClient.translateStream({videoData:t,requestLang:e,responseLang:o});if($.log("Translate stream result",i),!i.translated&&10===i.interval)return await this.updateTranslationErrorMsg(Z.get("translationTakeFewMinutes")),new Promise((a=>{this.autoRetry=setTimeout((async()=>{const i=await this.translateStreamImpl(t,e,o);i&&!i.translated&&10===i.interval||a(i)}),1e3*i.interval)}));if(i.message)throw $.log(`Stream translation aborted! Message: ${i.message}`),new ht("streamNoConnectionToServer");if(!i.result)throw $.log("Failed to find translation result! Data:",i),new ht("audioNotReceived");return $.log("Stream translated successfully. Running...",i),this.streamPing=setInterval((async()=>{$.log("Ping stream translation",i.pingId),this.votClient.pingStream({pingId:i.pingId})}),1e3*i.interval),i}catch(t){return console.error("[VOT] Failed to translate stream",t),await this.updateTranslationErrorMsg(t.data?.message??t),null}}async autoTranslate(){if(this.firstPlay&&1===this.data.autoTranslate&&this.videoData.videoId){this.firstPlay=!1;try{await this.translateExecutor(this.videoData.videoId)}catch(t){console.error("[VOT]",t),this.transformBtn("error","VOTLocalizedError"===t?.name?t.localizedMessage:t)}}}getPreferAudio(){return!this.audioContext||(!this.data.newAudioPlayer||(!!this.videoData.isStream||!(this.data.newAudioPlayer&&!this.data.onlyBypassMediaCSP)&&!this.site.needBypassCSP))}createPlayer(){const t=this.getPreferAudio();return $.log("preferAudio:",t),this.audioPlayer=new yo({video:this.video,debug:!1,fetchFn:nt,preferAudio:t}),this}async init(){if(this.initialized)return;const t={autoTranslate:Y.get("autoTranslate",0),dontTranslateLanguage:Y.get("dontTranslateLanguage",Q),dontTranslateYourLang:Y.get("dontTranslateYourLang",1),autoSetVolumeYandexStyle:Y.get("autoSetVolumeYandexStyle",1),autoVolume:Y.get("autoVolume",U),buttonPos:Y.get("buttonPos","default"),showVideoSlider:Y.get("showVideoSlider",1),syncVolume:Y.get("syncVolume",0),downloadWithName:Y.get("downloadWithName",1),subtitlesMaxLength:Y.get("subtitlesMaxLength",300),highlightWords:Y.get("highlightWords",0),subtitlesFontSize:Y.get("subtitlesFontSize",20),subtitlesOpacity:Y.get("subtitlesOpacity",20),subtitlesDownloadFormat:Y.get("subtitlesDownloadFormat","srt"),responseLanguage:Y.get("responseLanguage",Q),defaultVolume:Y.get("defaultVolume",100),audioProxy:Y.get("audioProxy",0),onlyBypassMediaCSP:Y.get("onlyBypassMediaCSP",Number(!!this.audioContext)),newAudioPlayer:Y.get("newAudioPlayer",Number(!!this.audioContext)),showPiPButton:Y.get("showPiPButton",0),translateAPIErrors:Y.get("translateAPIErrors",1),translationService:Y.get("translationService",H),detectService:Y.get("detectService",z),hotkeyButton:Y.get("hotkeyButton",null),m3u8ProxyHost:Y.get("m3u8ProxyHost",D),translateProxyEnabled:Y.get("translateProxyEnabled",0),proxyWorkerHost:Y.get("proxyWorkerHost",F),audioBooster:Y.get("audioBooster",0),localeHash:Y.get("locale-hash",""),localeUpdatedAt:Y.get("locale-updated-at",0)};this.data=Object.fromEntries(await Promise.all(Object.entries(t).map((async([t,e])=>[t,await e])))),console.log("[VOT] data from db: ",this.data),"m3u8-proxy.toil.cc"===this.data.m3u8ProxyHost&&(this.data.m3u8ProxyHost=D,await Y.set("m3u8ProxyHost",D),console.log(`[VOT] Old m3u8 proxy host converted to new ${this.data.m3u8ProxyHost} media-proxy`)),"vot.toil.cc"===this.data.proxyWorkerHost&&(this.data.proxyWorkerHost=F,await Y.set("proxyWorkerHost",F),console.log(`[VOT] Old proxy worker host converted to new ${this.data.proxyWorkerHost}`)),!this.data.translateProxyEnabled&&GM_info?.scriptHandler&&G.includes(GM_info.scriptHandler)&&(this.data.translateProxyEnabled=1,await Y.set("translateProxyEnabled",1),$.log("translateProxyEnabled",this.data.translateProxyEnabled)),$.log("Extension compatibility passed..."),this.votOpts={headers:this.data.translateProxyEnabled?{}:{"sec-ch-ua":null,"sec-ch-ua-mobile":null,"sec-ch-ua-platform":null},fetchFn:nt,hostVOT:q,host:this.data.translateProxyEnabled?this.data.proxyWorkerHost:"api.browser.yandex.ru"},this.votClient=new(this.data.translateProxyEnabled?wt:yt)(this.votOpts),this.subtitlesWidget=new Ne(this.video,this.container,this.site),this.subtitlesWidget.setMaxLength(this.data.subtitlesMaxLength),this.subtitlesWidget.setHighlightWords(this.data.highlightWords),this.subtitlesWidget.setFontSize(this.data.subtitlesFontSize),this.subtitlesWidget.setOpacity(this.data.subtitlesOpacity),this.initUI(),this.initUIEvents(),this.videoData=await this.getVideoData(),this.createPlayer(),this.setSelectMenuValues(this.videoData.detectedLanguage,this.data.responseLanguage??"ru"),this.translateToLang=this.data.responseLanguage??"ru",this.initExtraEvents(),await Promise.all([this.updateSubtitles(),this.autoTranslate()]),this.initialized=!0}transformBtn(t,e){this.votButton.container.dataset.status=t;const o="error"===t&&e.includes(Z.get("translationTake"));return this.setLoadingBtn(o),this.votButton.label.textContent=e,this.votButton.container.title="error"===t?e:"",this}setLoadingBtn(t=!1){return this.votButton.container.dataset.loading=t,this}initUI(){this.votButton=We.createVOTButton(Z.get("translateVideo")),this.votButton.container.style.opacity=0,this.data?.buttonPos&&"default"!==this.data?.buttonPos&&this.container.clientWidth>550?(this.votButton.container.dataset.direction="column",this.votButton.container.dataset.position=this.data?.buttonPos):(this.votButton.container.dataset.direction="row",this.votButton.container.dataset.position="default"),this.container.appendChild(this.votButton.container),this.votButton.pipButton.hidden=!tt()||!this.data?.showPiPButton,this.votButton.separator2.hidden=!tt()||!this.data?.showPiPButton,this.votButton.container.addEventListener("click",(t=>{t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation()})),this.votMenu=We.createVOTMenu(Z.get("VOTSettings")),this.votMenu.container.dataset.position=this.container.clientWidth&&this.container.clientWidth>550?this.data?.buttonPos:"default",this.container.appendChild(this.votMenu.container),this.votDownloadButton=We.createIconButton(Yt``,c);const h=We(n,r,s,{onSelectCb:l});return d.append(u.container,c,h.container),{container:d,fromSelect:u,icon:c,toSelect:h}},updateSlider:Ue,animateLoader:function(t,e="139, 180, 245"){const o=t.querySelector(".vot-loader-helper"),i=t.querySelector(".vot-loader-main");anime.timeline({...Fe,targets:[o,i],duration:250}).add({"fill-opacity":0,"stroke-width":2,d:"M 12 1.5 C 17.799 1.5 22.5 6.201 22.5 12 C 22.5 17.799 17.799 22.5 12 22.5 C 6.201 22.5 1.5 17.799 1.5 12 C 1.5 6.201 6.201 1.5 12 1.5 Z",duration:0}).add({targets:o,stroke:`rgb(${e})`,"stroke-opacity":0,duration:0},0).add({targets:i,stroke:"#888888","stroke-opacity":.25},0);const a=anime.timeline({targets:o,easing:"easeInOutSine",duration:1e3,autoplay:!1}).add({strokeOpacity:1,duration:0},0).add({strokeDashoffset:[anime.setDashoffset,0]},0);return t=>{a.seek(a.duration*(t/100))}},afterAnimateLoader:function(t,e="139, 180, 245"){const o=t.querySelector(".vot-loader-helper"),i=t.querySelector(".vot-loader-main");anime.timeline({...Fe,targets:i,duration:600}).add({d:"M 9.0596 14.8571 L 9.7667 15.5642 L 10.4738 14.8571 L 17.0071 8.3238 C 17.0457 8.2852 17.0937 8.25 17.2333 8.25 C 17.373 8.25 17.421 8.2852 17.4596 8.3238 C 17.4981 8.3624 17.5333 8.4104 17.5333 8.55 C 17.5333 8.6896 17.4981 8.7376 17.4596 8.7762 L 9.9929 16.2429 C 9.9011 16.3346 9.8397 16.35 9.7667 16.35 C 9.6937 16.35 9.6322 16.3346 9.5404 16.2429 L 6.0738 12.7762 C 6.0352 12.7376 6 12.6897 6 12.55 C 6 12.4103 6.0352 12.3624 6.0738 12.3238 C 6.1124 12.2852 6.1603 12.25 6.3 12.25 C 6.4397 12.25 6.4876 12.2852 6.5262 12.3238 L 9.0596 14.8571 Z",duration:0}).add({strokeDashoffset:[anime.setDashoffset,0],stroke:`rgb(${e})`,"stroke-opacity":1}),setTimeout((()=>{anime.timeline({...Fe,targets:i,duration:600}).add({d:"M12 15.575C11.8667 15.575 11.7417 15.5542 11.625 15.5125C11.5083 15.4708 11.4 15.4 11.3 15.3L7.7 11.7C7.5 11.5 7.40417 11.2667 7.4125 11C7.42083 10.7333 7.51667 10.5 7.7 10.3C7.9 10.1 8.1375 9.99583 8.4125 9.9875C8.6875 9.97917 8.925 10.075 9.125 10.275L11 12.15V5C11 4.71667 11.0958 4.47917 11.2875 4.2875C11.4792 4.09583 11.7167 4 12 4C12.2833 4 12.5208 4.09583 12.7125 4.2875C12.9042 4.47917 13 4.71667 13 5V12.15L14.875 10.275C15.075 10.075 15.3125 9.97917 15.5875 9.9875C15.8625 9.99583 16.1 10.1 16.3 10.3C16.4833 10.5 16.5792 10.7333 16.5875 11C16.5958 11.2667 16.5 11.5 16.3 11.7L12.7 15.3C12.6 15.4 12.4917 15.4708 12.375 15.5125C12.2583 15.5542 12.1333 15.575 12 15.575ZM6 20C5.45 20 4.97917 19.8042 4.5875 19.4125C4.19583 19.0208 4 18.55 4 18V16C4 15.7167 4.09583 15.4792 4.2875 15.2875C4.47917 15.0958 4.71667 15 5 15C5.28333 15 5.52083 15.0958 5.7125 15.2875C5.90417 15.4792 6 15.7167 6 16V18H18V16C18 15.7167 18.0958 15.4792 18.2875 15.2875C18.4792 15.0958 18.7167 15 19 15C19.2833 15 19.5208 15.0958 19.7125 15.2875C19.9042 15.4792 20 15.7167 20 16V18C20 18.55 19.8042 19.0208 19.4125 19.4125C19.0208 19.8042 18.55 20 18 20H6Z",duration:100}).add({targets:o,d:"",duration:200},0).add({targets:i,"stroke-width":"0",stroke:`rgba(${e}), 0)`,"fill-opacity":"1","stroke-dasharray":"0","stroke-dashoffset":"0",duration:0})}),2e3)},createDetails:function(t){const e=document.createElement("vot-block");e.classList.add("vot-details");const o=document.createElement("vot-block");o.append(t);const i=document.createElement("vot-block");return i.classList.add("vot-details-arrow-icon"),he(De,i),e.append(o,i),{container:e,header:o,arrowIcon:i}}};o("./node_modules/requestidlecallback-polyfill/index.js");class Ge{constructor(){this.listeners=new Set}hasListener(t){return this.listeners.has(t)}dispatchToListener(t,...e){try{t(...e)}catch(t){console.error("[VOT]",t)}}addListener(t){if(this.hasListener(t))throw new Error("[VOT] The listener has already been added.");this.listeners.add(t)}removeListener(t){if(!this.hasListener(t))throw new Error("[VOT] The listener has not been added yet.");this.listeners.delete(t)}dispatch(...t){for(const e of Array.from(this.listeners))this.dispatchToListener(e,...t)}}const Ye=new Set(["advertise","promo","sponsor","banner","commercial","preroll","midroll","postroll","ad-container","sponsored"]),Je=(()=>{const t=Array.from(Ye).join("|");return new RegExp(t,"i")})(),Ke=t=>{const e=[];for(let o=0;o=0||(o=(t.length-i)/2);const a=2*o;this.ensureCapacity(o+this._frameCount);const n=this.endIndex;this.vector.set(t.subarray(i,i+a),n),this._frameCount+=o}putBuffer(t,e,o=0){e=e||0,o>=0||(o=t.frameCount-e),this.putSamples(t.vector,t.position+e,o)}receive(t){t>=0&&!(t>this._frameCount)||(t=this.frameCount),this._frameCount-=t,this._position+=t}receiveSamples(t,e=0){const o=2*e,i=this.startIndex;t.set(this._vector.subarray(i,i+o)),this.receive(e)}extract(t,e=0,o=0){const i=this.startIndex+2*e,a=2*o;t.set(this._vector.subarray(i,i+a))}ensureCapacity(t=0){const e=parseInt(2*t);if(this._vector.length0&&(this._vector.set(this._vector.subarray(this.startIndex,this.endIndex)),this._position=0)}}class Qe{constructor(t){t?(this._inputBuffer=new Xe,this._outputBuffer=new Xe):this._inputBuffer=this._outputBuffer=null}get inputBuffer(){return this._inputBuffer}set inputBuffer(t){this._inputBuffer=t}get outputBuffer(){return this._outputBuffer}set outputBuffer(t){this._outputBuffer=t}clear(){this._inputBuffer.clear(),this._outputBuffer.clear()}}class to extends Qe{constructor(t){super(t),this.reset(),this._rate=1}set rate(t){this._rate=t}reset(){this.slopeCount=0,this.prevSampleL=0,this.prevSampleR=0}clone(){const t=new to;return t.rate=this._rate,t}process(){const t=this._inputBuffer.frameCount;this._outputBuffer.ensureAdditionalCapacity(t/this._rate+1);const e=this.transpose(t);this._inputBuffer.receive(),this._outputBuffer.put(e)}transpose(t=0){if(0===t)return 0;const e=this._inputBuffer.vector,o=this._inputBuffer.startIndex,i=this._outputBuffer.vector,a=this._outputBuffer.endIndex;let n=0,r=0;for(;this.slopeCount<1;)i[a+2*r]=(1-this.slopeCount)*this.prevSampleL+this.slopeCount*e[o],i[a+2*r+1]=(1-this.slopeCount)*this.prevSampleR+this.slopeCount*e[o+1],r+=1,this.slopeCount+=this._rate;if(this.slopeCount-=1,1!==t)t:for(;;){for(;this.slopeCount>1;)if(this.slopeCount-=1,n+=1,n>=t-1)break t;const s=o+2*n;i[a+2*r]=(1-this.slopeCount)*e[s]+this.slopeCount*e[s+2],i[a+2*r+1]=(1-this.slopeCount)*e[s+1]+this.slopeCount*e[s+3],r+=1,this.slopeCount+=this._rate}return this.prevSampleL=e[o+2*t-2],this.prevSampleR=e[o+2*t-1],r}}class eo{constructor(t){this._pipe=t}get pipe(){return this._pipe}get inputBuffer(){return this._pipe.inputBuffer}get outputBuffer(){return this._pipe.outputBuffer}fillInputBuffer(){throw new Error("fillInputBuffer() not overridden")}fillOutputBuffer(t=0){for(;this.outputBuffer.frameCountthis._position)throw new RangeError("New position may not be greater than current position");const e=this.outputBufferPosition-(this._position-t);if(e<0)throw new RangeError("New position falls outside of history buffer");this.outputBufferPosition=e,this._position=t}get sourcePosition(){return this._sourcePosition}set sourcePosition(t){this.clear(),this._sourcePosition=t}onEnd(){this.callback()}fillInputBuffer(t=0){const e=new Float32Array(2*t),o=this.sourceSound.extract(e,t,this._sourcePosition);this._sourcePosition+=o,this.inputBuffer.putSamples(e,0,o)}extract(t,e=0){this.fillOutputBuffer(this.outputBufferPosition+e);const o=Math.min(e,this.outputBuffer.frameCount-this.outputBufferPosition);this.outputBuffer.extract(t,this.outputBufferPosition,o);const i=this.outputBufferPosition+o;return this.outputBufferPosition=Math.min(this.historyBufferSize,i),this.outputBuffer.receive(Math.max(i-this.historyBufferSize,0)),this._position+=o,o}handleSampleData(t){this.extract(t.data,4096)}clear(){super.clear(),this.outputBufferPosition=0}}const ao=[[124,186,248,310,372,434,496,558,620,682,744,806,868,930,992,1054,1116,1178,1240,1302,1364,1426,1488,0],[-100,-75,-50,-25,25,50,75,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[-20,-15,-10,-5,5,10,15,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[-4,-3,-2,-1,1,2,3,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],no=-10/1.5;class ro extends Qe{constructor(t){super(t),this._quickSeek=!0,this.midBufferDirty=!1,this.midBuffer=null,this.overlapLength=0,this.autoSeqSetting=!0,this.autoSeekSetting=!0,this._tempo=1,this.setParameters(44100,0,0,8)}clear(){super.clear(),this.clearMidBuffer()}clearMidBuffer(){this.midBufferDirty&&(this.midBufferDirty=!1,this.midBuffer=null)}setParameters(t,e,o,i){t>0&&(this.sampleRate=t),i>0&&(this.overlapMs=i),e>0?(this.sequenceMs=e,this.autoSeqSetting=!1):this.autoSeqSetting=!0,o>0?(this.seekWindowMs=o,this.autoSeekSetting=!1):this.autoSeekSetting=!0,this.calculateSequenceParameters(),this.calculateOverlapLength(this.overlapMs),this.tempo=this._tempo}set tempo(t){let e;this._tempo=t,this.calculateSequenceParameters(),this.nominalSkip=this._tempo*(this.seekWindowLength-this.overlapLength),this.skipFract=0,e=Math.floor(this.nominalSkip+.5),this.sampleReq=Math.max(e+this.overlapLength,this.seekWindowLength)+this.seekLength}get tempo(){return this._tempo}get inputChunkSize(){return this.sampleReq}get outputChunkSize(){return this.overlapLength+Math.max(0,this.seekWindowLength-2*this.overlapLength)}calculateOverlapLength(t=0){let e;e=this.sampleRate*t/1e3,e=e<16?16:e,e-=e%8,this.overlapLength=e,this.refMidBuffer=new Float32Array(2*this.overlapLength),this.midBuffer=new Float32Array(2*this.overlapLength)}checkLimits(t,e,o){return to?o:t}calculateSequenceParameters(){let t,e;this.autoSeqSetting&&(t=150+-50*this._tempo,t=this.checkLimits(t,50,125),this.sequenceMs=Math.floor(t+.5)),this.autoSeekSetting&&(e=28.333333333333332+no*this._tempo,e=this.checkLimits(e,15,25),this.seekWindowMs=Math.floor(e+.5)),this.seekWindowLength=Math.floor(this.sampleRate*this.sequenceMs/1e3),this.seekLength=Math.floor(this.sampleRate*this.seekWindowMs/1e3)}set quickSeek(t){this._quickSeek=t}clone(){const t=new ro;return t.tempo=this._tempo,t.setParameters(this.sampleRate,this.sequenceMs,this.seekWindowMs,this.overlapMs),t}seekBestOverlapPosition(){return this._quickSeek?this.seekBestOverlapPositionStereoQuick():this.seekBestOverlapPositionStereo()}seekBestOverlapPositionStereo(){let t,e,o,i=0;for(this.preCalculateCorrelationReferenceStereo(),t=0,e=Number.MIN_VALUE;ie&&(e=o,t=i);return t}seekBestOverlapPositionStereoQuick(){let t,e,o,i,a,n=0;for(this.preCalculateCorrelationReferenceStereo(),e=Number.MIN_VALUE,t=0,i=0,a=0;n<4;n+=1){let r=0;for(;ao[n][r]&&(a=i+ao[n][r],!(a>=this.seekLength));)o=this.calculateCrossCorrelationStereo(2*a,this.refMidBuffer),o>e&&(e=o,t=a),r+=1;i=t}return t}preCalculateCorrelationReferenceStereo(){let t,e,o=0;for(;o=this.sampleReq;){t=this.seekBestOverlapPosition(),this._outputBuffer.ensureAdditionalCapacity(this.overlapLength),this.overlap(Math.floor(t)),this._outputBuffer.put(this.overlapLength),e=this.seekWindowLength-2*this.overlapLength,e>0&&this._outputBuffer.putBuffer(this._inputBuffer,t+this.overlapLength,e);const i=this._inputBuffer.startIndex+2*(t+this.seekWindowLength-this.overlapLength);this.midBuffer.set(this._inputBuffer.vector.subarray(i,i+2*this.overlapLength)),this.skipFract+=this.nominalSkip,o=Math.floor(this.skipFract),this.skipFract-=o,this._inputBuffer.receive(o)}}}const so=function(t,e){return(t>e?t-e:e-t)>1e-10};class lo{constructor(){this.transposer=new to(!1),this.stretch=new ro(!1),this._inputBuffer=new Xe,this._intermediateBuffer=new Xe,this._outputBuffer=new Xe,this._rate=0,this._tempo=0,this.virtualPitch=1,this.virtualRate=1,this.virtualTempo=1,this.calculateEffectiveRateAndTempo()}clear(){this.transposer.clear(),this.stretch.clear()}clone(){const t=new lo;return t.rate=this.rate,t.tempo=this.tempo,t}get rate(){return this._rate}set rate(t){this.virtualRate=t,this.calculateEffectiveRateAndTempo()}set rateChange(t){this._rate=1+.01*t}get tempo(){return this._tempo}set tempo(t){this.virtualTempo=t,this.calculateEffectiveRateAndTempo()}set tempoChange(t){this.tempo=1+.01*t}set pitch(t){this.virtualPitch=t,this.calculateEffectiveRateAndTempo()}set pitchOctaves(t){this.pitch=Math.exp(.69314718056*t),this.calculateEffectiveRateAndTempo()}set pitchSemitones(t){this.pitchOctaves=t/12}get inputBuffer(){return this._inputBuffer}get outputBuffer(){return this._outputBuffer}calculateEffectiveRateAndTempo(){const t=this._tempo,e=this._rate;this._tempo=this.virtualTempo/this.virtualPitch,this._rate=this.virtualRate*this.virtualPitch,so(this._tempo,t)&&(this.stretch.tempo=this._tempo),so(this._rate,e)&&(this.transposer.rate=this._rate),this._rate>1?this._outputBuffer!=this.transposer.outputBuffer&&(this.stretch.inputBuffer=this._inputBuffer,this.stretch.outputBuffer=this._intermediateBuffer,this.transposer.inputBuffer=this._intermediateBuffer,this.transposer.outputBuffer=this._outputBuffer):this._outputBuffer!=this.stretch.outputBuffer&&(this.transposer.inputBuffer=this._inputBuffer,this.transposer.outputBuffer=this._intermediateBuffer,this.stretch.inputBuffer=this._intermediateBuffer,this.stretch.outputBuffer=this._outputBuffer)}process(){this._rate>1?(this.stretch.process(),this.transposer.process()):(this.transposer.process(),this.stretch.process())}}class uo{constructor(t){this.buffer=t,this._position=0}get dualChannel(){return this.buffer.numberOfChannels>1}get position(){return this._position}set position(t){this._position=t}extract(t,e=0,o=0){this.position=o;let i=this.buffer.getChannelData(0),a=this.dualChannel?this.buffer.getChannelData(1):this.buffer.getChannelData(0),n=0;for(;n=e?t:new Array(e-t.length+1).join(o)+t}(parseInt(t-60*e),2)}`},ho=function(t){const e=this.timePlayed,o=this.sampleRate;if(this.sourcePosition=t,this.timePlayed=t/o,e!==this.timePlayed){const t=new CustomEvent("play",{detail:{timePlayed:this.timePlayed,formattedTimePlayed:this.formattedTimePlayed,percentagePlayed:this.percentagePlayed}});this._node.dispatchEvent(t)}};class po{constructor(t,e,o,i=oo){this._soundtouch=new lo;const a=new uo(e);this.timePlayed=0,this.sourcePosition=0,this._filter=new io(a,this._soundtouch,i),this._node=function(t,e,o=oo,i=4096){const a=t.createScriptProcessor(i,2,2),n=new Float32Array(2*i);return a.onaudioprocess=t=>{let a=t.outputBuffer.getChannelData(0),r=t.outputBuffer.getChannelData(1),s=e.extract(n,i);o(e.sourcePosition),0===s&&e.onEnd();let l=0;for(;lho.call(this,t)),o),this.tempo=1,this.rate=1,this.duration=e.duration,this.sampleRate=t.sampleRate,this.listeners=[]}get formattedDuration(){return co(this.duration)}get formattedTimePlayed(){return co(this.timePlayed)}get percentagePlayed(){return 100*this._filter.sourcePosition/(this.duration*this.sampleRate)}set percentagePlayed(t){this._filter.sourcePosition=parseInt(t*this.duration*this.sampleRate),this.sourcePosition=this._filter.sourcePosition,this.timePlayed=this.sourcePosition/this.sampleRate}get node(){return this._node}set pitch(t){this._soundtouch.pitch=t}set pitchSemitones(t){this._soundtouch.pitchSemitones=t}set rate(t){this._soundtouch.rate=t}set tempo(t){this._soundtouch.tempo=t}connect(t){this._node.connect(t)}disconnect(){this._node.disconnect()}on(t,e){this.listeners.push({name:t,cb:e}),this._node.addEventListener(t,(t=>e(t.detail)))}off(t=null){let e=this.listeners;t&&(e=e.filter((e=>e.name===t))),e.forEach((t=>{this._node.removeEventListener(t.name,(e=>t.cb(e.detail)))}))}}const go=(...t)=>{if(Ze.debug)return console.log(`%c✦ chaimu.js v${Ze.version} ✦`,"background: #000; color: #fff; padding: 0 8px",...t)},mo=["playing","ratechange","play","waiting","pause","seeked"];function vo(){const t=window.AudioContext||window.webkitAudioContext;return t?new t:void 0}class fo{static name="BasePlayer";chaimu;_src;fetch;constructor(t,e){this.chaimu=t,this._src=e,this.fetch=Ze.fetchFn}async init(){return new Promise((t=>t(this)))}clear(){return new Promise((t=>t(this)))}lipSync(t=!1){return this}handleVideoEvent=t=>(go(`handle video ${t.type}`),this.lipSync(t.type),this);removeVideoEvents(){for(const t of mo)this.chaimu.video.removeEventListener(t,this.handleVideoEvent);return this}addVideoEvents(){for(const t of mo)this.chaimu.video.addEventListener(t,this.handleVideoEvent);return this}async play(){return new Promise((t=>t(this)))}async pause(){return new Promise((t=>t(this)))}get name(){return this.constructor.name}set src(t){this._src=t}get src(){return this._src}get currentSrc(){return this._src}set volume(t){}get volume(){return 0}get playbackRate(){return 0}set playbackRate(t){}get currentTime(){return 0}}class bo extends fo{static name="AudioPlayer";audio;gainNode;audioSource;constructor(t,e){super(t,e),this.audio=new Audio(e),this.audio.crossOrigin="anonymous"}initAudioBooster(){return this.chaimu.audioContext?(this.gainNode&&this.audioSource&&(this.audioSource.disconnect(this.gainNode),this.gainNode.disconnect()),this.gainNode=this.chaimu.audioContext.createGain(),this.gainNode.connect(this.chaimu.audioContext.destination),this.audioSource=this.chaimu.audioContext.createMediaElementSource(this.audio),this.audioSource.connect(this.gainNode),this):this}async init(){return new Promise((t=>(this.initAudioBooster(),t(this))))}audioErrorHandle=t=>{console.error("[AudioPlayer]",t)};lipSync(t=!1){if(go("[AudioPlayer] lipsync video",this.chaimu.video),!this.chaimu.video)return this;if(this.audio.currentTime=this.chaimu.video.currentTime,this.audio.playbackRate=this.chaimu.video.playbackRate,!t)return go("[AudioPlayer] lipsync mode isn't set"),this;switch(go(`[AudioPlayer] lipsync mode is ${t}`),t){case"play":case"playing":case"seeked":return this.chaimu.video.paused||this.syncPlay(),this;case"pause":case"waiting":return this.pause(),this;default:return this}}async clear(){return new Promise((t=>(this.audio.pause(),this.audio.src="",this.audio.removeAttribute("src"),t(this))))}syncPlay(){return go("[AudioPlayer] sync play called"),this.audio.play().catch(this.audioErrorHandle),this}async play(){return go("[AudioPlayer] play called"),await this.audio.play().catch(this.audioErrorHandle),this}async pause(){return new Promise((t=>(go("[AudioPlayer] pause called"),this.audio.pause(),t(this))))}set src(t){this._src=t,t?this.audio.src=t:this.clear()}get src(){return this._src}get currentSrc(){return this.audio.currentSrc}set volume(t){this.gainNode?this.gainNode.gain.value=t:this.audio.volume=t}get volume(){return this.gainNode?this.gainNode.gain.value:this.audio.volume}get playbackRate(){return this.audio.playbackRate}set playbackRate(t){this.audio.playbackRate=t}get currentTime(){return this.audio.currentTime}}class yo extends fo{static name="ChaimuPlayer";audioBuffer;sourceNode;gainNode;audioShifter;cleanerRunned=!1;async fetchAudio(){if(!this._src)throw new Error("No audio source provided");if(!this.chaimu.audioContext)throw new Error("No audio context available");go(`[ChaimuPlayer] Fetching audio from ${this._src}...`);try{const t=await this.fetch(this._src);go("[ChaimuPlayer] Decoding fetched audio...");const e=await t.arrayBuffer();this.audioBuffer=await this.chaimu.audioContext.decodeAudioData(e)}catch(t){throw new Error(`Failed to fetch audio file, because ${t.message}`)}return this}initAudioBooster(){return this.chaimu.audioContext?(this.gainNode&&this.gainNode.disconnect(),this.gainNode=this.chaimu.audioContext.createGain(),this):this}async init(){return await this.fetchAudio(),this.initAudioBooster(),this}lipSync(t=!1){if(go("[ChaimuPlayer] lipsync video",this.chaimu.video,this),!this.chaimu.video)return this;if(!t)return go("[ChaimuPlayer] lipsync mode isn't set"),this;switch(go(`[ChaimuPlayer] lipsync mode is ${t}`),t){case"play":case"playing":case"ratechange":case"seeked":return this.chaimu.video.paused||this.start(),this;case"pause":case"waiting":return this.pause(),this;default:return this}}async reopenCtx(){if(!this.chaimu.audioContext)throw new Error("No audio context available");try{await this.chaimu.audioContext.close()}catch{}return this}async clear(){if(!this.chaimu.audioContext)throw new Error("No audio context available");if(go("clear audio context"),this.cleanerRunned=!0,await this.pause(),!this.gainNode)return this.cleanerRunned=!1,this;this.sourceNode&&(this.sourceNode.stop(),this.sourceNode.disconnect(this.gainNode),this.sourceNode=void 0),this.audioShifter&&(this.audioShifter._node.disconnect(this.gainNode),this.audioShifter=void 0),this.gainNode.disconnect();const t=this.volume;return this.gainNode=void 0,await this.reopenCtx(),this.chaimu.audioContext=vo(),this.initAudioBooster(),this.volume=t,this.cleanerRunned=!1,this}async start(){if(!this.chaimu.audioContext)throw new Error("No audio context available");if(!this.audioBuffer)throw new Error("The player isn't initialized");return!this.gainNode||this.audioShifter&&this.audioShifter.duration({label:X.get("langs")[t]??t.toUpperCase(),value:t,selected:e===t})))}const ko=t=>t?X.get("VOTChangeHotkeyWithCurrent").replace("{0}",t.replace("Key","")):X.get("VOTCreateTranslationHotkey");class To{translateFromLang="en";translateToLang=tt;timer;videoData="";firstPlay=!0;audioContext=vo();hls=ot();votClient;audioPlayer;videoTranslations=[];videoTranslationTTL=7200;cachedTranslation;downloadTranslationUrl=null;autoRetry;streamPing;votOpts;volumeOnStart;tempOriginalVolume;tempVolume;firstSyncVolume=!0;subtitlesList=[];subtitlesListVideoId=null;dragging;constructor(t,e,o){D.log("[VideoHandler] add video:",t,"container:",e,this),this.video=t,this.container=e,this.site=o,this.init()}async translateVideoImpl(t,e,o,i=null){if(clearTimeout(this.autoRetry),D.log(t,`Translate video (requestLang: ${e}, responseLang: ${o})`),await ft(this.site,this.video)!==t.videoId)return null;try{const a=await this.votClient.translateVideo({videoData:t,requestLang:e,responseLang:o,translationHelp:i});if(D.log("Translate video result",a),a.translated&&a.remainingTime<1)return D.log("Video translation finished with this data: ",a),a;await this.updateTranslationErrorMsg(a.remainingTime>0?function(t){let e=Math.floor(t/60),o=Math.floor(t%60);return o/60>=.66&&(e+=1,o=0),e>=60?X.get("translationTakeMoreThanHour"):1===e||0===e&&o>0?X.get("translationTakeAboutMinute"):11!==e&&e%10==1?X.get("translationTakeApproximatelyMinute2").replace("{0}",e):![12,13,14].includes(e)&&[2,3,4].includes(e%10)?X.get("translationTakeApproximatelyMinute").replace("{0}",e):X.get("translationTakeApproximatelyMinutes").replace("{0}",e)}(a.remainingTime):a.message??X.get("translationTakeFewMinutes"))}catch(t){return console.error("[VOT] Failed to translate video",t),await this.updateTranslationErrorMsg(t.data?.message??t),null}return new Promise((a=>{const n=this.subtitlesList.some((t=>"yandex"===t.source))?2e4:3e4;this.autoRetry=setTimeout((async()=>{const n=await this.translateVideoImpl(t,e,o,i);(!n||n.translated&&n.remainingTime<1)&&a(n)}),n)}))}async translateStreamImpl(t,e,o){if(clearTimeout(this.autoRetry),D.log(t,`Translate stream (requestLang: ${e}, responseLang: ${o})`),await ft(this.site,this.video)!==t.videoId)return null;try{const i=await this.votClient.translateStream({videoData:t,requestLang:e,responseLang:o});if(D.log("Translate stream result",i),!i.translated&&10===i.interval)return await this.updateTranslationErrorMsg(X.get("translationTakeFewMinutes")),new Promise((a=>{this.autoRetry=setTimeout((async()=>{const i=await this.translateStreamImpl(t,e,o);i&&!i.translated&&10===i.interval||a(i)}),1e3*i.interval)}));if(i.message)throw D.log(`Stream translation aborted! Message: ${i.message}`),new pt("streamNoConnectionToServer");if(!i.result)throw D.log("Failed to find translation result! Data:",i),new pt("audioNotReceived");return D.log("Stream translated successfully. Running...",i),this.streamPing=setInterval((async()=>{D.log("Ping stream translation",i.pingId),this.votClient.pingStream({pingId:i.pingId})}),1e3*i.interval),i}catch(t){return console.error("[VOT] Failed to translate stream",t),await this.updateTranslationErrorMsg(t.data?.message??t),null}}async autoTranslate(){if(this.firstPlay&&1===this.data.autoTranslate&&this.videoData.videoId){this.firstPlay=!1;try{await this.translateExecutor(this.videoData.videoId)}catch(t){console.error("[VOT]",t),this.transformBtn("error","VOTLocalizedError"===t?.name?t.localizedMessage:t)}}}getPreferAudio(){return!this.audioContext||(!this.data.newAudioPlayer||(!!this.videoData.isStream||!(this.data.newAudioPlayer&&!this.data.onlyBypassMediaCSP)&&!this.site.needBypassCSP))}createPlayer(){const t=this.getPreferAudio();return D.log("preferAudio:",t),this.audioPlayer=new wo({video:this.video,debug:!1,fetchFn:rt,preferAudio:t}),this}async init(){if(this.initialized)return;const t={autoTranslate:J.get("autoTranslate",0),dontTranslateLanguage:J.get("dontTranslateLanguage",tt),dontTranslateYourLang:J.get("dontTranslateYourLang",1),autoSetVolumeYandexStyle:J.get("autoSetVolumeYandexStyle",1),autoVolume:J.get("autoVolume",H),buttonPos:J.get("buttonPos","default"),showVideoSlider:J.get("showVideoSlider",1),syncVolume:J.get("syncVolume",0),downloadWithName:J.get("downloadWithName",1),subtitlesMaxLength:J.get("subtitlesMaxLength",300),highlightWords:J.get("highlightWords",0),subtitlesFontSize:J.get("subtitlesFontSize",20),subtitlesOpacity:J.get("subtitlesOpacity",20),subtitlesDownloadFormat:J.get("subtitlesDownloadFormat","srt"),responseLanguage:J.get("responseLanguage",tt),defaultVolume:J.get("defaultVolume",100),audioProxy:J.get("audioProxy",0),onlyBypassMediaCSP:J.get("onlyBypassMediaCSP",Number(!!this.audioContext)),newAudioPlayer:J.get("newAudioPlayer",Number(!!this.audioContext)),showPiPButton:J.get("showPiPButton",0),translateAPIErrors:J.get("translateAPIErrors",1),translationService:J.get("translationService",z),detectService:J.get("detectService",W),hotkeyButton:J.get("hotkeyButton",null),m3u8ProxyHost:J.get("m3u8ProxyHost",F),translateProxyEnabled:J.get("translateProxyEnabled",0),proxyWorkerHost:J.get("proxyWorkerHost",q),audioBooster:J.get("audioBooster",0),localeHash:J.get("locale-hash",""),localeUpdatedAt:J.get("locale-updated-at",0)};this.data=Object.fromEntries(await Promise.all(Object.entries(t).map((async([t,e])=>[t,await e])))),console.log("[VOT] data from db: ",this.data),"m3u8-proxy.toil.cc"===this.data.m3u8ProxyHost&&(this.data.m3u8ProxyHost=F,await J.set("m3u8ProxyHost",F),console.log(`[VOT] Old m3u8 proxy host converted to new ${this.data.m3u8ProxyHost} media-proxy`)),"vot.toil.cc"===this.data.proxyWorkerHost&&(this.data.proxyWorkerHost=q,await J.set("proxyWorkerHost",q),console.log(`[VOT] Old proxy worker host converted to new ${this.data.proxyWorkerHost}`)),!this.data.translateProxyEnabled&&GM_info?.scriptHandler&&Y.includes(GM_info.scriptHandler)&&(this.data.translateProxyEnabled=1,await J.set("translateProxyEnabled",1),D.log("translateProxyEnabled",this.data.translateProxyEnabled)),D.log("Extension compatibility passed..."),this.votOpts={headers:this.data.translateProxyEnabled?{}:{"sec-ch-ua":null,"sec-ch-ua-mobile":null,"sec-ch-ua-platform":null},fetchFn:rt,hostVOT:U,host:this.data.translateProxyEnabled?this.data.proxyWorkerHost:"api.browser.yandex.ru"},this.votClient=new(this.data.translateProxyEnabled?xt:wt)(this.votOpts),this.subtitlesWidget=new Re(this.video,this.container,this.site),this.subtitlesWidget.setMaxLength(this.data.subtitlesMaxLength),this.subtitlesWidget.setHighlightWords(this.data.highlightWords),this.subtitlesWidget.setFontSize(this.data.subtitlesFontSize),this.subtitlesWidget.setOpacity(this.data.subtitlesOpacity),this.initUI(),this.initUIEvents(),this.videoData=await this.getVideoData(),this.createPlayer(),this.setSelectMenuValues(this.videoData.detectedLanguage,this.data.responseLanguage??"ru"),this.translateToLang=this.data.responseLanguage??"ru",this.initExtraEvents(),await Promise.all([this.updateSubtitles(),this.autoTranslate()]),this.initialized=!0}transformBtn(t,e){this.votButton.container.dataset.status=t;const o="error"===t&&e.includes(X.get("translationTake"));return this.setLoadingBtn(o),this.votButton.label.textContent=e,this.votButton.container.title="error"===t?e:"",this}setLoadingBtn(t=!1){return this.votButton.container.dataset.loading=t,this}initUI(){this.votButton=je.createVOTButton(X.get("translateVideo")),this.votButton.container.style.opacity=0,this.data?.buttonPos&&"default"!==this.data?.buttonPos&&this.container.clientWidth>550?(this.votButton.container.dataset.direction="column",this.votButton.container.dataset.position=this.data?.buttonPos):(this.votButton.container.dataset.direction="row",this.votButton.container.dataset.position="default"),this.container.appendChild(this.votButton.container),this.votButton.pipButton.hidden=!et()||!this.data?.showPiPButton,this.votButton.separator2.hidden=!et()||!this.data?.showPiPButton,this.votButton.container.addEventListener("click",(t=>{t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation()})),this.votMenu=je.createVOTMenu(X.get("VOTSettings")),this.votMenu.container.dataset.position=this.container.clientWidth&&this.container.clientWidth>550?this.data?.buttonPos:"default",this.container.appendChild(this.votMenu.container),this.votDownloadButton=je.createIconButton(Jt` - `),this.votDownloadButton.hidden=!0,this.votMenu.headerContainer.appendChild(this.votDownloadButton),this.votDownloadSubtitlesButton=We.createIconButton(Yt``),this.votDownloadButton.hidden=!0,this.votMenu.headerContainer.appendChild(this.votDownloadButton),this.votDownloadSubtitlesButton=je.createIconButton(Jt` - `),this.votDownloadSubtitlesButton.hidden=!0,this.votMenu.headerContainer.appendChild(this.votDownloadSubtitlesButton),this.votSettingsButton=We.createIconButton(Yt``),this.votDownloadSubtitlesButton.hidden=!0,this.votMenu.headerContainer.appendChild(this.votDownloadSubtitlesButton),this.votSettingsButton=je.createIconButton(Jt` - `),this.votMenu.headerContainer.appendChild(this.votSettingsButton),this.votTranslationLanguageSelect=We.createVOTLanguageSelect({fromTitle:Z.get("langs")[this.video.detectedLanguage],fromDialogTitle:Z.get("videoLanguage"),fromItems:xo(dt,this.videoData.detectedLanguage),fromOnSelectCB:async t=>{$.log("[fromOnSelectCB] select from language",t.target.dataset.votValue),this.videoData=await this.getVideoData(),this.setSelectMenuValues(t.target.dataset.votValue,this.videoData.responseLanguage)},toTitle:Z.get("langs")[this.video.responseLanguage],toDialogTitle:Z.get("translationLanguage"),toItems:xo(ut,this.videoData.responseLanguage),toOnSelectCB:async t=>{const e=t.target.dataset.votValue;$.log("[toOnSelectCB] select to language",e),this.data.responseLanguage=this.translateToLang=e,await Y.set("responseLanguage",this.data.responseLanguage),$.log("Response Language value changed. New value: ",this.data.responseLanguage),this.videoData=await this.getVideoData(),this.setSelectMenuValues(this.videoData.detectedLanguage,this.data.responseLanguage)}}),this.votMenu.bodyContainer.appendChild(this.votTranslationLanguageSelect.container),this.votSubtitlesSelect=We.createVOTSelect(Z.get("VOTSubtitlesDisabled"),Z.get("VOTSubtitles"),[{label:Z.get("VOTSubtitlesDisabled"),value:"disabled",selected:!0,disabled:!1}],{onSelectCb:async t=>{await this.changeSubtitlesLang(t.target.dataset.votValue)},labelElement:We.createVOTSelectLabel(Z.get("VOTSubtitles"))}),this.votMenu.bodyContainer.appendChild(this.votSubtitlesSelect.container),this.votVideoVolumeSlider=We.createSlider(Gt`${Z.get("VOTVolume")}: - ${100*this.getVideoVolume()}%`,100*this.getVideoVolume()),this.votVideoVolumeSlider.container.hidden=1!==this.data.showVideoSlider||"success"!==this.votButton.container.dataset.status,this.votMenu.bodyContainer.appendChild(this.votVideoVolumeSlider.container),this.votVideoTranslationVolumeSlider=We.createSlider(Gt`${Z.get("VOTVolumeTranslation")}: - ${this.data?.defaultVolume??100}%`,this.data?.defaultVolume??100,0,this.data.audioBooster?900:100),this.votVideoTranslationVolumeSlider.container.hidden="success"!==this.votButton.container.dataset.status,this.votMenu.bodyContainer.appendChild(this.votVideoTranslationVolumeSlider.container),this.votMenu.container.addEventListener("click",(t=>{t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation()})),this.votSettingsDialog=We.createDialog(Z.get("VOTSettings")),document.documentElement.appendChild(this.votSettingsDialog.container),this.votTranslationHeader=We.createHeader(Z.get("translationSettings")),this.votSettingsDialog.bodyContainer.appendChild(this.votTranslationHeader),this.votAutoTranslateCheckbox=We.createCheckbox(Z.get("VOTAutoTranslate"),this.data?.autoTranslate??!1),this.votSettingsDialog.bodyContainer.appendChild(this.votAutoTranslateCheckbox.container),this.votDontTranslateYourLangSelect=We.createVOTSelect(Z.get("langs")[this.data.dontTranslateLanguage],Z.get("VOTDontTranslateYourLang"),xo(dt,this.data.dontTranslateLanguage),{onSelectCb:async t=>{this.data.dontTranslateLanguage=t.target.dataset.votValue,await Y.set("dontTranslateLanguage",this.data.dontTranslateLanguage)},labelElement:We.createCheckbox(Z.get("VOTDontTranslateYourLang"),this.data?.dontTranslateYourLang??!0).container}),this.votSettingsDialog.bodyContainer.appendChild(this.votDontTranslateYourLangSelect.container),this.changehotkeyButton=We.createOutlinedButton(So(this.data.hotkeyButton)),this.votSettingsDialog.bodyContainer.appendChild(this.changehotkeyButton),this.votAutoSetVolumeCheckbox=We.createCheckbox(`${Z.get("VOTAutoSetVolume")}`,this.data?.autoSetVolumeYandexStyle??!0),this.votSettingsDialog.bodyContainer.appendChild(this.votAutoSetVolumeCheckbox.container),this.votAutoSetVolumeSlider=We.createSlider(Gt`${Math.round(100*(this.data?.autoVolume??U))}%`,Math.round(100*(this.data?.autoVolume??U)),0,100),this.votSettingsDialog.bodyContainer.appendChild(this.votAutoSetVolumeSlider.container),this.votShowVideoSliderCheckbox=We.createCheckbox(Z.get("VOTShowVideoSlider"),this.data?.showVideoSlider??!1),this.votSettingsDialog.bodyContainer.appendChild(this.votShowVideoSliderCheckbox.container),this.votAudioBoosterCheckbox=We.createCheckbox(Z.get("VOTAudioBooster"),this.data?.audioBooster??!1),this.audioContext||(this.votAudioBoosterCheckbox.input.disabled=!0,this.votAudioBoosterCheckbox.container.title=Z.get("VOTNeedWebAudioAPI")),this.votSettingsDialog.bodyContainer.appendChild(this.votAudioBoosterCheckbox.container),this.votSyncVolumeCheckbox=We.createCheckbox(Z.get("VOTSyncVolume"),this.data?.syncVolume??!1),this.votSettingsDialog.bodyContainer.appendChild(this.votSyncVolumeCheckbox.container),this.votDownloadWithNameCheckbox=We.createCheckbox(Z.get("VOTDownloadWithName"),this.data?.downloadWithName??!1),this.votSettingsDialog.bodyContainer.appendChild(this.votDownloadWithNameCheckbox.container),this.votTranslationServiceSelect=We.createVOTSelect(this.data.translationService.toUpperCase(),Z.get("VOTTranslationService"),xo(Te,this.data.translationService),{onSelectCb:async t=>{this.data.translationService=t.target.dataset.votValue,await Y.set("translationService",this.data.translationService)},labelElement:We.createCheckbox(Z.get("VOTTranslateAPIErrors"),this.data.translateAPIErrors??!0).container}),this.votTranslationServiceSelect.container.hidden="ru"===Z.lang,this.votSettingsDialog.bodyContainer.appendChild(this.votTranslationServiceSelect.container),this.votDetectServiceSelect=We.createVOTSelect(this.data.detectService.toUpperCase(),Z.get("VOTDetectService"),xo(Ce,this.data.detectService),{onSelectCb:async t=>{this.data.detectService=t.target.dataset.votValue,await Y.set("detectService",this.data.detectService)},labelElement:We.createVOTSelectLabel(Z.get("VOTDetectService"))}),this.votSettingsDialog.bodyContainer.appendChild(this.votDetectServiceSelect.container),this.votSubtitlesHeader=We.createHeader(Z.get("subtitlesSettings")),this.votSettingsDialog.bodyContainer.appendChild(this.votSubtitlesHeader),this.votSubtitlesDetails=We.createDetails(Z.get("VOTSubtitlesDesign")),this.votSettingsDialog.bodyContainer.appendChild(this.votSubtitlesDetails.container),this.votProxyHeader=We.createHeader(Z.get("proxySettings")),this.votSettingsDialog.bodyContainer.appendChild(this.votProxyHeader),this.votM3u8ProxyHostTextfield=We.createTextfield(Z.get("VOTM3u8ProxyHost"),this.data?.m3u8ProxyHost,D),this.votSettingsDialog.bodyContainer.appendChild(this.votM3u8ProxyHostTextfield.container),this.votProxyWorkerHostTextfield=We.createTextfield(Z.get("VOTProxyWorkerHost"),this.data?.proxyWorkerHost,F),this.votSettingsDialog.bodyContainer.appendChild(this.votProxyWorkerHostTextfield.container),this.votAudioProxyCheckbox=We.createCheckbox(Z.get("VOTAudioProxy"),this.data?.audioProxy??!1),this.votSettingsDialog.bodyContainer.appendChild(this.votAudioProxyCheckbox.container),this.votNewAudioPlayerCheckbox=We.createCheckbox(Z.get("VOTNewAudioPlayer"),this.data?.newAudioPlayer??!1),this.audioContext||(this.votNewAudioPlayerCheckbox.input.disabled=!0,this.votNewAudioPlayerCheckbox.container.title=Z.get("VOTNeedWebAudioAPI")),this.votSettingsDialog.bodyContainer.appendChild(this.votNewAudioPlayerCheckbox.container),this.votOnlyBypassMediaCSPCheckbox=We.createCheckbox(Z.get("VOTOnlyBypassMediaCSP")+(this.site.needBypassCSP?` (${Z.get("VOTMediaCSPEnabledOnSite")})`:""),this.data?.onlyBypassMediaCSP??!1),this.votOnlyBypassMediaCSPCheckbox.container.classList.add("vot-checkbox-sub"),this.audioContext||(this.votOnlyBypassMediaCSPCheckbox.container.title=Z.get("VOTNeedWebAudioAPI")),this.votOnlyBypassMediaCSPCheckbox.input.disabled=!this.data.newAudioPlayer&&this.audioContext,this.data.newAudioPlayer||(this.votOnlyBypassMediaCSPCheckbox.container.hidden=!0),this.votSettingsDialog.bodyContainer.appendChild(this.votOnlyBypassMediaCSPCheckbox.container),this.votAboutHeader=We.createHeader(Z.get("about")),this.votSettingsDialog.bodyContainer.appendChild(this.votAboutHeader),this.votLanguageSelect=We.createVOTSelect(Z.get("langs")[Y.syncGet("locale-lang-override","auto")],Z.get("VOTMenuLanguage"),xo(K,Y.syncGet("locale-lang-override","auto")),{onSelectCb:async t=>{await Y.set("locale-lang-override",t.target.dataset.votValue)},labelElement:We.createVOTSelectLabel(Z.get("VOTMenuLanguage"))}),this.votSettingsDialog.bodyContainer.appendChild(this.votLanguageSelect.container),this.votShowPiPButtonCheckbox=We.createCheckbox(Z.get("VOTShowPiPButton"),this.data?.showPiPButton??!1),this.votShowPiPButtonCheckbox.container.hidden=!tt(),this.votSettingsDialog.bodyContainer.appendChild(this.votShowPiPButtonCheckbox.container),this.votVersionInfo=We.createInformation(`${Z.get("VOTVersion")}:`,GM_info.script.version),this.votSettingsDialog.bodyContainer.appendChild(this.votVersionInfo.container),this.votAuthorsInfo=We.createInformation(`${Z.get("VOTAuthors")}:`,GM_info.script.author),this.votSettingsDialog.bodyContainer.appendChild(this.votAuthorsInfo.container),this.votLoaderInfo=We.createInformation(`${Z.get("VOTLoader")}:`,`${GM_info.scriptHandler} v${GM_info.version}`),this.votSettingsDialog.bodyContainer.appendChild(this.votLoaderInfo.container),this.votBrowserInfo=We.createInformation(`${Z.get("VOTBrowser")}:`,`${wo.browser.name} ${wo.browser.version} (${wo.os.name} ${wo.os.version})`),this.votSettingsDialog.bodyContainer.appendChild(this.votBrowserInfo.container),this.votLocaleInfo=We.createInformation(`${Z.get("VOTLocaleHash")}:`,Gt`${this.data.localeHash}
(${Z.get("VOTUpdatedAt")} - ${new Date(1e3*this.data.localeUpdatedAt).toLocaleString()})`),this.votSettingsDialog.bodyContainer.appendChild(this.votLocaleInfo.container),this.votUpdateLocaleFilesButton=We.createOutlinedButton(Z.get("VOTUpdateLocaleFiles")),this.votSettingsDialog.bodyContainer.appendChild(this.votUpdateLocaleFilesButton),this.votResetSettingsButton=We.createButton(Z.get("resetSettings")),this.votSettingsDialog.bodyContainer.appendChild(this.votResetSettingsButton)}async handleTranslationBtnClick(){if($.log("[click translationBtn]",this.audioPlayer,this.audioPlayer.player),this.audioPlayer.player.src)return $.log("[click translationBtn] audio.src is not empty",this.audioPlayer.player.src),void this.stopTranslate();if(this.hls.url)return $.log("[click translationBtn] hls is not empty",this.hls.url),void this.stopTranslate();try{if($.log("[click translationBtn] trying execute translation"),!this.videoData.videoId)throw new ht("VOTNoVideoIDFound");"vk"===this.site.host&&"clips"===this.site.additionalData&&(this.videoData=await this.getVideoData()),await this.translateExecutor(this.videoData.videoId)}catch(t){console.error("[VOT]",t),"VOTLocalizedError"===t?.name?this.transformBtn("error",t.localizedMessage):this.transformBtn("error",t?.message)}}initUIEvents(){this.votButton.translateButton.addEventListener("click",(async()=>{await this.handleTranslationBtnClick()})),this.votButton.pipButton.addEventListener("click",(()=>{(async()=>{this.video!==document.pictureInPictureElement?await this.video.requestPictureInPicture():await document.exitPictureInPicture()})()})),this.votButton.menuButton.addEventListener("click",(()=>{this.votMenu.container.hidden=!this.votMenu.container.hidden})),this.votButton.container.addEventListener("mousedown",(()=>{this.dragging=!0})),this.container.addEventListener("mouseup",(()=>{this.dragging=!1})),this.container.addEventListener("mousemove",(async t=>{if(this.dragging){t.preventDefault();const e=t.clientX/this.container.clientWidth*100,o=this.container.clientWidth>550,i=e<=44?"left":e>=66?"right":"default";this.data.buttonPos=o?i:"default",this.votButton.container.dataset.direction="default"===this.data.buttonPos?"row":"column",this.votButton.container.dataset.position=this.data.buttonPos,this.votMenu.container.dataset.position=this.data.buttonPos,o&&await Y.set("buttonPos",this.data.buttonPos)}})),this.votDownloadButton.addEventListener("click",(async()=>{if(!this.downloadTranslationUrl)return;if(!this.data.downloadWithName)return window.open(this.downloadTranslationUrl,"_blank").focus();const t=document.querySelector("#vot-loader-download"),e=getComputedStyle(this.votMenu.container).getPropertyValue("--vot-primary-rgb"),o=We.animateLoader(t,e),i=await nt(this.downloadTranslationUrl),a=i.body.getReader(),n=+i.headers.get("Content-Length");let r=0;const s=[];for(;;){const{done:t,value:e}=await a.read();if(t)break;s.push(e),r+=e.length,o(Math.round(r/n*100))}We.afterAnimateLoader(t,e);const l=new Blob(s),d=at(this.videoData.title??this.videoData.videoId),u=await l.arrayBuffer(),c=new we(u);c.setFrame("TIT2",d),c.addTag(),it(c.getBlob(),`${d}.mp3`)})),this.votDownloadSubtitlesButton.addEventListener("click",(async()=>{const t=this.data.subtitlesDownloadFormat,e=Ct(this.yandexSubtitles,t);it(new Blob(["json"===t?JSON.stringify(e):e],{type:"text/plain"}),`${this.data.downloadWithName?at(this.videoData.title??this.videoData.videoId):`subtitles_${this.videoData.videoId}`}.${t}`)})),this.votSettingsButton.addEventListener("click",(()=>{this.votSettingsDialog.container.hidden=!this.votSettingsDialog.container.hidden,(document.fullscreenElement||document.webkitFullscreenElement)&&(document.webkitExitFullscreen&&document.webkitExitFullscreen(),document.exitFullscreen&&document.exitFullscreen())})),this.votVideoVolumeSlider.input.addEventListener("input",(t=>{const e=Number(t.target.value);this.votVideoVolumeSlider.label.querySelector("strong").textContent=`${e}%`,this.setVideoVolume(e/100),this.data.syncVolume&&this.syncVolumeWrapper("video",e)})),this.votVideoTranslationVolumeSlider.input.addEventListener("input",(t=>{(async()=>{this.data.defaultVolume=Number(t.target.value),await Y.set("defaultVolume",this.data.defaultVolume),this.votVideoTranslationVolumeSlider.label.querySelector("strong").textContent=`${this.data.defaultVolume}%`,this.audioPlayer.player.volume=this.data.defaultVolume/100,this.data.syncVolume&&(this.syncVolumeWrapper("translation",this.data.defaultVolume),["youtube","googledrive"].includes(this.site.host)&&"mobile"!==this.site.additionalData&&this.setVideoVolume(this.tempOriginalVolume/100))})()}));{this.votAutoTranslateCheckbox.input.addEventListener("change",(t=>{(async()=>{this.data.autoTranslate=Number(t.target.checked),await Promise.all([Y.set("autoTranslate",this.data.autoTranslate),this.autoTranslate()]),$.log("autoTranslate value changed. New value: ",this.data.autoTranslate)})()})),this.votDontTranslateYourLangSelect.labelElement.addEventListener("change",(t=>{(async()=>{this.data.dontTranslateYourLang=Number(t.target.checked),await Y.set("dontTranslateYourLang",this.data.dontTranslateYourLang),$.log("dontTranslateYourLang value changed. New value: ",this.data.dontTranslateYourLang)})()}));const t=async t=>{await Y.set("hotkeyButton",t),this.data.hotkeyButton=t,this.changehotkeyButton.textContent=So(t)},e=o=>{const i="Escape"===o.code?null:o.code;t(i),document.removeEventListener("keydown",e)};this.changehotkeyButton.addEventListener("click",(()=>{this.changehotkeyButton.textContent=Z.get("VOTPressNewHotkey"),document.addEventListener("keydown",e)})),this.votAutoSetVolumeCheckbox.input.addEventListener("change",(t=>{(async()=>{this.data.autoSetVolumeYandexStyle=Number(t.target.checked),await Y.set("autoSetVolumeYandexStyle",this.data.autoSetVolumeYandexStyle),$.log("autoSetVolumeYandexStyle value changed. New value: ",this.data.autoSetVolumeYandexStyle)})()})),this.votAutoSetVolumeSlider.input.addEventListener("input",(t=>{(async()=>{const e=Number(t.target.value);this.data.autoVolume=(e/100).toFixed(2),await Y.set("autoVolume",this.data.autoVolume),this.votAutoSetVolumeSlider.label.querySelector("strong").textContent=`${e}%`})()})),this.votShowVideoSliderCheckbox.input.addEventListener("change",(t=>{(async()=>{this.data.showVideoSlider=Number(t.target.checked),await Y.set("showVideoSlider",this.data.showVideoSlider),$.log("showVideoSlider value changed. New value: ",this.data.showVideoSlider),this.votVideoVolumeSlider.container.hidden=1!==this.data.showVideoSlider||"success"!==this.votButton.container.dataset.status})()})),this.votAudioBoosterCheckbox.input.addEventListener("change",(t=>{(async()=>{this.data.audioBooster=Number(t.target.checked),await Y.set("audioBooster",this.data.audioBooster),$.log("audioBooster value changed. New value: ",this.data.audioBooster);const e=this.votVideoTranslationVolumeSlider.input.value;this.votVideoTranslationVolumeSlider.input.max=this.data.audioBooster?900:100,this.data.audioBooster||(this.votVideoTranslationVolumeSlider.input.value=e>100?100:e,this.votVideoTranslationVolumeSlider.input.dispatchEvent(new Event("input")))})()})),this.votSyncVolumeCheckbox.input.addEventListener("change",(t=>{(async()=>{this.data.syncVolume=Number(t.target.checked),await Y.set("syncVolume",this.data.syncVolume),$.log("syncVolume value changed. New value: ",this.data.syncVolume)})()})),this.votDownloadWithNameCheckbox.input.addEventListener("change",(t=>{(async()=>{this.data.downloadWithName=Number(t.target.checked),await Y.set("downloadWithName",this.data.downloadWithName),$.log("downloadWithName value changed. New value: ",this.data.downloadWithName)})()})),this.votTranslationServiceSelect.labelElement.addEventListener("change",(t=>{(async()=>{this.data.translateAPIErrors=Number(t.target.checked),await Y.set("translateAPIErrors",this.data.translateAPIErrors),$.log("translateAPIErrors value changed. New value: ",this.data.translateAPIErrors)})()})),this.votSubtitlesDetails.container.addEventListener("click",(()=>{this.votSubtitlesDialog=We.createDialog(Z.get("VOTSubtitlesDesign")),this.votSubtitlesDialog.container.classList.add("vot-dialog-temp"),this.votSubtitlesDialog.container.hidden=!1,this.votSubtitlesDialog.backdrop.onclick=this.votSubtitlesDialog.closeButton.onclick=()=>{this.votSubtitlesDialog.container.remove()},this.votSubtitlesHighlightWordsCheckbox=We.createCheckbox(Z.get("VOTHighlightWords"),this.data?.highlightWords??!1),this.votSubtitlesDialog.bodyContainer.appendChild(this.votSubtitlesHighlightWordsCheckbox.container),this.votSubtitlesDownloadFormatSelect=We.createVOTSelect(this.data.subtitlesDownloadFormat.toUpperCase(),Z.get("VOTSubtitlesDownloadFormat"),xo(ct,this.data.subtitlesDownloadFormat),{onSelectCb:async t=>{this.data.subtitlesDownloadFormat=t.target.dataset.votValue,await Y.set("subtitlesDownloadFormat",this.data.subtitlesDownloadFormat)},labelElement:We.createVOTSelectLabel(Z.get("VOTSubtitlesDownloadFormat"))}),this.votSubtitlesDialog.bodyContainer.appendChild(this.votSubtitlesDownloadFormatSelect.container),this.votSubtitlesMaxLengthSlider=We.createSlider(Gt`${Z.get("VOTSubtitlesMaxLength")}: - ${this.data?.subtitlesMaxLength??300}`,this.data?.subtitlesMaxLength??300,50,300),this.votSubtitlesDialog.bodyContainer.appendChild(this.votSubtitlesMaxLengthSlider.container),this.votSubtitlesFontSizeSlider=We.createSlider(Gt`${Z.get("VOTSubtitlesFontSize")}: - ${this.data?.subtitlesFontSize??20}`,this.data?.subtitlesFontSize??20,8,50),this.votSubtitlesDialog.bodyContainer.appendChild(this.votSubtitlesFontSizeSlider.container),this.votSubtitlesOpacitySlider=We.createSlider(Gt`${Z.get("VOTSubtitlesOpacity")}: - ${this.data?.subtitlesOpacity??20}`,this.data?.subtitlesOpacity??20,0,100),this.votSubtitlesDialog.bodyContainer.appendChild(this.votSubtitlesOpacitySlider.container),this.votSubtitlesHighlightWordsCheckbox.input.addEventListener("change",(t=>{(async()=>{this.data.highlightWords=Number(t.target.checked),await Y.set("highlightWords",this.data.highlightWords),$.log("highlightWords value changed. New value: ",this.data.highlightWords),this.subtitlesWidget.setHighlightWords(this.data.highlightWords)})()})),this.votSubtitlesMaxLengthSlider.input.addEventListener("input",(t=>{(async()=>{this.data.subtitlesMaxLength=Number(t.target.value),await Y.set("subtitlesMaxLength",this.data.subtitlesMaxLength),this.votSubtitlesMaxLengthSlider.label.querySelector("strong").textContent=`${this.data.subtitlesMaxLength}`,this.subtitlesWidget.setMaxLength(this.data.subtitlesMaxLength)})()})),this.votSubtitlesFontSizeSlider.input.addEventListener("input",(t=>{(async()=>{this.data.subtitlesFontSize=Number(t.target.value),await Y.set("subtitlesFontSize",this.data.subtitlesFontSize),this.votSubtitlesFontSizeSlider.label.querySelector("strong").textContent=`${this.data.subtitlesFontSize}`,this.subtitlesWidget.setFontSize(this.data.subtitlesFontSize)})()})),this.votSubtitlesOpacitySlider.input.addEventListener("input",(t=>{(async()=>{this.data.subtitlesOpacity=Number(t.target.value),await Y.set("subtitlesOpacity",this.data.subtitlesOpacity),this.votSubtitlesOpacitySlider.label.querySelector("strong").textContent=`${this.data.subtitlesOpacity}`,this.subtitlesWidget.setOpacity(this.data.subtitlesOpacity)})()})),document.documentElement.appendChild(this.votSubtitlesDialog.container)})),this.votShowPiPButtonCheckbox.input.addEventListener("change",(t=>{(async()=>{this.data.showPiPButton=Number(t.target.checked),await Y.set("showPiPButton",this.data.showPiPButton),$.log("showPiPButton value changed. New value: ",this.data.showPiPButton),this.votButton.pipButton.hidden=!tt()||!this.data.showPiPButton,this.votButton.separator2.hidden=!tt()||!this.data.showPiPButton})()})),this.votM3u8ProxyHostTextfield.input.addEventListener("change",(t=>{(async()=>{this.data.m3u8ProxyHost=t.target.value||D,await Y.set("m3u8ProxyHost",this.data.m3u8ProxyHost),$.log("m3u8ProxyHost value changed. New value: ",this.data.m3u8ProxyHost)})()})),this.votProxyWorkerHostTextfield.input.addEventListener("change",(t=>{(async()=>{this.data.proxyWorkerHost=t.target.value||F,await Y.set("proxyWorkerHost",this.data.proxyWorkerHost),$.log("proxyWorkerHost value changed. New value: ",this.data.proxyWorkerHost),this.data.translateProxyEnabled&&(this.votClient.host=this.data.proxyWorkerHost)})()})),this.votAudioProxyCheckbox.input.addEventListener("change",(t=>{(async()=>{this.data.audioProxy=Number(t.target.checked),await Y.set("audioProxy",this.data.audioProxy),$.log("audioProxy value changed. New value: ",this.data.audioProxy)})()})),this.votOnlyBypassMediaCSPCheckbox.input.addEventListener("change",(t=>{(async()=>{this.data.onlyBypassMediaCSP=Number(t.target.checked),await Y.set("onlyBypassMediaCSP",this.data.onlyBypassMediaCSP),$.log("onlyBypassMediaCSP value changed. New value: ",this.data.onlyBypassMediaCSP),this.stopTranslate(),this.createPlayer()})()})),this.votNewAudioPlayerCheckbox.input.addEventListener("change",(t=>{(async()=>{const e=t.target.checked;this.data.newAudioPlayer=Number(e),await Y.set("newAudioPlayer",this.data.newAudioPlayer),$.log("newAudioPlayer value changed. New value: ",this.data.newAudioPlayer),this.stopTranslate(),this.createPlayer(),this.votOnlyBypassMediaCSPCheckbox.input.disabled=this.votOnlyBypassMediaCSPCheckbox.container.hidden=!e})()})),this.votUpdateLocaleFilesButton.addEventListener("click",(()=>{(async()=>{await Y.set("locale-hash",""),await Z.update(!0),window.location.reload()})()})),this.votResetSettingsButton.addEventListener("click",(()=>{(async()=>{Z.reset();const t=await Y.list();for(let e=0;e{this.extraEvents.push({element:t,event:e,handler:o}),t.addEventListener(e,o)},e=(e,o,i)=>{for(const a of o)t(e,a,i)};if(this.resizeObserver=new ResizeObserver((t=>{for(let e=0;e550;this.votButton.container.dataset.position=this.votMenu.container.dataset.position=e?this.data?.buttonPos:"default",this.votButton.container.dataset.direction=this.data?.buttonPos&&"default"!==this.data?.buttonPos&&e?"column":"row"})),this.resizeObserver.observe(this.video),this.votMenu.container.setAttribute("style",`--vot-container-height: ${this.video.getBoundingClientRect().height}px`),["youtube","googledrive"].includes(this.site.host)&&"mobile"!==this.site.additionalData){this.syncVolumeObserver=new MutationObserver((t=>{if(this.audioPlayer.player.src&&this.data.syncVolume)for(let e=0;e{const e=t.target,o=this.votButton.container,i=this.votMenu.container,a=this.container,n=this.votSettingsDialog.container,r=document.querySelector(".vot-dialog-temp"),s=o.contains(e),l=i.contains(e),d=a.contains(e),u=n.contains(e),c=r?.contains(e)??!1;$.log(`[document click] ${s} ${l} ${d} ${u} ${c}`),s||l||u||c||(d||this.logout(0),this.votMenu.container.hidden=!0)})),document.addEventListener("keydown",(async t=>{const e=t.code,o=document.activeElement;["input","textarea"].includes(o.tagName.toLowerCase())||o.isContentEditable||e!==this.data.hotkeyButton||await this.handleTranslationBtnClick()}));let o=this.site.eventSelector?document.querySelector(this.site.eventSelector):this.container;o&&e(o,["mousemove","mouseout"],this.resetTimer),t(this.votButton.container,"mousemove",this.changeOpacityOnEvent),t(this.votMenu.container,"mousemove",this.changeOpacityOnEvent),e(document,["touchstart","touchmove","touchend"],this.changeOpacityOnEvent),t(this.votButton.container,"mousedown",(t=>{t.stopImmediatePropagation()})),t(this.votMenu.container,"mousedown",(t=>{t.stopImmediatePropagation()})),"youtube"===this.site.host&&(this.container.draggable=!1),"googledrive"===this.site.host&&(this.container.style.height="100%"),t(this.video,"canplay",(async()=>{"rutube"===this.site.host&&this.video.src||await this.setCanPlay()})),t(this.video,"emptied",(async()=>{this.video.src&&await vt(this.site,this.video)===this.videoData.videoId||($.log("lipsync mode is emptied"),this.videoData="",this.stopTranslation())})),["rutube","ok"].includes(this.site.host)||t(this.video,"volumechange",(()=>{this.syncVideoVolumeSlider()})),"youtube"!==this.site.host||this.site.additionalData||t(document,"yt-page-data-updated",(async()=>{$.log("yt-page-data-updated"),window.location.pathname.includes("/shorts/")&&await this.setCanPlay()}))}async setCanPlay(){await vt(this.site,this.video)!==this.videoData.videoId&&(await this.handleSrcChanged(),await this.autoTranslate(),$.log("lipsync mode is canplay"))}logout(t){this.votMenu.container.hidden&&(this.votButton.container.style.opacity=t)}resetTimer=()=>{clearTimeout(this.timer),this.logout(1),this.timer=setTimeout((()=>{this.logout(0)}),1e3)};changeOpacityOnEvent=t=>{clearTimeout(this.timer),this.logout(1),t.stopPropagation()};async changeSubtitlesLang(t){if($.log("[onchange] subtitles",t),this.votSubtitlesSelect.setSelected(t),"disabled"===t)this.votSubtitlesSelect.setTitle(Z.get("VOTSubtitlesDisabled")),this.subtitlesWidget.setContent(null),this.votDownloadSubtitlesButton.hidden=!0,this.yandexSubtitles=null;else{const e=this.subtitlesList.at(parseInt(t));if(1===this.data.audioProxy&&e.url.startsWith("https://brosubs.s3-private.mds.yandex.net/vtrans/")){const t=e.url.replace("https://brosubs.s3-private.mds.yandex.net/vtrans/","");e.url=`https://${this.data.proxyWorkerHost}/video-subtitles/subtitles-proxy/${t}`,console.log(`[VOT] Subs proxied via ${e.url}`)}this.yandexSubtitles=await Ee(e),this.subtitlesWidget.setContent(this.yandexSubtitles),this.votDownloadSubtitlesButton.hidden=!1}}async updateSubtitlesLangSelect(){const t=[{label:Z.get("VOTSubtitlesDisabled"),value:"disabled",selected:!0,disabled:!1},...this.subtitlesList.map(((t,e)=>({label:(Z.get("langs")[t.language]??t.language.toUpperCase())+(t.translatedFromLanguage?` ${Z.get("VOTTranslatedFrom")} ${Z.get("langs")[t.translatedFromLanguage]??t.translatedFromLanguage.toUpperCase()}`:"")+("yandex"!==t.source?`, ${window.location.hostname}`:"")+(t.isAutoGenerated?` (${Z.get("VOTAutogenerated")})`:""),value:e,selected:!1,disabled:!1})))];this.votSubtitlesSelect.updateItems(t),await this.changeSubtitlesLang(t[0].value)}async updateSubtitles(){if(await this.changeSubtitlesLang("disabled"),!this.videoData.videoId)return console.error(`[VOT] ${Z.getDefault("VOTNoVideoIDFound")}`),this.subtitlesList=[],this.subtitlesListVideoId=null,this.votButton.container.hidden=!0,void await this.updateSubtitlesLangSelect();if(this.votButton.container.hidden=!1,this.subtitlesListVideoId!==this.videoData.videoId){try{this.subtitlesList=await Be(this.votClient,this.videoData)}catch(t){$.log("Error with yandex server, try auto-fix...",t),this.votOpts={fetchFn:nt,hostVOT:q,host:this.data.proxyWorkerHost},this.votClient=new wt(this.votOpts),this.subtitlesList=await Be(this.votClient,this.videoData),await Y.set("translateProxyEnabled",1)}this.subtitlesList?this.subtitlesListVideoId=this.videoData.videoId:await this.changeSubtitlesLang("disabled"),await this.updateSubtitlesLangSelect()}}getVideoVolume(){let t=this.video?.volume;return["youtube","googledrive"].includes(this.site.host)&&(t=Ve.getVideoVolume()??t),t}setVideoVolume(t){if(["youtube","googledrive"].includes(this.site.host)){if(Ve.setVideoVolume(t))return this}return this.video.volume=t,this}isMuted(){return["youtube","googledrive"].includes(this.site.host)?Ve.isMuted():this.video?.muted}syncVideoVolumeSlider(){const t=this.isMuted()?0:100*this.getVideoVolume(),e=Math.round(t);this.votVideoVolumeSlider.input.value=e,this.votVideoVolumeSlider.label.querySelector("strong").textContent=`${e}%`,We.updateSlider(this.votVideoVolumeSlider.input),1===this.data.syncVolume&&(this.tempOriginalVolume=Number(e))}setSelectMenuValues(t,e){this.votTranslationLanguageSelect.fromSelect.setTitle(Z.get("langs")[t]),this.votTranslationLanguageSelect.toSelect.setTitle(Z.get("langs")[e]),this.votTranslationLanguageSelect.fromSelect.setSelected(t),this.votTranslationLanguageSelect.toSelect.setSelected(e),console.log(`[VOT] Set translation from ${t} to ${e}`),this.videoData.detectedLanguage=t,this.videoData.responseLanguage=e}syncVolumeWrapper(t,e){const o="translation"===t?this.votVideoVolumeSlider:this.votVideoTranslationVolumeSlider,i=Number(o.input.value),a=function(t,e,o,i){let a=e;return e>i?(a=o+(e-i),a=a>100?100:Math.max(a,0),t.volume=a/100):e100?100:Math.max(a,0),t.volume=a/100),a}("translation"===t?this.video:this.audioPlayer.player,e,i,"translation"===t?this.tempVolume:this.tempOriginalVolume);o.input.value=a,o.label.querySelector("strong").textContent=`${a}%`,We.updateSlider(o.input),this.tempOriginalVolume="translation"===t?a:e,this.tempVolume="translation"===t?e:a}async getVideoData(){const{duration:t,url:e,videoId:o,host:i,title:a,translationHelp:n,detectedLanguage:r,subtitles:s}=await ft(this.site,this.video),l={translationHelp:n??null,isStream:!1,duration:this.video?.duration||t||P.defaultDuration,videoId:o,url:e,host:i,detectedLanguage:r??this.translateFromLang,responseLanguage:this.translateToLang,subtitles:s,title:a};if("youtube"===this.site.host){const t=await Ve.getVideoData();l.isStream=t.isLive,t.title&&(l.detectedLanguage=t.detectedLanguage,l.title=t.localizedTitle)}else if(["rutube","ok.ru","mail_ru"].includes(this.site.host))l.detectedLanguage="ru";else if("youku"===this.site.host)l.detectedLanguage="zh";else if("vk"===this.site.host){const t=document.getElementsByTagName("track")?.[0]?.srclang;l.detectedLanguage=t||"auto"}else"weverse"===this.site.host?l.detectedLanguage="ko":["bilibili","bitchute","rumble","peertube","dailymotion","trovo","yandexdisk","coursehunterLike","archive","nineanimetv","directlink"].includes(this.site.host)&&(l.detectedLanguage="auto");return l}videoValidator(){if(["youtube","ok.ru","vk"].includes(this.site.host)&&($.log("VideoValidator videoData: ",this.videoData),1===this.data.dontTranslateYourLang&&this.videoData.detectedLanguage===this.data.dontTranslateLanguage))throw new ht("VOTDisableFromYourLang");if(!this.videoData.isStream&&this.videoData.duration>14400)throw new ht("VOTVideoIsTooLong");return!0}stopTranslate(){this.audioPlayer.player.removeVideoEvents(),this.audioPlayer.player.clear(),this.audioPlayer.player.src=void 0,$.log("audioPlayer after stopTranslate",this.audioPlayer),this.votVideoVolumeSlider.container.hidden=!0,this.votVideoTranslationVolumeSlider.container.hidden=!0,this.votDownloadButton.hidden=!0,this.downloadTranslationUrl=null,this.transformBtn("none",Z.get("translateVideo")),$.log(`Volume on start: ${this.volumeOnStart}`),this.volumeOnStart&&this.setVideoVolume(this.volumeOnStart),clearInterval(this.streamPing),clearTimeout(this.autoRetry),this.hls?.destroy(),this.hls=et(),this.firstSyncVolume=!0}async translateExecutor(t){$.log("Run translateFunc",t),await this.translateFunc(t,this.videoData.isStream,this.videoData.detectedLanguage,this.videoData.responseLanguage,this.videoData.translationHelp)}async updateTranslationErrorMsg(t){const e=Z.get("translationTake"),o=Z.lang;if("VOTLocalizedError"===t?.name)this.transformBtn("error",t.localizedMessage);else if(t instanceof Error)this.transformBtn("error",t?.message);else if(1!==this.data.translateAPIErrors||t.includes(e)||"ru"===o)this.transformBtn("error",t);else{this.setLoadingBtn(!0);const e=await async function(t,e="",o="ru"){switch(await Y.get("translationService",H)){case"yandex":{const i=e&&o?`${e}-${o}`:o;return await xe.translate(t,i)}case"deepl":return await ke.translate(t,e,o);default:return t}}(t,"ru",o);this.transformBtn("error",e)}["Подготавливаем перевод","Видео передано в обработку","Ожидаем перевод видео","Загружаем переведенное аудио"].includes(t)&&this.setLoadingBtn(!0)}afterUpdateTranslation(t){this.votVideoVolumeSlider.container.hidden=1!==this.data.showVideoSlider||"success"!==this.votButton.container.dataset.status,this.votVideoTranslationVolumeSlider.container.hidden="success"!==this.votButton.container.dataset.status,1===this.data.autoSetVolumeYandexStyle&&(this.votVideoVolumeSlider.input.value=100*this.data.autoVolume,this.votVideoVolumeSlider.label.querySelector("strong").textContent=100*this.data.autoVolume+"%",We.updateSlider(this.votVideoVolumeSlider.input)),this.votDownloadButton.hidden=!1,this.downloadTranslationUrl=t}async validateAudioUrl(t){try{const e=await nt(t,{method:"HEAD",timeout:5e3});if($.log("Test audio response",e),404!==e.status)return $.log("Valid audioUrl",t),t;$.log("Yandex returned not valid audio, trying to fix...");let o=await this.translateVideoImpl(this.videoData,this.videoData.detectedLanguage="auto",this.videoData.responseLanguage,this.videoData.translationHelp);this.setSelectMenuValues(this.videoData.detectedLanguage,this.videoData.responseLanguage),t=o.url,$.log("Fixed audio audioUrl",t)}catch(t){"Timeout"===t.message?($.log("Request timed out. Handling timeout error..."),this.data.audioProxy=1,await Y.set("audioProxy",1)):$.log("Test audio error:",t)}return t}async updateTranslation(t){if(this.cachedTranslation?.url!==this.audioPlayer.player.currentSrc&&(t=await this.validateAudioUrl(t)),1===this.data.audioProxy&&t.startsWith("https://vtrans.s3-private.mds.yandex.net/tts/prod/")){const e=t.replace("https://vtrans.s3-private.mds.yandex.net/tts/prod/","");t=`https://${this.data.proxyWorkerHost}/video-translation/audio-proxy/${e}`,console.log(`[VOT] Audio proxied via ${t}`)}this.audioPlayer.player.src!==t&&(this.audioPlayer.player.src=t);try{this.audioPlayer.init()}catch(t){t.message.includes("Failed to fetch audio file")?(this.videoHandler.data.audioProxy=1,await Y.set("audioProxy",1)):this.videoHandler.transformBtn("error",t.message)}this.setupAudioSettings(),"twitter"===this.site.host&&document.querySelector('button[data-testid="app-bar-back"][role="button"]').addEventListener("click",this.stopTranslation),this.transformBtn("success",Z.get("disableTranslate")),this.afterUpdateTranslation(t)}async translateFunc(t,e,o,i,a){if(console.log("[VOT] Video Data: ",this.videoData),$.log("Run videoValidator"),this.videoValidator(),this.setLoadingBtn(!0),this.volumeOnStart=this.getVideoVolume(),e){let t=await this.translateStreamImpl(this.videoData,o,i);if(!t)return void $.log("Skip translation");this.transformBtn("success",Z.get("disableTranslate"));const e=this.setHLSSource(t.result.url);return"youtube"===this.site.host&&Ve.videoSeek(this.video,10),this.setupAudioSettings(),this.video.src||this.video.currentSrc||this.video.srcObject?this.afterUpdateTranslation(e):this.stopTranslation()}if(this.cachedTranslation=this.videoTranslations.find((e=>e.videoId===t&&e.expires>rt()&&e.from===o&&e.to===i)),this.cachedTranslation)return await this.updateTranslation(this.cachedTranslation.url),void $.log("[translateFunc] Cached translation was received");let n=await this.translateVideoImpl(this.videoData,o,i,a);$.log("[translateRes]",n),n?(await this.updateTranslation(n.url),this.subtitlesList.some((t=>"yandex"===t.source&&t.translatedFromLanguage===this.videoData.detectedLanguage&&t.language===this.videoData.responseLanguage))||(this.subtitlesList=await Be(this.votClient,this.videoData),await this.updateSubtitlesLangSelect()),this.videoTranslations.push({videoId:t,from:o,to:i,url:this.downloadTranslationUrl,expires:rt()+this.videoTranslationTTL})):$.log("Skip translation")}setupHLS(t){this.hls.on(Hls.Events.MEDIA_ATTACHED,(function(){$.log("audio and hls.js are now bound together !")})),this.hls.on(Hls.Events.MANIFEST_PARSED,(function(t){$.log("manifest loaded, found "+t?.levels?.length+" quality level")})),this.hls.loadSource(t),this.hls.attachMedia(this.audioPlayer.player.audio),this.hls.on(Hls.Events.ERROR,(function(t){if(t.fatal)switch(t.type){case Hls.ErrorTypes.MEDIA_ERROR:console.log("fatal media error encountered, try to recover"),this.hls.recoverMediaError();break;case Hls.ErrorTypes.NETWORK_ERROR:console.error("fatal network error encountered",t);break;default:this.hls.destroy()}})),$.log(this.hls)}setHLSSource(t){const e=`https://${this.data.m3u8ProxyHost}/?all=yes&origin=${encodeURIComponent("https://strm.yandex.ru")}&referer=${encodeURIComponent("https://strm.yandex.ru")}&url=${encodeURIComponent(t)}`;if(this.hls)this.setupHLS(e);else{if(!this.audioPlayer.player.audio.canPlayType("application/vnd.apple.mpegurl"))throw new ht("audioFormatNotSupported");this.audioPlayer.player.src=e}return e}setupAudioSettings(){"number"==typeof this.data.defaultVolume&&(this.audioPlayer.player.volume=this.data.defaultVolume/100),"number"==typeof this.data.autoSetVolumeYandexStyle&&this.data.autoSetVolumeYandexStyle&&this.setVideoVolume(this.data.autoVolume)}stopTranslation=()=>{this.stopTranslate(),this.syncVideoVolumeSlider()};async handleSrcChanged(){$.log("[VideoHandler] src changed",this),this.firstPlay=!0,this.stopTranslation();const t=!this.video.src&&!this.video.currentSrc&&!this.video.srcObject;this.votButton.container.hidden=t,t&&(this.votMenu.container.hidden=t),this.site.selector||(this.container=this.video.parentElement),this.container.contains(this.votButton.container)||this.container.append(this.votButton.container,this.votMenu.container),this.videoData=await this.getVideoData(),await this.updateSubtitles(),this.translateToLang=this.data.responseLanguage??"ru",this.setSelectMenuValues(this.videoData.detectedLanguage,this.videoData.responseLanguage)}async release(){$.log("[VideoHandler] release"),this.initialized=!1,this.releaseExtraEvents(),this.subtitlesWidget.release(),this.votButton.container.remove(),this.votMenu.container.remove()}}const To=new class{constructor(){this.videoCache=new Set,this.onVideoAdded=new je,this.onVideoRemoved=new je,this.observer=new MutationObserver(this.handleMutations),this.intersectionObserver=new IntersectionObserver(this.handleIntersections,{threshold:.1})}handleMutations=t=>{window.requestIdleCallback((()=>{for(let e=0;e{for(let e=0;e{if(!t)return;const i=t.querySelectorAll("video");for(let t=0;t{this.videoCache.has(t)||(this.videoCache.add(t),this.intersectionObserver.observe(t))};handleIntersectingVideo=t=>{this.intersectionObserver.unobserve(t),(t=>{if(Ye.test(t.className)||Ye.test(t.title))return!0;let e=t.parentElement;for(;e;){if(Ye.test(e.className)||Ye.test(e.id))return!0;e=e.parentElement}return!1})(t)||(t=>t.hasAttribute("muted")&&!t.classList.contains("vjs-tech")&&!t.preload)(t)?$.log("The promotional/muted video was ignored",t):((t,e)=>{const o=()=>{(t=>t.readyState>=3)(t)?e(t):requestAnimationFrame(o)};o()})(t,this.handleVideoAdded)};handleVideoAdded=t=>{this.onVideoAdded.dispatch(t)};handleVideoRemoved=t=>{document.contains(t)||(this.videoCache.delete(t),this.onVideoRemoved.dispatch(t))}},Co=new WeakMap;function Po(t,e){if(t.shadowRoot){let o=t.selector?Array.from(document.querySelectorAll(t.selector)).find((t=>t.shadowRoot.contains(e))):e.parentElement;return o&&o.shadowRoot?o.parentElement:o}const o=wo.browser.version?.split(".")?.[0];if(t.selector?.includes(":not")&&t.selector?.includes("*")&&o&&("Chrome"===wo.browser.name&&Number(o)<88||"Firefox"===wo.browser.name&&Number(o)<84)){const o=t.selector.split(" *")[0];return o?Array.from(document.querySelectorAll(o)).find((t=>t.contains(e))):e.parentElement}return t.selector?Array.from(document.querySelectorAll(t.selector)).find((t=>t.contains(e))):e.parentElement}(async function(){$.log("Loading extension..."),await Z.update(),$.log(`Selected menu language: ${Z.lang}`),"https://9animetv.to"===window.location.origin&&window.addEventListener("message",(t=>{if("https://rapid-cloud.co"===t.origin&&"getVideoId"===t.data){const t=/[^/]+$/.exec(window.location.href)?.[0],e=document.querySelector("#iframe-embed")?.contentWindow;e.postMessage(`getVideoId:${t}`,"https://rapid-cloud.co/")}})),To.onVideoAdded.addListener((t=>{for(const e of function(){if(/(http(s)?:\/\/)(127\.0\.0\.1|localhost)/.exec(window.location.href))return[];const t=window.location.hostname,e=new URL(window.location),o=o=>o instanceof RegExp?o.test(t):"string"==typeof o?t.includes(o):"function"==typeof o&&o(e);return N.filter((t=>(Array.isArray(t.match)?t.match.some(o):o(t.match))&&t.host&&t.url))}()){if(!e)continue;let o=Po(e,t);if(o&&(("rumble"!==e.host||t.style.display)&&(["peertube","directlink"].includes(e.host)&&(e.url=window.location.origin),!Co.has(t)))){Co.set(t,new ko(t,o,e));break}}})),To.onVideoRemoved.addListener((async t=>{Co.has(t)&&(await Co.get(t).release(),Co.delete(t))})),To.enable()})().catch((t=>{console.error("[VOT]",t)}))})()})(); \ No newline at end of file + `),this.votMenu.headerContainer.appendChild(this.votSettingsButton),this.votTranslationLanguageSelect=je.createVOTLanguageSelect({fromTitle:X.get("langs")[this.video.detectedLanguage],fromDialogTitle:X.get("videoLanguage"),fromItems:So(ut,this.videoData.detectedLanguage),fromOnSelectCB:async t=>{D.log("[fromOnSelectCB] select from language",t.target.dataset.votValue),this.videoData=await this.getVideoData(),this.setSelectMenuValues(t.target.dataset.votValue,this.videoData.responseLanguage)},toTitle:X.get("langs")[this.video.responseLanguage],toDialogTitle:X.get("translationLanguage"),toItems:So(ct,this.videoData.responseLanguage),toOnSelectCB:async t=>{const e=t.target.dataset.votValue;D.log("[toOnSelectCB] select to language",e),this.data.responseLanguage=this.translateToLang=e,await J.set("responseLanguage",this.data.responseLanguage),D.log("Response Language value changed. New value: ",this.data.responseLanguage),this.videoData=await this.getVideoData(),this.setSelectMenuValues(this.videoData.detectedLanguage,this.data.responseLanguage)}}),this.votMenu.bodyContainer.appendChild(this.votTranslationLanguageSelect.container),this.votSubtitlesSelect=je.createVOTSelect(X.get("VOTSubtitlesDisabled"),X.get("VOTSubtitles"),[{label:X.get("VOTSubtitlesDisabled"),value:"disabled",selected:!0,disabled:!1}],{onSelectCb:async t=>{await this.changeSubtitlesLang(t.target.dataset.votValue)},labelElement:je.createVOTSelectLabel(X.get("VOTSubtitles"))}),this.votMenu.bodyContainer.appendChild(this.votSubtitlesSelect.container),this.votVideoVolumeSlider=je.createSlider(Yt`${X.get("VOTVolume")}: + ${100*this.getVideoVolume()}%`,100*this.getVideoVolume()),this.votVideoVolumeSlider.container.hidden=1!==this.data.showVideoSlider||"success"!==this.votButton.container.dataset.status,this.votMenu.bodyContainer.appendChild(this.votVideoVolumeSlider.container),this.votVideoTranslationVolumeSlider=je.createSlider(Yt`${X.get("VOTVolumeTranslation")}: + ${this.data?.defaultVolume??100}%`,this.data?.defaultVolume??100,0,this.data.audioBooster?900:100),this.votVideoTranslationVolumeSlider.container.hidden="success"!==this.votButton.container.dataset.status,this.votMenu.bodyContainer.appendChild(this.votVideoTranslationVolumeSlider.container),this.votMenu.container.addEventListener("click",(t=>{t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation()})),this.votSettingsDialog=je.createDialog(X.get("VOTSettings")),document.documentElement.appendChild(this.votSettingsDialog.container),this.votTranslationHeader=je.createHeader(X.get("translationSettings")),this.votSettingsDialog.bodyContainer.appendChild(this.votTranslationHeader),this.votAutoTranslateCheckbox=je.createCheckbox(X.get("VOTAutoTranslate"),this.data?.autoTranslate??!1),this.votSettingsDialog.bodyContainer.appendChild(this.votAutoTranslateCheckbox.container),this.votDontTranslateYourLangSelect=je.createVOTSelect(X.get("langs")[this.data.dontTranslateLanguage],X.get("VOTDontTranslateYourLang"),So(ut,this.data.dontTranslateLanguage),{onSelectCb:async t=>{this.data.dontTranslateLanguage=t.target.dataset.votValue,await J.set("dontTranslateLanguage",this.data.dontTranslateLanguage)},labelElement:je.createCheckbox(X.get("VOTDontTranslateYourLang"),this.data?.dontTranslateYourLang??!0).container}),this.votSettingsDialog.bodyContainer.appendChild(this.votDontTranslateYourLangSelect.container),this.changehotkeyButton=je.createOutlinedButton(ko(this.data.hotkeyButton)),this.votSettingsDialog.bodyContainer.appendChild(this.changehotkeyButton),this.votAutoSetVolumeCheckbox=je.createCheckbox(`${X.get("VOTAutoSetVolume")}`,this.data?.autoSetVolumeYandexStyle??!0),this.votSettingsDialog.bodyContainer.appendChild(this.votAutoSetVolumeCheckbox.container),this.votAutoSetVolumeSlider=je.createSlider(Yt`${Math.round(100*(this.data?.autoVolume??H))}%`,Math.round(100*(this.data?.autoVolume??H)),0,100),this.votSettingsDialog.bodyContainer.appendChild(this.votAutoSetVolumeSlider.container),this.votShowVideoSliderCheckbox=je.createCheckbox(X.get("VOTShowVideoSlider"),this.data?.showVideoSlider??!1),this.votSettingsDialog.bodyContainer.appendChild(this.votShowVideoSliderCheckbox.container),this.votAudioBoosterCheckbox=je.createCheckbox(X.get("VOTAudioBooster"),this.data?.audioBooster??!1),this.audioContext||(this.votAudioBoosterCheckbox.input.disabled=!0,this.votAudioBoosterCheckbox.container.title=X.get("VOTNeedWebAudioAPI")),this.votSettingsDialog.bodyContainer.appendChild(this.votAudioBoosterCheckbox.container),this.votSyncVolumeCheckbox=je.createCheckbox(X.get("VOTSyncVolume"),this.data?.syncVolume??!1),this.votSettingsDialog.bodyContainer.appendChild(this.votSyncVolumeCheckbox.container),this.votDownloadWithNameCheckbox=je.createCheckbox(X.get("VOTDownloadWithName"),this.data?.downloadWithName??!1),this.votSettingsDialog.bodyContainer.appendChild(this.votDownloadWithNameCheckbox.container),this.votTranslationServiceSelect=je.createVOTSelect(this.data.translationService.toUpperCase(),X.get("VOTTranslationService"),So(Ce,this.data.translationService),{onSelectCb:async t=>{this.data.translationService=t.target.dataset.votValue,await J.set("translationService",this.data.translationService)},labelElement:je.createCheckbox(X.get("VOTTranslateAPIErrors"),this.data.translateAPIErrors??!0).container}),this.votTranslationServiceSelect.container.hidden="ru"===X.lang,this.votSettingsDialog.bodyContainer.appendChild(this.votTranslationServiceSelect.container),this.votDetectServiceSelect=je.createVOTSelect(this.data.detectService.toUpperCase(),X.get("VOTDetectService"),So(Pe,this.data.detectService),{onSelectCb:async t=>{this.data.detectService=t.target.dataset.votValue,await J.set("detectService",this.data.detectService)},labelElement:je.createVOTSelectLabel(X.get("VOTDetectService"))}),this.votSettingsDialog.bodyContainer.appendChild(this.votDetectServiceSelect.container),this.votSubtitlesHeader=je.createHeader(X.get("subtitlesSettings")),this.votSettingsDialog.bodyContainer.appendChild(this.votSubtitlesHeader),this.votSubtitlesDetails=je.createDetails(X.get("VOTSubtitlesDesign")),this.votSettingsDialog.bodyContainer.appendChild(this.votSubtitlesDetails.container),this.votProxyHeader=je.createHeader(X.get("proxySettings")),this.votSettingsDialog.bodyContainer.appendChild(this.votProxyHeader),this.votM3u8ProxyHostTextfield=je.createTextfield(X.get("VOTM3u8ProxyHost"),this.data?.m3u8ProxyHost,F),this.votSettingsDialog.bodyContainer.appendChild(this.votM3u8ProxyHostTextfield.container),this.votProxyWorkerHostTextfield=je.createTextfield(X.get("VOTProxyWorkerHost"),this.data?.proxyWorkerHost,q),this.votSettingsDialog.bodyContainer.appendChild(this.votProxyWorkerHostTextfield.container),this.votAudioProxyCheckbox=je.createCheckbox(X.get("VOTAudioProxy"),this.data?.audioProxy??!1),this.votSettingsDialog.bodyContainer.appendChild(this.votAudioProxyCheckbox.container),this.votNewAudioPlayerCheckbox=je.createCheckbox(X.get("VOTNewAudioPlayer"),this.data?.newAudioPlayer??!1),this.audioContext||(this.votNewAudioPlayerCheckbox.input.disabled=!0,this.votNewAudioPlayerCheckbox.container.title=X.get("VOTNeedWebAudioAPI")),this.votSettingsDialog.bodyContainer.appendChild(this.votNewAudioPlayerCheckbox.container),this.votOnlyBypassMediaCSPCheckbox=je.createCheckbox(X.get("VOTOnlyBypassMediaCSP")+(this.site.needBypassCSP?` (${X.get("VOTMediaCSPEnabledOnSite")})`:""),this.data?.onlyBypassMediaCSP??!1),this.votOnlyBypassMediaCSPCheckbox.container.classList.add("vot-checkbox-sub"),this.audioContext||(this.votOnlyBypassMediaCSPCheckbox.container.title=X.get("VOTNeedWebAudioAPI")),this.votOnlyBypassMediaCSPCheckbox.input.disabled=!this.data.newAudioPlayer&&this.audioContext,this.data.newAudioPlayer||(this.votOnlyBypassMediaCSPCheckbox.container.hidden=!0),this.votSettingsDialog.bodyContainer.appendChild(this.votOnlyBypassMediaCSPCheckbox.container),this.votAboutHeader=je.createHeader(X.get("about")),this.votSettingsDialog.bodyContainer.appendChild(this.votAboutHeader),this.votLanguageSelect=je.createVOTSelect(X.get("langs")[J.syncGet("locale-lang-override","auto")],X.get("VOTMenuLanguage"),So(Z,J.syncGet("locale-lang-override","auto")),{onSelectCb:async t=>{await J.set("locale-lang-override",t.target.dataset.votValue)},labelElement:je.createVOTSelectLabel(X.get("VOTMenuLanguage"))}),this.votSettingsDialog.bodyContainer.appendChild(this.votLanguageSelect.container),this.votShowPiPButtonCheckbox=je.createCheckbox(X.get("VOTShowPiPButton"),this.data?.showPiPButton??!1),this.votShowPiPButtonCheckbox.container.hidden=!et(),this.votSettingsDialog.bodyContainer.appendChild(this.votShowPiPButtonCheckbox.container),this.votVersionInfo=je.createInformation(`${X.get("VOTVersion")}:`,GM_info.script.version),this.votSettingsDialog.bodyContainer.appendChild(this.votVersionInfo.container),this.votAuthorsInfo=je.createInformation(`${X.get("VOTAuthors")}:`,GM_info.script.author),this.votSettingsDialog.bodyContainer.appendChild(this.votAuthorsInfo.container),this.votLoaderInfo=je.createInformation(`${X.get("VOTLoader")}:`,`${GM_info.scriptHandler} v${GM_info.version}`),this.votSettingsDialog.bodyContainer.appendChild(this.votLoaderInfo.container),this.votBrowserInfo=je.createInformation(`${X.get("VOTBrowser")}:`,`${xo.browser.name} ${xo.browser.version} (${xo.os.name} ${xo.os.version})`),this.votSettingsDialog.bodyContainer.appendChild(this.votBrowserInfo.container),this.votLocaleInfo=je.createInformation(`${X.get("VOTLocaleHash")}:`,Yt`${this.data.localeHash}
(${X.get("VOTUpdatedAt")} + ${new Date(1e3*this.data.localeUpdatedAt).toLocaleString()})`),this.votSettingsDialog.bodyContainer.appendChild(this.votLocaleInfo.container),this.votUpdateLocaleFilesButton=je.createOutlinedButton(X.get("VOTUpdateLocaleFiles")),this.votSettingsDialog.bodyContainer.appendChild(this.votUpdateLocaleFilesButton),this.votResetSettingsButton=je.createButton(X.get("resetSettings")),this.votSettingsDialog.bodyContainer.appendChild(this.votResetSettingsButton)}async handleTranslationBtnClick(){if(D.log("[click translationBtn]",this.audioPlayer,this.audioPlayer.player),this.audioPlayer.player.src)return D.log("[click translationBtn] audio.src is not empty",this.audioPlayer.player.src),void this.stopTranslate();if(this.hls.url)return D.log("[click translationBtn] hls is not empty",this.hls.url),void this.stopTranslate();try{if(D.log("[click translationBtn] trying execute translation"),!this.videoData.videoId)throw new pt("VOTNoVideoIDFound");"vk"===this.site.host&&"clips"===this.site.additionalData&&(this.videoData=await this.getVideoData()),await this.translateExecutor(this.videoData.videoId)}catch(t){console.error("[VOT]",t),"VOTLocalizedError"===t?.name?this.transformBtn("error",t.localizedMessage):this.transformBtn("error",t?.message)}}initUIEvents(){this.votButton.translateButton.addEventListener("click",(async()=>{await this.handleTranslationBtnClick()})),this.votButton.pipButton.addEventListener("click",(()=>{(async()=>{this.video!==document.pictureInPictureElement?await this.video.requestPictureInPicture():await document.exitPictureInPicture()})()})),this.votButton.menuButton.addEventListener("click",(()=>{this.votMenu.container.hidden=!this.votMenu.container.hidden})),this.votButton.container.addEventListener("mousedown",(()=>{this.dragging=!0})),this.container.addEventListener("mouseup",(()=>{this.dragging=!1})),this.container.addEventListener("mousemove",(async t=>{if(this.dragging){t.preventDefault();const e=t.clientX/this.container.clientWidth*100,o=this.container.clientWidth>550,i=e<=44?"left":e>=66?"right":"default";this.data.buttonPos=o?i:"default",this.votButton.container.dataset.direction="default"===this.data.buttonPos?"row":"column",this.votButton.container.dataset.position=this.data.buttonPos,this.votMenu.container.dataset.position=this.data.buttonPos,o&&await J.set("buttonPos",this.data.buttonPos)}})),this.votDownloadButton.addEventListener("click",(async()=>{if(!this.downloadTranslationUrl)return;if(!this.data.downloadWithName)return window.open(this.downloadTranslationUrl,"_blank").focus();const t=document.querySelector("#vot-loader-download"),e=getComputedStyle(this.votMenu.container).getPropertyValue("--vot-primary-rgb"),o=je.animateLoader(t,e),i=await rt(this.downloadTranslationUrl),a=i.body.getReader(),n=+i.headers.get("Content-Length");let r=0;const s=[];for(;;){const{done:t,value:e}=await a.read();if(t)break;s.push(e),r+=e.length,o(Math.round(r/n*100))}je.afterAnimateLoader(t,e);const l=new Blob(s),d=nt(this.videoData.title??this.videoData.videoId),u=await l.arrayBuffer(),c=new xe(u);c.setFrame("TIT2",d),c.addTag(),at(c.getBlob(),`${d}.mp3`)})),this.votDownloadSubtitlesButton.addEventListener("click",(async()=>{const t=this.data.subtitlesDownloadFormat,e=Pt(this.yandexSubtitles,t);at(new Blob(["json"===t?JSON.stringify(e):e],{type:"text/plain"}),`${this.data.downloadWithName?nt(this.videoData.title??this.videoData.videoId):`subtitles_${this.videoData.videoId}`}.${t}`)})),this.votSettingsButton.addEventListener("click",(()=>{this.votSettingsDialog.container.hidden=!this.votSettingsDialog.container.hidden,(document.fullscreenElement||document.webkitFullscreenElement)&&(document.webkitExitFullscreen&&document.webkitExitFullscreen(),document.exitFullscreen&&document.exitFullscreen())})),this.votVideoVolumeSlider.input.addEventListener("input",(t=>{const e=Number(t.target.value);this.votVideoVolumeSlider.label.querySelector("strong").textContent=`${e}%`,this.setVideoVolume(e/100),this.data.syncVolume&&this.syncVolumeWrapper("video",e)})),this.votVideoTranslationVolumeSlider.input.addEventListener("input",(t=>{(async()=>{this.data.defaultVolume=Number(t.target.value),await J.set("defaultVolume",this.data.defaultVolume),this.votVideoTranslationVolumeSlider.label.querySelector("strong").textContent=`${this.data.defaultVolume}%`,this.audioPlayer.player.volume=this.data.defaultVolume/100,this.data.syncVolume&&(this.syncVolumeWrapper("translation",this.data.defaultVolume),["youtube","googledrive"].includes(this.site.host)&&"mobile"!==this.site.additionalData&&this.setVideoVolume(this.tempOriginalVolume/100))})()}));{this.votAutoTranslateCheckbox.input.addEventListener("change",(t=>{(async()=>{this.data.autoTranslate=Number(t.target.checked),await Promise.all([J.set("autoTranslate",this.data.autoTranslate),this.autoTranslate()]),D.log("autoTranslate value changed. New value: ",this.data.autoTranslate)})()})),this.votDontTranslateYourLangSelect.labelElement.addEventListener("change",(t=>{(async()=>{this.data.dontTranslateYourLang=Number(t.target.checked),await J.set("dontTranslateYourLang",this.data.dontTranslateYourLang),D.log("dontTranslateYourLang value changed. New value: ",this.data.dontTranslateYourLang)})()}));const t=async t=>{await J.set("hotkeyButton",t),this.data.hotkeyButton=t,this.changehotkeyButton.textContent=ko(t)},e=o=>{const i="Escape"===o.code?null:o.code;t(i),document.removeEventListener("keydown",e)};this.changehotkeyButton.addEventListener("click",(()=>{this.changehotkeyButton.textContent=X.get("VOTPressNewHotkey"),document.addEventListener("keydown",e)})),this.votAutoSetVolumeCheckbox.input.addEventListener("change",(t=>{(async()=>{this.data.autoSetVolumeYandexStyle=Number(t.target.checked),await J.set("autoSetVolumeYandexStyle",this.data.autoSetVolumeYandexStyle),D.log("autoSetVolumeYandexStyle value changed. New value: ",this.data.autoSetVolumeYandexStyle)})()})),this.votAutoSetVolumeSlider.input.addEventListener("input",(t=>{(async()=>{const e=Number(t.target.value);this.data.autoVolume=(e/100).toFixed(2),await J.set("autoVolume",this.data.autoVolume),this.votAutoSetVolumeSlider.label.querySelector("strong").textContent=`${e}%`})()})),this.votShowVideoSliderCheckbox.input.addEventListener("change",(t=>{(async()=>{this.data.showVideoSlider=Number(t.target.checked),await J.set("showVideoSlider",this.data.showVideoSlider),D.log("showVideoSlider value changed. New value: ",this.data.showVideoSlider),this.votVideoVolumeSlider.container.hidden=1!==this.data.showVideoSlider||"success"!==this.votButton.container.dataset.status})()})),this.votAudioBoosterCheckbox.input.addEventListener("change",(t=>{(async()=>{this.data.audioBooster=Number(t.target.checked),await J.set("audioBooster",this.data.audioBooster),D.log("audioBooster value changed. New value: ",this.data.audioBooster);const e=this.votVideoTranslationVolumeSlider.input.value;this.votVideoTranslationVolumeSlider.input.max=this.data.audioBooster?900:100,this.data.audioBooster||(this.votVideoTranslationVolumeSlider.input.value=e>100?100:e,this.votVideoTranslationVolumeSlider.input.dispatchEvent(new Event("input")))})()})),this.votSyncVolumeCheckbox.input.addEventListener("change",(t=>{(async()=>{this.data.syncVolume=Number(t.target.checked),await J.set("syncVolume",this.data.syncVolume),D.log("syncVolume value changed. New value: ",this.data.syncVolume)})()})),this.votDownloadWithNameCheckbox.input.addEventListener("change",(t=>{(async()=>{this.data.downloadWithName=Number(t.target.checked),await J.set("downloadWithName",this.data.downloadWithName),D.log("downloadWithName value changed. New value: ",this.data.downloadWithName)})()})),this.votTranslationServiceSelect.labelElement.addEventListener("change",(t=>{(async()=>{this.data.translateAPIErrors=Number(t.target.checked),await J.set("translateAPIErrors",this.data.translateAPIErrors),D.log("translateAPIErrors value changed. New value: ",this.data.translateAPIErrors)})()})),this.votSubtitlesDetails.container.addEventListener("click",(()=>{this.votSubtitlesDialog=je.createDialog(X.get("VOTSubtitlesDesign")),this.votSubtitlesDialog.container.classList.add("vot-dialog-temp"),this.votSubtitlesDialog.container.hidden=!1,this.votSubtitlesDialog.backdrop.onclick=this.votSubtitlesDialog.closeButton.onclick=()=>{this.votSubtitlesDialog.container.remove()},this.votSubtitlesHighlightWordsCheckbox=je.createCheckbox(X.get("VOTHighlightWords"),this.data?.highlightWords??!1),this.votSubtitlesDialog.bodyContainer.appendChild(this.votSubtitlesHighlightWordsCheckbox.container),this.votSubtitlesDownloadFormatSelect=je.createVOTSelect(this.data.subtitlesDownloadFormat.toUpperCase(),X.get("VOTSubtitlesDownloadFormat"),So(ht,this.data.subtitlesDownloadFormat),{onSelectCb:async t=>{this.data.subtitlesDownloadFormat=t.target.dataset.votValue,await J.set("subtitlesDownloadFormat",this.data.subtitlesDownloadFormat)},labelElement:je.createVOTSelectLabel(X.get("VOTSubtitlesDownloadFormat"))}),this.votSubtitlesDialog.bodyContainer.appendChild(this.votSubtitlesDownloadFormatSelect.container),this.votSubtitlesMaxLengthSlider=je.createSlider(Yt`${X.get("VOTSubtitlesMaxLength")}: + ${this.data?.subtitlesMaxLength??300}`,this.data?.subtitlesMaxLength??300,50,300),this.votSubtitlesDialog.bodyContainer.appendChild(this.votSubtitlesMaxLengthSlider.container),this.votSubtitlesFontSizeSlider=je.createSlider(Yt`${X.get("VOTSubtitlesFontSize")}: + ${this.data?.subtitlesFontSize??20}`,this.data?.subtitlesFontSize??20,8,50),this.votSubtitlesDialog.bodyContainer.appendChild(this.votSubtitlesFontSizeSlider.container),this.votSubtitlesOpacitySlider=je.createSlider(Yt`${X.get("VOTSubtitlesOpacity")}: + ${this.data?.subtitlesOpacity??20}`,this.data?.subtitlesOpacity??20,0,100),this.votSubtitlesDialog.bodyContainer.appendChild(this.votSubtitlesOpacitySlider.container),this.votSubtitlesHighlightWordsCheckbox.input.addEventListener("change",(t=>{(async()=>{this.data.highlightWords=Number(t.target.checked),await J.set("highlightWords",this.data.highlightWords),D.log("highlightWords value changed. New value: ",this.data.highlightWords),this.subtitlesWidget.setHighlightWords(this.data.highlightWords)})()})),this.votSubtitlesMaxLengthSlider.input.addEventListener("input",(t=>{(async()=>{this.data.subtitlesMaxLength=Number(t.target.value),await J.set("subtitlesMaxLength",this.data.subtitlesMaxLength),this.votSubtitlesMaxLengthSlider.label.querySelector("strong").textContent=`${this.data.subtitlesMaxLength}`,this.subtitlesWidget.setMaxLength(this.data.subtitlesMaxLength)})()})),this.votSubtitlesFontSizeSlider.input.addEventListener("input",(t=>{(async()=>{this.data.subtitlesFontSize=Number(t.target.value),await J.set("subtitlesFontSize",this.data.subtitlesFontSize),this.votSubtitlesFontSizeSlider.label.querySelector("strong").textContent=`${this.data.subtitlesFontSize}`,this.subtitlesWidget.setFontSize(this.data.subtitlesFontSize)})()})),this.votSubtitlesOpacitySlider.input.addEventListener("input",(t=>{(async()=>{this.data.subtitlesOpacity=Number(t.target.value),await J.set("subtitlesOpacity",this.data.subtitlesOpacity),this.votSubtitlesOpacitySlider.label.querySelector("strong").textContent=`${this.data.subtitlesOpacity}`,this.subtitlesWidget.setOpacity(this.data.subtitlesOpacity)})()})),document.documentElement.appendChild(this.votSubtitlesDialog.container)})),this.votShowPiPButtonCheckbox.input.addEventListener("change",(t=>{(async()=>{this.data.showPiPButton=Number(t.target.checked),await J.set("showPiPButton",this.data.showPiPButton),D.log("showPiPButton value changed. New value: ",this.data.showPiPButton),this.votButton.pipButton.hidden=!et()||!this.data.showPiPButton,this.votButton.separator2.hidden=!et()||!this.data.showPiPButton})()})),this.votM3u8ProxyHostTextfield.input.addEventListener("change",(t=>{(async()=>{this.data.m3u8ProxyHost=t.target.value||F,await J.set("m3u8ProxyHost",this.data.m3u8ProxyHost),D.log("m3u8ProxyHost value changed. New value: ",this.data.m3u8ProxyHost)})()})),this.votProxyWorkerHostTextfield.input.addEventListener("change",(t=>{(async()=>{this.data.proxyWorkerHost=t.target.value||q,await J.set("proxyWorkerHost",this.data.proxyWorkerHost),D.log("proxyWorkerHost value changed. New value: ",this.data.proxyWorkerHost),this.data.translateProxyEnabled&&(this.votClient.host=this.data.proxyWorkerHost)})()})),this.votAudioProxyCheckbox.input.addEventListener("change",(t=>{(async()=>{this.data.audioProxy=Number(t.target.checked),await J.set("audioProxy",this.data.audioProxy),D.log("audioProxy value changed. New value: ",this.data.audioProxy)})()})),this.votOnlyBypassMediaCSPCheckbox.input.addEventListener("change",(t=>{(async()=>{this.data.onlyBypassMediaCSP=Number(t.target.checked),await J.set("onlyBypassMediaCSP",this.data.onlyBypassMediaCSP),D.log("onlyBypassMediaCSP value changed. New value: ",this.data.onlyBypassMediaCSP),this.stopTranslate(),this.createPlayer()})()})),this.votNewAudioPlayerCheckbox.input.addEventListener("change",(t=>{(async()=>{const e=t.target.checked;this.data.newAudioPlayer=Number(e),await J.set("newAudioPlayer",this.data.newAudioPlayer),D.log("newAudioPlayer value changed. New value: ",this.data.newAudioPlayer),this.stopTranslate(),this.createPlayer(),this.votOnlyBypassMediaCSPCheckbox.input.disabled=this.votOnlyBypassMediaCSPCheckbox.container.hidden=!e})()})),this.votUpdateLocaleFilesButton.addEventListener("click",(()=>{(async()=>{await J.set("locale-hash",""),await X.update(!0),window.location.reload()})()})),this.votResetSettingsButton.addEventListener("click",(()=>{(async()=>{X.reset();const t=await J.list();for(let e=0;e{this.extraEvents.push({element:t,event:e,handler:o}),t.addEventListener(e,o)},e=(e,o,i)=>{for(const a of o)t(e,a,i)};if(this.resizeObserver=new ResizeObserver((t=>{for(let e=0;e550;this.votButton.container.dataset.position=this.votMenu.container.dataset.position=e?this.data?.buttonPos:"default",this.votButton.container.dataset.direction=this.data?.buttonPos&&"default"!==this.data?.buttonPos&&e?"column":"row"})),this.resizeObserver.observe(this.video),this.votMenu.container.setAttribute("style",`--vot-container-height: ${this.video.getBoundingClientRect().height}px`),["youtube","googledrive"].includes(this.site.host)&&"mobile"!==this.site.additionalData){this.syncVolumeObserver=new MutationObserver((t=>{if(this.audioPlayer.player.src&&this.data.syncVolume)for(let e=0;e{const e=t.target,o=this.votButton.container,i=this.votMenu.container,a=this.container,n=this.votSettingsDialog.container,r=document.querySelector(".vot-dialog-temp"),s=o.contains(e),l=i.contains(e),d=a.contains(e),u=n.contains(e),c=r?.contains(e)??!1;D.log(`[document click] ${s} ${l} ${d} ${u} ${c}`),s||l||u||c||(d||this.logout(0),this.votMenu.container.hidden=!0)})),document.addEventListener("keydown",(async t=>{const e=t.code,o=document.activeElement;["input","textarea"].includes(o.tagName.toLowerCase())||o.isContentEditable||e!==this.data.hotkeyButton||await this.handleTranslationBtnClick()}));let o=this.site.eventSelector?document.querySelector(this.site.eventSelector):this.container;o&&e(o,["mousemove","mouseout"],this.resetTimer),t(this.votButton.container,"mousemove",this.changeOpacityOnEvent),t(this.votMenu.container,"mousemove",this.changeOpacityOnEvent),e(document,["touchstart","touchmove","touchend"],this.changeOpacityOnEvent),t(this.votButton.container,"mousedown",(t=>{t.stopImmediatePropagation()})),t(this.votMenu.container,"mousedown",(t=>{t.stopImmediatePropagation()})),"youtube"===this.site.host&&(this.container.draggable=!1),"googledrive"===this.site.host&&(this.container.style.height="100%"),t(this.video,"canplay",(async()=>{"rutube"===this.site.host&&this.video.src||await this.setCanPlay()})),t(this.video,"emptied",(async()=>{this.video.src&&await ft(this.site,this.video)===this.videoData.videoId||(D.log("lipsync mode is emptied"),this.videoData="",this.stopTranslation())})),["rutube","ok"].includes(this.site.host)||t(this.video,"volumechange",(()=>{this.syncVideoVolumeSlider()})),"youtube"!==this.site.host||this.site.additionalData||t(document,"yt-page-data-updated",(async()=>{D.log("yt-page-data-updated"),window.location.pathname.includes("/shorts/")&&await this.setCanPlay()}))}async setCanPlay(){await ft(this.site,this.video)!==this.videoData.videoId&&(await this.handleSrcChanged(),await this.autoTranslate(),D.log("lipsync mode is canplay"))}logout(t){this.votMenu.container.hidden&&(this.votButton.container.style.opacity=t)}resetTimer=()=>{clearTimeout(this.timer),this.logout(1),this.timer=setTimeout((()=>{this.logout(0)}),1e3)};changeOpacityOnEvent=t=>{clearTimeout(this.timer),this.logout(1),t.stopPropagation()};async changeSubtitlesLang(t){if(D.log("[onchange] subtitles",t),this.votSubtitlesSelect.setSelected(t),"disabled"===t)this.votSubtitlesSelect.setTitle(X.get("VOTSubtitlesDisabled")),this.subtitlesWidget.setContent(null),this.votDownloadSubtitlesButton.hidden=!0,this.yandexSubtitles=null;else{const e=this.subtitlesList.at(parseInt(t));if(1===this.data.audioProxy&&e.url.startsWith("https://brosubs.s3-private.mds.yandex.net/vtrans/")){const t=e.url.replace("https://brosubs.s3-private.mds.yandex.net/vtrans/","");e.url=`https://${this.data.proxyWorkerHost}/video-subtitles/subtitles-proxy/${t}`,console.log(`[VOT] Subs proxied via ${e.url}`)}this.yandexSubtitles=await Be(e),this.subtitlesWidget.setContent(this.yandexSubtitles),this.votDownloadSubtitlesButton.hidden=!1}}async updateSubtitlesLangSelect(){const t=[{label:X.get("VOTSubtitlesDisabled"),value:"disabled",selected:!0,disabled:!1},...this.subtitlesList.map(((t,e)=>({label:(X.get("langs")[t.language]??t.language.toUpperCase())+(t.translatedFromLanguage?` ${X.get("VOTTranslatedFrom")} ${X.get("langs")[t.translatedFromLanguage]??t.translatedFromLanguage.toUpperCase()}`:"")+("yandex"!==t.source?`, ${window.location.hostname}`:"")+(t.isAutoGenerated?` (${X.get("VOTAutogenerated")})`:""),value:e,selected:!1,disabled:!1})))];this.votSubtitlesSelect.updateItems(t),await this.changeSubtitlesLang(t[0].value)}async updateSubtitles(){if(await this.changeSubtitlesLang("disabled"),!this.videoData.videoId)return console.error(`[VOT] ${X.getDefault("VOTNoVideoIDFound")}`),this.subtitlesList=[],this.subtitlesListVideoId=null,this.votButton.container.hidden=!0,void await this.updateSubtitlesLangSelect();if(this.votButton.container.hidden=!1,this.subtitlesListVideoId!==this.videoData.videoId){try{this.subtitlesList=await Ne(this.votClient,this.videoData)}catch(t){D.log("Error with yandex server, try auto-fix...",t),this.votOpts={fetchFn:rt,hostVOT:U,host:this.data.proxyWorkerHost},this.votClient=new xt(this.votOpts),this.subtitlesList=await Ne(this.votClient,this.videoData),await J.set("translateProxyEnabled",1)}this.subtitlesList?this.subtitlesListVideoId=this.videoData.videoId:await this.changeSubtitlesLang("disabled"),await this.updateSubtitlesLangSelect()}}getVideoVolume(){let t=this.video?.volume;return["youtube","googledrive"].includes(this.site.host)&&(t=Ve.getVideoVolume()??t),t}setVideoVolume(t){if(["youtube","googledrive"].includes(this.site.host)){if(Ve.setVideoVolume(t))return this}return this.video.volume=t,this}isMuted(){return["youtube","googledrive"].includes(this.site.host)?Ve.isMuted():this.video?.muted}syncVideoVolumeSlider(){const t=this.isMuted()?0:100*this.getVideoVolume(),e=Math.round(t);this.votVideoVolumeSlider.input.value=e,this.votVideoVolumeSlider.label.querySelector("strong").textContent=`${e}%`,je.updateSlider(this.votVideoVolumeSlider.input),1===this.data.syncVolume&&(this.tempOriginalVolume=Number(e))}setSelectMenuValues(t,e){this.votTranslationLanguageSelect.fromSelect.setTitle(X.get("langs")[t]),this.votTranslationLanguageSelect.toSelect.setTitle(X.get("langs")[e]),this.votTranslationLanguageSelect.fromSelect.setSelected(t),this.votTranslationLanguageSelect.toSelect.setSelected(e),console.log(`[VOT] Set translation from ${t} to ${e}`),this.videoData.detectedLanguage=t,this.videoData.responseLanguage=e}syncVolumeWrapper(t,e){const o="translation"===t?this.votVideoVolumeSlider:this.votVideoTranslationVolumeSlider,i=Number(o.input.value),a=function(t,e,o,i){let a=e;return e>i?(a=o+(e-i),a=a>100?100:Math.max(a,0),t.volume=a/100):e100?100:Math.max(a,0),t.volume=a/100),a}("translation"===t?this.video:this.audioPlayer.player,e,i,"translation"===t?this.tempVolume:this.tempOriginalVolume);o.input.value=a,o.label.querySelector("strong").textContent=`${a}%`,je.updateSlider(o.input),this.tempOriginalVolume="translation"===t?a:e,this.tempVolume="translation"===t?e:a}async getVideoData(){const{duration:t,url:e,videoId:o,host:i,title:a,translationHelp:n,detectedLanguage:r,subtitles:s}=await bt(this.site,this.video),l={translationHelp:n??null,isStream:!1,duration:this.video?.duration||t||P.defaultDuration,videoId:o,url:e,host:i,detectedLanguage:r??this.translateFromLang,responseLanguage:this.translateToLang,subtitles:s,title:a};if("youtube"===this.site.host){const t=await Ve.getVideoData();l.isStream=t.isLive,t.title&&(l.detectedLanguage=t.detectedLanguage,l.title=t.localizedTitle)}else if(["rutube","ok.ru","mail_ru"].includes(this.site.host))l.detectedLanguage="ru";else if("youku"===this.site.host)l.detectedLanguage="zh";else if("vk"===this.site.host){const t=document.getElementsByTagName("track")?.[0]?.srclang;l.detectedLanguage=t||"auto"}else"weverse"===this.site.host?l.detectedLanguage="ko":["bilibili","bitchute","rumble","peertube","dailymotion","trovo","yandexdisk","coursehunterLike","archive","nineanimetv","directlink"].includes(this.site.host)&&(l.detectedLanguage="auto");return l}videoValidator(){if(["youtube","ok.ru","vk"].includes(this.site.host)&&(D.log("VideoValidator videoData: ",this.videoData),1===this.data.dontTranslateYourLang&&this.videoData.detectedLanguage===this.data.dontTranslateLanguage))throw new pt("VOTDisableFromYourLang");if(!this.videoData.isStream&&this.videoData.duration>14400)throw new pt("VOTVideoIsTooLong");return!0}stopTranslate(){this.audioPlayer.player.removeVideoEvents(),this.audioPlayer.player.clear(),this.audioPlayer.player.src=void 0,D.log("audioPlayer after stopTranslate",this.audioPlayer),this.votVideoVolumeSlider.container.hidden=!0,this.votVideoTranslationVolumeSlider.container.hidden=!0,this.votDownloadButton.hidden=!0,this.downloadTranslationUrl=null,this.transformBtn("none",X.get("translateVideo")),D.log(`Volume on start: ${this.volumeOnStart}`),this.volumeOnStart&&this.setVideoVolume(this.volumeOnStart),clearInterval(this.streamPing),clearTimeout(this.autoRetry),this.hls?.destroy(),this.hls=ot(),this.firstSyncVolume=!0}async translateExecutor(t){D.log("Run translateFunc",t),await this.translateFunc(t,this.videoData.isStream,this.videoData.detectedLanguage,this.videoData.responseLanguage,this.videoData.translationHelp)}async updateTranslationErrorMsg(t){const e=X.get("translationTake"),o=X.lang;if("VOTLocalizedError"===t?.name)this.transformBtn("error",t.localizedMessage);else if(t instanceof Error)this.transformBtn("error",t?.message);else if(1!==this.data.translateAPIErrors||t.includes(e)||"ru"===o)this.transformBtn("error",t);else{this.setLoadingBtn(!0);const e=await async function(t,e="",o="ru"){switch(await J.get("translationService",z)){case"yandex":{const i=e&&o?`${e}-${o}`:o;return await Se.translate(t,i)}case"deepl":return await Te.translate(t,e,o);default:return t}}(t,"ru",o);this.transformBtn("error",e)}["Подготавливаем перевод","Видео передано в обработку","Ожидаем перевод видео","Загружаем переведенное аудио"].includes(t)&&this.setLoadingBtn(!0)}afterUpdateTranslation(t){this.votVideoVolumeSlider.container.hidden=1!==this.data.showVideoSlider||"success"!==this.votButton.container.dataset.status,this.votVideoTranslationVolumeSlider.container.hidden="success"!==this.votButton.container.dataset.status,1===this.data.autoSetVolumeYandexStyle&&(this.votVideoVolumeSlider.input.value=100*this.data.autoVolume,this.votVideoVolumeSlider.label.querySelector("strong").textContent=100*this.data.autoVolume+"%",je.updateSlider(this.votVideoVolumeSlider.input)),this.votDownloadButton.hidden=!1,this.downloadTranslationUrl=t}async validateAudioUrl(t){try{const e=await rt(t,{method:"HEAD",timeout:5e3});if(D.log("Test audio response",e),404!==e.status)return D.log("Valid audioUrl",t),t;D.log("Yandex returned not valid audio, trying to fix...");let o=await this.translateVideoImpl(this.videoData,this.videoData.detectedLanguage="auto",this.videoData.responseLanguage,this.videoData.translationHelp);this.setSelectMenuValues(this.videoData.detectedLanguage,this.videoData.responseLanguage),t=o.url,D.log("Fixed audio audioUrl",t)}catch(t){"Timeout"===t.message?(D.log("Request timed out. Handling timeout error..."),this.data.audioProxy=1,await J.set("audioProxy",1)):D.log("Test audio error:",t)}return t}async updateTranslation(t){if(this.cachedTranslation?.url!==this.audioPlayer.player.currentSrc&&(t=await this.validateAudioUrl(t)),1===this.data.audioProxy&&t.startsWith("https://vtrans.s3-private.mds.yandex.net/tts/prod/")){const e=t.replace("https://vtrans.s3-private.mds.yandex.net/tts/prod/","");t=`https://${this.data.proxyWorkerHost}/video-translation/audio-proxy/${e}`,console.log(`[VOT] Audio proxied via ${t}`)}this.audioPlayer.player.src!==t&&(this.audioPlayer.player.src=t);try{this.audioPlayer.init()}catch(t){t.message.includes("Failed to fetch audio file")?(this.videoHandler.data.audioProxy=1,await J.set("audioProxy",1)):this.videoHandler.transformBtn("error",t.message)}this.setupAudioSettings(),"twitter"===this.site.host&&document.querySelector('button[data-testid="app-bar-back"][role="button"]').addEventListener("click",this.stopTranslation),this.transformBtn("success",X.get("disableTranslate")),this.afterUpdateTranslation(t)}async translateFunc(t,e,o,i,a){if(console.log("[VOT] Video Data: ",this.videoData),D.log("Run videoValidator"),this.videoValidator(),this.setLoadingBtn(!0),this.volumeOnStart=this.getVideoVolume(),e){let t=await this.translateStreamImpl(this.videoData,o,i);if(!t)return void D.log("Skip translation");this.transformBtn("success",X.get("disableTranslate"));const e=this.setHLSSource(t.result.url);return"youtube"===this.site.host&&Ve.videoSeek(this.video,10),this.setupAudioSettings(),this.video.src||this.video.currentSrc||this.video.srcObject?this.afterUpdateTranslation(e):this.stopTranslation()}if(this.cachedTranslation=this.videoTranslations.find((e=>e.videoId===t&&e.expires>st()&&e.from===o&&e.to===i)),this.cachedTranslation)return await this.updateTranslation(this.cachedTranslation.url),void D.log("[translateFunc] Cached translation was received");let n=await this.translateVideoImpl(this.videoData,o,i,a);D.log("[translateRes]",n),n?(await this.updateTranslation(n.url),this.subtitlesList.some((t=>"yandex"===t.source&&t.translatedFromLanguage===this.videoData.detectedLanguage&&t.language===this.videoData.responseLanguage))||(this.subtitlesList=await Ne(this.votClient,this.videoData),await this.updateSubtitlesLangSelect()),this.videoTranslations.push({videoId:t,from:o,to:i,url:this.downloadTranslationUrl,expires:st()+this.videoTranslationTTL})):D.log("Skip translation")}setupHLS(t){this.hls.on(Hls.Events.MEDIA_ATTACHED,(function(){D.log("audio and hls.js are now bound together !")})),this.hls.on(Hls.Events.MANIFEST_PARSED,(function(t){D.log("manifest loaded, found "+t?.levels?.length+" quality level")})),this.hls.loadSource(t),this.hls.attachMedia(this.audioPlayer.player.audio),this.hls.on(Hls.Events.ERROR,(function(t){if(t.fatal)switch(t.type){case Hls.ErrorTypes.MEDIA_ERROR:console.log("fatal media error encountered, try to recover"),this.hls.recoverMediaError();break;case Hls.ErrorTypes.NETWORK_ERROR:console.error("fatal network error encountered",t);break;default:this.hls.destroy()}})),D.log(this.hls)}setHLSSource(t){const e=`https://${this.data.m3u8ProxyHost}/?all=yes&origin=${encodeURIComponent("https://strm.yandex.ru")}&referer=${encodeURIComponent("https://strm.yandex.ru")}&url=${encodeURIComponent(t)}`;if(this.hls)this.setupHLS(e);else{if(!this.audioPlayer.player.audio.canPlayType("application/vnd.apple.mpegurl"))throw new pt("audioFormatNotSupported");this.audioPlayer.player.src=e}return e}setupAudioSettings(){"number"==typeof this.data.defaultVolume&&(this.audioPlayer.player.volume=this.data.defaultVolume/100),"number"==typeof this.data.autoSetVolumeYandexStyle&&this.data.autoSetVolumeYandexStyle&&this.setVideoVolume(this.data.autoVolume)}stopTranslation=()=>{this.stopTranslate(),this.syncVideoVolumeSlider()};async handleSrcChanged(){D.log("[VideoHandler] src changed",this),this.firstPlay=!0,this.stopTranslation();const t=!this.video.src&&!this.video.currentSrc&&!this.video.srcObject;this.votButton.container.hidden=t,t&&(this.votMenu.container.hidden=t),this.site.selector||(this.container=this.video.parentElement),this.container.contains(this.votButton.container)||this.container.append(this.votButton.container,this.votMenu.container),this.videoData=await this.getVideoData(),await this.updateSubtitles(),this.translateToLang=this.data.responseLanguage??"ru",this.setSelectMenuValues(this.videoData.detectedLanguage,this.videoData.responseLanguage)}async release(){D.log("[VideoHandler] release"),this.initialized=!1,this.releaseExtraEvents(),this.subtitlesWidget.release(),this.votButton.container.remove(),this.votMenu.container.remove()}}const Co=new class{constructor(){this.videoCache=new Set,this.onVideoAdded=new Ge,this.onVideoRemoved=new Ge,this.observer=new MutationObserver(this.handleMutations),this.intersectionObserver=new IntersectionObserver(this.handleIntersections,{threshold:.1})}handleMutations=t=>{window.requestIdleCallback((()=>{for(let e=0;e{for(let e=0;e{if(!t)return;const i=t.querySelectorAll("video");for(let t=0;t{this.videoCache.has(t)||(this.videoCache.add(t),this.intersectionObserver.observe(t))};handleIntersectingVideo=t=>{this.intersectionObserver.unobserve(t),(t=>{if(Je.test(t.className)||Je.test(t.title))return!0;let e=t.parentElement;for(;e;){if(Je.test(e.className)||Je.test(e.id))return!0;e=e.parentElement}return!1})(t)||(t=>t.hasAttribute("muted")&&!t.classList.contains("vjs-tech")&&!t.preload)(t)?D.log("The promotional/muted video was ignored",t):((t,e)=>{const o=()=>{(t=>t.readyState>=3)(t)?e(t):requestAnimationFrame(o)};o()})(t,this.handleVideoAdded)};handleVideoAdded=t=>{this.onVideoAdded.dispatch(t)};handleVideoRemoved=t=>{document.contains(t)||(this.videoCache.delete(t),this.onVideoRemoved.dispatch(t))}},Po=new WeakMap;function Lo(t,e){if(t.shadowRoot){let o=t.selector?Array.from(document.querySelectorAll(t.selector)).find((t=>t.shadowRoot.contains(e))):e.parentElement;return o&&o.shadowRoot?o.parentElement:o}const o=xo.browser.version?.split(".")?.[0];if(t.selector?.includes(":not")&&t.selector?.includes("*")&&o&&("Chrome"===xo.browser.name&&Number(o)<88||"Firefox"===xo.browser.name&&Number(o)<84)){const o=t.selector.split(" *")[0];return o?Array.from(document.querySelectorAll(o)).find((t=>t.contains(e))):e.parentElement}return t.selector?Array.from(document.querySelectorAll(t.selector)).find((t=>t.contains(e))):e.parentElement}(async function(){D.log("Loading extension..."),await X.update(),D.log(`Selected menu language: ${X.lang}`),"https://9animetv.to"===window.location.origin&&window.addEventListener("message",(t=>{if("https://rapid-cloud.co"===t.origin&&"getVideoId"===t.data){const t=/[^/]+$/.exec(window.location.href)?.[0],e=document.querySelector("#iframe-embed")?.contentWindow;e.postMessage(`getVideoId:${t}`,"https://rapid-cloud.co/")}})),Co.onVideoAdded.addListener((t=>{for(const e of function(){if(/(http(s)?:\/\/)(127\.0\.0\.1|localhost)/.exec(window.location.href))return[];const t=window.location.hostname,e=new URL(window.location),o=o=>o instanceof RegExp?o.test(t):"string"==typeof o?t.includes(o):"function"==typeof o&&o(e);return R.filter((t=>(Array.isArray(t.match)?t.match.some(o):o(t.match))&&t.host&&t.url))}()){if(!e)continue;let o=Lo(e,t);if(o&&(("rumble"!==e.host||t.style.display)&&(["peertube","directlink"].includes(e.host)&&(e.url=window.location.origin),!Po.has(t)))){Po.set(t,new To(t,o,e));break}}})),Co.onVideoRemoved.addListener((async t=>{Po.has(t)&&(await Po.get(t).release(),Po.delete(t))})),Co.enable()})().catch((t=>{console.error("[VOT]",t)}))})()})(); \ No newline at end of file diff --git a/dist/vot.user.js b/dist/vot.user.js index 43ed147c..0941dd6f 100644 --- a/dist/vot.user.js +++ b/dist/vot.user.js @@ -1836,7 +1836,7 @@ const yandexProtobuf = { hmac: "bt8xH3VOlb4mqf0nqAibnDOoiPlXsisf", defaultDuration: 343, loggerLevel: 1, - version: "1.3.8", + version: "1.3.9", }); ;// ./node_modules/vot.js/dist/types/logger.js @@ -1895,6 +1895,18 @@ async function getSignature(body) { const signature = await signHMAC("SHA-256", config.hmac, body); return new Uint8Array(signature).reduce((str, byte) => str + byte.toString(16).padStart(2, "0"), ""); } +async function getSecYaHeaders(secType, session, body, path) { + const { secretKey, uuid } = session; + const sign = await getSignature(body); + const token = `${uuid}:${path}:${config.componentVersion}`; + const tokenBody = utf8Encoder.encode(token); + const tokenSign = await getSignature(tokenBody); + return { + [`${secType}-Signature`]: sign, + [`Sec-${secType}-Sk`]: secretKey, + [`Sec-${secType}-Token`]: `${tokenSign}:${token}`, + }; +} function getUUID() { const hexDigits = "0123456789ABCDEF"; let uuid = ""; @@ -4254,7 +4266,7 @@ class VimeoHelper extends BaseHelper { API_KEY = ""; DEFAULT_SITE_ORIGIN = "https://vimeo.com"; SITE_ORIGIN = this.isPrivatePlayer() - ? this.service?.url?.slice(0, -1) ?? this.DEFAULT_SITE_ORIGIN + ? (this.service?.url?.slice(0, -1) ?? this.DEFAULT_SITE_ORIGIN) : this.DEFAULT_SITE_ORIGIN; isErrorData(data) { return Object.hasOwn(data, "error"); @@ -4458,7 +4470,7 @@ class VimeoHelper extends BaseHelper { } return embedId?.startsWith("video/") ? embedId.replace("video/", "") - : embedId ?? /[^/]+$/.exec(url.pathname)?.[0]; + : (embedId ?? /[^/]+$/.exec(url.pathname)?.[0]); } } @@ -4971,7 +4983,6 @@ class VOTClient { requestLang; responseLang; userAgent = config.userAgent; - componentVersion = config.componentVersion; paths = { videoTranslation: "/video-translation/translate", videoTranslationFailAudio: "/video-translation/fail-audio-js", @@ -5100,13 +5111,12 @@ class VOTClient { } async translateVideoYAImpl({ videoData, requestLang = this.requestLang, responseLang = this.responseLang, translationHelp = null, headers = {}, shouldSendFailedAudio = true, }) { const { url, duration = config.defaultDuration } = videoData; - const { secretKey, uuid } = await this.getSession("video-translation"); + const session = await this.getSession("video-translation"); const body = yandexProtobuf.encodeTranslationRequest(url, duration, requestLang, responseLang, translationHelp); - const sign = await getSignature(body); - const res = await this.request(this.paths.videoTranslation, body, { - "Vtrans-Signature": sign, - "Sec-Vtrans-Sk": secretKey, - "Sec-Vtrans-Token": `${sign}:${uuid}:${this.paths.videoTranslation}:${this.componentVersion}`, + const path = this.paths.videoTranslation; + const vtransHeaders = await getSecYaHeaders("Vtrans", session, body, path); + const res = await this.request(path, body, { + ...vtransHeaders, ...headers, }); if (!res.success) { @@ -5199,13 +5209,12 @@ class VOTClient { return res; } async requestVtransAudio(url, translationId, headers = {}) { - const { secretKey, uuid } = await this.getSession("video-translation"); + const session = await this.getSession("video-translation"); const body = yandexProtobuf.encodeTranslationAudioRequest(url, translationId); - const sign = await getSignature(body); - const res = await this.request(this.paths.videoTranslationAudio, body, { - "Vtrans-Signature": sign, - "Sec-Vtrans-Sk": secretKey, - "Sec-Vtrans-Token": `${sign}:${uuid}:${this.paths.videoTranslationAudio}:${this.componentVersion}`, + const path = this.paths.videoTranslationAudio; + const vtransHeaders = await getSecYaHeaders("Vtrans", session, body, path); + const res = await this.request(path, body, { + ...vtransHeaders, ...headers, }, "PUT"); if (!res.success) { @@ -5240,13 +5249,12 @@ class VOTClient { subtitles: [] } } - const { secretKey, uuid } = await this.getSession("video-translation"); + const session = await this.getSession("video-translation"); const body = yandexProtobuf.encodeSubtitlesRequest(url, requestLang); - const sign = await getSignature(body); - const res = await this.request(this.paths.videoSubtitles, body, { - "Vsubs-Signature": await getSignature(body), - "Sec-Vsubs-Sk": secretKey, - "Sec-Vsubs-Token": `${sign}:${uuid}:${this.paths.videoSubtitles}:${this.componentVersion}`, + const path = this.paths.videoSubtitles; + const vsubsHeaders = await getSecYaHeaders("Vsubs", session, body, path); + const res = await this.request(path, body, { + ...vsubsHeaders, ...headers, }); if (!res.success) { @@ -5255,13 +5263,12 @@ class VOTClient { return yandexProtobuf.decodeSubtitlesResponse(res.data); } async pingStream({ pingId, headers = {} }) { - const { secretKey, uuid } = await this.getSession("video-translation"); + const session = await this.getSession("video-translation"); const body = yandexProtobuf.encodeStreamPingRequest(pingId); - const sign = await getSignature(body); - const res = await this.request(this.paths.streamPing, body, { - "Vtrans-Signature": await getSignature(body), - "Sec-Vtrans-Sk": secretKey, - "Sec-Vtrans-Token": `${sign}:${uuid}:${this.paths.streamPing}:${this.componentVersion}`, + const path = this.paths.streamPing; + const vtransHeaders = await getSecYaHeaders("Vtrans", session, body, path); + const res = await this.request(path, body, { + ...vtransHeaders, ...headers, }); if (!res.success) { @@ -5274,13 +5281,12 @@ class VOTClient { if (this.isCustomLink(url)) { throw new VOTLocalizedError("VOTStreamNotSupportedUrl"); } - const { secretKey, uuid } = await this.getSession("video-translation"); + const session = await this.getSession("video-translation"); const body = yandexProtobuf.encodeStreamRequest(url, requestLang, responseLang); - const sign = await getSignature(body); - const res = await this.request(this.paths.streamTranslation, body, { - "Vtrans-Signature": await getSignature(body), - "Sec-Vtrans-Sk": secretKey, - "Sec-Vtrans-Token": `${sign}:${uuid}:${this.paths.streamTranslation}:${this.componentVersion}`, + const path = this.paths.streamTranslation; + const vtransHeaders = await getSecYaHeaders("Vtrans", session, body, path); + const res = await this.request(path, body, { + ...vtransHeaders, ...headers, }); if (!res.success) { @@ -10091,9 +10097,8 @@ class VideoHandler { this.votVideoVolumeSlider.input.addEventListener("input", (e) => { const value = Number(e.target.value); - this.votVideoVolumeSlider.label.querySelector( - "strong", - ).textContent = `${value}%`; + this.votVideoVolumeSlider.label.querySelector("strong").textContent = + `${value}%`; this.setVideoVolume(value / 100); if (this.data.syncVolume) { this.syncVolumeWrapper("video", value); @@ -10940,9 +10945,8 @@ class VideoHandler { const newSlidersVolume = Math.round(videoVolume); this.votVideoVolumeSlider.input.value = newSlidersVolume; - this.votVideoVolumeSlider.label.querySelector( - "strong", - ).textContent = `${newSlidersVolume}%`; + this.votVideoVolumeSlider.label.querySelector("strong").textContent = + `${newSlidersVolume}%`; ui.updateSlider(this.votVideoVolumeSlider.input); if (this.data.syncVolume === 1) { diff --git a/package-lock.json b/package-lock.json index 517ddf4c..842df3ea 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "chaimu": "^1.0.2", "lit": "^3.2.1", "requestidlecallback-polyfill": "^1.0.2", - "vot.js": "^1.3.8" + "vot.js": "^1.3.9" }, "devDependencies": { "@types/bun": "^1.1.13", @@ -31,6 +31,7 @@ "npm-run-all2": "^7.0.1", "oxlint": "^0.11.0", "patch-package": "^8.0.0", + "postinstall-postinstall": "^2.1.0", "sass": "^1.80.6", "ts-loader": "^9.5.1", "typescript": "^5.6.3", @@ -42,27 +43,24 @@ }, "node_modules/@aashutoshrathi/word-wrap": { "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/@discoveryjs/json-ext": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.0.0" } }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, + "license": "MIT", "dependencies": { "eslint-visitor-keys": "^3.3.0" }, @@ -73,11 +71,21 @@ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/@eslint/config-array": { "version": "0.18.0", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz", - "integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@eslint/object-schema": "^2.1.4", "debug": "^4.3.1", @@ -89,8 +97,6 @@ }, "node_modules/@eslint/core": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.7.0.tgz", - "integrity": "sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw==", "dev": true, "license": "Apache-2.0", "engines": { @@ -99,9 +105,8 @@ }, "node_modules/@eslint/eslintrc": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", - "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -122,9 +127,8 @@ }, "node_modules/@eslint/eslintrc/node_modules/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -136,10 +140,62 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/@eslint/eslintrc/node_modules/debug": { + "version": "4.3.4", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@eslint/eslintrc/node_modules/espree": { + "version": "10.1.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.12.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/espree/node_modules/acorn": { + "version": "8.12.1", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.0.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/@eslint/eslintrc/node_modules/globals": { "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, "license": "MIT", "engines": { @@ -149,16 +205,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "5.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@eslint/js": { "version": "9.14.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.14.0.tgz", - "integrity": "sha512-pFoEtFWCPyDOl+C6Ift+wC7Ro89otjigCf5vcuWqWgqNSQbRrpjSvdeE6ofLz4dHmyxD5f7gIdGT4+p36L6Twg==", "dev": true, "license": "MIT", "engines": { @@ -167,17 +228,14 @@ }, "node_modules/@eslint/object-schema": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", - "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@eslint/plugin-kit": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.0.tgz", - "integrity": "sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -189,8 +247,6 @@ }, "node_modules/@humanfs/core": { "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", - "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -199,8 +255,6 @@ }, "node_modules/@humanfs/node": { "version": "0.16.6", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", - "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -213,8 +267,6 @@ }, "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", - "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -227,9 +279,8 @@ }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12.22" }, @@ -240,8 +291,6 @@ }, "node_modules/@humanwhocodes/retry": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.0.tgz", - "integrity": "sha512-xnRgu9DxZbkWak/te3fcytNyp8MTbuiZIaueg2rgEvBuN55n04nwLYLU9TX/VVlusc9L2ZNXi99nUFNkHXtr5g==", "dev": true, "license": "Apache-2.0", "engines": { @@ -254,9 +303,8 @@ }, "node_modules/@jest/schemas": { "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, + "license": "MIT", "dependencies": { "@sinclair/typebox": "^0.27.8" }, @@ -266,9 +314,8 @@ }, "node_modules/@jest/types": { "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", @@ -281,15 +328,22 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/@jest/types/node_modules/@types/node": { + "version": "20.8.9", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "version": "0.3.4", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.2.1", + "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" + "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { "node": ">=6.0.0" @@ -297,27 +351,24 @@ }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "version": "1.1.2", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/source-map": { "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -325,15 +376,13 @@ }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "version": "0.3.23", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -341,9 +390,8 @@ }, "node_modules/@jsonjoy.com/base64": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=10.0" }, @@ -356,10 +404,9 @@ } }, "node_modules/@jsonjoy.com/json-pack": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.1.0.tgz", - "integrity": "sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==", + "version": "1.0.4", "dev": true, + "license": "Apache-2.0", "dependencies": { "@jsonjoy.com/base64": "^1.1.1", "@jsonjoy.com/util": "^1.1.2", @@ -378,10 +425,9 @@ } }, "node_modules/@jsonjoy.com/util": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.3.0.tgz", - "integrity": "sha512-Cebt4Vk7k1xHy87kHY7KSPLT77A7Ev7IfOblyLZhtYEhrdQ6fX4EoLq3xOQ3O/DRMEh2ok5nyC180E+ABS8Wmw==", + "version": "1.1.3", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=10.0" }, @@ -395,125 +441,22 @@ }, "node_modules/@leichtgewicht/ip-codec": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", - "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@lit-labs/ssr-dom-shim": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.1.tgz", - "integrity": "sha512-wx4aBmgeGvFmOKucFKY+8VFJSYZxs9poN3SDNQFF6lT6NrQUnHiPB2PWz2sc4ieEcAaYYzN+1uWahEeTq2aRIQ==" + "version": "1.2.0", + "license": "BSD-3-Clause" }, "node_modules/@lit/reactive-element": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.4.tgz", - "integrity": "sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==", + "license": "BSD-3-Clause", "dependencies": { "@lit-labs/ssr-dom-shim": "^1.2.0" } }, - "node_modules/@oxlint/darwin-arm64": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@oxlint/darwin-arm64/-/darwin-arm64-0.11.0.tgz", - "integrity": "sha512-qQ1C5yvRYECp+FP8DCOSqNX4+e72xXyApJ2O8QyIeYFuGGF2MoDVQz3NYJEOjOfArZ9YXGsELwM3UFtjTGIZVg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@oxlint/darwin-x64": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@oxlint/darwin-x64/-/darwin-x64-0.11.0.tgz", - "integrity": "sha512-pAqp6/6+mAIPr8WBndzmEuRbcXW8WNdn80hd8fLeR9teJI8eMpTkYL6kQIU7VjJ3NxpmzBLO7nh979/bwmmuBQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@oxlint/linux-arm64-gnu": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@oxlint/linux-arm64-gnu/-/linux-arm64-gnu-0.11.0.tgz", - "integrity": "sha512-RmpjCWjX0RJ1MdIcqGQsOlXh9WgXnVgVolZLCs8MHqNuYtaIA+0VOxOhJOr7CQ0HmwV+ysPTAiQ2SVSI2tVJQQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@oxlint/linux-arm64-musl": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@oxlint/linux-arm64-musl/-/linux-arm64-musl-0.11.0.tgz", - "integrity": "sha512-totBeaOeZlblKRpSZi3svVWpJjFlhxR7Xzrh3nhPTgHMM3696qjzyb80Yg0K8gAlOrIDlBblLG0JnaxvdM2yjg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@oxlint/linux-x64-gnu": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@oxlint/linux-x64-gnu/-/linux-x64-gnu-0.11.0.tgz", - "integrity": "sha512-tXiJ97WH4vwTIkGMnXYPx5NqwQiYLW9MbmnGkKkm5Xv/wpAaN761PkHRJT0zsYoAgoU3nZVp3qhit9MpHq1SQg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@oxlint/linux-x64-musl": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@oxlint/linux-x64-musl/-/linux-x64-musl-0.11.0.tgz", - "integrity": "sha512-LgjgD80fiz37g31t/jMm9kyDM31WPjcTkXXXU702WQsdhujXVUZDWid9/QeVvi51EVufyyekaTYgNR8REVVZZg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@oxlint/win32-arm64": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@oxlint/win32-arm64/-/win32-arm64-0.11.0.tgz", - "integrity": "sha512-lfANFSWt0vU6x9JQYeMEy6uy8wniZGYQt0nT45P3BwXIMhAJbEC3yEX+bP5x8eTQrgkDu4dwIDURGCeeUL/NdA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, "node_modules/@oxlint/win32-x64": { "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@oxlint/win32-x64/-/win32-x64-0.11.0.tgz", - "integrity": "sha512-5CHtAp82xbv0jnh/HGi3QE0ANBr3+R338MA0wgZXc7477Vuri0aSK0T9oRU+K/pVloPVJaWKSDCCZoiZIYckzg==", "cpu": [ "x64" ], @@ -526,8 +469,6 @@ }, "node_modules/@parcel/watcher": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.0.tgz", - "integrity": "sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -561,18 +502,16 @@ "@parcel/watcher-win32-x64": "2.5.0" } }, - "node_modules/@parcel/watcher-android-arm64": { + "node_modules/@parcel/watcher-win32-x64": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.0.tgz", - "integrity": "sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==", "cpu": [ - "arm64" + "x64" ], "dev": true, "license": "MIT", "optional": true, "os": [ - "android" + "win32" ], "engines": { "node": ">= 10.0.0" @@ -582,256 +521,41 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/watcher-darwin-arm64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.0.tgz", - "integrity": "sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==", - "cpu": [ - "arm64" - ], + "node_modules/@parcel/watcher/node_modules/micromatch": { + "version": "4.0.8", "dev": true, "license": "MIT", "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10.0.0" + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-darwin-x64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.0.tgz", - "integrity": "sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "node": ">=8.6" } }, - "node_modules/@parcel/watcher-freebsd-x64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.0.tgz", - "integrity": "sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==", - "cpu": [ - "x64" - ], + "node_modules/@parcel/watcher/node_modules/micromatch/node_modules/braces": { + "version": "3.0.3", "dev": true, "license": "MIT", "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10.0.0" + "dependencies": { + "fill-range": "^7.1.1" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm-glibc": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.0.tgz", - "integrity": "sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "node": ">=8" } }, - "node_modules/@parcel/watcher-linux-arm-musl": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.0.tgz", - "integrity": "sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==", - "cpu": [ - "arm" - ], + "node_modules/@parcel/watcher/node_modules/micromatch/node_modules/braces/node_modules/fill-range": { + "version": "7.1.1", "dev": true, "license": "MIT", "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" + "dependencies": { + "to-regex-range": "^5.0.1" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm64-glibc": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.0.tgz", - "integrity": "sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm64-musl": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.0.tgz", - "integrity": "sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-x64-glibc": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.0.tgz", - "integrity": "sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-x64-musl": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.0.tgz", - "integrity": "sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-arm64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.0.tgz", - "integrity": "sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-ia32": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.0.tgz", - "integrity": "sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-x64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.0.tgz", - "integrity": "sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "engines": { + "node": ">=8" } }, "node_modules/@protobufjs/aspromise": { @@ -900,33 +624,44 @@ }, "node_modules/@sinclair/typebox": { "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/body-parser": { "version": "1.19.4", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.4.tgz", - "integrity": "sha512-N7UDG0/xiPQa2D/XrVJXjkWbpqHCd2sBaB32ggRF2l83RhPfamgKGF8gwwqyksS95qUS5ZYF9aF+lLPRlwI2UA==", "dev": true, + "license": "MIT", "dependencies": { "@types/connect": "*", "@types/node": "*" } }, + "node_modules/@types/body-parser/node_modules/@types/node": { + "version": "20.8.9", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, "node_modules/@types/bonjour": { "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", - "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, + "node_modules/@types/bonjour/node_modules/@types/node": { + "version": "20.8.9", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, "node_modules/@types/bun": { "version": "1.1.13", - "resolved": "https://registry.npmjs.org/@types/bun/-/bun-1.1.13.tgz", - "integrity": "sha512-KmQxSBgVWCl6RSuerlLGZlIWfdxkKqat0nxN61+qu4y1KDn0Ll3j7v1Pl8GnaL3a/U6GGWVTJh75ap62kR1E8Q==", "dev": true, "license": "MIT", "dependencies": { @@ -935,28 +670,41 @@ }, "node_modules/@types/connect": { "version": "3.4.37", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.37.tgz", - "integrity": "sha512-zBUSRqkfZ59OcwXon4HVxhx5oWCJmc0OtBTK05M+p0dYjgN6iTwIL2T/WbsQZrEsdnwaF9cWQ+azOnpPvIqY3Q==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/connect-history-api-fallback": { "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", - "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", "dev": true, + "license": "MIT", "dependencies": { "@types/express-serve-static-core": "*", "@types/node": "*" } }, + "node_modules/@types/connect-history-api-fallback/node_modules/@types/node": { + "version": "20.8.9", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/connect/node_modules/@types/node": { + "version": "20.8.9", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, "node_modules/@types/eslint": { "version": "8.56.10", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz", - "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "*", "@types/json-schema": "*" @@ -964,8 +712,6 @@ }, "node_modules/@types/eslint-scope": { "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", "dev": true, "license": "MIT", "dependencies": { @@ -973,18 +719,25 @@ "@types/estree": "*" } }, + "node_modules/@types/eslint/node_modules/@types/estree": { + "version": "1.0.5", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/eslint/node_modules/@types/json-schema": { + "version": "7.0.14", + "dev": true, + "license": "MIT" + }, "node_modules/@types/estree": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "dev": true, "license": "MIT" }, "node_modules/@types/express": { "version": "4.17.21", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", - "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", @@ -994,9 +747,8 @@ }, "node_modules/@types/express-serve-static-core": { "version": "4.17.39", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.39.tgz", - "integrity": "sha512-BiEUfAiGCOllomsRAZOiMFP7LAnrifHpt56pc4Z7l9K6ACyN06Ns1JLMBxwkfLOjJRlSf06NwWsT7yzfpaVpyQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -1004,166 +756,200 @@ "@types/send": "*" } }, + "node_modules/@types/express-serve-static-core/node_modules/@types/node": { + "version": "20.8.9", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, "node_modules/@types/http-errors": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.3.tgz", - "integrity": "sha512-pP0P/9BnCj1OVvQR2lF41EkDG/lWWnDyA203b/4Fmi2eTyORnBtcDoKDwjWQthELrBvWkMOrvSOnZ8OVlW6tXA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/http-proxy": { "version": "1.17.13", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.13.tgz", - "integrity": "sha512-GkhdWcMNiR5QSQRYnJ+/oXzu0+7JJEPC8vkWXK351BkhjraZF+1W13CUYARUvX9+NqIU2n6YHA4iwywsc/M6Sw==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, + "node_modules/@types/http-proxy/node_modules/@types/node": { + "version": "20.8.9", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha512-zONci81DZYCZjiLe0r6equvZut0b+dBRPBN5kBDjsONnutYNtJMoWQ9uR2RkL1gLG9NMTzvf+29e5RFfPbeKhQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/istanbul-lib-report": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.2.tgz", - "integrity": "sha512-8toY6FgdltSdONav1XtUHl4LN1yTmLza+EuDazb/fEmRNCwjyqNVIQWs2IfC74IqjHkREs/nQ2FWq5kZU9IC0w==", "dev": true, + "license": "MIT", "dependencies": { "@types/istanbul-lib-coverage": "*" } }, "node_modules/@types/istanbul-reports": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.3.tgz", - "integrity": "sha512-1nESsePMBlf0RPRffLZi5ujYh7IH1BWL4y9pr+Bn3cJBdxz+RTP8bUFljLz9HvzhhOSWKdyBZ4DIivdL6rvgZg==", "dev": true, + "license": "MIT", "dependencies": { "@types/istanbul-lib-report": "*" } }, "node_modules/@types/json-schema": { "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true, "license": "MIT" }, "node_modules/@types/mime": { "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.4.tgz", - "integrity": "sha512-1Gjee59G25MrQGk8bsNvC6fxNiRgUlGn2wlhGf95a59DrprnnHk80FIMMFG9XHMdrfsuA119ht06QPDXA1Z7tw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/node": { "version": "20.12.14", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.14.tgz", - "integrity": "sha512-scnD59RpYD91xngrQQLGkE+6UrHUPzeKZWhhjBSa3HSkwjbQc38+q3RoIVEwxQGRw3M+j5hpNAM+lgV3cVormg==", + "license": "MIT", "dependencies": { "undici-types": "~5.26.4" } }, "node_modules/@types/node-forge": { "version": "1.3.11", - "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", - "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, + "node_modules/@types/node-forge/node_modules/@types/node": { + "version": "20.8.9", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, "node_modules/@types/qs": { "version": "6.9.9", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.9.tgz", - "integrity": "sha512-wYLxw35euwqGvTDx6zfY1vokBFnsK0HNrzc6xNHchxfO2hpuRg74GbkEW7e3sSmPvj0TjCDT1VCa6OtHXnubsg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/range-parser": { "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.6.tgz", - "integrity": "sha512-+0autS93xyXizIYiyL02FCY8N+KkKPhILhcUSA276HxzreZ16kl+cmwvV2qAM/PuCCwPXzOXOWhiPcw20uSFcA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/retry": { "version": "0.12.2", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", - "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/send": { "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.3.tgz", - "integrity": "sha512-/7fKxvKUoETxjFUsuFlPB9YndePpxxRAOfGC/yJdc9kTjTeP5kRCTzfnE8kPUKCeyiyIZu0YQ76s50hCedI1ug==", "dev": true, + "license": "MIT", "dependencies": { "@types/mime": "^1", "@types/node": "*" } }, + "node_modules/@types/send/node_modules/@types/node": { + "version": "20.8.9", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, "node_modules/@types/serve-index": { "version": "1.9.4", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", - "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", "dev": true, + "license": "MIT", "dependencies": { "@types/express": "*" } }, "node_modules/@types/serve-static": { "version": "1.15.5", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", - "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/http-errors": "*", "@types/mime": "*", "@types/node": "*" } }, + "node_modules/@types/serve-static/node_modules/@types/node": { + "version": "20.8.9", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, "node_modules/@types/sockjs": { "version": "0.3.36", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", - "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, + "node_modules/@types/sockjs/node_modules/@types/node": { + "version": "20.8.9", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, "node_modules/@types/trusted-types": { "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", - "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==" + "license": "MIT" }, "node_modules/@types/ws": { "version": "8.5.10", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", - "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, + "node_modules/@types/ws/node_modules/@types/node": { + "version": "20.8.9", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, "node_modules/@types/yargs": { "version": "17.0.29", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.29.tgz", - "integrity": "sha512-nacjqA3ee9zRF/++a3FUY1suHTFKZeHba2n8WeDw9cCVdmzmHpIxyzOJBcpHvvEmS8E9KqWlSnWHUkOrkhWcvA==", "dev": true, + "license": "MIT", "dependencies": { "@types/yargs-parser": "*" } }, "node_modules/@types/yargs-parser": { "version": "21.0.2", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.2.tgz", - "integrity": "sha512-5qcvofLPbfjmBfKaLfj/+f+Sbd6pN4zl7w7VSVI5uz7m9QZTuB2aZAa2uo1wHFBNN2x6g/SoTkXmd8mQnQF2Cw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/ast": { "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", - "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", "dev": true, + "license": "MIT", "dependencies": { "@webassemblyjs/helper-numbers": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6" @@ -1171,27 +957,23 @@ }, "node_modules/@webassemblyjs/floating-point-hex-parser": { "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-api-error": { "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-buffer": { "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", - "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-numbers": { "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", "dev": true, + "license": "MIT", "dependencies": { "@webassemblyjs/floating-point-hex-parser": "1.11.6", "@webassemblyjs/helper-api-error": "1.11.6", @@ -1200,15 +982,13 @@ }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", - "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", "dev": true, + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-buffer": "1.12.1", @@ -1218,33 +998,29 @@ }, "node_modules/@webassemblyjs/ieee754": { "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", "dev": true, + "license": "MIT", "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "node_modules/@webassemblyjs/leb128": { "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/wasm-edit": { "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", - "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", "dev": true, + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-buffer": "1.12.1", @@ -1258,9 +1034,8 @@ }, "node_modules/@webassemblyjs/wasm-gen": { "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", - "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", "dev": true, + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", @@ -1271,9 +1046,8 @@ }, "node_modules/@webassemblyjs/wasm-opt": { "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", - "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", "dev": true, + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-buffer": "1.12.1", @@ -1283,9 +1057,8 @@ }, "node_modules/@webassemblyjs/wasm-parser": { "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", - "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", "dev": true, + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-api-error": "1.11.6", @@ -1297,9 +1070,8 @@ }, "node_modules/@webassemblyjs/wast-printer": { "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", - "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", "dev": true, + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.12.1", "@xtuc/long": "4.2.2" @@ -1307,9 +1079,8 @@ }, "node_modules/@webpack-cli/configtest": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", - "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.15.0" }, @@ -1320,9 +1091,8 @@ }, "node_modules/@webpack-cli/info": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", - "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.15.0" }, @@ -1333,9 +1103,8 @@ }, "node_modules/@webpack-cli/serve": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", - "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.15.0" }, @@ -1351,27 +1120,23 @@ }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@xtuc/long": { "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/@yarnpkg/lockfile": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/accepts": { "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dev": true, + "license": "MIT", "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" @@ -1382,8 +1147,6 @@ }, "node_modules/acorn": { "version": "8.14.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, "license": "MIT", "bin": { @@ -1395,34 +1158,16 @@ }, "node_modules/acorn-jsx": { "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "node_modules/ajv-formats": { + "version": "2.1.1", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^8.0.0" }, @@ -1435,20 +1180,38 @@ } } }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.12.0", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/ajv/node_modules/json-schema-traverse": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, "node_modules/ansi-colors": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/ansi-escapes": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", - "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", "dev": true, + "license": "MIT", "dependencies": { "environment": "^1.0.0" }, @@ -1461,45 +1224,27 @@ }, "node_modules/ansi-html-community": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", "dev": true, "engines": [ "node >= 0.8.0" ], + "license": "Apache-2.0", "bin": { "ansi-html": "bin/ansi-html" } }, "node_modules/ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, + "license": "MIT", "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/anymatch": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -1510,51 +1255,44 @@ }, "node_modules/argparse": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "dev": true, + "license": "Python-2.0" }, "node_modules/array-flatten": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/at-least-node": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", "dev": true, + "license": "ISC", "engines": { "node": ">= 4.0.0" } }, "node_modules/balanced-match": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/batch": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/binary-extensions": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/body-parser": { "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", "dev": true, + "license": "MIT", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", @@ -1576,33 +1314,29 @@ }, "node_modules/body-parser/node_modules/bytes": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/body-parser/node_modules/debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } }, - "node_modules/body-parser/node_modules/ms": { + "node_modules/body-parser/node_modules/debug/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/bonjour-service": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz", - "integrity": "sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", "multicast-dns": "^7.2.5" @@ -1610,26 +1344,23 @@ }, "node_modules/bowser": { "version": "2.11.0", - "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", - "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==" + "license": "MIT" }, "node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "version": "3.0.2", "dev": true, + "license": "MIT", "dependencies": { - "fill-range": "^7.1.1" + "fill-range": "^7.0.1" }, "engines": { "node": ">=8" @@ -1637,24 +1368,19 @@ }, "node_modules/browser-extension-url-match": { "version": "0.3.3", - "resolved": "https://registry.npmjs.org/browser-extension-url-match/-/browser-extension-url-match-0.3.3.tgz", - "integrity": "sha512-x7uphFW6fxHF8/RfNqUQomZL4KsKgNb3f8ZrLsYsxSVTaOyeg9I3w/8iuQ2I51vVmrtiYiv37Tfq5gQyMN3j2Q==", "dev": true, + "license": "MIT", "dependencies": { "fancy-regex": "^0.4.3" } }, "node_modules/browser-id3-writer": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/browser-id3-writer/-/browser-id3-writer-6.1.0.tgz", - "integrity": "sha512-99mQN3GAZlqWnbA0cispSAab9uJJzzv86ffoA/w6ohfqAi/5qOGbEhh0fRAQMrnhsOBsy89mqMc+JdnaWtJObw==", "dev": true, "license": "MIT" }, "node_modules/browserslist": { "version": "4.24.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", - "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", "dev": true, "funding": [ { @@ -1686,14 +1412,11 @@ }, "node_modules/buffer-from": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/bun-types": { "version": "1.1.34", - "resolved": "https://registry.npmjs.org/bun-types/-/bun-types-1.1.34.tgz", - "integrity": "sha512-br5QygTEL/TwB4uQOb96Ky22j4Gq2WxWH/8Oqv20fk5HagwKXo/akB+LiYgSfzexCt6kkcUaVm+bKiPl71xPvw==", "dev": true, "license": "MIT", "dependencies": { @@ -1703,9 +1426,8 @@ }, "node_modules/bundle-name": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", - "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", "dev": true, + "license": "MIT", "dependencies": { "run-applescript": "^7.0.0" }, @@ -1718,18 +1440,16 @@ }, "node_modules/bytes": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/call-bind": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dev": true, + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -1746,17 +1466,14 @@ }, "node_modules/callsites": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/caniuse-lite": { "version": "1.0.30001677", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001677.tgz", - "integrity": "sha512-fmfjsOlJUpMWu+mAAtZZZHz7UEwsUxIIvu1TJfO1HqFQvB/B+ii0xr9B5HpbZY/mC4XZ8SvjHJqtAY6pDPQEog==", "dev": true, "funding": [ { @@ -1776,8 +1493,6 @@ }, "node_modules/chaimu": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/chaimu/-/chaimu-1.0.2.tgz", - "integrity": "sha512-4JtFq1oVUtycdFqPa3b2EqisZj4CVdU4bi7qUJz83SuG7vOMjNctddalbkV+ttSJyBxAWoXU4jXyEUmuASS7FA==", "license": "MIT", "dependencies": { "soundtouchjs": "^0.1.30" @@ -1785,9 +1500,8 @@ }, "node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -1799,55 +1513,30 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "node_modules/chalk/node_modules/ansi-styles": { + "version": "4.3.0", "dev": true, + "license": "MIT", "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">= 8.10.0" + "node": ">=8" }, "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/chrome-trace-event": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0" } }, "node_modules/ci-info": { "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", "dev": true, "funding": [ { @@ -1855,15 +1544,15 @@ "url": "https://github.com/sponsors/sibiraj-s" } ], + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/cli-cursor": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", - "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", "dev": true, + "license": "MIT", "dependencies": { "restore-cursor": "^5.0.0" }, @@ -1876,9 +1565,8 @@ }, "node_modules/cli-truncate": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", - "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", "dev": true, + "license": "MIT", "dependencies": { "slice-ansi": "^5.0.0", "string-width": "^7.0.0" @@ -1892,9 +1580,8 @@ }, "node_modules/cli-truncate/node_modules/ansi-regex": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -1904,15 +1591,13 @@ }, "node_modules/cli-truncate/node_modules/emoji-regex": { "version": "10.3.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", - "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cli-truncate/node_modules/string-width": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", @@ -1927,9 +1612,8 @@ }, "node_modules/cli-truncate/node_modules/strip-ansi": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -1942,9 +1626,8 @@ }, "node_modules/clone-deep": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, + "license": "MIT", "dependencies": { "is-plain-object": "^2.0.4", "kind-of": "^6.0.2", @@ -1956,9 +1639,8 @@ }, "node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -1968,27 +1650,18 @@ }, "node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/colorette": { "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/compressible": { "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", "dev": true, + "license": "MIT", "dependencies": { "mime-db": ">= 1.43.0 < 2" }, @@ -1998,9 +1671,8 @@ }, "node_modules/compression": { "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", "dev": true, + "license": "MIT", "dependencies": { "accepts": "~1.3.5", "bytes": "3.0.0", @@ -2016,45 +1688,39 @@ }, "node_modules/compression/node_modules/debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } }, - "node_modules/compression/node_modules/ms": { + "node_modules/compression/node_modules/debug/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/compression/node_modules/safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/connect-history-api-fallback": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", - "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8" } }, "node_modules/content-disposition": { "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "5.2.1" }, @@ -2062,41 +1728,55 @@ "node": ">= 0.6" } }, + "node_modules/content-disposition/node_modules/safe-buffer": { + "version": "5.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/content-type": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/cookie": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/cookie-signature": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/core-util-is": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cross-spawn": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -2106,11 +1786,29 @@ "node": ">= 8" } }, + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/which/node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.6", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -2125,15 +1823,13 @@ }, "node_modules/deep-is": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/default-browser": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", - "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", "dev": true, + "license": "MIT", "dependencies": { "bundle-name": "^4.1.0", "default-browser-id": "^5.0.0" @@ -2147,9 +1843,8 @@ }, "node_modules/default-browser-id": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", - "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -2159,9 +1854,8 @@ }, "node_modules/define-data-property": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -2176,9 +1870,8 @@ }, "node_modules/define-lazy-prop": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", - "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -2188,18 +1881,16 @@ }, "node_modules/depd": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/destroy": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" @@ -2207,9 +1898,8 @@ }, "node_modules/detect-libc": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", "dev": true, + "license": "Apache-2.0", "bin": { "detect-libc": "bin/detect-libc.js" }, @@ -2219,15 +1909,13 @@ }, "node_modules/detect-node": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/dns-packet": { "version": "5.6.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", - "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", "dev": true, + "license": "MIT", "dependencies": { "@leichtgewicht/ip-codec": "^2.0.1" }, @@ -2243,31 +1931,26 @@ }, "node_modules/ee-first": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/electron-to-chromium": { "version": "1.5.50", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.50.tgz", - "integrity": "sha512-eMVObiUQ2LdgeO1F/ySTXsvqvxb6ZH2zPGaMYsWzRDdOddUa77tdmI0ltg+L16UpbWdhPmuF3wIQYyQq65WfZw==", "dev": true, "license": "ISC" }, "node_modules/encodeurl": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/enhanced-resolve": { "version": "5.17.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", - "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -2278,9 +1961,8 @@ }, "node_modules/enquirer": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", - "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-colors": "^4.1.1", "strip-ansi": "^6.0.1" @@ -2290,10 +1972,9 @@ } }, "node_modules/envinfo": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.10.0.tgz", - "integrity": "sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw==", + "version": "7.13.0", "dev": true, + "license": "MIT", "bin": { "envinfo": "dist/cli.js" }, @@ -2303,9 +1984,8 @@ }, "node_modules/environment": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", - "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -2315,9 +1995,8 @@ }, "node_modules/es-define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.4" }, @@ -2327,23 +2006,19 @@ }, "node_modules/es-errors": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/es-module-lexer": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.1.tgz", - "integrity": "sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/escalade": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, "license": "MIT", "engines": { @@ -2352,15 +2027,13 @@ }, "node_modules/escape-html": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/escape-string-regexp": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -2370,8 +2043,6 @@ }, "node_modules/eslint": { "version": "9.14.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.14.0.tgz", - "integrity": "sha512-c2FHsVBr87lnUtjP4Yhvk4yEhKrQavGafRA/Se1ouse8PfbfC/Qh9Mxa00yWsZRlqeUB9raXip0aiiUZkgnr9g==", "dev": true, "license": "MIT", "dependencies": { @@ -2431,31 +2102,16 @@ }, "node_modules/eslint-plugin-oxlint": { "version": "0.11.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-oxlint/-/eslint-plugin-oxlint-0.11.0.tgz", - "integrity": "sha512-9CHYh1eLt2Z83ShLbvj79G6lqC2qLJBfsd7baGWOwDmLM2GXu2COi1r4tMMS2OI8gfB4s2uOgS8ZiYzHhN8uzQ==", "dev": true, "license": "MIT", "dependencies": { "jsonc-parser": "^3.3.1" } }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/eslint-webpack-plugin": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-4.2.0.tgz", - "integrity": "sha512-rsfpFQ01AWQbqtjgPRr2usVRxhWDuG0YDYcG8DJOteD3EFnpeuYuOwk0PQiN7PRBTqS6ElNdtPZPggj8If9WnA==", "dev": true, + "license": "MIT", "dependencies": { "@types/eslint": "^8.56.10", "jest-worker": "^29.7.0", @@ -2477,8 +2133,6 @@ }, "node_modules/eslint/node_modules/@eslint-community/regexpp": { "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, "license": "MIT", "engines": { @@ -2487,9 +2141,8 @@ }, "node_modules/eslint/node_modules/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -2503,8 +2156,6 @@ }, "node_modules/eslint/node_modules/eslint-scope": { "version": "8.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", - "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -2520,8 +2171,6 @@ }, "node_modules/eslint/node_modules/eslint-visitor-keys": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, "license": "Apache-2.0", "engines": { @@ -2533,14 +2182,11 @@ }, "node_modules/eslint/node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/espree": { "version": "10.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", - "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -2557,8 +2203,6 @@ }, "node_modules/espree/node_modules/eslint-visitor-keys": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, "license": "Apache-2.0", "engines": { @@ -2570,9 +2214,8 @@ }, "node_modules/esquery": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -2582,9 +2225,8 @@ }, "node_modules/esrecurse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -2594,51 +2236,40 @@ }, "node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/esutils": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/etag": { "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, "node_modules/events": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.x" } }, "node_modules/express": { "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", "dev": true, + "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", @@ -2678,57 +2309,68 @@ }, "node_modules/express/node_modules/debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } }, - "node_modules/express/node_modules/ms": { + "node_modules/express/node_modules/debug/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/express/node_modules/safe-buffer": { + "version": "5.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" }, "node_modules/fancy-regex": { "version": "0.4.3", - "resolved": "https://registry.npmjs.org/fancy-regex/-/fancy-regex-0.4.3.tgz", - "integrity": "sha512-c9R6Q7cM8pX5i0ZF3sAjYWPFsjGOUthPWPnkuZgDP8i6bzRtTnSXX5PJeWc34w/C0tbGj/bO3GSmdnEEj4K5PQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-deep-equal": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fastest-levenshtein": { "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4.9.1" } }, "node_modules/faye-websocket": { "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", "dev": true, + "license": "Apache-2.0", "dependencies": { "websocket-driver": ">=0.5.1" }, @@ -2738,9 +2380,8 @@ }, "node_modules/file-entry-cache": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, + "license": "MIT", "dependencies": { "flat-cache": "^4.0.0" }, @@ -2749,10 +2390,9 @@ } }, "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "version": "7.0.1", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -2762,9 +2402,8 @@ }, "node_modules/finalhandler": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", "dev": true, + "license": "MIT", "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", @@ -2780,24 +2419,21 @@ }, "node_modules/finalhandler/node_modules/debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } }, - "node_modules/finalhandler/node_modules/ms": { + "node_modules/finalhandler/node_modules/debug/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/find-up": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -2811,27 +2447,58 @@ }, "node_modules/find-yarn-workspace-root": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz", - "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "micromatch": "^4.0.2" } }, + "node_modules/find-yarn-workspace-root/node_modules/micromatch": { + "version": "4.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/find-yarn-workspace-root/node_modules/micromatch/node_modules/braces": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-yarn-workspace-root/node_modules/micromatch/node_modules/braces/node_modules/fill-range": { + "version": "7.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/flat": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true, + "license": "BSD-3-Clause", "bin": { "flat": "cli.js" } }, "node_modules/flat-cache": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, + "license": "MIT", "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.4" @@ -2841,15 +2508,12 @@ } }, "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", - "dev": true + "version": "3.2.9", + "dev": true, + "license": "ISC" }, "node_modules/follow-redirects": { "version": "1.15.5", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", - "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", "dev": true, "funding": [ { @@ -2857,6 +2521,7 @@ "url": "https://github.com/sponsors/RubenVerborgh" } ], + "license": "MIT", "engines": { "node": ">=4.0" }, @@ -2868,27 +2533,24 @@ }, "node_modules/forwarded": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/fresh": { "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/fs-extra": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, + "license": "MIT", "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -2901,38 +2563,21 @@ }, "node_modules/fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } + "license": "ISC" }, "node_modules/function-bind": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/get-east-asian-width": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz", - "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -2942,9 +2587,8 @@ }, "node_modules/get-intrinsic": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2", @@ -2961,10 +2605,8 @@ }, "node_modules/glob": { "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -2982,9 +2624,8 @@ }, "node_modules/glob-parent": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -2994,14 +2635,11 @@ }, "node_modules/glob-to-regexp": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/globals": { "version": "15.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.12.0.tgz", - "integrity": "sha512-1+gLErljJFhbOVyaetcwJiJ4+eLe45S2E7P5UiZ9xGfeq3ATQf5DOv9G7MH3gGbKQLkzmNh2DxfZwLdw+j6oTQ==", "dev": true, "license": "MIT", "engines": { @@ -3013,9 +2651,8 @@ }, "node_modules/gopd": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.3" }, @@ -3025,30 +2662,26 @@ }, "node_modules/graceful-fs": { "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/handle-thing": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/has-property-descriptors": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0" }, @@ -3058,9 +2691,8 @@ }, "node_modules/has-proto": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -3070,9 +2702,8 @@ }, "node_modules/has-symbols": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -3082,9 +2713,8 @@ }, "node_modules/hasown": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -3094,9 +2724,8 @@ }, "node_modules/hpack.js": { "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.1", "obuf": "^1.0.0", @@ -3106,9 +2735,8 @@ }, "node_modules/hpack.js/node_modules/readable-stream": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -3119,25 +2747,26 @@ "util-deprecate": "~1.0.1" } }, - "node_modules/hpack.js/node_modules/safe-buffer": { + "node_modules/hpack.js/node_modules/readable-stream/node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/hpack.js/node_modules/readable-stream/node_modules/safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "dev": true, + "license": "MIT" }, - "node_modules/hpack.js/node_modules/string_decoder": { + "node_modules/hpack.js/node_modules/readable-stream/node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/html-entities": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz", - "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==", "dev": true, "funding": [ { @@ -3148,19 +2777,18 @@ "type": "patreon", "url": "https://patreon.com/mdevils" } - ] + ], + "license": "MIT" }, "node_modules/http-deceiver": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/http-errors": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dev": true, + "license": "MIT", "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -3174,15 +2802,13 @@ }, "node_modules/http-parser-js": { "version": "0.5.8", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/http-proxy": { "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, + "license": "MIT", "dependencies": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", @@ -3194,9 +2820,8 @@ }, "node_modules/http-proxy-middleware": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", - "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", "dev": true, + "license": "MIT", "dependencies": { "@types/http-proxy": "^1.17.8", "http-proxy": "^1.18.1", @@ -3216,10 +2841,13 @@ } } }, + "node_modules/http-proxy/node_modules/eventemitter3": { + "version": "4.0.7", + "dev": true, + "license": "MIT" + }, "node_modules/husky": { "version": "9.1.6", - "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.6.tgz", - "integrity": "sha512-sqbjZKK7kf44hfdE94EoX8MZNk0n7HeW37O4YrVGCF4wzgQjp+akPAkfUK5LZ6KuR/6sqeAVuXHji+RzQgOn5A==", "dev": true, "license": "MIT", "bin": { @@ -3234,18 +2862,16 @@ }, "node_modules/hyperdyperid": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", - "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.18" } }, "node_modules/iconv-lite": { "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -3254,25 +2880,22 @@ } }, "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "version": "5.3.1", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/immutable": { "version": "4.3.4", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz", - "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/import-fresh": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -3285,10 +2908,9 @@ } }, "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "version": "3.2.0", "dev": true, + "license": "MIT", "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" @@ -3305,19 +2927,16 @@ }, "node_modules/imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.19" } }, "node_modules/inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -3325,33 +2944,29 @@ }, "node_modules/inherits": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/interpret": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", - "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.13.0" } }, "node_modules/ipaddr.js": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", - "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10" } }, "node_modules/is-binary-path": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, + "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -3360,50 +2975,28 @@ } }, "node_modules/is-core-module": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", - "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "version": "2.13.1", "dev": true, "license": "MIT", "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-docker": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", - "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-glob": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -3413,9 +3006,8 @@ }, "node_modules/is-inside-container": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", - "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", "dev": true, + "license": "MIT", "dependencies": { "is-docker": "^3.0.0" }, @@ -3429,11 +3021,24 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-inside-container/node_modules/is-docker": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-network-error": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.0.1.tgz", - "integrity": "sha512-OwQXkwBJeESyhFw+OumbJVD58BFBJJI5OM5S1+eyrDKlgDZPX2XNT5gXS56GSD3NPbbwUuMlR1Q71SRp5SobuQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=16" }, @@ -3443,18 +3048,16 @@ }, "node_modules/is-number": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/is-plain-obj": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -3464,9 +3067,8 @@ }, "node_modules/is-plain-object": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, + "license": "MIT", "dependencies": { "isobject": "^3.0.1" }, @@ -3474,47 +3076,18 @@ "node": ">=0.10.0" } }, - "node_modules/is-wsl": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", - "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", - "dev": true, - "dependencies": { - "is-inside-container": "^1.0.0" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, "node_modules/isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/jest-util": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -3527,11 +3100,18 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/jest-util/node_modules/@types/node": { + "version": "20.8.9", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, "node_modules/jest-worker": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", "jest-util": "^29.7.0", @@ -3542,11 +3122,18 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/jest-worker/node_modules/@types/node": { + "version": "20.8.9", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -3559,9 +3146,8 @@ }, "node_modules/js-yaml": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -3571,27 +3157,18 @@ }, "node_modules/json-buffer": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stable-stringify": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.1.1.tgz", - "integrity": "sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.5", "isarray": "^2.0.5", @@ -3607,28 +3184,23 @@ }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stable-stringify/node_modules/isarray": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/jsonc-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", - "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", "dev": true, "license": "MIT" }, "node_modules/jsonfile": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -3638,55 +3210,54 @@ }, "node_modules/jsonify": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", - "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", "dev": true, + "license": "Public Domain", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/keyv": { "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, + "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } }, "node_modules/kind-of": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/klaw-sync": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz", - "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.1.11" } }, "node_modules/launch-editor": { "version": "2.6.1", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz", - "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==", "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^1.0.0", "shell-quote": "^1.8.1" } }, + "node_modules/launch-editor/node_modules/picocolors": { + "version": "1.0.0", + "dev": true, + "license": "ISC" + }, "node_modules/levn": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -3697,8 +3268,6 @@ }, "node_modules/lightningcss": { "version": "1.28.1", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.28.1.tgz", - "integrity": "sha512-KRDkHlLlNj3DWh79CDt93fPlRJh2W1AuHV0ZSZAMMuN7lqlsZTV5842idfS1urWG8q9tc17velp1gCXhY7sLnQ==", "dev": true, "license": "MPL-2.0", "dependencies": { @@ -3714,209 +3283,18 @@ "optionalDependencies": { "lightningcss-darwin-arm64": "1.28.1", "lightningcss-darwin-x64": "1.28.1", - "lightningcss-freebsd-x64": "1.28.1", - "lightningcss-linux-arm-gnueabihf": "1.28.1", - "lightningcss-linux-arm64-gnu": "1.28.1", - "lightningcss-linux-arm64-musl": "1.28.1", - "lightningcss-linux-x64-gnu": "1.28.1", - "lightningcss-linux-x64-musl": "1.28.1", - "lightningcss-win32-arm64-msvc": "1.28.1", - "lightningcss-win32-x64-msvc": "1.28.1" - } - }, - "node_modules/lightningcss-darwin-arm64": { - "version": "1.28.1", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.28.1.tgz", - "integrity": "sha512-VG3vvzM0m/rguCdm76DdobNeNJnHK+jWcdkNLFWHLh9YCotRvbRIt45JxwcHlIF8TDqWStVLTdghq5NaigVCBQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-darwin-x64": { - "version": "1.28.1", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.28.1.tgz", - "integrity": "sha512-O7ORdislvKfMohFl4Iq7fxKqdJOuuxArcglVI3amuFO5DJ0wfV3Gxgi1JRo49slfr7OVzJQEHLG4muTWYM5cTQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-freebsd-x64": { - "version": "1.28.1", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.28.1.tgz", - "integrity": "sha512-b7sF89B31kYYijxVcFO7l5u6UNA862YstNu+3YbLl/IQKzveL4a5cwR5cdpG+OOhErg/c2u9WCmzZoX2I5GBvw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.28.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.28.1.tgz", - "integrity": "sha512-p61kXwvhUDLLzkWHjzSFfUBW/F0iy3jr3CWi3k8SKULtJEsJXTI9DqRm9EixxMSe2AMBQBt4auTYiQL4B1N51A==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.28.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.28.1.tgz", - "integrity": "sha512-iO+fN9hOMmzfwqcG2/BgUtMKD48H2JO/SXU44fyIwpY2veb65QF5xiRrQ9l1FwIxbGK3231KBYCtAqv+xf+NsQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.28.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.28.1.tgz", - "integrity": "sha512-dnMHeXEmCUzHHZjaDpQBYuBKcN9nPC3nPFKl70bcj5Bkn5EmkcgEqm5p035LKOgvAwk1XwLpQCML6pXmCwz0NQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.28.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.28.1.tgz", - "integrity": "sha512-7vWDISaMUn+oo2TwRdf2hl/BLdPxvywv9JKEqNZB/0K7bXwV4XE9wN/C2sAp1gGuh6QBA8lpjF4JIPt3HNlCHA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-musl": { - "version": "1.28.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.28.1.tgz", - "integrity": "sha512-IHCu9tVGP+x5BCpA2rF3D04DBokcBza/a8AuHQU+1AiMKubuMegPwcL7RatBgK4ztFHeYnnD5NdhwhRfYMAtNA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.28.1", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.28.1.tgz", - "integrity": "sha512-Erm72kHmMg/3h350PTseskz+eEGBM17Fuu79WW2Qqt0BfWSF1jHHc12lkJCWMYl5jcBHPs5yZdgNHtJ7IJS3Uw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "lightningcss-freebsd-x64": "1.28.1", + "lightningcss-linux-arm-gnueabihf": "1.28.1", + "lightningcss-linux-arm64-gnu": "1.28.1", + "lightningcss-linux-arm64-musl": "1.28.1", + "lightningcss-linux-x64-gnu": "1.28.1", + "lightningcss-linux-x64-musl": "1.28.1", + "lightningcss-win32-arm64-msvc": "1.28.1", + "lightningcss-win32-x64-msvc": "1.28.1" } }, "node_modules/lightningcss-win32-x64-msvc": { "version": "1.28.1", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.28.1.tgz", - "integrity": "sha512-ZPQtvx+uQBzrSdHH8p4H3M9Alue+x369TPZAA3b4K3d92FPhpZCuBG04+HQzspam9sVeID9mI6f3VRAs2ezaEA==", "cpu": [ "x64" ], @@ -3936,9 +3314,8 @@ }, "node_modules/lilconfig": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", - "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", "dev": true, + "license": "MIT", "engines": { "node": ">=14" }, @@ -3948,9 +3325,8 @@ }, "node_modules/lint-staged": { "version": "15.2.10", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.10.tgz", - "integrity": "sha512-5dY5t743e1byO19P9I4b3x8HJwalIznL5E1FWYnU6OWw33KxNBSLAc6Cy7F2PsFEO8FKnLwjwm5hx7aMF0jzZg==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "~5.3.0", "commander": "~12.1.0", @@ -3975,9 +3351,8 @@ }, "node_modules/lint-staged/node_modules/chalk": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "dev": true, + "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -3987,18 +3362,16 @@ }, "node_modules/lint-staged/node_modules/commander": { "version": "12.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", - "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/lint-staged/node_modules/debug": { "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -4013,9 +3386,8 @@ }, "node_modules/lint-staged/node_modules/execa": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^8.0.1", @@ -4036,9 +3408,8 @@ }, "node_modules/lint-staged/node_modules/get-stream": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", "dev": true, + "license": "MIT", "engines": { "node": ">=16" }, @@ -4048,18 +3419,16 @@ }, "node_modules/lint-staged/node_modules/human-signals": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=16.17.0" } }, "node_modules/lint-staged/node_modules/is-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -4067,11 +3436,44 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/lint-staged/node_modules/micromatch": { + "version": "4.0.8", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/lint-staged/node_modules/micromatch/node_modules/braces": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lint-staged/node_modules/micromatch/node_modules/braces/node_modules/fill-range": { + "version": "7.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/lint-staged/node_modules/mimic-fn": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -4081,9 +3483,8 @@ }, "node_modules/lint-staged/node_modules/npm-run-path": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^4.0.0" }, @@ -4096,9 +3497,8 @@ }, "node_modules/lint-staged/node_modules/onetime": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^4.0.0" }, @@ -4111,9 +3511,8 @@ }, "node_modules/lint-staged/node_modules/path-key": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -4123,9 +3522,8 @@ }, "node_modules/lint-staged/node_modules/signal-exit": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "engines": { "node": ">=14" }, @@ -4135,9 +3533,8 @@ }, "node_modules/lint-staged/node_modules/strip-final-newline": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -4147,9 +3544,8 @@ }, "node_modules/listr2": { "version": "8.2.4", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.4.tgz", - "integrity": "sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==", "dev": true, + "license": "MIT", "dependencies": { "cli-truncate": "^4.0.0", "colorette": "^2.0.20", @@ -4164,14 +3560,11 @@ }, "node_modules/listr2/node_modules/eventemitter3": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lit": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/lit/-/lit-3.2.1.tgz", - "integrity": "sha512-1BBa1E/z0O9ye5fZprPtdqnc0BFzxIxTTOO/tQFmyC/hj1O3jL4TfmLBw0WEwjAokdLwpclkvGgDJwTIh0/22w==", "license": "BSD-3-Clause", "dependencies": { "@lit/reactive-element": "^2.0.4", @@ -4181,8 +3574,7 @@ }, "node_modules/lit-element": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.1.0.tgz", - "integrity": "sha512-gSejRUQJuMQjV2Z59KAS/D4iElUhwKpIyJvZ9w+DIagIQjfJnhR20h2Q5ddpzXGS+fF0tMZ/xEYGMnKmaI/iww==", + "license": "BSD-3-Clause", "dependencies": { "@lit-labs/ssr-dom-shim": "^1.2.0", "@lit/reactive-element": "^2.0.4", @@ -4191,26 +3583,23 @@ }, "node_modules/lit-html": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.2.0.tgz", - "integrity": "sha512-pwT/HwoxqI9FggTrYVarkBKFN9MlTUpLrDHubTmW4SrkL3kkqW5gxwbxMMUnbbRHBC0WTZnYHcjDSCM559VyfA==", + "license": "BSD-3-Clause", "dependencies": { "@types/trusted-types": "^2.0.2" } }, "node_modules/loader-runner": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.11.5" } }, "node_modules/locate-path": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -4223,21 +3612,18 @@ }, "node_modules/lodash": { "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.merge": { "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/log-update": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", - "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", "dev": true, + "license": "MIT", "dependencies": { "ansi-escapes": "^7.0.0", "cli-cursor": "^5.0.0", @@ -4252,23 +3638,25 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-update/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "node_modules/log-update/node_modules/slice-ansi": { + "version": "7.1.0", "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" + }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/log-update/node_modules/ansi-styles": { + "node_modules/log-update/node_modules/slice-ansi/node_modules/ansi-styles": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -4276,11 +3664,10 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/log-update/node_modules/is-fullwidth-code-point": { + "node_modules/log-update/node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", - "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", "dev": true, + "license": "MIT", "dependencies": { "get-east-asian-width": "^1.0.0" }, @@ -4291,35 +3678,29 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-update/node_modules/slice-ansi": { + "node_modules/log-update/node_modules/strip-ansi": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", - "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^6.2.1", - "is-fullwidth-code-point": "^5.0.0" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">=18" + "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/log-update/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "node_modules/log-update/node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "6.0.1", "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, + "license": "MIT", "engines": { "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, "node_modules/long": { @@ -4328,24 +3709,33 @@ "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==", "license": "Apache-2.0" }, + "node_modules/lru-cache": { + "version": "6.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/media-typer": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/memfs": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.11.1.tgz", - "integrity": "sha512-LZcMTBAgqUUKNXZagcZxvXXfgF1bHX7Y7nQ0QyEiNbRJgE29GhgPd8Yna1VQcLlPiHt/5RFJMWYN9Uv/VPNvjQ==", + "version": "4.9.2", "dev": true, + "license": "Apache-2.0", "dependencies": { "@jsonjoy.com/json-pack": "^1.0.3", - "@jsonjoy.com/util": "^1.3.0", - "tree-dump": "^1.0.1", + "@jsonjoy.com/util": "^1.1.2", + "sonic-forest": "^1.0.0", "tslib": "^2.0.0" }, "engines": { @@ -4358,8 +3748,6 @@ }, "node_modules/memorystream": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", "dev": true, "engines": { "node": ">= 0.10.0" @@ -4367,32 +3755,28 @@ }, "node_modules/merge-descriptors": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/merge-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/methods": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "version": "4.0.5", "dev": true, + "license": "MIT", "dependencies": { - "braces": "^3.0.3", + "braces": "^3.0.2", "picomatch": "^2.3.1" }, "engines": { @@ -4401,9 +3785,8 @@ }, "node_modules/mime": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true, + "license": "MIT", "bin": { "mime": "cli.js" }, @@ -4413,18 +3796,16 @@ }, "node_modules/mime-db": { "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -4434,9 +3815,8 @@ }, "node_modules/mimic-function": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", - "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -4446,15 +3826,13 @@ }, "node_modules/minimalistic-assert": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -4464,30 +3842,26 @@ }, "node_modules/minimist": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/mitt": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", - "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ms": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/multicast-dns": { "version": "7.2.5", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", - "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", "dev": true, + "license": "MIT", "dependencies": { "dns-packet": "^5.2.2", "thunky": "^1.0.2" @@ -4498,61 +3872,51 @@ }, "node_modules/natural-compare": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/negotiator": { "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/neo-async": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/node-addon-api": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", - "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", "dev": true, "license": "MIT", "optional": true }, "node_modules/node-forge": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", "dev": true, + "license": "(BSD-3-Clause OR GPL-2.0)", "engines": { "node": ">= 6.13.0" } }, "node_modules/node-releases": { "version": "2.0.18", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", - "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/normalize-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/npm-normalize-package-bin": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-4.0.0.tgz", - "integrity": "sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==", "dev": true, "license": "ISC", "engines": { @@ -4561,8 +3925,6 @@ }, "node_modules/npm-run-all2": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/npm-run-all2/-/npm-run-all2-7.0.1.tgz", - "integrity": "sha512-Adbv+bJQ8UTAM03rRODqrO5cx0YU5KCG2CvHtSURiadvdTjjgGJXdbc1oQ9CXBh9dnGfHSoSB1Web/0Dzp6kOQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4588,9 +3950,8 @@ }, "node_modules/npm-run-all2/node_modules/ansi-styles": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -4598,19 +3959,8 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/npm-run-all2/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, "node_modules/npm-run-all2/node_modules/isexe": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", "dev": true, "license": "ISC", "engines": { @@ -4619,9 +3969,8 @@ }, "node_modules/npm-run-all2/node_modules/minimatch": { "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -4632,10 +3981,16 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/npm-run-all2/node_modules/minimatch/node_modules/brace-expansion": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, "node_modules/npm-run-all2/node_modules/which": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", - "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", "dev": true, "license": "ISC", "dependencies": { @@ -4650,33 +4005,29 @@ }, "node_modules/object-inspect": { "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object-keys": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/obuf": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/on-finished": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, + "license": "MIT", "dependencies": { "ee-first": "1.1.1" }, @@ -4686,45 +4037,24 @@ }, "node_modules/on-headers": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, + "license": "ISC", "dependencies": { "wrappy": "1" } }, - "node_modules/open": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/open/-/open-10.0.3.tgz", - "integrity": "sha512-dtbI5oW7987hwC9qjJTyABldTaa19SuyJse1QboWv3b0qCcrrLNVDqBx1XgELAjh9QTVQaP/C5b1nhQebd1H2A==", - "dev": true, - "dependencies": { - "default-browser": "^5.2.1", - "define-lazy-prop": "^3.0.0", - "is-inside-container": "^1.0.0", - "is-wsl": "^3.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/optionator": { "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, + "license": "MIT", "dependencies": { "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", @@ -4739,17 +4069,14 @@ }, "node_modules/os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/oxlint": { "version": "0.11.0", - "resolved": "https://registry.npmjs.org/oxlint/-/oxlint-0.11.0.tgz", - "integrity": "sha512-uY6/R4k5bECwJBR+y8CqGRcUb5hxNReziBjt5+pk6DKxj46DqMd6HwEk090KnaH1czVf23r8mcEsJYGowMWeIA==", "dev": true, "license": "MIT", "bin": { @@ -4775,9 +4102,8 @@ }, "node_modules/p-limit": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -4790,9 +4116,8 @@ }, "node_modules/p-locate": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -4805,9 +4130,8 @@ }, "node_modules/p-retry": { "version": "6.2.0", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.0.tgz", - "integrity": "sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==", "dev": true, + "license": "MIT", "dependencies": { "@types/retry": "0.12.2", "is-network-error": "^1.0.0", @@ -4822,18 +4146,16 @@ }, "node_modules/p-try": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/parent-module": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -4843,18 +4165,16 @@ }, "node_modules/parseurl": { "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/patch-package": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-8.0.0.tgz", - "integrity": "sha512-da8BVIhzjtgScwDJ2TtKsfT5JFWz1hYoBl9rUQ1f38MC2HwnEIkK8VN3dKMKcP7P7bvvgzNDbfNHtx3MsQb5vA==", "dev": true, + "license": "MIT", "dependencies": { "@yarnpkg/lockfile": "^1.1.0", "chalk": "^4.1.2", @@ -4882,9 +4202,8 @@ }, "node_modules/patch-package/node_modules/is-docker": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true, + "license": "MIT", "bin": { "is-docker": "cli.js" }, @@ -4897,9 +4216,8 @@ }, "node_modules/patch-package/node_modules/is-wsl": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, + "license": "MIT", "dependencies": { "is-docker": "^2.0.0" }, @@ -4909,9 +4227,8 @@ }, "node_modules/patch-package/node_modules/open": { "version": "7.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", "dev": true, + "license": "MIT", "dependencies": { "is-docker": "^2.0.0", "is-wsl": "^2.1.1" @@ -4923,57 +4240,60 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/patch-package/node_modules/yaml": { + "version": "2.4.5", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/path-key": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path-parse": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/path-to-regexp": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/picocolors": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true, "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -4983,9 +4303,8 @@ }, "node_modules/pidtree": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", - "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", "dev": true, + "license": "MIT", "bin": { "pidtree": "bin/pidtree.js" }, @@ -4995,9 +4314,8 @@ }, "node_modules/pkg-dir": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^4.0.0" }, @@ -5007,9 +4325,8 @@ }, "node_modules/pkg-dir/node_modules/find-up": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -5018,11 +4335,10 @@ "node": ">=8" } }, - "node_modules/pkg-dir/node_modules/locate-path": { + "node_modules/pkg-dir/node_modules/find-up/node_modules/locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -5030,11 +4346,21 @@ "node": ">=8" } }, - "node_modules/pkg-dir/node_modules/p-limit": { + "node_modules/pkg-dir/node_modules/find-up/node_modules/locate-path/node_modules/p-locate": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up/node_modules/locate-path/node_modules/p-locate/node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -5045,32 +4371,24 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/postinstall-postinstall": { + "version": "2.1.0", "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } + "hasInstallScript": true, + "license": "MIT" }, "node_modules/prelude-ls": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "node_modules/process-nextick-args": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/protobufjs": { "version": "7.4.0", @@ -5098,9 +4416,8 @@ }, "node_modules/proxy-addr": { "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "dev": true, + "license": "MIT", "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" @@ -5111,27 +4428,24 @@ }, "node_modules/proxy-addr/node_modules/ipaddr.js": { "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.10" } }, "node_modules/punycode": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/qs": { "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "side-channel": "^1.0.4" }, @@ -5144,27 +4458,43 @@ }, "node_modules/randombytes": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" } }, + "node_modules/randombytes/node_modules/safe-buffer": { + "version": "5.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/range-parser": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/raw-body": { "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dev": true, + "license": "MIT", "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -5177,17 +4507,14 @@ }, "node_modules/raw-body/node_modules/bytes": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/read-package-json-fast": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-4.0.0.tgz", - "integrity": "sha512-qpt8EwugBWDw2cgE2W+/3oxC+KTez2uSVR8JU9Q36TXPAGCaozfQUs59v4j4GFpWTaw0i6hAZSvOmu1J0uOEUg==", "dev": true, "license": "ISC", "dependencies": { @@ -5200,8 +4527,6 @@ }, "node_modules/read-package-json-fast/node_modules/json-parse-even-better-errors": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz", - "integrity": "sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==", "dev": true, "license": "MIT", "engines": { @@ -5210,9 +4535,8 @@ }, "node_modules/readable-stream": { "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -5222,23 +4546,10 @@ "node": ">= 6" } }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, "node_modules/rechoir": { "version": "0.8.0", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", - "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", "dev": true, + "license": "MIT", "dependencies": { "resolve": "^1.20.0" }, @@ -5248,29 +4559,25 @@ }, "node_modules/requestidlecallback-polyfill": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/requestidlecallback-polyfill/-/requestidlecallback-polyfill-1.0.2.tgz", - "integrity": "sha512-zzkRzvMe7UdV0M7AIU70vl2fh4rFnNYDL8U0ISwWiOX/5MowBV1ESYCWSQP/KsgJNUOC/AS6X3DApOmxoyE6MA==" + "license": "MIT AND Apache-2.0" }, "node_modules/require-from-string": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/requires-port": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/resolve": { "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, + "license": "MIT", "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -5285,9 +4592,8 @@ }, "node_modules/resolve-cwd": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, + "license": "MIT", "dependencies": { "resolve-from": "^5.0.0" }, @@ -5297,27 +4603,24 @@ }, "node_modules/resolve-cwd/node_modules/resolve-from": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/resolve-from": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/restore-cursor": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", - "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", "dev": true, + "license": "MIT", "dependencies": { "onetime": "^7.0.0", "signal-exit": "^4.1.0" @@ -5331,9 +4634,8 @@ }, "node_modules/restore-cursor/node_modules/onetime": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", - "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", "dev": true, + "license": "MIT", "dependencies": { "mimic-function": "^5.0.0" }, @@ -5346,9 +4648,8 @@ }, "node_modules/restore-cursor/node_modules/signal-exit": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "engines": { "node": ">=14" }, @@ -5358,25 +4659,21 @@ }, "node_modules/retry": { "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/rfdc": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", - "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/rimraf": { "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -5386,9 +4683,8 @@ }, "node_modules/run-applescript": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", - "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -5396,36 +4692,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/safer-buffer": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/sass": { "version": "1.80.6", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.80.6.tgz", - "integrity": "sha512-ccZgdHNiBF1NHBsWvacvT5rju3y1d/Eu+8Ex6c21nHp2lZGLBEtuwc415QfiI1PJa1TpCo3iXwwSRjRpn2Ckjg==", "dev": true, "license": "MIT", "dependencies": { @@ -5445,8 +4718,6 @@ }, "node_modules/sass/node_modules/chokidar": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", - "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", "dev": true, "license": "MIT", "dependencies": { @@ -5461,8 +4732,6 @@ }, "node_modules/sass/node_modules/readdirp": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.1.tgz", - "integrity": "sha512-GkMg9uOTpIWWKbSsgwb5fA4EavTR+SG/PMPoAY8hkhHfEEY0/vqljY+XHqtDf2cr2IJtoNRDbrrEpZUiZCkYRw==", "dev": true, "license": "MIT", "engines": { @@ -5475,9 +4744,8 @@ }, "node_modules/schema-utils": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", "dev": true, + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", @@ -5492,11 +4760,30 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/schema-utils/node_modules/@types/json-schema": { + "version": "7.0.14", + "dev": true, + "license": "MIT" + }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "8.12.0", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, "node_modules/schema-utils/node_modules/ajv-keywords": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3" }, @@ -5504,17 +4791,20 @@ "ajv": "^8.8.2" } }, + "node_modules/schema-utils/node_modules/ajv/node_modules/json-schema-traverse": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, "node_modules/select-hose": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/selfsigned": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", - "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", "dev": true, + "license": "MIT", "dependencies": { "@types/node-forge": "^1.3.0", "node-forge": "^1" @@ -5524,11 +4814,12 @@ } }, "node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.5.4", "dev": true, "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, "bin": { "semver": "bin/semver.js" }, @@ -5538,9 +4829,8 @@ }, "node_modules/send": { "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "dev": true, + "license": "MIT", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -5562,39 +4852,34 @@ }, "node_modules/send/node_modules/debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/send/node_modules/debug/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/send/node_modules/ms": { "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/serialize-javascript": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } }, "node_modules/serve-index": { "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", "dev": true, + "license": "MIT", "dependencies": { "accepts": "~1.3.4", "batch": "0.6.1", @@ -5610,27 +4895,21 @@ }, "node_modules/serve-index/node_modules/debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } }, - "node_modules/serve-index/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "node_modules/serve-index/node_modules/debug/node_modules/ms": { + "version": "2.0.0", "dev": true, - "engines": { - "node": ">= 0.6" - } + "license": "MIT" }, "node_modules/serve-index/node_modules/http-errors": { "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", "dev": true, + "license": "MIT", "dependencies": { "depd": "~1.1.2", "inherits": "2.0.3", @@ -5641,38 +4920,36 @@ "node": ">= 0.6" } }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true + "node_modules/serve-index/node_modules/http-errors/node_modules/depd": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "node_modules/serve-index/node_modules/http-errors/node_modules/inherits": { + "version": "2.0.3", + "dev": true, + "license": "ISC" }, - "node_modules/serve-index/node_modules/setprototypeof": { + "node_modules/serve-index/node_modules/http-errors/node_modules/setprototypeof": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true + "dev": true, + "license": "ISC" }, - "node_modules/serve-index/node_modules/statuses": { + "node_modules/serve-index/node_modules/http-errors/node_modules/statuses": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/serve-static": { "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", "dev": true, + "license": "MIT", "dependencies": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", @@ -5685,9 +4962,8 @@ }, "node_modules/set-function-length": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -5702,15 +4978,13 @@ }, "node_modules/setprototypeof": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/shallow-clone": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, + "license": "MIT", "dependencies": { "kind-of": "^6.0.2" }, @@ -5720,9 +4994,8 @@ }, "node_modules/shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -5732,35 +5005,28 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/shell-quote": { "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "version": "1.0.4", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - }, - "engines": { - "node": ">= 0.4" + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5768,18 +5034,16 @@ }, "node_modules/slash": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/slice-ansi": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.0.0", "is-fullwidth-code-point": "^4.0.0" @@ -5793,9 +5057,8 @@ }, "node_modules/slice-ansi/node_modules/ansi-styles": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -5805,9 +5068,8 @@ }, "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -5817,54 +5079,65 @@ }, "node_modules/sockjs": { "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", "dev": true, + "license": "MIT", "dependencies": { "faye-websocket": "^0.11.3", "uuid": "^8.3.2", "websocket-driver": "^0.7.4" } }, - "node_modules/soundtouchjs": { - "version": "0.1.30", - "resolved": "https://registry.npmjs.org/soundtouchjs/-/soundtouchjs-0.1.30.tgz", - "integrity": "sha512-qc1kMCPQ+SH8tmoPwVSpVInGAE4XFyQ5uZLm1rLyGjwD+MT2ZdBWHWureyq2akDBYBE81GI0I0FdLCNBf86zDQ==", - "license": "LGPL-2.1" - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/sonic-forest": { + "version": "1.0.3", "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tree-dump": "^1.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, + "node_modules/soundtouchjs": { + "version": "0.1.30", + "license": "LGPL-2.1" + }, "node_modules/source-map-js": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-support": { "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/spdy": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.1.0", "handle-thing": "^2.0.0", @@ -5878,9 +5151,8 @@ }, "node_modules/spdy-transport": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.1.0", "detect-node": "^2.0.4", @@ -5890,38 +5162,85 @@ "wbuf": "^1.7.3" } }, + "node_modules/spdy-transport/node_modules/debug": { + "version": "4.3.4", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/spdy/node_modules/debug": { + "version": "4.3.4", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/statuses": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/string_decoder": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" } }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/string-argv": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", - "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.6.19" } }, "node_modules/strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -5931,9 +5250,8 @@ }, "node_modules/strip-json-comments": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -5943,9 +5261,8 @@ }, "node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -5955,9 +5272,8 @@ }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -5967,18 +5283,16 @@ }, "node_modules/tapable": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/terser": { "version": "5.28.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.28.1.tgz", - "integrity": "sha512-wM+bZp54v/E9eRRGXb5ZFDvinrJIOaTapx3WUokyVGZu5ucVCK55zEgGd5Dl2fSr3jUo5sDiERErUWLY6QPFyA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -5994,9 +5308,8 @@ }, "node_modules/terser-webpack-plugin": { "version": "5.3.10", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", - "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.20", "jest-worker": "^27.4.5", @@ -6028,9 +5341,8 @@ }, "node_modules/terser-webpack-plugin/node_modules/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -6042,20 +5354,10 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, "node_modules/terser-webpack-plugin/node_modules/jest-worker": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -6065,17 +5367,37 @@ "node": ">= 10.13.0" } }, + "node_modules/terser-webpack-plugin/node_modules/jest-worker/node_modules/@types/node": { + "version": "20.8.9", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/terser-webpack-plugin/node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/terser-webpack-plugin/node_modules/schema-utils": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -6089,32 +5411,44 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/terser-webpack-plugin/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "node_modules/terser-webpack-plugin/node_modules/schema-utils/node_modules/@types/json-schema": { + "version": "7.0.14", + "dev": true, + "license": "MIT" + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils/node_modules/ajv-keywords": { + "version": "3.5.2", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/terser/node_modules/acorn": { + "version": "8.10.0", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" + "license": "MIT", + "bin": { + "acorn": "bin/acorn" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "node": ">=0.4.0" } }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "dev": true, + "license": "MIT" + }, "node_modules/text-table": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/thingies": { "version": "1.21.0", - "resolved": "https://registry.npmjs.org/thingies/-/thingies-1.21.0.tgz", - "integrity": "sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==", "dev": true, + "license": "Unlicense", "engines": { "node": ">=10.18" }, @@ -6124,15 +5458,13 @@ }, "node_modules/thunky": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/tmp": { "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, + "license": "MIT", "dependencies": { "os-tmpdir": "~1.0.2" }, @@ -6142,9 +5474,8 @@ }, "node_modules/to-regex-range": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -6154,17 +5485,14 @@ }, "node_modules/toidentifier": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.6" } }, "node_modules/tree-dump": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.2.tgz", - "integrity": "sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==", + "version": "1.0.1", "dev": true, "engines": { "node": ">=10.0" @@ -6179,8 +5507,6 @@ }, "node_modules/ts-loader": { "version": "9.5.1", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.1.tgz", - "integrity": "sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==", "dev": true, "license": "MIT", "dependencies": { @@ -6198,10 +5524,53 @@ "webpack": "^5.0.0" } }, + "node_modules/ts-loader/node_modules/micromatch": { + "version": "4.0.8", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/ts-loader/node_modules/micromatch/node_modules/braces": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-loader/node_modules/micromatch/node_modules/braces/node_modules/fill-range": { + "version": "7.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-loader/node_modules/semver": { + "version": "7.6.3", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/ts-loader/node_modules/source-map": { "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -6209,17 +5578,14 @@ } }, "node_modules/tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "version": "2.6.2", "dev": true, "license": "0BSD" }, "node_modules/type-check": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -6229,9 +5595,8 @@ }, "node_modules/type-is": { "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, + "license": "MIT", "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -6242,8 +5607,6 @@ }, "node_modules/typescript": { "version": "5.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", - "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", @@ -6255,31 +5618,26 @@ }, "node_modules/undici-types": { "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + "license": "MIT" }, "node_modules/universalify": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10.0.0" } }, "node_modules/unpipe": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/update-browserslist-db": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", - "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", "dev": true, "funding": [ { @@ -6309,50 +5667,45 @@ }, "node_modules/uri-js": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, "node_modules/util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/utils-merge": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4.0" } }, "node_modules/uuid": { "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } }, "node_modules/vary": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/vot.js": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/vot.js/-/vot.js-1.3.8.tgz", - "integrity": "sha512-CKCKB+VpYyrtULWvbPTIaoWKLRQ0mmTUeNmjsBMO2Dgk88hjW/1H4Wz+qCViju0nulAbuE0dtFMAWM2rnaG5fA==", + "version": "1.3.9", + "resolved": "https://registry.npmjs.org/vot.js/-/vot.js-1.3.9.tgz", + "integrity": "sha512-65fuQf6bJUamcxzFgW8PjBmLcc2U/jabJ6unVafVZtu2fN1qibNEnQaqrNH9DwEHhb7UxyntNRAoM8R/KZUeUQ==", "license": "MIT", "dependencies": { "dom-parser": "^1.1.5", @@ -6367,9 +5720,8 @@ }, "node_modules/watchpack": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", - "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", "dev": true, + "license": "MIT", "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -6380,17 +5732,14 @@ }, "node_modules/wbuf": { "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, + "license": "MIT", "dependencies": { "minimalistic-assert": "^1.0.0" } }, "node_modules/webpack": { "version": "5.96.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.96.1.tgz", - "integrity": "sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==", "dev": true, "license": "MIT", "dependencies": { @@ -6436,9 +5785,8 @@ }, "node_modules/webpack-cli": { "version": "5.1.4", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", - "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", "dev": true, + "license": "MIT", "dependencies": { "@discoveryjs/json-ext": "^0.5.0", "@webpack-cli/configtest": "^2.1.1", @@ -6481,18 +5829,16 @@ }, "node_modules/webpack-cli/node_modules/commander": { "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true, + "license": "MIT", "engines": { "node": ">=14" } }, "node_modules/webpack-dev-middleware": { "version": "7.4.2", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.4.2.tgz", - "integrity": "sha512-xOO8n6eggxnwYpy1NlzUKpvrjfJTvae5/D6WOK0S2LSo7vjmo5gCM1DbLUmFqrMTJP+W/0YZNctm7jasWvLuBA==", "dev": true, + "license": "MIT", "dependencies": { "colorette": "^2.0.10", "memfs": "^4.6.0", @@ -6519,9 +5865,8 @@ }, "node_modules/webpack-dev-server": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.1.0.tgz", - "integrity": "sha512-aQpaN81X6tXie1FoOB7xlMfCsN19pSvRAeYUHOdFWOlhpQ/LlbfTqYwwmEDFV0h8GGuqmCmKmT+pxcUV/Nt2gQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/bonjour": "^3.5.13", "@types/connect-history-api-fallback": "^1.5.4", @@ -6574,11 +5919,86 @@ } } }, + "node_modules/webpack-dev-server/node_modules/chokidar": { + "version": "3.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/webpack-dev-server/node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/webpack-dev-server/node_modules/chokidar/node_modules/readdirp": { + "version": "3.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/open": { + "version": "10.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webpack-dev-server/node_modules/open/node_modules/is-wsl": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/webpack-merge": { "version": "5.10.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", - "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", "dev": true, + "license": "MIT", "dependencies": { "clone-deep": "^4.0.1", "flat": "^5.0.2", @@ -6590,9 +6010,8 @@ }, "node_modules/webpack-monkey": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/webpack-monkey/-/webpack-monkey-0.2.1.tgz", - "integrity": "sha512-BFhOyl/2DGE9HzlOzTlqM8GUhb6CDsNY4d8lnhM85DQzzDV+USijD/Y+BKEP//I5IxRedBUTdSZBUnp12CighQ==", "dev": true, + "license": "MIT", "workspaces": [ "examples/*" ], @@ -6619,18 +6038,16 @@ }, "node_modules/webpack-sources": { "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.13.0" } }, "node_modules/webpack/node_modules/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -6642,20 +6059,10 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/webpack/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, "node_modules/webpack/node_modules/eslint-scope": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -6664,26 +6071,23 @@ "node": ">=8.0.0" } }, - "node_modules/webpack/node_modules/estraverse": { + "node_modules/webpack/node_modules/eslint-scope/node_modules/estraverse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/webpack/node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/webpack/node_modules/schema-utils": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -6697,11 +6101,23 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/webpack/node_modules/schema-utils/node_modules/@types/json-schema": { + "version": "7.0.14", + "dev": true, + "license": "MIT" + }, + "node_modules/webpack/node_modules/schema-utils/node_modules/ajv-keywords": { + "version": "3.5.2", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, "node_modules/websocket-driver": { "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "http-parser-js": ">=0.5.1", "safe-buffer": ">=5.1.0", @@ -6711,41 +6127,42 @@ "node": ">=0.8.0" } }, + "node_modules/websocket-driver/node_modules/safe-buffer": { + "version": "5.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/websocket-extensions": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=0.8.0" } }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/wildcard": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", - "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/wrap-ansi": { "version": "9.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", - "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.2.1", "string-width": "^7.0.0", @@ -6758,23 +6175,10 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -6782,17 +6186,10 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/emoji-regex": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", - "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", - "dev": true - }, "node_modules/wrap-ansi/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "version": "7.1.0", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", @@ -6805,11 +6202,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/wrap-ansi/node_modules/string-width/node_modules/emoji-regex": { + "version": "10.3.0", + "dev": true, + "license": "MIT" + }, "node_modules/wrap-ansi/node_modules/strip-ansi": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -6820,17 +6221,26 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "node_modules/wrap-ansi/node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/ws": { "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -6847,11 +6257,15 @@ } } }, + "node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "license": "ISC" + }, "node_modules/yaml": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", - "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", "dev": true, + "license": "ISC", "bin": { "yaml": "bin.mjs" }, @@ -6861,9 +6275,8 @@ }, "node_modules/yocto-queue": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, diff --git a/package.json b/package.json index 2f2f179f..6d0bdd13 100644 --- a/package.json +++ b/package.json @@ -58,6 +58,6 @@ "chaimu": "^1.0.2", "lit": "^3.2.1", "requestidlecallback-polyfill": "^1.0.2", - "vot.js": "^1.3.8" + "vot.js": "^1.3.9" } } diff --git a/patches/vot.js+1.3.8+002+added-general.patch b/patches/vot.js+1.3.9+002+added-general.patch similarity index 88% rename from patches/vot.js+1.3.8+002+added-general.patch rename to patches/vot.js+1.3.9+002+added-general.patch index fcb09072..366e6751 100644 --- a/patches/vot.js+1.3.8+002+added-general.patch +++ b/patches/vot.js+1.3.9+002+added-general.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/vot.js/dist/client.js b/node_modules/vot.js/dist/client.js -index 36a2b47..cc9072d 100644 +index df9da79..7eb45ad 100644 --- a/node_modules/vot.js/dist/client.js +++ b/node_modules/vot.js/dist/client.js @@ -7,6 +7,8 @@ import { getVideoData } from "./utils/videoData.js"; @@ -11,7 +11,7 @@ index 36a2b47..cc9072d 100644 class VOTJSError extends Error { data; constructor(message, data = undefined) { -@@ -167,16 +169,17 @@ export default class VOTClient { +@@ -165,16 +167,17 @@ export default class VOTClient { ...headers, }); if (!res.success) { @@ -32,7 +32,7 @@ index 36a2b47..cc9072d 100644 } return { translated: true, -@@ -222,7 +225,7 @@ export default class VOTClient { +@@ -220,7 +223,7 @@ export default class VOTClient { rawVideo: url, }, headers); if (!res.success) { @@ -41,7 +41,7 @@ index 36a2b47..cc9072d 100644 } const translationData = res.data; switch (translationData.status) { -@@ -230,7 +233,7 @@ export default class VOTClient { +@@ -228,7 +231,7 @@ export default class VOTClient { throw new VOTJSError("Yandex couldn't translate video", translationData); case "success": if (!translationData.translatedUrl) { @@ -50,7 +50,7 @@ index 36a2b47..cc9072d 100644 } return { translated: true, -@@ -291,7 +294,10 @@ export default class VOTClient { +@@ -288,7 +291,10 @@ export default class VOTClient { async getSubtitles({ videoData, requestLang = this.requestLang, headers = {}, }) { const { url } = videoData; if (this.isCustomLink(url)) { @@ -60,14 +60,14 @@ index 36a2b47..cc9072d 100644 + subtitles: [] + } } - const { secretKey, uuid } = await this.getSession("video-translation"); + const session = await this.getSession("video-translation"); const body = yandexProtobuf.encodeSubtitlesRequest(url, requestLang); -@@ -325,7 +331,7 @@ export default class VOTClient { +@@ -320,7 +326,7 @@ export default class VOTClient { async translateStream({ videoData, requestLang = this.requestLang, responseLang = this.responseLang, headers = {}, }) { const { url } = videoData; if (this.isCustomLink(url)) { - throw new VOTJSError("Unsupported video URL for getting stream translation"); + throw new VOTLocalizedError("VOTStreamNotSupportedUrl"); } - const { secretKey, uuid } = await this.getSession("video-translation"); + const session = await this.getSession("video-translation"); const body = yandexProtobuf.encodeStreamRequest(url, requestLang, responseLang); diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index 75a8001f..00000000 --- a/yarn.lock +++ /dev/null @@ -1,3527 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@aashutoshrathi/word-wrap@^1.2.3": - version "1.2.6" - resolved "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz" - integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== - -"@discoveryjs/json-ext@^0.5.0": - version "0.5.7" - resolved "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz" - integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== - -"@eslint-community/eslint-utils@^4.2.0": - version "4.4.0" - resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz" - integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== - dependencies: - eslint-visitor-keys "^3.3.0" - -"@eslint-community/regexpp@^4.12.1": - version "4.12.1" - resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz" - integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== - -"@eslint/config-array@^0.18.0": - version "0.18.0" - resolved "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz" - integrity sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw== - dependencies: - "@eslint/object-schema" "^2.1.4" - debug "^4.3.1" - minimatch "^3.1.2" - -"@eslint/core@^0.7.0": - version "0.7.0" - resolved "https://registry.npmjs.org/@eslint/core/-/core-0.7.0.tgz" - integrity sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw== - -"@eslint/eslintrc@^3.1.0": - version "3.1.0" - resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz" - integrity sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^10.0.1" - globals "^14.0.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" - -"@eslint/js@9.14.0": - version "9.14.0" - resolved "https://registry.npmjs.org/@eslint/js/-/js-9.14.0.tgz" - integrity sha512-pFoEtFWCPyDOl+C6Ift+wC7Ro89otjigCf5vcuWqWgqNSQbRrpjSvdeE6ofLz4dHmyxD5f7gIdGT4+p36L6Twg== - -"@eslint/object-schema@^2.1.4": - version "2.1.4" - resolved "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz" - integrity sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ== - -"@eslint/plugin-kit@^0.2.0": - version "0.2.0" - resolved "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.0.tgz" - integrity sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig== - dependencies: - levn "^0.4.1" - -"@humanfs/core@^0.19.1": - version "0.19.1" - resolved "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz" - integrity sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA== - -"@humanfs/node@^0.16.6": - version "0.16.6" - resolved "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz" - integrity sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw== - dependencies: - "@humanfs/core" "^0.19.1" - "@humanwhocodes/retry" "^0.3.0" - -"@humanwhocodes/module-importer@^1.0.1": - version "1.0.1" - resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" - integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== - -"@humanwhocodes/retry@^0.3.0": - version "0.3.1" - resolved "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz" - integrity sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA== - -"@humanwhocodes/retry@^0.4.0": - version "0.4.0" - resolved "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.0.tgz" - integrity sha512-xnRgu9DxZbkWak/te3fcytNyp8MTbuiZIaueg2rgEvBuN55n04nwLYLU9TX/VVlusc9L2ZNXi99nUFNkHXtr5g== - -"@jest/schemas@^29.6.3": - version "29.6.3" - resolved "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz" - integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== - dependencies: - "@sinclair/typebox" "^0.27.8" - -"@jest/types@^29.6.3": - version "29.6.3" - resolved "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz" - integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== - dependencies: - "@jest/schemas" "^29.6.3" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" - -"@jridgewell/gen-mapping@^0.3.0": - version "0.3.5" - resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz" - integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== - dependencies: - "@jridgewell/set-array" "^1.2.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.24" - -"@jridgewell/resolve-uri@^3.1.0": - version "3.1.2" - resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz" - integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== - -"@jridgewell/set-array@^1.2.1": - version "1.2.1" - resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz" - integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== - -"@jridgewell/source-map@^0.3.3": - version "0.3.5" - resolved "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz" - integrity sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ== - dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": - version "1.4.15" - resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz" - integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== - -"@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.25" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz" - integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== - dependencies: - "@jridgewell/resolve-uri" "^3.1.0" - "@jridgewell/sourcemap-codec" "^1.4.14" - -"@jsonjoy.com/base64@^1.1.1": - version "1.1.2" - resolved "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz" - integrity sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA== - -"@jsonjoy.com/json-pack@^1.0.3": - version "1.1.0" - resolved "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.1.0.tgz" - integrity sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg== - dependencies: - "@jsonjoy.com/base64" "^1.1.1" - "@jsonjoy.com/util" "^1.1.2" - hyperdyperid "^1.2.0" - thingies "^1.20.0" - -"@jsonjoy.com/util@^1.1.2", "@jsonjoy.com/util@^1.3.0": - version "1.3.0" - resolved "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.3.0.tgz" - integrity sha512-Cebt4Vk7k1xHy87kHY7KSPLT77A7Ev7IfOblyLZhtYEhrdQ6fX4EoLq3xOQ3O/DRMEh2ok5nyC180E+ABS8Wmw== - -"@leichtgewicht/ip-codec@^2.0.1": - version "2.0.4" - resolved "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz" - integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== - -"@lit-labs/ssr-dom-shim@^1.2.0": - version "1.2.1" - resolved "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.1.tgz" - integrity sha512-wx4aBmgeGvFmOKucFKY+8VFJSYZxs9poN3SDNQFF6lT6NrQUnHiPB2PWz2sc4ieEcAaYYzN+1uWahEeTq2aRIQ== - -"@lit/reactive-element@^2.0.4": - version "2.0.4" - resolved "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.4.tgz" - integrity sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ== - dependencies: - "@lit-labs/ssr-dom-shim" "^1.2.0" - -"@oxlint/win32-x64@0.11.0": - version "0.11.0" - resolved "https://registry.npmjs.org/@oxlint/win32-x64/-/win32-x64-0.11.0.tgz" - integrity sha512-5CHtAp82xbv0jnh/HGi3QE0ANBr3+R338MA0wgZXc7477Vuri0aSK0T9oRU+K/pVloPVJaWKSDCCZoiZIYckzg== - -"@parcel/watcher-win32-x64@2.5.0": - version "2.5.0" - resolved "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.0.tgz" - integrity sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw== - -"@parcel/watcher@^2.4.1": - version "2.5.0" - resolved "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.0.tgz" - integrity sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ== - dependencies: - detect-libc "^1.0.3" - is-glob "^4.0.3" - micromatch "^4.0.5" - node-addon-api "^7.0.0" - optionalDependencies: - "@parcel/watcher-android-arm64" "2.5.0" - "@parcel/watcher-darwin-arm64" "2.5.0" - "@parcel/watcher-darwin-x64" "2.5.0" - "@parcel/watcher-freebsd-x64" "2.5.0" - "@parcel/watcher-linux-arm-glibc" "2.5.0" - "@parcel/watcher-linux-arm-musl" "2.5.0" - "@parcel/watcher-linux-arm64-glibc" "2.5.0" - "@parcel/watcher-linux-arm64-musl" "2.5.0" - "@parcel/watcher-linux-x64-glibc" "2.5.0" - "@parcel/watcher-linux-x64-musl" "2.5.0" - "@parcel/watcher-win32-arm64" "2.5.0" - "@parcel/watcher-win32-ia32" "2.5.0" - "@parcel/watcher-win32-x64" "2.5.0" - -"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": - version "1.1.2" - resolved "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz" - integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== - -"@protobufjs/base64@^1.1.2": - version "1.1.2" - resolved "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz" - integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== - -"@protobufjs/codegen@^2.0.4": - version "2.0.4" - resolved "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz" - integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== - -"@protobufjs/eventemitter@^1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz" - integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== - -"@protobufjs/fetch@^1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz" - integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== - dependencies: - "@protobufjs/aspromise" "^1.1.1" - "@protobufjs/inquire" "^1.1.0" - -"@protobufjs/float@^1.0.2": - version "1.0.2" - resolved "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz" - integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== - -"@protobufjs/inquire@^1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz" - integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== - -"@protobufjs/path@^1.1.2": - version "1.1.2" - resolved "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz" - integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== - -"@protobufjs/pool@^1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz" - integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== - -"@protobufjs/utf8@^1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz" - integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== - -"@sinclair/typebox@^0.27.8": - version "0.27.8" - resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz" - integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== - -"@types/body-parser@*": - version "1.19.4" - resolved "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.4.tgz" - integrity sha512-N7UDG0/xiPQa2D/XrVJXjkWbpqHCd2sBaB32ggRF2l83RhPfamgKGF8gwwqyksS95qUS5ZYF9aF+lLPRlwI2UA== - dependencies: - "@types/connect" "*" - "@types/node" "*" - -"@types/bonjour@^3.5.13": - version "3.5.13" - resolved "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz" - integrity sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ== - dependencies: - "@types/node" "*" - -"@types/bun@^1.1.13": - version "1.1.13" - resolved "https://registry.npmjs.org/@types/bun/-/bun-1.1.13.tgz" - integrity sha512-KmQxSBgVWCl6RSuerlLGZlIWfdxkKqat0nxN61+qu4y1KDn0Ll3j7v1Pl8GnaL3a/U6GGWVTJh75ap62kR1E8Q== - dependencies: - bun-types "1.1.34" - -"@types/connect-history-api-fallback@^1.5.4": - version "1.5.4" - resolved "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz" - integrity sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw== - dependencies: - "@types/express-serve-static-core" "*" - "@types/node" "*" - -"@types/connect@*": - version "3.4.37" - resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.37.tgz" - integrity sha512-zBUSRqkfZ59OcwXon4HVxhx5oWCJmc0OtBTK05M+p0dYjgN6iTwIL2T/WbsQZrEsdnwaF9cWQ+azOnpPvIqY3Q== - dependencies: - "@types/node" "*" - -"@types/eslint-scope@^3.7.7": - version "3.7.7" - resolved "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz" - integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== - dependencies: - "@types/eslint" "*" - "@types/estree" "*" - -"@types/eslint@*", "@types/eslint@^8.56.10": - version "8.56.10" - resolved "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz" - integrity sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ== - dependencies: - "@types/estree" "*" - "@types/json-schema" "*" - -"@types/estree@*", "@types/estree@^1.0.6": - version "1.0.6" - resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz" - integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== - -"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.33": - version "4.17.39" - resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.39.tgz" - integrity sha512-BiEUfAiGCOllomsRAZOiMFP7LAnrifHpt56pc4Z7l9K6ACyN06Ns1JLMBxwkfLOjJRlSf06NwWsT7yzfpaVpyQ== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - "@types/send" "*" - -"@types/express@*", "@types/express@^4.17.13", "@types/express@^4.17.21": - version "4.17.21" - resolved "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz" - integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.33" - "@types/qs" "*" - "@types/serve-static" "*" - -"@types/http-errors@*": - version "2.0.3" - resolved "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.3.tgz" - integrity sha512-pP0P/9BnCj1OVvQR2lF41EkDG/lWWnDyA203b/4Fmi2eTyORnBtcDoKDwjWQthELrBvWkMOrvSOnZ8OVlW6tXA== - -"@types/http-proxy@^1.17.8": - version "1.17.13" - resolved "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.13.tgz" - integrity sha512-GkhdWcMNiR5QSQRYnJ+/oXzu0+7JJEPC8vkWXK351BkhjraZF+1W13CUYARUvX9+NqIU2n6YHA4iwywsc/M6Sw== - dependencies: - "@types/node" "*" - -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": - version "2.0.5" - resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz" - integrity sha512-zONci81DZYCZjiLe0r6equvZut0b+dBRPBN5kBDjsONnutYNtJMoWQ9uR2RkL1gLG9NMTzvf+29e5RFfPbeKhQ== - -"@types/istanbul-lib-report@*": - version "3.0.2" - resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.2.tgz" - integrity sha512-8toY6FgdltSdONav1XtUHl4LN1yTmLza+EuDazb/fEmRNCwjyqNVIQWs2IfC74IqjHkREs/nQ2FWq5kZU9IC0w== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^3.0.0": - version "3.0.3" - resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.3.tgz" - integrity sha512-1nESsePMBlf0RPRffLZi5ujYh7IH1BWL4y9pr+Bn3cJBdxz+RTP8bUFljLz9HvzhhOSWKdyBZ4DIivdL6rvgZg== - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/json-schema@*", "@types/json-schema@^7.0.15", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": - version "7.0.15" - resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz" - integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== - -"@types/mime@*", "@types/mime@^1": - version "1.3.4" - resolved "https://registry.npmjs.org/@types/mime/-/mime-1.3.4.tgz" - integrity sha512-1Gjee59G25MrQGk8bsNvC6fxNiRgUlGn2wlhGf95a59DrprnnHk80FIMMFG9XHMdrfsuA119ht06QPDXA1Z7tw== - -"@types/node-forge@^1.3.0": - version "1.3.11" - resolved "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz" - integrity sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ== - dependencies: - "@types/node" "*" - -"@types/node@*", "@types/node@>=13.7.0", "@types/node@~20.12.8": - version "20.12.14" - resolved "https://registry.npmjs.org/@types/node/-/node-20.12.14.tgz" - integrity sha512-scnD59RpYD91xngrQQLGkE+6UrHUPzeKZWhhjBSa3HSkwjbQc38+q3RoIVEwxQGRw3M+j5hpNAM+lgV3cVormg== - dependencies: - undici-types "~5.26.4" - -"@types/qs@*": - version "6.9.9" - resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.9.tgz" - integrity sha512-wYLxw35euwqGvTDx6zfY1vokBFnsK0HNrzc6xNHchxfO2hpuRg74GbkEW7e3sSmPvj0TjCDT1VCa6OtHXnubsg== - -"@types/range-parser@*": - version "1.2.6" - resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.6.tgz" - integrity sha512-+0autS93xyXizIYiyL02FCY8N+KkKPhILhcUSA276HxzreZ16kl+cmwvV2qAM/PuCCwPXzOXOWhiPcw20uSFcA== - -"@types/retry@0.12.2": - version "0.12.2" - resolved "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz" - integrity sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow== - -"@types/send@*": - version "0.17.3" - resolved "https://registry.npmjs.org/@types/send/-/send-0.17.3.tgz" - integrity sha512-/7fKxvKUoETxjFUsuFlPB9YndePpxxRAOfGC/yJdc9kTjTeP5kRCTzfnE8kPUKCeyiyIZu0YQ76s50hCedI1ug== - dependencies: - "@types/mime" "^1" - "@types/node" "*" - -"@types/serve-index@^1.9.4": - version "1.9.4" - resolved "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz" - integrity sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug== - dependencies: - "@types/express" "*" - -"@types/serve-static@*", "@types/serve-static@^1.15.5": - version "1.15.5" - resolved "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz" - integrity sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ== - dependencies: - "@types/http-errors" "*" - "@types/mime" "*" - "@types/node" "*" - -"@types/sockjs@^0.3.36": - version "0.3.36" - resolved "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz" - integrity sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q== - dependencies: - "@types/node" "*" - -"@types/trusted-types@^2.0.2": - version "2.0.7" - resolved "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz" - integrity sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw== - -"@types/ws@^8.5.10", "@types/ws@~8.5.10": - version "8.5.10" - resolved "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz" - integrity sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A== - dependencies: - "@types/node" "*" - -"@types/yargs-parser@*": - version "21.0.2" - resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.2.tgz" - integrity sha512-5qcvofLPbfjmBfKaLfj/+f+Sbd6pN4zl7w7VSVI5uz7m9QZTuB2aZAa2uo1wHFBNN2x6g/SoTkXmd8mQnQF2Cw== - -"@types/yargs@^17.0.8": - version "17.0.29" - resolved "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.29.tgz" - integrity sha512-nacjqA3ee9zRF/++a3FUY1suHTFKZeHba2n8WeDw9cCVdmzmHpIxyzOJBcpHvvEmS8E9KqWlSnWHUkOrkhWcvA== - dependencies: - "@types/yargs-parser" "*" - -"@webassemblyjs/ast@^1.12.1", "@webassemblyjs/ast@1.12.1": - version "1.12.1" - resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz" - integrity sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg== - dependencies: - "@webassemblyjs/helper-numbers" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - -"@webassemblyjs/floating-point-hex-parser@1.11.6": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz" - integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== - -"@webassemblyjs/helper-api-error@1.11.6": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz" - integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== - -"@webassemblyjs/helper-buffer@1.12.1": - version "1.12.1" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz" - integrity sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw== - -"@webassemblyjs/helper-numbers@1.11.6": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz" - integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== - dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.11.6" - "@webassemblyjs/helper-api-error" "1.11.6" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/helper-wasm-bytecode@1.11.6": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz" - integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== - -"@webassemblyjs/helper-wasm-section@1.12.1": - version "1.12.1" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz" - integrity sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g== - dependencies: - "@webassemblyjs/ast" "1.12.1" - "@webassemblyjs/helper-buffer" "1.12.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/wasm-gen" "1.12.1" - -"@webassemblyjs/ieee754@1.11.6": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz" - integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.11.6": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz" - integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.11.6": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz" - integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== - -"@webassemblyjs/wasm-edit@^1.12.1": - version "1.12.1" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz" - integrity sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g== - dependencies: - "@webassemblyjs/ast" "1.12.1" - "@webassemblyjs/helper-buffer" "1.12.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/helper-wasm-section" "1.12.1" - "@webassemblyjs/wasm-gen" "1.12.1" - "@webassemblyjs/wasm-opt" "1.12.1" - "@webassemblyjs/wasm-parser" "1.12.1" - "@webassemblyjs/wast-printer" "1.12.1" - -"@webassemblyjs/wasm-gen@1.12.1": - version "1.12.1" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz" - integrity sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w== - dependencies: - "@webassemblyjs/ast" "1.12.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/ieee754" "1.11.6" - "@webassemblyjs/leb128" "1.11.6" - "@webassemblyjs/utf8" "1.11.6" - -"@webassemblyjs/wasm-opt@1.12.1": - version "1.12.1" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz" - integrity sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg== - dependencies: - "@webassemblyjs/ast" "1.12.1" - "@webassemblyjs/helper-buffer" "1.12.1" - "@webassemblyjs/wasm-gen" "1.12.1" - "@webassemblyjs/wasm-parser" "1.12.1" - -"@webassemblyjs/wasm-parser@^1.12.1", "@webassemblyjs/wasm-parser@1.12.1": - version "1.12.1" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz" - integrity sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ== - dependencies: - "@webassemblyjs/ast" "1.12.1" - "@webassemblyjs/helper-api-error" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/ieee754" "1.11.6" - "@webassemblyjs/leb128" "1.11.6" - "@webassemblyjs/utf8" "1.11.6" - -"@webassemblyjs/wast-printer@1.12.1": - version "1.12.1" - resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz" - integrity sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA== - dependencies: - "@webassemblyjs/ast" "1.12.1" - "@xtuc/long" "4.2.2" - -"@webpack-cli/configtest@^2.1.1": - version "2.1.1" - resolved "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz" - integrity sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw== - -"@webpack-cli/info@^2.0.2": - version "2.0.2" - resolved "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz" - integrity sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A== - -"@webpack-cli/serve@^2.0.5": - version "2.0.5" - resolved "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz" - integrity sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ== - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - -"@yarnpkg/lockfile@^1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz" - integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== - -accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: - version "1.3.8" - resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" - integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== - dependencies: - mime-types "~2.1.34" - negotiator "0.6.3" - -acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.14.0, acorn@^8.8.2: - version "8.14.0" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz" - integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== - -ajv-formats@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz" - integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== - dependencies: - ajv "^8.0.0" - -ajv-keywords@^3.5.2: - version "3.5.2" - resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== - -ajv-keywords@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz" - integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== - dependencies: - fast-deep-equal "^3.1.3" - -ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^6.12.5, ajv@^6.9.1: - version "6.12.6" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^8.0.0, ajv@^8.8.2, ajv@^8.9.0: - version "8.16.0" - resolved "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz" - integrity sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw== - dependencies: - fast-deep-equal "^3.1.3" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.4.1" - -ansi-colors@^4.1.1: - version "4.1.3" - resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz" - integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== - -ansi-escapes@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz" - integrity sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw== - dependencies: - environment "^1.0.0" - -ansi-html-community@^0.0.8: - version "0.0.8" - resolved "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz" - integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-regex@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz" - integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== - -ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^6.0.0: - version "6.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz" - integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== - -ansi-styles@^6.2.1: - version "6.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz" - integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== - -anymatch@~3.1.2: - version "3.1.3" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" - integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== - -at-least-node@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz" - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -batch@0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz" - integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -body-parser@1.20.2: - version "1.20.2" - resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz" - integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== - dependencies: - bytes "3.1.2" - content-type "~1.0.5" - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.11.0" - raw-body "2.5.2" - type-is "~1.6.18" - unpipe "1.0.0" - -bonjour-service@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz" - integrity sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw== - dependencies: - fast-deep-equal "^3.1.3" - multicast-dns "^7.2.5" - -bowser@^2.11.0: - version "2.11.0" - resolved "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz" - integrity sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== - dependencies: - balanced-match "^1.0.0" - -braces@^3.0.3, braces@~3.0.2: - version "3.0.3" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz" - integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== - dependencies: - fill-range "^7.1.1" - -browser-extension-url-match@^0.3.3: - version "0.3.3" - resolved "https://registry.npmjs.org/browser-extension-url-match/-/browser-extension-url-match-0.3.3.tgz" - integrity sha512-x7uphFW6fxHF8/RfNqUQomZL4KsKgNb3f8ZrLsYsxSVTaOyeg9I3w/8iuQ2I51vVmrtiYiv37Tfq5gQyMN3j2Q== - dependencies: - fancy-regex "^0.4.3" - -browser-id3-writer@^6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/browser-id3-writer/-/browser-id3-writer-6.1.0.tgz" - integrity sha512-99mQN3GAZlqWnbA0cispSAab9uJJzzv86ffoA/w6ohfqAi/5qOGbEhh0fRAQMrnhsOBsy89mqMc+JdnaWtJObw== - -browserslist@^4.24.0, browserslist@^4.24.2, "browserslist@>= 4.21.0": - version "4.24.2" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz" - integrity sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg== - dependencies: - caniuse-lite "^1.0.30001669" - electron-to-chromium "^1.5.41" - node-releases "^2.0.18" - update-browserslist-db "^1.1.1" - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -bun-types@1.1.34: - version "1.1.34" - resolved "https://registry.npmjs.org/bun-types/-/bun-types-1.1.34.tgz" - integrity sha512-br5QygTEL/TwB4uQOb96Ky22j4Gq2WxWH/8Oqv20fk5HagwKXo/akB+LiYgSfzexCt6kkcUaVm+bKiPl71xPvw== - dependencies: - "@types/node" "~20.12.8" - "@types/ws" "~8.5.10" - -bundle-name@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz" - integrity sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q== - dependencies: - run-applescript "^7.0.0" - -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz" - integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== - -bytes@3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" - integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== - -call-bind@^1.0.5, call-bind@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz" - integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== - dependencies: - es-define-property "^1.0.0" - es-errors "^1.3.0" - function-bind "^1.1.2" - get-intrinsic "^1.2.4" - set-function-length "^1.2.1" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -caniuse-lite@^1.0.30001669: - version "1.0.30001677" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001677.tgz" - integrity sha512-fmfjsOlJUpMWu+mAAtZZZHz7UEwsUxIIvu1TJfO1HqFQvB/B+ii0xr9B5HpbZY/mC4XZ8SvjHJqtAY6pDPQEog== - -chaimu@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/chaimu/-/chaimu-1.0.2.tgz" - integrity sha512-4JtFq1oVUtycdFqPa3b2EqisZj4CVdU4bi7qUJz83SuG7vOMjNctddalbkV+ttSJyBxAWoXU4jXyEUmuASS7FA== - dependencies: - soundtouchjs "^0.1.30" - -chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@~5.3.0: - version "5.3.0" - resolved "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz" - integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== - -chokidar@^3.6.0: - version "3.6.0" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz" - integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -chokidar@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz" - integrity sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA== - dependencies: - readdirp "^4.0.1" - -chrome-trace-event@^1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz" - integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== - -ci-info@^3.2.0, ci-info@^3.7.0: - version "3.9.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz" - integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== - -cli-cursor@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz" - integrity sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw== - dependencies: - restore-cursor "^5.0.0" - -cli-truncate@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz" - integrity sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA== - dependencies: - slice-ansi "^5.0.0" - string-width "^7.0.0" - -clone-deep@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz" - integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== - dependencies: - is-plain-object "^2.0.4" - kind-of "^6.0.2" - shallow-clone "^3.0.0" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -colorette@^2.0.0, colorette@^2.0.10, colorette@^2.0.14, colorette@^2.0.20: - version "2.0.20" - resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz" - integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== - -commander@^10.0.1: - version "10.0.1" - resolved "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz" - integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== - -commander@^2.20.0: - version "2.20.3" - resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@~12.1.0: - version "12.1.0" - resolved "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz" - integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA== - -compressible@~2.0.16: - version "2.0.18" - resolved "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz" - integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== - dependencies: - mime-db ">= 1.43.0 < 2" - -compression@^1.7.4: - version "1.7.4" - resolved "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== - dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" - debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" - vary "~1.1.2" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -connect-history-api-fallback@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz" - integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== - -content-disposition@0.5.4: - version "0.5.4" - resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== - dependencies: - safe-buffer "5.2.1" - -content-type@~1.0.4, content-type@~1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz" - integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" - integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== - -cookie@0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz" - integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== - -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - -cross-spawn@^7.0.2, cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -debug@^4.1.0, debug@^4.3.1, debug@^4.3.2: - version "4.3.4" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -debug@~4.3.6: - version "4.3.6" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz" - integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== - dependencies: - ms "2.1.2" - -debug@2.6.9: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -deep-is@^0.1.3: - version "0.1.4" - resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -default-browser-id@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz" - integrity sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA== - -default-browser@^5.2.1: - version "5.2.1" - resolved "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz" - integrity sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg== - dependencies: - bundle-name "^4.1.0" - default-browser-id "^5.0.0" - -define-data-property@^1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz" - integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== - dependencies: - es-define-property "^1.0.0" - es-errors "^1.3.0" - gopd "^1.0.1" - -define-lazy-prop@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz" - integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" - integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== - -depd@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - -destroy@1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" - integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== - -detect-libc@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz" - integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== - -detect-node@^2.0.4: - version "2.1.0" - resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz" - integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== - -dns-packet@^5.2.2: - version "5.6.1" - resolved "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz" - integrity sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw== - dependencies: - "@leichtgewicht/ip-codec" "^2.0.1" - -dom-parser@^1.1.5: - version "1.1.5" - resolved "https://registry.npmjs.org/dom-parser/-/dom-parser-1.1.5.tgz" - integrity sha512-lCiFG48ZUzGXjKN0qhSkxD/i3ndyV6I37zQ3W2VFYLjF1ob8A+QgSsM7Ps2UT0d3LpJxLMmMHiJJ34z5hkKLiA== - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" - integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== - -electron-to-chromium@^1.5.41: - version "1.5.50" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.50.tgz" - integrity sha512-eMVObiUQ2LdgeO1F/ySTXsvqvxb6ZH2zPGaMYsWzRDdOddUa77tdmI0ltg+L16UpbWdhPmuF3wIQYyQq65WfZw== - -emoji-regex@^10.3.0: - version "10.3.0" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz" - integrity sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw== - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" - integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== - -enhanced-resolve@^5.0.0, enhanced-resolve@^5.17.1: - version "5.17.1" - resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz" - integrity sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg== - dependencies: - graceful-fs "^4.2.4" - tapable "^2.2.0" - -enquirer@^2.4.1: - version "2.4.1" - resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz" - integrity sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== - dependencies: - ansi-colors "^4.1.1" - strip-ansi "^6.0.1" - -envinfo@^7.7.3: - version "7.10.0" - resolved "https://registry.npmjs.org/envinfo/-/envinfo-7.10.0.tgz" - integrity sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw== - -environment@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz" - integrity sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q== - -es-define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz" - integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== - dependencies: - get-intrinsic "^1.2.4" - -es-errors@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz" - integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== - -es-module-lexer@^1.2.1: - version "1.3.1" - resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.1.tgz" - integrity sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q== - -escalade@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz" - integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" - integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -eslint-plugin-oxlint@^0.11.0: - version "0.11.0" - resolved "https://registry.npmjs.org/eslint-plugin-oxlint/-/eslint-plugin-oxlint-0.11.0.tgz" - integrity sha512-9CHYh1eLt2Z83ShLbvj79G6lqC2qLJBfsd7baGWOwDmLM2GXu2COi1r4tMMS2OI8gfB4s2uOgS8ZiYzHhN8uzQ== - dependencies: - jsonc-parser "^3.3.1" - -eslint-scope@^8.2.0: - version "8.2.0" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz" - integrity sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-scope@5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-visitor-keys@^3.3.0: - version "3.4.3" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" - integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== - -eslint-visitor-keys@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz" - integrity sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw== - -eslint-webpack-plugin@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-4.2.0.tgz" - integrity sha512-rsfpFQ01AWQbqtjgPRr2usVRxhWDuG0YDYcG8DJOteD3EFnpeuYuOwk0PQiN7PRBTqS6ElNdtPZPggj8If9WnA== - dependencies: - "@types/eslint" "^8.56.10" - jest-worker "^29.7.0" - micromatch "^4.0.5" - normalize-path "^3.0.0" - schema-utils "^4.2.0" - -"eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^8.0.0 || ^9.0.0", eslint@^9.14.0: - version "9.14.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-9.14.0.tgz" - integrity sha512-c2FHsVBr87lnUtjP4Yhvk4yEhKrQavGafRA/Se1ouse8PfbfC/Qh9Mxa00yWsZRlqeUB9raXip0aiiUZkgnr9g== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.12.1" - "@eslint/config-array" "^0.18.0" - "@eslint/core" "^0.7.0" - "@eslint/eslintrc" "^3.1.0" - "@eslint/js" "9.14.0" - "@eslint/plugin-kit" "^0.2.0" - "@humanfs/node" "^0.16.6" - "@humanwhocodes/module-importer" "^1.0.1" - "@humanwhocodes/retry" "^0.4.0" - "@types/estree" "^1.0.6" - "@types/json-schema" "^7.0.15" - ajv "^6.12.4" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - escape-string-regexp "^4.0.0" - eslint-scope "^8.2.0" - eslint-visitor-keys "^4.2.0" - espree "^10.3.0" - esquery "^1.5.0" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^8.0.0" - find-up "^5.0.0" - glob-parent "^6.0.2" - ignore "^5.2.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - json-stable-stringify-without-jsonify "^1.0.1" - lodash.merge "^4.6.2" - minimatch "^3.1.2" - natural-compare "^1.4.0" - optionator "^0.9.3" - text-table "^0.2.0" - -espree@^10.0.1, espree@^10.3.0: - version "10.3.0" - resolved "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz" - integrity sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg== - dependencies: - acorn "^8.14.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^4.2.0" - -esquery@^1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz" - integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0, estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" - integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== - -eventemitter3@^4.0.0: - version "4.0.7" - resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -eventemitter3@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz" - integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== - -events@^3.2.0: - version "3.3.0" - resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" - integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== - -execa@~8.0.1: - version "8.0.1" - resolved "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz" - integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^8.0.1" - human-signals "^5.0.0" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^4.1.0" - strip-final-newline "^3.0.0" - -express@^4.19.2: - version "4.19.2" - resolved "https://registry.npmjs.org/express/-/express-4.19.2.tgz" - integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== - dependencies: - accepts "~1.3.8" - array-flatten "1.1.1" - body-parser "1.20.2" - content-disposition "0.5.4" - content-type "~1.0.4" - cookie "0.6.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "2.0.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "1.2.0" - fresh "0.5.2" - http-errors "2.0.0" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "2.4.1" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.7" - qs "6.11.0" - range-parser "~1.2.1" - safe-buffer "5.2.1" - send "0.18.0" - serve-static "1.15.0" - setprototypeof "1.2.0" - statuses "2.0.1" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -fancy-regex@^0.4.3: - version "0.4.3" - resolved "https://registry.npmjs.org/fancy-regex/-/fancy-regex-0.4.3.tgz" - integrity sha512-c9R6Q7cM8pX5i0ZF3sAjYWPFsjGOUthPWPnkuZgDP8i6bzRtTnSXX5PJeWc34w/C0tbGj/bO3GSmdnEEj4K5PQ== - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - -fastest-levenshtein@^1.0.12: - version "1.0.16" - resolved "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz" - integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== - -faye-websocket@^0.11.3: - version "0.11.4" - resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz" - integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== - dependencies: - websocket-driver ">=0.5.1" - -file-entry-cache@^8.0.0: - version "8.0.0" - resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz" - integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== - dependencies: - flat-cache "^4.0.0" - -fill-range@^7.1.1: - version "7.1.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz" - integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== - dependencies: - to-regex-range "^5.0.1" - -finalhandler@1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz" - integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "2.4.1" - parseurl "~1.3.3" - statuses "2.0.1" - unpipe "~1.0.0" - -find-up@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -find-yarn-workspace-root@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz" - integrity sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ== - dependencies: - micromatch "^4.0.2" - -flat-cache@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz" - integrity sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw== - dependencies: - flatted "^3.2.9" - keyv "^4.5.4" - -flat@^5.0.2: - version "5.0.2" - resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== - -flatted@^3.2.9: - version "3.3.1" - resolved "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz" - integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== - -follow-redirects@^1.0.0: - version "1.15.5" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz" - integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw== - -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" - integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== - -fs-extra@^9.0.0: - version "9.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -function-bind@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" - integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - -get-east-asian-width@^1.0.0: - version "1.2.0" - resolved "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz" - integrity sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA== - -get-intrinsic@^1.1.3, get-intrinsic@^1.2.4: - version "1.2.4" - resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz" - integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== - dependencies: - es-errors "^1.3.0" - function-bind "^1.1.2" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" - -get-stream@^8.0.1: - version "8.0.1" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz" - integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== - -glob-parent@^6.0.2: - version "6.0.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-to-regexp@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz" - integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== - -glob@^7.1.3: - version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^14.0.0: - version "14.0.0" - resolved "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz" - integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ== - -globals@^15.12.0: - version "15.12.0" - resolved "https://registry.npmjs.org/globals/-/globals-15.12.0.tgz" - integrity sha512-1+gLErljJFhbOVyaetcwJiJ4+eLe45S2E7P5UiZ9xGfeq3ATQf5DOv9G7MH3gGbKQLkzmNh2DxfZwLdw+j6oTQ== - -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" - -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: - version "4.2.11" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" - integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== - -handle-thing@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz" - integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-property-descriptors@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz" - integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== - dependencies: - es-define-property "^1.0.0" - -has-proto@^1.0.1: - version "1.0.3" - resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz" - integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== - -has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -hasown@^2.0.0, hasown@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" - integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== - dependencies: - function-bind "^1.1.2" - -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz" - integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -html-entities@^2.4.0: - version "2.4.0" - resolved "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz" - integrity sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ== - -http-deceiver@^1.2.7: - version "1.2.7" - resolved "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz" - integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== - -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" - integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== - dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" - -http-parser-js@>=0.5.1: - version "0.5.8" - resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz" - integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== - -http-proxy-middleware@^2.0.3: - version "2.0.6" - resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz" - integrity sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw== - dependencies: - "@types/http-proxy" "^1.17.8" - http-proxy "^1.18.1" - is-glob "^4.0.1" - is-plain-obj "^3.0.0" - micromatch "^4.0.2" - -http-proxy@^1.18.1: - version "1.18.1" - resolved "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz" - integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== - dependencies: - eventemitter3 "^4.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - -human-signals@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz" - integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== - -husky@^9.1.6: - version "9.1.6" - resolved "https://registry.npmjs.org/husky/-/husky-9.1.6.tgz" - integrity sha512-sqbjZKK7kf44hfdE94EoX8MZNk0n7HeW37O4YrVGCF4wzgQjp+akPAkfUK5LZ6KuR/6sqeAVuXHji+RzQgOn5A== - -hyperdyperid@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz" - integrity sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A== - -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -ignore@^5.2.0: - version "5.3.2" - resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz" - integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== - -immutable@^4.0.0: - version "4.3.4" - resolved "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz" - integrity sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA== - -import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-local@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz" - integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3, inherits@2, inherits@2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" - integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== - -interpret@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz" - integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== - -ipaddr.js@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz" - integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ== - -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-core-module@^2.13.0: - version "2.15.1" - resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz" - integrity sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ== - dependencies: - hasown "^2.0.2" - -is-docker@^2.0.0: - version "2.2.1" - resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - -is-docker@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz" - integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-fullwidth-code-point@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz" - integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== - -is-fullwidth-code-point@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz" - integrity sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA== - dependencies: - get-east-asian-width "^1.0.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-inside-container@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz" - integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== - dependencies: - is-docker "^3.0.0" - -is-network-error@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/is-network-error/-/is-network-error-1.0.1.tgz" - integrity sha512-OwQXkwBJeESyhFw+OumbJVD58BFBJJI5OM5S1+eyrDKlgDZPX2XNT5gXS56GSD3NPbbwUuMlR1Q71SRp5SobuQ== - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-plain-obj@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz" - integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== - -is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz" - integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== - -is-wsl@^2.1.1: - version "2.2.0" - resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - -is-wsl@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz" - integrity sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw== - dependencies: - is-inside-container "^1.0.0" - -isarray@^2.0.5: - version "2.0.5" - resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -isexe@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz" - integrity sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ== - -isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" - integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== - -jest-util@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz" - integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== - dependencies: - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-worker@^27.4.5: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz" - integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest-worker@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz" - integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== - dependencies: - "@types/node" "*" - jest-util "^29.7.0" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - -json-parse-even-better-errors@^2.3.1: - version "2.3.1" - resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-parse-even-better-errors@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz" - integrity sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - -json-stable-stringify@^1.0.2: - version "1.1.1" - resolved "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.1.1.tgz" - integrity sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg== - dependencies: - call-bind "^1.0.5" - isarray "^2.0.5" - jsonify "^0.0.1" - object-keys "^1.1.1" - -jsonc-parser@^3.3.1: - version "3.3.1" - resolved "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz" - integrity sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ== - -jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== - dependencies: - universalify "^2.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - -jsonify@^0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz" - integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg== - -keyv@^4.5.4: - version "4.5.4" - resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz" - integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== - dependencies: - json-buffer "3.0.1" - -kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -klaw-sync@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz" - integrity sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ== - dependencies: - graceful-fs "^4.1.11" - -launch-editor@^2.6.1: - version "2.6.1" - resolved "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz" - integrity sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw== - dependencies: - picocolors "^1.0.0" - shell-quote "^1.8.1" - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -lightningcss-win32-x64-msvc@1.28.1: - version "1.28.1" - resolved "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.28.1.tgz" - integrity sha512-ZPQtvx+uQBzrSdHH8p4H3M9Alue+x369TPZAA3b4K3d92FPhpZCuBG04+HQzspam9sVeID9mI6f3VRAs2ezaEA== - -lightningcss@^1.28.1: - version "1.28.1" - resolved "https://registry.npmjs.org/lightningcss/-/lightningcss-1.28.1.tgz" - integrity sha512-KRDkHlLlNj3DWh79CDt93fPlRJh2W1AuHV0ZSZAMMuN7lqlsZTV5842idfS1urWG8q9tc17velp1gCXhY7sLnQ== - dependencies: - detect-libc "^1.0.3" - optionalDependencies: - lightningcss-darwin-arm64 "1.28.1" - lightningcss-darwin-x64 "1.28.1" - lightningcss-freebsd-x64 "1.28.1" - lightningcss-linux-arm-gnueabihf "1.28.1" - lightningcss-linux-arm64-gnu "1.28.1" - lightningcss-linux-arm64-musl "1.28.1" - lightningcss-linux-x64-gnu "1.28.1" - lightningcss-linux-x64-musl "1.28.1" - lightningcss-win32-arm64-msvc "1.28.1" - lightningcss-win32-x64-msvc "1.28.1" - -lilconfig@~3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz" - integrity sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow== - -lint-staged@^15.2.10: - version "15.2.10" - resolved "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.10.tgz" - integrity sha512-5dY5t743e1byO19P9I4b3x8HJwalIznL5E1FWYnU6OWw33KxNBSLAc6Cy7F2PsFEO8FKnLwjwm5hx7aMF0jzZg== - dependencies: - chalk "~5.3.0" - commander "~12.1.0" - debug "~4.3.6" - execa "~8.0.1" - lilconfig "~3.1.2" - listr2 "~8.2.4" - micromatch "~4.0.8" - pidtree "~0.6.0" - string-argv "~0.3.2" - yaml "~2.5.0" - -listr2@~8.2.4: - version "8.2.4" - resolved "https://registry.npmjs.org/listr2/-/listr2-8.2.4.tgz" - integrity sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g== - dependencies: - cli-truncate "^4.0.0" - colorette "^2.0.20" - eventemitter3 "^5.0.1" - log-update "^6.1.0" - rfdc "^1.4.1" - wrap-ansi "^9.0.0" - -lit-element@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/lit-element/-/lit-element-4.1.0.tgz" - integrity sha512-gSejRUQJuMQjV2Z59KAS/D4iElUhwKpIyJvZ9w+DIagIQjfJnhR20h2Q5ddpzXGS+fF0tMZ/xEYGMnKmaI/iww== - dependencies: - "@lit-labs/ssr-dom-shim" "^1.2.0" - "@lit/reactive-element" "^2.0.4" - lit-html "^3.2.0" - -lit-html@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/lit-html/-/lit-html-3.2.0.tgz" - integrity sha512-pwT/HwoxqI9FggTrYVarkBKFN9MlTUpLrDHubTmW4SrkL3kkqW5gxwbxMMUnbbRHBC0WTZnYHcjDSCM559VyfA== - dependencies: - "@types/trusted-types" "^2.0.2" - -lit@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/lit/-/lit-3.2.1.tgz" - integrity sha512-1BBa1E/z0O9ye5fZprPtdqnc0BFzxIxTTOO/tQFmyC/hj1O3jL4TfmLBw0WEwjAokdLwpclkvGgDJwTIh0/22w== - dependencies: - "@lit/reactive-element" "^2.0.4" - lit-element "^4.1.0" - lit-html "^3.2.0" - -loader-runner@^4.2.0: - version "4.3.0" - resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz" - integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -log-update@^6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz" - integrity sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w== - dependencies: - ansi-escapes "^7.0.0" - cli-cursor "^5.0.0" - slice-ansi "^7.1.0" - strip-ansi "^7.1.0" - wrap-ansi "^9.0.0" - -long@^5.0.0: - version "5.2.3" - resolved "https://registry.npmjs.org/long/-/long-5.2.3.tgz" - integrity sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q== - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" - integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== - -memfs@^4.6.0: - version "4.11.1" - resolved "https://registry.npmjs.org/memfs/-/memfs-4.11.1.tgz" - integrity sha512-LZcMTBAgqUUKNXZagcZxvXXfgF1bHX7Y7nQ0QyEiNbRJgE29GhgPd8Yna1VQcLlPiHt/5RFJMWYN9Uv/VPNvjQ== - dependencies: - "@jsonjoy.com/json-pack" "^1.0.3" - "@jsonjoy.com/util" "^1.3.0" - tree-dump "^1.0.1" - tslib "^2.0.0" - -memorystream@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz" - integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" - integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" - integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== - -micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.5, micromatch@~4.0.8: - version "4.0.8" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz" - integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== - dependencies: - braces "^3.0.3" - picomatch "^2.3.1" - -"mime-db@>= 1.43.0 < 2", mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: - version "2.1.35" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mime@1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mimic-fn@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz" - integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== - -mimic-function@^5.0.0: - version "5.0.1" - resolved "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz" - integrity sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA== - -minimalistic-assert@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimatch@^3.1.1, minimatch@^3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^9.0.0: - version "9.0.4" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz" - integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== - dependencies: - brace-expansion "^2.0.1" - -minimist@^1.2.6: - version "1.2.8" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - -mitt@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz" - integrity sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@2.1.3: - version "2.1.3" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -multicast-dns@^7.2.5: - version "7.2.5" - resolved "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz" - integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== - dependencies: - dns-packet "^5.2.2" - thunky "^1.0.2" - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== - -negotiator@0.6.3: - version "0.6.3" - resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== - -neo-async@^2.6.2: - version "2.6.2" - resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== - -node-addon-api@^7.0.0: - version "7.1.1" - resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz" - integrity sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ== - -node-forge@^1: - version "1.3.1" - resolved "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz" - integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== - -node-releases@^2.0.18: - version "2.0.18" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz" - integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -npm-normalize-package-bin@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-4.0.0.tgz" - integrity sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w== - -npm-run-all2@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/npm-run-all2/-/npm-run-all2-7.0.1.tgz" - integrity sha512-Adbv+bJQ8UTAM03rRODqrO5cx0YU5KCG2CvHtSURiadvdTjjgGJXdbc1oQ9CXBh9dnGfHSoSB1Web/0Dzp6kOQ== - dependencies: - ansi-styles "^6.2.1" - cross-spawn "^7.0.3" - memorystream "^0.3.1" - minimatch "^9.0.0" - pidtree "^0.6.0" - read-package-json-fast "^4.0.0" - shell-quote "^1.7.3" - which "^5.0.0" - -npm-run-path@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz" - integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== - dependencies: - path-key "^4.0.0" - -object-inspect@^1.13.1: - version "1.13.1" - resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz" - integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== - -object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -obuf@^1.0.0, obuf@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz" - integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== - -on-finished@^2.4.1, on-finished@2.4.1: - version "2.4.1" - resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" - integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -onetime@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz" - integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== - dependencies: - mimic-fn "^4.0.0" - -onetime@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz" - integrity sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ== - dependencies: - mimic-function "^5.0.0" - -open@^10.0.3: - version "10.0.3" - resolved "https://registry.npmjs.org/open/-/open-10.0.3.tgz" - integrity sha512-dtbI5oW7987hwC9qjJTyABldTaa19SuyJse1QboWv3b0qCcrrLNVDqBx1XgELAjh9QTVQaP/C5b1nhQebd1H2A== - dependencies: - default-browser "^5.2.1" - define-lazy-prop "^3.0.0" - is-inside-container "^1.0.0" - is-wsl "^3.1.0" - -open@^7.4.2: - version "7.4.2" - resolved "https://registry.npmjs.org/open/-/open-7.4.2.tgz" - integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== - dependencies: - is-docker "^2.0.0" - is-wsl "^2.1.1" - -optionator@^0.9.3: - version "0.9.3" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz" - integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== - dependencies: - "@aashutoshrathi/word-wrap" "^1.2.3" - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - -os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" - integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== - -oxlint@^0.11.0: - version "0.11.0" - resolved "https://registry.npmjs.org/oxlint/-/oxlint-0.11.0.tgz" - integrity sha512-uY6/R4k5bECwJBR+y8CqGRcUb5hxNReziBjt5+pk6DKxj46DqMd6HwEk090KnaH1czVf23r8mcEsJYGowMWeIA== - optionalDependencies: - "@oxlint/darwin-arm64" "0.11.0" - "@oxlint/darwin-x64" "0.11.0" - "@oxlint/linux-arm64-gnu" "0.11.0" - "@oxlint/linux-arm64-musl" "0.11.0" - "@oxlint/linux-x64-gnu" "0.11.0" - "@oxlint/linux-x64-musl" "0.11.0" - "@oxlint/win32-arm64" "0.11.0" - "@oxlint/win32-x64" "0.11.0" - -p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -p-retry@^6.2.0: - version "6.2.0" - resolved "https://registry.npmjs.org/p-retry/-/p-retry-6.2.0.tgz" - integrity sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA== - dependencies: - "@types/retry" "0.12.2" - is-network-error "^1.0.0" - retry "^0.13.1" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parseurl@~1.3.2, parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -patch-package@^8.0.0: - version "8.0.0" - resolved "https://registry.npmjs.org/patch-package/-/patch-package-8.0.0.tgz" - integrity sha512-da8BVIhzjtgScwDJ2TtKsfT5JFWz1hYoBl9rUQ1f38MC2HwnEIkK8VN3dKMKcP7P7bvvgzNDbfNHtx3MsQb5vA== - dependencies: - "@yarnpkg/lockfile" "^1.1.0" - chalk "^4.1.2" - ci-info "^3.7.0" - cross-spawn "^7.0.3" - find-yarn-workspace-root "^2.0.0" - fs-extra "^9.0.0" - json-stable-stringify "^1.0.2" - klaw-sync "^6.0.0" - minimist "^1.2.6" - open "^7.4.2" - rimraf "^2.6.3" - semver "^7.5.3" - slash "^2.0.0" - tmp "^0.0.33" - yaml "^2.2.2" - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-key@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz" - integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" - integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== - -picocolors@^1.0.0, picocolors@^1.1.0: - version "1.1.1" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz" - integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pidtree@^0.6.0, pidtree@~0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz" - integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== - -pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -protobufjs@^7.4.0: - version "7.4.0" - resolved "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz" - integrity sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw== - dependencies: - "@protobufjs/aspromise" "^1.1.2" - "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" - "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" - "@protobufjs/path" "^1.1.2" - "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" - "@types/node" ">=13.7.0" - long "^5.0.0" - -proxy-addr@~2.0.7: - version "2.0.7" - resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - -punycode@^2.1.0: - version "2.3.0" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz" - integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== - -qs@6.11.0: - version "6.11.0" - resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz" - integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== - dependencies: - side-channel "^1.0.4" - -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -range-parser@^1.2.1, range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.5.2: - version "2.5.2" - resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz" - integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - -read-package-json-fast@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-4.0.0.tgz" - integrity sha512-qpt8EwugBWDw2cgE2W+/3oxC+KTez2uSVR8JU9Q36TXPAGCaozfQUs59v4j4GFpWTaw0i6hAZSvOmu1J0uOEUg== - dependencies: - json-parse-even-better-errors "^4.0.0" - npm-normalize-package-bin "^4.0.0" - -readable-stream@^2.0.1: - version "2.3.8" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" - integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.0.6: - version "3.6.2" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-4.0.1.tgz" - integrity sha512-GkMg9uOTpIWWKbSsgwb5fA4EavTR+SG/PMPoAY8hkhHfEEY0/vqljY+XHqtDf2cr2IJtoNRDbrrEpZUiZCkYRw== - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -rechoir@^0.8.0: - version "0.8.0" - resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz" - integrity sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ== - dependencies: - resolve "^1.20.0" - -requestidlecallback-polyfill@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/requestidlecallback-polyfill/-/requestidlecallback-polyfill-1.0.2.tgz" - integrity sha512-zzkRzvMe7UdV0M7AIU70vl2fh4rFnNYDL8U0ISwWiOX/5MowBV1ESYCWSQP/KsgJNUOC/AS6X3DApOmxoyE6MA== - -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" - integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== - -resolve-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== - dependencies: - resolve-from "^5.0.0" - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve@^1.20.0: - version "1.22.8" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz" - integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== - dependencies: - is-core-module "^2.13.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -restore-cursor@^5.0.0: - version "5.1.0" - resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz" - integrity sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA== - dependencies: - onetime "^7.0.0" - signal-exit "^4.1.0" - -retry@^0.13.1: - version "0.13.1" - resolved "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz" - integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== - -rfdc@^1.4.1: - version "1.4.1" - resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz" - integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== - -rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -run-applescript@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz" - integrity sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A== - -safe-buffer@^5.1.0, safe-buffer@>=5.1.0, safe-buffer@~5.2.0, safe-buffer@5.2.1: - version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -"safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sass@^1.80.6: - version "1.80.6" - resolved "https://registry.npmjs.org/sass/-/sass-1.80.6.tgz" - integrity sha512-ccZgdHNiBF1NHBsWvacvT5rju3y1d/Eu+8Ex6c21nHp2lZGLBEtuwc415QfiI1PJa1TpCo3iXwwSRjRpn2Ckjg== - dependencies: - chokidar "^4.0.0" - immutable "^4.0.0" - source-map-js ">=0.6.2 <2.0.0" - optionalDependencies: - "@parcel/watcher" "^2.4.1" - -schema-utils@^3.1.1: - version "3.3.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz" - integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== - dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - -schema-utils@^3.2.0: - version "3.3.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz" - integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== - dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - -schema-utils@^4.0.0, schema-utils@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz" - integrity sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw== - dependencies: - "@types/json-schema" "^7.0.9" - ajv "^8.9.0" - ajv-formats "^2.1.1" - ajv-keywords "^5.1.0" - -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz" - integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== - -selfsigned@^2.4.1: - version "2.4.1" - resolved "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz" - integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== - dependencies: - "@types/node-forge" "^1.3.0" - node-forge "^1" - -semver@^7.3.4, semver@^7.5.3: - version "7.6.3" - resolved "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz" - integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== - -send@0.18.0: - version "0.18.0" - resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz" - integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== - dependencies: - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "2.0.0" - mime "1.6.0" - ms "2.1.3" - on-finished "2.4.1" - range-parser "~1.2.1" - statuses "2.0.1" - -serialize-javascript@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz" - integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== - dependencies: - randombytes "^2.1.0" - -serve-index@^1.9.1: - version "1.9.1" - resolved "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz" - integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== - dependencies: - accepts "~1.3.4" - batch "0.6.1" - debug "2.6.9" - escape-html "~1.0.3" - http-errors "~1.6.2" - mime-types "~2.1.17" - parseurl "~1.3.2" - -serve-static@1.15.0: - version "1.15.0" - resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz" - integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.18.0" - -set-function-length@^1.2.1: - version "1.2.2" - resolved "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz" - integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== - dependencies: - define-data-property "^1.1.4" - es-errors "^1.3.0" - function-bind "^1.1.2" - get-intrinsic "^1.2.4" - gopd "^1.0.1" - has-property-descriptors "^1.0.2" - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== - -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== - -shallow-clone@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz" - integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== - dependencies: - kind-of "^6.0.2" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -shell-quote@^1.7.3, shell-quote@^1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz" - integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== - -side-channel@^1.0.4: - version "1.0.6" - resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz" - integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== - dependencies: - call-bind "^1.0.7" - es-errors "^1.3.0" - get-intrinsic "^1.2.4" - object-inspect "^1.13.1" - -signal-exit@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz" - integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== - -slash@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz" - integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== - -slice-ansi@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz" - integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== - dependencies: - ansi-styles "^6.0.0" - is-fullwidth-code-point "^4.0.0" - -slice-ansi@^7.1.0: - version "7.1.0" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz" - integrity sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg== - dependencies: - ansi-styles "^6.2.1" - is-fullwidth-code-point "^5.0.0" - -sockjs@^0.3.24: - version "0.3.24" - resolved "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz" - integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== - dependencies: - faye-websocket "^0.11.3" - uuid "^8.3.2" - websocket-driver "^0.7.4" - -soundtouchjs@^0.1.30: - version "0.1.30" - resolved "https://registry.npmjs.org/soundtouchjs/-/soundtouchjs-0.1.30.tgz" - integrity sha512-qc1kMCPQ+SH8tmoPwVSpVInGAE4XFyQ5uZLm1rLyGjwD+MT2ZdBWHWureyq2akDBYBE81GI0I0FdLCNBf86zDQ== - -"source-map-js@>=0.6.2 <2.0.0": - version "1.0.2" - resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== - -source-map-support@~0.5.20: - version "0.5.21" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0: - version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@^0.7.4: - version "0.7.4" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz" - integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== - -spdy-transport@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz" - integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== - dependencies: - debug "^4.1.0" - detect-node "^2.0.4" - hpack.js "^2.1.6" - obuf "^1.1.2" - readable-stream "^3.0.6" - wbuf "^1.7.3" - -spdy@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz" - integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== - dependencies: - debug "^4.1.0" - handle-thing "^2.0.0" - http-deceiver "^1.2.7" - select-hose "^2.0.0" - spdy-transport "^3.0.0" - -"statuses@>= 1.4.0 < 2": - version "1.5.0" - resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" - integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== - -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -string-argv@~0.3.2: - version "0.3.2" - resolved "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz" - integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== - -string-width@^7.0.0: - version "7.2.0" - resolved "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz" - integrity sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ== - dependencies: - emoji-regex "^10.3.0" - get-east-asian-width "^1.0.0" - strip-ansi "^7.1.0" - -strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^7.1.0: - version "7.1.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz" - integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== - dependencies: - ansi-regex "^6.0.1" - -strip-final-newline@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz" - integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== - -strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -tapable@^2.1.1, tapable@^2.2.0: - version "2.2.1" - resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz" - integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== - -terser-webpack-plugin@^5.0.0, terser-webpack-plugin@^5.3.10: - version "5.3.10" - resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz" - integrity sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w== - dependencies: - "@jridgewell/trace-mapping" "^0.3.20" - jest-worker "^27.4.5" - schema-utils "^3.1.1" - serialize-javascript "^6.0.1" - terser "^5.26.0" - -terser@^5.26.0: - version "5.28.1" - resolved "https://registry.npmjs.org/terser/-/terser-5.28.1.tgz" - integrity sha512-wM+bZp54v/E9eRRGXb5ZFDvinrJIOaTapx3WUokyVGZu5ucVCK55zEgGd5Dl2fSr3jUo5sDiERErUWLY6QPFyA== - dependencies: - "@jridgewell/source-map" "^0.3.3" - acorn "^8.8.2" - commander "^2.20.0" - source-map-support "~0.5.20" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== - -thingies@^1.20.0: - version "1.21.0" - resolved "https://registry.npmjs.org/thingies/-/thingies-1.21.0.tgz" - integrity sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g== - -thunky@^1.0.2: - version "1.1.0" - resolved "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz" - integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== - -tree-dump@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.2.tgz" - integrity sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ== - -ts-loader@^9.5.1: - version "9.5.1" - resolved "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.1.tgz" - integrity sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg== - dependencies: - chalk "^4.1.0" - enhanced-resolve "^5.0.0" - micromatch "^4.0.0" - semver "^7.3.4" - source-map "^0.7.4" - -tslib@^2, tslib@^2.0.0, tslib@2: - version "2.7.0" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz" - integrity sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA== - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -typescript@*, typescript@^5.0.0, typescript@^5.6.3: - version "5.6.3" - resolved "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz" - integrity sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw== - -undici-types@~5.26.4: - version "5.26.5" - resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz" - integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== - -universalify@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz" - integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== - -unpipe@~1.0.0, unpipe@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" - integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== - -update-browserslist-db@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz" - integrity sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A== - dependencies: - escalade "^3.2.0" - picocolors "^1.1.0" - -uri-js@^4.2.2, uri-js@^4.4.1: - version "4.4.1" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -util-deprecate@^1.0.1, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" - integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" - integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== - -vot.js@^1.3.8: - version "1.3.8" - resolved "https://registry.npmjs.org/vot.js/-/vot.js-1.3.8.tgz" - integrity sha512-CKCKB+VpYyrtULWvbPTIaoWKLRQ0mmTUeNmjsBMO2Dgk88hjW/1H4Wz+qCViju0nulAbuE0dtFMAWM2rnaG5fA== - dependencies: - dom-parser "^1.1.5" - protobufjs "^7.4.0" - -watchpack@^2.4.1: - version "2.4.1" - resolved "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz" - integrity sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg== - dependencies: - glob-to-regexp "^0.4.1" - graceful-fs "^4.1.2" - -wbuf@^1.1.0, wbuf@^1.7.3: - version "1.7.3" - resolved "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz" - integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== - dependencies: - minimalistic-assert "^1.0.0" - -webpack-cli@^5.1.4, webpack-cli@5.x.x: - version "5.1.4" - resolved "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz" - integrity sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg== - dependencies: - "@discoveryjs/json-ext" "^0.5.0" - "@webpack-cli/configtest" "^2.1.1" - "@webpack-cli/info" "^2.0.2" - "@webpack-cli/serve" "^2.0.5" - colorette "^2.0.14" - commander "^10.0.1" - cross-spawn "^7.0.3" - envinfo "^7.7.3" - fastest-levenshtein "^1.0.12" - import-local "^3.0.2" - interpret "^3.1.1" - rechoir "^0.8.0" - webpack-merge "^5.7.3" - -webpack-dev-middleware@^7.4.2: - version "7.4.2" - resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.4.2.tgz" - integrity sha512-xOO8n6eggxnwYpy1NlzUKpvrjfJTvae5/D6WOK0S2LSo7vjmo5gCM1DbLUmFqrMTJP+W/0YZNctm7jasWvLuBA== - dependencies: - colorette "^2.0.10" - memfs "^4.6.0" - mime-types "^2.1.31" - on-finished "^2.4.1" - range-parser "^1.2.1" - schema-utils "^4.0.0" - -webpack-dev-server@^5.0.0, webpack-dev-server@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.1.0.tgz" - integrity sha512-aQpaN81X6tXie1FoOB7xlMfCsN19pSvRAeYUHOdFWOlhpQ/LlbfTqYwwmEDFV0h8GGuqmCmKmT+pxcUV/Nt2gQ== - dependencies: - "@types/bonjour" "^3.5.13" - "@types/connect-history-api-fallback" "^1.5.4" - "@types/express" "^4.17.21" - "@types/serve-index" "^1.9.4" - "@types/serve-static" "^1.15.5" - "@types/sockjs" "^0.3.36" - "@types/ws" "^8.5.10" - ansi-html-community "^0.0.8" - bonjour-service "^1.2.1" - chokidar "^3.6.0" - colorette "^2.0.10" - compression "^1.7.4" - connect-history-api-fallback "^2.0.0" - express "^4.19.2" - graceful-fs "^4.2.6" - html-entities "^2.4.0" - http-proxy-middleware "^2.0.3" - ipaddr.js "^2.1.0" - launch-editor "^2.6.1" - open "^10.0.3" - p-retry "^6.2.0" - schema-utils "^4.2.0" - selfsigned "^2.4.1" - serve-index "^1.9.1" - sockjs "^0.3.24" - spdy "^4.0.2" - webpack-dev-middleware "^7.4.2" - ws "^8.18.0" - -webpack-merge@^5.7.3, webpack-merge@^5.9.0: - version "5.10.0" - resolved "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz" - integrity sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA== - dependencies: - clone-deep "^4.0.1" - flat "^5.0.2" - wildcard "^2.0.0" - -webpack-monkey@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/webpack-monkey/-/webpack-monkey-0.2.1.tgz" - integrity sha512-BFhOyl/2DGE9HzlOzTlqM8GUhb6CDsNY4d8lnhM85DQzzDV+USijD/Y+BKEP//I5IxRedBUTdSZBUnp12CighQ== - dependencies: - browser-extension-url-match "^0.3.3" - lodash "^4.17.21" - mitt "^3.0.1" - webpack-merge "^5.9.0" - -webpack-sources@^3.2.3: - version "3.2.3" - resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz" - integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== - -webpack@^5.0.0, webpack@^5.1.0, webpack@^5.96.1, webpack@5.x.x: - version "5.96.1" - resolved "https://registry.npmjs.org/webpack/-/webpack-5.96.1.tgz" - integrity sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA== - dependencies: - "@types/eslint-scope" "^3.7.7" - "@types/estree" "^1.0.6" - "@webassemblyjs/ast" "^1.12.1" - "@webassemblyjs/wasm-edit" "^1.12.1" - "@webassemblyjs/wasm-parser" "^1.12.1" - acorn "^8.14.0" - browserslist "^4.24.0" - chrome-trace-event "^1.0.2" - enhanced-resolve "^5.17.1" - es-module-lexer "^1.2.1" - eslint-scope "5.1.1" - events "^3.2.0" - glob-to-regexp "^0.4.1" - graceful-fs "^4.2.11" - json-parse-even-better-errors "^2.3.1" - loader-runner "^4.2.0" - mime-types "^2.1.27" - neo-async "^2.6.2" - schema-utils "^3.2.0" - tapable "^2.1.1" - terser-webpack-plugin "^5.3.10" - watchpack "^2.4.1" - webpack-sources "^3.2.3" - -websocket-driver@^0.7.4, websocket-driver@>=0.5.1: - version "0.7.4" - resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz" - integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== - dependencies: - http-parser-js ">=0.5.1" - safe-buffer ">=5.1.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.4" - resolved "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz" - integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -which@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/which/-/which-5.0.0.tgz" - integrity sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ== - dependencies: - isexe "^3.1.1" - -wildcard@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz" - integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== - -wrap-ansi@^9.0.0: - version "9.0.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz" - integrity sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q== - dependencies: - ansi-styles "^6.2.1" - string-width "^7.0.0" - strip-ansi "^7.1.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -ws@^8.18.0: - version "8.18.0" - resolved "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz" - integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== - -yaml@^2.2.2, yaml@~2.5.0: - version "2.5.0" - resolved "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz" - integrity sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From fb134ec97e53f8515c6b79181b63fa063ed2caa3 Mon Sep 17 00:00:00 2001 From: Toil <62353659+ilyhalight@users.noreply.github.com> Date: Wed, 6 Nov 2024 01:07:30 +0300 Subject: [PATCH 2/2] fix lightnincss on linux --- bun.lockb | Bin 251946 -> 257159 bytes package-lock.json | 191 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 191 insertions(+) diff --git a/bun.lockb b/bun.lockb index b6ec02330365156a9ddd098afef57389c9bcc7ac..bea532337292da0230922d8f361eda01dbb86f51 100644 GIT binary patch delta 51293 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 diff --git a/package-lock.json b/package-lock.json index 842df3ea..df98729c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3268,6 +3268,8 @@ }, "node_modules/lightningcss": { "version": "1.28.1", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.28.1.tgz", + "integrity": "sha512-KRDkHlLlNj3DWh79CDt93fPlRJh2W1AuHV0ZSZAMMuN7lqlsZTV5842idfS1urWG8q9tc17velp1gCXhY7sLnQ==", "dev": true, "license": "MPL-2.0", "dependencies": { @@ -3293,6 +3295,195 @@ "lightningcss-win32-x64-msvc": "1.28.1" } }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.28.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.28.1.tgz", + "integrity": "sha512-VG3vvzM0m/rguCdm76DdobNeNJnHK+jWcdkNLFWHLh9YCotRvbRIt45JxwcHlIF8TDqWStVLTdghq5NaigVCBQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.28.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.28.1.tgz", + "integrity": "sha512-O7ORdislvKfMohFl4Iq7fxKqdJOuuxArcglVI3amuFO5DJ0wfV3Gxgi1JRo49slfr7OVzJQEHLG4muTWYM5cTQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.28.1", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.28.1.tgz", + "integrity": "sha512-b7sF89B31kYYijxVcFO7l5u6UNA862YstNu+3YbLl/IQKzveL4a5cwR5cdpG+OOhErg/c2u9WCmzZoX2I5GBvw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.28.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.28.1.tgz", + "integrity": "sha512-p61kXwvhUDLLzkWHjzSFfUBW/F0iy3jr3CWi3k8SKULtJEsJXTI9DqRm9EixxMSe2AMBQBt4auTYiQL4B1N51A==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.28.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.28.1.tgz", + "integrity": "sha512-iO+fN9hOMmzfwqcG2/BgUtMKD48H2JO/SXU44fyIwpY2veb65QF5xiRrQ9l1FwIxbGK3231KBYCtAqv+xf+NsQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.28.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.28.1.tgz", + "integrity": "sha512-dnMHeXEmCUzHHZjaDpQBYuBKcN9nPC3nPFKl70bcj5Bkn5EmkcgEqm5p035LKOgvAwk1XwLpQCML6pXmCwz0NQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.28.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.28.1.tgz", + "integrity": "sha512-7vWDISaMUn+oo2TwRdf2hl/BLdPxvywv9JKEqNZB/0K7bXwV4XE9wN/C2sAp1gGuh6QBA8lpjF4JIPt3HNlCHA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.28.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.28.1.tgz", + "integrity": "sha512-IHCu9tVGP+x5BCpA2rF3D04DBokcBza/a8AuHQU+1AiMKubuMegPwcL7RatBgK4ztFHeYnnD5NdhwhRfYMAtNA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.28.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.28.1.tgz", + "integrity": "sha512-Erm72kHmMg/3h350PTseskz+eEGBM17Fuu79WW2Qqt0BfWSF1jHHc12lkJCWMYl5jcBHPs5yZdgNHtJ7IJS3Uw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, "node_modules/lightningcss-win32-x64-msvc": { "version": "1.28.1", "cpu": [