forked from capacitor-community/http
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathplugin.js.map
1 lines (1 loc) · 29.1 KB
/
plugin.js.map
1
{"version":3,"file":"plugin.js","sources":["esm/index.js","esm/utils.js","esm/cookie.js","esm/request.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\r\nconst Http = registerPlugin('Http', {\r\n web: () => import('./web').then(m => new m.HttpWeb()),\r\n electron: () => import('./web').then(m => new m.HttpWeb()),\r\n});\r\nexport * from './definitions';\r\nexport { Http };\r\n//# sourceMappingURL=index.js.map","/**\r\n * Read in a Blob value and return it as a base64 string\r\n * @param blob The blob value to convert to a base64 string\r\n */\r\nexport const readBlobAsBase64 = async (blob) => new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n const base64String = reader.result;\r\n const base64StringWithoutTags = base64String.substr(base64String.indexOf(',') + 1); // remove prefix \"data:application/pdf;base64,\"\r\n resolve(base64StringWithoutTags);\r\n };\r\n reader.onerror = (error) => reject(error);\r\n reader.readAsDataURL(blob);\r\n});\r\n/**\r\n * Safely web encode a string value (inspired by js-cookie)\r\n * @param str The string value to encode\r\n */\r\nexport const encode = (str) => encodeURIComponent(str)\r\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\r\n .replace(/[()]/g, escape);\r\n/**\r\n * Safely web decode a string value (inspired by js-cookie)\r\n * @param str The string value to decode\r\n */\r\nexport const decode = (str) => str.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent);\r\n//# sourceMappingURL=utils.js.map","import { encode, decode } from './utils';\r\n/**\r\n * Set a cookie\r\n * @param key The key to set\r\n * @param value The value to set\r\n * @param options Optional additional parameters\r\n */\r\nexport const setCookie = (key, value, options = {}) => {\r\n // Safely Encoded Key/Value\r\n const encodedKey = encode(key);\r\n const encodedValue = encode(value);\r\n // Clean & sanitize options\r\n const expires = `; expires=${(options.expires || '').replace('expires=', '')}`; // Default is \"; expires=\"\r\n const path = (options.path || '/').replace('path=', ''); // Default is \"path=/\"\r\n document.cookie = `${encodedKey}=${encodedValue || ''}${expires}; path=${path}`;\r\n};\r\n/**\r\n * Gets all HttpCookies\r\n */\r\nexport const getCookies = () => {\r\n const output = [];\r\n const map = {};\r\n if (!document.cookie) {\r\n return output;\r\n }\r\n const cookies = document.cookie.split(';') || [];\r\n for (const cookie of cookies) {\r\n // Replace first \"=\" with CAP_COOKIE to prevent splitting on additional \"=\"\r\n let [k, v] = cookie.replace(/=/, 'CAP_COOKIE').split('CAP_COOKIE');\r\n k = decode(k).trim();\r\n v = decode(v).trim();\r\n map[k] = v;\r\n }\r\n const entries = Object.entries(map);\r\n for (const [key, value] of entries) {\r\n output.push({\r\n key,\r\n value,\r\n });\r\n }\r\n return output;\r\n};\r\n/**\r\n * Gets a single HttpCookie given a key\r\n */\r\nexport const getCookie = (key) => {\r\n const cookies = getCookies();\r\n for (const cookie of cookies) {\r\n if (cookie.key === key) {\r\n return cookie;\r\n }\r\n }\r\n return {\r\n key,\r\n value: '',\r\n };\r\n};\r\n/**\r\n * Deletes a cookie given a key\r\n * @param key The key of the cookie to delete\r\n */\r\nexport const deleteCookie = (key) => {\r\n document.cookie = `${key}=; Max-Age=0`;\r\n};\r\n/**\r\n * Clears out cookies by setting them to expire immediately\r\n */\r\nexport const clearCookies = () => {\r\n const cookies = document.cookie.split(';') || [];\r\n for (const cookie of cookies) {\r\n document.cookie = cookie\r\n .replace(/^ +/, '')\r\n .replace(/=.*/, `=;expires=${new Date().toUTCString()};path=/`);\r\n }\r\n};\r\n//# sourceMappingURL=cookie.js.map","import { readBlobAsBase64 } from './utils';\r\n/**\r\n * Normalize an HttpHeaders map by lowercasing all of the values\r\n * @param headers The HttpHeaders object to normalize\r\n */\r\nconst normalizeHttpHeaders = (headers = {}) => {\r\n const originalKeys = Object.keys(headers);\r\n const loweredKeys = Object.keys(headers).map(k => k.toLocaleLowerCase());\r\n const normalized = loweredKeys.reduce((acc, key, index) => {\r\n acc[key] = headers[originalKeys[index]];\r\n return acc;\r\n }, {});\r\n return normalized;\r\n};\r\n/**\r\n * Builds a string of url parameters that\r\n * @param params A map of url parameters\r\n * @param shouldEncode true if you should encodeURIComponent() the values (true by default)\r\n */\r\nconst buildUrlParams = (params, shouldEncode = true) => {\r\n if (!params)\r\n return null;\r\n const output = Object.entries(params).reduce((accumulator, entry) => {\r\n const [key, value] = entry;\r\n let encodedValue;\r\n let item;\r\n if (Array.isArray(value)) {\r\n item = '';\r\n value.forEach(str => {\r\n encodedValue = shouldEncode ? encodeURIComponent(str) : str;\r\n item += `${key}=${encodedValue}&`;\r\n });\r\n // last character will always be \"&\" so slice it off\r\n item.slice(0, -1);\r\n }\r\n else {\r\n encodedValue = shouldEncode ? encodeURIComponent(value) : value;\r\n item = `${key}=${encodedValue}`;\r\n }\r\n return `${accumulator}&${item}`;\r\n }, '');\r\n // Remove initial \"&\" from the reduce\r\n return output.substr(1);\r\n};\r\n/**\r\n * Build the RequestInit object based on the options passed into the initial request\r\n * @param options The Http plugin options\r\n * @param extra Any extra RequestInit values\r\n */\r\nexport const buildRequestInit = (options, extra = {}) => {\r\n const output = Object.assign({ method: options.method || 'GET', headers: options.headers }, extra);\r\n // Get the content-type\r\n const headers = normalizeHttpHeaders(options.headers);\r\n const type = headers['content-type'] || '';\r\n // If body is already a string, then pass it through as-is.\r\n if (typeof options.data === 'string') {\r\n output.body = options.data;\r\n }\r\n // Build request initializers based off of content-type\r\n else if (type.includes('application/x-www-form-urlencoded')) {\r\n const params = new URLSearchParams();\r\n for (const [key, value] of Object.entries(options.data || {})) {\r\n params.set(key, value);\r\n }\r\n output.body = params.toString();\r\n }\r\n else if (type.includes('multipart/form-data')) {\r\n const form = new FormData();\r\n if (options.data instanceof FormData) {\r\n options.data.forEach((value, key) => {\r\n form.append(key, value);\r\n });\r\n }\r\n else {\r\n for (let key of Object.keys(options.data)) {\r\n form.append(key, options.data[key]);\r\n }\r\n }\r\n output.body = form;\r\n const headers = new Headers(output.headers);\r\n headers.delete('content-type'); // content-type will be set by `window.fetch` to includy boundary\r\n output.headers = headers;\r\n }\r\n else if (type.includes('application/json') ||\r\n typeof options.data === 'object') {\r\n output.body = JSON.stringify(options.data);\r\n }\r\n return output;\r\n};\r\n/**\r\n * Perform an Http request given a set of options\r\n * @param options Options to build the HTTP request\r\n */\r\nexport const request = async (options) => {\r\n const requestInit = buildRequestInit(options, options.webFetchExtra);\r\n const urlParams = buildUrlParams(options.params, options.shouldEncodeUrlParams);\r\n const url = urlParams ? `${options.url}?${urlParams}` : options.url;\r\n const response = await fetch(url, requestInit);\r\n const contentType = response.headers.get('content-type') || '';\r\n // Default to 'text' responseType so no parsing happens\r\n let { responseType = 'text' } = response.ok ? options : {};\r\n // If the response content-type is json, force the response to be json\r\n if (contentType.includes('application/json')) {\r\n responseType = 'json';\r\n }\r\n let data;\r\n switch (responseType) {\r\n case 'arraybuffer':\r\n case 'blob':\r\n const blob = await response.blob();\r\n data = await readBlobAsBase64(blob);\r\n break;\r\n case 'json':\r\n data = await response.json();\r\n break;\r\n case 'document':\r\n case 'text':\r\n default:\r\n data = await response.text();\r\n }\r\n // Convert fetch headers to Capacitor HttpHeaders\r\n const headers = {};\r\n response.headers.forEach((value, key) => {\r\n headers[key] = value;\r\n });\r\n return {\r\n data,\r\n headers,\r\n status: response.status,\r\n url: response.url,\r\n };\r\n};\r\n/**\r\n * Perform an Http GET request given a set of options\r\n * @param options Options to build the HTTP request\r\n */\r\nexport const get = async (options) => request(Object.assign(Object.assign({}, options), { method: 'GET' }));\r\n/**\r\n * Perform an Http POST request given a set of options\r\n * @param options Options to build the HTTP request\r\n */\r\nexport const post = async (options) => request(Object.assign(Object.assign({}, options), { method: 'POST' }));\r\n/**\r\n * Perform an Http PUT request given a set of options\r\n * @param options Options to build the HTTP request\r\n */\r\nexport const put = async (options) => request(Object.assign(Object.assign({}, options), { method: 'PUT' }));\r\n/**\r\n * Perform an Http PATCH request given a set of options\r\n * @param options Options to build the HTTP request\r\n */\r\nexport const patch = async (options) => request(Object.assign(Object.assign({}, options), { method: 'PATCH' }));\r\n/**\r\n * Perform an Http DELETE request given a set of options\r\n * @param options Options to build the HTTP request\r\n */\r\nexport const del = async (options) => request(Object.assign(Object.assign({}, options), { method: 'DELETE' }));\r\n//# sourceMappingURL=request.js.map","import { WebPlugin } from '@capacitor/core';\r\nimport * as Cookie from './cookie';\r\nimport * as Request from './request';\r\nexport class HttpWeb extends WebPlugin {\r\n constructor() {\r\n super();\r\n /**\r\n * Perform an Http request given a set of options\r\n * @param options Options to build the HTTP request\r\n */\r\n this.request = async (options) => Request.request(options);\r\n /**\r\n * Perform an Http GET request given a set of options\r\n * @param options Options to build the HTTP request\r\n */\r\n this.get = async (options) => Request.get(options);\r\n /**\r\n * Perform an Http POST request given a set of options\r\n * @param options Options to build the HTTP request\r\n */\r\n this.post = async (options) => Request.post(options);\r\n /**\r\n * Perform an Http PUT request given a set of options\r\n * @param options Options to build the HTTP request\r\n */\r\n this.put = async (options) => Request.put(options);\r\n /**\r\n * Perform an Http PATCH request given a set of options\r\n * @param options Options to build the HTTP request\r\n */\r\n this.patch = async (options) => Request.patch(options);\r\n /**\r\n * Perform an Http DELETE request given a set of options\r\n * @param options Options to build the HTTP request\r\n */\r\n this.del = async (options) => Request.del(options);\r\n /**\r\n * Gets all HttpCookies as a Map\r\n */\r\n this.getCookiesMap = async (\r\n // @ts-ignore\r\n options) => {\r\n const cookies = Cookie.getCookies();\r\n const output = {};\r\n for (const cookie of cookies) {\r\n output[cookie.key] = cookie.value;\r\n }\r\n return output;\r\n };\r\n /**\r\n * Get all HttpCookies as an object with the values as an HttpCookie[]\r\n */\r\n this.getCookies = async (options) => {\r\n // @ts-ignore\r\n const { url } = options;\r\n const cookies = Cookie.getCookies();\r\n return { cookies };\r\n };\r\n /**\r\n * Set a cookie\r\n * @param key The key to set\r\n * @param value The value to set\r\n * @param options Optional additional parameters\r\n */\r\n this.setCookie = async (options) => {\r\n const { key, value, expires = '', path = '' } = options;\r\n Cookie.setCookie(key, value, { expires, path });\r\n };\r\n /**\r\n * Gets all cookie values unless a key is specified, then return only that value\r\n * @param key The key of the cookie value to get\r\n */\r\n this.getCookie = async (options) => Cookie.getCookie(options.key);\r\n /**\r\n * Deletes a cookie given a key\r\n * @param key The key of the cookie to delete\r\n */\r\n this.deleteCookie = async (options) => Cookie.deleteCookie(options.key);\r\n /**\r\n * Clears out cookies by setting them to expire immediately\r\n */\r\n this.clearCookies = async (\r\n // @ts-ignore\r\n options) => Cookie.clearCookies();\r\n /**\r\n * Clears out cookies by setting them to expire immediately\r\n */\r\n this.clearAllCookies = async () => Cookie.clearCookies();\r\n /**\r\n * Uploads a file through a POST request\r\n * @param options TODO\r\n */\r\n this.uploadFile = async (options) => {\r\n const formData = new FormData();\r\n formData.append(options.name, options.blob || 'undefined');\r\n const fetchOptions = Object.assign(Object.assign({}, options), { body: formData, method: 'POST' });\r\n return this.post(fetchOptions);\r\n };\r\n /**\r\n * Downloads a file\r\n * @param options TODO\r\n */\r\n this.downloadFile = async (options) => {\r\n const requestInit = Request.buildRequestInit(options, options.webFetchExtra);\r\n const response = await fetch(options.url, requestInit);\r\n let blob;\r\n if (!(options === null || options === void 0 ? void 0 : options.progress))\r\n blob = await response.blob();\r\n else if (!(response === null || response === void 0 ? void 0 : response.body))\r\n blob = new Blob();\r\n else {\r\n const reader = response.body.getReader();\r\n let bytes = 0;\r\n let chunks = [];\r\n const contentType = response.headers.get('content-type');\r\n const contentLength = parseInt(response.headers.get('content-length') || '0', 10);\r\n while (true) {\r\n const { done, value } = await reader.read();\r\n if (done)\r\n break;\r\n chunks.push(value);\r\n bytes += (value === null || value === void 0 ? void 0 : value.length) || 0;\r\n const status = {\r\n type: 'DOWNLOAD',\r\n url: options.url,\r\n bytes,\r\n contentLength,\r\n };\r\n this.notifyListeners('progress', status);\r\n }\r\n let allChunks = new Uint8Array(bytes);\r\n let position = 0;\r\n for (const chunk of chunks) {\r\n if (typeof chunk === 'undefined')\r\n continue;\r\n allChunks.set(chunk, position);\r\n position += chunk.length;\r\n }\r\n blob = new Blob([allChunks.buffer], { type: contentType || undefined });\r\n }\r\n return {\r\n blob,\r\n };\r\n };\r\n }\r\n}\r\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin","Request.request","Request.get","Request.post","Request.put","Request.patch","Request.del","Cookie.getCookies","Cookie.setCookie","Cookie.getCookie","Cookie.deleteCookie","Cookie.clearCookies","Request.buildRequestInit"],"mappings":"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"}