UNPKG

26.5 kBSource Map (JSON)View Raw
1{"version":3,"file":"capacitor.js","sources":["../build/platforms.js","../build/util.js","../build/runtime.js","../build/global.js","../build/core-plugins.js","../build/web-plugin.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) {\n super(message);\n this.message = message;\n this.code = code;\n }\n}\nexport const getPlatformId = (win) => {\n var _a, _b;\n if (win === null || win === void 0 ? void 0 : win.androidBridge) {\n return 'android';\n }\n else if ((_b = (_a = win === null || win === void 0 ? void 0 : win.webkit) === null || _a === void 0 ? void 0 : _a.messageHandlers) === null || _b === void 0 ? void 0 : _b.bridge) {\n return 'ios';\n }\n else {\n return 'web';\n }\n};\n//# sourceMappingURL=util.js.map","import { CapacitorException, getPlatformId, ExceptionCode } from './util';\nexport const createCapacitor = (win) => {\n var _a, _b, _c, _d, _e;\n const capCustomPlatform = win.CapacitorCustomPlatform || null;\n const cap = win.Capacitor || {};\n const Plugins = (cap.Plugins = cap.Plugins || {});\n /**\n * @deprecated Use `capCustomPlatform` instead, default functions like registerPlugin will function with the new object.\n */\n const capPlatforms = win.CapacitorPlatforms;\n const defaultGetPlatform = () => {\n return capCustomPlatform !== null\n ? capCustomPlatform.name\n : getPlatformId(win);\n };\n const getPlatform = ((_a = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _a === void 0 ? void 0 : _a.getPlatform) || defaultGetPlatform;\n const defaultIsNativePlatform = () => getPlatform() !== 'web';\n const isNativePlatform = ((_b = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _b === void 0 ? void 0 : _b.isNativePlatform) || defaultIsNativePlatform;\n const defaultIsPluginAvailable = (pluginName) => {\n const plugin = registeredPlugins.get(pluginName);\n if (plugin === null || plugin === void 0 ? void 0 : plugin.platforms.has(getPlatform())) {\n // JS implementation available for the current platform.\n return true;\n }\n if (getPluginHeader(pluginName)) {\n // Native implementation available.\n return true;\n }\n return false;\n };\n const isPluginAvailable = ((_c = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _c === void 0 ? void 0 : _c.isPluginAvailable) ||\n defaultIsPluginAvailable;\n const defaultGetPluginHeader = (pluginName) => { var _a; return (_a = cap.PluginHeaders) === null || _a === void 0 ? void 0 : _a.find(h => h.name === pluginName); };\n const getPluginHeader = ((_d = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _d === void 0 ? void 0 : _d.getPluginHeader) || defaultGetPluginHeader;\n const handleError = (err) => win.console.error(err);\n const pluginMethodNoop = (_target, prop, pluginName) => {\n return Promise.reject(`${pluginName} does not have an implementation of \"${prop}\".`);\n };\n const registeredPlugins = new Map();\n const defaultRegisterPlugin = (pluginName, jsImplementations = {}) => {\n const registeredPlugin = registeredPlugins.get(pluginName);\n if (registeredPlugin) {\n console.warn(`Capacitor plugin \"${pluginName}\" already registered. Cannot register plugins twice.`);\n return registeredPlugin.proxy;\n }\n const platform = getPlatform();\n const pluginHeader = getPluginHeader(pluginName);\n let jsImplementation;\n const loadPluginImplementation = async () => {\n if (!jsImplementation && platform in jsImplementations) {\n jsImplementation =\n typeof jsImplementations[platform] === 'function'\n ? (jsImplementation = await jsImplementations[platform]())\n : (jsImplementation = jsImplementations[platform]);\n }\n else if (capCustomPlatform !== null &&\n !jsImplementation &&\n 'web' in jsImplementations) {\n jsImplementation =\n typeof jsImplementations['web'] === 'function'\n ? (jsImplementation = await jsImplementations['web']())\n : (jsImplementation = jsImplementations['web']);\n }\n return jsImplementation;\n };\n const createPluginMethod = (impl, prop) => {\n var _a, _b;\n if (pluginHeader) {\n const methodHeader = pluginHeader === null || pluginHeader === void 0 ? void 0 : pluginHeader.methods.find(m => prop === m.name);\n if (methodHeader) {\n if (methodHeader.rtype === 'promise') {\n return (options) => cap.nativePromise(pluginName, prop.toString(), options);\n }\n else {\n return (options, callback) => cap.nativeCallback(pluginName, prop.toString(), options, callback);\n }\n }\n else if (impl) {\n return (_a = impl[prop]) === null || _a === void 0 ? void 0 : _a.bind(impl);\n }\n }\n else if (impl) {\n return (_b = impl[prop]) === null || _b === void 0 ? void 0 : _b.bind(impl);\n }\n else {\n throw new CapacitorException(`\"${pluginName}\" plugin is not implemented on ${platform}`, ExceptionCode.Unimplemented);\n }\n };\n const createPluginMethodWrapper = (prop) => {\n let remove;\n const wrapper = (...args) => {\n const p = loadPluginImplementation().then(impl => {\n const fn = createPluginMethod(impl, prop);\n if (fn) {\n const p = fn(...args);\n remove = p === null || p === void 0 ? void 0 : p.remove;\n return p;\n }\n else {\n throw new CapacitorException(`\"${pluginName}.${prop}()\" is not implemented on ${platform}`, ExceptionCode.Unimplemented);\n }\n });\n if (prop === 'addListener') {\n p.remove = async () => remove();\n }\n return p;\n };\n // Some flair ✨\n wrapper.toString = () => `${prop.toString()}() { [capacitor code] }`;\n Object.defineProperty(wrapper, 'name', {\n value: prop,\n writable: false,\n configurable: false,\n });\n return wrapper;\n };\n const addListener = createPluginMethodWrapper('addListener');\n const removeListener = createPluginMethodWrapper('removeListener');\n const addListenerNative = (eventName, callback) => {\n const call = addListener({ eventName }, callback);\n const remove = async () => {\n const callbackId = await call;\n removeListener({\n eventName,\n callbackId,\n }, callback);\n };\n const p = new Promise(resolve => call.then(() => resolve({ remove })));\n p.remove = async () => {\n console.warn(`Using addListener() without 'await' is deprecated.`);\n await remove();\n };\n return p;\n };\n const proxy = new Proxy({}, {\n get(_, prop) {\n switch (prop) {\n // https://github.com/facebook/react/issues/20030\n case '$$typeof':\n return undefined;\n case 'toJSON':\n return () => ({});\n case 'addListener':\n return pluginHeader ? addListenerNative : addListener;\n case 'removeListener':\n return removeListener;\n default:\n return createPluginMethodWrapper(prop);\n }\n },\n });\n Plugins[pluginName] = proxy;\n registeredPlugins.set(pluginName, {\n name: pluginName,\n proxy,\n platforms: new Set([\n ...Object.keys(jsImplementations),\n ...(pluginHeader ? [platform] : []),\n ]),\n });\n return proxy;\n };\n const registerPlugin = ((_e = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _e === void 0 ? void 0 : _e.registerPlugin) || defaultRegisterPlugin;\n // Add in convertFileSrc for web, it will already be available in native context\n if (!cap.convertFileSrc) {\n cap.convertFileSrc = filePath => filePath;\n }\n cap.getPlatform = getPlatform;\n cap.handleError = handleError;\n cap.isNativePlatform = isNativePlatform;\n cap.isPluginAvailable = isPluginAvailable;\n cap.pluginMethodNoop = pluginMethodNoop;\n cap.registerPlugin = registerPlugin;\n cap.Exception = CapacitorException;\n cap.DEBUG = !!cap.DEBUG;\n cap.isLoggingEnabled = !!cap.isLoggingEnabled;\n // Deprecated props\n cap.platform = cap.getPlatform();\n cap.isNative = cap.isNativePlatform();\n return cap;\n};\nexport const initCapacitorGlobal = (win) => (win.Capacitor = createCapacitor(win));\n//# sourceMappingURL=runtime.js.map","import { legacyRegisterWebPlugin } from './legacy/legacy-web-plugin-merge';\nimport { initCapacitorGlobal } from './runtime';\nexport const Capacitor = /*#__PURE__*/ initCapacitorGlobal(typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {});\nexport const registerPlugin = Capacitor.registerPlugin;\n/**\n * @deprecated Provided for backwards compatibility for Capacitor v2 plugins.\n * Capacitor v3 plugins should import the plugin directly. This \"Plugins\"\n * export is deprecated in v3, and will be removed in v4.\n */\nexport const Plugins = Capacitor.Plugins;\n/**\n * Provided for backwards compatibility. Use the registerPlugin() API\n * instead, and provide the web plugin as the \"web\" implmenetation.\n * For example\n *\n * export const Example = registerPlugin('Example', {\n * web: () => import('./web').then(m => new m.Example())\n * })\n *\n * @deprecated Deprecated in v3, will be removed from v4.\n */\nexport const registerWebPlugin = (plugin) => legacyRegisterWebPlugin(Capacitor, plugin);\n//# sourceMappingURL=global.js.map","import { registerPlugin } from './global';\nexport const WebView = /*#__PURE__*/ registerPlugin('WebView');\n//# sourceMappingURL=core-plugins.js.map","import { Capacitor } from './global';\nimport { ExceptionCode } from './util';\n/**\n * Base class web plugins should extend.\n */\nexport class WebPlugin {\n constructor(config) {\n this.listeners = {};\n this.windowListeners = {};\n if (config) {\n // TODO: add link to upgrade guide\n console.warn(`Capacitor WebPlugin \"${config.name}\" config object was deprecated in v3 and will be removed in v4.`);\n this.config = config;\n }\n }\n addListener(eventName, listenerFunc) {\n const listeners = this.listeners[eventName];\n if (!listeners) {\n this.listeners[eventName] = [];\n }\n this.listeners[eventName].push(listenerFunc);\n // If we haven't added a window listener for this event and it requires one,\n // go ahead and add it\n const windowListener = this.windowListeners[eventName];\n if (windowListener && !windowListener.registered) {\n this.addWindowListener(windowListener);\n }\n const remove = async () => this.removeListener(eventName, listenerFunc);\n const p = Promise.resolve({ remove });\n Object.defineProperty(p, 'remove', {\n value: async () => {\n console.warn(`Using addListener() without 'await' is deprecated.`);\n await remove();\n },\n });\n return p;\n }\n async removeAllListeners() {\n this.listeners = {};\n for (const listener in this.windowListeners) {\n this.removeWindowListener(this.windowListeners[listener]);\n }\n this.windowListeners = {};\n }\n notifyListeners(eventName, data) {\n const listeners = this.listeners[eventName];\n if (listeners) {\n listeners.forEach(listener => listener(data));\n }\n }\n hasListeners(eventName) {\n return !!this.listeners[eventName].length;\n }\n registerWindowListener(windowEventName, pluginEventName) {\n this.windowListeners[pluginEventName] = {\n registered: false,\n windowEventName,\n pluginEventName,\n handler: event => {\n this.notifyListeners(pluginEventName, event);\n },\n };\n }\n unimplemented(msg = 'not implemented') {\n return new Capacitor.Exception(msg, ExceptionCode.Unimplemented);\n }\n unavailable(msg = 'not available') {\n return new Capacitor.Exception(msg, ExceptionCode.Unavailable);\n }\n async removeListener(eventName, listenerFunc) {\n const listeners = this.listeners[eventName];\n if (!listeners) {\n return;\n }\n const index = listeners.indexOf(listenerFunc);\n this.listeners[eventName].splice(index, 1);\n // If there are no more listeners for this type of event,\n // remove the window listener\n if (!this.listeners[eventName].length) {\n this.removeWindowListener(this.windowListeners[eventName]);\n }\n }\n addWindowListener(handle) {\n window.addEventListener(handle.windowEventName, handle.handler);\n handle.registered = true;\n }\n removeWindowListener(handle) {\n if (!handle) {\n return;\n }\n window.removeEventListener(handle.windowEventName, handle.handler);\n handle.registered = false;\n }\n}\n//# sourceMappingURL=web-plugin.js.map","export const legacyRegisterWebPlugin = (cap, webPlugin) => {\n var _a;\n const config = webPlugin.config;\n const Plugins = cap.Plugins;\n if (!config || !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","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","WebView","config","listeners","windowListeners","listenerFunc","push","windowListener","registered","addWindowListener","listener","removeWindowListener","notifyListeners","data","forEach","hasListeners","length","registerWindowListener","windowEventName","pluginEventName","handler","event","unimplemented","msg","unavailable","Unavailable","index","indexOf","splice","handle","addEventListener","removeEventListener","webPlugin","includes","legacyRegisterWebPlugin"],"mappings":"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"}
\No newline at end of file