Files
doneit-web/.angular/cache/14.2.12/babel-webpack/b900e9759d8b5738f1931642715f554b.json
T
Eudes Inácio 53b71ea16f its working
2023-06-30 09:54:21 +01:00

1 line
26 KiB
JSON

{"ast":null,"code":"import { _optionalChain } from './buildPolyfills';\nimport { isString, isPlainObject } from './is.js';\nimport { normalize } from './normalize.js';\nimport { stripUrlQueryAndFragment } from './url.js';\nvar DEFAULT_INCLUDES = {\n ip: false,\n request: true,\n transaction: true,\n user: true\n};\nvar DEFAULT_REQUEST_INCLUDES = ['cookies', 'data', 'headers', 'method', 'query_string', 'url'];\nvar DEFAULT_USER_INCLUDES = ['id', 'username', 'email'];\n\n/**\n * Sets parameterized route as transaction name e.g.: `GET /users/:id`\n * Also adds more context data on the transaction from the request\n */\nfunction addRequestDataToTransaction(transaction, req, deps) {\n if (!transaction) return;\n if (!transaction.metadata.source || transaction.metadata.source === 'url') {\n // Attempt to grab a parameterized route off of the request\n transaction.setName(...extractPathForTransaction(req, {\n path: true,\n method: true\n }));\n }\n transaction.setData('url', req.originalUrl || req.url);\n if (req.baseUrl) {\n transaction.setData('baseUrl', req.baseUrl);\n }\n transaction.setData('query', extractQueryParams(req, deps));\n}\n\n/**\n * Extracts a complete and parameterized path from the request object and uses it to construct transaction name.\n * If the parameterized transaction name cannot be extracted, we fall back to the raw URL.\n *\n * Additionally, this function determines and returns the transaction name source\n *\n * eg. GET /mountpoint/user/:id\n *\n * @param req A request object\n * @param options What to include in the transaction name (method, path, or a custom route name to be\n * used instead of the request's route)\n *\n * @returns A tuple of the fully constructed transaction name [0] and its source [1] (can be either 'route' or 'url')\n */\nfunction extractPathForTransaction(req, options = {}) {\n var method = req.method && req.method.toUpperCase();\n let path = '';\n let source = 'url';\n\n // Check to see if there's a parameterized route we can use (as there is in Express)\n if (options.customRoute || req.route) {\n path = options.customRoute || `${req.baseUrl || ''}${req.route && req.route.path}`;\n source = 'route';\n }\n\n // Otherwise, just take the original URL\n else if (req.originalUrl || req.url) {\n path = stripUrlQueryAndFragment(req.originalUrl || req.url || '');\n }\n let name = '';\n if (options.method && method) {\n name += method;\n }\n if (options.method && options.path) {\n name += ' ';\n }\n if (options.path && path) {\n name += path;\n }\n return [name, source];\n}\n\n/** JSDoc */\nfunction extractTransaction(req, type) {\n switch (type) {\n case 'path':\n {\n return extractPathForTransaction(req, {\n path: true\n })[0];\n }\n case 'handler':\n {\n return req.route && req.route.stack && req.route.stack[0] && req.route.stack[0].name || '<anonymous>';\n }\n case 'methodPath':\n default:\n {\n return extractPathForTransaction(req, {\n path: true,\n method: true\n })[0];\n }\n }\n}\n\n/** JSDoc */\nfunction extractUserData(user, keys) {\n var extractedUser = {};\n var attributes = Array.isArray(keys) ? keys : DEFAULT_USER_INCLUDES;\n attributes.forEach(key => {\n if (user && key in user) {\n extractedUser[key] = user[key];\n }\n });\n return extractedUser;\n}\n\n/**\n * Normalize data from the request object, accounting for framework differences.\n *\n * @param req The request object from which to extract data\n * @param options.include An optional array of keys to include in the normalized data. Defaults to\n * DEFAULT_REQUEST_INCLUDES if not provided.\n * @param options.deps Injected, platform-specific dependencies\n * @returns An object containing normalized request data\n */\nfunction extractRequestData(req, options) {\n const {\n include = DEFAULT_REQUEST_INCLUDES,\n deps\n } = options || {};\n var requestData = {};\n\n // headers:\n // node, express, koa, nextjs: req.headers\n var headers = req.headers || {};\n // method:\n // node, express, koa, nextjs: req.method\n var method = req.method;\n // host:\n // express: req.hostname in > 4 and req.host in < 4\n // koa: req.host\n // node, nextjs: req.headers.host\n var host = req.hostname || req.host || headers.host || '<no host>';\n // protocol:\n // node, nextjs: <n/a>\n // express, koa: req.protocol\n var protocol = req.protocol === 'https' || req.socket && req.socket.encrypted ? 'https' : 'http';\n // url (including path and query string):\n // node, express: req.originalUrl\n // koa, nextjs: req.url\n var originalUrl = req.originalUrl || req.url || '';\n // absolute url\n var absoluteUrl = `${protocol}://${host}${originalUrl}`;\n include.forEach(key => {\n switch (key) {\n case 'headers':\n {\n requestData.headers = headers;\n break;\n }\n case 'method':\n {\n requestData.method = method;\n break;\n }\n case 'url':\n {\n requestData.url = absoluteUrl;\n break;\n }\n case 'cookies':\n {\n // cookies:\n // node, express, koa: req.headers.cookie\n // vercel, sails.js, express (w/ cookie middleware), nextjs: req.cookies\n requestData.cookies =\n // TODO (v8 / #5257): We're only sending the empty object for backwards compatibility, so the last bit can\n // come off in v8\n req.cookies || headers.cookie && deps && deps.cookie && deps.cookie.parse(headers.cookie) || {};\n break;\n }\n case 'query_string':\n {\n // query string:\n // node: req.url (raw)\n // express, koa, nextjs: req.query\n requestData.query_string = extractQueryParams(req, deps);\n break;\n }\n case 'data':\n {\n if (method === 'GET' || method === 'HEAD') {\n break;\n }\n // body data:\n // express, koa, nextjs: req.body\n //\n // when using node by itself, you have to read the incoming stream(see\n // https://nodejs.dev/learn/get-http-request-body-data-using-nodejs); if a user is doing that, we can't know\n // where they're going to store the final result, so they'll have to capture this data themselves\n if (req.body !== undefined) {\n requestData.data = isString(req.body) ? req.body : JSON.stringify(normalize(req.body));\n }\n break;\n }\n default:\n {\n if ({}.hasOwnProperty.call(req, key)) {\n requestData[key] = req[key];\n }\n }\n }\n });\n return requestData;\n}\n\n/**\n * Options deciding what parts of the request to use when enhancing an event\n */\n\n/**\n * Add data from the given request to the given event\n *\n * @param event The event to which the request data will be added\n * @param req Request object\n * @param options.include Flags to control what data is included\n * @param options.deps Injected platform-specific dependencies\n * @hidden\n */\nfunction addRequestDataToEvent(event, req, options) {\n var include = {\n ...DEFAULT_INCLUDES,\n ..._optionalChain([options, 'optionalAccess', _ => _.include])\n };\n if (include.request) {\n var extractedRequestData = Array.isArray(include.request) ? extractRequestData(req, {\n include: include.request,\n deps: _optionalChain([options, 'optionalAccess', _2 => _2.deps])\n }) : extractRequestData(req, {\n deps: _optionalChain([options, 'optionalAccess', _3 => _3.deps])\n });\n event.request = {\n ...event.request,\n ...extractedRequestData\n };\n }\n if (include.user) {\n var extractedUser = req.user && isPlainObject(req.user) ? extractUserData(req.user, include.user) : {};\n if (Object.keys(extractedUser).length) {\n event.user = {\n ...event.user,\n ...extractedUser\n };\n }\n }\n\n // client ip:\n // node, nextjs: req.socket.remoteAddress\n // express, koa: req.ip\n if (include.ip) {\n var ip = req.ip || req.socket && req.socket.remoteAddress;\n if (ip) {\n event.user = {\n ...event.user,\n ip_address: ip\n };\n }\n }\n if (include.transaction && !event.transaction) {\n // TODO do we even need this anymore?\n // TODO make this work for nextjs\n event.transaction = extractTransaction(req, include.transaction);\n }\n return event;\n}\nfunction extractQueryParams(req, deps) {\n // url (including path and query string):\n // node, express: req.originalUrl\n // koa, nextjs: req.url\n let originalUrl = req.originalUrl || req.url || '';\n if (!originalUrl) {\n return;\n }\n\n // The `URL` constructor can't handle internal URLs of the form `/some/path/here`, so stick a dummy protocol and\n // hostname on the beginning. Since the point here is just to grab the query string, it doesn't matter what we use.\n if (originalUrl.startsWith('/')) {\n originalUrl = `http://dogs.are.great${originalUrl}`;\n }\n return req.query || typeof URL !== undefined && new URL(originalUrl).search.replace('?', '') ||\n // In Node 8, `URL` isn't in the global scope, so we have to use the built-in module from Node\n deps && deps.url && deps.url.parse(originalUrl).query || undefined;\n}\nexport { addRequestDataToEvent, addRequestDataToTransaction, extractPathForTransaction, extractRequestData };","map":{"version":3,"names":["_optionalChain","isString","isPlainObject","normalize","stripUrlQueryAndFragment","DEFAULT_INCLUDES","ip","request","transaction","user","DEFAULT_REQUEST_INCLUDES","DEFAULT_USER_INCLUDES","addRequestDataToTransaction","req","deps","metadata","source","setName","extractPathForTransaction","path","method","setData","originalUrl","url","baseUrl","extractQueryParams","options","toUpperCase","customRoute","route","name","extractTransaction","type","stack","extractUserData","keys","extractedUser","attributes","Array","isArray","forEach","key","extractRequestData","include","requestData","headers","host","hostname","protocol","socket","encrypted","absoluteUrl","cookies","cookie","parse","query_string","body","undefined","data","JSON","stringify","hasOwnProperty","call","addRequestDataToEvent","event","_","extractedRequestData","_2","_3","Object","length","remoteAddress","ip_address","startsWith","query","URL","search","replace"],"sources":["C:/Users/eudes.inacio/GabineteDigital/gabinete-digital-fo/node_modules/@sentry/utils/esm/requestdata.js"],"sourcesContent":["import { _optionalChain } from './buildPolyfills';\nimport { isString, isPlainObject } from './is.js';\nimport { normalize } from './normalize.js';\nimport { stripUrlQueryAndFragment } from './url.js';\n\nvar DEFAULT_INCLUDES = {\n ip: false,\n request: true,\n transaction: true,\n user: true,\n};\nvar DEFAULT_REQUEST_INCLUDES = ['cookies', 'data', 'headers', 'method', 'query_string', 'url'];\nvar DEFAULT_USER_INCLUDES = ['id', 'username', 'email'];\n\n/**\n * Sets parameterized route as transaction name e.g.: `GET /users/:id`\n * Also adds more context data on the transaction from the request\n */\nfunction addRequestDataToTransaction(\n transaction,\n req,\n deps,\n) {\n if (!transaction) return;\n if (!transaction.metadata.source || transaction.metadata.source === 'url') {\n // Attempt to grab a parameterized route off of the request\n transaction.setName(...extractPathForTransaction(req, { path: true, method: true }));\n }\n transaction.setData('url', req.originalUrl || req.url);\n if (req.baseUrl) {\n transaction.setData('baseUrl', req.baseUrl);\n }\n transaction.setData('query', extractQueryParams(req, deps));\n}\n\n/**\n * Extracts a complete and parameterized path from the request object and uses it to construct transaction name.\n * If the parameterized transaction name cannot be extracted, we fall back to the raw URL.\n *\n * Additionally, this function determines and returns the transaction name source\n *\n * eg. GET /mountpoint/user/:id\n *\n * @param req A request object\n * @param options What to include in the transaction name (method, path, or a custom route name to be\n * used instead of the request's route)\n *\n * @returns A tuple of the fully constructed transaction name [0] and its source [1] (can be either 'route' or 'url')\n */\nfunction extractPathForTransaction(\n req,\n options = {},\n) {\n var method = req.method && req.method.toUpperCase();\n\n let path = '';\n let source = 'url';\n\n // Check to see if there's a parameterized route we can use (as there is in Express)\n if (options.customRoute || req.route) {\n path = options.customRoute || `${req.baseUrl || ''}${req.route && req.route.path}`;\n source = 'route';\n }\n\n // Otherwise, just take the original URL\n else if (req.originalUrl || req.url) {\n path = stripUrlQueryAndFragment(req.originalUrl || req.url || '');\n }\n\n let name = '';\n if (options.method && method) {\n name += method;\n }\n if (options.method && options.path) {\n name += ' ';\n }\n if (options.path && path) {\n name += path;\n }\n\n return [name, source];\n}\n\n/** JSDoc */\nfunction extractTransaction(req, type) {\n switch (type) {\n case 'path': {\n return extractPathForTransaction(req, { path: true })[0];\n }\n case 'handler': {\n return (req.route && req.route.stack && req.route.stack[0] && req.route.stack[0].name) || '<anonymous>';\n }\n case 'methodPath':\n default: {\n return extractPathForTransaction(req, { path: true, method: true })[0];\n }\n }\n}\n\n/** JSDoc */\nfunction extractUserData(\n user\n\n,\n keys,\n) {\n var extractedUser = {};\n var attributes = Array.isArray(keys) ? keys : DEFAULT_USER_INCLUDES;\n\n attributes.forEach(key => {\n if (user && key in user) {\n extractedUser[key] = user[key];\n }\n });\n\n return extractedUser;\n}\n\n/**\n * Normalize data from the request object, accounting for framework differences.\n *\n * @param req The request object from which to extract data\n * @param options.include An optional array of keys to include in the normalized data. Defaults to\n * DEFAULT_REQUEST_INCLUDES if not provided.\n * @param options.deps Injected, platform-specific dependencies\n * @returns An object containing normalized request data\n */\nfunction extractRequestData(\n req,\n options\n\n,\n) {\n const { include = DEFAULT_REQUEST_INCLUDES, deps } = options || {};\n var requestData = {};\n\n // headers:\n // node, express, koa, nextjs: req.headers\n var headers = (req.headers || {}) \n\n;\n // method:\n // node, express, koa, nextjs: req.method\n var method = req.method;\n // host:\n // express: req.hostname in > 4 and req.host in < 4\n // koa: req.host\n // node, nextjs: req.headers.host\n var host = req.hostname || req.host || headers.host || '<no host>';\n // protocol:\n // node, nextjs: <n/a>\n // express, koa: req.protocol\n var protocol = req.protocol === 'https' || (req.socket && req.socket.encrypted) ? 'https' : 'http';\n // url (including path and query string):\n // node, express: req.originalUrl\n // koa, nextjs: req.url\n var originalUrl = req.originalUrl || req.url || '';\n // absolute url\n var absoluteUrl = `${protocol}://${host}${originalUrl}`;\n include.forEach(key => {\n switch (key) {\n case 'headers': {\n requestData.headers = headers;\n break;\n }\n case 'method': {\n requestData.method = method;\n break;\n }\n case 'url': {\n requestData.url = absoluteUrl;\n break;\n }\n case 'cookies': {\n // cookies:\n // node, express, koa: req.headers.cookie\n // vercel, sails.js, express (w/ cookie middleware), nextjs: req.cookies\n requestData.cookies =\n // TODO (v8 / #5257): We're only sending the empty object for backwards compatibility, so the last bit can\n // come off in v8\n req.cookies || (headers.cookie && deps && deps.cookie && deps.cookie.parse(headers.cookie)) || {};\n break;\n }\n case 'query_string': {\n // query string:\n // node: req.url (raw)\n // express, koa, nextjs: req.query\n requestData.query_string = extractQueryParams(req, deps);\n break;\n }\n case 'data': {\n if (method === 'GET' || method === 'HEAD') {\n break;\n }\n // body data:\n // express, koa, nextjs: req.body\n //\n // when using node by itself, you have to read the incoming stream(see\n // https://nodejs.dev/learn/get-http-request-body-data-using-nodejs); if a user is doing that, we can't know\n // where they're going to store the final result, so they'll have to capture this data themselves\n if (req.body !== undefined) {\n requestData.data = isString(req.body) ? req.body : JSON.stringify(normalize(req.body));\n }\n break;\n }\n default: {\n if ({}.hasOwnProperty.call(req, key)) {\n requestData[key] = (req )[key];\n }\n }\n }\n });\n\n return requestData;\n}\n\n/**\n * Options deciding what parts of the request to use when enhancing an event\n */\n\n/**\n * Add data from the given request to the given event\n *\n * @param event The event to which the request data will be added\n * @param req Request object\n * @param options.include Flags to control what data is included\n * @param options.deps Injected platform-specific dependencies\n * @hidden\n */\nfunction addRequestDataToEvent(\n event,\n req,\n options,\n) {\n var include = {\n ...DEFAULT_INCLUDES,\n ..._optionalChain([options, 'optionalAccess', _ => _.include]),\n };\n\n if (include.request) {\n var extractedRequestData = Array.isArray(include.request)\n ? extractRequestData(req, { include: include.request, deps: _optionalChain([options, 'optionalAccess', _2 => _2.deps]) })\n : extractRequestData(req, { deps: _optionalChain([options, 'optionalAccess', _3 => _3.deps]) });\n\n event.request = {\n ...event.request,\n ...extractedRequestData,\n };\n }\n\n if (include.user) {\n var extractedUser = req.user && isPlainObject(req.user) ? extractUserData(req.user, include.user) : {};\n\n if (Object.keys(extractedUser).length) {\n event.user = {\n ...event.user,\n ...extractedUser,\n };\n }\n }\n\n // client ip:\n // node, nextjs: req.socket.remoteAddress\n // express, koa: req.ip\n if (include.ip) {\n var ip = req.ip || (req.socket && req.socket.remoteAddress);\n if (ip) {\n event.user = {\n ...event.user,\n ip_address: ip,\n };\n }\n }\n\n if (include.transaction && !event.transaction) {\n // TODO do we even need this anymore?\n // TODO make this work for nextjs\n event.transaction = extractTransaction(req, include.transaction);\n }\n\n return event;\n}\n\nfunction extractQueryParams(\n req,\n deps,\n) {\n // url (including path and query string):\n // node, express: req.originalUrl\n // koa, nextjs: req.url\n let originalUrl = req.originalUrl || req.url || '';\n\n if (!originalUrl) {\n return;\n }\n\n // The `URL` constructor can't handle internal URLs of the form `/some/path/here`, so stick a dummy protocol and\n // hostname on the beginning. Since the point here is just to grab the query string, it doesn't matter what we use.\n if (originalUrl.startsWith('/')) {\n originalUrl = `http://dogs.are.great${originalUrl}`;\n }\n\n return (\n req.query ||\n (typeof URL !== undefined && new URL(originalUrl).search.replace('?', '')) ||\n // In Node 8, `URL` isn't in the global scope, so we have to use the built-in module from Node\n (deps && deps.url && deps.url.parse(originalUrl).query) ||\n undefined\n );\n}\n\nexport { addRequestDataToEvent, addRequestDataToTransaction, extractPathForTransaction, extractRequestData };\n"],"mappings":"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"},"metadata":{},"sourceType":"module"}