@nsshunt/stsfhirclient 1.0.18 → 1.0.19

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.
@@ -1 +1 @@
1
- {"version":3,"file":"stsfhirclient.mjs","sources":["../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/v4.js","../node_modules/detect-node/index.esm.js","../node_modules/color-name/index.js","../node_modules/color-convert/conversions.js","../node_modules/color-convert/route.js","../node_modules/color-convert/index.js","../node_modules/ansi-styles/index.js","../node_modules/chalk/node_modules/supports-color/browser.js","../node_modules/chalk/source/util.js","../node_modules/chalk/source/templates.js","../node_modules/chalk/source/index.js","../node_modules/http-status-codes/build/es/status-codes.js","../src/FhirClient.ts"],"sourcesContent":["import validate from './validate.js';\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n //\n // Note to future-self: No, you can't remove the `toLowerCase()` call.\n // REF: https://github.com/uuidjs/uuid/pull/677#issuecomment-1757351351\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n var uuid = unsafeStringify(arr, offset);\n // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\n\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n return getRandomValues(rnds8);\n}","var randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n options = options || {};\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n offset = offset || 0;\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nexport default v4;","// Only Node.JS has a process variable that is of [[Class]] process\nexport default Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]';\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/* MIT license */\n/* eslint-disable no-mixed-operators */\nconst cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\nmodule.exports = convert;\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Infinity;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tlet r = rgb[0] / 255;\n\tlet g = rgb[1] / 255;\n\tlet b = rgb[2] / 255;\n\n\t// Assume sRGB\n\tr = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92);\n\n\tconst x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tconst y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tconst z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t2;\n\tlet t3;\n\tlet val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// Assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * (r ** (1.0 / 2.4))) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * (g ** (1.0 / 2.4))) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * (b ** (1.0 / 2.4))) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (~~(args > 50) + 1) * 0.5;\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(char => {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tconst integer = parseInt(colorString, 16);\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet grayscale;\n\tlet hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l));\n\n\tlet f = 0;\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1.0 - c);\n\tlet f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1.0 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tconst val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (val << 16) + (val << 8) + val;\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","const conversions = require('./conversions');\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","const conversions = require('./conversions');\nconst route = require('./route');\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(fromModel => {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\trouteModels.forEach(toModel => {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","'use strict';\n\nconst wrapAnsi16 = (fn, offset) => (...args) => {\n\tconst code = fn(...args);\n\treturn `\\u001B[${code + offset}m`;\n};\n\nconst wrapAnsi256 = (fn, offset) => (...args) => {\n\tconst code = fn(...args);\n\treturn `\\u001B[${38 + offset};5;${code}m`;\n};\n\nconst wrapAnsi16m = (fn, offset) => (...args) => {\n\tconst rgb = fn(...args);\n\treturn `\\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`;\n};\n\nconst ansi2ansi = n => n;\nconst rgb2rgb = (r, g, b) => [r, g, b];\n\nconst setLazyProperty = (object, property, get) => {\n\tObject.defineProperty(object, property, {\n\t\tget: () => {\n\t\t\tconst value = get();\n\n\t\t\tObject.defineProperty(object, property, {\n\t\t\t\tvalue,\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true\n\t\t\t});\n\n\t\t\treturn value;\n\t\t},\n\t\tenumerable: true,\n\t\tconfigurable: true\n\t});\n};\n\n/** @type {typeof import('color-convert')} */\nlet colorConvert;\nconst makeDynamicStyles = (wrap, targetSpace, identity, isBackground) => {\n\tif (colorConvert === undefined) {\n\t\tcolorConvert = require('color-convert');\n\t}\n\n\tconst offset = isBackground ? 10 : 0;\n\tconst styles = {};\n\n\tfor (const [sourceSpace, suite] of Object.entries(colorConvert)) {\n\t\tconst name = sourceSpace === 'ansi16' ? 'ansi' : sourceSpace;\n\t\tif (sourceSpace === targetSpace) {\n\t\t\tstyles[name] = wrap(identity, offset);\n\t\t} else if (typeof suite === 'object') {\n\t\t\tstyles[name] = wrap(suite[targetSpace], offset);\n\t\t}\n\t}\n\n\treturn styles;\n};\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\tconst styles = {\n\t\tmodifier: {\n\t\t\treset: [0, 0],\n\t\t\t// 21 isn't widely supported and 22 does the same thing\n\t\t\tbold: [1, 22],\n\t\t\tdim: [2, 22],\n\t\t\titalic: [3, 23],\n\t\t\tunderline: [4, 24],\n\t\t\tinverse: [7, 27],\n\t\t\thidden: [8, 28],\n\t\t\tstrikethrough: [9, 29]\n\t\t},\n\t\tcolor: {\n\t\t\tblack: [30, 39],\n\t\t\tred: [31, 39],\n\t\t\tgreen: [32, 39],\n\t\t\tyellow: [33, 39],\n\t\t\tblue: [34, 39],\n\t\t\tmagenta: [35, 39],\n\t\t\tcyan: [36, 39],\n\t\t\twhite: [37, 39],\n\n\t\t\t// Bright color\n\t\t\tblackBright: [90, 39],\n\t\t\tredBright: [91, 39],\n\t\t\tgreenBright: [92, 39],\n\t\t\tyellowBright: [93, 39],\n\t\t\tblueBright: [94, 39],\n\t\t\tmagentaBright: [95, 39],\n\t\t\tcyanBright: [96, 39],\n\t\t\twhiteBright: [97, 39]\n\t\t},\n\t\tbgColor: {\n\t\t\tbgBlack: [40, 49],\n\t\t\tbgRed: [41, 49],\n\t\t\tbgGreen: [42, 49],\n\t\t\tbgYellow: [43, 49],\n\t\t\tbgBlue: [44, 49],\n\t\t\tbgMagenta: [45, 49],\n\t\t\tbgCyan: [46, 49],\n\t\t\tbgWhite: [47, 49],\n\n\t\t\t// Bright color\n\t\t\tbgBlackBright: [100, 49],\n\t\t\tbgRedBright: [101, 49],\n\t\t\tbgGreenBright: [102, 49],\n\t\t\tbgYellowBright: [103, 49],\n\t\t\tbgBlueBright: [104, 49],\n\t\t\tbgMagentaBright: [105, 49],\n\t\t\tbgCyanBright: [106, 49],\n\t\t\tbgWhiteBright: [107, 49]\n\t\t}\n\t};\n\n\t// Alias bright black as gray (and grey)\n\tstyles.color.gray = styles.color.blackBright;\n\tstyles.bgColor.bgGray = styles.bgColor.bgBlackBright;\n\tstyles.color.grey = styles.color.blackBright;\n\tstyles.bgColor.bgGrey = styles.bgColor.bgBlackBright;\n\n\tfor (const [groupName, group] of Object.entries(styles)) {\n\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false\n\t\t});\n\t}\n\n\tObject.defineProperty(styles, 'codes', {\n\t\tvalue: codes,\n\t\tenumerable: false\n\t});\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tsetLazyProperty(styles.color, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, false));\n\tsetLazyProperty(styles.color, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, false));\n\tsetLazyProperty(styles.color, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, false));\n\tsetLazyProperty(styles.bgColor, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, true));\n\tsetLazyProperty(styles.bgColor, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, true));\n\tsetLazyProperty(styles.bgColor, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, true));\n\n\treturn styles;\n}\n\n// Make the export immutable\nObject.defineProperty(module, 'exports', {\n\tenumerable: true,\n\tget: assembleStyles\n});\n","'use strict';\nmodule.exports = {\n\tstdout: false,\n\tstderr: false\n};\n","'use strict';\n\nconst stringReplaceAll = (string, substring, replacer) => {\n\tlet index = string.indexOf(substring);\n\tif (index === -1) {\n\t\treturn string;\n\t}\n\n\tconst substringLength = substring.length;\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\treturnValue += string.substr(endIndex, index - endIndex) + substring + replacer;\n\t\tendIndex = index + substringLength;\n\t\tindex = string.indexOf(substring, endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.substr(endIndex);\n\treturn returnValue;\n};\n\nconst stringEncaseCRLFWithFirstIndex = (string, prefix, postfix, index) => {\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\tconst gotCR = string[index - 1] === '\\r';\n\t\treturnValue += string.substr(endIndex, (gotCR ? index - 1 : index) - endIndex) + prefix + (gotCR ? '\\r\\n' : '\\n') + postfix;\n\t\tendIndex = index + 1;\n\t\tindex = string.indexOf('\\n', endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.substr(endIndex);\n\treturn returnValue;\n};\n\nmodule.exports = {\n\tstringReplaceAll,\n\tstringEncaseCRLFWithFirstIndex\n};\n","'use strict';\nconst TEMPLATE_REGEX = /(?:\\\\(u(?:[a-f\\d]{4}|\\{[a-f\\d]{1,6}\\})|x[a-f\\d]{2}|.))|(?:\\{(~)?(\\w+(?:\\([^)]*\\))?(?:\\.\\w+(?:\\([^)]*\\))?)*)(?:[ \\t]|(?=\\r?\\n)))|(\\})|((?:.|[\\r\\n\\f])+?)/gi;\nconst STYLE_REGEX = /(?:^|\\.)(\\w+)(?:\\(([^)]*)\\))?/g;\nconst STRING_REGEX = /^(['\"])((?:\\\\.|(?!\\1)[^\\\\])*)\\1$/;\nconst ESCAPE_REGEX = /\\\\(u(?:[a-f\\d]{4}|{[a-f\\d]{1,6}})|x[a-f\\d]{2}|.)|([^\\\\])/gi;\n\nconst ESCAPES = new Map([\n\t['n', '\\n'],\n\t['r', '\\r'],\n\t['t', '\\t'],\n\t['b', '\\b'],\n\t['f', '\\f'],\n\t['v', '\\v'],\n\t['0', '\\0'],\n\t['\\\\', '\\\\'],\n\t['e', '\\u001B'],\n\t['a', '\\u0007']\n]);\n\nfunction unescape(c) {\n\tconst u = c[0] === 'u';\n\tconst bracket = c[1] === '{';\n\n\tif ((u && !bracket && c.length === 5) || (c[0] === 'x' && c.length === 3)) {\n\t\treturn String.fromCharCode(parseInt(c.slice(1), 16));\n\t}\n\n\tif (u && bracket) {\n\t\treturn String.fromCodePoint(parseInt(c.slice(2, -1), 16));\n\t}\n\n\treturn ESCAPES.get(c) || c;\n}\n\nfunction parseArguments(name, arguments_) {\n\tconst results = [];\n\tconst chunks = arguments_.trim().split(/\\s*,\\s*/g);\n\tlet matches;\n\n\tfor (const chunk of chunks) {\n\t\tconst number = Number(chunk);\n\t\tif (!Number.isNaN(number)) {\n\t\t\tresults.push(number);\n\t\t} else if ((matches = chunk.match(STRING_REGEX))) {\n\t\t\tresults.push(matches[2].replace(ESCAPE_REGEX, (m, escape, character) => escape ? unescape(escape) : character));\n\t\t} else {\n\t\t\tthrow new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`);\n\t\t}\n\t}\n\n\treturn results;\n}\n\nfunction parseStyle(style) {\n\tSTYLE_REGEX.lastIndex = 0;\n\n\tconst results = [];\n\tlet matches;\n\n\twhile ((matches = STYLE_REGEX.exec(style)) !== null) {\n\t\tconst name = matches[1];\n\n\t\tif (matches[2]) {\n\t\t\tconst args = parseArguments(name, matches[2]);\n\t\t\tresults.push([name].concat(args));\n\t\t} else {\n\t\t\tresults.push([name]);\n\t\t}\n\t}\n\n\treturn results;\n}\n\nfunction buildStyle(chalk, styles) {\n\tconst enabled = {};\n\n\tfor (const layer of styles) {\n\t\tfor (const style of layer.styles) {\n\t\t\tenabled[style[0]] = layer.inverse ? null : style.slice(1);\n\t\t}\n\t}\n\n\tlet current = chalk;\n\tfor (const [styleName, styles] of Object.entries(enabled)) {\n\t\tif (!Array.isArray(styles)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!(styleName in current)) {\n\t\t\tthrow new Error(`Unknown Chalk style: ${styleName}`);\n\t\t}\n\n\t\tcurrent = styles.length > 0 ? current[styleName](...styles) : current[styleName];\n\t}\n\n\treturn current;\n}\n\nmodule.exports = (chalk, temporary) => {\n\tconst styles = [];\n\tconst chunks = [];\n\tlet chunk = [];\n\n\t// eslint-disable-next-line max-params\n\ttemporary.replace(TEMPLATE_REGEX, (m, escapeCharacter, inverse, style, close, character) => {\n\t\tif (escapeCharacter) {\n\t\t\tchunk.push(unescape(escapeCharacter));\n\t\t} else if (style) {\n\t\t\tconst string = chunk.join('');\n\t\t\tchunk = [];\n\t\t\tchunks.push(styles.length === 0 ? string : buildStyle(chalk, styles)(string));\n\t\t\tstyles.push({inverse, styles: parseStyle(style)});\n\t\t} else if (close) {\n\t\t\tif (styles.length === 0) {\n\t\t\t\tthrow new Error('Found extraneous } in Chalk template literal');\n\t\t\t}\n\n\t\t\tchunks.push(buildStyle(chalk, styles)(chunk.join('')));\n\t\t\tchunk = [];\n\t\t\tstyles.pop();\n\t\t} else {\n\t\t\tchunk.push(character);\n\t\t}\n\t});\n\n\tchunks.push(chunk.join(''));\n\n\tif (styles.length > 0) {\n\t\tconst errMessage = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? '' : 's'} (\\`}\\`)`;\n\t\tthrow new Error(errMessage);\n\t}\n\n\treturn chunks.join('');\n};\n","'use strict';\nconst ansiStyles = require('ansi-styles');\nconst {stdout: stdoutColor, stderr: stderrColor} = require('supports-color');\nconst {\n\tstringReplaceAll,\n\tstringEncaseCRLFWithFirstIndex\n} = require('./util');\n\nconst {isArray} = Array;\n\n// `supportsColor.level` → `ansiStyles.color[name]` mapping\nconst levelMapping = [\n\t'ansi',\n\t'ansi',\n\t'ansi256',\n\t'ansi16m'\n];\n\nconst styles = Object.create(null);\n\nconst applyOptions = (object, options = {}) => {\n\tif (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {\n\t\tthrow new Error('The `level` option should be an integer from 0 to 3');\n\t}\n\n\t// Detect level if not set manually\n\tconst colorLevel = stdoutColor ? stdoutColor.level : 0;\n\tobject.level = options.level === undefined ? colorLevel : options.level;\n};\n\nclass ChalkClass {\n\tconstructor(options) {\n\t\t// eslint-disable-next-line no-constructor-return\n\t\treturn chalkFactory(options);\n\t}\n}\n\nconst chalkFactory = options => {\n\tconst chalk = {};\n\tapplyOptions(chalk, options);\n\n\tchalk.template = (...arguments_) => chalkTag(chalk.template, ...arguments_);\n\n\tObject.setPrototypeOf(chalk, Chalk.prototype);\n\tObject.setPrototypeOf(chalk.template, chalk);\n\n\tchalk.template.constructor = () => {\n\t\tthrow new Error('`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.');\n\t};\n\n\tchalk.template.Instance = ChalkClass;\n\n\treturn chalk.template;\n};\n\nfunction Chalk(options) {\n\treturn chalkFactory(options);\n}\n\nfor (const [styleName, style] of Object.entries(ansiStyles)) {\n\tstyles[styleName] = {\n\t\tget() {\n\t\t\tconst builder = createBuilder(this, createStyler(style.open, style.close, this._styler), this._isEmpty);\n\t\t\tObject.defineProperty(this, styleName, {value: builder});\n\t\t\treturn builder;\n\t\t}\n\t};\n}\n\nstyles.visible = {\n\tget() {\n\t\tconst builder = createBuilder(this, this._styler, true);\n\t\tObject.defineProperty(this, 'visible', {value: builder});\n\t\treturn builder;\n\t}\n};\n\nconst usedModels = ['rgb', 'hex', 'keyword', 'hsl', 'hsv', 'hwb', 'ansi', 'ansi256'];\n\nfor (const model of usedModels) {\n\tstyles[model] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(ansiStyles.color[levelMapping[level]][model](...arguments_), ansiStyles.color.close, this._styler);\n\t\t\t\treturn createBuilder(this, styler, this._isEmpty);\n\t\t\t};\n\t\t}\n\t};\n}\n\nfor (const model of usedModels) {\n\tconst bgModel = 'bg' + model[0].toUpperCase() + model.slice(1);\n\tstyles[bgModel] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(ansiStyles.bgColor[levelMapping[level]][model](...arguments_), ansiStyles.bgColor.close, this._styler);\n\t\t\t\treturn createBuilder(this, styler, this._isEmpty);\n\t\t\t};\n\t\t}\n\t};\n}\n\nconst proto = Object.defineProperties(() => {}, {\n\t...styles,\n\tlevel: {\n\t\tenumerable: true,\n\t\tget() {\n\t\t\treturn this._generator.level;\n\t\t},\n\t\tset(level) {\n\t\t\tthis._generator.level = level;\n\t\t}\n\t}\n});\n\nconst createStyler = (open, close, parent) => {\n\tlet openAll;\n\tlet closeAll;\n\tif (parent === undefined) {\n\t\topenAll = open;\n\t\tcloseAll = close;\n\t} else {\n\t\topenAll = parent.openAll + open;\n\t\tcloseAll = close + parent.closeAll;\n\t}\n\n\treturn {\n\t\topen,\n\t\tclose,\n\t\topenAll,\n\t\tcloseAll,\n\t\tparent\n\t};\n};\n\nconst createBuilder = (self, _styler, _isEmpty) => {\n\tconst builder = (...arguments_) => {\n\t\tif (isArray(arguments_[0]) && isArray(arguments_[0].raw)) {\n\t\t\t// Called as a template literal, for example: chalk.red`2 + 3 = {bold ${2+3}}`\n\t\t\treturn applyStyle(builder, chalkTag(builder, ...arguments_));\n\t\t}\n\n\t\t// Single argument is hot path, implicit coercion is faster than anything\n\t\t// eslint-disable-next-line no-implicit-coercion\n\t\treturn applyStyle(builder, (arguments_.length === 1) ? ('' + arguments_[0]) : arguments_.join(' '));\n\t};\n\n\t// We alter the prototype because we must return a function, but there is\n\t// no way to create a function with a different prototype\n\tObject.setPrototypeOf(builder, proto);\n\n\tbuilder._generator = self;\n\tbuilder._styler = _styler;\n\tbuilder._isEmpty = _isEmpty;\n\n\treturn builder;\n};\n\nconst applyStyle = (self, string) => {\n\tif (self.level <= 0 || !string) {\n\t\treturn self._isEmpty ? '' : string;\n\t}\n\n\tlet styler = self._styler;\n\n\tif (styler === undefined) {\n\t\treturn string;\n\t}\n\n\tconst {openAll, closeAll} = styler;\n\tif (string.indexOf('\\u001B') !== -1) {\n\t\twhile (styler !== undefined) {\n\t\t\t// Replace any instances already present with a re-opening code\n\t\t\t// otherwise only the part of the string until said closing code\n\t\t\t// will be colored, and the rest will simply be 'plain'.\n\t\t\tstring = stringReplaceAll(string, styler.close, styler.open);\n\n\t\t\tstyler = styler.parent;\n\t\t}\n\t}\n\n\t// We can move both next actions out of loop, because remaining actions in loop won't have\n\t// any/visible effect on parts we add here. Close the styling before a linebreak and reopen\n\t// after next line to fix a bleed issue on macOS: https://github.com/chalk/chalk/pull/92\n\tconst lfIndex = string.indexOf('\\n');\n\tif (lfIndex !== -1) {\n\t\tstring = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);\n\t}\n\n\treturn openAll + string + closeAll;\n};\n\nlet template;\nconst chalkTag = (chalk, ...strings) => {\n\tconst [firstString] = strings;\n\n\tif (!isArray(firstString) || !isArray(firstString.raw)) {\n\t\t// If chalk() was called by itself or with a string,\n\t\t// return the string itself as a string.\n\t\treturn strings.join(' ');\n\t}\n\n\tconst arguments_ = strings.slice(1);\n\tconst parts = [firstString.raw[0]];\n\n\tfor (let i = 1; i < firstString.length; i++) {\n\t\tparts.push(\n\t\t\tString(arguments_[i - 1]).replace(/[{}\\\\]/g, '\\\\$&'),\n\t\t\tString(firstString.raw[i])\n\t\t);\n\t}\n\n\tif (template === undefined) {\n\t\ttemplate = require('./templates');\n\t}\n\n\treturn template(chalk, parts.join(''));\n};\n\nObject.defineProperties(Chalk.prototype, styles);\n\nconst chalk = Chalk(); // eslint-disable-line new-cap\nchalk.supportsColor = stdoutColor;\nchalk.stderr = Chalk({level: stderrColor ? stderrColor.level : 0}); // eslint-disable-line new-cap\nchalk.stderr.supportsColor = stderrColor;\n\nmodule.exports = chalk;\n","// Generated file. Do not edit\nexport var StatusCodes;\n(function (StatusCodes) {\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.2.1\n *\n * This interim response indicates that everything so far is OK and that the client should continue with the request or ignore it if it is already finished.\n */\n StatusCodes[StatusCodes[\"CONTINUE\"] = 100] = \"CONTINUE\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.2.2\n *\n * This code is sent in response to an Upgrade request header by the client, and indicates the protocol the server is switching too.\n */\n StatusCodes[StatusCodes[\"SWITCHING_PROTOCOLS\"] = 101] = \"SWITCHING_PROTOCOLS\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2518#section-10.1\n *\n * This code indicates that the server has received and is processing the request, but no response is available yet.\n */\n StatusCodes[StatusCodes[\"PROCESSING\"] = 102] = \"PROCESSING\";\n /**\n * Official Documentation @ https://www.rfc-editor.org/rfc/rfc8297#page-3\n *\n * This code indicates to the client that the server is likely to send a final response with the header fields included in the informational response.\n */\n StatusCodes[StatusCodes[\"EARLY_HINTS\"] = 103] = \"EARLY_HINTS\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.3.1\n *\n * The request has succeeded. The meaning of a success varies depending on the HTTP method:\n * GET: The resource has been fetched and is transmitted in the message body.\n * HEAD: The entity headers are in the message body.\n * POST: The resource describing the result of the action is transmitted in the message body.\n * TRACE: The message body contains the request message as received by the server\n */\n StatusCodes[StatusCodes[\"OK\"] = 200] = \"OK\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.3.2\n *\n * The request has succeeded and a new resource has been created as a result of it. This is typically the response sent after a PUT request.\n */\n StatusCodes[StatusCodes[\"CREATED\"] = 201] = \"CREATED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.3.3\n *\n * The request has been received but not yet acted upon. It is non-committal, meaning that there is no way in HTTP to later send an asynchronous response indicating the outcome of processing the request. It is intended for cases where another process or server handles the request, or for batch processing.\n */\n StatusCodes[StatusCodes[\"ACCEPTED\"] = 202] = \"ACCEPTED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.3.4\n *\n * This response code means returned meta-information set is not exact set as available from the origin server, but collected from a local or a third party copy. Except this condition, 200 OK response should be preferred instead of this response.\n */\n StatusCodes[StatusCodes[\"NON_AUTHORITATIVE_INFORMATION\"] = 203] = \"NON_AUTHORITATIVE_INFORMATION\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.3.5\n *\n * There is no content to send for this request, but the headers may be useful. The user-agent may update its cached headers for this resource with the new ones.\n */\n StatusCodes[StatusCodes[\"NO_CONTENT\"] = 204] = \"NO_CONTENT\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.3.6\n *\n * This response code is sent after accomplishing request to tell user agent reset document view which sent this request.\n */\n StatusCodes[StatusCodes[\"RESET_CONTENT\"] = 205] = \"RESET_CONTENT\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7233#section-4.1\n *\n * This response code is used because of range header sent by the client to separate download into multiple streams.\n */\n StatusCodes[StatusCodes[\"PARTIAL_CONTENT\"] = 206] = \"PARTIAL_CONTENT\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2518#section-10.2\n *\n * A Multi-Status response conveys information about multiple resources in situations where multiple status codes might be appropriate.\n */\n StatusCodes[StatusCodes[\"MULTI_STATUS\"] = 207] = \"MULTI_STATUS\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.4.1\n *\n * The request has more than one possible responses. User-agent or user should choose one of them. There is no standardized way to choose one of the responses.\n */\n StatusCodes[StatusCodes[\"MULTIPLE_CHOICES\"] = 300] = \"MULTIPLE_CHOICES\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.4.2\n *\n * This response code means that URI of requested resource has been changed. Probably, new URI would be given in the response.\n */\n StatusCodes[StatusCodes[\"MOVED_PERMANENTLY\"] = 301] = \"MOVED_PERMANENTLY\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.4.3\n *\n * This response code means that URI of requested resource has been changed temporarily. New changes in the URI might be made in the future. Therefore, this same URI should be used by the client in future requests.\n */\n StatusCodes[StatusCodes[\"MOVED_TEMPORARILY\"] = 302] = \"MOVED_TEMPORARILY\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.4.4\n *\n * Server sent this response to directing client to get requested resource to another URI with an GET request.\n */\n StatusCodes[StatusCodes[\"SEE_OTHER\"] = 303] = \"SEE_OTHER\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7232#section-4.1\n *\n * This is used for caching purposes. It is telling to client that response has not been modified. So, client can continue to use same cached version of response.\n */\n StatusCodes[StatusCodes[\"NOT_MODIFIED\"] = 304] = \"NOT_MODIFIED\";\n /**\n * @deprecated\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.4.6\n *\n * Was defined in a previous version of the HTTP specification to indicate that a requested response must be accessed by a proxy. It has been deprecated due to security concerns regarding in-band configuration of a proxy.\n */\n StatusCodes[StatusCodes[\"USE_PROXY\"] = 305] = \"USE_PROXY\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.4.7\n *\n * Server sent this response to directing client to get requested resource to another URI with same method that used prior request. This has the same semantic than the 302 Found HTTP response code, with the exception that the user agent must not change the HTTP method used: if a POST was used in the first request, a POST must be used in the second request.\n */\n StatusCodes[StatusCodes[\"TEMPORARY_REDIRECT\"] = 307] = \"TEMPORARY_REDIRECT\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7538#section-3\n *\n * This means that the resource is now permanently located at another URI, specified by the Location: HTTP Response header. This has the same semantics as the 301 Moved Permanently HTTP response code, with the exception that the user agent must not change the HTTP method used: if a POST was used in the first request, a POST must be used in the second request.\n */\n StatusCodes[StatusCodes[\"PERMANENT_REDIRECT\"] = 308] = \"PERMANENT_REDIRECT\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.1\n *\n * This response means that server could not understand the request due to invalid syntax.\n */\n StatusCodes[StatusCodes[\"BAD_REQUEST\"] = 400] = \"BAD_REQUEST\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7235#section-3.1\n *\n * Although the HTTP standard specifies \"unauthorized\", semantically this response means \"unauthenticated\". That is, the client must authenticate itself to get the requested response.\n */\n StatusCodes[StatusCodes[\"UNAUTHORIZED\"] = 401] = \"UNAUTHORIZED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.2\n *\n * This response code is reserved for future use. Initial aim for creating this code was using it for digital payment systems however this is not used currently.\n */\n StatusCodes[StatusCodes[\"PAYMENT_REQUIRED\"] = 402] = \"PAYMENT_REQUIRED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.3\n *\n * The client does not have access rights to the content, i.e. they are unauthorized, so server is rejecting to give proper response. Unlike 401, the client's identity is known to the server.\n */\n StatusCodes[StatusCodes[\"FORBIDDEN\"] = 403] = \"FORBIDDEN\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.4\n *\n * The server can not find requested resource. In the browser, this means the URL is not recognized. In an API, this can also mean that the endpoint is valid but the resource itself does not exist. Servers may also send this response instead of 403 to hide the existence of a resource from an unauthorized client. This response code is probably the most famous one due to its frequent occurence on the web.\n */\n StatusCodes[StatusCodes[\"NOT_FOUND\"] = 404] = \"NOT_FOUND\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.5\n *\n * The request method is known by the server but has been disabled and cannot be used. For example, an API may forbid DELETE-ing a resource. The two mandatory methods, GET and HEAD, must never be disabled and should not return this error code.\n */\n StatusCodes[StatusCodes[\"METHOD_NOT_ALLOWED\"] = 405] = \"METHOD_NOT_ALLOWED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.6\n *\n * This response is sent when the web server, after performing server-driven content negotiation, doesn't find any content following the criteria given by the user agent.\n */\n StatusCodes[StatusCodes[\"NOT_ACCEPTABLE\"] = 406] = \"NOT_ACCEPTABLE\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7235#section-3.2\n *\n * This is similar to 401 but authentication is needed to be done by a proxy.\n */\n StatusCodes[StatusCodes[\"PROXY_AUTHENTICATION_REQUIRED\"] = 407] = \"PROXY_AUTHENTICATION_REQUIRED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.7\n *\n * This response is sent on an idle connection by some servers, even without any previous request by the client. It means that the server would like to shut down this unused connection. This response is used much more since some browsers, like Chrome, Firefox 27+, or IE9, use HTTP pre-connection mechanisms to speed up surfing. Also note that some servers merely shut down the connection without sending this message.\n */\n StatusCodes[StatusCodes[\"REQUEST_TIMEOUT\"] = 408] = \"REQUEST_TIMEOUT\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.8\n *\n * This response is sent when a request conflicts with the current state of the server.\n */\n StatusCodes[StatusCodes[\"CONFLICT\"] = 409] = \"CONFLICT\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.9\n *\n * This response would be sent when the requested content has been permenantly deleted from server, with no forwarding address. Clients are expected to remove their caches and links to the resource. The HTTP specification intends this status code to be used for \"limited-time, promotional services\". APIs should not feel compelled to indicate resources that have been deleted with this status code.\n */\n StatusCodes[StatusCodes[\"GONE\"] = 410] = \"GONE\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.10\n *\n * The server rejected the request because the Content-Length header field is not defined and the server requires it.\n */\n StatusCodes[StatusCodes[\"LENGTH_REQUIRED\"] = 411] = \"LENGTH_REQUIRED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7232#section-4.2\n *\n * The client has indicated preconditions in its headers which the server does not meet.\n */\n StatusCodes[StatusCodes[\"PRECONDITION_FAILED\"] = 412] = \"PRECONDITION_FAILED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.11\n *\n * Request entity is larger than limits defined by server; the server might close the connection or return an Retry-After header field.\n */\n StatusCodes[StatusCodes[\"REQUEST_TOO_LONG\"] = 413] = \"REQUEST_TOO_LONG\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.12\n *\n * The URI requested by the client is longer than the server is willing to interpret.\n */\n StatusCodes[StatusCodes[\"REQUEST_URI_TOO_LONG\"] = 414] = \"REQUEST_URI_TOO_LONG\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.13\n *\n * The media format of the requested data is not supported by the server, so the server is rejecting the request.\n */\n StatusCodes[StatusCodes[\"UNSUPPORTED_MEDIA_TYPE\"] = 415] = \"UNSUPPORTED_MEDIA_TYPE\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7233#section-4.4\n *\n * The range specified by the Range header field in the request can't be fulfilled; it's possible that the range is outside the size of the target URI's data.\n */\n StatusCodes[StatusCodes[\"REQUESTED_RANGE_NOT_SATISFIABLE\"] = 416] = \"REQUESTED_RANGE_NOT_SATISFIABLE\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.14\n *\n * This response code means the expectation indicated by the Expect request header field can't be met by the server.\n */\n StatusCodes[StatusCodes[\"EXPECTATION_FAILED\"] = 417] = \"EXPECTATION_FAILED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2324#section-2.3.2\n *\n * Any attempt to brew coffee with a teapot should result in the error code \"418 I'm a teapot\". The resulting entity body MAY be short and stout.\n */\n StatusCodes[StatusCodes[\"IM_A_TEAPOT\"] = 418] = \"IM_A_TEAPOT\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2518#section-10.6\n *\n * The 507 (Insufficient Storage) status code means the method could not be performed on the resource because the server is unable to store the representation needed to successfully complete the request. This condition is considered to be temporary. If the request which received this status code was the result of a user action, the request MUST NOT be repeated until it is requested by a separate user action.\n */\n StatusCodes[StatusCodes[\"INSUFFICIENT_SPACE_ON_RESOURCE\"] = 419] = \"INSUFFICIENT_SPACE_ON_RESOURCE\";\n /**\n * @deprecated\n * Official Documentation @ https://tools.ietf.org/rfcdiff?difftype=--hwdiff&url2=draft-ietf-webdav-protocol-06.txt\n *\n * A deprecated response used by the Spring Framework when a method has failed.\n */\n StatusCodes[StatusCodes[\"METHOD_FAILURE\"] = 420] = \"METHOD_FAILURE\";\n /**\n * Official Documentation @ https://datatracker.ietf.org/doc/html/rfc7540#section-9.1.2\n *\n * Defined in the specification of HTTP/2 to indicate that a server is not able to produce a response for the combination of scheme and authority that are included in the request URI.\n */\n StatusCodes[StatusCodes[\"MISDIRECTED_REQUEST\"] = 421] = \"MISDIRECTED_REQUEST\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2518#section-10.3\n *\n * The request was well-formed but was unable to be followed due to semantic errors.\n */\n StatusCodes[StatusCodes[\"UNPROCESSABLE_ENTITY\"] = 422] = \"UNPROCESSABLE_ENTITY\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2518#section-10.4\n *\n * The resource that is being accessed is locked.\n */\n StatusCodes[StatusCodes[\"LOCKED\"] = 423] = \"LOCKED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2518#section-10.5\n *\n * The request failed due to failure of a previous request.\n */\n StatusCodes[StatusCodes[\"FAILED_DEPENDENCY\"] = 424] = \"FAILED_DEPENDENCY\";\n /**\n * Official Documentation @ https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.15\n *\n * The server refuses to perform the request using the current protocol but might be willing to do so after the client upgrades to a different protocol.\n */\n StatusCodes[StatusCodes[\"UPGRADE_REQUIRED\"] = 426] = \"UPGRADE_REQUIRED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc6585#section-3\n *\n * The origin server requires the request to be conditional. Intended to prevent the 'lost update' problem, where a client GETs a resource's state, modifies it, and PUTs it back to the server, when meanwhile a third party has modified the state on the server, leading to a conflict.\n */\n StatusCodes[StatusCodes[\"PRECONDITION_REQUIRED\"] = 428] = \"PRECONDITION_REQUIRED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc6585#section-4\n *\n * The user has sent too many requests in a given amount of time (\"rate limiting\").\n */\n StatusCodes[StatusCodes[\"TOO_MANY_REQUESTS\"] = 429] = \"TOO_MANY_REQUESTS\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc6585#section-5\n *\n * The server is unwilling to process the request because its header fields are too large. The request MAY be resubmitted after reducing the size of the request header fields.\n */\n StatusCodes[StatusCodes[\"REQUEST_HEADER_FIELDS_TOO_LARGE\"] = 431] = \"REQUEST_HEADER_FIELDS_TOO_LARGE\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7725\n *\n * The user-agent requested a resource that cannot legally be provided, such as a web page censored by a government.\n */\n StatusCodes[StatusCodes[\"UNAVAILABLE_FOR_LEGAL_REASONS\"] = 451] = \"UNAVAILABLE_FOR_LEGAL_REASONS\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.6.1\n *\n * The server encountered an unexpected condition that prevented it from fulfilling the request.\n */\n StatusCodes[StatusCodes[\"INTERNAL_SERVER_ERROR\"] = 500] = \"INTERNAL_SERVER_ERROR\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.6.2\n *\n * The request method is not supported by the server and cannot be handled. The only methods that servers are required to support (and therefore that must not return this code) are GET and HEAD.\n */\n StatusCodes[StatusCodes[\"NOT_IMPLEMENTED\"] = 501] = \"NOT_IMPLEMENTED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.6.3\n *\n * This error response means that the server, while working as a gateway to get a response needed to handle the request, got an invalid response.\n */\n StatusCodes[StatusCodes[\"BAD_GATEWAY\"] = 502] = \"BAD_GATEWAY\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.6.4\n *\n * The server is not ready to handle the request. Common causes are a server that is down for maintenance or that is overloaded. Note that together with this response, a user-friendly page explaining the problem should be sent. This responses should be used for temporary conditions and the Retry-After: HTTP header should, if possible, contain the estimated time before the recovery of the service. The webmaster must also take care about the caching-related headers that are sent along with this response, as these temporary condition responses should usually not be cached.\n */\n StatusCodes[StatusCodes[\"SERVICE_UNAVAILABLE\"] = 503] = \"SERVICE_UNAVAILABLE\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.6.5\n *\n * This error response is given when the server is acting as a gateway and cannot get a response in time.\n */\n StatusCodes[StatusCodes[\"GATEWAY_TIMEOUT\"] = 504] = \"GATEWAY_TIMEOUT\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.6.6\n *\n * The HTTP version used in the request is not supported by the server.\n */\n StatusCodes[StatusCodes[\"HTTP_VERSION_NOT_SUPPORTED\"] = 505] = \"HTTP_VERSION_NOT_SUPPORTED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2518#section-10.6\n *\n * The server has an internal configuration error: the chosen variant resource is configured to engage in transparent content negotiation itself, and is therefore not a proper end point in the negotiation process.\n */\n StatusCodes[StatusCodes[\"INSUFFICIENT_STORAGE\"] = 507] = \"INSUFFICIENT_STORAGE\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc6585#section-6\n *\n * The 511 status code indicates that the client needs to authenticate to gain network access.\n */\n StatusCodes[StatusCodes[\"NETWORK_AUTHENTICATION_REQUIRED\"] = 511] = \"NETWORK_AUTHENTICATION_REQUIRED\";\n})(StatusCodes || (StatusCodes = {}));\n","import { v4 as uuidv4 } from 'uuid';\n\nimport isNode from 'detect-node'\nimport https from 'node:https'\n\nimport axios, { AxiosError, AxiosResponse, AxiosRequestConfig } from 'axios';\n\nimport { ISTSLogger, Sleep } from '@nsshunt/stsutils'\n\nimport chalk from 'chalk'\n\nimport { IDomainResource } from './STSFhirTypes'\nimport { StatusCodes } from 'http-status-codes';\n\nexport interface IFhirClientTelemetryEvents {\n AuthenticationErrorInc: () => void;\n RetryInc: () => void;\n}\n\nexport interface IFhirClientOptions {\n logger: ISTSLogger\n fhirEndpoint: string\n testingMode: boolean\n GetAccessToken: () => Promise<string | null>\n ResetAccessToken: () => void\n clientTelemetryEvents?: IFhirClientTelemetryEvents\n agentOptions?: {\n\t\tkeepAlive: boolean\n\t\tmaxSockets: number\n\t\tmaxTotalSockets: number\n\t\tmaxFreeSockets: number\n\t\trejectUnauthorized: boolean\n timeout: number\n\t}\n stsfhirapiroot?: string\n}\n\ndeclare interface IMethodMetadata {\n id: string\n retries: number\n testFailIndexBefore: number\n url: string\n httpVerb: string, \n domainResource: Partial<IDomainResource> | Partial<IDomainResource>[] | null\n filters: string[] | null\n errorCb: (error: Error) => void\n}\n\ndeclare interface IInvokeAPIReturnData {\n response: AxiosResponse | null\n retry: boolean\n}\n\nexport class FhirClient {\n #options: IFhirClientOptions;\n #DUMMY_USER = 'USR_user01@stsmda.com.au'; //@@ needs to come from headers ??\n #httpsAgent: https.Agent | null = null;\n #invokeMethods: Record<string, IMethodMetadata> = { }\n #maxRetries: number = 5;\n #sleepDuration: number[] = [ 50, 100, 200, 500, 1000, 2000, 5000 ];\n #NoRetryStatusCodes: StatusCodes[] = [\n StatusCodes.NOT_FOUND,\n StatusCodes.CONFLICT\n ];\n #stsfhirapiroot = '/stsfhir/r5'; // Default value\n\n constructor(options: IFhirClientOptions) {\n this.#options = options;\n\n // Override defaults\n if (this.#options.stsfhirapiroot !== undefined) {\n this.#stsfhirapiroot = this.#options.stsfhirapiroot;\n }\n }\n\n get options(): IFhirClientOptions {\n return this.#options;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n #LogDebugMessage = (message: any) => {\n this.#options.logger.debug(message);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n #LogErrorMessage = (message: any) => {\n this.#options.logger.error(message);\n }\n\n #GetHttpsAgent = () => {\n if (this.#httpsAgent === null) {\n\n if (this.#options.agentOptions) {\n // https://nodejs.org/api/http.html#class-httpagent\n this.#httpsAgent = new https.Agent({ \n keepAlive: this.#options.agentOptions.keepAlive,\n maxSockets: this.#options.agentOptions.maxSockets,\n maxTotalSockets: this.#options.agentOptions.maxTotalSockets,\n maxFreeSockets: this.#options.agentOptions.maxFreeSockets,\n timeout: this.#options.agentOptions.timeout,\n rejectUnauthorized: this.#options.agentOptions.rejectUnauthorized\n });\n } else {\n this.#httpsAgent = new https.Agent();\n }\n }\n return this.#httpsAgent;\n }\n \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n #HandleError = (error: any): number => {\n this.#LogDebugMessage(chalk.red(`HandleError(): Error: [${error}]`));\n let responseCode = 500;\n if (axios.isAxiosError(error)) {\n const axiosError: AxiosError = error;\n if (axiosError.response) {\n responseCode = axiosError.response.status;\n this.#LogDebugMessage(chalk.red(`AXIOS Error Response.Status = [${axiosError.response.status}]`));\n if (axiosError.response.headers) {\n this.#LogErrorMessage(chalk.red(` headers: [${JSON.stringify(axiosError.response.headers)}]`));\n }\n if (axiosError.response.data) {\n this.#LogErrorMessage(chalk.red(` data: [${JSON.stringify(axiosError.response.data)}]`));\n }\n try {\n if (axiosError.response.config) {\n this.#LogErrorMessage(chalk.red(` config: [${JSON.stringify(axiosError.response.config)}]`));\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (innererror: any) {\n this.#LogErrorMessage(chalk.red(` could not get response config, error: [${innererror}]`));\n }\n } else {\n this.#LogDebugMessage(chalk.red(`AXIOS Error = [${axiosError}]`));\n }\n }\n return responseCode;\n }\n\n #InvokeResourceAPI = async (url: string, httpVerb: string, \n domainResource: Partial<IDomainResource> | Partial<IDomainResource>[] | null, \n filters: string[] | null, errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n\n const id = uuidv4();\n this.#invokeMethods[id] = {\n id,\n retries: 0,\n testFailIndexBefore: 1,\n url,\n httpVerb,\n domainResource,\n filters,\n errorCb\n }\n\n const InvokeAPI = async (id: string): Promise<IInvokeAPIReturnData> => {\n const metadataRecord = this.#invokeMethods[id];\n let performRetry = false;\n \n const returnData = await this.#__InvokeResourceAPI(metadataRecord, (statusCode: StatusCodes, error: Error): void => {\n console.error(chalk.red(`#InvokeResourceAPI(): Error: [${error}], Attempt: [${metadataRecord.retries + 1}]`));\n const noRetryIndex = this.#NoRetryStatusCodes.indexOf(statusCode);\n if (noRetryIndex === -1) {\n if (statusCode === StatusCodes.UNAUTHORIZED) {\n // Reset the token in an attempt to get a new one in the next retry\n console.error(chalk.red(`#InvokeResourceAPI(): Authentication error, resetting access_token (to null).`));\n this.#options.ResetAccessToken();\n if (this.#options.clientTelemetryEvents) {\n this.#options.clientTelemetryEvents.AuthenticationErrorInc();\n }\n }\n if (isNode) {\n // Reset the agent in an attempt to get a new one in the next retry\n console.error(chalk.red(`#InvokeResourceAPI(): Resetting https agent (to null).`));\n this.#httpsAgent = null;\n }\n performRetry = true;\n }\n });\n return {\n response: returnData,\n retry: performRetry\n };\n }\n\n let retVal: IInvokeAPIReturnData | null = null;\n while (this.#invokeMethods[id].retries < this.#maxRetries) {\n retVal = await InvokeAPI(id);\n if (retVal.retry === false) {\n delete this.#invokeMethods[id];\n break;\n } else {\n console.log(`Going to retry. Current attempts: [${this.#invokeMethods[id].retries + 1}]`)\n console.log(`Sleeping: [${this.#sleepDuration[this.#invokeMethods[id].retries]}]`)\n\n await Sleep(this.#sleepDuration[this.#invokeMethods[id].retries]);\n this.#invokeMethods[id].retries++;\n if (this.#options.clientTelemetryEvents) {\n this.#options.clientTelemetryEvents.RetryInc();\n }\n }\n }\n if (retVal) {\n if (retVal.retry === true) {\n errorCb(new Error(`#InvokeResourceAPI(): Max retries exceeded. Max Retries: [${this.#invokeMethods[id].retries}]`));\n delete this.#invokeMethods[id];\n return null;\n } else {\n return retVal.response;\n }\n } else {\n return null;\n }\n }\n\n #TestMode = (metaData: IMethodMetadata, errorCb: (statusCode: StatusCodes, error: Error) => void): boolean => {\n const { id, url, httpVerb, filters, retries } = metaData;\n if (retries < 1) {\n errorCb(401, new Error(`Testing Error Only. Error Code: [401], Message ID: [${id}, url: [${url}], httpVerb: [${httpVerb}], filters: [${filters}], Retries: [${retries}]`));\n return true;\n }\n\n if (retries < 2) {\n errorCb(500, new Error(`Testing Error Only. Error Code: [500], Message ID: [${id}, url: [${url}], httpVerb: [${httpVerb}], filters: [${filters}], Retries: [${retries}]`));\n return true;\n }\n return false;\n }\n\n #__InvokeResourceAPI = async (metaData: IMethodMetadata, errorCb: (statusCode: StatusCodes, error: Error) => void): Promise<AxiosResponse | null> => {\n try {\n const { url, httpVerb, domainResource, filters } = metaData;\n\n if (this.#options.testingMode) {\n if (this.#TestMode(metaData, errorCb)) {\n return null;\n }\n }\n\n const accessToken = await this.#options.GetAccessToken();\n const headers = {\n 'Content-Type': 'application/json', \n 'Authorization': `Bearer ${accessToken}`,\n 'x-sts_user_id': this.#DUMMY_USER\n };\n const requestConfig: AxiosRequestConfig = {\n url: url\n ,method: httpVerb\n ,headers: headers\n }\n if (isNode) {\n requestConfig.httpsAgent = this.#GetHttpsAgent()\n }\n\n if (filters) {\n requestConfig.data = filters;\n } else if (domainResource) {\n requestConfig.data = domainResource\n }\n const retVal = await axios(requestConfig);\n\n return retVal;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (error: any) {\n const responseCode = this.#HandleError(error);\n errorCb(responseCode, error);\n return null;\n }\n }\n\n GetResource = async (resource: string, id: string, filters: string[] | null, errorCb: (error: Error) => void): Promise<IDomainResource | null> => {\n const url = `${this.#options.fhirEndpoint}${this.#stsfhirapiroot}/${resource}/${id}`;\n const response = await this.#InvokeResourceAPI(url, 'get', null, filters, errorCb);\n if (response) {\n return response.data as IDomainResource;\n } else {\n return null;\n }\n }\n\n GetResources = async (resource: string, filters: string[] | null, errorCb: (error: Error) => void): Promise<IDomainResource[] | null> => {\n const url = `${this.#options.fhirEndpoint}${this.#stsfhirapiroot}/${resource}`;\n const response = await this.#InvokeResourceAPI(url, 'get', null, filters, errorCb);\n if (response) {\n return response.data as IDomainResource[];\n } else {\n return null;\n }\n }\n\n CreateResource = async (resource: string, domainResource: IDomainResource, errorCb: (error: Error) => void): Promise<IDomainResource | null> => {\n const url = `${this.#options.fhirEndpoint}${this.#stsfhirapiroot}/${resource}`;\n const response = await this.#InvokeResourceAPI(url, 'post', domainResource, null, errorCb);\n if (response) {\n if (response.status === StatusCodes.CREATED) {\n return response.data as IDomainResource;\n } else {\n errorCb(new Error(`CreateResource(): Invalid response status code: [${response.status}] expected: [${StatusCodes.CREATED}]`));\n return null;\n }\n } else {\n return null;\n }\n }\n\n UpdateResource = async (resource: string, domainResource: IDomainResource, errorCb: (error: Error) => void): Promise<IDomainResource | null> => {\n const url = `${this.#options.fhirEndpoint}${this.#stsfhirapiroot}/${resource}/${domainResource.id}`;\n const response = await this.#InvokeResourceAPI(url, 'put', domainResource, null, errorCb);\n if (response) {\n return response.data as IDomainResource;\n } else {\n return null;\n }\n }\n\n UpdateResources = async (resource: string, domainResources: IDomainResource[], errorCb: (error: Error) => void): Promise<IDomainResource[] | null> => {\n const url = `${this.#options.fhirEndpoint}${this.#stsfhirapiroot}/${resource}`;\n const response = await this.#InvokeResourceAPI(url, 'put', domainResources, null, errorCb);\n if (response) {\n return response.data as IDomainResource[];\n } else {\n return null;\n }\n }\n\n PatchResource = async (resource: string, domainResource: IDomainResource, errorCb: (error: Error) => void): Promise<IDomainResource | null> => {\n const url = `${this.#options.fhirEndpoint}${this.#stsfhirapiroot}/${resource}/${domainResource.id}`;\n const response = await this.#InvokeResourceAPI(url, 'patch', domainResource, null, errorCb);\n if (response) {\n return response.data as IDomainResource;\n } else {\n return null;\n }\n }\n\n PatchResources = async (resource: string, domainResources: Partial<IDomainResource>[], errorCb: (error: Error) => void): Promise<IDomainResource[] | null> => {\n const url = `${this.#options.fhirEndpoint}${this.#stsfhirapiroot}/${resource}`;\n const response = await this.#InvokeResourceAPI(url, 'patch', domainResources, null, errorCb);\n if (response) {\n return response.data as IDomainResource[];\n } else {\n return null;\n }\n }\n\n DeleteResource = async (resource: string, id: string, errorCb: (error: Error) => void): Promise<IDomainResource | null> => {\n const url = `${this.#options.fhirEndpoint}${this.#stsfhirapiroot}/${resource}/${id}`;\n const response = await this.#InvokeResourceAPI(url, 'delete', null, null, errorCb);\n if (response) {\n return response.data as IDomainResource;\n } else {\n return null;\n }\n }\n\n DeleteResources = async (resource: string, domainResources: Partial<IDomainResource>[], errorCb: (error: Error) => void): Promise<IDomainResource[] | null> => {\n const url = `${this.#options.fhirEndpoint}${this.#stsfhirapiroot}/${resource}`;\n const response = await this.#InvokeResourceAPI(url, 'delete', domainResources, null, errorCb);\n if (response) {\n return response.data as IDomainResource[];\n } else {\n return null;\n }\n }\n\n GetLatency = async () => {\n const url = `${this.#options.fhirEndpoint}${this.#stsfhirapiroot}/latency`; // /stsfhir/r5/\n try {\n const headers = {\n 'Content-Type': 'application/json', \n };\n\n const requestConfig: AxiosRequestConfig = {\n url: url\n ,method: 'get'\n ,headers: headers\n }\n if (isNode) {\n requestConfig.httpsAgent = this.#GetHttpsAgent()\n }\n\n const retVal = await axios(requestConfig);\n\n return retVal;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any \n } catch (error: any) {\n this.#HandleError(error);\n }\n };\n}\n"],"names":["require$$0","conversions","route","require$$1","colorConvert","styles","stringReplaceAll","stringEncaseCRLFWithFirstIndex","chalk","require$$2","require$$3","StatusCodes","uuidv4","id"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]}
1
+ {"version":3,"file":"stsfhirclient.mjs","sources":["../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/v4.js","../node_modules/detect-node/index.esm.js","../node_modules/color-name/index.js","../node_modules/color-convert/conversions.js","../node_modules/color-convert/route.js","../node_modules/color-convert/index.js","../node_modules/ansi-styles/index.js","../node_modules/chalk/node_modules/supports-color/browser.js","../node_modules/chalk/source/util.js","../node_modules/chalk/source/templates.js","../node_modules/chalk/source/index.js","../node_modules/http-status-codes/build/es/status-codes.js","../__vite-browser-external","../node_modules/dotenv/lib/main.js","../node_modules/@nsshunt/stsconfig/dist/stsconfig.mjs","../src/FhirClient.ts"],"sourcesContent":["import validate from './validate.js';\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n //\n // Note to future-self: No, you can't remove the `toLowerCase()` call.\n // REF: https://github.com/uuidjs/uuid/pull/677#issuecomment-1757351351\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n var uuid = unsafeStringify(arr, offset);\n // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\n\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n return getRandomValues(rnds8);\n}","var randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n options = options || {};\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n offset = offset || 0;\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nexport default v4;","// Only Node.JS has a process variable that is of [[Class]] process\nexport default Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]';\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/* MIT license */\n/* eslint-disable no-mixed-operators */\nconst cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\nmodule.exports = convert;\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Infinity;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tlet r = rgb[0] / 255;\n\tlet g = rgb[1] / 255;\n\tlet b = rgb[2] / 255;\n\n\t// Assume sRGB\n\tr = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92);\n\n\tconst x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tconst y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tconst z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t2;\n\tlet t3;\n\tlet val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// Assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * (r ** (1.0 / 2.4))) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * (g ** (1.0 / 2.4))) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * (b ** (1.0 / 2.4))) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (~~(args > 50) + 1) * 0.5;\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(char => {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tconst integer = parseInt(colorString, 16);\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet grayscale;\n\tlet hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l));\n\n\tlet f = 0;\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1.0 - c);\n\tlet f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1.0 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tconst val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (val << 16) + (val << 8) + val;\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","const conversions = require('./conversions');\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","const conversions = require('./conversions');\nconst route = require('./route');\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(fromModel => {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\trouteModels.forEach(toModel => {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","'use strict';\n\nconst wrapAnsi16 = (fn, offset) => (...args) => {\n\tconst code = fn(...args);\n\treturn `\\u001B[${code + offset}m`;\n};\n\nconst wrapAnsi256 = (fn, offset) => (...args) => {\n\tconst code = fn(...args);\n\treturn `\\u001B[${38 + offset};5;${code}m`;\n};\n\nconst wrapAnsi16m = (fn, offset) => (...args) => {\n\tconst rgb = fn(...args);\n\treturn `\\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`;\n};\n\nconst ansi2ansi = n => n;\nconst rgb2rgb = (r, g, b) => [r, g, b];\n\nconst setLazyProperty = (object, property, get) => {\n\tObject.defineProperty(object, property, {\n\t\tget: () => {\n\t\t\tconst value = get();\n\n\t\t\tObject.defineProperty(object, property, {\n\t\t\t\tvalue,\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true\n\t\t\t});\n\n\t\t\treturn value;\n\t\t},\n\t\tenumerable: true,\n\t\tconfigurable: true\n\t});\n};\n\n/** @type {typeof import('color-convert')} */\nlet colorConvert;\nconst makeDynamicStyles = (wrap, targetSpace, identity, isBackground) => {\n\tif (colorConvert === undefined) {\n\t\tcolorConvert = require('color-convert');\n\t}\n\n\tconst offset = isBackground ? 10 : 0;\n\tconst styles = {};\n\n\tfor (const [sourceSpace, suite] of Object.entries(colorConvert)) {\n\t\tconst name = sourceSpace === 'ansi16' ? 'ansi' : sourceSpace;\n\t\tif (sourceSpace === targetSpace) {\n\t\t\tstyles[name] = wrap(identity, offset);\n\t\t} else if (typeof suite === 'object') {\n\t\t\tstyles[name] = wrap(suite[targetSpace], offset);\n\t\t}\n\t}\n\n\treturn styles;\n};\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\tconst styles = {\n\t\tmodifier: {\n\t\t\treset: [0, 0],\n\t\t\t// 21 isn't widely supported and 22 does the same thing\n\t\t\tbold: [1, 22],\n\t\t\tdim: [2, 22],\n\t\t\titalic: [3, 23],\n\t\t\tunderline: [4, 24],\n\t\t\tinverse: [7, 27],\n\t\t\thidden: [8, 28],\n\t\t\tstrikethrough: [9, 29]\n\t\t},\n\t\tcolor: {\n\t\t\tblack: [30, 39],\n\t\t\tred: [31, 39],\n\t\t\tgreen: [32, 39],\n\t\t\tyellow: [33, 39],\n\t\t\tblue: [34, 39],\n\t\t\tmagenta: [35, 39],\n\t\t\tcyan: [36, 39],\n\t\t\twhite: [37, 39],\n\n\t\t\t// Bright color\n\t\t\tblackBright: [90, 39],\n\t\t\tredBright: [91, 39],\n\t\t\tgreenBright: [92, 39],\n\t\t\tyellowBright: [93, 39],\n\t\t\tblueBright: [94, 39],\n\t\t\tmagentaBright: [95, 39],\n\t\t\tcyanBright: [96, 39],\n\t\t\twhiteBright: [97, 39]\n\t\t},\n\t\tbgColor: {\n\t\t\tbgBlack: [40, 49],\n\t\t\tbgRed: [41, 49],\n\t\t\tbgGreen: [42, 49],\n\t\t\tbgYellow: [43, 49],\n\t\t\tbgBlue: [44, 49],\n\t\t\tbgMagenta: [45, 49],\n\t\t\tbgCyan: [46, 49],\n\t\t\tbgWhite: [47, 49],\n\n\t\t\t// Bright color\n\t\t\tbgBlackBright: [100, 49],\n\t\t\tbgRedBright: [101, 49],\n\t\t\tbgGreenBright: [102, 49],\n\t\t\tbgYellowBright: [103, 49],\n\t\t\tbgBlueBright: [104, 49],\n\t\t\tbgMagentaBright: [105, 49],\n\t\t\tbgCyanBright: [106, 49],\n\t\t\tbgWhiteBright: [107, 49]\n\t\t}\n\t};\n\n\t// Alias bright black as gray (and grey)\n\tstyles.color.gray = styles.color.blackBright;\n\tstyles.bgColor.bgGray = styles.bgColor.bgBlackBright;\n\tstyles.color.grey = styles.color.blackBright;\n\tstyles.bgColor.bgGrey = styles.bgColor.bgBlackBright;\n\n\tfor (const [groupName, group] of Object.entries(styles)) {\n\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false\n\t\t});\n\t}\n\n\tObject.defineProperty(styles, 'codes', {\n\t\tvalue: codes,\n\t\tenumerable: false\n\t});\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tsetLazyProperty(styles.color, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, false));\n\tsetLazyProperty(styles.color, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, false));\n\tsetLazyProperty(styles.color, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, false));\n\tsetLazyProperty(styles.bgColor, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, true));\n\tsetLazyProperty(styles.bgColor, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, true));\n\tsetLazyProperty(styles.bgColor, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, true));\n\n\treturn styles;\n}\n\n// Make the export immutable\nObject.defineProperty(module, 'exports', {\n\tenumerable: true,\n\tget: assembleStyles\n});\n","'use strict';\nmodule.exports = {\n\tstdout: false,\n\tstderr: false\n};\n","'use strict';\n\nconst stringReplaceAll = (string, substring, replacer) => {\n\tlet index = string.indexOf(substring);\n\tif (index === -1) {\n\t\treturn string;\n\t}\n\n\tconst substringLength = substring.length;\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\treturnValue += string.substr(endIndex, index - endIndex) + substring + replacer;\n\t\tendIndex = index + substringLength;\n\t\tindex = string.indexOf(substring, endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.substr(endIndex);\n\treturn returnValue;\n};\n\nconst stringEncaseCRLFWithFirstIndex = (string, prefix, postfix, index) => {\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\tconst gotCR = string[index - 1] === '\\r';\n\t\treturnValue += string.substr(endIndex, (gotCR ? index - 1 : index) - endIndex) + prefix + (gotCR ? '\\r\\n' : '\\n') + postfix;\n\t\tendIndex = index + 1;\n\t\tindex = string.indexOf('\\n', endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.substr(endIndex);\n\treturn returnValue;\n};\n\nmodule.exports = {\n\tstringReplaceAll,\n\tstringEncaseCRLFWithFirstIndex\n};\n","'use strict';\nconst TEMPLATE_REGEX = /(?:\\\\(u(?:[a-f\\d]{4}|\\{[a-f\\d]{1,6}\\})|x[a-f\\d]{2}|.))|(?:\\{(~)?(\\w+(?:\\([^)]*\\))?(?:\\.\\w+(?:\\([^)]*\\))?)*)(?:[ \\t]|(?=\\r?\\n)))|(\\})|((?:.|[\\r\\n\\f])+?)/gi;\nconst STYLE_REGEX = /(?:^|\\.)(\\w+)(?:\\(([^)]*)\\))?/g;\nconst STRING_REGEX = /^(['\"])((?:\\\\.|(?!\\1)[^\\\\])*)\\1$/;\nconst ESCAPE_REGEX = /\\\\(u(?:[a-f\\d]{4}|{[a-f\\d]{1,6}})|x[a-f\\d]{2}|.)|([^\\\\])/gi;\n\nconst ESCAPES = new Map([\n\t['n', '\\n'],\n\t['r', '\\r'],\n\t['t', '\\t'],\n\t['b', '\\b'],\n\t['f', '\\f'],\n\t['v', '\\v'],\n\t['0', '\\0'],\n\t['\\\\', '\\\\'],\n\t['e', '\\u001B'],\n\t['a', '\\u0007']\n]);\n\nfunction unescape(c) {\n\tconst u = c[0] === 'u';\n\tconst bracket = c[1] === '{';\n\n\tif ((u && !bracket && c.length === 5) || (c[0] === 'x' && c.length === 3)) {\n\t\treturn String.fromCharCode(parseInt(c.slice(1), 16));\n\t}\n\n\tif (u && bracket) {\n\t\treturn String.fromCodePoint(parseInt(c.slice(2, -1), 16));\n\t}\n\n\treturn ESCAPES.get(c) || c;\n}\n\nfunction parseArguments(name, arguments_) {\n\tconst results = [];\n\tconst chunks = arguments_.trim().split(/\\s*,\\s*/g);\n\tlet matches;\n\n\tfor (const chunk of chunks) {\n\t\tconst number = Number(chunk);\n\t\tif (!Number.isNaN(number)) {\n\t\t\tresults.push(number);\n\t\t} else if ((matches = chunk.match(STRING_REGEX))) {\n\t\t\tresults.push(matches[2].replace(ESCAPE_REGEX, (m, escape, character) => escape ? unescape(escape) : character));\n\t\t} else {\n\t\t\tthrow new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`);\n\t\t}\n\t}\n\n\treturn results;\n}\n\nfunction parseStyle(style) {\n\tSTYLE_REGEX.lastIndex = 0;\n\n\tconst results = [];\n\tlet matches;\n\n\twhile ((matches = STYLE_REGEX.exec(style)) !== null) {\n\t\tconst name = matches[1];\n\n\t\tif (matches[2]) {\n\t\t\tconst args = parseArguments(name, matches[2]);\n\t\t\tresults.push([name].concat(args));\n\t\t} else {\n\t\t\tresults.push([name]);\n\t\t}\n\t}\n\n\treturn results;\n}\n\nfunction buildStyle(chalk, styles) {\n\tconst enabled = {};\n\n\tfor (const layer of styles) {\n\t\tfor (const style of layer.styles) {\n\t\t\tenabled[style[0]] = layer.inverse ? null : style.slice(1);\n\t\t}\n\t}\n\n\tlet current = chalk;\n\tfor (const [styleName, styles] of Object.entries(enabled)) {\n\t\tif (!Array.isArray(styles)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!(styleName in current)) {\n\t\t\tthrow new Error(`Unknown Chalk style: ${styleName}`);\n\t\t}\n\n\t\tcurrent = styles.length > 0 ? current[styleName](...styles) : current[styleName];\n\t}\n\n\treturn current;\n}\n\nmodule.exports = (chalk, temporary) => {\n\tconst styles = [];\n\tconst chunks = [];\n\tlet chunk = [];\n\n\t// eslint-disable-next-line max-params\n\ttemporary.replace(TEMPLATE_REGEX, (m, escapeCharacter, inverse, style, close, character) => {\n\t\tif (escapeCharacter) {\n\t\t\tchunk.push(unescape(escapeCharacter));\n\t\t} else if (style) {\n\t\t\tconst string = chunk.join('');\n\t\t\tchunk = [];\n\t\t\tchunks.push(styles.length === 0 ? string : buildStyle(chalk, styles)(string));\n\t\t\tstyles.push({inverse, styles: parseStyle(style)});\n\t\t} else if (close) {\n\t\t\tif (styles.length === 0) {\n\t\t\t\tthrow new Error('Found extraneous } in Chalk template literal');\n\t\t\t}\n\n\t\t\tchunks.push(buildStyle(chalk, styles)(chunk.join('')));\n\t\t\tchunk = [];\n\t\t\tstyles.pop();\n\t\t} else {\n\t\t\tchunk.push(character);\n\t\t}\n\t});\n\n\tchunks.push(chunk.join(''));\n\n\tif (styles.length > 0) {\n\t\tconst errMessage = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? '' : 's'} (\\`}\\`)`;\n\t\tthrow new Error(errMessage);\n\t}\n\n\treturn chunks.join('');\n};\n","'use strict';\nconst ansiStyles = require('ansi-styles');\nconst {stdout: stdoutColor, stderr: stderrColor} = require('supports-color');\nconst {\n\tstringReplaceAll,\n\tstringEncaseCRLFWithFirstIndex\n} = require('./util');\n\nconst {isArray} = Array;\n\n// `supportsColor.level` → `ansiStyles.color[name]` mapping\nconst levelMapping = [\n\t'ansi',\n\t'ansi',\n\t'ansi256',\n\t'ansi16m'\n];\n\nconst styles = Object.create(null);\n\nconst applyOptions = (object, options = {}) => {\n\tif (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {\n\t\tthrow new Error('The `level` option should be an integer from 0 to 3');\n\t}\n\n\t// Detect level if not set manually\n\tconst colorLevel = stdoutColor ? stdoutColor.level : 0;\n\tobject.level = options.level === undefined ? colorLevel : options.level;\n};\n\nclass ChalkClass {\n\tconstructor(options) {\n\t\t// eslint-disable-next-line no-constructor-return\n\t\treturn chalkFactory(options);\n\t}\n}\n\nconst chalkFactory = options => {\n\tconst chalk = {};\n\tapplyOptions(chalk, options);\n\n\tchalk.template = (...arguments_) => chalkTag(chalk.template, ...arguments_);\n\n\tObject.setPrototypeOf(chalk, Chalk.prototype);\n\tObject.setPrototypeOf(chalk.template, chalk);\n\n\tchalk.template.constructor = () => {\n\t\tthrow new Error('`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.');\n\t};\n\n\tchalk.template.Instance = ChalkClass;\n\n\treturn chalk.template;\n};\n\nfunction Chalk(options) {\n\treturn chalkFactory(options);\n}\n\nfor (const [styleName, style] of Object.entries(ansiStyles)) {\n\tstyles[styleName] = {\n\t\tget() {\n\t\t\tconst builder = createBuilder(this, createStyler(style.open, style.close, this._styler), this._isEmpty);\n\t\t\tObject.defineProperty(this, styleName, {value: builder});\n\t\t\treturn builder;\n\t\t}\n\t};\n}\n\nstyles.visible = {\n\tget() {\n\t\tconst builder = createBuilder(this, this._styler, true);\n\t\tObject.defineProperty(this, 'visible', {value: builder});\n\t\treturn builder;\n\t}\n};\n\nconst usedModels = ['rgb', 'hex', 'keyword', 'hsl', 'hsv', 'hwb', 'ansi', 'ansi256'];\n\nfor (const model of usedModels) {\n\tstyles[model] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(ansiStyles.color[levelMapping[level]][model](...arguments_), ansiStyles.color.close, this._styler);\n\t\t\t\treturn createBuilder(this, styler, this._isEmpty);\n\t\t\t};\n\t\t}\n\t};\n}\n\nfor (const model of usedModels) {\n\tconst bgModel = 'bg' + model[0].toUpperCase() + model.slice(1);\n\tstyles[bgModel] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(ansiStyles.bgColor[levelMapping[level]][model](...arguments_), ansiStyles.bgColor.close, this._styler);\n\t\t\t\treturn createBuilder(this, styler, this._isEmpty);\n\t\t\t};\n\t\t}\n\t};\n}\n\nconst proto = Object.defineProperties(() => {}, {\n\t...styles,\n\tlevel: {\n\t\tenumerable: true,\n\t\tget() {\n\t\t\treturn this._generator.level;\n\t\t},\n\t\tset(level) {\n\t\t\tthis._generator.level = level;\n\t\t}\n\t}\n});\n\nconst createStyler = (open, close, parent) => {\n\tlet openAll;\n\tlet closeAll;\n\tif (parent === undefined) {\n\t\topenAll = open;\n\t\tcloseAll = close;\n\t} else {\n\t\topenAll = parent.openAll + open;\n\t\tcloseAll = close + parent.closeAll;\n\t}\n\n\treturn {\n\t\topen,\n\t\tclose,\n\t\topenAll,\n\t\tcloseAll,\n\t\tparent\n\t};\n};\n\nconst createBuilder = (self, _styler, _isEmpty) => {\n\tconst builder = (...arguments_) => {\n\t\tif (isArray(arguments_[0]) && isArray(arguments_[0].raw)) {\n\t\t\t// Called as a template literal, for example: chalk.red`2 + 3 = {bold ${2+3}}`\n\t\t\treturn applyStyle(builder, chalkTag(builder, ...arguments_));\n\t\t}\n\n\t\t// Single argument is hot path, implicit coercion is faster than anything\n\t\t// eslint-disable-next-line no-implicit-coercion\n\t\treturn applyStyle(builder, (arguments_.length === 1) ? ('' + arguments_[0]) : arguments_.join(' '));\n\t};\n\n\t// We alter the prototype because we must return a function, but there is\n\t// no way to create a function with a different prototype\n\tObject.setPrototypeOf(builder, proto);\n\n\tbuilder._generator = self;\n\tbuilder._styler = _styler;\n\tbuilder._isEmpty = _isEmpty;\n\n\treturn builder;\n};\n\nconst applyStyle = (self, string) => {\n\tif (self.level <= 0 || !string) {\n\t\treturn self._isEmpty ? '' : string;\n\t}\n\n\tlet styler = self._styler;\n\n\tif (styler === undefined) {\n\t\treturn string;\n\t}\n\n\tconst {openAll, closeAll} = styler;\n\tif (string.indexOf('\\u001B') !== -1) {\n\t\twhile (styler !== undefined) {\n\t\t\t// Replace any instances already present with a re-opening code\n\t\t\t// otherwise only the part of the string until said closing code\n\t\t\t// will be colored, and the rest will simply be 'plain'.\n\t\t\tstring = stringReplaceAll(string, styler.close, styler.open);\n\n\t\t\tstyler = styler.parent;\n\t\t}\n\t}\n\n\t// We can move both next actions out of loop, because remaining actions in loop won't have\n\t// any/visible effect on parts we add here. Close the styling before a linebreak and reopen\n\t// after next line to fix a bleed issue on macOS: https://github.com/chalk/chalk/pull/92\n\tconst lfIndex = string.indexOf('\\n');\n\tif (lfIndex !== -1) {\n\t\tstring = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);\n\t}\n\n\treturn openAll + string + closeAll;\n};\n\nlet template;\nconst chalkTag = (chalk, ...strings) => {\n\tconst [firstString] = strings;\n\n\tif (!isArray(firstString) || !isArray(firstString.raw)) {\n\t\t// If chalk() was called by itself or with a string,\n\t\t// return the string itself as a string.\n\t\treturn strings.join(' ');\n\t}\n\n\tconst arguments_ = strings.slice(1);\n\tconst parts = [firstString.raw[0]];\n\n\tfor (let i = 1; i < firstString.length; i++) {\n\t\tparts.push(\n\t\t\tString(arguments_[i - 1]).replace(/[{}\\\\]/g, '\\\\$&'),\n\t\t\tString(firstString.raw[i])\n\t\t);\n\t}\n\n\tif (template === undefined) {\n\t\ttemplate = require('./templates');\n\t}\n\n\treturn template(chalk, parts.join(''));\n};\n\nObject.defineProperties(Chalk.prototype, styles);\n\nconst chalk = Chalk(); // eslint-disable-line new-cap\nchalk.supportsColor = stdoutColor;\nchalk.stderr = Chalk({level: stderrColor ? stderrColor.level : 0}); // eslint-disable-line new-cap\nchalk.stderr.supportsColor = stderrColor;\n\nmodule.exports = chalk;\n","// Generated file. Do not edit\nexport var StatusCodes;\n(function (StatusCodes) {\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.2.1\n *\n * This interim response indicates that everything so far is OK and that the client should continue with the request or ignore it if it is already finished.\n */\n StatusCodes[StatusCodes[\"CONTINUE\"] = 100] = \"CONTINUE\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.2.2\n *\n * This code is sent in response to an Upgrade request header by the client, and indicates the protocol the server is switching too.\n */\n StatusCodes[StatusCodes[\"SWITCHING_PROTOCOLS\"] = 101] = \"SWITCHING_PROTOCOLS\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2518#section-10.1\n *\n * This code indicates that the server has received and is processing the request, but no response is available yet.\n */\n StatusCodes[StatusCodes[\"PROCESSING\"] = 102] = \"PROCESSING\";\n /**\n * Official Documentation @ https://www.rfc-editor.org/rfc/rfc8297#page-3\n *\n * This code indicates to the client that the server is likely to send a final response with the header fields included in the informational response.\n */\n StatusCodes[StatusCodes[\"EARLY_HINTS\"] = 103] = \"EARLY_HINTS\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.3.1\n *\n * The request has succeeded. The meaning of a success varies depending on the HTTP method:\n * GET: The resource has been fetched and is transmitted in the message body.\n * HEAD: The entity headers are in the message body.\n * POST: The resource describing the result of the action is transmitted in the message body.\n * TRACE: The message body contains the request message as received by the server\n */\n StatusCodes[StatusCodes[\"OK\"] = 200] = \"OK\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.3.2\n *\n * The request has succeeded and a new resource has been created as a result of it. This is typically the response sent after a PUT request.\n */\n StatusCodes[StatusCodes[\"CREATED\"] = 201] = \"CREATED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.3.3\n *\n * The request has been received but not yet acted upon. It is non-committal, meaning that there is no way in HTTP to later send an asynchronous response indicating the outcome of processing the request. It is intended for cases where another process or server handles the request, or for batch processing.\n */\n StatusCodes[StatusCodes[\"ACCEPTED\"] = 202] = \"ACCEPTED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.3.4\n *\n * This response code means returned meta-information set is not exact set as available from the origin server, but collected from a local or a third party copy. Except this condition, 200 OK response should be preferred instead of this response.\n */\n StatusCodes[StatusCodes[\"NON_AUTHORITATIVE_INFORMATION\"] = 203] = \"NON_AUTHORITATIVE_INFORMATION\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.3.5\n *\n * There is no content to send for this request, but the headers may be useful. The user-agent may update its cached headers for this resource with the new ones.\n */\n StatusCodes[StatusCodes[\"NO_CONTENT\"] = 204] = \"NO_CONTENT\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.3.6\n *\n * This response code is sent after accomplishing request to tell user agent reset document view which sent this request.\n */\n StatusCodes[StatusCodes[\"RESET_CONTENT\"] = 205] = \"RESET_CONTENT\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7233#section-4.1\n *\n * This response code is used because of range header sent by the client to separate download into multiple streams.\n */\n StatusCodes[StatusCodes[\"PARTIAL_CONTENT\"] = 206] = \"PARTIAL_CONTENT\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2518#section-10.2\n *\n * A Multi-Status response conveys information about multiple resources in situations where multiple status codes might be appropriate.\n */\n StatusCodes[StatusCodes[\"MULTI_STATUS\"] = 207] = \"MULTI_STATUS\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.4.1\n *\n * The request has more than one possible responses. User-agent or user should choose one of them. There is no standardized way to choose one of the responses.\n */\n StatusCodes[StatusCodes[\"MULTIPLE_CHOICES\"] = 300] = \"MULTIPLE_CHOICES\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.4.2\n *\n * This response code means that URI of requested resource has been changed. Probably, new URI would be given in the response.\n */\n StatusCodes[StatusCodes[\"MOVED_PERMANENTLY\"] = 301] = \"MOVED_PERMANENTLY\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.4.3\n *\n * This response code means that URI of requested resource has been changed temporarily. New changes in the URI might be made in the future. Therefore, this same URI should be used by the client in future requests.\n */\n StatusCodes[StatusCodes[\"MOVED_TEMPORARILY\"] = 302] = \"MOVED_TEMPORARILY\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.4.4\n *\n * Server sent this response to directing client to get requested resource to another URI with an GET request.\n */\n StatusCodes[StatusCodes[\"SEE_OTHER\"] = 303] = \"SEE_OTHER\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7232#section-4.1\n *\n * This is used for caching purposes. It is telling to client that response has not been modified. So, client can continue to use same cached version of response.\n */\n StatusCodes[StatusCodes[\"NOT_MODIFIED\"] = 304] = \"NOT_MODIFIED\";\n /**\n * @deprecated\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.4.6\n *\n * Was defined in a previous version of the HTTP specification to indicate that a requested response must be accessed by a proxy. It has been deprecated due to security concerns regarding in-band configuration of a proxy.\n */\n StatusCodes[StatusCodes[\"USE_PROXY\"] = 305] = \"USE_PROXY\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.4.7\n *\n * Server sent this response to directing client to get requested resource to another URI with same method that used prior request. This has the same semantic than the 302 Found HTTP response code, with the exception that the user agent must not change the HTTP method used: if a POST was used in the first request, a POST must be used in the second request.\n */\n StatusCodes[StatusCodes[\"TEMPORARY_REDIRECT\"] = 307] = \"TEMPORARY_REDIRECT\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7538#section-3\n *\n * This means that the resource is now permanently located at another URI, specified by the Location: HTTP Response header. This has the same semantics as the 301 Moved Permanently HTTP response code, with the exception that the user agent must not change the HTTP method used: if a POST was used in the first request, a POST must be used in the second request.\n */\n StatusCodes[StatusCodes[\"PERMANENT_REDIRECT\"] = 308] = \"PERMANENT_REDIRECT\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.1\n *\n * This response means that server could not understand the request due to invalid syntax.\n */\n StatusCodes[StatusCodes[\"BAD_REQUEST\"] = 400] = \"BAD_REQUEST\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7235#section-3.1\n *\n * Although the HTTP standard specifies \"unauthorized\", semantically this response means \"unauthenticated\". That is, the client must authenticate itself to get the requested response.\n */\n StatusCodes[StatusCodes[\"UNAUTHORIZED\"] = 401] = \"UNAUTHORIZED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.2\n *\n * This response code is reserved for future use. Initial aim for creating this code was using it for digital payment systems however this is not used currently.\n */\n StatusCodes[StatusCodes[\"PAYMENT_REQUIRED\"] = 402] = \"PAYMENT_REQUIRED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.3\n *\n * The client does not have access rights to the content, i.e. they are unauthorized, so server is rejecting to give proper response. Unlike 401, the client's identity is known to the server.\n */\n StatusCodes[StatusCodes[\"FORBIDDEN\"] = 403] = \"FORBIDDEN\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.4\n *\n * The server can not find requested resource. In the browser, this means the URL is not recognized. In an API, this can also mean that the endpoint is valid but the resource itself does not exist. Servers may also send this response instead of 403 to hide the existence of a resource from an unauthorized client. This response code is probably the most famous one due to its frequent occurence on the web.\n */\n StatusCodes[StatusCodes[\"NOT_FOUND\"] = 404] = \"NOT_FOUND\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.5\n *\n * The request method is known by the server but has been disabled and cannot be used. For example, an API may forbid DELETE-ing a resource. The two mandatory methods, GET and HEAD, must never be disabled and should not return this error code.\n */\n StatusCodes[StatusCodes[\"METHOD_NOT_ALLOWED\"] = 405] = \"METHOD_NOT_ALLOWED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.6\n *\n * This response is sent when the web server, after performing server-driven content negotiation, doesn't find any content following the criteria given by the user agent.\n */\n StatusCodes[StatusCodes[\"NOT_ACCEPTABLE\"] = 406] = \"NOT_ACCEPTABLE\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7235#section-3.2\n *\n * This is similar to 401 but authentication is needed to be done by a proxy.\n */\n StatusCodes[StatusCodes[\"PROXY_AUTHENTICATION_REQUIRED\"] = 407] = \"PROXY_AUTHENTICATION_REQUIRED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.7\n *\n * This response is sent on an idle connection by some servers, even without any previous request by the client. It means that the server would like to shut down this unused connection. This response is used much more since some browsers, like Chrome, Firefox 27+, or IE9, use HTTP pre-connection mechanisms to speed up surfing. Also note that some servers merely shut down the connection without sending this message.\n */\n StatusCodes[StatusCodes[\"REQUEST_TIMEOUT\"] = 408] = \"REQUEST_TIMEOUT\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.8\n *\n * This response is sent when a request conflicts with the current state of the server.\n */\n StatusCodes[StatusCodes[\"CONFLICT\"] = 409] = \"CONFLICT\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.9\n *\n * This response would be sent when the requested content has been permenantly deleted from server, with no forwarding address. Clients are expected to remove their caches and links to the resource. The HTTP specification intends this status code to be used for \"limited-time, promotional services\". APIs should not feel compelled to indicate resources that have been deleted with this status code.\n */\n StatusCodes[StatusCodes[\"GONE\"] = 410] = \"GONE\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.10\n *\n * The server rejected the request because the Content-Length header field is not defined and the server requires it.\n */\n StatusCodes[StatusCodes[\"LENGTH_REQUIRED\"] = 411] = \"LENGTH_REQUIRED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7232#section-4.2\n *\n * The client has indicated preconditions in its headers which the server does not meet.\n */\n StatusCodes[StatusCodes[\"PRECONDITION_FAILED\"] = 412] = \"PRECONDITION_FAILED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.11\n *\n * Request entity is larger than limits defined by server; the server might close the connection or return an Retry-After header field.\n */\n StatusCodes[StatusCodes[\"REQUEST_TOO_LONG\"] = 413] = \"REQUEST_TOO_LONG\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.12\n *\n * The URI requested by the client is longer than the server is willing to interpret.\n */\n StatusCodes[StatusCodes[\"REQUEST_URI_TOO_LONG\"] = 414] = \"REQUEST_URI_TOO_LONG\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.13\n *\n * The media format of the requested data is not supported by the server, so the server is rejecting the request.\n */\n StatusCodes[StatusCodes[\"UNSUPPORTED_MEDIA_TYPE\"] = 415] = \"UNSUPPORTED_MEDIA_TYPE\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7233#section-4.4\n *\n * The range specified by the Range header field in the request can't be fulfilled; it's possible that the range is outside the size of the target URI's data.\n */\n StatusCodes[StatusCodes[\"REQUESTED_RANGE_NOT_SATISFIABLE\"] = 416] = \"REQUESTED_RANGE_NOT_SATISFIABLE\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.14\n *\n * This response code means the expectation indicated by the Expect request header field can't be met by the server.\n */\n StatusCodes[StatusCodes[\"EXPECTATION_FAILED\"] = 417] = \"EXPECTATION_FAILED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2324#section-2.3.2\n *\n * Any attempt to brew coffee with a teapot should result in the error code \"418 I'm a teapot\". The resulting entity body MAY be short and stout.\n */\n StatusCodes[StatusCodes[\"IM_A_TEAPOT\"] = 418] = \"IM_A_TEAPOT\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2518#section-10.6\n *\n * The 507 (Insufficient Storage) status code means the method could not be performed on the resource because the server is unable to store the representation needed to successfully complete the request. This condition is considered to be temporary. If the request which received this status code was the result of a user action, the request MUST NOT be repeated until it is requested by a separate user action.\n */\n StatusCodes[StatusCodes[\"INSUFFICIENT_SPACE_ON_RESOURCE\"] = 419] = \"INSUFFICIENT_SPACE_ON_RESOURCE\";\n /**\n * @deprecated\n * Official Documentation @ https://tools.ietf.org/rfcdiff?difftype=--hwdiff&url2=draft-ietf-webdav-protocol-06.txt\n *\n * A deprecated response used by the Spring Framework when a method has failed.\n */\n StatusCodes[StatusCodes[\"METHOD_FAILURE\"] = 420] = \"METHOD_FAILURE\";\n /**\n * Official Documentation @ https://datatracker.ietf.org/doc/html/rfc7540#section-9.1.2\n *\n * Defined in the specification of HTTP/2 to indicate that a server is not able to produce a response for the combination of scheme and authority that are included in the request URI.\n */\n StatusCodes[StatusCodes[\"MISDIRECTED_REQUEST\"] = 421] = \"MISDIRECTED_REQUEST\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2518#section-10.3\n *\n * The request was well-formed but was unable to be followed due to semantic errors.\n */\n StatusCodes[StatusCodes[\"UNPROCESSABLE_ENTITY\"] = 422] = \"UNPROCESSABLE_ENTITY\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2518#section-10.4\n *\n * The resource that is being accessed is locked.\n */\n StatusCodes[StatusCodes[\"LOCKED\"] = 423] = \"LOCKED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2518#section-10.5\n *\n * The request failed due to failure of a previous request.\n */\n StatusCodes[StatusCodes[\"FAILED_DEPENDENCY\"] = 424] = \"FAILED_DEPENDENCY\";\n /**\n * Official Documentation @ https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.15\n *\n * The server refuses to perform the request using the current protocol but might be willing to do so after the client upgrades to a different protocol.\n */\n StatusCodes[StatusCodes[\"UPGRADE_REQUIRED\"] = 426] = \"UPGRADE_REQUIRED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc6585#section-3\n *\n * The origin server requires the request to be conditional. Intended to prevent the 'lost update' problem, where a client GETs a resource's state, modifies it, and PUTs it back to the server, when meanwhile a third party has modified the state on the server, leading to a conflict.\n */\n StatusCodes[StatusCodes[\"PRECONDITION_REQUIRED\"] = 428] = \"PRECONDITION_REQUIRED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc6585#section-4\n *\n * The user has sent too many requests in a given amount of time (\"rate limiting\").\n */\n StatusCodes[StatusCodes[\"TOO_MANY_REQUESTS\"] = 429] = \"TOO_MANY_REQUESTS\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc6585#section-5\n *\n * The server is unwilling to process the request because its header fields are too large. The request MAY be resubmitted after reducing the size of the request header fields.\n */\n StatusCodes[StatusCodes[\"REQUEST_HEADER_FIELDS_TOO_LARGE\"] = 431] = \"REQUEST_HEADER_FIELDS_TOO_LARGE\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7725\n *\n * The user-agent requested a resource that cannot legally be provided, such as a web page censored by a government.\n */\n StatusCodes[StatusCodes[\"UNAVAILABLE_FOR_LEGAL_REASONS\"] = 451] = \"UNAVAILABLE_FOR_LEGAL_REASONS\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.6.1\n *\n * The server encountered an unexpected condition that prevented it from fulfilling the request.\n */\n StatusCodes[StatusCodes[\"INTERNAL_SERVER_ERROR\"] = 500] = \"INTERNAL_SERVER_ERROR\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.6.2\n *\n * The request method is not supported by the server and cannot be handled. The only methods that servers are required to support (and therefore that must not return this code) are GET and HEAD.\n */\n StatusCodes[StatusCodes[\"NOT_IMPLEMENTED\"] = 501] = \"NOT_IMPLEMENTED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.6.3\n *\n * This error response means that the server, while working as a gateway to get a response needed to handle the request, got an invalid response.\n */\n StatusCodes[StatusCodes[\"BAD_GATEWAY\"] = 502] = \"BAD_GATEWAY\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.6.4\n *\n * The server is not ready to handle the request. Common causes are a server that is down for maintenance or that is overloaded. Note that together with this response, a user-friendly page explaining the problem should be sent. This responses should be used for temporary conditions and the Retry-After: HTTP header should, if possible, contain the estimated time before the recovery of the service. The webmaster must also take care about the caching-related headers that are sent along with this response, as these temporary condition responses should usually not be cached.\n */\n StatusCodes[StatusCodes[\"SERVICE_UNAVAILABLE\"] = 503] = \"SERVICE_UNAVAILABLE\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.6.5\n *\n * This error response is given when the server is acting as a gateway and cannot get a response in time.\n */\n StatusCodes[StatusCodes[\"GATEWAY_TIMEOUT\"] = 504] = \"GATEWAY_TIMEOUT\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.6.6\n *\n * The HTTP version used in the request is not supported by the server.\n */\n StatusCodes[StatusCodes[\"HTTP_VERSION_NOT_SUPPORTED\"] = 505] = \"HTTP_VERSION_NOT_SUPPORTED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2518#section-10.6\n *\n * The server has an internal configuration error: the chosen variant resource is configured to engage in transparent content negotiation itself, and is therefore not a proper end point in the negotiation process.\n */\n StatusCodes[StatusCodes[\"INSUFFICIENT_STORAGE\"] = 507] = \"INSUFFICIENT_STORAGE\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc6585#section-6\n *\n * The 511 status code indicates that the client needs to authenticate to gain network access.\n */\n StatusCodes[StatusCodes[\"NETWORK_AUTHENTICATION_REQUIRED\"] = 511] = \"NETWORK_AUTHENTICATION_REQUIRED\";\n})(StatusCodes || (StatusCodes = {}));\n","export default {}","const fs = require('fs')\nconst path = require('path')\nconst os = require('os')\nconst crypto = require('crypto')\nconst packageJson = require('../package.json')\n\nconst version = packageJson.version\n\nconst LINE = /(?:^|^)\\s*(?:export\\s+)?([\\w.-]+)(?:\\s*=\\s*?|:\\s+?)(\\s*'(?:\\\\'|[^'])*'|\\s*\"(?:\\\\\"|[^\"])*\"|\\s*`(?:\\\\`|[^`])*`|[^#\\r\\n]+)?\\s*(?:#.*)?(?:$|$)/mg\n\n// Parse src into an Object\nfunction parse (src) {\n const obj = {}\n\n // Convert buffer to string\n let lines = src.toString()\n\n // Convert line breaks to same format\n lines = lines.replace(/\\r\\n?/mg, '\\n')\n\n let match\n while ((match = LINE.exec(lines)) != null) {\n const key = match[1]\n\n // Default undefined or null to empty string\n let value = (match[2] || '')\n\n // Remove whitespace\n value = value.trim()\n\n // Check if double quoted\n const maybeQuote = value[0]\n\n // Remove surrounding quotes\n value = value.replace(/^(['\"`])([\\s\\S]*)\\1$/mg, '$2')\n\n // Expand newlines if double quoted\n if (maybeQuote === '\"') {\n value = value.replace(/\\\\n/g, '\\n')\n value = value.replace(/\\\\r/g, '\\r')\n }\n\n // Add to object\n obj[key] = value\n }\n\n return obj\n}\n\nfunction _parseVault (options) {\n const vaultPath = _vaultPath(options)\n\n // Parse .env.vault\n const result = DotenvModule.configDotenv({ path: vaultPath })\n if (!result.parsed) {\n const err = new Error(`MISSING_DATA: Cannot parse ${vaultPath} for an unknown reason`)\n err.code = 'MISSING_DATA'\n throw err\n }\n\n // handle scenario for comma separated keys - for use with key rotation\n // example: DOTENV_KEY=\"dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=prod,dotenv://:key_7890@dotenvx.com/vault/.env.vault?environment=prod\"\n const keys = _dotenvKey(options).split(',')\n const length = keys.length\n\n let decrypted\n for (let i = 0; i < length; i++) {\n try {\n // Get full key\n const key = keys[i].trim()\n\n // Get instructions for decrypt\n const attrs = _instructions(result, key)\n\n // Decrypt\n decrypted = DotenvModule.decrypt(attrs.ciphertext, attrs.key)\n\n break\n } catch (error) {\n // last key\n if (i + 1 >= length) {\n throw error\n }\n // try next key\n }\n }\n\n // Parse decrypted .env string\n return DotenvModule.parse(decrypted)\n}\n\nfunction _log (message) {\n console.log(`[dotenv@${version}][INFO] ${message}`)\n}\n\nfunction _warn (message) {\n console.log(`[dotenv@${version}][WARN] ${message}`)\n}\n\nfunction _debug (message) {\n console.log(`[dotenv@${version}][DEBUG] ${message}`)\n}\n\nfunction _dotenvKey (options) {\n // prioritize developer directly setting options.DOTENV_KEY\n if (options && options.DOTENV_KEY && options.DOTENV_KEY.length > 0) {\n return options.DOTENV_KEY\n }\n\n // secondary infra already contains a DOTENV_KEY environment variable\n if (process.env.DOTENV_KEY && process.env.DOTENV_KEY.length > 0) {\n return process.env.DOTENV_KEY\n }\n\n // fallback to empty string\n return ''\n}\n\nfunction _instructions (result, dotenvKey) {\n // Parse DOTENV_KEY. Format is a URI\n let uri\n try {\n uri = new URL(dotenvKey)\n } catch (error) {\n if (error.code === 'ERR_INVALID_URL') {\n const err = new Error('INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n }\n\n throw error\n }\n\n // Get decrypt key\n const key = uri.password\n if (!key) {\n const err = new Error('INVALID_DOTENV_KEY: Missing key part')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n }\n\n // Get environment\n const environment = uri.searchParams.get('environment')\n if (!environment) {\n const err = new Error('INVALID_DOTENV_KEY: Missing environment part')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n }\n\n // Get ciphertext payload\n const environmentKey = `DOTENV_VAULT_${environment.toUpperCase()}`\n const ciphertext = result.parsed[environmentKey] // DOTENV_VAULT_PRODUCTION\n if (!ciphertext) {\n const err = new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${environmentKey} in your .env.vault file.`)\n err.code = 'NOT_FOUND_DOTENV_ENVIRONMENT'\n throw err\n }\n\n return { ciphertext, key }\n}\n\nfunction _vaultPath (options) {\n let possibleVaultPath = null\n\n if (options && options.path && options.path.length > 0) {\n if (Array.isArray(options.path)) {\n for (const filepath of options.path) {\n if (fs.existsSync(filepath)) {\n possibleVaultPath = filepath.endsWith('.vault') ? filepath : `${filepath}.vault`\n }\n }\n } else {\n possibleVaultPath = options.path.endsWith('.vault') ? options.path : `${options.path}.vault`\n }\n } else {\n possibleVaultPath = path.resolve(process.cwd(), '.env.vault')\n }\n\n if (fs.existsSync(possibleVaultPath)) {\n return possibleVaultPath\n }\n\n return null\n}\n\nfunction _resolveHome (envPath) {\n return envPath[0] === '~' ? path.join(os.homedir(), envPath.slice(1)) : envPath\n}\n\nfunction _configVault (options) {\n _log('Loading env from encrypted .env.vault')\n\n const parsed = DotenvModule._parseVault(options)\n\n let processEnv = process.env\n if (options && options.processEnv != null) {\n processEnv = options.processEnv\n }\n\n DotenvModule.populate(processEnv, parsed, options)\n\n return { parsed }\n}\n\nfunction configDotenv (options) {\n const dotenvPath = path.resolve(process.cwd(), '.env')\n let encoding = 'utf8'\n const debug = Boolean(options && options.debug)\n\n if (options && options.encoding) {\n encoding = options.encoding\n } else {\n if (debug) {\n _debug('No encoding is specified. UTF-8 is used by default')\n }\n }\n\n let optionPaths = [dotenvPath] // default, look for .env\n if (options && options.path) {\n if (!Array.isArray(options.path)) {\n optionPaths = [_resolveHome(options.path)]\n } else {\n optionPaths = [] // reset default\n for (const filepath of options.path) {\n optionPaths.push(_resolveHome(filepath))\n }\n }\n }\n\n // Build the parsed data in a temporary object (because we need to return it). Once we have the final\n // parsed data, we will combine it with process.env (or options.processEnv if provided).\n let lastError\n const parsedAll = {}\n for (const path of optionPaths) {\n try {\n // Specifying an encoding returns a string instead of a buffer\n const parsed = DotenvModule.parse(fs.readFileSync(path, { encoding }))\n\n DotenvModule.populate(parsedAll, parsed, options)\n } catch (e) {\n if (debug) {\n _debug(`Failed to load ${path} ${e.message}`)\n }\n lastError = e\n }\n }\n\n let processEnv = process.env\n if (options && options.processEnv != null) {\n processEnv = options.processEnv\n }\n\n DotenvModule.populate(processEnv, parsedAll, options)\n\n if (lastError) {\n return { parsed: parsedAll, error: lastError }\n } else {\n return { parsed: parsedAll }\n }\n}\n\n// Populates process.env from .env file\nfunction config (options) {\n // fallback to original dotenv if DOTENV_KEY is not set\n if (_dotenvKey(options).length === 0) {\n return DotenvModule.configDotenv(options)\n }\n\n const vaultPath = _vaultPath(options)\n\n // dotenvKey exists but .env.vault file does not exist\n if (!vaultPath) {\n _warn(`You set DOTENV_KEY but you are missing a .env.vault file at ${vaultPath}. Did you forget to build it?`)\n\n return DotenvModule.configDotenv(options)\n }\n\n return DotenvModule._configVault(options)\n}\n\nfunction decrypt (encrypted, keyStr) {\n const key = Buffer.from(keyStr.slice(-64), 'hex')\n let ciphertext = Buffer.from(encrypted, 'base64')\n\n const nonce = ciphertext.subarray(0, 12)\n const authTag = ciphertext.subarray(-16)\n ciphertext = ciphertext.subarray(12, -16)\n\n try {\n const aesgcm = crypto.createDecipheriv('aes-256-gcm', key, nonce)\n aesgcm.setAuthTag(authTag)\n return `${aesgcm.update(ciphertext)}${aesgcm.final()}`\n } catch (error) {\n const isRange = error instanceof RangeError\n const invalidKeyLength = error.message === 'Invalid key length'\n const decryptionFailed = error.message === 'Unsupported state or unable to authenticate data'\n\n if (isRange || invalidKeyLength) {\n const err = new Error('INVALID_DOTENV_KEY: It must be 64 characters long (or more)')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n } else if (decryptionFailed) {\n const err = new Error('DECRYPTION_FAILED: Please check your DOTENV_KEY')\n err.code = 'DECRYPTION_FAILED'\n throw err\n } else {\n throw error\n }\n }\n}\n\n// Populate process.env with parsed values\nfunction populate (processEnv, parsed, options = {}) {\n const debug = Boolean(options && options.debug)\n const override = Boolean(options && options.override)\n\n if (typeof parsed !== 'object') {\n const err = new Error('OBJECT_REQUIRED: Please check the processEnv argument being passed to populate')\n err.code = 'OBJECT_REQUIRED'\n throw err\n }\n\n // Set process.env\n for (const key of Object.keys(parsed)) {\n if (Object.prototype.hasOwnProperty.call(processEnv, key)) {\n if (override === true) {\n processEnv[key] = parsed[key]\n }\n\n if (debug) {\n if (override === true) {\n _debug(`\"${key}\" is already defined and WAS overwritten`)\n } else {\n _debug(`\"${key}\" is already defined and was NOT overwritten`)\n }\n }\n } else {\n processEnv[key] = parsed[key]\n }\n }\n}\n\nconst DotenvModule = {\n configDotenv,\n _configVault,\n _parseVault,\n config,\n decrypt,\n parse,\n populate\n}\n\nmodule.exports.configDotenv = DotenvModule.configDotenv\nmodule.exports._configVault = DotenvModule._configVault\nmodule.exports._parseVault = DotenvModule._parseVault\nmodule.exports.config = DotenvModule.config\nmodule.exports.decrypt = DotenvModule.decrypt\nmodule.exports.parse = DotenvModule.parse\nmodule.exports.populate = DotenvModule.populate\n\nmodule.exports = DotenvModule\n","var __typeError = (msg) => {\n throw TypeError(msg);\n};\nvar __accessCheck = (obj, member, msg) => member.has(obj) || __typeError(\"Cannot \" + msg);\nvar __privateGet = (obj, member, getter) => (__accessCheck(obj, member, \"read from private field\"), getter ? getter.call(obj) : member.get(obj));\nvar __privateAdd = (obj, member, value) => member.has(obj) ? __typeError(\"Cannot add the same private member more than once\") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\nvar __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, \"write to private field\"), setter ? setter.call(obj, value) : member.set(obj, value), value);\nvar __privateWrapper = (obj, member, setter, getter) => ({\n set _(value) {\n __privateSet(obj, member, value, setter);\n },\n get _() {\n return __privateGet(obj, member, getter);\n }\n});\nvar _options, _httpAgent, _httpsAgent, _agentResetInterval, _requestCount, _SetupResetInterval, _GetAgentOptions, _url, _method, _headers, _data, _agentManager, _timeout;\nimport * as fs from \"node:fs\";\nimport * as dotenv from \"dotenv\";\nimport http from \"node:http\";\nimport https from \"node:https\";\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x[\"default\"] : x;\n}\nvar ansiStyles$1 = { exports: {} };\nvar colorName;\nvar hasRequiredColorName;\nfunction requireColorName() {\n if (hasRequiredColorName) return colorName;\n hasRequiredColorName = 1;\n colorName = {\n \"aliceblue\": [240, 248, 255],\n \"antiquewhite\": [250, 235, 215],\n \"aqua\": [0, 255, 255],\n \"aquamarine\": [127, 255, 212],\n \"azure\": [240, 255, 255],\n \"beige\": [245, 245, 220],\n \"bisque\": [255, 228, 196],\n \"black\": [0, 0, 0],\n \"blanchedalmond\": [255, 235, 205],\n \"blue\": [0, 0, 255],\n \"blueviolet\": [138, 43, 226],\n \"brown\": [165, 42, 42],\n \"burlywood\": [222, 184, 135],\n \"cadetblue\": [95, 158, 160],\n \"chartreuse\": [127, 255, 0],\n \"chocolate\": [210, 105, 30],\n \"coral\": [255, 127, 80],\n \"cornflowerblue\": [100, 149, 237],\n \"cornsilk\": [255, 248, 220],\n \"crimson\": [220, 20, 60],\n \"cyan\": [0, 255, 255],\n \"darkblue\": [0, 0, 139],\n \"darkcyan\": [0, 139, 139],\n \"darkgoldenrod\": [184, 134, 11],\n \"darkgray\": [169, 169, 169],\n \"darkgreen\": [0, 100, 0],\n \"darkgrey\": [169, 169, 169],\n \"darkkhaki\": [189, 183, 107],\n \"darkmagenta\": [139, 0, 139],\n \"darkolivegreen\": [85, 107, 47],\n \"darkorange\": [255, 140, 0],\n \"darkorchid\": [153, 50, 204],\n \"darkred\": [139, 0, 0],\n \"darksalmon\": [233, 150, 122],\n \"darkseagreen\": [143, 188, 143],\n \"darkslateblue\": [72, 61, 139],\n \"darkslategray\": [47, 79, 79],\n \"darkslategrey\": [47, 79, 79],\n \"darkturquoise\": [0, 206, 209],\n \"darkviolet\": [148, 0, 211],\n \"deeppink\": [255, 20, 147],\n \"deepskyblue\": [0, 191, 255],\n \"dimgray\": [105, 105, 105],\n \"dimgrey\": [105, 105, 105],\n \"dodgerblue\": [30, 144, 255],\n \"firebrick\": [178, 34, 34],\n \"floralwhite\": [255, 250, 240],\n \"forestgreen\": [34, 139, 34],\n \"fuchsia\": [255, 0, 255],\n \"gainsboro\": [220, 220, 220],\n \"ghostwhite\": [248, 248, 255],\n \"gold\": [255, 215, 0],\n \"goldenrod\": [218, 165, 32],\n \"gray\": [128, 128, 128],\n \"green\": [0, 128, 0],\n \"greenyellow\": [173, 255, 47],\n \"grey\": [128, 128, 128],\n \"honeydew\": [240, 255, 240],\n \"hotpink\": [255, 105, 180],\n \"indianred\": [205, 92, 92],\n \"indigo\": [75, 0, 130],\n \"ivory\": [255, 255, 240],\n \"khaki\": [240, 230, 140],\n \"lavender\": [230, 230, 250],\n \"lavenderblush\": [255, 240, 245],\n \"lawngreen\": [124, 252, 0],\n \"lemonchiffon\": [255, 250, 205],\n \"lightblue\": [173, 216, 230],\n \"lightcoral\": [240, 128, 128],\n \"lightcyan\": [224, 255, 255],\n \"lightgoldenrodyellow\": [250, 250, 210],\n \"lightgray\": [211, 211, 211],\n \"lightgreen\": [144, 238, 144],\n \"lightgrey\": [211, 211, 211],\n \"lightpink\": [255, 182, 193],\n \"lightsalmon\": [255, 160, 122],\n \"lightseagreen\": [32, 178, 170],\n \"lightskyblue\": [135, 206, 250],\n \"lightslategray\": [119, 136, 153],\n \"lightslategrey\": [119, 136, 153],\n \"lightsteelblue\": [176, 196, 222],\n \"lightyellow\": [255, 255, 224],\n \"lime\": [0, 255, 0],\n \"limegreen\": [50, 205, 50],\n \"linen\": [250, 240, 230],\n \"magenta\": [255, 0, 255],\n \"maroon\": [128, 0, 0],\n \"mediumaquamarine\": [102, 205, 170],\n \"mediumblue\": [0, 0, 205],\n \"mediumorchid\": [186, 85, 211],\n \"mediumpurple\": [147, 112, 219],\n \"mediumseagreen\": [60, 179, 113],\n \"mediumslateblue\": [123, 104, 238],\n \"mediumspringgreen\": [0, 250, 154],\n \"mediumturquoise\": [72, 209, 204],\n \"mediumvioletred\": [199, 21, 133],\n \"midnightblue\": [25, 25, 112],\n \"mintcream\": [245, 255, 250],\n \"mistyrose\": [255, 228, 225],\n \"moccasin\": [255, 228, 181],\n \"navajowhite\": [255, 222, 173],\n \"navy\": [0, 0, 128],\n \"oldlace\": [253, 245, 230],\n \"olive\": [128, 128, 0],\n \"olivedrab\": [107, 142, 35],\n \"orange\": [255, 165, 0],\n \"orangered\": [255, 69, 0],\n \"orchid\": [218, 112, 214],\n \"palegoldenrod\": [238, 232, 170],\n \"palegreen\": [152, 251, 152],\n \"paleturquoise\": [175, 238, 238],\n \"palevioletred\": [219, 112, 147],\n \"papayawhip\": [255, 239, 213],\n \"peachpuff\": [255, 218, 185],\n \"peru\": [205, 133, 63],\n \"pink\": [255, 192, 203],\n \"plum\": [221, 160, 221],\n \"powderblue\": [176, 224, 230],\n \"purple\": [128, 0, 128],\n \"rebeccapurple\": [102, 51, 153],\n \"red\": [255, 0, 0],\n \"rosybrown\": [188, 143, 143],\n \"royalblue\": [65, 105, 225],\n \"saddlebrown\": [139, 69, 19],\n \"salmon\": [250, 128, 114],\n \"sandybrown\": [244, 164, 96],\n \"seagreen\": [46, 139, 87],\n \"seashell\": [255, 245, 238],\n \"sienna\": [160, 82, 45],\n \"silver\": [192, 192, 192],\n \"skyblue\": [135, 206, 235],\n \"slateblue\": [106, 90, 205],\n \"slategray\": [112, 128, 144],\n \"slategrey\": [112, 128, 144],\n \"snow\": [255, 250, 250],\n \"springgreen\": [0, 255, 127],\n \"steelblue\": [70, 130, 180],\n \"tan\": [210, 180, 140],\n \"teal\": [0, 128, 128],\n \"thistle\": [216, 191, 216],\n \"tomato\": [255, 99, 71],\n \"turquoise\": [64, 224, 208],\n \"violet\": [238, 130, 238],\n \"wheat\": [245, 222, 179],\n \"white\": [255, 255, 255],\n \"whitesmoke\": [245, 245, 245],\n \"yellow\": [255, 255, 0],\n \"yellowgreen\": [154, 205, 50]\n };\n return colorName;\n}\nvar conversions;\nvar hasRequiredConversions;\nfunction requireConversions() {\n if (hasRequiredConversions) return conversions;\n hasRequiredConversions = 1;\n const cssKeywords = requireColorName();\n const reverseKeywords = {};\n for (const key of Object.keys(cssKeywords)) {\n reverseKeywords[cssKeywords[key]] = key;\n }\n const convert = {\n rgb: { channels: 3, labels: \"rgb\" },\n hsl: { channels: 3, labels: \"hsl\" },\n hsv: { channels: 3, labels: \"hsv\" },\n hwb: { channels: 3, labels: \"hwb\" },\n cmyk: { channels: 4, labels: \"cmyk\" },\n xyz: { channels: 3, labels: \"xyz\" },\n lab: { channels: 3, labels: \"lab\" },\n lch: { channels: 3, labels: \"lch\" },\n hex: { channels: 1, labels: [\"hex\"] },\n keyword: { channels: 1, labels: [\"keyword\"] },\n ansi16: { channels: 1, labels: [\"ansi16\"] },\n ansi256: { channels: 1, labels: [\"ansi256\"] },\n hcg: { channels: 3, labels: [\"h\", \"c\", \"g\"] },\n apple: { channels: 3, labels: [\"r16\", \"g16\", \"b16\"] },\n gray: { channels: 1, labels: [\"gray\"] }\n };\n conversions = convert;\n for (const model of Object.keys(convert)) {\n if (!(\"channels\" in convert[model])) {\n throw new Error(\"missing channels property: \" + model);\n }\n if (!(\"labels\" in convert[model])) {\n throw new Error(\"missing channel labels property: \" + model);\n }\n if (convert[model].labels.length !== convert[model].channels) {\n throw new Error(\"channel and label counts mismatch: \" + model);\n }\n const { channels, labels } = convert[model];\n delete convert[model].channels;\n delete convert[model].labels;\n Object.defineProperty(convert[model], \"channels\", { value: channels });\n Object.defineProperty(convert[model], \"labels\", { value: labels });\n }\n convert.rgb.hsl = function(rgb) {\n const r = rgb[0] / 255;\n const g = rgb[1] / 255;\n const b = rgb[2] / 255;\n const min = Math.min(r, g, b);\n const max = Math.max(r, g, b);\n const delta = max - min;\n let h;\n let s;\n if (max === min) {\n h = 0;\n } else if (r === max) {\n h = (g - b) / delta;\n } else if (g === max) {\n h = 2 + (b - r) / delta;\n } else if (b === max) {\n h = 4 + (r - g) / delta;\n }\n h = Math.min(h * 60, 360);\n if (h < 0) {\n h += 360;\n }\n const l = (min + max) / 2;\n if (max === min) {\n s = 0;\n } else if (l <= 0.5) {\n s = delta / (max + min);\n } else {\n s = delta / (2 - max - min);\n }\n return [h, s * 100, l * 100];\n };\n convert.rgb.hsv = function(rgb) {\n let rdif;\n let gdif;\n let bdif;\n let h;\n let s;\n const r = rgb[0] / 255;\n const g = rgb[1] / 255;\n const b = rgb[2] / 255;\n const v = Math.max(r, g, b);\n const diff = v - Math.min(r, g, b);\n const diffc = function(c) {\n return (v - c) / 6 / diff + 1 / 2;\n };\n if (diff === 0) {\n h = 0;\n s = 0;\n } else {\n s = diff / v;\n rdif = diffc(r);\n gdif = diffc(g);\n bdif = diffc(b);\n if (r === v) {\n h = bdif - gdif;\n } else if (g === v) {\n h = 1 / 3 + rdif - bdif;\n } else if (b === v) {\n h = 2 / 3 + gdif - rdif;\n }\n if (h < 0) {\n h += 1;\n } else if (h > 1) {\n h -= 1;\n }\n }\n return [\n h * 360,\n s * 100,\n v * 100\n ];\n };\n convert.rgb.hwb = function(rgb) {\n const r = rgb[0];\n const g = rgb[1];\n let b = rgb[2];\n const h = convert.rgb.hsl(rgb)[0];\n const w = 1 / 255 * Math.min(r, Math.min(g, b));\n b = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n return [h, w * 100, b * 100];\n };\n convert.rgb.cmyk = function(rgb) {\n const r = rgb[0] / 255;\n const g = rgb[1] / 255;\n const b = rgb[2] / 255;\n const k = Math.min(1 - r, 1 - g, 1 - b);\n const c = (1 - r - k) / (1 - k) || 0;\n const m = (1 - g - k) / (1 - k) || 0;\n const y = (1 - b - k) / (1 - k) || 0;\n return [c * 100, m * 100, y * 100, k * 100];\n };\n function comparativeDistance(x, y) {\n return (x[0] - y[0]) ** 2 + (x[1] - y[1]) ** 2 + (x[2] - y[2]) ** 2;\n }\n convert.rgb.keyword = function(rgb) {\n const reversed = reverseKeywords[rgb];\n if (reversed) {\n return reversed;\n }\n let currentClosestDistance = Infinity;\n let currentClosestKeyword;\n for (const keyword of Object.keys(cssKeywords)) {\n const value = cssKeywords[keyword];\n const distance = comparativeDistance(rgb, value);\n if (distance < currentClosestDistance) {\n currentClosestDistance = distance;\n currentClosestKeyword = keyword;\n }\n }\n return currentClosestKeyword;\n };\n convert.keyword.rgb = function(keyword) {\n return cssKeywords[keyword];\n };\n convert.rgb.xyz = function(rgb) {\n let r = rgb[0] / 255;\n let g = rgb[1] / 255;\n let b = rgb[2] / 255;\n r = r > 0.04045 ? ((r + 0.055) / 1.055) ** 2.4 : r / 12.92;\n g = g > 0.04045 ? ((g + 0.055) / 1.055) ** 2.4 : g / 12.92;\n b = b > 0.04045 ? ((b + 0.055) / 1.055) ** 2.4 : b / 12.92;\n const x = r * 0.4124 + g * 0.3576 + b * 0.1805;\n const y = r * 0.2126 + g * 0.7152 + b * 0.0722;\n const z = r * 0.0193 + g * 0.1192 + b * 0.9505;\n return [x * 100, y * 100, z * 100];\n };\n convert.rgb.lab = function(rgb) {\n const xyz = convert.rgb.xyz(rgb);\n let x = xyz[0];\n let y = xyz[1];\n let z = xyz[2];\n x /= 95.047;\n y /= 100;\n z /= 108.883;\n x = x > 8856e-6 ? x ** (1 / 3) : 7.787 * x + 16 / 116;\n y = y > 8856e-6 ? y ** (1 / 3) : 7.787 * y + 16 / 116;\n z = z > 8856e-6 ? z ** (1 / 3) : 7.787 * z + 16 / 116;\n const l = 116 * y - 16;\n const a = 500 * (x - y);\n const b = 200 * (y - z);\n return [l, a, b];\n };\n convert.hsl.rgb = function(hsl) {\n const h = hsl[0] / 360;\n const s = hsl[1] / 100;\n const l = hsl[2] / 100;\n let t2;\n let t3;\n let val;\n if (s === 0) {\n val = l * 255;\n return [val, val, val];\n }\n if (l < 0.5) {\n t2 = l * (1 + s);\n } else {\n t2 = l + s - l * s;\n }\n const t1 = 2 * l - t2;\n const rgb = [0, 0, 0];\n for (let i = 0; i < 3; i++) {\n t3 = h + 1 / 3 * -(i - 1);\n if (t3 < 0) {\n t3++;\n }\n if (t3 > 1) {\n t3--;\n }\n if (6 * t3 < 1) {\n val = t1 + (t2 - t1) * 6 * t3;\n } else if (2 * t3 < 1) {\n val = t2;\n } else if (3 * t3 < 2) {\n val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n } else {\n val = t1;\n }\n rgb[i] = val * 255;\n }\n return rgb;\n };\n convert.hsl.hsv = function(hsl) {\n const h = hsl[0];\n let s = hsl[1] / 100;\n let l = hsl[2] / 100;\n let smin = s;\n const lmin = Math.max(l, 0.01);\n l *= 2;\n s *= l <= 1 ? l : 2 - l;\n smin *= lmin <= 1 ? lmin : 2 - lmin;\n const v = (l + s) / 2;\n const sv = l === 0 ? 2 * smin / (lmin + smin) : 2 * s / (l + s);\n return [h, sv * 100, v * 100];\n };\n convert.hsv.rgb = function(hsv) {\n const h = hsv[0] / 60;\n const s = hsv[1] / 100;\n let v = hsv[2] / 100;\n const hi = Math.floor(h) % 6;\n const f = h - Math.floor(h);\n const p = 255 * v * (1 - s);\n const q = 255 * v * (1 - s * f);\n const t = 255 * v * (1 - s * (1 - f));\n v *= 255;\n switch (hi) {\n case 0:\n return [v, t, p];\n case 1:\n return [q, v, p];\n case 2:\n return [p, v, t];\n case 3:\n return [p, q, v];\n case 4:\n return [t, p, v];\n case 5:\n return [v, p, q];\n }\n };\n convert.hsv.hsl = function(hsv) {\n const h = hsv[0];\n const s = hsv[1] / 100;\n const v = hsv[2] / 100;\n const vmin = Math.max(v, 0.01);\n let sl;\n let l;\n l = (2 - s) * v;\n const lmin = (2 - s) * vmin;\n sl = s * vmin;\n sl /= lmin <= 1 ? lmin : 2 - lmin;\n sl = sl || 0;\n l /= 2;\n return [h, sl * 100, l * 100];\n };\n convert.hwb.rgb = function(hwb) {\n const h = hwb[0] / 360;\n let wh = hwb[1] / 100;\n let bl = hwb[2] / 100;\n const ratio = wh + bl;\n let f;\n if (ratio > 1) {\n wh /= ratio;\n bl /= ratio;\n }\n const i = Math.floor(6 * h);\n const v = 1 - bl;\n f = 6 * h - i;\n if ((i & 1) !== 0) {\n f = 1 - f;\n }\n const n = wh + f * (v - wh);\n let r;\n let g;\n let b;\n switch (i) {\n default:\n case 6:\n case 0:\n r = v;\n g = n;\n b = wh;\n break;\n case 1:\n r = n;\n g = v;\n b = wh;\n break;\n case 2:\n r = wh;\n g = v;\n b = n;\n break;\n case 3:\n r = wh;\n g = n;\n b = v;\n break;\n case 4:\n r = n;\n g = wh;\n b = v;\n break;\n case 5:\n r = v;\n g = wh;\n b = n;\n break;\n }\n return [r * 255, g * 255, b * 255];\n };\n convert.cmyk.rgb = function(cmyk) {\n const c = cmyk[0] / 100;\n const m = cmyk[1] / 100;\n const y = cmyk[2] / 100;\n const k = cmyk[3] / 100;\n const r = 1 - Math.min(1, c * (1 - k) + k);\n const g = 1 - Math.min(1, m * (1 - k) + k);\n const b = 1 - Math.min(1, y * (1 - k) + k);\n return [r * 255, g * 255, b * 255];\n };\n convert.xyz.rgb = function(xyz) {\n const x = xyz[0] / 100;\n const y = xyz[1] / 100;\n const z = xyz[2] / 100;\n let r;\n let g;\n let b;\n r = x * 3.2406 + y * -1.5372 + z * -0.4986;\n g = x * -0.9689 + y * 1.8758 + z * 0.0415;\n b = x * 0.0557 + y * -0.204 + z * 1.057;\n r = r > 31308e-7 ? 1.055 * r ** (1 / 2.4) - 0.055 : r * 12.92;\n g = g > 31308e-7 ? 1.055 * g ** (1 / 2.4) - 0.055 : g * 12.92;\n b = b > 31308e-7 ? 1.055 * b ** (1 / 2.4) - 0.055 : b * 12.92;\n r = Math.min(Math.max(0, r), 1);\n g = Math.min(Math.max(0, g), 1);\n b = Math.min(Math.max(0, b), 1);\n return [r * 255, g * 255, b * 255];\n };\n convert.xyz.lab = function(xyz) {\n let x = xyz[0];\n let y = xyz[1];\n let z = xyz[2];\n x /= 95.047;\n y /= 100;\n z /= 108.883;\n x = x > 8856e-6 ? x ** (1 / 3) : 7.787 * x + 16 / 116;\n y = y > 8856e-6 ? y ** (1 / 3) : 7.787 * y + 16 / 116;\n z = z > 8856e-6 ? z ** (1 / 3) : 7.787 * z + 16 / 116;\n const l = 116 * y - 16;\n const a = 500 * (x - y);\n const b = 200 * (y - z);\n return [l, a, b];\n };\n convert.lab.xyz = function(lab) {\n const l = lab[0];\n const a = lab[1];\n const b = lab[2];\n let x;\n let y;\n let z;\n y = (l + 16) / 116;\n x = a / 500 + y;\n z = y - b / 200;\n const y2 = y ** 3;\n const x2 = x ** 3;\n const z2 = z ** 3;\n y = y2 > 8856e-6 ? y2 : (y - 16 / 116) / 7.787;\n x = x2 > 8856e-6 ? x2 : (x - 16 / 116) / 7.787;\n z = z2 > 8856e-6 ? z2 : (z - 16 / 116) / 7.787;\n x *= 95.047;\n y *= 100;\n z *= 108.883;\n return [x, y, z];\n };\n convert.lab.lch = function(lab) {\n const l = lab[0];\n const a = lab[1];\n const b = lab[2];\n let h;\n const hr = Math.atan2(b, a);\n h = hr * 360 / 2 / Math.PI;\n if (h < 0) {\n h += 360;\n }\n const c = Math.sqrt(a * a + b * b);\n return [l, c, h];\n };\n convert.lch.lab = function(lch) {\n const l = lch[0];\n const c = lch[1];\n const h = lch[2];\n const hr = h / 360 * 2 * Math.PI;\n const a = c * Math.cos(hr);\n const b = c * Math.sin(hr);\n return [l, a, b];\n };\n convert.rgb.ansi16 = function(args, saturation = null) {\n const [r, g, b] = args;\n let value = saturation === null ? convert.rgb.hsv(args)[2] : saturation;\n value = Math.round(value / 50);\n if (value === 0) {\n return 30;\n }\n let ansi = 30 + (Math.round(b / 255) << 2 | Math.round(g / 255) << 1 | Math.round(r / 255));\n if (value === 2) {\n ansi += 60;\n }\n return ansi;\n };\n convert.hsv.ansi16 = function(args) {\n return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n };\n convert.rgb.ansi256 = function(args) {\n const r = args[0];\n const g = args[1];\n const b = args[2];\n if (r === g && g === b) {\n if (r < 8) {\n return 16;\n }\n if (r > 248) {\n return 231;\n }\n return Math.round((r - 8) / 247 * 24) + 232;\n }\n const ansi = 16 + 36 * Math.round(r / 255 * 5) + 6 * Math.round(g / 255 * 5) + Math.round(b / 255 * 5);\n return ansi;\n };\n convert.ansi16.rgb = function(args) {\n let color = args % 10;\n if (color === 0 || color === 7) {\n if (args > 50) {\n color += 3.5;\n }\n color = color / 10.5 * 255;\n return [color, color, color];\n }\n const mult = (~~(args > 50) + 1) * 0.5;\n const r = (color & 1) * mult * 255;\n const g = (color >> 1 & 1) * mult * 255;\n const b = (color >> 2 & 1) * mult * 255;\n return [r, g, b];\n };\n convert.ansi256.rgb = function(args) {\n if (args >= 232) {\n const c = (args - 232) * 10 + 8;\n return [c, c, c];\n }\n args -= 16;\n let rem;\n const r = Math.floor(args / 36) / 5 * 255;\n const g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n const b = rem % 6 / 5 * 255;\n return [r, g, b];\n };\n convert.rgb.hex = function(args) {\n const integer = ((Math.round(args[0]) & 255) << 16) + ((Math.round(args[1]) & 255) << 8) + (Math.round(args[2]) & 255);\n const string = integer.toString(16).toUpperCase();\n return \"000000\".substring(string.length) + string;\n };\n convert.hex.rgb = function(args) {\n const match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n if (!match) {\n return [0, 0, 0];\n }\n let colorString = match[0];\n if (match[0].length === 3) {\n colorString = colorString.split(\"\").map((char) => {\n return char + char;\n }).join(\"\");\n }\n const integer = parseInt(colorString, 16);\n const r = integer >> 16 & 255;\n const g = integer >> 8 & 255;\n const b = integer & 255;\n return [r, g, b];\n };\n convert.rgb.hcg = function(rgb) {\n const r = rgb[0] / 255;\n const g = rgb[1] / 255;\n const b = rgb[2] / 255;\n const max = Math.max(Math.max(r, g), b);\n const min = Math.min(Math.min(r, g), b);\n const chroma = max - min;\n let grayscale;\n let hue;\n if (chroma < 1) {\n grayscale = min / (1 - chroma);\n } else {\n grayscale = 0;\n }\n if (chroma <= 0) {\n hue = 0;\n } else if (max === r) {\n hue = (g - b) / chroma % 6;\n } else if (max === g) {\n hue = 2 + (b - r) / chroma;\n } else {\n hue = 4 + (r - g) / chroma;\n }\n hue /= 6;\n hue %= 1;\n return [hue * 360, chroma * 100, grayscale * 100];\n };\n convert.hsl.hcg = function(hsl) {\n const s = hsl[1] / 100;\n const l = hsl[2] / 100;\n const c = l < 0.5 ? 2 * s * l : 2 * s * (1 - l);\n let f = 0;\n if (c < 1) {\n f = (l - 0.5 * c) / (1 - c);\n }\n return [hsl[0], c * 100, f * 100];\n };\n convert.hsv.hcg = function(hsv) {\n const s = hsv[1] / 100;\n const v = hsv[2] / 100;\n const c = s * v;\n let f = 0;\n if (c < 1) {\n f = (v - c) / (1 - c);\n }\n return [hsv[0], c * 100, f * 100];\n };\n convert.hcg.rgb = function(hcg) {\n const h = hcg[0] / 360;\n const c = hcg[1] / 100;\n const g = hcg[2] / 100;\n if (c === 0) {\n return [g * 255, g * 255, g * 255];\n }\n const pure = [0, 0, 0];\n const hi = h % 1 * 6;\n const v = hi % 1;\n const w = 1 - v;\n let mg = 0;\n switch (Math.floor(hi)) {\n case 0:\n pure[0] = 1;\n pure[1] = v;\n pure[2] = 0;\n break;\n case 1:\n pure[0] = w;\n pure[1] = 1;\n pure[2] = 0;\n break;\n case 2:\n pure[0] = 0;\n pure[1] = 1;\n pure[2] = v;\n break;\n case 3:\n pure[0] = 0;\n pure[1] = w;\n pure[2] = 1;\n break;\n case 4:\n pure[0] = v;\n pure[1] = 0;\n pure[2] = 1;\n break;\n default:\n pure[0] = 1;\n pure[1] = 0;\n pure[2] = w;\n }\n mg = (1 - c) * g;\n return [\n (c * pure[0] + mg) * 255,\n (c * pure[1] + mg) * 255,\n (c * pure[2] + mg) * 255\n ];\n };\n convert.hcg.hsv = function(hcg) {\n const c = hcg[1] / 100;\n const g = hcg[2] / 100;\n const v = c + g * (1 - c);\n let f = 0;\n if (v > 0) {\n f = c / v;\n }\n return [hcg[0], f * 100, v * 100];\n };\n convert.hcg.hsl = function(hcg) {\n const c = hcg[1] / 100;\n const g = hcg[2] / 100;\n const l = g * (1 - c) + 0.5 * c;\n let s = 0;\n if (l > 0 && l < 0.5) {\n s = c / (2 * l);\n } else if (l >= 0.5 && l < 1) {\n s = c / (2 * (1 - l));\n }\n return [hcg[0], s * 100, l * 100];\n };\n convert.hcg.hwb = function(hcg) {\n const c = hcg[1] / 100;\n const g = hcg[2] / 100;\n const v = c + g * (1 - c);\n return [hcg[0], (v - c) * 100, (1 - v) * 100];\n };\n convert.hwb.hcg = function(hwb) {\n const w = hwb[1] / 100;\n const b = hwb[2] / 100;\n const v = 1 - b;\n const c = v - w;\n let g = 0;\n if (c < 1) {\n g = (v - c) / (1 - c);\n }\n return [hwb[0], c * 100, g * 100];\n };\n convert.apple.rgb = function(apple) {\n return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255];\n };\n convert.rgb.apple = function(rgb) {\n return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535];\n };\n convert.gray.rgb = function(args) {\n return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n };\n convert.gray.hsl = function(args) {\n return [0, 0, args[0]];\n };\n convert.gray.hsv = convert.gray.hsl;\n convert.gray.hwb = function(gray) {\n return [0, 100, gray[0]];\n };\n convert.gray.cmyk = function(gray) {\n return [0, 0, 0, gray[0]];\n };\n convert.gray.lab = function(gray) {\n return [gray[0], 0, 0];\n };\n convert.gray.hex = function(gray) {\n const val = Math.round(gray[0] / 100 * 255) & 255;\n const integer = (val << 16) + (val << 8) + val;\n const string = integer.toString(16).toUpperCase();\n return \"000000\".substring(string.length) + string;\n };\n convert.rgb.gray = function(rgb) {\n const val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n return [val / 255 * 100];\n };\n return conversions;\n}\nvar route;\nvar hasRequiredRoute;\nfunction requireRoute() {\n if (hasRequiredRoute) return route;\n hasRequiredRoute = 1;\n const conversions2 = requireConversions();\n function buildGraph() {\n const graph = {};\n const models = Object.keys(conversions2);\n for (let len = models.length, i = 0; i < len; i++) {\n graph[models[i]] = {\n // http://jsperf.com/1-vs-infinity\n // micro-opt, but this is simple.\n distance: -1,\n parent: null\n };\n }\n return graph;\n }\n function deriveBFS(fromModel) {\n const graph = buildGraph();\n const queue = [fromModel];\n graph[fromModel].distance = 0;\n while (queue.length) {\n const current = queue.pop();\n const adjacents = Object.keys(conversions2[current]);\n for (let len = adjacents.length, i = 0; i < len; i++) {\n const adjacent = adjacents[i];\n const node = graph[adjacent];\n if (node.distance === -1) {\n node.distance = graph[current].distance + 1;\n node.parent = current;\n queue.unshift(adjacent);\n }\n }\n }\n return graph;\n }\n function link(from, to) {\n return function(args) {\n return to(from(args));\n };\n }\n function wrapConversion(toModel, graph) {\n const path = [graph[toModel].parent, toModel];\n let fn = conversions2[graph[toModel].parent][toModel];\n let cur = graph[toModel].parent;\n while (graph[cur].parent) {\n path.unshift(graph[cur].parent);\n fn = link(conversions2[graph[cur].parent][cur], fn);\n cur = graph[cur].parent;\n }\n fn.conversion = path;\n return fn;\n }\n route = function(fromModel) {\n const graph = deriveBFS(fromModel);\n const conversion = {};\n const models = Object.keys(graph);\n for (let len = models.length, i = 0; i < len; i++) {\n const toModel = models[i];\n const node = graph[toModel];\n if (node.parent === null) {\n continue;\n }\n conversion[toModel] = wrapConversion(toModel, graph);\n }\n return conversion;\n };\n return route;\n}\nvar colorConvert;\nvar hasRequiredColorConvert;\nfunction requireColorConvert() {\n if (hasRequiredColorConvert) return colorConvert;\n hasRequiredColorConvert = 1;\n const conversions2 = requireConversions();\n const route2 = requireRoute();\n const convert = {};\n const models = Object.keys(conversions2);\n function wrapRaw(fn) {\n const wrappedFn = function(...args) {\n const arg0 = args[0];\n if (arg0 === void 0 || arg0 === null) {\n return arg0;\n }\n if (arg0.length > 1) {\n args = arg0;\n }\n return fn(args);\n };\n if (\"conversion\" in fn) {\n wrappedFn.conversion = fn.conversion;\n }\n return wrappedFn;\n }\n function wrapRounded(fn) {\n const wrappedFn = function(...args) {\n const arg0 = args[0];\n if (arg0 === void 0 || arg0 === null) {\n return arg0;\n }\n if (arg0.length > 1) {\n args = arg0;\n }\n const result = fn(args);\n if (typeof result === \"object\") {\n for (let len = result.length, i = 0; i < len; i++) {\n result[i] = Math.round(result[i]);\n }\n }\n return result;\n };\n if (\"conversion\" in fn) {\n wrappedFn.conversion = fn.conversion;\n }\n return wrappedFn;\n }\n models.forEach((fromModel) => {\n convert[fromModel] = {};\n Object.defineProperty(convert[fromModel], \"channels\", { value: conversions2[fromModel].channels });\n Object.defineProperty(convert[fromModel], \"labels\", { value: conversions2[fromModel].labels });\n const routes = route2(fromModel);\n const routeModels = Object.keys(routes);\n routeModels.forEach((toModel) => {\n const fn = routes[toModel];\n convert[fromModel][toModel] = wrapRounded(fn);\n convert[fromModel][toModel].raw = wrapRaw(fn);\n });\n });\n colorConvert = convert;\n return colorConvert;\n}\nansiStyles$1.exports;\n(function(module) {\n const wrapAnsi16 = (fn, offset) => (...args) => {\n const code = fn(...args);\n return `\\x1B[${code + offset}m`;\n };\n const wrapAnsi256 = (fn, offset) => (...args) => {\n const code = fn(...args);\n return `\\x1B[${38 + offset};5;${code}m`;\n };\n const wrapAnsi16m = (fn, offset) => (...args) => {\n const rgb = fn(...args);\n return `\\x1B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`;\n };\n const ansi2ansi = (n) => n;\n const rgb2rgb = (r, g, b) => [r, g, b];\n const setLazyProperty = (object, property, get) => {\n Object.defineProperty(object, property, {\n get: () => {\n const value = get();\n Object.defineProperty(object, property, {\n value,\n enumerable: true,\n configurable: true\n });\n return value;\n },\n enumerable: true,\n configurable: true\n });\n };\n let colorConvert2;\n const makeDynamicStyles = (wrap, targetSpace, identity, isBackground) => {\n if (colorConvert2 === void 0) {\n colorConvert2 = requireColorConvert();\n }\n const offset = isBackground ? 10 : 0;\n const styles2 = {};\n for (const [sourceSpace, suite] of Object.entries(colorConvert2)) {\n const name = sourceSpace === \"ansi16\" ? \"ansi\" : sourceSpace;\n if (sourceSpace === targetSpace) {\n styles2[name] = wrap(identity, offset);\n } else if (typeof suite === \"object\") {\n styles2[name] = wrap(suite[targetSpace], offset);\n }\n }\n return styles2;\n };\n function assembleStyles() {\n const codes = /* @__PURE__ */ new Map();\n const styles2 = {\n modifier: {\n reset: [0, 0],\n // 21 isn't widely supported and 22 does the same thing\n bold: [1, 22],\n dim: [2, 22],\n italic: [3, 23],\n underline: [4, 24],\n inverse: [7, 27],\n hidden: [8, 28],\n strikethrough: [9, 29]\n },\n color: {\n black: [30, 39],\n red: [31, 39],\n green: [32, 39],\n yellow: [33, 39],\n blue: [34, 39],\n magenta: [35, 39],\n cyan: [36, 39],\n white: [37, 39],\n // Bright color\n blackBright: [90, 39],\n redBright: [91, 39],\n greenBright: [92, 39],\n yellowBright: [93, 39],\n blueBright: [94, 39],\n magentaBright: [95, 39],\n cyanBright: [96, 39],\n whiteBright: [97, 39]\n },\n bgColor: {\n bgBlack: [40, 49],\n bgRed: [41, 49],\n bgGreen: [42, 49],\n bgYellow: [43, 49],\n bgBlue: [44, 49],\n bgMagenta: [45, 49],\n bgCyan: [46, 49],\n bgWhite: [47, 49],\n // Bright color\n bgBlackBright: [100, 49],\n bgRedBright: [101, 49],\n bgGreenBright: [102, 49],\n bgYellowBright: [103, 49],\n bgBlueBright: [104, 49],\n bgMagentaBright: [105, 49],\n bgCyanBright: [106, 49],\n bgWhiteBright: [107, 49]\n }\n };\n styles2.color.gray = styles2.color.blackBright;\n styles2.bgColor.bgGray = styles2.bgColor.bgBlackBright;\n styles2.color.grey = styles2.color.blackBright;\n styles2.bgColor.bgGrey = styles2.bgColor.bgBlackBright;\n for (const [groupName, group] of Object.entries(styles2)) {\n for (const [styleName, style] of Object.entries(group)) {\n styles2[styleName] = {\n open: `\\x1B[${style[0]}m`,\n close: `\\x1B[${style[1]}m`\n };\n group[styleName] = styles2[styleName];\n codes.set(style[0], style[1]);\n }\n Object.defineProperty(styles2, groupName, {\n value: group,\n enumerable: false\n });\n }\n Object.defineProperty(styles2, \"codes\", {\n value: codes,\n enumerable: false\n });\n styles2.color.close = \"\\x1B[39m\";\n styles2.bgColor.close = \"\\x1B[49m\";\n setLazyProperty(styles2.color, \"ansi\", () => makeDynamicStyles(wrapAnsi16, \"ansi16\", ansi2ansi, false));\n setLazyProperty(styles2.color, \"ansi256\", () => makeDynamicStyles(wrapAnsi256, \"ansi256\", ansi2ansi, false));\n setLazyProperty(styles2.color, \"ansi16m\", () => makeDynamicStyles(wrapAnsi16m, \"rgb\", rgb2rgb, false));\n setLazyProperty(styles2.bgColor, \"ansi\", () => makeDynamicStyles(wrapAnsi16, \"ansi16\", ansi2ansi, true));\n setLazyProperty(styles2.bgColor, \"ansi256\", () => makeDynamicStyles(wrapAnsi256, \"ansi256\", ansi2ansi, true));\n setLazyProperty(styles2.bgColor, \"ansi16m\", () => makeDynamicStyles(wrapAnsi16m, \"rgb\", rgb2rgb, true));\n return styles2;\n }\n Object.defineProperty(module, \"exports\", {\n enumerable: true,\n get: assembleStyles\n });\n})(ansiStyles$1);\nvar ansiStylesExports = ansiStyles$1.exports;\nvar browser = {\n stdout: false,\n stderr: false\n};\nconst stringReplaceAll$1 = (string, substring, replacer) => {\n let index = string.indexOf(substring);\n if (index === -1) {\n return string;\n }\n const substringLength = substring.length;\n let endIndex = 0;\n let returnValue = \"\";\n do {\n returnValue += string.substr(endIndex, index - endIndex) + substring + replacer;\n endIndex = index + substringLength;\n index = string.indexOf(substring, endIndex);\n } while (index !== -1);\n returnValue += string.substr(endIndex);\n return returnValue;\n};\nconst stringEncaseCRLFWithFirstIndex$1 = (string, prefix, postfix, index) => {\n let endIndex = 0;\n let returnValue = \"\";\n do {\n const gotCR = string[index - 1] === \"\\r\";\n returnValue += string.substr(endIndex, (gotCR ? index - 1 : index) - endIndex) + prefix + (gotCR ? \"\\r\\n\" : \"\\n\") + postfix;\n endIndex = index + 1;\n index = string.indexOf(\"\\n\", endIndex);\n } while (index !== -1);\n returnValue += string.substr(endIndex);\n return returnValue;\n};\nvar util = {\n stringReplaceAll: stringReplaceAll$1,\n stringEncaseCRLFWithFirstIndex: stringEncaseCRLFWithFirstIndex$1\n};\nvar templates;\nvar hasRequiredTemplates;\nfunction requireTemplates() {\n if (hasRequiredTemplates) return templates;\n hasRequiredTemplates = 1;\n const TEMPLATE_REGEX = /(?:\\\\(u(?:[a-f\\d]{4}|\\{[a-f\\d]{1,6}\\})|x[a-f\\d]{2}|.))|(?:\\{(~)?(\\w+(?:\\([^)]*\\))?(?:\\.\\w+(?:\\([^)]*\\))?)*)(?:[ \\t]|(?=\\r?\\n)))|(\\})|((?:.|[\\r\\n\\f])+?)/gi;\n const STYLE_REGEX = /(?:^|\\.)(\\w+)(?:\\(([^)]*)\\))?/g;\n const STRING_REGEX = /^(['\"])((?:\\\\.|(?!\\1)[^\\\\])*)\\1$/;\n const ESCAPE_REGEX = /\\\\(u(?:[a-f\\d]{4}|{[a-f\\d]{1,6}})|x[a-f\\d]{2}|.)|([^\\\\])/gi;\n const ESCAPES = /* @__PURE__ */ new Map([\n [\"n\", \"\\n\"],\n [\"r\", \"\\r\"],\n [\"t\", \"\t\"],\n [\"b\", \"\\b\"],\n [\"f\", \"\\f\"],\n [\"v\", \"\\v\"],\n [\"0\", \"\\0\"],\n [\"\\\\\", \"\\\\\"],\n [\"e\", \"\\x1B\"],\n [\"a\", \"\\x07\"]\n ]);\n function unescape(c) {\n const u = c[0] === \"u\";\n const bracket = c[1] === \"{\";\n if (u && !bracket && c.length === 5 || c[0] === \"x\" && c.length === 3) {\n return String.fromCharCode(parseInt(c.slice(1), 16));\n }\n if (u && bracket) {\n return String.fromCodePoint(parseInt(c.slice(2, -1), 16));\n }\n return ESCAPES.get(c) || c;\n }\n function parseArguments(name, arguments_) {\n const results = [];\n const chunks = arguments_.trim().split(/\\s*,\\s*/g);\n let matches;\n for (const chunk of chunks) {\n const number = Number(chunk);\n if (!Number.isNaN(number)) {\n results.push(number);\n } else if (matches = chunk.match(STRING_REGEX)) {\n results.push(matches[2].replace(ESCAPE_REGEX, (m, escape, character) => escape ? unescape(escape) : character));\n } else {\n throw new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`);\n }\n }\n return results;\n }\n function parseStyle(style) {\n STYLE_REGEX.lastIndex = 0;\n const results = [];\n let matches;\n while ((matches = STYLE_REGEX.exec(style)) !== null) {\n const name = matches[1];\n if (matches[2]) {\n const args = parseArguments(name, matches[2]);\n results.push([name].concat(args));\n } else {\n results.push([name]);\n }\n }\n return results;\n }\n function buildStyle(chalk2, styles2) {\n const enabled = {};\n for (const layer of styles2) {\n for (const style of layer.styles) {\n enabled[style[0]] = layer.inverse ? null : style.slice(1);\n }\n }\n let current = chalk2;\n for (const [styleName, styles3] of Object.entries(enabled)) {\n if (!Array.isArray(styles3)) {\n continue;\n }\n if (!(styleName in current)) {\n throw new Error(`Unknown Chalk style: ${styleName}`);\n }\n current = styles3.length > 0 ? current[styleName](...styles3) : current[styleName];\n }\n return current;\n }\n templates = (chalk2, temporary) => {\n const styles2 = [];\n const chunks = [];\n let chunk = [];\n temporary.replace(TEMPLATE_REGEX, (m, escapeCharacter, inverse, style, close, character) => {\n if (escapeCharacter) {\n chunk.push(unescape(escapeCharacter));\n } else if (style) {\n const string = chunk.join(\"\");\n chunk = [];\n chunks.push(styles2.length === 0 ? string : buildStyle(chalk2, styles2)(string));\n styles2.push({ inverse, styles: parseStyle(style) });\n } else if (close) {\n if (styles2.length === 0) {\n throw new Error(\"Found extraneous } in Chalk template literal\");\n }\n chunks.push(buildStyle(chalk2, styles2)(chunk.join(\"\")));\n chunk = [];\n styles2.pop();\n } else {\n chunk.push(character);\n }\n });\n chunks.push(chunk.join(\"\"));\n if (styles2.length > 0) {\n const errMessage = `Chalk template literal is missing ${styles2.length} closing bracket${styles2.length === 1 ? \"\" : \"s\"} (\\`}\\`)`;\n throw new Error(errMessage);\n }\n return chunks.join(\"\");\n };\n return templates;\n}\nconst ansiStyles = ansiStylesExports;\nconst { stdout: stdoutColor, stderr: stderrColor } = browser;\nconst {\n stringReplaceAll,\n stringEncaseCRLFWithFirstIndex\n} = util;\nconst { isArray } = Array;\nconst levelMapping = [\n \"ansi\",\n \"ansi\",\n \"ansi256\",\n \"ansi16m\"\n];\nconst styles = /* @__PURE__ */ Object.create(null);\nconst applyOptions = (object, options = {}) => {\n if (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {\n throw new Error(\"The `level` option should be an integer from 0 to 3\");\n }\n const colorLevel = stdoutColor ? stdoutColor.level : 0;\n object.level = options.level === void 0 ? colorLevel : options.level;\n};\nclass ChalkClass {\n constructor(options) {\n return chalkFactory(options);\n }\n}\nconst chalkFactory = (options) => {\n const chalk2 = {};\n applyOptions(chalk2, options);\n chalk2.template = (...arguments_) => chalkTag(chalk2.template, ...arguments_);\n Object.setPrototypeOf(chalk2, Chalk.prototype);\n Object.setPrototypeOf(chalk2.template, chalk2);\n chalk2.template.constructor = () => {\n throw new Error(\"`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.\");\n };\n chalk2.template.Instance = ChalkClass;\n return chalk2.template;\n};\nfunction Chalk(options) {\n return chalkFactory(options);\n}\nfor (const [styleName, style] of Object.entries(ansiStyles)) {\n styles[styleName] = {\n get() {\n const builder = createBuilder(this, createStyler(style.open, style.close, this._styler), this._isEmpty);\n Object.defineProperty(this, styleName, { value: builder });\n return builder;\n }\n };\n}\nstyles.visible = {\n get() {\n const builder = createBuilder(this, this._styler, true);\n Object.defineProperty(this, \"visible\", { value: builder });\n return builder;\n }\n};\nconst usedModels = [\"rgb\", \"hex\", \"keyword\", \"hsl\", \"hsv\", \"hwb\", \"ansi\", \"ansi256\"];\nfor (const model of usedModels) {\n styles[model] = {\n get() {\n const { level } = this;\n return function(...arguments_) {\n const styler = createStyler(ansiStyles.color[levelMapping[level]][model](...arguments_), ansiStyles.color.close, this._styler);\n return createBuilder(this, styler, this._isEmpty);\n };\n }\n };\n}\nfor (const model of usedModels) {\n const bgModel = \"bg\" + model[0].toUpperCase() + model.slice(1);\n styles[bgModel] = {\n get() {\n const { level } = this;\n return function(...arguments_) {\n const styler = createStyler(ansiStyles.bgColor[levelMapping[level]][model](...arguments_), ansiStyles.bgColor.close, this._styler);\n return createBuilder(this, styler, this._isEmpty);\n };\n }\n };\n}\nconst proto = Object.defineProperties(() => {\n}, {\n ...styles,\n level: {\n enumerable: true,\n get() {\n return this._generator.level;\n },\n set(level) {\n this._generator.level = level;\n }\n }\n});\nconst createStyler = (open, close, parent) => {\n let openAll;\n let closeAll;\n if (parent === void 0) {\n openAll = open;\n closeAll = close;\n } else {\n openAll = parent.openAll + open;\n closeAll = close + parent.closeAll;\n }\n return {\n open,\n close,\n openAll,\n closeAll,\n parent\n };\n};\nconst createBuilder = (self, _styler, _isEmpty) => {\n const builder = (...arguments_) => {\n if (isArray(arguments_[0]) && isArray(arguments_[0].raw)) {\n return applyStyle(builder, chalkTag(builder, ...arguments_));\n }\n return applyStyle(builder, arguments_.length === 1 ? \"\" + arguments_[0] : arguments_.join(\" \"));\n };\n Object.setPrototypeOf(builder, proto);\n builder._generator = self;\n builder._styler = _styler;\n builder._isEmpty = _isEmpty;\n return builder;\n};\nconst applyStyle = (self, string) => {\n if (self.level <= 0 || !string) {\n return self._isEmpty ? \"\" : string;\n }\n let styler = self._styler;\n if (styler === void 0) {\n return string;\n }\n const { openAll, closeAll } = styler;\n if (string.indexOf(\"\\x1B\") !== -1) {\n while (styler !== void 0) {\n string = stringReplaceAll(string, styler.close, styler.open);\n styler = styler.parent;\n }\n }\n const lfIndex = string.indexOf(\"\\n\");\n if (lfIndex !== -1) {\n string = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);\n }\n return openAll + string + closeAll;\n};\nlet template;\nconst chalkTag = (chalk2, ...strings) => {\n const [firstString] = strings;\n if (!isArray(firstString) || !isArray(firstString.raw)) {\n return strings.join(\" \");\n }\n const arguments_ = strings.slice(1);\n const parts = [firstString.raw[0]];\n for (let i = 1; i < firstString.length; i++) {\n parts.push(\n String(arguments_[i - 1]).replace(/[{}\\\\]/g, \"\\\\$&\"),\n String(firstString.raw[i])\n );\n }\n if (template === void 0) {\n template = requireTemplates();\n }\n return template(chalk2, parts.join(\"\"));\n};\nObject.defineProperties(Chalk.prototype, styles);\nconst chalk = Chalk();\nchalk.supportsColor = stdoutColor;\nchalk.stderr = Chalk({ level: stderrColor ? stderrColor.level : 0 });\nchalk.stderr.supportsColor = stderrColor;\nvar source = chalk;\nconst chalk$1 = /* @__PURE__ */ getDefaultExportFromCjs(source);\nconst { accessSync, constants, readFileSync } = fs;\nconst envOptions = {};\nfunction SetupConfig(envOptions2, logger) {\n const envfile = process.env.STSENVFILE === void 0 ? \"/.env\" : process.env.STSENVFILE;\n dotenv.config({ path: envfile });\n const defconfig = {\n // Node runtime environment\n isProduction: process.env.NODE_ENV === void 0 ? false : process.env.NODE_ENV === \"production\" ? true : false,\n isTest: process.env.NODE_ENV === void 0 ? false : process.env.NODE_ENV === \"test\" ? true : false,\n dbuser: process.env.DB_USER === void 0 ? \"postgres\" : process.env.DB_USER,\n dbpassword: process.env.DB_PASSWORD === void 0 ? \"postgres\" : process.env.DB_PASSWORD,\n dbpasswordfile: process.env.DB_PASSWORD_FILE,\n dbhost: process.env.DB_HOST === void 0 ? \"localhost:5432\" : process.env.DB_HOST,\n database: process.env.DB_DATABASE === void 0 ? \"stsrestmsdb01\" : process.env.DB_DATABASE,\n databaseUrl: process.env.DATABASE_URL,\n connectionString: \"\",\n defaultDatabaseConnectionString: \"\",\n STSServerType: process.env.STS_SERVER_TYPE === void 0 ? \"EXPRESS_TLS\" : process.env.STS_SERVER_TYPE,\n logToFile: process.env.LOG_TO_FILE === void 0 ? false : process.env.LOG_TO_FILE === \"true\" ? true : false,\n logFilePath: process.env.LOG_FILE_PATH === void 0 ? \"/var/lib/sts\" : process.env.LOG_FILE_PATH,\n logFileFormat: process.env.LOG_FILE_FORMAT === void 0 ? \"csv\" : process.env.LOG_FILE_FORMAT,\n poolSize: process.env.POOL_SIZE === void 0 ? 500 : parseInt(process.env.POOL_SIZE),\n useCPUs: process.env.MAX_CPU === void 0 ? -1 : parseFloat(process.env.MAX_CPU),\n respawnOnFail: process.env.RESPAWN === void 0 ? true : process.env.RESPAWN === \"true\" ? true : false,\n defaultDatabaseEntries: process.env.DEFAULT_DB_ENTRIES === void 0 ? 1e4 : parseInt(process.env.DEFAULT_DB_ENTRIES),\n useRedisDatabaseCache: process.env.USE_REDIS_DATABASE_CACHE === void 0 ? false : process.env.USE_REDIS_DATABASE_CACHE === \"true\" ? true : false,\n useSocketIoRedisAdaptor: process.env.USE_SOCKET_IO_REDIS_ADAPTOR === void 0 ? false : process.env.USE_SOCKET_IO_REDIS_ADAPTOR === \"true\" ? true : false,\n socketIoRedisAdaptorUrl: process.env.SOCKET_IO_REDIS_ADAPTOR_URL === void 0 ? \"redis://localhost:6379\" : process.env.SOCKET_IO_REDIS_ADAPTOR_URL,\n useRedisInstrumentationTransport: process.env.USE_REDIS_INSTRUMENTATION_TRANSPORT === void 0 ? false : process.env.USE_REDIS_INSTRUMENTATION_TRANSPORT === \"true\" ? true : false,\n redisInstrumentationTransportUrl: process.env.REDIS_INSTRUMENTATION_TRANSPORT_URL === void 0 ? \"redis://localhost:6379\" : process.env.REDIS_INSTRUMENTATION_TRANSPORT_URL,\n redisDatabaseCacheEndFlush: process.env.REDIS_DATABASE_CACHE_END_FLUSH === void 0 ? false : process.env.REDIS_DATABASE_CACHE_END_FLUSH === \"true\" ? true : false,\n redisDatabaseCacheUrl: process.env.REDIS_DATABASE_CACHE_URL === void 0 ? \"redis://localhost:6379\" : process.env.REDIS_DATABASE_CACHE_URL,\n defaultDatabaseMinExtraDataSize: process.env.DEFAULT_DATABASE_MIN_EXTRA_DATA_SIZE === void 0 ? 0 : parseInt(process.env.DEFAULT_DATABASE_MIN_EXTRA_DATA_SIZE),\n defaultDatabaseMaxExtraDataSize: process.env.DEFAULT_DATABASE_MAX_EXTRA_DATA_SIZE === void 0 ? 2e3 : parseInt(process.env.DEFAULT_DATABASE_MAX_EXTRA_DATA_SIZE),\n rest01endpoint: process.env.REST01_ENDPOINT === void 0 ? \"https://localhost\" : process.env.REST01_ENDPOINT,\n rest01hostport: process.env.REST01_HOST_PORT === void 0 ? \"3003\" : process.env.REST01_HOST_PORT,\n rest01port: process.env.REST01_PORT === void 0 ? \"3003\" : process.env.REST01_PORT,\n rest01apiroot: process.env.REST01_APIROOT === void 0 ? \"/stsrest01/v1\" : process.env.REST01_APIROOT,\n rest01prometheussupport: process.env.REST01_PROM_SUPPORT === void 0 ? true : process.env.REST01_PROM_SUPPORT === \"true\" ? true : false,\n rest01prometheusclusterport: process.env.REST01_PROM_CLUSTER_PORT === void 0 ? \"3013\" : process.env.REST01_PROM_CLUSTER_PORT,\n rest01servicename: process.env.REST01_SERVICE_NAME === void 0 ? \"STSRest01\" : process.env.REST01_SERVICE_NAME,\n rest01serviceversion: process.env.REST01_SERVICE_VERSION === void 0 ? \"1.0.0\" : process.env.REST01_SERVICE_VERSION,\n stsfhirendpoint: process.env.STSFHIR_ENDPOINT === void 0 ? \"https://localhost\" : process.env.STSFHIR_ENDPOINT,\n stsfhirhostport: process.env.STSFHIR_HOST_PORT === void 0 ? \"3005\" : process.env.STSFHIR_HOST_PORT,\n stsfhirport: process.env.STSFHIR_PORT === void 0 ? \"3005\" : process.env.STSFHIR_PORT,\n stsfhirapiroot: process.env.STSFHIR_APIROOT === void 0 ? \"/stsfhir/r5\" : process.env.STSFHIR_APIROOT,\n stsfhirprometheussupport: process.env.STSFHIR_PROM_SUPPORT === void 0 ? true : process.env.STSFHIR_PROM_SUPPORT === \"true\" ? true : false,\n stsfhirprometheusclusterport: process.env.STSFHIR_PROM_CLUSTER_PORT === void 0 ? \"3015\" : process.env.STSFHIR_PROM_CLUSTER_PORT,\n stsfhirservicename: process.env.STSFHIR_SERVICE_NAME === void 0 ? \"STSFHIR\" : process.env.STSFHIR_SERVICE_NAME,\n stsfhirserviceversion: process.env.STSFHIR_SERVICE_VERSION === void 0 ? \"1.0.0\" : process.env.STSFHIR_SERVICE_VERSION,\n imendpoint: process.env.IM_ENDPOINT === void 0 ? \"https://localhost\" : process.env.IM_ENDPOINT,\n imhostport: process.env.IM_HOST_PORT === void 0 ? \"3001\" : process.env.IM_HOST_PORT,\n import: process.env.IM_PORT === void 0 ? \"3001\" : process.env.IM_PORT,\n imapiroot: process.env.IM_APIROOT === void 0 ? \"/stsinstrumentmanager/v1\" : process.env.IM_APIROOT,\n imprometheussupport: process.env.IM_PROM_SUPPORT === void 0 ? true : process.env.IM_PROM_SUPPORT === \"true\" ? true : false,\n imprometheusclusterport: process.env.IM_PROM_CLUSTER_PORT === void 0 ? \"3011\" : process.env.IM_PROM_CLUSTER_PORT,\n imservicename: process.env.IM_SERVICE_NAME === void 0 ? \"STSInstrumentManager\" : process.env.IM_SERVICE_NAME,\n imserviceversion: process.env.IM_SERVICE_VERSION === void 0 ? \"1.0.0\" : process.env.IM_SERVICE_VERSION,\n imRedisKeepAliveProcessorUrl: process.env.IM_REDIS_KEEP_ALIVE_PROCESSOR_URL === void 0 ? \"redis://localhost:6379\" : process.env.IM_REDIS_KEEP_ALIVE_PROCESSOR_URL,\n imRedisMessageProcessorUrl: process.env.IM_REDIS_MESSAGE_PROCESSOR_URL === void 0 ? \"redis://localhost:6379\" : process.env.IM_REDIS_MESSAGE_PROCESSOR_URL,\n asendpoint: process.env.AS_ENDPOINT === void 0 ? \"https://localhost\" : process.env.AS_ENDPOINT,\n ashostport: process.env.AS_HOST_PORT === void 0 ? \"3002\" : process.env.AS_HOST_PORT,\n asport: process.env.AS_PORT === void 0 ? \"3002\" : process.env.AS_PORT,\n asapiroot: process.env.AS_API_ROOT === void 0 ? \"/stsauth/v1.0\" : process.env.AS_API_ROOT,\n asoauthapiroot: process.env.AS_OAUTH_API_ROOT === void 0 ? \"/oauth2/v2.0\" : process.env.AS_OAUTH_API_ROOT,\n asadminapiroot: process.env.AS_ADMIN_API_ROOT === void 0 ? \"/admin/v1.0\" : process.env.AS_ADMIN_API_ROOT,\n asprometheussupport: process.env.AS_PROM_SUPPORT === void 0 ? true : process.env.AS_PROM_SUPPORT === \"true\" ? true : false,\n asprometheusclusterport: process.env.AS_PROM_CLUSTER_PORT === void 0 ? \"3012\" : process.env.AS_PROM_CLUSTER_PORT,\n asservicename: process.env.AS_SERVICE_NAME === void 0 ? \"STSAuth\" : process.env.AS_SERVICE_NAME,\n asserviceversion: process.env.AS_SERVICE_VERSION === void 0 ? \"1.0.0\" : process.env.AS_SERVICE_VERSION,\n asjwksjsonpath: process.env.AS_JWKS_JSON_PATH === void 0 ? \"/.well-known/jwks.json\" : process.env.AS_JWKS_JSON_PATH,\n asjwkskeyrotationtime: process.env.AS_JWKS_KEY_ROTATION_TIME === void 0 ? 86400 : parseInt(process.env.AS_JWKS_KEY_ROTATION_TIME),\n asjwkskeypurgetimeoffset: process.env.AS_JWKS_KEY_PURGE_TIME_OFFSET === void 0 ? 300 : parseInt(process.env.AS_JWKS_KEY_PURGE_TIME_OFFSET),\n asjwkskeycount: process.env.AS_JWKS_KEY_COUNT === void 0 ? 4 : parseInt(process.env.AS_JWKS_KEY_COUNT),\n asaccesstokenexpire: process.env.AS_ACCESS_TOKEN_EXPIRE === void 0 ? 43200 : parseInt(process.env.AS_ACCESS_TOKEN_EXPIRE),\n authorizeendpoint: process.env.AUTHORIZE_ENDPOINT === void 0 ? \"https://localhost\" : process.env.AUTHORIZE_ENDPOINT,\n authorizeport: process.env.AUTHORIZE_PORT === void 0 ? \"3010\" : process.env.AUTHORIZE_PORT,\n authorizeapiroot: process.env.AUTHORIZE_API_ROOT === void 0 ? \"/stsa\" : process.env.AUTHORIZE_API_ROOT,\n authorizeapi: process.env.AUTHORIZE_API === void 0 ? \"/authorize\" : process.env.AUTHORIZE_API,\n brokerendpoint: process.env.BROKER_ENDPOINT === void 0 ? \"https://localhost\" : process.env.BROKER_ENDPOINT,\n brokerhostport: process.env.BROKER_HOST_PORT === void 0 ? \"3006\" : process.env.BROKER_HOST_PORT,\n brokerport: process.env.BROKER_PORT === void 0 ? \"3006\" : process.env.BROKER_PORT,\n brokerapiroot: process.env.BROKER_APIROOT === void 0 ? \"/stsbroker/v1.0\" : process.env.BROKER_APIROOT,\n brokerprometheussupport: process.env.BROKER_PROM_SUPPORT === void 0 ? true : process.env.BROKER_PROM_SUPPORT === \"true\" ? true : false,\n brokerprometheusclusterport: process.env.BROKER_PROM_CLUSTER_PORT === void 0 ? \"3016\" : process.env.BROKER_PROM_CLUSTER_PORT,\n brokerservicename: process.env.BROKER_SERVICE_NAME === void 0 ? \"STSBroker\" : process.env.BROKER_SERVICE_NAME,\n brokerserviceversion: process.env.BROKER_SERVICE_VERSION === void 0 ? \"1.0.0\" : process.env.BROKER_SERVICE_VERSION,\n trnendpoint: process.env.TRN_ENDPOINT === void 0 ? \"https://localhost\" : process.env.TRN_ENDPOINT,\n trnhostport: process.env.TRN_HOST_PORT === void 0 ? \"3007\" : process.env.TRN_HOST_PORT,\n trnport: process.env.TRN_PORT === void 0 ? \"3007\" : process.env.TRN_PORT,\n trnapiroot: process.env.TRN_APIROOT === void 0 ? \"/ststrn/v1.0\" : process.env.TRN_APIROOT,\n trnprometheussupport: process.env.TRN_PROM_SUPPORT === void 0 ? true : process.env.TRN_PROM_SUPPORT === \"true\" ? true : false,\n trnprometheusclusterport: process.env.TRN_PROM_CLUSTER_PORT === void 0 ? \"3017\" : process.env.TRN_PROM_CLUSTER_PORT,\n trnservicename: process.env.TRN_SERVICE_NAME === void 0 ? \"STSTestRunnerNode\" : process.env.TRN_SERVICE_NAME,\n trnserviceversion: process.env.TRN_SERVICE_VERSION === void 0 ? \"1.0.0\" : process.env.TRN_SERVICE_VERSION,\n trnautostartdelay: process.env.TRN_AUTO_START_DELAY === void 0 ? 0 : parseInt(process.env.TRN_AUTO_START_DELAY),\n trnautostartconfig: process.env.TRN_AUTO_START_CONFIG === void 0 ? \"\" : process.env.TRN_AUTO_START_CONFIG,\n trnRedisMessageProcessorUrl: process.env.TRN_REDIS_MESSAGE_PROCESSOR_URL === void 0 ? \"redis://localhost:6379\" : process.env.TRN_REDIS_MESSAGE_PROCESSOR_URL,\n lambdaendpoint: process.env.LAMBDA_ENDPOINT === void 0 ? \"https://localhost\" : process.env.LAMBDA_ENDPOINT,\n lambdahostport: process.env.LAMBDA_HOST_PORT === void 0 ? \"3009\" : process.env.LAMBDA_HOST_PORT,\n lambdaport: process.env.LAMBDA_PORT === void 0 ? \"3009\" : process.env.LAMBDA_PORT,\n lambdaapiroot: process.env.LAMBDA_APIROOT === void 0 ? \"/stslambda/v1.0\" : process.env.LAMBDA_APIROOT,\n lambdaprometheussupport: process.env.LAMBDA_PROM_SUPPORT === void 0 ? true : process.env.LAMBDA_PROM_SUPPORT === \"true\" ? true : false,\n lambdaprometheusclusterport: process.env.LAMBDA_PROM_CLUSTER_PORT === void 0 ? \"3019\" : process.env.LAMBDA_PROM_CLUSTER_PORT,\n lambdaservicename: process.env.LAMBDA_SERVICE_NAME === void 0 ? \"STSLambda\" : process.env.LAMBDA_SERVICE_NAME,\n lambdaserviceversion: process.env.LAMBDA_SERVICE_VERSION === void 0 ? \"1.0.0\" : process.env.LAMBDA_SERVICE_VERSION,\n publishinterval: process.env.PUBLISH_INTERVAL === void 0 ? 1e3 : parseInt(process.env.PUBLISH_INTERVAL),\n publishtimeout: process.env.PUBLISH_TIMEOUT === void 0 ? 750 : parseInt(process.env.PUBLISH_TIMEOUT),\n transport: process.env.TRANSPORT === void 0 ? \"RESTAPI\" : process.env.TRANSPORT,\n useSecureCookies: process.env.USE_SECURE_COOKIES === void 0 ? false : process.env.USE_SECURE_COOKIES === \"true\" ? true : false,\n keepAlive: process.env.KEEP_ALIVE === void 0 ? true : process.env.KEEP_ALIVE === \"true\" ? true : false,\n maxSockets: process.env.MAX_SOCKETS === void 0 ? 10 : parseInt(process.env.MAX_SOCKETS),\n maxTotalSockets: process.env.MAX_TOTAL_SOCKETS === void 0 ? 20 : parseInt(process.env.MAX_TOTAL_SOCKETS),\n maxFreeSockets: process.env.MAX_FREE_SOCKETS === void 0 ? 256 : parseInt(process.env.MAX_FREE_SOCKETS),\n timeout: process.env.TIMEOUT === void 0 ? 1e4 : parseInt(process.env.TIMEOUT),\n maxPayloadSize: process.env.MAX_PAYLOAD_SIZE === void 0 ? \"50mb\" : process.env.MAX_PAYLOAD_SIZE,\n instrumentationObservationInterval: process.env.INSTRUMENTATION_OBSERVATION_INTERVAL === void 0 ? 1e3 : parseInt(process.env.INSTRUMENTATION_OBSERVATION_INTERVAL),\n instrumentationTimeWindow: process.env.INSTRUMENTATION_TIME_WINDOW === void 0 ? 600 : parseInt(process.env.INSTRUMENTATION_TIME_WINDOW),\n authJWTAccessTokenTimeout: process.env.AUTH_JWT_ACCESS_TOKEN_TIMEOUT === void 0 ? 600 : parseInt(process.env.AUTH_JWT_ACCESS_TOKEN_TIMEOUT),\n authJWTRefreshTokenTimeout: process.env.AUTH_JWT_REFRESH_TOKEN_TIMEOUT === void 0 ? 3600 * 24 : parseInt(process.env.AUTH_JWT_REFRESH_TOKEN_TIMEOUT),\n authCookieTimeout: process.env.AUTH_COOKIE_TIMEOUT === void 0 ? 3600 * 24 : parseInt(process.env.AUTH_COOKIE_TIMEOUT),\n masterProcessExitTime: process.env.MASTER_PROCESS_EXIT_TIME === void 0 ? 500 : parseInt(process.env.MASTER_PROCESS_EXIT_TIME),\n childProcessExitTime: process.env.CHILD_PROCESS_EXIT_TIME === void 0 ? 500 : parseInt(process.env.CHILD_PROCESS_EXIT_TIME),\n systemInformationInterval: process.env.SYSTEM_INFORMATION_INTERVAL === void 0 ? 1e3 : parseInt(process.env.SYSTEM_INFORMATION_INTERVAL),\n ignoresocketio: process.env.IGNORE_SOCKETIO === void 0 ? true : process.env.IGNORE_SOCKETIO === \"true\" ? true : false,\n httpsserverkeypath: process.env.HTTPS_SERVER_KEY_PATH === void 0 ? \"/var/lib/sts/stsglobalresources/keys/server.key\" : process.env.HTTPS_SERVER_KEY_PATH,\n httpsservercertpath: process.env.HTTPS_SERVER_CERT_PATH === void 0 ? \"/var/lib/sts/stsglobalresources/keys/server.cert\" : process.env.HTTPS_SERVER_CERT_PATH,\n tsjwkskeys: process.env.TS_JWKS_KEYS === void 0 ? 3 : parseInt(process.env.TS_JWKS_KEYS),\n jwksAuthConfigCache: process.env.JWKS_AUTH_CONFIG_CACHE === void 0 ? true : process.env.JWKS_AUTH_CONFIG_CACHE === \"true\" ? true : false,\n jwksAuthConfigCacheMaxEntries: process.env.JWKS_AUTH_CONFIG_CACHE_MAX_ENTRIES === void 0 ? 5 : parseInt(process.env.JWKS_AUTH_CONFIG_CACHE_MAX_ENTRIES),\n jwksAuthConfigCacheMaxAge: process.env.JWKS_AUTH_CONFIG_CACHE_MAX_AGE === void 0 ? 6e5 : parseInt(process.env.JWKS_AUTH_CONFIG_CACHE_MAX_AGE),\n jwksAuthConfigRateLimit: process.env.JWKS_AUTH_CONFIG_RATE_LIMIT === void 0 ? true : process.env.JWKS_AUTH_CONFIG_RATE_LIMIT === \"true\" ? true : false,\n jwksAuthConfigRateLimitRequestsPerMinute: process.env.JWKS_AUTH_CONFIG_RATE_LIMIT_REQUESTS_PER_MINUTE === void 0 ? 10 : parseInt(process.env.JWKS_AUTH_CONFIG_RATE_LIMIT_REQUESTS_PER_MINUTE),\n jwksAuthConfigTimeout: process.env.JWKS_AUTH_CONFIG_TIMEOUT === void 0 ? 3e4 : parseInt(process.env.JWKS_AUTH_CONFIG_TIMEOUT),\n influxDB_APIToken: process.env.INFLUXDB_API_TOKEN === void 0 ? \"password\" : process.env.INFLUXDB_API_TOKEN,\n influxDB_APITokenFile: process.env.INFLUXDB_API_TOKEN_FILE,\n influxDB_Url: process.env.INFLUXDB_URL === void 0 ? \"http://localhost:8086\" : process.env.INFLUXDB_URL,\n influxDB_Org: process.env.INFLUXDB_ORG === void 0 ? \"my-org\" : process.env.INFLUXDB_ORG,\n influxDB_Bucket: process.env.INFLUXDB_BUCKET === void 0 ? \"TestBucket01\" : process.env.INFLUXDB_BUCKET,\n influxDB_keepAlive: process.env.INFLUXDB_KEEP_ALIVE === void 0 ? true : process.env.INFLUXDB_KEEP_ALIVE === \"true\" ? true : false,\n influxDB_maxSockets: process.env.INFLUXDB_MAX_SOCKETS === void 0 ? 10 : parseInt(process.env.INFLUXDB_MAX_SOCKETS),\n influxDB_maxTotalSockets: process.env.INFLUXDB_MAX_TOTAL_SOCKETS === void 0 ? 20 : parseInt(process.env.INFLUXDB_MAX_TOTAL_SOCKETS),\n influxDB_maxFreeSockets: process.env.INFLUXDB_MAX_FREE_SOCKETS === void 0 ? 256 : parseInt(process.env.INFLUXDB_MAX_FREE_SOCKETS),\n influxDB_timeout: process.env.INFLUXDB_TIMEOUT === void 0 ? 1e4 : parseInt(process.env.INFLUXDB_TIMEOUT),\n influxDB_rejectUnauthorized: process.env.INFLUXDB_REJECT_UNAUTHORIZED === void 0 ? true : process.env.INFLUXDB_REJECT_UNAUTHORIZED === \"true\" ? true : false,\n influxDB_writeDataPointFlushTimeout: process.env.INFLUXDB_WRITE_DATA_POINT_FLUSH_TIMEOUT === void 0 ? 1e3 : parseInt(process.env.INFLUXDB_WRITE_DATA_POINT_FLUSH_TIMEOUT),\n kafka_clientId: process.env.KAFKA_CLIENT_ID === void 0 ? \"myclient\" : process.env.KAFKA_CLIENT_ID,\n kafka_brokers: process.env.KAFKA_BROKERS === void 0 ? \"localhost:9092\" : process.env.KAFKA_BROKERS,\n kafka_admin_timeout: process.env.KAFKA_ADMIN_TIMEOUT === void 0 ? 5e3 : parseInt(process.env.KAFKA_ADMIN_TIMEOUT),\n kafka_connection_timeout: process.env.KAFKA_CONNECTION_TIMEOUT === void 0 ? 5e3 : parseInt(process.env.KAFKA_CONNECTION_TIMEOUT),\n kafka_request_timeout: process.env.KAFKA_REQUEST_TIMEOUT === void 0 ? 5e3 : parseInt(process.env.KAFKA_REQUEST_TIMEOUT),\n kafka_log_level: process.env.KAFKA_LOG_LEVEL === void 0 ? \"nothing\" : process.env.KAFKA_LOG_LEVEL,\n kafka_keep_alive: process.env.KAFKA_KEEP_ALIVE === void 0 ? 3e4 : parseInt(process.env.KAFKA_KEEP_ALIVE),\n kafka_use_ssl: process.env.KAFKA_USE_SSL === void 0 ? false : process.env.KAFKA_USE_SSL === \"true\" ? true : false,\n kafka_ssl_rejectUnauthorized: process.env.KAFKA_SSL_REJECT_UNAUTHORIZED === void 0 ? true : process.env.KAFKA_SSL_REJECT_UNAUTHORIZED === \"true\" ? true : false,\n kafka_ssl_cafile: process.env.KAFKA_SSL_CAFILE === void 0 ? \"/my/custom/ca.crt\" : process.env.KAFKA_SSL_CAFILE,\n kafka_ssl_keyfile: process.env.KAFKA_SSL_KEYFILE === void 0 ? \"/my/custom/client-key.pem\" : process.env.KAFKA_SSL_KEYFILE,\n kafka_ssl_certfile: process.env.KAFKA_SSL_CERTFILE === void 0 ? \"/my/custom/client-cert.pem\" : process.env.KAFKA_SSL_CERTFILE,\n kafka_consume_from_beginning: process.env.KAFKA_CONSUME_FROM_BEGINNING === void 0 ? true : process.env.KAFKA_CONSUME_FROM_BEGINNING === \"true\" ? true : false,\n observabilityPublishMode: process.env.OBSERVABILITY_PUBLISH_MODE === void 0 ? \"PROXY\" : process.env.OBSERVABILITY_PUBLISH_MODE,\n stsUiTermObservabilityConsumptionMode: process.env.STSUITERM_OBSERVABILITY_CONSUMPTION_MODE === void 0 ? \"PROXY\" : process.env.STSUITERM_OBSERVABILITY_CONSUMPTION_MODE\n };\n const ReadFile = (passwordFile) => {\n try {\n accessSync(passwordFile, constants.R_OK);\n const data = readFileSync(passwordFile, \"utf8\");\n if (logger) ;\n return data;\n } catch (err) {\n return \"\";\n }\n };\n const fileconfig = [\n { fileprop: \"dbpasswordfile\", prop: \"dbpassword\" },\n // JWKS secret file processing\n { fileprop: \"tsjwksstorepathfile\", prop: \"tsjwksstorepath\" },\n // InfluxDB file processing\n { fileprop: \"influxDB_APITokenFile\", prop: \"influxDB_APIToken\" }\n ];\n fileconfig.forEach((v) => {\n if (defconfig[v.fileprop] !== void 0) {\n defconfig[v.prop] = ReadFile(defconfig[v.fileprop]);\n }\n });\n for (const [key, val] of Object.entries(defconfig)) {\n envOptions2[key] = val;\n }\n}\nfunction $SetupOptions(envOptions2) {\n SetupConfig(envOptions2);\n const options = envOptions2;\n if (options.dbhost) {\n const hosts = options.dbhost.split(\",\");\n envOptions2.connectionString = hosts.map((host) => {\n return `postgresql://${options.dbuser}:${options.dbpassword}@${host}/${options.database}`;\n }).join(\",\");\n envOptions2.defaultDatabaseConnectionString = hosts.map((host) => {\n return `postgresql://${options.dbuser}:${options.dbpassword}@${host}/postgres`;\n }).join(\",\");\n }\n}\nfunction $ResetOptionsEx() {\n for (const prop of Object.getOwnPropertyNames(envOptions)) {\n delete envOptions[prop];\n }\n return envOptions;\n}\nfunction $ResetOptions() {\n $ResetOptionsEx();\n $SetupOptions(envOptions);\n return envOptions;\n}\nconst envOptionsHandler = {\n get(target, prop, receiver) {\n if (Object.keys(target).length === 0) {\n $SetupOptions(target);\n }\n return Reflect.get(target, prop, receiver);\n }\n};\nconst goptions = new Proxy(envOptions, envOptionsHandler);\nclass AgentManager {\n constructor(agentManagerOptions) {\n __privateAdd(this, _options);\n __privateAdd(this, _httpAgent, null);\n __privateAdd(this, _httpsAgent, null);\n __privateAdd(this, _agentResetInterval, null);\n __privateAdd(this, _requestCount, 0);\n __privateAdd(this, _SetupResetInterval, () => {\n __privateSet(this, _agentResetInterval, setTimeout(() => {\n this.ResetAgent();\n __privateGet(this, _SetupResetInterval).call(this);\n }, __privateGet(this, _options).agentResetInterval).unref());\n });\n __privateAdd(this, _GetAgentOptions, (https2) => {\n let options;\n if (__privateGet(this, _options).agentOptions) {\n options = {\n keepAlive: __privateGet(this, _options).agentOptions.keepAlive,\n maxSockets: __privateGet(this, _options).agentOptions.maxSockets,\n maxTotalSockets: __privateGet(this, _options).agentOptions.maxTotalSockets,\n maxFreeSockets: __privateGet(this, _options).agentOptions.maxFreeSockets,\n timeout: __privateGet(this, _options).agentOptions.timeout\n //@@ config\n };\n if (https2 === true) {\n options.rejectUnauthorized = __privateGet(this, _options).agentOptions.rejectUnauthorized;\n }\n } else {\n options = {\n keepAlive: process.env.NODE_ENV === \"test\" ? false : goptions.keepAlive,\n maxSockets: goptions.maxSockets,\n maxTotalSockets: goptions.maxTotalSockets,\n maxFreeSockets: goptions.maxFreeSockets,\n timeout: 3e4\n //@@ config\n };\n if (https2 === true) {\n options.rejectUnauthorized = goptions.isProduction;\n }\n }\n return options;\n });\n __privateSet(this, _options, agentManagerOptions);\n if (__privateGet(this, _options).agentResetInterval) {\n __privateGet(this, _SetupResetInterval).call(this);\n }\n }\n IncRequestCount() {\n __privateWrapper(this, _requestCount)._++;\n if (__privateGet(this, _options).agentResetCount) {\n if (__privateGet(this, _requestCount) % __privateGet(this, _options).agentResetCount === 0) {\n this.ResetAgent();\n }\n }\n }\n IsHttps(protocol) {\n if (protocol.toLowerCase().startsWith(\"https:\")) {\n return true;\n }\n return false;\n }\n GetAgent(protocol) {\n if (protocol.toLowerCase().startsWith(\"https:\")) {\n if (__privateGet(this, _httpsAgent) === null) {\n __privateSet(this, _httpsAgent, new https.Agent(__privateGet(this, _GetAgentOptions).call(this, true)));\n }\n return __privateGet(this, _httpsAgent);\n } else if (protocol.toLowerCase().startsWith(\"http:\")) {\n if (__privateGet(this, _httpAgent) === null) {\n __privateSet(this, _httpAgent, new http.Agent(__privateGet(this, _GetAgentOptions).call(this, false)));\n }\n return __privateGet(this, _httpAgent);\n } else {\n return null;\n }\n }\n ResetAgent() {\n __privateSet(this, _httpAgent, null);\n __privateSet(this, _httpsAgent, null);\n }\n /*\n url\n ,method: 'post'\n ,data: payload\n ,headers: headers\n ,httpsAgent: this.#agentManager.GetAgent(url)\n */\n /*\n postgresContainer = await new GenericContainer(\"postgres\")\n .withExposedPorts(5432)\n .withEnvironment({\n POSTGRES_PASSWORD: \"postgres\",\n //UV_THREADPOOL_SIZE: \"64\"\n })\n .withCommand(['-c', 'max_connections=20'])\n .start();\n */\n Terminate() {\n if (__privateGet(this, _agentResetInterval)) {\n clearTimeout(__privateGet(this, _agentResetInterval));\n __privateSet(this, _agentResetInterval, null);\n }\n if (__privateGet(this, _httpAgent)) {\n __privateGet(this, _httpAgent).destroy();\n __privateSet(this, _httpAgent, null);\n }\n if (__privateGet(this, _httpsAgent)) {\n __privateGet(this, _httpsAgent).destroy();\n __privateSet(this, _httpsAgent, null);\n }\n }\n}\n_options = new WeakMap();\n_httpAgent = new WeakMap();\n_httpsAgent = new WeakMap();\n_agentResetInterval = new WeakMap();\n_requestCount = new WeakMap();\n_SetupResetInterval = new WeakMap();\n_GetAgentOptions = new WeakMap();\nclass STSAxiosConfig {\n constructor(url, method, headers, timeout) {\n __privateAdd(this, _url);\n __privateAdd(this, _method);\n __privateAdd(this, _headers);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n __privateAdd(this, _data);\n __privateAdd(this, _agentManager);\n __privateAdd(this, _timeout);\n __privateSet(this, _url, url);\n __privateSet(this, _method, method);\n __privateSet(this, _headers, headers);\n if (timeout !== void 0) {\n __privateSet(this, _timeout, timeout);\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n withData(data) {\n __privateSet(this, _data, data);\n return this;\n }\n withTimeout(timeout) {\n __privateSet(this, _timeout, timeout);\n return this;\n }\n withAgentManager(agentManager) {\n __privateSet(this, _agentManager, agentManager);\n return this;\n }\n get config() {\n const retVal = {\n url: __privateGet(this, _url),\n method: __privateGet(this, _method),\n headers: __privateGet(this, _headers)\n };\n if (__privateGet(this, _agentManager) !== void 0) {\n if (__privateGet(this, _agentManager).IsHttps(__privateGet(this, _url))) {\n retVal.httpsAgent = __privateGet(this, _agentManager).GetAgent(__privateGet(this, _url));\n } else {\n retVal.httpAgent = __privateGet(this, _agentManager).GetAgent(__privateGet(this, _url));\n }\n }\n if (__privateGet(this, _data) !== void 0) {\n retVal.data = __privateGet(this, _data);\n }\n if (__privateGet(this, _timeout) !== void 0) {\n retVal.timeout = __privateGet(this, _timeout);\n }\n return retVal;\n }\n}\n_url = new WeakMap();\n_method = new WeakMap();\n_headers = new WeakMap();\n_data = new WeakMap();\n_agentManager = new WeakMap();\n_timeout = new WeakMap();\nexport {\n $ResetOptions,\n $ResetOptionsEx,\n AgentManager,\n STSAxiosConfig,\n goptions\n};\n//# sourceMappingURL=stsconfig.mjs.map\n","import { v4 as uuidv4 } from 'uuid';\n\nimport isNode from 'detect-node'\n\nimport axios, { AxiosError, AxiosResponse, AxiosRequestConfig } from 'axios';\n\nimport { ISTSLogger, Sleep } from '@nsshunt/stsutils'\n\nimport chalk from 'chalk'\n\nimport { IDomainResource } from './STSFhirTypes'\nimport { StatusCodes } from 'http-status-codes';\nimport { AgentManager } from '@nsshunt/stsconfig';\n\nexport interface IFhirClientTelemetryEvents {\n AuthenticationErrorInc: () => void;\n RetryInc: () => void;\n}\n\nexport interface IFhirClientOptions {\n logger: ISTSLogger\n fhirEndpoint: string\n testingMode: boolean\n GetAccessToken: () => Promise<string | null>\n ResetAccessToken: () => void\n clientTelemetryEvents?: IFhirClientTelemetryEvents\n agentOptions?: {\n\t\tkeepAlive: boolean\n\t\tmaxSockets: number\n\t\tmaxTotalSockets: number\n\t\tmaxFreeSockets: number\n\t\trejectUnauthorized: boolean\n timeout: number\n\t}\n stsfhirapiroot?: string\n}\n\ndeclare interface IMethodMetadata {\n id: string\n retries: number\n testFailIndexBefore: number\n url: string\n httpVerb: string, \n domainResource: Partial<IDomainResource> | Partial<IDomainResource>[] | null\n filters: string[] | null\n errorCb: (error: Error) => void\n}\n\ndeclare interface IInvokeAPIReturnData {\n response: AxiosResponse | null\n retry: boolean\n}\n\nexport class FhirClient {\n #options: IFhirClientOptions;\n #DUMMY_USER = 'USR_user01@stsmda.com.au'; //@@ needs to come from headers ??\n #invokeMethods: Record<string, IMethodMetadata> = { }\n #maxRetries: number = 5;\n #sleepDuration: number[] = [ 50, 100, 200, 500, 1000, 2000, 5000 ];\n #NoRetryStatusCodes: StatusCodes[] = [\n StatusCodes.NOT_FOUND,\n StatusCodes.CONFLICT\n ];\n #stsfhirapiroot = '/stsfhir/r5'; // Default value\n #agentManager: AgentManager | null = null;\n\n constructor(options: IFhirClientOptions) {\n this.#options = options;\n\n // Override defaults\n if (this.#options.stsfhirapiroot !== undefined) {\n this.#stsfhirapiroot = this.#options.stsfhirapiroot;\n }\n\n if (isNode) {\n if (this.#options.agentOptions) {\n this.#agentManager = new AgentManager({\n agentOptions: this.#options.agentOptions\n });\n } else {\n this.#agentManager = new AgentManager({});\n }\n }\n }\n\n get options(): IFhirClientOptions {\n return this.#options;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n #LogDebugMessage = (message: any) => {\n this.#options.logger.debug(message);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n #LogErrorMessage = (message: any) => {\n this.#options.logger.error(message);\n }\n \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n #HandleError = (error: any): number => {\n this.#LogDebugMessage(chalk.red(`HandleError(): Error: [${error}]`));\n let responseCode = 500;\n if (axios.isAxiosError(error)) {\n const axiosError: AxiosError = error;\n if (axiosError.response) {\n responseCode = axiosError.response.status;\n this.#LogDebugMessage(chalk.red(`AXIOS Error Response.Status = [${axiosError.response.status}]`));\n if (axiosError.response.headers) {\n this.#LogErrorMessage(chalk.red(` headers: [${JSON.stringify(axiosError.response.headers)}]`));\n }\n if (axiosError.response.data) {\n this.#LogErrorMessage(chalk.red(` data: [${JSON.stringify(axiosError.response.data)}]`));\n }\n try {\n if (axiosError.response.config) {\n this.#LogErrorMessage(chalk.red(` config: [${JSON.stringify(axiosError.response.config)}]`));\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (innererror: any) {\n this.#LogErrorMessage(chalk.red(` could not get response config, error: [${innererror}]`));\n }\n } else {\n this.#LogDebugMessage(chalk.red(`AXIOS Error = [${axiosError}]`));\n }\n }\n return responseCode;\n }\n\n #InvokeResourceAPI = async (url: string, httpVerb: string, \n domainResource: Partial<IDomainResource> | Partial<IDomainResource>[] | null, \n filters: string[] | null, errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n\n const id = uuidv4();\n this.#invokeMethods[id] = {\n id,\n retries: 0,\n testFailIndexBefore: 1,\n url,\n httpVerb,\n domainResource,\n filters,\n errorCb\n }\n\n const InvokeAPI = async (id: string): Promise<IInvokeAPIReturnData> => {\n const metadataRecord = this.#invokeMethods[id];\n let performRetry = false;\n \n const returnData = await this.#__InvokeResourceAPI(metadataRecord, (statusCode: StatusCodes, error: Error): void => {\n console.error(chalk.red(`#InvokeResourceAPI(): Error: [${error}], Attempt: [${metadataRecord.retries + 1}]`));\n const noRetryIndex = this.#NoRetryStatusCodes.indexOf(statusCode);\n if (noRetryIndex === -1) {\n if (statusCode === StatusCodes.UNAUTHORIZED) {\n // Reset the token in an attempt to get a new one in the next retry\n console.error(chalk.red(`#InvokeResourceAPI(): Authentication error, resetting access_token (to null).`));\n this.#options.ResetAccessToken();\n if (this.#options.clientTelemetryEvents) {\n this.#options.clientTelemetryEvents.AuthenticationErrorInc();\n }\n }\n if (isNode && this.#agentManager) {\n // Reset the agent in an attempt to get a new one in the next retry\n console.error(chalk.red(`#InvokeResourceAPI(): Resetting https agent (to null).`));\n this.#agentManager.ResetAgent();\n }\n performRetry = true;\n }\n });\n return {\n response: returnData,\n retry: performRetry\n };\n }\n\n let retVal: IInvokeAPIReturnData | null = null;\n while (this.#invokeMethods[id].retries < this.#maxRetries) {\n retVal = await InvokeAPI(id);\n if (retVal.retry === false) {\n delete this.#invokeMethods[id];\n break;\n } else {\n console.log(`Going to retry. Current attempts: [${this.#invokeMethods[id].retries + 1}]`)\n console.log(`Sleeping: [${this.#sleepDuration[this.#invokeMethods[id].retries]}]`)\n\n await Sleep(this.#sleepDuration[this.#invokeMethods[id].retries]);\n this.#invokeMethods[id].retries++;\n if (this.#options.clientTelemetryEvents) {\n this.#options.clientTelemetryEvents.RetryInc();\n }\n }\n }\n if (retVal) {\n if (retVal.retry === true) {\n errorCb(new Error(`#InvokeResourceAPI(): Max retries exceeded. Max Retries: [${this.#invokeMethods[id].retries}]`));\n delete this.#invokeMethods[id];\n return null;\n } else {\n return retVal.response;\n }\n } else {\n return null;\n }\n }\n\n #TestMode = (metaData: IMethodMetadata, errorCb: (statusCode: StatusCodes, error: Error) => void): boolean => {\n const { id, url, httpVerb, filters, retries } = metaData;\n if (retries < 1) {\n errorCb(401, new Error(`Testing Error Only. Error Code: [401], Message ID: [${id}, url: [${url}], httpVerb: [${httpVerb}], filters: [${filters}], Retries: [${retries}]`));\n return true;\n }\n\n if (retries < 2) {\n errorCb(500, new Error(`Testing Error Only. Error Code: [500], Message ID: [${id}, url: [${url}], httpVerb: [${httpVerb}], filters: [${filters}], Retries: [${retries}]`));\n return true;\n }\n return false;\n }\n\n #__InvokeResourceAPI = async (metaData: IMethodMetadata, errorCb: (statusCode: StatusCodes, error: Error) => void): Promise<AxiosResponse | null> => {\n try {\n const { url, httpVerb, domainResource, filters } = metaData;\n\n if (this.#options.testingMode) {\n if (this.#TestMode(metaData, errorCb)) {\n return null;\n }\n }\n\n const accessToken = await this.#options.GetAccessToken();\n const headers = {\n 'Content-Type': 'application/json', \n 'Authorization': `Bearer ${accessToken}`,\n 'x-sts_user_id': this.#DUMMY_USER\n };\n const requestConfig: AxiosRequestConfig = {\n url: url\n ,method: httpVerb\n ,headers: headers\n }\n if (isNode && this.#agentManager) {\n if (this.#agentManager.IsHttps(url)) {\n requestConfig.httpsAgent = this.#agentManager.GetAgent(url);\n } else {\n requestConfig.httpAgent = this.#agentManager.GetAgent(url);\n }\n }\n\n if (filters) {\n requestConfig.data = filters;\n } else if (domainResource) {\n requestConfig.data = domainResource\n }\n const retVal = await axios(requestConfig);\n\n return retVal;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (error: any) {\n const responseCode = this.#HandleError(error);\n errorCb(responseCode, error);\n return null;\n }\n }\n\n GetResource = async (resource: string, id: string, filters: string[] | null, errorCb: (error: Error) => void): Promise<IDomainResource | null> => {\n const url = `${this.#options.fhirEndpoint}${this.#stsfhirapiroot}/${resource}/${id}`;\n const response = await this.#InvokeResourceAPI(url, 'get', null, filters, errorCb);\n if (response) {\n return response.data as IDomainResource;\n } else {\n return null;\n }\n }\n\n GetResources = async (resource: string, filters: string[] | null, errorCb: (error: Error) => void): Promise<IDomainResource[] | null> => {\n const url = `${this.#options.fhirEndpoint}${this.#stsfhirapiroot}/${resource}`;\n const response = await this.#InvokeResourceAPI(url, 'get', null, filters, errorCb);\n if (response) {\n return response.data as IDomainResource[];\n } else {\n return null;\n }\n }\n\n CreateResource = async (resource: string, domainResource: IDomainResource, errorCb: (error: Error) => void): Promise<IDomainResource | null> => {\n const url = `${this.#options.fhirEndpoint}${this.#stsfhirapiroot}/${resource}`;\n const response = await this.#InvokeResourceAPI(url, 'post', domainResource, null, errorCb);\n if (response) {\n if (response.status === StatusCodes.CREATED) {\n return response.data as IDomainResource;\n } else {\n errorCb(new Error(`CreateResource(): Invalid response status code: [${response.status}] expected: [${StatusCodes.CREATED}]`));\n return null;\n }\n } else {\n return null;\n }\n }\n\n UpdateResource = async (resource: string, domainResource: IDomainResource, errorCb: (error: Error) => void): Promise<IDomainResource | null> => {\n const url = `${this.#options.fhirEndpoint}${this.#stsfhirapiroot}/${resource}/${domainResource.id}`;\n const response = await this.#InvokeResourceAPI(url, 'put', domainResource, null, errorCb);\n if (response) {\n return response.data as IDomainResource;\n } else {\n return null;\n }\n }\n\n UpdateResources = async (resource: string, domainResources: IDomainResource[], errorCb: (error: Error) => void): Promise<IDomainResource[] | null> => {\n const url = `${this.#options.fhirEndpoint}${this.#stsfhirapiroot}/${resource}`;\n const response = await this.#InvokeResourceAPI(url, 'put', domainResources, null, errorCb);\n if (response) {\n return response.data as IDomainResource[];\n } else {\n return null;\n }\n }\n\n PatchResource = async (resource: string, domainResource: IDomainResource, errorCb: (error: Error) => void): Promise<IDomainResource | null> => {\n const url = `${this.#options.fhirEndpoint}${this.#stsfhirapiroot}/${resource}/${domainResource.id}`;\n const response = await this.#InvokeResourceAPI(url, 'patch', domainResource, null, errorCb);\n if (response) {\n return response.data as IDomainResource;\n } else {\n return null;\n }\n }\n\n PatchResources = async (resource: string, domainResources: Partial<IDomainResource>[], errorCb: (error: Error) => void): Promise<IDomainResource[] | null> => {\n const url = `${this.#options.fhirEndpoint}${this.#stsfhirapiroot}/${resource}`;\n const response = await this.#InvokeResourceAPI(url, 'patch', domainResources, null, errorCb);\n if (response) {\n return response.data as IDomainResource[];\n } else {\n return null;\n }\n }\n\n DeleteResource = async (resource: string, id: string, errorCb: (error: Error) => void): Promise<IDomainResource | null> => {\n const url = `${this.#options.fhirEndpoint}${this.#stsfhirapiroot}/${resource}/${id}`;\n const response = await this.#InvokeResourceAPI(url, 'delete', null, null, errorCb);\n if (response) {\n return response.data as IDomainResource;\n } else {\n return null;\n }\n }\n\n DeleteResources = async (resource: string, domainResources: Partial<IDomainResource>[], errorCb: (error: Error) => void): Promise<IDomainResource[] | null> => {\n const url = `${this.#options.fhirEndpoint}${this.#stsfhirapiroot}/${resource}`;\n const response = await this.#InvokeResourceAPI(url, 'delete', domainResources, null, errorCb);\n if (response) {\n return response.data as IDomainResource[];\n } else {\n return null;\n }\n }\n\n GetLatency = async () => {\n const url = `${this.#options.fhirEndpoint}${this.#stsfhirapiroot}/latency`; // /stsfhir/r5/\n try {\n const headers = {\n 'Content-Type': 'application/json', \n };\n\n const requestConfig: AxiosRequestConfig = {\n url: url\n ,method: 'get'\n ,headers: headers\n }\n if (isNode && this.#agentManager) {\n if (this.#agentManager.IsHttps(url)) {\n requestConfig.httpsAgent = this.#agentManager.GetAgent(url)\n } else {\n requestConfig.httpAgent = this.#agentManager.GetAgent(url)\n }\n }\n\n const retVal = await axios(requestConfig);\n\n return retVal;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any \n } catch (error: any) {\n this.#HandleError(error);\n }\n };\n}\n"],"names":["colorName","require$$0","conversions","path","route","require$$1","colorConvert","styles","name","browser","stringReplaceAll","stringEncaseCRLFWithFirstIndex","util","chalk","templates","ansiStyles","stdoutColor","stderrColor","require$$2","isArray","levelMapping","applyOptions","chalkFactory","chalkTag","Chalk","ChalkClass","createBuilder","createStyler","usedModels","proto","applyStyle","template","require$$3","StatusCodes","crypto","mainModule","__typeError","__accessCheck","__privateGet","__privateAdd","__privateSet","fs","dotenv.config","_options","uuidv4","id"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17]}