@nsshunt/stsuxvue 1.0.120 → 1.0.121

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/stsuxvue.cjs CHANGED
@@ -7,7 +7,7 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
7
7
  var __getProtoOf = Object.getPrototypeOf;
8
8
  var __hasOwnProp = Object.prototype.hasOwnProperty;
9
9
  var __esmMin = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
10
- var __commonJSMin$1 = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
10
+ var __commonJSMin$1 = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
11
11
  var __exportAll = (all, no_symbols) => {
12
12
  let target = {};
13
13
  for (var name in all) __defProp(target, name, {
@@ -5939,6 +5939,13 @@ var import_ansi_to_html = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin
5939
5939
  sub: remove
5940
5940
  },
5941
5941
  {
5942
+ /**
5943
+ * extracts real text - not containing:
5944
+ * - `\x1b' - ESC - escape (Ascii 27)
5945
+ * - '\x08' - BS - backspace (Ascii 8)
5946
+ * - `\n` - Newline - linefeed (LF) (ascii 10)
5947
+ * - `\r` - Windows Carriage Return (CR)
5948
+ */
5942
5949
  pattern: /^(([^\x1b\x08\r\n])+)/,
5943
5950
  sub: realText
5944
5951
  }
@@ -6029,7 +6036,7 @@ var import_ansi_to_html = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin
6029
6036
  return Filter;
6030
6037
  }();
6031
6038
  })))(), 1);
6032
- /*! @license DOMPurify 3.3.3 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.3.3/LICENSE */
6039
+ /*! @license DOMPurify 3.4.2 | (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.2/LICENSE */
6033
6040
  var { entries, setPrototypeOf, isFrozen, getPrototypeOf: getPrototypeOf$1, getOwnPropertyDescriptor } = Object;
6034
6041
  var { freeze, seal, create } = Object;
6035
6042
  var { apply, construct } = typeof Reflect !== "undefined" && Reflect;
@@ -6052,13 +6059,19 @@ var arrayLastIndexOf = unapply(Array.prototype.lastIndexOf);
6052
6059
  var arrayPop = unapply(Array.prototype.pop);
6053
6060
  var arrayPush = unapply(Array.prototype.push);
6054
6061
  var arraySplice = unapply(Array.prototype.splice);
6062
+ var arrayIsArray = Array.isArray;
6055
6063
  var stringToLowerCase = unapply(String.prototype.toLowerCase);
6056
6064
  var stringToString = unapply(String.prototype.toString);
6057
6065
  var stringMatch = unapply(String.prototype.match);
6058
6066
  var stringReplace = unapply(String.prototype.replace);
6059
6067
  var stringIndexOf = unapply(String.prototype.indexOf);
6060
6068
  var stringTrim = unapply(String.prototype.trim);
6069
+ var numberToString = unapply(Number.prototype.toString);
6070
+ var booleanToString = unapply(Boolean.prototype.toString);
6071
+ var bigintToString = typeof BigInt === "undefined" ? null : unapply(BigInt.prototype.toString);
6072
+ var symbolToString = typeof Symbol === "undefined" ? null : unapply(Symbol.prototype.toString);
6061
6073
  var objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);
6074
+ var objectToString = unapply(Object.prototype.toString);
6062
6075
  var regExpTest = unapply(RegExp.prototype.test);
6063
6076
  var typeErrorCreate = unconstruct(TypeError);
6064
6077
  /**
@@ -6097,6 +6110,7 @@ function unconstruct(Func) {
6097
6110
  function addToSet(set, array) {
6098
6111
  let transformCaseFunc = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : stringToLowerCase;
6099
6112
  if (setPrototypeOf) setPrototypeOf(set, null);
6113
+ if (!arrayIsArray(array)) return set;
6100
6114
  let l = array.length;
6101
6115
  while (l--) {
6102
6116
  let element = array[l];
@@ -6129,12 +6143,40 @@ function cleanArray(array) {
6129
6143
  */
6130
6144
  function clone(object) {
6131
6145
  const newObject = create(null);
6132
- for (const [property, value] of entries(object)) if (objectHasOwnProperty(object, property)) if (Array.isArray(value)) newObject[property] = cleanArray(value);
6146
+ for (const [property, value] of entries(object)) if (objectHasOwnProperty(object, property)) if (arrayIsArray(value)) newObject[property] = cleanArray(value);
6133
6147
  else if (value && typeof value === "object" && value.constructor === Object) newObject[property] = clone(value);
6134
6148
  else newObject[property] = value;
6135
6149
  return newObject;
6136
6150
  }
6137
6151
  /**
6152
+ * Convert non-node values into strings without depending on direct property access.
6153
+ *
6154
+ * @param value - The value to stringify.
6155
+ * @returns A string representation of the provided value.
6156
+ */
6157
+ function stringifyValue(value) {
6158
+ switch (typeof value) {
6159
+ case "string": return value;
6160
+ case "number": return numberToString(value);
6161
+ case "boolean": return booleanToString(value);
6162
+ case "bigint": return bigintToString ? bigintToString(value) : "0";
6163
+ case "symbol": return symbolToString ? symbolToString(value) : "Symbol()";
6164
+ case "undefined": return objectToString(value);
6165
+ case "function":
6166
+ case "object": {
6167
+ if (value === null) return objectToString(value);
6168
+ const valueAsRecord = value;
6169
+ const valueToString = lookupGetter(valueAsRecord, "toString");
6170
+ if (typeof valueToString === "function") {
6171
+ const stringified = valueToString(valueAsRecord);
6172
+ return typeof stringified === "string" ? stringified : objectToString(stringified);
6173
+ }
6174
+ return objectToString(value);
6175
+ }
6176
+ default: return objectToString(value);
6177
+ }
6178
+ }
6179
+ /**
6138
6180
  * This method automatically checks if the prop is function or getter and behaves accordingly.
6139
6181
  *
6140
6182
  * @param object - The object to look up the getter function in its prototype chain.
@@ -6155,6 +6197,14 @@ function lookupGetter(object, prop) {
6155
6197
  }
6156
6198
  return fallbackValue;
6157
6199
  }
6200
+ function isRegex(value) {
6201
+ try {
6202
+ regExpTest(value, "");
6203
+ return true;
6204
+ } catch (_unused) {
6205
+ return false;
6206
+ }
6207
+ }
6158
6208
  var html$1 = freeze([
6159
6209
  "a",
6160
6210
  "abbr",
@@ -6542,8 +6592,7 @@ var html = freeze([
6542
6592
  "value",
6543
6593
  "width",
6544
6594
  "wrap",
6545
- "xmlns",
6546
- "slot"
6595
+ "xmlns"
6547
6596
  ]);
6548
6597
  var svg = freeze([
6549
6598
  "accent-height",
@@ -6741,8 +6790,9 @@ var mathMl = freeze([
6741
6790
  "align",
6742
6791
  "bevelled",
6743
6792
  "close",
6744
- "columnsalign",
6793
+ "columnalign",
6745
6794
  "columnlines",
6795
+ "columnspacing",
6746
6796
  "columnspan",
6747
6797
  "denomalign",
6748
6798
  "depth",
@@ -6758,8 +6808,8 @@ var mathMl = freeze([
6758
6808
  "largeop",
6759
6809
  "length",
6760
6810
  "linethickness",
6761
- "lspace",
6762
6811
  "lquote",
6812
+ "lspace",
6763
6813
  "mathbackground",
6764
6814
  "mathcolor",
6765
6815
  "mathsize",
@@ -6822,17 +6872,10 @@ var EXPRESSIONS = /* @__PURE__ */ Object.freeze({
6822
6872
  });
