@schukai/monster 1.30.1 → 2.0.1
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.
- package/CHANGELOG +17 -1
- package/README.md +55 -58
- package/example/constraints/andoperator.mjs +17 -0
- package/example/constraints/invalid.mjs +6 -0
- package/example/constraints/isarray.mjs +11 -0
- package/example/constraints/isobject.mjs +12 -0
- package/example/constraints/oroperator.mjs +15 -0
- package/example/constraints/valid.mjs +6 -0
- package/example/data/buildmap.mjs +67 -0
- package/example/data/datasource.mjs +7 -0
- package/example/data/diff.mjs +39 -0
- package/example/data/pathfinder-1.mjs +23 -0
- package/example/data/pathfinder-2.mjs +19 -0
- package/example/data/pipe.mjs +14 -0
- package/example/data/storage/restapi.mjs +11 -0
- package/example/data/transformer.mjs +9 -0
- package/example/dom/customelement.mjs +13 -0
- package/example/dom/theme.mjs +5 -0
- package/example/dom/updater.mjs +23 -0
- package/example/i18n/formatter.mjs +10 -0
- package/example/i18n/providers/fetch.mjs +5 -0
- package/example/i18n/translations.mjs +20 -0
- package/example/types/basewithoptions.mjs +10 -0
- package/example/types/is-1.mjs +5 -0
- package/example/types/is-10.mjs +6 -0
- package/example/types/is-2.mjs +4 -0
- package/example/types/is-3.mjs +4 -0
- package/example/types/is-4.mjs +5 -0
- package/example/types/is-5.mjs +4 -0
- package/example/types/is-6.mjs +4 -0
- package/example/types/is-7.mjs +4 -0
- package/example/types/is-8.mjs +4 -0
- package/example/types/is-9.mjs +6 -0
- package/example/types/noderecursiveiterator.mjs +32 -0
- package/example/types/observer.mjs +9 -0
- package/example/types/proxyobserver.mjs +25 -0
- package/example/types/queue.mjs +20 -0
- package/example/types/tokenlist-1.mjs +4 -0
- package/example/types/tokenlist-2.mjs +7 -0
- package/example/types/tokenlist-3.mjs +5 -0
- package/example/types/tokenlist-4.mjs +5 -0
- package/example/types/tokenlist-5.mjs +5 -0
- package/example/types/typeof.mjs +9 -0
- package/example/types/version-1.mjs +6 -0
- package/example/types/version-2.mjs +3 -0
- package/example/util/comparator.mjs +10 -0
- package/example/util/deadmansswitch.mjs +9 -0
- package/example/util/processing.mjs +17 -0
- package/package.json +5 -59
- package/source/{constants.js → constants.mjs} +7 -10
- package/source/constraints/{abstract.js → abstract.mjs} +8 -9
- package/source/constraints/{abstractoperator.js → abstractoperator.mjs} +11 -8
- package/source/constraints/andoperator.mjs +38 -0
- package/source/constraints/invalid.mjs +38 -0
- package/source/constraints/isarray.mjs +41 -0
- package/source/constraints/isobject.mjs +41 -0
- package/source/constraints/{namespace.js → namespace.mjs} +3 -8
- package/source/constraints/{oroperator.js → oroperator.mjs} +10 -42
- package/source/constraints/valid.mjs +38 -0
- package/source/data/{buildmap.js → buildmap.mjs} +18 -104
- package/source/data/{buildtree.js → buildtree.mjs} +11 -31
- package/source/data/datasource/{namespace.js → namespace.mjs} +1 -9
- package/source/data/datasource/restapi/namespace.mjs +8 -0
- package/source/data/datasource/restapi/{writeerror.js → writeerror.mjs} +8 -9
- package/source/data/datasource/{restapi.js → restapi.mjs} +15 -45
- package/source/data/datasource/storage/localstorage.mjs +45 -0
- package/source/data/datasource/storage/{namespace.js → namespace.mjs} +1 -9
- package/source/data/datasource/storage/sessionstorage.mjs +45 -0
- package/source/data/datasource/{storage.js → storage.mjs} +12 -35
- package/source/data/{datasource.js → datasource.mjs} +17 -45
- package/source/data/{diff.js → diff.mjs} +10 -69
- package/source/data/{extend.js → extend.mjs} +10 -28
- package/source/data/{namespace.js → namespace.mjs} +2 -8
- package/source/data/{pathfinder.js → pathfinder.mjs} +18 -77
- package/source/data/{pipe.js → pipe.mjs} +14 -46
- package/source/data/{transformer.js → transformer.mjs} +18 -43
- package/source/dom/{assembler.js → assembler.mjs} +12 -28
- package/source/dom/{attributes.js → attributes.mjs} +42 -253
- package/source/dom/{constants.js → constants.mjs} +110 -61
- package/source/dom/{customcontrol.js → customcontrol.mjs} +10 -17
- package/source/dom/{customelement.js → customelement.mjs} +30 -53
- package/source/dom/{events.js → events.mjs} +15 -64
- package/source/dom/{focusmanager.js → focusmanager.mjs} +13 -34
- package/source/dom/{locale.js → locale.mjs} +11 -26
- package/source/dom/{namespace.js → namespace.mjs} +1 -8
- package/source/dom/ready.mjs +63 -0
- package/source/dom/resource/{data.js → data.mjs} +11 -31
- package/source/dom/resource/link/namespace.mjs +10 -0
- package/source/dom/resource/link/stylesheet.mjs +35 -0
- package/source/dom/resource/{link.js → link.mjs} +9 -29
- package/source/dom/resource/namespace.mjs +8 -0
- package/source/dom/resource/{script.js → script.mjs} +9 -29
- package/source/dom/{resource.js → resource.mjs} +19 -39
- package/source/dom/{resourcemanager.js → resourcemanager.mjs} +17 -35
- package/source/dom/{template.js → template.mjs} +18 -43
- package/source/dom/{theme.js → theme.mjs} +14 -36
- package/source/dom/{updater.js → updater.mjs} +34 -68
- package/source/dom/{util.js → util.mjs} +17 -66
- package/source/dom/worker/{factory.js → factory.mjs} +13 -34
- package/source/dom/worker/namespace.mjs +8 -0
- package/source/i18n/{formatter.js → formatter.mjs} +14 -45
- package/source/i18n/{locale.js → locale.mjs} +15 -30
- package/source/i18n/{namespace.js → namespace.mjs} +1 -9
- package/source/i18n/provider.mjs +40 -0
- package/source/i18n/providers/{fetch.js → fetch.mjs} +18 -43
- package/source/i18n/providers/namespace.mjs +8 -0
- package/source/i18n/{translations.js → translations.mjs} +12 -52
- package/source/logging/handler/console.mjs +50 -0
- package/source/logging/handler/namespace.mjs +6 -0
- package/source/logging/{handler.js → handler.mjs} +13 -30
- package/source/logging/logentry.mjs +51 -0
- package/source/logging/{logger.js → logger.mjs} +12 -28
- package/source/logging/{namespace.js → namespace.mjs} +1 -9
- package/source/math/{namespace.js → namespace.mjs} +1 -9
- package/source/math/{random.js → random.mjs} +8 -34
- package/source/monster.mjs +114 -0
- package/source/text/{formatter.js → formatter.mjs} +17 -33
- package/source/text/{namespace.js → namespace.mjs} +1 -9
- package/source/types/base.mjs +31 -0
- package/source/types/{basewithoptions.js → basewithoptions.mjs} +17 -46
- package/source/types/{binary.js → binary.mjs} +10 -42
- package/source/types/{dataurl.js → dataurl.mjs} +12 -46
- package/source/types/{global.js → global.mjs} +20 -12
- package/source/types/{id.js → id.mjs} +10 -27
- package/source/types/is.mjs +225 -0
- package/source/types/{mediatype.js → mediatype.mjs} +13 -29
- package/source/types/{namespace.js → namespace.mjs} +1 -8
- package/source/types/{node.js → node.mjs} +11 -28
- package/source/types/{nodelist.js → nodelist.mjs} +17 -32
- package/source/types/{noderecursiveiterator.js → noderecursiveiterator.mjs} +14 -65
- package/source/types/{observer.js → observer.mjs} +15 -42
- package/source/types/{observerlist.js → observerlist.mjs} +12 -29
- package/source/types/{proxyobserver.js → proxyobserver.mjs} +19 -62
- package/source/types/{queue.js → queue.mjs} +10 -47
- package/source/types/randomid.mjs +45 -0
- package/source/types/regex.mjs +27 -0
- package/source/types/{stack.js → stack.mjs} +8 -24
- package/source/types/{tokenlist.js → tokenlist.mjs} +20 -64
- package/source/types/typeof.mjs +37 -0
- package/source/types/{uniquequeue.js → uniquequeue.mjs} +11 -27
- package/source/types/{uuid.js → uuid.mjs} +15 -33
- package/source/types/{validate.js → validate.mjs} +38 -155
- package/source/types/{version.js → version.mjs} +19 -62
- package/source/util/{clone.js → clone.mjs} +10 -28
- package/source/util/{comparator.js → comparator.mjs} +13 -43
- package/source/util/{deadmansswitch.js → deadmansswitch.mjs} +15 -40
- package/source/util/freeze.mjs +39 -0
- package/source/util/{namespace.js → namespace.mjs} +1 -9
- package/source/util/{processing.js → processing.mjs} +13 -51
- package/source/util/{trimspaces.js → trimspaces.mjs} +14 -21
- package/test/cases/constraint/{andoperator.js → andoperator.mjs} +3 -3
- package/test/cases/constraint/{invalid.js → invalid.mjs} +1 -1
- package/test/cases/constraint/{isarray.js → isarray.mjs} +1 -1
- package/test/cases/constraint/{isobject.js → isobject.mjs} +1 -1
- package/test/cases/constraint/{oroperator.js → oroperator.mjs} +3 -3
- package/test/cases/constraint/{valid.js → valid.mjs} +1 -1
- package/test/cases/data/{buildmap.js → buildmap.mjs} +1 -1
- package/test/cases/data/{buildtree.js → buildtree.mjs} +2 -2
- package/test/cases/data/datasource/{restapi.js → restapi.mjs} +5 -5
- package/test/cases/data/datasource/storage/{localstorage.js → localstorage.mjs} +5 -5
- package/test/cases/data/datasource/storage/{sessionstorage.js → sessionstorage.mjs} +5 -5
- package/test/cases/data/{datasource.js → datasource.mjs} +1 -1
- package/test/cases/data/{diff.js → diff.mjs} +2 -2
- package/test/cases/data/{extend.js → extend.mjs} +1 -1
- package/test/cases/data/{pathfinder.js → pathfinder.mjs} +1 -1
- package/test/cases/data/{pipe.js → pipe.mjs} +19 -5
- package/test/cases/data/{transformer.js → transformer.mjs} +14 -10
- package/test/cases/dom/{assembler.js → assembler.mjs} +2 -2
- package/test/cases/dom/{attributes.js → attributes.mjs} +2 -2
- package/test/cases/dom/{customcontrol.js → customcontrol.mjs} +6 -6
- package/test/cases/dom/{customelement.js → customelement.mjs} +6 -6
- package/test/cases/dom/{events.js → events.mjs} +2 -2
- package/test/cases/dom/{focusmanager.js → focusmanager.mjs} +3 -3
- package/test/cases/dom/{locale.js → locale.mjs} +2 -2
- package/test/cases/dom/ready.mjs +42 -0
- package/test/cases/dom/resource/{data.js → data.mjs} +9 -9
- package/test/cases/dom/resource/link/{stylesheet.js → stylesheet.mjs} +6 -6
- package/test/cases/dom/resource/{link.js → link.mjs} +6 -6
- package/test/cases/dom/resource/{script.js → script.mjs} +6 -6
- package/test/cases/dom/{resourcemanager.js → resourcemanager.mjs} +6 -6
- package/test/cases/dom/{template.js → template.mjs} +3 -3
- package/test/cases/dom/{theme.js → theme.mjs} +3 -3
- package/test/cases/dom/{updater.js → updater.mjs} +6 -6
- package/test/cases/dom/{util.js → util.mjs} +2 -2
- package/test/cases/dom/worker/{factory.js → factory.mjs} +4 -4
- package/test/cases/i18n/{formatter.js → formatter.mjs} +2 -2
- package/test/cases/i18n/{locale.js → locale.mjs} +1 -1
- package/test/cases/i18n/{provider.js → provider.mjs} +1 -1
- package/test/cases/i18n/providers/{fetch.js → fetch.mjs} +3 -3
- package/test/cases/i18n/{translations.js → translations.mjs} +2 -2
- package/test/cases/logging/handler/{console.js → console.mjs} +3 -3
- package/test/cases/logging/{handler.js → handler.mjs} +3 -3
- package/test/cases/logging/{logentry.js → logentry.mjs} +1 -1
- package/test/cases/logging/{logger.js → logger.mjs} +1 -1
- package/test/cases/math/random.mjs +101 -0
- package/test/cases/monster.mjs +20 -0
- package/test/cases/text/{formatter.js → formatter.mjs} +1 -1
- package/test/cases/types/{base.js → base.mjs} +1 -1
- package/test/cases/types/{basewithoptions.js → basewithoptions.mjs} +1 -1
- package/test/cases/types/{binary.js → binary.mjs} +1 -1
- package/test/cases/types/{dataurl.js → dataurl.mjs} +1 -1
- package/test/cases/types/{global.js → global.mjs} +1 -1
- package/test/cases/types/{id.js → id.mjs} +17 -6
- package/test/cases/types/{is.js → is.mjs} +20 -8
- package/test/cases/types/{mediatype.js → mediatype.mjs} +1 -1
- package/test/cases/types/{node.js → node.mjs} +3 -3
- package/test/cases/types/{nodelist.js → nodelist.mjs} +2 -2
- package/test/cases/types/{noderecursiveiterator.js → noderecursiveiterator.mjs} +3 -3
- package/test/cases/types/{observer.js → observer.mjs} +1 -1
- package/test/cases/types/{observerlist.js → observerlist.mjs} +2 -2
- package/test/cases/types/{proxyobserver.js → proxyobserver.mjs} +4 -4
- package/test/cases/types/{queue.js → queue.mjs} +1 -1
- package/test/cases/types/randomid.mjs +39 -0
- package/test/cases/types/regex.mjs +46 -0
- package/test/cases/types/{stack.js → stack.mjs} +1 -1
- package/test/cases/types/{tokenlist.js → tokenlist.mjs} +1 -1
- package/test/cases/types/{typeof.js → typeof.mjs} +3 -4
- package/test/cases/types/{uniquequeue.js → uniquequeue.mjs} +1 -1
- package/test/cases/types/{uuid.js → uuid.mjs} +30 -10
- package/test/cases/types/{validate.js → validate.mjs} +3 -4
- package/test/cases/types/{version.js → version.mjs} +1 -2
- package/test/cases/util/{clone.js → clone.mjs} +1 -1
- package/test/cases/util/{comparator.js → comparator.mjs} +1 -1
- package/test/cases/util/{deadmansswitch.js → deadmansswitch.mjs} +1 -1
- package/test/cases/util/{freeze.js → freeze.mjs} +1 -1
- package/test/cases/util/{processing.js → processing.mjs} +1 -1
- package/test/cases/util/{trimspaces.js → trimspaces.mjs} +1 -1
- package/test/util/{chai-dom.js → chai-dom.mjs} +0 -0
- package/test/util/{cleanupdom.js → cleanupdom.mjs} +0 -0
- package/test/util/{jsdom.js → jsdom.mjs} +2 -2
- package/test/util/{localstorage.js → localstorage.mjs} +0 -0
- package/test/web/import.js +77 -77
- package/test/web/prepare.js +0 -8
- package/test/web/test.html +5 -4
- package/test/web/tests.js +25731 -587
- package/dist/modules/constants.js +0 -2
- package/dist/modules/constraints/abstract.js +0 -2
- package/dist/modules/constraints/abstractoperator.js +0 -2
- package/dist/modules/constraints/andoperator.js +0 -2
- package/dist/modules/constraints/invalid.js +0 -2
- package/dist/modules/constraints/isarray.js +0 -2
- package/dist/modules/constraints/isobject.js +0 -2
- package/dist/modules/constraints/namespace.js +0 -2
- package/dist/modules/constraints/oroperator.js +0 -2
- package/dist/modules/constraints/valid.js +0 -2
- package/dist/modules/data/buildmap.js +0 -2
- package/dist/modules/data/buildtree.js +0 -2
- package/dist/modules/data/datasource/namespace.js +0 -2
- package/dist/modules/data/datasource/restapi/writeerror.js +0 -2
- package/dist/modules/data/datasource/restapi.js +0 -2
- package/dist/modules/data/datasource/storage/localstorage.js +0 -2
- package/dist/modules/data/datasource/storage/namespace.js +0 -2
- package/dist/modules/data/datasource/storage/sessionstorage.js +0 -2
- package/dist/modules/data/datasource/storage.js +0 -2
- package/dist/modules/data/datasource.js +0 -2
- package/dist/modules/data/diff.js +0 -2
- package/dist/modules/data/extend.js +0 -2
- package/dist/modules/data/namespace.js +0 -2
- package/dist/modules/data/pathfinder.js +0 -2
- package/dist/modules/data/pipe.js +0 -2
- package/dist/modules/data/transformer.js +0 -2
- package/dist/modules/dom/assembler.js +0 -2
- package/dist/modules/dom/attributes.js +0 -2
- package/dist/modules/dom/constants.js +0 -2
- package/dist/modules/dom/customcontrol.js +0 -2
- package/dist/modules/dom/customelement.js +0 -2
- package/dist/modules/dom/events.js +0 -2
- package/dist/modules/dom/focusmanager.js +0 -2
- package/dist/modules/dom/locale.js +0 -2
- package/dist/modules/dom/namespace.js +0 -2
- package/dist/modules/dom/resource/data.js +0 -2
- package/dist/modules/dom/resource/link/stylesheet.js +0 -2
- package/dist/modules/dom/resource/link.js +0 -2
- package/dist/modules/dom/resource/script.js +0 -2
- package/dist/modules/dom/resource.js +0 -2
- package/dist/modules/dom/resourcemanager.js +0 -2
- package/dist/modules/dom/template.js +0 -2
- package/dist/modules/dom/theme.js +0 -2
- package/dist/modules/dom/updater.js +0 -2
- package/dist/modules/dom/util.js +0 -2
- package/dist/modules/dom/worker/factory.js +0 -2
- package/dist/modules/i18n/formatter.js +0 -2
- package/dist/modules/i18n/locale.js +0 -2
- package/dist/modules/i18n/namespace.js +0 -2
- package/dist/modules/i18n/provider.js +0 -2
- package/dist/modules/i18n/providers/fetch.js +0 -2
- package/dist/modules/i18n/providers/namespace.js +0 -2
- package/dist/modules/i18n/translations.js +0 -2
- package/dist/modules/logging/handler/console.js +0 -2
- package/dist/modules/logging/handler/namespace.js +0 -2
- package/dist/modules/logging/handler.js +0 -2
- package/dist/modules/logging/logentry.js +0 -2
- package/dist/modules/logging/logger.js +0 -2
- package/dist/modules/logging/namespace.js +0 -2
- package/dist/modules/math/namespace.js +0 -2
- package/dist/modules/math/random.js +0 -2
- package/dist/modules/monster.js +0 -2
- package/dist/modules/namespace.js +0 -2
- package/dist/modules/text/formatter.js +0 -2
- package/dist/modules/text/namespace.js +0 -2
- package/dist/modules/types/base.js +0 -2
- package/dist/modules/types/basewithoptions.js +0 -2
- package/dist/modules/types/binary.js +0 -2
- package/dist/modules/types/dataurl.js +0 -2
- package/dist/modules/types/global.js +0 -2
- package/dist/modules/types/id.js +0 -2
- package/dist/modules/types/is.js +0 -2
- package/dist/modules/types/mediatype.js +0 -2
- package/dist/modules/types/namespace.js +0 -2
- package/dist/modules/types/node.js +0 -2
- package/dist/modules/types/nodelist.js +0 -2
- package/dist/modules/types/noderecursiveiterator.js +0 -2
- package/dist/modules/types/observer.js +0 -2
- package/dist/modules/types/observerlist.js +0 -2
- package/dist/modules/types/proxyobserver.js +0 -2
- package/dist/modules/types/queue.js +0 -2
- package/dist/modules/types/randomid.js +0 -2
- package/dist/modules/types/regex.js +0 -2
- package/dist/modules/types/stack.js +0 -2
- package/dist/modules/types/tokenlist.js +0 -2
- package/dist/modules/types/typeof.js +0 -2
- package/dist/modules/types/uniquequeue.js +0 -2
- package/dist/modules/types/uuid.js +0 -2
- package/dist/modules/types/validate.js +0 -2
- package/dist/modules/types/version.js +0 -2
- package/dist/modules/util/clone.js +0 -2
- package/dist/modules/util/comparator.js +0 -2
- package/dist/modules/util/deadmansswitch.js +0 -2
- package/dist/modules/util/freeze.js +0 -2
- package/dist/modules/util/namespace.js +0 -2
- package/dist/modules/util/processing.js +0 -2
- package/dist/modules/util/trimspaces.js +0 -2
- package/dist/monster.dev.js +0 -15489
- package/dist/monster.dev.js.map +0 -1
- package/dist/monster.js +0 -2
- package/source/constraints/andoperator.js +0 -71
- package/source/constraints/invalid.js +0 -63
- package/source/constraints/isarray.js +0 -71
- package/source/constraints/isobject.js +0 -72
- package/source/constraints/valid.js +0 -63
- package/source/data/datasource/storage/localstorage.js +0 -64
- package/source/data/datasource/storage/sessionstorage.js +0 -61
- package/source/dom/resource/link/stylesheet.js +0 -54
- package/source/i18n/provider.js +0 -58
- package/source/i18n/providers/namespace.js +0 -16
- package/source/logging/handler/console.js +0 -66
- package/source/logging/handler/namespace.js +0 -14
- package/source/logging/logentry.js +0 -68
- package/source/monster.js +0 -80
- package/source/namespace.js +0 -170
- package/source/types/base.js +0 -50
- package/source/types/is.js +0 -429
- package/source/types/package.d.ts +0 -1
- package/source/types/randomid.js +0 -60
- package/source/types/regex.js +0 -49
- package/source/types/typeof.js +0 -63
- package/source/util/freeze.js +0 -57
- package/test/cases/math/random.js +0 -82
- package/test/cases/monster.js +0 -23
- package/test/cases/namespace.js +0 -93
- package/test/cases/types/randomid.js +0 -24
- package/test/cases/types/regex.js +0 -32
- package/test/web/monster-dev.html +0 -22
- package/test/web/monster.html +0 -21
|
@@ -1,32 +1,20 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
|
-
*
|
|
2
|
+
* Copyright schukai GmbH and contributors 2022. All Rights Reserved.
|
|
3
|
+
* Node module: @schukai/monster
|
|
4
|
+
* This file is licensed under the AGPLv3 License.
|
|
5
|
+
* License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
|
|
5
6
|
*/
|
|
6
|
-
|
|
7
|
-
import {isArray, isInstance} from "./is.
|
|
8
|
-
import {Node} from "./node.
|
|
9
|
-
import {validateInstance} from "./validate.
|
|
7
|
+
|
|
8
|
+
import {isArray, isInstance} from "./is.mjs";
|
|
9
|
+
import {Node} from "./node.mjs";
|
|
10
|
+
import {validateInstance} from "./validate.mjs";
|
|
11
|
+
|
|
12
|
+
export {NodeList}
|
|
10
13
|
|
|
11
14
|
/**
|
|
12
15
|
* You can create the instance via the monster namespace `new Monster.Types.NodeList()`.
|
|
13
16
|
*
|
|
14
|
-
*
|
|
15
|
-
* <script type="module">
|
|
16
|
-
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/monster.js';
|
|
17
|
-
* new Monster.Types.NodeList()
|
|
18
|
-
* </script>
|
|
19
|
-
* ```
|
|
20
|
-
*
|
|
21
|
-
* Alternatively, you can also integrate this function individually.
|
|
22
|
-
*
|
|
23
|
-
* ```
|
|
24
|
-
* <script type="module">
|
|
25
|
-
* import {NodeList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/modules/types/nodelist.js';
|
|
26
|
-
* new NodeList()
|
|
27
|
-
* </script>
|
|
28
|
-
* ```
|
|
29
|
-
*
|
|
17
|
+
* @license AGPLv3
|
|
30
18
|
* @since 1.26.0
|
|
31
19
|
* @copyright schukai GmbH
|
|
32
20
|
* @memberOf Monster.Types
|
|
@@ -43,8 +31,8 @@ class NodeList extends Set {
|
|
|
43
31
|
|
|
44
32
|
const self = this
|
|
45
33
|
|
|
46
|
-
if(values===undefined) return;
|
|
47
|
-
|
|
34
|
+
if (values === undefined) return;
|
|
35
|
+
|
|
48
36
|
if (isArray(values)) {
|
|
49
37
|
values.forEach(value => self.add(value));
|
|
50
38
|
} else if (isInstance(values, NodeList)) {
|
|
@@ -111,11 +99,11 @@ class NodeList extends Set {
|
|
|
111
99
|
*/
|
|
112
100
|
toString() {
|
|
113
101
|
let parts = [];
|
|
114
|
-
|
|
115
|
-
for(const node of this.toArray()) {
|
|
116
|
-
parts.push(node.toString())
|
|
102
|
+
|
|
103
|
+
for (const node of this.toArray()) {
|
|
104
|
+
parts.push(node.toString())
|
|
117
105
|
}
|
|
118
|
-
|
|
106
|
+
|
|
119
107
|
return parts.join("\n");
|
|
120
108
|
}
|
|
121
109
|
|
|
@@ -124,6 +112,3 @@ class NodeList extends Set {
|
|
|
124
112
|
}
|
|
125
113
|
}
|
|
126
114
|
|
|
127
|
-
|
|
128
|
-
assignToNamespace('Monster.Types', NodeList);
|
|
129
|
-
export {Monster, NodeList}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
|
-
*
|
|
2
|
+
* Copyright schukai GmbH and contributors 2022. All Rights Reserved.
|
|
3
|
+
* Node module: @schukai/monster
|
|
4
|
+
* This file is licensed under the AGPLv3 License.
|
|
5
|
+
* License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
|
|
5
6
|
*/
|
|
6
7
|
|
|
8
|
+
import {internalSymbol} from "../constants.mjs";
|
|
7
9
|
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {NodeList} from "./nodelist.js";
|
|
14
|
-
import {validateInstance} from "./validate.js";
|
|
10
|
+
import {Base} from './base.mjs';
|
|
11
|
+
import {isInstance} from "./is.mjs";
|
|
12
|
+
import {Node} from "./node.mjs";
|
|
13
|
+
import {NodeList} from "./nodelist.mjs";
|
|
14
|
+
import {validateInstance} from "./validate.mjs";
|
|
15
15
|
|
|
16
|
+
export {NodeRecursiveIterator}
|
|
16
17
|
|
|
17
18
|
/**
|
|
18
19
|
* @private
|
|
@@ -23,62 +24,14 @@ const isNodeListSymbol = Symbol('isNodeList');
|
|
|
23
24
|
/**
|
|
24
25
|
* You can create the instance via the monster namespace `new Monster.Types.NodeRecursiveIterator()`.
|
|
25
26
|
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/monster.js';
|
|
29
|
-
* new Monster.Types.NodeRecursiveIterator()
|
|
30
|
-
* </script>
|
|
31
|
-
* ```
|
|
32
|
-
*
|
|
33
|
-
* Alternatively, you can also integrate this function individually.
|
|
34
|
-
*
|
|
35
|
-
* ```
|
|
36
|
-
* <script type="module">
|
|
37
|
-
* import {NodeRecursiveIterator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/modules/types/noderecursiveiterator.js';
|
|
38
|
-
* new NodeRecursiveIterator()
|
|
39
|
-
* </script>
|
|
40
|
-
* ```
|
|
41
|
-
*
|
|
42
|
-
* @example
|
|
43
|
-
* import {Node} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/modules/types/node.js';
|
|
44
|
-
* import {NodeRecursiveIterator} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/modules/types/noderecursiveiterator.js';
|
|
45
|
-
*
|
|
46
|
-
* const node =new Node('1')
|
|
47
|
-
*
|
|
48
|
-
* // 1
|
|
49
|
-
* // 2
|
|
50
|
-
* // ├ 2.1
|
|
51
|
-
* // ├ 2.2
|
|
52
|
-
* // └ 2.3
|
|
53
|
-
* // 3
|
|
54
|
-
* // 4
|
|
55
|
-
* // ├ 4.1
|
|
56
|
-
* // └ 4.2
|
|
57
|
-
* node.appendChild(
|
|
58
|
-
* (new Node('2'))
|
|
59
|
-
* .appendChild(new Node('2.1'))
|
|
60
|
-
* .appendChild(new Node('2.2'))
|
|
61
|
-
* .appendChild(new Node('2.3')))
|
|
62
|
-
* .appendChild(new Node('3'))
|
|
63
|
-
* .appendChild(new Node('4')
|
|
64
|
-
* .appendChild(new Node('4.1'))
|
|
65
|
-
* .appendChild(new Node('4.2')));
|
|
66
|
-
*
|
|
67
|
-
* const iterator = new NodeRecursiveIterator(node);
|
|
68
|
-
*
|
|
69
|
-
* const result = [];
|
|
70
|
-
* for (const n of iterator) {
|
|
71
|
-
* result.push(n.value);
|
|
72
|
-
* }
|
|
73
|
-
*
|
|
74
|
-
* // ↦ ['1', '2', '2.1', '2.2', '2.3', '3', '4', '4.1', '4.2']
|
|
75
|
-
*
|
|
27
|
+
* @externalExample ../../example/types/noderecursiveiterator.mjs
|
|
28
|
+
* @license AGPLv3
|
|
76
29
|
* @since 1.26.0
|
|
77
30
|
* @copyright schukai GmbH
|
|
78
31
|
* @memberOf Monster.Types
|
|
79
32
|
* @summary An iterator to run recursively through a tree of nodes
|
|
80
33
|
*/
|
|
81
|
-
class NodeRecursiveIterator extends Base {
|
|
34
|
+
class NodeRecursiveIterator extends Base {
|
|
82
35
|
|
|
83
36
|
/**
|
|
84
37
|
* @param {Node} [data]
|
|
@@ -142,7 +95,3 @@ class NodeRecursiveIterator extends Base {
|
|
|
142
95
|
}
|
|
143
96
|
|
|
144
97
|
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
assignToNamespace('Monster.Types', NodeRecursiveIterator);
|
|
148
|
-
export {Monster, NodeRecursiveIterator}
|
|
@@ -1,36 +1,24 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
|
-
*
|
|
2
|
+
* Copyright schukai GmbH and contributors 2022. All Rights Reserved.
|
|
3
|
+
* Node module: @schukai/monster
|
|
4
|
+
* This file is licensed under the AGPLv3 License.
|
|
5
|
+
* License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
|
|
5
6
|
*/
|
|
6
7
|
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
|
|
8
|
+
import {Base} from './base.mjs';
|
|
9
|
+
import {isObject} from './is.mjs';
|
|
10
|
+
import {TokenList} from './tokenlist.mjs';
|
|
11
|
+
import {UniqueQueue} from './uniquequeue.mjs';
|
|
12
|
+
|
|
13
|
+
export {Observer}
|
|
12
14
|
|
|
13
15
|
/**
|
|
14
16
|
* An observer manages a callback function
|
|
15
17
|
*
|
|
16
|
-
* You can call the method via the monster namespace `new Monster.Types.Observer()`.
|
|
17
|
-
*
|
|
18
|
-
* ```
|
|
19
|
-
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/monster.js';
|
|
20
|
-
* new Monster.Types.Observer()
|
|
21
|
-
* ```
|
|
22
|
-
*
|
|
23
|
-
* Alternatively, you can also integrate this function individually.
|
|
24
|
-
*
|
|
25
|
-
* ```
|
|
26
|
-
* import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/modules/types/observer.js';
|
|
27
|
-
* new Observer()
|
|
28
|
-
* ```
|
|
29
|
-
*
|
|
30
18
|
* The update method is called with the subject object as this pointer. For this reason the callback should not
|
|
31
|
-
* be an arrow function, because it gets
|
|
19
|
+
* be an arrow function, because it gets this pointer of its own context.
|
|
32
20
|
*
|
|
33
|
-
* ```
|
|
21
|
+
* ```js
|
|
34
22
|
* new Observer(()=>{
|
|
35
23
|
* // this is not subject
|
|
36
24
|
* })
|
|
@@ -42,7 +30,7 @@ import {UniqueQueue} from './uniquequeue.js';
|
|
|
42
30
|
*
|
|
43
31
|
* Additional arguments can be passed to the callback. To do this, simply specify them.
|
|
44
32
|
*
|
|
45
|
-
* ```
|
|
33
|
+
* ```js
|
|
46
34
|
* Observer(function(a, b, c) {
|
|
47
35
|
* console.log(a, b, c); // ↦ "a", 2, true
|
|
48
36
|
* }, "a", 2, true)
|
|
@@ -50,17 +38,8 @@ import {UniqueQueue} from './uniquequeue.js';
|
|
|
50
38
|
*
|
|
51
39
|
* The callback function must have as many parameters as arguments are given.
|
|
52
40
|
*
|
|
53
|
-
* @example
|
|
54
|
-
*
|
|
55
|
-
* import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/modules/types/observer.js';
|
|
56
|
-
*
|
|
57
|
-
* const observer = new Observer(function(a, b, c) {
|
|
58
|
-
* console.log(this, a, b, c); // ↦ "a", 2, true
|
|
59
|
-
* }, "a", 2, true);
|
|
60
|
-
*
|
|
61
|
-
* observer.update({value:true}).then(()=>{});
|
|
62
|
-
* // ↦ {value: true} "a" 2 true
|
|
63
|
-
*
|
|
41
|
+
* @externalExample ../../example/types/observer.mjs
|
|
42
|
+
* @license AGPLv3
|
|
64
43
|
* @since 1.0.0
|
|
65
44
|
* @copyright schukai GmbH
|
|
66
45
|
* @memberOf Monster.Types
|
|
@@ -168,9 +147,3 @@ class Observer extends Base {
|
|
|
168
147
|
};
|
|
169
148
|
|
|
170
149
|
}
|
|
171
|
-
|
|
172
|
-
assignToNamespace('Monster.Types', Observer);
|
|
173
|
-
export {Monster, Observer}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
@@ -1,37 +1,23 @@
|
|
|
1
|
-
|
|
1
|
+
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Copyright schukai GmbH and contributors 2022. All Rights Reserved.
|
|
5
|
+
* Node module: @schukai/monster
|
|
6
|
+
* This file is licensed under the AGPLv3 License.
|
|
7
|
+
* License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
|
|
5
8
|
*/
|
|
6
9
|
|
|
7
|
-
|
|
8
|
-
import {Base} from './base.
|
|
9
|
-
import {Observer} from "./observer.
|
|
10
|
-
import {validateInstance} from "./validate.
|
|
10
|
+
|
|
11
|
+
import {Base} from './base.mjs';
|
|
12
|
+
import {Observer} from "./observer.mjs";
|
|
13
|
+
import {validateInstance} from "./validate.mjs";
|
|
14
|
+
|
|
15
|
+
export {ObserverList}
|
|
11
16
|
|
|
12
17
|
/**
|
|
13
18
|
* With the help of the ObserverList class, observer can be managed.
|
|
14
19
|
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* ```
|
|
18
|
-
* <script type="module">
|
|
19
|
-
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/monster.js';
|
|
20
|
-
* console.log(new Monster.Types.ObserverList())
|
|
21
|
-
* console.log(new Monster.Types.ObserverList())
|
|
22
|
-
* </script>
|
|
23
|
-
* ```
|
|
24
|
-
*
|
|
25
|
-
* Alternatively, you can also integrate this function individually.
|
|
26
|
-
*
|
|
27
|
-
* ```
|
|
28
|
-
* <script type="module">
|
|
29
|
-
* import {ObserverList} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/modules/types/observerlist.js';
|
|
30
|
-
* console.log(ObserverList())
|
|
31
|
-
* console.log(ObserverList())
|
|
32
|
-
* </script>
|
|
33
|
-
* ```
|
|
34
|
-
*
|
|
20
|
+
* @license AGPLv3
|
|
35
21
|
* @since 1.0.0
|
|
36
22
|
* @copyright schukai GmbH
|
|
37
23
|
* @memberOf Monster.Types
|
|
@@ -113,6 +99,3 @@ class ObserverList extends Base {
|
|
|
113
99
|
};
|
|
114
100
|
|
|
115
101
|
}
|
|
116
|
-
|
|
117
|
-
assignToNamespace('Monster.Types', ObserverList);
|
|
118
|
-
export {Monster, ObserverList}
|
|
@@ -1,74 +1,34 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
|
-
*
|
|
2
|
+
* Copyright schukai GmbH and contributors 2022. All Rights Reserved.
|
|
3
|
+
* Node module: @schukai/monster
|
|
4
|
+
* This file is licensed under the AGPLv3 License.
|
|
5
|
+
* License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
|
|
5
6
|
*/
|
|
6
|
-
|
|
7
|
-
import {Base} from './base.
|
|
8
|
-
import {isArray, isObject, isPrimitive} from "./is.
|
|
9
|
-
import {Observer} from "./observer.
|
|
10
|
-
import {ObserverList} from "./observerlist.
|
|
11
|
-
import {validateObject} from "./validate.
|
|
12
|
-
import {extend} from "../data/extend.
|
|
7
|
+
|
|
8
|
+
import {Base} from './base.mjs';
|
|
9
|
+
import {isArray, isObject, isPrimitive} from "./is.mjs";
|
|
10
|
+
import {Observer} from "./observer.mjs";
|
|
11
|
+
import {ObserverList} from "./observerlist.mjs";
|
|
12
|
+
import {validateObject} from "./validate.mjs";
|
|
13
|
+
import {extend} from "../data/extend.mjs";
|
|
14
|
+
|
|
15
|
+
export {ProxyObserver}
|
|
13
16
|
|
|
14
17
|
/**
|
|
15
18
|
* An observer manages a callback function
|
|
16
19
|
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* ```
|
|
20
|
-
* <script type="module">
|
|
21
|
-
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/monster.js';
|
|
22
|
-
* new Monster.Types.ProxyObserver()
|
|
23
|
-
* </script>
|
|
24
|
-
* ```
|
|
25
|
-
*
|
|
26
|
-
* Alternatively, you can also integrate this class individually.
|
|
27
|
-
*
|
|
28
|
-
* ```
|
|
29
|
-
* <script type="module">
|
|
30
|
-
* import {ProxyObserver} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/modules/types/proxyobserver.js';
|
|
31
|
-
* new ProxyObserver()
|
|
32
|
-
* </script>
|
|
33
|
-
* ```
|
|
34
|
-
*
|
|
35
|
-
* with the ProxyObserver you can attach observer for observation. with each change at the object to be observed an update takes place.
|
|
20
|
+
* With the ProxyObserver you can attach observer for observation.
|
|
21
|
+
* With each change at the object to be observed an update takes place.
|
|
36
22
|
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
* @example
|
|
40
|
-
*
|
|
41
|
-
* import {ProxyObserver} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/modules/types/proxyobserver.js';
|
|
42
|
-
* import {Observer} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/modules/types/observer.js';
|
|
43
|
-
* import {isObject} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/modules/types/is.js';
|
|
44
|
-
*
|
|
45
|
-
* const o = new Observer(function () {
|
|
46
|
-
* if (isObject(this) && this instanceof ProxyObserver) {
|
|
47
|
-
* // do something (this ist ProxyObserver)
|
|
48
|
-
* const subject = this.getSubject();
|
|
49
|
-
* console.log(subject);
|
|
50
|
-
* }
|
|
51
|
-
* });
|
|
52
|
-
*
|
|
53
|
-
* let realSubject = {
|
|
54
|
-
* a: {
|
|
55
|
-
* b: {
|
|
56
|
-
* c: true
|
|
57
|
-
* },
|
|
58
|
-
* d: 9
|
|
59
|
-
* }
|
|
60
|
-
* }
|
|
61
|
-
*
|
|
62
|
-
* const p = new ProxyObserver(realSubject);
|
|
63
|
-
* p.attachObserver(o);
|
|
64
|
-
* const s = p.getSubject();
|
|
65
|
-
* s.a.b.c = false;
|
|
23
|
+
* This also applies to nested objects.
|
|
66
24
|
*
|
|
25
|
+
* @externalExample ../../example/types/proxyobserver.mjs
|
|
26
|
+
* @license AGPLv3
|
|
67
27
|
* @since 1.0.0
|
|
68
28
|
* @copyright schukai GmbH
|
|
69
29
|
* @memberOf Monster.Types
|
|
70
30
|
*/
|
|
71
|
-
class ProxyObserver extends Base {
|
|
31
|
+
class ProxyObserver extends Base {
|
|
72
32
|
|
|
73
33
|
/**
|
|
74
34
|
*
|
|
@@ -167,9 +127,6 @@ class ProxyObserver extends Base {
|
|
|
167
127
|
|
|
168
128
|
}
|
|
169
129
|
|
|
170
|
-
assignToNamespace('Monster.Types', ProxyObserver);
|
|
171
|
-
export {Monster, ProxyObserver}
|
|
172
|
-
|
|
173
130
|
/**
|
|
174
131
|
*
|
|
175
132
|
* @returns {{defineProperty: (function(*=, *=, *=): *), setPrototypeOf: (function(*, *=): boolean), set: (function(*, *, *, *): boolean), get: ((function(*=, *=, *=): (undefined))|*), deleteProperty: ((function(*, *): (boolean))|*)}}
|
|
@@ -1,53 +1,19 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
|
-
*
|
|
2
|
+
* Copyright schukai GmbH and contributors 2022. All Rights Reserved.
|
|
3
|
+
* Node module: @schukai/monster
|
|
4
|
+
* This file is licensed under the AGPLv3 License.
|
|
5
|
+
* License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
|
|
5
6
|
*/
|
|
6
|
-
|
|
7
|
-
import {Base} from './base.
|
|
7
|
+
|
|
8
|
+
import {Base} from './base.mjs';
|
|
9
|
+
|
|
10
|
+
export {Queue}
|
|
8
11
|
|
|
9
12
|
/**
|
|
10
13
|
* You can create the instance via the monster namespace `new Monster.Types.Queue()`.
|
|
11
14
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/monster.js';
|
|
15
|
-
* new Monster.Types.Queue()
|
|
16
|
-
* </script>
|
|
17
|
-
* ```
|
|
18
|
-
*
|
|
19
|
-
* Alternatively, you can also integrate this function individually.
|
|
20
|
-
*
|
|
21
|
-
* ```
|
|
22
|
-
* <script type="module">
|
|
23
|
-
* import {Queue} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/modules/types/queue.js';
|
|
24
|
-
* new Queue()
|
|
25
|
-
* </script>
|
|
26
|
-
* ```
|
|
27
|
-
*
|
|
28
|
-
* @example
|
|
29
|
-
*
|
|
30
|
-
* import {Queue} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/modules/types/queue.js';
|
|
31
|
-
*
|
|
32
|
-
* const queue = new Queue;
|
|
33
|
-
*
|
|
34
|
-
* queue.add(2);
|
|
35
|
-
* queue.add(true);
|
|
36
|
-
* queue.add("Hello");
|
|
37
|
-
* queue.add(4.5);
|
|
38
|
-
*
|
|
39
|
-
* console.log(queue.poll());
|
|
40
|
-
* // ↦ 2
|
|
41
|
-
* console.log(queue.poll());
|
|
42
|
-
* // ↦ true
|
|
43
|
-
* console.log(queue.poll());
|
|
44
|
-
* // ↦ "Hello"
|
|
45
|
-
* console.log(queue.poll());
|
|
46
|
-
* // ↦ 4.5
|
|
47
|
-
* console.log(queue.poll());
|
|
48
|
-
* // ↦ undefined
|
|
49
|
-
*
|
|
50
|
-
*
|
|
15
|
+
* @externalExample ../../example/types/queue.mjs
|
|
16
|
+
* @license AGPLv3
|
|
51
17
|
* @since 1.4.0
|
|
52
18
|
* @copyright schukai GmbH
|
|
53
19
|
* @memberOf Monster.Types
|
|
@@ -120,6 +86,3 @@ class Queue extends Base {
|
|
|
120
86
|
|
|
121
87
|
|
|
122
88
|
}
|
|
123
|
-
|
|
124
|
-
assignToNamespace('Monster.Types', Queue);
|
|
125
|
-
export {Monster, Queue}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright schukai GmbH and contributors 2022. All Rights Reserved.
|
|
3
|
+
* Node module: @schukai/monster
|
|
4
|
+
* This file is licensed under the AGPLv3 License.
|
|
5
|
+
* License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import {random} from "../math/random.mjs";
|
|
9
|
+
import {getGlobal} from "./global.mjs";
|
|
10
|
+
import {ID} from "./id.mjs";
|
|
11
|
+
|
|
12
|
+
export {RandomID}
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @private
|
|
16
|
+
* @type {number}
|
|
17
|
+
*/
|
|
18
|
+
let internalCounter = 0;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* The `RandomID` class provides a unique ID for an item.
|
|
22
|
+
*
|
|
23
|
+
* @license AGPLv3
|
|
24
|
+
* @since 1.6.0
|
|
25
|
+
* @copyright schukai GmbH
|
|
26
|
+
* @memberOf Monster.Types
|
|
27
|
+
* @summary class to generate random numbers
|
|
28
|
+
*/
|
|
29
|
+
class RandomID extends ID {
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* create new object
|
|
33
|
+
*/
|
|
34
|
+
constructor() {
|
|
35
|
+
super();
|
|
36
|
+
|
|
37
|
+
internalCounter += 1;
|
|
38
|
+
|
|
39
|
+
this.id = getGlobal().btoa(random(1, 10000))
|
|
40
|
+
.replace(/=/g, '')
|
|
41
|
+
/** No numbers at the beginning of the ID, because of possible problems with DOM */
|
|
42
|
+
.replace(/^[0-9]+/, 'X') + internalCounter;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright schukai GmbH and contributors 2022. All Rights Reserved.
|
|
3
|
+
* Node module: @schukai/monster
|
|
4
|
+
* This file is licensed under the AGPLv3 License.
|
|
5
|
+
* License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import {validateString} from "./validate.mjs";
|
|
9
|
+
|
|
10
|
+
export {escapeString}
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* This function prefixes all special characters that may appear in a regex with a slash.
|
|
14
|
+
*
|
|
15
|
+
* @param {string} value
|
|
16
|
+
* @return {string}
|
|
17
|
+
* @license AGPLv3
|
|
18
|
+
* @since 1.26.0
|
|
19
|
+
* @copyright schukai GmbH
|
|
20
|
+
* @memberOf Monster.Types
|
|
21
|
+
* @throws {TypeError} value is not a string
|
|
22
|
+
*/
|
|
23
|
+
function escapeString(value) {
|
|
24
|
+
return validateString(value)
|
|
25
|
+
.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&')
|
|
26
|
+
.replace(/-/g, '\\x2d');
|
|
27
|
+
}
|
|
@@ -1,31 +1,18 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
|
-
*
|
|
2
|
+
* Copyright schukai GmbH and contributors 2022. All Rights Reserved.
|
|
3
|
+
* Node module: @schukai/monster
|
|
4
|
+
* This file is licensed under the AGPLv3 License.
|
|
5
|
+
* License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
|
|
5
6
|
*/
|
|
6
7
|
|
|
7
|
-
import {
|
|
8
|
-
|
|
8
|
+
import {Base} from './base.mjs';
|
|
9
|
+
|
|
10
|
+
export {Stack}
|
|
9
11
|
|
|
10
12
|
/**
|
|
11
13
|
* You can call the method via the monster namespace `new Monster.Types.Queue()`.
|
|
12
14
|
*
|
|
13
|
-
*
|
|
14
|
-
* <script type="module">
|
|
15
|
-
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/monster.js';
|
|
16
|
-
* console.log(new Monster.Types.Stack())
|
|
17
|
-
* </script>
|
|
18
|
-
* ```
|
|
19
|
-
*
|
|
20
|
-
* Alternatively, you can also integrate this function individually.
|
|
21
|
-
*
|
|
22
|
-
* ```
|
|
23
|
-
* <script type="module">
|
|
24
|
-
* import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.30.1/dist/modules/types/stack.js';
|
|
25
|
-
* console.log(new Stack())
|
|
26
|
-
* </script>
|
|
27
|
-
* ```
|
|
28
|
-
*
|
|
15
|
+
* @license AGPLv3
|
|
29
16
|
* @since 1.4.0
|
|
30
17
|
* @copyright schukai GmbH
|
|
31
18
|
* @memberOf Monster.Types
|
|
@@ -98,6 +85,3 @@ class Stack extends Base {
|
|
|
98
85
|
|
|
99
86
|
|
|
100
87
|
}
|
|
101
|
-
|
|
102
|
-
assignToNamespace('Monster.Types', Stack);
|
|
103
|
-
export {Monster, Stack}
|