{"version":3,"file":"ui/thirdparty/npm.capacitor.42d43dc7a2a585c86e6c.js","mappings":"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","sources":["webpack://apps/./node_modules/@capacitor/app-launcher/dist/esm/index.js","webpack://apps/./node_modules/@capacitor/app-launcher/dist/esm/web.js","webpack://apps/./node_modules/@capacitor/app/dist/esm/index.js","webpack://apps/./node_modules/@capacitor/app/dist/esm/web.js","webpack://apps/./node_modules/@capacitor/core/dist/index.js","webpack://apps/./node_modules/@capacitor/device/dist/esm/index.js","webpack://apps/./node_modules/@capacitor/device/dist/esm/web.js","webpack://apps/./node_modules/@capacitor/dialog/dist/esm/index.js","webpack://apps/./node_modules/@capacitor/dialog/dist/esm/web.js","webpack://apps/./node_modules/@capacitor/filesystem/dist/esm/definitions.js","webpack://apps/./node_modules/@capacitor/filesystem/dist/esm/index.js","webpack://apps/./node_modules/@capacitor/filesystem/dist/esm/web.js","webpack://apps/./node_modules/@capacitor/network/dist/esm/index.js","webpack://apps/./node_modules/@capacitor/network/dist/esm/web.js","webpack://apps/./node_modules/@capacitor/preferences/dist/esm/index.js","webpack://apps/./node_modules/@capacitor/preferences/dist/esm/web.js","webpack://apps/./node_modules/@capacitor/push-notifications/dist/esm/index.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst AppLauncher = registerPlugin('AppLauncher', {\n web: () => import('./web').then(m => new m.AppLauncherWeb()),\n});\nexport * from './definitions';\nexport { AppLauncher };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nexport class AppLauncherWeb extends WebPlugin {\n async canOpenUrl(_options) {\n return { value: true };\n }\n async openUrl(options) {\n window.open(options.url, '_blank');\n return { completed: true };\n }\n}\n//# sourceMappingURL=web.js.map","import { registerPlugin } from '@capacitor/core';\nconst App = registerPlugin('App', {\n web: () => import('./web').then(m => new m.AppWeb()),\n});\nexport * from './definitions';\nexport { App };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nexport class AppWeb extends WebPlugin {\n constructor() {\n super();\n this.handleVisibilityChange = () => {\n const data = {\n isActive: document.hidden !== true,\n };\n this.notifyListeners('appStateChange', data);\n if (document.hidden) {\n this.notifyListeners('pause', null);\n }\n else {\n this.notifyListeners('resume', null);\n }\n };\n document.addEventListener('visibilitychange', this.handleVisibilityChange, false);\n }\n exitApp() {\n throw this.unimplemented('Not implemented on web.');\n }\n async getInfo() {\n throw this.unimplemented('Not implemented on web.');\n }\n async getLaunchUrl() {\n return { url: '' };\n }\n async getState() {\n return { isActive: document.hidden !== true };\n }\n async minimizeApp() {\n throw this.unimplemented('Not implemented on web.');\n }\n}\n//# sourceMappingURL=web.js.map","/*! 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","import { registerPlugin } from '@capacitor/core';\nconst Device = registerPlugin('Device', {\n web: () => import('./web').then(m => new m.DeviceWeb()),\n});\nexport * from './definitions';\nexport { Device };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nexport class DeviceWeb extends WebPlugin {\n async getId() {\n return {\n identifier: this.getUid(),\n };\n }\n async getInfo() {\n if (typeof navigator === 'undefined' || !navigator.userAgent) {\n throw this.unavailable('Device API not available in this browser');\n }\n const ua = navigator.userAgent;\n const uaFields = this.parseUa(ua);\n return {\n model: uaFields.model,\n platform: 'web',\n operatingSystem: uaFields.operatingSystem,\n osVersion: uaFields.osVersion,\n manufacturer: navigator.vendor,\n isVirtual: false,\n webViewVersion: uaFields.browserVersion,\n };\n }\n async getBatteryInfo() {\n if (typeof navigator === 'undefined' || !navigator.getBattery) {\n throw this.unavailable('Device API not available in this browser');\n }\n let battery = {};\n try {\n battery = await navigator.getBattery();\n }\n catch (e) {\n // Let it fail, we don't care\n }\n return {\n batteryLevel: battery.level,\n isCharging: battery.charging,\n };\n }\n async getLanguageCode() {\n return {\n value: navigator.language.split('-')[0].toLowerCase(),\n };\n }\n async getLanguageTag() {\n return {\n value: navigator.language,\n };\n }\n parseUa(ua) {\n const uaFields = {};\n const start = ua.indexOf('(') + 1;\n let end = ua.indexOf(') AppleWebKit');\n if (ua.indexOf(') Gecko') !== -1) {\n end = ua.indexOf(') Gecko');\n }\n const fields = ua.substring(start, end);\n if (ua.indexOf('Android') !== -1) {\n const tmpFields = fields.replace('; wv', '').split('; ').pop();\n if (tmpFields) {\n uaFields.model = tmpFields.split(' Build')[0];\n }\n uaFields.osVersion = fields.split('; ')[1];\n }\n else {\n uaFields.model = fields.split('; ')[0];\n if (typeof navigator !== 'undefined' && navigator.oscpu) {\n uaFields.osVersion = navigator.oscpu;\n }\n else {\n if (ua.indexOf('Windows') !== -1) {\n uaFields.osVersion = fields;\n }\n else {\n const tmpFields = fields.split('; ').pop();\n if (tmpFields) {\n const lastParts = tmpFields\n .replace(' like Mac OS X', '')\n .split(' ');\n uaFields.osVersion = lastParts[lastParts.length - 1].replace(/_/g, '.');\n }\n }\n }\n }\n if (/android/i.test(ua)) {\n uaFields.operatingSystem = 'android';\n }\n else if (/iPad|iPhone|iPod/.test(ua) && !window.MSStream) {\n uaFields.operatingSystem = 'ios';\n }\n else if (/Win/.test(ua)) {\n uaFields.operatingSystem = 'windows';\n }\n else if (/Mac/i.test(ua)) {\n uaFields.operatingSystem = 'mac';\n }\n else {\n uaFields.operatingSystem = 'unknown';\n }\n // Check for browsers based on non-standard javascript apis, only not user agent\n const isSafari = !!window.ApplePaySession;\n const isChrome = !!window.chrome;\n const isFirefox = /Firefox/.test(ua);\n const isEdge = /Edg/.test(ua);\n const isFirefoxIOS = /FxiOS/.test(ua);\n const isChromeIOS = /CriOS/.test(ua);\n const isEdgeIOS = /EdgiOS/.test(ua);\n // FF and Edge User Agents both end with \"/MAJOR.MINOR\"\n if (isSafari ||\n (isChrome && !isEdge) ||\n isFirefoxIOS ||\n isChromeIOS ||\n isEdgeIOS) {\n // Safari version comes as \"... Version/MAJOR.MINOR ...\"\n // Chrome version comes as \"... Chrome/MAJOR.MINOR ...\"\n // FirefoxIOS version comes as \"... FxiOS/MAJOR.MINOR ...\"\n // ChromeIOS version comes as \"... CriOS/MAJOR.MINOR ...\"\n let searchWord;\n if (isFirefoxIOS) {\n searchWord = 'FxiOS';\n }\n else if (isChromeIOS) {\n searchWord = 'CriOS';\n }\n else if (isEdgeIOS) {\n searchWord = 'EdgiOS';\n }\n else if (isSafari) {\n searchWord = 'Version';\n }\n else {\n searchWord = 'Chrome';\n }\n const words = ua.split(' ');\n for (const word of words) {\n if (word.includes(searchWord)) {\n const version = word.split('/')[1];\n uaFields.browserVersion = version;\n }\n }\n }\n else if (isFirefox || isEdge) {\n const reverseUA = ua.split('').reverse().join('');\n const reverseVersion = reverseUA.split('/')[0];\n const version = reverseVersion.split('').reverse().join('');\n uaFields.browserVersion = version;\n }\n return uaFields;\n }\n getUid() {\n if (typeof window !== 'undefined' && window.localStorage) {\n let uid = window.localStorage.getItem('_capuid');\n if (uid) {\n return uid;\n }\n uid = this.uuid4();\n window.localStorage.setItem('_capuid', uid);\n return uid;\n }\n return this.uuid4();\n }\n uuid4() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n const r = (Math.random() * 16) | 0, v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n }\n}\n//# sourceMappingURL=web.js.map","import { registerPlugin } from '@capacitor/core';\nconst Dialog = registerPlugin('Dialog', {\n web: () => import('./web').then(m => new m.DialogWeb()),\n});\nexport * from './definitions';\nexport { Dialog };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nexport class DialogWeb extends WebPlugin {\n async alert(options) {\n window.alert(options.message);\n }\n async prompt(options) {\n const val = window.prompt(options.message, options.inputText || '');\n return {\n value: val !== null ? val : '',\n cancelled: val === null,\n };\n }\n async confirm(options) {\n const val = window.confirm(options.message);\n return {\n value: val,\n };\n }\n}\n//# sourceMappingURL=web.js.map","export var Directory;\n(function (Directory) {\n /**\n * The Documents directory.\n * On iOS it's the app's documents directory.\n * Use this directory to store user-generated content.\n * On Android it's the Public Documents folder, so it's accessible from other apps.\n * It's not accesible on Android 10 unless the app enables legacy External Storage\n * by adding `android:requestLegacyExternalStorage=\"true\"` in the `application` tag\n * in the `AndroidManifest.xml`.\n * On Android 11 or newer the app can only access the files/folders the app created.\n *\n * @since 1.0.0\n */\n Directory[\"Documents\"] = \"DOCUMENTS\";\n /**\n * The Data directory.\n * On iOS it will use the Documents directory.\n * On Android it's the directory holding application files.\n * Files will be deleted when the application is uninstalled.\n *\n * @since 1.0.0\n */\n Directory[\"Data\"] = \"DATA\";\n /**\n * The Library directory.\n * On iOS it will use the Library directory.\n * On Android it's the directory holding application files.\n * Files will be deleted when the application is uninstalled.\n *\n * @since 1.1.0\n */\n Directory[\"Library\"] = \"LIBRARY\";\n /**\n * The Cache directory.\n * Can be deleted in cases of low memory, so use this directory to write app-specific files.\n * that your app can re-create easily.\n *\n * @since 1.0.0\n */\n Directory[\"Cache\"] = \"CACHE\";\n /**\n * The external directory.\n * On iOS it will use the Documents directory.\n * On Android it's the directory on the primary shared/external\n * storage device where the application can place persistent files it owns.\n * These files are internal to the applications, and not typically visible\n * to the user as media.\n * Files will be deleted when the application is uninstalled.\n *\n * @since 1.0.0\n */\n Directory[\"External\"] = \"EXTERNAL\";\n /**\n * The external storage directory.\n * On iOS it will use the Documents directory.\n * On Android it's the primary shared/external storage directory.\n * It's not accesible on Android 10 unless the app enables legacy External Storage\n * by adding `android:requestLegacyExternalStorage=\"true\"` in the `application` tag\n * in the `AndroidManifest.xml`.\n * It's not accesible on Android 11 or newer.\n *\n * @since 1.0.0\n */\n Directory[\"ExternalStorage\"] = \"EXTERNAL_STORAGE\";\n})(Directory || (Directory = {}));\nexport var Encoding;\n(function (Encoding) {\n /**\n * Eight-bit UCS Transformation Format\n *\n * @since 1.0.0\n */\n Encoding[\"UTF8\"] = \"utf8\";\n /**\n * Seven-bit ASCII, a.k.a. ISO646-US, a.k.a. the Basic Latin block of the\n * Unicode character set\n * This encoding is only supported on Android.\n *\n * @since 1.0.0\n */\n Encoding[\"ASCII\"] = \"ascii\";\n /**\n * Sixteen-bit UCS Transformation Format, byte order identified by an\n * optional byte-order mark\n * This encoding is only supported on Android.\n *\n * @since 1.0.0\n */\n Encoding[\"UTF16\"] = \"utf16\";\n})(Encoding || (Encoding = {}));\n/**\n * @deprecated Use `Directory`.\n * @since 1.0.0\n */\nexport const FilesystemDirectory = Directory;\n/**\n * @deprecated Use `Encoding`.\n * @since 1.0.0\n */\nexport const FilesystemEncoding = Encoding;\n//# sourceMappingURL=definitions.js.map","import { registerPlugin } from '@capacitor/core';\nconst Filesystem = registerPlugin('Filesystem', {\n web: () => import('./web').then(m => new m.FilesystemWeb()),\n});\nexport * from './definitions';\nexport { Filesystem };\n//# sourceMappingURL=index.js.map","import { WebPlugin, buildRequestInit } from '@capacitor/core';\nimport { Encoding } from './definitions';\nfunction resolve(path) {\n const posix = path.split('/').filter(item => item !== '.');\n const newPosix = [];\n posix.forEach(item => {\n if (item === '..' &&\n newPosix.length > 0 &&\n newPosix[newPosix.length - 1] !== '..') {\n newPosix.pop();\n }\n else {\n newPosix.push(item);\n }\n });\n return newPosix.join('/');\n}\nfunction isPathParent(parent, children) {\n parent = resolve(parent);\n children = resolve(children);\n const pathsA = parent.split('/');\n const pathsB = children.split('/');\n return (parent !== children &&\n pathsA.every((value, index) => value === pathsB[index]));\n}\nexport class FilesystemWeb extends WebPlugin {\n constructor() {\n super(...arguments);\n this.DB_VERSION = 1;\n this.DB_NAME = 'Disc';\n this._writeCmds = ['add', 'put', 'delete'];\n /**\n * Function that performs a http request to a server and downloads the file to the specified destination\n *\n * @param options the options for the download operation\n * @returns a promise that resolves with the download file result\n */\n this.downloadFile = async (options) => {\n const requestInit = buildRequestInit(options, options.webFetchExtra);\n const response = await fetch(options.url, requestInit);\n let blob;\n if (!(options === null || options === void 0 ? void 0 : options.progress))\n blob = await response.blob();\n else if (!(response === null || response === void 0 ? void 0 : response.body))\n blob = new Blob();\n else {\n const reader = response.body.getReader();\n let bytes = 0;\n const chunks = [];\n const contentType = response.headers.get('content-type');\n const contentLength = parseInt(response.headers.get('content-length') || '0', 10);\n while (true) {\n const { done, value } = await reader.read();\n if (done)\n break;\n chunks.push(value);\n bytes += (value === null || value === void 0 ? void 0 : value.length) || 0;\n const status = {\n url: options.url,\n bytes,\n contentLength,\n };\n this.notifyListeners('progress', status);\n }\n const allChunks = new Uint8Array(bytes);\n let position = 0;\n for (const chunk of chunks) {\n if (typeof chunk === 'undefined')\n continue;\n allChunks.set(chunk, position);\n position += chunk.length;\n }\n blob = new Blob([allChunks.buffer], { type: contentType || undefined });\n }\n const blobUrl = URL.createObjectURL(blob);\n const tempAnchor = document.createElement('a');\n document.body.appendChild(tempAnchor);\n tempAnchor.href = blobUrl;\n tempAnchor.download = options.path; // This should be a filename, not a path\n tempAnchor.click();\n URL.revokeObjectURL(blobUrl);\n document.body.removeChild(tempAnchor);\n return { path: options.path, blob };\n };\n }\n async initDb() {\n if (this._db !== undefined) {\n return this._db;\n }\n if (!('indexedDB' in window)) {\n throw this.unavailable(\"This browser doesn't support IndexedDB\");\n }\n return new Promise((resolve, reject) => {\n const request = indexedDB.open(this.DB_NAME, this.DB_VERSION);\n request.onupgradeneeded = FilesystemWeb.doUpgrade;\n request.onsuccess = () => {\n this._db = request.result;\n resolve(request.result);\n };\n request.onerror = () => reject(request.error);\n request.onblocked = () => {\n console.warn('db blocked');\n };\n });\n }\n static doUpgrade(event) {\n const eventTarget = event.target;\n const db = eventTarget.result;\n switch (event.oldVersion) {\n case 0:\n case 1:\n default: {\n if (db.objectStoreNames.contains('FileStorage')) {\n db.deleteObjectStore('FileStorage');\n }\n const store = db.createObjectStore('FileStorage', { keyPath: 'path' });\n store.createIndex('by_folder', 'folder');\n }\n }\n }\n async dbRequest(cmd, args) {\n const readFlag = this._writeCmds.indexOf(cmd) !== -1 ? 'readwrite' : 'readonly';\n return this.initDb().then((conn) => {\n return new Promise((resolve, reject) => {\n const tx = conn.transaction(['FileStorage'], readFlag);\n const store = tx.objectStore('FileStorage');\n const req = store[cmd](...args);\n req.onsuccess = () => resolve(req.result);\n req.onerror = () => reject(req.error);\n });\n });\n }\n async dbIndexRequest(indexName, cmd, args) {\n const readFlag = this._writeCmds.indexOf(cmd) !== -1 ? 'readwrite' : 'readonly';\n return this.initDb().then((conn) => {\n return new Promise((resolve, reject) => {\n const tx = conn.transaction(['FileStorage'], readFlag);\n const store = tx.objectStore('FileStorage');\n const index = store.index(indexName);\n const req = index[cmd](...args);\n req.onsuccess = () => resolve(req.result);\n req.onerror = () => reject(req.error);\n });\n });\n }\n getPath(directory, uriPath) {\n const cleanedUriPath = uriPath !== undefined ? uriPath.replace(/^[/]+|[/]+$/g, '') : '';\n let fsPath = '';\n if (directory !== undefined)\n fsPath += '/' + directory;\n if (uriPath !== '')\n fsPath += '/' + cleanedUriPath;\n return fsPath;\n }\n async clear() {\n const conn = await this.initDb();\n const tx = conn.transaction(['FileStorage'], 'readwrite');\n const store = tx.objectStore('FileStorage');\n store.clear();\n }\n /**\n * Read a file from disk\n * @param options options for the file read\n * @return a promise that resolves with the read file data result\n */\n async readFile(options) {\n const path = this.getPath(options.directory, options.path);\n // const encoding = options.encoding;\n const entry = (await this.dbRequest('get', [path]));\n if (entry === undefined)\n throw Error('File does not exist.');\n return { data: entry.content ? entry.content : '' };\n }\n /**\n * Write a file to disk in the specified location on device\n * @param options options for the file write\n * @return a promise that resolves with the file write result\n */\n async writeFile(options) {\n const path = this.getPath(options.directory, options.path);\n let data = options.data;\n const encoding = options.encoding;\n const doRecursive = options.recursive;\n const occupiedEntry = (await this.dbRequest('get', [path]));\n if (occupiedEntry && occupiedEntry.type === 'directory')\n throw Error('The supplied path is a directory.');\n const parentPath = path.substr(0, path.lastIndexOf('/'));\n const parentEntry = (await this.dbRequest('get', [parentPath]));\n if (parentEntry === undefined) {\n const subDirIndex = parentPath.indexOf('/', 1);\n if (subDirIndex !== -1) {\n const parentArgPath = parentPath.substr(subDirIndex);\n await this.mkdir({\n path: parentArgPath,\n directory: options.directory,\n recursive: doRecursive,\n });\n }\n }\n if (!encoding) {\n data = data.indexOf(',') >= 0 ? data.split(',')[1] : data;\n if (!this.isBase64String(data))\n throw Error('The supplied data is not valid base64 content.');\n }\n const now = Date.now();\n const pathObj = {\n path: path,\n folder: parentPath,\n type: 'file',\n size: data.length,\n ctime: now,\n mtime: now,\n content: data,\n };\n await this.dbRequest('put', [pathObj]);\n return {\n uri: pathObj.path,\n };\n }\n /**\n * Append to a file on disk in the specified location on device\n * @param options options for the file append\n * @return a promise that resolves with the file write result\n */\n async appendFile(options) {\n const path = this.getPath(options.directory, options.path);\n let data = options.data;\n const encoding = options.encoding;\n const parentPath = path.substr(0, path.lastIndexOf('/'));\n const now = Date.now();\n let ctime = now;\n const occupiedEntry = (await this.dbRequest('get', [path]));\n if (occupiedEntry && occupiedEntry.type === 'directory')\n throw Error('The supplied path is a directory.');\n const parentEntry = (await this.dbRequest('get', [parentPath]));\n if (parentEntry === undefined) {\n const subDirIndex = parentPath.indexOf('/', 1);\n if (subDirIndex !== -1) {\n const parentArgPath = parentPath.substr(subDirIndex);\n await this.mkdir({\n path: parentArgPath,\n directory: options.directory,\n recursive: true,\n });\n }\n }\n if (!encoding && !this.isBase64String(data))\n throw Error('The supplied data is not valid base64 content.');\n if (occupiedEntry !== undefined) {\n if (occupiedEntry.content !== undefined && !encoding) {\n data = btoa(atob(occupiedEntry.content) + atob(data));\n }\n else {\n data = occupiedEntry.content + data;\n }\n ctime = occupiedEntry.ctime;\n }\n const pathObj = {\n path: path,\n folder: parentPath,\n type: 'file',\n size: data.length,\n ctime: ctime,\n mtime: now,\n content: data,\n };\n await this.dbRequest('put', [pathObj]);\n }\n /**\n * Delete a file from disk\n * @param options options for the file delete\n * @return a promise that resolves with the deleted file data result\n */\n async deleteFile(options) {\n const path = this.getPath(options.directory, options.path);\n const entry = (await this.dbRequest('get', [path]));\n if (entry === undefined)\n throw Error('File does not exist.');\n const entries = await this.dbIndexRequest('by_folder', 'getAllKeys', [\n IDBKeyRange.only(path),\n ]);\n if (entries.length !== 0)\n throw Error('Folder is not empty.');\n await this.dbRequest('delete', [path]);\n }\n /**\n * Create a directory.\n * @param options options for the mkdir\n * @return a promise that resolves with the mkdir result\n */\n async mkdir(options) {\n const path = this.getPath(options.directory, options.path);\n const doRecursive = options.recursive;\n const parentPath = path.substr(0, path.lastIndexOf('/'));\n const depth = (path.match(/\\//g) || []).length;\n const parentEntry = (await this.dbRequest('get', [parentPath]));\n const occupiedEntry = (await this.dbRequest('get', [path]));\n if (depth === 1)\n throw Error('Cannot create Root directory');\n if (occupiedEntry !== undefined)\n throw Error('Current directory does already exist.');\n if (!doRecursive && depth !== 2 && parentEntry === undefined)\n throw Error('Parent directory must exist');\n if (doRecursive && depth !== 2 && parentEntry === undefined) {\n const parentArgPath = parentPath.substr(parentPath.indexOf('/', 1));\n await this.mkdir({\n path: parentArgPath,\n directory: options.directory,\n recursive: doRecursive,\n });\n }\n const now = Date.now();\n const pathObj = {\n path: path,\n folder: parentPath,\n type: 'directory',\n size: 0,\n ctime: now,\n mtime: now,\n };\n await this.dbRequest('put', [pathObj]);\n }\n /**\n * Remove a directory\n * @param options the options for the directory remove\n */\n async rmdir(options) {\n const { path, directory, recursive } = options;\n const fullPath = this.getPath(directory, path);\n const entry = (await this.dbRequest('get', [fullPath]));\n if (entry === undefined)\n throw Error('Folder does not exist.');\n if (entry.type !== 'directory')\n throw Error('Requested path is not a directory');\n const readDirResult = await this.readdir({ path, directory });\n if (readDirResult.files.length !== 0 && !recursive)\n throw Error('Folder is not empty');\n for (const entry of readDirResult.files) {\n const entryPath = `${path}/${entry.name}`;\n const entryObj = await this.stat({ path: entryPath, directory });\n if (entryObj.type === 'file') {\n await this.deleteFile({ path: entryPath, directory });\n }\n else {\n await this.rmdir({ path: entryPath, directory, recursive });\n }\n }\n await this.dbRequest('delete', [fullPath]);\n }\n /**\n * Return a list of files from the directory (not recursive)\n * @param options the options for the readdir operation\n * @return a promise that resolves with the readdir directory listing result\n */\n async readdir(options) {\n const path = this.getPath(options.directory, options.path);\n const entry = (await this.dbRequest('get', [path]));\n if (options.path !== '' && entry === undefined)\n throw Error('Folder does not exist.');\n const entries = await this.dbIndexRequest('by_folder', 'getAllKeys', [IDBKeyRange.only(path)]);\n const files = await Promise.all(entries.map(async (e) => {\n let subEntry = (await this.dbRequest('get', [e]));\n if (subEntry === undefined) {\n subEntry = (await this.dbRequest('get', [e + '/']));\n }\n return {\n name: e.substring(path.length + 1),\n type: subEntry.type,\n size: subEntry.size,\n ctime: subEntry.ctime,\n mtime: subEntry.mtime,\n uri: subEntry.path,\n };\n }));\n return { files: files };\n }\n /**\n * Return full File URI for a path and directory\n * @param options the options for the stat operation\n * @return a promise that resolves with the file stat result\n */\n async getUri(options) {\n const path = this.getPath(options.directory, options.path);\n let entry = (await this.dbRequest('get', [path]));\n if (entry === undefined) {\n entry = (await this.dbRequest('get', [path + '/']));\n }\n return {\n uri: (entry === null || entry === void 0 ? void 0 : entry.path) || path,\n };\n }\n /**\n * Return data about a file\n * @param options the options for the stat operation\n * @return a promise that resolves with the file stat result\n */\n async stat(options) {\n const path = this.getPath(options.directory, options.path);\n let entry = (await this.dbRequest('get', [path]));\n if (entry === undefined) {\n entry = (await this.dbRequest('get', [path + '/']));\n }\n if (entry === undefined)\n throw Error('Entry does not exist.');\n return {\n type: entry.type,\n size: entry.size,\n ctime: entry.ctime,\n mtime: entry.mtime,\n uri: entry.path,\n };\n }\n /**\n * Rename a file or directory\n * @param options the options for the rename operation\n * @return a promise that resolves with the rename result\n */\n async rename(options) {\n await this._copy(options, true);\n return;\n }\n /**\n * Copy a file or directory\n * @param options the options for the copy operation\n * @return a promise that resolves with the copy result\n */\n async copy(options) {\n return this._copy(options, false);\n }\n async requestPermissions() {\n return { publicStorage: 'granted' };\n }\n async checkPermissions() {\n return { publicStorage: 'granted' };\n }\n /**\n * Function that can perform a copy or a rename\n * @param options the options for the rename operation\n * @param doRename whether to perform a rename or copy operation\n * @return a promise that resolves with the result\n */\n async _copy(options, doRename = false) {\n let { toDirectory } = options;\n const { to, from, directory: fromDirectory } = options;\n if (!to || !from) {\n throw Error('Both to and from must be provided');\n }\n // If no \"to\" directory is provided, use the \"from\" directory\n if (!toDirectory) {\n toDirectory = fromDirectory;\n }\n const fromPath = this.getPath(fromDirectory, from);\n const toPath = this.getPath(toDirectory, to);\n // Test that the \"to\" and \"from\" locations are different\n if (fromPath === toPath) {\n return {\n uri: toPath,\n };\n }\n if (isPathParent(fromPath, toPath)) {\n throw Error('To path cannot contain the from path');\n }\n // Check the state of the \"to\" location\n let toObj;\n try {\n toObj = await this.stat({\n path: to,\n directory: toDirectory,\n });\n }\n catch (e) {\n // To location does not exist, ensure the directory containing \"to\" location exists and is a directory\n const toPathComponents = to.split('/');\n toPathComponents.pop();\n const toPath = toPathComponents.join('/');\n // Check the containing directory of the \"to\" location exists\n if (toPathComponents.length > 0) {\n const toParentDirectory = await this.stat({\n path: toPath,\n directory: toDirectory,\n });\n if (toParentDirectory.type !== 'directory') {\n throw new Error('Parent directory of the to path is a file');\n }\n }\n }\n // Cannot overwrite a directory\n if (toObj && toObj.type === 'directory') {\n throw new Error('Cannot overwrite a directory with a file');\n }\n // Ensure the \"from\" object exists\n const fromObj = await this.stat({\n path: from,\n directory: fromDirectory,\n });\n // Set the mtime/ctime of the supplied path\n const updateTime = async (path, ctime, mtime) => {\n const fullPath = this.getPath(toDirectory, path);\n const entry = (await this.dbRequest('get', [fullPath]));\n entry.ctime = ctime;\n entry.mtime = mtime;\n await this.dbRequest('put', [entry]);\n };\n const ctime = fromObj.ctime ? fromObj.ctime : Date.now();\n switch (fromObj.type) {\n // The \"from\" object is a file\n case 'file': {\n // Read the file\n const file = await this.readFile({\n path: from,\n directory: fromDirectory,\n });\n // Optionally remove the file\n if (doRename) {\n await this.deleteFile({\n path: from,\n directory: fromDirectory,\n });\n }\n let encoding;\n if (!this.isBase64String(file.data)) {\n encoding = Encoding.UTF8;\n }\n // Write the file to the new location\n const writeResult = await this.writeFile({\n path: to,\n directory: toDirectory,\n data: file.data,\n encoding: encoding,\n });\n // Copy the mtime/ctime of a renamed file\n if (doRename) {\n await updateTime(to, ctime, fromObj.mtime);\n }\n // Resolve promise\n return writeResult;\n }\n case 'directory': {\n if (toObj) {\n throw Error('Cannot move a directory over an existing object');\n }\n try {\n // Create the to directory\n await this.mkdir({\n path: to,\n directory: toDirectory,\n recursive: false,\n });\n // Copy the mtime/ctime of a renamed directory\n if (doRename) {\n await updateTime(to, ctime, fromObj.mtime);\n }\n }\n catch (e) {\n // ignore\n }\n // Iterate over the contents of the from location\n const contents = (await this.readdir({\n path: from,\n directory: fromDirectory,\n })).files;\n for (const filename of contents) {\n // Move item from the from directory to the to directory\n await this._copy({\n from: `${from}/${filename.name}`,\n to: `${to}/${filename.name}`,\n directory: fromDirectory,\n toDirectory,\n }, doRename);\n }\n // Optionally remove the original from directory\n if (doRename) {\n await this.rmdir({\n path: from,\n directory: fromDirectory,\n });\n }\n }\n }\n return {\n uri: toPath,\n };\n }\n isBase64String(str) {\n try {\n return btoa(atob(str)) == str;\n }\n catch (err) {\n return false;\n }\n }\n}\nFilesystemWeb._debug = true;\n//# sourceMappingURL=web.js.map","import { registerPlugin } from '@capacitor/core';\nconst Network = registerPlugin('Network', {\n web: () => import('./web').then(m => new m.NetworkWeb()),\n});\nexport * from './definitions';\nexport { Network };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nfunction translatedConnection() {\n const connection = window.navigator.connection ||\n window.navigator.mozConnection ||\n window.navigator.webkitConnection;\n let result = 'unknown';\n const type = connection ? connection.type || connection.effectiveType : null;\n if (type && typeof type === 'string') {\n switch (type) {\n // possible type values\n case 'bluetooth':\n case 'cellular':\n result = 'cellular';\n break;\n case 'none':\n result = 'none';\n break;\n case 'ethernet':\n case 'wifi':\n case 'wimax':\n result = 'wifi';\n break;\n case 'other':\n case 'unknown':\n result = 'unknown';\n break;\n // possible effectiveType values\n case 'slow-2g':\n case '2g':\n case '3g':\n result = 'cellular';\n break;\n case '4g':\n result = 'wifi';\n break;\n default:\n break;\n }\n }\n return result;\n}\nexport class NetworkWeb extends WebPlugin {\n constructor() {\n super();\n this.handleOnline = () => {\n const connectionType = translatedConnection();\n const status = {\n connected: true,\n connectionType: connectionType,\n };\n this.notifyListeners('networkStatusChange', status);\n };\n this.handleOffline = () => {\n const status = {\n connected: false,\n connectionType: 'none',\n };\n this.notifyListeners('networkStatusChange', status);\n };\n if (typeof window !== 'undefined') {\n window.addEventListener('online', this.handleOnline);\n window.addEventListener('offline', this.handleOffline);\n }\n }\n async getStatus() {\n if (!window.navigator) {\n throw this.unavailable('Browser does not support the Network Information API');\n }\n const connected = window.navigator.onLine;\n const connectionType = translatedConnection();\n const status = {\n connected,\n connectionType: connected ? connectionType : 'none',\n };\n return status;\n }\n}\nconst Network = new NetworkWeb();\nexport { Network };\n//# sourceMappingURL=web.js.map","import { registerPlugin } from '@capacitor/core';\nconst Preferences = registerPlugin('Preferences', {\n web: () => import('./web').then(m => new m.PreferencesWeb()),\n});\nexport * from './definitions';\nexport { Preferences };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nexport class PreferencesWeb extends WebPlugin {\n constructor() {\n super(...arguments);\n this.group = 'CapacitorStorage';\n }\n async configure({ group }) {\n if (typeof group === 'string') {\n this.group = group;\n }\n }\n async get(options) {\n const value = this.impl.getItem(this.applyPrefix(options.key));\n return { value };\n }\n async set(options) {\n this.impl.setItem(this.applyPrefix(options.key), options.value);\n }\n async remove(options) {\n this.impl.removeItem(this.applyPrefix(options.key));\n }\n async keys() {\n const keys = this.rawKeys().map(k => k.substring(this.prefix.length));\n return { keys };\n }\n async clear() {\n for (const key of this.rawKeys()) {\n this.impl.removeItem(key);\n }\n }\n async migrate() {\n var _a;\n const migrated = [];\n const existing = [];\n const oldprefix = '_cap_';\n const keys = Object.keys(this.impl).filter(k => k.indexOf(oldprefix) === 0);\n for (const oldkey of keys) {\n const key = oldkey.substring(oldprefix.length);\n const value = (_a = this.impl.getItem(oldkey)) !== null && _a !== void 0 ? _a : '';\n const { value: currentValue } = await this.get({ key });\n if (typeof currentValue === 'string') {\n existing.push(key);\n }\n else {\n await this.set({ key, value });\n migrated.push(key);\n }\n }\n return { migrated, existing };\n }\n async removeOld() {\n const oldprefix = '_cap_';\n const keys = Object.keys(this.impl).filter(k => k.indexOf(oldprefix) === 0);\n for (const oldkey of keys) {\n this.impl.removeItem(oldkey);\n }\n }\n get impl() {\n return window.localStorage;\n }\n get prefix() {\n return this.group === 'NativeStorage' ? '' : `${this.group}.`;\n }\n rawKeys() {\n return Object.keys(this.impl).filter(k => k.indexOf(this.prefix) === 0);\n }\n applyPrefix(key) {\n return this.prefix + key;\n }\n}\n//# sourceMappingURL=web.js.map","import { registerPlugin } from '@capacitor/core';\nconst PushNotifications = registerPlugin('PushNotifications', {});\nexport * from './definitions';\nexport { PushNotifications };\n//# sourceMappingURL=index.js.map"],"names":["AppLauncher","web","then","m","AppLauncherWeb","async","_options","value","options","window","open","url","completed","App","AppWeb","constructor","super","this","handleVisibilityChange","data","isActive","document","hidden","notifyListeners","addEventListener","exitApp","unimplemented","CapacitorPlatforms","win","defaultPlatformMap","Map","set","name","capPlatforms","currentPlatform","platforms","addPlatform","platform","setPlatform","has","get","createCapacitorPlatforms","initPlatforms","globalThis","self","g","ExceptionCode","CapacitorException","Error","message","code","createCapacitor","_a","_b","_c","_d","_e","capCustomPlatform","CapacitorCustomPlatform","cap","Capacitor","Plugins","getPlatform","androidBridge","webkit","messageHandlers","bridge","getPlatformId","isNativePlatform","isPluginAvailable","pluginName","plugin","registeredPlugins","getPluginHeader","PluginHeaders","find","h","registerPlugin","jsImplementations","registeredPlugin","console","warn","proxy","pluginHeader","jsImplementation","createPluginMethodWrapper","prop","remove","wrapper","args","p","loadPluginImplementation","impl","fn","bind","Unimplemented","methodHeader","methods","rtype","nativePromise","toString","callback","nativeCallback","createPluginMethod","Object","defineProperty","writable","configurable","addListener","removeListener","addListenerNative","eventName","call","callbackId","Promise","resolve","Proxy","_","Set","keys","convertFileSrc","filePath","handleError","err","error","pluginMethodNoop","_target","reject","Exception","DEBUG","isLoggingEnabled","isNative","initCapacitorGlobal","WebPlugin","config","listeners","windowListeners","listenerFunc","push","windowListener","registered","addWindowListener","listener","removeWindowListener","forEach","hasListeners","length","registerWindowListener","windowEventName","pluginEventName","handler","event","msg","unavailable","Unavailable","index","indexOf","splice","handle","removeEventListener","encode","str","encodeURIComponent","replace","decodeURIComponent","escape","decode","CapacitorCookiesPluginWeb","cookies","cookie","cookieMap","split","key","trim","encodedKey","encodedValue","expires","path","domain","Date","toUTCString","clearCookies","CapacitorCookies","buildRequestInit","extra","output","assign","method","headers","type","originalKeys","map","k","toLocaleLowerCase","reduce","acc","normalizeHttpHeaders","body","includes","params","URLSearchParams","entries","form","FormData","append","Headers","delete","JSON","stringify","CapacitorHttpPluginWeb","requestInit","webFetchExtra","urlParams","shouldEncode","accumulator","entry","item","Array","isArray","slice","substr","buildUrlParams","shouldEncodeUrlParams","response","fetch","contentType","blob","responseType","ok","reader","FileReader","onload","base64String","result","onerror","readAsDataURL","readBlobAsBase64","json","text","status","request","CapacitorHttp","Device","DeviceWeb","identifier","getUid","navigator","userAgent","ua","uaFields","parseUa","model","operatingSystem","osVersion","manufacturer","vendor","isVirtual","webViewVersion","browserVersion","getBattery","battery","e","batteryLevel","level","isCharging","charging","language","toLowerCase","start","end","fields","substring","tmpFields","pop","oscpu","lastParts","test","MSStream","isSafari","ApplePaySession","isChrome","chrome","isFirefox","isEdge","isFirefoxIOS","isChromeIOS","isEdgeIOS","searchWord","words","word","version","reverse","join","localStorage","uid","getItem","uuid4","setItem","c","r","Math","random","Dialog","DialogWeb","alert","val","prompt","inputText","cancelled","confirm","Directory","Encoding","Filesystem","FilesystemWeb","posix","filter","newPosix","arguments","DB_VERSION","DB_NAME","_writeCmds","downloadFile","progress","getReader","bytes","chunks","contentLength","parseInt","done","read","allChunks","Uint8Array","position","chunk","Blob","buffer","undefined","blobUrl","URL","createObjectURL","tempAnchor","createElement","appendChild","href","download","click","revokeObjectURL","removeChild","_db","indexedDB","onupgradeneeded","doUpgrade","onsuccess","onblocked","static","db","target","oldVersion","objectStoreNames","contains","deleteObjectStore","createObjectStore","keyPath","createIndex","cmd","readFlag","initDb","conn","req","transaction","objectStore","indexName","getPath","directory","uriPath","cleanedUriPath","fsPath","clear","dbRequest","content","encoding","doRecursive","recursive","occupiedEntry","parentPath","lastIndexOf","subDirIndex","parentArgPath","mkdir","isBase64String","now","pathObj","folder","size","ctime","mtime","uri","btoa","atob","dbIndexRequest","IDBKeyRange","only","depth","match","parentEntry","fullPath","readDirResult","readdir","files","entryPath","stat","deleteFile","rmdir","all","subEntry","_copy","publicStorage","doRename","toDirectory","to","from","fromDirectory","fromPath","toPath","parent","children","pathsA","pathsB","every","isPathParent","toObj","toPathComponents","fromObj","updateTime","file","readFile","UTF8","writeResult","writeFile","contents","filename","_debug","Network","NetworkWeb","translatedConnection","connection","mozConnection","webkitConnection","effectiveType","handleOnline","connected","connectionType","handleOffline","onLine","Preferences","PreferencesWeb","group","applyPrefix","removeItem","rawKeys","prefix","migrated","existing","oldprefix","oldkey","currentValue","PushNotifications"],"sourceRoot":""}