@wavemaker/angular-codegen 11.14.1-26.647686 → 11.14.1-29.647719

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.
@@ -124642,17 +124642,17 @@ var root$1 = freeGlobal$1 || freeSelf$1 || Function('return this')();
124642
124642
  var Symbol$1$1 = root$1.Symbol;
124643
124643
 
124644
124644
  /** Used for built-in method references. */
124645
- var objectProto$h$1 = Object.prototype;
124645
+ var objectProto$i$1 = Object.prototype;
124646
124646
 
124647
124647
  /** Used to check objects for own properties. */
124648
- var hasOwnProperty$e$1 = objectProto$h$1.hasOwnProperty;
124648
+ var hasOwnProperty$f$1 = objectProto$i$1.hasOwnProperty;
124649
124649
 
124650
124650
  /**
124651
124651
  * Used to resolve the
124652
124652
  * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
124653
124653
  * of values.
124654
124654
  */
124655
- var nativeObjectToString$1$1 = objectProto$h$1.toString;
124655
+ var nativeObjectToString$1$1 = objectProto$i$1.toString;
124656
124656
 
124657
124657
  /** Built-in value references. */
124658
124658
  var symToStringTag$1$1 = Symbol$1$1 ? Symbol$1$1.toStringTag : undefined;
@@ -124665,7 +124665,7 @@ var symToStringTag$1$1 = Symbol$1$1 ? Symbol$1$1.toStringTag : undefined;
124665
124665
  * @returns {string} Returns the raw `toStringTag`.
124666
124666
  */
