@lumigo/node-core
Advanced tools
Comparing version 1.4.0 to 1.5.0
@@ -1,2 +0,5 @@ | ||
export const runOneTimeWrapper = (func, context = undefined) => { | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.runOneTimeWrapper = void 0; | ||
const runOneTimeWrapper = (func, context = undefined) => { | ||
let done = false; | ||
@@ -11,2 +14,3 @@ return (...args) => { | ||
}; | ||
exports.runOneTimeWrapper = runOneTimeWrapper; | ||
//# sourceMappingURL=functionUtils.js.map |
@@ -1,2 +0,18 @@ | ||
export * from './payloadStringify'; | ||
"use strict"; | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
var desc = Object.getOwnPropertyDescriptor(m, k); | ||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
desc = { enumerable: true, get: function() { return m[k]; } }; | ||
} | ||
Object.defineProperty(o, k2, desc); | ||
}) : (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
o[k2] = m[k]; | ||
})); | ||
var __exportStar = (this && this.__exportStar) || function(m, exports) { | ||
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
__exportStar(require("./payloadStringify"), exports); | ||
//# sourceMappingURL=index.js.map |
@@ -1,5 +0,8 @@ | ||
import { getEventEntitySize, LUMIGO_SECRET_MASKING_REGEX, LUMIGO_SECRET_MASKING_REGEX_BACKWARD_COMP, OMITTING_KEYS_REGEXES, parseJsonFromEnvVar, isString, LUMIGO_WHITELIST_KEYS_REGEXES, } from '../utils'; | ||
import { safeExecute } from '../utils'; | ||
import { getLogger } from '../logger'; | ||
import untruncateJson from '../tools/untrancateJson'; | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.scrub = exports.payloadStringify = exports.prune = exports.keyToOmitRegexes = void 0; | ||
const utils_1 = require("../utils"); | ||
const utils_2 = require("../utils"); | ||
const logger_1 = require("../logger"); | ||
const untrancateJson_1 = require("../tools/untrancateJson"); | ||
const nativeTypes = ['string', 'bigint', 'number', 'undefined', 'boolean']; | ||
@@ -9,5 +12,5 @@ const SCRUBBED_TEXT = '****'; | ||
const isNativeType = (obj) => nativeTypes.includes(typeof obj); | ||
const keyToRegexes = (regexesList = OMITTING_KEYS_REGEXES, backwardCompRegexEnvVarName = LUMIGO_SECRET_MASKING_REGEX_BACKWARD_COMP, regexesEnvVarName = LUMIGO_SECRET_MASKING_REGEX) => { | ||
const keyToRegexes = (regexesList = utils_1.OMITTING_KEYS_REGEXES, backwardCompRegexEnvVarName = utils_1.LUMIGO_SECRET_MASKING_REGEX_BACKWARD_COMP, regexesEnvVarName = utils_1.LUMIGO_SECRET_MASKING_REGEX) => { | ||
if (process.env[backwardCompRegexEnvVarName]) { | ||
const parseResponse = parseJsonFromEnvVar(backwardCompRegexEnvVarName, true); | ||
const parseResponse = (0, utils_1.parseJsonFromEnvVar)(backwardCompRegexEnvVarName, true); | ||
if (parseResponse) { | ||
@@ -18,3 +21,3 @@ regexesList = parseResponse; | ||
else if (process.env[regexesEnvVarName]) { | ||
const parseResponse = parseJsonFromEnvVar(regexesEnvVarName, true); | ||
const parseResponse = (0, utils_1.parseJsonFromEnvVar)(regexesEnvVarName, true); | ||
if (parseResponse) { | ||
@@ -26,12 +29,13 @@ regexesList = parseResponse; | ||
}; | ||
export const keyToOmitRegexes = () => { | ||
const keyToOmitRegexes = () => { | ||
return keyToRegexes(); | ||
}; | ||
exports.keyToOmitRegexes = keyToOmitRegexes; | ||
const whitelistKeysRegexes = () => { | ||
return keyToRegexes([], null, LUMIGO_WHITELIST_KEYS_REGEXES); | ||
return keyToRegexes([], null, utils_1.LUMIGO_WHITELIST_KEYS_REGEXES); | ||
}; | ||
export const prune = (str, maxLength) => { | ||
const prune = (str, maxLength) => { | ||
let toPrune = str; | ||
if (!isString(toPrune)) { | ||
getLogger().warn('Prune was called on a non-string object', toPrune); | ||
if (!(0, utils_1.isString)(toPrune)) { | ||
(0, logger_1.getLogger)().warn('Prune was called on a non-string object', toPrune); | ||
toPrune = ''; | ||
@@ -41,2 +45,3 @@ } | ||
}; | ||
exports.prune = prune; | ||
const keyContainsRegex = (regexes, key) => { | ||
@@ -51,3 +56,3 @@ if (!isNaN(key)) { | ||
const getNativeVarSize = (obj) => (obj ? (obj.toString().length * 4) / 3 : 0); | ||
const getItemsInPath = safeExecute((payload, path) => { | ||
const getItemsInPath = (0, utils_2.safeExecute)((payload, path) => { | ||
if (!payload || !path) { | ||
@@ -67,7 +72,7 @@ return []; | ||
return []; | ||
}, 'Failed to find items to skip scrubbing', getLogger().LOG_LEVELS.WARNING, []); | ||
export const payloadStringify = (payload, maxPayloadSize = getEventEntitySize(), skipScrubPath = null, truncated = false) => { | ||
}, 'Failed to find items to skip scrubbing', (0, logger_1.getLogger)().LOG_LEVELS.WARNING, []); | ||
const payloadStringify = (payload, maxPayloadSize = (0, utils_1.getEventEntitySize)(), skipScrubPath = null, truncated = false) => { | ||
let totalSize = 0; | ||
const refsFound = []; | ||
const secretsRegexes = keyToOmitRegexes(); | ||
const secretsRegexes = (0, exports.keyToOmitRegexes)(); | ||
const whitelistRegexes = whitelistKeysRegexes(); | ||
@@ -97,7 +102,7 @@ const secretItemsToSkipScrubbing = new Set(getItemsInPath(payload, skipScrubPath)); | ||
isPruned = true; | ||
return prune(value, maxPayloadSize); | ||
return (0, exports.prune)(value, maxPayloadSize); | ||
} | ||
if (value instanceof Error) | ||
return { | ||
stack: prune(value.stack, maxPayloadSize), | ||
stack: (0, exports.prune)(value.stack, maxPayloadSize), | ||
message: value.message, | ||
@@ -120,20 +125,22 @@ }; | ||
}; | ||
exports.payloadStringify = payloadStringify; | ||
const isJsonContent = (payload, headers) => { | ||
return isString(payload) && headers['content-type'] && headers['content-type'].includes('json'); | ||
return (0, utils_1.isString)(payload) && headers['content-type'] && headers['content-type'].includes('json'); | ||
}; | ||
export function scrub(payload, headers, sizeLimit, truncated = false) { | ||
function scrub(payload, headers, sizeLimit, truncated = false) { | ||
try { | ||
if (isJsonContent(payload, headers)) { | ||
if (truncated) | ||
payload = untruncateJson(payload); | ||
return payloadStringify(JSON.parse(payload), sizeLimit, null, truncated); | ||
payload = (0, untrancateJson_1.default)(payload); | ||
return (0, exports.payloadStringify)(JSON.parse(payload), sizeLimit, null, truncated); | ||
} | ||
else { | ||
return payloadStringify(payload, sizeLimit, truncated); | ||
return (0, exports.payloadStringify)(payload, sizeLimit, truncated); | ||
} | ||
} | ||
catch (e) { | ||
return payloadStringify(payload, sizeLimit, truncated); | ||
return (0, exports.payloadStringify)(payload, sizeLimit, truncated); | ||
} | ||
} | ||
exports.scrub = scrub; | ||
//# sourceMappingURL=payloadStringify.js.map |
@@ -1,5 +0,6 @@ | ||
import * as Logger_1 from './logger'; | ||
export { Logger_1 as Logger }; | ||
import * as CommonUtils_1 from './common'; | ||
export { CommonUtils_1 as CommonUtils }; | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.CommonUtils = exports.Logger = void 0; | ||
exports.Logger = require("./logger"); | ||
exports.CommonUtils = require("./common"); | ||
//# sourceMappingURL=index.js.map |
@@ -1,2 +0,5 @@ | ||
export function isAwsContext(awsContext) { | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.isAwsContext = void 0; | ||
function isAwsContext(awsContext) { | ||
const context = awsContext; | ||
@@ -12,2 +15,3 @@ return (context.invokedFunctionArn !== undefined && | ||
} | ||
exports.isAwsContext = isAwsContext; | ||
//# sourceMappingURL=awsGuards.js.map |
@@ -0,1 +1,4 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.getLogger = exports.setLoggerPrefix = exports.setLogger = void 0; | ||
const WARN_CLIENT_PREFIX = 'Lumigo Warning'; | ||
@@ -59,5 +62,8 @@ let LOG_PREFIX = '#LUMIGO#'; | ||
}; | ||
export const setLogger = (logger) => (coreLogger = logger); | ||
export const setLoggerPrefix = (prefix) => (LOG_PREFIX = prefix); | ||
export const getLogger = () => coreLogger; | ||
const setLogger = (logger) => (coreLogger = logger); | ||
exports.setLogger = setLogger; | ||
const setLoggerPrefix = (prefix) => (LOG_PREFIX = prefix); | ||
exports.setLoggerPrefix = setLoggerPrefix; | ||
const getLogger = () => coreLogger; | ||
exports.getLogger = getLogger; | ||
//# sourceMappingURL=logger.js.map |
@@ -1,4 +0,8 @@ | ||
export function aws() { | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.aws = void 0; | ||
function aws() { | ||
console.log('AWS'); | ||
} | ||
exports.aws = aws; | ||
//# sourceMappingURL=aws.js.map |
@@ -1,3 +0,5 @@ | ||
import * as AWSParsers_1 from './aws'; | ||
export { AWSParsers_1 as AWSParsers }; | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.AWSParsers = void 0; | ||
exports.AWSParsers = require("./aws"); | ||
//# sourceMappingURL=index.js.map |
@@ -1,3 +0,5 @@ | ||
import * as AWSParsers_1 from './aws'; | ||
export { AWSParsers_1 as AWSParsers }; | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.AWSParsers = void 0; | ||
exports.AWSParsers = require("./aws"); | ||
//# sourceMappingURL=index.js.map |
@@ -0,3 +1,6 @@ | ||
"use strict"; | ||
//Copied from https://github.com/ThomasR/JSON.sortify/blob/master/src/index.js | ||
//Because its not TS compatible | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.sortify = void 0; | ||
const sortKeys = (o) => { | ||
@@ -31,3 +34,3 @@ if (Array.isArray(o)) { | ||
const jsonStringify = JSON.stringify.bind(JSON); // this allows redefinition like JSON.stringify = require('json.sortify') | ||
export const sortify = (value, replacer, space) => { | ||
const sortify = (value, replacer, space) => { | ||
// replacer, toJSON(), cyclic references and other stuff is better handled by native stringifier. | ||
@@ -44,2 +47,3 @@ // So we do JSON.stringify(sortKeys( JSON.parse(JSON.stringify()) )). | ||
}; | ||
exports.sortify = sortify; | ||
//# sourceMappingURL=jsonSortify.js.map |
@@ -0,1 +1,3 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
// copied from https://www.npmjs.com/package/untruncate-json | ||
@@ -29,3 +31,3 @@ var ContextType; | ||
} | ||
export default function untruncateJson(json) { | ||
function untruncateJson(json) { | ||
const contextStack = [ContextType.TOP_LEVEL]; | ||
@@ -235,2 +237,3 @@ let position = 0; | ||
} | ||
exports.default = untruncateJson; | ||
//# sourceMappingURL=untrancateJson.js.map |
@@ -0,1 +1,2 @@ | ||
"use strict"; | ||
/* | ||
@@ -6,2 +7,4 @@ XML TO JSON | ||
*/ | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.traverse = void 0; | ||
const clean = function cleanXML(xml) { | ||
@@ -15,3 +18,3 @@ return xml | ||
}; | ||
export const traverse = (xml, attributeMode) => { | ||
const traverse = (xml, attributeMode) => { | ||
xml = clean(xml); | ||
@@ -77,3 +80,3 @@ const tagFinder = new RegExp('<(.*?)[>|\\s|/]', 'g'); //find the current tag we are working on | ||
//go one level deeper | ||
const next = traverse(substring, attributeMode); | ||
const next = (0, exports.traverse)(substring, attributeMode); | ||
//when returning from recursion, build up the json | ||
@@ -167,2 +170,3 @@ if (typeof next === 'object') { | ||
}; | ||
exports.traverse = traverse; | ||
//Helper methods | ||
@@ -169,0 +173,0 @@ //Determine if a tag is self closing or not. Could be improved |
@@ -1,2 +0,3 @@ | ||
export {}; | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
//# sourceMappingURL=awsEnvironment.js.map |
@@ -1,2 +0,3 @@ | ||
export {}; | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
//# sourceMappingURL=edgeTypes.js.map |
@@ -1,2 +0,3 @@ | ||
export {}; | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
//# sourceMappingURL=basicSpan.js.map |
@@ -1,2 +0,3 @@ | ||
export {}; | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
//# sourceMappingURL=functionSpan.js.map |
@@ -1,2 +0,3 @@ | ||
export {}; | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
//# sourceMappingURL=httpSpan.js.map |
@@ -1,7 +0,10 @@ | ||
import { getLogger } from './logger'; | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.safeExecute = exports.parseJsonFromEnvVar = exports.getEventEntitySize = exports.LUMIGO_MAX_ENTRY_SIZE = exports.isString = exports.isStoreLogs = exports.OMITTING_KEYS_REGEXES = exports.LUMIGO_WHITELIST_KEYS_REGEXES = exports.LUMIGO_SECRET_MASKING_REGEX = exports.LUMIGO_SECRET_MASKING_REGEX_BACKWARD_COMP = void 0; | ||
const logger_1 = require("./logger"); | ||
const DEBUG_FLAG = 'LUMIGO_DEBUG'; | ||
export const LUMIGO_SECRET_MASKING_REGEX_BACKWARD_COMP = 'LUMIGO_BLACKLIST_REGEX'; | ||
export const LUMIGO_SECRET_MASKING_REGEX = 'LUMIGO_SECRET_MASKING_REGEX'; | ||
export const LUMIGO_WHITELIST_KEYS_REGEXES = 'LUMIGO_WHITELIST_KEYS_REGEXES'; | ||
export const OMITTING_KEYS_REGEXES = [ | ||
exports.LUMIGO_SECRET_MASKING_REGEX_BACKWARD_COMP = 'LUMIGO_BLACKLIST_REGEX'; | ||
exports.LUMIGO_SECRET_MASKING_REGEX = 'LUMIGO_SECRET_MASKING_REGEX'; | ||
exports.LUMIGO_WHITELIST_KEYS_REGEXES = 'LUMIGO_WHITELIST_KEYS_REGEXES'; | ||
exports.OMITTING_KEYS_REGEXES = [ | ||
'.*pass.*', | ||
@@ -20,11 +23,13 @@ '.*key.*', | ||
const validateEnvVar = (envVar, value = 'TRUE') => !!(process.env[envVar] && process.env[envVar].toUpperCase() === value.toUpperCase()); | ||
export const isStoreLogs = () => validateEnvVar(STORE_LOGS_FLAG); | ||
export function isString(x) { | ||
const isStoreLogs = () => validateEnvVar(STORE_LOGS_FLAG); | ||
exports.isStoreLogs = isStoreLogs; | ||
function isString(x) { | ||
return Object.prototype.toString.call(x) === '[object String]'; | ||
} | ||
export const LUMIGO_MAX_ENTRY_SIZE = 2048; | ||
export const getEventEntitySize = (hasError = false) => { | ||
exports.isString = isString; | ||
exports.LUMIGO_MAX_ENTRY_SIZE = 2048; | ||
const getEventEntitySize = (hasError = false) => { | ||
const basicSize = parseInt(process.env['MAX_EVENT_ENTITY_SIZE']) || | ||
parseInt(process.env['LUMIGO_MAX_ENTRY_SIZE']) || | ||
LUMIGO_MAX_ENTRY_SIZE; | ||
exports.LUMIGO_MAX_ENTRY_SIZE; | ||
if (hasError) { | ||
@@ -35,3 +40,4 @@ return basicSize * 2; | ||
}; | ||
export const parseJsonFromEnvVar = (envVar, warnClient = false, defaultReturnValue) => { | ||
exports.getEventEntitySize = getEventEntitySize; | ||
const parseJsonFromEnvVar = (envVar, warnClient = false, defaultReturnValue) => { | ||
try { | ||
@@ -41,7 +47,8 @@ return JSON.parse(process.env[envVar]); | ||
catch (e) { | ||
warnClient && getLogger().warnClient(`${envVar} need to be a valid JSON`); | ||
warnClient && (0, logger_1.getLogger)().warnClient(`${envVar} need to be a valid JSON`); | ||
} | ||
return undefined; | ||
}; | ||
export function safeExecute(callback, message = 'Error in Lumigo tracer', logLevel = getLogger().LOG_LEVELS.WARNING, defaultReturn = undefined) { | ||
exports.parseJsonFromEnvVar = parseJsonFromEnvVar; | ||
function safeExecute(callback, message = 'Error in Lumigo tracer', logLevel = (0, logger_1.getLogger)().LOG_LEVELS.WARNING, defaultReturn = undefined) { | ||
return function (...args) { | ||
@@ -52,3 +59,3 @@ try { | ||
catch (err) { | ||
getLogger().log(logLevel, message, err); | ||
(0, logger_1.getLogger)().log(logLevel, message, err); | ||
return defaultReturn; | ||
@@ -58,2 +65,3 @@ } | ||
} | ||
exports.safeExecute = safeExecute; | ||
const recursiveGetKeyByDepth = (event, keyToSearch, maxDepth) => { | ||
@@ -60,0 +68,0 @@ if (maxDepth === 0) { |
{ | ||
"name": "@lumigo/node-core", | ||
"version": "1.4.0", | ||
"version": "1.5.0", | ||
"description": "Lumigo core node sdk", | ||
@@ -5,0 +5,0 @@ "main": "lib/index.js", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
95484
979
0