@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.
- package/dist/stsuxvue.cjs +833 -289
- package/dist/stsuxvue.cjs.map +1 -1
- package/dist/stsuxvue.css +55 -55
- package/dist/stsuxvue.mjs +833 -289
- package/dist/stsuxvue.mjs.map +1 -1
- package/package.json +18 -17
- package/types/Views/AppView.vue.d.ts.map +1 -1
- package/types/Views/LandingView.vue.d.ts.map +1 -1
- package/types/Views/UXModelNavigatorView.vue.d.ts.map +1 -1
- package/types/Views/UXModelNavigatorViewSingle.vue.d.ts.map +1 -1
- package/types/commonTypes.d.ts.map +1 -1
- package/types/components/UXBarChart.vue.d.ts.map +1 -1
- package/types/components/UXLineChart.vue.d.ts.map +1 -1
- package/types/components/UXModelInstrumentAgentCommon.vue.d.ts.map +1 -1
- package/types/components/UXModelInstrumentServiceCommon.vue.d.ts.map +1 -1
- package/types/components/UXModelInstrumentServiceSmall.vue.d.ts.map +1 -1
- package/types/components/UXModelNavigator.vue.d.ts +1 -1
- package/types/components/UXModelNavigator.vue.d.ts.map +1 -1
- package/types/components/UXModelNode.vue.d.ts.map +1 -1
- package/types/components/UXMultiBarChart.vue.d.ts +1 -1
- package/types/components/UXMultiBarChart.vue.d.ts.map +1 -1
- package/types/components/UXRadialChart.vue.d.ts.map +1 -1
- package/types/components/UXTestForm.vue.d.ts +1 -1
- package/types/components/UXTestForm.vue.d.ts.map +1 -1
- package/types/index.d.ts +13 -13
- package/types/index.d.ts.map +1 -1
- package/types/plugins/vuetify.d.ts +4 -4
- package/types/plugins/vuetify.d.ts.map +1 -1
- package/types/plugins/webfontloader.d.ts.map +1 -1
- package/types/stores/modelStore.d.ts +2 -2
- 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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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.
|
|
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))
|
|
6206
|
-
|
|
6207
|
-
|
|
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.
|
|
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 =
|
|
7286
|
-
HTML_INTEGRATION_POINTS =
|
|
7287
|
-
const customElementHandling =
|
|
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")
|
|
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
|
-
|
|
7502
|
-
|
|
7503
|
-
from: element
|
|
7504
|
-
});
|
|
7585
|
+
if (attr) element.removeAttributeNode(attr);
|
|
7586
|
+
else element.removeAttribute(name);
|
|
7505
7587
|
} catch (_) {
|
|
7506
|
-
|
|
7507
|
-
|
|
7508
|
-
|
|
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
|
-
|
|
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 ((
|
|
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 =
|
|
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(
|
|
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") &&
|
|
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
|
-
|
|
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
|
|
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 === "
|
|
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 =
|
|
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
|
|
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(
|
|
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
|
|
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 ((
|
|
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 (
|
|
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
|
-
|
|
7897
|
-
|
|
7898
|
-
|
|
7899
|
-
|
|
7900
|
-
|
|
7901
|
-
|
|
7902
|
-
|
|
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 ((
|
|
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 = (
|
|
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 =
|
|
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])
|
|
8386
|
-
|
|
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-
|
|
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])
|
|
9075
|
-
|
|
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-
|
|
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" }, "
|
|
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" }, "
|
|
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" }, "
|
|
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" }, "
|
|
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
|
-
} }, "
|
|
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
|
-
} }, "
|
|
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-
|
|
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
|
|
10082
|
-
* an own `prop`. This distinguishes genuine own/inherited members
|
|
10083
|
-
* class accessors and template prototypes — from members injected
|
|
10084
|
-
* Object.prototype pollution (e.g. `Object.prototype.username = '...'`),
|
|
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
|
|
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 =
|
|
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
|
-
|
|
10713
|
-
|
|
10714
|
-
|
|
10715
|
-
|
|
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
|
-
|
|
10888
|
-
if (key
|
|
10889
|
-
|
|
10890
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
11329
|
-
|
|
11330
|
-
|
|
11331
|
-
|
|
11332
|
-
|
|
11333
|
-
|
|
11334
|
-
|
|
11335
|
-
const
|
|
11336
|
-
const
|
|
11337
|
-
const
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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)
|
|
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
|
-
|
|
11558
|
-
|
|
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 =
|
|
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
|
-
|
|
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 ||
|
|
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) =>
|
|
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
|
-
|
|
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
|
-
|
|
12085
|
-
|
|
12086
|
-
|
|
12087
|
-
|
|
12088
|
-
|
|
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
|
|
12091
|
-
|
|
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"
|
|
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))
|
|
12158
|
-
if (utils_default.
|
|
12159
|
-
|
|
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
|
-
|
|
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(
|
|
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)
|
|
12209
|
-
|
|
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/
|
|
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(
|
|
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) =>
|
|
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
|
|
12473
|
-
* -
|
|
12474
|
-
*
|
|
12475
|
-
*
|
|
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
|
-
|
|
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.
|
|
13044
|
+
var VERSION = "1.20.0";
|
|
12540
13045
|
//#endregion
|
|
12541
13046
|
//#region node_modules/axios/lib/adapters/fetch.js
|
|
12542
|
-
var DEFAULT_CHUNK_SIZE =
|
|
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
|
|
12712
|
-
|
|
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,
|
|
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(
|
|
13478
|
+
function dispatchRequest(_config) {
|
|
13479
|
+
const config = utils_default.toSafeFlatObject(_config);
|
|
12944
13480
|
throwIfCancellationRequested(config);
|
|
12945
|
-
config.headers = AxiosHeaders.from(config
|
|
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
|
|
13085
|
-
|
|
13086
|
-
|
|
13087
|
-
|
|
13088
|
-
|
|
13089
|
-
|
|
13090
|
-
|
|
13091
|
-
|
|
13092
|
-
|
|
13093
|
-
|
|
13094
|
-
|
|
13095
|
-
|
|
13096
|
-
|
|
13097
|
-
|
|
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)
|
|
13118
|
-
|
|
13119
|
-
|
|
13120
|
-
|
|
13121
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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)
|
|
14097
|
-
|
|
14098
|
-
|
|
14099
|
-
|
|
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)
|
|
15176
|
-
|
|
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, "
|
|
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 }, {
|