From 29356ce36c9d6edf4a0b605b2b63be1c95fcaee3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=B6ran=20Sander?= Date: Tue, 27 Aug 2024 14:44:30 +0000 Subject: [PATCH 1/2] feat(config): Visualise config file in Butler hosted web page Implements #1199 --- src/app.js | 1 - src/config/config-gen-api-docs.yaml | 14 +- src/config/production_template.yaml | 14 +- src/lib/assert/assert_config_file.js | 42 +- src/lib/config_obfuscate.js | 4 + static/configvis/index.html | 5 +- static/configvis/jsontree.js | 2019 ++++++++++++++++++-------- static/configvis/jsontree.js.css | 552 ++++--- static/configvis/jsontree.js.css.map | 2 +- static/configvis/jsontree.js.map | 2 +- 10 files changed, 1778 insertions(+), 877 deletions(-) diff --git a/src/app.js b/src/app.js index 5c19868d..620973eb 100644 --- a/src/app.js +++ b/src/app.js @@ -343,7 +343,6 @@ async function build(opts = {}) { const dirContents = fs.readdirSync(globals.appBasePath); globals.logger.verbose(`CONFIG VIS: Directory contents of "${globals.appBasePath}": ${dirContents}`); - const htmlDir = path.resolve(globals.appBasePath, 'static/configvis'); globals.logger.info(`CONFIG VIS: Serving static files from ${htmlDir}`); diff --git a/src/config/config-gen-api-docs.yaml b/src/config/config-gen-api-docs.yaml index d86e43b7..c430c173 100644 --- a/src/config/config-gen-api-docs.yaml +++ b/src/config/config-gen-api-docs.yaml @@ -12,6 +12,13 @@ Butler: # More info on whata data is collected: https://butler.ptarmiganlabs.com/docs/about/telemetry/ # Please consider leaving this at true - it really helps future development of Butler! + # Should Butler start a web server that serves an obfuscated view of the Butler config file? + configVisualisation: + enable: false + host: localhost # Hostname or IP address where the web server will listen. Should be localhost in most cases. + port: 3100 # Port where the web server will listen. Change if port 3100 is already in use. + obfuscate: true # Should the config file shown in the web UI be obfuscated? + # Heartbeats can be used to send "I'm alive" messages to any other tool, e.g. an infrastructure monitoring tool heartbeat: enable: false @@ -805,13 +812,6 @@ Butler: webhook: enable: false - # Should Butler start a web server that serves an obfuscated view of the Butler config file? - configVisualisation: - enable: false - host: localhost # Hostname or IP address where the web server will listen. Should be localhost in most cases. - port: 3100 # Port where the web server will listen. Change if port 3100 is already in use. - obfuscate: true # Should the config file shown in the web UI be obfuscated? - # Certificates to use when connecting to Sense. Get these from the Certificate Export in QMC. cert: clientCert: ... diff --git a/src/config/production_template.yaml b/src/config/production_template.yaml index bf816a63..7a8a7e3d 100644 --- a/src/config/production_template.yaml +++ b/src/config/production_template.yaml @@ -25,6 +25,13 @@ Butler: # More info on whata data is collected: https://butler.ptarmiganlabs.com/docs/about/telemetry/ # Please consider leaving this at true - it really helps future development of Butler! + # Should Butler start a web server that serves an obfuscated view of the Butler config file? + configVisualisation: + enable: true + host: localhost # Hostname or IP address where the web server will listen. Should be localhost in most cases. + port: 3100 # Port where the web server will listen. Change if port 3100 is already in use. + obfuscate: true # Should the config file shown in the web UI be obfuscated? + # Heartbeats can be used to send "I'm alive" messages to any other tool, e.g. an infrastructure monitoring tool heartbeat: enable: false @@ -914,13 +921,6 @@ Butler: webhook: # Send service alerts as outbound webhooks/http calls enable: true - # Should Butler start a web server that serves an obfuscated view of the Butler config file? - configVisualisation: - enable: true - host: localhost # Hostname or IP address where the web server will listen. Should be localhost in most cases. - port: 3100 # Port where the web server will listen. Change if port 3100 is already in use. - obfuscate: true # Should the config file shown in the web UI be obfuscated? - # Certificates to use when connecting to Sense. Get these from the Certificate Export in QMC. cert: clientCert: diff --git a/src/lib/assert/assert_config_file.js b/src/lib/assert/assert_config_file.js index 487f6a51..84270834 100644 --- a/src/lib/assert/assert_config_file.js +++ b/src/lib/assert/assert_config_file.js @@ -489,6 +489,27 @@ export const configFileStructureAssert = async (config, logger) => { configFileCorrect = false; } + // Config visualisation setttings + if (!config.has('Butler.configVisualisation.enable')) { + logger.error('ASSERT CONFIG: Missing config file entry "Butler.configVisualisation.enable"'); + configFileCorrect = false; + } + + if (!config.has('Butler.configVisualisation.host')) { + logger.error('ASSERT CONFIG: Missing config file entry "Butler.configVisualisation.host"'); + configFileCorrect = false; + } + + if (!config.has('Butler.configVisualisation.port')) { + logger.error('ASSERT CONFIG: Missing config file entry "Butler.configVisualisation.port"'); + configFileCorrect = false; + } + + if (!config.has('Butler.configVisualisation.obfuscate')) { + logger.error('ASSERT CONFIG: Missing config file entry "Butler.configVisualisation.obfuscate"'); + configFileCorrect = false; + } + if (!config.has('Butler.heartbeat.enable')) { logger.error('ASSERT CONFIG: Missing config file entry "Butler.heartbeat.enable"'); configFileCorrect = false; @@ -4951,27 +4972,6 @@ export const configFileStructureAssert = async (config, logger) => { configFileCorrect = false; } - // Config visualisation setttings - if (!config.has('Butler.configVisualisation.enable')) { - logger.error('ASSERT CONFIG: Missing config file entry "Butler.configVisualisation.enable"'); - configFileCorrect = false; - } - - if (!config.has('Butler.configVisualisation.host')) { - logger.error('ASSERT CONFIG: Missing config file entry "Butler.configVisualisation.host"'); - configFileCorrect = false; - } - - if (!config.has('Butler.configVisualisation.port')) { - logger.error('ASSERT CONFIG: Missing config file entry "Butler.configVisualisation.port"'); - configFileCorrect = false; - } - - if (!config.has('Butler.configVisualisation.obfuscate')) { - logger.error('ASSERT CONFIG: Missing config file entry "Butler.configVisualisation.obfuscate"'); - configFileCorrect = false; - } - if (!config.has('Butler.cert.clientCert')) { logger.error('ASSERT CONFIG: Missing config file entry "Butler.cert.clientCert"'); configFileCorrect = false; diff --git a/src/lib/config_obfuscate.js b/src/lib/config_obfuscate.js index b8fd88a2..126d37e4 100644 --- a/src/lib/config_obfuscate.js +++ b/src/lib/config_obfuscate.js @@ -4,6 +4,10 @@ function configObfuscate(config) { try { const obfuscatedConfig = { ...config }; + // Obfuscate Butler.configVisualisation.host, keep first 3 chars, mask the rest with * + obfuscatedConfig.Butler.configVisualisation.host = + obfuscatedConfig.Butler.configVisualisation.host.substring(0, 3) + '*'.repeat(10); + // Keep first 10 chars of remote URL, mask the rest with * obfuscatedConfig.Butler.heartbeat.remoteURL = obfuscatedConfig.Butler.heartbeat.remoteURL.substring(0, 10) + '*'.repeat(10); diff --git a/static/configvis/index.html b/static/configvis/index.html index 7aba1a49..d6733d3c 100644 --- a/static/configvis/index.html +++ b/static/configvis/index.html @@ -2,7 +2,7 @@ - Ctrl-Q + Butler @@ -182,9 +182,8 @@

JSON tree view

