@schukai/monster 1.20.0 → 1.21.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (144) hide show
  1. package/CHANGELOG +24 -0
  2. package/README.md +4 -4
  3. package/dist/modules/constants.js +1 -1
  4. package/dist/modules/constraints/abstract.js +1 -1
  5. package/dist/modules/constraints/abstractoperator.js +1 -1
  6. package/dist/modules/constraints/andoperator.js +1 -1
  7. package/dist/modules/constraints/invalid.js +1 -1
  8. package/dist/modules/constraints/isarray.js +1 -1
  9. package/dist/modules/constraints/isobject.js +1 -1
  10. package/dist/modules/constraints/namespace.js +1 -1
  11. package/dist/modules/constraints/oroperator.js +1 -1
  12. package/dist/modules/constraints/valid.js +1 -1
  13. package/dist/modules/data/buildmap.js +1 -1
  14. package/dist/modules/data/diff.js +1 -1
  15. package/dist/modules/data/extend.js +2 -2
  16. package/dist/modules/data/namespace.js +1 -1
  17. package/dist/modules/data/pathfinder.js +1 -1
  18. package/dist/modules/data/pipe.js +1 -1
  19. package/dist/modules/data/transformer.js +1 -1
  20. package/dist/modules/dom/assembler.js +1 -1
  21. package/dist/modules/dom/attributes.js +1 -1
  22. package/dist/modules/dom/constants.js +1 -1
  23. package/dist/modules/dom/customcontrol.js +1 -1
  24. package/dist/modules/dom/customelement.js +2 -2
  25. package/dist/modules/dom/events.js +1 -1
  26. package/dist/modules/dom/locale.js +1 -1
  27. package/dist/modules/dom/namespace.js +1 -1
  28. package/dist/modules/dom/template.js +1 -1
  29. package/dist/modules/dom/theme.js +1 -1
  30. package/dist/modules/dom/updater.js +1 -1
  31. package/dist/modules/dom/util.js +1 -1
  32. package/dist/modules/i18n/locale.js +1 -1
  33. package/dist/modules/i18n/namespace.js +1 -1
  34. package/dist/modules/i18n/provider.js +1 -1
  35. package/dist/modules/i18n/providers/fetch.js +1 -1
  36. package/dist/modules/i18n/providers/namespace.js +1 -1
  37. package/dist/modules/i18n/translations.js +1 -1
  38. package/dist/modules/logging/handler/console.js +1 -1
  39. package/dist/modules/logging/handler/namespace.js +1 -1
  40. package/dist/modules/logging/handler.js +1 -1
  41. package/dist/modules/logging/logentry.js +1 -1
  42. package/dist/modules/logging/logger.js +1 -1
  43. package/dist/modules/logging/namespace.js +1 -1
  44. package/dist/modules/math/namespace.js +1 -1
  45. package/dist/modules/math/random.js +1 -1
  46. package/dist/modules/monster.js +1 -1
  47. package/dist/modules/namespace.js +1 -1
  48. package/dist/modules/text/formatter.js +1 -1
  49. package/dist/modules/text/namespace.js +1 -1
  50. package/dist/modules/types/base.js +1 -1
  51. package/dist/modules/types/basewithoptions.js +1 -1
  52. package/dist/modules/types/binary.js +1 -1
  53. package/dist/modules/types/dataurl.js +1 -1
  54. package/dist/modules/types/global.js +1 -1
  55. package/dist/modules/types/id.js +1 -1
  56. package/dist/modules/types/is.js +1 -1
  57. package/dist/modules/types/mediatype.js +1 -1
  58. package/dist/modules/types/namespace.js +1 -1
  59. package/dist/modules/types/observer.js +1 -1
  60. package/dist/modules/types/observerlist.js +1 -1
  61. package/dist/modules/types/proxyobserver.js +1 -1
  62. package/dist/modules/types/queue.js +1 -1
  63. package/dist/modules/types/randomid.js +1 -1
  64. package/dist/modules/types/stack.js +1 -1
  65. package/dist/modules/types/tokenlist.js +1 -1
  66. package/dist/modules/types/typeof.js +1 -1
  67. package/dist/modules/types/uniquequeue.js +1 -1
  68. package/dist/modules/types/validate.js +1 -1
  69. package/dist/modules/types/version.js +2 -2
  70. package/dist/modules/util/clone.js +2 -2
  71. package/dist/modules/util/comparator.js +1 -1
  72. package/dist/modules/util/freeze.js +1 -1
  73. package/dist/modules/util/namespace.js +1 -1
  74. package/dist/modules/util/processing.js +2 -0
  75. package/dist/monster.dev.js +389 -308
  76. package/dist/monster.dev.js.map +1 -1
  77. package/dist/monster.js +2 -2
  78. package/package.json +1 -5
  79. package/source/constraints/andoperator.js +5 -5
  80. package/source/constraints/invalid.js +3 -3
  81. package/source/constraints/isarray.js +3 -3
  82. package/source/constraints/isobject.js +3 -3
  83. package/source/constraints/oroperator.js +5 -5
  84. package/source/constraints/valid.js +3 -3
  85. package/source/data/buildmap.js +4 -4
  86. package/source/data/diff.js +3 -3
  87. package/source/data/extend.js +9 -9
  88. package/source/data/pathfinder.js +4 -4
  89. package/source/data/pipe.js +3 -3
  90. package/source/data/transformer.js +4 -4
  91. package/source/dom/assembler.js +2 -2
  92. package/source/dom/attributes.js +24 -24
  93. package/source/dom/customcontrol.js +2 -2
  94. package/source/dom/customelement.js +61 -4
  95. package/source/dom/events.js +4 -4
  96. package/source/dom/locale.js +2 -2
  97. package/source/dom/template.js +4 -4
  98. package/source/dom/theme.js +3 -3
  99. package/source/dom/updater.js +3 -3
  100. package/source/dom/util.js +6 -6
  101. package/source/i18n/locale.js +4 -4
  102. package/source/i18n/provider.js +2 -2
  103. package/source/i18n/providers/fetch.js +2 -2
  104. package/source/i18n/translations.js +2 -2
  105. package/source/logging/handler/console.js +2 -2
  106. package/source/logging/handler.js +2 -2
  107. package/source/logging/logentry.js +2 -2
  108. package/source/logging/logger.js +2 -2
  109. package/source/math/random.js +2 -2
  110. package/source/namespace.js +1 -1
  111. package/source/text/formatter.js +2 -2
  112. package/source/types/base.js +2 -2
  113. package/source/types/basewithoptions.js +2 -2
  114. package/source/types/binary.js +4 -4
  115. package/source/types/dataurl.js +4 -4
  116. package/source/types/global.js +4 -4
  117. package/source/types/id.js +2 -2
  118. package/source/types/is.js +20 -20
  119. package/source/types/mediatype.js +4 -4
  120. package/source/types/observer.js +3 -3
  121. package/source/types/observerlist.js +2 -2
  122. package/source/types/proxyobserver.js +5 -5
  123. package/source/types/queue.js +3 -3
  124. package/source/types/randomid.js +2 -2
  125. package/source/types/stack.js +2 -2
  126. package/source/types/tokenlist.js +2 -2
  127. package/source/types/typeof.js +3 -3
  128. package/source/types/uniquequeue.js +2 -2
  129. package/source/types/validate.js +20 -20
  130. package/source/types/version.js +6 -6
  131. package/source/util/clone.js +16 -6
  132. package/source/util/comparator.js +3 -3
  133. package/source/util/freeze.js +2 -2
  134. package/source/util/processing.js +197 -0
  135. package/test/cases/data/extend.js +9 -0
  136. package/test/cases/monster.js +1 -1
  137. package/test/cases/util/clone.js +31 -0
  138. package/test/cases/util/freeze.js +25 -0
  139. package/test/cases/util/processing.js +110 -0
  140. package/test/web/import.js +2 -0
  141. package/test/web/monster-dev.html +3 -3
  142. package/test/web/monster.html +2 -2
  143. package/test/web/test.html +3 -3
  144. package/test/web/tests.js +3 -3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@schukai/monster",
