@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.
@@ -28490,17 +28490,17 @@ var root = freeGlobal || freeSelf || Function('return this')();
28490
28490
  var Symbol$1 = root.Symbol;
28491
28491
 
28492
28492
  /** Used for built-in method references. */
28493
- var objectProto$h = Object.prototype;
28493
+ var objectProto$i = Object.prototype;
28494
28494
 
28495
28495
  /** Used to check objects for own properties. */
28496
- var hasOwnProperty$e = objectProto$h.hasOwnProperty;
28496
+ var hasOwnProperty$f = objectProto$i.hasOwnProperty;
28497
28497
 
28498
28498
  /**
28499
28499
  * Used to resolve the
28500
28500
  * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
28501
28501
  * of values.
28502
28502
  */
28503
- var nativeObjectToString$1 = objectProto$h.toString;
28503
+ var nativeObjectToString$1 = objectProto$i.toString;
28504
28504
 
28505
28505
  /** Built-in value references. */
28506
28506
  var symToStringTag$1 = Symbol$1 ? Symbol$1.toStringTag : undefined;
@@ -28513,7 +28513,7 @@ var symToStringTag$1 = Symbol$1 ? Symbol$1.toStringTag : undefined;
28513
28513
  * @returns {string} Returns the raw `toStringTag`.
28514
28514
  */
