{"version":3,"file":"array-of-objects-utilities.umd.js","sources":["../node_modules/is-any-array/lib-esm/index.js","../node_modules/get-jpaths/lib/getJPaths.js","../node_modules/get-jpaths/lib/getJPathsAsObject.js","../lib/flattenToJPaths.js","../lib/getDistinctJPaths.js","../lib/objectArrayToText.js"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/unbound-method\nconst toString = Object.prototype.toString;\n/**\n * Checks if an object is an instance of an Array (array or typed array, except those that contain bigint values).\n *\n * @param value - Object to check.\n * @returns True if the object is an array or a typed array.\n */\nexport function isAnyArray(value) {\n    const tag = toString.call(value);\n    return tag.endsWith('Array]') && !tag.includes('Big');\n}\n//# sourceMappingURL=index.js.map","import { isAnyArray } from 'is-any-array';\n/**\n * Recursively extracts all JSON paths with their corresponding primitive values from an object.\n * @param obj - The input object or value to traverse.\n * @param options - Optional parameters to control traversal and filtering.\n * @returns an array of objects each containing a jpath and its corresponding primitive value.\n */\nexport function getJPaths(obj, options = {}) {\n    const { maxArrayElements = 5, maxDepth = 3, includeJPaths = [], excludeJPaths = [], includeJPathRegexps = [], excludeJPathRegexps = [], modifiers = {}, } = options;\n    // convert modifiers to a Map for faster access\n    const modifiersMap = new Map(Object.entries(modifiers));\n    function matchesInclude(path) {\n        if (includeJPaths.length === 0 && includeJPathRegexps.length === 0) {\n            return true;\n        }\n        if (includeJPaths.length > 0 && includeJPaths.includes(path))\n            return true;\n        return includeJPathRegexps.some((re) => re.test(path));\n    }\n    function isExcluded(path) {\n        if (excludeJPaths.length === 0 && excludeJPathRegexps.length === 0) {\n            return false;\n        }\n        if (excludeJPaths.length > 0 && excludeJPaths.includes(path))\n            return true;\n        return excludeJPathRegexps.some((re) => re.test(path));\n    }\n    function traverse(value, prefix = '', depth = 0) {\n        // Stop if depth exceeds maximum\n        if (depth > maxDepth) {\n            return [];\n        }\n        const modifier = modifiersMap.get(prefix);\n        if (modifier) {\n            value = modifier(value);\n        }\n        let result = [];\n        if (isAnyArray(value)) {\n            const limitedItems = value.slice(0, maxArrayElements);\n            for (const [idx, item] of limitedItems.entries()) {\n                const newPrefix = prefix ? `${prefix}.${idx}` : `${idx}`;\n                result = result.concat(traverse(item, newPrefix, depth + 1));\n            }\n        }\n        else if (typeof value === 'object' && value !== null) {\n            for (const key of Object.keys(value)) {\n                const child = value[key];\n                const newPrefix = prefix ? `${prefix}.${key}` : key;\n                result = result.concat(traverse(child, newPrefix, depth + 1));\n            }\n        }\n        else if ((typeof value === 'string' ||\n            typeof value === 'number' ||\n            typeof value === 'boolean') &&\n            matchesInclude(prefix) &&\n            !isExcluded(prefix)) {\n            result.push({ jpath: prefix, value });\n        }\n        return result;\n    }\n    return traverse(obj);\n}\n//# sourceMappingURL=getJPaths.js.map","import { getJPaths } from \"./getJPaths.js\";\n/**\n * Recursively extracts all JSON paths with their corresponding primitive values from an object.\n * @param obj - The input object or value to traverse.\n * @param options - Optional parameters to control traversal and filtering.\n * @returns an object mapping jpaths to their corresponding primitive values.\n */\nexport function getJPathsAsObject(obj, options = {}) {\n    const jpaths = getJPaths(obj, options);\n    const result = {};\n    for (const entry of jpaths) {\n        result[entry.jpath] = entry.value;\n    }\n    return result;\n}\n//# sourceMappingURL=getJPathsAsObject.js.map","import { getJPathsAsObject } from 'get-jpaths';\n/**\n * When given an array of objects, it flattens each object to its JSON paths representation.\n * For example if you have an array of objects like:\n * [{ a: { b: 'ab', c: 'cd' }, d: 4 }, { e: 5 }]\n * It will return:\n * [{ 'a.b': 'ab', 'a.c': 'cd', 'd': 4 }, { 'e': 5 }]\n * Numerous options allows to select jPaths and modify values.\n * @param data - Array of objects to flatten\n * @param options - Options to customize the flattening process based on the get-jpaths library\n * @returns Array of flattened objects\n */\nexport function flattenToJPaths(data, options = {}) {\n    const results = [];\n    for (const item of data) {\n        results.push(getJPathsAsObject(item, options));\n    }\n    return results;\n}\n//# sourceMappingURL=flattenToJPaths.js.map","import { getJPaths } from 'get-jpaths';\n/**\n * When given an array of objects, it returns the distinct JSON paths found in the objects.\n * For example if you have an array of objects like:\n * [{ a: { b: 'ab', c: 'cd' }, d: 4 }, { e: 5 }]\n * It will return:\n * ['a.b', 'a.c', 'd', 'e']\n * @param data - array of objects\n * @param options - options to get jpaths\n * @returns Array of distinct JSON paths\n */\nexport function getDistinctJPaths(data, options = {}) {\n    const jPathSet = new Set();\n    for (const item of data) {\n        const jpaths = getJPaths(item, options);\n        for (const jpath of jpaths) {\n            jPathSet.add(jpath.jpath);\n        }\n    }\n    return Array.from(jPathSet);\n}\n//# sourceMappingURL=getDistinctJPaths.js.map","/**\n * Converts an array of objects into a text representation (e.g., CSV or TSV).\n * @param data - Array of objects\n * @param options - Options for text conversion\n * @returns Text representation of the object array\n */\nexport function objectArrayToText(data, options = {}) {\n    const { delimiter = '\\t', eol = '\\n', header = true, headerMapping = {}, } = options;\n    const allKeys = new Set();\n    for (const item of data) {\n        for (const key in item) {\n            allKeys.add(key);\n        }\n    }\n    const keys = Array.from(allKeys);\n    let text = '';\n    if (header) {\n        const headerRow = keys\n            .map((key) => headerMapping[key] || key)\n            .join(delimiter);\n        text += headerRow + eol;\n    }\n    for (const item of data) {\n        const row = keys\n            .map((key) => {\n            const value = item[key];\n            return value !== undefined ? String(value) : '';\n        })\n            .join(delimiter);\n        text += row + eol;\n    }\n    return text;\n}\n//# sourceMappingURL=objectArrayToText.js.map"],"names":["toString","Object","prototype","isAnyArray","value","tag","call","endsWith","includes","getJPaths","obj","options","maxArrayElements","maxDepth","includeJPaths","excludeJPaths","includeJPathRegexps","excludeJPathRegexps","modifiers","modifiersMap","Map","entries","matchesInclude","path","length","some","re","test","isExcluded","traverse","prefix","depth","modifier","get","result","limitedItems","slice","idx","item","newPrefix","concat","key","keys","child","push","jpath","getJPathsAsObject","jpaths","entry","flattenToJPaths","data","results","getDistinctJPaths","jPathSet","Set","add","Array","from","objectArrayToText","delimiter","eol","header","headerMapping","allKeys","text","headerRow","map","join","row","undefined","String"],"mappings":"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","x_google_ignoreList":[0,1,2]}