6823
6873
  var NODE_TYPE = {
6824
6874
  element: 1,
6825
- attribute: 2,
6826
6875
  text: 3,
6827
- cdataSection: 4,
6828
- entityReference: 5,
6829
- entityNode: 6,
6830
6876
  progressingInstruction: 7,
6831
6877
  comment: 8,
6832
- document: 9,
6833
- documentType: 10,
6834
- documentFragment: 11,
6835
- notation: 12
6878
+ document: 9
6836
6879
  };
6837
6880
  var getGlobal$1 = function getGlobal() {
6838
6881
  return typeof window === "undefined" ? null : window;
@@ -6881,7 +6924,7 @@ var _createHooksMap = function _createHooksMap() {
6881
6924
  function createDOMPurify() {
6882
6925
  let window = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : getGlobal$1();
6883
6926
  const DOMPurify = (root) => createDOMPurify(root);
6884
- DOMPurify.version = "3.3.3";
6927
+ DOMPurify.version = "3.4.2";
6885
6928
  DOMPurify.removed = [];
6886
6929
  if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {
6887
6930
  DOMPurify.isSupported = false;
@@ -7086,15 +7129,15 @@ function createDOMPurify() {
7086
7129
  cfg = clone(cfg);
7087
7130
  PARSER_MEDIA_TYPE = SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;
7088
7131
  transformCaseFunc = PARSER_MEDIA_TYPE === "application/xhtml+xml" ? stringToString : stringToLowerCase;
7089
- ALLOWED_TAGS = objectHasOwnProperty(cfg, "ALLOWED_TAGS") ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;
7090
- ALLOWED_ATTR = objectHasOwnProperty(cfg, "ALLOWED_ATTR") ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;
7091
- ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, "ALLOWED_NAMESPACES") ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;
7092
- URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, "ADD_URI_SAFE_ATTR") ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR, transformCaseFunc) : DEFAULT_URI_SAFE_ATTRIBUTES;
7093
- DATA_URI_TAGS = objectHasOwnProperty(cfg, "ADD_DATA_URI_TAGS") ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS, transformCaseFunc) : DEFAULT_DATA_URI_TAGS;
7094
- FORBID_CONTENTS = objectHasOwnProperty(cfg, "FORBID_CONTENTS") ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;
7095
- FORBID_TAGS = objectHasOwnProperty(cfg, "FORBID_TAGS") ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : clone({});
7096
- FORBID_ATTR = objectHasOwnProperty(cfg, "FORBID_ATTR") ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : clone({});
7097
- USE_PROFILES = objectHasOwnProperty(cfg, "USE_PROFILES") ? cfg.USE_PROFILES : false;
7132
+ ALLOWED_TAGS = objectHasOwnProperty(cfg, "ALLOWED_TAGS") && arrayIsArray(cfg.ALLOWED_TAGS) ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;
7133
+ ALLOWED_ATTR = objectHasOwnProperty(cfg, "ALLOWED_ATTR") && arrayIsArray(cfg.ALLOWED_ATTR) ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;
7134
+ ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, "ALLOWED_NAMESPACES") && arrayIsArray(cfg.ALLOWED_NAMESPACES) ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;
7135
+ URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, "ADD_URI_SAFE_ATTR") && arrayIsArray(cfg.ADD_URI_SAFE_ATTR) ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR, transformCaseFunc) : DEFAULT_URI_SAFE_ATTRIBUTES;
7136
+ DATA_URI_TAGS = objectHasOwnProperty(cfg, "ADD_DATA_URI_TAGS") && arrayIsArray(cfg.ADD_DATA_URI_TAGS) ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS, transformCaseFunc) : DEFAULT_DATA_URI_TAGS;
7137
+ FORBID_CONTENTS = objectHasOwnProperty(cfg, "FORBID_CONTENTS") && arrayIsArray(cfg.FORBID_CONTENTS) ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;
7138
+ FORBID_TAGS = objectHasOwnProperty(cfg, "FORBID_TAGS") && arrayIsArray(cfg.FORBID_TAGS) ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : clone({});
7139
+ FORBID_ATTR = objectHasOwnProperty(cfg, "FORBID_ATTR") && arrayIsArray(cfg.FORBID_ATTR) ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : clone({});
7140
+ USE_PROFILES = objectHasOwnProperty(cfg, "USE_PROFILES") ? cfg.USE_PROFILES && typeof cfg.USE_PROFILES === "object" ? clone(cfg.USE_PROFILES) : cfg.USE_PROFILES : false;
7098
7141
  ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false;
7099
7142
  ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false;
7100
7143
  ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false;
@@ -7110,14 +7153,21 @@ function createDOMPurify() {
7110
7153
  SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false;
7111
7154
  KEEP_CONTENT = cfg.KEEP_CONTENT !== false;
7112
7155
  IN_PLACE = cfg.IN_PLACE || false;
7113
- IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;
7114
- NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;
7115
- MATHML_TEXT_INTEGRATION_POINTS = cfg.MATHML_TEXT_INTEGRATION_POINTS || MATHML_TEXT_INTEGRATION_POINTS;
7116
- HTML_INTEGRATION_POINTS = cfg.HTML_INTEGRATION_POINTS || HTML_INTEGRATION_POINTS;
7117
- CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};
7118
- if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;
7119
- if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;
7120
- if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === "boolean") CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;
7156
+ IS_ALLOWED_URI$1 = isRegex(cfg.ALLOWED_URI_REGEXP) ? cfg.ALLOWED_URI_REGEXP : IS_ALLOWED_URI;
7157
+ NAMESPACE = typeof cfg.NAMESPACE === "string" ? cfg.NAMESPACE : HTML_NAMESPACE;
7158
+ 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({}, [
7159
+ "mi",
7160
+ "mo",
7161
+ "mn",
7162
+ "ms",
7163
+ "mtext"
7164
+ ]);
7165
+ HTML_INTEGRATION_POINTS = objectHasOwnProperty(cfg, "HTML_INTEGRATION_POINTS") && cfg.HTML_INTEGRATION_POINTS && typeof cfg.HTML_INTEGRATION_POINTS === "object" ? clone(cfg.HTML_INTEGRATION_POINTS) : addToSet({}, ["annotation-xml"]);
7166
+ const customElementHandling = objectHasOwnProperty(cfg, "CUSTOM_ELEMENT_HANDLING") && cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING === "object" ? clone(cfg.CUSTOM_ELEMENT_HANDLING) : create(null);
7167
+ CUSTOM_ELEMENT_HANDLING = create(null);
7168
+ if (objectHasOwnProperty(customElementHandling, "tagNameCheck") && isRegexOrFunction(customElementHandling.tagNameCheck)) CUSTOM_ELEMENT_HANDLING.tagNameCheck = customElementHandling.tagNameCheck;
7169
+ if (objectHasOwnProperty(customElementHandling, "attributeNameCheck") && isRegexOrFunction(customElementHandling.attributeNameCheck)) CUSTOM_ELEMENT_HANDLING.attributeNameCheck = customElementHandling.attributeNameCheck;
7170
+ if (objectHasOwnProperty(customElementHandling, "allowCustomizedBuiltInElements") && typeof customElementHandling.allowCustomizedBuiltInElements === "boolean") CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = customElementHandling.allowCustomizedBuiltInElements;
7121
7171
  if (SAFE_FOR_TEMPLATES) ALLOW_DATA_ATTR = false;
