@capacitor/core 7.0.0-alpha.1 → 7.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/capacitor.js +1 -1
- package/dist/capacitor.js.map +1 -1
- package/dist/index.cjs.js +6 -114
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.js +7 -110
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/types/definitions-internal.d.ts +0 -5
- package/types/definitions.d.ts +0 -20
- package/types/global.d.ts +0 -19
- package/types/index.d.ts +1 -4
- package/types/web-plugin.d.ts +0 -18
- package/types/legacy/legacy-definitions.d.ts +0 -37
- package/types/legacy/legacy-web-plugin-merge.d.ts +0 -3
- package/types/platforms.d.ts +0 -28
package/dist/capacitor.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/*! Capacitor: https://capacitorjs.com/ - MIT License */
|
|
2
|
-
var capacitorExports=function(e){"use strict";
|
|
2
|
+
var capacitorExports=function(e){"use strict";var t;e.ExceptionCode=void 0,(t=e.ExceptionCode||(e.ExceptionCode={})).Unimplemented="UNIMPLEMENTED",t.Unavailable="UNAVAILABLE";class n extends Error{constructor(e,t,n){super(e),this.message=e,this.code=t,this.data=n}}const s=t=>{const s=t.CapacitorCustomPlatform||null,r=t.Capacitor||{},i=r.Plugins=r.Plugins||{},o=()=>null!==s?s.name:(e=>{var t,n;return(null==e?void 0:e.androidBridge)?"android":(null===(n=null===(t=null==e?void 0:e.webkit)||void 0===t?void 0:t.messageHandlers)||void 0===n?void 0:n.bridge)?"ios":"web"})(t),a=e=>{var t;return null===(t=r.PluginHeaders)||void 0===t?void 0:t.find((t=>t.name===e))},c=new Map;return r.convertFileSrc||(r.convertFileSrc=e=>e),r.getPlatform=o,r.handleError=e=>t.console.error(e),r.isNativePlatform=()=>"web"!==o(),r.isPluginAvailable=e=>{const t=c.get(e);return!!(null==t?void 0:t.platforms.has(o()))||!!a(e)},r.registerPlugin=(t,d={})=>{const l=c.get(t);if(l)return console.warn(`Capacitor plugin "${t}" already registered. Cannot register plugins twice.`),l.proxy;const u=o(),p=a(t);let m;const h=i=>{let o;const a=(...a)=>{const c=(async()=>(!m&&u in d?m=m="function"==typeof d[u]?await d[u]():d[u]:null!==s&&!m&&"web"in d&&(m=m="function"==typeof d.web?await d.web():d.web),m))().then((s=>{const c=((s,i)=>{var o,a;if(!p){if(s)return null===(a=s[i])||void 0===a?void 0:a.bind(s);throw new n(`"${t}" plugin is not implemented on ${u}`,e.ExceptionCode.Unimplemented)}{const e=null==p?void 0:p.methods.find((e=>i===e.name));if(e)return"promise"===e.rtype?e=>r.nativePromise(t,i.toString(),e):(e,n)=>r.nativeCallback(t,i.toString(),e,n);if(s)return null===(o=s[i])||void 0===o?void 0:o.bind(s)}})(s,i);if(c){const e=c(...a);return o=null==e?void 0:e.remove,e}throw new n(`"${t}.${i}()" is not implemented on ${u}`,e.ExceptionCode.Unimplemented)}));return"addListener"===i&&(c.remove=async()=>o()),c};return a.toString=()=>`${i.toString()}() { [capacitor code] }`,Object.defineProperty(a,"name",{value:i,writable:!1,configurable:!1}),a},w=h("addListener"),g=h("removeListener"),f=(e,t)=>{const n=w({eventName:e},t),s=async()=>{const s=await n;g({eventName:e,callbackId:s},t)},r=new Promise((e=>n.then((()=>e({remove:s})))));return r.remove=async()=>{console.warn("Using addListener() without 'await' is deprecated."),await s()},r},b=new Proxy({},{get(e,t){switch(t){case"$$typeof":return;case"toJSON":return()=>({});case"addListener":return p?f:w;case"removeListener":return g;default:return h(t)}}});return i[t]=b,c.set(t,{name:t,proxy:b,platforms:new Set([...Object.keys(d),...p?[u]:[]])}),b},r.Exception=n,r.DEBUG=!!r.DEBUG,r.isLoggingEnabled=!!r.isLoggingEnabled,r},r=(e=>e.Capacitor=s(e))("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{}),i=r.registerPlugin;class o{constructor(){this.listeners={},this.retainedEventArguments={},this.windowListeners={}}addListener(e,t){let n=!1;this.listeners[e]||(this.listeners[e]=[],n=!0),this.listeners[e].push(t);const s=this.windowListeners[e];s&&!s.registered&&this.addWindowListener(s),n&&this.sendRetainedArgumentsForEvent(e);return Promise.resolve({remove:async()=>this.removeListener(e,t)})}async removeAllListeners(){this.listeners={};for(const e in this.windowListeners)this.removeWindowListener(this.windowListeners[e]);this.windowListeners={}}notifyListeners(e,t,n){const s=this.listeners[e];if(s)s.forEach((e=>e(t)));else if(n){let n=this.retainedEventArguments[e];n||(n=[]),n.push(t),this.retainedEventArguments[e]=n}}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(t="not implemented"){return new r.Exception(t,e.ExceptionCode.Unimplemented)}unavailable(t="not available"){return new r.Exception(t,e.ExceptionCode.Unavailable)}async removeListener(e,t){const n=this.listeners[e];if(!n)return;const s=n.indexOf(t);this.listeners[e].splice(s,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)}sendRetainedArgumentsForEvent(e){const t=this.retainedEventArguments[e];t&&(delete this.retainedEventArguments[e],t.forEach((t=>{this.notifyListeners(e,t)})))}}const a=i("WebView"),c=e=>encodeURIComponent(e).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape),d=e=>e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent);class l extends o{async getCookies(){const e=document.cookie,t={};return e.split(";").forEach((e=>{if(e.length<=0)return;let[n,s]=e.replace(/=/,"CAP_COOKIE").split("CAP_COOKIE");n=d(n).trim(),s=d(s).trim(),t[n]=s})),t}async setCookie(e){try{const t=c(e.key),n=c(e.value),s=`; expires=${(e.expires||"").replace("expires=","")}`,r=(e.path||"/").replace("path=",""),i=null!=e.url&&e.url.length>0?`domain=${e.url}`:"";document.cookie=`${t}=${n||""}${s}; path=${r}; ${i};`}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{const e=document.cookie.split(";")||[];for(const 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)}}}const u=i("CapacitorCookies",{web:()=>new l}),p=(e,t={})=>{const n=Object.assign({method:e.method||"GET",headers:e.headers},t),s=((e={})=>{const t=Object.keys(e);return Object.keys(e).map((e=>e.toLocaleLowerCase())).reduce(((n,s,r)=>(n[s]=e[t[r]],n)),{})})(e.headers)["content-type"]||"";if("string"==typeof e.data)n.body=e.data;else if(s.includes("application/x-www-form-urlencoded")){const t=new URLSearchParams;for(const[n,s]of Object.entries(e.data||{}))t.set(n,s);n.body=t.toString()}else if(s.includes("multipart/form-data")||e.data instanceof FormData){const t=new FormData;if(e.data instanceof FormData)e.data.forEach(((e,n)=>{t.append(n,e)}));else for(const n of Object.keys(e.data))t.append(n,e.data[n]);n.body=t;const s=new Headers(n.headers);s.delete("content-type"),n.headers=s}else(s.includes("application/json")||"object"==typeof e.data)&&(n.body=JSON.stringify(e.data));return n};class m extends o{async request(e){const t=p(e,e.webFetchExtra),n=((e,t=!0)=>e?Object.entries(e).reduce(((e,n)=>{const[s,r]=n;let i,o;return Array.isArray(r)?(o="",r.forEach((e=>{i=t?encodeURIComponent(e):e,o+=`${s}=${i}&`})),o.slice(0,-1)):(i=t?encodeURIComponent(r):r,o=`${s}=${i}`),`${e}&${o}`}),"").substr(1):null)(e.params,e.shouldEncodeUrlParams),s=n?`${e.url}?${n}`:e.url,r=await fetch(s,t),i=r.headers.get("content-type")||"";let o,a,{responseType:c="text"}=r.ok?e:{};switch(i.includes("application/json")&&(c="json"),c){case"arraybuffer":case"blob":a=await r.blob(),o=await(async e=>new Promise(((t,n)=>{const s=new FileReader;s.onload=()=>{const e=s.result;t(e.indexOf(",")>=0?e.split(",")[1]:e)},s.onerror=e=>n(e),s.readAsDataURL(e)})))(a);break;case"json":o=await r.json();break;default:o=await r.text()}const d={};return r.headers.forEach(((e,t)=>{d[t]=e})),{data:o,headers:d,status:r.status,url:r.url}}async get(e){return this.request(Object.assign(Object.assign({},e),{method:"GET"}))}async post(e){return this.request(Object.assign(Object.assign({},e),{method:"POST"}))}async put(e){return this.request(Object.assign(Object.assign({},e),{method:"PUT"}))}async patch(e){return this.request(Object.assign(Object.assign({},e),{method:"PATCH"}))}async delete(e){return this.request(Object.assign(Object.assign({},e),{method:"DELETE"}))}}const h=i("CapacitorHttp",{web:()=>new m});return e.Capacitor=r,e.CapacitorCookies=u,e.CapacitorException=n,e.CapacitorHttp=h,e.WebPlugin=o,e.WebView=a,e.buildRequestInit=p,e.registerPlugin=i,Object.defineProperty(e,"__esModule",{value:!0}),e}({});
|
|
3
3
|
//# sourceMappingURL=capacitor.js.map
|
package/dist/capacitor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capacitor.js","sources":["../build/platforms.js","../build/util.js","../build/runtime.js","../build/global.js","../build/web-plugin.js","../build/core-plugins.js","../build/legacy/legacy-web-plugin-merge.js"],"sourcesContent":["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 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 ? capCustomPlatform.name : 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) || 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 && !jsImplementation && '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([...Object.keys(jsImplementations), ...(pluginHeader ? [platform] : [])]),\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.retainedEventArguments = {};\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 let firstListener = false;\n const listeners = this.listeners[eventName];\n if (!listeners) {\n this.listeners[eventName] = [];\n firstListener = true;\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 if (firstListener) {\n this.sendRetainedArgumentsForEvent(eventName);\n }\n const remove = async () => this.removeListener(eventName, listenerFunc);\n const p = Promise.resolve({ remove });\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, retainUntilConsumed) {\n const listeners = this.listeners[eventName];\n if (!listeners) {\n if (retainUntilConsumed) {\n let args = this.retainedEventArguments[eventName];\n if (!args) {\n args = [];\n }\n args.push(data);\n this.retainedEventArguments[eventName] = args;\n }\n return;\n }\n 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,\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 sendRetainedArgumentsForEvent(eventName) {\n const args = this.retainedEventArguments[eventName];\n if (!args) {\n return;\n }\n delete this.retainedEventArguments[eventName];\n args.forEach((arg) => {\n this.notifyListeners(eventName, arg);\n });\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 ? `domain=${options.url}` : '';\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.replace(/^ +/, '').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 ? 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 */\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') || options.data instanceof FormData) {\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') || 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","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"],"names":["CapacitorPlatforms","win","defaultPlatformMap","Map","set","name","capPlatforms","currentPlatform","platforms","addPlatform","platform","setPlatform","has","get","createCapacitorPlatforms","initPlatforms","globalThis","self","window","global","ExceptionCode","exports","CapacitorException","Error","constructor","message","code","data","super","this","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","async","loadPluginImplementation","then","impl","fn","bind","Unimplemented","methodHeader","methods","m","rtype","options","nativePromise","toString","callback","nativeCallback","createPluginMethod","Object","defineProperty","value","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","retainedEventArguments","windowListeners","listenerFunc","firstListener","push","windowListener","registered","addWindowListener","sendRetainedArgumentsForEvent","removeAllListeners","listener","removeWindowListener","notifyListeners","retainUntilConsumed","forEach","hasListeners","length","registerWindowListener","windowEventName","pluginEventName","handler","event","unimplemented","msg","unavailable","Unavailable","index","indexOf","splice","handle","addEventListener","removeEventListener","arg","WebView","encode","str","encodeURIComponent","replace","decodeURIComponent","escape","decode","CapacitorCookiesPluginWeb","getCookies","cookies","document","cookie","cookieMap","split","key","trim","setCookie","encodedKey","encodedValue","expires","path","domain","url","deleteCookie","clearCookies","Date","toUTCString","clearAllCookies","CapacitorCookies","web","buildRequestInit","extra","output","assign","method","headers","type","originalKeys","map","k","toLocaleLowerCase","reduce","acc","normalizeHttpHeaders","body","includes","params","URLSearchParams","entries","FormData","form","append","Headers","delete","JSON","stringify","CapacitorHttpPluginWeb","request","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","post","put","patch","CapacitorHttp","webPlugin","legacyRegisterWebPlugin"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"capacitor.js","sources":["../build/util.js","../build/runtime.js","../build/global.js","../build/web-plugin.js","../build/core-plugins.js"],"sourcesContent":["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 const capCustomPlatform = win.CapacitorCustomPlatform || null;\n const cap = win.Capacitor || {};\n const Plugins = (cap.Plugins = cap.Plugins || {});\n const getPlatform = () => {\n return capCustomPlatform !== null ? capCustomPlatform.name : getPlatformId(win);\n };\n const isNativePlatform = () => getPlatform() !== 'web';\n const isPluginAvailable = (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 getPluginHeader = (pluginName) => { var _a; return (_a = cap.PluginHeaders) === null || _a === void 0 ? void 0 : _a.find((h) => h.name === pluginName); };\n const handleError = (err) => win.console.error(err);\n const registeredPlugins = new Map();\n const registerPlugin = (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 && !jsImplementation && '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([...Object.keys(jsImplementations), ...(pluginHeader ? [platform] : [])]),\n });\n return proxy;\n };\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.registerPlugin = registerPlugin;\n cap.Exception = CapacitorException;\n cap.DEBUG = !!cap.DEBUG;\n cap.isLoggingEnabled = !!cap.isLoggingEnabled;\n return cap;\n};\nexport const initCapacitorGlobal = (win) => (win.Capacitor = createCapacitor(win));\n//# sourceMappingURL=runtime.js.map","import { 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//# 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() {\n this.listeners = {};\n this.retainedEventArguments = {};\n this.windowListeners = {};\n }\n addListener(eventName, listenerFunc) {\n let firstListener = false;\n const listeners = this.listeners[eventName];\n if (!listeners) {\n this.listeners[eventName] = [];\n firstListener = true;\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 if (firstListener) {\n this.sendRetainedArgumentsForEvent(eventName);\n }\n const remove = async () => this.removeListener(eventName, listenerFunc);\n const p = Promise.resolve({ remove });\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, retainUntilConsumed) {\n const listeners = this.listeners[eventName];\n if (!listeners) {\n if (retainUntilConsumed) {\n let args = this.retainedEventArguments[eventName];\n if (!args) {\n args = [];\n }\n args.push(data);\n this.retainedEventArguments[eventName] = args;\n }\n return;\n }\n 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,\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 sendRetainedArgumentsForEvent(eventName) {\n const args = this.retainedEventArguments[eventName];\n if (!args) {\n return;\n }\n delete this.retainedEventArguments[eventName];\n args.forEach((arg) => {\n this.notifyListeners(eventName, arg);\n });\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 ? `domain=${options.url}` : '';\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.replace(/^ +/, '').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 ? 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 */\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') || options.data instanceof FormData) {\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') || 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"],"names":["ExceptionCode","exports","CapacitorException","Error","constructor","message","code","data","super","this","createCapacitor","win","capCustomPlatform","CapacitorCustomPlatform","cap","Capacitor","Plugins","getPlatform","name","_a","_b","androidBridge","webkit","messageHandlers","bridge","getPlatformId","getPluginHeader","pluginName","PluginHeaders","find","h","registeredPlugins","Map","convertFileSrc","filePath","handleError","err","console","error","isNativePlatform","isPluginAvailable","plugin","get","platforms","has","registerPlugin","jsImplementations","registeredPlugin","warn","proxy","platform","pluginHeader","jsImplementation","createPluginMethodWrapper","prop","remove","wrapper","args","p","async","loadPluginImplementation","then","impl","fn","bind","Unimplemented","methodHeader","methods","m","rtype","options","nativePromise","toString","callback","nativeCallback","createPluginMethod","Object","defineProperty","value","writable","configurable","addListener","removeListener","addListenerNative","eventName","call","callbackId","Promise","resolve","Proxy","_","set","Set","keys","Exception","DEBUG","isLoggingEnabled","initCapacitorGlobal","globalThis","self","window","global","WebPlugin","listeners","retainedEventArguments","windowListeners","listenerFunc","firstListener","push","windowListener","registered","addWindowListener","sendRetainedArgumentsForEvent","removeAllListeners","listener","removeWindowListener","notifyListeners","retainUntilConsumed","forEach","hasListeners","length","registerWindowListener","windowEventName","pluginEventName","handler","event","unimplemented","msg","unavailable","Unavailable","index","indexOf","splice","handle","addEventListener","removeEventListener","arg","WebView","encode","str","encodeURIComponent","replace","decodeURIComponent","escape","decode","CapacitorCookiesPluginWeb","getCookies","cookies","document","cookie","cookieMap","split","key","trim","setCookie","encodedKey","encodedValue","expires","path","domain","url","reject","deleteCookie","clearCookies","Date","toUTCString","clearAllCookies","CapacitorCookies","web","buildRequestInit","extra","output","assign","method","headers","type","originalKeys","map","k","toLocaleLowerCase","reduce","acc","normalizeHttpHeaders","body","includes","params","URLSearchParams","entries","FormData","form","append","Headers","delete","JSON","stringify","CapacitorHttpPluginWeb","request","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","post","put","patch","CapacitorHttp"],"mappings":"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"}
|
package/dist/index.cjs.js
CHANGED
|
@@ -3,69 +3,6 @@
|
|
|
3
3
|
|
|
4
4
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
5
|
|
|
6
|
-
const createCapacitorPlatforms = (win) => {
|
|
7
|
-
const defaultPlatformMap = new Map();
|
|
8
|
-
defaultPlatformMap.set('web', { name: 'web' });
|
|
9
|
-
const capPlatforms = win.CapacitorPlatforms || {
|
|
10
|
-
currentPlatform: { name: 'web' },
|
|
11
|
-
platforms: defaultPlatformMap,
|
|
12
|
-
};
|
|
13
|
-
const addPlatform = (name, platform) => {
|
|
14
|
-
capPlatforms.platforms.set(name, platform);
|
|
15
|
-
};
|
|
16
|
-
const setPlatform = (name) => {
|
|
17
|
-
if (capPlatforms.platforms.has(name)) {
|
|
18
|
-
capPlatforms.currentPlatform = capPlatforms.platforms.get(name);
|
|
19
|
-
}
|
|
20
|
-
};
|
|
21
|
-
capPlatforms.addPlatform = addPlatform;
|
|
22
|
-
capPlatforms.setPlatform = setPlatform;
|
|
23
|
-
return capPlatforms;
|
|
24
|
-
};
|
|
25
|
-
const initPlatforms = (win) => (win.CapacitorPlatforms = createCapacitorPlatforms(win));
|
|
26
|
-
/**
|
|
27
|
-
* @deprecated Set `CapacitorCustomPlatform` on the window object prior to runtime executing in the web app instead
|
|
28
|
-
*/
|
|
29
|
-
const CapacitorPlatforms = /*#__PURE__*/ initPlatforms((typeof globalThis !== 'undefined'
|
|
30
|
-
? globalThis
|
|
31
|
-
: typeof self !== 'undefined'
|
|
32
|
-
? self
|
|
33
|
-
: typeof window !== 'undefined'
|
|
34
|
-
? window
|
|
35
|
-
: typeof global !== 'undefined'
|
|
36
|
-
? global
|
|
37
|
-
: {}));
|
|
38
|
-
/**
|
|
39
|
-
* @deprecated Set `CapacitorCustomPlatform` on the window object prior to runtime executing in the web app instead
|
|
40
|
-
*/
|
|
41
|
-
const addPlatform = CapacitorPlatforms.addPlatform;
|
|
42
|
-
/**
|
|
43
|
-
* @deprecated Set `CapacitorCustomPlatform` on the window object prior to runtime executing in the web app instead
|
|
44
|
-
*/
|
|
45
|
-
const setPlatform = CapacitorPlatforms.setPlatform;
|
|
46
|
-
|
|
47
|
-
const legacyRegisterWebPlugin = (cap, webPlugin) => {
|
|
48
|
-
var _a;
|
|
49
|
-
const config = webPlugin.config;
|
|
50
|
-
const Plugins = cap.Plugins;
|
|
51
|
-
if (!(config === null || config === void 0 ? void 0 : config.name)) {
|
|
52
|
-
// TODO: add link to upgrade guide
|
|
53
|
-
throw new Error(`Capacitor WebPlugin is using the deprecated "registerWebPlugin()" function, but without the config. Please use "registerPlugin()" instead to register this web plugin."`);
|
|
54
|
-
}
|
|
55
|
-
// TODO: add link to upgrade guide
|
|
56
|
-
console.warn(`Capacitor plugin "${config.name}" is using the deprecated "registerWebPlugin()" function`);
|
|
57
|
-
if (!Plugins[config.name] || ((_a = config === null || config === void 0 ? void 0 : config.platforms) === null || _a === void 0 ? void 0 : _a.includes(cap.getPlatform()))) {
|
|
58
|
-
// Add the web plugin into the plugins registry if there already isn't
|
|
59
|
-
// an existing one. If it doesn't already exist, that means
|
|
60
|
-
// there's no existing native implementation for it.
|
|
61
|
-
// - OR -
|
|
62
|
-
// If we already have a plugin registered (meaning it was defined in the native layer),
|
|
63
|
-
// then we should only overwrite it if the corresponding web plugin activates on
|
|
64
|
-
// a certain platform. For example: Geolocation uses the WebPlugin on Android but not iOS
|
|
65
|
-
Plugins[config.name] = webPlugin;
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
|
|
69
6
|
exports.ExceptionCode = void 0;
|
|
70
7
|
(function (ExceptionCode) {
|
|
71
8
|
/**
|
|
@@ -106,21 +43,14 @@ const getPlatformId = (win) => {
|
|
|
106
43
|
};
|
|
107
44
|
|
|
108
45
|
const createCapacitor = (win) => {
|
|
109
|
-
var _a, _b, _c, _d, _e;
|
|
110
46
|
const capCustomPlatform = win.CapacitorCustomPlatform || null;
|
|
111
47
|
const cap = win.Capacitor || {};
|
|
112
48
|
const Plugins = (cap.Plugins = cap.Plugins || {});
|
|
113
|
-
|
|
114
|
-
* @deprecated Use `capCustomPlatform` instead, default functions like registerPlugin will function with the new object.
|
|
115
|
-
*/
|
|
116
|
-
const capPlatforms = win.CapacitorPlatforms;
|
|
117
|
-
const defaultGetPlatform = () => {
|
|
49
|
+
const getPlatform = () => {
|
|
118
50
|
return capCustomPlatform !== null ? capCustomPlatform.name : getPlatformId(win);
|
|
119
51
|
};
|
|
120
|
-
const
|
|
121
|
-
const
|
|
122
|
-
const isNativePlatform = ((_b = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _b === void 0 ? void 0 : _b.isNativePlatform) || defaultIsNativePlatform;
|
|
123
|
-
const defaultIsPluginAvailable = (pluginName) => {
|
|
52
|
+
const isNativePlatform = () => getPlatform() !== 'web';
|
|
53
|
+
const isPluginAvailable = (pluginName) => {
|
|
124
54
|
const plugin = registeredPlugins.get(pluginName);
|
|
125
55
|
if (plugin === null || plugin === void 0 ? void 0 : plugin.platforms.has(getPlatform())) {
|
|
126
56
|
// JS implementation available for the current platform.
|
|
@@ -132,15 +62,10 @@ const createCapacitor = (win) => {
|
|
|
132
62
|
}
|
|
133
63
|
return false;
|
|
134
64
|
};
|
|
135
|
-
const
|
|
136
|
-
const defaultGetPluginHeader = (pluginName) => { var _a; return (_a = cap.PluginHeaders) === null || _a === void 0 ? void 0 : _a.find((h) => h.name === pluginName); };
|
|
137
|
-
const getPluginHeader = ((_d = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _d === void 0 ? void 0 : _d.getPluginHeader) || defaultGetPluginHeader;
|
|
65
|
+
const getPluginHeader = (pluginName) => { var _a; return (_a = cap.PluginHeaders) === null || _a === void 0 ? void 0 : _a.find((h) => h.name === pluginName); };
|
|
138
66
|
const handleError = (err) => win.console.error(err);
|
|
139
|
-
const pluginMethodNoop = (_target, prop, pluginName) => {
|
|
140
|
-
return Promise.reject(`${pluginName} does not have an implementation of "${prop}".`);
|
|
141
|
-
};
|
|
142
67
|
const registeredPlugins = new Map();
|
|
143
|
-
const
|
|
68
|
+
const registerPlugin = (pluginName, jsImplementations = {}) => {
|
|
144
69
|
const registeredPlugin = registeredPlugins.get(pluginName);
|
|
145
70
|
if (registeredPlugin) {
|
|
146
71
|
console.warn(`Capacitor plugin "${pluginName}" already registered. Cannot register plugins twice.`);
|
|
@@ -258,7 +183,6 @@ const createCapacitor = (win) => {
|
|
|
258
183
|
});
|
|
259
184
|
return proxy;
|
|
260
185
|
};
|
|
261
|
-
const registerPlugin = ((_e = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _e === void 0 ? void 0 : _e.registerPlugin) || defaultRegisterPlugin;
|
|
262
186
|
// Add in convertFileSrc for web, it will already be available in native context
|
|
263
187
|
if (!cap.convertFileSrc) {
|
|
264
188
|
cap.convertFileSrc = (filePath) => filePath;
|
|
@@ -267,14 +191,10 @@ const createCapacitor = (win) => {
|
|
|
267
191
|
cap.handleError = handleError;
|
|
268
192
|
cap.isNativePlatform = isNativePlatform;
|
|
269
193
|
cap.isPluginAvailable = isPluginAvailable;
|
|
270
|
-
cap.pluginMethodNoop = pluginMethodNoop;
|
|
271
194
|
cap.registerPlugin = registerPlugin;
|
|
272
195
|
cap.Exception = CapacitorException;
|
|
273
196
|
cap.DEBUG = !!cap.DEBUG;
|
|
274
197
|
cap.isLoggingEnabled = !!cap.isLoggingEnabled;
|
|
275
|
-
// Deprecated props
|
|
276
|
-
cap.platform = cap.getPlatform();
|
|
277
|
-
cap.isNative = cap.isNativePlatform();
|
|
278
198
|
return cap;
|
|
279
199
|
};
|
|
280
200
|
const initCapacitorGlobal = (win) => (win.Capacitor = createCapacitor(win));
|
|
@@ -289,38 +209,15 @@ const Capacitor = /*#__PURE__*/ initCapacitorGlobal(typeof globalThis !== 'undef
|
|
|
289
209
|
? global
|
|
290
210
|
: {});
|
|
291
211
|
const registerPlugin = Capacitor.registerPlugin;
|
|
292
|
-
/**
|
|
293
|
-
* @deprecated Provided for backwards compatibility for Capacitor v2 plugins.
|
|
294
|
-
* Capacitor v3 plugins should import the plugin directly. This "Plugins"
|
|
295
|
-
* export is deprecated in v3, and will be removed in v4.
|
|
296
|
-
*/
|
|
297
|
-
const Plugins = Capacitor.Plugins;
|
|
298
|
-
/**
|
|
299
|
-
* Provided for backwards compatibility. Use the registerPlugin() API
|
|
300
|
-
* instead, and provide the web plugin as the "web" implmenetation.
|
|
301
|
-
* For example
|
|
302
|
-
*
|
|
303
|
-
* export const Example = registerPlugin('Example', {
|
|
304
|
-
* web: () => import('./web').then(m => new m.Example())
|
|
305
|
-
* })
|
|
306
|
-
*
|
|
307
|
-
* @deprecated Deprecated in v3, will be removed from v4.
|
|
308
|
-
*/
|
|
309
|
-
const registerWebPlugin = (plugin) => legacyRegisterWebPlugin(Capacitor, plugin);
|
|
310
212
|
|
|
311
213
|
/**
|
|
312
214
|
* Base class web plugins should extend.
|
|
313
215
|
*/
|
|
314
216
|
class WebPlugin {
|
|
315
|
-
constructor(
|
|
217
|
+
constructor() {
|
|
316
218
|
this.listeners = {};
|
|
317
219
|
this.retainedEventArguments = {};
|
|
318
220
|
this.windowListeners = {};
|
|
319
|
-
if (config) {
|
|
320
|
-
// TODO: add link to upgrade guide
|
|
321
|
-
console.warn(`Capacitor WebPlugin "${config.name}" config object was deprecated in v3 and will be removed in v4.`);
|
|
322
|
-
this.config = config;
|
|
323
|
-
}
|
|
324
221
|
}
|
|
325
222
|
addListener(eventName, listenerFunc) {
|
|
326
223
|
let firstListener = false;
|
|
@@ -689,13 +586,8 @@ exports.Capacitor = Capacitor;
|
|
|
689
586
|
exports.CapacitorCookies = CapacitorCookies;
|
|
690
587
|
exports.CapacitorException = CapacitorException;
|
|
691
588
|
exports.CapacitorHttp = CapacitorHttp;
|
|
692
|
-
exports.CapacitorPlatforms = CapacitorPlatforms;
|
|
693
|
-
exports.Plugins = Plugins;
|
|
694
589
|
exports.WebPlugin = WebPlugin;
|
|
695
590
|
exports.WebView = WebView;
|
|
696
|
-
exports.addPlatform = addPlatform;
|
|
697
591
|
exports.buildRequestInit = buildRequestInit;
|
|
698
592
|
exports.registerPlugin = registerPlugin;
|
|
699
|
-
exports.registerWebPlugin = registerWebPlugin;
|
|
700
|
-
exports.setPlatform = setPlatform;
|
|
701
593
|
//# sourceMappingURL=index.cjs.js.map
|