varstor 0.6.61 → 0.6.63
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +153 -56
- package/dist/varstor-webextension.js +479 -504
- package/dist/varstor-webextension.min.js +1 -1
- package/dist/varstor.js +419 -430
- package/dist/varstor.min.js +1 -1
- package/package.json +5 -1
- package/src/actions.ts +19 -0
- package/src/constants.ts +1 -0
- package/src/helpers.ts +88 -0
- package/src/index.ts +314 -0
- package/src/listeners.ts +74 -0
- package/src/storage.ts +37 -0
- package/src/types.d.ts +44 -0
- package/src/{validation.js → validation.ts} +11 -8
- package/src/{webextension-storage.js → webextension-storage.ts} +6 -6
- package/src/{webextension.js → webextension.ts} +5 -2
- package/tsconfig.json +28 -0
- package/webpack.config.js +16 -2
- package/src/helpers.js +0 -40
- package/src/index.js +0 -283
- package/src/namespace.js +0 -35
- package/src/storage.js +0 -31
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! For license information please see varstor-webextension.min.js.LICENSE.txt */
|
|
2
|
-
!function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?exports.Varstor=r():e.Varstor=r()}(this,()=>(()=>{var e={"./node_modules/webextension-polyfill/dist/browser-polyfill.min.js"(e,r){var s,n,t;"undefined"==typeof globalThis?"undefined"==typeof self||self:globalThis,n=[e],void 0===(t="function"==typeof(s=function(e){"use strict";if(!(globalThis.chrome&&globalThis.chrome.runtime&&globalThis.chrome.runtime.id))throw new Error("This script should only be loaded in a browser extension.");globalThis.browser&&globalThis.browser.runtime&&globalThis.browser.runtime.id?e.exports=globalThis.browser:e.exports=(e=>{const r={alarms:{clear:{minArgs:0,maxArgs:1},clearAll:{minArgs:0,maxArgs:0},get:{minArgs:0,maxArgs:1},getAll:{minArgs:0,maxArgs:0}},bookmarks:{create:{minArgs:1,maxArgs:1},get:{minArgs:1,maxArgs:1},getChildren:{minArgs:1,maxArgs:1},getRecent:{minArgs:1,maxArgs:1},getSubTree:{minArgs:1,maxArgs:1},getTree:{minArgs:0,maxArgs:0},move:{minArgs:2,maxArgs:2},remove:{minArgs:1,maxArgs:1},removeTree:{minArgs:1,maxArgs:1},search:{minArgs:1,maxArgs:1},update:{minArgs:2,maxArgs:2}},browserAction:{disable:{minArgs:0,maxArgs:1,fallbackToNoCallback:!0},enable:{minArgs:0,maxArgs:1,fallbackToNoCallback:!0},getBadgeBackgroundColor:{minArgs:1,maxArgs:1},getBadgeText:{minArgs:1,maxArgs:1},getPopup:{minArgs:1,maxArgs:1},getTitle:{minArgs:1,maxArgs:1},openPopup:{minArgs:0,maxArgs:0},setBadgeBackgroundColor:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setBadgeText:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setIcon:{minArgs:1,maxArgs:1},setPopup:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setTitle:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0}},browsingData:{remove:{minArgs:2,maxArgs:2},removeCache:{minArgs:1,maxArgs:1},removeCookies:{minArgs:1,maxArgs:1},removeDownloads:{minArgs:1,maxArgs:1},removeFormData:{minArgs:1,maxArgs:1},removeHistory:{minArgs:1,maxArgs:1},removeLocalStorage:{minArgs:1,maxArgs:1},removePasswords:{minArgs:1,maxArgs:1},removePluginData:{minArgs:1,maxArgs:1},settings:{minArgs:0,maxArgs:0}},commands:{getAll:{minArgs:0,maxArgs:0}},contextMenus:{remove:{minArgs:1,maxArgs:1},removeAll:{minArgs:0,maxArgs:0},update:{minArgs:2,maxArgs:2}},cookies:{get:{minArgs:1,maxArgs:1},getAll:{minArgs:1,maxArgs:1},getAllCookieStores:{minArgs:0,maxArgs:0},remove:{minArgs:1,maxArgs:1},set:{minArgs:1,maxArgs:1}},devtools:{inspectedWindow:{eval:{minArgs:1,maxArgs:2,singleCallbackArg:!1}},panels:{create:{minArgs:3,maxArgs:3,singleCallbackArg:!0},elements:{createSidebarPane:{minArgs:1,maxArgs:1}}}},downloads:{cancel:{minArgs:1,maxArgs:1},download:{minArgs:1,maxArgs:1},erase:{minArgs:1,maxArgs:1},getFileIcon:{minArgs:1,maxArgs:2},open:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},pause:{minArgs:1,maxArgs:1},removeFile:{minArgs:1,maxArgs:1},resume:{minArgs:1,maxArgs:1},search:{minArgs:1,maxArgs:1},show:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0}},extension:{isAllowedFileSchemeAccess:{minArgs:0,maxArgs:0},isAllowedIncognitoAccess:{minArgs:0,maxArgs:0}},history:{addUrl:{minArgs:1,maxArgs:1},deleteAll:{minArgs:0,maxArgs:0},deleteRange:{minArgs:1,maxArgs:1},deleteUrl:{minArgs:1,maxArgs:1},getVisits:{minArgs:1,maxArgs:1},search:{minArgs:1,maxArgs:1}},i18n:{detectLanguage:{minArgs:1,maxArgs:1},getAcceptLanguages:{minArgs:0,maxArgs:0}},identity:{launchWebAuthFlow:{minArgs:1,maxArgs:1}},idle:{queryState:{minArgs:1,maxArgs:1}},management:{get:{minArgs:1,maxArgs:1},getAll:{minArgs:0,maxArgs:0},getSelf:{minArgs:0,maxArgs:0},setEnabled:{minArgs:2,maxArgs:2},uninstallSelf:{minArgs:0,maxArgs:1}},notifications:{clear:{minArgs:1,maxArgs:1},create:{minArgs:1,maxArgs:2},getAll:{minArgs:0,maxArgs:0},getPermissionLevel:{minArgs:0,maxArgs:0},update:{minArgs:2,maxArgs:2}},pageAction:{getPopup:{minArgs:1,maxArgs:1},getTitle:{minArgs:1,maxArgs:1},hide:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setIcon:{minArgs:1,maxArgs:1},setPopup:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setTitle:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},show:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0}},permissions:{contains:{minArgs:1,maxArgs:1},getAll:{minArgs:0,maxArgs:0},remove:{minArgs:1,maxArgs:1},request:{minArgs:1,maxArgs:1}},runtime:{getBackgroundPage:{minArgs:0,maxArgs:0},getPlatformInfo:{minArgs:0,maxArgs:0},openOptionsPage:{minArgs:0,maxArgs:0},requestUpdateCheck:{minArgs:0,maxArgs:0},sendMessage:{minArgs:1,maxArgs:3},sendNativeMessage:{minArgs:2,maxArgs:2},setUninstallURL:{minArgs:1,maxArgs:1}},sessions:{getDevices:{minArgs:0,maxArgs:1},getRecentlyClosed:{minArgs:0,maxArgs:1},restore:{minArgs:0,maxArgs:1}},storage:{local:{clear:{minArgs:0,maxArgs:0},get:{minArgs:0,maxArgs:1},getBytesInUse:{minArgs:0,maxArgs:1},remove:{minArgs:1,maxArgs:1},set:{minArgs:1,maxArgs:1}},managed:{get:{minArgs:0,maxArgs:1},getBytesInUse:{minArgs:0,maxArgs:1}},sync:{clear:{minArgs:0,maxArgs:0},get:{minArgs:0,maxArgs:1},getBytesInUse:{minArgs:0,maxArgs:1},remove:{minArgs:1,maxArgs:1},set:{minArgs:1,maxArgs:1}}},tabs:{captureVisibleTab:{minArgs:0,maxArgs:2},create:{minArgs:1,maxArgs:1},detectLanguage:{minArgs:0,maxArgs:1},discard:{minArgs:0,maxArgs:1},duplicate:{minArgs:1,maxArgs:1},executeScript:{minArgs:1,maxArgs:2},get:{minArgs:1,maxArgs:1},getCurrent:{minArgs:0,maxArgs:0},getZoom:{minArgs:0,maxArgs:1},getZoomSettings:{minArgs:0,maxArgs:1},goBack:{minArgs:0,maxArgs:1},goForward:{minArgs:0,maxArgs:1},highlight:{minArgs:1,maxArgs:1},insertCSS:{minArgs:1,maxArgs:2},move:{minArgs:2,maxArgs:2},query:{minArgs:1,maxArgs:1},reload:{minArgs:0,maxArgs:2},remove:{minArgs:1,maxArgs:1},removeCSS:{minArgs:1,maxArgs:2},sendMessage:{minArgs:2,maxArgs:3},setZoom:{minArgs:1,maxArgs:2},setZoomSettings:{minArgs:1,maxArgs:2},update:{minArgs:1,maxArgs:2}},topSites:{get:{minArgs:0,maxArgs:0}},webNavigation:{getAllFrames:{minArgs:1,maxArgs:1},getFrame:{minArgs:1,maxArgs:1}},webRequest:{handlerBehaviorChanged:{minArgs:0,maxArgs:0}},windows:{create:{minArgs:0,maxArgs:1},get:{minArgs:1,maxArgs:2},getAll:{minArgs:0,maxArgs:1},getCurrent:{minArgs:0,maxArgs:1},getLastFocused:{minArgs:0,maxArgs:1},remove:{minArgs:1,maxArgs:1},update:{minArgs:2,maxArgs:2}}};if(0===Object.keys(r).length)throw new Error("api-metadata.json has not been included in browser-polyfill");class s extends WeakMap{constructor(e,r=void 0){super(r),this.createItem=e}get(e){return this.has(e)||this.set(e,this.createItem(e)),super.get(e)}}const n=e=>e&&"object"==typeof e&&"function"==typeof e.then,t=(r,s)=>(...n)=>{e.runtime.lastError?r.reject(new Error(e.runtime.lastError.message)):s.singleCallbackArg||1>=n.length&&!1!==s.singleCallbackArg?r.resolve(n[0]):r.resolve(n)},a=e=>1==e?"argument":"arguments",i=(e,r)=>function(s,...n){if(n.length<r.minArgs)throw new Error(`Expected at least ${r.minArgs} ${a(r.minArgs)} for ${e}(), got ${n.length}`);if(n.length>r.maxArgs)throw new Error(`Expected at most ${r.maxArgs} ${a(r.maxArgs)} for ${e}(), got ${n.length}`);return new Promise((a,i)=>{if(r.fallbackToNoCallback)try{s[e](...n,t({resolve:a,reject:i},r))}catch(t){console.warn(`${e} API method doesn't seem to support the callback parameter, falling back to call it without a callback: `,t),s[e](...n),r.fallbackToNoCallback=!1,r.noCallback=!0,a()}else r.noCallback?(s[e](...n),a()):s[e](...n,t({resolve:a,reject:i},r))})},o=(e,r,s)=>new Proxy(r,{apply:(r,n,t)=>s.call(n,e,...t)});let g=Function.call.bind(Object.prototype.hasOwnProperty);const m=(e,r={},s={})=>{let n=Object.create(null),t=Object.create(e);return new Proxy(t,{has:(r,s)=>s in e||s in n,get(t,a){if(a in n)return n[a];if(!(a in e))return;let l=e[a];if("function"==typeof l)if("function"==typeof r[a])l=o(e,e[a],r[a]);else if(g(s,a)){let r=i(a,s[a]);l=o(e,e[a],r)}else l=l.bind(e);else if("object"==typeof l&&null!==l&&(g(r,a)||g(s,a)))l=m(l,r[a],s[a]);else{if(!g(s,"*"))return Object.defineProperty(n,a,{configurable:!0,enumerable:!0,get:()=>e[a],set(r){e[a]=r}}),l;l=m(l,r[a],s["*"])}return n[a]=l,l},set:(r,s,t)=>(s in n?n[s]=t:e[s]=t,!0),defineProperty:(e,r,s)=>Reflect.defineProperty(n,r,s),deleteProperty:(e,r)=>Reflect.deleteProperty(n,r)})},l=e=>({addListener(r,s,...n){r.addListener(e.get(s),...n)},hasListener:(r,s)=>r.hasListener(e.get(s)),removeListener(r,s){r.removeListener(e.get(s))}}),A=new s(e=>"function"==typeof e?function(r){const s=m(r,{},{getContent:{minArgs:0,maxArgs:0}});e(s)}:e),c=new s(e=>"function"==typeof e?function(r,s,t){let a,i,o=!1,g=new Promise(e=>{a=function(r){o=!0,e(r)}});try{i=e(r,s,a)}catch(e){i=Promise.reject(e)}const m=!0!==i&&n(i);if(!0!==i&&!m&&!o)return!1;const l=e=>{e.then(e=>{t(e)},e=>{let r;r=e&&(e instanceof Error||"string"==typeof e.message)?e.message:"An unexpected error occurred",t({__mozWebExtensionPolyfillReject__:!0,message:r})}).catch(e=>{console.error("Failed to send onMessage rejected reply",e)})};return l(m?i:g),!0}:e),u=({reject:r,resolve:s},n)=>{e.runtime.lastError?"The message port closed before a response was received."===e.runtime.lastError.message?s():r(new Error(e.runtime.lastError.message)):n&&n.__mozWebExtensionPolyfillReject__?r(new Error(n.message)):s(n)},x=(e,r,s,...n)=>{if(n.length<r.minArgs)throw new Error(`Expected at least ${r.minArgs} ${a(r.minArgs)} for ${e}(), got ${n.length}`);if(n.length>r.maxArgs)throw new Error(`Expected at most ${r.maxArgs} ${a(r.maxArgs)} for ${e}(), got ${n.length}`);return new Promise((e,r)=>{const t=u.bind(null,{resolve:e,reject:r});n.push(t),s.sendMessage(...n)})},f={devtools:{network:{onRequestFinished:l(A)}},runtime:{onMessage:l(c),onMessageExternal:l(c),sendMessage:x.bind(null,"sendMessage",{minArgs:1,maxArgs:3})},tabs:{sendMessage:x.bind(null,"sendMessage",{minArgs:2,maxArgs:3})}},d={clear:{minArgs:1,maxArgs:1},get:{minArgs:1,maxArgs:1},set:{minArgs:1,maxArgs:1}};return r.privacy={network:{"*":d},services:{"*":d},websites:{"*":d}},m(e,f,r)})(chrome)})?s.apply(r,n):s)||(e.exports=t)},"./src/helpers.js"(e,r,s){"use strict";s.r(r),s.d(r,{getKeys:()=>l,getParamNames:()=>m,isArray:()=>g,isFunction:()=>a,isObject:()=>i,isString:()=>o,toCamelCase:()=>A});const n=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,t=/([^\s,]+)/g;function a(e){return"function"==typeof e}function i(e){return"[object Object]"===Object.prototype.toString.call(e)}function o(e){return"string"==typeof e}function g(e){return Array.isArray(e)}function m(e){const r=e.toString().replace(n,"").split("=>")[0],s=r.slice(r.indexOf("(")+1,r.indexOf(")")).match(t);return null===s?[]:s}function l(e,r){return Object.fromEntries(Object.entries(e).map(([e,s])=>[e,s[r]]))}function A(e,r){const s=e.split(r);return`${s[0]}${s.slice(1).reduce((e,r)=>`${e}${r.charAt(0).toUpperCase()}${r.slice(1)}`,"")}`}},"./src/index.js"(e,r,s){"use strict";s.r(r),s.d(r,{ACCESSORS:()=>g,default:()=>k});var n=s("./src/storage.js"),t=s("./src/helpers.js"),a=s("./src/namespace.js"),i=s("./src/validation.js");const o={},g={},m={},l={},A={GET_TYPE:null,IS_AVAILABE:null,UPDATE_STATE:null,SET_VALUE:null};async function c(e,r,s){const n=A.GET_TYPE(s),t=Object.assign({},r),o=(0,a.namespacify)(e(),r);A.IS_AVAILABE(n)&&await A.UPDATE_STATE(o,n);const m={};for(const s in r)i.isValid.Defining(e(s)),m[e(s)]=u(e(s),o[e(s)],t[s],n);return Object.assign(g,m),T(e())}function u(e,r,s,n){const i=(0,t.isFunction)(r);return i&&function(e,r){const[,s]=(0,a.splitFullKey)(e),n=(0,t.getParamNames)(r).map(e=>(0,a.addNamespace)(s,e));l[e]=n,n.forEach(r=>{m[r]?m[r].push(e):m[r]=[e]})}(e,r),o[e]={value:i?r.apply(null,x(e)):r,computeFn:r,listeners:[],defaultValue:s},function(e,r){const s=()=>o[e].value;return Object.assign(s,{valueOf:()=>o[e].value,toString:()=>o[e].value,set:async s=>await f(e,s,r),onChange:r=>o[e].listeners.push(r),removeListener:r=>o[e].listeners=o[e].listeners.filter(e=>e!==r),reset:()=>f(e,o[e].defaultValue,r)}),new Proxy(s,{get:(r,n)=>Object.keys(s).includes(n)?r[n]:o[e].value[n]})}(e,n)}function x(e){const r=h(e);return l[e].map(e=>r[(0,a.splitFullKey)(e)[0]]).concat(r)}async function f(e,r,s){if(A.IS_AVAILABE(s)){if(await A.SET_VALUE(s,e,r))return}d({[e]:{newValue:r}})}function d(e){const r={};for(const s in e){const n=o[s].value,t=e[s].newValue;n!==t&&(o[s].value=t,r[s]={newValue:t,prevValue:n},p(s,r))}for(const e in r)o[e].listeners.forEach(async s=>await s(o[e].value,h(e),r[e]))}function p(e,r){const s=m[e];s&&s.forEach(e=>{const s=o[e].value,n=o[e].computeFn.apply(null,x(e));s!==n&&(o[e].value=n,r[e]={newValue:n,prevValue:s},p(e,r))})}function b(e,r){return(0,t.isString)(r)?T(r):(0,t.isFunction)(r)?function(e,r){const s=(0,a.getByNamespace)(e,g);return r.call(null,s,T(e()))}(e(""),r):h(e(""))}function h(e){return E((0,t.getKeys)((0,a.getByNamespace)(e,o),"value"))}async function y(e,r){if(!Object.keys(r).length)w();else for(const[s,n]of Object.entries(r))i.isValid.Setting(e(s)),await g[e(s)].set(n);return T(e())}function w(e){return Object.entries(g).filter(([r])=>r.startsWith(e())).forEach((e,{reset:r})=>r()),T(e())}function v(e,r,s){return r.forEach(r=>g[e(r)].onChange(s)),T(e())}function E(e){let r=e;if((0,t.isArray)(e))return r=[],e.forEach(e=>r.push(E(e))),r;if((0,t.isObject)(e)){r={};for(let s in e)r[s]=E(e[s]);return r}return r}function S(){const e=arguments[1];return!e||(0,t.isFunction)(e)||(0,t.isString)(e)?b.apply(null,arguments):Array.isArray(e)?v.apply(null,arguments):(0,t.isObject)(e)?y.apply(null,arguments):void 0}function j(e){Object.assign(A,e)}function T(e){const r=r=>(0,a.addNamespace)(e,r);return Object.assign(S.bind(null,r),{add:e=>c(r,e,!1),addPersistent:e=>c(r,e,!0),get:e=>b(r,e),set:async e=>await y(r,e),resetAll:()=>w(r),onChange:(e,s)=>v(r,e,s),removeListener:(e,s)=>function(e,r,s){return r.forEach(r=>g[e(r)].removeListener(s)),T(e())}(r,e,s),setStorageUtils:j,onStateChange:d})}j(n.default);const k=T("")},"./src/namespace.js"(e,r,s){"use strict";s.r(r),s.d(r,{addNamespace:()=>a,getByNamespace:()=>o,namespacify:()=>g,splitFullKey:()=>i});var n=s("./src/helpers.js");const t="::";function a(e,r){return`${e}${(0,n.isString)(r)&&t||""}${r||""}`}function i(e){const r=e.split(t);return[r.slice(-1)[0],r.slice(0,-1).join(t)]}function o(e,r){const s=i(e)[1]+t;return Object.fromEntries(Object.entries(r).filter(([e,r])=>e.startsWith(s)).map(([e,r])=>[e.slice(s.length),r]))}function g(e,r){return Object.fromEntries(Object.entries(r).map(([r,s])=>[a(e,r),s]))}},"./src/storage.js"(e,r,s){"use strict";s.r(r),s.d(r,{default:()=>n});const n={GET_TYPE:function(e){return e&&"localStorage"},IS_AVAILABE:function(e){return e},UPDATE_STATE:function(e){const r={};for(const s in e){const e=localStorage.getItem(s);null!==e&&(r[s]=e)}return Object.assign(e,r)},SET_VALUE:async function(e,r,s){return await window.localStorage.setItem(r,s),!1}}},"./src/validation.js"(e,r,s){"use strict";s.r(r),s.d(r,{isValid:()=>a});var n=s("./src/index.js"),t=s("./src/namespace.js");const a={Setting:e=>{if(!n.ACCESSORS[e]){const[r,s]=(0,t.splitFullKey)(e);throw new Error(`Setting "${r}" key in "${s}" namespace. DOES NOT EXIST`)}return!0},Defining:e=>{if(n.ACCESSORS[e]){const[r,s]=(0,t.splitFullKey)(e);throw new Error(`Redefining "${r}" key in "${s}" namespace. ALREADY DEFINED`)}return!0}}},"./src/webextension-storage.js"(e,r,s){"use strict";s.r(r),s.d(r,{default:()=>t,isBackgroundScript:()=>i,isSessionStorageSupport:()=>a});const n=s("./node_modules/webextension-polyfill/dist/browser-polyfill.min.js"),t={GET_TYPE:function(e){return i()&&e?"local":"session"},IS_AVAILABE:function(e){return"local"===e||"session"===e&&a()},UPDATE_STATE:async function(e,r){return Object.assign(e,await n.storage[r].get())},SET_VALUE:async function(e,r,s){return await n.storage[e].set({[r]:s}),!0}};function a(){return!!n.storage.session}function i(){return"chrome-extension:"===window.location.protocol||"moz-extension:"===window.location.protocol}}};const r={};function s(n){const t=r[n];if(void 0!==t)return t.exports;const a=r[n]={exports:{}};if(!(n in e)){delete r[n];const e=new Error("Cannot find module '"+n+"'");throw e.code="MODULE_NOT_FOUND",e}return e[n].call(a.exports,a,a.exports,s),a.exports}s.d=(e,r)=>{if(Array.isArray(r))for(var n=0;n<r.length;){var t=r[n++],a=r[n++];s.o(e,t)?0===a&&n++:0===a?Object.defineProperty(e,t,{enumerable:!0,value:r[n++]}):Object.defineProperty(e,t,{enumerable:!0,get:a})}else for(var t in r)s.o(r,t)&&!s.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},s.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),s.r=e=>{Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};let n={};return(()=>{"use strict";s.r(n),s.d(n,{default:()=>o});var e=s("./src/index.js"),r=s("./src/webextension-storage.js");const t=s("./node_modules/webextension-polyfill/dist/browser-polyfill.min.js"),{onStateChange:a,setStorageUtils:i}=e.default;(0,r.isBackgroundScript)()&&(t.storage.local.onChanged.addListener(a),(0,r.isSessionStorageSupport)()&&t.storage.session.onChanged.addListener(a)),i(r.default);const o=e.default})(),n=n.default,n})());
|
|
2
|
+
!function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?exports.Varstor=r():e.Varstor=r()}(this,()=>(()=>{var e={"./src/actions.ts"(e,r,s){"use strict";s.r(r),s.d(r,{addStateActions:()=>n});var t=s("./src/index.ts");function n(e,r){const s={get:t.getState.bind(null,e),set:t.setState.bind(null,e),reset:t.resetState.bind(null,e)};for(let[n,a]of Object.entries(r))t.STATE[e(n)]={key:n,namespace:e,value:a.bind(null,s),isAction:!0,listeners:[]}}},"./src/constants.ts"(e,r,s){"use strict";s.r(r),s.d(r,{NAMESPACE_DELIMITER:()=>t});const t="::"},"./src/helpers.ts"(e,r,s){"use strict";s.r(r),s.d(r,{filter:()=>u,forEach:()=>A,getParamNames:()=>l,isArray:()=>a,isFunction:()=>o,isObject:()=>g,isString:()=>i,map:()=>c,recreateStructure:()=>d});const t=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,n=/([^\s,]+)/g;function a(e){return"[object Array]"===m(e)}function i(e){return"[object String]"===m(e)}function o(e){return"[object Function]"===m(e)}function g(e){return"[object Object]"===m(e)}function m(e){return Object.prototype.toString.call(e)}function l(e){const r=e.toString().replace(t,"").split("=>")[0],s=r.slice(r.indexOf("(")+1,r.indexOf(")")).match(n);return null===s?[]:s}function c(e,r){const s=Object.entries(e).map(([e,s])=>r(e,s));return 2===s[0]?.length?Object.fromEntries(s):s}function A(e,r){Object.entries(e||{}).forEach(([e,s])=>r(e,s))}function u(e,r){return Object.fromEntries(Object.entries(e||{}).filter(([e,s])=>!0===r(e,s)))}function d(e){let r=e;if(a(e))return r=[],e.forEach(e=>r.push(d(e))),r;if(g(e)){r={};for(let s in e)r[s]=d(e[s]);return r}return r}},"./src/index.ts"(e,r,s){"use strict";s.r(r),s.d(r,{STATE:()=>m,createStore:()=>w,default:()=>v,getState:()=>b,getValues:()=>d,resetState:()=>E,setState:()=>h,setupValue:()=>A});var t=s("./src/storage.ts"),n=s("./src/helpers.ts"),a=s("./src/actions.ts"),i=s("./src/constants.ts"),o=s("./src/validation.ts"),g=s("./src/listeners.ts");const m={},l={};async function c(e,r,s){const t=l.GET_TYPE(s),a=Object.assign({},r),i=(0,n.map)(r,(r,s)=>[e(r),s]);l.IS_AVAILABE(t)&&await l.UPDATE_STATE(i,t),g.LISTENERS[e()]||(g.LISTENERS[e()]=[]);for(const s in r){const r=e(s);o.isValid.Defining(r),m[r]=A(s,e,i[r],a[s],t)}return w(e())}function A(e,r,s,t,a){const i=r(e),o=(0,n.isFunction)(s),g=o?(0,n.getParamNames)(s):[];return g.forEach(e=>{const s=r(e);m[s]||(m[s]={dependants:[],dependencies:[],namespace:r,storageType:a}),m[s].dependants?.push(i)}),{key:e,fullKey:i,value:o?s.apply(null,x(g,r)):s,computeFn:o&&s,dependencies:g,dependants:[],listeners:[],defaultValue:t,storageType:a,namespace:r}}function u(e){return(0,n.filter)(m,(r,{key:s})=>r===e(s))}function d(e){return(0,n.map)(u(e),(e,{key:r,value:s})=>[r,s])}function x(e,r){const s=d(r);return e.map(e=>s[e])}async function f(e){const r={};for(const s in e){const t=m[s].value,n=e[s].newValue;t!==n?(r[s]={newValue:n,prevValue:t},m[s].value=n):r[s]={isSame:!0},p(s,e,r)}await(0,g.runStateChangeListeners)((0,n.filter)(r,(e,r)=>!r.isSame))}function p(e,r,s){m[e].dependants?.forEach(e=>{const{dependencies:t,namespace:n}=m[e];if(!function(e,r,s,t){return e.every(e=>{const n=r(e);return s.includes(n)&&t.includes(n)||!s.includes(n)})}(t,n,Object.keys(r),Object.keys(s))||s[e])return;const a=m[e].value,i=m[e].computeFn?.apply(null,x(t,n));a!==i&&(s[e]={newValue:i,prevValue:a},m[e].value=i,p(e,r,s))})}function b(e,r){return(0,n.isString)(r)?w(r):(0,n.recreateStructure)(d(e))}async function h(e,r){const s={};(0,n.forEach)(r,(r,t)=>{const n=e(r),{storageType:a,computeFn:i,isAction:o}=m[n];i||o||(s[a]||(s[a]={}),s[a][n]=t)});for(let[e,r]of Object.entries(s))await S(e,r);return w(e())}async function S(e,r){if(l.IS_AVAILABE(e)){if(await l.SET_VALUES(e,r))return}f((0,n.map)(r,(e,r)=>[e,{newValue:r}]))}async function E(e,r){const s=u(e);return await h(e,(0,n.map)(r?(0,n.filter)(s,(e,{key:s})=>r.includes(s)):s,(e,{key:r,defaultValue:s})=>[r,s])),w(e())}function y(e){return!arguments[1]||(0,n.isString)(arguments[1])?b.apply(null,arguments):(0,n.isArray)(arguments[1])?g.addStateListener.apply(null,arguments):(0,n.isObject)(arguments[1])?h.apply(null,arguments):void 0}function T(e){Object.assign(l,e)}function w(e){const r=r=>function(e,r){return`${e}${(0,n.isString)(r)&&i.NAMESPACE_DELIMITER||""}${r||""}`}(e,r);return Object.assign(y.bind(null,r),{add:e=>c(r,e,!1),addPersistent:e=>c(r,e,!0),get:e=>b(r,e),set:async e=>await h(r,e),reset:e=>E(r,e),onChange:(e,s)=>(0,g.addStateListener)(r,e,s),removeListener:(e,s)=>(0,g.removeStateListener)(r,e,s),actions:e=>(0,a.addStateActions)(r,e),setStorageUtils:T,onStateChange:f})}T(t.default);const v=w("")},"./src/listeners.ts"(e,r,s){"use strict";s.r(r),s.d(r,{LISTENERS:()=>i,addStateListener:()=>g,removeStateListener:()=>m,runStateChangeListeners:()=>o});var t=s("./src/index.ts"),n=s("./src/constants.ts"),a=s("./src/helpers.ts");const i={};async function o(e){if(Object.keys(e).length){const{namespace:r}=t.STATE[Object.keys(e)[0]],s=(0,t.getValues)(r);for(let[r,n]of Object.entries(e)){const{listeners:e,key:a}=t.STATE[r];for(const r of e)await r([a],s,n)}const o=(0,a.map)(e,e=>e.slice(n.NAMESPACE_DELIMITER.length));for(const t of i[r()])await t(o,s,(0,a.map)(e,(e,r)=>[e.slice(n.NAMESPACE_DELIMITER.length),r]))}}function g(e,r,s){return(0,a.isFunction)(r)?(i[e()].push(r),(0,t.createStore)(e())):(r.forEach(r=>t.STATE[e(r)].listeners?.push(s)),(0,t.createStore)(e()))}function m(e,r,s){if((0,a.isFunction)(r)){const s=i[e()].findIndex(e=>e===r);return i[e()].splice(s,1),(0,t.createStore)(e())}return r.forEach(r=>{const n=t.STATE[e(r)].listeners,a=n?.findIndex(e=>e===s);n?.splice(a,1)}),(0,t.createStore)(e())}},"./src/storage.ts"(e,r,s){"use strict";s.r(r),s.d(r,{default:()=>t});const t={GET_TYPE:function(e){return e?"localStorage":""},IS_AVAILABE:function(e){return!!e},UPDATE_STATE:async function(e){const r={};for(const s in e){const e=localStorage.getItem(s);null!==e&&(r[s]=e)}return Object.assign(e,r)},SET_VALUES:async function(e,r){for(let[e,s]of Object.entries(r))localStorage.setItem(e,s);return!1}}},"./src/validation.ts"(e,r,s){"use strict";s.r(r),s.d(r,{isValid:()=>i});var t=s("./src/index.ts"),n=s("./src/constants.ts");function a(e){const r=e.split(n.NAMESPACE_DELIMITER);return[r.slice(-1)[0],r.join(n.NAMESPACE_DELIMITER)]}const i={Setting:e=>{if(!t.STATE[e]){const[r,s]=a(e);throw new Error(`Setting "${r}" key in "${s}" namespace. DOES NOT EXIST`)}return!0},Defining:e=>{if(t.STATE[e]){const[r,s]=a(e);throw new Error(`Redefining "${r}" key in "${s}" namespace. ALREADY DEFINED`)}return!0}}},"./src/webextension-storage.ts"(e,r,s){"use strict";s.r(r),s.d(r,{default:()=>n,isBackgroundScript:()=>i,isSessionStorageSupport:()=>a});const t=s("./node_modules/webextension-polyfill/dist/browser-polyfill.min.js"),n={GET_TYPE:function(e){return i()&&e?"local":"session"},IS_AVAILABE:function(e){return"local"===e||"session"===e&&a()},UPDATE_STATE:async function(e,r){return Object.assign(e,await t.storage[r].get())},SET_VALUES:async function(e,r){return await t.storage[e].set(r),!0}};function a(){return!!t.storage.session}function i(){return"chrome-extension:"===window.location.protocol||"moz-extension:"===window.location.protocol}},"./node_modules/webextension-polyfill/dist/browser-polyfill.min.js"(e,r){var s,t,n;"undefined"==typeof globalThis?"undefined"==typeof self||self:globalThis,t=[e],void 0===(n="function"==typeof(s=function(e){"use strict";if(!(globalThis.chrome&&globalThis.chrome.runtime&&globalThis.chrome.runtime.id))throw new Error("This script should only be loaded in a browser extension.");globalThis.browser&&globalThis.browser.runtime&&globalThis.browser.runtime.id?e.exports=globalThis.browser:e.exports=(e=>{const r={alarms:{clear:{minArgs:0,maxArgs:1},clearAll:{minArgs:0,maxArgs:0},get:{minArgs:0,maxArgs:1},getAll:{minArgs:0,maxArgs:0}},bookmarks:{create:{minArgs:1,maxArgs:1},get:{minArgs:1,maxArgs:1},getChildren:{minArgs:1,maxArgs:1},getRecent:{minArgs:1,maxArgs:1},getSubTree:{minArgs:1,maxArgs:1},getTree:{minArgs:0,maxArgs:0},move:{minArgs:2,maxArgs:2},remove:{minArgs:1,maxArgs:1},removeTree:{minArgs:1,maxArgs:1},search:{minArgs:1,maxArgs:1},update:{minArgs:2,maxArgs:2}},browserAction:{disable:{minArgs:0,maxArgs:1,fallbackToNoCallback:!0},enable:{minArgs:0,maxArgs:1,fallbackToNoCallback:!0},getBadgeBackgroundColor:{minArgs:1,maxArgs:1},getBadgeText:{minArgs:1,maxArgs:1},getPopup:{minArgs:1,maxArgs:1},getTitle:{minArgs:1,maxArgs:1},openPopup:{minArgs:0,maxArgs:0},setBadgeBackgroundColor:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setBadgeText:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setIcon:{minArgs:1,maxArgs:1},setPopup:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setTitle:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0}},browsingData:{remove:{minArgs:2,maxArgs:2},removeCache:{minArgs:1,maxArgs:1},removeCookies:{minArgs:1,maxArgs:1},removeDownloads:{minArgs:1,maxArgs:1},removeFormData:{minArgs:1,maxArgs:1},removeHistory:{minArgs:1,maxArgs:1},removeLocalStorage:{minArgs:1,maxArgs:1},removePasswords:{minArgs:1,maxArgs:1},removePluginData:{minArgs:1,maxArgs:1},settings:{minArgs:0,maxArgs:0}},commands:{getAll:{minArgs:0,maxArgs:0}},contextMenus:{remove:{minArgs:1,maxArgs:1},removeAll:{minArgs:0,maxArgs:0},update:{minArgs:2,maxArgs:2}},cookies:{get:{minArgs:1,maxArgs:1},getAll:{minArgs:1,maxArgs:1},getAllCookieStores:{minArgs:0,maxArgs:0},remove:{minArgs:1,maxArgs:1},set:{minArgs:1,maxArgs:1}},devtools:{inspectedWindow:{eval:{minArgs:1,maxArgs:2,singleCallbackArg:!1}},panels:{create:{minArgs:3,maxArgs:3,singleCallbackArg:!0},elements:{createSidebarPane:{minArgs:1,maxArgs:1}}}},downloads:{cancel:{minArgs:1,maxArgs:1},download:{minArgs:1,maxArgs:1},erase:{minArgs:1,maxArgs:1},getFileIcon:{minArgs:1,maxArgs:2},open:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},pause:{minArgs:1,maxArgs:1},removeFile:{minArgs:1,maxArgs:1},resume:{minArgs:1,maxArgs:1},search:{minArgs:1,maxArgs:1},show:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0}},extension:{isAllowedFileSchemeAccess:{minArgs:0,maxArgs:0},isAllowedIncognitoAccess:{minArgs:0,maxArgs:0}},history:{addUrl:{minArgs:1,maxArgs:1},deleteAll:{minArgs:0,maxArgs:0},deleteRange:{minArgs:1,maxArgs:1},deleteUrl:{minArgs:1,maxArgs:1},getVisits:{minArgs:1,maxArgs:1},search:{minArgs:1,maxArgs:1}},i18n:{detectLanguage:{minArgs:1,maxArgs:1},getAcceptLanguages:{minArgs:0,maxArgs:0}},identity:{launchWebAuthFlow:{minArgs:1,maxArgs:1}},idle:{queryState:{minArgs:1,maxArgs:1}},management:{get:{minArgs:1,maxArgs:1},getAll:{minArgs:0,maxArgs:0},getSelf:{minArgs:0,maxArgs:0},setEnabled:{minArgs:2,maxArgs:2},uninstallSelf:{minArgs:0,maxArgs:1}},notifications:{clear:{minArgs:1,maxArgs:1},create:{minArgs:1,maxArgs:2},getAll:{minArgs:0,maxArgs:0},getPermissionLevel:{minArgs:0,maxArgs:0},update:{minArgs:2,maxArgs:2}},pageAction:{getPopup:{minArgs:1,maxArgs:1},getTitle:{minArgs:1,maxArgs:1},hide:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setIcon:{minArgs:1,maxArgs:1},setPopup:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setTitle:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},show:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0}},permissions:{contains:{minArgs:1,maxArgs:1},getAll:{minArgs:0,maxArgs:0},remove:{minArgs:1,maxArgs:1},request:{minArgs:1,maxArgs:1}},runtime:{getBackgroundPage:{minArgs:0,maxArgs:0},getPlatformInfo:{minArgs:0,maxArgs:0},openOptionsPage:{minArgs:0,maxArgs:0},requestUpdateCheck:{minArgs:0,maxArgs:0},sendMessage:{minArgs:1,maxArgs:3},sendNativeMessage:{minArgs:2,maxArgs:2},setUninstallURL:{minArgs:1,maxArgs:1}},sessions:{getDevices:{minArgs:0,maxArgs:1},getRecentlyClosed:{minArgs:0,maxArgs:1},restore:{minArgs:0,maxArgs:1}},storage:{local:{clear:{minArgs:0,maxArgs:0},get:{minArgs:0,maxArgs:1},getBytesInUse:{minArgs:0,maxArgs:1},remove:{minArgs:1,maxArgs:1},set:{minArgs:1,maxArgs:1}},managed:{get:{minArgs:0,maxArgs:1},getBytesInUse:{minArgs:0,maxArgs:1}},sync:{clear:{minArgs:0,maxArgs:0},get:{minArgs:0,maxArgs:1},getBytesInUse:{minArgs:0,maxArgs:1},remove:{minArgs:1,maxArgs:1},set:{minArgs:1,maxArgs:1}}},tabs:{captureVisibleTab:{minArgs:0,maxArgs:2},create:{minArgs:1,maxArgs:1},detectLanguage:{minArgs:0,maxArgs:1},discard:{minArgs:0,maxArgs:1},duplicate:{minArgs:1,maxArgs:1},executeScript:{minArgs:1,maxArgs:2},get:{minArgs:1,maxArgs:1},getCurrent:{minArgs:0,maxArgs:0},getZoom:{minArgs:0,maxArgs:1},getZoomSettings:{minArgs:0,maxArgs:1},goBack:{minArgs:0,maxArgs:1},goForward:{minArgs:0,maxArgs:1},highlight:{minArgs:1,maxArgs:1},insertCSS:{minArgs:1,maxArgs:2},move:{minArgs:2,maxArgs:2},query:{minArgs:1,maxArgs:1},reload:{minArgs:0,maxArgs:2},remove:{minArgs:1,maxArgs:1},removeCSS:{minArgs:1,maxArgs:2},sendMessage:{minArgs:2,maxArgs:3},setZoom:{minArgs:1,maxArgs:2},setZoomSettings:{minArgs:1,maxArgs:2},update:{minArgs:1,maxArgs:2}},topSites:{get:{minArgs:0,maxArgs:0}},webNavigation:{getAllFrames:{minArgs:1,maxArgs:1},getFrame:{minArgs:1,maxArgs:1}},webRequest:{handlerBehaviorChanged:{minArgs:0,maxArgs:0}},windows:{create:{minArgs:0,maxArgs:1},get:{minArgs:1,maxArgs:2},getAll:{minArgs:0,maxArgs:1},getCurrent:{minArgs:0,maxArgs:1},getLastFocused:{minArgs:0,maxArgs:1},remove:{minArgs:1,maxArgs:1},update:{minArgs:2,maxArgs:2}}};if(0===Object.keys(r).length)throw new Error("api-metadata.json has not been included in browser-polyfill");class s extends WeakMap{constructor(e,r=void 0){super(r),this.createItem=e}get(e){return this.has(e)||this.set(e,this.createItem(e)),super.get(e)}}const t=e=>e&&"object"==typeof e&&"function"==typeof e.then,n=(r,s)=>(...t)=>{e.runtime.lastError?r.reject(new Error(e.runtime.lastError.message)):s.singleCallbackArg||1>=t.length&&!1!==s.singleCallbackArg?r.resolve(t[0]):r.resolve(t)},a=e=>1==e?"argument":"arguments",i=(e,r)=>function(s,...t){if(t.length<r.minArgs)throw new Error(`Expected at least ${r.minArgs} ${a(r.minArgs)} for ${e}(), got ${t.length}`);if(t.length>r.maxArgs)throw new Error(`Expected at most ${r.maxArgs} ${a(r.maxArgs)} for ${e}(), got ${t.length}`);return new Promise((a,i)=>{if(r.fallbackToNoCallback)try{s[e](...t,n({resolve:a,reject:i},r))}catch(n){console.warn(`${e} API method doesn't seem to support the callback parameter, falling back to call it without a callback: `,n),s[e](...t),r.fallbackToNoCallback=!1,r.noCallback=!0,a()}else r.noCallback?(s[e](...t),a()):s[e](...t,n({resolve:a,reject:i},r))})},o=(e,r,s)=>new Proxy(r,{apply:(r,t,n)=>s.call(t,e,...n)});let g=Function.call.bind(Object.prototype.hasOwnProperty);const m=(e,r={},s={})=>{let t=Object.create(null),n=Object.create(e);return new Proxy(n,{has:(r,s)=>s in e||s in t,get(n,a){if(a in t)return t[a];if(!(a in e))return;let l=e[a];if("function"==typeof l)if("function"==typeof r[a])l=o(e,e[a],r[a]);else if(g(s,a)){let r=i(a,s[a]);l=o(e,e[a],r)}else l=l.bind(e);else if("object"==typeof l&&null!==l&&(g(r,a)||g(s,a)))l=m(l,r[a],s[a]);else{if(!g(s,"*"))return Object.defineProperty(t,a,{configurable:!0,enumerable:!0,get:()=>e[a],set(r){e[a]=r}}),l;l=m(l,r[a],s["*"])}return t[a]=l,l},set:(r,s,n)=>(s in t?t[s]=n:e[s]=n,!0),defineProperty:(e,r,s)=>Reflect.defineProperty(t,r,s),deleteProperty:(e,r)=>Reflect.deleteProperty(t,r)})},l=e=>({addListener(r,s,...t){r.addListener(e.get(s),...t)},hasListener:(r,s)=>r.hasListener(e.get(s)),removeListener(r,s){r.removeListener(e.get(s))}}),c=new s(e=>"function"==typeof e?function(r){const s=m(r,{},{getContent:{minArgs:0,maxArgs:0}});e(s)}:e),A=new s(e=>"function"==typeof e?function(r,s,n){let a,i,o=!1,g=new Promise(e=>{a=function(r){o=!0,e(r)}});try{i=e(r,s,a)}catch(e){i=Promise.reject(e)}const m=!0!==i&&t(i);if(!0!==i&&!m&&!o)return!1;const l=e=>{e.then(e=>{n(e)},e=>{let r;r=e&&(e instanceof Error||"string"==typeof e.message)?e.message:"An unexpected error occurred",n({__mozWebExtensionPolyfillReject__:!0,message:r})}).catch(e=>{console.error("Failed to send onMessage rejected reply",e)})};return l(m?i:g),!0}:e),u=({reject:r,resolve:s},t)=>{e.runtime.lastError?"The message port closed before a response was received."===e.runtime.lastError.message?s():r(new Error(e.runtime.lastError.message)):t&&t.__mozWebExtensionPolyfillReject__?r(new Error(t.message)):s(t)},d=(e,r,s,...t)=>{if(t.length<r.minArgs)throw new Error(`Expected at least ${r.minArgs} ${a(r.minArgs)} for ${e}(), got ${t.length}`);if(t.length>r.maxArgs)throw new Error(`Expected at most ${r.maxArgs} ${a(r.maxArgs)} for ${e}(), got ${t.length}`);return new Promise((e,r)=>{const n=u.bind(null,{resolve:e,reject:r});t.push(n),s.sendMessage(...t)})},x={devtools:{network:{onRequestFinished:l(c)}},runtime:{onMessage:l(A),onMessageExternal:l(A),sendMessage:d.bind(null,"sendMessage",{minArgs:1,maxArgs:3})},tabs:{sendMessage:d.bind(null,"sendMessage",{minArgs:2,maxArgs:3})}},f={clear:{minArgs:1,maxArgs:1},get:{minArgs:1,maxArgs:1},set:{minArgs:1,maxArgs:1}};return r.privacy={network:{"*":f},services:{"*":f},websites:{"*":f}},m(e,x,r)})(chrome)})?s.apply(r,t):s)||(e.exports=n)}};const r={};function s(t){const n=r[t];if(void 0!==n)return n.exports;const a=r[t]={exports:{}};if(!(t in e)){delete r[t];const e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}return e[t].call(a.exports,a,a.exports,s),a.exports}s.d=(e,r)=>{if(Array.isArray(r))for(var t=0;t<r.length;){var n=r[t++],a=r[t++];s.o(e,n)?0===a&&t++:0===a?Object.defineProperty(e,n,{enumerable:!0,value:r[t++]}):Object.defineProperty(e,n,{enumerable:!0,get:a})}else for(var n in r)s.o(r,n)&&!s.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},s.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),s.r=e=>{Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};let t={};return(()=>{"use strict";s.r(t),s.d(t,{default:()=>o});var e=s("./src/index.ts"),r=s("./src/webextension-storage.ts");const n=s("./node_modules/webextension-polyfill/dist/browser-polyfill.min.js"),{onStateChange:a,setStorageUtils:i}=e.default;(0,r.isBackgroundScript)()&&(n.storage.local.onChanged.addListener(a),(0,r.isSessionStorageSupport)()&&n.storage.session.onChanged.addListener(a)),i(r.default);const o=e.default})(),t=t.default,t})());
|