@jsenv/humanize 1.6.0 → 1.7.1
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/browser/jsenv_humanize_browser.js +539 -482
- package/dist/browser/jsenv_humanize_browser.js.map +76 -0
- package/dist/node/jsenv_humanize_node.js +36 -37
- package/dist/node/jsenv_humanize_node.js.map +97 -0
- package/dist/node/jsenv_humanize_node_modules.js +23 -15
- package/dist/node/jsenv_humanize_node_modules.js.map +21 -0
- package/package.json +18 -19
- package/src/_tests/byte/file_size.test.js +0 -18
- package/src/_tests/byte/memory.test.js +0 -11
- package/src/_tests/content_frame/content_frame.test.js +0 -155
- package/src/_tests/content_frame/snapshots/10_line_and_column_are_zero.txt +0 -2
- package/src/_tests/content_frame/snapshots/11_line_is_last.txt +0 -3
- package/src/_tests/content_frame/snapshots/1_basic.txt +0 -4
- package/src/_tests/content_frame/snapshots/2_basic_2.txt +0 -6
- package/src/_tests/content_frame/snapshots/3_empty_last_line.txt +0 -7
- package/src/_tests/content_frame/snapshots/4_no_column.txt +0 -3
- package/src/_tests/content_frame/snapshots/5_line_1_and_2_digits.txt +0 -3
- package/src/_tests/content_frame/snapshots/6_line_too_long_column_undefined.txt +0 -3
- package/src/_tests/content_frame/snapshots/7_line_too_long_column_near_start.txt +0 -4
- package/src/_tests/content_frame/snapshots/8_line_too_long_column_near_middle.txt +0 -4
- package/src/_tests/content_frame/snapshots/9_line_too_long_column_near_end.txt +0 -4
- package/src/_tests/js_value/_inspect.test.html +0 -22
- package/src/_tests/js_value/array.test.js +0 -72
- package/src/_tests/js_value/biginit.test.js +0 -35
- package/src/_tests/js_value/boolean.test.js +0 -45
- package/src/_tests/js_value/date.test.js +0 -15
- package/src/_tests/js_value/error.test.js +0 -33
- package/src/_tests/js_value/function.test.js +0 -51
- package/src/_tests/js_value/instance.test.js +0 -12
- package/src/_tests/js_value/null.test.js +0 -6
- package/src/_tests/js_value/number.test.js +0 -182
- package/src/_tests/js_value/object.test.js +0 -173
- package/src/_tests/js_value/regexp.test.js +0 -15
- package/src/_tests/js_value/string.test.js +0 -106
- package/src/_tests/js_value/symbol.test.js +0 -20
- package/src/_tests/js_value/undefined.test.js +0 -6
- package/src/_tests/log/log_long.test_manual.mjs +0 -39
- package/src/_tests/log/log_modified.test_manual.mjs +0 -7
- package/src/_tests/log/logger.test.mjs +0 -90
- package/src/_tests/log/spinner.duration.test_manual.mjs +0 -25
- package/src/_tests/log/spinner.test.mjs +0 -33
- package/src/_tests/log/spinner.test_manual.mjs +0 -15
- package/src/_tests/percentage/percentage_distribution.test.mjs +0 -89
- package/src/_tests/time/decimals.test.js +0 -119
- package/src/_tests/time/duration.test.js +0 -20
- package/src/_tests/time/ellapsed.test.js +0 -10
- package/src/ansi/ansi_browser.js +0 -3
- package/src/ansi/ansi_node.js +0 -13
- package/src/ansi/ansi_runtime_agnostic.js +0 -107
- package/src/byte/byte.js +0 -44
- package/src/content_frame/content_frame.js +0 -157
- package/src/error/error_to_html.js +0 -22
- package/src/error/error_to_markdown.js +0 -14
- package/src/error/format_error.js +0 -53
- package/src/js_value/array.js +0 -58
- package/src/js_value/bigint.js +0 -3
- package/src/js_value/bigint_object.js +0 -5
- package/src/js_value/boolean.js +0 -1
- package/src/js_value/boolean_object.js +0 -12
- package/src/js_value/constructor.js +0 -10
- package/src/js_value/date.js +0 -8
- package/src/js_value/error.js +0 -34
- package/src/js_value/function.js +0 -20
- package/src/js_value/humanize.js +0 -142
- package/src/js_value/null.js +0 -1
- package/src/js_value/number.js +0 -101
- package/src/js_value/number_object.js +0 -9
- package/src/js_value/object.js +0 -78
- package/src/js_value/regexp.js +0 -1
- package/src/js_value/string.js +0 -141
- package/src/js_value/string_object.js +0 -10
- package/src/js_value/symbol.js +0 -24
- package/src/js_value/undefined.js +0 -1
- package/src/log/LOG_LEVELS.js +0 -9
- package/src/log/call_orderer.js +0 -39
- package/src/log/detailed_message.js +0 -29
- package/src/log/details.js +0 -26
- package/src/log/dynamic_log.js +0 -186
- package/src/log/logger.js +0 -85
- package/src/log/section.js +0 -50
- package/src/log/spinner.js +0 -72
- package/src/log/task_log.js +0 -49
- package/src/main_browser.js +0 -13
- package/src/main_node.js +0 -25
- package/src/percentage/distribute_percentages.js +0 -53
- package/src/time/time.js +0 -151
- package/src/unicode/unicode_browser.js +0 -7
- package/src/unicode/unicode_node.js +0 -8
- package/src/unicode/unicode_runtime_agnostic.js +0 -56
- package/src/utils/decimals.js +0 -95
- package/src/utils/indentation.js +0 -38
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"file": "jsenv_humanize_browser.js",
|
|
4
|
+
"sources": [
|
|
5
|
+
"../../log/detailed_message.js",
|
|
6
|
+
"../../ansi/ansi_runtime_agnostic.js",
|
|
7
|
+
"../../ansi/ansi_browser.js",
|
|
8
|
+
"../../unicode/unicode_runtime_agnostic.js",
|
|
9
|
+
"../../unicode/unicode_browser.js",
|
|
10
|
+
"../../js_value/boolean.js",
|
|
11
|
+
"../../js_value/null.js",
|
|
12
|
+
"../../js_value/number.js",
|
|
13
|
+
"../../js_value/string.js",
|
|
14
|
+
"../../js_value/symbol.js",
|
|
15
|
+
"../../js_value/undefined.js",
|
|
16
|
+
"../../js_value/bigint.js",
|
|
17
|
+
"../../utils/indentation.js",
|
|
18
|
+
"../../js_value/constructor.js",
|
|
19
|
+
"../../js_value/array.js",
|
|
20
|
+
"../../js_value/bigint_object.js",
|
|
21
|
+
"../../js_value/boolean_object.js",
|
|
22
|
+
"../../js_value/error.js",
|
|
23
|
+
"../../js_value/date.js",
|
|
24
|
+
"../../js_value/function.js",
|
|
25
|
+
"../../js_value/number_object.js",
|
|
26
|
+
"../../js_value/object.js",
|
|
27
|
+
"../../js_value/regexp.js",
|
|
28
|
+
"../../js_value/string_object.js",
|
|
29
|
+
"../../js_value/humanize.js",
|
|
30
|
+
"../../utils/decimals.js",
|
|
31
|
+
"../../time/time.js",
|
|
32
|
+
"../../byte/byte.js",
|
|
33
|
+
"../../percentage/distribute_percentages.js",
|
|
34
|
+
"../../content_frame/content_frame.js",
|
|
35
|
+
"../../log/call_orderer.js",
|
|
36
|
+
"../../error/error_to_markdown.js",
|
|
37
|
+
"../../error/error_to_html.js"
|
|
38
|
+
],
|
|
39
|
+
"sourcesContent": [
|
|
40
|
+
"export const createDetailedMessage = (message, details = {}) => {\n let text = `${message}`;\n const namedSectionsText = renderNamedSections(details);\n if (namedSectionsText) {\n text += `\n${namedSectionsText}`;\n }\n return text;\n};\n\nexport const renderNamedSections = (namedSections) => {\n let text = \"\";\n let keys = Object.keys(namedSections);\n for (const key of keys) {\n const isLastKey = key === keys[keys.length - 1];\n const value = namedSections[key];\n text += `--- ${key} ---\n${\n Array.isArray(value)\n ? value.join(`\n`)\n : value\n}`;\n if (!isLastKey) {\n text += \"\\n\";\n }\n }\n return text;\n};\n",
|
|
41
|
+
"// https://github.com/Marak/colors.js/blob/master/lib/styles.js\n// https://stackoverflow.com/a/75985833/2634179\nconst RESET = \"\\x1b[0m\";\n\nconst RED = \"red\";\nconst GREEN = \"green\";\nconst YELLOW = \"yellow\";\nconst BLUE = \"blue\";\nconst MAGENTA = \"magenta\";\nconst CYAN = \"cyan\";\nconst GREY = \"grey\";\nconst WHITE = \"white\";\nconst BLACK = \"black\";\n\nconst TEXT_COLOR_ANSI_CODES = {\n [RED]: \"\\x1b[31m\",\n [GREEN]: \"\\x1b[32m\",\n [YELLOW]: \"\\x1b[33m\",\n [BLUE]: \"\\x1b[34m\",\n [MAGENTA]: \"\\x1b[35m\",\n [CYAN]: \"\\x1b[36m\",\n [GREY]: \"\\x1b[90m\",\n [WHITE]: \"\\x1b[37m\",\n [BLACK]: \"\\x1b[30m\",\n};\nconst BACKGROUND_COLOR_ANSI_CODES = {\n [RED]: \"\\x1b[41m\",\n [GREEN]: \"\\x1b[42m\",\n [YELLOW]: \"\\x1b[43m\",\n [BLUE]: \"\\x1b[44m\",\n [MAGENTA]: \"\\x1b[45m\",\n [CYAN]: \"\\x1b[46m\",\n [GREY]: \"\\x1b[100m\",\n [WHITE]: \"\\x1b[47m\",\n [BLACK]: \"\\x1b[40m\",\n};\n\nexport const createAnsi = ({ supported }) => {\n const ANSI = {\n supported,\n\n RED,\n GREEN,\n YELLOW,\n BLUE,\n MAGENTA,\n CYAN,\n GREY,\n WHITE,\n BLACK,\n color: (text, color) => {\n if (!ANSI.supported) {\n return text;\n }\n if (!color) {\n return text;\n }\n if (typeof text === \"string\" && text.trim() === \"\") {\n // cannot set color of blank chars\n return text;\n }\n const ansiEscapeCodeForTextColor = TEXT_COLOR_ANSI_CODES[color];\n if (!ansiEscapeCodeForTextColor) {\n return text;\n }\n return `${ansiEscapeCodeForTextColor}${text}${RESET}`;\n },\n backgroundColor: (text, color) => {\n if (!ANSI.supported) {\n return text;\n }\n if (!color) {\n return text;\n }\n if (typeof text === \"string\" && text.trim() === \"\") {\n // cannot set background color of blank chars\n return text;\n }\n const ansiEscapeCodeForBackgroundColor =\n BACKGROUND_COLOR_ANSI_CODES[color];\n if (!ansiEscapeCodeForBackgroundColor) {\n return text;\n }\n return `${ansiEscapeCodeForBackgroundColor}${text}${RESET}`;\n },\n\n BOLD: \"\\x1b[1m\",\n UNDERLINE: \"\\x1b[4m\",\n STRIKE: \"\\x1b[9m\",\n effect: (text, effect) => {\n if (!ANSI.supported) {\n return text;\n }\n if (!effect) {\n return text;\n }\n // cannot add effect to empty string\n if (text === \"\") {\n return text;\n }\n const ansiEscapeCodeForEffect = effect;\n return `${ansiEscapeCodeForEffect}${text}${RESET}`;\n },\n };\n\n return ANSI;\n};\n",
|
|
42
|
+
"import { createAnsi } from \"./ansi_runtime_agnostic.js\";\n\nexport const ANSI = createAnsi({ supported: true });\n",
|
|
43
|
+
"// see also https://github.com/sindresorhus/figures\n\nexport const createUnicode = ({ supported, ANSI }) => {\n const UNICODE = {\n supported,\n get COMMAND_RAW() {\n return UNICODE.supported ? `❯` : `>`;\n },\n get OK_RAW() {\n return UNICODE.supported ? `✔` : `√`;\n },\n get FAILURE_RAW() {\n return UNICODE.supported ? `✖` : `×`;\n },\n get DEBUG_RAW() {\n return UNICODE.supported ? `◆` : `♦`;\n },\n get INFO_RAW() {\n return UNICODE.supported ? `ℹ` : `i`;\n },\n get WARNING_RAW() {\n return UNICODE.supported ? `⚠` : `‼`;\n },\n get CIRCLE_CROSS_RAW() {\n return UNICODE.supported ? `ⓧ` : `(×)`;\n },\n get CIRCLE_DOTTED_RAW() {\n return UNICODE.supported ? `◌` : `*`;\n },\n get COMMAND() {\n return ANSI.color(UNICODE.COMMAND_RAW, ANSI.GREY); // ANSI_MAGENTA)\n },\n get OK() {\n return ANSI.color(UNICODE.OK_RAW, ANSI.GREEN);\n },\n get FAILURE() {\n return ANSI.color(UNICODE.FAILURE_RAW, ANSI.RED);\n },\n get DEBUG() {\n return ANSI.color(UNICODE.DEBUG_RAW, ANSI.GREY);\n },\n get INFO() {\n return ANSI.color(UNICODE.INFO_RAW, ANSI.BLUE);\n },\n get WARNING() {\n return ANSI.color(UNICODE.WARNING_RAW, ANSI.YELLOW);\n },\n get CIRCLE_CROSS() {\n return ANSI.color(UNICODE.CIRCLE_CROSS_RAW, ANSI.RED);\n },\n get ELLIPSIS() {\n return UNICODE.supported ? `…` : `...`;\n },\n };\n return UNICODE;\n};\n",
|
|
44
|
+
"import { ANSI } from \"../ansi/ansi_browser.js\";\nimport { createUnicode } from \"./unicode_runtime_agnostic.js\";\n\nexport const UNICODE = createUnicode({\n supported: true,\n ANSI,\n});\n",
|
|
45
|
+
"export const inspectBoolean = (value) => value.toString();\n",
|
|
46
|
+
"export const inspectNull = () => \"null\";\n",
|
|
47
|
+
"// https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/rules/numeric-separators-style.js\n\nexport const inspectNumber = (value, { numericSeparator }) => {\n if (isNegativeZero(value)) {\n return \"-0\";\n }\n // isNaN\n // eslint-disable-next-line no-self-compare\n if (value !== value) {\n return \"NaN\";\n }\n if (value === Infinity) {\n return \"Infinity\";\n }\n if (value === -Infinity) {\n return \"-Infinity\";\n }\n const numberString = String(value);\n if (!numericSeparator) {\n return numberString;\n }\n const {\n number,\n mark = \"\",\n sign = \"\",\n power = \"\",\n } = numberString.match(\n /^(?<number>.*?)(?:(?<mark>e)(?<sign>[+-])?(?<power>\\d+))?$/i,\n ).groups;\n const numberWithSeparators = formatNumber(number);\n const powerWithSeparators = addSeparator(power, {\n minimumDigits: 5,\n groupLength: 3,\n });\n return `${numberWithSeparators}${mark}${sign}${powerWithSeparators}`;\n};\n\n// Use this and instead of Object.is(value, -0)\n// because in some corner cases firefox returns false\n// for Object.is(-0, -0)\nconst isNegativeZero = (value) => {\n return value === 0 && 1 / value === -Infinity;\n};\n\nconst formatNumber = (numberString) => {\n const parts = numberString.split(\".\");\n const [integer, fractional] = parts;\n\n if (parts.length === 2) {\n const integerWithSeparators = addSeparator(integer, {\n minimumDigits: 5,\n groupLength: 3,\n });\n return `${integerWithSeparators}.${fractional}`;\n }\n\n return addSeparator(integer, {\n minimumDigits: 5,\n groupLength: 3,\n });\n};\n\nconst addSeparator = (numberString, { minimumDigits, groupLength }) => {\n if (numberString[0] === \"-\") {\n return `-${groupDigits(numberString.slice(1), {\n minimumDigits,\n groupLength,\n })}`;\n }\n return groupDigits(numberString, { minimumDigits, groupLength });\n};\n\nconst groupDigits = (digits, { minimumDigits, groupLength }) => {\n const digitCount = digits.length;\n if (digitCount < minimumDigits) {\n return digits;\n }\n\n let digitsWithSeparator = digits.slice(-groupLength);\n let remainingDigits = digits.slice(0, -groupLength);\n while (remainingDigits.length) {\n const group = remainingDigits.slice(-groupLength);\n remainingDigits = remainingDigits.slice(0, -groupLength);\n digitsWithSeparator = `${group}_${digitsWithSeparator}`;\n }\n return digitsWithSeparator;\n};\n\n// const addSeparatorFromLeft = (value, { minimumDigits, groupLength }) => {\n// const { length } = value;\n// if (length < minimumDigits) {\n// return value;\n// }\n\n// const parts = [];\n// for (let start = 0; start < length; start += groupLength) {\n// const end = Math.min(start + groupLength, length);\n// parts.push(value.slice(start, end));\n// }\n// return parts.join(\"_\");\n// };\n",
|
|
48
|
+
"const DOUBLE_QUOTE = `\"`;\nconst SINGLE_QUOTE = `'`;\nconst BACKTICK = \"`\";\n\nexport const inspectString = (\n value,\n {\n quote = \"auto\",\n canUseTemplateString = false,\n preserveLineBreaks = false,\n quoteDefault = DOUBLE_QUOTE,\n } = {},\n) => {\n quote =\n quote === \"auto\"\n ? determineQuote(value, { canUseTemplateString, quoteDefault })\n : quote;\n if (quote === BACKTICK) {\n return `\\`${escapeTemplateStringSpecialCharacters(value)}\\``;\n }\n return surroundStringWith(value, { quote, preserveLineBreaks });\n};\n\n// https://github.com/mgenware/string-to-template-literal/blob/main/src/main.ts#L1\nconst escapeTemplateStringSpecialCharacters = (string) => {\n string = String(string);\n let i = 0;\n let escapedString = \"\";\n while (i < string.length) {\n const char = string[i];\n i++;\n escapedString += isTemplateStringSpecialChar(char) ? `\\\\${char}` : char;\n }\n return escapedString;\n};\n\nconst isTemplateStringSpecialChar = (char) =>\n templateStringSpecialChars.indexOf(char) > -1;\nconst templateStringSpecialChars = [\"\\\\\", \"`\", \"$\"];\n\nexport const determineQuote = (\n string,\n { canUseTemplateString, quoteDefault = DOUBLE_QUOTE } = {},\n) => {\n const containsDoubleQuote = string.includes(DOUBLE_QUOTE);\n if (!containsDoubleQuote) {\n return DOUBLE_QUOTE;\n }\n const containsSimpleQuote = string.includes(SINGLE_QUOTE);\n if (!containsSimpleQuote) {\n return SINGLE_QUOTE;\n }\n if (canUseTemplateString) {\n const containsBackTick = string.includes(BACKTICK);\n if (!containsBackTick) {\n return BACKTICK;\n }\n }\n const doubleQuoteCount = string.split(DOUBLE_QUOTE).length - 1;\n const singleQuoteCount = string.split(SINGLE_QUOTE).length - 1;\n if (singleQuoteCount > doubleQuoteCount) {\n return DOUBLE_QUOTE;\n }\n if (doubleQuoteCount > singleQuoteCount) {\n return SINGLE_QUOTE;\n }\n return quoteDefault;\n};\n\nconst inspectChar = (char, { quote, preserveLineBreaks }) => {\n const point = char.charCodeAt(0);\n if (preserveLineBreaks && (char === \"\\n\" || char === \"\\r\")) {\n return char;\n }\n if (\n char === quote ||\n point === 92 ||\n point < 32 ||\n (point > 126 && point < 160) ||\n // line separators\n point === 8232 ||\n point === 8233\n ) {\n const replacement =\n char === quote\n ? `\\\\${quote}`\n : point === 8232\n ? \"\\\\u2028\"\n : point === 8233\n ? \"\\\\u2029\"\n : meta[point];\n return replacement;\n }\n return char;\n};\n\n// https://github.com/jsenv/jsenv-uneval/blob/6c97ef9d8f2e9425a66f2c88347e0a118d427f3a/src/internal/escapeString.js#L3\n// https://github.com/jsenv/jsenv-inspect/blob/bb11de3adf262b68f71ed82b0a37d4528dd42229/src/internal/string.js#L3\n// https://github.com/joliss/js-string-escape/blob/master/index.js\n// http://javascript.crockford.com/remedial.html\nconst surroundStringWith = (string, { quote, preserveLineBreaks }) => {\n let result = \"\";\n let last = 0;\n const lastIndex = string.length;\n let i = 0;\n while (i < lastIndex) {\n const char = string[i];\n const replacement = inspectChar(char, { quote, preserveLineBreaks });\n if (char !== replacement) {\n if (last === i) {\n result += replacement;\n } else {\n result += `${string.slice(last, i)}${replacement}`;\n }\n last = i + 1;\n }\n i++;\n }\n if (last !== lastIndex) {\n result += string.slice(last);\n }\n return `${quote}${result}${quote}`;\n};\n\n// prettier-ignore\nconst meta = [\n '\\\\x00', '\\\\x01', '\\\\x02', '\\\\x03', '\\\\x04', '\\\\x05', '\\\\x06', '\\\\x07', // x07\n '\\\\b', '\\\\t', '\\\\n', '\\\\x0B', '\\\\f', '\\\\r', '\\\\x0E', '\\\\x0F', // x0F\n '\\\\x10', '\\\\x11', '\\\\x12', '\\\\x13', '\\\\x14', '\\\\x15', '\\\\x16', '\\\\x17', // x17\n '\\\\x18', '\\\\x19', '\\\\x1A', '\\\\x1B', '\\\\x1C', '\\\\x1D', '\\\\x1E', '\\\\x1F', // x1F\n '', '', '', '', '', '', '', \"\\\\'\", '', '', '', '', '', '', '', '', // x2F\n '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', // x3F\n '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', // x4F\n '', '', '', '', '', '', '', '', '', '', '', '', '\\\\\\\\', '', '', '', // x5F\n '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', // x6F\n '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '\\\\x7F', // x7F\n '\\\\x80', '\\\\x81', '\\\\x82', '\\\\x83', '\\\\x84', '\\\\x85', '\\\\x86', '\\\\x87', // x87\n '\\\\x88', '\\\\x89', '\\\\x8A', '\\\\x8B', '\\\\x8C', '\\\\x8D', '\\\\x8E', '\\\\x8F', // x8F\n '\\\\x90', '\\\\x91', '\\\\x92', '\\\\x93', '\\\\x94', '\\\\x95', '\\\\x96', '\\\\x97', // x97\n '\\\\x98', '\\\\x99', '\\\\x9A', '\\\\x9B', '\\\\x9C', '\\\\x9D', '\\\\x9E', '\\\\x9F', // x9F\n];\n",
|
|
49
|
+
"export const inspectSymbol = (value, { nestedHumanize, parenthesis }) => {\n const symbolDescription = symbolToDescription(value);\n const symbolDescriptionSource = symbolDescription\n ? nestedHumanize(symbolDescription)\n : \"\";\n const symbolSource = `Symbol(${symbolDescriptionSource})`;\n\n if (parenthesis) return `${symbolSource}`;\n return symbolSource;\n};\n\nconst symbolToDescription =\n \"description\" in Symbol.prototype\n ? (symbol) => symbol.description\n : (symbol) => {\n const toStringResult = symbol.toString();\n const openingParenthesisIndex = toStringResult.indexOf(\"(\");\n const closingParenthesisIndex = toStringResult.indexOf(\")\");\n const symbolDescription = toStringResult.slice(\n openingParenthesisIndex + 1,\n closingParenthesisIndex,\n );\n return symbolDescription;\n };\n",
|
|
50
|
+
"export const inspectUndefined = () => \"undefined\";\n",
|
|
51
|
+
"export const inspectBigInt = (value) => {\n return `${value}n`;\n};\n",
|
|
52
|
+
"export const prefixFirstAndIndentRemainingLines = (\n text,\n { prefix, indentation, trimLines, trimLastLine },\n) => {\n const lines = text.split(/\\r?\\n/);\n const firstLine = lines.shift();\n if (indentation === undefined) {\n if (prefix) {\n indentation = \" \"; // prefix + space\n } else {\n indentation = \"\";\n }\n }\n let result = prefix ? `${prefix} ${firstLine}` : firstLine;\n let i = 0;\n while (i < lines.length) {\n const line = trimLines ? lines[i].trim() : lines[i];\n i++;\n result += line.length\n ? `\\n${indentation}${line}`\n : trimLastLine && i === lines.length\n ? \"\"\n : `\\n`;\n }\n return result;\n};\n\nexport const preNewLineAndIndentation = (\n value,\n { depth = 0, indentUsingTab, indentSize },\n) => {\n return `${newLineAndIndent({\n count: depth + 1,\n useTabs: indentUsingTab,\n size: indentSize,\n })}${value}`;\n};\n\nconst postNewLineAndIndentation = ({ depth, indentUsingTab, indentSize }) => {\n return newLineAndIndent({\n count: depth,\n useTabs: indentUsingTab,\n size: indentSize,\n });\n};\n\nconst newLineAndIndent = ({ count, useTabs, size }) => {\n if (useTabs) {\n // eslint-disable-next-line prefer-template\n return \"\\n\" + \"\\t\".repeat(count);\n }\n // eslint-disable-next-line prefer-template\n return \"\\n\" + \" \".repeat(count * size);\n};\n\nexport const wrapNewLineAndIndentation = (\n value,\n { depth = 0, indentUsingTab, indentSize },\n) => {\n return `${preNewLineAndIndentation(value, {\n depth,\n indentUsingTab,\n indentSize,\n })}${postNewLineAndIndentation({ depth, indentUsingTab, indentSize })}`;\n};\n",
|
|
53
|
+
"export const inspectConstructor = (value, { parenthesis, useNew }) => {\n let formattedString = value;\n if (parenthesis) {\n formattedString = `(${value})`;\n }\n if (useNew) {\n formattedString = `new ${formattedString}`;\n }\n return formattedString;\n};\n",
|
|
54
|
+
"import {\n preNewLineAndIndentation,\n wrapNewLineAndIndentation,\n} from \"../utils/indentation.js\";\nimport { inspectConstructor } from \"./constructor.js\";\n\nexport const inspectArray = (\n value,\n {\n seen = [],\n nestedHumanize,\n depth,\n indentUsingTab,\n indentSize,\n parenthesis,\n useNew,\n },\n) => {\n if (seen.indexOf(value) > -1) {\n return \"Symbol.for('circular')\";\n }\n seen.push(value);\n\n let valuesSource = \"\";\n let i = 0;\n const j = value.length;\n\n while (i < j) {\n const valueSource = value.hasOwnProperty(i)\n ? nestedHumanize(value[i], { seen })\n : \"\";\n if (i === 0) {\n valuesSource += valueSource;\n } else {\n valuesSource += `,${preNewLineAndIndentation(valueSource, {\n depth,\n indentUsingTab,\n indentSize,\n })}`;\n }\n i++;\n }\n\n let arraySource;\n if (valuesSource.length) {\n arraySource = wrapNewLineAndIndentation(valuesSource, {\n depth,\n indentUsingTab,\n indentSize,\n });\n } else {\n arraySource = \"\";\n }\n\n arraySource = `[${arraySource}]`;\n\n return inspectConstructor(arraySource, { parenthesis, useNew });\n};\n",
|
|
55
|
+
"export const inspectBigIntObject = (value, { nestedHumanize }) => {\n const bigIntSource = nestedHumanize(value.valueOf());\n\n return `BigInt(${bigIntSource})`;\n};\n",
|
|
56
|
+
"import { inspectConstructor } from \"./constructor.js\";\n\nexport const inspectBooleanObject = (\n value,\n { nestedHumanize, useNew, parenthesis },\n) => {\n const booleanSource = nestedHumanize(value.valueOf());\n return inspectConstructor(`Boolean(${booleanSource})`, {\n useNew,\n parenthesis,\n });\n};\n",
|
|
57
|
+
"import { inspectConstructor } from \"./constructor.js\";\n\nexport const inspectError = (\n error,\n { nestedHumanize, useNew, parenthesis },\n) => {\n const messageSource = nestedHumanize(error.message);\n\n const errorSource = inspectConstructor(\n `${errorToConstructorName(error)}(${messageSource})`,\n {\n useNew,\n parenthesis,\n },\n );\n return errorSource;\n};\n\nconst errorToConstructorName = ({ name }) => {\n if (derivedErrorNameArray.includes(name)) {\n return name;\n }\n return \"Error\";\n};\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Error_types\nconst derivedErrorNameArray = [\n \"EvalError\",\n \"RangeError\",\n \"ReferenceError\",\n \"SyntaxError\",\n \"TypeError\",\n \"URIError\",\n];\n",
|
|
58
|
+
"import { inspectConstructor } from \"./constructor.js\";\n\nexport const inspectDate = (value, { nestedHumanize, useNew, parenthesis }) => {\n const dateSource = nestedHumanize(value.valueOf(), {\n numericSeparator: false,\n });\n return inspectConstructor(`Date(${dateSource})`, { useNew, parenthesis });\n};\n",
|
|
59
|
+
"export const inspectFunction = (\n value,\n { showFunctionBody, parenthesis, depth },\n) => {\n let functionSource;\n if (showFunctionBody) {\n functionSource = value.toString();\n } else {\n const isArrowFunction = value.prototype === undefined;\n const head = isArrowFunction\n ? \"() =>\"\n : `function ${depth === 0 ? value.name : \"\"}()`;\n functionSource = `${head} {/* hidden */}`;\n }\n\n if (parenthesis) {\n return `(${functionSource})`;\n }\n return functionSource;\n};\n",
|
|
60
|
+
"import { inspectConstructor } from \"./constructor.js\";\n\nexport const inspectNumberObject = (\n value,\n { nestedHumanize, useNew, parenthesis },\n) => {\n const numberSource = nestedHumanize(value.valueOf());\n return inspectConstructor(`Number(${numberSource})`, { useNew, parenthesis });\n};\n",
|
|
61
|
+
"import {\n preNewLineAndIndentation,\n wrapNewLineAndIndentation,\n} from \"../utils/indentation.js\";\nimport { inspectConstructor } from \"./constructor.js\";\n\nexport const inspectObject = (\n value,\n {\n nestedHumanize,\n seen = [],\n depth,\n indentUsingTab,\n indentSize,\n objectConstructor,\n parenthesis,\n useNew,\n },\n) => {\n if (seen.indexOf(value) > -1) return \"Symbol.for('circular')\";\n\n seen.push(value);\n\n const propertySourceArray = [];\n Object.getOwnPropertyNames(value).forEach((propertyName) => {\n const propertyNameAsNumber = parseInt(propertyName, 10);\n const propertyNameSource = nestedHumanize(\n Number.isInteger(propertyNameAsNumber)\n ? propertyNameAsNumber\n : propertyName,\n );\n propertySourceArray.push({\n nameOrSymbolSource: propertyNameSource,\n valueSource: nestedHumanize(value[propertyName], { seen }),\n });\n });\n Object.getOwnPropertySymbols(value).forEach((symbol) => {\n propertySourceArray.push({\n nameOrSymbolSource: `[${nestedHumanize(symbol)}]`,\n valueSource: nestedHumanize(value[symbol], { seen }),\n });\n });\n\n let propertiesSource = \"\";\n propertySourceArray.forEach(({ nameOrSymbolSource, valueSource }, index) => {\n if (index === 0) {\n propertiesSource += `${nameOrSymbolSource}: ${valueSource}`;\n } else {\n propertiesSource += `,${preNewLineAndIndentation(\n `${nameOrSymbolSource}: ${valueSource}`,\n {\n depth,\n indentUsingTab,\n indentSize,\n },\n )}`;\n }\n });\n\n let objectSource;\n if (propertiesSource.length) {\n objectSource = `${wrapNewLineAndIndentation(propertiesSource, {\n depth,\n indentUsingTab,\n indentSize,\n })}`;\n } else {\n objectSource = \"\";\n }\n\n if (objectConstructor) {\n objectSource = `Object({${objectSource}})`;\n } else {\n objectSource = `{${objectSource}}`;\n }\n\n return inspectConstructor(objectSource, { parenthesis, useNew });\n};\n",
|
|
62
|
+
"export const inspectRegExp = (value) => value.toString();\n",
|
|
63
|
+
"import { inspectConstructor } from \"./constructor.js\";\n\nexport const inspectStringObject = (\n value,\n { nestedHumanize, useNew, parenthesis },\n) => {\n const stringSource = nestedHumanize(value.valueOf());\n\n return inspectConstructor(`String(${stringSource})`, { useNew, parenthesis });\n};\n",
|
|
64
|
+
"// tslint:disable:ordered-imports\n\n// primitives\nimport { inspectBoolean } from \"./boolean.js\";\nimport { inspectNull } from \"./null.js\";\nimport { inspectNumber } from \"./number.js\";\nimport { inspectString } from \"./string.js\";\nimport { inspectSymbol } from \"./symbol.js\";\nimport { inspectUndefined } from \"./undefined.js\";\nimport { inspectBigInt } from \"./bigint.js\";\nimport { inspectArray } from \"./array.js\";\n// composites\nimport { inspectBigIntObject } from \"./bigint_object.js\";\nimport { inspectBooleanObject } from \"./boolean_object.js\";\nimport { inspectError } from \"./error.js\";\nimport { inspectDate } from \"./date.js\";\nimport { inspectFunction } from \"./function.js\";\nimport { inspectNumberObject } from \"./number_object.js\";\nimport { inspectObject } from \"./object.js\";\nimport { inspectRegExp } from \"./regexp.js\";\nimport { inspectStringObject } from \"./string_object.js\";\nimport { inspectConstructor } from \"./constructor.js\";\n\nexport const humanize = (\n value,\n {\n parenthesis = false,\n quote = \"auto\",\n canUseTemplateString = true,\n useNew = false,\n objectConstructor = false,\n showFunctionBody = false,\n indentUsingTab = false,\n indentSize = 2,\n numericSeparator = true,\n preserveLineBreaks = false,\n } = {},\n) => {\n const scopedHumanize = (scopedValue, scopedOptions) => {\n const options = {\n ...scopedOptions,\n nestedHumanize: (nestedValue, nestedOptions = {}) => {\n return scopedHumanize(nestedValue, {\n ...scopedOptions,\n depth: scopedOptions.depth + 1,\n ...nestedOptions,\n });\n },\n };\n return humanizeValue(scopedValue, options);\n };\n\n return scopedHumanize(value, {\n parenthesis,\n quote,\n canUseTemplateString,\n useNew,\n objectConstructor,\n showFunctionBody,\n indentUsingTab,\n indentSize,\n numericSeparator,\n preserveLineBreaks,\n depth: 0,\n });\n};\n\nexport const humanizeMethodSymbol = Symbol.for(\"inspect\");\n\nconst humanizeValue = (value, options) => {\n const customHumanize = value && value[humanizeMethodSymbol];\n if (customHumanize) {\n return customHumanize(options);\n }\n const primitiveType = primitiveTypeFromValue(value);\n const primitiveStringifier = primitiveStringifiers[primitiveType];\n if (primitiveStringifier) {\n return primitiveStringifier(value, options);\n }\n const compositeType = compositeTypeFromObject(value);\n const compositeStringifier = compositeStringifiers[compositeType];\n if (compositeStringifier) {\n return compositeStringifier(value, options);\n }\n return inspectConstructor(\n `${compositeType}(${inspectObject(value, options)})`,\n {\n ...options,\n parenthesis: false,\n },\n );\n};\n\nconst primitiveTypeFromValue = (value) => {\n if (value === null) {\n return \"null\";\n }\n if (value === undefined) {\n return \"undefined\";\n }\n return typeof value;\n};\nconst primitiveStringifiers = {\n boolean: inspectBoolean,\n function: inspectFunction,\n null: inspectNull,\n number: inspectNumber,\n string: inspectString,\n symbol: inspectSymbol,\n undefined: inspectUndefined,\n bigint: inspectBigInt,\n};\nconst compositeTypeFromObject = (object) => {\n if (typeof object === \"object\" && Object.getPrototypeOf(object) === null) {\n return \"Object\";\n }\n const toStringResult = toString.call(object);\n // returns format is '[object ${tagName}]';\n // and we want ${tagName}\n const tagName = toStringResult.slice(\"[object \".length, -1);\n if (tagName === \"Object\") {\n const objectConstructorName = object.constructor.name;\n if (objectConstructorName !== \"Object\") {\n return objectConstructorName;\n }\n }\n return tagName;\n};\nconst { toString } = Object.prototype;\n\nconst compositeStringifiers = {\n Array: inspectArray,\n BigInt: inspectBigIntObject,\n Boolean: inspectBooleanObject,\n Error: inspectError,\n Date: inspectDate,\n Function: inspectFunction,\n Number: inspectNumberObject,\n Object: inspectObject,\n RegExp: inspectRegExp,\n String: inspectStringObject,\n};\n",
|
|
65
|
+
"export const getPrecision = (number) => {\n if (Math.floor(number) === number) return 0;\n const [, decimals] = number.toString().split(\".\");\n return decimals.length || 0;\n};\n\nexport const setRoundedPrecision = (\n number,\n { decimals = 1, decimalsWhenSmall = decimals } = {},\n) => {\n return setDecimalsPrecision(number, {\n decimals,\n decimalsWhenSmall,\n transform: Math.round,\n });\n};\n\nexport const setFlooredPrecision = (\n number,\n { decimals = 1, decimalsWhenSmall = decimals } = {},\n) => {\n return setDecimalsPrecision(number, {\n decimals,\n decimalsWhenSmall,\n transform: Math.floor,\n });\n};\n\nexport const setCeiledPrecision = (\n number,\n { decimals = 1, decimalsWhenSmall = decimals } = {},\n) => {\n return setDecimalsPrecision(number, {\n decimals,\n decimalsWhenSmall,\n transform: Math.ceil,\n });\n};\n\nexport const setPrecision = (\n number,\n { decimals = 1, decimalsWhenSmall = decimals } = {},\n) => {\n return setDecimalsPrecision(number, {\n decimals,\n decimalsWhenSmall,\n transform: parseInt,\n });\n};\n\nconst setDecimalsPrecision = (\n number,\n {\n transform,\n decimals, // max decimals for number in [-Infinity, -1[]1, Infinity]\n decimalsWhenSmall, // max decimals for number in [-1,1]\n } = {},\n) => {\n if (number === 0) {\n return 0;\n }\n let numberCandidate = Math.abs(number);\n if (numberCandidate < 1) {\n const integerGoal = Math.pow(10, decimalsWhenSmall - 1);\n let i = 1;\n while (numberCandidate < integerGoal) {\n numberCandidate *= 10;\n i *= 10;\n }\n const asInteger = transform(numberCandidate);\n const asFloat = asInteger / i;\n return number < 0 ? -asFloat : asFloat;\n }\n const coef = Math.pow(10, decimals);\n const numberMultiplied = (number + Number.EPSILON) * coef;\n const asInteger = transform(numberMultiplied);\n const asFloat = asInteger / coef;\n return number < 0 ? -asFloat : asFloat;\n};\n\n// https://www.codingem.com/javascript-how-to-limit-decimal-places/\n// export const roundNumber = (number, maxDecimals) => {\n// const decimalsExp = Math.pow(10, maxDecimals)\n// const numberRoundInt = Math.round(decimalsExp * (number + Number.EPSILON))\n// const numberRoundFloat = numberRoundInt / decimalsExp\n// return numberRoundFloat\n// }\n\n// export const setPrecision = (number, precision) => {\n// if (Math.floor(number) === number) return number\n// const [int, decimals] = number.toString().split(\".\")\n// if (precision <= 0) return int\n// const numberTruncated = `${int}.${decimals.slice(0, precision)}`\n// return numberTruncated\n// }\n",
|
|
66
|
+
"import { setPrecision, setRoundedPrecision } from \"../utils/decimals.js\";\n\nexport const humanizeEllapsedTime = (ms, { short } = {}) => {\n if (ms < 1000) {\n return short ? \"0s\" : \"0 second\";\n }\n const { primary, remaining } = parseMs(ms);\n if (!remaining) {\n return inspectEllapsedUnit(primary, short);\n }\n return `${inspectEllapsedUnit(primary, short)} and ${inspectEllapsedUnit(\n remaining,\n short,\n )}`;\n};\nconst inspectEllapsedUnit = (unit, short) => {\n const count =\n unit.name === \"second\" ? Math.floor(unit.count) : Math.round(unit.count);\n let name = unit.name;\n if (short) {\n name = unitShort[name];\n if (count <= 1) {\n return `${count}${name}`;\n }\n return `${count}${name}s`;\n }\n if (count <= 1) {\n return `${count} ${name}`;\n }\n return `${count} ${name}s`;\n};\nconst unitShort = {\n year: \"y\",\n month: \"m\",\n week: \"w\",\n day: \"d\",\n hour: \"h\",\n minute: \"m\",\n second: \"s\",\n};\n\nexport const humanizeDuration = (\n ms,\n { short, rounded = true, decimals } = {},\n) => {\n // ignore ms below meaningfulMs so that:\n // humanizeDuration(0.5) -> \"0 second\"\n // humanizeDuration(1.1) -> \"0.001 second\" (and not \"0.0011 second\")\n // This tool is meant to be read by humans and it would be barely readable to see\n // \"0.0001 second\" (stands for 0.1 millisecond)\n // yes we could return \"0.1 millisecond\" but we choosed consistency over precision\n // so that the prefered unit is \"second\" (and does not become millisecond when ms is super small)\n if (ms < 1) {\n return short ? \"0s\" : \"0 second\";\n }\n const { primary, remaining } = parseMs(ms);\n if (!remaining) {\n return humanizeDurationUnit(primary, {\n decimals:\n decimals === undefined ? (primary.name === \"second\" ? 1 : 0) : decimals,\n short,\n rounded,\n });\n }\n return `${humanizeDurationUnit(primary, {\n decimals: decimals === undefined ? 0 : decimals,\n short,\n rounded,\n })} and ${humanizeDurationUnit(remaining, {\n decimals: decimals === undefined ? 0 : decimals,\n short,\n rounded,\n })}`;\n};\nconst humanizeDurationUnit = (unit, { decimals, short, rounded }) => {\n const count = rounded\n ? setRoundedPrecision(unit.count, { decimals })\n : setPrecision(unit.count, { decimals });\n let name = unit.name;\n if (short) {\n name = unitShort[name];\n return `${count}${name}`;\n }\n if (count <= 1) {\n return `${count} ${name}`;\n }\n return `${count} ${name}s`;\n};\nconst MS_PER_UNITS = {\n year: 31_557_600_000,\n month: 2_629_000_000,\n week: 604_800_000,\n day: 86_400_000,\n hour: 3_600_000,\n minute: 60_000,\n second: 1000,\n};\n\nconst parseMs = (ms) => {\n const unitNames = Object.keys(MS_PER_UNITS);\n const smallestUnitName = unitNames[unitNames.length - 1];\n let firstUnitName = smallestUnitName;\n let firstUnitCount = ms / MS_PER_UNITS[smallestUnitName];\n const firstUnitIndex = unitNames.findIndex((unitName) => {\n if (unitName === smallestUnitName) {\n return false;\n }\n const msPerUnit = MS_PER_UNITS[unitName];\n const unitCount = Math.floor(ms / msPerUnit);\n if (unitCount) {\n firstUnitName = unitName;\n firstUnitCount = unitCount;\n return true;\n }\n return false;\n });\n if (firstUnitName === smallestUnitName) {\n return {\n primary: {\n name: firstUnitName,\n count: firstUnitCount,\n },\n };\n }\n const remainingMs = ms - firstUnitCount * MS_PER_UNITS[firstUnitName];\n const remainingUnitName = unitNames[firstUnitIndex + 1];\n const remainingUnitCount = remainingMs / MS_PER_UNITS[remainingUnitName];\n // - 1 year and 1 second is too much information\n // so we don't check the remaining units\n // - 1 year and 0.0001 week is awful\n // hence the if below\n if (Math.round(remainingUnitCount) < 1) {\n return {\n primary: {\n name: firstUnitName,\n count: firstUnitCount,\n },\n };\n }\n // - 1 year and 1 month is great\n return {\n primary: {\n name: firstUnitName,\n count: firstUnitCount,\n },\n remaining: {\n name: remainingUnitName,\n count: remainingUnitCount,\n },\n };\n};\n",
|
|
67
|
+
"import { setRoundedPrecision } from \"../utils/decimals.js\";\n\nexport const humanizeFileSize = (numberOfBytes, { decimals, short } = {}) => {\n return inspectBytes(numberOfBytes, { decimals, short });\n};\n\nexport const humanizeMemory = (metricValue, { decimals, short } = {}) => {\n return inspectBytes(metricValue, { decimals, fixedDecimals: true, short });\n};\n\nconst inspectBytes = (\n number,\n { fixedDecimals = false, decimals, short } = {},\n) => {\n if (number === 0) {\n return `0 B`;\n }\n const exponent = Math.min(\n Math.floor(Math.log10(number) / 3),\n BYTE_UNITS.length - 1,\n );\n const unitNumber = number / Math.pow(1000, exponent);\n const unitName = BYTE_UNITS[exponent];\n if (decimals === undefined) {\n if (unitNumber < 100) {\n decimals = 1;\n } else {\n decimals = 0;\n }\n }\n const unitNumberRounded = setRoundedPrecision(unitNumber, {\n decimals,\n decimalsWhenSmall: 1,\n });\n const value = fixedDecimals\n ? unitNumberRounded.toFixed(decimals)\n : unitNumberRounded;\n if (short) {\n return `${value}${unitName}`;\n }\n return `${value} ${unitName}`;\n};\n\nconst BYTE_UNITS = [\"B\", \"kB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"];\n",
|
|
68
|
+
"import { getPrecision, setRoundedPrecision } from \"../utils/decimals.js\";\n\nexport const distributePercentages = (\n namedNumbers,\n { maxPrecisionHint = 2 } = {},\n) => {\n const numberNames = Object.keys(namedNumbers);\n if (numberNames.length === 0) {\n return {};\n }\n if (numberNames.length === 1) {\n const firstNumberName = numberNames[0];\n return { [firstNumberName]: \"100 %\" };\n }\n const numbers = numberNames.map((name) => namedNumbers[name]);\n const total = numbers.reduce((sum, value) => sum + value, 0);\n const ratios = numbers.map((number) => number / total);\n const percentages = {};\n ratios.pop();\n ratios.forEach((ratio, index) => {\n const percentage = ratio * 100;\n percentages[numberNames[index]] = percentage;\n });\n const lowestPercentage = (1 / Math.pow(10, maxPrecisionHint)) * 100;\n let precision = 0;\n Object.keys(percentages).forEach((name) => {\n const percentage = percentages[name];\n if (percentage < lowestPercentage) {\n // check the amout of meaningful decimals\n // and that what we will use\n const percentageRounded = setRoundedPrecision(percentage);\n const percentagePrecision = getPrecision(percentageRounded);\n if (percentagePrecision > precision) {\n precision = percentagePrecision;\n }\n }\n });\n let remainingPercentage = 100;\n\n Object.keys(percentages).forEach((name) => {\n const percentage = percentages[name];\n const percentageAllocated = setRoundedPrecision(percentage, {\n decimals: precision,\n });\n remainingPercentage -= percentageAllocated;\n percentages[name] = percentageAllocated;\n });\n const lastName = numberNames[numberNames.length - 1];\n percentages[lastName] = setRoundedPrecision(remainingPercentage, {\n decimals: precision,\n });\n return percentages;\n};\n",
|
|
69
|
+
"const formatDefault = (v) => v;\n\nexport const generateContentFrame = ({\n content,\n line,\n column,\n\n linesAbove = 3,\n linesBelow = 0,\n lineMaxWidth = 120,\n lineNumbersOnTheLeft = true,\n lineMarker = true,\n columnMarker = true,\n format = formatDefault,\n} = {}) => {\n const lineStrings = content.split(/\\r?\\n/);\n if (line === 0) line = 1;\n if (column === undefined) {\n columnMarker = false;\n column = 1;\n }\n if (column === 0) column = 1;\n\n let lineStartIndex = line - 1 - linesAbove;\n if (lineStartIndex < 0) {\n lineStartIndex = 0;\n }\n let lineEndIndex = line - 1 + linesBelow;\n if (lineEndIndex > lineStrings.length - 1) {\n lineEndIndex = lineStrings.length - 1;\n }\n if (columnMarker) {\n // human reader deduce the line when there is a column marker\n lineMarker = false;\n }\n if (line - 1 === lineEndIndex) {\n lineMarker = false; // useless because last line\n }\n let lineIndex = lineStartIndex;\n\n let columnsBefore;\n let columnsAfter;\n if (column > lineMaxWidth) {\n columnsBefore = column - Math.ceil(lineMaxWidth / 2);\n columnsAfter = column + Math.floor(lineMaxWidth / 2);\n } else {\n columnsBefore = 0;\n columnsAfter = lineMaxWidth;\n }\n let columnMarkerIndex = column - 1 - columnsBefore;\n\n let source = \"\";\n while (lineIndex <= lineEndIndex) {\n const lineString = lineStrings[lineIndex];\n const lineNumber = lineIndex + 1;\n const isLastLine = lineIndex === lineEndIndex;\n const isMainLine = lineNumber === line;\n lineIndex++;\n\n write_aside: {\n if (lineMarker) {\n if (isMainLine) {\n source += `${format(\">\", \"marker_line\")} `;\n } else {\n source += \" \";\n }\n }\n if (lineNumbersOnTheLeft) {\n // fill with spaces to ensure if line moves from 7,8,9 to 10 the display is still great\n const asideSource = `${fillLeft(lineNumber, lineEndIndex + 1)} |`;\n source += `${format(asideSource, \"line_number_aside\")} `;\n }\n }\n write_line: {\n source += truncateLine(lineString, {\n start: columnsBefore,\n end: columnsAfter,\n prefix: \"…\",\n suffix: \"…\",\n format,\n });\n }\n write_column_marker: {\n if (columnMarker && isMainLine) {\n source += `\\n`;\n if (lineMarker) {\n source += \" \";\n }\n if (lineNumbersOnTheLeft) {\n const asideSpaces = `${fillLeft(lineNumber, lineEndIndex + 1)} | `\n .length;\n source += \" \".repeat(asideSpaces);\n }\n source += \" \".repeat(columnMarkerIndex);\n source += format(\"^\", \"marker_column\");\n }\n }\n if (!isLastLine) {\n source += \"\\n\";\n }\n }\n return source;\n};\n\nconst truncateLine = (line, { start, end, prefix, suffix, format }) => {\n const lastIndex = line.length;\n\n if (line.length === 0) {\n // don't show any ellipsis if the line is empty\n // because it's not truncated in that case\n return \"\";\n }\n\n const startTruncated = start > 0;\n const endTruncated = lastIndex > end;\n\n let from = startTruncated ? start + prefix.length : start;\n let to = endTruncated ? end - suffix.length : end;\n if (to > lastIndex) to = lastIndex;\n\n if (start >= lastIndex || from === to) {\n return \"\";\n }\n let result = \"\";\n while (from < to) {\n result += format(line[from], \"char\");\n from++;\n }\n if (result.length === 0) {\n return \"\";\n }\n if (startTruncated && endTruncated) {\n return `${format(prefix, \"marker_overflow_left\")}${result}${format(\n suffix,\n \"marker_overflow_right\",\n )}`;\n }\n if (startTruncated) {\n return `${format(prefix, \"marker_overflow_left\")}${result}`;\n }\n if (endTruncated) {\n return `${result}${format(suffix, \"marker_overflow_right\")}`;\n }\n return result;\n};\n\nconst fillLeft = (value, biggestValue, char = \" \") => {\n const width = String(value).length;\n const biggestWidth = String(biggestValue).length;\n let missingWidth = biggestWidth - width;\n let padded = \"\";\n while (missingWidth--) {\n padded += char;\n }\n padded += value;\n return padded;\n};\n",
|
|
70
|
+
"export const createCallOrderer = () => {\n const queue = [];\n const callWhenPreviousExecutionAreDone = (executionIndex, callback) => {\n if (queue[executionIndex]) {\n throw new Error(`${executionIndex} already used`);\n }\n\n let allBeforeAreDone = true;\n if (executionIndex > 0) {\n let beforeIndex = executionIndex - 1;\n do {\n const value = queue[beforeIndex];\n if (!value) {\n allBeforeAreDone = false;\n break;\n }\n } while (beforeIndex--);\n }\n if (!allBeforeAreDone) {\n queue[executionIndex] = callback;\n return;\n }\n queue[executionIndex] = true;\n callback();\n let afterIndex = executionIndex + 1;\n while (afterIndex < queue.length) {\n const value = queue[afterIndex];\n if (value === undefined) {\n break;\n }\n if (typeof value === \"function\") {\n queue[afterIndex] = true;\n value();\n }\n afterIndex++;\n }\n };\n return callWhenPreviousExecutionAreDone;\n};\n",
|
|
71
|
+
"export const errorToMarkdown = (error) => {\n const errorIsAPrimitive =\n error === null ||\n (typeof error !== \"object\" && typeof error !== \"function\");\n\n if (errorIsAPrimitive) {\n return `\\`\\`\\`js\n${error}\n\\`\\`\\``;\n }\n return `\\`\\`\\`\n${error.stack}\n\\`\\`\\``;\n};\n",
|
|
72
|
+
"export const errorToHTML = (error) => {\n const errorIsAPrimitive =\n error === null ||\n (typeof error !== \"object\" && typeof error !== \"function\");\n\n if (errorIsAPrimitive) {\n if (typeof error === \"string\") {\n return `<pre>${escapeHtml(error)}</pre>`;\n }\n return `<pre>${JSON.stringify(error, null, \" \")}</pre>`;\n }\n return `<pre>${escapeHtml(error.stack)}</pre>`;\n};\n\nconst escapeHtml = (string) => {\n return string\n .replace(/&/g, \"&\")\n .replace(/</g, \"<\")\n .replace(/>/g, \">\")\n .replace(/\"/g, \""\")\n .replace(/'/g, \"'\");\n};\n"
|
|
73
|
+
],
|
|
74
|
+
"names": [],
|
|
75
|
+
"mappings": "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AE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACnE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAChE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAChE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACpE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAChE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO;AACrE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;AACxE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;AACxE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO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"
|
|
76
|
+
}
|
|
@@ -299,11 +299,11 @@ const groupDigits = (digits, { minimumDigits, groupLength }) => {
|
|
|
299
299
|
return digits;
|
|
300
300
|
}
|
|
301
301
|
|
|
302
|
-
let digitsWithSeparator = digits.slice(-
|
|
303
|
-
let remainingDigits = digits.slice(0, -
|
|
302
|
+
let digitsWithSeparator = digits.slice(-groupLength);
|
|
303
|
+
let remainingDigits = digits.slice(0, -groupLength);
|
|
304
304
|
while (remainingDigits.length) {
|
|
305
|
-
const group = remainingDigits.slice(-
|
|
306
|
-
remainingDigits = remainingDigits.slice(0, -
|
|
305
|
+
const group = remainingDigits.slice(-groupLength);
|
|
306
|
+
remainingDigits = remainingDigits.slice(0, -groupLength);
|
|
307
307
|
digitsWithSeparator = `${group}_${digitsWithSeparator}`;
|
|
308
308
|
}
|
|
309
309
|
return digitsWithSeparator;
|
|
@@ -496,9 +496,36 @@ const inspectBigInt = (value) => {
|
|
|
496
496
|
return `${value}n`;
|
|
497
497
|
};
|
|
498
498
|
|
|
499
|
+
const prefixFirstAndIndentRemainingLines = (
|
|
500
|
+
text,
|
|
501
|
+
{ prefix, indentation, trimLines, trimLastLine },
|
|
502
|
+
) => {
|
|
503
|
+
const lines = text.split(/\r?\n/);
|
|
504
|
+
const firstLine = lines.shift();
|
|
505
|
+
if (indentation === undefined) {
|
|
506
|
+
if (prefix) {
|
|
507
|
+
indentation = " "; // prefix + space
|
|
508
|
+
} else {
|
|
509
|
+
indentation = "";
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
let result = prefix ? `${prefix} ${firstLine}` : firstLine;
|
|
513
|
+
let i = 0;
|
|
514
|
+
while (i < lines.length) {
|
|
515
|
+
const line = trimLines ? lines[i].trim() : lines[i];
|
|
516
|
+
i++;
|
|
517
|
+
result += line.length
|
|
518
|
+
? `\n${indentation}${line}`
|
|
519
|
+
: trimLastLine && i === lines.length
|
|
520
|
+
? ""
|
|
521
|
+
: `\n`;
|
|
522
|
+
}
|
|
523
|
+
return result;
|
|
524
|
+
};
|
|
525
|
+
|
|
499
526
|
const preNewLineAndIndentation = (
|
|
500
527
|
value,
|
|
501
|
-
{ depth, indentUsingTab, indentSize },
|
|
528
|
+
{ depth = 0, indentUsingTab, indentSize },
|
|
502
529
|
) => {
|
|
503
530
|
return `${newLineAndIndent({
|
|
504
531
|
count: depth + 1,
|
|
@@ -526,7 +553,7 @@ const newLineAndIndent = ({ count, useTabs, size }) => {
|
|
|
526
553
|
|
|
527
554
|
const wrapNewLineAndIndentation = (
|
|
528
555
|
value,
|
|
529
|
-
{ depth, indentUsingTab, indentSize },
|
|
556
|
+
{ depth = 0, indentUsingTab, indentSize },
|
|
530
557
|
) => {
|
|
531
558
|
return `${preNewLineAndIndentation(value, {
|
|
532
559
|
depth,
|
|
@@ -1453,10 +1480,9 @@ const formatError = (error) => {
|
|
|
1453
1480
|
const { cause } = error;
|
|
1454
1481
|
if (cause) {
|
|
1455
1482
|
const formatCause = (cause, depth) => {
|
|
1456
|
-
let causeText = prefixFirstAndIndentRemainingLines({
|
|
1483
|
+
let causeText = prefixFirstAndIndentRemainingLines(cause.stack, {
|
|
1457
1484
|
prefix: " [cause]:",
|
|
1458
1485
|
indentation: " ".repeat(depth + 1),
|
|
1459
|
-
text: cause.stack,
|
|
1460
1486
|
});
|
|
1461
1487
|
const nestedCause = cause.cause;
|
|
1462
1488
|
if (nestedCause) {
|
|
@@ -1471,34 +1497,6 @@ const formatError = (error) => {
|
|
|
1471
1497
|
return text;
|
|
1472
1498
|
};
|
|
1473
1499
|
|
|
1474
|
-
const prefixFirstAndIndentRemainingLines = ({
|
|
1475
|
-
prefix,
|
|
1476
|
-
indentation,
|
|
1477
|
-
text,
|
|
1478
|
-
trimLines,
|
|
1479
|
-
trimLastLine,
|
|
1480
|
-
}) => {
|
|
1481
|
-
const lines = text.split(/\r?\n/);
|
|
1482
|
-
const firstLine = lines.shift();
|
|
1483
|
-
if (indentation === undefined) {
|
|
1484
|
-
{
|
|
1485
|
-
indentation = " "; // prefix + space
|
|
1486
|
-
}
|
|
1487
|
-
}
|
|
1488
|
-
let result = `${prefix} ${firstLine}` ;
|
|
1489
|
-
let i = 0;
|
|
1490
|
-
while (i < lines.length) {
|
|
1491
|
-
const line = trimLines ? lines[i].trim() : lines[i];
|
|
1492
|
-
i++;
|
|
1493
|
-
result += line.length
|
|
1494
|
-
? `\n${indentation}${line}`
|
|
1495
|
-
: trimLastLine && i === lines.length
|
|
1496
|
-
? ""
|
|
1497
|
-
: `\n`;
|
|
1498
|
-
}
|
|
1499
|
-
return result;
|
|
1500
|
-
};
|
|
1501
|
-
|
|
1502
1500
|
const renderBigSection = (params) => {
|
|
1503
1501
|
return renderSection({
|
|
1504
1502
|
width: 45,
|
|
@@ -2056,4 +2054,5 @@ const createTaskLog = (
|
|
|
2056
2054
|
};
|
|
2057
2055
|
};
|
|
2058
2056
|
|
|
2059
|
-
export { ANSI, UNICODE, createCallOrderer, createDetailedMessage, createDynamicLog, createLogger, createTaskLog, distributePercentages, errorToHTML, errorToMarkdown, formatError, generateContentFrame, humanize, humanizeDuration, humanizeEllapsedTime, humanizeFileSize, humanizeMemory, humanizeMethodSymbol, renderBigSection, renderDetails, renderNamedSections, renderSection, startSpinner };
|
|
2057
|
+
export { ANSI, UNICODE, createCallOrderer, createDetailedMessage, createDynamicLog, createLogger, createTaskLog, distributePercentages, errorToHTML, errorToMarkdown, formatError, generateContentFrame, humanize, humanizeDuration, humanizeEllapsedTime, humanizeFileSize, humanizeMemory, humanizeMethodSymbol, preNewLineAndIndentation, prefixFirstAndIndentRemainingLines, renderBigSection, renderDetails, renderNamedSections, renderSection, startSpinner, wrapNewLineAndIndentation };
|
|
2058
|
+
//# sourceMappingURL=jsenv_humanize_node.js.map
|