tty-table 6.0.0 → 6.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../node_modules/clone/clone.js","../node_modules/defaults/index.js","../node_modules/wcwidth/combining.js","../node_modules/wcwidth/index.js","../src/cli.ts","../src/defaults.ts","../src/style.ts","../src/format.ts","../src/render.ts","../src/factory.ts","../src/index.ts","../src/ansi.ts"],"sourcesContent":["var clone = (function() {\n'use strict';\n\n/**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n * circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n * a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n * (optional - defaults to parent prototype).\n*/\nfunction clone(parent, circular, depth, prototype) {\n var filter;\n if (typeof circular === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n filter = circular.filter;\n circular = circular.circular\n }\n // maintain two arrays for circular references, where corresponding parents\n // and children have the same index\n var allParents = [];\n var allChildren = [];\n\n var useBuffer = typeof Buffer != 'undefined';\n\n if (typeof circular == 'undefined')\n circular = true;\n\n if (typeof depth == 'undefined')\n depth = Infinity;\n\n // recurse this function so we don't reset allParents and allChildren\n function _clone(parent, depth) {\n // cloning null always returns null\n if (parent === null)\n return null;\n\n if (depth == 0)\n return parent;\n\n var child;\n var proto;\n if (typeof parent != 'object') {\n return parent;\n }\n\n if (clone.__isArray(parent)) {\n child = [];\n } else if (clone.__isRegExp(parent)) {\n child = new RegExp(parent.source, __getRegExpFlags(parent));\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n } else if (clone.__isDate(parent)) {\n child = new Date(parent.getTime());\n } else if (useBuffer && Buffer.isBuffer(parent)) {\n if (Buffer.allocUnsafe) {\n // Node.js >= 4.5.0\n child = Buffer.allocUnsafe(parent.length);\n } else {\n // Older Node.js versions\n child = new Buffer(parent.length);\n }\n parent.copy(child);\n return child;\n } else {\n if (typeof prototype == 'undefined') {\n proto = Object.getPrototypeOf(parent);\n child = Object.create(proto);\n }\n else {\n child = Object.create(prototype);\n proto = prototype;\n }\n }\n\n if (circular) {\n var index = allParents.indexOf(parent);\n\n if (index != -1) {\n return allChildren[index];\n }\n allParents.push(parent);\n allChildren.push(child);\n }\n\n for (var i in parent) {\n var attrs;\n if (proto) {\n attrs = Object.getOwnPropertyDescriptor(proto, i);\n }\n\n if (attrs && attrs.set == null) {\n continue;\n }\n child[i] = _clone(parent[i], depth - 1);\n }\n\n return child;\n }\n\n return _clone(parent, depth);\n}\n\n/**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\nclone.clonePrototype = function clonePrototype(parent) {\n if (parent === null)\n return null;\n\n var c = function () {};\n c.prototype = parent;\n return new c();\n};\n\n// private utility functions\n\nfunction __objToStr(o) {\n return Object.prototype.toString.call(o);\n};\nclone.__objToStr = __objToStr;\n\nfunction __isDate(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\n};\nclone.__isDate = __isDate;\n\nfunction __isArray(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\n};\nclone.__isArray = __isArray;\n\nfunction __isRegExp(o) {\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n};\nclone.__isRegExp = __isRegExp;\n\nfunction __getRegExpFlags(re) {\n var flags = '';\n if (re.global) flags += 'g';\n if (re.ignoreCase) flags += 'i';\n if (re.multiline) flags += 'm';\n return flags;\n};\nclone.__getRegExpFlags = __getRegExpFlags;\n\nreturn clone;\n})();\n\nif (typeof module === 'object' && module.exports) {\n module.exports = clone;\n}\n","var clone = require('clone');\n\nmodule.exports = function(options, defaults) {\n options = options || {};\n\n Object.keys(defaults).forEach(function(key) {\n if (typeof options[key] === 'undefined') {\n options[key] = clone(defaults[key]);\n }\n });\n\n return options;\n};","module.exports = [\n [ 0x0300, 0x036F ], [ 0x0483, 0x0486 ], [ 0x0488, 0x0489 ],\n [ 0x0591, 0x05BD ], [ 0x05BF, 0x05BF ], [ 0x05C1, 0x05C2 ],\n [ 0x05C4, 0x05C5 ], [ 0x05C7, 0x05C7 ], [ 0x0600, 0x0603 ],\n [ 0x0610, 0x0615 ], [ 0x064B, 0x065E ], [ 0x0670, 0x0670 ],\n [ 0x06D6, 0x06E4 ], [ 0x06E7, 0x06E8 ], [ 0x06EA, 0x06ED ],\n [ 0x070F, 0x070F ], [ 0x0711, 0x0711 ], [ 0x0730, 0x074A ],\n [ 0x07A6, 0x07B0 ], [ 0x07EB, 0x07F3 ], [ 0x0901, 0x0902 ],\n [ 0x093C, 0x093C ], [ 0x0941, 0x0948 ], [ 0x094D, 0x094D ],\n [ 0x0951, 0x0954 ], [ 0x0962, 0x0963 ], [ 0x0981, 0x0981 ],\n [ 0x09BC, 0x09BC ], [ 0x09C1, 0x09C4 ], [ 0x09CD, 0x09CD ],\n [ 0x09E2, 0x09E3 ], [ 0x0A01, 0x0A02 ], [ 0x0A3C, 0x0A3C ],\n [ 0x0A41, 0x0A42 ], [ 0x0A47, 0x0A48 ], [ 0x0A4B, 0x0A4D ],\n [ 0x0A70, 0x0A71 ], [ 0x0A81, 0x0A82 ], [ 0x0ABC, 0x0ABC ],\n [ 0x0AC1, 0x0AC5 ], [ 0x0AC7, 0x0AC8 ], [ 0x0ACD, 0x0ACD ],\n [ 0x0AE2, 0x0AE3 ], [ 0x0B01, 0x0B01 ], [ 0x0B3C, 0x0B3C ],\n [ 0x0B3F, 0x0B3F ], [ 0x0B41, 0x0B43 ], [ 0x0B4D, 0x0B4D ],\n [ 0x0B56, 0x0B56 ], [ 0x0B82, 0x0B82 ], [ 0x0BC0, 0x0BC0 ],\n [ 0x0BCD, 0x0BCD ], [ 0x0C3E, 0x0C40 ], [ 0x0C46, 0x0C48 ],\n [ 0x0C4A, 0x0C4D ], [ 0x0C55, 0x0C56 ], [ 0x0CBC, 0x0CBC ],\n [ 0x0CBF, 0x0CBF ], [ 0x0CC6, 0x0CC6 ], [ 0x0CCC, 0x0CCD ],\n [ 0x0CE2, 0x0CE3 ], [ 0x0D41, 0x0D43 ], [ 0x0D4D, 0x0D4D ],\n [ 0x0DCA, 0x0DCA ], [ 0x0DD2, 0x0DD4 ], [ 0x0DD6, 0x0DD6 ],\n [ 0x0E31, 0x0E31 ], [ 0x0E34, 0x0E3A ], [ 0x0E47, 0x0E4E ],\n [ 0x0EB1, 0x0EB1 ], [ 0x0EB4, 0x0EB9 ], [ 0x0EBB, 0x0EBC ],\n [ 0x0EC8, 0x0ECD ], [ 0x0F18, 0x0F19 ], [ 0x0F35, 0x0F35 ],\n [ 0x0F37, 0x0F37 ], [ 0x0F39, 0x0F39 ], [ 0x0F71, 0x0F7E ],\n [ 0x0F80, 0x0F84 ], [ 0x0F86, 0x0F87 ], [ 0x0F90, 0x0F97 ],\n [ 0x0F99, 0x0FBC ], [ 0x0FC6, 0x0FC6 ], [ 0x102D, 0x1030 ],\n [ 0x1032, 0x1032 ], [ 0x1036, 0x1037 ], [ 0x1039, 0x1039 ],\n [ 0x1058, 0x1059 ], [ 0x1160, 0x11FF ], [ 0x135F, 0x135F ],\n [ 0x1712, 0x1714 ], [ 0x1732, 0x1734 ], [ 0x1752, 0x1753 ],\n [ 0x1772, 0x1773 ], [ 0x17B4, 0x17B5 ], [ 0x17B7, 0x17BD ],\n [ 0x17C6, 0x17C6 ], [ 0x17C9, 0x17D3 ], [ 0x17DD, 0x17DD ],\n [ 0x180B, 0x180D ], [ 0x18A9, 0x18A9 ], [ 0x1920, 0x1922 ],\n [ 0x1927, 0x1928 ], [ 0x1932, 0x1932 ], [ 0x1939, 0x193B ],\n [ 0x1A17, 0x1A18 ], [ 0x1B00, 0x1B03 ], [ 0x1B34, 0x1B34 ],\n [ 0x1B36, 0x1B3A ], [ 0x1B3C, 0x1B3C ], [ 0x1B42, 0x1B42 ],\n [ 0x1B6B, 0x1B73 ], [ 0x1DC0, 0x1DCA ], [ 0x1DFE, 0x1DFF ],\n [ 0x200B, 0x200F ], [ 0x202A, 0x202E ], [ 0x2060, 0x2063 ],\n [ 0x206A, 0x206F ], [ 0x20D0, 0x20EF ], [ 0x302A, 0x302F ],\n [ 0x3099, 0x309A ], [ 0xA806, 0xA806 ], [ 0xA80B, 0xA80B ],\n [ 0xA825, 0xA826 ], [ 0xFB1E, 0xFB1E ], [ 0xFE00, 0xFE0F ],\n [ 0xFE20, 0xFE23 ], [ 0xFEFF, 0xFEFF ], [ 0xFFF9, 0xFFFB ],\n [ 0x10A01, 0x10A03 ], [ 0x10A05, 0x10A06 ], [ 0x10A0C, 0x10A0F ],\n [ 0x10A38, 0x10A3A ], [ 0x10A3F, 0x10A3F ], [ 0x1D167, 0x1D169 ],\n [ 0x1D173, 0x1D182 ], [ 0x1D185, 0x1D18B ], [ 0x1D1AA, 0x1D1AD ],\n [ 0x1D242, 0x1D244 ], [ 0xE0001, 0xE0001 ], [ 0xE0020, 0xE007F ],\n [ 0xE0100, 0xE01EF ]\n]\n","\"use strict\"\n\nvar defaults = require('defaults')\nvar combining = require('./combining')\n\nvar DEFAULTS = {\n nul: 0,\n control: 0\n}\n\nmodule.exports = function wcwidth(str) {\n return wcswidth(str, DEFAULTS)\n}\n\nmodule.exports.config = function(opts) {\n opts = defaults(opts || {}, DEFAULTS)\n return function wcwidth(str) {\n return wcswidth(str, opts)\n }\n}\n\n/*\n * The following functions define the column width of an ISO 10646\n * character as follows:\n * - The null character (U+0000) has a column width of 0.\n * - Other C0/C1 control characters and DEL will lead to a return value\n * of -1.\n * - Non-spacing and enclosing combining characters (general category\n * code Mn or Me in the\n * Unicode database) have a column width of 0.\n * - SOFT HYPHEN (U+00AD) has a column width of 1.\n * - Other format characters (general category code Cf in the Unicode\n * database) and ZERO WIDTH\n * SPACE (U+200B) have a column width of 0.\n * - Hangul Jamo medial vowels and final consonants (U+1160-U+11FF)\n * have a column width of 0.\n * - Spacing characters in the East Asian Wide (W) or East Asian\n * Full-width (F) category as\n * defined in Unicode Technical Report #11 have a column width of 2.\n * - All remaining characters (including all printable ISO 8859-1 and\n * WGL4 characters, Unicode control characters, etc.) have a column\n * width of 1.\n * This implementation assumes that characters are encoded in ISO 10646.\n*/\n\nfunction wcswidth(str, opts) {\n if (typeof str !== 'string') return wcwidth(str, opts)\n\n var s = 0\n for (var i = 0; i < str.length; i++) {\n var n = wcwidth(str.charCodeAt(i), opts)\n if (n < 0) return -1\n s += n\n }\n\n return s\n}\n\nfunction wcwidth(ucs, opts) {\n // test for 8-bit control characters\n if (ucs === 0) return opts.nul\n if (ucs < 32 || (ucs >= 0x7f && ucs < 0xa0)) return opts.control\n\n // binary search in table of non-spacing characters\n if (bisearch(ucs)) return 0\n\n // if we arrive here, ucs is not a combining or C0/C1 control character\n return 1 +\n (ucs >= 0x1100 &&\n (ucs <= 0x115f || // Hangul Jamo init. consonants\n ucs == 0x2329 || ucs == 0x232a ||\n (ucs >= 0x2e80 && ucs <= 0xa4cf &&\n ucs != 0x303f) || // CJK ... Yi\n (ucs >= 0xac00 && ucs <= 0xd7a3) || // Hangul Syllables\n (ucs >= 0xf900 && ucs <= 0xfaff) || // CJK Compatibility Ideographs\n (ucs >= 0xfe10 && ucs <= 0xfe19) || // Vertical forms\n (ucs >= 0xfe30 && ucs <= 0xfe6f) || // CJK Compatibility Forms\n (ucs >= 0xff00 && ucs <= 0xff60) || // Fullwidth Forms\n (ucs >= 0xffe0 && ucs <= 0xffe6) ||\n (ucs >= 0x20000 && ucs <= 0x2fffd) ||\n (ucs >= 0x30000 && ucs <= 0x3fffd)));\n}\n\nfunction bisearch(ucs) {\n var min = 0\n var max = combining.length - 1\n var mid\n\n if (ucs < combining[0][0] || ucs > combining[max][1]) return false\n\n while (max >= min) {\n mid = Math.floor((min + max) / 2)\n if (ucs > combining[mid][1]) min = mid + 1\n else if (ucs < combining[mid][0]) max = mid - 1\n else return true\n }\n\n return false\n}\n","#!/usr/bin/env node\nimport fs from \"node:fs\"\nimport path from \"node:path\"\nimport { parse, parser } from \"csv\"\nimport yargs from \"yargs\"\nimport { hideBin } from \"yargs/helpers\"\nimport Table from \"./index\"\nimport { style } from \"./ansi\"\n\nconst main = async (): Promise<void> => {\n const argv = await yargs(hideBin(process.argv)).options({\n config: { type: \"string\" },\n format: { choices: [\"json\", \"csv\"] as const, default: \"csv\" },\n \"csv-delimiter\": { type: \"string\", default: \",\" },\n \"csv-escape\": { type: \"string\" },\n \"csv-rowDelimiter\": { type: \"string\", default: \"\\n\" }\n }).parse()\n\n const options: Record<string, unknown> = {}\n for (const [key, value] of Object.entries(argv)) if (key.startsWith(\"options-\")) options[key.slice(8)] = value\n\n let header: unknown[] = []\n if (argv.config) {\n const parsedHeader: unknown = JSON.parse(fs.readFileSync(path.resolve(argv.config), \"utf8\"))\n if (!Array.isArray(parsedHeader)) fail(\"Configuration error\", \"The header configuration must be a JSON array.\")\n header = parsedHeader\n }\n\n const stdin = await new Promise<string>((resolve) => {\n let data = \"\"\n process.stdin.setEncoding(\"utf8\")\n process.stdin.on(\"data\", (chunk: string) => { data += chunk })\n process.stdin.on(\"end\", () => resolve(data))\n })\n\n function fail(title: string, detail: string): never {\n console.error(`\\n${style(title, \"white\", \"bgRed\")}\\n\\n${detail}`)\n process.exit(1)\n }\n\n let rows: unknown[]\n if (argv.format === \"json\") {\n try {\n const parsed: unknown = JSON.parse(stdin)\n rows = Array.isArray(parsed) ? parsed : fail(\"JSON parse error\", \"Please provide a JSON array or use --format csv.\")\n } catch {\n fail(\"JSON parse error\", \"Please provide valid JSON or use --format csv.\")\n }\n } else {\n try {\n rows = await new Promise<unknown[]>((resolve, reject) => {\n const csvOptions: parser.Options = {\n delimiter: argv[\"csv-delimiter\"],\n record_delimiter: argv[\"csv-rowDelimiter\"]\n }\n const escape = argv[\"csv-escape\"]\n if (escape !== undefined) csvOptions.escape = escape\n\n parse(stdin, csvOptions, (error, records) => {\n if (error) reject(error)\n else resolve(records as unknown[])\n })\n })\n } catch {\n fail(\"CSV parse error\", \"Please provide valid comma-separated values or use --format json.\")\n }\n }\n\n const table = Table(header as never, rows, options as never)\n process.stdout.write(table.render() + \"\\n\")\n}\n\nvoid main()\n","import type { BorderCharacters } from \"./types\"\n\n// @TODO split defaults into table and cell settings\nconst defaults: Record<string, any> & { borderCharacters: Record<string, BorderCharacters[]> } = {\n borderCharacters: {\n invisible: [\n { v: \" \", l: \" \", j: \" \", h: \" \", r: \" \" },\n { v: \" \", l: \" \", j: \" \", h: \" \", r: \" \" },\n { v: \" \", l: \" \", j: \" \", h: \" \", r: \" \" }\n ],\n solid: [\n { v: \"│\", l: \"┌\", j: \"┬\", h: \"─\", r: \"┐\" },\n { v: \"│\", l: \"├\", j: \"┼\", h: \"─\", r: \"┤\" },\n { v: \"│\", l: \"└\", j: \"┴\", h: \"─\", r: \"┘\" }\n ],\n dashed: [\n { v: \"|\", l: \"+\", j: \"+\", h: \"-\", r: \"+\" },\n { v: \"|\", l: \"+\", j: \"+\", h: \"-\", r: \"+\" },\n { v: \"|\", l: \"+\", j: \"+\", h: \"-\", r: \"+\" }\n ],\n none: [\n { v: \"\", l: \"\", j: \"\", h: \"\", r: \"\" },\n { v: \"\", l: \"\", j: \"\", h: \"\", r: \"\" },\n { v: \"\", l: \"\", j: \"\", h: \"\", r: \"\" }\n ]\n },\n align: \"center\",\n borderColor: null,\n borderStyle: \"solid\",\n color: false,\n COLUMNS: 80, // if !process.stdout.columns assume redirecting to write stream 80 columns is VT200 standard\n compact: false,\n defaultErrorValue: \"�\",\n defaultValue: \"\",\n errorOnNull: false,\n FIXED_WIDTH: false,\n footerAlign: \"center\",\n footerColor: false,\n formatter: null,\n headerAlign: \"center\",\n headerColor: \"yellow\",\n isNull: false, // undocumented cell setting\n marginLeft: 2,\n marginTop: 1,\n paddingBottom: 0,\n paddingLeft: 1,\n paddingRight: 1,\n paddingTop: 0,\n showHeader: null, // undocumented\n truncate: false,\n width: \"100%\",\n GUTTER: 1, // undocumented\n columnSettings: [],\n // save so cell options can be merged into column options\n table: {\n body: \"\",\n columnInnerWidths: [],\n columnWidths: [],\n columns: [],\n footer: \"\",\n header: \"\", // post-rendered strings.\n height: 0,\n typeLocked: false // once a table type is selected can't switch\n }\n}\n\n// support deprecated border style values\ndefaults.borderCharacters[\"0\"] = defaults.borderCharacters.none!\ndefaults.borderCharacters[\"1\"] = defaults.borderCharacters.solid!\ndefaults.borderCharacters[\"2\"] = defaults.borderCharacters.dashed!\n\nexport default defaults\n","import chalk from \"chalk\"\nimport kleur from \"kleur\"\nimport stripAnsi from \"strip-ansi\"\n\n// use kleur if we are in the browser\nconst colorLib: any = (process && process.stdout) ? chalk : kleur\n\nexport const style = (str: any, ...colors: string[]): string => {\n const out = colors.reduce(function (input: any, color: string) {\n return colorLib[color](input)\n }, str)\n return out\n}\n\nexport const styleEachChar = (str: any, ...colors: string[]): string => {\n // strip existing ansi chars so we dont loop them\n // @ TODO create a really clever workaround so that you can accrete styles\n const chars = [...stripAnsi(str)]\n\n // style each character\n const out = chars.reduce((prev: string, current: string) => {\n const coded = colors.reduce((input: string, color: string) => {\n return colorLib[color](input)\n }, current)\n return prev + coded\n }, \"\")\n\n return out\n}\n\nexport const resetStyle = function (this: any, str: any) {\n this.configure({ reset: true })\n return stripAnsi(str)\n}\n\nexport const colorizeCell = (str: any, cellOptions: any, rowType: string) => {\n let color: any = false // false will keep terminal default\n\n switch (true) {\n case (rowType === \"body\"):\n color = cellOptions.color || color\n break\n\n case (rowType === \"header\"):\n color = cellOptions.headerColor || color\n break\n\n default:\n color = cellOptions.footerColor || color\n }\n\n if (color) {\n str = style(str, color)\n }\n\n return str\n}\n\nexport const isColorEnabled = () => {\n return (process && process.stdout) ? colorLib.level > 0 : colorLib.enabled\n}\n","import stripAnsi from \"strip-ansi\"\nimport smartwrap from \"smartwrap\"\nimport wcwidth from \"wcwidth\"\n\nconst addPadding = (config: any, width: number) => {\n return width + config.paddingLeft + config.paddingRight\n}\n\n/**\n * Returns the widest cell give a collection of rows\n *\n * @param object columnOptions\n * @param array rows\n * @param integer columnIndex\n * @returns string\n */\nconst getMaxLength = (columnOptions: any, rows: any[], columnIndex: number) => {\n let iterable: any[]\n\n // add header value, alias to calculate width when applicable\n if (columnOptions && (columnOptions.value || columnOptions.alias)) {\n // string we use from header\n let val: any = columnOptions.alias || columnOptions.value\n val = val.toString()\n // create a row with value in the current columnIndex\n const headerRow = Array(rows[0].length)\n headerRow[columnIndex] = val\n // add header row to new array we will check for max value width\n iterable = rows.slice()\n iterable.push(headerRow)\n } else {\n // no header value, just use rows to derive max width\n iterable = rows\n }\n\n const widest = iterable.reduce((prev: number, row: any) => {\n if (row[columnIndex]) {\n // check cell value is object or scalar\n const value = (row[columnIndex].value) ? row[columnIndex].value : row[columnIndex]\n const width = Math.max(\n ...stripAnsi(value.toString()).split(/[\\n\\r]/).map((s) => wcwidth(s))\n )\n return (width > prev) ? width : prev\n }\n return prev\n }, 0)\n\n return widest\n}\n\n/**\n * Get total width available to this table instance\n *\n *\n */\nconst getAvailableWidth = (config: any) => {\n if (process && ((process.stdout && process.stdout.columns) || (process.env && process.env.COLUMNS))) {\n // forked calls that do not inherit process.stdout must use process.env\n let viewport: any = (process.stdout && process.stdout.columns) ? process.stdout.columns : process.env.COLUMNS\n viewport = viewport - config.marginLeft\n\n // table width percentage of (viewport less margin)\n if (config.width !== \"auto\" && /^\\d+%$/.test(config.width)) {\n return Math.min(1, (config.width.slice(0, -1) * 0.01)) * viewport\n }\n\n // table width fixed\n if (config.width !== \"auto\" && /^\\d+$/.test(config.width)) {\n config.FIXED_WIDTH = true\n return config.width\n }\n\n // table width equals viewport less margin\n // @TODO deprecate and remove \"auto\", which was never documented so should not be\n // an issue\n return viewport\n }\n\n // browser\n /* istanbul ignore next */\n if (typeof (globalThis as any).window !== \"undefined\") return (globalThis as any).window.innerWidth\n\n // process.stdout.columns does not exist. assume redirecting to write stream\n // use 80 columns, which is VT200 standard\n return config.COLUMNS - config.marginLeft\n}\n\nexport const getStringLength = (str: string) => {\n // stripAnsi(string.replace(/[^\\x00-\\xff]/g,'XX')).length\n return wcwidth(stripAnsi(str))\n}\n\nexport const wrapCellText = (\n config: any,\n cellValue: any,\n columnIndex: number,\n cellOptions: any,\n rowType: string\n) => {\n // ANSI chararacters that demarcate the start/end of a line\n const startAnsiRegexp = /^(\\x1b\\[[0-9;]*m)+/\n const endAnsiRegexp = /(\\x1b\\[[0-9;]*m)+$/\n\n // coerce cell value to string\n let str = cellValue.toString()\n\n // store matching ANSI characters\n const startMatches = str.match(startAnsiRegexp) || [\"\"]\n\n // remove ANSI start-of-line chars\n str = str.replace(startAnsiRegexp, \"\")\n\n // store matching ANSI characters so can be later re-attached\n const endMatches = str.match(endAnsiRegexp) || [\"\"]\n\n // remove ANSI end-of-line chars\n str = str.replace(endAnsiRegexp, \"\")\n\n let alignTgt: string\n\n switch (rowType) {\n case (\"header\"):\n alignTgt = \"headerAlign\"\n break\n case (\"body\"):\n alignTgt = \"align\"\n break\n default:\n alignTgt = \"footerAlign\"\n }\n\n // equalize padding for centered lines\n if (cellOptions[alignTgt] === \"center\") {\n cellOptions.paddingLeft = cellOptions.paddingRight = Math.max(\n cellOptions.paddingRight,\n cellOptions.paddingLeft,\n 0\n )\n }\n\n const columnWidth = config.table.columnWidths[columnIndex]\n\n // innerWidth is the width available for text within the cell\n const innerWidth = columnWidth\n - cellOptions.paddingLeft\n - cellOptions.paddingRight\n - config.GUTTER\n\n if (typeof config.truncate === \"string\") {\n str = truncate(str, cellOptions, innerWidth)\n } else {\n str = wrap(str, cellOptions, innerWidth)\n }\n\n // format each line\n const cell = str.split(\"\\n\").map((line: string) => {\n line = line.trim()\n\n const lineLength = getStringLength(line)\n\n // alignment\n if (lineLength < columnWidth) {\n let emptySpace = columnWidth - lineLength\n\n switch (true) {\n case (cellOptions[alignTgt] === \"center\"):\n emptySpace--\n const padBoth = Math.floor(emptySpace / 2)\n const padRemainder = emptySpace % 2\n line = Array(padBoth + 1).join(\" \")\n + line\n + Array(padBoth + 1 + padRemainder).join(\" \")\n break\n\n case (cellOptions[alignTgt] === \"right\"):\n line = Array(emptySpace - cellOptions.paddingRight).join(\" \")\n + line\n + Array(cellOptions.paddingRight + 1).join(\" \")\n break\n\n default:\n line = Array(cellOptions.paddingLeft + 1).join(\" \")\n + line\n + Array(emptySpace - cellOptions.paddingLeft).join(\" \")\n }\n }\n\n // put ANSI color codes BACK on the beginning and end of string\n return startMatches[0] + line + endMatches[0]\n })\n\n return { cell, innerWidth }\n}\n\nexport const truncate = (str: string, cellOptions: any, maxWidth: number) => {\n const stringWidth = wcwidth(str)\n\n if (maxWidth < stringWidth) {\n // @TODO give user option to decide if they want to break words on wrapping\n str = (smartwrap as any)(str, {\n width: maxWidth - cellOptions.truncate.length,\n breakword: true\n }).split(\"\\n\")[0]\n str = str + cellOptions.truncate\n }\n\n return str\n}\n\nexport const wrap = (str: string, cellOptions: any, innerWidth: number) => {\n const outstring = (smartwrap as any)(str, {\n errorChar: cellOptions.defaultErrorValue,\n minWidth: 1,\n trim: true,\n width: innerWidth\n })\n\n return outstring\n}\n\nexport const getColumnWidths = (config: any, rows: any[]) => {\n const availableWidth = getAvailableWidth(config)\n\n // iterate over the header if we have it, iterate over the first row\n // if we do not (to step through the correct number of columns)\n const iterable: any[] = (config.table.header[0] && config.table.header[0].length > 0)\n ? config.table.header[0] : rows[0]\n\n let widths: number[] = iterable.map((column: any, columnIndex: number) => {\n let result: number\n\n switch (true) {\n // column width is a percentage of table width specified in column header\n case (typeof column === \"object\" && (/^\\d+%$/.test(column.width))):\n result = (column.width.slice(0, -1) * 0.01) * availableWidth\n result = addPadding(config, result)\n break\n\n // column width is specified in column header\n case (typeof column === \"object\" && (/^\\d+$/.test(column.width))):\n result = column.width\n break\n\n // 'auto' sets column width to its longest value in the initial data set\n default: {\n const columnOptions = (config.table.header[0][columnIndex])\n ? config.table.header[0][columnIndex] : {}\n const measurableRows = (rows.length) ? rows : config.table.header[0]\n\n result = getMaxLength(columnOptions, measurableRows, columnIndex)\n\n // add spaces for padding if not centered\n // @TODO test with if not centered conditional\n result = addPadding(config, result)\n }\n }\n\n // add space for gutter\n result = result + config.GUTTER\n return result\n })\n\n // calculate sum of all column widths (including marginLeft)\n const totalWidth = widths.reduce((prev: number, current: number) => prev + current)\n\n // proportionately resize columns when necessary\n if (totalWidth > availableWidth || config.FIXED_WIDTH) {\n // proportion wont be exact fit, but this method keeps us safe\n const proportion = (availableWidth / totalWidth).toFixed(2) as unknown as number - 0.01\n const relativeWidths = widths.map((value: number) => Math.max(2, Math.floor(proportion * value)))\n if (config.FIXED_WIDTH) return relativeWidths\n\n // when proportion < 0 column cant be resized and totalWidth must overflow viewport\n if (proportion > 0) {\n const totalRelativeWidths = relativeWidths.reduce((prev: number, current: number) => prev + current)\n widths = (totalRelativeWidths < totalWidth) ? relativeWidths : widths\n }\n } else {\n widths = widths.map(Math.floor)\n }\n\n return widths\n}\n","import { colorizeCell, isColorEnabled, style, resetStyle } from \"./style\"\nimport { wrapCellText, getColumnWidths } from \"./format\"\nimport stripAnsi from \"strip-ansi\"\n\n/**\n * Converts arrays of data into arrays of cell strings\n * @param {TtyTable.Config} config\n * @param {Array<Array<string>|object|TtyTable.Formatter>} inputData\n * @returns {Array<string>}\n */\nexport const stringifyData = (config: any, inputData: any[]) => {\n const sections: any = {\n header: [],\n body: [],\n footer: []\n }\n const marginLeft = Array(config.marginLeft + 1).join(\" \")\n const borderStyle = config.borderCharacters[config.borderStyle]\n const borders: any[] = []\n\n // support backwards compatibility cli-table's multiple constructor geometries\n // @TODO deprecate and support only a single format\n const constructorType = getConstructorGeometry(inputData[0] || [], config)\n const rows = coerceConstructorGeometry(config, inputData, constructorType)\n\n // when streaming values to tty-table, we don't want column widths to change\n // from one rows set to the next, so we save the first set of widths and reuse\n if (!(global as any).columnWidths) {\n (global as any).columnWidths = {}\n }\n\n if ((global as any).columnWidths[config.tableId]) {\n config.table.columnWidths = (global as any).columnWidths[config.tableId]\n } else {\n const formattedRows = rows.map((row: any[], rowIndex: number) => {\n return row.map((cell: any, cellIndex: number) => {\n return buildCell(config, cell, cellIndex, \"body\", rowIndex, rows, inputData, true)\n })\n })\n ;(global as any).columnWidths[config.tableId] = config.table.columnWidths = getColumnWidths(config, formattedRows)\n }\n\n // stringify header cells\n // hide header if no column names or if specified in config\n switch (true) {\n case (config.showHeader !== null && !config.showHeader): // explicitly false, hide\n sections.header = []\n break\n\n case (config.showHeader === true): // explicitly true, show\n case (!!config.table.header[0].find((obj: any) => obj.value || obj.alias)): // atleast one named column, show header\n sections.header = config.table.header.map((row: any[]) => {\n return buildRow(config, row, \"header\", null, rows, inputData)\n })\n break\n\n default: // no named columns, hide\n sections.header = []\n }\n\n // stringify body cells\n sections.body = rows.map((row: any[], rowIndex: number) => {\n return buildRow(config, row, \"body\", rowIndex, rows, inputData)\n })\n\n // stringify footer cells\n sections.footer = (config.table.footer instanceof Array && config.table.footer.length > 0) ? [config.table.footer] : []\n\n sections.footer = sections.footer.map((row: any[]) => {\n return buildRow(config, row, \"footer\", null, rows, inputData)\n })\n\n // apply borders\n // 0=top, 1=middle, 2=bottom\n for (let a = 0; a < 3; a++) {\n // add left border\n borders[a] = borderStyle[a].l\n\n // add joined borders for each column\n config.table.columnWidths.forEach((columnWidth: number, index: number, arr: number[]) => {\n // Math.max because otherwise columns 1 wide wont have horizontal border\n borders[a] += Array(Math.max(columnWidth, 2)).join(borderStyle[a].h)\n borders[a] += ((index + 1 < arr.length) ? borderStyle[a].j : \"\")\n })\n\n // add right border\n borders[a] += borderStyle[a].r\n\n // no trailing space on footer\n borders[a] = (a < 2) ? `${marginLeft + borders[a]}\\n` : marginLeft + borders[a]\n }\n\n // top horizontal border\n let output = borders[0]\n\n // for each section (header,body,footer)\n Object.keys(sections).forEach((p: string, i: number) => {\n // for each row in the section\n while (sections[p].length) {\n const row = sections[p].shift()\n\n // if(row.length === 0) {break}\n\n row.forEach((line: string[]) => {\n // vertical row borders\n output = `${output\n + marginLeft\n // left vertical border\n + borderStyle[1].v\n // join cells on vertical border\n + line.join(borderStyle[1].v)\n // right vertical border\n + borderStyle[1].v\n // end of line\n }\\n`\n })\n\n // bottom horizontal row border\n switch (true) {\n // skip if end of body and no footer\n case (sections[p].length === 0\n && i === 1\n && sections.footer.length === 0):\n break\n\n // skip if end of footer\n case (sections[p].length === 0\n && i === 2):\n break\n\n // skip if compact\n case (config.compact && p === \"body\" && !row.empty):\n break\n\n // skip if border style is \"none\"\n case (config.borderStyle === \"none\" && config.compact):\n break\n\n default:\n output += borders[1]\n }\n }\n })\n\n // bottom horizontal border\n output += borders[2]\n\n const finalOutput = Array(config.marginTop + 1).join(\"\\n\") + output\n\n // record the height of the output\n config.height = finalOutput.split(/\\r\\n|\\r|\\n/).length\n\n return finalOutput\n}\n\nexport const buildRow = (config: any, row: any[], rowType: string, rowIndex: number | null, rowData: any[], inputData: any[]) => {\n let minRowHeight = 0\n\n // tag row as empty if empty, used for `compact` option\n if (row.length === 0 && config.compact) {\n (row as any).empty = true\n return row\n }\n\n // force row to have correct number of columns\n const lengthDifference = config.table.columnWidths.length - row.length\n if (lengthDifference > 0) {\n // array (row) lacks elements, add until equal\n row = row.concat(Array.apply(null, new Array(lengthDifference)).map(() => null))\n } else if (lengthDifference < 0) {\n // array (row) has too many elements, remove until equal\n row.length = config.table.columnWidths.length\n }\n\n // convert each element in row to cell format\n row = row.map((elem: any, elemIndex: number) => {\n const cell = buildCell(config, elem, elemIndex, rowType, rowIndex, rowData, inputData)\n minRowHeight = (minRowHeight < cell.length) ? cell.length : minRowHeight\n return cell\n })\n\n // apply top and bottom padding to row\n minRowHeight = (rowType === \"header\") ? minRowHeight\n : minRowHeight + (config.paddingBottom + config.paddingTop)\n\n const linedRow: any[] = Array.apply(null, { length: minRowHeight } as any)\n .map(Function.call, () => [])\n\n row.forEach(function (cell: string[], a: number) {\n const whitespace = Array(config.table.columnWidths[a]).join(\" \")\n\n if (rowType === \"body\") {\n // add whitespace for top padding\n for (let i = 0; i < config.paddingTop; i++) {\n cell.unshift(whitespace)\n }\n\n // add whitespace for bottom padding\n for (let i = 0; i < config.paddingBottom; i++) {\n cell.push(whitespace)\n }\n }\n\n // a `row` is divided by columns (horizontally)\n // a `linedRow` becomes the row divided instead into an array of vertical lines\n // each nested line divided by columns\n for (let i = 0; i < minRowHeight; i++) {\n linedRow[i].push((typeof cell[i] !== \"undefined\")\n ? cell[i] : whitespace)\n }\n })\n\n return linedRow\n}\n\nexport const buildCell = (config: any, elem: any, columnIndex: number, rowType: string, rowIndex: number | null, rowData: any[], inputData: any[], dryRun = false) => {\n let cellValue: any = null\n\n const cellOptions: any = Object.assign(\n { reset: false },\n config,\n (rowType !== \"header\") ? config.columnSettings[columnIndex] : {},\n (typeof elem === \"object\") ? elem : {}\n )\n\n if (rowType === \"header\") {\n config.table.columns.push(cellOptions)\n cellValue = cellOptions.alias || cellOptions.value || \"\"\n } else {\n // set cellValue\n switch (true) {\n case (typeof elem === \"undefined\" || elem === null):\n // replace undefined/null elem values with placeholder\n cellValue = (config.errorOnNull) ? config.defaultErrorValue : config.defaultValue\n if (!isColorEnabled()) {\n cellValue = stripAnsi(cellValue)\n }\n // @TODO add to elem defaults\n cellOptions.isNull = true\n break\n\n case (typeof elem === \"object\" && elem !== null && typeof elem.value !== \"undefined\"):\n cellValue = elem.value\n break\n\n case (typeof elem === \"function\"):\n cellValue = (elem as Function).bind({\n configure: function (object: any) {\n return Object.assign(cellOptions, object)\n },\n style: style,\n resetStyle: resetStyle\n })(\n cellValue,\n columnIndex,\n rowIndex,\n rowData,\n inputData\n )\n break\n\n default:\n // elem is assumed to be a scalar\n cellValue = elem\n }\n\n // run formatter\n if (rowType === \"body\" && typeof cellOptions.formatter === \"function\") {\n cellValue = cellOptions.formatter\n .bind({\n configure: function (object: any) {\n return Object.assign(cellOptions, object)\n },\n style: style,\n resetStyle: resetStyle\n })(\n cellValue,\n columnIndex,\n rowIndex,\n rowData,\n inputData\n )\n }\n\n if (dryRun) {\n return cellValue\n }\n }\n\n // colorize cellValue\n // we don't want the formatter to pass a styled cell value with ANSI codes\n // (in case user wants to do math or string operations to cell value), so\n // we apply default styles to the cell after it runs through the formatter\n // and omit those default styles if the user applied `this.resetStyle`\n if (!cellOptions.reset) {\n cellValue = colorizeCell(cellValue, cellOptions, rowType)\n }\n\n // textwrap cellValue\n const { cell, innerWidth } = wrapCellText(cellOptions, cellValue, columnIndex, cellOptions, rowType)\n\n if (rowType === \"header\") {\n config.table.columnInnerWidths.push(innerWidth)\n }\n\n return cell\n}\n\n/**\n * Check for a backwards compatible (cli-table) constructor\n */\nexport const getConstructorGeometry = (row: any, config: any) => {\n let type: string\n\n // rows passed as an object\n if (typeof row === \"object\" && !(row instanceof Array)) {\n const keys = Object.keys(row)\n\n if (config.adapter === \"automattic\") {\n // detected cross table\n const key = keys[0]!\n\n if (row[key] instanceof Array) {\n type = \"automattic-cross\"\n } else {\n // detected vertical table\n type = \"automattic-vertical\"\n }\n } else {\n // detected horizontal table\n type = \"o-horizontal\"\n }\n } else {\n // rows passed as an array\n type = \"a-horizontal\"\n }\n\n return type\n}\n\n/**\n * Coerce backwards compatible constructor styles\n */\nexport const coerceConstructorGeometry = (config: any, rows: any[], constructorType: string) => {\n let output: any[] = []\n switch (constructorType) {\n case (\"automattic-cross\"):\n // assign header styles to first column\n config.columnSettings[0] = config.columnSettings[0] || {}\n config.columnSettings[0].color = config.headerColor\n\n output = rows.map((obj: any) => {\n const arr: any[] = []\n const key = Object.keys(obj)[0]!\n arr.push(key)\n return arr.concat(obj[key])\n })\n break\n\n case (\"automattic-vertical\"):\n // assign header styles to first column\n config.columnSettings[0] = config.columnSettings[0] || {}\n config.columnSettings[0].color = config.headerColor\n\n output = rows.map(function (value: any) {\n const key = Object.keys(value)[0]!\n return [key, value[key]]\n })\n break\n\n case (\"o-horizontal\"):\n // cell property names are specified in header columns\n if (config.table.header[0].length\n && config.table.header[0].every((obj: any) => obj.value)) {\n output = rows.map((row: any) => config.table.header[0]\n .map((obj: any) => row[obj.value]))\n } // eslint-disable-line brace-style\n // no property names given, default to object property order\n else {\n output = rows.map((obj: any) => Object.values(obj))\n }\n break\n\n case (\"a-horizontal\"):\n output = rows\n break\n\n default:\n }\n\n return output\n}\n\n// @TODO For rotating horizontal data into a vertical table\n// assumes all rows are same length\n// export const verticalizeMatrix = (config, inputArray) => {\n//\n// // grow to # arrays equal to number of columns in input array\n// let outputArray = []\n// let headers = config.table.columns\n//\n// // create a row for each heading, and prepend the row\n// // with the heading name\n// headers.forEach(name => outputArray.push([name]))\n//\n// inputArray.forEach(row => {\n// row.forEach((element, index) => outputArray[index].push(element))\n// })\n//\n// return outputArray\n// }\n","import defaults from \"./defaults\"\nimport { stringifyData } from \"./render\"\nimport { resetStyle, style, styleEachChar } from \"./style\"\n\nlet counter = 0\n\nexport interface Formatter {\n (cellValue: any, columnIndex: number, rowIndex: number, rowData: any, inputData: any): string\n}\n\nexport interface Header {\n alias?: string\n align?: string\n color?: string\n footerAlign?: string\n footerColor?: string\n formatter?: Formatter\n headerAlign?: string\n headerColor?: string\n marginLeft?: number\n marginTop?: number\n paddingBottom?: number\n paddingLeft?: number\n paddingRight?: number\n paddingTop?: number\n value: string\n width?: string | number\n}\n\nexport interface Options {\n borderStyle?: string\n borderColor?: string\n color?: string\n compact?: boolean\n defaultErrorValue?: string\n defaultValue?: string\n errorOnNull?: boolean\n truncate?: string | boolean\n width?: string | number\n footerColor?: string\n [key: string]: unknown\n}\n\nexport interface Table extends Array<any> {\n render(): string\n height?: number\n [key: string]: any\n}\n\nconst Factory = function (paramsArr: any[]): any {\n const _configKey = (Symbol as any).config // legacy quirk: evaluates to undefined; kept for behavior parity\n let header: any = []\n const body: any[] = []\n let footer: any = []\n let options: any = {}\n\n // handle different parameter scenarios\n switch (true) {\n // header, rows, footer, and options\n case (paramsArr.length === 4):\n header = paramsArr[0]\n body.push(...paramsArr[1]) // creates new array to store our rows (body)\n footer = paramsArr[2]\n options = paramsArr[3]\n break\n\n // header, rows, footer\n case (paramsArr.length === 3 && paramsArr[2] instanceof Array):\n header = paramsArr[0]\n body.push(...paramsArr[1]) // creates new array to store our rows\n footer = paramsArr[2]\n break\n\n // header, rows, options\n case (paramsArr.length === 3 && typeof paramsArr[2] === \"object\"):\n header = paramsArr[0]\n body.push(...paramsArr[1]) // creates new array to store our rows\n options = paramsArr[2]\n break\n\n // header, rows (rows, footer is not an option)\n case (paramsArr.length === 2 && paramsArr[1] instanceof Array):\n header = paramsArr[0]\n body.push(...paramsArr[1]) // creates new array to store our rows\n break\n\n // rows, options\n case (paramsArr.length === 2 && typeof paramsArr[1] === \"object\"):\n body.push(...paramsArr[0]) // creates new array to store our rows\n options = paramsArr[1]\n break\n\n // rows\n case (paramsArr.length === 1 && paramsArr[0] instanceof Array):\n body.push(...paramsArr[0])\n break\n\n // adapter called: i.e. `require('tty-table')('automattic-cli-table')`\n case (paramsArr.length === 1 && typeof paramsArr[0] === \"string\"): {\n // known adapters are mapped statically so bundlers leave them external;\n // a dynamic require(`../adapters/${name}`) fallback would make esbuild\n // eagerly bundle every adapters/* file (candidate scanning), which then\n // fails on their ../dist/index.js requires at build time\n const adapters: Record<string, () => any> = {\n \"automattic-cli-table\": () => require(\"../adapters/automattic-cli-table.js\"),\n \"default-adapter\": () => require(\"../adapters/default-adapter.js\"),\n \"terminal-adapter\": () => require(\"../adapters/terminal-adapter.js\")\n }\n const load = adapters[paramsArr[0]]\n if (!load) throw new Error(`Unknown adapter: \"${paramsArr[0]}\". Available adapters: ${Object.keys(adapters).join(\", \")}`)\n return load()\n }\n\n /* istanbul ignore next */\n default:\n console.log(\"Error: Bad params. \\nSee docs at github.com/tecfu/tty-table\")\n process.exit()\n }\n\n // for \"deep\" copy, use JSON.parse\n const cloneddefaults = JSON.parse(JSON.stringify(defaults))\n const config: any = Object.assign({}, cloneddefaults, options)\n\n // backfixes for shortened option names\n config.align = config.alignment || config.align\n config.headerAlign = config.headerAlignment || config.headerAlign\n\n // for truncate true is equivalent to empty string\n if (config.truncate === true) config.truncate = \"\"\n\n // if borderColor customized, color the border character set\n if (config.borderColor) {\n config.borderCharacters[config.borderStyle]\n = config.borderCharacters[config.borderStyle].map(function (obj: any) {\n Object.keys(obj).forEach(function (key) {\n obj[key] = style(obj[key], config.borderColor)\n })\n return obj\n })\n }\n\n // save a copy for merging columnSettings into cell options\n config.columnSettings = header.slice(0)\n\n // header\n config.table.header = header\n\n // match header geometry with body array\n config.table.header = [config.table.header]\n\n // footer\n config.table.footer = footer\n\n // counting table enables fixed column widths for streams,\n // variable widths for multiple tables simulateously\n if (config.terminalAdapter !== true) {\n counter++ // fix columnwidths for streams\n }\n config.tableId = counter\n\n // create a new object with an Array prototype\n const tableObject: any = Object.create(body)\n\n // save configuration to new object\n tableObject[_configKey] = config\n\n /**\n * Add method to render table to a string\n * @returns {String}\n * @memberof Table\n * @example\n * ```js\n * let str = t1.render();\n * console.log(str); //outputs table\n * ```\n */\n tableObject.render = function (this: any) {\n const output = stringifyData(this[_configKey], this.slice(0)) // get string output\n tableObject.height = this[_configKey].height\n return output\n }\n\n return tableObject\n}\n\ninterface TtyTableFactory {\n (headers: (string | Header | Formatter)[], body: unknown[], footers: (string | Header | Formatter)[], config?: Options): Table\n (header: (string | Header | Formatter)[], body: unknown[], config?: Options): Table\n (body: unknown[], config?: Options): Table\n resetStyle(str: string): string\n style(str: string, ...colors: string[]): string\n}\n\nconst Table = function (...params: any[]) {\n return Factory(params)\n} as unknown as TtyTableFactory\n\nTable.resetStyle = resetStyle\nTable.style = styleEachChar\n\nexport default Table\n","import Factory from \"./factory\"\n\nexport type * from \"./types\"\nexport type { Header, Options, Table, Formatter } from \"./factory\"\n\nexport default Factory\n","const ANSI = /\\u001B\\[[0-?]*[ -\\/]*[@-~]/g\n\nconst codes: Record<string, string> = {\n reset: \"0\", bold: \"1\", dim: \"2\", italic: \"3\", underline: \"4\", inverse: \"7\", hidden: \"8\", strikethrough: \"9\",\n black: \"30\", red: \"31\", green: \"32\", yellow: \"33\", blue: \"34\", magenta: \"35\", cyan: \"36\", white: \"37\",\n gray: \"90\", grey: \"90\", bgBlack: \"40\", bgRed: \"41\", bgGreen: \"42\", bgYellow: \"43\", bgBlue: \"44\", bgMagenta: \"45\", bgCyan: \"46\", bgWhite: \"47\"\n}\n\nexport const stripAnsi = (value: string): string => value.replace(ANSI, \"\")\nexport const displayWidth = (value: string, wcwidth: (s: string) => number): number =>\n Math.max(0, ...stripAnsi(value).split(/\\r?\\n/).map(wcwidth))\n\nexport const style = (value: string, ...styles: string[]): string => {\n const active = styles.map((s) => codes[s]).filter(Boolean)\n return active.length ? `\\u001b[${active.join(\";\")}m${value}\\u001b[0m` : value\n}\n\nexport const styleEachChar = (value: string, ...styles: string[]): string =>\n [...stripAnsi(value)].map((char) => style(char, ...styles)).join(\"\")\n\nexport const ansiSafeSlice = (value: string, width: number, wcwidth: (s: string) => number): string => {\n if (width <= 0) return \"\"\n let out = \"\"\n let visible = 0\n let i = 0\n while (i < value.length && visible < width) {\n ANSI.lastIndex = i\n const match = ANSI.exec(value)\n if (match?.index === i) {\n out += match[0]\n i += match[0].length\n continue\n }\n const cp = String.fromCodePoint(value.codePointAt(i)!)\n const w = wcwidth(cp)\n if (visible + w > width) break\n out += cp\n visible += w\n i += cp.length\n }\n return out\n}\n"],"mappings":"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,CAAE,MAAQ,IAAO;AAAA,MACzD,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MACzD,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MACzD,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MACzD,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MACzD,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MACzD,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MACzD,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MACzD,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MACzD,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MACzD,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MACzD,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MACzD,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MACzD,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MACzD,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MACzD,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MACzD,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAA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","names":["exports","module","clone","parent","depth","exports","module","defaults","exports","module","exports","module","defaults","wcwidth","chalk","kleur","stripAnsi","import_strip_ansi","stripAnsi","wcwidth","smartwrap","import_strip_ansi","stripAnsi","style","yargs","fs","path","style"]}
1
+ {"version":3,"sources":["../node_modules/clone/clone.js","../node_modules/defaults/index.js","../node_modules/wcwidth/combining.js","../node_modules/wcwidth/index.js","../src/cli.ts","../src/defaults.ts","../src/style.ts","../src/format.ts","../src/render.ts","../src/factory.ts","../src/index.ts","../src/ansi.ts"],"sourcesContent":["var clone = (function() {\n'use strict';\n\n/**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n * circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n * a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n * (optional - defaults to parent prototype).\n*/\nfunction clone(parent, circular, depth, prototype) {\n var filter;\n if (typeof circular === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n filter = circular.filter;\n circular = circular.circular\n }\n // maintain two arrays for circular references, where corresponding parents\n // and children have the same index\n var allParents = [];\n var allChildren = [];\n\n var useBuffer = typeof Buffer != 'undefined';\n\n if (typeof circular == 'undefined')\n circular = true;\n\n if (typeof depth == 'undefined')\n depth = Infinity;\n\n // recurse this function so we don't reset allParents and allChildren\n function _clone(parent, depth) {\n // cloning null always returns null\n if (parent === null)\n return null;\n\n if (depth == 0)\n return parent;\n\n var child;\n var proto;\n if (typeof parent != 'object') {\n return parent;\n }\n\n if (clone.__isArray(parent)) {\n child = [];\n } else if (clone.__isRegExp(parent)) {\n child = new RegExp(parent.source, __getRegExpFlags(parent));\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n } else if (clone.__isDate(parent)) {\n child = new Date(parent.getTime());\n } else if (useBuffer && Buffer.isBuffer(parent)) {\n if (Buffer.allocUnsafe) {\n // Node.js >= 4.5.0\n child = Buffer.allocUnsafe(parent.length);\n } else {\n // Older Node.js versions\n child = new Buffer(parent.length);\n }\n parent.copy(child);\n return child;\n } else {\n if (typeof prototype == 'undefined') {\n proto = Object.getPrototypeOf(parent);\n child = Object.create(proto);\n }\n else {\n child = Object.create(prototype);\n proto = prototype;\n }\n }\n\n if (circular) {\n var index = allParents.indexOf(parent);\n\n if (index != -1) {\n return allChildren[index];\n }\n allParents.push(parent);\n allChildren.push(child);\n }\n\n for (var i in parent) {\n var attrs;\n if (proto) {\n attrs = Object.getOwnPropertyDescriptor(proto, i);\n }\n\n if (attrs && attrs.set == null) {\n continue;\n }\n child[i] = _clone(parent[i], depth - 1);\n }\n\n return child;\n }\n\n return _clone(parent, depth);\n}\n\n/**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\nclone.clonePrototype = function clonePrototype(parent) {\n if (parent === null)\n return null;\n\n var c = function () {};\n c.prototype = parent;\n return new c();\n};\n\n// private utility functions\n\nfunction __objToStr(o) {\n return Object.prototype.toString.call(o);\n};\nclone.__objToStr = __objToStr;\n\nfunction __isDate(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\n};\nclone.__isDate = __isDate;\n\nfunction __isArray(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\n};\nclone.__isArray = __isArray;\n\nfunction __isRegExp(o) {\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n};\nclone.__isRegExp = __isRegExp;\n\nfunction __getRegExpFlags(re) {\n var flags = '';\n if (re.global) flags += 'g';\n if (re.ignoreCase) flags += 'i';\n if (re.multiline) flags += 'm';\n return flags;\n};\nclone.__getRegExpFlags = __getRegExpFlags;\n\nreturn clone;\n})();\n\nif (typeof module === 'object' && module.exports) {\n module.exports = clone;\n}\n","var clone = require('clone');\n\nmodule.exports = function(options, defaults) {\n options = options || {};\n\n Object.keys(defaults).forEach(function(key) {\n if (typeof options[key] === 'undefined') {\n options[key] = clone(defaults[key]);\n }\n });\n\n return options;\n};","module.exports = [\n [ 0x0300, 0x036F ], [ 0x0483, 0x0486 ], [ 0x0488, 0x0489 ],\n [ 0x0591, 0x05BD ], [ 0x05BF, 0x05BF ], [ 0x05C1, 0x05C2 ],\n [ 0x05C4, 0x05C5 ], [ 0x05C7, 0x05C7 ], [ 0x0600, 0x0603 ],\n [ 0x0610, 0x0615 ], [ 0x064B, 0x065E ], [ 0x0670, 0x0670 ],\n [ 0x06D6, 0x06E4 ], [ 0x06E7, 0x06E8 ], [ 0x06EA, 0x06ED ],\n [ 0x070F, 0x070F ], [ 0x0711, 0x0711 ], [ 0x0730, 0x074A ],\n [ 0x07A6, 0x07B0 ], [ 0x07EB, 0x07F3 ], [ 0x0901, 0x0902 ],\n [ 0x093C, 0x093C ], [ 0x0941, 0x0948 ], [ 0x094D, 0x094D ],\n [ 0x0951, 0x0954 ], [ 0x0962, 0x0963 ], [ 0x0981, 0x0981 ],\n [ 0x09BC, 0x09BC ], [ 0x09C1, 0x09C4 ], [ 0x09CD, 0x09CD ],\n [ 0x09E2, 0x09E3 ], [ 0x0A01, 0x0A02 ], [ 0x0A3C, 0x0A3C ],\n [ 0x0A41, 0x0A42 ], [ 0x0A47, 0x0A48 ], [ 0x0A4B, 0x0A4D ],\n [ 0x0A70, 0x0A71 ], [ 0x0A81, 0x0A82 ], [ 0x0ABC, 0x0ABC ],\n [ 0x0AC1, 0x0AC5 ], [ 0x0AC7, 0x0AC8 ], [ 0x0ACD, 0x0ACD ],\n [ 0x0AE2, 0x0AE3 ], [ 0x0B01, 0x0B01 ], [ 0x0B3C, 0x0B3C ],\n [ 0x0B3F, 0x0B3F ], [ 0x0B41, 0x0B43 ], [ 0x0B4D, 0x0B4D ],\n [ 0x0B56, 0x0B56 ], [ 0x0B82, 0x0B82 ], [ 0x0BC0, 0x0BC0 ],\n [ 0x0BCD, 0x0BCD ], [ 0x0C3E, 0x0C40 ], [ 0x0C46, 0x0C48 ],\n [ 0x0C4A, 0x0C4D ], [ 0x0C55, 0x0C56 ], [ 0x0CBC, 0x0CBC ],\n [ 0x0CBF, 0x0CBF ], [ 0x0CC6, 0x0CC6 ], [ 0x0CCC, 0x0CCD ],\n [ 0x0CE2, 0x0CE3 ], [ 0x0D41, 0x0D43 ], [ 0x0D4D, 0x0D4D ],\n [ 0x0DCA, 0x0DCA ], [ 0x0DD2, 0x0DD4 ], [ 0x0DD6, 0x0DD6 ],\n [ 0x0E31, 0x0E31 ], [ 0x0E34, 0x0E3A ], [ 0x0E47, 0x0E4E ],\n [ 0x0EB1, 0x0EB1 ], [ 0x0EB4, 0x0EB9 ], [ 0x0EBB, 0x0EBC ],\n [ 0x0EC8, 0x0ECD ], [ 0x0F18, 0x0F19 ], [ 0x0F35, 0x0F35 ],\n [ 0x0F37, 0x0F37 ], [ 0x0F39, 0x0F39 ], [ 0x0F71, 0x0F7E ],\n [ 0x0F80, 0x0F84 ], [ 0x0F86, 0x0F87 ], [ 0x0F90, 0x0F97 ],\n [ 0x0F99, 0x0FBC ], [ 0x0FC6, 0x0FC6 ], [ 0x102D, 0x1030 ],\n [ 0x1032, 0x1032 ], [ 0x1036, 0x1037 ], [ 0x1039, 0x1039 ],\n [ 0x1058, 0x1059 ], [ 0x1160, 0x11FF ], [ 0x135F, 0x135F ],\n [ 0x1712, 0x1714 ], [ 0x1732, 0x1734 ], [ 0x1752, 0x1753 ],\n [ 0x1772, 0x1773 ], [ 0x17B4, 0x17B5 ], [ 0x17B7, 0x17BD ],\n [ 0x17C6, 0x17C6 ], [ 0x17C9, 0x17D3 ], [ 0x17DD, 0x17DD ],\n [ 0x180B, 0x180D ], [ 0x18A9, 0x18A9 ], [ 0x1920, 0x1922 ],\n [ 0x1927, 0x1928 ], [ 0x1932, 0x1932 ], [ 0x1939, 0x193B ],\n [ 0x1A17, 0x1A18 ], [ 0x1B00, 0x1B03 ], [ 0x1B34, 0x1B34 ],\n [ 0x1B36, 0x1B3A ], [ 0x1B3C, 0x1B3C ], [ 0x1B42, 0x1B42 ],\n [ 0x1B6B, 0x1B73 ], [ 0x1DC0, 0x1DCA ], [ 0x1DFE, 0x1DFF ],\n [ 0x200B, 0x200F ], [ 0x202A, 0x202E ], [ 0x2060, 0x2063 ],\n [ 0x206A, 0x206F ], [ 0x20D0, 0x20EF ], [ 0x302A, 0x302F ],\n [ 0x3099, 0x309A ], [ 0xA806, 0xA806 ], [ 0xA80B, 0xA80B ],\n [ 0xA825, 0xA826 ], [ 0xFB1E, 0xFB1E ], [ 0xFE00, 0xFE0F ],\n [ 0xFE20, 0xFE23 ], [ 0xFEFF, 0xFEFF ], [ 0xFFF9, 0xFFFB ],\n [ 0x10A01, 0x10A03 ], [ 0x10A05, 0x10A06 ], [ 0x10A0C, 0x10A0F ],\n [ 0x10A38, 0x10A3A ], [ 0x10A3F, 0x10A3F ], [ 0x1D167, 0x1D169 ],\n [ 0x1D173, 0x1D182 ], [ 0x1D185, 0x1D18B ], [ 0x1D1AA, 0x1D1AD ],\n [ 0x1D242, 0x1D244 ], [ 0xE0001, 0xE0001 ], [ 0xE0020, 0xE007F ],\n [ 0xE0100, 0xE01EF ]\n]\n","\"use strict\"\n\nvar defaults = require('defaults')\nvar combining = require('./combining')\n\nvar DEFAULTS = {\n nul: 0,\n control: 0\n}\n\nmodule.exports = function wcwidth(str) {\n return wcswidth(str, DEFAULTS)\n}\n\nmodule.exports.config = function(opts) {\n opts = defaults(opts || {}, DEFAULTS)\n return function wcwidth(str) {\n return wcswidth(str, opts)\n }\n}\n\n/*\n * The following functions define the column width of an ISO 10646\n * character as follows:\n * - The null character (U+0000) has a column width of 0.\n * - Other C0/C1 control characters and DEL will lead to a return value\n * of -1.\n * - Non-spacing and enclosing combining characters (general category\n * code Mn or Me in the\n * Unicode database) have a column width of 0.\n * - SOFT HYPHEN (U+00AD) has a column width of 1.\n * - Other format characters (general category code Cf in the Unicode\n * database) and ZERO WIDTH\n * SPACE (U+200B) have a column width of 0.\n * - Hangul Jamo medial vowels and final consonants (U+1160-U+11FF)\n * have a column width of 0.\n * - Spacing characters in the East Asian Wide (W) or East Asian\n * Full-width (F) category as\n * defined in Unicode Technical Report #11 have a column width of 2.\n * - All remaining characters (including all printable ISO 8859-1 and\n * WGL4 characters, Unicode control characters, etc.) have a column\n * width of 1.\n * This implementation assumes that characters are encoded in ISO 10646.\n*/\n\nfunction wcswidth(str, opts) {\n if (typeof str !== 'string') return wcwidth(str, opts)\n\n var s = 0\n for (var i = 0; i < str.length; i++) {\n var n = wcwidth(str.charCodeAt(i), opts)\n if (n < 0) return -1\n s += n\n }\n\n return s\n}\n\nfunction wcwidth(ucs, opts) {\n // test for 8-bit control characters\n if (ucs === 0) return opts.nul\n if (ucs < 32 || (ucs >= 0x7f && ucs < 0xa0)) return opts.control\n\n // binary search in table of non-spacing characters\n if (bisearch(ucs)) return 0\n\n // if we arrive here, ucs is not a combining or C0/C1 control character\n return 1 +\n (ucs >= 0x1100 &&\n (ucs <= 0x115f || // Hangul Jamo init. consonants\n ucs == 0x2329 || ucs == 0x232a ||\n (ucs >= 0x2e80 && ucs <= 0xa4cf &&\n ucs != 0x303f) || // CJK ... Yi\n (ucs >= 0xac00 && ucs <= 0xd7a3) || // Hangul Syllables\n (ucs >= 0xf900 && ucs <= 0xfaff) || // CJK Compatibility Ideographs\n (ucs >= 0xfe10 && ucs <= 0xfe19) || // Vertical forms\n (ucs >= 0xfe30 && ucs <= 0xfe6f) || // CJK Compatibility Forms\n (ucs >= 0xff00 && ucs <= 0xff60) || // Fullwidth Forms\n (ucs >= 0xffe0 && ucs <= 0xffe6) ||\n (ucs >= 0x20000 && ucs <= 0x2fffd) ||\n (ucs >= 0x30000 && ucs <= 0x3fffd)));\n}\n\nfunction bisearch(ucs) {\n var min = 0\n var max = combining.length - 1\n var mid\n\n if (ucs < combining[0][0] || ucs > combining[max][1]) return false\n\n while (max >= min) {\n mid = Math.floor((min + max) / 2)\n if (ucs > combining[mid][1]) min = mid + 1\n else if (ucs < combining[mid][0]) max = mid - 1\n else return true\n }\n\n return false\n}\n","#!/usr/bin/env node\nimport fs from \"node:fs\"\nimport path from \"node:path\"\nimport { parse, parser } from \"csv\"\nimport yargs from \"yargs\"\nimport { hideBin } from \"yargs/helpers\"\nimport Table from \"./index\"\nimport { style } from \"./ansi\"\n\nconst main = async (): Promise<void> => {\n const argv = await yargs(hideBin(process.argv)).options({\n config: { type: \"string\" },\n format: { choices: [\"json\", \"csv\"] as const, default: \"csv\" },\n \"csv-delimiter\": { type: \"string\", default: \",\" },\n \"csv-escape\": { type: \"string\" },\n \"csv-rowDelimiter\": { type: \"string\", default: \"\\n\" }\n }).parse()\n\n const options: Record<string, unknown> = {}\n for (const [key, value] of Object.entries(argv)) if (key.startsWith(\"options-\")) options[key.slice(8)] = value\n\n let header: unknown[] = []\n if (argv.config) {\n const parsedHeader: unknown = JSON.parse(fs.readFileSync(path.resolve(argv.config), \"utf8\"))\n if (!Array.isArray(parsedHeader)) fail(\"Configuration error\", \"The header configuration must be a JSON array.\")\n header = parsedHeader\n }\n\n const stdin = await new Promise<string>((resolve) => {\n let data = \"\"\n process.stdin.setEncoding(\"utf8\")\n process.stdin.on(\"data\", (chunk: string) => { data += chunk })\n process.stdin.on(\"end\", () => resolve(data))\n })\n\n function fail(title: string, detail: string): never {\n console.error(`\\n${style(title, \"white\", \"bgRed\")}\\n\\n${detail}`)\n process.exit(1)\n }\n\n let rows: unknown[]\n if (argv.format === \"json\") {\n try {\n const parsed: unknown = JSON.parse(stdin)\n rows = Array.isArray(parsed) ? parsed : fail(\"JSON parse error\", \"Please provide a JSON array or use --format csv.\")\n } catch {\n fail(\"JSON parse error\", \"Please provide valid JSON or use --format csv.\")\n }\n } else {\n try {\n rows = await new Promise<unknown[]>((resolve, reject) => {\n const csvOptions: parser.Options = {\n delimiter: argv[\"csv-delimiter\"],\n record_delimiter: argv[\"csv-rowDelimiter\"]\n }\n const escape = argv[\"csv-escape\"]\n if (escape !== undefined) csvOptions.escape = escape\n\n parse(stdin, csvOptions, (error, records) => {\n if (error) reject(error)\n else resolve(records as unknown[])\n })\n })\n } catch {\n fail(\"CSV parse error\", \"Please provide valid comma-separated values or use --format json.\")\n }\n }\n\n const table = Table(header as never, rows, options as never)\n process.stdout.write(table.render() + \"\\n\")\n}\n\nvoid main()\n","import type { BorderCharacters } from \"./types\"\n\n// @TODO split defaults into table and cell settings\nconst defaults: Record<string, any> & { borderCharacters: Record<string, BorderCharacters[]> } = {\n borderCharacters: {\n invisible: [\n { v: \" \", l: \" \", j: \" \", h: \" \", r: \" \" },\n { v: \" \", l: \" \", j: \" \", h: \" \", r: \" \" },\n { v: \" \", l: \" \", j: \" \", h: \" \", r: \" \" }\n ],\n solid: [\n { v: \"│\", l: \"┌\", j: \"┬\", h: \"─\", r: \"┐\" },\n { v: \"│\", l: \"├\", j: \"┼\", h: \"─\", r: \"┤\" },\n { v: \"│\", l: \"└\", j: \"┴\", h: \"─\", r: \"┘\" }\n ],\n dashed: [\n { v: \"|\", l: \"+\", j: \"+\", h: \"-\", r: \"+\" },\n { v: \"|\", l: \"+\", j: \"+\", h: \"-\", r: \"+\" },\n { v: \"|\", l: \"+\", j: \"+\", h: \"-\", r: \"+\" }\n ],\n none: [\n { v: \"\", l: \"\", j: \"\", h: \"\", r: \"\" },\n { v: \"\", l: \"\", j: \"\", h: \"\", r: \"\" },\n { v: \"\", l: \"\", j: \"\", h: \"\", r: \"\" }\n ]\n },\n align: \"center\",\n borderColor: null,\n borderStyle: \"solid\",\n color: false,\n COLUMNS: 80, // if !process.stdout.columns assume redirecting to write stream 80 columns is VT200 standard\n compact: false,\n defaultErrorValue: \"�\",\n defaultValue: \"\",\n errorOnNull: false,\n FIXED_WIDTH: false,\n footerAlign: \"center\",\n footerColor: false,\n formatter: null,\n headerAlign: \"center\",\n headerColor: \"yellow\",\n isNull: false, // undocumented cell setting\n marginLeft: 2,\n marginTop: 1,\n paddingBottom: 0,\n paddingLeft: 1,\n paddingRight: 1,\n paddingTop: 0,\n showHeader: null, // undocumented\n truncate: false,\n width: \"100%\",\n GUTTER: 1, // undocumented\n columnSettings: [],\n // save so cell options can be merged into column options\n table: {\n body: \"\",\n columnInnerWidths: [],\n columnWidths: [],\n columns: [],\n footer: \"\",\n header: \"\", // post-rendered strings.\n height: 0,\n typeLocked: false // once a table type is selected can't switch\n }\n}\n\n// support deprecated border style values\ndefaults.borderCharacters[\"0\"] = defaults.borderCharacters.none!\ndefaults.borderCharacters[\"1\"] = defaults.borderCharacters.solid!\ndefaults.borderCharacters[\"2\"] = defaults.borderCharacters.dashed!\n\nexport default defaults\n","import chalk from \"chalk\"\nimport kleur from \"kleur\"\nimport stripAnsi from \"strip-ansi\"\n\n// use kleur if we are in the browser\nconst colorLib: any = (process && process.stdout) ? chalk : kleur\n\nexport const style = (str: any, ...colors: string[]): string => {\n const out = colors.reduce(function (input: any, color: string) {\n return colorLib[color](input)\n }, str)\n return out\n}\n\nexport const styleEachChar = (str: any, ...colors: string[]): string => {\n // strip existing ansi chars so we dont loop them\n // @ TODO create a really clever workaround so that you can accrete styles\n const chars = [...stripAnsi(str)]\n\n // style each character\n const out = chars.reduce((prev: string, current: string) => {\n const coded = colors.reduce((input: string, color: string) => {\n return colorLib[color](input)\n }, current)\n return prev + coded\n }, \"\")\n\n return out\n}\n\nexport const resetStyle = function (this: any, str: any) {\n this.configure({ reset: true })\n return stripAnsi(str)\n}\n\nexport const colorizeCell = (str: any, cellOptions: any, rowType: string) => {\n let color: any = false // false will keep terminal default\n\n switch (true) {\n case (rowType === \"body\"):\n color = cellOptions.color || color\n break\n\n case (rowType === \"header\"):\n color = cellOptions.headerColor || color\n break\n\n default:\n color = cellOptions.footerColor || color\n }\n\n if (color) {\n str = style(str, color)\n }\n\n return str\n}\n\nexport const isColorEnabled = () => {\n return (process && process.stdout) ? colorLib.level > 0 : colorLib.enabled\n}\n","import stripAnsi from \"strip-ansi\"\nimport smartwrap from \"smartwrap\"\nimport wcwidth from \"wcwidth\"\n\nconst addPadding = (config: any, width: number) => {\n return width + config.paddingLeft + config.paddingRight\n}\n\nconst getDisplayWidth = (value: any) => {\n const lines = stripAnsi(value.toString()).split(/[\\n\\r]/)\n let widest = 0\n\n for (const line of lines) {\n const width = wcwidth(line)\n if (width > widest) widest = width\n }\n\n return widest\n}\n\n/**\n * Returns the widest cell give a collection of rows\n *\n * @param object columnOptions\n * @param array rows\n * @param integer columnIndex\n * @returns string\n */\nconst getMaxLength = (columnOptions: any, rows: any[], columnIndex: number) => {\n let widest = 0\n\n // Include the header value without allocating a copied rows array or a\n // synthetic header row for every column.\n if (columnOptions && (columnOptions.value || columnOptions.alias)) {\n const value = columnOptions.alias || columnOptions.value\n widest = getDisplayWidth(value)\n }\n\n for (const row of rows) {\n if (row[columnIndex]) {\n // check cell value is object or scalar\n const value = (row[columnIndex].value) ? row[columnIndex].value : row[columnIndex]\n const width = getDisplayWidth(value)\n if (width > widest) widest = width\n }\n }\n\n return widest\n}\n\n/**\n * Get total width available to this table instance\n *\n *\n */\nconst getAvailableWidth = (config: any) => {\n if (process && ((process.stdout && process.stdout.columns) || (process.env && process.env.COLUMNS))) {\n // forked calls that do not inherit process.stdout must use process.env\n let viewport: any = (process.stdout && process.stdout.columns) ? process.stdout.columns : process.env.COLUMNS\n viewport = viewport - config.marginLeft\n\n // table width percentage of (viewport less margin)\n if (config.width !== \"auto\" && /^\\d+%$/.test(config.width)) {\n return Math.min(1, (config.width.slice(0, -1) * 0.01)) * viewport\n }\n\n // table width fixed\n if (config.width !== \"auto\" && /^\\d+$/.test(config.width)) {\n config.FIXED_WIDTH = true\n return config.width\n }\n\n // table width equals viewport less margin\n // @TODO deprecate and remove \"auto\", which was never documented so should not be\n // an issue\n return viewport\n }\n\n // browser\n /* istanbul ignore next */\n if (typeof (globalThis as any).window !== \"undefined\") return (globalThis as any).window.innerWidth\n\n // process.stdout.columns does not exist. assume redirecting to write stream\n // use 80 columns, which is VT200 standard\n return config.COLUMNS - config.marginLeft\n}\n\nexport const getStringLength = (str: string) => {\n // stripAnsi(string.replace(/[^\\x00-\\xff]/g,'XX')).length\n return wcwidth(stripAnsi(str))\n}\n\nexport const wrapCellText = (\n config: any,\n cellValue: any,\n columnIndex: number,\n cellOptions: any,\n rowType: string\n) => {\n // ANSI chararacters that demarcate the start/end of a line\n const startAnsiRegexp = /^(\\x1b\\[[0-9;]*m)+/\n const endAnsiRegexp = /(\\x1b\\[[0-9;]*m)+$/\n\n // coerce cell value to string\n let str = cellValue.toString()\n\n // store matching ANSI characters\n const startMatches = str.match(startAnsiRegexp) || [\"\"]\n\n // remove ANSI start-of-line chars\n str = str.replace(startAnsiRegexp, \"\")\n\n // store matching ANSI characters so can be later re-attached\n const endMatches = str.match(endAnsiRegexp) || [\"\"]\n\n // remove ANSI end-of-line chars\n str = str.replace(endAnsiRegexp, \"\")\n\n let alignTgt: string\n\n switch (rowType) {\n case (\"header\"):\n alignTgt = \"headerAlign\"\n break\n case (\"body\"):\n alignTgt = \"align\"\n break\n default:\n alignTgt = \"footerAlign\"\n }\n\n // equalize padding for centered lines\n if (cellOptions[alignTgt] === \"center\") {\n cellOptions.paddingLeft = cellOptions.paddingRight = Math.max(\n cellOptions.paddingRight,\n cellOptions.paddingLeft,\n 0\n )\n }\n\n const columnWidth = config.table.columnWidths[columnIndex]\n\n // innerWidth is the width available for text within the cell\n const innerWidth = columnWidth\n - cellOptions.paddingLeft\n - cellOptions.paddingRight\n - config.GUTTER\n\n if (typeof config.truncate === \"string\") {\n str = truncate(str, cellOptions, innerWidth)\n } else {\n str = wrap(str, cellOptions, innerWidth)\n }\n\n // format each line\n const cell = str.split(\"\\n\").map((line: string) => {\n line = line.trim()\n\n const lineLength = getStringLength(line)\n\n // alignment\n if (lineLength < columnWidth) {\n let emptySpace = columnWidth - lineLength\n\n switch (true) {\n case (cellOptions[alignTgt] === \"center\"):\n emptySpace--\n const padBoth = Math.floor(emptySpace / 2)\n const padRemainder = emptySpace % 2\n line = \" \".repeat(padBoth)\n + line\n + \" \".repeat(padBoth + padRemainder)\n break\n\n case (cellOptions[alignTgt] === \"right\"):\n line = \" \".repeat(emptySpace - cellOptions.paddingRight - 1)\n + line\n + \" \".repeat(cellOptions.paddingRight)\n break\n\n default:\n line = \" \".repeat(cellOptions.paddingLeft)\n + line\n + \" \".repeat(emptySpace - cellOptions.paddingLeft - 1)\n }\n }\n\n // put ANSI color codes BACK on the beginning and end of string\n return startMatches[0] + line + endMatches[0]\n })\n\n return { cell, innerWidth }\n}\n\nexport const truncate = (str: string, cellOptions: any, maxWidth: number) => {\n const stringWidth = wcwidth(str)\n\n if (maxWidth < stringWidth) {\n // @TODO give user option to decide if they want to break words on wrapping\n str = (smartwrap as any)(str, {\n width: maxWidth - cellOptions.truncate.length,\n breakword: true\n }).split(\"\\n\")[0]\n str = str + cellOptions.truncate\n }\n\n return str\n}\n\nexport const wrap = (str: string, cellOptions: any, innerWidth: number) => {\n const outstring = (smartwrap as any)(str, {\n errorChar: cellOptions.defaultErrorValue,\n minWidth: 1,\n trim: true,\n width: innerWidth\n })\n\n return outstring\n}\n\nexport const getColumnWidths = (config: any, rows: any[]) => {\n const availableWidth = getAvailableWidth(config)\n\n // iterate over the header if we have it, iterate over the first row\n // if we do not (to step through the correct number of columns)\n const iterable: any[] = (config.table.header[0] && config.table.header[0].length > 0)\n ? config.table.header[0] : rows[0]\n\n let widths: number[] = iterable.map((column: any, columnIndex: number) => {\n let result: number\n\n switch (true) {\n // column width is a percentage of table width specified in column header\n case (typeof column === \"object\" && (/^\\d+%$/.test(column.width))):\n result = (column.width.slice(0, -1) * 0.01) * availableWidth\n result = addPadding(config, result)\n break\n\n // column width is specified in column header\n case (typeof column === \"object\" && (/^\\d+$/.test(column.width))):\n result = column.width\n break\n\n // 'auto' sets column width to its longest value in the initial data set\n default: {\n const columnOptions = (config.table.header[0][columnIndex])\n ? config.table.header[0][columnIndex] : {}\n const measurableRows = (rows.length) ? rows : config.table.header[0]\n\n result = getMaxLength(columnOptions, measurableRows, columnIndex)\n\n // add spaces for padding if not centered\n // @TODO test with if not centered conditional\n result = addPadding(config, result)\n }\n }\n\n // add space for gutter\n result = result + config.GUTTER\n return result\n })\n\n // calculate sum of all column widths (including marginLeft)\n const totalWidth = widths.reduce((prev: number, current: number) => prev + current)\n\n // proportionately resize columns when necessary\n if (totalWidth > availableWidth || config.FIXED_WIDTH) {\n // proportion wont be exact fit, but this method keeps us safe\n const proportion = (availableWidth / totalWidth).toFixed(2) as unknown as number - 0.01\n const relativeWidths = widths.map((value: number) => Math.max(2, Math.floor(proportion * value)))\n if (config.FIXED_WIDTH) return relativeWidths\n\n // when proportion < 0 column cant be resized and totalWidth must overflow viewport\n if (proportion > 0) {\n const totalRelativeWidths = relativeWidths.reduce((prev: number, current: number) => prev + current)\n widths = (totalRelativeWidths < totalWidth) ? relativeWidths : widths\n }\n } else {\n widths = widths.map(Math.floor)\n }\n\n return widths\n}\n","import { colorizeCell, isColorEnabled, style, resetStyle } from \"./style\"\nimport { wrapCellText, getColumnWidths } from \"./format\"\nimport stripAnsi from \"strip-ansi\"\n\nexport const stringifyData = (config: any, inputData: any[]) => {\n const sections: any = { header: [], body: [], footer: [] }\n const marginLeft = \" \".repeat(config.marginLeft)\n const borderStyle = config.borderCharacters[config.borderStyle]\n const borders: any[] = []\n\n const constructorType = getConstructorGeometry(inputData[0] || [], config)\n const rows = coerceConstructorGeometry(config, inputData, constructorType)\n\n if (!(global as any).columnWidths) (global as any).columnWidths = {}\n\n if ((global as any).columnWidths[config.tableId]) {\n config.table.columnWidths = (global as any).columnWidths[config.tableId]\n } else {\n const formattedRows = rows.map((row: any[], rowIndex: number) => {\n return row.map((cell: any, cellIndex: number) => buildCell(config, cell, cellIndex, \"body\", rowIndex, rows, inputData, true))\n })\n ;(global as any).columnWidths[config.tableId] = config.table.columnWidths = getColumnWidths(config, formattedRows)\n }\n\n switch (true) {\n case (config.showHeader !== null && !config.showHeader):\n sections.header = []\n break\n case (config.showHeader === true):\n case (!!config.table.header[0].find((obj: any) => obj.value || obj.alias)):\n sections.header = config.table.header.map((row: any[]) => buildRow(config, row, \"header\", null, rows, inputData))\n break\n default:\n sections.header = []\n }\n\n sections.body = rows.map((row: any[], rowIndex: number) => buildRow(config, row, \"body\", rowIndex, rows, inputData))\n sections.footer = (config.table.footer instanceof Array && config.table.footer.length > 0) ? [config.table.footer] : []\n sections.footer = sections.footer.map((row: any[]) => buildRow(config, row, \"footer\", null, rows, inputData))\n\n for (let a = 0; a < 3; a++) {\n borders[a] = borderStyle[a].l\n config.table.columnWidths.forEach((columnWidth: number, index: number, arr: number[]) => {\n borders[a] += borderStyle[a].h.repeat(Math.max(columnWidth, 2) - 1)\n borders[a] += ((index + 1 < arr.length) ? borderStyle[a].j : \"\")\n })\n borders[a] += borderStyle[a].r\n borders[a] = (a < 2) ? `${marginLeft + borders[a]}\\n` : marginLeft + borders[a]\n }\n\n const output: string[] = [borders[0]]\n\n for (const [sectionIndex, sectionName] of Object.keys(sections).entries()) {\n const section = sections[sectionName]\n for (let rowIndex = 0; rowIndex < section.length; rowIndex++) {\n const row = section[rowIndex]\n row.forEach((line: string[]) => {\n output.push(marginLeft + borderStyle[1].v + line.join(borderStyle[1].v) + borderStyle[1].v + \"\\n\")\n })\n\n switch (true) {\n case (rowIndex === section.length - 1 && sectionIndex === 1 && sections.footer.length === 0):\n break\n case (rowIndex === section.length - 1 && sectionIndex === 2):\n break\n case (config.compact && sectionName === \"body\" && !row.empty):\n break\n case (config.borderStyle === \"none\" && config.compact):\n break\n default:\n output.push(borders[1])\n }\n }\n }\n\n output.push(borders[2])\n const finalOutput = \"\\n\".repeat(config.marginTop) + output.join(\"\")\n config.height = finalOutput.split(/\\r\\n|\\r|\\n/).length\n return finalOutput\n}\n\nexport const buildRow = (config: any, row: any[], rowType: string, rowIndex: number | null, rowData: any[], inputData: any[]) => {\n let minRowHeight = 0\n if (row.length === 0 && config.compact) {\n (row as any).empty = true\n return row\n }\n\n const lengthDifference = config.table.columnWidths.length - row.length\n if (lengthDifference > 0) row = row.concat(Array.apply(null, new Array(lengthDifference)).map(() => null))\n else if (lengthDifference < 0) row.length = config.table.columnWidths.length\n\n row = row.map((elem: any, elemIndex: number) => {\n const cell = buildCell(config, elem, elemIndex, rowType, rowIndex, rowData, inputData)\n minRowHeight = (minRowHeight < cell.length) ? cell.length : minRowHeight\n return cell\n })\n\n minRowHeight = (rowType === \"header\") ? minRowHeight : minRowHeight + (config.paddingBottom + config.paddingTop)\n const linedRow: any[] = Array.apply(null, { length: minRowHeight } as any).map(Function.call, () => [])\n\n row.forEach(function (cell: string[], a: number) {\n const whitespace = \" \".repeat(Math.max(config.table.columnWidths[a] - 1, 0))\n if (rowType === \"body\") {\n for (let i = 0; i < config.paddingTop; i++) cell.unshift(whitespace)\n for (let i = 0; i < config.paddingBottom; i++) cell.push(whitespace)\n }\n for (let i = 0; i < minRowHeight; i++) linedRow[i].push((typeof cell[i] !== \"undefined\") ? cell[i] : whitespace)\n })\n\n return linedRow\n}\n\nexport const buildCell = (config: any, elem: any, columnIndex: number, rowType: string, rowIndex: number | null, rowData: any[], inputData: any[], dryRun = false) => {\n let cellValue: any = null\n const cellOptions: any = Object.assign(\n { reset: false },\n config,\n (rowType !== \"header\") ? config.columnSettings[columnIndex] : {},\n (typeof elem === \"object\") ? elem : {}\n )\n\n if (rowType === \"header\") {\n config.table.columns.push(cellOptions)\n cellValue = cellOptions.alias || cellOptions.value || \"\"\n } else {\n switch (true) {\n case (typeof elem === \"undefined\" || elem === null):\n cellValue = (config.errorOnNull) ? config.defaultErrorValue : config.defaultValue\n if (!isColorEnabled()) cellValue = stripAnsi(cellValue)\n cellOptions.isNull = true\n break\n case (typeof elem === \"object\" && elem !== null && typeof elem.value !== \"undefined\"):\n cellValue = elem.value\n break\n case (typeof elem === \"function\"):\n cellValue = (elem as Function).bind({\n configure: function (object: any) { return Object.assign(cellOptions, object) },\n style: style,\n resetStyle: resetStyle\n })(cellValue, columnIndex, rowIndex, rowData, inputData)\n break\n default:\n cellValue = elem\n }\n\n if (rowType === \"body\" && typeof cellOptions.formatter === \"function\") {\n cellValue = cellOptions.formatter.bind({\n configure: function (object: any) { return Object.assign(cellOptions, object) },\n style: style,\n resetStyle: resetStyle\n })(cellValue, columnIndex, rowIndex, rowData, inputData)\n }\n\n if (dryRun) return cellValue\n }\n\n if (!cellOptions.reset) cellValue = colorizeCell(cellValue, cellOptions, rowType)\n const { cell, innerWidth } = wrapCellText(cellOptions, cellValue, columnIndex, cellOptions, rowType)\n if (rowType === \"header\") config.table.columnInnerWidths.push(innerWidth)\n return cell\n}\n\nexport const getConstructorGeometry = (row: any, config: any) => {\n let type: string\n if (typeof row === \"object\" && !(row instanceof Array)) {\n const keys = Object.keys(row)\n if (config.adapter === \"automattic\") {\n const key = keys[0]!\n type = row[key] instanceof Array ? \"automattic-cross\" : \"automattic-vertical\"\n } else type = \"o-horizontal\"\n } else type = \"a-horizontal\"\n return type\n}\n\nexport const coerceConstructorGeometry = (config: any, rows: any[], constructorType: string) => {\n let output: any[] = []\n switch (constructorType) {\n case \"automattic-cross\":\n config.columnSettings[0] = config.columnSettings[0] || {}\n config.columnSettings[0].color = config.headerColor\n output = rows.map((obj: any) => {\n const key = Object.keys(obj)[0]!\n return [key].concat(obj[key])\n })\n break\n case \"automattic-vertical\":\n config.columnSettings[0] = config.columnSettings[0] || {}\n config.columnSettings[0].color = config.headerColor\n output = rows.map((value: any) => {\n const key = Object.keys(value)[0]!\n return [key, value[key]]\n })\n break\n case \"o-horizontal\":\n if (config.table.header[0].length && config.table.header[0].every((obj: any) => obj.value)) {\n output = rows.map((row: any) => config.table.header[0].map((obj: any) => row[obj.value]))\n } else output = rows.map((obj: any) => Object.values(obj))\n break\n case \"a-horizontal\":\n output = rows\n break\n }\n return output\n}\n","import defaults from \"./defaults\"\nimport { stringifyData } from \"./render\"\nimport { resetStyle, style, styleEachChar } from \"./style\"\n\nlet counter = 0\n\nexport interface Formatter {\n (cellValue: any, columnIndex: number, rowIndex: number, rowData: any, inputData: any): string\n}\n\nexport interface Header {\n alias?: string\n align?: string\n color?: string\n footerAlign?: string\n footerColor?: string\n formatter?: Formatter\n headerAlign?: string\n headerColor?: string\n marginLeft?: number\n marginTop?: number\n paddingBottom?: number\n paddingLeft?: number\n paddingRight?: number\n paddingTop?: number\n value: string\n width?: string | number\n}\n\nexport interface Options {\n borderStyle?: string\n borderColor?: string\n color?: string\n compact?: boolean\n defaultErrorValue?: string\n defaultValue?: string\n errorOnNull?: boolean\n truncate?: string | boolean\n width?: string | number\n footerColor?: string\n [key: string]: unknown\n}\n\nexport interface Table extends Array<any> {\n render(): string\n height?: number\n [key: string]: any\n}\n\nconst Factory = function (paramsArr: any[]): any {\n const _configKey = (Symbol as any).config // legacy quirk: evaluates to undefined; kept for behavior parity\n let header: any = []\n const body: any[] = []\n let footer: any = []\n let options: any = {}\n\n // handle different parameter scenarios\n switch (true) {\n // header, rows, footer, and options\n case (paramsArr.length === 4):\n header = paramsArr[0]\n body.push(...paramsArr[1]) // creates new array to store our rows (body)\n footer = paramsArr[2]\n options = paramsArr[3]\n break\n\n // header, rows, footer\n case (paramsArr.length === 3 && paramsArr[2] instanceof Array):\n header = paramsArr[0]\n body.push(...paramsArr[1]) // creates new array to store our rows\n footer = paramsArr[2]\n break\n\n // header, rows, options\n case (paramsArr.length === 3 && typeof paramsArr[2] === \"object\"):\n header = paramsArr[0]\n body.push(...paramsArr[1]) // creates new array to store our rows\n options = paramsArr[2]\n break\n\n // header, rows (rows, footer is not an option)\n case (paramsArr.length === 2 && paramsArr[1] instanceof Array):\n header = paramsArr[0]\n body.push(...paramsArr[1]) // creates new array to store our rows\n break\n\n // rows, options\n case (paramsArr.length === 2 && typeof paramsArr[1] === \"object\"):\n body.push(...paramsArr[0]) // creates new array to store our rows\n options = paramsArr[1]\n break\n\n // rows\n case (paramsArr.length === 1 && paramsArr[0] instanceof Array):\n body.push(...paramsArr[0])\n break\n\n // adapter called: i.e. `require('tty-table')('automattic-cli-table')`\n case (paramsArr.length === 1 && typeof paramsArr[0] === \"string\"): {\n // known adapters are mapped statically so bundlers leave them external;\n // a dynamic require(`../adapters/${name}`) fallback would make esbuild\n // eagerly bundle every adapters/* file (candidate scanning), which then\n // fails on their ../dist/index.js requires at build time\n const adapters: Record<string, () => any> = {\n \"automattic-cli-table\": () => require(\"../adapters/automattic-cli-table.js\"),\n \"default-adapter\": () => require(\"../adapters/default-adapter.js\"),\n \"terminal-adapter\": () => require(\"../adapters/terminal-adapter.js\")\n }\n const load = adapters[paramsArr[0]]\n if (!load) throw new Error(`Unknown adapter: \"${paramsArr[0]}\". Available adapters: ${Object.keys(adapters).join(\", \")}`)\n return load()\n }\n\n /* istanbul ignore next */\n default:\n console.log(\"Error: Bad params. \\nSee docs at github.com/tecfu/tty-table\")\n process.exit()\n }\n\n // for \"deep\" copy, use JSON.parse\n const cloneddefaults = JSON.parse(JSON.stringify(defaults))\n const config: any = Object.assign({}, cloneddefaults, options)\n\n // backfixes for shortened option names\n config.align = config.alignment || config.align\n config.headerAlign = config.headerAlignment || config.headerAlign\n\n // for truncate true is equivalent to empty string\n if (config.truncate === true) config.truncate = \"\"\n\n // if borderColor customized, color the border character set\n if (config.borderColor) {\n config.borderCharacters[config.borderStyle]\n = config.borderCharacters[config.borderStyle].map(function (obj: any) {\n Object.keys(obj).forEach(function (key) {\n obj[key] = style(obj[key], config.borderColor)\n })\n return obj\n })\n }\n\n // save a copy for merging columnSettings into cell options\n config.columnSettings = header.slice(0)\n\n // header\n config.table.header = header\n\n // match header geometry with body array\n config.table.header = [config.table.header]\n\n // footer\n config.table.footer = footer\n\n // counting table enables fixed column widths for streams,\n // variable widths for multiple tables simulateously\n if (config.terminalAdapter !== true) {\n counter++ // fix columnwidths for streams\n }\n config.tableId = counter\n\n // create a new object with an Array prototype\n const tableObject: any = Object.create(body)\n\n // save configuration to new object\n tableObject[_configKey] = config\n\n /**\n * Add method to render table to a string\n * @returns {String}\n * @memberof Table\n * @example\n * ```js\n * let str = t1.render();\n * console.log(str); //outputs table\n * ```\n */\n tableObject.render = function (this: any) {\n const output = stringifyData(this[_configKey], this.slice(0)) // get string output\n tableObject.height = this[_configKey].height\n return output\n }\n\n return tableObject\n}\n\ninterface TtyTableFactory {\n (headers: (string | Header | Formatter)[], body: unknown[], footers: (string | Header | Formatter)[], config?: Options): Table\n (header: (string | Header | Formatter)[], body: unknown[], config?: Options): Table\n (body: unknown[], config?: Options): Table\n resetStyle(str: string): string\n style(str: string, ...colors: string[]): string\n}\n\nconst Table = function (...params: any[]) {\n return Factory(params)\n} as unknown as TtyTableFactory\n\nTable.resetStyle = resetStyle\nTable.style = styleEachChar\n\nexport default Table\n","import Factory from \"./factory\"\n\nexport type * from \"./types\"\nexport type { Header, Options, Table, Formatter } from \"./factory\"\n\nexport default Factory\n","const ANSI = /\\u001B\\[[0-?]*[ -\\/]*[@-~]/g\n\nconst codes: Record<string, string> = {\n reset: \"0\", bold: \"1\", dim: \"2\", italic: \"3\", underline: \"4\", inverse: \"7\", hidden: \"8\", strikethrough: \"9\",\n black: \"30\", red: \"31\", green: \"32\", yellow: \"33\", blue: \"34\", magenta: \"35\", cyan: \"36\", white: \"37\",\n gray: \"90\", grey: \"90\", bgBlack: \"40\", bgRed: \"41\", bgGreen: \"42\", bgYellow: \"43\", bgBlue: \"44\", bgMagenta: \"45\", bgCyan: \"46\", bgWhite: \"47\"\n}\n\nexport const stripAnsi = (value: string): string => value.replace(ANSI, \"\")\nexport const displayWidth = (value: string, wcwidth: (s: string) => number): number =>\n Math.max(0, ...stripAnsi(value).split(/\\r?\\n/).map(wcwidth))\n\nexport const style = (value: string, ...styles: string[]): string => {\n const active = styles.map((s) => codes[s]).filter(Boolean)\n return active.length ? `\\u001b[${active.join(\";\")}m${value}\\u001b[0m` : value\n}\n\nexport const styleEachChar = (value: string, ...styles: string[]): string =>\n [...stripAnsi(value)].map((char) => style(char, ...styles)).join(\"\")\n\nexport const ansiSafeSlice = (value: string, width: number, wcwidth: (s: string) => number): string => {\n if (width <= 0) return \"\"\n let out = \"\"\n let visible = 0\n let i = 0\n while (i < value.length && visible < width) {\n ANSI.lastIndex = i\n const match = ANSI.exec(value)\n if (match?.index === i) {\n out += match[0]\n i += match[0].length\n continue\n }\n const cp = String.fromCodePoint(value.codePointAt(i)!)\n const w = wcwidth(cp)\n if (visible + w > width) break\n out += cp\n visible += w\n i += cp.length\n }\n return out\n}\n"],"mappings":"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,CAAE,MAAQ,IAAO;AAAA,MACzD,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MACzD,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MACzD,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MACzD,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MACzD,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MACzD,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MACzD,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MACzD,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MACzD,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MACzD,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MACzD,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MACzD,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MACzD,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MACzD,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MACzD,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAAQ,IAAO;AAAA,MACzD,CAAE,MAAQ,IAAO;AAAA,MAAG,CAAE,MAA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","names":["exports","module","clone","parent","depth","exports","module","defaults","exports","module","exports","module","defaults","wcwidth","chalk","kleur","stripAnsi","import_strip_ansi","stripAnsi","wcwidth","smartwrap","import_strip_ansi","stripAnsi","style","yargs","fs","path","style"]}