sortPropertyNames: false, sortPropertyNamesInAlphabeticalOrder: false, data: {{butlerConfigJsonEncoded}} }" - style="width: 100%" + style="width: 100%; max-width: 100%" > - Your HTML. diff --git a/static/configvis/jsontree.js b/static/configvis/jsontree.js index cc09af64..7d6ce0a5 100644 --- a/static/configvis/jsontree.js +++ b/static/configvis/jsontree.js @@ -1,185 +1,307 @@ -'use strict'; +"use strict"; var Is; -((e) => { - function t(e) { - return e !== null && e !== void 0 && e.toString() !== ''; - } - e.defined = t; +(e => { + let t; + (e => { + function t(e) { + let t = e.length >= 2 && e.length <= 7; + if (t && e[0] === "#") { + t = isNaN(+e.substring(1, e.length - 1)); + } else { + t = false; + } + return t; + } + e.hexColor = t; + function n(e) { + return (e.startsWith("rgb(") || e.startsWith("rgba(")) && e.endsWith(")"); + } + e.rgbColor = n; + function o(e) { + return e.toString().toLowerCase().trim() === "true" || e.toString().toLowerCase().trim() === "false"; + } + e.boolean = o; + function r(e) { + return !isNaN(+new Date(e)); + } + e.date = r; + function l(e) { + const t = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/; + return t.test(e); + } + e.guid = l; + })(t = e.String || (e.String = {})); function n(e) { - return t(e) && typeof e === 'object'; + return e !== null && e !== void 0 && e.toString() !== ""; } - e.definedObject = n; + e.defined = n; + function o(e) { + return n(e) && typeof e === "object"; + } + e.definedObject = o; function r(e) { - return t(e) && typeof e === 'boolean'; + return n(e) && typeof e === "boolean"; } e.definedBoolean = r; - function o(e) { - return t(e) && typeof e === 'string'; - } - e.definedString = o; function l(e) { - return t(e) && typeof e === 'function'; + return n(e) && typeof e === "string"; } - e.definedFunction = l; + e.definedString = l; + function i(e) { + return n(e) && typeof e === "function"; + } + e.definedFunction = i; function a(e) { - return t(e) && typeof e === 'number'; + return n(e) && typeof e === "number"; } e.definedNumber = a; - function i(e) { - return n(e) && e instanceof Array; - } - e.definedArray = i; function s(e) { - return n(e) && e instanceof Date; + return n(e) && typeof e === "bigint"; } - e.definedDate = s; + e.definedBigInt = s; function u(e) { - return t(e) && typeof e === 'number' && e % 1 !== 0; + return o(e) && e instanceof Array; } - e.definedDecimal = u; - function c(e, t = 1) { - return !i(e) || e.length < t; + e.definedArray = u; + function c(e) { + return o(e) && e instanceof Date; } - e.invalidOptionArray = c; + e.definedDate = c; function d(e) { - let t = e.length >= 2 && e.length <= 7; - if (t && e[0] === '#') { - t = isNaN(+e.substring(1, e.length - 1)); - } - return t; + return n(e) && typeof e === "number" && e % 1 !== 0; + } + e.definedDecimal = d; + function f(e) { + return n(e) && typeof e === "symbol"; + } + e.definedSymbol = f; + function g(e) { + return n(e) && e instanceof RegExp; } - e.hexColor = d; + e.definedRegExp = g; + function m(e) { + return n(e) && (e instanceof Map || e instanceof WeakMap); + } + e.definedMap = m; + function p(e) { + return n(e) && (e instanceof Set || e instanceof WeakSet); + } + e.definedSet = p; + function w(e, t = 1) { + return !u(e) || e.length < t; + } + e.invalidOptionArray = w; })(Is || (Is = {})); -var Default; +var Default2; -((e) => { - function t(e, t) { - return typeof e === 'string' ? e : t; +(Default => { + function getAnyString(e, t) { + return typeof e === "string" ? e : t; } - e.getAnyString = t; - function n(e, t) { + Default.getAnyString = getAnyString; + function getString(e, t) { return Is.definedString(e) ? e : t; } - e.getString = n; - function r(e, t) { + Default.getString = getString; + function getBoolean(e, t) { return Is.definedBoolean(e) ? e : t; } - e.getBoolean = r; - function o(e, t) { + Default.getBoolean = getBoolean; + function getNumber(e, t) { return Is.definedNumber(e) ? e : t; } - e.getNumber = o; - function l(e, t) { + Default.getNumber = getNumber; + function getFunction(e, t) { return Is.definedFunction(e) ? e : t; } - e.getFunction = l; - function a(e, t) { + Default.getFunction = getFunction; + function getArray(e, t) { return Is.definedArray(e) ? e : t; } - e.getArray = a; - function i(e, t) { + Default.getArray = getArray; + function getObject(e, t) { return Is.definedObject(e) ? e : t; } - e.getObject = i; - function s(e, t) { + Default.getObject = getObject; + function getStringOrArray(e, t) { let n = t; if (Is.definedString(e)) { - const r = e.toString().split(' '); - if (r.length === 0) { + const o = e.toString().split(" "); + if (o.length === 0) { e = t; } else { - n = r; + n = o; } } else { - n = a(e, t); + n = getArray(e, t); } return n; } - e.getStringOrArray = s; - function u(e, t) { - var n; - const r = new RegExp(`^-?\\d+(?:.\\d{0,${t || -1}})?`); - return ((n = e.toString().match(r)) == null ? void 0 : n[0]) || ''; + Default.getStringOrArray = getStringOrArray; + function getFixedDecimalPlacesValue(e, t) { + const n = new RegExp(`^-?\\d+(?:.\\d{0,${t || -1}})?`); + return e.toString().match(n)?.[0] || ""; } - e.getFixedDecimalPlacesValue = u; - function c(e) { - let t; - const n = e.toString().split('('); - const r = n[0].split(' '); + Default.getFixedDecimalPlacesValue = getFixedDecimalPlacesValue; + function getFunctionName(e, t) { + let n; + const o = e.toString().split("("); + const r = o[0].split(" "); + const l = "()"; if (r.length === 2) { - t = r[1]; + n = r[1]; } else { - t = r[0]; + n = r[0]; + } + n += l; + if (n.trim() === l) { + n = `${t.text.functionText}${l}`; } - t += '()'; + return n; + } + Default.getFunctionName = getFunctionName; + function getObjectFromString(objectString, configuration) { + const result = { + parsed: true, + object: null + }; + try { + if (Is.definedString(objectString)) { + result.object = JSON.parse(objectString); + } + } catch (e1) { + try { + result.object = eval(`(${objectString})`); + if (Is.definedFunction(result.object)) { + result.object = result.object(); + } + } catch (e) { + if (!configuration.safeMode) { + console.error(configuration.text.objectErrorText.replace("{{error_1}}", e1.message).replace("{{error_2}}", e.message)); + result.parsed = false; + } + result.object = null; + } + } + return result; + } + Default.getObjectFromString = getObjectFromString; + function getObjectFromMap(e) { + const t = Object.fromEntries(e.entries()); return t; } - e.getFunctionName = c; -})(Default || (Default = {})); + Default.getObjectFromMap = getObjectFromMap; + function getArrayFromSet(e) { + const t = Array.from(e.values()); + return t; + } + Default.getArrayFromSet = getArrayFromSet; +})(Default2 || (Default2 = {})); var DomElement; -((e) => { - function t(e, t, n = '', r = null) { - const o = t.toLowerCase(); - const l = o === 'text'; - let a = l ? document.createTextNode('') : document.createElement(o); +(e => { + function t(e, t, n = "", o = null) { + const r = t.toLowerCase(); + const l = r === "text"; + let i = l ? document.createTextNode("") : document.createElement(r); if (Is.defined(n)) { - a.className = n; + i.className = n; } - if (Is.defined(r)) { - e.insertBefore(a, r); + if (Is.defined(o)) { + e.insertBefore(i, o); } else { - e.appendChild(a); + e.appendChild(i); } - return a; + return i; } e.create = t; - function n(e, n, r, o, l = null) { - const a = t(e, n, r, l); - a.innerHTML = o; - return a; + function n(e, n, o, r, l = null) { + const i = t(e, n, o, l); + i.innerHTML = r; + return i; } e.createWithHTML = n; - function r(e, t) { + function o(e, t) { e.classList.add(t); } - e.addClass = r; + e.addClass = o; + function r(e, t) { + e.classList.remove(t); + } + e.removeClass = r; + function l(e) { + e.preventDefault(); + e.stopPropagation(); + } + e.cancelBubble = l; + function i() { + const e = document.documentElement; + const t = { + left: e.scrollLeft - (e.clientLeft || 0), + top: e.scrollTop - (e.clientTop || 0) + }; + return t; + } + e.getScrollPosition = i; + function a(e, t, n) { + let o = e.pageX; + let r = e.pageY; + const l = i(); + t.style.display = "block"; + if (o + t.offsetWidth > window.innerWidth) { + o -= t.offsetWidth + n; + } else { + o++; + o += n; + } + if (r + t.offsetHeight > window.innerHeight) { + r -= t.offsetHeight + n; + } else { + r++; + r += n; + } + if (o < l.left) { + o = e.pageX + 1; + } + if (r < l.top) { + r = e.pageY + 1; + } + t.style.left = `${o}px`; + t.style.top = `${r}px`; + } + e.showElementAtMousePosition = a; + function s(e) { + const t = document.createRange(); + t.selectNodeContents(e); + const n = window.getSelection(); + n.removeAllRanges(); + n.addRange(t); + } + e.selectAllText = s; })(DomElement || (DomElement = {})); var Str; -((e) => { - function t() { - const e = []; - for (let t = 0; t < 32; t++) { - if (t === 8 || t === 12 || t === 16 || t === 20) { - e.push('-'); - } - const n = Math.floor(Math.random() * 16).toString(16); - e.push(n); - } - return e.join(''); - } - e.newGuid = t; - function n(e, t = 1) { +(e => { + function t(e, t = 1) { const n = e.toString(); - let r = n; + let o = n; if (n.length < t) { const e = t - n.length + 1; - r = Array(e).join('0') + n; + o = Array(e).join("0") + n; } - return r; + return o; } - e.padNumber = n; + e.padNumber = t; })(Str || (Str = {})); var DateTime; -((e) => { +(e => { function t(e) { return e.getDay() - 1 < 0 ? 6 : e.getDay() - 1; } @@ -196,197 +318,253 @@ var DateTime; return n; } e.getDayOrdinal = n; - function r(e, r, o) { - let l = o; - const a = t(r); - l = l.replace('{hh}', Str.padNumber(r.getHours(), 2)); - l = l.replace('{h}', r.getHours().toString()); - l = l.replace('{MM}', Str.padNumber(r.getMinutes(), 2)); - l = l.replace('{M}', r.getMinutes().toString()); - l = l.replace('{ss}', Str.padNumber(r.getSeconds(), 2)); - l = l.replace('{s}', r.getSeconds().toString()); - l = l.replace('{dddd}', e.text.dayNames[a]); - l = l.replace('{ddd}', e.text.dayNamesAbbreviated[a]); - l = l.replace('{dd}', Str.padNumber(r.getDate())); - l = l.replace('{d}', r.getDate().toString()); - l = l.replace('{o}', n(e, r.getDate())); - l = l.replace('{mmmm}', e.text.monthNames[r.getMonth()]); - l = l.replace('{mmm}', e.text.monthNamesAbbreviated[r.getMonth()]); - l = l.replace('{mm}', Str.padNumber(r.getMonth() + 1)); - l = l.replace('{m}', (r.getMonth() + 1).toString()); - l = l.replace('{yyyy}', r.getFullYear().toString()); - l = l.replace('{yyy}', r.getFullYear().toString().substring(1)); - l = l.replace('{yy}', r.getFullYear().toString().substring(2)); - l = l.replace('{y}', Number.parseInt(r.getFullYear().toString().substring(2)).toString()); + function o(e, o, r) { + let l = r; + const i = t(o); + l = l.replace("{hh}", Str.padNumber(o.getHours(), 2)); + l = l.replace("{h}", o.getHours().toString()); + l = l.replace("{MM}", Str.padNumber(o.getMinutes(), 2)); + l = l.replace("{M}", o.getMinutes().toString()); + l = l.replace("{ss}", Str.padNumber(o.getSeconds(), 2)); + l = l.replace("{s}", o.getSeconds().toString()); + l = l.replace("{fff}", Str.padNumber(o.getMilliseconds(), 3)); + l = l.replace("{ff}", Str.padNumber(o.getMilliseconds(), 2)); + l = l.replace("{f}", o.getMilliseconds().toString()); + l = l.replace("{dddd}", e.text.dayNames[i]); + l = l.replace("{ddd}", e.text.dayNamesAbbreviated[i]); + l = l.replace("{dd}", Str.padNumber(o.getDate())); + l = l.replace("{d}", o.getDate().toString()); + l = l.replace("{o}", n(e, o.getDate())); + l = l.replace("{mmmm}", e.text.monthNames[o.getMonth()]); + l = l.replace("{mmm}", e.text.monthNamesAbbreviated[o.getMonth()]); + l = l.replace("{mm}", Str.padNumber(o.getMonth() + 1)); + l = l.replace("{m}", (o.getMonth() + 1).toString()); + l = l.replace("{yyyy}", o.getFullYear().toString()); + l = l.replace("{yyy}", o.getFullYear().toString().substring(1)); + l = l.replace("{yy}", o.getFullYear().toString().substring(2)); + l = l.replace("{y}", Number.parseInt(o.getFullYear().toString().substring(2)).toString()); return l; } - e.getCustomFormattedDateText = r; + e.getCustomFormattedDateText = o; })(DateTime || (DateTime = {})); var Constants; -((e) => { - e.JSONTREE_JS_ATTRIBUTE_NAME = 'data-jsontree-js'; +(e => { + e.JSONTREE_JS_ATTRIBUTE_NAME = "data-jsontree-js"; })(Constants || (Constants = {})); var Binding; -((e) => { +(e => { let t; - ((t) => { + (t => { function n(t, n) { - const r = e.Options.get(t); - r._currentView = {}; - r._currentView.element = n; - r._currentView.dataArrayCurrentIndex = 0; - return r; + const o = e.Options.get(t); + o._currentView = {}; + o._currentView.element = n; + o._currentView.dataArrayCurrentIndex = 0; + o._currentView.titleBarButtons = null; + o._currentView.valueClickTimerId = 0; + o._currentView.editMode = false; + o._currentView.idSet = false; + o._currentView.contentPanelsOpen = {}; + o._currentView.contentPanelsIndex = 0; + o._currentView.backButton = null; + o._currentView.nextButton = null; + return o; } t.getForNewInstance = n; - function r(e) { - let t = Default.getObject(e, {}); - t.data = Default.getObject(t.data, null); - t.showCounts = Default.getBoolean(t.showCounts, true); - t.useZeroIndexingForArrays = Default.getBoolean(t.useZeroIndexingForArrays, true); - t.dateTimeFormat = Default.getString(t.dateTimeFormat, '{dd}{o} {mmmm} {yyyy} {hh}:{MM}:{ss}'); - t.showArrowToggles = Default.getBoolean(t.showArrowToggles, true); - t.showStringQuotes = Default.getBoolean(t.showStringQuotes, true); - t.showAllAsClosed = Default.getBoolean(t.showAllAsClosed, false); - t.sortPropertyNames = Default.getBoolean(t.sortPropertyNames, true); - t.sortPropertyNamesInAlphabeticalOrder = Default.getBoolean(t.sortPropertyNamesInAlphabeticalOrder, true); - t.showCommas = Default.getBoolean(t.showCommas, false); - t.reverseArrayValues = Default.getBoolean(t.reverseArrayValues, false); - t.addArrayIndexPadding = Default.getBoolean(t.addArrayIndexPadding, false); - t.showValueColors = Default.getBoolean(t.showValueColors, true); - t.maximumDecimalPlaces = Default.getNumber(t.maximumDecimalPlaces, 2); - t.maximumStringLength = Default.getNumber(t.maximumStringLength, 0); - t.showStringHexColors = Default.getBoolean(t.showStringHexColors, false); - t.showArrayItemsAsSeparateObjects = Default.getBoolean(t.showArrayItemsAsSeparateObjects, false); - t.copyOnlyCurrentPage = Default.getBoolean(t.copyOnlyCurrentPage, false); - t = o(t); + function o(e) { + let t = Default2.getObject(e, {}); + t.data = Default2.getObject(t.data, null); + t.showCounts = Default2.getBoolean(t.showCounts, true); + t.useZeroIndexingForArrays = Default2.getBoolean(t.useZeroIndexingForArrays, true); + t.dateTimeFormat = Default2.getString(t.dateTimeFormat, "{dd}{o} {mmmm} {yyyy} {hh}:{MM}:{ss}"); + t.showArrowToggles = Default2.getBoolean(t.showArrowToggles, true); + t.showStringQuotes = Default2.getBoolean(t.showStringQuotes, true); + t.showAllAsClosed = Default2.getBoolean(t.showAllAsClosed, false); + t.sortPropertyNames = Default2.getBoolean(t.sortPropertyNames, true); + t.sortPropertyNamesInAlphabeticalOrder = Default2.getBoolean(t.sortPropertyNamesInAlphabeticalOrder, true); + t.showCommas = Default2.getBoolean(t.showCommas, false); + t.reverseArrayValues = Default2.getBoolean(t.reverseArrayValues, false); + t.addArrayIndexPadding = Default2.getBoolean(t.addArrayIndexPadding, false); + t.showValueColors = Default2.getBoolean(t.showValueColors, true); + t.maximumDecimalPlaces = Default2.getNumber(t.maximumDecimalPlaces, 2); + t.maximumStringLength = Default2.getNumber(t.maximumStringLength, 0); + t.showArrayItemsAsSeparateObjects = Default2.getBoolean(t.showArrayItemsAsSeparateObjects, false); + t.copyOnlyCurrentPage = Default2.getBoolean(t.copyOnlyCurrentPage, false); + t.fileDroppingEnabled = Default2.getBoolean(t.fileDroppingEnabled, true); + t.copyIndentSpaces = Default2.getNumber(t.copyIndentSpaces, 2); + t.showArrayIndexBrackets = Default2.getBoolean(t.showArrayIndexBrackets, true); + t.showOpeningClosingCurlyBraces = Default2.getBoolean(t.showOpeningClosingCurlyBraces, false); + t.showOpeningClosingSquaredBrackets = Default2.getBoolean(t.showOpeningClosingSquaredBrackets, false); + t.includeTimeZoneInDateTimeEditing = Default2.getBoolean(t.includeTimeZoneInDateTimeEditing, true); + t.shortcutKeysEnabled = Default2.getBoolean(t.shortcutKeysEnabled, true); + t.openInFullScreenMode = Default2.getBoolean(t.openInFullScreenMode, false); + t.enableFullScreenToggling = Default2.getBoolean(t.enableFullScreenToggling, true); + t.valueToolTips = Default2.getObject(t.valueToolTips, null); + t.editingValueClickDelay = Default2.getNumber(t.editingValueClickDelay, 500); + t = r(t); t = l(t); + t = i(t); t = a(t); + t = s(t, Is.definedObject(t.valueToolTips)); + t = u(t); return t; } - t.get = r; - function o(e) { - e.title = Default.getObject(e.title, {}); - e.title.text = Default.getString(e.title.text, 'JsonTree.js'); - e.title.show = Default.getBoolean(e.title.show, true); - e.title.showTreeControls = Default.getBoolean(e.title.showTreeControls, true); - e.title.showCopyButton = Default.getBoolean(e.title.showCopyButton, true); + t.get = o; + function r(e) { + e.title = Default2.getObject(e.title, {}); + e.title.text = Default2.getString(e.title.text, "JsonTree.js"); + e.title.show = Default2.getBoolean(e.title.show, true); + e.title.showTreeControls = Default2.getBoolean(e.title.showTreeControls, true); + e.title.showCopyButton = Default2.getBoolean(e.title.showCopyButton, true); return e; } function l(e) { - e.ignore = Default.getObject(e.ignore, {}); - e.ignore.nullValues = Default.getBoolean(e.ignore.nullValues, false); - e.ignore.functionValues = Default.getBoolean(e.ignore.functionValues, false); - e.ignore.unknownValues = Default.getBoolean(e.ignore.unknownValues, false); - e.ignore.booleanValues = Default.getBoolean(e.ignore.booleanValues, false); - e.ignore.decimalValues = Default.getBoolean(e.ignore.decimalValues, false); - e.ignore.numberValues = Default.getBoolean(e.ignore.numberValues, false); - e.ignore.stringValues = Default.getBoolean(e.ignore.stringValues, false); - e.ignore.dateValues = Default.getBoolean(e.ignore.dateValues, false); - e.ignore.objectValues = Default.getBoolean(e.ignore.objectValues, false); - e.ignore.arrayValues = Default.getBoolean(e.ignore.arrayValues, false); + e.ignore = Default2.getObject(e.ignore, {}); + e.ignore.nullValues = Default2.getBoolean(e.ignore.nullValues, false); + e.ignore.functionValues = Default2.getBoolean(e.ignore.functionValues, false); + e.ignore.unknownValues = Default2.getBoolean(e.ignore.unknownValues, false); + e.ignore.booleanValues = Default2.getBoolean(e.ignore.booleanValues, false); + e.ignore.decimalValues = Default2.getBoolean(e.ignore.decimalValues, false); + e.ignore.numberValues = Default2.getBoolean(e.ignore.numberValues, false); + e.ignore.stringValues = Default2.getBoolean(e.ignore.stringValues, false); + e.ignore.dateValues = Default2.getBoolean(e.ignore.dateValues, false); + e.ignore.objectValues = Default2.getBoolean(e.ignore.objectValues, false); + e.ignore.arrayValues = Default2.getBoolean(e.ignore.arrayValues, false); + e.ignore.bigIntValues = Default2.getBoolean(e.ignore.bigIntValues, false); + e.ignore.symbolValues = Default2.getBoolean(e.ignore.symbolValues, false); + e.ignore.emptyObjects = Default2.getBoolean(e.ignore.emptyObjects, true); + e.ignore.undefinedValues = Default2.getBoolean(e.ignore.undefinedValues, false); + e.ignore.guidValues = Default2.getBoolean(e.ignore.guidValues, false); + e.ignore.colorValues = Default2.getBoolean(e.ignore.colorValues, false); + e.ignore.regExpValues = Default2.getBoolean(e.ignore.regExpValues, false); + e.ignore.mapValues = Default2.getBoolean(e.ignore.mapValues, false); + e.ignore.setValues = Default2.getBoolean(e.ignore.setValues, false); + return e; + } + function i(e) { + e.tooltip = Default2.getObject(e.tooltip, {}); + e.tooltip.delay = Default2.getNumber(e.tooltip.delay, 750); + e.tooltip.offset = Default2.getNumber(e.tooltip.offset, 0); return e; } function a(e) { - e.events = Default.getObject(e.events, {}); - e.events.onBeforeRender = Default.getFunction(e.events.onBeforeRender, null); - e.events.onRenderComplete = Default.getFunction(e.events.onRenderComplete, null); - e.events.onValueClick = Default.getFunction(e.events.onValueClick, null); - e.events.onRefresh = Default.getFunction(e.events.onRefresh, null); - e.events.onCopyAll = Default.getFunction(e.events.onCopyAll, null); - e.events.onOpenAll = Default.getFunction(e.events.onOpenAll, null); - e.events.onCloseAll = Default.getFunction(e.events.onCloseAll, null); - e.events.onDestroy = Default.getFunction(e.events.onDestroy, null); - e.events.onBooleanRender = Default.getFunction(e.events.onBooleanRender, null); - e.events.onDecimalRender = Default.getFunction(e.events.onDecimalRender, null); - e.events.onNumberRender = Default.getFunction(e.events.onNumberRender, null); - e.events.onStringRender = Default.getFunction(e.events.onStringRender, null); - e.events.onDateRender = Default.getFunction(e.events.onDateRender, null); - e.events.onFunctionRender = Default.getFunction(e.events.onFunctionRender, null); - e.events.onNullRender = Default.getFunction(e.events.onNullRender, null); - e.events.onUnknownRender = Default.getFunction(e.events.onUnknownRender, null); + e.parse = Default2.getObject(e.parse, {}); + e.parse.stringsToDates = Default2.getBoolean(e.parse.stringsToDates, false); + e.parse.stringsToBooleans = Default2.getBoolean(e.parse.stringsToBooleans, false); + e.parse.stringsToNumbers = Default2.getBoolean(e.parse.stringsToNumbers, false); return e; } - })((t = e.Options || (e.Options = {}))); + function s(e, t) { + let n = Default2.getBoolean(e.allowEditing, true); + e.allowEditing = Default2.getObject(e.allowEditing, {}); + e.allowEditing.booleanValues = Default2.getBoolean(e.allowEditing.booleanValues, n); + e.allowEditing.decimalValues = Default2.getBoolean(e.allowEditing.decimalValues, n); + e.allowEditing.numberValues = Default2.getBoolean(e.allowEditing.numberValues, n); + e.allowEditing.stringValues = Default2.getBoolean(e.allowEditing.stringValues, n); + e.allowEditing.dateValues = Default2.getBoolean(e.allowEditing.dateValues, n); + e.allowEditing.bigIntValues = Default2.getBoolean(e.allowEditing.bigIntValues, n); + e.allowEditing.guidValues = Default2.getBoolean(e.allowEditing.guidValues, n); + e.allowEditing.colorValues = Default2.getBoolean(e.allowEditing.colorValues, n); + e.allowEditing.propertyNames = Default2.getBoolean(e.allowEditing.propertyNames, n); + if (t) { + e.allowEditing.propertyNames = false; + } + return e; + } + function u(e) { + e.events = Default2.getObject(e.events, {}); + e.events.onBeforeRender = Default2.getFunction(e.events.onBeforeRender, null); + e.events.onRenderComplete = Default2.getFunction(e.events.onRenderComplete, null); + e.events.onValueClick = Default2.getFunction(e.events.onValueClick, null); + e.events.onRefresh = Default2.getFunction(e.events.onRefresh, null); + e.events.onCopyAll = Default2.getFunction(e.events.onCopyAll, null); + e.events.onOpenAll = Default2.getFunction(e.events.onOpenAll, null); + e.events.onCloseAll = Default2.getFunction(e.events.onCloseAll, null); + e.events.onDestroy = Default2.getFunction(e.events.onDestroy, null); + e.events.onBooleanRender = Default2.getFunction(e.events.onBooleanRender, null); + e.events.onDecimalRender = Default2.getFunction(e.events.onDecimalRender, null); + e.events.onNumberRender = Default2.getFunction(e.events.onNumberRender, null); + e.events.onBigIntRender = Default2.getFunction(e.events.onBigIntRender, null); + e.events.onStringRender = Default2.getFunction(e.events.onStringRender, null); + e.events.onDateRender = Default2.getFunction(e.events.onDateRender, null); + e.events.onFunctionRender = Default2.getFunction(e.events.onFunctionRender, null); + e.events.onNullRender = Default2.getFunction(e.events.onNullRender, null); + e.events.onUnknownRender = Default2.getFunction(e.events.onUnknownRender, null); + e.events.onSymbolRender = Default2.getFunction(e.events.onSymbolRender, null); + e.events.onCopyJsonReplacer = Default2.getFunction(e.events.onCopyJsonReplacer, null); + e.events.onUndefinedRender = Default2.getFunction(e.events.onUndefinedRender, null); + e.events.onGuidRender = Default2.getFunction(e.events.onGuidRender, null); + e.events.onColorRender = Default2.getFunction(e.events.onColorRender, null); + e.events.onJsonEdit = Default2.getFunction(e.events.onJsonEdit, null); + e.events.onRegExpRender = Default2.getFunction(e.events.onRegExpRender, null); + return e; + } + })(t = e.Options || (e.Options = {})); })(Binding || (Binding = {})); var Config; -((e) => { +(e => { let t; - ((e) => { + (e => { function t(e = null) { - let t = Default.getObject(e, {}); - t.safeMode = Default.getBoolean(t.safeMode, true); - t.domElementTypes = Default.getStringOrArray(t.domElementTypes, ['*']); + let t = Default2.getObject(e, {}); + t.safeMode = Default2.getBoolean(t.safeMode, true); + t.domElementTypes = Default2.getStringOrArray(t.domElementTypes, [ "*" ]); t = n(t); return t; } e.get = t; function n(e) { - e.text = Default.getObject(e.text, {}); - e.text.objectText = Default.getAnyString(e.text.objectText, 'object'); - e.text.arrayText = Default.getAnyString(e.text.arrayText, 'array'); - e.text.closeAllButtonText = Default.getAnyString(e.text.closeAllButtonText, 'Close All'); - e.text.openAllButtonText = Default.getAnyString(e.text.openAllButtonText, 'Open All'); - e.text.copyAllButtonText = Default.getAnyString(e.text.copyAllButtonText, 'Copy All'); - e.text.objectErrorText = Default.getAnyString(e.text.objectErrorText, 'Errors in object: {{error_1}}, {{error_2}}'); - e.text.attributeNotValidErrorText = Default.getAnyString( - e.text.attributeNotValidErrorText, - "The attribute '{{attribute_name}}' is not a valid object.", - ); - e.text.attributeNotSetErrorText = Default.getAnyString( - e.text.attributeNotSetErrorText, - "The attribute '{{attribute_name}}' has not been set correctly.", - ); - e.text.stText = Default.getAnyString(e.text.stText, 'st'); - e.text.ndText = Default.getAnyString(e.text.ndText, 'nd'); - e.text.rdText = Default.getAnyString(e.text.rdText, 'rd'); - e.text.thText = Default.getAnyString(e.text.thText, 'th'); - e.text.ellipsisText = Default.getAnyString(e.text.ellipsisText, '...'); - e.text.closeAllButtonSymbolText = Default.getAnyString(e.text.closeAllButtonSymbolText, '↑'); - e.text.openAllButtonSymbolText = Default.getAnyString(e.text.openAllButtonSymbolText, '↓'); - e.text.copyAllButtonSymbolText = Default.getAnyString(e.text.copyAllButtonSymbolText, '❐'); - e.text.backButtonText = Default.getAnyString(e.text.backButtonText, 'Back'); - e.text.nextButtonText = Default.getAnyString(e.text.nextButtonText, 'Next'); - e.text.backButtonSymbolText = Default.getAnyString(e.text.backButtonSymbolText, '←'); - e.text.nextButtonSymbolText = Default.getAnyString(e.text.nextButtonSymbolText, '→'); + e.text = Default2.getObject(e.text, {}); + e.text.objectText = Default2.getAnyString(e.text.objectText, "object"); + e.text.arrayText = Default2.getAnyString(e.text.arrayText, "array"); + e.text.mapText = Default2.getAnyString(e.text.mapText, "map"); + e.text.setText = Default2.getAnyString(e.text.setText, "set"); + e.text.closeAllButtonText = Default2.getAnyString(e.text.closeAllButtonText, "Close All"); + e.text.openAllButtonText = Default2.getAnyString(e.text.openAllButtonText, "Open All"); + e.text.copyAllButtonText = Default2.getAnyString(e.text.copyAllButtonText, "Copy All"); + e.text.objectErrorText = Default2.getAnyString(e.text.objectErrorText, "Errors in object: {{error_1}}, {{error_2}}"); + e.text.attributeNotValidErrorText = Default2.getAnyString(e.text.attributeNotValidErrorText, "The attribute '{{attribute_name}}' is not a valid object."); + e.text.attributeNotSetErrorText = Default2.getAnyString(e.text.attributeNotSetErrorText, "The attribute '{{attribute_name}}' has not been set correctly."); + e.text.stText = Default2.getAnyString(e.text.stText, "st"); + e.text.ndText = Default2.getAnyString(e.text.ndText, "nd"); + e.text.rdText = Default2.getAnyString(e.text.rdText, "rd"); + e.text.thText = Default2.getAnyString(e.text.thText, "th"); + e.text.ellipsisText = Default2.getAnyString(e.text.ellipsisText, "..."); + e.text.closeAllButtonSymbolText = Default2.getAnyString(e.text.closeAllButtonSymbolText, "↑"); + e.text.openAllButtonSymbolText = Default2.getAnyString(e.text.openAllButtonSymbolText, "↓"); + e.text.copyAllButtonSymbolText = Default2.getAnyString(e.text.copyAllButtonSymbolText, "❐"); + e.text.backButtonText = Default2.getAnyString(e.text.backButtonText, "Back"); + e.text.nextButtonText = Default2.getAnyString(e.text.nextButtonText, "Next"); + e.text.backButtonSymbolText = Default2.getAnyString(e.text.backButtonSymbolText, "←"); + e.text.nextButtonSymbolText = Default2.getAnyString(e.text.nextButtonSymbolText, "→"); + e.text.noJsonToViewText = Default2.getAnyString(e.text.noJsonToViewText, "There is currently no JSON to view."); + e.text.functionText = Default2.getAnyString(e.text.functionText, "function"); if (Is.invalidOptionArray(e.text.dayNames, 7)) { - e.text.dayNames = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']; + e.text.dayNames = [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" ]; } if (Is.invalidOptionArray(e.text.dayNamesAbbreviated, 7)) { - e.text.dayNamesAbbreviated = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']; + e.text.dayNamesAbbreviated = [ "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun" ]; } if (Is.invalidOptionArray(e.text.monthNames, 12)) { - e.text.monthNames = [ - 'January', - 'February', - 'March', - 'April', - 'May', - 'June', - 'July', - 'August', - 'September', - 'October', - 'November', - 'December', - ]; + e.text.monthNames = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ]; } if (Is.invalidOptionArray(e.text.monthNamesAbbreviated, 12)) { - e.text.monthNamesAbbreviated = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; + e.text.monthNamesAbbreviated = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ]; } return e; } - })((t = e.Options || (e.Options = {}))); + })(t = e.Options || (e.Options = {})); })(Config || (Config = {})); var Trigger; -((e) => { +(e => { function t(e, ...t) { let n = null; if (Is.definedFunction(e)) { @@ -397,531 +575,1096 @@ var Trigger; e.customEvent = t; })(Trigger || (Trigger = {})); +var ToolTip; + +(e => { + function t(e) { + if (!Is.defined(e._currentView.tooltip)) { + e._currentView.tooltip = DomElement.create(document.body, "div", "jsontree-js-tooltip"); + e._currentView.tooltip.style.display = "none"; + n(e); + } + } + e.renderControl = t; + function n(e, t = true) { + let n = t ? window.addEventListener : window.removeEventListener; + let o = t ? document.addEventListener : document.removeEventListener; + n("mousemove", (() => l(e))); + o("scroll", (() => l(e))); + } + e.assignToEvents = n; + function o(e, t, n, o = "jsontree-js-tooltip") { + if (e !== null) { + e.onmousemove = e => r(e, t, n, o); + } + } + e.add = o; + function r(e, t, n, o) { + DomElement.cancelBubble(e); + l(t); + t._currentView.tooltipTimerId = setTimeout((() => { + t._currentView.tooltip.className = o; + t._currentView.tooltip.innerHTML = n; + t._currentView.tooltip.style.display = "block"; + DomElement.showElementAtMousePosition(e, t._currentView.tooltip, t.tooltip.offset); + }), t.tooltip.delay); + } + e.show = r; + function l(e) { + if (Is.defined(e._currentView.tooltip)) { + if (e._currentView.tooltipTimerId !== 0) { + clearTimeout(e._currentView.tooltipTimerId); + e._currentView.tooltipTimerId = 0; + } + if (e._currentView.tooltip.style.display !== "none") { + e._currentView.tooltip.style.display = "none"; + } + } + } + e.hide = l; + function i(e) { + if (Is.defined(e._currentView.tooltip)) { + e._currentView.tooltip.parentNode.removeChild(e._currentView.tooltip); + } + } + e.remove = i; +})(ToolTip || (ToolTip = {})); + (() => { - let _configuration = {}; - let _elements_Data = {}; - function render() { - const e = _configuration.domElementTypes; - const t = e.length; - for (let n = 0; n < t; n++) { - const t = document.getElementsByTagName(e[n]); - const r = [].slice.call(t); - const o = r.length; - for (let e = 0; e < o; e++) { - if (!renderElement(r[e])) { + let e = {}; + let t = {}; + let n = 0; + function o() { + const t = e.domElementTypes; + const n = t.length; + for (let e = 0; e < n; e++) { + const n = document.getElementsByTagName(t[e]); + const o = [].slice.call(n); + const l = o.length; + for (let e = 0; e < l; e++) { + if (!r(o[e])) { break; } } } } - function renderElement(e) { - let t = true; - if (Is.defined(e) && e.hasAttribute(Constants.JSONTREE_JS_ATTRIBUTE_NAME)) { - const n = e.getAttribute(Constants.JSONTREE_JS_ATTRIBUTE_NAME); - if (Is.definedString(n)) { - const r = getObjectFromString(n); + function r(t) { + let n = true; + if (Is.defined(t) && t.hasAttribute(Constants.JSONTREE_JS_ATTRIBUTE_NAME)) { + const o = t.getAttribute(Constants.JSONTREE_JS_ATTRIBUTE_NAME); + if (Is.definedString(o)) { + const r = Default2.getObjectFromString(o, e); if (r.parsed && Is.definedObject(r.object)) { - renderControl(Binding.Options.getForNewInstance(r.object, e)); + l(Binding.Options.getForNewInstance(r.object, t)); } else { - if (!_configuration.safeMode) { - console.error( - _configuration.text.attributeNotValidErrorText.replace( - '{{attribute_name}}', - Constants.JSONTREE_JS_ATTRIBUTE_NAME, - ), - ); - t = false; + if (!e.safeMode) { + console.error(e.text.attributeNotValidErrorText.replace("{{attribute_name}}", Constants.JSONTREE_JS_ATTRIBUTE_NAME)); + n = false; } } } else { - if (!_configuration.safeMode) { - console.error( - _configuration.text.attributeNotSetErrorText.replace('{{attribute_name}}', Constants.JSONTREE_JS_ATTRIBUTE_NAME), - ); - t = false; + if (!e.safeMode) { + console.error(e.text.attributeNotSetErrorText.replace("{{attribute_name}}", Constants.JSONTREE_JS_ATTRIBUTE_NAME)); + n = false; } } } - return t; + return n; } - function renderControl(e) { + function l(e) { Trigger.customEvent(e.events.onBeforeRender, e._currentView.element); + ToolTip.renderControl(e); if (!Is.definedString(e._currentView.element.id)) { - e._currentView.element.id = Str.newGuid(); + e._currentView.element.id = crypto.randomUUID(); + e._currentView.idSet = true; } - e._currentView.element.className = 'json-tree-js'; + e._currentView.element.className = "json-tree-js"; e._currentView.element.removeAttribute(Constants.JSONTREE_JS_ATTRIBUTE_NAME); - if (!_elements_Data.hasOwnProperty(e._currentView.element.id)) { - _elements_Data[e._currentView.element.id] = e; + if (e.enableFullScreenToggling && e.openInFullScreenMode) { + DomElement.addClass(e._currentView.element, "full-screen"); } - renderControlContainer(e); + if (!t.hasOwnProperty(e._currentView.element.id)) { + t[e._currentView.element.id] = e; + n++; + } + i(e); + p(e); Trigger.customEvent(e.events.onRenderComplete, e._currentView.element); } - function renderControlContainer(e) { - let t = _elements_Data[e._currentView.element.id].data; - e._currentView.element.innerHTML = ''; - renderControlTitleBar(e, t); - if (e.showArrayItemsAsSeparateObjects) { - t = t[e._currentView.dataArrayCurrentIndex]; - } - if (Is.definedObject(t) && !Is.definedArray(t)) { - renderObject(e._currentView.element, e, t, true); - } else if (Is.definedArray(t)) { - renderArray(e._currentView.element, e, t); - } - } - function renderControlTitleBar(e, t) { - if (e.title.show || e.title.showTreeControls || e.title.showCopyButton) { - const n = DomElement.create(e._currentView.element, 'div', 'title-bar'); - const r = DomElement.create(n, 'div', 'controls'); - if (e.title.show) { - DomElement.createWithHTML(n, 'div', 'title', e.title.text, r); - } - if (e.title.showCopyButton) { - const t = DomElement.createWithHTML(r, 'button', 'copy-all', _configuration.text.copyAllButtonSymbolText); - t.title = _configuration.text.copyAllButtonText; - t.onclick = () => { - let t = null; - if (e.copyOnlyCurrentPage && e.showArrayItemsAsSeparateObjects) { - t = JSON.stringify(_elements_Data[e._currentView.element.id].data[e._currentView.dataArrayCurrentIndex], null, 2); - } else { - t = JSON.stringify(_elements_Data[e._currentView.element.id].data, null, 2); - } - navigator.clipboard.writeText(t); - Trigger.customEvent(e.events.onCopyAll, t); - }; + function i(n, o = false) { + let r = t[n._currentView.element.id].data; + ToolTip.hide(n); + n._currentView.element.innerHTML = ""; + n._currentView.editMode = false; + n._currentView.contentPanelsIndex = 0; + a(n, r); + const l = DomElement.create(n._currentView.element, "div", "contents"); + if (o) { + DomElement.addClass(l, "page-switch"); + } + F(l, n); + if (n.showArrayItemsAsSeparateObjects && Is.definedArray(r)) { + r = r[n._currentView.dataArrayCurrentIndex]; + } + if (Is.definedArray(r) || Is.definedSet(r)) { + y(l, n, r); + } else if (Is.definedObject(r)) { + b(l, n, r); + } + if (l.innerHTML === "") { + DomElement.createWithHTML(l, "span", "no-json-text", e.text.noJsonToViewText); + n._currentView.titleBarButtons.style.display = "none"; + } else { + n._currentView.titleBarButtons.style.display = "block"; + } + } + function a(t, n) { + if (t.title.show || t.title.showTreeControls || t.title.showCopyButton) { + const o = DomElement.create(t._currentView.element, "div", "title-bar"); + if (t.enableFullScreenToggling) { + o.ondblclick = () => s(t); } - if (e.title.showTreeControls) { - const t = DomElement.createWithHTML(r, 'button', 'openAll', _configuration.text.openAllButtonSymbolText); - t.title = _configuration.text.openAllButtonText; - const n = DomElement.createWithHTML(r, 'button', 'closeAll', _configuration.text.closeAllButtonSymbolText); - n.title = _configuration.text.closeAllButtonText; - t.onclick = () => { - openAllNodes(e); - }; - n.onclick = () => { - closeAllNodes(e); - }; + t._currentView.titleBarButtons = DomElement.create(o, "div", "controls"); + if (t.title.show) { + DomElement.createWithHTML(o, "div", "title", t.title.text, t._currentView.titleBarButtons); + } + if (t.title.showCopyButton) { + const o = DomElement.createWithHTML(t._currentView.titleBarButtons, "button", "copy-all", e.text.copyAllButtonSymbolText); + o.onclick = () => u(t, n); + o.ondblclick = DomElement.cancelBubble; + ToolTip.add(o, t, e.text.copyAllButtonText); + } + if (t.title.showTreeControls) { + const n = DomElement.createWithHTML(t._currentView.titleBarButtons, "button", "openAll", e.text.openAllButtonSymbolText); + n.onclick = () => c(t); + n.ondblclick = DomElement.cancelBubble; + ToolTip.add(n, t, e.text.openAllButtonText); + const o = DomElement.createWithHTML(t._currentView.titleBarButtons, "button", "closeAll", e.text.closeAllButtonSymbolText); + o.onclick = () => d(t); + o.ondblclick = DomElement.cancelBubble; + ToolTip.add(o, t, e.text.closeAllButtonText); } - if (e.showArrayItemsAsSeparateObjects && Is.definedArray(t) && t.length > 1) { - const n = DomElement.createWithHTML(r, 'button', 'back', _configuration.text.backButtonSymbolText); - n.title = _configuration.text.backButtonText; - if (e._currentView.dataArrayCurrentIndex > 0) { - n.onclick = () => { - e._currentView.dataArrayCurrentIndex--; - renderControlContainer(e); - }; + if (t.showArrayItemsAsSeparateObjects && Is.definedArray(n) && n.length > 1) { + t._currentView.backButton = DomElement.createWithHTML(t._currentView.titleBarButtons, "button", "back", e.text.backButtonSymbolText); + t._currentView.backButton.ondblclick = DomElement.cancelBubble; + ToolTip.add(t._currentView.backButton, t, e.text.backButtonText); + if (t._currentView.dataArrayCurrentIndex > 0) { + t._currentView.backButton.onclick = () => f(t); } else { - n.disabled = true; - } - const o = DomElement.createWithHTML(r, 'button', 'next', _configuration.text.nextButtonSymbolText); - o.title = _configuration.text.nextButtonText; - if (e._currentView.dataArrayCurrentIndex < t.length - 1) { - o.onclick = () => { - e._currentView.dataArrayCurrentIndex++; - renderControlContainer(e); - }; + t._currentView.backButton.disabled = true; + } + t._currentView.nextButton = DomElement.createWithHTML(t._currentView.titleBarButtons, "button", "next", e.text.nextButtonSymbolText); + t._currentView.nextButton.ondblclick = DomElement.cancelBubble; + ToolTip.add(t._currentView.nextButton, t, e.text.nextButtonText); + if (t._currentView.dataArrayCurrentIndex < n.length - 1) { + t._currentView.nextButton.onclick = () => g(t); } else { - o.disabled = true; + t._currentView.nextButton.disabled = true; } } else { - e.showArrayItemsAsSeparateObjects = false; + if (Is.definedArray(n)) { + t.showArrayItemsAsSeparateObjects = false; + } } } } - function openAllNodes(e) { + function s(e) { + if (e._currentView.element.classList.contains("full-screen")) { + DomElement.removeClass(e._currentView.element, "full-screen"); + } else { + DomElement.addClass(e._currentView.element, "full-screen"); + } + } + function u(e, t) { + let n = null; + let o = m; + if (Is.definedFunction(e.events.onCopyJsonReplacer)) { + o = e.events.onCopyJsonReplacer; + } + if (e.copyOnlyCurrentPage && e.showArrayItemsAsSeparateObjects) { + n = JSON.stringify(t[e._currentView.dataArrayCurrentIndex], o, e.copyIndentSpaces); + } else { + n = JSON.stringify(t, o, e.copyIndentSpaces); + } + navigator.clipboard.writeText(n); + Trigger.customEvent(e.events.onCopyAll, n); + } + function c(e) { e.showAllAsClosed = false; - renderControlContainer(e); + e._currentView.contentPanelsOpen = {}; + i(e); Trigger.customEvent(e.events.onOpenAll, e._currentView.element); } - function closeAllNodes(e) { + function d(e) { e.showAllAsClosed = true; - renderControlContainer(e); + e._currentView.contentPanelsOpen = {}; + i(e); Trigger.customEvent(e.events.onCloseAll, e._currentView.element); } - function renderObject(e, t, n, r = false) { - const o = DomElement.create(e, 'div', 'object-type-title'); - const l = DomElement.create(e, 'div', 'object-type-contents'); - const a = t.showArrowToggles ? DomElement.create(o, 'div', 'down-arrow') : null; - const i = renderObjectValues(a, l, t, n); - const s = DomElement.createWithHTML(o, 'span', t.showValueColors ? 'object' : '', _configuration.text.objectText); - if (r && t.showArrayItemsAsSeparateObjects) { - let e = t.useZeroIndexingForArrays - ? t._currentView.dataArrayCurrentIndex.toString() - : (t._currentView.dataArrayCurrentIndex + 1).toString(); - DomElement.createWithHTML(o, 'span', t.showValueColors ? 'object data-array-index' : 'data-array-index', `[${e}]:`, s); - } - if (t.showCounts && i > 0) { - DomElement.createWithHTML(o, 'span', t.showValueColors ? 'object count' : 'count', `{${i}}`); - } - } - function renderArray(e, t, n) { - const r = DomElement.create(e, 'div', 'object-type-title'); - const o = DomElement.create(e, 'div', 'object-type-contents'); - const l = t.showArrowToggles ? DomElement.create(r, 'div', 'down-arrow') : null; - DomElement.createWithHTML(r, 'span', t.showValueColors ? 'array' : '', _configuration.text.arrayText); - renderArrayValues(l, o, t, n); - if (t.showCounts) { - DomElement.createWithHTML(r, 'span', t.showValueColors ? 'array count' : 'count', `[${n.length}]`); - } - } - function renderObjectValues(e, t, n, r) { - let o = 0; - let l = []; - for (let e in r) { - if (r.hasOwnProperty(e)) { - l.push(e); + function f(e) { + if (e._currentView.backButton !== null && !e._currentView.backButton.disabled) { + e._currentView.dataArrayCurrentIndex--; + i(e, true); + Trigger.customEvent(e.events.onBackPage, e._currentView.element); + } + } + function g(e) { + if (e._currentView.nextButton !== null && !e._currentView.nextButton.disabled) { + e._currentView.dataArrayCurrentIndex++; + i(e, true); + Trigger.customEvent(e.events.onNextPage, e._currentView.element); + } + } + function m(t, n) { + if (Is.definedBigInt(n)) { + n = n.toString(); + } else if (Is.definedSymbol(n)) { + n = n.toString(); + } else if (Is.definedFunction(n)) { + n = Default2.getFunctionName(n, e); + } + return n; + } + function p(e, t = true) { + const n = t ? document.addEventListener : document.removeEventListener; + n("keydown", (t => w(t, e))); + } + function w(e, o) { + if (o.shortcutKeysEnabled && n === 1 && t.hasOwnProperty(o._currentView.element.id)) { + if (e.code === "ArrowLeft") { + e.preventDefault(); + f(o); + } else if (e.code === "ArrowRight") { + e.preventDefault(); + g(o); + } else if (e.code === "ArrowUp") { + e.preventDefault(); + d(o); + } else if (e.code === "ArrowDown") { + e.preventDefault(); + c(o); } } - if (n.sortPropertyNames) { - l = l.sort(); - if (!n.sortPropertyNamesInAlphabeticalOrder) { - l = l.reverse(); + } + function b(t, n, o) { + const r = Is.definedMap(o); + const l = r ? "map" : "object"; + const i = r ? Default2.getObjectFromMap(o) : o; + const a = _(i, n); + const s = a.length; + if (s !== 0 || !n.ignore.emptyObjects) { + const u = DomElement.create(t, "div", "object-type-title"); + const c = DomElement.create(t, "div", "object-type-contents last-item"); + const d = n.showArrowToggles ? DomElement.create(u, "div", "down-arrow") : null; + const f = DomElement.createWithHTML(u, "span", n.showValueColors ? `${l} main-title` : "main-title", r ? e.text.mapText : e.text.objectText); + let g = null; + if (n.showArrayItemsAsSeparateObjects) { + let e = n.useZeroIndexingForArrays ? n._currentView.dataArrayCurrentIndex.toString() : (n._currentView.dataArrayCurrentIndex + 1).toString(); + if (n.showArrayIndexBrackets) { + e = `[${e}]${" "}:`; + } + DomElement.createWithHTML(u, "span", n.showValueColors ? `${l} data-array-index` : "data-array-index", e, f); + } + if (n.showCounts && s > 0) { + DomElement.createWithHTML(u, "span", n.showValueColors ? `${l} count` : "count", `{${s}}`); } + if (n.showOpeningClosingCurlyBraces) { + g = DomElement.createWithHTML(u, "span", "opening-symbol", "{"); + } + D(d, null, c, n, i, a, g, false, true, ""); + E(n, f, o, l, false); } - const a = l.length; - for (let e = 0; e < a; e++) { - const i = l[e]; - if (r.hasOwnProperty(i)) { - renderValue(t, n, i, r[i], e === a - 1); - o++; + } + function y(t, n, o) { + const r = Is.definedSet(o); + const l = r ? "set" : "array"; + const i = r ? Default2.getArrayFromSet(o) : o; + const a = DomElement.create(t, "div", "object-type-title"); + const s = DomElement.create(t, "div", "object-type-contents last-item"); + const u = n.showArrowToggles ? DomElement.create(a, "div", "down-arrow") : null; + const c = DomElement.createWithHTML(a, "span", n.showValueColors ? `${l} main-title` : "main-title", r ? e.text.setText : e.text.arrayText); + let d = null; + if (n.showCounts) { + DomElement.createWithHTML(a, "span", n.showValueColors ? `${l} count` : "count", `[${i.length}]`); + } + if (n.showOpeningClosingCurlyBraces) { + d = DomElement.createWithHTML(a, "span", "opening-symbol", "["); + } + T(u, null, s, n, i, d, false, true, ""); + E(n, c, o, l, false); + } + function D(e, t, n, o, r, l, i, a, s, u) { + const c = l.length; + for (let e = 0; e < c; e++) { + const t = l[e]; + const i = u === "" ? t : `${u}${"\\"}${t}`; + if (r.hasOwnProperty(t)) { + v(r, n, o, t, r[t], e === c - 1, false, i); } } - addArrowEvent(n, e, t); - return o; + if (o.showOpeningClosingCurlyBraces) { + O(o, n, "}", a, s); + } + S(o, e, t, n, i); } - function renderArrayValues(e, t, n, r) { - const o = r.length; - if (!n.reverseArrayValues) { - for (let e = 0; e < o; e++) { - renderValue(t, n, getIndexName(n, e, o), r[e], e === o - 1); + function T(e, t, n, o, r, l, i, a, s) { + const u = r.length; + if (!o.reverseArrayValues) { + for (let e = 0; e < u; e++) { + const t = B(e, o); + const l = s === "" ? t.toString() : `${s}${"\\"}${t}`; + v(r, n, o, I(o, t, u), r[e], e === u - 1, true, l); } } else { - for (let e = o; e--; ) { - renderValue(t, n, getIndexName(n, e, o), r[e], e === 0); - } - } - addArrowEvent(n, e, t); - } - function renderValue(e, t, n, r, o) { - const l = DomElement.create(e, 'div', 'object-type-value'); - const a = t.showArrowToggles ? DomElement.create(l, 'div', 'no-arrow') : null; - let i = null; - let s = null; - let u = false; - let c = null; - let d = true; - DomElement.createWithHTML(l, 'span', 'title', n); - DomElement.createWithHTML(l, 'span', 'split', ':'); - if (!Is.defined(r)) { - if (!t.ignore.nullValues) { - i = t.showValueColors ? 'null' : ''; - s = DomElement.createWithHTML(l, 'span', i, 'null'); - d = false; - if (Is.definedFunction(t.events.onNullRender)) { - Trigger.customEvent(t.events.onNullRender, s); - } - createComma(t, l, o); + for (let e = u; e--; ) { + const t = B(e, o); + const l = s === "" ? t.toString() : `${s}${"\\"}${t}`; + v(r, n, o, I(o, t, u), r[e], e === 0, true, l); + } + } + if (o.showOpeningClosingCurlyBraces) { + O(o, n, "]", i, a); + } + S(o, e, t, n, l); + } + function v(t, n, o, r, l, i, a, s) { + const u = DomElement.create(n, "div", "object-type-value"); + const c = o.showArrowToggles ? DomElement.create(u, "div", "no-arrow") : null; + let d = null; + let f = null; + let g = false; + let m = null; + const p = DomElement.createWithHTML(u, "span", "title", r); + let w = false; + if (i) { + DomElement.addClass(u, "last-item"); + } + DomElement.createWithHTML(u, "span", "split", ":"); + if (!a) { + h(o, t, r, p); + } + if (l === null) { + if (!o.ignore.nullValues) { + d = o.showValueColors ? `${"null"} value non-value` : "value non-value"; + f = DomElement.createWithHTML(u, "span", d, "null"); + m = "null"; + if (Is.definedFunction(o.events.onNullRender)) { + Trigger.customEvent(o.events.onNullRender, f); + } + A(o, u, i); + } else { + g = true; + } + } else if (l === void 0) { + if (!o.ignore.undefinedValues) { + d = o.showValueColors ? `${"undefined"} value non-value` : "value non-value"; + f = DomElement.createWithHTML(u, "span", d, "undefined"); + m = "undefined"; + if (Is.definedFunction(o.events.onUndefinedRender)) { + Trigger.customEvent(o.events.onUndefinedRender, f); + } + A(o, u, i); + } else { + g = true; + } + } else if (Is.definedFunction(l)) { + if (!o.ignore.functionValues) { + d = o.showValueColors ? `${"function"} value non-value` : "value non-value"; + f = DomElement.createWithHTML(u, "span", d, Default2.getFunctionName(l, e)); + m = "function"; + if (Is.definedFunction(o.events.onFunctionRender)) { + Trigger.customEvent(o.events.onFunctionRender, f); + } + A(o, u, i); } else { - u = true; + g = true; } - } else if (Is.definedFunction(r)) { - if (!t.ignore.functionValues) { - i = t.showValueColors ? 'function' : ''; - s = DomElement.createWithHTML(l, 'span', i, Default.getFunctionName(r)); - c = 'function'; - if (Is.definedFunction(t.events.onFunctionRender)) { - Trigger.customEvent(t.events.onFunctionRender, s); + } else if (Is.definedBoolean(l)) { + if (!o.ignore.booleanValues) { + d = o.showValueColors ? `${"boolean"} value` : "value"; + f = DomElement.createWithHTML(u, "span", d, l); + m = "boolean"; + w = o.allowEditing.booleanValues; + V(o, t, r, l, f, a, w); + if (Is.definedFunction(o.events.onBooleanRender)) { + Trigger.customEvent(o.events.onBooleanRender, f); } - createComma(t, l, o); + A(o, u, i); } else { - u = true; + g = true; } - } else if (Is.definedBoolean(r)) { - if (!t.ignore.booleanValues) { - i = t.showValueColors ? 'boolean' : ''; - s = DomElement.createWithHTML(l, 'span', i, r); - c = 'boolean'; - if (Is.definedFunction(t.events.onBooleanRender)) { - Trigger.customEvent(t.events.onBooleanRender, s); + } else if (Is.definedDecimal(l)) { + if (!o.ignore.decimalValues) { + const e = Default2.getFixedDecimalPlacesValue(l, o.maximumDecimalPlaces); + d = o.showValueColors ? `${"decimal"} value` : "value"; + f = DomElement.createWithHTML(u, "span", d, e); + m = "decimal"; + w = o.allowEditing.decimalValues; + V(o, t, r, l, f, a, w); + if (Is.definedFunction(o.events.onDecimalRender)) { + Trigger.customEvent(o.events.onDecimalRender, f); } - createComma(t, l, o); + A(o, u, i); } else { - u = true; - } - } else if (Is.definedDecimal(r)) { - if (!t.ignore.decimalValues) { - const e = Default.getFixedDecimalPlacesValue(r, t.maximumDecimalPlaces); - i = t.showValueColors ? 'decimal' : ''; - s = DomElement.createWithHTML(l, 'span', i, e); - c = 'decimal'; - if (Is.definedFunction(t.events.onDecimalRender)) { - Trigger.customEvent(t.events.onDecimalRender, s); - } - createComma(t, l, o); + g = true; + } + } else if (Is.definedNumber(l)) { + if (!o.ignore.numberValues) { + d = o.showValueColors ? `${"number"} value` : "value"; + f = DomElement.createWithHTML(u, "span", d, l); + m = "number"; + w = o.allowEditing.numberValues; + V(o, t, r, l, f, a, w); + if (Is.definedFunction(o.events.onNumberRender)) { + Trigger.customEvent(o.events.onNumberRender, f); + } + A(o, u, i); + } else { + g = true; + } + } else if (Is.definedBigInt(l)) { + if (!o.ignore.bigIntValues) { + d = o.showValueColors ? `${"bigint"} value` : "value"; + f = DomElement.createWithHTML(u, "span", d, l); + m = "bigint"; + w = o.allowEditing.bigIntValues; + V(o, t, r, l, f, a, w); + if (Is.definedFunction(o.events.onBigIntRender)) { + Trigger.customEvent(o.events.onBigIntRender, f); + } + A(o, u, i); } else { - u = true; + g = true; } - } else if (Is.definedNumber(r)) { - if (!t.ignore.numberValues) { - i = t.showValueColors ? 'number' : ''; - s = DomElement.createWithHTML(l, 'span', i, r); - c = 'number'; - if (Is.definedFunction(t.events.onNumberRender)) { - Trigger.customEvent(t.events.onNumberRender, s); + } else if (Is.definedString(l) && Is.String.guid(l)) { + if (!o.ignore.guidValues) { + d = o.showValueColors ? `${"guid"} value` : "value"; + f = DomElement.createWithHTML(u, "span", d, l); + m = "guid"; + w = o.allowEditing.guidValues; + V(o, t, r, l, f, a, w); + if (Is.definedFunction(o.events.onGuidRender)) { + Trigger.customEvent(o.events.onGuidRender, f); + } + A(o, u, i); + } else { + g = true; + } + } else if (Is.definedString(l) && (Is.String.hexColor(l) || Is.String.rgbColor(l))) { + if (!o.ignore.colorValues) { + d = o.showValueColors ? `${"color"} value` : "value"; + f = DomElement.createWithHTML(u, "span", d, l); + m = "color"; + w = o.allowEditing.colorValues; + if (o.showValueColors) { + f.style.color = l; + } + V(o, t, r, l, f, a, w); + if (Is.definedFunction(o.events.onColorRender)) { + Trigger.customEvent(o.events.onColorRender, f); } - createComma(t, l, o); + A(o, u, i); } else { - u = true; + g = true; } - } else if (Is.definedString(r)) { - if (!t.ignore.stringValues) { - let e = null; - if (t.showValueColors && t.showStringHexColors && Is.hexColor(r)) { - e = r; + } else if (Is.definedString(l)) { + if (!o.ignore.stringValues) { + if (o.parse.stringsToBooleans && Is.String.boolean(l)) { + v(t, n, o, r, l.toString().toLowerCase().trim() === "true", i, a, s); + g = true; + } else if (o.parse.stringsToNumbers && !isNaN(l)) { + v(t, n, o, r, parseFloat(l), i, a, s); + g = true; + } else if (o.parse.stringsToDates && Is.String.date(l)) { + v(t, n, o, r, new Date(l), i, a, s); + g = true; } else { - if (t.maximumStringLength > 0 && r.length > t.maximumStringLength) { - r = r.substring(0, t.maximumStringLength) + _configuration.text.ellipsisText; + if (o.maximumStringLength > 0 && l.length > o.maximumStringLength) { + l = l.substring(0, o.maximumStringLength) + e.text.ellipsisText; } + const n = o.showStringQuotes ? `"${l}"` : l; + d = o.showValueColors ? `${"string"} value` : "value"; + f = DomElement.createWithHTML(u, "span", d, n); + m = "string"; + w = o.allowEditing.stringValues; + V(o, t, r, l, f, a, w); + if (Is.definedFunction(o.events.onStringRender)) { + Trigger.customEvent(o.events.onStringRender, f); + } + A(o, u, i); + } + } else { + g = true; + } + } else if (Is.definedDate(l)) { + if (!o.ignore.dateValues) { + d = o.showValueColors ? `${"date"} value` : "value"; + f = DomElement.createWithHTML(u, "span", d, DateTime.getCustomFormattedDateText(e, l, o.dateTimeFormat)); + m = "date"; + w = o.allowEditing.dateValues; + V(o, t, r, l, f, a, w); + if (Is.definedFunction(o.events.onDateRender)) { + Trigger.customEvent(o.events.onDateRender, f); + } + A(o, u, i); + } else { + g = true; + } + } else if (Is.definedSymbol(l)) { + if (!o.ignore.symbolValues) { + d = o.showValueColors ? `${"symbol"} value` : "value"; + f = DomElement.createWithHTML(u, "span", d, l.toString()); + m = "symbol"; + if (Is.definedFunction(o.events.onSymbolRender)) { + Trigger.customEvent(o.events.onSymbolRender, f); + } + A(o, u, i); + } else { + g = true; + } + } else if (Is.definedRegExp(l)) { + if (!o.ignore.regExpValues) { + d = o.showValueColors ? `${"regexp"} value` : "value"; + f = DomElement.createWithHTML(u, "span", d, l.source.toString()); + m = "regexp"; + if (Is.definedFunction(o.events.onRegExpRender)) { + Trigger.customEvent(o.events.onRegExpRender, f); } - const n = t.showStringQuotes ? `"${r}"` : r; - i = t.showValueColors ? 'string' : ''; - s = DomElement.createWithHTML(l, 'span', i, n); - c = 'string'; - if (Is.definedString(e)) { - s.style.color = e; + A(o, u, i); + } else { + g = true; + } + } else if (Is.definedSet(l)) { + if (!o.ignore.setValues) { + const t = Default2.getArrayFromSet(l); + const n = DomElement.create(u, "span", o.showValueColors ? "set" : ""); + const r = DomElement.create(u, "div", "object-type-contents"); + let a = null; + if (i) { + DomElement.addClass(r, "last-item"); } - if (Is.definedFunction(t.events.onStringRender)) { - Trigger.customEvent(t.events.onStringRender, s); + f = DomElement.createWithHTML(n, "span", "main-title", e.text.setText); + m = "set"; + if (o.showCounts) { + DomElement.createWithHTML(n, "span", "count", `[${t.length}]`); } - createComma(t, l, o); + if (o.showOpeningClosingCurlyBraces) { + a = DomElement.createWithHTML(n, "span", "opening-symbol", "["); + } + let d = A(o, n, i); + T(c, d, r, o, t, a, true, i, s); } else { - u = true; + g = true; } - } else if (Is.definedDate(r)) { - if (!t.ignore.dateValues) { - i = t.showValueColors ? 'date' : ''; - s = DomElement.createWithHTML(l, 'span', i, DateTime.getCustomFormattedDateText(_configuration, r, t.dateTimeFormat)); - c = 'date'; - if (Is.definedFunction(t.events.onDateRender)) { - Trigger.customEvent(t.events.onDateRender, s); + } else if (Is.definedArray(l)) { + if (!o.ignore.arrayValues) { + const t = DomElement.create(u, "span", o.showValueColors ? "array" : ""); + const n = DomElement.create(u, "div", "object-type-contents"); + let r = null; + if (i) { + DomElement.addClass(n, "last-item"); + } + f = DomElement.createWithHTML(t, "span", "main-title", e.text.arrayText); + m = "array"; + if (o.showCounts) { + DomElement.createWithHTML(t, "span", "count", `[${l.length}]`); } - createComma(t, l, o); + if (o.showOpeningClosingCurlyBraces) { + r = DomElement.createWithHTML(t, "span", "opening-symbol", "["); + } + let a = A(o, t, i); + T(c, a, n, o, l, r, true, i, s); } else { - u = true; - } - } else if (Is.definedObject(r) && !Is.definedArray(r)) { - if (!t.ignore.objectValues) { - const e = DomElement.create(l, 'span', t.showValueColors ? 'object' : ''); - const n = DomElement.create(l, 'div', 'object-type-contents'); - const i = renderObjectValues(a, n, t, r); - DomElement.createWithHTML(e, 'span', 'title', _configuration.text.objectText); - if (t.showCounts && i > 0) { - DomElement.createWithHTML(e, 'span', 'count', `{${i}}`); - } - createComma(t, e, o); - c = 'object'; + g = true; + } + } else if (Is.definedMap(l)) { + if (!o.ignore.mapValues) { + const t = Default2.getObjectFromMap(l); + const n = _(t, o); + const r = n.length; + if (r === 0 && o.ignore.emptyObjects) { + g = true; + } else { + const l = DomElement.create(u, "span", o.showValueColors ? "map" : ""); + const a = DomElement.create(u, "div", "object-type-contents"); + let d = null; + if (i) { + DomElement.addClass(a, "last-item"); + } + f = DomElement.createWithHTML(l, "span", "main-title", e.text.mapText); + m = "map"; + if (o.showCounts && r > 0) { + DomElement.createWithHTML(l, "span", "count", `{${r}}`); + } + if (o.showOpeningClosingCurlyBraces) { + d = DomElement.createWithHTML(l, "span", "opening-symbol", "{"); + } + let g = A(o, l, i); + D(c, g, a, o, t, n, d, true, i, s); + } } else { - u = true; - } - } else if (Is.definedArray(r)) { - if (!t.ignore.arrayValues) { - const e = DomElement.create(l, 'span', t.showValueColors ? 'array' : ''); - const n = DomElement.create(l, 'div', 'object-type-contents'); - DomElement.createWithHTML(e, 'span', 'title', _configuration.text.arrayText); - if (t.showCounts) { - DomElement.createWithHTML(e, 'span', 'count', `[${r.length}]`); - } - createComma(t, e, o); - renderArrayValues(a, n, t, r); - c = 'array'; + g = true; + } + } else if (Is.definedObject(l)) { + if (!o.ignore.objectValues) { + const t = _(l, o); + const n = t.length; + if (n === 0 && o.ignore.emptyObjects) { + g = true; + } else { + const r = DomElement.create(u, "span", o.showValueColors ? "object" : ""); + const a = DomElement.create(u, "div", "object-type-contents"); + let d = null; + if (i) { + DomElement.addClass(a, "last-item"); + } + f = DomElement.createWithHTML(r, "span", "main-title", e.text.objectText); + m = "object"; + if (o.showCounts && n > 0) { + DomElement.createWithHTML(r, "span", "count", `{${n}}`); + } + if (o.showOpeningClosingCurlyBraces) { + d = DomElement.createWithHTML(r, "span", "opening-symbol", "{"); + } + let g = A(o, r, i); + D(c, g, a, o, l, t, d, true, i, s); + } } else { - u = true; + g = true; } } else { - if (!t.ignore.unknownValues) { - i = t.showValueColors ? 'unknown' : ''; - s = DomElement.createWithHTML(l, 'span', i, r.toString()); - c = 'unknown'; - if (Is.definedFunction(t.events.onUnknownRender)) { - Trigger.customEvent(t.events.onUnknownRender, s); - } - createComma(t, l, o); + if (!o.ignore.unknownValues) { + d = o.showValueColors ? `${"unknown"} value non-value` : "value non-value"; + f = DomElement.createWithHTML(u, "span", d, l.toString()); + m = "unknown"; + if (Is.definedFunction(o.events.onUnknownRender)) { + Trigger.customEvent(o.events.onUnknownRender, f); + } + A(o, u, i); } else { - u = true; + g = true; } } - if (u) { - e.removeChild(l); + if (g) { + n.removeChild(u); } else { - if (Is.defined(s)) { - addValueClickEvent(t, s, r, c, d); + if (Is.defined(f)) { + x(o, s, p, f); + E(o, f, l, m, w); } } } - function addValueClickEvent(e, t, n, r, o) { - if (o && Is.definedFunction(e.events.onValueClick)) { - t.onclick = () => { - Trigger.customEvent(e.events.onValueClick, n, r); + function x(e, t, n, o) { + if (Is.definedObject(e.valueToolTips)) { + if (!e.valueToolTips.hasOwnProperty(t)) { + const e = t.split("\\"); + const n = e.length - 1; + for (let t = 0; t < n; t++) { + e[t] = ".."; + } + t = e.join("\\"); + } + if (e.valueToolTips.hasOwnProperty(t)) { + ToolTip.add(n, e, e.valueToolTips[t], "jsontree-js-tooltip-value"); + ToolTip.add(o, e, e.valueToolTips[t], "jsontree-js-tooltip-value"); + } + } + } + function h(e, t, n, o) { + if (e.allowEditing.propertyNames) { + o.ondblclick = () => { + clearTimeout(e._currentView.valueClickTimerId); + e._currentView.valueClickTimerId = 0; + e._currentView.editMode = true; + DomElement.addClass(o, "editable"); + o.setAttribute("contenteditable", "true"); + o.focus(); + DomElement.selectAllText(o); + o.onblur = () => i(e, false); + o.onkeydown = r => { + if (r.code == "Escape") { + r.preventDefault(); + o.setAttribute("contenteditable", "false"); + } else if (r.code == "Enter") { + r.preventDefault(); + const l = o.innerText; + if (l !== n) { + if (l.trim() === "") { + delete t[n]; + } else { + if (!t.hasOwnProperty(l)) { + const e = t[n]; + delete t[n]; + t[l] = e; + } + } + Trigger.customEvent(e.events.onJsonEdit, e._currentView.element); + } + o.setAttribute("contenteditable", "false"); + } + }; }; - } else { - DomElement.addClass(t, 'no-hover'); } } - function addArrowEvent(e, t, n) { - if (Is.defined(t)) { + function V(e, t, n, o, r, l, a) { + if (a) { + r.ondblclick = () => { + clearTimeout(e._currentView.valueClickTimerId); + e._currentView.valueClickTimerId = 0; + e._currentView.editMode = true; + DomElement.addClass(r, "editable"); + r.setAttribute("contenteditable", "true"); + if (Is.definedDate(o) && !e.includeTimeZoneInDateTimeEditing) { + r.innerText = JSON.stringify(o).replace(/['"]+/g, ""); + } else { + r.innerText = o.toString(); + } + r.focus(); + DomElement.selectAllText(r); + r.onblur = () => i(e, false); + r.onkeydown = i => { + if (i.code == "Escape") { + i.preventDefault(); + r.setAttribute("contenteditable", "false"); + } else if (i.code == "Enter") { + i.preventDefault(); + const a = r.innerText; + if (a.trim() === "") { + if (l) { + t.splice(C(n), 1); + } else { + delete t[n]; + } + } else { + let r = null; + if (Is.definedBoolean(o)) { + r = a.toLowerCase() === "true"; + } else if (Is.definedDecimal(o) && !isNaN(+a)) { + r = parseFloat(a); + } else if (Is.definedNumber(o) && !isNaN(+a)) { + r = parseInt(a); + } else if (Is.definedString(o)) { + r = a; + } else if (Is.definedDate(o)) { + r = new Date(a); + } else if (Is.definedBigInt(o)) { + r = BigInt(a); + } + if (r !== null) { + if (l) { + t[C(n)] = r; + } else { + t[n] = r; + } + Trigger.customEvent(e.events.onJsonEdit, e._currentView.element); + } + } + r.setAttribute("contenteditable", "false"); + } + }; + }; + } + } + function E(e, t, n, o, r) { + if (Is.definedFunction(e.events.onValueClick)) { t.onclick = () => { - if (t.className === 'down-arrow') { - n.style.display = 'none'; - t.className = 'right-arrow'; + if (r) { + e._currentView.valueClickTimerId = setTimeout((() => { + if (!e._currentView.editMode) { + Trigger.customEvent(e.events.onValueClick, n, o); + } + }), e.editingValueClickDelay); } else { - n.style.display = 'block'; - t.className = 'down-arrow'; + Trigger.customEvent(e.events.onValueClick, n, o); } }; - if (e.showAllAsClosed) { - n.style.display = 'none'; - t.className = 'right-arrow'; + } else { + DomElement.addClass(t, "no-hover"); + } + } + function S(e, t, n, o, r) { + const l = e._currentView.contentPanelsIndex; + const i = e._currentView.dataArrayCurrentIndex; + if (!e._currentView.contentPanelsOpen.hasOwnProperty(i)) { + e._currentView.contentPanelsOpen[i] = {}; + } + const a = () => { + o.style.display = "none"; + e._currentView.contentPanelsOpen[i][l] = true; + if (Is.defined(t)) { + t.className = "right-arrow"; + } + if (Is.defined(r)) { + r.style.display = "none"; + } + if (Is.defined(n)) { + n.style.display = "inline-block"; + } + }; + const s = () => { + o.style.display = "block"; + e._currentView.contentPanelsOpen[i][l] = false; + if (Is.defined(t)) { + t.className = "down-arrow"; + } + if (Is.defined(r)) { + r.style.display = "inline-block"; + } + if (Is.defined(n)) { + n.style.display = "none"; + } + }; + const u = e => { + if (e) { + a(); } else { - t.className = 'down-arrow'; + s(); } + }; + let c = e.showAllAsClosed; + if (e._currentView.contentPanelsOpen[i].hasOwnProperty(l)) { + c = e._currentView.contentPanelsOpen[i][l]; + } else { + e._currentView.contentPanelsOpen[i][l] = c; } + if (Is.defined(t)) { + t.onclick = () => u(t.className === "down-arrow"); + } + u(c); + e._currentView.contentPanelsIndex++; } - function createComma(e, t, n) { + function A(e, t, n) { + let o = null; if (e.showCommas && !n) { - DomElement.createWithHTML(t, 'span', 'comma', ','); + o = DomElement.createWithHTML(t, "span", "comma", ","); } + return o; } - function getIndexName(e, t, n) { - let r = e.useZeroIndexingForArrays ? t.toString() : (t + 1).toString(); + function B(e, t) { + return t.useZeroIndexingForArrays ? e : e + 1; + } + function I(e, t, n) { + let o = t.toString(); if (!e.addArrayIndexPadding) { - r = Str.padNumber(parseInt(r), n.toString().length); + o = Str.padNumber(parseInt(o), n.toString().length); + } + if (e.showArrayIndexBrackets) { + o = `[${o}]`; } - return `[${r}]`; + return o; } - function getObjectFromString(objectString) { - const result = { - parsed: true, - object: null, - }; - try { - if (Is.definedString(objectString)) { - result.object = JSON.parse(objectString); + function C(e) { + return parseInt(e.replace("[", "").replace("]", "")); + } + function _(e, t) { + let n = []; + for (let t in e) { + if (e.hasOwnProperty(t)) { + n.push(t); } - } catch (e1) { - try { - result.object = eval(`(${objectString})`); - if (Is.definedFunction(result.object)) { - result.object = result.object(); - } - } catch (e) { - if (!_configuration.safeMode) { - console.error(_configuration.text.objectErrorText.replace('{{error_1}}', e1.message).replace('{{error_2}}', e.message)); - result.parsed = false; + } + if (t.sortPropertyNames) { + let e = new Intl.Collator(void 0, { + numeric: true, + sensitivity: "base" + }); + n = n.sort(e.compare); + if (!t.sortPropertyNamesInAlphabeticalOrder) { + n = n.reverse(); + } + } + return n; + } + function O(e, t, n, o, r) { + let l = DomElement.create(t, "div", "closing-symbol"); + if (o && e.showArrowToggles) { + DomElement.create(l, "div", "no-arrow"); + } + DomElement.createWithHTML(l, "div", "object-type-end", n); + A(e, l, r); + } + function F(e, t) { + if (t.fileDroppingEnabled) { + e.ondragover = DomElement.cancelBubble; + e.ondragenter = DomElement.cancelBubble; + e.ondragleave = DomElement.cancelBubble; + e.ondrop = e => { + DomElement.cancelBubble(e); + if (Is.defined(window.FileReader) && e.dataTransfer.files.length > 0) { + j(e.dataTransfer.files, t); } - result.object = null; + }; + } + } + function j(e, t) { + const n = e.length; + let o = 0; + let r = []; + const l = e => { + o++; + r.push(e); + if (o === n) { + t._currentView.dataArrayCurrentIndex = 0; + t._currentView.contentPanelsOpen = {}; + t.data = r.length === 1 ? r[0] : r; + i(t); + Trigger.customEvent(t.events.onSetJson, t._currentView.element); + } + }; + for (let t = 0; t < n; t++) { + const n = e[t]; + const o = n.name.split(".").pop().toLowerCase(); + if (o === "json") { + N(n, l); } } - return result; } - function destroyElement(e) { - e._currentView.element.innerHTML = ''; - e._currentView.element.className = ''; + function N(t, n) { + const o = new FileReader; + let r = null; + o.onloadend = () => n(r); + o.onload = t => { + const n = Default2.getObjectFromString(t.target.result, e); + if (n.parsed && Is.definedObject(n.object)) { + r = n.object; + } + }; + o.readAsText(t); + } + function M(e) { + e._currentView.element.innerHTML = ""; + DomElement.removeClass(e._currentView.element, "json-tree-js"); + if (e._currentView.element.className.trim() === "") { + e._currentView.element.removeAttribute("class"); + } + if (e._currentView.idSet) { + e._currentView.element.removeAttribute("id"); + } + p(e, false); + ToolTip.assignToEvents(e, false); + ToolTip.remove(e); Trigger.customEvent(e.events.onDestroy, e._currentView.element); } - const _public = { - refresh: function (e) { - if (Is.definedString(e) && _elements_Data.hasOwnProperty(e)) { - const t = _elements_Data[e]; - renderControlContainer(t); - Trigger.customEvent(t.events.onRefresh, t._currentView.element); + const R = { + refresh: function(e) { + if (Is.definedString(e) && t.hasOwnProperty(e)) { + const n = t[e]; + i(n); + Trigger.customEvent(n.events.onRefresh, n._currentView.element); } - return _public; + return R; }, - refreshAll: function () { - for (let e in _elements_Data) { - if (_elements_Data.hasOwnProperty(e)) { - const t = _elements_Data[e]; - renderControlContainer(t); - Trigger.customEvent(t.events.onRefresh, t._currentView.element); + refreshAll: function() { + for (let e in t) { + if (t.hasOwnProperty(e)) { + const n = t[e]; + i(n); + Trigger.customEvent(n.events.onRefresh, n._currentView.element); } } - return _public; + return R; }, - render: function (e, t) { + render: function(e, t) { if (Is.definedObject(e) && Is.definedObject(t)) { - renderControl(Binding.Options.getForNewInstance(t, e)); + l(Binding.Options.getForNewInstance(t, e)); } - return _public; + return R; }, - renderAll: function () { - render(); - return _public; + renderAll: function() { + o(); + return R; }, - openAll: function (e) { - if (Is.definedString(e) && _elements_Data.hasOwnProperty(e)) { - openAllNodes(_elements_Data[e]); + openAll: function(e) { + if (Is.definedString(e) && t.hasOwnProperty(e)) { + c(t[e]); } - return _public; + return R; }, - closeAll: function (e) { - if (Is.definedString(e) && _elements_Data.hasOwnProperty(e)) { - closeAllNodes(_elements_Data[e]); + closeAll: function(e) { + if (Is.definedString(e) && t.hasOwnProperty(e)) { + d(t[e]); } - return _public; + return R; }, - destroy: function (e) { - if (Is.definedString(e) && _elements_Data.hasOwnProperty(e)) { - destroyElement(_elements_Data[e]); - delete _elements_Data[e]; + setJson: function(n, o) { + if (Is.definedString(n) && Is.defined(o) && t.hasOwnProperty(n)) { + let r = null; + if (Is.definedString(o)) { + const t = Default2.getObjectFromString(o, e); + if (t.parsed) { + r = t.object; + } + } else { + r = o; + } + const l = t[n]; + l._currentView.dataArrayCurrentIndex = 0; + l._currentView.contentPanelsOpen = {}; + l.data = r; + i(l); + Trigger.customEvent(l.events.onSetJson, l._currentView.element); + } + return R; + }, + getJson: function(e) { + let n = null; + if (Is.definedString(e) && t.hasOwnProperty(e)) { + n = t[e].data; } - return _public; + return n; }, - destroyAll: function () { - for (let e in _elements_Data) { - if (_elements_Data.hasOwnProperty(e)) { - destroyElement(_elements_Data[e]); + destroy: function(e) { + if (Is.definedString(e) && t.hasOwnProperty(e)) { + M(t[e]); + delete t[e]; + n--; + } + return R; + }, + destroyAll: function() { + for (let e in t) { + if (t.hasOwnProperty(e)) { + M(t[e]); } } - _elements_Data = {}; - return _public; + t = {}; + n = 0; + return R; }, - setConfiguration: function (e) { - if (Is.definedObject(e)) { - let t = false; - const n = _configuration; - for (let r in e) { - if (e.hasOwnProperty(r) && _configuration.hasOwnProperty(r) && n[r] !== e[r]) { - n[r] = e[r]; - t = true; + setConfiguration: function(t) { + if (Is.definedObject(t)) { + let n = false; + const o = e; + for (let r in t) { + if (t.hasOwnProperty(r) && e.hasOwnProperty(r) && o[r] !== t[r]) { + o[r] = t[r]; + n = true; } } - if (t) { - _configuration = Config.Options.get(n); + if (n) { + e = Config.Options.get(o); } } - return _public; + return R; }, - getIds: function () { + getIds: function() { const e = []; - for (let t in _elements_Data) { - if (_elements_Data.hasOwnProperty(t)) { - e.push(t); + for (let n in t) { + if (t.hasOwnProperty(n)) { + e.push(n); } } return e; }, - getVersion: function () { - return '2.1.0'; - }, + getVersion: function() { + return "2.9.0"; + } }; (() => { - _configuration = Config.Options.get(); - document.addEventListener('DOMContentLoaded', function () { - render(); - }); + e = Config.Options.get(); + document.addEventListener("DOMContentLoaded", (() => o())); if (!Is.defined(window.$jsontree)) { - window.$jsontree = _public; + window.$jsontree = R; } })(); -})(); //# sourceMappingURL=jsontree.js.map +})();//# sourceMappingURL=jsontree.js.map \ No newline at end of file diff --git a/static/configvis/jsontree.js.css b/static/configvis/jsontree.js.css index f3d4d3d4..5496dd9e 100644 --- a/static/configvis/jsontree.js.css +++ b/static/configvis/jsontree.js.css @@ -1,44 +1,71 @@ /* - * JsonTree.js Library v2.1.0 + * JsonTree.js Library v2.9.0 * * Copyright 2024 Bunoon * Released under the MIT License */ :root { - --json-tree-js-default-font: system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', 'Noto Sans', 'Liberation Sans', Arial, - sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; - --json-tree-js-text-bold-weight: 400; - --json-tree-js-header-bold-weight: 900; - --json-tree-js-title-bold-weight: var(--json-tree-js-header-bold-weight); - --json-tree-js-text-bold-weight-active: var(--json-tree-js-header-bold-weight); - --json-tree-js-color-black: #3b3a3a; - --json-tree-js-color-white: #f5f5f5; - --json-tree-js-color-snow-white: #f5f5f5; - --json-tree-js-color-boolean: #ff0000; - --json-tree-js-color-decimal: #e3c868; - --json-tree-js-color-number: #666bf9; - --json-tree-js-color-string: #78b13f; - --json-tree-js-color-date: #a656f5; - --json-tree-js-color-array: #f28c28; - --json-tree-js-color-object: #c0c0c0; - --json-tree-js-color-null: #bbbbbb; - --json-tree-js-color-function: var(--json-tree-js-color-null); - --json-tree-js-color-unknown: var(--json-tree-js-color-null); - --json-tree-js-container-background-color: #22272e; - --json-tree-js-container-border-color: #454c56; - --json-tree-js-button-background-color: #2d333b; - --json-tree-js-button-border-color: var(--json-tree-js-container-border-color); - --json-tree-js-button-text-color: var(--json-tree-js-color-white); - --json-tree-js-button-background-color-hover: var(--json-tree-js-container-border-color); - --json-tree-js-button-text-color-hover: var(--json-tree-js-color-snow-white); - --json-tree-js-button-background-color-active: #616b79; - --json-tree-js-button-text-color-active: var(--json-tree-js-color-snow-white); - --json-tree-js-border-radius: 0.5rem; - --json-tree-js-border-style-scrollbar: inset 0 0 6px var(--json-tree-js-color-dark-gray); - --json-tree-js-border-size: 0.5px; - --json-tree-js-spacing: 10px; - --json-tree-js-spacing-font-size: 0.85rem; - --json-tree-js-transition: all 0.3s; + --json-tree-js-default-font: system-ui, + -apple-system, + "Segoe UI", + Roboto, + "Helvetica Neue", + "Noto Sans", + "Liberation Sans", + Arial, + sans-serif, + "Apple Color Emoji", + "Segoe UI Emoji", + "Segoe UI Symbol", + "Noto Color Emoji"; + --json-tree-js-text-bold-weight: 400; + --json-tree-js-header-bold-weight: 900; + --json-tree-js-title-bold-weight: var(--json-tree-js-header-bold-weight); + --json-tree-js-text-bold-weight-active: var(--json-tree-js-header-bold-weight); + --json-tree-js-color-dark-black: #1c2128; + --json-tree-js-color-black: #3b3a3a; + --json-tree-js-color-white: #F5F5F5; + --json-tree-js-color-snow-white: #F5F5F5; + --json-tree-js-color-light-gray: #BBBBBB; + --json-tree-js-color-array: #F28C28; + --json-tree-js-color-object: #C0C0C0; + --json-tree-js-color-map: #BDB5D5; + --json-tree-js-color-set: #FFD700; + --json-tree-js-color-boolean: #FF0000; + --json-tree-js-color-decimal: #e3c868; + --json-tree-js-color-number: #666bf9; + --json-tree-js-color-bigint: #6495ED; + --json-tree-js-color-string: #78b13f; + --json-tree-js-color-date: #a656f5; + --json-tree-js-color-null: var(--json-tree-js-color-light-gray); + --json-tree-js-color-undefined: var(--json-tree-js-color-null); + --json-tree-js-color-symbol: #DAA06D; + --json-tree-js-color-function: var(--json-tree-js-color-null); + --json-tree-js-color-unknown: var(--json-tree-js-color-null); + --json-tree-js-color-guid: #c45600; + --json-tree-js-color-regexp: #AA336A; + --json-tree-js-editable-text-color: var(--json-tree-js-color-snow-white); + --json-tree-js-editable-background-color: #2d333b; + --json-tree-js-editable-border-color: #454c56; + --json-tree-js-tooltip-background-color: var(--json-tree-js-container-background-color); + --json-tree-js-tooltip-border-color: var(--json-tree-js-container-border-color); + --json-tree-js-tooltip-text-color: var(--json-tree-js-color-white); + --json-tree-js-container-background-color: #22272e; + --json-tree-js-container-border-color: #454c56; + --json-tree-js-button-background-color: #2d333b; + --json-tree-js-button-border-color: var(--json-tree-js-container-border-color); + --json-tree-js-button-text-color: var(--json-tree-js-color-white); + --json-tree-js-button-background-color-hover: var(--json-tree-js-container-border-color); + --json-tree-js-button-text-color-hover: var(--json-tree-js-color-snow-white); + --json-tree-js-button-background-color-active: #616b79; + --json-tree-js-button-text-color-active: var(--json-tree-js-color-snow-white); + --json-tree-js-border-radius-editable: 0.25rem; + --json-tree-js-border-radius: 0.5rem; + --json-tree-js-border-size: 0.5px; + --json-tree-js-spacing: 10px; + --json-tree-js-spacing-font-size: 0.85rem; + --json-tree-js-transition: all .3s; + --json-tree-js-animation-length: 0.5s; } /* @@ -47,42 +74,70 @@ ------------------------------------------------------------------------- */ div.json-tree-js { - -moz-user-select: none; - -webkit-user-select: none; - -ms-user-select: none; - -o-user-select: none; - user-select: none; - cursor: default; - box-sizing: border-box; - line-height: normal; - font-family: var(--json-tree-js-default-font) !important; - display: inline-block; - position: relative; - border-radius: var(--json-tree-js-border-radius); - background-color: var(--json-tree-js-container-background-color); - color: var(--json-tree-js-color-white); - border: var(--json-tree-js-border-size) solid var(--json-tree-js-container-border-color); - padding: var(--json-tree-js-spacing); - font-size: var(--json-tree-js-spacing-font-size); - font-weight: var(--json-tree-js-text-bold-weight); - width: auto; - overflow: hidden; - margin: 0 !important; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + -o-user-select: none; + user-select: none; + cursor: default; + box-sizing: border-box; + line-height: normal; + font-family: var(--json-tree-js-default-font) !important; + display: inline-block; + position: relative; + border-radius: var(--json-tree-js-border-radius); + background-color: var(--json-tree-js-container-background-color); + color: var(--json-tree-js-color-white); + border: var(--json-tree-js-border-size) solid var(--json-tree-js-container-border-color); + font-size: var(--json-tree-js-spacing-font-size); + font-weight: var(--json-tree-js-text-bold-weight); + width: 100%; + overflow: hidden; + margin: 0 !important; + max-width: 500px; } div.json-tree-js button { - font-family: var(--heat-js-default-font); + font-family: var(--heat-js-default-font); } div.json-tree-js div.no-click { - pointer-events: none !important; + pointer-events: none !important; +} +div.json-tree-js div.page-switch { + animation: fade-in-animation var(--json-tree-js-animation-length); } div.json-tree-js * { - box-sizing: border-box; - line-height: normal; + box-sizing: border-box; + line-height: normal; +} +div.json-tree-js *::before, div.json-tree-js *::after { + box-sizing: border-box; + line-height: normal; } -div.json-tree-js *::before, -div.json-tree-js *::after { - box-sizing: border-box; - line-height: normal; + +div.full-screen { + position: fixed; + display: flex; + flex-direction: column; + top: 0; + left: 0; + height: 100%; + width: 100%; + max-width: none; + border-radius: 0; + z-index: 1000; +} +div.full-screen div.title-bar { + border-radius: 0 !important; +} +div.full-screen div.contents { + flex-grow: 1; + position: relative; +} +div.full-screen div.contents span.no-json-text { + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); } /* @@ -91,34 +146,34 @@ div.json-tree-js *::after { ------------------------------------------------------------------------- */ div.json-tree-js div.no-arrow { - display: inline-block; - width: 12px; - height: 8px; - margin-right: calc(var(--json-tree-js-spacing)); + display: inline-block; + width: 12px; + height: 8px; + margin-right: calc(var(--json-tree-js-spacing)); } div.json-tree-js div.down-arrow, div.json-tree-js div.right-arrow { - display: inline-block; - width: 0; - height: 0; - margin-right: calc(var(--json-tree-js-spacing)); - cursor: pointer; - transition: var(--json-tree-js-transition); - transition-property: opacity; + display: inline-block; + width: 0; + height: 0; + margin-right: calc(var(--json-tree-js-spacing)); + cursor: pointer; + transition: var(--json-tree-js-transition); + transition-property: opacity; } div.json-tree-js div.down-arrow:hover, div.json-tree-js div.right-arrow:hover { - opacity: 0.7; + opacity: 0.7; } div.json-tree-js div.down-arrow { - border-left: 6px solid transparent; - border-right: 6px solid transparent; - border-top: 8px solid var(--json-tree-js-color-white); + border-left: 6px solid transparent; + border-right: 6px solid transparent; + border-top: 8px solid var(--json-tree-js-color-white); } div.json-tree-js div.right-arrow { - border-top: 5px solid transparent; - border-bottom: 5px solid transparent; - border-left: 12px solid var(--json-tree-js-color-white); + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 12px solid var(--json-tree-js-color-white); } /* @@ -127,62 +182,91 @@ div.json-tree-js div.right-arrow { ------------------------------------------------------------------------- */ div.json-tree-js div.title-bar { - display: flex; - margin-bottom: var(--json-tree-js-spacing); + display: flex; + padding: calc(var(--json-tree-js-spacing) / 2); + background-color: var(--json-tree-js-color-dark-black); + border-radius: var(--json-tree-js-border-radius); + border-bottom: var(--json-tree-js-container-border-color) solid var(--json-tree-js-border-size); + justify-content: left; + align-items: center; } div.json-tree-js div.title-bar div.title { - text-align: left; - width: auto; - font-weight: var(--json-tree-js-title-bold-weight); - font-size: 1.2rem; + text-align: left; + width: auto; + font-weight: var(--json-tree-js-title-bold-weight); + font-size: 1.2rem; + margin: 3px; + margin-left: calc(var(--json-tree-js-spacing) / 2); } div.json-tree-js div.title-bar div.controls { - margin-left: calc(var(--json-tree-js-spacing) * 6); - flex-grow: 1; - text-align: right; + margin-left: calc(var(--json-tree-js-spacing) * 6); + flex-grow: 1; + text-align: right; + white-space: nowrap; } @media (min-width: 768px) { - div.json-tree-js div.title-bar div.controls { - margin-left: calc(var(--json-tree-js-spacing) * 12); - } + div.json-tree-js div.title-bar div.controls { + margin-left: calc(var(--json-tree-js-spacing) * 12); + } } div.json-tree-js div.title-bar div.controls button { - background-color: var(--json-tree-js-button-background-color); - border: var(--json-tree-js-border-size) solid var(--json-tree-js-button-border-color); - color: var(--json-tree-js-button-text-color); - border-radius: var(--json-tree-js-border-radius); - padding-top: 5px; - padding-bottom: 5px; - padding-left: 9px; - padding-right: 9px; - outline: none; - transition: var(--json-tree-js-transition); + background-color: var(--json-tree-js-button-background-color); + border: var(--json-tree-js-border-size) solid var(--json-tree-js-button-border-color); + color: var(--json-tree-js-button-text-color); + border-radius: var(--json-tree-js-border-radius); + padding-top: 5px; + padding-bottom: 5px; + padding-left: 9px; + padding-right: 9px; + margin: 3px; + outline: none; + transition: var(--json-tree-js-transition); } div.json-tree-js div.title-bar div.controls button:disabled { - color: var(--json-tree-js-button-border-color); + color: var(--json-tree-js-button-border-color); } div.json-tree-js div.title-bar div.controls button:not(.active):not(:disabled):active { - background: var(--json-tree-js-button-background-color-active) !important; - color: var(--json-tree-js-button-text-color-active) !important; + background: var(--json-tree-js-button-background-color-active) !important; + color: var(--json-tree-js-button-text-color-active) !important; } div.json-tree-js div.title-bar div.controls button:not(.active):not(:disabled):hover { - cursor: pointer; - background: var(--json-tree-js-button-background-color-hover); - color: var(--json-tree-js-button-text-color-hover); + cursor: pointer; + background: var(--json-tree-js-button-background-color-hover); + color: var(--json-tree-js-button-text-color-hover); } div.json-tree-js div.title-bar div.controls button { - margin-left: calc(var(--json-tree-js-spacing) / 2) !important; -} -div.json-tree-js div.title-bar div.controls button.back { - margin-left: calc(var(--json-tree-js-spacing) * 2) !important; + margin-left: calc(var(--json-tree-js-spacing) / 2) !important; + font-weight: var(--json-tree-js-header-bold-weight); + min-width: 30px; + min-height: 30px; + text-align: center; } div.json-tree-js div.title-bar div.controls button.copy-all { - display: none; + display: none; } @media (min-width: 768px) { - div.json-tree-js div.title-bar div.controls button.copy-all { - display: inline-block; - } + div.json-tree-js div.title-bar div.controls button.copy-all { + display: inline-block; + } +} + +/* + ------------------------------------------------------------------------- + JsonTree.js - Contents + ------------------------------------------------------------------------- +*/ +div.json-tree-js div.contents { + padding: var(--json-tree-js-spacing); + margin: 0 !important; + overflow-x: auto; + overflow-y: auto; +} +div.json-tree-js div.contents div.last-item { + margin-bottom: 0 !important; +} +div.json-tree-js div.contents span.no-json-text { + font-style: italic; + color: var(--json-tree-js-color-light-gray) !important; } /* @@ -191,22 +275,43 @@ div.json-tree-js div.title-bar div.controls button.copy-all { ------------------------------------------------------------------------- */ div.json-tree-js div.object-type-title { - font-weight: var(--json-tree-js-header-bold-weight); - text-align: left !important; + font-weight: var(--json-tree-js-header-bold-weight); + text-align: left !important; + width: fit-content; +} +div.json-tree-js div.object-type-title span.main-title { + transition: var(--json-tree-js-transition); + transition-property: opacity; +} +div.json-tree-js div.object-type-title span.main-title:not(.no-hover):hover { + cursor: pointer; + opacity: 0.7; } div.json-tree-js div.object-type-title span.array { - color: var(--json-tree-js-color-array); + color: var(--json-tree-js-color-array); } div.json-tree-js div.object-type-title span.object { - color: var(--json-tree-js-color-object); + color: var(--json-tree-js-color-object); +} +div.json-tree-js div.object-type-title span.map { + color: var(--json-tree-js-color-map); +} +div.json-tree-js div.object-type-title span.set { + color: var(--json-tree-js-color-set); } div.json-tree-js div.object-type-title span.count { - margin-left: calc(var(--json-tree-js-spacing) / 2); - font-weight: var(--json-tree-js-text-bold-weight); + margin-left: calc(var(--json-tree-js-spacing) / 2); + font-weight: var(--json-tree-js-text-bold-weight); } div.json-tree-js div.object-type-title span.data-array-index { - margin-right: calc(var(--json-tree-js-spacing) / 2); - font-weight: var(--json-tree-js-text-bold-weight); + margin-right: calc(var(--json-tree-js-spacing) / 2); + font-weight: var(--json-tree-js-text-bold-weight); +} +div.json-tree-js div.object-type-title span.opening-symbol { + margin-left: calc(var(--json-tree-js-spacing) / 2); + margin-right: calc(var(--json-tree-js-spacing) / 2); + font-weight: var(--json-tree-js-text-bold-weight); + color: var(--json-tree-js-color-snow-white) !important; } /* @@ -215,7 +320,10 @@ div.json-tree-js div.object-type-title span.data-array-index { ------------------------------------------------------------------------- */ div.json-tree-js div.object-type-contents { - margin-top: calc(var(--json-tree-js-spacing) / 2); + margin-top: calc(var(--json-tree-js-spacing) / 2); + text-align: left !important; + width: fit-content; + margin-bottom: var(--json-tree-js-spacing); } /* @@ -223,108 +331,156 @@ div.json-tree-js div.object-type-contents { JsonTree.js - Object Type Contents - Values ------------------------------------------------------------------------- */ -div.json-tree-js div.object-type-contents { - margin-left: calc(var(--json-tree-js-spacing) * 2); - text-align: left !important; +div.json-tree-js div.object-type-contents span.opening-symbol { + margin-left: calc(var(--json-tree-js-spacing) / 2); + margin-right: calc(var(--json-tree-js-spacing) / 2); + font-weight: var(--json-tree-js-text-bold-weight); + color: var(--json-tree-js-color-snow-white) !important; +} +div.json-tree-js div.object-type-contents div.closing-symbol div { + display: inline-block !important; +} +div.json-tree-js div.object-type-contents div.closing-symbol div.object-type-end { + font-weight: var(--json-tree-js-text-bold-weight); } div.json-tree-js div.object-type-contents div.object-type-value { - white-space: nowrap; - overflow: hidden; - margin-top: calc(var(--json-tree-js-spacing) / 2); - margin-bottom: calc(var(--json-tree-js-spacing) / 2); + white-space: nowrap; + margin-top: calc(var(--json-tree-js-spacing) / 2); + margin-bottom: calc(var(--json-tree-js-spacing) / 2); + margin-left: calc(var(--json-tree-js-spacing) * 2); } div.json-tree-js div.object-type-contents div.object-type-value span.split { - margin-left: calc(var(--json-tree-js-spacing) / 2); - margin-right: calc(var(--json-tree-js-spacing) / 2); -} -div.json-tree-js div.object-type-contents div.object-type-value span.boolean, -div.json-tree-js div.object-type-contents div.object-type-value span.decimal, -div.json-tree-js div.object-type-contents div.object-type-value span.number, -div.json-tree-js div.object-type-contents div.object-type-value span.string, -div.json-tree-js div.object-type-contents div.object-type-value span.date, -div.json-tree-js div.object-type-contents div.object-type-value span.null, -div.json-tree-js div.object-type-contents div.object-type-value span.function, -div.json-tree-js div.object-type-contents div.object-type-value span.unknown { - transition: var(--json-tree-js-transition); - transition-property: opacity; -} -div.json-tree-js div.object-type-contents div.object-type-value span.boolean:not(.no-hover):hover, -div.json-tree-js div.object-type-contents div.object-type-value span.decimal:not(.no-hover):hover, -div.json-tree-js div.object-type-contents div.object-type-value span.number:not(.no-hover):hover, -div.json-tree-js div.object-type-contents div.object-type-value span.string:not(.no-hover):hover, -div.json-tree-js div.object-type-contents div.object-type-value span.date:not(.no-hover):hover, -div.json-tree-js div.object-type-contents div.object-type-value span.null:not(.no-hover):hover, -div.json-tree-js div.object-type-contents div.object-type-value span.function:not(.no-hover):hover, -div.json-tree-js div.object-type-contents div.object-type-value span.unknown:not(.no-hover):hover { - cursor: pointer; - opacity: 0.7; + margin-left: calc(var(--json-tree-js-spacing) / 2); + margin-right: calc(var(--json-tree-js-spacing) / 2); +} +div.json-tree-js div.object-type-contents div.object-type-value span.value, +div.json-tree-js div.object-type-contents div.object-type-value span.main-title { + transition: var(--json-tree-js-transition); + transition-property: opacity; +} +div.json-tree-js div.object-type-contents div.object-type-value span.value:not(.no-hover):not(.editable):hover, +div.json-tree-js div.object-type-contents div.object-type-value span.main-title:not(.no-hover):not(.editable):hover { + cursor: pointer; + opacity: 0.7; +} +div.json-tree-js div.object-type-contents div.object-type-value span.editable { + background-color: var(--json-tree-js-editable-background-color) !important; + color: var(--json-tree-js-editable-text-color) !important; + border: var(--json-tree-js-border-size) solid var(--json-tree-js-editable-border-color); + outline: none !important; + box-shadow: none !important; + padding: calc(var(--json-tree-js-spacing) / 2) !important; + border-radius: var(--json-tree-js-border-radius-editable) !important; + cursor: text !important; +} +div.json-tree-js div.object-type-contents div.object-type-value span.main-title { + font-weight: var(--json-tree-js-header-bold-weight); +} +div.json-tree-js div.object-type-contents div.object-type-value span.non-value { + font-style: italic; } div.json-tree-js div.object-type-contents div.object-type-value span.comma { - color: var(--json-tree-js-color-white); - font-weight: var(--json-tree-js-text-bold-weight); + color: var(--json-tree-js-color-white); + font-weight: var(--json-tree-js-text-bold-weight); +} +div.json-tree-js div.object-type-contents div.object-type-value span.array { + color: var(--json-tree-js-color-array); +} +div.json-tree-js div.object-type-contents div.object-type-value span.object { + color: var(--json-tree-js-color-object); +} +div.json-tree-js div.object-type-contents div.object-type-value span.map { + color: var(--json-tree-js-color-map); +} +div.json-tree-js div.object-type-contents div.object-type-value span.set { + color: var(--json-tree-js-color-set); } div.json-tree-js div.object-type-contents div.object-type-value span.boolean { - color: var(--json-tree-js-color-boolean); + color: var(--json-tree-js-color-boolean); } div.json-tree-js div.object-type-contents div.object-type-value span.decimal { - color: var(--json-tree-js-color-decimal); + color: var(--json-tree-js-color-decimal); } div.json-tree-js div.object-type-contents div.object-type-value span.number { - color: var(--json-tree-js-color-number); + color: var(--json-tree-js-color-number); +} +div.json-tree-js div.object-type-contents div.object-type-value span.bigint { + color: var(--json-tree-js-color-bigint); } div.json-tree-js div.object-type-contents div.object-type-value span.string { - color: var(--json-tree-js-color-string); + color: var(--json-tree-js-color-string); } div.json-tree-js div.object-type-contents div.object-type-value span.date { - color: var(--json-tree-js-color-date); -} -div.json-tree-js div.object-type-contents div.object-type-value span.array { - font-weight: var(--json-tree-js-header-bold-weight); - color: var(--json-tree-js-color-array); -} -div.json-tree-js div.object-type-contents div.object-type-value span.object { - font-weight: var(--json-tree-js-header-bold-weight); - color: var(--json-tree-js-color-object); + color: var(--json-tree-js-color-date); } div.json-tree-js div.object-type-contents div.object-type-value span.null { - color: var(--json-tree-js-color-null); - font-style: italic; + color: var(--json-tree-js-color-null); +} +div.json-tree-js div.object-type-contents div.object-type-value span.symbol { + color: var(--json-tree-js-color-symbol); } div.json-tree-js div.object-type-contents div.object-type-value span.function { - color: var(--json-tree-js-color-function); - font-style: italic; + color: var(--json-tree-js-color-function); } div.json-tree-js div.object-type-contents div.object-type-value span.unknown { - color: var(--json-tree-js-color-unknown); - font-style: italic; + color: var(--json-tree-js-color-unknown); +} +div.json-tree-js div.object-type-contents div.object-type-value span.undefined { + color: var(--json-tree-js-color-null); +} +div.json-tree-js div.object-type-contents div.object-type-value span.guid { + color: var(--json-tree-js-color-guid); +} +div.json-tree-js div.object-type-contents div.object-type-value span.regexp { + color: var(--json-tree-js-color-regexp); } div.json-tree-js div.object-type-contents div.object-type-value span.count { - margin-left: calc(var(--json-tree-js-spacing) / 2); - font-weight: var(--json-tree-js-text-bold-weight); + margin-left: calc(var(--json-tree-js-spacing) / 2); + font-weight: var(--json-tree-js-text-bold-weight); } /* ------------------------------------------------------------------------- - JsonTree.js - Custom Scroll Bar + JsonTree.js - ToolTip ------------------------------------------------------------------------- */ -.custom-scroll-bars::-webkit-scrollbar { - width: 12px; -} -.custom-scroll-bars::-webkit-scrollbar-track { - -webkit-box-shadow: var(--json-tree-js-border-style-scrollbar); - box-shadow: var(--json-tree-js-border-style-scrollbar); -} -.custom-scroll-bars::-webkit-scrollbar-thumb { - -webkit-box-shadow: var(--json-tree-js-border-style-scrollbar); - box-shadow: var(--json-tree-js-border-style-scrollbar); - background: var(--json-tree-js-color-white); +div.jsontree-js-tooltip, +div.jsontree-js-tooltip-value { + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + -o-user-select: none; + user-select: none; + cursor: default; + box-sizing: border-box; + line-height: normal; + font-family: var(--json-tree-js-default-font); + animation: fade-in-animation var(--json-tree-js-animation-length); + position: absolute; + background-color: var(--json-tree-js-tooltip-background-color); + border: var(--json-tree-js-border-size) solid var(--json-tree-js-tooltip-border-color); + color: var(--json-tree-js-tooltip-text-color); + border-radius: var(--json-tree-js-border-radius); + z-index: 2000; + max-width: 300px; + padding: var(--json-tree-js-spacing); + font-size: var(--json-tree-js-spacing-font-size); + font-weight: var(--json-tree-js-text-bold-weight); + display: none; } -.custom-scroll-bars::-webkit-scrollbar-thumb:hover { - background-color: var(--json-tree-js-color-white); -} -.custom-scroll-bars::-webkit-scrollbar-thumb:active { - background-color: var(--json-tree-js-color-lighter-gray); + +/* + ------------------------------------------------------------------------- + JsonTree.js - Animations + ------------------------------------------------------------------------- +*/ +@keyframes fade-in-animation { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } } /*# sourceMappingURL=jsontree.js.css.map */ diff --git a/static/configvis/jsontree.js.css.map b/static/configvis/jsontree.js.css.map index 782f92e0..89f0764d 100644 --- a/static/configvis/jsontree.js.css.map +++ b/static/configvis/jsontree.js.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["../src/jsontree.js.scss","../src/sass/_styles.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA;EAEI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAcA;EACA;EACA;EACA;EAGA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EAGA;EACA;EAGA;;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAMA;EC9EI;EACA;EACA;EACA;EACA;EACA;EAUA;EACA;EDiEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAGJ;ECxFA;EACA;;AD0FI;EC3FJ;EACA;;;ADkGJ;AAAA;AAAA;AAAA;AAAA;AAOI;EACI;EACA;EACA;EACA;;AAGJ;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AAIR;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;;;AAKR;AAAA;AAAA;AAAA;AAAA;AAOI;EACI;EACA;;AAEA;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAEA;EALJ;IAMQ;;;ACjKZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;;AD8IA;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAEA;EAHJ;IAIQ;;;;AAQpB;AAAA;AAAA;AAAA;AAAA;AAOI;EACI;EACA;;AAEA;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;;AAKZ;AAAA;AAAA;AAAA;AAAA;AAOI;EACI;;;AAKR;AAAA;AAAA;AAAA;AAAA;AAOI;EACI;EACA;;AAEA;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAQI;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACI;EACA;;AAIR;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;;AAOhB;AAAA;AAAA;AAAA;AAAA;AAOI;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;;AAEA;EACI;;AAGJ;EACI","file":"jsontree.js.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["../src/jsontree.js.scss","../src/sass/_styles.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA;EAEI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAcA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EAGA;EACA;EACA;EAGA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EAGA;EACA;EAGA;EACA;;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAMA;EClGI;EACA;EACA;EACA;EACA;EACA;EAUA;EACA;EDqFA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EChHA;EACA;;ADkHI;ECnHJ;EACA;;;ADyHJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;;AAEA;EACI;EACA;EACA;EACA;;;AAMZ;AAAA;AAAA;AAAA;AAAA;AAOI;EACI;EACA;EACA;EACA;;AAGJ;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AAIR;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;;;AAKR;AAAA;AAAA;AAAA;AAAA;AAOI;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEA;EANJ;IAOQ;;;AC9NZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;;AD0MA;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAEA;EAHJ;IAIQ;;;;AAQpB;AAAA;AAAA;AAAA;AAAA;AAOI;EACI;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;;;AAMZ;AAAA;AAAA;AAAA;AAAA;AAOI;EACI;EACA;EACA;;AAEA;EACI;EACA;;AAEA;EACI;EACA;;AAIR;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;;;AAMZ;AAAA;AAAA;AAAA;AAAA;AAOI;EACI;EACA;EACA;EACA;;;AAKR;AAAA;AAAA;AAAA;AAAA;AAQQ;EACI;EACA;EACA;EACA;;AAIA;EACI;;AAGJ;EACI;;AAIR;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;AAAA;EAEI;EACA;;AAEA;AAAA;EACI;EACA;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;;;AAOhB;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA;ECxgBI;EACA;EACA;EACA;EACA;EACA;EAUA;EACA;ED4fA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAMA;EACI;IACI;;EAEJ;IACI","file":"jsontree.js.css"} \ No newline at end of file diff --git a/static/configvis/jsontree.js.map b/static/configvis/jsontree.js.map index 21e76574..9877e633 100644 --- a/static/configvis/jsontree.js.map +++ b/static/configvis/jsontree.js.map @@ -1 +1 @@ -{"version":3,"sources":["/Users/williamtroup/Documents/GitHub%20Repos/JsonTree.js/dist/jsontree.js"],"names":["Is","Is2","defined","value","toString","definedObject","object","definedBoolean","definedString","definedFunction","definedNumber","definedArray","Array","definedDate","Date","definedDecimal","invalidOptionArray","array","minimumLength","length","hexColor","valid","isNaN","substring","Default","Default2","getAnyString","defaultValue","getString","getBoolean","getNumber","getFunction","getArray","getObject","getStringOrArray","result2","values","split","getFixedDecimalPlacesValue","decimalPlaces","_a","regExp","RegExp","match","getFunctionName","valueParts","valueNameParts","DomElement","DomElement2","create","container","type","className","beforeNode","nodeType","toLowerCase","isText","document","createTextNode","createElement","insertBefore","appendChild","createWithHTML","html","element","innerHTML","addClass","classList","add","Str","Str2","newGuid","charIndex","push","character","Math","floor","random","join","padNumber","number","numberString","numberResult","arrayLength","DateTime","DateTime2","getWeekdayNumber","date","getDay","getDayOrdinal","configuration","text","thText","stText","ndText","rdText","getCustomFormattedDateText","dateFormat","weekDayNumber","replace","getHours","getMinutes","getSeconds","dayNames","dayNamesAbbreviated","getDate","monthNames","getMonth","monthNamesAbbreviated","getFullYear","Number","parseInt","Constants","Constants2","JSONTREE_JS_ATTRIBUTE_NAME","Binding","Binding2","Options","Options2","getForNewInstance","data","bindingOptions","get","_currentView","dataArrayCurrentIndex","newOptions","options","showCounts","useZeroIndexingForArrays","dateTimeFormat","showArrowToggles","showStringQuotes","showAllAsClosed","sortPropertyNames","sortPropertyNamesInAlphabeticalOrder","showCommas","reverseArrayValues","addArrayIndexPadding","showValueColors","maximumDecimalPlaces","maximumStringLength","showStringHexColors","showArrayItemsAsSeparateObjects","copyOnlyCurrentPage","getTitle","getIgnore","getCustomTriggers","title","show","showTreeControls","showCopyButton","ignore","nullValues","functionValues","unknownValues","booleanValues","decimalValues","numberValues","stringValues","dateValues","objectValues","arrayValues","events","onBeforeRender","onRenderComplete","onValueClick","onRefresh","onCopyAll","onOpenAll","onCloseAll","onDestroy","onBooleanRender","onDecimalRender","onNumberRender","onStringRender","onDateRender","onFunctionRender","onNullRender","onUnknownRender","Config","Config2","newConfiguration","safeMode","domElementTypes","getText","objectText","arrayText","closeAllButtonText","openAllButtonText","copyAllButtonText","objectErrorText","attributeNotValidErrorText","attributeNotSetErrorText","ellipsisText","closeAllButtonSymbolText","openAllButtonSymbolText","copyAllButtonSymbolText","backButtonText","nextButtonText","backButtonSymbolText","nextButtonSymbolText","Trigger","Trigger2","customEvent","triggerFunction","args","apply","slice","call","_configuration","_elements_Data","render","tagTypes","tagTypesLength","tagTypeIndex","domElements","getElementsByTagName","elements","elementsLength","elementIndex","renderElement","hasAttribute","bindingOptionsData","getAttribute","getObjectFromString","parsed","renderControl","console","error","id","removeAttribute","hasOwnProperty","renderControlContainer","renderControlTitleBar","renderObject","renderArray","titleBar","controls","copy","onclick","copyData","JSON","stringify","navigator","clipboard","writeText","openAll","closeAll","openAllNodes","closeAllNodes","back","disabled","next","showPagingIndex","objectTypeTitle","objectTypeContents","arrow","propertyCount","renderObjectValues","titleText","dataArrayIndex","renderArrayValues","properties","key","sort","reverse","propertiesLength","propertyIndex","propertyName","renderValue","addArrowEvent","dataLength","dataIndex1","getIndexName","dataIndex2","name","isLastItem","objectTypeValue","valueClass","valueElement","ignored","addClickEvent","createComma","newValue","color","newStringValue","style","objectTitle","arrayTitle","arrayTypeContents","removeChild","addValueClickEvent","display","index","largestValue","objectString","result","parse","e1","eval","e2","message","destroyElement","_public","refresh","elementId","refreshAll","renderAll","destroy","destroyAll","setConfiguration","configurationHasChanged","newInternalConfiguration","getIds","getVersion","addEventListener","window","$jsontree"],"mappings":"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","sourcesContent":[null]} \ No newline at end of file +{"version":3,"sources":["/Users/williamtroup/Documents/GitHub%20Repos/JsonTree.js/dist/jsontree.js"],"names":["Is","Is2","String","String2","hexColor","value","valid","length","isNaN","substring","rgbColor","startsWith","endsWith","boolean","object","toString","toLowerCase","trim","date","dateTimeString","Date","guid","regex","test","defined","definedObject","definedBoolean","definedString","definedFunction","definedNumber","definedBigInt","definedArray","Array","definedDate","definedDecimal","definedSymbol","definedRegExp","RegExp","definedMap","Map","WeakMap","definedSet","Set","WeakSet","invalidOptionArray","array","minimumLength","Default2","Default","getAnyString","defaultValue","getString","getBoolean","getNumber","getFunction","getArray","getObject","getStringOrArray","result2","values","split","getFixedDecimalPlacesValue","decimalPlaces","regExp","match","getFunctionName","configuration2","valueParts","valueNameParts","functionBrackets","text","functionText","getObjectFromString","objectString","configuration","result","parsed","JSON","parse","e1","eval","e2","safeMode","console","error","objectErrorText","replace","message","getObjectFromMap","map","Object","fromEntries","entries","getArrayFromSet","set","from","DomElement","DomElement2","create","container","type","className","beforeNode","nodeType","isText","document","createTextNode","createElement","insertBefore","appendChild","createWithHTML","html","element","innerHTML","addClass","classList","add","removeClass","remove","cancelBubble","e","preventDefault","stopPropagation","getScrollPosition","documentElement","left","scrollLeft","clientLeft","top","scrollTop","clientTop","showElementAtMousePosition","offset","pageX","pageY","scrollPosition","style","display","offsetWidth","window","innerWidth","offsetHeight","innerHeight","selectAllText","range","createRange","selectNodeContents","selection","getSelection","removeAllRanges","addRange","Str","Str2","padNumber","number","numberString","numberResult","arrayLength","join","DateTime","DateTime2","getWeekdayNumber","getDay","getDayOrdinal","thText","stText","ndText","rdText","getCustomFormattedDateText","dateFormat","weekDayNumber","getHours","getMinutes","getSeconds","getMilliseconds","dayNames","dayNamesAbbreviated","getDate","monthNames","getMonth","monthNamesAbbreviated","getFullYear","Number","parseInt","Constants","Constants2","JSONTREE_JS_ATTRIBUTE_NAME","Binding","Binding2","Options","Options2","getForNewInstance","data","bindingOptions","get","_currentView","dataArrayCurrentIndex","titleBarButtons","valueClickTimerId","editMode","idSet","contentPanelsOpen","contentPanelsIndex","backButton","nextButton","newOptions","options","showCounts","useZeroIndexingForArrays","dateTimeFormat","showArrowToggles","showStringQuotes","showAllAsClosed","sortPropertyNames","sortPropertyNamesInAlphabeticalOrder","showCommas","reverseArrayValues","addArrayIndexPadding","showValueColors","maximumDecimalPlaces","maximumStringLength","showArrayItemsAsSeparateObjects","copyOnlyCurrentPage","fileDroppingEnabled","copyIndentSpaces","showArrayIndexBrackets","showOpeningClosingCurlyBraces","showOpeningClosingSquaredBrackets","includeTimeZoneInDateTimeEditing","shortcutKeysEnabled","openInFullScreenMode","enableFullScreenToggling","valueToolTips","editingValueClickDelay","getTitle","getIgnore","getToolTip","getParse","getAllowEditing","getCustomTriggers","title","show","showTreeControls","showCopyButton","ignore","nullValues","functionValues","unknownValues","booleanValues","decimalValues","numberValues","stringValues","dateValues","objectValues","arrayValues","bigIntValues","symbolValues","emptyObjects","undefinedValues","guidValues","colorValues","regExpValues","mapValues","setValues","tooltip","delay","stringsToDates","stringsToBooleans","stringsToNumbers","valueToolTipsSet","defaultFlag","allowEditing","propertyNames","events","onBeforeRender","onRenderComplete","onValueClick","onRefresh","onCopyAll","onOpenAll","onCloseAll","onDestroy","onBooleanRender","onDecimalRender","onNumberRender","onBigIntRender","onStringRender","onDateRender","onFunctionRender","onNullRender","onUnknownRender","onSymbolRender","onCopyJsonReplacer","onUndefinedRender","onGuidRender","onColorRender","onJsonEdit","onRegExpRender","Config","Config2","newConfiguration","domElementTypes","getText","objectText","arrayText","mapText","setText","closeAllButtonText","openAllButtonText","copyAllButtonText","attributeNotValidErrorText","attributeNotSetErrorText","ellipsisText","closeAllButtonSymbolText","openAllButtonSymbolText","copyAllButtonSymbolText","backButtonText","nextButtonText","backButtonSymbolText","nextButtonSymbolText","noJsonToViewText","Trigger","Trigger2","customEvent","triggerFunction","args","apply","slice","call","ToolTip","ToolTip2","renderControl","body","assignToEvents","add2","addEventListener_Window","addEventListener","removeEventListener","addEventListener_Document","hide","tooltipClass","onmousemove","tooltipTimerId","setTimeout","clearTimeout","parentNode","removeChild","_configuration","_elements_Data","_elements_Data_Count","render","tagTypes","tagTypesLength","tagTypeIndex","domElements","getElementsByTagName","elements","elementsLength","elementIndex","renderElement","hasAttribute","bindingOptionsData","getAttribute","id","crypto","randomUUID","removeAttribute","hasOwnProperty","renderControlContainer","buildDocumentEvents","isForPageSwitch","renderControlTitleBar","contents","makeAreaDroppable","renderArray","renderObject","titleBar","ondblclick","onTitleBarDblClick","copy","onclick","onTitleBarCopyClick","openAll","closeAll","onBackPage","disabled","onNextPage","contains","copyData","replaceFunction","jsonStringifyReplacer","stringify","navigator","clipboard","writeText","_","addEvents","documentFunc","onWindowKeyDown","code","isMap","objectData","getObjectPropertyNames","propertyCount","objectTypeTitle","objectTypeContents","arrow","titleText","openingBrace","dataArrayIndex","renderObjectValues","addValueClickEvent","isSet","setData","openingBracket","renderArrayValues","coma","addNoArrowToClosingSymbol","isLastItem","jsonPath","propertiesLength","propertyIndex","propertyName","newJsonPath","renderValue","createClosingSymbol","addArrowEvent","dataLength","dataIndex1","actualIndex","getArrayIndex","getArrayIndexName","dataIndex2","name","isArrayItem","objectTypeValue","valueClass","valueElement","ignored","makePropertyNameEditable","createComma","makePropertyValueEditable","newValue","color","parseFloat","newStringValue","source","objectTitle","arrayTypeContents","valueObject","addValueElementToolTip","jsonPathParts","jsonPathPartsLength","jsonPathPartIndex","originalPropertyName","setAttribute","focus","onblur","onkeydown","newPropertyName","innerText","originalValue","originalPropertyValue","propertyValue","newPropertyValue","splice","getArrayIndexFromBrackets","newDataPropertyValue","BigInt","openingSymbol","panelId","hideFunc","showFunc","conditionFunc","condition","isClosed","index","largestValue","properties","key","push","collator","Intl","Collator","numeric","sensitivity","sort","compare","reverse","symbol","addNoArrow","symbolContainer","ondragover","ondragenter","ondragleave","ondrop","FileReader","dataTransfer","files","importFromFiles","filesLength","filesRead","filesData","onFileLoad","onSetJson","fileIndex","file","fileExtension","pop","importFromJson","reader","renderData","onloadend","onload","json","target","readAsText","destroyElement","_public","refresh","elementId","refreshAll","renderAll","setJson","jsonObject","jsonResult","getJson","destroy","destroyAll","setConfiguration","configurationHasChanged","newInternalConfiguration","getIds","getVersion","$jsontree"],"mappings":"AAAA;;AAGA,IAAIA;;AACJ,CAAEC;IACA,IAAIC;IACJ,CAAEC;QACA,SAASC,EAASC;YAChB,IAAIC,IAAQD,EAAME,UAAU,KAAKF,EAAME,UAAU;YACjD,IAAID,KAASD,EAAM,OAAO,KAAgB;gBACxCC,IAAQE,OAAOH,EAAMI,UAAU,GAAGJ,EAAME,SAAS;AACnD,mBAAO;gBACLD,IAAQ;AACV;YACA,OAAOA;AACT;QACAH,EAAQC,WAAWA;QACnB,SAASM,EAASL;YAChB,QAAQA,EAAMM,WAAW,WAAWN,EAAMM,WAAW,aAAaN,EAAMO,SAAS;AACnF;QACAT,EAAQO,WAAWA;QACnB,SAASG,EAAQC;YACf,OAAOA,EAAOC,WAAWC,cAAcC,WAAW,UAAUH,EAAOC,WAAWC,cAAcC,WAAW;AACzG;QACAd,EAAQU,UAAUA;QAClB,SAASK,EAAKC;YACZ,QAAQX,OAAO,IAAIY,KAAKD;AAC1B;QACAhB,EAAQe,OAAOA;QACf,SAASG,EAAKhB;YACZ,MAAMiB,IAAQ;YACd,OAAOA,EAAMC,KAAKlB;AACpB;QACAF,EAAQkB,OAAOA;AAChB,MA5BD,CA4BGnB,IAASD,EAAIC,WAAWD,EAAIC,SAAS,CAAC;IACzC,SAASsB,EAAQnB;QACf,OAAOA,MAAU,QAAQA,WAAe,KAAKA,EAAMU,eAAe;AACpE;IACAd,EAAIuB,UAAUA;IACd,SAASC,EAAcX;QACrB,OAAOU,EAAQV,aAAkBA,MAAW;AAC9C;IACAb,EAAIwB,gBAAgBA;IACpB,SAASC,EAAeZ;QACtB,OAAOU,EAAQV,aAAkBA,MAAW;AAC9C;IACAb,EAAIyB,iBAAiBA;IACrB,SAASC,EAAcb;QACrB,OAAOU,EAAQV,aAAkBA,MAAW;AAC9C;IACAb,EAAI0B,gBAAgBA;IACpB,SAASC,EAAgBd;QACvB,OAAOU,EAAQV,aAAkBA,MAAW;AAC9C;IACAb,EAAI2B,kBAAkBA;IACtB,SAASC,EAAcf;QACrB,OAAOU,EAAQV,aAAkBA,MAAW;AAC9C;IACAb,EAAI4B,gBAAgBA;IACpB,SAASC,EAAchB;QACrB,OAAOU,EAAQV,aAAkBA,MAAW;AAC9C;IACAb,EAAI6B,gBAAgBA;IACpB,SAASC,EAAajB;QACpB,OAAOW,EAAcX,MAAWA,aAAkBkB;AACpD;IACA/B,EAAI8B,eAAeA;IACnB,SAASE,EAAYnB;QACnB,OAAOW,EAAcX,MAAWA,aAAkBM;AACpD;IACAnB,EAAIgC,cAAcA;IAClB,SAASC,EAAepB;QACtB,OAAOU,EAAQV,aAAkBA,MAAW,YAAYA,IAAS,MAAM;AACzE;IACAb,EAAIiC,iBAAiBA;IACrB,SAASC,EAAcrB;QACrB,OAAOU,EAAQV,aAAkBA,MAAW;AAC9C;IACAb,EAAIkC,gBAAgBA;IACpB,SAASC,EAActB;QACrB,OAAOU,EAAQV,MAAWA,aAAkBuB;AAC9C;IACApC,EAAImC,gBAAgBA;IACpB,SAASE,EAAWxB;QAClB,OAAOU,EAAQV,OAAYA,aAAkByB,OAAOzB,aAAkB0B;AACxE;IACAvC,EAAIqC,aAAaA;IACjB,SAASG,EAAW3B;QAClB,OAAOU,EAAQV,OAAYA,aAAkB4B,OAAO5B,aAAkB6B;AACxE;IACA1C,EAAIwC,aAAaA;IACjB,SAASG,EAAmBC,GAAOC,IAAgB;QACjD,QAAQf,EAAac,MAAUA,EAAMtC,SAASuC;AAChD;IACA7C,EAAI2C,qBAAqBA;AAC1B,EA3FD,CA2FG5C,OAAOA,KAAK,CAAC;;AAGhB,IAAI+C;;AACJ,CAAEC;IACA,SAASC,aAAa5C,GAAO6C;QAC3B,cAAc7C,MAAU,WAAWA,IAAQ6C;AAC7C;IACAF,QAAQC,eAAeA;IACvB,SAASE,UAAU9C,GAAO6C;QACxB,OAAOlD,GAAG2B,cAActB,KAASA,IAAQ6C;AAC3C;IACAF,QAAQG,YAAYA;IACpB,SAASC,WAAW/C,GAAO6C;QACzB,OAAOlD,GAAG0B,eAAerB,KAASA,IAAQ6C;AAC5C;IACAF,QAAQI,aAAaA;IACrB,SAASC,UAAUhD,GAAO6C;QACxB,OAAOlD,GAAG6B,cAAcxB,KAASA,IAAQ6C;AAC3C;IACAF,QAAQK,YAAYA;IACpB,SAASC,YAAYjD,GAAO6C;QAC1B,OAAOlD,GAAG4B,gBAAgBvB,KAASA,IAAQ6C;AAC7C;IACAF,QAAQM,cAAcA;IACtB,SAASC,SAASlD,GAAO6C;QACvB,OAAOlD,GAAG+B,aAAa1B,KAASA,IAAQ6C;AAC1C;IACAF,QAAQO,WAAWA;IACnB,SAASC,UAAUnD,GAAO6C;QACxB,OAAOlD,GAAGyB,cAAcpB,KAASA,IAAQ6C;AAC3C;IACAF,QAAQQ,YAAYA;IACpB,SAASC,iBAAiBpD,GAAO6C;QAC/B,IAAIQ,IAAUR;QACd,IAAIlD,GAAG2B,cAActB,IAAQ;YAC3B,MAAMsD,IAAStD,EAAMU,WAAW6C,MAAM;YACtC,IAAID,EAAOpD,WAAW,GAAG;gBACvBF,IAAQ6C;AACV,mBAAO;gBACLQ,IAAUC;AACZ;AACF,eAAO;YACLD,IAAUH,SAASlD,GAAO6C;AAC5B;QACA,OAAOQ;AACT;IACAV,QAAQS,mBAAmBA;IAC3B,SAASI,2BAA2BxD,GAAOyD;QACzC,MAAMC,IAAS,IAAI1B,OAAO,oBAAoByB,MAAkB;QAChE,OAAOzD,EAAMU,WAAWiD,MAAMD,KAAU,MAAM;AAChD;IACAf,QAAQa,6BAA6BA;IACrC,SAASI,gBAAgB5D,GAAO6D;QAC9B,IAAIR;QACJ,MAAMS,IAAa9D,EAAMU,WAAW6C,MAAM;QAC1C,MAAMQ,IAAiBD,EAAW,GAAGP,MAAM;QAC3C,MAAMS,IAAmB;QACzB,IAAID,EAAe7D,WAAW,GAAG;YAC/BmD,IAAUU,EAAe;AAC3B,eAAO;YACLV,IAAUU,EAAe;AAC3B;QACAV,KAAWW;QACX,IAAIX,EAAQzC,WAAWoD,GAAkB;YACvCX,IAAU,GAAGQ,EAAeI,KAAKC,eAAeF;AAClD;QACA,OAAOX;AACT;IACAV,QAAQiB,kBAAkBA;IAC1B,SAASO,oBAAoBC,cAAcC;QACzC,MAAMC,SAAS;YACbC,QAAQ;YACR9D,QAAQ;;QAEV;YACE,IAAId,GAAG2B,cAAc8C,eAAe;gBAClCE,OAAO7D,SAAS+D,KAAKC,MAAML;AAC7B;AACF,UAAE,OAAOM;YACP;gBACEJ,OAAO7D,SAASkE,KAAK,IAAIP;gBACzB,IAAIzE,GAAG4B,gBAAgB+C,OAAO7D,SAAS;oBACrC6D,OAAO7D,SAAS6D,OAAO7D;AACzB;AACF,cAAE,OAAOmE;gBACP,KAAKP,cAAcQ,UAAU;oBAC3BC,QAAQC,MAAMV,cAAcJ,KAAKe,gBAAgBC,QAAQ,eAAeP,GAAGQ,SAASD,QAAQ,eAAeL,EAAGM;oBAC9GZ,OAAOC,SAAS;AAClB;gBACAD,OAAO7D,SAAS;AAClB;AACF;QACA,OAAO6D;AACT;IACA3B,QAAQwB,sBAAsBA;IAC9B,SAASgB,iBAAiBC;QACxB,MAAM/B,IAAUgC,OAAOC,YAAYF,EAAIG;QACvC,OAAOlC;AACT;IACAV,QAAQwC,mBAAmBA;IAC3B,SAASK,gBAAgBC;QACvB,MAAMpC,IAAU1B,MAAM+D,KAAKD,EAAInC;QAC/B,OAAOD;AACT;IACAV,QAAQ6C,kBAAkBA;AAC3B,EAtGD,CAsGG9C,aAAaA,WAAW,CAAC;;AAG5B,IAAIiD;;AACJ,CAAEC;IACA,SAASC,EAAOC,GAAWC,GAAMC,IAAY,IAAgBC,IAAa;QACxE,MAAMC,IAAWH,EAAKpF;QACtB,MAAMwF,IAASD,MAAa;QAC5B,IAAI7C,IAAU8C,IAASC,SAASC,eAAe,MAAkBD,SAASE,cAAcJ;QACxF,IAAIvG,GAAGwB,QAAQ6E,IAAY;YACzB3C,EAAQ2C,YAAYA;AACtB;QACA,IAAIrG,GAAGwB,QAAQ8E,IAAa;YAC1BH,EAAUS,aAAalD,GAAS4C;AAClC,eAAO;YACLH,EAAUU,YAAYnD;AACxB;QACA,OAAOA;AACT;IACAuC,EAAYC,SAASA;IACrB,SAASY,EAAeX,GAAWC,GAAMC,GAAWU,GAAMT,IAAa;QACrE,MAAMU,IAAUd,EAAOC,GAAWC,GAAMC,GAAWC;QACnDU,EAAQC,YAAYF;QACpB,OAAOC;AACT;IACAf,EAAYa,iBAAiBA;IAC7B,SAASI,EAASF,GAASX;QACzBW,EAAQG,UAAUC,IAAIf;AACxB;IACAJ,EAAYiB,WAAWA;IACvB,SAASG,EAAYL,GAASX;QAC5BW,EAAQG,UAAUG,OAAOjB;AAC3B;IACAJ,EAAYoB,cAAcA;IAC1B,SAASE,EAAaC;QACpBA,EAAEC;QACFD,EAAEE;AACJ;IACAzB,EAAYsB,eAAeA;IAC3B,SAASI;QACP,MAAMC,IAAkBnB,SAASmB;QACjC,MAAMlE,IAAU;YACdmE,MAAMD,EAAgBE,cAAcF,EAAgBG,cAAc;YAClEC,KAAKJ,EAAgBK,aAAaL,EAAgBM,aAAa;;QAEjE,OAAOxE;AACT;IACAuC,EAAY0B,oBAAoBA;IAChC,SAASQ,EAA2BX,GAAGR,GAASoB;QAC9C,IAAIP,IAAOL,EAAEa;QACb,IAAIL,IAAMR,EAAEc;QACZ,MAAMC,IAAiBZ;QACvBX,EAAQwB,MAAMC,UAAU;QACxB,IAAIZ,IAAOb,EAAQ0B,cAAcC,OAAOC,YAAY;YAClDf,KAAQb,EAAQ0B,cAAcN;AAChC,eAAO;YACLP;YACAA,KAAQO;AACV;QACA,IAAIJ,IAAMhB,EAAQ6B,eAAeF,OAAOG,aAAa;YACnDd,KAAOhB,EAAQ6B,eAAeT;AAChC,eAAO;YACLJ;YACAA,KAAOI;AACT;QACA,IAAIP,IAAOU,EAAeV,MAAM;YAC9BA,IAAOL,EAAEa,QAAQ;AACnB;QACA,IAAIL,IAAMO,EAAeP,KAAK;YAC5BA,IAAMR,EAAEc,QAAQ;AAClB;QACAtB,EAAQwB,MAAMX,OAAO,GAAGA;QACxBb,EAAQwB,MAAMR,MAAM,GAAGA;AACzB;IACA/B,EAAYkC,6BAA6BA;IACzC,SAASY,EAAc/B;QACrB,MAAMgC,IAAQvC,SAASwC;QACvBD,EAAME,mBAAmBlC;QACzB,MAAMmC,IAAYR,OAAOS;QACzBD,EAAUE;QACVF,EAAUG,SAASN;AACrB;IACA/C,EAAY8C,gBAAgBA;AAC7B,EA/ED,CA+EG/C,eAAeA,aAAa,CAAC;;AAGhC,IAAIuD;;AACJ,CAAEC;IACA,SAASC,EAAUC,GAAQnJ,IAAS;QAClC,MAAMoJ,IAAeD,EAAO3I;QAC5B,IAAI6I,IAAeD;QACnB,IAAIA,EAAapJ,SAASA,GAAQ;YAChC,MAAMsJ,IAActJ,IAASoJ,EAAapJ,SAAS;YACnDqJ,IAAe5H,MAAM6H,GAAaC,KAAK,OAAOH;AAChD;QACA,OAAOC;AACT;IACAJ,EAAKC,YAAYA;AAClB,EAXD,CAWGF,QAAQA,MAAM,CAAC;;AAGlB,IAAIQ;;AACJ,CAAEC;IACA,SAASC,EAAiB/I;QACxB,OAAOA,EAAKgJ,WAAW,IAAI,IAAI,IAAIhJ,EAAKgJ,WAAW;AACrD;IACAF,EAAUC,mBAAmBA;IAC7B,SAASE,EAAcjG,GAAgB7D;QACrC,IAAIqD,IAAUQ,EAAeI,KAAK8F;QAClC,IAAI/J,MAAU,MAAMA,MAAU,MAAMA,MAAU,GAAG;YAC/CqD,IAAUQ,EAAeI,KAAK+F;AAChC,eAAO,IAAIhK,MAAU,MAAMA,MAAU,GAAG;YACtCqD,IAAUQ,EAAeI,KAAKgG;AAChC,eAAO,IAAIjK,MAAU,MAAMA,MAAU,GAAG;YACtCqD,IAAUQ,EAAeI,KAAKiG;AAChC;QACA,OAAO7G;AACT;IACAsG,EAAUG,gBAAgBA;IAC1B,SAASK,EAA2BtG,GAAgBhD,GAAMuJ;QACxD,IAAI/G,IAAU+G;QACd,MAAMC,IAAgBT,EAAiB/I;QACvCwC,IAAUA,EAAQ4B,QAAQ,QAAQiE,IAAIE,UAAUvI,EAAKyJ,YAAY;QACjEjH,IAAUA,EAAQ4B,QAAQ,OAAOpE,EAAKyJ,WAAW5J;QACjD2C,IAAUA,EAAQ4B,QAAQ,QAAQiE,IAAIE,UAAUvI,EAAK0J,cAAc;QACnElH,IAAUA,EAAQ4B,QAAQ,OAAOpE,EAAK0J,aAAa7J;QACnD2C,IAAUA,EAAQ4B,QAAQ,QAAQiE,IAAIE,UAAUvI,EAAK2J,cAAc;QACnEnH,IAAUA,EAAQ4B,QAAQ,OAAOpE,EAAK2J,aAAa9J;QACnD2C,IAAUA,EAAQ4B,QAAQ,SAASiE,IAAIE,UAAUvI,EAAK4J,mBAAmB;QACzEpH,IAAUA,EAAQ4B,QAAQ,QAAQiE,IAAIE,UAAUvI,EAAK4J,mBAAmB;QACxEpH,IAAUA,EAAQ4B,QAAQ,OAAOpE,EAAK4J,kBAAkB/J;QACxD2C,IAAUA,EAAQ4B,QAAQ,UAAUpB,EAAeI,KAAKyG,SAASL;QACjEhH,IAAUA,EAAQ4B,QAAQ,SAASpB,EAAeI,KAAK0G,oBAAoBN;QAC3EhH,IAAUA,EAAQ4B,QAAQ,QAAQiE,IAAIE,UAAUvI,EAAK+J;QACrDvH,IAAUA,EAAQ4B,QAAQ,OAAOpE,EAAK+J,UAAUlK;QAChD2C,IAAUA,EAAQ4B,QAAQ,OAAO6E,EAAcjG,GAAgBhD,EAAK+J;QACpEvH,IAAUA,EAAQ4B,QAAQ,UAAUpB,EAAeI,KAAK4G,WAAWhK,EAAKiK;QACxEzH,IAAUA,EAAQ4B,QAAQ,SAASpB,EAAeI,KAAK8G,sBAAsBlK,EAAKiK;QAClFzH,IAAUA,EAAQ4B,QAAQ,QAAQiE,IAAIE,UAAUvI,EAAKiK,aAAa;QAClEzH,IAAUA,EAAQ4B,QAAQ,QAAQpE,EAAKiK,aAAa,GAAGpK;QACvD2C,IAAUA,EAAQ4B,QAAQ,UAAUpE,EAAKmK,cAActK;QACvD2C,IAAUA,EAAQ4B,QAAQ,SAASpE,EAAKmK,cAActK,WAAWN,UAAU;QAC3EiD,IAAUA,EAAQ4B,QAAQ,QAAQpE,EAAKmK,cAActK,WAAWN,UAAU;QAC1EiD,IAAUA,EAAQ4B,QAAQ,OAAOgG,OAAOC,SAASrK,EAAKmK,cAActK,WAAWN,UAAU,IAAIM;QAC7F,OAAO2C;AACT;IACAsG,EAAUQ,6BAA6BA;AACxC,EA7CD,CA6CGT,aAAaA,WAAW,CAAC;;AAG5B,IAAIyB;;AACJ,CAAEC;IACAA,EAAWC,6BAA6B;AACzC,EAFD,CAEGF,cAAcA,YAAY,CAAC;;AAG9B,IAAIG;;AACJ,CAAEC;IACA,IAAIC;IACJ,CAAEC;QACA,SAASC,EAAkBC,GAAMhF;YAC/B,MAAMiF,IAAiBL,EAASC,QAAQK,IAAIF;YAC5CC,EAAeE,eAAe,CAAC;YAC/BF,EAAeE,aAAanF,UAAUA;YACtCiF,EAAeE,aAAaC,wBAAwB;YACpDH,EAAeE,aAAaE,kBAAkB;YAC9CJ,EAAeE,aAAaG,oBAAoB;YAChDL,EAAeE,aAAaI,WAAW;YACvCN,EAAeE,aAAaK,QAAQ;YACpCP,EAAeE,aAAaM,oBAAoB,CAAC;YACjDR,EAAeE,aAAaO,qBAAqB;YACjDT,EAAeE,aAAaQ,aAAa;YACzCV,EAAeE,aAAaS,aAAa;YACzC,OAAOX;AACT;QACAH,EAASC,oBAAoBA;QAC7B,SAASG,EAAIW;YACX,IAAIC,IAAU/J,SAASS,UAAUqJ,GAAY,CAAC;YAC9CC,EAAQd,OAAOjJ,SAASS,UAAUsJ,EAAQd,MAAM;YAChDc,EAAQC,aAAahK,SAASK,WAAW0J,EAAQC,YAAY;YAC7DD,EAAQE,2BAA2BjK,SAASK,WAAW0J,EAAQE,0BAA0B;YACzFF,EAAQG,iBAAiBlK,SAASI,UAAU2J,EAAQG,gBAAgB;YACpEH,EAAQI,mBAAmBnK,SAASK,WAAW0J,EAAQI,kBAAkB;YACzEJ,EAAQK,mBAAmBpK,SAASK,WAAW0J,EAAQK,kBAAkB;YACzEL,EAAQM,kBAAkBrK,SAASK,WAAW0J,EAAQM,iBAAiB;YACvEN,EAAQO,oBAAoBtK,SAASK,WAAW0J,EAAQO,mBAAmB;YAC3EP,EAAQQ,uCAAuCvK,SAASK,WAAW0J,EAAQQ,sCAAsC;YACjHR,EAAQS,aAAaxK,SAASK,WAAW0J,EAAQS,YAAY;YAC7DT,EAAQU,qBAAqBzK,SAASK,WAAW0J,EAAQU,oBAAoB;YAC7EV,EAAQW,uBAAuB1K,SAASK,WAAW0J,EAAQW,sBAAsB;YACjFX,EAAQY,kBAAkB3K,SAASK,WAAW0J,EAAQY,iBAAiB;YACvEZ,EAAQa,uBAAuB5K,SAASM,UAAUyJ,EAAQa,sBAAsB;YAChFb,EAAQc,sBAAsB7K,SAASM,UAAUyJ,EAAQc,qBAAqB;YAC9Ed,EAAQe,kCAAkC9K,SAASK,WAAW0J,EAAQe,iCAAiC;YACvGf,EAAQgB,sBAAsB/K,SAASK,WAAW0J,EAAQgB,qBAAqB;YAC/EhB,EAAQiB,sBAAsBhL,SAASK,WAAW0J,EAAQiB,qBAAqB;YAC/EjB,EAAQkB,mBAAmBjL,SAASM,UAAUyJ,EAAQkB,kBAAkB;YACxElB,EAAQmB,yBAAyBlL,SAASK,WAAW0J,EAAQmB,wBAAwB;YACrFnB,EAAQoB,gCAAgCnL,SAASK,WAAW0J,EAAQoB,+BAA+B;YACnGpB,EAAQqB,oCAAoCpL,SAASK,WAAW0J,EAAQqB,mCAAmC;YAC3GrB,EAAQsB,mCAAmCrL,SAASK,WAAW0J,EAAQsB,kCAAkC;YACzGtB,EAAQuB,sBAAsBtL,SAASK,WAAW0J,EAAQuB,qBAAqB;YAC/EvB,EAAQwB,uBAAuBvL,SAASK,WAAW0J,EAAQwB,sBAAsB;YACjFxB,EAAQyB,2BAA2BxL,SAASK,WAAW0J,EAAQyB,0BAA0B;YACzFzB,EAAQ0B,gBAAgBzL,SAASS,UAAUsJ,EAAQ0B,eAAe;YAClE1B,EAAQ2B,yBAAyB1L,SAASM,UAAUyJ,EAAQ2B,wBAAwB;YACpF3B,IAAU4B,EAAS5B;YACnBA,IAAU6B,EAAU7B;YACpBA,IAAU8B,EAAW9B;YACrBA,IAAU+B,EAAS/B;YACnBA,IAAUgC,EAAgBhC,GAAS9M,GAAGyB,cAAcqL,EAAQ0B;YAC5D1B,IAAUiC,EAAkBjC;YAC5B,OAAOA;AACT;QACAhB,EAASI,MAAMA;QACf,SAASwC,EAAS5B;YAChBA,EAAQkC,QAAQjM,SAASS,UAAUsJ,EAAQkC,OAAO,CAAC;YACnDlC,EAAQkC,MAAM1K,OAAOvB,SAASI,UAAU2J,EAAQkC,MAAM1K,MAAM;YAC5DwI,EAAQkC,MAAMC,OAAOlM,SAASK,WAAW0J,EAAQkC,MAAMC,MAAM;YAC7DnC,EAAQkC,MAAME,mBAAmBnM,SAASK,WAAW0J,EAAQkC,MAAME,kBAAkB;YACrFpC,EAAQkC,MAAMG,iBAAiBpM,SAASK,WAAW0J,EAAQkC,MAAMG,gBAAgB;YACjF,OAAOrC;AACT;QACA,SAAS6B,EAAU7B;YACjBA,EAAQsC,SAASrM,SAASS,UAAUsJ,EAAQsC,QAAQ,CAAC;YACrDtC,EAAQsC,OAAOC,aAAatM,SAASK,WAAW0J,EAAQsC,OAAOC,YAAY;YAC3EvC,EAAQsC,OAAOE,iBAAiBvM,SAASK,WAAW0J,EAAQsC,OAAOE,gBAAgB;YACnFxC,EAAQsC,OAAOG,gBAAgBxM,SAASK,WAAW0J,EAAQsC,OAAOG,eAAe;YACjFzC,EAAQsC,OAAOI,gBAAgBzM,SAASK,WAAW0J,EAAQsC,OAAOI,eAAe;YACjF1C,EAAQsC,OAAOK,gBAAgB1M,SAASK,WAAW0J,EAAQsC,OAAOK,eAAe;YACjF3C,EAAQsC,OAAOM,eAAe3M,SAASK,WAAW0J,EAAQsC,OAAOM,cAAc;YAC/E5C,EAAQsC,OAAOO,eAAe5M,SAASK,WAAW0J,EAAQsC,OAAOO,cAAc;YAC/E7C,EAAQsC,OAAOQ,aAAa7M,SAASK,WAAW0J,EAAQsC,OAAOQ,YAAY;YAC3E9C,EAAQsC,OAAOS,eAAe9M,SAASK,WAAW0J,EAAQsC,OAAOS,cAAc;YAC/E/C,EAAQsC,OAAOU,cAAc/M,SAASK,WAAW0J,EAAQsC,OAAOU,aAAa;YAC7EhD,EAAQsC,OAAOW,eAAehN,SAASK,WAAW0J,EAAQsC,OAAOW,cAAc;YAC/EjD,EAAQsC,OAAOY,eAAejN,SAASK,WAAW0J,EAAQsC,OAAOY,cAAc;YAC/ElD,EAAQsC,OAAOa,eAAelN,SAASK,WAAW0J,EAAQsC,OAAOa,cAAc;YAC/EnD,EAAQsC,OAAOc,kBAAkBnN,SAASK,WAAW0J,EAAQsC,OAAOc,iBAAiB;YACrFpD,EAAQsC,OAAOe,aAAapN,SAASK,WAAW0J,EAAQsC,OAAOe,YAAY;YAC3ErD,EAAQsC,OAAOgB,cAAcrN,SAASK,WAAW0J,EAAQsC,OAAOgB,aAAa;YAC7EtD,EAAQsC,OAAOiB,eAAetN,SAASK,WAAW0J,EAAQsC,OAAOiB,cAAc;YAC/EvD,EAAQsC,OAAOkB,YAAYvN,SAASK,WAAW0J,EAAQsC,OAAOkB,WAAW;YACzExD,EAAQsC,OAAOmB,YAAYxN,SAASK,WAAW0J,EAAQsC,OAAOmB,WAAW;YACzE,OAAOzD;AACT;QACA,SAAS8B,EAAW9B;YAClBA,EAAQ0D,UAAUzN,SAASS,UAAUsJ,EAAQ0D,SAAS,CAAC;YACvD1D,EAAQ0D,QAAQC,QAAQ1N,SAASM,UAAUyJ,EAAQ0D,QAAQC,OAAO;YAClE3D,EAAQ0D,QAAQpI,SAASrF,SAASM,UAAUyJ,EAAQ0D,QAAQpI,QAAQ;YACpE,OAAO0E;AACT;QACA,SAAS+B,EAAS/B;YAChBA,EAAQhI,QAAQ/B,SAASS,UAAUsJ,EAAQhI,OAAO,CAAC;YACnDgI,EAAQhI,MAAM4L,iBAAiB3N,SAASK,WAAW0J,EAAQhI,MAAM4L,gBAAgB;YACjF5D,EAAQhI,MAAM6L,oBAAoB5N,SAASK,WAAW0J,EAAQhI,MAAM6L,mBAAmB;YACvF7D,EAAQhI,MAAM8L,mBAAmB7N,SAASK,WAAW0J,EAAQhI,MAAM8L,kBAAkB;YACrF,OAAO9D;AACT;QACA,SAASgC,EAAgBhC,GAAS+D;YAChC,IAAIC,IAAc/N,SAASK,WAAW0J,EAAQiE,cAAc;YAC5DjE,EAAQiE,eAAehO,SAASS,UAAUsJ,EAAQiE,cAAc,CAAC;YACjEjE,EAAQiE,aAAavB,gBAAgBzM,SAASK,WAAW0J,EAAQiE,aAAavB,eAAesB;YAC7FhE,EAAQiE,aAAatB,gBAAgB1M,SAASK,WAAW0J,EAAQiE,aAAatB,eAAeqB;YAC7FhE,EAAQiE,aAAarB,eAAe3M,SAASK,WAAW0J,EAAQiE,aAAarB,cAAcoB;YAC3FhE,EAAQiE,aAAapB,eAAe5M,SAASK,WAAW0J,EAAQiE,aAAapB,cAAcmB;YAC3FhE,EAAQiE,aAAanB,aAAa7M,SAASK,WAAW0J,EAAQiE,aAAanB,YAAYkB;YACvFhE,EAAQiE,aAAahB,eAAehN,SAASK,WAAW0J,EAAQiE,aAAahB,cAAce;YAC3FhE,EAAQiE,aAAaZ,aAAapN,SAASK,WAAW0J,EAAQiE,aAAaZ,YAAYW;YACvFhE,EAAQiE,aAAaX,cAAcrN,SAASK,WAAW0J,EAAQiE,aAAaX,aAAaU;YACzFhE,EAAQiE,aAAaC,gBAAgBjO,SAASK,WAAW0J,EAAQiE,aAAaC,eAAeF;YAC7F,IAAID,GAAkB;gBACpB/D,EAAQiE,aAAaC,gBAAgB;AACvC;YACA,OAAOlE;AACT;QACA,SAASiC,EAAkBjC;YACzBA,EAAQmE,SAASlO,SAASS,UAAUsJ,EAAQmE,QAAQ,CAAC;YACrDnE,EAAQmE,OAAOC,iBAAiBnO,SAASO,YAAYwJ,EAAQmE,OAAOC,gBAAgB;YACpFpE,EAAQmE,OAAOE,mBAAmBpO,SAASO,YAAYwJ,EAAQmE,OAAOE,kBAAkB;YACxFrE,EAAQmE,OAAOG,eAAerO,SAASO,YAAYwJ,EAAQmE,OAAOG,cAAc;YAChFtE,EAAQmE,OAAOI,YAAYtO,SAASO,YAAYwJ,EAAQmE,OAAOI,WAAW;YAC1EvE,EAAQmE,OAAOK,YAAYvO,SAASO,YAAYwJ,EAAQmE,OAAOK,WAAW;YAC1ExE,EAAQmE,OAAOM,YAAYxO,SAASO,YAAYwJ,EAAQmE,OAAOM,WAAW;YAC1EzE,EAAQmE,OAAOO,aAAazO,SAASO,YAAYwJ,EAAQmE,OAAOO,YAAY;YAC5E1E,EAAQmE,OAAOQ,YAAY1O,SAASO,YAAYwJ,EAAQmE,OAAOQ,WAAW;YAC1E3E,EAAQmE,OAAOS,kBAAkB3O,SAASO,YAAYwJ,EAAQmE,OAAOS,iBAAiB;YACtF5E,EAAQmE,OAAOU,kBAAkB5O,SAASO,YAAYwJ,EAAQmE,OAAOU,iBAAiB;YACtF7E,EAAQmE,OAAOW,iBAAiB7O,SAASO,YAAYwJ,EAAQmE,OAAOW,gBAAgB;YACpF9E,EAAQmE,OAAOY,iBAAiB9O,SAASO,YAAYwJ,EAAQmE,OAAOY,gBAAgB;YACpF/E,EAAQmE,OAAOa,iBAAiB/O,SAASO,YAAYwJ,EAAQmE,OAAOa,gBAAgB;YACpFhF,EAAQmE,OAAOc,eAAehP,SAASO,YAAYwJ,EAAQmE,OAAOc,cAAc;YAChFjF,EAAQmE,OAAOe,mBAAmBjP,SAASO,YAAYwJ,EAAQmE,OAAOe,kBAAkB;YACxFlF,EAAQmE,OAAOgB,eAAelP,SAASO,YAAYwJ,EAAQmE,OAAOgB,cAAc;YAChFnF,EAAQmE,OAAOiB,kBAAkBnP,SAASO,YAAYwJ,EAAQmE,OAAOiB,iBAAiB;YACtFpF,EAAQmE,OAAOkB,iBAAiBpP,SAASO,YAAYwJ,EAAQmE,OAAOkB,gBAAgB;YACpFrF,EAAQmE,OAAOmB,qBAAqBrP,SAASO,YAAYwJ,EAAQmE,OAAOmB,oBAAoB;YAC5FtF,EAAQmE,OAAOoB,oBAAoBtP,SAASO,YAAYwJ,EAAQmE,OAAOoB,mBAAmB;YAC1FvF,EAAQmE,OAAOqB,eAAevP,SAASO,YAAYwJ,EAAQmE,OAAOqB,cAAc;YAChFxF,EAAQmE,OAAOsB,gBAAgBxP,SAASO,YAAYwJ,EAAQmE,OAAOsB,eAAe;YAClFzF,EAAQmE,OAAOuB,aAAazP,SAASO,YAAYwJ,EAAQmE,OAAOuB,YAAY;YAC5E1F,EAAQmE,OAAOwB,iBAAiB1P,SAASO,YAAYwJ,EAAQmE,OAAOwB,gBAAgB;YACpF,OAAO3F;AACT;AACD,MAjJD,CAiJGjB,IAAUD,EAASC,YAAYD,EAASC,UAAU,CAAC;AACvD,EApJD,CAoJGF,YAAYA,UAAU,CAAC;;AAG1B,IAAI+G;;AACJ,CAAEC;IACA,IAAI9G;IACJ,CAAEC;QACA,SAASI,EAAI0G,IAAmB;YAC9B,IAAI1O,IAAiBnB,SAASS,UAAUoP,GAAkB,CAAC;YAC3D1O,EAAegB,WAAWnC,SAASK,WAAWc,EAAegB,UAAU;YACvEhB,EAAe2O,kBAAkB9P,SAASU,iBAAiBS,EAAe2O,iBAAiB,EAAC;YAC5F3O,IAAiB4O,EAAQ5O;YACzB,OAAOA;AACT;QACA4H,EAASI,MAAMA;QACf,SAAS4G,EAAQ5O;YACfA,EAAeI,OAAOvB,SAASS,UAAUU,EAAeI,MAAM,CAAC;YAC/DJ,EAAeI,KAAKyO,aAAahQ,SAASE,aAAaiB,EAAeI,KAAKyO,YAAY;YACvF7O,EAAeI,KAAK0O,YAAYjQ,SAASE,aAAaiB,EAAeI,KAAK0O,WAAW;YACrF9O,EAAeI,KAAK2O,UAAUlQ,SAASE,aAAaiB,EAAeI,KAAK2O,SAAS;YACjF/O,EAAeI,KAAK4O,UAAUnQ,SAASE,aAAaiB,EAAeI,KAAK4O,SAAS;YACjFhP,EAAeI,KAAK6O,qBAAqBpQ,SAASE,aAAaiB,EAAeI,KAAK6O,oBAAoB;YACvGjP,EAAeI,KAAK8O,oBAAoBrQ,SAASE,aAAaiB,EAAeI,KAAK8O,mBAAmB;YACrGlP,EAAeI,KAAK+O,oBAAoBtQ,SAASE,aAAaiB,EAAeI,KAAK+O,mBAAmB;YACrGnP,EAAeI,KAAKe,kBAAkBtC,SAASE,aAAaiB,EAAeI,KAAKe,iBAAiB;YACjGnB,EAAeI,KAAKgP,6BAA6BvQ,SAASE,aAAaiB,EAAeI,KAAKgP,4BAA4B;YACvHpP,EAAeI,KAAKiP,2BAA2BxQ,SAASE,aAAaiB,EAAeI,KAAKiP,0BAA0B;YACnHrP,EAAeI,KAAK+F,SAAStH,SAASE,aAAaiB,EAAeI,KAAK+F,QAAQ;YAC/EnG,EAAeI,KAAKgG,SAASvH,SAASE,aAAaiB,EAAeI,KAAKgG,QAAQ;YAC/EpG,EAAeI,KAAKiG,SAASxH,SAASE,aAAaiB,EAAeI,KAAKiG,QAAQ;YAC/ErG,EAAeI,KAAK8F,SAASrH,SAASE,aAAaiB,EAAeI,KAAK8F,QAAQ;YAC/ElG,EAAeI,KAAKkP,eAAezQ,SAASE,aAAaiB,EAAeI,KAAKkP,cAAc;YAC3FtP,EAAeI,KAAKmP,2BAA2B1Q,SAASE,aAAaiB,EAAeI,KAAKmP,0BAA0B;YACnHvP,EAAeI,KAAKoP,0BAA0B3Q,SAASE,aAAaiB,EAAeI,KAAKoP,yBAAyB;YACjHxP,EAAeI,KAAKqP,0BAA0B5Q,SAASE,aAAaiB,EAAeI,KAAKqP,yBAAyB;YACjHzP,EAAeI,KAAKsP,iBAAiB7Q,SAASE,aAAaiB,EAAeI,KAAKsP,gBAAgB;YAC/F1P,EAAeI,KAAKuP,iBAAiB9Q,SAASE,aAAaiB,EAAeI,KAAKuP,gBAAgB;YAC/F3P,EAAeI,KAAKwP,uBAAuB/Q,SAASE,aAAaiB,EAAeI,KAAKwP,sBAAsB;YAC3G5P,EAAeI,KAAKyP,uBAAuBhR,SAASE,aAAaiB,EAAeI,KAAKyP,sBAAsB;YAC3G7P,EAAeI,KAAK0P,mBAAmBjR,SAASE,aAAaiB,EAAeI,KAAK0P,kBAAkB;YACnG9P,EAAeI,KAAKC,eAAexB,SAASE,aAAaiB,EAAeI,KAAKC,cAAc;YAC3F,IAAIvE,GAAG4C,mBAAmBsB,EAAeI,KAAKyG,UAAU,IAAI;gBAC1D7G,EAAeI,KAAKyG,WAAW,EAC7B,UACA,WACA,aACA,YACA,UACA,YACA;AAEJ;YACA,IAAI/K,GAAG4C,mBAAmBsB,EAAeI,KAAK0G,qBAAqB,IAAI;gBACrE9G,EAAeI,KAAK0G,sBAAsB,EACxC,OACA,OACA,OACA,OACA,OACA,OACA;AAEJ;YACA,IAAIhL,GAAG4C,mBAAmBsB,EAAeI,KAAK4G,YAAY,KAAK;gBAC7DhH,EAAeI,KAAK4G,aAAa,EAC/B,WACA,YACA,SACA,SACA,OACA,QACA,QACA,UACA,aACA,WACA,YACA;AAEJ;YACA,IAAIlL,GAAG4C,mBAAmBsB,EAAeI,KAAK8G,uBAAuB,KAAK;gBACxElH,EAAeI,KAAK8G,wBAAwB,EAC1C,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA;AAEJ;YACA,OAAOlH;AACT;AACD,MA3FD,CA2FG2H,IAAU8G,EAAQ9G,YAAY8G,EAAQ9G,UAAU,CAAC;AACrD,EA9FD,CA8FG6G,WAAWA,SAAS,CAAC;;AAGxB,IAAIuB;;AACJ,CAAEC;IACA,SAASC,EAAYC,MAAoBC;QACvC,IAAI3Q,IAAU;QACd,IAAI1D,GAAG4B,gBAAgBwS,IAAkB;YACvC1Q,IAAU0Q,EAAgBE,MAAM,MAAM,GAAGC,MAAMC,KAAKH,GAAM;AAC5D;QACA,OAAO3Q;AACT;IACAwQ,EAASC,cAAcA;AACxB,EATD,CASGF,YAAYA,UAAU,CAAC;;AAG1B,IAAIQ;;AACJ,CAAEC;IACA,SAASC,EAAc1I;QACrB,KAAKjM,GAAGwB,QAAQyK,EAAeE,aAAaqE,UAAU;YACpDvE,EAAeE,aAAaqE,UAAUxK,WAAWE,OAAOO,SAASmO,MAAM,OAAO;YAC9E3I,EAAeE,aAAaqE,QAAQhI,MAAMC,UAAU;YACpDoM,EAAe5I;AACjB;AACF;IACAyI,EAASC,gBAAgBA;IACzB,SAASE,EAAe5I,GAAgB6I,IAAO;QAC7C,IAAIC,IAA0BD,IAAOnM,OAAOqM,mBAAmBrM,OAAOsM;QACtE,IAAIC,IAA4BJ,IAAOrO,SAASuO,mBAAmBvO,SAASwO;QAC5EF,EAAwB,cAAa,MAAMI,EAAKlJ;QAChDiJ,EAA0B,WAAU,MAAMC,EAAKlJ;AACjD;IACAyI,EAASG,iBAAiBA;IAC1B,SAASzN,EAAIJ,GAASiF,GAAgB3H,GAAM8Q,IAAe;QACzD,IAAIpO,MAAY,MAAM;YACpBA,EAAQqO,cAAe7N,KAAMyH,EAAKzH,GAAGyE,GAAgB3H,GAAM8Q;AAC7D;AACF;IACAV,EAAStN,MAAMA;IACf,SAAS6H,EAAKzH,GAAGyE,GAAgB3H,GAAM8Q;QACrCpP,WAAWuB,aAAaC;QACxB2N,EAAKlJ;QACLA,EAAeE,aAAamJ,iBAAiBC,YAAW;YACtDtJ,EAAeE,aAAaqE,QAAQnK,YAAY+O;YAChDnJ,EAAeE,aAAaqE,QAAQvJ,YAAY3C;YAChD2H,EAAeE,aAAaqE,QAAQhI,MAAMC,UAAU;YACpDzC,WAAWmC,2BAA2BX,GAAGyE,EAAeE,aAAaqE,SAASvE,EAAeuE,QAAQpI;AAAO,YAC3G6D,EAAeuE,QAAQC;AAC5B;IACAiE,EAASzF,OAAOA;IAChB,SAASkG,EAAKlJ;QACZ,IAAIjM,GAAGwB,QAAQyK,EAAeE,aAAaqE,UAAU;YACnD,IAAIvE,EAAeE,aAAamJ,mBAAmB,GAAG;gBACpDE,aAAavJ,EAAeE,aAAamJ;gBACzCrJ,EAAeE,aAAamJ,iBAAiB;AAC/C;YACA,IAAIrJ,EAAeE,aAAaqE,QAAQhI,MAAMC,YAAY,QAAQ;gBAChEwD,EAAeE,aAAaqE,QAAQhI,MAAMC,UAAU;AACtD;AACF;AACF;IACAiM,EAASS,OAAOA;IAChB,SAAS7N,EAAO2E;QACd,IAAIjM,GAAGwB,QAAQyK,EAAeE,aAAaqE,UAAU;YACnDvE,EAAeE,aAAaqE,QAAQiF,WAAWC,YAAYzJ,EAAeE,aAAaqE;AACzF;AACF;IACAkE,EAASpN,SAASA;AACnB,EAnDD,CAmDGmN,YAAYA,UAAU,CAAC;;AAG1B;IACE,IAAIkB,IAAiB,CAAC;IACtB,IAAIC,IAAiB,CAAC;IACtB,IAAIC,IAAuB;IAC3B,SAASC;QACP,MAAMC,IAAWJ,EAAe9C;QAChC,MAAMmD,IAAiBD,EAASxV;QAChC,KAAK,IAAI0V,IAAe,GAAGA,IAAeD,GAAgBC,KAAgB;YACxE,MAAMC,IAAczP,SAAS0P,qBAAqBJ,EAASE;YAC3D,MAAMG,IAAW,GAAG7B,MAAMC,KAAK0B;YAC/B,MAAMG,IAAiBD,EAAS7V;YAChC,KAAK,IAAI+V,IAAe,GAAGA,IAAeD,GAAgBC,KAAgB;gBACxE,KAAKC,EAAcH,EAASE,KAAgB;oBAC1C;AACF;AACF;AACF;AACF;IACA,SAASC,EAAcvP;QACrB,IAAItD,IAAU;QACd,IAAI1D,GAAGwB,QAAQwF,MAAYA,EAAQwP,aAAahL,UAAUE,6BAA6B;YACrF,MAAM+K,IAAqBzP,EAAQ0P,aAAalL,UAAUE;YAC1D,IAAI1L,GAAG2B,cAAc8U,IAAqB;gBACxC,MAAMxK,IAAiBlJ,SAASyB,oBAAoBiS,GAAoBd;gBACxE,IAAI1J,EAAerH,UAAU5E,GAAGyB,cAAcwK,EAAenL,SAAS;oBACpE6T,EAAchJ,QAAQE,QAAQE,kBAAkBE,EAAenL,QAAQkG;AACzE,uBAAO;oBACL,KAAK2O,EAAezQ,UAAU;wBAC5BC,QAAQC,MAAMuQ,EAAerR,KAAKgP,2BAA2BhO,QAAQ,sBAAsBkG,UAAUE;wBACrGhI,IAAU;AACZ;AACF;AACF,mBAAO;gBACL,KAAKiS,EAAezQ,UAAU;oBAC5BC,QAAQC,MAAMuQ,EAAerR,KAAKiP,yBAAyBjO,QAAQ,sBAAsBkG,UAAUE;oBACnGhI,IAAU;AACZ;AACF;AACF;QACA,OAAOA;AACT;IACA,SAASiR,EAAc1I;QACrBgI,QAAQE,YAAYlI,EAAegF,OAAOC,gBAAgBjF,EAAeE,aAAanF;QACtFyN,QAAQE,cAAc1I;QACtB,KAAKjM,GAAG2B,cAAcsK,EAAeE,aAAanF,QAAQ2P,KAAK;YAC7D1K,EAAeE,aAAanF,QAAQ2P,KAAKC,OAAOC;YAChD5K,EAAeE,aAAaK,QAAQ;AACtC;QACAP,EAAeE,aAAanF,QAAQX,YAAY;QAChD4F,EAAeE,aAAanF,QAAQ8P,gBAAgBtL,UAAUE;QAC9D,IAAIO,EAAesC,4BAA4BtC,EAAeqC,sBAAsB;YAClFtI,WAAWkB,SAAS+E,EAAeE,aAAanF,SAAS;AAC3D;QACA,KAAK4O,EAAemB,eAAe9K,EAAeE,aAAanF,QAAQ2P,KAAK;YAC1Ef,EAAe3J,EAAeE,aAAanF,QAAQ2P,MAAM1K;YACzD4J;AACF;QACAmB,EAAuB/K;QACvBgL,EAAoBhL;QACpBgI,QAAQE,YAAYlI,EAAegF,OAAOE,kBAAkBlF,EAAeE,aAAanF;AAC1F;IACA,SAASgQ,EAAuB/K,GAAgBiL,IAAkB;QAChE,IAAIlL,IAAO4J,EAAe3J,EAAeE,aAAanF,QAAQ2P,IAAI3K;QAClEyI,QAAQU,KAAKlJ;QACbA,EAAeE,aAAanF,QAAQC,YAAY;QAChDgF,EAAeE,aAAaI,WAAW;QACvCN,EAAeE,aAAaO,qBAAqB;QACjDyK,EAAsBlL,GAAgBD;QACtC,MAAMoL,IAAWpR,WAAWE,OAAO+F,EAAeE,aAAanF,SAAS,OAAO;QAC/E,IAAIkQ,GAAiB;YACnBlR,WAAWkB,SAASkQ,GAAU;AAChC;QACAC,EAAkBD,GAAUnL;QAC5B,IAAIA,EAAe4B,mCAAmC7N,GAAG+B,aAAaiK,IAAO;YAC3EA,IAAOA,EAAKC,EAAeE,aAAaC;AAC1C;QACA,IAAIpM,GAAG+B,aAAaiK,MAAShM,GAAGyC,WAAWuJ,IAAO;YAChDsL,EAAYF,GAAUnL,GAAgBD;AACxC,eAAO,IAAIhM,GAAGyB,cAAcuK,IAAO;YACjCuL,EAAaH,GAAUnL,GAAgBD;AACzC;QACA,IAAIoL,EAASnQ,cAAc,IAAgB;YACzCjB,WAAWc,eAAesQ,GAAU,QAAQ,gBAAgBzB,EAAerR,KAAK0P;YAChF/H,EAAeE,aAAaE,gBAAgB7D,MAAMC,UAAU;AAC9D,eAAO;YACLwD,EAAeE,aAAaE,gBAAgB7D,MAAMC,UAAU;AAC9D;AACF;IACA,SAAS0O,EAAsBlL,GAAgBD;QAC7C,IAAIC,EAAe+C,MAAMC,QAAQhD,EAAe+C,MAAME,oBAAoBjD,EAAe+C,MAAMG,gBAAgB;YAC7G,MAAMqI,IAAWxR,WAAWE,OAAO+F,EAAeE,aAAanF,SAAS,OAAO;YAC/E,IAAIiF,EAAesC,0BAA0B;gBAC3CiJ,EAASC,aAAa,MAAMC,EAAmBzL;AACjD;YACAA,EAAeE,aAAaE,kBAAkBrG,WAAWE,OAAOsR,GAAU,OAAO;YACjF,IAAIvL,EAAe+C,MAAMC,MAAM;gBAC7BjJ,WAAWc,eAAe0Q,GAAU,OAAO,SAASvL,EAAe+C,MAAM1K,MAAM2H,EAAeE,aAAaE;AAC7G;YACA,IAAIJ,EAAe+C,MAAMG,gBAAgB;gBACvC,MAAMwI,IAAO3R,WAAWc,eAAemF,EAAeE,aAAaE,iBAAiB,UAAU,YAAYsJ,EAAerR,KAAKqP;gBAC9HgE,EAAKC,UAAU,MAAMC,EAAoB5L,GAAgBD;gBACzD2L,EAAKF,aAAazR,WAAWuB;gBAC7BkN,QAAQrN,IAAIuQ,GAAM1L,GAAgB0J,EAAerR,KAAK+O;AACxD;YACA,IAAIpH,EAAe+C,MAAME,kBAAkB;gBACzC,MAAM4I,IAAU9R,WAAWc,eAAemF,EAAeE,aAAaE,iBAAiB,UAAU,WAAWsJ,EAAerR,KAAKoP;gBAChIoE,EAAQF,UAAU,MAAMrG,EAAUtF;gBAClC6L,EAAQL,aAAazR,WAAWuB;gBAChCkN,QAAQrN,IAAI0Q,GAAS7L,GAAgB0J,EAAerR,KAAK8O;gBACzD,MAAM2E,IAAW/R,WAAWc,eAAemF,EAAeE,aAAaE,iBAAiB,UAAU,YAAYsJ,EAAerR,KAAKmP;gBAClIsE,EAASH,UAAU,MAAMpG,EAAWvF;gBACpC8L,EAASN,aAAazR,WAAWuB;gBACjCkN,QAAQrN,IAAI2Q,GAAU9L,GAAgB0J,EAAerR,KAAK6O;AAC5D;YACA,IAAIlH,EAAe4B,mCAAmC7N,GAAG+B,aAAaiK,MAASA,EAAKzL,SAAS,GAAG;gBAC9F0L,EAAeE,aAAaQ,aAAa3G,WAAWc,eAAemF,EAAeE,aAAaE,iBAAiB,UAAU,QAAQsJ,EAAerR,KAAKwP;gBACtJ7H,EAAeE,aAAaQ,WAAW8K,aAAazR,WAAWuB;gBAC/DkN,QAAQrN,IAAI6E,EAAeE,aAAaQ,YAAYV,GAAgB0J,EAAerR,KAAKsP;gBACxF,IAAI3H,EAAeE,aAAaC,wBAAwB,GAAG;oBACzDH,EAAeE,aAAaQ,WAAWiL,UAAU,MAAMI,EAAW/L;AACpE,uBAAO;oBACLA,EAAeE,aAAaQ,WAAWsL,WAAW;AACpD;gBACAhM,EAAeE,aAAaS,aAAa5G,WAAWc,eAAemF,EAAeE,aAAaE,iBAAiB,UAAU,QAAQsJ,EAAerR,KAAKyP;gBACtJ9H,EAAeE,aAAaS,WAAW6K,aAAazR,WAAWuB;gBAC/DkN,QAAQrN,IAAI6E,EAAeE,aAAaS,YAAYX,GAAgB0J,EAAerR,KAAKuP;gBACxF,IAAI5H,EAAeE,aAAaC,wBAAwBJ,EAAKzL,SAAS,GAAG;oBACvE0L,EAAeE,aAAaS,WAAWgL,UAAU,MAAMM,EAAWjM;AACpE,uBAAO;oBACLA,EAAeE,aAAaS,WAAWqL,WAAW;AACpD;AACF,mBAAO;gBACL,IAAIjY,GAAG+B,aAAaiK,IAAO;oBACzBC,EAAe4B,kCAAkC;AACnD;AACF;AACF;AACF;IACA,SAAS6J,EAAmBzL;QAC1B,IAAIA,EAAeE,aAAanF,QAAQG,UAAUgR,SAAS,gBAAgB;YACzEnS,WAAWqB,YAAY4E,EAAeE,aAAanF,SAAS;AAC9D,eAAO;YACLhB,WAAWkB,SAAS+E,EAAeE,aAAanF,SAAS;AAC3D;AACF;IACA,SAAS6Q,EAAoB5L,GAAgBD;QAC3C,IAAIoM,IAAW;QACf,IAAIC,IAAkBC;QACtB,IAAItY,GAAG4B,gBAAgBqK,EAAegF,OAAOmB,qBAAqB;YAChEiG,IAAkBpM,EAAegF,OAAOmB;AAC1C;QACA,IAAInG,EAAe6B,uBAAuB7B,EAAe4B,iCAAiC;YACxFuK,IAAWvT,KAAK0T,UAAUvM,EAAKC,EAAeE,aAAaC,wBAAwBiM,GAAiBpM,EAAe+B;AACrH,eAAO;YACLoK,IAAWvT,KAAK0T,UAAUvM,GAAMqM,GAAiBpM,EAAe+B;AAClE;QACAwK,UAAUC,UAAUC,UAAUN;QAC9BnE,QAAQE,YAAYlI,EAAegF,OAAOK,WAAW8G;AACvD;IACA,SAAS7G,EAAUtF;QACjBA,EAAemB,kBAAkB;QACjCnB,EAAeE,aAAaM,oBAAoB,CAAC;QACjDuK,EAAuB/K;QACvBgI,QAAQE,YAAYlI,EAAegF,OAAOM,WAAWtF,EAAeE,aAAanF;AACnF;IACA,SAASwK,EAAWvF;QAClBA,EAAemB,kBAAkB;QACjCnB,EAAeE,aAAaM,oBAAoB,CAAC;QACjDuK,EAAuB/K;QACvBgI,QAAQE,YAAYlI,EAAegF,OAAOO,YAAYvF,EAAeE,aAAanF;AACpF;IACA,SAASgR,EAAW/L;QAClB,IAAIA,EAAeE,aAAaQ,eAAe,SAASV,EAAeE,aAAaQ,WAAWsL,UAAU;YACvGhM,EAAeE,aAAaC;YAC5B4K,EAAuB/K,GAAgB;YACvCgI,QAAQE,YAAYlI,EAAegF,OAAO+G,YAAY/L,EAAeE,aAAanF;AACpF;AACF;IACA,SAASkR,EAAWjM;QAClB,IAAIA,EAAeE,aAAaS,eAAe,SAASX,EAAeE,aAAaS,WAAWqL,UAAU;YACvGhM,EAAeE,aAAaC;YAC5B4K,EAAuB/K,GAAgB;YACvCgI,QAAQE,YAAYlI,EAAegF,OAAOiH,YAAYjM,EAAeE,aAAanF;AACpF;AACF;IACA,SAASsR,EAAsBK,GAAGtY;QAChC,IAAIL,GAAG8B,cAAczB,IAAQ;YAC3BA,IAAQA,EAAMU;AAChB,eAAO,IAAIf,GAAGmC,cAAc9B,IAAQ;YAClCA,IAAQA,EAAMU;AAChB,eAAO,IAAIf,GAAG4B,gBAAgBvB,IAAQ;YACpCA,IAAQ0C,SAASkB,gBAAgB5D,GAAOsV;AAC1C;QACA,OAAOtV;AACT;IACA,SAAS4W,EAAoBhL,GAAgB2M,IAAY;QACvD,MAAMC,IAAeD,IAAYnS,SAASuO,mBAAmBvO,SAASwO;QACtE4D,EAAa,YAAYrR,KAAMsR,EAAgBtR,GAAGyE;AACpD;IACA,SAAS6M,EAAgBtR,GAAGyE;QAC1B,IAAIA,EAAeoC,uBAAuBwH,MAAyB,KAAKD,EAAemB,eAAe9K,EAAeE,aAAanF,QAAQ2P,KAAK;YAC7I,IAAInP,EAAEuR,SAAS,aAAwB;gBACrCvR,EAAEC;gBACFuQ,EAAW/L;AACb,mBAAO,IAAIzE,EAAEuR,SAAS,cAA0B;gBAC9CvR,EAAEC;gBACFyQ,EAAWjM;AACb,mBAAO,IAAIzE,EAAEuR,SAAS,WAAoB;gBACxCvR,EAAEC;gBACF+J,EAAWvF;AACb,mBAAO,IAAIzE,EAAEuR,SAAS,aAAwB;gBAC5CvR,EAAEC;gBACF8J,EAAUtF;AACZ;AACF;AACF;IACA,SAASsL,EAAapR,GAAW8F,GAAgBD;QAC/C,MAAMgN,IAAQhZ,GAAGsC,WAAW0J;QAC5B,MAAM5F,IAAO4S,IAAQ,QAAkB;QACvC,MAAMC,IAAaD,IAAQjW,SAASyC,iBAAiBwG,KAAQA;QAC7D,MAAMgF,IAAgBkI,EAAuBD,GAAYhN;QACzD,MAAMkN,IAAgBnI,EAAczQ;QACpC,IAAI4Y,MAAkB,MAAMlN,EAAemD,OAAOa,cAAc;YAC9D,MAAMmJ,IAAkBpT,WAAWE,OAAOC,GAAW,OAAO;YAC5D,MAAMkT,IAAqBrT,WAAWE,OAAOC,GAAW,OAAO;YAC/D,MAAMmT,IAAQrN,EAAeiB,mBAAmBlH,WAAWE,OAAOkT,GAAiB,OAAO,gBAAgB;YAC1G,MAAMG,IAAYvT,WAAWc,eAAesS,GAAiB,QAAQnN,EAAeyB,kBAAkB,GAAGtH,iBAAoB,cAAc4S,IAAQrD,EAAerR,KAAK2O,UAAU0C,EAAerR,KAAKyO;YACrM,IAAIyG,IAAe;YACnB,IAAIvN,EAAe4B,iCAAiC;gBAClD,IAAI4L,IAAiBxN,EAAee,2BAA2Bf,EAAeE,aAAaC,sBAAsBrL,cAAckL,EAAeE,aAAaC,wBAAwB,GAAGrL;gBACtL,IAAIkL,EAAegC,wBAAwB;oBACzCwL,IAAiB,IAAIA,KAAkB;AACzC;gBACAzT,WAAWc,eAAesS,GAAiB,QAAQnN,EAAeyB,kBAAkB,GAAGtH,uBAA0B,oBAAoBqT,GAAgBF;AACvJ;YACA,IAAItN,EAAec,cAAcoM,IAAgB,GAAG;gBAClDnT,WAAWc,eAAesS,GAAiB,QAAQnN,EAAeyB,kBAAkB,GAAGtH,YAAe,SAAS,IAAI+S;AACrH;YACA,IAAIlN,EAAeiC,+BAA+B;gBAChDsL,IAAexT,WAAWc,eAAesS,GAAiB,QAAQ,kBAAkB;AACtF;YACAM,EAAmBJ,GAAO,MAAMD,GAAoBpN,GAAgBgN,GAAYjI,GAAewI,GAAc,OAAO,MAAM;YAC1HG,EAAmB1N,GAAgBsN,GAAWvN,GAAM5F,GAAM;AAC5D;AACF;IACA,SAASkR,EAAYnR,GAAW8F,GAAgBD;QAC9C,MAAM4N,IAAQ5Z,GAAGyC,WAAWuJ;QAC5B,MAAM5F,IAAOwT,IAAQ,QAAkB;QACvC,MAAMC,IAAUD,IAAQ7W,SAAS8C,gBAAgBmG,KAAQA;QACzD,MAAMoN,IAAkBpT,WAAWE,OAAOC,GAAW,OAAO;QAC5D,MAAMkT,IAAqBrT,WAAWE,OAAOC,GAAW,OAAO;QAC/D,MAAMmT,IAAQrN,EAAeiB,mBAAmBlH,WAAWE,OAAOkT,GAAiB,OAAO,gBAAgB;QAC1G,MAAMG,IAAYvT,WAAWc,eAAesS,GAAiB,QAAQnN,EAAeyB,kBAAkB,GAAGtH,iBAAoB,cAAcwT,IAAQjE,EAAerR,KAAK4O,UAAUyC,EAAerR,KAAK0O;QACrM,IAAI8G,IAAiB;QACrB,IAAI7N,EAAec,YAAY;YAC7B/G,WAAWc,eAAesS,GAAiB,QAAQnN,EAAeyB,kBAAkB,GAAGtH,YAAe,SAAS,IAAIyT,EAAQtZ;AAC7H;QACA,IAAI0L,EAAeiC,+BAA+B;YAChD4L,IAAiB9T,WAAWc,eAAesS,GAAiB,QAAQ,kBAAkB;AACxF;QACAW,EAAkBT,GAAO,MAAMD,GAAoBpN,GAAgB4N,GAASC,GAAgB,OAAO,MAAM;QACzGH,EAAmB1N,GAAgBsN,GAAWvN,GAAM5F,GAAM;AAC5D;IACA,SAASsT,EAAmBJ,GAAOU,GAAMX,GAAoBpN,GAAgBD,GAAMgF,GAAewI,GAAcS,GAA2BC,GAAYC;QACrJ,MAAMC,IAAmBpJ,EAAczQ;QACvC,KAAK,IAAI8Z,IAAgB,GAAGA,IAAgBD,GAAkBC,KAAiB;YAC7E,MAAMC,IAAetJ,EAAcqJ;YACnC,MAAME,IAAcJ,MAAa,KAAiBG,IAAe,GAAGH,IAAW,OAAuBG;YACtG,IAAItO,EAAK+K,eAAeuD,IAAe;gBACrCE,EAAYxO,GAAMqN,GAAoBpN,GAAgBqO,GAActO,EAAKsO,IAAeD,MAAkBD,IAAmB,GAAG,OAAOG;AACzI;AACF;QACA,IAAItO,EAAeiC,+BAA+B;YAChDuM,EAAoBxO,GAAgBoN,GAAoB,KAAKY,GAA2BC;AAC1F;QACAQ,EAAczO,GAAgBqN,GAAOU,GAAMX,GAAoBG;AACjE;IACA,SAASO,EAAkBT,GAAOU,GAAMX,GAAoBpN,GAAgBD,GAAM8N,GAAgBG,GAA2BC,GAAYC;QACvI,MAAMQ,IAAa3O,EAAKzL;QACxB,KAAK0L,EAAeuB,oBAAoB;YACtC,KAAK,IAAIoN,IAAa,GAAGA,IAAaD,GAAYC,KAAc;gBAC9D,MAAMC,IAAcC,EAAcF,GAAY3O;gBAC9C,MAAMsO,IAAcJ,MAAa,KAAiBU,EAAY9Z,aAAa,GAAGoZ,IAAW,OAAuBU;gBAChHL,EAAYxO,GAAMqN,GAAoBpN,GAAgB8O,EAAkB9O,GAAgB4O,GAAaF,IAAa3O,EAAK4O,IAAaA,MAAeD,IAAa,GAAG,MAAMJ;AAC3K;AACF,eAAO;YACL,KAAK,IAAIS,IAAaL,GAAYK,OAAgB;gBAChD,MAAMH,IAAcC,EAAcE,GAAY/O;gBAC9C,MAAMsO,IAAcJ,MAAa,KAAiBU,EAAY9Z,aAAa,GAAGoZ,IAAW,OAAuBU;gBAChHL,EAAYxO,GAAMqN,GAAoBpN,GAAgB8O,EAAkB9O,GAAgB4O,GAAaF,IAAa3O,EAAKgP,IAAaA,MAAe,GAAG,MAAMT;AAC9J;AACF;QACA,IAAItO,EAAeiC,+BAA+B;YAChDuM,EAAoBxO,GAAgBoN,GAAoB,KAAKY,GAA2BC;AAC1F;QACAQ,EAAczO,GAAgBqN,GAAOU,GAAMX,GAAoBS;AACjE;IACA,SAASU,EAAYxO,GAAM7F,GAAW8F,GAAgBgP,GAAM5a,GAAO6Z,GAAYgB,GAAaf;QAC1F,MAAMgB,IAAkBnV,WAAWE,OAAOC,GAAW,OAAO;QAC5D,MAAMmT,IAAQrN,EAAeiB,mBAAmBlH,WAAWE,OAAOiV,GAAiB,OAAO,cAAc;QACxG,IAAIC,IAAa;QACjB,IAAIC,IAAe;QACnB,IAAIC,IAAU;QACd,IAAIlV,IAAO;QACX,MAAMkU,IAAetU,WAAWc,eAAeqU,GAAiB,QAAQ,SAASF;QACjF,IAAIlK,IAAe;QACnB,IAAImJ,GAAY;YACdlU,WAAWkB,SAASiU,GAAiB;AACvC;QACAnV,WAAWc,eAAeqU,GAAiB,QAAQ,SAAS;QAC5D,KAAKD,GAAa;YAChBK,EAAyBtP,GAAgBD,GAAMiP,GAAMX;AACvD;QACA,IAAIja,MAAU,MAAM;YAClB,KAAK4L,EAAemD,OAAOC,YAAY;gBACrC+L,IAAanP,EAAeyB,kBAAkB,GAAG,2BAAsC;gBACvF2N,IAAerV,WAAWc,eAAeqU,GAAiB,QAAQC,GAAY;gBAC9EhV,IAAO;gBACP,IAAIpG,GAAG4B,gBAAgBqK,EAAegF,OAAOgB,eAAe;oBAC1DgC,QAAQE,YAAYlI,EAAegF,OAAOgB,cAAcoJ;AAC1D;gBACAG,EAAYvP,GAAgBkP,GAAiBjB;AAC/C,mBAAO;gBACLoB,IAAU;AACZ;AACF,eAAO,IAAIjb,WAAe,GAAG;YAC3B,KAAK4L,EAAemD,OAAOc,iBAAiB;gBAC1CkL,IAAanP,EAAeyB,kBAAkB,GAAG,gCAAgD;gBACjG2N,IAAerV,WAAWc,eAAeqU,GAAiB,QAAQC,GAAY;gBAC9EhV,IAAO;gBACP,IAAIpG,GAAG4B,gBAAgBqK,EAAegF,OAAOoB,oBAAoB;oBAC/D4B,QAAQE,YAAYlI,EAAegF,OAAOoB,mBAAmBgJ;AAC/D;gBACAG,EAAYvP,GAAgBkP,GAAiBjB;AAC/C,mBAAO;gBACLoB,IAAU;AACZ;AACF,eAAO,IAAItb,GAAG4B,gBAAgBvB,IAAQ;YACpC,KAAK4L,EAAemD,OAAOE,gBAAgB;gBACzC8L,IAAanP,EAAeyB,kBAAkB,GAAG,+BAA8C;gBAC/F2N,IAAerV,WAAWc,eAAeqU,GAAiB,QAAQC,GAAYrY,SAASkB,gBAAgB5D,GAAOsV;gBAC9GvP,IAAO;gBACP,IAAIpG,GAAG4B,gBAAgBqK,EAAegF,OAAOe,mBAAmB;oBAC9DiC,QAAQE,YAAYlI,EAAegF,OAAOe,kBAAkBqJ;AAC9D;gBACAG,EAAYvP,GAAgBkP,GAAiBjB;AAC/C,mBAAO;gBACLoB,IAAU;AACZ;AACF,eAAO,IAAItb,GAAG0B,eAAerB,IAAQ;YACnC,KAAK4L,EAAemD,OAAOI,eAAe;gBACxC4L,IAAanP,EAAeyB,kBAAkB,GAAG,oBAAkC;gBACnF2N,IAAerV,WAAWc,eAAeqU,GAAiB,QAAQC,GAAY/a;gBAC9E+F,IAAO;gBACP2K,IAAe9E,EAAe8E,aAAavB;gBAC3CiM,EAA0BxP,GAAgBD,GAAMiP,GAAM5a,GAAOgb,GAAcH,GAAanK;gBACxF,IAAI/Q,GAAG4B,gBAAgBqK,EAAegF,OAAOS,kBAAkB;oBAC7DuC,QAAQE,YAAYlI,EAAegF,OAAOS,iBAAiB2J;AAC7D;gBACAG,EAAYvP,GAAgBkP,GAAiBjB;AAC/C,mBAAO;gBACLoB,IAAU;AACZ;AACF,eAAO,IAAItb,GAAGkC,eAAe7B,IAAQ;YACnC,KAAK4L,EAAemD,OAAOK,eAAe;gBACxC,MAAMiM,IAAW3Y,SAASc,2BAA2BxD,GAAO4L,EAAe0B;gBAC3EyN,IAAanP,EAAeyB,kBAAkB,GAAG,oBAAkC;gBACnF2N,IAAerV,WAAWc,eAAeqU,GAAiB,QAAQC,GAAYM;gBAC9EtV,IAAO;gBACP2K,IAAe9E,EAAe8E,aAAatB;gBAC3CgM,EAA0BxP,GAAgBD,GAAMiP,GAAM5a,GAAOgb,GAAcH,GAAanK;gBACxF,IAAI/Q,GAAG4B,gBAAgBqK,EAAegF,OAAOU,kBAAkB;oBAC7DsC,QAAQE,YAAYlI,EAAegF,OAAOU,iBAAiB0J;AAC7D;gBACAG,EAAYvP,GAAgBkP,GAAiBjB;AAC/C,mBAAO;gBACLoB,IAAU;AACZ;AACF,eAAO,IAAItb,GAAG6B,cAAcxB,IAAQ;YAClC,KAAK4L,EAAemD,OAAOM,cAAc;gBACvC0L,IAAanP,EAAeyB,kBAAkB,GAAG,mBAAgC;gBACjF2N,IAAerV,WAAWc,eAAeqU,GAAiB,QAAQC,GAAY/a;gBAC9E+F,IAAO;gBACP2K,IAAe9E,EAAe8E,aAAarB;gBAC3C+L,EAA0BxP,GAAgBD,GAAMiP,GAAM5a,GAAOgb,GAAcH,GAAanK;gBACxF,IAAI/Q,GAAG4B,gBAAgBqK,EAAegF,OAAOW,iBAAiB;oBAC5DqC,QAAQE,YAAYlI,EAAegF,OAAOW,gBAAgByJ;AAC5D;gBACAG,EAAYvP,GAAgBkP,GAAiBjB;AAC/C,mBAAO;gBACLoB,IAAU;AACZ;AACF,eAAO,IAAItb,GAAG8B,cAAczB,IAAQ;YAClC,KAAK4L,EAAemD,OAAOW,cAAc;gBACvCqL,IAAanP,EAAeyB,kBAAkB,GAAG,mBAAgC;gBACjF2N,IAAerV,WAAWc,eAAeqU,GAAiB,QAAQC,GAAY/a;gBAC9E+F,IAAO;gBACP2K,IAAe9E,EAAe8E,aAAahB;gBAC3C0L,EAA0BxP,GAAgBD,GAAMiP,GAAM5a,GAAOgb,GAAcH,GAAanK;gBACxF,IAAI/Q,GAAG4B,gBAAgBqK,EAAegF,OAAOY,iBAAiB;oBAC5DoC,QAAQE,YAAYlI,EAAegF,OAAOY,gBAAgBwJ;AAC5D;gBACAG,EAAYvP,GAAgBkP,GAAiBjB;AAC/C,mBAAO;gBACLoB,IAAU;AACZ;AACF,eAAO,IAAItb,GAAG2B,cAActB,MAAUL,GAAGE,OAAOmB,KAAKhB,IAAQ;YAC3D,KAAK4L,EAAemD,OAAOe,YAAY;gBACrCiL,IAAanP,EAAeyB,kBAAkB,GAAG,iBAA4B;gBAC7E2N,IAAerV,WAAWc,eAAeqU,GAAiB,QAAQC,GAAY/a;gBAC9E+F,IAAO;gBACP2K,IAAe9E,EAAe8E,aAAaZ;gBAC3CsL,EAA0BxP,GAAgBD,GAAMiP,GAAM5a,GAAOgb,GAAcH,GAAanK;gBACxF,IAAI/Q,GAAG4B,gBAAgBqK,EAAegF,OAAOqB,eAAe;oBAC1D2B,QAAQE,YAAYlI,EAAegF,OAAOqB,cAAc+I;AAC1D;gBACAG,EAAYvP,GAAgBkP,GAAiBjB;AAC/C,mBAAO;gBACLoB,IAAU;AACZ;AACF,eAAO,IAAItb,GAAG2B,cAActB,OAAWL,GAAGE,OAAOE,SAASC,MAAUL,GAAGE,OAAOQ,SAASL,KAAS;YAC9F,KAAK4L,EAAemD,OAAOgB,aAAa;gBACtCgL,IAAanP,EAAeyB,kBAAkB,GAAG,kBAA8B;gBAC/E2N,IAAerV,WAAWc,eAAeqU,GAAiB,QAAQC,GAAY/a;gBAC9E+F,IAAO;gBACP2K,IAAe9E,EAAe8E,aAAaX;gBAC3C,IAAInE,EAAeyB,iBAAiB;oBAClC2N,EAAa7S,MAAMmT,QAAQtb;AAC7B;gBACAob,EAA0BxP,GAAgBD,GAAMiP,GAAM5a,GAAOgb,GAAcH,GAAanK;gBACxF,IAAI/Q,GAAG4B,gBAAgBqK,EAAegF,OAAOsB,gBAAgB;oBAC3D0B,QAAQE,YAAYlI,EAAegF,OAAOsB,eAAe8I;AAC3D;gBACAG,EAAYvP,GAAgBkP,GAAiBjB;AAC/C,mBAAO;gBACLoB,IAAU;AACZ;AACF,eAAO,IAAItb,GAAG2B,cAActB,IAAQ;YAClC,KAAK4L,EAAemD,OAAOO,cAAc;gBACvC,IAAI1D,EAAenH,MAAM6L,qBAAqB3Q,GAAGE,OAAOW,QAAQR,IAAQ;oBACtEma,EAAYxO,GAAM7F,GAAW8F,GAAgBgP,GAAM5a,EAAMU,WAAWC,cAAcC,WAAW,QAAQiZ,GAAYgB,GAAaf;oBAC9HmB,IAAU;AACZ,uBAAO,IAAIrP,EAAenH,MAAM8L,qBAAqBpQ,MAAMH,IAAQ;oBACjEma,EAAYxO,GAAM7F,GAAW8F,GAAgBgP,GAAMW,WAAWvb,IAAQ6Z,GAAYgB,GAAaf;oBAC/FmB,IAAU;AACZ,uBAAO,IAAIrP,EAAenH,MAAM4L,kBAAkB1Q,GAAGE,OAAOgB,KAAKb,IAAQ;oBACvEma,EAAYxO,GAAM7F,GAAW8F,GAAgBgP,GAAM,IAAI7Z,KAAKf,IAAQ6Z,GAAYgB,GAAaf;oBAC7FmB,IAAU;AACZ,uBAAO;oBACL,IAAIrP,EAAe2B,sBAAsB,KAAKvN,EAAME,SAAS0L,EAAe2B,qBAAqB;wBAC/FvN,IAAQA,EAAMI,UAAU,GAAGwL,EAAe2B,uBAAuB+H,EAAerR,KAAKkP;AACvF;oBACA,MAAMqI,IAAiB5P,EAAekB,mBAAmB,IAAI9M,OAAWA;oBACxE+a,IAAanP,EAAeyB,kBAAkB,GAAG,mBAAgC;oBACjF2N,IAAerV,WAAWc,eAAeqU,GAAiB,QAAQC,GAAYS;oBAC9EzV,IAAO;oBACP2K,IAAe9E,EAAe8E,aAAapB;oBAC3C8L,EAA0BxP,GAAgBD,GAAMiP,GAAM5a,GAAOgb,GAAcH,GAAanK;oBACxF,IAAI/Q,GAAG4B,gBAAgBqK,EAAegF,OAAOa,iBAAiB;wBAC5DmC,QAAQE,YAAYlI,EAAegF,OAAOa,gBAAgBuJ;AAC5D;oBACAG,EAAYvP,GAAgBkP,GAAiBjB;AAC/C;AACF,mBAAO;gBACLoB,IAAU;AACZ;AACF,eAAO,IAAItb,GAAGiC,YAAY5B,IAAQ;YAChC,KAAK4L,EAAemD,OAAOQ,YAAY;gBACrCwL,IAAanP,EAAeyB,kBAAkB,GAAG,iBAA4B;gBAC7E2N,IAAerV,WAAWc,eAAeqU,GAAiB,QAAQC,GAAYrR,SAASS,2BAA2BmL,GAAgBtV,GAAO4L,EAAegB;gBACxJ7G,IAAO;gBACP2K,IAAe9E,EAAe8E,aAAanB;gBAC3C6L,EAA0BxP,GAAgBD,GAAMiP,GAAM5a,GAAOgb,GAAcH,GAAanK;gBACxF,IAAI/Q,GAAG4B,gBAAgBqK,EAAegF,OAAOc,eAAe;oBAC1DkC,QAAQE,YAAYlI,EAAegF,OAAOc,cAAcsJ;AAC1D;gBACAG,EAAYvP,GAAgBkP,GAAiBjB;AAC/C,mBAAO;gBACLoB,IAAU;AACZ;AACF,eAAO,IAAItb,GAAGmC,cAAc9B,IAAQ;YAClC,KAAK4L,EAAemD,OAAOY,cAAc;gBACvCoL,IAAanP,EAAeyB,kBAAkB,GAAG,mBAAgC;gBACjF2N,IAAerV,WAAWc,eAAeqU,GAAiB,QAAQC,GAAY/a,EAAMU;gBACpFqF,IAAO;gBACP,IAAIpG,GAAG4B,gBAAgBqK,EAAegF,OAAOkB,iBAAiB;oBAC5D8B,QAAQE,YAAYlI,EAAegF,OAAOkB,gBAAgBkJ;AAC5D;gBACAG,EAAYvP,GAAgBkP,GAAiBjB;AAC/C,mBAAO;gBACLoB,IAAU;AACZ;AACF,eAAO,IAAItb,GAAGoC,cAAc/B,IAAQ;YAClC,KAAK4L,EAAemD,OAAOiB,cAAc;gBACvC+K,IAAanP,EAAeyB,kBAAkB,GAAG,mBAAgC;gBACjF2N,IAAerV,WAAWc,eAAeqU,GAAiB,QAAQC,GAAY/a,EAAMyb,OAAO/a;gBAC3FqF,IAAO;gBACP,IAAIpG,GAAG4B,gBAAgBqK,EAAegF,OAAOwB,iBAAiB;oBAC5DwB,QAAQE,YAAYlI,EAAegF,OAAOwB,gBAAgB4I;AAC5D;gBACAG,EAAYvP,GAAgBkP,GAAiBjB;AAC/C,mBAAO;gBACLoB,IAAU;AACZ;AACF,eAAO,IAAItb,GAAGyC,WAAWpC,IAAQ;YAC/B,KAAK4L,EAAemD,OAAOmB,WAAW;gBACpC,MAAMT,IAAc/M,SAAS8C,gBAAgBxF;gBAC7C,MAAM0b,IAAc/V,WAAWE,OAAOiV,GAAiB,QAAQlP,EAAeyB,kBAAkB,QAAkB;gBAClH,MAAMsO,IAAoBhW,WAAWE,OAAOiV,GAAiB,OAAO;gBACpE,IAAIrB,IAAiB;gBACrB,IAAII,GAAY;oBACdlU,WAAWkB,SAAS8U,GAAmB;AACzC;gBACAX,IAAerV,WAAWc,eAAeiV,GAAa,QAAQ,cAAcpG,EAAerR,KAAK4O;gBAChG9M,IAAO;gBACP,IAAI6F,EAAec,YAAY;oBAC7B/G,WAAWc,eAAeiV,GAAa,QAAQ,SAAS,IAAIjM,EAAYvP;AAC1E;gBACA,IAAI0L,EAAeiC,+BAA+B;oBAChD4L,IAAiB9T,WAAWc,eAAeiV,GAAa,QAAQ,kBAAkB;AACpF;gBACA,IAAI/B,IAAOwB,EAAYvP,GAAgB8P,GAAa7B;gBACpDH,EAAkBT,GAAOU,GAAMgC,GAAmB/P,GAAgB6D,GAAagK,GAAgB,MAAMI,GAAYC;AACnH,mBAAO;gBACLmB,IAAU;AACZ;AACF,eAAO,IAAItb,GAAG+B,aAAa1B,IAAQ;YACjC,KAAK4L,EAAemD,OAAOU,aAAa;gBACtC,MAAMiM,IAAc/V,WAAWE,OAAOiV,GAAiB,QAAQlP,EAAeyB,kBAAkB,UAAsB;gBACtH,MAAMsO,IAAoBhW,WAAWE,OAAOiV,GAAiB,OAAO;gBACpE,IAAIrB,IAAiB;gBACrB,IAAII,GAAY;oBACdlU,WAAWkB,SAAS8U,GAAmB;AACzC;gBACAX,IAAerV,WAAWc,eAAeiV,GAAa,QAAQ,cAAcpG,EAAerR,KAAK0O;gBAChG5M,IAAO;gBACP,IAAI6F,EAAec,YAAY;oBAC7B/G,WAAWc,eAAeiV,GAAa,QAAQ,SAAS,IAAI1b,EAAME;AACpE;gBACA,IAAI0L,EAAeiC,+BAA+B;oBAChD4L,IAAiB9T,WAAWc,eAAeiV,GAAa,QAAQ,kBAAkB;AACpF;gBACA,IAAI/B,IAAOwB,EAAYvP,GAAgB8P,GAAa7B;gBACpDH,EAAkBT,GAAOU,GAAMgC,GAAmB/P,GAAgB5L,GAAOyZ,GAAgB,MAAMI,GAAYC;AAC7G,mBAAO;gBACLmB,IAAU;AACZ;AACF,eAAO,IAAItb,GAAGsC,WAAWjC,IAAQ;YAC/B,KAAK4L,EAAemD,OAAOkB,WAAW;gBACpC,MAAM2L,IAAclZ,SAASyC,iBAAiBnF;gBAC9C,MAAM2Q,IAAgBkI,EAAuB+C,GAAahQ;gBAC1D,MAAMkN,IAAgBnI,EAAczQ;gBACpC,IAAI4Y,MAAkB,KAAKlN,EAAemD,OAAOa,cAAc;oBAC7DqL,IAAU;AACZ,uBAAO;oBACL,MAAMS,IAAc/V,WAAWE,OAAOiV,GAAiB,QAAQlP,EAAeyB,kBAAkB,QAAkB;oBAClH,MAAM2L,IAAqBrT,WAAWE,OAAOiV,GAAiB,OAAO;oBACrE,IAAI3B,IAAe;oBACnB,IAAIU,GAAY;wBACdlU,WAAWkB,SAASmS,GAAoB;AAC1C;oBACAgC,IAAerV,WAAWc,eAAeiV,GAAa,QAAQ,cAAcpG,EAAerR,KAAK2O;oBAChG7M,IAAO;oBACP,IAAI6F,EAAec,cAAcoM,IAAgB,GAAG;wBAClDnT,WAAWc,eAAeiV,GAAa,QAAQ,SAAS,IAAI5C;AAC9D;oBACA,IAAIlN,EAAeiC,+BAA+B;wBAChDsL,IAAexT,WAAWc,eAAeiV,GAAa,QAAQ,kBAAkB;AAClF;oBACA,IAAI/B,IAAOwB,EAAYvP,GAAgB8P,GAAa7B;oBACpDR,EAAmBJ,GAAOU,GAAMX,GAAoBpN,GAAgBgQ,GAAajL,GAAewI,GAAc,MAAMU,GAAYC;AAClI;AACF,mBAAO;gBACLmB,IAAU;AACZ;AACF,eAAO,IAAItb,GAAGyB,cAAcpB,IAAQ;YAClC,KAAK4L,EAAemD,OAAOS,cAAc;gBACvC,MAAMmB,IAAgBkI,EAAuB7Y,GAAO4L;gBACpD,MAAMkN,IAAgBnI,EAAczQ;gBACpC,IAAI4Y,MAAkB,KAAKlN,EAAemD,OAAOa,cAAc;oBAC7DqL,IAAU;AACZ,uBAAO;oBACL,MAAMS,IAAc/V,WAAWE,OAAOiV,GAAiB,QAAQlP,EAAeyB,kBAAkB,WAAwB;oBACxH,MAAM2L,IAAqBrT,WAAWE,OAAOiV,GAAiB,OAAO;oBACrE,IAAI3B,IAAe;oBACnB,IAAIU,GAAY;wBACdlU,WAAWkB,SAASmS,GAAoB;AAC1C;oBACAgC,IAAerV,WAAWc,eAAeiV,GAAa,QAAQ,cAAcpG,EAAerR,KAAKyO;oBAChG3M,IAAO;oBACP,IAAI6F,EAAec,cAAcoM,IAAgB,GAAG;wBAClDnT,WAAWc,eAAeiV,GAAa,QAAQ,SAAS,IAAI5C;AAC9D;oBACA,IAAIlN,EAAeiC,+BAA+B;wBAChDsL,IAAexT,WAAWc,eAAeiV,GAAa,QAAQ,kBAAkB;AAClF;oBACA,IAAI/B,IAAOwB,EAAYvP,GAAgB8P,GAAa7B;oBACpDR,EAAmBJ,GAAOU,GAAMX,GAAoBpN,GAAgB5L,GAAO2Q,GAAewI,GAAc,MAAMU,GAAYC;AAC5H;AACF,mBAAO;gBACLmB,IAAU;AACZ;AACF,eAAO;YACL,KAAKrP,EAAemD,OAAOG,eAAe;gBACxC6L,IAAanP,EAAeyB,kBAAkB,GAAG,8BAA4C;gBAC7F2N,IAAerV,WAAWc,eAAeqU,GAAiB,QAAQC,GAAY/a,EAAMU;gBACpFqF,IAAO;gBACP,IAAIpG,GAAG4B,gBAAgBqK,EAAegF,OAAOiB,kBAAkB;oBAC7D+B,QAAQE,YAAYlI,EAAegF,OAAOiB,iBAAiBmJ;AAC7D;gBACAG,EAAYvP,GAAgBkP,GAAiBjB;AAC/C,mBAAO;gBACLoB,IAAU;AACZ;AACF;QACA,IAAIA,GAAS;YACXnV,EAAUuP,YAAYyF;AACxB,eAAO;YACL,IAAInb,GAAGwB,QAAQ6Z,IAAe;gBAC5Ba,EAAuBjQ,GAAgBkO,GAAUG,GAAce;gBAC/D1B,EAAmB1N,GAAgBoP,GAAchb,GAAO+F,GAAM2K;AAChE;AACF;AACF;IACA,SAASmL,EAAuBjQ,GAAgBkO,GAAUG,GAAce;QACtE,IAAIrb,GAAGyB,cAAcwK,EAAeuC,gBAAgB;YAClD,KAAKvC,EAAeuC,cAAcuI,eAAeoD,IAAW;gBAC1D,MAAMgC,IAAgBhC,EAASvW,MAAM;gBACrC,MAAMwY,IAAsBD,EAAc5b,SAAS;gBACnD,KAAK,IAAI8b,IAAoB,GAAGA,IAAoBD,GAAqBC,KAAqB;oBAC5FF,EAAcE,KAAqB;AACrC;gBACAlC,IAAWgC,EAAcrS,KAAK;AAChC;YACA,IAAImC,EAAeuC,cAAcuI,eAAeoD,IAAW;gBACzD1F,QAAQrN,IAAIkT,GAAcrO,GAAgBA,EAAeuC,cAAc2L,IAAW;gBAClF1F,QAAQrN,IAAIiU,GAAcpP,GAAgBA,EAAeuC,cAAc2L,IAAW;AACpF;AACF;AACF;IACA,SAASoB,EAAyBtP,GAAgBD,GAAMsQ,GAAsBhC;QAC5E,IAAIrO,EAAe8E,aAAaC,eAAe;YAC7CsJ,EAAa7C,aAAa;gBACxBjC,aAAavJ,EAAeE,aAAaG;gBACzCL,EAAeE,aAAaG,oBAAoB;gBAChDL,EAAeE,aAAaI,WAAW;gBACvCvG,WAAWkB,SAASoT,GAAc;gBAClCA,EAAaiC,aAAa,mBAAmB;gBAC7CjC,EAAakC;gBACbxW,WAAW+C,cAAcuR;gBACzBA,EAAamC,SAAS,MAAMzF,EAAuB/K,GAAgB;gBACnEqO,EAAaoC,YAAalV;oBACxB,IAAIA,EAAEuR,QAAQ,UAAuB;wBACnCvR,EAAEC;wBACF6S,EAAaiC,aAAa,mBAAmB;AAC/C,2BAAO,IAAI/U,EAAEuR,QAAQ,SAAqB;wBACxCvR,EAAEC;wBACF,MAAMkV,IAAkBrC,EAAasC;wBACrC,IAAID,MAAoBL,GAAsB;4BAC5C,IAAIK,EAAgB1b,WAAW,IAAgB;uCACtC+K,EAAKsQ;AACd,mCAAO;gCACL,KAAKtQ,EAAK+K,eAAe4F,IAAkB;oCACzC,MAAME,IAAgB7Q,EAAKsQ;2CACpBtQ,EAAKsQ;oCACZtQ,EAAK2Q,KAAmBE;AAC1B;AACF;4BACA5I,QAAQE,YAAYlI,EAAegF,OAAOuB,YAAYvG,EAAeE,aAAanF;AACpF;wBACAsT,EAAaiC,aAAa,mBAAmB;AAC/C;AAAA;AACD;AAEL;AACF;IACA,SAASd,EAA0BxP,GAAgBD,GAAMsQ,GAAsBQ,GAAuBC,GAAe7B,GAAanK;QAChI,IAAIA,GAAc;YAChBgM,EAActF,aAAa;gBACzBjC,aAAavJ,EAAeE,aAAaG;gBACzCL,EAAeE,aAAaG,oBAAoB;gBAChDL,EAAeE,aAAaI,WAAW;gBACvCvG,WAAWkB,SAAS6V,GAAe;gBACnCA,EAAcR,aAAa,mBAAmB;gBAC9C,IAAIvc,GAAGiC,YAAY6a,OAA2B7Q,EAAemC,kCAAkC;oBAC7F2O,EAAcH,YAAY/X,KAAK0T,UAAUuE,GAAuBxX,QAAQ,UAAU;AACpF,uBAAO;oBACLyX,EAAcH,YAAYE,EAAsB/b;AAClD;gBACAgc,EAAcP;gBACdxW,WAAW+C,cAAcgU;gBACzBA,EAAcN,SAAS,MAAMzF,EAAuB/K,GAAgB;gBACpE8Q,EAAcL,YAAalV;oBACzB,IAAIA,EAAEuR,QAAQ,UAAuB;wBACnCvR,EAAEC;wBACFsV,EAAcR,aAAa,mBAAmB;AAChD,2BAAO,IAAI/U,EAAEuR,QAAQ,SAAqB;wBACxCvR,EAAEC;wBACF,MAAMuV,IAAmBD,EAAcH;wBACvC,IAAII,EAAiB/b,WAAW,IAAgB;4BAC9C,IAAIia,GAAa;gCACflP,EAAKiR,OAAOC,EAA0BZ,IAAuB;AAC/D,mCAAO;uCACEtQ,EAAKsQ;AACd;AACF,+BAAO;4BACL,IAAIa,IAAuB;4BAC3B,IAAInd,GAAG0B,eAAeob,IAAwB;gCAC5CK,IAAuBH,EAAiBhc,kBAAkB;AAC5D,mCAAO,IAAIhB,GAAGkC,eAAe4a,OAA2Btc,OAAOwc,IAAmB;gCAChFG,IAAuBvB,WAAWoB;AACpC,mCAAO,IAAIhd,GAAG6B,cAAcib,OAA2Btc,OAAOwc,IAAmB;gCAC/EG,IAAuB5R,SAASyR;AAClC,mCAAO,IAAIhd,GAAG2B,cAAcmb,IAAwB;gCAClDK,IAAuBH;AACzB,mCAAO,IAAIhd,GAAGiC,YAAY6a,IAAwB;gCAChDK,IAAuB,IAAI/b,KAAK4b;AAClC,mCAAO,IAAIhd,GAAG8B,cAAcgb,IAAwB;gCAClDK,IAAuBC,OAAOJ;AAChC;4BACA,IAAIG,MAAyB,MAAM;gCACjC,IAAIjC,GAAa;oCACflP,EAAKkR,EAA0BZ,MAAyBa;AAC1D,uCAAO;oCACLnR,EAAKsQ,KAAwBa;AAC/B;gCACAlJ,QAAQE,YAAYlI,EAAegF,OAAOuB,YAAYvG,EAAeE,aAAanF;AACpF;AACF;wBACA+V,EAAcR,aAAa,mBAAmB;AAChD;AAAA;AACD;AAEL;AACF;IACA,SAAS5C,EAAmB1N,GAAgBoP,GAAchb,GAAO+F,GAAM2K;QACrE,IAAI/Q,GAAG4B,gBAAgBqK,EAAegF,OAAOG,eAAe;YAC1DiK,EAAazD,UAAU;gBACrB,IAAI7G,GAAc;oBAChB9E,EAAeE,aAAaG,oBAAoBiJ,YAAW;wBACzD,KAAKtJ,EAAeE,aAAaI,UAAU;4BACzC0H,QAAQE,YAAYlI,EAAegF,OAAOG,cAAc/Q,GAAO+F;AACjE;AAAA,wBACC6F,EAAewC;AACpB,uBAAO;oBACLwF,QAAQE,YAAYlI,EAAegF,OAAOG,cAAc/Q,GAAO+F;AACjE;AAAA;AAEJ,eAAO;YACLJ,WAAWkB,SAASmU,GAAc;AACpC;AACF;IACA,SAASX,EAAczO,GAAgBqN,GAAOU,GAAMX,GAAoBgE;QACtE,MAAMC,IAAUrR,EAAeE,aAAaO;QAC5C,MAAM+M,IAAiBxN,EAAeE,aAAaC;QACnD,KAAKH,EAAeE,aAAaM,kBAAkBsK,eAAe0C,IAAiB;YACjFxN,EAAeE,aAAaM,kBAAkBgN,KAAkB,CAAC;AACnE;QACA,MAAM8D,IAAW;YACflE,EAAmB7Q,MAAMC,UAAU;YACnCwD,EAAeE,aAAaM,kBAAkBgN,GAAgB6D,KAAW;YACzE,IAAItd,GAAGwB,QAAQ8X,IAAQ;gBACrBA,EAAMjT,YAAY;AACpB;YACA,IAAIrG,GAAGwB,QAAQ6b,IAAgB;gBAC7BA,EAAc7U,MAAMC,UAAU;AAChC;YACA,IAAIzI,GAAGwB,QAAQwY,IAAO;gBACpBA,EAAKxR,MAAMC,UAAU;AACvB;AAAA;QAEF,MAAM+U,IAAW;YACfnE,EAAmB7Q,MAAMC,UAAU;YACnCwD,EAAeE,aAAaM,kBAAkBgN,GAAgB6D,KAAW;YACzE,IAAItd,GAAGwB,QAAQ8X,IAAQ;gBACrBA,EAAMjT,YAAY;AACpB;YACA,IAAIrG,GAAGwB,QAAQ6b,IAAgB;gBAC7BA,EAAc7U,MAAMC,UAAU;AAChC;YACA,IAAIzI,GAAGwB,QAAQwY,IAAO;gBACpBA,EAAKxR,MAAMC,UAAU;AACvB;AAAA;QAEF,MAAMgV,IAAiBC;YACrB,IAAIA,GAAW;gBACbH;AACF,mBAAO;gBACLC;AACF;AAAA;QAEF,IAAIG,IAAW1R,EAAemB;QAC9B,IAAInB,EAAeE,aAAaM,kBAAkBgN,GAAgB1C,eAAeuG,IAAU;YACzFK,IAAW1R,EAAeE,aAAaM,kBAAkBgN,GAAgB6D;AAC3E,eAAO;YACLrR,EAAeE,aAAaM,kBAAkBgN,GAAgB6D,KAAWK;AAC3E;QACA,IAAI3d,GAAGwB,QAAQ8X,IAAQ;YACrBA,EAAM1B,UAAU,MAAM6F,EAAcnE,EAAMjT,cAAc;AAC1D;QACAoX,EAAcE;QACd1R,EAAeE,aAAaO;AAC9B;IACA,SAAS8O,EAAYvP,GAAgBkP,GAAiBjB;QACpD,IAAIxW,IAAU;QACd,IAAIuI,EAAesB,eAAe2M,GAAY;YAC5CxW,IAAUsC,WAAWc,eAAeqU,GAAiB,QAAQ,SAAS;AACxE;QACA,OAAOzX;AACT;IACA,SAASoX,EAAc8C,GAAO3R;QAC5B,OAAOA,EAAee,2BAA2B4Q,IAAQA,IAAQ;AACnE;IACA,SAAS7C,EAAkB9O,GAAgB2R,GAAOC;QAChD,IAAIna,IAAUka,EAAM7c;QACpB,KAAKkL,EAAewB,sBAAsB;YACxC/J,IAAU6F,IAAIE,UAAU8B,SAAS7H,IAAUma,EAAa9c,WAAWR;AACrE;QACA,IAAI0L,EAAegC,wBAAwB;YACzCvK,IAAU,IAAIA;AAChB;QACA,OAAOA;AACT;IACA,SAASwZ,EAA0B5C;QACjC,OAAO/O,SAAS+O,EAAahV,QAAQ,KAAK,IAAgBA,QAAQ,KAAK;AACzE;IACA,SAAS4T,EAAuBlN,GAAMC;QACpC,IAAI6R,IAAa;QACjB,KAAK,IAAIC,KAAO/R,GAAM;YACpB,IAAIA,EAAK+K,eAAegH,IAAM;gBAC5BD,EAAWE,KAAKD;AAClB;AACF;QACA,IAAI9R,EAAeoB,mBAAmB;YACpC,IAAI4Q,IAAW,IAAIC,KAAKC,cAAc,GAAG;gBACvCC,SAAS;gBACTC,aAAa;;YAEfP,IAAaA,EAAWQ,KAAKL,EAASM;YACtC,KAAKtS,EAAeqB,sCAAsC;gBACxDwQ,IAAaA,EAAWU;AAC1B;AACF;QACA,OAAOV;AACT;IACA,SAASrD,EAAoBxO,GAAgB9F,GAAWsY,GAAQC,GAAYxE;QAC1E,IAAIyE,IAAkB3Y,WAAWE,OAAOC,GAAW,OAAO;QAC1D,IAAIuY,KAAczS,EAAeiB,kBAAkB;YACjDlH,WAAWE,OAAOyY,GAAiB,OAAO;AAC5C;QACA3Y,WAAWc,eAAe6X,GAAiB,OAAO,mBAAmBF;QACrEjD,EAAYvP,GAAgB0S,GAAiBzE;AAC/C;IACA,SAAS7C,EAAkBrQ,GAASiF;QAClC,IAAIA,EAAe8B,qBAAqB;YACtC/G,EAAQ4X,aAAa5Y,WAAWuB;YAChCP,EAAQ6X,cAAc7Y,WAAWuB;YACjCP,EAAQ8X,cAAc9Y,WAAWuB;YACjCP,EAAQ+X,SAAUvX;gBAChBxB,WAAWuB,aAAaC;gBACxB,IAAIxH,GAAGwB,QAAQmH,OAAOqW,eAAexX,EAAEyX,aAAaC,MAAM3e,SAAS,GAAG;oBACpE4e,EAAgB3X,EAAEyX,aAAaC,OAAOjT;AACxC;AAAA;AAEJ;AACF;IACA,SAASkT,EAAgBD,GAAOjT;QAC9B,MAAMmT,IAAcF,EAAM3e;QAC1B,IAAI8e,IAAY;QAChB,IAAIC,IAAY;QAChB,MAAMC,IAAcvT;YAClBqT;YACAC,EAAUtB,KAAKhS;YACf,IAAIqT,MAAcD,GAAa;gBAC7BnT,EAAeE,aAAaC,wBAAwB;gBACpDH,EAAeE,aAAaM,oBAAoB,CAAC;gBACjDR,EAAeD,OAAOsT,EAAU/e,WAAW,IAAI+e,EAAU,KAAKA;gBAC9DtI,EAAuB/K;gBACvBgI,QAAQE,YAAYlI,EAAegF,OAAOuO,WAAWvT,EAAeE,aAAanF;AACnF;AAAA;QAEF,KAAK,IAAIyY,IAAY,GAAGA,IAAYL,GAAaK,KAAa;YAC5D,MAAMC,IAAOR,EAAMO;YACnB,MAAME,IAAgBD,EAAKzE,KAAKrX,MAAM,KAAKgc,MAAM5e;YACjD,IAAI2e,MAAkB,QAAQ;gBAC5BE,EAAeH,GAAMH;AACvB;AACF;AACF;IACA,SAASM,EAAeH,GAAMH;QAC5B,MAAMO,IAAS,IAAId;QACnB,IAAIe,IAAa;QACjBD,EAAOE,YAAY,MAAMT,EAAWQ;QACpCD,EAAOG,SAAUzY;YACf,MAAM0Y,IAAOnd,SAASyB,oBAAoBgD,EAAE2Y,OAAOxb,QAAQgR;YAC3D,IAAIuK,EAAKtb,UAAU5E,GAAGyB,cAAcye,EAAKpf,SAAS;gBAChDif,IAAaG,EAAKpf;AACpB;AAAA;QAEFgf,EAAOM,WAAWV;AACpB;IACA,SAASW,EAAepU;QACtBA,EAAeE,aAAanF,QAAQC,YAAY;QAChDjB,WAAWqB,YAAY4E,EAAeE,aAAanF,SAAS;QAC5D,IAAIiF,EAAeE,aAAanF,QAAQX,UAAUpF,WAAW,IAAgB;YAC3EgL,EAAeE,aAAanF,QAAQ8P,gBAAgB;AACtD;QACA,IAAI7K,EAAeE,aAAaK,OAAO;YACrCP,EAAeE,aAAanF,QAAQ8P,gBAAgB;AACtD;QACAG,EAAoBhL,GAAgB;QACpCwI,QAAQI,eAAe5I,GAAgB;QACvCwI,QAAQnN,OAAO2E;QACfgI,QAAQE,YAAYlI,EAAegF,OAAOQ,WAAWxF,EAAeE,aAAanF;AACnF;IACA,MAAMsZ,IAAU;QAMdC,SAAS,SAASC;YAChB,IAAIxgB,GAAG2B,cAAc6e,MAAc5K,EAAemB,eAAeyJ,IAAY;gBAC3E,MAAMvU,IAAiB2J,EAAe4K;gBACtCxJ,EAAuB/K;gBACvBgI,QAAQE,YAAYlI,EAAegF,OAAOI,WAAWpF,EAAeE,aAAanF;AACnF;YACA,OAAOsZ;AACT;QACAG,YAAY;YACV,KAAK,IAAID,KAAa5K,GAAgB;gBACpC,IAAIA,EAAemB,eAAeyJ,IAAY;oBAC5C,MAAMvU,IAAiB2J,EAAe4K;oBACtCxJ,EAAuB/K;oBACvBgI,QAAQE,YAAYlI,EAAegF,OAAOI,WAAWpF,EAAeE,aAAanF;AACnF;AACF;YACA,OAAOsZ;AACT;QACAxK,QAAQ,SAAS9O,GAAS8F;YACxB,IAAI9M,GAAGyB,cAAcuF,MAAYhH,GAAGyB,cAAcqL,IAAU;gBAC1D6H,EAAchJ,QAAQE,QAAQE,kBAAkBe,GAAS9F;AAC3D;YACA,OAAOsZ;AACT;QACAI,WAAW;YACT5K;YACA,OAAOwK;AACT;QACAxI,SAAS,SAAS0I;YAChB,IAAIxgB,GAAG2B,cAAc6e,MAAc5K,EAAemB,eAAeyJ,IAAY;gBAC3EjP,EAAUqE,EAAe4K;AAC3B;YACA,OAAOF;AACT;QACAvI,UAAU,SAASyI;YACjB,IAAIxgB,GAAG2B,cAAc6e,MAAc5K,EAAemB,eAAeyJ,IAAY;gBAC3EhP,EAAWoE,EAAe4K;AAC5B;YACA,OAAOF;AACT;QAMAK,SAAS,SAASH,GAAWN;YAC3B,IAAIlgB,GAAG2B,cAAc6e,MAAcxgB,GAAGwB,QAAQ0e,MAAStK,EAAemB,eAAeyJ,IAAY;gBAC/F,IAAII,IAAa;gBACjB,IAAI5gB,GAAG2B,cAAcue,IAAO;oBAC1B,MAAMW,IAAa9d,SAASyB,oBAAoB0b,GAAMvK;oBACtD,IAAIkL,EAAWjc,QAAQ;wBACrBgc,IAAaC,EAAW/f;AAC1B;AACF,uBAAO;oBACL8f,IAAaV;AACf;gBACA,MAAMjU,IAAiB2J,EAAe4K;gBACtCvU,EAAeE,aAAaC,wBAAwB;gBACpDH,EAAeE,aAAaM,oBAAoB,CAAC;gBACjDR,EAAeD,OAAO4U;gBACtB5J,EAAuB/K;gBACvBgI,QAAQE,YAAYlI,EAAegF,OAAOuO,WAAWvT,EAAeE,aAAanF;AACnF;YACA,OAAOsZ;AACT;QACAQ,SAAS,SAASN;YAChB,IAAI9c,IAAU;YACd,IAAI1D,GAAG2B,cAAc6e,MAAc5K,EAAemB,eAAeyJ,IAAY;gBAC3E9c,IAAUkS,EAAe4K,GAAWxU;AACtC;YACA,OAAOtI;AACT;QAMAqd,SAAS,SAASP;YAChB,IAAIxgB,GAAG2B,cAAc6e,MAAc5K,EAAemB,eAAeyJ,IAAY;gBAC3EH,EAAezK,EAAe4K;uBACvB5K,EAAe4K;gBACtB3K;AACF;YACA,OAAOyK;AACT;QACAU,YAAY;YACV,KAAK,IAAIR,KAAa5K,GAAgB;gBACpC,IAAIA,EAAemB,eAAeyJ,IAAY;oBAC5CH,EAAezK,EAAe4K;AAChC;AACF;YACA5K,IAAiB,CAAC;YAClBC,IAAuB;YACvB,OAAOyK;AACT;QAMAW,kBAAkB,SAASrO;YACzB,IAAI5S,GAAGyB,cAAcmR,IAAmB;gBACtC,IAAIsO,IAA0B;gBAC9B,MAAMC,IAA2BxL;gBACjC,KAAK,IAAI2E,KAAgB1H,GAAkB;oBACzC,IAAIA,EAAiBmE,eAAeuD,MAAiB3E,EAAeoB,eAAeuD,MAAiB6G,EAAyB7G,OAAkB1H,EAAiB0H,IAAe;wBAC7K6G,EAAyB7G,KAAgB1H,EAAiB0H;wBAC1D4G,IAA0B;AAC5B;AACF;gBACA,IAAIA,GAAyB;oBAC3BvL,IAAiBjD,OAAO7G,QAAQK,IAAIiV;AACtC;AACF;YACA,OAAOb;AACT;QAMAc,QAAQ;YACN,MAAM1d,IAAU;YAChB,KAAK,IAAI8c,KAAa5K,GAAgB;gBACpC,IAAIA,EAAemB,eAAeyJ,IAAY;oBAC5C9c,EAAQsa,KAAKwC;AACf;AACF;YACA,OAAO9c;AACT;QACA2d,YAAY;YACV,OAAO;AACT;;IAEF;QACE1L,IAAiBjD,OAAO7G,QAAQK;QAChCzF,SAASuO,iBAAiB,qBAAoB,MAAMc;QACpD,KAAK9V,GAAGwB,QAAQmH,OAAO2Y,YAAY;YACjC3Y,OAAO2Y,YAAYhB;AACrB;AACD,MAND;AAOD,EAtiCD","sourcesContent":[null]} \ No newline at end of file From 2960da0b4e274ade13a15a152cdcef306badcd70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=B6ran=20Sander?= Date: Tue, 27 Aug 2024 14:53:28 +0000 Subject: [PATCH 2/2] chore(deps): Upgrade dependencies to stay safe and secure --- eslint.config.js | 37 ++ package-lock.json | 1533 +++++++++++---------------------------------- package.json | 34 +- 3 files changed, 418 insertions(+), 1186 deletions(-) create mode 100644 eslint.config.js diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 00000000..44fc837b --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,37 @@ +import prettier from 'eslint-plugin-prettier'; +import globals from 'globals'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import js from '@eslint/js'; +import { FlatCompat } from '@eslint/eslintrc'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, + allConfig: js.configs.all, +}); + +// export default [...compat.extends("airbnb-base", "prettier"), { +export default [ + ...compat.extends('prettier'), + { + plugins: { + prettier, + }, + + languageOptions: { + globals: { + ...globals.node, + }, + + ecmaVersion: 12, + sourceType: 'module', + }, + + rules: { + 'prettier/prettier': 'error', + }, + }, +]; diff --git a/package-lock.json b/package-lock.json index 3b4acdf7..d68ad708 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,22 +15,18 @@ "@fastify/reply-from": "^9.8.0", "@fastify/sensible": "^5.6.0", "@fastify/static": "^7.0.4", - "@fastify/swagger": "^8.14.0", - "@fastify/swagger-ui": "^4.0.1", + "@fastify/swagger": "^8.15.0", + "@fastify/swagger-ui": "^4.1.0", "@keyvhq/core": "^2.1.1", "@xstate/fsm": "^2.0.1", "any-base": "^1.1.0", - "axios": "^1.7.2", + "axios": "^1.7.5", "commander": "^12.1.0", "config": "^3.3.12", "cron-job-manager": "^2.3.1", "email-validator": "^2.0.4", "enigma.js": "^2.14.0", - "esbuild": "^0.23.0", - "eslint": "^8.5.7", - "eslint-config-airbnb-base": "^15.0.0", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-prettier": "^5.2.1", + "esbuild": "^0.23.1", "express-handlebars": "^7.1.3", "fastify": "^4.28.1", "fastify-healthcheck": "^4.4.0", @@ -41,45 +37,49 @@ "i": "^0.3.7", "influx": "^5.9.3", "is-unc-path": "^1.0.0", - "jjsontree.js": "^2.1.0", + "jjsontree.js": "^2.9.0", "js-yaml": "^4.1.0", "jshint": "^2.13.6", "lodash": "^4.17.21", - "luxon": "^3.4.4", + "luxon": "^3.5.0", "mkdirp": "^3.0.1", "moment": "^2.30.1", "moment-precise-range-plugin": "^1.3.0", - "mqtt": "^5.8.1", + "mqtt": "^5.10.0", "ms-teams-wrapper": "^1.0.2", "nodemailer": "^6.9.14", "nodemailer-express-handlebars": "^6.1.2", "os": "^0.1.2", - "posthog-node": "^4.0.1", + "posthog-node": "^4.2.0", "promise": "^8.3.0", "qrs-interact": "^6.3.1", "rate-limiter-flexible": "^5.0.3", "serializeapp": "^3.0.0", - "systeminformation": "^5.22.11", + "systeminformation": "^5.23.5", "upath": "^2.0.1", "uuid": "^10.0.0", - "winston": "^3.13.1", + "winston": "^3.14.2", "winston-daily-rotate-file": "^5.0.0", "ws": "^8.18.0", - "xstate": "^5.15.0" + "xstate": "^5.17.4" }, "devDependencies": { - "@babel/eslint-parser": "^7.24.8", + "@babel/eslint-parser": "^7.25.1", "@babel/plugin-syntax-import-assertions": "^7.24.7", - "eslint-plugin-import": "^2.29.1", + "@eslint/js": "^9.9.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", "prettier": "^3.3.3", - "snyk": "^1.1292.1" + "snyk": "^1.1292.4" } }, "node_modules/@aashutoshrathi/word-wrap": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -221,9 +221,9 @@ } }, "node_modules/@babel/eslint-parser": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.24.8.tgz", - "integrity": "sha512-nYAikI4XTGokU2QX7Jx+v4rxZKhKivaQaREZjuW3mrJrbdWJ5yUfohnoUULge+zEEaKjPYNxhoRgUKktjXtbwA==", + "version": "7.25.1", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.25.1.tgz", + "integrity": "sha512-Y956ghgTT4j7rKesabkh5WeqgSFZVFwaPR0IWFm7KFHFmmJ4afbG49SmfW4S+GyRPx0Dy5jxEWA5t0rpxfElWg==", "dev": true, "license": "MIT", "dependencies": { @@ -710,9 +710,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.1.tgz", - "integrity": "sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==", + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.4.tgz", + "integrity": "sha512-DSgLeL/FNcpXuzav5wfYvHCGvynXkJbn3Zvc3823AEe9nPwW9IK4UoCSS5yGymmQzN0pCPvivtgS6/8U2kkm1w==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -812,13 +812,12 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.0.tgz", - "integrity": "sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz", + "integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==", "cpu": [ "ppc64" ], - "license": "MIT", "optional": true, "os": [ "aix" @@ -828,13 +827,12 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.0.tgz", - "integrity": "sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.1.tgz", + "integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==", "cpu": [ "arm" ], - "license": "MIT", "optional": true, "os": [ "android" @@ -844,13 +842,12 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.0.tgz", - "integrity": "sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz", + "integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==", "cpu": [ "arm64" ], - "license": "MIT", "optional": true, "os": [ "android" @@ -860,13 +857,12 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.0.tgz", - "integrity": "sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.1.tgz", + "integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==", "cpu": [ "x64" ], - "license": "MIT", "optional": true, "os": [ "android" @@ -876,13 +872,12 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.0.tgz", - "integrity": "sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz", + "integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==", "cpu": [ "arm64" ], - "license": "MIT", "optional": true, "os": [ "darwin" @@ -892,13 +887,12 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.0.tgz", - "integrity": "sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz", + "integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==", "cpu": [ "x64" ], - "license": "MIT", "optional": true, "os": [ "darwin" @@ -908,13 +902,12 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.0.tgz", - "integrity": "sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz", + "integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==", "cpu": [ "arm64" ], - "license": "MIT", "optional": true, "os": [ "freebsd" @@ -924,13 +917,12 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.0.tgz", - "integrity": "sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz", + "integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==", "cpu": [ "x64" ], - "license": "MIT", "optional": true, "os": [ "freebsd" @@ -940,13 +932,12 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.0.tgz", - "integrity": "sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz", + "integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==", "cpu": [ "arm" ], - "license": "MIT", "optional": true, "os": [ "linux" @@ -956,13 +947,12 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.0.tgz", - "integrity": "sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz", + "integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==", "cpu": [ "arm64" ], - "license": "MIT", "optional": true, "os": [ "linux" @@ -972,13 +962,12 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.0.tgz", - "integrity": "sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz", + "integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==", "cpu": [ "ia32" ], - "license": "MIT", "optional": true, "os": [ "linux" @@ -988,13 +977,12 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.0.tgz", - "integrity": "sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz", + "integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==", "cpu": [ "loong64" ], - "license": "MIT", "optional": true, "os": [ "linux" @@ -1004,13 +992,12 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.0.tgz", - "integrity": "sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz", + "integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==", "cpu": [ "mips64el" ], - "license": "MIT", "optional": true, "os": [ "linux" @@ -1020,13 +1007,12 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.0.tgz", - "integrity": "sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz", + "integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==", "cpu": [ "ppc64" ], - "license": "MIT", "optional": true, "os": [ "linux" @@ -1036,13 +1022,12 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.0.tgz", - "integrity": "sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz", + "integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==", "cpu": [ "riscv64" ], - "license": "MIT", "optional": true, "os": [ "linux" @@ -1052,13 +1037,12 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.0.tgz", - "integrity": "sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz", + "integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==", "cpu": [ "s390x" ], - "license": "MIT", "optional": true, "os": [ "linux" @@ -1068,13 +1052,12 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.0.tgz", - "integrity": "sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz", + "integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==", "cpu": [ "x64" ], - "license": "MIT", "optional": true, "os": [ "linux" @@ -1084,13 +1067,12 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.0.tgz", - "integrity": "sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz", + "integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==", "cpu": [ "x64" ], - "license": "MIT", "optional": true, "os": [ "netbsd" @@ -1100,13 +1082,12 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.0.tgz", - "integrity": "sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz", + "integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==", "cpu": [ "arm64" ], - "license": "MIT", "optional": true, "os": [ "openbsd" @@ -1116,13 +1097,12 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.0.tgz", - "integrity": "sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz", + "integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==", "cpu": [ "x64" ], - "license": "MIT", "optional": true, "os": [ "openbsd" @@ -1132,13 +1112,12 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.0.tgz", - "integrity": "sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz", + "integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==", "cpu": [ "x64" ], - "license": "MIT", "optional": true, "os": [ "sunos" @@ -1148,13 +1127,12 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.0.tgz", - "integrity": "sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz", + "integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==", "cpu": [ "arm64" ], - "license": "MIT", "optional": true, "os": [ "win32" @@ -1164,13 +1142,12 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.0.tgz", - "integrity": "sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz", + "integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==", "cpu": [ "ia32" ], - "license": "MIT", "optional": true, "os": [ "win32" @@ -1180,13 +1157,12 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.0.tgz", - "integrity": "sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz", + "integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==", "cpu": [ "x64" ], - "license": "MIT", "optional": true, "os": [ "win32" @@ -1199,6 +1175,8 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "peer": true, "dependencies": { "eslint-visitor-keys": "^3.3.0" }, @@ -1213,6 +1191,8 @@ "version": "4.6.2", "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.6.2.tgz", "integrity": "sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==", + "dev": true, + "peer": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } @@ -1221,6 +1201,8 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "peer": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -1240,11 +1222,13 @@ } }, "node_modules/@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "version": "9.9.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.9.1.tgz", + "integrity": "sha512-xIDQRsfg5hNBqHz04H1R3scSVwmI+KUbqjsQKHKQ1DAUSaUjYPReZZmS/5PNiKu1fUvzDd6H7DEDKACSEhu+TQ==", + "dev": true, + "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@fastify/accept-negotiator": { @@ -1426,9 +1410,9 @@ } }, "node_modules/@fastify/swagger": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/@fastify/swagger/-/swagger-8.14.0.tgz", - "integrity": "sha512-sGiznEb3rl6pKGGUZ+JmfI7ct5cwbTQGo+IjewaTvtzfrshnryu4dZwEsjw0YHABpBA+kCz3kpRaHB7qpa67jg==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/@fastify/swagger/-/swagger-8.15.0.tgz", + "integrity": "sha512-zy+HEEKFqPMS2sFUsQU5X0MHplhKJvWeohBwTCkBAJA/GDYGLGUWQaETEhptiqxK7Hs0fQB9B4MDb3pbwIiCwA==", "dependencies": { "fastify-plugin": "^4.0.0", "json-schema-resolver": "^2.0.0", @@ -1438,10 +1422,9 @@ } }, "node_modules/@fastify/swagger-ui": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@fastify/swagger-ui/-/swagger-ui-4.0.1.tgz", - "integrity": "sha512-gG+T6ThV+uatmn5HsLA5TTnf6zOW5Ya+v7z9rFKQIclnJFK3rhgg4iIwEEi+kV6h8f32pj1kmBqD8ZeDefnd1Q==", - "license": "MIT", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@fastify/swagger-ui/-/swagger-ui-4.1.0.tgz", + "integrity": "sha512-Bqsd6VFQR7WoT6eRammOF8/gXf5GKywq2zYy8/3fj2rsZw43cmXdfsEKxVAmAwOW2Nv+dnyQaf5qM6kBqyXRlw==", "dependencies": { "@fastify/static": "^7.0.0", "fastify-plugin": "^4.0.0", @@ -1463,6 +1446,8 @@ "version": "0.11.14", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "dev": true, + "peer": true, "dependencies": { "@humanwhocodes/object-schema": "^2.0.2", "debug": "^4.3.1", @@ -1476,6 +1461,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "peer": true, "engines": { "node": ">=12.22" }, @@ -1487,7 +1474,9 @@ "node_modules/@humanwhocodes/object-schema": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==" + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "dev": true, + "peer": true }, "node_modules/@isaacs/cliui": { "version": "8.0.2", @@ -2072,6 +2061,8 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "peer": true, "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -2084,6 +2075,8 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "peer": true, "engines": { "node": ">= 8" } @@ -2092,6 +2085,8 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "peer": true, "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -2113,6 +2108,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "dev": true, "license": "MIT", "engines": { "node": "^12.20.0 || ^14.18.0 || >=16.0.0" @@ -2282,20 +2278,15 @@ "@types/istanbul-lib-report": "*" } }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" - }, "node_modules/@types/node": { "version": "20.5.1", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.1.tgz", "integrity": "sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg==" }, "node_modules/@types/readable-stream": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-4.0.5.tgz", - "integrity": "sha512-QzFG+b0/vKI8myBgHhUja5C8ZJr4vaAeSXNYbqedm3Pr8byTgkNf1OC2/16yQTn2H2ZpQpHr7sLKS13XWpKaCQ==", + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-4.0.15.tgz", + "integrity": "sha512-oAZ3kw+kJFkEqyh7xORZOku1YAKvsFTogRY8kVl4vHpEKiDkfnSA/My8haRE7fvmix5Zyy+1pwzOi7yycGLBJw==", "dependencies": { "@types/node": "*", "safe-buffer": "~5.1.1" @@ -2318,9 +2309,9 @@ "integrity": "sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g==" }, "node_modules/@types/ws": { - "version": "8.5.9", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.9.tgz", - "integrity": "sha512-jbdrY0a8lxfdTp/+r7Z4CkycbOFN8WX+IOchLJr3juT/xzbJ8URyTVSJ/hvNdadTgM1mnedb47n+Y31GsFnQlg==", + "version": "8.5.12", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.12.tgz", + "integrity": "sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==", "dependencies": { "@types/node": "*" } @@ -2343,7 +2334,9 @@ "node_modules/@ungap/structured-clone": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true, + "peer": true }, "node_modules/@xstate/fsm": { "version": "2.1.0", @@ -2370,6 +2363,8 @@ "version": "8.11.3", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "dev": true, + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -2381,6 +2376,8 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peer": true, "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } @@ -2389,6 +2386,8 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -2513,107 +2512,6 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", - "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-includes": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", - "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz", - "integrity": "sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==", - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", - "is-shared-array-buffer": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", @@ -2637,17 +2535,6 @@ "node": ">=8.0.0" } }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/avvio": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/avvio/-/avvio-8.3.0.tgz", @@ -2660,10 +2547,9 @@ } }, "node_modules/axios": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", - "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", - "license": "MIT", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.5.tgz", + "integrity": "sha512-fZu86yCo+svH3uqJ/yTdQ0QHpQu5oL+/QE+QPSv6BZSkDAoky9vytxp7u5qk83OJFS3kEBcesWni9WTZAv3tSw==", "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", @@ -2802,10 +2688,11 @@ ] }, "node_modules/bl": { - "version": "6.0.8", - "resolved": "https://registry.npmjs.org/bl/-/bl-6.0.8.tgz", - "integrity": "sha512-HCRq8z0+3vrGCjEKrbnK6blpDZ1xzhfZKCCuyvPC7upGcfXZSmaCumpVao/jC8o1hs/fOqJoCSPMabl+CQTPXg==", + "version": "6.0.14", + "resolved": "https://registry.npmjs.org/bl/-/bl-6.0.14.tgz", + "integrity": "sha512-TJfbvGdL7KFGxTsEbsED7avqpFdY56q9IW0/aiytyheJzxST/+Io6cx/4Qx0K2/u0BPRDs65mjaQzYvMZeNocQ==", "dependencies": { + "@types/readable-stream": "^4.0.0", "buffer": "^6.0.3", "inherits": "^2.0.4", "readable-stream": "^4.2.0" @@ -2913,22 +2800,11 @@ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, "engines": { "node": ">=6" } @@ -2966,6 +2842,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3174,11 +3051,6 @@ "node": ">= 10.0.0" } }, - "node_modules/confusing-browser-globals": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==" - }, "node_modules/console-browserify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", @@ -3310,7 +3182,9 @@ "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "peer": true }, "node_modules/deepmerge": { "version": "4.3.1", @@ -3325,6 +3199,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dev": true, "dependencies": { "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" @@ -3380,6 +3255,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "peer": true, "dependencies": { "esutils": "^2.0.2" }, @@ -3505,95 +3382,6 @@ "is-arrayish": "^0.2.1" } }, - "node_modules/es-abstract": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.1.tgz", - "integrity": "sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==", - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.1", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.2.1", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.0", - "safe-array-concat": "^1.0.0", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.7", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", - "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", - "dependencies": { - "hasown": "^2.0.0" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/es6-error": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", @@ -3601,11 +3389,10 @@ "dev": true }, "node_modules/esbuild": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.0.tgz", - "integrity": "sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz", + "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==", "hasInstallScript": true, - "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -3613,30 +3400,30 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.23.0", - "@esbuild/android-arm": "0.23.0", - "@esbuild/android-arm64": "0.23.0", - "@esbuild/android-x64": "0.23.0", - "@esbuild/darwin-arm64": "0.23.0", - "@esbuild/darwin-x64": "0.23.0", - "@esbuild/freebsd-arm64": "0.23.0", - "@esbuild/freebsd-x64": "0.23.0", - "@esbuild/linux-arm": "0.23.0", - "@esbuild/linux-arm64": "0.23.0", - "@esbuild/linux-ia32": "0.23.0", - "@esbuild/linux-loong64": "0.23.0", - "@esbuild/linux-mips64el": "0.23.0", - "@esbuild/linux-ppc64": "0.23.0", - "@esbuild/linux-riscv64": "0.23.0", - "@esbuild/linux-s390x": "0.23.0", - "@esbuild/linux-x64": "0.23.0", - "@esbuild/netbsd-x64": "0.23.0", - "@esbuild/openbsd-arm64": "0.23.0", - "@esbuild/openbsd-x64": "0.23.0", - "@esbuild/sunos-x64": "0.23.0", - "@esbuild/win32-arm64": "0.23.0", - "@esbuild/win32-ia32": "0.23.0", - "@esbuild/win32-x64": "0.23.0" + "@esbuild/aix-ppc64": "0.23.1", + "@esbuild/android-arm": "0.23.1", + "@esbuild/android-arm64": "0.23.1", + "@esbuild/android-x64": "0.23.1", + "@esbuild/darwin-arm64": "0.23.1", + "@esbuild/darwin-x64": "0.23.1", + "@esbuild/freebsd-arm64": "0.23.1", + "@esbuild/freebsd-x64": "0.23.1", + "@esbuild/linux-arm": "0.23.1", + "@esbuild/linux-arm64": "0.23.1", + "@esbuild/linux-ia32": "0.23.1", + "@esbuild/linux-loong64": "0.23.1", + "@esbuild/linux-mips64el": "0.23.1", + "@esbuild/linux-ppc64": "0.23.1", + "@esbuild/linux-riscv64": "0.23.1", + "@esbuild/linux-s390x": "0.23.1", + "@esbuild/linux-x64": "0.23.1", + "@esbuild/netbsd-x64": "0.23.1", + "@esbuild/openbsd-arm64": "0.23.1", + "@esbuild/openbsd-x64": "0.23.1", + "@esbuild/sunos-x64": "0.23.1", + "@esbuild/win32-arm64": "0.23.1", + "@esbuild/win32-ia32": "0.23.1", + "@esbuild/win32-x64": "0.23.1" } }, "node_modules/escalade": { @@ -3657,6 +3444,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, "engines": { "node": ">=10" }, @@ -3668,6 +3456,8 @@ "version": "8.57.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -3718,28 +3508,11 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint-config-airbnb-base": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", - "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", - "dependencies": { - "confusing-browser-globals": "^1.0.10", - "object.assign": "^4.1.2", - "object.entries": "^1.1.5", - "semver": "^6.3.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "peerDependencies": { - "eslint": "^7.32.0 || ^8.2.0", - "eslint-plugin-import": "^2.25.2" - } - }, "node_modules/eslint-config-prettier": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "dev": true, "bin": { "eslint-config-prettier": "bin/cli.js" }, @@ -3747,101 +3520,11 @@ "eslint": ">=7.0.0" } }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", - "dependencies": { - "debug": "^3.2.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", - "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", - "dependencies": { - "array-includes": "^3.1.7", - "array.prototype.findlastindex": "^1.2.3", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "is-core-module": "^2.13.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.7", - "object.groupby": "^1.0.1", - "object.values": "^1.1.7", - "semver": "^6.3.1", - "tsconfig-paths": "^3.15.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/eslint-plugin-prettier": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz", "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==", + "dev": true, "license": "MIT", "dependencies": { "prettier-linter-helpers": "^1.0.0", @@ -3872,6 +3555,8 @@ "version": "7.2.2", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "peer": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -3887,6 +3572,8 @@ "version": "3.4.3", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "peer": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -3894,10 +3581,23 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint/node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/espree": { "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "peer": true, "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", @@ -3927,6 +3627,8 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "peer": true, "dependencies": { "estraverse": "^5.1.0" }, @@ -3938,6 +3640,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, "dependencies": { "estraverse": "^5.2.0" }, @@ -3949,6 +3652,7 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, "engines": { "node": ">=4.0" } @@ -3957,6 +3661,8 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -4108,12 +3814,14 @@ "node_modules/fast-diff": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==" + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true }, "node_modules/fast-json-stringify": { "version": "5.8.0", @@ -4151,7 +3859,9 @@ "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "peer": true }, "node_modules/fast-querystring": { "version": "1.1.2", @@ -4297,6 +4007,8 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "peer": true, "dependencies": { "flat-cache": "^3.0.4" }, @@ -4342,6 +4054,8 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "peer": true, "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -4357,6 +4071,8 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "peer": true, "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.3", @@ -4369,7 +4085,9 @@ "node_modules/flatted": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==" + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true, + "peer": true }, "node_modules/fn.name": { "version": "1.1.0", @@ -4395,14 +4113,6 @@ } } }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dependencies": { - "is-callable": "^1.1.3" - } - }, "node_modules/foreground-child": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", @@ -4486,40 +4196,16 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, "engines": { "node": ">=6.9.0" } @@ -4537,6 +4223,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dev": true, "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -4568,21 +4255,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -4606,6 +4278,8 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "peer": true, "dependencies": { "is-glob": "^4.0.3" }, @@ -4667,6 +4341,8 @@ "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "peer": true, "dependencies": { "type-fest": "^0.20.2" }, @@ -4681,6 +4357,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, "dependencies": { "define-properties": "^1.1.3" }, @@ -4691,17 +4368,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -4710,7 +4376,9 @@ "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "peer": true }, "node_modules/handlebars": { "version": "4.7.8", @@ -4736,6 +4404,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, "dependencies": { "function-bind": "^1.1.1" }, @@ -4743,18 +4412,11 @@ "node": ">= 0.4.0" } }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -4763,6 +4425,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, "dependencies": { "get-intrinsic": "^1.1.1" }, @@ -4774,6 +4437,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, "engines": { "node": ">= 0.4" }, @@ -4785,20 +4449,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dependencies": { - "has-symbols": "^1.0.2" - }, + "dev": true, "engines": { "node": ">= 0.4" }, @@ -4810,6 +4461,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, "dependencies": { "function-bind": "^1.1.2" }, @@ -4916,6 +4568,8 @@ "version": "5.3.1", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "peer": true, "engines": { "node": ">= 4" } @@ -4924,6 +4578,8 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "peer": true, "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -4958,6 +4614,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, "engines": { "node": ">=0.8.19" } @@ -4981,19 +4638,6 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "node_modules/internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", - "dependencies": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -5002,66 +4646,17 @@ "node": ">= 0.10" } }, - "node_modules/is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-core-module": { "version": "2.13.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, "dependencies": { "hasown": "^2.0.0" }, @@ -5069,24 +4664,12 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -5112,6 +4695,8 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "peer": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -5119,17 +4704,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -5140,54 +4714,16 @@ "node": ">=0.12.0" } }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", @@ -5199,48 +4735,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", - "dependencies": { - "which-typed-array": "^1.1.11" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-unc-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", @@ -5252,22 +4746,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -5976,10 +5454,9 @@ } }, "node_modules/jjsontree.js": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/jjsontree.js/-/jjsontree.js-2.1.0.tgz", - "integrity": "sha512-wowZUq2YVIltUKuQQ1SXCihsyrsSgM60IqYtvHMWtE2fdWTpBy9xPxvzWLrVQbRwvEj/ykhCpTdT+/WyGmMKYw==", - "license": "MIT" + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/jjsontree.js/-/jjsontree.js-2.9.0.tgz", + "integrity": "sha512-sEKBucp0zFYLYaAuddiEPOqVtIdIdJJBILkjYTGxRT5kR3XraCSJEcLf73GVFWxHFDNuu/j8aZgWberEu8nNqA==" }, "node_modules/js-sdsl": { "version": "4.3.0", @@ -6089,12 +5566,16 @@ "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "peer": true }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "peer": true }, "node_modules/json-stringify-safe": { "version": "5.0.1", @@ -6128,6 +5609,8 @@ "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "peer": true, "dependencies": { "json-buffer": "3.0.1" } @@ -6159,6 +5642,8 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "peer": true, "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -6187,6 +5672,8 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "peer": true, "dependencies": { "p-locate": "^5.0.0" }, @@ -6205,7 +5692,9 @@ "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "peer": true }, "node_modules/logform": { "version": "2.6.1", @@ -6234,9 +5723,9 @@ } }, "node_modules/luxon": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.4.4.tgz", - "integrity": "sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.5.0.tgz", + "integrity": "sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ==", "engines": { "node": ">=12" } @@ -6325,12 +5814,13 @@ "dev": true }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, + "license": "MIT", "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -6446,10 +5936,9 @@ } }, "node_modules/mqtt": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/mqtt/-/mqtt-5.8.1.tgz", - "integrity": "sha512-EL5yY3yOdEBOyCTM41erawRxdWmGktc48eEGO74NpEBMUbTAPepo5Id4wi+/do85sACFfsycaURvoiCNxQRTHw==", - "license": "MIT", + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/mqtt/-/mqtt-5.10.0.tgz", + "integrity": "sha512-2qpkUi5Ftp8cBX4sPCh/yr4ULBfLFQkjlhTGVpilHznOlsmDWIligmT1anSaJ1FqiH29RONNZJXhcJQaFwddgQ==", "dependencies": { "@types/readable-stream": "^4.0.5", "@types/ws": "^8.5.9", @@ -6459,7 +5948,6 @@ "help-me": "^5.0.0", "lru-cache": "^10.0.1", "minimist": "^1.2.8", - "mqtt": "^5.2.0", "mqtt-packet": "^9.0.0", "number-allocator": "^1.0.14", "readable-stream": "^4.4.2", @@ -6489,12 +5977,9 @@ } }, "node_modules/mqtt/node_modules/lru-cache": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", - "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", - "engines": { - "node": "14 || >=16.14" - } + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" }, "node_modules/ms": { "version": "2.1.3", @@ -6515,7 +6000,8 @@ "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true }, "node_modules/neo-async": { "version": "2.6.2", @@ -6593,95 +6079,15 @@ "node": ">= 6" } }, - "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, "engines": { "node": ">= 0.4" } }, - "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.entries": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", - "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.groupby": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", - "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1" - } - }, - "node_modules/object.values": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/on-exit-leak-free": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz", @@ -6730,6 +6136,8 @@ "version": "0.9.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "peer": true, "dependencies": { "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", @@ -6751,6 +6159,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, "dependencies": { "yocto-queue": "^0.1.0" }, @@ -6765,6 +6174,8 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "peer": true, "dependencies": { "p-limit": "^3.0.2" }, @@ -6794,6 +6205,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "peer": true, "dependencies": { "callsites": "^3.0.0" }, @@ -6823,6 +6236,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, "engines": { "node": ">=8" } @@ -6846,7 +6260,8 @@ "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true }, "node_modules/path-scurry": { "version": "1.11.1", @@ -7005,11 +6420,11 @@ } }, "node_modules/posthog-node": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/posthog-node/-/posthog-node-4.0.1.tgz", - "integrity": "sha512-rtqm2h22QxLGBrW2bLYzbRhliIrqgZ0k+gF0LkQ1SNdeD06YE5eilV0MxZppFSxC8TfH0+B0cWCuebEnreIDgQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/posthog-node/-/posthog-node-4.2.0.tgz", + "integrity": "sha512-hgyCYMyzMvuF3qWMw6JvS8gT55v7Mtp5wKWcnDrw+nu39D0Tk9BXD7I0LOBp0lGlHEPaXCEVYUtviNKrhMALGA==", "dependencies": { - "axios": "^1.6.2", + "axios": "^1.7.4", "rusha": "^0.8.14" }, "engines": { @@ -7020,6 +6435,8 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "peer": true, "engines": { "node": ">= 0.8.0" } @@ -7028,6 +6445,7 @@ "version": "3.3.3", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "dev": true, "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" @@ -7043,6 +6461,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, "dependencies": { "fast-diff": "^1.1.2" }, @@ -7169,6 +6588,7 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, "funding": [ { "type": "github", @@ -7182,7 +6602,8 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "peer": true }, "node_modules/quick-format-unescaped": { "version": "4.0.4", @@ -7228,22 +6649,6 @@ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", - "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "functions-have-names": "^1.2.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/reinterval": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/reinterval/-/reinterval-1.1.0.tgz", @@ -7270,6 +6675,7 @@ "version": "1.22.4", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", + "dev": true, "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -7307,6 +6713,8 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "peer": true, "engines": { "node": ">=4" } @@ -7346,6 +6754,8 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "peer": true, "dependencies": { "glob": "^7.1.3" }, @@ -7377,6 +6787,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, "funding": [ { "type": "github", @@ -7391,6 +6802,7 @@ "url": "https://feross.org/support" } ], + "peer": true, "dependencies": { "queue-microtask": "^1.2.2" } @@ -7400,23 +6812,6 @@ "resolved": "https://registry.npmjs.org/rusha/-/rusha-0.8.14.tgz", "integrity": "sha512-cLgakCUf6PedEu15t8kbsjnwIFFR2D4RfL+W3iWFJ4iac7z4B0ZI8fxy4R3J956kAI68HclCFGL8MPoUVC3qVA==" }, - "node_modules/safe-array-concat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz", - "integrity": "sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -7436,19 +6831,6 @@ } ] }, - "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/safe-regex2": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/safe-regex2/-/safe-regex2-2.0.0.tgz", @@ -7474,6 +6856,7 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, "bin": { "semver": "bin/semver.js" } @@ -7545,19 +6928,6 @@ "node": ">=8" } }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", @@ -7593,12 +6963,11 @@ } }, "node_modules/snyk": { - "version": "1.1292.1", - "resolved": "https://registry.npmjs.org/snyk/-/snyk-1.1292.1.tgz", - "integrity": "sha512-wRJ6twqbr2KGf0Y8EmnuOKDawNbzNSGebEvmXVRIz0MZgvZhiK9FZQHiwfWr/XTXSx7mAp3zrsKcLsOGFkg6fQ==", + "version": "1.1292.4", + "resolved": "https://registry.npmjs.org/snyk/-/snyk-1.1292.4.tgz", + "integrity": "sha512-UwanRAL537nYVYEn7SwCOP2qkGl0QCGrSmzRlF7J73ffZUCK1p+xSR3GqB3zRqczXNh/fGLV8hTvupM6HrtTeg==", "dev": true, "hasInstallScript": true, - "license": "Apache-2.0", "dependencies": { "@sentry/node": "^7.36.0", "global-agent": "^3.0.0" @@ -7735,48 +7104,6 @@ "node": ">=8" } }, - "node_modules/string.prototype.trim": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", - "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -7822,6 +7149,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, "engines": { "node": ">=8" }, @@ -7833,6 +7161,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -7844,6 +7173,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, "engines": { "node": ">= 0.4" }, @@ -7855,6 +7185,7 @@ "version": "0.9.1", "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.1.tgz", "integrity": "sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==", + "dev": true, "license": "MIT", "dependencies": { "@pkgr/core": "^0.1.0", @@ -7868,10 +7199,9 @@ } }, "node_modules/systeminformation": { - "version": "5.22.11", - "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.22.11.tgz", - "integrity": "sha512-aLws5yi4KCHTb0BVvbodQY5bY8eW4asMRDTxTW46hqw9lGjACX6TlLdJrkdoHYRB0qs+MekqEq1zG7WDnWE8Ug==", - "license": "MIT", + "version": "5.23.5", + "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.23.5.tgz", + "integrity": "sha512-PEpJwhRYxZgBCAlWZhWIgfMTjXLqfcaZ1pJsJn9snWNfBW/Z1YQg1mbIUSWrEV3ErAHF7l/OoVLQeaZDlPzkpA==", "os": [ "darwin", "linux", @@ -7915,7 +7245,9 @@ "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "peer": true }, "node_modules/thread-stream": { "version": "2.7.0", @@ -7977,36 +7309,6 @@ "node": ">= 14.0.0" } }, - "node_modules/tsconfig-paths": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "engines": { - "node": ">=4" - } - }, "node_modules/tslib": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", @@ -8016,6 +7318,8 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "peer": true, "dependencies": { "prelude-ls": "^1.2.1" }, @@ -8036,6 +7340,8 @@ "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "peer": true, "engines": { "node": ">=10" }, @@ -8055,67 +7361,6 @@ "node": ">= 0.6" } }, - "node_modules/typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", @@ -8133,20 +7378,6 @@ "node": ">=0.8.0" } }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/unc-path-regex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", @@ -8284,44 +7515,10 @@ "node": ">= 8" } }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", - "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/winston": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.13.1.tgz", - "integrity": "sha512-SvZit7VFNvXRzbqGHsv5KSmgbEYR5EiQfDAL9gxYkRqa934Hnk++zze0wANKtMHcy/gI4W/3xmSDwlhf865WGw==", - "license": "MIT", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.14.2.tgz", + "integrity": "sha512-CO8cdpBB2yqzEf8v895L+GNKYJiEq8eKlHU38af3snQBQ+sdAIUepjMSguOIJC7ICbzm0ZI+Af2If4vIJrtmOg==", "dependencies": { "@colors/colors": "^1.6.0", "@dabh/diagnostics": "^2.0.2", @@ -8401,33 +7598,33 @@ "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==" }, "node_modules/worker-timers": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/worker-timers/-/worker-timers-7.1.6.tgz", - "integrity": "sha512-yNd+WSL5T8fyKTM3iIxrH4VQkB0EhQJAVsOQCyAbb56bNHc70ADLAMFi4g2m7dD4S0jcSoJxmiy7FB9fy1e4JA==", + "version": "7.1.8", + "resolved": "https://registry.npmjs.org/worker-timers/-/worker-timers-7.1.8.tgz", + "integrity": "sha512-R54psRKYVLuzff7c1OTFcq/4Hue5Vlz4bFtNEIarpSiCYhpifHU3aIQI29S84o1j87ePCYqbmEJPqwBTf+3sfw==", "dependencies": { - "@babel/runtime": "^7.24.1", + "@babel/runtime": "^7.24.5", "tslib": "^2.6.2", - "worker-timers-broker": "^6.1.6", - "worker-timers-worker": "^7.0.69" + "worker-timers-broker": "^6.1.8", + "worker-timers-worker": "^7.0.71" } }, "node_modules/worker-timers-broker": { - "version": "6.1.6", - "resolved": "https://registry.npmjs.org/worker-timers-broker/-/worker-timers-broker-6.1.6.tgz", - "integrity": "sha512-ZRRjoIVU3vHJlDur51qHRY0hNExyXfmP9vEVu9FIlTNtsL/bYBreryFMD/NUBSyDE7IHTEc1PUG9J0q9OB4E5w==", + "version": "6.1.8", + "resolved": "https://registry.npmjs.org/worker-timers-broker/-/worker-timers-broker-6.1.8.tgz", + "integrity": "sha512-FUCJu9jlK3A8WqLTKXM9E6kAmI/dR1vAJ8dHYLMisLNB/n3GuaFIjJ7pn16ZcD1zCOf7P6H62lWIEBi+yz/zQQ==", "dependencies": { - "@babel/runtime": "^7.24.1", + "@babel/runtime": "^7.24.5", "fast-unique-numbers": "^8.0.13", "tslib": "^2.6.2", - "worker-timers-worker": "^7.0.69" + "worker-timers-worker": "^7.0.71" } }, "node_modules/worker-timers-worker": { - "version": "7.0.69", - "resolved": "https://registry.npmjs.org/worker-timers-worker/-/worker-timers-worker-7.0.69.tgz", - "integrity": "sha512-ykpImmLGYw/l9IuM6gklY0wd7WBXfNyQgzR2jEb8uMPHZhM5i8KWHTy3xb0Kr2QVwooU5eE0xAG6FiFYHPOssQ==", + "version": "7.0.71", + "resolved": "https://registry.npmjs.org/worker-timers-worker/-/worker-timers-worker-7.0.71.tgz", + "integrity": "sha512-ks/5YKwZsto1c2vmljroppOKCivB/ma97g9y77MAAz2TBBjPPgpoOiS1qYQKIgvGTr2QYPT3XhJWIB6Rj2MVPQ==", "dependencies": { - "@babel/runtime": "^7.24.1", + "@babel/runtime": "^7.24.5", "tslib": "^2.6.2" } }, @@ -8505,10 +7702,9 @@ } }, "node_modules/xstate": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/xstate/-/xstate-5.15.0.tgz", - "integrity": "sha512-0DGArbj+ych7PcCqHzhEvXH1qVG41lhenwdbEPBRJyxQP9TLooUsR7oiR4YWYHblLOVWvz/esiw8HUtHXp/kZA==", - "license": "MIT", + "version": "5.17.4", + "resolved": "https://registry.npmjs.org/xstate/-/xstate-5.17.4.tgz", + "integrity": "sha512-KM2FYVOUJ04HlOO4TY3wEXqoYPR/XsDu+ewm+IWw0vilXqND0jVfvv04tEFwp8Mkk7I/oHXM8t1Ex9xJyUS4ZA==", "funding": { "type": "opencollective", "url": "https://opencollective.com/xstate" @@ -8568,6 +7764,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, "engines": { "node": ">=10" }, diff --git a/package.json b/package.json index e6d97ad8..083e68d2 100644 --- a/package.json +++ b/package.json @@ -55,22 +55,18 @@ "@fastify/reply-from": "^9.8.0", "@fastify/sensible": "^5.6.0", "@fastify/static": "^7.0.4", - "@fastify/swagger": "^8.14.0", - "@fastify/swagger-ui": "^4.0.1", + "@fastify/swagger": "^8.15.0", + "@fastify/swagger-ui": "^4.1.0", "@keyvhq/core": "^2.1.1", "@xstate/fsm": "^2.0.1", "any-base": "^1.1.0", - "axios": "^1.7.2", + "axios": "^1.7.5", "commander": "^12.1.0", "config": "^3.3.12", "cron-job-manager": "^2.3.1", "email-validator": "^2.0.4", "enigma.js": "^2.14.0", - "esbuild": "^0.23.0", - "eslint": "^8.5.7", - "eslint-config-airbnb-base": "^15.0.0", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-prettier": "^5.2.1", + "esbuild": "^0.23.1", "express-handlebars": "^7.1.3", "fastify": "^4.28.1", "fastify-healthcheck": "^4.4.0", @@ -81,39 +77,41 @@ "i": "^0.3.7", "influx": "^5.9.3", "is-unc-path": "^1.0.0", - "jjsontree.js": "^2.1.0", + "jjsontree.js": "^2.9.0", "js-yaml": "^4.1.0", "jshint": "^2.13.6", "lodash": "^4.17.21", - "luxon": "^3.4.4", + "luxon": "^3.5.0", "mkdirp": "^3.0.1", "moment": "^2.30.1", "moment-precise-range-plugin": "^1.3.0", - "mqtt": "^5.8.1", + "mqtt": "^5.10.0", "ms-teams-wrapper": "^1.0.2", "nodemailer": "^6.9.14", "nodemailer-express-handlebars": "^6.1.2", "os": "^0.1.2", - "posthog-node": "^4.0.1", + "posthog-node": "^4.2.0", "promise": "^8.3.0", "qrs-interact": "^6.3.1", "rate-limiter-flexible": "^5.0.3", "serializeapp": "^3.0.0", - "systeminformation": "^5.22.11", + "systeminformation": "^5.23.5", "upath": "^2.0.1", "uuid": "^10.0.0", - "winston": "^3.13.1", + "winston": "^3.14.2", "winston-daily-rotate-file": "^5.0.0", "ws": "^8.18.0", - "xstate": "^5.15.0" + "xstate": "^5.17.4" }, "devDependencies": { - "@babel/eslint-parser": "^7.24.8", + "@babel/eslint-parser": "^7.25.1", "@babel/plugin-syntax-import-assertions": "^7.24.7", - "eslint-plugin-import": "^2.29.1", + "@eslint/js": "^9.9.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", "prettier": "^3.3.3", - "snyk": "^1.1292.1" + "snyk": "^1.1292.4" }, "pkg": { "assets": [