mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-18 20:47:54 +00:00
1 line
22 KiB
JSON
1 line
22 KiB
JSON
{"ast":null,"code":"import { isNaN, isSyntheticEvent } from './is.js';\nimport { memoBuilder } from './memo.js';\nimport { convertToPlainObject } from './object.js';\nimport { getFunctionName } from './stacktrace.js';\n\n/**\n * Recursively normalizes the given object.\n *\n * - Creates a copy to prevent original input mutation\n * - Skips non-enumerable properties\n * - When stringifying, calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializable values (`undefined`/`NaN`/functions) to serializable format\n * - Translates known global objects/classes to a string representations\n * - Takes care of `Error` object serialization\n * - Optionally limits depth of final output\n * - Optionally limits number of properties/elements included in any single object/array\n *\n * @param input The object to be normalized.\n * @param depth The max depth to which to normalize the object. (Anything deeper stringified whole.)\n * @param maxProperties The max number of elements or properties to be included in any single array or\n * object in the normallized output.\n * @returns A normalized version of the object, or `\"**non-serializable**\"` if any errors are thrown during normalization.\n */\nfunction normalize(input, depth = +Infinity, maxProperties = +Infinity) {\n try {\n // since we're at the outermost level, we don't provide a key\n return visit('', input, depth, maxProperties);\n } catch (err) {\n return {\n ERROR: `**non-serializable** (${err})`\n };\n }\n}\n\n/** JSDoc */\nfunction normalizeToSize(object,\n// Default Node.js REPL depth\ndepth = 3,\n// 100kB, as 200kB is max payload size, so half sounds reasonable\nmaxSize = 100 * 1024) {\n var normalized = normalize(object, depth);\n if (jsonSize(normalized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n return normalized;\n}\n\n/**\n * Visits a node to perform normalization on it\n *\n * @param key The key corresponding to the given node\n * @param value The node to be visited\n * @param depth Optional number indicating the maximum recursion depth\n * @param maxProperties Optional maximum number of properties/elements included in any single object/array\n * @param memo Optional Memo class handling decycling\n */\nfunction visit(key, value, depth = +Infinity, maxProperties = +Infinity, memo = memoBuilder()) {\n const [memoize, unmemoize] = memo;\n\n // Get the simple cases out of the way first\n if (value === null || ['number', 'boolean', 'string'].includes(typeof value) && !isNaN(value)) {\n return value;\n }\n var stringified = stringifyValue(key, value);\n\n // Anything we could potentially dig into more (objects or arrays) will have come back as `\"[object XXXX]\"`.\n // Everything else will have already been serialized, so if we don't see that pattern, we're done.\n if (!stringified.startsWith('[object ')) {\n return stringified;\n }\n\n // From here on, we can assert that `value` is either an object or an array.\n\n // Do not normalize objects that we know have already been normalized. As a general rule, the\n // \"__sentry_skip_normalization__\" property should only be used sparingly and only should only be set on objects that\n // have already been normalized.\n if (value['__sentry_skip_normalization__']) {\n return value;\n }\n\n // We're also done if we've reached the max depth\n if (depth === 0) {\n // At this point we know `serialized` is a string of the form `\"[object XXXX]\"`. Clean it up so it's just `\"[XXXX]\"`.\n return stringified.replace('object ', '');\n }\n\n // If we've already visited this branch, bail out, as it's circular reference. If not, note that we're seeing it now.\n if (memoize(value)) {\n return '[Circular ~]';\n }\n\n // If the value has a `toJSON` method, we call it to extract more information\n var valueWithToJSON = value;\n if (valueWithToJSON && typeof valueWithToJSON.toJSON === 'function') {\n try {\n var jsonValue = valueWithToJSON.toJSON();\n // We need to normalize the return value of `.toJSON()` in case it has circular references\n return visit('', jsonValue, depth - 1, maxProperties, memo);\n } catch (err) {\n // pass (The built-in `toJSON` failed, but we can still try to do it ourselves)\n }\n }\n\n // At this point we know we either have an object or an array, we haven't seen it before, and we're going to recurse\n // because we haven't yet reached the max depth. Create an accumulator to hold the results of visiting each\n // property/entry, and keep track of the number of items we add to it.\n var normalized = Array.isArray(value) ? [] : {};\n let numAdded = 0;\n\n // Before we begin, convert`Error` and`Event` instances into plain objects, since some of each of their relevant\n // properties are non-enumerable and otherwise would get missed.\n var visitable = convertToPlainObject(value);\n for (var visitKey in visitable) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {\n continue;\n }\n if (numAdded >= maxProperties) {\n normalized[visitKey] = '[MaxProperties ~]';\n break;\n }\n\n // Recursively visit all the child nodes\n var visitValue = visitable[visitKey];\n normalized[visitKey] = visit(visitKey, visitValue, depth - 1, maxProperties, memo);\n numAdded += 1;\n }\n\n // Once we've visited all the branches, remove the parent from memo storage\n unmemoize(value);\n\n // Return accumulated values\n return normalized;\n}\n\n/**\n * Stringify the given value. Handles various known special values and types.\n *\n * Not meant to be used on simple primitives which already have a string representation, as it will, for example, turn\n * the number 1231 into \"[Object Number]\", nor on `null`, as it will throw.\n *\n * @param value The value to stringify\n * @returns A stringified representation of the given value\n */\nfunction stringifyValue(key,\n// this type is a tiny bit of a cheat, since this function does handle NaN (which is technically a number), but for\n// our internal use, it'll do\nvalue) {\n try {\n if (key === 'domain' && value && typeof value === 'object' && value._events) {\n return '[Domain]';\n }\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n\n // It's safe to use `global`, `window`, and `document` here in this manner, as we are asserting using `typeof` first\n // which won't throw if they are not present.\n\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n }\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n }\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n }\n\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n if (typeof value === 'number' && value !== value) {\n return '[NaN]';\n }\n\n // this catches `undefined` (but not `null`, which is a primitive and can be serialized on its own)\n if (value === void 0) {\n return '[undefined]';\n }\n if (typeof value === 'function') {\n return `[Function: ${getFunctionName(value)}]`;\n }\n if (typeof value === 'symbol') {\n return `[${String(value)}]`;\n }\n\n // stringified BigInts are indistinguishable from regular numbers, so we need to label them to avoid confusion\n if (typeof value === 'bigint') {\n return `[BigInt: ${String(value)}]`;\n }\n\n // Now that we've knocked out all the special cases and the primitives, all we have left are objects. Simply casting\n // them to strings means that instances of classes which haven't defined their `toStringTag` will just come out as\n // `\"[object Object]\"`. If we instead look at the constructor's name (which is the same as the name of the class),\n // we can make sure that only plain objects come out that way.\n return `[object ${Object.getPrototypeOf(value).constructor.name}]`;\n } catch (err) {\n return `**non-serializable** (${err})`;\n }\n}\n\n/** Calculates bytes size of input string */\nfunction utf8Length(value) {\n return ~-encodeURI(value).split(/%..|./).length;\n}\n\n/** Calculates bytes size of input object */\nfunction jsonSize(value) {\n return utf8Length(JSON.stringify(value));\n}\nexport { normalize, normalizeToSize, visit as walk };","map":{"version":3,"names":["isNaN","isSyntheticEvent","memoBuilder","convertToPlainObject","getFunctionName","normalize","input","depth","Infinity","maxProperties","visit","err","ERROR","normalizeToSize","object","maxSize","normalized","jsonSize","key","value","memo","memoize","unmemoize","includes","stringified","stringifyValue","startsWith","replace","valueWithToJSON","toJSON","jsonValue","Array","isArray","numAdded","visitable","visitKey","Object","prototype","hasOwnProperty","call","visitValue","_events","global","window","document","String","getPrototypeOf","constructor","name","utf8Length","encodeURI","split","length","JSON","stringify","walk"],"sources":["C:/Users/eudes.inacio/GabineteDigital/gabinete-digital-fo/node_modules/@sentry/utils/esm/normalize.js"],"sourcesContent":["import { isNaN, isSyntheticEvent } from './is.js';\nimport { memoBuilder } from './memo.js';\nimport { convertToPlainObject } from './object.js';\nimport { getFunctionName } from './stacktrace.js';\n\n/**\n * Recursively normalizes the given object.\n *\n * - Creates a copy to prevent original input mutation\n * - Skips non-enumerable properties\n * - When stringifying, calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializable values (`undefined`/`NaN`/functions) to serializable format\n * - Translates known global objects/classes to a string representations\n * - Takes care of `Error` object serialization\n * - Optionally limits depth of final output\n * - Optionally limits number of properties/elements included in any single object/array\n *\n * @param input The object to be normalized.\n * @param depth The max depth to which to normalize the object. (Anything deeper stringified whole.)\n * @param maxProperties The max number of elements or properties to be included in any single array or\n * object in the normallized output.\n * @returns A normalized version of the object, or `\"**non-serializable**\"` if any errors are thrown during normalization.\n */\nfunction normalize(input, depth = +Infinity, maxProperties = +Infinity) {\n try {\n // since we're at the outermost level, we don't provide a key\n return visit('', input, depth, maxProperties);\n } catch (err) {\n return { ERROR: `**non-serializable** (${err})` };\n }\n}\n\n/** JSDoc */\nfunction normalizeToSize(\n object,\n // Default Node.js REPL depth\n depth = 3,\n // 100kB, as 200kB is max payload size, so half sounds reasonable\n maxSize = 100 * 1024,\n) {\n var normalized = normalize(object, depth);\n\n if (jsonSize(normalized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n\n return normalized ;\n}\n\n/**\n * Visits a node to perform normalization on it\n *\n * @param key The key corresponding to the given node\n * @param value The node to be visited\n * @param depth Optional number indicating the maximum recursion depth\n * @param maxProperties Optional maximum number of properties/elements included in any single object/array\n * @param memo Optional Memo class handling decycling\n */\nfunction visit(\n key,\n value,\n depth = +Infinity,\n maxProperties = +Infinity,\n memo = memoBuilder(),\n) {\n const [memoize, unmemoize] = memo;\n\n // Get the simple cases out of the way first\n if (value === null || (['number', 'boolean', 'string'].includes(typeof value) && !isNaN(value))) {\n return value ;\n }\n\n var stringified = stringifyValue(key, value);\n\n // Anything we could potentially dig into more (objects or arrays) will have come back as `\"[object XXXX]\"`.\n // Everything else will have already been serialized, so if we don't see that pattern, we're done.\n if (!stringified.startsWith('[object ')) {\n return stringified;\n }\n\n // From here on, we can assert that `value` is either an object or an array.\n\n // Do not normalize objects that we know have already been normalized. As a general rule, the\n // \"__sentry_skip_normalization__\" property should only be used sparingly and only should only be set on objects that\n // have already been normalized.\n if ((value )['__sentry_skip_normalization__']) {\n return value ;\n }\n\n // We're also done if we've reached the max depth\n if (depth === 0) {\n // At this point we know `serialized` is a string of the form `\"[object XXXX]\"`. Clean it up so it's just `\"[XXXX]\"`.\n return stringified.replace('object ', '');\n }\n\n // If we've already visited this branch, bail out, as it's circular reference. If not, note that we're seeing it now.\n if (memoize(value)) {\n return '[Circular ~]';\n }\n\n // If the value has a `toJSON` method, we call it to extract more information\n var valueWithToJSON = value ;\n if (valueWithToJSON && typeof valueWithToJSON.toJSON === 'function') {\n try {\n var jsonValue = valueWithToJSON.toJSON();\n // We need to normalize the return value of `.toJSON()` in case it has circular references\n return visit('', jsonValue, depth - 1, maxProperties, memo);\n } catch (err) {\n // pass (The built-in `toJSON` failed, but we can still try to do it ourselves)\n }\n }\n\n // At this point we know we either have an object or an array, we haven't seen it before, and we're going to recurse\n // because we haven't yet reached the max depth. Create an accumulator to hold the results of visiting each\n // property/entry, and keep track of the number of items we add to it.\n var normalized = (Array.isArray(value) ? [] : {}) ;\n let numAdded = 0;\n\n // Before we begin, convert`Error` and`Event` instances into plain objects, since some of each of their relevant\n // properties are non-enumerable and otherwise would get missed.\n var visitable = convertToPlainObject(value );\n\n for (var visitKey in visitable) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {\n continue;\n }\n\n if (numAdded >= maxProperties) {\n normalized[visitKey] = '[MaxProperties ~]';\n break;\n }\n\n // Recursively visit all the child nodes\n var visitValue = visitable[visitKey];\n normalized[visitKey] = visit(visitKey, visitValue, depth - 1, maxProperties, memo);\n\n numAdded += 1;\n }\n\n // Once we've visited all the branches, remove the parent from memo storage\n unmemoize(value);\n\n // Return accumulated values\n return normalized;\n}\n\n/**\n * Stringify the given value. Handles various known special values and types.\n *\n * Not meant to be used on simple primitives which already have a string representation, as it will, for example, turn\n * the number 1231 into \"[Object Number]\", nor on `null`, as it will throw.\n *\n * @param value The value to stringify\n * @returns A stringified representation of the given value\n */\nfunction stringifyValue(\n key,\n // this type is a tiny bit of a cheat, since this function does handle NaN (which is technically a number), but for\n // our internal use, it'll do\n value,\n) {\n try {\n if (key === 'domain' && value && typeof value === 'object' && (value )._events) {\n return '[Domain]';\n }\n\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n\n // It's safe to use `global`, `window`, and `document` here in this manner, as we are asserting using `typeof` first\n // which won't throw if they are not present.\n\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n }\n\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n }\n\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n }\n\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n\n if (typeof value === 'number' && value !== value) {\n return '[NaN]';\n }\n\n // this catches `undefined` (but not `null`, which is a primitive and can be serialized on its own)\n if (value === void 0) {\n return '[undefined]';\n }\n\n if (typeof value === 'function') {\n return `[Function: ${getFunctionName(value)}]`;\n }\n\n if (typeof value === 'symbol') {\n return `[${String(value)}]`;\n }\n\n // stringified BigInts are indistinguishable from regular numbers, so we need to label them to avoid confusion\n if (typeof value === 'bigint') {\n return `[BigInt: ${String(value)}]`;\n }\n\n // Now that we've knocked out all the special cases and the primitives, all we have left are objects. Simply casting\n // them to strings means that instances of classes which haven't defined their `toStringTag` will just come out as\n // `\"[object Object]\"`. If we instead look at the constructor's name (which is the same as the name of the class),\n // we can make sure that only plain objects come out that way.\n return `[object ${(Object.getPrototypeOf(value) ).constructor.name}]`;\n } catch (err) {\n return `**non-serializable** (${err})`;\n }\n}\n\n/** Calculates bytes size of input string */\nfunction utf8Length(value) {\n return ~-encodeURI(value).split(/%..|./).length;\n}\n\n/** Calculates bytes size of input object */\nfunction jsonSize(value) {\n return utf8Length(JSON.stringify(value));\n}\n\nexport { normalize, normalizeToSize, visit as walk };\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} |