From efbc2ffe6a1ee5ec38a4396305561d6515d0943e Mon Sep 17 00:00:00 2001 From: littleblack111 Date: Fri, 30 Aug 2024 17:21:18 +0800 Subject: node fixes, updates --- node_modules/clean-css/lib/utils/clone-array.js | 11 ++++ .../clean-css/lib/utils/format-position.js | 11 ++++ node_modules/clean-css/lib/utils/has-protocol.js | 7 +++ .../clean-css/lib/utils/is-data-uri-resource.js | 7 +++ .../clean-css/lib/utils/is-http-resource.js | 7 +++ .../clean-css/lib/utils/is-https-resource.js | 7 +++ node_modules/clean-css/lib/utils/is-import.js | 7 +++ .../clean-css/lib/utils/is-remote-resource.js | 8 +++ .../clean-css/lib/utils/natural-compare.js | 31 +++++++++++ node_modules/clean-css/lib/utils/override.js | 34 ++++++++++++ node_modules/clean-css/lib/utils/split.js | 62 ++++++++++++++++++++++ 11 files changed, 192 insertions(+) create mode 100644 node_modules/clean-css/lib/utils/clone-array.js create mode 100644 node_modules/clean-css/lib/utils/format-position.js create mode 100644 node_modules/clean-css/lib/utils/has-protocol.js create mode 100644 node_modules/clean-css/lib/utils/is-data-uri-resource.js create mode 100644 node_modules/clean-css/lib/utils/is-http-resource.js create mode 100644 node_modules/clean-css/lib/utils/is-https-resource.js create mode 100644 node_modules/clean-css/lib/utils/is-import.js create mode 100644 node_modules/clean-css/lib/utils/is-remote-resource.js create mode 100644 node_modules/clean-css/lib/utils/natural-compare.js create mode 100644 node_modules/clean-css/lib/utils/override.js create mode 100644 node_modules/clean-css/lib/utils/split.js (limited to 'node_modules/clean-css/lib/utils') diff --git a/node_modules/clean-css/lib/utils/clone-array.js b/node_modules/clean-css/lib/utils/clone-array.js new file mode 100644 index 00000000..a44bf38d --- /dev/null +++ b/node_modules/clean-css/lib/utils/clone-array.js @@ -0,0 +1,11 @@ +function cloneArray(array) { + var cloned = array.slice(0); + + for (var i = 0, l = cloned.length; i < l; i++) { + if (Array.isArray(cloned[i])) { cloned[i] = cloneArray(cloned[i]); } + } + + return cloned; +} + +module.exports = cloneArray; diff --git a/node_modules/clean-css/lib/utils/format-position.js b/node_modules/clean-css/lib/utils/format-position.js new file mode 100644 index 00000000..876a0b14 --- /dev/null +++ b/node_modules/clean-css/lib/utils/format-position.js @@ -0,0 +1,11 @@ +function formatPosition(metadata) { + var line = metadata[0]; + var column = metadata[1]; + var source = metadata[2]; + + return source + ? source + ':' + line + ':' + column + : line + ':' + column; +} + +module.exports = formatPosition; diff --git a/node_modules/clean-css/lib/utils/has-protocol.js b/node_modules/clean-css/lib/utils/has-protocol.js new file mode 100644 index 00000000..fa1b61fd --- /dev/null +++ b/node_modules/clean-css/lib/utils/has-protocol.js @@ -0,0 +1,7 @@ +var NO_PROTOCOL_RESOURCE_PATTERN = /^\/\//; + +function hasProtocol(uri) { + return !NO_PROTOCOL_RESOURCE_PATTERN.test(uri); +} + +module.exports = hasProtocol; diff --git a/node_modules/clean-css/lib/utils/is-data-uri-resource.js b/node_modules/clean-css/lib/utils/is-data-uri-resource.js new file mode 100644 index 00000000..0977fbce --- /dev/null +++ b/node_modules/clean-css/lib/utils/is-data-uri-resource.js @@ -0,0 +1,7 @@ +var DATA_URI_PATTERN = /^data:(\S{0,31}?)?(;charset=(?:(?!;charset=)[^;])+)?(;[^,]+?)?,(.+)/; + +function isDataUriResource(uri) { + return DATA_URI_PATTERN.test(uri); +} + +module.exports = isDataUriResource; diff --git a/node_modules/clean-css/lib/utils/is-http-resource.js b/node_modules/clean-css/lib/utils/is-http-resource.js new file mode 100644 index 00000000..5179c2ea --- /dev/null +++ b/node_modules/clean-css/lib/utils/is-http-resource.js @@ -0,0 +1,7 @@ +var HTTP_RESOURCE_PATTERN = /^http:\/\//; + +function isHttpResource(uri) { + return HTTP_RESOURCE_PATTERN.test(uri); +} + +module.exports = isHttpResource; diff --git a/node_modules/clean-css/lib/utils/is-https-resource.js b/node_modules/clean-css/lib/utils/is-https-resource.js new file mode 100644 index 00000000..c6938f57 --- /dev/null +++ b/node_modules/clean-css/lib/utils/is-https-resource.js @@ -0,0 +1,7 @@ +var HTTPS_RESOURCE_PATTERN = /^https:\/\//; + +function isHttpsResource(uri) { + return HTTPS_RESOURCE_PATTERN.test(uri); +} + +module.exports = isHttpsResource; diff --git a/node_modules/clean-css/lib/utils/is-import.js b/node_modules/clean-css/lib/utils/is-import.js new file mode 100644 index 00000000..72abc328 --- /dev/null +++ b/node_modules/clean-css/lib/utils/is-import.js @@ -0,0 +1,7 @@ +var IMPORT_PREFIX_PATTERN = /^@import/i; + +function isImport(value) { + return IMPORT_PREFIX_PATTERN.test(value); +} + +module.exports = isImport; diff --git a/node_modules/clean-css/lib/utils/is-remote-resource.js b/node_modules/clean-css/lib/utils/is-remote-resource.js new file mode 100644 index 00000000..00e6d3be --- /dev/null +++ b/node_modules/clean-css/lib/utils/is-remote-resource.js @@ -0,0 +1,8 @@ +var REMOTE_RESOURCE_PATTERN = /^(\w+:\/\/|\/\/)/; +var FILE_RESOURCE_PATTERN = /^file:\/\//; + +function isRemoteResource(uri) { + return REMOTE_RESOURCE_PATTERN.test(uri) && !FILE_RESOURCE_PATTERN.test(uri); +} + +module.exports = isRemoteResource; diff --git a/node_modules/clean-css/lib/utils/natural-compare.js b/node_modules/clean-css/lib/utils/natural-compare.js new file mode 100644 index 00000000..03b8bd61 --- /dev/null +++ b/node_modules/clean-css/lib/utils/natural-compare.js @@ -0,0 +1,31 @@ +// adapted from http://nedbatchelder.com/blog/200712.html#e20071211T054956 + +var NUMBER_PATTERN = /([0-9]+)/; + +function naturalCompare(value1, value2) { + var keys1 = ('' + value1).split(NUMBER_PATTERN).map(tryParseInt); + var keys2 = ('' + value2).split(NUMBER_PATTERN).map(tryParseInt); + var key1; + var key2; + var compareFirst = Math.min(keys1.length, keys2.length); + var i, l; + + for (i = 0, l = compareFirst; i < l; i++) { + key1 = keys1[i]; + key2 = keys2[i]; + + if (key1 != key2) { + return key1 > key2 ? 1 : -1; + } + } + + return keys1.length > keys2.length ? 1 : (keys1.length == keys2.length ? 0 : -1); +} + +function tryParseInt(value) { + return ('' + parseInt(value)) == value + ? parseInt(value) + : value; +} + +module.exports = naturalCompare; diff --git a/node_modules/clean-css/lib/utils/override.js b/node_modules/clean-css/lib/utils/override.js new file mode 100644 index 00000000..e7f84948 --- /dev/null +++ b/node_modules/clean-css/lib/utils/override.js @@ -0,0 +1,34 @@ +function override(source1, source2) { + var target = {}; + var key1; + var key2; + var item; + + for (key1 in source1) { + item = source1[key1]; + + if (Array.isArray(item)) { + target[key1] = item.slice(0); + } else if (typeof item == 'object' && item !== null) { + target[key1] = override(item, {}); + } else { + target[key1] = item; + } + } + + for (key2 in source2) { + item = source2[key2]; + + if (key2 in target && Array.isArray(item)) { + target[key2] = item.slice(0); + } else if (key2 in target && typeof item == 'object' && item !== null) { + target[key2] = override(target[key2], item); + } else { + target[key2] = item; + } + } + + return target; +} + +module.exports = override; diff --git a/node_modules/clean-css/lib/utils/split.js b/node_modules/clean-css/lib/utils/split.js new file mode 100644 index 00000000..b824ceb5 --- /dev/null +++ b/node_modules/clean-css/lib/utils/split.js @@ -0,0 +1,62 @@ +var Marker = require('../tokenizer/marker'); + +function is(value, separator, isSeparatorRegex) { + return isSeparatorRegex + ? separator.test(value) + : value === separator; +} + +function split(value, separator) { + var openLevel = Marker.OPEN_ROUND_BRACKET; + var closeLevel = Marker.CLOSE_ROUND_BRACKET; + var level = 0; + var cursor = 0; + var lastStart = 0; + var lastValue; + var lastCharacter; + var len = value.length; + var parts = []; + var isSeparatorRegex = typeof (separator) == 'object' && 'exec' in separator; + + if (!isSeparatorRegex && value.indexOf(separator) == -1) { + return [value]; + } + + if (value.indexOf(openLevel) == -1) { + return value.split(separator); + } + + while (cursor < len) { + if (value[cursor] == openLevel) { + level++; + } else if (value[cursor] == closeLevel) { + level--; + } + + if (level === 0 && cursor > 0 && cursor + 1 < len && is(value[cursor], separator, isSeparatorRegex)) { + parts.push(value.substring(lastStart, cursor)); + + if (isSeparatorRegex && separator.exec(value[cursor]).length > 1) { + parts.push(value[cursor]); + } + + lastStart = cursor + 1; + } + + cursor++; + } + + if (lastStart < cursor + 1) { + lastValue = value.substring(lastStart); + lastCharacter = lastValue[lastValue.length - 1]; + if (is(lastCharacter, separator, isSeparatorRegex)) { + lastValue = lastValue.substring(0, lastValue.length - 1); + } + + parts.push(lastValue); + } + + return parts; +} + +module.exports = split; -- cgit v1.2.3