@nsshunt/stsuxvue 1.0.127 → 1.0.131

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist/stsuxvue.cjs +833 -289
  2. package/dist/stsuxvue.cjs.map +1 -1
  3. package/dist/stsuxvue.css +55 -55
  4. package/dist/stsuxvue.mjs +833 -289
  5. package/dist/stsuxvue.mjs.map +1 -1
  6. package/package.json +18 -17
  7. package/types/Views/AppView.vue.d.ts.map +1 -1
  8. package/types/Views/LandingView.vue.d.ts.map +1 -1
  9. package/types/Views/UXModelNavigatorView.vue.d.ts.map +1 -1
  10. package/types/Views/UXModelNavigatorViewSingle.vue.d.ts.map +1 -1
  11. package/types/commonTypes.d.ts.map +1 -1
  12. package/types/components/UXBarChart.vue.d.ts.map +1 -1
  13. package/types/components/UXLineChart.vue.d.ts.map +1 -1
  14. package/types/components/UXModelInstrumentAgentCommon.vue.d.ts.map +1 -1
  15. package/types/components/UXModelInstrumentServiceCommon.vue.d.ts.map +1 -1
  16. package/types/components/UXModelInstrumentServiceSmall.vue.d.ts.map +1 -1
  17. package/types/components/UXModelNavigator.vue.d.ts +1 -1
  18. package/types/components/UXModelNavigator.vue.d.ts.map +1 -1
  19. package/types/components/UXModelNode.vue.d.ts.map +1 -1
  20. package/types/components/UXMultiBarChart.vue.d.ts +1 -1
  21. package/types/components/UXMultiBarChart.vue.d.ts.map +1 -1
  22. package/types/components/UXRadialChart.vue.d.ts.map +1 -1
  23. package/types/components/UXTestForm.vue.d.ts +1 -1
  24. package/types/components/UXTestForm.vue.d.ts.map +1 -1
  25. package/types/index.d.ts +13 -13
  26. package/types/index.d.ts.map +1 -1
  27. package/types/plugins/vuetify.d.ts +4 -4
  28. package/types/plugins/vuetify.d.ts.map +1 -1
  29. package/types/plugins/webfontloader.d.ts.map +1 -1
  30. package/types/stores/modelStore.d.ts +2 -2
  31. package/types/stores/modelStore.d.ts.map +1 -1
package/dist/stsuxvue.cjs CHANGED
@@ -34,7 +34,7 @@ var __copyProps = (to, from, except, desc) => {
34
34
  }
35
35
  return to;
36
36
  };
37
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
37
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule || !__hasOwnProp.call(mod, "default") ? __defProp(target, "default", {
38
38
  value: mod,
39
39
  enumerable: true
40
40
  }) : target, mod));
@@ -414,7 +414,7 @@ var UXRadialChart_default = /* @__PURE__ */ (0, vue.defineComponent)({
414
414
  }
415
415
  });
416
416
  //#endregion