124667
124667
  function getRawTag$1(value) {
124668
- var isOwn = hasOwnProperty$e$1.call(value, symToStringTag$1$1),
124668
+ var isOwn = hasOwnProperty$f$1.call(value, symToStringTag$1$1),
124669
124669
  tag = value[symToStringTag$1$1];
124670
124670
 
124671
124671
  try {
@@ -124685,14 +124685,14 @@ function getRawTag$1(value) {
124685
124685
  }
124686
124686
 
124687
124687
  /** Used for built-in method references. */
124688
- var objectProto$g$1 = Object.prototype;
124688
+ var objectProto$h$1 = Object.prototype;
124689
124689
 
124690
124690
  /**
124691
124691
  * Used to resolve the
124692
124692
  * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
124693
124693
  * of values.
124694
124694
  */
124695
- var nativeObjectToString$2 = objectProto$g$1.toString;
124695
+ var nativeObjectToString$2 = objectProto$h$1.toString;
124696
124696
 
124697
124697
  /**
124698
124698
  * Converts `value` to a string using `Object.prototype.toString`.
@@ -125158,17 +125158,17 @@ var reIsHostCtor$1 = /^\[object .+?Constructor\]$/;
125158
125158
 
125159
125159
  /** Used for built-in method references. */
125160
125160
  var funcProto$1$1 = Function.prototype,
125161
- objectProto$f$1 = Object.prototype;
125161
+ objectProto$g$1 = Object.prototype;
125162
125162
 
125163
125163
  /** Used to resolve the decompiled source of functions. */
125164
125164
  var funcToString$1$1 = funcProto$1$1.toString;
125165
125165
 
125166
125166
  /** Used to check objects for own properties. */
125167
- var hasOwnProperty$d$1 = objectProto$f$1.hasOwnProperty;
125167
+ var hasOwnProperty$e$1 = objectProto$g$1.hasOwnProperty;
125168
125168
 
125169
125169
  /** Used to detect if a method is native. */
125170
125170
  var reIsNative$1 = RegExp('^' +
125171
- funcToString$1$1.call(hasOwnProperty$d$1).replace(reRegExpChar$1, '\\$&')
125171
+ funcToString$1$1.call(hasOwnProperty$e$1).replace(reRegExpChar$1, '\\$&')
125172
125172
  .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
125173
125173
  );
125174
125174
 
@@ -125583,10 +125583,10 @@ function eq$1(value, other) {
125583
125583
  }
125584
125584
 
125585
125585
  /** Used for built-in method references. */
125586
- var objectProto$e$1 = Object.prototype;
125586
+ var objectProto$f$1 = Object.prototype;
125587
125587
 
125588
125588
  /** Used to check objects for own properties. */
125589
- var hasOwnProperty$c$1 = objectProto$e$1.hasOwnProperty;
125589
+ var hasOwnProperty$d$1 = objectProto$f$1.hasOwnProperty;
125590
125590
 
125591
125591
  /**
125592
125592
  * Assigns `value` to `key` of `object` if the existing value is not equivalent
@@ -125600,7 +125600,7 @@ var hasOwnProperty$c$1 = objectProto$e$1.hasOwnProperty;
125600
125600
  */
125601
125601
  function assignValue$1(object, key, value) {
125602
125602
  var objValue = object[key];
125603
- if (!(hasOwnProperty$c$1.call(object, key) && eq$1(objValue, value)) ||
125603
+ if (!(hasOwnProperty$d$1.call(object, key) && eq$1(objValue, value)) ||
125604
125604
  (value === undefined && !(key in object))) {
125605
125605
  baseAssignValue$1(object, key, value);
125606
125606
  }
@@ -125806,7 +125806,7 @@ function createAssigner$1(assigner) {
125806
125806
  }
125807
125807
 
125808
125808
  /** Used for built-in method references. */
125809
- var objectProto$d$1 = Object.prototype;
125809
+ var objectProto$e$1 = Object.prototype;
125810
125810
 
125811
125811
  /**
125812
125812
  * Checks if `value` is likely a prototype object.
@@ -125817,7 +125817,7 @@ var objectProto$d$1 = Object.prototype;
125817
125817
  */
125818
125818
  function isPrototype$1(value) {
125819
125819
  var Ctor = value && value.constructor,
125820
- proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto$d$1;
125820
+ proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto$e$1;
125821
125821
 
125822
125822
  return value === proto;
125823
125823
  }
@@ -125856,13 +125856,13 @@ function baseIsArguments$1(value) {
125856
125856
  }
125857
125857
 
125858
125858
  /** Used for built-in method references. */
125859
- var objectProto$c$1 = Object.prototype;
125859
+ var objectProto$d$1 = Object.prototype;
125860
125860
 
125861
125861
  /** Used to check objects for own properties. */
125862
- var hasOwnProperty$b$1 = objectProto$c$1.hasOwnProperty;
125862
+ var hasOwnProperty$c$1 = objectProto$d$1.hasOwnProperty;
125863
125863
 
125864
125864
  /** Built-in value references. */
125865
- var propertyIsEnumerable$1$1 = objectProto$c$1.propertyIsEnumerable;
125865
+ var propertyIsEnumerable$1$1 = objectProto$d$1.propertyIsEnumerable;
125866
125866
 
125867
125867
  /**
125868
125868
  * Checks if `value` is likely an `arguments` object.
@@ -125883,7 +125883,7 @@ var propertyIsEnumerable$1$1 = objectProto$c$1.propertyIsEnumerable;
125883
125883
  * // => false
125884
125884
  */
125885
125885
  var isArguments$1 = baseIsArguments$1(function() { return arguments; }()) ? baseIsArguments$1 : function(value) {
125886
- return isObjectLike$1(value) && hasOwnProperty$b$1.call(value, 'callee') &&
125886
+ return isObjectLike$1(value) && hasOwnProperty$c$1.call(value, 'callee') &&
125887
125887
  !propertyIsEnumerable$1$1.call(value, 'callee');
125888
125888
  };
125889
125889
 
@@ -126056,10 +126056,10 @@ var nodeIsTypedArray$1 = nodeUtil$1 && nodeUtil$1.isTypedArray;
126056
126056
  var isTypedArray$1 = nodeIsTypedArray$1 ? baseUnary$1(nodeIsTypedArray$1) : baseIsTypedArray$1;
126057
126057
 
126058
126058
  /** Used for built-in method references. */
126059
- var objectProto$b$1 = Object.prototype;
126059
+ var objectProto$c$1 = Object.prototype;
126060
126060
 
126061
126061
  /** Used to check objects for own properties. */
126062
- var hasOwnProperty$a$1 = objectProto$b$1.hasOwnProperty;
126062
+ var hasOwnProperty$b$1 = objectProto$c$1.hasOwnProperty;
126063
126063
 
126064
126064
  /**
126065
126065
  * Creates an array of the enumerable property names of the array-like `value`.
@@ -126079,7 +126079,7 @@ function arrayLikeKeys$1(value, inherited) {
126079
126079
  length = result.length;
126080
126080
 
126081
126081
  for (var key in value) {
126082
- if ((inherited || hasOwnProperty$a$1.call(value, key)) &&
126082
+ if ((inherited || hasOwnProperty$b$1.call(value, key)) &&
126083
126083
  !(skipIndexes && (
126084
126084
  // Safari 9 has enumerable `arguments.length` in strict mode.
126085
126085
  key == 'length' ||
@@ -126114,10 +126114,10 @@ function overArg$1(func, transform) {
126114
126114
  var nativeKeys$1 = overArg$1(Object.keys, Object);
126115
126115
 
126116
126116
  /** Used for built-in method references. */
126117
- var objectProto$a$1 = Object.prototype;
126117
+ var objectProto$b$1 = Object.prototype;
126118
126118
 
126119
126119
  /** Used to check objects for own properties. */
126120
- var hasOwnProperty$9$1 = objectProto$a$1.hasOwnProperty;
126120
+ var hasOwnProperty$a$1 = objectProto$b$1.hasOwnProperty;
126121
126121
 
126122
126122
  /**
126123
126123
  * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
@@ -126132,7 +126132,7 @@ function baseKeys$1(object) {
126132
126132
  }
126133
126133
  var result = [];
126134
126134
  for (var key in Object(object)) {
126135
- if (hasOwnProperty$9$1.call(object, key) && key != 'constructor') {
126135
+ if (hasOwnProperty$a$1.call(object, key) && key != 'constructor') {
126136
126136
  result.push(key);
126137
126137
  }
126138
126138
  }
@@ -126172,10 +126172,10 @@ function keys$1(object) {
126172
126172
  }
126173
126173
 
126174
126174
  /** Used for built-in method references. */
126175
- var objectProto$9$1 = Object.prototype;
126175
+ var objectProto$a$1 = Object.prototype;
126176
126176
 
126177
126177
  /** Used to check objects for own properties. */
126178
- var hasOwnProperty$8$1 = objectProto$9$1.hasOwnProperty;
126178
+ var hasOwnProperty$9$1 = objectProto$a$1.hasOwnProperty;
126179
126179
 
126180
126180
  /**
126181
126181
  * Assigns own enumerable string keyed properties of source objects to the
@@ -126215,7 +126215,7 @@ var assign$1 = createAssigner$1(function(object, source) {
126215
126215
  return;
126216
126216
  }
126217
126217
  for (var key in source) {
126218
- if (hasOwnProperty$8$1.call(source, key)) {
126218
+ if (hasOwnProperty$9$1.call(source, key)) {
126219
126219
  assignValue$1(object, key, source[key]);
126220
126220
  }
126221
126221
  }
@@ -126241,10 +126241,10 @@ function nativeKeysIn$1(object) {
126241
126241
  }
126242
126242
 
126243
126243
  /** Used for built-in method references. */
126244
- var objectProto$8$1 = Object.prototype;
126244
+ var objectProto$9$1 = Object.prototype;
126245
126245
 
126246
126246
  /** Used to check objects for own properties. */
126247
- var hasOwnProperty$7$1 = objectProto$8$1.hasOwnProperty;
126247
+ var hasOwnProperty$8$1 = objectProto$9$1.hasOwnProperty;
126248
126248
 
126249
126249
  /**
126250
126250
  * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.
@@ -126261,7 +126261,7 @@ function baseKeysIn$1(object) {
126261
126261
  result = [];
126262
126262
 
126263
126263
  for (var key in object) {
126264
- if (!(key == 'constructor' && (isProto || !hasOwnProperty$7$1.call(object, key)))) {
126264
+ if (!(key == 'constructor' && (isProto || !hasOwnProperty$8$1.call(object, key)))) {
126265
126265
  result.push(key);
126266
126266
  }
126267
126267
  }
@@ -126355,10 +126355,10 @@ function hashDelete$1(key) {
126355
126355
  var HASH_UNDEFINED$2$1 = '__lodash_hash_undefined__';
126356
126356
 
126357
126357
  /** Used for built-in method references. */
126358
- var objectProto$7$1 = Object.prototype;
126358
+ var objectProto$8$1 = Object.prototype;
126359
126359
 
126360
126360
  /** Used to check objects for own properties. */
126361
- var hasOwnProperty$6$1 = objectProto$7$1.hasOwnProperty;
126361
+ var hasOwnProperty$7$1 = objectProto$8$1.hasOwnProperty;
126362
126362
 
126363
126363
  /**
126364
126364
  * Gets the hash value for `key`.
@@ -126375,14 +126375,14 @@ function hashGet$1(key) {
126375
126375
  var result = data[key];
126376
126376
  return result === HASH_UNDEFINED$2$1 ? undefined : result;
126377
126377
  }
126378
- return hasOwnProperty$6$1.call(data, key) ? data[key] : undefined;
126378
+ return hasOwnProperty$7$1.call(data, key) ? data[key] : undefined;
126379
126379
  }
126380
126380
 
126381
126381
  /** Used for built-in method references. */
126382
- var objectProto$6$1 = Object.prototype;
126382
+ var objectProto$7$1 = Object.prototype;
126383
126383
 
126384
126384
  /** Used to check objects for own properties. */
126385
- var hasOwnProperty$5$1 = objectProto$6$1.hasOwnProperty;
126385
+ var hasOwnProperty$6$1 = objectProto$7$1.hasOwnProperty;
126386
126386
 
126387
126387
  /**
126388
126388
  * Checks if a hash value for `key` exists.
@@ -126395,7 +126395,7 @@ var hasOwnProperty$5$1 = objectProto$6$1.hasOwnProperty;
126395
126395
  */
126396
126396
  function hashHas$1(key) {
126397
126397
  var data = this.__data__;
126398
- return nativeCreate$1 ? (data[key] !== undefined) : hasOwnProperty$5$1.call(data, key);
126398
+ return nativeCreate$1 ? (data[key] !== undefined) : hasOwnProperty$6$1.call(data, key);
126399
126399
  }
126400
126400
 
126401
126401
  /** Used to stand-in for `undefined` hash values. */
@@ -127040,13 +127040,13 @@ var objectTag$3$1 = '[object Object]';
127040
127040
 
127041
127041
  /** Used for built-in method references. */
127042
127042
  var funcProto$3 = Function.prototype,
127043
- objectProto$5$1 = Object.prototype;
127043
+ objectProto$6$1 = Object.prototype;
127044
127044
 
127045
127045
  /** Used to resolve the decompiled source of functions. */
127046
127046
  var funcToString$3 = funcProto$3.toString;
127047
127047
 
127048
127048
  /** Used to check objects for own properties. */
127049
- var hasOwnProperty$4$1 = objectProto$5$1.hasOwnProperty;
127049
+ var hasOwnProperty$5$1 = objectProto$6$1.hasOwnProperty;
127050
127050
 
127051
127051
  /** Used to infer the `Object` constructor. */
127052
127052
  var objectCtorString$1 = funcToString$3.call(Object);
@@ -127087,7 +127087,7 @@ function isPlainObject$1(value) {
127087
127087
  if (proto === null) {
127088
127088
  return true;
127089
127089
  }
127090
- var Ctor = hasOwnProperty$4$1.call(proto, 'constructor') && proto.constructor;
127090
+ var Ctor = hasOwnProperty$5$1.call(proto, 'constructor') && proto.constructor;
127091
127091
  return typeof Ctor == 'function' && Ctor instanceof Ctor &&
127092
127092
  funcToString$3.call(Ctor) == objectCtorString$1;
127093
127093
  }
@@ -127892,10 +127892,10 @@ function stubArray$1() {
127892
127892
  }
127893
127893
 
127894
127894
  /** Used for built-in method references. */
127895
- var objectProto$4$1 = Object.prototype;
127895
+ var objectProto$5$1 = Object.prototype;
127896
127896
 
127897
127897
  /** Built-in value references. */
127898
- var propertyIsEnumerable$2 = objectProto$4$1.propertyIsEnumerable;
127898
+ var propertyIsEnumerable$2 = objectProto$5$1.propertyIsEnumerable;
127899
127899
 
127900
127900
  /* Built-in method references for those with the same name as other `lodash` methods. */
127901
127901
  var nativeGetSymbols$1$1 = Object.getOwnPropertySymbols;
@@ -128058,10 +128058,10 @@ if ((DataView$1$1 && getTag$1(new DataView$1$1(new ArrayBuffer(1))) != dataViewT
128058
128058
  }
128059
128059
 
128060
128060
  /** Used for built-in method references. */
128061
- var objectProto$3$1 = Object.prototype;
128061
+ var objectProto$4$1 = Object.prototype;
128062
128062
 
128063
128063
  /** Used to check objects for own properties. */
128064
- var hasOwnProperty$3$1 = objectProto$3$1.hasOwnProperty;
128064
+ var hasOwnProperty$4$1 = objectProto$4$1.hasOwnProperty;
128065
128065
 
128066
128066
  /**
128067
128067
  * Initializes an array clone.
@@ -128075,7 +128075,7 @@ function initCloneArray$1(array) {
128075
128075
  result = new array.constructor(length);
128076
128076
 
128077
128077
  // Add properties assigned by `RegExp#exec`.
128078
- if (length && typeof array[0] == 'string' && hasOwnProperty$3$1.call(array, 'index')) {
128078
+ if (length && typeof array[0] == 'string' && hasOwnProperty$4$1.call(array, 'index')) {
128079
128079
  result.index = array.index;
128080
128080
  result.input = array.input;
128081
128081
  }
@@ -128536,7 +128536,7 @@ function setCacheAdd$1(value) {
128536
128536
  * @name has
128537
128537
  * @memberOf SetCache
128538
128538
  * @param {*} value The value to search for.
128539
- * @returns {number} Returns `true` if `value` is found, else `false`.
128539
+ * @returns {boolean} Returns `true` if `value` is found, else `false`.
128540
128540
  */
128541
128541
  function setCacheHas$1(value) {
128542
128542
  return this.__data__.has(value);
@@ -128819,10 +128819,10 @@ function equalByTag$1(object, other, tag, bitmask, customizer, equalFunc, stack)
128819
128819
  var COMPARE_PARTIAL_FLAG$3$1 = 1;
128820
128820
 
128821
128821
  /** Used for built-in method references. */
128822
- var objectProto$2$1 = Object.prototype;
128822
+ var objectProto$3$1 = Object.prototype;
128823
128823
 
128824
128824
  /** Used to check objects for own properties. */
128825
- var hasOwnProperty$2$1 = objectProto$2$1.hasOwnProperty;
128825
+ var hasOwnProperty$3$1 = objectProto$3$1.hasOwnProperty;
128826
128826
 
128827
128827
  /**
128828
128828
  * A specialized version of `baseIsEqualDeep` for objects with support for
@@ -128850,7 +128850,7 @@ function equalObjects$1(object, other, bitmask, customizer, equalFunc, stack) {
128850
128850
  var index = objLength;
128851
128851
  while (index--) {
128852
128852
  var key = objProps[index];
128853
- if (!(isPartial ? key in other : hasOwnProperty$2$1.call(other, key))) {
128853
+ if (!(isPartial ? key in other : hasOwnProperty$3$1.call(other, key))) {
128854
128854
  return false;
128855
128855
  }
128856
128856
  }
@@ -128911,10 +128911,10 @@ var argsTag$4 = '[object Arguments]',
128911
128911
  objectTag$5 = '[object Object]';
128912
128912
 
128913
128913
  /** Used for built-in method references. */
128914
- var objectProto$1$1 = Object.prototype;
128914
+ var objectProto$2$1 = Object.prototype;
128915
128915
 
128916
128916
  /** Used to check objects for own properties. */
128917
- var hasOwnProperty$1$1 = objectProto$1$1.hasOwnProperty;
128917
+ var hasOwnProperty$2$1 = objectProto$2$1.hasOwnProperty;
128918
128918
 
128919
128919
  /**
128920
128920
  * A specialized version of `baseIsEqual` for arrays and objects which performs
@@ -128957,8 +128957,8 @@ function baseIsEqualDeep$1(object, other, bitmask, customizer, equalFunc, stack)
128957
128957
  : equalByTag$1(object, other, objTag, bitmask, customizer, equalFunc, stack);
128958
128958
  }
128959
128959
  if (!(bitmask & COMPARE_PARTIAL_FLAG$2$1)) {
128960
- var objIsWrapped = objIsObj && hasOwnProperty$1$1.call(object, '__wrapped__'),
128961
- othIsWrapped = othIsObj && hasOwnProperty$1$1.call(other, '__wrapped__');
128960
+ var objIsWrapped = objIsObj && hasOwnProperty$2$1.call(object, '__wrapped__'),
128961
+ othIsWrapped = othIsObj && hasOwnProperty$2$1.call(other, '__wrapped__');
128962
128962
 
128963
128963
  if (objIsWrapped || othIsWrapped) {
128964
128964
  var objUnwrapped = objIsWrapped ? object.value() : object,
@@ -130372,10 +130372,10 @@ var mapTag$7 = '[object Map]',
130372
130372
  setTag$7 = '[object Set]';
130373
130373
 
130374
130374
  /** Used for built-in method references. */
130375
- var objectProto$i = Object.prototype;
130375
+ var objectProto$1$1 = Object.prototype;
130376
130376
 
130377
130377
  /** Used to check objects for own properties. */
130378
- var hasOwnProperty$f = objectProto$i.hasOwnProperty;
130378
+ var hasOwnProperty$1$1 = objectProto$1$1.hasOwnProperty;
130379
130379
 
130380
130380
  /**
130381
130381
  * Checks if `value` is an empty object, collection, map, or set.
@@ -130427,7 +130427,7 @@ function isEmpty$1(value) {
130427
130427
  return !baseKeys$1(value).length;
130428
130428
  }
130429
130429
  for (var key in value) {
130430
- if (hasOwnProperty$f.call(value, key)) {
130430
+ if (hasOwnProperty$1$1.call(value, key)) {
130431
130431
  return false;
130432
130432
  }
130433
130433
  }
@@ -130651,6 +130651,12 @@ var merge$2 = createAssigner$1(function(object, source, srcIndex) {
130651
130651
  baseMerge$1(object, source, srcIndex);
130652
130652
  });
130653
130653
 
130654
+ /** Used for built-in method references. */
130655
+ var objectProto$j = Object.prototype;
130656
+
130657
+ /** Used to check objects for own properties. */
130658
+ var hasOwnProperty$g = objectProto$j.hasOwnProperty;
130659
+
130654
130660
  /**
130655
130661
  * The base implementation of `_.unset`.
130656
130662
  *
@@ -130661,8 +130667,34 @@ var merge$2 = createAssigner$1(function(object, source, srcIndex) {
130661
130667
  */
130662
130668
  function baseUnset$1(object, path) {
130663
130669
  path = castPath$1(path, object);
130664
- object = parent$1$1(object, path);
130665
- return object == null || delete object[toKey$1(last$2(path))];
130670
+
130671
+ // Prevent prototype pollution:
130672
+ // https://github.com/lodash/lodash/security/advisories/GHSA-xxjr-mmjv-4gpg
130673
+ // https://github.com/lodash/lodash/security/advisories/GHSA-f23m-r3pf-42rh
130674
+ var index = -1,
130675
+ length = path.length;
130676
+
130677
+ if (!length) {
130678
+ return true;
130679
+ }
130680
+
130681
+ while (++index < length) {
130682
+ var key = toKey$1(path[index]);
130683
+
130684
+ // Always block "__proto__" anywhere in the path if it's not expected
130685
+ if (key === '__proto__' && !hasOwnProperty$g.call(object, '__proto__')) {
130686
+ return false;
130687
+ }
130688
+
130689
+ // Block constructor/prototype as non-terminal traversal keys to prevent
130690
+ // escaping the object graph into built-in constructors and prototypes.
130691
+ if ((key === 'constructor' || key === 'prototype') && index < length - 1) {
130692
+ return false;
130693
+ }
130694
+ }
130695
+
130696
+ var obj = parent$1$1(object, path);
130697
+ return obj == null || delete obj[toKey$1(last$2(path))];
130666
130698
  }
130667
130699
 
130668
130700
  /**
@@ -131162,11 +131194,22 @@ function requireConventions$1 () {
131162
131194
  XMLNS: 'http://www.w3.org/2000/xmlns/',
131163
131195
  });
131164
131196
 
131197
+ //[4] NameStartChar ::= ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]
131198
+ //[4a] NameChar ::= NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]
131199
+ //[5] Name ::= NameStartChar (NameChar)*
131200
+ var nameStartChar = /[A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/;//\u10000-\uEFFFF
131201
+ var nameChar = new RegExp("[\\-\\.0-9"+nameStartChar.source.slice(1,-1)+"\\u00B7\\u0300-\\u036F\\u203F-\\u2040]");
131202
+ var tagNamePattern = new RegExp('^'+nameStartChar.source+nameChar.source+'*(?:\:'+nameStartChar.source+nameChar.source+'*)?$');
131203
+ //var tagNamePattern = /^[a-zA-Z_][\w\-\.]*(?:\:[a-zA-Z_][\w\-\.]*)?$/
131204
+
131165
131205
  conventions$1.assign = assign;
131166
131206
  conventions$1.find = find;
131167
131207
  conventions$1.freeze = freeze;
131168
131208
  conventions$1.MIME_TYPE = MIME_TYPE;
131169
131209
  conventions$1.NAMESPACE = NAMESPACE;
131210
+ conventions$1.nameStartChar = nameStartChar;
131211
+ conventions$1.nameChar = nameChar;
131212
+ conventions$1.tagNamePattern = tagNamePattern;
131170
131213
  return conventions$1;
131171
131214
  }
131172
131215
 
@@ -131179,6 +131222,7 @@ function requireDom$1 () {
131179
131222
 
131180
131223
  var find = conventions.find;
131181
131224
  var NAMESPACE = conventions.NAMESPACE;
131225
+ var tagNamePattern = conventions.tagNamePattern;
131182
131226
 
131183
131227
  /**
131184
131228
  * A prerequisite for `[].filter`, to drop elements that are empty
@@ -131410,6 +131454,13 @@ function requireDom$1 () {
131410
131454
  * used for attributes or DocumentType entities
131411
131455
  */
131412
131456
  function NamedNodeMap() {
131457
+ // nodeName -> Attr membership index; lets the parse-time de-duplication in
131458
+ // setNamedItem resolve an existing attribute in O(1) instead of scanning the
131459
+ // list, so building an element with M attributes costs O(M) rather than O(M^2).
131460
+ // The numbered entries and length remain the sole authority for attribute order.
131461
+ // Object.create(null) so an attribute named __proto__ or constructor is an
131462
+ // ordinary key.
131463
+ this._nameIndex = Object.create(null);
131413
131464
  }
131414
131465
  function _findNodeIndex(list,node){
131415
131466
  var i = list.length;
@@ -131418,12 +131469,27 @@ function requireDom$1 () {
131418
131469
  }
131419
131470
  }
131420
131471
 
131472
+ function _nnmIndexAdd(list, attr) {
131473
+ list._nameIndex[attr.nodeName] = attr;
131474
+ }
131475
+ function _nnmIndexRemove(list, attr) {
131476
+ // Only drop the entry if it still points at this attribute; a replacement with
131477
+ // a different nodeName may already have re-keyed it.
131478
+ if (list._nameIndex[attr.nodeName] === attr) {
131479
+ delete list._nameIndex[attr.nodeName];
131480
+ }
131481
+ }
131482
+
131421
131483
  function _addNamedNode(el,list,newAttr,oldAttr){
131422
131484
  if(oldAttr){
131423
131485
  list[_findNodeIndex(list,oldAttr)] = newAttr;
131486
+ // oldAttr leaves the list; drop its index entry (its nodeName may differ
131487
+ // from newAttr's when the replacement came via setNamedItemNS).
131488
+ _nnmIndexRemove(list, oldAttr);
131424
131489
  }else {
131425
131490
  list[list.length++] = newAttr;
131426
131491
  }
131492
+ _nnmIndexAdd(list, newAttr);
131427
131493
  if(el){
131428
131494
  newAttr.ownerElement = el;
131429
131495
  var doc = el.ownerDocument;
@@ -131442,6 +131508,7 @@ function requireDom$1 () {
131442
131508
  list[i] = list[++i];
131443
131509
  }
131444
131510
  list.length = lastIndex;
131511
+ _nnmIndexRemove(list, attr);
131445
131512
  if(el){
131446
131513
  var doc = el.ownerDocument;
131447
131514
  if(doc){
@@ -131475,7 +131542,11 @@ function requireDom$1 () {
131475
131542
  if(el && el!=this._ownerElement){
131476
131543
  throw new DOMException(INUSE_ATTRIBUTE_ERR);
131477
131544
  }
131478
- var oldAttr = this.getNamedItem(attr.nodeName);
131545
+ // Resolve any existing attribute with the same nodeName through the O(1)
131546
+ // membership index rather than an O(M) scan — this is the parse-dedup hot
131547
+ // path (setAttributeNode per attribute during parse). Absent -> undefined,
131548
+ // matching getNamedItem's contract.
131549
+ var oldAttr = this._nameIndex[attr.nodeName];
131479
131550
  _addNamedNode(this._ownerElement,this,attr,oldAttr);
131480
131551
  return oldAttr;
131481
131552
  },
@@ -131708,9 +131779,38 @@ function requireDom$1 () {
131708
131779
  while (child) {
131709
131780
  var next = child.nextSibling;
131710
131781
  if (next !== null && next.nodeType === TEXT_NODE && child.nodeType === TEXT_NODE) {
131711
- node.removeChild(next);
131712
- child.appendData(next.data);
131713
- // Do not advance child: re-check new nextSibling for another text run
131782
+ // Merge the whole run of adjacent text nodes at once: gather the
131783
+ // following text siblings' data, unlink them in a single pass, and
131784
+ // re-index the child list a single time. Per-sibling `removeChild`
131785
+ // (each an O(K) re-index) plus per-sibling `appendData` (each an O(K)
131786
+ // string rebuild) is O(K^2) over a long run of single-character text
131787
+ // nodes; this keeps it O(K). The first text node of the run survives
131788
+ // and carries the concatenated data, preserving node identity and
131789
+ // locator semantics.
131790
+ var tail = [];
131791
+ var sibling = next;
131792
+ while (sibling !== null && sibling.nodeType === TEXT_NODE) {
131793
+ tail.push(sibling.data);
131794
+ sibling = sibling.nextSibling;
131795
+ }
131796
+ // `sibling` is now the first non-text node after the run, or null.
131797
+ var removed = child.nextSibling;
131798
+ while (removed !== sibling) {
131799
+ var following = removed.nextSibling;
131800
+ removed.parentNode = null;
131801
+ removed.previousSibling = null;
131802
+ removed.nextSibling = null;
131803
+ removed = following;
131804
+ }
131805
+ child.nextSibling = sibling;
131806
+ if (sibling !== null) {
131807
+ sibling.previousSibling = child;
131808
+ } else {
131809
+ node.lastChild = child;
131810
+ }
131811
+ child.appendData(tail.join('')); // single O(K) string rebuild
131812
+ _onUpdateChild(node.ownerDocument, node); // single O(K) re-index
131813
+ child = sibling;
131714
131814
  } else {
131715
131815
  child = next;
131716
131816
  }
@@ -132521,8 +132621,10 @@ function requireDom$1 () {
132521
132621
  * - it does not do any input validation on the arguments and doesn't throw "InvalidCharacterError".
132522
132622
  *
132523
132623
  * Note: When the resulting document is serialized with `requireWellFormed: true`, the
132524
- * serializer throws with code `INVALID_STATE_ERR` if `.data` contains `?>` (W3C DOM Parsing
132525
- * §3.2.1.7). Without that option the data is emitted verbatim.
132624
+ * serializer throws with code `INVALID_STATE_ERR` if `.target` is not a valid XML `NCName`
132625
+ * (a `Name` with no colon) or is an ASCII case-insensitive match for `"xml"`, or if `.data`
132626
+ * contains `?>` (W3C DOM Parsing §3.2.1.7). Without that option the target and data are
132627
+ * emitted verbatim.
132526
132628
  *
132527
132629
  * @param {string} target
132528
132630
  * @param {string} data
@@ -132547,7 +132649,27 @@ function requireDom$1 () {
132547
132649
  node.specified = true;
132548
132650
  return node;
132549
132651
  },
132652
+ /**
132653
+ * Creates an EntityReference object, serialized as `&name;`.
132654
+ *
132655
+ * The `name` is validated against the XML `Name` production at creation time; an invalid name
132656
+ * throws a `DOMException` with code `INVALID_CHARACTER_ERR`. When the resulting node is
132657
+ * serialized with `requireWellFormed: true`, the serializer re-validates `nodeName` and throws
132658
+ * a `DOMException` with code `INVALID_STATE_ERR` if a later `nodeName` mutation made it invalid;
132659
+ * without that option the name is emitted verbatim.
132660
+ *
132661
+ * Note: xmldom does not expand entities — the parser resolves entity references inline and never
132662
+ * constructs `EntityReference` nodes, so this method is the only producer.
132663
+ *
132664
+ * @param {string} name The name of the entity to reference.
132665
+ * @returns {EntityReference}
132666
+ * @throws {DOMException} With code `INVALID_CHARACTER_ERR` when `name` is not a valid XML `Name`.
132667
+ * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-392B75AE
132668
+ */
132550
132669
  createEntityReference : function(name){
132670
+ if (!tagNamePattern.test(name)) {
132671
+ throw new DOMException(INVALID_CHARACTER_ERR, 'not a valid xml name "' + name + '"');
132672
+ }
132551
132673
  var node = new EntityReference();
132552
132674
  node.ownerDocument = this;
132553
132675
  node.nodeName = name;
@@ -132759,15 +132881,16 @@ function requireDom$1 () {
132759
132881
  /**
132760
132882
  * Represents a DocumentType node (the `<!DOCTYPE ...>` declaration).
132761
132883
  *
132762
- * `publicId`, `systemId`, and `internalSubset` are plain own-property assignments.
132884
+ * `name`, `publicId`, `systemId`, and `internalSubset` are plain own-property assignments.
132763
132885
  * xmldom does not enforce the `readonly` constraint declared by the WHATWG DOM spec —
132764
132886
  * direct property writes succeed silently. Values are serialized verbatim when
132765
132887
  * `requireWellFormed` is false (the default). When the serializer is invoked with
132766
132888
  * `requireWellFormed: true` (via the 4th-parameter options object), it validates each
132767
- * field and throws `DOMException` with code `INVALID_STATE_ERR` on invalid values.
132889
+ * field — including `name`, which is checked against the XML `Name` production — and throws
132890
+ * `DOMException` with code `INVALID_STATE_ERR` on invalid values.
132768
132891
  *
132769
132892
  * @class
132770
- * @see https://developer.mozilla.org/en-US/docs/Web/API/DocumentType MDN
132893
+ * @see https://developer.mozilla.org/docs/Web/API/DocumentType MDN
132771
132894
  */
132772
132895
  function DocumentType() {
132773
132896
  } DocumentType.prototype.nodeType = DOCUMENT_TYPE_NODE;
@@ -132781,6 +132904,20 @@ function requireDom$1 () {
132781
132904
  } Entity.prototype.nodeType = ENTITY_NODE;
132782
132905
  _extends(Entity,Node);
132783
132906
 
132907
+ /**
132908
+ * Represents an EntityReference node, serialized as `&nodeName;`.
132909
+ *
132910
+ * `nodeName` is the referenced entity's name, stored verbatim. When serialized with
132911
+ * `requireWellFormed: true`, the serializer validates `nodeName` against the XML `Name` production
132912
+ * and throws a `DOMException` with code `INVALID_STATE_ERR` if it does not match; without that
132913
+ * option the name is emitted verbatim between `&` and `;`.
132914
+ *
132915
+ * Note: xmldom does not expand entities — the parser resolves entity references inline and never
132916
+ * constructs `EntityReference` nodes, so the only producer is `Document.createEntityReference`.
132917
+ *
132918
+ * @class
132919
+ * @see https://www.w3.org/TR/xml/#NT-Name
132920
+ */
132784
132921
  function EntityReference() {
132785
132922
  } EntityReference.prototype.nodeType = ENTITY_REFERENCE_NODE;
132786
132923
  _extends(EntityReference,Node);
@@ -132818,14 +132955,20 @@ function requireDom$1 () {
132818
132955
  * @returns {string}
132819
132956
  * @throws {DOMException}
132820
132957
  * With code `INVALID_STATE_ERR` when `requireWellFormed` is `true` and:
132958
+ * - an Element's qualified name (including any namespace prefix) is not a valid XML QName,
132959
+ * - an attribute's qualified name (including a synthesized `xmlns:` namespace declaration) is
132960
+ * not a valid XML QName,
132821
132961
  * - a CDATASection node's data contains `"]]>"`,
132822
132962
  * - a Comment node's data contains `"-->"` (bare `"--"` does not throw on this branch),
132823
- * - a ProcessingInstruction's data contains `"?>"`,
132963
+ * - a ProcessingInstruction's target is not a valid XML `NCName` (a `Name` with no colon) or is
132964
+ * an ASCII case-insensitive match for `"xml"`, or its data contains `"?>"`,
132965
+ * - a DocumentType's `name` is not a valid XML `Name` (XML 1.0 production [5]),
132824
132966
  * - a DocumentType's `publicId` is non-empty and does not match the XML `PubidLiteral`
132825
132967
  * production,
132826
132968
  * - a DocumentType's `systemId` is non-empty and does not match the XML `SystemLiteral`
132827
- * production, or
132828
- * - a DocumentType's `internalSubset` contains `"]>"`.
132969
+ * production,
132970
+ * - a DocumentType's `internalSubset` contains `"]>"`, or
132971
+ * - an EntityReference's `nodeName` is not a valid XML `Name` (XML 1.0 production [5]).
132829
132972
  * Note: xmldom does not enforce `readonly` on DocumentType fields — direct property
132830
132973
  * writes succeed and are covered by the serializer-level checks above.
132831
132974
  * @see https://html.spec.whatwg.org/#dom-xmlserializer-serializetostring
@@ -132899,7 +133042,10 @@ function requireDom$1 () {
132899
133042
  * @see https://www.w3.org/TR/xml11/#AVNormalize
132900
133043
  * @see https://w3c.github.io/DOM-Parsing/#serializing-an-element-s-attributes
132901
133044
  */
132902
- function addSerializedAttribute(buf, qualifiedName, value) {
133045
+ function addSerializedAttribute(buf, qualifiedName, value, requireWellFormed) {
133046
+ if (requireWellFormed && !tagNamePattern.test(qualifiedName)) {
133047
+ throw new DOMException(INVALID_STATE_ERR, 'The attribute name "' + qualifiedName + '" is not a valid XML QName');
133048
+ }
132903
133049
  buf.push(' ', qualifiedName, '="', value.replace(/[<>&"\t\n\r]/g, _xmlEncoder), '"');
132904
133050
  }
132905
133051
 
@@ -132965,6 +133111,9 @@ function requireDom$1 () {
132965
133111
  }
132966
133112
  }
132967
133113
 
133114
+ if (requireWellFormed && !tagNamePattern.test(prefixedNodeName)) {
133115
+ throw new DOMException(INVALID_STATE_ERR, 'The element name "' + prefixedNodeName + '" is not a valid XML QName');
133116
+ }
132968
133117
  buf.push('<', prefixedNodeName);
132969
133118
 
132970
133119
  // Build a fresh namespace snapshot for this element's children.
@@ -132984,7 +133133,7 @@ function requireDom$1 () {
132984
133133
  if (needNamespaceDefine(attr, html, childNs)) {
132985
133134
  var attrPrefix = attr.prefix || '';
132986
133135
  var uri = attr.namespaceURI;
132987
- addSerializedAttribute(buf, attrPrefix ? 'xmlns:' + attrPrefix : 'xmlns', uri);
133136
+ addSerializedAttribute(buf, attrPrefix ? 'xmlns:' + attrPrefix : 'xmlns', uri, requireWellFormed);
132988
133137
  childNs.push({ prefix: attrPrefix, namespace: uri });
132989
133138
  }
132990
133139
  // Apply nodeFilter and serialize the attribute.
@@ -132993,7 +133142,7 @@ function requireDom$1 () {
132993
133142
  if (typeof filteredAttr === 'string') {
132994
133143
  buf.push(filteredAttr);
132995
133144
  } else {
132996
- addSerializedAttribute(buf, filteredAttr.name, filteredAttr.value);
133145
+ addSerializedAttribute(buf, filteredAttr.name, filteredAttr.value, requireWellFormed);
132997
133146
  }
132998
133147
  }
132999
133148
  }
@@ -133002,7 +133151,7 @@ function requireDom$1 () {
133002
133151
  if (nodeName === prefixedNodeName && needNamespaceDefine(n, html, childNs)) {
133003
133152
  var nodePrefix = n.prefix || '';
133004
133153
  var uri = n.namespaceURI;
133005
- addSerializedAttribute(buf, nodePrefix ? 'xmlns:' + nodePrefix : 'xmlns', uri);
133154
+ addSerializedAttribute(buf, nodePrefix ? 'xmlns:' + nodePrefix : 'xmlns', uri, requireWellFormed);
133006
133155
  childNs.push({ prefix: nodePrefix, namespace: uri });
133007
133156
  }
133008
133157
 
@@ -133035,7 +133184,7 @@ function requireDom$1 () {
133035
133184
  return { ns: ns.slice(), isHTML: html, tag: null };
133036
133185
 
133037
133186
  case ATTRIBUTE_NODE:
133038
- addSerializedAttribute(buf, n.name, n.value);
133187
+ addSerializedAttribute(buf, n.name, n.value, requireWellFormed);
133039
133188
  return null;
133040
133189
 
133041
133190
  case TEXT_NODE:
@@ -133074,6 +133223,9 @@ function requireDom$1 () {
133074
133223
 
133075
133224
  case DOCUMENT_TYPE_NODE:
133076
133225
  if (requireWellFormed) {
133226
+ if (!tagNamePattern.test(n.name)) {
133227
+ throw new DOMException(INVALID_STATE_ERR, 'The doctype name "' + n.name + '" is not a valid XML Name');
133228
+ }
133077
133229
  if (n.publicId && !/^("[\x20\r\na-zA-Z0-9\-()+,.\/:=?;!*#@$_%']*"|'[\x20\r\na-zA-Z0-9\-()+,.\/:=?;!*#@$_%'"]*')$/.test(n.publicId)) {
133078
133230
  throw new DOMException(INVALID_STATE_ERR, 'DocumentType publicId is not a valid PubidLiteral');
133079
133231
  }
@@ -133105,13 +133257,27 @@ function requireDom$1 () {
133105
133257
  return null;
133106
133258
 
133107
133259
  case PROCESSING_INSTRUCTION_NODE:
133108
- if (requireWellFormed && n.data.indexOf('?>') !== -1) {
133109
- throw new DOMException(INVALID_STATE_ERR, 'The ProcessingInstruction data contains "?>"');
133260
+ if (requireWellFormed) {
133261
+ if (!tagNamePattern.test(n.target) || n.target.indexOf(':') !== -1 || n.target.toLowerCase() === 'xml') {
133262
+ throw new DOMException(
133263
+ INVALID_STATE_ERR,
133264
+ 'The processing instruction target "' + n.target + '" is not a valid XML NCName or is reserved'
133265
+ );
133266
+ }
133267
+ if (n.data.indexOf('?>') !== -1) {
133268
+ throw new DOMException(INVALID_STATE_ERR, 'The ProcessingInstruction data contains "?>"');
133269
+ }
133110
133270
  }
133111
133271
  buf.push('<?', n.target, ' ', n.data, '?>');
133112
133272
  return null;
133113
133273
 
133114
133274
  case ENTITY_REFERENCE_NODE:
133275
+ if (requireWellFormed && !tagNamePattern.test(n.nodeName)) {
133276
+ throw new DOMException(
133277
+ INVALID_STATE_ERR,
133278
+ 'The entity reference name "' + n.nodeName + '" is not a valid XML Name'
133279
+ );
133280
+ }
133115
133281
  buf.push('&', n.nodeName, ';');
133116
133282
  return null;
133117
133283
 
@@ -135492,14 +135658,8 @@ function requireSax$1 () {
135492
135658
  if (hasRequiredSax$1) return sax$1;
135493
135659
  hasRequiredSax$1 = 1;
135494
135660
  var NAMESPACE = requireConventions$1().NAMESPACE;
135661
+ var tagNamePattern = requireConventions$1().tagNamePattern;
135495
135662
 
135496
- //[4] NameStartChar ::= ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]
135497
- //[4a] NameChar ::= NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]
135498
- //[5] Name ::= NameStartChar (NameChar)*
135499
- var nameStartChar = /[A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/;//\u10000-\uEFFFF
135500
- var nameChar = new RegExp("[\\-\\.0-9"+nameStartChar.source.slice(1,-1)+"\\u00B7\\u0300-\\u036F\\u203F-\\u2040]");
135501
- var tagNamePattern = new RegExp('^'+nameStartChar.source+nameChar.source+'*(?:\:'+nameStartChar.source+nameChar.source+'*)?$');
135502
- //var tagNamePattern = /^[a-zA-Z_][\w\-\.]*(?:\:[a-zA-Z_][\w\-\.]*)?$/
135503
135663
  //var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',')
135504
135664
 
135505
135665
  //S_TAG, S_ATTR, S_EQ, S_ATTR_NOQUOT_VALUE
@@ -135610,7 +135770,13 @@ function requireSax$1 () {
135610
135770
  switch(source.charAt(tagStart+1)){
135611
135771
  case '/':
135612
135772
  var end = source.indexOf('>',tagStart+3);
135613
- var tagName = source.substring(tagStart + 2, end).replace(/[ \t\n\r]+$/g, '');
135773
+ // Anchored trailing-whitespace trim. The former `/[ \t\n\r]+$/g` backtracked
135774
+ // quadratically on a name shaped `whitespace-run + non-whitespace char`
135775
+ // (an end tag `</ … x>`): from every start position it extended `[ws]+`
135776
+ // to the end and then failed the `$` anchor. This anchored form matches the
135777
+ // whole string once and captures everything up to the last non-whitespace
135778
+ // character, so it trims in linear time with byte-identical output.
135779
+ var tagName = source.substring(tagStart + 2, end).replace(/^([\s\S]*?[^ \t\n\r])?[ \t\n\r]*$/, '$1');
135614
135780
  var config = parseStack.pop();
135615
135781
  if(end<0){
135616
135782
 
@@ -135621,6 +135787,14 @@ function requireSax$1 () {
135621
135787
  tagName = tagName.replace(/[\s<].*/,'');
135622
135788
  errorHandler.error("end tag name: "+tagName+' maybe not complete');
135623
135789
  end = tagStart+1+tagName.length;
135790
+ }else if(/[ \t\n\r]/.test(tagName) && tagNamePattern.test(tagName.split(/[ \t\n\r]/)[0])){
135791
+ // The XML `ETag` production is `'</' Name S? '>'`: only optional whitespace may follow
135792
+ // the `Name`. A valid `Name` followed by whitespace and non-whitespace residue (e.g.
135793
+ // `</a\nbogus>` or `</a bogus>`) is not well-formed, but historically it was silently
135794
+ // accepted (the malformed end tag ignored, the residue dropped, the element left on the
135795
+ // stack). Report it as a recoverable `error` (which a custom errorHandler may escalate to
135796
+ // fatal) while keeping the existing recovery so the parsed DOM stays byte-identical.
135797
+ errorHandler.error('end tag name is followed by whitespace and trailing content: "'+tagName+'"');
135624
135798
  }
135625
135799
  var localNSMap = config.localNSMap;
135626
135800
  var endMatch = config.tagName == tagName;
@@ -135744,6 +135918,15 @@ function requireSax$1 () {
135744
135918
  var s = S_TAG;//status
135745
135919
  while(true){
135746
135920
  var c = source.charAt(p);
135921
+ if (s === S_TAG && c === '<') {
135922
+ // A `<` can never occur inside a tag name. Without this guard the scan runs
135923
+ // on to the next `>` (or EOF) before the tag name is rejected, so a document
135924
+ // with many `<` inside a malformed tag makes each one-character recovery step
135925
+ // re-scan to the distant `>` — O(n^2). Stopping at the `<` keeps each recovery
135926
+ // step bounded. The candidate scanned so far is reported raw, consistent with
135927
+ // the sibling invalid-tag-name throw below.
135928
+ throw new Error('unexpected < in tag name: ' + source.slice(start, p));
135929
+ }
135747
135930
  switch(c){
135748
135931
  case '=':
135749
135932
  if(s === S_ATTR){//attrName
@@ -135936,9 +136119,13 @@ function requireSax$1 () {
135936
136119
  if(nsPrefix !== false){//hack!!
135937
136120
  if(localNSMap == null){
135938
136121
  localNSMap = {};
135939
- //console.log(currentNSMap,0)
135940
- _copy(currentNSMap,currentNSMap={});
135941
- //console.log(currentNSMap,1)
136122
+ // Derive the child scope's namespace map by prototype-chain inheritance
136123
+ // instead of a flat copy: lookups inherit ancestor prefixes transparently,
136124
+ // so a document nesting N scopes retains O(N) map entries rather than
136125
+ // sum(1..N) = O(N^2). localNSMap stays a flat own-only record of the
136126
+ // prefixes declared at THIS element, so own-property enumeration
136127
+ // (endPrefixMapping below) still reports only local declarations.
136128
+ currentNSMap = Object.create(currentNSMap);
135942
136129
  }
135943
136130
  currentNSMap[nsPrefix] = localNSMap[nsPrefix] = value;
135944
136131
  a.uri = NAMESPACE.XMLNS;
@@ -148116,13 +148303,13 @@ const FIRST_TIME_WATCH$1 = {};
148116
148303
  Object.freeze(FIRST_TIME_WATCH$1);
148117
148304
  const arrayConsumer$1 = (listenerFn, restExpr, newVal, oldVal) => {
148118
148305
  let data = newVal, formattedData;
148119
- if (isArray$1(data)) {
148306
+ if (_.isArray(data)) {
148120
148307
  formattedData = data.map(function (datum) {
148121
148308
  return findValueOf$1(datum, restExpr);
148122
148309
  });
148123
148310
  // If resulting structure is an array of array, flatten it
148124
- if (isArray$1(formattedData[0])) {
148125
- formattedData = flatten$2(formattedData);
148311
+ if (_.isArray(formattedData[0])) {
148312
+ formattedData = _.flatten(formattedData);
148126
148313
  }
148127
148314
  listenerFn(formattedData, oldVal);
148128
148315
  }
@@ -148167,6 +148354,19 @@ const $watch$1 = (expr, $scope, $locals, listener, identifier = watchIdGenerator
148167
148354
  };
148168
148355
  const $unwatch$1 = identifier => registry$1.delete(identifier);
148169
148356
  window.watchRegistry = registry$1;
148357
+ window.__WM_DEBUG_WATCHERS__ = false;
148358
+ /*export const $invokeWatchers = (force?: boolean, ignoreMuted?: boolean) => {
148359
+ if (force) {
148360
+ triggerWatchers(ignoreMuted);
148361
+ } else {
148362
+
148363
+ if (skipWatchers) {
148364
+ skipWatchers = false;
148365
+ return;
148366
+ }
148367
+ debouncedTriggerWatchers();
148368
+ }
148369
+ };*/
148170
148370
  const $appDigest$1 = (() => {
148171
148371
  return (force) => {
148172
148372
  {
@@ -148229,8 +148429,8 @@ var Operation$1;
148229
148429
  const DataSource$1 = {
148230
148430
  Operation: Operation$1
148231
148431
  };
148232
- class App {
148233
- }
148432
+ let App$1 = class App {
148433
+ };
148234
148434
  let AbstractI18nService$1 = class AbstractI18nService {
148235
148435
  };
148236
148436
 
@@ -148248,6 +148448,7 @@ const REGEX$1 = {
148248
148448
  SUPPORTED_AUDIO_FORMAT: /\.(mp3|ogg|webm|wma|3gp|wav|m4a)$/i,
148249
148449
  SUPPORTED_VIDEO_FORMAT: /\.(mp4|ogg|webm|wmv|mpeg|mpg|avi|mov)$/i,
148250
148450
  VALID_WEB_URL: /^(http[s]?:\/\/)(www\.){0,1}[a-zA-Z0-9=:?\/\.\-]+(\.[a-zA-Z]{2,5}[\.]{0,1})?/,
148451
+ VALID_IMAGE_URL: /^(https?|blob|data|file|ftp):/i,
148251
148452
  REPLACE_PATTERN: /\$\{([^\}]+)\}/g,
148252
148453
  DATA_URL: /^\s*data:([a-z]+\/[a-z0-9-+.]+(;[a-z-]+=[a-z0-9-]+)?)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s]*)\s*$/i,
148253
148454
  ISO_DATE_FORMAT: /(\d{4}-\d{2}-\d{2})T(\d{2}:\d{2}:\d{2})(\.\d+)?([+-]\d{2}:?\d{2}|Z)$/
@@ -148470,6 +148671,9 @@ const isVideoFile$1 = (fileName) => {
148470
148671
  const isValidWebURL$1 = (url) => {
148471
148672
  return (REGEX$1.VALID_WEB_URL).test(url);
148472
148673
  };
148674
+ const isValidImageUrl$1 = (url) => {
148675
+ return (REGEX$1.VALID_IMAGE_URL).test(url?.trim());
148676
+ };
148473
148677
  /*This function returns the url to the resource after checking the validity of url*/
148474
148678
  const getResourceURL$1 = (urlString) => {
148475
148679
  return urlString;
@@ -149723,6 +149927,7 @@ var Utils$1 = /*#__PURE__*/Object.freeze({
149723
149927
  isPageable: isPageable$1,
149724
149928
  isSafari: isSafari$1,
149725
149929
  isTablet: isTablet$1,
149930
+ isValidImageUrl: isValidImageUrl$1,
149726
149931
  isValidWebURL: isValidWebURL$1,
149727
149932
  isVideoFile: isVideoFile$1,
149728
149933
  loadScript: loadScript$1,
@@ -150957,14 +151162,14 @@ class ToDatePipe extends WmPipe {
150957
151162
  }
150958
151163
  return this.returnFn('', arguments, this.app.Variables);
150959
151164
  }
150960
- constructor(datePipe, i18nService, customPipeManager) {
151165
+ constructor(datePipe, i18nService, app, customPipeManager) {
150961
151166
  super('toDate', customPipeManager);
150962
151167
  this.datePipe = datePipe;
150963
151168
  this.i18nService = i18nService;
151169
+ this.app = app;
150964
151170
  this.customPipeManager = customPipeManager;
150965
- this.app = inject(App);
150966
151171
  }
150967
- static { this.ɵfac = function ToDatePipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ToDatePipe)(ɵɵdirectiveInject(DatePipe, 16), ɵɵdirectiveInject(AbstractI18nService$1, 16), ɵɵdirectiveInject(CustomPipeManager$1, 16)); }; }
151172
+ static { this.ɵfac = function ToDatePipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ToDatePipe)(ɵɵdirectiveInject(DatePipe, 16), ɵɵdirectiveInject(AbstractI18nService$1, 16), ɵɵdirectiveInject(App$1, 16), ɵɵdirectiveInject(CustomPipeManager$1, 16)); }; }
150968
151173
  static { this.ɵpipe = /*@__PURE__*/ ɵɵdefinePipe({ name: "toDate", type: ToDatePipe, pure: true, standalone: true }); }
150969
151174
  }
150970
151175
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ToDatePipe, [{
@@ -150973,7 +151178,7 @@ class ToDatePipe extends WmPipe {
150973
151178
  standalone: true,
150974
151179
  name: 'toDate'
150975
151180
  }]
150976
- }], () => [{ type: DatePipe }, { type: AbstractI18nService$1 }, { type: CustomPipeManager$1 }], null); })();
151181
+ }], () => [{ type: DatePipe }, { type: AbstractI18nService$1 }, { type: App$1 }, { type: CustomPipeManager$1 }], null); })();
150977
151182
  class ToNumberPipe {
150978
151183
  transform(data, fracSize) {
150979
151184
  if (fracSize && !String(fracSize).match(/^(\d+)?\.((\d+)(-(\d+))?)?$/)) {
@@ -151061,9 +151266,9 @@ class SuffixPipe {
151061
151266
  * Custom pipe: It is work as interceptor between the user custom pipe function and angular pipe
151062
151267
  */
151063
151268
  class CustomPipe {
151064
- constructor(custmeUserPipe) {
151269
+ constructor(app, custmeUserPipe) {
151270
+ this.app = app;
151065
151271
  this.custmeUserPipe = custmeUserPipe;
151066
- this.app = inject(App);
151067
151272
  }
151068
151273
  transform(data, pipename) {
151069
151274
  let argumentArr = [];
@@ -151083,7 +151288,7 @@ class CustomPipe {
151083
151288
  return data;
151084
151289
  }
151085
151290
  }
151086
- static { this.ɵfac = function CustomPipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CustomPipe)(ɵɵdirectiveInject(CustomPipeManager$1, 16)); }; }
151291
+ static { this.ɵfac = function CustomPipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CustomPipe)(ɵɵdirectiveInject(App$1, 16), ɵɵdirectiveInject(CustomPipeManager$1, 16)); }; }
151087
151292
  static { this.ɵpipe = /*@__PURE__*/ ɵɵdefinePipe({ name: "custom", type: CustomPipe, pure: true, standalone: true }); }
151088
151293
  }
151089
151294
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CustomPipe, [{
@@ -151092,7 +151297,7 @@ class CustomPipe {
151092
151297
  standalone: true,
151093
151298
  name: 'custom'
151094
151299
  }]
151095
- }], () => [{ type: CustomPipeManager$1 }], null); })();
151300
+ }], () => [{ type: App$1 }, { type: CustomPipeManager$1 }], null); })();
151096
151301
  class TimeFromNowPipe {
151097
151302
  transform(data) {
151098
151303
  let timestamp;
@@ -181582,17 +181787,17 @@ var root = freeGlobal || freeSelf || Function('return this')();
181582
181787
  var Symbol$1 = root.Symbol;
181583
181788
 
181584
181789
  /** Used for built-in method references. */
181585
- var objectProto$h = Object.prototype;
181790
+ var objectProto$i = Object.prototype;
181586
181791
 
181587
181792
  /** Used to check objects for own properties. */
181588
- var hasOwnProperty$e = objectProto$h.hasOwnProperty;
181793
+ var hasOwnProperty$f = objectProto$i.hasOwnProperty;
181589
181794
 
181590
181795
  /**
181591
181796
  * Used to resolve the
181592
181797
  * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
181593
181798
  * of values.
181594
181799
  */
181595
- var nativeObjectToString$1 = objectProto$h.toString;
181800
+ var nativeObjectToString$1 = objectProto$i.toString;
181596
181801
 
181597
181802
  /** Built-in value references. */
181598
181803
  var symToStringTag$1 = Symbol$1 ? Symbol$1.toStringTag : undefined;
@@ -181605,7 +181810,7 @@ var symToStringTag$1 = Symbol$1 ? Symbol$1.toStringTag : undefined;
181605
181810
  * @returns {string} Returns the raw `toStringTag`.
181606
181811
  */
181607
181812
  function getRawTag(value) {
181608
- var isOwn = hasOwnProperty$e.call(value, symToStringTag$1),
181813
+ var isOwn = hasOwnProperty$f.call(value, symToStringTag$1),
181609
181814
  tag = value[symToStringTag$1];
181610
181815
 
181611
181816
  try {
@@ -181625,14 +181830,14 @@ function getRawTag(value) {
181625
181830
  }
181626
181831
 
181627
181832
  /** Used for built-in method references. */
181628
- var objectProto$g = Object.prototype;
181833
+ var objectProto$h = Object.prototype;
181629
181834
 
181630
181835
  /**
181631
181836
  * Used to resolve the
181632
181837
  * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
181633
181838
  * of values.
181634
181839
  */
181635
- var nativeObjectToString = objectProto$g.toString;
181840
+ var nativeObjectToString = objectProto$h.toString;
181636
181841
 
181637
181842
  /**
181638
181843
  * Converts `value` to a string using `Object.prototype.toString`.
@@ -182098,17 +182303,17 @@ var reIsHostCtor = /^\[object .+?Constructor\]$/;
182098
182303
 
182099
182304
  /** Used for built-in method references. */
182100
182305
  var funcProto$1 = Function.prototype,
182101
- objectProto$f = Object.prototype;
182306
+ objectProto$g = Object.prototype;
182102
182307
 
182103
182308
  /** Used to resolve the decompiled source of functions. */
182104
182309
  var funcToString$1 = funcProto$1.toString;
182105
182310
 
182106
182311
  /** Used to check objects for own properties. */
182107
- var hasOwnProperty$d = objectProto$f.hasOwnProperty;
182312
+ var hasOwnProperty$e = objectProto$g.hasOwnProperty;
182108
182313
 
182109
182314
  /** Used to detect if a method is native. */
182110
182315
  var reIsNative = RegExp('^' +
182111
- funcToString$1.call(hasOwnProperty$d).replace(reRegExpChar, '\\$&')
182316
+ funcToString$1.call(hasOwnProperty$e).replace(reRegExpChar, '\\$&')
182112
182317
  .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
182113
182318
  );
182114
182319
 
@@ -182523,10 +182728,10 @@ function eq(value, other) {
182523
182728
  }
182524
182729
 
182525
182730
  /** Used for built-in method references. */
182526
- var objectProto$e = Object.prototype;
182731
+ var objectProto$f = Object.prototype;
182527
182732
 
182528
182733
  /** Used to check objects for own properties. */
182529
- var hasOwnProperty$c = objectProto$e.hasOwnProperty;
182734
+ var hasOwnProperty$d = objectProto$f.hasOwnProperty;
182530
182735
 
182531
182736
  /**
182532
182737
  * Assigns `value` to `key` of `object` if the existing value is not equivalent
@@ -182540,7 +182745,7 @@ var hasOwnProperty$c = objectProto$e.hasOwnProperty;
182540
182745
  */
182541
182746
  function assignValue(object, key, value) {
182542
182747
  var objValue = object[key];
182543
- if (!(hasOwnProperty$c.call(object, key) && eq(objValue, value)) ||
182748
+ if (!(hasOwnProperty$d.call(object, key) && eq(objValue, value)) ||
182544
182749
  (value === undefined && !(key in object))) {
182545
182750
  baseAssignValue(object, key, value);
182546
182751
  }
@@ -182746,7 +182951,7 @@ function createAssigner(assigner) {
182746
182951
  }
182747
182952
 
182748
182953
  /** Used for built-in method references. */
182749
- var objectProto$d = Object.prototype;
182954
+ var objectProto$e = Object.prototype;
182750
182955
 
182751
182956
  /**
182752
182957
  * Checks if `value` is likely a prototype object.
@@ -182757,7 +182962,7 @@ var objectProto$d = Object.prototype;
182757
182962
  */
182758
182963
  function isPrototype(value) {
182759
182964
  var Ctor = value && value.constructor,
182760
- proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto$d;
182965
+ proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto$e;
182761
182966
 
182762
182967
  return value === proto;
182763
182968
  }
@@ -182796,13 +183001,13 @@ function baseIsArguments(value) {
182796
183001
  }
182797
183002
 
182798
183003
  /** Used for built-in method references. */
182799
- var objectProto$c = Object.prototype;
183004
+ var objectProto$d = Object.prototype;
182800
183005
 
182801
183006
  /** Used to check objects for own properties. */
182802
- var hasOwnProperty$b = objectProto$c.hasOwnProperty;
183007
+ var hasOwnProperty$c = objectProto$d.hasOwnProperty;
182803
183008
 
182804
183009
  /** Built-in value references. */
182805
- var propertyIsEnumerable$1 = objectProto$c.propertyIsEnumerable;
183010
+ var propertyIsEnumerable$1 = objectProto$d.propertyIsEnumerable;
182806
183011
 
182807
183012
  /**
182808
183013
  * Checks if `value` is likely an `arguments` object.
@@ -182823,7 +183028,7 @@ var propertyIsEnumerable$1 = objectProto$c.propertyIsEnumerable;
182823
183028
  * // => false
182824
183029
  */
182825
183030
  var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {
182826
- return isObjectLike(value) && hasOwnProperty$b.call(value, 'callee') &&
183031
+ return isObjectLike(value) && hasOwnProperty$c.call(value, 'callee') &&
182827
183032
  !propertyIsEnumerable$1.call(value, 'callee');
182828
183033
  };
182829
183034
 
@@ -182996,10 +183201,10 @@ var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
182996
183201
  var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
182997
183202
 
182998
183203
  /** Used for built-in method references. */
182999
- var objectProto$b = Object.prototype;
183204
+ var objectProto$c = Object.prototype;
183000
183205
 
183001
183206
  /** Used to check objects for own properties. */
183002
- var hasOwnProperty$a = objectProto$b.hasOwnProperty;
183207
+ var hasOwnProperty$b = objectProto$c.hasOwnProperty;
183003
183208
 
183004
183209
  /**
183005
183210
  * Creates an array of the enumerable property names of the array-like `value`.
@@ -183019,7 +183224,7 @@ function arrayLikeKeys(value, inherited) {
183019
183224
  length = result.length;
183020
183225
 
183021
183226
  for (var key in value) {
183022
- if ((inherited || hasOwnProperty$a.call(value, key)) &&
183227
+ if ((inherited || hasOwnProperty$b.call(value, key)) &&
183023
183228
  !(skipIndexes && (
183024
183229
  // Safari 9 has enumerable `arguments.length` in strict mode.
183025
183230
  key == 'length' ||
@@ -183054,10 +183259,10 @@ function overArg(func, transform) {
183054
183259
  var nativeKeys = overArg(Object.keys, Object);
183055
183260
 
183056
183261
  /** Used for built-in method references. */
183057
- var objectProto$a = Object.prototype;
183262
+ var objectProto$b = Object.prototype;
183058
183263
 
183059
183264
  /** Used to check objects for own properties. */
183060
- var hasOwnProperty$9 = objectProto$a.hasOwnProperty;
183265
+ var hasOwnProperty$a = objectProto$b.hasOwnProperty;
183061
183266
 
183062
183267
  /**
183063
183268
  * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
@@ -183072,7 +183277,7 @@ function baseKeys(object) {
183072
183277
  }
183073
183278
  var result = [];
183074
183279
  for (var key in Object(object)) {
183075
- if (hasOwnProperty$9.call(object, key) && key != 'constructor') {
183280
+ if (hasOwnProperty$a.call(object, key) && key != 'constructor') {
183076
183281
  result.push(key);
183077
183282
  }
183078
183283
  }
@@ -183112,10 +183317,10 @@ function keys(object) {
183112
183317
  }
183113
183318
 
183114
183319
  /** Used for built-in method references. */
183115
- var objectProto$9 = Object.prototype;
183320
+ var objectProto$a = Object.prototype;
183116
183321
 
183117
183322
  /** Used to check objects for own properties. */
183118
- var hasOwnProperty$8 = objectProto$9.hasOwnProperty;
183323
+ var hasOwnProperty$9 = objectProto$a.hasOwnProperty;
183119
183324
 
183120
183325
  /**
183121
183326
  * Assigns own enumerable string keyed properties of source objects to the
@@ -183155,7 +183360,7 @@ var assign = createAssigner(function(object, source) {
183155
183360
  return;
183156
183361
  }
183157
183362
  for (var key in source) {
183158
- if (hasOwnProperty$8.call(source, key)) {
183363
+ if (hasOwnProperty$9.call(source, key)) {
183159
183364
  assignValue(object, key, source[key]);
183160
183365
  }
183161
183366
  }
@@ -183181,10 +183386,10 @@ function nativeKeysIn(object) {
183181
183386
  }
183182
183387
 
183183
183388
  /** Used for built-in method references. */
183184
- var objectProto$8 = Object.prototype;
183389
+ var objectProto$9 = Object.prototype;
183185
183390
 
183186
183391
  /** Used to check objects for own properties. */
183187
- var hasOwnProperty$7 = objectProto$8.hasOwnProperty;
183392
+ var hasOwnProperty$8 = objectProto$9.hasOwnProperty;
183188
183393
 
183189
183394
  /**
183190
183395
  * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.
@@ -183201,7 +183406,7 @@ function baseKeysIn(object) {
183201
183406
  result = [];
183202
183407
 
183203
183408
  for (var key in object) {
183204
- if (!(key == 'constructor' && (isProto || !hasOwnProperty$7.call(object, key)))) {
183409
+ if (!(key == 'constructor' && (isProto || !hasOwnProperty$8.call(object, key)))) {
183205
183410
  result.push(key);
183206
183411
  }
183207
183412
  }
@@ -183295,10 +183500,10 @@ function hashDelete(key) {
183295
183500
  var HASH_UNDEFINED$2 = '__lodash_hash_undefined__';
183296
183501
 
183297
183502
  /** Used for built-in method references. */
183298
- var objectProto$7 = Object.prototype;
183503
+ var objectProto$8 = Object.prototype;
183299
183504
 
183300
183505
  /** Used to check objects for own properties. */
183301
- var hasOwnProperty$6 = objectProto$7.hasOwnProperty;
183506
+ var hasOwnProperty$7 = objectProto$8.hasOwnProperty;
183302
183507
 
183303
183508
  /**
183304
183509
  * Gets the hash value for `key`.
@@ -183315,14 +183520,14 @@ function hashGet(key) {
183315
183520
  var result = data[key];
183316
183521
  return result === HASH_UNDEFINED$2 ? undefined : result;
183317
183522
  }
183318
- return hasOwnProperty$6.call(data, key) ? data[key] : undefined;
183523
+ return hasOwnProperty$7.call(data, key) ? data[key] : undefined;
183319
183524
  }
183320
183525
 
183321
183526
  /** Used for built-in method references. */
183322
- var objectProto$6 = Object.prototype;
183527
+ var objectProto$7 = Object.prototype;
183323
183528
 
183324
183529
  /** Used to check objects for own properties. */
183325
- var hasOwnProperty$5 = objectProto$6.hasOwnProperty;
183530
+ var hasOwnProperty$6 = objectProto$7.hasOwnProperty;
183326
183531
 
183327
183532
  /**
183328
183533
  * Checks if a hash value for `key` exists.
@@ -183335,7 +183540,7 @@ var hasOwnProperty$5 = objectProto$6.hasOwnProperty;
183335
183540
  */
183336
183541
  function hashHas(key) {
183337
183542
  var data = this.__data__;
183338
- return nativeCreate ? (data[key] !== undefined) : hasOwnProperty$5.call(data, key);
183543
+ return nativeCreate ? (data[key] !== undefined) : hasOwnProperty$6.call(data, key);
183339
183544
  }
183340
183545
 
183341
183546
  /** Used to stand-in for `undefined` hash values. */
@@ -183980,13 +184185,13 @@ var objectTag$3 = '[object Object]';
183980
184185
 
183981
184186
  /** Used for built-in method references. */
183982
184187
  var funcProto = Function.prototype,
183983
- objectProto$5 = Object.prototype;
184188
+ objectProto$6 = Object.prototype;
183984
184189
 
183985
184190
  /** Used to resolve the decompiled source of functions. */
183986
184191
  var funcToString = funcProto.toString;
183987
184192
 
183988
184193
  /** Used to check objects for own properties. */
183989
- var hasOwnProperty$4 = objectProto$5.hasOwnProperty;
184194
+ var hasOwnProperty$5 = objectProto$6.hasOwnProperty;
183990
184195
 
183991
184196
  /** Used to infer the `Object` constructor. */
183992
184197
  var objectCtorString = funcToString.call(Object);
@@ -184027,7 +184232,7 @@ function isPlainObject(value) {
184027
184232
  if (proto === null) {
184028
184233
  return true;
184029
184234
  }
184030
- var Ctor = hasOwnProperty$4.call(proto, 'constructor') && proto.constructor;
184235
+ var Ctor = hasOwnProperty$5.call(proto, 'constructor') && proto.constructor;
184031
184236
  return typeof Ctor == 'function' && Ctor instanceof Ctor &&
184032
184237
  funcToString.call(Ctor) == objectCtorString;
184033
184238
  }
@@ -184832,10 +185037,10 @@ function stubArray() {
184832
185037
  }
184833
185038
 
184834
185039
  /** Used for built-in method references. */
184835
- var objectProto$4 = Object.prototype;
185040
+ var objectProto$5 = Object.prototype;
184836
185041
 
184837
185042
  /** Built-in value references. */
184838
- var propertyIsEnumerable = objectProto$4.propertyIsEnumerable;
185043
+ var propertyIsEnumerable = objectProto$5.propertyIsEnumerable;
184839
185044
 
184840
185045
  /* Built-in method references for those with the same name as other `lodash` methods. */
184841
185046
  var nativeGetSymbols$1 = Object.getOwnPropertySymbols;
@@ -184998,10 +185203,10 @@ if ((DataView$1 && getTag(new DataView$1(new ArrayBuffer(1))) != dataViewTag$3)
184998
185203
  }
184999
185204
 
185000
185205
  /** Used for built-in method references. */
185001
- var objectProto$3 = Object.prototype;
185206
+ var objectProto$4 = Object.prototype;
185002
185207
 
185003
185208
  /** Used to check objects for own properties. */
185004
- var hasOwnProperty$3 = objectProto$3.hasOwnProperty;
185209
+ var hasOwnProperty$4 = objectProto$4.hasOwnProperty;
185005
185210
 
185006
185211
  /**
185007
185212
  * Initializes an array clone.
@@ -185015,7 +185220,7 @@ function initCloneArray(array) {
185015
185220
  result = new array.constructor(length);
185016
185221
 
185017
185222
  // Add properties assigned by `RegExp#exec`.
185018
- if (length && typeof array[0] == 'string' && hasOwnProperty$3.call(array, 'index')) {
185223
+ if (length && typeof array[0] == 'string' && hasOwnProperty$4.call(array, 'index')) {
185019
185224
  result.index = array.index;
185020
185225
  result.input = array.input;
185021
185226
  }
@@ -185476,7 +185681,7 @@ function setCacheAdd(value) {
185476
185681
  * @name has
185477
185682
  * @memberOf SetCache
185478
185683
  * @param {*} value The value to search for.
185479
- * @returns {number} Returns `true` if `value` is found, else `false`.
185684
+ * @returns {boolean} Returns `true` if `value` is found, else `false`.
185480
185685
  */
185481
185686
  function setCacheHas(value) {
185482
185687
  return this.__data__.has(value);
@@ -185759,10 +185964,10 @@ function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {
185759
185964
  var COMPARE_PARTIAL_FLAG$3 = 1;
185760
185965
 
185761
185966
  /** Used for built-in method references. */
185762
- var objectProto$2 = Object.prototype;
185967
+ var objectProto$3 = Object.prototype;
185763
185968
 
185764
185969
  /** Used to check objects for own properties. */
185765
- var hasOwnProperty$2 = objectProto$2.hasOwnProperty;
185970
+ var hasOwnProperty$3 = objectProto$3.hasOwnProperty;
185766
185971
 
185767
185972
  /**
185768
185973
  * A specialized version of `baseIsEqualDeep` for objects with support for
@@ -185790,7 +185995,7 @@ function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
185790
185995
  var index = objLength;
185791
185996
  while (index--) {
185792
185997
  var key = objProps[index];
185793
- if (!(isPartial ? key in other : hasOwnProperty$2.call(other, key))) {
185998
+ if (!(isPartial ? key in other : hasOwnProperty$3.call(other, key))) {
185794
185999
  return false;
185795
186000
  }
185796
186001
  }
@@ -185851,10 +186056,10 @@ var argsTag = '[object Arguments]',
185851
186056
  objectTag = '[object Object]';
185852
186057
 
185853
186058
  /** Used for built-in method references. */
185854
- var objectProto$1 = Object.prototype;
186059
+ var objectProto$2 = Object.prototype;
185855
186060
 
185856
186061
  /** Used to check objects for own properties. */
185857
- var hasOwnProperty$1 = objectProto$1.hasOwnProperty;
186062
+ var hasOwnProperty$2 = objectProto$2.hasOwnProperty;
185858
186063
 
185859
186064
  /**
185860
186065
  * A specialized version of `baseIsEqual` for arrays and objects which performs
@@ -185897,8 +186102,8 @@ function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
185897
186102
  : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
185898
186103
  }
185899
186104
  if (!(bitmask & COMPARE_PARTIAL_FLAG$2)) {
185900
- var objIsWrapped = objIsObj && hasOwnProperty$1.call(object, '__wrapped__'),
185901
- othIsWrapped = othIsObj && hasOwnProperty$1.call(other, '__wrapped__');
186105
+ var objIsWrapped = objIsObj && hasOwnProperty$2.call(object, '__wrapped__'),
186106
+ othIsWrapped = othIsObj && hasOwnProperty$2.call(other, '__wrapped__');
185902
186107
 
185903
186108
  if (objIsWrapped || othIsWrapped) {
185904
186109
  var objUnwrapped = objIsWrapped ? object.value() : object,
@@ -187312,10 +187517,10 @@ var mapTag = '[object Map]',
187312
187517
  setTag = '[object Set]';
187313
187518
 
187314
187519
  /** Used for built-in method references. */
187315
- var objectProto = Object.prototype;
187520
+ var objectProto$1 = Object.prototype;
187316
187521
 
187317
187522
  /** Used to check objects for own properties. */
187318
- var hasOwnProperty = objectProto.hasOwnProperty;
187523
+ var hasOwnProperty$1 = objectProto$1.hasOwnProperty;
187319
187524
 
187320
187525
  /**
187321
187526
  * Checks if `value` is an empty object, collection, map, or set.
@@ -187367,7 +187572,7 @@ function isEmpty(value) {
187367
187572
  return !baseKeys(value).length;
187368
187573
  }
187369
187574
  for (var key in value) {
187370
- if (hasOwnProperty.call(value, key)) {
187575
+ if (hasOwnProperty$1.call(value, key)) {
187371
187576
  return false;
187372
187577
  }
187373
187578
  }
@@ -187591,6 +187796,12 @@ var merge = createAssigner(function(object, source, srcIndex) {
187591
187796
  baseMerge(object, source, srcIndex);
187592
187797
  });
187593
187798
 
187799
+ /** Used for built-in method references. */
187800
+ var objectProto = Object.prototype;
187801
+
187802
+ /** Used to check objects for own properties. */
187803
+ var hasOwnProperty = objectProto.hasOwnProperty;
187804
+
187594
187805
  /**
187595
187806
  * The base implementation of `_.unset`.
187596
187807
  *
@@ -187601,8 +187812,34 @@ var merge = createAssigner(function(object, source, srcIndex) {
187601
187812
  */
187602
187813
  function baseUnset(object, path) {
187603
187814
  path = castPath(path, object);
187604
- object = parent$1(object, path);
187605
- return object == null || delete object[toKey(last(path))];
187815
+
187816
+ // Prevent prototype pollution:
187817
+ // https://github.com/lodash/lodash/security/advisories/GHSA-xxjr-mmjv-4gpg
187818
+ // https://github.com/lodash/lodash/security/advisories/GHSA-f23m-r3pf-42rh
187819
+ var index = -1,
187820
+ length = path.length;
187821
+
187822
+ if (!length) {
187823
+ return true;
187824
+ }
187825
+
187826
+ while (++index < length) {
187827
+ var key = toKey(path[index]);
187828
+
187829
+ // Always block "__proto__" anywhere in the path if it's not expected
187830
+ if (key === '__proto__' && !hasOwnProperty.call(object, '__proto__')) {
187831
+ return false;
187832
+ }
187833
+
187834
+ // Block constructor/prototype as non-terminal traversal keys to prevent
187835
+ // escaping the object graph into built-in constructors and prototypes.
187836
+ if ((key === 'constructor' || key === 'prototype') && index < length - 1) {
187837
+ return false;
187838
+ }
187839
+ }
187840
+
187841
+ var obj = parent$1(object, path);
187842
+ return obj == null || delete obj[toKey(last(path))];
187606
187843
  }
187607
187844
 
187608
187845
  /**
@@ -188102,11 +188339,22 @@ function requireConventions () {
188102
188339
  XMLNS: 'http://www.w3.org/2000/xmlns/',
188103
188340
  });
188104
188341
 
188342
+ //[4] NameStartChar ::= ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]
188343
+ //[4a] NameChar ::= NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]
188344
+ //[5] Name ::= NameStartChar (NameChar)*
188345
+ var nameStartChar = /[A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/;//\u10000-\uEFFFF
188346
+ var nameChar = new RegExp("[\\-\\.0-9"+nameStartChar.source.slice(1,-1)+"\\u00B7\\u0300-\\u036F\\u203F-\\u2040]");
188347
+ var tagNamePattern = new RegExp('^'+nameStartChar.source+nameChar.source+'*(?:\:'+nameStartChar.source+nameChar.source+'*)?$');
188348
+ //var tagNamePattern = /^[a-zA-Z_][\w\-\.]*(?:\:[a-zA-Z_][\w\-\.]*)?$/
188349
+
188105
188350
  conventions.assign = assign;
188106
188351
  conventions.find = find;
188107
188352
  conventions.freeze = freeze;
188108
188353
  conventions.MIME_TYPE = MIME_TYPE;
188109
188354
  conventions.NAMESPACE = NAMESPACE;
188355
+ conventions.nameStartChar = nameStartChar;
188356
+ conventions.nameChar = nameChar;
188357
+ conventions.tagNamePattern = tagNamePattern;
188110
188358
  return conventions;
188111
188359
  }
188112
188360
 
@@ -188119,6 +188367,7 @@ function requireDom () {
188119
188367
 
188120
188368
  var find = conventions.find;
188121
188369
  var NAMESPACE = conventions.NAMESPACE;
188370
+ var tagNamePattern = conventions.tagNamePattern;
188122
188371
 
188123
188372
  /**
188124
188373
  * A prerequisite for `[].filter`, to drop elements that are empty
@@ -188350,6 +188599,13 @@ function requireDom () {
188350
188599
  * used for attributes or DocumentType entities
188351
188600
  */
188352
188601
  function NamedNodeMap() {
188602
+ // nodeName -> Attr membership index; lets the parse-time de-duplication in
188603
+ // setNamedItem resolve an existing attribute in O(1) instead of scanning the
188604
+ // list, so building an element with M attributes costs O(M) rather than O(M^2).
188605
+ // The numbered entries and length remain the sole authority for attribute order.
188606
+ // Object.create(null) so an attribute named __proto__ or constructor is an
188607
+ // ordinary key.
188608
+ this._nameIndex = Object.create(null);
188353
188609
  }
188354
188610
  function _findNodeIndex(list,node){
188355
188611
  var i = list.length;
@@ -188358,12 +188614,27 @@ function requireDom () {
188358
188614
  }
188359
188615
  }
188360
188616
 
188617
+ function _nnmIndexAdd(list, attr) {
188618
+ list._nameIndex[attr.nodeName] = attr;
188619
+ }
188620
+ function _nnmIndexRemove(list, attr) {
188621
+ // Only drop the entry if it still points at this attribute; a replacement with
188622
+ // a different nodeName may already have re-keyed it.
188623
+ if (list._nameIndex[attr.nodeName] === attr) {
188624
+ delete list._nameIndex[attr.nodeName];
188625
+ }
188626
+ }
188627
+
188361
188628
  function _addNamedNode(el,list,newAttr,oldAttr){
188362
188629
  if(oldAttr){
188363
188630
  list[_findNodeIndex(list,oldAttr)] = newAttr;
188631
+ // oldAttr leaves the list; drop its index entry (its nodeName may differ
188632
+ // from newAttr's when the replacement came via setNamedItemNS).
188633
+ _nnmIndexRemove(list, oldAttr);
188364
188634
  }else {
188365
188635
  list[list.length++] = newAttr;
188366
188636
  }
188637
+ _nnmIndexAdd(list, newAttr);
188367
188638
  if(el){
188368
188639
  newAttr.ownerElement = el;
188369
188640
  var doc = el.ownerDocument;
@@ -188382,6 +188653,7 @@ function requireDom () {
188382
188653
  list[i] = list[++i];
188383
188654
  }
188384
188655
  list.length = lastIndex;
188656
+ _nnmIndexRemove(list, attr);
188385
188657
  if(el){
188386
188658
  var doc = el.ownerDocument;
188387
188659
  if(doc){
@@ -188415,7 +188687,11 @@ function requireDom () {
188415
188687
  if(el && el!=this._ownerElement){
188416
188688
  throw new DOMException(INUSE_ATTRIBUTE_ERR);
188417
188689
  }
188418
- var oldAttr = this.getNamedItem(attr.nodeName);
188690
+ // Resolve any existing attribute with the same nodeName through the O(1)
188691
+ // membership index rather than an O(M) scan — this is the parse-dedup hot
188692
+ // path (setAttributeNode per attribute during parse). Absent -> undefined,
188693
+ // matching getNamedItem's contract.
188694
+ var oldAttr = this._nameIndex[attr.nodeName];
188419
188695
  _addNamedNode(this._ownerElement,this,attr,oldAttr);
188420
188696
  return oldAttr;
188421
188697
  },
@@ -188648,9 +188924,38 @@ function requireDom () {
188648
188924
  while (child) {
188649
188925
  var next = child.nextSibling;
188650
188926
  if (next !== null && next.nodeType === TEXT_NODE && child.nodeType === TEXT_NODE) {
188651
- node.removeChild(next);
188652
- child.appendData(next.data);
188653
- // Do not advance child: re-check new nextSibling for another text run
188927
+ // Merge the whole run of adjacent text nodes at once: gather the
188928
+ // following text siblings' data, unlink them in a single pass, and
188929
+ // re-index the child list a single time. Per-sibling `removeChild`
188930
+ // (each an O(K) re-index) plus per-sibling `appendData` (each an O(K)
188931
+ // string rebuild) is O(K^2) over a long run of single-character text
188932
+ // nodes; this keeps it O(K). The first text node of the run survives
188933
+ // and carries the concatenated data, preserving node identity and
188934
+ // locator semantics.
188935
+ var tail = [];
188936
+ var sibling = next;
188937
+ while (sibling !== null && sibling.nodeType === TEXT_NODE) {
188938
+ tail.push(sibling.data);
188939
+ sibling = sibling.nextSibling;
188940
+ }
188941
+ // `sibling` is now the first non-text node after the run, or null.
188942
+ var removed = child.nextSibling;
188943
+ while (removed !== sibling) {
188944
+ var following = removed.nextSibling;
188945
+ removed.parentNode = null;
188946
+ removed.previousSibling = null;
188947
+ removed.nextSibling = null;
188948
+ removed = following;
188949
+ }
188950
+ child.nextSibling = sibling;
188951
+ if (sibling !== null) {
188952
+ sibling.previousSibling = child;
188953
+ } else {
188954
+ node.lastChild = child;
188955
+ }
188956
+ child.appendData(tail.join('')); // single O(K) string rebuild
188957
+ _onUpdateChild(node.ownerDocument, node); // single O(K) re-index
188958
+ child = sibling;
188654
188959
  } else {
188655
188960
  child = next;
188656
188961
  }
@@ -189461,8 +189766,10 @@ function requireDom () {
189461
189766
  * - it does not do any input validation on the arguments and doesn't throw "InvalidCharacterError".
189462
189767
  *
189463
189768
  * Note: When the resulting document is serialized with `requireWellFormed: true`, the
189464
- * serializer throws with code `INVALID_STATE_ERR` if `.data` contains `?>` (W3C DOM Parsing
189465
- * §3.2.1.7). Without that option the data is emitted verbatim.
189769
+ * serializer throws with code `INVALID_STATE_ERR` if `.target` is not a valid XML `NCName`
189770
+ * (a `Name` with no colon) or is an ASCII case-insensitive match for `"xml"`, or if `.data`
189771
+ * contains `?>` (W3C DOM Parsing §3.2.1.7). Without that option the target and data are
189772
+ * emitted verbatim.
189466
189773
  *
189467
189774
  * @param {string} target
189468
189775
  * @param {string} data
@@ -189487,7 +189794,27 @@ function requireDom () {
189487
189794
  node.specified = true;
189488
189795
  return node;
189489
189796
  },
189797
+ /**
189798
+ * Creates an EntityReference object, serialized as `&name;`.
189799
+ *
189800
+ * The `name` is validated against the XML `Name` production at creation time; an invalid name
189801
+ * throws a `DOMException` with code `INVALID_CHARACTER_ERR`. When the resulting node is
189802
+ * serialized with `requireWellFormed: true`, the serializer re-validates `nodeName` and throws
189803
+ * a `DOMException` with code `INVALID_STATE_ERR` if a later `nodeName` mutation made it invalid;
189804
+ * without that option the name is emitted verbatim.
189805
+ *
189806
+ * Note: xmldom does not expand entities — the parser resolves entity references inline and never
189807
+ * constructs `EntityReference` nodes, so this method is the only producer.
189808
+ *
189809
+ * @param {string} name The name of the entity to reference.
189810
+ * @returns {EntityReference}
189811
+ * @throws {DOMException} With code `INVALID_CHARACTER_ERR` when `name` is not a valid XML `Name`.
189812
+ * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-392B75AE
189813
+ */
189490
189814
  createEntityReference : function(name){
189815
+ if (!tagNamePattern.test(name)) {
189816
+ throw new DOMException(INVALID_CHARACTER_ERR, 'not a valid xml name "' + name + '"');
189817
+ }
189491
189818
  var node = new EntityReference();
189492
189819
  node.ownerDocument = this;
189493
189820
  node.nodeName = name;
@@ -189699,15 +190026,16 @@ function requireDom () {
189699
190026
  /**
189700
190027
  * Represents a DocumentType node (the `<!DOCTYPE ...>` declaration).
189701
190028
  *
189702
- * `publicId`, `systemId`, and `internalSubset` are plain own-property assignments.
190029
+ * `name`, `publicId`, `systemId`, and `internalSubset` are plain own-property assignments.
189703
190030
  * xmldom does not enforce the `readonly` constraint declared by the WHATWG DOM spec —
189704
190031
  * direct property writes succeed silently. Values are serialized verbatim when
189705
190032
  * `requireWellFormed` is false (the default). When the serializer is invoked with
189706
190033
  * `requireWellFormed: true` (via the 4th-parameter options object), it validates each
189707
- * field and throws `DOMException` with code `INVALID_STATE_ERR` on invalid values.
190034
+ * field — including `name`, which is checked against the XML `Name` production — and throws
190035
+ * `DOMException` with code `INVALID_STATE_ERR` on invalid values.
189708
190036
  *
189709
190037
  * @class
189710
- * @see https://developer.mozilla.org/en-US/docs/Web/API/DocumentType MDN
190038
+ * @see https://developer.mozilla.org/docs/Web/API/DocumentType MDN
189711
190039
  */
189712
190040
  function DocumentType() {
189713
190041
  } DocumentType.prototype.nodeType = DOCUMENT_TYPE_NODE;
@@ -189721,6 +190049,20 @@ function requireDom () {
189721
190049
  } Entity.prototype.nodeType = ENTITY_NODE;
189722
190050
  _extends(Entity,Node);
189723
190051
 
190052
+ /**
190053
+ * Represents an EntityReference node, serialized as `&nodeName;`.
190054
+ *
190055
+ * `nodeName` is the referenced entity's name, stored verbatim. When serialized with
190056
+ * `requireWellFormed: true`, the serializer validates `nodeName` against the XML `Name` production
190057
+ * and throws a `DOMException` with code `INVALID_STATE_ERR` if it does not match; without that
190058
+ * option the name is emitted verbatim between `&` and `;`.
190059
+ *
190060
+ * Note: xmldom does not expand entities — the parser resolves entity references inline and never
190061
+ * constructs `EntityReference` nodes, so the only producer is `Document.createEntityReference`.
190062
+ *
190063
+ * @class
190064
+ * @see https://www.w3.org/TR/xml/#NT-Name
190065
+ */
189724
190066
  function EntityReference() {
189725
190067
  } EntityReference.prototype.nodeType = ENTITY_REFERENCE_NODE;
189726
190068
  _extends(EntityReference,Node);
@@ -189758,14 +190100,20 @@ function requireDom () {
189758
190100
  * @returns {string}
189759
190101
  * @throws {DOMException}
189760
190102
  * With code `INVALID_STATE_ERR` when `requireWellFormed` is `true` and:
190103
+ * - an Element's qualified name (including any namespace prefix) is not a valid XML QName,
190104
+ * - an attribute's qualified name (including a synthesized `xmlns:` namespace declaration) is
190105
+ * not a valid XML QName,
189761
190106
  * - a CDATASection node's data contains `"]]>"`,
189762
190107
  * - a Comment node's data contains `"-->"` (bare `"--"` does not throw on this branch),
189763
- * - a ProcessingInstruction's data contains `"?>"`,
190108
+ * - a ProcessingInstruction's target is not a valid XML `NCName` (a `Name` with no colon) or is
190109
+ * an ASCII case-insensitive match for `"xml"`, or its data contains `"?>"`,
190110
+ * - a DocumentType's `name` is not a valid XML `Name` (XML 1.0 production [5]),
189764
190111
  * - a DocumentType's `publicId` is non-empty and does not match the XML `PubidLiteral`
189765
190112
  * production,
189766
190113
  * - a DocumentType's `systemId` is non-empty and does not match the XML `SystemLiteral`
189767
- * production, or
189768
- * - a DocumentType's `internalSubset` contains `"]>"`.
190114
+ * production,
190115
+ * - a DocumentType's `internalSubset` contains `"]>"`, or
190116
+ * - an EntityReference's `nodeName` is not a valid XML `Name` (XML 1.0 production [5]).
189769
190117
  * Note: xmldom does not enforce `readonly` on DocumentType fields — direct property
189770
190118
  * writes succeed and are covered by the serializer-level checks above.
189771
190119
  * @see https://html.spec.whatwg.org/#dom-xmlserializer-serializetostring
@@ -189839,7 +190187,10 @@ function requireDom () {
189839
190187
  * @see https://www.w3.org/TR/xml11/#AVNormalize
189840
190188
  * @see https://w3c.github.io/DOM-Parsing/#serializing-an-element-s-attributes
189841
190189
  */
189842
- function addSerializedAttribute(buf, qualifiedName, value) {
190190
+ function addSerializedAttribute(buf, qualifiedName, value, requireWellFormed) {
190191
+ if (requireWellFormed && !tagNamePattern.test(qualifiedName)) {
190192
+ throw new DOMException(INVALID_STATE_ERR, 'The attribute name "' + qualifiedName + '" is not a valid XML QName');
190193
+ }
189843
190194
  buf.push(' ', qualifiedName, '="', value.replace(/[<>&"\t\n\r]/g, _xmlEncoder), '"');
189844
190195
  }
189845
190196
 
@@ -189905,6 +190256,9 @@ function requireDom () {
189905
190256
  }
189906
190257
  }
189907
190258
 
190259
+ if (requireWellFormed && !tagNamePattern.test(prefixedNodeName)) {
190260
+ throw new DOMException(INVALID_STATE_ERR, 'The element name "' + prefixedNodeName + '" is not a valid XML QName');
190261
+ }
189908
190262
  buf.push('<', prefixedNodeName);
189909
190263
 
189910
190264
  // Build a fresh namespace snapshot for this element's children.
@@ -189924,7 +190278,7 @@ function requireDom () {
189924
190278
  if (needNamespaceDefine(attr, html, childNs)) {
189925
190279
  var attrPrefix = attr.prefix || '';
189926
190280
  var uri = attr.namespaceURI;
189927
- addSerializedAttribute(buf, attrPrefix ? 'xmlns:' + attrPrefix : 'xmlns', uri);
190281
+ addSerializedAttribute(buf, attrPrefix ? 'xmlns:' + attrPrefix : 'xmlns', uri, requireWellFormed);
189928
190282
  childNs.push({ prefix: attrPrefix, namespace: uri });
189929
190283
  }
189930
190284
  // Apply nodeFilter and serialize the attribute.
@@ -189933,7 +190287,7 @@ function requireDom () {
189933
190287
  if (typeof filteredAttr === 'string') {
189934
190288
  buf.push(filteredAttr);
189935
190289
  } else {
189936
- addSerializedAttribute(buf, filteredAttr.name, filteredAttr.value);
190290
+ addSerializedAttribute(buf, filteredAttr.name, filteredAttr.value, requireWellFormed);
189937
190291
  }
189938
190292
  }
189939
190293
  }
@@ -189942,7 +190296,7 @@ function requireDom () {
189942
190296
  if (nodeName === prefixedNodeName && needNamespaceDefine(n, html, childNs)) {
189943
190297
  var nodePrefix = n.prefix || '';
189944
190298
  var uri = n.namespaceURI;
189945
- addSerializedAttribute(buf, nodePrefix ? 'xmlns:' + nodePrefix : 'xmlns', uri);
190299
+ addSerializedAttribute(buf, nodePrefix ? 'xmlns:' + nodePrefix : 'xmlns', uri, requireWellFormed);
189946
190300
  childNs.push({ prefix: nodePrefix, namespace: uri });
189947
190301
  }
189948
190302
 
@@ -189975,7 +190329,7 @@ function requireDom () {
189975
190329
  return { ns: ns.slice(), isHTML: html, tag: null };
189976
190330
 
189977
190331
  case ATTRIBUTE_NODE:
189978
- addSerializedAttribute(buf, n.name, n.value);
190332
+ addSerializedAttribute(buf, n.name, n.value, requireWellFormed);
189979
190333
  return null;
189980
190334
 
189981
190335
  case TEXT_NODE:
@@ -190014,6 +190368,9 @@ function requireDom () {
190014
190368
 
190015
190369
  case DOCUMENT_TYPE_NODE:
190016
190370
  if (requireWellFormed) {
190371
+ if (!tagNamePattern.test(n.name)) {
190372
+ throw new DOMException(INVALID_STATE_ERR, 'The doctype name "' + n.name + '" is not a valid XML Name');
190373
+ }
190017
190374
  if (n.publicId && !/^("[\x20\r\na-zA-Z0-9\-()+,.\/:=?;!*#@$_%']*"|'[\x20\r\na-zA-Z0-9\-()+,.\/:=?;!*#@$_%'"]*')$/.test(n.publicId)) {
190018
190375
  throw new DOMException(INVALID_STATE_ERR, 'DocumentType publicId is not a valid PubidLiteral');
190019
190376
  }
@@ -190045,13 +190402,27 @@ function requireDom () {
190045
190402
  return null;
190046
190403
 
190047
190404
  case PROCESSING_INSTRUCTION_NODE:
190048
- if (requireWellFormed && n.data.indexOf('?>') !== -1) {
190049
- throw new DOMException(INVALID_STATE_ERR, 'The ProcessingInstruction data contains "?>"');
190405
+ if (requireWellFormed) {
190406
+ if (!tagNamePattern.test(n.target) || n.target.indexOf(':') !== -1 || n.target.toLowerCase() === 'xml') {
190407
+ throw new DOMException(
190408
+ INVALID_STATE_ERR,
190409
+ 'The processing instruction target "' + n.target + '" is not a valid XML NCName or is reserved'
190410
+ );
190411
+ }
190412
+ if (n.data.indexOf('?>') !== -1) {
190413
+ throw new DOMException(INVALID_STATE_ERR, 'The ProcessingInstruction data contains "?>"');
190414
+ }
190050
190415
  }
190051
190416
  buf.push('<?', n.target, ' ', n.data, '?>');
190052
190417
  return null;
190053
190418
 
190054
190419
  case ENTITY_REFERENCE_NODE:
190420
+ if (requireWellFormed && !tagNamePattern.test(n.nodeName)) {
190421
+ throw new DOMException(
190422
+ INVALID_STATE_ERR,
190423
+ 'The entity reference name "' + n.nodeName + '" is not a valid XML Name'
190424
+ );
190425
+ }
190055
190426
  buf.push('&', n.nodeName, ';');
190056
190427
  return null;
190057
190428
 
@@ -192432,14 +192803,8 @@ function requireSax () {
192432
192803
  if (hasRequiredSax) return sax;
192433
192804
  hasRequiredSax = 1;
192434
192805
  var NAMESPACE = requireConventions().NAMESPACE;
192806
+ var tagNamePattern = requireConventions().tagNamePattern;
192435
192807
 
192436
- //[4] NameStartChar ::= ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]
192437
- //[4a] NameChar ::= NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]
192438
- //[5] Name ::= NameStartChar (NameChar)*
192439
- var nameStartChar = /[A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/;//\u10000-\uEFFFF
192440
- var nameChar = new RegExp("[\\-\\.0-9"+nameStartChar.source.slice(1,-1)+"\\u00B7\\u0300-\\u036F\\u203F-\\u2040]");
192441
- var tagNamePattern = new RegExp('^'+nameStartChar.source+nameChar.source+'*(?:\:'+nameStartChar.source+nameChar.source+'*)?$');
192442
- //var tagNamePattern = /^[a-zA-Z_][\w\-\.]*(?:\:[a-zA-Z_][\w\-\.]*)?$/
192443
192808
  //var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',')
192444
192809
 
192445
192810
  //S_TAG, S_ATTR, S_EQ, S_ATTR_NOQUOT_VALUE
@@ -192550,7 +192915,13 @@ function requireSax () {
192550
192915
  switch(source.charAt(tagStart+1)){
192551
192916
  case '/':
192552
192917
  var end = source.indexOf('>',tagStart+3);
192553
- var tagName = source.substring(tagStart + 2, end).replace(/[ \t\n\r]+$/g, '');
192918
+ // Anchored trailing-whitespace trim. The former `/[ \t\n\r]+$/g` backtracked
192919
+ // quadratically on a name shaped `whitespace-run + non-whitespace char`
192920
+ // (an end tag `</ … x>`): from every start position it extended `[ws]+`
192921
+ // to the end and then failed the `$` anchor. This anchored form matches the
192922
+ // whole string once and captures everything up to the last non-whitespace
192923
+ // character, so it trims in linear time with byte-identical output.
192924
+ var tagName = source.substring(tagStart + 2, end).replace(/^([\s\S]*?[^ \t\n\r])?[ \t\n\r]*$/, '$1');
192554
192925
  var config = parseStack.pop();
192555
192926
  if(end<0){
192556
192927
 
@@ -192561,6 +192932,14 @@ function requireSax () {
192561
192932
  tagName = tagName.replace(/[\s<].*/,'');
192562
192933
  errorHandler.error("end tag name: "+tagName+' maybe not complete');
192563
192934
  end = tagStart+1+tagName.length;
192935
+ }else if(/[ \t\n\r]/.test(tagName) && tagNamePattern.test(tagName.split(/[ \t\n\r]/)[0])){
192936
+ // The XML `ETag` production is `'</' Name S? '>'`: only optional whitespace may follow
192937
+ // the `Name`. A valid `Name` followed by whitespace and non-whitespace residue (e.g.
192938
+ // `</a\nbogus>` or `</a bogus>`) is not well-formed, but historically it was silently
192939
+ // accepted (the malformed end tag ignored, the residue dropped, the element left on the
192940
+ // stack). Report it as a recoverable `error` (which a custom errorHandler may escalate to
192941
+ // fatal) while keeping the existing recovery so the parsed DOM stays byte-identical.
192942
+ errorHandler.error('end tag name is followed by whitespace and trailing content: "'+tagName+'"');
192564
192943
  }
192565
192944
  var localNSMap = config.localNSMap;
192566
192945
  var endMatch = config.tagName == tagName;
@@ -192684,6 +193063,15 @@ function requireSax () {
192684
193063
  var s = S_TAG;//status
192685
193064
  while(true){
192686
193065
  var c = source.charAt(p);
193066
+ if (s === S_TAG && c === '<') {
193067
+ // A `<` can never occur inside a tag name. Without this guard the scan runs
193068
+ // on to the next `>` (or EOF) before the tag name is rejected, so a document
193069
+ // with many `<` inside a malformed tag makes each one-character recovery step
193070
+ // re-scan to the distant `>` — O(n^2). Stopping at the `<` keeps each recovery
193071
+ // step bounded. The candidate scanned so far is reported raw, consistent with
193072
+ // the sibling invalid-tag-name throw below.
193073
+ throw new Error('unexpected < in tag name: ' + source.slice(start, p));
193074
+ }
192687
193075
  switch(c){
192688
193076
  case '=':
192689
193077
  if(s === S_ATTR){//attrName
@@ -192876,9 +193264,13 @@ function requireSax () {
192876
193264
  if(nsPrefix !== false){//hack!!
192877
193265
  if(localNSMap == null){
192878
193266
  localNSMap = {};
192879
- //console.log(currentNSMap,0)
192880
- _copy(currentNSMap,currentNSMap={});
192881
- //console.log(currentNSMap,1)
193267
+ // Derive the child scope's namespace map by prototype-chain inheritance
193268
+ // instead of a flat copy: lookups inherit ancestor prefixes transparently,
193269
+ // so a document nesting N scopes retains O(N) map entries rather than
193270
+ // sum(1..N) = O(N^2). localNSMap stays a flat own-only record of the
193271
+ // prefixes declared at THIS element, so own-property enumeration
193272
+ // (endPrefixMapping below) still reports only local declarations.
193273
+ currentNSMap = Object.create(currentNSMap);
192882
193274
  }
192883
193275
  currentNSMap[nsPrefix] = localNSMap[nsPrefix] = value;
192884
193276
  a.uri = NAMESPACE.XMLNS;
@@ -203991,13 +204383,13 @@ const FIRST_TIME_WATCH = {};
203991
204383
  Object.freeze(FIRST_TIME_WATCH);
203992
204384
  const arrayConsumer = (listenerFn, restExpr, newVal, oldVal) => {
203993
204385
  let data = newVal, formattedData;
203994
- if (isArray(data)) {
204386
+ if (_.isArray(data)) {
203995
204387
  formattedData = data.map(function (datum) {
203996
204388
  return findValueOf(datum, restExpr);
203997
204389
  });
203998
204390
  // If resulting structure is an array of array, flatten it
203999
- if (isArray(formattedData[0])) {
204000
- formattedData = flatten(formattedData);
204391
+ if (_.isArray(formattedData[0])) {
204392
+ formattedData = _.flatten(formattedData);
204001
204393
  }
204002
204394
  listenerFn(formattedData, oldVal);
204003
204395
  }
@@ -204042,6 +204434,19 @@ const $watch = (expr, $scope, $locals, listener, identifier = watchIdGenerator.n
204042
204434
  };
204043
204435
  const $unwatch = identifier => registry.delete(identifier);
204044
204436
  window.watchRegistry = registry;
204437
+ window.__WM_DEBUG_WATCHERS__ = false;
204438
+ /*export const $invokeWatchers = (force?: boolean, ignoreMuted?: boolean) => {
204439
+ if (force) {
204440
+ triggerWatchers(ignoreMuted);
204441
+ } else {
204442
+
204443
+ if (skipWatchers) {
204444
+ skipWatchers = false;
204445
+ return;
204446
+ }
204447
+ debouncedTriggerWatchers();
204448
+ }
204449
+ };*/
204045
204450
  const $appDigest = (() => {
204046
204451
  return (force) => {
204047
204452
  {
@@ -204104,6 +204509,8 @@ var Operation;
204104
204509
  const DataSource = {
204105
204510
  Operation
204106
204511
  };
204512
+ class App {
204513
+ }
204107
204514
  class AbstractI18nService {
204108
204515
  }
204109
204516
 
@@ -204121,6 +204528,7 @@ const REGEX = {
204121
204528
  SUPPORTED_AUDIO_FORMAT: /\.(mp3|ogg|webm|wma|3gp|wav|m4a)$/i,
204122
204529
  SUPPORTED_VIDEO_FORMAT: /\.(mp4|ogg|webm|wmv|mpeg|mpg|avi|mov)$/i,
204123
204530
  VALID_WEB_URL: /^(http[s]?:\/\/)(www\.){0,1}[a-zA-Z0-9=:?\/\.\-]+(\.[a-zA-Z]{2,5}[\.]{0,1})?/,
204531
+ VALID_IMAGE_URL: /^(https?|blob|data|file|ftp):/i,
204124
204532
  REPLACE_PATTERN: /\$\{([^\}]+)\}/g,
204125
204533
  DATA_URL: /^\s*data:([a-z]+\/[a-z0-9-+.]+(;[a-z-]+=[a-z0-9-]+)?)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s]*)\s*$/i,
204126
204534
  ISO_DATE_FORMAT: /(\d{4}-\d{2}-\d{2})T(\d{2}:\d{2}:\d{2})(\.\d+)?([+-]\d{2}:?\d{2}|Z)$/
@@ -204343,6 +204751,9 @@ const isVideoFile = (fileName) => {
204343
204751
  const isValidWebURL = (url) => {
204344
204752
  return (REGEX.VALID_WEB_URL).test(url);
204345
204753
  };
204754
+ const isValidImageUrl = (url) => {
204755
+ return (REGEX.VALID_IMAGE_URL).test(url?.trim());
204756
+ };
204346
204757
  /*This function returns the url to the resource after checking the validity of url*/
204347
204758
  const getResourceURL = (urlString) => {
204348
204759
  return urlString;
@@ -205596,6 +206007,7 @@ var Utils = /*#__PURE__*/Object.freeze({
205596
206007
  isPageable: isPageable,
205597
206008
  isSafari: isSafari,
205598
206009
  isTablet: isTablet,
206010
+ isValidImageUrl: isValidImageUrl,
205599
206011
  isValidWebURL: isValidWebURL,
205600
206012
  isVideoFile: isVideoFile,
205601
206013
  loadScript: loadScript,
@@ -208435,7 +208847,7 @@ class PipeProvider {
208435
208847
  this.preparePipeMeta(CurrencyPipe$1, 'currency', true, [this._locale]),
208436
208848
  this.preparePipeMeta(DatePipe$1, 'date', true, [this._locale]),
208437
208849
  this.preparePipeMeta(ToDatePipe, 'toDate', true, [
208438
- new DatePipe$1(this._locale), undefined, this.injector.get(CustomPipeManager)
208850
+ new DatePipe$1(this._locale), undefined, this.injector.get(App), this.injector.get(CustomPipeManager)
208439
208851
  ]),
208440
208852
  this.preparePipeMeta(ToNumberPipe, 'toNumber', true, [
208441
208853
  new DecimalPipe$1(this._locale),
@@ -208452,7 +208864,7 @@ class PipeProvider {
208452
208864
  new DecimalPipe$1(this._locale)
208453
208865
  ]),
208454
208866
  this.preparePipeMeta(StringToNumberPipe, 'stringToNumber', true),
208455
- this.preparePipeMeta(CustomPipe, 'custom', true, [this.injector.get(CustomPipeManager)]),
208867
+ this.preparePipeMeta(CustomPipe, 'custom', true, [this.injector.get(App), this.injector.get(CustomPipeManager)]),
208456
208868
  this.preparePipeMeta(TrustAsPipe, 'trustAs', true, [this.domSanitizer]),
208457
208869
  this.preparePipeMeta(SanitizePipe, 'sanitize', true, [this.domSanitizer]),
208458
208870
  this.preparePipeMeta(TemplateReplacePipe, 'templateReplace', true),