diff --git a/package-lock.json b/package-lock.json index 175131d..d2b8618 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,15 +9,14 @@ "dependencies": { "@capacitor/android": "^5.3.0", "@capacitor/assets": "^3.0.0", + "@capacitor/cli": "^5.3.0", "@capacitor/core": "^5.3.0", "@capacitor/ios": "^5.3.0", "@capgo/capacitor-updater": "^5.3.9", "@capgo/cli": "^3.13.16", "parcel": "^2.9.3" }, - "devDependencies": { - "@capacitor/cli": "^5.3.0" - } + "devDependencies": {} }, "node_modules/@babel/code-frame": { "version": "7.22.13", diff --git a/package.json b/package.json index b657ebe..d65d968 100644 --- a/package.json +++ b/package.json @@ -7,11 +7,10 @@ "@capacitor/ios": "^5.3.0", "@capgo/capacitor-updater": "^5.3.9", "@capgo/cli": "^3.13.16", - "parcel": "^2.9.3" - }, - "devDependencies": { + "parcel": "^2.9.3", "@capacitor/cli": "^5.3.0" }, + "devDependencies": {}, "targets": { "wild": { "source": "src/app.js", diff --git a/static/app.js b/static/app.js deleted file mode 100644 index 44e65b8..0000000 --- a/static/app.js +++ /dev/null @@ -1,66 +0,0 @@ -(()=>{function e(e,t,r,n){Object.defineProperty(e,t,{get:r,set:n,enumerable:!0,configurable:!0})}var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},r={},n={},i=t.parcelRequire94c2;null==i&&((i=function(e){if(e in r)return r[e].exports;if(e in n){var t=n[e];delete n[e];var i={id:e,exports:{}};return r[e]=i,t.call(i.exports,i,i.exports),i.exports}var o=Error("Cannot find module '"+e+"'");throw o.code="MODULE_NOT_FOUND",o}).register=function(e,t){n[e]=t},t.parcelRequire94c2=i),i.register("kI8SP",function(t,r){e(t.exports,"register",()=>n,e=>n=e),e(t.exports,"resolve",()=>i,e=>i=e);var n,i,o={};n=function(e){for(var t=Object.keys(e),r=0;rp),e(r.exports,"WebPlugin",()=>f);/** - * @deprecated Set `CapacitorCustomPlatform` on the window object prior to runtime executing in the web app instead - */let l=(o="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==t?t:{}).CapacitorPlatforms=(e=>{let t=new Map;t.set("web",{name:"web"});let r=e.CapacitorPlatforms||{currentPlatform:{name:"web"},platforms:t};return r.addPlatform=(e,t)=>{r.platforms.set(e,t)},r.setPlatform=e=>{r.platforms.has(e)&&(r.currentPlatform=r.platforms.get(e))},r})(o);l.addPlatform,l.setPlatform,/** - * API is not implemented. - * - * This usually means the API can't be used because it is not implemented for - * the current platform. - */(a=i||(i={})).Unimplemented="UNIMPLEMENTED",/** - * API is not available. - * - * This means the API can't be used right now because: - * - it is currently missing a prerequisite, such as network connectivity - * - it requires a particular platform or browser version - */a.Unavailable="UNAVAILABLE";class d extends Error{constructor(e,t,r){super(e),this.message=e,this.code=t,this.data=r}}let c=e=>{var t,r;return(null==e?void 0:e.androidBridge)?"android":(null===(r=null===(t=null==e?void 0:e.webkit)||void 0===t?void 0:t.messageHandlers)||void 0===r?void 0:r.bridge)?"ios":"web"},u=(s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==t?t:{}).Capacitor=(e=>{var t,r,n,o,a;let s=e.CapacitorCustomPlatform||null,l=e.Capacitor||{},u=l.Plugins=l.Plugins||{},p=e.CapacitorPlatforms,f=(null===(t=null==p?void 0:p.currentPlatform)||void 0===t?void 0:t.getPlatform)||(()=>null!==s?s.name:c(e)),m=(null===(r=null==p?void 0:p.currentPlatform)||void 0===r?void 0:r.isNativePlatform)||(()=>"web"!==f()),h=(null===(n=null==p?void 0:p.currentPlatform)||void 0===n?void 0:n.isPluginAvailable)||(e=>{let t=g.get(e);return!!((null==t?void 0:t.platforms.has(f()))||w(e))}),w=(null===(o=null==p?void 0:p.currentPlatform)||void 0===o?void 0:o.getPluginHeader)||(e=>{var t;return null===(t=l.PluginHeaders)||void 0===t?void 0:t.find(t=>t.name===e)}),g=new Map,v=(null===(a=null==p?void 0:p.currentPlatform)||void 0===a?void 0:a.registerPlugin)||((e,t={})=>{let r;let n=g.get(e);if(n)return console.warn(`Capacitor plugin "${e}" already registered. Cannot register plugins twice.`),n.proxy;let o=f(),a=w(e),c=async()=>(!r&&o in t?r=r="function"==typeof t[o]?await t[o]():t[o]:null!==s&&!r&&"web"in t&&(r=r="function"==typeof t.web?await t.web():t.web),r),p=(t,r)=>{var n,s;if(a){let i=null==a?void 0:a.methods.find(e=>r===e.name);if(i)return"promise"===i.rtype?t=>l.nativePromise(e,r.toString(),t):(t,n)=>l.nativeCallback(e,r.toString(),t,n);if(t)return null===(n=t[r])||void 0===n?void 0:n.bind(t)}else if(t)return null===(s=t[r])||void 0===s?void 0:s.bind(t);else throw new d(`"${e}" plugin is not implemented on ${o}`,i.Unimplemented)},m=t=>{let r;let n=(...n)=>{let a=c().then(a=>{let s=p(a,t);if(s){let e=s(...n);return r=null==e?void 0:e.remove,e}throw new d(`"${e}.${t}()" is not implemented on ${o}`,i.Unimplemented)});return"addListener"===t&&(a.remove=async()=>r()),a};return(// Some flair ✨ -n.toString=()=>`${t.toString()}() { [capacitor code] }`,Object.defineProperty(n,"name",{value:t,writable:!1,configurable:!1}),n)},h=m("addListener"),v=m("removeListener"),b=(e,t)=>{let r=h({eventName:e},t),n=async()=>{let n=await r;v({eventName:e,callbackId:n},t)},i=new Promise(e=>r.then(()=>e({remove:n})));return i.remove=async()=>{console.warn("Using addListener() without 'await' is deprecated."),await n()},i},y=new Proxy({},{get(e,t){switch(t){// https://github.com/facebook/react/issues/20030 -case"$$typeof":return;case"toJSON":return()=>({});case"addListener":return a?b:h;case"removeListener":return v;default:return m(t)}}});return u[e]=y,g.set(e,{name:e,proxy:y,platforms:new Set([...Object.keys(t),...a?[o]:[]])}),y});return l.convertFileSrc||(l.convertFileSrc=e=>e),l.getPlatform=f,l.handleError=t=>e.console.error(t),l.isNativePlatform=m,l.isPluginAvailable=h,l.pluginMethodNoop=(e,t,r)=>Promise.reject(`${r} does not have an implementation of "${t}".`),l.registerPlugin=v,l.Exception=d,l.DEBUG=!!l.DEBUG,l.isLoggingEnabled=!!l.isLoggingEnabled,// Deprecated props -l.platform=l.getPlatform(),l.isNative=l.isNativePlatform(),l})(s),p=u.registerPlugin;u.Plugins;/** - * Base class web plugins should extend. - */class f{constructor(e){this.listeners={},this.windowListeners={},e&&(// TODO: add link to upgrade guide -console.warn(`Capacitor WebPlugin "${e.name}" config object was deprecated in v3 and will be removed in v4.`),this.config=e)}addListener(e,t){let r=this.listeners[e];r||(this.listeners[e]=[]),this.listeners[e].push(t);// If we haven't added a window listener for this event and it requires one, -// go ahead and add it -let n=this.windowListeners[e];n&&!n.registered&&this.addWindowListener(n);let i=async()=>this.removeListener(e,t),o=Promise.resolve({remove:i});return Object.defineProperty(o,"remove",{value:async()=>{console.warn("Using addListener() without 'await' is deprecated."),await i()}}),o}async removeAllListeners(){for(let e in this.listeners={},this.windowListeners)this.removeWindowListener(this.windowListeners[e]);this.windowListeners={}}notifyListeners(e,t){let r=this.listeners[e];r&&r.forEach(e=>e(t))}hasListeners(e){return!!this.listeners[e].length}registerWindowListener(e,t){this.windowListeners[t]={registered:!1,windowEventName:e,pluginEventName:t,handler:e=>{this.notifyListeners(t,e)}}}unimplemented(e="not implemented"){return new u.Exception(e,i.Unimplemented)}unavailable(e="not available"){return new u.Exception(e,i.Unavailable)}async removeListener(e,t){let r=this.listeners[e];if(!r)return;let n=r.indexOf(t);this.listeners[e].splice(n,1),this.listeners[e].length||this.removeWindowListener(this.windowListeners[e])}addWindowListener(e){window.addEventListener(e.windowEventName,e.handler),e.registered=!0}removeWindowListener(e){e&&(window.removeEventListener(e.windowEventName,e.handler),e.registered=!1)}}/******** END WEB VIEW PLUGIN ********//******** COOKIES PLUGIN ********//** - * Safely web encode a string value (inspired by js-cookie) - * @param str The string value to encode - */let m=e=>encodeURIComponent(e).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape),h=e=>e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent);class w extends f{async getCookies(){let e=document.cookie,t={};return e.split(";").forEach(e=>{if(e.length<=0)return;// Replace first "=" with CAP_COOKIE to prevent splitting on additional "=" -let[r,n]=e.replace(/=/,"CAP_COOKIE").split("CAP_COOKIE");r=h(r).trim(),n=h(n).trim(),t[r]=n}),t}async setCookie(e){try{// Safely Encoded Key/Value -let t=m(e.key),r=m(e.value),n=`; expires=${(e.expires||"").replace("expires=","")}`,i=(e.path||"/").replace("path=",""),o=null!=e.url&&e.url.length>0?`domain=${e.url}`:"";document.cookie=`${t}=${r||""}${n}; path=${i}; ${o};`}catch(e){return Promise.reject(e)}}async deleteCookie(e){try{document.cookie=`${e.key}=; Max-Age=0`}catch(e){return Promise.reject(e)}}async clearCookies(){try{let e=document.cookie.split(";")||[];for(let t of e)document.cookie=t.replace(/^ +/,"").replace(/=.*/,`=;expires=${new Date().toUTCString()};path=/`)}catch(e){return Promise.reject(e)}}async clearAllCookies(){try{await this.clearCookies()}catch(e){return Promise.reject(e)}}}p("CapacitorCookies",{web:()=>new w});// UTILITY FUNCTIONS -/** - * Read in a Blob value and return it as a base64 string - * @param blob The blob value to convert to a base64 string - */let g=async e=>new Promise((t,r)=>{let n=new FileReader;n.onload=()=>{let e=n.result;// remove prefix "data:application/pdf;base64," - t(e.indexOf(",")>=0?e.split(",")[1]:e)},n.onerror=e=>r(e),n.readAsDataURL(e)}),v=(e={})=>{let t=Object.keys(e),r=Object.keys(e).map(e=>e.toLocaleLowerCase()),n=r.reduce((r,n,i)=>(r[n]=e[t[i]],r),{});return n},b=(e,t=!0)=>{if(!e)return null;let r=Object.entries(e).reduce((e,r)=>{let n,i;let[o,a]=r;return Array.isArray(a)?(i="",a.forEach(e=>{n=t?encodeURIComponent(e):e,i+=`${o}=${n}&`}),// last character will always be "&" so slice it off -i.slice(0,-1)):i=`${o}=${n=t?encodeURIComponent(a):a}`,`${e}&${i}`},"");// Remove initial "&" from the reduce -return r.substr(1)},y=(e,t={})=>{let r=Object.assign({method:e.method||"GET",headers:e.headers},t),n=v(e.headers),i=n["content-type"]||"";// If body is already a string, then pass it through as-is. -if("string"==typeof e.data)r.body=e.data;else if(i.includes("application/x-www-form-urlencoded")){let t=new URLSearchParams;for(let[r,n]of Object.entries(e.data||{}))t.set(r,n);r.body=t.toString()}else if(i.includes("multipart/form-data")){let t=new FormData;if(e.data instanceof FormData)e.data.forEach((e,r)=>{t.append(r,e)});else for(let r of Object.keys(e.data))t.append(r,e.data[r]);r.body=t;let n=new Headers(r.headers);n.delete("content-type"),r.headers=n}else(i.includes("application/json")||"object"==typeof e.data)&&(r.body=JSON.stringify(e.data));return r};// WEB IMPLEMENTATION -class P extends f{/** - * Perform an Http request given a set of options - * @param options Options to build the HTTP request - */async request(e){let t,r;let n=y(e,e.webFetchExtra),i=b(e.params,e.shouldEncodeUrlParams),o=i?`${e.url}?${i}`:e.url,a=await fetch(o,n),s=a.headers.get("content-type")||"",{responseType:l="text"}=a.ok?e:{};switch(s.includes("application/json")&&(l="json"),l){case"arraybuffer":case"blob":r=await a.blob(),t=await g(r);break;case"json":t=await a.json();break;default:t=await a.text()}// Convert fetch headers to Capacitor HttpHeaders -let d={};return a.headers.forEach((e,t)=>{d[t]=e}),{data:t,headers:d,status:a.status,url:a.url}}/** - * Perform an Http GET request given a set of options - * @param options Options to build the HTTP request - */async get(e){return this.request(Object.assign(Object.assign({},e),{method:"GET"}))}/** - * Perform an Http POST request given a set of options - * @param options Options to build the HTTP request - */async post(e){return this.request(Object.assign(Object.assign({},e),{method:"POST"}))}/** - * Perform an Http PUT request given a set of options - * @param options Options to build the HTTP request - */async put(e){return this.request(Object.assign(Object.assign({},e),{method:"PUT"}))}/** - * Perform an Http PATCH request given a set of options - * @param options Options to build the HTTP request - */async patch(e){return this.request(Object.assign(Object.assign({},e),{method:"PATCH"}))}/** - * Perform an Http DELETE request given a set of options - * @param options Options to build the HTTP request - */async delete(e){return this.request(Object.assign(Object.assign({},e),{method:"DELETE"}))}}p("CapacitorHttp",{web:()=>new P})}),i.register("ccrFy",function(e,t){e.exports=i("dNLwc")(i("hIarR").getBundleURL("jWRdZ")+i("kI8SP").resolve("ekHe4")).then(()=>i("55omy"))}),i.register("dNLwc",function(e,t){var r=i("7lV8K");e.exports=r(function(e){return new Promise(function(t,r){if([].concat(document.getElementsByTagName("script")).some(function(t){return t.src===e})){t();return}var n=document.createElement("link");n.href=e,n.rel="preload",n.as="script",document.head.appendChild(n);var i=document.createElement("script");i.async=!0,i.type="text/javascript",i.src=e,i.onerror=function(t){var n=TypeError("Failed to fetch dynamically imported module: ".concat(e,". Error: ").concat(t.message));i.onerror=i.onload=null,i.remove(),r(n)},i.onload=function(){i.onerror=i.onload=null,t()},document.getElementsByTagName("head")[0].appendChild(i)})})}),i.register("7lV8K",function(e,t){var r={},n={},i={};e.exports=function(e,t){return function(o){var a=function(e){switch(e){case"preload":return n;case"prefetch":return i;default:return r}}(t);return a[o]?a[o]:a[o]=e.apply(null,arguments).catch(function(e){throw delete a[o],e})}}}),i.register("hIarR",function(t,r){e(t.exports,"getBundleURL",()=>n,e=>n=e);var n,i={};n=function(e){var t=i[e];return t||(t=function(){try{throw Error()}catch(t){var e=(""+t.stack).match(/(https?|file|ftp|(chrome|moz|safari-web)-extension):\/\/[^)\n]+/g);if(e)// Use the 3rd one, which will be a runtime in the original bundle. -return(""+e[2]).replace(/^((?:https?|file|ftp|(chrome|moz|safari-web)-extension):\/\/.+)\/[^/]+$/,"$1")+"/"}return"/"}(),i[e]=t),t}}),i("kI8SP").register(JSON.parse('{"jWRdZ":"app.js","ekHe4":"web.15591f28.js"}'));/* - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */var o=i("bNLeC");/* - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */let a=(0,o.registerPlugin)("CapacitorUpdater",{web:()=>i("ccrFy").then(e=>new e.CapacitorUpdaterWeb)});a.notifyAppReady(),console.log("CapacitorUpdater Loaded")})();//# sourceMappingURL=app.js.map - -//# sourceMappingURL=app.js.map diff --git a/static/app.js.map b/static/app.js.map deleted file mode 100644 index 5c746a7..0000000 --- a/static/app.js.map +++ /dev/null @@ -1 +0,0 @@ -{"mappings":"A,C,K,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,Q,S,C,C,C,E,E,E,O,C,W,I,E,A,G,E,G,E,E,O,C,U,I,E,A,G,E,GCEA,IAcA,EACA,EAfI,EAAU,CAAC,EAcf,EAbA,SAAkB,CAAK,EAErB,IAAK,IADD,EAAO,OAAO,IAAA,CAAK,GACd,EAAI,EAAG,EAAI,EAAK,MAAA,CAAQ,IAC/B,CAAO,CAAC,CAAI,CAAC,EAAE,CAAC,CAAG,CAAK,CAAC,CAAI,CAAC,EAAE,CAAC,AAErC,EASA,EARA,SAAiB,CAAE,EACjB,IAAI,EAAW,CAAO,CAAC,EAAG,CAC1B,GAAI,AAAY,MAAZ,EACF,MAAM,AAAI,MAAM,oCAAsC,GAExD,OAAO,CACT,C,G,E,Q,C,Q,S,C,C,C,MIfW,EFmBY,EElBZ,ECoLyB,E,E,E,O,C,iB,I,G,E,E,O,C,Y,I,EHjKpC;;CAEA,EACY,IAAC,EAJmB,CAAT,EAIwC,AAAsB,aAAtB,OAAO,WAChE,WACA,AAAgB,aAAhB,OAAO,KACH,KACA,AAAkB,aAAlB,OAAO,OACH,OACA,AAAkB,KAAA,IAAX,EACH,EACA,CAAA,GAZkB,kBAAA,CAAqB,AAnBxB,CAAA,AAAC,IAC9B,IAAM,EAAqB,IAAI,IAC/B,EAAmB,GAAA,CAAI,MAAO,CAAE,KAAM,KAAK,GAC3C,IAAM,EAAe,EAAI,kBAAA,EAAsB,CAC3C,gBAAiB,CAAE,KAAM,KAAK,EAC9B,UAAW,CACnB,EAWI,OAFA,EAAa,WAAA,CARO,CAAC,EAAM,KACvB,EAAa,SAAA,CAAU,GAAA,CAAI,EAAM,EACzC,EAOI,EAAa,WAAA,CANO,AAA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","sources":["","node_modules/@parcel/runtime-js/lib/helpers/bundle-manifest.js","node_modules/@capacitor/core/dist/index.js","node_modules/@capacitor/core/build/platforms.js","node_modules/@capacitor/core/build/legacy/legacy-web-plugin-merge.js","node_modules/@capacitor/core/build/util.js","node_modules/@capacitor/core/build/runtime.js","node_modules/@capacitor/core/build/global.js","node_modules/@capacitor/core/build/web-plugin.js","node_modules/@capacitor/core/build/core-plugins.js","node_modules/@parcel/runtime-js/lib/runtime-571035a8ed9cdd69.js","node_modules/@parcel/runtime-js/lib/helpers/browser/js-loader.js","node_modules/@parcel/runtime-js/lib/helpers/cacheLoader.js","node_modules/@parcel/runtime-js/lib/helpers/bundle-url.js","node_modules/@parcel/runtime-js/lib/runtime-ddaae47ac23325ea.js","src/app.js","node_modules/@capgo/capacitor-updater/dist/esm/index.js","node_modules/@capgo/capacitor-updater/src/index.ts","node_modules/@capgo/capacitor-updater/dist/esm/definitions.js","node_modules/@capgo/capacitor-updater/src/definitions.ts"],"sourcesContent":["(() => {\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\nvar $parcel$global =\ntypeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequire94c2\"];\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequire94c2\"] = parcelRequire;\n}\nparcelRequire.register(\"kI8SP\", function(module, exports) {\n\n$parcel$export(module.exports, \"register\", () => $f13ecebb1f16f955$export$6503ec6e8aabbaf, (v) => $f13ecebb1f16f955$export$6503ec6e8aabbaf = v);\n$parcel$export(module.exports, \"resolve\", () => $f13ecebb1f16f955$export$f7ad0328861e2f03, (v) => $f13ecebb1f16f955$export$f7ad0328861e2f03 = v);\nvar $f13ecebb1f16f955$export$6503ec6e8aabbaf;\nvar $f13ecebb1f16f955$export$f7ad0328861e2f03;\n\"use strict\";\nvar $f13ecebb1f16f955$var$mapping = {};\nfunction $f13ecebb1f16f955$var$register(pairs) {\n var keys = Object.keys(pairs);\n for(var i = 0; i < keys.length; i++)$f13ecebb1f16f955$var$mapping[keys[i]] = pairs[keys[i]];\n}\nfunction $f13ecebb1f16f955$var$resolve(id) {\n var resolved = $f13ecebb1f16f955$var$mapping[id];\n if (resolved == null) throw new Error(\"Could not resolve bundle with id \" + id);\n return resolved;\n}\n$f13ecebb1f16f955$export$6503ec6e8aabbaf = $f13ecebb1f16f955$var$register;\n$f13ecebb1f16f955$export$f7ad0328861e2f03 = $f13ecebb1f16f955$var$resolve;\n\n});\n\nparcelRequire.register(\"bNLeC\", function(module, exports) {\n\n$parcel$export(module.exports, \"registerPlugin\", () => $8978e92beab2e837$export$7612db19fb8beb1e);\n$parcel$export(module.exports, \"WebPlugin\", () => $8978e92beab2e837$export$7c58ec35c4c5ea54);\n/*! Capacitor: https://capacitorjs.com/ - MIT License */ const $8978e92beab2e837$var$createCapacitorPlatforms = (win)=>{\n const defaultPlatformMap = new Map();\n defaultPlatformMap.set(\"web\", {\n name: \"web\"\n });\n const capPlatforms = win.CapacitorPlatforms || {\n currentPlatform: {\n name: \"web\"\n },\n platforms: defaultPlatformMap\n };\n const addPlatform = (name, platform)=>{\n capPlatforms.platforms.set(name, platform);\n };\n const setPlatform = (name)=>{\n if (capPlatforms.platforms.has(name)) capPlatforms.currentPlatform = capPlatforms.platforms.get(name);\n };\n capPlatforms.addPlatform = addPlatform;\n capPlatforms.setPlatform = setPlatform;\n return capPlatforms;\n};\nconst $8978e92beab2e837$var$initPlatforms = (win)=>win.CapacitorPlatforms = $8978e92beab2e837$var$createCapacitorPlatforms(win);\n/**\n * @deprecated Set `CapacitorCustomPlatform` on the window object prior to runtime executing in the web app instead\n */ const $8978e92beab2e837$export$6f089bd27500a512 = /*#__PURE__*/ $8978e92beab2e837$var$initPlatforms(typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof $parcel$global !== \"undefined\" ? $parcel$global : {});\n/**\n * @deprecated Set `CapacitorCustomPlatform` on the window object prior to runtime executing in the web app instead\n */ const $8978e92beab2e837$export$ba431e9cfcbcb9dc = $8978e92beab2e837$export$6f089bd27500a512.addPlatform;\n/**\n * @deprecated Set `CapacitorCustomPlatform` on the window object prior to runtime executing in the web app instead\n */ const $8978e92beab2e837$export$5f05d56a0f2349cc = $8978e92beab2e837$export$6f089bd27500a512.setPlatform;\nconst $8978e92beab2e837$var$legacyRegisterWebPlugin = (cap, webPlugin)=>{\n var _a;\n const config = webPlugin.config;\n const Plugins = cap.Plugins;\n if (!(config === null || config === void 0 ? void 0 : config.name)) // TODO: add link to upgrade guide\n throw new Error(`Capacitor WebPlugin is using the deprecated \"registerWebPlugin()\" function, but without the config. Please use \"registerPlugin()\" instead to register this web plugin.\"`);\n // TODO: add link to upgrade guide\n console.warn(`Capacitor plugin \"${config.name}\" is using the deprecated \"registerWebPlugin()\" function`);\n if (!Plugins[config.name] || ((_a = config === null || config === void 0 ? void 0 : config.platforms) === null || _a === void 0 ? void 0 : _a.includes(cap.getPlatform()))) // Add the web plugin into the plugins registry if there already isn't\n // an existing one. If it doesn't already exist, that means\n // there's no existing native implementation for it.\n // - OR -\n // If we already have a plugin registered (meaning it was defined in the native layer),\n // then we should only overwrite it if the corresponding web plugin activates on\n // a certain platform. For example: Geolocation uses the WebPlugin on Android but not iOS\n Plugins[config.name] = webPlugin;\n};\nvar $8978e92beab2e837$export$f8972ddbe8205c4b;\n(function(ExceptionCode) {\n /**\n * API is not implemented.\n *\n * This usually means the API can't be used because it is not implemented for\n * the current platform.\n */ ExceptionCode[\"Unimplemented\"] = \"UNIMPLEMENTED\";\n /**\n * API is not available.\n *\n * This means the API can't be used right now because:\n * - it is currently missing a prerequisite, such as network connectivity\n * - it requires a particular platform or browser version\n */ ExceptionCode[\"Unavailable\"] = \"UNAVAILABLE\";\n})($8978e92beab2e837$export$f8972ddbe8205c4b || ($8978e92beab2e837$export$f8972ddbe8205c4b = {}));\nclass $8978e92beab2e837$export$12e569be5e83b9f4 extends Error {\n constructor(message, code, data){\n super(message);\n this.message = message;\n this.code = code;\n this.data = data;\n }\n}\nconst $8978e92beab2e837$var$getPlatformId = (win)=>{\n var _a, _b;\n if (win === null || win === void 0 ? void 0 : win.androidBridge) return \"android\";\n else if ((_b = (_a = win === null || win === void 0 ? void 0 : win.webkit) === null || _a === void 0 ? void 0 : _a.messageHandlers) === null || _b === void 0 ? void 0 : _b.bridge) return \"ios\";\n else return \"web\";\n};\nconst $8978e92beab2e837$var$createCapacitor = (win)=>{\n var _a, _b, _c, _d, _e;\n const capCustomPlatform = win.CapacitorCustomPlatform || null;\n const cap = win.Capacitor || {};\n const Plugins = cap.Plugins = cap.Plugins || {};\n /**\n * @deprecated Use `capCustomPlatform` instead, default functions like registerPlugin will function with the new object.\n */ const capPlatforms = win.CapacitorPlatforms;\n const defaultGetPlatform = ()=>{\n return capCustomPlatform !== null ? capCustomPlatform.name : $8978e92beab2e837$var$getPlatformId(win);\n };\n const getPlatform = ((_a = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _a === void 0 ? void 0 : _a.getPlatform) || defaultGetPlatform;\n const defaultIsNativePlatform = ()=>getPlatform() !== \"web\";\n const isNativePlatform = ((_b = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _b === void 0 ? void 0 : _b.isNativePlatform) || defaultIsNativePlatform;\n const defaultIsPluginAvailable = (pluginName)=>{\n const plugin = registeredPlugins.get(pluginName);\n if (plugin === null || plugin === void 0 ? void 0 : plugin.platforms.has(getPlatform())) // JS implementation available for the current platform.\n return true;\n if (getPluginHeader(pluginName)) // Native implementation available.\n return true;\n return false;\n };\n const isPluginAvailable = ((_c = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _c === void 0 ? void 0 : _c.isPluginAvailable) || defaultIsPluginAvailable;\n const defaultGetPluginHeader = (pluginName)=>{\n var _a;\n return (_a = cap.PluginHeaders) === null || _a === void 0 ? void 0 : _a.find((h)=>h.name === pluginName);\n };\n const getPluginHeader = ((_d = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _d === void 0 ? void 0 : _d.getPluginHeader) || defaultGetPluginHeader;\n const handleError = (err)=>win.console.error(err);\n const pluginMethodNoop = (_target, prop, pluginName)=>{\n return Promise.reject(`${pluginName} does not have an implementation of \"${prop}\".`);\n };\n const registeredPlugins = new Map();\n const defaultRegisterPlugin = (pluginName, jsImplementations = {})=>{\n const registeredPlugin = registeredPlugins.get(pluginName);\n if (registeredPlugin) {\n console.warn(`Capacitor plugin \"${pluginName}\" already registered. Cannot register plugins twice.`);\n return registeredPlugin.proxy;\n }\n const platform = getPlatform();\n const pluginHeader = getPluginHeader(pluginName);\n let jsImplementation;\n const loadPluginImplementation = async ()=>{\n if (!jsImplementation && platform in jsImplementations) jsImplementation = typeof jsImplementations[platform] === \"function\" ? jsImplementation = await jsImplementations[platform]() : jsImplementation = jsImplementations[platform];\n else if (capCustomPlatform !== null && !jsImplementation && \"web\" in jsImplementations) jsImplementation = typeof jsImplementations[\"web\"] === \"function\" ? jsImplementation = await jsImplementations[\"web\"]() : jsImplementation = jsImplementations[\"web\"];\n return jsImplementation;\n };\n const createPluginMethod = (impl, prop)=>{\n var _a, _b;\n if (pluginHeader) {\n const methodHeader = pluginHeader === null || pluginHeader === void 0 ? void 0 : pluginHeader.methods.find((m)=>prop === m.name);\n if (methodHeader) {\n if (methodHeader.rtype === \"promise\") return (options)=>cap.nativePromise(pluginName, prop.toString(), options);\n else return (options, callback)=>cap.nativeCallback(pluginName, prop.toString(), options, callback);\n } else if (impl) return (_a = impl[prop]) === null || _a === void 0 ? void 0 : _a.bind(impl);\n } else if (impl) return (_b = impl[prop]) === null || _b === void 0 ? void 0 : _b.bind(impl);\n else throw new $8978e92beab2e837$export$12e569be5e83b9f4(`\"${pluginName}\" plugin is not implemented on ${platform}`, $8978e92beab2e837$export$f8972ddbe8205c4b.Unimplemented);\n };\n const createPluginMethodWrapper = (prop)=>{\n let remove;\n const wrapper = (...args)=>{\n const p = loadPluginImplementation().then((impl)=>{\n const fn = createPluginMethod(impl, prop);\n if (fn) {\n const p = fn(...args);\n remove = p === null || p === void 0 ? void 0 : p.remove;\n return p;\n } else throw new $8978e92beab2e837$export$12e569be5e83b9f4(`\"${pluginName}.${prop}()\" is not implemented on ${platform}`, $8978e92beab2e837$export$f8972ddbe8205c4b.Unimplemented);\n });\n if (prop === \"addListener\") p.remove = async ()=>remove();\n return p;\n };\n // Some flair ✨\n wrapper.toString = ()=>`${prop.toString()}() { [capacitor code] }`;\n Object.defineProperty(wrapper, \"name\", {\n value: prop,\n writable: false,\n configurable: false\n });\n return wrapper;\n };\n const addListener = createPluginMethodWrapper(\"addListener\");\n const removeListener = createPluginMethodWrapper(\"removeListener\");\n const addListenerNative = (eventName, callback)=>{\n const call = addListener({\n eventName: eventName\n }, callback);\n const remove = async ()=>{\n const callbackId = await call;\n removeListener({\n eventName: eventName,\n callbackId: callbackId\n }, callback);\n };\n const p = new Promise((resolve)=>call.then(()=>resolve({\n remove: remove\n })));\n p.remove = async ()=>{\n console.warn(`Using addListener() without 'await' is deprecated.`);\n await remove();\n };\n return p;\n };\n const proxy = new Proxy({}, {\n get (_, prop) {\n switch(prop){\n // https://github.com/facebook/react/issues/20030\n case \"$$typeof\":\n return undefined;\n case \"toJSON\":\n return ()=>({});\n case \"addListener\":\n return pluginHeader ? addListenerNative : addListener;\n case \"removeListener\":\n return removeListener;\n default:\n return createPluginMethodWrapper(prop);\n }\n }\n });\n Plugins[pluginName] = proxy;\n registeredPlugins.set(pluginName, {\n name: pluginName,\n proxy: proxy,\n platforms: new Set([\n ...Object.keys(jsImplementations),\n ...pluginHeader ? [\n platform\n ] : []\n ])\n });\n return proxy;\n };\n const registerPlugin = ((_e = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _e === void 0 ? void 0 : _e.registerPlugin) || defaultRegisterPlugin;\n // Add in convertFileSrc for web, it will already be available in native context\n if (!cap.convertFileSrc) cap.convertFileSrc = (filePath)=>filePath;\n cap.getPlatform = getPlatform;\n cap.handleError = handleError;\n cap.isNativePlatform = isNativePlatform;\n cap.isPluginAvailable = isPluginAvailable;\n cap.pluginMethodNoop = pluginMethodNoop;\n cap.registerPlugin = registerPlugin;\n cap.Exception = $8978e92beab2e837$export$12e569be5e83b9f4;\n cap.DEBUG = !!cap.DEBUG;\n cap.isLoggingEnabled = !!cap.isLoggingEnabled;\n // Deprecated props\n cap.platform = cap.getPlatform();\n cap.isNative = cap.isNativePlatform();\n return cap;\n};\nconst $8978e92beab2e837$var$initCapacitorGlobal = (win)=>win.Capacitor = $8978e92beab2e837$var$createCapacitor(win);\nconst $8978e92beab2e837$export$ab659bfd88afdf29 = /*#__PURE__*/ $8978e92beab2e837$var$initCapacitorGlobal(typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof $parcel$global !== \"undefined\" ? $parcel$global : {});\nconst $8978e92beab2e837$export$7612db19fb8beb1e = $8978e92beab2e837$export$ab659bfd88afdf29.registerPlugin;\n/**\n * @deprecated Provided for backwards compatibility for Capacitor v2 plugins.\n * Capacitor v3 plugins should import the plugin directly. This \"Plugins\"\n * export is deprecated in v3, and will be removed in v4.\n */ const $8978e92beab2e837$export$c203ca0aafe4939a = $8978e92beab2e837$export$ab659bfd88afdf29.Plugins;\n/**\n * Provided for backwards compatibility. Use the registerPlugin() API\n * instead, and provide the web plugin as the \"web\" implmenetation.\n * For example\n *\n * export const Example = registerPlugin('Example', {\n * web: () => import('./web').then(m => new m.Example())\n * })\n *\n * @deprecated Deprecated in v3, will be removed from v4.\n */ const $8978e92beab2e837$export$5d594728f25bddf4 = (plugin)=>$8978e92beab2e837$var$legacyRegisterWebPlugin($8978e92beab2e837$export$ab659bfd88afdf29, plugin);\n/**\n * Base class web plugins should extend.\n */ class $8978e92beab2e837$export$7c58ec35c4c5ea54 {\n constructor(config){\n this.listeners = {};\n this.windowListeners = {};\n if (config) {\n // TODO: add link to upgrade guide\n console.warn(`Capacitor WebPlugin \"${config.name}\" config object was deprecated in v3 and will be removed in v4.`);\n this.config = config;\n }\n }\n addListener(eventName, listenerFunc) {\n const listeners = this.listeners[eventName];\n if (!listeners) this.listeners[eventName] = [];\n this.listeners[eventName].push(listenerFunc);\n // If we haven't added a window listener for this event and it requires one,\n // go ahead and add it\n const windowListener = this.windowListeners[eventName];\n if (windowListener && !windowListener.registered) this.addWindowListener(windowListener);\n const remove = async ()=>this.removeListener(eventName, listenerFunc);\n const p = Promise.resolve({\n remove: remove\n });\n Object.defineProperty(p, \"remove\", {\n value: async ()=>{\n console.warn(`Using addListener() without 'await' is deprecated.`);\n await remove();\n }\n });\n return p;\n }\n async removeAllListeners() {\n this.listeners = {};\n for(const listener in this.windowListeners)this.removeWindowListener(this.windowListeners[listener]);\n this.windowListeners = {};\n }\n notifyListeners(eventName, data) {\n const listeners = this.listeners[eventName];\n if (listeners) listeners.forEach((listener)=>listener(data));\n }\n hasListeners(eventName) {\n return !!this.listeners[eventName].length;\n }\n registerWindowListener(windowEventName, pluginEventName) {\n this.windowListeners[pluginEventName] = {\n registered: false,\n windowEventName: windowEventName,\n pluginEventName: pluginEventName,\n handler: (event)=>{\n this.notifyListeners(pluginEventName, event);\n }\n };\n }\n unimplemented(msg = \"not implemented\") {\n return new $8978e92beab2e837$export$ab659bfd88afdf29.Exception(msg, $8978e92beab2e837$export$f8972ddbe8205c4b.Unimplemented);\n }\n unavailable(msg = \"not available\") {\n return new $8978e92beab2e837$export$ab659bfd88afdf29.Exception(msg, $8978e92beab2e837$export$f8972ddbe8205c4b.Unavailable);\n }\n async removeListener(eventName, listenerFunc) {\n const listeners = this.listeners[eventName];\n if (!listeners) return;\n const index = listeners.indexOf(listenerFunc);\n this.listeners[eventName].splice(index, 1);\n // If there are no more listeners for this type of event,\n // remove the window listener\n if (!this.listeners[eventName].length) this.removeWindowListener(this.windowListeners[eventName]);\n }\n addWindowListener(handle) {\n window.addEventListener(handle.windowEventName, handle.handler);\n handle.registered = true;\n }\n removeWindowListener(handle) {\n if (!handle) return;\n window.removeEventListener(handle.windowEventName, handle.handler);\n handle.registered = false;\n }\n}\nconst $8978e92beab2e837$export$9ac0cb180b81cd43 = /*#__PURE__*/ $8978e92beab2e837$export$7612db19fb8beb1e(\"WebView\");\n/******** END WEB VIEW PLUGIN ********/ /******** COOKIES PLUGIN ********/ /**\n * Safely web encode a string value (inspired by js-cookie)\n * @param str The string value to encode\n */ const $8978e92beab2e837$var$encode = (str)=>encodeURIComponent(str).replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent).replace(/[()]/g, escape);\n/**\n * Safely web decode a string value (inspired by js-cookie)\n * @param str The string value to decode\n */ const $8978e92beab2e837$var$decode = (str)=>str.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent);\nclass $8978e92beab2e837$var$CapacitorCookiesPluginWeb extends $8978e92beab2e837$export$7c58ec35c4c5ea54 {\n async getCookies() {\n const cookies = document.cookie;\n const cookieMap = {};\n cookies.split(\";\").forEach((cookie)=>{\n if (cookie.length <= 0) return;\n // Replace first \"=\" with CAP_COOKIE to prevent splitting on additional \"=\"\n let [key, value] = cookie.replace(/=/, \"CAP_COOKIE\").split(\"CAP_COOKIE\");\n key = $8978e92beab2e837$var$decode(key).trim();\n value = $8978e92beab2e837$var$decode(value).trim();\n cookieMap[key] = value;\n });\n return cookieMap;\n }\n async setCookie(options) {\n try {\n // Safely Encoded Key/Value\n const encodedKey = $8978e92beab2e837$var$encode(options.key);\n const encodedValue = $8978e92beab2e837$var$encode(options.value);\n // Clean & sanitize options\n const expires = `; expires=${(options.expires || \"\").replace(\"expires=\", \"\")}`; // Default is \"; expires=\"\n const path = (options.path || \"/\").replace(\"path=\", \"\"); // Default is \"path=/\"\n const domain = options.url != null && options.url.length > 0 ? `domain=${options.url}` : \"\";\n document.cookie = `${encodedKey}=${encodedValue || \"\"}${expires}; path=${path}; ${domain};`;\n } catch (error) {\n return Promise.reject(error);\n }\n }\n async deleteCookie(options) {\n try {\n document.cookie = `${options.key}=; Max-Age=0`;\n } catch (error) {\n return Promise.reject(error);\n }\n }\n async clearCookies() {\n try {\n const cookies = document.cookie.split(\";\") || [];\n for (const cookie of cookies)document.cookie = cookie.replace(/^ +/, \"\").replace(/=.*/, `=;expires=${new Date().toUTCString()};path=/`);\n } catch (error) {\n return Promise.reject(error);\n }\n }\n async clearAllCookies() {\n try {\n await this.clearCookies();\n } catch (error) {\n return Promise.reject(error);\n }\n }\n}\nconst $8978e92beab2e837$export$702e5c97f7e4f579 = $8978e92beab2e837$export$7612db19fb8beb1e(\"CapacitorCookies\", {\n web: ()=>new $8978e92beab2e837$var$CapacitorCookiesPluginWeb()\n});\n// UTILITY FUNCTIONS\n/**\n * Read in a Blob value and return it as a base64 string\n * @param blob The blob value to convert to a base64 string\n */ const $8978e92beab2e837$var$readBlobAsBase64 = async (blob)=>new Promise((resolve, reject)=>{\n const reader = new FileReader();\n reader.onload = ()=>{\n const base64String = reader.result;\n // remove prefix \"data:application/pdf;base64,\"\n resolve(base64String.indexOf(\",\") >= 0 ? base64String.split(\",\")[1] : base64String);\n };\n reader.onerror = (error)=>reject(error);\n reader.readAsDataURL(blob);\n });\n/**\n * Normalize an HttpHeaders map by lowercasing all of the values\n * @param headers The HttpHeaders object to normalize\n */ const $8978e92beab2e837$var$normalizeHttpHeaders = (headers = {})=>{\n const originalKeys = Object.keys(headers);\n const loweredKeys = Object.keys(headers).map((k)=>k.toLocaleLowerCase());\n const normalized = loweredKeys.reduce((acc, key, index)=>{\n acc[key] = headers[originalKeys[index]];\n return acc;\n }, {});\n return normalized;\n};\n/**\n * Builds a string of url parameters that\n * @param params A map of url parameters\n * @param shouldEncode true if you should encodeURIComponent() the values (true by default)\n */ const $8978e92beab2e837$var$buildUrlParams = (params, shouldEncode = true)=>{\n if (!params) return null;\n const output = Object.entries(params).reduce((accumulator, entry)=>{\n const [key, value] = entry;\n let encodedValue;\n let item;\n if (Array.isArray(value)) {\n item = \"\";\n value.forEach((str)=>{\n encodedValue = shouldEncode ? encodeURIComponent(str) : str;\n item += `${key}=${encodedValue}&`;\n });\n // last character will always be \"&\" so slice it off\n item.slice(0, -1);\n } else {\n encodedValue = shouldEncode ? encodeURIComponent(value) : value;\n item = `${key}=${encodedValue}`;\n }\n return `${accumulator}&${item}`;\n }, \"\");\n // Remove initial \"&\" from the reduce\n return output.substr(1);\n};\n/**\n * Build the RequestInit object based on the options passed into the initial request\n * @param options The Http plugin options\n * @param extra Any extra RequestInit values\n */ const $8978e92beab2e837$export$bd53726ce92e1297 = (options, extra = {})=>{\n const output = Object.assign({\n method: options.method || \"GET\",\n headers: options.headers\n }, extra);\n // Get the content-type\n const headers = $8978e92beab2e837$var$normalizeHttpHeaders(options.headers);\n const type = headers[\"content-type\"] || \"\";\n // If body is already a string, then pass it through as-is.\n if (typeof options.data === \"string\") output.body = options.data;\n else if (type.includes(\"application/x-www-form-urlencoded\")) {\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(options.data || {}))params.set(key, value);\n output.body = params.toString();\n } else if (type.includes(\"multipart/form-data\")) {\n const form = new FormData();\n if (options.data instanceof FormData) options.data.forEach((value, key)=>{\n form.append(key, value);\n });\n else for (const key of Object.keys(options.data))form.append(key, options.data[key]);\n output.body = form;\n const headers = new Headers(output.headers);\n headers.delete(\"content-type\"); // content-type will be set by `window.fetch` to includy boundary\n output.headers = headers;\n } else if (type.includes(\"application/json\") || typeof options.data === \"object\") output.body = JSON.stringify(options.data);\n return output;\n};\n// WEB IMPLEMENTATION\nclass $8978e92beab2e837$var$CapacitorHttpPluginWeb extends $8978e92beab2e837$export$7c58ec35c4c5ea54 {\n /**\n * Perform an Http request given a set of options\n * @param options Options to build the HTTP request\n */ async request(options) {\n const requestInit = $8978e92beab2e837$export$bd53726ce92e1297(options, options.webFetchExtra);\n const urlParams = $8978e92beab2e837$var$buildUrlParams(options.params, options.shouldEncodeUrlParams);\n const url = urlParams ? `${options.url}?${urlParams}` : options.url;\n const response = await fetch(url, requestInit);\n const contentType = response.headers.get(\"content-type\") || \"\";\n // Default to 'text' responseType so no parsing happens\n let { responseType: responseType = \"text\" } = response.ok ? options : {};\n // If the response content-type is json, force the response to be json\n if (contentType.includes(\"application/json\")) responseType = \"json\";\n let data;\n let blob;\n switch(responseType){\n case \"arraybuffer\":\n case \"blob\":\n blob = await response.blob();\n data = await $8978e92beab2e837$var$readBlobAsBase64(blob);\n break;\n case \"json\":\n data = await response.json();\n break;\n case \"document\":\n case \"text\":\n default:\n data = await response.text();\n }\n // Convert fetch headers to Capacitor HttpHeaders\n const headers = {};\n response.headers.forEach((value, key)=>{\n headers[key] = value;\n });\n return {\n data: data,\n headers: headers,\n status: response.status,\n url: response.url\n };\n }\n /**\n * Perform an Http GET request given a set of options\n * @param options Options to build the HTTP request\n */ async get(options) {\n return this.request(Object.assign(Object.assign({}, options), {\n method: \"GET\"\n }));\n }\n /**\n * Perform an Http POST request given a set of options\n * @param options Options to build the HTTP request\n */ async post(options) {\n return this.request(Object.assign(Object.assign({}, options), {\n method: \"POST\"\n }));\n }\n /**\n * Perform an Http PUT request given a set of options\n * @param options Options to build the HTTP request\n */ async put(options) {\n return this.request(Object.assign(Object.assign({}, options), {\n method: \"PUT\"\n }));\n }\n /**\n * Perform an Http PATCH request given a set of options\n * @param options Options to build the HTTP request\n */ async patch(options) {\n return this.request(Object.assign(Object.assign({}, options), {\n method: \"PATCH\"\n }));\n }\n /**\n * Perform an Http DELETE request given a set of options\n * @param options Options to build the HTTP request\n */ async delete(options) {\n return this.request(Object.assign(Object.assign({}, options), {\n method: \"DELETE\"\n }));\n }\n}\nconst $8978e92beab2e837$export$380134cb65b51303 = $8978e92beab2e837$export$7612db19fb8beb1e(\"CapacitorHttp\", {\n web: ()=>new $8978e92beab2e837$var$CapacitorHttpPluginWeb()\n});\n\n});\n\nparcelRequire.register(\"ccrFy\", function(module, exports) {\n\n\n\nmodule.exports = (parcelRequire(\"dNLwc\"))((parcelRequire(\"hIarR\")).getBundleURL(\"jWRdZ\") + (parcelRequire(\"kI8SP\")).resolve(\"ekHe4\")).then(()=>parcelRequire(\"55omy\"));\n\n});\nparcelRequire.register(\"dNLwc\", function(module, exports) {\n\"use strict\";\n\nvar $7lV8K = parcelRequire(\"7lV8K\");\nmodule.exports = $7lV8K(function(bundle) {\n return new Promise(function(resolve, reject) {\n // Don't insert the same script twice (e.g. if it was already in the HTML)\n var existingScripts = document.getElementsByTagName(\"script\");\n if ([].concat(existingScripts).some(function isCurrentBundle(script) {\n return script.src === bundle;\n })) {\n resolve();\n return;\n }\n var preloadLink = document.createElement(\"link\");\n preloadLink.href = bundle;\n preloadLink.rel = \"preload\";\n preloadLink.as = \"script\";\n document.head.appendChild(preloadLink);\n var script = document.createElement(\"script\");\n script.async = true;\n script.type = \"text/javascript\";\n script.src = bundle;\n script.onerror = function(e) {\n var error = new TypeError(\"Failed to fetch dynamically imported module: \".concat(bundle, \". Error: \").concat(e.message));\n script.onerror = script.onload = null;\n script.remove();\n reject(error);\n };\n script.onload = function() {\n script.onerror = script.onload = null;\n resolve();\n };\n document.getElementsByTagName(\"head\")[0].appendChild(script);\n });\n});\n\n});\nparcelRequire.register(\"7lV8K\", function(module, exports) {\n\"use strict\";\nvar $55a6d16921f8ab25$var$cachedBundles = {};\nvar $55a6d16921f8ab25$var$cachedPreloads = {};\nvar $55a6d16921f8ab25$var$cachedPrefetches = {};\nfunction $55a6d16921f8ab25$var$getCache(type) {\n switch(type){\n case \"preload\":\n return $55a6d16921f8ab25$var$cachedPreloads;\n case \"prefetch\":\n return $55a6d16921f8ab25$var$cachedPrefetches;\n default:\n return $55a6d16921f8ab25$var$cachedBundles;\n }\n}\nmodule.exports = function(loader, type) {\n return function(bundle) {\n var cache = $55a6d16921f8ab25$var$getCache(type);\n if (cache[bundle]) return cache[bundle];\n return cache[bundle] = loader.apply(null, arguments).catch(function(e) {\n delete cache[bundle];\n throw e;\n });\n };\n};\n\n});\n\n\nparcelRequire.register(\"hIarR\", function(module, exports) {\n\n$parcel$export(module.exports, \"getBundleURL\", () => $ce4ea6902f7a0721$export$bdfd709ae4826697, (v) => $ce4ea6902f7a0721$export$bdfd709ae4826697 = v);\nvar $ce4ea6902f7a0721$export$bdfd709ae4826697;\nvar $ce4ea6902f7a0721$export$c9e73fbda7da57b6;\nvar $ce4ea6902f7a0721$export$5a759dc7a1cfb72a;\n\"use strict\";\nvar $ce4ea6902f7a0721$var$bundleURL = {};\nfunction $ce4ea6902f7a0721$var$getBundleURLCached(id) {\n var value = $ce4ea6902f7a0721$var$bundleURL[id];\n if (!value) {\n value = $ce4ea6902f7a0721$var$getBundleURL();\n $ce4ea6902f7a0721$var$bundleURL[id] = value;\n }\n return value;\n}\nfunction $ce4ea6902f7a0721$var$getBundleURL() {\n try {\n throw new Error();\n } catch (err) {\n var matches = (\"\" + err.stack).match(/(https?|file|ftp|(chrome|moz|safari-web)-extension):\\/\\/[^)\\n]+/g);\n if (matches) // The first two stack frames will be this function and getBundleURLCached.\n // Use the 3rd one, which will be a runtime in the original bundle.\n return $ce4ea6902f7a0721$var$getBaseURL(matches[2]);\n }\n return \"/\";\n}\nfunction $ce4ea6902f7a0721$var$getBaseURL(url) {\n return (\"\" + url).replace(/^((?:https?|file|ftp|(chrome|moz|safari-web)-extension):\\/\\/.+)\\/[^/]+$/, \"$1\") + \"/\";\n}\n// TODO: Replace uses with `new URL(url).origin` when ie11 is no longer supported.\nfunction $ce4ea6902f7a0721$var$getOrigin(url) {\n var matches = (\"\" + url).match(/(https?|file|ftp|(chrome|moz|safari-web)-extension):\\/\\/[^/]+/);\n if (!matches) throw new Error(\"Origin not found\");\n return matches[0];\n}\n$ce4ea6902f7a0721$export$bdfd709ae4826697 = $ce4ea6902f7a0721$var$getBundleURLCached;\n$ce4ea6902f7a0721$export$c9e73fbda7da57b6 = $ce4ea6902f7a0721$var$getBaseURL;\n$ce4ea6902f7a0721$export$5a759dc7a1cfb72a = $ce4ea6902f7a0721$var$getOrigin;\n\n});\n\n\nvar $571f7784d6db01f5$exports = {};\n\n(parcelRequire(\"kI8SP\")).register(JSON.parse('{\"jWRdZ\":\"app.js\",\"ekHe4\":\"web.15591f28.js\"}'));\n\n/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/.\n */ \nvar $bNLeC = parcelRequire(\"bNLeC\");\n/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/.\n */ \n\n\nconst $edda64e79c13c397$export$3dd47233f557671d = (0, $bNLeC.registerPlugin)(\"CapacitorUpdater\", {\n web: ()=>(parcelRequire(\"ccrFy\")).then((m)=>new m.CapacitorUpdaterWeb())\n});\n\n\n(0, $edda64e79c13c397$export$3dd47233f557671d).notifyAppReady();\nconsole.log(\"CapacitorUpdater Loaded\");\n\n})();\n//# sourceMappingURL=app.js.map\n","\"use strict\";\n\nvar mapping = {};\nfunction register(pairs) {\n var keys = Object.keys(pairs);\n for (var i = 0; i < keys.length; i++) {\n mapping[keys[i]] = pairs[keys[i]];\n }\n}\nfunction resolve(id) {\n var resolved = mapping[id];\n if (resolved == null) {\n throw new Error('Could not resolve bundle with id ' + id);\n }\n return resolved;\n}\nmodule.exports.register = register;\nmodule.exports.resolve = resolve;","/*! Capacitor: https://capacitorjs.com/ - MIT License */\nconst createCapacitorPlatforms = (win) => {\n const defaultPlatformMap = new Map();\n defaultPlatformMap.set('web', { name: 'web' });\n const capPlatforms = win.CapacitorPlatforms || {\n currentPlatform: { name: 'web' },\n platforms: defaultPlatformMap,\n };\n const addPlatform = (name, platform) => {\n capPlatforms.platforms.set(name, platform);\n };\n const setPlatform = (name) => {\n if (capPlatforms.platforms.has(name)) {\n capPlatforms.currentPlatform = capPlatforms.platforms.get(name);\n }\n };\n capPlatforms.addPlatform = addPlatform;\n capPlatforms.setPlatform = setPlatform;\n return capPlatforms;\n};\nconst initPlatforms = (win) => (win.CapacitorPlatforms = createCapacitorPlatforms(win));\n/**\n * @deprecated Set `CapacitorCustomPlatform` on the window object prior to runtime executing in the web app instead\n */\nconst CapacitorPlatforms = /*#__PURE__*/ initPlatforms((typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {}));\n/**\n * @deprecated Set `CapacitorCustomPlatform` on the window object prior to runtime executing in the web app instead\n */\nconst addPlatform = CapacitorPlatforms.addPlatform;\n/**\n * @deprecated Set `CapacitorCustomPlatform` on the window object prior to runtime executing in the web app instead\n */\nconst setPlatform = CapacitorPlatforms.setPlatform;\n\nconst legacyRegisterWebPlugin = (cap, webPlugin) => {\n var _a;\n const config = webPlugin.config;\n const Plugins = cap.Plugins;\n if (!(config === null || config === void 0 ? void 0 : config.name)) {\n // TODO: add link to upgrade guide\n throw new Error(`Capacitor WebPlugin is using the deprecated \"registerWebPlugin()\" function, but without the config. Please use \"registerPlugin()\" instead to register this web plugin.\"`);\n }\n // TODO: add link to upgrade guide\n console.warn(`Capacitor plugin \"${config.name}\" is using the deprecated \"registerWebPlugin()\" function`);\n if (!Plugins[config.name] || ((_a = config === null || config === void 0 ? void 0 : config.platforms) === null || _a === void 0 ? void 0 : _a.includes(cap.getPlatform()))) {\n // Add the web plugin into the plugins registry if there already isn't\n // an existing one. If it doesn't already exist, that means\n // there's no existing native implementation for it.\n // - OR -\n // If we already have a plugin registered (meaning it was defined in the native layer),\n // then we should only overwrite it if the corresponding web plugin activates on\n // a certain platform. For example: Geolocation uses the WebPlugin on Android but not iOS\n Plugins[config.name] = webPlugin;\n }\n};\n\nvar ExceptionCode;\n(function (ExceptionCode) {\n /**\n * API is not implemented.\n *\n * This usually means the API can't be used because it is not implemented for\n * the current platform.\n */\n ExceptionCode[\"Unimplemented\"] = \"UNIMPLEMENTED\";\n /**\n * API is not available.\n *\n * This means the API can't be used right now because:\n * - it is currently missing a prerequisite, such as network connectivity\n * - it requires a particular platform or browser version\n */\n ExceptionCode[\"Unavailable\"] = \"UNAVAILABLE\";\n})(ExceptionCode || (ExceptionCode = {}));\nclass CapacitorException extends Error {\n constructor(message, code, data) {\n super(message);\n this.message = message;\n this.code = code;\n this.data = data;\n }\n}\nconst getPlatformId = (win) => {\n var _a, _b;\n if (win === null || win === void 0 ? void 0 : win.androidBridge) {\n return 'android';\n }\n else if ((_b = (_a = win === null || win === void 0 ? void 0 : win.webkit) === null || _a === void 0 ? void 0 : _a.messageHandlers) === null || _b === void 0 ? void 0 : _b.bridge) {\n return 'ios';\n }\n else {\n return 'web';\n }\n};\n\nconst createCapacitor = (win) => {\n var _a, _b, _c, _d, _e;\n const capCustomPlatform = win.CapacitorCustomPlatform || null;\n const cap = win.Capacitor || {};\n const Plugins = (cap.Plugins = cap.Plugins || {});\n /**\n * @deprecated Use `capCustomPlatform` instead, default functions like registerPlugin will function with the new object.\n */\n const capPlatforms = win.CapacitorPlatforms;\n const defaultGetPlatform = () => {\n return capCustomPlatform !== null\n ? capCustomPlatform.name\n : getPlatformId(win);\n };\n const getPlatform = ((_a = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _a === void 0 ? void 0 : _a.getPlatform) || defaultGetPlatform;\n const defaultIsNativePlatform = () => getPlatform() !== 'web';\n const isNativePlatform = ((_b = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _b === void 0 ? void 0 : _b.isNativePlatform) || defaultIsNativePlatform;\n const defaultIsPluginAvailable = (pluginName) => {\n const plugin = registeredPlugins.get(pluginName);\n if (plugin === null || plugin === void 0 ? void 0 : plugin.platforms.has(getPlatform())) {\n // JS implementation available for the current platform.\n return true;\n }\n if (getPluginHeader(pluginName)) {\n // Native implementation available.\n return true;\n }\n return false;\n };\n const isPluginAvailable = ((_c = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _c === void 0 ? void 0 : _c.isPluginAvailable) ||\n defaultIsPluginAvailable;\n const defaultGetPluginHeader = (pluginName) => { var _a; return (_a = cap.PluginHeaders) === null || _a === void 0 ? void 0 : _a.find(h => h.name === pluginName); };\n const getPluginHeader = ((_d = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _d === void 0 ? void 0 : _d.getPluginHeader) || defaultGetPluginHeader;\n const handleError = (err) => win.console.error(err);\n const pluginMethodNoop = (_target, prop, pluginName) => {\n return Promise.reject(`${pluginName} does not have an implementation of \"${prop}\".`);\n };\n const registeredPlugins = new Map();\n const defaultRegisterPlugin = (pluginName, jsImplementations = {}) => {\n const registeredPlugin = registeredPlugins.get(pluginName);\n if (registeredPlugin) {\n console.warn(`Capacitor plugin \"${pluginName}\" already registered. Cannot register plugins twice.`);\n return registeredPlugin.proxy;\n }\n const platform = getPlatform();\n const pluginHeader = getPluginHeader(pluginName);\n let jsImplementation;\n const loadPluginImplementation = async () => {\n if (!jsImplementation && platform in jsImplementations) {\n jsImplementation =\n typeof jsImplementations[platform] === 'function'\n ? (jsImplementation = await jsImplementations[platform]())\n : (jsImplementation = jsImplementations[platform]);\n }\n else if (capCustomPlatform !== null &&\n !jsImplementation &&\n 'web' in jsImplementations) {\n jsImplementation =\n typeof jsImplementations['web'] === 'function'\n ? (jsImplementation = await jsImplementations['web']())\n : (jsImplementation = jsImplementations['web']);\n }\n return jsImplementation;\n };\n const createPluginMethod = (impl, prop) => {\n var _a, _b;\n if (pluginHeader) {\n const methodHeader = pluginHeader === null || pluginHeader === void 0 ? void 0 : pluginHeader.methods.find(m => prop === m.name);\n if (methodHeader) {\n if (methodHeader.rtype === 'promise') {\n return (options) => cap.nativePromise(pluginName, prop.toString(), options);\n }\n else {\n return (options, callback) => cap.nativeCallback(pluginName, prop.toString(), options, callback);\n }\n }\n else if (impl) {\n return (_a = impl[prop]) === null || _a === void 0 ? void 0 : _a.bind(impl);\n }\n }\n else if (impl) {\n return (_b = impl[prop]) === null || _b === void 0 ? void 0 : _b.bind(impl);\n }\n else {\n throw new CapacitorException(`\"${pluginName}\" plugin is not implemented on ${platform}`, ExceptionCode.Unimplemented);\n }\n };\n const createPluginMethodWrapper = (prop) => {\n let remove;\n const wrapper = (...args) => {\n const p = loadPluginImplementation().then(impl => {\n const fn = createPluginMethod(impl, prop);\n if (fn) {\n const p = fn(...args);\n remove = p === null || p === void 0 ? void 0 : p.remove;\n return p;\n }\n else {\n throw new CapacitorException(`\"${pluginName}.${prop}()\" is not implemented on ${platform}`, ExceptionCode.Unimplemented);\n }\n });\n if (prop === 'addListener') {\n p.remove = async () => remove();\n }\n return p;\n };\n // Some flair ✨\n wrapper.toString = () => `${prop.toString()}() { [capacitor code] }`;\n Object.defineProperty(wrapper, 'name', {\n value: prop,\n writable: false,\n configurable: false,\n });\n return wrapper;\n };\n const addListener = createPluginMethodWrapper('addListener');\n const removeListener = createPluginMethodWrapper('removeListener');\n const addListenerNative = (eventName, callback) => {\n const call = addListener({ eventName }, callback);\n const remove = async () => {\n const callbackId = await call;\n removeListener({\n eventName,\n callbackId,\n }, callback);\n };\n const p = new Promise(resolve => call.then(() => resolve({ remove })));\n p.remove = async () => {\n console.warn(`Using addListener() without 'await' is deprecated.`);\n await remove();\n };\n return p;\n };\n const proxy = new Proxy({}, {\n get(_, prop) {\n switch (prop) {\n // https://github.com/facebook/react/issues/20030\n case '$$typeof':\n return undefined;\n case 'toJSON':\n return () => ({});\n case 'addListener':\n return pluginHeader ? addListenerNative : addListener;\n case 'removeListener':\n return removeListener;\n default:\n return createPluginMethodWrapper(prop);\n }\n },\n });\n Plugins[pluginName] = proxy;\n registeredPlugins.set(pluginName, {\n name: pluginName,\n proxy,\n platforms: new Set([\n ...Object.keys(jsImplementations),\n ...(pluginHeader ? [platform] : []),\n ]),\n });\n return proxy;\n };\n const registerPlugin = ((_e = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _e === void 0 ? void 0 : _e.registerPlugin) || defaultRegisterPlugin;\n // Add in convertFileSrc for web, it will already be available in native context\n if (!cap.convertFileSrc) {\n cap.convertFileSrc = filePath => filePath;\n }\n cap.getPlatform = getPlatform;\n cap.handleError = handleError;\n cap.isNativePlatform = isNativePlatform;\n cap.isPluginAvailable = isPluginAvailable;\n cap.pluginMethodNoop = pluginMethodNoop;\n cap.registerPlugin = registerPlugin;\n cap.Exception = CapacitorException;\n cap.DEBUG = !!cap.DEBUG;\n cap.isLoggingEnabled = !!cap.isLoggingEnabled;\n // Deprecated props\n cap.platform = cap.getPlatform();\n cap.isNative = cap.isNativePlatform();\n return cap;\n};\nconst initCapacitorGlobal = (win) => (win.Capacitor = createCapacitor(win));\n\nconst Capacitor = /*#__PURE__*/ initCapacitorGlobal(typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {});\nconst registerPlugin = Capacitor.registerPlugin;\n/**\n * @deprecated Provided for backwards compatibility for Capacitor v2 plugins.\n * Capacitor v3 plugins should import the plugin directly. This \"Plugins\"\n * export is deprecated in v3, and will be removed in v4.\n */\nconst Plugins = Capacitor.Plugins;\n/**\n * Provided for backwards compatibility. Use the registerPlugin() API\n * instead, and provide the web plugin as the \"web\" implmenetation.\n * For example\n *\n * export const Example = registerPlugin('Example', {\n * web: () => import('./web').then(m => new m.Example())\n * })\n *\n * @deprecated Deprecated in v3, will be removed from v4.\n */\nconst registerWebPlugin = (plugin) => legacyRegisterWebPlugin(Capacitor, plugin);\n\n/**\n * Base class web plugins should extend.\n */\nclass WebPlugin {\n constructor(config) {\n this.listeners = {};\n this.windowListeners = {};\n if (config) {\n // TODO: add link to upgrade guide\n console.warn(`Capacitor WebPlugin \"${config.name}\" config object was deprecated in v3 and will be removed in v4.`);\n this.config = config;\n }\n }\n addListener(eventName, listenerFunc) {\n const listeners = this.listeners[eventName];\n if (!listeners) {\n this.listeners[eventName] = [];\n }\n this.listeners[eventName].push(listenerFunc);\n // If we haven't added a window listener for this event and it requires one,\n // go ahead and add it\n const windowListener = this.windowListeners[eventName];\n if (windowListener && !windowListener.registered) {\n this.addWindowListener(windowListener);\n }\n const remove = async () => this.removeListener(eventName, listenerFunc);\n const p = Promise.resolve({ remove });\n Object.defineProperty(p, 'remove', {\n value: async () => {\n console.warn(`Using addListener() without 'await' is deprecated.`);\n await remove();\n },\n });\n return p;\n }\n async removeAllListeners() {\n this.listeners = {};\n for (const listener in this.windowListeners) {\n this.removeWindowListener(this.windowListeners[listener]);\n }\n this.windowListeners = {};\n }\n notifyListeners(eventName, data) {\n const listeners = this.listeners[eventName];\n if (listeners) {\n listeners.forEach(listener => listener(data));\n }\n }\n hasListeners(eventName) {\n return !!this.listeners[eventName].length;\n }\n registerWindowListener(windowEventName, pluginEventName) {\n this.windowListeners[pluginEventName] = {\n registered: false,\n windowEventName,\n pluginEventName,\n handler: event => {\n this.notifyListeners(pluginEventName, event);\n },\n };\n }\n unimplemented(msg = 'not implemented') {\n return new Capacitor.Exception(msg, ExceptionCode.Unimplemented);\n }\n unavailable(msg = 'not available') {\n return new Capacitor.Exception(msg, ExceptionCode.Unavailable);\n }\n async removeListener(eventName, listenerFunc) {\n const listeners = this.listeners[eventName];\n if (!listeners) {\n return;\n }\n const index = listeners.indexOf(listenerFunc);\n this.listeners[eventName].splice(index, 1);\n // If there are no more listeners for this type of event,\n // remove the window listener\n if (!this.listeners[eventName].length) {\n this.removeWindowListener(this.windowListeners[eventName]);\n }\n }\n addWindowListener(handle) {\n window.addEventListener(handle.windowEventName, handle.handler);\n handle.registered = true;\n }\n removeWindowListener(handle) {\n if (!handle) {\n return;\n }\n window.removeEventListener(handle.windowEventName, handle.handler);\n handle.registered = false;\n }\n}\n\nconst WebView = /*#__PURE__*/ registerPlugin('WebView');\n/******** END WEB VIEW PLUGIN ********/\n/******** COOKIES PLUGIN ********/\n/**\n * Safely web encode a string value (inspired by js-cookie)\n * @param str The string value to encode\n */\nconst encode = (str) => encodeURIComponent(str)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n/**\n * Safely web decode a string value (inspired by js-cookie)\n * @param str The string value to decode\n */\nconst decode = (str) => str.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent);\nclass CapacitorCookiesPluginWeb extends WebPlugin {\n async getCookies() {\n const cookies = document.cookie;\n const cookieMap = {};\n cookies.split(';').forEach(cookie => {\n if (cookie.length <= 0)\n return;\n // Replace first \"=\" with CAP_COOKIE to prevent splitting on additional \"=\"\n let [key, value] = cookie.replace(/=/, 'CAP_COOKIE').split('CAP_COOKIE');\n key = decode(key).trim();\n value = decode(value).trim();\n cookieMap[key] = value;\n });\n return cookieMap;\n }\n async setCookie(options) {\n try {\n // Safely Encoded Key/Value\n const encodedKey = encode(options.key);\n const encodedValue = encode(options.value);\n // Clean & sanitize options\n const expires = `; expires=${(options.expires || '').replace('expires=', '')}`; // Default is \"; expires=\"\n const path = (options.path || '/').replace('path=', ''); // Default is \"path=/\"\n const domain = options.url != null && options.url.length > 0\n ? `domain=${options.url}`\n : '';\n document.cookie = `${encodedKey}=${encodedValue || ''}${expires}; path=${path}; ${domain};`;\n }\n catch (error) {\n return Promise.reject(error);\n }\n }\n async deleteCookie(options) {\n try {\n document.cookie = `${options.key}=; Max-Age=0`;\n }\n catch (error) {\n return Promise.reject(error);\n }\n }\n async clearCookies() {\n try {\n const cookies = document.cookie.split(';') || [];\n for (const cookie of cookies) {\n document.cookie = cookie\n .replace(/^ +/, '')\n .replace(/=.*/, `=;expires=${new Date().toUTCString()};path=/`);\n }\n }\n catch (error) {\n return Promise.reject(error);\n }\n }\n async clearAllCookies() {\n try {\n await this.clearCookies();\n }\n catch (error) {\n return Promise.reject(error);\n }\n }\n}\nconst CapacitorCookies = registerPlugin('CapacitorCookies', {\n web: () => new CapacitorCookiesPluginWeb(),\n});\n// UTILITY FUNCTIONS\n/**\n * Read in a Blob value and return it as a base64 string\n * @param blob The blob value to convert to a base64 string\n */\nconst readBlobAsBase64 = async (blob) => new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => {\n const base64String = reader.result;\n // remove prefix \"data:application/pdf;base64,\"\n resolve(base64String.indexOf(',') >= 0\n ? base64String.split(',')[1]\n : base64String);\n };\n reader.onerror = (error) => reject(error);\n reader.readAsDataURL(blob);\n});\n/**\n * Normalize an HttpHeaders map by lowercasing all of the values\n * @param headers The HttpHeaders object to normalize\n */\nconst normalizeHttpHeaders = (headers = {}) => {\n const originalKeys = Object.keys(headers);\n const loweredKeys = Object.keys(headers).map(k => k.toLocaleLowerCase());\n const normalized = loweredKeys.reduce((acc, key, index) => {\n acc[key] = headers[originalKeys[index]];\n return acc;\n }, {});\n return normalized;\n};\n/**\n * Builds a string of url parameters that\n * @param params A map of url parameters\n * @param shouldEncode true if you should encodeURIComponent() the values (true by default)\n */\nconst buildUrlParams = (params, shouldEncode = true) => {\n if (!params)\n return null;\n const output = Object.entries(params).reduce((accumulator, entry) => {\n const [key, value] = entry;\n let encodedValue;\n let item;\n if (Array.isArray(value)) {\n item = '';\n value.forEach(str => {\n encodedValue = shouldEncode ? encodeURIComponent(str) : str;\n item += `${key}=${encodedValue}&`;\n });\n // last character will always be \"&\" so slice it off\n item.slice(0, -1);\n }\n else {\n encodedValue = shouldEncode ? encodeURIComponent(value) : value;\n item = `${key}=${encodedValue}`;\n }\n return `${accumulator}&${item}`;\n }, '');\n // Remove initial \"&\" from the reduce\n return output.substr(1);\n};\n/**\n * Build the RequestInit object based on the options passed into the initial request\n * @param options The Http plugin options\n * @param extra Any extra RequestInit values\n */\nconst buildRequestInit = (options, extra = {}) => {\n const output = Object.assign({ method: options.method || 'GET', headers: options.headers }, extra);\n // Get the content-type\n const headers = normalizeHttpHeaders(options.headers);\n const type = headers['content-type'] || '';\n // If body is already a string, then pass it through as-is.\n if (typeof options.data === 'string') {\n output.body = options.data;\n }\n // Build request initializers based off of content-type\n else if (type.includes('application/x-www-form-urlencoded')) {\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(options.data || {})) {\n params.set(key, value);\n }\n output.body = params.toString();\n }\n else if (type.includes('multipart/form-data')) {\n const form = new FormData();\n if (options.data instanceof FormData) {\n options.data.forEach((value, key) => {\n form.append(key, value);\n });\n }\n else {\n for (const key of Object.keys(options.data)) {\n form.append(key, options.data[key]);\n }\n }\n output.body = form;\n const headers = new Headers(output.headers);\n headers.delete('content-type'); // content-type will be set by `window.fetch` to includy boundary\n output.headers = headers;\n }\n else if (type.includes('application/json') ||\n typeof options.data === 'object') {\n output.body = JSON.stringify(options.data);\n }\n return output;\n};\n// WEB IMPLEMENTATION\nclass CapacitorHttpPluginWeb extends WebPlugin {\n /**\n * Perform an Http request given a set of options\n * @param options Options to build the HTTP request\n */\n async request(options) {\n const requestInit = buildRequestInit(options, options.webFetchExtra);\n const urlParams = buildUrlParams(options.params, options.shouldEncodeUrlParams);\n const url = urlParams ? `${options.url}?${urlParams}` : options.url;\n const response = await fetch(url, requestInit);\n const contentType = response.headers.get('content-type') || '';\n // Default to 'text' responseType so no parsing happens\n let { responseType = 'text' } = response.ok ? options : {};\n // If the response content-type is json, force the response to be json\n if (contentType.includes('application/json')) {\n responseType = 'json';\n }\n let data;\n let blob;\n switch (responseType) {\n case 'arraybuffer':\n case 'blob':\n blob = await response.blob();\n data = await readBlobAsBase64(blob);\n break;\n case 'json':\n data = await response.json();\n break;\n case 'document':\n case 'text':\n default:\n data = await response.text();\n }\n // Convert fetch headers to Capacitor HttpHeaders\n const headers = {};\n response.headers.forEach((value, key) => {\n headers[key] = value;\n });\n return {\n data,\n headers,\n status: response.status,\n url: response.url,\n };\n }\n /**\n * Perform an Http GET request given a set of options\n * @param options Options to build the HTTP request\n */\n async get(options) {\n return this.request(Object.assign(Object.assign({}, options), { method: 'GET' }));\n }\n /**\n * Perform an Http POST request given a set of options\n * @param options Options to build the HTTP request\n */\n async post(options) {\n return this.request(Object.assign(Object.assign({}, options), { method: 'POST' }));\n }\n /**\n * Perform an Http PUT request given a set of options\n * @param options Options to build the HTTP request\n */\n async put(options) {\n return this.request(Object.assign(Object.assign({}, options), { method: 'PUT' }));\n }\n /**\n * Perform an Http PATCH request given a set of options\n * @param options Options to build the HTTP request\n */\n async patch(options) {\n return this.request(Object.assign(Object.assign({}, options), { method: 'PATCH' }));\n }\n /**\n * Perform an Http DELETE request given a set of options\n * @param options Options to build the HTTP request\n */\n async delete(options) {\n return this.request(Object.assign(Object.assign({}, options), { method: 'DELETE' }));\n }\n}\nconst CapacitorHttp = registerPlugin('CapacitorHttp', {\n web: () => new CapacitorHttpPluginWeb(),\n});\n/******** END HTTP PLUGIN ********/\n\nexport { Capacitor, CapacitorCookies, CapacitorException, CapacitorHttp, CapacitorPlatforms, ExceptionCode, Plugins, WebPlugin, WebView, addPlatform, buildRequestInit, registerPlugin, registerWebPlugin, setPlatform };\n//# sourceMappingURL=index.js.map\n","const createCapacitorPlatforms = (win) => {\n const defaultPlatformMap = new Map();\n defaultPlatformMap.set('web', { name: 'web' });\n const capPlatforms = win.CapacitorPlatforms || {\n currentPlatform: { name: 'web' },\n platforms: defaultPlatformMap,\n };\n const addPlatform = (name, platform) => {\n capPlatforms.platforms.set(name, platform);\n };\n const setPlatform = (name) => {\n if (capPlatforms.platforms.has(name)) {\n capPlatforms.currentPlatform = capPlatforms.platforms.get(name);\n }\n };\n capPlatforms.addPlatform = addPlatform;\n capPlatforms.setPlatform = setPlatform;\n return capPlatforms;\n};\nconst initPlatforms = (win) => (win.CapacitorPlatforms = createCapacitorPlatforms(win));\n/**\n * @deprecated Set `CapacitorCustomPlatform` on the window object prior to runtime executing in the web app instead\n */\nexport const CapacitorPlatforms = /*#__PURE__*/ initPlatforms((typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {}));\n/**\n * @deprecated Set `CapacitorCustomPlatform` on the window object prior to runtime executing in the web app instead\n */\nexport const addPlatform = CapacitorPlatforms.addPlatform;\n/**\n * @deprecated Set `CapacitorCustomPlatform` on the window object prior to runtime executing in the web app instead\n */\nexport const setPlatform = CapacitorPlatforms.setPlatform;\n//# sourceMappingURL=platforms.js.map","export const legacyRegisterWebPlugin = (cap, webPlugin) => {\n var _a;\n const config = webPlugin.config;\n const Plugins = cap.Plugins;\n if (!(config === null || config === void 0 ? void 0 : config.name)) {\n // TODO: add link to upgrade guide\n throw new Error(`Capacitor WebPlugin is using the deprecated \"registerWebPlugin()\" function, but without the config. Please use \"registerPlugin()\" instead to register this web plugin.\"`);\n }\n // TODO: add link to upgrade guide\n console.warn(`Capacitor plugin \"${config.name}\" is using the deprecated \"registerWebPlugin()\" function`);\n if (!Plugins[config.name] || ((_a = config === null || config === void 0 ? void 0 : config.platforms) === null || _a === void 0 ? void 0 : _a.includes(cap.getPlatform()))) {\n // Add the web plugin into the plugins registry if there already isn't\n // an existing one. If it doesn't already exist, that means\n // there's no existing native implementation for it.\n // - OR -\n // If we already have a plugin registered (meaning it was defined in the native layer),\n // then we should only overwrite it if the corresponding web plugin activates on\n // a certain platform. For example: Geolocation uses the WebPlugin on Android but not iOS\n Plugins[config.name] = webPlugin;\n }\n};\n//# sourceMappingURL=legacy-web-plugin-merge.js.map","export var ExceptionCode;\n(function (ExceptionCode) {\n /**\n * API is not implemented.\n *\n * This usually means the API can't be used because it is not implemented for\n * the current platform.\n */\n ExceptionCode[\"Unimplemented\"] = \"UNIMPLEMENTED\";\n /**\n * API is not available.\n *\n * This means the API can't be used right now because:\n * - it is currently missing a prerequisite, such as network connectivity\n * - it requires a particular platform or browser version\n */\n ExceptionCode[\"Unavailable\"] = \"UNAVAILABLE\";\n})(ExceptionCode || (ExceptionCode = {}));\nexport class CapacitorException extends Error {\n constructor(message, code, data) {\n super(message);\n this.message = message;\n this.code = code;\n this.data = data;\n }\n}\nexport const getPlatformId = (win) => {\n var _a, _b;\n if (win === null || win === void 0 ? void 0 : win.androidBridge) {\n return 'android';\n }\n else if ((_b = (_a = win === null || win === void 0 ? void 0 : win.webkit) === null || _a === void 0 ? void 0 : _a.messageHandlers) === null || _b === void 0 ? void 0 : _b.bridge) {\n return 'ios';\n }\n else {\n return 'web';\n }\n};\n//# sourceMappingURL=util.js.map","import { CapacitorException, getPlatformId, ExceptionCode } from './util';\nexport const createCapacitor = (win) => {\n var _a, _b, _c, _d, _e;\n const capCustomPlatform = win.CapacitorCustomPlatform || null;\n const cap = win.Capacitor || {};\n const Plugins = (cap.Plugins = cap.Plugins || {});\n /**\n * @deprecated Use `capCustomPlatform` instead, default functions like registerPlugin will function with the new object.\n */\n const capPlatforms = win.CapacitorPlatforms;\n const defaultGetPlatform = () => {\n return capCustomPlatform !== null\n ? capCustomPlatform.name\n : getPlatformId(win);\n };\n const getPlatform = ((_a = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _a === void 0 ? void 0 : _a.getPlatform) || defaultGetPlatform;\n const defaultIsNativePlatform = () => getPlatform() !== 'web';\n const isNativePlatform = ((_b = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _b === void 0 ? void 0 : _b.isNativePlatform) || defaultIsNativePlatform;\n const defaultIsPluginAvailable = (pluginName) => {\n const plugin = registeredPlugins.get(pluginName);\n if (plugin === null || plugin === void 0 ? void 0 : plugin.platforms.has(getPlatform())) {\n // JS implementation available for the current platform.\n return true;\n }\n if (getPluginHeader(pluginName)) {\n // Native implementation available.\n return true;\n }\n return false;\n };\n const isPluginAvailable = ((_c = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _c === void 0 ? void 0 : _c.isPluginAvailable) ||\n defaultIsPluginAvailable;\n const defaultGetPluginHeader = (pluginName) => { var _a; return (_a = cap.PluginHeaders) === null || _a === void 0 ? void 0 : _a.find(h => h.name === pluginName); };\n const getPluginHeader = ((_d = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _d === void 0 ? void 0 : _d.getPluginHeader) || defaultGetPluginHeader;\n const handleError = (err) => win.console.error(err);\n const pluginMethodNoop = (_target, prop, pluginName) => {\n return Promise.reject(`${pluginName} does not have an implementation of \"${prop}\".`);\n };\n const registeredPlugins = new Map();\n const defaultRegisterPlugin = (pluginName, jsImplementations = {}) => {\n const registeredPlugin = registeredPlugins.get(pluginName);\n if (registeredPlugin) {\n console.warn(`Capacitor plugin \"${pluginName}\" already registered. Cannot register plugins twice.`);\n return registeredPlugin.proxy;\n }\n const platform = getPlatform();\n const pluginHeader = getPluginHeader(pluginName);\n let jsImplementation;\n const loadPluginImplementation = async () => {\n if (!jsImplementation && platform in jsImplementations) {\n jsImplementation =\n typeof jsImplementations[platform] === 'function'\n ? (jsImplementation = await jsImplementations[platform]())\n : (jsImplementation = jsImplementations[platform]);\n }\n else if (capCustomPlatform !== null &&\n !jsImplementation &&\n 'web' in jsImplementations) {\n jsImplementation =\n typeof jsImplementations['web'] === 'function'\n ? (jsImplementation = await jsImplementations['web']())\n : (jsImplementation = jsImplementations['web']);\n }\n return jsImplementation;\n };\n const createPluginMethod = (impl, prop) => {\n var _a, _b;\n if (pluginHeader) {\n const methodHeader = pluginHeader === null || pluginHeader === void 0 ? void 0 : pluginHeader.methods.find(m => prop === m.name);\n if (methodHeader) {\n if (methodHeader.rtype === 'promise') {\n return (options) => cap.nativePromise(pluginName, prop.toString(), options);\n }\n else {\n return (options, callback) => cap.nativeCallback(pluginName, prop.toString(), options, callback);\n }\n }\n else if (impl) {\n return (_a = impl[prop]) === null || _a === void 0 ? void 0 : _a.bind(impl);\n }\n }\n else if (impl) {\n return (_b = impl[prop]) === null || _b === void 0 ? void 0 : _b.bind(impl);\n }\n else {\n throw new CapacitorException(`\"${pluginName}\" plugin is not implemented on ${platform}`, ExceptionCode.Unimplemented);\n }\n };\n const createPluginMethodWrapper = (prop) => {\n let remove;\n const wrapper = (...args) => {\n const p = loadPluginImplementation().then(impl => {\n const fn = createPluginMethod(impl, prop);\n if (fn) {\n const p = fn(...args);\n remove = p === null || p === void 0 ? void 0 : p.remove;\n return p;\n }\n else {\n throw new CapacitorException(`\"${pluginName}.${prop}()\" is not implemented on ${platform}`, ExceptionCode.Unimplemented);\n }\n });\n if (prop === 'addListener') {\n p.remove = async () => remove();\n }\n return p;\n };\n // Some flair ✨\n wrapper.toString = () => `${prop.toString()}() { [capacitor code] }`;\n Object.defineProperty(wrapper, 'name', {\n value: prop,\n writable: false,\n configurable: false,\n });\n return wrapper;\n };\n const addListener = createPluginMethodWrapper('addListener');\n const removeListener = createPluginMethodWrapper('removeListener');\n const addListenerNative = (eventName, callback) => {\n const call = addListener({ eventName }, callback);\n const remove = async () => {\n const callbackId = await call;\n removeListener({\n eventName,\n callbackId,\n }, callback);\n };\n const p = new Promise(resolve => call.then(() => resolve({ remove })));\n p.remove = async () => {\n console.warn(`Using addListener() without 'await' is deprecated.`);\n await remove();\n };\n return p;\n };\n const proxy = new Proxy({}, {\n get(_, prop) {\n switch (prop) {\n // https://github.com/facebook/react/issues/20030\n case '$$typeof':\n return undefined;\n case 'toJSON':\n return () => ({});\n case 'addListener':\n return pluginHeader ? addListenerNative : addListener;\n case 'removeListener':\n return removeListener;\n default:\n return createPluginMethodWrapper(prop);\n }\n },\n });\n Plugins[pluginName] = proxy;\n registeredPlugins.set(pluginName, {\n name: pluginName,\n proxy,\n platforms: new Set([\n ...Object.keys(jsImplementations),\n ...(pluginHeader ? [platform] : []),\n ]),\n });\n return proxy;\n };\n const registerPlugin = ((_e = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _e === void 0 ? void 0 : _e.registerPlugin) || defaultRegisterPlugin;\n // Add in convertFileSrc for web, it will already be available in native context\n if (!cap.convertFileSrc) {\n cap.convertFileSrc = filePath => filePath;\n }\n cap.getPlatform = getPlatform;\n cap.handleError = handleError;\n cap.isNativePlatform = isNativePlatform;\n cap.isPluginAvailable = isPluginAvailable;\n cap.pluginMethodNoop = pluginMethodNoop;\n cap.registerPlugin = registerPlugin;\n cap.Exception = CapacitorException;\n cap.DEBUG = !!cap.DEBUG;\n cap.isLoggingEnabled = !!cap.isLoggingEnabled;\n // Deprecated props\n cap.platform = cap.getPlatform();\n cap.isNative = cap.isNativePlatform();\n return cap;\n};\nexport const initCapacitorGlobal = (win) => (win.Capacitor = createCapacitor(win));\n//# sourceMappingURL=runtime.js.map","import { legacyRegisterWebPlugin } from './legacy/legacy-web-plugin-merge';\nimport { initCapacitorGlobal } from './runtime';\nexport const Capacitor = /*#__PURE__*/ initCapacitorGlobal(typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {});\nexport const registerPlugin = Capacitor.registerPlugin;\n/**\n * @deprecated Provided for backwards compatibility for Capacitor v2 plugins.\n * Capacitor v3 plugins should import the plugin directly. This \"Plugins\"\n * export is deprecated in v3, and will be removed in v4.\n */\nexport const Plugins = Capacitor.Plugins;\n/**\n * Provided for backwards compatibility. Use the registerPlugin() API\n * instead, and provide the web plugin as the \"web\" implmenetation.\n * For example\n *\n * export const Example = registerPlugin('Example', {\n * web: () => import('./web').then(m => new m.Example())\n * })\n *\n * @deprecated Deprecated in v3, will be removed from v4.\n */\nexport const registerWebPlugin = (plugin) => legacyRegisterWebPlugin(Capacitor, plugin);\n//# sourceMappingURL=global.js.map","import { Capacitor } from './global';\nimport { ExceptionCode } from './util';\n/**\n * Base class web plugins should extend.\n */\nexport class WebPlugin {\n constructor(config) {\n this.listeners = {};\n this.windowListeners = {};\n if (config) {\n // TODO: add link to upgrade guide\n console.warn(`Capacitor WebPlugin \"${config.name}\" config object was deprecated in v3 and will be removed in v4.`);\n this.config = config;\n }\n }\n addListener(eventName, listenerFunc) {\n const listeners = this.listeners[eventName];\n if (!listeners) {\n this.listeners[eventName] = [];\n }\n this.listeners[eventName].push(listenerFunc);\n // If we haven't added a window listener for this event and it requires one,\n // go ahead and add it\n const windowListener = this.windowListeners[eventName];\n if (windowListener && !windowListener.registered) {\n this.addWindowListener(windowListener);\n }\n const remove = async () => this.removeListener(eventName, listenerFunc);\n const p = Promise.resolve({ remove });\n Object.defineProperty(p, 'remove', {\n value: async () => {\n console.warn(`Using addListener() without 'await' is deprecated.`);\n await remove();\n },\n });\n return p;\n }\n async removeAllListeners() {\n this.listeners = {};\n for (const listener in this.windowListeners) {\n this.removeWindowListener(this.windowListeners[listener]);\n }\n this.windowListeners = {};\n }\n notifyListeners(eventName, data) {\n const listeners = this.listeners[eventName];\n if (listeners) {\n listeners.forEach(listener => listener(data));\n }\n }\n hasListeners(eventName) {\n return !!this.listeners[eventName].length;\n }\n registerWindowListener(windowEventName, pluginEventName) {\n this.windowListeners[pluginEventName] = {\n registered: false,\n windowEventName,\n pluginEventName,\n handler: event => {\n this.notifyListeners(pluginEventName, event);\n },\n };\n }\n unimplemented(msg = 'not implemented') {\n return new Capacitor.Exception(msg, ExceptionCode.Unimplemented);\n }\n unavailable(msg = 'not available') {\n return new Capacitor.Exception(msg, ExceptionCode.Unavailable);\n }\n async removeListener(eventName, listenerFunc) {\n const listeners = this.listeners[eventName];\n if (!listeners) {\n return;\n }\n const index = listeners.indexOf(listenerFunc);\n this.listeners[eventName].splice(index, 1);\n // If there are no more listeners for this type of event,\n // remove the window listener\n if (!this.listeners[eventName].length) {\n this.removeWindowListener(this.windowListeners[eventName]);\n }\n }\n addWindowListener(handle) {\n window.addEventListener(handle.windowEventName, handle.handler);\n handle.registered = true;\n }\n removeWindowListener(handle) {\n if (!handle) {\n return;\n }\n window.removeEventListener(handle.windowEventName, handle.handler);\n handle.registered = false;\n }\n}\n//# sourceMappingURL=web-plugin.js.map","import { registerPlugin } from './global';\nimport { WebPlugin } from './web-plugin';\nexport const WebView = /*#__PURE__*/ registerPlugin('WebView');\n/******** END WEB VIEW PLUGIN ********/\n/******** COOKIES PLUGIN ********/\n/**\n * Safely web encode a string value (inspired by js-cookie)\n * @param str The string value to encode\n */\nconst encode = (str) => encodeURIComponent(str)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n/**\n * Safely web decode a string value (inspired by js-cookie)\n * @param str The string value to decode\n */\nconst decode = (str) => str.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent);\nexport class CapacitorCookiesPluginWeb extends WebPlugin {\n async getCookies() {\n const cookies = document.cookie;\n const cookieMap = {};\n cookies.split(';').forEach(cookie => {\n if (cookie.length <= 0)\n return;\n // Replace first \"=\" with CAP_COOKIE to prevent splitting on additional \"=\"\n let [key, value] = cookie.replace(/=/, 'CAP_COOKIE').split('CAP_COOKIE');\n key = decode(key).trim();\n value = decode(value).trim();\n cookieMap[key] = value;\n });\n return cookieMap;\n }\n async setCookie(options) {\n try {\n // Safely Encoded Key/Value\n const encodedKey = encode(options.key);\n const encodedValue = encode(options.value);\n // Clean & sanitize options\n const expires = `; expires=${(options.expires || '').replace('expires=', '')}`; // Default is \"; expires=\"\n const path = (options.path || '/').replace('path=', ''); // Default is \"path=/\"\n const domain = options.url != null && options.url.length > 0\n ? `domain=${options.url}`\n : '';\n document.cookie = `${encodedKey}=${encodedValue || ''}${expires}; path=${path}; ${domain};`;\n }\n catch (error) {\n return Promise.reject(error);\n }\n }\n async deleteCookie(options) {\n try {\n document.cookie = `${options.key}=; Max-Age=0`;\n }\n catch (error) {\n return Promise.reject(error);\n }\n }\n async clearCookies() {\n try {\n const cookies = document.cookie.split(';') || [];\n for (const cookie of cookies) {\n document.cookie = cookie\n .replace(/^ +/, '')\n .replace(/=.*/, `=;expires=${new Date().toUTCString()};path=/`);\n }\n }\n catch (error) {\n return Promise.reject(error);\n }\n }\n async clearAllCookies() {\n try {\n await this.clearCookies();\n }\n catch (error) {\n return Promise.reject(error);\n }\n }\n}\nexport const CapacitorCookies = registerPlugin('CapacitorCookies', {\n web: () => new CapacitorCookiesPluginWeb(),\n});\n// UTILITY FUNCTIONS\n/**\n * Read in a Blob value and return it as a base64 string\n * @param blob The blob value to convert to a base64 string\n */\nexport const readBlobAsBase64 = async (blob) => new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => {\n const base64String = reader.result;\n // remove prefix \"data:application/pdf;base64,\"\n resolve(base64String.indexOf(',') >= 0\n ? base64String.split(',')[1]\n : base64String);\n };\n reader.onerror = (error) => reject(error);\n reader.readAsDataURL(blob);\n});\n/**\n * Normalize an HttpHeaders map by lowercasing all of the values\n * @param headers The HttpHeaders object to normalize\n */\nconst normalizeHttpHeaders = (headers = {}) => {\n const originalKeys = Object.keys(headers);\n const loweredKeys = Object.keys(headers).map(k => k.toLocaleLowerCase());\n const normalized = loweredKeys.reduce((acc, key, index) => {\n acc[key] = headers[originalKeys[index]];\n return acc;\n }, {});\n return normalized;\n};\n/**\n * Builds a string of url parameters that\n * @param params A map of url parameters\n * @param shouldEncode true if you should encodeURIComponent() the values (true by default)\n */\nconst buildUrlParams = (params, shouldEncode = true) => {\n if (!params)\n return null;\n const output = Object.entries(params).reduce((accumulator, entry) => {\n const [key, value] = entry;\n let encodedValue;\n let item;\n if (Array.isArray(value)) {\n item = '';\n value.forEach(str => {\n encodedValue = shouldEncode ? encodeURIComponent(str) : str;\n item += `${key}=${encodedValue}&`;\n });\n // last character will always be \"&\" so slice it off\n item.slice(0, -1);\n }\n else {\n encodedValue = shouldEncode ? encodeURIComponent(value) : value;\n item = `${key}=${encodedValue}`;\n }\n return `${accumulator}&${item}`;\n }, '');\n // Remove initial \"&\" from the reduce\n return output.substr(1);\n};\n/**\n * Build the RequestInit object based on the options passed into the initial request\n * @param options The Http plugin options\n * @param extra Any extra RequestInit values\n */\nexport const buildRequestInit = (options, extra = {}) => {\n const output = Object.assign({ method: options.method || 'GET', headers: options.headers }, extra);\n // Get the content-type\n const headers = normalizeHttpHeaders(options.headers);\n const type = headers['content-type'] || '';\n // If body is already a string, then pass it through as-is.\n if (typeof options.data === 'string') {\n output.body = options.data;\n }\n // Build request initializers based off of content-type\n else if (type.includes('application/x-www-form-urlencoded')) {\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(options.data || {})) {\n params.set(key, value);\n }\n output.body = params.toString();\n }\n else if (type.includes('multipart/form-data')) {\n const form = new FormData();\n if (options.data instanceof FormData) {\n options.data.forEach((value, key) => {\n form.append(key, value);\n });\n }\n else {\n for (const key of Object.keys(options.data)) {\n form.append(key, options.data[key]);\n }\n }\n output.body = form;\n const headers = new Headers(output.headers);\n headers.delete('content-type'); // content-type will be set by `window.fetch` to includy boundary\n output.headers = headers;\n }\n else if (type.includes('application/json') ||\n typeof options.data === 'object') {\n output.body = JSON.stringify(options.data);\n }\n return output;\n};\n// WEB IMPLEMENTATION\nexport class CapacitorHttpPluginWeb extends WebPlugin {\n /**\n * Perform an Http request given a set of options\n * @param options Options to build the HTTP request\n */\n async request(options) {\n const requestInit = buildRequestInit(options, options.webFetchExtra);\n const urlParams = buildUrlParams(options.params, options.shouldEncodeUrlParams);\n const url = urlParams ? `${options.url}?${urlParams}` : options.url;\n const response = await fetch(url, requestInit);\n const contentType = response.headers.get('content-type') || '';\n // Default to 'text' responseType so no parsing happens\n let { responseType = 'text' } = response.ok ? options : {};\n // If the response content-type is json, force the response to be json\n if (contentType.includes('application/json')) {\n responseType = 'json';\n }\n let data;\n let blob;\n switch (responseType) {\n case 'arraybuffer':\n case 'blob':\n blob = await response.blob();\n data = await readBlobAsBase64(blob);\n break;\n case 'json':\n data = await response.json();\n break;\n case 'document':\n case 'text':\n default:\n data = await response.text();\n }\n // Convert fetch headers to Capacitor HttpHeaders\n const headers = {};\n response.headers.forEach((value, key) => {\n headers[key] = value;\n });\n return {\n data,\n headers,\n status: response.status,\n url: response.url,\n };\n }\n /**\n * Perform an Http GET request given a set of options\n * @param options Options to build the HTTP request\n */\n async get(options) {\n return this.request(Object.assign(Object.assign({}, options), { method: 'GET' }));\n }\n /**\n * Perform an Http POST request given a set of options\n * @param options Options to build the HTTP request\n */\n async post(options) {\n return this.request(Object.assign(Object.assign({}, options), { method: 'POST' }));\n }\n /**\n * Perform an Http PUT request given a set of options\n * @param options Options to build the HTTP request\n */\n async put(options) {\n return this.request(Object.assign(Object.assign({}, options), { method: 'PUT' }));\n }\n /**\n * Perform an Http PATCH request given a set of options\n * @param options Options to build the HTTP request\n */\n async patch(options) {\n return this.request(Object.assign(Object.assign({}, options), { method: 'PATCH' }));\n }\n /**\n * Perform an Http DELETE request given a set of options\n * @param options Options to build the HTTP request\n */\n async delete(options) {\n return this.request(Object.assign(Object.assign({}, options), { method: 'DELETE' }));\n }\n}\nexport const CapacitorHttp = registerPlugin('CapacitorHttp', {\n web: () => new CapacitorHttpPluginWeb(),\n});\n/******** END HTTP PLUGIN ********/\n//# sourceMappingURL=core-plugins.js.map","module.exports = (require(\"./helpers/browser/js-loader\")(require('./helpers/bundle-url').getBundleURL('jWRdZ') + require('./helpers/bundle-manifest').resolve(\"ekHe4\"))).then(() => parcelRequire('55omy'));","\"use strict\";\n\nvar cacheLoader = require('../cacheLoader');\nmodule.exports = cacheLoader(function (bundle) {\n return new Promise(function (resolve, reject) {\n // Don't insert the same script twice (e.g. if it was already in the HTML)\n var existingScripts = document.getElementsByTagName('script');\n if ([].concat(existingScripts).some(function isCurrentBundle(script) {\n return script.src === bundle;\n })) {\n resolve();\n return;\n }\n var preloadLink = document.createElement('link');\n preloadLink.href = bundle;\n preloadLink.rel = 'preload';\n preloadLink.as = 'script';\n document.head.appendChild(preloadLink);\n var script = document.createElement('script');\n script.async = true;\n script.type = 'text/javascript';\n script.src = bundle;\n script.onerror = function (e) {\n var error = new TypeError(\"Failed to fetch dynamically imported module: \".concat(bundle, \". Error: \").concat(e.message));\n script.onerror = script.onload = null;\n script.remove();\n reject(error);\n };\n script.onload = function () {\n script.onerror = script.onload = null;\n resolve();\n };\n document.getElementsByTagName('head')[0].appendChild(script);\n });\n});","\"use strict\";\n\nvar cachedBundles = {};\nvar cachedPreloads = {};\nvar cachedPrefetches = {};\nfunction getCache(type) {\n switch (type) {\n case 'preload':\n return cachedPreloads;\n case 'prefetch':\n return cachedPrefetches;\n default:\n return cachedBundles;\n }\n}\nmodule.exports = function (loader, type) {\n return function (bundle) {\n var cache = getCache(type);\n if (cache[bundle]) {\n return cache[bundle];\n }\n return cache[bundle] = loader.apply(null, arguments).catch(function (e) {\n delete cache[bundle];\n throw e;\n });\n };\n};","\"use strict\";\n\nvar bundleURL = {};\nfunction getBundleURLCached(id) {\n var value = bundleURL[id];\n if (!value) {\n value = getBundleURL();\n bundleURL[id] = value;\n }\n return value;\n}\nfunction getBundleURL() {\n try {\n throw new Error();\n } catch (err) {\n var matches = ('' + err.stack).match(/(https?|file|ftp|(chrome|moz|safari-web)-extension):\\/\\/[^)\\n]+/g);\n if (matches) {\n // The first two stack frames will be this function and getBundleURLCached.\n // Use the 3rd one, which will be a runtime in the original bundle.\n return getBaseURL(matches[2]);\n }\n }\n return '/';\n}\nfunction getBaseURL(url) {\n return ('' + url).replace(/^((?:https?|file|ftp|(chrome|moz|safari-web)-extension):\\/\\/.+)\\/[^/]+$/, '$1') + '/';\n}\n\n// TODO: Replace uses with `new URL(url).origin` when ie11 is no longer supported.\nfunction getOrigin(url) {\n var matches = ('' + url).match(/(https?|file|ftp|(chrome|moz|safari-web)-extension):\\/\\/[^/]+/);\n if (!matches) {\n throw new Error('Origin not found');\n }\n return matches[0];\n}\nexports.getBundleURL = getBundleURLCached;\nexports.getBaseURL = getBaseURL;\nexports.getOrigin = getOrigin;","require('./helpers/bundle-manifest').register(JSON.parse(\"{\\\"jWRdZ\\\":\\\"app.js\\\",\\\"ekHe4\\\":\\\"web.15591f28.js\\\"}\"));","import { CapacitorUpdater } from '@capgo/capacitor-updater';\n\nCapacitorUpdater.notifyAppReady();\nconsole.log('CapacitorUpdater Loaded');\n","/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/.\n */\nimport { registerPlugin } from \"@capacitor/core\";\nconst CapacitorUpdater = registerPlugin(\"CapacitorUpdater\", {\n web: () => import(\"./web\").then((m) => new m.CapacitorUpdaterWeb()),\n});\nexport * from \"./definitions\";\nexport { CapacitorUpdater };\n//# sourceMappingURL=index.js.map",null,"/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/.\n */\nexport {};\n//# sourceMappingURL=definitions.js.map",null],"names":["$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","$parcel$global","globalThis","self","window","global","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$f13ecebb1f16f955$export$6503ec6e8aabbaf","$f13ecebb1f16f955$export$f7ad0328861e2f03","$f13ecebb1f16f955$var$mapping","pairs","keys","i","length","resolved","$8978e92beab2e837$export$f8972ddbe8205c4b","win","ExceptionCode","$8978e92beab2e837$export$7612db19fb8beb1e","$8978e92beab2e837$export$7c58ec35c4c5ea54","$8978e92beab2e837$export$6f089bd27500a512","CapacitorPlatforms","$8978e92beab2e837$var$createCapacitorPlatforms","defaultPlatformMap","Map","name","capPlatforms","currentPlatform","platforms","addPlatform","platform","setPlatform","has","$8978e92beab2e837$export$12e569be5e83b9f4","constructor","message","data","$8978e92beab2e837$var$getPlatformId","_a","_b","androidBridge","webkit","messageHandlers","bridge","$8978e92beab2e837$export$ab659bfd88afdf29","Capacitor","$8978e92beab2e837$var$createCapacitor","_c","_d","_e","capCustomPlatform","CapacitorCustomPlatform","cap","Plugins","getPlatform","isNativePlatform","isPluginAvailable","pluginName","plugin","registeredPlugins","getPluginHeader","PluginHeaders","find","h","registerPlugin","jsImplementations","jsImplementation","registeredPlugin","console","warn","proxy","pluginHeader","loadPluginImplementation","createPluginMethod","impl","prop","methodHeader","methods","m","rtype","options","nativePromise","toString","callback","nativeCallback","bind","Unimplemented","createPluginMethodWrapper","remove","wrapper","args","p","then","fn","value","writable","addListener","removeListener","addListenerNative","eventName","callbackId","Promise","resolve","Proxy","_","Set","convertFileSrc","filePath","handleError","error","pluginMethodNoop","_target","reject","Exception","DEBUG","isLoggingEnabled","isNative","config","listeners","windowListeners","listenerFunc","push","windowListener","registered","addWindowListener","removeAllListeners","listener","removeWindowListener","notifyListeners","forEach","hasListeners","registerWindowListener","windowEventName","pluginEventName","handler","event","unimplemented","msg","unavailable","Unavailable","index","indexOf","splice","handle","addEventListener","removeEventListener","$8978e92beab2e837$var$encode","str","encodeURIComponent","replace","decodeURIComponent","escape","$8978e92beab2e837$var$decode","$8978e92beab2e837$var$CapacitorCookiesPluginWeb","getCookies","cookies","document","cookie","cookieMap","split","key","trim","setCookie","encodedKey","encodedValue","expires","path","domain","url","deleteCookie","clearCookies","Date","toUTCString","clearAllCookies","web","$8978e92beab2e837$var$readBlobAsBase64","blob","reader","FileReader","onload","base64String","result","onerror","readAsDataURL","$8978e92beab2e837$var$normalizeHttpHeaders","headers","originalKeys","loweredKeys","map","k","toLocaleLowerCase","normalized","reduce","acc","$8978e92beab2e837$var$buildUrlParams","params","shouldEncode","output","entries","accumulator","entry","item","Array","isArray","slice","substr","$8978e92beab2e837$export$bd53726ce92e1297","extra","assign","method","type","body","includes","URLSearchParams","form","FormData","append","Headers","delete","JSON","stringify","$8978e92beab2e837$var$CapacitorHttpPluginWeb","request","requestInit","webFetchExtra","urlParams","shouldEncodeUrlParams","response","fetch","contentType","responseType","ok","json","text","status","post","put","patch","getBundleURL","$7lV8K","bundle","concat","getElementsByTagName","some","script","src","preloadLink","createElement","href","rel","as","head","appendChild","async","TypeError","$55a6d16921f8ab25$var$cachedBundles","$55a6d16921f8ab25$var$cachedPreloads","$55a6d16921f8ab25$var$cachedPrefetches","loader","cache","$55a6d16921f8ab25$var$getCache","apply","arguments","catch","$ce4ea6902f7a0721$export$bdfd709ae4826697","$ce4ea6902f7a0721$var$bundleURL","$ce4ea6902f7a0721$var$getBundleURL","matches","stack","match","parse","$bNLeC","$edda64e79c13c397$export$3dd47233f557671d","CapacitorUpdaterWeb","notifyAppReady","log"],"version":3,"file":"app.js.map"} \ No newline at end of file diff --git a/static/web.15591f28.js b/static/web.15591f28.js deleted file mode 100644 index 0613cc8..0000000 --- a/static/web.15591f28.js +++ /dev/null @@ -1,7 +0,0 @@ -var n;(n=("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{}).parcelRequire94c2).register("55omy",function(e,t){Object.defineProperty(e.exports,"CapacitorUpdaterWeb",{get:()=>s,set:void 0,enumerable:!0,configurable:!0});/* - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */var a=n("bNLeC");let o={status:"success",version:"",downloaded:"1970-01-01T00:00:00.000Z",id:"builtin",checksum:""};class s extends a.WebPlugin{async download(n){return console.warn("Cannot download version in web",n),o}async next(n){return console.warn("Cannot set next version in web",n),o}async isAutoUpdateEnabled(){return console.warn("Cannot get isAutoUpdateEnabled in web"),{enabled:!1}}async set(n){console.warn("Cannot set active bundle in web",n)}async getDeviceId(){return console.warn("Cannot get ID in web"),{deviceId:"default"}}async getBuiltinVersion(){return console.warn("Cannot get version in web"),{version:"default"}}async getPluginVersion(){return console.warn("Cannot get plugin version in web"),{version:"default"}}async delete(n){console.warn("Cannot delete bundle in web",n)}async list(){return console.warn("Cannot list bundles in web"),{bundles:[]}}async reset(n){console.warn("Cannot reset version in web",n)}async current(){return console.warn("Cannot get current bundle in web"),{bundle:o,native:"0.0.0"}}async reload(){console.warn("Cannot reload current bundle in web")}async getLatest(){return console.warn("Cannot getLatest current bundle in web"),{version:"0.0.0",message:"Cannot getLatest current bundle in web"}}async setChannel(n){return console.warn("Cannot setChannel in web",n),{status:"error",error:"Cannot setChannel in web"}}async setCustomId(n){console.warn("Cannot setCustomId in web",n)}async getChannel(){return console.warn("Cannot getChannel in web"),{status:"error",error:"Cannot getChannel in web"}}async notifyAppReady(){return console.warn("Cannot notify App Ready in web"),{bundle:o}}async setMultiDelay(n){console.warn("Cannot setMultiDelay in web",null==n?void 0:n.delayConditions)}async setDelay(n){console.warn("Cannot setDelay in web",n)}async cancelDelay(){console.warn("Cannot cancelDelay in web")}}});//# sourceMappingURL=web.15591f28.js.map - -//# sourceMappingURL=web.15591f28.js.map diff --git a/static/web.15591f28.js.map b/static/web.15591f28.js.map deleted file mode 100644 index d488ae9..0000000 --- a/static/web.15591f28.js.map +++ /dev/null @@ -1 +0,0 @@ -{"mappings":"A,I,E,C,E,A,C,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,C,E,iB,E,Q,C,Q,S,C,C,C,E,O,c,C,E,O,C,sB,C,I,I,E,I,K,E,W,C,E,a,C,C,EEAA;;;;C,EAIG,IAAA,EAAA,EAAA,SAeH,IAAM,EAA6B,CACjC,OAAQ,UACR,QAAS,GACT,WAAY,2BACZ,GAAI,UACJ,SAAU,EACX,CAEK,OAAO,UACH,EAAA,SAAA,CAGR,MAAM,SAAS,CAGd,CAHD,CAKE,OADA,QAAQ,IAAA,CAAK,iCAAkC,GACxC,CACT,CACA,MAAM,KAAK,CAAuB,CAAlC,CAEE,OADA,QAAQ,IAAA,CAAK,iCAAkC,GACxC,CACT,CAEA,MAAM,qBAAN,CAEE,OADA,QAAQ,IAAA,CAAK,yCACN,CAAE,QAAS,CAAA,CAAK,CACzB,CACA,MAAM,IAAI,CAAuB,CAAjC,CACE,QAAQ,IAAA,CAAK,kCAAmC,EAElD,CACA,MAAM,aAAN,CAEE,OADA,QAAQ,IAAA,CAAK,wBACN,CAAE,SAAU,SAAS,CAC9B,CACA,MAAM,mBAAN,CAEE,OADA,QAAQ,IAAA,CAAK,6BACN,CAAE,QAAS,SAAS,CAC7B,CACA,MAAM,kBAAN,CAEE,OADA,QAAQ,IAAA,CAAK,oCACN,CAAE,QAAS,SAAS,CAC7B,CACA,MAAM,OAAO,CAAuB,CAApC,CACE,QAAQ,IAAA,CAAK,8BAA+B,EAC9C,CACA,MAAM,MAAN,CAEE,OADA,QAAQ,IAAA,CAAK,8BACN,CAAE,QAAS,EAAE,AAAA,CACtB,CACA,MAAM,MAAM,CAAwC,CAApD,CACE,QAAQ,IAAA,CAAK,8BAA+B,EAC9C,CACA,MAAM,SAAN,CAEE,OADA,QAAQ,IAAA,CAAK,oCACN,CAAE,OAAQ,EAAgB,OAAQ,OAAO,CAClD,CACA,MAAM,QAAN,CACE,QAAQ,IAAA,CAAK,sCAEf,CACA,MAAM,WAAN,CAEE,OADA,QAAQ,IAAA,CAAK,0CACN,CACL,QAAS,QACT,QAAS,wCACV,CACH,CACA,MAAM,WAAW,CAA0B,CAA3C,CAEE,OADA,QAAQ,IAAA,CAAK,2BAA4B,GAClC,CACL,OAAQ,QACR,MAAO,0BACR,CACH,CACA,MAAM,YAAY,CAA2B,CAA7C,CACE,QAAQ,IAAA,CAAK,4BAA6B,EAE5C,CACA,MAAM,YAAN,CAEE,OADA,QAAQ,IAAA,CAAK,4BACN,CACL,OAAQ,QACR,MAAO,0BACR,CACH,CACA,MAAM,gBAAN,CAEE,OADA,QAAQ,IAAA,CAAK,kCACN,CAAE,OAAQ,CAAc,CACjC,CACA,MAAM,cAAc,CAEnB,CAFD,CAGE,QAAQ,IAAA,CAAK,8BAA+B,MAAA,EAAO,KAAA,EAAP,EAAS,eAArD,CAEF,CACA,MAAM,SAAS,CAAsB,CAArC,CACE,QAAQ,IAAA,CAAK,yBAA0B,EAEzC,CACA,MAAM,aAAN,CACE,QAAQ,IAAA,CAAK,4BAEf,CACD,C,E,0D","sources":["","node_modules/@capgo/capacitor-updater/dist/esm/web.js","node_modules/@capgo/capacitor-updater/src/web.ts"],"sourcesContent":["(() => {\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\nvar $parcel$global =\ntypeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\nvar parcelRequire = $parcel$global[\"parcelRequire94c2\"];\nparcelRequire.register(\"55omy\", function(module, exports) {\n\n$parcel$export(module.exports, \"CapacitorUpdaterWeb\", () => $3b405150477b18c0$export$1d67e55136b63cb2);\n/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/.\n */ \nvar $bNLeC = parcelRequire(\"bNLeC\");\nconst $3b405150477b18c0$var$BUNDLE_BUILTIN = {\n status: \"success\",\n version: \"\",\n downloaded: \"1970-01-01T00:00:00.000Z\",\n id: \"builtin\",\n checksum: \"\"\n};\nclass $3b405150477b18c0$export$1d67e55136b63cb2 extends (0, $bNLeC.WebPlugin) {\n async download(options) {\n console.warn(\"Cannot download version in web\", options);\n return $3b405150477b18c0$var$BUNDLE_BUILTIN;\n }\n async next(options) {\n console.warn(\"Cannot set next version in web\", options);\n return $3b405150477b18c0$var$BUNDLE_BUILTIN;\n }\n async isAutoUpdateEnabled() {\n console.warn(\"Cannot get isAutoUpdateEnabled in web\");\n return {\n enabled: false\n };\n }\n async set(options) {\n console.warn(\"Cannot set active bundle in web\", options);\n return;\n }\n async getDeviceId() {\n console.warn(\"Cannot get ID in web\");\n return {\n deviceId: \"default\"\n };\n }\n async getBuiltinVersion() {\n console.warn(\"Cannot get version in web\");\n return {\n version: \"default\"\n };\n }\n async getPluginVersion() {\n console.warn(\"Cannot get plugin version in web\");\n return {\n version: \"default\"\n };\n }\n async delete(options) {\n console.warn(\"Cannot delete bundle in web\", options);\n }\n async list() {\n console.warn(\"Cannot list bundles in web\");\n return {\n bundles: []\n };\n }\n async reset(options) {\n console.warn(\"Cannot reset version in web\", options);\n }\n async current() {\n console.warn(\"Cannot get current bundle in web\");\n return {\n bundle: $3b405150477b18c0$var$BUNDLE_BUILTIN,\n native: \"0.0.0\"\n };\n }\n async reload() {\n console.warn(\"Cannot reload current bundle in web\");\n return;\n }\n async getLatest() {\n console.warn(\"Cannot getLatest current bundle in web\");\n return {\n version: \"0.0.0\",\n message: \"Cannot getLatest current bundle in web\"\n };\n }\n async setChannel(options) {\n console.warn(\"Cannot setChannel in web\", options);\n return {\n status: \"error\",\n error: \"Cannot setChannel in web\"\n };\n }\n async setCustomId(options) {\n console.warn(\"Cannot setCustomId in web\", options);\n return;\n }\n async getChannel() {\n console.warn(\"Cannot getChannel in web\");\n return {\n status: \"error\",\n error: \"Cannot getChannel in web\"\n };\n }\n async notifyAppReady() {\n console.warn(\"Cannot notify App Ready in web\");\n return {\n bundle: $3b405150477b18c0$var$BUNDLE_BUILTIN\n };\n }\n async setMultiDelay(options) {\n console.warn(\"Cannot setMultiDelay in web\", options === null || options === void 0 ? void 0 : options.delayConditions);\n return;\n }\n async setDelay(option) {\n console.warn(\"Cannot setDelay in web\", option);\n return;\n }\n async cancelDelay() {\n console.warn(\"Cannot cancelDelay in web\");\n return;\n }\n}\n\n});\n\n})();\n//# sourceMappingURL=web.15591f28.js.map\n","/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/.\n */\nimport { WebPlugin } from \"@capacitor/core\";\nconst BUNDLE_BUILTIN = {\n status: \"success\",\n version: \"\",\n downloaded: \"1970-01-01T00:00:00.000Z\",\n id: \"builtin\",\n checksum: \"\",\n};\nexport class CapacitorUpdaterWeb extends WebPlugin {\n async download(options) {\n console.warn(\"Cannot download version in web\", options);\n return BUNDLE_BUILTIN;\n }\n async next(options) {\n console.warn(\"Cannot set next version in web\", options);\n return BUNDLE_BUILTIN;\n }\n async isAutoUpdateEnabled() {\n console.warn(\"Cannot get isAutoUpdateEnabled in web\");\n return { enabled: false };\n }\n async set(options) {\n console.warn(\"Cannot set active bundle in web\", options);\n return;\n }\n async getDeviceId() {\n console.warn(\"Cannot get ID in web\");\n return { deviceId: \"default\" };\n }\n async getBuiltinVersion() {\n console.warn(\"Cannot get version in web\");\n return { version: \"default\" };\n }\n async getPluginVersion() {\n console.warn(\"Cannot get plugin version in web\");\n return { version: \"default\" };\n }\n async delete(options) {\n console.warn(\"Cannot delete bundle in web\", options);\n }\n async list() {\n console.warn(\"Cannot list bundles in web\");\n return { bundles: [] };\n }\n async reset(options) {\n console.warn(\"Cannot reset version in web\", options);\n }\n async current() {\n console.warn(\"Cannot get current bundle in web\");\n return { bundle: BUNDLE_BUILTIN, native: \"0.0.0\" };\n }\n async reload() {\n console.warn(\"Cannot reload current bundle in web\");\n return;\n }\n async getLatest() {\n console.warn(\"Cannot getLatest current bundle in web\");\n return {\n version: \"0.0.0\",\n message: \"Cannot getLatest current bundle in web\",\n };\n }\n async setChannel(options) {\n console.warn(\"Cannot setChannel in web\", options);\n return {\n status: \"error\",\n error: \"Cannot setChannel in web\",\n };\n }\n async setCustomId(options) {\n console.warn(\"Cannot setCustomId in web\", options);\n return;\n }\n async getChannel() {\n console.warn(\"Cannot getChannel in web\");\n return {\n status: \"error\",\n error: \"Cannot getChannel in web\",\n };\n }\n async notifyAppReady() {\n console.warn(\"Cannot notify App Ready in web\");\n return { bundle: BUNDLE_BUILTIN };\n }\n async setMultiDelay(options) {\n console.warn(\"Cannot setMultiDelay in web\", options === null || options === void 0 ? void 0 : options.delayConditions);\n return;\n }\n async setDelay(option) {\n console.warn(\"Cannot setDelay in web\", option);\n return;\n }\n async cancelDelay() {\n console.warn(\"Cannot cancelDelay in web\");\n return;\n }\n}\n//# sourceMappingURL=web.js.map",null],"names":["parcelRequire","$parcel$global","globalThis","self","window","global","register","module","exports","Object","defineProperty","get","$3b405150477b18c0$export$1d67e55136b63cb2","set","s","enumerable","configurable","$bNLeC","$3b405150477b18c0$var$BUNDLE_BUILTIN","status","version","downloaded","id","checksum","WebPlugin","download","options","console","warn","next","isAutoUpdateEnabled","enabled","getDeviceId","deviceId","getBuiltinVersion","getPluginVersion","delete","list","bundles","reset","current","bundle","native","reload","getLatest","message","setChannel","error","setCustomId","getChannel","notifyAppReady","setMultiDelay","delayConditions","setDelay","option","cancelDelay"],"version":3,"file":"web.15591f28.js.map"} \ No newline at end of file