3
- "version": "1.20.0",
3
+ "version": "1.21.1",
4
4
  "types": "./source/types/package.d.ts",
5
5
  "description": "Monster is a simple library for creating fast, robust and lightweight websites.",
6
6
  "keywords": [
@@ -20,10 +20,6 @@
20
20
  "monster"
21
21
  ],
22
22
  "type": "module",
23
- "exports": {
24
- "import": "./dist/monster.js",
25
- "default": "./dist/monster.js"
26
- },
27
23
  "homepage": "https://monsterjs.org",
28
24
  "repository": {
29
25
  "type": "git",
@@ -12,7 +12,7 @@ import {AbstractOperator} from "./abstractoperator.js";
12
12
  *
13
13
  * ```
14
14
  * <script type="module">
15
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/constraints/andoperator.js';
15
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/constraints/andoperator.js';
16
16
  * new Monster.Constraint.AndOperator();
17
17
  * </script>
18
18
  * ```
@@ -21,16 +21,16 @@ import {AbstractOperator} from "./abstractoperator.js";
21
21
  *
22
22
  * ```
23
23
  * <script type="module">
24
- * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/constraints/andoperator.js';
24
+ * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/constraints/andoperator.js';
25
25
  * new AndOperator();
26
26
  * </script>
27
27
  * ```
28
28
  *
29
29
  * @example
30
30
  *
31
- * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/constraints/valid.js';
32
- * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/constraints/invalid.js';
33
- * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/constraints/andoperator.js';
31
+ * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/constraints/valid.js';
32
+ * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/constraints/invalid.js';
33
+ * import {AndOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/constraints/andoperator.js';
34
34
  *
35
35
  * new AndOperator(
36
36
  * new Valid(), new Valid()).isValid()
@@ -13,7 +13,7 @@ import {AbstractConstraint} from "./abstract.js";
13
13
  *
14
14
  * ```
15
15
  * <script type="module">
16
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/constraints/invalid.js';
16
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/constraints/invalid.js';
17
17
  * new Monster.Constraint.Invalid();
18
18
  * </script>
19
19
  * ```
@@ -22,14 +22,14 @@ import {AbstractConstraint} from "./abstract.js";
22
22
  *
23
23
  * ```
24
24
  * <script type="module">
25
- * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/constraints/invalid.js';
25
+ * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/constraints/invalid.js';
26
26
  * new Invalid();
27
27
  * </script>
28
28
  * ```
29
29
  *
30
30
  * @example
31
31
  *
32
- * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/constraints/invalid.js';
32
+ * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/constraints/invalid.js';
33
33
  *
34
34
  * new Invalid().isValid()
35
35
  * .then(()=>console.log(true))
@@ -12,7 +12,7 @@ import {AbstractConstraint} from "./abstract.js";
12
12
  *
13
13
  * ```
14
14
  * <script type="module">
15
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/constraints/isarray.js';
15
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/constraints/isarray.js';
16
16
  * console.log(new Monster.Constraint.IsArray())
17
17
  * </script>
18
18
  * ```
@@ -21,14 +21,14 @@ import {AbstractConstraint} from "./abstract.js";
21
21
  *
22
22
  * ```
23
23
  * <script type="module">
24
- * import {IsArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/constraints/isarray.js';
24
+ * import {IsArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/constraints/isarray.js';
25
25
  * console.log(new IsArray())
26
26
  * </script>
27
27
  * ```
28
28
  *
29
29
  * @example
30
30
  *
31
- * import {IsArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/constraints/isarray.js';
31
+ * import {IsArray} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/constraints/isarray.js';
32
32
  *
33
33
  * new IsArray()
34
34
  * .isValid([])
@@ -12,7 +12,7 @@ import {AbstractConstraint} from "./abstract.js";
12
12
  *
13
13
  * ```
14
14
  * <script type="module">
15
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/constraints/isobject.js';
15
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/constraints/isobject.js';
16
16
  * console.log(new Monster.Constraint.IsObject())
17
17
  * </script>
18
18
  * ```
@@ -21,14 +21,14 @@ import {AbstractConstraint} from "./abstract.js";
21
21
  *
22
22
  * ```
23
23
  * <script type="module">
24
- * import {IsObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/constraints/isobject.js';
24
+ * import {IsObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/constraints/isobject.js';
25
25
  * console.log(new IsObject())
26
26
  * </script>
27
27
  * ```
28
28
  *
29
29
  * @example
30
30
  *
31
- * import {IsObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/constraints/isobject.js';
31
+ * import {IsObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/constraints/isobject.js';
32
32
  *
33
33
  * new IsObject()
34
34
  * .isValid({})
@@ -11,7 +11,7 @@ import {AbstractOperator} from "./abstractoperator.js";
11
11
  *
12
12
  * ```
13
13
  * <script type="module">
14
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/constraint/oroperator.js';
14
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/constraint/oroperator.js';
15
15
  * new Monster.Constraint.OrOperator();
16
16
  * </script>
17
17
  * ```
@@ -20,16 +20,16 @@ import {AbstractOperator} from "./abstractoperator.js";
20
20
  *
21
21
  * ```
22
22
  * <script type="module">
23
- * import {OrOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/constraint/oroperator.js';
23
+ * import {OrOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/constraint/oroperator.js';
24
24
  * new OrOperator();
25
25
  * </script>
26
26
  * ```
27
27
  *
28
28
  * @example
29
29
  *
30
- * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/constraints/valid.js';
31
- * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/constraints/invalid.js';
32
- * import {OrOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/constraints/oroperator.js';
30
+ * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/constraints/valid.js';
31
+ * import {Invalid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/constraints/invalid.js';
32
+ * import {OrOperator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/constraints/oroperator.js';
33
33
  *
34
34
  * new OrOperator(
35
35
  * new Valid(), new Invalid()).isValid()
@@ -13,7 +13,7 @@ import {AbstractConstraint} from "./abstract.js";
13
13
  *
14
14
  * ```
15
15
  * <script type="module">
16
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/constraints/valid.js';
16
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/constraints/valid.js';
17
17
  * new Monster.Constraint.Valid();
18
18
  * </script>
19
19
  * ```
@@ -22,14 +22,14 @@ import {AbstractConstraint} from "./abstract.js";
22
22
  *
23
23
  * ```
24
24
  * <script type="module">
25
- * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/constraints/valid.js';
25
+ * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/constraints/valid.js';
26
26
  * new Valid();
27
27
  * </script>
28
28
  * ```
29
29
  *
30
30
  * @example
31
31
  *
32
- * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/constraints/valid.js';
32
+ * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/constraints/valid.js';
33
33
  *
34
34
  * new Valid().isValid()
35
35
  * .then(()=>console.log(true))
@@ -20,7 +20,7 @@ import {DELIMITER, Pathfinder, WILDCARD} from "./pathfinder.js";
20
20
  *
21
21
  * ```
22
22
  * <script type="module">
23
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/data/buildmap.js';
23
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/data/buildmap.js';
24
24
  * console.log(Monster.Data.buildMap())
25
25
  * </script>
26
26
  * ```
@@ -29,7 +29,7 @@ import {DELIMITER, Pathfinder, WILDCARD} from "./pathfinder.js";
29
29
  *
30
30
  * ```
31
31
  * <script type="module">
32
- * import {buildMap} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/data/buildmap.js';
32
+ * import {buildMap} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/data/buildmap.js';
33
33
  * console.log(buildMap())
34
34
  * </script>
35
35
  * ```
@@ -40,7 +40,7 @@ import {DELIMITER, Pathfinder, WILDCARD} from "./pathfinder.js";
40
40
  *
41
41
  * @example
42
42
  *
43
- * import {buildMap} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/data/buildmap.js';
43
+ * import {buildMap} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/data/buildmap.js';
44
44
  * // a typical data structure as reported by an api
45
45
  *
46
46
  * let map;
@@ -239,7 +239,7 @@ function buildFlatMap(subject, selector, key, parentMap) {
239
239
  * Alternatively to a string selector a callback can be specified. this must return a map.
240
240
  *
241
241
  * @example
242
- * import {buildMap} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/data/buildmap.js';
242
+ * import {buildMap} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/data/buildmap.js';
243
243
  *
244
244
  * let obj = {
245
245
  * "data": [
@@ -17,7 +17,7 @@ import {typeOf} from "../types/typeof.js";
17
17
  *
18
18
  * ```
19
19
  * <script type="module">
20
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/data/diff.js';
20
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/data/diff.js';
21
21
  * console.log(Monster.Data.Diff(a, b))
22
22
  * </script>
23
23
  * ```
@@ -26,14 +26,14 @@ import {typeOf} from "../types/typeof.js";
26
26
  *
27
27
  * ```
28
28
  * <script type="module">
29
- * import {Diff} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/data/diff.js';
29
+ * import {Diff} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/data/diff.js';
30
30
  * console.log(Diff(a, b))
31
31
  * </script>
32
32
  * ```
33
33
  *
34
34
  * @example
35
35
  *
36
- * import {Diff} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/data/diff.js';
36
+ * import {Diff} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/data/diff.js';
37
37
  *
38
38
  * // given are two objects x and y.
39
39
  *
@@ -15,7 +15,7 @@ import {typeOf} from "../types/typeof.js";
15
15
  *
16
16
  * ```
17
17
  * <script type="module">
18
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/data/extend.js';
18
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/data/extend.js';
19
19
  * console.log(Monster.Data.extend(a, b))
20
20
  * </script>
21
21
  * ```
@@ -24,7 +24,7 @@ import {typeOf} from "../types/typeof.js";
24
24
  *
25
25
  * ```
26
26
  * <script type="module">
27
- * import {extend} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/data/extend.js';
27
+ * import {extend} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/data/extend.js';
28
28
  * console.log(extend(a, b))
29
29
  * </script>
30
30
  * ```
@@ -35,7 +35,7 @@ import {typeOf} from "../types/typeof.js";
35
35
  * @since 1.10.0
36
36
  * @copyright schukai GmbH
37
37
  * @memberOf Monster.Data
38
- * @throws {Error} unsuported argument
38
+ * @throws {Error} unsupported argument
39
39
  * @throws {Error} type mismatch
40
40
  */
41
41
  function extend() {
@@ -45,7 +45,7 @@ function extend() {
45
45
  let a = arguments[i];
46
46
 
47
47
  if (!(isObject(a) || isArray(a))) {
48
- throw new Error('unsuported argument ' + JSON.stringify(a));
48
+ throw new Error('unsupported argument ' + JSON.stringify(a));
49
49
  }
50
50
 
51
51
  if (o === undefined) {
@@ -61,7 +61,7 @@ function extend() {
61
61
  continue;
62
62
  }
63
63
 
64
- if ((isObject(v) || isArray(v))) {
64
+ if ((isObject(v)&&typeOf(v)==='object') || isArray(v)) {
65
65
 
66
66
  if (o[k] === undefined) {
67
67
  if (isArray(v)) {
@@ -69,10 +69,10 @@ function extend() {
69
69
  } else {
70
70
  o[k] = {};
71
71
  }
72
- }
73
-
74
- if (typeOf(o[k]) !== typeOf(v)) {
75
- throw new Error("type mismatch: " + JSON.stringify(o[k]) + " != " + JSON.stringify(v));
72
+ } else {
73
+ if (typeOf(o[k]) !== typeOf(v)) {
74
+ throw new Error("type mismatch: " + JSON.stringify(o[k]) + "(" + typeOf(o[k]) + ") != " + JSON.stringify(v) + "(" + typeOf(v) + ")");
75
+ }
76
76
  }
77
77
 
78
78
  o[k] = extend(o[k], v);
@@ -27,7 +27,7 @@ export const WILDCARD = '*';
27
27
  *
28
28
  * ```
29
29
  * <script type="module">
30
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/data/pathfinder.js';
30
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/data/pathfinder.js';
31
31
  * console.log(new Monster.Data.Pathfinder())
32
32
  * </script>
33
33
  * ```
@@ -36,7 +36,7 @@ export const WILDCARD = '*';
36
36
  *
37
37
  * ```
38
38
  * <script type="module">
39
- * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/data/pathfinder.js';
39
+ * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/data/pathfinder.js';
40
40
  * console.log(new Pathfinder())
41
41
  * </script>
42
42
  * ```
@@ -78,7 +78,7 @@ export const WILDCARD = '*';
78
78
  *
79
79
  * @example
80
80
  *
81
- * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/data/pathfinder.js';
81
+ * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/data/pathfinder.js';
82
82
  *
83
83
  * let value = new Pathfinder({
84
84
  * a: {
@@ -104,7 +104,7 @@ export const WILDCARD = '*';
104
104
  *
105
105
  * @example
106
106
  *
107
- * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/data/pathfinder.js';
107
+ * import {Pathfinder} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/data/pathfinder.js';
108
108
  *
109
109
  * let p = new Pathfinder({
110
110
  * a: {
@@ -19,7 +19,7 @@ const DELIMITER = '|';
19
19
  *
20
20
  * ```
21
21
  * <script type="module">
22
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/data/pipe.js';
22
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/data/pipe.js';
23
23
  * console.log(new Monster.Data.Pipe())
24
24
  * </script>
25
25
  * ```
@@ -28,7 +28,7 @@ const DELIMITER = '|';
28
28
  *
29
29
  * ```
30
30
  * <script type="module">
31
- * import {Pipe} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/data/pipe.js';
31
+ * import {Pipe} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/data/pipe.js';
32
32
  * console.log(new Pipe())
33
33
  * </script>
34
34
  * ```
@@ -39,7 +39,7 @@ const DELIMITER = '|';
39
39
  * the word is then converted to uppercase letters and a prefix Hello is added. the two backslash safe the space char.
40
40
  *
41
41
  * @example
42
- * import {Pipe} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/data/pipe.js';
42
+ * import {Pipe} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/data/pipe.js';
43
43
  *
44
44
  * let obj = {
45
45
  * a: {
@@ -25,7 +25,7 @@ import {Pathfinder} from "./pathfinder.js";
25
25
  *
26
26
  * ```
27
27
  * <script type="module">
28
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/data/transformer.js';
28
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/data/transformer.js';
29
29
  * console.log(new Monster.Data.Transformer())
30
30
  * </script>
31
31
  * ```
@@ -34,7 +34,7 @@ import {Pathfinder} from "./pathfinder.js";
34
34
  *
35
35
  * ```
36
36
  * <script type="module">
37
- * import {Transformer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/data/transformer.js';
37
+ * import {Transformer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/data/transformer.js';
38
38
  * console.log(new Transformer())
39
39
  * </script>
40
40
  * ```
@@ -52,7 +52,7 @@ import {Pathfinder} from "./pathfinder.js";
52
52
  * | command | parameter | alias | description |
53
53
  * |:-------------|:---------------------------|:------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
54
54
  * | base64 | | | Converts the value to base64 |
55
- * | call | function,param1:param2:... | | Calling a callback function. The function can be defined in three places: either globally, in the context `addCallback` or in the passed object |
55
+ * | call | function:param1:param2:... | | Calling a callback function. The function can be defined in three places: either globally, in the context `addCallback` or in the passed object |
56
56
  * | default | | | If the value is undefined the first argument is returned, otherwise the value. (since 1.12.0) |
57
57
  * | empty | | | Return empty String "" |
58
58
  * | fromjson | | | Type conversion from a JSON string (since 1.12.0) |
@@ -113,7 +113,7 @@ import {Pathfinder} from "./pathfinder.js";
113
113
  *
114
114
  * @example
115
115
  *
116
- * import {Transformer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/data/transformer.js';
116
+ * import {Transformer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/data/transformer.js';
117
117
  *
118
118
  * const transformer = new Transformer("tolower")
119
119
  *
@@ -23,7 +23,7 @@ const ATTRIBUTEPREFIX = "data-monster-";
23
23
  *
24
24
  * ```
25
25
  * <script type="module">
26
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/dom/assembler.js';
26
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/dom/assembler.js';
27
27
  * console.log(new Monster.DOM.Assembler())
28
28
  * </script>
29
29
  * ```
@@ -32,7 +32,7 @@ const ATTRIBUTEPREFIX = "data-monster-";
32
32
  *
33
33
  * ```
34
34
  * <script type="module">
35
- * import {Assembler} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/dom/assembler.js';
35
+ * import {Assembler} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/dom/assembler.js';
36
36
  * console.log(new Assembler())
37
37
  * </script>
38
38
  * ```
@@ -20,7 +20,7 @@ import {ATTRIBUTE_OBJECTLINK} from "./constants.js";
20
20
  *
21
21
  * ```
22
22
  * <script type="module">
23
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/dom/updater.js';
23
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/dom/updater.js';
24
24
  * console.log(Monster.DOM.findClosestObjectLink())
25
25
  * </script>
26
26
  * ```
@@ -29,7 +29,7 @@ import {ATTRIBUTE_OBJECTLINK} from "./constants.js";
29
29
  *
30
30
  * ```
31
31
  * <script type="module">
32
- * import {getUpdaterFromNode} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/dom/updater.js';
32
+ * import {getUpdaterFromNode} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/dom/updater.js';
33
33
  * console.log(findClosestObjectLink())
34
34
  * </script>
35
35
  * ```
@@ -50,7 +50,7 @@ function findClosestObjectLink(element) {
50
50
  *
51
51
  * ```
52
52
  * <script type="module">
53
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/dom/attributes.js';
53
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/dom/attributes.js';
54
54
  * Monster.DOM.addToObjectLink();
55
55
  * </script>
56
56
  * ```
@@ -59,7 +59,7 @@ function findClosestObjectLink(element) {
59
59
  *
60
60
  * ```
61
61
  * <script type="module">
62
- * import {addToObjectLink} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/dom/attributes.js';
62
+ * import {addToObjectLink} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/dom/attributes.js';
63
63
  * addToObjectLink();
64
64
  * </script>
65
65
  * ```
@@ -92,7 +92,7 @@ function addToObjectLink(element, symbol, object) {
92
92
  *
93
93
  * ```
94
94
  * <script type="module">
95
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/dom/attributes.js';
95
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/dom/attributes.js';
96
96
  * Monster.DOM.removeObjectLink();
97
97
  * </script>
98
98
  * ```
@@ -101,7 +101,7 @@ function addToObjectLink(element, symbol, object) {
101
101
  *
102
102
  * ```
103
103
  * <script type="module">
104
- * import {removeObjectLink} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/dom/attributes.js';
104
+ * import {removeObjectLink} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/dom/attributes.js';
105
105
  * removeObjectLink();
106
106
  * </script>
107
107
  * ```
@@ -134,7 +134,7 @@ function removeObjectLink(element, symbol) {
134
134
  *
135
135
  * ```
136
136
  * <script type="module">
137
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/dom/attributes.js';
137
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/dom/attributes.js';
138
138
  * Monster.DOM.hasObjectLink();
139
139
  * </script>
140
140
  * ```
@@ -143,7 +143,7 @@ function removeObjectLink(element, symbol) {
143
143
  *
144
144
  * ```
145
145
  * <script type="module">
146
- * import {hasObjectLink} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/dom/attributes.js';
146
+ * import {hasObjectLink} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/dom/attributes.js';
147
147
  * hasObjectLink();
148
148
  * </script>
149
149
  * ```
@@ -180,7 +180,7 @@ function hasObjectLink(element, symbol) {
180
180
  *
181
181
  * ```
182
182
  * <script type="module">
183
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/dom/attributes.js';
183
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/dom/attributes.js';
184
184
  * Monster.DOM.getLinkedObjects();
185
185
  * </script>
186
186
  * ```
@@ -189,7 +189,7 @@ function hasObjectLink(element, symbol) {
189
189
  *
190
190
  * ```
191
191
  * <script type="module">
192
- * import {getLinkedObjects} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/dom/attributes.js';
192
+ * import {getLinkedObjects} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/dom/attributes.js';
193
193
  * getLinkedObjects();
194
194
  * </script>
195
195
  * ```
@@ -225,7 +225,7 @@ function getLinkedObjects(element, symbol) {
225
225
  *
226
226
  * ```
227
227
  * <script type="module">
228
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/dom/attributes.js';
228
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/dom/attributes.js';
229
229
  * Monster.DOM.toggleAttributeToken();
230
230
  * </script>
231
231
  * ```
@@ -234,7 +234,7 @@ function getLinkedObjects(element, symbol) {
234
234
  *
235
235
  * ```
236
236
  * <script type="module">
237
- * import {toggleAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/dom/attributes.js';
237
+ * import {toggleAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/dom/attributes.js';
238
238
  * toggleAttributeToken();
239
239
  * </script>
240
240
  * ```
@@ -269,7 +269,7 @@ function toggleAttributeToken(element, key, token) {
269
269
  *
270
270
  * ```
271
271
  * <script type="module">
272
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/dom/attributes.js';
272
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/dom/attributes.js';
273
273
  * Monster.DOM.addAttributeToken();
274
274
  * </script>
275
275
  * ```
@@ -278,7 +278,7 @@ function toggleAttributeToken(element, key, token) {
278
278
  *
279
279
  * ```
280
280
  * <script type="module">
281
- * import {addAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/dom/attributes.js';
281
+ * import {addAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/dom/attributes.js';
282
282
  * addAttributeToken();
283
283
  * </script>
284
284
  * ```
@@ -315,7 +315,7 @@ function addAttributeToken(element, key, token) {
315
315
  *
316
316
  * ```
317
317
  * <script type="module">
318
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/dom/attributes.js';
318
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/dom/attributes.js';
319
319
  * Monster.DOM.removeAttributeToken();
320
320
  * </script>
321
321
  * ```
@@ -324,7 +324,7 @@ function addAttributeToken(element, key, token) {
324
324
  *
325
325
  * ```
326
326
  * <script type="module">
327
- * import {removeAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/dom/attributes.js';
327
+ * import {removeAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/dom/attributes.js';
328
328
  * removeAttributeToken();
329
329
  * </script>
330
330
  * ```
@@ -360,7 +360,7 @@ function removeAttributeToken(element, key, token) {
360
360
  *
361
361
  * ```
362
362
  * <script type="module">
363
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/dom/attributes.js';
363
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/dom/attributes.js';
364
364
  * Monster.DOM.containsAttributeToken();
365
365
  * </script>
366
366
  * ```
@@ -369,7 +369,7 @@ function removeAttributeToken(element, key, token) {
369
369
  *
370
370
  * ```
371
371
  * <script type="module">
372
- * import {containsAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/dom/attributes.js';
372
+ * import {containsAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/dom/attributes.js';
373
373
  * containsAttributeToken();
374
374
  * </script>
375
375
  * ```
@@ -402,7 +402,7 @@ function containsAttributeToken(element, key, token) {
402
402
  *
403
403
  * ```
404
404
  * <script type="module">
405
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/dom/attributes.js';
405
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/dom/attributes.js';
406
406
  * Monster.DOM.replaceAttributeToken();
407
407
  * </script>
408
408
  * ```
@@ -411,7 +411,7 @@ function containsAttributeToken(element, key, token) {
411
411
  *
412
412
  * ```
413
413
  * <script type="module">
414
- * import {replaceAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/dom/attributes.js';
414
+ * import {replaceAttributeToken} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/dom/attributes.js';
415
415
  * replaceAttributeToken();
416
416
  * </script>
417
417
  * ```
@@ -447,7 +447,7 @@ function replaceAttributeToken(element, key, from, to) {
447
447
  *
448
448
  * ```
449
449
  * <script type="module">
450
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/dom/attributes.js';
450
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/dom/attributes.js';
451
451
  * Monster.DOM.clearAttributeTokens();
452
452
  * </script>
453
453
  * ```
@@ -456,7 +456,7 @@ function replaceAttributeToken(element, key, from, to) {
456
456
  *
457
457
  * ```
458
458
  * <script type="module">
459
- * import {clearAttributeTokens} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/dom/attributes.js';
459
+ * import {clearAttributeTokens} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/dom/attributes.js';
460
460
  * clearAttributeTokens();
461
461
  * </script>
462
462
  * ```
@@ -486,7 +486,7 @@ function clearAttributeTokens(element, key) {
486
486
  *
487
487
  * ```
488
488
  * <script type="module">
489
- * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/dom/attributes.js';
489
+ * import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/dom/attributes.js';
490
490
  * Monster.DOM.findClosestByAttribute();
491
491
  * </script>
492
492
  * ```
@@ -495,7 +495,7 @@ function clearAttributeTokens(element, key) {
495
495
  *
496
496
  * ```
497
497
  * <script type="module">
498
- * import {findClosestByAttribute} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.20.0/dist/modules/dom/attributes.js';
498
+ * import {findClosestByAttribute} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.21.1/dist/modules/dom/attributes.js';
499
499
  * findClosestByAttribute();
500
500
  * </script>
501
501
  * ```