@nsshunt/stsrest01client 1.0.43 → 1.0.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +646 -4091
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +645 -4090
- package/dist/index.mjs.map +1 -1
- package/package.json +7 -7
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["require_color_name","require_conversions","require_route","require_color_convert","require_ansi_styles","require_browser","require_util","require_templates","import_source","#options","#LogDebugMessage","#LogErrorMessage","#TestMode","#accessToken","#DUMMY_USER","#noRetries","#invokeMethods","#__InvokeResourceAPI","#NoRetryStatusCodes","#maxRetries","#sleepDuration","#options","#axiosClient","#checkResName"],"sources":["../__vite-browser-external","../node_modules/dotenv/lib/main.js","../node_modules/@nsshunt/stsconfig/dist/index.mjs","../node_modules/detect-node/browser.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/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/axiosClient.ts","../src/stsrest01Client.ts"],"sourcesContent":["module.exports = {}","const fs = require('fs')\nconst path = require('path')\nconst os = require('os')\nconst crypto = require('crypto')\n\n// Array of tips to display randomly\nconst TIPS = [\n '◈ encrypted .env [www.dotenvx.com]',\n '◈ secrets for agents [www.dotenvx.com]',\n '⌁ auth for agents [www.vestauth.com]',\n '⌘ custom filepath { path: \\'/custom/path/.env\\' }',\n '⌘ enable debugging { debug: true }',\n '⌘ override existing { override: true }',\n '⌘ suppress logs { quiet: true }',\n '⌘ multiple files { path: [\\'.env.local\\', \\'.env\\'] }'\n]\n\n// Get a random tip from the tips array\nfunction _getRandomTip () {\n return TIPS[Math.floor(Math.random() * TIPS.length)]\n}\n\nfunction parseBoolean (value) {\n if (typeof value === 'string') {\n return !['false', '0', 'no', 'off', ''].includes(value.toLowerCase())\n }\n return Boolean(value)\n}\n\nfunction supportsAnsi () {\n return process.stdout.isTTY // && process.env.TERM !== 'dumb'\n}\n\nfunction dim (text) {\n return supportsAnsi() ? `\\x1b[2m${text}\\x1b[0m` : text\n}\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 options = options || {}\n\n const vaultPath = _vaultPath(options)\n options.path = vaultPath // parse .env.vault\n const result = DotenvModule.configDotenv(options)\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 _warn (message) {\n console.error(`⚠ ${message}`)\n}\n\nfunction _debug (message) {\n console.log(`┆ ${message}`)\n}\n\nfunction _log (message) {\n console.log(`◇ ${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 const debug = parseBoolean(process.env.DOTENV_CONFIG_DEBUG || (options && options.debug))\n const quiet = parseBoolean(process.env.DOTENV_CONFIG_QUIET || (options && options.quiet))\n\n if (debug || !quiet) {\n _log('loading env from encrypted .env.vault')\n }\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 let processEnv = process.env\n if (options && options.processEnv != null) {\n processEnv = options.processEnv\n }\n let debug = parseBoolean(processEnv.DOTENV_CONFIG_DEBUG || (options && options.debug))\n let quiet = parseBoolean(processEnv.DOTENV_CONFIG_QUIET || (options && options.quiet))\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 const populated = DotenvModule.populate(processEnv, parsedAll, options)\n\n // handle user settings DOTENV_CONFIG_ options inside .env file(s)\n debug = parseBoolean(processEnv.DOTENV_CONFIG_DEBUG || debug)\n quiet = parseBoolean(processEnv.DOTENV_CONFIG_QUIET || quiet)\n\n if (debug || !quiet) {\n const keysCount = Object.keys(populated).length\n const shortPaths = []\n for (const filePath of optionPaths) {\n try {\n const relative = path.relative(process.cwd(), filePath)\n shortPaths.push(relative)\n } catch (e) {\n if (debug) {\n _debug(`failed to load ${filePath} ${e.message}`)\n }\n lastError = e\n }\n }\n\n _log(`injecting env (${keysCount}) from ${shortPaths.join(',')} ${dim(`// tip: ${_getRandomTip()}`)}`)\n }\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}`)\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 const populated = {}\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 populated[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 populated[key] = parsed[key]\n }\n }\n\n return populated\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","import { accessSync, constants, readFileSync } from \"node:fs\";\nimport dotenv from \"dotenv\";\n//#region \\0rolldown/runtime.js\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJSMin = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);\nvar __copyProps = (to, from, except, desc) => {\n\tif (from && typeof from === \"object\" || typeof from === \"function\") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {\n\t\tkey = keys[i];\n\t\tif (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {\n\t\t\tget: ((k) => from[k]).bind(null, key),\n\t\t\tenumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable\n\t\t});\n\t}\n\treturn to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", {\n\tvalue: mod,\n\tenumerable: true\n}) : target, mod));\n//#endregion\n//#region node_modules/color-name/index.js\nvar require_color_name = /* @__PURE__ */ __commonJSMin(((exports, module) => {\n\tmodule.exports = {\n\t\t\"aliceblue\": [\n\t\t\t240,\n\t\t\t248,\n\t\t\t255\n\t\t],\n\t\t\"antiquewhite\": [\n\t\t\t250,\n\t\t\t235,\n\t\t\t215\n\t\t],\n\t\t\"aqua\": [\n\t\t\t0,\n\t\t\t255,\n\t\t\t255\n\t\t],\n\t\t\"aquamarine\": [\n\t\t\t127,\n\t\t\t255,\n\t\t\t212\n\t\t],\n\t\t\"azure\": [\n\t\t\t240,\n\t\t\t255,\n\t\t\t255\n\t\t],\n\t\t\"beige\": [\n\t\t\t245,\n\t\t\t245,\n\t\t\t220\n\t\t],\n\t\t\"bisque\": [\n\t\t\t255,\n\t\t\t228,\n\t\t\t196\n\t\t],\n\t\t\"black\": [\n\t\t\t0,\n\t\t\t0,\n\t\t\t0\n\t\t],\n\t\t\"blanchedalmond\": [\n\t\t\t255,\n\t\t\t235,\n\t\t\t205\n\t\t],\n\t\t\"blue\": [\n\t\t\t0,\n\t\t\t0,\n\t\t\t255\n\t\t],\n\t\t\"blueviolet\": [\n\t\t\t138,\n\t\t\t43,\n\t\t\t226\n\t\t],\n\t\t\"brown\": [\n\t\t\t165,\n\t\t\t42,\n\t\t\t42\n\t\t],\n\t\t\"burlywood\": [\n\t\t\t222,\n\t\t\t184,\n\t\t\t135\n\t\t],\n\t\t\"cadetblue\": [\n\t\t\t95,\n\t\t\t158,\n\t\t\t160\n\t\t],\n\t\t\"chartreuse\": [\n\t\t\t127,\n\t\t\t255,\n\t\t\t0\n\t\t],\n\t\t\"chocolate\": [\n\t\t\t210,\n\t\t\t105,\n\t\t\t30\n\t\t],\n\t\t\"coral\": [\n\t\t\t255,\n\t\t\t127,\n\t\t\t80\n\t\t],\n\t\t\"cornflowerblue\": [\n\t\t\t100,\n\t\t\t149,\n\t\t\t237\n\t\t],\n\t\t\"cornsilk\": [\n\t\t\t255,\n\t\t\t248,\n\t\t\t220\n\t\t],\n\t\t\"crimson\": [\n\t\t\t220,\n\t\t\t20,\n\t\t\t60\n\t\t],\n\t\t\"cyan\": [\n\t\t\t0,\n\t\t\t255,\n\t\t\t255\n\t\t],\n\t\t\"darkblue\": [\n\t\t\t0,\n\t\t\t0,\n\t\t\t139\n\t\t],\n\t\t\"darkcyan\": [\n\t\t\t0,\n\t\t\t139,\n\t\t\t139\n\t\t],\n\t\t\"darkgoldenrod\": [\n\t\t\t184,\n\t\t\t134,\n\t\t\t11\n\t\t],\n\t\t\"darkgray\": [\n\t\t\t169,\n\t\t\t169,\n\t\t\t169\n\t\t],\n\t\t\"darkgreen\": [\n\t\t\t0,\n\t\t\t100,\n\t\t\t0\n\t\t],\n\t\t\"darkgrey\": [\n\t\t\t169,\n\t\t\t169,\n\t\t\t169\n\t\t],\n\t\t\"darkkhaki\": [\n\t\t\t189,\n\t\t\t183,\n\t\t\t107\n\t\t],\n\t\t\"darkmagenta\": [\n\t\t\t139,\n\t\t\t0,\n\t\t\t139\n\t\t],\n\t\t\"darkolivegreen\": [\n\t\t\t85,\n\t\t\t107,\n\t\t\t47\n\t\t],\n\t\t\"darkorange\": [\n\t\t\t255,\n\t\t\t140,\n\t\t\t0\n\t\t],\n\t\t\"darkorchid\": [\n\t\t\t153,\n\t\t\t50,\n\t\t\t204\n\t\t],\n\t\t\"darkred\": [\n\t\t\t139,\n\t\t\t0,\n\t\t\t0\n\t\t],\n\t\t\"darksalmon\": [\n\t\t\t233,\n\t\t\t150,\n\t\t\t122\n\t\t],\n\t\t\"darkseagreen\": [\n\t\t\t143,\n\t\t\t188,\n\t\t\t143\n\t\t],\n\t\t\"darkslateblue\": [\n\t\t\t72,\n\t\t\t61,\n\t\t\t139\n\t\t],\n\t\t\"darkslategray\": [\n\t\t\t47,\n\t\t\t79,\n\t\t\t79\n\t\t],\n\t\t\"darkslategrey\": [\n\t\t\t47,\n\t\t\t79,\n\t\t\t79\n\t\t],\n\t\t\"darkturquoise\": [\n\t\t\t0,\n\t\t\t206,\n\t\t\t209\n\t\t],\n\t\t\"darkviolet\": [\n\t\t\t148,\n\t\t\t0,\n\t\t\t211\n\t\t],\n\t\t\"deeppink\": [\n\t\t\t255,\n\t\t\t20,\n\t\t\t147\n\t\t],\n\t\t\"deepskyblue\": [\n\t\t\t0,\n\t\t\t191,\n\t\t\t255\n\t\t],\n\t\t\"dimgray\": [\n\t\t\t105,\n\t\t\t105,\n\t\t\t105\n\t\t],\n\t\t\"dimgrey\": [\n\t\t\t105,\n\t\t\t105,\n\t\t\t105\n\t\t],\n\t\t\"dodgerblue\": [\n\t\t\t30,\n\t\t\t144,\n\t\t\t255\n\t\t],\n\t\t\"firebrick\": [\n\t\t\t178,\n\t\t\t34,\n\t\t\t34\n\t\t],\n\t\t\"floralwhite\": [\n\t\t\t255,\n\t\t\t250,\n\t\t\t240\n\t\t],\n\t\t\"forestgreen\": [\n\t\t\t34,\n\t\t\t139,\n\t\t\t34\n\t\t],\n\t\t\"fuchsia\": [\n\t\t\t255,\n\t\t\t0,\n\t\t\t255\n\t\t],\n\t\t\"gainsboro\": [\n\t\t\t220,\n\t\t\t220,\n\t\t\t220\n\t\t],\n\t\t\"ghostwhite\": [\n\t\t\t248,\n\t\t\t248,\n\t\t\t255\n\t\t],\n\t\t\"gold\": [\n\t\t\t255,\n\t\t\t215,\n\t\t\t0\n\t\t],\n\t\t\"goldenrod\": [\n\t\t\t218,\n\t\t\t165,\n\t\t\t32\n\t\t],\n\t\t\"gray\": [\n\t\t\t128,\n\t\t\t128,\n\t\t\t128\n\t\t],\n\t\t\"green\": [\n\t\t\t0,\n\t\t\t128,\n\t\t\t0\n\t\t],\n\t\t\"greenyellow\": [\n\t\t\t173,\n\t\t\t255,\n\t\t\t47\n\t\t],\n\t\t\"grey\": [\n\t\t\t128,\n\t\t\t128,\n\t\t\t128\n\t\t],\n\t\t\"honeydew\": [\n\t\t\t240,\n\t\t\t255,\n\t\t\t240\n\t\t],\n\t\t\"hotpink\": [\n\t\t\t255,\n\t\t\t105,\n\t\t\t180\n\t\t],\n\t\t\"indianred\": [\n\t\t\t205,\n\t\t\t92,\n\t\t\t92\n\t\t],\n\t\t\"indigo\": [\n\t\t\t75,\n\t\t\t0,\n\t\t\t130\n\t\t],\n\t\t\"ivory\": [\n\t\t\t255,\n\t\t\t255,\n\t\t\t240\n\t\t],\n\t\t\"khaki\": [\n\t\t\t240,\n\t\t\t230,\n\t\t\t140\n\t\t],\n\t\t\"lavender\": [\n\t\t\t230,\n\t\t\t230,\n\t\t\t250\n\t\t],\n\t\t\"lavenderblush\": [\n\t\t\t255,\n\t\t\t240,\n\t\t\t245\n\t\t],\n\t\t\"lawngreen\": [\n\t\t\t124,\n\t\t\t252,\n\t\t\t0\n\t\t],\n\t\t\"lemonchiffon\": [\n\t\t\t255,\n\t\t\t250,\n\t\t\t205\n\t\t],\n\t\t\"lightblue\": [\n\t\t\t173,\n\t\t\t216,\n\t\t\t230\n\t\t],\n\t\t\"lightcoral\": [\n\t\t\t240,\n\t\t\t128,\n\t\t\t128\n\t\t],\n\t\t\"lightcyan\": [\n\t\t\t224,\n\t\t\t255,\n\t\t\t255\n\t\t],\n\t\t\"lightgoldenrodyellow\": [\n\t\t\t250,\n\t\t\t250,\n\t\t\t210\n\t\t],\n\t\t\"lightgray\": [\n\t\t\t211,\n\t\t\t211,\n\t\t\t211\n\t\t],\n\t\t\"lightgreen\": [\n\t\t\t144,\n\t\t\t238,\n\t\t\t144\n\t\t],\n\t\t\"lightgrey\": [\n\t\t\t211,\n\t\t\t211,\n\t\t\t211\n\t\t],\n\t\t\"lightpink\": [\n\t\t\t255,\n\t\t\t182,\n\t\t\t193\n\t\t],\n\t\t\"lightsalmon\": [\n\t\t\t255,\n\t\t\t160,\n\t\t\t122\n\t\t],\n\t\t\"lightseagreen\": [\n\t\t\t32,\n\t\t\t178,\n\t\t\t170\n\t\t],\n\t\t\"lightskyblue\": [\n\t\t\t135,\n\t\t\t206,\n\t\t\t250\n\t\t],\n\t\t\"lightslategray\": [\n\t\t\t119,\n\t\t\t136,\n\t\t\t153\n\t\t],\n\t\t\"lightslategrey\": [\n\t\t\t119,\n\t\t\t136,\n\t\t\t153\n\t\t],\n\t\t\"lightsteelblue\": [\n\t\t\t176,\n\t\t\t196,\n\t\t\t222\n\t\t],\n\t\t\"lightyellow\": [\n\t\t\t255,\n\t\t\t255,\n\t\t\t224\n\t\t],\n\t\t\"lime\": [\n\t\t\t0,\n\t\t\t255,\n\t\t\t0\n\t\t],\n\t\t\"limegreen\": [\n\t\t\t50,\n\t\t\t205,\n\t\t\t50\n\t\t],\n\t\t\"linen\": [\n\t\t\t250,\n\t\t\t240,\n\t\t\t230\n\t\t],\n\t\t\"magenta\": [\n\t\t\t255,\n\t\t\t0,\n\t\t\t255\n\t\t],\n\t\t\"maroon\": [\n\t\t\t128,\n\t\t\t0,\n\t\t\t0\n\t\t],\n\t\t\"mediumaquamarine\": [\n\t\t\t102,\n\t\t\t205,\n\t\t\t170\n\t\t],\n\t\t\"mediumblue\": [\n\t\t\t0,\n\t\t\t0,\n\t\t\t205\n\t\t],\n\t\t\"mediumorchid\": [\n\t\t\t186,\n\t\t\t85,\n\t\t\t211\n\t\t],\n\t\t\"mediumpurple\": [\n\t\t\t147,\n\t\t\t112,\n\t\t\t219\n\t\t],\n\t\t\"mediumseagreen\": [\n\t\t\t60,\n\t\t\t179,\n\t\t\t113\n\t\t],\n\t\t\"mediumslateblue\": [\n\t\t\t123,\n\t\t\t104,\n\t\t\t238\n\t\t],\n\t\t\"mediumspringgreen\": [\n\t\t\t0,\n\t\t\t250,\n\t\t\t154\n\t\t],\n\t\t\"mediumturquoise\": [\n\t\t\t72,\n\t\t\t209,\n\t\t\t204\n\t\t],\n\t\t\"mediumvioletred\": [\n\t\t\t199,\n\t\t\t21,\n\t\t\t133\n\t\t],\n\t\t\"midnightblue\": [\n\t\t\t25,\n\t\t\t25,\n\t\t\t112\n\t\t],\n\t\t\"mintcream\": [\n\t\t\t245,\n\t\t\t255,\n\t\t\t250\n\t\t],\n\t\t\"mistyrose\": [\n\t\t\t255,\n\t\t\t228,\n\t\t\t225\n\t\t],\n\t\t\"moccasin\": [\n\t\t\t255,\n\t\t\t228,\n\t\t\t181\n\t\t],\n\t\t\"navajowhite\": [\n\t\t\t255,\n\t\t\t222,\n\t\t\t173\n\t\t],\n\t\t\"navy\": [\n\t\t\t0,\n\t\t\t0,\n\t\t\t128\n\t\t],\n\t\t\"oldlace\": [\n\t\t\t253,\n\t\t\t245,\n\t\t\t230\n\t\t],\n\t\t\"olive\": [\n\t\t\t128,\n\t\t\t128,\n\t\t\t0\n\t\t],\n\t\t\"olivedrab\": [\n\t\t\t107,\n\t\t\t142,\n\t\t\t35\n\t\t],\n\t\t\"orange\": [\n\t\t\t255,\n\t\t\t165,\n\t\t\t0\n\t\t],\n\t\t\"orangered\": [\n\t\t\t255,\n\t\t\t69,\n\t\t\t0\n\t\t],\n\t\t\"orchid\": [\n\t\t\t218,\n\t\t\t112,\n\t\t\t214\n\t\t],\n\t\t\"palegoldenrod\": [\n\t\t\t238,\n\t\t\t232,\n\t\t\t170\n\t\t],\n\t\t\"palegreen\": [\n\t\t\t152,\n\t\t\t251,\n\t\t\t152\n\t\t],\n\t\t\"paleturquoise\": [\n\t\t\t175,\n\t\t\t238,\n\t\t\t238\n\t\t],\n\t\t\"palevioletred\": [\n\t\t\t219,\n\t\t\t112,\n\t\t\t147\n\t\t],\n\t\t\"papayawhip\": [\n\t\t\t255,\n\t\t\t239,\n\t\t\t213\n\t\t],\n\t\t\"peachpuff\": [\n\t\t\t255,\n\t\t\t218,\n\t\t\t185\n\t\t],\n\t\t\"peru\": [\n\t\t\t205,\n\t\t\t133,\n\t\t\t63\n\t\t],\n\t\t\"pink\": [\n\t\t\t255,\n\t\t\t192,\n\t\t\t203\n\t\t],\n\t\t\"plum\": [\n\t\t\t221,\n\t\t\t160,\n\t\t\t221\n\t\t],\n\t\t\"powderblue\": [\n\t\t\t176,\n\t\t\t224,\n\t\t\t230\n\t\t],\n\t\t\"purple\": [\n\t\t\t128,\n\t\t\t0,\n\t\t\t128\n\t\t],\n\t\t\"rebeccapurple\": [\n\t\t\t102,\n\t\t\t51,\n\t\t\t153\n\t\t],\n\t\t\"red\": [\n\t\t\t255,\n\t\t\t0,\n\t\t\t0\n\t\t],\n\t\t\"rosybrown\": [\n\t\t\t188,\n\t\t\t143,\n\t\t\t143\n\t\t],\n\t\t\"royalblue\": [\n\t\t\t65,\n\t\t\t105,\n\t\t\t225\n\t\t],\n\t\t\"saddlebrown\": [\n\t\t\t139,\n\t\t\t69,\n\t\t\t19\n\t\t],\n\t\t\"salmon\": [\n\t\t\t250,\n\t\t\t128,\n\t\t\t114\n\t\t],\n\t\t\"sandybrown\": [\n\t\t\t244,\n\t\t\t164,\n\t\t\t96\n\t\t],\n\t\t\"seagreen\": [\n\t\t\t46,\n\t\t\t139,\n\t\t\t87\n\t\t],\n\t\t\"seashell\": [\n\t\t\t255,\n\t\t\t245,\n\t\t\t238\n\t\t],\n\t\t\"sienna\": [\n\t\t\t160,\n\t\t\t82,\n\t\t\t45\n\t\t],\n\t\t\"silver\": [\n\t\t\t192,\n\t\t\t192,\n\t\t\t192\n\t\t],\n\t\t\"skyblue\": [\n\t\t\t135,\n\t\t\t206,\n\t\t\t235\n\t\t],\n\t\t\"slateblue\": [\n\t\t\t106,\n\t\t\t90,\n\t\t\t205\n\t\t],\n\t\t\"slategray\": [\n\t\t\t112,\n\t\t\t128,\n\t\t\t144\n\t\t],\n\t\t\"slategrey\": [\n\t\t\t112,\n\t\t\t128,\n\t\t\t144\n\t\t],\n\t\t\"snow\": [\n\t\t\t255,\n\t\t\t250,\n\t\t\t250\n\t\t],\n\t\t\"springgreen\": [\n\t\t\t0,\n\t\t\t255,\n\t\t\t127\n\t\t],\n\t\t\"steelblue\": [\n\t\t\t70,\n\t\t\t130,\n\t\t\t180\n\t\t],\n\t\t\"tan\": [\n\t\t\t210,\n\t\t\t180,\n\t\t\t140\n\t\t],\n\t\t\"teal\": [\n\t\t\t0,\n\t\t\t128,\n\t\t\t128\n\t\t],\n\t\t\"thistle\": [\n\t\t\t216,\n\t\t\t191,\n\t\t\t216\n\t\t],\n\t\t\"tomato\": [\n\t\t\t255,\n\t\t\t99,\n\t\t\t71\n\t\t],\n\t\t\"turquoise\": [\n\t\t\t64,\n\t\t\t224,\n\t\t\t208\n\t\t],\n\t\t\"violet\": [\n\t\t\t238,\n\t\t\t130,\n\t\t\t238\n\t\t],\n\t\t\"wheat\": [\n\t\t\t245,\n\t\t\t222,\n\t\t\t179\n\t\t],\n\t\t\"white\": [\n\t\t\t255,\n\t\t\t255,\n\t\t\t255\n\t\t],\n\t\t\"whitesmoke\": [\n\t\t\t245,\n\t\t\t245,\n\t\t\t245\n\t\t],\n\t\t\"yellow\": [\n\t\t\t255,\n\t\t\t255,\n\t\t\t0\n\t\t],\n\t\t\"yellowgreen\": [\n\t\t\t154,\n\t\t\t205,\n\t\t\t50\n\t\t]\n\t};\n}));\n//#endregion\n//#region node_modules/color-convert/conversions.js\nvar require_conversions = /* @__PURE__ */ __commonJSMin(((exports, module) => {\n\tvar cssKeywords = require_color_name();\n\tvar reverseKeywords = {};\n\tfor (const key of Object.keys(cssKeywords)) reverseKeywords[cssKeywords[key]] = key;\n\tvar convert = {\n\t\trgb: {\n\t\t\tchannels: 3,\n\t\t\tlabels: \"rgb\"\n\t\t},\n\t\thsl: {\n\t\t\tchannels: 3,\n\t\t\tlabels: \"hsl\"\n\t\t},\n\t\thsv: {\n\t\t\tchannels: 3,\n\t\t\tlabels: \"hsv\"\n\t\t},\n\t\thwb: {\n\t\t\tchannels: 3,\n\t\t\tlabels: \"hwb\"\n\t\t},\n\t\tcmyk: {\n\t\t\tchannels: 4,\n\t\t\tlabels: \"cmyk\"\n\t\t},\n\t\txyz: {\n\t\t\tchannels: 3,\n\t\t\tlabels: \"xyz\"\n\t\t},\n\t\tlab: {\n\t\t\tchannels: 3,\n\t\t\tlabels: \"lab\"\n\t\t},\n\t\tlch: {\n\t\t\tchannels: 3,\n\t\t\tlabels: \"lch\"\n\t\t},\n\t\thex: {\n\t\t\tchannels: 1,\n\t\t\tlabels: [\"hex\"]\n\t\t},\n\t\tkeyword: {\n\t\t\tchannels: 1,\n\t\t\tlabels: [\"keyword\"]\n\t\t},\n\t\tansi16: {\n\t\t\tchannels: 1,\n\t\t\tlabels: [\"ansi16\"]\n\t\t},\n\t\tansi256: {\n\t\t\tchannels: 1,\n\t\t\tlabels: [\"ansi256\"]\n\t\t},\n\t\thcg: {\n\t\t\tchannels: 3,\n\t\t\tlabels: [\n\t\t\t\t\"h\",\n\t\t\t\t\"c\",\n\t\t\t\t\"g\"\n\t\t\t]\n\t\t},\n\t\tapple: {\n\t\t\tchannels: 3,\n\t\t\tlabels: [\n\t\t\t\t\"r16\",\n\t\t\t\t\"g16\",\n\t\t\t\t\"b16\"\n\t\t\t]\n\t\t},\n\t\tgray: {\n\t\t\tchannels: 1,\n\t\t\tlabels: [\"gray\"]\n\t\t}\n\t};\n\tmodule.exports = convert;\n\tfor (const model of Object.keys(convert)) {\n\t\tif (!(\"channels\" in convert[model])) throw new Error(\"missing channels property: \" + model);\n\t\tif (!(\"labels\" in convert[model])) throw new Error(\"missing channel labels property: \" + model);\n\t\tif (convert[model].labels.length !== convert[model].channels) throw new Error(\"channel and label counts mismatch: \" + model);\n\t\tconst { channels, labels } = convert[model];\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], \"channels\", { value: channels });\n\t\tObject.defineProperty(convert[model], \"labels\", { value: labels });\n\t}\n\tconvert.rgb.hsl = function(rgb) {\n\t\tconst r = rgb[0] / 255;\n\t\tconst g = rgb[1] / 255;\n\t\tconst b = rgb[2] / 255;\n\t\tconst min = Math.min(r, g, b);\n\t\tconst max = Math.max(r, g, b);\n\t\tconst delta = max - min;\n\t\tlet h;\n\t\tlet s;\n\t\tif (max === min) h = 0;\n\t\telse if (r === max) h = (g - b) / delta;\n\t\telse if (g === max) h = 2 + (b - r) / delta;\n\t\telse if (b === max) h = 4 + (r - g) / delta;\n\t\th = Math.min(h * 60, 360);\n\t\tif (h < 0) h += 360;\n\t\tconst l = (min + max) / 2;\n\t\tif (max === min) s = 0;\n\t\telse if (l <= .5) s = delta / (max + min);\n\t\telse s = delta / (2 - max - min);\n\t\treturn [\n\t\t\th,\n\t\t\ts * 100,\n\t\t\tl * 100\n\t\t];\n\t};\n\tconvert.rgb.hsv = function(rgb) {\n\t\tlet rdif;\n\t\tlet gdif;\n\t\tlet bdif;\n\t\tlet h;\n\t\tlet s;\n\t\tconst r = rgb[0] / 255;\n\t\tconst g = rgb[1] / 255;\n\t\tconst b = rgb[2] / 255;\n\t\tconst v = Math.max(r, g, b);\n\t\tconst diff = v - Math.min(r, g, b);\n\t\tconst diffc = function(c) {\n\t\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t\t};\n\t\tif (diff === 0) {\n\t\t\th = 0;\n\t\t\ts = 0;\n\t\t} else {\n\t\t\ts = diff / v;\n\t\t\trdif = diffc(r);\n\t\t\tgdif = diffc(g);\n\t\t\tbdif = diffc(b);\n\t\t\tif (r === v) h = bdif - gdif;\n\t\t\telse if (g === v) h = 1 / 3 + rdif - bdif;\n\t\t\telse if (b === v) h = 2 / 3 + gdif - rdif;\n\t\t\tif (h < 0) h += 1;\n\t\t\telse if (h > 1) h -= 1;\n\t\t}\n\t\treturn [\n\t\t\th * 360,\n\t\t\ts * 100,\n\t\t\tv * 100\n\t\t];\n\t};\n\tconvert.rgb.hwb = function(rgb) {\n\t\tconst r = rgb[0];\n\t\tconst g = rgb[1];\n\t\tlet b = rgb[2];\n\t\tconst h = convert.rgb.hsl(rgb)[0];\n\t\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\t\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\t\treturn [\n\t\t\th,\n\t\t\tw * 100,\n\t\t\tb * 100\n\t\t];\n\t};\n\tconvert.rgb.cmyk = function(rgb) {\n\t\tconst r = rgb[0] / 255;\n\t\tconst g = rgb[1] / 255;\n\t\tconst b = rgb[2] / 255;\n\t\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\t\tconst c = (1 - r - k) / (1 - k) || 0;\n\t\tconst m = (1 - g - k) / (1 - k) || 0;\n\t\tconst y = (1 - b - k) / (1 - k) || 0;\n\t\treturn [\n\t\t\tc * 100,\n\t\t\tm * 100,\n\t\t\ty * 100,\n\t\t\tk * 100\n\t\t];\n\t};\n\tfunction comparativeDistance(x, y) {\n\t\treturn (x[0] - y[0]) ** 2 + (x[1] - y[1]) ** 2 + (x[2] - y[2]) ** 2;\n\t}\n\tconvert.rgb.keyword = function(rgb) {\n\t\tconst reversed = reverseKeywords[rgb];\n\t\tif (reversed) return reversed;\n\t\tlet currentClosestDistance = Infinity;\n\t\tlet currentClosestKeyword;\n\t\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\t\tconst value = cssKeywords[keyword];\n\t\t\tconst distance = comparativeDistance(rgb, value);\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t\treturn currentClosestKeyword;\n\t};\n\tconvert.keyword.rgb = function(keyword) {\n\t\treturn cssKeywords[keyword];\n\t};\n\tconvert.rgb.xyz = function(rgb) {\n\t\tlet r = rgb[0] / 255;\n\t\tlet g = rgb[1] / 255;\n\t\tlet b = rgb[2] / 255;\n\t\tr = r > .04045 ? ((r + .055) / 1.055) ** 2.4 : r / 12.92;\n\t\tg = g > .04045 ? ((g + .055) / 1.055) ** 2.4 : g / 12.92;\n\t\tb = b > .04045 ? ((b + .055) / 1.055) ** 2.4 : b / 12.92;\n\t\tconst x = r * .4124 + g * .3576 + b * .1805;\n\t\tconst y = r * .2126 + g * .7152 + b * .0722;\n\t\tconst z = r * .0193 + g * .1192 + b * .9505;\n\t\treturn [\n\t\t\tx * 100,\n\t\t\ty * 100,\n\t\t\tz * 100\n\t\t];\n\t};\n\tconvert.rgb.lab = function(rgb) {\n\t\tconst xyz = convert.rgb.xyz(rgb);\n\t\tlet x = xyz[0];\n\t\tlet y = xyz[1];\n\t\tlet z = xyz[2];\n\t\tx /= 95.047;\n\t\ty /= 100;\n\t\tz /= 108.883;\n\t\tx = x > .008856 ? x ** (1 / 3) : 7.787 * x + 16 / 116;\n\t\ty = y > .008856 ? y ** (1 / 3) : 7.787 * y + 16 / 116;\n\t\tz = z > .008856 ? z ** (1 / 3) : 7.787 * z + 16 / 116;\n\t\treturn [\n\t\t\t116 * y - 16,\n\t\t\t500 * (x - y),\n\t\t\t200 * (y - z)\n\t\t];\n\t};\n\tconvert.hsl.rgb = function(hsl) {\n\t\tconst h = hsl[0] / 360;\n\t\tconst s = hsl[1] / 100;\n\t\tconst l = hsl[2] / 100;\n\t\tlet t2;\n\t\tlet t3;\n\t\tlet val;\n\t\tif (s === 0) {\n\t\t\tval = l * 255;\n\t\t\treturn [\n\t\t\t\tval,\n\t\t\t\tval,\n\t\t\t\tval\n\t\t\t];\n\t\t}\n\t\tif (l < .5) t2 = l * (1 + s);\n\t\telse t2 = l + s - l * s;\n\t\tconst t1 = 2 * l - t2;\n\t\tconst rgb = [\n\t\t\t0,\n\t\t\t0,\n\t\t\t0\n\t\t];\n\t\tfor (let i = 0; i < 3; i++) {\n\t\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\t\tif (t3 < 0) t3++;\n\t\t\tif (t3 > 1) t3--;\n\t\t\tif (6 * t3 < 1) val = t1 + (t2 - t1) * 6 * t3;\n\t\t\telse if (2 * t3 < 1) val = t2;\n\t\t\telse if (3 * t3 < 2) val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t\telse val = t1;\n\t\t\trgb[i] = val * 255;\n\t\t}\n\t\treturn rgb;\n\t};\n\tconvert.hsl.hsv = function(hsl) {\n\t\tconst h = hsl[0];\n\t\tlet s = hsl[1] / 100;\n\t\tlet l = hsl[2] / 100;\n\t\tlet smin = s;\n\t\tconst lmin = Math.max(l, .01);\n\t\tl *= 2;\n\t\ts *= l <= 1 ? l : 2 - l;\n\t\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\t\tconst v = (l + s) / 2;\n\t\treturn [\n\t\t\th,\n\t\t\t(l === 0 ? 2 * smin / (lmin + smin) : 2 * s / (l + s)) * 100,\n\t\t\tv * 100\n\t\t];\n\t};\n\tconvert.hsv.rgb = function(hsv) {\n\t\tconst h = hsv[0] / 60;\n\t\tconst s = hsv[1] / 100;\n\t\tlet v = hsv[2] / 100;\n\t\tconst hi = Math.floor(h) % 6;\n\t\tconst f = h - Math.floor(h);\n\t\tconst p = 255 * v * (1 - s);\n\t\tconst q = 255 * v * (1 - s * f);\n\t\tconst t = 255 * v * (1 - s * (1 - f));\n\t\tv *= 255;\n\t\tswitch (hi) {\n\t\t\tcase 0: return [\n\t\t\t\tv,\n\t\t\t\tt,\n\t\t\t\tp\n\t\t\t];\n\t\t\tcase 1: return [\n\t\t\t\tq,\n\t\t\t\tv,\n\t\t\t\tp\n\t\t\t];\n\t\t\tcase 2: return [\n\t\t\t\tp,\n\t\t\t\tv,\n\t\t\t\tt\n\t\t\t];\n\t\t\tcase 3: return [\n\t\t\t\tp,\n\t\t\t\tq,\n\t\t\t\tv\n\t\t\t];\n\t\t\tcase 4: return [\n\t\t\t\tt,\n\t\t\t\tp,\n\t\t\t\tv\n\t\t\t];\n\t\t\tcase 5: return [\n\t\t\t\tv,\n\t\t\t\tp,\n\t\t\t\tq\n\t\t\t];\n\t\t}\n\t};\n\tconvert.hsv.hsl = function(hsv) {\n\t\tconst h = hsv[0];\n\t\tconst s = hsv[1] / 100;\n\t\tconst v = hsv[2] / 100;\n\t\tconst vmin = Math.max(v, .01);\n\t\tlet sl;\n\t\tlet l;\n\t\tl = (2 - s) * v;\n\t\tconst lmin = (2 - s) * vmin;\n\t\tsl = s * vmin;\n\t\tsl /= lmin <= 1 ? lmin : 2 - lmin;\n\t\tsl = sl || 0;\n\t\tl /= 2;\n\t\treturn [\n\t\t\th,\n\t\t\tsl * 100,\n\t\t\tl * 100\n\t\t];\n\t};\n\tconvert.hwb.rgb = function(hwb) {\n\t\tconst h = hwb[0] / 360;\n\t\tlet wh = hwb[1] / 100;\n\t\tlet bl = hwb[2] / 100;\n\t\tconst ratio = wh + bl;\n\t\tlet f;\n\t\tif (ratio > 1) {\n\t\t\twh /= ratio;\n\t\t\tbl /= ratio;\n\t\t}\n\t\tconst i = Math.floor(6 * h);\n\t\tconst v = 1 - bl;\n\t\tf = 6 * h - i;\n\t\tif ((i & 1) !== 0) f = 1 - f;\n\t\tconst n = wh + f * (v - wh);\n\t\tlet r;\n\t\tlet g;\n\t\tlet b;\n\t\tswitch (i) {\n\t\t\tdefault:\n\t\t\tcase 6:\n\t\t\tcase 0:\n\t\t\t\tr = v;\n\t\t\t\tg = n;\n\t\t\t\tb = wh;\n\t\t\t\tbreak;\n\t\t\tcase 1:\n\t\t\t\tr = n;\n\t\t\t\tg = v;\n\t\t\t\tb = wh;\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tr = wh;\n\t\t\t\tg = v;\n\t\t\t\tb = n;\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\tr = wh;\n\t\t\t\tg = n;\n\t\t\t\tb = v;\n\t\t\t\tbreak;\n\t\t\tcase 4:\n\t\t\t\tr = n;\n\t\t\t\tg = wh;\n\t\t\t\tb = v;\n\t\t\t\tbreak;\n\t\t\tcase 5:\n\t\t\t\tr = v;\n\t\t\t\tg = wh;\n\t\t\t\tb = n;\n\t\t\t\tbreak;\n\t\t}\n\t\treturn [\n\t\t\tr * 255,\n\t\t\tg * 255,\n\t\t\tb * 255\n\t\t];\n\t};\n\tconvert.cmyk.rgb = function(cmyk) {\n\t\tconst c = cmyk[0] / 100;\n\t\tconst m = cmyk[1] / 100;\n\t\tconst y = cmyk[2] / 100;\n\t\tconst k = cmyk[3] / 100;\n\t\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\t\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\t\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\t\treturn [\n\t\t\tr * 255,\n\t\t\tg * 255,\n\t\t\tb * 255\n\t\t];\n\t};\n\tconvert.xyz.rgb = function(xyz) {\n\t\tconst x = xyz[0] / 100;\n\t\tconst y = xyz[1] / 100;\n\t\tconst z = xyz[2] / 100;\n\t\tlet r;\n\t\tlet g;\n\t\tlet b;\n\t\tr = x * 3.2406 + y * -1.5372 + z * -.4986;\n\t\tg = x * -.9689 + y * 1.8758 + z * .0415;\n\t\tb = x * .0557 + y * -.204 + z * 1.057;\n\t\tr = r > .0031308 ? 1.055 * r ** (1 / 2.4) - .055 : r * 12.92;\n\t\tg = g > .0031308 ? 1.055 * g ** (1 / 2.4) - .055 : g * 12.92;\n\t\tb = b > .0031308 ? 1.055 * b ** (1 / 2.4) - .055 : b * 12.92;\n\t\tr = Math.min(Math.max(0, r), 1);\n\t\tg = Math.min(Math.max(0, g), 1);\n\t\tb = Math.min(Math.max(0, b), 1);\n\t\treturn [\n\t\t\tr * 255,\n\t\t\tg * 255,\n\t\t\tb * 255\n\t\t];\n\t};\n\tconvert.xyz.lab = function(xyz) {\n\t\tlet x = xyz[0];\n\t\tlet y = xyz[1];\n\t\tlet z = xyz[2];\n\t\tx /= 95.047;\n\t\ty /= 100;\n\t\tz /= 108.883;\n\t\tx = x > .008856 ? x ** (1 / 3) : 7.787 * x + 16 / 116;\n\t\ty = y > .008856 ? y ** (1 / 3) : 7.787 * y + 16 / 116;\n\t\tz = z > .008856 ? z ** (1 / 3) : 7.787 * z + 16 / 116;\n\t\treturn [\n\t\t\t116 * y - 16,\n\t\t\t500 * (x - y),\n\t\t\t200 * (y - z)\n\t\t];\n\t};\n\tconvert.lab.xyz = function(lab) {\n\t\tconst l = lab[0];\n\t\tconst a = lab[1];\n\t\tconst b = lab[2];\n\t\tlet x;\n\t\tlet y;\n\t\tlet z;\n\t\ty = (l + 16) / 116;\n\t\tx = a / 500 + y;\n\t\tz = y - b / 200;\n\t\tconst y2 = y ** 3;\n\t\tconst x2 = x ** 3;\n\t\tconst z2 = z ** 3;\n\t\ty = y2 > .008856 ? y2 : (y - 16 / 116) / 7.787;\n\t\tx = x2 > .008856 ? x2 : (x - 16 / 116) / 7.787;\n\t\tz = z2 > .008856 ? z2 : (z - 16 / 116) / 7.787;\n\t\tx *= 95.047;\n\t\ty *= 100;\n\t\tz *= 108.883;\n\t\treturn [\n\t\t\tx,\n\t\t\ty,\n\t\t\tz\n\t\t];\n\t};\n\tconvert.lab.lch = function(lab) {\n\t\tconst l = lab[0];\n\t\tconst a = lab[1];\n\t\tconst b = lab[2];\n\t\tlet h;\n\t\th = Math.atan2(b, a) * 360 / 2 / Math.PI;\n\t\tif (h < 0) h += 360;\n\t\treturn [\n\t\t\tl,\n\t\t\tMath.sqrt(a * a + b * b),\n\t\t\th\n\t\t];\n\t};\n\tconvert.lch.lab = function(lch) {\n\t\tconst l = lch[0];\n\t\tconst c = lch[1];\n\t\tconst hr = lch[2] / 360 * 2 * Math.PI;\n\t\treturn [\n\t\t\tl,\n\t\t\tc * Math.cos(hr),\n\t\t\tc * Math.sin(hr)\n\t\t];\n\t};\n\tconvert.rgb.ansi16 = function(args, saturation = null) {\n\t\tconst [r, g, b] = args;\n\t\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation;\n\t\tvalue = Math.round(value / 50);\n\t\tif (value === 0) return 30;\n\t\tlet ansi = 30 + (Math.round(b / 255) << 2 | Math.round(g / 255) << 1 | Math.round(r / 255));\n\t\tif (value === 2) ansi += 60;\n\t\treturn ansi;\n\t};\n\tconvert.hsv.ansi16 = function(args) {\n\t\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n\t};\n\tconvert.rgb.ansi256 = function(args) {\n\t\tconst r = args[0];\n\t\tconst g = args[1];\n\t\tconst b = args[2];\n\t\tif (r === g && g === b) {\n\t\t\tif (r < 8) return 16;\n\t\t\tif (r > 248) return 231;\n\t\t\treturn Math.round((r - 8) / 247 * 24) + 232;\n\t\t}\n\t\treturn 16 + 36 * Math.round(r / 255 * 5) + 6 * Math.round(g / 255 * 5) + Math.round(b / 255 * 5);\n\t};\n\tconvert.ansi16.rgb = function(args) {\n\t\tlet color = args % 10;\n\t\tif (color === 0 || color === 7) {\n\t\t\tif (args > 50) color += 3.5;\n\t\t\tcolor = color / 10.5 * 255;\n\t\t\treturn [\n\t\t\t\tcolor,\n\t\t\t\tcolor,\n\t\t\t\tcolor\n\t\t\t];\n\t\t}\n\t\tconst mult = (~~(args > 50) + 1) * .5;\n\t\treturn [\n\t\t\t(color & 1) * mult * 255,\n\t\t\t(color >> 1 & 1) * mult * 255,\n\t\t\t(color >> 2 & 1) * mult * 255\n\t\t];\n\t};\n\tconvert.ansi256.rgb = function(args) {\n\t\tif (args >= 232) {\n\t\t\tconst c = (args - 232) * 10 + 8;\n\t\t\treturn [\n\t\t\t\tc,\n\t\t\t\tc,\n\t\t\t\tc\n\t\t\t];\n\t\t}\n\t\targs -= 16;\n\t\tlet rem;\n\t\treturn [\n\t\t\tMath.floor(args / 36) / 5 * 255,\n\t\t\tMath.floor((rem = args % 36) / 6) / 5 * 255,\n\t\t\trem % 6 / 5 * 255\n\t\t];\n\t};\n\tconvert.rgb.hex = function(args) {\n\t\tconst string = (((Math.round(args[0]) & 255) << 16) + ((Math.round(args[1]) & 255) << 8) + (Math.round(args[2]) & 255)).toString(16).toUpperCase();\n\t\treturn \"000000\".substring(string.length) + string;\n\t};\n\tconvert.hex.rgb = function(args) {\n\t\tconst match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\t\tif (!match) return [\n\t\t\t0,\n\t\t\t0,\n\t\t\t0\n\t\t];\n\t\tlet colorString = match[0];\n\t\tif (match[0].length === 3) colorString = colorString.split(\"\").map((char) => {\n\t\t\treturn char + char;\n\t\t}).join(\"\");\n\t\tconst integer = parseInt(colorString, 16);\n\t\treturn [\n\t\t\tinteger >> 16 & 255,\n\t\t\tinteger >> 8 & 255,\n\t\t\tinteger & 255\n\t\t];\n\t};\n\tconvert.rgb.hcg = function(rgb) {\n\t\tconst r = rgb[0] / 255;\n\t\tconst g = rgb[1] / 255;\n\t\tconst b = rgb[2] / 255;\n\t\tconst max = Math.max(Math.max(r, g), b);\n\t\tconst min = Math.min(Math.min(r, g), b);\n\t\tconst chroma = max - min;\n\t\tlet grayscale;\n\t\tlet hue;\n\t\tif (chroma < 1) grayscale = min / (1 - chroma);\n\t\telse grayscale = 0;\n\t\tif (chroma <= 0) hue = 0;\n\t\telse if (max === r) hue = (g - b) / chroma % 6;\n\t\telse if (max === g) hue = 2 + (b - r) / chroma;\n\t\telse hue = 4 + (r - g) / chroma;\n\t\thue /= 6;\n\t\thue %= 1;\n\t\treturn [\n\t\t\thue * 360,\n\t\t\tchroma * 100,\n\t\t\tgrayscale * 100\n\t\t];\n\t};\n\tconvert.hsl.hcg = function(hsl) {\n\t\tconst s = hsl[1] / 100;\n\t\tconst l = hsl[2] / 100;\n\t\tconst c = l < .5 ? 2 * s * l : 2 * s * (1 - l);\n\t\tlet f = 0;\n\t\tif (c < 1) f = (l - .5 * c) / (1 - c);\n\t\treturn [\n\t\t\thsl[0],\n\t\t\tc * 100,\n\t\t\tf * 100\n\t\t];\n\t};\n\tconvert.hsv.hcg = function(hsv) {\n\t\tconst s = hsv[1] / 100;\n\t\tconst v = hsv[2] / 100;\n\t\tconst c = s * v;\n\t\tlet f = 0;\n\t\tif (c < 1) f = (v - c) / (1 - c);\n\t\treturn [\n\t\t\thsv[0],\n\t\t\tc * 100,\n\t\t\tf * 100\n\t\t];\n\t};\n\tconvert.hcg.rgb = function(hcg) {\n\t\tconst h = hcg[0] / 360;\n\t\tconst c = hcg[1] / 100;\n\t\tconst g = hcg[2] / 100;\n\t\tif (c === 0) return [\n\t\t\tg * 255,\n\t\t\tg * 255,\n\t\t\tg * 255\n\t\t];\n\t\tconst pure = [\n\t\t\t0,\n\t\t\t0,\n\t\t\t0\n\t\t];\n\t\tconst hi = h % 1 * 6;\n\t\tconst v = hi % 1;\n\t\tconst w = 1 - v;\n\t\tlet mg = 0;\n\t\tswitch (Math.floor(hi)) {\n\t\t\tcase 0:\n\t\t\t\tpure[0] = 1;\n\t\t\t\tpure[1] = v;\n\t\t\t\tpure[2] = 0;\n\t\t\t\tbreak;\n\t\t\tcase 1:\n\t\t\t\tpure[0] = w;\n\t\t\t\tpure[1] = 1;\n\t\t\t\tpure[2] = 0;\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tpure[0] = 0;\n\t\t\t\tpure[1] = 1;\n\t\t\t\tpure[2] = v;\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\tpure[0] = 0;\n\t\t\t\tpure[1] = w;\n\t\t\t\tpure[2] = 1;\n\t\t\t\tbreak;\n\t\t\tcase 4:\n\t\t\t\tpure[0] = v;\n\t\t\t\tpure[1] = 0;\n\t\t\t\tpure[2] = 1;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tpure[0] = 1;\n\t\t\t\tpure[1] = 0;\n\t\t\t\tpure[2] = w;\n\t\t}\n\t\tmg = (1 - c) * g;\n\t\treturn [\n\t\t\t(c * pure[0] + mg) * 255,\n\t\t\t(c * pure[1] + mg) * 255,\n\t\t\t(c * pure[2] + mg) * 255\n\t\t];\n\t};\n\tconvert.hcg.hsv = function(hcg) {\n\t\tconst c = hcg[1] / 100;\n\t\tconst v = c + hcg[2] / 100 * (1 - c);\n\t\tlet f = 0;\n\t\tif (v > 0) f = c / v;\n\t\treturn [\n\t\t\thcg[0],\n\t\t\tf * 100,\n\t\t\tv * 100\n\t\t];\n\t};\n\tconvert.hcg.hsl = function(hcg) {\n\t\tconst c = hcg[1] / 100;\n\t\tconst l = hcg[2] / 100 * (1 - c) + .5 * c;\n\t\tlet s = 0;\n\t\tif (l > 0 && l < .5) s = c / (2 * l);\n\t\telse if (l >= .5 && l < 1) s = c / (2 * (1 - l));\n\t\treturn [\n\t\t\thcg[0],\n\t\t\ts * 100,\n\t\t\tl * 100\n\t\t];\n\t};\n\tconvert.hcg.hwb = function(hcg) {\n\t\tconst c = hcg[1] / 100;\n\t\tconst v = c + hcg[2] / 100 * (1 - c);\n\t\treturn [\n\t\t\thcg[0],\n\t\t\t(v - c) * 100,\n\t\t\t(1 - v) * 100\n\t\t];\n\t};\n\tconvert.hwb.hcg = function(hwb) {\n\t\tconst w = hwb[1] / 100;\n\t\tconst v = 1 - hwb[2] / 100;\n\t\tconst c = v - w;\n\t\tlet g = 0;\n\t\tif (c < 1) g = (v - c) / (1 - c);\n\t\treturn [\n\t\t\thwb[0],\n\t\t\tc * 100,\n\t\t\tg * 100\n\t\t];\n\t};\n\tconvert.apple.rgb = function(apple) {\n\t\treturn [\n\t\t\tapple[0] / 65535 * 255,\n\t\t\tapple[1] / 65535 * 255,\n\t\t\tapple[2] / 65535 * 255\n\t\t];\n\t};\n\tconvert.rgb.apple = function(rgb) {\n\t\treturn [\n\t\t\trgb[0] / 255 * 65535,\n\t\t\trgb[1] / 255 * 65535,\n\t\t\trgb[2] / 255 * 65535\n\t\t];\n\t};\n\tconvert.gray.rgb = function(args) {\n\t\treturn [\n\t\t\targs[0] / 100 * 255,\n\t\t\targs[0] / 100 * 255,\n\t\t\targs[0] / 100 * 255\n\t\t];\n\t};\n\tconvert.gray.hsl = function(args) {\n\t\treturn [\n\t\t\t0,\n\t\t\t0,\n\t\t\targs[0]\n\t\t];\n\t};\n\tconvert.gray.hsv = convert.gray.hsl;\n\tconvert.gray.hwb = function(gray) {\n\t\treturn [\n\t\t\t0,\n\t\t\t100,\n\t\t\tgray[0]\n\t\t];\n\t};\n\tconvert.gray.cmyk = function(gray) {\n\t\treturn [\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\tgray[0]\n\t\t];\n\t};\n\tconvert.gray.lab = function(gray) {\n\t\treturn [\n\t\t\tgray[0],\n\t\t\t0,\n\t\t\t0\n\t\t];\n\t};\n\tconvert.gray.hex = function(gray) {\n\t\tconst val = Math.round(gray[0] / 100 * 255) & 255;\n\t\tconst string = ((val << 16) + (val << 8) + val).toString(16).toUpperCase();\n\t\treturn \"000000\".substring(string.length) + string;\n\t};\n\tconvert.rgb.gray = function(rgb) {\n\t\treturn [(rgb[0] + rgb[1] + rgb[2]) / 3 / 255 * 100];\n\t};\n}));\n//#endregion\n//#region node_modules/color-convert/route.js\nvar require_route = /* @__PURE__ */ __commonJSMin(((exports, module) => {\n\tvar conversions = require_conversions();\n\tfunction buildGraph() {\n\t\tconst graph = {};\n\t\tconst models = Object.keys(conversions);\n\t\tfor (let len = models.length, i = 0; i < len; i++) graph[models[i]] = {\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t\treturn graph;\n\t}\n\tfunction deriveBFS(fromModel) {\n\t\tconst graph = buildGraph();\n\t\tconst queue = [fromModel];\n\t\tgraph[fromModel].distance = 0;\n\t\twhile (queue.length) {\n\t\t\tconst current = queue.pop();\n\t\t\tconst adjacents = Object.keys(conversions[current]);\n\t\t\tfor (let len = adjacents.length, i = 0; i < len; i++) {\n\t\t\t\tconst adjacent = adjacents[i];\n\t\t\t\tconst node = graph[adjacent];\n\t\t\t\tif (node.distance === -1) {\n\t\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\t\tnode.parent = current;\n\t\t\t\t\tqueue.unshift(adjacent);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn graph;\n\t}\n\tfunction link(from, to) {\n\t\treturn function(args) {\n\t\t\treturn to(from(args));\n\t\t};\n\t}\n\tfunction wrapConversion(toModel, graph) {\n\t\tconst path = [graph[toModel].parent, toModel];\n\t\tlet fn = conversions[graph[toModel].parent][toModel];\n\t\tlet cur = graph[toModel].parent;\n\t\twhile (graph[cur].parent) {\n\t\t\tpath.unshift(graph[cur].parent);\n\t\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\t\tcur = graph[cur].parent;\n\t\t}\n\t\tfn.conversion = path;\n\t\treturn fn;\n\t}\n\tmodule.exports = function(fromModel) {\n\t\tconst graph = deriveBFS(fromModel);\n\t\tconst conversion = {};\n\t\tconst models = Object.keys(graph);\n\t\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\t\tconst toModel = models[i];\n\t\t\tif (graph[toModel].parent === null) continue;\n\t\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t\t}\n\t\treturn conversion;\n\t};\n}));\n//#endregion\n//#region node_modules/color-convert/index.js\nvar require_color_convert = /* @__PURE__ */ __commonJSMin(((exports, module) => {\n\tvar conversions = require_conversions();\n\tvar route = require_route();\n\tvar convert = {};\n\tvar models = Object.keys(conversions);\n\tfunction wrapRaw(fn) {\n\t\tconst wrappedFn = function(...args) {\n\t\t\tconst arg0 = args[0];\n\t\t\tif (arg0 === void 0 || arg0 === null) return arg0;\n\t\t\tif (arg0.length > 1) args = arg0;\n\t\t\treturn fn(args);\n\t\t};\n\t\tif (\"conversion\" in fn) wrappedFn.conversion = fn.conversion;\n\t\treturn wrappedFn;\n\t}\n\tfunction wrapRounded(fn) {\n\t\tconst wrappedFn = function(...args) {\n\t\t\tconst arg0 = args[0];\n\t\t\tif (arg0 === void 0 || arg0 === null) return arg0;\n\t\t\tif (arg0.length > 1) args = arg0;\n\t\t\tconst result = fn(args);\n\t\t\tif (typeof result === \"object\") for (let len = result.length, i = 0; i < len; i++) result[i] = Math.round(result[i]);\n\t\t\treturn result;\n\t\t};\n\t\tif (\"conversion\" in fn) wrappedFn.conversion = fn.conversion;\n\t\treturn wrappedFn;\n\t}\n\tmodels.forEach((fromModel) => {\n\t\tconvert[fromModel] = {};\n\t\tObject.defineProperty(convert[fromModel], \"channels\", { value: conversions[fromModel].channels });\n\t\tObject.defineProperty(convert[fromModel], \"labels\", { value: conversions[fromModel].labels });\n\t\tconst routes = route(fromModel);\n\t\tObject.keys(routes).forEach((toModel) => {\n\t\t\tconst fn = routes[toModel];\n\t\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t\t});\n\t});\n\tmodule.exports = convert;\n}));\n//#endregion\n//#region node_modules/ansi-styles/index.js\nvar require_ansi_styles = /* @__PURE__ */ __commonJSMin(((exports, module) => {\n\tvar wrapAnsi16 = (fn, offset) => (...args) => {\n\t\treturn `\\u001B[${fn(...args) + offset}m`;\n\t};\n\tvar wrapAnsi256 = (fn, offset) => (...args) => {\n\t\tconst code = fn(...args);\n\t\treturn `\\u001B[${38 + offset};5;${code}m`;\n\t};\n\tvar wrapAnsi16m = (fn, offset) => (...args) => {\n\t\tconst rgb = fn(...args);\n\t\treturn `\\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`;\n\t};\n\tvar ansi2ansi = (n) => n;\n\tvar rgb2rgb = (r, g, b) => [\n\t\tr,\n\t\tg,\n\t\tb\n\t];\n\tvar setLazyProperty = (object, property, get) => {\n\t\tObject.defineProperty(object, property, {\n\t\t\tget: () => {\n\t\t\t\tconst value = get();\n\t\t\t\tObject.defineProperty(object, property, {\n\t\t\t\t\tvalue,\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true\n\t\t\t\t});\n\t\t\t\treturn value;\n\t\t\t},\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true\n\t\t});\n\t};\n\t/** @type {typeof import('color-convert')} */\n\tvar colorConvert;\n\tvar makeDynamicStyles = (wrap, targetSpace, identity, isBackground) => {\n\t\tif (colorConvert === void 0) colorConvert = require_color_convert();\n\t\tconst offset = isBackground ? 10 : 0;\n\t\tconst styles = {};\n\t\tfor (const [sourceSpace, suite] of Object.entries(colorConvert)) {\n\t\t\tconst name = sourceSpace === \"ansi16\" ? \"ansi\" : sourceSpace;\n\t\t\tif (sourceSpace === targetSpace) styles[name] = wrap(identity, offset);\n\t\t\telse if (typeof suite === \"object\") styles[name] = wrap(suite[targetSpace], offset);\n\t\t}\n\t\treturn styles;\n\t};\n\tfunction assembleStyles() {\n\t\tconst codes = /* @__PURE__ */ new Map();\n\t\tconst styles = {\n\t\t\tmodifier: {\n\t\t\t\treset: [0, 0],\n\t\t\t\tbold: [1, 22],\n\t\t\t\tdim: [2, 22],\n\t\t\t\titalic: [3, 23],\n\t\t\t\tunderline: [4, 24],\n\t\t\t\tinverse: [7, 27],\n\t\t\t\thidden: [8, 28],\n\t\t\t\tstrikethrough: [9, 29]\n\t\t\t},\n\t\t\tcolor: {\n\t\t\t\tblack: [30, 39],\n\t\t\t\tred: [31, 39],\n\t\t\t\tgreen: [32, 39],\n\t\t\t\tyellow: [33, 39],\n\t\t\t\tblue: [34, 39],\n\t\t\t\tmagenta: [35, 39],\n\t\t\t\tcyan: [36, 39],\n\t\t\t\twhite: [37, 39],\n\t\t\t\tblackBright: [90, 39],\n\t\t\t\tredBright: [91, 39],\n\t\t\t\tgreenBright: [92, 39],\n\t\t\t\tyellowBright: [93, 39],\n\t\t\t\tblueBright: [94, 39],\n\t\t\t\tmagentaBright: [95, 39],\n\t\t\t\tcyanBright: [96, 39],\n\t\t\t\twhiteBright: [97, 39]\n\t\t\t},\n\t\t\tbgColor: {\n\t\t\t\tbgBlack: [40, 49],\n\t\t\t\tbgRed: [41, 49],\n\t\t\t\tbgGreen: [42, 49],\n\t\t\t\tbgYellow: [43, 49],\n\t\t\t\tbgBlue: [44, 49],\n\t\t\t\tbgMagenta: [45, 49],\n\t\t\t\tbgCyan: [46, 49],\n\t\t\t\tbgWhite: [47, 49],\n\t\t\t\tbgBlackBright: [100, 49],\n\t\t\t\tbgRedBright: [101, 49],\n\t\t\t\tbgGreenBright: [102, 49],\n\t\t\t\tbgYellowBright: [103, 49],\n\t\t\t\tbgBlueBright: [104, 49],\n\t\t\t\tbgMagentaBright: [105, 49],\n\t\t\t\tbgCyanBright: [106, 49],\n\t\t\t\tbgWhiteBright: [107, 49]\n\t\t\t}\n\t\t};\n\t\tstyles.color.gray = styles.color.blackBright;\n\t\tstyles.bgColor.bgGray = styles.bgColor.bgBlackBright;\n\t\tstyles.color.grey = styles.color.blackBright;\n\t\tstyles.bgColor.bgGrey = styles.bgColor.bgBlackBright;\n\t\tfor (const [groupName, group] of Object.entries(styles)) {\n\t\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\t\tstyles[styleName] = {\n\t\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\t\tclose: `\\u001B[${style[1]}m`\n\t\t\t\t};\n\t\t\t\tgroup[styleName] = styles[styleName];\n\t\t\t\tcodes.set(style[0], style[1]);\n\t\t\t}\n\t\t\tObject.defineProperty(styles, groupName, {\n\t\t\t\tvalue: group,\n\t\t\t\tenumerable: false\n\t\t\t});\n\t\t}\n\t\tObject.defineProperty(styles, \"codes\", {\n\t\t\tvalue: codes,\n\t\t\tenumerable: false\n\t\t});\n\t\tstyles.color.close = \"\\x1B[39m\";\n\t\tstyles.bgColor.close = \"\\x1B[49m\";\n\t\tsetLazyProperty(styles.color, \"ansi\", () => makeDynamicStyles(wrapAnsi16, \"ansi16\", ansi2ansi, false));\n\t\tsetLazyProperty(styles.color, \"ansi256\", () => makeDynamicStyles(wrapAnsi256, \"ansi256\", ansi2ansi, false));\n\t\tsetLazyProperty(styles.color, \"ansi16m\", () => makeDynamicStyles(wrapAnsi16m, \"rgb\", rgb2rgb, false));\n\t\tsetLazyProperty(styles.bgColor, \"ansi\", () => makeDynamicStyles(wrapAnsi16, \"ansi16\", ansi2ansi, true));\n\t\tsetLazyProperty(styles.bgColor, \"ansi256\", () => makeDynamicStyles(wrapAnsi256, \"ansi256\", ansi2ansi, true));\n\t\tsetLazyProperty(styles.bgColor, \"ansi16m\", () => makeDynamicStyles(wrapAnsi16m, \"rgb\", rgb2rgb, true));\n\t\treturn styles;\n\t}\n\tObject.defineProperty(module, \"exports\", {\n\t\tenumerable: true,\n\t\tget: assembleStyles\n\t});\n}));\n//#endregion\n//#region node_modules/supports-color/browser.js\nvar require_browser = /* @__PURE__ */ __commonJSMin(((exports, module) => {\n\tmodule.exports = {\n\t\tstdout: false,\n\t\tstderr: false\n\t};\n}));\n//#endregion\n//#region node_modules/chalk/source/util.js\nvar require_util = /* @__PURE__ */ __commonJSMin(((exports, module) => {\n\tvar stringReplaceAll = (string, substring, replacer) => {\n\t\tlet index = string.indexOf(substring);\n\t\tif (index === -1) return string;\n\t\tconst substringLength = substring.length;\n\t\tlet endIndex = 0;\n\t\tlet returnValue = \"\";\n\t\tdo {\n\t\t\treturnValue += string.substr(endIndex, index - endIndex) + substring + replacer;\n\t\t\tendIndex = index + substringLength;\n\t\t\tindex = string.indexOf(substring, endIndex);\n\t\t} while (index !== -1);\n\t\treturnValue += string.substr(endIndex);\n\t\treturn returnValue;\n\t};\n\tvar stringEncaseCRLFWithFirstIndex = (string, prefix, postfix, index) => {\n\t\tlet endIndex = 0;\n\t\tlet returnValue = \"\";\n\t\tdo {\n\t\t\tconst gotCR = string[index - 1] === \"\\r\";\n\t\t\treturnValue += string.substr(endIndex, (gotCR ? index - 1 : index) - endIndex) + prefix + (gotCR ? \"\\r\\n\" : \"\\n\") + postfix;\n\t\t\tendIndex = index + 1;\n\t\t\tindex = string.indexOf(\"\\n\", endIndex);\n\t\t} while (index !== -1);\n\t\treturnValue += string.substr(endIndex);\n\t\treturn returnValue;\n\t};\n\tmodule.exports = {\n\t\tstringReplaceAll,\n\t\tstringEncaseCRLFWithFirstIndex\n\t};\n}));\n//#endregion\n//#region node_modules/chalk/source/templates.js\nvar require_templates = /* @__PURE__ */ __commonJSMin(((exports, module) => {\n\tvar 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\tvar STYLE_REGEX = /(?:^|\\.)(\\w+)(?:\\(([^)]*)\\))?/g;\n\tvar STRING_REGEX = /^(['\"])((?:\\\\.|(?!\\1)[^\\\\])*)\\1$/;\n\tvar ESCAPE_REGEX = /\\\\(u(?:[a-f\\d]{4}|{[a-f\\d]{1,6}})|x[a-f\\d]{2}|.)|([^\\\\])/gi;\n\tvar ESCAPES = new Map([\n\t\t[\"n\", \"\\n\"],\n\t\t[\"r\", \"\\r\"],\n\t\t[\"t\", \"\t\"],\n\t\t[\"b\", \"\\b\"],\n\t\t[\"f\", \"\\f\"],\n\t\t[\"v\", \"\\v\"],\n\t\t[\"0\", \"\\0\"],\n\t\t[\"\\\\\", \"\\\\\"],\n\t\t[\"e\", \"\\x1B\"],\n\t\t[\"a\", \"\\x07\"]\n\t]);\n\tfunction unescape(c) {\n\t\tconst u = c[0] === \"u\";\n\t\tconst bracket = c[1] === \"{\";\n\t\tif (u && !bracket && c.length === 5 || c[0] === \"x\" && c.length === 3) return String.fromCharCode(parseInt(c.slice(1), 16));\n\t\tif (u && bracket) return String.fromCodePoint(parseInt(c.slice(2, -1), 16));\n\t\treturn ESCAPES.get(c) || c;\n\t}\n\tfunction parseArguments(name, arguments_) {\n\t\tconst results = [];\n\t\tconst chunks = arguments_.trim().split(/\\s*,\\s*/g);\n\t\tlet matches;\n\t\tfor (const chunk of chunks) {\n\t\t\tconst number = Number(chunk);\n\t\t\tif (!Number.isNaN(number)) results.push(number);\n\t\t\telse if (matches = chunk.match(STRING_REGEX)) results.push(matches[2].replace(ESCAPE_REGEX, (m, escape, character) => escape ? unescape(escape) : character));\n\t\t\telse throw new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`);\n\t\t}\n\t\treturn results;\n\t}\n\tfunction parseStyle(style) {\n\t\tSTYLE_REGEX.lastIndex = 0;\n\t\tconst results = [];\n\t\tlet matches;\n\t\twhile ((matches = STYLE_REGEX.exec(style)) !== null) {\n\t\t\tconst name = matches[1];\n\t\t\tif (matches[2]) {\n\t\t\t\tconst args = parseArguments(name, matches[2]);\n\t\t\t\tresults.push([name].concat(args));\n\t\t\t} else results.push([name]);\n\t\t}\n\t\treturn results;\n\t}\n\tfunction buildStyle(chalk, styles) {\n\t\tconst enabled = {};\n\t\tfor (const layer of styles) for (const style of layer.styles) enabled[style[0]] = layer.inverse ? null : style.slice(1);\n\t\tlet current = chalk;\n\t\tfor (const [styleName, styles] of Object.entries(enabled)) {\n\t\t\tif (!Array.isArray(styles)) continue;\n\t\t\tif (!(styleName in current)) throw new Error(`Unknown Chalk style: ${styleName}`);\n\t\t\tcurrent = styles.length > 0 ? current[styleName](...styles) : current[styleName];\n\t\t}\n\t\treturn current;\n\t}\n\tmodule.exports = (chalk, temporary) => {\n\t\tconst styles = [];\n\t\tconst chunks = [];\n\t\tlet chunk = [];\n\t\ttemporary.replace(TEMPLATE_REGEX, (m, escapeCharacter, inverse, style, close, character) => {\n\t\t\tif (escapeCharacter) chunk.push(unescape(escapeCharacter));\n\t\t\telse if (style) {\n\t\t\t\tconst string = chunk.join(\"\");\n\t\t\t\tchunk = [];\n\t\t\t\tchunks.push(styles.length === 0 ? string : buildStyle(chalk, styles)(string));\n\t\t\t\tstyles.push({\n\t\t\t\t\tinverse,\n\t\t\t\t\tstyles: parseStyle(style)\n\t\t\t\t});\n\t\t\t} else if (close) {\n\t\t\t\tif (styles.length === 0) throw new Error(\"Found extraneous } in Chalk template literal\");\n\t\t\t\tchunks.push(buildStyle(chalk, styles)(chunk.join(\"\")));\n\t\t\t\tchunk = [];\n\t\t\t\tstyles.pop();\n\t\t\t} else chunk.push(character);\n\t\t});\n\t\tchunks.push(chunk.join(\"\"));\n\t\tif (styles.length > 0) {\n\t\t\tconst errMessage = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? \"\" : \"s\"} (\\`}\\`)`;\n\t\t\tthrow new Error(errMessage);\n\t\t}\n\t\treturn chunks.join(\"\");\n\t};\n}));\n//#endregion\n//#region src/stsconfig.ts\nvar import_source = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {\n\tvar ansiStyles = require_ansi_styles();\n\tvar { stdout: stdoutColor, stderr: stderrColor } = require_browser();\n\tvar { stringReplaceAll, stringEncaseCRLFWithFirstIndex } = require_util();\n\tvar { isArray } = Array;\n\tvar levelMapping = [\n\t\t\"ansi\",\n\t\t\"ansi\",\n\t\t\"ansi256\",\n\t\t\"ansi16m\"\n\t];\n\tvar styles = Object.create(null);\n\tvar applyOptions = (object, options = {}) => {\n\t\tif (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) throw new Error(\"The `level` option should be an integer from 0 to 3\");\n\t\tconst colorLevel = stdoutColor ? stdoutColor.level : 0;\n\t\tobject.level = options.level === void 0 ? colorLevel : options.level;\n\t};\n\tvar ChalkClass = class {\n\t\tconstructor(options) {\n\t\t\treturn chalkFactory(options);\n\t\t}\n\t};\n\tvar chalkFactory = (options) => {\n\t\tconst chalk = {};\n\t\tapplyOptions(chalk, options);\n\t\tchalk.template = (...arguments_) => chalkTag(chalk.template, ...arguments_);\n\t\tObject.setPrototypeOf(chalk, Chalk.prototype);\n\t\tObject.setPrototypeOf(chalk.template, chalk);\n\t\tchalk.template.constructor = () => {\n\t\t\tthrow new Error(\"`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.\");\n\t\t};\n\t\tchalk.template.Instance = ChalkClass;\n\t\treturn chalk.template;\n\t};\n\tfunction Chalk(options) {\n\t\treturn chalkFactory(options);\n\t}\n\tfor (const [styleName, style] of Object.entries(ansiStyles)) styles[styleName] = { get() {\n\t\tconst builder = createBuilder(this, createStyler(style.open, style.close, this._styler), this._isEmpty);\n\t\tObject.defineProperty(this, styleName, { value: builder });\n\t\treturn builder;\n\t} };\n\tstyles.visible = { get() {\n\t\tconst builder = createBuilder(this, this._styler, true);\n\t\tObject.defineProperty(this, \"visible\", { value: builder });\n\t\treturn builder;\n\t} };\n\tvar usedModels = [\n\t\t\"rgb\",\n\t\t\"hex\",\n\t\t\"keyword\",\n\t\t\"hsl\",\n\t\t\"hsv\",\n\t\t\"hwb\",\n\t\t\"ansi\",\n\t\t\"ansi256\"\n\t];\n\tfor (const model of usedModels) styles[model] = { get() {\n\t\tconst { level } = this;\n\t\treturn function(...arguments_) {\n\t\t\tconst styler = createStyler(ansiStyles.color[levelMapping[level]][model](...arguments_), ansiStyles.color.close, this._styler);\n\t\t\treturn createBuilder(this, styler, this._isEmpty);\n\t\t};\n\t} };\n\tfor (const model of usedModels) {\n\t\tconst bgModel = \"bg\" + model[0].toUpperCase() + model.slice(1);\n\t\tstyles[bgModel] = { get() {\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\tvar proto = Object.defineProperties(() => {}, {\n\t\t...styles,\n\t\tlevel: {\n\t\t\tenumerable: true,\n\t\t\tget() {\n\t\t\t\treturn this._generator.level;\n\t\t\t},\n\t\t\tset(level) {\n\t\t\t\tthis._generator.level = level;\n\t\t\t}\n\t\t}\n\t});\n\tvar createStyler = (open, close, parent) => {\n\t\tlet openAll;\n\t\tlet closeAll;\n\t\tif (parent === void 0) {\n\t\t\topenAll = open;\n\t\t\tcloseAll = close;\n\t\t} else {\n\t\t\topenAll = parent.openAll + open;\n\t\t\tcloseAll = close + parent.closeAll;\n\t\t}\n\t\treturn {\n\t\t\topen,\n\t\t\tclose,\n\t\t\topenAll,\n\t\t\tcloseAll,\n\t\t\tparent\n\t\t};\n\t};\n\tvar createBuilder = (self, _styler, _isEmpty) => {\n\t\tconst builder = (...arguments_) => {\n\t\t\tif (isArray(arguments_[0]) && isArray(arguments_[0].raw)) return applyStyle(builder, chalkTag(builder, ...arguments_));\n\t\t\treturn applyStyle(builder, arguments_.length === 1 ? \"\" + arguments_[0] : arguments_.join(\" \"));\n\t\t};\n\t\tObject.setPrototypeOf(builder, proto);\n\t\tbuilder._generator = self;\n\t\tbuilder._styler = _styler;\n\t\tbuilder._isEmpty = _isEmpty;\n\t\treturn builder;\n\t};\n\tvar applyStyle = (self, string) => {\n\t\tif (self.level <= 0 || !string) return self._isEmpty ? \"\" : string;\n\t\tlet styler = self._styler;\n\t\tif (styler === void 0) return string;\n\t\tconst { openAll, closeAll } = styler;\n\t\tif (string.indexOf(\"\\x1B\") !== -1) while (styler !== void 0) {\n\t\t\tstring = stringReplaceAll(string, styler.close, styler.open);\n\t\t\tstyler = styler.parent;\n\t\t}\n\t\tconst lfIndex = string.indexOf(\"\\n\");\n\t\tif (lfIndex !== -1) string = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);\n\t\treturn openAll + string + closeAll;\n\t};\n\tvar template;\n\tvar chalkTag = (chalk, ...strings) => {\n\t\tconst [firstString] = strings;\n\t\tif (!isArray(firstString) || !isArray(firstString.raw)) return strings.join(\" \");\n\t\tconst arguments_ = strings.slice(1);\n\t\tconst parts = [firstString.raw[0]];\n\t\tfor (let i = 1; i < firstString.length; i++) parts.push(String(arguments_[i - 1]).replace(/[{}\\\\]/g, \"\\\\$&\"), String(firstString.raw[i]));\n\t\tif (template === void 0) template = require_templates();\n\t\treturn template(chalk, parts.join(\"\"));\n\t};\n\tObject.defineProperties(Chalk.prototype, styles);\n\tvar chalk = Chalk();\n\tchalk.supportsColor = stdoutColor;\n\tchalk.stderr = Chalk({ level: stderrColor ? stderrColor.level : 0 });\n\tchalk.stderr.supportsColor = stderrColor;\n\tmodule.exports = chalk;\n})))());\nvar envOptions = {};\nfunction SetupConfig(envOptions, logger) {\n\tconst envfile = process.env.STSENVFILE === void 0 ? \"/.env\" : process.env.STSENVFILE;\n\tdotenv.config({ path: envfile });\n\tconst defconfig = {\n\t\tisProduction: process.env.NODE_ENV === void 0 ? false : process.env.NODE_ENV === \"production\" ? true : false,\n\t\tisTest: process.env.NODE_ENV === void 0 ? false : process.env.NODE_ENV === \"test\" ? true : false,\n\t\tdbuser: process.env.DB_USER === void 0 ? \"postgres\" : process.env.DB_USER,\n\t\tdbpassword: process.env.DB_PASSWORD === void 0 ? \"postgres\" : process.env.DB_PASSWORD,\n\t\tdbpasswordfile: process.env.DB_PASSWORD_FILE,\n\t\tdbhost: process.env.DB_HOST === void 0 ? \"localhost:5432\" : process.env.DB_HOST,\n\t\tdatabase: process.env.DB_DATABASE === void 0 ? \"stsrestmsdb01\" : process.env.DB_DATABASE,\n\t\tdatabaseUrl: process.env.DATABASE_URL,\n\t\tconnectionString: \"\",\n\t\tdefaultDatabaseConnectionString: \"\",\n\t\tSTSServerType: process.env.STS_SERVER_TYPE === void 0 ? \"EXPRESS_TLS\" : process.env.STS_SERVER_TYPE,\n\t\tlogToFile: process.env.LOG_TO_FILE === void 0 ? false : process.env.LOG_TO_FILE === \"true\" ? true : false,\n\t\tlogFilePath: process.env.LOG_FILE_PATH === void 0 ? \"/var/lib/sts\" : process.env.LOG_FILE_PATH,\n\t\tlogFileFormat: process.env.LOG_FILE_FORMAT === void 0 ? \"csv\" : process.env.LOG_FILE_FORMAT,\n\t\tpoolSize: process.env.POOL_SIZE === void 0 ? 500 : parseInt(process.env.POOL_SIZE),\n\t\tuseCPUs: process.env.MAX_CPU === void 0 ? -1 : parseFloat(process.env.MAX_CPU),\n\t\trespawnOnFail: process.env.RESPAWN === void 0 ? true : process.env.RESPAWN === \"true\" ? true : false,\n\t\tdefaultDatabaseEntries: process.env.DEFAULT_DB_ENTRIES === void 0 ? 1e4 : parseInt(process.env.DEFAULT_DB_ENTRIES),\n\t\tuseRedisDatabaseCache: process.env.USE_REDIS_DATABASE_CACHE === void 0 ? false : process.env.USE_REDIS_DATABASE_CACHE === \"true\" ? true : false,\n\t\tuseSocketIoRedisAdaptor: process.env.USE_SOCKET_IO_REDIS_ADAPTOR === void 0 ? false : process.env.USE_SOCKET_IO_REDIS_ADAPTOR === \"true\" ? true : false,\n\t\tsocketIoRedisAdaptorUrl: process.env.SOCKET_IO_REDIS_ADAPTOR_URL === void 0 ? \"redis://localhost:6379\" : process.env.SOCKET_IO_REDIS_ADAPTOR_URL,\n\t\tuseRedisInstrumentationTransport: process.env.USE_REDIS_INSTRUMENTATION_TRANSPORT === void 0 ? false : process.env.USE_REDIS_INSTRUMENTATION_TRANSPORT === \"true\" ? true : false,\n\t\tredisInstrumentationTransportUrl: process.env.REDIS_INSTRUMENTATION_TRANSPORT_URL === void 0 ? \"redis://localhost:6379\" : process.env.REDIS_INSTRUMENTATION_TRANSPORT_URL,\n\t\tredisDatabaseCacheEndFlush: process.env.REDIS_DATABASE_CACHE_END_FLUSH === void 0 ? false : process.env.REDIS_DATABASE_CACHE_END_FLUSH === \"true\" ? true : false,\n\t\tredisDatabaseCacheUrl: process.env.REDIS_DATABASE_CACHE_URL === void 0 ? \"redis://localhost:6379\" : process.env.REDIS_DATABASE_CACHE_URL,\n\t\tdefaultDatabaseMinExtraDataSize: process.env.DEFAULT_DATABASE_MIN_EXTRA_DATA_SIZE === void 0 ? 0 : parseInt(process.env.DEFAULT_DATABASE_MIN_EXTRA_DATA_SIZE),\n\t\tdefaultDatabaseMaxExtraDataSize: process.env.DEFAULT_DATABASE_MAX_EXTRA_DATA_SIZE === void 0 ? 2e3 : parseInt(process.env.DEFAULT_DATABASE_MAX_EXTRA_DATA_SIZE),\n\t\trest01endpoint: process.env.REST01_ENDPOINT === void 0 ? \"https://localhost\" : process.env.REST01_ENDPOINT,\n\t\trest01hostport: process.env.REST01_HOST_PORT === void 0 ? \"3003\" : process.env.REST01_HOST_PORT,\n\t\trest01port: process.env.REST01_PORT === void 0 ? \"3003\" : process.env.REST01_PORT,\n\t\trest01apiroot: process.env.REST01_APIROOT === void 0 ? \"/stsrest01/v1\" : process.env.REST01_APIROOT,\n\t\trest01prometheussupport: process.env.REST01_PROM_SUPPORT === void 0 ? true : process.env.REST01_PROM_SUPPORT === \"true\" ? true : false,\n\t\trest01prometheusclusterport: process.env.REST01_PROM_CLUSTER_PORT === void 0 ? \"3013\" : process.env.REST01_PROM_CLUSTER_PORT,\n\t\trest01servicename: process.env.REST01_SERVICE_NAME === void 0 ? \"STSRest01\" : process.env.REST01_SERVICE_NAME,\n\t\trest01serviceversion: process.env.REST01_SERVICE_VERSION === void 0 ? \"1.0.0\" : process.env.REST01_SERVICE_VERSION,\n\t\tstsfhirendpoint: process.env.STSFHIR_ENDPOINT === void 0 ? \"https://localhost\" : process.env.STSFHIR_ENDPOINT,\n\t\tstsfhirhostport: process.env.STSFHIR_HOST_PORT === void 0 ? \"3005\" : process.env.STSFHIR_HOST_PORT,\n\t\tstsfhirport: process.env.STSFHIR_PORT === void 0 ? \"3005\" : process.env.STSFHIR_PORT,\n\t\tstsfhirapiroot: process.env.STSFHIR_APIROOT === void 0 ? \"/stsfhir/r5\" : process.env.STSFHIR_APIROOT,\n\t\tstsfhirprometheussupport: process.env.STSFHIR_PROM_SUPPORT === void 0 ? true : process.env.STSFHIR_PROM_SUPPORT === \"true\" ? true : false,\n\t\tstsfhirprometheusclusterport: process.env.STSFHIR_PROM_CLUSTER_PORT === void 0 ? \"3015\" : process.env.STSFHIR_PROM_CLUSTER_PORT,\n\t\tstsfhirservicename: process.env.STSFHIR_SERVICE_NAME === void 0 ? \"STSFHIR\" : process.env.STSFHIR_SERVICE_NAME,\n\t\tstsfhirserviceversion: process.env.STSFHIR_SERVICE_VERSION === void 0 ? \"1.0.0\" : process.env.STSFHIR_SERVICE_VERSION,\n\t\tstsfhirUseOperationalOutcomeForDelete: process.env.STSFHIR_USE_OPERATIONAL_OUTCOME_FOR_DELETE === void 0 ? true : process.env.STSFHIR_USE_OPERATIONAL_OUTCOME_FOR_DELETE === \"true\" ? true : false,\n\t\tststccendpoint: process.env.STSTCC_ENDPOINT === void 0 ? \"https://localhost\" : process.env.STSTCC_ENDPOINT,\n\t\tststcchostport: process.env.STSTCC_HOST_PORT === void 0 ? \"3024\" : process.env.STSTCC_HOST_PORT,\n\t\tststccport: process.env.STSTCC_PORT === void 0 ? \"3024\" : process.env.STSTCC_PORT,\n\t\tststccapiroot: process.env.STSTCC_APIROOT === void 0 ? \"/ststcc/v1\" : process.env.STSTCC_APIROOT,\n\t\tststccprometheussupport: process.env.STSTCC_PROM_SUPPORT === void 0 ? true : process.env.STSTCC_PROM_SUPPORT === \"true\" ? true : false,\n\t\tststccprometheusclusterport: process.env.STSTCC_PROM_CLUSTER_PORT === void 0 ? \"3025\" : process.env.STSTCC_PROM_CLUSTER_PORT,\n\t\tststccservicename: process.env.STSTCC_SERVICE_NAME === void 0 ? \"STSTCC\" : process.env.STSTCC_SERVICE_NAME,\n\t\tststccserviceversion: process.env.STSTCC_SERVICE_VERSION === void 0 ? \"1.0.0\" : process.env.STSTCC_SERVICE_VERSION,\n\t\timendpoint: process.env.IM_ENDPOINT === void 0 ? \"https://localhost\" : process.env.IM_ENDPOINT,\n\t\timhostport: process.env.IM_HOST_PORT === void 0 ? \"3001\" : process.env.IM_HOST_PORT,\n\t\timport: process.env.IM_PORT === void 0 ? \"3001\" : process.env.IM_PORT,\n\t\timapiroot: process.env.IM_APIROOT === void 0 ? \"/stsinstrumentmanager/v1\" : process.env.IM_APIROOT,\n\t\timprometheussupport: process.env.IM_PROM_SUPPORT === void 0 ? true : process.env.IM_PROM_SUPPORT === \"true\" ? true : false,\n\t\timprometheusclusterport: process.env.IM_PROM_CLUSTER_PORT === void 0 ? \"3011\" : process.env.IM_PROM_CLUSTER_PORT,\n\t\timservicename: process.env.IM_SERVICE_NAME === void 0 ? \"STSInstrumentManager\" : process.env.IM_SERVICE_NAME,\n\t\timserviceversion: process.env.IM_SERVICE_VERSION === void 0 ? \"1.0.0\" : process.env.IM_SERVICE_VERSION,\n\t\timRedisKeepAliveProcessorUrl: process.env.IM_REDIS_KEEP_ALIVE_PROCESSOR_URL === void 0 ? \"redis://localhost:6379\" : process.env.IM_REDIS_KEEP_ALIVE_PROCESSOR_URL,\n\t\timRedisMessageProcessorUrl: process.env.IM_REDIS_MESSAGE_PROCESSOR_URL === void 0 ? \"redis://localhost:6379\" : process.env.IM_REDIS_MESSAGE_PROCESSOR_URL,\n\t\tasendpoint: process.env.AS_ENDPOINT === void 0 ? \"https://localhost\" : process.env.AS_ENDPOINT,\n\t\tashostport: process.env.AS_HOST_PORT === void 0 ? \"3002\" : process.env.AS_HOST_PORT,\n\t\tasport: process.env.AS_PORT === void 0 ? \"3002\" : process.env.AS_PORT,\n\t\tasapiroot: process.env.AS_API_ROOT === void 0 ? \"/stsauth/v1.0\" : process.env.AS_API_ROOT,\n\t\tasoauthapiroot: process.env.AS_OAUTH_API_ROOT === void 0 ? \"/oauth2/v2.0\" : process.env.AS_OAUTH_API_ROOT,\n\t\tasadminapiroot: process.env.AS_ADMIN_API_ROOT === void 0 ? \"/admin/v1.0\" : process.env.AS_ADMIN_API_ROOT,\n\t\tasprometheussupport: process.env.AS_PROM_SUPPORT === void 0 ? true : process.env.AS_PROM_SUPPORT === \"true\" ? true : false,\n\t\tasprometheusclusterport: process.env.AS_PROM_CLUSTER_PORT === void 0 ? \"3012\" : process.env.AS_PROM_CLUSTER_PORT,\n\t\tasservicename: process.env.AS_SERVICE_NAME === void 0 ? \"STSAuth\" : process.env.AS_SERVICE_NAME,\n\t\tasserviceversion: process.env.AS_SERVICE_VERSION === void 0 ? \"1.0.0\" : process.env.AS_SERVICE_VERSION,\n\t\tasjwksjsonpath: process.env.AS_JWKS_JSON_PATH === void 0 ? \"/.well-known/jwks.json\" : process.env.AS_JWKS_JSON_PATH,\n\t\tasjwkskeyrotationtime: process.env.AS_JWKS_KEY_ROTATION_TIME === void 0 ? 86400 : parseInt(process.env.AS_JWKS_KEY_ROTATION_TIME),\n\t\tasjwkskeypurgetimeoffset: process.env.AS_JWKS_KEY_PURGE_TIME_OFFSET === void 0 ? 300 : parseInt(process.env.AS_JWKS_KEY_PURGE_TIME_OFFSET),\n\t\tasjwkskeycount: process.env.AS_JWKS_KEY_COUNT === void 0 ? 4 : parseInt(process.env.AS_JWKS_KEY_COUNT),\n\t\tasaccesstokenexpire: process.env.AS_ACCESS_TOKEN_EXPIRE === void 0 ? 43200 : parseInt(process.env.AS_ACCESS_TOKEN_EXPIRE),\n\t\tauthorizeendpoint: process.env.AUTHORIZE_ENDPOINT === void 0 ? \"https://localhost\" : process.env.AUTHORIZE_ENDPOINT,\n\t\tauthorizeport: process.env.AUTHORIZE_PORT === void 0 ? \"3010\" : process.env.AUTHORIZE_PORT,\n\t\tauthorizeapiroot: process.env.AUTHORIZE_API_ROOT === void 0 ? \"/stsa\" : process.env.AUTHORIZE_API_ROOT,\n\t\tauthorizeapi: process.env.AUTHORIZE_API === void 0 ? \"/authorize\" : process.env.AUTHORIZE_API,\n\t\tbrokerendpoint: process.env.BROKER_ENDPOINT === void 0 ? \"https://localhost\" : process.env.BROKER_ENDPOINT,\n\t\tbrokerhostport: process.env.BROKER_HOST_PORT === void 0 ? \"3006\" : process.env.BROKER_HOST_PORT,\n\t\tbrokerport: process.env.BROKER_PORT === void 0 ? \"3006\" : process.env.BROKER_PORT,\n\t\tbrokerapiroot: process.env.BROKER_APIROOT === void 0 ? \"/stsbroker/v1.0\" : process.env.BROKER_APIROOT,\n\t\tbrokerprometheussupport: process.env.BROKER_PROM_SUPPORT === void 0 ? true : process.env.BROKER_PROM_SUPPORT === \"true\" ? true : false,\n\t\tbrokerprometheusclusterport: process.env.BROKER_PROM_CLUSTER_PORT === void 0 ? \"3016\" : process.env.BROKER_PROM_CLUSTER_PORT,\n\t\tbrokerservicename: process.env.BROKER_SERVICE_NAME === void 0 ? \"STSBroker\" : process.env.BROKER_SERVICE_NAME,\n\t\tbrokerserviceversion: process.env.BROKER_SERVICE_VERSION === void 0 ? \"1.0.0\" : process.env.BROKER_SERVICE_VERSION,\n\t\ttrnendpoint: process.env.TRN_ENDPOINT === void 0 ? \"https://localhost\" : process.env.TRN_ENDPOINT,\n\t\ttrnhostport: process.env.TRN_HOST_PORT === void 0 ? \"3007\" : process.env.TRN_HOST_PORT,\n\t\ttrnport: process.env.TRN_PORT === void 0 ? \"3007\" : process.env.TRN_PORT,\n\t\ttrnapiroot: process.env.TRN_APIROOT === void 0 ? \"/ststrn/v1.0\" : process.env.TRN_APIROOT,\n\t\ttrnprometheussupport: process.env.TRN_PROM_SUPPORT === void 0 ? true : process.env.TRN_PROM_SUPPORT === \"true\" ? true : false,\n\t\ttrnprometheusclusterport: process.env.TRN_PROM_CLUSTER_PORT === void 0 ? \"3017\" : process.env.TRN_PROM_CLUSTER_PORT,\n\t\ttrnservicename: process.env.TRN_SERVICE_NAME === void 0 ? \"STSTestRunnerNode\" : process.env.TRN_SERVICE_NAME,\n\t\ttrnserviceversion: process.env.TRN_SERVICE_VERSION === void 0 ? \"1.0.0\" : process.env.TRN_SERVICE_VERSION,\n\t\ttrnautostartdelay: process.env.TRN_AUTO_START_DELAY === void 0 ? 0 : parseInt(process.env.TRN_AUTO_START_DELAY),\n\t\ttrnautostartconfig: process.env.TRN_AUTO_START_CONFIG === void 0 ? \"\" : process.env.TRN_AUTO_START_CONFIG,\n\t\ttrnRedisMessageProcessorUrl: process.env.TRN_REDIS_MESSAGE_PROCESSOR_URL === void 0 ? \"redis://localhost:6379\" : process.env.TRN_REDIS_MESSAGE_PROCESSOR_URL,\n\t\tlambdaendpoint: process.env.LAMBDA_ENDPOINT === void 0 ? \"https://localhost\" : process.env.LAMBDA_ENDPOINT,\n\t\tlambdahostport: process.env.LAMBDA_HOST_PORT === void 0 ? \"3009\" : process.env.LAMBDA_HOST_PORT,\n\t\tlambdaport: process.env.LAMBDA_PORT === void 0 ? \"3009\" : process.env.LAMBDA_PORT,\n\t\tlambdaapiroot: process.env.LAMBDA_APIROOT === void 0 ? \"/stslambda/v1.0\" : process.env.LAMBDA_APIROOT,\n\t\tlambdaprometheussupport: process.env.LAMBDA_PROM_SUPPORT === void 0 ? true : process.env.LAMBDA_PROM_SUPPORT === \"true\" ? true : false,\n\t\tlambdaprometheusclusterport: process.env.LAMBDA_PROM_CLUSTER_PORT === void 0 ? \"3019\" : process.env.LAMBDA_PROM_CLUSTER_PORT,\n\t\tlambdaservicename: process.env.LAMBDA_SERVICE_NAME === void 0 ? \"STSLambda\" : process.env.LAMBDA_SERVICE_NAME,\n\t\tlambdaserviceversion: process.env.LAMBDA_SERVICE_VERSION === void 0 ? \"1.0.0\" : process.env.LAMBDA_SERVICE_VERSION,\n\t\tpublishinterval: process.env.PUBLISH_INTERVAL === void 0 ? 1e3 : parseInt(process.env.PUBLISH_INTERVAL),\n\t\tpublishtimeout: process.env.PUBLISH_TIMEOUT === void 0 ? 750 : parseInt(process.env.PUBLISH_TIMEOUT),\n\t\ttransport: process.env.TRANSPORT === void 0 ? \"RESTAPI\" : process.env.TRANSPORT,\n\t\tuseSecureCookies: process.env.USE_SECURE_COOKIES === void 0 ? false : process.env.USE_SECURE_COOKIES === \"true\" ? true : false,\n\t\tkeepAlive: process.env.KEEP_ALIVE === void 0 ? true : process.env.KEEP_ALIVE === \"true\" ? true : false,\n\t\tmaxSockets: process.env.MAX_SOCKETS === void 0 ? 10 : parseInt(process.env.MAX_SOCKETS),\n\t\tmaxTotalSockets: process.env.MAX_TOTAL_SOCKETS === void 0 ? 20 : parseInt(process.env.MAX_TOTAL_SOCKETS),\n\t\tmaxFreeSockets: process.env.MAX_FREE_SOCKETS === void 0 ? 256 : parseInt(process.env.MAX_FREE_SOCKETS),\n\t\ttimeout: process.env.TIMEOUT === void 0 ? 1e4 : parseInt(process.env.TIMEOUT),\n\t\tmaxPayloadSize: process.env.MAX_PAYLOAD_SIZE === void 0 ? \"50mb\" : process.env.MAX_PAYLOAD_SIZE,\n\t\tinstrumentationObservationInterval: process.env.INSTRUMENTATION_OBSERVATION_INTERVAL === void 0 ? 1e3 : parseInt(process.env.INSTRUMENTATION_OBSERVATION_INTERVAL),\n\t\tinstrumentationTimeWindow: process.env.INSTRUMENTATION_TIME_WINDOW === void 0 ? 600 : parseInt(process.env.INSTRUMENTATION_TIME_WINDOW),\n\t\tauthJWTAccessTokenTimeout: process.env.AUTH_JWT_ACCESS_TOKEN_TIMEOUT === void 0 ? 600 : parseInt(process.env.AUTH_JWT_ACCESS_TOKEN_TIMEOUT),\n\t\tauthJWTRefreshTokenTimeout: process.env.AUTH_JWT_REFRESH_TOKEN_TIMEOUT === void 0 ? 3600 * 24 : parseInt(process.env.AUTH_JWT_REFRESH_TOKEN_TIMEOUT),\n\t\tauthCookieTimeout: process.env.AUTH_COOKIE_TIMEOUT === void 0 ? 3600 * 24 : parseInt(process.env.AUTH_COOKIE_TIMEOUT),\n\t\tmasterProcessExitTime: process.env.MASTER_PROCESS_EXIT_TIME === void 0 ? 500 : parseInt(process.env.MASTER_PROCESS_EXIT_TIME),\n\t\tchildProcessExitTime: process.env.CHILD_PROCESS_EXIT_TIME === void 0 ? 500 : parseInt(process.env.CHILD_PROCESS_EXIT_TIME),\n\t\tsystemInformationInterval: process.env.SYSTEM_INFORMATION_INTERVAL === void 0 ? 1e3 : parseInt(process.env.SYSTEM_INFORMATION_INTERVAL),\n\t\tignoresocketio: process.env.IGNORE_SOCKETIO === void 0 ? true : process.env.IGNORE_SOCKETIO === \"true\" ? true : false,\n\t\thttpsserverkeypath: process.env.HTTPS_SERVER_KEY_PATH === void 0 ? \"/var/lib/sts/stsglobalresources/keys/server.key\" : process.env.HTTPS_SERVER_KEY_PATH,\n\t\thttpsservercertpath: process.env.HTTPS_SERVER_CERT_PATH === void 0 ? \"/var/lib/sts/stsglobalresources/keys/server.cert\" : process.env.HTTPS_SERVER_CERT_PATH,\n\t\ttsjwkskeys: process.env.TS_JWKS_KEYS === void 0 ? 3 : parseInt(process.env.TS_JWKS_KEYS),\n\t\tjwksAuthConfigCache: process.env.JWKS_AUTH_CONFIG_CACHE === void 0 ? true : process.env.JWKS_AUTH_CONFIG_CACHE === \"true\" ? true : false,\n\t\tjwksAuthConfigCacheMaxEntries: process.env.JWKS_AUTH_CONFIG_CACHE_MAX_ENTRIES === void 0 ? 5 : parseInt(process.env.JWKS_AUTH_CONFIG_CACHE_MAX_ENTRIES),\n\t\tjwksAuthConfigCacheMaxAge: process.env.JWKS_AUTH_CONFIG_CACHE_MAX_AGE === void 0 ? 6e5 : parseInt(process.env.JWKS_AUTH_CONFIG_CACHE_MAX_AGE),\n\t\tjwksAuthConfigRateLimit: process.env.JWKS_AUTH_CONFIG_RATE_LIMIT === void 0 ? true : process.env.JWKS_AUTH_CONFIG_RATE_LIMIT === \"true\" ? true : false,\n\t\tjwksAuthConfigRateLimitRequestsPerMinute: 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\t\tjwksAuthConfigTimeout: process.env.JWKS_AUTH_CONFIG_TIMEOUT === void 0 ? 3e4 : parseInt(process.env.JWKS_AUTH_CONFIG_TIMEOUT),\n\t\tinfluxDB_APIToken: process.env.INFLUXDB_API_TOKEN === void 0 ? \"password\" : process.env.INFLUXDB_API_TOKEN,\n\t\tinfluxDB_APITokenFile: process.env.INFLUXDB_API_TOKEN_FILE,\n\t\tinfluxDB_Url: process.env.INFLUXDB_URL === void 0 ? \"http://localhost:8086\" : process.env.INFLUXDB_URL,\n\t\tinfluxDB_Org: process.env.INFLUXDB_ORG === void 0 ? \"my-org\" : process.env.INFLUXDB_ORG,\n\t\tinfluxDB_Bucket: process.env.INFLUXDB_BUCKET === void 0 ? \"TestBucket01\" : process.env.INFLUXDB_BUCKET,\n\t\tinfluxDB_keepAlive: process.env.INFLUXDB_KEEP_ALIVE === void 0 ? true : process.env.INFLUXDB_KEEP_ALIVE === \"true\" ? true : false,\n\t\tinfluxDB_maxSockets: process.env.INFLUXDB_MAX_SOCKETS === void 0 ? 10 : parseInt(process.env.INFLUXDB_MAX_SOCKETS),\n\t\tinfluxDB_maxTotalSockets: process.env.INFLUXDB_MAX_TOTAL_SOCKETS === void 0 ? 20 : parseInt(process.env.INFLUXDB_MAX_TOTAL_SOCKETS),\n\t\tinfluxDB_maxFreeSockets: process.env.INFLUXDB_MAX_FREE_SOCKETS === void 0 ? 256 : parseInt(process.env.INFLUXDB_MAX_FREE_SOCKETS),\n\t\tinfluxDB_timeout: process.env.INFLUXDB_TIMEOUT === void 0 ? 1e4 : parseInt(process.env.INFLUXDB_TIMEOUT),\n\t\tinfluxDB_rejectUnauthorized: process.env.INFLUXDB_REJECT_UNAUTHORIZED === void 0 ? true : process.env.INFLUXDB_REJECT_UNAUTHORIZED === \"true\" ? true : false,\n\t\tinfluxDB_writeDataPointFlushTimeout: process.env.INFLUXDB_WRITE_DATA_POINT_FLUSH_TIMEOUT === void 0 ? 1e3 : parseInt(process.env.INFLUXDB_WRITE_DATA_POINT_FLUSH_TIMEOUT),\n\t\tkafka_clientId: process.env.KAFKA_CLIENT_ID === void 0 ? \"myclient\" : process.env.KAFKA_CLIENT_ID,\n\t\tkafka_brokers: process.env.KAFKA_BROKERS === void 0 ? \"localhost:9092\" : process.env.KAFKA_BROKERS,\n\t\tkafka_admin_timeout: process.env.KAFKA_ADMIN_TIMEOUT === void 0 ? 5e3 : parseInt(process.env.KAFKA_ADMIN_TIMEOUT),\n\t\tkafka_connection_timeout: process.env.KAFKA_CONNECTION_TIMEOUT === void 0 ? 5e3 : parseInt(process.env.KAFKA_CONNECTION_TIMEOUT),\n\t\tkafka_request_timeout: process.env.KAFKA_REQUEST_TIMEOUT === void 0 ? 5e3 : parseInt(process.env.KAFKA_REQUEST_TIMEOUT),\n\t\tkafka_log_level: process.env.KAFKA_LOG_LEVEL === void 0 ? \"nothing\" : process.env.KAFKA_LOG_LEVEL,\n\t\tkafka_keep_alive: process.env.KAFKA_KEEP_ALIVE === void 0 ? 3e4 : parseInt(process.env.KAFKA_KEEP_ALIVE),\n\t\tkafka_use_ssl: process.env.KAFKA_USE_SSL === void 0 ? false : process.env.KAFKA_USE_SSL === \"true\" ? true : false,\n\t\tkafka_ssl_rejectUnauthorized: process.env.KAFKA_SSL_REJECT_UNAUTHORIZED === void 0 ? true : process.env.KAFKA_SSL_REJECT_UNAUTHORIZED === \"true\" ? true : false,\n\t\tkafka_ssl_cafile: process.env.KAFKA_SSL_CAFILE === void 0 ? \"/my/custom/ca.crt\" : process.env.KAFKA_SSL_CAFILE,\n\t\tkafka_ssl_keyfile: process.env.KAFKA_SSL_KEYFILE === void 0 ? \"/my/custom/client-key.pem\" : process.env.KAFKA_SSL_KEYFILE,\n\t\tkafka_ssl_certfile: process.env.KAFKA_SSL_CERTFILE === void 0 ? \"/my/custom/client-cert.pem\" : process.env.KAFKA_SSL_CERTFILE,\n\t\tkafka_consume_from_beginning: process.env.KAFKA_CONSUME_FROM_BEGINNING === void 0 ? true : process.env.KAFKA_CONSUME_FROM_BEGINNING === \"true\" ? true : false,\n\t\tobservabilityPublishMode: process.env.OBSERVABILITY_PUBLISH_MODE === void 0 ? \"PROXY\" : process.env.OBSERVABILITY_PUBLISH_MODE,\n\t\tstsUiTermObservabilityConsumptionMode: process.env.STSUITERM_OBSERVABILITY_CONSUMPTION_MODE === void 0 ? \"PROXY\" : process.env.STSUITERM_OBSERVABILITY_CONSUMPTION_MODE\n\t};\n\tconst ReadFile = (passwordFile) => {\n\t\ttry {\n\t\t\taccessSync(passwordFile, constants.R_OK);\n\t\t\tconst data = readFileSync(passwordFile, \"utf8\");\n\t\t\tif (logger) logger.debug(import_source.default.green(`Successfully loaded password file: [${passwordFile}]`));\n\t\t\treturn data;\n\t\t} catch (err) {\n\t\t\tif (logger) logger.debug(import_source.default.red(`Problem loading password file: [${passwordFile}], Error: [${err}]`));\n\t\t\treturn \"\";\n\t\t}\n\t};\n\t[\n\t\t{\n\t\t\tfileprop: \"dbpasswordfile\",\n\t\t\tprop: \"dbpassword\"\n\t\t},\n\t\t{\n\t\t\tfileprop: \"tsjwksstorepathfile\",\n\t\t\tprop: \"tsjwksstorepath\"\n\t\t},\n\t\t{\n\t\t\tfileprop: \"influxDB_APITokenFile\",\n\t\t\tprop: \"influxDB_APIToken\"\n\t\t}\n\t].forEach((v) => {\n\t\tif (defconfig[v.fileprop] !== void 0) defconfig[v.prop] = ReadFile(defconfig[v.fileprop]);\n\t});\n\tfor (const [key, val] of Object.entries(defconfig)) envOptions[key] = val;\n}\nfunction $SetupOptions(envOptions) {\n\tSetupConfig(envOptions);\n\tconst options = envOptions;\n\tif (options.dbhost) {\n\t\tconst hosts = options.dbhost.split(\",\");\n\t\tenvOptions.connectionString = hosts.map((host) => {\n\t\t\treturn `postgresql://${options.dbuser}:${options.dbpassword}@${host}/${options.database}`;\n\t\t}).join(\",\");\n\t\tenvOptions.defaultDatabaseConnectionString = hosts.map((host) => {\n\t\t\treturn `postgresql://${options.dbuser}:${options.dbpassword}@${host}/postgres`;\n\t\t}).join(\",\");\n\t}\n}\nfunction $ResetOptionsEx() {\n\tfor (const prop of Object.getOwnPropertyNames(envOptions)) delete envOptions[prop];\n\treturn envOptions;\n}\nfunction $ResetOptions() {\n\t$ResetOptionsEx();\n\t$SetupOptions(envOptions);\n\treturn envOptions;\n}\nvar goptions = new Proxy(envOptions, { get(target, prop, receiver) {\n\tif (Object.keys(target).length === 0) $SetupOptions(target);\n\treturn Reflect.get(target, prop, receiver);\n} });\n//#endregion\nexport { $ResetOptions, $ResetOptionsEx, goptions };\n\n//# sourceMappingURL=index.mjs.map","module.exports = false;\n\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 isNode from 'detect-node'\n\nimport axios, { AxiosError, AxiosResponse } from 'axios';\n\nimport { ISTSLogger, Sleep, IAgentManager, STSAxiosConfig, JSONObject } from '@nsshunt/stsutils'\n\nimport chalk from 'chalk'\n\nimport { StatusCodes } from 'http-status-codes';\n\nexport interface IAxiosClientTelemetryEvents {\n AuthenticationErrorInc: () => void;\n RetryInc: () => void;\n}\n\nexport interface IAxiosClientOptions {\n logger: ISTSLogger\n testingMode: boolean\n GetAccessToken: () => Promise<string | null>\n ResetAccessToken: () => void\n clientTelemetryEvents?: IAxiosClientTelemetryEvents\n agentManager?: IAgentManager\n}\n\ndeclare interface IMethodMetadata {\n id: string\n retries: number\n testFailIndexBefore: number\n url: string\n httpVerb: string, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resource: any\n filters: string[] | null\n searchParams: JSONObject | null\n errorCb: (error: Error) => void\n}\n\ndeclare interface IInvokeAPIReturnData {\n response: AxiosResponse | null\n retry: boolean\n}\n\nexport class AxiosClient {\n #options: IAxiosClientOptions;\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 #accessToken: string | null = null;\n #noRetries: boolean = false;\n\n constructor(options: IAxiosClientOptions) {\n this.#options = options;\n }\n\n get options(): IAxiosClientOptions {\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 #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, resource, filters } = metaData;\n\n if (this.#options.testingMode) {\n if (this.#TestMode(metaData, errorCb)) {\n return null;\n }\n }\n\n let accessToken: string | null = null;\n if (this.#accessToken) {\n accessToken = this.#accessToken;\n this.#accessToken = null;\n } else {\n accessToken = await this.#options.GetAccessToken();\n }\n \n let requestConfig = new STSAxiosConfig(url, httpVerb)\n .withDefaultHeaders()\n .withAuthHeaders(accessToken as string, this.#DUMMY_USER);\n\n if (!(httpVerb.localeCompare('get') === 0 || httpVerb.localeCompare('head') === 0)) {\n requestConfig.withData(filters ? filters : resource ? resource : undefined)\n }\n\n if (isNode && this.#options.agentManager) {\n requestConfig.withAgentManager(this.#options.agentManager)\n }\n\n return await axios(requestConfig.config);\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 WithAccessToken = (accessToken: string): AxiosClient => {\n this.#accessToken = accessToken;\n return this;\n }\n\n WithNoRetries = (): AxiosClient => {\n this.#noRetries = true;\n return this;\n }\n\n InvokeResourceAPI = async (url: string, httpVerb: string, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resource: any,\n filters: string[] | null, searchParams: JSONObject | null, errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n\n const id = globalThis.crypto.randomUUID();\n this.#invokeMethods[id] = {\n id,\n retries: 0,\n testFailIndexBefore: 1,\n url,\n httpVerb,\n resource,\n filters,\n searchParams,\n errorCb\n }\n\n let returnError: Error | null = null;\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 if (this.#noRetries === false) {\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.#options.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.#options.agentManager.ResetAgent();\n }\n performRetry = true;\n } else {\n returnError = error;\n }\n } else {\n returnError = error;\n this.#noRetries = false;\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 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 if (returnError) {\n errorCb(returnError);\n }\n return retVal.response;\n }\n } else {\n if (returnError) {\n errorCb(returnError);\n }\n return null;\n }\n }\n}\n","/* eslint @typescript-eslint/no-explicit-any: 0 */ // --> OFF\nimport { AxiosResponse } from 'axios';\n\nimport { goptions } from '@nsshunt/stsconfig'\n\nimport { AxiosClient, IAxiosClientOptions } from './axiosClient.js'\n\nimport { IDBResource, IDBEntity } from '@nsshunt/stsutils'\n\nexport interface ISTSRest01ClientOptions extends IAxiosClientOptions {\n endpoint: string\n}\n\nexport interface IResource {\n resname: string\n}\n\nexport interface IResourceEntity extends IResource {\n entname: string\n}\n\n \nexport class STSRest01Client<RT extends IResource, ET extends IResourceEntity> {\n #axiosClient: AxiosClient;\n #options: ISTSRest01ClientOptions;\n\n constructor(options: ISTSRest01ClientOptions) {\n this.#options = options;\n \n this.#axiosClient = new AxiosClient({\n logger: options.logger,\n testingMode: options.testingMode,\n GetAccessToken: options.GetAccessToken,\n ResetAccessToken: options.ResetAccessToken,\n agentManager: options.agentManager,\n clientTelemetryEvents: options.clientTelemetryEvents,\n })\n }\n\n HandleError = (error: Error): number => {\n return this.#axiosClient.HandleError(error);\n }\n\n WithNoRetries = (): STSRest01Client<RT, ET> => {\n this.#axiosClient.WithNoRetries()\n return this;\n }\n\n WithAccessToken = (accessToken: string): STSRest01Client<RT, ET> => {\n this.#axiosClient.WithAccessToken(accessToken);\n return this;\n }\n\n // --- [ Resource ] -------------------------------------------------------------------------------------------------------------------\n\n // --- [ POST.Resource ] -------------------------------------------------------------------------------------------------------------------\n\n PostResourceAR = async (resource: RT, errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n const url = `${this.#options.endpoint}${goptions.rest01apiroot}/resources`;\n return await this.#axiosClient.InvokeResourceAPI(url, 'post', resource, null, null, errorCb);\n }\n\n PostResourceDBR = async (resource: RT, errorCb: (error: Error) => void): Promise<IDBResource<RT> | null> => {\n return (await this.PostResourceAR(resource, errorCb))?.data.detail as IDBResource<RT> | null ?? null;\n }\n\n PostResource = async (resource: RT, errorCb: (error: Error) => void): Promise<RT | null> => {\n return (await this.PostResourceDBR(resource, errorCb))?.resdesc as RT | null ?? null;\n }\n\n // --- [ PUT.Resources ] ------------------------------------------------------------------------------------------------------------------\n\n PutResourcesAR = async (resources: RT[], errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n const url = `${this.#options.endpoint}${goptions.rest01apiroot}/resources`;\n return await this.#axiosClient.InvokeResourceAPI(url, 'put', resources, null, null, errorCb);\n }\n\n PutResourcesDBR = async (resources: RT[], errorCb: (error: Error) => void): Promise<IDBResource<RT>[] | null> => {\n return (await this.PutResourcesAR(resources, errorCb))?.data.map((r: any) => r.detail) as IDBResource<RT>[] | null ?? null;\n }\n\n PutResources = async (resources: RT[], errorCb: (error: Error) => void): Promise<RT[] | null> => {\n return (await this.PutResourcesDBR(resources, errorCb))?.map(r => r.resdesc) ?? null;\n }\n\n // --- [ PUT.Resource ] -------------------------------------------------------------------------------------------------------------------\n\n PutResourceAR = async (resource: RT, errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n const url = `${this.#options.endpoint}${goptions.rest01apiroot}/resources/${resource.resname}`;\n return this.#axiosClient.InvokeResourceAPI(url, 'put', resource, null, null, errorCb);\n }\n\n PutResourceDBR = async (resource: RT, errorCb: (error: Error) => void): Promise<IDBResource<RT> | null> => {\n return (await this.PutResourceAR(resource, errorCb))?.data.detail as IDBResource<RT> | null ?? null;\n }\n\n PutResource = async (resource: RT, errorCb: (error: Error) => void): Promise<RT | null> => {\n return (await this.PutResourceDBR(resource, errorCb))?.resdesc as RT | null ?? null;\n }\n\n // --- [ PATCH.Resources ] ------------------------------------------------------------------------------------------------------------------\n\n PatchResourcesAR = async (resources: RT[], errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n const url = `${this.#options.endpoint}${goptions.rest01apiroot}/resources`;\n return await this.#axiosClient.InvokeResourceAPI(url, 'patch', resources, null, null, errorCb);\n }\n\n PatchResourcesDBR = async (resources: RT[], errorCb: (error: Error) => void): Promise<IDBResource<RT>[] | null> => {\n return (await this.PatchResourcesAR(resources, errorCb))?.data.map((r: any) => r.detail) as IDBResource<RT>[] | null ?? null;\n }\n\n PatchResources = async (resources: RT[], errorCb: (error: Error) => void): Promise<RT[] | null> => {\n return (await this.PatchResourcesDBR(resources, errorCb))?.map(r => r.resdesc) ?? null;\n }\n\n // --- [ PATCH.Resource ] -------------------------------------------------------------------------------------------------------------------\n\n PatchResourceAR = async (resource: RT, errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n const url = `${this.#options.endpoint}${goptions.rest01apiroot}/resources/${resource.resname}`;\n return this.#axiosClient.InvokeResourceAPI(url, 'patch', resource, null, null, errorCb);\n }\n\n PatchResourceDBR = async (resource: RT, errorCb: (error: Error) => void): Promise<IDBResource<RT> | null> => {\n return (await this.PatchResourceAR(resource, errorCb))?.data.detail as IDBResource<RT> | null ?? null;\n }\n\n PatchResource = async (resource: RT, errorCb: (error: Error) => void): Promise<RT | null> => {\n return (await this.PatchResourceDBR(resource, errorCb))?.resdesc as RT | null ?? null;\n }\n\n // --- [ DELETE.Resources ] -------------------------------------------------------------------------------------------------------------------\n \n DeleteResourcesAR = async (resources: RT[], errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n const url = `${this.#options.endpoint}${goptions.rest01apiroot}/resources`;\n return await this.#axiosClient.InvokeResourceAPI(url, 'delete', resources, null, null, errorCb);\n }\n\n DeleteResourcesDBR = async (resources: RT[], errorCb: (error: Error) => void): Promise<IDBResource<RT>[] | null> => {\n return (await this.DeleteResourcesAR(resources, errorCb))?.data.map((r: any) => r.detail) as IDBResource<RT>[] | null ?? null;\n }\n\n DeleteResources = async (resources: RT[], errorCb: (error: Error) => void): Promise<RT[] | null> => {\n return (await this.DeleteResourcesDBR(resources, errorCb))?.map(r => r.resdesc) ?? null;\n }\n\n // --- [ DELETE.Resource ] -------------------------------------------------------------------------------------------------------------------\n\n DeleteResourceAR = async (resource: RT, errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n const url = `${this.#options.endpoint}${goptions.rest01apiroot}/resources/${resource.resname}`;\n return this.#axiosClient.InvokeResourceAPI(url, 'delete', resource, null, null, errorCb);\n }\n\n DeleteResourceDBR = async (resource: RT, errorCb: (error: Error) => void): Promise<IDBResource<RT> | null> => {\n return (await this.DeleteResourceAR(resource, errorCb))?.data.detail as IDBResource<RT> | null ?? null;\n }\n\n DeleteResource = async (resource: RT, errorCb: (error: Error) => void): Promise<RT | null> => {\n return (await this.DeleteResourceDBR(resource, errorCb))?.resdesc as RT | null ?? null;\n }\n\n // --- [ GET.Resource ] -------------------------------------------------------------------------------------------------------------------\n\n GetResourceAR = async (resource: Partial<RT>, filters: string, errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n let url = `${this.#options.endpoint}${goptions.rest01apiroot}/resources/${resource.resname}`;\n if (filters && filters.localeCompare('') !== 0) {\n url = `${url}?${filters}`\n }\n return this.#axiosClient.InvokeResourceAPI(url, 'get', null, null, null, errorCb);\n }\n\n GetResourceDBR = async (resource: Partial<RT>, filters: string, errorCb: (error: Error) => void): Promise<IDBResource<RT> | null> => {\n return (await this.GetResourceAR(resource, filters, errorCb))?.data.detail as IDBResource<RT> | null ?? null;\n }\n\n GetResource = async (resource: Partial<RT>, filters: string, errorCb: (error: Error) => void): Promise<RT | null> => {\n return (await this.GetResourceDBR(resource, filters, errorCb))?.resdesc as RT | null ?? null;\n }\n\n // --- [ GET.Resources ] -------------------------------------------------------------------------------------------------------------------\n\n GetResourcesAR = async (filters: string, errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n let url = `${this.#options.endpoint}${goptions.rest01apiroot}/resources`;\n if (filters && filters.localeCompare('') !== 0) {\n url = `${url}?${filters}`\n }\n return this.#axiosClient.InvokeResourceAPI(url, 'get', null, null, null, errorCb);\n }\n\n GetResourcesDBR = async (filters: string, errorCb: (error: Error) => void): Promise<IDBResource<RT>[] | null> => {\n return (await this.GetResourcesAR(filters, errorCb))?.data.detail as IDBResource<RT>[] | null ?? null\n }\n\n GetResources = async (filters: string, errorCb: (error: Error) => void): Promise<RT[] | null> => {\n return (await this.GetResourcesDBR(filters, errorCb))?.map(r => r.resdesc) ?? null;\n }\n\n // --- [ Entity ] -------------------------------------------------------------------------------------------------------------------\n\n #checkResName = (resourceEntities: ET[]): string => {\n let resName = '';\n resourceEntities.forEach(re => {\n resName = (resName.localeCompare('') === 0) ? re.resname : resName;\n if (resName.localeCompare(re.resname) !== 0) {\n throw new Error(`Invalid batch provided. resname not all equal. Previous checked value: [${resName}, current value: [${re.resname}]`);\n } else {\n resName = re.resname;\n }\n });\n return resName;\n }\n\n // --- [ POST.Entitiy ] -------------------------------------------------------------------------------------------------------------------\n\n PostEntityAR = async (resourceEntity: ET, errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n const url = `${this.#options.endpoint}${goptions.rest01apiroot}/resources/${resourceEntity.resname}/entities`;\n return this.#axiosClient.InvokeResourceAPI(url, 'post', resourceEntity, null, null, errorCb);\n }\n\n PostEntityDBR = async (resourceEntity: ET, errorCb: (error: Error) => void): Promise<IDBEntity<ET> | null> => {\n return (await this.PostEntityAR(resourceEntity, errorCb))?.data.detail as IDBEntity<ET> | null ?? null;\n }\n\n PostEntity = async (resourceEntity: ET, errorCb: (error: Error) => void): Promise<ET | null> => {\n return (await this.PostEntityDBR(resourceEntity, errorCb))?.entvalue as ET | null ?? null;\n }\n\n // --- [ PUT.Entities ] -----------------------------------------------------------------------------------------------------------------\n\n PutEntitiesAR = async (resourceEntities: ET[], errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n const url = `${this.#options.endpoint}${goptions.rest01apiroot}/resources/${this.#checkResName(resourceEntities)}/entities`;\n return this.#axiosClient.InvokeResourceAPI(url, 'put', resourceEntities, null, null, errorCb);\n }\n\n PutEntitiesDBR = async (resourceEntities: ET[], errorCb: (error: Error) => void): Promise<IDBEntity<ET>[] | null> => {\n return (await this.PutEntitiesAR(resourceEntities, errorCb))?.data.map((r: any) => r.detail) as IDBEntity<ET>[] | null ?? null;\n }\n\n PutEntities = async (resourceEntities: ET[], errorCb: (error: Error) => void): Promise<ET[] | null> => {\n return (await this.PutEntitiesDBR(resourceEntities, errorCb))?.map(r => r.entvalue) ?? null;\n }\n\n // --- [ PUT.Entity ] -------------------------------------------------------------------------------------------------------------------\n\n PutEntityAR = async (entity: ET, errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n const url = `${this.#options.endpoint}${goptions.rest01apiroot}/resources/${entity.resname}/entities/${entity.entname}`;\n return this.#axiosClient.InvokeResourceAPI(url, 'put', entity, null, null, errorCb);\n }\n\n PutEntityDBR = async (resourceEntity: ET, errorCb: (error: Error) => void): Promise<IDBEntity<ET> | null> => {\n return (await this.PutEntityAR(resourceEntity, errorCb))?.data.detail as IDBEntity<ET> | null ?? null;\n }\n\n PutEntity = async (resourceEntity: ET, errorCb: (error: Error) => void): Promise<ET | null> => {\n return (await this.PutEntityDBR(resourceEntity, errorCb))?.entvalue as ET | null ?? null;\n }\n \n // --- [ PATCH.Entities ] -----------------------------------------------------------------------------------------------------------------\n\n PatchEntitiesAR = async (resourceEntities: ET[], errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n const url = `${this.#options.endpoint}${goptions.rest01apiroot}/resources/${this.#checkResName(resourceEntities)}/entities`;\n return this.#axiosClient.InvokeResourceAPI(url, 'patch', resourceEntities, null, null, errorCb);\n }\n\n PatchEntitiesDBR = async (resourceEntities: ET[], errorCb: (error: Error) => void): Promise<IDBEntity<ET>[] | null> => {\n return (await this.PatchEntitiesAR(resourceEntities, errorCb))?.data.map((r: any) => r.detail) as IDBEntity<ET>[] | null ?? null;\n }\n\n PatchEntities = async (resourceEntities: ET[], errorCb: (error: Error) => void): Promise<ET[] | null> => {\n return (await this.PatchEntitiesDBR(resourceEntities, errorCb))?.map(r => r.entvalue) ?? null;\n }\n\n // --- [ PATCH.Entity ] -------------------------------------------------------------------------------------------------------------------\n\n PatchEntityAR = async (resourceEntity: ET, errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n const url = `${this.#options.endpoint}${goptions.rest01apiroot}/resources/${resourceEntity.resname}/entities/${resourceEntity.entname}`;\n return this.#axiosClient.InvokeResourceAPI(url, 'patch', resourceEntity, null, null, errorCb);\n }\n\n PatchEntityDBR = async (resourceEntity: ET, errorCb: (error: Error) => void): Promise<IDBEntity<ET> | null> => {\n return (await this.PatchEntityAR(resourceEntity, errorCb))?.data.detail as IDBEntity<ET> | null ?? null;\n }\n\n PatchEntity = async (resourceEntity: ET, errorCb: (error: Error) => void): Promise<ET | null> => {\n return (await this.PatchEntityDBR(resourceEntity, errorCb))?.entvalue as ET | null ?? null;\n }\n\n // --- [ DELETE.Entity ] -------------------------------------------------------------------------------------------------------------------\n\n DeleteEntitiesAR = async (resourceEntities: ET[], errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n const url = `${this.#options.endpoint}${goptions.rest01apiroot}/resources/${this.#checkResName(resourceEntities)}/entities`;\n return this.#axiosClient.InvokeResourceAPI(url, 'delete', resourceEntities, null, null, errorCb);\n }\n\n DeleteEntitiesDBR = async (resourceEntities: ET[], errorCb: (error: Error) => void): Promise<IDBEntity<ET>[] | null> => {\n return (await this.DeleteEntitiesAR(resourceEntities, errorCb))?.data.map((r: any) => r.detail) as IDBEntity<ET>[] | null ?? null;\n }\n\n DeleteEntities = async (resourceEntities: ET[], errorCb: (error: Error) => void): Promise<ET[] | null> => {\n return (await this.DeleteEntitiesDBR(resourceEntities, errorCb))?.map(r => r.entvalue) ?? null;\n }\n\n // --- [ DELETE.Entity ] -------------------------------------------------------------------------------------------------------------------\n\n DeleteEntityAR = async (resourceEntity: ET, errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n const url = `${this.#options.endpoint}${goptions.rest01apiroot}/resources/${resourceEntity.resname}/entities/${resourceEntity.entname}`;\n return this.#axiosClient.InvokeResourceAPI(url, 'delete', resourceEntity, null, null, errorCb);\n }\n\n DeleteEntityDBR = async (resourceEntity: ET, errorCb: (error: Error) => void): Promise<IDBEntity<ET> | null> => {\n return (await this.DeleteEntityAR(resourceEntity, errorCb))?.data.detail as IDBEntity<ET> | null ?? null;\n }\n\n DeleteEntity = async (resourceEntity: ET, errorCb: (error: Error) => void): Promise<ET | null> => {\n return (await this.DeleteEntityDBR(resourceEntity, errorCb))?.entvalue as ET | null ?? null;\n }\n\n // --- [ GET.Entity ] -------------------------------------------------------------------------------------------------------------------\n\n GetEntityAR = async (resourceEntity: Partial<ET>, filters: string, errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n let url = `${this.#options.endpoint}${goptions.rest01apiroot}/resources/${resourceEntity.resname}/entities/${resourceEntity.entname}`;\n if (filters && filters.localeCompare('') !== 0) {\n url = `${url}?${filters}`\n }\n return this.#axiosClient.InvokeResourceAPI(url, 'get', null, null, null, errorCb);\n }\n\n GetEntityDBR = async (resourceEntity: Partial<ET>, filters: string, errorCb: (error: Error) => void): Promise<IDBEntity<ET> | null> => {\n return (await this.GetEntityAR(resourceEntity, filters, errorCb))?.data.detail as IDBEntity<ET> | null ?? null;\n }\n\n GetEntity = async (resourceEntity: Partial<ET>, filters: string, errorCb: (error: Error) => void): Promise<ET | null> => {\n return (await this.GetEntityDBR(resourceEntity, filters, errorCb))?.entvalue as ET | null ?? null;\n }\n\n // --- [ GET.Entities ] -------------------------------------------------------------------------------------------------------------------\n\n GetEntitiesAR = async (resource: Partial<RT>, filters: string, errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n let url = `${this.#options.endpoint}${goptions.rest01apiroot}/resources/${resource.resname}/entities`;\n if (filters && filters.localeCompare('') !== 0) {\n url = `${url}?${filters}`\n }\n return this.#axiosClient.InvokeResourceAPI(url, 'get', null, null, null, errorCb);\n }\n\n GetEntitiesDBR = async (resource: Partial<RT>, filters: string, errorCb: (error: Error) => void): Promise<IDBEntity<ET>[] | null> => {\n return (await this.GetEntitiesAR(resource, filters, errorCb))?.data.detail as IDBEntity<ET>[] | null ?? null\n }\n\n GetEntities = async (resource: Partial<RT>, filters: string, errorCb: (error: Error) => void): Promise<ET[] | null> => {\n return (await this.GetEntitiesDBR(resource, filters, errorCb))?.map(r => r.entvalue) ?? null;\n }\n}\n"],"x_google_ignoreList":[1,2,3,4,5,6,7,8,9,10,11,12,13],"mappings":"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Y;GACX;GACA;GACA;GACA;EACD,WAAW;GACV;GACA;GACA;GACA;EACD,QAAQ;GACP;GACA;GACA;GACA;EACD,YAAY;GACX;GACA;GACA;GACA;EACD,YAAY;GACX;GACA;GACA;GACA;EACD,iBAAiB;GAChB;GACA;GACA;GACA;EACD,YAAY;GACX;GACA;GACA;GACA;EACD,aAAa;GACZ;GACA;GACA;GACA;EACD,YAAY;GACX;GACA;GACA;GACA;EACD,aAAa;GACZ;GACA;GACA;GACA;EACD,eAAe;GACd;GACA;GACA;GACA;EACD,kBAAkB;GACjB;GACA;GACA;GACA;EACD,cAAc;GACb;GACA;GACA;GACA;EACD,cAAc;GACb;GACA;GACA;GACA;EACD,WAAW;GACV;GACA;GACA;GACA;EACD,cAAc;GACb;GACA;GACA;GACA;EACD,gBAAgB;GACf;GACA;GACA;GACA;EACD,iBAAiB;GAChB;GACA;GACA;GACA;EACD,iBAAiB;GAChB;GACA;GACA;GACA;EACD,iBAAiB;GAChB;GACA;GACA;GACA;EACD,iBAAiB;GAChB;GACA;GACA;GACA;EACD,cAAc;GACb;GACA;GACA;GACA;EACD,YAAY;GACX;GACA;GACA;GACA;EACD,eAAe;GACd;GACA;GACA;GACA;EACD,WAAW;GACV;GACA;GACA;GACA;EACD,WAAW;GACV;GACA;GACA;GACA;EACD,cAAc;GACb;GACA;GACA;GACA;EACD,aAAa;GACZ;GACA;GACA;GACA;EACD,eAAe;GACd;GACA;GACA;GACA;EACD,eAAe;GACd;GACA;GACA;GACA;EACD,WAAW;GACV;GACA;GACA;GACA;EACD,aAAa;GACZ;GACA;GACA;GACA;EACD,cAAc;GACb;GACA;GACA;GACA;EACD,QAAQ;GACP;GACA;GACA;GACA;EACD,aAAa;GACZ;GACA;GACA;GACA;EACD,QAAQ;GACP;GACA;GACA;GACA;EACD,SAAS;GACR;GACA;GACA;GACA;EACD,eAAe;GACd;GACA;GACA;GACA;EACD,QAAQ;GACP;GACA;GACA;GACA;EACD,YAAY;GACX;GACA;GACA;GACA;EACD,WAAW;GACV;GACA;GACA;GACA;EACD,aAAa;GACZ;GACA;GACA;GACA;EACD,UAAU;GACT;GACA;GACA;GACA;EACD,SAAS;GACR;GACA;GACA;GACA;EACD,SAAS;GACR;GACA;GACA;GACA;EACD,YAAY;GACX;GACA;GACA;GACA;EACD,iBAAiB;GAChB;GACA;GACA;GACA;EACD,aAAa;GACZ;GACA;GACA;GACA;EACD,gBAAgB;GACf;GACA;GACA;GACA;EACD,aAAa;GACZ;GACA;GACA;GACA;EACD,cAAc;GACb;GACA;GACA;GACA;EACD,aAAa;GACZ;GACA;GACA;GACA;EACD,wBAAwB;GACvB;GACA;GACA;GACA;EACD,aAAa;GACZ;GACA;GACA;GACA;EACD,cAAc;GACb;GACA;GACA;GACA;EACD,aAAa;GACZ;GACA;GACA;GACA;EACD,aAAa;GACZ;GACA;GACA;GACA;EACD,eAAe;GACd;GACA;GACA;GACA;EACD,iBAAiB;GAChB;GACA;GACA;GACA;EACD,gBAAgB;GACf;GACA;GACA;GACA;EACD,kBAAkB;GACjB;GACA;GACA;GACA;EACD,kBAAkB;GACjB;GACA;GACA;GACA;EACD,kBAAkB;GACjB;GACA;GACA;GACA;EACD,eAAe;GACd;GACA;GACA;GACA;EACD,QAAQ;GACP;GACA;GACA;GACA;EACD,aAAa;GACZ;GACA;GACA;GACA;EACD,SAAS;GACR;GACA;GACA;GACA;EACD,WAAW;GACV;GACA;GACA;GACA;EACD,UAAU;GACT;GACA;GACA;GACA;EACD,oBAAoB;GACnB;GACA;GACA;GACA;EACD,cAAc;GACb;GACA;GACA;GACA;EACD,gBAAgB;GACf;GACA;GACA;GACA;EACD,gBAAgB;GACf;GACA;GACA;GACA;EACD,kBAAkB;GACjB;GACA;GACA;GACA;EACD,mBAAmB;GAClB;GACA;GACA;GACA;EACD,qBAAqB;GACpB;GACA;GACA;GACA;EACD,mBAAmB;GAClB;GACA;GACA;GACA;EACD,mBAAmB;GAClB;GACA;GACA;GACA;EACD,gBAAgB;GACf;GACA;GACA;GACA;EACD,aAAa;GACZ;GACA;GACA;GACA;EACD,aAAa;GACZ;GACA;GACA;GACA;EACD,YAAY;GACX;GACA;GACA;GACA;EACD,eAAe;GACd;GACA;GACA;GACA;EACD,QAAQ;GACP;GACA;GACA;GACA;EACD,WAAW;GACV;GACA;GACA;GACA;EACD,SAAS;GACR;GACA;GACA;GACA;EACD,aAAa;GACZ;GACA;GACA;GACA;EACD,UAAU;GACT;GACA;GACA;GACA;EACD,aAAa;GACZ;GACA;GACA;GACA;EACD,UAAU;GACT;GACA;GACA;GACA;EACD,iBAAiB;GAChB;GACA;GACA;GACA;EACD,aAAa;GACZ;GACA;GACA;GACA;EACD,iBAAiB;GAChB;GACA;GACA;GACA;EACD,iBAAiB;GAChB;GACA;GACA;GACA;EACD,cAAc;GACb;GACA;GACA;GACA;EACD,aAAa;GACZ;GACA;GACA;GACA;EACD,QAAQ;GACP;GACA;GACA;GACA;EACD,QAAQ;GACP;GACA;GACA;GACA;EACD,QAAQ;GACP;GACA;GACA;GACA;EACD,cAAc;GACb;GACA;GACA;GACA;EACD,UAAU;GACT;GACA;GACA;GACA;EACD,iBAAiB;GAChB;GACA;GACA;GACA;EACD,OAAO;GACN;GACA;GACA;GACA;EACD,aAAa;GACZ;GACA;GACA;GACA;EACD,aAAa;GACZ;GACA;GACA;GACA;EACD,eAAe;GACd;GACA;GACA;GACA;EACD,UAAU;GACT;GACA;GACA;GACA;EACD,cAAc;GACb;GACA;GACA;GACA;EACD,YAAY;GACX;GACA;GACA;GACA;EACD,YAAY;GACX;GACA;GACA;GACA;EACD,UAAU;GACT;GACA;GACA;GACA;EACD,UAAU;GACT;GACA;GACA;GACA;EACD,WAAW;GACV;GACA;GACA;GACA;EACD,aAAa;GACZ;GACA;GACA;GACA;EACD,aAAa;GACZ;GACA;GACA;GACA;EACD,aAAa;GACZ;GACA;GACA;GACA;EACD,QAAQ;GACP;GACA;GACA;GACA;EACD,eAAe;GACd;GACA;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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["ANSI_BACKGROUND_OFFSET","wrapAnsi16","wrapAnsi256","wrapAnsi16m","styles$1","foregroundColorNames","backgroundColorNames","assembleStyles","ansiStyles","level","colorSupport","supportsColor","stringReplaceAll","stringEncaseCRLFWithFirstIndex","stdoutColor","stderrColor","GENERATOR","STYLER","IS_EMPTY","levelMapping","styles","applyOptions","chalkFactory","createChalk","createBuilder","createStyler","getModelAnsi","proto","applyStyle","chalk","styles","#options","#LogDebugMessage","#LogErrorMessage","#TestMode","#accessToken","#DUMMY_USER","#noRetries","#invokeMethods","#__InvokeResourceAPI","#NoRetryStatusCodes","#maxRetries","#sleepDuration","#options","#axiosClient","#checkResName"],"sources":["../__vite-browser-external","../node_modules/dotenv/lib/main.js","../node_modules/@nsshunt/stsconfig/dist/index.mjs","../node_modules/detect-node/browser.js","../node_modules/chalk/source/vendor/ansi-styles/index.js","../node_modules/chalk/source/vendor/supports-color/browser.js","../node_modules/chalk/source/utilities.js","../node_modules/chalk/source/index.js","../node_modules/http-status-codes/build/es/status-codes.js","../src/axiosClient.ts","../src/stsrest01Client.ts"],"sourcesContent":["module.exports = {}","const fs = require('fs')\nconst path = require('path')\nconst os = require('os')\nconst crypto = require('crypto')\n\n// Array of tips to display randomly\nconst TIPS = [\n '◈ encrypted .env [www.dotenvx.com]',\n '◈ secrets for agents [www.dotenvx.com]',\n '⌁ auth for agents [www.vestauth.com]',\n '⌘ custom filepath { path: \\'/custom/path/.env\\' }',\n '⌘ enable debugging { debug: true }',\n '⌘ override existing { override: true }',\n '⌘ suppress logs { quiet: true }',\n '⌘ multiple files { path: [\\'.env.local\\', \\'.env\\'] }'\n]\n\n// Get a random tip from the tips array\nfunction _getRandomTip () {\n return TIPS[Math.floor(Math.random() * TIPS.length)]\n}\n\nfunction parseBoolean (value) {\n if (typeof value === 'string') {\n return !['false', '0', 'no', 'off', ''].includes(value.toLowerCase())\n }\n return Boolean(value)\n}\n\nfunction supportsAnsi () {\n return process.stdout.isTTY // && process.env.TERM !== 'dumb'\n}\n\nfunction dim (text) {\n return supportsAnsi() ? `\\x1b[2m${text}\\x1b[0m` : text\n}\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 options = options || {}\n\n const vaultPath = _vaultPath(options)\n options.path = vaultPath // parse .env.vault\n const result = DotenvModule.configDotenv(options)\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 _warn (message) {\n console.error(`⚠ ${message}`)\n}\n\nfunction _debug (message) {\n console.log(`┆ ${message}`)\n}\n\nfunction _log (message) {\n console.log(`◇ ${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 const debug = parseBoolean(process.env.DOTENV_CONFIG_DEBUG || (options && options.debug))\n const quiet = parseBoolean(process.env.DOTENV_CONFIG_QUIET || (options && options.quiet))\n\n if (debug || !quiet) {\n _log('loading env from encrypted .env.vault')\n }\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 let processEnv = process.env\n if (options && options.processEnv != null) {\n processEnv = options.processEnv\n }\n let debug = parseBoolean(processEnv.DOTENV_CONFIG_DEBUG || (options && options.debug))\n let quiet = parseBoolean(processEnv.DOTENV_CONFIG_QUIET || (options && options.quiet))\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 const populated = DotenvModule.populate(processEnv, parsedAll, options)\n\n // handle user settings DOTENV_CONFIG_ options inside .env file(s)\n debug = parseBoolean(processEnv.DOTENV_CONFIG_DEBUG || debug)\n quiet = parseBoolean(processEnv.DOTENV_CONFIG_QUIET || quiet)\n\n if (debug || !quiet) {\n const keysCount = Object.keys(populated).length\n const shortPaths = []\n for (const filePath of optionPaths) {\n try {\n const relative = path.relative(process.cwd(), filePath)\n shortPaths.push(relative)\n } catch (e) {\n if (debug) {\n _debug(`failed to load ${filePath} ${e.message}`)\n }\n lastError = e\n }\n }\n\n _log(`injecting env (${keysCount}) from ${shortPaths.join(',')} ${dim(`// tip: ${_getRandomTip()}`)}`)\n }\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}`)\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 const populated = {}\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 populated[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 populated[key] = parsed[key]\n }\n }\n\n return populated\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","import { accessSync, constants, readFileSync } from \"node:fs\";\nimport dotenv from \"dotenv\";\n//#region node_modules/chalk/source/vendor/ansi-styles/index.js\nvar ANSI_BACKGROUND_OFFSET = 10;\nvar wrapAnsi16 = (offset = 0) => (code) => `\\u001B[${code + offset}m`;\nvar wrapAnsi256 = (offset = 0) => (code) => `\\u001B[${38 + offset};5;${code}m`;\nvar wrapAnsi16m = (offset = 0) => (red, green, blue) => `\\u001B[${38 + offset};2;${red};${green};${blue}m`;\nvar styles$1 = {\n\tmodifier: {\n\t\treset: [0, 0],\n\t\tbold: [1, 22],\n\t\tdim: [2, 22],\n\t\titalic: [3, 23],\n\t\tunderline: [4, 24],\n\t\toverline: [53, 55],\n\t\tinverse: [7, 27],\n\t\thidden: [8, 28],\n\t\tstrikethrough: [9, 29]\n\t},\n\tcolor: {\n\t\tblack: [30, 39],\n\t\tred: [31, 39],\n\t\tgreen: [32, 39],\n\t\tyellow: [33, 39],\n\t\tblue: [34, 39],\n\t\tmagenta: [35, 39],\n\t\tcyan: [36, 39],\n\t\twhite: [37, 39],\n\t\tblackBright: [90, 39],\n\t\tgray: [90, 39],\n\t\tgrey: [90, 39],\n\t\tredBright: [91, 39],\n\t\tgreenBright: [92, 39],\n\t\tyellowBright: [93, 39],\n\t\tblueBright: [94, 39],\n\t\tmagentaBright: [95, 39],\n\t\tcyanBright: [96, 39],\n\t\twhiteBright: [97, 39]\n\t},\n\tbgColor: {\n\t\tbgBlack: [40, 49],\n\t\tbgRed: [41, 49],\n\t\tbgGreen: [42, 49],\n\t\tbgYellow: [43, 49],\n\t\tbgBlue: [44, 49],\n\t\tbgMagenta: [45, 49],\n\t\tbgCyan: [46, 49],\n\t\tbgWhite: [47, 49],\n\t\tbgBlackBright: [100, 49],\n\t\tbgGray: [100, 49],\n\t\tbgGrey: [100, 49],\n\t\tbgRedBright: [101, 49],\n\t\tbgGreenBright: [102, 49],\n\t\tbgYellowBright: [103, 49],\n\t\tbgBlueBright: [104, 49],\n\t\tbgMagentaBright: [105, 49],\n\t\tbgCyanBright: [106, 49],\n\t\tbgWhiteBright: [107, 49]\n\t}\n};\nObject.keys(styles$1.modifier);\nvar foregroundColorNames = Object.keys(styles$1.color);\nvar backgroundColorNames = Object.keys(styles$1.bgColor);\n[...foregroundColorNames, ...backgroundColorNames];\nfunction assembleStyles() {\n\tconst codes = /* @__PURE__ */ new Map();\n\tfor (const [groupName, group] of Object.entries(styles$1)) {\n\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\tstyles$1[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`\n\t\t\t};\n\t\t\tgroup[styleName] = styles$1[styleName];\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\t\tObject.defineProperty(styles$1, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false\n\t\t});\n\t}\n\tObject.defineProperty(styles$1, \"codes\", {\n\t\tvalue: codes,\n\t\tenumerable: false\n\t});\n\tstyles$1.color.close = \"\\x1B[39m\";\n\tstyles$1.bgColor.close = \"\\x1B[49m\";\n\tstyles$1.color.ansi = wrapAnsi16();\n\tstyles$1.color.ansi256 = wrapAnsi256();\n\tstyles$1.color.ansi16m = wrapAnsi16m();\n\tstyles$1.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);\n\tstyles$1.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);\n\tstyles$1.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);\n\tObject.defineProperties(styles$1, {\n\t\trgbToAnsi256: {\n\t\t\tvalue(red, green, blue) {\n\t\t\t\tif (red === green && green === blue) {\n\t\t\t\t\tif (red < 8) return 16;\n\t\t\t\t\tif (red > 248) return 231;\n\t\t\t\t\treturn Math.round((red - 8) / 247 * 24) + 232;\n\t\t\t\t}\n\t\t\t\treturn 16 + 36 * Math.round(red / 255 * 5) + 6 * Math.round(green / 255 * 5) + Math.round(blue / 255 * 5);\n\t\t\t},\n\t\t\tenumerable: false\n\t\t},\n\t\thexToRgb: {\n\t\t\tvalue(hex) {\n\t\t\t\tconst matches = /[a-f\\d]{6}|[a-f\\d]{3}/i.exec(hex.toString(16));\n\t\t\t\tif (!matches) return [\n\t\t\t\t\t0,\n\t\t\t\t\t0,\n\t\t\t\t\t0\n\t\t\t\t];\n\t\t\t\tlet [colorString] = matches;\n\t\t\t\tif (colorString.length === 3) colorString = [...colorString].map((character) => character + character).join(\"\");\n\t\t\t\tconst integer = Number.parseInt(colorString, 16);\n\t\t\t\treturn [\n\t\t\t\t\tinteger >> 16 & 255,\n\t\t\t\t\tinteger >> 8 & 255,\n\t\t\t\t\tinteger & 255\n\t\t\t\t];\n\t\t\t},\n\t\t\tenumerable: false\n\t\t},\n\t\thexToAnsi256: {\n\t\t\tvalue: (hex) => styles$1.rgbToAnsi256(...styles$1.hexToRgb(hex)),\n\t\t\tenumerable: false\n\t\t},\n\t\tansi256ToAnsi: {\n\t\t\tvalue(code) {\n\t\t\t\tif (code < 8) return 30 + code;\n\t\t\t\tif (code < 16) return 90 + (code - 8);\n\t\t\t\tlet red;\n\t\t\t\tlet green;\n\t\t\t\tlet blue;\n\t\t\t\tif (code >= 232) {\n\t\t\t\t\tred = ((code - 232) * 10 + 8) / 255;\n\t\t\t\t\tgreen = red;\n\t\t\t\t\tblue = red;\n\t\t\t\t} else {\n\t\t\t\t\tcode -= 16;\n\t\t\t\t\tconst remainder = code % 36;\n\t\t\t\t\tred = Math.floor(code / 36) / 5;\n\t\t\t\t\tgreen = Math.floor(remainder / 6) / 5;\n\t\t\t\t\tblue = remainder % 6 / 5;\n\t\t\t\t}\n\t\t\t\tconst value = Math.max(red, green, blue) * 2;\n\t\t\t\tif (value === 0) return 30;\n\t\t\t\tlet result = 30 + (Math.round(blue) << 2 | Math.round(green) << 1 | Math.round(red));\n\t\t\t\tif (value === 2) result += 60;\n\t\t\t\treturn result;\n\t\t\t},\n\t\t\tenumerable: false\n\t\t},\n\t\trgbToAnsi: {\n\t\t\tvalue: (red, green, blue) => styles$1.ansi256ToAnsi(styles$1.rgbToAnsi256(red, green, blue)),\n\t\t\tenumerable: false\n\t\t},\n\t\thexToAnsi: {\n\t\t\tvalue: (hex) => styles$1.ansi256ToAnsi(styles$1.hexToAnsi256(hex)),\n\t\t\tenumerable: false\n\t\t}\n\t});\n\treturn styles$1;\n}\nvar ansiStyles = assembleStyles();\n//#endregion\n//#region node_modules/chalk/source/vendor/supports-color/browser.js\nvar level = (() => {\n\tif (!(\"navigator\" in globalThis)) return 0;\n\tif (globalThis.navigator.userAgentData) {\n\t\tconst brand = navigator.userAgentData.brands.find(({ brand }) => brand === \"Chromium\");\n\t\tif (brand && brand.version > 93) return 3;\n\t}\n\tif (/\\b(Chrome|Chromium)\\//.test(globalThis.navigator.userAgent)) return 1;\n\treturn 0;\n})();\nvar colorSupport = level !== 0 && {\n\tlevel,\n\thasBasic: true,\n\thas256: level >= 2,\n\thas16m: level >= 3\n};\nvar supportsColor = {\n\tstdout: colorSupport,\n\tstderr: colorSupport\n};\n//#endregion\n//#region node_modules/chalk/source/utilities.js\nfunction stringReplaceAll(string, substring, replacer) {\n\tlet index = string.indexOf(substring);\n\tif (index === -1) return string;\n\tconst substringLength = substring.length;\n\tlet endIndex = 0;\n\tlet returnValue = \"\";\n\tdo {\n\t\treturnValue += string.slice(endIndex, index) + substring + replacer;\n\t\tendIndex = index + substringLength;\n\t\tindex = string.indexOf(substring, endIndex);\n\t} while (index !== -1);\n\treturnValue += string.slice(endIndex);\n\treturn returnValue;\n}\nfunction 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.slice(endIndex, gotCR ? index - 1 : index) + prefix + (gotCR ? \"\\r\\n\" : \"\\n\") + postfix;\n\t\tendIndex = index + 1;\n\t\tindex = string.indexOf(\"\\n\", endIndex);\n\t} while (index !== -1);\n\treturnValue += string.slice(endIndex);\n\treturn returnValue;\n}\n//#endregion\n//#region node_modules/chalk/source/index.js\nvar { stdout: stdoutColor, stderr: stderrColor } = supportsColor;\nvar GENERATOR = Symbol(\"GENERATOR\");\nvar STYLER = Symbol(\"STYLER\");\nvar IS_EMPTY = Symbol(\"IS_EMPTY\");\nvar levelMapping = [\n\t\"ansi\",\n\t\"ansi\",\n\t\"ansi256\",\n\t\"ansi16m\"\n];\nvar styles = Object.create(null);\nvar applyOptions = (object, options = {}) => {\n\tif (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) throw new Error(\"The `level` option should be an integer from 0 to 3\");\n\tconst colorLevel = stdoutColor ? stdoutColor.level : 0;\n\tobject.level = options.level === void 0 ? colorLevel : options.level;\n};\nvar chalkFactory = (options) => {\n\tconst chalk = (...strings) => strings.join(\" \");\n\tapplyOptions(chalk, options);\n\tObject.setPrototypeOf(chalk, createChalk.prototype);\n\treturn chalk;\n};\nfunction createChalk(options) {\n\treturn chalkFactory(options);\n}\nObject.setPrototypeOf(createChalk.prototype, Function.prototype);\nfor (const [styleName, style] of Object.entries(ansiStyles)) styles[styleName] = { get() {\n\tconst builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]);\n\tObject.defineProperty(this, styleName, { value: builder });\n\treturn builder;\n} };\nstyles.visible = { get() {\n\tconst builder = createBuilder(this, this[STYLER], true);\n\tObject.defineProperty(this, \"visible\", { value: builder });\n\treturn builder;\n} };\nvar getModelAnsi = (model, level, type, ...arguments_) => {\n\tif (model === \"rgb\") {\n\t\tif (level === \"ansi16m\") return ansiStyles[type].ansi16m(...arguments_);\n\t\tif (level === \"ansi256\") return ansiStyles[type].ansi256(ansiStyles.rgbToAnsi256(...arguments_));\n\t\treturn ansiStyles[type].ansi(ansiStyles.rgbToAnsi(...arguments_));\n\t}\n\tif (model === \"hex\") return getModelAnsi(\"rgb\", level, type, ...ansiStyles.hexToRgb(...arguments_));\n\treturn ansiStyles[type][model](...arguments_);\n};\nfor (const model of [\n\t\"rgb\",\n\t\"hex\",\n\t\"ansi256\"\n]) {\n\tstyles[model] = { get() {\n\t\tconst { level } = this;\n\t\treturn function(...arguments_) {\n\t\t\tconst styler = createStyler(getModelAnsi(model, levelMapping[level], \"color\", ...arguments_), ansiStyles.color.close, this[STYLER]);\n\t\t\treturn createBuilder(this, styler, this[IS_EMPTY]);\n\t\t};\n\t} };\n\tconst bgModel = \"bg\" + model[0].toUpperCase() + model.slice(1);\n\tstyles[bgModel] = { get() {\n\t\tconst { level } = this;\n\t\treturn function(...arguments_) {\n\t\t\tconst styler = createStyler(getModelAnsi(model, levelMapping[level], \"bgColor\", ...arguments_), ansiStyles.bgColor.close, this[STYLER]);\n\t\t\treturn createBuilder(this, styler, this[IS_EMPTY]);\n\t\t};\n\t} };\n}\nvar 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});\nvar createStyler = (open, close, parent) => {\n\tlet openAll;\n\tlet closeAll;\n\tif (parent === void 0) {\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\treturn {\n\t\topen,\n\t\tclose,\n\t\topenAll,\n\t\tcloseAll,\n\t\tparent\n\t};\n};\nvar createBuilder = (self, _styler, _isEmpty) => {\n\tconst builder = (...arguments_) => applyStyle(builder, arguments_.length === 1 ? \"\" + arguments_[0] : arguments_.join(\" \"));\n\tObject.setPrototypeOf(builder, proto);\n\tbuilder[GENERATOR] = self;\n\tbuilder[STYLER] = _styler;\n\tbuilder[IS_EMPTY] = _isEmpty;\n\treturn builder;\n};\nvar applyStyle = (self, string) => {\n\tif (self.level <= 0 || !string) return self[IS_EMPTY] ? \"\" : string;\n\tlet styler = self[STYLER];\n\tif (styler === void 0) return string;\n\tconst { openAll, closeAll } = styler;\n\tif (string.includes(\"\\x1B\")) while (styler !== void 0) {\n\t\tstring = stringReplaceAll(string, styler.close, styler.open);\n\t\tstyler = styler.parent;\n\t}\n\tconst lfIndex = string.indexOf(\"\\n\");\n\tif (lfIndex !== -1) string = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);\n\treturn openAll + string + closeAll;\n};\nObject.defineProperties(createChalk.prototype, styles);\nvar chalk = createChalk();\ncreateChalk({ level: stderrColor ? stderrColor.level : 0 });\n//#endregion\n//#region src/stsconfig.ts\nvar envOptions = {};\nfunction SetupConfig(envOptions, logger) {\n\tconst envfile = process.env.STSENVFILE === void 0 ? \"/.env\" : process.env.STSENVFILE;\n\tdotenv.config({ path: envfile });\n\tconst defconfig = {\n\t\tisProduction: process.env.NODE_ENV === void 0 ? false : process.env.NODE_ENV === \"production\" ? true : false,\n\t\tisTest: process.env.NODE_ENV === void 0 ? false : process.env.NODE_ENV === \"test\" ? true : false,\n\t\tdbuser: process.env.DB_USER === void 0 ? \"postgres\" : process.env.DB_USER,\n\t\tdbpassword: process.env.DB_PASSWORD === void 0 ? \"postgres\" : process.env.DB_PASSWORD,\n\t\tdbpasswordfile: process.env.DB_PASSWORD_FILE,\n\t\tdbhost: process.env.DB_HOST === void 0 ? \"localhost:5432\" : process.env.DB_HOST,\n\t\tdatabase: process.env.DB_DATABASE === void 0 ? \"stsrestmsdb01\" : process.env.DB_DATABASE,\n\t\tdatabaseUrl: process.env.DATABASE_URL,\n\t\tconnectionString: \"\",\n\t\tdefaultDatabaseConnectionString: \"\",\n\t\tSTSServerType: process.env.STS_SERVER_TYPE === void 0 ? \"EXPRESS_TLS\" : process.env.STS_SERVER_TYPE,\n\t\tlogToFile: process.env.LOG_TO_FILE === void 0 ? false : process.env.LOG_TO_FILE === \"true\" ? true : false,\n\t\tlogFilePath: process.env.LOG_FILE_PATH === void 0 ? \"/var/lib/sts\" : process.env.LOG_FILE_PATH,\n\t\tlogFileFormat: process.env.LOG_FILE_FORMAT === void 0 ? \"csv\" : process.env.LOG_FILE_FORMAT,\n\t\tpoolSize: process.env.POOL_SIZE === void 0 ? 500 : parseInt(process.env.POOL_SIZE),\n\t\tuseCPUs: process.env.MAX_CPU === void 0 ? -1 : parseFloat(process.env.MAX_CPU),\n\t\trespawnOnFail: process.env.RESPAWN === void 0 ? true : process.env.RESPAWN === \"true\" ? true : false,\n\t\tdefaultDatabaseEntries: process.env.DEFAULT_DB_ENTRIES === void 0 ? 1e4 : parseInt(process.env.DEFAULT_DB_ENTRIES),\n\t\tuseRedisDatabaseCache: process.env.USE_REDIS_DATABASE_CACHE === void 0 ? false : process.env.USE_REDIS_DATABASE_CACHE === \"true\" ? true : false,\n\t\tuseSocketIoRedisAdaptor: process.env.USE_SOCKET_IO_REDIS_ADAPTOR === void 0 ? false : process.env.USE_SOCKET_IO_REDIS_ADAPTOR === \"true\" ? true : false,\n\t\tsocketIoRedisAdaptorUrl: process.env.SOCKET_IO_REDIS_ADAPTOR_URL === void 0 ? \"redis://localhost:6379\" : process.env.SOCKET_IO_REDIS_ADAPTOR_URL,\n\t\tuseRedisInstrumentationTransport: process.env.USE_REDIS_INSTRUMENTATION_TRANSPORT === void 0 ? false : process.env.USE_REDIS_INSTRUMENTATION_TRANSPORT === \"true\" ? true : false,\n\t\tredisInstrumentationTransportUrl: process.env.REDIS_INSTRUMENTATION_TRANSPORT_URL === void 0 ? \"redis://localhost:6379\" : process.env.REDIS_INSTRUMENTATION_TRANSPORT_URL,\n\t\tredisDatabaseCacheEndFlush: process.env.REDIS_DATABASE_CACHE_END_FLUSH === void 0 ? false : process.env.REDIS_DATABASE_CACHE_END_FLUSH === \"true\" ? true : false,\n\t\tredisDatabaseCacheUrl: process.env.REDIS_DATABASE_CACHE_URL === void 0 ? \"redis://localhost:6379\" : process.env.REDIS_DATABASE_CACHE_URL,\n\t\tdefaultDatabaseMinExtraDataSize: process.env.DEFAULT_DATABASE_MIN_EXTRA_DATA_SIZE === void 0 ? 0 : parseInt(process.env.DEFAULT_DATABASE_MIN_EXTRA_DATA_SIZE),\n\t\tdefaultDatabaseMaxExtraDataSize: process.env.DEFAULT_DATABASE_MAX_EXTRA_DATA_SIZE === void 0 ? 2e3 : parseInt(process.env.DEFAULT_DATABASE_MAX_EXTRA_DATA_SIZE),\n\t\trest01endpoint: process.env.REST01_ENDPOINT === void 0 ? \"https://localhost\" : process.env.REST01_ENDPOINT,\n\t\trest01hostport: process.env.REST01_HOST_PORT === void 0 ? \"3003\" : process.env.REST01_HOST_PORT,\n\t\trest01port: process.env.REST01_PORT === void 0 ? \"3003\" : process.env.REST01_PORT,\n\t\trest01apiroot: process.env.REST01_APIROOT === void 0 ? \"/stsrest01/v1\" : process.env.REST01_APIROOT,\n\t\trest01prometheussupport: process.env.REST01_PROM_SUPPORT === void 0 ? true : process.env.REST01_PROM_SUPPORT === \"true\" ? true : false,\n\t\trest01prometheusclusterport: process.env.REST01_PROM_CLUSTER_PORT === void 0 ? \"3013\" : process.env.REST01_PROM_CLUSTER_PORT,\n\t\trest01servicename: process.env.REST01_SERVICE_NAME === void 0 ? \"STSRest01\" : process.env.REST01_SERVICE_NAME,\n\t\trest01serviceversion: process.env.REST01_SERVICE_VERSION === void 0 ? \"1.0.0\" : process.env.REST01_SERVICE_VERSION,\n\t\tstsfhirendpoint: process.env.STSFHIR_ENDPOINT === void 0 ? \"https://localhost\" : process.env.STSFHIR_ENDPOINT,\n\t\tstsfhirhostport: process.env.STSFHIR_HOST_PORT === void 0 ? \"3005\" : process.env.STSFHIR_HOST_PORT,\n\t\tstsfhirport: process.env.STSFHIR_PORT === void 0 ? \"3005\" : process.env.STSFHIR_PORT,\n\t\tstsfhirapiroot: process.env.STSFHIR_APIROOT === void 0 ? \"/stsfhir/r5\" : process.env.STSFHIR_APIROOT,\n\t\tstsfhirprometheussupport: process.env.STSFHIR_PROM_SUPPORT === void 0 ? true : process.env.STSFHIR_PROM_SUPPORT === \"true\" ? true : false,\n\t\tstsfhirprometheusclusterport: process.env.STSFHIR_PROM_CLUSTER_PORT === void 0 ? \"3015\" : process.env.STSFHIR_PROM_CLUSTER_PORT,\n\t\tstsfhirservicename: process.env.STSFHIR_SERVICE_NAME === void 0 ? \"STSFHIR\" : process.env.STSFHIR_SERVICE_NAME,\n\t\tstsfhirserviceversion: process.env.STSFHIR_SERVICE_VERSION === void 0 ? \"1.0.0\" : process.env.STSFHIR_SERVICE_VERSION,\n\t\tstsfhirUseOperationalOutcomeForDelete: process.env.STSFHIR_USE_OPERATIONAL_OUTCOME_FOR_DELETE === void 0 ? true : process.env.STSFHIR_USE_OPERATIONAL_OUTCOME_FOR_DELETE === \"true\" ? true : false,\n\t\tststccendpoint: process.env.STSTCC_ENDPOINT === void 0 ? \"https://localhost\" : process.env.STSTCC_ENDPOINT,\n\t\tststcchostport: process.env.STSTCC_HOST_PORT === void 0 ? \"3024\" : process.env.STSTCC_HOST_PORT,\n\t\tststccport: process.env.STSTCC_PORT === void 0 ? \"3024\" : process.env.STSTCC_PORT,\n\t\tststccapiroot: process.env.STSTCC_APIROOT === void 0 ? \"/ststcc/v1\" : process.env.STSTCC_APIROOT,\n\t\tststccprometheussupport: process.env.STSTCC_PROM_SUPPORT === void 0 ? true : process.env.STSTCC_PROM_SUPPORT === \"true\" ? true : false,\n\t\tststccprometheusclusterport: process.env.STSTCC_PROM_CLUSTER_PORT === void 0 ? \"3025\" : process.env.STSTCC_PROM_CLUSTER_PORT,\n\t\tststccservicename: process.env.STSTCC_SERVICE_NAME === void 0 ? \"STSTCC\" : process.env.STSTCC_SERVICE_NAME,\n\t\tststccserviceversion: process.env.STSTCC_SERVICE_VERSION === void 0 ? \"1.0.0\" : process.env.STSTCC_SERVICE_VERSION,\n\t\timendpoint: process.env.IM_ENDPOINT === void 0 ? \"https://localhost\" : process.env.IM_ENDPOINT,\n\t\timhostport: process.env.IM_HOST_PORT === void 0 ? \"3001\" : process.env.IM_HOST_PORT,\n\t\timport: process.env.IM_PORT === void 0 ? \"3001\" : process.env.IM_PORT,\n\t\timapiroot: process.env.IM_APIROOT === void 0 ? \"/stsinstrumentmanager/v1\" : process.env.IM_APIROOT,\n\t\timprometheussupport: process.env.IM_PROM_SUPPORT === void 0 ? true : process.env.IM_PROM_SUPPORT === \"true\" ? true : false,\n\t\timprometheusclusterport: process.env.IM_PROM_CLUSTER_PORT === void 0 ? \"3011\" : process.env.IM_PROM_CLUSTER_PORT,\n\t\timservicename: process.env.IM_SERVICE_NAME === void 0 ? \"STSInstrumentManager\" : process.env.IM_SERVICE_NAME,\n\t\timserviceversion: process.env.IM_SERVICE_VERSION === void 0 ? \"1.0.0\" : process.env.IM_SERVICE_VERSION,\n\t\timRedisKeepAliveProcessorUrl: process.env.IM_REDIS_KEEP_ALIVE_PROCESSOR_URL === void 0 ? \"redis://localhost:6379\" : process.env.IM_REDIS_KEEP_ALIVE_PROCESSOR_URL,\n\t\timRedisMessageProcessorUrl: process.env.IM_REDIS_MESSAGE_PROCESSOR_URL === void 0 ? \"redis://localhost:6379\" : process.env.IM_REDIS_MESSAGE_PROCESSOR_URL,\n\t\tasendpoint: process.env.AS_ENDPOINT === void 0 ? \"https://localhost\" : process.env.AS_ENDPOINT,\n\t\tashostport: process.env.AS_HOST_PORT === void 0 ? \"3002\" : process.env.AS_HOST_PORT,\n\t\tasport: process.env.AS_PORT === void 0 ? \"3002\" : process.env.AS_PORT,\n\t\tasapiroot: process.env.AS_API_ROOT === void 0 ? \"/stsauth/v1.0\" : process.env.AS_API_ROOT,\n\t\tasoauthapiroot: process.env.AS_OAUTH_API_ROOT === void 0 ? \"/oauth2/v2.0\" : process.env.AS_OAUTH_API_ROOT,\n\t\tasadminapiroot: process.env.AS_ADMIN_API_ROOT === void 0 ? \"/admin/v1.0\" : process.env.AS_ADMIN_API_ROOT,\n\t\tasprometheussupport: process.env.AS_PROM_SUPPORT === void 0 ? true : process.env.AS_PROM_SUPPORT === \"true\" ? true : false,\n\t\tasprometheusclusterport: process.env.AS_PROM_CLUSTER_PORT === void 0 ? \"3012\" : process.env.AS_PROM_CLUSTER_PORT,\n\t\tasservicename: process.env.AS_SERVICE_NAME === void 0 ? \"STSAuth\" : process.env.AS_SERVICE_NAME,\n\t\tasserviceversion: process.env.AS_SERVICE_VERSION === void 0 ? \"1.0.0\" : process.env.AS_SERVICE_VERSION,\n\t\tasjwksjsonpath: process.env.AS_JWKS_JSON_PATH === void 0 ? \"/.well-known/jwks.json\" : process.env.AS_JWKS_JSON_PATH,\n\t\tasjwkskeyrotationtime: process.env.AS_JWKS_KEY_ROTATION_TIME === void 0 ? 86400 : parseInt(process.env.AS_JWKS_KEY_ROTATION_TIME),\n\t\tasjwkskeypurgetimeoffset: process.env.AS_JWKS_KEY_PURGE_TIME_OFFSET === void 0 ? 300 : parseInt(process.env.AS_JWKS_KEY_PURGE_TIME_OFFSET),\n\t\tasjwkskeycount: process.env.AS_JWKS_KEY_COUNT === void 0 ? 4 : parseInt(process.env.AS_JWKS_KEY_COUNT),\n\t\tasaccesstokenexpire: process.env.AS_ACCESS_TOKEN_EXPIRE === void 0 ? 43200 : parseInt(process.env.AS_ACCESS_TOKEN_EXPIRE),\n\t\tauthorizeendpoint: process.env.AUTHORIZE_ENDPOINT === void 0 ? \"https://localhost\" : process.env.AUTHORIZE_ENDPOINT,\n\t\tauthorizeport: process.env.AUTHORIZE_PORT === void 0 ? \"3010\" : process.env.AUTHORIZE_PORT,\n\t\tauthorizeapiroot: process.env.AUTHORIZE_API_ROOT === void 0 ? \"/stsa\" : process.env.AUTHORIZE_API_ROOT,\n\t\tauthorizeapi: process.env.AUTHORIZE_API === void 0 ? \"/authorize\" : process.env.AUTHORIZE_API,\n\t\tbrokerendpoint: process.env.BROKER_ENDPOINT === void 0 ? \"https://localhost\" : process.env.BROKER_ENDPOINT,\n\t\tbrokerhostport: process.env.BROKER_HOST_PORT === void 0 ? \"3006\" : process.env.BROKER_HOST_PORT,\n\t\tbrokerport: process.env.BROKER_PORT === void 0 ? \"3006\" : process.env.BROKER_PORT,\n\t\tbrokerapiroot: process.env.BROKER_APIROOT === void 0 ? \"/stsbroker/v1.0\" : process.env.BROKER_APIROOT,\n\t\tbrokerprometheussupport: process.env.BROKER_PROM_SUPPORT === void 0 ? true : process.env.BROKER_PROM_SUPPORT === \"true\" ? true : false,\n\t\tbrokerprometheusclusterport: process.env.BROKER_PROM_CLUSTER_PORT === void 0 ? \"3016\" : process.env.BROKER_PROM_CLUSTER_PORT,\n\t\tbrokerservicename: process.env.BROKER_SERVICE_NAME === void 0 ? \"STSBroker\" : process.env.BROKER_SERVICE_NAME,\n\t\tbrokerserviceversion: process.env.BROKER_SERVICE_VERSION === void 0 ? \"1.0.0\" : process.env.BROKER_SERVICE_VERSION,\n\t\ttrnendpoint: process.env.TRN_ENDPOINT === void 0 ? \"https://localhost\" : process.env.TRN_ENDPOINT,\n\t\ttrnhostport: process.env.TRN_HOST_PORT === void 0 ? \"3007\" : process.env.TRN_HOST_PORT,\n\t\ttrnport: process.env.TRN_PORT === void 0 ? \"3007\" : process.env.TRN_PORT,\n\t\ttrnapiroot: process.env.TRN_APIROOT === void 0 ? \"/ststrn/v1.0\" : process.env.TRN_APIROOT,\n\t\ttrnprometheussupport: process.env.TRN_PROM_SUPPORT === void 0 ? true : process.env.TRN_PROM_SUPPORT === \"true\" ? true : false,\n\t\ttrnprometheusclusterport: process.env.TRN_PROM_CLUSTER_PORT === void 0 ? \"3017\" : process.env.TRN_PROM_CLUSTER_PORT,\n\t\ttrnservicename: process.env.TRN_SERVICE_NAME === void 0 ? \"STSTestRunnerNode\" : process.env.TRN_SERVICE_NAME,\n\t\ttrnserviceversion: process.env.TRN_SERVICE_VERSION === void 0 ? \"1.0.0\" : process.env.TRN_SERVICE_VERSION,\n\t\ttrnautostartdelay: process.env.TRN_AUTO_START_DELAY === void 0 ? 0 : parseInt(process.env.TRN_AUTO_START_DELAY),\n\t\ttrnautostartconfig: process.env.TRN_AUTO_START_CONFIG === void 0 ? \"\" : process.env.TRN_AUTO_START_CONFIG,\n\t\ttrnRedisMessageProcessorUrl: process.env.TRN_REDIS_MESSAGE_PROCESSOR_URL === void 0 ? \"redis://localhost:6379\" : process.env.TRN_REDIS_MESSAGE_PROCESSOR_URL,\n\t\tlambdaendpoint: process.env.LAMBDA_ENDPOINT === void 0 ? \"https://localhost\" : process.env.LAMBDA_ENDPOINT,\n\t\tlambdahostport: process.env.LAMBDA_HOST_PORT === void 0 ? \"3009\" : process.env.LAMBDA_HOST_PORT,\n\t\tlambdaport: process.env.LAMBDA_PORT === void 0 ? \"3009\" : process.env.LAMBDA_PORT,\n\t\tlambdaapiroot: process.env.LAMBDA_APIROOT === void 0 ? \"/stslambda/v1.0\" : process.env.LAMBDA_APIROOT,\n\t\tlambdaprometheussupport: process.env.LAMBDA_PROM_SUPPORT === void 0 ? true : process.env.LAMBDA_PROM_SUPPORT === \"true\" ? true : false,\n\t\tlambdaprometheusclusterport: process.env.LAMBDA_PROM_CLUSTER_PORT === void 0 ? \"3019\" : process.env.LAMBDA_PROM_CLUSTER_PORT,\n\t\tlambdaservicename: process.env.LAMBDA_SERVICE_NAME === void 0 ? \"STSLambda\" : process.env.LAMBDA_SERVICE_NAME,\n\t\tlambdaserviceversion: process.env.LAMBDA_SERVICE_VERSION === void 0 ? \"1.0.0\" : process.env.LAMBDA_SERVICE_VERSION,\n\t\tpublishinterval: process.env.PUBLISH_INTERVAL === void 0 ? 1e3 : parseInt(process.env.PUBLISH_INTERVAL),\n\t\tpublishtimeout: process.env.PUBLISH_TIMEOUT === void 0 ? 750 : parseInt(process.env.PUBLISH_TIMEOUT),\n\t\ttransport: process.env.TRANSPORT === void 0 ? \"RESTAPI\" : process.env.TRANSPORT,\n\t\tuseSecureCookies: process.env.USE_SECURE_COOKIES === void 0 ? false : process.env.USE_SECURE_COOKIES === \"true\" ? true : false,\n\t\tkeepAlive: process.env.KEEP_ALIVE === void 0 ? true : process.env.KEEP_ALIVE === \"true\" ? true : false,\n\t\tmaxSockets: process.env.MAX_SOCKETS === void 0 ? 10 : parseInt(process.env.MAX_SOCKETS),\n\t\tmaxTotalSockets: process.env.MAX_TOTAL_SOCKETS === void 0 ? 20 : parseInt(process.env.MAX_TOTAL_SOCKETS),\n\t\tmaxFreeSockets: process.env.MAX_FREE_SOCKETS === void 0 ? 256 : parseInt(process.env.MAX_FREE_SOCKETS),\n\t\ttimeout: process.env.TIMEOUT === void 0 ? 1e4 : parseInt(process.env.TIMEOUT),\n\t\tmaxPayloadSize: process.env.MAX_PAYLOAD_SIZE === void 0 ? \"50mb\" : process.env.MAX_PAYLOAD_SIZE,\n\t\tinstrumentationObservationInterval: process.env.INSTRUMENTATION_OBSERVATION_INTERVAL === void 0 ? 1e3 : parseInt(process.env.INSTRUMENTATION_OBSERVATION_INTERVAL),\n\t\tinstrumentationTimeWindow: process.env.INSTRUMENTATION_TIME_WINDOW === void 0 ? 600 : parseInt(process.env.INSTRUMENTATION_TIME_WINDOW),\n\t\tauthJWTAccessTokenTimeout: process.env.AUTH_JWT_ACCESS_TOKEN_TIMEOUT === void 0 ? 600 : parseInt(process.env.AUTH_JWT_ACCESS_TOKEN_TIMEOUT),\n\t\tauthJWTRefreshTokenTimeout: process.env.AUTH_JWT_REFRESH_TOKEN_TIMEOUT === void 0 ? 3600 * 24 : parseInt(process.env.AUTH_JWT_REFRESH_TOKEN_TIMEOUT),\n\t\tauthCookieTimeout: process.env.AUTH_COOKIE_TIMEOUT === void 0 ? 3600 * 24 : parseInt(process.env.AUTH_COOKIE_TIMEOUT),\n\t\tmasterProcessExitTime: process.env.MASTER_PROCESS_EXIT_TIME === void 0 ? 500 : parseInt(process.env.MASTER_PROCESS_EXIT_TIME),\n\t\tchildProcessExitTime: process.env.CHILD_PROCESS_EXIT_TIME === void 0 ? 500 : parseInt(process.env.CHILD_PROCESS_EXIT_TIME),\n\t\tsystemInformationInterval: process.env.SYSTEM_INFORMATION_INTERVAL === void 0 ? 1e3 : parseInt(process.env.SYSTEM_INFORMATION_INTERVAL),\n\t\tignoresocketio: process.env.IGNORE_SOCKETIO === void 0 ? true : process.env.IGNORE_SOCKETIO === \"true\" ? true : false,\n\t\thttpsserverkeypath: process.env.HTTPS_SERVER_KEY_PATH === void 0 ? \"/var/lib/sts/stsglobalresources/keys/server.key\" : process.env.HTTPS_SERVER_KEY_PATH,\n\t\thttpsservercertpath: process.env.HTTPS_SERVER_CERT_PATH === void 0 ? \"/var/lib/sts/stsglobalresources/keys/server.cert\" : process.env.HTTPS_SERVER_CERT_PATH,\n\t\ttsjwkskeys: process.env.TS_JWKS_KEYS === void 0 ? 3 : parseInt(process.env.TS_JWKS_KEYS),\n\t\tjwksAuthConfigCache: process.env.JWKS_AUTH_CONFIG_CACHE === void 0 ? true : process.env.JWKS_AUTH_CONFIG_CACHE === \"true\" ? true : false,\n\t\tjwksAuthConfigCacheMaxEntries: process.env.JWKS_AUTH_CONFIG_CACHE_MAX_ENTRIES === void 0 ? 5 : parseInt(process.env.JWKS_AUTH_CONFIG_CACHE_MAX_ENTRIES),\n\t\tjwksAuthConfigCacheMaxAge: process.env.JWKS_AUTH_CONFIG_CACHE_MAX_AGE === void 0 ? 6e5 : parseInt(process.env.JWKS_AUTH_CONFIG_CACHE_MAX_AGE),\n\t\tjwksAuthConfigRateLimit: process.env.JWKS_AUTH_CONFIG_RATE_LIMIT === void 0 ? true : process.env.JWKS_AUTH_CONFIG_RATE_LIMIT === \"true\" ? true : false,\n\t\tjwksAuthConfigRateLimitRequestsPerMinute: 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\t\tjwksAuthConfigTimeout: process.env.JWKS_AUTH_CONFIG_TIMEOUT === void 0 ? 3e4 : parseInt(process.env.JWKS_AUTH_CONFIG_TIMEOUT),\n\t\tinfluxDB_APIToken: process.env.INFLUXDB_API_TOKEN === void 0 ? \"password\" : process.env.INFLUXDB_API_TOKEN,\n\t\tinfluxDB_APITokenFile: process.env.INFLUXDB_API_TOKEN_FILE,\n\t\tinfluxDB_Url: process.env.INFLUXDB_URL === void 0 ? \"http://localhost:8086\" : process.env.INFLUXDB_URL,\n\t\tinfluxDB_Org: process.env.INFLUXDB_ORG === void 0 ? \"my-org\" : process.env.INFLUXDB_ORG,\n\t\tinfluxDB_Bucket: process.env.INFLUXDB_BUCKET === void 0 ? \"TestBucket01\" : process.env.INFLUXDB_BUCKET,\n\t\tinfluxDB_keepAlive: process.env.INFLUXDB_KEEP_ALIVE === void 0 ? true : process.env.INFLUXDB_KEEP_ALIVE === \"true\" ? true : false,\n\t\tinfluxDB_maxSockets: process.env.INFLUXDB_MAX_SOCKETS === void 0 ? 10 : parseInt(process.env.INFLUXDB_MAX_SOCKETS),\n\t\tinfluxDB_maxTotalSockets: process.env.INFLUXDB_MAX_TOTAL_SOCKETS === void 0 ? 20 : parseInt(process.env.INFLUXDB_MAX_TOTAL_SOCKETS),\n\t\tinfluxDB_maxFreeSockets: process.env.INFLUXDB_MAX_FREE_SOCKETS === void 0 ? 256 : parseInt(process.env.INFLUXDB_MAX_FREE_SOCKETS),\n\t\tinfluxDB_timeout: process.env.INFLUXDB_TIMEOUT === void 0 ? 1e4 : parseInt(process.env.INFLUXDB_TIMEOUT),\n\t\tinfluxDB_rejectUnauthorized: process.env.INFLUXDB_REJECT_UNAUTHORIZED === void 0 ? true : process.env.INFLUXDB_REJECT_UNAUTHORIZED === \"true\" ? true : false,\n\t\tinfluxDB_writeDataPointFlushTimeout: process.env.INFLUXDB_WRITE_DATA_POINT_FLUSH_TIMEOUT === void 0 ? 1e3 : parseInt(process.env.INFLUXDB_WRITE_DATA_POINT_FLUSH_TIMEOUT),\n\t\tkafka_clientId: process.env.KAFKA_CLIENT_ID === void 0 ? \"myclient\" : process.env.KAFKA_CLIENT_ID,\n\t\tkafka_brokers: process.env.KAFKA_BROKERS === void 0 ? \"localhost:9092\" : process.env.KAFKA_BROKERS,\n\t\tkafka_admin_timeout: process.env.KAFKA_ADMIN_TIMEOUT === void 0 ? 5e3 : parseInt(process.env.KAFKA_ADMIN_TIMEOUT),\n\t\tkafka_connection_timeout: process.env.KAFKA_CONNECTION_TIMEOUT === void 0 ? 5e3 : parseInt(process.env.KAFKA_CONNECTION_TIMEOUT),\n\t\tkafka_request_timeout: process.env.KAFKA_REQUEST_TIMEOUT === void 0 ? 5e3 : parseInt(process.env.KAFKA_REQUEST_TIMEOUT),\n\t\tkafka_log_level: process.env.KAFKA_LOG_LEVEL === void 0 ? \"nothing\" : process.env.KAFKA_LOG_LEVEL,\n\t\tkafka_keep_alive: process.env.KAFKA_KEEP_ALIVE === void 0 ? 3e4 : parseInt(process.env.KAFKA_KEEP_ALIVE),\n\t\tkafka_use_ssl: process.env.KAFKA_USE_SSL === void 0 ? false : process.env.KAFKA_USE_SSL === \"true\" ? true : false,\n\t\tkafka_ssl_rejectUnauthorized: process.env.KAFKA_SSL_REJECT_UNAUTHORIZED === void 0 ? true : process.env.KAFKA_SSL_REJECT_UNAUTHORIZED === \"true\" ? true : false,\n\t\tkafka_ssl_cafile: process.env.KAFKA_SSL_CAFILE === void 0 ? \"/my/custom/ca.crt\" : process.env.KAFKA_SSL_CAFILE,\n\t\tkafka_ssl_keyfile: process.env.KAFKA_SSL_KEYFILE === void 0 ? \"/my/custom/client-key.pem\" : process.env.KAFKA_SSL_KEYFILE,\n\t\tkafka_ssl_certfile: process.env.KAFKA_SSL_CERTFILE === void 0 ? \"/my/custom/client-cert.pem\" : process.env.KAFKA_SSL_CERTFILE,\n\t\tkafka_consume_from_beginning: process.env.KAFKA_CONSUME_FROM_BEGINNING === void 0 ? true : process.env.KAFKA_CONSUME_FROM_BEGINNING === \"true\" ? true : false,\n\t\tobservabilityPublishMode: process.env.OBSERVABILITY_PUBLISH_MODE === void 0 ? \"PROXY\" : process.env.OBSERVABILITY_PUBLISH_MODE,\n\t\tstsUiTermObservabilityConsumptionMode: process.env.STSUITERM_OBSERVABILITY_CONSUMPTION_MODE === void 0 ? \"PROXY\" : process.env.STSUITERM_OBSERVABILITY_CONSUMPTION_MODE\n\t};\n\tconst ReadFile = (passwordFile) => {\n\t\ttry {\n\t\t\taccessSync(passwordFile, constants.R_OK);\n\t\t\tconst data = readFileSync(passwordFile, \"utf8\");\n\t\t\tif (logger) logger.debug(chalk.green(`Successfully loaded password file: [${passwordFile}]`));\n\t\t\treturn data;\n\t\t} catch (err) {\n\t\t\tif (logger) logger.debug(chalk.red(`Problem loading password file: [${passwordFile}], Error: [${err}]`));\n\t\t\treturn \"\";\n\t\t}\n\t};\n\t[\n\t\t{\n\t\t\tfileprop: \"dbpasswordfile\",\n\t\t\tprop: \"dbpassword\"\n\t\t},\n\t\t{\n\t\t\tfileprop: \"tsjwksstorepathfile\",\n\t\t\tprop: \"tsjwksstorepath\"\n\t\t},\n\t\t{\n\t\t\tfileprop: \"influxDB_APITokenFile\",\n\t\t\tprop: \"influxDB_APIToken\"\n\t\t}\n\t].forEach((v) => {\n\t\tif (defconfig[v.fileprop] !== void 0) defconfig[v.prop] = ReadFile(defconfig[v.fileprop]);\n\t});\n\tfor (const [key, val] of Object.entries(defconfig)) envOptions[key] = val;\n}\nfunction $SetupOptions(envOptions) {\n\tSetupConfig(envOptions);\n\tconst options = envOptions;\n\tif (options.dbhost) {\n\t\tconst hosts = options.dbhost.split(\",\");\n\t\tenvOptions.connectionString = hosts.map((host) => {\n\t\t\treturn `postgresql://${options.dbuser}:${options.dbpassword}@${host}/${options.database}`;\n\t\t}).join(\",\");\n\t\tenvOptions.defaultDatabaseConnectionString = hosts.map((host) => {\n\t\t\treturn `postgresql://${options.dbuser}:${options.dbpassword}@${host}/postgres`;\n\t\t}).join(\",\");\n\t}\n}\nfunction $ResetOptionsEx() {\n\tfor (const prop of Object.getOwnPropertyNames(envOptions)) delete envOptions[prop];\n\treturn envOptions;\n}\nfunction $ResetOptions() {\n\t$ResetOptionsEx();\n\t$SetupOptions(envOptions);\n\treturn envOptions;\n}\nvar goptions = new Proxy(envOptions, { get(target, prop, receiver) {\n\tif (Object.keys(target).length === 0) $SetupOptions(target);\n\treturn Reflect.get(target, prop, receiver);\n} });\n//#endregion\nexport { $ResetOptions, $ResetOptionsEx, goptions };\n\n//# sourceMappingURL=index.mjs.map","module.exports = false;\n\n","const ANSI_BACKGROUND_OFFSET = 10;\n\nconst wrapAnsi16 = (offset = 0) => code => `\\u001B[${code + offset}m`;\n\nconst wrapAnsi256 = (offset = 0) => code => `\\u001B[${38 + offset};5;${code}m`;\n\nconst wrapAnsi16m = (offset = 0) => (red, green, blue) => `\\u001B[${38 + offset};2;${red};${green};${blue}m`;\n\nconst styles = {\n\tmodifier: {\n\t\treset: [0, 0],\n\t\t// 21 isn't widely supported and 22 does the same thing\n\t\tbold: [1, 22],\n\t\tdim: [2, 22],\n\t\titalic: [3, 23],\n\t\tunderline: [4, 24],\n\t\toverline: [53, 55],\n\t\tinverse: [7, 27],\n\t\thidden: [8, 28],\n\t\tstrikethrough: [9, 29],\n\t},\n\tcolor: {\n\t\tblack: [30, 39],\n\t\tred: [31, 39],\n\t\tgreen: [32, 39],\n\t\tyellow: [33, 39],\n\t\tblue: [34, 39],\n\t\tmagenta: [35, 39],\n\t\tcyan: [36, 39],\n\t\twhite: [37, 39],\n\n\t\t// Bright color\n\t\tblackBright: [90, 39],\n\t\tgray: [90, 39], // Alias of `blackBright`\n\t\tgrey: [90, 39], // Alias of `blackBright`\n\t\tredBright: [91, 39],\n\t\tgreenBright: [92, 39],\n\t\tyellowBright: [93, 39],\n\t\tblueBright: [94, 39],\n\t\tmagentaBright: [95, 39],\n\t\tcyanBright: [96, 39],\n\t\twhiteBright: [97, 39],\n\t},\n\tbgColor: {\n\t\tbgBlack: [40, 49],\n\t\tbgRed: [41, 49],\n\t\tbgGreen: [42, 49],\n\t\tbgYellow: [43, 49],\n\t\tbgBlue: [44, 49],\n\t\tbgMagenta: [45, 49],\n\t\tbgCyan: [46, 49],\n\t\tbgWhite: [47, 49],\n\n\t\t// Bright color\n\t\tbgBlackBright: [100, 49],\n\t\tbgGray: [100, 49], // Alias of `bgBlackBright`\n\t\tbgGrey: [100, 49], // Alias of `bgBlackBright`\n\t\tbgRedBright: [101, 49],\n\t\tbgGreenBright: [102, 49],\n\t\tbgYellowBright: [103, 49],\n\t\tbgBlueBright: [104, 49],\n\t\tbgMagentaBright: [105, 49],\n\t\tbgCyanBright: [106, 49],\n\t\tbgWhiteBright: [107, 49],\n\t},\n};\n\nexport const modifierNames = Object.keys(styles.modifier);\nexport const foregroundColorNames = Object.keys(styles.color);\nexport const backgroundColorNames = Object.keys(styles.bgColor);\nexport const colorNames = [...foregroundColorNames, ...backgroundColorNames];\n\nfunction assembleStyles() {\n\tconst codes = new Map();\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\tstyles.color.ansi = wrapAnsi16();\n\tstyles.color.ansi256 = wrapAnsi256();\n\tstyles.color.ansi16m = wrapAnsi16m();\n\tstyles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);\n\n\t// From https://github.com/Qix-/color-convert/blob/3f0e0d4e92e235796ccb17f6e85c72094a651f49/conversions.js\n\tObject.defineProperties(styles, {\n\t\trgbToAnsi256: {\n\t\t\tvalue(red, green, blue) {\n\t\t\t\t// We use the extended greyscale palette here, with the exception of\n\t\t\t\t// black and white. normal palette only has 4 greyscale shades.\n\t\t\t\tif (red === green && green === blue) {\n\t\t\t\t\tif (red < 8) {\n\t\t\t\t\t\treturn 16;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (red > 248) {\n\t\t\t\t\t\treturn 231;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Math.round(((red - 8) / 247) * 24) + 232;\n\t\t\t\t}\n\n\t\t\t\treturn 16\n\t\t\t\t\t+ (36 * Math.round(red / 255 * 5))\n\t\t\t\t\t+ (6 * Math.round(green / 255 * 5))\n\t\t\t\t\t+ Math.round(blue / 255 * 5);\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToRgb: {\n\t\t\tvalue(hex) {\n\t\t\t\tconst matches = /[a-f\\d]{6}|[a-f\\d]{3}/i.exec(hex.toString(16));\n\t\t\t\tif (!matches) {\n\t\t\t\t\treturn [0, 0, 0];\n\t\t\t\t}\n\n\t\t\t\tlet [colorString] = matches;\n\n\t\t\t\tif (colorString.length === 3) {\n\t\t\t\t\tcolorString = [...colorString].map(character => character + character).join('');\n\t\t\t\t}\n\n\t\t\t\tconst integer = Number.parseInt(colorString, 16);\n\n\t\t\t\treturn [\n\t\t\t\t\t/* eslint-disable no-bitwise */\n\t\t\t\t\t(integer >> 16) & 0xFF,\n\t\t\t\t\t(integer >> 8) & 0xFF,\n\t\t\t\t\tinteger & 0xFF,\n\t\t\t\t\t/* eslint-enable no-bitwise */\n\t\t\t\t];\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi256: {\n\t\t\tvalue: hex => styles.rgbToAnsi256(...styles.hexToRgb(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t\tansi256ToAnsi: {\n\t\t\tvalue(code) {\n\t\t\t\tif (code < 8) {\n\t\t\t\t\treturn 30 + code;\n\t\t\t\t}\n\n\t\t\t\tif (code < 16) {\n\t\t\t\t\treturn 90 + (code - 8);\n\t\t\t\t}\n\n\t\t\t\tlet red;\n\t\t\t\tlet green;\n\t\t\t\tlet blue;\n\n\t\t\t\tif (code >= 232) {\n\t\t\t\t\tred = (((code - 232) * 10) + 8) / 255;\n\t\t\t\t\tgreen = red;\n\t\t\t\t\tblue = red;\n\t\t\t\t} else {\n\t\t\t\t\tcode -= 16;\n\n\t\t\t\t\tconst remainder = code % 36;\n\n\t\t\t\t\tred = Math.floor(code / 36) / 5;\n\t\t\t\t\tgreen = Math.floor(remainder / 6) / 5;\n\t\t\t\t\tblue = (remainder % 6) / 5;\n\t\t\t\t}\n\n\t\t\t\tconst value = Math.max(red, green, blue) * 2;\n\n\t\t\t\tif (value === 0) {\n\t\t\t\t\treturn 30;\n\t\t\t\t}\n\n\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\tlet result = 30 + ((Math.round(blue) << 2) | (Math.round(green) << 1) | Math.round(red));\n\n\t\t\t\tif (value === 2) {\n\t\t\t\t\tresult += 60;\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\trgbToAnsi: {\n\t\t\tvalue: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi: {\n\t\t\tvalue: hex => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t});\n\n\treturn styles;\n}\n\nconst ansiStyles = assembleStyles();\n\nexport default ansiStyles;\n","/* eslint-env browser */\n\nconst level = (() => {\n\tif (!('navigator' in globalThis)) {\n\t\treturn 0;\n\t}\n\n\tif (globalThis.navigator.userAgentData) {\n\t\tconst brand = navigator.userAgentData.brands.find(({brand}) => brand === 'Chromium');\n\t\tif (brand && brand.version > 93) {\n\t\t\treturn 3;\n\t\t}\n\t}\n\n\tif (/\\b(Chrome|Chromium)\\//.test(globalThis.navigator.userAgent)) {\n\t\treturn 1;\n\t}\n\n\treturn 0;\n})();\n\nconst colorSupport = level !== 0 && {\n\tlevel,\n\thasBasic: true,\n\thas256: level >= 2,\n\thas16m: level >= 3,\n};\n\nconst supportsColor = {\n\tstdout: colorSupport,\n\tstderr: colorSupport,\n};\n\nexport default supportsColor;\n","// TODO: When targeting Node.js 16, use `String.prototype.replaceAll`.\nexport function 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.slice(endIndex, index) + substring + replacer;\n\t\tendIndex = index + substringLength;\n\t\tindex = string.indexOf(substring, endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.slice(endIndex);\n\treturn returnValue;\n}\n\nexport function 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.slice(endIndex, (gotCR ? index - 1 : index)) + 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.slice(endIndex);\n\treturn returnValue;\n}\n","import ansiStyles from '#ansi-styles';\nimport supportsColor from '#supports-color';\nimport { // eslint-disable-line import/order\n\tstringReplaceAll,\n\tstringEncaseCRLFWithFirstIndex,\n} from './utilities.js';\n\nconst {stdout: stdoutColor, stderr: stderrColor} = supportsColor;\n\nconst GENERATOR = Symbol('GENERATOR');\nconst STYLER = Symbol('STYLER');\nconst IS_EMPTY = Symbol('IS_EMPTY');\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\nexport class Chalk {\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 = (...strings) => strings.join(' ');\n\tapplyOptions(chalk, options);\n\n\tObject.setPrototypeOf(chalk, createChalk.prototype);\n\n\treturn chalk;\n};\n\nfunction createChalk(options) {\n\treturn chalkFactory(options);\n}\n\nObject.setPrototypeOf(createChalk.prototype, Function.prototype);\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[IS_EMPTY]);\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 getModelAnsi = (model, level, type, ...arguments_) => {\n\tif (model === 'rgb') {\n\t\tif (level === 'ansi16m') {\n\t\t\treturn ansiStyles[type].ansi16m(...arguments_);\n\t\t}\n\n\t\tif (level === 'ansi256') {\n\t\t\treturn ansiStyles[type].ansi256(ansiStyles.rgbToAnsi256(...arguments_));\n\t\t}\n\n\t\treturn ansiStyles[type].ansi(ansiStyles.rgbToAnsi(...arguments_));\n\t}\n\n\tif (model === 'hex') {\n\t\treturn getModelAnsi('rgb', level, type, ...ansiStyles.hexToRgb(...arguments_));\n\t}\n\n\treturn ansiStyles[type][model](...arguments_);\n};\n\nconst usedModels = ['rgb', 'hex', '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(getModelAnsi(model, levelMapping[level], 'color', ...arguments_), ansiStyles.color.close, this[STYLER]);\n\t\t\t\treturn createBuilder(this, styler, this[IS_EMPTY]);\n\t\t\t};\n\t\t},\n\t};\n\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(getModelAnsi(model, levelMapping[level], 'bgColor', ...arguments_), ansiStyles.bgColor.close, this[STYLER]);\n\t\t\t\treturn createBuilder(this, styler, this[IS_EMPTY]);\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\t// Single argument is hot path, implicit coercion is faster than anything\n\t// eslint-disable-next-line no-implicit-coercion\n\tconst builder = (...arguments_) => applyStyle(builder, (arguments_.length === 1) ? ('' + arguments_[0]) : arguments_.join(' '));\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[IS_EMPTY] = _isEmpty;\n\n\treturn builder;\n};\n\nconst applyStyle = (self, string) => {\n\tif (self.level <= 0 || !string) {\n\t\treturn self[IS_EMPTY] ? '' : 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.includes('\\u001B')) {\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\nObject.defineProperties(createChalk.prototype, styles);\n\nconst chalk = createChalk();\nexport const chalkStderr = createChalk({level: stderrColor ? stderrColor.level : 0});\n\nexport {\n\tmodifierNames,\n\tforegroundColorNames,\n\tbackgroundColorNames,\n\tcolorNames,\n\n\t// TODO: Remove these aliases in the next major version\n\tmodifierNames as modifiers,\n\tforegroundColorNames as foregroundColors,\n\tbackgroundColorNames as backgroundColors,\n\tcolorNames as colors,\n} from './vendor/ansi-styles/index.js';\n\nexport {\n\tstdoutColor as supportsColor,\n\tstderrColor as supportsColorStderr,\n};\n\nexport default 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 isNode from 'detect-node'\n\nimport axios, { AxiosError, AxiosResponse } from 'axios';\n\nimport { ISTSLogger, Sleep, IAgentManager, STSAxiosConfig, JSONObject } from '@nsshunt/stsutils'\n\nimport chalk from 'chalk'\n\nimport { StatusCodes } from 'http-status-codes';\n\nexport interface IAxiosClientTelemetryEvents {\n AuthenticationErrorInc: () => void;\n RetryInc: () => void;\n}\n\nexport interface IAxiosClientOptions {\n logger: ISTSLogger\n testingMode: boolean\n GetAccessToken: () => Promise<string | null>\n ResetAccessToken: () => void\n clientTelemetryEvents?: IAxiosClientTelemetryEvents\n agentManager?: IAgentManager\n}\n\ndeclare interface IMethodMetadata {\n id: string\n retries: number\n testFailIndexBefore: number\n url: string\n httpVerb: string, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resource: any\n filters: string[] | null\n searchParams: JSONObject | null\n errorCb: (error: Error) => void\n}\n\ndeclare interface IInvokeAPIReturnData {\n response: AxiosResponse | null\n retry: boolean\n}\n\nexport class AxiosClient {\n #options: IAxiosClientOptions;\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 #accessToken: string | null = null;\n #noRetries: boolean = false;\n\n constructor(options: IAxiosClientOptions) {\n this.#options = options;\n }\n\n get options(): IAxiosClientOptions {\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 #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, resource, filters } = metaData;\n\n if (this.#options.testingMode) {\n if (this.#TestMode(metaData, errorCb)) {\n return null;\n }\n }\n\n let accessToken: string | null = null;\n if (this.#accessToken) {\n accessToken = this.#accessToken;\n this.#accessToken = null;\n } else {\n accessToken = await this.#options.GetAccessToken();\n }\n \n let requestConfig = new STSAxiosConfig(url, httpVerb)\n .withDefaultHeaders()\n .withAuthHeaders(accessToken as string, this.#DUMMY_USER);\n\n if (!(httpVerb.localeCompare('get') === 0 || httpVerb.localeCompare('head') === 0)) {\n requestConfig.withData(filters ? filters : resource ? resource : undefined)\n }\n\n if (isNode && this.#options.agentManager) {\n requestConfig.withAgentManager(this.#options.agentManager)\n }\n\n return await axios(requestConfig.config);\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 WithAccessToken = (accessToken: string): AxiosClient => {\n this.#accessToken = accessToken;\n return this;\n }\n\n WithNoRetries = (): AxiosClient => {\n this.#noRetries = true;\n return this;\n }\n\n InvokeResourceAPI = async (url: string, httpVerb: string, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resource: any,\n filters: string[] | null, searchParams: JSONObject | null, errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n\n const id = globalThis.crypto.randomUUID();\n this.#invokeMethods[id] = {\n id,\n retries: 0,\n testFailIndexBefore: 1,\n url,\n httpVerb,\n resource,\n filters,\n searchParams,\n errorCb\n }\n\n let returnError: Error | null = null;\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 if (this.#noRetries === false) {\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.#options.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.#options.agentManager.ResetAgent();\n }\n performRetry = true;\n } else {\n returnError = error;\n }\n } else {\n returnError = error;\n this.#noRetries = false;\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 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 if (returnError) {\n errorCb(returnError);\n }\n return retVal.response;\n }\n } else {\n if (returnError) {\n errorCb(returnError);\n }\n return null;\n }\n }\n}\n","/* eslint @typescript-eslint/no-explicit-any: 0 */ // --> OFF\nimport { AxiosResponse } from 'axios';\n\nimport { goptions } from '@nsshunt/stsconfig'\n\nimport { AxiosClient, IAxiosClientOptions } from './axiosClient.js'\n\nimport { IDBResource, IDBEntity } from '@nsshunt/stsutils'\n\nexport interface ISTSRest01ClientOptions extends IAxiosClientOptions {\n endpoint: string\n}\n\nexport interface IResource {\n resname: string\n}\n\nexport interface IResourceEntity extends IResource {\n entname: string\n}\n\n \nexport class STSRest01Client<RT extends IResource, ET extends IResourceEntity> {\n #axiosClient: AxiosClient;\n #options: ISTSRest01ClientOptions;\n\n constructor(options: ISTSRest01ClientOptions) {\n this.#options = options;\n \n this.#axiosClient = new AxiosClient({\n logger: options.logger,\n testingMode: options.testingMode,\n GetAccessToken: options.GetAccessToken,\n ResetAccessToken: options.ResetAccessToken,\n agentManager: options.agentManager,\n clientTelemetryEvents: options.clientTelemetryEvents,\n })\n }\n\n HandleError = (error: Error): number => {\n return this.#axiosClient.HandleError(error);\n }\n\n WithNoRetries = (): STSRest01Client<RT, ET> => {\n this.#axiosClient.WithNoRetries()\n return this;\n }\n\n WithAccessToken = (accessToken: string): STSRest01Client<RT, ET> => {\n this.#axiosClient.WithAccessToken(accessToken);\n return this;\n }\n\n // --- [ Resource ] -------------------------------------------------------------------------------------------------------------------\n\n // --- [ POST.Resource ] -------------------------------------------------------------------------------------------------------------------\n\n PostResourceAR = async (resource: RT, errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n const url = `${this.#options.endpoint}${goptions.rest01apiroot}/resources`;\n return await this.#axiosClient.InvokeResourceAPI(url, 'post', resource, null, null, errorCb);\n }\n\n PostResourceDBR = async (resource: RT, errorCb: (error: Error) => void): Promise<IDBResource<RT> | null> => {\n return (await this.PostResourceAR(resource, errorCb))?.data.detail as IDBResource<RT> | null ?? null;\n }\n\n PostResource = async (resource: RT, errorCb: (error: Error) => void): Promise<RT | null> => {\n return (await this.PostResourceDBR(resource, errorCb))?.resdesc as RT | null ?? null;\n }\n\n // --- [ PUT.Resources ] ------------------------------------------------------------------------------------------------------------------\n\n PutResourcesAR = async (resources: RT[], errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n const url = `${this.#options.endpoint}${goptions.rest01apiroot}/resources`;\n return await this.#axiosClient.InvokeResourceAPI(url, 'put', resources, null, null, errorCb);\n }\n\n PutResourcesDBR = async (resources: RT[], errorCb: (error: Error) => void): Promise<IDBResource<RT>[] | null> => {\n return (await this.PutResourcesAR(resources, errorCb))?.data.map((r: any) => r.detail) as IDBResource<RT>[] | null ?? null;\n }\n\n PutResources = async (resources: RT[], errorCb: (error: Error) => void): Promise<RT[] | null> => {\n return (await this.PutResourcesDBR(resources, errorCb))?.map(r => r.resdesc) ?? null;\n }\n\n // --- [ PUT.Resource ] -------------------------------------------------------------------------------------------------------------------\n\n PutResourceAR = async (resource: RT, errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n const url = `${this.#options.endpoint}${goptions.rest01apiroot}/resources/${resource.resname}`;\n return this.#axiosClient.InvokeResourceAPI(url, 'put', resource, null, null, errorCb);\n }\n\n PutResourceDBR = async (resource: RT, errorCb: (error: Error) => void): Promise<IDBResource<RT> | null> => {\n return (await this.PutResourceAR(resource, errorCb))?.data.detail as IDBResource<RT> | null ?? null;\n }\n\n PutResource = async (resource: RT, errorCb: (error: Error) => void): Promise<RT | null> => {\n return (await this.PutResourceDBR(resource, errorCb))?.resdesc as RT | null ?? null;\n }\n\n // --- [ PATCH.Resources ] ------------------------------------------------------------------------------------------------------------------\n\n PatchResourcesAR = async (resources: RT[], errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n const url = `${this.#options.endpoint}${goptions.rest01apiroot}/resources`;\n return await this.#axiosClient.InvokeResourceAPI(url, 'patch', resources, null, null, errorCb);\n }\n\n PatchResourcesDBR = async (resources: RT[], errorCb: (error: Error) => void): Promise<IDBResource<RT>[] | null> => {\n return (await this.PatchResourcesAR(resources, errorCb))?.data.map((r: any) => r.detail) as IDBResource<RT>[] | null ?? null;\n }\n\n PatchResources = async (resources: RT[], errorCb: (error: Error) => void): Promise<RT[] | null> => {\n return (await this.PatchResourcesDBR(resources, errorCb))?.map(r => r.resdesc) ?? null;\n }\n\n // --- [ PATCH.Resource ] -------------------------------------------------------------------------------------------------------------------\n\n PatchResourceAR = async (resource: RT, errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n const url = `${this.#options.endpoint}${goptions.rest01apiroot}/resources/${resource.resname}`;\n return this.#axiosClient.InvokeResourceAPI(url, 'patch', resource, null, null, errorCb);\n }\n\n PatchResourceDBR = async (resource: RT, errorCb: (error: Error) => void): Promise<IDBResource<RT> | null> => {\n return (await this.PatchResourceAR(resource, errorCb))?.data.detail as IDBResource<RT> | null ?? null;\n }\n\n PatchResource = async (resource: RT, errorCb: (error: Error) => void): Promise<RT | null> => {\n return (await this.PatchResourceDBR(resource, errorCb))?.resdesc as RT | null ?? null;\n }\n\n // --- [ DELETE.Resources ] -------------------------------------------------------------------------------------------------------------------\n \n DeleteResourcesAR = async (resources: RT[], errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n const url = `${this.#options.endpoint}${goptions.rest01apiroot}/resources`;\n return await this.#axiosClient.InvokeResourceAPI(url, 'delete', resources, null, null, errorCb);\n }\n\n DeleteResourcesDBR = async (resources: RT[], errorCb: (error: Error) => void): Promise<IDBResource<RT>[] | null> => {\n return (await this.DeleteResourcesAR(resources, errorCb))?.data.map((r: any) => r.detail) as IDBResource<RT>[] | null ?? null;\n }\n\n DeleteResources = async (resources: RT[], errorCb: (error: Error) => void): Promise<RT[] | null> => {\n return (await this.DeleteResourcesDBR(resources, errorCb))?.map(r => r.resdesc) ?? null;\n }\n\n // --- [ DELETE.Resource ] -------------------------------------------------------------------------------------------------------------------\n\n DeleteResourceAR = async (resource: RT, errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n const url = `${this.#options.endpoint}${goptions.rest01apiroot}/resources/${resource.resname}`;\n return this.#axiosClient.InvokeResourceAPI(url, 'delete', resource, null, null, errorCb);\n }\n\n DeleteResourceDBR = async (resource: RT, errorCb: (error: Error) => void): Promise<IDBResource<RT> | null> => {\n return (await this.DeleteResourceAR(resource, errorCb))?.data.detail as IDBResource<RT> | null ?? null;\n }\n\n DeleteResource = async (resource: RT, errorCb: (error: Error) => void): Promise<RT | null> => {\n return (await this.DeleteResourceDBR(resource, errorCb))?.resdesc as RT | null ?? null;\n }\n\n // --- [ GET.Resource ] -------------------------------------------------------------------------------------------------------------------\n\n GetResourceAR = async (resource: Partial<RT>, filters: string, errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n let url = `${this.#options.endpoint}${goptions.rest01apiroot}/resources/${resource.resname}`;\n if (filters && filters.localeCompare('') !== 0) {\n url = `${url}?${filters}`\n }\n return this.#axiosClient.InvokeResourceAPI(url, 'get', null, null, null, errorCb);\n }\n\n GetResourceDBR = async (resource: Partial<RT>, filters: string, errorCb: (error: Error) => void): Promise<IDBResource<RT> | null> => {\n return (await this.GetResourceAR(resource, filters, errorCb))?.data.detail as IDBResource<RT> | null ?? null;\n }\n\n GetResource = async (resource: Partial<RT>, filters: string, errorCb: (error: Error) => void): Promise<RT | null> => {\n return (await this.GetResourceDBR(resource, filters, errorCb))?.resdesc as RT | null ?? null;\n }\n\n // --- [ GET.Resources ] -------------------------------------------------------------------------------------------------------------------\n\n GetResourcesAR = async (filters: string, errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n let url = `${this.#options.endpoint}${goptions.rest01apiroot}/resources`;\n if (filters && filters.localeCompare('') !== 0) {\n url = `${url}?${filters}`\n }\n return this.#axiosClient.InvokeResourceAPI(url, 'get', null, null, null, errorCb);\n }\n\n GetResourcesDBR = async (filters: string, errorCb: (error: Error) => void): Promise<IDBResource<RT>[] | null> => {\n return (await this.GetResourcesAR(filters, errorCb))?.data.detail as IDBResource<RT>[] | null ?? null\n }\n\n GetResources = async (filters: string, errorCb: (error: Error) => void): Promise<RT[] | null> => {\n return (await this.GetResourcesDBR(filters, errorCb))?.map(r => r.resdesc) ?? null;\n }\n\n // --- [ Entity ] -------------------------------------------------------------------------------------------------------------------\n\n #checkResName = (resourceEntities: ET[]): string => {\n let resName = '';\n resourceEntities.forEach(re => {\n resName = (resName.localeCompare('') === 0) ? re.resname : resName;\n if (resName.localeCompare(re.resname) !== 0) {\n throw new Error(`Invalid batch provided. resname not all equal. Previous checked value: [${resName}, current value: [${re.resname}]`);\n } else {\n resName = re.resname;\n }\n });\n return resName;\n }\n\n // --- [ POST.Entitiy ] -------------------------------------------------------------------------------------------------------------------\n\n PostEntityAR = async (resourceEntity: ET, errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n const url = `${this.#options.endpoint}${goptions.rest01apiroot}/resources/${resourceEntity.resname}/entities`;\n return this.#axiosClient.InvokeResourceAPI(url, 'post', resourceEntity, null, null, errorCb);\n }\n\n PostEntityDBR = async (resourceEntity: ET, errorCb: (error: Error) => void): Promise<IDBEntity<ET> | null> => {\n return (await this.PostEntityAR(resourceEntity, errorCb))?.data.detail as IDBEntity<ET> | null ?? null;\n }\n\n PostEntity = async (resourceEntity: ET, errorCb: (error: Error) => void): Promise<ET | null> => {\n return (await this.PostEntityDBR(resourceEntity, errorCb))?.entvalue as ET | null ?? null;\n }\n\n // --- [ PUT.Entities ] -----------------------------------------------------------------------------------------------------------------\n\n PutEntitiesAR = async (resourceEntities: ET[], errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n const url = `${this.#options.endpoint}${goptions.rest01apiroot}/resources/${this.#checkResName(resourceEntities)}/entities`;\n return this.#axiosClient.InvokeResourceAPI(url, 'put', resourceEntities, null, null, errorCb);\n }\n\n PutEntitiesDBR = async (resourceEntities: ET[], errorCb: (error: Error) => void): Promise<IDBEntity<ET>[] | null> => {\n return (await this.PutEntitiesAR(resourceEntities, errorCb))?.data.map((r: any) => r.detail) as IDBEntity<ET>[] | null ?? null;\n }\n\n PutEntities = async (resourceEntities: ET[], errorCb: (error: Error) => void): Promise<ET[] | null> => {\n return (await this.PutEntitiesDBR(resourceEntities, errorCb))?.map(r => r.entvalue) ?? null;\n }\n\n // --- [ PUT.Entity ] -------------------------------------------------------------------------------------------------------------------\n\n PutEntityAR = async (entity: ET, errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n const url = `${this.#options.endpoint}${goptions.rest01apiroot}/resources/${entity.resname}/entities/${entity.entname}`;\n return this.#axiosClient.InvokeResourceAPI(url, 'put', entity, null, null, errorCb);\n }\n\n PutEntityDBR = async (resourceEntity: ET, errorCb: (error: Error) => void): Promise<IDBEntity<ET> | null> => {\n return (await this.PutEntityAR(resourceEntity, errorCb))?.data.detail as IDBEntity<ET> | null ?? null;\n }\n\n PutEntity = async (resourceEntity: ET, errorCb: (error: Error) => void): Promise<ET | null> => {\n return (await this.PutEntityDBR(resourceEntity, errorCb))?.entvalue as ET | null ?? null;\n }\n \n // --- [ PATCH.Entities ] -----------------------------------------------------------------------------------------------------------------\n\n PatchEntitiesAR = async (resourceEntities: ET[], errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n const url = `${this.#options.endpoint}${goptions.rest01apiroot}/resources/${this.#checkResName(resourceEntities)}/entities`;\n return this.#axiosClient.InvokeResourceAPI(url, 'patch', resourceEntities, null, null, errorCb);\n }\n\n PatchEntitiesDBR = async (resourceEntities: ET[], errorCb: (error: Error) => void): Promise<IDBEntity<ET>[] | null> => {\n return (await this.PatchEntitiesAR(resourceEntities, errorCb))?.data.map((r: any) => r.detail) as IDBEntity<ET>[] | null ?? null;\n }\n\n PatchEntities = async (resourceEntities: ET[], errorCb: (error: Error) => void): Promise<ET[] | null> => {\n return (await this.PatchEntitiesDBR(resourceEntities, errorCb))?.map(r => r.entvalue) ?? null;\n }\n\n // --- [ PATCH.Entity ] -------------------------------------------------------------------------------------------------------------------\n\n PatchEntityAR = async (resourceEntity: ET, errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n const url = `${this.#options.endpoint}${goptions.rest01apiroot}/resources/${resourceEntity.resname}/entities/${resourceEntity.entname}`;\n return this.#axiosClient.InvokeResourceAPI(url, 'patch', resourceEntity, null, null, errorCb);\n }\n\n PatchEntityDBR = async (resourceEntity: ET, errorCb: (error: Error) => void): Promise<IDBEntity<ET> | null> => {\n return (await this.PatchEntityAR(resourceEntity, errorCb))?.data.detail as IDBEntity<ET> | null ?? null;\n }\n\n PatchEntity = async (resourceEntity: ET, errorCb: (error: Error) => void): Promise<ET | null> => {\n return (await this.PatchEntityDBR(resourceEntity, errorCb))?.entvalue as ET | null ?? null;\n }\n\n // --- [ DELETE.Entity ] -------------------------------------------------------------------------------------------------------------------\n\n DeleteEntitiesAR = async (resourceEntities: ET[], errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n const url = `${this.#options.endpoint}${goptions.rest01apiroot}/resources/${this.#checkResName(resourceEntities)}/entities`;\n return this.#axiosClient.InvokeResourceAPI(url, 'delete', resourceEntities, null, null, errorCb);\n }\n\n DeleteEntitiesDBR = async (resourceEntities: ET[], errorCb: (error: Error) => void): Promise<IDBEntity<ET>[] | null> => {\n return (await this.DeleteEntitiesAR(resourceEntities, errorCb))?.data.map((r: any) => r.detail) as IDBEntity<ET>[] | null ?? null;\n }\n\n DeleteEntities = async (resourceEntities: ET[], errorCb: (error: Error) => void): Promise<ET[] | null> => {\n return (await this.DeleteEntitiesDBR(resourceEntities, errorCb))?.map(r => r.entvalue) ?? null;\n }\n\n // --- [ DELETE.Entity ] -------------------------------------------------------------------------------------------------------------------\n\n DeleteEntityAR = async (resourceEntity: ET, errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n const url = `${this.#options.endpoint}${goptions.rest01apiroot}/resources/${resourceEntity.resname}/entities/${resourceEntity.entname}`;\n return this.#axiosClient.InvokeResourceAPI(url, 'delete', resourceEntity, null, null, errorCb);\n }\n\n DeleteEntityDBR = async (resourceEntity: ET, errorCb: (error: Error) => void): Promise<IDBEntity<ET> | null> => {\n return (await this.DeleteEntityAR(resourceEntity, errorCb))?.data.detail as IDBEntity<ET> | null ?? null;\n }\n\n DeleteEntity = async (resourceEntity: ET, errorCb: (error: Error) => void): Promise<ET | null> => {\n return (await this.DeleteEntityDBR(resourceEntity, errorCb))?.entvalue as ET | null ?? null;\n }\n\n // --- [ GET.Entity ] -------------------------------------------------------------------------------------------------------------------\n\n GetEntityAR = async (resourceEntity: Partial<ET>, filters: string, errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n let url = `${this.#options.endpoint}${goptions.rest01apiroot}/resources/${resourceEntity.resname}/entities/${resourceEntity.entname}`;\n if (filters && filters.localeCompare('') !== 0) {\n url = `${url}?${filters}`\n }\n return this.#axiosClient.InvokeResourceAPI(url, 'get', null, null, null, errorCb);\n }\n\n GetEntityDBR = async (resourceEntity: Partial<ET>, filters: string, errorCb: (error: Error) => void): Promise<IDBEntity<ET> | null> => {\n return (await this.GetEntityAR(resourceEntity, filters, errorCb))?.data.detail as IDBEntity<ET> | null ?? null;\n }\n\n GetEntity = async (resourceEntity: Partial<ET>, filters: string, errorCb: (error: Error) => void): Promise<ET | null> => {\n return (await this.GetEntityDBR(resourceEntity, filters, errorCb))?.entvalue as ET | null ?? null;\n }\n\n // --- [ GET.Entities ] -------------------------------------------------------------------------------------------------------------------\n\n GetEntitiesAR = async (resource: Partial<RT>, filters: string, errorCb: (error: Error) => void): Promise<AxiosResponse | null> => {\n let url = `${this.#options.endpoint}${goptions.rest01apiroot}/resources/${resource.resname}/entities`;\n if (filters && filters.localeCompare('') !== 0) {\n url = `${url}?${filters}`\n }\n return this.#axiosClient.InvokeResourceAPI(url, 'get', null, null, null, errorCb);\n }\n\n GetEntitiesDBR = async (resource: Partial<RT>, filters: string, errorCb: (error: Error) => void): Promise<IDBEntity<ET>[] | null> => {\n return (await this.GetEntitiesAR(resource, filters, errorCb))?.data.detail as IDBEntity<ET>[] | null ?? null\n }\n\n GetEntities = async (resource: Partial<RT>, filters: string, errorCb: (error: Error) => void): Promise<ET[] | null> => {\n return (await this.GetEntitiesDBR(resource, filters, errorCb))?.map(r => r.entvalue) ?? null;\n }\n}\n"],"x_google_ignoreList":[1,2,3,4,5,6,7,8],"mappings":"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"}
|