├── movie-web_firefox_extension.xpi ├── movie-web_chromium_extension ├── assets │ ├── active.png │ └── inactive.png ├── icon16.plasmo.6c567d50.png ├── icon32.plasmo.76b92899.png ├── icon48.plasmo.aced7582.png ├── icon64.plasmo.8bb5e6e0.png ├── icon128.plasmo.3c1ed2d2.png ├── tabs │ ├── PermissionGrant.html │ ├── PermissionRequest.html │ └── PermissionGrant.3af363e1.js ├── popup.html ├── manifest.json ├── _metadata │ └── verified_contents.json ├── movie-web.e3c97333.js └── static │ └── background │ └── index.js └── README.md /movie-web_firefox_extension.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/userkace/film-ext/HEAD/movie-web_firefox_extension.xpi -------------------------------------------------------------------------------- /movie-web_chromium_extension/assets/active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/userkace/film-ext/HEAD/movie-web_chromium_extension/assets/active.png -------------------------------------------------------------------------------- /movie-web_chromium_extension/assets/inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/userkace/film-ext/HEAD/movie-web_chromium_extension/assets/inactive.png -------------------------------------------------------------------------------- /movie-web_chromium_extension/icon16.plasmo.6c567d50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/userkace/film-ext/HEAD/movie-web_chromium_extension/icon16.plasmo.6c567d50.png -------------------------------------------------------------------------------- /movie-web_chromium_extension/icon32.plasmo.76b92899.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/userkace/film-ext/HEAD/movie-web_chromium_extension/icon32.plasmo.76b92899.png -------------------------------------------------------------------------------- /movie-web_chromium_extension/icon48.plasmo.aced7582.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/userkace/film-ext/HEAD/movie-web_chromium_extension/icon48.plasmo.aced7582.png -------------------------------------------------------------------------------- /movie-web_chromium_extension/icon64.plasmo.8bb5e6e0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/userkace/film-ext/HEAD/movie-web_chromium_extension/icon64.plasmo.8bb5e6e0.png -------------------------------------------------------------------------------- /movie-web_chromium_extension/icon128.plasmo.3c1ed2d2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/userkace/film-ext/HEAD/movie-web_chromium_extension/icon128.plasmo.3c1ed2d2.png -------------------------------------------------------------------------------- /movie-web_chromium_extension/tabs/PermissionGrant.html: -------------------------------------------------------------------------------- 1 | movie-web remastered extension
-------------------------------------------------------------------------------- /movie-web_chromium_extension/popup.html: -------------------------------------------------------------------------------- 1 | movie-web remastered extension
-------------------------------------------------------------------------------- /movie-web_chromium_extension/tabs/PermissionRequest.html: -------------------------------------------------------------------------------- 1 | movie-web remastered extension
-------------------------------------------------------------------------------- /movie-web_chromium_extension/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "update_url": "https://clients2.google.com/service/update2/crx", 3 | "icons":{"16":"icon16.plasmo.6c567d50.png","32":"icon32.plasmo.76b92899.png","48":"icon48.plasmo.aced7582.png","64":"icon64.plasmo.8bb5e6e0.png","128":"icon128.plasmo.3c1ed2d2.png"},"manifest_version":3,"action":{"default_icon":{"16":"icon16.plasmo.6c567d50.png","32":"icon32.plasmo.76b92899.png","48":"icon48.plasmo.aced7582.png","64":"icon64.plasmo.8bb5e6e0.png","128":"icon128.plasmo.3c1ed2d2.png"},"default_popup":"popup.html"},"version":"1.1.7","author":"Panda & movie-web","name":"movie-web remastered extension","description":"Enhance your streaming experience with just one click","background":{"service_worker":"static/background/index.js"},"permissions":["storage","declarativeNetRequest","activeTab","cookies"],"content_scripts":[{"matches":[""],"js":["movie-web.e3c97333.js"],"css":[]}],"optional_host_permissions":[""],"web_accessible_resources":[{"resources":["assets/active.png","assets/inactive.png"],"matches":[""]}]} -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # movie-web extension archive 2 | these are the raw files used for the extension before they were removed from their respective stores. 3 | 4 | ## usage 5 | ### firefox 6 | 1. [download](https://github.com/userkace/film-ext/releases/tag/1.1.4) the firefox `.zip` 7 | 2. unzip the `.xpi` file and open it, firefox should recognize it. 8 | 3. enable extension for your [movie-web instance](https://film.kace.dev). 9 | 10 | ### chromium 11 | *eg. _chrome, opera, edge, arc, etc._* 12 | 1. [download](https://github.com/userkace/film-ext/releases/tag/1.1.4) the chromium `.zip` 13 | 2. unzip the `unpacked folder` found inside. 14 | 3. enable developer mode for extensions on your respective chromium browser. 15 | 4. find `load unpacked` button and install the `unpacked folder` unzipped. 16 | 5. enable extension for your [movie-web instance](https://film.kace.dev). 17 | 18 | ## information 19 | due to the removal of the movie-web extensions from both chromium and firefox stores, i decided to export them so that it can be locally imported and used to run any [movie-web instance](https://film.kace.dev). this software is provided as is and would not be updated nor changed until further notice. viva la movie-web. 20 | 21 | ## instance 22 | [film.kace.dev](https://film.kace.dev) is my personal instance of movie-web. 23 | -------------------------------------------------------------------------------- /movie-web_chromium_extension/_metadata/verified_contents.json: -------------------------------------------------------------------------------- 1 | [{"description":"treehash per file","signed_content":{"payload":"eyJjb250ZW50X2hhc2hlcyI6W3siYmxvY2tfc2l6ZSI6NDA5NiwiZGlnZXN0Ijoic2hhMjU2IiwiZmlsZXMiOlt7InBhdGgiOiJhc3NldHMvYWN0aXZlLnBuZyIsInJvb3RfaGFzaCI6IkVEaTZTcHZGUjNMX1R6RzA2bTdjUUs0bWdwamZ1ZkhJWDlyLXNNamhTLUkifSx7InBhdGgiOiJhc3NldHMvaW5hY3RpdmUucG5nIiwicm9vdF9oYXNoIjoiMEJsS3EyNE9OVEROR2NIa3d1V0pjNkZfYjRlNjBqU0VxbHhQY3FjOWNwNCJ9LHsicGF0aCI6Imljb24xMjgucGxhc21vLjNjMWVkMmQyLnBuZyIsInJvb3RfaGFzaCI6IjZPMGVGSGItVkhCNF8wbEt5VUdwSGtKR0NIT2dZVHdiSGJJektuS3ZwMEUifSx7InBhdGgiOiJpY29uMTYucGxhc21vLjZjNTY3ZDUwLnBuZyIsInJvb3RfaGFzaCI6Im14bGd3X2pwRmswbDZDRDltSF85eXQ0R1Nna3hqallscmJkbjN2amNraFUifSx7InBhdGgiOiJpY29uMzIucGxhc21vLjc2YjkyODk5LnBuZyIsInJvb3RfaGFzaCI6Ik9BU3htRlhrVGIwc3lQRDREeThraEJJS3lNVmhZZ09ScFIyanEwRXBsQkEifSx7InBhdGgiOiJpY29uNDgucGxhc21vLmFjZWQ3NTgyLnBuZyIsInJvb3RfaGFzaCI6IkdUSkV4MGlrN1k0elZ5a3cwb2h6aE5yQlFRY2FkVDZfZ0lYUDNTV0RJUk0ifSx7InBhdGgiOiJpY29uNjQucGxhc21vLjhiYjVlNmUwLnBuZyIsInJvb3RfaGFzaCI6Imlyb0RkRW5CMkF3UFlHT1hmSXM2SGdzOElnWHY1V3lhcU5ldU1UZmxSRjgifSx7InBhdGgiOiJtYW5pZmVzdC5qc29uIiwicm9vdF9oYXNoIjoickFOUGdJNDc3eXNYTEJ0Z2FqRXJxZXEtNnktWS1zbDI3NUE1UGxZUS1KWSJ9LHsicGF0aCI6Im1vdmllLXdlYi5lM2M5NzMzMy5qcyIsInJvb3RfaGFzaCI6IlpwZ1BHaXNXenZCZlRBRkVGeXBNRU1DeWJlblppRldVRDdoZklsSnpjWDgifSx7InBhdGgiOiJwb3B1cC4xMDBmNjQ2Mi5qcyIsInJvb3RfaGFzaCI6IkMzUldPUXY4dnJqWG1rSXpnalN0THJadW91WkhsdnJwUVdMdF9EaTd2b0kifSx7InBhdGgiOiJwb3B1cC4zYjMwYmJhNC5jc3MiLCJyb290X2hhc2giOiI4VlVFcG1iZUZXamlkRl9qNTI4c19kbE0xU0xJMHlhRG9Sd2luUzRMdTFzIn0seyJwYXRoIjoicG9wdXAuaHRtbCIsInJvb3RfaGFzaCI6IlFnc2ZXVFBZY01pUUIzR2MxUDA1Tm9NS3Rmb21xRGVyLWlqQU94cmdYZ1EifSx7InBhdGgiOiJzdGF0aWMvYmFja2dyb3VuZC9pbmRleC5qcyIsInJvb3RfaGFzaCI6IklPdHg5TmpXenVaRzNISjFWaWFSUXcxTFpINm5UYTl6OVJGaGYtaHZ6cUEifSx7InBhdGgiOiJ0YWJzL1Blcm1pc3Npb25HcmFudC4zYWYzNjNlMS5qcyIsInJvb3RfaGFzaCI6Im9GeG0xSktyY0FMNVFlRmRkY0dKOUZJSlVILTAzeDZpYnN2QW5IQzNHaDgifSx7InBhdGgiOiJ0YWJzL1Blcm1pc3Npb25HcmFudC41ODI3OWQ4Zi5jc3MiLCJyb290X2hhc2giOiI0QjFxLTJlakM5bURlTlhHc0hCRkZteHV2Q3h1Q3lrQWM1M0dUUG16aFhrIn0seyJwYXRoIjoidGFicy9QZXJtaXNzaW9uR3JhbnQuaHRtbCIsInJvb3RfaGFzaCI6IjdFV3pReXpfS21IWjZ5YTBjR25iRmpPMFlBMjRwLTJOZ2xMRnNERmVzWjQifSx7InBhdGgiOiJ0YWJzL1Blcm1pc3Npb25SZXF1ZXN0LjMzYjFhY2U0LmNzcyIsInJvb3RfaGFzaCI6Iko3M2lRX0VqUXM3TFg2aW9TYTh0dDBJc2NicElWQlE3czNxaUlULWJTRzgifSx7InBhdGgiOiJ0YWJzL1Blcm1pc3Npb25SZXF1ZXN0LmNmYTA0YjM0LmpzIiwicm9vdF9oYXNoIjoiZDJKWE5rMlBBbFltY1dsY0FGSjJ3SzU3LTJQQkxvdDR0cVR5RzFCbkt3OCJ9LHsicGF0aCI6InRhYnMvUGVybWlzc2lvblJlcXVlc3QuaHRtbCIsInJvb3RfaGFzaCI6Im05bDVZOGM5MHFqMmtxN3JNQU5iakZ0X2psZW0yazFKdkFOanJkZDl1X0EifV0sImZvcm1hdCI6InRyZWVoYXNoIiwiaGFzaF9ibG9ja19zaXplIjo0MDk2fV0sIml0ZW1faWQiOiJuYmNqbGNva2dpZ2pmaGVqb2ZtYmFvbWNpbWdnaWFmbiIsIml0ZW1fdmVyc2lvbiI6IjEuMS43IiwicHJvdG9jb2xfdmVyc2lvbiI6MX0","signatures":[{"header":{"kid":"publisher"},"protected":"eyJhbGciOiJSUzI1NiJ9","signature":"U_Yihf9C1fUq8-ipqkI32w3DMqTCUF6wdceqeiX-4xveMdY8-kdDp7cE-W7RUenZ9DFfOSHdaUJUJnpzfoniWHoqVKHsX5ntsuKgC_UsMwktfOP0eEwecqoeLaEWiyj46_GCgvvunWFiaik_AKBqS2ngFm4RHpfg3RixyZJVKYKNmr1Wl3Ib5_CwYlE_Fz1pfmsL24vbKXwRe-s0q9tk3O-EfUx1SYaWork-u5awXGm-86Euv0UoxNvtwiot21h4e4-RHNaf2XOvw_P2IWSI41fUxCodW8KFCmYZ_f7pybEJ_zdu_WFKAKZiXFPnDe0ncZ2AacVfg-460xwca2W1KQ"},{"header":{"kid":"webstore"},"protected":"eyJhbGciOiJSUzI1NiJ9","signature":"g05h0sqA7kCNlYMku8Aupxaky0KH20fgMODf8qZsa12vANwTtH2gL-V0yc0746_C4aISAHPczPub48ABBLsU3Ezj4Lp0gLvgN0hEQQV4ZWBGgLezlrLFTIIMRMVScXyXmIcKKP5JCMKRPxyKijA9GjdssSvZUHnNWBS-h4TtB3JmhZ2Qf8EuTyrvZsBAaGrQnXpEgh4hmZopBz-SU557A9W8YQU_7xrPIz-80im6Rp_6r5IgEWPKq4fjMwxAXQvxKCwGgrg_B3QvKRBKIngQ8ZHw2Kiv854bUwNIDMQIXxgriyi05-8z7CQ8FYtMtAohrUpmjPvjGITn7aFxxz4JrA"}]}}] -------------------------------------------------------------------------------- /movie-web_chromium_extension/movie-web.e3c97333.js: -------------------------------------------------------------------------------- 1 | var e,r;"function"==typeof(e=globalThis.define)&&(r=e,e=null),function(r,t,n,a,o){var s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},l="function"==typeof s[a]&&s[a],i=l.cache||{},d="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function u(e,t){if(!i[e]){if(!r[e]){var n="function"==typeof s[a]&&s[a];if(!t&&n)return n(e,!0);if(l)return l(e,!0);if(d&&"string"==typeof e)return d(e);var o=Error("Cannot find module '"+e+"'");throw o.code="MODULE_NOT_FOUND",o}f.resolve=function(t){var n=r[e][1][t];return null!=n?n:t},f.cache={};var c=i[e]=new u.Module(e);r[e][0].call(c.exports,f,c,c.exports,this)}return i[e].exports;function f(e){var r=f.resolve(e);return!1===r?{}:u(r)}}u.isParcelRequire=!0,u.Module=function(e){this.id=e,this.bundle=u,this.exports={}},u.modules=r,u.cache=i,u.parent=l,u.register=function(e,t){r[e]=[function(e,r){r.exports=t},{}]},Object.defineProperty(u,"root",{get:function(){return s[a]}}),s[a]=u;for(var c=0;co);var a=e("@plasmohq/messaging");let o={matches:[""]};(0,a.relayMessage)({name:"hello"}),(0,a.relayMessage)({name:"makeRequest"}),(0,a.relayMessage)({name:"prepareStream"}),(0,a.relayMessage)({name:"openPage"})},{"@plasmohq/messaging":"9iZMG","@parcel/transformer-js/src/esmodule-helpers.js":"cHUbl"}],"9iZMG":[function(e,r,t){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(t),n.export(t,"relay",()=>y),n.export(t,"relayMessage",()=>m),n.export(t,"sendToActiveContentScript",()=>g),n.export(t,"sendToBackground",()=>f),n.export(t,"sendToBackgroundViaRelay",()=>b),n.export(t,"sendToContentScript",()=>p),n.export(t,"sendViaRelay",()=>h);var a=e("nanoid"),o=globalThis.browser?.runtime||globalThis.chrome?.runtime,s=globalThis.browser?.tabs||globalThis.chrome?.tabs,l=()=>{if(!o)throw Error("Extension runtime is not available");return o},i=()=>{if(!s)throw Error("Extension tabs API is not available");return s},d=async()=>{let e=i(),[r]=await e.query({active:!0,currentWindow:!0});return r},u=(e,r)=>!r.__internal&&e.source===globalThis.window&&e.data.name===r.name&&(void 0===r.relayId||e.data.relayId===r.relayId),c=(e,r,t=globalThis.window)=>{let n=async n=>{if(u(n,e)&&!n.data.relayed){let a={name:e.name,relayId:e.relayId,body:n.data.body},o=await r?.(a);t.postMessage({name:e.name,relayId:e.relayId,instanceId:n.data.instanceId,body:o,relayed:!0},{targetOrigin:e.targetOrigin||"/"})}};return t.addEventListener("message",n),()=>t.removeEventListener("message",n)},f=async e=>l().sendMessage(e.extensionId??null,e),p=async e=>{let r="number"==typeof e.tabId?e.tabId:(await d())?.id;if(!r)throw Error("No active tab found to send message to.");return i().sendMessage(r,e)},g=p,m=e=>c(e,f),y=m,b=(e,r=globalThis.window)=>new Promise((t,n)=>{let o=(0,a.nanoid)(),s=new AbortController;r.addEventListener("message",r=>{u(r,e)&&r.data.relayed&&r.data.instanceId===o&&(t(r.data.body),s.abort())},{signal:s.signal}),r.postMessage({...e,instanceId:o},{targetOrigin:e.targetOrigin||"/"})}),h=b},{nanoid:"g2QpR","@parcel/transformer-js/src/esmodule-helpers.js":"cHUbl"}],g2QpR:[function(e,r,t){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(t),n.export(t,"urlAlphabet",()=>a.urlAlphabet),n.export(t,"random",()=>o),n.export(t,"customRandom",()=>s),n.export(t,"customAlphabet",()=>l),n.export(t,"nanoid",()=>i);var a=e("./url-alphabet/index.js");let o=e=>crypto.getRandomValues(new Uint8Array(e)),s=(e,r,t)=>{let n=(2<{let s="";for(;;){let r=t(a),l=a;for(;l--;)if((s+=e[r[l]&n]||"").length===o)return s}}},l=(e,r=21)=>s(e,r,o),i=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce((e,r)=>((r&=63)<36?e+=r.toString(36):r<62?e+=(r-26).toString(36).toUpperCase():r>62?e+="-":e+="_",e),"")},{"./url-alphabet/index.js":!1,"@parcel/transformer-js/src/esmodule-helpers.js":"cHUbl"}],cHUbl:[function(e,r,t){t.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},t.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},t.exportAll=function(e,r){return Object.keys(e).forEach(function(t){"default"===t||"__esModule"===t||r.hasOwnProperty(t)||Object.defineProperty(r,t,{enumerable:!0,get:function(){return e[t]}})}),r},t.export=function(e,r,t){Object.defineProperty(e,r,{enumerable:!0,get:t})}},{}]},["9MeLJ"],"9MeLJ","parcelRequire1a16"),globalThis.define=r; -------------------------------------------------------------------------------- /movie-web_chromium_extension/static/background/index.js: -------------------------------------------------------------------------------- 1 | var e,t;"function"==typeof(e=globalThis.define)&&(t=e,e=null),function(t,r,s,a,n){var o="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},i="function"==typeof o[a]&&o[a],l=i.cache||{},u="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function c(e,r){if(!l[e]){if(!t[e]){var s="function"==typeof o[a]&&o[a];if(!r&&s)return s(e,!0);if(i)return i(e,!0);if(u&&"string"==typeof e)return u(e);var n=Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}d.resolve=function(r){var s=t[e][1][r];return null!=s?s:r},d.cache={};var h=l[e]=new c.Module(e);t[e][0].call(h.exports,d,h,h.exports,this)}return l[e].exports;function d(e){var t=d.resolve(e);return!1===t?{}:c(t)}}c.isParcelRequire=!0,c.Module=function(e){this.id=e,this.bundle=c,this.exports={}},c.modules=t,c.cache=l,c.parent=i,c.register=function(e,r){t[e]=[function(e,t){t.exports=r},{}]},Object.defineProperty(c,"root",{get:function(){return o[a]}}),o[a]=c;for(var h=0;h{switch(e.name){case"hello":(0,n.default)({sender:t,...e},{send:e=>r(e)});break;case"makeRequest":(0,i.default)({sender:t,...e},{send:e=>r(e)});break;case"openPage":(0,u.default)({sender:t,...e},{send:e=>r(e)});break;case"prepareStream":(0,h.default)({sender:t,...e},{send:e=>r(e)})}return!0}),chrome.runtime.onMessage.addListener((e,t,r)=>{switch(e.name){case"hello":(0,n.default)({sender:t,...e},{send:e=>r(e)});break;case"makeRequest":(0,i.default)({sender:t,...e},{send:e=>r(e)});break;case"openPage":(0,u.default)({sender:t,...e},{send:e=>r(e)});break;case"prepareStream":(0,h.default)({sender:t,...e},{send:e=>r(e)})}return!0}),chrome.runtime.onConnect.addListener(function(e){globalThis.__plasmoInternalPortMap.set(e.name,e),e.onMessage.addListener(function(t){e.name})})},{"~background/messages/hello":"gRrzt","~background/messages/makeRequest":"fZ9h9","~background/messages/openPage":"ZIxra","~background/messages/prepareStream":"amvG0","@parcel/transformer-js/src/esmodule-helpers.js":"hbR2Q"}],gRrzt:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var s=e("~hooks/usePermission"),a=e("~hooks/useVersion"),n=e("~utils/storage");let o=async(e,t)=>{try{if(!e.sender?.tab?.url)throw Error("No tab URL found in the request.");let r=(0,a.getVersion)();t.send({success:!0,version:r,allowed:await (0,n.isDomainWhitelisted)(e.sender.tab.url),hasPermission:await (0,s.hasPermission)()})}catch(e){t.send({success:!1,error:e instanceof Error?e.message:String(e)})}};r.default=o},{"~hooks/usePermission":"aUAKP","~hooks/useVersion":"cbs6b","~utils/storage":"gy7md","@parcel/transformer-js/src/esmodule-helpers.js":"hbR2Q"}],aUAKP:[function(e,t,r){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"hasPermission",()=>o),s.export(r,"usePermission",()=>i);var a=e("react"),n=e("./useDomainWhitelist");async function o(){return chrome.permissions.contains({origins:[""]})}function i(){let{addDomain:e}=(0,n.useDomainWhitelist)(),[t,r]=(0,a.useState)(!1),s=(0,a.useCallback)(async t=>{let s=await chrome.permissions.request({origins:[""]});return r(s),s&&t&&e(t),s},[]);return(0,a.useEffect)(()=>{o().then(e=>r(e))},[]),{hasPermission:t,grantPermission:s}}},{react:"34kvN","./useDomainWhitelist":"cv0GT","@parcel/transformer-js/src/esmodule-helpers.js":"hbR2Q"}],"34kvN":[function(e,t,r){t.exports=e("ae0ab14aecd941d7")},{ae0ab14aecd941d7:"eNFzo"}],eNFzo:[function(e,t,r){var s=Symbol.for("react.element"),a=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),l=Symbol.for("react.provider"),u=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),h=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),f=Symbol.iterator,m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},y=Object.assign,g={};function b(e,t,r){this.props=e,this.context=t,this.refs=g,this.updater=r||m}function w(){}function v(e,t,r){this.props=e,this.context=t,this.refs=g,this.updater=r||m}b.prototype.isReactComponent={},b.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},b.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},w.prototype=b.prototype;var S=v.prototype=new w;S.constructor=v,y(S,b.prototype),S.isPureReactComponent=!0;var j=Array.isArray,R=Object.prototype.hasOwnProperty,x={current:null},k={key:!0,ref:!0,__self:!0,__source:!0};function E(e,t,r){var a,n={},o=null,i=null;if(null!=t)for(a in void 0!==t.ref&&(i=t.ref),void 0!==t.key&&(o=""+t.key),t)R.call(t,a)&&!k.hasOwnProperty(a)&&(n[a]=t[a]);var l=arguments.length-2;if(1===l)n.children=r;else if(1i),s.export(r,"useToggleWhitelistDomain",()=>l);var a=e("react"),n=e("~hooks/usePermission"),o=e("~utils/storage");function i(){let[e,t]=(0,o.useDomainStorage)(),r=(0,a.useCallback)(e=>{e&&t(t=>[...(t??[]).filter(t=>t!==e)])},[]),s=(0,a.useCallback)(e=>{e&&t(t=>[...(t??[]).filter(t=>t!==e),e])},[]);return{removeDomain:r,addDomain:s,domainWhitelist:e}}function l(e){let{domainWhitelist:t,addDomain:r,removeDomain:s}=i(),o=t.includes(e??""),{grantPermission:l}=(0,n.usePermission)(),u=(chrome||browser).runtime.getURL(o?"assets/active.png":"assets/inactive.png");(chrome||browser).action.setIcon({path:u});let c=(0,a.useCallback)(()=>{if(!o){r(e);return}s(e)},[o,e,r,s,l]);return{toggle:c,isWhitelisted:o}}},{react:"34kvN","~hooks/usePermission":"aUAKP","~utils/storage":"gy7md","@parcel/transformer-js/src/esmodule-helpers.js":"hbR2Q"}],gy7md:[function(e,t,r){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"DEFAULT_DOMAIN_WHITELIST",()=>i),s.export(r,"storage",()=>l),s.export(r,"useDomainStorage",()=>h),s.export(r,"isDomainWhitelisted",()=>d),s.export(r,"assertDomainWhitelist",()=>p);var a=e("@plasmohq/storage"),n=e("@plasmohq/storage/hook"),o=e("~utils/domains");let i=["mov.326486.xyz","mw.lonelil.ru","watch.qtchaos.de","bmov.app","bmov.vercel.app","stream.thehairy.me","scootydooter.vercel.app","movie-web-me.vercel.app","sudo-flix.lol","sudo.wyzie.ru","flix.kanded.xyz"],l=new a.Storage,u=async()=>{let e=await l.get("domainWhitelist");return e||await l.set("domainWhitelist",i),e??i},c=async e=>{let t=await u();return t?.some(t=>t.includes(e))??!1};function h(){return(0,n.useStorage)("domainWhitelist",e=>e??i)}let d=async e=>{if(!e)return!1;let t=(0,o.makeUrlIntoDomain)(e);return!!t&&c(t)},p=async e=>{let t=await d(e),r=(0,o.makeUrlIntoDomain)(e);if(!t)throw Error(`${r} is not whitelisted. Open the extension and click on the power button to whitelist the site.`)}},{"@plasmohq/storage":"cPZtE","@plasmohq/storage/hook":"5rBap","~utils/domains":"jOtHX","@parcel/transformer-js/src/esmodule-helpers.js":"hbR2Q"}],cPZtE:[function(e,t,r){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"BaseStorage",()=>i),s.export(r,"Storage",()=>l);var a=e("pify"),n=s.interopDefault(a),o=()=>{try{let e=globalThis.navigator?.userAgent.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i)||[];if("Chrome"===e[1])return 100>parseInt(e[2])||globalThis.chrome.runtime?.getManifest()?.manifest_version===2}catch{}return!1},i=class{#e;#t;get primaryClient(){return this.#t}#r;get secondaryClient(){return this.#r}#s;get area(){return this.#s}get hasWebApi(){try{return"u">typeof window&&!!window.localStorage}catch(e){return console.error(e),!1}}#a=new Map;#n;get copiedKeySet(){return this.#n}isCopied=e=>this.hasWebApi&&(this.allCopied||this.copiedKeySet.has(e));#o=!1;get allCopied(){return this.#o}getExtStorageApi=()=>globalThis.browser?.storage||globalThis.chrome?.storage;get hasExtensionApi(){try{return!!this.getExtStorageApi()}catch(e){return console.error(e),!1}}isWatchSupported=()=>this.hasExtensionApi;keyNamespace="";isValidKey=e=>e.startsWith(this.keyNamespace);getNamespacedKey=e=>`${this.keyNamespace}${e}`;getUnnamespacedKey=e=>e.slice(this.keyNamespace.length);constructor({area:e="sync",allCopied:t=!1,copiedKeyList:r=[]}={}){this.setCopiedKeySet(r),this.#s=e,this.#o=t;try{this.hasWebApi&&(t||r.length>0)&&(this.#r=window.localStorage)}catch{}try{this.hasExtensionApi&&(this.#e=this.getExtStorageApi(),o()?this.#t=(0,n.default)(this.#e[this.area],{exclude:["getBytesInUse"],errorFirst:!1}):this.#t=this.#e[this.area])}catch{}}setCopiedKeySet(e){this.#n=new Set(e)}rawGetAll=()=>this.#t?.get();getAll=async()=>Object.entries(await this.rawGetAll()).filter(([e])=>this.isValidKey(e)).reduce((e,[t,r])=>(e[this.getUnnamespacedKey(t)]=r,e),{});copy=async e=>{let t=void 0===e;if(!t&&!this.copiedKeySet.has(e)||!this.allCopied||!this.hasExtensionApi)return!1;let r=this.allCopied?await this.rawGetAll():await this.#t.get((t?[...this.copiedKeySet]:[e]).map(this.getNamespacedKey));if(!r)return!1;let s=!1;for(let e in r){let t=r[e],a=this.#r?.getItem(e);this.#r?.setItem(e,t),s||=t!==a}return s};rawGet=async e=>this.hasExtensionApi?(await this.#t.get(e))[e]:this.isCopied(e)?this.#r?.getItem(e):null;rawSet=async(e,t)=>(this.isCopied(e)&&this.#r?.setItem(e,t),this.hasExtensionApi&&await this.#t.set({[e]:t}),null);clear=async(e=!1)=>{e&&this.#r?.clear(),await this.#t.clear()};rawRemove=async e=>{this.isCopied(e)&&this.#r?.removeItem(e),this.hasExtensionApi&&await this.#t.remove(e)};removeAll=async()=>{let e=Object.keys(await this.rawGetAll());await Promise.all(e.map(this.rawRemove))};watch=e=>{let t=this.isWatchSupported();return t&&this.#i(e),t};#i=e=>{for(let t in e){let r=this.getNamespacedKey(t),s=this.#a.get(r)?.callbackSet||new Set;if(s.add(e[t]),s.size>1)continue;let a=(e,t)=>{if(t!==this.area||!e[r])return;let s=this.#a.get(r);Promise.all([this.parseValue(e[r].newValue),this.parseValue(e[r].oldValue)]).then(([e,r])=>{for(let a of s.callbackSet)a({newValue:e,oldValue:r},t)})};this.#e.onChanged.addListener(a),this.#a.set(r,{callbackSet:s,listener:a})}};unwatch=e=>{let t=this.isWatchSupported();return t&&this.#l(e),t};#l(e){for(let t in e){let r=this.getNamespacedKey(t),s=e[t];if(this.#a.has(r)){let e=this.#a.get(r);e.callbackSet.delete(s),0===e.callbackSet.size&&(this.#a.delete(r),this.#e.onChanged.removeListener(e.listener))}}}unwatchAll=()=>this.#u();#u(){this.#a.forEach(({listener:e})=>this.#e.onChanged.removeListener(e)),this.#a.clear()}async getItem(e){return this.get(e)}async setItem(e,t){await this.set(e,t)}async removeItem(e){return this.remove(e)}},l=class extends i{get=async e=>{let t=this.getNamespacedKey(e),r=await this.rawGet(t);return this.parseValue(r)};set=async(e,t)=>{let r=this.getNamespacedKey(e),s=JSON.stringify(t);return this.rawSet(r,s)};remove=async e=>{let t=this.getNamespacedKey(e);return this.rawRemove(t)};setNamespace=e=>{this.keyNamespace=e};parseValue=async e=>{try{if(void 0!==e)return JSON.parse(e)}catch(e){console.error(e)}}}},{pify:"9arDK","@parcel/transformer-js/src/esmodule-helpers.js":"hbR2Q"}],"9arDK":[function(e,t,r){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"default",()=>o);let a=(e,t,r,s)=>function(...a){let n=t.promiseModule;return new n((n,o)=>{t.multiArgs?a.push((...e)=>{t.errorFirst?e[0]?o(e):(e.shift(),n(e)):n(e)}):t.errorFirst?a.push((e,t)=>{e?o(e):n(t)}):a.push(n);let i=this===r?s:this;Reflect.apply(e,i,a)})},n=new WeakMap;function o(e,t){t={exclude:[/.+(?:Sync|Stream)$/],errorFirst:!0,promiseModule:Promise,...t};let r=typeof e;if(!(null!==e&&("object"===r||"function"===r)))throw TypeError(`Expected \`input\` to be a \`Function\` or \`Object\`, got \`${null===e?"null":r}\``);let s=(e,r)=>{let s=n.get(e);if(s||(s={},n.set(e,s)),r in s)return s[r];let a=e=>"string"==typeof e||"symbol"==typeof r?r===e:e.test(r),o=Reflect.getOwnPropertyDescriptor(e,r),i=void 0===o||o.writable||o.configurable,l=t.include?t.include.some(e=>a(e)):!t.exclude.some(e=>a(e)),u=l&&i;return s[r]=u,u},o=new WeakMap,i=new Proxy(e,{apply(e,r,s){let n=o.get(e);if(n)return Reflect.apply(n,r,s);let l=t.excludeMain?e:a(e,t,i,e);return o.set(e,l),Reflect.apply(l,r,s)},get(e,r){let n=e[r];if(!s(e,r)||n===Function.prototype[r])return n;let l=o.get(n);if(l)return l;if("function"==typeof n){let r=a(n,t,i,e);return o.set(n,r),r}return n}});return i}},{"@parcel/transformer-js/src/esmodule-helpers.js":"hbR2Q"}],hbR2Q:[function(e,t,r){r.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},r.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},r.exportAll=function(e,t){return Object.keys(e).forEach(function(r){"default"===r||"__esModule"===r||t.hasOwnProperty(r)||Object.defineProperty(t,r,{enumerable:!0,get:function(){return e[r]}})}),t},r.export=function(e,t,r){Object.defineProperty(e,t,{enumerable:!0,get:r})}},{}],"5rBap":[function(e,t,r){var s,a=Object.create,n=Object.defineProperty,o=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,l=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty,c=(e,t,r,s)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of i(t))u.call(e,a)||a===r||n(e,a,{get:()=>t[a],enumerable:!(s=o(t,a))||s.enumerable});return e},h={};((e,t)=>{for(var r in t)n(e,r,{get:t[r],enumerable:!0})})(h,{useStorage:()=>g}),t.exports=c(n({},"__esModule",{value:!0}),h);var d=e("b1b2c5b56fa28750"),p=c(n(null!=(s=e("417435e93603adfd"))?a(l(s)):{},"default",{value:s,enumerable:!0}),s),f=()=>{try{let e=globalThis.navigator?.userAgent.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i)||[];if("Chrome"===e[1])return 100>parseInt(e[2])||globalThis.chrome.runtime?.getManifest()?.manifest_version===2}catch{}return!1},m=class{#a;#t;get primaryClient(){return this.#t}#r;get secondaryClient(){return this.#r}#s;get area(){return this.#s}get hasWebApi(){try{return"u">typeof window&&!!window.localStorage}catch(e){return console.error(e),!1}}#e=new Map;#n;get copiedKeySet(){return this.#n}isCopied=e=>this.hasWebApi&&(this.allCopied||this.copiedKeySet.has(e));#o=!1;get allCopied(){return this.#o}getExtStorageApi=()=>globalThis.browser?.storage||globalThis.chrome?.storage;get hasExtensionApi(){try{return!!this.getExtStorageApi()}catch(e){return console.error(e),!1}}isWatchSupported=()=>this.hasExtensionApi;keyNamespace="";isValidKey=e=>e.startsWith(this.keyNamespace);getNamespacedKey=e=>`${this.keyNamespace}${e}`;getUnnamespacedKey=e=>e.slice(this.keyNamespace.length);constructor({area:e="sync",allCopied:t=!1,copiedKeyList:r=[]}={}){this.setCopiedKeySet(r),this.#s=e,this.#o=t;try{this.hasWebApi&&(t||r.length>0)&&(this.#r=window.localStorage)}catch{}try{this.hasExtensionApi&&(this.#a=this.getExtStorageApi(),f()?this.#t=(0,p.default)(this.#a[this.area],{exclude:["getBytesInUse"],errorFirst:!1}):this.#t=this.#a[this.area])}catch{}}setCopiedKeySet(e){this.#n=new Set(e)}rawGetAll=()=>this.#t?.get();getAll=async()=>Object.entries(await this.rawGetAll()).filter(([e])=>this.isValidKey(e)).reduce((e,[t,r])=>(e[this.getUnnamespacedKey(t)]=r,e),{});copy=async e=>{let t=void 0===e;if(!t&&!this.copiedKeySet.has(e)||!this.allCopied||!this.hasExtensionApi)return!1;let r=this.allCopied?await this.rawGetAll():await this.#t.get((t?[...this.copiedKeySet]:[e]).map(this.getNamespacedKey));if(!r)return!1;let s=!1;for(let e in r){let t=r[e],a=this.#r?.getItem(e);this.#r?.setItem(e,t),s||=t!==a}return s};rawGet=async e=>this.hasExtensionApi?(await this.#t.get(e))[e]:this.isCopied(e)?this.#r?.getItem(e):null;rawSet=async(e,t)=>(this.isCopied(e)&&this.#r?.setItem(e,t),this.hasExtensionApi&&await this.#t.set({[e]:t}),null);clear=async(e=!1)=>{e&&this.#r?.clear(),await this.#t.clear()};rawRemove=async e=>{this.isCopied(e)&&this.#r?.removeItem(e),this.hasExtensionApi&&await this.#t.remove(e)};removeAll=async()=>{let e=Object.keys(await this.rawGetAll());await Promise.all(e.map(this.rawRemove))};watch=e=>{let t=this.isWatchSupported();return t&&this.#i(e),t};#i=e=>{for(let t in e){let r=this.getNamespacedKey(t),s=this.#e.get(r)?.callbackSet||new Set;if(s.add(e[t]),s.size>1)continue;let a=(e,t)=>{if(t!==this.area||!e[r])return;let s=this.#e.get(r);Promise.all([this.parseValue(e[r].newValue),this.parseValue(e[r].oldValue)]).then(([e,r])=>{for(let a of s.callbackSet)a({newValue:e,oldValue:r},t)})};this.#a.onChanged.addListener(a),this.#e.set(r,{callbackSet:s,listener:a})}};unwatch=e=>{let t=this.isWatchSupported();return t&&this.#l(e),t};#l(e){for(let t in e){let r=this.getNamespacedKey(t),s=e[t];if(this.#e.has(r)){let e=this.#e.get(r);e.callbackSet.delete(s),0===e.callbackSet.size&&(this.#e.delete(r),this.#a.onChanged.removeListener(e.listener))}}}unwatchAll=()=>this.#u();#u(){this.#e.forEach(({listener:e})=>this.#a.onChanged.removeListener(e)),this.#e.clear()}async getItem(e){return this.get(e)}async setItem(e,t){await this.set(e,t)}async removeItem(e){return this.remove(e)}},y=class extends m{get=async e=>{let t=this.getNamespacedKey(e),r=await this.rawGet(t);return this.parseValue(r)};set=async(e,t)=>{let r=this.getNamespacedKey(e),s=JSON.stringify(t);return this.rawSet(r,s)};remove=async e=>{let t=this.getNamespacedKey(e);return this.rawRemove(t)};setNamespace=e=>{this.keyNamespace=e};parseValue=async e=>{try{if(void 0!==e)return JSON.parse(e)}catch(e){console.error(e)}}},g=(e,t)=>{let r="object"==typeof e,s=r?e.key:e,[a,n]=(0,d.useState)(t),o=(0,d.useRef)(!1),i=(0,d.useRef)(t instanceof Function?t():t);(0,d.useEffect)(()=>{i.current=a},[a]);let l=(0,d.useRef)(r?e.instance:new y),u=(0,d.useCallback)(e=>l.current.set(s,void 0!==e?e:i.current),[s]),c=(0,d.useCallback)(async e=>{let t=e instanceof Function?e(i.current):e;await u(t),o.current&&n(t)},[u]);(0,d.useEffect)(()=>{o.current=!0;let e={[s]:e=>{o.current&&n(e.newValue)}};return l.current.watch(e),l.current.get(s)?.then(e=>{if(t instanceof Function){let r=t?.(e,!0);void 0!==r&&c(r)}else n(void 0!==e?e:t)}),()=>{o.current=!1,l.current.unwatch(e),t instanceof Function&&n(t)}},[s,c]);let h=(0,d.useCallback)(()=>{l.current.remove(s),n(void 0)},[s]);return[a,c,{setRenderValue:n,setStoreValue:u,remove:h}]}},{b1b2c5b56fa28750:"34kvN","417435e93603adfd":"9arDK"}],jOtHX:[function(e,t,r){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){try{let t=new URL(e);if(!["http:","https:"].includes(t.protocol))return null;return t.host.toLowerCase()}catch{return null}}s.defineInteropFlag(r),s.export(r,"makeUrlIntoDomain",()=>a)},{"@parcel/transformer-js/src/esmodule-helpers.js":"hbR2Q"}],cbs6b:[function(e,t,r){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){let t=e?.prefixed?"v":"",r=(chrome||browser).runtime.getManifest();return`${t}${r.version}`}function n(e){return a(e)}s.defineInteropFlag(r),s.export(r,"getVersion",()=>a),s.export(r,"useVersion",()=>n)},{"@parcel/transformer-js/src/esmodule-helpers.js":"hbR2Q"}],fZ9h9:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var s=e("~utils/declarativeNetRequest"),a=e("~utils/extension"),n=e("~utils/fetcher"),o=e("~utils/storage");let i=(e,t)=>{if("FormData"===t){let t=new FormData;e.forEach(([e,r])=>{t.append(e,r.toString())})}return"URLSearchParams"===t?new URLSearchParams(e):"object"===t?JSON.stringify(e):e},l=async(e,t)=>{try{if(!e.sender?.tab?.url)throw Error("No tab URL found in the request.");if(!e.body)throw Error("No request body found in the request.");let r=(0,n.makeFullUrl)(e.body.url,e.body);await (0,o.assertDomainWhitelist)(e.sender.tab.url),await (0,s.setDynamicRules)({ruleId:23498,targetDomains:[new URL(r).hostname],requestHeaders:e.body.headers});let l=await fetch(r,{method:e.body.method,headers:e.body.headers,body:i(e.body.body,e.body.bodyType)});await (0,s.removeDynamicRules)([23498]);let u=l.headers.get("content-type"),c=u?.includes("application/json")?await l.json():await l.text(),h=await (chrome||browser).cookies.getAll({url:l.url,...(0,a.isFirefox)()&&{firstPartyDomain:new URL(l.url).hostname}});t.send({success:!0,response:{statusCode:l.status,headers:{...Object.fromEntries(l.headers.entries()),"Set-Cookie":h.map(e=>`${e.name}=${e.value}`).join(", ")},body:c,finalUrl:l.url}})}catch(e){console.error("failed request",e),t.send({success:!1,error:e instanceof Error?e.message:String(e)})}};r.default=l},{"~utils/declarativeNetRequest":"b5jmb","~utils/extension":"9ArmX","~utils/fetcher":"OXXSb","~utils/storage":"gy7md","@parcel/transformer-js/src/esmodule-helpers.js":"hbR2Q"}],b5jmb:[function(e,t,r){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"setDynamicRules",()=>o),s.export(r,"removeDynamicRules",()=>i);var a=e("./extension");let n=(e,t)=>Object.entries(e).map(([e,r])=>({header:e,operation:t,value:r})),o=async e=>{if((0,a.isChrome)()){if(await chrome.declarativeNetRequest.updateDynamicRules({removeRuleIds:[e.ruleId],addRules:[{id:e.ruleId,condition:{...e.targetDomains&&{requestDomains:e.targetDomains},...e.targetRegex&&{regexFilter:e.targetRegex}},action:{type:chrome.declarativeNetRequest.RuleActionType.MODIFY_HEADERS,...e.requestHeaders&&Object.keys(e.requestHeaders).length>0?{requestHeaders:n(e.requestHeaders,chrome.declarativeNetRequest.HeaderOperation.SET)}:{},responseHeaders:[{header:"Access-Control-Allow-Origin",operation:chrome.declarativeNetRequest.HeaderOperation.SET,value:"*"},{header:"Access-Control-Allow-Methods",operation:chrome.declarativeNetRequest.HeaderOperation.SET,value:"GET, POST, PUT, DELETE, PATCH, OPTIONS"},{header:"Access-Control-Allow-Headers",operation:chrome.declarativeNetRequest.HeaderOperation.SET,value:"*"},{header:"Access-Control-Allow-Credentials",operation:chrome.declarativeNetRequest.HeaderOperation.SET,value:"true"},...n(e.responseHeaders??{},chrome.declarativeNetRequest.HeaderOperation.SET)]}}]}),chrome.runtime.lastError?.message)throw Error(chrome.runtime.lastError.message)}else if(await browser.declarativeNetRequest.updateDynamicRules({removeRuleIds:[e.ruleId],addRules:[{id:e.ruleId,condition:{...e.targetDomains&&{requestDomains:e.targetDomains},...e.targetRegex&&{regexFilter:e.targetRegex}},action:{type:"modifyHeaders",...e.requestHeaders&&Object.keys(e.requestHeaders).length>0?{requestHeaders:n(e.requestHeaders,"set")}:{},responseHeaders:[{header:"Access-Control-Allow-Origin",operation:"set",value:"*"},{header:"Access-Control-Allow-Methods",operation:"set",value:"GET, POST, PUT, DELETE, PATCH, OPTIONS"},{header:"Access-Control-Allow-Headers",operation:"set",value:"*"},{header:"Access-Control-Allow-Credentials",operation:"set",value:"true"},...n(e.responseHeaders??{},"set")]}}]}),browser.runtime.lastError?.message)throw Error(browser.runtime.lastError.message)},i=async e=>{if(await (chrome||browser).declarativeNetRequest.updateDynamicRules({removeRuleIds:e}),(chrome||browser).runtime.lastError?.message)throw Error((chrome||browser).runtime.lastError?.message??"Unknown error")}},{"./extension":"9ArmX","@parcel/transformer-js/src/esmodule-helpers.js":"hbR2Q"}],"9ArmX":[function(e,t,r){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"isChrome",()=>a),s.export(r,"isFirefox",()=>n);let a=()=>chrome.runtime.getURL("").startsWith("chrome-extension://"),n=()=>{try{return browser.runtime.getURL("").startsWith("moz-extension://")}catch{return!1}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"hbR2Q"}],OXXSb:[function(e,t,r){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t){let r=t?.baseUrl??"",s=e;r.length>0&&!r.endsWith("/")&&(r+="/"),s.startsWith("/")&&(s=s.slice(1));let a=r+s;if(!a.startsWith("http://")&&!a.startsWith("https://"))throw Error(`Invald URL -- URL doesn't start with a http scheme: '${a}'`);let n=new URL(a);return Object.entries(t?.query??{}).forEach(([e,t])=>{n.searchParams.set(e,t)}),n.toString()}s.defineInteropFlag(r),s.export(r,"makeFullUrl",()=>a)},{"@parcel/transformer-js/src/esmodule-helpers.js":"hbR2Q"}],ZIxra:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var s=e("~utils/extension");let a=async(e,t)=>{try{if(!e.sender?.tab?.id)throw Error("No tab ID found in the request.");if(!e.body)throw Error("No body found in the request.");let r=new URLSearchParams;r.set("redirectUrl",e.body.redirectUrl);let a=(chrome||browser).runtime.getURL(`/tabs/${e.body.page}.html?${r.toString()}`);(0,s.isChrome)()?await chrome.tabs.update(e.sender.tab.id,{url:a}):await browser.tabs.update(e.sender.tab.id,{url:a}),t.send({success:!0})}catch(e){t.send({success:!1,error:e instanceof Error?e.message:String(e)})}};r.default=a},{"~utils/extension":"9ArmX","@parcel/transformer-js/src/esmodule-helpers.js":"hbR2Q"}],amvG0:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var s=e("~utils/declarativeNetRequest"),a=e("~utils/storage");let n=async(e,t)=>{try{if(!e.sender?.tab?.url)throw Error("No tab URL found in the request.");if(!e.body)throw Error("No request body found in the request.");await (0,a.assertDomainWhitelist)(e.sender.tab.url),await (0,s.setDynamicRules)(e.body),t.send({success:!0})}catch(e){t.send({success:!1,error:e instanceof Error?e.message:String(e)})}};r.default=n},{"~utils/declarativeNetRequest":"b5jmb","~utils/storage":"gy7md","@parcel/transformer-js/src/esmodule-helpers.js":"hbR2Q"}],fx8Od:[function(e,t,r){(0,e("~utils/extension").isChrome)()?chrome.runtime.onStartup.addListener(()=>{chrome.runtime.reload()}):browser.runtime.onStartup.addListener(()=>{browser.runtime.reload()})},{"~utils/extension":"9ArmX"}]},["kgW6q"],"kgW6q","parcelRequire1a16"),globalThis.define=t; -------------------------------------------------------------------------------- /movie-web_chromium_extension/tabs/PermissionGrant.3af363e1.js: -------------------------------------------------------------------------------- 1 | var e,t;"function"==typeof(e=globalThis.define)&&(t=e,e=null),function(t,n,r,l,a){var o="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},i="function"==typeof o[l]&&o[l],u=i.cache||{},s="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function c(e,n){if(!u[e]){if(!t[e]){var r="function"==typeof o[l]&&o[l];if(!n&&r)return r(e,!0);if(i)return i(e,!0);if(s&&"string"==typeof e)return s(e);var a=Error("Cannot find module '"+e+"'");throw a.code="MODULE_NOT_FOUND",a}d.resolve=function(n){var r=t[e][1][n];return null!=r?r:n},d.cache={};var f=u[e]=new c.Module(e);t[e][0].call(f.exports,d,f,f.exports,this)}return u[e].exports;function d(e){var t=d.resolve(e);return!1===t?{}:c(t)}}c.isParcelRequire=!0,c.Module=function(e){this.id=e,this.bundle=c,this.exports={}},c.modules=t,c.cache=u,c.parent=i,c.register=function(e,n){t[e]=[function(e,t){t.exports=n},{}]},Object.defineProperty(c,"root",{get:function(){return o[l]}}),o[l]=c;for(var f=0;f{if(s)return;s=document.getElementById("__plasmo");let e=(0,o.createRoot)(s),t=(0,i.getLayout)(u);e.render((0,l.jsx)(t,{children:(0,l.jsx)(u.default,{})}))})},{"react/jsx-runtime":"8iOxN",react:"329PG","react-dom/client":"blMEL","@plasmo-static-common/react":"4kz0G","~tabs/PermissionGrant":"drJbA","@parcel/transformer-js/src/esmodule-helpers.js":"cHUbl"}],"8iOxN":[function(e,t,n){t.exports=e("ba80e5a03a461355")},{ba80e5a03a461355:"hIfNu"}],hIfNu:[function(e,t,n){var r=e("61e3cf0e9433c992"),l=Symbol.for("react.element"),a=Symbol.for("react.fragment"),o=Object.prototype.hasOwnProperty,i=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,u={key:!0,ref:!0,__self:!0,__source:!0};function s(e,t,n){var r,a={},s=null,c=null;for(r in void 0!==n&&(s=""+n),void 0!==t.key&&(s=""+t.key),void 0!==t.ref&&(c=t.ref),t)o.call(t,r)&&!u.hasOwnProperty(r)&&(a[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===a[r]&&(a[r]=t[r]);return{$$typeof:l,type:e,key:s,ref:c,props:a,_owner:i.current}}n.Fragment=a,n.jsx=s,n.jsxs=s},{"61e3cf0e9433c992":"329PG"}],"329PG":[function(e,t,n){t.exports=e("ae0ab14aecd941d7")},{ae0ab14aecd941d7:"5ejwk"}],"5ejwk":[function(e,t,n){var r=Symbol.for("react.element"),l=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),u=Symbol.for("react.provider"),s=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),f=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),h=Symbol.iterator,m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,y={};function v(e,t,n){this.props=e,this.context=t,this.refs=y,this.updater=n||m}function b(){}function w(e,t,n){this.props=e,this.context=t,this.refs=y,this.updater=n||m}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=v.prototype;var k=w.prototype=new b;k.constructor=w,g(k,v.prototype),k.isPureReactComponent=!0;var S=Array.isArray,x=Object.prototype.hasOwnProperty,E={current:null},C={key:!0,ref:!0,__self:!0,__source:!0};function _(e,t,n){var l,a={},o=null,i=null;if(null!=t)for(l in void 0!==t.ref&&(i=t.ref),void 0!==t.key&&(o=""+t.key),t)x.call(t,l)&&!C.hasOwnProperty(l)&&(a[l]=t[l]);var u=arguments.length-2;if(1===u)a.children=n;else if(1