Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
Loading items

Target

Select target project
  • oss/libraries/javascript/monster
1 result
Select Git revision
Loading items
Show changes
Commits on Source (5)
Showing
with 189 additions and 20 deletions
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="MessDetectorOptionsConfiguration">
<option name="transferred" value="true" />
</component>
<component name="PHPCSFixerOptionsConfiguration">
<option name="transferred" value="true" />
</component>
<component name="PHPCodeSnifferOptionsConfiguration">
<option name="transferred" value="true" />
</component>
<component name="PhpProjectSharedConfiguration" php_language_level="7.4"> <component name="PhpProjectSharedConfiguration" php_language_level="7.4">
<option name="suggestChangeDefaultLanguageLevel" value="false" /> <option name="suggestChangeDefaultLanguageLevel" value="false" />
</component> </component>
......
<a name="v2.1.0"></a>
## [v2.1.0] - 2022-12-30
### Add Features
- implement instanceof for multi realm
<a name="v2.0.16"></a> <a name="v2.0.16"></a>
## [v2.0.16] - 2022-10-31 ## [v2.0.16] - 2022-10-31
...@@ -78,6 +84,7 @@ ...@@ -78,6 +84,7 @@
<a name="1.8.0"></a> <a name="1.8.0"></a>
## 1.8.0 - 2021-08-15 ## 1.8.0 - 2021-08-15
[v2.1.0]: https://gitlab.schukai.com/oss/libraries/javascript/monster/compare/v2.0.16...v2.1.0
[v2.0.16]: https://gitlab.schukai.com/oss/libraries/javascript/monster/compare/v2.0.15...v2.0.16 [v2.0.16]: https://gitlab.schukai.com/oss/libraries/javascript/monster/compare/v2.0.15...v2.0.16
[v2.0.15]: https://gitlab.schukai.com/oss/libraries/javascript/monster/compare/1.31.0...v2.0.15 [v2.0.15]: https://gitlab.schukai.com/oss/libraries/javascript/monster/compare/1.31.0...v2.0.15
[1.31.0]: https://gitlab.schukai.com/oss/libraries/javascript/monster/compare/1.30.1...1.31.0 [1.31.0]: https://gitlab.schukai.com/oss/libraries/javascript/monster/compare/1.30.1...1.31.0
......
...@@ -73,7 +73,7 @@ We do try to work around some browser bugs, but on the whole we don't use polyfi ...@@ -73,7 +73,7 @@ We do try to work around some browser bugs, but on the whole we don't use polyfi
However, many functions can be mapped via [polyfill.io](https://polyfill.io/) and thus the compatibility can be increased. However, many functions can be mapped via [polyfill.io](https://polyfill.io/) and thus the compatibility can be increased.
```html ```html
<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" <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"
crossorigin="anonymous" crossorigin="anonymous"
referrerpolicy="no-referrer"></script> referrerpolicy="no-referrer"></script>
``` ```
......
{ {
"name": "@schukai/monster", "name": "@schukai/monster",
"version": "2.0.15", "version": "2.0.16",
"description": "Monster is a simple library for creating fast, robust and lightweight websites.", "description": "Monster is a simple library for creating fast, robust and lightweight websites.",
"keywords": [ "keywords": [
"framework", "framework",
......
...@@ -10,7 +10,8 @@ ...@@ -10,7 +10,8 @@
export { export {
internalSymbol, internalSymbol,
internalStateSymbol internalStateSymbol,
instanceSymbol
} }
/** /**
...@@ -20,7 +21,7 @@ export { ...@@ -20,7 +21,7 @@ export {
* @license AGPLv3 * @license AGPLv3
* @since 1.24.0 * @since 1.24.0
*/ */
const internalSymbol = Symbol('internalData'); const internalSymbol = Symbol.for('@schukai/monster/internal');
/** /**
* @private * @private
...@@ -29,5 +30,11 @@ const internalSymbol = Symbol('internalData'); ...@@ -29,5 +30,11 @@ const internalSymbol = Symbol('internalData');
* @license AGPLv3 * @license AGPLv3
* @since 1.25.0 * @since 1.25.0
*/ */
const internalStateSymbol = Symbol('state'); const internalStateSymbol = Symbol.for('@schukai/monster/state');
/**
* @private
* @type {symbol}
*/
const instanceSymbol = Symbol.for('@schukai/monster/instance');
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
*/ */
import {Base} from '../types/base.mjs'; import {Base} from '../types/base.mjs';
import {instanceSymbol} from '../constants.mjs';
export {AbstractConstraint} export {AbstractConstraint}
...@@ -42,4 +43,14 @@ class AbstractConstraint extends Base { ...@@ -42,4 +43,14 @@ class AbstractConstraint extends Base {
isValid(value) { isValid(value) {
return Promise.reject(value); return Promise.reject(value);
} }
/**
* This method is called by the `instanceof` operator.
* @returns {symbol}
* @since 2.1.0
*/
static get [instanceSymbol]() {
return Symbol.for("@schukai/monster/constraints/abstract-constraint");
}
} }
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
*/ */
import {AbstractConstraint} from "./abstract.mjs"; import {AbstractConstraint} from "./abstract.mjs";
import {instanceSymbol} from '../constants.mjs';
export {AbstractOperator} export {AbstractOperator}
/** /**
...@@ -43,6 +43,16 @@ class AbstractOperator extends AbstractConstraint { ...@@ -43,6 +43,16 @@ class AbstractOperator extends AbstractConstraint {
} }
/**
* This method is called by the `instanceof` operator.
* @returns {symbol}
* @since 2.1.0
*/
static get [instanceSymbol]() {
return Symbol.for("@schukai/monster/constraints/abstract-operator");
}
} }
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
*/ */
import {AbstractOperator} from "./abstractoperator.mjs"; import {AbstractOperator} from "./abstractoperator.mjs";
import {instanceSymbol} from '../constants.mjs';
export {AndOperator} export {AndOperator}
/** /**
...@@ -35,4 +35,14 @@ class AndOperator extends AbstractOperator { ...@@ -35,4 +35,14 @@ class AndOperator extends AbstractOperator {
return Promise.all([this.operantA.isValid(value), this.operantB.isValid(value)]); return Promise.all([this.operantA.isValid(value), this.operantB.isValid(value)]);
} }
/**
* This method is called by the `instanceof` operator.
* @returns {symbol}
* @since 2.1.0
*/
static get [instanceSymbol]() {
return Symbol.for("@schukai/monster/constraints/and-operator");
}
} }
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
*/ */
import {AbstractConstraint} from "./abstract.mjs"; import {AbstractConstraint} from "./abstract.mjs";
import {instanceSymbol} from '../constants.mjs';
export {Invalid} export {Invalid}
/** /**
...@@ -35,4 +35,14 @@ class Invalid extends AbstractConstraint { ...@@ -35,4 +35,14 @@ class Invalid extends AbstractConstraint {
return Promise.reject(value); return Promise.reject(value);
} }
/**
* This method is called by the `instanceof` operator.
* @returns {symbol}
* @since 2.1.0
*/
static get [instanceSymbol]() {
return Symbol.for("@schukai/monster/constraints/invalid");
}
} }
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
import {isArray} from "../types/is.mjs"; import {isArray} from "../types/is.mjs";
import {AbstractConstraint} from "./abstract.mjs"; import {AbstractConstraint} from "./abstract.mjs";
import {instanceSymbol} from '../constants.mjs';
export {IsArray} export {IsArray}
/** /**
...@@ -38,4 +38,14 @@ class IsArray extends AbstractConstraint { ...@@ -38,4 +38,14 @@ class IsArray extends AbstractConstraint {
return Promise.reject(value); return Promise.reject(value);
} }
/**
* This method is called by the `instanceof` operator.
* @returns {symbol}
* @since 2.1.0
*/
static get [instanceSymbol]() {
return Symbol.for("@schukai/monster/constraint/is-array");
}
} }
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
import {isObject} from "../types/is.mjs"; import {isObject} from "../types/is.mjs";
import {AbstractConstraint} from "./abstract.mjs"; import {AbstractConstraint} from "./abstract.mjs";
import {instanceSymbol} from '../constants.mjs';
export {IsObject} export {IsObject}
/** /**
...@@ -38,4 +38,14 @@ class IsObject extends AbstractConstraint { ...@@ -38,4 +38,14 @@ class IsObject extends AbstractConstraint {
return Promise.reject(value); return Promise.reject(value);
} }
/**
* This method is called by the `instanceof` operator.
* @returns {symbol}
* @since 2.1.0
*/
static get [instanceSymbol]() {
return Symbol.for("@schukai/monster/constraint/is-object");
}
} }
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
*/ */
import {AbstractOperator} from "./abstractoperator.mjs"; import {AbstractOperator} from "./abstractoperator.mjs";
import {instanceSymbol} from '../constants.mjs';
export {OrOperator} export {OrOperator}
/** /**
...@@ -61,5 +61,15 @@ class OrOperator extends AbstractOperator { ...@@ -61,5 +61,15 @@ class OrOperator extends AbstractOperator {
}); });
} }
/**
* This method is called by the `instanceof` operator.
* @returns {symbol}
* @since 2.1.0
*/
static get [instanceSymbol]() {
return Symbol.for("@schukai/monster/constraints/or-operator");
}
} }
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
*/ */
import {AbstractConstraint} from "./abstract.mjs"; import {AbstractConstraint} from "./abstract.mjs";
import {instanceSymbol} from '../constants.mjs';
export {Valid} export {Valid}
/** /**
...@@ -35,4 +35,14 @@ class Valid extends AbstractConstraint { ...@@ -35,4 +35,14 @@ class Valid extends AbstractConstraint {
return Promise.resolve(value); return Promise.resolve(value);
} }
/**
* This method is called by the `instanceof` operator.
* @returns {symbol}
* @since 2.1.0
*/
static get [instanceSymbol]() {
return Symbol.for("@schukai/monster/constraints/valid");
}
} }
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
*/ */
import {internalSymbol} from "../constants.mjs"; import {internalSymbol} from "../constants.mjs";
import {instanceSymbol} from '../constants.mjs';
import {Base} from "../types/base.mjs"; import {Base} from "../types/base.mjs";
import {parseDataURL} from "../types/dataurl.mjs"; import {parseDataURL} from "../types/dataurl.mjs";
import {isString} from "../types/is.mjs"; import {isString} from "../types/is.mjs";
...@@ -39,6 +39,7 @@ const internalDataSymbol = Symbol('internalData'); ...@@ -39,6 +39,7 @@ const internalDataSymbol = Symbol('internalData');
class Datasource extends Base { class Datasource extends Base {
/** /**
* creates a new datasource
* *
*/ */
constructor() { constructor() {
...@@ -185,6 +186,15 @@ class Datasource extends Base { ...@@ -185,6 +186,15 @@ class Datasource extends Base {
return self; return self;
} }
/**
* This method is called by the `instanceof` operator.
* @returns {symbol}
* @since 2.1.0
*/
static get [instanceSymbol]() {
return Symbol.for("@schukai/monster/data/datasource");
}
} }
/** /**
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
* License text available at https://www.gnu.org/licenses/agpl-3.0.en.html * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
*/ */
import {internalSymbol} from "../../constants.mjs"; import {internalSymbol,instanceSymbol} from "../../constants.mjs";
import {isObject} from "../../types/is.mjs"; import {isObject} from "../../types/is.mjs";
import {Datasource} from "../datasource.mjs"; import {Datasource} from "../datasource.mjs";
import {Pathfinder} from "../pathfinder.mjs"; import {Pathfinder} from "../pathfinder.mjs";
...@@ -44,6 +44,15 @@ class RestAPI extends Datasource { ...@@ -44,6 +44,15 @@ class RestAPI extends Datasource {
} }
/**
* This method is called by the `instanceof` operator.
* @returns {symbol}
* @since 2.1.0
*/
static get [instanceSymbol]() {
return Symbol.for("@schukai/monster/data/datasource/restapi");
}
/** /**
* @property {string} url=undefined Defines the resource that you wish to fetch. * @property {string} url=undefined Defines the resource that you wish to fetch.
* @property {Object} write={} Options * @property {Object} write={} Options
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
* License text available at https://www.gnu.org/licenses/agpl-3.0.en.html * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
*/ */
import {internalSymbol} from "../../../constants.mjs"; import {internalSymbol,instanceSymbol} from "../../../constants.mjs";
export {WriteError} export {WriteError}
...@@ -32,6 +32,15 @@ class WriteError extends Error { ...@@ -32,6 +32,15 @@ class WriteError extends Error {
}; };
} }
/**
* This method is called by the `instanceof` operator.
* @returns {symbol}
* @since 2.1.0
*/
static get [instanceSymbol]() {
return Symbol.for("@schukai/monster/data/datasource/restapi/writeerror");
}
/** /**
* @return {Response} * @return {Response}
*/ */
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
* License text available at https://www.gnu.org/licenses/agpl-3.0.en.html * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
*/ */
import {internalSymbol} from "../../constants.mjs"; import {internalSymbol,instanceSymbol} from "../../constants.mjs";
import {validateString} from "../../types/validate.mjs"; import {validateString} from "../../types/validate.mjs";
import {Datasource} from "../datasource.mjs"; import {Datasource} from "../datasource.mjs";
...@@ -38,6 +38,15 @@ class Storage extends Datasource { ...@@ -38,6 +38,15 @@ class Storage extends Datasource {
this.setOption('key', validateString(key)); this.setOption('key', validateString(key));
} }
/**
* This method is called by the `instanceof` operator.
* @returns {symbol}
* @since 2.1.0
*/
static get [instanceSymbol]() {
return Symbol.for("@schukai/monster/data/datasource/storage");
}
/** /**
* @property {string} key=undefined LocalStorage Key * @property {string} key=undefined LocalStorage Key
*/ */
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
* License text available at https://www.gnu.org/licenses/agpl-3.0.en.html * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
*/ */
import {internalSymbol} from "../../../constants.mjs"; import {internalSymbol,instanceSymbol} from "../../../constants.mjs";
import {getGlobalObject} from "../../../types/global.mjs"; import {getGlobalObject} from "../../../types/global.mjs";
import {Datasource} from "../../datasource.mjs"; import {Datasource} from "../../datasource.mjs";
import {Storage, storageObjectSymbol} from "../storage.mjs"; import {Storage, storageObjectSymbol} from "../storage.mjs";
...@@ -32,6 +32,15 @@ class LocalStorage extends Storage { ...@@ -32,6 +32,15 @@ class LocalStorage extends Storage {
return getGlobalObject('localStorage'); return getGlobalObject('localStorage');
} }
/**
* This method is called by the `instanceof` operator.
* @returns {symbol}
* @since 2.1.0
*/
static get [instanceSymbol]() {
return Symbol.for("@schukai/monster/data/datasource/storage/localstorage");
}
/** /**
* Create clone * Create clone
* @return {LocalStorage} * @return {LocalStorage}
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
* License text available at https://www.gnu.org/licenses/agpl-3.0.en.html * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
*/ */
import {internalSymbol} from "../../../constants.mjs"; import {internalSymbol,instanceSymbol} from "../../../constants.mjs";
import {getGlobalObject} from "../../../types/global.mjs"; import {getGlobalObject} from "../../../types/global.mjs";
import {Datasource} from "../../datasource.mjs"; import {Datasource} from "../../datasource.mjs";
import {Storage, storageObjectSymbol} from "../storage.mjs"; import {Storage, storageObjectSymbol} from "../storage.mjs";
...@@ -32,6 +32,15 @@ class SessionStorage extends Storage { ...@@ -32,6 +32,15 @@ class SessionStorage extends Storage {
return getGlobalObject('sessionStorage'); return getGlobalObject('sessionStorage');
} }
/**
* This method is called by the `instanceof` operator.
* @returns {symbol}
* @since 2.1.0
*/
static get [instanceSymbol]() {
return Symbol.for("@schukai/monster/data/datasource/storage/session-storage");
}
/** /**
* Create Clone * Create Clone
* *
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
import {extend} from "../data/extend.mjs"; import {extend} from "../data/extend.mjs";
import {ATTRIBUTE_VALUE} from "./constants.mjs"; import {ATTRIBUTE_VALUE} from "./constants.mjs";
import {CustomElement, attributeObserverSymbol} from "./customelement.mjs"; import {CustomElement, attributeObserverSymbol} from "./customelement.mjs";
import {instanceSymbol} from '../constants.mjs';
export {CustomControl} export {CustomControl}
/** /**
...@@ -70,6 +70,16 @@ class CustomControl extends CustomElement { ...@@ -70,6 +70,16 @@ class CustomControl extends CustomElement {
} }
/**
* This method is called by the `instanceof` operator.
* @returns {symbol}
* @since 2.1.0
*/
static get [instanceSymbol]() {
return Symbol.for("@schukai/monster/dom/custom-control");
}
/** /**
* This method determines which attributes are to be monitored by `attributeChangedCallback()`. * This method determines which attributes are to be monitored by `attributeChangedCallback()`.
* *
......