417
- //#region node_modules/ansi-to-html/node_modules/entities/lib/maps/entities.json
417
+ //#region node_modules/entities/lib/maps/entities.json
418
418
  var entities_exports = /* @__PURE__ */ __exportAll({
419
419
  AElig: () => "Æ",
420
420
  AMP: () => "&",
@@ -4897,7 +4897,7 @@ var init_entities = __esmMin((() => {
4897
4897
  };
4898
4898
  }));
4899
4899
  //#endregion
4900
- //#region node_modules/ansi-to-html/node_modules/entities/lib/maps/legacy.json
4900
+ //#region node_modules/entities/lib/maps/legacy.json
4901
4901
  var legacy_exports = /* @__PURE__ */ __exportAll({
4902
4902
  AElig: () => "Æ",
4903
4903
  AMP: () => "&",
@@ -5118,7 +5118,7 @@ var init_legacy = __esmMin((() => {
5118
5118
  };
5119
5119
  }));
5120
5120
  //#endregion
5121
- //#region node_modules/ansi-to-html/node_modules/entities/lib/maps/xml.json
5121
+ //#region node_modules/entities/lib/maps/xml.json
5122
5122
  var xml_exports = /* @__PURE__ */ __exportAll({
5123
5123
  amp: () => "&",
5124
5124
  apos: () => "'",
@@ -5137,7 +5137,7 @@ var init_xml = __esmMin((() => {
5137
5137
  };
5138
5138
  }));
5139
5139
  //#endregion
5140
- //#region node_modules/ansi-to-html/node_modules/entities/lib/maps/decode.json
5140
+ //#region node_modules/entities/lib/maps/decode.json
5141
5141
  var decode_exports = /* @__PURE__ */ __exportAll({ default: () => decode_default });
5142
5142
  var decode_default;
5143
5143
  var init_decode = __esmMin((() => {
@@ -5173,7 +5173,7 @@ var init_decode = __esmMin((() => {
5173
5173
  };
5174
5174
  }));
5175
5175
  //#endregion
5176
- //#region node_modules/ansi-to-html/node_modules/entities/lib/decode_codepoint.js
5176
+ //#region node_modules/entities/lib/decode_codepoint.js
5177
5177
  var require_decode_codepoint = /* @__PURE__ */ __commonJSMin$1(((exports) => {
5178
5178
  var __importDefault = exports && exports.__importDefault || function(mod) {
5179
5179
  return mod && mod.__esModule ? mod : { "default": mod };
@@ -5198,7 +5198,7 @@ var require_decode_codepoint = /* @__PURE__ */ __commonJSMin$1(((exports) => {
5198
5198
  exports.default = decodeCodePoint;
5199
5199
  }));
5200
5200
  //#endregion
5201
- //#region node_modules/ansi-to-html/node_modules/entities/lib/decode.js
5201
+ //#region node_modules/entities/lib/decode.js
5202
5202
  var require_decode = /* @__PURE__ */ __commonJSMin$1(((exports) => {
5203
5203
  var __importDefault = exports && exports.__importDefault || function(mod) {
5204
5204
  return mod && mod.__esModule ? mod : { "default": mod };
@@ -5250,7 +5250,7 @@ var require_decode = /* @__PURE__ */ __commonJSMin$1(((exports) => {
5250
5250
  }
5251
5251
  }));
5252
5252
  //#endregion
5253
- //#region node_modules/ansi-to-html/node_modules/entities/lib/encode.js
5253
+ //#region node_modules/entities/lib/encode.js
5254
5254
  var require_encode = /* @__PURE__ */ __commonJSMin$1(((exports) => {
5255
5255
  var __importDefault = exports && exports.__importDefault || function(mod) {
5256
5256
  return mod && mod.__esModule ? mod : { "default": mod };
@@ -5363,7 +5363,7 @@ var require_encode = /* @__PURE__ */ __commonJSMin$1(((exports) => {
5363
5363
  }
5364
5364
  }));
5365
5365
  //#endregion
5366
- //#region node_modules/ansi-to-html/node_modules/entities/lib/index.js
5366
+ //#region node_modules/entities/lib/index.js
5367
5367
  var require_lib = /* @__PURE__ */ __commonJSMin$1(((exports) => {
5368
5368
  Object.defineProperty(exports, "__esModule", { value: true });
5369
5369
  exports.decodeXMLStrict = exports.decodeHTML5Strict = exports.decodeHTML4Strict = exports.decodeHTML5 = exports.decodeHTML4 = exports.decodeHTMLStrict = exports.decodeHTML = exports.decodeXML = exports.encodeHTML5 = exports.encodeHTML4 = exports.escapeUTF8 = exports.escape = exports.encodeNonAsciiHTML = exports.encodeHTML = exports.encodeXML = exports.encode = exports.decodeStrict = exports.decode = void 0;
@@ -6043,7 +6043,7 @@ var import_ansi_to_html = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin
6043
6043
  return Filter;
6044
6044
  }();
6045
6045
  })))(), 1);
6046
- /*! @license DOMPurify 3.4.12 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.12/LICENSE */
6046
+ /*! @license DOMPurify 3.4.14 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.14/LICENSE */
6047
6047
  function _arrayLikeToArray(r, a) {
6048
6048
  (null == a || a > r.length) && (a = r.length);
6049
6049
  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
@@ -6202,9 +6202,11 @@ function clone(object) {
6202
6202
  var _ref3 = _slicedToArray(_ref2, 2);
6203
6203
  const property = _ref3[0];
6204
6204
  const value = _ref3[1];
6205
- if (objectHasOwnProperty(object, property)) if (arrayIsArray(value)) newObject[property] = cleanArray(value);
6206
- else if (value && typeof value === "object" && value.constructor === Object) newObject[property] = clone(value);
6207
- else newObject[property] = value;
6205
+ if (objectHasOwnProperty(object, property)) {
6206
+ if (arrayIsArray(value)) newObject[property] = cleanArray(value);
6207
+ else if (value && typeof value === "object" && value.constructor === Object) newObject[property] = clone(value);
6208
+ else newObject[property] = value;
6209
+ }
6208
6210
  }
6209
6211
  return newObject;
6210
6212
  }
@@ -6772,6 +6774,7 @@ var svg = freeze([
6772
6774
  "patterncontentunits",
6773
6775
  "patterntransform",
6774
6776
  "patternunits",
6777
+ "pointer-events",
6775
6778
  "points",
6776
6779
  "preservealpha",
6777
6780
  "preserveaspectratio",
@@ -6826,6 +6829,7 @@ var svg = freeze([
6826
6829
  "u2",
6827
6830
  "unicode",
6828
6831
  "values",
6832
+ "vector-effect",
6829
6833
  "viewbox",
6830
6834
  "visibility",
6831
6835
  "version",
@@ -6939,6 +6943,24 @@ var NODE_TYPE = {
6939
6943
  documentFragment: 11,
6940
6944
  notation: 12
6941
6945
  };
6946
+ var LITERAL_TEXT_ELEMENT_NAMES = [
6947
+ "style",
6948
+ "script",
6949
+ "xmp",
6950
+ "iframe",
6951
+ "noembed",
6952
+ "noframes",
6953
+ "plaintext",
6954
+ "noscript"
6955
+ ];
6956
+ var LITERAL_TEXT_ELEMENTS = freeze(addToSet({}, LITERAL_TEXT_ELEMENT_NAMES));
6957
+ var LITERAL_TEXT_CLOSE = function() {
6958
+ const map = {};
6959
+ arrayForEach(LITERAL_TEXT_ELEMENT_NAMES, (name) => {
6960
+ map[name] = seal(new RegExp("</" + name + "(?=[\\t\\n\\f\\r />])", "i"));
6961
+ });
6962
+ return freeze(map);
6963
+ }();
6942
6964
  var getGlobal$1 = function getGlobal() {
6943
6965
  return typeof window === "undefined" ? null : window;
6944
6966
  };
@@ -6998,10 +7020,25 @@ var _createHooksMap = function _createHooksMap() {
6998
7020
  var _resolveSetOption = function _resolveSetOption(cfg, key, fallback, options) {
6999
7021
  return objectHasOwnProperty(cfg, key) && arrayIsArray(cfg[key]) ? addToSet(options.base ? clone(options.base) : {}, cfg[key], options.transform) : fallback;
7000
7022
  };
7023
+ /**
7024
+ * Resolve an object-valued configuration option: a prototype-free clone
7025
+ * of cfg[key] when it is an own, truthy object property, else a fresh
7026
+ * fallback built by makeFallback (fresh on every parse, so a previous
7027
+ * parse can never leak state into the next one).
7028
+ *
7029
+ * @param cfg the cloned, prototype-free configuration object
7030
+ * @param key the configuration property to read
7031
+ * @param makeFallback builds the fallback value when the option is absent
7032
+ * @returns the resolved object
7033
+ */
7034
+ var _resolveObjectOption = function _resolveObjectOption(cfg, key, makeFallback) {
7035
+ const value = objectHasOwnProperty(cfg, key) ? cfg[key] : void 0;
7036
+ return value && typeof value === "object" ? clone(value) : makeFallback();
7037
+ };
7001
7038
  function createDOMPurify() {
7002
7039
  let window = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : getGlobal$1();
7003
7040
  const DOMPurify = (root) => createDOMPurify(root);
7004
- DOMPurify.version = "3.4.12";
7041
+ DOMPurify.version = "3.4.14";
7005
7042
  DOMPurify.removed = [];
7006
7043
  if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {
7007
7044
  DOMPurify.isSupported = false;
@@ -7025,6 +7062,13 @@ function createDOMPurify() {
7025
7062
  const getAttributes = lookupGetter(ElementPrototype, "attributes");
7026
7063
  const getNodeType = Node && Node.prototype ? lookupGetter(Node.prototype, "nodeType") : null;
7027
7064
  const getNodeName = Node && Node.prototype ? lookupGetter(Node.prototype, "nodeName") : null;
7065
+ const getOwnerDocument = Node && Node.prototype ? lookupGetter(Node.prototype, "ownerDocument") : null;
7066
+ const _readNodeType = function _readNodeType(node) {
7067
+ return getNodeType ? getNodeType(node) : node.nodeType;
7068
+ };
7069
+ const _readNodeName = function _readNodeName(node) {
7070
+ return getNodeName ? getNodeName(node) : node.nodeName;
7071
+ };
7028
7072
  if (typeof HTMLTemplateElement === "function") {
7029
7073
  const template = document.createElement("template");
7030
7074
  if (template.content && template.content.ownerDocument) document = template.content.ownerDocument;
@@ -7282,9 +7326,9 @@ function createDOMPurify() {
7282
7326
  IN_PLACE = cfg.IN_PLACE || false;
7283
7327
  IS_ALLOWED_URI$1 = isRegex(cfg.ALLOWED_URI_REGEXP) ? cfg.ALLOWED_URI_REGEXP : IS_ALLOWED_URI;
7284
7328
  NAMESPACE = typeof cfg.NAMESPACE === "string" ? cfg.NAMESPACE : HTML_NAMESPACE;
7285
- MATHML_TEXT_INTEGRATION_POINTS = objectHasOwnProperty(cfg, "MATHML_TEXT_INTEGRATION_POINTS") && cfg.MATHML_TEXT_INTEGRATION_POINTS && typeof cfg.MATHML_TEXT_INTEGRATION_POINTS === "object" ? clone(cfg.MATHML_TEXT_INTEGRATION_POINTS) : addToSet({}, DEFAULT_MATHML_TEXT_INTEGRATION_POINTS);
7286
- HTML_INTEGRATION_POINTS = objectHasOwnProperty(cfg, "HTML_INTEGRATION_POINTS") && cfg.HTML_INTEGRATION_POINTS && typeof cfg.HTML_INTEGRATION_POINTS === "object" ? clone(cfg.HTML_INTEGRATION_POINTS) : addToSet({}, DEFAULT_HTML_INTEGRATION_POINTS);
7287
- const customElementHandling = objectHasOwnProperty(cfg, "CUSTOM_ELEMENT_HANDLING") && cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING === "object" ? clone(cfg.CUSTOM_ELEMENT_HANDLING) : create(null);
7329
+ MATHML_TEXT_INTEGRATION_POINTS = _resolveObjectOption(cfg, "MATHML_TEXT_INTEGRATION_POINTS", () => addToSet({}, DEFAULT_MATHML_TEXT_INTEGRATION_POINTS));
7330
+ HTML_INTEGRATION_POINTS = _resolveObjectOption(cfg, "HTML_INTEGRATION_POINTS", () => addToSet({}, DEFAULT_HTML_INTEGRATION_POINTS));
7331
+ const customElementHandling = _resolveObjectOption(cfg, "CUSTOM_ELEMENT_HANDLING", () => create(null));
7288
7332
  CUSTOM_ELEMENT_HANDLING = create(null);
7289
7333
  if (objectHasOwnProperty(customElementHandling, "tagNameCheck") && isRegexOrFunction(customElementHandling.tagNameCheck)) CUSTOM_ELEMENT_HANDLING.tagNameCheck = customElementHandling.tagNameCheck;
7290
7334
  if (objectHasOwnProperty(customElementHandling, "attributeNameCheck") && isRegexOrFunction(customElementHandling.attributeNameCheck)) CUSTOM_ELEMENT_HANDLING.attributeNameCheck = customElementHandling.attributeNameCheck;
@@ -7331,11 +7375,6 @@ function createDOMPurify() {
7331
7375
  addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);
7332
7376
  }
7333
7377
  }
7334
- if (objectHasOwnProperty(cfg, "ADD_URI_SAFE_ATTR") && arrayIsArray(cfg.ADD_URI_SAFE_ATTR)) addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);
7335
- if (objectHasOwnProperty(cfg, "FORBID_CONTENTS") && arrayIsArray(cfg.FORBID_CONTENTS)) {
7336
- if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) FORBID_CONTENTS = clone(FORBID_CONTENTS);
7337
- addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);
7338
- }
7339
7378
  if (objectHasOwnProperty(cfg, "ADD_FORBID_CONTENTS") && arrayIsArray(cfg.ADD_FORBID_CONTENTS)) {
7340
7379
  if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) FORBID_CONTENTS = clone(FORBID_CONTENTS);
7341
7380
  addToSet(FORBID_CONTENTS, cfg.ADD_FORBID_CONTENTS, transformCaseFunc);
@@ -7452,6 +7491,32 @@ function createDOMPurify() {
7452
7491
  }
7453
7492
  };
7454
7493
  /**
7494
+ * _stripAttributeNode
7495
+ *
7496
+ * Remove a single Attr node case/namespace-exactly on an attribute-teardown
7497
+ * path. Name-based removeAttribute() ASCII-lowercases its lookup key for an
7498
+ * HTML element in an HTML document and so silently misses a case-preserved
7499
+ * handler (e.g. `ONERROR` off an XML/XHTML import) - the same defect
7500
+ * _removeAttribute() was fixed for, which a name-based call would reintroduce
7501
+ * on these IN_PLACE teardown paths. Unlike _removeAttribute this does not
7502
+ * record into DOMPurify.removed: the neutralize passes intentionally do not
7503
+ * book-keep. A clobbered/detached node falls back to best-effort name-based
7504
+ * removal.
7505
+ *
7506
+ * @param element the element to strip the attribute from
7507
+ * @param attribute the Attr node to remove
7508
+ * @param name the attribute's name, for the fallback path
7509
+ */
7510
+ const _stripAttributeNode = function _stripAttributeNode(element, attribute, name) {
7511
+ try {
7512
+ element.removeAttributeNode(attribute);
7513
+ } catch (_) {
7514
+ try {
7515
+ element.removeAttribute(name);
7516
+ } catch (_) {}
7517
+ }
7518
+ };
7519
+ /**
7455
7520
  * _neutralizeRoot
7456
7521
  *
7457
7522
  * Fail-closed teardown of an in-place root after the sanitize walk aborts
@@ -7485,36 +7550,53 @@ function createDOMPurify() {
7485
7550
  if (attributes) for (let i = attributes.length - 1; i >= 0; --i) {
7486
7551
  const attribute = attributes[i];
7487
7552
  const name = attribute && attribute.name;
7488
- if (typeof name === "string") try {
7489
- root.removeAttribute(name);
7490
- } catch (_) {}
7553
+ if (typeof name === "string") _stripAttributeNode(root, attribute, name);
7491
7554
  }
7492
7555
  };
7493
7556
  /**
7494
7557
  * _removeAttribute
7495
7558
  *
7559
+ * Name-based getAttributeNode()/removeAttribute() ASCII-lowercase their
7560
+ * lookup key for HTML elements in an HTML document, so they silently miss an
7561
+ * attribute whose stored qualified name still contains uppercase ASCII
7562
+ * letters. That happens when the node came from a case-preserving source
7563
+ * (an XML/XHTML document imported via importNode(), or createAttributeNS()),
7564
+ * where e.g. `ONERROR` survives the walk: the policy check lowercases to
7565
+ * `onerror` and rejects it, but `removeAttribute('ONERROR')` looks up
7566
+ * `onerror` and finds nothing. Remove the exact Attr node instead, which is
7567
+ * case- and namespace-exact, and fall back to name-based removal only when
7568
+ * the caller could not supply the node.
7569
+ *
7496
7570
  * @param name an Attribute name
7497
7571
  * @param element a DOM node
7572
+ * @param attr the exact Attr node to remove, when the caller has it
7498
7573
  */
7499
- const _removeAttribute = function _removeAttribute(name, element) {
7574
+ const _removeAttribute = function _removeAttribute(name, element, attr) {
7575
+ if (!attr) try {
7576
+ attr = element.getAttributeNode(name);
7577
+ } catch (_) {
7578
+ attr = null;
7579
+ }
7580
+ arrayPush(DOMPurify.removed, {
7581
+ attribute: attr || null,
7582
+ from: element
7583
+ });
7500
7584
  try {
7501
- arrayPush(DOMPurify.removed, {
7502
- attribute: element.getAttributeNode(name),
7503
- from: element
7504
- });
7585
+ if (attr) element.removeAttributeNode(attr);
7586
+ else element.removeAttribute(name);
7505
7587
  } catch (_) {
7506
- arrayPush(DOMPurify.removed, {
7507
- attribute: null,
7508
- from: element
7509
- });
7588
+ try {
7589
+ element.removeAttribute(name);
7590
+ } catch (_) {}
7591
+ }
7592
+ if (name === "is") {
7593
+ if (RETURN_DOM || RETURN_DOM_FRAGMENT) try {
7594
+ _forceRemove(element);
7595
+ } catch (_) {}
7596
+ else try {
7597
+ element.setAttribute(name, "");
7598
+ } catch (_) {}
7510
7599
  }
7511
- element.removeAttribute(name);
7512
- if (name === "is") if (RETURN_DOM || RETURN_DOM_FRAGMENT) try {
7513
- _forceRemove(element);
7514
- } catch (_) {}
7515
- else try {
7516
- element.setAttribute(name, "");
7517
- } catch (_) {}
7518
7600
  };
7519
7601
  /**
7520
7602
  * _stripDisallowedAttributes
@@ -7533,9 +7615,7 @@ function createDOMPurify() {
7533
7615
  const attribute = attributes[i];
7534
7616
  const name = attribute && attribute.name;
7535
7617
  if (typeof name !== "string" || ALLOWED_ATTR[transformCaseFunc(name)]) continue;
7536
- try {
7537
- element.removeAttribute(name);
7538
- } catch (_) {}
7618
+ _stripAttributeNode(element, attribute, name);
7539
7619
  }
7540
7620
  };
7541
7621
  /**
@@ -7564,7 +7644,7 @@ function createDOMPurify() {
7564
7644
  const stack = [root];
7565
7645
  while (stack.length > 0) {
7566
7646
  const node = stack.pop();
7567
- if ((getNodeType ? getNodeType(node) : node.nodeType) === NODE_TYPE.element) _stripDisallowedAttributes(node);
7647
+ if (_readNodeType(node) === NODE_TYPE.element) _stripDisallowedAttributes(node);
7568
7648
  const childNodes = getChildNodes(node);
7569
7649
  if (childNodes) for (let i = childNodes.length - 1; i >= 0; --i) stack.push(childNodes[i]);
7570
7650
  }
@@ -7604,12 +7684,28 @@ function createDOMPurify() {
7604
7684
  *
7605
7685
  * @param root the in-place root to sweep
7606
7686
  */
7687
+ /**
7688
+ * Central policy for declarative-partial-updates patch-linkage attributes,
7689
+ * shared by the _neutralizePatchLinkage pre-pass and _isValidAttribute so
7690
+ * the two sites cannot drift: `patchsrc` always links, `for` links
7691
+ * everywhere except on <label>/<output>, and the whole policy is gated on
7692
+ * SAFE_FOR_XML (see the rationale block in _isValidAttribute).
7693
+ *
7694
+ * @param lcName the transformCaseFunc'd attribute name
7695
+ * @param lcTag the transformCaseFunc'd tag name of the carrying element
7696
+ * @return true if the attribute is patch linkage and must be dropped
7697
+ */
7698
+ const _isPatchLinkageAttribute = function _isPatchLinkageAttribute(lcName, lcTag) {
7699
+ if (!SAFE_FOR_XML) return false;
7700
+ if (lcName === "patchsrc") return true;
7701
+ return lcName === "for" && lcTag !== "label" && lcTag !== "output";
7702
+ };
7607
7703
  const _neutralizePatchLinkage = function _neutralizePatchLinkage(root) {
7608
7704
  if (!SAFE_FOR_XML) return;
7609
7705
  const stack = [root];
7610
7706
  while (stack.length > 0) {
7611
7707
  const node = stack.pop();
7612
- const nodeType = getNodeType ? getNodeType(node) : node.nodeType;
7708
+ const nodeType = _readNodeType(node);
7613
7709
  if (nodeType === NODE_TYPE.processingInstruction || nodeType === NODE_TYPE.comment && regExpTest(COMMENT_MARKUP_PROBE, node.data)) {
7614
7710
  try {
7615
7711
  remove(node);
@@ -7618,10 +7714,10 @@ function createDOMPurify() {
7618
7714
  }
7619
7715
  if (nodeType === NODE_TYPE.element) {
7620
7716
  const element = node;
7621
- const lcTag = transformCaseFunc(getNodeName ? getNodeName(node) : node.nodeName);
7717
+ const lcTag = transformCaseFunc(_readNodeName(node));
7622
7718
  try {
7623
7719
  if (element.hasAttribute && element.hasAttribute("patchsrc")) element.removeAttribute("patchsrc");
7624
- if (element.hasAttribute && element.hasAttribute("for") && lcTag !== "label" && lcTag !== "output") element.removeAttribute("for");
7720
+ if (element.hasAttribute && element.hasAttribute("for") && _isPatchLinkageAttribute("for", lcTag)) element.removeAttribute("for");
7625
7721
  } catch (_) {}
7626
7722
  }
7627
7723
  const childNodes = getChildNodes(node);
@@ -7665,7 +7761,8 @@ function createDOMPurify() {
7665
7761
  * @return The created NodeIterator
7666
7762
  */
7667
7763
  const _createNodeIterator = function _createNodeIterator(root) {
7668
- return createNodeIterator.call(root.ownerDocument || root, root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);
7764
+ const doc = getOwnerDocument ? getOwnerDocument(root) : root.ownerDocument;
7765
+ return createNodeIterator.call(doc || root, root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);
7669
7766
  };
7670
7767
  /**
7671
7768
  * Replace template expression syntax (mustache, ERB, template
@@ -7703,7 +7800,8 @@ function createDOMPurify() {
7703
7800
  const _scrubTemplateExpressions2 = function _scrubTemplateExpressions(node) {
7704
7801
  var _node$querySelectorAl;
7705
7802
  node.normalize();
7706
- const walker = createNodeIterator.call(node.ownerDocument || node, node, NodeFilter.SHOW_TEXT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_CDATA_SECTION | NodeFilter.SHOW_PROCESSING_INSTRUCTION, null);
7803
+ const doc = getOwnerDocument ? getOwnerDocument(node) : node.ownerDocument;
7804
+ const walker = createNodeIterator.call(doc || node, node, NodeFilter.SHOW_TEXT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_CDATA_SECTION | NodeFilter.SHOW_PROCESSING_INSTRUCTION, null);
7707
7805
  let currentNode = walker.nextNode();
7708
7806
  while (currentNode) {
7709
7807
  currentNode.data = _stripTemplateExpressions(currentNode.data);
@@ -7788,12 +7886,32 @@ function createDOMPurify() {
7788
7886
  */
7789
7887
  const _isUnsafeNode = function _isUnsafeNode(currentNode, tagName) {
7790
7888
  if (SAFE_FOR_XML && currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(ELEMENT_MARKUP_PROBE, currentNode.textContent) && regExpTest(ELEMENT_MARKUP_PROBE, currentNode.innerHTML)) return true;
7791
- if (SAFE_FOR_XML && currentNode.namespaceURI === HTML_NAMESPACE && tagName === "style" && _isNode(currentNode.firstElementChild)) return true;
7889
+ if (SAFE_FOR_XML && currentNode.namespaceURI === HTML_NAMESPACE && LITERAL_TEXT_ELEMENTS[tagName] && (_isNode(currentNode.firstElementChild) || typeof currentNode.textContent === "string" && regExpTest(LITERAL_TEXT_CLOSE[tagName], currentNode.textContent))) return true;
7792
7890
  if (currentNode.nodeType === NODE_TYPE.processingInstruction) return true;
7793
7891
  if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(COMMENT_MARKUP_PROBE, currentNode.data)) return true;
7794
7892
  return false;
7795
7893
  };
7796
7894
  /**
7895
+ * Evaluate a CUSTOM_ELEMENT_HANDLING check (a RegExp or a predicate
7896
+ * function, per the validation in _parseConfig) against a name.
7897
+ * Additional arguments are forwarded to predicate functions - the
7898
+ * attributeNameCheck predicate receives the tag name as its second
7899
+ * argument. A null/absent check never matches.
7900
+ *
7901
+ * @param check the configured tagNameCheck / attributeNameCheck value
7902
+ * @param name the name to test
7903
+ * @param args extra arguments forwarded to a predicate function
7904
+ * @return true if the check matches the name
7905
+ */
7906
+ const _matchesNameCheck = function _matchesNameCheck(check, name) {
7907
+ if (check instanceof RegExp) return regExpTest(check, name);
7908
+ if (check instanceof Function) {
7909
+ for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) args[_key - 2] = arguments[_key];
7910
+ return Boolean(check(name, ...args));
7911
+ }
7912
+ return false;
7913
+ };
7914
+ /**
7797
7915
  * Handle a node whose tag is forbidden or not allowlisted: keep
7798
7916
  * allowed custom elements (false return exits _sanitizeElements
7799
7917
  * early - the namespace and fallback-tag removal checks are
@@ -7810,18 +7928,15 @@ function createDOMPurify() {
7810
7928
  * @param tagName the node's transformCaseFunc'd tag name
7811
7929
  * @return true if the node was removed, false if kept
7812
7930
  */
7813
- const _sanitizeDisallowedNode = function _sanitizeDisallowedNode(currentNode, tagName) {
7814
- if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {
7815
- if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) return false;
7816
- if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) return false;
7817
- }
7931
+ const _sanitizeDisallowedNode = function _sanitizeDisallowedNode(currentNode, tagName, root) {
7932
+ if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName) && _matchesNameCheck(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) return false;
7818
7933
  if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {
7819
7934
  const parentNode = getParentNode(currentNode);
7820
7935
  const childNodes = getChildNodes(currentNode);
7821
7936
  if (childNodes && parentNode) {
7822
7937
  const childCount = childNodes.length;
7823
7938
  for (let i = childCount - 1; i >= 0; --i) {
7824
- const hoisted = IN_PLACE ? childNodes[i] : cloneNode(childNodes[i], true);
7939
+ const hoisted = currentNode === root ? cloneNode(childNodes[i], true) : childNodes[i];
7825
7940
  parentNode.insertBefore(hoisted, getNextSibling(currentNode));
7826
7941
  }
7827
7942
  }
@@ -7830,6 +7945,60 @@ function createDOMPurify() {
7830
7945
  return true;
7831
7946
  };
7832
7947
  /**
7948
+ * Fork a hook-mutable allowlist off its shared binding the first time a
7949
+ * (possibly lazily-installed) uponSanitize* hook is about to see it, so the
7950
+ * hook cannot widen the per-instance default or the setConfig binding by
7951
+ * reference and leak past the call. Returns the set unchanged once it is
7952
+ * already call-local, so repeated calls across elements are idempotent.
7953
+ *
7954
+ * @param hookList the uponSanitize* hook array for this event
7955
+ * @param set the current ALLOWED_TAGS / ALLOWED_ATTR binding
7956
+ * @param defaultSet the per-instance DEFAULT_ALLOWED_* constant
7957
+ * @param setConfigSet the captured setConfig() binding, or null
7958
+ * @return a call-local clone if a hook is present and set is still shared,
7959
+ * else set unchanged
7960
+ */
7961
+ const _forkSharedAllowlist = function _forkSharedAllowlist(hookList, set, defaultSet, setConfigSet) {
7962
+ if (hookList.length === 0) return set;
7963
+ return set === defaultSet || set === setConfigSet ? clone(set) : set;
7964
+ };
7965
+ /**
7966
+ * Shared guard for a node that a hook has detached from the walk tree,
7967
+ * used after each element-hook site in _sanitizeElements. Detaching is a
7968
+ * long-standing user pattern (issue #469; draw.io-style foreignObject
7969
+ * filtering). Per the cached, unclobberable parentNode getter the node is
7970
+ * genuinely out of the tree, so it can reach neither the serialized
7971
+ * output nor an IN_PLACE live tree; treat it as removed and stop
7972
+ * processing it. Without this guard, the unsafe-node / namespace checks
7973
+ * would call _forceRemove on a parentless node and hit the REPORT-3
7974
+ * fail-closed throw — which exists for nodes DOMPurify wants gone but
7975
+ * *cannot* detach (clobbered / parentless roots), the opposite of a node
7976
+ * that is already safely gone. The walk root is exempt: a detached
7977
+ * IN_PLACE root is legitimate input and must still be fully sanitized,
7978
+ * and a kill-decision on it must keep hitting the REPORT-3 throw.
7979
+ *
7980
+ * Nodes detached by hooks stay the hook's responsibility for placement:
7981
+ * they are not recorded in DOMPurify.removed, so the post-walk IN_PLACE
7982
+ * pass (which iterates DOMPurify.removed) does not reach them. But a
7983
+ * hook-detached subtree can still hold a queued resource-event handler -
7984
+ * e.g. an <img onload> that began loading when the caller built the live
7985
+ * tree - which fires in page scope after sanitize returns even though the
7986
+ * handler never reached the returned tree. That is the audit-5 F1 hazard,
7987
+ * and the documented node.remove() hook pattern walks straight into it.
7988
+ * So on the IN_PLACE path we neutralize the detached subtree inline,
7989
+ * stripping its non-allow-listed attributes before returning, exactly as
7990
+ * the post-walk pass does for _forceRemove'd subtrees.
7991
+ *
7992
+ * @param currentNode the node a hook may have detached
7993
+ * @param root the current walk root
7994
+ * @return true if the node is detached and now handled, false otherwise
7995
+ */
7996
+ const _handleHookDetachedNode = function _handleHookDetachedNode(currentNode, root) {
7997
+ if (currentNode === root || getParentNode(currentNode) !== null) return false;
7998
+ if (IN_PLACE) _neutralizeSubtree(currentNode);
7999
+ return true;
8000
+ };
8001
+ /**
7833
8002
  * _sanitizeElements
7834
8003
  *
7835
8004
  * @protect nodeName
@@ -7840,27 +8009,28 @@ function createDOMPurify() {
7840
8009
  */
7841
8010
  const _sanitizeElements = function _sanitizeElements(currentNode, root) {
7842
8011
  _executeHooks(hooks.beforeSanitizeElements, currentNode, null);
7843
- if (currentNode !== root && getParentNode(currentNode) === null) return true;
8012
+ if (_handleHookDetachedNode(currentNode, root)) return true;
7844
8013
  if (_isClobbered(currentNode)) {
7845
8014
  _forceRemove(currentNode);
7846
8015
  return true;
7847
8016
  }
7848
- const tagName = transformCaseFunc(getNodeName ? getNodeName(currentNode) : currentNode.nodeName);
8017
+ const tagName = transformCaseFunc(_readNodeName(currentNode));
8018
+ ALLOWED_TAGS = _forkSharedAllowlist(hooks.uponSanitizeElement, ALLOWED_TAGS, DEFAULT_ALLOWED_TAGS, SET_CONFIG_ALLOWED_TAGS);
7849
8019
  _executeHooks(hooks.uponSanitizeElement, currentNode, {
7850
8020
  tagName,
7851
8021
  allowedTags: ALLOWED_TAGS
7852
8022
  });
7853
- if (currentNode !== root && getParentNode(currentNode) === null) return true;
8023
+ if (_handleHookDetachedNode(currentNode, root)) return true;
7854
8024
  if (_isUnsafeNode(currentNode, tagName)) {
7855
8025
  _forceRemove(currentNode);
7856
8026
  return true;
7857
8027
  }
7858
8028
  if (FORBID_TAGS[tagName] || !(EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function && EXTRA_ELEMENT_HANDLING.tagCheck(tagName)) && !ALLOWED_TAGS[tagName]) {
7859
- const removed = _sanitizeDisallowedNode(currentNode, tagName);
8029
+ const removed = _sanitizeDisallowedNode(currentNode, tagName, root);
7860
8030
  if (removed === false) _executeHooks(hooks.afterSanitizeElements, currentNode, null);
7861
8031
  return removed;
7862
8032
  }
7863
- if ((getNodeType ? getNodeType(currentNode) : currentNode.nodeType) === NODE_TYPE.element && !_checkValidNamespace(currentNode)) {
8033
+ if (_readNodeType(currentNode) === NODE_TYPE.element && !_checkValidNamespace(currentNode)) {
7864
8034
  _forceRemove(currentNode);
7865
8035
  return true;
7866
8036
  }
@@ -7888,20 +8058,17 @@ function createDOMPurify() {
7888
8058
  */
7889
8059
  const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {
7890
8060
  if (FORBID_ATTR[lcName]) return false;
7891
- if (SAFE_FOR_XML && lcName === "patchsrc") return false;
7892
- if (SAFE_FOR_XML && lcName === "for" && lcTag !== "label" && lcTag !== "output") return false;
8061
+ if (_isPatchLinkageAttribute(lcName, lcTag)) return false;
7893
8062
  if (SANITIZE_DOM && (lcName === "id" || lcName === "name") && (value in document || value in formElement)) return false;
7894
8063
  const nameIsPermitted = ALLOWED_ATTR[lcName] || EXTRA_ELEMENT_HANDLING.attributeCheck instanceof Function && EXTRA_ELEMENT_HANDLING.attributeCheck(lcName, lcTag);
7895
- if (ALLOW_DATA_ATTR && regExpTest(DATA_ATTR$1, lcName));
7896
- else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR$1, lcName));
7897
- else if (!nameIsPermitted) if (_isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName, lcTag)) || lcName === "is" && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value)));
7898
- else return false;
7899
- else if (URI_SAFE_ATTRIBUTES[lcName]);
7900
- else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE$1, "")));
7901
- else if ((lcName === "src" || lcName === "xlink:href" || lcName === "href") && lcTag !== "script" && stringIndexOf(value, "data:") === 0 && DATA_URI_TAGS[lcTag]);
7902
- else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA$1, stringReplace(value, ATTR_WHITESPACE$1, "")));
7903
- else if (value) return false;
7904
- return true;
8064
+ if (ALLOW_DATA_ATTR && regExpTest(DATA_ATTR$1, lcName)) return true;
8065
+ if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR$1, lcName)) return true;
8066
+ if (!nameIsPermitted) return _isBasicCustomElement(lcTag) && _matchesNameCheck(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) && _matchesNameCheck(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName, lcTag) || lcName === "is" && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && _matchesNameCheck(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value);
8067
+ if (URI_SAFE_ATTRIBUTES[lcName]) return true;
8068
+ if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE$1, ""))) return true;
8069
+ if ((lcName === "src" || lcName === "xlink:href" || lcName === "href") && lcTag !== "script" && stringIndexOf(value, "data:") === 0 && DATA_URI_TAGS[lcTag]) return true;
8070
+ if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA$1, stringReplace(value, ATTR_WHITESPACE$1, ""))) return true;
8071
+ return !value;
7905
8072
  };
7906
8073
  const RESERVED_CUSTOM_ELEMENT_NAMES = addToSet({}, [
7907
8074
  "annotation-xml",
@@ -7980,6 +8147,7 @@ function createDOMPurify() {
7980
8147
  _executeHooks(hooks.beforeSanitizeAttributes, currentNode, null);
7981
8148
  const attributes = currentNode.attributes;
7982
8149
  if (!attributes || _isClobbered(currentNode)) return;
8150
+ ALLOWED_ATTR = _forkSharedAllowlist(hooks.uponSanitizeAttribute, ALLOWED_ATTR, DEFAULT_ALLOWED_ATTR, SET_CONFIG_ALLOWED_ATTR);
7983
8151
  const hookEvent = {
7984
8152
  attrName: "",
7985
8153
  attrValue: "",
@@ -8002,29 +8170,29 @@ function createDOMPurify() {
8002
8170
  _executeHooks(hooks.uponSanitizeAttribute, currentNode, hookEvent);
8003
8171
  value = hookEvent.attrValue;
8004
8172
  if (SANITIZE_NAMED_PROPS && (lcName === "id" || lcName === "name") && stringIndexOf(value, SANITIZE_NAMED_PROPS_PREFIX) !== 0) {
8005
- _removeAttribute(name, currentNode);
8173
+ _removeAttribute(name, currentNode, attr);
8006
8174
  value = SANITIZE_NAMED_PROPS_PREFIX + value;
8007
8175
  }
8008
8176
  if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i, value)) {
8009
- _removeAttribute(name, currentNode);
8177
+ _removeAttribute(name, currentNode, attr);
8010
8178
  continue;
8011
8179
  }
8012
8180
  if (lcName === "attributename" && stringMatch(value, "href")) {
8013
- _removeAttribute(name, currentNode);
8181
+ _removeAttribute(name, currentNode, attr);
8014
8182
  continue;
8015
8183
  }
8016
8184
  if (hookEvent.forceKeepAttr) continue;
8017
8185
  if (!hookEvent.keepAttr) {
8018
- _removeAttribute(name, currentNode);
8186
+ _removeAttribute(name, currentNode, attr);
8019
8187
  continue;
8020
8188
  }
8021
8189
  if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(SELF_CLOSING_TAG, value)) {
8022
- _removeAttribute(name, currentNode);
8190
+ _removeAttribute(name, currentNode, attr);
8023
8191
  continue;
8024
8192
  }
8025
8193
  if (SAFE_FOR_TEMPLATES) value = _stripTemplateExpressions(value);
8026
8194
  if (!_isValidAttribute(lcTag, lcName, value)) {
8027
- _removeAttribute(name, currentNode);
8195
+ _removeAttribute(name, currentNode, attr);
8028
8196
  continue;
8029
8197
  }
8030
8198
  value = _applyTrustedTypesToAttribute(lcTag, lcName, namespaceURI, value);
@@ -8046,7 +8214,7 @@ function createDOMPurify() {
8046
8214
  _sanitizeElements(shadowNode, fragment);
8047
8215
  _sanitizeAttributes(shadowNode);
8048
8216
  if (_isDocumentFragment(shadowNode.content)) _sanitizeShadowDOM2(shadowNode.content);
8049
- if ((getNodeType ? getNodeType(shadowNode) : shadowNode.nodeType) === NODE_TYPE.element) {
8217
+ if (_readNodeType(shadowNode) === NODE_TYPE.element) {
8050
8218
  const innerSr = getShadowRoot(shadowNode);
8051
8219
  if (_isDocumentFragment(innerSr)) {
8052
8220
  _sanitizeAttachedShadowRoots(innerSr);
@@ -8087,7 +8255,7 @@ function createDOMPurify() {
8087
8255
  continue;
8088
8256
  }
8089
8257
  const node = item.node;
8090
- const isElement = (getNodeType ? getNodeType(node) : node.nodeType) === NODE_TYPE.element;
8258
+ const isElement = _readNodeType(node) === NODE_TYPE.element;
8091
8259
  const childNodes = getChildNodes(node);
8092
8260
  if (childNodes) for (let i = childNodes.length - 1; i >= 0; --i) stack.push({
8093
8261
  node: childNodes[i],
@@ -8138,7 +8306,7 @@ function createDOMPurify() {
8138
8306
  const inPlace = IN_PLACE && typeof dirty !== "string" && _isNode(dirty);
8139
8307
  if (inPlace) {
8140
8308
  _neutralizePatchLinkage(dirty);
8141
- const nn = getNodeName ? getNodeName(dirty) : dirty.nodeName;
8309
+ const nn = _readNodeName(dirty);
8142
8310
  if (typeof nn === "string") {
8143
8311
  const tagName = transformCaseFunc(nn);
8144
8312
  if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {
@@ -8170,8 +8338,8 @@ function createDOMPurify() {
8170
8338
  }
8171
8339
  if (body && FORCE_BODY) _forceRemove(body.firstChild);
8172
8340
  const walkRoot = inPlace ? dirty : body;
8173
- const nodeIterator = _createNodeIterator(walkRoot);
8174
8341
  try {
8342
+ const nodeIterator = _createNodeIterator(walkRoot);
8175
8343
  while (currentNode = nodeIterator.nextNode()) {
8176
8344
  _sanitizeElements(currentNode, walkRoot);
8177
8345
  _sanitizeAttributes(currentNode);
@@ -8307,6 +8475,7 @@ var UXModelInstrumentAgentCommon_vue_vue_type_script_setup_true_lang_default = /
8307
8475
  emits: ["myclick"],
8308
8476
  setup(__props, { emit: __emit }) {
8309
8477
  const convert = new import_ansi_to_html.default();
8478
+ console.debug(`UXModelInstrumentAgentCommon(): ModelStore`);
8310
8479
  const store = ModelStore();
8311
8480
  const props = __props;
8312
8481
  const LogData = (0, vue.computed)(() => {
@@ -8350,13 +8519,6 @@ var UXModelInstrumentAgentCommon_vue_vue_type_script_setup_true_lang_default = /
8350
8519
  } catch (error) {
8351
8520
  return "";
8352
8521
  }
8353
- let numArray = value.map((value) => (Math.round(value[1] * 100) / 100).toFixed(2));
8354
- let sep = "";
8355
- return "[" + numArray.reduce((prev, current) => {
8356
- const retVal = prev += sep + current;
8357
- sep = ", ";
8358
- return retVal;
8359
- }, "") + "]";
8360
8522
  };
8361
8523
  const convertMS = function(ms) {
8362
8524
  let s = Math.floor(ms / 1e3);
@@ -8382,8 +8544,10 @@ var UXModelInstrumentAgentCommon_vue_vue_type_script_setup_true_lang_default = /
8382
8544
  return false;
8383
8545
  },
8384
8546
  set: (val) => {
8385
- if (store._models[props.modelId]) if (store._models[props.modelId].modelMeta[props.nodeid]) store._models[props.modelId].modelMeta[props.nodeid].detailView = val;
8386
- else store._models[props.modelId].modelMeta[props.nodeid] = { detailView: val };
8547
+ if (store._models[props.modelId]) {
8548
+ if (store._models[props.modelId].modelMeta[props.nodeid]) store._models[props.modelId].modelMeta[props.nodeid].detailView = val;
8549
+ else store._models[props.modelId].modelMeta[props.nodeid] = { detailView: val };
8550
+ }
8387
8551
  }
8388
8552
  });
8389
8553
  const barChartEx = (0, vue.ref)();
@@ -8581,7 +8745,7 @@ var _plugin_vue_export_helper_default = (sfc, props) => {
8581
8745
  };
8582
8746
  //#endregion
8583
8747
  //#region src/components/UXModelInstrumentAgentCommon.vue
8584
- var UXModelInstrumentAgentCommon_default = /*#__PURE__*/ _plugin_vue_export_helper_default(UXModelInstrumentAgentCommon_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-6a76d4ff"]]);
8748
+ var UXModelInstrumentAgentCommon_default = /*#__PURE__*/ _plugin_vue_export_helper_default(UXModelInstrumentAgentCommon_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-74180ab3"]]);
8585
8749
  //#endregion
8586
8750
  //#region node_modules/chalk/source/vendor/ansi-styles/index.js
8587
8751
  var ANSI_BACKGROUND_OFFSET$1 = 10;
@@ -8994,6 +9158,7 @@ var UXModelInstrumentServiceCommon_default = /*#__PURE__*/ _plugin_vue_export_he
8994
9158
  else return id;
8995
9159
  };
8996
9160
  const convert = new import_ansi_to_html.default();
9161
+ console.debug(`UXModelInstrumentServiceCommon(): ModelStore`);
8997
9162
  const store = ModelStore();
8998
9163
  const emit = __emit;
8999
9164
  const clicked = function(id) {
@@ -9071,8 +9236,10 @@ var UXModelInstrumentServiceCommon_default = /*#__PURE__*/ _plugin_vue_export_he
9071
9236
  return false;
9072
9237
  },
9073
9238
  set: (val) => {
9074
- if (store._models[props.modelId]) if (store._models[props.modelId].modelMeta[props.nodeid]) store._models[props.modelId].modelMeta[props.nodeid].detailView = val;
9075
- else store._models[props.modelId].modelMeta[props.nodeid] = { detailView: val };
9239
+ if (store._models[props.modelId]) {
9240
+ if (store._models[props.modelId].modelMeta[props.nodeid]) store._models[props.modelId].modelMeta[props.nodeid].detailView = val;
9241
+ else store._models[props.modelId].modelMeta[props.nodeid] = { detailView: val };
9242
+ }
9076
9243
  }
9077
9244
  });
9078
9245
  const lineChartEx = (0, vue.ref)();
@@ -9385,7 +9552,7 @@ var UXModelInstrumentServiceCommon_default = /*#__PURE__*/ _plugin_vue_export_he
9385
9552
  });
9386
9553
  };
9387
9554
  }
9388
- }), [["__scopeId", "data-v-d2a49147"]]);
9555
+ }), [["__scopeId", "data-v-cf987598"]]);
9389
9556
  //#endregion
9390
9557
  //#region src/components/UXModelInstrumentServiceSmall.vue?vue&type=script&setup=true&lang.ts
9391
9558
  var _hoisted_1$3 = { class: "ststitle" };
@@ -9475,6 +9642,7 @@ var UXModelInstrumentServiceSmall_default = /*#__PURE__*/ _plugin_vue_export_hel
9475
9642
  emits: ["myclick"],
9476
9643
  setup(__props, { emit: __emit }) {
9477
9644
  chalk$1.level = 3;
9645
+ console.debug(`UXModelInstrumentServiceSmall(): ModelStore`);
9478
9646
  const store = ModelStore();
9479
9647
  const emit = __emit;
9480
9648
  const clicked = function(id) {
@@ -9762,7 +9930,7 @@ var UXModelInstrumentServiceSmall_default = /*#__PURE__*/ _plugin_vue_export_hel
9762
9930
  class: "mb-3"
9763
9931
  }, {
9764
9932
  default: (0, vue.withCtx)(() => [(0, vue.createVNode)(_component_v_col, { cols: "6" }, {
9765
- default: (0, vue.withCtx)(() => [_cache[1] || (_cache[1] = (0, vue.createElementVNode)("div", { class: "stsbiginfolabel" }, " CPU ", -1)), (0, vue.createElementVNode)("div", _hoisted_3, [(0, vue.createTextVNode)((0, vue.toDisplayString)(round2Places(CPU.value)) + "% ", 1), (0, vue.createVNode)(_component_v_progress_circular, {
9933
+ default: (0, vue.withCtx)(() => [_cache[1] || (_cache[1] = (0, vue.createElementVNode)("div", { class: "stsbiginfolabel" }, "CPU", -1)), (0, vue.createElementVNode)("div", _hoisted_3, [(0, vue.createTextVNode)((0, vue.toDisplayString)(round2Places(CPU.value)) + "% ", 1), (0, vue.createVNode)(_component_v_progress_circular, {
9766
9934
  class: "mb-1",
9767
9935
  rotate: 360,
9768
9936
  size: 20,
@@ -9776,7 +9944,7 @@ var UXModelInstrumentServiceSmall_default = /*#__PURE__*/ _plugin_vue_export_hel
9776
9944
  ])])]),
9777
9945
  _: 1
9778
9946
  }), (0, vue.createVNode)(_component_v_col, { cols: "6" }, {
9779
- default: (0, vue.withCtx)(() => [_cache[2] || (_cache[2] = (0, vue.createElementVNode)("div", { class: "stsbiginfolabel" }, " Velocity ", -1)), (0, vue.createElementVNode)("div", _hoisted_4, [(0, vue.createTextVNode)((0, vue.toDisplayString)(velocityFormat(Velocity.value)) + " ", 1), (0, vue.createVNode)(_component_v_progress_circular, {
9947
+ default: (0, vue.withCtx)(() => [_cache[2] || (_cache[2] = (0, vue.createElementVNode)("div", { class: "stsbiginfolabel" }, "Velocity", -1)), (0, vue.createElementVNode)("div", _hoisted_4, [(0, vue.createTextVNode)((0, vue.toDisplayString)(velocityFormat(Velocity.value)) + " ", 1), (0, vue.createVNode)(_component_v_progress_circular, {
9780
9948
  class: "mb-1",
9781
9949
  rotate: 360,
9782
9950
  size: 18,
@@ -9797,7 +9965,7 @@ var UXModelInstrumentServiceSmall_default = /*#__PURE__*/ _plugin_vue_export_hel
9797
9965
  class: "mb-3"
9798
9966
  }, {
9799
9967
  default: (0, vue.withCtx)(() => [(0, vue.createVNode)(_component_v_col, { cols: "6" }, {
9800
- default: (0, vue.withCtx)(() => [_cache[3] || (_cache[3] = (0, vue.createElementVNode)("div", { class: "stsbiginfolabel" }, " Active Rx Count ", -1)), (0, vue.createElementVNode)("div", _hoisted_5, [(0, vue.createTextVNode)((0, vue.toDisplayString)(ActiveRequestCount.value) + " ", 1), (0, vue.createVNode)(_component_v_progress_circular, {
9968
+ default: (0, vue.withCtx)(() => [_cache[3] || (_cache[3] = (0, vue.createElementVNode)("div", { class: "stsbiginfolabel" }, "Active Rx Count", -1)), (0, vue.createElementVNode)("div", _hoisted_5, [(0, vue.createTextVNode)((0, vue.toDisplayString)(ActiveRequestCount.value) + " ", 1), (0, vue.createVNode)(_component_v_progress_circular, {
9801
9969
  rotate: 360,
9802
9970
  size: 18,
9803
9971
  width: ActiveRequestWidth.value,
@@ -9810,7 +9978,7 @@ var UXModelInstrumentServiceSmall_default = /*#__PURE__*/ _plugin_vue_export_hel
9810
9978
  ])])]),
9811
9979
  _: 1
9812
9980
  }), (0, vue.createVNode)(_component_v_col, { cols: "6" }, {
9813
- default: (0, vue.withCtx)(() => [_cache[4] || (_cache[4] = (0, vue.createElementVNode)("div", { class: "stsbiginfolabel" }, " Connections ", -1)), (0, vue.createElementVNode)("div", _hoisted_6, [(0, vue.createTextVNode)((0, vue.toDisplayString)(ConnectionCount.value) + " ", 1), (0, vue.createVNode)(_component_v_progress_circular, {
9981
+ default: (0, vue.withCtx)(() => [_cache[4] || (_cache[4] = (0, vue.createElementVNode)("div", { class: "stsbiginfolabel" }, "Connections", -1)), (0, vue.createElementVNode)("div", _hoisted_6, [(0, vue.createTextVNode)((0, vue.toDisplayString)(ConnectionCount.value) + " ", 1), (0, vue.createVNode)(_component_v_progress_circular, {
9814
9982
  rotate: 360,
9815
9983
  size: 18,
9816
9984
  width: ConnectionCountWidth.value,
@@ -9846,7 +10014,7 @@ var UXModelInstrumentServiceSmall_default = /*#__PURE__*/ _plugin_vue_export_hel
9846
10014
  default: (0, vue.withCtx)(() => [..._cache[6] || (_cache[6] = [(0, vue.createElementVNode)("div", { style: {
9847
10015
  "white-space": "nowrap",
9848
10016
  "text-align": "right"
9849
- } }, " Timer: ", -1)])]),
10017
+ } }, "Timer:", -1)])]),
9850
10018
  _: 1
9851
10019
  }), (0, vue.createVNode)(_component_v_col, { cols: "6" }, {
9852
10020
  default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", _hoisted_8, (0, vue.toDisplayString)(Timer.value), 1)]),
@@ -9924,7 +10092,7 @@ var UXModelInstrumentServiceSmall_default = /*#__PURE__*/ _plugin_vue_export_hel
9924
10092
  default: (0, vue.withCtx)(() => [..._cache[12] || (_cache[12] = [(0, vue.createElementVNode)("div", { style: {
9925
10093
  "white-space": "nowrap",
9926
10094
  "text-align": "right"
9927
- } }, " vCPU: ", -1)])]),
10095
+ } }, "vCPU:", -1)])]),
9928
10096
  _: 1
9929
10097
  }), (0, vue.createVNode)(_component_v_col, { cols: "6" }, {
9930
10098
  default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", _hoisted_14, (0, vue.toDisplayString)(CoreCount.value), 1)]),
@@ -9950,7 +10118,7 @@ var UXModelInstrumentServiceSmall_default = /*#__PURE__*/ _plugin_vue_export_hel
9950
10118
  });
9951
10119
  };
9952
10120
  }
9953
- }), [["__scopeId", "data-v-40b280ab"]]);
10121
+ }), [["__scopeId", "data-v-113819e0"]]);
9954
10122
  //#endregion
9955
10123
  //#region src/components/UXModelNode.vue?vue&type=script&setup=true&lang.ts
9956
10124
  var _hoisted_1$2 = ["value"];
@@ -9967,6 +10135,7 @@ var UXModelNode_default = /* @__PURE__ */ (0, vue.defineComponent)({
9967
10135
  emits: ["myclick"],
9968
10136
  setup(__props, { emit: __emit }) {
9969
10137
  chalk$1.level = 3;
10138
+ console.debug(`UXModelNode(): ModelStore`);
9970
10139
  const store = ModelStore();
9971
10140
  const props = __props;
9972
10141
  const emit = __emit;
@@ -10077,12 +10246,48 @@ var { toString } = Object.prototype;
10077
10246
  var { getPrototypeOf } = Object;
10078
10247
  var { iterator, toStringTag } = Symbol;
10079
10248
  var hasOwnProperty = (({ hasOwnProperty }) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);
10249
+ var isUnsafeObjectKey = (prop) => typeof prop === "string" && (prop === "__proto__" || prop === "constructor" || prop === "prototype");
10250
+ /**
10251
+ * Determine whether an inherited object must be treated as a shared-prototype
10252
+ * boundary. Cross-realm Object.prototype objects cannot be distinguished
10253
+ * reliably from application-created null-prototype objects because their
10254
+ * properties are mutable, so all inherited terminal prototypes are excluded
10255
+ * as a fail-closed boundary. A null-prototype source still keeps its own
10256
+ * properties, as produced by mergeConfig and other safe materialization paths.
10257
+ *
10258
+ * @param {*} obj The object to inspect
10259
+ * @param {*} prototype The object's prototype
10260
+ * @param {boolean} source Whether obj is the original traversal source
10261
+ *
10262
+ * @returns {boolean} True when obj is a safe prototype traversal boundary
10263
+ */
10264
+ var isPrototypeBoundary = (obj, prototype, source) => obj === Object.prototype || !source && prototype === null;
10265
+ /**
10266
+ * Determine whether an object can retain its identity through code paths that
10267
+ * add, replace, and remove config properties without bypassing unsafe-key
10268
+ * filtering. Immutable objects, unsafe-key-bearing objects, and objects with
10269
+ * accessor or restricted data properties must be materialized instead.
10270
+ *
10271
+ * @param {*} obj The object to inspect
10272
+ *
10273
+ * @returns {boolean} True when every own property is safe and fully mutable
10274
+ */
10275
+ var isSafeAndFullyMutable = (obj) => {
10276
+ if (!Object.isExtensible(obj)) return false;
10277
+ const props = Object.getOwnPropertyNames(obj);
10278
+ if (Object.getOwnPropertySymbols) props.push(...Object.getOwnPropertySymbols(obj));
10279
+ return props.every((prop) => {
10280
+ if (isUnsafeObjectKey(prop)) return false;
10281
+ const descriptor = Object.getOwnPropertyDescriptor(obj, prop);
10282
+ return !!descriptor && descriptor.configurable && descriptor.writable === true;
10283
+ });
10284
+ };
10080
10285
  /**
10081
- * Walk the prototype chain (excluding the shared Object.prototype) looking for
10082
- * an own `prop`. This distinguishes genuine own/inherited members — including
10083
- * class accessors and template prototypes — from members injected via
10084
- * Object.prototype pollution (e.g. `Object.prototype.username = '...'`), which
10085
- * live on Object.prototype itself and are therefore never matched.
10286
+ * Walk the prototype chain (excluding the source realm's Object.prototype)
10287
+ * looking for an own `prop`. This distinguishes genuine own/inherited members
10288
+ * — including class accessors and template prototypes — from members injected
10289
+ * via Object.prototype pollution (e.g. `Object.prototype.username = '...'`),
10290
+ * which live on Object.prototype itself and are therefore never matched.
10086
10291
  *
10087
10292
  * @param {*} thing The value whose chain to inspect
10088
10293
  * @param {string|symbol} prop The property key to look for
@@ -10092,11 +10297,13 @@ var hasOwnProperty = (({ hasOwnProperty }) => (obj, prop) => hasOwnProperty.call
10092
10297
  var hasOwnInPrototypeChain = (thing, prop) => {
10093
10298
  let obj = thing;
10094
10299
  const seen = [];
10095
- while (obj != null && obj !== Object.prototype) {
10300
+ while (obj != null) {
10096
10301
  if (seen.indexOf(obj) !== -1) return false;
10097
10302
  seen.push(obj);
10303
+ const prototype = getPrototypeOf(obj);
10304
+ if (isPrototypeBoundary(obj, prototype, obj === thing)) return false;
10098
10305
  if (hasOwnProperty(obj, prop)) return true;
10099
- obj = getPrototypeOf(obj);
10306
+ obj = prototype;
10100
10307
  }
10101
10308
  return false;
10102
10309
  };
@@ -10112,6 +10319,43 @@ var hasOwnInPrototypeChain = (thing, prop) => {
10112
10319
  * @returns {*} The resolved value, or undefined when unsafe/absent
10113
10320
  */
10114
10321
  var getSafeProp = (obj, prop) => obj != null && hasOwnInPrototypeChain(obj, prop) ? obj[prop] : void 0;
10322
+ /**
10323
+ * Flatten an object and its application-defined prototype chain into a
10324
+ * null-prototype object. Members inherited only from the source realm's
10325
+ * Object.prototype are deliberately excluded, while class/template members
10326
+ * below that boundary are preserved.
10327
+ *
10328
+ * @param {*} thing The value to flatten
10329
+ *
10330
+ * @returns {*} A null-prototype copy, or the original value when it is already
10331
+ * structurally safe or is not an object
10332
+ */
10333
+ var toSafeFlatObject = (thing) => {
10334
+ if (thing == null || typeof thing !== "object" && typeof thing !== "function") return thing;
10335
+ const sourcePrototype = getPrototypeOf(thing);
10336
+ if (sourcePrototype === null && isSafeAndFullyMutable(thing)) return thing;
10337
+ const result = Object.create(null);
10338
+ const merged = Object.create(null);
10339
+ const seen = [];
10340
+ let current = thing;
10341
+ while (current != null) {
10342
+ if (seen.indexOf(current) !== -1) break;
10343
+ seen.push(current);
10344
+ const prototype = current === thing ? sourcePrototype : getPrototypeOf(current);
10345
+ if (isPrototypeBoundary(current, prototype, current === thing)) break;
10346
+ const props = Object.getOwnPropertyNames(current);
10347
+ if (Object.getOwnPropertySymbols) props.push(...Object.getOwnPropertySymbols(current));
10348
+ for (const prop of props) {
10349
+ if (isUnsafeObjectKey(prop)) continue;
10350
+ if (!hasOwnProperty(merged, prop)) {
10351
+ result[prop] = thing[prop];
10352
+ merged[prop] = true;
10353
+ }
10354
+ }
10355
+ current = prototype;
10356
+ }
10357
+ return result;
10358
+ };
10115
10359
  var kindOf = ((cache) => (thing) => {
10116
10360
  const str = toString.call(thing);
10117
10361
  return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());
@@ -10288,6 +10532,7 @@ var isBlob = kindOfTest("Blob");
10288
10532
  * @returns {boolean} True if value is a FileList, otherwise false
10289
10533
  */
10290
10534
  var isFileList = kindOfTest("FileList");
10535
+ var isSet = kindOfTest("Set");
10291
10536
  /**
10292
10537
  * Determine if a value is a Stream
10293
10538
  *
@@ -10709,11 +10954,20 @@ var toJSONObject = (obj) => {
10709
10954
  if (isBuffer(source)) return source;
10710
10955
  if (!("toJSON" in source)) {
10711
10956
  visited.add(source);
10712
- const target = isArray(source) ? [] : {};
10713
- forEach(source, (value, key) => {
10714
- const reducedValue = visit(value);
10715
- !isUndefined(reducedValue) && (target[key] = reducedValue);
10716
- });
10957
+ let target;
10958
+ if (isSet(source)) {
10959
+ target = [];
10960
+ for (const value of source) {
10961
+ const reducedValue = visit(value);
10962
+ !isUndefined(reducedValue) && target.push(reducedValue);
10963
+ }
10964
+ } else {
10965
+ target = isArray(source) ? [] : {};
10966
+ forEach(source, (value, key) => {
10967
+ const reducedValue = visit(value);
10968
+ !isUndefined(reducedValue) && (target[key] = reducedValue);
10969
+ });
10970
+ }
10717
10971
  visited.delete(source);
10718
10972
  return target;
10719
10973
  }
@@ -10822,6 +11076,7 @@ var utils_default = {
10822
11076
  hasOwnProp: hasOwnProperty,
10823
11077
  hasOwnInPrototypeChain,
10824
11078
  getSafeProp,
11079
+ toSafeFlatObject,
10825
11080
  reduceDescriptors,
10826
11081
  freezeMethods,
10827
11082
  toObjectSet,
@@ -10884,10 +11139,12 @@ var parseHeaders_default = (rawHeaders) => {
10884
11139
  i = line.indexOf(":");
10885
11140
  key = line.substring(0, i).trim().toLowerCase();
10886
11141
  val = line.substring(i + 1).trim();
10887
- if (!key || parsed[key] && ignoreDuplicateOf[key]) return;
10888
- if (key === "set-cookie") if (parsed[key]) parsed[key].push(val);
10889
- else parsed[key] = [val];
10890
- else parsed[key] = parsed[key] ? parsed[key] + ", " + val : val;
11142
+ const hasKey = utils_default.hasOwnProp(parsed, key);
11143
+ if (!key || hasKey && utils_default.hasOwnProp(ignoreDuplicateOf, key)) return;
11144
+ if (key === "set-cookie") {
11145
+ if (hasKey) parsed[key].push(val);
11146
+ else parsed[key] = [val];
11147
+ } else parsed[key] = hasKey ? parsed[key] + ", " + val : val;
10891
11148
  });
10892
11149
  return parsed;
10893
11150
  };
@@ -10925,7 +11182,7 @@ function toByteStringHeaderObject(headers) {
10925
11182
  }
10926
11183
  //#endregion
10927
11184
  //#region node_modules/axios/lib/core/AxiosHeaders.js
10928
- var $internals = Symbol("internals");
11185
+ var $internals$1 = Symbol("internals");
10929
11186
  function normalizeHeader(header) {
10930
11187
  return header && String(header).trim().toLowerCase();
10931
11188
  }
@@ -10940,6 +11197,69 @@ function parseTokens(str) {
10940
11197
  while (match = tokensRE.exec(str)) tokens[match[1]] = match[2];
10941
11198
  return tokens;
10942
11199
  }
11200
+ var parameterNameRE = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;
11201
+ function trimOWS(value) {
11202
+ let start = 0;
11203
+ let end = value.length;
11204
+ while (start < end) {
11205
+ const code = value.charCodeAt(start);
11206
+ if (code !== 9 && code !== 32) break;
11207
+ start += 1;
11208
+ }
11209
+ while (end > start) {
11210
+ const code = value.charCodeAt(end - 1);
11211
+ if (code !== 9 && code !== 32) break;
11212
+ end -= 1;
11213
+ }
11214
+ return start === 0 && end === value.length ? value : value.slice(start, end);
11215
+ }
11216
+ function decodeQuotedString(value) {
11217
+ const last = value.length - 1;
11218
+ if (last < 1 || value.charCodeAt(0) !== 34 || value.charCodeAt(last) !== 34) return value;
11219
+ let decoded = "";
11220
+ for (let i = 1; i < last; i++) {
11221
+ const code = value.charCodeAt(i);
11222
+ if (code === 34) return value;
11223
+ if (code === 92) {
11224
+ i += 1;
11225
+ if (i >= last) return value;
11226
+ }
11227
+ decoded += value[i];
11228
+ }
11229
+ return decoded;
11230
+ }
11231
+ function parseParameters(value) {
11232
+ const parameters = Object.create(null);
11233
+ const str = String(value);
11234
+ let start = 0;
11235
+ let quoted = false;
11236
+ let escaped = false;
11237
+ function parseParameter(end) {
11238
+ const part = trimOWS(str.slice(start, end));
11239
+ const equals = part.indexOf("=");
11240
+ if (equals < 1) return;
11241
+ const name = trimOWS(part.slice(0, equals));
11242
+ if (!parameterNameRE.test(name)) return;
11243
+ const normalizedName = name.toLowerCase();
11244
+ if (normalizedName === "__proto__" || normalizedName === "constructor" || normalizedName === "prototype") return;
11245
+ const parameterValue = trimOWS(part.slice(equals + 1));
11246
+ parameters[normalizedName] = decodeQuotedString(parameterValue);
11247
+ }
11248
+ for (let i = 0; i < str.length; i++) {
11249
+ const code = str.charCodeAt(i);
11250
+ if (quoted) {
11251
+ if (escaped) escaped = false;
11252
+ else if (code === 92) escaped = true;
11253
+ else if (code === 34) quoted = false;
11254
+ } else if (code === 34) quoted = true;
11255
+ else if (code === 44 || code === 59) {
11256
+ parseParameter(i);
11257
+ start = i + 1;
11258
+ }
11259
+ }
11260
+ parseParameter(str.length);
11261
+ return parameters;
11262
+ }
10943
11263
  var isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());
10944
11264
  function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {
10945
11265
  if (utils_default.isFunction(filter)) return filter.call(this, value, header);
@@ -11084,7 +11404,8 @@ var AxiosHeaders = class {
11084
11404
  return Object.entries(this.toJSON()).map(([header, value]) => header + ": " + value).join("\n");
11085
11405
  }
11086
11406
  getSetCookie() {
11087
- return this.get("set-cookie") || [];
11407
+ const value = this.get("set-cookie");
11408
+ return utils_default.isArray(value) ? value : value == null || value === false ? [] : [value];
11088
11409
  }
11089
11410
  get [Symbol.toStringTag]() {
11090
11411
  return "AxiosHeaders";
@@ -11092,13 +11413,16 @@ var AxiosHeaders = class {
11092
11413
  static from(thing) {
11093
11414
  return thing instanceof this ? thing : new this(thing);
11094
11415
  }
11416
+ static parseParameters(value) {
11417
+ return parseParameters(value);
11418
+ }
11095
11419
  static concat(first, ...targets) {
11096
11420
  const computed = new this(first);
11097
11421
  targets.forEach((target) => computed.set(target));
11098
11422
  return computed;
11099
11423
  }
11100
11424
  static accessor(header) {
11101
- const accessors = (this[$internals] = this[$internals] = { accessors: {} }).accessors;
11425
+ const accessors = (this[$internals$1] = this[$internals$1] = { accessors: {} }).accessors;
11102
11426
  const prototype = this.prototype;
11103
11427
  function defineAccessor(_header) {
11104
11428
  const lHeader = normalizeHeader(_header);
@@ -11173,9 +11497,27 @@ function redactConfig(config, redactKeys) {
11173
11497
  };
11174
11498
  return visit(config);
11175
11499
  }
11500
+ function stringifySafely$1(value) {
11501
+ try {
11502
+ return String(value);
11503
+ } catch (err) {
11504
+ return "";
11505
+ }
11506
+ }
11507
+ function aggregateErrorMessage(error) {
11508
+ return error.errors.map((entry) => {
11509
+ try {
11510
+ return entry && entry.message ? stringifySafely$1(entry.message) : stringifySafely$1(entry);
11511
+ } catch (err) {
11512
+ return "";
11513
+ }
11514
+ }).filter(Boolean).join("; ") || error.name || "AggregateError";
11515
+ }
11176
11516
  var AxiosError = class AxiosError extends Error {
11177
11517
  static from(error, code, config, request, response, customProps) {
11178
- const axiosError = new AxiosError(error.message, code || error.code, config, request, response);
11518
+ let message = error.message;
11519
+ if (!message && utils_default.isArray(error.errors) && error.errors.length) message = aggregateErrorMessage(error);
11520
+ const axiosError = new AxiosError(message, code || error.code, config, request, response);
11179
11521
  Object.defineProperty(axiosError, "cause", {
11180
11522
  __proto__: null,
11181
11523
  value: error,
@@ -11325,19 +11667,16 @@ var predicates = utils_default.toFlatObject(utils_default, {}, null, function fi
11325
11667
  function toFormData(obj, formData, options) {
11326
11668
  if (!utils_default.isObject(obj)) throw new TypeError("target must be an object");
11327
11669
  formData = formData || new FormData();
11328
- options = utils_default.toFlatObject(options, {
11329
- metaTokens: true,
11330
- dots: false,
11331
- indexes: false
11332
- }, false, function defined(option, source) {
11333
- return !utils_default.isUndefined(source[option]);
11334
- });
11335
- const metaTokens = options.metaTokens;
11336
- const visitor = options.visitor || defaultVisitor;
11337
- const dots = options.dots;
11338
- const indexes = options.indexes;
11339
- const _Blob = options.Blob || typeof Blob !== "undefined" && Blob;
11340
- const maxDepth = options.maxDepth === void 0 ? 100 : options.maxDepth;
11670
+ const option = (name, fallback) => {
11671
+ const value = utils_default.getSafeProp(options, name);
11672
+ return utils_default.isUndefined(value) ? fallback : value;
11673
+ };
11674
+ const metaTokens = option("metaTokens", true);
11675
+ const visitor = option("visitor") || defaultVisitor;
11676
+ const dots = option("dots", false);
11677
+ const indexes = option("indexes", false);
11678
+ const _Blob = option("Blob") || typeof Blob !== "undefined" && Blob;
11679
+ const maxDepth = option("maxDepth", 100);
11341
11680
  const useBlob = _Blob && utils_default.isSpecCompliantForm(formData);
11342
11681
  const stack = [];
11343
11682
  if (!utils_default.isFunction(visitor)) throw new TypeError("visitor must be a function");
@@ -11348,7 +11687,6 @@ function toFormData(obj, formData, options) {
11348
11687
  if (!useBlob && utils_default.isBlob(value)) throw new AxiosError("Blob is not supported. Use a Buffer instead.");
11349
11688
  if (utils_default.isArrayBuffer(value) || utils_default.isTypedArray(value)) {
11350
11689
  if (useBlob && typeof _Blob === "function") return new _Blob([value]);
11351
- if (typeof Buffer !== "undefined") return Buffer.from(value);
11352
11690
  throw new AxiosError("Blob is not supported. Use a Buffer instead.", AxiosError.ERR_NOT_SUPPORT);
11353
11691
  }
11354
11692
  return value;
@@ -11503,9 +11841,38 @@ function buildURL(url, params, options) {
11503
11841
  }
11504
11842
  //#endregion
11505
11843
  //#region node_modules/axios/lib/core/InterceptorManager.js
11844
+ var $internals = Symbol("internals");
11845
+ function countHandlers(handlers) {
11846
+ return handlers ? handlers.length : 0;
11847
+ }
11848
+ function trimHandlers(handlers) {
11849
+ if (!handlers) return;
11850
+ while (handlers.length && handlers[handlers.length - 1] === null) handlers.pop();
11851
+ }
11852
+ function syncHandlerEntries(manager, internals) {
11853
+ const handlers = manager.handlers;
11854
+ const length = countHandlers(handlers);
11855
+ if (handlers !== internals.handlersRef) {
11856
+ internals.handlersRef = handlers;
11857
+ internals.handlerEntries.clear();
11858
+ } else if (length !== internals.handlersLength) {
11859
+ if (!length) internals.handlerEntries.clear();
11860
+ else internals.handlerEntries.forEach(function removeStaleEntry(entry, id) {
11861
+ if (handlers[entry.index] !== entry.handler) internals.handlerEntries.delete(id);
11862
+ });
11863
+ }
11864
+ internals.handlersLength = length;
11865
+ }
11506
11866
  var InterceptorManager = class {
11507
11867
  constructor() {
11508
11868
  this.handlers = [];
11869
+ this[$internals] = {
11870
+ handlersRef: this.handlers,
11871
+ handlersLength: this.handlers.length,
11872
+ handlerEntries: /* @__PURE__ */ new Map(),
11873
+ iterationDepth: 0,
11874
+ nextId: 0
11875
+ };
11509
11876
  }
11510
11877
  /**
11511
11878
  * Add a new interceptor to the stack
@@ -11517,13 +11884,23 @@ var InterceptorManager = class {
11517
11884
  * @return {Number} An ID used to remove interceptor later
11518
11885
  */
11519
11886
  use(fulfilled, rejected, options) {
11520
- this.handlers.push({
11887
+ const handler = {
11521
11888
  fulfilled,
11522
11889
  rejected,
11523
11890
  synchronous: options ? options.synchronous : false,
11524
11891
  runWhen: options ? options.runWhen : null
11892
+ };
11893
+ const internals = this[$internals];
11894
+ if (this.handlers == null) this.handlers = [];
11895
+ syncHandlerEntries(this, internals);
11896
+ const id = internals.nextId++;
11897
+ this.handlers.push(handler);
11898
+ internals.handlerEntries.set(id, {
11899
+ handler,
11900
+ index: this.handlers.length - 1
11525
11901
  });
11526
- return this.handlers.length - 1;
11902
+ internals.handlersLength = this.handlers.length;
11903
+ return id;
11527
11904
  }
11528
11905
  /**
11529
11906
  * Remove an interceptor from the stack
@@ -11533,7 +11910,18 @@ var InterceptorManager = class {
11533
11910
  * @returns {void}
11534
11911
  */
11535
11912
  eject(id) {
11536
- if (this.handlers[id]) this.handlers[id] = null;
11913
+ const internals = this[$internals];
11914
+ syncHandlerEntries(this, internals);
11915
+ const entry = internals.handlerEntries.get(id);
11916
+ if (entry) {
11917
+ internals.handlerEntries.delete(id);
11918
+ if (this.handlers[entry.index] !== entry.handler) return;
11919
+ this.handlers[entry.index] = null;
11920
+ if (!internals.iterationDepth) {
11921
+ trimHandlers(this.handlers);
11922
+ internals.handlersLength = this.handlers.length;
11923
+ }
11924
+ }
11537
11925
  }
11538
11926
  /**
11539
11927
  * Clear all interceptors from the stack
@@ -11541,7 +11929,10 @@ var InterceptorManager = class {
11541
11929
  * @returns {void}
11542
11930
  */
11543
11931
  clear() {
11544
- if (this.handlers) this.handlers = [];
11932
+ if (this.handlers) {
11933
+ this.handlers = [];
11934
+ syncHandlerEntries(this, this[$internals]);
11935
+ }
11545
11936
  }
11546
11937
  /**
11547
11938
  * Iterate over all the registered interceptors
@@ -11554,9 +11945,20 @@ var InterceptorManager = class {
11554
11945
  * @returns {void}
11555
11946
  */
11556
11947
  forEach(fn) {
11557
- utils_default.forEach(this.handlers, function forEachHandler(h) {
11558
- if (h !== null) fn(h);
11559
- });
11948
+ const internals = this[$internals];
11949
+ syncHandlerEntries(this, internals);
11950
+ internals.iterationDepth++;
11951
+ try {
11952
+ utils_default.forEach(this.handlers, function forEachHandler(h) {
11953
+ if (h !== null) fn(h);
11954
+ });
11955
+ } finally {
11956
+ if (!--internals.iterationDepth) {
11957
+ syncHandlerEntries(this, internals);
11958
+ trimHandlers(this.handlers);
11959
+ internals.handlersLength = countHandlers(this.handlers);
11960
+ }
11961
+ }
11560
11962
  }
11561
11963
  };
11562
11964
  //#endregion
@@ -11668,7 +12070,7 @@ function throwIfDepthExceeded(index) {
11668
12070
  */
11669
12071
  function parsePropPath(name) {
11670
12072
  const path = [];
11671
- const pattern = /\w+|\[(\w*)]/g;
12073
+ const pattern = /[^.[\]]+|\[([^.[\]]*)]/g;
11672
12074
  let match;
11673
12075
  while ((match = pattern.exec(name)) !== null) {
11674
12076
  throwIfDepthExceeded(path.length);
@@ -11729,6 +12131,21 @@ function formDataToJSON(formData) {
11729
12131
  return null;
11730
12132
  }
11731
12133
  //#endregion
12134
+ //#region node_modules/axios/lib/core/methodList.js
12135
+ var methodList = Object.freeze([
12136
+ "get",
12137
+ "delete",
12138
+ "head",
12139
+ "options",
12140
+ "post",
12141
+ "put",
12142
+ "patch",
12143
+ "purge",
12144
+ "link",
12145
+ "unlink",
12146
+ "query"
12147
+ ]);
12148
+ //#endregion
11732
12149
  //#region node_modules/axios/lib/defaults/index.js
11733
12150
  var own = (obj, key) => obj != null && utils_default.hasOwnProp(obj, key) ? obj[key] : void 0;
11734
12151
  /**
@@ -11825,15 +12242,7 @@ var defaults = {
11825
12242
  "Content-Type": void 0
11826
12243
  } }
11827
12244
  };
11828
- utils_default.forEach([
11829
- "delete",
11830
- "get",
11831
- "head",
11832
- "post",
11833
- "put",
11834
- "patch",
11835
- "query"
11836
- ], (method) => {
12245
+ utils_default.forEach(methodList, (method) => {
11837
12246
  defaults.headers[method] = {};
11838
12247
  });
11839
12248
  //#endregion
@@ -11897,6 +12306,22 @@ function settle(resolve, reject, response) {
11897
12306
  else reject(new AxiosError("Request failed with status code " + response.status, response.status >= 400 && response.status < 500 ? AxiosError.ERR_BAD_REQUEST : AxiosError.ERR_BAD_RESPONSE, response.config, response.request, response));
11898
12307
  }
11899
12308
  //#endregion
12309
+ //#region node_modules/axios/lib/helpers/normalizeURLForProtocolCheck.js
12310
+ var urlParserControlCharacters = /[\t\n\r]/g;
12311
+ /**
12312
+ * Match WHATWG URL preprocessing before checking a URL's protocol.
12313
+ *
12314
+ * @param {string} url
12315
+ *
12316
+ * @returns {string}
12317
+ */
12318
+ function normalizeURLForProtocolCheck(url) {
12319
+ if (typeof url !== "string") return url;
12320
+ let start = 0;
12321
+ while (start < url.length && url.charCodeAt(start) <= 32) start++;
12322
+ return url.slice(start).replace(urlParserControlCharacters, "");
12323
+ }
12324
+ //#endregion
11900
12325
  //#region node_modules/axios/lib/helpers/parseProtocol.js
11901
12326
  function parseProtocol(url) {
11902
12327
  const match = /^([-+\w]{1,25}):(?:\/\/)?/.exec(url);
@@ -11943,7 +12368,7 @@ function speedometer(samplesCount, min) {
11943
12368
  * Throttle decorator
11944
12369
  * @param {Function} fn
11945
12370
  * @param {Number} freq
11946
- * @return {Function}
12371
+ * @return {Array<Function>}
11947
12372
  */
11948
12373
  function throttle(fn, freq) {
11949
12374
  let timestamp = 0;
@@ -11972,7 +12397,12 @@ function throttle(fn, freq) {
11972
12397
  }
11973
12398
  };
11974
12399
  const flush = () => lastArgs && invoke(lastArgs);
11975
- return [throttled, flush];
12400
+ const flushWith = (...args) => invoke(args);
12401
+ return [
12402
+ throttled,
12403
+ flush,
12404
+ flushWith
12405
+ ];
11976
12406
  }
11977
12407
  //#endregion
11978
12408
  //#region node_modules/axios/lib/helpers/progressEventReducer.js
@@ -11980,10 +12410,10 @@ var progressEventReducer = (listener, isDownloadStream, freq = 3) => {
11980
12410
  let bytesNotified = 0;
11981
12411
  const _speedometer = speedometer(50, 250);
11982
12412
  return throttle((e) => {
11983
- if (!e || typeof e.loaded !== "number") return;
12413
+ if (!e || !utils_default.isNumber(e.loaded)) return;
11984
12414
  const rawLoaded = e.loaded;
11985
12415
  const total = e.lengthComputable ? e.total : void 0;
11986
- const loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded;
12416
+ const loaded = Math.max(0, total != null ? Math.min(rawLoaded, total) : rawLoaded);
11987
12417
  const progressBytes = Math.max(0, loaded - bytesNotified);
11988
12418
  const rate = _speedometer(progressBytes);
11989
12419
  bytesNotified = Math.max(bytesNotified, loaded);
@@ -12008,7 +12438,7 @@ var progressEventDecorator = (total, throttled) => {
12008
12438
  loaded
12009
12439
  }), throttled[1]];
12010
12440
  };
12011
- var asyncDecorator = (fn) => (...args) => utils_default.asap(() => fn(...args));
12441
+ var asyncDecorator = (fn, scheduler = utils_default.asap) => (...args) => scheduler(() => fn(...args));
12012
12442
  //#endregion
12013
12443
  //#region node_modules/axios/lib/helpers/isURLSameOrigin.js
12014
12444
  var isURLSameOrigin_default = platform_default.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {
@@ -12076,22 +12506,32 @@ function isAbsoluteURL(url) {
12076
12506
  * @returns {string} The combined URL
12077
12507
  */
12078
12508
  function combineURLs(baseURL, relativeURL) {
12079
- return relativeURL ? baseURL.replace(/\/?\/$/, "") + "/" + relativeURL.replace(/^\/+/, "") : baseURL;
12509
+ if (!relativeURL) return baseURL;
12510
+ let end = baseURL.length;
12511
+ while (end > 0 && baseURL.charCodeAt(end - 1) === 47) end--;
12512
+ return baseURL.slice(0, end) + "/" + relativeURL.replace(/^\/+/, "");
12080
12513
  }
12081
12514
  //#endregion
12082
12515
  //#region node_modules/axios/lib/core/buildFullPath.js
12083
12516
  var malformedHttpProtocol = /^https?:(?!\/\/)/i;
12084
- var httpProtocolControlCharacters = /[\t\n\r]/g;
12085
- function stripLeadingC0ControlOrSpace(url) {
12086
- let i = 0;
12087
- while (i < url.length && url.charCodeAt(i) <= 32) i++;
12088
- return url.slice(i);
12517
+ function redactFragment(fragment) {
12518
+ if (!fragment) return fragment;
12519
+ return fragment.replace(/(^|&)([^=&]*=)?[^&]+/g, (match, separator, parameterName = "") => {
12520
+ return `${separator}${parameterName}${REDACTED}`;
12521
+ });
12089
12522
  }
12090
- function normalizeURLForProtocolCheck(url) {
12091
- return stripLeadingC0ControlOrSpace(url).replace(httpProtocolControlCharacters, "");
12523
+ function redactSensitiveURLParts(url) {
12524
+ const redactedURL = url.replace(/^(https?:\/{0,2})[^/?#]*@/i, `$1${REDACTED}@`);
12525
+ const fragmentIndex = redactedURL.indexOf("#");
12526
+ const redactedURLWithoutFragment = (fragmentIndex === -1 ? redactedURL : redactedURL.slice(0, fragmentIndex)).replace(/([?&][^=&#]*=)[^&#]*/g, `$1${REDACTED}`);
12527
+ if (fragmentIndex === -1) return redactedURLWithoutFragment;
12528
+ return `${redactedURLWithoutFragment}#${redactFragment(redactedURL.slice(fragmentIndex + 1))}`;
12092
12529
  }
12093
12530
  function assertValidHttpProtocolURL(url, config) {
12094
- if (typeof url === "string" && malformedHttpProtocol.test(normalizeURLForProtocolCheck(url))) throw new AxiosError("Invalid URL: missing \"//\" after protocol", AxiosError.ERR_INVALID_URL, config);
12531
+ if (typeof url === "string") {
12532
+ const normalizedURL = normalizeURLForProtocolCheck(url);
12533
+ if (malformedHttpProtocol.test(normalizedURL)) throw new AxiosError(`Invalid URL ${JSON.stringify(redactSensitiveURLParts(normalizedURL))}: missing "//" after protocol`, AxiosError.ERR_INVALID_URL, config);
12534
+ }
12095
12535
  }
12096
12536
  /**
12097
12537
  * Creates a new URL by combining the baseURL with the requestedURL,
@@ -12115,6 +12555,10 @@ function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls, config) {
12115
12555
  //#endregion
12116
12556
  //#region node_modules/axios/lib/core/mergeConfig.js
12117
12557
  var headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;
12558
+ var ownEnumerableKeys = (thing) => {
12559
+ if (Object.getOwnPropertySymbols && Object.getOwnPropertyDescriptor) return Object.keys(thing).concat(Object.getOwnPropertySymbols(thing).filter((symbol) => Object.getOwnPropertyDescriptor(thing, symbol).enumerable));
12560
+ return Object.keys(thing);
12561
+ };
12118
12562
  /**
12119
12563
  * Config-specific merge-function which creates a new config-object
12120
12564
  * by merging two configuration objects together.
@@ -12154,9 +12598,11 @@ function mergeConfig(config1, config2) {
12154
12598
  }
12155
12599
  function getMergedTransitionalOption(prop) {
12156
12600
  const transitional2 = utils_default.hasOwnProp(config2, "transitional") ? config2.transitional : void 0;
12157
- if (!utils_default.isUndefined(transitional2)) if (utils_default.isPlainObject(transitional2)) {
12158
- if (utils_default.hasOwnProp(transitional2, prop)) return transitional2[prop];
12159
- } else return;
12601
+ if (!utils_default.isUndefined(transitional2)) {
12602
+ if (utils_default.isPlainObject(transitional2)) {
12603
+ if (utils_default.hasOwnProp(transitional2, prop)) return transitional2[prop];
12604
+ } else return;
12605
+ }
12160
12606
  const transitional1 = utils_default.hasOwnProp(config1, "transitional") ? config1.transitional : void 0;
12161
12607
  if (utils_default.isPlainObject(transitional1) && utils_default.hasOwnProp(transitional1, prop)) return transitional1[prop];
12162
12608
  }
@@ -12173,7 +12619,7 @@ function mergeConfig(config1, config2) {
12173
12619
  transformResponse: defaultToConfig2,
12174
12620
  paramsSerializer: defaultToConfig2,
12175
12621
  timeout: defaultToConfig2,
12176
- timeoutMessage: defaultToConfig2,
12622
+ timeoutErrorMessage: defaultToConfig2,
12177
12623
  withCredentials: defaultToConfig2,
12178
12624
  withXSRFToken: defaultToConfig2,
12179
12625
  adapter: defaultToConfig2,
@@ -12196,7 +12642,7 @@ function mergeConfig(config1, config2) {
12196
12642
  validateStatus: mergeDirectKeys,
12197
12643
  headers: (a, b, prop) => mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true)
12198
12644
  };
12199
- utils_default.forEach(Object.keys({
12645
+ utils_default.forEach(ownEnumerableKeys({
12200
12646
  ...config1,
12201
12647
  ...config2
12202
12648
  }), function computeConfigValue(prop) {
@@ -12205,13 +12651,26 @@ function mergeConfig(config1, config2) {
12205
12651
  const configValue = merge(utils_default.hasOwnProp(config1, prop) ? config1[prop] : void 0, utils_default.hasOwnProp(config2, prop) ? config2[prop] : void 0, prop);
12206
12652
  utils_default.isUndefined(configValue) && merge !== mergeDirectKeys || (config[prop] = configValue);
12207
12653
  });
12208
- if (utils_default.hasOwnProp(config2, "validateStatus") && utils_default.isUndefined(config2.validateStatus) && getMergedTransitionalOption("validateStatusUndefinedResolves") === false) if (utils_default.hasOwnProp(config1, "validateStatus")) config.validateStatus = getMergedValue(void 0, config1.validateStatus);
12209
- else delete config.validateStatus;
12654
+ if (utils_default.hasOwnProp(config2, "validateStatus") && utils_default.isUndefined(config2.validateStatus) && getMergedTransitionalOption("validateStatusUndefinedResolves") === false) {
12655
+ if (utils_default.hasOwnProp(config1, "validateStatus")) config.validateStatus = getMergedValue(void 0, config1.validateStatus);
12656
+ else delete config.validateStatus;
12657
+ }
12210
12658
  return config;
12211
12659
  }
12212
12660
  //#endregion
12213
- //#region node_modules/axios/lib/helpers/resolveConfig.js
12661
+ //#region node_modules/axios/lib/core/setFormDataHeaders.js
12214
12662
  var FORM_DATA_CONTENT_HEADERS = ["content-type", "content-length"];
12663
+ /**
12664
+ * Apply the headers generated by a FormData implementation to the request headers,
12665
+ * honoring the `formDataHeaderPolicy` option: with 'content-only', copy only the
12666
+ * content-* headers; otherwise merge all of them.
12667
+ *
12668
+ * @param {AxiosHeaders} headers - the request headers to mutate
12669
+ * @param {Object | null | undefined} formHeaders - headers produced by the FormData implementation
12670
+ * @param {String} [policy] - the resolved `formDataHeaderPolicy` config value
12671
+ *
12672
+ * @returns {void}
12673
+ */
12215
12674
  function setFormDataHeaders(headers, formHeaders, policy) {
12216
12675
  if (policy !== "content-only") {
12217
12676
  headers.set(formHeaders);
@@ -12221,6 +12680,8 @@ function setFormDataHeaders(headers, formHeaders, policy) {
12221
12680
  if (FORM_DATA_CONTENT_HEADERS.includes(key.toLowerCase())) headers.set(key, val);
12222
12681
  });
12223
12682
  }
12683
+ //#endregion
12684
+ //#region node_modules/axios/lib/helpers/resolveConfig.js
12224
12685
  /**
12225
12686
  * Encode a UTF-8 string to a Latin-1 byte string for use with btoa().
12226
12687
  * This is a modern replacement for the deprecated unescape(encodeURIComponent(str)) pattern.
@@ -12254,8 +12715,9 @@ function resolveConfig(config) {
12254
12715
  }
12255
12716
  }
12256
12717
  if (utils_default.isFormData(data)) {
12718
+ const getHeaders = utils_default.getSafeProp(data, "getHeaders");
12257
12719
  if (platform_default.hasStandardBrowserEnv || platform_default.hasStandardBrowserWebWorkerEnv || utils_default.isReactNative(data)) headers.setContentType(void 0);
12258
- else if (utils_default.isFunction(data.getHeaders)) setFormDataHeaders(headers, data.getHeaders(), own("formDataHeaderPolicy"));
12720
+ else if (utils_default.isFunction(getHeaders)) setFormDataHeaders(headers, getHeaders.call(data), own("formDataHeaderPolicy"));
12259
12721
  }
12260
12722
  if (platform_default.hasStandardBrowserEnv) {
12261
12723
  if (utils_default.isFunction(withXSRFToken)) withXSRFToken = withXSRFToken(newConfig);
@@ -12274,7 +12736,7 @@ var xhr_default = typeof XMLHttpRequest !== "undefined" && function(config) {
12274
12736
  let { responseType, onUploadProgress, onDownloadProgress } = _config;
12275
12737
  let onCanceled;
12276
12738
  let uploadThrottled, downloadThrottled;
12277
- let flushUpload, flushDownload;
12739
+ let flushUpload, flushDownload, flushDownloadWithEvent;
12278
12740
  function done() {
12279
12741
  flushUpload && flushUpload();
12280
12742
  flushDownload && flushDownload();
@@ -12284,7 +12746,22 @@ var xhr_default = typeof XMLHttpRequest !== "undefined" && function(config) {
12284
12746
  let request = new XMLHttpRequest();
12285
12747
  request.open(_config.method.toUpperCase(), _config.url, true);
12286
12748
  request.timeout = _config.timeout;
12287
- function onloadend() {
12749
+ function onloadend(event) {
12750
+ if (!request) return;
12751
+ if (request.status === 0 && (parseProtocol(normalizeURLForProtocolCheck(_config.url)) || parseProtocol(platform_default.origin)) !== "file" && !(request.responseURL && request.responseURL.startsWith("file:"))) {
12752
+ reject(new AxiosError("Request aborted", AxiosError.ECONNABORTED, config, request));
12753
+ done();
12754
+ request = null;
12755
+ return;
12756
+ }
12757
+ try {
12758
+ if (event) flushDownloadWithEvent && flushDownloadWithEvent(event);
12759
+ else flushDownload && flushDownload();
12760
+ } catch (err) {
12761
+ setTimeout(() => {
12762
+ throw err;
12763
+ });
12764
+ }
12288
12765
  if (!request) return;
12289
12766
  const responseHeaders = AxiosHeaders.from("getAllResponseHeaders" in request && request.getAllResponseHeaders());
12290
12767
  settle(function _resolve(value) {
@@ -12337,7 +12814,7 @@ var xhr_default = typeof XMLHttpRequest !== "undefined" && function(config) {
12337
12814
  if (!utils_default.isUndefined(_config.withCredentials)) request.withCredentials = !!_config.withCredentials;
12338
12815
  if (responseType && responseType !== "json") request.responseType = _config.responseType;
12339
12816
  if (onDownloadProgress) {
12340
- [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true);
12817
+ [downloadThrottled, flushDownload, flushDownloadWithEvent] = progressEventReducer(onDownloadProgress, true);
12341
12818
  request.addEventListener("progress", downloadThrottled);
12342
12819
  }
12343
12820
  if (onUploadProgress && request.upload) {
@@ -12393,7 +12870,14 @@ var composeSignals = (signals, timeout) => {
12393
12870
  });
12394
12871
  signals = null;
12395
12872
  };
12396
- signals.forEach((signal) => signal.addEventListener("abort", onabort, { once: true }));
12873
+ signals.forEach((signal) => {
12874
+ if (aborted) return;
12875
+ if (signal.aborted) {
12876
+ onabort.call(signal);
12877
+ return;
12878
+ }
12879
+ signal.addEventListener("abort", onabort, { once: true });
12880
+ });
12397
12881
  const { signal } = controller;
12398
12882
  signal.unsubscribe = () => utils_default.asap(unsubscribe);
12399
12883
  return signal;
@@ -12469,53 +12953,64 @@ var trackStream = (stream, chunkSize, onProgress, onFinish) => {
12469
12953
  //#endregion
12470
12954
  //#region node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js
12471
12955
  /**
12472
- * Estimate decoded byte length of a data:// URL *without* allocating large buffers.
12473
- * - For base64: compute exact decoded size using length and padding;
12474
- * handle %XX at the character-count level (no string allocation).
12475
- * - For non-base64: compute the exact percent-decoded UTF-8 byte length.
12476
- *
12477
- * @param {string} url
12478
- * @returns {number}
12956
+ * Estimate data: URL byte lengths *without* allocating large buffers.
12957
+ * - Fetch percent-decodes a base64 body before decoding it.
12958
+ * - Node's Buffer.from(body, 'base64') sizes its backing allocation from the
12959
+ * raw body, including ignored characters and content after padding.
12960
+ * - Non-base64 data is percent-decoded and then encoded as UTF-8.
12479
12961
  */
12480
12962
  var isHexDigit = (charCode) => charCode >= 48 && charCode <= 57 || charCode >= 65 && charCode <= 70 || charCode >= 97 && charCode <= 102;
12481
12963
  var isPercentEncodedByte = (str, i, len) => i + 2 < len && isHexDigit(str.charCodeAt(i + 1)) && isHexDigit(str.charCodeAt(i + 2));
12482
- function estimateDataURLDecodedBytes(url) {
12964
+ var hexValue = (charCode) => charCode <= 57 ? charCode - 48 : (charCode & 223) - 55;
12965
+ var isBase64Char = (charCode) => charCode >= 65 && charCode <= 90 || charCode >= 97 && charCode <= 122 || charCode >= 48 && charCode <= 57 || charCode === 43 || charCode === 47 || charCode === 45 || charCode === 95;
12966
+ var isBase64Whitespace = (charCode) => charCode === 9 || charCode === 10 || charCode === 12 || charCode === 13 || charCode === 32;
12967
+ var base64Bytes = (significant) => {
12968
+ const groups = Math.floor(significant / 4);
12969
+ const remainder = significant % 4;
12970
+ return groups * 3 + (remainder === 2 ? 1 : remainder === 3 ? 2 : 0);
12971
+ };
12972
+ var estimateBase64BufferAllocation = (body) => {
12973
+ const len = body.length;
12974
+ let padding = 0;
12975
+ if (len > 0 && body.charCodeAt(len - 1) === 61) {
12976
+ padding++;
12977
+ if (len > 1 && body.charCodeAt(len - 2) === 61) padding++;
12978
+ }
12979
+ return Math.floor((len - padding) * 3 / 4);
12980
+ };
12981
+ var estimatePercentDecodedBase64Bytes = (body) => {
12982
+ const len = body.length;
12983
+ let significant = 0;
12984
+ let padding = 0;
12985
+ let invalid = false;
12986
+ for (let i = 0; i < len; i++) {
12987
+ let code = body.charCodeAt(i);
12988
+ if (code === 37 && isPercentEncodedByte(body, i, len)) {
12989
+ code = hexValue(body.charCodeAt(i + 1)) * 16 + hexValue(body.charCodeAt(i + 2));
12990
+ i += 2;
12991
+ }
12992
+ if (isBase64Whitespace(code)) continue;
12993
+ if (code === 61) {
12994
+ padding++;
12995
+ continue;
12996
+ }
12997
+ if (!isBase64Char(code) || padding > 0) {
12998
+ invalid = true;
12999
+ continue;
13000
+ }
13001
+ significant++;
13002
+ }
13003
+ if (invalid || padding > 2 || padding > 0 && (significant + padding) % 4 !== 0 || significant % 4 === 1) return estimateBase64BufferAllocation(body);
13004
+ return base64Bytes(significant);
13005
+ };
13006
+ var estimateDataURLBytes = (url, estimateBase64) => {
12483
13007
  if (!url || typeof url !== "string") return 0;
12484
13008
  if (!url.startsWith("data:")) return 0;
12485
13009
  const comma = url.indexOf(",");
12486
13010
  if (comma < 0) return 0;
12487
13011
  const meta = url.slice(5, comma);
12488
13012
  const body = url.slice(comma + 1);
12489
- if (/;base64/i.test(meta)) {
12490
- let effectiveLen = body.length;
12491
- const len = body.length;
12492
- for (let i = 0; i < len; i++) if (body.charCodeAt(i) === 37 && i + 2 < len) {
12493
- const a = body.charCodeAt(i + 1);
12494
- const b = body.charCodeAt(i + 2);
12495
- if (isHexDigit(a) && isHexDigit(b)) {
12496
- effectiveLen -= 2;
12497
- i += 2;
12498
- }
12499
- }
12500
- let pad = 0;
12501
- let idx = len - 1;
12502
- const tailIsPct3D = (j) => j >= 2 && body.charCodeAt(j - 2) === 37 && body.charCodeAt(j - 1) === 51 && (body.charCodeAt(j) === 68 || body.charCodeAt(j) === 100);
12503
- if (idx >= 0) {
12504
- if (body.charCodeAt(idx) === 61) {
12505
- pad++;
12506
- idx--;
12507
- } else if (tailIsPct3D(idx)) {
12508
- pad++;
12509
- idx -= 3;
12510
- }
12511
- }
12512
- if (pad === 1 && idx >= 0) {
12513
- if (body.charCodeAt(idx) === 61) pad++;
12514
- else if (tailIsPct3D(idx)) pad++;
12515
- }
12516
- const bytes = Math.floor(effectiveLen / 4) * 3 - (pad || 0);
12517
- return bytes > 0 ? bytes : 0;
12518
- }
13013
+ if (/;base64/i.test(meta)) return estimateBase64(body);
12519
13014
  let bytes = 0;
12520
13015
  for (let i = 0, len = body.length; i < len; i++) {
12521
13016
  const c = body.charCodeAt(i);
@@ -12533,13 +13028,34 @@ function estimateDataURLDecodedBytes(url) {
12533
13028
  } else bytes += 3;
12534
13029
  }
12535
13030
  return bytes;
13031
+ };
13032
+ /**
13033
+ * Estimate the percent-decoded payload size used by Fetch data: URLs.
13034
+ *
13035
+ * @param {string} url
13036
+ * @returns {number}
13037
+ */
13038
+ function estimateDataURLDecodedBytes(url) {
13039
+ const fragmentIndex = typeof url === "string" ? url.indexOf("#") : -1;
13040
+ return estimateDataURLBytes(fragmentIndex === -1 ? url : url.slice(0, fragmentIndex), estimatePercentDecodedBase64Bytes);
12536
13041
  }
12537
13042
  //#endregion
12538
13043
  //#region node_modules/axios/lib/env/data.js
12539
- var VERSION = "1.18.1";
13044
+ var VERSION = "1.20.0";
12540
13045
  //#endregion
12541
13046
  //#region node_modules/axios/lib/adapters/fetch.js
12542
- var DEFAULT_CHUNK_SIZE = 64 * 1024;
13047
+ var DEFAULT_CHUNK_SIZE = 65536;
13048
+ var DEFAULT_REQUEST_OPTIONS = {
13049
+ cache: "default",
13050
+ redirect: "follow",
13051
+ referrer: "about:client",
13052
+ referrerPolicy: "",
13053
+ mode: "cors",
13054
+ integrity: "",
13055
+ keepalive: false,
13056
+ priority: "auto",
13057
+ window: null
13058
+ };
12543
13059
  var { isFunction } = utils_default;
12544
13060
  /**
12545
13061
  * Encode a UTF-8 string to a Latin-1 byte string for use with btoa().
@@ -12632,7 +13148,7 @@ var factory = (env) => {
12632
13148
  return length == null ? getBodyLength(body) : length;
12633
13149
  };
12634
13150
  return async (config) => {
12635
- let { url, method, data, signal, cancelToken, timeout, onDownloadProgress, onUploadProgress, responseType, headers, withCredentials = "same-origin", fetchOptions, maxContentLength, maxBodyLength } = resolveConfig(config);
13151
+ let { url, method, data, signal, cancelToken, timeout, onDownloadProgress, onUploadProgress, responseType, headers, withCredentials = "same-origin", fetchOptions, maxContentLength, maxBodyLength, maxRedirects } = resolveConfig(config);
12636
13152
  const hasMaxContentLength = utils_default.isNumber(maxContentLength) && maxContentLength > -1;
12637
13153
  const hasMaxBodyLength = utils_default.isNumber(maxBodyLength) && maxBodyLength > -1;
12638
13154
  const own = (key) => utils_default.hasOwnProp(config, key) ? config[key] : void 0;
@@ -12708,17 +13224,36 @@ var factory = (env) => {
12708
13224
  if (contentType && /^multipart\/form-data/i.test(contentType) && !/boundary=/i.test(contentType)) headers.delete("content-type");
12709
13225
  }
12710
13226
  headers.set("User-Agent", "axios/" + VERSION, false);
12711
- const resolvedOptions = {
12712
- ...fetchOptions,
13227
+ const safeFetchOptions = fetchOptions == null ? fetchOptions : Object.assign(Object.create(null), fetchOptions);
13228
+ if (safeFetchOptions) {
13229
+ delete safeFetchOptions.body;
13230
+ delete safeFetchOptions.headers;
13231
+ delete safeFetchOptions.method;
13232
+ delete safeFetchOptions.signal;
13233
+ delete safeFetchOptions.duplex;
13234
+ delete safeFetchOptions.credentials;
13235
+ }
13236
+ const resolvedOptions = Object.assign(Object.create(null), safeFetchOptions, {
12713
13237
  signal: composedSignal,
12714
13238
  method: method.toUpperCase(),
12715
13239
  headers: toByteStringHeaderObject(headers.normalize()),
12716
13240
  body: data,
12717
13241
  duplex: "half",
12718
13242
  credentials: isCredentialsSupported ? withCredentials : void 0
12719
- };
13243
+ });
13244
+ if (isRequestSupported) {
13245
+ utils_default.forEach(DEFAULT_REQUEST_OPTIONS, (value, key) => {
13246
+ if (resolvedOptions[key] === void 0) resolvedOptions[key] = value;
13247
+ });
13248
+ if (resolvedOptions.signal === void 0) resolvedOptions.signal = null;
13249
+ if (resolvedOptions.body === void 0) resolvedOptions.body = null;
13250
+ }
13251
+ if (maxRedirects === 0) {
13252
+ resolvedOptions.redirect = "manual";
13253
+ if (safeFetchOptions) safeFetchOptions.redirect = "manual";
13254
+ }
12720
13255
  request = isRequestSupported && new Request(url, resolvedOptions);
12721
- let response = await (isRequestSupported ? _fetch(request, fetchOptions) : _fetch(url, resolvedOptions));
13256
+ let response = await (isRequestSupported ? _fetch(request, safeFetchOptions) : _fetch(url, resolvedOptions));
12722
13257
  const responseHeaders = AxiosHeaders.from(response.headers);
12723
13258
  if (hasMaxContentLength) {
12724
13259
  const declaredLength = utils_default.toFiniteNumber(responseHeaders.getContentLength());
@@ -12940,9 +13475,10 @@ function throwIfCancellationRequested(config) {
12940
13475
  *
12941
13476
  * @returns {Promise} The Promise to be fulfilled
12942
13477
  */
12943
- function dispatchRequest(config) {
13478
+ function dispatchRequest(_config) {
13479
+ const config = utils_default.toSafeFlatObject(_config);
12944
13480
  throwIfCancellationRequested(config);
12945
- config.headers = AxiosHeaders.from(config.headers);
13481
+ config.headers = AxiosHeaders.from(utils_default.getSafeProp(config, "headers"));
12946
13482
  config.data = transformData.call(config, config.transformRequest);
12947
13483
  if ([
12948
13484
  "post",
@@ -13078,24 +13614,23 @@ var Axios = class {
13078
13614
  try {
13079
13615
  return await this._request(configOrUrl, config);
13080
13616
  } catch (err) {
13081
- if (err instanceof Error) {
13617
+ if (err instanceof Error) try {
13082
13618
  let dummy = {};
13083
13619
  Error.captureStackTrace ? Error.captureStackTrace(dummy) : dummy = /* @__PURE__ */ new Error();
13084
- const stack = (() => {
13085
- if (!dummy.stack) return "";
13086
- const firstNewlineIndex = dummy.stack.indexOf("\n");
13087
- return firstNewlineIndex === -1 ? "" : dummy.stack.slice(firstNewlineIndex + 1);
13088
- })();
13089
- try {
13090
- if (!err.stack) err.stack = stack;
13091
- else if (stack) {
13092
- const firstNewlineIndex = stack.indexOf("\n");
13093
- const secondNewlineIndex = firstNewlineIndex === -1 ? -1 : stack.indexOf("\n", firstNewlineIndex + 1);
13094
- const stackWithoutTwoTopLines = secondNewlineIndex === -1 ? "" : stack.slice(secondNewlineIndex + 1);
13095
- if (!String(err.stack).endsWith(stackWithoutTwoTopLines)) err.stack += "\n" + stack;
13096
- }
13097
- } catch (e) {}
13098
- }
13620
+ const dummyStack = dummy.stack;
13621
+ let stack = "";
13622
+ if (typeof dummyStack === "string") {
13623
+ const firstNewlineIndex = dummyStack.indexOf("\n");
13624
+ stack = firstNewlineIndex === -1 ? "" : dummyStack.slice(firstNewlineIndex + 1);
13625
+ }
13626
+ if (!err.stack) err.stack = stack;
13627
+ else if (stack) {
13628
+ const firstNewlineIndex = stack.indexOf("\n");
13629
+ const secondNewlineIndex = firstNewlineIndex === -1 ? -1 : stack.indexOf("\n", firstNewlineIndex + 1);
13630
+ const stackWithoutTwoTopLines = secondNewlineIndex === -1 ? "" : stack.slice(secondNewlineIndex + 1);
13631
+ if (!String(err.stack).endsWith(stackWithoutTwoTopLines)) err.stack += "\n" + stack;
13632
+ }
13633
+ } catch (e) {}
13099
13634
  throw err;
13100
13635
  }
13101
13636
  }
@@ -13114,29 +13649,22 @@ var Axios = class {
13114
13649
  advertiseZstdAcceptEncoding: validators.transitional(validators.boolean),
13115
13650
  validateStatusUndefinedResolves: validators.transitional(validators.boolean)
13116
13651
  }, false);
13117
- if (paramsSerializer != null) if (utils_default.isFunction(paramsSerializer)) config.paramsSerializer = { serialize: paramsSerializer };
13118
- else validator_default.assertOptions(paramsSerializer, {
13119
- encode: validators.function,
13120
- serialize: validators.function
13121
- }, true);
13652
+ if (paramsSerializer != null) {
13653
+ if (utils_default.isFunction(paramsSerializer)) config.paramsSerializer = { serialize: paramsSerializer };
13654
+ else validator_default.assertOptions(paramsSerializer, {
13655
+ encode: validators.function,
13656
+ serialize: validators.function
13657
+ }, true);
13658
+ }
13122
13659
  if (config.allowAbsoluteUrls !== void 0) {} else if (this.defaults.allowAbsoluteUrls !== void 0) config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;
13123
13660
  else config.allowAbsoluteUrls = true;
13124
13661
  validator_default.assertOptions(config, {
13125
13662
  baseUrl: validators.spelling("baseURL"),
13126
13663
  withXsrfToken: validators.spelling("withXSRFToken")
13127
13664
  }, true);
13128
- config.method = (config.method || this.defaults.method || "get").toLowerCase();
13665
+ config.method = (utils_default.getSafeProp(config, "method") || utils_default.getSafeProp(this.defaults, "method") || "get").toLowerCase();
13129
13666
  let contextHeaders = headers && utils_default.merge(headers.common, headers[config.method]);
13130
- headers && utils_default.forEach([
13131
- "delete",
13132
- "get",
13133
- "head",
13134
- "post",
13135
- "put",
13136
- "patch",
13137
- "query",
13138
- "common"
13139
- ], (method) => {
13667
+ headers && utils_default.forEach(methodList.concat("common"), (method) => {
13140
13668
  delete headers[method];
13141
13669
  });
13142
13670
  config.headers = AxiosHeaders.concat(contextHeaders, headers);
@@ -13171,16 +13699,25 @@ var Axios = class {
13171
13699
  const onFulfilled = requestInterceptorChain[i++];
13172
13700
  const onRejected = requestInterceptorChain[i++];
13173
13701
  try {
13174
- newConfig = onFulfilled(newConfig);
13702
+ newConfig = onFulfilled ? onFulfilled(newConfig) : newConfig;
13175
13703
  } catch (error) {
13176
- onRejected.call(this, error);
13704
+ if (!onRejected) {
13705
+ promise = Promise.reject(error);
13706
+ break;
13707
+ }
13708
+ try {
13709
+ const rejectedResult = onRejected.call(this, error);
13710
+ if (utils_default.isThenable(rejectedResult)) promise = Promise.resolve(rejectedResult).then(() => dispatchRequest.call(this, newConfig));
13711
+ } catch (rejectedError) {
13712
+ promise = Promise.reject(rejectedError);
13713
+ }
13177
13714
  break;
13178
13715
  }
13179
13716
  }
13180
- try {
13717
+ if (!promise) try {
13181
13718
  promise = dispatchRequest.call(this, newConfig);
13182
13719
  } catch (error) {
13183
- return Promise.reject(error);
13720
+ promise = Promise.reject(error);
13184
13721
  }
13185
13722
  i = 0;
13186
13723
  len = responseInterceptorChain.length;
@@ -13392,14 +13929,22 @@ var HttpStatusCode = {
13392
13929
  Gone: 410,
13393
13930
  LengthRequired: 411,
13394
13931
  PreconditionFailed: 412,
13932
+ /**
13933
+ * @deprecated Use `ContentTooLarge` instead.
13934
+ */
13395
13935
  PayloadTooLarge: 413,
13936
+ ContentTooLarge: 413,
13396
13937
  UriTooLong: 414,
13397
13938
  UnsupportedMediaType: 415,
13398
13939
  RangeNotSatisfiable: 416,
13399
13940
  ExpectationFailed: 417,
13400
13941
  ImATeapot: 418,
13401
13942
  MisdirectedRequest: 421,
13943
+ /**
13944
+ * @deprecated Use `UnprocessableContent` instead.
13945
+ */
13402
13946
  UnprocessableEntity: 422,
13947
+ UnprocessableContent: 422,
13403
13948
  Locked: 423,
13404
13949
  FailedDependency: 424,
13405
13950
  TooEarly: 425,
@@ -13419,6 +13964,7 @@ var HttpStatusCode = {
13419
13964
  LoopDetected: 508,
13420
13965
  NotExtended: 510,
13421
13966
  NetworkAuthenticationRequired: 511,
13967
+ WebServerReturnsAnUnknownError: 520,
13422
13968
  WebServerIsDown: 521,
13423
13969
  ConnectionTimedOut: 522,
13424
13970
  OriginIsUnreachable: 523,
@@ -13427,7 +13973,7 @@ var HttpStatusCode = {
13427
13973
  InvalidSslCertificate: 526
13428
13974
  };
13429
13975
  Object.entries(HttpStatusCode).forEach(([key, value]) => {
13430
- HttpStatusCode[value] = key;
13976
+ if (HttpStatusCode[value] === void 0) HttpStatusCode[value] = key;
13431
13977
  });
13432
13978
  //#endregion
13433
13979
  //#region node_modules/axios/lib/axios.js
@@ -13683,7 +14229,6 @@ var SocketIoClient = class extends import_tiny_emitter$1.TinyEmitter {
13683
14229
  this.ResetSocket();
13684
14230
  if (_nsshunt_stsutils.isNode) this.#reconnectTimeoutVal = setTimeout(() => this.#EstablishSocketConnect(), this.#reconnectTimeout).unref();
13685
14231
  else this.#reconnectTimeoutVal = setTimeout(() => this.#EstablishSocketConnect(), this.#reconnectTimeout);
13686
- break;
13687
14232
  }
13688
14233
  });
13689
14234
  }
@@ -14093,20 +14638,21 @@ function getInt64(view, offset) {
14093
14638
  var TIMESTAMP32_MAX_SEC = 4294967295;
14094
14639
  var TIMESTAMP64_MAX_SEC = 17179869183;
14095
14640
  function encodeTimeSpecToTimestamp({ sec, nsec }) {
14096
- if (sec >= 0 && nsec >= 0 && sec <= TIMESTAMP64_MAX_SEC) if (nsec === 0 && sec <= TIMESTAMP32_MAX_SEC) {
14097
- const rv = /* @__PURE__ */ new Uint8Array(4);
14098
- new DataView(rv.buffer).setUint32(0, sec);
14099
- return rv;
14641
+ if (sec >= 0 && nsec >= 0 && sec <= TIMESTAMP64_MAX_SEC) {
14642
+ if (nsec === 0 && sec <= TIMESTAMP32_MAX_SEC) {
14643
+ const rv = /* @__PURE__ */ new Uint8Array(4);
14644
+ new DataView(rv.buffer).setUint32(0, sec);
14645
+ return rv;
14646
+ } else {
14647
+ const secHigh = sec / 4294967296;
14648
+ const secLow = sec & 4294967295;
14649
+ const rv = /* @__PURE__ */ new Uint8Array(8);
14650
+ const view = new DataView(rv.buffer);
14651
+ view.setUint32(0, nsec << 2 | secHigh & 3);
14652
+ view.setUint32(4, secLow);
14653
+ return rv;
14654
+ }
14100
14655
  } else {
14101
- const secHigh = sec / 4294967296;
14102
- const secLow = sec & 4294967295;
14103
- const rv = /* @__PURE__ */ new Uint8Array(8);
14104
- const view = new DataView(rv.buffer);
14105
- view.setUint32(0, nsec << 2 | secHigh & 3);
14106
- view.setUint32(4, secLow);
14107
- return rv;
14108
- }
14109
- else {
14110
14656
  const rv = /* @__PURE__ */ new Uint8Array(12);
14111
14657
  const view = new DataView(rv.buffer);
14112
14658
  view.setUint32(0, nsec);
@@ -14919,9 +15465,7 @@ var ObservabilityPayloadTransformer = class {
14919
15465
  case SubscriptionTopic.AgentWorkers:
14920
15466
  this.CreateModelAgentWorkers(subscriptionPayload);
14921
15467
  break;
14922
- case SubscriptionTopic.AgentWorker:
14923
- this.CreateModelAgentWorker(subscriptionPayload);
14924
- break;
15468
+ case SubscriptionTopic.AgentWorker: this.CreateModelAgentWorker(subscriptionPayload);
14925
15469
  }
14926
15470
  }
14927
15471
  CreateModelAllServicesCombined(subscriptionPayload) {
@@ -15172,8 +15716,9 @@ var RESTClientSubscriber = class {
15172
15716
  this.#LogDebugMessage(chalk.yellow(`RESTClientSubscriber:#InvokeRESTAPI(): axios call: endPointUrl: [${endPointUrl}]`));
15173
15717
  if (_nsshunt_stsutils.isNode && this.#options.agentManager) retVal = await axios(new _nsshunt_stsutils.STSAxiosConfig(endPointUrl, "get").withDefaultHeaders().withAgentManager(this.#options.agentManager).config);
15174
15718
  else retVal = await axios(new _nsshunt_stsutils.STSAxiosConfig(endPointUrl, "get").withDefaultHeaders().config);
15175
- if (retVal) if (retVal.data) {} else this.#LogDebugMessage(chalk.yellow(`RESTClientSubscriber:#InvokeRESTAPI(): no retVal.data`));
15176
- else this.#LogDebugMessage(chalk.yellow(`RESTClientSubscriber:#InvokeRESTAPI(): no retVal`));
15719
+ if (retVal) {
15720
+ if (retVal.data) {} else this.#LogDebugMessage(chalk.yellow(`RESTClientSubscriber:#InvokeRESTAPI(): no retVal.data`));
15721
+ } else this.#LogDebugMessage(chalk.yellow(`RESTClientSubscriber:#InvokeRESTAPI(): no retVal`));
15177
15722
  performance.now() - start;
15178
15723
  if (subscriptionKey.topic.localeCompare(SubscriptionTopic.AllServicesCombined) === 0) return retVal.data["services"];
15179
15724
  if (subscriptionKey.topic.localeCompare(SubscriptionTopic.AllAgentsCombined) === 0) return retVal.data["agents"];
@@ -15339,6 +15884,7 @@ var UXModelNavigator_default = /* @__PURE__ */ (0, vue.defineComponent)({
15339
15884
  chalk$1.level = 3;
15340
15885
  let subscriptionOptions;
15341
15886
  const props = __props;
15887
+ console.debug(`UXModelNavigator(): ModelStore`);
15342
15888
  const store = ModelStore();
15343
15889
  let observabilityPayloadTransformer = new ObservabilityPayloadTransformer({
15344
15890
  logger: _nsshunt_stsutils.defaultLogger,
@@ -15461,9 +16007,7 @@ var UXModelNavigator_default = /* @__PURE__ */ (0, vue.defineComponent)({
15461
16007
  case SubscriptionTopic.Services:
15462
16008
  navigate(GetServiceInstancesSubscriptions(id));
15463
16009
  break;
15464
- case SubscriptionTopic.ServiceInstances:
15465
- navigate(GetServiceInstanceSubscriptions(store._models[props.modelId].serviceModelSubscriptionKey?.key, id));
15466
- break;
16010
+ case SubscriptionTopic.ServiceInstances: navigate(GetServiceInstanceSubscriptions(store._models[props.modelId].serviceModelSubscriptionKey?.key, id));
15467
16011
  }
15468
16012
  }
15469
16013
  };
@@ -15710,7 +16254,7 @@ var UXTestForm_default = /* @__PURE__ */ (0, vue.defineComponent)({
15710
16254
  return (0, vue.openBlock)(), (0, vue.createBlock)(_component_v_container, { class: "yellowgreen" }, {
15711
16255
  default: (0, vue.withCtx)(() => [
15712
16256
  (0, vue.createVNode)(_component_v_row, null, {
15713
- default: (0, vue.withCtx)(() => [_cache[0] || (_cache[0] = (0, vue.createElementVNode)("div", null, " UXTestForm ", -1)), (0, vue.createVNode)(_component_v_divider)]),
16257
+ default: (0, vue.withCtx)(() => [_cache[0] || (_cache[0] = (0, vue.createElementVNode)("div", null, "UXTestForm", -1)), (0, vue.createVNode)(_component_v_divider)]),
15714
16258
  _: 1
15715
16259
  }),
15716
16260
  __props.showFormValues ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_v_row, { key: 0 }, {