7122
7172
  if (RETURN_DOM_FRAGMENT) RETURN_DOM = true;
7123
7173
  if (USE_PROFILES) {
@@ -7143,24 +7193,28 @@ function createDOMPurify() {
7143
7193
  addToSet(ALLOWED_ATTR, xml);
7144
7194
  }
7145
7195
  }
7146
- if (!objectHasOwnProperty(cfg, "ADD_TAGS")) EXTRA_ELEMENT_HANDLING.tagCheck = null;
7147
- if (!objectHasOwnProperty(cfg, "ADD_ATTR")) EXTRA_ELEMENT_HANDLING.attributeCheck = null;
7148
- if (cfg.ADD_TAGS) if (typeof cfg.ADD_TAGS === "function") EXTRA_ELEMENT_HANDLING.tagCheck = cfg.ADD_TAGS;
7149
- else {
7150
- if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) ALLOWED_TAGS = clone(ALLOWED_TAGS);
7151
- addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);
7196
+ EXTRA_ELEMENT_HANDLING.tagCheck = null;
7197
+ EXTRA_ELEMENT_HANDLING.attributeCheck = null;
7198
+ if (objectHasOwnProperty(cfg, "ADD_TAGS")) {
7199
+ if (typeof cfg.ADD_TAGS === "function") EXTRA_ELEMENT_HANDLING.tagCheck = cfg.ADD_TAGS;
7200
+ else if (arrayIsArray(cfg.ADD_TAGS)) {
7201
+ if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) ALLOWED_TAGS = clone(ALLOWED_TAGS);
7202
+ addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);
7203
+ }
7152
7204
  }
7153
- if (cfg.ADD_ATTR) if (typeof cfg.ADD_ATTR === "function") EXTRA_ELEMENT_HANDLING.attributeCheck = cfg.ADD_ATTR;
7154
- else {
7155
- if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) ALLOWED_ATTR = clone(ALLOWED_ATTR);
7156
- addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);
7205
+ if (objectHasOwnProperty(cfg, "ADD_ATTR")) {
7206
+ if (typeof cfg.ADD_ATTR === "function") EXTRA_ELEMENT_HANDLING.attributeCheck = cfg.ADD_ATTR;
7207
+ else if (arrayIsArray(cfg.ADD_ATTR)) {
7208
+ if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) ALLOWED_ATTR = clone(ALLOWED_ATTR);
7209
+ addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);
7210
+ }
7157
7211
  }
7158
- if (cfg.ADD_URI_SAFE_ATTR) addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);
7159
- if (cfg.FORBID_CONTENTS) {
7212
+ if (objectHasOwnProperty(cfg, "ADD_URI_SAFE_ATTR") && arrayIsArray(cfg.ADD_URI_SAFE_ATTR)) addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);
7213
+ if (objectHasOwnProperty(cfg, "FORBID_CONTENTS") && arrayIsArray(cfg.FORBID_CONTENTS)) {
7160
7214
  if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) FORBID_CONTENTS = clone(FORBID_CONTENTS);
7161
7215
  addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);
7162
7216
  }
7163
- if (cfg.ADD_FORBID_CONTENTS) {
7217
+ if (objectHasOwnProperty(cfg, "ADD_FORBID_CONTENTS") && arrayIsArray(cfg.ADD_FORBID_CONTENTS)) {
7164
7218
  if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) FORBID_CONTENTS = clone(FORBID_CONTENTS);
7165
7219
  addToSet(FORBID_CONTENTS, cfg.ADD_FORBID_CONTENTS, transformCaseFunc);
7166
7220
  }
@@ -7351,6 +7405,10 @@ function createDOMPurify() {
7351
7405
  _forceRemove(currentNode);
7352
7406
  return true;
7353
7407
  }
7408
+ if (SAFE_FOR_XML && currentNode.namespaceURI === HTML_NAMESPACE && tagName === "style" && _isNode(currentNode.firstElementChild)) {
7409
+ _forceRemove(currentNode);
7410
+ return true;
7411
+ }
7354
7412
  if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {
7355
7413
  _forceRemove(currentNode);
7356
7414
  return true;
@@ -7359,7 +7417,7 @@ function createDOMPurify() {
7359
7417
  _forceRemove(currentNode);
7360
7418
  return true;
7361
7419
  }
7362
- if (!(EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function && EXTRA_ELEMENT_HANDLING.tagCheck(tagName)) && (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName])) {
7420
+ if (FORBID_TAGS[tagName] || !(EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function && EXTRA_ELEMENT_HANDLING.tagCheck(tagName)) && !ALLOWED_TAGS[tagName]) {
7363
7421
  if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {
7364
7422
  if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) return false;
7365
7423
  if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) return false;
@@ -7371,7 +7429,6 @@ function createDOMPurify() {
7371
7429
  const childCount = childNodes.length;
7372
7430
  for (let i = childCount - 1; i >= 0; --i) {
7373
7431
  const childClone = cloneNode(childNodes[i], true);
7374
- childClone.__removalCount = (currentNode.__removalCount || 0) + 1;
7375
7432
  parentNode.insertBefore(childClone, getNextSibling(currentNode));
7376
7433
  }
7377
7434
  }
@@ -7415,10 +7472,10 @@ function createDOMPurify() {
7415
7472
  const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {
7416
7473
  if (FORBID_ATTR[lcName]) return false;
7417
7474
  if (SANITIZE_DOM && (lcName === "id" || lcName === "name") && (value in document || value in formElement)) return false;
7475
+ const nameIsPermitted = ALLOWED_ATTR[lcName] || EXTRA_ELEMENT_HANDLING.attributeCheck instanceof Function && EXTRA_ELEMENT_HANDLING.attributeCheck(lcName, lcTag);
7418
7476
  if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName));
7419
7477
  else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName));
7420
- else if (EXTRA_ELEMENT_HANDLING.attributeCheck instanceof Function && EXTRA_ELEMENT_HANDLING.attributeCheck(lcName, lcTag));
7421
- else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) 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)));
7478
+ else if (!nameIsPermitted || FORBID_ATTR[lcName]) 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)));
7422
7479
  else return false;
7423
7480
  else if (URI_SAFE_ATTRIBUTES[lcName]);
