diff options
author | Minteck <contact@minteck.org> | 2023-02-23 19:34:56 +0100 |
---|---|---|
committer | Minteck <contact@minteck.org> | 2023-02-23 19:34:56 +0100 |
commit | 3d1cd02f27518f1a04374c7c8320cd5d82ede6e9 (patch) | |
tree | 75be5fba4368472fb11c8015aee026b2b9a71888 /school/node_modules/data-urls/lib | |
parent | 8cc1f13c17fa2fb5a4410542d39e650e02945634 (diff) | |
download | pluralconnect-3d1cd02f27518f1a04374c7c8320cd5d82ede6e9.tar.gz pluralconnect-3d1cd02f27518f1a04374c7c8320cd5d82ede6e9.tar.bz2 pluralconnect-3d1cd02f27518f1a04374c7c8320cd5d82ede6e9.zip |
Updated 40 files, added 37 files, deleted 1103 files and renamed 3905 files (automated)
Diffstat (limited to 'school/node_modules/data-urls/lib')
-rw-r--r-- | school/node_modules/data-urls/lib/parser.js | 74 | ||||
-rw-r--r-- | school/node_modules/data-urls/lib/utils.js | 23 |
2 files changed, 0 insertions, 97 deletions
diff --git a/school/node_modules/data-urls/lib/parser.js b/school/node_modules/data-urls/lib/parser.js deleted file mode 100644 index 37be0ef..0000000 --- a/school/node_modules/data-urls/lib/parser.js +++ /dev/null @@ -1,74 +0,0 @@ -"use strict"; -const MIMEType = require("whatwg-mimetype"); -const { parseURL, serializeURL } = require("whatwg-url"); -const { - stripLeadingAndTrailingASCIIWhitespace, - stringPercentDecode, - isomorphicDecode, - forgivingBase64Decode -} = require("./utils.js"); - -module.exports = stringInput => { - const urlRecord = parseURL(stringInput); - - if (urlRecord === null) { - return null; - } - - return module.exports.fromURLRecord(urlRecord); -}; - -module.exports.fromURLRecord = urlRecord => { - if (urlRecord.scheme !== "data") { - return null; - } - - const input = serializeURL(urlRecord, true).substring("data:".length); - - let position = 0; - - let mimeType = ""; - while (position < input.length && input[position] !== ",") { - mimeType += input[position]; - ++position; - } - mimeType = stripLeadingAndTrailingASCIIWhitespace(mimeType); - - if (position === input.length) { - return null; - } - - ++position; - - const encodedBody = input.substring(position); - - let body = stringPercentDecode(encodedBody); - - // Can't use /i regexp flag because it isn't restricted to ASCII. - const mimeTypeBase64MatchResult = /(.*); *[Bb][Aa][Ss][Ee]64$/.exec(mimeType); - if (mimeTypeBase64MatchResult) { - const stringBody = isomorphicDecode(body); - body = forgivingBase64Decode(stringBody); - - if (body === null) { - return null; - } - mimeType = mimeTypeBase64MatchResult[1]; - } - - if (mimeType.startsWith(";")) { - mimeType = "text/plain" + mimeType; - } - - let mimeTypeRecord; - try { - mimeTypeRecord = new MIMEType(mimeType); - } catch (e) { - mimeTypeRecord = new MIMEType("text/plain;charset=US-ASCII"); - } - - return { - mimeType: mimeTypeRecord, - body - }; -}; diff --git a/school/node_modules/data-urls/lib/utils.js b/school/node_modules/data-urls/lib/utils.js deleted file mode 100644 index 213029f..0000000 --- a/school/node_modules/data-urls/lib/utils.js +++ /dev/null @@ -1,23 +0,0 @@ -"use strict"; -const { percentDecode } = require("whatwg-url"); -const { atob } = require("abab"); - -exports.stripLeadingAndTrailingASCIIWhitespace = string => { - return string.replace(/^[ \t\n\f\r]+/, "").replace(/[ \t\n\f\r]+$/, ""); -}; - -exports.stringPercentDecode = input => { - return percentDecode(Buffer.from(input, "utf-8")); -}; - -exports.isomorphicDecode = input => { - return input.toString("binary"); -}; - -exports.forgivingBase64Decode = data => { - const asString = atob(data); - if (asString === null) { - return null; - } - return Buffer.from(asString, "binary"); -}; |