mirror of
https://github.com/henrywhitaker3/Speedtest-Tracker.git
synced 2025-12-27 23:46:34 +01:00
composer and npm
This commit is contained in:
45
conf/site/node_modules/serialize-javascript/index.js
generated
vendored
45
conf/site/node_modules/serialize-javascript/index.js
generated
vendored
@@ -6,9 +6,12 @@ See the accompanying LICENSE file for terms.
|
||||
|
||||
'use strict';
|
||||
|
||||
var randomBytes = require('randombytes');
|
||||
|
||||
// Generate an internal UID to make the regexp pattern harder to guess.
|
||||
var UID = Math.floor(Math.random() * 0x10000000000).toString(16);
|
||||
var PLACE_HOLDER_REGEXP = new RegExp('"@__(F|R|D|M|S|U)-' + UID + '-(\\d+)__@"', 'g');
|
||||
var UID_LENGTH = 16;
|
||||
var UID = generateUID();
|
||||
var PLACE_HOLDER_REGEXP = new RegExp('(\\\\)?"@__(F|R|D|M|S|U|I|B)-' + UID + '-(\\d+)__@"', 'g');
|
||||
|
||||
var IS_NATIVE_CODE_REGEXP = /\{\s*\[native code\]\s*\}/g;
|
||||
var IS_PURE_FUNCTION = /function.*?\(/;
|
||||
@@ -31,6 +34,15 @@ function escapeUnsafeChars(unsafeChar) {
|
||||
return ESCAPED_CHARS[unsafeChar];
|
||||
}
|
||||
|
||||
function generateUID() {
|
||||
var bytes = randomBytes(UID_LENGTH);
|
||||
var result = '';
|
||||
for(var i=0; i<UID_LENGTH; ++i) {
|
||||
result += bytes[i].toString(16);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function deleteFunctions(obj){
|
||||
var functionKeys = [];
|
||||
for (var key in obj) {
|
||||
@@ -57,6 +69,8 @@ module.exports = function serialize(obj, options) {
|
||||
var maps = [];
|
||||
var sets = [];
|
||||
var undefs = [];
|
||||
var infinities= [];
|
||||
var bigInts = [];
|
||||
|
||||
// Returns placeholders for functions and regexps (identified by index)
|
||||
// which are later replaced by their string representation.
|
||||
@@ -102,6 +116,14 @@ module.exports = function serialize(obj, options) {
|
||||
return '@__U-' + UID + '-' + (undefs.push(origValue) - 1) + '__@';
|
||||
}
|
||||
|
||||
if (type === 'number' && !isNaN(origValue) && !isFinite(origValue)) {
|
||||
return '@__I-' + UID + '-' + (infinities.push(origValue) - 1) + '__@';
|
||||
}
|
||||
|
||||
if (type === 'bigint') {
|
||||
return '@__B-' + UID + '-' + (bigInts.push(origValue) - 1) + '__@';
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
@@ -175,14 +197,21 @@ module.exports = function serialize(obj, options) {
|
||||
str = str.replace(UNSAFE_CHARS_REGEXP, escapeUnsafeChars);
|
||||
}
|
||||
|
||||
if (functions.length === 0 && regexps.length === 0 && dates.length === 0 && maps.length === 0 && sets.length === 0 && undefs.length === 0) {
|
||||
if (functions.length === 0 && regexps.length === 0 && dates.length === 0 && maps.length === 0 && sets.length === 0 && undefs.length === 0 && infinities.length === 0 && bigInts.length === 0) {
|
||||
return str;
|
||||
}
|
||||
|
||||
// Replaces all occurrences of function, regexp, date, map and set placeholders in the
|
||||
// JSON string with their string representations. If the original value can
|
||||
// not be found, then `undefined` is used.
|
||||
return str.replace(PLACE_HOLDER_REGEXP, function (match, type, valueIndex) {
|
||||
return str.replace(PLACE_HOLDER_REGEXP, function (match, backSlash, type, valueIndex) {
|
||||
// The placeholder may not be preceded by a backslash. This is to prevent
|
||||
// replacing things like `"a\"@__R-<UID>-0__@"` and thus outputting
|
||||
// invalid JS.
|
||||
if (backSlash) {
|
||||
return match;
|
||||
}
|
||||
|
||||
if (type === 'D') {
|
||||
return "new Date(\"" + dates[valueIndex].toISOString() + "\")";
|
||||
}
|
||||
@@ -203,6 +232,14 @@ module.exports = function serialize(obj, options) {
|
||||
return 'undefined'
|
||||
}
|
||||
|
||||
if (type === 'I') {
|
||||
return infinities[valueIndex];
|
||||
}
|
||||
|
||||
if (type === 'B') {
|
||||
return "BigInt(\"" + bigInts[valueIndex] + "\")";
|
||||
}
|
||||
|
||||
var fn = functions[valueIndex];
|
||||
|
||||
return serializeFunc(fn);
|
||||
|
||||
Reference in New Issue
Block a user