@schukai/monster 2.0.14 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. package/README.md +1 -1
  2. package/package.json +1 -1
  3. package/source/constants.mjs +15 -3
  4. package/source/constraints/abstract.mjs +11 -0
  5. package/source/constraints/abstractoperator.mjs +11 -1
  6. package/source/constraints/andoperator.mjs +11 -1
  7. package/source/constraints/invalid.mjs +11 -1
  8. package/source/constraints/isarray.mjs +11 -1
  9. package/source/constraints/isobject.mjs +11 -1
  10. package/source/constraints/namespace.mjs +5 -0
  11. package/source/constraints/oroperator.mjs +11 -1
  12. package/source/constraints/valid.mjs +11 -1
  13. package/source/data/datasource/namespace.mjs +5 -0
  14. package/source/data/datasource/restapi/namespace.mjs +5 -0
  15. package/source/data/datasource/restapi/writeerror.mjs +10 -1
  16. package/source/data/datasource/restapi.mjs +10 -1
  17. package/source/data/datasource/storage/localstorage.mjs +10 -1
  18. package/source/data/datasource/storage/namespace.mjs +5 -0
  19. package/source/data/datasource/storage/sessionstorage.mjs +10 -1
  20. package/source/data/datasource/storage.mjs +10 -1
  21. package/source/data/datasource.mjs +12 -2
  22. package/source/data/namespace.mjs +5 -0
  23. package/source/dom/customcontrol.mjs +11 -1
  24. package/source/dom/customelement.mjs +11 -1
  25. package/source/dom/focusmanager.mjs +11 -1
  26. package/source/dom/namespace.mjs +5 -0
  27. package/source/dom/resource/data.mjs +11 -1
  28. package/source/dom/resource/link/namespace.mjs +5 -0
  29. package/source/dom/resource/link/stylesheet.mjs +11 -1
  30. package/source/dom/resource/link.mjs +11 -1
  31. package/source/dom/resource/namespace.mjs +5 -0
  32. package/source/dom/resource/script.mjs +10 -1
  33. package/source/dom/resource.mjs +8 -0
  34. package/source/dom/template.mjs +11 -1
  35. package/source/dom/theme.mjs +11 -1
  36. package/source/dom/worker/namespace.mjs +5 -0
  37. package/source/i18n/namespace.mjs +5 -0
  38. package/source/i18n/providers/namespace.mjs +5 -0
  39. package/source/logging/handler/namespace.mjs +5 -0
  40. package/source/logging/namespace.mjs +5 -0
  41. package/source/math/namespace.mjs +5 -0
  42. package/source/text/namespace.mjs +5 -0
  43. package/source/types/base.mjs +100 -0
  44. package/source/types/dataurl.mjs +11 -1
  45. package/source/types/mediatype.mjs +11 -1
  46. package/source/types/namespace.mjs +5 -0
  47. package/source/types/node.mjs +11 -1
  48. package/source/types/nodelist.mjs +11 -1
  49. package/source/types/observer.mjs +11 -1
  50. package/source/types/proxyobserver.mjs +11 -1
  51. package/source/types/queue.mjs +11 -1
  52. package/source/types/stack.mjs +10 -1
  53. package/source/types/version.mjs +14 -2
  54. package/source/util/namespace.mjs +5 -0
  55. package/test/cases/constraint/abstractoperator.mjs +38 -0
  56. package/test/cases/dom/resource.mjs +48 -0
  57. package/test/cases/monster.mjs +1 -1
  58. package/test/cases/types/base.mjs +42 -0
  59. package/test/web/mocha.js +10976 -20806
  60. package/test/web/test.html +3 -3
  61. package/test/web/tests.js +68 -12
