diff options
author | RaindropsSys <contact@minteck.org> | 2023-07-17 14:08:41 +0200 |
---|---|---|
committer | RaindropsSys <contact@minteck.org> | 2023-07-17 14:08:41 +0200 |
commit | d0da20e18bf39cd98c1a2773e3a08e8e320d6450 (patch) | |
tree | 0809782ccba92bbd76bb44a80a6d40bdaeb2f0ab /includes/external/signal/node_modules/axios/lib/helpers/fromDataURI.js | |
parent | 5eb6a557c44462e7d9d752f3bc97a078ef205bc0 (diff) | |
download | pluralconnect-d0da20e18bf39cd98c1a2773e3a08e8e320d6450.tar.gz pluralconnect-d0da20e18bf39cd98c1a2773e3a08e8e320d6450.tar.bz2 pluralconnect-d0da20e18bf39cd98c1a2773e3a08e8e320d6450.zip |
Updated includes/jobs/PKFronters.php and added 147 files (automated)
Diffstat (limited to 'includes/external/signal/node_modules/axios/lib/helpers/fromDataURI.js')
-rw-r--r-- | includes/external/signal/node_modules/axios/lib/helpers/fromDataURI.js | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/includes/external/signal/node_modules/axios/lib/helpers/fromDataURI.js b/includes/external/signal/node_modules/axios/lib/helpers/fromDataURI.js new file mode 100644 index 0000000..eb71d3f --- /dev/null +++ b/includes/external/signal/node_modules/axios/lib/helpers/fromDataURI.js @@ -0,0 +1,53 @@ +'use strict'; + +import AxiosError from '../core/AxiosError.js'; +import parseProtocol from './parseProtocol.js'; +import platform from '../platform/index.js'; + +const DATA_URL_PATTERN = /^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\s\S]*)$/; + +/** + * Parse data uri to a Buffer or Blob + * + * @param {String} uri + * @param {?Boolean} asBlob + * @param {?Object} options + * @param {?Function} options.Blob + * + * @returns {Buffer|Blob} + */ +export default function fromDataURI(uri, asBlob, options) { + const _Blob = options && options.Blob || platform.classes.Blob; + const protocol = parseProtocol(uri); + + if (asBlob === undefined && _Blob) { + asBlob = true; + } + + if (protocol === 'data') { + uri = protocol.length ? uri.slice(protocol.length + 1) : uri; + + const match = DATA_URL_PATTERN.exec(uri); + + if (!match) { + throw new AxiosError('Invalid URL', AxiosError.ERR_INVALID_URL); + } + + const mime = match[1]; + const isBase64 = match[2]; + const body = match[3]; + const buffer = Buffer.from(decodeURIComponent(body), isBase64 ? 'base64' : 'utf8'); + + if (asBlob) { + if (!_Blob) { + throw new AxiosError('Blob is not supported', AxiosError.ERR_NOT_SUPPORT); + } + + return new _Blob([buffer], {type: mime}); + } + + return buffer; + } + + throw new AxiosError('Unsupported protocol ' + protocol, AxiosError.ERR_NOT_SUPPORT); +} |