7424
7481
  else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE, "")));
@@ -7427,6 +7484,16 @@ function createDOMPurify() {
7427
7484
  else if (value) return false;
7428
7485
  return true;
7429
7486
  };
7487
+ const RESERVED_CUSTOM_ELEMENT_NAMES = addToSet({}, [
7488
+ "annotation-xml",
7489
+ "color-profile",
7490
+ "font-face",
7491
+ "font-face-format",
7492
+ "font-face-name",
7493
+ "font-face-src",
7494
+ "font-face-uri",
7495
+ "missing-glyph"
7496
+ ]);
7430
7497
  /**
7431
7498
  * _isBasicCustomElement
7432
7499
  * checks if at least one dash is included in tagName, and it's not the first char
@@ -7436,7 +7503,7 @@ function createDOMPurify() {
7436
7503
  * @returns Returns true if the tag name meets the basic criteria for a custom element, otherwise false.
7437
7504
  */
7438
7505
  const _isBasicCustomElement = function _isBasicCustomElement(tagName) {
7439
- return tagName !== "annotation-xml" && stringMatch(tagName, CUSTOM_ELEMENT);
7506
+ return !RESERVED_CUSTOM_ELEMENT_NAMES[stringToLowerCase(tagName)] && regExpTest(CUSTOM_ELEMENT, tagName);
7440
7507
  };
7441
7508
  /**
7442
7509
  * _sanitizeAttributes
@@ -7471,7 +7538,7 @@ function createDOMPurify() {
7471
7538
  hookEvent.forceKeepAttr = void 0;
7472
7539
  _executeHooks(hooks.uponSanitizeAttribute, currentNode, hookEvent);
7473
7540
  value = hookEvent.attrValue;
7474
- if (SANITIZE_NAMED_PROPS && (lcName === "id" || lcName === "name")) {
7541
+ if (SANITIZE_NAMED_PROPS && (lcName === "id" || lcName === "name") && stringIndexOf(value, SANITIZE_NAMED_PROPS_PREFIX) !== 0) {
7475
7542
  _removeAttribute(name, currentNode);
7476
7543
  value = SANITIZE_NAMED_PROPS_PREFIX + value;
7477
7544
  }
@@ -7529,7 +7596,7 @@ function createDOMPurify() {
7529
7596
  *
7530
7597
  * @param fragment to iterate over recursively
7531
7598
  */