package/README.md CHANGED
@@ -73,7 +73,7 @@ We do try to work around some browser bugs, but on the whole we don't use polyfi
73
73
  However, many functions can be mapped via [polyfill.io](https://polyfill.io/) and thus the compatibility can be increased.
74
74
 
75
75
  ```html
76
- <script id="polyfill" src="https://polyfill.io/v3/polyfill.min.js?features=Array.from,Array.isArray,Array.prototype.entries,Array.prototype.fill,Array.prototype.filter,Array.prototype.forEach,Array.prototype.indexOf,Array.prototype.keys,Array.prototype.lastIndexOf,Array.prototype.map,Array.prototype.reduce,Array.prototype.sort,ArrayBuffer,atob,CustomEvent,DataView,document,Document,DocumentFragment,Element,Event,fetch,globalThis,HTMLDocument,HTMLTemplateElement,Intl,JSON,Map,Math.log2,Number.isInteger,Object.assign,Object.defineProperty,Object.entries,Object.freeze,Object.getOwnPropertyDescriptor,Object.getOwnPropertyNames,Object.getPrototypeOf,Object.keys,Promise,Reflect,Reflect.defineProperty,Reflect.get,Reflect.getOwnPropertyDescriptor,Reflect.setPrototypeOf,Set,String.prototype.endsWith,String.prototype.matchAll,String.prototype.padStart,String.prototype.startsWith,String.prototype.trim,Symbol,Symbol.iterator,Uint16Array,Uint8Array,URL,WeakMap,WeakSet"
76
+ <script id="polyfill" src="https://polyfill.io/v3/polyfill.min.js?features=Array.from,Array.isArray,Array.prototype.entries,Array.prototype.fill,Array.prototype.filter,Array.prototype.forEach,Array.prototype.indexOf,Array.prototype.keys,Array.prototype.lastIndexOf,Array.prototype.map,Array.prototype.reduce,Array.prototype.sort,ArrayBuffer,atob,CustomEvent,DataView,document,Document,DocumentFragment,Element,Event,fetch,globalThis,HTMLDocument,HTMLTemplateElement,Intl,JSON,Map,Math.log2,Number.isInteger,Object.assign,Object.defineProperty,Object.entries,Object.freeze,Object.getOwnPropertyDescriptor,Object.getOwnPropertyNames,Object.getOwnPropertySymbols,Object.getPrototypeOf,Object.keys,Promise,Reflect,Reflect.defineProperty,Reflect.get,Reflect.getOwnPropertyDescriptor,Reflect.setPrototypeOf,Set,String.prototype.endsWith,String.prototype.matchAll,String.prototype.padStart,String.prototype.startsWith,String.prototype.trim,Symbol,Symbol.for,Symbol.hasInstance,Symbol.iterator,Uint16Array,Uint8Array,URL,WeakMap,WeakSet"
77
77
  crossorigin="anonymous"
78
78
  referrerpolicy="no-referrer"></script>
79
79
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@schukai/monster",
3
- "version": "2.0.14",
3
+ "version": "2.1.0",
4
4
  "description": "Monster is a simple library for creating fast, robust and lightweight websites.",
5
5
  "keywords": [
6
6
  "framework",
@@ -1,3 +1,8 @@
1
+ /**
2
+ * Copyright 2022 schukai GmbH
3
+ * SPDX-License-Identifier: AGPL-3.0
4
+ */
5
+
1
6
  /**
2
7
  * Property-Keys
3
8
  * @author schukai GmbH
@@ -5,7 +10,8 @@
5
10
 
6
11
  export {
7
12
  internalSymbol,
8
- internalStateSymbol
13
+ internalStateSymbol,
14
+ instanceSymbol
9
15
  }
10
16
 
11
17
  /**
@@ -15,7 +21,7 @@ export {
15
21
  * @license AGPLv3
16
22
  * @since 1.24.0
17
23
  */
18
- const internalSymbol = Symbol('internalData');
24
+ const internalSymbol = Symbol.for('@schukai/monster/internal');
19
25
 
20
26
  /**
21
27
  * @private
@@ -24,5 +30,11 @@ const internalSymbol = Symbol('internalData');
24
30
  * @license AGPLv3
25
31
  * @since 1.25.0
26
32
  */
27
- const internalStateSymbol = Symbol('state');
33
+ const internalStateSymbol = Symbol.for('@schukai/monster/state');
34
+
35
+ /**
36
+ * @private
37
+ * @type {symbol}
38
+ */
39
+ const instanceSymbol = Symbol.for('@schukai/monster/instance');
28
40
 
@@ -6,6 +6,7 @@
6
6
  */
7
7
 
8
8
  import {Base} from '../types/base.mjs';
9
+ import {instanceSymbol} from '../constants.mjs';
9
10
 
10
11
  export {AbstractConstraint}
11
12
 
@@ -42,4 +43,14 @@ class AbstractConstraint extends Base {
42
43
  isValid(value) {
43
44
  return Promise.reject(value);
44
45
  }
46
+
47
+ /**
48
+ * This method is called by the `instanceof` operator.
49
+ * @returns {symbol}
50
+ * @since 2.1.0
51
+ */
52
+ static get [instanceSymbol]() {
53
+ return Symbol.for("@schukai/monster/constraints/abstract-constraint");
54
+ }
55
+
45
56
  }
@@ -6,7 +6,7 @@
6
6
  */
7
7
 
8
8
  import {AbstractConstraint} from "./abstract.mjs";
9
-
9
+ import {instanceSymbol} from '../constants.mjs';
10
10
  export {AbstractOperator}
11
11
 
12
12
  /**
@@ -43,6 +43,16 @@ class AbstractOperator extends AbstractConstraint {
43
43
 
44
44
  }
45
45
 
46
+ /**
47
+ * This method is called by the `instanceof` operator.
48
+ * @returns {symbol}
49
+ * @since 2.1.0
50
+ */
51
+ static get [instanceSymbol]() {
52
+ return Symbol.for("@schukai/monster/constraints/abstract-operator");
53
+ }
54
+
55
+
46
56
 
47
57
  }
48
58
 
@@ -6,7 +6,7 @@
6
6
  */
7
7
 
8
8
  import {AbstractOperator} from "./abstractoperator.mjs";
9
-
9
+ import {instanceSymbol} from '../constants.mjs';
10
10
  export {AndOperator}
11
11
 
12
12
  /**
@@ -35,4 +35,14 @@ class AndOperator extends AbstractOperator {
35
35
  return Promise.all([this.operantA.isValid(value), this.operantB.isValid(value)]);
36
36
  }
37
37
 
38
+ /**
39
+ * This method is called by the `instanceof` operator.
40
+ * @returns {symbol}
41
+ * @since 2.1.0
42
+ */
43
+ static get [instanceSymbol]() {
44
+ return Symbol.for("@schukai/monster/constraints/and-operator");
45
+ }
46
+
47
+
38
48
  }
@@ -6,7 +6,7 @@
6
6
  */
7
7
 
8
8
  import {AbstractConstraint} from "./abstract.mjs";
9
-
9
+ import {instanceSymbol} from '../constants.mjs';
10
10
  export {Invalid}
11
11
 
12
12
  /**
@@ -35,4 +35,14 @@ class Invalid extends AbstractConstraint {
35
35
  return Promise.reject(value);
36
36
  }
37
37
 
38
+ /**
39
+ * This method is called by the `instanceof` operator.
40
+ * @returns {symbol}
41
+ * @since 2.1.0
42
+ */
43
+ static get [instanceSymbol]() {
44
+ return Symbol.for("@schukai/monster/constraints/invalid");
45
+ }
46
+
47
+
38
48
  }
@@ -7,7 +7,7 @@
7
7
 
8
8
  import {isArray} from "../types/is.mjs";
9
9
  import {AbstractConstraint} from "./abstract.mjs";
10
-
10
+ import {instanceSymbol} from '../constants.mjs';
11
11
  export {IsArray}
12
12
 
13
13
  /**
@@ -38,4 +38,14 @@ class IsArray extends AbstractConstraint {
38
38
  return Promise.reject(value);
39
39
  }
40
40
 
41
+ /**
42
+ * This method is called by the `instanceof` operator.
43
+ * @returns {symbol}
44
+ * @since 2.1.0
45
+ */
46
+ static get [instanceSymbol]() {
47
+ return Symbol.for("@schukai/monster/constraint/is-array");
48
+ }
49
+
50
+
41
51
  }
@@ -7,7 +7,7 @@
7
7
 
8
8
  import {isObject} from "../types/is.mjs";
9
9
  import {AbstractConstraint} from "./abstract.mjs";
10
-
10
+ import {instanceSymbol} from '../constants.mjs';
11
11
  export {IsObject}
12
12
 
13
13
  /**
@@ -38,4 +38,14 @@ class IsObject extends AbstractConstraint {
38
38
  return Promise.reject(value);
39
39
  }
40
40
 
41
+ /**
42
+ * This method is called by the `instanceof` operator.
43
+ * @returns {symbol}
44
+ * @since 2.1.0
45
+ */
46
+ static get [instanceSymbol]() {
47
+ return Symbol.for("@schukai/monster/constraint/is-object");
48
+ }
49
+
50
+
41
51
  }
@@ -1,3 +1,8 @@
1
+ /**
2
+ * Copyright 2022 schukai GmbH
3
+ * SPDX-License-Identifier: AGPL-3.0
4
+ */
5
+
1
6
 
2
7
 
3
8
  /**
@@ -6,7 +6,7 @@
6
6
  */
7
7
 
8
8
  import {AbstractOperator} from "./abstractoperator.mjs";
9
-
9
+ import {instanceSymbol} from '../constants.mjs';
10
10
  export {OrOperator}
11
11
 
12
12
  /**
@@ -61,5 +61,15 @@ class OrOperator extends AbstractOperator {
61
61
  });
62
62
  }
63
63
 
64
+ /**
65
+ * This method is called by the `instanceof` operator.
66
+ * @returns {symbol}
67
+ * @since 2.1.0
68
+ */
69
+ static get [instanceSymbol]() {
70
+ return Symbol.for("@schukai/monster/constraints/or-operator");
71
+ }
72
+
73
+
64
74
 
65
75
  }
@@ -6,7 +6,7 @@
6
6
  */
7
7
 
8
8
  import {AbstractConstraint} from "./abstract.mjs";
9
-
9
+ import {instanceSymbol} from '../constants.mjs';
10
10
  export {Valid}
11
11
 
12
12
  /**
@@ -35,4 +35,14 @@ class Valid extends AbstractConstraint {
35
35
  return Promise.resolve(value);
36
36
  }
37
37
 
38
+ /**
39
+ * This method is called by the `instanceof` operator.
40
+ * @returns {symbol}
41
+ * @since 2.1.0
42
+ */
43
+ static get [instanceSymbol]() {
44
+ return Symbol.for("@schukai/monster/constraints/valid");
45
+ }
46
+
47
+
38
48
  }
@@ -1,3 +1,8 @@
1
+ /**
2
+ * Copyright 2022 schukai GmbH
3
+ * SPDX-License-Identifier: AGPL-3.0
4
+ */
5
+
1
6
  /**
2
7
  * Namespace for datasources
3
8
  *
@@ -1,3 +1,8 @@
1
+ /**
2
+ * Copyright 2022 schukai GmbH
3
+ * SPDX-License-Identifier: AGPL-3.0
4
+ */
5
+
1
6
  /**
2
7
  * Namespace for storages
3
8
  *
@@ -5,7 +5,7 @@
5
5
  * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
6
6
  */
7
7
 
8
- import {internalSymbol} from "../../../constants.mjs";
8
+ import {internalSymbol,instanceSymbol} from "../../../constants.mjs";
9
9
 
10
10
  export {WriteError}
11
11
 
@@ -32,6 +32,15 @@ class WriteError extends Error {
32
32
  };
33
33
  }
34
34
 
35
+ /**
36
+ * This method is called by the `instanceof` operator.
37
+ * @returns {symbol}
38
+ * @since 2.1.0
39
+ */
40
+ static get [instanceSymbol]() {
41
+ return Symbol.for("@schukai/monster/data/datasource/restapi/writeerror");
42
+ }
43
+
35
44
  /**
36
45
  * @return {Response}
37
46
  */
@@ -5,7 +5,7 @@
5
5
  * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
6
6
  */
7
7
 
8
- import {internalSymbol} from "../../constants.mjs";
8
+ import {internalSymbol,instanceSymbol} from "../../constants.mjs";
9
9
  import {isObject} from "../../types/is.mjs";
10
10
  import {Datasource} from "../datasource.mjs";
11
11
  import {Pathfinder} from "../pathfinder.mjs";
@@ -44,6 +44,15 @@ class RestAPI extends Datasource {
44
44
 
45
45
  }
46
46
 
47
+ /**
48
+ * This method is called by the `instanceof` operator.
49
+ * @returns {symbol}
50
+ * @since 2.1.0
51
+ */
52
+ static get [instanceSymbol]() {
53
+ return Symbol.for("@schukai/monster/data/datasource/restapi");
54
+ }
55
+
47
56
  /**
48
57
  * @property {string} url=undefined Defines the resource that you wish to fetch.
49
58
  * @property {Object} write={} Options
@@ -5,7 +5,7 @@
5
5
  * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
6
6
  */
7
7
 
8
- import {internalSymbol} from "../../../constants.mjs";
8
+ import {internalSymbol,instanceSymbol} from "../../../constants.mjs";
9
9
  import {getGlobalObject} from "../../../types/global.mjs";
10
10
  import {Datasource} from "../../datasource.mjs";
11
11
  import {Storage, storageObjectSymbol} from "../storage.mjs";
@@ -32,6 +32,15 @@ class LocalStorage extends Storage {
32
32
  return getGlobalObject('localStorage');
33
33
  }
34
34
 
35
+ /**
36
+ * This method is called by the `instanceof` operator.
37
+ * @returns {symbol}
38
+ * @since 2.1.0
39
+ */
40
+ static get [instanceSymbol]() {
41
+ return Symbol.for("@schukai/monster/data/datasource/storage/localstorage");
42
+ }
43
+
35
44
  /**
36
45
  * Create clone
37
46
  * @return {LocalStorage}
@@ -1,3 +1,8 @@
1
+ /**
2
+ * Copyright 2022 schukai GmbH
3
+ * SPDX-License-Identifier: AGPL-3.0
4
+ */
5
+
1
6
  /**
2
7
  * Namespace for storages
3
8
  *
@@ -5,7 +5,7 @@
5
5
  * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
6
6
  */
7
7
 
8
- import {internalSymbol} from "../../../constants.mjs";
8
+ import {internalSymbol,instanceSymbol} from "../../../constants.mjs";
9
9
  import {getGlobalObject} from "../../../types/global.mjs";
10
10
  import {Datasource} from "../../datasource.mjs";
11
11
  import {Storage, storageObjectSymbol} from "../storage.mjs";
@@ -32,6 +32,15 @@ class SessionStorage extends Storage {
32
32
  return getGlobalObject('sessionStorage');
33
33
  }
34
34
 
35
+ /**
36
+ * This method is called by the `instanceof` operator.
37
+ * @returns {symbol}
38
+ * @since 2.1.0
39
+ */
40
+ static get [instanceSymbol]() {
41
+ return Symbol.for("@schukai/monster/data/datasource/storage/session-storage");
42
+ }
43
+
35
44
  /**
36
45
  * Create Clone
37
46
  *
@@ -5,7 +5,7 @@
5
5
  * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
6
6
  */
7
7
 
8
- import {internalSymbol} from "../../constants.mjs";
8
+ import {internalSymbol,instanceSymbol} from "../../constants.mjs";
9
9
  import {validateString} from "../../types/validate.mjs";
10
10
  import {Datasource} from "../datasource.mjs";
11
11
 
@@ -38,6 +38,15 @@ class Storage extends Datasource {
38
38
  this.setOption('key', validateString(key));
39
39
  }
40
40
 
41
+ /**
42
+ * This method is called by the `instanceof` operator.
43
+ * @returns {symbol}
44
+ * @since 2.1.0
45
+ */
46
+ static get [instanceSymbol]() {
47
+ return Symbol.for("@schukai/monster/data/datasource/storage");
48
+ }
49
+
41
50
  /**
42
51
  * @property {string} key=undefined LocalStorage Key
43
52
  */
@@ -6,7 +6,7 @@
6
6
  */
7
7
 
8
8
  import {internalSymbol} from "../constants.mjs";
9
-
9
+ import {instanceSymbol} from '../constants.mjs';
10
10
  import {Base} from "../types/base.mjs";
11
11
  import {parseDataURL} from "../types/dataurl.mjs";
12
12
  import {isString} from "../types/is.mjs";
@@ -39,7 +39,8 @@ const internalDataSymbol = Symbol('internalData');
39
39
  class Datasource extends Base {
40
40
 
41
41
  /**
42
- *
42
+ * creates a new datasource
43
+ *
43
44
  */
44
45
  constructor() {
45
46
  super();
@@ -185,6 +186,15 @@ class Datasource extends Base {
185
186
  return self;
186
187
  }
187
188
 
189
+ /**
190
+ * This method is called by the `instanceof` operator.
191
+ * @returns {symbol}
192
+ * @since 2.1.0
193
+ */
194
+ static get [instanceSymbol]() {
195
+ return Symbol.for("@schukai/monster/data/datasource");
196
+ }
197
+
188
198
  }
189
199
 
190
200
  /**
@@ -1,3 +1,8 @@
1
+ /**
2
+ * Copyright 2022 schukai GmbH
3
+ * SPDX-License-Identifier: AGPL-3.0
4
+ */
5
+
1
6
 
2
7
 
3
8
  /**
@@ -8,7 +8,7 @@
8
8
  import {extend} from "../data/extend.mjs";
9
9
  import {ATTRIBUTE_VALUE} from "./constants.mjs";
10
10
  import {CustomElement, attributeObserverSymbol} from "./customelement.mjs";
11
-
11
+ import {instanceSymbol} from '../constants.mjs';
12
12
  export {CustomControl}
13
13
 
14
14
  /**
@@ -70,6 +70,16 @@ class CustomControl extends CustomElement {
70
70
 
71
71
  }
72
72
 
73
+ /**
74
+ * This method is called by the `instanceof` operator.
75
+ * @returns {symbol}
76
+ * @since 2.1.0
77
+ */
78
+ static get [instanceSymbol]() {
79
+ return Symbol.for("@schukai/monster/dom/custom-control");
80
+ }
81
+
82
+
73
83
  /**
74
84
  * This method determines which attributes are to be monitored by `attributeChangedCallback()`.
75
85
  *
@@ -26,7 +26,7 @@ import {
26
26
  } from "./constants.mjs";
27
27
  import {findDocumentTemplate, Template} from "./template.mjs";
28
28
  import {Updater} from "./updater.mjs";
29
-
29
+ import {instanceSymbol} from '../constants.mjs';
30
30
  export {CustomElement, initMethodSymbol, assembleMethodSymbol, attributeObserverSymbol, registerCustomElement, assignUpdaterToElement, getSlottedElements}
31
31
 
32
32
  /**
@@ -195,6 +195,16 @@ class CustomElement extends HTMLElement {
195
195
  this[initMethodSymbol]();
196
196
  }
197
197
 
198
+ /**
199
+ * This method is called by the `instanceof` operator.
200
+ * @returns {symbol}
201
+ * @since 2.1.0
202
+ */
203
+ static get [instanceSymbol]() {
204
+ return Symbol.for("@schukai/monster/dom/custom-element");
205
+ }
206
+
207
+
198
208
  /**
199
209
  * This method determines which attributes are to be monitored by `attributeChangedCallback()`.
200
210
  *
@@ -11,7 +11,7 @@ import {getGlobalObject} from "../types/global.mjs";
11
11
  import {isArray} from "../types/is.mjs";
12
12
  import {Stack} from "../types/stack.mjs";
13
13
  import {validateInstance, validateString} from "../types/validate.mjs";
14
-
14
+ import {instanceSymbol} from '../constants.mjs';
15
15
  export {FocusManager}
16
16
 
17
17
  /**
@@ -57,6 +57,16 @@ const stackSymbol = Symbol('stack');
57
57
  this[stackSymbol] = new Stack();
58
58
  }
59
59
 
60
+ /**
61
+ * This method is called by the `instanceof` operator.
62
+ * @returns {symbol}
63
+ * @since 2.1.0
64
+ */
65
+ static get [instanceSymbol]() {
66
+ return Symbol.for("@schukai/monster/dom/focusmanager");
67
+ }
68
+
69
+
60
70
  /**
61
71
  * @property {HTMLDocument} document the document object into which the node is to be appended
62
72
  */
@@ -1,3 +1,8 @@
1
+ /**
2
+ * Copyright 2022 schukai GmbH
3
+ * SPDX-License-Identifier: AGPL-3.0
4
+ */
5
+
1
6
  /**
2
7
  * In this namespace you will find classes and methods for handling the DOM.
3
8
  *
@@ -18,7 +18,7 @@ import {
18
18
  TAG_SCRIPT
19
19
  } from "../constants.mjs";
20
20
  import {KEY_DOCUMENT, KEY_QUERY, referenceSymbol, Resource} from "../resource.mjs";
21
-
21
+ import {instanceSymbol} from '../../constants.mjs';
22
22
  export {Data}
23
23
 
24
24
  /**
@@ -70,6 +70,16 @@ class Data extends Resource {
70
70
  return this;
71
71
  }
72
72
 
73
+ /**
74
+ * This method is called by the `instanceof` operator.
75
+ * @returns {symbol}
76
+ * @since 2.1.0
77
+ */
78
+ static get [instanceSymbol]() {
79
+ return Symbol.for("@schukai/monster/dom/resource/data");
80
+ }
81
+
82
+
73
83
  /**
74
84
  * @return {string}
75
85
  */
@@ -1,3 +1,8 @@
1
+ /**
2
+ * Copyright 2022 schukai GmbH
3
+ * SPDX-License-Identifier: AGPL-3.0
4
+ */
5
+
1
6
 
2
7
 
3
8
  /**
@@ -7,7 +7,7 @@
7
7
 
8
8
  import {extend} from "../../../data/extend.mjs";
9
9
  import {Link} from "../link.mjs";
10
-
10
+ import {instanceSymbol} from '../../../constants.mjs';
11
11
  export {Stylesheet}
12
12
 
13
13
  /**
@@ -31,5 +31,15 @@ class Stylesheet extends Link {
31
31
  })
32
32
  }
33
33
 
34
+ /**
35
+ * This method is called by the `instanceof` operator.
36
+ * @returns {symbol}
37
+ * @since 2.1.0
38
+ */
39
+ static get [instanceSymbol]() {
40
+ return Symbol.for("@schukai/monster/dom/resource/link/stylesheet")
41
+ }
42
+
43
+
34
44
  }
35
45
 
@@ -15,7 +15,7 @@ import {
15
15
  TAG_LINK
16
16
  } from "../constants.mjs";
17
17
  import {KEY_DOCUMENT, referenceSymbol, Resource} from "../resource.mjs";
18
-
18
+ import {instanceSymbol} from '../../constants.mjs';
19
19
  export {Link}
20
20
 
21
21
  /**
@@ -67,6 +67,16 @@ class Link extends Resource {
67
67
  })
68
68
  }
69
69
 
70
+ /**
71
+ * This method is called by the `instanceof` operator.
72
+ * @returns {symbol}
73
+ * @since 2.1.0
74
+ */
75
+ static get [instanceSymbol]() {
76
+ return Symbol.for("@schukai/monster/dom/resource/link");
77
+ }
78
+
79
+
70
80
  /**
71
81
  *
72
82
  * @return {Monster.DOM.Resource.Link}
@@ -1,3 +1,8 @@
1
+ /**
2
+ * Copyright 2022 schukai GmbH
3
+ * SPDX-License-Identifier: AGPL-3.0
4
+ */
5
+
1
6
  /**
2
7
  * In this namespace you will find classes and methods for handling resources.
3
8
  *