28515
28515
  function getRawTag(value) {
28516
- var isOwn = hasOwnProperty$e.call(value, symToStringTag$1),
28516
+ var isOwn = hasOwnProperty$f.call(value, symToStringTag$1),
28517
28517
  tag = value[symToStringTag$1];
28518
28518
 
28519
28519
  try {
@@ -28533,14 +28533,14 @@ function getRawTag(value) {
28533
28533
  }
28534
28534
 
28535
28535
  /** Used for built-in method references. */
28536
- var objectProto$g = Object.prototype;
28536
+ var objectProto$h = Object.prototype;
28537
28537
 
28538
28538
  /**
28539
28539
  * Used to resolve the
28540
28540
  * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
28541
28541
  * of values.
28542
28542
  */
28543
- var nativeObjectToString = objectProto$g.toString;
28543
+ var nativeObjectToString = objectProto$h.toString;
28544
28544
 
28545
28545
  /**
28546
28546
  * Converts `value` to a string using `Object.prototype.toString`.
@@ -29006,17 +29006,17 @@ var reIsHostCtor = /^\[object .+?Constructor\]$/;
29006
29006
 
29007
29007
  /** Used for built-in method references. */
29008
29008
  var funcProto$1 = Function.prototype,
29009
- objectProto$f = Object.prototype;
29009
+ objectProto$g = Object.prototype;
29010
29010
 
29011
29011
  /** Used to resolve the decompiled source of functions. */
29012
29012
  var funcToString$1 = funcProto$1.toString;
29013
29013
 
29014
29014
  /** Used to check objects for own properties. */
29015
- var hasOwnProperty$d = objectProto$f.hasOwnProperty;
29015
+ var hasOwnProperty$e = objectProto$g.hasOwnProperty;
29016
29016
 
29017
29017
  /** Used to detect if a method is native. */
29018
29018
  var reIsNative = RegExp('^' +
29019
- funcToString$1.call(hasOwnProperty$d).replace(reRegExpChar, '\\$&')
29019
+ funcToString$1.call(hasOwnProperty$e).replace(reRegExpChar, '\\$&')
29020
29020
  .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
29021
29021
  );
29022
29022
 
@@ -29431,10 +29431,10 @@ function eq(value, other) {
29431
29431
  }
29432
29432
 
29433
29433
  /** Used for built-in method references. */
29434
- var objectProto$e = Object.prototype;
29434
+ var objectProto$f = Object.prototype;
29435
29435
 
29436
29436
  /** Used to check objects for own properties. */
29437
- var hasOwnProperty$c = objectProto$e.hasOwnProperty;
29437
+ var hasOwnProperty$d = objectProto$f.hasOwnProperty;
29438
29438
 
29439
29439
  /**
29440
29440
  * Assigns `value` to `key` of `object` if the existing value is not equivalent
@@ -29448,7 +29448,7 @@ var hasOwnProperty$c = objectProto$e.hasOwnProperty;
29448
29448
  */
29449
29449
  function assignValue(object, key, value) {
29450
29450
  var objValue = object[key];
29451
- if (!(hasOwnProperty$c.call(object, key) && eq(objValue, value)) ||
29451
+ if (!(hasOwnProperty$d.call(object, key) && eq(objValue, value)) ||
29452
29452
  (value === undefined && !(key in object))) {
29453
29453
  baseAssignValue(object, key, value);
29454
29454
  }
@@ -29654,7 +29654,7 @@ function createAssigner(assigner) {
29654
29654
  }
29655
29655
 
29656
29656
  /** Used for built-in method references. */
29657
- var objectProto$d = Object.prototype;
29657
+ var objectProto$e = Object.prototype;
29658
29658
 
29659
29659
  /**
29660
29660
  * Checks if `value` is likely a prototype object.
@@ -29665,7 +29665,7 @@ var objectProto$d = Object.prototype;
29665
29665
  */
29666
29666
  function isPrototype(value) {
29667
29667
  var Ctor = value && value.constructor,
29668
- proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto$d;
29668
+ proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto$e;
29669
29669
 
29670
29670
  return value === proto;
29671
29671
  }
@@ -29704,13 +29704,13 @@ function baseIsArguments(value) {
29704
29704
  }
29705
29705
 
29706
29706
  /** Used for built-in method references. */
29707
- var objectProto$c = Object.prototype;
29707
+ var objectProto$d = Object.prototype;
29708
29708
 
29709
29709
  /** Used to check objects for own properties. */
29710
- var hasOwnProperty$b = objectProto$c.hasOwnProperty;
29710
+ var hasOwnProperty$c = objectProto$d.hasOwnProperty;
29711
29711
 
29712
29712
  /** Built-in value references. */
29713
- var propertyIsEnumerable$1 = objectProto$c.propertyIsEnumerable;
29713
+ var propertyIsEnumerable$1 = objectProto$d.propertyIsEnumerable;
29714
29714
 
29715
29715
  /**
29716
29716
  * Checks if `value` is likely an `arguments` object.
@@ -29731,7 +29731,7 @@ var propertyIsEnumerable$1 = objectProto$c.propertyIsEnumerable;
29731
29731
  * // => false
29732
29732
  */
29733
29733
  var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {
29734
- return isObjectLike(value) && hasOwnProperty$b.call(value, 'callee') &&
29734
+ return isObjectLike(value) && hasOwnProperty$c.call(value, 'callee') &&
29735
29735
  !propertyIsEnumerable$1.call(value, 'callee');
29736
29736
  };
29737
29737
 
@@ -29904,10 +29904,10 @@ var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
29904
29904
  var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
29905
29905
 
29906
29906
  /** Used for built-in method references. */
29907
- var objectProto$b = Object.prototype;
29907
+ var objectProto$c = Object.prototype;
29908
29908
 
29909
29909
  /** Used to check objects for own properties. */
29910
- var hasOwnProperty$a = objectProto$b.hasOwnProperty;
29910
+ var hasOwnProperty$b = objectProto$c.hasOwnProperty;
29911
29911
 
29912
29912
  /**
29913
29913
  * Creates an array of the enumerable property names of the array-like `value`.
@@ -29927,7 +29927,7 @@ function arrayLikeKeys(value, inherited) {
29927
29927
  length = result.length;
29928
29928
 
29929
29929
  for (var key in value) {
29930
- if ((inherited || hasOwnProperty$a.call(value, key)) &&
29930
+ if ((inherited || hasOwnProperty$b.call(value, key)) &&
29931
29931
  !(skipIndexes && (
29932
29932
  // Safari 9 has enumerable `arguments.length` in strict mode.
29933
29933
  key == 'length' ||
@@ -29962,10 +29962,10 @@ function overArg(func, transform) {
29962
29962
  var nativeKeys = overArg(Object.keys, Object);
29963
29963
 
29964
29964
  /** Used for built-in method references. */
29965
- var objectProto$a = Object.prototype;
29965
+ var objectProto$b = Object.prototype;
29966
29966
 
29967
29967
  /** Used to check objects for own properties. */
29968
- var hasOwnProperty$9 = objectProto$a.hasOwnProperty;
29968
+ var hasOwnProperty$a = objectProto$b.hasOwnProperty;
29969
29969
 
29970
29970
  /**
29971
29971
  * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
@@ -29980,7 +29980,7 @@ function baseKeys(object) {
29980
29980
  }
29981
29981
  var result = [];
29982
29982
  for (var key in Object(object)) {
29983
- if (hasOwnProperty$9.call(object, key) && key != 'constructor') {
29983
+ if (hasOwnProperty$a.call(object, key) && key != 'constructor') {
29984
29984
  result.push(key);
29985
29985
  }
29986
29986
  }
@@ -30020,10 +30020,10 @@ function keys(object) {
30020
30020
  }
30021
30021
 
30022
30022
  /** Used for built-in method references. */
30023
- var objectProto$9 = Object.prototype;
30023
+ var objectProto$a = Object.prototype;
30024
30024
 
30025
30025
  /** Used to check objects for own properties. */
30026
- var hasOwnProperty$8 = objectProto$9.hasOwnProperty;
30026
+ var hasOwnProperty$9 = objectProto$a.hasOwnProperty;
30027
30027
 
30028
30028
  /**
30029
30029
  * Assigns own enumerable string keyed properties of source objects to the
@@ -30063,7 +30063,7 @@ var assign = createAssigner(function(object, source) {
30063
30063
  return;
30064
30064
  }
30065
30065
  for (var key in source) {
30066
- if (hasOwnProperty$8.call(source, key)) {
30066
+ if (hasOwnProperty$9.call(source, key)) {
30067
30067
  assignValue(object, key, source[key]);
30068
30068
  }
30069
30069
  }
@@ -30089,10 +30089,10 @@ function nativeKeysIn(object) {
30089
30089
  }
30090
30090
 
30091
30091
  /** Used for built-in method references. */
30092
- var objectProto$8 = Object.prototype;
30092
+ var objectProto$9 = Object.prototype;
30093
30093
 
30094
30094
  /** Used to check objects for own properties. */
30095
- var hasOwnProperty$7 = objectProto$8.hasOwnProperty;
30095
+ var hasOwnProperty$8 = objectProto$9.hasOwnProperty;
30096
30096
 
30097
30097
  /**
30098
30098
  * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.
@@ -30109,7 +30109,7 @@ function baseKeysIn(object) {
30109
30109
  result = [];
30110
30110
 
30111
30111
  for (var key in object) {
30112
- if (!(key == 'constructor' && (isProto || !hasOwnProperty$7.call(object, key)))) {
30112
+ if (!(key == 'constructor' && (isProto || !hasOwnProperty$8.call(object, key)))) {
30113
30113
  result.push(key);
30114
30114
  }
30115
30115
  }
@@ -30203,10 +30203,10 @@ function hashDelete(key) {
30203
30203
  var HASH_UNDEFINED$2 = '__lodash_hash_undefined__';
30204
30204
 
30205
30205
  /** Used for built-in method references. */
30206
- var objectProto$7 = Object.prototype;
30206
+ var objectProto$8 = Object.prototype;
30207
30207
 
30208
30208
  /** Used to check objects for own properties. */
30209
- var hasOwnProperty$6 = objectProto$7.hasOwnProperty;
30209
+ var hasOwnProperty$7 = objectProto$8.hasOwnProperty;
30210
30210
 
30211
30211
  /**
30212
30212
  * Gets the hash value for `key`.
@@ -30223,14 +30223,14 @@ function hashGet(key) {
30223
30223
  var result = data[key];
30224
30224
  return result === HASH_UNDEFINED$2 ? undefined : result;
30225
30225
  }
30226
- return hasOwnProperty$6.call(data, key) ? data[key] : undefined;
30226
+ return hasOwnProperty$7.call(data, key) ? data[key] : undefined;
30227
30227
  }
30228
30228
 
30229
30229
  /** Used for built-in method references. */
30230
- var objectProto$6 = Object.prototype;
30230
+ var objectProto$7 = Object.prototype;
30231
30231
 
30232
30232
  /** Used to check objects for own properties. */
30233
- var hasOwnProperty$5 = objectProto$6.hasOwnProperty;
30233
+ var hasOwnProperty$6 = objectProto$7.hasOwnProperty;
30234
30234
 
30235
30235
  /**
30236
30236
  * Checks if a hash value for `key` exists.
@@ -30243,7 +30243,7 @@ var hasOwnProperty$5 = objectProto$6.hasOwnProperty;
30243
30243
  */
30244
30244
  function hashHas(key) {
30245
30245
  var data = this.__data__;
30246
- return nativeCreate ? (data[key] !== undefined) : hasOwnProperty$5.call(data, key);
30246
+ return nativeCreate ? (data[key] !== undefined) : hasOwnProperty$6.call(data, key);
30247
30247
  }
30248
30248
 
30249
30249
  /** Used to stand-in for `undefined` hash values. */
@@ -30888,13 +30888,13 @@ var objectTag$3 = '[object Object]';
30888
30888
 
30889
30889
  /** Used for built-in method references. */
30890
30890
  var funcProto = Function.prototype,
30891
- objectProto$5 = Object.prototype;
30891
+ objectProto$6 = Object.prototype;
30892
30892
 
30893
30893
  /** Used to resolve the decompiled source of functions. */
30894
30894
  var funcToString = funcProto.toString;
30895
30895
 
30896
30896
  /** Used to check objects for own properties. */
30897
- var hasOwnProperty$4 = objectProto$5.hasOwnProperty;
30897
+ var hasOwnProperty$5 = objectProto$6.hasOwnProperty;
30898
30898
 
30899
30899
  /** Used to infer the `Object` constructor. */
30900
30900
  var objectCtorString = funcToString.call(Object);
@@ -30935,7 +30935,7 @@ function isPlainObject(value) {
30935
30935
  if (proto === null) {
30936
30936
  return true;
30937
30937
  }
30938
- var Ctor = hasOwnProperty$4.call(proto, 'constructor') && proto.constructor;
30938
+ var Ctor = hasOwnProperty$5.call(proto, 'constructor') && proto.constructor;
30939
30939
  return typeof Ctor == 'function' && Ctor instanceof Ctor &&
30940
30940
  funcToString.call(Ctor) == objectCtorString;
30941
30941
  }
@@ -31740,10 +31740,10 @@ function stubArray() {
31740
31740
  }
31741
31741
 
31742
31742
  /** Used for built-in method references. */
31743
- var objectProto$4 = Object.prototype;
31743
+ var objectProto$5 = Object.prototype;
31744
31744
 
31745
31745
  /** Built-in value references. */
31746
- var propertyIsEnumerable = objectProto$4.propertyIsEnumerable;
31746
+ var propertyIsEnumerable = objectProto$5.propertyIsEnumerable;
31747
31747
 
31748
31748
  /* Built-in method references for those with the same name as other `lodash` methods. */
31749
31749
  var nativeGetSymbols$1 = Object.getOwnPropertySymbols;
@@ -31906,10 +31906,10 @@ if ((DataView$1 && getTag(new DataView$1(new ArrayBuffer(1))) != dataViewTag$3)
31906
31906
  }
31907
31907
 
31908
31908
  /** Used for built-in method references. */
31909
- var objectProto$3 = Object.prototype;
31909
+ var objectProto$4 = Object.prototype;
31910
31910
 
31911
31911
  /** Used to check objects for own properties. */
31912
- var hasOwnProperty$3 = objectProto$3.hasOwnProperty;
31912
+ var hasOwnProperty$4 = objectProto$4.hasOwnProperty;
31913
31913
 
31914
31914
  /**
31915
31915
  * Initializes an array clone.
@@ -31923,7 +31923,7 @@ function initCloneArray(array) {
31923
31923
  result = new array.constructor(length);
31924
31924
 
31925
31925
  // Add properties assigned by `RegExp#exec`.
31926
- if (length && typeof array[0] == 'string' && hasOwnProperty$3.call(array, 'index')) {
31926
+ if (length && typeof array[0] == 'string' && hasOwnProperty$4.call(array, 'index')) {
31927
31927
  result.index = array.index;
31928
31928
  result.input = array.input;
31929
31929
  }
@@ -32384,7 +32384,7 @@ function setCacheAdd(value) {
32384
32384
  * @name has
32385
32385
  * @memberOf SetCache
32386
32386
  * @param {*} value The value to search for.
32387
- * @returns {number} Returns `true` if `value` is found, else `false`.
32387
+ * @returns {boolean} Returns `true` if `value` is found, else `false`.
32388
32388
  */
32389
32389
  function setCacheHas(value) {
32390
32390
  return this.__data__.has(value);
@@ -32667,10 +32667,10 @@ function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {
32667
32667
  var COMPARE_PARTIAL_FLAG$3 = 1;
32668
32668
 
32669
32669
  /** Used for built-in method references. */
32670
- var objectProto$2 = Object.prototype;
32670
+ var objectProto$3 = Object.prototype;
32671
32671
 
32672
32672
  /** Used to check objects for own properties. */
32673
- var hasOwnProperty$2 = objectProto$2.hasOwnProperty;
32673
+ var hasOwnProperty$3 = objectProto$3.hasOwnProperty;
32674
32674
 
32675
32675
  /**
32676
32676
  * A specialized version of `baseIsEqualDeep` for objects with support for
@@ -32698,7 +32698,7 @@ function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
32698
32698
  var index = objLength;
32699
32699
  while (index--) {
32700
32700
  var key = objProps[index];
32701
- if (!(isPartial ? key in other : hasOwnProperty$2.call(other, key))) {
32701
+ if (!(isPartial ? key in other : hasOwnProperty$3.call(other, key))) {
32702
32702
  return false;
32703
32703
  }
32704
32704
  }
@@ -32759,10 +32759,10 @@ var argsTag = '[object Arguments]',
32759
32759
  objectTag = '[object Object]';
32760
32760
 
32761
32761
  /** Used for built-in method references. */
32762
- var objectProto$1 = Object.prototype;
32762
+ var objectProto$2 = Object.prototype;
32763
32763
 
32764
32764
  /** Used to check objects for own properties. */
32765
- var hasOwnProperty$1 = objectProto$1.hasOwnProperty;
32765
+ var hasOwnProperty$2 = objectProto$2.hasOwnProperty;
32766
32766
 
32767
32767
  /**
32768
32768
  * A specialized version of `baseIsEqual` for arrays and objects which performs
@@ -32805,8 +32805,8 @@ function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
32805
32805
  : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
32806
32806
  }
32807
32807
  if (!(bitmask & COMPARE_PARTIAL_FLAG$2)) {
32808
- var objIsWrapped = objIsObj && hasOwnProperty$1.call(object, '__wrapped__'),
32809
- othIsWrapped = othIsObj && hasOwnProperty$1.call(other, '__wrapped__');
32808
+ var objIsWrapped = objIsObj && hasOwnProperty$2.call(object, '__wrapped__'),
32809
+ othIsWrapped = othIsObj && hasOwnProperty$2.call(other, '__wrapped__');
32810
32810
 
32811
32811
  if (objIsWrapped || othIsWrapped) {
32812
32812
  var objUnwrapped = objIsWrapped ? object.value() : object,
@@ -34349,10 +34349,10 @@ var mapTag = '[object Map]',
34349
34349
  setTag = '[object Set]';
34350
34350
 
34351
34351
  /** Used for built-in method references. */
34352
- var objectProto = Object.prototype;
34352
+ var objectProto$1 = Object.prototype;
34353
34353
 
34354
34354
  /** Used to check objects for own properties. */
34355
- var hasOwnProperty = objectProto.hasOwnProperty;
34355
+ var hasOwnProperty$1 = objectProto$1.hasOwnProperty;
34356
34356
 
34357
34357
  /**
34358
34358
  * Checks if `value` is an empty object, collection, map, or set.
@@ -34404,7 +34404,7 @@ function isEmpty(value) {
34404
34404
  return !baseKeys(value).length;
34405
34405
  }
34406
34406
  for (var key in value) {
34407
- if (hasOwnProperty.call(value, key)) {
34407
+ if (hasOwnProperty$1.call(value, key)) {
34408
34408
  return false;
34409
34409
  }
34410
34410
  }
@@ -34628,6 +34628,12 @@ var merge$1 = createAssigner(function(object, source, srcIndex) {
34628
34628
  baseMerge(object, source, srcIndex);
34629
34629
  });
34630
34630
 
34631
+ /** Used for built-in method references. */
34632
+ var objectProto = Object.prototype;
34633
+
34634
+ /** Used to check objects for own properties. */
34635
+ var hasOwnProperty = objectProto.hasOwnProperty;
34636
+
34631
34637
  /**
34632
34638
  * The base implementation of `_.unset`.
34633
34639
  *
@@ -34638,8 +34644,34 @@ var merge$1 = createAssigner(function(object, source, srcIndex) {
34638
34644
  */
34639
34645
  function baseUnset(object, path) {
34640
34646
  path = castPath(path, object);
34641
- object = parent$1(object, path);
34642
- return object == null || delete object[toKey(last$1(path))];
34647
+
34648
+ // Prevent prototype pollution:
34649
+ // https://github.com/lodash/lodash/security/advisories/GHSA-xxjr-mmjv-4gpg
34650
+ // https://github.com/lodash/lodash/security/advisories/GHSA-f23m-r3pf-42rh
34651
+ var index = -1,
34652
+ length = path.length;
34653
+
34654
+ if (!length) {
34655
+ return true;
34656
+ }
34657
+
34658
+ while (++index < length) {
34659
+ var key = toKey(path[index]);
34660
+
34661
+ // Always block "__proto__" anywhere in the path if it's not expected
34662
+ if (key === '__proto__' && !hasOwnProperty.call(object, '__proto__')) {
34663
+ return false;
34664
+ }
34665
+
34666
+ // Block constructor/prototype as non-terminal traversal keys to prevent
34667
+ // escaping the object graph into built-in constructors and prototypes.
34668
+ if ((key === 'constructor' || key === 'prototype') && index < length - 1) {
34669
+ return false;
34670
+ }
34671
+ }
34672
+
34673
+ var obj = parent$1(object, path);
34674
+ return obj == null || delete obj[toKey(last$1(path))];
34643
34675
  }
34644
34676
 
34645
34677
  /**
@@ -34816,7 +34848,7 @@ function baseOrderBy(collection, iteratees, orders) {
34816
34848
  if (isArray(iteratee)) {
34817
34849
  return function(value) {
34818
34850
  return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);
34819
- }
34851
+ };
34820
34852
  }
34821
34853
  return iteratee;
34822
34854
  });
@@ -37685,11 +37717,22 @@ function requireConventions () {
37685
37717
  XMLNS: 'http://www.w3.org/2000/xmlns/',
37686
37718
  });
37687
37719
 
37720
+ //[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]
37721
+ //[4a] NameChar ::= NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]
37722
+ //[5] Name ::= NameStartChar (NameChar)*
37723
+ 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
37724
+ var nameChar = new RegExp("[\\-\\.0-9"+nameStartChar.source.slice(1,-1)+"\\u00B7\\u0300-\\u036F\\u203F-\\u2040]");
37725
+ var tagNamePattern = new RegExp('^'+nameStartChar.source+nameChar.source+'*(?:\:'+nameStartChar.source+nameChar.source+'*)?$');
37726
+ //var tagNamePattern = /^[a-zA-Z_][\w\-\.]*(?:\:[a-zA-Z_][\w\-\.]*)?$/
37727
+
37688
37728
  conventions.assign = assign;
37689
37729
  conventions.find = find;
37690
37730
  conventions.freeze = freeze;
37691
37731
  conventions.MIME_TYPE = MIME_TYPE;
37692
37732
  conventions.NAMESPACE = NAMESPACE;
37733
+ conventions.nameStartChar = nameStartChar;
37734
+ conventions.nameChar = nameChar;
37735
+ conventions.tagNamePattern = tagNamePattern;
37693
37736
  return conventions;
37694
37737
  }
37695
37738
 
@@ -37702,6 +37745,7 @@ function requireDom () {
37702
37745
 
37703
37746
  var find = conventions.find;
37704
37747
  var NAMESPACE = conventions.NAMESPACE;
37748
+ var tagNamePattern = conventions.tagNamePattern;
37705
37749
 
37706
37750
  /**
37707
37751
  * A prerequisite for `[].filter`, to drop elements that are empty
@@ -37933,6 +37977,13 @@ function requireDom () {
37933
37977
  * used for attributes or DocumentType entities
37934
37978
  */
37935
37979
  function NamedNodeMap() {
37980
+ // nodeName -> Attr membership index; lets the parse-time de-duplication in
37981
+ // setNamedItem resolve an existing attribute in O(1) instead of scanning the
37982
+ // list, so building an element with M attributes costs O(M) rather than O(M^2).
37983
+ // The numbered entries and length remain the sole authority for attribute order.
37984
+ // Object.create(null) so an attribute named __proto__ or constructor is an
37985
+ // ordinary key.
37986
+ this._nameIndex = Object.create(null);
37936
37987
  }
37937
37988
  function _findNodeIndex(list,node){
37938
37989
  var i = list.length;
@@ -37941,12 +37992,27 @@ function requireDom () {
37941
37992
  }
37942
37993
  }
37943
37994
 
37995
+ function _nnmIndexAdd(list, attr) {
37996
+ list._nameIndex[attr.nodeName] = attr;
37997
+ }
37998
+ function _nnmIndexRemove(list, attr) {
37999
+ // Only drop the entry if it still points at this attribute; a replacement with
38000
+ // a different nodeName may already have re-keyed it.
38001
+ if (list._nameIndex[attr.nodeName] === attr) {
38002
+ delete list._nameIndex[attr.nodeName];
38003
+ }
38004
+ }
38005
+
37944
38006
  function _addNamedNode(el,list,newAttr,oldAttr){
37945
38007
  if(oldAttr){
37946
38008
  list[_findNodeIndex(list,oldAttr)] = newAttr;
38009
+ // oldAttr leaves the list; drop its index entry (its nodeName may differ
38010
+ // from newAttr's when the replacement came via setNamedItemNS).
38011
+ _nnmIndexRemove(list, oldAttr);
37947
38012
  }else {
37948
38013
  list[list.length++] = newAttr;
37949
38014
  }
38015
+ _nnmIndexAdd(list, newAttr);
37950
38016
  if(el){
37951
38017
  newAttr.ownerElement = el;
37952
38018
  var doc = el.ownerDocument;
@@ -37965,6 +38031,7 @@ function requireDom () {
37965
38031
  list[i] = list[++i];
37966
38032
  }
37967
38033
  list.length = lastIndex;
38034
+ _nnmIndexRemove(list, attr);
37968
38035
  if(el){
37969
38036
  var doc = el.ownerDocument;
37970
38037
  if(doc){
@@ -37998,7 +38065,11 @@ function requireDom () {
37998
38065
  if(el && el!=this._ownerElement){
37999
38066
  throw new DOMException(INUSE_ATTRIBUTE_ERR);
38000
38067
  }
38001
- var oldAttr = this.getNamedItem(attr.nodeName);
38068
+ // Resolve any existing attribute with the same nodeName through the O(1)
38069
+ // membership index rather than an O(M) scan — this is the parse-dedup hot
38070
+ // path (setAttributeNode per attribute during parse). Absent -> undefined,
38071
+ // matching getNamedItem's contract.
38072
+ var oldAttr = this._nameIndex[attr.nodeName];
38002
38073
  _addNamedNode(this._ownerElement,this,attr,oldAttr);
38003
38074
  return oldAttr;
38004
38075
  },
@@ -38231,9 +38302,38 @@ function requireDom () {
38231
38302
  while (child) {
38232
38303
  var next = child.nextSibling;
38233
38304
  if (next !== null && next.nodeType === TEXT_NODE && child.nodeType === TEXT_NODE) {
38234
- node.removeChild(next);
38235
- child.appendData(next.data);
38236
- // Do not advance child: re-check new nextSibling for another text run
38305
+ // Merge the whole run of adjacent text nodes at once: gather the
38306
+ // following text siblings' data, unlink them in a single pass, and
38307
+ // re-index the child list a single time. Per-sibling `removeChild`
38308
+ // (each an O(K) re-index) plus per-sibling `appendData` (each an O(K)
38309
+ // string rebuild) is O(K^2) over a long run of single-character text
38310
+ // nodes; this keeps it O(K). The first text node of the run survives
38311
+ // and carries the concatenated data, preserving node identity and
38312
+ // locator semantics.
38313
+ var tail = [];
38314
+ var sibling = next;
38315
+ while (sibling !== null && sibling.nodeType === TEXT_NODE) {
38316
+ tail.push(sibling.data);
38317
+ sibling = sibling.nextSibling;
38318
+ }
38319
+ // `sibling` is now the first non-text node after the run, or null.
38320
+ var removed = child.nextSibling;
38321
+ while (removed !== sibling) {
38322
+ var following = removed.nextSibling;
38323
+ removed.parentNode = null;
38324
+ removed.previousSibling = null;
38325
+ removed.nextSibling = null;
38326
+ removed = following;
38327
+ }
38328
+ child.nextSibling = sibling;
38329
+ if (sibling !== null) {
38330
+ sibling.previousSibling = child;
38331
+ } else {
38332
+ node.lastChild = child;
38333
+ }
38334
+ child.appendData(tail.join('')); // single O(K) string rebuild
38335
+ _onUpdateChild(node.ownerDocument, node); // single O(K) re-index
38336
+ child = sibling;
38237
38337
  } else {
38238
38338
  child = next;
38239
38339
  }
@@ -39044,8 +39144,10 @@ function requireDom () {
39044
39144
  * - it does not do any input validation on the arguments and doesn't throw "InvalidCharacterError".
39045
39145
  *
39046
39146
  * Note: When the resulting document is serialized with `requireWellFormed: true`, the
39047
- * serializer throws with code `INVALID_STATE_ERR` if `.data` contains `?>` (W3C DOM Parsing
39048
- * §3.2.1.7). Without that option the data is emitted verbatim.
39147
+ * serializer throws with code `INVALID_STATE_ERR` if `.target` is not a valid XML `NCName`
39148
+ * (a `Name` with no colon) or is an ASCII case-insensitive match for `"xml"`, or if `.data`
39149
+ * contains `?>` (W3C DOM Parsing §3.2.1.7). Without that option the target and data are
39150
+ * emitted verbatim.
39049
39151
  *
39050
39152
  * @param {string} target
39051
39153
  * @param {string} data
@@ -39070,7 +39172,27 @@ function requireDom () {
39070
39172
  node.specified = true;
39071
39173
  return node;
39072
39174
  },
39175
+ /**
39176
+ * Creates an EntityReference object, serialized as `&name;`.
39177
+ *
39178
+ * The `name` is validated against the XML `Name` production at creation time; an invalid name
39179
+ * throws a `DOMException` with code `INVALID_CHARACTER_ERR`. When the resulting node is
39180
+ * serialized with `requireWellFormed: true`, the serializer re-validates `nodeName` and throws
39181
+ * a `DOMException` with code `INVALID_STATE_ERR` if a later `nodeName` mutation made it invalid;
39182
+ * without that option the name is emitted verbatim.
39183
+ *
39184
+ * Note: xmldom does not expand entities — the parser resolves entity references inline and never
39185
+ * constructs `EntityReference` nodes, so this method is the only producer.
39186
+ *
39187
+ * @param {string} name The name of the entity to reference.
39188
+ * @returns {EntityReference}
39189
+ * @throws {DOMException} With code `INVALID_CHARACTER_ERR` when `name` is not a valid XML `Name`.
39190
+ * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-392B75AE
39191
+ */
39073
39192
  createEntityReference : function(name){
39193
+ if (!tagNamePattern.test(name)) {
39194
+ throw new DOMException(INVALID_CHARACTER_ERR, 'not a valid xml name "' + name + '"');
39195
+ }
39074
39196
  var node = new EntityReference();
39075
39197
  node.ownerDocument = this;
39076
39198
  node.nodeName = name;
@@ -39282,15 +39404,16 @@ function requireDom () {
39282
39404
  /**
39283
39405
  * Represents a DocumentType node (the `<!DOCTYPE ...>` declaration).
39284
39406
  *
39285
- * `publicId`, `systemId`, and `internalSubset` are plain own-property assignments.
39407
+ * `name`, `publicId`, `systemId`, and `internalSubset` are plain own-property assignments.
39286
39408
  * xmldom does not enforce the `readonly` constraint declared by the WHATWG DOM spec —
39287
39409
  * direct property writes succeed silently. Values are serialized verbatim when
39288
39410
  * `requireWellFormed` is false (the default). When the serializer is invoked with
39289
39411
  * `requireWellFormed: true` (via the 4th-parameter options object), it validates each
39290
- * field and throws `DOMException` with code `INVALID_STATE_ERR` on invalid values.
39412
+ * field — including `name`, which is checked against the XML `Name` production — and throws
39413
+ * `DOMException` with code `INVALID_STATE_ERR` on invalid values.
39291
39414
  *
39292
39415
  * @class
39293
- * @see https://developer.mozilla.org/en-US/docs/Web/API/DocumentType MDN
39416
+ * @see https://developer.mozilla.org/docs/Web/API/DocumentType MDN
39294
39417
  */
39295
39418
  function DocumentType() {
39296
39419
  } DocumentType.prototype.nodeType = DOCUMENT_TYPE_NODE;
@@ -39304,6 +39427,20 @@ function requireDom () {
39304
39427
  } Entity.prototype.nodeType = ENTITY_NODE;
39305
39428
  _extends(Entity,Node);
39306
39429
 
39430
+ /**
39431
+ * Represents an EntityReference node, serialized as `&nodeName;`.
39432
+ *
39433
+ * `nodeName` is the referenced entity's name, stored verbatim. When serialized with
39434
+ * `requireWellFormed: true`, the serializer validates `nodeName` against the XML `Name` production
39435
+ * and throws a `DOMException` with code `INVALID_STATE_ERR` if it does not match; without that
39436
+ * option the name is emitted verbatim between `&` and `;`.
39437
+ *
39438
+ * Note: xmldom does not expand entities — the parser resolves entity references inline and never
39439
+ * constructs `EntityReference` nodes, so the only producer is `Document.createEntityReference`.
39440
+ *
39441
+ * @class
39442
+ * @see https://www.w3.org/TR/xml/#NT-Name
39443
+ */
39307
39444
  function EntityReference() {
39308
39445
  } EntityReference.prototype.nodeType = ENTITY_REFERENCE_NODE;
39309
39446
  _extends(EntityReference,Node);
@@ -39341,14 +39478,20 @@ function requireDom () {
39341
39478
  * @returns {string}
39342
39479
  * @throws {DOMException}
39343
39480
  * With code `INVALID_STATE_ERR` when `requireWellFormed` is `true` and:
39481
+ * - an Element's qualified name (including any namespace prefix) is not a valid XML QName,
39482
+ * - an attribute's qualified name (including a synthesized `xmlns:` namespace declaration) is
39483
+ * not a valid XML QName,
39344
39484
  * - a CDATASection node's data contains `"]]>"`,
39345
39485
  * - a Comment node's data contains `"-->"` (bare `"--"` does not throw on this branch),
39346
- * - a ProcessingInstruction's data contains `"?>"`,
39486
+ * - a ProcessingInstruction's target is not a valid XML `NCName` (a `Name` with no colon) or is
39487
+ * an ASCII case-insensitive match for `"xml"`, or its data contains `"?>"`,
39488
+ * - a DocumentType's `name` is not a valid XML `Name` (XML 1.0 production [5]),
39347
39489
  * - a DocumentType's `publicId` is non-empty and does not match the XML `PubidLiteral`
39348
39490
  * production,
39349
39491
  * - a DocumentType's `systemId` is non-empty and does not match the XML `SystemLiteral`
39350
- * production, or
39351
- * - a DocumentType's `internalSubset` contains `"]>"`.
39492
+ * production,
39493
+ * - a DocumentType's `internalSubset` contains `"]>"`, or
39494
+ * - an EntityReference's `nodeName` is not a valid XML `Name` (XML 1.0 production [5]).
39352
39495
  * Note: xmldom does not enforce `readonly` on DocumentType fields — direct property
39353
39496
  * writes succeed and are covered by the serializer-level checks above.
39354
39497
  * @see https://html.spec.whatwg.org/#dom-xmlserializer-serializetostring
@@ -39422,7 +39565,10 @@ function requireDom () {
39422
39565
  * @see https://www.w3.org/TR/xml11/#AVNormalize
39423
39566
  * @see https://w3c.github.io/DOM-Parsing/#serializing-an-element-s-attributes
39424
39567
  */
39425
- function addSerializedAttribute(buf, qualifiedName, value) {
39568
+ function addSerializedAttribute(buf, qualifiedName, value, requireWellFormed) {
39569
+ if (requireWellFormed && !tagNamePattern.test(qualifiedName)) {
39570
+ throw new DOMException(INVALID_STATE_ERR, 'The attribute name "' + qualifiedName + '" is not a valid XML QName');
39571
+ }
39426
39572
  buf.push(' ', qualifiedName, '="', value.replace(/[<>&"\t\n\r]/g, _xmlEncoder), '"');
39427
39573
  }
39428
39574
 
@@ -39488,6 +39634,9 @@ function requireDom () {
39488
39634
  }
39489
39635
  }
39490
39636
 
39637
+ if (requireWellFormed && !tagNamePattern.test(prefixedNodeName)) {
39638
+ throw new DOMException(INVALID_STATE_ERR, 'The element name "' + prefixedNodeName + '" is not a valid XML QName');
39639
+ }
39491
39640
  buf.push('<', prefixedNodeName);
39492
39641
 
39493
39642
  // Build a fresh namespace snapshot for this element's children.
@@ -39507,7 +39656,7 @@ function requireDom () {
39507
39656
  if (needNamespaceDefine(attr, html, childNs)) {
39508
39657
  var attrPrefix = attr.prefix || '';
39509
39658
  var uri = attr.namespaceURI;
39510
- addSerializedAttribute(buf, attrPrefix ? 'xmlns:' + attrPrefix : 'xmlns', uri);
39659
+ addSerializedAttribute(buf, attrPrefix ? 'xmlns:' + attrPrefix : 'xmlns', uri, requireWellFormed);
39511
39660
  childNs.push({ prefix: attrPrefix, namespace: uri });
39512
39661
  }
39513
39662
  // Apply nodeFilter and serialize the attribute.
@@ -39516,7 +39665,7 @@ function requireDom () {
39516
39665
  if (typeof filteredAttr === 'string') {
39517
39666
  buf.push(filteredAttr);
39518
39667
  } else {
39519
- addSerializedAttribute(buf, filteredAttr.name, filteredAttr.value);
39668
+ addSerializedAttribute(buf, filteredAttr.name, filteredAttr.value, requireWellFormed);
39520
39669
  }
39521
39670
  }
39522
39671
  }
@@ -39525,7 +39674,7 @@ function requireDom () {
39525
39674
  if (nodeName === prefixedNodeName && needNamespaceDefine(n, html, childNs)) {
39526
39675
  var nodePrefix = n.prefix || '';
39527
39676
  var uri = n.namespaceURI;
39528
- addSerializedAttribute(buf, nodePrefix ? 'xmlns:' + nodePrefix : 'xmlns', uri);
39677
+ addSerializedAttribute(buf, nodePrefix ? 'xmlns:' + nodePrefix : 'xmlns', uri, requireWellFormed);
39529
39678
  childNs.push({ prefix: nodePrefix, namespace: uri });
39530
39679
  }
39531
39680
 
@@ -39558,7 +39707,7 @@ function requireDom () {
39558
39707
  return { ns: ns.slice(), isHTML: html, tag: null };
39559
39708
 
39560
39709
  case ATTRIBUTE_NODE:
39561
- addSerializedAttribute(buf, n.name, n.value);
39710
+ addSerializedAttribute(buf, n.name, n.value, requireWellFormed);
39562
39711
  return null;
39563
39712
 
39564
39713
  case TEXT_NODE:
@@ -39597,6 +39746,9 @@ function requireDom () {
39597
39746
 
39598
39747
  case DOCUMENT_TYPE_NODE:
39599
39748
  if (requireWellFormed) {
39749
+ if (!tagNamePattern.test(n.name)) {
39750
+ throw new DOMException(INVALID_STATE_ERR, 'The doctype name "' + n.name + '" is not a valid XML Name');
39751
+ }
39600
39752
  if (n.publicId && !/^("[\x20\r\na-zA-Z0-9\-()+,.\/:=?;!*#@$_%']*"|'[\x20\r\na-zA-Z0-9\-()+,.\/:=?;!*#@$_%'"]*')$/.test(n.publicId)) {
39601
39753
  throw new DOMException(INVALID_STATE_ERR, 'DocumentType publicId is not a valid PubidLiteral');
39602
39754
  }
@@ -39628,13 +39780,27 @@ function requireDom () {
39628
39780
  return null;
39629
39781
 
39630
39782
  case PROCESSING_INSTRUCTION_NODE:
39631
- if (requireWellFormed && n.data.indexOf('?>') !== -1) {
39632
- throw new DOMException(INVALID_STATE_ERR, 'The ProcessingInstruction data contains "?>"');
39783
+ if (requireWellFormed) {
39784
+ if (!tagNamePattern.test(n.target) || n.target.indexOf(':') !== -1 || n.target.toLowerCase() === 'xml') {
39785
+ throw new DOMException(
39786
+ INVALID_STATE_ERR,
39787
+ 'The processing instruction target "' + n.target + '" is not a valid XML NCName or is reserved'
39788
+ );
39789
+ }
39790
+ if (n.data.indexOf('?>') !== -1) {
39791
+ throw new DOMException(INVALID_STATE_ERR, 'The ProcessingInstruction data contains "?>"');
39792
+ }
39633
39793
  }
39634
39794
  buf.push('<?', n.target, ' ', n.data, '?>');
39635
39795
  return null;
39636
39796
 
39637
39797
  case ENTITY_REFERENCE_NODE:
39798
+ if (requireWellFormed && !tagNamePattern.test(n.nodeName)) {
39799
+ throw new DOMException(
39800
+ INVALID_STATE_ERR,
39801
+ 'The entity reference name "' + n.nodeName + '" is not a valid XML Name'
39802
+ );
39803
+ }
39638
39804
  buf.push('&', n.nodeName, ';');
39639
39805
  return null;
39640
39806
 
@@ -42015,14 +42181,8 @@ function requireSax () {
42015
42181
  if (hasRequiredSax) return sax;
42016
42182
  hasRequiredSax = 1;
42017
42183
  var NAMESPACE = requireConventions().NAMESPACE;
42184
+ var tagNamePattern = requireConventions().tagNamePattern;
42018
42185
 
42019
- //[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]
42020
- //[4a] NameChar ::= NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]
42021
- //[5] Name ::= NameStartChar (NameChar)*
42022
- 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
42023
- var nameChar = new RegExp("[\\-\\.0-9"+nameStartChar.source.slice(1,-1)+"\\u00B7\\u0300-\\u036F\\u203F-\\u2040]");
42024
- var tagNamePattern = new RegExp('^'+nameStartChar.source+nameChar.source+'*(?:\:'+nameStartChar.source+nameChar.source+'*)?$');
42025
- //var tagNamePattern = /^[a-zA-Z_][\w\-\.]*(?:\:[a-zA-Z_][\w\-\.]*)?$/
42026
42186
  //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(',')
42027
42187
 
42028
42188
  //S_TAG, S_ATTR, S_EQ, S_ATTR_NOQUOT_VALUE
@@ -42133,7 +42293,13 @@ function requireSax () {
42133
42293
  switch(source.charAt(tagStart+1)){
42134
42294
  case '/':
42135
42295
  var end = source.indexOf('>',tagStart+3);
42136
- var tagName = source.substring(tagStart + 2, end).replace(/[ \t\n\r]+$/g, '');
42296
+ // Anchored trailing-whitespace trim. The former `/[ \t\n\r]+$/g` backtracked
42297
+ // quadratically on a name shaped `whitespace-run + non-whitespace char`
42298
+ // (an end tag `</ … x>`): from every start position it extended `[ws]+`
42299
+ // to the end and then failed the `$` anchor. This anchored form matches the
42300
+ // whole string once and captures everything up to the last non-whitespace
42301
+ // character, so it trims in linear time with byte-identical output.
42302
+ var tagName = source.substring(tagStart + 2, end).replace(/^([\s\S]*?[^ \t\n\r])?[ \t\n\r]*$/, '$1');
42137
42303
  var config = parseStack.pop();
42138
42304
  if(end<0){
42139
42305
 
@@ -42144,6 +42310,14 @@ function requireSax () {
42144
42310
  tagName = tagName.replace(/[\s<].*/,'');
42145
42311
  errorHandler.error("end tag name: "+tagName+' maybe not complete');
42146
42312
  end = tagStart+1+tagName.length;
42313
+ }else if(/[ \t\n\r]/.test(tagName) && tagNamePattern.test(tagName.split(/[ \t\n\r]/)[0])){
42314
+ // The XML `ETag` production is `'</' Name S? '>'`: only optional whitespace may follow
42315
+ // the `Name`. A valid `Name` followed by whitespace and non-whitespace residue (e.g.
42316
+ // `</a\nbogus>` or `</a bogus>`) is not well-formed, but historically it was silently
42317
+ // accepted (the malformed end tag ignored, the residue dropped, the element left on the
42318
+ // stack). Report it as a recoverable `error` (which a custom errorHandler may escalate to
42319
+ // fatal) while keeping the existing recovery so the parsed DOM stays byte-identical.
42320
+ errorHandler.error('end tag name is followed by whitespace and trailing content: "'+tagName+'"');
42147
42321
  }
42148
42322
  var localNSMap = config.localNSMap;
42149
42323
  var endMatch = config.tagName == tagName;
@@ -42267,6 +42441,15 @@ function requireSax () {
42267
42441
  var s = S_TAG;//status
42268
42442
  while(true){
42269
42443
  var c = source.charAt(p);
42444
+ if (s === S_TAG && c === '<') {
42445
+ // A `<` can never occur inside a tag name. Without this guard the scan runs
42446
+ // on to the next `>` (or EOF) before the tag name is rejected, so a document
42447
+ // with many `<` inside a malformed tag makes each one-character recovery step
42448
+ // re-scan to the distant `>` — O(n^2). Stopping at the `<` keeps each recovery
42449
+ // step bounded. The candidate scanned so far is reported raw, consistent with
42450
+ // the sibling invalid-tag-name throw below.
42451
+ throw new Error('unexpected < in tag name: ' + source.slice(start, p));
42452
+ }
42270
42453
  switch(c){
42271
42454
  case '=':
42272
42455
  if(s === S_ATTR){//attrName
@@ -42459,9 +42642,13 @@ function requireSax () {
42459
42642
  if(nsPrefix !== false){//hack!!
42460
42643
  if(localNSMap == null){
42461
42644
  localNSMap = {};
42462
- //console.log(currentNSMap,0)
42463
- _copy(currentNSMap,currentNSMap={});
42464
- //console.log(currentNSMap,1)
42645
+ // Derive the child scope's namespace map by prototype-chain inheritance
42646
+ // instead of a flat copy: lookups inherit ancestor prefixes transparently,
42647
+ // so a document nesting N scopes retains O(N) map entries rather than
42648
+ // sum(1..N) = O(N^2). localNSMap stays a flat own-only record of the
42649
+ // prefixes declared at THIS element, so own-property enumeration
42650
+ // (endPrefixMapping below) still reports only local declarations.
42651
+ currentNSMap = Object.create(currentNSMap);
42465
42652
  }
42466
42653
  currentNSMap[nsPrefix] = localNSMap[nsPrefix] = value;
42467
42654
  a.uri = NAMESPACE.XMLNS;
@@ -100524,13 +100711,13 @@ const FIRST_TIME_WATCH = {};
100524
100711
  Object.freeze(FIRST_TIME_WATCH);
100525
100712
  const arrayConsumer = (listenerFn, restExpr, newVal, oldVal) => {
100526
100713
  let data = newVal, formattedData;
100527
- if (isArray(data)) {
100714
+ if (_.isArray(data)) {
100528
100715
  formattedData = data.map(function (datum) {
100529
100716
  return findValueOf(datum, restExpr);
100530
100717
  });
100531
100718
  // If resulting structure is an array of array, flatten it
100532
- if (isArray(formattedData[0])) {
100533
- formattedData = flatten$1(formattedData);
100719
+ if (_.isArray(formattedData[0])) {
100720
+ formattedData = _.flatten(formattedData);
100534
100721
  }
100535
100722
  listenerFn(formattedData, oldVal);
100536
100723
  }
@@ -100575,6 +100762,19 @@ const $watch = (expr, $scope, $locals, listener, identifier = watchIdGenerator.n
100575
100762
  };
100576
100763
  const $unwatch = identifier => registry.delete(identifier);
100577
100764
  window.watchRegistry = registry;
100765
+ window.__WM_DEBUG_WATCHERS__ = false;
100766
+ /*export const $invokeWatchers = (force?: boolean, ignoreMuted?: boolean) => {
100767
+ if (force) {
100768
+ triggerWatchers(ignoreMuted);
100769
+ } else {
100770
+
100771
+ if (skipWatchers) {
100772
+ skipWatchers = false;
100773
+ return;
100774
+ }
100775
+ debouncedTriggerWatchers();
100776
+ }
100777
+ };*/
100578
100778
  const $appDigest = (() => {
100579
100779
  return (force) => {
100580
100780
  {
@@ -100652,6 +100852,7 @@ const REGEX = {
100652
100852
  SUPPORTED_AUDIO_FORMAT: /\.(mp3|ogg|webm|wma|3gp|wav|m4a)$/i,
100653
100853
  SUPPORTED_VIDEO_FORMAT: /\.(mp4|ogg|webm|wmv|mpeg|mpg|avi|mov)$/i,
100654
100854
  VALID_WEB_URL: /^(http[s]?:\/\/)(www\.){0,1}[a-zA-Z0-9=:?\/\.\-]+(\.[a-zA-Z]{2,5}[\.]{0,1})?/,
100855
+ VALID_IMAGE_URL: /^(https?|blob|data|file|ftp):/i,
100655
100856
  REPLACE_PATTERN: /\$\{([^\}]+)\}/g,
100656
100857
  DATA_URL: /^\s*data:([a-z]+\/[a-z0-9-+.]+(;[a-z-]+=[a-z0-9-]+)?)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s]*)\s*$/i,
100657
100858
  ISO_DATE_FORMAT: /(\d{4}-\d{2}-\d{2})T(\d{2}:\d{2}:\d{2})(\.\d+)?([+-]\d{2}:?\d{2}|Z)$/
@@ -100874,6 +101075,9 @@ const isVideoFile = (fileName) => {
100874
101075
  const isValidWebURL = (url) => {
100875
101076
  return (REGEX.VALID_WEB_URL).test(url);
100876
101077
  };
101078
+ const isValidImageUrl = (url) => {
101079
+ return (REGEX.VALID_IMAGE_URL).test(url?.trim());
101080
+ };
100877
101081
  /*This function returns the url to the resource after checking the validity of url*/
100878
101082
  const getResourceURL = (urlString) => {
100879
101083
  return urlString;
@@ -102127,6 +102331,7 @@ var Utils = /*#__PURE__*/Object.freeze({
102127
102331
  isPageable: isPageable,
102128
102332
  isSafari: isSafari,
102129
102333
  isTablet: isTablet,
102334
+ isValidImageUrl: isValidImageUrl,
102130
102335
  isValidWebURL: isValidWebURL,
102131
102336
  isVideoFile: isVideoFile,
102132
102337
  loadScript: loadScript,