7532
- const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {
7599
+ const _sanitizeShadowDOM2 = function _sanitizeShadowDOM(fragment) {
7533
7600
  let shadowNode = null;
7534
7601
  const shadowIterator = _createNodeIterator(fragment);
7535
7602
  _executeHooks(hooks.beforeSanitizeShadowDOM, fragment, null);
@@ -7537,7 +7604,7 @@ function createDOMPurify() {
7537
7604
  _executeHooks(hooks.uponSanitizeShadowNode, shadowNode, null);
7538
7605
  _sanitizeElements(shadowNode);
7539
7606
  _sanitizeAttributes(shadowNode);
7540
- if (shadowNode.content instanceof DocumentFragment) _sanitizeShadowDOM(shadowNode.content);
7607
+ if (shadowNode.content instanceof DocumentFragment) _sanitizeShadowDOM2(shadowNode.content);
7541
7608
  }
7542
7609
  _executeHooks(hooks.afterSanitizeShadowDOM, fragment, null);
7543
7610
  };
@@ -7549,17 +7616,18 @@ function createDOMPurify() {
7549
7616
  let returnNode = null;
7550
7617
  IS_EMPTY_INPUT = !dirty;
7551
7618
  if (IS_EMPTY_INPUT) dirty = "<!-->";
7552
- if (typeof dirty !== "string" && !_isNode(dirty)) if (typeof dirty.toString === "function") {
7553
- dirty = dirty.toString();
7619
+ if (typeof dirty !== "string" && !_isNode(dirty)) {
7620
+ dirty = stringifyValue(dirty);
7554
7621
  if (typeof dirty !== "string") throw typeErrorCreate("dirty is not a string, aborting");
7555
- } else throw typeErrorCreate("toString is not a function");
7622
+ }
7556
7623
  if (!DOMPurify.isSupported) return dirty;
7557
7624
  if (!SET_CONFIG) _parseConfig(cfg);
7558
7625
  DOMPurify.removed = [];
7559
7626
  if (typeof dirty === "string") IN_PLACE = false;
7560
7627
  if (IN_PLACE) {
7561
- if (dirty.nodeName) {
7562
- const tagName = transformCaseFunc(dirty.nodeName);
7628
+ const nn = dirty.nodeName;
7629
+ if (typeof nn === "string") {
7630
+ const tagName = transformCaseFunc(nn);
7563
7631
  if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) throw typeErrorCreate("root node is forbidden and cannot be sanitized in-place");
7564
7632
  }
7565
7633
  } else if (dirty instanceof Node) {
@@ -7578,10 +7646,22 @@ function createDOMPurify() {
7578
7646
  while (currentNode = nodeIterator.nextNode()) {
7579
7647
  _sanitizeElements(currentNode);
7580
7648
  _sanitizeAttributes(currentNode);
7581
- if (currentNode.content instanceof DocumentFragment) _sanitizeShadowDOM(currentNode.content);
7649
+ if (currentNode.content instanceof DocumentFragment) _sanitizeShadowDOM2(currentNode.content);
7582
7650
  }
7583
7651
  if (IN_PLACE) return dirty;
7584
7652
  if (RETURN_DOM) {
7653
+ if (SAFE_FOR_TEMPLATES) {
7654
+ body.normalize();
7655
+ let html = body.innerHTML;
7656
+ arrayForEach([
7657
+ MUSTACHE_EXPR,
7658
+ ERB_EXPR,
7659
+ TMPLIT_EXPR
7660
+ ], (expr) => {
7661
+ html = stringReplace(html, expr, " ");
7662
+ });
7663
+ body.innerHTML = html;
7664
+ }
7585
7665
  if (RETURN_DOM_FRAGMENT) {
7586
7666
  returnNode = createDocumentFragment.call(body.ownerDocument);
7587
7667
  while (body.firstChild) returnNode.appendChild(body.firstChild);
@@ -9658,8 +9738,13 @@ function getGlobal() {
9658
9738
  var G = getGlobal();
9659
9739
  var FormDataCtor = typeof G.FormData !== "undefined" ? G.FormData : void 0;
9660
9740
  var isFormData = (thing) => {
9661
- let kind;
9662
- return thing && (FormDataCtor && thing instanceof FormDataCtor || isFunction$1(thing.append) && ((kind = kindOf(thing)) === "formdata" || kind === "object" && isFunction$1(thing.toString) && thing.toString() === "[object FormData]"));
9741
+ if (!thing) return false;
9742
+ if (FormDataCtor && thing instanceof FormDataCtor) return true;
9743
+ const proto = getPrototypeOf(thing);
9744
+ if (!proto || proto === Object.prototype) return false;
9745
+ if (!isFunction$1(thing.append)) return false;
9746
+ const kind = kindOf(thing);
9747
+ return kind === "formdata" || kind === "object" && isFunction$1(thing.toString) && thing.toString() === "[object FormData]";
9663
9748
  };
9664
9749
  /**
9665
9750
  * Determine if a value is a URLSearchParams object
@@ -10216,6 +10301,7 @@ AxiosError.ERR_BAD_REQUEST = "ERR_BAD_REQUEST";
10216
10301
  AxiosError.ERR_CANCELED = "ERR_CANCELED";
10217
10302
  AxiosError.ERR_NOT_SUPPORT = "ERR_NOT_SUPPORT";
10218
10303
  AxiosError.ERR_INVALID_URL = "ERR_INVALID_URL";
10304
+ AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED = "ERR_FORM_DATA_DEPTH_EXCEEDED";
10219
10305
  //#endregion
10220
10306
  //#region node_modules/axios/lib/helpers/toFormData.js
10221
10307
  /**
@@ -10303,7 +10389,9 @@ function toFormData(obj, formData, options) {
10303
10389
  const visitor = options.visitor || defaultVisitor;
10304
10390
  const dots = options.dots;
10305
10391
  const indexes = options.indexes;
10306
- const useBlob = (options.Blob || typeof Blob !== "undefined" && Blob) && utils_default.isSpecCompliantForm(formData);
10392
+ const _Blob = options.Blob || typeof Blob !== "undefined" && Blob;
10393
+ const maxDepth = options.maxDepth === void 0 ? 100 : options.maxDepth;
10394
+ const useBlob = _Blob && utils_default.isSpecCompliantForm(formData);
10307
10395
  if (!utils_default.isFunction(visitor)) throw new TypeError("visitor must be a function");
10308
10396
  function convertValue(value) {
10309
10397
  if (value === null) return "";
@@ -10351,12 +10439,13 @@ function toFormData(obj, formData, options) {
10351
10439
  convertValue,
10352
10440
  isVisitable
10353
10441
  });
10354
- function build(value, path) {
10442
+ function build(value, path, depth = 0) {
10355
10443
  if (utils_default.isUndefined(value)) return;
10444
+ if (depth > maxDepth) throw new AxiosError("Object is too deeply nested (" + depth + " levels). Max depth: " + maxDepth, AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED);
10356
10445
  if (stack.indexOf(value) !== -1) throw Error("Circular reference detected in " + path.join("."));
10357
10446
  stack.push(value);
10358
10447
  utils_default.forEach(value, function each(el, key) {
10359
- if ((!(utils_default.isUndefined(el) || el === null) && visitor.call(formData, el, utils_default.isString(key) ? key.trim() : key, path, exposedHelpers)) === true) build(el, path ? path.concat(key) : [key]);
10448
+ if ((!(utils_default.isUndefined(el) || el === null) && visitor.call(formData, el, utils_default.isString(key) ? key.trim() : key, path, exposedHelpers)) === true) build(el, path ? path.concat(key) : [key], depth + 1);
10360
10449
  });
10361
10450
  stack.pop();
10362
10451
  }
@@ -10381,10 +10470,9 @@ function encode$1(str) {
10381
10470
  "(": "%28",
10382
10471
  ")": "%29",
10383
10472
  "~": "%7E",
10384
- "%20": "+",
10385
- "%00": "\0"
10473
+ "%20": "+"
10386
10474
  };
10387
- return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {
10475
+ return encodeURIComponent(str).replace(/[!'()~]|%20/g, function replacer(match) {
10388
10476
  return charMap[match];
10389
10477
  });
10390
10478
  }
@@ -10645,7 +10733,7 @@ function formDataToJSON(formData) {
10645
10733
  const isLast = index >= path.length;
10646
10734
  name = !name && utils_default.isArray(target) ? target.length : name;
10647
10735
  if (isLast) {
10648
- if (utils_default.hasOwnProp(target, name)) target[name] = [target[name], value];
10736
+ if (utils_default.hasOwnProp(target, name)) target[name] = utils_default.isArray(target[name]) ? target[name].concat(value) : [target[name], value];
10649
10737
  else target[name] = value;
10650
10738
  return !isNumericKey;
10651
10739
  }
@@ -10664,6 +10752,7 @@ function formDataToJSON(formData) {
10664
10752
  }
10665
10753
  //#endregion
10666
10754
  //#region node_modules/axios/lib/defaults/index.js
10755
+ var own = (obj, key) => obj != null && utils_default.hasOwnProp(obj, key) ? obj[key] : void 0;
10667
10756
  /**
10668
10757
  * It takes a string, tries to parse it, and if it fails, it returns the stringified version
10669
10758
  * of the input
@@ -10704,10 +10793,12 @@ var defaults = {
10704
10793
  }
10705
10794
  let isFileList;
10706
10795
  if (isObjectPayload) {
10707
- if (contentType.indexOf("application/x-www-form-urlencoded") > -1) return toURLEncodedForm(data, this.formSerializer).toString();
10796
+ const formSerializer = own(this, "formSerializer");
10797
+ if (contentType.indexOf("application/x-www-form-urlencoded") > -1) return toURLEncodedForm(data, formSerializer).toString();
10708
10798
  if ((isFileList = utils_default.isFileList(data)) || contentType.indexOf("multipart/form-data") > -1) {
10709
- const _FormData = this.env && this.env.FormData;
10710
- return toFormData(isFileList ? { "files[]": data } : data, _FormData && new _FormData(), this.formSerializer);
10799
+ const env = own(this, "env");
10800
+ const _FormData = env && env.FormData;
10801
+ return toFormData(isFileList ? { "files[]": data } : data, _FormData && new _FormData(), formSerializer);
10711
10802
  }
10712
10803
  }
10713
10804
  if (isObjectPayload || hasJSONContentType) {
@@ -10717,23 +10808,28 @@ var defaults = {
10717
10808
  return data;
10718
10809
  }],
10719
10810
  transformResponse: [function transformResponse(data) {
10720
- const transitional = this.transitional || defaults.transitional;
10811
+ const transitional = own(this, "transitional") || defaults.transitional;
10721
10812
  const forcedJSONParsing = transitional && transitional.forcedJSONParsing;
10722
- const JSONRequested = this.responseType === "json";
10813
+ const responseType = own(this, "responseType");
10814
+ const JSONRequested = responseType === "json";
10723
10815
  if (utils_default.isResponse(data) || utils_default.isReadableStream(data)) return data;
10724
- if (data && utils_default.isString(data) && (forcedJSONParsing && !this.responseType || JSONRequested)) {
10816
+ if (data && utils_default.isString(data) && (forcedJSONParsing && !responseType || JSONRequested)) {
10725
10817
  const strictJSONParsing = !(transitional && transitional.silentJSONParsing) && JSONRequested;
10726
10818
  try {
10727
- return JSON.parse(data, this.parseReviver);
10819
+ return JSON.parse(data, own(this, "parseReviver"));
10728
10820
  } catch (e) {
10729
10821
  if (strictJSONParsing) {
10730
- if (e.name === "SyntaxError") throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);
10822
+ if (e.name === "SyntaxError") throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, own(this, "response"));
10731
10823
  throw e;
10732
10824
  }
10733
10825
  }
10734
10826
  }
10735
10827
  return data;
10736
10828
  }],
10829
+ /**
10830
+ * A timeout in milliseconds to abort a request. If set to 0 (default) a
10831
+ * timeout is not created.
10832
+ */
10737
10833
  timeout: 0,
10738
10834
  xsrfCookieName: "XSRF-TOKEN",
10739
10835
  xsrfHeaderName: "X-XSRF-TOKEN",
@@ -10815,30 +10911,31 @@ var parseHeaders_default = (rawHeaders) => {
10815
10911
  //#endregion
10816
10912
  //#region node_modules/axios/lib/core/AxiosHeaders.js
10817
10913
  var $internals = Symbol("internals");
10818
- var isValidHeaderValue = (value) => !/[\r\n]/.test(value);
10819
- function assertValidHeaderValue(value, header) {
10820
- if (value === false || value == null) return;
10821
- if (utils_default.isArray(value)) {
10822
- value.forEach((v) => assertValidHeaderValue(v, header));
10823
- return;
10914
+ var INVALID_HEADER_VALUE_CHARS_RE = /[^\x09\x20-\x7E\x80-\xFF]/g;
10915
+ function trimSPorHTAB(str) {
10916
+ let start = 0;
10917
+ let end = str.length;
10918
+ while (start < end) {
10919
+ const code = str.charCodeAt(start);
10920
+ if (code !== 9 && code !== 32) break;
10921
+ start += 1;
10922
+ }
10923
+ while (end > start) {
10924
+ const code = str.charCodeAt(end - 1);
10925
+ if (code !== 9 && code !== 32) break;
10926
+ end -= 1;
10824
10927
  }
10825
- if (!isValidHeaderValue(String(value))) throw new Error(`Invalid character in header content ["${header}"]`);
10928
+ return start === 0 && end === str.length ? str : str.slice(start, end);
10826
10929
  }
10827
10930
  function normalizeHeader(header) {
10828
10931
  return header && String(header).trim().toLowerCase();
10829
10932
  }
10830
- function stripTrailingCRLF(str) {
10831
- let end = str.length;
10832
- while (end > 0) {
10833
- const charCode = str.charCodeAt(end - 1);
10834
- if (charCode !== 10 && charCode !== 13) break;
10835
- end -= 1;
10836
- }
10837
- return end === str.length ? str : str.slice(0, end);
10933
+ function sanitizeHeaderValue(str) {
10934
+ return trimSPorHTAB(str.replace(INVALID_HEADER_VALUE_CHARS_RE, ""));
10838
10935
  }
10839
10936
  function normalizeValue(value) {
10840
10937
  if (value === false || value == null) return value;
10841
- return utils_default.isArray(value) ? value.map(normalizeValue) : stripTrailingCRLF(String(value));
10938
+ return utils_default.isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value));
10842
10939
  }
10843
10940
  function parseTokens(str) {
10844
10941
  const tokens = Object.create(null);
@@ -10885,10 +10982,7 @@ var AxiosHeaders = class {
10885
10982
  const lHeader = normalizeHeader(_header);
10886
10983
  if (!lHeader) throw new Error("header name must be a non-empty string");
10887
10984
  const key = utils_default.findKey(self, lHeader);
10888
- if (!key || self[key] === void 0 || _rewrite === true || _rewrite === void 0 && self[key] !== false) {
10889
- assertValidHeaderValue(_value, _header);
10890
- self[key || _header] = normalizeValue(_value);
10891
- }
10985
+ if (!key || self[key] === void 0 || _rewrite === true || _rewrite === void 0 && self[key] !== false) self[key || _header] = normalizeValue(_value);
10892
10986
  }
10893
10987
  const setHeaders = (headers, _rewrite) => utils_default.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));
10894
10988
  if (utils_default.isPlainObject(header) || header instanceof this.constructor) setHeaders(header, valueOrRewrite);
@@ -11178,19 +11272,19 @@ var progressEventReducer = (listener, isDownloadStream, freq = 3) => {
11178
11272
  let bytesNotified = 0;
11179
11273
  const _speedometer = speedometer(50, 250);
11180
11274
  return throttle((e) => {
11181
- const loaded = e.loaded;
11275
+ const rawLoaded = e.loaded;
11182
11276
  const total = e.lengthComputable ? e.total : void 0;
11183
- const progressBytes = loaded - bytesNotified;
11277
+ const loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded;
11278
+ const progressBytes = Math.max(0, loaded - bytesNotified);
11184
11279
  const rate = _speedometer(progressBytes);
11185
- const inRange = loaded <= total;
11186
- bytesNotified = loaded;
11280
+ bytesNotified = Math.max(bytesNotified, loaded);
11187
11281
  listener({
11188
11282
  loaded,
11189
11283
  total,
11190
11284
  progress: total ? loaded / total : void 0,
11191
11285
  bytes: progressBytes,
11192
11286
  rate: rate ? rate : void 0,
11193
- estimated: rate && total && inRange ? (total - loaded) / rate : void 0,
11287
+ estimated: rate && total ? (total - loaded) / rate : void 0,
11194
11288
  event: e,
11195
11289
  lengthComputable: total != null,
11196
11290
  [isDownloadStream ? "download" : "upload"]: true
@@ -11280,7 +11374,7 @@ function combineURLs(baseURL, relativeURL) {
11280
11374
  */
11281
11375
  function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {
11282
11376
  let isRelativeUrl = !isAbsoluteURL(requestedURL);
11283
- if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) return combineURLs(baseURL, requestedURL);
11377
+ if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) return combineURLs(baseURL, requestedURL);
11284
11378
  return requestedURL;
11285
11379
  }
11286
11380
  //#endregion
@@ -11297,7 +11391,13 @@ var headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } :
11297
11391
  */
11298
11392
  function mergeConfig(config1, config2) {
11299
11393
  config2 = config2 || {};
11300
- const config = {};
11394
+ const config = Object.create(null);
11395
+ Object.defineProperty(config, "hasOwnProperty", {
11396
+ value: Object.prototype.hasOwnProperty,
11397
+ enumerable: false,
11398
+ writable: true,
11399
+ configurable: true
11400
+ });
11301
11401
  function getMergedValue(target, source, prop, caseless) {
11302
11402
  if (utils_default.isPlainObject(target) && utils_default.isPlainObject(source)) return utils_default.merge.call({ caseless }, target, source);
11303
11403
  else if (utils_default.isPlainObject(source)) return utils_default.merge({}, source);
@@ -11316,8 +11416,8 @@ function mergeConfig(config1, config2) {
11316
11416
  else if (!utils_default.isUndefined(a)) return getMergedValue(void 0, a);
11317
11417
  }
11318
11418
  function mergeDirectKeys(a, b, prop) {
11319
- if (prop in config2) return getMergedValue(a, b);
11320
- else if (prop in config1) return getMergedValue(void 0, a);
11419
+ if (utils_default.hasOwnProp(config2, prop)) return getMergedValue(a, b);
11420
+ else if (utils_default.hasOwnProp(config1, prop)) return getMergedValue(void 0, a);
11321
11421
  }
11322
11422
  const mergeMap = {
11323
11423
  url: valueFromConfig2,
@@ -11346,6 +11446,7 @@ function mergeConfig(config1, config2) {
11346
11446
  httpsAgent: defaultToConfig2,
11347
11447
  cancelToken: defaultToConfig2,
11348
11448
  socketPath: defaultToConfig2,
11449
+ allowedSocketPaths: defaultToConfig2,
11349
11450
  responseEncoding: defaultToConfig2,
11350
11451
  validateStatus: mergeDirectKeys,
11351
11452
  headers: (a, b, prop) => mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true)
@@ -11356,7 +11457,7 @@ function mergeConfig(config1, config2) {
11356
11457
  }), function computeConfigValue(prop) {
11357
11458
  if (prop === "__proto__" || prop === "constructor" || prop === "prototype") return;
11358
11459
  const merge = utils_default.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties;
11359
- const configValue = merge(config1[prop], config2[prop], prop);
11460
+ const configValue = merge(utils_default.hasOwnProp(config1, prop) ? config1[prop] : void 0, utils_default.hasOwnProp(config2, prop) ? config2[prop] : void 0, prop);
11360
11461
  utils_default.isUndefined(configValue) && merge !== mergeDirectKeys || (config[prop] = configValue);
11361
11462
  });
11362
11463
  return config;
@@ -11365,9 +11466,18 @@ function mergeConfig(config1, config2) {
11365
11466
  //#region node_modules/axios/lib/helpers/resolveConfig.js
11366
11467
  var resolveConfig_default = (config) => {
11367
11468
  const newConfig = mergeConfig({}, config);
11368
- let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;
11469
+ const own = (key) => utils_default.hasOwnProp(newConfig, key) ? newConfig[key] : void 0;
11470
+ const data = own("data");
11471
+ let withXSRFToken = own("withXSRFToken");
11472
+ const xsrfHeaderName = own("xsrfHeaderName");
11473
+ const xsrfCookieName = own("xsrfCookieName");
11474
+ let headers = own("headers");
11475
+ const auth = own("auth");
11476
+ const baseURL = own("baseURL");
11477
+ const allowAbsoluteUrls = own("allowAbsoluteUrls");
11478
+ const url = own("url");
11369
11479
  newConfig.headers = headers = AxiosHeaders.from(headers);
11370
- newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer);
11480
+ newConfig.url = buildURL(buildFullPath(baseURL, url, allowAbsoluteUrls), config.params, config.paramsSerializer);
11371
11481
  if (auth) headers.set("Authorization", "Basic " + btoa((auth.username || "") + ":" + (auth.password ? unescape(encodeURIComponent(auth.password)) : "")));
11372
11482
  if (utils_default.isFormData(data)) {
11373
11483
  if (platform_default.hasStandardBrowserEnv || platform_default.hasStandardBrowserWebWorkerEnv) headers.setContentType(void 0);
@@ -11380,8 +11490,8 @@ var resolveConfig_default = (config) => {
11380
11490
  }
11381
11491
  }
11382
11492
  if (platform_default.hasStandardBrowserEnv) {
11383
- withXSRFToken && utils_default.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));
11384
- if (withXSRFToken || withXSRFToken !== false && isURLSameOrigin_default(newConfig.url)) {
11493
+ if (utils_default.isFunction(withXSRFToken)) withXSRFToken = withXSRFToken(newConfig);
11494
+ if (withXSRFToken === true || withXSRFToken == null && isURLSameOrigin_default(newConfig.url)) {
11385
11495
  const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies_default.read(xsrfCookieName);
11386
11496
  if (xsrfValue) headers.set(xsrfHeaderName, xsrfValue);
11387
11497
  }
@@ -11612,16 +11722,16 @@ var factory = (env) => {
11612
11722
  const encodeText = isFetchSupported && (typeof TextEncoder$1 === "function" ? ((encoder) => (str) => encoder.encode(str))(new TextEncoder$1()) : async (str) => new Uint8Array(await new Request(str).arrayBuffer()));
11613
11723
  const supportsRequestStream = isRequestSupported && isReadableStreamSupported && test(() => {
11614
11724
  let duplexAccessed = false;
11615
- const body = new ReadableStream$1();
11616
- const hasContentType = new Request(platform_default.origin, {
11617
- body,
11725
+ const request = new Request(platform_default.origin, {
11726
+ body: new ReadableStream$1(),
11618
11727
  method: "POST",
11619
11728
  get duplex() {
11620
11729
  duplexAccessed = true;
11621
11730
  return "half";
11622
11731
  }
11623
- }).headers.has("Content-Type");
11624
- body.cancel();
11732
+ });
11733
+ const hasContentType = request.headers.has("Content-Type");
11734
+ if (request.body != null) request.body.cancel();
11625
11735
  return duplexAccessed && !hasContentType;
11626
11736
  });
11627
11737
  const supportsResponseStream = isResponseSupported && isReadableStreamSupported && test(() => utils_default.isReadableStream(new Response("").body));
@@ -11680,6 +11790,10 @@ var factory = (env) => {
11680
11790
  }
11681
11791
  if (!utils_default.isString(withCredentials)) withCredentials = withCredentials ? "include" : "omit";
11682
11792
  const isCredentialsSupported = isRequestSupported && "credentials" in Request.prototype;
11793
+ if (utils_default.isFormData(data)) {
11794
+ const contentType = headers.getContentType();
11795
+ if (contentType && /^multipart\/form-data/i.test(contentType) && !/boundary=/i.test(contentType)) headers.delete("content-type");
11796
+ }
11683
11797
  const resolvedOptions = {
11684
11798
  ...fetchOptions,
11685
11799
  signal: composedSignal,
@@ -11822,7 +11936,15 @@ function getAdapter(adapters, config) {
11822
11936
  * Exports Axios adapters and utility to resolve an adapter
11823
11937
  */
11824
11938
  var adapters_default = {
11939
+ /**
11940
+ * Resolve an adapter from a list of adapter names or functions.
11941
+ * @type {Function}
11942
+ */
11825
11943
  getAdapter,
11944
+ /**
11945
+ * Exposes all known adapters
11946
+ * @type {Object<string, Function|Object>}
11947
+ */
11826
11948
  adapters: knownAdapters
11827
11949
  };
11828
11950
  //#endregion
@@ -11872,7 +11994,7 @@ function dispatchRequest(config) {
11872
11994
  }
11873
11995
  //#endregion
11874
11996
  //#region node_modules/axios/lib/env/data.js
11875
- var VERSION = "1.15.0";
11997
+ var VERSION = "1.15.2";
11876
11998
  //#endregion
11877
11999
  //#region node_modules/axios/lib/helpers/validator.js
11878
12000
  var validators$1 = {};
@@ -11932,7 +12054,7 @@ function assertOptions(options, schema, allowUnknown) {
11932
12054
  let i = keys.length;
11933
12055
  while (i-- > 0) {
11934
12056
  const opt = keys[i];
11935
- const validator = schema[opt];
12057
+ const validator = Object.prototype.hasOwnProperty.call(schema, opt) ? schema[opt] : void 0;
11936
12058
  if (validator) {
11937
12059
  const value = options[opt];
11938
12060
  const result = value === void 0 || validator(value, opt, options);
@@ -12363,7 +12485,7 @@ axios.getAdapter = adapters_default.getAdapter;
12363
12485
  axios.HttpStatusCode = HttpStatusCode;
12364
12486
  axios.default = axios;
12365
12487
  require_tiny_emitter$1();
12366
- var __commonJSMin = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
12488
+ var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
12367
12489
  //#endregion
12368
12490
  //#region node_modules/@nsshunt/stssocketioutils/dist/index.mjs
12369
12491
  var import_tiny_emitter$1 = (/* @__PURE__ */ __commonJSMin(((exports, module) => {
@@ -12417,6 +12539,7 @@ var SocketIoClient = class extends import_tiny_emitter$1.TinyEmitter {
12417
12539
  #authToken;
12418
12540
  #socket;
12419
12541
  #reconnectTimeout = 2e3;
12542
+ #ackTimeout = 5e3;
12420
12543
  constructor(name) {
12421
12544
  super();
12422
12545
  this.#name = name;
@@ -12457,6 +12580,13 @@ var SocketIoClient = class extends import_tiny_emitter$1.TinyEmitter {
12457
12580
  get socket() {
12458
12581
  return this.#socket;
12459
12582
  }
12583
+ get ackTimeout() {
12584
+ return this.#ackTimeout;
12585
+ }
12586
+ WithAckTimeout(ackTimeout) {
12587
+ this.#ackTimeout = ackTimeout;
12588
+ return this;
12589
+ }
12460
12590
  WithAddress(address) {
12461
12591
  this.#address = address;
12462
12592
  return this;
@@ -12506,6 +12636,7 @@ var SocketIoClient = class extends import_tiny_emitter$1.TinyEmitter {
12506
12636
  socketOptions.agent = this.#agentManager.GetAgent(this.#address);
12507
12637
  }
12508
12638
  } else socketOptions = { transports: ["websocket"] };
12639
+ socketOptions.ackTimeout = this.#ackTimeout;
12509
12640
  if (this.#authToken) socketOptions.auth = (cb) => {
12510
12641
  cb({ token: this.#authToken });
12511
12642
  };
@@ -14198,45 +14329,6 @@ var SocketClientSubscriber = class extends SocketIoClient {
14198
14329
  }
14199
14330
  };
14200
14331
  //#endregion
14201
- //#region node_modules/uuid/dist/stringify.js
14202
- var byteToHex = [];
14203
- for (let i = 0; i < 256; ++i) byteToHex.push((i + 256).toString(16).slice(1));
14204
- function unsafeStringify(arr, offset = 0) {
14205
- return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + "-" + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + "-" + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + "-" + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + "-" + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();
14206
- }
14207
- //#endregion
14208
- //#region node_modules/uuid/dist/rng.js
14209
- var getRandomValues;
14210
- var rnds8 = new Uint8Array(16);
14211
- function rng() {
14212
- if (!getRandomValues) {
14213
- if (typeof crypto === "undefined" || !crypto.getRandomValues) throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
14214
- getRandomValues = crypto.getRandomValues.bind(crypto);
14215
- }
14216
- return getRandomValues(rnds8);
14217
- }
14218
- var native_default = { randomUUID: typeof crypto !== "undefined" && crypto.randomUUID && crypto.randomUUID.bind(crypto) };
14219
- //#endregion
14220
- //#region node_modules/uuid/dist/v4.js
14221
- function _v4(options, buf, offset) {
14222
- options = options || {};
14223
- const rnds = options.random ?? options.rng?.() ?? rng();
14224
- if (rnds.length < 16) throw new Error("Random bytes length must be >= 16");
14225
- rnds[6] = rnds[6] & 15 | 64;
14226
- rnds[8] = rnds[8] & 63 | 128;
14227
- if (buf) {
14228
- offset = offset || 0;
14229
- if (offset < 0 || offset + 16 > buf.length) throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);
14230
- for (let i = 0; i < 16; ++i) buf[offset + i] = rnds[i];
14231
- return buf;
14232
- }
14233
- return unsafeStringify(rnds);
14234
- }
14235
- function v4(options, buf, offset) {
14236
- if (native_default.randomUUID && !buf && !options) return native_default.randomUUID();
14237
- return _v4(options, buf, offset);
14238
- }
14239
- //#endregion
14240
14332
  //#region src/components/UXModelNavigator.vue?vue&type=script&setup=true&lang.ts
14241
14333
  var _hoisted_1$1 = { class: "d-flex flex-wrap justify-space-between" };
14242
14334
  //#endregion
@@ -14293,20 +14385,20 @@ var UXModelNavigator_default = /* @__PURE__ */ (0, vue.defineComponent)({
14293
14385
  };
14294
14386
  const GetRootLevelSubscriptions = () => [{
14295
14387
  subscriptionKey: {
14296
- id: v4(),
14388
+ id: globalThis.crypto.randomUUID(),
14297
14389
  topic: SubscriptionTopic.AllServicesCombined
14298
14390
  },
14299
14391
  cb: TransformSubscriptionPayloadCallback
14300
14392
  }, {
14301
14393
  subscriptionKey: {
14302
- id: v4(),
14394
+ id: globalThis.crypto.randomUUID(),
14303
14395
  topic: SubscriptionTopic.AllAgentsCombined
14304
14396
  },
14305
14397
  cb: TransformSubscriptionPayloadCallback
14306
14398
  }];
14307
14399
  const GetServicesSubscriptions = () => [{
14308
14400
  subscriptionKey: {
14309
- id: v4(),
14401
+ id: globalThis.crypto.randomUUID(),
14310
14402
  topic: SubscriptionTopic.Services
14311
14403
  },
14312
14404
  cb: TransformSubscriptionPayloadCallback
@@ -14314,7 +14406,7 @@ var UXModelNavigator_default = /* @__PURE__ */ (0, vue.defineComponent)({
14314
14406
  const GetServiceInstancesSubscriptions = (serviceId) => {
14315
14407
  return [{
14316
14408
  subscriptionKey: {
14317
- id: v4(),
14409
+ id: globalThis.crypto.randomUUID(),
14318
14410
  topic: SubscriptionTopic.ServiceInstances,
14319
14411
  key: serviceId
14320
14412
  },
@@ -14324,7 +14416,7 @@ var UXModelNavigator_default = /* @__PURE__ */ (0, vue.defineComponent)({
14324
14416
  const GetServiceInstanceSubscriptions = (serviceId, serviceInstanceId) => {
14325
14417
  return [{
14326
14418
  subscriptionKey: {
14327
- id: v4(),
14419
+ id: globalThis.crypto.randomUUID(),
14328
14420
  topic: SubscriptionTopic.ServiceInstance,
14329
14421
  key: serviceId,
14330
14422
  subkey: serviceInstanceId